Skip to main content
Glama

DuckDuckGo Search MCP

by OEvortex
index.cjs17.6 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(map2) { overrideErrorMap = map2; } 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 _a2, _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: (_a2 = message !== null && message !== void 0 ? message : required_error) !== null && _a2 !== void 0 ? _a2 : 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 (_a2) { 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(val2, step) { const valDecCount = (val2.toString().split(".")[1] || "").length; const stepDecCount = (step.toString().split(".")[1] || "").length; const decCount = valDecCount > stepDecCount ? valDecCount : stepDecCount; const valInt = parseInt(val2.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 index2 = 0; index2 < a.length; index2++) { const itemA = a[index2]; const itemB = b[index2]; 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, data2) { const p = typeof params === "function" ? params(data2) : 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((data2, ctx) => { var _a2, _b; const r = check(data2); if (r instanceof Promise) { return r.then((r2) => { var _a3, _b2; if (!r2) { const params = cleanParams(_params, data2); const _fatal = (_b2 = (_a3 = params.fatal) !== null && _a3 !== void 0 ? _a3 : fatal) !== null && _b2 !== void 0 ? _b2 : true; ctx.addIssue({ code: "custom", ...params, fatal: _fatal }); } }); } if (!r) { const params = cleanParams(_params, data2); const _fatal = (_b = (_a2 = params.fatal) !== null && _a2 !== void 0 ? _a2 : 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 = (val2) => val2; 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" ? (val2) => Number.isInteger(val2) : (val2) => typeof val2 === "number" && isFinite(val2) && Math.floor(val2) === val2; function joinValues(array, separator = " | ") { return array.map((val2) => typeof val2 === "string" ? `'${val2}'` : val2).join(separator); } util5.joinValues = joinValues; util5.jsonStringifyReplacer = (_, value) => { if (typeof value === "bigint") { return value.toString(); } return value; }; })(util || (util = {})); (function(objectUtil3) { objectUtil3.mergeShapes = (first2, second) => { return { ...first2, ...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 = (data2) => { const t = typeof data2; switch (t) { case "undefined": return ZodParsedType.undefined; case "string": return ZodParsedType.string; case "number": return isNaN(data2) ? 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(data2)) { return ZodParsedType.array; } if (data2 === null) { return ZodParsedType.null; } if (data2.then && typeof data2.then === "function" && data2.catch && typeof data2.catch === "function") { return ZodParsedType.promise; } if (typeof Map !== "undefined" && data2 instanceof Map) { return ZodParsedType.map; } if (typeof Set !== "undefined" && data2 instanceof Set) { return ZodParsedType.set; } if (typeof Date !== "undefined" && data2 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: data2, 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 map2 of maps) { errorMessage = map2(fullIssue, { data: data2, 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(parent2, value, path, key) { this._cachedPath = []; this.parent = parent2; 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(data2, params) { const result = this.safeParse(data2, params); if (result.success) return result.data; throw result.error; } safeParse(data2, params) { var _a2; const ctx = { common: { issues: [], async: (_a2 = params === null || params === void 0 ? void 0 : params.async) !== null && _a2 !== void 0 ? _a2 : 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: data2, parsedType: getParsedType(data2) }; const result = this._parseSync({ data: data2, path: ctx.path, parent: ctx }); return handleResult(ctx, result); } "~validate"(data2) { var _a2, _b; const ctx = { common: { issues: [], async: !!this["~standard"].async }, path: [], schemaErrorMap: this._def.errorMap, parent: null, data: data2, parsedType: getParsedType(data2) }; if (!this["~standard"].async) { try { const result = this._parseSync({ data: data2, path: [], parent: ctx }); return isValid(result) ? { value: result.value } : { issues: ctx.common.issues }; } catch (err2) { if ((_b = (_a2 = err2 === null || err2 === void 0 ? void 0 : err2.message) === null || _a2 === void 0 ? void 0 : _a2.toLowerCase()) === null || _b === void 0 ? void 0 : _b.includes("encountered")) { this["~standard"].async = true; } ctx.common = { issues: [], async: true }; } } return this._parseAsync({ data: data2, path: [], parent: ctx }).then((result) => isValid(result) ? { value: result.value } : { issues: ctx.common.issues }); } async parseAsync(data2, params) { const result = await this.safeParseAsync(data2, params); if (result.success) return result.data; throw result.error; } async safeParseAsync(data2, 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: data2, parsedType: getParsedType(data2) }; const maybeAsyncResult = this._parse({ data: data2, path: ctx.path, parent: ctx }); const result = await (isAsync(maybeAsyncResult) ? maybeAsyncResult : Promise.resolve(maybeAsyncResult)); return handleResult(ctx, result); } refine(check, message) { const getIssueProperties = (val2) => { if (typeof message === "string" || typeof message === "undefined") { return { message }; } else if (typeof message === "function") { return message(val2); } else { return message; } }; return this._refinement((val2, ctx) => { const result = check(val2); const setError = () => ctx.addIssue({ code: ZodIssueCode.custom, ...getIssueProperties(val2) }); if (typeof Promise !== "undefined" && result instanceof Promise) { return result.then((data2) => { if (!data2) { setError(); return false; } else { return true; } }); } if (!result) { setError(); return false; } else { return true; } }); } refinement(check, refinementData) { return this._refinement((val2, ctx) => { if (!check(val2)) { ctx.addIssue(typeof refinementData === "function" ? refinementData(val2, 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: (data2) => this["~validate"](data2) }; } 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 (_a2) { 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((data2) => regex.test(data2), { 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 _a2, _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: (_a2 = options === null || options === void 0 ? void 0 : options.offset) !== null && _a2 !== void 0 ? _a2 : 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 _a2; return new ZodString({ checks: [], typeName: ZodFirstPartyTypeKind.ZodString, coerce: (_a2 = params === null || params === void 0 ? void 0 : params.coerce) !== null && _a2 !== void 0 ? _a2 : 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 (_a2) { 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 _a2; return new ZodBigInt({ checks: [], typeName: ZodFirstPartyTypeKind.ZodBigInt, coerce: (_a2 = params === null || params === void 0 ? void 0 : params.coerce) !== null && _a2 !== void 0 ? _a2 : 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 _a2, _b, _c, _d; const defaultError = (_c = (_b = (_a2 = this._def).errorMap) === null || _b === void 0 ? void 0 : _b.call(_a2, 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(index2) { return new _ZodObject2({ ...this._def, catchall: index2 }); } 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(first2, second, third) { if (second instanceof ZodType) { return new _ZodRecord2({ keyType: first2, valueType: second, typeName: ZodFirstPartyTypeKind.ZodRecord, ...processCreateParams(third) }); } return new _ZodRecord2({ keyType: ZodString.create(), valueType: first2, 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], index2) => { return { key: keyType._parse(new ParseInputLazyPath(ctx, key, ctx.path, [index2, "key"])), value: valueType._parse(new ParseInputLazyPath(ctx, value, ctx.path, [index2, "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 val2 of this._def.values) { enumValues[val2] = val2; } return enumValues; } get Values() { const enumValues = {}; for (const val2 of this._def.values) { enumValues[val2] = val2; } return enumValues; } get Enum() { const enumValues = {}; for (const val2 of this._def.values) { enumValues[val2] = val2; } 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((data2) => { return this._def.type.parseAsync(data2, { 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 data2 = ctx.data; if (ctx.parsedType === ZodParsedType.undefined) { data2 = this._def.defaultValue(); } return this._def.innerType._parse({ data: data2, 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 data2 = ctx.data; return this._def.type._parse({ data: data2, 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 = (data2) => { if (isValid(data2)) { data2.value = Object.freeze(data2.value); } return data2; }; return isAsync(result) ? result.then((data2) => freeze(data2)) : 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((data2) => data2 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((val2) => { try { atob(val2); return true; } catch (_a2) { 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, data2) { super(`MCP error ${code}: ${message}`); this.code = code; this.data = data2; 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 _a2, _b, _c; this._transport = transport; const _onclose = (_a2 = this.transport) === null || _a2 === void 0 ? void 0 : _a2.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 _a2; const responseHandlers = this._responseHandlers; this._responseHandlers = /* @__PURE__ */ new Map(); this._progressHandlers.clear(); this._pendingDebouncedNotifications.clear(); this._transport = void 0; (_a2 = this.onclose) === null || _a2 === void 0 ? void 0 : _a2.call(this); const error = new McpError(ErrorCode.ConnectionClosed, "Connection closed"); for (const handler of responseHandlers.values()) { handler(error); } } _onerror(error) { var _a2; (_a2 = this.onerror) === null || _a2 === void 0 ? void 0 : _a2.call(this, error); } _onnotification(notification) { var _a2; const handler = (_a2 = this._notificationHandlers.get(notification.method)) !== null && _a2 !== void 0 ? _a2 : 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 _a2, _b; const handler = (_a2 = this._requestHandlers.get(request.method)) !== null && _a2 !== void 0 ? _a2 : 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 _a3; 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: (_a3 = error.message) !== null && _a3 !== void 0 ? _a3 : "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 _a2; await ((_a2 = this._transport) === null || _a2 === void 0 ? void 0 : _a2.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 _a2, _b, _c, _d, _e, _f; if (!this._transport) { reject(new Error("Not connected")); return; } if (((_a2 = this._options) === null || _a2 === void 0 ? void 0 : _a2.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 _a3; this._responseHandlers.delete(messageId); this._progressHandlers.delete(messageId); this._cleanupTimeout(messageId); (_a3 = this._transport) === null || _a3 === void 0 ? void 0 : _a3.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 _a3; if ((_a3 = options === null || options === void 0 ? void 0 : options.signal) === null || _a3 === void 0 ? void 0 : _a3.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 _a3; cancel((_a3 = options === null || options === void 0 ? void 0 : options.signal) === null || _a3 === void 0 ? void 0 : _a3.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 _a2, _b; if (!this._transport) { throw new Error("Not connected"); } this.assertNotificationCapability(notification.method); const debouncedMethods = (_b = (_a2 = this._options) === null || _a2 === void 0 ? void 0 : _a2.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 _a3; this._pendingDebouncedNotifications.delete(notification.method); if (!this._transport) { return; } const jsonrpcNotification2 = { ...notification, jsonrpc: "2.0" }; (_a3 = this._transport) === null || _a3 === void 0 ? void 0 : _a3.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 merge3() { 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 toArray3(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 = merge3(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$$ = merge3(GEN_DELIMS$$, SUB_DELIMS$$), UCSCHAR$$ = isIRI2 ? "[\\xA0-\\u200D\\u2010-\\u2029\\u202F-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]" : "[]", IPRIVATE$$ = isIRI2 ? "[\\uE000-\\uF8FF]" : "[]", UNRESERVED$$2 = merge3(ALPHA$$, DIGIT$$, "[\\-\\.\\_\\~]", UCSCHAR$$), SCHEME$ = subexp(ALPHA$$ + merge3(ALPHA$$, DIGIT$$, "[\\+\\-\\.]") + "*"), USERINFO$ = subexp(subexp(PCT_ENCODED$2 + "|" + merge3(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 + "+\\." + merge3(UNRESERVED$$2, SUB_DELIMS$$, "[\\:]") + "+"), IP_LITERAL$ = subexp("\\[" + subexp(IPV6ADDRZ_RELAXED$ + "|" + IPV6ADDRESS$ + "|" + IPVFUTURE$) + "\\]"), REG_NAME$ = subexp(subexp(PCT_ENCODED$2 + "|" + merge3(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 + "|" + merge3(UNRESERVED$$2, SUB_DELIMS$$, "[\\:\\@]")), SEGMENT$ = subexp(PCHAR$ + "*"), SEGMENT_NZ$ = subexp(PCHAR$ + "+"), SEGMENT_NZ_NC$ = subexp(subexp(PCT_ENCODED$2 + "|" + merge3(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$ + "|" + merge3("[\\/\\?]", 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(merge3("[^]", ALPHA$$, DIGIT$$, "[\\+\\-\\.]"), "g"), NOT_USERINFO: new RegExp(merge3("[^\\%\\:]", UNRESERVED$$2, SUB_DELIMS$$), "g"), NOT_HOST: new RegExp(merge3("[^\\%\\[\\]\\:]", UNRESERVED$$2, SUB_DELIMS$$), "g"), NOT_PATH: new RegExp(merge3("[^\\%\\/\\:\\@]", UNRESERVED$$2, SUB_DELIMS$$), "g"), NOT_PATH_NOSCHEME: new RegExp(merge3("[^\\%\\/\\@]", UNRESERVED$$2, SUB_DELIMS$$), "g"), NOT_QUERY: new RegExp(merge3("[^\\%]", UNRESERVED$$2, SUB_DELIMS$$, "[\\:\\@\\/\\?]", IPRIVATE$$), "g"), NOT_FRAGMENT: new RegExp(merge3("[^\\%]", UNRESERVED$$2, SUB_DELIMS$$, "[\\:\\@\\/\\?]"), "g"), ESCAPE: new RegExp(merge3("[^]", UNRESERVED$$2, SUB_DELIMS$$), "g"), UNRESERVED: new RegExp(UNRESERVED$$2, "g"), OTHER_CHARS: new RegExp(merge3("[^\\%]", 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 map2(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 = map2(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 index2 = basic > 0 ? basic + 1 : 0; index2 < inputLength; ) { var oldi = i; for ( var w = 1, k = base; ; /* no condition */ k += base ) { if (index2 >= inputLength) { error$1("invalid-input"); } var digit = basicToDigit(input.charCodeAt(index2++)); 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), last2 = _address$toLowerCase$2[0], first2 = _address$toLowerCase$2[1]; var firstFields = first2 ? first2.split(":").map(_stripLeadingZeros) : []; var lastFields = last2.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, index2) { if (!field || field === "0") { var lastLongest = acc[acc.length - 1]; if (lastLongest && lastLongest.index + lastLongest.length === index2) { lastLongest.length++; } else { acc.push({ index: index2, 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 parse8(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 serialize3(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 = parse8(serialize3(base2, options), options); relative = parse8(serialize3(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 serialize3(resolveComponents(parse8(baseURI, schemelessOptions), parse8(relativeURI, schemelessOptions), schemelessOptions, true), schemelessOptions); } function normalize(uri, options) { if (typeof uri === "string") { uri = serialize3(parse8(uri, options), options); } else if (typeOf(uri) === "object") { uri = parse8(serialize3(uri, options), options); } return uri; } function equal(uriA, uriB, options) { if (typeof uriA === "string") { uriA = serialize3(parse8(uriA, options), options); } else if (typeOf(uriA) === "object") { uriA = serialize3(uriA, options); } if (typeof uriB === "string") { uriB = serialize3(parse8(uriB, options), options); } else if (typeOf(uriB) === "object") { uriB = serialize3(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 parse9(components, options) { if (!components.host) { components.error = components.error || "HTTP URIs must have a host."; } return components; }, serialize: function serialize4(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 parse9(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 serialize4(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$$ = merge3(QTEXT$$, '[\\"\\\\]'); var SOME_DELIMS$$ = "[\\!\\$\\'\\(\\)\\*\\+\\,\\;\\:\\@]"; var UNRESERVED = new RegExp(UNRESERVED$$, "g"); var PCT_ENCODED = new RegExp(PCT_ENCODED$, "g"); var NOT_LOCAL_PART = new RegExp(merge3("[^]", ATEXT$$, "[\\.]", '[\\"]', VCHAR$$), "g"); var NOT_HFNAME = new RegExp(merge3("[^]", 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 = toArray3(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 parse9(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 serialize4(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 = parse8; exports3.removeDotSegments = removeDotSegments; exports3.serialize = serialize3; 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, data2, strictNumbers, negate) { var EQUAL = negate ? " !== " : " === ", AND = negate ? " || " : " && ", OK3 = negate ? "!" : "", NOT = negate ? "" : "!"; switch (dataType) { case "null": return data2 + EQUAL + "null"; case "array": return OK3 + "Array.isArray(" + data2 + ")"; case "object": return "(" + OK3 + data2 + AND + "typeof " + data2 + EQUAL + '"object"' + AND + NOT + "Array.isArray(" + data2 + "))"; case "integer": return "(typeof " + data2 + EQUAL + '"number"' + AND + NOT + "(" + data2 + " % 1)" + AND + data2 + EQUAL + data2 + (strictNumbers ? AND + OK3 + "isFinite(" + data2 + ")" : "") + ")"; case "number": return "(typeof " + data2 + EQUAL + '"' + dataType + '"' + (strictNumbers ? AND + OK3 + "isFinite(" + data2 + ")" : "") + ")"; default: return "typeof " + data2 + EQUAL + '"' + dataType + '"'; } } function checkDataTypes(dataTypes, data2, strictNumbers) { switch (dataTypes.length) { case 1: return checkDataType(dataTypes[0], data2, strictNumbers, true); default: var code = ""; var types = toHash(dataTypes); if (types.array && types.object) { code = types.null ? "(" : "(!" + data2 + " || "; code += "typeof " + data2 + ' !== "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, data2, 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, isNumber3) { var path = jsonPointers ? "'/' + " + expr + (isNumber3 ? "" : ".replace(/~/g, '~0').replace(/\\//g, '~1')") : isNumber3 ? "'[' + " + expr + " + ']'" : "'[\\'' + " + expr + " + '\\']'"; return joinPaths(currentPath, path); } function getPath(currentPath, prop2, jsonPointers) { var path = jsonPointers ? toQuotedString("/" + escapeJsonPointer(prop2)) : toQuotedString(getProperty(prop2)); 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, data2, matches; if ($data === "") return "rootData"; if ($data[0] == "/") { if (!JSON_POINTER.test($data)) throw new Error("Invalid JSON-pointer: " + $data); jsonPointer = $data; data2 = "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); data2 = "data" + (lvl - up || ""); if (!jsonPointer) return data2; } var expr = data2; var segments = jsonPointer.split("/"); for (var i = 0; i < segments.length; i++) { var segment = segments[i]; if (segment) { data2 += getProperty(unescapeJsonPointer(segment)); expr += " && " + data2; } } 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 prop2 in sch) _traverse(opts, pre, post, sch[prop2], jsonPtr + "/" + key + "/" + escapeJsonPtr(prop2), rootSchema, jsonPtr, key, schema, prop2); } } 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(compile4, root2, ref) { var refVal = this._refs[ref]; if (typeof refVal == "string") { if (this._refs[refVal]) refVal = this._refs[refVal]; else return resolve.call(this, compile4, root2, 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, root2, ref); var schema, v, baseId; if (res) { schema = res.schema; root2 = res.root; baseId = res.baseId; } if (schema instanceof SchemaObject) { v = schema.validate || compile4.call(this, schema.schema, root2, void 0, baseId); } else if (schema !== void 0) { v = inlineRef(schema, this._opts.inlineRefs) ? schema : compile4.call(this, schema, root2, void 0, baseId); } return v; } function resolveSchema(root2, ref) { var p = URI.parse(ref), refPath = _getFullPath(p), baseId = getFullPath(this._getId(root2.schema)); if (Object.keys(root2.schema).length === 0 || refPath !== baseId) { var id = normalizeId(refPath); var refVal = this._refs[id]; if (typeof refVal == "string") { return resolveRecursive.call(this, root2, refVal, p); } else if (refVal instanceof SchemaObject) { if (!refVal.validate) this._compile(refVal); root2 = refVal; } else { refVal = this._schemas[id]; if (refVal instanceof SchemaObject) { if (!refVal.validate) this._compile(refVal); if (id == normalizeId(ref)) return { schema: refVal, root: root2, baseId }; root2 = refVal; } else { return; } } if (!root2.schema) return; baseId = getFullPath(this._getId(root2.schema)); } return getJsonPointer.call(this, p, baseId, root2.schema, root2); } function resolveRecursive(root2, ref, parsedRef) { var res = resolveSchema.call(this, root2, ref); if (res) { var schema = res.schema; var baseId = res.baseId; root2 = res.root; var id = this._getId(schema); if (id) baseId = resolveUrl(baseId, id); return getJsonPointer.call(this, parsedRef, baseId, schema, root2); } } var PREVENT_SCOPE_CHANGE = util5.toHash(["properties", "patternProperties", "enum", "dependencies", "definitions"]); function getJsonPointer(parsedRef, baseId, schema, root2) { 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, root2, $ref); if (res) { schema = res.schema; root2 = res.root; baseId = res.baseId; } } } } } if (schema !== void 0 && schema !== root2.schema) return { schema, root: root2, 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(data2, 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 stringify2(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 += stringify2(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 = stringify2(node[key]); if (!value) continue; if (out) out += ","; out += JSON.stringify(key) + ":" + value; } seen.splice(seenIndex, 1); return "{" + out + "}"; })(data2); }; } }); // 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 = compile4; function compile4(schema, root2, localRefs, baseId) { var self2 = this, opts = this._opts, refVal = [void 0], refs = {}, patterns = [], patternsHash = {}, defaults2 = [], defaultsHash = {}, customRules = []; root2 = root2 || { schema, refVal, refs }; var c = checkCompiling.call(this, schema, root2, 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, root2, 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, root2, 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 != root2.schema) return compile4.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, root2, 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 && root2.refs) { var rootRefId = root2.refs[ref]; if (rootRefId !== void 0) { _refVal = root2.refVal[rootRefId]; refCode = addLocalRef(ref, _refVal); return resolvedRef(_refVal, refCode); } } refCode = addLocalRef(ref); var v2 = resolve.call(self2, localCompile, root2, ref); if (v2 === void 0) { var localSchema = localRefs && localRefs[ref]; if (localSchema) { v2 = resolve.inlineRef(localSchema, opts.inlineRefs) ? localSchema : compile4.call(self2, localSchema, root2, 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 index2 = patternsHash[regexStr]; if (index2 === void 0) { index2 = patternsHash[regexStr] = patterns.length; patterns[index2] = regexStr; } return "pattern" + index2; } 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 index2 = defaultsHash[valueStr]; if (index2 === void 0) { index2 = defaultsHash[valueStr] = defaults2.length; defaults2[index2] = value; } return "default" + index2; } } 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 compile5 = rule.definition.compile, inline = rule.definition.inline, macro = rule.definition.macro; var validate; if (compile5) { validate = compile5.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 index2 = customRules.length; customRules[index2] = validate; return { code: "customRule" + index2, validate }; } } function checkCompiling(schema, root2, baseId) { var index2 = compIndex.call(this, schema, root2, baseId); if (index2 >= 0) return { index: index2, compiling: true }; index2 = this._compilations.length; this._compilations[index2] = { schema, root: root2, baseId }; return { index: index2, compiling: false }; } function endCompiling(schema, root2, baseId) { var i = compIndex.call(this, schema, root2, baseId); if (i >= 0) this._compilations.splice(i, 1); } function compIndex(schema, root2, baseId) { for (var i = 0; i < this._compilations.length; i++) { var c = this._compilations[i]; if (c.schema == schema && c.root == root2 && 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 = compile4; Ajv2.prototype.addSchema = addSchema; Ajv2.prototype.addMetaSchema = addMetaSchema; Ajv2.prototype.validateSchema = validateSchema; Ajv2.prototype.getSchema = getSchema; Ajv2.prototype.removeSchema = removeSchema; Ajv2.prototype.addFormat = addFormat2; 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, data2) { 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(data2); if (v.$async !== true) this.errors = v.errors; return valid; } function compile4(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, root2 = res.root, baseId = res.baseId; var v = compileSchema.call(self2, schema, root2, void 0, baseId); self2._fragments[ref] = new SchemaObject({ ref, fragment: true, schema, root: root2, 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 serialize3 = this._opts.serialize; var cacheKey = serialize3 ? serialize3(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 serialize3 = this._opts.serialize; var cacheKey = serialize3 ? serialize3(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, root2) { if (schemaObj.compiling) { schemaObj.validate = callValidate; callValidate.schema = schemaObj.schema; callValidate.errors = null; callValidate.root = root2 ? root2 : 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, root2, 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 text3 = ""; for (var i = 0; i < errors.length; i++) { var e = errors[i]; if (e) text3 += dataVar + e.dataPath + " " + e.message + separator; } return text3.slice(0, -separator.length); } function addFormat2(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 _a2; super(options); this._serverInfo = _serverInfo; this._capabilities = (_a2 = options === null || options === void 0 ? void 0 : options.capabilities) !== null && _a2 !== void 0 ? _a2 : {}; this._instructions = options === null || options === void 0 ? void 0 : options.instructions; this.setRequestHandler(InitializeRequestSchema, (request) => this._oninitialize(request)); this.setNotificationHandler(InitializedNotificationSchema, () => { var _a3; return (_a3 = this.oninitialized) === null || _a3 === void 0 ? void 0 : _a3.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 _a2, _b, _c; switch (method) { case "sampling/createMessage": if (!((_a2 = this._clientCapabilities) === null || _a2 === void 0 ? void 0 : _a2.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/axios/lib/helpers/bind.js function bind(fn, thisArg) { return function wrap2() { 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(val2) { return val2 !== null && !isUndefined(val2) && val2.constructor !== null && !isUndefined(val2.constructor) && isFunction(val2.constructor.isBuffer) && val2.constructor.isBuffer(val2); } function isArrayBufferView(val2) { let result; if (typeof ArrayBuffer !== "undefined" && ArrayBuffer.isView) { result = ArrayBuffer.isView(val2); } else { result = val2 && val2.buffer && isArrayBuffer(val2.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 = (val2, key) => { const targetKey = caseless && findKey(result, key) || key; if (isPlainObject(result[targetKey]) && isPlainObject(val2)) { result[targetKey] = merge(result[targetKey], val2); } else if (isPlainObject(val2)) { result[targetKey] = merge({}, val2); } else if (isArray(val2)) { result[targetKey] = val2.slice(); } else { result[targetKey] = val2; } }; 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 = (val2) => { if (kindOf(val2) !== "object") { return false; } const prototype3 = getPrototypeOf(val2); return (prototype3 === null || prototype3 === Object.prototype || Object.getPrototypeOf(prototype3) === null) && !(Symbol.toStringTag in val2) && !(Symbol.iterator in val2); }; isDate = kindOfTest("Date"); isFile = kindOfTest("File"); isBlob = kindOfTest("Blob"); isFileList = kindOfTest("FileList"); isStream = (val2) => isObject(val2) && isFunction(val2.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, (val2, key) => { if (thisArg && isFunction(val2)) { a[key] = bind(val2, thisArg); } else { a[key] = val2; } }, { 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, filter5, propFilter) => { let props; let i; let prop2; const merged = {}; destObj = destObj || {}; if (sourceObj == null) return destObj; do { props = Object.getOwnPropertyNames(sourceObj); i = props.length; while (i-- > 0) { prop2 = props[i]; if ((!propFilter || propFilter(prop2, sourceObj, destObj)) && !merged[prop2]) { destObj[prop2] = sourceObj[prop2]; merged[prop2] = true; } } sourceObj = filter5 !== false && getPrototypeOf(sourceObj); } while (sourceObj && (!filter5 || filter5(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, prop2) => hasOwnProperty2.call(obj, prop2))(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: data2 }) => { if (source === _global && data2 === 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 filter5(obj) { return obj !== Error.prototype; }, (prop2) => { return prop2 !== "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(stream5) { return typeof stream5 !== "function" && typeof stream5 !== "string" && typeof stream5 !== "boolean" && typeof stream5 !== "number" && !Buffer.isBuffer(stream5); }; CombinedStream.prototype.append = function(stream5) { var isStreamLike = CombinedStream.isStreamLike(stream5); if (isStreamLike) { if (!(stream5 instanceof DelayedStream)) { var newStream = DelayedStream.create(stream5, { maxDataSize: Infinity, pauseStream: this.pauseStreams }); stream5.on("data", this._checkDataSize.bind(this)); stream5 = newStream; } this._handleErrors(stream5); if (this.pauseStreams) { stream5.pause(); } } this._streams.push(stream5); 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 stream5 = this._streams.shift(); if (typeof stream5 == "undefined") { this.end(); return; } if (typeof stream5 !== "function") { this._pipeNext(stream5); return; } var getStream = stream5; getStream(function(stream6) { var isStreamLike = CombinedStream.isStreamLike(stream6); if (isStreamLike) { stream6.on("data", this._checkDataSize.bind(this)); this._handleErrors(stream6); } this._pipeNext(stream6); }.bind(this)); }; CombinedStream.prototype._pipeNext = function(stream5) { this._currentStream = stream5; var isStreamLike = CombinedStream.isStreamLike(stream5); if (isStreamLike) { stream5.on("end", this._getNext.bind(this)); stream5.pipe(this, { end: false }); return; } var value = stream5; this.write(value); this._getNext(); }; CombinedStream.prototype._handleErrors = function(stream5) { var self2 = this; stream5.on("error", function(err2) { self2._emitError(err2); }); }; CombinedStream.prototype.write = function(data2) { this.emit("data", data2); }; 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(stream5) { if (!stream5.dataSize) { return; } self2.dataSize += stream5.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 hasOwn2 = 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 first2 = $strSlice(string, 0, 1); var last2 = $strSlice(string, -1); if (first2 === "%" && last2 !== "%") { throw new $SyntaxError("invalid intrinsic syntax, expected closing `%`"); } else if (last2 === "%" && first2 !== "%") { 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 (hasOwn2(LEGACY_ALIASES, intrinsicName)) { alias = LEGACY_ALIASES[intrinsicName]; intrinsicName = "%" + alias[0] + "%"; } if (hasOwn2(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 first2 = $strSlice(part, 0, 1); var last2 = $strSlice(part, -1); if ((first2 === '"' || first2 === "'" || first2 === "`" || (last2 === '"' || last2 === "'" || last2 === "`")) && first2 !== last2) { throw new $SyntaxError("property names with quotes must have matching quotes"); } if (part === "constructor" || !isOwn) { skipFurtherCaching = true; } intrinsicBaseName += "." + part; intrinsicRealName = "%" + intrinsicBaseName + "%"; if (hasOwn2(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 = hasOwn2(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 hasOwn2 = 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 || !hasOwn2(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) { module2.exports = function(dst, src) { Object.keys(src).forEach(function(prop2) { dst[prop2] = dst[prop2] || src[prop2]; }); 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) { var CombinedStream = require_combined_stream(); var util5 = require("util"); var path = require("path"); var http2 = require("http"); var https4 = require("https"); var parseUrl = require("url").parse; var fs = require("fs"); var Stream = require("stream").Stream; var mime = require_mime_types(); var asynckit = require_asynckit(); var setToStringTag = require_es_set_tostringtag(); var populate = require_populate(); module2.exports = FormData3; util5.inherits(FormData3, CombinedStream); 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]; } } 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 append4 = CombinedStream.prototype.append.bind(this); if (typeof value == "number") { value = "" + 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(); append4(header); append4(value); append4(footer); this._trackLength(header, value, options); }; FormData3.prototype._trackLength = function(header, value, options) { var valueLength = 0; if (options.knownLength != null) { valueLength += +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 && Object.prototype.hasOwnProperty.call(value, "httpVersion")) && !(value instanceof Stream)) { return; } if (!options.knownLength) { this._valuesToMeasure.push(value); } }; FormData3.prototype._lengthRetriever = function(value, callback) { if (Object.prototype.hasOwnProperty.call(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) { var fileSize; if (err2) { callback(err2); return; } fileSize = stat.size - (value.start ? value.start : 0); callback(null, fileSize); }); } } else if (Object.prototype.hasOwnProperty.call(value, "httpVersion")) { callback(null, +value.headers["content-length"]); } else if (Object.prototype.hasOwnProperty.call(value, "httpModule")) { value.on("response", function(response) { value.pause(); callback(null, +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 contents2 = ""; 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 prop2 in headers) { if (Object.prototype.hasOwnProperty.call(headers, prop2)) { header = headers[prop2]; if (header == null) { continue; } if (!Array.isArray(header)) { header = [header]; } if (header.length) { contents2 += prop2 + ": " + header.join("; ") + FormData3.LINE_BREAK; } } } return "--" + this.getBoundary() + FormData3.LINE_BREAK + contents2 + FormData3.LINE_BREAK; }; FormData3.prototype._getContentDisposition = function(value, options) { var filename, contentDisposition; if (typeof options.filepath === "string") { filename = path.normalize(options.filepath).replace(/\\/g, "/"); } else if (options.filename || value.name || value.path) { filename = path.basename(options.filename || value.name || value.path); } else if (value.readable && Object.prototype.hasOwnProperty.call(value, "httpVersion")) { filename = path.basename(value.client._httpMessage.path || ""); } if (filename) { contentDisposition = 'filename="' + filename + '"'; } return contentDisposition; }; FormData3.prototype._getContentType = function(value, options) { var contentType = options.contentType; if (!contentType && value.name) { contentType = mime.lookup(value.name); } if (!contentType && value.path) { contentType = mime.lookup(value.path); } if (!contentType && value.readable && Object.prototype.hasOwnProperty.call(value, "httpVersion")) { contentType = value.headers["content-type"]; } if (!contentType && (options.filepath || options.filename)) { contentType = mime.lookup(options.filepath || options.filename); } if (!contentType && typeof value == "object") { contentType = FormData3.DEFAULT_CONTENT_TYPE; } return contentType; }; FormData3.prototype._multiPartFooter = function() { return function(next2) { var footer = FormData3.LINE_BREAK; var lastPart = this._streams.length === 0; if (lastPart) { footer += this._lastBoundary(); } next2(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 (Object.prototype.hasOwnProperty.call(userHeaders, header)) { formHeaders[header.toLowerCase()] = userHeaders[header]; } } return formHeaders; }; FormData3.prototype.setBoundary = function(boundary) { 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() { var boundary = "--------------------------"; for (var i = 0; i < 24; i++) { boundary += Math.floor(Math.random() * 10).toString(16); } this._boundary = boundary; }; 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, options, 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 = https4.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"); } }); // 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 each2(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 each2(el, index2) { !(utils_default.isUndefined(el) || el === null) && formData.append( // eslint-disable-next-line no-nested-ternary indexes === true ? renderKey([key], index2, 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 each2(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(prop2) { return /^is[A-Z]/.test(prop2); }); 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 each2(pair) { return _encode(pair[0]) + "=" + _encode(pair[1]); }, "").join("&"); }; AxiosURLSearchParams_default = AxiosURLSearchParams; } }); // node_modules/axios/lib/helpers/buildURL.js function encode2(val2) { return encodeURIComponent(val2).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(data2, options) { return toFormData_default(data2, 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, index2) { let name = path[index2++]; if (name === "__proto__") return true; const isNumericKey = Number.isFinite(+name); const isLast = index2 >= 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], index2); 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(data2, headers) { const contentType = headers.getContentType() || ""; const hasJSONContentType = contentType.indexOf("application/json") > -1; const isObjectPayload = utils_default.isObject(data2); if (isObjectPayload && utils_default.isHTMLForm(data2)) { data2 = new FormData(data2); } const isFormData2 = utils_default.isFormData(data2); if (isFormData2) { return hasJSONContentType ? JSON.stringify(formDataToJSON_default(data2)) : data2; } if (utils_default.isArrayBuffer(data2) || utils_default.isBuffer(data2) || utils_default.isStream(data2) || utils_default.isFile(data2) || utils_default.isBlob(data2) || utils_default.isReadableStream(data2)) { return data2; } if (utils_default.isArrayBufferView(data2)) { return data2.buffer; } if (utils_default.isURLSearchParams(data2)) { headers.setContentType("application/x-www-form-urlencoded;charset=utf-8", false); return data2.toString(); } let isFileList2; if (isObjectPayload) { if (contentType.indexOf("application/x-www-form-urlencoded") > -1) { return toURLEncodedForm(data2, this.formSerializer).toString(); } if ((isFileList2 = utils_default.isFileList(data2)) || contentType.indexOf("multipart/form-data") > -1) { const _FormData = this.env && this.env.FormData; return toFormData_default( isFileList2 ? { "files[]": data2 } : data2, _FormData && new _FormData(), this.formSerializer ); } } if (isObjectPayload || hasJSONContentType) { headers.setContentType("application/json", false); return stringifySafely(data2); } return data2; }], transformResponse: [function transformResponse(data2) { const transitional2 = this.transitional || defaults.transitional; const forcedJSONParsing = transitional2 && transitional2.forcedJSONParsing; const JSONRequested = this.responseType === "json"; if (utils_default.isResponse(data2) || utils_default.isReadableStream(data2)) { return data2; } if (data2 && utils_default.isString(data2) && (forcedJSONParsing && !this.responseType || JSONRequested)) { const silentJSONParsing = transitional2 && transitional2.silentJSONParsing; const strictJSONParsing = !silentJSONParsing && JSONRequested; try { return JSON.parse(data2); } 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 data2; }], /** * 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 val2; let i; rawHeaders && rawHeaders.split("\n").forEach(function parser(line) { i = line.indexOf(":"); key = line.substring(0, i).trim().toLowerCase(); val2 = line.substring(i + 1).trim(); if (!key || parsed[key] && ignoreDuplicateOf[key]) { return; } if (key === "set-cookie") { if (parsed[key]) { parsed[key].push(val2); } else { parsed[key] = [val2]; } } else { parsed[key] = parsed[key] ? parsed[key] + ", " + val2 : val2; } }); 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, filter5, isHeaderNameFilter) { if (utils_default.isFunction(filter5)) { return filter5.call(this, value, header); } if (isHeaderNameFilter) { value = header; } if (!utils_default.isString(value)) return; if (utils_default.isString(filter5)) { return value.indexOf(filter5) !== -1; } if (utils_default.isRegExp(filter5)) { return filter5.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(first2, ...targets) { const computed = new this(first2); 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 data2 = context.data; utils_default.forEach(fns, function transform(fn) { data2 = fn.call(config, data2, headers.normalize(), response ? response.status : void 0); }); headers.normalize(); return data2; } 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 w = d * 7; var y = d * 365.25; module2.exports = function(val2, options) { options = options || {}; var type = typeof val2; if (type === "string" && val2.length > 0) { return parse8(val2); } else if (type === "number" && isFinite(val2)) { return options.long ? fmtLong(val2) : fmtShort(val2); } throw new Error( "val is not a non-empty string or a valid number. val=" + JSON.stringify(val2) ); }; function parse8(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" : ""); } } }); // node_modules/debug/src/common.js var require_common = __commonJS({ "node_modules/debug/src/common.js"(exports2, module2) { function setup(env) { createDebug.debug = createDebug; createDebug.default = createDebug; createDebug.coerce = coerce3; createDebug.disable = disable; createDebug.enable = enable; createDebug.enabled = enabled; createDebug.humanize = require_ms(); 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 index2 = 0; args[0] = args[0].replace(/%([a-zA-Z%])/g, (match, format) => { if (match === "%%") { return "%"; } index2++; const formatter = createDebug.formatters[format]; if (typeof formatter === "function") { const val2 = args[index2]; match = formatter.call(self2, val2); args.splice(index2, 1); index2--; } 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(" ", ",").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 coerce3(val2) { if (val2 instanceof Error) { return val2.stack || val2.message; } return val2; } 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; } }); // node_modules/debug/src/browser.js var require_browser = __commonJS({ "node_modules/debug/src/browser.js"(exports2, module2) { exports2.formatArgs = formatArgs; exports2.save = save; exports2.load = load2; 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 index2 = 0; let lastC = 0; args[0].replace(/%[a-zA-Z%]/g, (match) => { if (match === "%%") { return; } index2++; if (match === "%c") { lastC = index2; } }); 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 load2() { let r; try { r = 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; } }; } }); // 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.init = init; exports2.log = log; exports2.formatArgs = formatArgs; exports2.save = save; exports2.load = load2; exports2.useColors = useColors; exports2.destroy = util5.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 prop2 = key.substring(6).toLowerCase().replace(/_([a-z])/g, (_, k) => { return k.toUpperCase(); }); let val2 = process.env[key]; if (/^(yes|on|true|enabled)$/i.test(val2)) { val2 = true; } else if (/^(no|off|false|disabled)$/i.test(val2)) { val2 = false; } else if (val2 === "null") { val2 = null; } else { val2 = Number(val2); } obj[prop2] = val2; 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(util5.formatWithOptions(exports2.inspectOpts, ...args) + "\n"); } function save(namespaces) { if (namespaces) { process.env.DEBUG = namespaces; } else { delete process.env.DEBUG; } } function load2() { 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 util5.inspect(v, this.inspectOpts).split("\n").map((str) => str.trim()).join(" "); }; formatters.O = function(v) { this.inspectOpts.colors = this.useColors; return util5.inspect(v, this.inspectOpts); }; } }); // 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" || process.browser === true || process.__nwjs) { module2.exports = require_browser(); } else { module2.exports = require_node(); } } }); // node_modules/follow-redirects/debug.js var require_debug = __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 https4 = require("https"); var Writable = require("stream").Writable; var assert = require("assert"); var debug = require_debug(); (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(data2, encoding, callback) { if (this._ending) { throw new WriteAfterEndError(); } if (!isString2(data2) && !isBuffer2(data2)) { throw new TypeError("data should be a string, Buffer or Uint8Array"); } if (isFunction2(encoding)) { callback = encoding; encoding = null; } if (data2.length === 0) { if (callback) { callback(); } return; } if (this._requestBodyLength + data2.length <= this._options.maxBodyLength) { this._requestBodyLength += data2.length; this._requestBodyBuffers.push({ data: data2, encoding }); this._currentRequest.write(data2, encoding, callback); } else { this.emit("error", new MaxBodyLengthExceededError()); this.abort(); } }; RedirectableRequest.prototype.end = function(data2, encoding, callback) { if (isFunction2(data2)) { callback = data2; data2 = encoding = null; } else if (isFunction2(encoding)) { callback = encoding; encoding = null; } if (!data2) { this._ended = this._ending = true; this._currentRequest.end(null, null, callback); } else { var self2 = this; var currentRequest = this._currentRequest; this.write(data2, 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 wrap2(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 get2(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: get2, 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 = wrap2({ http: http2, https: https4 }); module2.exports.wrap = wrap2; } }); // 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, (prop2, source) => { return !utils_default.isUndefined(source[prop2]); }); 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 data2 = { 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(data2); }, 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 = (stream5, [throttled, flush]) => { stream5.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: data2, 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(data2)) { const userBoundary = headers.getContentType(/boundary=([-_\w\d]{10,70})/i); data2 = formDataToStream_default(data2, (formHeaders) => { headers.set(formHeaders); }, { tag: `axios-${VERSION}-boundary`, boundary: userBoundary && userBoundary[1] || void 0 }); } else if (utils_default.isFormData(data2) && utils_default.isFunction(data2.getHeaders)) { headers.set(data2.getHeaders()); if (!headers.hasContentLength()) { try { const knownLength = await import_util2.default.promisify(data2.getLength).call(data2); Number.isFinite(knownLength) && knownLength >= 0 && headers.setContentLength(knownLength); } catch (e) { } } } else if (utils_default.isBlob(data2) || utils_default.isFile(data2)) { data2.size && headers.setContentType(data2.type || "application/octet-stream"); headers.setContentLength(data2.size || 0); data2 = import_stream4.default.Readable.from(readBlob_default(data2)); } else if (data2 && !utils_default.isStream(data2)) { if (Buffer.isBuffer(data2)) { } else if (utils_default.isArrayBuffer(data2)) { data2 = Buffer.from(new Uint8Array(data2)); } else if (utils_default.isString(data2)) { data2 = Buffer.from(data2, "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(data2.length, false); if (config.maxBodyLength > -1 && data2.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 (data2 && (onUploadProgress || maxUploadRate)) { if (!utils_default.isStream(data2)) { data2 = import_stream4.default.Readable.from(data2, { objectMode: false }); } data2 = import_stream4.default.pipeline([data2, new AxiosTransformStream_default({ maxRate: utils_default.toFiniteNumber(maxUploadRate) })], utils_default.noop); onUploadProgress && data2.on("progress", flushOnFinish( data2, 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(data2)) { let ended = false; let errored = false; data2.on("end", () => { ended = true; }); data2.once("error", (err2) => { errored = true; req.destroy(err2); }); data2.on("close", () => { if (!ended && !errored) { abort(new CanceledError_default("Request stream has been aborted", config, req)); } }); data2.pipe(req); } else { req.end(data2); } }); }; } }); // 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, prop2, 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, prop2, caseless) { if (!utils_default.isUndefined(b)) { return getMergedValue(a, b, prop2, caseless); } else if (!utils_default.isUndefined(a)) { return getMergedValue(void 0, a, prop2, 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, prop2) { if (prop2 in config2) { return getMergedValue(a, b); } else if (prop2 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, prop2) => mergeDeepProperties(headersToObject(a), headersToObject(b), prop2, true) }; utils_default.forEach(Object.keys(Object.assign({}, config1, config2)), function computeConfigValue(prop2) { const merge3 = mergeMap[prop2] || mergeDeepProperties; const configValue = merge3(config1[prop2], config2[prop2], prop2); utils_default.isUndefined(configValue) && merge3 !== mergeDirectKeys || (config[prop2] = 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: data2, 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(data2)) { 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(val2, key) { request.setRequestHeader(key, val2); }); } 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 end2; while (pos < len) { end2 = pos + chunkSize; yield chunk.slice(pos, end2); pos = end2; } }; readBytes = async function* (iterable, chunkSize) { for await (const chunk of readStream(iterable)) { yield* streamChunk(chunk, chunkSize); } }; readStream = async function* (stream5) { if (stream5[Symbol.asyncIterator]) { yield* stream5; return; } const reader = stream5.getReader(); try { for (; ; ) { const { done, value } = await reader.read(); if (done) { break; } yield value; } } finally { await reader.cancel(); } }; trackStream = (stream5, chunkSize, onProgress, onFinish) => { const iterator = readBytes(stream5, 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: data2, 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, data2)) !== 0) { let _request = new Request(url2, { method: "POST", body: data2, duplex: "half" }); let contentTypeHeader; if (utils_default.isFormData(data2) && (contentTypeHeader = _request.headers.get("content-type"))) { headers.setContentType(contentTypeHeader); } if (_request.body) { const [onProgress, flush] = progressEventDecorator( requestContentLength, progressEventReducer(asyncDecorator(onUploadProgress)) ); data2 = 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: data2, 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((prop2) => { options[prop2] = response[prop2]; }); 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 = (adapter2) => utils_default.isFunction(adapter2) || adapter2 === null || adapter2 === false; adapters_default = { getAdapter: (adapters) => { adapters = utils_default.isArray(adapters) ? adapters : [adapters]; const { length } = adapters; let nameOrAdapter; let adapter2; const rejectedReasons = {}; for (let i = 0; i < length; i++) { nameOrAdapter = adapters[i]; let id; adapter2 = nameOrAdapter; if (!isResolvedHandle(nameOrAdapter)) { adapter2 = knownAdapters[(id = String(nameOrAdapter)).toLowerCase()]; if (adapter2 === void 0) { throw new AxiosError_default(`Unknown adapter '${id}'`); } } if (adapter2) { break; } rejectedReasons[id || "#" + i] = adapter2; } if (!adapter2) { 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 adapter2; }, 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 adapter2 = adapters_default.getAdapter(config.adapter || defaults_default.adapter); return adapter2(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, data2, config) { return this.request(mergeConfig(config || {}, { method, headers: isForm ? { "Content-Type": "multipart/form-data" } : {}, url: url2, data: data2 })); }; } 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 index2 = this._listeners.indexOf(listener); if (index2 !== -1) { this._listeners.splice(index2, 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 wrap2(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); } }); // node_modules/cheerio/dist/esm/options.js function flattenOptions(options, baseOptions) { if (!options) { return baseOptions !== null && baseOptions !== void 0 ? baseOptions : defaultOpts; } const opts = { _useHtmlParser2: !!options.xmlMode, ...baseOptions, ...options }; if (options.xml) { opts._useHtmlParser2 = true; opts.xmlMode = true; if (options.xml !== true) { Object.assign(opts, options.xml); } } else if (options.xmlMode) { opts._useHtmlParser2 = true; } return opts; } var defaultOpts; var init_options = __esm({ "node_modules/cheerio/dist/esm/options.js"() { defaultOpts = { _useHtmlParser2: false }; } }); // node_modules/domelementtype/lib/esm/index.js function isTag(elem) { return elem.type === ElementType.Tag || elem.type === ElementType.Script || elem.type === ElementType.Style; } var ElementType, Root, Text, Directive, Comment, Script, Style, Tag, CDATA, Doctype; var init_esm = __esm({ "node_modules/domelementtype/lib/esm/index.js"() { (function(ElementType2) { ElementType2["Root"] = "root"; ElementType2["Text"] = "text"; ElementType2["Directive"] = "directive"; ElementType2["Comment"] = "comment"; ElementType2["Script"] = "script"; ElementType2["Style"] = "style"; ElementType2["Tag"] = "tag"; ElementType2["CDATA"] = "cdata"; ElementType2["Doctype"] = "doctype"; })(ElementType || (ElementType = {})); Root = ElementType.Root; Text = ElementType.Text; Directive = ElementType.Directive; Comment = ElementType.Comment; Script = ElementType.Script; Style = ElementType.Style; Tag = ElementType.Tag; CDATA = ElementType.CDATA; Doctype = ElementType.Doctype; } }); // node_modules/domhandler/lib/esm/node.js function isTag2(node) { return isTag(node); } function isCDATA(node) { return node.type === ElementType.CDATA; } function isText(node) { return node.type === ElementType.Text; } function isComment(node) { return node.type === ElementType.Comment; } function isDirective(node) { return node.type === ElementType.Directive; } function isDocument(node) { return node.type === ElementType.Root; } function hasChildren(node) { return Object.prototype.hasOwnProperty.call(node, "children"); } function cloneNode(node, recursive = false) { let result; if (isText(node)) { result = new Text2(node.data); } else if (isComment(node)) { result = new Comment2(node.data); } else if (isTag2(node)) { const children2 = recursive ? cloneChildren(node.children) : []; const clone2 = new Element(node.name, { ...node.attribs }, children2); children2.forEach((child) => child.parent = clone2); if (node.namespace != null) { clone2.namespace = node.namespace; } if (node["x-attribsNamespace"]) { clone2["x-attribsNamespace"] = { ...node["x-attribsNamespace"] }; } if (node["x-attribsPrefix"]) { clone2["x-attribsPrefix"] = { ...node["x-attribsPrefix"] }; } result = clone2; } else if (isCDATA(node)) { const children2 = recursive ? cloneChildren(node.children) : []; const clone2 = new CDATA2(children2); children2.forEach((child) => child.parent = clone2); result = clone2; } else if (isDocument(node)) { const children2 = recursive ? cloneChildren(node.children) : []; const clone2 = new Document(children2); children2.forEach((child) => child.parent = clone2); if (node["x-mode"]) { clone2["x-mode"] = node["x-mode"]; } result = clone2; } else if (isDirective(node)) { const instruction = new ProcessingInstruction(node.name, node.data); if (node["x-name"] != null) { instruction["x-name"] = node["x-name"]; instruction["x-publicId"] = node["x-publicId"]; instruction["x-systemId"] = node["x-systemId"]; } result = instruction; } else { throw new Error(`Not implemented yet: ${node.type}`); } result.startIndex = node.startIndex; result.endIndex = node.endIndex; if (node.sourceCodeLocation != null) { result.sourceCodeLocation = node.sourceCodeLocation; } return result; } function cloneChildren(childs) { const children2 = childs.map((child) => cloneNode(child, true)); for (let i = 1; i < children2.length; i++) { children2[i].prev = children2[i - 1]; children2[i - 1].next = children2[i]; } return children2; } var Node, DataNode, Text2, Comment2, ProcessingInstruction, NodeWithChildren, CDATA2, Document, Element; var init_node2 = __esm({ "node_modules/domhandler/lib/esm/node.js"() { init_esm(); Node = class { constructor() { this.parent = null; this.prev = null; this.next = null; this.startIndex = null; this.endIndex = null; } // Read-write aliases for properties /** * Same as {@link parent}. * [DOM spec](https://dom.spec.whatwg.org)-compatible alias. */ get parentNode() { return this.parent; } set parentNode(parent2) { this.parent = parent2; } /** * Same as {@link prev}. * [DOM spec](https://dom.spec.whatwg.org)-compatible alias. */ get previousSibling() { return this.prev; } set previousSibling(prev2) { this.prev = prev2; } /** * Same as {@link next}. * [DOM spec](https://dom.spec.whatwg.org)-compatible alias. */ get nextSibling() { return this.next; } set nextSibling(next2) { this.next = next2; } /** * Clone this node, and optionally its children. * * @param recursive Clone child nodes as well. * @returns A clone of the node. */ cloneNode(recursive = false) { return cloneNode(this, recursive); } }; DataNode = class extends Node { /** * @param data The content of the data node */ constructor(data2) { super(); this.data = data2; } /** * Same as {@link data}. * [DOM spec](https://dom.spec.whatwg.org)-compatible alias. */ get nodeValue() { return this.data; } set nodeValue(data2) { this.data = data2; } }; Text2 = class extends DataNode { constructor() { super(...arguments); this.type = ElementType.Text; } get nodeType() { return 3; } }; Comment2 = class extends DataNode { constructor() { super(...arguments); this.type = ElementType.Comment; } get nodeType() { return 8; } }; ProcessingInstruction = class extends DataNode { constructor(name, data2) { super(data2); this.name = name; this.type = ElementType.Directive; } get nodeType() { return 1; } }; NodeWithChildren = class extends Node { /** * @param children Children of the node. Only certain node types can have children. */ constructor(children2) { super(); this.children = children2; } // Aliases /** First child of the node. */ get firstChild() { var _a2; return (_a2 = this.children[0]) !== null && _a2 !== void 0 ? _a2 : null; } /** Last child of the node. */ get lastChild() { return this.children.length > 0 ? this.children[this.children.length - 1] : null; } /** * Same as {@link children}. * [DOM spec](https://dom.spec.whatwg.org)-compatible alias. */ get childNodes() { return this.children; } set childNodes(children2) { this.children = children2; } }; CDATA2 = class extends NodeWithChildren { constructor() { super(...arguments); this.type = ElementType.CDATA; } get nodeType() { return 4; } }; Document = class extends NodeWithChildren { constructor() { super(...arguments); this.type = ElementType.Root; } get nodeType() { return 9; } }; Element = class extends NodeWithChildren { /** * @param name Name of the tag, eg. `div`, `span`. * @param attribs Object mapping attribute names to attribute values. * @param children Children of the node. */ constructor(name, attribs, children2 = [], type = name === "script" ? ElementType.Script : name === "style" ? ElementType.Style : ElementType.Tag) { super(children2); this.name = name; this.attribs = attribs; this.type = type; } get nodeType() { return 1; } // DOM Level 1 aliases /** * Same as {@link name}. * [DOM spec](https://dom.spec.whatwg.org)-compatible alias. */ get tagName() { return this.name; } set tagName(name) { this.name = name; } get attributes() { return Object.keys(this.attribs).map((name) => { var _a2, _b; return { name, value: this.attribs[name], namespace: (_a2 = this["x-attribsNamespace"]) === null || _a2 === void 0 ? void 0 : _a2[name], prefix: (_b = this["x-attribsPrefix"]) === null || _b === void 0 ? void 0 : _b[name] }; }); } }; } }); // node_modules/domhandler/lib/esm/index.js var defaultOpts2, DomHandler; var init_esm2 = __esm({ "node_modules/domhandler/lib/esm/index.js"() { init_esm(); init_node2(); init_node2(); defaultOpts2 = { withStartIndices: false, withEndIndices: false, xmlMode: false }; DomHandler = class { /** * @param callback Called once parsing has completed. * @param options Settings for the handler. * @param elementCB Callback whenever a tag is closed. */ constructor(callback, options, elementCB) { this.dom = []; this.root = new Document(this.dom); this.done = false; this.tagStack = [this.root]; this.lastNode = null; this.parser = null; if (typeof options === "function") { elementCB = options; options = defaultOpts2; } if (typeof callback === "object") { options = callback; callback = void 0; } this.callback = callback !== null && callback !== void 0 ? callback : null; this.options = options !== null && options !== void 0 ? options : defaultOpts2; this.elementCB = elementCB !== null && elementCB !== void 0 ? elementCB : null; } onparserinit(parser) { this.parser = parser; } // Resets the handler back to starting state onreset() { this.dom = []; this.root = new Document(this.dom); this.done = false; this.tagStack = [this.root]; this.lastNode = null; this.parser = null; } // Signals the handler that parsing is done onend() { if (this.done) return; this.done = true; this.parser = null; this.handleCallback(null); } onerror(error) { this.handleCallback(error); } onclosetag() { this.lastNode = null; const elem = this.tagStack.pop(); if (this.options.withEndIndices) { elem.endIndex = this.parser.endIndex; } if (this.elementCB) this.elementCB(elem); } onopentag(name, attribs) { const type = this.options.xmlMode ? ElementType.Tag : void 0; const element = new Element(name, attribs, void 0, type); this.addNode(element); this.tagStack.push(element); } ontext(data2) { const { lastNode } = this; if (lastNode && lastNode.type === ElementType.Text) { lastNode.data += data2; if (this.options.withEndIndices) { lastNode.endIndex = this.parser.endIndex; } } else { const node = new Text2(data2); this.addNode(node); this.lastNode = node; } } oncomment(data2) { if (this.lastNode && this.lastNode.type === ElementType.Comment) { this.lastNode.data += data2; return; } const node = new Comment2(data2); this.addNode(node); this.lastNode = node; } oncommentend() { this.lastNode = null; } oncdatastart() { const text3 = new Text2(""); const node = new CDATA2([text3]); this.addNode(node); text3.parent = node; this.lastNode = text3; } oncdataend() { this.lastNode = null; } onprocessinginstruction(name, data2) { const node = new ProcessingInstruction(name, data2); this.addNode(node); } handleCallback(error) { if (typeof this.callback === "function") { this.callback(error, this.dom); } else if (error) { throw error; } } addNode(node) { const parent2 = this.tagStack[this.tagStack.length - 1]; const previousSibling = parent2.children[parent2.children.length - 1]; if (this.options.withStartIndices) { node.startIndex = this.parser.startIndex; } if (this.options.withEndIndices) { node.endIndex = this.parser.endIndex; } parent2.children.push(node); if (previousSibling) { node.prev = previousSibling; previousSibling.next = node; } node.parent = parent2; this.lastNode = null; } }; } }); // node_modules/entities/lib/esm/generated/decode-data-html.js var decode_data_html_default; var init_decode_data_html = __esm({ "node_modules/entities/lib/esm/generated/decode-data-html.js"() { decode_data_html_default = new Uint16Array( // prettier-ignore '\u1D41<\xD5\u0131\u028A\u049D\u057B\u05D0\u0675\u06DE\u07A2\u07D6\u080F\u0A4A\u0A91\u0DA1\u0E6D\u0F09\u0F26\u10CA\u1228\u12E1\u1415\u149D\u14C3\u14DF\u1525\0\0\0\0\0\0\u156B\u16CD\u198D\u1C12\u1DDD\u1F7E\u2060\u21B0\u228D\u23C0\u23FB\u2442\u2824\u2912\u2D08\u2E48\u2FCE\u3016\u32BA\u3639\u37AC\u38FE\u3A28\u3A71\u3AE0\u3B2E\u0800EMabcfglmnoprstu\\bfms\x7F\x84\x8B\x90\x95\x98\xA6\xB3\xB9\xC8\xCFlig\u803B\xC6\u40C6P\u803B&\u4026cute\u803B\xC1\u40C1reve;\u4102\u0100iyx}rc\u803B\xC2\u40C2;\u4410r;\uC000\u{1D504}rave\u803B\xC0\u40C0pha;\u4391acr;\u4100d;\u6A53\u0100gp\x9D\xA1on;\u4104f;\uC000\u{1D538}plyFunction;\u6061ing\u803B\xC5\u40C5\u0100cs\xBE\xC3r;\uC000\u{1D49C}ign;\u6254ilde\u803B\xC3\u40C3ml\u803B\xC4\u40C4\u0400aceforsu\xE5\xFB\xFE\u0117\u011C\u0122\u0127\u012A\u0100cr\xEA\xF2kslash;\u6216\u0176\xF6\xF8;\u6AE7ed;\u6306y;\u4411\u0180crt\u0105\u010B\u0114ause;\u6235noullis;\u612Ca;\u4392r;\uC000\u{1D505}pf;\uC000\u{1D539}eve;\u42D8c\xF2\u0113mpeq;\u624E\u0700HOacdefhilorsu\u014D\u0151\u0156\u0180\u019E\u01A2\u01B5\u01B7\u01BA\u01DC\u0215\u0273\u0278\u027Ecy;\u4427PY\u803B\xA9\u40A9\u0180cpy\u015D\u0162\u017Aute;\u4106\u0100;i\u0167\u0168\u62D2talDifferentialD;\u6145leys;\u612D\u0200aeio\u0189\u018E\u0194\u0198ron;\u410Cdil\u803B\xC7\u40C7rc;\u4108nint;\u6230ot;\u410A\u0100dn\u01A7\u01ADilla;\u40B8terDot;\u40B7\xF2\u017Fi;\u43A7rcle\u0200DMPT\u01C7\u01CB\u01D1\u01D6ot;\u6299inus;\u6296lus;\u6295imes;\u6297o\u0100cs\u01E2\u01F8kwiseContourIntegral;\u6232eCurly\u0100DQ\u0203\u020FoubleQuote;\u601Duote;\u6019\u0200lnpu\u021E\u0228\u0247\u0255on\u0100;e\u0225\u0226\u6237;\u6A74\u0180git\u022F\u0236\u023Aruent;\u6261nt;\u622FourIntegral;\u622E\u0100fr\u024C\u024E;\u6102oduct;\u6210nterClockwiseContourIntegral;\u6233oss;\u6A2Fcr;\uC000\u{1D49E}p\u0100;C\u0284\u0285\u62D3ap;\u624D\u0580DJSZacefios\u02A0\u02AC\u02B0\u02B4\u02B8\u02CB\u02D7\u02E1\u02E6\u0333\u048D\u0100;o\u0179\u02A5trahd;\u6911cy;\u4402cy;\u4405cy;\u440F\u0180grs\u02BF\u02C4\u02C7ger;\u6021r;\u61A1hv;\u6AE4\u0100ay\u02D0\u02D5ron;\u410E;\u4414l\u0100;t\u02DD\u02DE\u6207a;\u4394r;\uC000\u{1D507}\u0100af\u02EB\u0327\u0100cm\u02F0\u0322ritical\u0200ADGT\u0300\u0306\u0316\u031Ccute;\u40B4o\u0174\u030B\u030D;\u42D9bleAcute;\u42DDrave;\u4060ilde;\u42DCond;\u62C4ferentialD;\u6146\u0470\u033D\0\0\0\u0342\u0354\0\u0405f;\uC000\u{1D53B}\u0180;DE\u0348\u0349\u034D\u40A8ot;\u60DCqual;\u6250ble\u0300CDLRUV\u0363\u0372\u0382\u03CF\u03E2\u03F8ontourIntegra\xEC\u0239o\u0274\u0379\0\0\u037B\xBB\u0349nArrow;\u61D3\u0100eo\u0387\u03A4ft\u0180ART\u0390\u0396\u03A1rrow;\u61D0ightArrow;\u61D4e\xE5\u02CAng\u0100LR\u03AB\u03C4eft\u0100AR\u03B3\u03B9rrow;\u67F8ightArrow;\u67FAightArrow;\u67F9ight\u0100AT\u03D8\u03DErrow;\u61D2ee;\u62A8p\u0241\u03E9\0\0\u03EFrrow;\u61D1ownArrow;\u61D5erticalBar;\u6225n\u0300ABLRTa\u0412\u042A\u0430\u045E\u047F\u037Crrow\u0180;BU\u041D\u041E\u0422\u6193ar;\u6913pArrow;\u61F5reve;\u4311eft\u02D2\u043A\0\u0446\0\u0450ightVector;\u6950eeVector;\u695Eector\u0100;B\u0459\u045A\u61BDar;\u6956ight\u01D4\u0467\0\u0471eeVector;\u695Fector\u0100;B\u047A\u047B\u61C1ar;\u6957ee\u0100;A\u0486\u0487\u62A4rrow;\u61A7\u0100ct\u0492\u0497r;\uC000\u{1D49F}rok;\u4110\u0800NTacdfglmopqstux\u04BD\u04C0\u04C4\u04CB\u04DE\u04E2\u04E7\u04EE\u04F5\u0521\u052F\u0536\u0552\u055D\u0560\u0565G;\u414AH\u803B\xD0\u40D0cute\u803B\xC9\u40C9\u0180aiy\u04D2\u04D7\u04DCron;\u411Arc\u803B\xCA\u40CA;\u442Dot;\u4116r;\uC000\u{1D508}rave\u803B\xC8\u40C8ement;\u6208\u0100ap\u04FA\u04FEcr;\u4112ty\u0253\u0506\0\0\u0512mallSquare;\u65FBerySmallSquare;\u65AB\u0100gp\u0526\u052Aon;\u4118f;\uC000\u{1D53C}silon;\u4395u\u0100ai\u053C\u0549l\u0100;T\u0542\u0543\u6A75ilde;\u6242librium;\u61CC\u0100ci\u0557\u055Ar;\u6130m;\u6A73a;\u4397ml\u803B\xCB\u40CB\u0100ip\u056A\u056Fsts;\u6203onentialE;\u6147\u0280cfios\u0585\u0588\u058D\u05B2\u05CCy;\u4424r;\uC000\u{1D509}lled\u0253\u0597\0\0\u05A3mallSquare;\u65FCerySmallSquare;\u65AA\u0370\u05BA\0\u05BF\0\0\u05C4f;\uC000\u{1D53D}All;\u6200riertrf;\u6131c\xF2\u05CB\u0600JTabcdfgorst\u05E8\u05EC\u05EF\u05FA\u0600\u0612\u0616\u061B\u061D\u0623\u066C\u0672cy;\u4403\u803B>\u403Emma\u0100;d\u05F7\u05F8\u4393;\u43DCreve;\u411E\u0180eiy\u0607\u060C\u0610dil;\u4122rc;\u411C;\u4413ot;\u4120r;\uC000\u{1D50A};\u62D9pf;\uC000\u{1D53E}eater\u0300EFGLST\u0635\u0644\u064E\u0656\u065B\u0666qual\u0100;L\u063E\u063F\u6265ess;\u62DBullEqual;\u6267reater;\u6AA2ess;\u6277lantEqual;\u6A7Eilde;\u6273cr;\uC000\u{1D4A2};\u626B\u0400Aacfiosu\u0685\u068B\u0696\u069B\u069E\u06AA\u06BE\u06CARDcy;\u442A\u0100ct\u0690\u0694ek;\u42C7;\u405Eirc;\u4124r;\u610ClbertSpace;\u610B\u01F0\u06AF\0\u06B2f;\u610DizontalLine;\u6500\u0100ct\u06C3\u06C5\xF2\u06A9rok;\u4126mp\u0144\u06D0\u06D8ownHum\xF0\u012Fqual;\u624F\u0700EJOacdfgmnostu\u06FA\u06FE\u0703\u0707\u070E\u071A\u071E\u0721\u0728\u0744\u0778\u078B\u078F\u0795cy;\u4415lig;\u4132cy;\u4401cute\u803B\xCD\u40CD\u0100iy\u0713\u0718rc\u803B\xCE\u40CE;\u4418ot;\u4130r;\u6111rave\u803B\xCC\u40CC\u0180;ap\u0720\u072F\u073F\u0100cg\u0734\u0737r;\u412AinaryI;\u6148lie\xF3\u03DD\u01F4\u0749\0\u0762\u0100;e\u074D\u074E\u622C\u0100gr\u0753\u0758ral;\u622Bsection;\u62C2isible\u0100CT\u076C\u0772omma;\u6063imes;\u6062\u0180gpt\u077F\u0783\u0788on;\u412Ef;\uC000\u{1D540}a;\u4399cr;\u6110ilde;\u4128\u01EB\u079A\0\u079Ecy;\u4406l\u803B\xCF\u40CF\u0280cfosu\u07AC\u07B7\u07BC\u07C2\u07D0\u0100iy\u07B1\u07B5rc;\u4134;\u4419r;\uC000\u{1D50D}pf;\uC000\u{1D541}\u01E3\u07C7\0\u07CCr;\uC000\u{1D4A5}rcy;\u4408kcy;\u4404\u0380HJacfos\u07E4\u07E8\u07EC\u07F1\u07FD\u0802\u0808cy;\u4425cy;\u440Cppa;\u439A\u0100ey\u07F6\u07FBdil;\u4136;\u441Ar;\uC000\u{1D50E}pf;\uC000\u{1D542}cr;\uC000\u{1D4A6}\u0580JTaceflmost\u0825\u0829\u082C\u0850\u0863\u09B3\u09B8\u09C7\u09CD\u0A37\u0A47cy;\u4409\u803B<\u403C\u0280cmnpr\u0837\u083C\u0841\u0844\u084Dute;\u4139bda;\u439Bg;\u67EAlacetrf;\u6112r;\u619E\u0180aey\u0857\u085C\u0861ron;\u413Ddil;\u413B;\u441B\u0100fs\u0868\u0970t\u0500ACDFRTUVar\u087E\u08A9\u08B1\u08E0\u08E6\u08FC\u092F\u095B\u0390\u096A\u0100nr\u0883\u088FgleBracket;\u67E8row\u0180;BR\u0899\u089A\u089E\u6190ar;\u61E4ightArrow;\u61C6eiling;\u6308o\u01F5\u08B7\0\u08C3bleBracket;\u67E6n\u01D4\u08C8\0\u08D2eeVector;\u6961ector\u0100;B\u08DB\u08DC\u61C3ar;\u6959loor;\u630Aight\u0100AV\u08EF\u08F5rrow;\u6194ector;\u694E\u0100er\u0901\u0917e\u0180;AV\u0909\u090A\u0910\u62A3rrow;\u61A4ector;\u695Aiangle\u0180;BE\u0924\u0925\u0929\u62B2ar;\u69CFqual;\u62B4p\u0180DTV\u0937\u0942\u094CownVector;\u6951eeVector;\u6960ector\u0100;B\u0956\u0957\u61BFar;\u6958ector\u0100;B\u0965\u0966\u61BCar;\u6952ight\xE1\u039Cs\u0300EFGLST\u097E\u098B\u0995\u099D\u09A2\u09ADqualGreater;\u62DAullEqual;\u6266reater;\u6276ess;\u6AA1lantEqual;\u6A7Dilde;\u6272r;\uC000\u{1D50F}\u0100;e\u09BD\u09BE\u62D8ftarrow;\u61DAidot;\u413F\u0180npw\u09D4\u0A16\u0A1Bg\u0200LRlr\u09DE\u09F7\u0A02\u0A10eft\u0100AR\u09E6\u09ECrrow;\u67F5ightArrow;\u67F7ightArrow;\u67F6eft\u0100ar\u03B3\u0A0Aight\xE1\u03BFight\xE1\u03CAf;\uC000\u{1D543}er\u0100LR\u0A22\u0A2CeftArrow;\u6199ightArrow;\u6198\u0180cht\u0A3E\u0A40\u0A42\xF2\u084C;\u61B0rok;\u4141;\u626A\u0400acefiosu\u0A5A\u0A5D\u0A60\u0A77\u0A7C\u0A85\u0A8B\u0A8Ep;\u6905y;\u441C\u0100dl\u0A65\u0A6FiumSpace;\u605Flintrf;\u6133r;\uC000\u{1D510}nusPlus;\u6213pf;\uC000\u{1D544}c\xF2\u0A76;\u439C\u0480Jacefostu\u0AA3\u0AA7\u0AAD\u0AC0\u0B14\u0B19\u0D91\u0D97\u0D9Ecy;\u440Acute;\u4143\u0180aey\u0AB4\u0AB9\u0ABEron;\u4147dil;\u4145;\u441D\u0180gsw\u0AC7\u0AF0\u0B0Eative\u0180MTV\u0AD3\u0ADF\u0AE8ediumSpace;\u600Bhi\u0100cn\u0AE6\u0AD8\xEB\u0AD9eryThi\xEE\u0AD9ted\u0100GL\u0AF8\u0B06reaterGreate\xF2\u0673essLes\xF3\u0A48Line;\u400Ar;\uC000\u{1D511}\u0200Bnpt\u0B22\u0B28\u0B37\u0B3Areak;\u6060BreakingSpace;\u40A0f;\u6115\u0680;CDEGHLNPRSTV\u0B55\u0B56\u0B6A\u0B7C\u0BA1\u0BEB\u0C04\u0C5E\u0C84\u0CA6\u0CD8\u0D61\u0D85\u6AEC\u0100ou\u0B5B\u0B64ngruent;\u6262pCap;\u626DoubleVerticalBar;\u6226\u0180lqx\u0B83\u0B8A\u0B9Bement;\u6209ual\u0100;T\u0B92\u0B93\u6260ilde;\uC000\u2242\u0338ists;\u6204reater\u0380;EFGLST\u0BB6\u0BB7\u0BBD\u0BC9\u0BD3\u0BD8\u0BE5\u626Fqual;\u6271ullEqual;\uC000\u2267\u0338reater;\uC000\u226B\u0338ess;\u6279lantEqual;\uC000\u2A7E\u0338ilde;\u6275ump\u0144\u0BF2\u0BFDownHump;\uC000\u224E\u0338qual;\uC000\u224F\u0338e\u0100fs\u0C0A\u0C27tTriangle\u0180;BE\u0C1A\u0C1B\u0C21\u62EAar;\uC000\u29CF\u0338qual;\u62ECs\u0300;EGLST\u0C35\u0C36\u0C3C\u0C44\u0C4B\u0C58\u626Equal;\u6270reater;\u6278ess;\uC000\u226A\u0338lantEqual;\uC000\u2A7D\u0338ilde;\u6274ested\u0100GL\u0C68\u0C79reaterGreater;\uC000\u2AA2\u0338essLess;\uC000\u2AA1\u0338recedes\u0180;ES\u0C92\u0C93\u0C9B\u6280qual;\uC000\u2AAF\u0338lantEqual;\u62E0\u0100ei\u0CAB\u0CB9verseElement;\u620CghtTriangle\u0180;BE\u0CCB\u0CCC\u0CD2\u62EBar;\uC000\u29D0\u0338qual;\u62ED\u0100qu\u0CDD\u0D0CuareSu\u0100bp\u0CE8\u0CF9set\u0100;E\u0CF0\u0CF3\uC000\u228F\u0338qual;\u62E2erset\u0100;E\u0D03\u0D06\uC000\u2290\u0338qual;\u62E3\u0180bcp\u0D13\u0D24\u0D4Eset\u0100;E\u0D1B\u0D1E\uC000\u2282\u20D2qual;\u6288ceeds\u0200;EST\u0D32\u0D33\u0D3B\u0D46\u6281qual;\uC000\u2AB0\u0338lantEqual;\u62E1ilde;\uC000\u227F\u0338erset\u0100;E\u0D58\u0D5B\uC000\u2283\u20D2qual;\u6289ilde\u0200;EFT\u0D6E\u0D6F\u0D75\u0D7F\u6241qual;\u6244ullEqual;\u6247ilde;\u6249erticalBar;\u6224cr;\uC000\u{1D4A9}ilde\u803B\xD1\u40D1;\u439D\u0700Eacdfgmoprstuv\u0DBD\u0DC2\u0DC9\u0DD5\u0DDB\u0DE0\u0DE7\u0DFC\u0E02\u0E20\u0E22\u0E32\u0E3F\u0E44lig;\u4152cute\u803B\xD3\u40D3\u0100iy\u0DCE\u0DD3rc\u803B\xD4\u40D4;\u441Eblac;\u4150r;\uC000\u{1D512}rave\u803B\xD2\u40D2\u0180aei\u0DEE\u0DF2\u0DF6cr;\u414Cga;\u43A9cron;\u439Fpf;\uC000\u{1D546}enCurly\u0100DQ\u0E0E\u0E1AoubleQuote;\u601Cuote;\u6018;\u6A54\u0100cl\u0E27\u0E2Cr;\uC000\u{1D4AA}ash\u803B\xD8\u40D8i\u016C\u0E37\u0E3Cde\u803B\xD5\u40D5es;\u6A37ml\u803B\xD6\u40D6er\u0100BP\u0E4B\u0E60\u0100ar\u0E50\u0E53r;\u603Eac\u0100ek\u0E5A\u0E5C;\u63DEet;\u63B4arenthesis;\u63DC\u0480acfhilors\u0E7F\u0E87\u0E8A\u0E8F\u0E92\u0E94\u0E9D\u0EB0\u0EFCrtialD;\u6202y;\u441Fr;\uC000\u{1D513}i;\u43A6;\u43A0usMinus;\u40B1\u0100ip\u0EA2\u0EADncareplan\xE5\u069Df;\u6119\u0200;eio\u0EB9\u0EBA\u0EE0\u0EE4\u6ABBcedes\u0200;EST\u0EC8\u0EC9\u0ECF\u0EDA\u627Aqual;\u6AAFlantEqual;\u627Cilde;\u627Eme;\u6033\u0100dp\u0EE9\u0EEEuct;\u620Fortion\u0100;a\u0225\u0EF9l;\u621D\u0100ci\u0F01\u0F06r;\uC000\u{1D4AB};\u43A8\u0200Ufos\u0F11\u0F16\u0F1B\u0F1FOT\u803B"\u4022r;\uC000\u{1D514}pf;\u611Acr;\uC000\u{1D4AC}\u0600BEacefhiorsu\u0F3E\u0F43\u0F47\u0F60\u0F73\u0FA7\u0FAA\u0FAD\u1096\u10A9\u10B4\u10BEarr;\u6910G\u803B\xAE\u40AE\u0180cnr\u0F4E\u0F53\u0F56ute;\u4154g;\u67EBr\u0100;t\u0F5C\u0F5D\u61A0l;\u6916\u0180aey\u0F67\u0F6C\u0F71ron;\u4158dil;\u4156;\u4420\u0100;v\u0F78\u0F79\u611Cerse\u0100EU\u0F82\u0F99\u0100lq\u0F87\u0F8Eement;\u620Builibrium;\u61CBpEquilibrium;\u696Fr\xBB\u0F79o;\u43A1ght\u0400ACDFTUVa\u0FC1\u0FEB\u0FF3\u1022\u1028\u105B\u1087\u03D8\u0100nr\u0FC6\u0FD2gleBracket;\u67E9row\u0180;BL\u0FDC\u0FDD\u0FE1\u6192ar;\u61E5eftArrow;\u61C4eiling;\u6309o\u01F5\u0FF9\0\u1005bleBracket;\u67E7n\u01D4\u100A\0\u1014eeVector;\u695Dector\u0100;B\u101D\u101E\u61C2ar;\u6955loor;\u630B\u0100er\u102D\u1043e\u0180;AV\u1035\u1036\u103C\u62A2rrow;\u61A6ector;\u695Biangle\u0180;BE\u1050\u1051\u1055\u62B3ar;\u69D0qual;\u62B5p\u0180DTV\u1063\u106E\u1078ownVector;\u694FeeVector;\u695Cector\u0100;B\u1082\u1083\u61BEar;\u6954ector\u0100;B\u1091\u1092\u61C0ar;\u6953\u0100pu\u109B\u109Ef;\u611DndImplies;\u6970ightarrow;\u61DB\u0100ch\u10B9\u10BCr;\u611B;\u61B1leDelayed;\u69F4\u0680HOacfhimoqstu\u10E4\u10F1\u10F7\u10FD\u1119\u111E\u1151\u1156\u1161\u1167\u11B5\u11BB\u11BF\u0100Cc\u10E9\u10EEHcy;\u4429y;\u4428FTcy;\u442Ccute;\u415A\u0280;aeiy\u1108\u1109\u110E\u1113\u1117\u6ABCron;\u4160dil;\u415Erc;\u415C;\u4421r;\uC000\u{1D516}ort\u0200DLRU\u112A\u1134\u113E\u1149ownArrow\xBB\u041EeftArrow\xBB\u089AightArrow\xBB\u0FDDpArrow;\u6191gma;\u43A3allCircle;\u6218pf;\uC000\u{1D54A}\u0272\u116D\0\0\u1170t;\u621Aare\u0200;ISU\u117B\u117C\u1189\u11AF\u65A1ntersection;\u6293u\u0100bp\u118F\u119Eset\u0100;E\u1197\u1198\u628Fqual;\u6291erset\u0100;E\u11A8\u11A9\u6290qual;\u6292nion;\u6294cr;\uC000\u{1D4AE}ar;\u62C6\u0200bcmp\u11C8\u11DB\u1209\u120B\u0100;s\u11CD\u11CE\u62D0et\u0100;E\u11CD\u11D5qual;\u6286\u0100ch\u11E0\u1205eeds\u0200;EST\u11ED\u11EE\u11F4\u11FF\u627Bqual;\u6AB0lantEqual;\u627Dilde;\u627FTh\xE1\u0F8C;\u6211\u0180;es\u1212\u1213\u1223\u62D1rset\u0100;E\u121C\u121D\u6283qual;\u6287et\xBB\u1213\u0580HRSacfhiors\u123E\u1244\u1249\u1255\u125E\u1271\u1276\u129F\u12C2\u12C8\u12D1ORN\u803B\xDE\u40DEADE;\u6122\u0100Hc\u124E\u1252cy;\u440By;\u4426\u0100bu\u125A\u125C;\u4009;\u43A4\u0180aey\u1265\u126A\u126Fron;\u4164dil;\u4162;\u4422r;\uC000\u{1D517}\u0100ei\u127B\u1289\u01F2\u1280\0\u1287efore;\u6234a;\u4398\u0100cn\u128E\u1298kSpace;\uC000\u205F\u200ASpace;\u6009lde\u0200;EFT\u12AB\u12AC\u12B2\u12BC\u623Cqual;\u6243ullEqual;\u6245ilde;\u6248pf;\uC000\u{1D54B}ipleDot;\u60DB\u0100ct\u12D6\u12DBr;\uC000\u{1D4AF}rok;\u4166\u0AE1\u12F7\u130E\u131A\u1326\0\u132C\u1331\0\0\0\0\0\u1338\u133D\u1377\u1385\0\u13FF\u1404\u140A\u1410\u0100cr\u12FB\u1301ute\u803B\xDA\u40DAr\u0100;o\u1307\u1308\u619Fcir;\u6949r\u01E3\u1313\0\u1316y;\u440Eve;\u416C\u0100iy\u131E\u1323rc\u803B\xDB\u40DB;\u4423blac;\u4170r;\uC000\u{1D518}rave\u803B\xD9\u40D9acr;\u416A\u0100di\u1341\u1369er\u0100BP\u1348\u135D\u0100ar\u134D\u1350r;\u405Fac\u0100ek\u1357\u1359;\u63DFet;\u63B5arenthesis;\u63DDon\u0100;P\u1370\u1371\u62C3lus;\u628E\u0100gp\u137B\u137Fon;\u4172f;\uC000\u{1D54C}\u0400ADETadps\u1395\u13AE\u13B8\u13C4\u03E8\u13D2\u13D7\u13F3rrow\u0180;BD\u1150\u13A0\u13A4ar;\u6912ownArrow;\u61C5ownArrow;\u6195quilibrium;\u696Eee\u0100;A\u13CB\u13CC\u62A5rrow;\u61A5own\xE1\u03F3er\u0100LR\u13DE\u13E8eftArrow;\u6196ightArrow;\u6197i\u0100;l\u13F9\u13FA\u43D2on;\u43A5ing;\u416Ecr;\uC000\u{1D4B0}ilde;\u4168ml\u803B\xDC\u40DC\u0480Dbcdefosv\u1427\u142C\u1430\u1433\u143E\u1485\u148A\u1490\u1496ash;\u62ABar;\u6AEBy;\u4412ash\u0100;l\u143B\u143C\u62A9;\u6AE6\u0100er\u1443\u1445;\u62C1\u0180bty\u144C\u1450\u147Aar;\u6016\u0100;i\u144F\u1455cal\u0200BLST\u1461\u1465\u146A\u1474ar;\u6223ine;\u407Ceparator;\u6758ilde;\u6240ThinSpace;\u600Ar;\uC000\u{1D519}pf;\uC000\u{1D54D}cr;\uC000\u{1D4B1}dash;\u62AA\u0280cefos\u14A7\u14AC\u14B1\u14B6\u14BCirc;\u4174dge;\u62C0r;\uC000\u{1D51A}pf;\uC000\u{1D54E}cr;\uC000\u{1D4B2}\u0200fios\u14CB\u14D0\u14D2\u14D8r;\uC000\u{1D51B};\u439Epf;\uC000\u{1D54F}cr;\uC000\u{1D4B3}\u0480AIUacfosu\u14F1\u14F5\u14F9\u14FD\u1504\u150F\u1514\u151A\u1520cy;\u442Fcy;\u4407cy;\u442Ecute\u803B\xDD\u40DD\u0100iy\u1509\u150Drc;\u4176;\u442Br;\uC000\u{1D51C}pf;\uC000\u{1D550}cr;\uC000\u{1D4B4}ml;\u4178\u0400Hacdefos\u1535\u1539\u153F\u154B\u154F\u155D\u1560\u1564cy;\u4416cute;\u4179\u0100ay\u1544\u1549ron;\u417D;\u4417ot;\u417B\u01F2\u1554\0\u155BoWidt\xE8\u0AD9a;\u4396r;\u6128pf;\u6124cr;\uC000\u{1D4B5}\u0BE1\u1583\u158A\u1590\0\u15B0\u15B6\u15BF\0\0\0\0\u15C6\u15DB\u15EB\u165F\u166D\0\u1695\u169B\u16B2\u16B9\0\u16BEcute\u803B\xE1\u40E1reve;\u4103\u0300;Ediuy\u159C\u159D\u15A1\u15A3\u15A8\u15AD\u623E;\uC000\u223E\u0333;\u623Frc\u803B\xE2\u40E2te\u80BB\xB4\u0306;\u4430lig\u803B\xE6\u40E6\u0100;r\xB2\u15BA;\uC000\u{1D51E}rave\u803B\xE0\u40E0\u0100ep\u15CA\u15D6\u0100fp\u15CF\u15D4sym;\u6135\xE8\u15D3ha;\u43B1\u0100ap\u15DFc\u0100cl\u15E4\u15E7r;\u4101g;\u6A3F\u0264\u15F0\0\0\u160A\u0280;adsv\u15FA\u15FB\u15FF\u1601\u1607\u6227nd;\u6A55;\u6A5Clope;\u6A58;\u6A5A\u0380;elmrsz\u1618\u1619\u161B\u161E\u163F\u164F\u1659\u6220;\u69A4e\xBB\u1619sd\u0100;a\u1625\u1626\u6221\u0461\u1630\u1632\u1634\u1636\u1638\u163A\u163C\u163E;\u69A8;\u69A9;\u69AA;\u69AB;\u69AC;\u69AD;\u69AE;\u69AFt\u0100;v\u1645\u1646\u621Fb\u0100;d\u164C\u164D\u62BE;\u699D\u0100pt\u1654\u1657h;\u6222\xBB\xB9arr;\u637C\u0100gp\u1663\u1667on;\u4105f;\uC000\u{1D552}\u0380;Eaeiop\u12C1\u167B\u167D\u1682\u1684\u1687\u168A;\u6A70cir;\u6A6F;\u624Ad;\u624Bs;\u4027rox\u0100;e\u12C1\u1692\xF1\u1683ing\u803B\xE5\u40E5\u0180cty\u16A1\u16A6\u16A8r;\uC000\u{1D4B6};\u402Amp\u0100;e\u12C1\u16AF\xF1\u0288ilde\u803B\xE3\u40E3ml\u803B\xE4\u40E4\u0100ci\u16C2\u16C8onin\xF4\u0272nt;\u6A11\u0800Nabcdefiklnoprsu\u16ED\u16F1\u1730\u173C\u1743\u1748\u1778\u177D\u17E0\u17E6\u1839\u1850\u170D\u193D\u1948\u1970ot;\u6AED\u0100cr\u16F6\u171Ek\u0200ceps\u1700\u1705\u170D\u1713ong;\u624Cpsilon;\u43F6rime;\u6035im\u0100;e\u171A\u171B\u623Dq;\u62CD\u0176\u1722\u1726ee;\u62BDed\u0100;g\u172C\u172D\u6305e\xBB\u172Drk\u0100;t\u135C\u1737brk;\u63B6\u0100oy\u1701\u1741;\u4431quo;\u601E\u0280cmprt\u1753\u175B\u1761\u1764\u1768aus\u0100;e\u010A\u0109ptyv;\u69B0s\xE9\u170Cno\xF5\u0113\u0180ahw\u176F\u1771\u1773;\u43B2;\u6136een;\u626Cr;\uC000\u{1D51F}g\u0380costuvw\u178D\u179D\u17B3\u17C1\u17D5\u17DB\u17DE\u0180aiu\u1794\u1796\u179A\xF0\u0760rc;\u65EFp\xBB\u1371\u0180dpt\u17A4\u17A8\u17ADot;\u6A00lus;\u6A01imes;\u6A02\u0271\u17B9\0\0\u17BEcup;\u6A06ar;\u6605riangle\u0100du\u17CD\u17D2own;\u65BDp;\u65B3plus;\u6A04e\xE5\u1444\xE5\u14ADarow;\u690D\u0180ako\u17ED\u1826\u1835\u0100cn\u17F2\u1823k\u0180lst\u17FA\u05AB\u1802ozenge;\u69EBriangle\u0200;dlr\u1812\u1813\u1818\u181D\u65B4own;\u65BEeft;\u65C2ight;\u65B8k;\u6423\u01B1\u182B\0\u1833\u01B2\u182F\0\u1831;\u6592;\u65914;\u6593ck;\u6588\u0100eo\u183E\u184D\u0100;q\u1843\u1846\uC000=\u20E5uiv;\uC000\u2261\u20E5t;\u6310\u0200ptwx\u1859\u185E\u1867\u186Cf;\uC000\u{1D553}\u0100;t\u13CB\u1863om\xBB\u13CCtie;\u62C8\u0600DHUVbdhmptuv\u1885\u1896\u18AA\u18BB\u18D7\u18DB\u18EC\u18FF\u1905\u190A\u1910\u1921\u0200LRlr\u188E\u1890\u1892\u1894;\u6557;\u6554;\u6556;\u6553\u0280;DUdu\u18A1\u18A2\u18A4\u18A6\u18A8\u6550;\u6566;\u6569;\u6564;\u6567\u0200LRlr\u18B3\u18B5\u18B7\u18B9;\u655D;\u655A;\u655C;\u6559\u0380;HLRhlr\u18CA\u18CB\u18CD\u18CF\u18D1\u18D3\u18D5\u6551;\u656C;\u6563;\u6560;\u656B;\u6562;\u655Fox;\u69C9\u0200LRlr\u18E4\u18E6\u18E8\u18EA;\u6555;\u6552;\u6510;\u650C\u0280;DUdu\u06BD\u18F7\u18F9\u18FB\u18FD;\u6565;\u6568;\u652C;\u6534inus;\u629Flus;\u629Eimes;\u62A0\u0200LRlr\u1919\u191B\u191D\u191F;\u655B;\u6558;\u6518;\u6514\u0380;HLRhlr\u1930\u1931\u1933\u1935\u1937\u1939\u193B\u6502;\u656A;\u6561;\u655E;\u653C;\u6524;\u651C\u0100ev\u0123\u1942bar\u803B\xA6\u40A6\u0200ceio\u1951\u1956\u195A\u1960r;\uC000\u{1D4B7}mi;\u604Fm\u0100;e\u171A\u171Cl\u0180;bh\u1968\u1969\u196B\u405C;\u69C5sub;\u67C8\u016C\u1974\u197El\u0100;e\u1979\u197A\u6022t\xBB\u197Ap\u0180;Ee\u012F\u1985\u1987;\u6AAE\u0100;q\u06DC\u06DB\u0CE1\u19A7\0\u19E8\u1A11\u1A15\u1A32\0\u1A37\u1A50\0\0\u1AB4\0\0\u1AC1\0\0\u1B21\u1B2E\u1B4D\u1B52\0\u1BFD\0\u1C0C\u0180cpr\u19AD\u19B2\u19DDute;\u4107\u0300;abcds\u19BF\u19C0\u19C4\u19CA\u19D5\u19D9\u6229nd;\u6A44rcup;\u6A49\u0100au\u19CF\u19D2p;\u6A4Bp;\u6A47ot;\u6A40;\uC000\u2229\uFE00\u0100eo\u19E2\u19E5t;\u6041\xEE\u0693\u0200aeiu\u19F0\u19FB\u1A01\u1A05\u01F0\u19F5\0\u19F8s;\u6A4Don;\u410Ddil\u803B\xE7\u40E7rc;\u4109ps\u0100;s\u1A0C\u1A0D\u6A4Cm;\u6A50ot;\u410B\u0180dmn\u1A1B\u1A20\u1A26il\u80BB\xB8\u01ADptyv;\u69B2t\u8100\xA2;e\u1A2D\u1A2E\u40A2r\xE4\u01B2r;\uC000\u{1D520}\u0180cei\u1A3D\u1A40\u1A4Dy;\u4447ck\u0100;m\u1A47\u1A48\u6713ark\xBB\u1A48;\u43C7r\u0380;Ecefms\u1A5F\u1A60\u1A62\u1A6B\u1AA4\u1AAA\u1AAE\u65CB;\u69C3\u0180;el\u1A69\u1A6A\u1A6D\u42C6q;\u6257e\u0261\u1A74\0\0\u1A88rrow\u0100lr\u1A7C\u1A81eft;\u61BAight;\u61BB\u0280RSacd\u1A92\u1A94\u1A96\u1A9A\u1A9F\xBB\u0F47;\u64C8st;\u629Birc;\u629Aash;\u629Dnint;\u6A10id;\u6AEFcir;\u69C2ubs\u0100;u\u1ABB\u1ABC\u6663it\xBB\u1ABC\u02EC\u1AC7\u1AD4\u1AFA\0\u1B0Aon\u0100;e\u1ACD\u1ACE\u403A\u0100;q\xC7\xC6\u026D\u1AD9\0\0\u1AE2a\u0100;t\u1ADE\u1ADF\u402C;\u4040\u0180;fl\u1AE8\u1AE9\u1AEB\u6201\xEE\u1160e\u0100mx\u1AF1\u1AF6ent\xBB\u1AE9e\xF3\u024D\u01E7\u1AFE\0\u1B07\u0100;d\u12BB\u1B02ot;\u6A6Dn\xF4\u0246\u0180fry\u1B10\u1B14\u1B17;\uC000\u{1D554}o\xE4\u0254\u8100\xA9;s\u0155\u1B1Dr;\u6117\u0100ao\u1B25\u1B29rr;\u61B5ss;\u6717\u0100cu\u1B32\u1B37r;\uC000\u{1D4B8}\u0100bp\u1B3C\u1B44\u0100;e\u1B41\u1B42\u6ACF;\u6AD1\u0100;e\u1B49\u1B4A\u6AD0;\u6AD2dot;\u62EF\u0380delprvw\u1B60\u1B6C\u1B77\u1B82\u1BAC\u1BD4\u1BF9arr\u0100lr\u1B68\u1B6A;\u6938;\u6935\u0270\u1B72\0\0\u1B75r;\u62DEc;\u62DFarr\u0100;p\u1B7F\u1B80\u61B6;\u693D\u0300;bcdos\u1B8F\u1B90\u1B96\u1BA1\u1BA5\u1BA8\u622Arcap;\u6A48\u0100au\u1B9B\u1B9Ep;\u6A46p;\u6A4Aot;\u628Dr;\u6A45;\uC000\u222A\uFE00\u0200alrv\u1BB5\u1BBF\u1BDE\u1BE3rr\u0100;m\u1BBC\u1BBD\u61B7;\u693Cy\u0180evw\u1BC7\u1BD4\u1BD8q\u0270\u1BCE\0\0\u1BD2re\xE3\u1B73u\xE3\u1B75ee;\u62CEedge;\u62CFen\u803B\xA4\u40A4earrow\u0100lr\u1BEE\u1BF3eft\xBB\u1B80ight\xBB\u1BBDe\xE4\u1BDD\u0100ci\u1C01\u1C07onin\xF4\u01F7nt;\u6231lcty;\u632D\u0980AHabcdefhijlorstuwz\u1C38\u1C3B\u1C3F\u1C5D\u1C69\u1C75\u1C8A\u1C9E\u1CAC\u1CB7\u1CFB\u1CFF\u1D0D\u1D7B\u1D91\u1DAB\u1DBB\u1DC6\u1DCDr\xF2\u0381ar;\u6965\u0200glrs\u1C48\u1C4D\u1C52\u1C54ger;\u6020eth;\u6138\xF2\u1133h\u0100;v\u1C5A\u1C5B\u6010\xBB\u090A\u016B\u1C61\u1C67arow;\u690Fa\xE3\u0315\u0100ay\u1C6E\u1C73ron;\u410F;\u4434\u0180;ao\u0332\u1C7C\u1C84\u0100gr\u02BF\u1C81r;\u61CAtseq;\u6A77\u0180glm\u1C91\u1C94\u1C98\u803B\xB0\u40B0ta;\u43B4ptyv;\u69B1\u0100ir\u1CA3\u1CA8sht;\u697F;\uC000\u{1D521}ar\u0100lr\u1CB3\u1CB5\xBB\u08DC\xBB\u101E\u0280aegsv\u1CC2\u0378\u1CD6\u1CDC\u1CE0m\u0180;os\u0326\u1CCA\u1CD4nd\u0100;s\u0326\u1CD1uit;\u6666amma;\u43DDin;\u62F2\u0180;io\u1CE7\u1CE8\u1CF8\u40F7de\u8100\xF7;o\u1CE7\u1CF0ntimes;\u62C7n\xF8\u1CF7cy;\u4452c\u026F\u1D06\0\0\u1D0Arn;\u631Eop;\u630D\u0280lptuw\u1D18\u1D1D\u1D22\u1D49\u1D55lar;\u4024f;\uC000\u{1D555}\u0280;emps\u030B\u1D2D\u1D37\u1D3D\u1D42q\u0100;d\u0352\u1D33ot;\u6251inus;\u6238lus;\u6214quare;\u62A1blebarwedg\xE5\xFAn\u0180adh\u112E\u1D5D\u1D67ownarrow\xF3\u1C83arpoon\u0100lr\u1D72\u1D76ef\xF4\u1CB4igh\xF4\u1CB6\u0162\u1D7F\u1D85karo\xF7\u0F42\u026F\u1D8A\0\0\u1D8Ern;\u631Fop;\u630C\u0180cot\u1D98\u1DA3\u1DA6\u0100ry\u1D9D\u1DA1;\uC000\u{1D4B9};\u4455l;\u69F6rok;\u4111\u0100dr\u1DB0\u1DB4ot;\u62F1i\u0100;f\u1DBA\u1816\u65BF\u0100ah\u1DC0\u1DC3r\xF2\u0429a\xF2\u0FA6angle;\u69A6\u0100ci\u1DD2\u1DD5y;\u445Fgrarr;\u67FF\u0900Dacdefglmnopqrstux\u1E01\u1E09\u1E19\u1E38\u0578\u1E3C\u1E49\u1E61\u1E7E\u1EA5\u1EAF\u1EBD\u1EE1\u1F2A\u1F37\u1F44\u1F4E\u1F5A\u0100Do\u1E06\u1D34o\xF4\u1C89\u0100cs\u1E0E\u1E14ute\u803B\xE9\u40E9ter;\u6A6E\u0200aioy\u1E22\u1E27\u1E31\u1E36ron;\u411Br\u0100;c\u1E2D\u1E2E\u6256\u803B\xEA\u40EAlon;\u6255;\u444Dot;\u4117\u0100Dr\u1E41\u1E45ot;\u6252;\uC000\u{1D522}\u0180;rs\u1E50\u1E51\u1E57\u6A9Aave\u803B\xE8\u40E8\u0100;d\u1E5C\u1E5D\u6A96ot;\u6A98\u0200;ils\u1E6A\u1E6B\u1E72\u1E74\u6A99nters;\u63E7;\u6113\u0100;d\u1E79\u1E7A\u6A95ot;\u6A97\u0180aps\u1E85\u1E89\u1E97cr;\u4113ty\u0180;sv\u1E92\u1E93\u1E95\u6205et\xBB\u1E93p\u01001;\u1E9D\u1EA4\u0133\u1EA1\u1EA3;\u6004;\u6005\u6003\u0100gs\u1EAA\u1EAC;\u414Bp;\u6002\u0100gp\u1EB4\u1EB8on;\u4119f;\uC000\u{1D556}\u0180als\u1EC4\u1ECE\u1ED2r\u0100;s\u1ECA\u1ECB\u62D5l;\u69E3us;\u6A71i\u0180;lv\u1EDA\u1EDB\u1EDF\u43B5on\xBB\u1EDB;\u43F5\u0200csuv\u1EEA\u1EF3\u1F0B\u1F23\u0100io\u1EEF\u1E31rc\xBB\u1E2E\u0269\u1EF9\0\0\u1EFB\xED\u0548ant\u0100gl\u1F02\u1F06tr\xBB\u1E5Dess\xBB\u1E7A\u0180aei\u1F12\u1F16\u1F1Als;\u403Dst;\u625Fv\u0100;D\u0235\u1F20D;\u6A78parsl;\u69E5\u0100Da\u1F2F\u1F33ot;\u6253rr;\u6971\u0180cdi\u1F3E\u1F41\u1EF8r;\u612Fo\xF4\u0352\u0100ah\u1F49\u1F4B;\u43B7\u803B\xF0\u40F0\u0100mr\u1F53\u1F57l\u803B\xEB\u40EBo;\u60AC\u0180cip\u1F61\u1F64\u1F67l;\u4021s\xF4\u056E\u0100eo\u1F6C\u1F74ctatio\xEE\u0559nential\xE5\u0579\u09E1\u1F92\0\u1F9E\0\u1FA1\u1FA7\0\0\u1FC6\u1FCC\0\u1FD3\0\u1FE6\u1FEA\u2000\0\u2008\u205Allingdotse\xF1\u1E44y;\u4444male;\u6640\u0180ilr\u1FAD\u1FB3\u1FC1lig;\u8000\uFB03\u0269\u1FB9\0\0\u1FBDg;\u8000\uFB00ig;\u8000\uFB04;\uC000\u{1D523}lig;\u8000\uFB01lig;\uC000fj\u0180alt\u1FD9\u1FDC\u1FE1t;\u666Dig;\u8000\uFB02ns;\u65B1of;\u4192\u01F0\u1FEE\0\u1FF3f;\uC000\u{1D557}\u0100ak\u05BF\u1FF7\u0100;v\u1FFC\u1FFD\u62D4;\u6AD9artint;\u6A0D\u0100ao\u200C\u2055\u0100cs\u2011\u2052\u03B1\u201A\u2030\u2038\u2045\u2048\0\u2050\u03B2\u2022\u2025\u2027\u202A\u202C\0\u202E\u803B\xBD\u40BD;\u6153\u803B\xBC\u40BC;\u6155;\u6159;\u615B\u01B3\u2034\0\u2036;\u6154;\u6156\u02B4\u203E\u2041\0\0\u2043\u803B\xBE\u40BE;\u6157;\u615C5;\u6158\u01B6\u204C\0\u204E;\u615A;\u615D8;\u615El;\u6044wn;\u6322cr;\uC000\u{1D4BB}\u0880Eabcdefgijlnorstv\u2082\u2089\u209F\u20A5\u20B0\u20B4\u20F0\u20F5\u20FA\u20FF\u2103\u2112\u2138\u0317\u213E\u2152\u219E\u0100;l\u064D\u2087;\u6A8C\u0180cmp\u2090\u2095\u209Dute;\u41F5ma\u0100;d\u209C\u1CDA\u43B3;\u6A86reve;\u411F\u0100iy\u20AA\u20AErc;\u411D;\u4433ot;\u4121\u0200;lqs\u063E\u0642\u20BD\u20C9\u0180;qs\u063E\u064C\u20C4lan\xF4\u0665\u0200;cdl\u0665\u20D2\u20D5\u20E5c;\u6AA9ot\u0100;o\u20DC\u20DD\u6A80\u0100;l\u20E2\u20E3\u6A82;\u6A84\u0100;e\u20EA\u20ED\uC000\u22DB\uFE00s;\u6A94r;\uC000\u{1D524}\u0100;g\u0673\u061Bmel;\u6137cy;\u4453\u0200;Eaj\u065A\u210C\u210E\u2110;\u6A92;\u6AA5;\u6AA4\u0200Eaes\u211B\u211D\u2129\u2134;\u6269p\u0100;p\u2123\u2124\u6A8Arox\xBB\u2124\u0100;q\u212E\u212F\u6A88\u0100;q\u212E\u211Bim;\u62E7pf;\uC000\u{1D558}\u0100ci\u2143\u2146r;\u610Am\u0180;el\u066B\u214E\u2150;\u6A8E;\u6A90\u8300>;cdlqr\u05EE\u2160\u216A\u216E\u2173\u2179\u0100ci\u2165\u2167;\u6AA7r;\u6A7Aot;\u62D7Par;\u6995uest;\u6A7C\u0280adels\u2184\u216A\u2190\u0656\u219B\u01F0\u2189\0\u218Epro\xF8\u209Er;\u6978q\u0100lq\u063F\u2196les\xF3\u2088i\xED\u066B\u0100en\u21A3\u21ADrtneqq;\uC000\u2269\uFE00\xC5\u21AA\u0500Aabcefkosy\u21C4\u21C7\u21F1\u21F5\u21FA\u2218\u221D\u222F\u2268\u227Dr\xF2\u03A0\u0200ilmr\u21D0\u21D4\u21D7\u21DBrs\xF0\u1484f\xBB\u2024il\xF4\u06A9\u0100dr\u21E0\u21E4cy;\u444A\u0180;cw\u08F4\u21EB\u21EFir;\u6948;\u61ADar;\u610Firc;\u4125\u0180alr\u2201\u220E\u2213rts\u0100;u\u2209\u220A\u6665it\xBB\u220Alip;\u6026con;\u62B9r;\uC000\u{1D525}s\u0100ew\u2223\u2229arow;\u6925arow;\u6926\u0280amopr\u223A\u223E\u2243\u225E\u2263rr;\u61FFtht;\u623Bk\u0100lr\u2249\u2253eftarrow;\u61A9ightarrow;\u61AAf;\uC000\u{1D559}bar;\u6015\u0180clt\u226F\u2274\u2278r;\uC000\u{1D4BD}as\xE8\u21F4rok;\u4127\u0100bp\u2282\u2287ull;\u6043hen\xBB\u1C5B\u0AE1\u22A3\0\u22AA\0\u22B8\u22C5\u22CE\0\u22D5\u22F3\0\0\u22F8\u2322\u2367\u2362\u237F\0\u2386\u23AA\u23B4cute\u803B\xED\u40ED\u0180;iy\u0771\u22B0\u22B5rc\u803B\xEE\u40EE;\u4438\u0100cx\u22BC\u22BFy;\u4435cl\u803B\xA1\u40A1\u0100fr\u039F\u22C9;\uC000\u{1D526}rave\u803B\xEC\u40EC\u0200;ino\u073E\u22DD\u22E9\u22EE\u0100in\u22E2\u22E6nt;\u6A0Ct;\u622Dfin;\u69DCta;\u6129lig;\u4133\u0180aop\u22FE\u231A\u231D\u0180cgt\u2305\u2308\u2317r;\u412B\u0180elp\u071F\u230F\u2313in\xE5\u078Ear\xF4\u0720h;\u4131f;\u62B7ed;\u41B5\u0280;cfot\u04F4\u232C\u2331\u233D\u2341are;\u6105in\u0100;t\u2338\u2339\u621Eie;\u69DDdo\xF4\u2319\u0280;celp\u0757\u234C\u2350\u235B\u2361al;\u62BA\u0100gr\u2355\u2359er\xF3\u1563\xE3\u234Darhk;\u6A17rod;\u6A3C\u0200cgpt\u236F\u2372\u2376\u237By;\u4451on;\u412Ff;\uC000\u{1D55A}a;\u43B9uest\u803B\xBF\u40BF\u0100ci\u238A\u238Fr;\uC000\u{1D4BE}n\u0280;Edsv\u04F4\u239B\u239D\u23A1\u04F3;\u62F9ot;\u62F5\u0100;v\u23A6\u23A7\u62F4;\u62F3\u0100;i\u0777\u23AElde;\u4129\u01EB\u23B8\0\u23BCcy;\u4456l\u803B\xEF\u40EF\u0300cfmosu\u23CC\u23D7\u23DC\u23E1\u23E7\u23F5\u0100iy\u23D1\u23D5rc;\u4135;\u4439r;\uC000\u{1D527}ath;\u4237pf;\uC000\u{1D55B}\u01E3\u23EC\0\u23F1r;\uC000\u{1D4BF}rcy;\u4458kcy;\u4454\u0400acfghjos\u240B\u2416\u2422\u2427\u242D\u2431\u2435\u243Bppa\u0100;v\u2413\u2414\u43BA;\u43F0\u0100ey\u241B\u2420dil;\u4137;\u443Ar;\uC000\u{1D528}reen;\u4138cy;\u4445cy;\u445Cpf;\uC000\u{1D55C}cr;\uC000\u{1D4C0}\u0B80ABEHabcdefghjlmnoprstuv\u2470\u2481\u2486\u248D\u2491\u250E\u253D\u255A\u2580\u264E\u265E\u2665\u2679\u267D\u269A\u26B2\u26D8\u275D\u2768\u278B\u27C0\u2801\u2812\u0180art\u2477\u247A\u247Cr\xF2\u09C6\xF2\u0395ail;\u691Barr;\u690E\u0100;g\u0994\u248B;\u6A8Bar;\u6962\u0963\u24A5\0\u24AA\0\u24B1\0\0\0\0\0\u24B5\u24BA\0\u24C6\u24C8\u24CD\0\u24F9ute;\u413Amptyv;\u69B4ra\xEE\u084Cbda;\u43BBg\u0180;dl\u088E\u24C1\u24C3;\u6991\xE5\u088E;\u6A85uo\u803B\xAB\u40ABr\u0400;bfhlpst\u0899\u24DE\u24E6\u24E9\u24EB\u24EE\u24F1\u24F5\u0100;f\u089D\u24E3s;\u691Fs;\u691D\xEB\u2252p;\u61ABl;\u6939im;\u6973l;\u61A2\u0180;ae\u24FF\u2500\u2504\u6AABil;\u6919\u0100;s\u2509\u250A\u6AAD;\uC000\u2AAD\uFE00\u0180abr\u2515\u2519\u251Drr;\u690Crk;\u6772\u0100ak\u2522\u252Cc\u0100ek\u2528\u252A;\u407B;\u405B\u0100es\u2531\u2533;\u698Bl\u0100du\u2539\u253B;\u698F;\u698D\u0200aeuy\u2546\u254B\u2556\u2558ron;\u413E\u0100di\u2550\u2554il;\u413C\xEC\u08B0\xE2\u2529;\u443B\u0200cqrs\u2563\u2566\u256D\u257Da;\u6936uo\u0100;r\u0E19\u1746\u0100du\u2572\u2577har;\u6967shar;\u694Bh;\u61B2\u0280;fgqs\u258B\u258C\u0989\u25F3\u25FF\u6264t\u0280ahlrt\u2598\u25A4\u25B7\u25C2\u25E8rrow\u0100;t\u0899\u25A1a\xE9\u24F6arpoon\u0100du\u25AF\u25B4own\xBB\u045Ap\xBB\u0966eftarrows;\u61C7ight\u0180ahs\u25CD\u25D6\u25DErrow\u0100;s\u08F4\u08A7arpoon\xF3\u0F98quigarro\xF7\u21F0hreetimes;\u62CB\u0180;qs\u258B\u0993\u25FAlan\xF4\u09AC\u0280;cdgs\u09AC\u260A\u260D\u261D\u2628c;\u6AA8ot\u0100;o\u2614\u2615\u6A7F\u0100;r\u261A\u261B\u6A81;\u6A83\u0100;e\u2622\u2625\uC000\u22DA\uFE00s;\u6A93\u0280adegs\u2633\u2639\u263D\u2649\u264Bppro\xF8\u24C6ot;\u62D6q\u0100gq\u2643\u2645\xF4\u0989gt\xF2\u248C\xF4\u099Bi\xED\u09B2\u0180ilr\u2655\u08E1\u265Asht;\u697C;\uC000\u{1D529}\u0100;E\u099C\u2663;\u6A91\u0161\u2669\u2676r\u0100du\u25B2\u266E\u0100;l\u0965\u2673;\u696Alk;\u6584cy;\u4459\u0280;acht\u0A48\u2688\u268B\u2691\u2696r\xF2\u25C1orne\xF2\u1D08ard;\u696Bri;\u65FA\u0100io\u269F\u26A4dot;\u4140ust\u0100;a\u26AC\u26AD\u63B0che\xBB\u26AD\u0200Eaes\u26BB\u26BD\u26C9\u26D4;\u6268p\u0100;p\u26C3\u26C4\u6A89rox\xBB\u26C4\u0100;q\u26CE\u26CF\u6A87\u0100;q\u26CE\u26BBim;\u62E6\u0400abnoptwz\u26E9\u26F4\u26F7\u271A\u272F\u2741\u2747\u2750\u0100nr\u26EE\u26F1g;\u67ECr;\u61FDr\xEB\u08C1g\u0180lmr\u26FF\u270D\u2714eft\u0100ar\u09E6\u2707ight\xE1\u09F2apsto;\u67FCight\xE1\u09FDparrow\u0100lr\u2725\u2729ef\xF4\u24EDight;\u61AC\u0180afl\u2736\u2739\u273Dr;\u6985;\uC000\u{1D55D}us;\u6A2Dimes;\u6A34\u0161\u274B\u274Fst;\u6217\xE1\u134E\u0180;ef\u2757\u2758\u1800\u65CAnge\xBB\u2758ar\u0100;l\u2764\u2765\u4028t;\u6993\u0280achmt\u2773\u2776\u277C\u2785\u2787r\xF2\u08A8orne\xF2\u1D8Car\u0100;d\u0F98\u2783;\u696D;\u600Eri;\u62BF\u0300achiqt\u2798\u279D\u0A40\u27A2\u27AE\u27BBquo;\u6039r;\uC000\u{1D4C1}m\u0180;eg\u09B2\u27AA\u27AC;\u6A8D;\u6A8F\u0100bu\u252A\u27B3o\u0100;r\u0E1F\u27B9;\u601Arok;\u4142\u8400<;cdhilqr\u082B\u27D2\u2639\u27DC\u27E0\u27E5\u27EA\u27F0\u0100ci\u27D7\u27D9;\u6AA6r;\u6A79re\xE5\u25F2mes;\u62C9arr;\u6976uest;\u6A7B\u0100Pi\u27F5\u27F9ar;\u6996\u0180;ef\u2800\u092D\u181B\u65C3r\u0100du\u2807\u280Dshar;\u694Ahar;\u6966\u0100en\u2817\u2821rtneqq;\uC000\u2268\uFE00\xC5\u281E\u0700Dacdefhilnopsu\u2840\u2845\u2882\u288E\u2893\u28A0\u28A5\u28A8\u28DA\u28E2\u28E4\u0A83\u28F3\u2902Dot;\u623A\u0200clpr\u284E\u2852\u2863\u287Dr\u803B\xAF\u40AF\u0100et\u2857\u2859;\u6642\u0100;e\u285E\u285F\u6720se\xBB\u285F\u0100;s\u103B\u2868to\u0200;dlu\u103B\u2873\u2877\u287Bow\xEE\u048Cef\xF4\u090F\xF0\u13D1ker;\u65AE\u0100oy\u2887\u288Cmma;\u6A29;\u443Cash;\u6014asuredangle\xBB\u1626r;\uC000\u{1D52A}o;\u6127\u0180cdn\u28AF\u28B4\u28C9ro\u803B\xB5\u40B5\u0200;acd\u1464\u28BD\u28C0\u28C4s\xF4\u16A7ir;\u6AF0ot\u80BB\xB7\u01B5us\u0180;bd\u28D2\u1903\u28D3\u6212\u0100;u\u1D3C\u28D8;\u6A2A\u0163\u28DE\u28E1p;\u6ADB\xF2\u2212\xF0\u0A81\u0100dp\u28E9\u28EEels;\u62A7f;\uC000\u{1D55E}\u0100ct\u28F8\u28FDr;\uC000\u{1D4C2}pos\xBB\u159D\u0180;lm\u2909\u290A\u290D\u43BCtimap;\u62B8\u0C00GLRVabcdefghijlmoprstuvw\u2942\u2953\u297E\u2989\u2998\u29DA\u29E9\u2A15\u2A1A\u2A58\u2A5D\u2A83\u2A95\u2AA4\u2AA8\u2B04\u2B07\u2B44\u2B7F\u2BAE\u2C34\u2C67\u2C7C\u2CE9\u0100gt\u2947\u294B;\uC000\u22D9\u0338\u0100;v\u2950\u0BCF\uC000\u226B\u20D2\u0180elt\u295A\u2972\u2976ft\u0100ar\u2961\u2967rrow;\u61CDightarrow;\u61CE;\uC000\u22D8\u0338\u0100;v\u297B\u0C47\uC000\u226A\u20D2ightarrow;\u61CF\u0100Dd\u298E\u2993ash;\u62AFash;\u62AE\u0280bcnpt\u29A3\u29A7\u29AC\u29B1\u29CCla\xBB\u02DEute;\u4144g;\uC000\u2220\u20D2\u0280;Eiop\u0D84\u29BC\u29C0\u29C5\u29C8;\uC000\u2A70\u0338d;\uC000\u224B\u0338s;\u4149ro\xF8\u0D84ur\u0100;a\u29D3\u29D4\u666El\u0100;s\u29D3\u0B38\u01F3\u29DF\0\u29E3p\u80BB\xA0\u0B37mp\u0100;e\u0BF9\u0C00\u0280aeouy\u29F4\u29FE\u2A03\u2A10\u2A13\u01F0\u29F9\0\u29FB;\u6A43on;\u4148dil;\u4146ng\u0100;d\u0D7E\u2A0Aot;\uC000\u2A6D\u0338p;\u6A42;\u443Dash;\u6013\u0380;Aadqsx\u0B92\u2A29\u2A2D\u2A3B\u2A41\u2A45\u2A50rr;\u61D7r\u0100hr\u2A33\u2A36k;\u6924\u0100;o\u13F2\u13F0ot;\uC000\u2250\u0338ui\xF6\u0B63\u0100ei\u2A4A\u2A4Ear;\u6928\xED\u0B98ist\u0100;s\u0BA0\u0B9Fr;\uC000\u{1D52B}\u0200Eest\u0BC5\u2A66\u2A79\u2A7C\u0180;qs\u0BBC\u2A6D\u0BE1\u0180;qs\u0BBC\u0BC5\u2A74lan\xF4\u0BE2i\xED\u0BEA\u0100;r\u0BB6\u2A81\xBB\u0BB7\u0180Aap\u2A8A\u2A8D\u2A91r\xF2\u2971rr;\u61AEar;\u6AF2\u0180;sv\u0F8D\u2A9C\u0F8C\u0100;d\u2AA1\u2AA2\u62FC;\u62FAcy;\u445A\u0380AEadest\u2AB7\u2ABA\u2ABE\u2AC2\u2AC5\u2AF6\u2AF9r\xF2\u2966;\uC000\u2266\u0338rr;\u619Ar;\u6025\u0200;fqs\u0C3B\u2ACE\u2AE3\u2AEFt\u0100ar\u2AD4\u2AD9rro\xF7\u2AC1ightarro\xF7\u2A90\u0180;qs\u0C3B\u2ABA\u2AEAlan\xF4\u0C55\u0100;s\u0C55\u2AF4\xBB\u0C36i\xED\u0C5D\u0100;r\u0C35\u2AFEi\u0100;e\u0C1A\u0C25i\xE4\u0D90\u0100pt\u2B0C\u2B11f;\uC000\u{1D55F}\u8180\xAC;in\u2B19\u2B1A\u2B36\u40ACn\u0200;Edv\u0B89\u2B24\u2B28\u2B2E;\uC000\u22F9\u0338ot;\uC000\u22F5\u0338\u01E1\u0B89\u2B33\u2B35;\u62F7;\u62F6i\u0100;v\u0CB8\u2B3C\u01E1\u0CB8\u2B41\u2B43;\u62FE;\u62FD\u0180aor\u2B4B\u2B63\u2B69r\u0200;ast\u0B7B\u2B55\u2B5A\u2B5Flle\xEC\u0B7Bl;\uC000\u2AFD\u20E5;\uC000\u2202\u0338lint;\u6A14\u0180;ce\u0C92\u2B70\u2B73u\xE5\u0CA5\u0100;c\u0C98\u2B78\u0100;e\u0C92\u2B7D\xF1\u0C98\u0200Aait\u2B88\u2B8B\u2B9D\u2BA7r\xF2\u2988rr\u0180;cw\u2B94\u2B95\u2B99\u619B;\uC000\u2933\u0338;\uC000\u219D\u0338ghtarrow\xBB\u2B95ri\u0100;e\u0CCB\u0CD6\u0380chimpqu\u2BBD\u2BCD\u2BD9\u2B04\u0B78\u2BE4\u2BEF\u0200;cer\u0D32\u2BC6\u0D37\u2BC9u\xE5\u0D45;\uC000\u{1D4C3}ort\u026D\u2B05\0\0\u2BD6ar\xE1\u2B56m\u0100;e\u0D6E\u2BDF\u0100;q\u0D74\u0D73su\u0100bp\u2BEB\u2BED\xE5\u0CF8\xE5\u0D0B\u0180bcp\u2BF6\u2C11\u2C19\u0200;Ees\u2BFF\u2C00\u0D22\u2C04\u6284;\uC000\u2AC5\u0338et\u0100;e\u0D1B\u2C0Bq\u0100;q\u0D23\u2C00c\u0100;e\u0D32\u2C17\xF1\u0D38\u0200;Ees\u2C22\u2C23\u0D5F\u2C27\u6285;\uC000\u2AC6\u0338et\u0100;e\u0D58\u2C2Eq\u0100;q\u0D60\u2C23\u0200gilr\u2C3D\u2C3F\u2C45\u2C47\xEC\u0BD7lde\u803B\xF1\u40F1\xE7\u0C43iangle\u0100lr\u2C52\u2C5Ceft\u0100;e\u0C1A\u2C5A\xF1\u0C26ight\u0100;e\u0CCB\u2C65\xF1\u0CD7\u0100;m\u2C6C\u2C6D\u43BD\u0180;es\u2C74\u2C75\u2C79\u4023ro;\u6116p;\u6007\u0480DHadgilrs\u2C8F\u2C94\u2C99\u2C9E\u2CA3\u2CB0\u2CB6\u2CD3\u2CE3ash;\u62ADarr;\u6904p;\uC000\u224D\u20D2ash;\u62AC\u0100et\u2CA8\u2CAC;\uC000\u2265\u20D2;\uC000>\u20D2nfin;\u69DE\u0180Aet\u2CBD\u2CC1\u2CC5rr;\u6902;\uC000\u2264\u20D2\u0100;r\u2CCA\u2CCD\uC000<\u20D2ie;\uC000\u22B4\u20D2\u0100At\u2CD8\u2CDCrr;\u6903rie;\uC000\u22B5\u20D2im;\uC000\u223C\u20D2\u0180Aan\u2CF0\u2CF4\u2D02rr;\u61D6r\u0100hr\u2CFA\u2CFDk;\u6923\u0100;o\u13E7\u13E5ear;\u6927\u1253\u1A95\0\0\0\0\0\0\0\0\0\0\0\0\0\u2D2D\0\u2D38\u2D48\u2D60\u2D65\u2D72\u2D84\u1B07\0\0\u2D8D\u2DAB\0\u2DC8\u2DCE\0\u2DDC\u2E19\u2E2B\u2E3E\u2E43\u0100cs\u2D31\u1A97ute\u803B\xF3\u40F3\u0100iy\u2D3C\u2D45r\u0100;c\u1A9E\u2D42\u803B\xF4\u40F4;\u443E\u0280abios\u1AA0\u2D52\u2D57\u01C8\u2D5Alac;\u4151v;\u6A38old;\u69BClig;\u4153\u0100cr\u2D69\u2D6Dir;\u69BF;\uC000\u{1D52C}\u036F\u2D79\0\0\u2D7C\0\u2D82n;\u42DBave\u803B\xF2\u40F2;\u69C1\u0100bm\u2D88\u0DF4ar;\u69B5\u0200acit\u2D95\u2D98\u2DA5\u2DA8r\xF2\u1A80\u0100ir\u2D9D\u2DA0r;\u69BEoss;\u69BBn\xE5\u0E52;\u69C0\u0180aei\u2DB1\u2DB5\u2DB9cr;\u414Dga;\u43C9\u0180cdn\u2DC0\u2DC5\u01CDron;\u43BF;\u69B6pf;\uC000\u{1D560}\u0180ael\u2DD4\u2DD7\u01D2r;\u69B7rp;\u69B9\u0380;adiosv\u2DEA\u2DEB\u2DEE\u2E08\u2E0D\u2E10\u2E16\u6228r\xF2\u1A86\u0200;efm\u2DF7\u2DF8\u2E02\u2E05\u6A5Dr\u0100;o\u2DFE\u2DFF\u6134f\xBB\u2DFF\u803B\xAA\u40AA\u803B\xBA\u40BAgof;\u62B6r;\u6A56lope;\u6A57;\u6A5B\u0180clo\u2E1F\u2E21\u2E27\xF2\u2E01ash\u803B\xF8\u40F8l;\u6298i\u016C\u2E2F\u2E34de\u803B\xF5\u40F5es\u0100;a\u01DB\u2E3As;\u6A36ml\u803B\xF6\u40F6bar;\u633D\u0AE1\u2E5E\0\u2E7D\0\u2E80\u2E9D\0\u2EA2\u2EB9\0\0\u2ECB\u0E9C\0\u2F13\0\0\u2F2B\u2FBC\0\u2FC8r\u0200;ast\u0403\u2E67\u2E72\u0E85\u8100\xB6;l\u2E6D\u2E6E\u40B6le\xEC\u0403\u0269\u2E78\0\0\u2E7Bm;\u6AF3;\u6AFDy;\u443Fr\u0280cimpt\u2E8B\u2E8F\u2E93\u1865\u2E97nt;\u4025od;\u402Eil;\u6030enk;\u6031r;\uC000\u{1D52D}\u0180imo\u2EA8\u2EB0\u2EB4\u0100;v\u2EAD\u2EAE\u43C6;\u43D5ma\xF4\u0A76ne;\u660E\u0180;tv\u2EBF\u2EC0\u2EC8\u43C0chfork\xBB\u1FFD;\u43D6\u0100au\u2ECF\u2EDFn\u0100ck\u2ED5\u2EDDk\u0100;h\u21F4\u2EDB;\u610E\xF6\u21F4s\u0480;abcdemst\u2EF3\u2EF4\u1908\u2EF9\u2EFD\u2F04\u2F06\u2F0A\u2F0E\u402Bcir;\u6A23ir;\u6A22\u0100ou\u1D40\u2F02;\u6A25;\u6A72n\u80BB\xB1\u0E9Dim;\u6A26wo;\u6A27\u0180ipu\u2F19\u2F20\u2F25ntint;\u6A15f;\uC000\u{1D561}nd\u803B\xA3\u40A3\u0500;Eaceinosu\u0EC8\u2F3F\u2F41\u2F44\u2F47\u2F81\u2F89\u2F92\u2F7E\u2FB6;\u6AB3p;\u6AB7u\xE5\u0ED9\u0100;c\u0ECE\u2F4C\u0300;acens\u0EC8\u2F59\u2F5F\u2F66\u2F68\u2F7Eppro\xF8\u2F43urlye\xF1\u0ED9\xF1\u0ECE\u0180aes\u2F6F\u2F76\u2F7Approx;\u6AB9qq;\u6AB5im;\u62E8i\xED\u0EDFme\u0100;s\u2F88\u0EAE\u6032\u0180Eas\u2F78\u2F90\u2F7A\xF0\u2F75\u0180dfp\u0EEC\u2F99\u2FAF\u0180als\u2FA0\u2FA5\u2FAAlar;\u632Eine;\u6312urf;\u6313\u0100;t\u0EFB\u2FB4\xEF\u0EFBrel;\u62B0\u0100ci\u2FC0\u2FC5r;\uC000\u{1D4C5};\u43C8ncsp;\u6008\u0300fiopsu\u2FDA\u22E2\u2FDF\u2FE5\u2FEB\u2FF1r;\uC000\u{1D52E}pf;\uC000\u{1D562}rime;\u6057cr;\uC000\u{1D4C6}\u0180aeo\u2FF8\u3009\u3013t\u0100ei\u2FFE\u3005rnion\xF3\u06B0nt;\u6A16st\u0100;e\u3010\u3011\u403F\xF1\u1F19\xF4\u0F14\u0A80ABHabcdefhilmnoprstux\u3040\u3051\u3055\u3059\u30E0\u310E\u312B\u3147\u3162\u3172\u318E\u3206\u3215\u3224\u3229\u3258\u326E\u3272\u3290\u32B0\u32B7\u0180art\u3047\u304A\u304Cr\xF2\u10B3\xF2\u03DDail;\u691Car\xF2\u1C65ar;\u6964\u0380cdenqrt\u3068\u3075\u3078\u307F\u308F\u3094\u30CC\u0100eu\u306D\u3071;\uC000\u223D\u0331te;\u4155i\xE3\u116Emptyv;\u69B3g\u0200;del\u0FD1\u3089\u308B\u308D;\u6992;\u69A5\xE5\u0FD1uo\u803B\xBB\u40BBr\u0580;abcfhlpstw\u0FDC\u30AC\u30AF\u30B7\u30B9\u30BC\u30BE\u30C0\u30C3\u30C7\u30CAp;\u6975\u0100;f\u0FE0\u30B4s;\u6920;\u6933s;\u691E\xEB\u225D\xF0\u272El;\u6945im;\u6974l;\u61A3;\u619D\u0100ai\u30D1\u30D5il;\u691Ao\u0100;n\u30DB\u30DC\u6236al\xF3\u0F1E\u0180abr\u30E7\u30EA\u30EEr\xF2\u17E5rk;\u6773\u0100ak\u30F3\u30FDc\u0100ek\u30F9\u30FB;\u407D;\u405D\u0100es\u3102\u3104;\u698Cl\u0100du\u310A\u310C;\u698E;\u6990\u0200aeuy\u3117\u311C\u3127\u3129ron;\u4159\u0100di\u3121\u3125il;\u4157\xEC\u0FF2\xE2\u30FA;\u4440\u0200clqs\u3134\u3137\u313D\u3144a;\u6937dhar;\u6969uo\u0100;r\u020E\u020Dh;\u61B3\u0180acg\u314E\u315F\u0F44l\u0200;ips\u0F78\u3158\u315B\u109Cn\xE5\u10BBar\xF4\u0FA9t;\u65AD\u0180ilr\u3169\u1023\u316Esht;\u697D;\uC000\u{1D52F}\u0100ao\u3177\u3186r\u0100du\u317D\u317F\xBB\u047B\u0100;l\u1091\u3184;\u696C\u0100;v\u318B\u318C\u43C1;\u43F1\u0180gns\u3195\u31F9\u31FCht\u0300ahlrst\u31A4\u31B0\u31C2\u31D8\u31E4\u31EErrow\u0100;t\u0FDC\u31ADa\xE9\u30C8arpoon\u0100du\u31BB\u31BFow\xEE\u317Ep\xBB\u1092eft\u0100ah\u31CA\u31D0rrow\xF3\u0FEAarpoon\xF3\u0551ightarrows;\u61C9quigarro\xF7\u30CBhreetimes;\u62CCg;\u42DAingdotse\xF1\u1F32\u0180ahm\u320D\u3210\u3213r\xF2\u0FEAa\xF2\u0551;\u600Foust\u0100;a\u321E\u321F\u63B1che\xBB\u321Fmid;\u6AEE\u0200abpt\u3232\u323D\u3240\u3252\u0100nr\u3237\u323Ag;\u67EDr;\u61FEr\xEB\u1003\u0180afl\u3247\u324A\u324Er;\u6986;\uC000\u{1D563}us;\u6A2Eimes;\u6A35\u0100ap\u325D\u3267r\u0100;g\u3263\u3264\u4029t;\u6994olint;\u6A12ar\xF2\u31E3\u0200achq\u327B\u3280\u10BC\u3285quo;\u603Ar;\uC000\u{1D4C7}\u0100bu\u30FB\u328Ao\u0100;r\u0214\u0213\u0180hir\u3297\u329B\u32A0re\xE5\u31F8mes;\u62CAi\u0200;efl\u32AA\u1059\u1821\u32AB\u65B9tri;\u69CEluhar;\u6968;\u611E\u0D61\u32D5\u32DB\u32DF\u332C\u3338\u3371\0\u337A\u33A4\0\0\u33EC\u33F0\0\u3428\u3448\u345A\u34AD\u34B1\u34CA\u34F1\0\u3616\0\0\u3633cute;\u415Bqu\xEF\u27BA\u0500;Eaceinpsy\u11ED\u32F3\u32F5\u32FF\u3302\u330B\u330F\u331F\u3326\u3329;\u6AB4\u01F0\u32FA\0\u32FC;\u6AB8on;\u4161u\xE5\u11FE\u0100;d\u11F3\u3307il;\u415Frc;\u415D\u0180Eas\u3316\u3318\u331B;\u6AB6p;\u6ABAim;\u62E9olint;\u6A13i\xED\u1204;\u4441ot\u0180;be\u3334\u1D47\u3335\u62C5;\u6A66\u0380Aacmstx\u3346\u334A\u3357\u335B\u335E\u3363\u336Drr;\u61D8r\u0100hr\u3350\u3352\xEB\u2228\u0100;o\u0A36\u0A34t\u803B\xA7\u40A7i;\u403Bwar;\u6929m\u0100in\u3369\xF0nu\xF3\xF1t;\u6736r\u0100;o\u3376\u2055\uC000\u{1D530}\u0200acoy\u3382\u3386\u3391\u33A0rp;\u666F\u0100hy\u338B\u338Fcy;\u4449;\u4448rt\u026D\u3399\0\0\u339Ci\xE4\u1464ara\xEC\u2E6F\u803B\xAD\u40AD\u0100gm\u33A8\u33B4ma\u0180;fv\u33B1\u33B2\u33B2\u43C3;\u43C2\u0400;deglnpr\u12AB\u33C5\u33C9\u33CE\u33D6\u33DE\u33E1\u33E6ot;\u6A6A\u0100;q\u12B1\u12B0\u0100;E\u33D3\u33D4\u6A9E;\u6AA0\u0100;E\u33DB\u33DC\u6A9D;\u6A9Fe;\u6246lus;\u6A24arr;\u6972ar\xF2\u113D\u0200aeit\u33F8\u3408\u340F\u3417\u0100ls\u33FD\u3404lsetm\xE9\u336Ahp;\u6A33parsl;\u69E4\u0100dl\u1463\u3414e;\u6323\u0100;e\u341C\u341D\u6AAA\u0100;s\u3422\u3423\u6AAC;\uC000\u2AAC\uFE00\u0180flp\u342E\u3433\u3442tcy;\u444C\u0100;b\u3438\u3439\u402F\u0100;a\u343E\u343F\u69C4r;\u633Ff;\uC000\u{1D564}a\u0100dr\u344D\u0402es\u0100;u\u3454\u3455\u6660it\xBB\u3455\u0180csu\u3460\u3479\u349F\u0100au\u3465\u346Fp\u0100;s\u1188\u346B;\uC000\u2293\uFE00p\u0100;s\u11B4\u3475;\uC000\u2294\uFE00u\u0100bp\u347F\u348F\u0180;es\u1197\u119C\u3486et\u0100;e\u1197\u348D\xF1\u119D\u0180;es\u11A8\u11AD\u3496et\u0100;e\u11A8\u349D\xF1\u11AE\u0180;af\u117B\u34A6\u05B0r\u0165\u34AB\u05B1\xBB\u117Car\xF2\u1148\u0200cemt\u34B9\u34BE\u34C2\u34C5r;\uC000\u{1D4C8}tm\xEE\xF1i\xEC\u3415ar\xE6\u11BE\u0100ar\u34CE\u34D5r\u0100;f\u34D4\u17BF\u6606\u0100an\u34DA\u34EDight\u0100ep\u34E3\u34EApsilo\xEE\u1EE0h\xE9\u2EAFs\xBB\u2852\u0280bcmnp\u34FB\u355E\u1209\u358B\u358E\u0480;Edemnprs\u350E\u350F\u3511\u3515\u351E\u3523\u352C\u3531\u3536\u6282;\u6AC5ot;\u6ABD\u0100;d\u11DA\u351Aot;\u6AC3ult;\u6AC1\u0100Ee\u3528\u352A;\u6ACB;\u628Alus;\u6ABFarr;\u6979\u0180eiu\u353D\u3552\u3555t\u0180;en\u350E\u3545\u354Bq\u0100;q\u11DA\u350Feq\u0100;q\u352B\u3528m;\u6AC7\u0100bp\u355A\u355C;\u6AD5;\u6AD3c\u0300;acens\u11ED\u356C\u3572\u3579\u357B\u3326ppro\xF8\u32FAurlye\xF1\u11FE\xF1\u11F3\u0180aes\u3582\u3588\u331Bppro\xF8\u331Aq\xF1\u3317g;\u666A\u0680123;Edehlmnps\u35A9\u35AC\u35AF\u121C\u35B2\u35B4\u35C0\u35C9\u35D5\u35DA\u35DF\u35E8\u35ED\u803B\xB9\u40B9\u803B\xB2\u40B2\u803B\xB3\u40B3;\u6AC6\u0100os\u35B9\u35BCt;\u6ABEub;\u6AD8\u0100;d\u1222\u35C5ot;\u6AC4s\u0100ou\u35CF\u35D2l;\u67C9b;\u6AD7arr;\u697Bult;\u6AC2\u0100Ee\u35E4\u35E6;\u6ACC;\u628Blus;\u6AC0\u0180eiu\u35F4\u3609\u360Ct\u0180;en\u121C\u35FC\u3602q\u0100;q\u1222\u35B2eq\u0100;q\u35E7\u35E4m;\u6AC8\u0100bp\u3611\u3613;\u6AD4;\u6AD6\u0180Aan\u361C\u3620\u362Drr;\u61D9r\u0100hr\u3626\u3628\xEB\u222E\u0100;o\u0A2B\u0A29war;\u692Alig\u803B\xDF\u40DF\u0BE1\u3651\u365D\u3660\u12CE\u3673\u3679\0\u367E\u36C2\0\0\0\0\0\u36DB\u3703\0\u3709\u376C\0\0\0\u3787\u0272\u3656\0\0\u365Bget;\u6316;\u43C4r\xEB\u0E5F\u0180aey\u3666\u366B\u3670ron;\u4165dil;\u4163;\u4442lrec;\u6315r;\uC000\u{1D531}\u0200eiko\u3686\u369D\u36B5\u36BC\u01F2\u368B\0\u3691e\u01004f\u1284\u1281a\u0180;sv\u3698\u3699\u369B\u43B8ym;\u43D1\u0100cn\u36A2\u36B2k\u0100as\u36A8\u36AEppro\xF8\u12C1im\xBB\u12ACs\xF0\u129E\u0100as\u36BA\u36AE\xF0\u12C1rn\u803B\xFE\u40FE\u01EC\u031F\u36C6\u22E7es\u8180\xD7;bd\u36CF\u36D0\u36D8\u40D7\u0100;a\u190F\u36D5r;\u6A31;\u6A30\u0180eps\u36E1\u36E3\u3700\xE1\u2A4D\u0200;bcf\u0486\u36EC\u36F0\u36F4ot;\u6336ir;\u6AF1\u0100;o\u36F9\u36FC\uC000\u{1D565}rk;\u6ADA\xE1\u3362rime;\u6034\u0180aip\u370F\u3712\u3764d\xE5\u1248\u0380adempst\u3721\u374D\u3740\u3751\u3757\u375C\u375Fngle\u0280;dlqr\u3730\u3731\u3736\u3740\u3742\u65B5own\xBB\u1DBBeft\u0100;e\u2800\u373E\xF1\u092E;\u625Cight\u0100;e\u32AA\u374B\xF1\u105Aot;\u65ECinus;\u6A3Alus;\u6A39b;\u69CDime;\u6A3Bezium;\u63E2\u0180cht\u3772\u377D\u3781\u0100ry\u3777\u377B;\uC000\u{1D4C9};\u4446cy;\u445Brok;\u4167\u0100io\u378B\u378Ex\xF4\u1777head\u0100lr\u3797\u37A0eftarro\xF7\u084Fightarrow\xBB\u0F5D\u0900AHabcdfghlmoprstuw\u37D0\u37D3\u37D7\u37E4\u37F0\u37FC\u380E\u381C\u3823\u3834\u3851\u385D\u386B\u38A9\u38CC\u38D2\u38EA\u38F6r\xF2\u03EDar;\u6963\u0100cr\u37DC\u37E2ute\u803B\xFA\u40FA\xF2\u1150r\u01E3\u37EA\0\u37EDy;\u445Eve;\u416D\u0100iy\u37F5\u37FArc\u803B\xFB\u40FB;\u4443\u0180abh\u3803\u3806\u380Br\xF2\u13ADlac;\u4171a\xF2\u13C3\u0100ir\u3813\u3818sht;\u697E;\uC000\u{1D532}rave\u803B\xF9\u40F9\u0161\u3827\u3831r\u0100lr\u382C\u382E\xBB\u0957\xBB\u1083lk;\u6580\u0100ct\u3839\u384D\u026F\u383F\0\0\u384Arn\u0100;e\u3845\u3846\u631Cr\xBB\u3846op;\u630Fri;\u65F8\u0100al\u3856\u385Acr;\u416B\u80BB\xA8\u0349\u0100gp\u3862\u3866on;\u4173f;\uC000\u{1D566}\u0300adhlsu\u114B\u3878\u387D\u1372\u3891\u38A0own\xE1\u13B3arpoon\u0100lr\u3888\u388Cef\xF4\u382Digh\xF4\u382Fi\u0180;hl\u3899\u389A\u389C\u43C5\xBB\u13FAon\xBB\u389Aparrows;\u61C8\u0180cit\u38B0\u38C4\u38C8\u026F\u38B6\0\0\u38C1rn\u0100;e\u38BC\u38BD\u631Dr\xBB\u38BDop;\u630Eng;\u416Fri;\u65F9cr;\uC000\u{1D4CA}\u0180dir\u38D9\u38DD\u38E2ot;\u62F0lde;\u4169i\u0100;f\u3730\u38E8\xBB\u1813\u0100am\u38EF\u38F2r\xF2\u38A8l\u803B\xFC\u40FCangle;\u69A7\u0780ABDacdeflnoprsz\u391C\u391F\u3929\u392D\u39B5\u39B8\u39BD\u39DF\u39E4\u39E8\u39F3\u39F9\u39FD\u3A01\u3A20r\xF2\u03F7ar\u0100;v\u3926\u3927\u6AE8;\u6AE9as\xE8\u03E1\u0100nr\u3932\u3937grt;\u699C\u0380eknprst\u34E3\u3946\u394B\u3952\u395D\u3964\u3996app\xE1\u2415othin\xE7\u1E96\u0180hir\u34EB\u2EC8\u3959op\xF4\u2FB5\u0100;h\u13B7\u3962\xEF\u318D\u0100iu\u3969\u396Dgm\xE1\u33B3\u0100bp\u3972\u3984setneq\u0100;q\u397D\u3980\uC000\u228A\uFE00;\uC000\u2ACB\uFE00setneq\u0100;q\u398F\u3992\uC000\u228B\uFE00;\uC000\u2ACC\uFE00\u0100hr\u399B\u399Fet\xE1\u369Ciangle\u0100lr\u39AA\u39AFeft\xBB\u0925ight\xBB\u1051y;\u4432ash\xBB\u1036\u0180elr\u39C4\u39D2\u39D7\u0180;be\u2DEA\u39CB\u39CFar;\u62BBq;\u625Alip;\u62EE\u0100bt\u39DC\u1468a\xF2\u1469r;\uC000\u{1D533}tr\xE9\u39AEsu\u0100bp\u39EF\u39F1\xBB\u0D1C\xBB\u0D59pf;\uC000\u{1D567}ro\xF0\u0EFBtr\xE9\u39B4\u0100cu\u3A06\u3A0Br;\uC000\u{1D4CB}\u0100bp\u3A10\u3A18n\u0100Ee\u3980\u3A16\xBB\u397En\u0100Ee\u3992\u3A1E\xBB\u3990igzag;\u699A\u0380cefoprs\u3A36\u3A3B\u3A56\u3A5B\u3A54\u3A61\u3A6Airc;\u4175\u0100di\u3A40\u3A51\u0100bg\u3A45\u3A49ar;\u6A5Fe\u0100;q\u15FA\u3A4F;\u6259erp;\u6118r;\uC000\u{1D534}pf;\uC000\u{1D568}\u0100;e\u1479\u3A66at\xE8\u1479cr;\uC000\u{1D4CC}\u0AE3\u178E\u3A87\0\u3A8B\0\u3A90\u3A9B\0\0\u3A9D\u3AA8\u3AAB\u3AAF\0\0\u3AC3\u3ACE\0\u3AD8\u17DC\u17DFtr\xE9\u17D1r;\uC000\u{1D535}\u0100Aa\u3A94\u3A97r\xF2\u03C3r\xF2\u09F6;\u43BE\u0100Aa\u3AA1\u3AA4r\xF2\u03B8r\xF2\u09EBa\xF0\u2713is;\u62FB\u0180dpt\u17A4\u3AB5\u3ABE\u0100fl\u3ABA\u17A9;\uC000\u{1D569}im\xE5\u17B2\u0100Aa\u3AC7\u3ACAr\xF2\u03CEr\xF2\u0A01\u0100cq\u3AD2\u17B8r;\uC000\u{1D4CD}\u0100pt\u17D6\u3ADCr\xE9\u17D4\u0400acefiosu\u3AF0\u3AFD\u3B08\u3B0C\u3B11\u3B15\u3B1B\u3B21c\u0100uy\u3AF6\u3AFBte\u803B\xFD\u40FD;\u444F\u0100iy\u3B02\u3B06rc;\u4177;\u444Bn\u803B\xA5\u40A5r;\uC000\u{1D536}cy;\u4457pf;\uC000\u{1D56A}cr;\uC000\u{1D4CE}\u0100cm\u3B26\u3B29y;\u444El\u803B\xFF\u40FF\u0500acdefhiosw\u3B42\u3B48\u3B54\u3B58\u3B64\u3B69\u3B6D\u3B74\u3B7A\u3B80cute;\u417A\u0100ay\u3B4D\u3B52ron;\u417E;\u4437ot;\u417C\u0100et\u3B5D\u3B61tr\xE6\u155Fa;\u43B6r;\uC000\u{1D537}cy;\u4436grarr;\u61DDpf;\uC000\u{1D56B}cr;\uC000\u{1D4CF}\u0100jn\u3B85\u3B87;\u600Dj;\u600C'.split("").map((c) => c.charCodeAt(0)) ); } }); // node_modules/entities/lib/esm/generated/decode-data-xml.js var decode_data_xml_default; var init_decode_data_xml = __esm({ "node_modules/entities/lib/esm/generated/decode-data-xml.js"() { decode_data_xml_default = new Uint16Array( // prettier-ignore "\u0200aglq \x1B\u026D\0\0p;\u4026os;\u4027t;\u403Et;\u403Cuot;\u4022".split("").map((c) => c.charCodeAt(0)) ); } }); // node_modules/entities/lib/esm/decode_codepoint.js function replaceCodePoint(codePoint) { var _a2; if (codePoint >= 55296 && codePoint <= 57343 || codePoint > 1114111) { return 65533; } return (_a2 = decodeMap.get(codePoint)) !== null && _a2 !== void 0 ? _a2 : codePoint; } var _a, decodeMap, fromCodePoint; var init_decode_codepoint = __esm({ "node_modules/entities/lib/esm/decode_codepoint.js"() { decodeMap = /* @__PURE__ */ new Map([ [0, 65533], // C1 Unicode control character reference replacements [128, 8364], [130, 8218], [131, 402], [132, 8222], [133, 8230], [134, 8224], [135, 8225], [136, 710], [137, 8240], [138, 352], [139, 8249], [140, 338], [142, 381], [145, 8216], [146, 8217], [147, 8220], [148, 8221], [149, 8226], [150, 8211], [151, 8212], [152, 732], [153, 8482], [154, 353], [155, 8250], [156, 339], [158, 382], [159, 376] ]); fromCodePoint = // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition, node/no-unsupported-features/es-builtins (_a = String.fromCodePoint) !== null && _a !== void 0 ? _a : function(codePoint) { let output = ""; if (codePoint > 65535) { codePoint -= 65536; output += String.fromCharCode(codePoint >>> 10 & 1023 | 55296); codePoint = 56320 | codePoint & 1023; } output += String.fromCharCode(codePoint); return output; }; } }); // node_modules/entities/lib/esm/decode.js function isNumber2(code) { return code >= CharCodes.ZERO && code <= CharCodes.NINE; } function isHexadecimalCharacter(code) { return code >= CharCodes.UPPER_A && code <= CharCodes.UPPER_F || code >= CharCodes.LOWER_A && code <= CharCodes.LOWER_F; } function isAsciiAlphaNumeric(code) { return code >= CharCodes.UPPER_A && code <= CharCodes.UPPER_Z || code >= CharCodes.LOWER_A && code <= CharCodes.LOWER_Z || isNumber2(code); } function isEntityInAttributeInvalidEnd(code) { return code === CharCodes.EQUALS || isAsciiAlphaNumeric(code); } function getDecoder(decodeTree) { let ret = ""; const decoder = new EntityDecoder(decodeTree, (str) => ret += fromCodePoint(str)); return function decodeWithTrie(str, decodeMode) { let lastIndex = 0; let offset = 0; while ((offset = str.indexOf("&", offset)) >= 0) { ret += str.slice(lastIndex, offset); decoder.startEntity(decodeMode); const len = decoder.write( str, // Skip the "&" offset + 1 ); if (len < 0) { lastIndex = offset + decoder.end(); break; } lastIndex = offset + len; offset = len === 0 ? lastIndex + 1 : lastIndex; } const result = ret + str.slice(lastIndex); ret = ""; return result; }; } function determineBranch(decodeTree, current, nodeIdx, char) { const branchCount = (current & BinTrieFlags.BRANCH_LENGTH) >> 7; const jumpOffset = current & BinTrieFlags.JUMP_TABLE; if (branchCount === 0) { return jumpOffset !== 0 && char === jumpOffset ? nodeIdx : -1; } if (jumpOffset) { const value = char - jumpOffset; return value < 0 || value >= branchCount ? -1 : decodeTree[nodeIdx + value] - 1; } let lo = nodeIdx; let hi = lo + branchCount - 1; while (lo <= hi) { const mid = lo + hi >>> 1; const midVal = decodeTree[mid]; if (midVal < char) { lo = mid + 1; } else if (midVal > char) { hi = mid - 1; } else { return decodeTree[mid + branchCount]; } } return -1; } var CharCodes, TO_LOWER_BIT, BinTrieFlags, EntityDecoderState, DecodingMode, EntityDecoder, htmlDecoder, xmlDecoder; var init_decode = __esm({ "node_modules/entities/lib/esm/decode.js"() { init_decode_data_html(); init_decode_data_xml(); init_decode_codepoint(); init_decode_codepoint(); (function(CharCodes3) { CharCodes3[CharCodes3["NUM"] = 35] = "NUM"; CharCodes3[CharCodes3["SEMI"] = 59] = "SEMI"; CharCodes3[CharCodes3["EQUALS"] = 61] = "EQUALS"; CharCodes3[CharCodes3["ZERO"] = 48] = "ZERO"; CharCodes3[CharCodes3["NINE"] = 57] = "NINE"; CharCodes3[CharCodes3["LOWER_A"] = 97] = "LOWER_A"; CharCodes3[CharCodes3["LOWER_F"] = 102] = "LOWER_F"; CharCodes3[CharCodes3["LOWER_X"] = 120] = "LOWER_X"; CharCodes3[CharCodes3["LOWER_Z"] = 122] = "LOWER_Z"; CharCodes3[CharCodes3["UPPER_A"] = 65] = "UPPER_A"; CharCodes3[CharCodes3["UPPER_F"] = 70] = "UPPER_F"; CharCodes3[CharCodes3["UPPER_Z"] = 90] = "UPPER_Z"; })(CharCodes || (CharCodes = {})); TO_LOWER_BIT = 32; (function(BinTrieFlags2) { BinTrieFlags2[BinTrieFlags2["VALUE_LENGTH"] = 49152] = "VALUE_LENGTH"; BinTrieFlags2[BinTrieFlags2["BRANCH_LENGTH"] = 16256] = "BRANCH_LENGTH"; BinTrieFlags2[BinTrieFlags2["JUMP_TABLE"] = 127] = "JUMP_TABLE"; })(BinTrieFlags || (BinTrieFlags = {})); (function(EntityDecoderState2) { EntityDecoderState2[EntityDecoderState2["EntityStart"] = 0] = "EntityStart"; EntityDecoderState2[EntityDecoderState2["NumericStart"] = 1] = "NumericStart"; EntityDecoderState2[EntityDecoderState2["NumericDecimal"] = 2] = "NumericDecimal"; EntityDecoderState2[EntityDecoderState2["NumericHex"] = 3] = "NumericHex"; EntityDecoderState2[EntityDecoderState2["NamedEntity"] = 4] = "NamedEntity"; })(EntityDecoderState || (EntityDecoderState = {})); (function(DecodingMode2) { DecodingMode2[DecodingMode2["Legacy"] = 0] = "Legacy"; DecodingMode2[DecodingMode2["Strict"] = 1] = "Strict"; DecodingMode2[DecodingMode2["Attribute"] = 2] = "Attribute"; })(DecodingMode || (DecodingMode = {})); EntityDecoder = class { constructor(decodeTree, emitCodePoint, errors) { this.decodeTree = decodeTree; this.emitCodePoint = emitCodePoint; this.errors = errors; this.state = EntityDecoderState.EntityStart; this.consumed = 1; this.result = 0; this.treeIndex = 0; this.excess = 1; this.decodeMode = DecodingMode.Strict; } /** Resets the instance to make it reusable. */ startEntity(decodeMode) { this.decodeMode = decodeMode; this.state = EntityDecoderState.EntityStart; this.result = 0; this.treeIndex = 0; this.excess = 1; this.consumed = 1; } /** * Write an entity to the decoder. This can be called multiple times with partial entities. * If the entity is incomplete, the decoder will return -1. * * Mirrors the implementation of `getDecoder`, but with the ability to stop decoding if the * entity is incomplete, and resume when the next string is written. * * @param string The string containing the entity (or a continuation of the entity). * @param offset The offset at which the entity begins. Should be 0 if this is not the first call. * @returns The number of characters that were consumed, or -1 if the entity is incomplete. */ write(str, offset) { switch (this.state) { case EntityDecoderState.EntityStart: { if (str.charCodeAt(offset) === CharCodes.NUM) { this.state = EntityDecoderState.NumericStart; this.consumed += 1; return this.stateNumericStart(str, offset + 1); } this.state = EntityDecoderState.NamedEntity; return this.stateNamedEntity(str, offset); } case EntityDecoderState.NumericStart: { return this.stateNumericStart(str, offset); } case EntityDecoderState.NumericDecimal: { return this.stateNumericDecimal(str, offset); } case EntityDecoderState.NumericHex: { return this.stateNumericHex(str, offset); } case EntityDecoderState.NamedEntity: { return this.stateNamedEntity(str, offset); } } } /** * Switches between the numeric decimal and hexadecimal states. * * Equivalent to the `Numeric character reference state` in the HTML spec. * * @param str The string containing the entity (or a continuation of the entity). * @param offset The current offset. * @returns The number of characters that were consumed, or -1 if the entity is incomplete. */ stateNumericStart(str, offset) { if (offset >= str.length) { return -1; } if ((str.charCodeAt(offset) | TO_LOWER_BIT) === CharCodes.LOWER_X) { this.state = EntityDecoderState.NumericHex; this.consumed += 1; return this.stateNumericHex(str, offset + 1); } this.state = EntityDecoderState.NumericDecimal; return this.stateNumericDecimal(str, offset); } addToNumericResult(str, start, end2, base) { if (start !== end2) { const digitCount = end2 - start; this.result = this.result * Math.pow(base, digitCount) + parseInt(str.substr(start, digitCount), base); this.consumed += digitCount; } } /** * Parses a hexadecimal numeric entity. * * Equivalent to the `Hexademical character reference state` in the HTML spec. * * @param str The string containing the entity (or a continuation of the entity). * @param offset The current offset. * @returns The number of characters that were consumed, or -1 if the entity is incomplete. */ stateNumericHex(str, offset) { const startIdx = offset; while (offset < str.length) { const char = str.charCodeAt(offset); if (isNumber2(char) || isHexadecimalCharacter(char)) { offset += 1; } else { this.addToNumericResult(str, startIdx, offset, 16); return this.emitNumericEntity(char, 3); } } this.addToNumericResult(str, startIdx, offset, 16); return -1; } /** * Parses a decimal numeric entity. * * Equivalent to the `Decimal character reference state` in the HTML spec. * * @param str The string containing the entity (or a continuation of the entity). * @param offset The current offset. * @returns The number of characters that were consumed, or -1 if the entity is incomplete. */ stateNumericDecimal(str, offset) { const startIdx = offset; while (offset < str.length) { const char = str.charCodeAt(offset); if (isNumber2(char)) { offset += 1; } else { this.addToNumericResult(str, startIdx, offset, 10); return this.emitNumericEntity(char, 2); } } this.addToNumericResult(str, startIdx, offset, 10); return -1; } /** * Validate and emit a numeric entity. * * Implements the logic from the `Hexademical character reference start * state` and `Numeric character reference end state` in the HTML spec. * * @param lastCp The last code point of the entity. Used to see if the * entity was terminated with a semicolon. * @param expectedLength The minimum number of characters that should be * consumed. Used to validate that at least one digit * was consumed. * @returns The number of characters that were consumed. */ emitNumericEntity(lastCp, expectedLength) { var _a2; if (this.consumed <= expectedLength) { (_a2 = this.errors) === null || _a2 === void 0 ? void 0 : _a2.absenceOfDigitsInNumericCharacterReference(this.consumed); return 0; } if (lastCp === CharCodes.SEMI) { this.consumed += 1; } else if (this.decodeMode === DecodingMode.Strict) { return 0; } this.emitCodePoint(replaceCodePoint(this.result), this.consumed); if (this.errors) { if (lastCp !== CharCodes.SEMI) { this.errors.missingSemicolonAfterCharacterReference(); } this.errors.validateNumericCharacterReference(this.result); } return this.consumed; } /** * Parses a named entity. * * Equivalent to the `Named character reference state` in the HTML spec. * * @param str The string containing the entity (or a continuation of the entity). * @param offset The current offset. * @returns The number of characters that were consumed, or -1 if the entity is incomplete. */ stateNamedEntity(str, offset) { const { decodeTree } = this; let current = decodeTree[this.treeIndex]; let valueLength = (current & BinTrieFlags.VALUE_LENGTH) >> 14; for (; offset < str.length; offset++, this.excess++) { const char = str.charCodeAt(offset); this.treeIndex = determineBranch(decodeTree, current, this.treeIndex + Math.max(1, valueLength), char); if (this.treeIndex < 0) { return this.result === 0 || // If we are parsing an attribute this.decodeMode === DecodingMode.Attribute && // We shouldn't have consumed any characters after the entity, (valueLength === 0 || // And there should be no invalid characters. isEntityInAttributeInvalidEnd(char)) ? 0 : this.emitNotTerminatedNamedEntity(); } current = decodeTree[this.treeIndex]; valueLength = (current & BinTrieFlags.VALUE_LENGTH) >> 14; if (valueLength !== 0) { if (char === CharCodes.SEMI) { return this.emitNamedEntityData(this.treeIndex, valueLength, this.consumed + this.excess); } if (this.decodeMode !== DecodingMode.Strict) { this.result = this.treeIndex; this.consumed += this.excess; this.excess = 0; } } } return -1; } /** * Emit a named entity that was not terminated with a semicolon. * * @returns The number of characters consumed. */ emitNotTerminatedNamedEntity() { var _a2; const { result, decodeTree } = this; const valueLength = (decodeTree[result] & BinTrieFlags.VALUE_LENGTH) >> 14; this.emitNamedEntityData(result, valueLength, this.consumed); (_a2 = this.errors) === null || _a2 === void 0 ? void 0 : _a2.missingSemicolonAfterCharacterReference(); return this.consumed; } /** * Emit a named entity. * * @param result The index of the entity in the decode tree. * @param valueLength The number of bytes in the entity. * @param consumed The number of characters consumed. * * @returns The number of characters consumed. */ emitNamedEntityData(result, valueLength, consumed) { const { decodeTree } = this; this.emitCodePoint(valueLength === 1 ? decodeTree[result] & ~BinTrieFlags.VALUE_LENGTH : decodeTree[result + 1], consumed); if (valueLength === 3) { this.emitCodePoint(decodeTree[result + 2], consumed); } return consumed; } /** * Signal to the parser that the end of the input was reached. * * Remaining data will be emitted and relevant errors will be produced. * * @returns The number of characters consumed. */ end() { var _a2; switch (this.state) { case EntityDecoderState.NamedEntity: { return this.result !== 0 && (this.decodeMode !== DecodingMode.Attribute || this.result === this.treeIndex) ? this.emitNotTerminatedNamedEntity() : 0; } // Otherwise, emit a numeric entity if we have one. case EntityDecoderState.NumericDecimal: { return this.emitNumericEntity(0, 2); } case EntityDecoderState.NumericHex: { return this.emitNumericEntity(0, 3); } case EntityDecoderState.NumericStart: { (_a2 = this.errors) === null || _a2 === void 0 ? void 0 : _a2.absenceOfDigitsInNumericCharacterReference(this.consumed); return 0; } case EntityDecoderState.EntityStart: { return 0; } } } }; htmlDecoder = getDecoder(decode_data_html_default); xmlDecoder = getDecoder(decode_data_xml_default); } }); // node_modules/entities/lib/esm/generated/encode-html.js function restoreDiff(arr) { for (let i = 1; i < arr.length; i++) { arr[i][0] += arr[i - 1][0] + 1; } return arr; } var encode_html_default; var init_encode_html = __esm({ "node_modules/entities/lib/esm/generated/encode-html.js"() { encode_html_default = new Map(/* @__PURE__ */ restoreDiff([[9, "&Tab;"], [0, "&NewLine;"], [22, "&excl;"], [0, "&quot;"], [0, "&num;"], [0, "&dollar;"], [0, "&percnt;"], [0, "&amp;"], [0, "&apos;"], [0, "&lpar;"], [0, "&rpar;"], [0, "&ast;"], [0, "&plus;"], [0, "&comma;"], [1, "&period;"], [0, "&sol;"], [10, "&colon;"], [0, "&semi;"], [0, { v: "&lt;", n: 8402, o: "&nvlt;" }], [0, { v: "&equals;", n: 8421, o: "&bne;" }], [0, { v: "&gt;", n: 8402, o: "&nvgt;" }], [0, "&quest;"], [0, "&commat;"], [26, "&lbrack;"], [0, "&bsol;"], [0, "&rbrack;"], [0, "&Hat;"], [0, "&lowbar;"], [0, "&DiacriticalGrave;"], [5, { n: 106, o: "&fjlig;" }], [20, "&lbrace;"], [0, "&verbar;"], [0, "&rbrace;"], [34, "&nbsp;"], [0, "&iexcl;"], [0, "&cent;"], [0, "&pound;"], [0, "&curren;"], [0, "&yen;"], [0, "&brvbar;"], [0, "&sect;"], [0, "&die;"], [0, "&copy;"], [0, "&ordf;"], [0, "&laquo;"], [0, "&not;"], [0, "&shy;"], [0, "&circledR;"], [0, "&macr;"], [0, "&deg;"], [0, "&PlusMinus;"], [0, "&sup2;"], [0, "&sup3;"], [0, "&acute;"], [0, "&micro;"], [0, "&para;"], [0, "&centerdot;"], [0, "&cedil;"], [0, "&sup1;"], [0, "&ordm;"], [0, "&raquo;"], [0, "&frac14;"], [0, "&frac12;"], [0, "&frac34;"], [0, "&iquest;"], [0, "&Agrave;"], [0, "&Aacute;"], [0, "&Acirc;"], [0, "&Atilde;"], [0, "&Auml;"], [0, "&angst;"], [0, "&AElig;"], [0, "&Ccedil;"], [0, "&Egrave;"], [0, "&Eacute;"], [0, "&Ecirc;"], [0, "&Euml;"], [0, "&Igrave;"], [0, "&Iacute;"], [0, "&Icirc;"], [0, "&Iuml;"], [0, "&ETH;"], [0, "&Ntilde;"], [0, "&Ograve;"], [0, "&Oacute;"], [0, "&Ocirc;"], [0, "&Otilde;"], [0, "&Ouml;"], [0, "&times;"], [0, "&Oslash;"], [0, "&Ugrave;"], [0, "&Uacute;"], [0, "&Ucirc;"], [0, "&Uuml;"], [0, "&Yacute;"], [0, "&THORN;"], [0, "&szlig;"], [0, "&agrave;"], [0, "&aacute;"], [0, "&acirc;"], [0, "&atilde;"], [0, "&auml;"], [0, "&aring;"], [0, "&aelig;"], [0, "&ccedil;"], [0, "&egrave;"], [0, "&eacute;"], [0, "&ecirc;"], [0, "&euml;"], [0, "&igrave;"], [0, "&iacute;"], [0, "&icirc;"], [0, "&iuml;"], [0, "&eth;"], [0, "&ntilde;"], [0, "&ograve;"], [0, "&oacute;"], [0, "&ocirc;"], [0, "&otilde;"], [0, "&ouml;"], [0, "&div;"], [0, "&oslash;"], [0, "&ugrave;"], [0, "&uacute;"], [0, "&ucirc;"], [0, "&uuml;"], [0, "&yacute;"], [0, "&thorn;"], [0, "&yuml;"], [0, "&Amacr;"], [0, "&amacr;"], [0, "&Abreve;"], [0, "&abreve;"], [0, "&Aogon;"], [0, "&aogon;"], [0, "&Cacute;"], [0, "&cacute;"], [0, "&Ccirc;"], [0, "&ccirc;"], [0, "&Cdot;"], [0, "&cdot;"], [0, "&Ccaron;"], [0, "&ccaron;"], [0, "&Dcaron;"], [0, "&dcaron;"], [0, "&Dstrok;"], [0, "&dstrok;"], [0, "&Emacr;"], [0, "&emacr;"], [2, "&Edot;"], [0, "&edot;"], [0, "&Eogon;"], [0, "&eogon;"], [0, "&Ecaron;"], [0, "&ecaron;"], [0, "&Gcirc;"], [0, "&gcirc;"], [0, "&Gbreve;"], [0, "&gbreve;"], [0, "&Gdot;"], [0, "&gdot;"], [0, "&Gcedil;"], [1, "&Hcirc;"], [0, "&hcirc;"], [0, "&Hstrok;"], [0, "&hstrok;"], [0, "&Itilde;"], [0, "&itilde;"], [0, "&Imacr;"], [0, "&imacr;"], [2, "&Iogon;"], [0, "&iogon;"], [0, "&Idot;"], [0, "&imath;"], [0, "&IJlig;"], [0, "&ijlig;"], [0, "&Jcirc;"], [0, "&jcirc;"], [0, "&Kcedil;"], [0, "&kcedil;"], [0, "&kgreen;"], [0, "&Lacute;"], [0, "&lacute;"], [0, "&Lcedil;"], [0, "&lcedil;"], [0, "&Lcaron;"], [0, "&lcaron;"], [0, "&Lmidot;"], [0, "&lmidot;"], [0, "&Lstrok;"], [0, "&lstrok;"], [0, "&Nacute;"], [0, "&nacute;"], [0, "&Ncedil;"], [0, "&ncedil;"], [0, "&Ncaron;"], [0, "&ncaron;"], [0, "&napos;"], [0, "&ENG;"], [0, "&eng;"], [0, "&Omacr;"], [0, "&omacr;"], [2, "&Odblac;"], [0, "&odblac;"], [0, "&OElig;"], [0, "&oelig;"], [0, "&Racute;"], [0, "&racute;"], [0, "&Rcedil;"], [0, "&rcedil;"], [0, "&Rcaron;"], [0, "&rcaron;"], [0, "&Sacute;"], [0, "&sacute;"], [0, "&Scirc;"], [0, "&scirc;"], [0, "&Scedil;"], [0, "&scedil;"], [0, "&Scaron;"], [0, "&scaron;"], [0, "&Tcedil;"], [0, "&tcedil;"], [0, "&Tcaron;"], [0, "&tcaron;"], [0, "&Tstrok;"], [0, "&tstrok;"], [0, "&Utilde;"], [0, "&utilde;"], [0, "&Umacr;"], [0, "&umacr;"], [0, "&Ubreve;"], [0, "&ubreve;"], [0, "&Uring;"], [0, "&uring;"], [0, "&Udblac;"], [0, "&udblac;"], [0, "&Uogon;"], [0, "&uogon;"], [0, "&Wcirc;"], [0, "&wcirc;"], [0, "&Ycirc;"], [0, "&ycirc;"], [0, "&Yuml;"], [0, "&Zacute;"], [0, "&zacute;"], [0, "&Zdot;"], [0, "&zdot;"], [0, "&Zcaron;"], [0, "&zcaron;"], [19, "&fnof;"], [34, "&imped;"], [63, "&gacute;"], [65, "&jmath;"], [142, "&circ;"], [0, "&caron;"], [16, "&breve;"], [0, "&DiacriticalDot;"], [0, "&ring;"], [0, "&ogon;"], [0, "&DiacriticalTilde;"], [0, "&dblac;"], [51, "&DownBreve;"], [127, "&Alpha;"], [0, "&Beta;"], [0, "&Gamma;"], [0, "&Delta;"], [0, "&Epsilon;"], [0, "&Zeta;"], [0, "&Eta;"], [0, "&Theta;"], [0, "&Iota;"], [0, "&Kappa;"], [0, "&Lambda;"], [0, "&Mu;"], [0, "&Nu;"], [0, "&Xi;"], [0, "&Omicron;"], [0, "&Pi;"], [0, "&Rho;"], [1, "&Sigma;"], [0, "&Tau;"], [0, "&Upsilon;"], [0, "&Phi;"], [0, "&Chi;"], [0, "&Psi;"], [0, "&ohm;"], [7, "&alpha;"], [0, "&beta;"], [0, "&gamma;"], [0, "&delta;"], [0, "&epsi;"], [0, "&zeta;"], [0, "&eta;"], [0, "&theta;"], [0, "&iota;"], [0, "&kappa;"], [0, "&lambda;"], [0, "&mu;"], [0, "&nu;"], [0, "&xi;"], [0, "&omicron;"], [0, "&pi;"], [0, "&rho;"], [0, "&sigmaf;"], [0, "&sigma;"], [0, "&tau;"], [0, "&upsi;"], [0, "&phi;"], [0, "&chi;"], [0, "&psi;"], [0, "&omega;"], [7, "&thetasym;"], [0, "&Upsi;"], [2, "&phiv;"], [0, "&piv;"], [5, "&Gammad;"], [0, "&digamma;"], [18, "&kappav;"], [0, "&rhov;"], [3, "&epsiv;"], [0, "&backepsilon;"], [10, "&IOcy;"], [0, "&DJcy;"], [0, "&GJcy;"], [0, "&Jukcy;"], [0, "&DScy;"], [0, "&Iukcy;"], [0, "&YIcy;"], [0, "&Jsercy;"], [0, "&LJcy;"], [0, "&NJcy;"], [0, "&TSHcy;"], [0, "&KJcy;"], [1, "&Ubrcy;"], [0, "&DZcy;"], [0, "&Acy;"], [0, "&Bcy;"], [0, "&Vcy;"], [0, "&Gcy;"], [0, "&Dcy;"], [0, "&IEcy;"], [0, "&ZHcy;"], [0, "&Zcy;"], [0, "&Icy;"], [0, "&Jcy;"], [0, "&Kcy;"], [0, "&Lcy;"], [0, "&Mcy;"], [0, "&Ncy;"], [0, "&Ocy;"], [0, "&Pcy;"], [0, "&Rcy;"], [0, "&Scy;"], [0, "&Tcy;"], [0, "&Ucy;"], [0, "&Fcy;"], [0, "&KHcy;"], [0, "&TScy;"], [0, "&CHcy;"], [0, "&SHcy;"], [0, "&SHCHcy;"], [0, "&HARDcy;"], [0, "&Ycy;"], [0, "&SOFTcy;"], [0, "&Ecy;"], [0, "&YUcy;"], [0, "&YAcy;"], [0, "&acy;"], [0, "&bcy;"], [0, "&vcy;"], [0, "&gcy;"], [0, "&dcy;"], [0, "&iecy;"], [0, "&zhcy;"], [0, "&zcy;"], [0, "&icy;"], [0, "&jcy;"], [0, "&kcy;"], [0, "&lcy;"], [0, "&mcy;"], [0, "&ncy;"], [0, "&ocy;"], [0, "&pcy;"], [0, "&rcy;"], [0, "&scy;"], [0, "&tcy;"], [0, "&ucy;"], [0, "&fcy;"], [0, "&khcy;"], [0, "&tscy;"], [0, "&chcy;"], [0, "&shcy;"], [0, "&shchcy;"], [0, "&hardcy;"], [0, "&ycy;"], [0, "&softcy;"], [0, "&ecy;"], [0, "&yucy;"], [0, "&yacy;"], [1, "&iocy;"], [0, "&djcy;"], [0, "&gjcy;"], [0, "&jukcy;"], [0, "&dscy;"], [0, "&iukcy;"], [0, "&yicy;"], [0, "&jsercy;"], [0, "&ljcy;"], [0, "&njcy;"], [0, "&tshcy;"], [0, "&kjcy;"], [1, "&ubrcy;"], [0, "&dzcy;"], [7074, "&ensp;"], [0, "&emsp;"], [0, "&emsp13;"], [0, "&emsp14;"], [1, "&numsp;"], [0, "&puncsp;"], [0, "&ThinSpace;"], [0, "&hairsp;"], [0, "&NegativeMediumSpace;"], [0, "&zwnj;"], [0, "&zwj;"], [0, "&lrm;"], [0, "&rlm;"], [0, "&dash;"], [2, "&ndash;"], [0, "&mdash;"], [0, "&horbar;"], [0, "&Verbar;"], [1, "&lsquo;"], [0, "&CloseCurlyQuote;"], [0, "&lsquor;"], [1, "&ldquo;"], [0, "&CloseCurlyDoubleQuote;"], [0, "&bdquo;"], [1, "&dagger;"], [0, "&Dagger;"], [0, "&bull;"], [2, "&nldr;"], [0, "&hellip;"], [9, "&permil;"], [0, "&pertenk;"], [0, "&prime;"], [0, "&Prime;"], [0, "&tprime;"], [0, "&backprime;"], [3, "&lsaquo;"], [0, "&rsaquo;"], [3, "&oline;"], [2, "&caret;"], [1, "&hybull;"], [0, "&frasl;"], [10, "&bsemi;"], [7, "&qprime;"], [7, { v: "&MediumSpace;", n: 8202, o: "&ThickSpace;" }], [0, "&NoBreak;"], [0, "&af;"], [0, "&InvisibleTimes;"], [0, "&ic;"], [72, "&euro;"], [46, "&tdot;"], [0, "&DotDot;"], [37, "&complexes;"], [2, "&incare;"], [4, "&gscr;"], [0, "&hamilt;"], [0, "&Hfr;"], [0, "&Hopf;"], [0, "&planckh;"], [0, "&hbar;"], [0, "&imagline;"], [0, "&Ifr;"], [0, "&lagran;"], [0, "&ell;"], [1, "&naturals;"], [0, "&numero;"], [0, "&copysr;"], [0, "&weierp;"], [0, "&Popf;"], [0, "&Qopf;"], [0, "&realine;"], [0, "&real;"], [0, "&reals;"], [0, "&rx;"], [3, "&trade;"], [1, "&integers;"], [2, "&mho;"], [0, "&zeetrf;"], [0, "&iiota;"], [2, "&bernou;"], [0, "&Cayleys;"], [1, "&escr;"], [0, "&Escr;"], [0, "&Fouriertrf;"], [1, "&Mellintrf;"], [0, "&order;"], [0, "&alefsym;"], [0, "&beth;"], [0, "&gimel;"], [0, "&daleth;"], [12, "&CapitalDifferentialD;"], [0, "&dd;"], [0, "&ee;"], [0, "&ii;"], [10, "&frac13;"], [0, "&frac23;"], [0, "&frac15;"], [0, "&frac25;"], [0, "&frac35;"], [0, "&frac45;"], [0, "&frac16;"], [0, "&frac56;"], [0, "&frac18;"], [0, "&frac38;"], [0, "&frac58;"], [0, "&frac78;"], [49, "&larr;"], [0, "&ShortUpArrow;"], [0, "&rarr;"], [0, "&darr;"], [0, "&harr;"], [0, "&updownarrow;"], [0, "&nwarr;"], [0, "&nearr;"], [0, "&LowerRightArrow;"], [0, "&LowerLeftArrow;"], [0, "&nlarr;"], [0, "&nrarr;"], [1, { v: "&rarrw;", n: 824, o: "&nrarrw;" }], [0, "&Larr;"], [0, "&Uarr;"], [0, "&Rarr;"], [0, "&Darr;"], [0, "&larrtl;"], [0, "&rarrtl;"], [0, "&LeftTeeArrow;"], [0, "&mapstoup;"], [0, "&map;"], [0, "&DownTeeArrow;"], [1, "&hookleftarrow;"], [0, "&hookrightarrow;"], [0, "&larrlp;"], [0, "&looparrowright;"], [0, "&harrw;"], [0, "&nharr;"], [1, "&lsh;"], [0, "&rsh;"], [0, "&ldsh;"], [0, "&rdsh;"], [1, "&crarr;"], [0, "&cularr;"], [0, "&curarr;"], [2, "&circlearrowleft;"], [0, "&circlearrowright;"], [0, "&leftharpoonup;"], [0, "&DownLeftVector;"], [0, "&RightUpVector;"], [0, "&LeftUpVector;"], [0, "&rharu;"], [0, "&DownRightVector;"], [0, "&dharr;"], [0, "&dharl;"], [0, "&RightArrowLeftArrow;"], [0, "&udarr;"], [0, "&LeftArrowRightArrow;"], [0, "&leftleftarrows;"], [0, "&upuparrows;"], [0, "&rightrightarrows;"], [0, "&ddarr;"], [0, "&leftrightharpoons;"], [0, "&Equilibrium;"], [0, "&nlArr;"], [0, "&nhArr;"], [0, "&nrArr;"], [0, "&DoubleLeftArrow;"], [0, "&DoubleUpArrow;"], [0, "&DoubleRightArrow;"], [0, "&dArr;"], [0, "&DoubleLeftRightArrow;"], [0, "&DoubleUpDownArrow;"], [0, "&nwArr;"], [0, "&neArr;"], [0, "&seArr;"], [0, "&swArr;"], [0, "&lAarr;"], [0, "&rAarr;"], [1, "&zigrarr;"], [6, "&larrb;"], [0, "&rarrb;"], [15, "&DownArrowUpArrow;"], [7, "&loarr;"], [0, "&roarr;"], [0, "&hoarr;"], [0, "&forall;"], [0, "&comp;"], [0, { v: "&part;", n: 824, o: "&npart;" }], [0, "&exist;"], [0, "&nexist;"], [0, "&empty;"], [1, "&Del;"], [0, "&Element;"], [0, "&NotElement;"], [1, "&ni;"], [0, "&notni;"], [2, "&prod;"], [0, "&coprod;"], [0, "&sum;"], [0, "&minus;"], [0, "&MinusPlus;"], [0, "&dotplus;"], [1, "&Backslash;"], [0, "&lowast;"], [0, "&compfn;"], [1, "&radic;"], [2, "&prop;"], [0, "&infin;"], [0, "&angrt;"], [0, { v: "&ang;", n: 8402, o: "&nang;" }], [0, "&angmsd;"], [0, "&angsph;"], [0, "&mid;"], [0, "&nmid;"], [0, "&DoubleVerticalBar;"], [0, "&NotDoubleVerticalBar;"], [0, "&and;"], [0, "&or;"], [0, { v: "&cap;", n: 65024, o: "&caps;" }], [0, { v: "&cup;", n: 65024, o: "&cups;" }], [0, "&int;"], [0, "&Int;"], [0, "&iiint;"], [0, "&conint;"], [0, "&Conint;"], [0, "&Cconint;"], [0, "&cwint;"], [0, "&ClockwiseContourIntegral;"], [0, "&awconint;"], [0, "&there4;"], [0, "&becaus;"], [0, "&ratio;"], [0, "&Colon;"], [0, "&dotminus;"], [1, "&mDDot;"], [0, "&homtht;"], [0, { v: "&sim;", n: 8402, o: "&nvsim;" }], [0, { v: "&backsim;", n: 817, o: "&race;" }], [0, { v: "&ac;", n: 819, o: "&acE;" }], [0, "&acd;"], [0, "&VerticalTilde;"], [0, "&NotTilde;"], [0, { v: "&eqsim;", n: 824, o: "&nesim;" }], [0, "&sime;"], [0, "&NotTildeEqual;"], [0, "&cong;"], [0, "&simne;"], [0, "&ncong;"], [0, "&ap;"], [0, "&nap;"], [0, "&ape;"], [0, { v: "&apid;", n: 824, o: "&napid;" }], [0, "&backcong;"], [0, { v: "&asympeq;", n: 8402, o: "&nvap;" }], [0, { v: "&bump;", n: 824, o: "&nbump;" }], [0, { v: "&bumpe;", n: 824, o: "&nbumpe;" }], [0, { v: "&doteq;", n: 824, o: "&nedot;" }], [0, "&doteqdot;"], [0, "&efDot;"], [0, "&erDot;"], [0, "&Assign;"], [0, "&ecolon;"], [0, "&ecir;"], [0, "&circeq;"], [1, "&wedgeq;"], [0, "&veeeq;"], [1, "&triangleq;"], [2, "&equest;"], [0, "&ne;"], [0, { v: "&Congruent;", n: 8421, o: "&bnequiv;" }], [0, "&nequiv;"], [1, { v: "&le;", n: 8402, o: "&nvle;" }], [0, { v: "&ge;", n: 8402, o: "&nvge;" }], [0, { v: "&lE;", n: 824, o: "&nlE;" }], [0, { v: "&gE;", n: 824, o: "&ngE;" }], [0, { v: "&lnE;", n: 65024, o: "&lvertneqq;" }], [0, { v: "&gnE;", n: 65024, o: "&gvertneqq;" }], [0, { v: "&ll;", n: new Map(/* @__PURE__ */ restoreDiff([[824, "&nLtv;"], [7577, "&nLt;"]])) }], [0, { v: "&gg;", n: new Map(/* @__PURE__ */ restoreDiff([[824, "&nGtv;"], [7577, "&nGt;"]])) }], [0, "&between;"], [0, "&NotCupCap;"], [0, "&nless;"], [0, "&ngt;"], [0, "&nle;"], [0, "&nge;"], [0, "&lesssim;"], [0, "&GreaterTilde;"], [0, "&nlsim;"], [0, "&ngsim;"], [0, "&LessGreater;"], [0, "&gl;"], [0, "&NotLessGreater;"], [0, "&NotGreaterLess;"], [0, "&pr;"], [0, "&sc;"], [0, "&prcue;"], [0, "&sccue;"], [0, "&PrecedesTilde;"], [0, { v: "&scsim;", n: 824, o: "&NotSucceedsTilde;" }], [0, "&NotPrecedes;"], [0, "&NotSucceeds;"], [0, { v: "&sub;", n: 8402, o: "&NotSubset;" }], [0, { v: "&sup;", n: 8402, o: "&NotSuperset;" }], [0, "&nsub;"], [0, "&nsup;"], [0, "&sube;"], [0, "&supe;"], [0, "&NotSubsetEqual;"], [0, "&NotSupersetEqual;"], [0, { v: "&subne;", n: 65024, o: "&varsubsetneq;" }], [0, { v: "&supne;", n: 65024, o: "&varsupsetneq;" }], [1, "&cupdot;"], [0, "&UnionPlus;"], [0, { v: "&sqsub;", n: 824, o: "&NotSquareSubset;" }], [0, { v: "&sqsup;", n: 824, o: "&NotSquareSuperset;" }], [0, "&sqsube;"], [0, "&sqsupe;"], [0, { v: "&sqcap;", n: 65024, o: "&sqcaps;" }], [0, { v: "&sqcup;", n: 65024, o: "&sqcups;" }], [0, "&CirclePlus;"], [0, "&CircleMinus;"], [0, "&CircleTimes;"], [0, "&osol;"], [0, "&CircleDot;"], [0, "&circledcirc;"], [0, "&circledast;"], [1, "&circleddash;"], [0, "&boxplus;"], [0, "&boxminus;"], [0, "&boxtimes;"], [0, "&dotsquare;"], [0, "&RightTee;"], [0, "&dashv;"], [0, "&DownTee;"], [0, "&bot;"], [1, "&models;"], [0, "&DoubleRightTee;"], [0, "&Vdash;"], [0, "&Vvdash;"], [0, "&VDash;"], [0, "&nvdash;"], [0, "&nvDash;"], [0, "&nVdash;"], [0, "&nVDash;"], [0, "&prurel;"], [1, "&LeftTriangle;"], [0, "&RightTriangle;"], [0, { v: "&LeftTriangleEqual;", n: 8402, o: "&nvltrie;" }], [0, { v: "&RightTriangleEqual;", n: 8402, o: "&nvrtrie;" }], [0, "&origof;"], [0, "&imof;"], [0, "&multimap;"], [0, "&hercon;"], [0, "&intcal;"], [0, "&veebar;"], [1, "&barvee;"], [0, "&angrtvb;"], [0, "&lrtri;"], [0, "&bigwedge;"], [0, "&bigvee;"], [0, "&bigcap;"], [0, "&bigcup;"], [0, "&diam;"], [0, "&sdot;"], [0, "&sstarf;"], [0, "&divideontimes;"], [0, "&bowtie;"], [0, "&ltimes;"], [0, "&rtimes;"], [0, "&leftthreetimes;"], [0, "&rightthreetimes;"], [0, "&backsimeq;"], [0, "&curlyvee;"], [0, "&curlywedge;"], [0, "&Sub;"], [0, "&Sup;"], [0, "&Cap;"], [0, "&Cup;"], [0, "&fork;"], [0, "&epar;"], [0, "&lessdot;"], [0, "&gtdot;"], [0, { v: "&Ll;", n: 824, o: "&nLl;" }], [0, { v: "&Gg;", n: 824, o: "&nGg;" }], [0, { v: "&leg;", n: 65024, o: "&lesg;" }], [0, { v: "&gel;", n: 65024, o: "&gesl;" }], [2, "&cuepr;"], [0, "&cuesc;"], [0, "&NotPrecedesSlantEqual;"], [0, "&NotSucceedsSlantEqual;"], [0, "&NotSquareSubsetEqual;"], [0, "&NotSquareSupersetEqual;"], [2, "&lnsim;"], [0, "&gnsim;"], [0, "&precnsim;"], [0, "&scnsim;"], [0, "&nltri;"], [0, "&NotRightTriangle;"], [0, "&nltrie;"], [0, "&NotRightTriangleEqual;"], [0, "&vellip;"], [0, "&ctdot;"], [0, "&utdot;"], [0, "&dtdot;"], [0, "&disin;"], [0, "&isinsv;"], [0, "&isins;"], [0, { v: "&isindot;", n: 824, o: "&notindot;" }], [0, "&notinvc;"], [0, "&notinvb;"], [1, { v: "&isinE;", n: 824, o: "&notinE;" }], [0, "&nisd;"], [0, "&xnis;"], [0, "&nis;"], [0, "&notnivc;"], [0, "&notnivb;"], [6, "&barwed;"], [0, "&Barwed;"], [1, "&lceil;"], [0, "&rceil;"], [0, "&LeftFloor;"], [0, "&rfloor;"], [0, "&drcrop;"], [0, "&dlcrop;"], [0, "&urcrop;"], [0, "&ulcrop;"], [0, "&bnot;"], [1, "&profline;"], [0, "&profsurf;"], [1, "&telrec;"], [0, "&target;"], [5, "&ulcorn;"], [0, "&urcorn;"], [0, "&dlcorn;"], [0, "&drcorn;"], [2, "&frown;"], [0, "&smile;"], [9, "&cylcty;"], [0, "&profalar;"], [7, "&topbot;"], [6, "&ovbar;"], [1, "&solbar;"], [60, "&angzarr;"], [51, "&lmoustache;"], [0, "&rmoustache;"], [2, "&OverBracket;"], [0, "&bbrk;"], [0, "&bbrktbrk;"], [37, "&OverParenthesis;"], [0, "&UnderParenthesis;"], [0, "&OverBrace;"], [0, "&UnderBrace;"], [2, "&trpezium;"], [4, "&elinters;"], [59, "&blank;"], [164, "&circledS;"], [55, "&boxh;"], [1, "&boxv;"], [9, "&boxdr;"], [3, "&boxdl;"], [3, "&boxur;"], [3, "&boxul;"], [3, "&boxvr;"], [7, "&boxvl;"], [7, "&boxhd;"], [7, "&boxhu;"], [7, "&boxvh;"], [19, "&boxH;"], [0, "&boxV;"], [0, "&boxdR;"], [0, "&boxDr;"], [0, "&boxDR;"], [0, "&boxdL;"], [0, "&boxDl;"], [0, "&boxDL;"], [0, "&boxuR;"], [0, "&boxUr;"], [0, "&boxUR;"], [0, "&boxuL;"], [0, "&boxUl;"], [0, "&boxUL;"], [0, "&boxvR;"], [0, "&boxVr;"], [0, "&boxVR;"], [0, "&boxvL;"], [0, "&boxVl;"], [0, "&boxVL;"], [0, "&boxHd;"], [0, "&boxhD;"], [0, "&boxHD;"], [0, "&boxHu;"], [0, "&boxhU;"], [0, "&boxHU;"], [0, "&boxvH;"], [0, "&boxVh;"], [0, "&boxVH;"], [19, "&uhblk;"], [3, "&lhblk;"], [3, "&block;"], [8, "&blk14;"], [0, "&blk12;"], [0, "&blk34;"], [13, "&square;"], [8, "&blacksquare;"], [0, "&EmptyVerySmallSquare;"], [1, "&rect;"], [0, "&marker;"], [2, "&fltns;"], [1, "&bigtriangleup;"], [0, "&blacktriangle;"], [0, "&triangle;"], [2, "&blacktriangleright;"], [0, "&rtri;"], [3, "&bigtriangledown;"], [0, "&blacktriangledown;"], [0, "&dtri;"], [2, "&blacktriangleleft;"], [0, "&ltri;"], [6, "&loz;"], [0, "&cir;"], [32, "&tridot;"], [2, "&bigcirc;"], [8, "&ultri;"], [0, "&urtri;"], [0, "&lltri;"], [0, "&EmptySmallSquare;"], [0, "&FilledSmallSquare;"], [8, "&bigstar;"], [0, "&star;"], [7, "&phone;"], [49, "&female;"], [1, "&male;"], [29, "&spades;"], [2, "&clubs;"], [1, "&hearts;"], [0, "&diamondsuit;"], [3, "&sung;"], [2, "&flat;"], [0, "&natural;"], [0, "&sharp;"], [163, "&check;"], [3, "&cross;"], [8, "&malt;"], [21, "&sext;"], [33, "&VerticalSeparator;"], [25, "&lbbrk;"], [0, "&rbbrk;"], [84, "&bsolhsub;"], [0, "&suphsol;"], [28, "&LeftDoubleBracket;"], [0, "&RightDoubleBracket;"], [0, "&lang;"], [0, "&rang;"], [0, "&Lang;"], [0, "&Rang;"], [0, "&loang;"], [0, "&roang;"], [7, "&longleftarrow;"], [0, "&longrightarrow;"], [0, "&longleftrightarrow;"], [0, "&DoubleLongLeftArrow;"], [0, "&DoubleLongRightArrow;"], [0, "&DoubleLongLeftRightArrow;"], [1, "&longmapsto;"], [2, "&dzigrarr;"], [258, "&nvlArr;"], [0, "&nvrArr;"], [0, "&nvHarr;"], [0, "&Map;"], [6, "&lbarr;"], [0, "&bkarow;"], [0, "&lBarr;"], [0, "&dbkarow;"], [0, "&drbkarow;"], [0, "&DDotrahd;"], [0, "&UpArrowBar;"], [0, "&DownArrowBar;"], [2, "&Rarrtl;"], [2, "&latail;"], [0, "&ratail;"], [0, "&lAtail;"], [0, "&rAtail;"], [0, "&larrfs;"], [0, "&rarrfs;"], [0, "&larrbfs;"], [0, "&rarrbfs;"], [2, "&nwarhk;"], [0, "&nearhk;"], [0, "&hksearow;"], [0, "&hkswarow;"], [0, "&nwnear;"], [0, "&nesear;"], [0, "&seswar;"], [0, "&swnwar;"], [8, { v: "&rarrc;", n: 824, o: "&nrarrc;" }], [1, "&cudarrr;"], [0, "&ldca;"], [0, "&rdca;"], [0, "&cudarrl;"], [0, "&larrpl;"], [2, "&curarrm;"], [0, "&cularrp;"], [7, "&rarrpl;"], [2, "&harrcir;"], [0, "&Uarrocir;"], [0, "&lurdshar;"], [0, "&ldrushar;"], [2, "&LeftRightVector;"], [0, "&RightUpDownVector;"], [0, "&DownLeftRightVector;"], [0, "&LeftUpDownVector;"], [0, "&LeftVectorBar;"], [0, "&RightVectorBar;"], [0, "&RightUpVectorBar;"], [0, "&RightDownVectorBar;"], [0, "&DownLeftVectorBar;"], [0, "&DownRightVectorBar;"], [0, "&LeftUpVectorBar;"], [0, "&LeftDownVectorBar;"], [0, "&LeftTeeVector;"], [0, "&RightTeeVector;"], [0, "&RightUpTeeVector;"], [0, "&RightDownTeeVector;"], [0, "&DownLeftTeeVector;"], [0, "&DownRightTeeVector;"], [0, "&LeftUpTeeVector;"], [0, "&LeftDownTeeVector;"], [0, "&lHar;"], [0, "&uHar;"], [0, "&rHar;"], [0, "&dHar;"], [0, "&luruhar;"], [0, "&ldrdhar;"], [0, "&ruluhar;"], [0, "&rdldhar;"], [0, "&lharul;"], [0, "&llhard;"], [0, "&rharul;"], [0, "&lrhard;"], [0, "&udhar;"], [0, "&duhar;"], [0, "&RoundImplies;"], [0, "&erarr;"], [0, "&simrarr;"], [0, "&larrsim;"], [0, "&rarrsim;"], [0, "&rarrap;"], [0, "&ltlarr;"], [1, "&gtrarr;"], [0, "&subrarr;"], [1, "&suplarr;"], [0, "&lfisht;"], [0, "&rfisht;"], [0, "&ufisht;"], [0, "&dfisht;"], [5, "&lopar;"], [0, "&ropar;"], [4, "&lbrke;"], [0, "&rbrke;"], [0, "&lbrkslu;"], [0, "&rbrksld;"], [0, "&lbrksld;"], [0, "&rbrkslu;"], [0, "&langd;"], [0, "&rangd;"], [0, "&lparlt;"], [0, "&rpargt;"], [0, "&gtlPar;"], [0, "&ltrPar;"], [3, "&vzigzag;"], [1, "&vangrt;"], [0, "&angrtvbd;"], [6, "&ange;"], [0, "&range;"], [0, "&dwangle;"], [0, "&uwangle;"], [0, "&angmsdaa;"], [0, "&angmsdab;"], [0, "&angmsdac;"], [0, "&angmsdad;"], [0, "&angmsdae;"], [0, "&angmsdaf;"], [0, "&angmsdag;"], [0, "&angmsdah;"], [0, "&bemptyv;"], [0, "&demptyv;"], [0, "&cemptyv;"], [0, "&raemptyv;"], [0, "&laemptyv;"], [0, "&ohbar;"], [0, "&omid;"], [0, "&opar;"], [1, "&operp;"], [1, "&olcross;"], [0, "&odsold;"], [1, "&olcir;"], [0, "&ofcir;"], [0, "&olt;"], [0, "&ogt;"], [0, "&cirscir;"], [0, "&cirE;"], [0, "&solb;"], [0, "&bsolb;"], [3, "&boxbox;"], [3, "&trisb;"], [0, "&rtriltri;"], [0, { v: "&LeftTriangleBar;", n: 824, o: "&NotLeftTriangleBar;" }], [0, { v: "&RightTriangleBar;", n: 824, o: "&NotRightTriangleBar;" }], [11, "&iinfin;"], [0, "&infintie;"], [0, "&nvinfin;"], [4, "&eparsl;"], [0, "&smeparsl;"], [0, "&eqvparsl;"], [5, "&blacklozenge;"], [8, "&RuleDelayed;"], [1, "&dsol;"], [9, "&bigodot;"], [0, "&bigoplus;"], [0, "&bigotimes;"], [1, "&biguplus;"], [1, "&bigsqcup;"], [5, "&iiiint;"], [0, "&fpartint;"], [2, "&cirfnint;"], [0, "&awint;"], [0, "&rppolint;"], [0, "&scpolint;"], [0, "&npolint;"], [0, "&pointint;"], [0, "&quatint;"], [0, "&intlarhk;"], [10, "&pluscir;"], [0, "&plusacir;"], [0, "&simplus;"], [0, "&plusdu;"], [0, "&plussim;"], [0, "&plustwo;"], [1, "&mcomma;"], [0, "&minusdu;"], [2, "&loplus;"], [0, "&roplus;"], [0, "&Cross;"], [0, "&timesd;"], [0, "&timesbar;"], [1, "&smashp;"], [0, "&lotimes;"], [0, "&rotimes;"], [0, "&otimesas;"], [0, "&Otimes;"], [0, "&odiv;"], [0, "&triplus;"], [0, "&triminus;"], [0, "&tritime;"], [0, "&intprod;"], [2, "&amalg;"], [0, "&capdot;"], [1, "&ncup;"], [0, "&ncap;"], [0, "&capand;"], [0, "&cupor;"], [0, "&cupcap;"], [0, "&capcup;"], [0, "&cupbrcap;"], [0, "&capbrcup;"], [0, "&cupcup;"], [0, "&capcap;"], [0, "&ccups;"], [0, "&ccaps;"], [2, "&ccupssm;"], [2, "&And;"], [0, "&Or;"], [0, "&andand;"], [0, "&oror;"], [0, "&orslope;"], [0, "&andslope;"], [1, "&andv;"], [0, "&orv;"], [0, "&andd;"], [0, "&ord;"], [1, "&wedbar;"], [6, "&sdote;"], [3, "&simdot;"], [2, { v: "&congdot;", n: 824, o: "&ncongdot;" }], [0, "&easter;"], [0, "&apacir;"], [0, { v: "&apE;", n: 824, o: "&napE;" }], [0, "&eplus;"], [0, "&pluse;"], [0, "&Esim;"], [0, "&Colone;"], [0, "&Equal;"], [1, "&ddotseq;"], [0, "&equivDD;"], [0, "&ltcir;"], [0, "&gtcir;"], [0, "&ltquest;"], [0, "&gtquest;"], [0, { v: "&leqslant;", n: 824, o: "&nleqslant;" }], [0, { v: "&geqslant;", n: 824, o: "&ngeqslant;" }], [0, "&lesdot;"], [0, "&gesdot;"], [0, "&lesdoto;"], [0, "&gesdoto;"], [0, "&lesdotor;"], [0, "&gesdotol;"], [0, "&lap;"], [0, "&gap;"], [0, "&lne;"], [0, "&gne;"], [0, "&lnap;"], [0, "&gnap;"], [0, "&lEg;"], [0, "&gEl;"], [0, "&lsime;"], [0, "&gsime;"], [0, "&lsimg;"], [0, "&gsiml;"], [0, "&lgE;"], [0, "&glE;"], [0, "&lesges;"], [0, "&gesles;"], [0, "&els;"], [0, "&egs;"], [0, "&elsdot;"], [0, "&egsdot;"], [0, "&el;"], [0, "&eg;"], [2, "&siml;"], [0, "&simg;"], [0, "&simlE;"], [0, "&simgE;"], [0, { v: "&LessLess;", n: 824, o: "&NotNestedLessLess;" }], [0, { v: "&GreaterGreater;", n: 824, o: "&NotNestedGreaterGreater;" }], [1, "&glj;"], [0, "&gla;"], [0, "&ltcc;"], [0, "&gtcc;"], [0, "&lescc;"], [0, "&gescc;"], [0, "&smt;"], [0, "&lat;"], [0, { v: "&smte;", n: 65024, o: "&smtes;" }], [0, { v: "&late;", n: 65024, o: "&lates;" }], [0, "&bumpE;"], [0, { v: "&PrecedesEqual;", n: 824, o: "&NotPrecedesEqual;" }], [0, { v: "&sce;", n: 824, o: "&NotSucceedsEqual;" }], [2, "&prE;"], [0, "&scE;"], [0, "&precneqq;"], [0, "&scnE;"], [0, "&prap;"], [0, "&scap;"], [0, "&precnapprox;"], [0, "&scnap;"], [0, "&Pr;"], [0, "&Sc;"], [0, "&subdot;"], [0, "&supdot;"], [0, "&subplus;"], [0, "&supplus;"], [0, "&submult;"], [0, "&supmult;"], [0, "&subedot;"], [0, "&supedot;"], [0, { v: "&subE;", n: 824, o: "&nsubE;" }], [0, { v: "&supE;", n: 824, o: "&nsupE;" }], [0, "&subsim;"], [0, "&supsim;"], [2, { v: "&subnE;", n: 65024, o: "&varsubsetneqq;" }], [0, { v: "&supnE;", n: 65024, o: "&varsupsetneqq;" }], [2, "&csub;"], [0, "&csup;"], [0, "&csube;"], [0, "&csupe;"], [0, "&subsup;"], [0, "&supsub;"], [0, "&subsub;"], [0, "&supsup;"], [0, "&suphsub;"], [0, "&supdsub;"], [0, "&forkv;"], [0, "&topfork;"], [0, "&mlcp;"], [8, "&Dashv;"], [1, "&Vdashl;"], [0, "&Barv;"], [0, "&vBar;"], [0, "&vBarv;"], [1, "&Vbar;"], [0, "&Not;"], [0, "&bNot;"], [0, "&rnmid;"], [0, "&cirmid;"], [0, "&midcir;"], [0, "&topcir;"], [0, "&nhpar;"], [0, "&parsim;"], [9, { v: "&parsl;", n: 8421, o: "&nparsl;" }], [44343, { n: new Map(/* @__PURE__ */ restoreDiff([[56476, "&Ascr;"], [1, "&Cscr;"], [0, "&Dscr;"], [2, "&Gscr;"], [2, "&Jscr;"], [0, "&Kscr;"], [2, "&Nscr;"], [0, "&Oscr;"], [0, "&Pscr;"], [0, "&Qscr;"], [1, "&Sscr;"], [0, "&Tscr;"], [0, "&Uscr;"], [0, "&Vscr;"], [0, "&Wscr;"], [0, "&Xscr;"], [0, "&Yscr;"], [0, "&Zscr;"], [0, "&ascr;"], [0, "&bscr;"], [0, "&cscr;"], [0, "&dscr;"], [1, "&fscr;"], [1, "&hscr;"], [0, "&iscr;"], [0, "&jscr;"], [0, "&kscr;"], [0, "&lscr;"], [0, "&mscr;"], [0, "&nscr;"], [1, "&pscr;"], [0, "&qscr;"], [0, "&rscr;"], [0, "&sscr;"], [0, "&tscr;"], [0, "&uscr;"], [0, "&vscr;"], [0, "&wscr;"], [0, "&xscr;"], [0, "&yscr;"], [0, "&zscr;"], [52, "&Afr;"], [0, "&Bfr;"], [1, "&Dfr;"], [0, "&Efr;"], [0, "&Ffr;"], [0, "&Gfr;"], [2, "&Jfr;"], [0, "&Kfr;"], [0, "&Lfr;"], [0, "&Mfr;"], [0, "&Nfr;"], [0, "&Ofr;"], [0, "&Pfr;"], [0, "&Qfr;"], [1, "&Sfr;"], [0, "&Tfr;"], [0, "&Ufr;"], [0, "&Vfr;"], [0, "&Wfr;"], [0, "&Xfr;"], [0, "&Yfr;"], [1, "&afr;"], [0, "&bfr;"], [0, "&cfr;"], [0, "&dfr;"], [0, "&efr;"], [0, "&ffr;"], [0, "&gfr;"], [0, "&hfr;"], [0, "&ifr;"], [0, "&jfr;"], [0, "&kfr;"], [0, "&lfr;"], [0, "&mfr;"], [0, "&nfr;"], [0, "&ofr;"], [0, "&pfr;"], [0, "&qfr;"], [0, "&rfr;"], [0, "&sfr;"], [0, "&tfr;"], [0, "&ufr;"], [0, "&vfr;"], [0, "&wfr;"], [0, "&xfr;"], [0, "&yfr;"], [0, "&zfr;"], [0, "&Aopf;"], [0, "&Bopf;"], [1, "&Dopf;"], [0, "&Eopf;"], [0, "&Fopf;"], [0, "&Gopf;"], [1, "&Iopf;"], [0, "&Jopf;"], [0, "&Kopf;"], [0, "&Lopf;"], [0, "&Mopf;"], [1, "&Oopf;"], [3, "&Sopf;"], [0, "&Topf;"], [0, "&Uopf;"], [0, "&Vopf;"], [0, "&Wopf;"], [0, "&Xopf;"], [0, "&Yopf;"], [1, "&aopf;"], [0, "&bopf;"], [0, "&copf;"], [0, "&dopf;"], [0, "&eopf;"], [0, "&fopf;"], [0, "&gopf;"], [0, "&hopf;"], [0, "&iopf;"], [0, "&jopf;"], [0, "&kopf;"], [0, "&lopf;"], [0, "&mopf;"], [0, "&nopf;"], [0, "&oopf;"], [0, "&popf;"], [0, "&qopf;"], [0, "&ropf;"], [0, "&sopf;"], [0, "&topf;"], [0, "&uopf;"], [0, "&vopf;"], [0, "&wopf;"], [0, "&xopf;"], [0, "&yopf;"], [0, "&zopf;"]])) }], [8906, "&fflig;"], [0, "&filig;"], [0, "&fllig;"], [0, "&ffilig;"], [0, "&ffllig;"]])); } }); // node_modules/entities/lib/esm/escape.js function encodeXML(str) { let ret = ""; let lastIdx = 0; let match; while ((match = xmlReplacer.exec(str)) !== null) { const i = match.index; const char = str.charCodeAt(i); const next2 = xmlCodeMap.get(char); if (next2 !== void 0) { ret += str.substring(lastIdx, i) + next2; lastIdx = i + 1; } else { ret += `${str.substring(lastIdx, i)}&#x${getCodePoint(str, i).toString(16)};`; lastIdx = xmlReplacer.lastIndex += Number((char & 64512) === 55296); } } return ret + str.substr(lastIdx); } function getEscaper(regex, map2) { return function escape3(data2) { let match; let lastIdx = 0; let result = ""; while (match = regex.exec(data2)) { if (lastIdx !== match.index) { result += data2.substring(lastIdx, match.index); } result += map2.get(match[0].charCodeAt(0)); lastIdx = match.index + 1; } return result + data2.substring(lastIdx); }; } var xmlReplacer, xmlCodeMap, getCodePoint, escapeUTF8, escapeAttribute, escapeText; var init_escape = __esm({ "node_modules/entities/lib/esm/escape.js"() { xmlReplacer = /["&'<>$\x80-\uFFFF]/g; xmlCodeMap = /* @__PURE__ */ new Map([ [34, "&quot;"], [38, "&amp;"], [39, "&apos;"], [60, "&lt;"], [62, "&gt;"] ]); getCodePoint = // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition String.prototype.codePointAt != null ? (str, index2) => str.codePointAt(index2) : ( // http://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae (c, index2) => (c.charCodeAt(index2) & 64512) === 55296 ? (c.charCodeAt(index2) - 55296) * 1024 + c.charCodeAt(index2 + 1) - 56320 + 65536 : c.charCodeAt(index2) ); escapeUTF8 = getEscaper(/[&<>'"]/g, xmlCodeMap); escapeAttribute = getEscaper(/["&\u00A0]/g, /* @__PURE__ */ new Map([ [34, "&quot;"], [38, "&amp;"], [160, "&nbsp;"] ])); escapeText = getEscaper(/[&<>\u00A0]/g, /* @__PURE__ */ new Map([ [38, "&amp;"], [60, "&lt;"], [62, "&gt;"], [160, "&nbsp;"] ])); } }); // node_modules/entities/lib/esm/encode.js var init_encode = __esm({ "node_modules/entities/lib/esm/encode.js"() { init_encode_html(); init_escape(); } }); // node_modules/entities/lib/esm/index.js var EntityLevel, EncodingMode; var init_esm3 = __esm({ "node_modules/entities/lib/esm/index.js"() { init_decode(); init_encode(); init_escape(); init_escape(); init_encode(); init_decode(); (function(EntityLevel2) { EntityLevel2[EntityLevel2["XML"] = 0] = "XML"; EntityLevel2[EntityLevel2["HTML"] = 1] = "HTML"; })(EntityLevel || (EntityLevel = {})); (function(EncodingMode2) { EncodingMode2[EncodingMode2["UTF8"] = 0] = "UTF8"; EncodingMode2[EncodingMode2["ASCII"] = 1] = "ASCII"; EncodingMode2[EncodingMode2["Extensive"] = 2] = "Extensive"; EncodingMode2[EncodingMode2["Attribute"] = 3] = "Attribute"; EncodingMode2[EncodingMode2["Text"] = 4] = "Text"; })(EncodingMode || (EncodingMode = {})); } }); // node_modules/dom-serializer/lib/esm/foreignNames.js var elementNames, attributeNames; var init_foreignNames = __esm({ "node_modules/dom-serializer/lib/esm/foreignNames.js"() { elementNames = new Map([ "altGlyph", "altGlyphDef", "altGlyphItem", "animateColor", "animateMotion", "animateTransform", "clipPath", "feBlend", "feColorMatrix", "feComponentTransfer", "feComposite", "feConvolveMatrix", "feDiffuseLighting", "feDisplacementMap", "feDistantLight", "feDropShadow", "feFlood", "feFuncA", "feFuncB", "feFuncG", "feFuncR", "feGaussianBlur", "feImage", "feMerge", "feMergeNode", "feMorphology", "feOffset", "fePointLight", "feSpecularLighting", "feSpotLight", "feTile", "feTurbulence", "foreignObject", "glyphRef", "linearGradient", "radialGradient", "textPath" ].map((val2) => [val2.toLowerCase(), val2])); attributeNames = new Map([ "definitionURL", "attributeName", "attributeType", "baseFrequency", "baseProfile", "calcMode", "clipPathUnits", "diffuseConstant", "edgeMode", "filterUnits", "glyphRef", "gradientTransform", "gradientUnits", "kernelMatrix", "kernelUnitLength", "keyPoints", "keySplines", "keyTimes", "lengthAdjust", "limitingConeAngle", "markerHeight", "markerUnits", "markerWidth", "maskContentUnits", "maskUnits", "numOctaves", "pathLength", "patternContentUnits", "patternTransform", "patternUnits", "pointsAtX", "pointsAtY", "pointsAtZ", "preserveAlpha", "preserveAspectRatio", "primitiveUnits", "refX", "refY", "repeatCount", "repeatDur", "requiredExtensions", "requiredFeatures", "specularConstant", "specularExponent", "spreadMethod", "startOffset", "stdDeviation", "stitchTiles", "surfaceScale", "systemLanguage", "tableValues", "targetX", "targetY", "textLength", "viewBox", "viewTarget", "xChannelSelector", "yChannelSelector", "zoomAndPan" ].map((val2) => [val2.toLowerCase(), val2])); } }); // node_modules/dom-serializer/lib/esm/index.js function replaceQuotes(value) { return value.replace(/"/g, "&quot;"); } function formatAttributes(attributes2, opts) { var _a2; if (!attributes2) return; const encode3 = ((_a2 = opts.encodeEntities) !== null && _a2 !== void 0 ? _a2 : opts.decodeEntities) === false ? replaceQuotes : opts.xmlMode || opts.encodeEntities !== "utf8" ? encodeXML : escapeAttribute; return Object.keys(attributes2).map((key) => { var _a3, _b; const value = (_a3 = attributes2[key]) !== null && _a3 !== void 0 ? _a3 : ""; if (opts.xmlMode === "foreign") { key = (_b = attributeNames.get(key)) !== null && _b !== void 0 ? _b : key; } if (!opts.emptyAttrs && !opts.xmlMode && value === "") { return key; } return `${key}="${encode3(value)}"`; }).join(" "); } function render(node, options = {}) { const nodes = "length" in node ? node : [node]; let output = ""; for (let i = 0; i < nodes.length; i++) { output += renderNode(nodes[i], options); } return output; } function renderNode(node, options) { switch (node.type) { case Root: return render(node.children, options); // @ts-expect-error We don't use `Doctype` yet case Doctype: case Directive: return renderDirective(node); case Comment: return renderComment(node); case CDATA: return renderCdata(node); case Script: case Style: case Tag: return renderTag(node, options); case Text: return renderText(node, options); } } function renderTag(elem, opts) { var _a2; if (opts.xmlMode === "foreign") { elem.name = (_a2 = elementNames.get(elem.name)) !== null && _a2 !== void 0 ? _a2 : elem.name; if (elem.parent && foreignModeIntegrationPoints.has(elem.parent.name)) { opts = { ...opts, xmlMode: false }; } } if (!opts.xmlMode && foreignElements.has(elem.name)) { opts = { ...opts, xmlMode: "foreign" }; } let tag = `<${elem.name}`; const attribs = formatAttributes(elem.attribs, opts); if (attribs) { tag += ` ${attribs}`; } if (elem.children.length === 0 && (opts.xmlMode ? ( // In XML mode or foreign mode, and user hasn't explicitly turned off self-closing tags opts.selfClosingTags !== false ) : ( // User explicitly asked for self-closing tags, even in HTML mode opts.selfClosingTags && singleTag.has(elem.name) ))) { if (!opts.xmlMode) tag += " "; tag += "/>"; } else { tag += ">"; if (elem.children.length > 0) { tag += render(elem.children, opts); } if (opts.xmlMode || !singleTag.has(elem.name)) { tag += `</${elem.name}>`; } } return tag; } function renderDirective(elem) { return `<${elem.data}>`; } function renderText(elem, opts) { var _a2; let data2 = elem.data || ""; if (((_a2 = opts.encodeEntities) !== null && _a2 !== void 0 ? _a2 : opts.decodeEntities) !== false && !(!opts.xmlMode && elem.parent && unencodedElements.has(elem.parent.name))) { data2 = opts.xmlMode || opts.encodeEntities !== "utf8" ? encodeXML(data2) : escapeText(data2); } return data2; } function renderCdata(elem) { return `<![CDATA[${elem.children[0].data}]]>`; } function renderComment(elem) { return `<!--${elem.data}-->`; } var unencodedElements, singleTag, esm_default, foreignModeIntegrationPoints, foreignElements; var init_esm4 = __esm({ "node_modules/dom-serializer/lib/esm/index.js"() { init_esm(); init_esm3(); init_foreignNames(); unencodedElements = /* @__PURE__ */ new Set([ "style", "script", "xmp", "iframe", "noembed", "noframes", "plaintext", "noscript" ]); singleTag = /* @__PURE__ */ new Set([ "area", "base", "basefont", "br", "col", "command", "embed", "frame", "hr", "img", "input", "isindex", "keygen", "link", "meta", "param", "source", "track", "wbr" ]); esm_default = render; foreignModeIntegrationPoints = /* @__PURE__ */ new Set([ "mi", "mo", "mn", "ms", "mtext", "annotation-xml", "foreignObject", "desc", "title" ]); foreignElements = /* @__PURE__ */ new Set(["svg", "math"]); } }); // node_modules/domutils/lib/esm/stringify.js function getOuterHTML(node, options) { return esm_default(node, options); } function getInnerHTML(node, options) { return hasChildren(node) ? node.children.map((node2) => getOuterHTML(node2, options)).join("") : ""; } function getText(node) { if (Array.isArray(node)) return node.map(getText).join(""); if (isTag2(node)) return node.name === "br" ? "\n" : getText(node.children); if (isCDATA(node)) return getText(node.children); if (isText(node)) return node.data; return ""; } function textContent(node) { if (Array.isArray(node)) return node.map(textContent).join(""); if (hasChildren(node) && !isComment(node)) { return textContent(node.children); } if (isText(node)) return node.data; return ""; } function innerText(node) { if (Array.isArray(node)) return node.map(innerText).join(""); if (hasChildren(node) && (node.type === ElementType.Tag || isCDATA(node))) { return innerText(node.children); } if (isText(node)) return node.data; return ""; } var init_stringify = __esm({ "node_modules/domutils/lib/esm/stringify.js"() { init_esm2(); init_esm4(); init_esm(); } }); // node_modules/domutils/lib/esm/traversal.js function getChildren(elem) { return hasChildren(elem) ? elem.children : []; } function getParent(elem) { return elem.parent || null; } function getSiblings(elem) { const parent2 = getParent(elem); if (parent2 != null) return getChildren(parent2); const siblings2 = [elem]; let { prev: prev2, next: next2 } = elem; while (prev2 != null) { siblings2.unshift(prev2); ({ prev: prev2 } = prev2); } while (next2 != null) { siblings2.push(next2); ({ next: next2 } = next2); } return siblings2; } function getAttributeValue(elem, name) { var _a2; return (_a2 = elem.attribs) === null || _a2 === void 0 ? void 0 : _a2[name]; } function hasAttrib(elem, name) { return elem.attribs != null && Object.prototype.hasOwnProperty.call(elem.attribs, name) && elem.attribs[name] != null; } function getName(elem) { return elem.name; } function nextElementSibling(elem) { let { next: next2 } = elem; while (next2 !== null && !isTag2(next2)) ({ next: next2 } = next2); return next2; } function prevElementSibling(elem) { let { prev: prev2 } = elem; while (prev2 !== null && !isTag2(prev2)) ({ prev: prev2 } = prev2); return prev2; } var init_traversal = __esm({ "node_modules/domutils/lib/esm/traversal.js"() { init_esm2(); } }); // node_modules/domutils/lib/esm/manipulation.js function removeElement(elem) { if (elem.prev) elem.prev.next = elem.next; if (elem.next) elem.next.prev = elem.prev; if (elem.parent) { const childs = elem.parent.children; const childsIndex = childs.lastIndexOf(elem); if (childsIndex >= 0) { childs.splice(childsIndex, 1); } } elem.next = null; elem.prev = null; elem.parent = null; } function replaceElement(elem, replacement) { const prev2 = replacement.prev = elem.prev; if (prev2) { prev2.next = replacement; } const next2 = replacement.next = elem.next; if (next2) { next2.prev = replacement; } const parent2 = replacement.parent = elem.parent; if (parent2) { const childs = parent2.children; childs[childs.lastIndexOf(elem)] = replacement; elem.parent = null; } } function appendChild(parent2, child) { removeElement(child); child.next = null; child.parent = parent2; if (parent2.children.push(child) > 1) { const sibling = parent2.children[parent2.children.length - 2]; sibling.next = child; child.prev = sibling; } else { child.prev = null; } } function append2(elem, next2) { removeElement(next2); const { parent: parent2 } = elem; const currNext = elem.next; next2.next = currNext; next2.prev = elem; elem.next = next2; next2.parent = parent2; if (currNext) { currNext.prev = next2; if (parent2) { const childs = parent2.children; childs.splice(childs.lastIndexOf(currNext), 0, next2); } } else if (parent2) { parent2.children.push(next2); } } function prependChild(parent2, child) { removeElement(child); child.parent = parent2; child.prev = null; if (parent2.children.unshift(child) !== 1) { const sibling = parent2.children[1]; sibling.prev = child; child.next = sibling; } else { child.next = null; } } function prepend(elem, prev2) { removeElement(prev2); const { parent: parent2 } = elem; if (parent2) { const childs = parent2.children; childs.splice(childs.indexOf(elem), 0, prev2); } if (elem.prev) { elem.prev.next = prev2; } prev2.parent = parent2; prev2.prev = elem.prev; prev2.next = elem; elem.prev = prev2; } var init_manipulation = __esm({ "node_modules/domutils/lib/esm/manipulation.js"() { } }); // node_modules/domutils/lib/esm/querying.js function filter2(test2, node, recurse = true, limit = Infinity) { return find(test2, Array.isArray(node) ? node : [node], recurse, limit); } function find(test2, nodes, recurse, limit) { const result = []; const nodeStack = [Array.isArray(nodes) ? nodes : [nodes]]; const indexStack = [0]; for (; ; ) { if (indexStack[0] >= nodeStack[0].length) { if (indexStack.length === 1) { return result; } nodeStack.shift(); indexStack.shift(); continue; } const elem = nodeStack[0][indexStack[0]++]; if (test2(elem)) { result.push(elem); if (--limit <= 0) return result; } if (recurse && hasChildren(elem) && elem.children.length > 0) { indexStack.unshift(0); nodeStack.unshift(elem.children); } } } function findOneChild(test2, nodes) { return nodes.find(test2); } function findOne(test2, nodes, recurse = true) { const searchedNodes = Array.isArray(nodes) ? nodes : [nodes]; for (let i = 0; i < searchedNodes.length; i++) { const node = searchedNodes[i]; if (isTag2(node) && test2(node)) { return node; } if (recurse && hasChildren(node) && node.children.length > 0) { const found = findOne(test2, node.children, true); if (found) return found; } } return null; } function existsOne(test2, nodes) { return (Array.isArray(nodes) ? nodes : [nodes]).some((node) => isTag2(node) && test2(node) || hasChildren(node) && existsOne(test2, node.children)); } function findAll(test2, nodes) { const result = []; const nodeStack = [Array.isArray(nodes) ? nodes : [nodes]]; const indexStack = [0]; for (; ; ) { if (indexStack[0] >= nodeStack[0].length) { if (nodeStack.length === 1) { return result; } nodeStack.shift(); indexStack.shift(); continue; } const elem = nodeStack[0][indexStack[0]++]; if (isTag2(elem) && test2(elem)) result.push(elem); if (hasChildren(elem) && elem.children.length > 0) { indexStack.unshift(0); nodeStack.unshift(elem.children); } } } var init_querying = __esm({ "node_modules/domutils/lib/esm/querying.js"() { init_esm2(); } }); // node_modules/domutils/lib/esm/legacy.js function getAttribCheck(attrib, value) { if (typeof value === "function") { return (elem) => isTag2(elem) && value(elem.attribs[attrib]); } return (elem) => isTag2(elem) && elem.attribs[attrib] === value; } function combineFuncs(a, b) { return (elem) => a(elem) || b(elem); } function compileTest(options) { const funcs = Object.keys(options).map((key) => { const value = options[key]; return Object.prototype.hasOwnProperty.call(Checks, key) ? Checks[key](value) : getAttribCheck(key, value); }); return funcs.length === 0 ? null : funcs.reduce(combineFuncs); } function testElement(options, node) { const test2 = compileTest(options); return test2 ? test2(node) : true; } function getElements(options, nodes, recurse, limit = Infinity) { const test2 = compileTest(options); return test2 ? filter2(test2, nodes, recurse, limit) : []; } function getElementById(id, nodes, recurse = true) { if (!Array.isArray(nodes)) nodes = [nodes]; return findOne(getAttribCheck("id", id), nodes, recurse); } function getElementsByTagName(tagName, nodes, recurse = true, limit = Infinity) { return filter2(Checks["tag_name"](tagName), nodes, recurse, limit); } function getElementsByClassName(className, nodes, recurse = true, limit = Infinity) { return filter2(getAttribCheck("class", className), nodes, recurse, limit); } function getElementsByTagType(type, nodes, recurse = true, limit = Infinity) { return filter2(Checks["tag_type"](type), nodes, recurse, limit); } var Checks; var init_legacy = __esm({ "node_modules/domutils/lib/esm/legacy.js"() { init_esm2(); init_querying(); Checks = { tag_name(name) { if (typeof name === "function") { return (elem) => isTag2(elem) && name(elem.name); } else if (name === "*") { return isTag2; } return (elem) => isTag2(elem) && elem.name === name; }, tag_type(type) { if (typeof type === "function") { return (elem) => type(elem.type); } return (elem) => elem.type === type; }, tag_contains(data2) { if (typeof data2 === "function") { return (elem) => isText(elem) && data2(elem.data); } return (elem) => isText(elem) && elem.data === data2; } }; } }); // node_modules/domutils/lib/esm/helpers.js function removeSubsets(nodes) { let idx = nodes.length; while (--idx >= 0) { const node = nodes[idx]; if (idx > 0 && nodes.lastIndexOf(node, idx - 1) >= 0) { nodes.splice(idx, 1); continue; } for (let ancestor = node.parent; ancestor; ancestor = ancestor.parent) { if (nodes.includes(ancestor)) { nodes.splice(idx, 1); break; } } } return nodes; } function compareDocumentPosition(nodeA, nodeB) { const aParents = []; const bParents = []; if (nodeA === nodeB) { return 0; } let current = hasChildren(nodeA) ? nodeA : nodeA.parent; while (current) { aParents.unshift(current); current = current.parent; } current = hasChildren(nodeB) ? nodeB : nodeB.parent; while (current) { bParents.unshift(current); current = current.parent; } const maxIdx = Math.min(aParents.length, bParents.length); let idx = 0; while (idx < maxIdx && aParents[idx] === bParents[idx]) { idx++; } if (idx === 0) { return DocumentPosition.DISCONNECTED; } const sharedParent = aParents[idx - 1]; const siblings2 = sharedParent.children; const aSibling = aParents[idx]; const bSibling = bParents[idx]; if (siblings2.indexOf(aSibling) > siblings2.indexOf(bSibling)) { if (sharedParent === nodeB) { return DocumentPosition.FOLLOWING | DocumentPosition.CONTAINED_BY; } return DocumentPosition.FOLLOWING; } if (sharedParent === nodeA) { return DocumentPosition.PRECEDING | DocumentPosition.CONTAINS; } return DocumentPosition.PRECEDING; } function uniqueSort(nodes) { nodes = nodes.filter((node, i, arr) => !arr.includes(node, i + 1)); nodes.sort((a, b) => { const relative = compareDocumentPosition(a, b); if (relative & DocumentPosition.PRECEDING) { return -1; } else if (relative & DocumentPosition.FOLLOWING) { return 1; } return 0; }); return nodes; } var DocumentPosition; var init_helpers = __esm({ "node_modules/domutils/lib/esm/helpers.js"() { init_esm2(); (function(DocumentPosition2) { DocumentPosition2[DocumentPosition2["DISCONNECTED"] = 1] = "DISCONNECTED"; DocumentPosition2[DocumentPosition2["PRECEDING"] = 2] = "PRECEDING"; DocumentPosition2[DocumentPosition2["FOLLOWING"] = 4] = "FOLLOWING"; DocumentPosition2[DocumentPosition2["CONTAINS"] = 8] = "CONTAINS"; DocumentPosition2[DocumentPosition2["CONTAINED_BY"] = 16] = "CONTAINED_BY"; })(DocumentPosition || (DocumentPosition = {})); } }); // node_modules/domutils/lib/esm/feeds.js function getFeed(doc) { const feedRoot = getOneElement(isValidFeed, doc); return !feedRoot ? null : feedRoot.name === "feed" ? getAtomFeed(feedRoot) : getRssFeed(feedRoot); } function getAtomFeed(feedRoot) { var _a2; const childs = feedRoot.children; const feed = { type: "atom", items: getElementsByTagName("entry", childs).map((item) => { var _a3; const { children: children2 } = item; const entry2 = { media: getMediaElements(children2) }; addConditionally(entry2, "id", "id", children2); addConditionally(entry2, "title", "title", children2); const href2 = (_a3 = getOneElement("link", children2)) === null || _a3 === void 0 ? void 0 : _a3.attribs["href"]; if (href2) { entry2.link = href2; } const description = fetch2("summary", children2) || fetch2("content", children2); if (description) { entry2.description = description; } const pubDate = fetch2("updated", children2); if (pubDate) { entry2.pubDate = new Date(pubDate); } return entry2; }) }; addConditionally(feed, "id", "id", childs); addConditionally(feed, "title", "title", childs); const href = (_a2 = getOneElement("link", childs)) === null || _a2 === void 0 ? void 0 : _a2.attribs["href"]; if (href) { feed.link = href; } addConditionally(feed, "description", "subtitle", childs); const updated = fetch2("updated", childs); if (updated) { feed.updated = new Date(updated); } addConditionally(feed, "author", "email", childs, true); return feed; } function getRssFeed(feedRoot) { var _a2, _b; const childs = (_b = (_a2 = getOneElement("channel", feedRoot.children)) === null || _a2 === void 0 ? void 0 : _a2.children) !== null && _b !== void 0 ? _b : []; const feed = { type: feedRoot.name.substr(0, 3), id: "", items: getElementsByTagName("item", feedRoot.children).map((item) => { const { children: children2 } = item; const entry2 = { media: getMediaElements(children2) }; addConditionally(entry2, "id", "guid", children2); addConditionally(entry2, "title", "title", children2); addConditionally(entry2, "link", "link", children2); addConditionally(entry2, "description", "description", children2); const pubDate = fetch2("pubDate", children2) || fetch2("dc:date", children2); if (pubDate) entry2.pubDate = new Date(pubDate); return entry2; }) }; addConditionally(feed, "title", "title", childs); addConditionally(feed, "link", "link", childs); addConditionally(feed, "description", "description", childs); const updated = fetch2("lastBuildDate", childs); if (updated) { feed.updated = new Date(updated); } addConditionally(feed, "author", "managingEditor", childs, true); return feed; } function getMediaElements(where) { return getElementsByTagName("media:content", where).map((elem) => { const { attribs } = elem; const media = { medium: attribs["medium"], isDefault: !!attribs["isDefault"] }; for (const attrib of MEDIA_KEYS_STRING) { if (attribs[attrib]) { media[attrib] = attribs[attrib]; } } for (const attrib of MEDIA_KEYS_INT) { if (attribs[attrib]) { media[attrib] = parseInt(attribs[attrib], 10); } } if (attribs["expression"]) { media.expression = attribs["expression"]; } return media; }); } function getOneElement(tagName, node) { return getElementsByTagName(tagName, node, true, 1)[0]; } function fetch2(tagName, where, recurse = false) { return textContent(getElementsByTagName(tagName, where, recurse, 1)).trim(); } function addConditionally(obj, prop2, tagName, where, recurse = false) { const val2 = fetch2(tagName, where, recurse); if (val2) obj[prop2] = val2; } function isValidFeed(value) { return value === "rss" || value === "feed" || value === "rdf:RDF"; } var MEDIA_KEYS_STRING, MEDIA_KEYS_INT; var init_feeds = __esm({ "node_modules/domutils/lib/esm/feeds.js"() { init_stringify(); init_legacy(); MEDIA_KEYS_STRING = ["url", "type", "lang"]; MEDIA_KEYS_INT = [ "fileSize", "bitrate", "framerate", "samplingrate", "channels", "duration", "height", "width" ]; } }); // node_modules/domutils/lib/esm/index.js var esm_exports2 = {}; __export(esm_exports2, { DocumentPosition: () => DocumentPosition, append: () => append2, appendChild: () => appendChild, compareDocumentPosition: () => compareDocumentPosition, existsOne: () => existsOne, filter: () => filter2, find: () => find, findAll: () => findAll, findOne: () => findOne, findOneChild: () => findOneChild, getAttributeValue: () => getAttributeValue, getChildren: () => getChildren, getElementById: () => getElementById, getElements: () => getElements, getElementsByClassName: () => getElementsByClassName, getElementsByTagName: () => getElementsByTagName, getElementsByTagType: () => getElementsByTagType, getFeed: () => getFeed, getInnerHTML: () => getInnerHTML, getName: () => getName, getOuterHTML: () => getOuterHTML, getParent: () => getParent, getSiblings: () => getSiblings, getText: () => getText, hasAttrib: () => hasAttrib, hasChildren: () => hasChildren, innerText: () => innerText, isCDATA: () => isCDATA, isComment: () => isComment, isDocument: () => isDocument, isTag: () => isTag2, isText: () => isText, nextElementSibling: () => nextElementSibling, prepend: () => prepend, prependChild: () => prependChild, prevElementSibling: () => prevElementSibling, removeElement: () => removeElement, removeSubsets: () => removeSubsets, replaceElement: () => replaceElement, testElement: () => testElement, textContent: () => textContent, uniqueSort: () => uniqueSort }); var init_esm5 = __esm({ "node_modules/domutils/lib/esm/index.js"() { init_stringify(); init_traversal(); init_manipulation(); init_querying(); init_legacy(); init_helpers(); init_feeds(); init_esm2(); } }); // node_modules/cheerio/dist/esm/static.js var static_exports = {}; __export(static_exports, { contains: () => contains, extract: () => extract, html: () => html, merge: () => merge2, parseHTML: () => parseHTML, root: () => root, text: () => text, xml: () => xml }); function render2(that, dom, options) { if (!that) return ""; return that(dom !== null && dom !== void 0 ? dom : that._root.children, null, void 0, options).toString(); } function isOptions(dom, options) { return !options && typeof dom === "object" && dom != null && !("length" in dom) && !("type" in dom); } function html(dom, options) { const toRender = isOptions(dom) ? (options = dom, void 0) : dom; const opts = { ...this === null || this === void 0 ? void 0 : this._options, ...flattenOptions(options) }; return render2(this, toRender, opts); } function xml(dom) { const options = { ...this._options, xmlMode: true }; return render2(this, dom, options); } function text(elements) { const elems = elements !== null && elements !== void 0 ? elements : this ? this.root() : []; let ret = ""; for (let i = 0; i < elems.length; i++) { ret += textContent(elems[i]); } return ret; } function parseHTML(data2, context, keepScripts = typeof context === "boolean" ? context : false) { if (!data2 || typeof data2 !== "string") { return null; } if (typeof context === "boolean") { keepScripts = context; } const parsed = this.load(data2, this._options, false); if (!keepScripts) { parsed("script").remove(); } return [...parsed.root()[0].children]; } function root() { return this(this._root); } function contains(container, contained) { if (contained === container) { return false; } let next2 = contained; while (next2 && next2 !== next2.parent) { next2 = next2.parent; if (next2 === container) { return true; } } return false; } function extract(map2) { return this.root().extract(map2); } function merge2(arr1, arr2) { if (!isArrayLike(arr1) || !isArrayLike(arr2)) { return; } let newLength = arr1.length; const len = +arr2.length; for (let i = 0; i < len; i++) { arr1[newLength++] = arr2[i]; } arr1.length = newLength; return arr1; } function isArrayLike(item) { if (Array.isArray(item)) { return true; } if (typeof item !== "object" || item === null || !("length" in item) || typeof item.length !== "number" || item.length < 0) { return false; } for (let i = 0; i < item.length; i++) { if (!(i in item)) { return false; } } return true; } var init_static = __esm({ "node_modules/cheerio/dist/esm/static.js"() { init_esm5(); init_options(); } }); // node_modules/cheerio/dist/esm/utils.js function isCheerio(maybeCheerio) { return maybeCheerio.cheerio != null; } function camelCase(str) { return str.replace(/[._-](\w|$)/g, (_, x) => x.toUpperCase()); } function cssCase(str) { return str.replace(/[A-Z]/g, "-$&").toLowerCase(); } function domEach(array, fn) { const len = array.length; for (let i = 0; i < len; i++) fn(array[i], i); return array; } function isHtml(str) { const tagStart = str.indexOf("<"); if (tagStart < 0 || tagStart > str.length - 3) return false; const tagChar = str.charCodeAt(tagStart + 1); return (tagChar >= CharacterCodes.LowerA && tagChar <= CharacterCodes.LowerZ || tagChar >= CharacterCodes.UpperA && tagChar <= CharacterCodes.UpperZ || tagChar === CharacterCodes.Exclamation) && str.includes(">", tagStart + 2); } var CharacterCodes; var init_utils3 = __esm({ "node_modules/cheerio/dist/esm/utils.js"() { (function(CharacterCodes2) { CharacterCodes2[CharacterCodes2["LowerA"] = 97] = "LowerA"; CharacterCodes2[CharacterCodes2["LowerZ"] = 122] = "LowerZ"; CharacterCodes2[CharacterCodes2["UpperA"] = 65] = "UpperA"; CharacterCodes2[CharacterCodes2["UpperZ"] = 90] = "UpperZ"; CharacterCodes2[CharacterCodes2["Exclamation"] = 33] = "Exclamation"; })(CharacterCodes || (CharacterCodes = {})); } }); // node_modules/cheerio/dist/esm/api/attributes.js var attributes_exports = {}; __export(attributes_exports, { addClass: () => addClass, attr: () => attr, data: () => data, hasClass: () => hasClass, prop: () => prop, removeAttr: () => removeAttr, removeClass: () => removeClass, toggleClass: () => toggleClass, val: () => val }); function getAttr(elem, name, xmlMode) { var _a2; if (!elem || !isTag2(elem)) return void 0; (_a2 = elem.attribs) !== null && _a2 !== void 0 ? _a2 : elem.attribs = {}; if (!name) { return elem.attribs; } if (hasOwn.call(elem.attribs, name)) { return !xmlMode && rboolean.test(name) ? name : elem.attribs[name]; } if (elem.name === "option" && name === "value") { return text(elem.children); } if (elem.name === "input" && (elem.attribs["type"] === "radio" || elem.attribs["type"] === "checkbox") && name === "value") { return "on"; } return void 0; } function setAttr(el, name, value) { if (value === null) { removeAttribute(el, name); } else { el.attribs[name] = `${value}`; } } function attr(name, value) { if (typeof name === "object" || value !== void 0) { if (typeof value === "function") { if (typeof name !== "string") { { throw new Error("Bad combination of arguments."); } } return domEach(this, (el, i) => { if (isTag2(el)) setAttr(el, name, value.call(el, i, el.attribs[name])); }); } return domEach(this, (el) => { if (!isTag2(el)) return; if (typeof name === "object") { for (const objName of Object.keys(name)) { const objValue = name[objName]; setAttr(el, objName, objValue); } } else { setAttr(el, name, value); } }); } return arguments.length > 1 ? this : getAttr(this[0], name, this.options.xmlMode); } function getProp(el, name, xmlMode) { return name in el ? ( // @ts-expect-error TS doesn't like us accessing the value directly here. el[name] ) : !xmlMode && rboolean.test(name) ? getAttr(el, name, false) !== void 0 : getAttr(el, name, xmlMode); } function setProp(el, name, value, xmlMode) { if (name in el) { el[name] = value; } else { setAttr(el, name, !xmlMode && rboolean.test(name) ? value ? "" : null : `${value}`); } } function prop(name, value) { var _a2; if (typeof name === "string" && value === void 0) { const el = this[0]; if (!el || !isTag2(el)) return void 0; switch (name) { case "style": { const property = this.css(); const keys = Object.keys(property); for (let i = 0; i < keys.length; i++) { property[i] = keys[i]; } property.length = keys.length; return property; } case "tagName": case "nodeName": { return el.name.toUpperCase(); } case "href": case "src": { const prop2 = (_a2 = el.attribs) === null || _a2 === void 0 ? void 0 : _a2[name]; if (typeof URL !== "undefined" && (name === "href" && (el.tagName === "a" || el.tagName === "link") || name === "src" && (el.tagName === "img" || el.tagName === "iframe" || el.tagName === "audio" || el.tagName === "video" || el.tagName === "source")) && prop2 !== void 0 && this.options.baseURI) { return new URL(prop2, this.options.baseURI).href; } return prop2; } case "innerText": { return innerText(el); } case "textContent": { return textContent(el); } case "outerHTML": { return this.clone().wrap("<container />").parent().html(); } case "innerHTML": { return this.html(); } default: { return getProp(el, name, this.options.xmlMode); } } } if (typeof name === "object" || value !== void 0) { if (typeof value === "function") { if (typeof name === "object") { throw new TypeError("Bad combination of arguments."); } return domEach(this, (el, i) => { if (isTag2(el)) { setProp(el, name, value.call(el, i, getProp(el, name, this.options.xmlMode)), this.options.xmlMode); } }); } return domEach(this, (el) => { if (!isTag2(el)) return; if (typeof name === "object") { for (const key of Object.keys(name)) { const val2 = name[key]; setProp(el, key, val2, this.options.xmlMode); } } else { setProp(el, name, value, this.options.xmlMode); } }); } return void 0; } function setData(elem, name, value) { var _a2; (_a2 = elem.data) !== null && _a2 !== void 0 ? _a2 : elem.data = {}; if (typeof name === "object") Object.assign(elem.data, name); else if (typeof name === "string" && value !== void 0) { elem.data[name] = value; } } function readAllData(el) { for (const domName of Object.keys(el.attribs)) { if (!domName.startsWith(dataAttrPrefix)) { continue; } const jsName = camelCase(domName.slice(dataAttrPrefix.length)); if (!hasOwn.call(el.data, jsName)) { el.data[jsName] = parseDataValue(el.attribs[domName]); } } return el.data; } function readData(el, name) { const domName = dataAttrPrefix + cssCase(name); const data2 = el.data; if (hasOwn.call(data2, name)) { return data2[name]; } if (hasOwn.call(el.attribs, domName)) { return data2[name] = parseDataValue(el.attribs[domName]); } return void 0; } function parseDataValue(value) { if (value === "null") return null; if (value === "true") return true; if (value === "false") return false; const num = Number(value); if (value === String(num)) return num; if (rbrace.test(value)) { try { return JSON.parse(value); } catch { } } return value; } function data(name, value) { var _a2; const elem = this[0]; if (!elem || !isTag2(elem)) return; const dataEl = elem; (_a2 = dataEl.data) !== null && _a2 !== void 0 ? _a2 : dataEl.data = {}; if (name == null) { return readAllData(dataEl); } if (typeof name === "object" || value !== void 0) { domEach(this, (el) => { if (isTag2(el)) { if (typeof name === "object") setData(el, name); else setData(el, name, value); } }); return this; } return readData(dataEl, name); } function val(value) { const querying = arguments.length === 0; const element = this[0]; if (!element || !isTag2(element)) return querying ? void 0 : this; switch (element.name) { case "textarea": { return this.text(value); } case "select": { const option = this.find("option:selected"); if (!querying) { if (this.attr("multiple") == null && typeof value === "object") { return this; } this.find("option").removeAttr("selected"); const values = typeof value === "object" ? value : [value]; for (const val2 of values) { this.find(`option[value="${val2}"]`).attr("selected", ""); } return this; } return this.attr("multiple") ? option.toArray().map((el) => text(el.children)) : option.attr("value"); } case "input": case "option": { return querying ? this.attr("value") : this.attr("value", value); } } return void 0; } function removeAttribute(elem, name) { if (!elem.attribs || !hasOwn.call(elem.attribs, name)) return; delete elem.attribs[name]; } function splitNames(names) { return names ? names.trim().split(rspace) : []; } function removeAttr(name) { const attrNames = splitNames(name); for (const attrName of attrNames) { domEach(this, (elem) => { if (isTag2(elem)) removeAttribute(elem, attrName); }); } return this; } function hasClass(className) { return this.toArray().some((elem) => { const clazz = isTag2(elem) && elem.attribs["class"]; let idx = -1; if (clazz && className.length > 0) { while ((idx = clazz.indexOf(className, idx + 1)) > -1) { const end2 = idx + className.length; if ((idx === 0 || rspace.test(clazz[idx - 1])) && (end2 === clazz.length || rspace.test(clazz[end2]))) { return true; } } } return false; }); } function addClass(value) { if (typeof value === "function") { return domEach(this, (el, i) => { if (isTag2(el)) { const className = el.attribs["class"] || ""; addClass.call([el], value.call(el, i, className)); } }); } if (!value || typeof value !== "string") return this; const classNames = value.split(rspace); const numElements = this.length; for (let i = 0; i < numElements; i++) { const el = this[i]; if (!isTag2(el)) continue; const className = getAttr(el, "class", false); if (className) { let setClass = ` ${className} `; for (const cn of classNames) { const appendClass = `${cn} `; if (!setClass.includes(` ${appendClass}`)) setClass += appendClass; } setAttr(el, "class", setClass.trim()); } else { setAttr(el, "class", classNames.join(" ").trim()); } } return this; } function removeClass(name) { if (typeof name === "function") { return domEach(this, (el, i) => { if (isTag2(el)) { removeClass.call([el], name.call(el, i, el.attribs["class"] || "")); } }); } const classes = splitNames(name); const numClasses = classes.length; const removeAll = arguments.length === 0; return domEach(this, (el) => { if (!isTag2(el)) return; if (removeAll) { el.attribs["class"] = ""; } else { const elClasses = splitNames(el.attribs["class"]); let changed = false; for (let j = 0; j < numClasses; j++) { const index2 = elClasses.indexOf(classes[j]); if (index2 >= 0) { elClasses.splice(index2, 1); changed = true; j--; } } if (changed) { el.attribs["class"] = elClasses.join(" "); } } }); } function toggleClass(value, stateVal) { if (typeof value === "function") { return domEach(this, (el, i) => { if (isTag2(el)) { toggleClass.call([el], value.call(el, i, el.attribs["class"] || "", stateVal), stateVal); } }); } if (!value || typeof value !== "string") return this; const classNames = value.split(rspace); const numClasses = classNames.length; const state = typeof stateVal === "boolean" ? stateVal ? 1 : -1 : 0; const numElements = this.length; for (let i = 0; i < numElements; i++) { const el = this[i]; if (!isTag2(el)) continue; const elementClasses = splitNames(el.attribs["class"]); for (let j = 0; j < numClasses; j++) { const index2 = elementClasses.indexOf(classNames[j]); if (state >= 0 && index2 < 0) { elementClasses.push(classNames[j]); } else if (state <= 0 && index2 >= 0) { elementClasses.splice(index2, 1); } } el.attribs["class"] = elementClasses.join(" "); } return this; } var hasOwn, rspace, dataAttrPrefix, rboolean, rbrace; var init_attributes = __esm({ "node_modules/cheerio/dist/esm/api/attributes.js"() { init_static(); init_utils3(); init_esm2(); init_esm5(); hasOwn = Object.prototype.hasOwnProperty; rspace = /\s+/; dataAttrPrefix = "data-"; rboolean = /^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i; rbrace = /^{[^]*}$|^\[[^]*]$/; } }); // node_modules/css-what/lib/commonjs/types.js var require_types = __commonJS({ "node_modules/css-what/lib/commonjs/types.js"(exports2) { "use strict"; Object.defineProperty(exports2, "__esModule", { value: true }); exports2.AttributeAction = exports2.IgnoreCaseMode = exports2.SelectorType = void 0; var SelectorType5; (function(SelectorType6) { SelectorType6["Attribute"] = "attribute"; SelectorType6["Pseudo"] = "pseudo"; SelectorType6["PseudoElement"] = "pseudo-element"; SelectorType6["Tag"] = "tag"; SelectorType6["Universal"] = "universal"; SelectorType6["Adjacent"] = "adjacent"; SelectorType6["Child"] = "child"; SelectorType6["Descendant"] = "descendant"; SelectorType6["Parent"] = "parent"; SelectorType6["Sibling"] = "sibling"; SelectorType6["ColumnCombinator"] = "column-combinator"; })(SelectorType5 = exports2.SelectorType || (exports2.SelectorType = {})); exports2.IgnoreCaseMode = { Unknown: null, QuirksMode: "quirks", IgnoreCase: true, CaseSensitive: false }; var AttributeAction2; (function(AttributeAction3) { AttributeAction3["Any"] = "any"; AttributeAction3["Element"] = "element"; AttributeAction3["End"] = "end"; AttributeAction3["Equals"] = "equals"; AttributeAction3["Exists"] = "exists"; AttributeAction3["Hyphen"] = "hyphen"; AttributeAction3["Not"] = "not"; AttributeAction3["Start"] = "start"; })(AttributeAction2 = exports2.AttributeAction || (exports2.AttributeAction = {})); } }); // node_modules/css-what/lib/commonjs/parse.js var require_parse = __commonJS({ "node_modules/css-what/lib/commonjs/parse.js"(exports2) { "use strict"; Object.defineProperty(exports2, "__esModule", { value: true }); exports2.parse = exports2.isTraversal = void 0; var types_1 = require_types(); var reName = /^[^\\#]?(?:\\(?:[\da-f]{1,6}\s?|.)|[\w\-\u00b0-\uFFFF])+/; var reEscape = /\\([\da-f]{1,6}\s?|(\s)|.)/gi; var actionTypes = /* @__PURE__ */ new Map([ [126, types_1.AttributeAction.Element], [94, types_1.AttributeAction.Start], [36, types_1.AttributeAction.End], [42, types_1.AttributeAction.Any], [33, types_1.AttributeAction.Not], [124, types_1.AttributeAction.Hyphen] ]); var unpackPseudos = /* @__PURE__ */ new Set([ "has", "not", "matches", "is", "where", "host", "host-context" ]); function isTraversal3(selector) { switch (selector.type) { case types_1.SelectorType.Adjacent: case types_1.SelectorType.Child: case types_1.SelectorType.Descendant: case types_1.SelectorType.Parent: case types_1.SelectorType.Sibling: case types_1.SelectorType.ColumnCombinator: return true; default: return false; } } exports2.isTraversal = isTraversal3; var stripQuotesFromPseudos = /* @__PURE__ */ new Set(["contains", "icontains"]); function funescape(_, escaped, escapedWhitespace) { var high = parseInt(escaped, 16) - 65536; return high !== high || escapedWhitespace ? escaped : high < 0 ? ( // BMP codepoint String.fromCharCode(high + 65536) ) : ( // Supplemental Plane codepoint (surrogate pair) String.fromCharCode(high >> 10 | 55296, high & 1023 | 56320) ); } function unescapeCSS(str) { return str.replace(reEscape, funescape); } function isQuote2(c) { return c === 39 || c === 34; } function isWhitespace3(c) { return c === 32 || c === 9 || c === 10 || c === 12 || c === 13; } function parse8(selector) { var subselects2 = []; var endIndex = parseSelector(subselects2, "".concat(selector), 0); if (endIndex < selector.length) { throw new Error("Unmatched selector: ".concat(selector.slice(endIndex))); } return subselects2; } exports2.parse = parse8; function parseSelector(subselects2, selector, selectorIndex) { var tokens = []; function getName2(offset) { var match = selector.slice(selectorIndex + offset).match(reName); if (!match) { throw new Error("Expected name, found ".concat(selector.slice(selectorIndex))); } var name = match[0]; selectorIndex += offset + name.length; return unescapeCSS(name); } function stripWhitespace(offset) { selectorIndex += offset; while (selectorIndex < selector.length && isWhitespace3(selector.charCodeAt(selectorIndex))) { selectorIndex++; } } function readValueWithParenthesis() { selectorIndex += 1; var start = selectorIndex; var counter = 1; for (; counter > 0 && selectorIndex < selector.length; selectorIndex++) { if (selector.charCodeAt(selectorIndex) === 40 && !isEscaped(selectorIndex)) { counter++; } else if (selector.charCodeAt(selectorIndex) === 41 && !isEscaped(selectorIndex)) { counter--; } } if (counter) { throw new Error("Parenthesis not matched"); } return unescapeCSS(selector.slice(start, selectorIndex - 1)); } function isEscaped(pos) { var slashCount = 0; while (selector.charCodeAt(--pos) === 92) slashCount++; return (slashCount & 1) === 1; } function ensureNotTraversal() { if (tokens.length > 0 && isTraversal3(tokens[tokens.length - 1])) { throw new Error("Did not expect successive traversals."); } } function addTraversal(type) { if (tokens.length > 0 && tokens[tokens.length - 1].type === types_1.SelectorType.Descendant) { tokens[tokens.length - 1].type = type; return; } ensureNotTraversal(); tokens.push({ type }); } function addSpecialAttribute(name, action2) { tokens.push({ type: types_1.SelectorType.Attribute, name, action: action2, value: getName2(1), namespace: null, ignoreCase: "quirks" }); } function finalizeSubselector() { if (tokens.length && tokens[tokens.length - 1].type === types_1.SelectorType.Descendant) { tokens.pop(); } if (tokens.length === 0) { throw new Error("Empty sub-selector"); } subselects2.push(tokens); } stripWhitespace(0); if (selector.length === selectorIndex) { return selectorIndex; } loop: while (selectorIndex < selector.length) { var firstChar = selector.charCodeAt(selectorIndex); switch (firstChar) { // Whitespace case 32: case 9: case 10: case 12: case 13: { if (tokens.length === 0 || tokens[0].type !== types_1.SelectorType.Descendant) { ensureNotTraversal(); tokens.push({ type: types_1.SelectorType.Descendant }); } stripWhitespace(1); break; } // Traversals case 62: { addTraversal(types_1.SelectorType.Child); stripWhitespace(1); break; } case 60: { addTraversal(types_1.SelectorType.Parent); stripWhitespace(1); break; } case 126: { addTraversal(types_1.SelectorType.Sibling); stripWhitespace(1); break; } case 43: { addTraversal(types_1.SelectorType.Adjacent); stripWhitespace(1); break; } // Special attribute selectors: .class, #id case 46: { addSpecialAttribute("class", types_1.AttributeAction.Element); break; } case 35: { addSpecialAttribute("id", types_1.AttributeAction.Equals); break; } case 91: { stripWhitespace(1); var name_1 = void 0; var namespace = null; if (selector.charCodeAt(selectorIndex) === 124) { name_1 = getName2(1); } else if (selector.startsWith("*|", selectorIndex)) { namespace = "*"; name_1 = getName2(2); } else { name_1 = getName2(0); if (selector.charCodeAt(selectorIndex) === 124 && selector.charCodeAt(selectorIndex + 1) !== 61) { namespace = name_1; name_1 = getName2(1); } } stripWhitespace(0); var action = types_1.AttributeAction.Exists; var possibleAction = actionTypes.get(selector.charCodeAt(selectorIndex)); if (possibleAction) { action = possibleAction; if (selector.charCodeAt(selectorIndex + 1) !== 61) { throw new Error("Expected `=`"); } stripWhitespace(2); } else if (selector.charCodeAt(selectorIndex) === 61) { action = types_1.AttributeAction.Equals; stripWhitespace(1); } var value = ""; var ignoreCase = null; if (action !== "exists") { if (isQuote2(selector.charCodeAt(selectorIndex))) { var quote = selector.charCodeAt(selectorIndex); var sectionEnd = selectorIndex + 1; while (sectionEnd < selector.length && (selector.charCodeAt(sectionEnd) !== quote || isEscaped(sectionEnd))) { sectionEnd += 1; } if (selector.charCodeAt(sectionEnd) !== quote) { throw new Error("Attribute value didn't end"); } value = unescapeCSS(selector.slice(selectorIndex + 1, sectionEnd)); selectorIndex = sectionEnd + 1; } else { var valueStart = selectorIndex; while (selectorIndex < selector.length && (!isWhitespace3(selector.charCodeAt(selectorIndex)) && selector.charCodeAt(selectorIndex) !== 93 || isEscaped(selectorIndex))) { selectorIndex += 1; } value = unescapeCSS(selector.slice(valueStart, selectorIndex)); } stripWhitespace(0); var forceIgnore = selector.charCodeAt(selectorIndex) | 32; if (forceIgnore === 115) { ignoreCase = false; stripWhitespace(1); } else if (forceIgnore === 105) { ignoreCase = true; stripWhitespace(1); } } if (selector.charCodeAt(selectorIndex) !== 93) { throw new Error("Attribute selector didn't terminate"); } selectorIndex += 1; var attributeSelector = { type: types_1.SelectorType.Attribute, name: name_1, action, value, namespace, ignoreCase }; tokens.push(attributeSelector); break; } case 58: { if (selector.charCodeAt(selectorIndex + 1) === 58) { tokens.push({ type: types_1.SelectorType.PseudoElement, name: getName2(2).toLowerCase(), data: selector.charCodeAt(selectorIndex) === 40 ? readValueWithParenthesis() : null }); continue; } var name_2 = getName2(1).toLowerCase(); var data2 = null; if (selector.charCodeAt(selectorIndex) === 40) { if (unpackPseudos.has(name_2)) { if (isQuote2(selector.charCodeAt(selectorIndex + 1))) { throw new Error("Pseudo-selector ".concat(name_2, " cannot be quoted")); } data2 = []; selectorIndex = parseSelector(data2, selector, selectorIndex + 1); if (selector.charCodeAt(selectorIndex) !== 41) { throw new Error("Missing closing parenthesis in :".concat(name_2, " (").concat(selector, ")")); } selectorIndex += 1; } else { data2 = readValueWithParenthesis(); if (stripQuotesFromPseudos.has(name_2)) { var quot = data2.charCodeAt(0); if (quot === data2.charCodeAt(data2.length - 1) && isQuote2(quot)) { data2 = data2.slice(1, -1); } } data2 = unescapeCSS(data2); } } tokens.push({ type: types_1.SelectorType.Pseudo, name: name_2, data: data2 }); break; } case 44: { finalizeSubselector(); tokens = []; stripWhitespace(1); break; } default: { if (selector.startsWith("/*", selectorIndex)) { var endIndex = selector.indexOf("*/", selectorIndex + 2); if (endIndex < 0) { throw new Error("Comment was not terminated"); } selectorIndex = endIndex + 2; if (tokens.length === 0) { stripWhitespace(0); } break; } var namespace = null; var name_3 = void 0; if (firstChar === 42) { selectorIndex += 1; name_3 = "*"; } else if (firstChar === 124) { name_3 = ""; if (selector.charCodeAt(selectorIndex + 1) === 124) { addTraversal(types_1.SelectorType.ColumnCombinator); stripWhitespace(2); break; } } else if (reName.test(selector.slice(selectorIndex))) { name_3 = getName2(0); } else { break loop; } if (selector.charCodeAt(selectorIndex) === 124 && selector.charCodeAt(selectorIndex + 1) !== 124) { namespace = name_3; if (selector.charCodeAt(selectorIndex + 1) === 42) { name_3 = "*"; selectorIndex += 2; } else { name_3 = getName2(1); } } tokens.push(name_3 === "*" ? { type: types_1.SelectorType.Universal, namespace } : { type: types_1.SelectorType.Tag, name: name_3, namespace }); } } } finalizeSubselector(); return selectorIndex; } } }); // node_modules/css-what/lib/commonjs/stringify.js var require_stringify = __commonJS({ "node_modules/css-what/lib/commonjs/stringify.js"(exports2) { "use strict"; var __spreadArray = exports2 && exports2.__spreadArray || function(to, from, pack) { if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) { if (ar || !(i in from)) { if (!ar) ar = Array.prototype.slice.call(from, 0, i); ar[i] = from[i]; } } return to.concat(ar || Array.prototype.slice.call(from)); }; Object.defineProperty(exports2, "__esModule", { value: true }); exports2.stringify = void 0; var types_1 = require_types(); var attribValChars = ["\\", '"']; var pseudoValChars = __spreadArray(__spreadArray([], attribValChars, true), ["(", ")"], false); var charsToEscapeInAttributeValue = new Set(attribValChars.map(function(c) { return c.charCodeAt(0); })); var charsToEscapeInPseudoValue = new Set(pseudoValChars.map(function(c) { return c.charCodeAt(0); })); var charsToEscapeInName = new Set(__spreadArray(__spreadArray([], pseudoValChars, true), [ "~", "^", "$", "*", "+", "!", "|", ":", "[", "]", " ", "." ], false).map(function(c) { return c.charCodeAt(0); })); function stringify2(selector) { return selector.map(function(token) { return token.map(stringifyToken).join(""); }).join(", "); } exports2.stringify = stringify2; function stringifyToken(token, index2, arr) { switch (token.type) { // Simple types case types_1.SelectorType.Child: return index2 === 0 ? "> " : " > "; case types_1.SelectorType.Parent: return index2 === 0 ? "< " : " < "; case types_1.SelectorType.Sibling: return index2 === 0 ? "~ " : " ~ "; case types_1.SelectorType.Adjacent: return index2 === 0 ? "+ " : " + "; case types_1.SelectorType.Descendant: return " "; case types_1.SelectorType.ColumnCombinator: return index2 === 0 ? "|| " : " || "; case types_1.SelectorType.Universal: return token.namespace === "*" && index2 + 1 < arr.length && "name" in arr[index2 + 1] ? "" : "".concat(getNamespace(token.namespace), "*"); case types_1.SelectorType.Tag: return getNamespacedName(token); case types_1.SelectorType.PseudoElement: return "::".concat(escapeName(token.name, charsToEscapeInName)).concat(token.data === null ? "" : "(".concat(escapeName(token.data, charsToEscapeInPseudoValue), ")")); case types_1.SelectorType.Pseudo: return ":".concat(escapeName(token.name, charsToEscapeInName)).concat(token.data === null ? "" : "(".concat(typeof token.data === "string" ? escapeName(token.data, charsToEscapeInPseudoValue) : stringify2(token.data), ")")); case types_1.SelectorType.Attribute: { if (token.name === "id" && token.action === types_1.AttributeAction.Equals && token.ignoreCase === "quirks" && !token.namespace) { return "#".concat(escapeName(token.value, charsToEscapeInName)); } if (token.name === "class" && token.action === types_1.AttributeAction.Element && token.ignoreCase === "quirks" && !token.namespace) { return ".".concat(escapeName(token.value, charsToEscapeInName)); } var name_1 = getNamespacedName(token); if (token.action === types_1.AttributeAction.Exists) { return "[".concat(name_1, "]"); } return "[".concat(name_1).concat(getActionValue(token.action), '="').concat(escapeName(token.value, charsToEscapeInAttributeValue), '"').concat(token.ignoreCase === null ? "" : token.ignoreCase ? " i" : " s", "]"); } } } function getActionValue(action) { switch (action) { case types_1.AttributeAction.Equals: return ""; case types_1.AttributeAction.Element: return "~"; case types_1.AttributeAction.Start: return "^"; case types_1.AttributeAction.End: return "$"; case types_1.AttributeAction.Any: return "*"; case types_1.AttributeAction.Not: return "!"; case types_1.AttributeAction.Hyphen: return "|"; case types_1.AttributeAction.Exists: throw new Error("Shouldn't be here"); } } function getNamespacedName(token) { return "".concat(getNamespace(token.namespace)).concat(escapeName(token.name, charsToEscapeInName)); } function getNamespace(namespace) { return namespace !== null ? "".concat(namespace === "*" ? "*" : escapeName(namespace, charsToEscapeInName), "|") : ""; } function escapeName(str, charsToEscape) { var lastIdx = 0; var ret = ""; for (var i = 0; i < str.length; i++) { if (charsToEscape.has(str.charCodeAt(i))) { ret += "".concat(str.slice(lastIdx, i), "\\").concat(str.charAt(i)); lastIdx = i + 1; } } return ret.length > 0 ? ret + str.slice(lastIdx) : str; } } }); // node_modules/css-what/lib/commonjs/index.js var require_commonjs = __commonJS({ "node_modules/css-what/lib/commonjs/index.js"(exports2) { "use strict"; var __createBinding = exports2 && exports2.__createBinding || (Object.create ? (function(o, m, k, k2) { if (k2 === void 0) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function() { return m[k]; } }; } Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === void 0) k2 = k; o[k2] = m[k]; })); var __exportStar = exports2 && exports2.__exportStar || function(m, exports3) { for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports3, p)) __createBinding(exports3, m, p); }; Object.defineProperty(exports2, "__esModule", { value: true }); exports2.stringify = exports2.parse = exports2.isTraversal = void 0; __exportStar(require_types(), exports2); var parse_1 = require_parse(); Object.defineProperty(exports2, "isTraversal", { enumerable: true, get: function() { return parse_1.isTraversal; } }); Object.defineProperty(exports2, "parse", { enumerable: true, get: function() { return parse_1.parse; } }); var stringify_1 = require_stringify(); Object.defineProperty(exports2, "stringify", { enumerable: true, get: function() { return stringify_1.stringify; } }); } }); // node_modules/boolbase/index.js var require_boolbase = __commonJS({ "node_modules/boolbase/index.js"(exports2, module2) { module2.exports = { trueFunc: function trueFunc2() { return true; }, falseFunc: function falseFunc() { return false; } }; } }); // node_modules/css-select/lib/esm/sort.js function isTraversal(token) { return !procedure.has(token.type); } function sortByProcedure(arr) { const procs = arr.map(getProcedure); for (let i = 1; i < arr.length; i++) { const procNew = procs[i]; if (procNew < 0) continue; for (let j = i - 1; j >= 0 && procNew < procs[j]; j--) { const token = arr[j + 1]; arr[j + 1] = arr[j]; arr[j] = token; procs[j + 1] = procs[j]; procs[j] = procNew; } } } function getProcedure(token) { var _a2, _b; let proc = (_a2 = procedure.get(token.type)) !== null && _a2 !== void 0 ? _a2 : -1; if (token.type === import_css_what.SelectorType.Attribute) { proc = (_b = attributes.get(token.action)) !== null && _b !== void 0 ? _b : 4; if (token.action === import_css_what.AttributeAction.Equals && token.name === "id") { proc = 9; } if (token.ignoreCase) { proc >>= 1; } } else if (token.type === import_css_what.SelectorType.Pseudo) { if (!token.data) { proc = 3; } else if (token.name === "has" || token.name === "contains") { proc = 0; } else if (Array.isArray(token.data)) { proc = Math.min(...token.data.map((d) => Math.min(...d.map(getProcedure)))); if (proc < 0) { proc = 0; } } else { proc = 2; } } return proc; } var import_css_what, procedure, attributes; var init_sort = __esm({ "node_modules/css-select/lib/esm/sort.js"() { import_css_what = __toESM(require_commonjs(), 1); procedure = /* @__PURE__ */ new Map([ [import_css_what.SelectorType.Universal, 50], [import_css_what.SelectorType.Tag, 30], [import_css_what.SelectorType.Attribute, 1], [import_css_what.SelectorType.Pseudo, 0] ]); attributes = /* @__PURE__ */ new Map([ [import_css_what.AttributeAction.Exists, 10], [import_css_what.AttributeAction.Equals, 8], [import_css_what.AttributeAction.Not, 7], [import_css_what.AttributeAction.Start, 6], [import_css_what.AttributeAction.End, 6], [import_css_what.AttributeAction.Any, 5] ]); } }); // node_modules/css-select/lib/esm/attributes.js function escapeRegex(value) { return value.replace(reChars, "\\$&"); } function shouldIgnoreCase(selector, options) { return typeof selector.ignoreCase === "boolean" ? selector.ignoreCase : selector.ignoreCase === "quirks" ? !!options.quirksMode : !options.xmlMode && caseInsensitiveAttributes.has(selector.name); } var import_boolbase, reChars, caseInsensitiveAttributes, attributeRules; var init_attributes2 = __esm({ "node_modules/css-select/lib/esm/attributes.js"() { import_boolbase = __toESM(require_boolbase(), 1); reChars = /[-[\]{}()*+?.,\\^$|#\s]/g; caseInsensitiveAttributes = /* @__PURE__ */ new Set([ "accept", "accept-charset", "align", "alink", "axis", "bgcolor", "charset", "checked", "clear", "codetype", "color", "compact", "declare", "defer", "dir", "direction", "disabled", "enctype", "face", "frame", "hreflang", "http-equiv", "lang", "language", "link", "media", "method", "multiple", "nohref", "noresize", "noshade", "nowrap", "readonly", "rel", "rev", "rules", "scope", "scrolling", "selected", "shape", "target", "text", "type", "valign", "valuetype", "vlink" ]); attributeRules = { equals(next2, data2, options) { const { adapter: adapter2 } = options; const { name } = data2; let { value } = data2; if (shouldIgnoreCase(data2, options)) { value = value.toLowerCase(); return (elem) => { const attr2 = adapter2.getAttributeValue(elem, name); return attr2 != null && attr2.length === value.length && attr2.toLowerCase() === value && next2(elem); }; } return (elem) => adapter2.getAttributeValue(elem, name) === value && next2(elem); }, hyphen(next2, data2, options) { const { adapter: adapter2 } = options; const { name } = data2; let { value } = data2; const len = value.length; if (shouldIgnoreCase(data2, options)) { value = value.toLowerCase(); return function hyphenIC(elem) { const attr2 = adapter2.getAttributeValue(elem, name); return attr2 != null && (attr2.length === len || attr2.charAt(len) === "-") && attr2.substr(0, len).toLowerCase() === value && next2(elem); }; } return function hyphen(elem) { const attr2 = adapter2.getAttributeValue(elem, name); return attr2 != null && (attr2.length === len || attr2.charAt(len) === "-") && attr2.substr(0, len) === value && next2(elem); }; }, element(next2, data2, options) { const { adapter: adapter2 } = options; const { name, value } = data2; if (/\s/.test(value)) { return import_boolbase.default.falseFunc; } const regex = new RegExp(`(?:^|\\s)${escapeRegex(value)}(?:$|\\s)`, shouldIgnoreCase(data2, options) ? "i" : ""); return function element(elem) { const attr2 = adapter2.getAttributeValue(elem, name); return attr2 != null && attr2.length >= value.length && regex.test(attr2) && next2(elem); }; }, exists(next2, { name }, { adapter: adapter2 }) { return (elem) => adapter2.hasAttrib(elem, name) && next2(elem); }, start(next2, data2, options) { const { adapter: adapter2 } = options; const { name } = data2; let { value } = data2; const len = value.length; if (len === 0) { return import_boolbase.default.falseFunc; } if (shouldIgnoreCase(data2, options)) { value = value.toLowerCase(); return (elem) => { const attr2 = adapter2.getAttributeValue(elem, name); return attr2 != null && attr2.length >= len && attr2.substr(0, len).toLowerCase() === value && next2(elem); }; } return (elem) => { var _a2; return !!((_a2 = adapter2.getAttributeValue(elem, name)) === null || _a2 === void 0 ? void 0 : _a2.startsWith(value)) && next2(elem); }; }, end(next2, data2, options) { const { adapter: adapter2 } = options; const { name } = data2; let { value } = data2; const len = -value.length; if (len === 0) { return import_boolbase.default.falseFunc; } if (shouldIgnoreCase(data2, options)) { value = value.toLowerCase(); return (elem) => { var _a2; return ((_a2 = adapter2.getAttributeValue(elem, name)) === null || _a2 === void 0 ? void 0 : _a2.substr(len).toLowerCase()) === value && next2(elem); }; } return (elem) => { var _a2; return !!((_a2 = adapter2.getAttributeValue(elem, name)) === null || _a2 === void 0 ? void 0 : _a2.endsWith(value)) && next2(elem); }; }, any(next2, data2, options) { const { adapter: adapter2 } = options; const { name, value } = data2; if (value === "") { return import_boolbase.default.falseFunc; } if (shouldIgnoreCase(data2, options)) { const regex = new RegExp(escapeRegex(value), "i"); return function anyIC(elem) { const attr2 = adapter2.getAttributeValue(elem, name); return attr2 != null && attr2.length >= value.length && regex.test(attr2) && next2(elem); }; } return (elem) => { var _a2; return !!((_a2 = adapter2.getAttributeValue(elem, name)) === null || _a2 === void 0 ? void 0 : _a2.includes(value)) && next2(elem); }; }, not(next2, data2, options) { const { adapter: adapter2 } = options; const { name } = data2; let { value } = data2; if (value === "") { return (elem) => !!adapter2.getAttributeValue(elem, name) && next2(elem); } else if (shouldIgnoreCase(data2, options)) { value = value.toLowerCase(); return (elem) => { const attr2 = adapter2.getAttributeValue(elem, name); return (attr2 == null || attr2.length !== value.length || attr2.toLowerCase() !== value) && next2(elem); }; } return (elem) => adapter2.getAttributeValue(elem, name) !== value && next2(elem); } }; } }); // node_modules/nth-check/lib/esm/parse.js function parse(formula) { formula = formula.trim().toLowerCase(); if (formula === "even") { return [2, 0]; } else if (formula === "odd") { return [2, 1]; } let idx = 0; let a = 0; let sign = readSign(); let number = readNumber(); if (idx < formula.length && formula.charAt(idx) === "n") { idx++; a = sign * (number !== null && number !== void 0 ? number : 1); skipWhitespace(); if (idx < formula.length) { sign = readSign(); skipWhitespace(); number = readNumber(); } else { sign = number = 0; } } if (number === null || idx < formula.length) { throw new Error(`n-th rule couldn't be parsed ('${formula}')`); } return [a, sign * number]; function readSign() { if (formula.charAt(idx) === "-") { idx++; return -1; } if (formula.charAt(idx) === "+") { idx++; } return 1; } function readNumber() { const start = idx; let value = 0; while (idx < formula.length && formula.charCodeAt(idx) >= ZERO && formula.charCodeAt(idx) <= NINE) { value = value * 10 + (formula.charCodeAt(idx) - ZERO); idx++; } return idx === start ? null : value; } function skipWhitespace() { while (idx < formula.length && whitespace.has(formula.charCodeAt(idx))) { idx++; } } } var whitespace, ZERO, NINE; var init_parse = __esm({ "node_modules/nth-check/lib/esm/parse.js"() { whitespace = /* @__PURE__ */ new Set([9, 10, 12, 13, 32]); ZERO = "0".charCodeAt(0); NINE = "9".charCodeAt(0); } }); // node_modules/nth-check/lib/esm/compile.js function compile(parsed) { const a = parsed[0]; const b = parsed[1] - 1; if (b < 0 && a <= 0) return import_boolbase2.default.falseFunc; if (a === -1) return (index2) => index2 <= b; if (a === 0) return (index2) => index2 === b; if (a === 1) return b < 0 ? import_boolbase2.default.trueFunc : (index2) => index2 >= b; const absA = Math.abs(a); const bMod = (b % absA + absA) % absA; return a > 1 ? (index2) => index2 >= b && index2 % absA === bMod : (index2) => index2 <= b && index2 % absA === bMod; } var import_boolbase2; var init_compile = __esm({ "node_modules/nth-check/lib/esm/compile.js"() { import_boolbase2 = __toESM(require_boolbase(), 1); } }); // node_modules/nth-check/lib/esm/index.js function nthCheck(formula) { return compile(parse(formula)); } var init_esm6 = __esm({ "node_modules/nth-check/lib/esm/index.js"() { init_parse(); init_compile(); } }); // node_modules/css-select/lib/esm/pseudo-selectors/filters.js function getChildFunc(next2, adapter2) { return (elem) => { const parent2 = adapter2.getParent(elem); return parent2 != null && adapter2.isTag(parent2) && next2(elem); }; } function dynamicStatePseudo(name) { return function dynamicPseudo(next2, _rule, { adapter: adapter2 }) { const func = adapter2[name]; if (typeof func !== "function") { return import_boolbase3.default.falseFunc; } return function active(elem) { return func(elem) && next2(elem); }; }; } var import_boolbase3, filters; var init_filters = __esm({ "node_modules/css-select/lib/esm/pseudo-selectors/filters.js"() { init_esm6(); import_boolbase3 = __toESM(require_boolbase(), 1); filters = { contains(next2, text3, { adapter: adapter2 }) { return function contains2(elem) { return next2(elem) && adapter2.getText(elem).includes(text3); }; }, icontains(next2, text3, { adapter: adapter2 }) { const itext = text3.toLowerCase(); return function icontains(elem) { return next2(elem) && adapter2.getText(elem).toLowerCase().includes(itext); }; }, // Location specific methods "nth-child"(next2, rule, { adapter: adapter2, equals }) { const func = nthCheck(rule); if (func === import_boolbase3.default.falseFunc) return import_boolbase3.default.falseFunc; if (func === import_boolbase3.default.trueFunc) return getChildFunc(next2, adapter2); return function nthChild(elem) { const siblings2 = adapter2.getSiblings(elem); let pos = 0; for (let i = 0; i < siblings2.length; i++) { if (equals(elem, siblings2[i])) break; if (adapter2.isTag(siblings2[i])) { pos++; } } return func(pos) && next2(elem); }; }, "nth-last-child"(next2, rule, { adapter: adapter2, equals }) { const func = nthCheck(rule); if (func === import_boolbase3.default.falseFunc) return import_boolbase3.default.falseFunc; if (func === import_boolbase3.default.trueFunc) return getChildFunc(next2, adapter2); return function nthLastChild(elem) { const siblings2 = adapter2.getSiblings(elem); let pos = 0; for (let i = siblings2.length - 1; i >= 0; i--) { if (equals(elem, siblings2[i])) break; if (adapter2.isTag(siblings2[i])) { pos++; } } return func(pos) && next2(elem); }; }, "nth-of-type"(next2, rule, { adapter: adapter2, equals }) { const func = nthCheck(rule); if (func === import_boolbase3.default.falseFunc) return import_boolbase3.default.falseFunc; if (func === import_boolbase3.default.trueFunc) return getChildFunc(next2, adapter2); return function nthOfType(elem) { const siblings2 = adapter2.getSiblings(elem); let pos = 0; for (let i = 0; i < siblings2.length; i++) { const currentSibling = siblings2[i]; if (equals(elem, currentSibling)) break; if (adapter2.isTag(currentSibling) && adapter2.getName(currentSibling) === adapter2.getName(elem)) { pos++; } } return func(pos) && next2(elem); }; }, "nth-last-of-type"(next2, rule, { adapter: adapter2, equals }) { const func = nthCheck(rule); if (func === import_boolbase3.default.falseFunc) return import_boolbase3.default.falseFunc; if (func === import_boolbase3.default.trueFunc) return getChildFunc(next2, adapter2); return function nthLastOfType(elem) { const siblings2 = adapter2.getSiblings(elem); let pos = 0; for (let i = siblings2.length - 1; i >= 0; i--) { const currentSibling = siblings2[i]; if (equals(elem, currentSibling)) break; if (adapter2.isTag(currentSibling) && adapter2.getName(currentSibling) === adapter2.getName(elem)) { pos++; } } return func(pos) && next2(elem); }; }, // TODO determine the actual root element root(next2, _rule, { adapter: adapter2 }) { return (elem) => { const parent2 = adapter2.getParent(elem); return (parent2 == null || !adapter2.isTag(parent2)) && next2(elem); }; }, scope(next2, rule, options, context) { const { equals } = options; if (!context || context.length === 0) { return filters["root"](next2, rule, options); } if (context.length === 1) { return (elem) => equals(context[0], elem) && next2(elem); } return (elem) => context.includes(elem) && next2(elem); }, hover: dynamicStatePseudo("isHovered"), visited: dynamicStatePseudo("isVisited"), active: dynamicStatePseudo("isActive") }; } }); // node_modules/css-select/lib/esm/pseudo-selectors/pseudos.js function verifyPseudoArgs(func, name, subselect, argIndex) { if (subselect === null) { if (func.length > argIndex) { throw new Error(`Pseudo-class :${name} requires an argument`); } } else if (func.length === argIndex) { throw new Error(`Pseudo-class :${name} doesn't have any arguments`); } } var pseudos; var init_pseudos = __esm({ "node_modules/css-select/lib/esm/pseudo-selectors/pseudos.js"() { pseudos = { empty(elem, { adapter: adapter2 }) { return !adapter2.getChildren(elem).some((elem2) => ( // FIXME: `getText` call is potentially expensive. adapter2.isTag(elem2) || adapter2.getText(elem2) !== "" )); }, "first-child"(elem, { adapter: adapter2, equals }) { if (adapter2.prevElementSibling) { return adapter2.prevElementSibling(elem) == null; } const firstChild = adapter2.getSiblings(elem).find((elem2) => adapter2.isTag(elem2)); return firstChild != null && equals(elem, firstChild); }, "last-child"(elem, { adapter: adapter2, equals }) { const siblings2 = adapter2.getSiblings(elem); for (let i = siblings2.length - 1; i >= 0; i--) { if (equals(elem, siblings2[i])) return true; if (adapter2.isTag(siblings2[i])) break; } return false; }, "first-of-type"(elem, { adapter: adapter2, equals }) { const siblings2 = adapter2.getSiblings(elem); const elemName = adapter2.getName(elem); for (let i = 0; i < siblings2.length; i++) { const currentSibling = siblings2[i]; if (equals(elem, currentSibling)) return true; if (adapter2.isTag(currentSibling) && adapter2.getName(currentSibling) === elemName) { break; } } return false; }, "last-of-type"(elem, { adapter: adapter2, equals }) { const siblings2 = adapter2.getSiblings(elem); const elemName = adapter2.getName(elem); for (let i = siblings2.length - 1; i >= 0; i--) { const currentSibling = siblings2[i]; if (equals(elem, currentSibling)) return true; if (adapter2.isTag(currentSibling) && adapter2.getName(currentSibling) === elemName) { break; } } return false; }, "only-of-type"(elem, { adapter: adapter2, equals }) { const elemName = adapter2.getName(elem); return adapter2.getSiblings(elem).every((sibling) => equals(elem, sibling) || !adapter2.isTag(sibling) || adapter2.getName(sibling) !== elemName); }, "only-child"(elem, { adapter: adapter2, equals }) { return adapter2.getSiblings(elem).every((sibling) => equals(elem, sibling) || !adapter2.isTag(sibling)); } }; } }); // node_modules/css-select/lib/esm/pseudo-selectors/aliases.js var aliases; var init_aliases = __esm({ "node_modules/css-select/lib/esm/pseudo-selectors/aliases.js"() { aliases = { // Links "any-link": ":is(a, area, link)[href]", link: ":any-link:not(:visited)", // Forms // https://html.spec.whatwg.org/multipage/scripting.html#disabled-elements disabled: `:is( :is(button, input, select, textarea, optgroup, option)[disabled], optgroup[disabled] > option, fieldset[disabled]:not(fieldset[disabled] legend:first-of-type *) )`, enabled: ":not(:disabled)", checked: ":is(:is(input[type=radio], input[type=checkbox])[checked], option:selected)", required: ":is(input, select, textarea)[required]", optional: ":is(input, select, textarea):not([required])", // JQuery extensions // https://html.spec.whatwg.org/multipage/form-elements.html#concept-option-selectedness selected: "option:is([selected], select:not([multiple]):not(:has(> option[selected])) > :first-of-type)", checkbox: "[type=checkbox]", file: "[type=file]", password: "[type=password]", radio: "[type=radio]", reset: "[type=reset]", image: "[type=image]", submit: "[type=submit]", parent: ":not(:empty)", header: ":is(h1, h2, h3, h4, h5, h6)", button: ":is(button, input[type=button])", input: ":is(input, textarea, select, button)", text: "input:is(:not([type!='']), [type=text])" }; } }); // node_modules/css-select/lib/esm/pseudo-selectors/subselects.js function ensureIsTag(next2, adapter2) { if (next2 === import_boolbase4.default.falseFunc) return import_boolbase4.default.falseFunc; return (elem) => adapter2.isTag(elem) && next2(elem); } function getNextSiblings(elem, adapter2) { const siblings2 = adapter2.getSiblings(elem); if (siblings2.length <= 1) return []; const elemIndex = siblings2.indexOf(elem); if (elemIndex < 0 || elemIndex === siblings2.length - 1) return []; return siblings2.slice(elemIndex + 1).filter(adapter2.isTag); } function copyOptions(options) { return { xmlMode: !!options.xmlMode, lowerCaseAttributeNames: !!options.lowerCaseAttributeNames, lowerCaseTags: !!options.lowerCaseTags, quirksMode: !!options.quirksMode, cacheResults: !!options.cacheResults, pseudos: options.pseudos, adapter: options.adapter, equals: options.equals }; } var import_boolbase4, PLACEHOLDER_ELEMENT, is, subselects; var init_subselects = __esm({ "node_modules/css-select/lib/esm/pseudo-selectors/subselects.js"() { import_boolbase4 = __toESM(require_boolbase(), 1); init_sort(); PLACEHOLDER_ELEMENT = {}; is = (next2, token, options, context, compileToken2) => { const func = compileToken2(token, copyOptions(options), context); return func === import_boolbase4.default.trueFunc ? next2 : func === import_boolbase4.default.falseFunc ? import_boolbase4.default.falseFunc : (elem) => func(elem) && next2(elem); }; subselects = { is, /** * `:matches` and `:where` are aliases for `:is`. */ matches: is, where: is, not(next2, token, options, context, compileToken2) { const func = compileToken2(token, copyOptions(options), context); return func === import_boolbase4.default.falseFunc ? next2 : func === import_boolbase4.default.trueFunc ? import_boolbase4.default.falseFunc : (elem) => !func(elem) && next2(elem); }, has(next2, subselect, options, _context, compileToken2) { const { adapter: adapter2 } = options; const opts = copyOptions(options); opts.relativeSelector = true; const context = subselect.some((s) => s.some(isTraversal)) ? ( // Used as a placeholder. Will be replaced with the actual element. [PLACEHOLDER_ELEMENT] ) : void 0; const compiled = compileToken2(subselect, opts, context); if (compiled === import_boolbase4.default.falseFunc) return import_boolbase4.default.falseFunc; const hasElement = ensureIsTag(compiled, adapter2); if (context && compiled !== import_boolbase4.default.trueFunc) { const { shouldTestNextSiblings = false } = compiled; return (elem) => { if (!next2(elem)) return false; context[0] = elem; const childs = adapter2.getChildren(elem); const nextElements = shouldTestNextSiblings ? [...childs, ...getNextSiblings(elem, adapter2)] : childs; return adapter2.existsOne(hasElement, nextElements); }; } return (elem) => next2(elem) && adapter2.existsOne(hasElement, adapter2.getChildren(elem)); } }; } }); // node_modules/css-select/lib/esm/pseudo-selectors/index.js function compilePseudoSelector(next2, selector, options, context, compileToken2) { var _a2; const { name, data: data2 } = selector; if (Array.isArray(data2)) { if (!(name in subselects)) { throw new Error(`Unknown pseudo-class :${name}(${data2})`); } return subselects[name](next2, data2, options, context, compileToken2); } const userPseudo = (_a2 = options.pseudos) === null || _a2 === void 0 ? void 0 : _a2[name]; const stringPseudo = typeof userPseudo === "string" ? userPseudo : aliases[name]; if (typeof stringPseudo === "string") { if (data2 != null) { throw new Error(`Pseudo ${name} doesn't have any arguments`); } const alias = (0, import_css_what2.parse)(stringPseudo); return subselects["is"](next2, alias, options, context, compileToken2); } if (typeof userPseudo === "function") { verifyPseudoArgs(userPseudo, name, data2, 1); return (elem) => userPseudo(elem, data2) && next2(elem); } if (name in filters) { return filters[name](next2, data2, options, context); } if (name in pseudos) { const pseudo = pseudos[name]; verifyPseudoArgs(pseudo, name, data2, 2); return (elem) => pseudo(elem, options, data2) && next2(elem); } throw new Error(`Unknown pseudo-class :${name}`); } var import_css_what2; var init_pseudo_selectors = __esm({ "node_modules/css-select/lib/esm/pseudo-selectors/index.js"() { import_css_what2 = __toESM(require_commonjs(), 1); init_filters(); init_pseudos(); init_aliases(); init_subselects(); } }); // node_modules/css-select/lib/esm/general.js function getElementParent(node, adapter2) { const parent2 = adapter2.getParent(node); if (parent2 && adapter2.isTag(parent2)) { return parent2; } return null; } function compileGeneralSelector(next2, selector, options, context, compileToken2) { const { adapter: adapter2, equals } = options; switch (selector.type) { case import_css_what3.SelectorType.PseudoElement: { throw new Error("Pseudo-elements are not supported by css-select"); } case import_css_what3.SelectorType.ColumnCombinator: { throw new Error("Column combinators are not yet supported by css-select"); } case import_css_what3.SelectorType.Attribute: { if (selector.namespace != null) { throw new Error("Namespaced attributes are not yet supported by css-select"); } if (!options.xmlMode || options.lowerCaseAttributeNames) { selector.name = selector.name.toLowerCase(); } return attributeRules[selector.action](next2, selector, options); } case import_css_what3.SelectorType.Pseudo: { return compilePseudoSelector(next2, selector, options, context, compileToken2); } // Tags case import_css_what3.SelectorType.Tag: { if (selector.namespace != null) { throw new Error("Namespaced tag names are not yet supported by css-select"); } let { name } = selector; if (!options.xmlMode || options.lowerCaseTags) { name = name.toLowerCase(); } return function tag(elem) { return adapter2.getName(elem) === name && next2(elem); }; } // Traversal case import_css_what3.SelectorType.Descendant: { if (options.cacheResults === false || typeof WeakSet === "undefined") { return function descendant(elem) { let current = elem; while (current = getElementParent(current, adapter2)) { if (next2(current)) { return true; } } return false; }; } const isFalseCache = /* @__PURE__ */ new WeakSet(); return function cachedDescendant(elem) { let current = elem; while (current = getElementParent(current, adapter2)) { if (!isFalseCache.has(current)) { if (adapter2.isTag(current) && next2(current)) { return true; } isFalseCache.add(current); } } return false; }; } case "_flexibleDescendant": { return function flexibleDescendant(elem) { let current = elem; do { if (next2(current)) return true; } while (current = getElementParent(current, adapter2)); return false; }; } case import_css_what3.SelectorType.Parent: { return function parent2(elem) { return adapter2.getChildren(elem).some((elem2) => adapter2.isTag(elem2) && next2(elem2)); }; } case import_css_what3.SelectorType.Child: { return function child(elem) { const parent2 = adapter2.getParent(elem); return parent2 != null && adapter2.isTag(parent2) && next2(parent2); }; } case import_css_what3.SelectorType.Sibling: { return function sibling(elem) { const siblings2 = adapter2.getSiblings(elem); for (let i = 0; i < siblings2.length; i++) { const currentSibling = siblings2[i]; if (equals(elem, currentSibling)) break; if (adapter2.isTag(currentSibling) && next2(currentSibling)) { return true; } } return false; }; } case import_css_what3.SelectorType.Adjacent: { if (adapter2.prevElementSibling) { return function adjacent(elem) { const previous = adapter2.prevElementSibling(elem); return previous != null && next2(previous); }; } return function adjacent(elem) { const siblings2 = adapter2.getSiblings(elem); let lastElement; for (let i = 0; i < siblings2.length; i++) { const currentSibling = siblings2[i]; if (equals(elem, currentSibling)) break; if (adapter2.isTag(currentSibling)) { lastElement = currentSibling; } } return !!lastElement && next2(lastElement); }; } case import_css_what3.SelectorType.Universal: { if (selector.namespace != null && selector.namespace !== "*") { throw new Error("Namespaced universal selectors are not yet supported by css-select"); } return next2; } } } var import_css_what3; var init_general = __esm({ "node_modules/css-select/lib/esm/general.js"() { init_attributes2(); init_pseudo_selectors(); import_css_what3 = __toESM(require_commonjs(), 1); } }); // node_modules/css-select/lib/esm/compile.js function compile2(selector, options, context) { const next2 = compileUnsafe(selector, options, context); return ensureIsTag(next2, options.adapter); } function compileUnsafe(selector, options, context) { const token = typeof selector === "string" ? (0, import_css_what4.parse)(selector) : selector; return compileToken(token, options, context); } function includesScopePseudo(t) { return t.type === import_css_what4.SelectorType.Pseudo && (t.name === "scope" || Array.isArray(t.data) && t.data.some((data2) => data2.some(includesScopePseudo))); } function absolutize(token, { adapter: adapter2 }, context) { const hasContext = !!(context === null || context === void 0 ? void 0 : context.every((e) => { const parent2 = adapter2.isTag(e) && adapter2.getParent(e); return e === PLACEHOLDER_ELEMENT || parent2 && adapter2.isTag(parent2); })); for (const t of token) { if (t.length > 0 && isTraversal(t[0]) && t[0].type !== import_css_what4.SelectorType.Descendant) { } else if (hasContext && !t.some(includesScopePseudo)) { t.unshift(DESCENDANT_TOKEN); } else { continue; } t.unshift(SCOPE_TOKEN); } } function compileToken(token, options, context) { var _a2; token.forEach(sortByProcedure); context = (_a2 = options.context) !== null && _a2 !== void 0 ? _a2 : context; const isArrayContext = Array.isArray(context); const finalContext = context && (Array.isArray(context) ? context : [context]); if (options.relativeSelector !== false) { absolutize(token, options, finalContext); } else if (token.some((t) => t.length > 0 && isTraversal(t[0]))) { throw new Error("Relative selectors are not allowed when the `relativeSelector` option is disabled"); } let shouldTestNextSiblings = false; const query = token.map((rules) => { if (rules.length >= 2) { const [first2, second] = rules; if (first2.type !== import_css_what4.SelectorType.Pseudo || first2.name !== "scope") { } else if (isArrayContext && second.type === import_css_what4.SelectorType.Descendant) { rules[1] = FLEXIBLE_DESCENDANT_TOKEN; } else if (second.type === import_css_what4.SelectorType.Adjacent || second.type === import_css_what4.SelectorType.Sibling) { shouldTestNextSiblings = true; } } return compileRules(rules, options, finalContext); }).reduce(reduceRules, import_boolbase5.default.falseFunc); query.shouldTestNextSiblings = shouldTestNextSiblings; return query; } function compileRules(rules, options, context) { var _a2; return rules.reduce((previous, rule) => previous === import_boolbase5.default.falseFunc ? import_boolbase5.default.falseFunc : compileGeneralSelector(previous, rule, options, context, compileToken), (_a2 = options.rootFunc) !== null && _a2 !== void 0 ? _a2 : import_boolbase5.default.trueFunc); } function reduceRules(a, b) { if (b === import_boolbase5.default.falseFunc || a === import_boolbase5.default.trueFunc) { return a; } if (a === import_boolbase5.default.falseFunc || b === import_boolbase5.default.trueFunc) { return b; } return function combine(elem) { return a(elem) || b(elem); }; } var import_css_what4, import_boolbase5, DESCENDANT_TOKEN, FLEXIBLE_DESCENDANT_TOKEN, SCOPE_TOKEN; var init_compile2 = __esm({ "node_modules/css-select/lib/esm/compile.js"() { import_css_what4 = __toESM(require_commonjs(), 1); import_boolbase5 = __toESM(require_boolbase(), 1); init_sort(); init_general(); init_subselects(); DESCENDANT_TOKEN = { type: import_css_what4.SelectorType.Descendant }; FLEXIBLE_DESCENDANT_TOKEN = { type: "_flexibleDescendant" }; SCOPE_TOKEN = { type: import_css_what4.SelectorType.Pseudo, name: "scope", data: null }; } }); // node_modules/css-select/lib/esm/index.js function convertOptionFormats(options) { var _a2, _b, _c, _d; const opts = options !== null && options !== void 0 ? options : defaultOptions; (_a2 = opts.adapter) !== null && _a2 !== void 0 ? _a2 : opts.adapter = esm_exports2; (_b = opts.equals) !== null && _b !== void 0 ? _b : opts.equals = (_d = (_c = opts.adapter) === null || _c === void 0 ? void 0 : _c.equals) !== null && _d !== void 0 ? _d : defaultEquals; return opts; } function wrapCompile(func) { return function addAdapter(selector, options, context) { const opts = convertOptionFormats(options); return func(selector, opts, context); }; } function getSelectorFunc(searchFunc) { return function select2(query, elements, options) { const opts = convertOptionFormats(options); if (typeof query !== "function") { query = compileUnsafe(query, opts, elements); } const filteredElements = prepareContext(elements, opts.adapter, query.shouldTestNextSiblings); return searchFunc(query, filteredElements, opts); }; } function prepareContext(elems, adapter2, shouldTestNextSiblings = false) { if (shouldTestNextSiblings) { elems = appendNextSiblings(elems, adapter2); } return Array.isArray(elems) ? adapter2.removeSubsets(elems) : adapter2.getChildren(elems); } function appendNextSiblings(elem, adapter2) { const elems = Array.isArray(elem) ? elem.slice(0) : [elem]; const elemsLength = elems.length; for (let i = 0; i < elemsLength; i++) { const nextSiblings = getNextSiblings(elems[i], adapter2); elems.push(...nextSiblings); } return elems; } var import_boolbase6, defaultEquals, defaultOptions, compile3, _compileUnsafe, _compileToken, selectAll, selectOne; var init_esm7 = __esm({ "node_modules/css-select/lib/esm/index.js"() { init_esm5(); import_boolbase6 = __toESM(require_boolbase(), 1); init_compile2(); init_subselects(); init_pseudo_selectors(); defaultEquals = (a, b) => a === b; defaultOptions = { adapter: esm_exports2, equals: defaultEquals }; compile3 = wrapCompile(compile2); _compileUnsafe = wrapCompile(compileUnsafe); _compileToken = wrapCompile(compileToken); selectAll = getSelectorFunc((query, elems, options) => query === import_boolbase6.default.falseFunc || !elems || elems.length === 0 ? [] : options.adapter.findAll(query, elems)); selectOne = getSelectorFunc((query, elems, options) => query === import_boolbase6.default.falseFunc || !elems || elems.length === 0 ? null : options.adapter.findOne(query, elems)); } }); // node_modules/cheerio-select/lib/esm/positionals.js function isFilter(s) { if (s.type !== "pseudo") return false; if (filterNames.has(s.name)) return true; if (s.name === "not" && Array.isArray(s.data)) { return s.data.some((s2) => s2.some(isFilter)); } return false; } function getLimit(filter5, data2, partLimit) { const num = data2 != null ? parseInt(data2, 10) : NaN; switch (filter5) { case "first": return 1; case "nth": case "eq": return isFinite(num) ? num >= 0 ? num + 1 : Infinity : 0; case "lt": return isFinite(num) ? num >= 0 ? Math.min(num, partLimit) : Infinity : 0; case "gt": return isFinite(num) ? Infinity : 0; case "odd": return 2 * partLimit; case "even": return 2 * partLimit - 1; case "last": case "not": return Infinity; } } var filterNames; var init_positionals = __esm({ "node_modules/cheerio-select/lib/esm/positionals.js"() { filterNames = /* @__PURE__ */ new Set([ "first", "last", "eq", "gt", "nth", "lt", "even", "odd" ]); } }); // node_modules/cheerio-select/lib/esm/helpers.js function getDocumentRoot(node) { while (node.parent) node = node.parent; return node; } function groupSelectors(selectors) { const filteredSelectors = []; const plainSelectors = []; for (const selector of selectors) { if (selector.some(isFilter)) { filteredSelectors.push(selector); } else { plainSelectors.push(selector); } } return [plainSelectors, filteredSelectors]; } var init_helpers2 = __esm({ "node_modules/cheerio-select/lib/esm/helpers.js"() { init_positionals(); } }); // node_modules/cheerio-select/lib/esm/index.js function is2(element, selector, options = {}) { return some([element], selector, options); } function some(elements, selector, options = {}) { if (typeof selector === "function") return elements.some(selector); const [plain, filtered] = groupSelectors((0, import_css_what5.parse)(selector)); return plain.length > 0 && elements.some(_compileToken(plain, options)) || filtered.some((sel) => filterBySelector(sel, elements, options).length > 0); } function filterByPosition(filter5, elems, data2, options) { const num = typeof data2 === "string" ? parseInt(data2, 10) : NaN; switch (filter5) { case "first": case "lt": return elems; case "last": return elems.length > 0 ? [elems[elems.length - 1]] : elems; case "nth": case "eq": return isFinite(num) && Math.abs(num) < elems.length ? [num < 0 ? elems[elems.length + num] : elems[num]] : []; case "gt": return isFinite(num) ? elems.slice(num + 1) : []; case "even": return elems.filter((_, i) => i % 2 === 0); case "odd": return elems.filter((_, i) => i % 2 === 1); case "not": { const filtered = new Set(filterParsed(data2, elems, options)); return elems.filter((e) => !filtered.has(e)); } } } function filter3(selector, elements, options = {}) { return filterParsed((0, import_css_what5.parse)(selector), elements, options); } function filterParsed(selector, elements, options) { if (elements.length === 0) return []; const [plainSelectors, filteredSelectors] = groupSelectors(selector); let found; if (plainSelectors.length) { const filtered = filterElements(elements, plainSelectors, options); if (filteredSelectors.length === 0) { return filtered; } if (filtered.length) { found = new Set(filtered); } } for (let i = 0; i < filteredSelectors.length && (found === null || found === void 0 ? void 0 : found.size) !== elements.length; i++) { const filteredSelector = filteredSelectors[i]; const missing = found ? elements.filter((e) => isTag2(e) && !found.has(e)) : elements; if (missing.length === 0) break; const filtered = filterBySelector(filteredSelector, elements, options); if (filtered.length) { if (!found) { if (i === filteredSelectors.length - 1) { return filtered; } found = new Set(filtered); } else { filtered.forEach((el) => found.add(el)); } } } return typeof found !== "undefined" ? found.size === elements.length ? elements : ( // Filter elements to preserve order elements.filter((el) => found.has(el)) ) : []; } function filterBySelector(selector, elements, options) { var _a2; if (selector.some(import_css_what5.isTraversal)) { const root2 = (_a2 = options.root) !== null && _a2 !== void 0 ? _a2 : getDocumentRoot(elements[0]); const opts = { ...options, context: elements, relativeSelector: false }; selector.push(SCOPE_PSEUDO); return findFilterElements(root2, selector, opts, true, elements.length); } return findFilterElements(elements, selector, options, false, elements.length); } function select(selector, root2, options = {}, limit = Infinity) { if (typeof selector === "function") { return find2(root2, selector); } const [plain, filtered] = groupSelectors((0, import_css_what5.parse)(selector)); const results = filtered.map((sel) => findFilterElements(root2, sel, options, true, limit)); if (plain.length) { results.push(findElements(root2, plain, options, limit)); } if (results.length === 0) { return []; } if (results.length === 1) { return results[0]; } return uniqueSort(results.reduce((a, b) => [...a, ...b])); } function findFilterElements(root2, selector, options, queryForSelector, totalLimit) { const filterIndex = selector.findIndex(isFilter); const sub = selector.slice(0, filterIndex); const filter5 = selector[filterIndex]; const partLimit = selector.length - 1 === filterIndex ? totalLimit : Infinity; const limit = getLimit(filter5.name, filter5.data, partLimit); if (limit === 0) return []; const elemsNoLimit = sub.length === 0 && !Array.isArray(root2) ? getChildren(root2).filter(isTag2) : sub.length === 0 ? (Array.isArray(root2) ? root2 : [root2]).filter(isTag2) : queryForSelector || sub.some(import_css_what5.isTraversal) ? findElements(root2, [sub], options, limit) : filterElements(root2, [sub], options); const elems = elemsNoLimit.slice(0, limit); let result = filterByPosition(filter5.name, elems, filter5.data, options); if (result.length === 0 || selector.length === filterIndex + 1) { return result; } const remainingSelector = selector.slice(filterIndex + 1); const remainingHasTraversal = remainingSelector.some(import_css_what5.isTraversal); if (remainingHasTraversal) { if ((0, import_css_what5.isTraversal)(remainingSelector[0])) { const { type } = remainingSelector[0]; if (type === import_css_what5.SelectorType.Sibling || type === import_css_what5.SelectorType.Adjacent) { result = prepareContext(result, esm_exports2, true); } remainingSelector.unshift(UNIVERSAL_SELECTOR); } options = { ...options, // Avoid absolutizing the selector relativeSelector: false, /* * Add a custom root func, to make sure traversals don't match elements * that aren't a part of the considered tree. */ rootFunc: (el) => result.includes(el) }; } else if (options.rootFunc && options.rootFunc !== boolbase7.trueFunc) { options = { ...options, rootFunc: boolbase7.trueFunc }; } return remainingSelector.some(isFilter) ? findFilterElements(result, remainingSelector, options, false, totalLimit) : remainingHasTraversal ? ( // Query existing elements to resolve traversal. findElements(result, [remainingSelector], options, totalLimit) ) : ( // If we don't have any more traversals, simply filter elements. filterElements(result, [remainingSelector], options) ); } function findElements(root2, sel, options, limit) { const query = _compileToken(sel, options, root2); return find2(root2, query, limit); } function find2(root2, query, limit = Infinity) { const elems = prepareContext(root2, esm_exports2, query.shouldTestNextSiblings); return find((node) => isTag2(node) && query(node), elems, true, limit); } function filterElements(elements, sel, options) { const els = (Array.isArray(elements) ? elements : [elements]).filter(isTag2); if (els.length === 0) return els; const query = _compileToken(sel, options); return query === boolbase7.trueFunc ? els : els.filter(query); } var import_css_what5, boolbase7, UNIVERSAL_SELECTOR, SCOPE_PSEUDO; var init_esm8 = __esm({ "node_modules/cheerio-select/lib/esm/index.js"() { import_css_what5 = __toESM(require_commonjs(), 1); init_esm7(); init_esm5(); boolbase7 = __toESM(require_boolbase(), 1); init_helpers2(); init_positionals(); init_esm7(); UNIVERSAL_SELECTOR = { type: import_css_what5.SelectorType.Universal, namespace: null }; SCOPE_PSEUDO = { type: import_css_what5.SelectorType.Pseudo, name: "scope", data: null }; } }); // node_modules/cheerio/dist/esm/api/traversing.js var traversing_exports = {}; __export(traversing_exports, { _findBySelector: () => _findBySelector, add: () => add, addBack: () => addBack, children: () => children, closest: () => closest, contents: () => contents, each: () => each, end: () => end, eq: () => eq, filter: () => filter4, filterArray: () => filterArray, find: () => find3, first: () => first, get: () => get, has: () => has, index: () => index, is: () => is3, last: () => last, map: () => map, next: () => next, nextAll: () => nextAll, nextUntil: () => nextUntil, not: () => not, parent: () => parent, parents: () => parents, parentsUntil: () => parentsUntil, prev: () => prev, prevAll: () => prevAll, prevUntil: () => prevUntil, siblings: () => siblings, slice: () => slice, toArray: () => toArray2 }); function find3(selectorOrHaystack) { if (!selectorOrHaystack) { return this._make([]); } if (typeof selectorOrHaystack !== "string") { const haystack = isCheerio(selectorOrHaystack) ? selectorOrHaystack.toArray() : [selectorOrHaystack]; const context = this.toArray(); return this._make(haystack.filter((elem) => context.some((node) => contains(node, elem)))); } return this._findBySelector(selectorOrHaystack, Number.POSITIVE_INFINITY); } function _findBySelector(selector, limit) { var _a2; const context = this.toArray(); const elems = reSiblingSelector.test(selector) ? context : this.children().toArray(); const options = { context, root: (_a2 = this._root) === null || _a2 === void 0 ? void 0 : _a2[0], // Pass options that are recognized by `cheerio-select` xmlMode: this.options.xmlMode, lowerCaseTags: this.options.lowerCaseTags, lowerCaseAttributeNames: this.options.lowerCaseAttributeNames, pseudos: this.options.pseudos, quirksMode: this.options.quirksMode }; return this._make(select(selector, elems, options, limit)); } function _getMatcher(matchMap) { return function(fn, ...postFns) { return function(selector) { var _a2; let matched = matchMap(fn, this); if (selector) { matched = filterArray(matched, selector, this.options.xmlMode, (_a2 = this._root) === null || _a2 === void 0 ? void 0 : _a2[0]); } return this._make( // Post processing is only necessary if there is more than one element. this.length > 1 && matched.length > 1 ? postFns.reduce((elems, fn2) => fn2(elems), matched) : matched ); }; }; } function _matchUntil(nextElem, ...postFns) { let matches = null; const innerMatcher = _getMatcher((nextElem2, elems) => { const matched = []; domEach(elems, (elem) => { for (let next2; next2 = nextElem2(elem); elem = next2) { if (matches === null || matches === void 0 ? void 0 : matches(next2, matched.length)) break; matched.push(next2); } }); return matched; })(nextElem, ...postFns); return function(selector, filterSelector) { matches = typeof selector === "string" ? (elem) => is2(elem, selector, this.options) : selector ? getFilterFn(selector) : null; const ret = innerMatcher.call(this, filterSelector); matches = null; return ret; }; } function _removeDuplicates(elems) { return elems.length > 1 ? Array.from(new Set(elems)) : elems; } function closest(selector) { var _a2; const set = []; if (!selector) { return this._make(set); } const selectOpts = { xmlMode: this.options.xmlMode, root: (_a2 = this._root) === null || _a2 === void 0 ? void 0 : _a2[0] }; const selectFn = typeof selector === "string" ? (elem) => is2(elem, selector, selectOpts) : getFilterFn(selector); domEach(this, (elem) => { if (elem && !isDocument(elem) && !isTag2(elem)) { elem = elem.parent; } while (elem && isTag2(elem)) { if (selectFn(elem, 0)) { if (!set.includes(elem)) { set.push(elem); } break; } elem = elem.parent; } }); return this._make(set); } function contents() { const elems = this.toArray().reduce((newElems, elem) => hasChildren(elem) ? newElems.concat(elem.children) : newElems, []); return this._make(elems); } function each(fn) { let i = 0; const len = this.length; while (i < len && fn.call(this[i], i, this[i]) !== false) ++i; return this; } function map(fn) { let elems = []; for (let i = 0; i < this.length; i++) { const el = this[i]; const val2 = fn.call(el, i, el); if (val2 != null) { elems = elems.concat(val2); } } return this._make(elems); } function getFilterFn(match) { if (typeof match === "function") { return (el, i) => match.call(el, i, el); } if (isCheerio(match)) { return (el) => Array.prototype.includes.call(match, el); } return function(el) { return match === el; }; } function filter4(match) { var _a2; return this._make(filterArray(this.toArray(), match, this.options.xmlMode, (_a2 = this._root) === null || _a2 === void 0 ? void 0 : _a2[0])); } function filterArray(nodes, match, xmlMode, root2) { return typeof match === "string" ? filter3(match, nodes, { xmlMode, root: root2 }) : nodes.filter(getFilterFn(match)); } function is3(selector) { const nodes = this.toArray(); return typeof selector === "string" ? some(nodes.filter(isTag2), selector, this.options) : selector ? nodes.some(getFilterFn(selector)) : false; } function not(match) { let nodes = this.toArray(); if (typeof match === "string") { const matches = new Set(filter3(match, nodes, this.options)); nodes = nodes.filter((el) => !matches.has(el)); } else { const filterFn = getFilterFn(match); nodes = nodes.filter((el, i) => !filterFn(el, i)); } return this._make(nodes); } function has(selectorOrHaystack) { return this.filter(typeof selectorOrHaystack === "string" ? ( // Using the `:has` selector here short-circuits searches. `:has(${selectorOrHaystack})` ) : (_, el) => this._make(el).find(selectorOrHaystack).length > 0); } function first() { return this.length > 1 ? this._make(this[0]) : this; } function last() { return this.length > 0 ? this._make(this[this.length - 1]) : this; } function eq(i) { var _a2; i = +i; if (i === 0 && this.length <= 1) return this; if (i < 0) i = this.length + i; return this._make((_a2 = this[i]) !== null && _a2 !== void 0 ? _a2 : []); } function get(i) { if (i == null) { return this.toArray(); } return this[i < 0 ? this.length + i : i]; } function toArray2() { return Array.prototype.slice.call(this); } function index(selectorOrNeedle) { let $haystack; let needle; if (selectorOrNeedle == null) { $haystack = this.parent().children(); needle = this[0]; } else if (typeof selectorOrNeedle === "string") { $haystack = this._make(selectorOrNeedle); needle = this[0]; } else { $haystack = this; needle = isCheerio(selectorOrNeedle) ? selectorOrNeedle[0] : selectorOrNeedle; } return Array.prototype.indexOf.call($haystack, needle); } function slice(start, end2) { return this._make(Array.prototype.slice.call(this, start, end2)); } function end() { var _a2; return (_a2 = this.prevObject) !== null && _a2 !== void 0 ? _a2 : this._make([]); } function add(other, context) { const selection = this._make(other, context); const contents2 = uniqueSort([...this.get(), ...selection.get()]); return this._make(contents2); } function addBack(selector) { return this.prevObject ? this.add(selector ? this.prevObject.filter(selector) : this.prevObject) : this; } var reSiblingSelector, _matcher, _singleMatcher, parent, parents, parentsUntil, next, nextAll, nextUntil, prev, prevAll, prevUntil, siblings, children; var init_traversing = __esm({ "node_modules/cheerio/dist/esm/api/traversing.js"() { init_esm2(); init_esm8(); init_utils3(); init_static(); init_esm5(); reSiblingSelector = /^\s*[+~]/; _matcher = _getMatcher((fn, elems) => { let ret = []; for (let i = 0; i < elems.length; i++) { const value = fn(elems[i]); if (value.length > 0) ret = ret.concat(value); } return ret; }); _singleMatcher = _getMatcher((fn, elems) => { const ret = []; for (let i = 0; i < elems.length; i++) { const value = fn(elems[i]); if (value !== null) { ret.push(value); } } return ret; }); parent = _singleMatcher(({ parent: parent2 }) => parent2 && !isDocument(parent2) ? parent2 : null, _removeDuplicates); parents = _matcher((elem) => { const matched = []; while (elem.parent && !isDocument(elem.parent)) { matched.push(elem.parent); elem = elem.parent; } return matched; }, uniqueSort, (elems) => elems.reverse()); parentsUntil = _matchUntil(({ parent: parent2 }) => parent2 && !isDocument(parent2) ? parent2 : null, uniqueSort, (elems) => elems.reverse()); next = _singleMatcher((elem) => nextElementSibling(elem)); nextAll = _matcher((elem) => { const matched = []; while (elem.next) { elem = elem.next; if (isTag2(elem)) matched.push(elem); } return matched; }, _removeDuplicates); nextUntil = _matchUntil((el) => nextElementSibling(el), _removeDuplicates); prev = _singleMatcher((elem) => prevElementSibling(elem)); prevAll = _matcher((elem) => { const matched = []; while (elem.prev) { elem = elem.prev; if (isTag2(elem)) matched.push(elem); } return matched; }, _removeDuplicates); prevUntil = _matchUntil((el) => prevElementSibling(el), _removeDuplicates); siblings = _matcher((elem) => getSiblings(elem).filter((el) => isTag2(el) && el !== elem), uniqueSort); children = _matcher((elem) => getChildren(elem).filter(isTag2), _removeDuplicates); } }); // node_modules/cheerio/dist/esm/parse.js function getParse(parser) { return function parse8(content, options, isDocument2, context) { if (typeof Buffer !== "undefined" && Buffer.isBuffer(content)) { content = content.toString(); } if (typeof content === "string") { return parser(content, options, isDocument2, context); } const doc = content; if (!Array.isArray(doc) && isDocument(doc)) { return doc; } const root2 = new Document([]); update(doc, root2); return root2; }; } function update(newChilds, parent2) { const arr = Array.isArray(newChilds) ? newChilds : [newChilds]; if (parent2) { parent2.children = arr; } else { parent2 = null; } for (let i = 0; i < arr.length; i++) { const node = arr[i]; if (node.parent && node.parent.children !== arr) { removeElement(node); } if (parent2) { node.prev = arr[i - 1] || null; node.next = arr[i + 1] || null; } else { node.prev = node.next = null; } node.parent = parent2; } return parent2; } var init_parse2 = __esm({ "node_modules/cheerio/dist/esm/parse.js"() { init_esm5(); init_esm2(); } }); // node_modules/cheerio/dist/esm/api/manipulation.js var manipulation_exports = {}; __export(manipulation_exports, { _makeDomArray: () => _makeDomArray, after: () => after, append: () => append3, appendTo: () => appendTo, before: () => before, clone: () => clone, empty: () => empty, html: () => html2, insertAfter: () => insertAfter, insertBefore: () => insertBefore, prepend: () => prepend2, prependTo: () => prependTo, remove: () => remove, replaceWith: () => replaceWith, text: () => text2, toString: () => toString3, unwrap: () => unwrap, wrap: () => wrap, wrapAll: () => wrapAll, wrapInner: () => wrapInner }); function _makeDomArray(elem, clone2) { if (elem == null) { return []; } if (typeof elem === "string") { return this._parse(elem, this.options, false, null).children.slice(0); } if ("length" in elem) { if (elem.length === 1) { return this._makeDomArray(elem[0], clone2); } const result = []; for (let i = 0; i < elem.length; i++) { const el = elem[i]; if (typeof el === "object") { if (el == null) { continue; } if (!("length" in el)) { result.push(clone2 ? cloneNode(el, true) : el); continue; } } result.push(...this._makeDomArray(el, clone2)); } return result; } return [clone2 ? cloneNode(elem, true) : elem]; } function _insert(concatenator) { return function(...elems) { const lastIdx = this.length - 1; return domEach(this, (el, i) => { if (!hasChildren(el)) return; const domSrc = typeof elems[0] === "function" ? elems[0].call(el, i, this._render(el.children)) : elems; const dom = this._makeDomArray(domSrc, i < lastIdx); concatenator(dom, el.children, el); }); }; } function uniqueSplice(array, spliceIdx, spliceCount, newElems, parent2) { var _a2, _b; const spliceArgs = [ spliceIdx, spliceCount, ...newElems ]; const prev2 = spliceIdx === 0 ? null : array[spliceIdx - 1]; const next2 = spliceIdx + spliceCount >= array.length ? null : array[spliceIdx + spliceCount]; for (let idx = 0; idx < newElems.length; ++idx) { const node = newElems[idx]; const oldParent = node.parent; if (oldParent) { const oldSiblings = oldParent.children; const prevIdx = oldSiblings.indexOf(node); if (prevIdx > -1) { oldParent.children.splice(prevIdx, 1); if (parent2 === oldParent && spliceIdx > prevIdx) { spliceArgs[0]--; } } } node.parent = parent2; if (node.prev) { node.prev.next = (_a2 = node.next) !== null && _a2 !== void 0 ? _a2 : null; } if (node.next) { node.next.prev = (_b = node.prev) !== null && _b !== void 0 ? _b : null; } node.prev = idx === 0 ? prev2 : newElems[idx - 1]; node.next = idx === newElems.length - 1 ? next2 : newElems[idx + 1]; } if (prev2) { prev2.next = newElems[0]; } if (next2) { next2.prev = newElems[newElems.length - 1]; } return array.splice(...spliceArgs); } function appendTo(target) { const appendTarget = isCheerio(target) ? target : this._make(target); appendTarget.append(this); return this; } function prependTo(target) { const prependTarget = isCheerio(target) ? target : this._make(target); prependTarget.prepend(this); return this; } function _wrap(insert) { return function(wrapper) { const lastIdx = this.length - 1; const lastParent = this.parents().last(); for (let i = 0; i < this.length; i++) { const el = this[i]; const wrap2 = typeof wrapper === "function" ? wrapper.call(el, i, el) : typeof wrapper === "string" && !isHtml(wrapper) ? lastParent.find(wrapper).clone() : wrapper; const [wrapperDom] = this._makeDomArray(wrap2, i < lastIdx); if (!wrapperDom || !hasChildren(wrapperDom)) continue; let elInsertLocation = wrapperDom; let j = 0; while (j < elInsertLocation.children.length) { const child = elInsertLocation.children[j]; if (isTag2(child)) { elInsertLocation = child; j = 0; } else { j++; } } insert(el, elInsertLocation, [wrapperDom]); } return this; }; } function unwrap(selector) { this.parent(selector).not("body").each((_, el) => { this._make(el).replaceWith(el.children); }); return this; } function wrapAll(wrapper) { const el = this[0]; if (el) { const wrap2 = this._make(typeof wrapper === "function" ? wrapper.call(el, 0, el) : wrapper).insertBefore(el); let elInsertLocation; for (let i = 0; i < wrap2.length; i++) { if (wrap2[i].type === "tag") elInsertLocation = wrap2[i]; } let j = 0; while (elInsertLocation && j < elInsertLocation.children.length) { const child = elInsertLocation.children[j]; if (child.type === "tag") { elInsertLocation = child; j = 0; } else { j++; } } if (elInsertLocation) this._make(elInsertLocation).append(this); } return this; } function after(...elems) { const lastIdx = this.length - 1; return domEach(this, (el, i) => { if (!hasChildren(el) || !el.parent) { return; } const siblings2 = el.parent.children; const index2 = siblings2.indexOf(el); if (index2 < 0) return; const domSrc = typeof elems[0] === "function" ? elems[0].call(el, i, this._render(el.children)) : elems; const dom = this._makeDomArray(domSrc, i < lastIdx); uniqueSplice(siblings2, index2 + 1, 0, dom, el.parent); }); } function insertAfter(target) { if (typeof target === "string") { target = this._make(target); } this.remove(); const clones = []; for (const el of this._makeDomArray(target)) { const clonedSelf = this.clone().toArray(); const { parent: parent2 } = el; if (!parent2) { continue; } const siblings2 = parent2.children; const index2 = siblings2.indexOf(el); if (index2 < 0) continue; uniqueSplice(siblings2, index2 + 1, 0, clonedSelf, parent2); clones.push(...clonedSelf); } return this._make(clones); } function before(...elems) { const lastIdx = this.length - 1; return domEach(this, (el, i) => { if (!hasChildren(el) || !el.parent) { return; } const siblings2 = el.parent.children; const index2 = siblings2.indexOf(el); if (index2 < 0) return; const domSrc = typeof elems[0] === "function" ? elems[0].call(el, i, this._render(el.children)) : elems; const dom = this._makeDomArray(domSrc, i < lastIdx); uniqueSplice(siblings2, index2, 0, dom, el.parent); }); } function insertBefore(target) { const targetArr = this._make(target); this.remove(); const clones = []; domEach(targetArr, (el) => { const clonedSelf = this.clone().toArray(); const { parent: parent2 } = el; if (!parent2) { return; } const siblings2 = parent2.children; const index2 = siblings2.indexOf(el); if (index2 < 0) return; uniqueSplice(siblings2, index2, 0, clonedSelf, parent2); clones.push(...clonedSelf); }); return this._make(clones); } function remove(selector) { const elems = selector ? this.filter(selector) : this; domEach(elems, (el) => { removeElement(el); el.prev = el.next = el.parent = null; }); return this; } function replaceWith(content) { return domEach(this, (el, i) => { const { parent: parent2 } = el; if (!parent2) { return; } const siblings2 = parent2.children; const cont = typeof content === "function" ? content.call(el, i, el) : content; const dom = this._makeDomArray(cont); update(dom, null); const index2 = siblings2.indexOf(el); uniqueSplice(siblings2, index2, 1, dom, parent2); if (!dom.includes(el)) { el.parent = el.prev = el.next = null; } }); } function empty() { return domEach(this, (el) => { if (!hasChildren(el)) return; for (const child of el.children) { child.next = child.prev = child.parent = null; } el.children.length = 0; }); } function html2(str) { if (str === void 0) { const el = this[0]; if (!el || !hasChildren(el)) return null; return this._render(el.children); } return domEach(this, (el) => { if (!hasChildren(el)) return; for (const child of el.children) { child.next = child.prev = child.parent = null; } const content = isCheerio(str) ? str.toArray() : this._parse(`${str}`, this.options, false, el).children; update(content, el); }); } function toString3() { return this._render(this); } function text2(str) { if (str === void 0) { return text(this); } if (typeof str === "function") { return domEach(this, (el, i) => this._make(el).text(str.call(el, i, text([el])))); } return domEach(this, (el) => { if (!hasChildren(el)) return; for (const child of el.children) { child.next = child.prev = child.parent = null; } const textNode = new Text2(`${str}`); update(textNode, el); }); } function clone() { const clone2 = Array.prototype.map.call(this.get(), (el) => cloneNode(el, true)); const root2 = new Document(clone2); for (const node of clone2) { node.parent = root2; } return this._make(clone2); } var append3, prepend2, wrap, wrapInner; var init_manipulation2 = __esm({ "node_modules/cheerio/dist/esm/api/manipulation.js"() { init_esm2(); init_parse2(); init_static(); init_utils3(); init_esm5(); append3 = _insert((dom, children2, parent2) => { uniqueSplice(children2, children2.length, 0, dom, parent2); }); prepend2 = _insert((dom, children2, parent2) => { uniqueSplice(children2, 0, 0, dom, parent2); }); wrap = _wrap((el, elInsertLocation, wrapperDom) => { const { parent: parent2 } = el; if (!parent2) return; const siblings2 = parent2.children; const index2 = siblings2.indexOf(el); update([el], elInsertLocation); uniqueSplice(siblings2, index2, 0, wrapperDom, parent2); }); wrapInner = _wrap((el, elInsertLocation, wrapperDom) => { if (!hasChildren(el)) return; update(el.children, elInsertLocation); update(wrapperDom, el); }); } }); // node_modules/cheerio/dist/esm/api/css.js var css_exports = {}; __export(css_exports, { css: () => css }); function css(prop2, val2) { if (prop2 != null && val2 != null || // When `prop` is a "plain" object typeof prop2 === "object" && !Array.isArray(prop2)) { return domEach(this, (el, i) => { if (isTag2(el)) { setCss(el, prop2, val2, i); } }); } if (this.length === 0) { return void 0; } return getCss(this[0], prop2); } function setCss(el, prop2, value, idx) { if (typeof prop2 === "string") { const styles = getCss(el); const val2 = typeof value === "function" ? value.call(el, idx, styles[prop2]) : value; if (val2 === "") { delete styles[prop2]; } else if (val2 != null) { styles[prop2] = val2; } el.attribs["style"] = stringify(styles); } else if (typeof prop2 === "object") { const keys = Object.keys(prop2); for (let i = 0; i < keys.length; i++) { const k = keys[i]; setCss(el, k, prop2[k], i); } } } function getCss(el, prop2) { if (!el || !isTag2(el)) return; const styles = parse5(el.attribs["style"]); if (typeof prop2 === "string") { return styles[prop2]; } if (Array.isArray(prop2)) { const newStyles = {}; for (const item of prop2) { if (styles[item] != null) { newStyles[item] = styles[item]; } } return newStyles; } return styles; } function stringify(obj) { return Object.keys(obj).reduce((str, prop2) => `${str}${str ? " " : ""}${prop2}: ${obj[prop2]};`, ""); } function parse5(styles) { styles = (styles || "").trim(); if (!styles) return {}; const obj = {}; let key; for (const str of styles.split(";")) { const n = str.indexOf(":"); if (n < 1 || n === str.length - 1) { const trimmed = str.trimEnd(); if (trimmed.length > 0 && key !== void 0) { obj[key] += `;${trimmed}`; } } else { key = str.slice(0, n).trim(); obj[key] = str.slice(n + 1).trim(); } } return obj; } var init_css = __esm({ "node_modules/cheerio/dist/esm/api/css.js"() { init_utils3(); init_esm2(); } }); // node_modules/cheerio/dist/esm/api/forms.js var forms_exports = {}; __export(forms_exports, { serialize: () => serialize, serializeArray: () => serializeArray }); function serialize() { const arr = this.serializeArray(); const retArr = arr.map((data2) => `${encodeURIComponent(data2.name)}=${encodeURIComponent(data2.value)}`); return retArr.join("&").replace(r20, "+"); } function serializeArray() { return this.map((_, elem) => { const $elem = this._make(elem); if (isTag2(elem) && elem.name === "form") { return $elem.find(submittableSelector).toArray(); } return $elem.filter(submittableSelector).toArray(); }).filter( // Verify elements have a name (`attr.name`) and are not disabled (`:enabled`) '[name!=""]:enabled:not(:submit, :button, :image, :reset, :file):matches([checked], :not(:checkbox, :radio))' ).map((_, elem) => { var _a2; const $elem = this._make(elem); const name = $elem.attr("name"); const value = (_a2 = $elem.val()) !== null && _a2 !== void 0 ? _a2 : ""; if (Array.isArray(value)) { return value.map((val2) => ( /* * We trim replace any line endings (e.g. `\r` or `\r\n` with `\r\n`) to guarantee consistency across platforms * These can occur inside of `<textarea>'s` */ { name, value: val2.replace(rCRLF, "\r\n") } )); } return { name, value: value.replace(rCRLF, "\r\n") }; }).toArray(); } var submittableSelector, r20, rCRLF; var init_forms = __esm({ "node_modules/cheerio/dist/esm/api/forms.js"() { init_esm2(); submittableSelector = "input,select,textarea,keygen"; r20 = /%20/g; rCRLF = /\r?\n/g; } }); // node_modules/cheerio/dist/esm/api/extract.js var extract_exports = {}; __export(extract_exports, { extract: () => extract2 }); function getExtractDescr(descr) { var _a2; if (typeof descr === "string") { return { selector: descr, value: "textContent" }; } return { selector: descr.selector, value: (_a2 = descr.value) !== null && _a2 !== void 0 ? _a2 : "textContent" }; } function extract2(map2) { const ret = {}; for (const key in map2) { const descr = map2[key]; const isArray2 = Array.isArray(descr); const { selector, value } = getExtractDescr(isArray2 ? descr[0] : descr); const fn = typeof value === "function" ? value : typeof value === "string" ? (el) => this._make(el).prop(value) : (el) => this._make(el).extract(value); if (isArray2) { ret[key] = this._findBySelector(selector, Number.POSITIVE_INFINITY).map((_, el) => fn(el, key, ret)).get(); } else { const $2 = this._findBySelector(selector, 1); ret[key] = $2.length > 0 ? fn($2[0], key, ret) : void 0; } } return ret; } var init_extract = __esm({ "node_modules/cheerio/dist/esm/api/extract.js"() { } }); // node_modules/cheerio/dist/esm/cheerio.js var Cheerio; var init_cheerio = __esm({ "node_modules/cheerio/dist/esm/cheerio.js"() { init_attributes(); init_traversing(); init_manipulation2(); init_css(); init_forms(); init_extract(); Cheerio = class { /** * Instance of cheerio. Methods are specified in the modules. Usage of this * constructor is not recommended. Please use `$.load` instead. * * @private * @param elements - The new selection. * @param root - Sets the root node. * @param options - Options for the instance. */ constructor(elements, root2, options) { this.length = 0; this.options = options; this._root = root2; if (elements) { for (let idx = 0; idx < elements.length; idx++) { this[idx] = elements[idx]; } this.length = elements.length; } } }; Cheerio.prototype.cheerio = "[cheerio object]"; Cheerio.prototype.splice = Array.prototype.splice; Cheerio.prototype[Symbol.iterator] = Array.prototype[Symbol.iterator]; Object.assign(Cheerio.prototype, attributes_exports, traversing_exports, manipulation_exports, css_exports, forms_exports, extract_exports); } }); // node_modules/cheerio/dist/esm/load.js function getLoad(parse8, render3) { return function load2(content, options, isDocument2 = true) { if (content == null) { throw new Error("cheerio.load() expects a string"); } const internalOpts = flattenOptions(options); const initialRoot = parse8(content, internalOpts, isDocument2, null); class LoadedCheerio extends Cheerio { _make(selector, context) { const cheerio = initialize(selector, context); cheerio.prevObject = this; return cheerio; } _parse(content2, options2, isDocument3, context) { return parse8(content2, options2, isDocument3, context); } _render(dom) { return render3(dom, this.options); } } function initialize(selector, context, root2 = initialRoot, opts) { if (selector && isCheerio(selector)) return selector; const options2 = flattenOptions(opts, internalOpts); const r = typeof root2 === "string" ? [parse8(root2, options2, false, null)] : "length" in root2 ? root2 : [root2]; const rootInstance = isCheerio(r) ? r : new LoadedCheerio(r, null, options2); rootInstance._root = rootInstance; if (!selector) { return new LoadedCheerio(void 0, rootInstance, options2); } const elements = typeof selector === "string" && isHtml(selector) ? ( // $(<html>) parse8(selector, options2, false, null).children ) : isNode(selector) ? ( // $(dom) [selector] ) : Array.isArray(selector) ? ( // $([dom]) selector ) : void 0; const instance = new LoadedCheerio(elements, rootInstance, options2); if (elements) { return instance; } if (typeof selector !== "string") { throw new TypeError("Unexpected type of selector"); } let search = selector; const searchContext = context ? ( // If we don't have a context, maybe we have a root, from loading typeof context === "string" ? isHtml(context) ? ( // $('li', '<ul>...</ul>') new LoadedCheerio([parse8(context, options2, false, null)], rootInstance, options2) ) : ( // $('li', 'ul') (search = `${context} ${search}`, rootInstance) ) : isCheerio(context) ? ( // $('li', $) context ) : ( // $('li', node), $('li', [nodes]) new LoadedCheerio(Array.isArray(context) ? context : [context], rootInstance, options2) ) ) : rootInstance; if (!searchContext) return instance; return searchContext.find(search); } Object.assign(initialize, static_exports, { load: load2, // `_root` and `_options` are used in static methods. _root: initialRoot, _options: internalOpts, // Add `fn` for plugins fn: LoadedCheerio.prototype, // Add the prototype here to maintain `instanceof` behavior. prototype: LoadedCheerio.prototype }); return initialize; }; } function isNode(obj) { return !!obj.name || obj.type === "root" || obj.type === "text" || obj.type === "comment"; } var init_load = __esm({ "node_modules/cheerio/dist/esm/load.js"() { init_options(); init_static(); init_cheerio(); init_utils3(); } }); // node_modules/parse5/dist/common/unicode.js function isSurrogate(cp) { return cp >= 55296 && cp <= 57343; } function isSurrogatePair(cp) { return cp >= 56320 && cp <= 57343; } function getSurrogatePairCodePoint(cp1, cp2) { return (cp1 - 55296) * 1024 + 9216 + cp2; } function isControlCodePoint(cp) { return cp !== 32 && cp !== 10 && cp !== 13 && cp !== 9 && cp !== 12 && cp >= 1 && cp <= 31 || cp >= 127 && cp <= 159; } function isUndefinedCodePoint(cp) { return cp >= 64976 && cp <= 65007 || UNDEFINED_CODE_POINTS.has(cp); } var UNDEFINED_CODE_POINTS, REPLACEMENT_CHARACTER, CODE_POINTS, SEQUENCES; var init_unicode = __esm({ "node_modules/parse5/dist/common/unicode.js"() { UNDEFINED_CODE_POINTS = /* @__PURE__ */ new Set([ 65534, 65535, 131070, 131071, 196606, 196607, 262142, 262143, 327678, 327679, 393214, 393215, 458750, 458751, 524286, 524287, 589822, 589823, 655358, 655359, 720894, 720895, 786430, 786431, 851966, 851967, 917502, 917503, 983038, 983039, 1048574, 1048575, 1114110, 1114111 ]); REPLACEMENT_CHARACTER = "\uFFFD"; (function(CODE_POINTS2) { CODE_POINTS2[CODE_POINTS2["EOF"] = -1] = "EOF"; CODE_POINTS2[CODE_POINTS2["NULL"] = 0] = "NULL"; CODE_POINTS2[CODE_POINTS2["TABULATION"] = 9] = "TABULATION"; CODE_POINTS2[CODE_POINTS2["CARRIAGE_RETURN"] = 13] = "CARRIAGE_RETURN"; CODE_POINTS2[CODE_POINTS2["LINE_FEED"] = 10] = "LINE_FEED"; CODE_POINTS2[CODE_POINTS2["FORM_FEED"] = 12] = "FORM_FEED"; CODE_POINTS2[CODE_POINTS2["SPACE"] = 32] = "SPACE"; CODE_POINTS2[CODE_POINTS2["EXCLAMATION_MARK"] = 33] = "EXCLAMATION_MARK"; CODE_POINTS2[CODE_POINTS2["QUOTATION_MARK"] = 34] = "QUOTATION_MARK"; CODE_POINTS2[CODE_POINTS2["AMPERSAND"] = 38] = "AMPERSAND"; CODE_POINTS2[CODE_POINTS2["APOSTROPHE"] = 39] = "APOSTROPHE"; CODE_POINTS2[CODE_POINTS2["HYPHEN_MINUS"] = 45] = "HYPHEN_MINUS"; CODE_POINTS2[CODE_POINTS2["SOLIDUS"] = 47] = "SOLIDUS"; CODE_POINTS2[CODE_POINTS2["DIGIT_0"] = 48] = "DIGIT_0"; CODE_POINTS2[CODE_POINTS2["DIGIT_9"] = 57] = "DIGIT_9"; CODE_POINTS2[CODE_POINTS2["SEMICOLON"] = 59] = "SEMICOLON"; CODE_POINTS2[CODE_POINTS2["LESS_THAN_SIGN"] = 60] = "LESS_THAN_SIGN"; CODE_POINTS2[CODE_POINTS2["EQUALS_SIGN"] = 61] = "EQUALS_SIGN"; CODE_POINTS2[CODE_POINTS2["GREATER_THAN_SIGN"] = 62] = "GREATER_THAN_SIGN"; CODE_POINTS2[CODE_POINTS2["QUESTION_MARK"] = 63] = "QUESTION_MARK"; CODE_POINTS2[CODE_POINTS2["LATIN_CAPITAL_A"] = 65] = "LATIN_CAPITAL_A"; CODE_POINTS2[CODE_POINTS2["LATIN_CAPITAL_Z"] = 90] = "LATIN_CAPITAL_Z"; CODE_POINTS2[CODE_POINTS2["RIGHT_SQUARE_BRACKET"] = 93] = "RIGHT_SQUARE_BRACKET"; CODE_POINTS2[CODE_POINTS2["GRAVE_ACCENT"] = 96] = "GRAVE_ACCENT"; CODE_POINTS2[CODE_POINTS2["LATIN_SMALL_A"] = 97] = "LATIN_SMALL_A"; CODE_POINTS2[CODE_POINTS2["LATIN_SMALL_Z"] = 122] = "LATIN_SMALL_Z"; })(CODE_POINTS || (CODE_POINTS = {})); SEQUENCES = { DASH_DASH: "--", CDATA_START: "[CDATA[", DOCTYPE: "doctype", SCRIPT: "script", PUBLIC: "public", SYSTEM: "system" }; } }); // node_modules/parse5/dist/common/error-codes.js var ERR; var init_error_codes = __esm({ "node_modules/parse5/dist/common/error-codes.js"() { (function(ERR2) { ERR2["controlCharacterInInputStream"] = "control-character-in-input-stream"; ERR2["noncharacterInInputStream"] = "noncharacter-in-input-stream"; ERR2["surrogateInInputStream"] = "surrogate-in-input-stream"; ERR2["nonVoidHtmlElementStartTagWithTrailingSolidus"] = "non-void-html-element-start-tag-with-trailing-solidus"; ERR2["endTagWithAttributes"] = "end-tag-with-attributes"; ERR2["endTagWithTrailingSolidus"] = "end-tag-with-trailing-solidus"; ERR2["unexpectedSolidusInTag"] = "unexpected-solidus-in-tag"; ERR2["unexpectedNullCharacter"] = "unexpected-null-character"; ERR2["unexpectedQuestionMarkInsteadOfTagName"] = "unexpected-question-mark-instead-of-tag-name"; ERR2["invalidFirstCharacterOfTagName"] = "invalid-first-character-of-tag-name"; ERR2["unexpectedEqualsSignBeforeAttributeName"] = "unexpected-equals-sign-before-attribute-name"; ERR2["missingEndTagName"] = "missing-end-tag-name"; ERR2["unexpectedCharacterInAttributeName"] = "unexpected-character-in-attribute-name"; ERR2["unknownNamedCharacterReference"] = "unknown-named-character-reference"; ERR2["missingSemicolonAfterCharacterReference"] = "missing-semicolon-after-character-reference"; ERR2["unexpectedCharacterAfterDoctypeSystemIdentifier"] = "unexpected-character-after-doctype-system-identifier"; ERR2["unexpectedCharacterInUnquotedAttributeValue"] = "unexpected-character-in-unquoted-attribute-value"; ERR2["eofBeforeTagName"] = "eof-before-tag-name"; ERR2["eofInTag"] = "eof-in-tag"; ERR2["missingAttributeValue"] = "missing-attribute-value"; ERR2["missingWhitespaceBetweenAttributes"] = "missing-whitespace-between-attributes"; ERR2["missingWhitespaceAfterDoctypePublicKeyword"] = "missing-whitespace-after-doctype-public-keyword"; ERR2["missingWhitespaceBetweenDoctypePublicAndSystemIdentifiers"] = "missing-whitespace-between-doctype-public-and-system-identifiers"; ERR2["missingWhitespaceAfterDoctypeSystemKeyword"] = "missing-whitespace-after-doctype-system-keyword"; ERR2["missingQuoteBeforeDoctypePublicIdentifier"] = "missing-quote-before-doctype-public-identifier"; ERR2["missingQuoteBeforeDoctypeSystemIdentifier"] = "missing-quote-before-doctype-system-identifier"; ERR2["missingDoctypePublicIdentifier"] = "missing-doctype-public-identifier"; ERR2["missingDoctypeSystemIdentifier"] = "missing-doctype-system-identifier"; ERR2["abruptDoctypePublicIdentifier"] = "abrupt-doctype-public-identifier"; ERR2["abruptDoctypeSystemIdentifier"] = "abrupt-doctype-system-identifier"; ERR2["cdataInHtmlContent"] = "cdata-in-html-content"; ERR2["incorrectlyOpenedComment"] = "incorrectly-opened-comment"; ERR2["eofInScriptHtmlCommentLikeText"] = "eof-in-script-html-comment-like-text"; ERR2["eofInDoctype"] = "eof-in-doctype"; ERR2["nestedComment"] = "nested-comment"; ERR2["abruptClosingOfEmptyComment"] = "abrupt-closing-of-empty-comment"; ERR2["eofInComment"] = "eof-in-comment"; ERR2["incorrectlyClosedComment"] = "incorrectly-closed-comment"; ERR2["eofInCdata"] = "eof-in-cdata"; ERR2["absenceOfDigitsInNumericCharacterReference"] = "absence-of-digits-in-numeric-character-reference"; ERR2["nullCharacterReference"] = "null-character-reference"; ERR2["surrogateCharacterReference"] = "surrogate-character-reference"; ERR2["characterReferenceOutsideUnicodeRange"] = "character-reference-outside-unicode-range"; ERR2["controlCharacterReference"] = "control-character-reference"; ERR2["noncharacterCharacterReference"] = "noncharacter-character-reference"; ERR2["missingWhitespaceBeforeDoctypeName"] = "missing-whitespace-before-doctype-name"; ERR2["missingDoctypeName"] = "missing-doctype-name"; ERR2["invalidCharacterSequenceAfterDoctypeName"] = "invalid-character-sequence-after-doctype-name"; ERR2["duplicateAttribute"] = "duplicate-attribute"; ERR2["nonConformingDoctype"] = "non-conforming-doctype"; ERR2["missingDoctype"] = "missing-doctype"; ERR2["misplacedDoctype"] = "misplaced-doctype"; ERR2["endTagWithoutMatchingOpenElement"] = "end-tag-without-matching-open-element"; ERR2["closingOfElementWithOpenChildElements"] = "closing-of-element-with-open-child-elements"; ERR2["disallowedContentInNoscriptInHead"] = "disallowed-content-in-noscript-in-head"; ERR2["openElementsLeftAfterEof"] = "open-elements-left-after-eof"; ERR2["abandonedHeadElementChild"] = "abandoned-head-element-child"; ERR2["misplacedStartTagForHeadElement"] = "misplaced-start-tag-for-head-element"; ERR2["nestedNoscriptInHead"] = "nested-noscript-in-head"; ERR2["eofInElementThatCanContainOnlyText"] = "eof-in-element-that-can-contain-only-text"; })(ERR || (ERR = {})); } }); // node_modules/parse5/dist/tokenizer/preprocessor.js var DEFAULT_BUFFER_WATERLINE, Preprocessor; var init_preprocessor = __esm({ "node_modules/parse5/dist/tokenizer/preprocessor.js"() { init_unicode(); init_error_codes(); DEFAULT_BUFFER_WATERLINE = 1 << 16; Preprocessor = class { constructor(handler) { this.handler = handler; this.html = ""; this.pos = -1; this.lastGapPos = -2; this.gapStack = []; this.skipNextNewLine = false; this.lastChunkWritten = false; this.endOfChunkHit = false; this.bufferWaterline = DEFAULT_BUFFER_WATERLINE; this.isEol = false; this.lineStartPos = 0; this.droppedBufferSize = 0; this.line = 1; this.lastErrOffset = -1; } /** The column on the current line. If we just saw a gap (eg. a surrogate pair), return the index before. */ get col() { return this.pos - this.lineStartPos + Number(this.lastGapPos !== this.pos); } get offset() { return this.droppedBufferSize + this.pos; } getError(code, cpOffset) { const { line, col, offset } = this; const startCol = col + cpOffset; const startOffset = offset + cpOffset; return { code, startLine: line, endLine: line, startCol, endCol: startCol, startOffset, endOffset: startOffset }; } _err(code) { if (this.handler.onParseError && this.lastErrOffset !== this.offset) { this.lastErrOffset = this.offset; this.handler.onParseError(this.getError(code, 0)); } } _addGap() { this.gapStack.push(this.lastGapPos); this.lastGapPos = this.pos; } _processSurrogate(cp) { if (this.pos !== this.html.length - 1) { const nextCp = this.html.charCodeAt(this.pos + 1); if (isSurrogatePair(nextCp)) { this.pos++; this._addGap(); return getSurrogatePairCodePoint(cp, nextCp); } } else if (!this.lastChunkWritten) { this.endOfChunkHit = true; return CODE_POINTS.EOF; } this._err(ERR.surrogateInInputStream); return cp; } willDropParsedChunk() { return this.pos > this.bufferWaterline; } dropParsedChunk() { if (this.willDropParsedChunk()) { this.html = this.html.substring(this.pos); this.lineStartPos -= this.pos; this.droppedBufferSize += this.pos; this.pos = 0; this.lastGapPos = -2; this.gapStack.length = 0; } } write(chunk, isLastChunk) { if (this.html.length > 0) { this.html += chunk; } else { this.html = chunk; } this.endOfChunkHit = false; this.lastChunkWritten = isLastChunk; } insertHtmlAtCurrentPos(chunk) { this.html = this.html.substring(0, this.pos + 1) + chunk + this.html.substring(this.pos + 1); this.endOfChunkHit = false; } startsWith(pattern, caseSensitive) { if (this.pos + pattern.length > this.html.length) { this.endOfChunkHit = !this.lastChunkWritten; return false; } if (caseSensitive) { return this.html.startsWith(pattern, this.pos); } for (let i = 0; i < pattern.length; i++) { const cp = this.html.charCodeAt(this.pos + i) | 32; if (cp !== pattern.charCodeAt(i)) { return false; } } return true; } peek(offset) { const pos = this.pos + offset; if (pos >= this.html.length) { this.endOfChunkHit = !this.lastChunkWritten; return CODE_POINTS.EOF; } const code = this.html.charCodeAt(pos); return code === CODE_POINTS.CARRIAGE_RETURN ? CODE_POINTS.LINE_FEED : code; } advance() { this.pos++; if (this.isEol) { this.isEol = false; this.line++; this.lineStartPos = this.pos; } if (this.pos >= this.html.length) { this.endOfChunkHit = !this.lastChunkWritten; return CODE_POINTS.EOF; } let cp = this.html.charCodeAt(this.pos); if (cp === CODE_POINTS.CARRIAGE_RETURN) { this.isEol = true; this.skipNextNewLine = true; return CODE_POINTS.LINE_FEED; } if (cp === CODE_POINTS.LINE_FEED) { this.isEol = true; if (this.skipNextNewLine) { this.line--; this.skipNextNewLine = false; this._addGap(); return this.advance(); } } this.skipNextNewLine = false; if (isSurrogate(cp)) { cp = this._processSurrogate(cp); } const isCommonValidRange = this.handler.onParseError === null || cp > 31 && cp < 127 || cp === CODE_POINTS.LINE_FEED || cp === CODE_POINTS.CARRIAGE_RETURN || cp > 159 && cp < 64976; if (!isCommonValidRange) { this._checkForProblematicCharacters(cp); } return cp; } _checkForProblematicCharacters(cp) { if (isControlCodePoint(cp)) { this._err(ERR.controlCharacterInInputStream); } else if (isUndefinedCodePoint(cp)) { this._err(ERR.noncharacterInInputStream); } } retreat(count) { this.pos -= count; while (this.pos < this.lastGapPos) { this.lastGapPos = this.gapStack.pop(); this.pos--; } this.isEol = false; } }; } }); // node_modules/parse5/dist/common/token.js function getTokenAttr(token, attrName) { for (let i = token.attrs.length - 1; i >= 0; i--) { if (token.attrs[i].name === attrName) { return token.attrs[i].value; } } return null; } var TokenType; var init_token = __esm({ "node_modules/parse5/dist/common/token.js"() { (function(TokenType2) { TokenType2[TokenType2["CHARACTER"] = 0] = "CHARACTER"; TokenType2[TokenType2["NULL_CHARACTER"] = 1] = "NULL_CHARACTER"; TokenType2[TokenType2["WHITESPACE_CHARACTER"] = 2] = "WHITESPACE_CHARACTER"; TokenType2[TokenType2["START_TAG"] = 3] = "START_TAG"; TokenType2[TokenType2["END_TAG"] = 4] = "END_TAG"; TokenType2[TokenType2["COMMENT"] = 5] = "COMMENT"; TokenType2[TokenType2["DOCTYPE"] = 6] = "DOCTYPE"; TokenType2[TokenType2["EOF"] = 7] = "EOF"; TokenType2[TokenType2["HIBERNATION"] = 8] = "HIBERNATION"; })(TokenType || (TokenType = {})); } }); // node_modules/parse5/dist/common/html.js var html_exports = {}; __export(html_exports, { ATTRS: () => ATTRS, DOCUMENT_MODE: () => DOCUMENT_MODE, NS: () => NS, NUMBERED_HEADERS: () => NUMBERED_HEADERS, SPECIAL_ELEMENTS: () => SPECIAL_ELEMENTS, TAG_ID: () => TAG_ID, TAG_NAMES: () => TAG_NAMES, getTagID: () => getTagID, hasUnescapedText: () => hasUnescapedText }); function getTagID(tagName) { var _a2; return (_a2 = TAG_NAME_TO_ID.get(tagName)) !== null && _a2 !== void 0 ? _a2 : TAG_ID.UNKNOWN; } function hasUnescapedText(tn, scriptingEnabled) { return UNESCAPED_TEXT.has(tn) || scriptingEnabled && tn === TAG_NAMES.NOSCRIPT; } var NS, ATTRS, DOCUMENT_MODE, TAG_NAMES, TAG_ID, TAG_NAME_TO_ID, $, SPECIAL_ELEMENTS, NUMBERED_HEADERS, UNESCAPED_TEXT; var init_html = __esm({ "node_modules/parse5/dist/common/html.js"() { (function(NS2) { NS2["HTML"] = "http://www.w3.org/1999/xhtml"; NS2["MATHML"] = "http://www.w3.org/1998/Math/MathML"; NS2["SVG"] = "http://www.w3.org/2000/svg"; NS2["XLINK"] = "http://www.w3.org/1999/xlink"; NS2["XML"] = "http://www.w3.org/XML/1998/namespace"; NS2["XMLNS"] = "http://www.w3.org/2000/xmlns/"; })(NS || (NS = {})); (function(ATTRS2) { ATTRS2["TYPE"] = "type"; ATTRS2["ACTION"] = "action"; ATTRS2["ENCODING"] = "encoding"; ATTRS2["PROMPT"] = "prompt"; ATTRS2["NAME"] = "name"; ATTRS2["COLOR"] = "color"; ATTRS2["FACE"] = "face"; ATTRS2["SIZE"] = "size"; })(ATTRS || (ATTRS = {})); (function(DOCUMENT_MODE2) { DOCUMENT_MODE2["NO_QUIRKS"] = "no-quirks"; DOCUMENT_MODE2["QUIRKS"] = "quirks"; DOCUMENT_MODE2["LIMITED_QUIRKS"] = "limited-quirks"; })(DOCUMENT_MODE || (DOCUMENT_MODE = {})); (function(TAG_NAMES2) { TAG_NAMES2["A"] = "a"; TAG_NAMES2["ADDRESS"] = "address"; TAG_NAMES2["ANNOTATION_XML"] = "annotation-xml"; TAG_NAMES2["APPLET"] = "applet"; TAG_NAMES2["AREA"] = "area"; TAG_NAMES2["ARTICLE"] = "article"; TAG_NAMES2["ASIDE"] = "aside"; TAG_NAMES2["B"] = "b"; TAG_NAMES2["BASE"] = "base"; TAG_NAMES2["BASEFONT"] = "basefont"; TAG_NAMES2["BGSOUND"] = "bgsound"; TAG_NAMES2["BIG"] = "big"; TAG_NAMES2["BLOCKQUOTE"] = "blockquote"; TAG_NAMES2["BODY"] = "body"; TAG_NAMES2["BR"] = "br"; TAG_NAMES2["BUTTON"] = "button"; TAG_NAMES2["CAPTION"] = "caption"; TAG_NAMES2["CENTER"] = "center"; TAG_NAMES2["CODE"] = "code"; TAG_NAMES2["COL"] = "col"; TAG_NAMES2["COLGROUP"] = "colgroup"; TAG_NAMES2["DD"] = "dd"; TAG_NAMES2["DESC"] = "desc"; TAG_NAMES2["DETAILS"] = "details"; TAG_NAMES2["DIALOG"] = "dialog"; TAG_NAMES2["DIR"] = "dir"; TAG_NAMES2["DIV"] = "div"; TAG_NAMES2["DL"] = "dl"; TAG_NAMES2["DT"] = "dt"; TAG_NAMES2["EM"] = "em"; TAG_NAMES2["EMBED"] = "embed"; TAG_NAMES2["FIELDSET"] = "fieldset"; TAG_NAMES2["FIGCAPTION"] = "figcaption"; TAG_NAMES2["FIGURE"] = "figure"; TAG_NAMES2["FONT"] = "font"; TAG_NAMES2["FOOTER"] = "footer"; TAG_NAMES2["FOREIGN_OBJECT"] = "foreignObject"; TAG_NAMES2["FORM"] = "form"; TAG_NAMES2["FRAME"] = "frame"; TAG_NAMES2["FRAMESET"] = "frameset"; TAG_NAMES2["H1"] = "h1"; TAG_NAMES2["H2"] = "h2"; TAG_NAMES2["H3"] = "h3"; TAG_NAMES2["H4"] = "h4"; TAG_NAMES2["H5"] = "h5"; TAG_NAMES2["H6"] = "h6"; TAG_NAMES2["HEAD"] = "head"; TAG_NAMES2["HEADER"] = "header"; TAG_NAMES2["HGROUP"] = "hgroup"; TAG_NAMES2["HR"] = "hr"; TAG_NAMES2["HTML"] = "html"; TAG_NAMES2["I"] = "i"; TAG_NAMES2["IMG"] = "img"; TAG_NAMES2["IMAGE"] = "image"; TAG_NAMES2["INPUT"] = "input"; TAG_NAMES2["IFRAME"] = "iframe"; TAG_NAMES2["KEYGEN"] = "keygen"; TAG_NAMES2["LABEL"] = "label"; TAG_NAMES2["LI"] = "li"; TAG_NAMES2["LINK"] = "link"; TAG_NAMES2["LISTING"] = "listing"; TAG_NAMES2["MAIN"] = "main"; TAG_NAMES2["MALIGNMARK"] = "malignmark"; TAG_NAMES2["MARQUEE"] = "marquee"; TAG_NAMES2["MATH"] = "math"; TAG_NAMES2["MENU"] = "menu"; TAG_NAMES2["META"] = "meta"; TAG_NAMES2["MGLYPH"] = "mglyph"; TAG_NAMES2["MI"] = "mi"; TAG_NAMES2["MO"] = "mo"; TAG_NAMES2["MN"] = "mn"; TAG_NAMES2["MS"] = "ms"; TAG_NAMES2["MTEXT"] = "mtext"; TAG_NAMES2["NAV"] = "nav"; TAG_NAMES2["NOBR"] = "nobr"; TAG_NAMES2["NOFRAMES"] = "noframes"; TAG_NAMES2["NOEMBED"] = "noembed"; TAG_NAMES2["NOSCRIPT"] = "noscript"; TAG_NAMES2["OBJECT"] = "object"; TAG_NAMES2["OL"] = "ol"; TAG_NAMES2["OPTGROUP"] = "optgroup"; TAG_NAMES2["OPTION"] = "option"; TAG_NAMES2["P"] = "p"; TAG_NAMES2["PARAM"] = "param"; TAG_NAMES2["PLAINTEXT"] = "plaintext"; TAG_NAMES2["PRE"] = "pre"; TAG_NAMES2["RB"] = "rb"; TAG_NAMES2["RP"] = "rp"; TAG_NAMES2["RT"] = "rt"; TAG_NAMES2["RTC"] = "rtc"; TAG_NAMES2["RUBY"] = "ruby"; TAG_NAMES2["S"] = "s"; TAG_NAMES2["SCRIPT"] = "script"; TAG_NAMES2["SEARCH"] = "search"; TAG_NAMES2["SECTION"] = "section"; TAG_NAMES2["SELECT"] = "select"; TAG_NAMES2["SOURCE"] = "source"; TAG_NAMES2["SMALL"] = "small"; TAG_NAMES2["SPAN"] = "span"; TAG_NAMES2["STRIKE"] = "strike"; TAG_NAMES2["STRONG"] = "strong"; TAG_NAMES2["STYLE"] = "style"; TAG_NAMES2["SUB"] = "sub"; TAG_NAMES2["SUMMARY"] = "summary"; TAG_NAMES2["SUP"] = "sup"; TAG_NAMES2["TABLE"] = "table"; TAG_NAMES2["TBODY"] = "tbody"; TAG_NAMES2["TEMPLATE"] = "template"; TAG_NAMES2["TEXTAREA"] = "textarea"; TAG_NAMES2["TFOOT"] = "tfoot"; TAG_NAMES2["TD"] = "td"; TAG_NAMES2["TH"] = "th"; TAG_NAMES2["THEAD"] = "thead"; TAG_NAMES2["TITLE"] = "title"; TAG_NAMES2["TR"] = "tr"; TAG_NAMES2["TRACK"] = "track"; TAG_NAMES2["TT"] = "tt"; TAG_NAMES2["U"] = "u"; TAG_NAMES2["UL"] = "ul"; TAG_NAMES2["SVG"] = "svg"; TAG_NAMES2["VAR"] = "var"; TAG_NAMES2["WBR"] = "wbr"; TAG_NAMES2["XMP"] = "xmp"; })(TAG_NAMES || (TAG_NAMES = {})); (function(TAG_ID2) { TAG_ID2[TAG_ID2["UNKNOWN"] = 0] = "UNKNOWN"; TAG_ID2[TAG_ID2["A"] = 1] = "A"; TAG_ID2[TAG_ID2["ADDRESS"] = 2] = "ADDRESS"; TAG_ID2[TAG_ID2["ANNOTATION_XML"] = 3] = "ANNOTATION_XML"; TAG_ID2[TAG_ID2["APPLET"] = 4] = "APPLET"; TAG_ID2[TAG_ID2["AREA"] = 5] = "AREA"; TAG_ID2[TAG_ID2["ARTICLE"] = 6] = "ARTICLE"; TAG_ID2[TAG_ID2["ASIDE"] = 7] = "ASIDE"; TAG_ID2[TAG_ID2["B"] = 8] = "B"; TAG_ID2[TAG_ID2["BASE"] = 9] = "BASE"; TAG_ID2[TAG_ID2["BASEFONT"] = 10] = "BASEFONT"; TAG_ID2[TAG_ID2["BGSOUND"] = 11] = "BGSOUND"; TAG_ID2[TAG_ID2["BIG"] = 12] = "BIG"; TAG_ID2[TAG_ID2["BLOCKQUOTE"] = 13] = "BLOCKQUOTE"; TAG_ID2[TAG_ID2["BODY"] = 14] = "BODY"; TAG_ID2[TAG_ID2["BR"] = 15] = "BR"; TAG_ID2[TAG_ID2["BUTTON"] = 16] = "BUTTON"; TAG_ID2[TAG_ID2["CAPTION"] = 17] = "CAPTION"; TAG_ID2[TAG_ID2["CENTER"] = 18] = "CENTER"; TAG_ID2[TAG_ID2["CODE"] = 19] = "CODE"; TAG_ID2[TAG_ID2["COL"] = 20] = "COL"; TAG_ID2[TAG_ID2["COLGROUP"] = 21] = "COLGROUP"; TAG_ID2[TAG_ID2["DD"] = 22] = "DD"; TAG_ID2[TAG_ID2["DESC"] = 23] = "DESC"; TAG_ID2[TAG_ID2["DETAILS"] = 24] = "DETAILS"; TAG_ID2[TAG_ID2["DIALOG"] = 25] = "DIALOG"; TAG_ID2[TAG_ID2["DIR"] = 26] = "DIR"; TAG_ID2[TAG_ID2["DIV"] = 27] = "DIV"; TAG_ID2[TAG_ID2["DL"] = 28] = "DL"; TAG_ID2[TAG_ID2["DT"] = 29] = "DT"; TAG_ID2[TAG_ID2["EM"] = 30] = "EM"; TAG_ID2[TAG_ID2["EMBED"] = 31] = "EMBED"; TAG_ID2[TAG_ID2["FIELDSET"] = 32] = "FIELDSET"; TAG_ID2[TAG_ID2["FIGCAPTION"] = 33] = "FIGCAPTION"; TAG_ID2[TAG_ID2["FIGURE"] = 34] = "FIGURE"; TAG_ID2[TAG_ID2["FONT"] = 35] = "FONT"; TAG_ID2[TAG_ID2["FOOTER"] = 36] = "FOOTER"; TAG_ID2[TAG_ID2["FOREIGN_OBJECT"] = 37] = "FOREIGN_OBJECT"; TAG_ID2[TAG_ID2["FORM"] = 38] = "FORM"; TAG_ID2[TAG_ID2["FRAME"] = 39] = "FRAME"; TAG_ID2[TAG_ID2["FRAMESET"] = 40] = "FRAMESET"; TAG_ID2[TAG_ID2["H1"] = 41] = "H1"; TAG_ID2[TAG_ID2["H2"] = 42] = "H2"; TAG_ID2[TAG_ID2["H3"] = 43] = "H3"; TAG_ID2[TAG_ID2["H4"] = 44] = "H4"; TAG_ID2[TAG_ID2["H5"] = 45] = "H5"; TAG_ID2[TAG_ID2["H6"] = 46] = "H6"; TAG_ID2[TAG_ID2["HEAD"] = 47] = "HEAD"; TAG_ID2[TAG_ID2["HEADER"] = 48] = "HEADER"; TAG_ID2[TAG_ID2["HGROUP"] = 49] = "HGROUP"; TAG_ID2[TAG_ID2["HR"] = 50] = "HR"; TAG_ID2[TAG_ID2["HTML"] = 51] = "HTML"; TAG_ID2[TAG_ID2["I"] = 52] = "I"; TAG_ID2[TAG_ID2["IMG"] = 53] = "IMG"; TAG_ID2[TAG_ID2["IMAGE"] = 54] = "IMAGE"; TAG_ID2[TAG_ID2["INPUT"] = 55] = "INPUT"; TAG_ID2[TAG_ID2["IFRAME"] = 56] = "IFRAME"; TAG_ID2[TAG_ID2["KEYGEN"] = 57] = "KEYGEN"; TAG_ID2[TAG_ID2["LABEL"] = 58] = "LABEL"; TAG_ID2[TAG_ID2["LI"] = 59] = "LI"; TAG_ID2[TAG_ID2["LINK"] = 60] = "LINK"; TAG_ID2[TAG_ID2["LISTING"] = 61] = "LISTING"; TAG_ID2[TAG_ID2["MAIN"] = 62] = "MAIN"; TAG_ID2[TAG_ID2["MALIGNMARK"] = 63] = "MALIGNMARK"; TAG_ID2[TAG_ID2["MARQUEE"] = 64] = "MARQUEE"; TAG_ID2[TAG_ID2["MATH"] = 65] = "MATH"; TAG_ID2[TAG_ID2["MENU"] = 66] = "MENU"; TAG_ID2[TAG_ID2["META"] = 67] = "META"; TAG_ID2[TAG_ID2["MGLYPH"] = 68] = "MGLYPH"; TAG_ID2[TAG_ID2["MI"] = 69] = "MI"; TAG_ID2[TAG_ID2["MO"] = 70] = "MO"; TAG_ID2[TAG_ID2["MN"] = 71] = "MN"; TAG_ID2[TAG_ID2["MS"] = 72] = "MS"; TAG_ID2[TAG_ID2["MTEXT"] = 73] = "MTEXT"; TAG_ID2[TAG_ID2["NAV"] = 74] = "NAV"; TAG_ID2[TAG_ID2["NOBR"] = 75] = "NOBR"; TAG_ID2[TAG_ID2["NOFRAMES"] = 76] = "NOFRAMES"; TAG_ID2[TAG_ID2["NOEMBED"] = 77] = "NOEMBED"; TAG_ID2[TAG_ID2["NOSCRIPT"] = 78] = "NOSCRIPT"; TAG_ID2[TAG_ID2["OBJECT"] = 79] = "OBJECT"; TAG_ID2[TAG_ID2["OL"] = 80] = "OL"; TAG_ID2[TAG_ID2["OPTGROUP"] = 81] = "OPTGROUP"; TAG_ID2[TAG_ID2["OPTION"] = 82] = "OPTION"; TAG_ID2[TAG_ID2["P"] = 83] = "P"; TAG_ID2[TAG_ID2["PARAM"] = 84] = "PARAM"; TAG_ID2[TAG_ID2["PLAINTEXT"] = 85] = "PLAINTEXT"; TAG_ID2[TAG_ID2["PRE"] = 86] = "PRE"; TAG_ID2[TAG_ID2["RB"] = 87] = "RB"; TAG_ID2[TAG_ID2["RP"] = 88] = "RP"; TAG_ID2[TAG_ID2["RT"] = 89] = "RT"; TAG_ID2[TAG_ID2["RTC"] = 90] = "RTC"; TAG_ID2[TAG_ID2["RUBY"] = 91] = "RUBY"; TAG_ID2[TAG_ID2["S"] = 92] = "S"; TAG_ID2[TAG_ID2["SCRIPT"] = 93] = "SCRIPT"; TAG_ID2[TAG_ID2["SEARCH"] = 94] = "SEARCH"; TAG_ID2[TAG_ID2["SECTION"] = 95] = "SECTION"; TAG_ID2[TAG_ID2["SELECT"] = 96] = "SELECT"; TAG_ID2[TAG_ID2["SOURCE"] = 97] = "SOURCE"; TAG_ID2[TAG_ID2["SMALL"] = 98] = "SMALL"; TAG_ID2[TAG_ID2["SPAN"] = 99] = "SPAN"; TAG_ID2[TAG_ID2["STRIKE"] = 100] = "STRIKE"; TAG_ID2[TAG_ID2["STRONG"] = 101] = "STRONG"; TAG_ID2[TAG_ID2["STYLE"] = 102] = "STYLE"; TAG_ID2[TAG_ID2["SUB"] = 103] = "SUB"; TAG_ID2[TAG_ID2["SUMMARY"] = 104] = "SUMMARY"; TAG_ID2[TAG_ID2["SUP"] = 105] = "SUP"; TAG_ID2[TAG_ID2["TABLE"] = 106] = "TABLE"; TAG_ID2[TAG_ID2["TBODY"] = 107] = "TBODY"; TAG_ID2[TAG_ID2["TEMPLATE"] = 108] = "TEMPLATE"; TAG_ID2[TAG_ID2["TEXTAREA"] = 109] = "TEXTAREA"; TAG_ID2[TAG_ID2["TFOOT"] = 110] = "TFOOT"; TAG_ID2[TAG_ID2["TD"] = 111] = "TD"; TAG_ID2[TAG_ID2["TH"] = 112] = "TH"; TAG_ID2[TAG_ID2["THEAD"] = 113] = "THEAD"; TAG_ID2[TAG_ID2["TITLE"] = 114] = "TITLE"; TAG_ID2[TAG_ID2["TR"] = 115] = "TR"; TAG_ID2[TAG_ID2["TRACK"] = 116] = "TRACK"; TAG_ID2[TAG_ID2["TT"] = 117] = "TT"; TAG_ID2[TAG_ID2["U"] = 118] = "U"; TAG_ID2[TAG_ID2["UL"] = 119] = "UL"; TAG_ID2[TAG_ID2["SVG"] = 120] = "SVG"; TAG_ID2[TAG_ID2["VAR"] = 121] = "VAR"; TAG_ID2[TAG_ID2["WBR"] = 122] = "WBR"; TAG_ID2[TAG_ID2["XMP"] = 123] = "XMP"; })(TAG_ID || (TAG_ID = {})); TAG_NAME_TO_ID = /* @__PURE__ */ new Map([ [TAG_NAMES.A, TAG_ID.A], [TAG_NAMES.ADDRESS, TAG_ID.ADDRESS], [TAG_NAMES.ANNOTATION_XML, TAG_ID.ANNOTATION_XML], [TAG_NAMES.APPLET, TAG_ID.APPLET], [TAG_NAMES.AREA, TAG_ID.AREA], [TAG_NAMES.ARTICLE, TAG_ID.ARTICLE], [TAG_NAMES.ASIDE, TAG_ID.ASIDE], [TAG_NAMES.B, TAG_ID.B], [TAG_NAMES.BASE, TAG_ID.BASE], [TAG_NAMES.BASEFONT, TAG_ID.BASEFONT], [TAG_NAMES.BGSOUND, TAG_ID.BGSOUND], [TAG_NAMES.BIG, TAG_ID.BIG], [TAG_NAMES.BLOCKQUOTE, TAG_ID.BLOCKQUOTE], [TAG_NAMES.BODY, TAG_ID.BODY], [TAG_NAMES.BR, TAG_ID.BR], [TAG_NAMES.BUTTON, TAG_ID.BUTTON], [TAG_NAMES.CAPTION, TAG_ID.CAPTION], [TAG_NAMES.CENTER, TAG_ID.CENTER], [TAG_NAMES.CODE, TAG_ID.CODE], [TAG_NAMES.COL, TAG_ID.COL], [TAG_NAMES.COLGROUP, TAG_ID.COLGROUP], [TAG_NAMES.DD, TAG_ID.DD], [TAG_NAMES.DESC, TAG_ID.DESC], [TAG_NAMES.DETAILS, TAG_ID.DETAILS], [TAG_NAMES.DIALOG, TAG_ID.DIALOG], [TAG_NAMES.DIR, TAG_ID.DIR], [TAG_NAMES.DIV, TAG_ID.DIV], [TAG_NAMES.DL, TAG_ID.DL], [TAG_NAMES.DT, TAG_ID.DT], [TAG_NAMES.EM, TAG_ID.EM], [TAG_NAMES.EMBED, TAG_ID.EMBED], [TAG_NAMES.FIELDSET, TAG_ID.FIELDSET], [TAG_NAMES.FIGCAPTION, TAG_ID.FIGCAPTION], [TAG_NAMES.FIGURE, TAG_ID.FIGURE], [TAG_NAMES.FONT, TAG_ID.FONT], [TAG_NAMES.FOOTER, TAG_ID.FOOTER], [TAG_NAMES.FOREIGN_OBJECT, TAG_ID.FOREIGN_OBJECT], [TAG_NAMES.FORM, TAG_ID.FORM], [TAG_NAMES.FRAME, TAG_ID.FRAME], [TAG_NAMES.FRAMESET, TAG_ID.FRAMESET], [TAG_NAMES.H1, TAG_ID.H1], [TAG_NAMES.H2, TAG_ID.H2], [TAG_NAMES.H3, TAG_ID.H3], [TAG_NAMES.H4, TAG_ID.H4], [TAG_NAMES.H5, TAG_ID.H5], [TAG_NAMES.H6, TAG_ID.H6], [TAG_NAMES.HEAD, TAG_ID.HEAD], [TAG_NAMES.HEADER, TAG_ID.HEADER], [TAG_NAMES.HGROUP, TAG_ID.HGROUP], [TAG_NAMES.HR, TAG_ID.HR], [TAG_NAMES.HTML, TAG_ID.HTML], [TAG_NAMES.I, TAG_ID.I], [TAG_NAMES.IMG, TAG_ID.IMG], [TAG_NAMES.IMAGE, TAG_ID.IMAGE], [TAG_NAMES.INPUT, TAG_ID.INPUT], [TAG_NAMES.IFRAME, TAG_ID.IFRAME], [TAG_NAMES.KEYGEN, TAG_ID.KEYGEN], [TAG_NAMES.LABEL, TAG_ID.LABEL], [TAG_NAMES.LI, TAG_ID.LI], [TAG_NAMES.LINK, TAG_ID.LINK], [TAG_NAMES.LISTING, TAG_ID.LISTING], [TAG_NAMES.MAIN, TAG_ID.MAIN], [TAG_NAMES.MALIGNMARK, TAG_ID.MALIGNMARK], [TAG_NAMES.MARQUEE, TAG_ID.MARQUEE], [TAG_NAMES.MATH, TAG_ID.MATH], [TAG_NAMES.MENU, TAG_ID.MENU], [TAG_NAMES.META, TAG_ID.META], [TAG_NAMES.MGLYPH, TAG_ID.MGLYPH], [TAG_NAMES.MI, TAG_ID.MI], [TAG_NAMES.MO, TAG_ID.MO], [TAG_NAMES.MN, TAG_ID.MN], [TAG_NAMES.MS, TAG_ID.MS], [TAG_NAMES.MTEXT, TAG_ID.MTEXT], [TAG_NAMES.NAV, TAG_ID.NAV], [TAG_NAMES.NOBR, TAG_ID.NOBR], [TAG_NAMES.NOFRAMES, TAG_ID.NOFRAMES], [TAG_NAMES.NOEMBED, TAG_ID.NOEMBED], [TAG_NAMES.NOSCRIPT, TAG_ID.NOSCRIPT], [TAG_NAMES.OBJECT, TAG_ID.OBJECT], [TAG_NAMES.OL, TAG_ID.OL], [TAG_NAMES.OPTGROUP, TAG_ID.OPTGROUP], [TAG_NAMES.OPTION, TAG_ID.OPTION], [TAG_NAMES.P, TAG_ID.P], [TAG_NAMES.PARAM, TAG_ID.PARAM], [TAG_NAMES.PLAINTEXT, TAG_ID.PLAINTEXT], [TAG_NAMES.PRE, TAG_ID.PRE], [TAG_NAMES.RB, TAG_ID.RB], [TAG_NAMES.RP, TAG_ID.RP], [TAG_NAMES.RT, TAG_ID.RT], [TAG_NAMES.RTC, TAG_ID.RTC], [TAG_NAMES.RUBY, TAG_ID.RUBY], [TAG_NAMES.S, TAG_ID.S], [TAG_NAMES.SCRIPT, TAG_ID.SCRIPT], [TAG_NAMES.SEARCH, TAG_ID.SEARCH], [TAG_NAMES.SECTION, TAG_ID.SECTION], [TAG_NAMES.SELECT, TAG_ID.SELECT], [TAG_NAMES.SOURCE, TAG_ID.SOURCE], [TAG_NAMES.SMALL, TAG_ID.SMALL], [TAG_NAMES.SPAN, TAG_ID.SPAN], [TAG_NAMES.STRIKE, TAG_ID.STRIKE], [TAG_NAMES.STRONG, TAG_ID.STRONG], [TAG_NAMES.STYLE, TAG_ID.STYLE], [TAG_NAMES.SUB, TAG_ID.SUB], [TAG_NAMES.SUMMARY, TAG_ID.SUMMARY], [TAG_NAMES.SUP, TAG_ID.SUP], [TAG_NAMES.TABLE, TAG_ID.TABLE], [TAG_NAMES.TBODY, TAG_ID.TBODY], [TAG_NAMES.TEMPLATE, TAG_ID.TEMPLATE], [TAG_NAMES.TEXTAREA, TAG_ID.TEXTAREA], [TAG_NAMES.TFOOT, TAG_ID.TFOOT], [TAG_NAMES.TD, TAG_ID.TD], [TAG_NAMES.TH, TAG_ID.TH], [TAG_NAMES.THEAD, TAG_ID.THEAD], [TAG_NAMES.TITLE, TAG_ID.TITLE], [TAG_NAMES.TR, TAG_ID.TR], [TAG_NAMES.TRACK, TAG_ID.TRACK], [TAG_NAMES.TT, TAG_ID.TT], [TAG_NAMES.U, TAG_ID.U], [TAG_NAMES.UL, TAG_ID.UL], [TAG_NAMES.SVG, TAG_ID.SVG], [TAG_NAMES.VAR, TAG_ID.VAR], [TAG_NAMES.WBR, TAG_ID.WBR], [TAG_NAMES.XMP, TAG_ID.XMP] ]); $ = TAG_ID; SPECIAL_ELEMENTS = { [NS.HTML]: /* @__PURE__ */ new Set([ $.ADDRESS, $.APPLET, $.AREA, $.ARTICLE, $.ASIDE, $.BASE, $.BASEFONT, $.BGSOUND, $.BLOCKQUOTE, $.BODY, $.BR, $.BUTTON, $.CAPTION, $.CENTER, $.COL, $.COLGROUP, $.DD, $.DETAILS, $.DIR, $.DIV, $.DL, $.DT, $.EMBED, $.FIELDSET, $.FIGCAPTION, $.FIGURE, $.FOOTER, $.FORM, $.FRAME, $.FRAMESET, $.H1, $.H2, $.H3, $.H4, $.H5, $.H6, $.HEAD, $.HEADER, $.HGROUP, $.HR, $.HTML, $.IFRAME, $.IMG, $.INPUT, $.LI, $.LINK, $.LISTING, $.MAIN, $.MARQUEE, $.MENU, $.META, $.NAV, $.NOEMBED, $.NOFRAMES, $.NOSCRIPT, $.OBJECT, $.OL, $.P, $.PARAM, $.PLAINTEXT, $.PRE, $.SCRIPT, $.SECTION, $.SELECT, $.SOURCE, $.STYLE, $.SUMMARY, $.TABLE, $.TBODY, $.TD, $.TEMPLATE, $.TEXTAREA, $.TFOOT, $.TH, $.THEAD, $.TITLE, $.TR, $.TRACK, $.UL, $.WBR, $.XMP ]), [NS.MATHML]: /* @__PURE__ */ new Set([$.MI, $.MO, $.MN, $.MS, $.MTEXT, $.ANNOTATION_XML]), [NS.SVG]: /* @__PURE__ */ new Set([$.TITLE, $.FOREIGN_OBJECT, $.DESC]), [NS.XLINK]: /* @__PURE__ */ new Set(), [NS.XML]: /* @__PURE__ */ new Set(), [NS.XMLNS]: /* @__PURE__ */ new Set() }; NUMBERED_HEADERS = /* @__PURE__ */ new Set([$.H1, $.H2, $.H3, $.H4, $.H5, $.H6]); UNESCAPED_TEXT = /* @__PURE__ */ new Set([ TAG_NAMES.STYLE, TAG_NAMES.SCRIPT, TAG_NAMES.XMP, TAG_NAMES.IFRAME, TAG_NAMES.NOEMBED, TAG_NAMES.NOFRAMES, TAG_NAMES.PLAINTEXT ]); } }); // node_modules/parse5/dist/tokenizer/index.js function isAsciiDigit(cp) { return cp >= CODE_POINTS.DIGIT_0 && cp <= CODE_POINTS.DIGIT_9; } function isAsciiUpper(cp) { return cp >= CODE_POINTS.LATIN_CAPITAL_A && cp <= CODE_POINTS.LATIN_CAPITAL_Z; } function isAsciiLower(cp) { return cp >= CODE_POINTS.LATIN_SMALL_A && cp <= CODE_POINTS.LATIN_SMALL_Z; } function isAsciiLetter(cp) { return isAsciiLower(cp) || isAsciiUpper(cp); } function isAsciiAlphaNumeric2(cp) { return isAsciiLetter(cp) || isAsciiDigit(cp); } function toAsciiLower(cp) { return cp + 32; } function isWhitespace(cp) { return cp === CODE_POINTS.SPACE || cp === CODE_POINTS.LINE_FEED || cp === CODE_POINTS.TABULATION || cp === CODE_POINTS.FORM_FEED; } function isScriptDataDoubleEscapeSequenceEnd(cp) { return isWhitespace(cp) || cp === CODE_POINTS.SOLIDUS || cp === CODE_POINTS.GREATER_THAN_SIGN; } function getErrorForNumericCharacterReference(code) { if (code === CODE_POINTS.NULL) { return ERR.nullCharacterReference; } else if (code > 1114111) { return ERR.characterReferenceOutsideUnicodeRange; } else if (isSurrogate(code)) { return ERR.surrogateCharacterReference; } else if (isUndefinedCodePoint(code)) { return ERR.noncharacterCharacterReference; } else if (isControlCodePoint(code) || code === CODE_POINTS.CARRIAGE_RETURN) { return ERR.controlCharacterReference; } return null; } var State, TokenizerMode, Tokenizer; var init_tokenizer = __esm({ "node_modules/parse5/dist/tokenizer/index.js"() { init_preprocessor(); init_unicode(); init_token(); init_decode(); init_error_codes(); init_html(); (function(State4) { State4[State4["DATA"] = 0] = "DATA"; State4[State4["RCDATA"] = 1] = "RCDATA"; State4[State4["RAWTEXT"] = 2] = "RAWTEXT"; State4[State4["SCRIPT_DATA"] = 3] = "SCRIPT_DATA"; State4[State4["PLAINTEXT"] = 4] = "PLAINTEXT"; State4[State4["TAG_OPEN"] = 5] = "TAG_OPEN"; State4[State4["END_TAG_OPEN"] = 6] = "END_TAG_OPEN"; State4[State4["TAG_NAME"] = 7] = "TAG_NAME"; State4[State4["RCDATA_LESS_THAN_SIGN"] = 8] = "RCDATA_LESS_THAN_SIGN"; State4[State4["RCDATA_END_TAG_OPEN"] = 9] = "RCDATA_END_TAG_OPEN"; State4[State4["RCDATA_END_TAG_NAME"] = 10] = "RCDATA_END_TAG_NAME"; State4[State4["RAWTEXT_LESS_THAN_SIGN"] = 11] = "RAWTEXT_LESS_THAN_SIGN"; State4[State4["RAWTEXT_END_TAG_OPEN"] = 12] = "RAWTEXT_END_TAG_OPEN"; State4[State4["RAWTEXT_END_TAG_NAME"] = 13] = "RAWTEXT_END_TAG_NAME"; State4[State4["SCRIPT_DATA_LESS_THAN_SIGN"] = 14] = "SCRIPT_DATA_LESS_THAN_SIGN"; State4[State4["SCRIPT_DATA_END_TAG_OPEN"] = 15] = "SCRIPT_DATA_END_TAG_OPEN"; State4[State4["SCRIPT_DATA_END_TAG_NAME"] = 16] = "SCRIPT_DATA_END_TAG_NAME"; State4[State4["SCRIPT_DATA_ESCAPE_START"] = 17] = "SCRIPT_DATA_ESCAPE_START"; State4[State4["SCRIPT_DATA_ESCAPE_START_DASH"] = 18] = "SCRIPT_DATA_ESCAPE_START_DASH"; State4[State4["SCRIPT_DATA_ESCAPED"] = 19] = "SCRIPT_DATA_ESCAPED"; State4[State4["SCRIPT_DATA_ESCAPED_DASH"] = 20] = "SCRIPT_DATA_ESCAPED_DASH"; State4[State4["SCRIPT_DATA_ESCAPED_DASH_DASH"] = 21] = "SCRIPT_DATA_ESCAPED_DASH_DASH"; State4[State4["SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN"] = 22] = "SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN"; State4[State4["SCRIPT_DATA_ESCAPED_END_TAG_OPEN"] = 23] = "SCRIPT_DATA_ESCAPED_END_TAG_OPEN"; State4[State4["SCRIPT_DATA_ESCAPED_END_TAG_NAME"] = 24] = "SCRIPT_DATA_ESCAPED_END_TAG_NAME"; State4[State4["SCRIPT_DATA_DOUBLE_ESCAPE_START"] = 25] = "SCRIPT_DATA_DOUBLE_ESCAPE_START"; State4[State4["SCRIPT_DATA_DOUBLE_ESCAPED"] = 26] = "SCRIPT_DATA_DOUBLE_ESCAPED"; State4[State4["SCRIPT_DATA_DOUBLE_ESCAPED_DASH"] = 27] = "SCRIPT_DATA_DOUBLE_ESCAPED_DASH"; State4[State4["SCRIPT_DATA_DOUBLE_ESCAPED_DASH_DASH"] = 28] = "SCRIPT_DATA_DOUBLE_ESCAPED_DASH_DASH"; State4[State4["SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN"] = 29] = "SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN"; State4[State4["SCRIPT_DATA_DOUBLE_ESCAPE_END"] = 30] = "SCRIPT_DATA_DOUBLE_ESCAPE_END"; State4[State4["BEFORE_ATTRIBUTE_NAME"] = 31] = "BEFORE_ATTRIBUTE_NAME"; State4[State4["ATTRIBUTE_NAME"] = 32] = "ATTRIBUTE_NAME"; State4[State4["AFTER_ATTRIBUTE_NAME"] = 33] = "AFTER_ATTRIBUTE_NAME"; State4[State4["BEFORE_ATTRIBUTE_VALUE"] = 34] = "BEFORE_ATTRIBUTE_VALUE"; State4[State4["ATTRIBUTE_VALUE_DOUBLE_QUOTED"] = 35] = "ATTRIBUTE_VALUE_DOUBLE_QUOTED"; State4[State4["ATTRIBUTE_VALUE_SINGLE_QUOTED"] = 36] = "ATTRIBUTE_VALUE_SINGLE_QUOTED"; State4[State4["ATTRIBUTE_VALUE_UNQUOTED"] = 37] = "ATTRIBUTE_VALUE_UNQUOTED"; State4[State4["AFTER_ATTRIBUTE_VALUE_QUOTED"] = 38] = "AFTER_ATTRIBUTE_VALUE_QUOTED"; State4[State4["SELF_CLOSING_START_TAG"] = 39] = "SELF_CLOSING_START_TAG"; State4[State4["BOGUS_COMMENT"] = 40] = "BOGUS_COMMENT"; State4[State4["MARKUP_DECLARATION_OPEN"] = 41] = "MARKUP_DECLARATION_OPEN"; State4[State4["COMMENT_START"] = 42] = "COMMENT_START"; State4[State4["COMMENT_START_DASH"] = 43] = "COMMENT_START_DASH"; State4[State4["COMMENT"] = 44] = "COMMENT"; State4[State4["COMMENT_LESS_THAN_SIGN"] = 45] = "COMMENT_LESS_THAN_SIGN"; State4[State4["COMMENT_LESS_THAN_SIGN_BANG"] = 46] = "COMMENT_LESS_THAN_SIGN_BANG"; State4[State4["COMMENT_LESS_THAN_SIGN_BANG_DASH"] = 47] = "COMMENT_LESS_THAN_SIGN_BANG_DASH"; State4[State4["COMMENT_LESS_THAN_SIGN_BANG_DASH_DASH"] = 48] = "COMMENT_LESS_THAN_SIGN_BANG_DASH_DASH"; State4[State4["COMMENT_END_DASH"] = 49] = "COMMENT_END_DASH"; State4[State4["COMMENT_END"] = 50] = "COMMENT_END"; State4[State4["COMMENT_END_BANG"] = 51] = "COMMENT_END_BANG"; State4[State4["DOCTYPE"] = 52] = "DOCTYPE"; State4[State4["BEFORE_DOCTYPE_NAME"] = 53] = "BEFORE_DOCTYPE_NAME"; State4[State4["DOCTYPE_NAME"] = 54] = "DOCTYPE_NAME"; State4[State4["AFTER_DOCTYPE_NAME"] = 55] = "AFTER_DOCTYPE_NAME"; State4[State4["AFTER_DOCTYPE_PUBLIC_KEYWORD"] = 56] = "AFTER_DOCTYPE_PUBLIC_KEYWORD"; State4[State4["BEFORE_DOCTYPE_PUBLIC_IDENTIFIER"] = 57] = "BEFORE_DOCTYPE_PUBLIC_IDENTIFIER"; State4[State4["DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED"] = 58] = "DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED"; State4[State4["DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED"] = 59] = "DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED"; State4[State4["AFTER_DOCTYPE_PUBLIC_IDENTIFIER"] = 60] = "AFTER_DOCTYPE_PUBLIC_IDENTIFIER"; State4[State4["BETWEEN_DOCTYPE_PUBLIC_AND_SYSTEM_IDENTIFIERS"] = 61] = "BETWEEN_DOCTYPE_PUBLIC_AND_SYSTEM_IDENTIFIERS"; State4[State4["AFTER_DOCTYPE_SYSTEM_KEYWORD"] = 62] = "AFTER_DOCTYPE_SYSTEM_KEYWORD"; State4[State4["BEFORE_DOCTYPE_SYSTEM_IDENTIFIER"] = 63] = "BEFORE_DOCTYPE_SYSTEM_IDENTIFIER"; State4[State4["DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED"] = 64] = "DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED"; State4[State4["DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED"] = 65] = "DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED"; State4[State4["AFTER_DOCTYPE_SYSTEM_IDENTIFIER"] = 66] = "AFTER_DOCTYPE_SYSTEM_IDENTIFIER"; State4[State4["BOGUS_DOCTYPE"] = 67] = "BOGUS_DOCTYPE"; State4[State4["CDATA_SECTION"] = 68] = "CDATA_SECTION"; State4[State4["CDATA_SECTION_BRACKET"] = 69] = "CDATA_SECTION_BRACKET"; State4[State4["CDATA_SECTION_END"] = 70] = "CDATA_SECTION_END"; State4[State4["CHARACTER_REFERENCE"] = 71] = "CHARACTER_REFERENCE"; State4[State4["AMBIGUOUS_AMPERSAND"] = 72] = "AMBIGUOUS_AMPERSAND"; })(State || (State = {})); TokenizerMode = { DATA: State.DATA, RCDATA: State.RCDATA, RAWTEXT: State.RAWTEXT, SCRIPT_DATA: State.SCRIPT_DATA, PLAINTEXT: State.PLAINTEXT, CDATA_SECTION: State.CDATA_SECTION }; Tokenizer = class { constructor(options, handler) { this.options = options; this.handler = handler; this.paused = false; this.inLoop = false; this.inForeignNode = false; this.lastStartTagName = ""; this.active = false; this.state = State.DATA; this.returnState = State.DATA; this.entityStartPos = 0; this.consumedAfterSnapshot = -1; this.currentCharacterToken = null; this.currentToken = null; this.currentAttr = { name: "", value: "" }; this.preprocessor = new Preprocessor(handler); this.currentLocation = this.getCurrentLocation(-1); this.entityDecoder = new EntityDecoder(decode_data_html_default, (cp, consumed) => { this.preprocessor.pos = this.entityStartPos + consumed - 1; this._flushCodePointConsumedAsCharacterReference(cp); }, handler.onParseError ? { missingSemicolonAfterCharacterReference: () => { this._err(ERR.missingSemicolonAfterCharacterReference, 1); }, absenceOfDigitsInNumericCharacterReference: (consumed) => { this._err(ERR.absenceOfDigitsInNumericCharacterReference, this.entityStartPos - this.preprocessor.pos + consumed); }, validateNumericCharacterReference: (code) => { const error = getErrorForNumericCharacterReference(code); if (error) this._err(error, 1); } } : void 0); } //Errors _err(code, cpOffset = 0) { var _a2, _b; (_b = (_a2 = this.handler).onParseError) === null || _b === void 0 ? void 0 : _b.call(_a2, this.preprocessor.getError(code, cpOffset)); } // NOTE: `offset` may never run across line boundaries. getCurrentLocation(offset) { if (!this.options.sourceCodeLocationInfo) { return null; } return { startLine: this.preprocessor.line, startCol: this.preprocessor.col - offset, startOffset: this.preprocessor.offset - offset, endLine: -1, endCol: -1, endOffset: -1 }; } _runParsingLoop() { if (this.inLoop) return; this.inLoop = true; while (this.active && !this.paused) { this.consumedAfterSnapshot = 0; const cp = this._consume(); if (!this._ensureHibernation()) { this._callState(cp); } } this.inLoop = false; } //API pause() { this.paused = true; } resume(writeCallback) { if (!this.paused) { throw new Error("Parser was already resumed"); } this.paused = false; if (this.inLoop) return; this._runParsingLoop(); if (!this.paused) { writeCallback === null || writeCallback === void 0 ? void 0 : writeCallback(); } } write(chunk, isLastChunk, writeCallback) { this.active = true; this.preprocessor.write(chunk, isLastChunk); this._runParsingLoop(); if (!this.paused) { writeCallback === null || writeCallback === void 0 ? void 0 : writeCallback(); } } insertHtmlAtCurrentPos(chunk) { this.active = true; this.preprocessor.insertHtmlAtCurrentPos(chunk); this._runParsingLoop(); } //Hibernation _ensureHibernation() { if (this.preprocessor.endOfChunkHit) { this.preprocessor.retreat(this.consumedAfterSnapshot); this.consumedAfterSnapshot = 0; this.active = false; return true; } return false; } //Consumption _consume() { this.consumedAfterSnapshot++; return this.preprocessor.advance(); } _advanceBy(count) { this.consumedAfterSnapshot += count; for (let i = 0; i < count; i++) { this.preprocessor.advance(); } } _consumeSequenceIfMatch(pattern, caseSensitive) { if (this.preprocessor.startsWith(pattern, caseSensitive)) { this._advanceBy(pattern.length - 1); return true; } return false; } //Token creation _createStartTagToken() { this.currentToken = { type: TokenType.START_TAG, tagName: "", tagID: TAG_ID.UNKNOWN, selfClosing: false, ackSelfClosing: false, attrs: [], location: this.getCurrentLocation(1) }; } _createEndTagToken() { this.currentToken = { type: TokenType.END_TAG, tagName: "", tagID: TAG_ID.UNKNOWN, selfClosing: false, ackSelfClosing: false, attrs: [], location: this.getCurrentLocation(2) }; } _createCommentToken(offset) { this.currentToken = { type: TokenType.COMMENT, data: "", location: this.getCurrentLocation(offset) }; } _createDoctypeToken(initialName) { this.currentToken = { type: TokenType.DOCTYPE, name: initialName, forceQuirks: false, publicId: null, systemId: null, location: this.currentLocation }; } _createCharacterToken(type, chars) { this.currentCharacterToken = { type, chars, location: this.currentLocation }; } //Tag attributes _createAttr(attrNameFirstCh) { this.currentAttr = { name: attrNameFirstCh, value: "" }; this.currentLocation = this.getCurrentLocation(0); } _leaveAttrName() { var _a2; var _b; const token = this.currentToken; if (getTokenAttr(token, this.currentAttr.name) === null) { token.attrs.push(this.currentAttr); if (token.location && this.currentLocation) { const attrLocations = (_a2 = (_b = token.location).attrs) !== null && _a2 !== void 0 ? _a2 : _b.attrs = /* @__PURE__ */ Object.create(null); attrLocations[this.currentAttr.name] = this.currentLocation; this._leaveAttrValue(); } } else { this._err(ERR.duplicateAttribute); } } _leaveAttrValue() { if (this.currentLocation) { this.currentLocation.endLine = this.preprocessor.line; this.currentLocation.endCol = this.preprocessor.col; this.currentLocation.endOffset = this.preprocessor.offset; } } //Token emission prepareToken(ct) { this._emitCurrentCharacterToken(ct.location); this.currentToken = null; if (ct.location) { ct.location.endLine = this.preprocessor.line; ct.location.endCol = this.preprocessor.col + 1; ct.location.endOffset = this.preprocessor.offset + 1; } this.currentLocation = this.getCurrentLocation(-1); } emitCurrentTagToken() { const ct = this.currentToken; this.prepareToken(ct); ct.tagID = getTagID(ct.tagName); if (ct.type === TokenType.START_TAG) { this.lastStartTagName = ct.tagName; this.handler.onStartTag(ct); } else { if (ct.attrs.length > 0) { this._err(ERR.endTagWithAttributes); } if (ct.selfClosing) { this._err(ERR.endTagWithTrailingSolidus); } this.handler.onEndTag(ct); } this.preprocessor.dropParsedChunk(); } emitCurrentComment(ct) { this.prepareToken(ct); this.handler.onComment(ct); this.preprocessor.dropParsedChunk(); } emitCurrentDoctype(ct) { this.prepareToken(ct); this.handler.onDoctype(ct); this.preprocessor.dropParsedChunk(); } _emitCurrentCharacterToken(nextLocation) { if (this.currentCharacterToken) { if (nextLocation && this.currentCharacterToken.location) { this.currentCharacterToken.location.endLine = nextLocation.startLine; this.currentCharacterToken.location.endCol = nextLocation.startCol; this.currentCharacterToken.location.endOffset = nextLocation.startOffset; } switch (this.currentCharacterToken.type) { case TokenType.CHARACTER: { this.handler.onCharacter(this.currentCharacterToken); break; } case TokenType.NULL_CHARACTER: { this.handler.onNullCharacter(this.currentCharacterToken); break; } case TokenType.WHITESPACE_CHARACTER: { this.handler.onWhitespaceCharacter(this.currentCharacterToken); break; } } this.currentCharacterToken = null; } } _emitEOFToken() { const location = this.getCurrentLocation(0); if (location) { location.endLine = location.startLine; location.endCol = location.startCol; location.endOffset = location.startOffset; } this._emitCurrentCharacterToken(location); this.handler.onEof({ type: TokenType.EOF, location }); this.active = false; } //Characters emission //OPTIMIZATION: The specification uses only one type of character token (one token per character). //This causes a huge memory overhead and a lot of unnecessary parser loops. parse5 uses 3 groups of characters. //If we have a sequence of characters that belong to the same group, the parser can process it //as a single solid character token. //So, there are 3 types of character tokens in parse5: //1)TokenType.NULL_CHARACTER - \u0000-character sequences (e.g. '\u0000\u0000\u0000') //2)TokenType.WHITESPACE_CHARACTER - any whitespace/new-line character sequences (e.g. '\n \r\t \f') //3)TokenType.CHARACTER - any character sequence which don't belong to groups 1 and 2 (e.g. 'abcdef1234@@#$%^') _appendCharToCurrentCharacterToken(type, ch) { if (this.currentCharacterToken) { if (this.currentCharacterToken.type === type) { this.currentCharacterToken.chars += ch; return; } else { this.currentLocation = this.getCurrentLocation(0); this._emitCurrentCharacterToken(this.currentLocation); this.preprocessor.dropParsedChunk(); } } this._createCharacterToken(type, ch); } _emitCodePoint(cp) { const type = isWhitespace(cp) ? TokenType.WHITESPACE_CHARACTER : cp === CODE_POINTS.NULL ? TokenType.NULL_CHARACTER : TokenType.CHARACTER; this._appendCharToCurrentCharacterToken(type, String.fromCodePoint(cp)); } //NOTE: used when we emit characters explicitly. //This is always for non-whitespace and non-null characters, which allows us to avoid additional checks. _emitChars(ch) { this._appendCharToCurrentCharacterToken(TokenType.CHARACTER, ch); } // Character reference helpers _startCharacterReference() { this.returnState = this.state; this.state = State.CHARACTER_REFERENCE; this.entityStartPos = this.preprocessor.pos; this.entityDecoder.startEntity(this._isCharacterReferenceInAttribute() ? DecodingMode.Attribute : DecodingMode.Legacy); } _isCharacterReferenceInAttribute() { return this.returnState === State.ATTRIBUTE_VALUE_DOUBLE_QUOTED || this.returnState === State.ATTRIBUTE_VALUE_SINGLE_QUOTED || this.returnState === State.ATTRIBUTE_VALUE_UNQUOTED; } _flushCodePointConsumedAsCharacterReference(cp) { if (this._isCharacterReferenceInAttribute()) { this.currentAttr.value += String.fromCodePoint(cp); } else { this._emitCodePoint(cp); } } // Calling states this way turns out to be much faster than any other approach. _callState(cp) { switch (this.state) { case State.DATA: { this._stateData(cp); break; } case State.RCDATA: { this._stateRcdata(cp); break; } case State.RAWTEXT: { this._stateRawtext(cp); break; } case State.SCRIPT_DATA: { this._stateScriptData(cp); break; } case State.PLAINTEXT: { this._statePlaintext(cp); break; } case State.TAG_OPEN: { this._stateTagOpen(cp); break; } case State.END_TAG_OPEN: { this._stateEndTagOpen(cp); break; } case State.TAG_NAME: { this._stateTagName(cp); break; } case State.RCDATA_LESS_THAN_SIGN: { this._stateRcdataLessThanSign(cp); break; } case State.RCDATA_END_TAG_OPEN: { this._stateRcdataEndTagOpen(cp); break; } case State.RCDATA_END_TAG_NAME: { this._stateRcdataEndTagName(cp); break; } case State.RAWTEXT_LESS_THAN_SIGN: { this._stateRawtextLessThanSign(cp); break; } case State.RAWTEXT_END_TAG_OPEN: { this._stateRawtextEndTagOpen(cp); break; } case State.RAWTEXT_END_TAG_NAME: { this._stateRawtextEndTagName(cp); break; } case State.SCRIPT_DATA_LESS_THAN_SIGN: { this._stateScriptDataLessThanSign(cp); break; } case State.SCRIPT_DATA_END_TAG_OPEN: { this._stateScriptDataEndTagOpen(cp); break; } case State.SCRIPT_DATA_END_TAG_NAME: { this._stateScriptDataEndTagName(cp); break; } case State.SCRIPT_DATA_ESCAPE_START: { this._stateScriptDataEscapeStart(cp); break; } case State.SCRIPT_DATA_ESCAPE_START_DASH: { this._stateScriptDataEscapeStartDash(cp); break; } case State.SCRIPT_DATA_ESCAPED: { this._stateScriptDataEscaped(cp); break; } case State.SCRIPT_DATA_ESCAPED_DASH: { this._stateScriptDataEscapedDash(cp); break; } case State.SCRIPT_DATA_ESCAPED_DASH_DASH: { this._stateScriptDataEscapedDashDash(cp); break; } case State.SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN: { this._stateScriptDataEscapedLessThanSign(cp); break; } case State.SCRIPT_DATA_ESCAPED_END_TAG_OPEN: { this._stateScriptDataEscapedEndTagOpen(cp); break; } case State.SCRIPT_DATA_ESCAPED_END_TAG_NAME: { this._stateScriptDataEscapedEndTagName(cp); break; } case State.SCRIPT_DATA_DOUBLE_ESCAPE_START: { this._stateScriptDataDoubleEscapeStart(cp); break; } case State.SCRIPT_DATA_DOUBLE_ESCAPED: { this._stateScriptDataDoubleEscaped(cp); break; } case State.SCRIPT_DATA_DOUBLE_ESCAPED_DASH: { this._stateScriptDataDoubleEscapedDash(cp); break; } case State.SCRIPT_DATA_DOUBLE_ESCAPED_DASH_DASH: { this._stateScriptDataDoubleEscapedDashDash(cp); break; } case State.SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN: { this._stateScriptDataDoubleEscapedLessThanSign(cp); break; } case State.SCRIPT_DATA_DOUBLE_ESCAPE_END: { this._stateScriptDataDoubleEscapeEnd(cp); break; } case State.BEFORE_ATTRIBUTE_NAME: { this._stateBeforeAttributeName(cp); break; } case State.ATTRIBUTE_NAME: { this._stateAttributeName(cp); break; } case State.AFTER_ATTRIBUTE_NAME: { this._stateAfterAttributeName(cp); break; } case State.BEFORE_ATTRIBUTE_VALUE: { this._stateBeforeAttributeValue(cp); break; } case State.ATTRIBUTE_VALUE_DOUBLE_QUOTED: { this._stateAttributeValueDoubleQuoted(cp); break; } case State.ATTRIBUTE_VALUE_SINGLE_QUOTED: { this._stateAttributeValueSingleQuoted(cp); break; } case State.ATTRIBUTE_VALUE_UNQUOTED: { this._stateAttributeValueUnquoted(cp); break; } case State.AFTER_ATTRIBUTE_VALUE_QUOTED: { this._stateAfterAttributeValueQuoted(cp); break; } case State.SELF_CLOSING_START_TAG: { this._stateSelfClosingStartTag(cp); break; } case State.BOGUS_COMMENT: { this._stateBogusComment(cp); break; } case State.MARKUP_DECLARATION_OPEN: { this._stateMarkupDeclarationOpen(cp); break; } case State.COMMENT_START: { this._stateCommentStart(cp); break; } case State.COMMENT_START_DASH: { this._stateCommentStartDash(cp); break; } case State.COMMENT: { this._stateComment(cp); break; } case State.COMMENT_LESS_THAN_SIGN: { this._stateCommentLessThanSign(cp); break; } case State.COMMENT_LESS_THAN_SIGN_BANG: { this._stateCommentLessThanSignBang(cp); break; } case State.COMMENT_LESS_THAN_SIGN_BANG_DASH: { this._stateCommentLessThanSignBangDash(cp); break; } case State.COMMENT_LESS_THAN_SIGN_BANG_DASH_DASH: { this._stateCommentLessThanSignBangDashDash(cp); break; } case State.COMMENT_END_DASH: { this._stateCommentEndDash(cp); break; } case State.COMMENT_END: { this._stateCommentEnd(cp); break; } case State.COMMENT_END_BANG: { this._stateCommentEndBang(cp); break; } case State.DOCTYPE: { this._stateDoctype(cp); break; } case State.BEFORE_DOCTYPE_NAME: { this._stateBeforeDoctypeName(cp); break; } case State.DOCTYPE_NAME: { this._stateDoctypeName(cp); break; } case State.AFTER_DOCTYPE_NAME: { this._stateAfterDoctypeName(cp); break; } case State.AFTER_DOCTYPE_PUBLIC_KEYWORD: { this._stateAfterDoctypePublicKeyword(cp); break; } case State.BEFORE_DOCTYPE_PUBLIC_IDENTIFIER: { this._stateBeforeDoctypePublicIdentifier(cp); break; } case State.DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED: { this._stateDoctypePublicIdentifierDoubleQuoted(cp); break; } case State.DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED: { this._stateDoctypePublicIdentifierSingleQuoted(cp); break; } case State.AFTER_DOCTYPE_PUBLIC_IDENTIFIER: { this._stateAfterDoctypePublicIdentifier(cp); break; } case State.BETWEEN_DOCTYPE_PUBLIC_AND_SYSTEM_IDENTIFIERS: { this._stateBetweenDoctypePublicAndSystemIdentifiers(cp); break; } case State.AFTER_DOCTYPE_SYSTEM_KEYWORD: { this._stateAfterDoctypeSystemKeyword(cp); break; } case State.BEFORE_DOCTYPE_SYSTEM_IDENTIFIER: { this._stateBeforeDoctypeSystemIdentifier(cp); break; } case State.DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED: { this._stateDoctypeSystemIdentifierDoubleQuoted(cp); break; } case State.DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED: { this._stateDoctypeSystemIdentifierSingleQuoted(cp); break; } case State.AFTER_DOCTYPE_SYSTEM_IDENTIFIER: { this._stateAfterDoctypeSystemIdentifier(cp); break; } case State.BOGUS_DOCTYPE: { this._stateBogusDoctype(cp); break; } case State.CDATA_SECTION: { this._stateCdataSection(cp); break; } case State.CDATA_SECTION_BRACKET: { this._stateCdataSectionBracket(cp); break; } case State.CDATA_SECTION_END: { this._stateCdataSectionEnd(cp); break; } case State.CHARACTER_REFERENCE: { this._stateCharacterReference(); break; } case State.AMBIGUOUS_AMPERSAND: { this._stateAmbiguousAmpersand(cp); break; } default: { throw new Error("Unknown state"); } } } // State machine // Data state //------------------------------------------------------------------ _stateData(cp) { switch (cp) { case CODE_POINTS.LESS_THAN_SIGN: { this.state = State.TAG_OPEN; break; } case CODE_POINTS.AMPERSAND: { this._startCharacterReference(); break; } case CODE_POINTS.NULL: { this._err(ERR.unexpectedNullCharacter); this._emitCodePoint(cp); break; } case CODE_POINTS.EOF: { this._emitEOFToken(); break; } default: { this._emitCodePoint(cp); } } } // RCDATA state //------------------------------------------------------------------ _stateRcdata(cp) { switch (cp) { case CODE_POINTS.AMPERSAND: { this._startCharacterReference(); break; } case CODE_POINTS.LESS_THAN_SIGN: { this.state = State.RCDATA_LESS_THAN_SIGN; break; } case CODE_POINTS.NULL: { this._err(ERR.unexpectedNullCharacter); this._emitChars(REPLACEMENT_CHARACTER); break; } case CODE_POINTS.EOF: { this._emitEOFToken(); break; } default: { this._emitCodePoint(cp); } } } // RAWTEXT state //------------------------------------------------------------------ _stateRawtext(cp) { switch (cp) { case CODE_POINTS.LESS_THAN_SIGN: { this.state = State.RAWTEXT_LESS_THAN_SIGN; break; } case CODE_POINTS.NULL: { this._err(ERR.unexpectedNullCharacter); this._emitChars(REPLACEMENT_CHARACTER); break; } case CODE_POINTS.EOF: { this._emitEOFToken(); break; } default: { this._emitCodePoint(cp); } } } // Script data state //------------------------------------------------------------------ _stateScriptData(cp) { switch (cp) { case CODE_POINTS.LESS_THAN_SIGN: { this.state = State.SCRIPT_DATA_LESS_THAN_SIGN; break; } case CODE_POINTS.NULL: { this._err(ERR.unexpectedNullCharacter); this._emitChars(REPLACEMENT_CHARACTER); break; } case CODE_POINTS.EOF: { this._emitEOFToken(); break; } default: { this._emitCodePoint(cp); } } } // PLAINTEXT state //------------------------------------------------------------------ _statePlaintext(cp) { switch (cp) { case CODE_POINTS.NULL: { this._err(ERR.unexpectedNullCharacter); this._emitChars(REPLACEMENT_CHARACTER); break; } case CODE_POINTS.EOF: { this._emitEOFToken(); break; } default: { this._emitCodePoint(cp); } } } // Tag open state //------------------------------------------------------------------ _stateTagOpen(cp) { if (isAsciiLetter(cp)) { this._createStartTagToken(); this.state = State.TAG_NAME; this._stateTagName(cp); } else switch (cp) { case CODE_POINTS.EXCLAMATION_MARK: { this.state = State.MARKUP_DECLARATION_OPEN; break; } case CODE_POINTS.SOLIDUS: { this.state = State.END_TAG_OPEN; break; } case CODE_POINTS.QUESTION_MARK: { this._err(ERR.unexpectedQuestionMarkInsteadOfTagName); this._createCommentToken(1); this.state = State.BOGUS_COMMENT; this._stateBogusComment(cp); break; } case CODE_POINTS.EOF: { this._err(ERR.eofBeforeTagName); this._emitChars("<"); this._emitEOFToken(); break; } default: { this._err(ERR.invalidFirstCharacterOfTagName); this._emitChars("<"); this.state = State.DATA; this._stateData(cp); } } } // End tag open state //------------------------------------------------------------------ _stateEndTagOpen(cp) { if (isAsciiLetter(cp)) { this._createEndTagToken(); this.state = State.TAG_NAME; this._stateTagName(cp); } else switch (cp) { case CODE_POINTS.GREATER_THAN_SIGN: { this._err(ERR.missingEndTagName); this.state = State.DATA; break; } case CODE_POINTS.EOF: { this._err(ERR.eofBeforeTagName); this._emitChars("</"); this._emitEOFToken(); break; } default: { this._err(ERR.invalidFirstCharacterOfTagName); this._createCommentToken(2); this.state = State.BOGUS_COMMENT; this._stateBogusComment(cp); } } } // Tag name state //------------------------------------------------------------------ _stateTagName(cp) { const token = this.currentToken; switch (cp) { case CODE_POINTS.SPACE: case CODE_POINTS.LINE_FEED: case CODE_POINTS.TABULATION: case CODE_POINTS.FORM_FEED: { this.state = State.BEFORE_ATTRIBUTE_NAME; break; } case CODE_POINTS.SOLIDUS: { this.state = State.SELF_CLOSING_START_TAG; break; } case CODE_POINTS.GREATER_THAN_SIGN: { this.state = State.DATA; this.emitCurrentTagToken(); break; } case CODE_POINTS.NULL: { this._err(ERR.unexpectedNullCharacter); token.tagName += REPLACEMENT_CHARACTER; break; } case CODE_POINTS.EOF: { this._err(ERR.eofInTag); this._emitEOFToken(); break; } default: { token.tagName += String.fromCodePoint(isAsciiUpper(cp) ? toAsciiLower(cp) : cp); } } } // RCDATA less-than sign state //------------------------------------------------------------------ _stateRcdataLessThanSign(cp) { if (cp === CODE_POINTS.SOLIDUS) { this.state = State.RCDATA_END_TAG_OPEN; } else { this._emitChars("<"); this.state = State.RCDATA; this._stateRcdata(cp); } } // RCDATA end tag open state //------------------------------------------------------------------ _stateRcdataEndTagOpen(cp) { if (isAsciiLetter(cp)) { this.state = State.RCDATA_END_TAG_NAME; this._stateRcdataEndTagName(cp); } else { this._emitChars("</"); this.state = State.RCDATA; this._stateRcdata(cp); } } handleSpecialEndTag(_cp) { if (!this.preprocessor.startsWith(this.lastStartTagName, false)) { return !this._ensureHibernation(); } this._createEndTagToken(); const token = this.currentToken; token.tagName = this.lastStartTagName; const cp = this.preprocessor.peek(this.lastStartTagName.length); switch (cp) { case CODE_POINTS.SPACE: case CODE_POINTS.LINE_FEED: case CODE_POINTS.TABULATION: case CODE_POINTS.FORM_FEED: { this._advanceBy(this.lastStartTagName.length); this.state = State.BEFORE_ATTRIBUTE_NAME; return false; } case CODE_POINTS.SOLIDUS: { this._advanceBy(this.lastStartTagName.length); this.state = State.SELF_CLOSING_START_TAG; return false; } case CODE_POINTS.GREATER_THAN_SIGN: { this._advanceBy(this.lastStartTagName.length); this.emitCurrentTagToken(); this.state = State.DATA; return false; } default: { return !this._ensureHibernation(); } } } // RCDATA end tag name state //------------------------------------------------------------------ _stateRcdataEndTagName(cp) { if (this.handleSpecialEndTag(cp)) { this._emitChars("</"); this.state = State.RCDATA; this._stateRcdata(cp); } } // RAWTEXT less-than sign state //------------------------------------------------------------------ _stateRawtextLessThanSign(cp) { if (cp === CODE_POINTS.SOLIDUS) { this.state = State.RAWTEXT_END_TAG_OPEN; } else { this._emitChars("<"); this.state = State.RAWTEXT; this._stateRawtext(cp); } } // RAWTEXT end tag open state //------------------------------------------------------------------ _stateRawtextEndTagOpen(cp) { if (isAsciiLetter(cp)) { this.state = State.RAWTEXT_END_TAG_NAME; this._stateRawtextEndTagName(cp); } else { this._emitChars("</"); this.state = State.RAWTEXT; this._stateRawtext(cp); } } // RAWTEXT end tag name state //------------------------------------------------------------------ _stateRawtextEndTagName(cp) { if (this.handleSpecialEndTag(cp)) { this._emitChars("</"); this.state = State.RAWTEXT; this._stateRawtext(cp); } } // Script data less-than sign state //------------------------------------------------------------------ _stateScriptDataLessThanSign(cp) { switch (cp) { case CODE_POINTS.SOLIDUS: { this.state = State.SCRIPT_DATA_END_TAG_OPEN; break; } case CODE_POINTS.EXCLAMATION_MARK: { this.state = State.SCRIPT_DATA_ESCAPE_START; this._emitChars("<!"); break; } default: { this._emitChars("<"); this.state = State.SCRIPT_DATA; this._stateScriptData(cp); } } } // Script data end tag open state //------------------------------------------------------------------ _stateScriptDataEndTagOpen(cp) { if (isAsciiLetter(cp)) { this.state = State.SCRIPT_DATA_END_TAG_NAME; this._stateScriptDataEndTagName(cp); } else { this._emitChars("</"); this.state = State.SCRIPT_DATA; this._stateScriptData(cp); } } // Script data end tag name state //------------------------------------------------------------------ _stateScriptDataEndTagName(cp) { if (this.handleSpecialEndTag(cp)) { this._emitChars("</"); this.state = State.SCRIPT_DATA; this._stateScriptData(cp); } } // Script data escape start state //------------------------------------------------------------------ _stateScriptDataEscapeStart(cp) { if (cp === CODE_POINTS.HYPHEN_MINUS) { this.state = State.SCRIPT_DATA_ESCAPE_START_DASH; this._emitChars("-"); } else { this.state = State.SCRIPT_DATA; this._stateScriptData(cp); } } // Script data escape start dash state //------------------------------------------------------------------ _stateScriptDataEscapeStartDash(cp) { if (cp === CODE_POINTS.HYPHEN_MINUS) { this.state = State.SCRIPT_DATA_ESCAPED_DASH_DASH; this._emitChars("-"); } else { this.state = State.SCRIPT_DATA; this._stateScriptData(cp); } } // Script data escaped state //------------------------------------------------------------------ _stateScriptDataEscaped(cp) { switch (cp) { case CODE_POINTS.HYPHEN_MINUS: { this.state = State.SCRIPT_DATA_ESCAPED_DASH; this._emitChars("-"); break; } case CODE_POINTS.LESS_THAN_SIGN: { this.state = State.SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN; break; } case CODE_POINTS.NULL: { this._err(ERR.unexpectedNullCharacter); this._emitChars(REPLACEMENT_CHARACTER); break; } case CODE_POINTS.EOF: { this._err(ERR.eofInScriptHtmlCommentLikeText); this._emitEOFToken(); break; } default: { this._emitCodePoint(cp); } } } // Script data escaped dash state //------------------------------------------------------------------ _stateScriptDataEscapedDash(cp) { switch (cp) { case CODE_POINTS.HYPHEN_MINUS: { this.state = State.SCRIPT_DATA_ESCAPED_DASH_DASH; this._emitChars("-"); break; } case CODE_POINTS.LESS_THAN_SIGN: { this.state = State.SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN; break; } case CODE_POINTS.NULL: { this._err(ERR.unexpectedNullCharacter); this.state = State.SCRIPT_DATA_ESCAPED; this._emitChars(REPLACEMENT_CHARACTER); break; } case CODE_POINTS.EOF: { this._err(ERR.eofInScriptHtmlCommentLikeText); this._emitEOFToken(); break; } default: { this.state = State.SCRIPT_DATA_ESCAPED; this._emitCodePoint(cp); } } } // Script data escaped dash dash state //------------------------------------------------------------------ _stateScriptDataEscapedDashDash(cp) { switch (cp) { case CODE_POINTS.HYPHEN_MINUS: { this._emitChars("-"); break; } case CODE_POINTS.LESS_THAN_SIGN: { this.state = State.SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN; break; } case CODE_POINTS.GREATER_THAN_SIGN: { this.state = State.SCRIPT_DATA; this._emitChars(">"); break; } case CODE_POINTS.NULL: { this._err(ERR.unexpectedNullCharacter); this.state = State.SCRIPT_DATA_ESCAPED; this._emitChars(REPLACEMENT_CHARACTER); break; } case CODE_POINTS.EOF: { this._err(ERR.eofInScriptHtmlCommentLikeText); this._emitEOFToken(); break; } default: { this.state = State.SCRIPT_DATA_ESCAPED; this._emitCodePoint(cp); } } } // Script data escaped less-than sign state //------------------------------------------------------------------ _stateScriptDataEscapedLessThanSign(cp) { if (cp === CODE_POINTS.SOLIDUS) { this.state = State.SCRIPT_DATA_ESCAPED_END_TAG_OPEN; } else if (isAsciiLetter(cp)) { this._emitChars("<"); this.state = State.SCRIPT_DATA_DOUBLE_ESCAPE_START; this._stateScriptDataDoubleEscapeStart(cp); } else { this._emitChars("<"); this.state = State.SCRIPT_DATA_ESCAPED; this._stateScriptDataEscaped(cp); } } // Script data escaped end tag open state //------------------------------------------------------------------ _stateScriptDataEscapedEndTagOpen(cp) { if (isAsciiLetter(cp)) { this.state = State.SCRIPT_DATA_ESCAPED_END_TAG_NAME; this._stateScriptDataEscapedEndTagName(cp); } else { this._emitChars("</"); this.state = State.SCRIPT_DATA_ESCAPED; this._stateScriptDataEscaped(cp); } } // Script data escaped end tag name state //------------------------------------------------------------------ _stateScriptDataEscapedEndTagName(cp) { if (this.handleSpecialEndTag(cp)) { this._emitChars("</"); this.state = State.SCRIPT_DATA_ESCAPED; this._stateScriptDataEscaped(cp); } } // Script data double escape start state //------------------------------------------------------------------ _stateScriptDataDoubleEscapeStart(cp) { if (this.preprocessor.startsWith(SEQUENCES.SCRIPT, false) && isScriptDataDoubleEscapeSequenceEnd(this.preprocessor.peek(SEQUENCES.SCRIPT.length))) { this._emitCodePoint(cp); for (let i = 0; i < SEQUENCES.SCRIPT.length; i++) { this._emitCodePoint(this._consume()); } this.state = State.SCRIPT_DATA_DOUBLE_ESCAPED; } else if (!this._ensureHibernation()) { this.state = State.SCRIPT_DATA_ESCAPED; this._stateScriptDataEscaped(cp); } } // Script data double escaped state //------------------------------------------------------------------ _stateScriptDataDoubleEscaped(cp) { switch (cp) { case CODE_POINTS.HYPHEN_MINUS: { this.state = State.SCRIPT_DATA_DOUBLE_ESCAPED_DASH; this._emitChars("-"); break; } case CODE_POINTS.LESS_THAN_SIGN: { this.state = State.SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN; this._emitChars("<"); break; } case CODE_POINTS.NULL: { this._err(ERR.unexpectedNullCharacter); this._emitChars(REPLACEMENT_CHARACTER); break; } case CODE_POINTS.EOF: { this._err(ERR.eofInScriptHtmlCommentLikeText); this._emitEOFToken(); break; } default: { this._emitCodePoint(cp); } } } // Script data double escaped dash state //------------------------------------------------------------------ _stateScriptDataDoubleEscapedDash(cp) { switch (cp) { case CODE_POINTS.HYPHEN_MINUS: { this.state = State.SCRIPT_DATA_DOUBLE_ESCAPED_DASH_DASH; this._emitChars("-"); break; } case CODE_POINTS.LESS_THAN_SIGN: { this.state = State.SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN; this._emitChars("<"); break; } case CODE_POINTS.NULL: { this._err(ERR.unexpectedNullCharacter); this.state = State.SCRIPT_DATA_DOUBLE_ESCAPED; this._emitChars(REPLACEMENT_CHARACTER); break; } case CODE_POINTS.EOF: { this._err(ERR.eofInScriptHtmlCommentLikeText); this._emitEOFToken(); break; } default: { this.state = State.SCRIPT_DATA_DOUBLE_ESCAPED; this._emitCodePoint(cp); } } } // Script data double escaped dash dash state //------------------------------------------------------------------ _stateScriptDataDoubleEscapedDashDash(cp) { switch (cp) { case CODE_POINTS.HYPHEN_MINUS: { this._emitChars("-"); break; } case CODE_POINTS.LESS_THAN_SIGN: { this.state = State.SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN; this._emitChars("<"); break; } case CODE_POINTS.GREATER_THAN_SIGN: { this.state = State.SCRIPT_DATA; this._emitChars(">"); break; } case CODE_POINTS.NULL: { this._err(ERR.unexpectedNullCharacter); this.state = State.SCRIPT_DATA_DOUBLE_ESCAPED; this._emitChars(REPLACEMENT_CHARACTER); break; } case CODE_POINTS.EOF: { this._err(ERR.eofInScriptHtmlCommentLikeText); this._emitEOFToken(); break; } default: { this.state = State.SCRIPT_DATA_DOUBLE_ESCAPED; this._emitCodePoint(cp); } } } // Script data double escaped less-than sign state //------------------------------------------------------------------ _stateScriptDataDoubleEscapedLessThanSign(cp) { if (cp === CODE_POINTS.SOLIDUS) { this.state = State.SCRIPT_DATA_DOUBLE_ESCAPE_END; this._emitChars("/"); } else { this.state = State.SCRIPT_DATA_DOUBLE_ESCAPED; this._stateScriptDataDoubleEscaped(cp); } } // Script data double escape end state //------------------------------------------------------------------ _stateScriptDataDoubleEscapeEnd(cp) { if (this.preprocessor.startsWith(SEQUENCES.SCRIPT, false) && isScriptDataDoubleEscapeSequenceEnd(this.preprocessor.peek(SEQUENCES.SCRIPT.length))) { this._emitCodePoint(cp); for (let i = 0; i < SEQUENCES.SCRIPT.length; i++) { this._emitCodePoint(this._consume()); } this.state = State.SCRIPT_DATA_ESCAPED; } else if (!this._ensureHibernation()) { this.state = State.SCRIPT_DATA_DOUBLE_ESCAPED; this._stateScriptDataDoubleEscaped(cp); } } // Before attribute name state //------------------------------------------------------------------ _stateBeforeAttributeName(cp) { switch (cp) { case CODE_POINTS.SPACE: case CODE_POINTS.LINE_FEED: case CODE_POINTS.TABULATION: case CODE_POINTS.FORM_FEED: { break; } case CODE_POINTS.SOLIDUS: case CODE_POINTS.GREATER_THAN_SIGN: case CODE_POINTS.EOF: { this.state = State.AFTER_ATTRIBUTE_NAME; this._stateAfterAttributeName(cp); break; } case CODE_POINTS.EQUALS_SIGN: { this._err(ERR.unexpectedEqualsSignBeforeAttributeName); this._createAttr("="); this.state = State.ATTRIBUTE_NAME; break; } default: { this._createAttr(""); this.state = State.ATTRIBUTE_NAME; this._stateAttributeName(cp); } } } // Attribute name state //------------------------------------------------------------------ _stateAttributeName(cp) { switch (cp) { case CODE_POINTS.SPACE: case CODE_POINTS.LINE_FEED: case CODE_POINTS.TABULATION: case CODE_POINTS.FORM_FEED: case CODE_POINTS.SOLIDUS: case CODE_POINTS.GREATER_THAN_SIGN: case CODE_POINTS.EOF: { this._leaveAttrName(); this.state = State.AFTER_ATTRIBUTE_NAME; this._stateAfterAttributeName(cp); break; } case CODE_POINTS.EQUALS_SIGN: { this._leaveAttrName(); this.state = State.BEFORE_ATTRIBUTE_VALUE; break; } case CODE_POINTS.QUOTATION_MARK: case CODE_POINTS.APOSTROPHE: case CODE_POINTS.LESS_THAN_SIGN: { this._err(ERR.unexpectedCharacterInAttributeName); this.currentAttr.name += String.fromCodePoint(cp); break; } case CODE_POINTS.NULL: { this._err(ERR.unexpectedNullCharacter); this.currentAttr.name += REPLACEMENT_CHARACTER; break; } default: { this.currentAttr.name += String.fromCodePoint(isAsciiUpper(cp) ? toAsciiLower(cp) : cp); } } } // After attribute name state //------------------------------------------------------------------ _stateAfterAttributeName(cp) { switch (cp) { case CODE_POINTS.SPACE: case CODE_POINTS.LINE_FEED: case CODE_POINTS.TABULATION: case CODE_POINTS.FORM_FEED: { break; } case CODE_POINTS.SOLIDUS: { this.state = State.SELF_CLOSING_START_TAG; break; } case CODE_POINTS.EQUALS_SIGN: { this.state = State.BEFORE_ATTRIBUTE_VALUE; break; } case CODE_POINTS.GREATER_THAN_SIGN: { this.state = State.DATA; this.emitCurrentTagToken(); break; } case CODE_POINTS.EOF: { this._err(ERR.eofInTag); this._emitEOFToken(); break; } default: { this._createAttr(""); this.state = State.ATTRIBUTE_NAME; this._stateAttributeName(cp); } } } // Before attribute value state //------------------------------------------------------------------ _stateBeforeAttributeValue(cp) { switch (cp) { case CODE_POINTS.SPACE: case CODE_POINTS.LINE_FEED: case CODE_POINTS.TABULATION: case CODE_POINTS.FORM_FEED: { break; } case CODE_POINTS.QUOTATION_MARK: { this.state = State.ATTRIBUTE_VALUE_DOUBLE_QUOTED; break; } case CODE_POINTS.APOSTROPHE: { this.state = State.ATTRIBUTE_VALUE_SINGLE_QUOTED; break; } case CODE_POINTS.GREATER_THAN_SIGN: { this._err(ERR.missingAttributeValue); this.state = State.DATA; this.emitCurrentTagToken(); break; } default: { this.state = State.ATTRIBUTE_VALUE_UNQUOTED; this._stateAttributeValueUnquoted(cp); } } } // Attribute value (double-quoted) state //------------------------------------------------------------------ _stateAttributeValueDoubleQuoted(cp) { switch (cp) { case CODE_POINTS.QUOTATION_MARK: { this.state = State.AFTER_ATTRIBUTE_VALUE_QUOTED; break; } case CODE_POINTS.AMPERSAND: { this._startCharacterReference(); break; } case CODE_POINTS.NULL: { this._err(ERR.unexpectedNullCharacter); this.currentAttr.value += REPLACEMENT_CHARACTER; break; } case CODE_POINTS.EOF: { this._err(ERR.eofInTag); this._emitEOFToken(); break; } default: { this.currentAttr.value += String.fromCodePoint(cp); } } } // Attribute value (single-quoted) state //------------------------------------------------------------------ _stateAttributeValueSingleQuoted(cp) { switch (cp) { case CODE_POINTS.APOSTROPHE: { this.state = State.AFTER_ATTRIBUTE_VALUE_QUOTED; break; } case CODE_POINTS.AMPERSAND: { this._startCharacterReference(); break; } case CODE_POINTS.NULL: { this._err(ERR.unexpectedNullCharacter); this.currentAttr.value += REPLACEMENT_CHARACTER; break; } case CODE_POINTS.EOF: { this._err(ERR.eofInTag); this._emitEOFToken(); break; } default: { this.currentAttr.value += String.fromCodePoint(cp); } } } // Attribute value (unquoted) state //------------------------------------------------------------------ _stateAttributeValueUnquoted(cp) { switch (cp) { case CODE_POINTS.SPACE: case CODE_POINTS.LINE_FEED: case CODE_POINTS.TABULATION: case CODE_POINTS.FORM_FEED: { this._leaveAttrValue(); this.state = State.BEFORE_ATTRIBUTE_NAME; break; } case CODE_POINTS.AMPERSAND: { this._startCharacterReference(); break; } case CODE_POINTS.GREATER_THAN_SIGN: { this._leaveAttrValue(); this.state = State.DATA; this.emitCurrentTagToken(); break; } case CODE_POINTS.NULL: { this._err(ERR.unexpectedNullCharacter); this.currentAttr.value += REPLACEMENT_CHARACTER; break; } case CODE_POINTS.QUOTATION_MARK: case CODE_POINTS.APOSTROPHE: case CODE_POINTS.LESS_THAN_SIGN: case CODE_POINTS.EQUALS_SIGN: case CODE_POINTS.GRAVE_ACCENT: { this._err(ERR.unexpectedCharacterInUnquotedAttributeValue); this.currentAttr.value += String.fromCodePoint(cp); break; } case CODE_POINTS.EOF: { this._err(ERR.eofInTag); this._emitEOFToken(); break; } default: { this.currentAttr.value += String.fromCodePoint(cp); } } } // After attribute value (quoted) state //------------------------------------------------------------------ _stateAfterAttributeValueQuoted(cp) { switch (cp) { case CODE_POINTS.SPACE: case CODE_POINTS.LINE_FEED: case CODE_POINTS.TABULATION: case CODE_POINTS.FORM_FEED: { this._leaveAttrValue(); this.state = State.BEFORE_ATTRIBUTE_NAME; break; } case CODE_POINTS.SOLIDUS: { this._leaveAttrValue(); this.state = State.SELF_CLOSING_START_TAG; break; } case CODE_POINTS.GREATER_THAN_SIGN: { this._leaveAttrValue(); this.state = State.DATA; this.emitCurrentTagToken(); break; } case CODE_POINTS.EOF: { this._err(ERR.eofInTag); this._emitEOFToken(); break; } default: { this._err(ERR.missingWhitespaceBetweenAttributes); this.state = State.BEFORE_ATTRIBUTE_NAME; this._stateBeforeAttributeName(cp); } } } // Self-closing start tag state //------------------------------------------------------------------ _stateSelfClosingStartTag(cp) { switch (cp) { case CODE_POINTS.GREATER_THAN_SIGN: { const token = this.currentToken; token.selfClosing = true; this.state = State.DATA; this.emitCurrentTagToken(); break; } case CODE_POINTS.EOF: { this._err(ERR.eofInTag); this._emitEOFToken(); break; } default: { this._err(ERR.unexpectedSolidusInTag); this.state = State.BEFORE_ATTRIBUTE_NAME; this._stateBeforeAttributeName(cp); } } } // Bogus comment state //------------------------------------------------------------------ _stateBogusComment(cp) { const token = this.currentToken; switch (cp) { case CODE_POINTS.GREATER_THAN_SIGN: { this.state = State.DATA; this.emitCurrentComment(token); break; } case CODE_POINTS.EOF: { this.emitCurrentComment(token); this._emitEOFToken(); break; } case CODE_POINTS.NULL: { this._err(ERR.unexpectedNullCharacter); token.data += REPLACEMENT_CHARACTER; break; } default: { token.data += String.fromCodePoint(cp); } } } // Markup declaration open state //------------------------------------------------------------------ _stateMarkupDeclarationOpen(cp) { if (this._consumeSequenceIfMatch(SEQUENCES.DASH_DASH, true)) { this._createCommentToken(SEQUENCES.DASH_DASH.length + 1); this.state = State.COMMENT_START; } else if (this._consumeSequenceIfMatch(SEQUENCES.DOCTYPE, false)) { this.currentLocation = this.getCurrentLocation(SEQUENCES.DOCTYPE.length + 1); this.state = State.DOCTYPE; } else if (this._consumeSequenceIfMatch(SEQUENCES.CDATA_START, true)) { if (this.inForeignNode) { this.state = State.CDATA_SECTION; } else { this._err(ERR.cdataInHtmlContent); this._createCommentToken(SEQUENCES.CDATA_START.length + 1); this.currentToken.data = "[CDATA["; this.state = State.BOGUS_COMMENT; } } else if (!this._ensureHibernation()) { this._err(ERR.incorrectlyOpenedComment); this._createCommentToken(2); this.state = State.BOGUS_COMMENT; this._stateBogusComment(cp); } } // Comment start state //------------------------------------------------------------------ _stateCommentStart(cp) { switch (cp) { case CODE_POINTS.HYPHEN_MINUS: { this.state = State.COMMENT_START_DASH; break; } case CODE_POINTS.GREATER_THAN_SIGN: { this._err(ERR.abruptClosingOfEmptyComment); this.state = State.DATA; const token = this.currentToken; this.emitCurrentComment(token); break; } default: { this.state = State.COMMENT; this._stateComment(cp); } } } // Comment start dash state //------------------------------------------------------------------ _stateCommentStartDash(cp) { const token = this.currentToken; switch (cp) { case CODE_POINTS.HYPHEN_MINUS: { this.state = State.COMMENT_END; break; } case CODE_POINTS.GREATER_THAN_SIGN: { this._err(ERR.abruptClosingOfEmptyComment); this.state = State.DATA; this.emitCurrentComment(token); break; } case CODE_POINTS.EOF: { this._err(ERR.eofInComment); this.emitCurrentComment(token); this._emitEOFToken(); break; } default: { token.data += "-"; this.state = State.COMMENT; this._stateComment(cp); } } } // Comment state //------------------------------------------------------------------ _stateComment(cp) { const token = this.currentToken; switch (cp) { case CODE_POINTS.HYPHEN_MINUS: { this.state = State.COMMENT_END_DASH; break; } case CODE_POINTS.LESS_THAN_SIGN: { token.data += "<"; this.state = State.COMMENT_LESS_THAN_SIGN; break; } case CODE_POINTS.NULL: { this._err(ERR.unexpectedNullCharacter); token.data += REPLACEMENT_CHARACTER; break; } case CODE_POINTS.EOF: { this._err(ERR.eofInComment); this.emitCurrentComment(token); this._emitEOFToken(); break; } default: { token.data += String.fromCodePoint(cp); } } } // Comment less-than sign state //------------------------------------------------------------------ _stateCommentLessThanSign(cp) { const token = this.currentToken; switch (cp) { case CODE_POINTS.EXCLAMATION_MARK: { token.data += "!"; this.state = State.COMMENT_LESS_THAN_SIGN_BANG; break; } case CODE_POINTS.LESS_THAN_SIGN: { token.data += "<"; break; } default: { this.state = State.COMMENT; this._stateComment(cp); } } } // Comment less-than sign bang state //------------------------------------------------------------------ _stateCommentLessThanSignBang(cp) { if (cp === CODE_POINTS.HYPHEN_MINUS) { this.state = State.COMMENT_LESS_THAN_SIGN_BANG_DASH; } else { this.state = State.COMMENT; this._stateComment(cp); } } // Comment less-than sign bang dash state //------------------------------------------------------------------ _stateCommentLessThanSignBangDash(cp) { if (cp === CODE_POINTS.HYPHEN_MINUS) { this.state = State.COMMENT_LESS_THAN_SIGN_BANG_DASH_DASH; } else { this.state = State.COMMENT_END_DASH; this._stateCommentEndDash(cp); } } // Comment less-than sign bang dash dash state //------------------------------------------------------------------ _stateCommentLessThanSignBangDashDash(cp) { if (cp !== CODE_POINTS.GREATER_THAN_SIGN && cp !== CODE_POINTS.EOF) { this._err(ERR.nestedComment); } this.state = State.COMMENT_END; this._stateCommentEnd(cp); } // Comment end dash state //------------------------------------------------------------------ _stateCommentEndDash(cp) { const token = this.currentToken; switch (cp) { case CODE_POINTS.HYPHEN_MINUS: { this.state = State.COMMENT_END; break; } case CODE_POINTS.EOF: { this._err(ERR.eofInComment); this.emitCurrentComment(token); this._emitEOFToken(); break; } default: { token.data += "-"; this.state = State.COMMENT; this._stateComment(cp); } } } // Comment end state //------------------------------------------------------------------ _stateCommentEnd(cp) { const token = this.currentToken; switch (cp) { case CODE_POINTS.GREATER_THAN_SIGN: { this.state = State.DATA; this.emitCurrentComment(token); break; } case CODE_POINTS.EXCLAMATION_MARK: { this.state = State.COMMENT_END_BANG; break; } case CODE_POINTS.HYPHEN_MINUS: { token.data += "-"; break; } case CODE_POINTS.EOF: { this._err(ERR.eofInComment); this.emitCurrentComment(token); this._emitEOFToken(); break; } default: { token.data += "--"; this.state = State.COMMENT; this._stateComment(cp); } } } // Comment end bang state //------------------------------------------------------------------ _stateCommentEndBang(cp) { const token = this.currentToken; switch (cp) { case CODE_POINTS.HYPHEN_MINUS: { token.data += "--!"; this.state = State.COMMENT_END_DASH; break; } case CODE_POINTS.GREATER_THAN_SIGN: { this._err(ERR.incorrectlyClosedComment); this.state = State.DATA; this.emitCurrentComment(token); break; } case CODE_POINTS.EOF: { this._err(ERR.eofInComment); this.emitCurrentComment(token); this._emitEOFToken(); break; } default: { token.data += "--!"; this.state = State.COMMENT; this._stateComment(cp); } } } // DOCTYPE state //------------------------------------------------------------------ _stateDoctype(cp) { switch (cp) { case CODE_POINTS.SPACE: case CODE_POINTS.LINE_FEED: case CODE_POINTS.TABULATION: case CODE_POINTS.FORM_FEED: { this.state = State.BEFORE_DOCTYPE_NAME; break; } case CODE_POINTS.GREATER_THAN_SIGN: { this.state = State.BEFORE_DOCTYPE_NAME; this._stateBeforeDoctypeName(cp); break; } case CODE_POINTS.EOF: { this._err(ERR.eofInDoctype); this._createDoctypeToken(null); const token = this.currentToken; token.forceQuirks = true; this.emitCurrentDoctype(token); this._emitEOFToken(); break; } default: { this._err(ERR.missingWhitespaceBeforeDoctypeName); this.state = State.BEFORE_DOCTYPE_NAME; this._stateBeforeDoctypeName(cp); } } } // Before DOCTYPE name state //------------------------------------------------------------------ _stateBeforeDoctypeName(cp) { if (isAsciiUpper(cp)) { this._createDoctypeToken(String.fromCharCode(toAsciiLower(cp))); this.state = State.DOCTYPE_NAME; } else switch (cp) { case CODE_POINTS.SPACE: case CODE_POINTS.LINE_FEED: case CODE_POINTS.TABULATION: case CODE_POINTS.FORM_FEED: { break; } case CODE_POINTS.NULL: { this._err(ERR.unexpectedNullCharacter); this._createDoctypeToken(REPLACEMENT_CHARACTER); this.state = State.DOCTYPE_NAME; break; } case CODE_POINTS.GREATER_THAN_SIGN: { this._err(ERR.missingDoctypeName); this._createDoctypeToken(null); const token = this.currentToken; token.forceQuirks = true; this.emitCurrentDoctype(token); this.state = State.DATA; break; } case CODE_POINTS.EOF: { this._err(ERR.eofInDoctype); this._createDoctypeToken(null); const token = this.currentToken; token.forceQuirks = true; this.emitCurrentDoctype(token); this._emitEOFToken(); break; } default: { this._createDoctypeToken(String.fromCodePoint(cp)); this.state = State.DOCTYPE_NAME; } } } // DOCTYPE name state //------------------------------------------------------------------ _stateDoctypeName(cp) { const token = this.currentToken; switch (cp) { case CODE_POINTS.SPACE: case CODE_POINTS.LINE_FEED: case CODE_POINTS.TABULATION: case CODE_POINTS.FORM_FEED: { this.state = State.AFTER_DOCTYPE_NAME; break; } case CODE_POINTS.GREATER_THAN_SIGN: { this.state = State.DATA; this.emitCurrentDoctype(token); break; } case CODE_POINTS.NULL: { this._err(ERR.unexpectedNullCharacter); token.name += REPLACEMENT_CHARACTER; break; } case CODE_POINTS.EOF: { this._err(ERR.eofInDoctype); token.forceQuirks = true; this.emitCurrentDoctype(token); this._emitEOFToken(); break; } default: { token.name += String.fromCodePoint(isAsciiUpper(cp) ? toAsciiLower(cp) : cp); } } } // After DOCTYPE name state //------------------------------------------------------------------ _stateAfterDoctypeName(cp) { const token = this.currentToken; switch (cp) { case CODE_POINTS.SPACE: case CODE_POINTS.LINE_FEED: case CODE_POINTS.TABULATION: case CODE_POINTS.FORM_FEED: { break; } case CODE_POINTS.GREATER_THAN_SIGN: { this.state = State.DATA; this.emitCurrentDoctype(token); break; } case CODE_POINTS.EOF: { this._err(ERR.eofInDoctype); token.forceQuirks = true; this.emitCurrentDoctype(token); this._emitEOFToken(); break; } default: { if (this._consumeSequenceIfMatch(SEQUENCES.PUBLIC, false)) { this.state = State.AFTER_DOCTYPE_PUBLIC_KEYWORD; } else if (this._consumeSequenceIfMatch(SEQUENCES.SYSTEM, false)) { this.state = State.AFTER_DOCTYPE_SYSTEM_KEYWORD; } else if (!this._ensureHibernation()) { this._err(ERR.invalidCharacterSequenceAfterDoctypeName); token.forceQuirks = true; this.state = State.BOGUS_DOCTYPE; this._stateBogusDoctype(cp); } } } } // After DOCTYPE public keyword state //------------------------------------------------------------------ _stateAfterDoctypePublicKeyword(cp) { const token = this.currentToken; switch (cp) { case CODE_POINTS.SPACE: case CODE_POINTS.LINE_FEED: case CODE_POINTS.TABULATION: case CODE_POINTS.FORM_FEED: { this.state = State.BEFORE_DOCTYPE_PUBLIC_IDENTIFIER; break; } case CODE_POINTS.QUOTATION_MARK: { this._err(ERR.missingWhitespaceAfterDoctypePublicKeyword); token.publicId = ""; this.state = State.DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED; break; } case CODE_POINTS.APOSTROPHE: { this._err(ERR.missingWhitespaceAfterDoctypePublicKeyword); token.publicId = ""; this.state = State.DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED; break; } case CODE_POINTS.GREATER_THAN_SIGN: { this._err(ERR.missingDoctypePublicIdentifier); token.forceQuirks = true; this.state = State.DATA; this.emitCurrentDoctype(token); break; } case CODE_POINTS.EOF: { this._err(ERR.eofInDoctype); token.forceQuirks = true; this.emitCurrentDoctype(token); this._emitEOFToken(); break; } default: { this._err(ERR.missingQuoteBeforeDoctypePublicIdentifier); token.forceQuirks = true; this.state = State.BOGUS_DOCTYPE; this._stateBogusDoctype(cp); } } } // Before DOCTYPE public identifier state //------------------------------------------------------------------ _stateBeforeDoctypePublicIdentifier(cp) { const token = this.currentToken; switch (cp) { case CODE_POINTS.SPACE: case CODE_POINTS.LINE_FEED: case CODE_POINTS.TABULATION: case CODE_POINTS.FORM_FEED: { break; } case CODE_POINTS.QUOTATION_MARK: { token.publicId = ""; this.state = State.DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED; break; } case CODE_POINTS.APOSTROPHE: { token.publicId = ""; this.state = State.DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED; break; } case CODE_POINTS.GREATER_THAN_SIGN: { this._err(ERR.missingDoctypePublicIdentifier); token.forceQuirks = true; this.state = State.DATA; this.emitCurrentDoctype(token); break; } case CODE_POINTS.EOF: { this._err(ERR.eofInDoctype); token.forceQuirks = true; this.emitCurrentDoctype(token); this._emitEOFToken(); break; } default: { this._err(ERR.missingQuoteBeforeDoctypePublicIdentifier); token.forceQuirks = true; this.state = State.BOGUS_DOCTYPE; this._stateBogusDoctype(cp); } } } // DOCTYPE public identifier (double-quoted) state //------------------------------------------------------------------ _stateDoctypePublicIdentifierDoubleQuoted(cp) { const token = this.currentToken; switch (cp) { case CODE_POINTS.QUOTATION_MARK: { this.state = State.AFTER_DOCTYPE_PUBLIC_IDENTIFIER; break; } case CODE_POINTS.NULL: { this._err(ERR.unexpectedNullCharacter); token.publicId += REPLACEMENT_CHARACTER; break; } case CODE_POINTS.GREATER_THAN_SIGN: { this._err(ERR.abruptDoctypePublicIdentifier); token.forceQuirks = true; this.emitCurrentDoctype(token); this.state = State.DATA; break; } case CODE_POINTS.EOF: { this._err(ERR.eofInDoctype); token.forceQuirks = true; this.emitCurrentDoctype(token); this._emitEOFToken(); break; } default: { token.publicId += String.fromCodePoint(cp); } } } // DOCTYPE public identifier (single-quoted) state //------------------------------------------------------------------ _stateDoctypePublicIdentifierSingleQuoted(cp) { const token = this.currentToken; switch (cp) { case CODE_POINTS.APOSTROPHE: { this.state = State.AFTER_DOCTYPE_PUBLIC_IDENTIFIER; break; } case CODE_POINTS.NULL: { this._err(ERR.unexpectedNullCharacter); token.publicId += REPLACEMENT_CHARACTER; break; } case CODE_POINTS.GREATER_THAN_SIGN: { this._err(ERR.abruptDoctypePublicIdentifier); token.forceQuirks = true; this.emitCurrentDoctype(token); this.state = State.DATA; break; } case CODE_POINTS.EOF: { this._err(ERR.eofInDoctype); token.forceQuirks = true; this.emitCurrentDoctype(token); this._emitEOFToken(); break; } default: { token.publicId += String.fromCodePoint(cp); } } } // After DOCTYPE public identifier state //------------------------------------------------------------------ _stateAfterDoctypePublicIdentifier(cp) { const token = this.currentToken; switch (cp) { case CODE_POINTS.SPACE: case CODE_POINTS.LINE_FEED: case CODE_POINTS.TABULATION: case CODE_POINTS.FORM_FEED: { this.state = State.BETWEEN_DOCTYPE_PUBLIC_AND_SYSTEM_IDENTIFIERS; break; } case CODE_POINTS.GREATER_THAN_SIGN: { this.state = State.DATA; this.emitCurrentDoctype(token); break; } case CODE_POINTS.QUOTATION_MARK: { this._err(ERR.missingWhitespaceBetweenDoctypePublicAndSystemIdentifiers); token.systemId = ""; this.state = State.DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED; break; } case CODE_POINTS.APOSTROPHE: { this._err(ERR.missingWhitespaceBetweenDoctypePublicAndSystemIdentifiers); token.systemId = ""; this.state = State.DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED; break; } case CODE_POINTS.EOF: { this._err(ERR.eofInDoctype); token.forceQuirks = true; this.emitCurrentDoctype(token); this._emitEOFToken(); break; } default: { this._err(ERR.missingQuoteBeforeDoctypeSystemIdentifier); token.forceQuirks = true; this.state = State.BOGUS_DOCTYPE; this._stateBogusDoctype(cp); } } } // Between DOCTYPE public and system identifiers state //------------------------------------------------------------------ _stateBetweenDoctypePublicAndSystemIdentifiers(cp) { const token = this.currentToken; switch (cp) { case CODE_POINTS.SPACE: case CODE_POINTS.LINE_FEED: case CODE_POINTS.TABULATION: case CODE_POINTS.FORM_FEED: { break; } case CODE_POINTS.GREATER_THAN_SIGN: { this.emitCurrentDoctype(token); this.state = State.DATA; break; } case CODE_POINTS.QUOTATION_MARK: { token.systemId = ""; this.state = State.DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED; break; } case CODE_POINTS.APOSTROPHE: { token.systemId = ""; this.state = State.DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED; break; } case CODE_POINTS.EOF: { this._err(ERR.eofInDoctype); token.forceQuirks = true; this.emitCurrentDoctype(token); this._emitEOFToken(); break; } default: { this._err(ERR.missingQuoteBeforeDoctypeSystemIdentifier); token.forceQuirks = true; this.state = State.BOGUS_DOCTYPE; this._stateBogusDoctype(cp); } } } // After DOCTYPE system keyword state //------------------------------------------------------------------ _stateAfterDoctypeSystemKeyword(cp) { const token = this.currentToken; switch (cp) { case CODE_POINTS.SPACE: case CODE_POINTS.LINE_FEED: case CODE_POINTS.TABULATION: case CODE_POINTS.FORM_FEED: { this.state = State.BEFORE_DOCTYPE_SYSTEM_IDENTIFIER; break; } case CODE_POINTS.QUOTATION_MARK: { this._err(ERR.missingWhitespaceAfterDoctypeSystemKeyword); token.systemId = ""; this.state = State.DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED; break; } case CODE_POINTS.APOSTROPHE: { this._err(ERR.missingWhitespaceAfterDoctypeSystemKeyword); token.systemId = ""; this.state = State.DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED; break; } case CODE_POINTS.GREATER_THAN_SIGN: { this._err(ERR.missingDoctypeSystemIdentifier); token.forceQuirks = true; this.state = State.DATA; this.emitCurrentDoctype(token); break; } case CODE_POINTS.EOF: { this._err(ERR.eofInDoctype); token.forceQuirks = true; this.emitCurrentDoctype(token); this._emitEOFToken(); break; } default: { this._err(ERR.missingQuoteBeforeDoctypeSystemIdentifier); token.forceQuirks = true; this.state = State.BOGUS_DOCTYPE; this._stateBogusDoctype(cp); } } } // Before DOCTYPE system identifier state //------------------------------------------------------------------ _stateBeforeDoctypeSystemIdentifier(cp) { const token = this.currentToken; switch (cp) { case CODE_POINTS.SPACE: case CODE_POINTS.LINE_FEED: case CODE_POINTS.TABULATION: case CODE_POINTS.FORM_FEED: { break; } case CODE_POINTS.QUOTATION_MARK: { token.systemId = ""; this.state = State.DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED; break; } case CODE_POINTS.APOSTROPHE: { token.systemId = ""; this.state = State.DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED; break; } case CODE_POINTS.GREATER_THAN_SIGN: { this._err(ERR.missingDoctypeSystemIdentifier); token.forceQuirks = true; this.state = State.DATA; this.emitCurrentDoctype(token); break; } case CODE_POINTS.EOF: { this._err(ERR.eofInDoctype); token.forceQuirks = true; this.emitCurrentDoctype(token); this._emitEOFToken(); break; } default: { this._err(ERR.missingQuoteBeforeDoctypeSystemIdentifier); token.forceQuirks = true; this.state = State.BOGUS_DOCTYPE; this._stateBogusDoctype(cp); } } } // DOCTYPE system identifier (double-quoted) state //------------------------------------------------------------------ _stateDoctypeSystemIdentifierDoubleQuoted(cp) { const token = this.currentToken; switch (cp) { case CODE_POINTS.QUOTATION_MARK: { this.state = State.AFTER_DOCTYPE_SYSTEM_IDENTIFIER; break; } case CODE_POINTS.NULL: { this._err(ERR.unexpectedNullCharacter); token.systemId += REPLACEMENT_CHARACTER; break; } case CODE_POINTS.GREATER_THAN_SIGN: { this._err(ERR.abruptDoctypeSystemIdentifier); token.forceQuirks = true; this.emitCurrentDoctype(token); this.state = State.DATA; break; } case CODE_POINTS.EOF: { this._err(ERR.eofInDoctype); token.forceQuirks = true; this.emitCurrentDoctype(token); this._emitEOFToken(); break; } default: { token.systemId += String.fromCodePoint(cp); } } } // DOCTYPE system identifier (single-quoted) state //------------------------------------------------------------------ _stateDoctypeSystemIdentifierSingleQuoted(cp) { const token = this.currentToken; switch (cp) { case CODE_POINTS.APOSTROPHE: { this.state = State.AFTER_DOCTYPE_SYSTEM_IDENTIFIER; break; } case CODE_POINTS.NULL: { this._err(ERR.unexpectedNullCharacter); token.systemId += REPLACEMENT_CHARACTER; break; } case CODE_POINTS.GREATER_THAN_SIGN: { this._err(ERR.abruptDoctypeSystemIdentifier); token.forceQuirks = true; this.emitCurrentDoctype(token); this.state = State.DATA; break; } case CODE_POINTS.EOF: { this._err(ERR.eofInDoctype); token.forceQuirks = true; this.emitCurrentDoctype(token); this._emitEOFToken(); break; } default: { token.systemId += String.fromCodePoint(cp); } } } // After DOCTYPE system identifier state //------------------------------------------------------------------ _stateAfterDoctypeSystemIdentifier(cp) { const token = this.currentToken; switch (cp) { case CODE_POINTS.SPACE: case CODE_POINTS.LINE_FEED: case CODE_POINTS.TABULATION: case CODE_POINTS.FORM_FEED: { break; } case CODE_POINTS.GREATER_THAN_SIGN: { this.emitCurrentDoctype(token); this.state = State.DATA; break; } case CODE_POINTS.EOF: { this._err(ERR.eofInDoctype); token.forceQuirks = true; this.emitCurrentDoctype(token); this._emitEOFToken(); break; } default: { this._err(ERR.unexpectedCharacterAfterDoctypeSystemIdentifier); this.state = State.BOGUS_DOCTYPE; this._stateBogusDoctype(cp); } } } // Bogus DOCTYPE state //------------------------------------------------------------------ _stateBogusDoctype(cp) { const token = this.currentToken; switch (cp) { case CODE_POINTS.GREATER_THAN_SIGN: { this.emitCurrentDoctype(token); this.state = State.DATA; break; } case CODE_POINTS.NULL: { this._err(ERR.unexpectedNullCharacter); break; } case CODE_POINTS.EOF: { this.emitCurrentDoctype(token); this._emitEOFToken(); break; } default: } } // CDATA section state //------------------------------------------------------------------ _stateCdataSection(cp) { switch (cp) { case CODE_POINTS.RIGHT_SQUARE_BRACKET: { this.state = State.CDATA_SECTION_BRACKET; break; } case CODE_POINTS.EOF: { this._err(ERR.eofInCdata); this._emitEOFToken(); break; } default: { this._emitCodePoint(cp); } } } // CDATA section bracket state //------------------------------------------------------------------ _stateCdataSectionBracket(cp) { if (cp === CODE_POINTS.RIGHT_SQUARE_BRACKET) { this.state = State.CDATA_SECTION_END; } else { this._emitChars("]"); this.state = State.CDATA_SECTION; this._stateCdataSection(cp); } } // CDATA section end state //------------------------------------------------------------------ _stateCdataSectionEnd(cp) { switch (cp) { case CODE_POINTS.GREATER_THAN_SIGN: { this.state = State.DATA; break; } case CODE_POINTS.RIGHT_SQUARE_BRACKET: { this._emitChars("]"); break; } default: { this._emitChars("]]"); this.state = State.CDATA_SECTION; this._stateCdataSection(cp); } } } // Character reference state //------------------------------------------------------------------ _stateCharacterReference() { let length = this.entityDecoder.write(this.preprocessor.html, this.preprocessor.pos); if (length < 0) { if (this.preprocessor.lastChunkWritten) { length = this.entityDecoder.end(); } else { this.active = false; this.preprocessor.pos = this.preprocessor.html.length - 1; this.consumedAfterSnapshot = 0; this.preprocessor.endOfChunkHit = true; return; } } if (length === 0) { this.preprocessor.pos = this.entityStartPos; this._flushCodePointConsumedAsCharacterReference(CODE_POINTS.AMPERSAND); this.state = !this._isCharacterReferenceInAttribute() && isAsciiAlphaNumeric2(this.preprocessor.peek(1)) ? State.AMBIGUOUS_AMPERSAND : this.returnState; } else { this.state = this.returnState; } } // Ambiguos ampersand state //------------------------------------------------------------------ _stateAmbiguousAmpersand(cp) { if (isAsciiAlphaNumeric2(cp)) { this._flushCodePointConsumedAsCharacterReference(cp); } else { if (cp === CODE_POINTS.SEMICOLON) { this._err(ERR.unknownNamedCharacterReference); } this.state = this.returnState; this._callState(cp); } } }; } }); // node_modules/parse5/dist/parser/open-element-stack.js var IMPLICIT_END_TAG_REQUIRED, IMPLICIT_END_TAG_REQUIRED_THOROUGHLY, SCOPING_ELEMENTS_HTML, SCOPING_ELEMENTS_HTML_LIST, SCOPING_ELEMENTS_HTML_BUTTON, SCOPING_ELEMENTS_MATHML, SCOPING_ELEMENTS_SVG, TABLE_ROW_CONTEXT, TABLE_BODY_CONTEXT, TABLE_CONTEXT, TABLE_CELLS, OpenElementStack; var init_open_element_stack = __esm({ "node_modules/parse5/dist/parser/open-element-stack.js"() { init_html(); IMPLICIT_END_TAG_REQUIRED = /* @__PURE__ */ new Set([TAG_ID.DD, TAG_ID.DT, TAG_ID.LI, TAG_ID.OPTGROUP, TAG_ID.OPTION, TAG_ID.P, TAG_ID.RB, TAG_ID.RP, TAG_ID.RT, TAG_ID.RTC]); IMPLICIT_END_TAG_REQUIRED_THOROUGHLY = /* @__PURE__ */ new Set([ ...IMPLICIT_END_TAG_REQUIRED, TAG_ID.CAPTION, TAG_ID.COLGROUP, TAG_ID.TBODY, TAG_ID.TD, TAG_ID.TFOOT, TAG_ID.TH, TAG_ID.THEAD, TAG_ID.TR ]); SCOPING_ELEMENTS_HTML = /* @__PURE__ */ new Set([ TAG_ID.APPLET, TAG_ID.CAPTION, TAG_ID.HTML, TAG_ID.MARQUEE, TAG_ID.OBJECT, TAG_ID.TABLE, TAG_ID.TD, TAG_ID.TEMPLATE, TAG_ID.TH ]); SCOPING_ELEMENTS_HTML_LIST = /* @__PURE__ */ new Set([...SCOPING_ELEMENTS_HTML, TAG_ID.OL, TAG_ID.UL]); SCOPING_ELEMENTS_HTML_BUTTON = /* @__PURE__ */ new Set([...SCOPING_ELEMENTS_HTML, TAG_ID.BUTTON]); SCOPING_ELEMENTS_MATHML = /* @__PURE__ */ new Set([TAG_ID.ANNOTATION_XML, TAG_ID.MI, TAG_ID.MN, TAG_ID.MO, TAG_ID.MS, TAG_ID.MTEXT]); SCOPING_ELEMENTS_SVG = /* @__PURE__ */ new Set([TAG_ID.DESC, TAG_ID.FOREIGN_OBJECT, TAG_ID.TITLE]); TABLE_ROW_CONTEXT = /* @__PURE__ */ new Set([TAG_ID.TR, TAG_ID.TEMPLATE, TAG_ID.HTML]); TABLE_BODY_CONTEXT = /* @__PURE__ */ new Set([TAG_ID.TBODY, TAG_ID.TFOOT, TAG_ID.THEAD, TAG_ID.TEMPLATE, TAG_ID.HTML]); TABLE_CONTEXT = /* @__PURE__ */ new Set([TAG_ID.TABLE, TAG_ID.TEMPLATE, TAG_ID.HTML]); TABLE_CELLS = /* @__PURE__ */ new Set([TAG_ID.TD, TAG_ID.TH]); OpenElementStack = class { get currentTmplContentOrNode() { return this._isInTemplate() ? this.treeAdapter.getTemplateContent(this.current) : this.current; } constructor(document2, treeAdapter, handler) { this.treeAdapter = treeAdapter; this.handler = handler; this.items = []; this.tagIDs = []; this.stackTop = -1; this.tmplCount = 0; this.currentTagId = TAG_ID.UNKNOWN; this.current = document2; } //Index of element _indexOf(element) { return this.items.lastIndexOf(element, this.stackTop); } //Update current element _isInTemplate() { return this.currentTagId === TAG_ID.TEMPLATE && this.treeAdapter.getNamespaceURI(this.current) === NS.HTML; } _updateCurrentElement() { this.current = this.items[this.stackTop]; this.currentTagId = this.tagIDs[this.stackTop]; } //Mutations push(element, tagID) { this.stackTop++; this.items[this.stackTop] = element; this.current = element; this.tagIDs[this.stackTop] = tagID; this.currentTagId = tagID; if (this._isInTemplate()) { this.tmplCount++; } this.handler.onItemPush(element, tagID, true); } pop() { const popped = this.current; if (this.tmplCount > 0 && this._isInTemplate()) { this.tmplCount--; } this.stackTop--; this._updateCurrentElement(); this.handler.onItemPop(popped, true); } replace(oldElement, newElement) { const idx = this._indexOf(oldElement); this.items[idx] = newElement; if (idx === this.stackTop) { this.current = newElement; } } insertAfter(referenceElement, newElement, newElementID) { const insertionIdx = this._indexOf(referenceElement) + 1; this.items.splice(insertionIdx, 0, newElement); this.tagIDs.splice(insertionIdx, 0, newElementID); this.stackTop++; if (insertionIdx === this.stackTop) { this._updateCurrentElement(); } this.handler.onItemPush(this.current, this.currentTagId, insertionIdx === this.stackTop); } popUntilTagNamePopped(tagName) { let targetIdx = this.stackTop + 1; do { targetIdx = this.tagIDs.lastIndexOf(tagName, targetIdx - 1); } while (targetIdx > 0 && this.treeAdapter.getNamespaceURI(this.items[targetIdx]) !== NS.HTML); this.shortenToLength(targetIdx < 0 ? 0 : targetIdx); } shortenToLength(idx) { while (this.stackTop >= idx) { const popped = this.current; if (this.tmplCount > 0 && this._isInTemplate()) { this.tmplCount -= 1; } this.stackTop--; this._updateCurrentElement(); this.handler.onItemPop(popped, this.stackTop < idx); } } popUntilElementPopped(element) { const idx = this._indexOf(element); this.shortenToLength(idx < 0 ? 0 : idx); } popUntilPopped(tagNames, targetNS) { const idx = this._indexOfTagNames(tagNames, targetNS); this.shortenToLength(idx < 0 ? 0 : idx); } popUntilNumberedHeaderPopped() { this.popUntilPopped(NUMBERED_HEADERS, NS.HTML); } popUntilTableCellPopped() { this.popUntilPopped(TABLE_CELLS, NS.HTML); } popAllUpToHtmlElement() { this.tmplCount = 0; this.shortenToLength(1); } _indexOfTagNames(tagNames, namespace) { for (let i = this.stackTop; i >= 0; i--) { if (tagNames.has(this.tagIDs[i]) && this.treeAdapter.getNamespaceURI(this.items[i]) === namespace) { return i; } } return -1; } clearBackTo(tagNames, targetNS) { const idx = this._indexOfTagNames(tagNames, targetNS); this.shortenToLength(idx + 1); } clearBackToTableContext() { this.clearBackTo(TABLE_CONTEXT, NS.HTML); } clearBackToTableBodyContext() { this.clearBackTo(TABLE_BODY_CONTEXT, NS.HTML); } clearBackToTableRowContext() { this.clearBackTo(TABLE_ROW_CONTEXT, NS.HTML); } remove(element) { const idx = this._indexOf(element); if (idx >= 0) { if (idx === this.stackTop) { this.pop(); } else { this.items.splice(idx, 1); this.tagIDs.splice(idx, 1); this.stackTop--; this._updateCurrentElement(); this.handler.onItemPop(element, false); } } } //Search tryPeekProperlyNestedBodyElement() { return this.stackTop >= 1 && this.tagIDs[1] === TAG_ID.BODY ? this.items[1] : null; } contains(element) { return this._indexOf(element) > -1; } getCommonAncestor(element) { const elementIdx = this._indexOf(element) - 1; return elementIdx >= 0 ? this.items[elementIdx] : null; } isRootHtmlElementCurrent() { return this.stackTop === 0 && this.tagIDs[0] === TAG_ID.HTML; } //Element in scope hasInDynamicScope(tagName, htmlScope) { for (let i = this.stackTop; i >= 0; i--) { const tn = this.tagIDs[i]; switch (this.treeAdapter.getNamespaceURI(this.items[i])) { case NS.HTML: { if (tn === tagName) return true; if (htmlScope.has(tn)) return false; break; } case NS.SVG: { if (SCOPING_ELEMENTS_SVG.has(tn)) return false; break; } case NS.MATHML: { if (SCOPING_ELEMENTS_MATHML.has(tn)) return false; break; } } } return true; } hasInScope(tagName) { return this.hasInDynamicScope(tagName, SCOPING_ELEMENTS_HTML); } hasInListItemScope(tagName) { return this.hasInDynamicScope(tagName, SCOPING_ELEMENTS_HTML_LIST); } hasInButtonScope(tagName) { return this.hasInDynamicScope(tagName, SCOPING_ELEMENTS_HTML_BUTTON); } hasNumberedHeaderInScope() { for (let i = this.stackTop; i >= 0; i--) { const tn = this.tagIDs[i]; switch (this.treeAdapter.getNamespaceURI(this.items[i])) { case NS.HTML: { if (NUMBERED_HEADERS.has(tn)) return true; if (SCOPING_ELEMENTS_HTML.has(tn)) return false; break; } case NS.SVG: { if (SCOPING_ELEMENTS_SVG.has(tn)) return false; break; } case NS.MATHML: { if (SCOPING_ELEMENTS_MATHML.has(tn)) return false; break; } } } return true; } hasInTableScope(tagName) { for (let i = this.stackTop; i >= 0; i--) { if (this.treeAdapter.getNamespaceURI(this.items[i]) !== NS.HTML) { continue; } switch (this.tagIDs[i]) { case tagName: { return true; } case TAG_ID.TABLE: case TAG_ID.HTML: { return false; } } } return true; } hasTableBodyContextInTableScope() { for (let i = this.stackTop; i >= 0; i--) { if (this.treeAdapter.getNamespaceURI(this.items[i]) !== NS.HTML) { continue; } switch (this.tagIDs[i]) { case TAG_ID.TBODY: case TAG_ID.THEAD: case TAG_ID.TFOOT: { return true; } case TAG_ID.TABLE: case TAG_ID.HTML: { return false; } } } return true; } hasInSelectScope(tagName) { for (let i = this.stackTop; i >= 0; i--) { if (this.treeAdapter.getNamespaceURI(this.items[i]) !== NS.HTML) { continue; } switch (this.tagIDs[i]) { case tagName: { return true; } case TAG_ID.OPTION: case TAG_ID.OPTGROUP: { break; } default: { return false; } } } return true; } //Implied end tags generateImpliedEndTags() { while (IMPLICIT_END_TAG_REQUIRED.has(this.currentTagId)) { this.pop(); } } generateImpliedEndTagsThoroughly() { while (IMPLICIT_END_TAG_REQUIRED_THOROUGHLY.has(this.currentTagId)) { this.pop(); } } generateImpliedEndTagsWithExclusion(exclusionId) { while (this.currentTagId !== exclusionId && IMPLICIT_END_TAG_REQUIRED_THOROUGHLY.has(this.currentTagId)) { this.pop(); } } }; } }); // node_modules/parse5/dist/parser/formatting-element-list.js var NOAH_ARK_CAPACITY, EntryType, MARKER, FormattingElementList; var init_formatting_element_list = __esm({ "node_modules/parse5/dist/parser/formatting-element-list.js"() { NOAH_ARK_CAPACITY = 3; (function(EntryType2) { EntryType2[EntryType2["Marker"] = 0] = "Marker"; EntryType2[EntryType2["Element"] = 1] = "Element"; })(EntryType || (EntryType = {})); MARKER = { type: EntryType.Marker }; FormattingElementList = class { constructor(treeAdapter) { this.treeAdapter = treeAdapter; this.entries = []; this.bookmark = null; } //Noah Ark's condition //OPTIMIZATION: at first we try to find possible candidates for exclusion using //lightweight heuristics without thorough attributes check. _getNoahArkConditionCandidates(newElement, neAttrs) { const candidates = []; const neAttrsLength = neAttrs.length; const neTagName = this.treeAdapter.getTagName(newElement); const neNamespaceURI = this.treeAdapter.getNamespaceURI(newElement); for (let i = 0; i < this.entries.length; i++) { const entry2 = this.entries[i]; if (entry2.type === EntryType.Marker) { break; } const { element } = entry2; if (this.treeAdapter.getTagName(element) === neTagName && this.treeAdapter.getNamespaceURI(element) === neNamespaceURI) { const elementAttrs = this.treeAdapter.getAttrList(element); if (elementAttrs.length === neAttrsLength) { candidates.push({ idx: i, attrs: elementAttrs }); } } } return candidates; } _ensureNoahArkCondition(newElement) { if (this.entries.length < NOAH_ARK_CAPACITY) return; const neAttrs = this.treeAdapter.getAttrList(newElement); const candidates = this._getNoahArkConditionCandidates(newElement, neAttrs); if (candidates.length < NOAH_ARK_CAPACITY) return; const neAttrsMap = new Map(neAttrs.map((neAttr) => [neAttr.name, neAttr.value])); let validCandidates = 0; for (let i = 0; i < candidates.length; i++) { const candidate = candidates[i]; if (candidate.attrs.every((cAttr) => neAttrsMap.get(cAttr.name) === cAttr.value)) { validCandidates += 1; if (validCandidates >= NOAH_ARK_CAPACITY) { this.entries.splice(candidate.idx, 1); } } } } //Mutations insertMarker() { this.entries.unshift(MARKER); } pushElement(element, token) { this._ensureNoahArkCondition(element); this.entries.unshift({ type: EntryType.Element, element, token }); } insertElementAfterBookmark(element, token) { const bookmarkIdx = this.entries.indexOf(this.bookmark); this.entries.splice(bookmarkIdx, 0, { type: EntryType.Element, element, token }); } removeEntry(entry2) { const entryIndex = this.entries.indexOf(entry2); if (entryIndex >= 0) { this.entries.splice(entryIndex, 1); } } /** * Clears the list of formatting elements up to the last marker. * * @see https://html.spec.whatwg.org/multipage/parsing.html#clear-the-list-of-active-formatting-elements-up-to-the-last-marker */ clearToLastMarker() { const markerIdx = this.entries.indexOf(MARKER); if (markerIdx >= 0) { this.entries.splice(0, markerIdx + 1); } else { this.entries.length = 0; } } //Search getElementEntryInScopeWithTagName(tagName) { const entry2 = this.entries.find((entry3) => entry3.type === EntryType.Marker || this.treeAdapter.getTagName(entry3.element) === tagName); return entry2 && entry2.type === EntryType.Element ? entry2 : null; } getElementEntry(element) { return this.entries.find((entry2) => entry2.type === EntryType.Element && entry2.element === element); } }; } }); // node_modules/parse5/dist/tree-adapters/default.js var defaultTreeAdapter; var init_default = __esm({ "node_modules/parse5/dist/tree-adapters/default.js"() { init_html(); defaultTreeAdapter = { //Node construction createDocument() { return { nodeName: "#document", mode: DOCUMENT_MODE.NO_QUIRKS, childNodes: [] }; }, createDocumentFragment() { return { nodeName: "#document-fragment", childNodes: [] }; }, createElement(tagName, namespaceURI, attrs) { return { nodeName: tagName, tagName, attrs, namespaceURI, childNodes: [], parentNode: null }; }, createCommentNode(data2) { return { nodeName: "#comment", data: data2, parentNode: null }; }, createTextNode(value) { return { nodeName: "#text", value, parentNode: null }; }, //Tree mutation appendChild(parentNode, newNode) { parentNode.childNodes.push(newNode); newNode.parentNode = parentNode; }, insertBefore(parentNode, newNode, referenceNode) { const insertionIdx = parentNode.childNodes.indexOf(referenceNode); parentNode.childNodes.splice(insertionIdx, 0, newNode); newNode.parentNode = parentNode; }, setTemplateContent(templateElement, contentElement) { templateElement.content = contentElement; }, getTemplateContent(templateElement) { return templateElement.content; }, setDocumentType(document2, name, publicId, systemId) { const doctypeNode = document2.childNodes.find((node) => node.nodeName === "#documentType"); if (doctypeNode) { doctypeNode.name = name; doctypeNode.publicId = publicId; doctypeNode.systemId = systemId; } else { const node = { nodeName: "#documentType", name, publicId, systemId, parentNode: null }; defaultTreeAdapter.appendChild(document2, node); } }, setDocumentMode(document2, mode) { document2.mode = mode; }, getDocumentMode(document2) { return document2.mode; }, detachNode(node) { if (node.parentNode) { const idx = node.parentNode.childNodes.indexOf(node); node.parentNode.childNodes.splice(idx, 1); node.parentNode = null; } }, insertText(parentNode, text3) { if (parentNode.childNodes.length > 0) { const prevNode = parentNode.childNodes[parentNode.childNodes.length - 1]; if (defaultTreeAdapter.isTextNode(prevNode)) { prevNode.value += text3; return; } } defaultTreeAdapter.appendChild(parentNode, defaultTreeAdapter.createTextNode(text3)); }, insertTextBefore(parentNode, text3, referenceNode) { const prevNode = parentNode.childNodes[parentNode.childNodes.indexOf(referenceNode) - 1]; if (prevNode && defaultTreeAdapter.isTextNode(prevNode)) { prevNode.value += text3; } else { defaultTreeAdapter.insertBefore(parentNode, defaultTreeAdapter.createTextNode(text3), referenceNode); } }, adoptAttributes(recipient, attrs) { const recipientAttrsMap = new Set(recipient.attrs.map((attr2) => attr2.name)); for (let j = 0; j < attrs.length; j++) { if (!recipientAttrsMap.has(attrs[j].name)) { recipient.attrs.push(attrs[j]); } } }, //Tree traversing getFirstChild(node) { return node.childNodes[0]; }, getChildNodes(node) { return node.childNodes; }, getParentNode(node) { return node.parentNode; }, getAttrList(element) { return element.attrs; }, //Node data getTagName(element) { return element.tagName; }, getNamespaceURI(element) { return element.namespaceURI; }, getTextNodeContent(textNode) { return textNode.value; }, getCommentNodeContent(commentNode) { return commentNode.data; }, getDocumentTypeNodeName(doctypeNode) { return doctypeNode.name; }, getDocumentTypeNodePublicId(doctypeNode) { return doctypeNode.publicId; }, getDocumentTypeNodeSystemId(doctypeNode) { return doctypeNode.systemId; }, //Node types isTextNode(node) { return node.nodeName === "#text"; }, isCommentNode(node) { return node.nodeName === "#comment"; }, isDocumentTypeNode(node) { return node.nodeName === "#documentType"; }, isElementNode(node) { return Object.prototype.hasOwnProperty.call(node, "tagName"); }, // Source code location setNodeSourceCodeLocation(node, location) { node.sourceCodeLocation = location; }, getNodeSourceCodeLocation(node) { return node.sourceCodeLocation; }, updateNodeSourceCodeLocation(node, endLocation) { node.sourceCodeLocation = { ...node.sourceCodeLocation, ...endLocation }; } }; } }); // node_modules/parse5/dist/common/doctype.js function hasPrefix(publicId, prefixes) { return prefixes.some((prefix) => publicId.startsWith(prefix)); } function isConforming(token) { return token.name === VALID_DOCTYPE_NAME && token.publicId === null && (token.systemId === null || token.systemId === VALID_SYSTEM_ID); } function getDocumentMode(token) { if (token.name !== VALID_DOCTYPE_NAME) { return DOCUMENT_MODE.QUIRKS; } const { systemId } = token; if (systemId && systemId.toLowerCase() === QUIRKS_MODE_SYSTEM_ID) { return DOCUMENT_MODE.QUIRKS; } let { publicId } = token; if (publicId !== null) { publicId = publicId.toLowerCase(); if (QUIRKS_MODE_PUBLIC_IDS.has(publicId)) { return DOCUMENT_MODE.QUIRKS; } let prefixes = systemId === null ? QUIRKS_MODE_NO_SYSTEM_ID_PUBLIC_ID_PREFIXES : QUIRKS_MODE_PUBLIC_ID_PREFIXES; if (hasPrefix(publicId, prefixes)) { return DOCUMENT_MODE.QUIRKS; } prefixes = systemId === null ? LIMITED_QUIRKS_PUBLIC_ID_PREFIXES : LIMITED_QUIRKS_WITH_SYSTEM_ID_PUBLIC_ID_PREFIXES; if (hasPrefix(publicId, prefixes)) { return DOCUMENT_MODE.LIMITED_QUIRKS; } } return DOCUMENT_MODE.NO_QUIRKS; } var VALID_DOCTYPE_NAME, VALID_SYSTEM_ID, QUIRKS_MODE_SYSTEM_ID, QUIRKS_MODE_PUBLIC_ID_PREFIXES, QUIRKS_MODE_NO_SYSTEM_ID_PUBLIC_ID_PREFIXES, QUIRKS_MODE_PUBLIC_IDS, LIMITED_QUIRKS_PUBLIC_ID_PREFIXES, LIMITED_QUIRKS_WITH_SYSTEM_ID_PUBLIC_ID_PREFIXES; var init_doctype = __esm({ "node_modules/parse5/dist/common/doctype.js"() { init_html(); VALID_DOCTYPE_NAME = "html"; VALID_SYSTEM_ID = "about:legacy-compat"; QUIRKS_MODE_SYSTEM_ID = "http://www.ibm.com/data/dtd/v11/ibmxhtml1-transitional.dtd"; QUIRKS_MODE_PUBLIC_ID_PREFIXES = [ "+//silmaril//dtd html pro v0r11 19970101//", "-//as//dtd html 3.0 aswedit + extensions//", "-//advasoft ltd//dtd html 3.0 aswedit + extensions//", "-//ietf//dtd html 2.0 level 1//", "-//ietf//dtd html 2.0 level 2//", "-//ietf//dtd html 2.0 strict level 1//", "-//ietf//dtd html 2.0 strict level 2//", "-//ietf//dtd html 2.0 strict//", "-//ietf//dtd html 2.0//", "-//ietf//dtd html 2.1e//", "-//ietf//dtd html 3.0//", "-//ietf//dtd html 3.2 final//", "-//ietf//dtd html 3.2//", "-//ietf//dtd html 3//", "-//ietf//dtd html level 0//", "-//ietf//dtd html level 1//", "-//ietf//dtd html level 2//", "-//ietf//dtd html level 3//", "-//ietf//dtd html strict level 0//", "-//ietf//dtd html strict level 1//", "-//ietf//dtd html strict level 2//", "-//ietf//dtd html strict level 3//", "-//ietf//dtd html strict//", "-//ietf//dtd html//", "-//metrius//dtd metrius presentational//", "-//microsoft//dtd internet explorer 2.0 html strict//", "-//microsoft//dtd internet explorer 2.0 html//", "-//microsoft//dtd internet explorer 2.0 tables//", "-//microsoft//dtd internet explorer 3.0 html strict//", "-//microsoft//dtd internet explorer 3.0 html//", "-//microsoft//dtd internet explorer 3.0 tables//", "-//netscape comm. corp.//dtd html//", "-//netscape comm. corp.//dtd strict html//", "-//o'reilly and associates//dtd html 2.0//", "-//o'reilly and associates//dtd html extended 1.0//", "-//o'reilly and associates//dtd html extended relaxed 1.0//", "-//sq//dtd html 2.0 hotmetal + extensions//", "-//softquad software//dtd hotmetal pro 6.0::19990601::extensions to html 4.0//", "-//softquad//dtd hotmetal pro 4.0::19971010::extensions to html 4.0//", "-//spyglass//dtd html 2.0 extended//", "-//sun microsystems corp.//dtd hotjava html//", "-//sun microsystems corp.//dtd hotjava strict html//", "-//w3c//dtd html 3 1995-03-24//", "-//w3c//dtd html 3.2 draft//", "-//w3c//dtd html 3.2 final//", "-//w3c//dtd html 3.2//", "-//w3c//dtd html 3.2s draft//", "-//w3c//dtd html 4.0 frameset//", "-//w3c//dtd html 4.0 transitional//", "-//w3c//dtd html experimental 19960712//", "-//w3c//dtd html experimental 970421//", "-//w3c//dtd w3 html//", "-//w3o//dtd w3 html 3.0//", "-//webtechs//dtd mozilla html 2.0//", "-//webtechs//dtd mozilla html//" ]; QUIRKS_MODE_NO_SYSTEM_ID_PUBLIC_ID_PREFIXES = [ ...QUIRKS_MODE_PUBLIC_ID_PREFIXES, "-//w3c//dtd html 4.01 frameset//", "-//w3c//dtd html 4.01 transitional//" ]; QUIRKS_MODE_PUBLIC_IDS = /* @__PURE__ */ new Set([ "-//w3o//dtd w3 html strict 3.0//en//", "-/w3c/dtd html 4.0 transitional/en", "html" ]); LIMITED_QUIRKS_PUBLIC_ID_PREFIXES = ["-//w3c//dtd xhtml 1.0 frameset//", "-//w3c//dtd xhtml 1.0 transitional//"]; LIMITED_QUIRKS_WITH_SYSTEM_ID_PUBLIC_ID_PREFIXES = [ ...LIMITED_QUIRKS_PUBLIC_ID_PREFIXES, "-//w3c//dtd html 4.01 frameset//", "-//w3c//dtd html 4.01 transitional//" ]; } }); // node_modules/parse5/dist/common/foreign-content.js function causesExit(startTagToken) { const tn = startTagToken.tagID; const isFontWithAttrs = tn === TAG_ID.FONT && startTagToken.attrs.some(({ name }) => name === ATTRS.COLOR || name === ATTRS.SIZE || name === ATTRS.FACE); return isFontWithAttrs || EXITS_FOREIGN_CONTENT.has(tn); } function adjustTokenMathMLAttrs(token) { for (let i = 0; i < token.attrs.length; i++) { if (token.attrs[i].name === DEFINITION_URL_ATTR) { token.attrs[i].name = ADJUSTED_DEFINITION_URL_ATTR; break; } } } function adjustTokenSVGAttrs(token) { for (let i = 0; i < token.attrs.length; i++) { const adjustedAttrName = SVG_ATTRS_ADJUSTMENT_MAP.get(token.attrs[i].name); if (adjustedAttrName != null) { token.attrs[i].name = adjustedAttrName; } } } function adjustTokenXMLAttrs(token) { for (let i = 0; i < token.attrs.length; i++) { const adjustedAttrEntry = XML_ATTRS_ADJUSTMENT_MAP.get(token.attrs[i].name); if (adjustedAttrEntry) { token.attrs[i].prefix = adjustedAttrEntry.prefix; token.attrs[i].name = adjustedAttrEntry.name; token.attrs[i].namespace = adjustedAttrEntry.namespace; } } } function adjustTokenSVGTagName(token) { const adjustedTagName = SVG_TAG_NAMES_ADJUSTMENT_MAP.get(token.tagName); if (adjustedTagName != null) { token.tagName = adjustedTagName; token.tagID = getTagID(token.tagName); } } function isMathMLTextIntegrationPoint(tn, ns) { return ns === NS.MATHML && (tn === TAG_ID.MI || tn === TAG_ID.MO || tn === TAG_ID.MN || tn === TAG_ID.MS || tn === TAG_ID.MTEXT); } function isHtmlIntegrationPoint(tn, ns, attrs) { if (ns === NS.MATHML && tn === TAG_ID.ANNOTATION_XML) { for (let i = 0; i < attrs.length; i++) { if (attrs[i].name === ATTRS.ENCODING) { const value = attrs[i].value.toLowerCase(); return value === MIME_TYPES.TEXT_HTML || value === MIME_TYPES.APPLICATION_XML; } } } return ns === NS.SVG && (tn === TAG_ID.FOREIGN_OBJECT || tn === TAG_ID.DESC || tn === TAG_ID.TITLE); } function isIntegrationPoint(tn, ns, attrs, foreignNS) { return (!foreignNS || foreignNS === NS.HTML) && isHtmlIntegrationPoint(tn, ns, attrs) || (!foreignNS || foreignNS === NS.MATHML) && isMathMLTextIntegrationPoint(tn, ns); } var MIME_TYPES, DEFINITION_URL_ATTR, ADJUSTED_DEFINITION_URL_ATTR, SVG_ATTRS_ADJUSTMENT_MAP, XML_ATTRS_ADJUSTMENT_MAP, SVG_TAG_NAMES_ADJUSTMENT_MAP, EXITS_FOREIGN_CONTENT; var init_foreign_content = __esm({ "node_modules/parse5/dist/common/foreign-content.js"() { init_html(); MIME_TYPES = { TEXT_HTML: "text/html", APPLICATION_XML: "application/xhtml+xml" }; DEFINITION_URL_ATTR = "definitionurl"; ADJUSTED_DEFINITION_URL_ATTR = "definitionURL"; SVG_ATTRS_ADJUSTMENT_MAP = new Map([ "attributeName", "attributeType", "baseFrequency", "baseProfile", "calcMode", "clipPathUnits", "diffuseConstant", "edgeMode", "filterUnits", "glyphRef", "gradientTransform", "gradientUnits", "kernelMatrix", "kernelUnitLength", "keyPoints", "keySplines", "keyTimes", "lengthAdjust", "limitingConeAngle", "markerHeight", "markerUnits", "markerWidth", "maskContentUnits", "maskUnits", "numOctaves", "pathLength", "patternContentUnits", "patternTransform", "patternUnits", "pointsAtX", "pointsAtY", "pointsAtZ", "preserveAlpha", "preserveAspectRatio", "primitiveUnits", "refX", "refY", "repeatCount", "repeatDur", "requiredExtensions", "requiredFeatures", "specularConstant", "specularExponent", "spreadMethod", "startOffset", "stdDeviation", "stitchTiles", "surfaceScale", "systemLanguage", "tableValues", "targetX", "targetY", "textLength", "viewBox", "viewTarget", "xChannelSelector", "yChannelSelector", "zoomAndPan" ].map((attr2) => [attr2.toLowerCase(), attr2])); XML_ATTRS_ADJUSTMENT_MAP = /* @__PURE__ */ new Map([ ["xlink:actuate", { prefix: "xlink", name: "actuate", namespace: NS.XLINK }], ["xlink:arcrole", { prefix: "xlink", name: "arcrole", namespace: NS.XLINK }], ["xlink:href", { prefix: "xlink", name: "href", namespace: NS.XLINK }], ["xlink:role", { prefix: "xlink", name: "role", namespace: NS.XLINK }], ["xlink:show", { prefix: "xlink", name: "show", namespace: NS.XLINK }], ["xlink:title", { prefix: "xlink", name: "title", namespace: NS.XLINK }], ["xlink:type", { prefix: "xlink", name: "type", namespace: NS.XLINK }], ["xml:lang", { prefix: "xml", name: "lang", namespace: NS.XML }], ["xml:space", { prefix: "xml", name: "space", namespace: NS.XML }], ["xmlns", { prefix: "", name: "xmlns", namespace: NS.XMLNS }], ["xmlns:xlink", { prefix: "xmlns", name: "xlink", namespace: NS.XMLNS }] ]); SVG_TAG_NAMES_ADJUSTMENT_MAP = new Map([ "altGlyph", "altGlyphDef", "altGlyphItem", "animateColor", "animateMotion", "animateTransform", "clipPath", "feBlend", "feColorMatrix", "feComponentTransfer", "feComposite", "feConvolveMatrix", "feDiffuseLighting", "feDisplacementMap", "feDistantLight", "feFlood", "feFuncA", "feFuncB", "feFuncG", "feFuncR", "feGaussianBlur", "feImage", "feMerge", "feMergeNode", "feMorphology", "feOffset", "fePointLight", "feSpecularLighting", "feSpotLight", "feTile", "feTurbulence", "foreignObject", "glyphRef", "linearGradient", "radialGradient", "textPath" ].map((tn) => [tn.toLowerCase(), tn])); EXITS_FOREIGN_CONTENT = /* @__PURE__ */ new Set([ TAG_ID.B, TAG_ID.BIG, TAG_ID.BLOCKQUOTE, TAG_ID.BODY, TAG_ID.BR, TAG_ID.CENTER, TAG_ID.CODE, TAG_ID.DD, TAG_ID.DIV, TAG_ID.DL, TAG_ID.DT, TAG_ID.EM, TAG_ID.EMBED, TAG_ID.H1, TAG_ID.H2, TAG_ID.H3, TAG_ID.H4, TAG_ID.H5, TAG_ID.H6, TAG_ID.HEAD, TAG_ID.HR, TAG_ID.I, TAG_ID.IMG, TAG_ID.LI, TAG_ID.LISTING, TAG_ID.MENU, TAG_ID.META, TAG_ID.NOBR, TAG_ID.OL, TAG_ID.P, TAG_ID.PRE, TAG_ID.RUBY, TAG_ID.S, TAG_ID.SMALL, TAG_ID.SPAN, TAG_ID.STRONG, TAG_ID.STRIKE, TAG_ID.SUB, TAG_ID.SUP, TAG_ID.TABLE, TAG_ID.TT, TAG_ID.U, TAG_ID.UL, TAG_ID.VAR ]); } }); // node_modules/parse5/dist/parser/index.js function aaObtainFormattingElementEntry(p, token) { let formattingElementEntry = p.activeFormattingElements.getElementEntryInScopeWithTagName(token.tagName); if (formattingElementEntry) { if (!p.openElements.contains(formattingElementEntry.element)) { p.activeFormattingElements.removeEntry(formattingElementEntry); formattingElementEntry = null; } else if (!p.openElements.hasInScope(token.tagID)) { formattingElementEntry = null; } } else { genericEndTagInBody(p, token); } return formattingElementEntry; } function aaObtainFurthestBlock(p, formattingElementEntry) { let furthestBlock = null; let idx = p.openElements.stackTop; for (; idx >= 0; idx--) { const element = p.openElements.items[idx]; if (element === formattingElementEntry.element) { break; } if (p._isSpecialElement(element, p.openElements.tagIDs[idx])) { furthestBlock = element; } } if (!furthestBlock) { p.openElements.shortenToLength(idx < 0 ? 0 : idx); p.activeFormattingElements.removeEntry(formattingElementEntry); } return furthestBlock; } function aaInnerLoop(p, furthestBlock, formattingElement) { let lastElement = furthestBlock; let nextElement = p.openElements.getCommonAncestor(furthestBlock); for (let i = 0, element = nextElement; element !== formattingElement; i++, element = nextElement) { nextElement = p.openElements.getCommonAncestor(element); const elementEntry = p.activeFormattingElements.getElementEntry(element); const counterOverflow = elementEntry && i >= AA_INNER_LOOP_ITER; const shouldRemoveFromOpenElements = !elementEntry || counterOverflow; if (shouldRemoveFromOpenElements) { if (counterOverflow) { p.activeFormattingElements.removeEntry(elementEntry); } p.openElements.remove(element); } else { element = aaRecreateElementFromEntry(p, elementEntry); if (lastElement === furthestBlock) { p.activeFormattingElements.bookmark = elementEntry; } p.treeAdapter.detachNode(lastElement); p.treeAdapter.appendChild(element, lastElement); lastElement = element; } } return lastElement; } function aaRecreateElementFromEntry(p, elementEntry) { const ns = p.treeAdapter.getNamespaceURI(elementEntry.element); const newElement = p.treeAdapter.createElement(elementEntry.token.tagName, ns, elementEntry.token.attrs); p.openElements.replace(elementEntry.element, newElement); elementEntry.element = newElement; return newElement; } function aaInsertLastNodeInCommonAncestor(p, commonAncestor, lastElement) { const tn = p.treeAdapter.getTagName(commonAncestor); const tid = getTagID(tn); if (p._isElementCausesFosterParenting(tid)) { p._fosterParentElement(lastElement); } else { const ns = p.treeAdapter.getNamespaceURI(commonAncestor); if (tid === TAG_ID.TEMPLATE && ns === NS.HTML) { commonAncestor = p.treeAdapter.getTemplateContent(commonAncestor); } p.treeAdapter.appendChild(commonAncestor, lastElement); } } function aaReplaceFormattingElement(p, furthestBlock, formattingElementEntry) { const ns = p.treeAdapter.getNamespaceURI(formattingElementEntry.element); const { token } = formattingElementEntry; const newElement = p.treeAdapter.createElement(token.tagName, ns, token.attrs); p._adoptNodes(furthestBlock, newElement); p.treeAdapter.appendChild(furthestBlock, newElement); p.activeFormattingElements.insertElementAfterBookmark(newElement, token); p.activeFormattingElements.removeEntry(formattingElementEntry); p.openElements.remove(formattingElementEntry.element); p.openElements.insertAfter(furthestBlock, newElement, token.tagID); } function callAdoptionAgency(p, token) { for (let i = 0; i < AA_OUTER_LOOP_ITER; i++) { const formattingElementEntry = aaObtainFormattingElementEntry(p, token); if (!formattingElementEntry) { break; } const furthestBlock = aaObtainFurthestBlock(p, formattingElementEntry); if (!furthestBlock) { break; } p.activeFormattingElements.bookmark = formattingElementEntry; const lastElement = aaInnerLoop(p, furthestBlock, formattingElementEntry.element); const commonAncestor = p.openElements.getCommonAncestor(formattingElementEntry.element); p.treeAdapter.detachNode(lastElement); if (commonAncestor) aaInsertLastNodeInCommonAncestor(p, commonAncestor, lastElement); aaReplaceFormattingElement(p, furthestBlock, formattingElementEntry); } } function appendComment(p, token) { p._appendCommentNode(token, p.openElements.currentTmplContentOrNode); } function appendCommentToRootHtmlElement(p, token) { p._appendCommentNode(token, p.openElements.items[0]); } function appendCommentToDocument(p, token) { p._appendCommentNode(token, p.document); } function stopParsing(p, token) { p.stopped = true; if (token.location) { const target = p.fragmentContext ? 0 : 2; for (let i = p.openElements.stackTop; i >= target; i--) { p._setEndLocation(p.openElements.items[i], token); } if (!p.fragmentContext && p.openElements.stackTop >= 0) { const htmlElement = p.openElements.items[0]; const htmlLocation = p.treeAdapter.getNodeSourceCodeLocation(htmlElement); if (htmlLocation && !htmlLocation.endTag) { p._setEndLocation(htmlElement, token); if (p.openElements.stackTop >= 1) { const bodyElement = p.openElements.items[1]; const bodyLocation = p.treeAdapter.getNodeSourceCodeLocation(bodyElement); if (bodyLocation && !bodyLocation.endTag) { p._setEndLocation(bodyElement, token); } } } } } } function doctypeInInitialMode(p, token) { p._setDocumentType(token); const mode = token.forceQuirks ? DOCUMENT_MODE.QUIRKS : getDocumentMode(token); if (!isConforming(token)) { p._err(token, ERR.nonConformingDoctype); } p.treeAdapter.setDocumentMode(p.document, mode); p.insertionMode = InsertionMode.BEFORE_HTML; } function tokenInInitialMode(p, token) { p._err(token, ERR.missingDoctype, true); p.treeAdapter.setDocumentMode(p.document, DOCUMENT_MODE.QUIRKS); p.insertionMode = InsertionMode.BEFORE_HTML; p._processToken(token); } function startTagBeforeHtml(p, token) { if (token.tagID === TAG_ID.HTML) { p._insertElement(token, NS.HTML); p.insertionMode = InsertionMode.BEFORE_HEAD; } else { tokenBeforeHtml(p, token); } } function endTagBeforeHtml(p, token) { const tn = token.tagID; if (tn === TAG_ID.HTML || tn === TAG_ID.HEAD || tn === TAG_ID.BODY || tn === TAG_ID.BR) { tokenBeforeHtml(p, token); } } function tokenBeforeHtml(p, token) { p._insertFakeRootElement(); p.insertionMode = InsertionMode.BEFORE_HEAD; p._processToken(token); } function startTagBeforeHead(p, token) { switch (token.tagID) { case TAG_ID.HTML: { startTagInBody(p, token); break; } case TAG_ID.HEAD: { p._insertElement(token, NS.HTML); p.headElement = p.openElements.current; p.insertionMode = InsertionMode.IN_HEAD; break; } default: { tokenBeforeHead(p, token); } } } function endTagBeforeHead(p, token) { const tn = token.tagID; if (tn === TAG_ID.HEAD || tn === TAG_ID.BODY || tn === TAG_ID.HTML || tn === TAG_ID.BR) { tokenBeforeHead(p, token); } else { p._err(token, ERR.endTagWithoutMatchingOpenElement); } } function tokenBeforeHead(p, token) { p._insertFakeElement(TAG_NAMES.HEAD, TAG_ID.HEAD); p.headElement = p.openElements.current; p.insertionMode = InsertionMode.IN_HEAD; p._processToken(token); } function startTagInHead(p, token) { switch (token.tagID) { case TAG_ID.HTML: { startTagInBody(p, token); break; } case TAG_ID.BASE: case TAG_ID.BASEFONT: case TAG_ID.BGSOUND: case TAG_ID.LINK: case TAG_ID.META: { p._appendElement(token, NS.HTML); token.ackSelfClosing = true; break; } case TAG_ID.TITLE: { p._switchToTextParsing(token, TokenizerMode.RCDATA); break; } case TAG_ID.NOSCRIPT: { if (p.options.scriptingEnabled) { p._switchToTextParsing(token, TokenizerMode.RAWTEXT); } else { p._insertElement(token, NS.HTML); p.insertionMode = InsertionMode.IN_HEAD_NO_SCRIPT; } break; } case TAG_ID.NOFRAMES: case TAG_ID.STYLE: { p._switchToTextParsing(token, TokenizerMode.RAWTEXT); break; } case TAG_ID.SCRIPT: { p._switchToTextParsing(token, TokenizerMode.SCRIPT_DATA); break; } case TAG_ID.TEMPLATE: { p._insertTemplate(token); p.activeFormattingElements.insertMarker(); p.framesetOk = false; p.insertionMode = InsertionMode.IN_TEMPLATE; p.tmplInsertionModeStack.unshift(InsertionMode.IN_TEMPLATE); break; } case TAG_ID.HEAD: { p._err(token, ERR.misplacedStartTagForHeadElement); break; } default: { tokenInHead(p, token); } } } function endTagInHead(p, token) { switch (token.tagID) { case TAG_ID.HEAD: { p.openElements.pop(); p.insertionMode = InsertionMode.AFTER_HEAD; break; } case TAG_ID.BODY: case TAG_ID.BR: case TAG_ID.HTML: { tokenInHead(p, token); break; } case TAG_ID.TEMPLATE: { templateEndTagInHead(p, token); break; } default: { p._err(token, ERR.endTagWithoutMatchingOpenElement); } } } function templateEndTagInHead(p, token) { if (p.openElements.tmplCount > 0) { p.openElements.generateImpliedEndTagsThoroughly(); if (p.openElements.currentTagId !== TAG_ID.TEMPLATE) { p._err(token, ERR.closingOfElementWithOpenChildElements); } p.openElements.popUntilTagNamePopped(TAG_ID.TEMPLATE); p.activeFormattingElements.clearToLastMarker(); p.tmplInsertionModeStack.shift(); p._resetInsertionMode(); } else { p._err(token, ERR.endTagWithoutMatchingOpenElement); } } function tokenInHead(p, token) { p.openElements.pop(); p.insertionMode = InsertionMode.AFTER_HEAD; p._processToken(token); } function startTagInHeadNoScript(p, token) { switch (token.tagID) { case TAG_ID.HTML: { startTagInBody(p, token); break; } case TAG_ID.BASEFONT: case TAG_ID.BGSOUND: case TAG_ID.HEAD: case TAG_ID.LINK: case TAG_ID.META: case TAG_ID.NOFRAMES: case TAG_ID.STYLE: { startTagInHead(p, token); break; } case TAG_ID.NOSCRIPT: { p._err(token, ERR.nestedNoscriptInHead); break; } default: { tokenInHeadNoScript(p, token); } } } function endTagInHeadNoScript(p, token) { switch (token.tagID) { case TAG_ID.NOSCRIPT: { p.openElements.pop(); p.insertionMode = InsertionMode.IN_HEAD; break; } case TAG_ID.BR: { tokenInHeadNoScript(p, token); break; } default: { p._err(token, ERR.endTagWithoutMatchingOpenElement); } } } function tokenInHeadNoScript(p, token) { const errCode = token.type === TokenType.EOF ? ERR.openElementsLeftAfterEof : ERR.disallowedContentInNoscriptInHead; p._err(token, errCode); p.openElements.pop(); p.insertionMode = InsertionMode.IN_HEAD; p._processToken(token); } function startTagAfterHead(p, token) { switch (token.tagID) { case TAG_ID.HTML: { startTagInBody(p, token); break; } case TAG_ID.BODY: { p._insertElement(token, NS.HTML); p.framesetOk = false; p.insertionMode = InsertionMode.IN_BODY; break; } case TAG_ID.FRAMESET: { p._insertElement(token, NS.HTML); p.insertionMode = InsertionMode.IN_FRAMESET; break; } case TAG_ID.BASE: case TAG_ID.BASEFONT: case TAG_ID.BGSOUND: case TAG_ID.LINK: case TAG_ID.META: case TAG_ID.NOFRAMES: case TAG_ID.SCRIPT: case TAG_ID.STYLE: case TAG_ID.TEMPLATE: case TAG_ID.TITLE: { p._err(token, ERR.abandonedHeadElementChild); p.openElements.push(p.headElement, TAG_ID.HEAD); startTagInHead(p, token); p.openElements.remove(p.headElement); break; } case TAG_ID.HEAD: { p._err(token, ERR.misplacedStartTagForHeadElement); break; } default: { tokenAfterHead(p, token); } } } function endTagAfterHead(p, token) { switch (token.tagID) { case TAG_ID.BODY: case TAG_ID.HTML: case TAG_ID.BR: { tokenAfterHead(p, token); break; } case TAG_ID.TEMPLATE: { templateEndTagInHead(p, token); break; } default: { p._err(token, ERR.endTagWithoutMatchingOpenElement); } } } function tokenAfterHead(p, token) { p._insertFakeElement(TAG_NAMES.BODY, TAG_ID.BODY); p.insertionMode = InsertionMode.IN_BODY; modeInBody(p, token); } function modeInBody(p, token) { switch (token.type) { case TokenType.CHARACTER: { characterInBody(p, token); break; } case TokenType.WHITESPACE_CHARACTER: { whitespaceCharacterInBody(p, token); break; } case TokenType.COMMENT: { appendComment(p, token); break; } case TokenType.START_TAG: { startTagInBody(p, token); break; } case TokenType.END_TAG: { endTagInBody(p, token); break; } case TokenType.EOF: { eofInBody(p, token); break; } default: } } function whitespaceCharacterInBody(p, token) { p._reconstructActiveFormattingElements(); p._insertCharacters(token); } function characterInBody(p, token) { p._reconstructActiveFormattingElements(); p._insertCharacters(token); p.framesetOk = false; } function htmlStartTagInBody(p, token) { if (p.openElements.tmplCount === 0) { p.treeAdapter.adoptAttributes(p.openElements.items[0], token.attrs); } } function bodyStartTagInBody(p, token) { const bodyElement = p.openElements.tryPeekProperlyNestedBodyElement(); if (bodyElement && p.openElements.tmplCount === 0) { p.framesetOk = false; p.treeAdapter.adoptAttributes(bodyElement, token.attrs); } } function framesetStartTagInBody(p, token) { const bodyElement = p.openElements.tryPeekProperlyNestedBodyElement(); if (p.framesetOk && bodyElement) { p.treeAdapter.detachNode(bodyElement); p.openElements.popAllUpToHtmlElement(); p._insertElement(token, NS.HTML); p.insertionMode = InsertionMode.IN_FRAMESET; } } function addressStartTagInBody(p, token) { if (p.openElements.hasInButtonScope(TAG_ID.P)) { p._closePElement(); } p._insertElement(token, NS.HTML); } function numberedHeaderStartTagInBody(p, token) { if (p.openElements.hasInButtonScope(TAG_ID.P)) { p._closePElement(); } if (NUMBERED_HEADERS.has(p.openElements.currentTagId)) { p.openElements.pop(); } p._insertElement(token, NS.HTML); } function preStartTagInBody(p, token) { if (p.openElements.hasInButtonScope(TAG_ID.P)) { p._closePElement(); } p._insertElement(token, NS.HTML); p.skipNextNewLine = true; p.framesetOk = false; } function formStartTagInBody(p, token) { const inTemplate = p.openElements.tmplCount > 0; if (!p.formElement || inTemplate) { if (p.openElements.hasInButtonScope(TAG_ID.P)) { p._closePElement(); } p._insertElement(token, NS.HTML); if (!inTemplate) { p.formElement = p.openElements.current; } } } function listItemStartTagInBody(p, token) { p.framesetOk = false; const tn = token.tagID; for (let i = p.openElements.stackTop; i >= 0; i--) { const elementId = p.openElements.tagIDs[i]; if (tn === TAG_ID.LI && elementId === TAG_ID.LI || (tn === TAG_ID.DD || tn === TAG_ID.DT) && (elementId === TAG_ID.DD || elementId === TAG_ID.DT)) { p.openElements.generateImpliedEndTagsWithExclusion(elementId); p.openElements.popUntilTagNamePopped(elementId); break; } if (elementId !== TAG_ID.ADDRESS && elementId !== TAG_ID.DIV && elementId !== TAG_ID.P && p._isSpecialElement(p.openElements.items[i], elementId)) { break; } } if (p.openElements.hasInButtonScope(TAG_ID.P)) { p._closePElement(); } p._insertElement(token, NS.HTML); } function plaintextStartTagInBody(p, token) { if (p.openElements.hasInButtonScope(TAG_ID.P)) { p._closePElement(); } p._insertElement(token, NS.HTML); p.tokenizer.state = TokenizerMode.PLAINTEXT; } function buttonStartTagInBody(p, token) { if (p.openElements.hasInScope(TAG_ID.BUTTON)) { p.openElements.generateImpliedEndTags(); p.openElements.popUntilTagNamePopped(TAG_ID.BUTTON); } p._reconstructActiveFormattingElements(); p._insertElement(token, NS.HTML); p.framesetOk = false; } function aStartTagInBody(p, token) { const activeElementEntry = p.activeFormattingElements.getElementEntryInScopeWithTagName(TAG_NAMES.A); if (activeElementEntry) { callAdoptionAgency(p, token); p.openElements.remove(activeElementEntry.element); p.activeFormattingElements.removeEntry(activeElementEntry); } p._reconstructActiveFormattingElements(); p._insertElement(token, NS.HTML); p.activeFormattingElements.pushElement(p.openElements.current, token); } function bStartTagInBody(p, token) { p._reconstructActiveFormattingElements(); p._insertElement(token, NS.HTML); p.activeFormattingElements.pushElement(p.openElements.current, token); } function nobrStartTagInBody(p, token) { p._reconstructActiveFormattingElements(); if (p.openElements.hasInScope(TAG_ID.NOBR)) { callAdoptionAgency(p, token); p._reconstructActiveFormattingElements(); } p._insertElement(token, NS.HTML); p.activeFormattingElements.pushElement(p.openElements.current, token); } function appletStartTagInBody(p, token) { p._reconstructActiveFormattingElements(); p._insertElement(token, NS.HTML); p.activeFormattingElements.insertMarker(); p.framesetOk = false; } function tableStartTagInBody(p, token) { if (p.treeAdapter.getDocumentMode(p.document) !== DOCUMENT_MODE.QUIRKS && p.openElements.hasInButtonScope(TAG_ID.P)) { p._closePElement(); } p._insertElement(token, NS.HTML); p.framesetOk = false; p.insertionMode = InsertionMode.IN_TABLE; } function areaStartTagInBody(p, token) { p._reconstructActiveFormattingElements(); p._appendElement(token, NS.HTML); p.framesetOk = false; token.ackSelfClosing = true; } function isHiddenInput(token) { const inputType = getTokenAttr(token, ATTRS.TYPE); return inputType != null && inputType.toLowerCase() === HIDDEN_INPUT_TYPE; } function inputStartTagInBody(p, token) { p._reconstructActiveFormattingElements(); p._appendElement(token, NS.HTML); if (!isHiddenInput(token)) { p.framesetOk = false; } token.ackSelfClosing = true; } function paramStartTagInBody(p, token) { p._appendElement(token, NS.HTML); token.ackSelfClosing = true; } function hrStartTagInBody(p, token) { if (p.openElements.hasInButtonScope(TAG_ID.P)) { p._closePElement(); } p._appendElement(token, NS.HTML); p.framesetOk = false; token.ackSelfClosing = true; } function imageStartTagInBody(p, token) { token.tagName = TAG_NAMES.IMG; token.tagID = TAG_ID.IMG; areaStartTagInBody(p, token); } function textareaStartTagInBody(p, token) { p._insertElement(token, NS.HTML); p.skipNextNewLine = true; p.tokenizer.state = TokenizerMode.RCDATA; p.originalInsertionMode = p.insertionMode; p.framesetOk = false; p.insertionMode = InsertionMode.TEXT; } function xmpStartTagInBody(p, token) { if (p.openElements.hasInButtonScope(TAG_ID.P)) { p._closePElement(); } p._reconstructActiveFormattingElements(); p.framesetOk = false; p._switchToTextParsing(token, TokenizerMode.RAWTEXT); } function iframeStartTagInBody(p, token) { p.framesetOk = false; p._switchToTextParsing(token, TokenizerMode.RAWTEXT); } function rawTextStartTagInBody(p, token) { p._switchToTextParsing(token, TokenizerMode.RAWTEXT); } function selectStartTagInBody(p, token) { p._reconstructActiveFormattingElements(); p._insertElement(token, NS.HTML); p.framesetOk = false; p.insertionMode = p.insertionMode === InsertionMode.IN_TABLE || p.insertionMode === InsertionMode.IN_CAPTION || p.insertionMode === InsertionMode.IN_TABLE_BODY || p.insertionMode === InsertionMode.IN_ROW || p.insertionMode === InsertionMode.IN_CELL ? InsertionMode.IN_SELECT_IN_TABLE : InsertionMode.IN_SELECT; } function optgroupStartTagInBody(p, token) { if (p.openElements.currentTagId === TAG_ID.OPTION) { p.openElements.pop(); } p._reconstructActiveFormattingElements(); p._insertElement(token, NS.HTML); } function rbStartTagInBody(p, token) { if (p.openElements.hasInScope(TAG_ID.RUBY)) { p.openElements.generateImpliedEndTags(); } p._insertElement(token, NS.HTML); } function rtStartTagInBody(p, token) { if (p.openElements.hasInScope(TAG_ID.RUBY)) { p.openElements.generateImpliedEndTagsWithExclusion(TAG_ID.RTC); } p._insertElement(token, NS.HTML); } function mathStartTagInBody(p, token) { p._reconstructActiveFormattingElements(); adjustTokenMathMLAttrs(token); adjustTokenXMLAttrs(token); if (token.selfClosing) { p._appendElement(token, NS.MATHML); } else { p._insertElement(token, NS.MATHML); } token.ackSelfClosing = true; } function svgStartTagInBody(p, token) { p._reconstructActiveFormattingElements(); adjustTokenSVGAttrs(token); adjustTokenXMLAttrs(token); if (token.selfClosing) { p._appendElement(token, NS.SVG); } else { p._insertElement(token, NS.SVG); } token.ackSelfClosing = true; } function genericStartTagInBody(p, token) { p._reconstructActiveFormattingElements(); p._insertElement(token, NS.HTML); } function startTagInBody(p, token) { switch (token.tagID) { case TAG_ID.I: case TAG_ID.S: case TAG_ID.B: case TAG_ID.U: case TAG_ID.EM: case TAG_ID.TT: case TAG_ID.BIG: case TAG_ID.CODE: case TAG_ID.FONT: case TAG_ID.SMALL: case TAG_ID.STRIKE: case TAG_ID.STRONG: { bStartTagInBody(p, token); break; } case TAG_ID.A: { aStartTagInBody(p, token); break; } case TAG_ID.H1: case TAG_ID.H2: case TAG_ID.H3: case TAG_ID.H4: case TAG_ID.H5: case TAG_ID.H6: { numberedHeaderStartTagInBody(p, token); break; } case TAG_ID.P: case TAG_ID.DL: case TAG_ID.OL: case TAG_ID.UL: case TAG_ID.DIV: case TAG_ID.DIR: case TAG_ID.NAV: case TAG_ID.MAIN: case TAG_ID.MENU: case TAG_ID.ASIDE: case TAG_ID.CENTER: case TAG_ID.FIGURE: case TAG_ID.FOOTER: case TAG_ID.HEADER: case TAG_ID.HGROUP: case TAG_ID.DIALOG: case TAG_ID.DETAILS: case TAG_ID.ADDRESS: case TAG_ID.ARTICLE: case TAG_ID.SEARCH: case TAG_ID.SECTION: case TAG_ID.SUMMARY: case TAG_ID.FIELDSET: case TAG_ID.BLOCKQUOTE: case TAG_ID.FIGCAPTION: { addressStartTagInBody(p, token); break; } case TAG_ID.LI: case TAG_ID.DD: case TAG_ID.DT: { listItemStartTagInBody(p, token); break; } case TAG_ID.BR: case TAG_ID.IMG: case TAG_ID.WBR: case TAG_ID.AREA: case TAG_ID.EMBED: case TAG_ID.KEYGEN: { areaStartTagInBody(p, token); break; } case TAG_ID.HR: { hrStartTagInBody(p, token); break; } case TAG_ID.RB: case TAG_ID.RTC: { rbStartTagInBody(p, token); break; } case TAG_ID.RT: case TAG_ID.RP: { rtStartTagInBody(p, token); break; } case TAG_ID.PRE: case TAG_ID.LISTING: { preStartTagInBody(p, token); break; } case TAG_ID.XMP: { xmpStartTagInBody(p, token); break; } case TAG_ID.SVG: { svgStartTagInBody(p, token); break; } case TAG_ID.HTML: { htmlStartTagInBody(p, token); break; } case TAG_ID.BASE: case TAG_ID.LINK: case TAG_ID.META: case TAG_ID.STYLE: case TAG_ID.TITLE: case TAG_ID.SCRIPT: case TAG_ID.BGSOUND: case TAG_ID.BASEFONT: case TAG_ID.TEMPLATE: { startTagInHead(p, token); break; } case TAG_ID.BODY: { bodyStartTagInBody(p, token); break; } case TAG_ID.FORM: { formStartTagInBody(p, token); break; } case TAG_ID.NOBR: { nobrStartTagInBody(p, token); break; } case TAG_ID.MATH: { mathStartTagInBody(p, token); break; } case TAG_ID.TABLE: { tableStartTagInBody(p, token); break; } case TAG_ID.INPUT: { inputStartTagInBody(p, token); break; } case TAG_ID.PARAM: case TAG_ID.TRACK: case TAG_ID.SOURCE: { paramStartTagInBody(p, token); break; } case TAG_ID.IMAGE: { imageStartTagInBody(p, token); break; } case TAG_ID.BUTTON: { buttonStartTagInBody(p, token); break; } case TAG_ID.APPLET: case TAG_ID.OBJECT: case TAG_ID.MARQUEE: { appletStartTagInBody(p, token); break; } case TAG_ID.IFRAME: { iframeStartTagInBody(p, token); break; } case TAG_ID.SELECT: { selectStartTagInBody(p, token); break; } case TAG_ID.OPTION: case TAG_ID.OPTGROUP: { optgroupStartTagInBody(p, token); break; } case TAG_ID.NOEMBED: case TAG_ID.NOFRAMES: { rawTextStartTagInBody(p, token); break; } case TAG_ID.FRAMESET: { framesetStartTagInBody(p, token); break; } case TAG_ID.TEXTAREA: { textareaStartTagInBody(p, token); break; } case TAG_ID.NOSCRIPT: { if (p.options.scriptingEnabled) { rawTextStartTagInBody(p, token); } else { genericStartTagInBody(p, token); } break; } case TAG_ID.PLAINTEXT: { plaintextStartTagInBody(p, token); break; } case TAG_ID.COL: case TAG_ID.TH: case TAG_ID.TD: case TAG_ID.TR: case TAG_ID.HEAD: case TAG_ID.FRAME: case TAG_ID.TBODY: case TAG_ID.TFOOT: case TAG_ID.THEAD: case TAG_ID.CAPTION: case TAG_ID.COLGROUP: { break; } default: { genericStartTagInBody(p, token); } } } function bodyEndTagInBody(p, token) { if (p.openElements.hasInScope(TAG_ID.BODY)) { p.insertionMode = InsertionMode.AFTER_BODY; if (p.options.sourceCodeLocationInfo) { const bodyElement = p.openElements.tryPeekProperlyNestedBodyElement(); if (bodyElement) { p._setEndLocation(bodyElement, token); } } } } function htmlEndTagInBody(p, token) { if (p.openElements.hasInScope(TAG_ID.BODY)) { p.insertionMode = InsertionMode.AFTER_BODY; endTagAfterBody(p, token); } } function addressEndTagInBody(p, token) { const tn = token.tagID; if (p.openElements.hasInScope(tn)) { p.openElements.generateImpliedEndTags(); p.openElements.popUntilTagNamePopped(tn); } } function formEndTagInBody(p) { const inTemplate = p.openElements.tmplCount > 0; const { formElement } = p; if (!inTemplate) { p.formElement = null; } if ((formElement || inTemplate) && p.openElements.hasInScope(TAG_ID.FORM)) { p.openElements.generateImpliedEndTags(); if (inTemplate) { p.openElements.popUntilTagNamePopped(TAG_ID.FORM); } else if (formElement) { p.openElements.remove(formElement); } } } function pEndTagInBody(p) { if (!p.openElements.hasInButtonScope(TAG_ID.P)) { p._insertFakeElement(TAG_NAMES.P, TAG_ID.P); } p._closePElement(); } function liEndTagInBody(p) { if (p.openElements.hasInListItemScope(TAG_ID.LI)) { p.openElements.generateImpliedEndTagsWithExclusion(TAG_ID.LI); p.openElements.popUntilTagNamePopped(TAG_ID.LI); } } function ddEndTagInBody(p, token) { const tn = token.tagID; if (p.openElements.hasInScope(tn)) { p.openElements.generateImpliedEndTagsWithExclusion(tn); p.openElements.popUntilTagNamePopped(tn); } } function numberedHeaderEndTagInBody(p) { if (p.openElements.hasNumberedHeaderInScope()) { p.openElements.generateImpliedEndTags(); p.openElements.popUntilNumberedHeaderPopped(); } } function appletEndTagInBody(p, token) { const tn = token.tagID; if (p.openElements.hasInScope(tn)) { p.openElements.generateImpliedEndTags(); p.openElements.popUntilTagNamePopped(tn); p.activeFormattingElements.clearToLastMarker(); } } function brEndTagInBody(p) { p._reconstructActiveFormattingElements(); p._insertFakeElement(TAG_NAMES.BR, TAG_ID.BR); p.openElements.pop(); p.framesetOk = false; } function genericEndTagInBody(p, token) { const tn = token.tagName; const tid = token.tagID; for (let i = p.openElements.stackTop; i > 0; i--) { const element = p.openElements.items[i]; const elementId = p.openElements.tagIDs[i]; if (tid === elementId && (tid !== TAG_ID.UNKNOWN || p.treeAdapter.getTagName(element) === tn)) { p.openElements.generateImpliedEndTagsWithExclusion(tid); if (p.openElements.stackTop >= i) p.openElements.shortenToLength(i); break; } if (p._isSpecialElement(element, elementId)) { break; } } } function endTagInBody(p, token) { switch (token.tagID) { case TAG_ID.A: case TAG_ID.B: case TAG_ID.I: case TAG_ID.S: case TAG_ID.U: case TAG_ID.EM: case TAG_ID.TT: case TAG_ID.BIG: case TAG_ID.CODE: case TAG_ID.FONT: case TAG_ID.NOBR: case TAG_ID.SMALL: case TAG_ID.STRIKE: case TAG_ID.STRONG: { callAdoptionAgency(p, token); break; } case TAG_ID.P: { pEndTagInBody(p); break; } case TAG_ID.DL: case TAG_ID.UL: case TAG_ID.OL: case TAG_ID.DIR: case TAG_ID.DIV: case TAG_ID.NAV: case TAG_ID.PRE: case TAG_ID.MAIN: case TAG_ID.MENU: case TAG_ID.ASIDE: case TAG_ID.BUTTON: case TAG_ID.CENTER: case TAG_ID.FIGURE: case TAG_ID.FOOTER: case TAG_ID.HEADER: case TAG_ID.HGROUP: case TAG_ID.DIALOG: case TAG_ID.ADDRESS: case TAG_ID.ARTICLE: case TAG_ID.DETAILS: case TAG_ID.SEARCH: case TAG_ID.SECTION: case TAG_ID.SUMMARY: case TAG_ID.LISTING: case TAG_ID.FIELDSET: case TAG_ID.BLOCKQUOTE: case TAG_ID.FIGCAPTION: { addressEndTagInBody(p, token); break; } case TAG_ID.LI: { liEndTagInBody(p); break; } case TAG_ID.DD: case TAG_ID.DT: { ddEndTagInBody(p, token); break; } case TAG_ID.H1: case TAG_ID.H2: case TAG_ID.H3: case TAG_ID.H4: case TAG_ID.H5: case TAG_ID.H6: { numberedHeaderEndTagInBody(p); break; } case TAG_ID.BR: { brEndTagInBody(p); break; } case TAG_ID.BODY: { bodyEndTagInBody(p, token); break; } case TAG_ID.HTML: { htmlEndTagInBody(p, token); break; } case TAG_ID.FORM: { formEndTagInBody(p); break; } case TAG_ID.APPLET: case TAG_ID.OBJECT: case TAG_ID.MARQUEE: { appletEndTagInBody(p, token); break; } case TAG_ID.TEMPLATE: { templateEndTagInHead(p, token); break; } default: { genericEndTagInBody(p, token); } } } function eofInBody(p, token) { if (p.tmplInsertionModeStack.length > 0) { eofInTemplate(p, token); } else { stopParsing(p, token); } } function endTagInText(p, token) { var _a2; if (token.tagID === TAG_ID.SCRIPT) { (_a2 = p.scriptHandler) === null || _a2 === void 0 ? void 0 : _a2.call(p, p.openElements.current); } p.openElements.pop(); p.insertionMode = p.originalInsertionMode; } function eofInText(p, token) { p._err(token, ERR.eofInElementThatCanContainOnlyText); p.openElements.pop(); p.insertionMode = p.originalInsertionMode; p.onEof(token); } function characterInTable(p, token) { if (TABLE_STRUCTURE_TAGS.has(p.openElements.currentTagId)) { p.pendingCharacterTokens.length = 0; p.hasNonWhitespacePendingCharacterToken = false; p.originalInsertionMode = p.insertionMode; p.insertionMode = InsertionMode.IN_TABLE_TEXT; switch (token.type) { case TokenType.CHARACTER: { characterInTableText(p, token); break; } case TokenType.WHITESPACE_CHARACTER: { whitespaceCharacterInTableText(p, token); break; } } } else { tokenInTable(p, token); } } function captionStartTagInTable(p, token) { p.openElements.clearBackToTableContext(); p.activeFormattingElements.insertMarker(); p._insertElement(token, NS.HTML); p.insertionMode = InsertionMode.IN_CAPTION; } function colgroupStartTagInTable(p, token) { p.openElements.clearBackToTableContext(); p._insertElement(token, NS.HTML); p.insertionMode = InsertionMode.IN_COLUMN_GROUP; } function colStartTagInTable(p, token) { p.openElements.clearBackToTableContext(); p._insertFakeElement(TAG_NAMES.COLGROUP, TAG_ID.COLGROUP); p.insertionMode = InsertionMode.IN_COLUMN_GROUP; startTagInColumnGroup(p, token); } function tbodyStartTagInTable(p, token) { p.openElements.clearBackToTableContext(); p._insertElement(token, NS.HTML); p.insertionMode = InsertionMode.IN_TABLE_BODY; } function tdStartTagInTable(p, token) { p.openElements.clearBackToTableContext(); p._insertFakeElement(TAG_NAMES.TBODY, TAG_ID.TBODY); p.insertionMode = InsertionMode.IN_TABLE_BODY; startTagInTableBody(p, token); } function tableStartTagInTable(p, token) { if (p.openElements.hasInTableScope(TAG_ID.TABLE)) { p.openElements.popUntilTagNamePopped(TAG_ID.TABLE); p._resetInsertionMode(); p._processStartTag(token); } } function inputStartTagInTable(p, token) { if (isHiddenInput(token)) { p._appendElement(token, NS.HTML); } else { tokenInTable(p, token); } token.ackSelfClosing = true; } function formStartTagInTable(p, token) { if (!p.formElement && p.openElements.tmplCount === 0) { p._insertElement(token, NS.HTML); p.formElement = p.openElements.current; p.openElements.pop(); } } function startTagInTable(p, token) { switch (token.tagID) { case TAG_ID.TD: case TAG_ID.TH: case TAG_ID.TR: { tdStartTagInTable(p, token); break; } case TAG_ID.STYLE: case TAG_ID.SCRIPT: case TAG_ID.TEMPLATE: { startTagInHead(p, token); break; } case TAG_ID.COL: { colStartTagInTable(p, token); break; } case TAG_ID.FORM: { formStartTagInTable(p, token); break; } case TAG_ID.TABLE: { tableStartTagInTable(p, token); break; } case TAG_ID.TBODY: case TAG_ID.TFOOT: case TAG_ID.THEAD: { tbodyStartTagInTable(p, token); break; } case TAG_ID.INPUT: { inputStartTagInTable(p, token); break; } case TAG_ID.CAPTION: { captionStartTagInTable(p, token); break; } case TAG_ID.COLGROUP: { colgroupStartTagInTable(p, token); break; } default: { tokenInTable(p, token); } } } function endTagInTable(p, token) { switch (token.tagID) { case TAG_ID.TABLE: { if (p.openElements.hasInTableScope(TAG_ID.TABLE)) { p.openElements.popUntilTagNamePopped(TAG_ID.TABLE); p._resetInsertionMode(); } break; } case TAG_ID.TEMPLATE: { templateEndTagInHead(p, token); break; } case TAG_ID.BODY: case TAG_ID.CAPTION: case TAG_ID.COL: case TAG_ID.COLGROUP: case TAG_ID.HTML: case TAG_ID.TBODY: case TAG_ID.TD: case TAG_ID.TFOOT: case TAG_ID.TH: case TAG_ID.THEAD: case TAG_ID.TR: { break; } default: { tokenInTable(p, token); } } } function tokenInTable(p, token) { const savedFosterParentingState = p.fosterParentingEnabled; p.fosterParentingEnabled = true; modeInBody(p, token); p.fosterParentingEnabled = savedFosterParentingState; } function whitespaceCharacterInTableText(p, token) { p.pendingCharacterTokens.push(token); } function characterInTableText(p, token) { p.pendingCharacterTokens.push(token); p.hasNonWhitespacePendingCharacterToken = true; } function tokenInTableText(p, token) { let i = 0; if (p.hasNonWhitespacePendingCharacterToken) { for (; i < p.pendingCharacterTokens.length; i++) { tokenInTable(p, p.pendingCharacterTokens[i]); } } else { for (; i < p.pendingCharacterTokens.length; i++) { p._insertCharacters(p.pendingCharacterTokens[i]); } } p.insertionMode = p.originalInsertionMode; p._processToken(token); } function startTagInCaption(p, token) { const tn = token.tagID; if (TABLE_VOID_ELEMENTS.has(tn)) { if (p.openElements.hasInTableScope(TAG_ID.CAPTION)) { p.openElements.generateImpliedEndTags(); p.openElements.popUntilTagNamePopped(TAG_ID.CAPTION); p.activeFormattingElements.clearToLastMarker(); p.insertionMode = InsertionMode.IN_TABLE; startTagInTable(p, token); } } else { startTagInBody(p, token); } } function endTagInCaption(p, token) { const tn = token.tagID; switch (tn) { case TAG_ID.CAPTION: case TAG_ID.TABLE: { if (p.openElements.hasInTableScope(TAG_ID.CAPTION)) { p.openElements.generateImpliedEndTags(); p.openElements.popUntilTagNamePopped(TAG_ID.CAPTION); p.activeFormattingElements.clearToLastMarker(); p.insertionMode = InsertionMode.IN_TABLE; if (tn === TAG_ID.TABLE) { endTagInTable(p, token); } } break; } case TAG_ID.BODY: case TAG_ID.COL: case TAG_ID.COLGROUP: case TAG_ID.HTML: case TAG_ID.TBODY: case TAG_ID.TD: case TAG_ID.TFOOT: case TAG_ID.TH: case TAG_ID.THEAD: case TAG_ID.TR: { break; } default: { endTagInBody(p, token); } } } function startTagInColumnGroup(p, token) { switch (token.tagID) { case TAG_ID.HTML: { startTagInBody(p, token); break; } case TAG_ID.COL: { p._appendElement(token, NS.HTML); token.ackSelfClosing = true; break; } case TAG_ID.TEMPLATE: { startTagInHead(p, token); break; } default: { tokenInColumnGroup(p, token); } } } function endTagInColumnGroup(p, token) { switch (token.tagID) { case TAG_ID.COLGROUP: { if (p.openElements.currentTagId === TAG_ID.COLGROUP) { p.openElements.pop(); p.insertionMode = InsertionMode.IN_TABLE; } break; } case TAG_ID.TEMPLATE: { templateEndTagInHead(p, token); break; } case TAG_ID.COL: { break; } default: { tokenInColumnGroup(p, token); } } } function tokenInColumnGroup(p, token) { if (p.openElements.currentTagId === TAG_ID.COLGROUP) { p.openElements.pop(); p.insertionMode = InsertionMode.IN_TABLE; p._processToken(token); } } function startTagInTableBody(p, token) { switch (token.tagID) { case TAG_ID.TR: { p.openElements.clearBackToTableBodyContext(); p._insertElement(token, NS.HTML); p.insertionMode = InsertionMode.IN_ROW; break; } case TAG_ID.TH: case TAG_ID.TD: { p.openElements.clearBackToTableBodyContext(); p._insertFakeElement(TAG_NAMES.TR, TAG_ID.TR); p.insertionMode = InsertionMode.IN_ROW; startTagInRow(p, token); break; } case TAG_ID.CAPTION: case TAG_ID.COL: case TAG_ID.COLGROUP: case TAG_ID.TBODY: case TAG_ID.TFOOT: case TAG_ID.THEAD: { if (p.openElements.hasTableBodyContextInTableScope()) { p.openElements.clearBackToTableBodyContext(); p.openElements.pop(); p.insertionMode = InsertionMode.IN_TABLE; startTagInTable(p, token); } break; } default: { startTagInTable(p, token); } } } function endTagInTableBody(p, token) { const tn = token.tagID; switch (token.tagID) { case TAG_ID.TBODY: case TAG_ID.TFOOT: case TAG_ID.THEAD: { if (p.openElements.hasInTableScope(tn)) { p.openElements.clearBackToTableBodyContext(); p.openElements.pop(); p.insertionMode = InsertionMode.IN_TABLE; } break; } case TAG_ID.TABLE: { if (p.openElements.hasTableBodyContextInTableScope()) { p.openElements.clearBackToTableBodyContext(); p.openElements.pop(); p.insertionMode = InsertionMode.IN_TABLE; endTagInTable(p, token); } break; } case TAG_ID.BODY: case TAG_ID.CAPTION: case TAG_ID.COL: case TAG_ID.COLGROUP: case TAG_ID.HTML: case TAG_ID.TD: case TAG_ID.TH: case TAG_ID.TR: { break; } default: { endTagInTable(p, token); } } } function startTagInRow(p, token) { switch (token.tagID) { case TAG_ID.TH: case TAG_ID.TD: { p.openElements.clearBackToTableRowContext(); p._insertElement(token, NS.HTML); p.insertionMode = InsertionMode.IN_CELL; p.activeFormattingElements.insertMarker(); break; } case TAG_ID.CAPTION: case TAG_ID.COL: case TAG_ID.COLGROUP: case TAG_ID.TBODY: case TAG_ID.TFOOT: case TAG_ID.THEAD: case TAG_ID.TR: { if (p.openElements.hasInTableScope(TAG_ID.TR)) { p.openElements.clearBackToTableRowContext(); p.openElements.pop(); p.insertionMode = InsertionMode.IN_TABLE_BODY; startTagInTableBody(p, token); } break; } default: { startTagInTable(p, token); } } } function endTagInRow(p, token) { switch (token.tagID) { case TAG_ID.TR: { if (p.openElements.hasInTableScope(TAG_ID.TR)) { p.openElements.clearBackToTableRowContext(); p.openElements.pop(); p.insertionMode = InsertionMode.IN_TABLE_BODY; } break; } case TAG_ID.TABLE: { if (p.openElements.hasInTableScope(TAG_ID.TR)) { p.openElements.clearBackToTableRowContext(); p.openElements.pop(); p.insertionMode = InsertionMode.IN_TABLE_BODY; endTagInTableBody(p, token); } break; } case TAG_ID.TBODY: case TAG_ID.TFOOT: case TAG_ID.THEAD: { if (p.openElements.hasInTableScope(token.tagID) || p.openElements.hasInTableScope(TAG_ID.TR)) { p.openElements.clearBackToTableRowContext(); p.openElements.pop(); p.insertionMode = InsertionMode.IN_TABLE_BODY; endTagInTableBody(p, token); } break; } case TAG_ID.BODY: case TAG_ID.CAPTION: case TAG_ID.COL: case TAG_ID.COLGROUP: case TAG_ID.HTML: case TAG_ID.TD: case TAG_ID.TH: { break; } default: { endTagInTable(p, token); } } } function startTagInCell(p, token) { const tn = token.tagID; if (TABLE_VOID_ELEMENTS.has(tn)) { if (p.openElements.hasInTableScope(TAG_ID.TD) || p.openElements.hasInTableScope(TAG_ID.TH)) { p._closeTableCell(); startTagInRow(p, token); } } else { startTagInBody(p, token); } } function endTagInCell(p, token) { const tn = token.tagID; switch (tn) { case TAG_ID.TD: case TAG_ID.TH: { if (p.openElements.hasInTableScope(tn)) { p.openElements.generateImpliedEndTags(); p.openElements.popUntilTagNamePopped(tn); p.activeFormattingElements.clearToLastMarker(); p.insertionMode = InsertionMode.IN_ROW; } break; } case TAG_ID.TABLE: case TAG_ID.TBODY: case TAG_ID.TFOOT: case TAG_ID.THEAD: case TAG_ID.TR: { if (p.openElements.hasInTableScope(tn)) { p._closeTableCell(); endTagInRow(p, token); } break; } case TAG_ID.BODY: case TAG_ID.CAPTION: case TAG_ID.COL: case TAG_ID.COLGROUP: case TAG_ID.HTML: { break; } default: { endTagInBody(p, token); } } } function startTagInSelect(p, token) { switch (token.tagID) { case TAG_ID.HTML: { startTagInBody(p, token); break; } case TAG_ID.OPTION: { if (p.openElements.currentTagId === TAG_ID.OPTION) { p.openElements.pop(); } p._insertElement(token, NS.HTML); break; } case TAG_ID.OPTGROUP: { if (p.openElements.currentTagId === TAG_ID.OPTION) { p.openElements.pop(); } if (p.openElements.currentTagId === TAG_ID.OPTGROUP) { p.openElements.pop(); } p._insertElement(token, NS.HTML); break; } case TAG_ID.HR: { if (p.openElements.currentTagId === TAG_ID.OPTION) { p.openElements.pop(); } if (p.openElements.currentTagId === TAG_ID.OPTGROUP) { p.openElements.pop(); } p._appendElement(token, NS.HTML); token.ackSelfClosing = true; break; } case TAG_ID.INPUT: case TAG_ID.KEYGEN: case TAG_ID.TEXTAREA: case TAG_ID.SELECT: { if (p.openElements.hasInSelectScope(TAG_ID.SELECT)) { p.openElements.popUntilTagNamePopped(TAG_ID.SELECT); p._resetInsertionMode(); if (token.tagID !== TAG_ID.SELECT) { p._processStartTag(token); } } break; } case TAG_ID.SCRIPT: case TAG_ID.TEMPLATE: { startTagInHead(p, token); break; } default: } } function endTagInSelect(p, token) { switch (token.tagID) { case TAG_ID.OPTGROUP: { if (p.openElements.stackTop > 0 && p.openElements.currentTagId === TAG_ID.OPTION && p.openElements.tagIDs[p.openElements.stackTop - 1] === TAG_ID.OPTGROUP) { p.openElements.pop(); } if (p.openElements.currentTagId === TAG_ID.OPTGROUP) { p.openElements.pop(); } break; } case TAG_ID.OPTION: { if (p.openElements.currentTagId === TAG_ID.OPTION) { p.openElements.pop(); } break; } case TAG_ID.SELECT: { if (p.openElements.hasInSelectScope(TAG_ID.SELECT)) { p.openElements.popUntilTagNamePopped(TAG_ID.SELECT); p._resetInsertionMode(); } break; } case TAG_ID.TEMPLATE: { templateEndTagInHead(p, token); break; } default: } } function startTagInSelectInTable(p, token) { const tn = token.tagID; if (tn === TAG_ID.CAPTION || tn === TAG_ID.TABLE || tn === TAG_ID.TBODY || tn === TAG_ID.TFOOT || tn === TAG_ID.THEAD || tn === TAG_ID.TR || tn === TAG_ID.TD || tn === TAG_ID.TH) { p.openElements.popUntilTagNamePopped(TAG_ID.SELECT); p._resetInsertionMode(); p._processStartTag(token); } else { startTagInSelect(p, token); } } function endTagInSelectInTable(p, token) { const tn = token.tagID; if (tn === TAG_ID.CAPTION || tn === TAG_ID.TABLE || tn === TAG_ID.TBODY || tn === TAG_ID.TFOOT || tn === TAG_ID.THEAD || tn === TAG_ID.TR || tn === TAG_ID.TD || tn === TAG_ID.TH) { if (p.openElements.hasInTableScope(tn)) { p.openElements.popUntilTagNamePopped(TAG_ID.SELECT); p._resetInsertionMode(); p.onEndTag(token); } } else { endTagInSelect(p, token); } } function startTagInTemplate(p, token) { switch (token.tagID) { // First, handle tags that can start without a mode change case TAG_ID.BASE: case TAG_ID.BASEFONT: case TAG_ID.BGSOUND: case TAG_ID.LINK: case TAG_ID.META: case TAG_ID.NOFRAMES: case TAG_ID.SCRIPT: case TAG_ID.STYLE: case TAG_ID.TEMPLATE: case TAG_ID.TITLE: { startTagInHead(p, token); break; } // Re-process the token in the appropriate mode case TAG_ID.CAPTION: case TAG_ID.COLGROUP: case TAG_ID.TBODY: case TAG_ID.TFOOT: case TAG_ID.THEAD: { p.tmplInsertionModeStack[0] = InsertionMode.IN_TABLE; p.insertionMode = InsertionMode.IN_TABLE; startTagInTable(p, token); break; } case TAG_ID.COL: { p.tmplInsertionModeStack[0] = InsertionMode.IN_COLUMN_GROUP; p.insertionMode = InsertionMode.IN_COLUMN_GROUP; startTagInColumnGroup(p, token); break; } case TAG_ID.TR: { p.tmplInsertionModeStack[0] = InsertionMode.IN_TABLE_BODY; p.insertionMode = InsertionMode.IN_TABLE_BODY; startTagInTableBody(p, token); break; } case TAG_ID.TD: case TAG_ID.TH: { p.tmplInsertionModeStack[0] = InsertionMode.IN_ROW; p.insertionMode = InsertionMode.IN_ROW; startTagInRow(p, token); break; } default: { p.tmplInsertionModeStack[0] = InsertionMode.IN_BODY; p.insertionMode = InsertionMode.IN_BODY; startTagInBody(p, token); } } } function endTagInTemplate(p, token) { if (token.tagID === TAG_ID.TEMPLATE) { templateEndTagInHead(p, token); } } function eofInTemplate(p, token) { if (p.openElements.tmplCount > 0) { p.openElements.popUntilTagNamePopped(TAG_ID.TEMPLATE); p.activeFormattingElements.clearToLastMarker(); p.tmplInsertionModeStack.shift(); p._resetInsertionMode(); p.onEof(token); } else { stopParsing(p, token); } } function startTagAfterBody(p, token) { if (token.tagID === TAG_ID.HTML) { startTagInBody(p, token); } else { tokenAfterBody(p, token); } } function endTagAfterBody(p, token) { var _a2; if (token.tagID === TAG_ID.HTML) { if (!p.fragmentContext) { p.insertionMode = InsertionMode.AFTER_AFTER_BODY; } if (p.options.sourceCodeLocationInfo && p.openElements.tagIDs[0] === TAG_ID.HTML) { p._setEndLocation(p.openElements.items[0], token); const bodyElement = p.openElements.items[1]; if (bodyElement && !((_a2 = p.treeAdapter.getNodeSourceCodeLocation(bodyElement)) === null || _a2 === void 0 ? void 0 : _a2.endTag)) { p._setEndLocation(bodyElement, token); } } } else { tokenAfterBody(p, token); } } function tokenAfterBody(p, token) { p.insertionMode = InsertionMode.IN_BODY; modeInBody(p, token); } function startTagInFrameset(p, token) { switch (token.tagID) { case TAG_ID.HTML: { startTagInBody(p, token); break; } case TAG_ID.FRAMESET: { p._insertElement(token, NS.HTML); break; } case TAG_ID.FRAME: { p._appendElement(token, NS.HTML); token.ackSelfClosing = true; break; } case TAG_ID.NOFRAMES: { startTagInHead(p, token); break; } default: } } function endTagInFrameset(p, token) { if (token.tagID === TAG_ID.FRAMESET && !p.openElements.isRootHtmlElementCurrent()) { p.openElements.pop(); if (!p.fragmentContext && p.openElements.currentTagId !== TAG_ID.FRAMESET) { p.insertionMode = InsertionMode.AFTER_FRAMESET; } } } function startTagAfterFrameset(p, token) { switch (token.tagID) { case TAG_ID.HTML: { startTagInBody(p, token); break; } case TAG_ID.NOFRAMES: { startTagInHead(p, token); break; } default: } } function endTagAfterFrameset(p, token) { if (token.tagID === TAG_ID.HTML) { p.insertionMode = InsertionMode.AFTER_AFTER_FRAMESET; } } function startTagAfterAfterBody(p, token) { if (token.tagID === TAG_ID.HTML) { startTagInBody(p, token); } else { tokenAfterAfterBody(p, token); } } function tokenAfterAfterBody(p, token) { p.insertionMode = InsertionMode.IN_BODY; modeInBody(p, token); } function startTagAfterAfterFrameset(p, token) { switch (token.tagID) { case TAG_ID.HTML: { startTagInBody(p, token); break; } case TAG_ID.NOFRAMES: { startTagInHead(p, token); break; } default: } } function nullCharacterInForeignContent(p, token) { token.chars = REPLACEMENT_CHARACTER; p._insertCharacters(token); } function characterInForeignContent(p, token) { p._insertCharacters(token); p.framesetOk = false; } function popUntilHtmlOrIntegrationPoint(p) { while (p.treeAdapter.getNamespaceURI(p.openElements.current) !== NS.HTML && !p._isIntegrationPoint(p.openElements.currentTagId, p.openElements.current)) { p.openElements.pop(); } } function startTagInForeignContent(p, token) { if (causesExit(token)) { popUntilHtmlOrIntegrationPoint(p); p._startTagOutsideForeignContent(token); } else { const current = p._getAdjustedCurrentElement(); const currentNs = p.treeAdapter.getNamespaceURI(current); if (currentNs === NS.MATHML) { adjustTokenMathMLAttrs(token); } else if (currentNs === NS.SVG) { adjustTokenSVGTagName(token); adjustTokenSVGAttrs(token); } adjustTokenXMLAttrs(token); if (token.selfClosing) { p._appendElement(token, currentNs); } else { p._insertElement(token, currentNs); } token.ackSelfClosing = true; } } function endTagInForeignContent(p, token) { if (token.tagID === TAG_ID.P || token.tagID === TAG_ID.BR) { popUntilHtmlOrIntegrationPoint(p); p._endTagOutsideForeignContent(token); return; } for (let i = p.openElements.stackTop; i > 0; i--) { const element = p.openElements.items[i]; if (p.treeAdapter.getNamespaceURI(element) === NS.HTML) { p._endTagOutsideForeignContent(token); break; } const tagName = p.treeAdapter.getTagName(element); if (tagName.toLowerCase() === token.tagName) { token.tagName = tagName; p.openElements.shortenToLength(i); break; } } } var HIDDEN_INPUT_TYPE, AA_OUTER_LOOP_ITER, AA_INNER_LOOP_ITER, InsertionMode, BASE_LOC, TABLE_STRUCTURE_TAGS, defaultParserOptions, Parser, TABLE_VOID_ELEMENTS; var init_parser = __esm({ "node_modules/parse5/dist/parser/index.js"() { init_tokenizer(); init_open_element_stack(); init_formatting_element_list(); init_default(); init_doctype(); init_foreign_content(); init_error_codes(); init_unicode(); init_html(); init_token(); HIDDEN_INPUT_TYPE = "hidden"; AA_OUTER_LOOP_ITER = 8; AA_INNER_LOOP_ITER = 3; (function(InsertionMode2) { InsertionMode2[InsertionMode2["INITIAL"] = 0] = "INITIAL"; InsertionMode2[InsertionMode2["BEFORE_HTML"] = 1] = "BEFORE_HTML"; InsertionMode2[InsertionMode2["BEFORE_HEAD"] = 2] = "BEFORE_HEAD"; InsertionMode2[InsertionMode2["IN_HEAD"] = 3] = "IN_HEAD"; InsertionMode2[InsertionMode2["IN_HEAD_NO_SCRIPT"] = 4] = "IN_HEAD_NO_SCRIPT"; InsertionMode2[InsertionMode2["AFTER_HEAD"] = 5] = "AFTER_HEAD"; InsertionMode2[InsertionMode2["IN_BODY"] = 6] = "IN_BODY"; InsertionMode2[InsertionMode2["TEXT"] = 7] = "TEXT"; InsertionMode2[InsertionMode2["IN_TABLE"] = 8] = "IN_TABLE"; InsertionMode2[InsertionMode2["IN_TABLE_TEXT"] = 9] = "IN_TABLE_TEXT"; InsertionMode2[InsertionMode2["IN_CAPTION"] = 10] = "IN_CAPTION"; InsertionMode2[InsertionMode2["IN_COLUMN_GROUP"] = 11] = "IN_COLUMN_GROUP"; InsertionMode2[InsertionMode2["IN_TABLE_BODY"] = 12] = "IN_TABLE_BODY"; InsertionMode2[InsertionMode2["IN_ROW"] = 13] = "IN_ROW"; InsertionMode2[InsertionMode2["IN_CELL"] = 14] = "IN_CELL"; InsertionMode2[InsertionMode2["IN_SELECT"] = 15] = "IN_SELECT"; InsertionMode2[InsertionMode2["IN_SELECT_IN_TABLE"] = 16] = "IN_SELECT_IN_TABLE"; InsertionMode2[InsertionMode2["IN_TEMPLATE"] = 17] = "IN_TEMPLATE"; InsertionMode2[InsertionMode2["AFTER_BODY"] = 18] = "AFTER_BODY"; InsertionMode2[InsertionMode2["IN_FRAMESET"] = 19] = "IN_FRAMESET"; InsertionMode2[InsertionMode2["AFTER_FRAMESET"] = 20] = "AFTER_FRAMESET"; InsertionMode2[InsertionMode2["AFTER_AFTER_BODY"] = 21] = "AFTER_AFTER_BODY"; InsertionMode2[InsertionMode2["AFTER_AFTER_FRAMESET"] = 22] = "AFTER_AFTER_FRAMESET"; })(InsertionMode || (InsertionMode = {})); BASE_LOC = { startLine: -1, startCol: -1, startOffset: -1, endLine: -1, endCol: -1, endOffset: -1 }; TABLE_STRUCTURE_TAGS = /* @__PURE__ */ new Set([TAG_ID.TABLE, TAG_ID.TBODY, TAG_ID.TFOOT, TAG_ID.THEAD, TAG_ID.TR]); defaultParserOptions = { scriptingEnabled: true, sourceCodeLocationInfo: false, treeAdapter: defaultTreeAdapter, onParseError: null }; Parser = class { constructor(options, document2, fragmentContext = null, scriptHandler = null) { this.fragmentContext = fragmentContext; this.scriptHandler = scriptHandler; this.currentToken = null; this.stopped = false; this.insertionMode = InsertionMode.INITIAL; this.originalInsertionMode = InsertionMode.INITIAL; this.headElement = null; this.formElement = null; this.currentNotInHTML = false; this.tmplInsertionModeStack = []; this.pendingCharacterTokens = []; this.hasNonWhitespacePendingCharacterToken = false; this.framesetOk = true; this.skipNextNewLine = false; this.fosterParentingEnabled = false; this.options = { ...defaultParserOptions, ...options }; this.treeAdapter = this.options.treeAdapter; this.onParseError = this.options.onParseError; if (this.onParseError) { this.options.sourceCodeLocationInfo = true; } this.document = document2 !== null && document2 !== void 0 ? document2 : this.treeAdapter.createDocument(); this.tokenizer = new Tokenizer(this.options, this); this.activeFormattingElements = new FormattingElementList(this.treeAdapter); this.fragmentContextID = fragmentContext ? getTagID(this.treeAdapter.getTagName(fragmentContext)) : TAG_ID.UNKNOWN; this._setContextModes(fragmentContext !== null && fragmentContext !== void 0 ? fragmentContext : this.document, this.fragmentContextID); this.openElements = new OpenElementStack(this.document, this.treeAdapter, this); } // API static parse(html3, options) { const parser = new this(options); parser.tokenizer.write(html3, true); return parser.document; } static getFragmentParser(fragmentContext, options) { const opts = { ...defaultParserOptions, ...options }; fragmentContext !== null && fragmentContext !== void 0 ? fragmentContext : fragmentContext = opts.treeAdapter.createElement(TAG_NAMES.TEMPLATE, NS.HTML, []); const documentMock = opts.treeAdapter.createElement("documentmock", NS.HTML, []); const parser = new this(opts, documentMock, fragmentContext); if (parser.fragmentContextID === TAG_ID.TEMPLATE) { parser.tmplInsertionModeStack.unshift(InsertionMode.IN_TEMPLATE); } parser._initTokenizerForFragmentParsing(); parser._insertFakeRootElement(); parser._resetInsertionMode(); parser._findFormInFragmentContext(); return parser; } getFragment() { const rootElement = this.treeAdapter.getFirstChild(this.document); const fragment = this.treeAdapter.createDocumentFragment(); this._adoptNodes(rootElement, fragment); return fragment; } //Errors /** @internal */ _err(token, code, beforeToken) { var _a2; if (!this.onParseError) return; const loc = (_a2 = token.location) !== null && _a2 !== void 0 ? _a2 : BASE_LOC; const err2 = { code, startLine: loc.startLine, startCol: loc.startCol, startOffset: loc.startOffset, endLine: beforeToken ? loc.startLine : loc.endLine, endCol: beforeToken ? loc.startCol : loc.endCol, endOffset: beforeToken ? loc.startOffset : loc.endOffset }; this.onParseError(err2); } //Stack events /** @internal */ onItemPush(node, tid, isTop) { var _a2, _b; (_b = (_a2 = this.treeAdapter).onItemPush) === null || _b === void 0 ? void 0 : _b.call(_a2, node); if (isTop && this.openElements.stackTop > 0) this._setContextModes(node, tid); } /** @internal */ onItemPop(node, isTop) { var _a2, _b; if (this.options.sourceCodeLocationInfo) { this._setEndLocation(node, this.currentToken); } (_b = (_a2 = this.treeAdapter).onItemPop) === null || _b === void 0 ? void 0 : _b.call(_a2, node, this.openElements.current); if (isTop) { let current; let currentTagId; if (this.openElements.stackTop === 0 && this.fragmentContext) { current = this.fragmentContext; currentTagId = this.fragmentContextID; } else { ({ current, currentTagId } = this.openElements); } this._setContextModes(current, currentTagId); } } _setContextModes(current, tid) { const isHTML = current === this.document || this.treeAdapter.getNamespaceURI(current) === NS.HTML; this.currentNotInHTML = !isHTML; this.tokenizer.inForeignNode = !isHTML && !this._isIntegrationPoint(tid, current); } /** @protected */ _switchToTextParsing(currentToken, nextTokenizerState) { this._insertElement(currentToken, NS.HTML); this.tokenizer.state = nextTokenizerState; this.originalInsertionMode = this.insertionMode; this.insertionMode = InsertionMode.TEXT; } switchToPlaintextParsing() { this.insertionMode = InsertionMode.TEXT; this.originalInsertionMode = InsertionMode.IN_BODY; this.tokenizer.state = TokenizerMode.PLAINTEXT; } //Fragment parsing /** @protected */ _getAdjustedCurrentElement() { return this.openElements.stackTop === 0 && this.fragmentContext ? this.fragmentContext : this.openElements.current; } /** @protected */ _findFormInFragmentContext() { let node = this.fragmentContext; while (node) { if (this.treeAdapter.getTagName(node) === TAG_NAMES.FORM) { this.formElement = node; break; } node = this.treeAdapter.getParentNode(node); } } _initTokenizerForFragmentParsing() { if (!this.fragmentContext || this.treeAdapter.getNamespaceURI(this.fragmentContext) !== NS.HTML) { return; } switch (this.fragmentContextID) { case TAG_ID.TITLE: case TAG_ID.TEXTAREA: { this.tokenizer.state = TokenizerMode.RCDATA; break; } case TAG_ID.STYLE: case TAG_ID.XMP: case TAG_ID.IFRAME: case TAG_ID.NOEMBED: case TAG_ID.NOFRAMES: case TAG_ID.NOSCRIPT: { this.tokenizer.state = TokenizerMode.RAWTEXT; break; } case TAG_ID.SCRIPT: { this.tokenizer.state = TokenizerMode.SCRIPT_DATA; break; } case TAG_ID.PLAINTEXT: { this.tokenizer.state = TokenizerMode.PLAINTEXT; break; } default: } } //Tree mutation /** @protected */ _setDocumentType(token) { const name = token.name || ""; const publicId = token.publicId || ""; const systemId = token.systemId || ""; this.treeAdapter.setDocumentType(this.document, name, publicId, systemId); if (token.location) { const documentChildren = this.treeAdapter.getChildNodes(this.document); const docTypeNode = documentChildren.find((node) => this.treeAdapter.isDocumentTypeNode(node)); if (docTypeNode) { this.treeAdapter.setNodeSourceCodeLocation(docTypeNode, token.location); } } } /** @protected */ _attachElementToTree(element, location) { if (this.options.sourceCodeLocationInfo) { const loc = location && { ...location, startTag: location }; this.treeAdapter.setNodeSourceCodeLocation(element, loc); } if (this._shouldFosterParentOnInsertion()) { this._fosterParentElement(element); } else { const parent2 = this.openElements.currentTmplContentOrNode; this.treeAdapter.appendChild(parent2, element); } } /** * For self-closing tags. Add an element to the tree, but skip adding it * to the stack. */ /** @protected */ _appendElement(token, namespaceURI) { const element = this.treeAdapter.createElement(token.tagName, namespaceURI, token.attrs); this._attachElementToTree(element, token.location); } /** @protected */ _insertElement(token, namespaceURI) { const element = this.treeAdapter.createElement(token.tagName, namespaceURI, token.attrs); this._attachElementToTree(element, token.location); this.openElements.push(element, token.tagID); } /** @protected */ _insertFakeElement(tagName, tagID) { const element = this.treeAdapter.createElement(tagName, NS.HTML, []); this._attachElementToTree(element, null); this.openElements.push(element, tagID); } /** @protected */ _insertTemplate(token) { const tmpl = this.treeAdapter.createElement(token.tagName, NS.HTML, token.attrs); const content = this.treeAdapter.createDocumentFragment(); this.treeAdapter.setTemplateContent(tmpl, content); this._attachElementToTree(tmpl, token.location); this.openElements.push(tmpl, token.tagID); if (this.options.sourceCodeLocationInfo) this.treeAdapter.setNodeSourceCodeLocation(content, null); } /** @protected */ _insertFakeRootElement() { const element = this.treeAdapter.createElement(TAG_NAMES.HTML, NS.HTML, []); if (this.options.sourceCodeLocationInfo) this.treeAdapter.setNodeSourceCodeLocation(element, null); this.treeAdapter.appendChild(this.openElements.current, element); this.openElements.push(element, TAG_ID.HTML); } /** @protected */ _appendCommentNode(token, parent2) { const commentNode = this.treeAdapter.createCommentNode(token.data); this.treeAdapter.appendChild(parent2, commentNode); if (this.options.sourceCodeLocationInfo) { this.treeAdapter.setNodeSourceCodeLocation(commentNode, token.location); } } /** @protected */ _insertCharacters(token) { let parent2; let beforeElement; if (this._shouldFosterParentOnInsertion()) { ({ parent: parent2, beforeElement } = this._findFosterParentingLocation()); if (beforeElement) { this.treeAdapter.insertTextBefore(parent2, token.chars, beforeElement); } else { this.treeAdapter.insertText(parent2, token.chars); } } else { parent2 = this.openElements.currentTmplContentOrNode; this.treeAdapter.insertText(parent2, token.chars); } if (!token.location) return; const siblings2 = this.treeAdapter.getChildNodes(parent2); const textNodeIdx = beforeElement ? siblings2.lastIndexOf(beforeElement) : siblings2.length; const textNode = siblings2[textNodeIdx - 1]; const tnLoc = this.treeAdapter.getNodeSourceCodeLocation(textNode); if (tnLoc) { const { endLine, endCol, endOffset } = token.location; this.treeAdapter.updateNodeSourceCodeLocation(textNode, { endLine, endCol, endOffset }); } else if (this.options.sourceCodeLocationInfo) { this.treeAdapter.setNodeSourceCodeLocation(textNode, token.location); } } /** @protected */ _adoptNodes(donor, recipient) { for (let child = this.treeAdapter.getFirstChild(donor); child; child = this.treeAdapter.getFirstChild(donor)) { this.treeAdapter.detachNode(child); this.treeAdapter.appendChild(recipient, child); } } /** @protected */ _setEndLocation(element, closingToken) { if (this.treeAdapter.getNodeSourceCodeLocation(element) && closingToken.location) { const ctLoc = closingToken.location; const tn = this.treeAdapter.getTagName(element); const endLoc = ( // NOTE: For cases like <p> <p> </p> - First 'p' closes without a closing // tag and for cases like <td> <p> </td> - 'p' closes without a closing tag. closingToken.type === TokenType.END_TAG && tn === closingToken.tagName ? { endTag: { ...ctLoc }, endLine: ctLoc.endLine, endCol: ctLoc.endCol, endOffset: ctLoc.endOffset } : { endLine: ctLoc.startLine, endCol: ctLoc.startCol, endOffset: ctLoc.startOffset } ); this.treeAdapter.updateNodeSourceCodeLocation(element, endLoc); } } //Token processing shouldProcessStartTagTokenInForeignContent(token) { if (!this.currentNotInHTML) return false; let current; let currentTagId; if (this.openElements.stackTop === 0 && this.fragmentContext) { current = this.fragmentContext; currentTagId = this.fragmentContextID; } else { ({ current, currentTagId } = this.openElements); } if (token.tagID === TAG_ID.SVG && this.treeAdapter.getTagName(current) === TAG_NAMES.ANNOTATION_XML && this.treeAdapter.getNamespaceURI(current) === NS.MATHML) { return false; } return ( // Check that `current` is not an integration point for HTML or MathML elements. this.tokenizer.inForeignNode || // If it _is_ an integration point, then we might have to check that it is not an HTML // integration point. (token.tagID === TAG_ID.MGLYPH || token.tagID === TAG_ID.MALIGNMARK) && !this._isIntegrationPoint(currentTagId, current, NS.HTML) ); } /** @protected */ _processToken(token) { switch (token.type) { case TokenType.CHARACTER: { this.onCharacter(token); break; } case TokenType.NULL_CHARACTER: { this.onNullCharacter(token); break; } case TokenType.COMMENT: { this.onComment(token); break; } case TokenType.DOCTYPE: { this.onDoctype(token); break; } case TokenType.START_TAG: { this._processStartTag(token); break; } case TokenType.END_TAG: { this.onEndTag(token); break; } case TokenType.EOF: { this.onEof(token); break; } case TokenType.WHITESPACE_CHARACTER: { this.onWhitespaceCharacter(token); break; } } } //Integration points /** @protected */ _isIntegrationPoint(tid, element, foreignNS) { const ns = this.treeAdapter.getNamespaceURI(element); const attrs = this.treeAdapter.getAttrList(element); return isIntegrationPoint(tid, ns, attrs, foreignNS); } //Active formatting elements reconstruction /** @protected */ _reconstructActiveFormattingElements() { const listLength = this.activeFormattingElements.entries.length; if (listLength) { const endIndex = this.activeFormattingElements.entries.findIndex((entry2) => entry2.type === EntryType.Marker || this.openElements.contains(entry2.element)); const unopenIdx = endIndex < 0 ? listLength - 1 : endIndex - 1; for (let i = unopenIdx; i >= 0; i--) { const entry2 = this.activeFormattingElements.entries[i]; this._insertElement(entry2.token, this.treeAdapter.getNamespaceURI(entry2.element)); entry2.element = this.openElements.current; } } } //Close elements /** @protected */ _closeTableCell() { this.openElements.generateImpliedEndTags(); this.openElements.popUntilTableCellPopped(); this.activeFormattingElements.clearToLastMarker(); this.insertionMode = InsertionMode.IN_ROW; } /** @protected */ _closePElement() { this.openElements.generateImpliedEndTagsWithExclusion(TAG_ID.P); this.openElements.popUntilTagNamePopped(TAG_ID.P); } //Insertion modes /** @protected */ _resetInsertionMode() { for (let i = this.openElements.stackTop; i >= 0; i--) { switch (i === 0 && this.fragmentContext ? this.fragmentContextID : this.openElements.tagIDs[i]) { case TAG_ID.TR: { this.insertionMode = InsertionMode.IN_ROW; return; } case TAG_ID.TBODY: case TAG_ID.THEAD: case TAG_ID.TFOOT: { this.insertionMode = InsertionMode.IN_TABLE_BODY; return; } case TAG_ID.CAPTION: { this.insertionMode = InsertionMode.IN_CAPTION; return; } case TAG_ID.COLGROUP: { this.insertionMode = InsertionMode.IN_COLUMN_GROUP; return; } case TAG_ID.TABLE: { this.insertionMode = InsertionMode.IN_TABLE; return; } case TAG_ID.BODY: { this.insertionMode = InsertionMode.IN_BODY; return; } case TAG_ID.FRAMESET: { this.insertionMode = InsertionMode.IN_FRAMESET; return; } case TAG_ID.SELECT: { this._resetInsertionModeForSelect(i); return; } case TAG_ID.TEMPLATE: { this.insertionMode = this.tmplInsertionModeStack[0]; return; } case TAG_ID.HTML: { this.insertionMode = this.headElement ? InsertionMode.AFTER_HEAD : InsertionMode.BEFORE_HEAD; return; } case TAG_ID.TD: case TAG_ID.TH: { if (i > 0) { this.insertionMode = InsertionMode.IN_CELL; return; } break; } case TAG_ID.HEAD: { if (i > 0) { this.insertionMode = InsertionMode.IN_HEAD; return; } break; } } } this.insertionMode = InsertionMode.IN_BODY; } /** @protected */ _resetInsertionModeForSelect(selectIdx) { if (selectIdx > 0) { for (let i = selectIdx - 1; i > 0; i--) { const tn = this.openElements.tagIDs[i]; if (tn === TAG_ID.TEMPLATE) { break; } else if (tn === TAG_ID.TABLE) { this.insertionMode = InsertionMode.IN_SELECT_IN_TABLE; return; } } } this.insertionMode = InsertionMode.IN_SELECT; } //Foster parenting /** @protected */ _isElementCausesFosterParenting(tn) { return TABLE_STRUCTURE_TAGS.has(tn); } /** @protected */ _shouldFosterParentOnInsertion() { return this.fosterParentingEnabled && this._isElementCausesFosterParenting(this.openElements.currentTagId); } /** @protected */ _findFosterParentingLocation() { for (let i = this.openElements.stackTop; i >= 0; i--) { const openElement = this.openElements.items[i]; switch (this.openElements.tagIDs[i]) { case TAG_ID.TEMPLATE: { if (this.treeAdapter.getNamespaceURI(openElement) === NS.HTML) { return { parent: this.treeAdapter.getTemplateContent(openElement), beforeElement: null }; } break; } case TAG_ID.TABLE: { const parent2 = this.treeAdapter.getParentNode(openElement); if (parent2) { return { parent: parent2, beforeElement: openElement }; } return { parent: this.openElements.items[i - 1], beforeElement: null }; } default: } } return { parent: this.openElements.items[0], beforeElement: null }; } /** @protected */ _fosterParentElement(element) { const location = this._findFosterParentingLocation(); if (location.beforeElement) { this.treeAdapter.insertBefore(location.parent, element, location.beforeElement); } else { this.treeAdapter.appendChild(location.parent, element); } } //Special elements /** @protected */ _isSpecialElement(element, id) { const ns = this.treeAdapter.getNamespaceURI(element); return SPECIAL_ELEMENTS[ns].has(id); } /** @internal */ onCharacter(token) { this.skipNextNewLine = false; if (this.tokenizer.inForeignNode) { characterInForeignContent(this, token); return; } switch (this.insertionMode) { case InsertionMode.INITIAL: { tokenInInitialMode(this, token); break; } case InsertionMode.BEFORE_HTML: { tokenBeforeHtml(this, token); break; } case InsertionMode.BEFORE_HEAD: { tokenBeforeHead(this, token); break; } case InsertionMode.IN_HEAD: { tokenInHead(this, token); break; } case InsertionMode.IN_HEAD_NO_SCRIPT: { tokenInHeadNoScript(this, token); break; } case InsertionMode.AFTER_HEAD: { tokenAfterHead(this, token); break; } case InsertionMode.IN_BODY: case InsertionMode.IN_CAPTION: case InsertionMode.IN_CELL: case InsertionMode.IN_TEMPLATE: { characterInBody(this, token); break; } case InsertionMode.TEXT: case InsertionMode.IN_SELECT: case InsertionMode.IN_SELECT_IN_TABLE: { this._insertCharacters(token); break; } case InsertionMode.IN_TABLE: case InsertionMode.IN_TABLE_BODY: case InsertionMode.IN_ROW: { characterInTable(this, token); break; } case InsertionMode.IN_TABLE_TEXT: { characterInTableText(this, token); break; } case InsertionMode.IN_COLUMN_GROUP: { tokenInColumnGroup(this, token); break; } case InsertionMode.AFTER_BODY: { tokenAfterBody(this, token); break; } case InsertionMode.AFTER_AFTER_BODY: { tokenAfterAfterBody(this, token); break; } default: } } /** @internal */ onNullCharacter(token) { this.skipNextNewLine = false; if (this.tokenizer.inForeignNode) { nullCharacterInForeignContent(this, token); return; } switch (this.insertionMode) { case InsertionMode.INITIAL: { tokenInInitialMode(this, token); break; } case InsertionMode.BEFORE_HTML: { tokenBeforeHtml(this, token); break; } case InsertionMode.BEFORE_HEAD: { tokenBeforeHead(this, token); break; } case InsertionMode.IN_HEAD: { tokenInHead(this, token); break; } case InsertionMode.IN_HEAD_NO_SCRIPT: { tokenInHeadNoScript(this, token); break; } case InsertionMode.AFTER_HEAD: { tokenAfterHead(this, token); break; } case InsertionMode.TEXT: { this._insertCharacters(token); break; } case InsertionMode.IN_TABLE: case InsertionMode.IN_TABLE_BODY: case InsertionMode.IN_ROW: { characterInTable(this, token); break; } case InsertionMode.IN_COLUMN_GROUP: { tokenInColumnGroup(this, token); break; } case InsertionMode.AFTER_BODY: { tokenAfterBody(this, token); break; } case InsertionMode.AFTER_AFTER_BODY: { tokenAfterAfterBody(this, token); break; } default: } } /** @internal */ onComment(token) { this.skipNextNewLine = false; if (this.currentNotInHTML) { appendComment(this, token); return; } switch (this.insertionMode) { case InsertionMode.INITIAL: case InsertionMode.BEFORE_HTML: case InsertionMode.BEFORE_HEAD: case InsertionMode.IN_HEAD: case InsertionMode.IN_HEAD_NO_SCRIPT: case InsertionMode.AFTER_HEAD: case InsertionMode.IN_BODY: case InsertionMode.IN_TABLE: case InsertionMode.IN_CAPTION: case InsertionMode.IN_COLUMN_GROUP: case InsertionMode.IN_TABLE_BODY: case InsertionMode.IN_ROW: case InsertionMode.IN_CELL: case InsertionMode.IN_SELECT: case InsertionMode.IN_SELECT_IN_TABLE: case InsertionMode.IN_TEMPLATE: case InsertionMode.IN_FRAMESET: case InsertionMode.AFTER_FRAMESET: { appendComment(this, token); break; } case InsertionMode.IN_TABLE_TEXT: { tokenInTableText(this, token); break; } case InsertionMode.AFTER_BODY: { appendCommentToRootHtmlElement(this, token); break; } case InsertionMode.AFTER_AFTER_BODY: case InsertionMode.AFTER_AFTER_FRAMESET: { appendCommentToDocument(this, token); break; } default: } } /** @internal */ onDoctype(token) { this.skipNextNewLine = false; switch (this.insertionMode) { case InsertionMode.INITIAL: { doctypeInInitialMode(this, token); break; } case InsertionMode.BEFORE_HEAD: case InsertionMode.IN_HEAD: case InsertionMode.IN_HEAD_NO_SCRIPT: case InsertionMode.AFTER_HEAD: { this._err(token, ERR.misplacedDoctype); break; } case InsertionMode.IN_TABLE_TEXT: { tokenInTableText(this, token); break; } default: } } /** @internal */ onStartTag(token) { this.skipNextNewLine = false; this.currentToken = token; this._processStartTag(token); if (token.selfClosing && !token.ackSelfClosing) { this._err(token, ERR.nonVoidHtmlElementStartTagWithTrailingSolidus); } } /** * Processes a given start tag. * * `onStartTag` checks if a self-closing tag was recognized. When a token * is moved inbetween multiple insertion modes, this check for self-closing * could lead to false positives. To avoid this, `_processStartTag` is used * for nested calls. * * @param token The token to process. * @protected */ _processStartTag(token) { if (this.shouldProcessStartTagTokenInForeignContent(token)) { startTagInForeignContent(this, token); } else { this._startTagOutsideForeignContent(token); } } /** @protected */ _startTagOutsideForeignContent(token) { switch (this.insertionMode) { case InsertionMode.INITIAL: { tokenInInitialMode(this, token); break; } case InsertionMode.BEFORE_HTML: { startTagBeforeHtml(this, token); break; } case InsertionMode.BEFORE_HEAD: { startTagBeforeHead(this, token); break; } case InsertionMode.IN_HEAD: { startTagInHead(this, token); break; } case InsertionMode.IN_HEAD_NO_SCRIPT: { startTagInHeadNoScript(this, token); break; } case InsertionMode.AFTER_HEAD: { startTagAfterHead(this, token); break; } case InsertionMode.IN_BODY: { startTagInBody(this, token); break; } case InsertionMode.IN_TABLE: { startTagInTable(this, token); break; } case InsertionMode.IN_TABLE_TEXT: { tokenInTableText(this, token); break; } case InsertionMode.IN_CAPTION: { startTagInCaption(this, token); break; } case InsertionMode.IN_COLUMN_GROUP: { startTagInColumnGroup(this, token); break; } case InsertionMode.IN_TABLE_BODY: { startTagInTableBody(this, token); break; } case InsertionMode.IN_ROW: { startTagInRow(this, token); break; } case InsertionMode.IN_CELL: { startTagInCell(this, token); break; } case InsertionMode.IN_SELECT: { startTagInSelect(this, token); break; } case InsertionMode.IN_SELECT_IN_TABLE: { startTagInSelectInTable(this, token); break; } case InsertionMode.IN_TEMPLATE: { startTagInTemplate(this, token); break; } case InsertionMode.AFTER_BODY: { startTagAfterBody(this, token); break; } case InsertionMode.IN_FRAMESET: { startTagInFrameset(this, token); break; } case InsertionMode.AFTER_FRAMESET: { startTagAfterFrameset(this, token); break; } case InsertionMode.AFTER_AFTER_BODY: { startTagAfterAfterBody(this, token); break; } case InsertionMode.AFTER_AFTER_FRAMESET: { startTagAfterAfterFrameset(this, token); break; } default: } } /** @internal */ onEndTag(token) { this.skipNextNewLine = false; this.currentToken = token; if (this.currentNotInHTML) { endTagInForeignContent(this, token); } else { this._endTagOutsideForeignContent(token); } } /** @protected */ _endTagOutsideForeignContent(token) { switch (this.insertionMode) { case InsertionMode.INITIAL: { tokenInInitialMode(this, token); break; } case InsertionMode.BEFORE_HTML: { endTagBeforeHtml(this, token); break; } case InsertionMode.BEFORE_HEAD: { endTagBeforeHead(this, token); break; } case InsertionMode.IN_HEAD: { endTagInHead(this, token); break; } case InsertionMode.IN_HEAD_NO_SCRIPT: { endTagInHeadNoScript(this, token); break; } case InsertionMode.AFTER_HEAD: { endTagAfterHead(this, token); break; } case InsertionMode.IN_BODY: { endTagInBody(this, token); break; } case InsertionMode.TEXT: { endTagInText(this, token); break; } case InsertionMode.IN_TABLE: { endTagInTable(this, token); break; } case InsertionMode.IN_TABLE_TEXT: { tokenInTableText(this, token); break; } case InsertionMode.IN_CAPTION: { endTagInCaption(this, token); break; } case InsertionMode.IN_COLUMN_GROUP: { endTagInColumnGroup(this, token); break; } case InsertionMode.IN_TABLE_BODY: { endTagInTableBody(this, token); break; } case InsertionMode.IN_ROW: { endTagInRow(this, token); break; } case InsertionMode.IN_CELL: { endTagInCell(this, token); break; } case InsertionMode.IN_SELECT: { endTagInSelect(this, token); break; } case InsertionMode.IN_SELECT_IN_TABLE: { endTagInSelectInTable(this, token); break; } case InsertionMode.IN_TEMPLATE: { endTagInTemplate(this, token); break; } case InsertionMode.AFTER_BODY: { endTagAfterBody(this, token); break; } case InsertionMode.IN_FRAMESET: { endTagInFrameset(this, token); break; } case InsertionMode.AFTER_FRAMESET: { endTagAfterFrameset(this, token); break; } case InsertionMode.AFTER_AFTER_BODY: { tokenAfterAfterBody(this, token); break; } default: } } /** @internal */ onEof(token) { switch (this.insertionMode) { case InsertionMode.INITIAL: { tokenInInitialMode(this, token); break; } case InsertionMode.BEFORE_HTML: { tokenBeforeHtml(this, token); break; } case InsertionMode.BEFORE_HEAD: { tokenBeforeHead(this, token); break; } case InsertionMode.IN_HEAD: { tokenInHead(this, token); break; } case InsertionMode.IN_HEAD_NO_SCRIPT: { tokenInHeadNoScript(this, token); break; } case InsertionMode.AFTER_HEAD: { tokenAfterHead(this, token); break; } case InsertionMode.IN_BODY: case InsertionMode.IN_TABLE: case InsertionMode.IN_CAPTION: case InsertionMode.IN_COLUMN_GROUP: case InsertionMode.IN_TABLE_BODY: case InsertionMode.IN_ROW: case InsertionMode.IN_CELL: case InsertionMode.IN_SELECT: case InsertionMode.IN_SELECT_IN_TABLE: { eofInBody(this, token); break; } case InsertionMode.TEXT: { eofInText(this, token); break; } case InsertionMode.IN_TABLE_TEXT: { tokenInTableText(this, token); break; } case InsertionMode.IN_TEMPLATE: { eofInTemplate(this, token); break; } case InsertionMode.AFTER_BODY: case InsertionMode.IN_FRAMESET: case InsertionMode.AFTER_FRAMESET: case InsertionMode.AFTER_AFTER_BODY: case InsertionMode.AFTER_AFTER_FRAMESET: { stopParsing(this, token); break; } default: } } /** @internal */ onWhitespaceCharacter(token) { if (this.skipNextNewLine) { this.skipNextNewLine = false; if (token.chars.charCodeAt(0) === CODE_POINTS.LINE_FEED) { if (token.chars.length === 1) { return; } token.chars = token.chars.substr(1); } } if (this.tokenizer.inForeignNode) { this._insertCharacters(token); return; } switch (this.insertionMode) { case InsertionMode.IN_HEAD: case InsertionMode.IN_HEAD_NO_SCRIPT: case InsertionMode.AFTER_HEAD: case InsertionMode.TEXT: case InsertionMode.IN_COLUMN_GROUP: case InsertionMode.IN_SELECT: case InsertionMode.IN_SELECT_IN_TABLE: case InsertionMode.IN_FRAMESET: case InsertionMode.AFTER_FRAMESET: { this._insertCharacters(token); break; } case InsertionMode.IN_BODY: case InsertionMode.IN_CAPTION: case InsertionMode.IN_CELL: case InsertionMode.IN_TEMPLATE: case InsertionMode.AFTER_BODY: case InsertionMode.AFTER_AFTER_BODY: case InsertionMode.AFTER_AFTER_FRAMESET: { whitespaceCharacterInBody(this, token); break; } case InsertionMode.IN_TABLE: case InsertionMode.IN_TABLE_BODY: case InsertionMode.IN_ROW: { characterInTable(this, token); break; } case InsertionMode.IN_TABLE_TEXT: { whitespaceCharacterInTableText(this, token); break; } default: } } }; TABLE_VOID_ELEMENTS = /* @__PURE__ */ new Set([TAG_ID.CAPTION, TAG_ID.COL, TAG_ID.COLGROUP, TAG_ID.TBODY, TAG_ID.TD, TAG_ID.TFOOT, TAG_ID.TH, TAG_ID.THEAD, TAG_ID.TR]); } }); // node_modules/parse5/dist/serializer/index.js function isVoidElement(node, options) { return options.treeAdapter.isElementNode(node) && options.treeAdapter.getNamespaceURI(node) === NS.HTML && VOID_ELEMENTS.has(options.treeAdapter.getTagName(node)); } function serializeOuter(node, options) { const opts = { ...defaultOpts3, ...options }; return serializeNode(node, opts); } function serializeChildNodes(parentNode, options) { let html3 = ""; const container = options.treeAdapter.isElementNode(parentNode) && options.treeAdapter.getTagName(parentNode) === TAG_NAMES.TEMPLATE && options.treeAdapter.getNamespaceURI(parentNode) === NS.HTML ? options.treeAdapter.getTemplateContent(parentNode) : parentNode; const childNodes = options.treeAdapter.getChildNodes(container); if (childNodes) { for (const currentNode of childNodes) { html3 += serializeNode(currentNode, options); } } return html3; } function serializeNode(node, options) { if (options.treeAdapter.isElementNode(node)) { return serializeElement(node, options); } if (options.treeAdapter.isTextNode(node)) { return serializeTextNode(node, options); } if (options.treeAdapter.isCommentNode(node)) { return serializeCommentNode(node, options); } if (options.treeAdapter.isDocumentTypeNode(node)) { return serializeDocumentTypeNode(node, options); } return ""; } function serializeElement(node, options) { const tn = options.treeAdapter.getTagName(node); return `<${tn}${serializeAttributes(node, options)}>${isVoidElement(node, options) ? "" : `${serializeChildNodes(node, options)}</${tn}>`}`; } function serializeAttributes(node, { treeAdapter }) { let html3 = ""; for (const attr2 of treeAdapter.getAttrList(node)) { html3 += " "; if (attr2.namespace) { switch (attr2.namespace) { case NS.XML: { html3 += `xml:${attr2.name}`; break; } case NS.XMLNS: { if (attr2.name !== "xmlns") { html3 += "xmlns:"; } html3 += attr2.name; break; } case NS.XLINK: { html3 += `xlink:${attr2.name}`; break; } default: { html3 += `${attr2.prefix}:${attr2.name}`; } } } else { html3 += attr2.name; } html3 += `="${escapeAttribute(attr2.value)}"`; } return html3; } function serializeTextNode(node, options) { const { treeAdapter } = options; const content = treeAdapter.getTextNodeContent(node); const parent2 = treeAdapter.getParentNode(node); const parentTn = parent2 && treeAdapter.isElementNode(parent2) && treeAdapter.getTagName(parent2); return parentTn && treeAdapter.getNamespaceURI(parent2) === NS.HTML && hasUnescapedText(parentTn, options.scriptingEnabled) ? content : escapeText(content); } function serializeCommentNode(node, { treeAdapter }) { return `<!--${treeAdapter.getCommentNodeContent(node)}-->`; } function serializeDocumentTypeNode(node, { treeAdapter }) { return `<!DOCTYPE ${treeAdapter.getDocumentTypeNodeName(node)}>`; } var VOID_ELEMENTS, defaultOpts3; var init_serializer = __esm({ "node_modules/parse5/dist/serializer/index.js"() { init_html(); init_escape(); init_default(); VOID_ELEMENTS = /* @__PURE__ */ new Set([ TAG_NAMES.AREA, TAG_NAMES.BASE, TAG_NAMES.BASEFONT, TAG_NAMES.BGSOUND, TAG_NAMES.BR, TAG_NAMES.COL, TAG_NAMES.EMBED, TAG_NAMES.FRAME, TAG_NAMES.HR, TAG_NAMES.IMG, TAG_NAMES.INPUT, TAG_NAMES.KEYGEN, TAG_NAMES.LINK, TAG_NAMES.META, TAG_NAMES.PARAM, TAG_NAMES.SOURCE, TAG_NAMES.TRACK, TAG_NAMES.WBR ]); defaultOpts3 = { treeAdapter: defaultTreeAdapter, scriptingEnabled: true }; } }); // node_modules/parse5/dist/index.js function parse6(html3, options) { return Parser.parse(html3, options); } function parseFragment(fragmentContext, html3, options) { if (typeof fragmentContext === "string") { options = html3; html3 = fragmentContext; fragmentContext = null; } const parser = Parser.getFragmentParser(fragmentContext, options); parser.tokenizer.write(html3, true); return parser.getFragment(); } var init_dist = __esm({ "node_modules/parse5/dist/index.js"() { init_parser(); init_default(); init_parser(); init_serializer(); init_error_codes(); init_foreign_content(); init_html(); init_token(); init_tokenizer(); } }); // node_modules/parse5-htmlparser2-tree-adapter/dist/index.js function enquoteDoctypeId(id) { const quote = id.includes('"') ? "'" : '"'; return quote + id + quote; } function serializeDoctypeContent(name, publicId, systemId) { let str = "!DOCTYPE "; if (name) { str += name; } if (publicId) { str += ` PUBLIC ${enquoteDoctypeId(publicId)}`; } else if (systemId) { str += " SYSTEM"; } if (systemId) { str += ` ${enquoteDoctypeId(systemId)}`; } return str; } var adapter; var init_dist2 = __esm({ "node_modules/parse5-htmlparser2-tree-adapter/dist/index.js"() { init_dist(); init_esm2(); adapter = { // Re-exports from domhandler isCommentNode: isComment, isElementNode: isTag2, isTextNode: isText, //Node construction createDocument() { const node = new Document([]); node["x-mode"] = html_exports.DOCUMENT_MODE.NO_QUIRKS; return node; }, createDocumentFragment() { return new Document([]); }, createElement(tagName, namespaceURI, attrs) { const attribs = /* @__PURE__ */ Object.create(null); const attribsNamespace = /* @__PURE__ */ Object.create(null); const attribsPrefix = /* @__PURE__ */ Object.create(null); for (let i = 0; i < attrs.length; i++) { const attrName = attrs[i].name; attribs[attrName] = attrs[i].value; attribsNamespace[attrName] = attrs[i].namespace; attribsPrefix[attrName] = attrs[i].prefix; } const node = new Element(tagName, attribs, []); node.namespace = namespaceURI; node["x-attribsNamespace"] = attribsNamespace; node["x-attribsPrefix"] = attribsPrefix; return node; }, createCommentNode(data2) { return new Comment2(data2); }, createTextNode(value) { return new Text2(value); }, //Tree mutation appendChild(parentNode, newNode) { const prev2 = parentNode.children[parentNode.children.length - 1]; if (prev2) { prev2.next = newNode; newNode.prev = prev2; } parentNode.children.push(newNode); newNode.parent = parentNode; }, insertBefore(parentNode, newNode, referenceNode) { const insertionIdx = parentNode.children.indexOf(referenceNode); const { prev: prev2 } = referenceNode; if (prev2) { prev2.next = newNode; newNode.prev = prev2; } referenceNode.prev = newNode; newNode.next = referenceNode; parentNode.children.splice(insertionIdx, 0, newNode); newNode.parent = parentNode; }, setTemplateContent(templateElement, contentElement) { adapter.appendChild(templateElement, contentElement); }, getTemplateContent(templateElement) { return templateElement.children[0]; }, setDocumentType(document2, name, publicId, systemId) { const data2 = serializeDoctypeContent(name, publicId, systemId); let doctypeNode = document2.children.find((node) => isDirective(node) && node.name === "!doctype"); if (doctypeNode) { doctypeNode.data = data2 !== null && data2 !== void 0 ? data2 : null; } else { doctypeNode = new ProcessingInstruction("!doctype", data2); adapter.appendChild(document2, doctypeNode); } doctypeNode["x-name"] = name; doctypeNode["x-publicId"] = publicId; doctypeNode["x-systemId"] = systemId; }, setDocumentMode(document2, mode) { document2["x-mode"] = mode; }, getDocumentMode(document2) { return document2["x-mode"]; }, detachNode(node) { if (node.parent) { const idx = node.parent.children.indexOf(node); const { prev: prev2, next: next2 } = node; node.prev = null; node.next = null; if (prev2) { prev2.next = next2; } if (next2) { next2.prev = prev2; } node.parent.children.splice(idx, 1); node.parent = null; } }, insertText(parentNode, text3) { const lastChild = parentNode.children[parentNode.children.length - 1]; if (lastChild && isText(lastChild)) { lastChild.data += text3; } else { adapter.appendChild(parentNode, adapter.createTextNode(text3)); } }, insertTextBefore(parentNode, text3, referenceNode) { const prevNode = parentNode.children[parentNode.children.indexOf(referenceNode) - 1]; if (prevNode && isText(prevNode)) { prevNode.data += text3; } else { adapter.insertBefore(parentNode, adapter.createTextNode(text3), referenceNode); } }, adoptAttributes(recipient, attrs) { for (let i = 0; i < attrs.length; i++) { const attrName = attrs[i].name; if (recipient.attribs[attrName] === void 0) { recipient.attribs[attrName] = attrs[i].value; recipient["x-attribsNamespace"][attrName] = attrs[i].namespace; recipient["x-attribsPrefix"][attrName] = attrs[i].prefix; } } }, //Tree traversing getFirstChild(node) { return node.children[0]; }, getChildNodes(node) { return node.children; }, getParentNode(node) { return node.parent; }, getAttrList(element) { return element.attributes; }, //Node data getTagName(element) { return element.name; }, getNamespaceURI(element) { return element.namespace; }, getTextNodeContent(textNode) { return textNode.data; }, getCommentNodeContent(commentNode) { return commentNode.data; }, getDocumentTypeNodeName(doctypeNode) { var _a2; return (_a2 = doctypeNode["x-name"]) !== null && _a2 !== void 0 ? _a2 : ""; }, getDocumentTypeNodePublicId(doctypeNode) { var _a2; return (_a2 = doctypeNode["x-publicId"]) !== null && _a2 !== void 0 ? _a2 : ""; }, getDocumentTypeNodeSystemId(doctypeNode) { var _a2; return (_a2 = doctypeNode["x-systemId"]) !== null && _a2 !== void 0 ? _a2 : ""; }, //Node types isDocumentTypeNode(node) { return isDirective(node) && node.name === "!doctype"; }, // Source code location setNodeSourceCodeLocation(node, location) { if (location) { node.startIndex = location.startOffset; node.endIndex = location.endOffset; } node.sourceCodeLocation = location; }, getNodeSourceCodeLocation(node) { return node.sourceCodeLocation; }, updateNodeSourceCodeLocation(node, endLocation) { if (endLocation.endOffset != null) node.endIndex = endLocation.endOffset; node.sourceCodeLocation = { ...node.sourceCodeLocation, ...endLocation }; } }; } }); // node_modules/cheerio/dist/esm/parsers/parse5-adapter.js function parseWithParse5(content, options, isDocument2, context) { var _a2; (_a2 = options.treeAdapter) !== null && _a2 !== void 0 ? _a2 : options.treeAdapter = adapter; if (options.scriptingEnabled !== false) { options.scriptingEnabled = true; } return isDocument2 ? parse6(content, options) : parseFragment(context, content, options); } function renderWithParse5(dom) { const nodes = "length" in dom ? dom : [dom]; for (let index2 = 0; index2 < nodes.length; index2 += 1) { const node = nodes[index2]; if (isDocument(node)) { Array.prototype.splice.call(nodes, index2, 1, ...node.children); } } let result = ""; for (let index2 = 0; index2 < nodes.length; index2 += 1) { const node = nodes[index2]; result += serializeOuter(node, renderOpts); } return result; } var renderOpts; var init_parse5_adapter = __esm({ "node_modules/cheerio/dist/esm/parsers/parse5-adapter.js"() { init_esm2(); init_dist(); init_dist2(); renderOpts = { treeAdapter: adapter }; } }); // node_modules/htmlparser2/lib/esm/Tokenizer.js function isWhitespace2(c) { return c === CharCodes2.Space || c === CharCodes2.NewLine || c === CharCodes2.Tab || c === CharCodes2.FormFeed || c === CharCodes2.CarriageReturn; } function isEndOfTagSection(c) { return c === CharCodes2.Slash || c === CharCodes2.Gt || isWhitespace2(c); } function isASCIIAlpha(c) { return c >= CharCodes2.LowerA && c <= CharCodes2.LowerZ || c >= CharCodes2.UpperA && c <= CharCodes2.UpperZ; } var CharCodes2, State2, QuoteType, Sequences, Tokenizer2; var init_Tokenizer = __esm({ "node_modules/htmlparser2/lib/esm/Tokenizer.js"() { init_decode(); (function(CharCodes3) { CharCodes3[CharCodes3["Tab"] = 9] = "Tab"; CharCodes3[CharCodes3["NewLine"] = 10] = "NewLine"; CharCodes3[CharCodes3["FormFeed"] = 12] = "FormFeed"; CharCodes3[CharCodes3["CarriageReturn"] = 13] = "CarriageReturn"; CharCodes3[CharCodes3["Space"] = 32] = "Space"; CharCodes3[CharCodes3["ExclamationMark"] = 33] = "ExclamationMark"; CharCodes3[CharCodes3["Number"] = 35] = "Number"; CharCodes3[CharCodes3["Amp"] = 38] = "Amp"; CharCodes3[CharCodes3["SingleQuote"] = 39] = "SingleQuote"; CharCodes3[CharCodes3["DoubleQuote"] = 34] = "DoubleQuote"; CharCodes3[CharCodes3["Dash"] = 45] = "Dash"; CharCodes3[CharCodes3["Slash"] = 47] = "Slash"; CharCodes3[CharCodes3["Zero"] = 48] = "Zero"; CharCodes3[CharCodes3["Nine"] = 57] = "Nine"; CharCodes3[CharCodes3["Semi"] = 59] = "Semi"; CharCodes3[CharCodes3["Lt"] = 60] = "Lt"; CharCodes3[CharCodes3["Eq"] = 61] = "Eq"; CharCodes3[CharCodes3["Gt"] = 62] = "Gt"; CharCodes3[CharCodes3["Questionmark"] = 63] = "Questionmark"; CharCodes3[CharCodes3["UpperA"] = 65] = "UpperA"; CharCodes3[CharCodes3["LowerA"] = 97] = "LowerA"; CharCodes3[CharCodes3["UpperF"] = 70] = "UpperF"; CharCodes3[CharCodes3["LowerF"] = 102] = "LowerF"; CharCodes3[CharCodes3["UpperZ"] = 90] = "UpperZ"; CharCodes3[CharCodes3["LowerZ"] = 122] = "LowerZ"; CharCodes3[CharCodes3["LowerX"] = 120] = "LowerX"; CharCodes3[CharCodes3["OpeningSquareBracket"] = 91] = "OpeningSquareBracket"; })(CharCodes2 || (CharCodes2 = {})); (function(State4) { State4[State4["Text"] = 1] = "Text"; State4[State4["BeforeTagName"] = 2] = "BeforeTagName"; State4[State4["InTagName"] = 3] = "InTagName"; State4[State4["InSelfClosingTag"] = 4] = "InSelfClosingTag"; State4[State4["BeforeClosingTagName"] = 5] = "BeforeClosingTagName"; State4[State4["InClosingTagName"] = 6] = "InClosingTagName"; State4[State4["AfterClosingTagName"] = 7] = "AfterClosingTagName"; State4[State4["BeforeAttributeName"] = 8] = "BeforeAttributeName"; State4[State4["InAttributeName"] = 9] = "InAttributeName"; State4[State4["AfterAttributeName"] = 10] = "AfterAttributeName"; State4[State4["BeforeAttributeValue"] = 11] = "BeforeAttributeValue"; State4[State4["InAttributeValueDq"] = 12] = "InAttributeValueDq"; State4[State4["InAttributeValueSq"] = 13] = "InAttributeValueSq"; State4[State4["InAttributeValueNq"] = 14] = "InAttributeValueNq"; State4[State4["BeforeDeclaration"] = 15] = "BeforeDeclaration"; State4[State4["InDeclaration"] = 16] = "InDeclaration"; State4[State4["InProcessingInstruction"] = 17] = "InProcessingInstruction"; State4[State4["BeforeComment"] = 18] = "BeforeComment"; State4[State4["CDATASequence"] = 19] = "CDATASequence"; State4[State4["InSpecialComment"] = 20] = "InSpecialComment"; State4[State4["InCommentLike"] = 21] = "InCommentLike"; State4[State4["BeforeSpecialS"] = 22] = "BeforeSpecialS"; State4[State4["BeforeSpecialT"] = 23] = "BeforeSpecialT"; State4[State4["SpecialStartSequence"] = 24] = "SpecialStartSequence"; State4[State4["InSpecialTag"] = 25] = "InSpecialTag"; State4[State4["InEntity"] = 26] = "InEntity"; })(State2 || (State2 = {})); (function(QuoteType2) { QuoteType2[QuoteType2["NoValue"] = 0] = "NoValue"; QuoteType2[QuoteType2["Unquoted"] = 1] = "Unquoted"; QuoteType2[QuoteType2["Single"] = 2] = "Single"; QuoteType2[QuoteType2["Double"] = 3] = "Double"; })(QuoteType || (QuoteType = {})); Sequences = { Cdata: new Uint8Array([67, 68, 65, 84, 65, 91]), // CDATA[ CdataEnd: new Uint8Array([93, 93, 62]), // ]]> CommentEnd: new Uint8Array([45, 45, 62]), // `-->` ScriptEnd: new Uint8Array([60, 47, 115, 99, 114, 105, 112, 116]), // `</script` StyleEnd: new Uint8Array([60, 47, 115, 116, 121, 108, 101]), // `</style` TitleEnd: new Uint8Array([60, 47, 116, 105, 116, 108, 101]), // `</title` TextareaEnd: new Uint8Array([ 60, 47, 116, 101, 120, 116, 97, 114, 101, 97 ]) // `</textarea` }; Tokenizer2 = class { constructor({ xmlMode = false, decodeEntities = true }, cbs) { this.cbs = cbs; this.state = State2.Text; this.buffer = ""; this.sectionStart = 0; this.index = 0; this.entityStart = 0; this.baseState = State2.Text; this.isSpecial = false; this.running = true; this.offset = 0; this.currentSequence = void 0; this.sequenceIndex = 0; this.xmlMode = xmlMode; this.decodeEntities = decodeEntities; this.entityDecoder = new EntityDecoder(xmlMode ? decode_data_xml_default : decode_data_html_default, (cp, consumed) => this.emitCodePoint(cp, consumed)); } reset() { this.state = State2.Text; this.buffer = ""; this.sectionStart = 0; this.index = 0; this.baseState = State2.Text; this.currentSequence = void 0; this.running = true; this.offset = 0; } write(chunk) { this.offset += this.buffer.length; this.buffer = chunk; this.parse(); } end() { if (this.running) this.finish(); } pause() { this.running = false; } resume() { this.running = true; if (this.index < this.buffer.length + this.offset) { this.parse(); } } stateText(c) { if (c === CharCodes2.Lt || !this.decodeEntities && this.fastForwardTo(CharCodes2.Lt)) { if (this.index > this.sectionStart) { this.cbs.ontext(this.sectionStart, this.index); } this.state = State2.BeforeTagName; this.sectionStart = this.index; } else if (this.decodeEntities && c === CharCodes2.Amp) { this.startEntity(); } } stateSpecialStartSequence(c) { const isEnd = this.sequenceIndex === this.currentSequence.length; const isMatch = isEnd ? ( // If we are at the end of the sequence, make sure the tag name has ended isEndOfTagSection(c) ) : ( // Otherwise, do a case-insensitive comparison (c | 32) === this.currentSequence[this.sequenceIndex] ); if (!isMatch) { this.isSpecial = false; } else if (!isEnd) { this.sequenceIndex++; return; } this.sequenceIndex = 0; this.state = State2.InTagName; this.stateInTagName(c); } /** Look for an end tag. For <title> tags, also decode entities. */ stateInSpecialTag(c) { if (this.sequenceIndex === this.currentSequence.length) { if (c === CharCodes2.Gt || isWhitespace2(c)) { const endOfText = this.index - this.currentSequence.length; if (this.sectionStart < endOfText) { const actualIndex = this.index; this.index = endOfText; this.cbs.ontext(this.sectionStart, endOfText); this.index = actualIndex; } this.isSpecial = false; this.sectionStart = endOfText + 2; this.stateInClosingTagName(c); return; } this.sequenceIndex = 0; } if ((c | 32) === this.currentSequence[this.sequenceIndex]) { this.sequenceIndex += 1; } else if (this.sequenceIndex === 0) { if (this.currentSequence === Sequences.TitleEnd) { if (this.decodeEntities && c === CharCodes2.Amp) { this.startEntity(); } } else if (this.fastForwardTo(CharCodes2.Lt)) { this.sequenceIndex = 1; } } else { this.sequenceIndex = Number(c === CharCodes2.Lt); } } stateCDATASequence(c) { if (c === Sequences.Cdata[this.sequenceIndex]) { if (++this.sequenceIndex === Sequences.Cdata.length) { this.state = State2.InCommentLike; this.currentSequence = Sequences.CdataEnd; this.sequenceIndex = 0; this.sectionStart = this.index + 1; } } else { this.sequenceIndex = 0; this.state = State2.InDeclaration; this.stateInDeclaration(c); } } /** * When we wait for one specific character, we can speed things up * by skipping through the buffer until we find it. * * @returns Whether the character was found. */ fastForwardTo(c) { while (++this.index < this.buffer.length + this.offset) { if (this.buffer.charCodeAt(this.index - this.offset) === c) { return true; } } this.index = this.buffer.length + this.offset - 1; return false; } /** * Comments and CDATA end with `-->` and `]]>`. * * Their common qualities are: * - Their end sequences have a distinct character they start with. * - That character is then repeated, so we have to check multiple repeats. * - All characters but the start character of the sequence can be skipped. */ stateInCommentLike(c) { if (c === this.currentSequence[this.sequenceIndex]) { if (++this.sequenceIndex === this.currentSequence.length) { if (this.currentSequence === Sequences.CdataEnd) { this.cbs.oncdata(this.sectionStart, this.index, 2); } else { this.cbs.oncomment(this.sectionStart, this.index, 2); } this.sequenceIndex = 0; this.sectionStart = this.index + 1; this.state = State2.Text; } } else if (this.sequenceIndex === 0) { if (this.fastForwardTo(this.currentSequence[0])) { this.sequenceIndex = 1; } } else if (c !== this.currentSequence[this.sequenceIndex - 1]) { this.sequenceIndex = 0; } } /** * HTML only allows ASCII alpha characters (a-z and A-Z) at the beginning of a tag name. * * XML allows a lot more characters here (@see https://www.w3.org/TR/REC-xml/#NT-NameStartChar). * We allow anything that wouldn't end the tag. */ isTagStartChar(c) { return this.xmlMode ? !isEndOfTagSection(c) : isASCIIAlpha(c); } startSpecial(sequence, offset) { this.isSpecial = true; this.currentSequence = sequence; this.sequenceIndex = offset; this.state = State2.SpecialStartSequence; } stateBeforeTagName(c) { if (c === CharCodes2.ExclamationMark) { this.state = State2.BeforeDeclaration; this.sectionStart = this.index + 1; } else if (c === CharCodes2.Questionmark) { this.state = State2.InProcessingInstruction; this.sectionStart = this.index + 1; } else if (this.isTagStartChar(c)) { const lower = c | 32; this.sectionStart = this.index; if (this.xmlMode) { this.state = State2.InTagName; } else if (lower === Sequences.ScriptEnd[2]) { this.state = State2.BeforeSpecialS; } else if (lower === Sequences.TitleEnd[2]) { this.state = State2.BeforeSpecialT; } else { this.state = State2.InTagName; } } else if (c === CharCodes2.Slash) { this.state = State2.BeforeClosingTagName; } else { this.state = State2.Text; this.stateText(c); } } stateInTagName(c) { if (isEndOfTagSection(c)) { this.cbs.onopentagname(this.sectionStart, this.index); this.sectionStart = -1; this.state = State2.BeforeAttributeName; this.stateBeforeAttributeName(c); } } stateBeforeClosingTagName(c) { if (isWhitespace2(c)) { } else if (c === CharCodes2.Gt) { this.state = State2.Text; } else { this.state = this.isTagStartChar(c) ? State2.InClosingTagName : State2.InSpecialComment; this.sectionStart = this.index; } } stateInClosingTagName(c) { if (c === CharCodes2.Gt || isWhitespace2(c)) { this.cbs.onclosetag(this.sectionStart, this.index); this.sectionStart = -1; this.state = State2.AfterClosingTagName; this.stateAfterClosingTagName(c); } } stateAfterClosingTagName(c) { if (c === CharCodes2.Gt || this.fastForwardTo(CharCodes2.Gt)) { this.state = State2.Text; this.sectionStart = this.index + 1; } } stateBeforeAttributeName(c) { if (c === CharCodes2.Gt) { this.cbs.onopentagend(this.index); if (this.isSpecial) { this.state = State2.InSpecialTag; this.sequenceIndex = 0; } else { this.state = State2.Text; } this.sectionStart = this.index + 1; } else if (c === CharCodes2.Slash) { this.state = State2.InSelfClosingTag; } else if (!isWhitespace2(c)) { this.state = State2.InAttributeName; this.sectionStart = this.index; } } stateInSelfClosingTag(c) { if (c === CharCodes2.Gt) { this.cbs.onselfclosingtag(this.index); this.state = State2.Text; this.sectionStart = this.index + 1; this.isSpecial = false; } else if (!isWhitespace2(c)) { this.state = State2.BeforeAttributeName; this.stateBeforeAttributeName(c); } } stateInAttributeName(c) { if (c === CharCodes2.Eq || isEndOfTagSection(c)) { this.cbs.onattribname(this.sectionStart, this.index); this.sectionStart = this.index; this.state = State2.AfterAttributeName; this.stateAfterAttributeName(c); } } stateAfterAttributeName(c) { if (c === CharCodes2.Eq) { this.state = State2.BeforeAttributeValue; } else if (c === CharCodes2.Slash || c === CharCodes2.Gt) { this.cbs.onattribend(QuoteType.NoValue, this.sectionStart); this.sectionStart = -1; this.state = State2.BeforeAttributeName; this.stateBeforeAttributeName(c); } else if (!isWhitespace2(c)) { this.cbs.onattribend(QuoteType.NoValue, this.sectionStart); this.state = State2.InAttributeName; this.sectionStart = this.index; } } stateBeforeAttributeValue(c) { if (c === CharCodes2.DoubleQuote) { this.state = State2.InAttributeValueDq; this.sectionStart = this.index + 1; } else if (c === CharCodes2.SingleQuote) { this.state = State2.InAttributeValueSq; this.sectionStart = this.index + 1; } else if (!isWhitespace2(c)) { this.sectionStart = this.index; this.state = State2.InAttributeValueNq; this.stateInAttributeValueNoQuotes(c); } } handleInAttributeValue(c, quote) { if (c === quote || !this.decodeEntities && this.fastForwardTo(quote)) { this.cbs.onattribdata(this.sectionStart, this.index); this.sectionStart = -1; this.cbs.onattribend(quote === CharCodes2.DoubleQuote ? QuoteType.Double : QuoteType.Single, this.index + 1); this.state = State2.BeforeAttributeName; } else if (this.decodeEntities && c === CharCodes2.Amp) { this.startEntity(); } } stateInAttributeValueDoubleQuotes(c) { this.handleInAttributeValue(c, CharCodes2.DoubleQuote); } stateInAttributeValueSingleQuotes(c) { this.handleInAttributeValue(c, CharCodes2.SingleQuote); } stateInAttributeValueNoQuotes(c) { if (isWhitespace2(c) || c === CharCodes2.Gt) { this.cbs.onattribdata(this.sectionStart, this.index); this.sectionStart = -1; this.cbs.onattribend(QuoteType.Unquoted, this.index); this.state = State2.BeforeAttributeName; this.stateBeforeAttributeName(c); } else if (this.decodeEntities && c === CharCodes2.Amp) { this.startEntity(); } } stateBeforeDeclaration(c) { if (c === CharCodes2.OpeningSquareBracket) { this.state = State2.CDATASequence; this.sequenceIndex = 0; } else { this.state = c === CharCodes2.Dash ? State2.BeforeComment : State2.InDeclaration; } } stateInDeclaration(c) { if (c === CharCodes2.Gt || this.fastForwardTo(CharCodes2.Gt)) { this.cbs.ondeclaration(this.sectionStart, this.index); this.state = State2.Text; this.sectionStart = this.index + 1; } } stateInProcessingInstruction(c) { if (c === CharCodes2.Gt || this.fastForwardTo(CharCodes2.Gt)) { this.cbs.onprocessinginstruction(this.sectionStart, this.index); this.state = State2.Text; this.sectionStart = this.index + 1; } } stateBeforeComment(c) { if (c === CharCodes2.Dash) { this.state = State2.InCommentLike; this.currentSequence = Sequences.CommentEnd; this.sequenceIndex = 2; this.sectionStart = this.index + 1; } else { this.state = State2.InDeclaration; } } stateInSpecialComment(c) { if (c === CharCodes2.Gt || this.fastForwardTo(CharCodes2.Gt)) { this.cbs.oncomment(this.sectionStart, this.index, 0); this.state = State2.Text; this.sectionStart = this.index + 1; } } stateBeforeSpecialS(c) { const lower = c | 32; if (lower === Sequences.ScriptEnd[3]) { this.startSpecial(Sequences.ScriptEnd, 4); } else if (lower === Sequences.StyleEnd[3]) { this.startSpecial(Sequences.StyleEnd, 4); } else { this.state = State2.InTagName; this.stateInTagName(c); } } stateBeforeSpecialT(c) { const lower = c | 32; if (lower === Sequences.TitleEnd[3]) { this.startSpecial(Sequences.TitleEnd, 4); } else if (lower === Sequences.TextareaEnd[3]) { this.startSpecial(Sequences.TextareaEnd, 4); } else { this.state = State2.InTagName; this.stateInTagName(c); } } startEntity() { this.baseState = this.state; this.state = State2.InEntity; this.entityStart = this.index; this.entityDecoder.startEntity(this.xmlMode ? DecodingMode.Strict : this.baseState === State2.Text || this.baseState === State2.InSpecialTag ? DecodingMode.Legacy : DecodingMode.Attribute); } stateInEntity() { const length = this.entityDecoder.write(this.buffer, this.index - this.offset); if (length >= 0) { this.state = this.baseState; if (length === 0) { this.index = this.entityStart; } } else { this.index = this.offset + this.buffer.length - 1; } } /** * Remove data that has already been consumed from the buffer. */ cleanup() { if (this.running && this.sectionStart !== this.index) { if (this.state === State2.Text || this.state === State2.InSpecialTag && this.sequenceIndex === 0) { this.cbs.ontext(this.sectionStart, this.index); this.sectionStart = this.index; } else if (this.state === State2.InAttributeValueDq || this.state === State2.InAttributeValueSq || this.state === State2.InAttributeValueNq) { this.cbs.onattribdata(this.sectionStart, this.index); this.sectionStart = this.index; } } } shouldContinue() { return this.index < this.buffer.length + this.offset && this.running; } /** * Iterates through the buffer, calling the function corresponding to the current state. * * States that are more likely to be hit are higher up, as a performance improvement. */ parse() { while (this.shouldContinue()) { const c = this.buffer.charCodeAt(this.index - this.offset); switch (this.state) { case State2.Text: { this.stateText(c); break; } case State2.SpecialStartSequence: { this.stateSpecialStartSequence(c); break; } case State2.InSpecialTag: { this.stateInSpecialTag(c); break; } case State2.CDATASequence: { this.stateCDATASequence(c); break; } case State2.InAttributeValueDq: { this.stateInAttributeValueDoubleQuotes(c); break; } case State2.InAttributeName: { this.stateInAttributeName(c); break; } case State2.InCommentLike: { this.stateInCommentLike(c); break; } case State2.InSpecialComment: { this.stateInSpecialComment(c); break; } case State2.BeforeAttributeName: { this.stateBeforeAttributeName(c); break; } case State2.InTagName: { this.stateInTagName(c); break; } case State2.InClosingTagName: { this.stateInClosingTagName(c); break; } case State2.BeforeTagName: { this.stateBeforeTagName(c); break; } case State2.AfterAttributeName: { this.stateAfterAttributeName(c); break; } case State2.InAttributeValueSq: { this.stateInAttributeValueSingleQuotes(c); break; } case State2.BeforeAttributeValue: { this.stateBeforeAttributeValue(c); break; } case State2.BeforeClosingTagName: { this.stateBeforeClosingTagName(c); break; } case State2.AfterClosingTagName: { this.stateAfterClosingTagName(c); break; } case State2.BeforeSpecialS: { this.stateBeforeSpecialS(c); break; } case State2.BeforeSpecialT: { this.stateBeforeSpecialT(c); break; } case State2.InAttributeValueNq: { this.stateInAttributeValueNoQuotes(c); break; } case State2.InSelfClosingTag: { this.stateInSelfClosingTag(c); break; } case State2.InDeclaration: { this.stateInDeclaration(c); break; } case State2.BeforeDeclaration: { this.stateBeforeDeclaration(c); break; } case State2.BeforeComment: { this.stateBeforeComment(c); break; } case State2.InProcessingInstruction: { this.stateInProcessingInstruction(c); break; } case State2.InEntity: { this.stateInEntity(); break; } } this.index++; } this.cleanup(); } finish() { if (this.state === State2.InEntity) { this.entityDecoder.end(); this.state = this.baseState; } this.handleTrailingData(); this.cbs.onend(); } /** Handle any trailing data. */ handleTrailingData() { const endIndex = this.buffer.length + this.offset; if (this.sectionStart >= endIndex) { return; } if (this.state === State2.InCommentLike) { if (this.currentSequence === Sequences.CdataEnd) { this.cbs.oncdata(this.sectionStart, endIndex, 0); } else { this.cbs.oncomment(this.sectionStart, endIndex, 0); } } else if (this.state === State2.InTagName || this.state === State2.BeforeAttributeName || this.state === State2.BeforeAttributeValue || this.state === State2.AfterAttributeName || this.state === State2.InAttributeName || this.state === State2.InAttributeValueSq || this.state === State2.InAttributeValueDq || this.state === State2.InAttributeValueNq || this.state === State2.InClosingTagName) { } else { this.cbs.ontext(this.sectionStart, endIndex); } } emitCodePoint(cp, consumed) { if (this.baseState !== State2.Text && this.baseState !== State2.InSpecialTag) { if (this.sectionStart < this.entityStart) { this.cbs.onattribdata(this.sectionStart, this.entityStart); } this.sectionStart = this.entityStart + consumed; this.index = this.sectionStart - 1; this.cbs.onattribentity(cp); } else { if (this.sectionStart < this.entityStart) { this.cbs.ontext(this.sectionStart, this.entityStart); } this.sectionStart = this.entityStart + consumed; this.index = this.sectionStart - 1; this.cbs.ontextentity(cp, this.sectionStart); } } }; } }); // node_modules/htmlparser2/lib/esm/Parser.js var formTags, pTag, tableSectionTags, ddtTags, rtpTags, openImpliesClose, voidElements, foreignContextElements, htmlIntegrationElements, reNameEnd, Parser2; var init_Parser = __esm({ "node_modules/htmlparser2/lib/esm/Parser.js"() { init_Tokenizer(); init_decode(); formTags = /* @__PURE__ */ new Set([ "input", "option", "optgroup", "select", "button", "datalist", "textarea" ]); pTag = /* @__PURE__ */ new Set(["p"]); tableSectionTags = /* @__PURE__ */ new Set(["thead", "tbody"]); ddtTags = /* @__PURE__ */ new Set(["dd", "dt"]); rtpTags = /* @__PURE__ */ new Set(["rt", "rp"]); openImpliesClose = /* @__PURE__ */ new Map([ ["tr", /* @__PURE__ */ new Set(["tr", "th", "td"])], ["th", /* @__PURE__ */ new Set(["th"])], ["td", /* @__PURE__ */ new Set(["thead", "th", "td"])], ["body", /* @__PURE__ */ new Set(["head", "link", "script"])], ["li", /* @__PURE__ */ new Set(["li"])], ["p", pTag], ["h1", pTag], ["h2", pTag], ["h3", pTag], ["h4", pTag], ["h5", pTag], ["h6", pTag], ["select", formTags], ["input", formTags], ["output", formTags], ["button", formTags], ["datalist", formTags], ["textarea", formTags], ["option", /* @__PURE__ */ new Set(["option"])], ["optgroup", /* @__PURE__ */ new Set(["optgroup", "option"])], ["dd", ddtTags], ["dt", ddtTags], ["address", pTag], ["article", pTag], ["aside", pTag], ["blockquote", pTag], ["details", pTag], ["div", pTag], ["dl", pTag], ["fieldset", pTag], ["figcaption", pTag], ["figure", pTag], ["footer", pTag], ["form", pTag], ["header", pTag], ["hr", pTag], ["main", pTag], ["nav", pTag], ["ol", pTag], ["pre", pTag], ["section", pTag], ["table", pTag], ["ul", pTag], ["rt", rtpTags], ["rp", rtpTags], ["tbody", tableSectionTags], ["tfoot", tableSectionTags] ]); voidElements = /* @__PURE__ */ new Set([ "area", "base", "basefont", "br", "col", "command", "embed", "frame", "hr", "img", "input", "isindex", "keygen", "link", "meta", "param", "source", "track", "wbr" ]); foreignContextElements = /* @__PURE__ */ new Set(["math", "svg"]); htmlIntegrationElements = /* @__PURE__ */ new Set([ "mi", "mo", "mn", "ms", "mtext", "annotation-xml", "foreignobject", "desc", "title" ]); reNameEnd = /\s|\//; Parser2 = class { constructor(cbs, options = {}) { var _a2, _b, _c, _d, _e, _f; this.options = options; this.startIndex = 0; this.endIndex = 0; this.openTagStart = 0; this.tagname = ""; this.attribname = ""; this.attribvalue = ""; this.attribs = null; this.stack = []; this.buffers = []; this.bufferOffset = 0; this.writeIndex = 0; this.ended = false; this.cbs = cbs !== null && cbs !== void 0 ? cbs : {}; this.htmlMode = !this.options.xmlMode; this.lowerCaseTagNames = (_a2 = options.lowerCaseTags) !== null && _a2 !== void 0 ? _a2 : this.htmlMode; this.lowerCaseAttributeNames = (_b = options.lowerCaseAttributeNames) !== null && _b !== void 0 ? _b : this.htmlMode; this.recognizeSelfClosing = (_c = options.recognizeSelfClosing) !== null && _c !== void 0 ? _c : !this.htmlMode; this.tokenizer = new ((_d = options.Tokenizer) !== null && _d !== void 0 ? _d : Tokenizer2)(this.options, this); this.foreignContext = [!this.htmlMode]; (_f = (_e = this.cbs).onparserinit) === null || _f === void 0 ? void 0 : _f.call(_e, this); } // Tokenizer event handlers /** @internal */ ontext(start, endIndex) { var _a2, _b; const data2 = this.getSlice(start, endIndex); this.endIndex = endIndex - 1; (_b = (_a2 = this.cbs).ontext) === null || _b === void 0 ? void 0 : _b.call(_a2, data2); this.startIndex = endIndex; } /** @internal */ ontextentity(cp, endIndex) { var _a2, _b; this.endIndex = endIndex - 1; (_b = (_a2 = this.cbs).ontext) === null || _b === void 0 ? void 0 : _b.call(_a2, fromCodePoint(cp)); this.startIndex = endIndex; } /** * Checks if the current tag is a void element. Override this if you want * to specify your own additional void elements. */ isVoidElement(name) { return this.htmlMode && voidElements.has(name); } /** @internal */ onopentagname(start, endIndex) { this.endIndex = endIndex; let name = this.getSlice(start, endIndex); if (this.lowerCaseTagNames) { name = name.toLowerCase(); } this.emitOpenTag(name); } emitOpenTag(name) { var _a2, _b, _c, _d; this.openTagStart = this.startIndex; this.tagname = name; const impliesClose = this.htmlMode && openImpliesClose.get(name); if (impliesClose) { while (this.stack.length > 0 && impliesClose.has(this.stack[0])) { const element = this.stack.shift(); (_b = (_a2 = this.cbs).onclosetag) === null || _b === void 0 ? void 0 : _b.call(_a2, element, true); } } if (!this.isVoidElement(name)) { this.stack.unshift(name); if (this.htmlMode) { if (foreignContextElements.has(name)) { this.foreignContext.unshift(true); } else if (htmlIntegrationElements.has(name)) { this.foreignContext.unshift(false); } } } (_d = (_c = this.cbs).onopentagname) === null || _d === void 0 ? void 0 : _d.call(_c, name); if (this.cbs.onopentag) this.attribs = {}; } endOpenTag(isImplied) { var _a2, _b; this.startIndex = this.openTagStart; if (this.attribs) { (_b = (_a2 = this.cbs).onopentag) === null || _b === void 0 ? void 0 : _b.call(_a2, this.tagname, this.attribs, isImplied); this.attribs = null; } if (this.cbs.onclosetag && this.isVoidElement(this.tagname)) { this.cbs.onclosetag(this.tagname, true); } this.tagname = ""; } /** @internal */ onopentagend(endIndex) { this.endIndex = endIndex; this.endOpenTag(false); this.startIndex = endIndex + 1; } /** @internal */ onclosetag(start, endIndex) { var _a2, _b, _c, _d, _e, _f, _g, _h; this.endIndex = endIndex; let name = this.getSlice(start, endIndex); if (this.lowerCaseTagNames) { name = name.toLowerCase(); } if (this.htmlMode && (foreignContextElements.has(name) || htmlIntegrationElements.has(name))) { this.foreignContext.shift(); } if (!this.isVoidElement(name)) { const pos = this.stack.indexOf(name); if (pos !== -1) { for (let index2 = 0; index2 <= pos; index2++) { const element = this.stack.shift(); (_b = (_a2 = this.cbs).onclosetag) === null || _b === void 0 ? void 0 : _b.call(_a2, element, index2 !== pos); } } else if (this.htmlMode && name === "p") { this.emitOpenTag("p"); this.closeCurrentTag(true); } } else if (this.htmlMode && name === "br") { (_d = (_c = this.cbs).onopentagname) === null || _d === void 0 ? void 0 : _d.call(_c, "br"); (_f = (_e = this.cbs).onopentag) === null || _f === void 0 ? void 0 : _f.call(_e, "br", {}, true); (_h = (_g = this.cbs).onclosetag) === null || _h === void 0 ? void 0 : _h.call(_g, "br", false); } this.startIndex = endIndex + 1; } /** @internal */ onselfclosingtag(endIndex) { this.endIndex = endIndex; if (this.recognizeSelfClosing || this.foreignContext[0]) { this.closeCurrentTag(false); this.startIndex = endIndex + 1; } else { this.onopentagend(endIndex); } } closeCurrentTag(isOpenImplied) { var _a2, _b; const name = this.tagname; this.endOpenTag(isOpenImplied); if (this.stack[0] === name) { (_b = (_a2 = this.cbs).onclosetag) === null || _b === void 0 ? void 0 : _b.call(_a2, name, !isOpenImplied); this.stack.shift(); } } /** @internal */ onattribname(start, endIndex) { this.startIndex = start; const name = this.getSlice(start, endIndex); this.attribname = this.lowerCaseAttributeNames ? name.toLowerCase() : name; } /** @internal */ onattribdata(start, endIndex) { this.attribvalue += this.getSlice(start, endIndex); } /** @internal */ onattribentity(cp) { this.attribvalue += fromCodePoint(cp); } /** @internal */ onattribend(quote, endIndex) { var _a2, _b; this.endIndex = endIndex; (_b = (_a2 = this.cbs).onattribute) === null || _b === void 0 ? void 0 : _b.call(_a2, this.attribname, this.attribvalue, quote === QuoteType.Double ? '"' : quote === QuoteType.Single ? "'" : quote === QuoteType.NoValue ? void 0 : null); if (this.attribs && !Object.prototype.hasOwnProperty.call(this.attribs, this.attribname)) { this.attribs[this.attribname] = this.attribvalue; } this.attribvalue = ""; } getInstructionName(value) { const index2 = value.search(reNameEnd); let name = index2 < 0 ? value : value.substr(0, index2); if (this.lowerCaseTagNames) { name = name.toLowerCase(); } return name; } /** @internal */ ondeclaration(start, endIndex) { this.endIndex = endIndex; const value = this.getSlice(start, endIndex); if (this.cbs.onprocessinginstruction) { const name = this.getInstructionName(value); this.cbs.onprocessinginstruction(`!${name}`, `!${value}`); } this.startIndex = endIndex + 1; } /** @internal */ onprocessinginstruction(start, endIndex) { this.endIndex = endIndex; const value = this.getSlice(start, endIndex); if (this.cbs.onprocessinginstruction) { const name = this.getInstructionName(value); this.cbs.onprocessinginstruction(`?${name}`, `?${value}`); } this.startIndex = endIndex + 1; } /** @internal */ oncomment(start, endIndex, offset) { var _a2, _b, _c, _d; this.endIndex = endIndex; (_b = (_a2 = this.cbs).oncomment) === null || _b === void 0 ? void 0 : _b.call(_a2, this.getSlice(start, endIndex - offset)); (_d = (_c = this.cbs).oncommentend) === null || _d === void 0 ? void 0 : _d.call(_c); this.startIndex = endIndex + 1; } /** @internal */ oncdata(start, endIndex, offset) { var _a2, _b, _c, _d, _e, _f, _g, _h, _j, _k; this.endIndex = endIndex; const value = this.getSlice(start, endIndex - offset); if (!this.htmlMode || this.options.recognizeCDATA) { (_b = (_a2 = this.cbs).oncdatastart) === null || _b === void 0 ? void 0 : _b.call(_a2); (_d = (_c = this.cbs).ontext) === null || _d === void 0 ? void 0 : _d.call(_c, value); (_f = (_e = this.cbs).oncdataend) === null || _f === void 0 ? void 0 : _f.call(_e); } else { (_h = (_g = this.cbs).oncomment) === null || _h === void 0 ? void 0 : _h.call(_g, `[CDATA[${value}]]`); (_k = (_j = this.cbs).oncommentend) === null || _k === void 0 ? void 0 : _k.call(_j); } this.startIndex = endIndex + 1; } /** @internal */ onend() { var _a2, _b; if (this.cbs.onclosetag) { this.endIndex = this.startIndex; for (let index2 = 0; index2 < this.stack.length; index2++) { this.cbs.onclosetag(this.stack[index2], true); } } (_b = (_a2 = this.cbs).onend) === null || _b === void 0 ? void 0 : _b.call(_a2); } /** * Resets the parser to a blank state, ready to parse a new HTML document */ reset() { var _a2, _b, _c, _d; (_b = (_a2 = this.cbs).onreset) === null || _b === void 0 ? void 0 : _b.call(_a2); this.tokenizer.reset(); this.tagname = ""; this.attribname = ""; this.attribs = null; this.stack.length = 0; this.startIndex = 0; this.endIndex = 0; (_d = (_c = this.cbs).onparserinit) === null || _d === void 0 ? void 0 : _d.call(_c, this); this.buffers.length = 0; this.foreignContext.length = 0; this.foreignContext.unshift(!this.htmlMode); this.bufferOffset = 0; this.writeIndex = 0; this.ended = false; } /** * Resets the parser, then parses a complete document and * pushes it to the handler. * * @param data Document to parse. */ parseComplete(data2) { this.reset(); this.end(data2); } getSlice(start, end2) { while (start - this.bufferOffset >= this.buffers[0].length) { this.shiftBuffer(); } let slice2 = this.buffers[0].slice(start - this.bufferOffset, end2 - this.bufferOffset); while (end2 - this.bufferOffset > this.buffers[0].length) { this.shiftBuffer(); slice2 += this.buffers[0].slice(0, end2 - this.bufferOffset); } return slice2; } shiftBuffer() { this.bufferOffset += this.buffers[0].length; this.writeIndex--; this.buffers.shift(); } /** * Parses a chunk of data and calls the corresponding callbacks. * * @param chunk Chunk to parse. */ write(chunk) { var _a2, _b; if (this.ended) { (_b = (_a2 = this.cbs).onerror) === null || _b === void 0 ? void 0 : _b.call(_a2, new Error(".write() after done!")); return; } this.buffers.push(chunk); if (this.tokenizer.running) { this.tokenizer.write(chunk); this.writeIndex++; } } /** * Parses the end of the buffer and clears the stack, calls onend. * * @param chunk Optional final chunk to parse. */ end(chunk) { var _a2, _b; if (this.ended) { (_b = (_a2 = this.cbs).onerror) === null || _b === void 0 ? void 0 : _b.call(_a2, new Error(".end() after done!")); return; } if (chunk) this.write(chunk); this.ended = true; this.tokenizer.end(); } /** * Pauses parsing. The parser won't emit events until `resume` is called. */ pause() { this.tokenizer.pause(); } /** * Resumes parsing after `pause` was called. */ resume() { this.tokenizer.resume(); while (this.tokenizer.running && this.writeIndex < this.buffers.length) { this.tokenizer.write(this.buffers[this.writeIndex++]); } if (this.ended) this.tokenizer.end(); } /** * Alias of `write`, for backwards compatibility. * * @param chunk Chunk to parse. * @deprecated */ parseChunk(chunk) { this.write(chunk); } /** * Alias of `end`, for backwards compatibility. * * @param chunk Optional final chunk to parse. * @deprecated */ done(chunk) { this.end(chunk); } }; } }); // node_modules/htmlparser2/lib/esm/index.js function parseDocument(data2, options) { const handler = new DomHandler(void 0, options); new Parser2(handler, options).end(data2); return handler.root; } var init_esm9 = __esm({ "node_modules/htmlparser2/lib/esm/index.js"() { init_Parser(); init_Parser(); init_esm2(); init_esm2(); init_Tokenizer(); init_esm(); init_esm5(); init_esm5(); init_esm5(); } }); // node_modules/cheerio/dist/esm/load-parse.js var parse7, load; var init_load_parse = __esm({ "node_modules/cheerio/dist/esm/load-parse.js"() { init_load(); init_parse2(); init_parse5_adapter(); init_esm4(); init_esm9(); parse7 = getParse((content, options, isDocument2, context) => options._useHtmlParser2 ? parseDocument(content, options) : parseWithParse5(content, options, isDocument2, context)); load = getLoad(parse7, (dom, options) => options._useHtmlParser2 ? esm_default(dom, options) : renderWithParse5(dom)); } }); // node_modules/parse5-parser-stream/dist/index.js var init_dist3 = __esm({ "node_modules/parse5-parser-stream/dist/index.js"() { init_dist(); } }); // node_modules/safer-buffer/safer.js var require_safer = __commonJS({ "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; } }); // node_modules/iconv-lite/lib/bom-handling.js var require_bom_handling = __commonJS({ "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(); }; } }); // node_modules/iconv-lite/encodings/internal.js var require_internal = __commonJS({ "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, iconv2) { 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 = iconv2.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; }; } }); // node_modules/iconv-lite/encodings/utf32.js var require_utf32 = __commonJS({ "node_modules/iconv-lite/encodings/utf32.js"(exports2) { "use strict"; var Buffer2 = require_safer().Buffer; exports2._utf32 = Utf32Codec; function Utf32Codec(codecOptions, iconv2) { this.iconv = iconv2; 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, iconv2) { this.iconv = iconv2; } 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"; } } }); // node_modules/iconv-lite/encodings/utf16.js var require_utf16 = __commonJS({ "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, iconv2) { this.iconv = iconv2; } 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"; } } }); // node_modules/iconv-lite/encodings/utf7.js var require_utf7 = __commonJS({ "node_modules/iconv-lite/encodings/utf7.js"(exports2) { "use strict"; var Buffer2 = require_safer().Buffer; exports2.utf7 = Utf7Codec; exports2.unicode11utf7 = "utf7"; function Utf7Codec(codecOptions, iconv2) { this.iconv = iconv2; } 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 base64Regex3 = /[A-Za-z0-9\/+]/; var base64Chars = []; for (i = 0; i < 256; i++) base64Chars[i] = base64Regex3.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, iconv2) { this.iconv = iconv2; } 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; }; } }); // node_modules/iconv-lite/encodings/sbcs-codec.js var require_sbcs_codec = __commonJS({ "node_modules/iconv-lite/encodings/sbcs-codec.js"(exports2) { "use strict"; var Buffer2 = require_safer().Buffer; exports2._sbcs = SBCSCodec; function SBCSCodec(codecOptions, iconv2) { 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, iconv2.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() { }; } }); // node_modules/iconv-lite/encodings/sbcs-data.js var require_sbcs_data = __commonJS({ "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" }; } }); // node_modules/iconv-lite/encodings/sbcs-data-generated.js var require_sbcs_data_generated = __commonJS({ "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" } }; } }); // node_modules/iconv-lite/encodings/dbcs-codec.js var require_dbcs_codec = __commonJS({ "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, iconv2) { 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 = iconv2.defaultCharUnicode; this.encodeTable = []; this.encodeTableSeq = []; var skipEncodeChars = {}; if (codecOptions.encodeSkipVals) for (var i2 = 0; i2 < codecOptions.encodeSkipVals.length; i2++) { var val2 = codecOptions.encodeSkipVals[i2]; if (typeof val2 === "number") skipEncodeChars[val2] = true; else for (var j = val2.from; j <= val2.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][iconv2.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 val2 = node[bytes[i2]]; if (val2 == UNASSIGNED) { node[bytes[i2]] = NODE_START - this.decodeTables.length; this.decodeTables.push(node = UNASSIGNED_NODE.slice(0)); } else if (val2 <= NODE_START) { node = this.decodeTables[NODE_START - val2]; } 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, val2) { if (table[0] > val2) return -1; var l = 0, r = table.length; while (l < r - 1) { var mid = l + (r - l + 1 >> 1); if (table[mid] <= val2) l = mid; else r = mid; } return l; } } }); // node_modules/iconv-lite/encodings/tables/shiftjis.json var require_shiftjis = __commonJS({ "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"] ]; } }); // node_modules/iconv-lite/encodings/tables/eucjp.json var require_eucjp = __commonJS({ "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"] ]; } }); // node_modules/iconv-lite/encodings/tables/cp936.json var require_cp936 = __commonJS({ "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"] ]; } }); // node_modules/iconv-lite/encodings/tables/gbk-added.json var require_gbk_added = __commonJS({ "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"] ]; } }); // node_modules/iconv-lite/encodings/tables/gb18030-ranges.json var require_gb18030_ranges = __commonJS({ "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] }; } }); // node_modules/iconv-lite/encodings/tables/cp949.json var require_cp949 = __commonJS({ "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"] ]; } }); // node_modules/iconv-lite/encodings/tables/cp950.json var require_cp950 = __commonJS({ "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"] ]; } }); // node_modules/iconv-lite/encodings/tables/big5-added.json var require_big5_added = __commonJS({ "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"] ]; } }); // node_modules/iconv-lite/encodings/dbcs-data.js var require_dbcs_data = __commonJS({ "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" }; } }); // node_modules/iconv-lite/encodings/index.js var require_encodings = __commonJS({ "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; } }); // node_modules/iconv-lite/lib/streams.js var require_streams = __commonJS({ "node_modules/iconv-lite/lib/streams.js"(exports2, module2) { "use strict"; var Buffer2 = require_safer().Buffer; module2.exports = function(stream_module) { var Transform2 = stream_module.Transform; function IconvLiteEncoderStream(conv, options) { this.conv = conv; options = options || {}; options.decodeStrings = false; Transform2.call(this, options); } IconvLiteEncoderStream.prototype = Object.create(Transform2.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"; Transform2.call(this, options); } IconvLiteDecoderStream.prototype = Object.create(Transform2.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 }; }; } }); // node_modules/iconv-lite/lib/index.js var require_lib = __commonJS({ "node_modules/iconv-lite/lib/index.js"(exports2, module2) { "use strict"; var Buffer2 = require_safer().Buffer; var bomHandling = require_bom_handling(); var iconv2 = module2.exports; iconv2.encodings = null; iconv2.defaultCharUnicode = "\uFFFD"; iconv2.defaultCharSingleByte = "?"; iconv2.encode = function encode3(str, encoding, options) { str = "" + (str || ""); var encoder = iconv2.getEncoder(encoding, options); var res = encoder.write(str); var trail = encoder.end(); return trail && trail.length > 0 ? Buffer2.concat([res, trail]) : res; }; iconv2.decode = function decode(buf, encoding, options) { if (typeof buf === "string") { if (!iconv2.skipDecodeWarning) { console.error("Iconv-lite warning: decode()-ing strings is deprecated. Refer to https://github.com/ashtuchkin/iconv-lite/wiki/Use-Buffers-when-decoding"); iconv2.skipDecodeWarning = true; } buf = Buffer2.from("" + (buf || ""), "binary"); } var decoder = iconv2.getDecoder(encoding, options); var res = decoder.write(buf); var trail = decoder.end(); return trail ? res + trail : res; }; iconv2.encodingExists = function encodingExists(enc) { try { iconv2.getCodec(enc); return true; } catch (e) { return false; } }; iconv2.toEncoding = iconv2.encode; iconv2.fromEncoding = iconv2.decode; iconv2._codecDataCache = {}; iconv2.getCodec = function getCodec(encoding) { if (!iconv2.encodings) iconv2.encodings = require_encodings(); var enc = iconv2._canonicalizeEncoding(encoding); var codecOptions = {}; while (true) { var codec = iconv2._codecDataCache[enc]; if (codec) return codec; var codecDef = iconv2.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, iconv2); iconv2._codecDataCache[codecOptions.encodingName] = codec; return codec; default: throw new Error("Encoding not recognized: '" + encoding + "' (searched as: '" + enc + "')"); } } }; iconv2._canonicalizeEncoding = function(encoding) { return ("" + encoding).toLowerCase().replace(/:\d{4}$|[^0-9a-z]/g, ""); }; iconv2.getEncoder = function getEncoder(encoding, options) { var codec = iconv2.getCodec(encoding), encoder = new codec.encoder(options, codec); if (codec.bomAware && options && options.addBOM) encoder = new bomHandling.PrependBOM(encoder, options); return encoder; }; iconv2.getDecoder = function getDecoder2(encoding, options) { var codec = iconv2.getCodec(encoding), decoder = new codec.decoder(options, codec); if (codec.bomAware && !(options && options.stripBOM === false)) decoder = new bomHandling.StripBOM(decoder, options); return decoder; }; iconv2.enableStreamingAPI = function enableStreamingAPI(stream_module2) { if (iconv2.supportsStreams) return; var streams = require_streams()(stream_module2); iconv2.IconvLiteEncoderStream = streams.IconvLiteEncoderStream; iconv2.IconvLiteDecoderStream = streams.IconvLiteDecoderStream; iconv2.encodeStream = function encodeStream(encoding, options) { return new iconv2.IconvLiteEncoderStream(iconv2.getEncoder(encoding, options), options); }; iconv2.decodeStream = function decodeStream(encoding, options) { return new iconv2.IconvLiteDecoderStream(iconv2.getDecoder(encoding, options), options); }; iconv2.supportsStreams = true; }; var stream_module; try { stream_module = require("stream"); } catch (e) { } if (stream_module && stream_module.Transform) { iconv2.enableStreamingAPI(stream_module); } else { iconv2.encodeStream = iconv2.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."); } } }); // node_modules/whatwg-encoding/lib/supported-names.json var require_supported_names = __commonJS({ "node_modules/whatwg-encoding/lib/supported-names.json"(exports2, module2) { module2.exports = [ "UTF-8", "IBM866", "ISO-8859-2", "ISO-8859-3", "ISO-8859-4", "ISO-8859-5", "ISO-8859-6", "ISO-8859-7", "ISO-8859-8", "ISO-8859-10", "ISO-8859-13", "ISO-8859-14", "ISO-8859-15", "ISO-8859-16", "KOI8-R", "KOI8-U", "macintosh", "windows-874", "windows-1250", "windows-1251", "windows-1252", "windows-1253", "windows-1254", "windows-1255", "windows-1256", "windows-1257", "windows-1258", "GBK", "gb18030", "Big5", "EUC-JP", "Shift_JIS", "EUC-KR", "UTF-16BE", "UTF-16LE", "x-user-defined" ]; } }); // node_modules/whatwg-encoding/lib/labels-to-names.json var require_labels_to_names = __commonJS({ "node_modules/whatwg-encoding/lib/labels-to-names.json"(exports2, module2) { module2.exports = { "866": "IBM866", "unicode-1-1-utf-8": "UTF-8", unicode11utf8: "UTF-8", unicode20utf8: "UTF-8", "utf-8": "UTF-8", utf8: "UTF-8", "x-unicode20utf8": "UTF-8", cp866: "IBM866", csibm866: "IBM866", ibm866: "IBM866", csisolatin2: "ISO-8859-2", "iso-8859-2": "ISO-8859-2", "iso-ir-101": "ISO-8859-2", "iso8859-2": "ISO-8859-2", iso88592: "ISO-8859-2", "iso_8859-2": "ISO-8859-2", "iso_8859-2:1987": "ISO-8859-2", l2: "ISO-8859-2", latin2: "ISO-8859-2", csisolatin3: "ISO-8859-3", "iso-8859-3": "ISO-8859-3", "iso-ir-109": "ISO-8859-3", "iso8859-3": "ISO-8859-3", iso88593: "ISO-8859-3", "iso_8859-3": "ISO-8859-3", "iso_8859-3:1988": "ISO-8859-3", l3: "ISO-8859-3", latin3: "ISO-8859-3", csisolatin4: "ISO-8859-4", "iso-8859-4": "ISO-8859-4", "iso-ir-110": "ISO-8859-4", "iso8859-4": "ISO-8859-4", iso88594: "ISO-8859-4", "iso_8859-4": "ISO-8859-4", "iso_8859-4:1988": "ISO-8859-4", l4: "ISO-8859-4", latin4: "ISO-8859-4", csisolatincyrillic: "ISO-8859-5", cyrillic: "ISO-8859-5", "iso-8859-5": "ISO-8859-5", "iso-ir-144": "ISO-8859-5", "iso8859-5": "ISO-8859-5", iso88595: "ISO-8859-5", "iso_8859-5": "ISO-8859-5", "iso_8859-5:1988": "ISO-8859-5", arabic: "ISO-8859-6", "asmo-708": "ISO-8859-6", csiso88596e: "ISO-8859-6", csiso88596i: "ISO-8859-6", csisolatinarabic: "ISO-8859-6", "ecma-114": "ISO-8859-6", "iso-8859-6": "ISO-8859-6", "iso-8859-6-e": "ISO-8859-6", "iso-8859-6-i": "ISO-8859-6", "iso-ir-127": "ISO-8859-6", "iso8859-6": "ISO-8859-6", iso88596: "ISO-8859-6", "iso_8859-6": "ISO-8859-6", "iso_8859-6:1987": "ISO-8859-6", csisolatingreek: "ISO-8859-7", "ecma-118": "ISO-8859-7", elot_928: "ISO-8859-7", greek: "ISO-8859-7", greek8: "ISO-8859-7", "iso-8859-7": "ISO-8859-7", "iso-ir-126": "ISO-8859-7", "iso8859-7": "ISO-8859-7", iso88597: "ISO-8859-7", "iso_8859-7": "ISO-8859-7", "iso_8859-7:1987": "ISO-8859-7", sun_eu_greek: "ISO-8859-7", csiso88598e: "ISO-8859-8", csisolatinhebrew: "ISO-8859-8", hebrew: "ISO-8859-8", "iso-8859-8": "ISO-8859-8", "iso-8859-8-e": "ISO-8859-8", "iso-ir-138": "ISO-8859-8", "iso8859-8": "ISO-8859-8", iso88598: "ISO-8859-8", "iso_8859-8": "ISO-8859-8", "iso_8859-8:1988": "ISO-8859-8", visual: "ISO-8859-8", csisolatin6: "ISO-8859-10", "iso-8859-10": "ISO-8859-10", "iso-ir-157": "ISO-8859-10", "iso8859-10": "ISO-8859-10", iso885910: "ISO-8859-10", l6: "ISO-8859-10", latin6: "ISO-8859-10", "iso-8859-13": "ISO-8859-13", "iso8859-13": "ISO-8859-13", iso885913: "ISO-8859-13", "iso-8859-14": "ISO-8859-14", "iso8859-14": "ISO-8859-14", iso885914: "ISO-8859-14", csisolatin9: "ISO-8859-15", "iso-8859-15": "ISO-8859-15", "iso8859-15": "ISO-8859-15", iso885915: "ISO-8859-15", "iso_8859-15": "ISO-8859-15", l9: "ISO-8859-15", "iso-8859-16": "ISO-8859-16", cskoi8r: "KOI8-R", koi: "KOI8-R", koi8: "KOI8-R", "koi8-r": "KOI8-R", koi8_r: "KOI8-R", "koi8-ru": "KOI8-U", "koi8-u": "KOI8-U", csmacintosh: "macintosh", mac: "macintosh", macintosh: "macintosh", "x-mac-roman": "macintosh", "dos-874": "windows-874", "iso-8859-11": "windows-874", "iso8859-11": "windows-874", iso885911: "windows-874", "tis-620": "windows-874", "windows-874": "windows-874", cp1250: "windows-1250", "windows-1250": "windows-1250", "x-cp1250": "windows-1250", cp1251: "windows-1251", "windows-1251": "windows-1251", "x-cp1251": "windows-1251", "ansi_x3.4-1968": "windows-1252", ascii: "windows-1252", cp1252: "windows-1252", cp819: "windows-1252", csisolatin1: "windows-1252", ibm819: "windows-1252", "iso-8859-1": "windows-1252", "iso-ir-100": "windows-1252", "iso8859-1": "windows-1252", iso88591: "windows-1252", "iso_8859-1": "windows-1252", "iso_8859-1:1987": "windows-1252", l1: "windows-1252", latin1: "windows-1252", "us-ascii": "windows-1252", "windows-1252": "windows-1252", "x-cp1252": "windows-1252", cp1253: "windows-1253", "windows-1253": "windows-1253", "x-cp1253": "windows-1253", cp1254: "windows-1254", csisolatin5: "windows-1254", "iso-8859-9": "windows-1254", "iso-ir-148": "windows-1254", "iso8859-9": "windows-1254", iso88599: "windows-1254", "iso_8859-9": "windows-1254", "iso_8859-9:1989": "windows-1254", l5: "windows-1254", latin5: "windows-1254", "windows-1254": "windows-1254", "x-cp1254": "windows-1254", cp1255: "windows-1255", "windows-1255": "windows-1255", "x-cp1255": "windows-1255", cp1256: "windows-1256", "windows-1256": "windows-1256", "x-cp1256": "windows-1256", cp1257: "windows-1257", "windows-1257": "windows-1257", "x-cp1257": "windows-1257", cp1258: "windows-1258", "windows-1258": "windows-1258", "x-cp1258": "windows-1258", chinese: "GBK", csgb2312: "GBK", csiso58gb231280: "GBK", gb2312: "GBK", gb_2312: "GBK", "gb_2312-80": "GBK", gbk: "GBK", "iso-ir-58": "GBK", "x-gbk": "GBK", gb18030: "gb18030", big5: "Big5", "big5-hkscs": "Big5", "cn-big5": "Big5", csbig5: "Big5", "x-x-big5": "Big5", cseucpkdfmtjapanese: "EUC-JP", "euc-jp": "EUC-JP", "x-euc-jp": "EUC-JP", csshiftjis: "Shift_JIS", ms932: "Shift_JIS", ms_kanji: "Shift_JIS", "shift-jis": "Shift_JIS", shift_jis: "Shift_JIS", sjis: "Shift_JIS", "windows-31j": "Shift_JIS", "x-sjis": "Shift_JIS", cseuckr: "EUC-KR", csksc56011987: "EUC-KR", "euc-kr": "EUC-KR", "iso-ir-149": "EUC-KR", korean: "EUC-KR", "ks_c_5601-1987": "EUC-KR", "ks_c_5601-1989": "EUC-KR", ksc5601: "EUC-KR", ksc_5601: "EUC-KR", "windows-949": "EUC-KR", unicodefffe: "UTF-16BE", "utf-16be": "UTF-16BE", csunicode: "UTF-16LE", "iso-10646-ucs-2": "UTF-16LE", "ucs-2": "UTF-16LE", unicode: "UTF-16LE", unicodefeff: "UTF-16LE", "utf-16": "UTF-16LE", "utf-16le": "UTF-16LE", "x-user-defined": "x-user-defined" }; } }); // node_modules/whatwg-encoding/lib/whatwg-encoding.js var require_whatwg_encoding = __commonJS({ "node_modules/whatwg-encoding/lib/whatwg-encoding.js"(exports2) { "use strict"; var iconvLite = require_lib(); var supportedNames = require_supported_names(); var labelsToNames = require_labels_to_names(); var supportedNamesSet = new Set(supportedNames); exports2.labelToName = (label) => { label = String(label).trim().toLowerCase(); return labelsToNames[label] || null; }; exports2.decode = (uint8Array, fallbackEncodingName) => { let encoding = fallbackEncodingName; if (!exports2.isSupported(encoding)) { throw new RangeError(`"${encoding}" is not a supported encoding name`); } const bomEncoding = exports2.getBOMEncoding(uint8Array); if (bomEncoding !== null) { encoding = bomEncoding; } if (encoding === "x-user-defined") { let result = ""; for (const byte of uint8Array) { if (byte <= 127) { result += String.fromCodePoint(byte); } else { result += String.fromCodePoint(63360 + byte - 128); } } return result; } return iconvLite.decode(uint8Array, encoding); }; exports2.getBOMEncoding = (uint8Array) => { if (uint8Array[0] === 254 && uint8Array[1] === 255) { return "UTF-16BE"; } else if (uint8Array[0] === 255 && uint8Array[1] === 254) { return "UTF-16LE"; } else if (uint8Array[0] === 239 && uint8Array[1] === 187 && uint8Array[2] === 191) { return "UTF-8"; } return null; }; exports2.isSupported = (name) => { return supportedNamesSet.has(String(name)); }; } }); // node_modules/encoding-sniffer/dist/esm/sniffer.js function toUint8Array(str) { var arr = new Uint8Array(str.length); for (var i = 0; i < str.length; i++) { arr[i] = str.charCodeAt(i); } return arr; } function isAsciiAlpha(c) { return c >= Chars.UpperA && c <= Chars.UpperZ || c >= Chars.LowerA && c <= Chars.LowerZ; } function isQuote(c) { return c === Chars.DQUOTE || c === Chars.SQUOTE; } var import_whatwg_encoding, State3, ResultType, AttribType, Chars, SPACE_CHARACTERS, END_OF_UNQUOTED_ATTRIBUTE_VALUE, STRINGS, Sniffer; var init_sniffer = __esm({ "node_modules/encoding-sniffer/dist/esm/sniffer.js"() { import_whatwg_encoding = __toESM(require_whatwg_encoding(), 1); (function(State4) { State4[State4["Begin"] = 0] = "Begin"; State4[State4["BOM16BE"] = 1] = "BOM16BE"; State4[State4["BOM16LE"] = 2] = "BOM16LE"; State4[State4["BOM8"] = 3] = "BOM8"; State4[State4["UTF16LE_XML_PREFIX"] = 4] = "UTF16LE_XML_PREFIX"; State4[State4["BeginLT"] = 5] = "BeginLT"; State4[State4["UTF16BE_XML_PREFIX"] = 6] = "UTF16BE_XML_PREFIX"; State4[State4["BeforeTag"] = 7] = "BeforeTag"; State4[State4["BeforeTagName"] = 8] = "BeforeTagName"; State4[State4["BeforeCloseTagName"] = 9] = "BeforeCloseTagName"; State4[State4["CommentStart"] = 10] = "CommentStart"; State4[State4["CommentEnd"] = 11] = "CommentEnd"; State4[State4["TagNameMeta"] = 12] = "TagNameMeta"; State4[State4["TagNameOther"] = 13] = "TagNameOther"; State4[State4["XMLDeclaration"] = 14] = "XMLDeclaration"; State4[State4["XMLDeclarationBeforeEncoding"] = 15] = "XMLDeclarationBeforeEncoding"; State4[State4["XMLDeclarationAfterEncoding"] = 16] = "XMLDeclarationAfterEncoding"; State4[State4["XMLDeclarationBeforeValue"] = 17] = "XMLDeclarationBeforeValue"; State4[State4["XMLDeclarationValue"] = 18] = "XMLDeclarationValue"; State4[State4["WeirdTag"] = 19] = "WeirdTag"; State4[State4["BeforeAttribute"] = 20] = "BeforeAttribute"; State4[State4["MetaAttribHttpEquiv"] = 21] = "MetaAttribHttpEquiv"; State4[State4["MetaAttribHttpEquivValue"] = 22] = "MetaAttribHttpEquivValue"; State4[State4["MetaAttribC"] = 23] = "MetaAttribC"; State4[State4["MetaAttribContent"] = 24] = "MetaAttribContent"; State4[State4["MetaAttribCharset"] = 25] = "MetaAttribCharset"; State4[State4["MetaAttribAfterName"] = 26] = "MetaAttribAfterName"; State4[State4["MetaContentValueQuotedBeforeEncoding"] = 27] = "MetaContentValueQuotedBeforeEncoding"; State4[State4["MetaContentValueQuotedAfterEncoding"] = 28] = "MetaContentValueQuotedAfterEncoding"; State4[State4["MetaContentValueQuotedBeforeValue"] = 29] = "MetaContentValueQuotedBeforeValue"; State4[State4["MetaContentValueQuotedValueQuoted"] = 30] = "MetaContentValueQuotedValueQuoted"; State4[State4["MetaContentValueQuotedValueUnquoted"] = 31] = "MetaContentValueQuotedValueUnquoted"; State4[State4["MetaContentValueUnquotedBeforeEncoding"] = 32] = "MetaContentValueUnquotedBeforeEncoding"; State4[State4["MetaContentValueUnquotedBeforeValue"] = 33] = "MetaContentValueUnquotedBeforeValue"; State4[State4["MetaContentValueUnquotedValueQuoted"] = 34] = "MetaContentValueUnquotedValueQuoted"; State4[State4["MetaContentValueUnquotedValueUnquoted"] = 35] = "MetaContentValueUnquotedValueUnquoted"; State4[State4["AnyAttribName"] = 36] = "AnyAttribName"; State4[State4["AfterAttributeName"] = 37] = "AfterAttributeName"; State4[State4["BeforeAttributeValue"] = 38] = "BeforeAttributeValue"; State4[State4["AttributeValueQuoted"] = 39] = "AttributeValueQuoted"; State4[State4["AttributeValueUnquoted"] = 40] = "AttributeValueUnquoted"; })(State3 || (State3 = {})); (function(ResultType2) { ResultType2[ResultType2["BOM"] = 0] = "BOM"; ResultType2[ResultType2["PASSED"] = 1] = "PASSED"; ResultType2[ResultType2["XML_PREFIX"] = 2] = "XML_PREFIX"; ResultType2[ResultType2["META_TAG"] = 3] = "META_TAG"; ResultType2[ResultType2["XML_ENCODING"] = 4] = "XML_ENCODING"; ResultType2[ResultType2["DEFAULT"] = 5] = "DEFAULT"; })(ResultType || (ResultType = {})); (function(AttribType2) { AttribType2[AttribType2["None"] = 0] = "None"; AttribType2[AttribType2["HttpEquiv"] = 1] = "HttpEquiv"; AttribType2[AttribType2["Content"] = 2] = "Content"; AttribType2[AttribType2["Charset"] = 3] = "Charset"; })(AttribType || (AttribType = {})); (function(Chars2) { Chars2[Chars2["NIL"] = 0] = "NIL"; Chars2[Chars2["TAB"] = 9] = "TAB"; Chars2[Chars2["LF"] = 10] = "LF"; Chars2[Chars2["CR"] = 13] = "CR"; Chars2[Chars2["SPACE"] = 32] = "SPACE"; Chars2[Chars2["EXCLAMATION"] = 33] = "EXCLAMATION"; Chars2[Chars2["DQUOTE"] = 34] = "DQUOTE"; Chars2[Chars2["SQUOTE"] = 39] = "SQUOTE"; Chars2[Chars2["DASH"] = 45] = "DASH"; Chars2[Chars2["SLASH"] = 47] = "SLASH"; Chars2[Chars2["SEMICOLON"] = 59] = "SEMICOLON"; Chars2[Chars2["LT"] = 60] = "LT"; Chars2[Chars2["EQUALS"] = 61] = "EQUALS"; Chars2[Chars2["GT"] = 62] = "GT"; Chars2[Chars2["QUESTION"] = 63] = "QUESTION"; Chars2[Chars2["UpperA"] = 65] = "UpperA"; Chars2[Chars2["UpperZ"] = 90] = "UpperZ"; Chars2[Chars2["LowerA"] = 97] = "LowerA"; Chars2[Chars2["LowerZ"] = 122] = "LowerZ"; })(Chars || (Chars = {})); SPACE_CHARACTERS = /* @__PURE__ */ new Set([Chars.SPACE, Chars.LF, Chars.CR, Chars.TAB]); END_OF_UNQUOTED_ATTRIBUTE_VALUE = /* @__PURE__ */ new Set([ Chars.SPACE, Chars.LF, Chars.CR, Chars.TAB, Chars.GT ]); STRINGS = { UTF8_BOM: new Uint8Array([239, 187, 191]), UTF16LE_BOM: new Uint8Array([255, 254]), UTF16BE_BOM: new Uint8Array([254, 255]), UTF16LE_XML_PREFIX: new Uint8Array([60, 0, 63, 0, 120, 0]), UTF16BE_XML_PREFIX: new Uint8Array([0, 60, 0, 63, 0, 120]), XML_DECLARATION: toUint8Array("<?xml"), ENCODING: toUint8Array("encoding"), META: toUint8Array("meta"), HTTP_EQUIV: toUint8Array("http-equiv"), CONTENT: toUint8Array("content"), CONTENT_TYPE: toUint8Array("content-type"), CHARSET: toUint8Array("charset"), COMMENT_START: toUint8Array("<!--"), COMMENT_END: toUint8Array("-->") }; Sniffer = /** @class */ (function() { function Sniffer2(_a2) { var _b = _a2 === void 0 ? {} : _a2, _c = _b.maxBytes, maxBytes = _c === void 0 ? 1024 : _c, userEncoding = _b.userEncoding, transportLayerEncodingLabel = _b.transportLayerEncodingLabel, defaultEncoding = _b.defaultEncoding; this.offset = 0; this.state = State3.Begin; this.sectionIndex = 0; this.attribType = AttribType.None; this.gotPragma = null; this.needsPragma = null; this.inMetaTag = false; this.encoding = "windows-1252"; this.resultType = ResultType.DEFAULT; this.quoteCharacter = 0; this.attributeValue = []; this.maxBytes = maxBytes; if (userEncoding) { this.setResult(userEncoding, ResultType.PASSED); } if (transportLayerEncodingLabel) { this.setResult(transportLayerEncodingLabel, ResultType.PASSED); } if (defaultEncoding) { this.setResult(defaultEncoding, ResultType.DEFAULT); } } Sniffer2.prototype.setResult = function(label, type) { if (this.resultType === ResultType.DEFAULT || this.resultType > type) { var encoding = (0, import_whatwg_encoding.labelToName)(label); if (encoding) { this.encoding = // Check if we are in a meta tag and the encoding is `x-user-defined` type === ResultType.META_TAG && encoding === "x-user-defined" ? "windows-1252" : ( // Check if we are in a meta tag or xml declaration, and the encoding is UTF-16 (type === ResultType.META_TAG || type === ResultType.XML_ENCODING) && (encoding === "UTF-16LE" || encoding === "UTF-16BE") ? "UTF-8" : encoding ); this.resultType = type; } } }; Sniffer2.prototype.stateBegin = function(c) { switch (c) { case STRINGS.UTF16BE_BOM[0]: { this.state = State3.BOM16BE; break; } case STRINGS.UTF16LE_BOM[0]: { this.state = State3.BOM16LE; break; } case STRINGS.UTF8_BOM[0]: { this.sectionIndex = 1; this.state = State3.BOM8; break; } case Chars.NIL: { this.state = State3.UTF16BE_XML_PREFIX; this.sectionIndex = 1; break; } case Chars.LT: { this.state = State3.BeginLT; break; } default: { this.state = State3.BeforeTag; } } }; Sniffer2.prototype.stateBeginLT = function(c) { if (c === Chars.NIL) { this.state = State3.UTF16LE_XML_PREFIX; this.sectionIndex = 2; } else if (c === Chars.QUESTION) { this.state = State3.XMLDeclaration; this.sectionIndex = 2; } else { this.state = State3.BeforeTagName; this.stateBeforeTagName(c); } }; Sniffer2.prototype.stateUTF16BE_XML_PREFIX = function(c) { if (this.advanceSection(STRINGS.UTF16BE_XML_PREFIX, c)) { if (this.sectionIndex === STRINGS.UTF16BE_XML_PREFIX.length) { this.setResult("utf-16be", ResultType.XML_PREFIX); } } else { this.state = State3.BeforeTag; this.stateBeforeTag(c); } }; Sniffer2.prototype.stateUTF16LE_XML_PREFIX = function(c) { if (this.advanceSection(STRINGS.UTF16LE_XML_PREFIX, c)) { if (this.sectionIndex === STRINGS.UTF16LE_XML_PREFIX.length) { this.setResult("utf-16le", ResultType.XML_PREFIX); } } else { this.state = State3.BeforeTag; this.stateBeforeTag(c); } }; Sniffer2.prototype.stateBOM16LE = function(c) { if (c === STRINGS.UTF16LE_BOM[1]) { this.setResult("utf-16le", ResultType.BOM); } else { this.state = State3.BeforeTag; this.stateBeforeTag(c); } }; Sniffer2.prototype.stateBOM16BE = function(c) { if (c === STRINGS.UTF16BE_BOM[1]) { this.setResult("utf-16be", ResultType.BOM); } else { this.state = State3.BeforeTag; this.stateBeforeTag(c); } }; Sniffer2.prototype.stateBOM8 = function(c) { if (this.advanceSection(STRINGS.UTF8_BOM, c) && this.sectionIndex === STRINGS.UTF8_BOM.length) { this.setResult("utf-8", ResultType.BOM); } }; Sniffer2.prototype.stateBeforeTag = function(c) { if (c === Chars.LT) { this.state = State3.BeforeTagName; this.inMetaTag = false; } }; Sniffer2.prototype.stateBeforeTagName = function(c) { if (isAsciiAlpha(c)) { if ((c | 32) === STRINGS.META[0]) { this.sectionIndex = 1; this.state = State3.TagNameMeta; } else { this.state = State3.TagNameOther; } } else switch (c) { case Chars.SLASH: { this.state = State3.BeforeCloseTagName; break; } case Chars.EXCLAMATION: { this.state = State3.CommentStart; this.sectionIndex = 2; break; } case Chars.QUESTION: { this.state = State3.WeirdTag; break; } default: { this.state = State3.BeforeTag; this.stateBeforeTag(c); } } }; Sniffer2.prototype.stateBeforeCloseTagName = function(c) { this.state = isAsciiAlpha(c) ? ( // Switch to `TagNameOther`; the HTML spec allows attributes here as well. State3.TagNameOther ) : State3.WeirdTag; }; Sniffer2.prototype.stateCommentStart = function(c) { if (this.advanceSection(STRINGS.COMMENT_START, c)) { if (this.sectionIndex === STRINGS.COMMENT_START.length) { this.state = State3.CommentEnd; this.sectionIndex = 2; } } else { this.state = State3.WeirdTag; this.stateWeirdTag(c); } }; Sniffer2.prototype.stateCommentEnd = function(c) { if (this.advanceSection(STRINGS.COMMENT_END, c)) { if (this.sectionIndex === STRINGS.COMMENT_END.length) { this.state = State3.BeforeTag; } } else if (c === Chars.DASH) { this.sectionIndex = 2; } }; Sniffer2.prototype.stateWeirdTag = function(c) { if (c === Chars.GT) { this.state = State3.BeforeTag; } }; Sniffer2.prototype.advanceSectionIC = function(section, c) { return this.advanceSection(section, c | 32); }; Sniffer2.prototype.advanceSection = function(section, c) { if (section[this.sectionIndex] === c) { this.sectionIndex++; return true; } this.sectionIndex = 0; return false; }; Sniffer2.prototype.stateTagNameMeta = function(c) { if (this.sectionIndex < STRINGS.META.length) { if (this.advanceSectionIC(STRINGS.META, c)) { return; } } else if (SPACE_CHARACTERS.has(c)) { this.inMetaTag = true; this.gotPragma = null; this.needsPragma = null; this.state = State3.BeforeAttribute; return; } this.state = State3.TagNameOther; this.stateTagNameOther(c); }; Sniffer2.prototype.stateTagNameOther = function(c) { if (SPACE_CHARACTERS.has(c)) { this.state = State3.BeforeAttribute; } else if (c === Chars.GT) { this.state = State3.BeforeTag; } }; Sniffer2.prototype.stateBeforeAttribute = function(c) { if (SPACE_CHARACTERS.has(c)) return; if (this.inMetaTag) { var lower = c | 32; if (lower === STRINGS.HTTP_EQUIV[0]) { this.sectionIndex = 1; this.state = State3.MetaAttribHttpEquiv; return; } else if (lower === STRINGS.CHARSET[0]) { this.sectionIndex = 1; this.state = State3.MetaAttribC; return; } } this.state = c === Chars.SLASH || c === Chars.GT ? State3.BeforeTag : State3.AnyAttribName; }; Sniffer2.prototype.handleMetaAttrib = function(c, section, type) { if (this.advanceSectionIC(section, c)) { if (this.sectionIndex === section.length) { this.attribType = type; this.state = State3.MetaAttribAfterName; } } else { this.state = State3.AnyAttribName; this.stateAnyAttribName(c); } }; Sniffer2.prototype.stateMetaAttribHttpEquiv = function(c) { this.handleMetaAttrib(c, STRINGS.HTTP_EQUIV, AttribType.HttpEquiv); }; Sniffer2.prototype.stateMetaAttribC = function(c) { var lower = c | 32; if (lower === STRINGS.CHARSET[1]) { this.sectionIndex = 2; this.state = State3.MetaAttribCharset; } else if (lower === STRINGS.CONTENT[1]) { this.sectionIndex = 2; this.state = State3.MetaAttribContent; } else { this.state = State3.AnyAttribName; this.stateAnyAttribName(c); } }; Sniffer2.prototype.stateMetaAttribCharset = function(c) { this.handleMetaAttrib(c, STRINGS.CHARSET, AttribType.Charset); }; Sniffer2.prototype.stateMetaAttribContent = function(c) { this.handleMetaAttrib(c, STRINGS.CONTENT, AttribType.Content); }; Sniffer2.prototype.stateMetaAttribAfterName = function(c) { if (SPACE_CHARACTERS.has(c) || c === Chars.EQUALS) { this.state = State3.AfterAttributeName; this.stateAfterAttributeName(c); } else { this.state = State3.AnyAttribName; this.stateAnyAttribName(c); } }; Sniffer2.prototype.stateAnyAttribName = function(c) { if (SPACE_CHARACTERS.has(c)) { this.attribType = AttribType.None; this.state = State3.AfterAttributeName; } else if (c === Chars.SLASH || c === Chars.GT) { this.state = State3.BeforeTag; } else if (c === Chars.EQUALS) { this.state = State3.BeforeAttributeValue; } }; Sniffer2.prototype.stateAfterAttributeName = function(c) { if (SPACE_CHARACTERS.has(c)) return; if (c === Chars.EQUALS) { this.state = State3.BeforeAttributeValue; } else { this.state = State3.BeforeAttribute; this.stateBeforeAttribute(c); } }; Sniffer2.prototype.stateBeforeAttributeValue = function(c) { if (SPACE_CHARACTERS.has(c)) return; this.attributeValue.length = 0; this.sectionIndex = 0; if (isQuote(c)) { this.quoteCharacter = c; this.state = this.attribType === AttribType.Content ? State3.MetaContentValueQuotedBeforeEncoding : this.attribType === AttribType.HttpEquiv ? State3.MetaAttribHttpEquivValue : State3.AttributeValueQuoted; } else if (this.attribType === AttribType.Content) { this.state = State3.MetaContentValueUnquotedBeforeEncoding; this.stateMetaContentValueUnquotedBeforeEncoding(c); } else if (this.attribType === AttribType.HttpEquiv) { this.quoteCharacter = 0; this.sectionIndex = 0; this.state = State3.MetaAttribHttpEquivValue; this.stateMetaAttribHttpEquivValue(c); } else { this.state = State3.AttributeValueUnquoted; this.stateAttributeValueUnquoted(c); } }; Sniffer2.prototype.stateMetaAttribHttpEquivValue = function(c) { if (this.sectionIndex === STRINGS.CONTENT_TYPE.length) { if (this.quoteCharacter === 0 ? END_OF_UNQUOTED_ATTRIBUTE_VALUE.has(c) : c === this.quoteCharacter) { if (this.needsPragma !== null) { this.setResult(this.needsPragma, ResultType.META_TAG); } else if (this.gotPragma === null) { this.gotPragma = true; } this.state = State3.BeforeAttribute; return; } } else if (this.advanceSectionIC(STRINGS.CONTENT_TYPE, c)) { return; } this.gotPragma = false; if (this.quoteCharacter === 0) { this.state = State3.AttributeValueUnquoted; this.stateAttributeValueUnquoted(c); } else { this.state = State3.AttributeValueQuoted; this.stateAttributeValueQuoted(c); } }; Sniffer2.prototype.handleMetaContentValue = function() { if (this.attributeValue.length === 0) return; var encoding = String.fromCharCode.apply(String, this.attributeValue); if (this.gotPragma) { this.setResult(encoding, ResultType.META_TAG); } else if (this.needsPragma === null) { this.needsPragma = encoding; } this.attributeValue.length = 0; }; Sniffer2.prototype.handleAttributeValue = function() { if (this.attribType === AttribType.Charset) { this.setResult(String.fromCharCode.apply(String, this.attributeValue), ResultType.META_TAG); } }; Sniffer2.prototype.stateAttributeValueUnquoted = function(c) { if (SPACE_CHARACTERS.has(c)) { this.handleAttributeValue(); this.state = State3.BeforeAttribute; } else if (c === Chars.SLASH || c === Chars.GT) { this.handleAttributeValue(); this.state = State3.BeforeTag; } else if (this.attribType === AttribType.Charset) { this.attributeValue.push(c | 32); } }; Sniffer2.prototype.findMetaContentEncoding = function(c) { if (this.advanceSectionIC(STRINGS.CHARSET, c)) { if (this.sectionIndex === STRINGS.CHARSET.length) { return true; } } else { this.sectionIndex = Number(c === STRINGS.CHARSET[0]); } return false; }; Sniffer2.prototype.stateMetaContentValueUnquotedBeforeEncoding = function(c) { if (END_OF_UNQUOTED_ATTRIBUTE_VALUE.has(c)) { this.stateAttributeValueUnquoted(c); } else if (this.sectionIndex === STRINGS.CHARSET.length) { if (c === Chars.EQUALS) { this.state = State3.MetaContentValueUnquotedBeforeValue; } } else { this.findMetaContentEncoding(c); } }; Sniffer2.prototype.stateMetaContentValueUnquotedBeforeValue = function(c) { if (isQuote(c)) { this.quoteCharacter = c; this.state = State3.MetaContentValueUnquotedValueQuoted; } else if (END_OF_UNQUOTED_ATTRIBUTE_VALUE.has(c)) { this.stateAttributeValueUnquoted(c); } else { this.state = State3.MetaContentValueUnquotedValueUnquoted; this.stateMetaContentValueUnquotedValueUnquoted(c); } }; Sniffer2.prototype.stateMetaContentValueUnquotedValueQuoted = function(c) { if (END_OF_UNQUOTED_ATTRIBUTE_VALUE.has(c)) { this.stateAttributeValueUnquoted(c); } else if (c === this.quoteCharacter) { this.handleMetaContentValue(); this.state = State3.AttributeValueUnquoted; } else { this.attributeValue.push(c | 32); } }; Sniffer2.prototype.stateMetaContentValueUnquotedValueUnquoted = function(c) { if (END_OF_UNQUOTED_ATTRIBUTE_VALUE.has(c) || c === Chars.SEMICOLON) { this.handleMetaContentValue(); this.state = State3.AttributeValueUnquoted; this.stateAttributeValueUnquoted(c); } else { this.attributeValue.push(c | 32); } }; Sniffer2.prototype.stateMetaContentValueQuotedValueUnquoted = function(c) { if (isQuote(c) || SPACE_CHARACTERS.has(c) || c === Chars.SEMICOLON) { this.handleMetaContentValue(); this.state = State3.AttributeValueQuoted; this.stateAttributeValueQuoted(c); } else { this.attributeValue.push(c | 32); } }; Sniffer2.prototype.stateMetaContentValueQuotedValueQuoted = function(c) { if (isQuote(c)) { if (c !== this.quoteCharacter) { this.handleMetaContentValue(); } this.state = State3.AttributeValueQuoted; this.stateAttributeValueQuoted(c); } else { this.attributeValue.push(c | 32); } }; Sniffer2.prototype.stateMetaContentValueQuotedBeforeEncoding = function(c) { if (c === this.quoteCharacter) { this.stateAttributeValueQuoted(c); } else if (this.findMetaContentEncoding(c)) { this.state = State3.MetaContentValueQuotedAfterEncoding; } }; Sniffer2.prototype.stateMetaContentValueQuotedAfterEncoding = function(c) { if (c === Chars.EQUALS) { this.state = State3.MetaContentValueQuotedBeforeValue; } else if (!SPACE_CHARACTERS.has(c)) { this.state = State3.MetaContentValueQuotedBeforeEncoding; this.stateMetaContentValueQuotedBeforeEncoding(c); } }; Sniffer2.prototype.stateMetaContentValueQuotedBeforeValue = function(c) { if (c === this.quoteCharacter) { this.stateAttributeValueQuoted(c); } else if (isQuote(c)) { this.state = State3.MetaContentValueQuotedValueQuoted; } else if (!SPACE_CHARACTERS.has(c)) { this.state = State3.MetaContentValueQuotedValueUnquoted; this.stateMetaContentValueQuotedValueUnquoted(c); } }; Sniffer2.prototype.stateAttributeValueQuoted = function(c) { if (c === this.quoteCharacter) { this.handleAttributeValue(); this.state = State3.BeforeAttribute; } else if (this.attribType === AttribType.Charset) { this.attributeValue.push(c | 32); } }; Sniffer2.prototype.stateXMLDeclaration = function(c) { if (this.advanceSection(STRINGS.XML_DECLARATION, c)) { if (this.sectionIndex === STRINGS.XML_DECLARATION.length) { this.sectionIndex = 0; this.state = State3.XMLDeclarationBeforeEncoding; } } else { this.state = State3.WeirdTag; } }; Sniffer2.prototype.stateXMLDeclarationBeforeEncoding = function(c) { if (this.advanceSection(STRINGS.ENCODING, c)) { if (this.sectionIndex === STRINGS.ENCODING.length) { this.state = State3.XMLDeclarationAfterEncoding; } } else if (c === Chars.GT) { this.state = State3.BeforeTag; } else { this.sectionIndex = Number(c === STRINGS.ENCODING[0]); } }; Sniffer2.prototype.stateXMLDeclarationAfterEncoding = function(c) { if (c === Chars.EQUALS) { this.state = State3.XMLDeclarationBeforeValue; } else if (c > Chars.SPACE) { this.state = State3.WeirdTag; this.stateWeirdTag(c); } }; Sniffer2.prototype.stateXMLDeclarationBeforeValue = function(c) { if (isQuote(c)) { this.attributeValue.length = 0; this.state = State3.XMLDeclarationValue; } else if (c > Chars.SPACE) { this.state = State3.WeirdTag; this.stateWeirdTag(c); } }; Sniffer2.prototype.stateXMLDeclarationValue = function(c) { if (isQuote(c)) { this.setResult(String.fromCharCode.apply(String, this.attributeValue), ResultType.XML_ENCODING); this.state = State3.WeirdTag; } else if (c === Chars.GT) { this.state = State3.BeforeTag; } else if (c <= Chars.SPACE) { this.state = State3.WeirdTag; } else { this.attributeValue.push(c | 32); } }; Sniffer2.prototype.write = function(buffer) { var index2 = 0; for (; index2 < buffer.length && this.offset + index2 < this.maxBytes; index2++) { var c = buffer[index2]; switch (this.state) { case State3.Begin: { this.stateBegin(c); break; } case State3.BOM16BE: { this.stateBOM16BE(c); break; } case State3.BOM16LE: { this.stateBOM16LE(c); break; } case State3.BOM8: { this.stateBOM8(c); break; } case State3.UTF16LE_XML_PREFIX: { this.stateUTF16LE_XML_PREFIX(c); break; } case State3.BeginLT: { this.stateBeginLT(c); break; } case State3.UTF16BE_XML_PREFIX: { this.stateUTF16BE_XML_PREFIX(c); break; } case State3.BeforeTag: { var idx = buffer.indexOf(Chars.LT, index2); if (idx < 0) { index2 = buffer.length; } else { index2 = idx; this.stateBeforeTag(Chars.LT); } break; } case State3.BeforeTagName: { this.stateBeforeTagName(c); break; } case State3.BeforeCloseTagName: { this.stateBeforeCloseTagName(c); break; } case State3.CommentStart: { this.stateCommentStart(c); break; } case State3.CommentEnd: { this.stateCommentEnd(c); break; } case State3.TagNameMeta: { this.stateTagNameMeta(c); break; } case State3.TagNameOther: { this.stateTagNameOther(c); break; } case State3.XMLDeclaration: { this.stateXMLDeclaration(c); break; } case State3.XMLDeclarationBeforeEncoding: { this.stateXMLDeclarationBeforeEncoding(c); break; } case State3.XMLDeclarationAfterEncoding: { this.stateXMLDeclarationAfterEncoding(c); break; } case State3.XMLDeclarationBeforeValue: { this.stateXMLDeclarationBeforeValue(c); break; } case State3.XMLDeclarationValue: { this.stateXMLDeclarationValue(c); break; } case State3.WeirdTag: { this.stateWeirdTag(c); break; } case State3.BeforeAttribute: { this.stateBeforeAttribute(c); break; } case State3.MetaAttribHttpEquiv: { this.stateMetaAttribHttpEquiv(c); break; } case State3.MetaAttribHttpEquivValue: { this.stateMetaAttribHttpEquivValue(c); break; } case State3.MetaAttribC: { this.stateMetaAttribC(c); break; } case State3.MetaAttribContent: { this.stateMetaAttribContent(c); break; } case State3.MetaAttribCharset: { this.stateMetaAttribCharset(c); break; } case State3.MetaAttribAfterName: { this.stateMetaAttribAfterName(c); break; } case State3.MetaContentValueQuotedBeforeEncoding: { this.stateMetaContentValueQuotedBeforeEncoding(c); break; } case State3.MetaContentValueQuotedAfterEncoding: { this.stateMetaContentValueQuotedAfterEncoding(c); break; } case State3.MetaContentValueQuotedBeforeValue: { this.stateMetaContentValueQuotedBeforeValue(c); break; } case State3.MetaContentValueQuotedValueQuoted: { this.stateMetaContentValueQuotedValueQuoted(c); break; } case State3.MetaContentValueQuotedValueUnquoted: { this.stateMetaContentValueQuotedValueUnquoted(c); break; } case State3.MetaContentValueUnquotedBeforeEncoding: { this.stateMetaContentValueUnquotedBeforeEncoding(c); break; } case State3.MetaContentValueUnquotedBeforeValue: { this.stateMetaContentValueUnquotedBeforeValue(c); break; } case State3.MetaContentValueUnquotedValueQuoted: { this.stateMetaContentValueUnquotedValueQuoted(c); break; } case State3.MetaContentValueUnquotedValueUnquoted: { this.stateMetaContentValueUnquotedValueUnquoted(c); break; } case State3.AnyAttribName: { this.stateAnyAttribName(c); break; } case State3.AfterAttributeName: { this.stateAfterAttributeName(c); break; } case State3.BeforeAttributeValue: { this.stateBeforeAttributeValue(c); break; } case State3.AttributeValueQuoted: { this.stateAttributeValueQuoted(c); break; } default: { this.stateAttributeValueUnquoted(c); } } } this.offset += index2; }; return Sniffer2; })(); } }); // node_modules/encoding-sniffer/dist/esm/index.js var import_node_stream, import_iconv_lite, __extends, DecodeStream; var init_esm10 = __esm({ "node_modules/encoding-sniffer/dist/esm/index.js"() { import_node_stream = require("node:stream"); import_iconv_lite = __toESM(require_lib(), 1); init_sniffer(); init_sniffer(); __extends = /* @__PURE__ */ (function() { var extendStatics = function(d, b) { extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) { d2.__proto__ = b2; } || function(d2, b2) { for (var p in b2) if (Object.prototype.hasOwnProperty.call(b2, p)) d2[p] = b2[p]; }; return extendStatics(d, b); }; return function(d, b) { if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); extendStatics(d, b); function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; })(); DecodeStream = /** @class */ (function(_super) { __extends(DecodeStream2, _super); function DecodeStream2(options) { var _a2; var _this = _super.call(this, { decodeStrings: false, encoding: "utf-8" }) || this; _this.buffers = []; _this.iconv = null; _this.readBytes = 0; _this.sniffer = new Sniffer(options); _this.maxBytes = (_a2 = options === null || options === void 0 ? void 0 : options.maxBytes) !== null && _a2 !== void 0 ? _a2 : 1024; return _this; } DecodeStream2.prototype._transform = function(chunk, _encoding, callback) { if (this.readBytes < this.maxBytes) { this.sniffer.write(chunk); this.readBytes += chunk.length; if (this.readBytes < this.maxBytes) { this.buffers.push(chunk); callback(); return; } } this.getIconvStream().write(chunk, callback); }; DecodeStream2.prototype.getIconvStream = function() { var _this = this; if (this.iconv) { return this.iconv; } var stream5 = import_iconv_lite.default.decodeStream(this.sniffer.encoding); stream5.on("data", function(chunk) { return _this.push(chunk, "utf-8"); }); stream5.on("end", function() { return _this.push(null); }); this.iconv = stream5; for (var _i = 0, _a2 = this.buffers; _i < _a2.length; _i++) { var buffer = _a2[_i]; stream5.write(buffer); } this.buffers.length = 0; return stream5; }; DecodeStream2.prototype._flush = function(callback) { this.getIconvStream().end(callback); }; return DecodeStream2; })(import_node_stream.Transform); } }); // node_modules/undici/lib/core/symbols.js var require_symbols = __commonJS({ "node_modules/undici/lib/core/symbols.js"(exports2, module2) { module2.exports = { kClose: Symbol("close"), kDestroy: Symbol("destroy"), kDispatch: Symbol("dispatch"), kUrl: Symbol("url"), kWriting: Symbol("writing"), kResuming: Symbol("resuming"), kQueue: Symbol("queue"), kConnect: Symbol("connect"), kConnecting: Symbol("connecting"), kKeepAliveDefaultTimeout: Symbol("default keep alive timeout"), kKeepAliveMaxTimeout: Symbol("max keep alive timeout"), kKeepAliveTimeoutThreshold: Symbol("keep alive timeout threshold"), kKeepAliveTimeoutValue: Symbol("keep alive timeout"), kKeepAlive: Symbol("keep alive"), kHeadersTimeout: Symbol("headers timeout"), kBodyTimeout: Symbol("body timeout"), kServerName: Symbol("server name"), kLocalAddress: Symbol("local address"), kHost: Symbol("host"), kNoRef: Symbol("no ref"), kBodyUsed: Symbol("used"), kBody: Symbol("abstracted request body"), kRunning: Symbol("running"), kBlocking: Symbol("blocking"), kPending: Symbol("pending"), kSize: Symbol("size"), kBusy: Symbol("busy"), kQueued: Symbol("queued"), kFree: Symbol("free"), kConnected: Symbol("connected"), kClosed: Symbol("closed"), kNeedDrain: Symbol("need drain"), kReset: Symbol("reset"), kDestroyed: Symbol.for("nodejs.stream.destroyed"), kResume: Symbol("resume"), kOnError: Symbol("on error"), kMaxHeadersSize: Symbol("max headers size"), kRunningIdx: Symbol("running index"), kPendingIdx: Symbol("pending index"), kError: Symbol("error"), kClients: Symbol("clients"), kClient: Symbol("client"), kParser: Symbol("parser"), kOnDestroyed: Symbol("destroy callbacks"), kPipelining: Symbol("pipelining"), kSocket: Symbol("socket"), kHostHeader: Symbol("host header"), kConnector: Symbol("connector"), kStrictContentLength: Symbol("strict content length"), kMaxRedirections: Symbol("maxRedirections"), kMaxRequests: Symbol("maxRequestsPerClient"), kProxy: Symbol("proxy agent options"), kCounter: Symbol("socket request counter"), kInterceptors: Symbol("dispatch interceptors"), kMaxResponseSize: Symbol("max response size"), kHTTP2Session: Symbol("http2Session"), kHTTP2SessionState: Symbol("http2Session state"), kRetryHandlerDefaultRetry: Symbol("retry agent default retry"), kConstruct: Symbol("constructable"), kListeners: Symbol("listeners"), kHTTPContext: Symbol("http context"), kMaxConcurrentStreams: Symbol("max concurrent streams"), kNoProxyAgent: Symbol("no proxy agent"), kHttpProxyAgent: Symbol("http proxy agent"), kHttpsProxyAgent: Symbol("https proxy agent") }; } }); // node_modules/undici/lib/core/errors.js var require_errors = __commonJS({ "node_modules/undici/lib/core/errors.js"(exports2, module2) { "use strict"; var UndiciError = class extends Error { constructor(message) { super(message); this.name = "UndiciError"; this.code = "UND_ERR"; } }; var ConnectTimeoutError = class extends UndiciError { constructor(message) { super(message); this.name = "ConnectTimeoutError"; this.message = message || "Connect Timeout Error"; this.code = "UND_ERR_CONNECT_TIMEOUT"; } }; var HeadersTimeoutError = class extends UndiciError { constructor(message) { super(message); this.name = "HeadersTimeoutError"; this.message = message || "Headers Timeout Error"; this.code = "UND_ERR_HEADERS_TIMEOUT"; } }; var HeadersOverflowError = class extends UndiciError { constructor(message) { super(message); this.name = "HeadersOverflowError"; this.message = message || "Headers Overflow Error"; this.code = "UND_ERR_HEADERS_OVERFLOW"; } }; var BodyTimeoutError = class extends UndiciError { constructor(message) { super(message); this.name = "BodyTimeoutError"; this.message = message || "Body Timeout Error"; this.code = "UND_ERR_BODY_TIMEOUT"; } }; var ResponseStatusCodeError = class extends UndiciError { constructor(message, statusCode, headers, body) { super(message); this.name = "ResponseStatusCodeError"; this.message = message || "Response Status Code Error"; this.code = "UND_ERR_RESPONSE_STATUS_CODE"; this.body = body; this.status = statusCode; this.statusCode = statusCode; this.headers = headers; } }; var InvalidArgumentError = class extends UndiciError { constructor(message) { super(message); this.name = "InvalidArgumentError"; this.message = message || "Invalid Argument Error"; this.code = "UND_ERR_INVALID_ARG"; } }; var InvalidReturnValueError = class extends UndiciError { constructor(message) { super(message); this.name = "InvalidReturnValueError"; this.message = message || "Invalid Return Value Error"; this.code = "UND_ERR_INVALID_RETURN_VALUE"; } }; var AbortError = class extends UndiciError { constructor(message) { super(message); this.name = "AbortError"; this.message = message || "The operation was aborted"; } }; var RequestAbortedError = class extends AbortError { constructor(message) { super(message); this.name = "AbortError"; this.message = message || "Request aborted"; this.code = "UND_ERR_ABORTED"; } }; var InformationalError = class extends UndiciError { constructor(message) { super(message); this.name = "InformationalError"; this.message = message || "Request information"; this.code = "UND_ERR_INFO"; } }; var RequestContentLengthMismatchError = class extends UndiciError { constructor(message) { super(message); this.name = "RequestContentLengthMismatchError"; this.message = message || "Request body length does not match content-length header"; this.code = "UND_ERR_REQ_CONTENT_LENGTH_MISMATCH"; } }; var ResponseContentLengthMismatchError = class extends UndiciError { constructor(message) { super(message); this.name = "ResponseContentLengthMismatchError"; this.message = message || "Response body length does not match content-length header"; this.code = "UND_ERR_RES_CONTENT_LENGTH_MISMATCH"; } }; var ClientDestroyedError = class extends UndiciError { constructor(message) { super(message); this.name = "ClientDestroyedError"; this.message = message || "The client is destroyed"; this.code = "UND_ERR_DESTROYED"; } }; var ClientClosedError = class extends UndiciError { constructor(message) { super(message); this.name = "ClientClosedError"; this.message = message || "The client is closed"; this.code = "UND_ERR_CLOSED"; } }; var SocketError = class extends UndiciError { constructor(message, socket) { super(message); this.name = "SocketError"; this.message = message || "Socket error"; this.code = "UND_ERR_SOCKET"; this.socket = socket; } }; var NotSupportedError = class extends UndiciError { constructor(message) { super(message); this.name = "NotSupportedError"; this.message = message || "Not supported error"; this.code = "UND_ERR_NOT_SUPPORTED"; } }; var BalancedPoolMissingUpstreamError = class extends UndiciError { constructor(message) { super(message); this.name = "MissingUpstreamError"; this.message = message || "No upstream has been added to the BalancedPool"; this.code = "UND_ERR_BPL_MISSING_UPSTREAM"; } }; var HTTPParserError = class extends Error { constructor(message, code, data2) { super(message); this.name = "HTTPParserError"; this.code = code ? `HPE_${code}` : void 0; this.data = data2 ? data2.toString() : void 0; } }; var ResponseExceededMaxSizeError = class extends UndiciError { constructor(message) { super(message); this.name = "ResponseExceededMaxSizeError"; this.message = message || "Response content exceeded max size"; this.code = "UND_ERR_RES_EXCEEDED_MAX_SIZE"; } }; var RequestRetryError = class extends UndiciError { constructor(message, code, { headers, data: data2 }) { super(message); this.name = "RequestRetryError"; this.message = message || "Request retry error"; this.code = "UND_ERR_REQ_RETRY"; this.statusCode = code; this.data = data2; this.headers = headers; } }; var ResponseError = class extends UndiciError { constructor(message, code, { headers, data: data2 }) { super(message); this.name = "ResponseError"; this.message = message || "Response error"; this.code = "UND_ERR_RESPONSE"; this.statusCode = code; this.data = data2; this.headers = headers; } }; var SecureProxyConnectionError = class extends UndiciError { constructor(cause, message, options) { super(message, { cause, ...options ?? {} }); this.name = "SecureProxyConnectionError"; this.message = message || "Secure Proxy Connection failed"; this.code = "UND_ERR_PRX_TLS"; this.cause = cause; } }; module2.exports = { AbortError, HTTPParserError, UndiciError, HeadersTimeoutError, HeadersOverflowError, BodyTimeoutError, RequestContentLengthMismatchError, ConnectTimeoutError, ResponseStatusCodeError, InvalidArgumentError, InvalidReturnValueError, RequestAbortedError, ClientDestroyedError, ClientClosedError, InformationalError, SocketError, NotSupportedError, ResponseContentLengthMismatchError, BalancedPoolMissingUpstreamError, ResponseExceededMaxSizeError, RequestRetryError, ResponseError, SecureProxyConnectionError }; } }); // node_modules/undici/lib/core/constants.js var require_constants = __commonJS({ "node_modules/undici/lib/core/constants.js"(exports2, module2) { "use strict"; var headerNameLowerCasedRecord = {}; var wellknownHeaderNames = [ "Accept", "Accept-Encoding", "Accept-Language", "Accept-Ranges", "Access-Control-Allow-Credentials", "Access-Control-Allow-Headers", "Access-Control-Allow-Methods", "Access-Control-Allow-Origin", "Access-Control-Expose-Headers", "Access-Control-Max-Age", "Access-Control-Request-Headers", "Access-Control-Request-Method", "Age", "Allow", "Alt-Svc", "Alt-Used", "Authorization", "Cache-Control", "Clear-Site-Data", "Connection", "Content-Disposition", "Content-Encoding", "Content-Language", "Content-Length", "Content-Location", "Content-Range", "Content-Security-Policy", "Content-Security-Policy-Report-Only", "Content-Type", "Cookie", "Cross-Origin-Embedder-Policy", "Cross-Origin-Opener-Policy", "Cross-Origin-Resource-Policy", "Date", "Device-Memory", "Downlink", "ECT", "ETag", "Expect", "Expect-CT", "Expires", "Forwarded", "From", "Host", "If-Match", "If-Modified-Since", "If-None-Match", "If-Range", "If-Unmodified-Since", "Keep-Alive", "Last-Modified", "Link", "Location", "Max-Forwards", "Origin", "Permissions-Policy", "Pragma", "Proxy-Authenticate", "Proxy-Authorization", "RTT", "Range", "Referer", "Referrer-Policy", "Refresh", "Retry-After", "Sec-WebSocket-Accept", "Sec-WebSocket-Extensions", "Sec-WebSocket-Key", "Sec-WebSocket-Protocol", "Sec-WebSocket-Version", "Server", "Server-Timing", "Service-Worker-Allowed", "Service-Worker-Navigation-Preload", "Set-Cookie", "SourceMap", "Strict-Transport-Security", "Supports-Loading-Mode", "TE", "Timing-Allow-Origin", "Trailer", "Transfer-Encoding", "Upgrade", "Upgrade-Insecure-Requests", "User-Agent", "Vary", "Via", "WWW-Authenticate", "X-Content-Type-Options", "X-DNS-Prefetch-Control", "X-Frame-Options", "X-Permitted-Cross-Domain-Policies", "X-Powered-By", "X-Requested-With", "X-XSS-Protection" ]; for (let i = 0; i < wellknownHeaderNames.length; ++i) { const key = wellknownHeaderNames[i]; const lowerCasedKey = key.toLowerCase(); headerNameLowerCasedRecord[key] = headerNameLowerCasedRecord[lowerCasedKey] = lowerCasedKey; } Object.setPrototypeOf(headerNameLowerCasedRecord, null); module2.exports = { wellknownHeaderNames, headerNameLowerCasedRecord }; } }); // node_modules/undici/lib/core/tree.js var require_tree = __commonJS({ "node_modules/undici/lib/core/tree.js"(exports2, module2) { "use strict"; var { wellknownHeaderNames, headerNameLowerCasedRecord } = require_constants(); var TstNode = class _TstNode { /** @type {any} */ value = null; /** @type {null | TstNode} */ left = null; /** @type {null | TstNode} */ middle = null; /** @type {null | TstNode} */ right = null; /** @type {number} */ code; /** * @param {string} key * @param {any} value * @param {number} index */ constructor(key, value, index2) { if (index2 === void 0 || index2 >= key.length) { throw new TypeError("Unreachable"); } const code = this.code = key.charCodeAt(index2); if (code > 127) { throw new TypeError("key must be ascii string"); } if (key.length !== ++index2) { this.middle = new _TstNode(key, value, index2); } else { this.value = value; } } /** * @param {string} key * @param {any} value */ add(key, value) { const length = key.length; if (length === 0) { throw new TypeError("Unreachable"); } let index2 = 0; let node = this; while (true) { const code = key.charCodeAt(index2); if (code > 127) { throw new TypeError("key must be ascii string"); } if (node.code === code) { if (length === ++index2) { node.value = value; break; } else if (node.middle !== null) { node = node.middle; } else { node.middle = new _TstNode(key, value, index2); break; } } else if (node.code < code) { if (node.left !== null) { node = node.left; } else { node.left = new _TstNode(key, value, index2); break; } } else if (node.right !== null) { node = node.right; } else { node.right = new _TstNode(key, value, index2); break; } } } /** * @param {Uint8Array} key * @return {TstNode | null} */ search(key) { const keylength = key.length; let index2 = 0; let node = this; while (node !== null && index2 < keylength) { let code = key[index2]; if (code <= 90 && code >= 65) { code |= 32; } while (node !== null) { if (code === node.code) { if (keylength === ++index2) { return node; } node = node.middle; break; } node = node.code < code ? node.left : node.right; } } return null; } }; var TernarySearchTree = class { /** @type {TstNode | null} */ node = null; /** * @param {string} key * @param {any} value * */ insert(key, value) { if (this.node === null) { this.node = new TstNode(key, value, 0); } else { this.node.add(key, value); } } /** * @param {Uint8Array} key * @return {any} */ lookup(key) { return this.node?.search(key)?.value ?? null; } }; var tree = new TernarySearchTree(); for (let i = 0; i < wellknownHeaderNames.length; ++i) { const key = headerNameLowerCasedRecord[wellknownHeaderNames[i]]; tree.insert(key, key); } module2.exports = { TernarySearchTree, tree }; } }); // node_modules/undici/lib/core/util.js var require_util2 = __commonJS({ "node_modules/undici/lib/core/util.js"(exports2, module2) { "use strict"; var assert = require("node:assert"); var { kDestroyed, kBodyUsed, kListeners, kBody } = require_symbols(); var { IncomingMessage } = require("node:http"); var stream5 = require("node:stream"); var net = require("node:net"); var { Blob: Blob2 } = require("node:buffer"); var nodeUtil = require("node:util"); var { stringify: stringify2 } = require("node:querystring"); var { EventEmitter: EE } = require("node:events"); var { InvalidArgumentError } = require_errors(); var { headerNameLowerCasedRecord } = require_constants(); var { tree } = require_tree(); var [nodeMajor, nodeMinor] = process.versions.node.split(".").map((v) => Number(v)); var BodyAsyncIterable = class { constructor(body) { this[kBody] = body; this[kBodyUsed] = false; } async *[Symbol.asyncIterator]() { assert(!this[kBodyUsed], "disturbed"); this[kBodyUsed] = true; yield* this[kBody]; } }; function wrapRequestBody(body) { if (isStream2(body)) { if (bodyLength(body) === 0) { body.on("data", function() { assert(false); }); } if (typeof body.readableDidRead !== "boolean") { body[kBodyUsed] = false; EE.prototype.on.call(body, "data", function() { this[kBodyUsed] = true; }); } return body; } else if (body && typeof body.pipeTo === "function") { return new BodyAsyncIterable(body); } else if (body && typeof body !== "string" && !ArrayBuffer.isView(body) && isIterable(body)) { return new BodyAsyncIterable(body); } else { return body; } } function nop() { } function isStream2(obj) { return obj && typeof obj === "object" && typeof obj.pipe === "function" && typeof obj.on === "function"; } function isBlobLike(object) { if (object === null) { return false; } else if (object instanceof Blob2) { return true; } else if (typeof object !== "object") { return false; } else { const sTag = object[Symbol.toStringTag]; return (sTag === "Blob" || sTag === "File") && ("stream" in object && typeof object.stream === "function" || "arrayBuffer" in object && typeof object.arrayBuffer === "function"); } } function buildURL2(url2, queryParams) { if (url2.includes("?") || url2.includes("#")) { throw new Error('Query params cannot be passed when url already contains "?" or "#".'); } const stringified = stringify2(queryParams); if (stringified) { url2 += "?" + stringified; } return url2; } function isValidPort(port) { const value = parseInt(port, 10); return value === Number(port) && value >= 0 && value <= 65535; } function isHttpOrHttpsPrefixed(value) { return value != null && value[0] === "h" && value[1] === "t" && value[2] === "t" && value[3] === "p" && (value[4] === ":" || value[4] === "s" && value[5] === ":"); } function parseURL(url2) { if (typeof url2 === "string") { url2 = new URL(url2); if (!isHttpOrHttpsPrefixed(url2.origin || url2.protocol)) { throw new InvalidArgumentError("Invalid URL protocol: the URL must start with `http:` or `https:`."); } return url2; } if (!url2 || typeof url2 !== "object") { throw new InvalidArgumentError("Invalid URL: The URL argument must be a non-null object."); } if (!(url2 instanceof URL)) { if (url2.port != null && url2.port !== "" && isValidPort(url2.port) === false) { throw new InvalidArgumentError("Invalid URL: port must be a valid integer or a string representation of an integer."); } if (url2.path != null && typeof url2.path !== "string") { throw new InvalidArgumentError("Invalid URL path: the path must be a string or null/undefined."); } if (url2.pathname != null && typeof url2.pathname !== "string") { throw new InvalidArgumentError("Invalid URL pathname: the pathname must be a string or null/undefined."); } if (url2.hostname != null && typeof url2.hostname !== "string") { throw new InvalidArgumentError("Invalid URL hostname: the hostname must be a string or null/undefined."); } if (url2.origin != null && typeof url2.origin !== "string") { throw new InvalidArgumentError("Invalid URL origin: the origin must be a string or null/undefined."); } if (!isHttpOrHttpsPrefixed(url2.origin || url2.protocol)) { throw new InvalidArgumentError("Invalid URL protocol: the URL must start with `http:` or `https:`."); } const port = url2.port != null ? url2.port : url2.protocol === "https:" ? 443 : 80; let origin2 = url2.origin != null ? url2.origin : `${url2.protocol || ""}//${url2.hostname || ""}:${port}`; let path = url2.path != null ? url2.path : `${url2.pathname || ""}${url2.search || ""}`; if (origin2[origin2.length - 1] === "/") { origin2 = origin2.slice(0, origin2.length - 1); } if (path && path[0] !== "/") { path = `/${path}`; } return new URL(`${origin2}${path}`); } if (!isHttpOrHttpsPrefixed(url2.origin || url2.protocol)) { throw new InvalidArgumentError("Invalid URL protocol: the URL must start with `http:` or `https:`."); } return url2; } function parseOrigin(url2) { url2 = parseURL(url2); if (url2.pathname !== "/" || url2.search || url2.hash) { throw new InvalidArgumentError("invalid url"); } return url2; } function getHostname(host) { if (host[0] === "[") { const idx2 = host.indexOf("]"); assert(idx2 !== -1); return host.substring(1, idx2); } const idx = host.indexOf(":"); if (idx === -1) return host; return host.substring(0, idx); } function getServerName(host) { if (!host) { return null; } assert(typeof host === "string"); const servername = getHostname(host); if (net.isIP(servername)) { return ""; } return servername; } function deepClone(obj) { return JSON.parse(JSON.stringify(obj)); } function isAsyncIterable(obj) { return !!(obj != null && typeof obj[Symbol.asyncIterator] === "function"); } function isIterable(obj) { return !!(obj != null && (typeof obj[Symbol.iterator] === "function" || typeof obj[Symbol.asyncIterator] === "function")); } function bodyLength(body) { if (body == null) { return 0; } else if (isStream2(body)) { const state = body._readableState; return state && state.objectMode === false && state.ended === true && Number.isFinite(state.length) ? state.length : null; } else if (isBlobLike(body)) { return body.size != null ? body.size : null; } else if (isBuffer2(body)) { return body.byteLength; } return null; } function isDestroyed(body) { return body && !!(body.destroyed || body[kDestroyed] || stream5.isDestroyed?.(body)); } function destroy(stream6, err2) { if (stream6 == null || !isStream2(stream6) || isDestroyed(stream6)) { return; } if (typeof stream6.destroy === "function") { if (Object.getPrototypeOf(stream6).constructor === IncomingMessage) { stream6.socket = null; } stream6.destroy(err2); } else if (err2) { queueMicrotask(() => { stream6.emit("error", err2); }); } if (stream6.destroyed !== true) { stream6[kDestroyed] = true; } } var KEEPALIVE_TIMEOUT_EXPR = /timeout=(\d+)/; function parseKeepAliveTimeout(val2) { const m = val2.toString().match(KEEPALIVE_TIMEOUT_EXPR); return m ? parseInt(m[1], 10) * 1e3 : null; } function headerNameToString(value) { return typeof value === "string" ? headerNameLowerCasedRecord[value] ?? value.toLowerCase() : tree.lookup(value) ?? value.toString("latin1").toLowerCase(); } function bufferToLowerCasedHeaderName(value) { return tree.lookup(value) ?? value.toString("latin1").toLowerCase(); } function parseHeaders(headers, obj) { if (obj === void 0) obj = {}; for (let i = 0; i < headers.length; i += 2) { const key = headerNameToString(headers[i]); let val2 = obj[key]; if (val2) { if (typeof val2 === "string") { val2 = [val2]; obj[key] = val2; } val2.push(headers[i + 1].toString("utf8")); } else { const headersValue = headers[i + 1]; if (typeof headersValue === "string") { obj[key] = headersValue; } else { obj[key] = Array.isArray(headersValue) ? headersValue.map((x) => x.toString("utf8")) : headersValue.toString("utf8"); } } } if ("content-length" in obj && "content-disposition" in obj) { obj["content-disposition"] = Buffer.from(obj["content-disposition"]).toString("latin1"); } return obj; } function parseRawHeaders(headers) { const len = headers.length; const ret = new Array(len); let hasContentLength = false; let contentDispositionIdx = -1; let key; let val2; let kLen = 0; for (let n = 0; n < headers.length; n += 2) { key = headers[n]; val2 = headers[n + 1]; typeof key !== "string" && (key = key.toString()); typeof val2 !== "string" && (val2 = val2.toString("utf8")); kLen = key.length; if (kLen === 14 && key[7] === "-" && (key === "content-length" || key.toLowerCase() === "content-length")) { hasContentLength = true; } else if (kLen === 19 && key[7] === "-" && (key === "content-disposition" || key.toLowerCase() === "content-disposition")) { contentDispositionIdx = n + 1; } ret[n] = key; ret[n + 1] = val2; } if (hasContentLength && contentDispositionIdx !== -1) { ret[contentDispositionIdx] = Buffer.from(ret[contentDispositionIdx]).toString("latin1"); } return ret; } function isBuffer2(buffer) { return buffer instanceof Uint8Array || Buffer.isBuffer(buffer); } function validateHandler(handler, method, upgrade) { if (!handler || typeof handler !== "object") { throw new InvalidArgumentError("handler must be an object"); } if (typeof handler.onConnect !== "function") { throw new InvalidArgumentError("invalid onConnect method"); } if (typeof handler.onError !== "function") { throw new InvalidArgumentError("invalid onError method"); } if (typeof handler.onBodySent !== "function" && handler.onBodySent !== void 0) { throw new InvalidArgumentError("invalid onBodySent method"); } if (upgrade || method === "CONNECT") { if (typeof handler.onUpgrade !== "function") { throw new InvalidArgumentError("invalid onUpgrade method"); } } else { if (typeof handler.onHeaders !== "function") { throw new InvalidArgumentError("invalid onHeaders method"); } if (typeof handler.onData !== "function") { throw new InvalidArgumentError("invalid onData method"); } if (typeof handler.onComplete !== "function") { throw new InvalidArgumentError("invalid onComplete method"); } } } function isDisturbed(body) { return !!(body && (stream5.isDisturbed(body) || body[kBodyUsed])); } function isErrored(body) { return !!(body && stream5.isErrored(body)); } function isReadable(body) { return !!(body && stream5.isReadable(body)); } function getSocketInfo(socket) { return { localAddress: socket.localAddress, localPort: socket.localPort, remoteAddress: socket.remoteAddress, remotePort: socket.remotePort, remoteFamily: socket.remoteFamily, timeout: socket.timeout, bytesWritten: socket.bytesWritten, bytesRead: socket.bytesRead }; } function ReadableStreamFrom(iterable) { let iterator; return new ReadableStream( { async start() { iterator = iterable[Symbol.asyncIterator](); }, async pull(controller) { const { done, value } = await iterator.next(); if (done) { queueMicrotask(() => { controller.close(); controller.byobRequest?.respond(0); }); } else { const buf = Buffer.isBuffer(value) ? value : Buffer.from(value); if (buf.byteLength) { controller.enqueue(new Uint8Array(buf)); } } return controller.desiredSize > 0; }, async cancel(reason) { await iterator.return(); }, type: "bytes" } ); } function isFormDataLike(object) { return object && typeof object === "object" && typeof object.append === "function" && typeof object.delete === "function" && typeof object.get === "function" && typeof object.getAll === "function" && typeof object.has === "function" && typeof object.set === "function" && object[Symbol.toStringTag] === "FormData"; } function addAbortListener(signal, listener) { if ("addEventListener" in signal) { signal.addEventListener("abort", listener, { once: true }); return () => signal.removeEventListener("abort", listener); } signal.addListener("abort", listener); return () => signal.removeListener("abort", listener); } var hasToWellFormed = typeof String.prototype.toWellFormed === "function"; var hasIsWellFormed = typeof String.prototype.isWellFormed === "function"; function toUSVString(val2) { return hasToWellFormed ? `${val2}`.toWellFormed() : nodeUtil.toUSVString(val2); } function isUSVString(val2) { return hasIsWellFormed ? `${val2}`.isWellFormed() : toUSVString(val2) === `${val2}`; } function isTokenCharCode(c) { switch (c) { case 34: case 40: case 41: case 44: case 47: case 58: case 59: case 60: case 61: case 62: case 63: case 64: case 91: case 92: case 93: case 123: case 125: return false; default: return c >= 33 && c <= 126; } } function isValidHTTPToken(characters) { if (characters.length === 0) { return false; } for (let i = 0; i < characters.length; ++i) { if (!isTokenCharCode(characters.charCodeAt(i))) { return false; } } return true; } var headerCharRegex = /[^\t\x20-\x7e\x80-\xff]/; function isValidHeaderValue(characters) { return !headerCharRegex.test(characters); } function parseRangeHeader(range) { if (range == null || range === "") return { start: 0, end: null, size: null }; const m = range ? range.match(/^bytes (\d+)-(\d+)\/(\d+)?$/) : null; return m ? { start: parseInt(m[1]), end: m[2] ? parseInt(m[2]) : null, size: m[3] ? parseInt(m[3]) : null } : null; } function addListener(obj, name, listener) { const listeners = obj[kListeners] ??= []; listeners.push([name, listener]); obj.on(name, listener); return obj; } function removeAllListeners(obj) { for (const [name, listener] of obj[kListeners] ?? []) { obj.removeListener(name, listener); } obj[kListeners] = null; } function errorRequest(client, request, err2) { try { request.onError(err2); assert(request.aborted); } catch (err3) { client.emit("error", err3); } } var kEnumerableProperty = /* @__PURE__ */ Object.create(null); kEnumerableProperty.enumerable = true; var normalizedMethodRecordsBase = { delete: "DELETE", DELETE: "DELETE", get: "GET", GET: "GET", head: "HEAD", HEAD: "HEAD", options: "OPTIONS", OPTIONS: "OPTIONS", post: "POST", POST: "POST", put: "PUT", PUT: "PUT" }; var normalizedMethodRecords = { ...normalizedMethodRecordsBase, patch: "patch", PATCH: "PATCH" }; Object.setPrototypeOf(normalizedMethodRecordsBase, null); Object.setPrototypeOf(normalizedMethodRecords, null); module2.exports = { kEnumerableProperty, nop, isDisturbed, isErrored, isReadable, toUSVString, isUSVString, isBlobLike, parseOrigin, parseURL, getServerName, isStream: isStream2, isIterable, isAsyncIterable, isDestroyed, headerNameToString, bufferToLowerCasedHeaderName, addListener, removeAllListeners, errorRequest, parseRawHeaders, parseHeaders, parseKeepAliveTimeout, destroy, bodyLength, deepClone, ReadableStreamFrom, isBuffer: isBuffer2, validateHandler, getSocketInfo, isFormDataLike, buildURL: buildURL2, addAbortListener, isValidHTTPToken, isValidHeaderValue, isTokenCharCode, parseRangeHeader, normalizedMethodRecordsBase, normalizedMethodRecords, isValidPort, isHttpOrHttpsPrefixed, nodeMajor, nodeMinor, safeHTTPMethods: ["GET", "HEAD", "OPTIONS", "TRACE"], wrapRequestBody }; } }); // node_modules/undici/lib/core/diagnostics.js var require_diagnostics = __commonJS({ "node_modules/undici/lib/core/diagnostics.js"(exports2, module2) { "use strict"; var diagnosticsChannel = require("node:diagnostics_channel"); var util5 = require("node:util"); var undiciDebugLog = util5.debuglog("undici"); var fetchDebuglog = util5.debuglog("fetch"); var websocketDebuglog = util5.debuglog("websocket"); var isClientSet = false; var channels = { // Client beforeConnect: diagnosticsChannel.channel("undici:client:beforeConnect"), connected: diagnosticsChannel.channel("undici:client:connected"), connectError: diagnosticsChannel.channel("undici:client:connectError"), sendHeaders: diagnosticsChannel.channel("undici:client:sendHeaders"), // Request create: diagnosticsChannel.channel("undici:request:create"), bodySent: diagnosticsChannel.channel("undici:request:bodySent"), headers: diagnosticsChannel.channel("undici:request:headers"), trailers: diagnosticsChannel.channel("undici:request:trailers"), error: diagnosticsChannel.channel("undici:request:error"), // WebSocket open: diagnosticsChannel.channel("undici:websocket:open"), close: diagnosticsChannel.channel("undici:websocket:close"), socketError: diagnosticsChannel.channel("undici:websocket:socket_error"), ping: diagnosticsChannel.channel("undici:websocket:ping"), pong: diagnosticsChannel.channel("undici:websocket:pong") }; if (undiciDebugLog.enabled || fetchDebuglog.enabled) { const debuglog = fetchDebuglog.enabled ? fetchDebuglog : undiciDebugLog; diagnosticsChannel.channel("undici:client:beforeConnect").subscribe((evt) => { const { connectParams: { version, protocol, port, host } } = evt; debuglog( "connecting to %s using %s%s", `${host}${port ? `:${port}` : ""}`, protocol, version ); }); diagnosticsChannel.channel("undici:client:connected").subscribe((evt) => { const { connectParams: { version, protocol, port, host } } = evt; debuglog( "connected to %s using %s%s", `${host}${port ? `:${port}` : ""}`, protocol, version ); }); diagnosticsChannel.channel("undici:client:connectError").subscribe((evt) => { const { connectParams: { version, protocol, port, host }, error } = evt; debuglog( "connection to %s using %s%s errored - %s", `${host}${port ? `:${port}` : ""}`, protocol, version, error.message ); }); diagnosticsChannel.channel("undici:client:sendHeaders").subscribe((evt) => { const { request: { method, path, origin: origin2 } } = evt; debuglog("sending request to %s %s/%s", method, origin2, path); }); diagnosticsChannel.channel("undici:request:headers").subscribe((evt) => { const { request: { method, path, origin: origin2 }, response: { statusCode } } = evt; debuglog( "received response to %s %s/%s - HTTP %d", method, origin2, path, statusCode ); }); diagnosticsChannel.channel("undici:request:trailers").subscribe((evt) => { const { request: { method, path, origin: origin2 } } = evt; debuglog("trailers received from %s %s/%s", method, origin2, path); }); diagnosticsChannel.channel("undici:request:error").subscribe((evt) => { const { request: { method, path, origin: origin2 }, error } = evt; debuglog( "request to %s %s/%s errored - %s", method, origin2, path, error.message ); }); isClientSet = true; } if (websocketDebuglog.enabled) { if (!isClientSet) { const debuglog = undiciDebugLog.enabled ? undiciDebugLog : websocketDebuglog; diagnosticsChannel.channel("undici:client:beforeConnect").subscribe((evt) => { const { connectParams: { version, protocol, port, host } } = evt; debuglog( "connecting to %s%s using %s%s", host, port ? `:${port}` : "", protocol, version ); }); diagnosticsChannel.channel("undici:client:connected").subscribe((evt) => { const { connectParams: { version, protocol, port, host } } = evt; debuglog( "connected to %s%s using %s%s", host, port ? `:${port}` : "", protocol, version ); }); diagnosticsChannel.channel("undici:client:connectError").subscribe((evt) => { const { connectParams: { version, protocol, port, host }, error } = evt; debuglog( "connection to %s%s using %s%s errored - %s", host, port ? `:${port}` : "", protocol, version, error.message ); }); diagnosticsChannel.channel("undici:client:sendHeaders").subscribe((evt) => { const { request: { method, path, origin: origin2 } } = evt; debuglog("sending request to %s %s/%s", method, origin2, path); }); } diagnosticsChannel.channel("undici:websocket:open").subscribe((evt) => { const { address: { address, port } } = evt; websocketDebuglog("connection opened %s%s", address, port ? `:${port}` : ""); }); diagnosticsChannel.channel("undici:websocket:close").subscribe((evt) => { const { websocket, code, reason } = evt; websocketDebuglog( "closed connection to %s - %s %s", websocket.url, code, reason ); }); diagnosticsChannel.channel("undici:websocket:socket_error").subscribe((err2) => { websocketDebuglog("connection errored - %s", err2.message); }); diagnosticsChannel.channel("undici:websocket:ping").subscribe((evt) => { websocketDebuglog("ping received"); }); diagnosticsChannel.channel("undici:websocket:pong").subscribe((evt) => { websocketDebuglog("pong received"); }); } module2.exports = { channels }; } }); // node_modules/undici/lib/core/request.js var require_request = __commonJS({ "node_modules/undici/lib/core/request.js"(exports2, module2) { "use strict"; var { InvalidArgumentError, NotSupportedError } = require_errors(); var assert = require("node:assert"); var { isValidHTTPToken, isValidHeaderValue, isStream: isStream2, destroy, isBuffer: isBuffer2, isFormDataLike, isIterable, isBlobLike, buildURL: buildURL2, validateHandler, getServerName, normalizedMethodRecords } = require_util2(); var { channels } = require_diagnostics(); var { headerNameLowerCasedRecord } = require_constants(); var invalidPathRegex = /[^\u0021-\u00ff]/; var kHandler = Symbol("handler"); var Request2 = class { constructor(origin2, { path, method, body, headers, query, idempotent, blocking, upgrade, headersTimeout, bodyTimeout, reset, throwOnError, expectContinue, servername }, handler) { if (typeof path !== "string") { throw new InvalidArgumentError("path must be a string"); } else if (path[0] !== "/" && !(path.startsWith("http://") || path.startsWith("https://")) && method !== "CONNECT") { throw new InvalidArgumentError("path must be an absolute URL or start with a slash"); } else if (invalidPathRegex.test(path)) { throw new InvalidArgumentError("invalid request path"); } if (typeof method !== "string") { throw new InvalidArgumentError("method must be a string"); } else if (normalizedMethodRecords[method] === void 0 && !isValidHTTPToken(method)) { throw new InvalidArgumentError("invalid request method"); } if (upgrade && typeof upgrade !== "string") { throw new InvalidArgumentError("upgrade must be a string"); } if (headersTimeout != null && (!Number.isFinite(headersTimeout) || headersTimeout < 0)) { throw new InvalidArgumentError("invalid headersTimeout"); } if (bodyTimeout != null && (!Number.isFinite(bodyTimeout) || bodyTimeout < 0)) { throw new InvalidArgumentError("invalid bodyTimeout"); } if (reset != null && typeof reset !== "boolean") { throw new InvalidArgumentError("invalid reset"); } if (expectContinue != null && typeof expectContinue !== "boolean") { throw new InvalidArgumentError("invalid expectContinue"); } this.headersTimeout = headersTimeout; this.bodyTimeout = bodyTimeout; this.throwOnError = throwOnError === true; this.method = method; this.abort = null; if (body == null) { this.body = null; } else if (isStream2(body)) { this.body = body; const rState = this.body._readableState; if (!rState || !rState.autoDestroy) { this.endHandler = function autoDestroy() { destroy(this); }; this.body.on("end", this.endHandler); } this.errorHandler = (err2) => { if (this.abort) { this.abort(err2); } else { this.error = err2; } }; this.body.on("error", this.errorHandler); } else if (isBuffer2(body)) { this.body = body.byteLength ? body : null; } else if (ArrayBuffer.isView(body)) { this.body = body.buffer.byteLength ? Buffer.from(body.buffer, body.byteOffset, body.byteLength) : null; } else if (body instanceof ArrayBuffer) { this.body = body.byteLength ? Buffer.from(body) : null; } else if (typeof body === "string") { this.body = body.length ? Buffer.from(body) : null; } else if (isFormDataLike(body) || isIterable(body) || isBlobLike(body)) { this.body = body; } else { throw new InvalidArgumentError("body must be a string, a Buffer, a Readable stream, an iterable, or an async iterable"); } this.completed = false; this.aborted = false; this.upgrade = upgrade || null; this.path = query ? buildURL2(path, query) : path; this.origin = origin2; this.idempotent = idempotent == null ? method === "HEAD" || method === "GET" : idempotent; this.blocking = blocking == null ? false : blocking; this.reset = reset == null ? null : reset; this.host = null; this.contentLength = null; this.contentType = null; this.headers = []; this.expectContinue = expectContinue != null ? expectContinue : false; if (Array.isArray(headers)) { if (headers.length % 2 !== 0) { throw new InvalidArgumentError("headers array must be even"); } for (let i = 0; i < headers.length; i += 2) { processHeader(this, headers[i], headers[i + 1]); } } else if (headers && typeof headers === "object") { if (headers[Symbol.iterator]) { for (const header of headers) { if (!Array.isArray(header) || header.length !== 2) { throw new InvalidArgumentError("headers must be in key-value pair format"); } processHeader(this, header[0], header[1]); } } else { const keys = Object.keys(headers); for (let i = 0; i < keys.length; ++i) { processHeader(this, keys[i], headers[keys[i]]); } } } else if (headers != null) { throw new InvalidArgumentError("headers must be an object or an array"); } validateHandler(handler, method, upgrade); this.servername = servername || getServerName(this.host); this[kHandler] = handler; if (channels.create.hasSubscribers) { channels.create.publish({ request: this }); } } onBodySent(chunk) { if (this[kHandler].onBodySent) { try { return this[kHandler].onBodySent(chunk); } catch (err2) { this.abort(err2); } } } onRequestSent() { if (channels.bodySent.hasSubscribers) { channels.bodySent.publish({ request: this }); } if (this[kHandler].onRequestSent) { try { return this[kHandler].onRequestSent(); } catch (err2) { this.abort(err2); } } } onConnect(abort) { assert(!this.aborted); assert(!this.completed); if (this.error) { abort(this.error); } else { this.abort = abort; return this[kHandler].onConnect(abort); } } onResponseStarted() { return this[kHandler].onResponseStarted?.(); } onHeaders(statusCode, headers, resume, statusText) { assert(!this.aborted); assert(!this.completed); if (channels.headers.hasSubscribers) { channels.headers.publish({ request: this, response: { statusCode, headers, statusText } }); } try { return this[kHandler].onHeaders(statusCode, headers, resume, statusText); } catch (err2) { this.abort(err2); } } onData(chunk) { assert(!this.aborted); assert(!this.completed); try { return this[kHandler].onData(chunk); } catch (err2) { this.abort(err2); return false; } } onUpgrade(statusCode, headers, socket) { assert(!this.aborted); assert(!this.completed); return this[kHandler].onUpgrade(statusCode, headers, socket); } onComplete(trailers) { this.onFinally(); assert(!this.aborted); this.completed = true; if (channels.trailers.hasSubscribers) { channels.trailers.publish({ request: this, trailers }); } try { return this[kHandler].onComplete(trailers); } catch (err2) { this.onError(err2); } } onError(error) { this.onFinally(); if (channels.error.hasSubscribers) { channels.error.publish({ request: this, error }); } if (this.aborted) { return; } this.aborted = true; return this[kHandler].onError(error); } onFinally() { if (this.errorHandler) { this.body.off("error", this.errorHandler); this.errorHandler = null; } if (this.endHandler) { this.body.off("end", this.endHandler); this.endHandler = null; } } addHeader(key, value) { processHeader(this, key, value); return this; } }; function processHeader(request, key, val2) { if (val2 && (typeof val2 === "object" && !Array.isArray(val2))) { throw new InvalidArgumentError(`invalid ${key} header`); } else if (val2 === void 0) { return; } let headerName = headerNameLowerCasedRecord[key]; if (headerName === void 0) { headerName = key.toLowerCase(); if (headerNameLowerCasedRecord[headerName] === void 0 && !isValidHTTPToken(headerName)) { throw new InvalidArgumentError("invalid header key"); } } if (Array.isArray(val2)) { const arr = []; for (let i = 0; i < val2.length; i++) { if (typeof val2[i] === "string") { if (!isValidHeaderValue(val2[i])) { throw new InvalidArgumentError(`invalid ${key} header`); } arr.push(val2[i]); } else if (val2[i] === null) { arr.push(""); } else if (typeof val2[i] === "object") { throw new InvalidArgumentError(`invalid ${key} header`); } else { arr.push(`${val2[i]}`); } } val2 = arr; } else if (typeof val2 === "string") { if (!isValidHeaderValue(val2)) { throw new InvalidArgumentError(`invalid ${key} header`); } } else if (val2 === null) { val2 = ""; } else { val2 = `${val2}`; } if (request.host === null && headerName === "host") { if (typeof val2 !== "string") { throw new InvalidArgumentError("invalid host header"); } request.host = val2; } else if (request.contentLength === null && headerName === "content-length") { request.contentLength = parseInt(val2, 10); if (!Number.isFinite(request.contentLength)) { throw new InvalidArgumentError("invalid content-length header"); } } else if (request.contentType === null && headerName === "content-type") { request.contentType = val2; request.headers.push(key, val2); } else if (headerName === "transfer-encoding" || headerName === "keep-alive" || headerName === "upgrade") { throw new InvalidArgumentError(`invalid ${headerName} header`); } else if (headerName === "connection") { const value = typeof val2 === "string" ? val2.toLowerCase() : null; if (value !== "close" && value !== "keep-alive") { throw new InvalidArgumentError("invalid connection header"); } if (value === "close") { request.reset = true; } } else if (headerName === "expect") { throw new NotSupportedError("expect header not supported"); } else { request.headers.push(key, val2); } } module2.exports = Request2; } }); // node_modules/undici/lib/dispatcher/dispatcher.js var require_dispatcher = __commonJS({ "node_modules/undici/lib/dispatcher/dispatcher.js"(exports2, module2) { "use strict"; var EventEmitter2 = require("node:events"); var Dispatcher = class extends EventEmitter2 { dispatch() { throw new Error("not implemented"); } close() { throw new Error("not implemented"); } destroy() { throw new Error("not implemented"); } compose(...args) { const interceptors = Array.isArray(args[0]) ? args[0] : args; let dispatch = this.dispatch.bind(this); for (const interceptor of interceptors) { if (interceptor == null) { continue; } if (typeof interceptor !== "function") { throw new TypeError(`invalid interceptor, expected function received ${typeof interceptor}`); } dispatch = interceptor(dispatch); if (dispatch == null || typeof dispatch !== "function" || dispatch.length !== 2) { throw new TypeError("invalid interceptor"); } } return new ComposedDispatcher(this, dispatch); } }; var ComposedDispatcher = class extends Dispatcher { #dispatcher = null; #dispatch = null; constructor(dispatcher, dispatch) { super(); this.#dispatcher = dispatcher; this.#dispatch = dispatch; } dispatch(...args) { this.#dispatch(...args); } close(...args) { return this.#dispatcher.close(...args); } destroy(...args) { return this.#dispatcher.destroy(...args); } }; module2.exports = Dispatcher; } }); // node_modules/undici/lib/dispatcher/dispatcher-base.js var require_dispatcher_base = __commonJS({ "node_modules/undici/lib/dispatcher/dispatcher-base.js"(exports2, module2) { "use strict"; var Dispatcher = require_dispatcher(); var { ClientDestroyedError, ClientClosedError, InvalidArgumentError } = require_errors(); var { kDestroy, kClose, kClosed, kDestroyed, kDispatch, kInterceptors } = require_symbols(); var kOnDestroyed = Symbol("onDestroyed"); var kOnClosed = Symbol("onClosed"); var kInterceptedDispatch = Symbol("Intercepted Dispatch"); var DispatcherBase = class extends Dispatcher { constructor() { super(); this[kDestroyed] = false; this[kOnDestroyed] = null; this[kClosed] = false; this[kOnClosed] = []; } get destroyed() { return this[kDestroyed]; } get closed() { return this[kClosed]; } get interceptors() { return this[kInterceptors]; } set interceptors(newInterceptors) { if (newInterceptors) { for (let i = newInterceptors.length - 1; i >= 0; i--) { const interceptor = this[kInterceptors][i]; if (typeof interceptor !== "function") { throw new InvalidArgumentError("interceptor must be an function"); } } } this[kInterceptors] = newInterceptors; } close(callback) { if (callback === void 0) { return new Promise((resolve, reject) => { this.close((err2, data2) => { return err2 ? reject(err2) : resolve(data2); }); }); } if (typeof callback !== "function") { throw new InvalidArgumentError("invalid callback"); } if (this[kDestroyed]) { queueMicrotask(() => callback(new ClientDestroyedError(), null)); return; } if (this[kClosed]) { if (this[kOnClosed]) { this[kOnClosed].push(callback); } else { queueMicrotask(() => callback(null, null)); } return; } this[kClosed] = true; this[kOnClosed].push(callback); const onClosed = () => { const callbacks = this[kOnClosed]; this[kOnClosed] = null; for (let i = 0; i < callbacks.length; i++) { callbacks[i](null, null); } }; this[kClose]().then(() => this.destroy()).then(() => { queueMicrotask(onClosed); }); } destroy(err2, callback) { if (typeof err2 === "function") { callback = err2; err2 = null; } if (callback === void 0) { return new Promise((resolve, reject) => { this.destroy(err2, (err3, data2) => { return err3 ? ( /* istanbul ignore next: should never error */ reject(err3) ) : resolve(data2); }); }); } if (typeof callback !== "function") { throw new InvalidArgumentError("invalid callback"); } if (this[kDestroyed]) { if (this[kOnDestroyed]) { this[kOnDestroyed].push(callback); } else { queueMicrotask(() => callback(null, null)); } return; } if (!err2) { err2 = new ClientDestroyedError(); } this[kDestroyed] = true; this[kOnDestroyed] = this[kOnDestroyed] || []; this[kOnDestroyed].push(callback); const onDestroyed = () => { const callbacks = this[kOnDestroyed]; this[kOnDestroyed] = null; for (let i = 0; i < callbacks.length; i++) { callbacks[i](null, null); } }; this[kDestroy](err2).then(() => { queueMicrotask(onDestroyed); }); } [kInterceptedDispatch](opts, handler) { if (!this[kInterceptors] || this[kInterceptors].length === 0) { this[kInterceptedDispatch] = this[kDispatch]; return this[kDispatch](opts, handler); } let dispatch = this[kDispatch].bind(this); for (let i = this[kInterceptors].length - 1; i >= 0; i--) { dispatch = this[kInterceptors][i](dispatch); } this[kInterceptedDispatch] = dispatch; return dispatch(opts, handler); } dispatch(opts, handler) { if (!handler || typeof handler !== "object") { throw new InvalidArgumentError("handler must be an object"); } try { if (!opts || typeof opts !== "object") { throw new InvalidArgumentError("opts must be an object."); } if (this[kDestroyed] || this[kOnDestroyed]) { throw new ClientDestroyedError(); } if (this[kClosed]) { throw new ClientClosedError(); } return this[kInterceptedDispatch](opts, handler); } catch (err2) { if (typeof handler.onError !== "function") { throw new InvalidArgumentError("invalid onError method"); } handler.onError(err2); return false; } } }; module2.exports = DispatcherBase; } }); // node_modules/undici/lib/util/timers.js var require_timers = __commonJS({ "node_modules/undici/lib/util/timers.js"(exports2, module2) { "use strict"; var fastNow = 0; var RESOLUTION_MS = 1e3; var TICK_MS = (RESOLUTION_MS >> 1) - 1; var fastNowTimeout; var kFastTimer = Symbol("kFastTimer"); var fastTimers = []; var NOT_IN_LIST = -2; var TO_BE_CLEARED = -1; var PENDING = 0; var ACTIVE = 1; function onTick() { fastNow += TICK_MS; let idx = 0; let len = fastTimers.length; while (idx < len) { const timer = fastTimers[idx]; if (timer._state === PENDING) { timer._idleStart = fastNow - TICK_MS; timer._state = ACTIVE; } else if (timer._state === ACTIVE && fastNow >= timer._idleStart + timer._idleTimeout) { timer._state = TO_BE_CLEARED; timer._idleStart = -1; timer._onTimeout(timer._timerArg); } if (timer._state === TO_BE_CLEARED) { timer._state = NOT_IN_LIST; if (--len !== 0) { fastTimers[idx] = fastTimers[len]; } } else { ++idx; } } fastTimers.length = len; if (fastTimers.length !== 0) { refreshTimeout(); } } function refreshTimeout() { if (fastNowTimeout) { fastNowTimeout.refresh(); } else { clearTimeout(fastNowTimeout); fastNowTimeout = setTimeout(onTick, TICK_MS); if (fastNowTimeout.unref) { fastNowTimeout.unref(); } } } var FastTimer = class { [kFastTimer] = true; /** * The state of the timer, which can be one of the following: * - NOT_IN_LIST (-2) * - TO_BE_CLEARED (-1) * - PENDING (0) * - ACTIVE (1) * * @type {-2|-1|0|1} * @private */ _state = NOT_IN_LIST; /** * The number of milliseconds to wait before calling the callback. * * @type {number} * @private */ _idleTimeout = -1; /** * The time in milliseconds when the timer was started. This value is used to * calculate when the timer should expire. * * @type {number} * @default -1 * @private */ _idleStart = -1; /** * The function to be executed when the timer expires. * @type {Function} * @private */ _onTimeout; /** * The argument to be passed to the callback when the timer expires. * * @type {*} * @private */ _timerArg; /** * @constructor * @param {Function} callback A function to be executed after the timer * expires. * @param {number} delay The time, in milliseconds that the timer should wait * before the specified function or code is executed. * @param {*} arg */ constructor(callback, delay, arg) { this._onTimeout = callback; this._idleTimeout = delay; this._timerArg = arg; this.refresh(); } /** * Sets the timer's start time to the current time, and reschedules the timer * to call its callback at the previously specified duration adjusted to the * current time. * Using this on a timer that has already called its callback will reactivate * the timer. * * @returns {void} */ refresh() { if (this._state === NOT_IN_LIST) { fastTimers.push(this); } if (!fastNowTimeout || fastTimers.length === 1) { refreshTimeout(); } this._state = PENDING; } /** * The `clear` method cancels the timer, preventing it from executing. * * @returns {void} * @private */ clear() { this._state = TO_BE_CLEARED; this._idleStart = -1; } }; module2.exports = { /** * The setTimeout() method sets a timer which executes a function once the * timer expires. * @param {Function} callback A function to be executed after the timer * expires. * @param {number} delay The time, in milliseconds that the timer should * wait before the specified function or code is executed. * @param {*} [arg] An optional argument to be passed to the callback function * when the timer expires. * @returns {NodeJS.Timeout|FastTimer} */ setTimeout(callback, delay, arg) { return delay <= RESOLUTION_MS ? setTimeout(callback, delay, arg) : new FastTimer(callback, delay, arg); }, /** * The clearTimeout method cancels an instantiated Timer previously created * by calling setTimeout. * * @param {NodeJS.Timeout|FastTimer} timeout */ clearTimeout(timeout) { if (timeout[kFastTimer]) { timeout.clear(); } else { clearTimeout(timeout); } }, /** * The setFastTimeout() method sets a fastTimer which executes a function once * the timer expires. * @param {Function} callback A function to be executed after the timer * expires. * @param {number} delay The time, in milliseconds that the timer should * wait before the specified function or code is executed. * @param {*} [arg] An optional argument to be passed to the callback function * when the timer expires. * @returns {FastTimer} */ setFastTimeout(callback, delay, arg) { return new FastTimer(callback, delay, arg); }, /** * The clearTimeout method cancels an instantiated FastTimer previously * created by calling setFastTimeout. * * @param {FastTimer} timeout */ clearFastTimeout(timeout) { timeout.clear(); }, /** * The now method returns the value of the internal fast timer clock. * * @returns {number} */ now() { return fastNow; }, /** * Trigger the onTick function to process the fastTimers array. * Exported for testing purposes only. * Marking as deprecated to discourage any use outside of testing. * @deprecated * @param {number} [delay=0] The delay in milliseconds to add to the now value. */ tick(delay = 0) { fastNow += delay - RESOLUTION_MS + 1; onTick(); onTick(); }, /** * Reset FastTimers. * Exported for testing purposes only. * Marking as deprecated to discourage any use outside of testing. * @deprecated */ reset() { fastNow = 0; fastTimers.length = 0; clearTimeout(fastNowTimeout); fastNowTimeout = null; }, /** * Exporting for testing purposes only. * Marking as deprecated to discourage any use outside of testing. * @deprecated */ kFastTimer }; } }); // node_modules/undici/lib/core/connect.js var require_connect = __commonJS({ "node_modules/undici/lib/core/connect.js"(exports2, module2) { "use strict"; var net = require("node:net"); var assert = require("node:assert"); var util5 = require_util2(); var { InvalidArgumentError, ConnectTimeoutError } = require_errors(); var timers = require_timers(); function noop2() { } var tls; var SessionCache; if (global.FinalizationRegistry && !(process.env.NODE_V8_COVERAGE || process.env.UNDICI_NO_FG)) { SessionCache = class WeakSessionCache { constructor(maxCachedSessions) { this._maxCachedSessions = maxCachedSessions; this._sessionCache = /* @__PURE__ */ new Map(); this._sessionRegistry = new global.FinalizationRegistry((key) => { if (this._sessionCache.size < this._maxCachedSessions) { return; } const ref = this._sessionCache.get(key); if (ref !== void 0 && ref.deref() === void 0) { this._sessionCache.delete(key); } }); } get(sessionKey) { const ref = this._sessionCache.get(sessionKey); return ref ? ref.deref() : null; } set(sessionKey, session) { if (this._maxCachedSessions === 0) { return; } this._sessionCache.set(sessionKey, new WeakRef(session)); this._sessionRegistry.register(session, sessionKey); } }; } else { SessionCache = class SimpleSessionCache { constructor(maxCachedSessions) { this._maxCachedSessions = maxCachedSessions; this._sessionCache = /* @__PURE__ */ new Map(); } get(sessionKey) { return this._sessionCache.get(sessionKey); } set(sessionKey, session) { if (this._maxCachedSessions === 0) { return; } if (this._sessionCache.size >= this._maxCachedSessions) { const { value: oldestKey } = this._sessionCache.keys().next(); this._sessionCache.delete(oldestKey); } this._sessionCache.set(sessionKey, session); } }; } function buildConnector({ allowH2, maxCachedSessions, socketPath, timeout, session: customSession, ...opts }) { if (maxCachedSessions != null && (!Number.isInteger(maxCachedSessions) || maxCachedSessions < 0)) { throw new InvalidArgumentError("maxCachedSessions must be a positive integer or zero"); } const options = { path: socketPath, ...opts }; const sessionCache = new SessionCache(maxCachedSessions == null ? 100 : maxCachedSessions); timeout = timeout == null ? 1e4 : timeout; allowH2 = allowH2 != null ? allowH2 : false; return function connect({ hostname, host, protocol, port, servername, localAddress, httpSocket }, callback) { let socket; if (protocol === "https:") { if (!tls) { tls = require("node:tls"); } servername = servername || options.servername || util5.getServerName(host) || null; const sessionKey = servername || hostname; assert(sessionKey); const session = customSession || sessionCache.get(sessionKey) || null; port = port || 443; socket = tls.connect({ highWaterMark: 16384, // TLS in node can't have bigger HWM anyway... ...options, servername, session, localAddress, // TODO(HTTP/2): Add support for h2c ALPNProtocols: allowH2 ? ["http/1.1", "h2"] : ["http/1.1"], socket: httpSocket, // upgrade socket connection port, host: hostname }); socket.on("session", function(session2) { sessionCache.set(sessionKey, session2); }); } else { assert(!httpSocket, "httpSocket can only be sent on TLS update"); port = port || 80; socket = net.connect({ highWaterMark: 64 * 1024, // Same as nodejs fs streams. ...options, localAddress, port, host: hostname }); } if (options.keepAlive == null || options.keepAlive) { const keepAliveInitialDelay = options.keepAliveInitialDelay === void 0 ? 6e4 : options.keepAliveInitialDelay; socket.setKeepAlive(true, keepAliveInitialDelay); } const clearConnectTimeout = setupConnectTimeout(new WeakRef(socket), { timeout, hostname, port }); socket.setNoDelay(true).once(protocol === "https:" ? "secureConnect" : "connect", function() { queueMicrotask(clearConnectTimeout); if (callback) { const cb = callback; callback = null; cb(null, this); } }).on("error", function(err2) { queueMicrotask(clearConnectTimeout); if (callback) { const cb = callback; callback = null; cb(err2); } }); return socket; }; } var setupConnectTimeout = process.platform === "win32" ? (socketWeakRef, opts) => { if (!opts.timeout) { return noop2; } let s1 = null; let s2 = null; const fastTimer = timers.setFastTimeout(() => { s1 = setImmediate(() => { s2 = setImmediate(() => onConnectTimeout(socketWeakRef.deref(), opts)); }); }, opts.timeout); return () => { timers.clearFastTimeout(fastTimer); clearImmediate(s1); clearImmediate(s2); }; } : (socketWeakRef, opts) => { if (!opts.timeout) { return noop2; } let s1 = null; const fastTimer = timers.setFastTimeout(() => { s1 = setImmediate(() => { onConnectTimeout(socketWeakRef.deref(), opts); }); }, opts.timeout); return () => { timers.clearFastTimeout(fastTimer); clearImmediate(s1); }; }; function onConnectTimeout(socket, opts) { if (socket == null) { return; } let message = "Connect Timeout Error"; if (Array.isArray(socket.autoSelectFamilyAttemptedAddresses)) { message += ` (attempted addresses: ${socket.autoSelectFamilyAttemptedAddresses.join(", ")},`; } else { message += ` (attempted address: ${opts.hostname}:${opts.port},`; } message += ` timeout: ${opts.timeout}ms)`; util5.destroy(socket, new ConnectTimeoutError(message)); } module2.exports = buildConnector; } }); // node_modules/undici/lib/llhttp/utils.js var require_utils = __commonJS({ "node_modules/undici/lib/llhttp/utils.js"(exports2) { "use strict"; Object.defineProperty(exports2, "__esModule", { value: true }); exports2.enumToMap = void 0; function enumToMap(obj) { const res = {}; Object.keys(obj).forEach((key) => { const value = obj[key]; if (typeof value === "number") { res[key] = value; } }); return res; } exports2.enumToMap = enumToMap; } }); // node_modules/undici/lib/llhttp/constants.js var require_constants2 = __commonJS({ "node_modules/undici/lib/llhttp/constants.js"(exports2) { "use strict"; Object.defineProperty(exports2, "__esModule", { value: true }); exports2.SPECIAL_HEADERS = exports2.HEADER_STATE = exports2.MINOR = exports2.MAJOR = exports2.CONNECTION_TOKEN_CHARS = exports2.HEADER_CHARS = exports2.TOKEN = exports2.STRICT_TOKEN = exports2.HEX = exports2.URL_CHAR = exports2.STRICT_URL_CHAR = exports2.USERINFO_CHARS = exports2.MARK = exports2.ALPHANUM = exports2.NUM = exports2.HEX_MAP = exports2.NUM_MAP = exports2.ALPHA = exports2.FINISH = exports2.H_METHOD_MAP = exports2.METHOD_MAP = exports2.METHODS_RTSP = exports2.METHODS_ICE = exports2.METHODS_HTTP = exports2.METHODS = exports2.LENIENT_FLAGS = exports2.FLAGS = exports2.TYPE = exports2.ERROR = void 0; var utils_1 = require_utils(); var ERROR; (function(ERROR2) { ERROR2[ERROR2["OK"] = 0] = "OK"; ERROR2[ERROR2["INTERNAL"] = 1] = "INTERNAL"; ERROR2[ERROR2["STRICT"] = 2] = "STRICT"; ERROR2[ERROR2["LF_EXPECTED"] = 3] = "LF_EXPECTED"; ERROR2[ERROR2["UNEXPECTED_CONTENT_LENGTH"] = 4] = "UNEXPECTED_CONTENT_LENGTH"; ERROR2[ERROR2["CLOSED_CONNECTION"] = 5] = "CLOSED_CONNECTION"; ERROR2[ERROR2["INVALID_METHOD"] = 6] = "INVALID_METHOD"; ERROR2[ERROR2["INVALID_URL"] = 7] = "INVALID_URL"; ERROR2[ERROR2["INVALID_CONSTANT"] = 8] = "INVALID_CONSTANT"; ERROR2[ERROR2["INVALID_VERSION"] = 9] = "INVALID_VERSION"; ERROR2[ERROR2["INVALID_HEADER_TOKEN"] = 10] = "INVALID_HEADER_TOKEN"; ERROR2[ERROR2["INVALID_CONTENT_LENGTH"] = 11] = "INVALID_CONTENT_LENGTH"; ERROR2[ERROR2["INVALID_CHUNK_SIZE"] = 12] = "INVALID_CHUNK_SIZE"; ERROR2[ERROR2["INVALID_STATUS"] = 13] = "INVALID_STATUS"; ERROR2[ERROR2["INVALID_EOF_STATE"] = 14] = "INVALID_EOF_STATE"; ERROR2[ERROR2["INVALID_TRANSFER_ENCODING"] = 15] = "INVALID_TRANSFER_ENCODING"; ERROR2[ERROR2["CB_MESSAGE_BEGIN"] = 16] = "CB_MESSAGE_BEGIN"; ERROR2[ERROR2["CB_HEADERS_COMPLETE"] = 17] = "CB_HEADERS_COMPLETE"; ERROR2[ERROR2["CB_MESSAGE_COMPLETE"] = 18] = "CB_MESSAGE_COMPLETE"; ERROR2[ERROR2["CB_CHUNK_HEADER"] = 19] = "CB_CHUNK_HEADER"; ERROR2[ERROR2["CB_CHUNK_COMPLETE"] = 20] = "CB_CHUNK_COMPLETE"; ERROR2[ERROR2["PAUSED"] = 21] = "PAUSED"; ERROR2[ERROR2["PAUSED_UPGRADE"] = 22] = "PAUSED_UPGRADE"; ERROR2[ERROR2["PAUSED_H2_UPGRADE"] = 23] = "PAUSED_H2_UPGRADE"; ERROR2[ERROR2["USER"] = 24] = "USER"; })(ERROR = exports2.ERROR || (exports2.ERROR = {})); var TYPE; (function(TYPE2) { TYPE2[TYPE2["BOTH"] = 0] = "BOTH"; TYPE2[TYPE2["REQUEST"] = 1] = "REQUEST"; TYPE2[TYPE2["RESPONSE"] = 2] = "RESPONSE"; })(TYPE = exports2.TYPE || (exports2.TYPE = {})); var FLAGS; (function(FLAGS2) { FLAGS2[FLAGS2["CONNECTION_KEEP_ALIVE"] = 1] = "CONNECTION_KEEP_ALIVE"; FLAGS2[FLAGS2["CONNECTION_CLOSE"] = 2] = "CONNECTION_CLOSE"; FLAGS2[FLAGS2["CONNECTION_UPGRADE"] = 4] = "CONNECTION_UPGRADE"; FLAGS2[FLAGS2["CHUNKED"] = 8] = "CHUNKED"; FLAGS2[FLAGS2["UPGRADE"] = 16] = "UPGRADE"; FLAGS2[FLAGS2["CONTENT_LENGTH"] = 32] = "CONTENT_LENGTH"; FLAGS2[FLAGS2["SKIPBODY"] = 64] = "SKIPBODY"; FLAGS2[FLAGS2["TRAILING"] = 128] = "TRAILING"; FLAGS2[FLAGS2["TRANSFER_ENCODING"] = 512] = "TRANSFER_ENCODING"; })(FLAGS = exports2.FLAGS || (exports2.FLAGS = {})); var LENIENT_FLAGS; (function(LENIENT_FLAGS2) { LENIENT_FLAGS2[LENIENT_FLAGS2["HEADERS"] = 1] = "HEADERS"; LENIENT_FLAGS2[LENIENT_FLAGS2["CHUNKED_LENGTH"] = 2] = "CHUNKED_LENGTH"; LENIENT_FLAGS2[LENIENT_FLAGS2["KEEP_ALIVE"] = 4] = "KEEP_ALIVE"; })(LENIENT_FLAGS = exports2.LENIENT_FLAGS || (exports2.LENIENT_FLAGS = {})); var METHODS; (function(METHODS2) { METHODS2[METHODS2["DELETE"] = 0] = "DELETE"; METHODS2[METHODS2["GET"] = 1] = "GET"; METHODS2[METHODS2["HEAD"] = 2] = "HEAD"; METHODS2[METHODS2["POST"] = 3] = "POST"; METHODS2[METHODS2["PUT"] = 4] = "PUT"; METHODS2[METHODS2["CONNECT"] = 5] = "CONNECT"; METHODS2[METHODS2["OPTIONS"] = 6] = "OPTIONS"; METHODS2[METHODS2["TRACE"] = 7] = "TRACE"; METHODS2[METHODS2["COPY"] = 8] = "COPY"; METHODS2[METHODS2["LOCK"] = 9] = "LOCK"; METHODS2[METHODS2["MKCOL"] = 10] = "MKCOL"; METHODS2[METHODS2["MOVE"] = 11] = "MOVE"; METHODS2[METHODS2["PROPFIND"] = 12] = "PROPFIND"; METHODS2[METHODS2["PROPPATCH"] = 13] = "PROPPATCH"; METHODS2[METHODS2["SEARCH"] = 14] = "SEARCH"; METHODS2[METHODS2["UNLOCK"] = 15] = "UNLOCK"; METHODS2[METHODS2["BIND"] = 16] = "BIND"; METHODS2[METHODS2["REBIND"] = 17] = "REBIND"; METHODS2[METHODS2["UNBIND"] = 18] = "UNBIND"; METHODS2[METHODS2["ACL"] = 19] = "ACL"; METHODS2[METHODS2["REPORT"] = 20] = "REPORT"; METHODS2[METHODS2["MKACTIVITY"] = 21] = "MKACTIVITY"; METHODS2[METHODS2["CHECKOUT"] = 22] = "CHECKOUT"; METHODS2[METHODS2["MERGE"] = 23] = "MERGE"; METHODS2[METHODS2["M-SEARCH"] = 24] = "M-SEARCH"; METHODS2[METHODS2["NOTIFY"] = 25] = "NOTIFY"; METHODS2[METHODS2["SUBSCRIBE"] = 26] = "SUBSCRIBE"; METHODS2[METHODS2["UNSUBSCRIBE"] = 27] = "UNSUBSCRIBE"; METHODS2[METHODS2["PATCH"] = 28] = "PATCH"; METHODS2[METHODS2["PURGE"] = 29] = "PURGE"; METHODS2[METHODS2["MKCALENDAR"] = 30] = "MKCALENDAR"; METHODS2[METHODS2["LINK"] = 31] = "LINK"; METHODS2[METHODS2["UNLINK"] = 32] = "UNLINK"; METHODS2[METHODS2["SOURCE"] = 33] = "SOURCE"; METHODS2[METHODS2["PRI"] = 34] = "PRI"; METHODS2[METHODS2["DESCRIBE"] = 35] = "DESCRIBE"; METHODS2[METHODS2["ANNOUNCE"] = 36] = "ANNOUNCE"; METHODS2[METHODS2["SETUP"] = 37] = "SETUP"; METHODS2[METHODS2["PLAY"] = 38] = "PLAY"; METHODS2[METHODS2["PAUSE"] = 39] = "PAUSE"; METHODS2[METHODS2["TEARDOWN"] = 40] = "TEARDOWN"; METHODS2[METHODS2["GET_PARAMETER"] = 41] = "GET_PARAMETER"; METHODS2[METHODS2["SET_PARAMETER"] = 42] = "SET_PARAMETER"; METHODS2[METHODS2["REDIRECT"] = 43] = "REDIRECT"; METHODS2[METHODS2["RECORD"] = 44] = "RECORD"; METHODS2[METHODS2["FLUSH"] = 45] = "FLUSH"; })(METHODS = exports2.METHODS || (exports2.METHODS = {})); exports2.METHODS_HTTP = [ METHODS.DELETE, METHODS.GET, METHODS.HEAD, METHODS.POST, METHODS.PUT, METHODS.CONNECT, METHODS.OPTIONS, METHODS.TRACE, METHODS.COPY, METHODS.LOCK, METHODS.MKCOL, METHODS.MOVE, METHODS.PROPFIND, METHODS.PROPPATCH, METHODS.SEARCH, METHODS.UNLOCK, METHODS.BIND, METHODS.REBIND, METHODS.UNBIND, METHODS.ACL, METHODS.REPORT, METHODS.MKACTIVITY, METHODS.CHECKOUT, METHODS.MERGE, METHODS["M-SEARCH"], METHODS.NOTIFY, METHODS.SUBSCRIBE, METHODS.UNSUBSCRIBE, METHODS.PATCH, METHODS.PURGE, METHODS.MKCALENDAR, METHODS.LINK, METHODS.UNLINK, METHODS.PRI, // TODO(indutny): should we allow it with HTTP? METHODS.SOURCE ]; exports2.METHODS_ICE = [ METHODS.SOURCE ]; exports2.METHODS_RTSP = [ METHODS.OPTIONS, METHODS.DESCRIBE, METHODS.ANNOUNCE, METHODS.SETUP, METHODS.PLAY, METHODS.PAUSE, METHODS.TEARDOWN, METHODS.GET_PARAMETER, METHODS.SET_PARAMETER, METHODS.REDIRECT, METHODS.RECORD, METHODS.FLUSH, // For AirPlay METHODS.GET, METHODS.POST ]; exports2.METHOD_MAP = utils_1.enumToMap(METHODS); exports2.H_METHOD_MAP = {}; Object.keys(exports2.METHOD_MAP).forEach((key) => { if (/^H/.test(key)) { exports2.H_METHOD_MAP[key] = exports2.METHOD_MAP[key]; } }); var FINISH; (function(FINISH2) { FINISH2[FINISH2["SAFE"] = 0] = "SAFE"; FINISH2[FINISH2["SAFE_WITH_CB"] = 1] = "SAFE_WITH_CB"; FINISH2[FINISH2["UNSAFE"] = 2] = "UNSAFE"; })(FINISH = exports2.FINISH || (exports2.FINISH = {})); exports2.ALPHA = []; for (let i = "A".charCodeAt(0); i <= "Z".charCodeAt(0); i++) { exports2.ALPHA.push(String.fromCharCode(i)); exports2.ALPHA.push(String.fromCharCode(i + 32)); } exports2.NUM_MAP = { 0: 0, 1: 1, 2: 2, 3: 3, 4: 4, 5: 5, 6: 6, 7: 7, 8: 8, 9: 9 }; exports2.HEX_MAP = { 0: 0, 1: 1, 2: 2, 3: 3, 4: 4, 5: 5, 6: 6, 7: 7, 8: 8, 9: 9, A: 10, B: 11, C: 12, D: 13, E: 14, F: 15, a: 10, b: 11, c: 12, d: 13, e: 14, f: 15 }; exports2.NUM = [ "0", "1", "2", "3", "4", "5", "6", "7", "8", "9" ]; exports2.ALPHANUM = exports2.ALPHA.concat(exports2.NUM); exports2.MARK = ["-", "_", ".", "!", "~", "*", "'", "(", ")"]; exports2.USERINFO_CHARS = exports2.ALPHANUM.concat(exports2.MARK).concat(["%", ";", ":", "&", "=", "+", "$", ","]); exports2.STRICT_URL_CHAR = [ "!", '"', "$", "%", "&", "'", "(", ")", "*", "+", ",", "-", ".", "/", ":", ";", "<", "=", ">", "@", "[", "\\", "]", "^", "_", "`", "{", "|", "}", "~" ].concat(exports2.ALPHANUM); exports2.URL_CHAR = exports2.STRICT_URL_CHAR.concat([" ", "\f"]); for (let i = 128; i <= 255; i++) { exports2.URL_CHAR.push(i); } exports2.HEX = exports2.NUM.concat(["a", "b", "c", "d", "e", "f", "A", "B", "C", "D", "E", "F"]); exports2.STRICT_TOKEN = [ "!", "#", "$", "%", "&", "'", "*", "+", "-", ".", "^", "_", "`", "|", "~" ].concat(exports2.ALPHANUM); exports2.TOKEN = exports2.STRICT_TOKEN.concat([" "]); exports2.HEADER_CHARS = [" "]; for (let i = 32; i <= 255; i++) { if (i !== 127) { exports2.HEADER_CHARS.push(i); } } exports2.CONNECTION_TOKEN_CHARS = exports2.HEADER_CHARS.filter((c) => c !== 44); exports2.MAJOR = exports2.NUM_MAP; exports2.MINOR = exports2.MAJOR; var HEADER_STATE; (function(HEADER_STATE2) { HEADER_STATE2[HEADER_STATE2["GENERAL"] = 0] = "GENERAL"; HEADER_STATE2[HEADER_STATE2["CONNECTION"] = 1] = "CONNECTION"; HEADER_STATE2[HEADER_STATE2["CONTENT_LENGTH"] = 2] = "CONTENT_LENGTH"; HEADER_STATE2[HEADER_STATE2["TRANSFER_ENCODING"] = 3] = "TRANSFER_ENCODING"; HEADER_STATE2[HEADER_STATE2["UPGRADE"] = 4] = "UPGRADE"; HEADER_STATE2[HEADER_STATE2["CONNECTION_KEEP_ALIVE"] = 5] = "CONNECTION_KEEP_ALIVE"; HEADER_STATE2[HEADER_STATE2["CONNECTION_CLOSE"] = 6] = "CONNECTION_CLOSE"; HEADER_STATE2[HEADER_STATE2["CONNECTION_UPGRADE"] = 7] = "CONNECTION_UPGRADE"; HEADER_STATE2[HEADER_STATE2["TRANSFER_ENCODING_CHUNKED"] = 8] = "TRANSFER_ENCODING_CHUNKED"; })(HEADER_STATE = exports2.HEADER_STATE || (exports2.HEADER_STATE = {})); exports2.SPECIAL_HEADERS = { "connection": HEADER_STATE.CONNECTION, "content-length": HEADER_STATE.CONTENT_LENGTH, "proxy-connection": HEADER_STATE.CONNECTION, "transfer-encoding": HEADER_STATE.TRANSFER_ENCODING, "upgrade": HEADER_STATE.UPGRADE }; } }); // node_modules/undici/lib/llhttp/llhttp-wasm.js var require_llhttp_wasm = __commonJS({ "node_modules/undici/lib/llhttp/llhttp-wasm.js"(exports2, module2) { "use strict"; var { Buffer: Buffer2 } = require("node:buffer"); module2.exports = Buffer2.from("AGFzbQEAAAABJwdgAX8Bf2ADf39/AX9gAX8AYAJ/fwBgBH9/f38Bf2AAAGADf39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQAEA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAAy0sBQYAAAIAAAAAAAACAQIAAgICAAADAAAAAAMDAwMBAQEBAQEBAQEAAAIAAAAEBQFwARISBQMBAAIGCAF/AUGA1AQLB9EFIgZtZW1vcnkCAAtfaW5pdGlhbGl6ZQAIGV9faW5kaXJlY3RfZnVuY3Rpb25fdGFibGUBAAtsbGh0dHBfaW5pdAAJGGxsaHR0cF9zaG91bGRfa2VlcF9hbGl2ZQAvDGxsaHR0cF9hbGxvYwALBm1hbGxvYwAxC2xsaHR0cF9mcmVlAAwEZnJlZQAMD2xsaHR0cF9nZXRfdHlwZQANFWxsaHR0cF9nZXRfaHR0cF9tYWpvcgAOFWxsaHR0cF9nZXRfaHR0cF9taW5vcgAPEWxsaHR0cF9nZXRfbWV0aG9kABAWbGxodHRwX2dldF9zdGF0dXNfY29kZQAREmxsaHR0cF9nZXRfdXBncmFkZQASDGxsaHR0cF9yZXNldAATDmxsaHR0cF9leGVjdXRlABQUbGxodHRwX3NldHRpbmdzX2luaXQAFQ1sbGh0dHBfZmluaXNoABYMbGxodHRwX3BhdXNlABcNbGxodHRwX3Jlc3VtZQAYG2xsaHR0cF9yZXN1bWVfYWZ0ZXJfdXBncmFkZQAZEGxsaHR0cF9nZXRfZXJybm8AGhdsbGh0dHBfZ2V0X2Vycm9yX3JlYXNvbgAbF2xsaHR0cF9zZXRfZXJyb3JfcmVhc29uABwUbGxodHRwX2dldF9lcnJvcl9wb3MAHRFsbGh0dHBfZXJybm9fbmFtZQAeEmxsaHR0cF9tZXRob2RfbmFtZQAfEmxsaHR0cF9zdGF0dXNfbmFtZQAgGmxsaHR0cF9zZXRfbGVu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PgtBhwEMPQtBiAEMPAtBiQEMOwtBigEMOgtBiwEMOQtBjAEMOAtBjQEMNwtBjgEMNgtBjwEMNQtBkAEMNAtBkQEMMwtBkgEMMgtBkwEMMQtBlAEMMAtBlQEMLwtBlgEMLgtBlwEMLQtBmAEMLAtBmQEMKwtBmgEMKgtBmwEMKQtBnAEMKAtBnQEMJwtBngEMJgtBnwEMJQtBoAEMJAtBoQEMIwtBogEMIgtBowEMIQtBpAEMIAtBpQEMHwtBpgEMHgtBpwEMHQtBqAEMHAtBqQEMGwtBqgEMGgtBqwEMGQtBrAEMGAtBrQEMFwtBrgEMFgtBAQwVC0GvAQwUC0GwAQwTC0GxAQwSC0GzAQwRC0GyAQwQC0G0AQwPC0G1AQwOC0G2AQwNC0G3AQwMC0G4AQwLC0G5AQwKC0G6AQwJC0G7AQwIC0HGAQwHC0G8AQwGC0G9AQwFC0G+AQwEC0G/AQwDC0HAAQwCC0HCAQwBC0HBAQshAwNAAkACQAJAAkACQAJAAkACQAJAIAICfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJ/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAgJ/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACfwJAAkACfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAC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iQEhAwykAgtBASABLQAAQd8ARw1nGiABQQFqIQEMXgtBigEhAyABIARGDaICIAIoAgAiACAEIAFraiEFIAEgAGtBAWohBgNAIAEtAAAgAEGMzwBqLQAARw1kIABBAUYN+gEgAEEBaiEAIAQgAUEBaiIBRw0ACyACIAU2AgAMogILQYsBIQMgASAERg2hAiACKAIAIgAgBCABa2ohBSABIABrQQJqIQYCQANAIAEtAAAgAEGOzwBqLQAARw1kIABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAyiAgsgAkEANgIAIAZBAWohAUECDGULQYwBIQMgASAERg2gAiACKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEHwzwBqLQAARw1jIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAyhAgsgAkEANgIAIAZBAWohAUEfDGQLQY0BIQMgASAERg2fAiACKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEHyzwBqLQAARw1iIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAygAgsgAkEANgIAIAZBAWohAUEJDGMLIAEgBEYEQEGOASEDDJ8CCwJAAkAgAS0AAEHJAGsOBwBiYmJiYgFiCyABQQFqIQFB+AAhAwyGAgsgAUEBaiEBQfkAIQMMhQILQY8BIQMgASAERg2dAiACKAIAIgAgBCABa2ohBSABIABrQQVqIQYCQANAIAEtAAAgAEGRzwBqLQAARw1gIABBBUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAyeAgsgAkEANgIAIAZBAWohAUEYDGELQZABIQMgASAERg2cAiACKAIAIgAgBCABa2ohBSABIABrQQJqIQYCQANAIAEtAAAgAEGXzwBqLQAARw1fIABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAydAgsgAkEANgIAIAZBAWohAUEXDGALQZEBIQMgASAERg2bAiACKAIAIgAgBCABa2ohBSABIABrQQZqIQYCQANAIAEtAAAgAEGazwBqLQAARw1eIABBBkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAycAgsgAkEANgIAIAZBAWohAUEV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JSIARQ0RIAJB5QA2AhwgAiABNgIUIAIgADYCDEEAIQMMtAELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0gIAJB0wA2AhwgAiABNgIUIAIgADYCDEEAIQMMswELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0iIAJB0gA2AhwgAiABNgIUIAIgADYCDEEAIQMMsgELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0OIAJB5QA2AhwgAiABNgIUIAIgADYCDEEAIQMMsQELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0dIAJB0wA2AhwgAiABNgIUIAIgADYCDEEAIQMMsAELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0fIAJB0gA2AhwgAiABNgIUIAIgADYCDEEAIQMMrwELIABBP0cNASABQQFqCyEBQQUhAwyUAQtBACEDIAJBADYCHCACIAE2AhQgAkH9EjYCECACQQc2AgwMrAELIAJBADYCHCACIAE2AhQgAkHcCDYCECACQQc2AgxBACEDDKsBCyACKAIEIQAgAkEANgIEIAIgACABECUiAEUNByACQeUANgIcIAIgATYCFCACIAA2AgxBACEDDKoBCyACKAIEIQAgAkEANgIEIAIgACABECUiAEUNFiACQdMANgIcIAIgATYCFCACIAA2AgxBACEDDKkBCyACKAIEIQAgAkEANgIEIAIgACABECUiAEUNGCACQdIANgIcIAIgATYCFCACIAA2AgxBACEDDKgBCyACQQA2AhwgAiABNgIUIAJBxgo2AhAgAkEHNgIMQQAhAwynAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDQMgAkHlADYCHCACIAE2AhQgAiAANgIMQQAhAwymAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDRIgAkHTADYCHCACIAE2AhQgAiAANgIMQQAhAwylAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDRQgAkHSADYCHCACIAE2AhQgAiAANgIMQQAhAwykAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDQAgAkHlADYCHCACIAE2AhQgAiAANgIMQQAhAwyjAQtB1QAhAwyJAQsgAEEVRwRAIAJBADYCHCACIAE2AhQgAkG5DTYCECACQRo2AgxB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AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIABB5ABrDvQDY2IAAWFhYWFhYQIDBAVhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhBgcICQoLDA0OD2FhYWFhEGFhYWFhYWFhYWFhEWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYRITFBUWFxgZGhthYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhHB0eHyAhIiMkJSYnKCkqKywtLi8wMTIzNDU2YTc4OTphYWFhYWFhYTthYWE8YWFhYT0+P2FhYWFhYWFhQGFhQWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYUJDREVGR0hJSktMTU5PUFFSU2FhYWFhYWFhVFVWV1hZWlthXF1hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFeYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhX2BhC0HhJw8LQaQhDwtByywPC0H+MQ8LQcAkDwtBqyQPC0GNKA8LQeImDwtBgDAPC0G5Lw8LQdckDwtB7x8PC0HhHw8LQfofDwtB8iAPC0GoLw8LQa4yDwtBiDAPC0HsJw8LQYIiDwtBjh0PC0HQLg8LQcojDwtBxTIPC0HfHA8LQdIcDwtBxCAPC0HXIA8LQaIfDwtB7S4PC0GrMA8LQdQlDwtBzC4PC0H6Lg8LQfwrDwtB0jAPC0HxHQ8LQbsgDwtB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CABB3AgLii1JbnZhbGlkIGNoYXIgaW4gdXJsIHF1ZXJ5AFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fYm9keQBDb250ZW50LUxlbmd0aCBvdmVyZmxvdwBDaHVuayBzaXplIG92ZXJmbG93AFJlc3BvbnNlIG92ZXJmbG93AEludmFsaWQgbWV0aG9kIGZvciBIVFRQL3gueCByZXF1ZXN0AEludmFsaWQgbWV0aG9kIGZvciBSVFNQL3gueCByZXF1ZXN0AEV4cGVjdGVkIFNPVVJDRSBtZXRob2QgZm9yIElDRS94LnggcmVxdWVzdABJbnZhbGlkIGNoYXIgaW4gdXJsIGZyYWdtZW50IHN0YXJ0AEV4cGVjdGVkIGRvdABTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3N0YXR1cwBJbnZhbGlkIHJlc3BvbnNlIHN0YXR1cwBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBleHRlbnNpb25zAFVzZXIgY2FsbGJhY2sgZXJyb3IAYG9uX3Jlc2V0YCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfaGVhZGVyYCBjYWxsYmFjayBlcnJvcgBgb25fbWVzc2FnZV9iZWdpbmAgY2FsbGJhY2sgZXJyb3IAYG9uX2NodW5rX2V4dGVuc2lvbl92YWx1ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX3N0YXR1c19jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX3ZlcnNpb25fY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl91cmxfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9jaHVua19jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2hlYWRlcl92YWx1ZV9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX21lc3NhZ2VfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9tZXRob2RfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9oZWFkZXJfZmllbGRfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9jaHVua19leHRlbnNpb25fbmFtZWAgY2FsbGJhY2sgZXJyb3IAVW5leHBlY3RlZCBjaGFyIGluIHVybCBzZXJ2ZXIASW52YWxpZCBoZWFkZXIgdmFsdWUgY2hhcgBJbnZhbGlkIGhlYWRlciBmaWVsZCBjaGFyAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fdmVyc2lvbgBJbnZhbGlkIG1pbm9yIHZlcnNpb24ASW52YWxpZCBtYWpvciB2ZXJzaW9uAEV4cGVjdGVkIHNwYWNlIGFmdGVyIHZlcnNpb24ARXhwZWN0ZWQgQ1JMRiBhZnRlciB2ZXJzaW9uAEludmFsaWQgSFRUUCB2ZXJzaW9uAEludmFsaWQgaGVhZGVyIHRva2VuAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fdXJsAEludmFsaWQgY2hhcmFjdGVycyBpbiB1cmwAVW5leHBlY3RlZCBzdGFydCBjaGFyIGluIHVybABEb3VibGUgQCBpbiB1cmwARW1wdHkgQ29udGVudC1MZW5ndGgASW52YWxpZCBjaGFyYWN0ZXIgaW4gQ29udGVudC1MZW5ndGgARHVwbGljYXRlIENvbnRlbnQtTGVuZ3RoAEludmFsaWQgY2hhciBpbiB1cmwgcGF0aABDb250ZW50LUxlbmd0aCBjYW4ndCBiZSBwcmVzZW50IHdpdGggVHJhbnNmZXItRW5jb2RpbmcASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgc2l6ZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2hlYWRlcl92YWx1ZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2NodW5rX2V4dGVuc2lvbl92YWx1ZQBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBleHRlbnNpb25zIHZhbHVlAE1pc3NpbmcgZXhwZWN0ZWQgTEYgYWZ0ZXIgaGVhZGVyIHZhbHVlAEludmFsaWQgYFRyYW5zZmVyLUVuY29kaW5nYCBoZWFkZXIgdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyBxdW90ZSB2YWx1ZQBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBleHRlbnNpb25zIHF1b3RlZCB2YWx1ZQBQYXVzZWQgYnkgb25faGVhZGVyc19jb21wbGV0ZQBJbnZhbGlkIEVPRiBzdGF0ZQBvbl9yZXNldCBwYXVzZQBvbl9jaHVua19oZWFkZXIgcGF1c2UAb25fbWVzc2FnZV9iZWdpbiBwYXVzZQBvbl9jaHVua19leHRlbnNpb25fdmFsdWUgcGF1c2UAb25fc3RhdHVzX2NvbXBsZXRlIHBhdXNlAG9uX3ZlcnNpb25fY29tcGxldGUgcGF1c2UAb25fdXJsX2NvbXBsZXRlIHBhdXNlAG9uX2NodW5rX2NvbXBsZXRlIHBhdXNlAG9uX2hlYWRlcl92YWx1ZV9jb21wbGV0ZSBwYXVzZQBvbl9tZXNzYWdlX2NvbXBsZXRlIHBhdXNlAG9uX21ldGhvZF9jb21wbGV0ZSBwYXVzZQBvbl9oZWFkZXJfZmllbGRfY29tcGxldGUgcGF1c2UAb25fY2h1bmtfZXh0ZW5zaW9uX25hbWUgcGF1c2UAVW5leHBlY3RlZCBzcGFjZSBhZnRlciBzdGFydCBsaW5lAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fY2h1bmtfZXh0ZW5zaW9uX25hbWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyBuYW1lAFBhdXNlIG9uIENPTk5FQ1QvVXBncmFkZQBQYXVzZSBvbiBQUkkvVXBncmFkZQBFeHBlY3RlZCBIVFRQLzIgQ29ubmVjdGlvbiBQcmVmYWNlAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fbWV0aG9kAEV4cGVjdGVkIHNwYWNlIGFmdGVyIG1ldGhvZABTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2hlYWRlcl9maWVsZABQYXVzZWQASW52YWxpZCB3b3JkIGVuY291bnRlcmVkAEludmFsaWQgbWV0aG9kIGVuY291bnRlcmVkAFVuZXhwZWN0ZWQgY2hhciBpbiB1cmwgc2NoZW1hAFJlcXVlc3QgaGFzIGludmFsaWQgYFRyYW5zZmVyLUVuY29kaW5nYABTV0lUQ0hfUFJPWFkAVVNFX1BST1hZAE1LQUNUSVZJVFkAVU5QUk9DRVNTQUJMRV9FTlRJVFkAQ09QWQBNT1ZFRF9QRVJNQU5FTlRMWQBUT09fRUFSTFkATk9USUZZAEZBSUxFRF9ERVBFTkRFTkNZAEJBRF9HQVRFV0FZAFBMQVkAUFVUAENIRUNLT1VUAEdBVEVXQVlfVElNRU9VVABSRVFVRVNUX1RJTUVPVVQATkVUV09SS19DT05ORUNUX1RJTUVPVVQAQ09OTkVDVElPTl9USU1FT1VUAExPR0lOX1RJTUVPVVQATkVUV09SS19SRUFEX1RJTUVPVVQAUE9TVABNSVNESVJFQ1RFRF9SRVFVRVNUAENMSUVOVF9DTE9TRURfUkVRVUVTVABDTElFTlRfQ0xPU0VEX0xPQURfQkFMQU5DRURfUkVRVUVTVABCQURfUkVRVUVTVABIVFRQX1JFUVVFU1RfU0VOVF9UT19IVFRQU19QT1JUAFJFUE9SVABJTV9BX1RFQVBPVABSRVNFVF9DT05URU5UAE5PX0NPTlRFTlQAUEFSVElBTF9DT05URU5UAEhQRV9JTlZBTElEX0NPTlNUQU5UAEhQRV9DQl9SRVNFVABHRVQASFBFX1NUUklDVABDT05GTElDVABURU1QT1JBUllfUkVESVJFQ1QAUEVSTUFORU5UX1JFRElSRUNUAENPTk5FQ1QATVVMVElfU1RBVFVTAEhQRV9JTlZBTElEX1NUQVRVUwBUT09fTUFOWV9SRVFVRVNUUwBFQVJMWV9ISU5UUwBVTkFWQUlMQUJMRV9GT1JfTEVHQUxfUkVBU09OUwBPUFRJT05TAFNXSVRDSElOR19QUk9UT0NPTFMAVkFSSUFOVF9BTFNPX05FR09USUFURVMATVVMVElQTEVfQ0hPSUNFUwBJTlRFUk5BTF9TRVJWRVJfRVJST1IAV0VCX1NFUlZFUl9VTktOT1dOX0VSUk9SAFJBSUxHVU5fRVJST1IASURFTlRJVFlfUFJPVklERVJfQVVUSEVOVElDQVRJT05fRVJST1IAU1NMX0NFUlRJRklDQVRFX0VSUk9SAElOVkFMSURfWF9GT1JXQVJERURfRk9SAFNFVF9QQVJBTUVURVIAR0VUX1BBUkFNRVRFUgBIUEVfVVNFUgBTRUVfT1RIRVIASFBFX0NCX0NIVU5LX0hFQURFUgBNS0NBTEVOREFSAFNFVFVQAFdFQl9TRVJWRVJfSVNfRE9XTgBURUFSRE9XTgBIUEVfQ0xPU0VEX0NPTk5FQ1RJT04ASEVVUklTVElDX0VYUElSQVRJT04ARElTQ09OTkVDVEVEX09QRVJBVElPTgBOT05fQVVUSE9SSVRBVElWRV9JTkZPUk1BVElPTgBIUEVfSU5WQUxJRF9WRVJTSU9OAEhQRV9DQl9NRVNTQUdFX0JFR0lOAFNJVEVfSVNfRlJPWkVOAEhQRV9JTlZBTElEX0hFQURFUl9UT0tFTgBJTlZBTElEX1RPS0VOAEZPUkJJRERFTgBFTkhBTkNFX1lPVVJfQ0FMTQBIUEVfSU5WQUxJRF9VUkwAQkxPQ0tFRF9CWV9QQVJFTlRBTF9DT05UUk9MAE1LQ09MAEFDTABIUEVfSU5URVJOQUwAUkVRVUVTVF9IRUFERVJfRklFTERTX1RPT19MQVJHRV9VTk9GRklDSUFMAEhQRV9PSwBVTkxJTksAVU5MT0NLAFBSSQBSRVRSWV9XSVRIAEhQRV9JTlZBTElEX0NPTlRFTlRfTEVOR1RIAEhQRV9VTkVYUEVDVEVEX0NPTlRFTlRfTEVOR1RIAEZMVVNIAFBST1BQQVRDSABNLVNFQVJDSABVUklfVE9PX0xPTkcAUFJPQ0VTU0lORwBNSVNDRUxMQU5FT1VTX1BFUlNJU1RFTlRfV0FSTklORwBNSVNDRUxMQU5FT1VTX1dBUk5JTkcASFBFX0lOVkFMSURfVFJBTlNGRVJfRU5DT0RJTkcARXhwZWN0ZWQgQ1JMRgBIUEVfSU5WQUxJRF9DSFVOS19TSVpFAE1PVkUAQ09OVElOVUUASFBFX0NCX1NUQVRVU19DT01QTEVURQBIUEVfQ0JfSEVBREVSU19DT01QTEVURQBIUEVfQ0JfVkVSU0lPTl9DT01QTEVURQBIUEVfQ0JfVVJMX0NPTVBMRVRFAEhQRV9DQl9DSFVOS19DT01QTEVURQBIUEVfQ0JfSEVBREVSX1ZBTFVFX0NPTVBMRVRFAEhQRV9DQl9DSFVOS19FWFRFTlNJT05fVkFMVUVfQ09NUExFVEUASFBFX0NCX0NIVU5LX0VYVEVOU0lPTl9OQU1FX0NPTVBMRVRFAEhQRV9DQl9NRVNTQUdFX0NPTVBMRVRFAEhQRV9DQl9NRVRIT0RfQ09NUExFVEUASFBFX0NCX0hFQURFUl9GSUVMRF9DT01QTEVURQBERUxFVEUASFBFX0lOVkFMSURfRU9GX1NUQVRFAElOVkFMSURfU1NMX0NFUlRJRklDQVRFAFBBVVNFAE5PX1JFU1BPTlNFAFVOU1VQUE9SVEVEX01FRElBX1RZUEUAR09ORQBOT1RfQUNDRVBUQUJMRQBTRVJWSUNFX1VOQVZBSUxBQkxFAFJBTkdFX05PVF9TQVRJU0ZJQUJMRQBPUklHSU5fSVNfVU5SRUFDSEFCTEUAUkVTUE9OU0VfSVNfU1RBTEUAUFVSR0UATUVSR0UAUkVRVUVTVF9IRUFERVJfRklFTERTX1RPT19MQVJHRQBSRVFVRVNUX0hFQURFUl9UT09fTEFSR0UAUEFZTE9BRF9UT09fTEFSR0UASU5TVUZGSUNJRU5UX1NUT1JBR0UASFBFX1BBVVNFRF9VUEdSQURFAEhQRV9QQVVTRURfSDJfVVBHUkFERQBTT1VSQ0UAQU5OT1VOQ0UAVFJBQ0UASFBFX1VORVhQRUNURURfU1BBQ0UAREVTQ1JJQkUAVU5TVUJTQ1JJQkUAUkVDT1JEAEhQRV9JTlZBTElEX01FVEhPRABOT1RfRk9VTkQAUFJPUEZJTkQAVU5CSU5EAFJFQklORABVTkFVVEhPUklaRUQATUVUSE9EX05PVF9BTExPV0VEAEhUVFBfVkVSU0lPTl9OT1RfU1VQUE9SVEVEAEFMUkVBRFlfUkVQT1JURUQAQUNDRVBURUQATk9UX0lNUExFTUVOVEVEAExPT1BfREVURUNURUQASFBFX0NSX0VYUEVDVEVEAEhQRV9MRl9FWFBFQ1RFRABDUkVBVEVEAElNX1VTRUQASFBFX1BBVVNFRABUSU1FT1VUX09DQ1VSRUQAUEFZTUVOVF9SRVFVSVJFRABQUkVDT05ESVRJT05fUkVRVUlSRUQAUFJPWFlfQVVUSEVOVElDQVRJT05fUkVRVUlSRUQATkVUV09SS19BVVRIRU5USUNBVElPTl9SRVFVSVJFRABMRU5HVEhfUkVRVUlSRUQAU1NMX0NFUlRJRklDQVRFX1JFUVVJUkVEAFVQR1JBREVfUkVRVUlSRUQAUEFHRV9FWFBJUkVEAFBSRUNPTkRJVElPTl9GQUlMRUQARVhQRUNUQVRJT05fRkFJTEVEAFJFVkFMSURBVElPTl9GQUlMRUQAU1NMX0hBTkRTSEFLRV9GQUlMRUQATE9DS0VEAFRSQU5TRk9STUFUSU9OX0FQUExJRUQATk9UX01PRElGSUVEAE5PVF9FWFRFTkRFRABCQU5EV0lEVEhfTElNSVRfRVhDRUVERUQAU0lURV9JU19PVkVSTE9BREVEAEhFQUQARXhwZWN0ZWQgSFRUUC8AAF4TAAAmEwAAMBAAAPAXAACdEwAAFRIAADkXAADwEgAAChAAAHUSAACtEgAAghMAAE8UAAB/EAAAoBUAACMUAACJEgAAixQAAE0VAADUEQAAzxQAABAYAADJFgAA3BYAAMERAADgFwAAuxQAAHQUAAB8FQAA5RQAAAgXAAAfEAAAZRUAAKMUAAAoFQAAAhUAAJkVAAAsEAAAixkAAE8PAADUDgAAahAAAM4QAAACFwAAiQ4AAG4TAAAcEwAAZhQAAFYXAADBEwAAzRMAAGwTAABoFwAAZhcAAF8XAAAiEwAAzg8AAGkOAADYDgAAYxYAAMsTAACqDgAAKBcAACYXAADFEwAAXRYAAOgRAABnEwAAZRMAAPIWAABzEwAAHRcAAPkWAADzEQAAzw4AAM4VAAAMEgAAsxEAAKURAABhEAAAMhcAALsTAEH5NQsBAQBBkDYL4AEBAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBB/TcLAQEAQZE4C14CAwICAgICAAACAgACAgACAgICAgICAgICAAQAAAAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAAgACAEH9OQsBAQBBkToLXgIAAgICAgIAAAICAAICAAICAgICAgICAgIAAwAEAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgIAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgICAgACAAIAQfA7Cw1sb3NlZWVwLWFsaXZlAEGJPAsBAQBBoDwL4AEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBBiT4LAQEAQaA+C+cBAQEBAQEBAQEBAQEBAgEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQFjaHVua2VkAEGwwAALXwEBAAEBAQEBAAABAQABAQABAQEBAQEBAQEBAAAAAAAAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQABAEGQwgALIWVjdGlvbmVudC1sZW5ndGhvbnJveHktY29ubmVjdGlvbgBBwMIACy1yYW5zZmVyLWVuY29kaW5ncGdyYWRlDQoNCg0KU00NCg0KVFRQL0NFL1RTUC8AQfnCAAsFAQIAAQMAQZDDAAvgAQQBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAEH5xAALBQECAAEDAEGQxQAL4AEEAQEFAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBB+cYACwQBAAABAEGRxwAL3wEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAEH6yAALBAEAAAIAQZDJAAtfAwQAAAQEBAQEBAQEBAQEBQQEBAQEBAQEBAQEBAAEAAYHBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQABAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAQAQfrKAAsEAQAAAQBBkMsACwEBAEGqywALQQIAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAEH6zAALBAEAAAEAQZDNAAsBAQBBms0ACwYCAAAAAAIAQbHNAAs6AwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwBB8M4AC5YBTk9VTkNFRUNLT1VUTkVDVEVURUNSSUJFTFVTSEVURUFEU0VBUkNIUkdFQ1RJVklUWUxFTkRBUlZFT1RJRllQVElPTlNDSFNFQVlTVEFUQ0hHRU9SRElSRUNUT1JUUkNIUEFSQU1FVEVSVVJDRUJTQ1JJQkVBUkRPV05BQ0VJTkROS0NLVUJTQ1JJQkVIVFRQL0FEVFAv", "base64"); } }); // node_modules/undici/lib/llhttp/llhttp_simd-wasm.js var require_llhttp_simd_wasm = __commonJS({ "node_modules/undici/lib/llhttp/llhttp_simd-wasm.js"(exports2, module2) { "use strict"; var { Buffer: Buffer2 } = require("node:buffer"); module2.exports = Buffer2.from("AGFzbQEAAAABJwdgAX8Bf2ADf39/AX9gAX8AYAJ/fwBgBH9/f38Bf2AAAGADf39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQAEA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAAy0sBQYAAAIAAAAAAAACAQIAAgICAAADAAAAAAMDAwMBAQEBAQEBAQEAAAIAAAAEBQFwARISBQMBAAIGCAF/AUGA1AQLB9EFIgZtZW1vcnkCAAtfaW5pdGlhbGl6ZQAIGV9faW5kaXJlY3RfZnVuY3Rpb25fdGFibGUBAAtsbGh0dHBfaW5pdAAJGGxsaHR0cF9zaG91bGRfa2VlcF9hbGl2ZQAvDGxsaHR0cF9hbGxvYwALBm1hbGxvYwAxC2xsaHR0cF9mcmVlAAwEZnJlZQAMD2xsaHR0cF9nZXRfdHlwZQANFWxsaHR0cF9nZXRfaHR0cF9tYWpvcgAOFWxsaHR0cF9nZXRfaHR0cF9taW5vcgAPEWxsaHR0cF9nZXRfbWV0aG9kABAWbGxodHRwX2dldF9zdGF0dXNfY29kZQAREmxsaHR0cF9nZXRfdXBncmFkZQASDGxsaHR0cF9yZXNldAATDmxsaHR0cF9leGVjdXRlABQUbGxodHRwX3NldHRpbmdzX2luaXQAFQ1sbGh0dHBfZmluaXNoABYMbGxodHRwX3BhdXNlABcNbGxodHRwX3Jlc3VtZQAYG2xsaHR0cF9yZXN1bWVfYWZ0ZXJfdXBncmFkZQAZEGxsaHR0cF9nZXRfZXJybm8AGhdsbGh0dHBfZ2V0X2Vycm9yX3JlYXNvbgAbF2xsaHR0cF9zZXRfZXJyb3JfcmVhc29uABwUbGxodHRwX2dldF9lcnJvcl9wb3MAHRFsbGh0dHBfZXJybm9fbmFtZQAeEmxsaHR0cF9tZXRob2RfbmFtZQAfEmxsaHR0cF9zdGF0dXNfbmFtZQAgGmxsaHR0cF9zZXRfbGVu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PgtBhwEMPQtBiAEMPAtBiQEMOwtBigEMOgtBiwEMOQtBjAEMOAtBjQEMNwtBjgEMNgtBjwEMNQtBkAEMNAtBkQEMMwtBkgEMMgtBkwEMMQtBlAEMMAtBlQEMLwtBlgEMLgtBlwEMLQtBmAEMLAtBmQEMKwtBmgEMKgtBmwEMKQtBnAEMKAtBnQEMJwtBngEMJgtBnwEMJQtBoAEMJAtBoQEMIwtBogEMIgtBowEMIQtBpAEMIAtBpQEMHwtBpgEMHgtBpwEMHQtBqAEMHAtBqQEMGwtBqgEMGgtBqwEMGQtBrAEMGAtBrQEMFwtBrgEMFgtBAQwVC0GvAQwUC0GwAQwTC0GxAQwSC0GzAQwRC0GyAQwQC0G0AQwPC0G1AQwOC0G2AQwNC0G3AQwMC0G4AQwLC0G5AQwKC0G6AQwJC0G7AQwIC0HGAQwHC0G8AQwGC0G9AQwFC0G+AQwEC0G/AQwDC0HAAQwCC0HCAQwBC0HBAQshAwNAAkACQAJAAkACQAJAAkACQAJAIAICfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJ/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAgJ/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACfwJAAkACfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAC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iQEhAwykAgtBASABLQAAQd8ARw1nGiABQQFqIQEMXgtBigEhAyABIARGDaICIAIoAgAiACAEIAFraiEFIAEgAGtBAWohBgNAIAEtAAAgAEGMzwBqLQAARw1kIABBAUYN+gEgAEEBaiEAIAQgAUEBaiIBRw0ACyACIAU2AgAMogILQYsBIQMgASAERg2hAiACKAIAIgAgBCABa2ohBSABIABrQQJqIQYCQANAIAEtAAAgAEGOzwBqLQAARw1kIABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAyiAgsgAkEANgIAIAZBAWohAUECDGULQYwBIQMgASAERg2gAiACKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEHwzwBqLQAARw1jIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAyhAgsgAkEANgIAIAZBAWohAUEfDGQLQY0BIQMgASAERg2fAiACKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEHyzwBqLQAARw1iIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAygAgsgAkEANgIAIAZBAWohAUEJDGMLIAEgBEYEQEGOASEDDJ8CCwJAAkAgAS0AAEHJAGsOBwBiYmJiYgFiCyABQQFqIQFB+AAhAwyGAgsgAUEBaiEBQfkAIQMMhQILQY8BIQMgASAERg2dAiACKAIAIgAgBCABa2ohBSABIABrQQVqIQYCQANAIAEtAAAgAEGRzwBqLQAARw1gIABBBUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAyeAgsgAkEANgIAIAZBAWohAUEYDGELQZABIQMgASAERg2cAiACKAIAIgAgBCABa2ohBSABIABrQQJqIQYCQANAIAEtAAAgAEGXzwBqLQAARw1fIABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAydAgsgAkEANgIAIAZBAWohAUEXDGALQZEBIQMgASAERg2bAiACKAIAIgAgBCABa2ohBSABIABrQQZqIQYCQANAIAEtAAAgAEGazwBqLQAARw1eIABBBkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAycAgsgAkEANgIAIAZBAWohAUEV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JSIARQ0RIAJB5QA2AhwgAiABNgIUIAIgADYCDEEAIQMMtAELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0gIAJB0wA2AhwgAiABNgIUIAIgADYCDEEAIQMMswELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0iIAJB0gA2AhwgAiABNgIUIAIgADYCDEEAIQMMsgELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0OIAJB5QA2AhwgAiABNgIUIAIgADYCDEEAIQMMsQELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0dIAJB0wA2AhwgAiABNgIUIAIgADYCDEEAIQMMsAELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0fIAJB0gA2AhwgAiABNgIUIAIgADYCDEEAIQMMrwELIABBP0cNASABQQFqCyEBQQUhAwyUAQtBACEDIAJBADYCHCACIAE2AhQgAkH9EjYCECACQQc2AgwMrAELIAJBADYCHCACIAE2AhQgAkHcCDYCECACQQc2AgxBACEDDKsBCyACKAIEIQAgAkEANgIEIAIgACABECUiAEUNByACQeUANgIcIAIgATYCFCACIAA2AgxBACEDDKoBCyACKAIEIQAgAkEANgIEIAIgACABECUiAEUNFiACQdMANgIcIAIgATYCFCACIAA2AgxBACEDDKkBCyACKAIEIQAgAkEANgIEIAIgACABECUiAEUNGCACQdIANgIcIAIgATYCFCACIAA2AgxBACEDDKgBCyACQQA2AhwgAiABNgIUIAJBxgo2AhAgAkEHNgIMQQAhAwynAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDQMgAkHlADYCHCACIAE2AhQgAiAANgIMQQAhAwymAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDRIgAkHTADYCHCACIAE2AhQgAiAANgIMQQAhAwylAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDRQgAkHSADYCHCACIAE2AhQgAiAANgIMQQAhAwykAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDQAgAkHlADYCHCACIAE2AhQgAiAANgIMQQAhAwyjAQtB1QAhAwyJAQsgAEEVRwRAIAJBADYCHCACIAE2AhQgAkG5DTYCECACQRo2AgxB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AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIABB5ABrDvQDY2IAAWFhYWFhYQIDBAVhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhBgcICQoLDA0OD2FhYWFhEGFhYWFhYWFhYWFhEWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYRITFBUWFxgZGhthYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhHB0eHyAhIiMkJSYnKCkqKywtLi8wMTIzNDU2YTc4OTphYWFhYWFhYTthYWE8YWFhYT0+P2FhYWFhYWFhQGFhQWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYUJDREVGR0hJSktMTU5PUFFSU2FhYWFhYWFhVFVWV1hZWlthXF1hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFeYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhX2BhC0HhJw8LQaQhDwtByywPC0H+MQ8LQcAkDwtBqyQPC0GNKA8LQeImDwtBgDAPC0G5Lw8LQdckDwtB7x8PC0HhHw8LQfofDwtB8iAPC0GoLw8LQa4yDwtBiDAPC0HsJw8LQYIiDwtBjh0PC0HQLg8LQcojDwtBxTIPC0HfHA8LQdIcDwtBxCAPC0HXIA8LQaIfDwtB7S4PC0GrMA8LQdQlDwtBzC4PC0H6Lg8LQfwrDwtB0jAPC0HxHQ8LQbsgDwtB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AAADAEGUCAsFBAAAAAUAQaQICwkGAAAABwAAAAgAQdwIC4otSW52YWxpZCBjaGFyIGluIHVybCBxdWVyeQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2JvZHkAQ29udGVudC1MZW5ndGggb3ZlcmZsb3cAQ2h1bmsgc2l6ZSBvdmVyZmxvdwBSZXNwb25zZSBvdmVyZmxvdwBJbnZhbGlkIG1ldGhvZCBmb3IgSFRUUC94LnggcmVxdWVzdABJbnZhbGlkIG1ldGhvZCBmb3IgUlRTUC94LnggcmVxdWVzdABFeHBlY3RlZCBTT1VSQ0UgbWV0aG9kIGZvciBJQ0UveC54IHJlcXVlc3QASW52YWxpZCBjaGFyIGluIHVybCBmcmFnbWVudCBzdGFydABFeHBlY3RlZCBkb3QAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9zdGF0dXMASW52YWxpZCByZXNwb25zZSBzdGF0dXMASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucwBVc2VyIGNhbGxiYWNrIGVycm9yAGBvbl9yZXNldGAgY2FsbGJhY2sgZXJyb3IAYG9uX2NodW5rX2hlYWRlcmAgY2FsbGJhY2sgZXJyb3IAYG9uX21lc3NhZ2VfYmVnaW5gIGNhbGxiYWNrIGVycm9yAGBvbl9jaHVua19leHRlbnNpb25fdmFsdWVgIGNhbGxiYWNrIGVycm9yAGBvbl9zdGF0dXNfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl92ZXJzaW9uX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fdXJsX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9oZWFkZXJfdmFsdWVfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9tZXNzYWdlX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fbWV0aG9kX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25faGVhZGVyX2ZpZWxkX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfZXh0ZW5zaW9uX25hbWVgIGNhbGxiYWNrIGVycm9yAFVuZXhwZWN0ZWQgY2hhciBpbiB1cmwgc2VydmVyAEludmFsaWQgaGVhZGVyIHZhbHVlIGNoYXIASW52YWxpZCBoZWFkZXIgZmllbGQgY2hhcgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3ZlcnNpb24ASW52YWxpZCBtaW5vciB2ZXJzaW9uAEludmFsaWQgbWFqb3IgdmVyc2lvbgBFeHBlY3RlZCBzcGFjZSBhZnRlciB2ZXJzaW9uAEV4cGVjdGVkIENSTEYgYWZ0ZXIgdmVyc2lvbgBJbnZhbGlkIEhUVFAgdmVyc2lvbgBJbnZhbGlkIGhlYWRlciB0b2tlbgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3VybABJbnZhbGlkIGNoYXJhY3RlcnMgaW4gdXJsAFVuZXhwZWN0ZWQgc3RhcnQgY2hhciBpbiB1cmwARG91YmxlIEAgaW4gdXJsAEVtcHR5IENvbnRlbnQtTGVuZ3RoAEludmFsaWQgY2hhcmFjdGVyIGluIENvbnRlbnQtTGVuZ3RoAER1cGxpY2F0ZSBDb250ZW50LUxlbmd0aABJbnZhbGlkIGNoYXIgaW4gdXJsIHBhdGgAQ29udGVudC1MZW5ndGggY2FuJ3QgYmUgcHJlc2VudCB3aXRoIFRyYW5zZmVyLUVuY29kaW5nAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIHNpemUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfdmFsdWUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9jaHVua19leHRlbnNpb25fdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyB2YWx1ZQBNaXNzaW5nIGV4cGVjdGVkIExGIGFmdGVyIGhlYWRlciB2YWx1ZQBJbnZhbGlkIGBUcmFuc2Zlci1FbmNvZGluZ2AgaGVhZGVyIHZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgcXVvdGUgdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyBxdW90ZWQgdmFsdWUAUGF1c2VkIGJ5IG9uX2hlYWRlcnNfY29tcGxldGUASW52YWxpZCBFT0Ygc3RhdGUAb25fcmVzZXQgcGF1c2UAb25fY2h1bmtfaGVhZGVyIHBhdXNlAG9uX21lc3NhZ2VfYmVnaW4gcGF1c2UAb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlIHBhdXNlAG9uX3N0YXR1c19jb21wbGV0ZSBwYXVzZQBvbl92ZXJzaW9uX2NvbXBsZXRlIHBhdXNlAG9uX3VybF9jb21wbGV0ZSBwYXVzZQBvbl9jaHVua19jb21wbGV0ZSBwYXVzZQBvbl9oZWFkZXJfdmFsdWVfY29tcGxldGUgcGF1c2UAb25fbWVzc2FnZV9jb21wbGV0ZSBwYXVzZQBvbl9tZXRob2RfY29tcGxldGUgcGF1c2UAb25faGVhZGVyX2ZpZWxkX2NvbXBsZXRlIHBhdXNlAG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lIHBhdXNlAFVuZXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgc3RhcnQgbGluZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgbmFtZQBQYXVzZSBvbiBDT05ORUNUL1VwZ3JhZGUAUGF1c2Ugb24gUFJJL1VwZ3JhZGUARXhwZWN0ZWQgSFRUUC8yIENvbm5lY3Rpb24gUHJlZmFjZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX21ldGhvZABFeHBlY3RlZCBzcGFjZSBhZnRlciBtZXRob2QAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfZmllbGQAUGF1c2VkAEludmFsaWQgd29yZCBlbmNvdW50ZXJlZABJbnZhbGlkIG1ldGhvZCBlbmNvdW50ZXJlZABVbmV4cGVjdGVkIGNoYXIgaW4gdXJsIHNjaGVtYQBSZXF1ZXN0IGhhcyBpbnZhbGlkIGBUcmFuc2Zlci1FbmNvZGluZ2AAU1dJVENIX1BST1hZAFVTRV9QUk9YWQBNS0FDVElWSVRZAFVOUFJPQ0VTU0FCTEVfRU5USVRZAENPUFkATU9WRURfUEVSTUFORU5UTFkAVE9PX0VBUkxZAE5PVElGWQBGQUlMRURfREVQRU5ERU5DWQBCQURfR0FURVdBWQBQTEFZAFBVVABDSEVDS09VVABHQVRFV0FZX1RJTUVPVVQAUkVRVUVTVF9USU1FT1VUAE5FVFdPUktfQ09OTkVDVF9USU1FT1VUAENPTk5FQ1RJT05fVElNRU9VVABMT0dJTl9USU1FT1VUAE5FVFdPUktfUkVBRF9USU1FT1VUAFBPU1QATUlTRElSRUNURURfUkVRVUVTVABDTElFTlRfQ0xPU0VEX1JFUVVFU1QAQ0xJRU5UX0NMT1NFRF9MT0FEX0JBTEFOQ0VEX1JFUVVFU1QAQkFEX1JFUVVFU1QASFRUUF9SRVFVRVNUX1NFTlRfVE9fSFRUUFNfUE9SVABSRVBPUlQASU1fQV9URUFQT1QAUkVTRVRfQ09OVEVOVABOT19DT05URU5UAFBBUlRJQUxfQ09OVEVOVABIUEVfSU5WQUxJRF9DT05TVEFOVABIUEVfQ0JfUkVTRVQAR0VUAEhQRV9TVFJJQ1QAQ09ORkxJQ1QAVEVNUE9SQVJZX1JFRElSRUNUAFBFUk1BTkVOVF9SRURJUkVDVABDT05ORUNUAE1VTFRJX1NUQVRVUwBIUEVfSU5WQUxJRF9TVEFUVVMAVE9PX01BTllfUkVRVUVTVFMARUFSTFlfSElOVFMAVU5BVkFJTEFCTEVfRk9SX0xFR0FMX1JFQVNPTlMAT1BUSU9OUwBTV0lUQ0hJTkdfUFJPVE9DT0xTAFZBUklBTlRfQUxTT19ORUdPVElBVEVTAE1VTFRJUExFX0NIT0lDRVMASU5URVJOQUxfU0VSVkVSX0VSUk9SAFdFQl9TRVJWRVJfVU5LTk9XTl9FUlJPUgBSQUlMR1VOX0VSUk9SAElERU5USVRZX1BST1ZJREVSX0FVVEhFTlRJQ0FUSU9OX0VSUk9SAFNTTF9DRVJUSUZJQ0FURV9FUlJPUgBJTlZBTElEX1hfRk9SV0FSREVEX0ZPUgBTRVRfUEFSQU1FVEVSAEdFVF9QQVJBTUVURVIASFBFX1VTRVIAU0VFX09USEVSAEhQRV9DQl9DSFVOS19IRUFERVIATUtDQUxFTkRBUgBTRVRVUABXRUJfU0VSVkVSX0lTX0RPV04AVEVBUkRPV04ASFBFX0NMT1NFRF9DT05ORUNUSU9OAEhFVVJJU1RJQ19FWFBJUkFUSU9OAERJU0NPTk5FQ1RFRF9PUEVSQVRJT04ATk9OX0FVVEhPUklUQVRJVkVfSU5GT1JNQVRJT04ASFBFX0lOVkFMSURfVkVSU0lPTgBIUEVfQ0JfTUVTU0FHRV9CRUdJTgBTSVRFX0lTX0ZST1pFTgBIUEVfSU5WQUxJRF9IRUFERVJfVE9LRU4ASU5WQUxJRF9UT0tFTgBGT1JCSURERU4ARU5IQU5DRV9ZT1VSX0NBTE0ASFBFX0lOVkFMSURfVVJMAEJMT0NLRURfQllfUEFSRU5UQUxfQ09OVFJPTABNS0NPTABBQ0wASFBFX0lOVEVSTkFMAFJFUVVFU1RfSEVBREVSX0ZJRUxEU19UT09fTEFSR0VfVU5PRkZJQ0lBTABIUEVfT0sAVU5MSU5LAFVOTE9DSwBQUkkAUkVUUllfV0lUSABIUEVfSU5WQUxJRF9DT05URU5UX0xFTkdUSABIUEVfVU5FWFBFQ1RFRF9DT05URU5UX0xFTkdUSABGTFVTSABQUk9QUEFUQ0gATS1TRUFSQ0gAVVJJX1RPT19MT05HAFBST0NFU1NJTkcATUlTQ0VMTEFORU9VU19QRVJTSVNURU5UX1dBUk5JTkcATUlTQ0VMTEFORU9VU19XQVJOSU5HAEhQRV9JTlZBTElEX1RSQU5TRkVSX0VOQ09ESU5HAEV4cGVjdGVkIENSTEYASFBFX0lOVkFMSURfQ0hVTktfU0laRQBNT1ZFAENPTlRJTlVFAEhQRV9DQl9TVEFUVVNfQ09NUExFVEUASFBFX0NCX0hFQURFUlNfQ09NUExFVEUASFBFX0NCX1ZFUlNJT05fQ09NUExFVEUASFBFX0NCX1VSTF9DT01QTEVURQBIUEVfQ0JfQ0hVTktfQ09NUExFVEUASFBFX0NCX0hFQURFUl9WQUxVRV9DT01QTEVURQBIUEVfQ0JfQ0hVTktfRVhURU5TSU9OX1ZBTFVFX0NPTVBMRVRFAEhQRV9DQl9DSFVOS19FWFRFTlNJT05fTkFNRV9DT01QTEVURQBIUEVfQ0JfTUVTU0FHRV9DT01QTEVURQBIUEVfQ0JfTUVUSE9EX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJfRklFTERfQ09NUExFVEUAREVMRVRFAEhQRV9JTlZBTElEX0VPRl9TVEFURQBJTlZBTElEX1NTTF9DRVJUSUZJQ0FURQBQQVVTRQBOT19SRVNQT05TRQBVTlNVUFBPUlRFRF9NRURJQV9UWVBFAEdPTkUATk9UX0FDQ0VQVEFCTEUAU0VSVklDRV9VTkFWQUlMQUJMRQBSQU5HRV9OT1RfU0FUSVNGSUFCTEUAT1JJR0lOX0lTX1VOUkVBQ0hBQkxFAFJFU1BPTlNFX0lTX1NUQUxFAFBVUkdFAE1FUkdFAFJFUVVFU1RfSEVBREVSX0ZJRUxEU19UT09fTEFSR0UAUkVRVUVTVF9IRUFERVJfVE9PX0xBUkdFAFBBWUxPQURfVE9PX0xBUkdFAElOU1VGRklDSUVOVF9TVE9SQUdFAEhQRV9QQVVTRURfVVBHUkFERQBIUEVfUEFVU0VEX0gyX1VQR1JBREUAU09VUkNFAEFOTk9VTkNFAFRSQUNFAEhQRV9VTkVYUEVDVEVEX1NQQUNFAERFU0NSSUJFAFVOU1VCU0NSSUJFAFJFQ09SRABIUEVfSU5WQUxJRF9NRVRIT0QATk9UX0ZPVU5EAFBST1BGSU5EAFVOQklORABSRUJJTkQAVU5BVVRIT1JJWkVEAE1FVEhPRF9OT1RfQUxMT1dFRABIVFRQX1ZFUlNJT05fTk9UX1NVUFBPUlRFRABBTFJFQURZX1JFUE9SVEVEAEFDQ0VQVEVEAE5PVF9JTVBMRU1FTlRFRABMT09QX0RFVEVDVEVEAEhQRV9DUl9FWFBFQ1RFRABIUEVfTEZfRVhQRUNURUQAQ1JFQVRFRABJTV9VU0VEAEhQRV9QQVVTRUQAVElNRU9VVF9PQ0NVUkVEAFBBWU1FTlRfUkVRVUlSRUQAUFJFQ09ORElUSU9OX1JFUVVJUkVEAFBST1hZX0FVVEhFTlRJQ0FUSU9OX1JFUVVJUkVEAE5FVFdPUktfQVVUSEVOVElDQVRJT05fUkVRVUlSRUQATEVOR1RIX1JFUVVJUkVEAFNTTF9DRVJUSUZJQ0FURV9SRVFVSVJFRABVUEdSQURFX1JFUVVJUkVEAFBBR0VfRVhQSVJFRABQUkVDT05ESVRJT05fRkFJTEVEAEVYUEVDVEFUSU9OX0ZBSUxFRABSRVZBTElEQVRJT05fRkFJTEVEAFNTTF9IQU5EU0hBS0VfRkFJTEVEAExPQ0tFRABUUkFOU0ZPUk1BVElPTl9BUFBMSUVEAE5PVF9NT0RJRklFRABOT1RfRVhURU5ERUQAQkFORFdJRFRIX0xJTUlUX0VYQ0VFREVEAFNJVEVfSVNfT1ZFUkxPQURFRABIRUFEAEV4cGVjdGVkIEhUVFAvAABeEwAAJhMAADAQAADwFwAAnRMAABUSAAA5FwAA8BIAAAoQAAB1EgAArRIAAIITAABPFAAAfxAAAKAVAAAjFAAAiRIAAIsUAABNFQAA1BEAAM8UAAAQGAAAyRYAANwWAADBEQAA4BcAALsUAAB0FAAAfBUAAOUUAAAIFwAAHxAAAGUVAACjFAAAKBUAAAIVAACZFQAALBAAAIsZAABPDwAA1A4AAGoQAADOEAAAAhcAAIkOAABuEwAAHBMAAGYUAABWFwAAwRMAAM0TAABsEwAAaBcAAGYXAABfFwAAIhMAAM4PAABpDgAA2A4AAGMWAADLEwAAqg4AACgXAAAmFwAAxRMAAF0WAADoEQAAZxMAAGUTAADyFgAAcxMAAB0XAAD5FgAA8xEAAM8OAADOFQAADBIAALMRAAClEQAAYRAAADIXAAC7EwBB+TULAQEAQZA2C+ABAQECAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAQf03CwEBAEGROAteAgMCAgICAgAAAgIAAgIAAgICAgICAgICAgAEAAAAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAgICAAIAAgBB/TkLAQEAQZE6C14CAAICAgICAAACAgACAgACAgICAgICAgICAAMABAAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAAgACAEHwOwsNbG9zZWVlcC1hbGl2ZQBBiTwLAQEAQaA8C+ABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAQYk+CwEBAEGgPgvnAQEBAQEBAQEBAQEBAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBY2h1bmtlZABBsMAAC18BAQABAQEBAQAAAQEAAQEAAQEBAQEBAQEBAQAAAAAAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQBBkMIACyFlY3Rpb25lbnQtbGVuZ3Rob25yb3h5LWNvbm5lY3Rpb24AQcDCAAstcmFuc2Zlci1lbmNvZGluZ3BncmFkZQ0KDQoNClNNDQoNClRUUC9DRS9UU1AvAEH5wgALBQECAAEDAEGQwwAL4AEEAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBB+cQACwUBAgABAwBBkMUAC+ABBAEBBQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAQfnGAAsEAQAAAQBBkccAC98BAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBB+sgACwQBAAACAEGQyQALXwMEAAAEBAQEBAQEBAQEBAUEBAQEBAQEBAQEBAQABAAGBwQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEAEH6ygALBAEAAAEAQZDLAAsBAQBBqssAC0ECAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwBB+swACwQBAAABAEGQzQALAQEAQZrNAAsGAgAAAAACAEGxzQALOgMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAQfDOAAuWAU5PVU5DRUVDS09VVE5FQ1RFVEVDUklCRUxVU0hFVEVBRFNFQVJDSFJHRUNUSVZJVFlMRU5EQVJWRU9USUZZUFRJT05TQ0hTRUFZU1RBVENIR0VPUkRJUkVDVE9SVFJDSFBBUkFNRVRFUlVSQ0VCU0NSSUJFQVJET1dOQUNFSU5ETktDS1VCU0NSSUJFSFRUUC9BRFRQLw==", "base64"); } }); // node_modules/undici/lib/web/fetch/constants.js var require_constants3 = __commonJS({ "node_modules/undici/lib/web/fetch/constants.js"(exports2, module2) { "use strict"; var corsSafeListedMethods = ( /** @type {const} */ ["GET", "HEAD", "POST"] ); var corsSafeListedMethodsSet = new Set(corsSafeListedMethods); var nullBodyStatus = ( /** @type {const} */ [101, 204, 205, 304] ); var redirectStatus = ( /** @type {const} */ [301, 302, 303, 307, 308] ); var redirectStatusSet = new Set(redirectStatus); var badPorts = ( /** @type {const} */ [ "1", "7", "9", "11", "13", "15", "17", "19", "20", "21", "22", "23", "25", "37", "42", "43", "53", "69", "77", "79", "87", "95", "101", "102", "103", "104", "109", "110", "111", "113", "115", "117", "119", "123", "135", "137", "139", "143", "161", "179", "389", "427", "465", "512", "513", "514", "515", "526", "530", "531", "532", "540", "548", "554", "556", "563", "587", "601", "636", "989", "990", "993", "995", "1719", "1720", "1723", "2049", "3659", "4045", "4190", "5060", "5061", "6000", "6566", "6665", "6666", "6667", "6668", "6669", "6679", "6697", "10080" ] ); var badPortsSet = new Set(badPorts); var referrerPolicy = ( /** @type {const} */ [ "", "no-referrer", "no-referrer-when-downgrade", "same-origin", "origin", "strict-origin", "origin-when-cross-origin", "strict-origin-when-cross-origin", "unsafe-url" ] ); var referrerPolicySet = new Set(referrerPolicy); var requestRedirect = ( /** @type {const} */ ["follow", "manual", "error"] ); var safeMethods = ( /** @type {const} */ ["GET", "HEAD", "OPTIONS", "TRACE"] ); var safeMethodsSet = new Set(safeMethods); var requestMode = ( /** @type {const} */ ["navigate", "same-origin", "no-cors", "cors"] ); var requestCredentials = ( /** @type {const} */ ["omit", "same-origin", "include"] ); var requestCache = ( /** @type {const} */ [ "default", "no-store", "reload", "no-cache", "force-cache", "only-if-cached" ] ); var requestBodyHeader = ( /** @type {const} */ [ "content-encoding", "content-language", "content-location", "content-type", // See https://github.com/nodejs/undici/issues/2021 // 'Content-Length' is a forbidden header name, which is typically // removed in the Headers implementation. However, undici doesn't // filter out headers, so we add it here. "content-length" ] ); var requestDuplex = ( /** @type {const} */ [ "half" ] ); var forbiddenMethods = ( /** @type {const} */ ["CONNECT", "TRACE", "TRACK"] ); var forbiddenMethodsSet = new Set(forbiddenMethods); var subresource = ( /** @type {const} */ [ "audio", "audioworklet", "font", "image", "manifest", "paintworklet", "script", "style", "track", "video", "xslt", "" ] ); var subresourceSet = new Set(subresource); module2.exports = { subresource, forbiddenMethods, requestBodyHeader, referrerPolicy, requestRedirect, requestMode, requestCredentials, requestCache, redirectStatus, corsSafeListedMethods, nullBodyStatus, safeMethods, badPorts, requestDuplex, subresourceSet, badPortsSet, redirectStatusSet, corsSafeListedMethodsSet, safeMethodsSet, forbiddenMethodsSet, referrerPolicySet }; } }); // node_modules/undici/lib/web/fetch/global.js var require_global = __commonJS({ "node_modules/undici/lib/web/fetch/global.js"(exports2, module2) { "use strict"; var globalOrigin = Symbol.for("undici.globalOrigin.1"); function getGlobalOrigin() { return globalThis[globalOrigin]; } function setGlobalOrigin(newOrigin) { if (newOrigin === void 0) { Object.defineProperty(globalThis, globalOrigin, { value: void 0, writable: true, enumerable: false, configurable: false }); return; } const parsedURL = new URL(newOrigin); if (parsedURL.protocol !== "http:" && parsedURL.protocol !== "https:") { throw new TypeError(`Only http & https urls are allowed, received ${parsedURL.protocol}`); } Object.defineProperty(globalThis, globalOrigin, { value: parsedURL, writable: true, enumerable: false, configurable: false }); } module2.exports = { getGlobalOrigin, setGlobalOrigin }; } }); // node_modules/undici/lib/web/fetch/data-url.js var require_data_url = __commonJS({ "node_modules/undici/lib/web/fetch/data-url.js"(exports2, module2) { "use strict"; var assert = require("node:assert"); var encoder = new TextEncoder(); var HTTP_TOKEN_CODEPOINTS = /^[!#$%&'*+\-.^_|~A-Za-z0-9]+$/; var HTTP_WHITESPACE_REGEX = /[\u000A\u000D\u0009\u0020]/; var ASCII_WHITESPACE_REPLACE_REGEX = /[\u0009\u000A\u000C\u000D\u0020]/g; var HTTP_QUOTED_STRING_TOKENS = /^[\u0009\u0020-\u007E\u0080-\u00FF]+$/; function dataURLProcessor(dataURL) { assert(dataURL.protocol === "data:"); let input = URLSerializer(dataURL, true); input = input.slice(5); const position = { position: 0 }; let mimeType = collectASequenceOfCodePointsFast( ",", input, position ); const mimeTypeLength = mimeType.length; mimeType = removeASCIIWhitespace(mimeType, true, true); if (position.position >= input.length) { return "failure"; } position.position++; const encodedBody = input.slice(mimeTypeLength + 1); let body = stringPercentDecode(encodedBody); if (/;(\u0020){0,}base64$/i.test(mimeType)) { const stringBody = isomorphicDecode(body); body = forgivingBase64(stringBody); if (body === "failure") { return "failure"; } mimeType = mimeType.slice(0, -6); mimeType = mimeType.replace(/(\u0020)+$/, ""); mimeType = mimeType.slice(0, -1); } if (mimeType.startsWith(";")) { mimeType = "text/plain" + mimeType; } let mimeTypeRecord = parseMIMEType(mimeType); if (mimeTypeRecord === "failure") { mimeTypeRecord = parseMIMEType("text/plain;charset=US-ASCII"); } return { mimeType: mimeTypeRecord, body }; } function URLSerializer(url2, excludeFragment = false) { if (!excludeFragment) { return url2.href; } const href = url2.href; const hashLength = url2.hash.length; const serialized = hashLength === 0 ? href : href.substring(0, href.length - hashLength); if (!hashLength && href.endsWith("#")) { return serialized.slice(0, -1); } return serialized; } function collectASequenceOfCodePoints(condition, input, position) { let result = ""; while (position.position < input.length && condition(input[position.position])) { result += input[position.position]; position.position++; } return result; } function collectASequenceOfCodePointsFast(char, input, position) { const idx = input.indexOf(char, position.position); const start = position.position; if (idx === -1) { position.position = input.length; return input.slice(start); } position.position = idx; return input.slice(start, position.position); } function stringPercentDecode(input) { const bytes = encoder.encode(input); return percentDecode(bytes); } function isHexCharByte(byte) { return byte >= 48 && byte <= 57 || byte >= 65 && byte <= 70 || byte >= 97 && byte <= 102; } function hexByteToNumber(byte) { return ( // 0-9 byte >= 48 && byte <= 57 ? byte - 48 : (byte & 223) - 55 ); } function percentDecode(input) { const length = input.length; const output = new Uint8Array(length); let j = 0; for (let i = 0; i < length; ++i) { const byte = input[i]; if (byte !== 37) { output[j++] = byte; } else if (byte === 37 && !(isHexCharByte(input[i + 1]) && isHexCharByte(input[i + 2]))) { output[j++] = 37; } else { output[j++] = hexByteToNumber(input[i + 1]) << 4 | hexByteToNumber(input[i + 2]); i += 2; } } return length === j ? output : output.subarray(0, j); } function parseMIMEType(input) { input = removeHTTPWhitespace(input, true, true); const position = { position: 0 }; const type = collectASequenceOfCodePointsFast( "/", input, position ); if (type.length === 0 || !HTTP_TOKEN_CODEPOINTS.test(type)) { return "failure"; } if (position.position > input.length) { return "failure"; } position.position++; let subtype = collectASequenceOfCodePointsFast( ";", input, position ); subtype = removeHTTPWhitespace(subtype, false, true); if (subtype.length === 0 || !HTTP_TOKEN_CODEPOINTS.test(subtype)) { return "failure"; } const typeLowercase = type.toLowerCase(); const subtypeLowercase = subtype.toLowerCase(); const mimeType = { type: typeLowercase, subtype: subtypeLowercase, /** @type {Map<string, string>} */ parameters: /* @__PURE__ */ new Map(), // https://mimesniff.spec.whatwg.org/#mime-type-essence essence: `${typeLowercase}/${subtypeLowercase}` }; while (position.position < input.length) { position.position++; collectASequenceOfCodePoints( // https://fetch.spec.whatwg.org/#http-whitespace (char) => HTTP_WHITESPACE_REGEX.test(char), input, position ); let parameterName = collectASequenceOfCodePoints( (char) => char !== ";" && char !== "=", input, position ); parameterName = parameterName.toLowerCase(); if (position.position < input.length) { if (input[position.position] === ";") { continue; } position.position++; } if (position.position > input.length) { break; } let parameterValue = null; if (input[position.position] === '"') { parameterValue = collectAnHTTPQuotedString(input, position, true); collectASequenceOfCodePointsFast( ";", input, position ); } else { parameterValue = collectASequenceOfCodePointsFast( ";", input, position ); parameterValue = removeHTTPWhitespace(parameterValue, false, true); if (parameterValue.length === 0) { continue; } } if (parameterName.length !== 0 && HTTP_TOKEN_CODEPOINTS.test(parameterName) && (parameterValue.length === 0 || HTTP_QUOTED_STRING_TOKENS.test(parameterValue)) && !mimeType.parameters.has(parameterName)) { mimeType.parameters.set(parameterName, parameterValue); } } return mimeType; } function forgivingBase64(data2) { data2 = data2.replace(ASCII_WHITESPACE_REPLACE_REGEX, ""); let dataLength = data2.length; if (dataLength % 4 === 0) { if (data2.charCodeAt(dataLength - 1) === 61) { --dataLength; if (data2.charCodeAt(dataLength - 1) === 61) { --dataLength; } } } if (dataLength % 4 === 1) { return "failure"; } if (/[^+/0-9A-Za-z]/.test(data2.length === dataLength ? data2 : data2.substring(0, dataLength))) { return "failure"; } const buffer = Buffer.from(data2, "base64"); return new Uint8Array(buffer.buffer, buffer.byteOffset, buffer.byteLength); } function collectAnHTTPQuotedString(input, position, extractValue) { const positionStart = position.position; let value = ""; assert(input[position.position] === '"'); position.position++; while (true) { value += collectASequenceOfCodePoints( (char) => char !== '"' && char !== "\\", input, position ); if (position.position >= input.length) { break; } const quoteOrBackslash = input[position.position]; position.position++; if (quoteOrBackslash === "\\") { if (position.position >= input.length) { value += "\\"; break; } value += input[position.position]; position.position++; } else { assert(quoteOrBackslash === '"'); break; } } if (extractValue) { return value; } return input.slice(positionStart, position.position); } function serializeAMimeType(mimeType) { assert(mimeType !== "failure"); const { parameters, essence } = mimeType; let serialization = essence; for (let [name, value] of parameters.entries()) { serialization += ";"; serialization += name; serialization += "="; if (!HTTP_TOKEN_CODEPOINTS.test(value)) { value = value.replace(/(\\|")/g, "\\$1"); value = '"' + value; value += '"'; } serialization += value; } return serialization; } function isHTTPWhiteSpace(char) { return char === 13 || char === 10 || char === 9 || char === 32; } function removeHTTPWhitespace(str, leading = true, trailing = true) { return removeChars(str, leading, trailing, isHTTPWhiteSpace); } function isASCIIWhitespace(char) { return char === 13 || char === 10 || char === 9 || char === 12 || char === 32; } function removeASCIIWhitespace(str, leading = true, trailing = true) { return removeChars(str, leading, trailing, isASCIIWhitespace); } function removeChars(str, leading, trailing, predicate) { let lead = 0; let trail = str.length - 1; if (leading) { while (lead < str.length && predicate(str.charCodeAt(lead))) lead++; } if (trailing) { while (trail > 0 && predicate(str.charCodeAt(trail))) trail--; } return lead === 0 && trail === str.length - 1 ? str : str.slice(lead, trail + 1); } function isomorphicDecode(input) { const length = input.length; if ((2 << 15) - 1 > length) { return String.fromCharCode.apply(null, input); } let result = ""; let i = 0; let addition = (2 << 15) - 1; while (i < length) { if (i + addition > length) { addition = length - i; } result += String.fromCharCode.apply(null, input.subarray(i, i += addition)); } return result; } function minimizeSupportedMimeType(mimeType) { switch (mimeType.essence) { case "application/ecmascript": case "application/javascript": case "application/x-ecmascript": case "application/x-javascript": case "text/ecmascript": case "text/javascript": case "text/javascript1.0": case "text/javascript1.1": case "text/javascript1.2": case "text/javascript1.3": case "text/javascript1.4": case "text/javascript1.5": case "text/jscript": case "text/livescript": case "text/x-ecmascript": case "text/x-javascript": return "text/javascript"; case "application/json": case "text/json": return "application/json"; case "image/svg+xml": return "image/svg+xml"; case "text/xml": case "application/xml": return "application/xml"; } if (mimeType.subtype.endsWith("+json")) { return "application/json"; } if (mimeType.subtype.endsWith("+xml")) { return "application/xml"; } return ""; } module2.exports = { dataURLProcessor, URLSerializer, collectASequenceOfCodePoints, collectASequenceOfCodePointsFast, stringPercentDecode, parseMIMEType, collectAnHTTPQuotedString, serializeAMimeType, removeChars, removeHTTPWhitespace, minimizeSupportedMimeType, HTTP_TOKEN_CODEPOINTS, isomorphicDecode }; } }); // node_modules/undici/lib/web/fetch/webidl.js var require_webidl = __commonJS({ "node_modules/undici/lib/web/fetch/webidl.js"(exports2, module2) { "use strict"; var { types, inspect } = require("node:util"); var { markAsUncloneable } = require("node:worker_threads"); var { toUSVString } = require_util2(); var webidl = {}; webidl.converters = {}; webidl.util = {}; webidl.errors = {}; webidl.errors.exception = function(message) { return new TypeError(`${message.header}: ${message.message}`); }; webidl.errors.conversionFailed = function(context) { const plural = context.types.length === 1 ? "" : " one of"; const message = `${context.argument} could not be converted to${plural}: ${context.types.join(", ")}.`; return webidl.errors.exception({ header: context.prefix, message }); }; webidl.errors.invalidArgument = function(context) { return webidl.errors.exception({ header: context.prefix, message: `"${context.value}" is an invalid ${context.type}.` }); }; webidl.brandCheck = function(V, I, opts) { if (opts?.strict !== false) { if (!(V instanceof I)) { const err2 = new TypeError("Illegal invocation"); err2.code = "ERR_INVALID_THIS"; throw err2; } } else { if (V?.[Symbol.toStringTag] !== I.prototype[Symbol.toStringTag]) { const err2 = new TypeError("Illegal invocation"); err2.code = "ERR_INVALID_THIS"; throw err2; } } }; webidl.argumentLengthCheck = function({ length }, min, ctx) { if (length < min) { throw webidl.errors.exception({ message: `${min} argument${min !== 1 ? "s" : ""} required, but${length ? " only" : ""} ${length} found.`, header: ctx }); } }; webidl.illegalConstructor = function() { throw webidl.errors.exception({ header: "TypeError", message: "Illegal constructor" }); }; webidl.util.Type = function(V) { switch (typeof V) { case "undefined": return "Undefined"; case "boolean": return "Boolean"; case "string": return "String"; case "symbol": return "Symbol"; case "number": return "Number"; case "bigint": return "BigInt"; case "function": case "object": { if (V === null) { return "Null"; } return "Object"; } } }; webidl.util.markAsUncloneable = markAsUncloneable || (() => { }); webidl.util.ConvertToInt = function(V, bitLength, signedness, opts) { let upperBound; let lowerBound; if (bitLength === 64) { upperBound = Math.pow(2, 53) - 1; if (signedness === "unsigned") { lowerBound = 0; } else { lowerBound = Math.pow(-2, 53) + 1; } } else if (signedness === "unsigned") { lowerBound = 0; upperBound = Math.pow(2, bitLength) - 1; } else { lowerBound = Math.pow(-2, bitLength) - 1; upperBound = Math.pow(2, bitLength - 1) - 1; } let x = Number(V); if (x === 0) { x = 0; } if (opts?.enforceRange === true) { if (Number.isNaN(x) || x === Number.POSITIVE_INFINITY || x === Number.NEGATIVE_INFINITY) { throw webidl.errors.exception({ header: "Integer conversion", message: `Could not convert ${webidl.util.Stringify(V)} to an integer.` }); } x = webidl.util.IntegerPart(x); if (x < lowerBound || x > upperBound) { throw webidl.errors.exception({ header: "Integer conversion", message: `Value must be between ${lowerBound}-${upperBound}, got ${x}.` }); } return x; } if (!Number.isNaN(x) && opts?.clamp === true) { x = Math.min(Math.max(x, lowerBound), upperBound); if (Math.floor(x) % 2 === 0) { x = Math.floor(x); } else { x = Math.ceil(x); } return x; } if (Number.isNaN(x) || x === 0 && Object.is(0, x) || x === Number.POSITIVE_INFINITY || x === Number.NEGATIVE_INFINITY) { return 0; } x = webidl.util.IntegerPart(x); x = x % Math.pow(2, bitLength); if (signedness === "signed" && x >= Math.pow(2, bitLength) - 1) { return x - Math.pow(2, bitLength); } return x; }; webidl.util.IntegerPart = function(n) { const r = Math.floor(Math.abs(n)); if (n < 0) { return -1 * r; } return r; }; webidl.util.Stringify = function(V) { const type = webidl.util.Type(V); switch (type) { case "Symbol": return `Symbol(${V.description})`; case "Object": return inspect(V); case "String": return `"${V}"`; default: return `${V}`; } }; webidl.sequenceConverter = function(converter) { return (V, prefix, argument, Iterable) => { if (webidl.util.Type(V) !== "Object") { throw webidl.errors.exception({ header: prefix, message: `${argument} (${webidl.util.Stringify(V)}) is not iterable.` }); } const method = typeof Iterable === "function" ? Iterable() : V?.[Symbol.iterator]?.(); const seq = []; let index2 = 0; if (method === void 0 || typeof method.next !== "function") { throw webidl.errors.exception({ header: prefix, message: `${argument} is not iterable.` }); } while (true) { const { done, value } = method.next(); if (done) { break; } seq.push(converter(value, prefix, `${argument}[${index2++}]`)); } return seq; }; }; webidl.recordConverter = function(keyConverter, valueConverter) { return (O, prefix, argument) => { if (webidl.util.Type(O) !== "Object") { throw webidl.errors.exception({ header: prefix, message: `${argument} ("${webidl.util.Type(O)}") is not an Object.` }); } const result = {}; if (!types.isProxy(O)) { const keys2 = [...Object.getOwnPropertyNames(O), ...Object.getOwnPropertySymbols(O)]; for (const key of keys2) { const typedKey = keyConverter(key, prefix, argument); const typedValue = valueConverter(O[key], prefix, argument); result[typedKey] = typedValue; } return result; } const keys = Reflect.ownKeys(O); for (const key of keys) { const desc = Reflect.getOwnPropertyDescriptor(O, key); if (desc?.enumerable) { const typedKey = keyConverter(key, prefix, argument); const typedValue = valueConverter(O[key], prefix, argument); result[typedKey] = typedValue; } } return result; }; }; webidl.interfaceConverter = function(i) { return (V, prefix, argument, opts) => { if (opts?.strict !== false && !(V instanceof i)) { throw webidl.errors.exception({ header: prefix, message: `Expected ${argument} ("${webidl.util.Stringify(V)}") to be an instance of ${i.name}.` }); } return V; }; }; webidl.dictionaryConverter = function(converters) { return (dictionary, prefix, argument) => { const type = webidl.util.Type(dictionary); const dict = {}; if (type === "Null" || type === "Undefined") { return dict; } else if (type !== "Object") { throw webidl.errors.exception({ header: prefix, message: `Expected ${dictionary} to be one of: Null, Undefined, Object.` }); } for (const options of converters) { const { key, defaultValue, required, converter } = options; if (required === true) { if (!Object.hasOwn(dictionary, key)) { throw webidl.errors.exception({ header: prefix, message: `Missing required key "${key}".` }); } } let value = dictionary[key]; const hasDefault = Object.hasOwn(options, "defaultValue"); if (hasDefault && value !== null) { value ??= defaultValue(); } if (required || hasDefault || value !== void 0) { value = converter(value, prefix, `${argument}.${key}`); if (options.allowedValues && !options.allowedValues.includes(value)) { throw webidl.errors.exception({ header: prefix, message: `${value} is not an accepted type. Expected one of ${options.allowedValues.join(", ")}.` }); } dict[key] = value; } } return dict; }; }; webidl.nullableConverter = function(converter) { return (V, prefix, argument) => { if (V === null) { return V; } return converter(V, prefix, argument); }; }; webidl.converters.DOMString = function(V, prefix, argument, opts) { if (V === null && opts?.legacyNullToEmptyString) { return ""; } if (typeof V === "symbol") { throw webidl.errors.exception({ header: prefix, message: `${argument} is a symbol, which cannot be converted to a DOMString.` }); } return String(V); }; webidl.converters.ByteString = function(V, prefix, argument) { const x = webidl.converters.DOMString(V, prefix, argument); for (let index2 = 0; index2 < x.length; index2++) { if (x.charCodeAt(index2) > 255) { throw new TypeError( `Cannot convert argument to a ByteString because the character at index ${index2} has a value of ${x.charCodeAt(index2)} which is greater than 255.` ); } } return x; }; webidl.converters.USVString = toUSVString; webidl.converters.boolean = function(V) { const x = Boolean(V); return x; }; webidl.converters.any = function(V) { return V; }; webidl.converters["long long"] = function(V, prefix, argument) { const x = webidl.util.ConvertToInt(V, 64, "signed", void 0, prefix, argument); return x; }; webidl.converters["unsigned long long"] = function(V, prefix, argument) { const x = webidl.util.ConvertToInt(V, 64, "unsigned", void 0, prefix, argument); return x; }; webidl.converters["unsigned long"] = function(V, prefix, argument) { const x = webidl.util.ConvertToInt(V, 32, "unsigned", void 0, prefix, argument); return x; }; webidl.converters["unsigned short"] = function(V, prefix, argument, opts) { const x = webidl.util.ConvertToInt(V, 16, "unsigned", opts, prefix, argument); return x; }; webidl.converters.ArrayBuffer = function(V, prefix, argument, opts) { if (webidl.util.Type(V) !== "Object" || !types.isAnyArrayBuffer(V)) { throw webidl.errors.conversionFailed({ prefix, argument: `${argument} ("${webidl.util.Stringify(V)}")`, types: ["ArrayBuffer"] }); } if (opts?.allowShared === false && types.isSharedArrayBuffer(V)) { throw webidl.errors.exception({ header: "ArrayBuffer", message: "SharedArrayBuffer is not allowed." }); } if (V.resizable || V.growable) { throw webidl.errors.exception({ header: "ArrayBuffer", message: "Received a resizable ArrayBuffer." }); } return V; }; webidl.converters.TypedArray = function(V, T, prefix, name, opts) { if (webidl.util.Type(V) !== "Object" || !types.isTypedArray(V) || V.constructor.name !== T.name) { throw webidl.errors.conversionFailed({ prefix, argument: `${name} ("${webidl.util.Stringify(V)}")`, types: [T.name] }); } if (opts?.allowShared === false && types.isSharedArrayBuffer(V.buffer)) { throw webidl.errors.exception({ header: "ArrayBuffer", message: "SharedArrayBuffer is not allowed." }); } if (V.buffer.resizable || V.buffer.growable) { throw webidl.errors.exception({ header: "ArrayBuffer", message: "Received a resizable ArrayBuffer." }); } return V; }; webidl.converters.DataView = function(V, prefix, name, opts) { if (webidl.util.Type(V) !== "Object" || !types.isDataView(V)) { throw webidl.errors.exception({ header: prefix, message: `${name} is not a DataView.` }); } if (opts?.allowShared === false && types.isSharedArrayBuffer(V.buffer)) { throw webidl.errors.exception({ header: "ArrayBuffer", message: "SharedArrayBuffer is not allowed." }); } if (V.buffer.resizable || V.buffer.growable) { throw webidl.errors.exception({ header: "ArrayBuffer", message: "Received a resizable ArrayBuffer." }); } return V; }; webidl.converters.BufferSource = function(V, prefix, name, opts) { if (types.isAnyArrayBuffer(V)) { return webidl.converters.ArrayBuffer(V, prefix, name, { ...opts, allowShared: false }); } if (types.isTypedArray(V)) { return webidl.converters.TypedArray(V, V.constructor, prefix, name, { ...opts, allowShared: false }); } if (types.isDataView(V)) { return webidl.converters.DataView(V, prefix, name, { ...opts, allowShared: false }); } throw webidl.errors.conversionFailed({ prefix, argument: `${name} ("${webidl.util.Stringify(V)}")`, types: ["BufferSource"] }); }; webidl.converters["sequence<ByteString>"] = webidl.sequenceConverter( webidl.converters.ByteString ); webidl.converters["sequence<sequence<ByteString>>"] = webidl.sequenceConverter( webidl.converters["sequence<ByteString>"] ); webidl.converters["record<ByteString, ByteString>"] = webidl.recordConverter( webidl.converters.ByteString, webidl.converters.ByteString ); module2.exports = { webidl }; } }); // node_modules/undici/lib/web/fetch/util.js var require_util3 = __commonJS({ "node_modules/undici/lib/web/fetch/util.js"(exports2, module2) { "use strict"; var { Transform: Transform2 } = require("node:stream"); var zlib2 = require("node:zlib"); var { redirectStatusSet, referrerPolicySet: referrerPolicyTokens, badPortsSet } = require_constants3(); var { getGlobalOrigin } = require_global(); var { collectASequenceOfCodePoints, collectAnHTTPQuotedString, removeChars, parseMIMEType } = require_data_url(); var { performance: performance2 } = require("node:perf_hooks"); var { isBlobLike, ReadableStreamFrom, isValidHTTPToken, normalizedMethodRecordsBase } = require_util2(); var assert = require("node:assert"); var { isUint8Array } = require("node:util/types"); var { webidl } = require_webidl(); var supportedHashes = []; var crypto4; try { crypto4 = require("node:crypto"); const possibleRelevantHashes = ["sha256", "sha384", "sha512"]; supportedHashes = crypto4.getHashes().filter((hash) => possibleRelevantHashes.includes(hash)); } catch { } function responseURL(response) { const urlList = response.urlList; const length = urlList.length; return length === 0 ? null : urlList[length - 1].toString(); } function responseLocationURL(response, requestFragment) { if (!redirectStatusSet.has(response.status)) { return null; } let location = response.headersList.get("location", true); if (location !== null && isValidHeaderValue(location)) { if (!isValidEncodedURL(location)) { location = normalizeBinaryStringToUtf8(location); } location = new URL(location, responseURL(response)); } if (location && !location.hash) { location.hash = requestFragment; } return location; } function isValidEncodedURL(url2) { for (let i = 0; i < url2.length; ++i) { const code = url2.charCodeAt(i); if (code > 126 || // Non-US-ASCII + DEL code < 32) { return false; } } return true; } function normalizeBinaryStringToUtf8(value) { return Buffer.from(value, "binary").toString("utf8"); } function requestCurrentURL(request) { return request.urlList[request.urlList.length - 1]; } function requestBadPort(request) { const url2 = requestCurrentURL(request); if (urlIsHttpHttpsScheme(url2) && badPortsSet.has(url2.port)) { return "blocked"; } return "allowed"; } function isErrorLike(object) { return object instanceof Error || (object?.constructor?.name === "Error" || object?.constructor?.name === "DOMException"); } function isValidReasonPhrase(statusText) { for (let i = 0; i < statusText.length; ++i) { const c = statusText.charCodeAt(i); if (!(c === 9 || // HTAB c >= 32 && c <= 126 || // SP / VCHAR c >= 128 && c <= 255)) { return false; } } return true; } var isValidHeaderName2 = isValidHTTPToken; function isValidHeaderValue(potentialValue) { return (potentialValue[0] === " " || potentialValue[0] === " " || potentialValue[potentialValue.length - 1] === " " || potentialValue[potentialValue.length - 1] === " " || potentialValue.includes("\n") || potentialValue.includes("\r") || potentialValue.includes("\0")) === false; } function setRequestReferrerPolicyOnRedirect(request, actualResponse) { const { headersList } = actualResponse; const policyHeader = (headersList.get("referrer-policy", true) ?? "").split(","); let policy = ""; if (policyHeader.length > 0) { for (let i = policyHeader.length; i !== 0; i--) { const token = policyHeader[i - 1].trim(); if (referrerPolicyTokens.has(token)) { policy = token; break; } } } if (policy !== "") { request.referrerPolicy = policy; } } function crossOriginResourcePolicyCheck() { return "allowed"; } function corsCheck() { return "success"; } function TAOCheck() { return "success"; } function appendFetchMetadata(httpRequest) { let header = null; header = httpRequest.mode; httpRequest.headersList.set("sec-fetch-mode", header, true); } function appendRequestOriginHeader(request) { let serializedOrigin = request.origin; if (serializedOrigin === "client" || serializedOrigin === void 0) { return; } if (request.responseTainting === "cors" || request.mode === "websocket") { request.headersList.append("origin", serializedOrigin, true); } else if (request.method !== "GET" && request.method !== "HEAD") { switch (request.referrerPolicy) { case "no-referrer": serializedOrigin = null; break; case "no-referrer-when-downgrade": case "strict-origin": case "strict-origin-when-cross-origin": if (request.origin && urlHasHttpsScheme(request.origin) && !urlHasHttpsScheme(requestCurrentURL(request))) { serializedOrigin = null; } break; case "same-origin": if (!sameOrigin(request, requestCurrentURL(request))) { serializedOrigin = null; } break; default: } request.headersList.append("origin", serializedOrigin, true); } } function coarsenTime(timestamp, crossOriginIsolatedCapability) { return timestamp; } function clampAndCoarsenConnectionTimingInfo(connectionTimingInfo, defaultStartTime, crossOriginIsolatedCapability) { if (!connectionTimingInfo?.startTime || connectionTimingInfo.startTime < defaultStartTime) { return { domainLookupStartTime: defaultStartTime, domainLookupEndTime: defaultStartTime, connectionStartTime: defaultStartTime, connectionEndTime: defaultStartTime, secureConnectionStartTime: defaultStartTime, ALPNNegotiatedProtocol: connectionTimingInfo?.ALPNNegotiatedProtocol }; } return { domainLookupStartTime: coarsenTime(connectionTimingInfo.domainLookupStartTime, crossOriginIsolatedCapability), domainLookupEndTime: coarsenTime(connectionTimingInfo.domainLookupEndTime, crossOriginIsolatedCapability), connectionStartTime: coarsenTime(connectionTimingInfo.connectionStartTime, crossOriginIsolatedCapability), connectionEndTime: coarsenTime(connectionTimingInfo.connectionEndTime, crossOriginIsolatedCapability), secureConnectionStartTime: coarsenTime(connectionTimingInfo.secureConnectionStartTime, crossOriginIsolatedCapability), ALPNNegotiatedProtocol: connectionTimingInfo.ALPNNegotiatedProtocol }; } function coarsenedSharedCurrentTime(crossOriginIsolatedCapability) { return coarsenTime(performance2.now(), crossOriginIsolatedCapability); } function createOpaqueTimingInfo(timingInfo) { return { startTime: timingInfo.startTime ?? 0, redirectStartTime: 0, redirectEndTime: 0, postRedirectStartTime: timingInfo.startTime ?? 0, finalServiceWorkerStartTime: 0, finalNetworkResponseStartTime: 0, finalNetworkRequestStartTime: 0, endTime: 0, encodedBodySize: 0, decodedBodySize: 0, finalConnectionTimingInfo: null }; } function makePolicyContainer() { return { referrerPolicy: "strict-origin-when-cross-origin" }; } function clonePolicyContainer(policyContainer) { return { referrerPolicy: policyContainer.referrerPolicy }; } function determineRequestsReferrer(request) { const policy = request.referrerPolicy; assert(policy); let referrerSource = null; if (request.referrer === "client") { const globalOrigin = getGlobalOrigin(); if (!globalOrigin || globalOrigin.origin === "null") { return "no-referrer"; } referrerSource = new URL(globalOrigin); } else if (request.referrer instanceof URL) { referrerSource = request.referrer; } let referrerURL = stripURLForReferrer(referrerSource); const referrerOrigin = stripURLForReferrer(referrerSource, true); if (referrerURL.toString().length > 4096) { referrerURL = referrerOrigin; } const areSameOrigin = sameOrigin(request, referrerURL); const isNonPotentiallyTrustWorthy = isURLPotentiallyTrustworthy(referrerURL) && !isURLPotentiallyTrustworthy(request.url); switch (policy) { case "origin": return referrerOrigin != null ? referrerOrigin : stripURLForReferrer(referrerSource, true); case "unsafe-url": return referrerURL; case "same-origin": return areSameOrigin ? referrerOrigin : "no-referrer"; case "origin-when-cross-origin": return areSameOrigin ? referrerURL : referrerOrigin; case "strict-origin-when-cross-origin": { const currentURL = requestCurrentURL(request); if (sameOrigin(referrerURL, currentURL)) { return referrerURL; } if (isURLPotentiallyTrustworthy(referrerURL) && !isURLPotentiallyTrustworthy(currentURL)) { return "no-referrer"; } return referrerOrigin; } case "strict-origin": // eslint-disable-line /** * 1. If referrerURL is a potentially trustworthy URL and * request’s current URL is not a potentially trustworthy URL, * then return no referrer. * 2. Return referrerOrigin */ case "no-referrer-when-downgrade": // eslint-disable-line /** * 1. If referrerURL is a potentially trustworthy URL and * request’s current URL is not a potentially trustworthy URL, * then return no referrer. * 2. Return referrerOrigin */ default: return isNonPotentiallyTrustWorthy ? "no-referrer" : referrerOrigin; } } function stripURLForReferrer(url2, originOnly) { assert(url2 instanceof URL); url2 = new URL(url2); if (url2.protocol === "file:" || url2.protocol === "about:" || url2.protocol === "blank:") { return "no-referrer"; } url2.username = ""; url2.password = ""; url2.hash = ""; if (originOnly) { url2.pathname = ""; url2.search = ""; } return url2; } function isURLPotentiallyTrustworthy(url2) { if (!(url2 instanceof URL)) { return false; } if (url2.href === "about:blank" || url2.href === "about:srcdoc") { return true; } if (url2.protocol === "data:") return true; if (url2.protocol === "file:") return true; return isOriginPotentiallyTrustworthy(url2.origin); function isOriginPotentiallyTrustworthy(origin2) { if (origin2 == null || origin2 === "null") return false; const originAsURL = new URL(origin2); if (originAsURL.protocol === "https:" || originAsURL.protocol === "wss:") { return true; } if (/^127(?:\.[0-9]+){0,2}\.[0-9]+$|^\[(?:0*:)*?:?0*1\]$/.test(originAsURL.hostname) || (originAsURL.hostname === "localhost" || originAsURL.hostname.includes("localhost.")) || originAsURL.hostname.endsWith(".localhost")) { return true; } return false; } } function bytesMatch(bytes, metadataList) { if (crypto4 === void 0) { return true; } const parsedMetadata = parseMetadata(metadataList); if (parsedMetadata === "no metadata") { return true; } if (parsedMetadata.length === 0) { return true; } const strongest = getStrongestMetadata(parsedMetadata); const metadata = filterMetadataListByAlgorithm(parsedMetadata, strongest); for (const item of metadata) { const algorithm = item.algo; const expectedValue = item.hash; let actualValue = crypto4.createHash(algorithm).update(bytes).digest("base64"); if (actualValue[actualValue.length - 1] === "=") { if (actualValue[actualValue.length - 2] === "=") { actualValue = actualValue.slice(0, -2); } else { actualValue = actualValue.slice(0, -1); } } if (compareBase64Mixed(actualValue, expectedValue)) { return true; } } return false; } var parseHashWithOptions = /(?<algo>sha256|sha384|sha512)-((?<hash>[A-Za-z0-9+/]+|[A-Za-z0-9_-]+)={0,2}(?:\s|$)( +[!-~]*)?)?/i; function parseMetadata(metadata) { const result = []; let empty2 = true; for (const token of metadata.split(" ")) { empty2 = false; const parsedToken = parseHashWithOptions.exec(token); if (parsedToken === null || parsedToken.groups === void 0 || parsedToken.groups.algo === void 0) { continue; } const algorithm = parsedToken.groups.algo.toLowerCase(); if (supportedHashes.includes(algorithm)) { result.push(parsedToken.groups); } } if (empty2 === true) { return "no metadata"; } return result; } function getStrongestMetadata(metadataList) { let algorithm = metadataList[0].algo; if (algorithm[3] === "5") { return algorithm; } for (let i = 1; i < metadataList.length; ++i) { const metadata = metadataList[i]; if (metadata.algo[3] === "5") { algorithm = "sha512"; break; } else if (algorithm[3] === "3") { continue; } else if (metadata.algo[3] === "3") { algorithm = "sha384"; } } return algorithm; } function filterMetadataListByAlgorithm(metadataList, algorithm) { if (metadataList.length === 1) { return metadataList; } let pos = 0; for (let i = 0; i < metadataList.length; ++i) { if (metadataList[i].algo === algorithm) { metadataList[pos++] = metadataList[i]; } } metadataList.length = pos; return metadataList; } function compareBase64Mixed(actualValue, expectedValue) { if (actualValue.length !== expectedValue.length) { return false; } for (let i = 0; i < actualValue.length; ++i) { if (actualValue[i] !== expectedValue[i]) { if (actualValue[i] === "+" && expectedValue[i] === "-" || actualValue[i] === "/" && expectedValue[i] === "_") { continue; } return false; } } return true; } function tryUpgradeRequestToAPotentiallyTrustworthyURL(request) { } function sameOrigin(A, B) { if (A.origin === B.origin && A.origin === "null") { return true; } if (A.protocol === B.protocol && A.hostname === B.hostname && A.port === B.port) { return true; } return false; } function createDeferredPromise() { let res; let rej; const promise = new Promise((resolve, reject) => { res = resolve; rej = reject; }); return { promise, resolve: res, reject: rej }; } function isAborted3(fetchParams) { return fetchParams.controller.state === "aborted"; } function isCancelled(fetchParams) { return fetchParams.controller.state === "aborted" || fetchParams.controller.state === "terminated"; } function normalizeMethod(method) { return normalizedMethodRecordsBase[method.toLowerCase()] ?? method; } function serializeJavascriptValueToJSONString(value) { const result = JSON.stringify(value); if (result === void 0) { throw new TypeError("Value is not JSON serializable"); } assert(typeof result === "string"); return result; } var esIteratorPrototype = Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]())); function createIterator(name, kInternalIterator, keyIndex = 0, valueIndex = 1) { class FastIterableIterator { /** @type {any} */ #target; /** @type {'key' | 'value' | 'key+value'} */ #kind; /** @type {number} */ #index; /** * @see https://webidl.spec.whatwg.org/#dfn-default-iterator-object * @param {unknown} target * @param {'key' | 'value' | 'key+value'} kind */ constructor(target, kind) { this.#target = target; this.#kind = kind; this.#index = 0; } next() { if (typeof this !== "object" || this === null || !(#target in this)) { throw new TypeError( `'next' called on an object that does not implement interface ${name} Iterator.` ); } const index2 = this.#index; const values = this.#target[kInternalIterator]; const len = values.length; if (index2 >= len) { return { value: void 0, done: true }; } const { [keyIndex]: key, [valueIndex]: value } = values[index2]; this.#index = index2 + 1; let result; switch (this.#kind) { case "key": result = key; break; case "value": result = value; break; case "key+value": result = [key, value]; break; } return { value: result, done: false }; } } delete FastIterableIterator.prototype.constructor; Object.setPrototypeOf(FastIterableIterator.prototype, esIteratorPrototype); Object.defineProperties(FastIterableIterator.prototype, { [Symbol.toStringTag]: { writable: false, enumerable: false, configurable: true, value: `${name} Iterator` }, next: { writable: true, enumerable: true, configurable: true } }); return function(target, kind) { return new FastIterableIterator(target, kind); }; } function iteratorMixin(name, object, kInternalIterator, keyIndex = 0, valueIndex = 1) { const makeIterator = createIterator(name, kInternalIterator, keyIndex, valueIndex); const properties = { keys: { writable: true, enumerable: true, configurable: true, value: function keys() { webidl.brandCheck(this, object); return makeIterator(this, "key"); } }, values: { writable: true, enumerable: true, configurable: true, value: function values() { webidl.brandCheck(this, object); return makeIterator(this, "value"); } }, entries: { writable: true, enumerable: true, configurable: true, value: function entries() { webidl.brandCheck(this, object); return makeIterator(this, "key+value"); } }, forEach: { writable: true, enumerable: true, configurable: true, value: function forEach2(callbackfn, thisArg = globalThis) { webidl.brandCheck(this, object); webidl.argumentLengthCheck(arguments, 1, `${name}.forEach`); if (typeof callbackfn !== "function") { throw new TypeError( `Failed to execute 'forEach' on '${name}': parameter 1 is not of type 'Function'.` ); } for (const { 0: key, 1: value } of makeIterator(this, "key+value")) { callbackfn.call(thisArg, value, key, this); } } } }; return Object.defineProperties(object.prototype, { ...properties, [Symbol.iterator]: { writable: true, enumerable: false, configurable: true, value: properties.entries.value } }); } async function fullyReadBody(body, processBody, processBodyError) { const successSteps = processBody; const errorSteps = processBodyError; let reader; try { reader = body.stream.getReader(); } catch (e) { errorSteps(e); return; } try { successSteps(await readAllBytes(reader)); } catch (e) { errorSteps(e); } } function isReadableStreamLike(stream5) { return stream5 instanceof ReadableStream || stream5[Symbol.toStringTag] === "ReadableStream" && typeof stream5.tee === "function"; } function readableStreamClose(controller) { try { controller.close(); controller.byobRequest?.respond(0); } catch (err2) { if (!err2.message.includes("Controller is already closed") && !err2.message.includes("ReadableStream is already closed")) { throw err2; } } } var invalidIsomorphicEncodeValueRegex = /[^\x00-\xFF]/; function isomorphicEncode(input) { assert(!invalidIsomorphicEncodeValueRegex.test(input)); return input; } async function readAllBytes(reader) { const bytes = []; let byteLength = 0; while (true) { const { done, value: chunk } = await reader.read(); if (done) { return Buffer.concat(bytes, byteLength); } if (!isUint8Array(chunk)) { throw new TypeError("Received non-Uint8Array chunk"); } bytes.push(chunk); byteLength += chunk.length; } } function urlIsLocal(url2) { assert("protocol" in url2); const protocol = url2.protocol; return protocol === "about:" || protocol === "blob:" || protocol === "data:"; } function urlHasHttpsScheme(url2) { return typeof url2 === "string" && url2[5] === ":" && url2[0] === "h" && url2[1] === "t" && url2[2] === "t" && url2[3] === "p" && url2[4] === "s" || url2.protocol === "https:"; } function urlIsHttpHttpsScheme(url2) { assert("protocol" in url2); const protocol = url2.protocol; return protocol === "http:" || protocol === "https:"; } function simpleRangeHeaderValue(value, allowWhitespace) { const data2 = value; if (!data2.startsWith("bytes")) { return "failure"; } const position = { position: 5 }; if (allowWhitespace) { collectASequenceOfCodePoints( (char) => char === " " || char === " ", data2, position ); } if (data2.charCodeAt(position.position) !== 61) { return "failure"; } position.position++; if (allowWhitespace) { collectASequenceOfCodePoints( (char) => char === " " || char === " ", data2, position ); } const rangeStart = collectASequenceOfCodePoints( (char) => { const code = char.charCodeAt(0); return code >= 48 && code <= 57; }, data2, position ); const rangeStartValue = rangeStart.length ? Number(rangeStart) : null; if (allowWhitespace) { collectASequenceOfCodePoints( (char) => char === " " || char === " ", data2, position ); } if (data2.charCodeAt(position.position) !== 45) { return "failure"; } position.position++; if (allowWhitespace) { collectASequenceOfCodePoints( (char) => char === " " || char === " ", data2, position ); } const rangeEnd = collectASequenceOfCodePoints( (char) => { const code = char.charCodeAt(0); return code >= 48 && code <= 57; }, data2, position ); const rangeEndValue = rangeEnd.length ? Number(rangeEnd) : null; if (position.position < data2.length) { return "failure"; } if (rangeEndValue === null && rangeStartValue === null) { return "failure"; } if (rangeStartValue > rangeEndValue) { return "failure"; } return { rangeStartValue, rangeEndValue }; } function buildContentRange(rangeStart, rangeEnd, fullLength) { let contentRange = "bytes "; contentRange += isomorphicEncode(`${rangeStart}`); contentRange += "-"; contentRange += isomorphicEncode(`${rangeEnd}`); contentRange += "/"; contentRange += isomorphicEncode(`${fullLength}`); return contentRange; } var InflateStream = class extends Transform2 { #zlibOptions; /** @param {zlib.ZlibOptions} [zlibOptions] */ constructor(zlibOptions2) { super(); this.#zlibOptions = zlibOptions2; } _transform(chunk, encoding, callback) { if (!this._inflateStream) { if (chunk.length === 0) { callback(); return; } this._inflateStream = (chunk[0] & 15) === 8 ? zlib2.createInflate(this.#zlibOptions) : zlib2.createInflateRaw(this.#zlibOptions); this._inflateStream.on("data", this.push.bind(this)); this._inflateStream.on("end", () => this.push(null)); this._inflateStream.on("error", (err2) => this.destroy(err2)); } this._inflateStream.write(chunk, encoding, callback); } _final(callback) { if (this._inflateStream) { this._inflateStream.end(); this._inflateStream = null; } callback(); } }; function createInflate(zlibOptions2) { return new InflateStream(zlibOptions2); } function extractMimeType(headers) { let charset = null; let essence = null; let mimeType = null; const values = getDecodeSplit("content-type", headers); if (values === null) { return "failure"; } for (const value of values) { const temporaryMimeType = parseMIMEType(value); if (temporaryMimeType === "failure" || temporaryMimeType.essence === "*/*") { continue; } mimeType = temporaryMimeType; if (mimeType.essence !== essence) { charset = null; if (mimeType.parameters.has("charset")) { charset = mimeType.parameters.get("charset"); } essence = mimeType.essence; } else if (!mimeType.parameters.has("charset") && charset !== null) { mimeType.parameters.set("charset", charset); } } if (mimeType == null) { return "failure"; } return mimeType; } function gettingDecodingSplitting(value) { const input = value; const position = { position: 0 }; const values = []; let temporaryValue = ""; while (position.position < input.length) { temporaryValue += collectASequenceOfCodePoints( (char) => char !== '"' && char !== ",", input, position ); if (position.position < input.length) { if (input.charCodeAt(position.position) === 34) { temporaryValue += collectAnHTTPQuotedString( input, position ); if (position.position < input.length) { continue; } } else { assert(input.charCodeAt(position.position) === 44); position.position++; } } temporaryValue = removeChars(temporaryValue, true, true, (char) => char === 9 || char === 32); values.push(temporaryValue); temporaryValue = ""; } return values; } function getDecodeSplit(name, list) { const value = list.get(name, true); if (value === null) { return null; } return gettingDecodingSplitting(value); } var textDecoder = new TextDecoder(); function utf8DecodeBytes(buffer) { if (buffer.length === 0) { return ""; } if (buffer[0] === 239 && buffer[1] === 187 && buffer[2] === 191) { buffer = buffer.subarray(3); } const output = textDecoder.decode(buffer); return output; } var EnvironmentSettingsObjectBase = class { get baseUrl() { return getGlobalOrigin(); } get origin() { return this.baseUrl?.origin; } policyContainer = makePolicyContainer(); }; var EnvironmentSettingsObject = class { settingsObject = new EnvironmentSettingsObjectBase(); }; var environmentSettingsObject = new EnvironmentSettingsObject(); module2.exports = { isAborted: isAborted3, isCancelled, isValidEncodedURL, createDeferredPromise, ReadableStreamFrom, tryUpgradeRequestToAPotentiallyTrustworthyURL, clampAndCoarsenConnectionTimingInfo, coarsenedSharedCurrentTime, determineRequestsReferrer, makePolicyContainer, clonePolicyContainer, appendFetchMetadata, appendRequestOriginHeader, TAOCheck, corsCheck, crossOriginResourcePolicyCheck, createOpaqueTimingInfo, setRequestReferrerPolicyOnRedirect, isValidHTTPToken, requestBadPort, requestCurrentURL, responseURL, responseLocationURL, isBlobLike, isURLPotentiallyTrustworthy, isValidReasonPhrase, sameOrigin, normalizeMethod, serializeJavascriptValueToJSONString, iteratorMixin, createIterator, isValidHeaderName: isValidHeaderName2, isValidHeaderValue, isErrorLike, fullyReadBody, bytesMatch, isReadableStreamLike, readableStreamClose, isomorphicEncode, urlIsLocal, urlHasHttpsScheme, urlIsHttpHttpsScheme, readAllBytes, simpleRangeHeaderValue, buildContentRange, parseMetadata, createInflate, extractMimeType, getDecodeSplit, utf8DecodeBytes, environmentSettingsObject }; } }); // node_modules/undici/lib/web/fetch/symbols.js var require_symbols2 = __commonJS({ "node_modules/undici/lib/web/fetch/symbols.js"(exports2, module2) { "use strict"; module2.exports = { kUrl: Symbol("url"), kHeaders: Symbol("headers"), kSignal: Symbol("signal"), kState: Symbol("state"), kDispatcher: Symbol("dispatcher") }; } }); // node_modules/undici/lib/web/fetch/file.js var require_file = __commonJS({ "node_modules/undici/lib/web/fetch/file.js"(exports2, module2) { "use strict"; var { Blob: Blob2, File } = require("node:buffer"); var { kState } = require_symbols2(); var { webidl } = require_webidl(); var FileLike = class _FileLike { constructor(blobLike, fileName, options = {}) { const n = fileName; const t = options.type; const d = options.lastModified ?? Date.now(); this[kState] = { blobLike, name: n, type: t, lastModified: d }; } stream(...args) { webidl.brandCheck(this, _FileLike); return this[kState].blobLike.stream(...args); } arrayBuffer(...args) { webidl.brandCheck(this, _FileLike); return this[kState].blobLike.arrayBuffer(...args); } slice(...args) { webidl.brandCheck(this, _FileLike); return this[kState].blobLike.slice(...args); } text(...args) { webidl.brandCheck(this, _FileLike); return this[kState].blobLike.text(...args); } get size() { webidl.brandCheck(this, _FileLike); return this[kState].blobLike.size; } get type() { webidl.brandCheck(this, _FileLike); return this[kState].blobLike.type; } get name() { webidl.brandCheck(this, _FileLike); return this[kState].name; } get lastModified() { webidl.brandCheck(this, _FileLike); return this[kState].lastModified; } get [Symbol.toStringTag]() { return "File"; } }; webidl.converters.Blob = webidl.interfaceConverter(Blob2); function isFileLike(object) { return object instanceof File || object && (typeof object.stream === "function" || typeof object.arrayBuffer === "function") && object[Symbol.toStringTag] === "File"; } module2.exports = { FileLike, isFileLike }; } }); // node_modules/undici/lib/web/fetch/formdata.js var require_formdata = __commonJS({ "node_modules/undici/lib/web/fetch/formdata.js"(exports2, module2) { "use strict"; var { isBlobLike, iteratorMixin } = require_util3(); var { kState } = require_symbols2(); var { kEnumerableProperty } = require_util2(); var { FileLike, isFileLike } = require_file(); var { webidl } = require_webidl(); var { File: NativeFile } = require("node:buffer"); var nodeUtil = require("node:util"); var File = globalThis.File ?? NativeFile; var FormData3 = class _FormData { constructor(form) { webidl.util.markAsUncloneable(this); if (form !== void 0) { throw webidl.errors.conversionFailed({ prefix: "FormData constructor", argument: "Argument 1", types: ["undefined"] }); } this[kState] = []; } append(name, value, filename = void 0) { webidl.brandCheck(this, _FormData); const prefix = "FormData.append"; webidl.argumentLengthCheck(arguments, 2, prefix); if (arguments.length === 3 && !isBlobLike(value)) { throw new TypeError( "Failed to execute 'append' on 'FormData': parameter 2 is not of type 'Blob'" ); } name = webidl.converters.USVString(name, prefix, "name"); value = isBlobLike(value) ? webidl.converters.Blob(value, prefix, "value", { strict: false }) : webidl.converters.USVString(value, prefix, "value"); filename = arguments.length === 3 ? webidl.converters.USVString(filename, prefix, "filename") : void 0; const entry2 = makeEntry(name, value, filename); this[kState].push(entry2); } delete(name) { webidl.brandCheck(this, _FormData); const prefix = "FormData.delete"; webidl.argumentLengthCheck(arguments, 1, prefix); name = webidl.converters.USVString(name, prefix, "name"); this[kState] = this[kState].filter((entry2) => entry2.name !== name); } get(name) { webidl.brandCheck(this, _FormData); const prefix = "FormData.get"; webidl.argumentLengthCheck(arguments, 1, prefix); name = webidl.converters.USVString(name, prefix, "name"); const idx = this[kState].findIndex((entry2) => entry2.name === name); if (idx === -1) { return null; } return this[kState][idx].value; } getAll(name) { webidl.brandCheck(this, _FormData); const prefix = "FormData.getAll"; webidl.argumentLengthCheck(arguments, 1, prefix); name = webidl.converters.USVString(name, prefix, "name"); return this[kState].filter((entry2) => entry2.name === name).map((entry2) => entry2.value); } has(name) { webidl.brandCheck(this, _FormData); const prefix = "FormData.has"; webidl.argumentLengthCheck(arguments, 1, prefix); name = webidl.converters.USVString(name, prefix, "name"); return this[kState].findIndex((entry2) => entry2.name === name) !== -1; } set(name, value, filename = void 0) { webidl.brandCheck(this, _FormData); const prefix = "FormData.set"; webidl.argumentLengthCheck(arguments, 2, prefix); if (arguments.length === 3 && !isBlobLike(value)) { throw new TypeError( "Failed to execute 'set' on 'FormData': parameter 2 is not of type 'Blob'" ); } name = webidl.converters.USVString(name, prefix, "name"); value = isBlobLike(value) ? webidl.converters.Blob(value, prefix, "name", { strict: false }) : webidl.converters.USVString(value, prefix, "name"); filename = arguments.length === 3 ? webidl.converters.USVString(filename, prefix, "name") : void 0; const entry2 = makeEntry(name, value, filename); const idx = this[kState].findIndex((entry3) => entry3.name === name); if (idx !== -1) { this[kState] = [ ...this[kState].slice(0, idx), entry2, ...this[kState].slice(idx + 1).filter((entry3) => entry3.name !== name) ]; } else { this[kState].push(entry2); } } [nodeUtil.inspect.custom](depth, options) { const state = this[kState].reduce((a, b) => { if (a[b.name]) { if (Array.isArray(a[b.name])) { a[b.name].push(b.value); } else { a[b.name] = [a[b.name], b.value]; } } else { a[b.name] = b.value; } return a; }, { __proto__: null }); options.depth ??= depth; options.colors ??= true; const output = nodeUtil.formatWithOptions(options, state); return `FormData ${output.slice(output.indexOf("]") + 2)}`; } }; iteratorMixin("FormData", FormData3, kState, "name", "value"); Object.defineProperties(FormData3.prototype, { append: kEnumerableProperty, delete: kEnumerableProperty, get: kEnumerableProperty, getAll: kEnumerableProperty, has: kEnumerableProperty, set: kEnumerableProperty, [Symbol.toStringTag]: { value: "FormData", configurable: true } }); function makeEntry(name, value, filename) { if (typeof value === "string") { } else { if (!isFileLike(value)) { value = value instanceof Blob ? new File([value], "blob", { type: value.type }) : new FileLike(value, "blob", { type: value.type }); } if (filename !== void 0) { const options = { type: value.type, lastModified: value.lastModified }; value = value instanceof NativeFile ? new File([value], filename, options) : new FileLike(value, filename, options); } } return { name, value }; } module2.exports = { FormData: FormData3, makeEntry }; } }); // node_modules/undici/lib/web/fetch/formdata-parser.js var require_formdata_parser = __commonJS({ "node_modules/undici/lib/web/fetch/formdata-parser.js"(exports2, module2) { "use strict"; var { isUSVString, bufferToLowerCasedHeaderName } = require_util2(); var { utf8DecodeBytes } = require_util3(); var { HTTP_TOKEN_CODEPOINTS, isomorphicDecode } = require_data_url(); var { isFileLike } = require_file(); var { makeEntry } = require_formdata(); var assert = require("node:assert"); var { File: NodeFile } = require("node:buffer"); var File = globalThis.File ?? NodeFile; var formDataNameBuffer = Buffer.from('form-data; name="'); var filenameBuffer = Buffer.from("; filename"); var dd = Buffer.from("--"); var ddcrlf = Buffer.from("--\r\n"); function isAsciiString(chars) { for (let i = 0; i < chars.length; ++i) { if ((chars.charCodeAt(i) & ~127) !== 0) { return false; } } return true; } function validateBoundary(boundary) { const length = boundary.length; if (length < 27 || length > 70) { return false; } for (let i = 0; i < length; ++i) { const cp = boundary.charCodeAt(i); if (!(cp >= 48 && cp <= 57 || cp >= 65 && cp <= 90 || cp >= 97 && cp <= 122 || cp === 39 || cp === 45 || cp === 95)) { return false; } } return true; } function multipartFormDataParser(input, mimeType) { assert(mimeType !== "failure" && mimeType.essence === "multipart/form-data"); const boundaryString = mimeType.parameters.get("boundary"); if (boundaryString === void 0) { return "failure"; } const boundary = Buffer.from(`--${boundaryString}`, "utf8"); const entryList = []; const position = { position: 0 }; while (input[position.position] === 13 && input[position.position + 1] === 10) { position.position += 2; } let trailing = input.length; while (input[trailing - 1] === 10 && input[trailing - 2] === 13) { trailing -= 2; } if (trailing !== input.length) { input = input.subarray(0, trailing); } while (true) { if (input.subarray(position.position, position.position + boundary.length).equals(boundary)) { position.position += boundary.length; } else { return "failure"; } if (position.position === input.length - 2 && bufferStartsWith(input, dd, position) || position.position === input.length - 4 && bufferStartsWith(input, ddcrlf, position)) { return entryList; } if (input[position.position] !== 13 || input[position.position + 1] !== 10) { return "failure"; } position.position += 2; const result = parseMultipartFormDataHeaders(input, position); if (result === "failure") { return "failure"; } let { name, filename, contentType, encoding } = result; position.position += 2; let body; { const boundaryIndex = input.indexOf(boundary.subarray(2), position.position); if (boundaryIndex === -1) { return "failure"; } body = input.subarray(position.position, boundaryIndex - 4); position.position += body.length; if (encoding === "base64") { body = Buffer.from(body.toString(), "base64"); } } if (input[position.position] !== 13 || input[position.position + 1] !== 10) { return "failure"; } else { position.position += 2; } let value; if (filename !== null) { contentType ??= "text/plain"; if (!isAsciiString(contentType)) { contentType = ""; } value = new File([body], filename, { type: contentType }); } else { value = utf8DecodeBytes(Buffer.from(body)); } assert(isUSVString(name)); assert(typeof value === "string" && isUSVString(value) || isFileLike(value)); entryList.push(makeEntry(name, value, filename)); } } function parseMultipartFormDataHeaders(input, position) { let name = null; let filename = null; let contentType = null; let encoding = null; while (true) { if (input[position.position] === 13 && input[position.position + 1] === 10) { if (name === null) { return "failure"; } return { name, filename, contentType, encoding }; } let headerName = collectASequenceOfBytes( (char) => char !== 10 && char !== 13 && char !== 58, input, position ); headerName = removeChars(headerName, true, true, (char) => char === 9 || char === 32); if (!HTTP_TOKEN_CODEPOINTS.test(headerName.toString())) { return "failure"; } if (input[position.position] !== 58) { return "failure"; } position.position++; collectASequenceOfBytes( (char) => char === 32 || char === 9, input, position ); switch (bufferToLowerCasedHeaderName(headerName)) { case "content-disposition": { name = filename = null; if (!bufferStartsWith(input, formDataNameBuffer, position)) { return "failure"; } position.position += 17; name = parseMultipartFormDataName(input, position); if (name === null) { return "failure"; } if (bufferStartsWith(input, filenameBuffer, position)) { let check = position.position + filenameBuffer.length; if (input[check] === 42) { position.position += 1; check += 1; } if (input[check] !== 61 || input[check + 1] !== 34) { return "failure"; } position.position += 12; filename = parseMultipartFormDataName(input, position); if (filename === null) { return "failure"; } } break; } case "content-type": { let headerValue = collectASequenceOfBytes( (char) => char !== 10 && char !== 13, input, position ); headerValue = removeChars(headerValue, false, true, (char) => char === 9 || char === 32); contentType = isomorphicDecode(headerValue); break; } case "content-transfer-encoding": { let headerValue = collectASequenceOfBytes( (char) => char !== 10 && char !== 13, input, position ); headerValue = removeChars(headerValue, false, true, (char) => char === 9 || char === 32); encoding = isomorphicDecode(headerValue); break; } default: { collectASequenceOfBytes( (char) => char !== 10 && char !== 13, input, position ); } } if (input[position.position] !== 13 && input[position.position + 1] !== 10) { return "failure"; } else { position.position += 2; } } } function parseMultipartFormDataName(input, position) { assert(input[position.position - 1] === 34); let name = collectASequenceOfBytes( (char) => char !== 10 && char !== 13 && char !== 34, input, position ); if (input[position.position] !== 34) { return null; } else { position.position++; } name = new TextDecoder().decode(name).replace(/%0A/ig, "\n").replace(/%0D/ig, "\r").replace(/%22/g, '"'); return name; } function collectASequenceOfBytes(condition, input, position) { let start = position.position; while (start < input.length && condition(input[start])) { ++start; } return input.subarray(position.position, position.position = start); } function removeChars(buf, leading, trailing, predicate) { let lead = 0; let trail = buf.length - 1; if (leading) { while (lead < buf.length && predicate(buf[lead])) lead++; } if (trailing) { while (trail > 0 && predicate(buf[trail])) trail--; } return lead === 0 && trail === buf.length - 1 ? buf : buf.subarray(lead, trail + 1); } function bufferStartsWith(buffer, start, position) { if (buffer.length < start.length) { return false; } for (let i = 0; i < start.length; i++) { if (start[i] !== buffer[position.position + i]) { return false; } } return true; } module2.exports = { multipartFormDataParser, validateBoundary }; } }); // node_modules/undici/lib/web/fetch/body.js var require_body = __commonJS({ "node_modules/undici/lib/web/fetch/body.js"(exports2, module2) { "use strict"; var util5 = require_util2(); var { ReadableStreamFrom, isBlobLike, isReadableStreamLike, readableStreamClose, createDeferredPromise, fullyReadBody, extractMimeType, utf8DecodeBytes } = require_util3(); var { FormData: FormData3 } = require_formdata(); var { kState } = require_symbols2(); var { webidl } = require_webidl(); var { Blob: Blob2 } = require("node:buffer"); var assert = require("node:assert"); var { isErrored, isDisturbed } = require("node:stream"); var { isArrayBuffer: isArrayBuffer2 } = require("node:util/types"); var { serializeAMimeType } = require_data_url(); var { multipartFormDataParser } = require_formdata_parser(); var random; try { const crypto4 = require("node:crypto"); random = (max) => crypto4.randomInt(0, max); } catch { random = (max) => Math.floor(Math.random(max)); } var textEncoder2 = new TextEncoder(); function noop2() { } var hasFinalizationRegistry = globalThis.FinalizationRegistry && process.version.indexOf("v18") !== 0; var streamRegistry; if (hasFinalizationRegistry) { streamRegistry = new FinalizationRegistry((weakRef) => { const stream5 = weakRef.deref(); if (stream5 && !stream5.locked && !isDisturbed(stream5) && !isErrored(stream5)) { stream5.cancel("Response object has been garbage collected").catch(noop2); } }); } function extractBody(object, keepalive = false) { let stream5 = null; if (object instanceof ReadableStream) { stream5 = object; } else if (isBlobLike(object)) { stream5 = object.stream(); } else { stream5 = new ReadableStream({ async pull(controller) { const buffer = typeof source === "string" ? textEncoder2.encode(source) : source; if (buffer.byteLength) { controller.enqueue(buffer); } queueMicrotask(() => readableStreamClose(controller)); }, start() { }, type: "bytes" }); } assert(isReadableStreamLike(stream5)); let action = null; let source = null; let length = null; let type = null; if (typeof object === "string") { source = object; type = "text/plain;charset=UTF-8"; } else if (object instanceof URLSearchParams) { source = object.toString(); type = "application/x-www-form-urlencoded;charset=UTF-8"; } else if (isArrayBuffer2(object)) { source = new Uint8Array(object.slice()); } else if (ArrayBuffer.isView(object)) { source = new Uint8Array(object.buffer.slice(object.byteOffset, object.byteOffset + object.byteLength)); } else if (util5.isFormDataLike(object)) { const boundary = `----formdata-undici-0${`${random(1e11)}`.padStart(11, "0")}`; const prefix = `--${boundary}\r Content-Disposition: form-data`; const escape3 = (str) => str.replace(/\n/g, "%0A").replace(/\r/g, "%0D").replace(/"/g, "%22"); const normalizeLinefeeds = (value) => value.replace(/\r?\n|\r/g, "\r\n"); const blobParts = []; const rn = new Uint8Array([13, 10]); length = 0; let hasUnknownSizeValue = false; for (const [name, value] of object) { if (typeof value === "string") { const chunk2 = textEncoder2.encode(prefix + `; name="${escape3(normalizeLinefeeds(name))}"\r \r ${normalizeLinefeeds(value)}\r `); blobParts.push(chunk2); length += chunk2.byteLength; } else { const chunk2 = textEncoder2.encode(`${prefix}; name="${escape3(normalizeLinefeeds(name))}"` + (value.name ? `; filename="${escape3(value.name)}"` : "") + `\r Content-Type: ${value.type || "application/octet-stream"}\r \r `); blobParts.push(chunk2, value, rn); if (typeof value.size === "number") { length += chunk2.byteLength + value.size + rn.byteLength; } else { hasUnknownSizeValue = true; } } } const chunk = textEncoder2.encode(`--${boundary}--`); blobParts.push(chunk); length += chunk.byteLength; if (hasUnknownSizeValue) { length = null; } source = object; action = async function* () { for (const part of blobParts) { if (part.stream) { yield* part.stream(); } else { yield part; } } }; type = `multipart/form-data; boundary=${boundary}`; } else if (isBlobLike(object)) { source = object; length = object.size; if (object.type) { type = object.type; } } else if (typeof object[Symbol.asyncIterator] === "function") { if (keepalive) { throw new TypeError("keepalive"); } if (util5.isDisturbed(object) || object.locked) { throw new TypeError( "Response body object should not be disturbed or locked" ); } stream5 = object instanceof ReadableStream ? object : ReadableStreamFrom(object); } if (typeof source === "string" || util5.isBuffer(source)) { length = Buffer.byteLength(source); } if (action != null) { let iterator; stream5 = new ReadableStream({ async start() { iterator = action(object)[Symbol.asyncIterator](); }, async pull(controller) { const { value, done } = await iterator.next(); if (done) { queueMicrotask(() => { controller.close(); controller.byobRequest?.respond(0); }); } else { if (!isErrored(stream5)) { const buffer = new Uint8Array(value); if (buffer.byteLength) { controller.enqueue(buffer); } } } return controller.desiredSize > 0; }, async cancel(reason) { await iterator.return(); }, type: "bytes" }); } const body = { stream: stream5, source, length }; return [body, type]; } function safelyExtractBody(object, keepalive = false) { if (object instanceof ReadableStream) { assert(!util5.isDisturbed(object), "The body has already been consumed."); assert(!object.locked, "The stream is locked."); } return extractBody(object, keepalive); } function cloneBody(instance, body) { const [out1, out2] = body.stream.tee(); if (hasFinalizationRegistry) { streamRegistry.register(instance, new WeakRef(out1)); } body.stream = out1; return { stream: out2, length: body.length, source: body.source }; } function throwIfAborted(state) { if (state.aborted) { throw new DOMException("The operation was aborted.", "AbortError"); } } function bodyMixinMethods(instance) { const methods = { blob() { return consumeBody(this, (bytes) => { let mimeType = bodyMimeType(this); if (mimeType === null) { mimeType = ""; } else if (mimeType) { mimeType = serializeAMimeType(mimeType); } return new Blob2([bytes], { type: mimeType }); }, instance); }, arrayBuffer() { return consumeBody(this, (bytes) => { return new Uint8Array(bytes).buffer; }, instance); }, text() { return consumeBody(this, utf8DecodeBytes, instance); }, json() { return consumeBody(this, parseJSONFromBytes, instance); }, formData() { return consumeBody(this, (value) => { const mimeType = bodyMimeType(this); if (mimeType !== null) { switch (mimeType.essence) { case "multipart/form-data": { const parsed = multipartFormDataParser(value, mimeType); if (parsed === "failure") { throw new TypeError("Failed to parse body as FormData."); } const fd = new FormData3(); fd[kState] = parsed; return fd; } case "application/x-www-form-urlencoded": { const entries = new URLSearchParams(value.toString()); const fd = new FormData3(); for (const [name, value2] of entries) { fd.append(name, value2); } return fd; } } } throw new TypeError( 'Content-Type was not one of "multipart/form-data" or "application/x-www-form-urlencoded".' ); }, instance); }, bytes() { return consumeBody(this, (bytes) => { return new Uint8Array(bytes); }, instance); } }; return methods; } function mixinBody(prototype3) { Object.assign(prototype3.prototype, bodyMixinMethods(prototype3)); } async function consumeBody(object, convertBytesToJSValue, instance) { webidl.brandCheck(object, instance); if (bodyUnusable(object)) { throw new TypeError("Body is unusable: Body has already been read"); } throwIfAborted(object[kState]); const promise = createDeferredPromise(); const errorSteps = (error) => promise.reject(error); const successSteps = (data2) => { try { promise.resolve(convertBytesToJSValue(data2)); } catch (e) { errorSteps(e); } }; if (object[kState].body == null) { successSteps(Buffer.allocUnsafe(0)); return promise.promise; } await fullyReadBody(object[kState].body, successSteps, errorSteps); return promise.promise; } function bodyUnusable(object) { const body = object[kState].body; return body != null && (body.stream.locked || util5.isDisturbed(body.stream)); } function parseJSONFromBytes(bytes) { return JSON.parse(utf8DecodeBytes(bytes)); } function bodyMimeType(requestOrResponse) { const headers = requestOrResponse[kState].headersList; const mimeType = extractMimeType(headers); if (mimeType === "failure") { return null; } return mimeType; } module2.exports = { extractBody, safelyExtractBody, cloneBody, mixinBody, streamRegistry, hasFinalizationRegistry, bodyUnusable }; } }); // node_modules/undici/lib/dispatcher/client-h1.js var require_client_h1 = __commonJS({ "node_modules/undici/lib/dispatcher/client-h1.js"(exports2, module2) { "use strict"; var assert = require("node:assert"); var util5 = require_util2(); var { channels } = require_diagnostics(); var timers = require_timers(); var { RequestContentLengthMismatchError, ResponseContentLengthMismatchError, RequestAbortedError, HeadersTimeoutError, HeadersOverflowError, SocketError, InformationalError, BodyTimeoutError, HTTPParserError, ResponseExceededMaxSizeError } = require_errors(); var { kUrl, kReset, kClient, kParser, kBlocking, kRunning, kPending, kSize, kWriting, kQueue, kNoRef, kKeepAliveDefaultTimeout, kHostHeader, kPendingIdx, kRunningIdx, kError, kPipelining, kSocket, kKeepAliveTimeoutValue, kMaxHeadersSize, kKeepAliveMaxTimeout, kKeepAliveTimeoutThreshold, kHeadersTimeout, kBodyTimeout, kStrictContentLength, kMaxRequests, kCounter, kMaxResponseSize, kOnError, kResume, kHTTPContext } = require_symbols(); var constants = require_constants2(); var EMPTY_BUF = Buffer.alloc(0); var FastBuffer = Buffer[Symbol.species]; var addListener = util5.addListener; var removeAllListeners = util5.removeAllListeners; var extractBody; async function lazyllhttp() { const llhttpWasmData = process.env.JEST_WORKER_ID ? require_llhttp_wasm() : void 0; let mod; try { mod = await WebAssembly.compile(require_llhttp_simd_wasm()); } catch (e) { mod = await WebAssembly.compile(llhttpWasmData || require_llhttp_wasm()); } return await WebAssembly.instantiate(mod, { env: { /* eslint-disable camelcase */ wasm_on_url: (p, at, len) => { return 0; }, wasm_on_status: (p, at, len) => { assert(currentParser.ptr === p); const start = at - currentBufferPtr + currentBufferRef.byteOffset; return currentParser.onStatus(new FastBuffer(currentBufferRef.buffer, start, len)) || 0; }, wasm_on_message_begin: (p) => { assert(currentParser.ptr === p); return currentParser.onMessageBegin() || 0; }, wasm_on_header_field: (p, at, len) => { assert(currentParser.ptr === p); const start = at - currentBufferPtr + currentBufferRef.byteOffset; return currentParser.onHeaderField(new FastBuffer(currentBufferRef.buffer, start, len)) || 0; }, wasm_on_header_value: (p, at, len) => { assert(currentParser.ptr === p); const start = at - currentBufferPtr + currentBufferRef.byteOffset; return currentParser.onHeaderValue(new FastBuffer(currentBufferRef.buffer, start, len)) || 0; }, wasm_on_headers_complete: (p, statusCode, upgrade, shouldKeepAlive) => { assert(currentParser.ptr === p); return currentParser.onHeadersComplete(statusCode, Boolean(upgrade), Boolean(shouldKeepAlive)) || 0; }, wasm_on_body: (p, at, len) => { assert(currentParser.ptr === p); const start = at - currentBufferPtr + currentBufferRef.byteOffset; return currentParser.onBody(new FastBuffer(currentBufferRef.buffer, start, len)) || 0; }, wasm_on_message_complete: (p) => { assert(currentParser.ptr === p); return currentParser.onMessageComplete() || 0; } /* eslint-enable camelcase */ } }); } var llhttpInstance = null; var llhttpPromise = lazyllhttp(); llhttpPromise.catch(); var currentParser = null; var currentBufferRef = null; var currentBufferSize = 0; var currentBufferPtr = null; var USE_NATIVE_TIMER = 0; var USE_FAST_TIMER = 1; var TIMEOUT_HEADERS = 2 | USE_FAST_TIMER; var TIMEOUT_BODY = 4 | USE_FAST_TIMER; var TIMEOUT_KEEP_ALIVE = 8 | USE_NATIVE_TIMER; var Parser3 = class { constructor(client, socket, { exports: exports3 }) { assert(Number.isFinite(client[kMaxHeadersSize]) && client[kMaxHeadersSize] > 0); this.llhttp = exports3; this.ptr = this.llhttp.llhttp_alloc(constants.TYPE.RESPONSE); this.client = client; this.socket = socket; this.timeout = null; this.timeoutValue = null; this.timeoutType = null; this.statusCode = null; this.statusText = ""; this.upgrade = false; this.headers = []; this.headersSize = 0; this.headersMaxSize = client[kMaxHeadersSize]; this.shouldKeepAlive = false; this.paused = false; this.resume = this.resume.bind(this); this.bytesRead = 0; this.keepAlive = ""; this.contentLength = ""; this.connection = ""; this.maxResponseSize = client[kMaxResponseSize]; } setTimeout(delay, type) { if (delay !== this.timeoutValue || type & USE_FAST_TIMER ^ this.timeoutType & USE_FAST_TIMER) { if (this.timeout) { timers.clearTimeout(this.timeout); this.timeout = null; } if (delay) { if (type & USE_FAST_TIMER) { this.timeout = timers.setFastTimeout(onParserTimeout, delay, new WeakRef(this)); } else { this.timeout = setTimeout(onParserTimeout, delay, new WeakRef(this)); this.timeout.unref(); } } this.timeoutValue = delay; } else if (this.timeout) { if (this.timeout.refresh) { this.timeout.refresh(); } } this.timeoutType = type; } resume() { if (this.socket.destroyed || !this.paused) { return; } assert(this.ptr != null); assert(currentParser == null); this.llhttp.llhttp_resume(this.ptr); assert(this.timeoutType === TIMEOUT_BODY); if (this.timeout) { if (this.timeout.refresh) { this.timeout.refresh(); } } this.paused = false; this.execute(this.socket.read() || EMPTY_BUF); this.readMore(); } readMore() { while (!this.paused && this.ptr) { const chunk = this.socket.read(); if (chunk === null) { break; } this.execute(chunk); } } execute(data2) { assert(this.ptr != null); assert(currentParser == null); assert(!this.paused); const { socket, llhttp } = this; if (data2.length > currentBufferSize) { if (currentBufferPtr) { llhttp.free(currentBufferPtr); } currentBufferSize = Math.ceil(data2.length / 4096) * 4096; currentBufferPtr = llhttp.malloc(currentBufferSize); } new Uint8Array(llhttp.memory.buffer, currentBufferPtr, currentBufferSize).set(data2); try { let ret; try { currentBufferRef = data2; currentParser = this; ret = llhttp.llhttp_execute(this.ptr, currentBufferPtr, data2.length); } catch (err2) { throw err2; } finally { currentParser = null; currentBufferRef = null; } const offset = llhttp.llhttp_get_error_pos(this.ptr) - currentBufferPtr; if (ret === constants.ERROR.PAUSED_UPGRADE) { this.onUpgrade(data2.slice(offset)); } else if (ret === constants.ERROR.PAUSED) { this.paused = true; socket.unshift(data2.slice(offset)); } else if (ret !== constants.ERROR.OK) { const ptr = llhttp.llhttp_get_error_reason(this.ptr); let message = ""; if (ptr) { const len = new Uint8Array(llhttp.memory.buffer, ptr).indexOf(0); message = "Response does not match the HTTP/1.1 protocol (" + Buffer.from(llhttp.memory.buffer, ptr, len).toString() + ")"; } throw new HTTPParserError(message, constants.ERROR[ret], data2.slice(offset)); } } catch (err2) { util5.destroy(socket, err2); } } destroy() { assert(this.ptr != null); assert(currentParser == null); this.llhttp.llhttp_free(this.ptr); this.ptr = null; this.timeout && timers.clearTimeout(this.timeout); this.timeout = null; this.timeoutValue = null; this.timeoutType = null; this.paused = false; } onStatus(buf) { this.statusText = buf.toString(); } onMessageBegin() { const { socket, client } = this; if (socket.destroyed) { return -1; } const request = client[kQueue][client[kRunningIdx]]; if (!request) { return -1; } request.onResponseStarted(); } onHeaderField(buf) { const len = this.headers.length; if ((len & 1) === 0) { this.headers.push(buf); } else { this.headers[len - 1] = Buffer.concat([this.headers[len - 1], buf]); } this.trackHeader(buf.length); } onHeaderValue(buf) { let len = this.headers.length; if ((len & 1) === 1) { this.headers.push(buf); len += 1; } else { this.headers[len - 1] = Buffer.concat([this.headers[len - 1], buf]); } const key = this.headers[len - 2]; if (key.length === 10) { const headerName = util5.bufferToLowerCasedHeaderName(key); if (headerName === "keep-alive") { this.keepAlive += buf.toString(); } else if (headerName === "connection") { this.connection += buf.toString(); } } else if (key.length === 14 && util5.bufferToLowerCasedHeaderName(key) === "content-length") { this.contentLength += buf.toString(); } this.trackHeader(buf.length); } trackHeader(len) { this.headersSize += len; if (this.headersSize >= this.headersMaxSize) { util5.destroy(this.socket, new HeadersOverflowError()); } } onUpgrade(head) { const { upgrade, client, socket, headers, statusCode } = this; assert(upgrade); assert(client[kSocket] === socket); assert(!socket.destroyed); assert(!this.paused); assert((headers.length & 1) === 0); const request = client[kQueue][client[kRunningIdx]]; assert(request); assert(request.upgrade || request.method === "CONNECT"); this.statusCode = null; this.statusText = ""; this.shouldKeepAlive = null; this.headers = []; this.headersSize = 0; socket.unshift(head); socket[kParser].destroy(); socket[kParser] = null; socket[kClient] = null; socket[kError] = null; removeAllListeners(socket); client[kSocket] = null; client[kHTTPContext] = null; client[kQueue][client[kRunningIdx]++] = null; client.emit("disconnect", client[kUrl], [client], new InformationalError("upgrade")); try { request.onUpgrade(statusCode, headers, socket); } catch (err2) { util5.destroy(socket, err2); } client[kResume](); } onHeadersComplete(statusCode, upgrade, shouldKeepAlive) { const { client, socket, headers, statusText } = this; if (socket.destroyed) { return -1; } const request = client[kQueue][client[kRunningIdx]]; if (!request) { return -1; } assert(!this.upgrade); assert(this.statusCode < 200); if (statusCode === 100) { util5.destroy(socket, new SocketError("bad response", util5.getSocketInfo(socket))); return -1; } if (upgrade && !request.upgrade) { util5.destroy(socket, new SocketError("bad upgrade", util5.getSocketInfo(socket))); return -1; } assert(this.timeoutType === TIMEOUT_HEADERS); this.statusCode = statusCode; this.shouldKeepAlive = shouldKeepAlive || // Override llhttp value which does not allow keepAlive for HEAD. request.method === "HEAD" && !socket[kReset] && this.connection.toLowerCase() === "keep-alive"; if (this.statusCode >= 200) { const bodyTimeout = request.bodyTimeout != null ? request.bodyTimeout : client[kBodyTimeout]; this.setTimeout(bodyTimeout, TIMEOUT_BODY); } else if (this.timeout) { if (this.timeout.refresh) { this.timeout.refresh(); } } if (request.method === "CONNECT") { assert(client[kRunning] === 1); this.upgrade = true; return 2; } if (upgrade) { assert(client[kRunning] === 1); this.upgrade = true; return 2; } assert((this.headers.length & 1) === 0); this.headers = []; this.headersSize = 0; if (this.shouldKeepAlive && client[kPipelining]) { const keepAliveTimeout = this.keepAlive ? util5.parseKeepAliveTimeout(this.keepAlive) : null; if (keepAliveTimeout != null) { const timeout = Math.min( keepAliveTimeout - client[kKeepAliveTimeoutThreshold], client[kKeepAliveMaxTimeout] ); if (timeout <= 0) { socket[kReset] = true; } else { client[kKeepAliveTimeoutValue] = timeout; } } else { client[kKeepAliveTimeoutValue] = client[kKeepAliveDefaultTimeout]; } } else { socket[kReset] = true; } const pause = request.onHeaders(statusCode, headers, this.resume, statusText) === false; if (request.aborted) { return -1; } if (request.method === "HEAD") { return 1; } if (statusCode < 200) { return 1; } if (socket[kBlocking]) { socket[kBlocking] = false; client[kResume](); } return pause ? constants.ERROR.PAUSED : 0; } onBody(buf) { const { client, socket, statusCode, maxResponseSize } = this; if (socket.destroyed) { return -1; } const request = client[kQueue][client[kRunningIdx]]; assert(request); assert(this.timeoutType === TIMEOUT_BODY); if (this.timeout) { if (this.timeout.refresh) { this.timeout.refresh(); } } assert(statusCode >= 200); if (maxResponseSize > -1 && this.bytesRead + buf.length > maxResponseSize) { util5.destroy(socket, new ResponseExceededMaxSizeError()); return -1; } this.bytesRead += buf.length; if (request.onData(buf) === false) { return constants.ERROR.PAUSED; } } onMessageComplete() { const { client, socket, statusCode, upgrade, headers, contentLength, bytesRead, shouldKeepAlive } = this; if (socket.destroyed && (!statusCode || shouldKeepAlive)) { return -1; } if (upgrade) { return; } assert(statusCode >= 100); assert((this.headers.length & 1) === 0); const request = client[kQueue][client[kRunningIdx]]; assert(request); this.statusCode = null; this.statusText = ""; this.bytesRead = 0; this.contentLength = ""; this.keepAlive = ""; this.connection = ""; this.headers = []; this.headersSize = 0; if (statusCode < 200) { return; } if (request.method !== "HEAD" && contentLength && bytesRead !== parseInt(contentLength, 10)) { util5.destroy(socket, new ResponseContentLengthMismatchError()); return -1; } request.onComplete(headers); client[kQueue][client[kRunningIdx]++] = null; if (socket[kWriting]) { assert(client[kRunning] === 0); util5.destroy(socket, new InformationalError("reset")); return constants.ERROR.PAUSED; } else if (!shouldKeepAlive) { util5.destroy(socket, new InformationalError("reset")); return constants.ERROR.PAUSED; } else if (socket[kReset] && client[kRunning] === 0) { util5.destroy(socket, new InformationalError("reset")); return constants.ERROR.PAUSED; } else if (client[kPipelining] == null || client[kPipelining] === 1) { setImmediate(() => client[kResume]()); } else { client[kResume](); } } }; function onParserTimeout(parser) { const { socket, timeoutType, client, paused } = parser.deref(); if (timeoutType === TIMEOUT_HEADERS) { if (!socket[kWriting] || socket.writableNeedDrain || client[kRunning] > 1) { assert(!paused, "cannot be paused while waiting for headers"); util5.destroy(socket, new HeadersTimeoutError()); } } else if (timeoutType === TIMEOUT_BODY) { if (!paused) { util5.destroy(socket, new BodyTimeoutError()); } } else if (timeoutType === TIMEOUT_KEEP_ALIVE) { assert(client[kRunning] === 0 && client[kKeepAliveTimeoutValue]); util5.destroy(socket, new InformationalError("socket idle timeout")); } } async function connectH1(client, socket) { client[kSocket] = socket; if (!llhttpInstance) { llhttpInstance = await llhttpPromise; llhttpPromise = null; } socket[kNoRef] = false; socket[kWriting] = false; socket[kReset] = false; socket[kBlocking] = false; socket[kParser] = new Parser3(client, socket, llhttpInstance); addListener(socket, "error", function(err2) { assert(err2.code !== "ERR_TLS_CERT_ALTNAME_INVALID"); const parser = this[kParser]; if (err2.code === "ECONNRESET" && parser.statusCode && !parser.shouldKeepAlive) { parser.onMessageComplete(); return; } this[kError] = err2; this[kClient][kOnError](err2); }); addListener(socket, "readable", function() { const parser = this[kParser]; if (parser) { parser.readMore(); } }); addListener(socket, "end", function() { const parser = this[kParser]; if (parser.statusCode && !parser.shouldKeepAlive) { parser.onMessageComplete(); return; } util5.destroy(this, new SocketError("other side closed", util5.getSocketInfo(this))); }); addListener(socket, "close", function() { const client2 = this[kClient]; const parser = this[kParser]; if (parser) { if (!this[kError] && parser.statusCode && !parser.shouldKeepAlive) { parser.onMessageComplete(); } this[kParser].destroy(); this[kParser] = null; } const err2 = this[kError] || new SocketError("closed", util5.getSocketInfo(this)); client2[kSocket] = null; client2[kHTTPContext] = null; if (client2.destroyed) { assert(client2[kPending] === 0); const requests = client2[kQueue].splice(client2[kRunningIdx]); for (let i = 0; i < requests.length; i++) { const request = requests[i]; util5.errorRequest(client2, request, err2); } } else if (client2[kRunning] > 0 && err2.code !== "UND_ERR_INFO") { const request = client2[kQueue][client2[kRunningIdx]]; client2[kQueue][client2[kRunningIdx]++] = null; util5.errorRequest(client2, request, err2); } client2[kPendingIdx] = client2[kRunningIdx]; assert(client2[kRunning] === 0); client2.emit("disconnect", client2[kUrl], [client2], err2); client2[kResume](); }); let closed = false; socket.on("close", () => { closed = true; }); return { version: "h1", defaultPipelining: 1, write(...args) { return writeH1(client, ...args); }, resume() { resumeH1(client); }, destroy(err2, callback) { if (closed) { queueMicrotask(callback); } else { socket.destroy(err2).on("close", callback); } }, get destroyed() { return socket.destroyed; }, busy(request) { if (socket[kWriting] || socket[kReset] || socket[kBlocking]) { return true; } if (request) { if (client[kRunning] > 0 && !request.idempotent) { return true; } if (client[kRunning] > 0 && (request.upgrade || request.method === "CONNECT")) { return true; } if (client[kRunning] > 0 && util5.bodyLength(request.body) !== 0 && (util5.isStream(request.body) || util5.isAsyncIterable(request.body) || util5.isFormDataLike(request.body))) { return true; } } return false; } }; } function resumeH1(client) { const socket = client[kSocket]; if (socket && !socket.destroyed) { if (client[kSize] === 0) { if (!socket[kNoRef] && socket.unref) { socket.unref(); socket[kNoRef] = true; } } else if (socket[kNoRef] && socket.ref) { socket.ref(); socket[kNoRef] = false; } if (client[kSize] === 0) { if (socket[kParser].timeoutType !== TIMEOUT_KEEP_ALIVE) { socket[kParser].setTimeout(client[kKeepAliveTimeoutValue], TIMEOUT_KEEP_ALIVE); } } else if (client[kRunning] > 0 && socket[kParser].statusCode < 200) { if (socket[kParser].timeoutType !== TIMEOUT_HEADERS) { const request = client[kQueue][client[kRunningIdx]]; const headersTimeout = request.headersTimeout != null ? request.headersTimeout : client[kHeadersTimeout]; socket[kParser].setTimeout(headersTimeout, TIMEOUT_HEADERS); } } } } function shouldSendContentLength(method) { return method !== "GET" && method !== "HEAD" && method !== "OPTIONS" && method !== "TRACE" && method !== "CONNECT"; } function writeH1(client, request) { const { method, path, host, upgrade, blocking, reset } = request; let { body, headers, contentLength } = request; const expectsPayload = method === "PUT" || method === "POST" || method === "PATCH" || method === "QUERY" || method === "PROPFIND" || method === "PROPPATCH"; if (util5.isFormDataLike(body)) { if (!extractBody) { extractBody = require_body().extractBody; } const [bodyStream, contentType] = extractBody(body); if (request.contentType == null) { headers.push("content-type", contentType); } body = bodyStream.stream; contentLength = bodyStream.length; } else if (util5.isBlobLike(body) && request.contentType == null && body.type) { headers.push("content-type", body.type); } if (body && typeof body.read === "function") { body.read(0); } const bodyLength = util5.bodyLength(body); contentLength = bodyLength ?? contentLength; if (contentLength === null) { contentLength = request.contentLength; } if (contentLength === 0 && !expectsPayload) { contentLength = null; } if (shouldSendContentLength(method) && contentLength > 0 && request.contentLength !== null && request.contentLength !== contentLength) { if (client[kStrictContentLength]) { util5.errorRequest(client, request, new RequestContentLengthMismatchError()); return false; } process.emitWarning(new RequestContentLengthMismatchError()); } const socket = client[kSocket]; const abort = (err2) => { if (request.aborted || request.completed) { return; } util5.errorRequest(client, request, err2 || new RequestAbortedError()); util5.destroy(body); util5.destroy(socket, new InformationalError("aborted")); }; try { request.onConnect(abort); } catch (err2) { util5.errorRequest(client, request, err2); } if (request.aborted) { return false; } if (method === "HEAD") { socket[kReset] = true; } if (upgrade || method === "CONNECT") { socket[kReset] = true; } if (reset != null) { socket[kReset] = reset; } if (client[kMaxRequests] && socket[kCounter]++ >= client[kMaxRequests]) { socket[kReset] = true; } if (blocking) { socket[kBlocking] = true; } let header = `${method} ${path} HTTP/1.1\r `; if (typeof host === "string") { header += `host: ${host}\r `; } else { header += client[kHostHeader]; } if (upgrade) { header += `connection: upgrade\r upgrade: ${upgrade}\r `; } else if (client[kPipelining] && !socket[kReset]) { header += "connection: keep-alive\r\n"; } else { header += "connection: close\r\n"; } if (Array.isArray(headers)) { for (let n = 0; n < headers.length; n += 2) { const key = headers[n + 0]; const val2 = headers[n + 1]; if (Array.isArray(val2)) { for (let i = 0; i < val2.length; i++) { header += `${key}: ${val2[i]}\r `; } } else { header += `${key}: ${val2}\r `; } } } if (channels.sendHeaders.hasSubscribers) { channels.sendHeaders.publish({ request, headers: header, socket }); } if (!body || bodyLength === 0) { writeBuffer(abort, null, client, request, socket, contentLength, header, expectsPayload); } else if (util5.isBuffer(body)) { writeBuffer(abort, body, client, request, socket, contentLength, header, expectsPayload); } else if (util5.isBlobLike(body)) { if (typeof body.stream === "function") { writeIterable(abort, body.stream(), client, request, socket, contentLength, header, expectsPayload); } else { writeBlob(abort, body, client, request, socket, contentLength, header, expectsPayload); } } else if (util5.isStream(body)) { writeStream(abort, body, client, request, socket, contentLength, header, expectsPayload); } else if (util5.isIterable(body)) { writeIterable(abort, body, client, request, socket, contentLength, header, expectsPayload); } else { assert(false); } return true; } function writeStream(abort, body, client, request, socket, contentLength, header, expectsPayload) { assert(contentLength !== 0 || client[kRunning] === 0, "stream body cannot be pipelined"); let finished = false; const writer = new AsyncWriter({ abort, socket, request, contentLength, client, expectsPayload, header }); const onData = function(chunk) { if (finished) { return; } try { if (!writer.write(chunk) && this.pause) { this.pause(); } } catch (err2) { util5.destroy(this, err2); } }; const onDrain = function() { if (finished) { return; } if (body.resume) { body.resume(); } }; const onClose = function() { queueMicrotask(() => { body.removeListener("error", onFinished); }); if (!finished) { const err2 = new RequestAbortedError(); queueMicrotask(() => onFinished(err2)); } }; const onFinished = function(err2) { if (finished) { return; } finished = true; assert(socket.destroyed || socket[kWriting] && client[kRunning] <= 1); socket.off("drain", onDrain).off("error", onFinished); body.removeListener("data", onData).removeListener("end", onFinished).removeListener("close", onClose); if (!err2) { try { writer.end(); } catch (er) { err2 = er; } } writer.destroy(err2); if (err2 && (err2.code !== "UND_ERR_INFO" || err2.message !== "reset")) { util5.destroy(body, err2); } else { util5.destroy(body); } }; body.on("data", onData).on("end", onFinished).on("error", onFinished).on("close", onClose); if (body.resume) { body.resume(); } socket.on("drain", onDrain).on("error", onFinished); if (body.errorEmitted ?? body.errored) { setImmediate(() => onFinished(body.errored)); } else if (body.endEmitted ?? body.readableEnded) { setImmediate(() => onFinished(null)); } if (body.closeEmitted ?? body.closed) { setImmediate(onClose); } } function writeBuffer(abort, body, client, request, socket, contentLength, header, expectsPayload) { try { if (!body) { if (contentLength === 0) { socket.write(`${header}content-length: 0\r \r `, "latin1"); } else { assert(contentLength === null, "no body must not have content length"); socket.write(`${header}\r `, "latin1"); } } else if (util5.isBuffer(body)) { assert(contentLength === body.byteLength, "buffer body must have content length"); socket.cork(); socket.write(`${header}content-length: ${contentLength}\r \r `, "latin1"); socket.write(body); socket.uncork(); request.onBodySent(body); if (!expectsPayload && request.reset !== false) { socket[kReset] = true; } } request.onRequestSent(); client[kResume](); } catch (err2) { abort(err2); } } async function writeBlob(abort, body, client, request, socket, contentLength, header, expectsPayload) { assert(contentLength === body.size, "blob body must have content length"); try { if (contentLength != null && contentLength !== body.size) { throw new RequestContentLengthMismatchError(); } const buffer = Buffer.from(await body.arrayBuffer()); socket.cork(); socket.write(`${header}content-length: ${contentLength}\r \r `, "latin1"); socket.write(buffer); socket.uncork(); request.onBodySent(buffer); request.onRequestSent(); if (!expectsPayload && request.reset !== false) { socket[kReset] = true; } client[kResume](); } catch (err2) { abort(err2); } } async function writeIterable(abort, body, client, request, socket, contentLength, header, expectsPayload) { assert(contentLength !== 0 || client[kRunning] === 0, "iterator body cannot be pipelined"); let callback = null; function onDrain() { if (callback) { const cb = callback; callback = null; cb(); } } const waitForDrain = () => new Promise((resolve, reject) => { assert(callback === null); if (socket[kError]) { reject(socket[kError]); } else { callback = resolve; } }); socket.on("close", onDrain).on("drain", onDrain); const writer = new AsyncWriter({ abort, socket, request, contentLength, client, expectsPayload, header }); try { for await (const chunk of body) { if (socket[kError]) { throw socket[kError]; } if (!writer.write(chunk)) { await waitForDrain(); } } writer.end(); } catch (err2) { writer.destroy(err2); } finally { socket.off("close", onDrain).off("drain", onDrain); } } var AsyncWriter = class { constructor({ abort, socket, request, contentLength, client, expectsPayload, header }) { this.socket = socket; this.request = request; this.contentLength = contentLength; this.client = client; this.bytesWritten = 0; this.expectsPayload = expectsPayload; this.header = header; this.abort = abort; socket[kWriting] = true; } write(chunk) { const { socket, request, contentLength, client, bytesWritten, expectsPayload, header } = this; if (socket[kError]) { throw socket[kError]; } if (socket.destroyed) { return false; } const len = Buffer.byteLength(chunk); if (!len) { return true; } if (contentLength !== null && bytesWritten + len > contentLength) { if (client[kStrictContentLength]) { throw new RequestContentLengthMismatchError(); } process.emitWarning(new RequestContentLengthMismatchError()); } socket.cork(); if (bytesWritten === 0) { if (!expectsPayload && request.reset !== false) { socket[kReset] = true; } if (contentLength === null) { socket.write(`${header}transfer-encoding: chunked\r `, "latin1"); } else { socket.write(`${header}content-length: ${contentLength}\r \r `, "latin1"); } } if (contentLength === null) { socket.write(`\r ${len.toString(16)}\r `, "latin1"); } this.bytesWritten += len; const ret = socket.write(chunk); socket.uncork(); request.onBodySent(chunk); if (!ret) { if (socket[kParser].timeout && socket[kParser].timeoutType === TIMEOUT_HEADERS) { if (socket[kParser].timeout.refresh) { socket[kParser].timeout.refresh(); } } } return ret; } end() { const { socket, contentLength, client, bytesWritten, expectsPayload, header, request } = this; request.onRequestSent(); socket[kWriting] = false; if (socket[kError]) { throw socket[kError]; } if (socket.destroyed) { return; } if (bytesWritten === 0) { if (expectsPayload) { socket.write(`${header}content-length: 0\r \r `, "latin1"); } else { socket.write(`${header}\r `, "latin1"); } } else if (contentLength === null) { socket.write("\r\n0\r\n\r\n", "latin1"); } if (contentLength !== null && bytesWritten !== contentLength) { if (client[kStrictContentLength]) { throw new RequestContentLengthMismatchError(); } else { process.emitWarning(new RequestContentLengthMismatchError()); } } if (socket[kParser].timeout && socket[kParser].timeoutType === TIMEOUT_HEADERS) { if (socket[kParser].timeout.refresh) { socket[kParser].timeout.refresh(); } } client[kResume](); } destroy(err2) { const { socket, client, abort } = this; socket[kWriting] = false; if (err2) { assert(client[kRunning] <= 1, "pipeline should only contain this request"); abort(err2); } } }; module2.exports = connectH1; } }); // node_modules/undici/lib/dispatcher/client-h2.js var require_client_h2 = __commonJS({ "node_modules/undici/lib/dispatcher/client-h2.js"(exports2, module2) { "use strict"; var assert = require("node:assert"); var { pipeline } = require("node:stream"); var util5 = require_util2(); var { RequestContentLengthMismatchError, RequestAbortedError, SocketError, InformationalError } = require_errors(); var { kUrl, kReset, kClient, kRunning, kPending, kQueue, kPendingIdx, kRunningIdx, kError, kSocket, kStrictContentLength, kOnError, kMaxConcurrentStreams, kHTTP2Session, kResume, kSize, kHTTPContext } = require_symbols(); var kOpenStreams = Symbol("open streams"); var extractBody; var h2ExperimentalWarned = false; var http2; try { http2 = require("node:http2"); } catch { http2 = { constants: {} }; } var { constants: { HTTP2_HEADER_AUTHORITY, HTTP2_HEADER_METHOD, HTTP2_HEADER_PATH, HTTP2_HEADER_SCHEME, HTTP2_HEADER_CONTENT_LENGTH, HTTP2_HEADER_EXPECT, HTTP2_HEADER_STATUS } } = http2; function parseH2Headers(headers) { const result = []; for (const [name, value] of Object.entries(headers)) { if (Array.isArray(value)) { for (const subvalue of value) { result.push(Buffer.from(name), Buffer.from(subvalue)); } } else { result.push(Buffer.from(name), Buffer.from(value)); } } return result; } async function connectH2(client, socket) { client[kSocket] = socket; if (!h2ExperimentalWarned) { h2ExperimentalWarned = true; process.emitWarning("H2 support is experimental, expect them to change at any time.", { code: "UNDICI-H2" }); } const session = http2.connect(client[kUrl], { createConnection: () => socket, peerMaxConcurrentStreams: client[kMaxConcurrentStreams] }); session[kOpenStreams] = 0; session[kClient] = client; session[kSocket] = socket; util5.addListener(session, "error", onHttp2SessionError); util5.addListener(session, "frameError", onHttp2FrameError); util5.addListener(session, "end", onHttp2SessionEnd); util5.addListener(session, "goaway", onHTTP2GoAway); util5.addListener(session, "close", function() { const { [kClient]: client2 } = this; const { [kSocket]: socket2 } = client2; const err2 = this[kSocket][kError] || this[kError] || new SocketError("closed", util5.getSocketInfo(socket2)); client2[kHTTP2Session] = null; if (client2.destroyed) { assert(client2[kPending] === 0); const requests = client2[kQueue].splice(client2[kRunningIdx]); for (let i = 0; i < requests.length; i++) { const request = requests[i]; util5.errorRequest(client2, request, err2); } } }); session.unref(); client[kHTTP2Session] = session; socket[kHTTP2Session] = session; util5.addListener(socket, "error", function(err2) { assert(err2.code !== "ERR_TLS_CERT_ALTNAME_INVALID"); this[kError] = err2; this[kClient][kOnError](err2); }); util5.addListener(socket, "end", function() { util5.destroy(this, new SocketError("other side closed", util5.getSocketInfo(this))); }); util5.addListener(socket, "close", function() { const err2 = this[kError] || new SocketError("closed", util5.getSocketInfo(this)); client[kSocket] = null; if (this[kHTTP2Session] != null) { this[kHTTP2Session].destroy(err2); } client[kPendingIdx] = client[kRunningIdx]; assert(client[kRunning] === 0); client.emit("disconnect", client[kUrl], [client], err2); client[kResume](); }); let closed = false; socket.on("close", () => { closed = true; }); return { version: "h2", defaultPipelining: Infinity, write(...args) { return writeH2(client, ...args); }, resume() { resumeH2(client); }, destroy(err2, callback) { if (closed) { queueMicrotask(callback); } else { socket.destroy(err2).on("close", callback); } }, get destroyed() { return socket.destroyed; }, busy() { return false; } }; } function resumeH2(client) { const socket = client[kSocket]; if (socket?.destroyed === false) { if (client[kSize] === 0 && client[kMaxConcurrentStreams] === 0) { socket.unref(); client[kHTTP2Session].unref(); } else { socket.ref(); client[kHTTP2Session].ref(); } } } function onHttp2SessionError(err2) { assert(err2.code !== "ERR_TLS_CERT_ALTNAME_INVALID"); this[kSocket][kError] = err2; this[kClient][kOnError](err2); } function onHttp2FrameError(type, code, id) { if (id === 0) { const err2 = new InformationalError(`HTTP/2: "frameError" received - type ${type}, code ${code}`); this[kSocket][kError] = err2; this[kClient][kOnError](err2); } } function onHttp2SessionEnd() { const err2 = new SocketError("other side closed", util5.getSocketInfo(this[kSocket])); this.destroy(err2); util5.destroy(this[kSocket], err2); } function onHTTP2GoAway(code) { const err2 = this[kError] || new SocketError(`HTTP/2: "GOAWAY" frame received with code ${code}`, util5.getSocketInfo(this)); const client = this[kClient]; client[kSocket] = null; client[kHTTPContext] = null; if (this[kHTTP2Session] != null) { this[kHTTP2Session].destroy(err2); this[kHTTP2Session] = null; } util5.destroy(this[kSocket], err2); if (client[kRunningIdx] < client[kQueue].length) { const request = client[kQueue][client[kRunningIdx]]; client[kQueue][client[kRunningIdx]++] = null; util5.errorRequest(client, request, err2); client[kPendingIdx] = client[kRunningIdx]; } assert(client[kRunning] === 0); client.emit("disconnect", client[kUrl], [client], err2); client[kResume](); } function shouldSendContentLength(method) { return method !== "GET" && method !== "HEAD" && method !== "OPTIONS" && method !== "TRACE" && method !== "CONNECT"; } function writeH2(client, request) { const session = client[kHTTP2Session]; const { method, path, host, upgrade, expectContinue, signal, headers: reqHeaders } = request; let { body } = request; if (upgrade) { util5.errorRequest(client, request, new Error("Upgrade not supported for H2")); return false; } const headers = {}; for (let n = 0; n < reqHeaders.length; n += 2) { const key = reqHeaders[n + 0]; const val2 = reqHeaders[n + 1]; if (Array.isArray(val2)) { for (let i = 0; i < val2.length; i++) { if (headers[key]) { headers[key] += `,${val2[i]}`; } else { headers[key] = val2[i]; } } } else { headers[key] = val2; } } let stream5; const { hostname, port } = client[kUrl]; headers[HTTP2_HEADER_AUTHORITY] = host || `${hostname}${port ? `:${port}` : ""}`; headers[HTTP2_HEADER_METHOD] = method; const abort = (err2) => { if (request.aborted || request.completed) { return; } err2 = err2 || new RequestAbortedError(); util5.errorRequest(client, request, err2); if (stream5 != null) { util5.destroy(stream5, err2); } util5.destroy(body, err2); client[kQueue][client[kRunningIdx]++] = null; client[kResume](); }; try { request.onConnect(abort); } catch (err2) { util5.errorRequest(client, request, err2); } if (request.aborted) { return false; } if (method === "CONNECT") { session.ref(); stream5 = session.request(headers, { endStream: false, signal }); if (stream5.id && !stream5.pending) { request.onUpgrade(null, null, stream5); ++session[kOpenStreams]; client[kQueue][client[kRunningIdx]++] = null; } else { stream5.once("ready", () => { request.onUpgrade(null, null, stream5); ++session[kOpenStreams]; client[kQueue][client[kRunningIdx]++] = null; }); } stream5.once("close", () => { session[kOpenStreams] -= 1; if (session[kOpenStreams] === 0) session.unref(); }); return true; } headers[HTTP2_HEADER_PATH] = path; headers[HTTP2_HEADER_SCHEME] = "https"; const expectsPayload = method === "PUT" || method === "POST" || method === "PATCH"; if (body && typeof body.read === "function") { body.read(0); } let contentLength = util5.bodyLength(body); if (util5.isFormDataLike(body)) { extractBody ??= require_body().extractBody; const [bodyStream, contentType] = extractBody(body); headers["content-type"] = contentType; body = bodyStream.stream; contentLength = bodyStream.length; } if (contentLength == null) { contentLength = request.contentLength; } if (contentLength === 0 || !expectsPayload) { contentLength = null; } if (shouldSendContentLength(method) && contentLength > 0 && request.contentLength != null && request.contentLength !== contentLength) { if (client[kStrictContentLength]) { util5.errorRequest(client, request, new RequestContentLengthMismatchError()); return false; } process.emitWarning(new RequestContentLengthMismatchError()); } if (contentLength != null) { assert(body, "no body must not have content length"); headers[HTTP2_HEADER_CONTENT_LENGTH] = `${contentLength}`; } session.ref(); const shouldEndStream = method === "GET" || method === "HEAD" || body === null; if (expectContinue) { headers[HTTP2_HEADER_EXPECT] = "100-continue"; stream5 = session.request(headers, { endStream: shouldEndStream, signal }); stream5.once("continue", writeBodyH2); } else { stream5 = session.request(headers, { endStream: shouldEndStream, signal }); writeBodyH2(); } ++session[kOpenStreams]; stream5.once("response", (headers2) => { const { [HTTP2_HEADER_STATUS]: statusCode, ...realHeaders } = headers2; request.onResponseStarted(); if (request.aborted) { const err2 = new RequestAbortedError(); util5.errorRequest(client, request, err2); util5.destroy(stream5, err2); return; } if (request.onHeaders(Number(statusCode), parseH2Headers(realHeaders), stream5.resume.bind(stream5), "") === false) { stream5.pause(); } stream5.on("data", (chunk) => { if (request.onData(chunk) === false) { stream5.pause(); } }); }); stream5.once("end", () => { if (stream5.state?.state == null || stream5.state.state < 6) { request.onComplete([]); } if (session[kOpenStreams] === 0) { session.unref(); } abort(new InformationalError("HTTP/2: stream half-closed (remote)")); client[kQueue][client[kRunningIdx]++] = null; client[kPendingIdx] = client[kRunningIdx]; client[kResume](); }); stream5.once("close", () => { session[kOpenStreams] -= 1; if (session[kOpenStreams] === 0) { session.unref(); } }); stream5.once("error", function(err2) { abort(err2); }); stream5.once("frameError", (type, code) => { abort(new InformationalError(`HTTP/2: "frameError" received - type ${type}, code ${code}`)); }); return true; function writeBodyH2() { if (!body || contentLength === 0) { writeBuffer( abort, stream5, null, client, request, client[kSocket], contentLength, expectsPayload ); } else if (util5.isBuffer(body)) { writeBuffer( abort, stream5, body, client, request, client[kSocket], contentLength, expectsPayload ); } else if (util5.isBlobLike(body)) { if (typeof body.stream === "function") { writeIterable( abort, stream5, body.stream(), client, request, client[kSocket], contentLength, expectsPayload ); } else { writeBlob( abort, stream5, body, client, request, client[kSocket], contentLength, expectsPayload ); } } else if (util5.isStream(body)) { writeStream( abort, client[kSocket], expectsPayload, stream5, body, client, request, contentLength ); } else if (util5.isIterable(body)) { writeIterable( abort, stream5, body, client, request, client[kSocket], contentLength, expectsPayload ); } else { assert(false); } } } function writeBuffer(abort, h2stream, body, client, request, socket, contentLength, expectsPayload) { try { if (body != null && util5.isBuffer(body)) { assert(contentLength === body.byteLength, "buffer body must have content length"); h2stream.cork(); h2stream.write(body); h2stream.uncork(); h2stream.end(); request.onBodySent(body); } if (!expectsPayload) { socket[kReset] = true; } request.onRequestSent(); client[kResume](); } catch (error) { abort(error); } } function writeStream(abort, socket, expectsPayload, h2stream, body, client, request, contentLength) { assert(contentLength !== 0 || client[kRunning] === 0, "stream body cannot be pipelined"); const pipe = pipeline( body, h2stream, (err2) => { if (err2) { util5.destroy(pipe, err2); abort(err2); } else { util5.removeAllListeners(pipe); request.onRequestSent(); if (!expectsPayload) { socket[kReset] = true; } client[kResume](); } } ); util5.addListener(pipe, "data", onPipeData); function onPipeData(chunk) { request.onBodySent(chunk); } } async function writeBlob(abort, h2stream, body, client, request, socket, contentLength, expectsPayload) { assert(contentLength === body.size, "blob body must have content length"); try { if (contentLength != null && contentLength !== body.size) { throw new RequestContentLengthMismatchError(); } const buffer = Buffer.from(await body.arrayBuffer()); h2stream.cork(); h2stream.write(buffer); h2stream.uncork(); h2stream.end(); request.onBodySent(buffer); request.onRequestSent(); if (!expectsPayload) { socket[kReset] = true; } client[kResume](); } catch (err2) { abort(err2); } } async function writeIterable(abort, h2stream, body, client, request, socket, contentLength, expectsPayload) { assert(contentLength !== 0 || client[kRunning] === 0, "iterator body cannot be pipelined"); let callback = null; function onDrain() { if (callback) { const cb = callback; callback = null; cb(); } } const waitForDrain = () => new Promise((resolve, reject) => { assert(callback === null); if (socket[kError]) { reject(socket[kError]); } else { callback = resolve; } }); h2stream.on("close", onDrain).on("drain", onDrain); try { for await (const chunk of body) { if (socket[kError]) { throw socket[kError]; } const res = h2stream.write(chunk); request.onBodySent(chunk); if (!res) { await waitForDrain(); } } h2stream.end(); request.onRequestSent(); if (!expectsPayload) { socket[kReset] = true; } client[kResume](); } catch (err2) { abort(err2); } finally { h2stream.off("close", onDrain).off("drain", onDrain); } } module2.exports = connectH2; } }); // node_modules/undici/lib/handler/redirect-handler.js var require_redirect_handler = __commonJS({ "node_modules/undici/lib/handler/redirect-handler.js"(exports2, module2) { "use strict"; var util5 = require_util2(); var { kBodyUsed } = require_symbols(); var assert = require("node:assert"); var { InvalidArgumentError } = require_errors(); var EE = require("node:events"); var redirectableStatusCodes = [300, 301, 302, 303, 307, 308]; var kBody = Symbol("body"); var BodyAsyncIterable = class { constructor(body) { this[kBody] = body; this[kBodyUsed] = false; } async *[Symbol.asyncIterator]() { assert(!this[kBodyUsed], "disturbed"); this[kBodyUsed] = true; yield* this[kBody]; } }; var RedirectHandler = class { constructor(dispatch, maxRedirections, opts, handler) { if (maxRedirections != null && (!Number.isInteger(maxRedirections) || maxRedirections < 0)) { throw new InvalidArgumentError("maxRedirections must be a positive number"); } util5.validateHandler(handler, opts.method, opts.upgrade); this.dispatch = dispatch; this.location = null; this.abort = null; this.opts = { ...opts, maxRedirections: 0 }; this.maxRedirections = maxRedirections; this.handler = handler; this.history = []; this.redirectionLimitReached = false; if (util5.isStream(this.opts.body)) { if (util5.bodyLength(this.opts.body) === 0) { this.opts.body.on("data", function() { assert(false); }); } if (typeof this.opts.body.readableDidRead !== "boolean") { this.opts.body[kBodyUsed] = false; EE.prototype.on.call(this.opts.body, "data", function() { this[kBodyUsed] = true; }); } } else if (this.opts.body && typeof this.opts.body.pipeTo === "function") { this.opts.body = new BodyAsyncIterable(this.opts.body); } else if (this.opts.body && typeof this.opts.body !== "string" && !ArrayBuffer.isView(this.opts.body) && util5.isIterable(this.opts.body)) { this.opts.body = new BodyAsyncIterable(this.opts.body); } } onConnect(abort) { this.abort = abort; this.handler.onConnect(abort, { history: this.history }); } onUpgrade(statusCode, headers, socket) { this.handler.onUpgrade(statusCode, headers, socket); } onError(error) { this.handler.onError(error); } onHeaders(statusCode, headers, resume, statusText) { this.location = this.history.length >= this.maxRedirections || util5.isDisturbed(this.opts.body) ? null : parseLocation(statusCode, headers); if (this.opts.throwOnMaxRedirect && this.history.length >= this.maxRedirections) { if (this.request) { this.request.abort(new Error("max redirects")); } this.redirectionLimitReached = true; this.abort(new Error("max redirects")); return; } if (this.opts.origin) { this.history.push(new URL(this.opts.path, this.opts.origin)); } if (!this.location) { return this.handler.onHeaders(statusCode, headers, resume, statusText); } const { origin: origin2, pathname, search } = util5.parseURL(new URL(this.location, this.opts.origin && new URL(this.opts.path, this.opts.origin))); const path = search ? `${pathname}${search}` : pathname; this.opts.headers = cleanRequestHeaders(this.opts.headers, statusCode === 303, this.opts.origin !== origin2); this.opts.path = path; this.opts.origin = origin2; this.opts.maxRedirections = 0; this.opts.query = null; if (statusCode === 303 && this.opts.method !== "HEAD") { this.opts.method = "GET"; this.opts.body = null; } } onData(chunk) { if (this.location) { } else { return this.handler.onData(chunk); } } onComplete(trailers) { if (this.location) { this.location = null; this.abort = null; this.dispatch(this.opts, this); } else { this.handler.onComplete(trailers); } } onBodySent(chunk) { if (this.handler.onBodySent) { this.handler.onBodySent(chunk); } } }; function parseLocation(statusCode, headers) { if (redirectableStatusCodes.indexOf(statusCode) === -1) { return null; } for (let i = 0; i < headers.length; i += 2) { if (headers[i].length === 8 && util5.headerNameToString(headers[i]) === "location") { return headers[i + 1]; } } } function shouldRemoveHeader(header, removeContent, unknownOrigin) { if (header.length === 4) { return util5.headerNameToString(header) === "host"; } if (removeContent && util5.headerNameToString(header).startsWith("content-")) { return true; } if (unknownOrigin && (header.length === 13 || header.length === 6 || header.length === 19)) { const name = util5.headerNameToString(header); return name === "authorization" || name === "cookie" || name === "proxy-authorization"; } return false; } function cleanRequestHeaders(headers, removeContent, unknownOrigin) { const ret = []; if (Array.isArray(headers)) { for (let i = 0; i < headers.length; i += 2) { if (!shouldRemoveHeader(headers[i], removeContent, unknownOrigin)) { ret.push(headers[i], headers[i + 1]); } } } else if (headers && typeof headers === "object") { for (const key of Object.keys(headers)) { if (!shouldRemoveHeader(key, removeContent, unknownOrigin)) { ret.push(key, headers[key]); } } } else { assert(headers == null, "headers must be an object or an array"); } return ret; } module2.exports = RedirectHandler; } }); // node_modules/undici/lib/interceptor/redirect-interceptor.js var require_redirect_interceptor = __commonJS({ "node_modules/undici/lib/interceptor/redirect-interceptor.js"(exports2, module2) { "use strict"; var RedirectHandler = require_redirect_handler(); function createRedirectInterceptor({ maxRedirections: defaultMaxRedirections }) { return (dispatch) => { return function Intercept(opts, handler) { const { maxRedirections = defaultMaxRedirections } = opts; if (!maxRedirections) { return dispatch(opts, handler); } const redirectHandler = new RedirectHandler(dispatch, maxRedirections, opts, handler); opts = { ...opts, maxRedirections: 0 }; return dispatch(opts, redirectHandler); }; }; } module2.exports = createRedirectInterceptor; } }); // node_modules/undici/lib/dispatcher/client.js var require_client = __commonJS({ "node_modules/undici/lib/dispatcher/client.js"(exports2, module2) { "use strict"; var assert = require("node:assert"); var net = require("node:net"); var http2 = require("node:http"); var util5 = require_util2(); var { channels } = require_diagnostics(); var Request2 = require_request(); var DispatcherBase = require_dispatcher_base(); var { InvalidArgumentError, InformationalError, ClientDestroyedError } = require_errors(); var buildConnector = require_connect(); var { kUrl, kServerName, kClient, kBusy, kConnect, kResuming, kRunning, kPending, kSize, kQueue, kConnected, kConnecting, kNeedDrain, kKeepAliveDefaultTimeout, kHostHeader, kPendingIdx, kRunningIdx, kError, kPipelining, kKeepAliveTimeoutValue, kMaxHeadersSize, kKeepAliveMaxTimeout, kKeepAliveTimeoutThreshold, kHeadersTimeout, kBodyTimeout, kStrictContentLength, kConnector, kMaxRedirections, kMaxRequests, kCounter, kClose, kDestroy, kDispatch, kInterceptors, kLocalAddress, kMaxResponseSize, kOnError, kHTTPContext, kMaxConcurrentStreams, kResume } = require_symbols(); var connectH1 = require_client_h1(); var connectH2 = require_client_h2(); var deprecatedInterceptorWarned = false; var kClosedResolve = Symbol("kClosedResolve"); var noop2 = () => { }; function getPipelining(client) { return client[kPipelining] ?? client[kHTTPContext]?.defaultPipelining ?? 1; } var Client = class extends DispatcherBase { /** * * @param {string|URL} url * @param {import('../../types/client.js').Client.Options} options */ constructor(url2, { interceptors, maxHeaderSize, headersTimeout, socketTimeout, requestTimeout, connectTimeout, bodyTimeout, idleTimeout, keepAlive, keepAliveTimeout, maxKeepAliveTimeout, keepAliveMaxTimeout, keepAliveTimeoutThreshold, socketPath, pipelining, tls, strictContentLength, maxCachedSessions, maxRedirections, connect: connect2, maxRequestsPerClient, localAddress, maxResponseSize, autoSelectFamily, autoSelectFamilyAttemptTimeout, // h2 maxConcurrentStreams, allowH2 } = {}) { super(); if (keepAlive !== void 0) { throw new InvalidArgumentError("unsupported keepAlive, use pipelining=0 instead"); } if (socketTimeout !== void 0) { throw new InvalidArgumentError("unsupported socketTimeout, use headersTimeout & bodyTimeout instead"); } if (requestTimeout !== void 0) { throw new InvalidArgumentError("unsupported requestTimeout, use headersTimeout & bodyTimeout instead"); } if (idleTimeout !== void 0) { throw new InvalidArgumentError("unsupported idleTimeout, use keepAliveTimeout instead"); } if (maxKeepAliveTimeout !== void 0) { throw new InvalidArgumentError("unsupported maxKeepAliveTimeout, use keepAliveMaxTimeout instead"); } if (maxHeaderSize != null && !Number.isFinite(maxHeaderSize)) { throw new InvalidArgumentError("invalid maxHeaderSize"); } if (socketPath != null && typeof socketPath !== "string") { throw new InvalidArgumentError("invalid socketPath"); } if (connectTimeout != null && (!Number.isFinite(connectTimeout) || connectTimeout < 0)) { throw new InvalidArgumentError("invalid connectTimeout"); } if (keepAliveTimeout != null && (!Number.isFinite(keepAliveTimeout) || keepAliveTimeout <= 0)) { throw new InvalidArgumentError("invalid keepAliveTimeout"); } if (keepAliveMaxTimeout != null && (!Number.isFinite(keepAliveMaxTimeout) || keepAliveMaxTimeout <= 0)) { throw new InvalidArgumentError("invalid keepAliveMaxTimeout"); } if (keepAliveTimeoutThreshold != null && !Number.isFinite(keepAliveTimeoutThreshold)) { throw new InvalidArgumentError("invalid keepAliveTimeoutThreshold"); } if (headersTimeout != null && (!Number.isInteger(headersTimeout) || headersTimeout < 0)) { throw new InvalidArgumentError("headersTimeout must be a positive integer or zero"); } if (bodyTimeout != null && (!Number.isInteger(bodyTimeout) || bodyTimeout < 0)) { throw new InvalidArgumentError("bodyTimeout must be a positive integer or zero"); } if (connect2 != null && typeof connect2 !== "function" && typeof connect2 !== "object") { throw new InvalidArgumentError("connect must be a function or an object"); } if (maxRedirections != null && (!Number.isInteger(maxRedirections) || maxRedirections < 0)) { throw new InvalidArgumentError("maxRedirections must be a positive number"); } if (maxRequestsPerClient != null && (!Number.isInteger(maxRequestsPerClient) || maxRequestsPerClient < 0)) { throw new InvalidArgumentError("maxRequestsPerClient must be a positive number"); } if (localAddress != null && (typeof localAddress !== "string" || net.isIP(localAddress) === 0)) { throw new InvalidArgumentError("localAddress must be valid string IP address"); } if (maxResponseSize != null && (!Number.isInteger(maxResponseSize) || maxResponseSize < -1)) { throw new InvalidArgumentError("maxResponseSize must be a positive number"); } if (autoSelectFamilyAttemptTimeout != null && (!Number.isInteger(autoSelectFamilyAttemptTimeout) || autoSelectFamilyAttemptTimeout < -1)) { throw new InvalidArgumentError("autoSelectFamilyAttemptTimeout must be a positive number"); } if (allowH2 != null && typeof allowH2 !== "boolean") { throw new InvalidArgumentError("allowH2 must be a valid boolean value"); } if (maxConcurrentStreams != null && (typeof maxConcurrentStreams !== "number" || maxConcurrentStreams < 1)) { throw new InvalidArgumentError("maxConcurrentStreams must be a positive integer, greater than 0"); } if (typeof connect2 !== "function") { connect2 = buildConnector({ ...tls, maxCachedSessions, allowH2, socketPath, timeout: connectTimeout, ...autoSelectFamily ? { autoSelectFamily, autoSelectFamilyAttemptTimeout } : void 0, ...connect2 }); } if (interceptors?.Client && Array.isArray(interceptors.Client)) { this[kInterceptors] = interceptors.Client; if (!deprecatedInterceptorWarned) { deprecatedInterceptorWarned = true; process.emitWarning("Client.Options#interceptor is deprecated. Use Dispatcher#compose instead.", { code: "UNDICI-CLIENT-INTERCEPTOR-DEPRECATED" }); } } else { this[kInterceptors] = [createRedirectInterceptor({ maxRedirections })]; } this[kUrl] = util5.parseOrigin(url2); this[kConnector] = connect2; this[kPipelining] = pipelining != null ? pipelining : 1; this[kMaxHeadersSize] = maxHeaderSize || http2.maxHeaderSize; this[kKeepAliveDefaultTimeout] = keepAliveTimeout == null ? 4e3 : keepAliveTimeout; this[kKeepAliveMaxTimeout] = keepAliveMaxTimeout == null ? 6e5 : keepAliveMaxTimeout; this[kKeepAliveTimeoutThreshold] = keepAliveTimeoutThreshold == null ? 2e3 : keepAliveTimeoutThreshold; this[kKeepAliveTimeoutValue] = this[kKeepAliveDefaultTimeout]; this[kServerName] = null; this[kLocalAddress] = localAddress != null ? localAddress : null; this[kResuming] = 0; this[kNeedDrain] = 0; this[kHostHeader] = `host: ${this[kUrl].hostname}${this[kUrl].port ? `:${this[kUrl].port}` : ""}\r `; this[kBodyTimeout] = bodyTimeout != null ? bodyTimeout : 3e5; this[kHeadersTimeout] = headersTimeout != null ? headersTimeout : 3e5; this[kStrictContentLength] = strictContentLength == null ? true : strictContentLength; this[kMaxRedirections] = maxRedirections; this[kMaxRequests] = maxRequestsPerClient; this[kClosedResolve] = null; this[kMaxResponseSize] = maxResponseSize > -1 ? maxResponseSize : -1; this[kMaxConcurrentStreams] = maxConcurrentStreams != null ? maxConcurrentStreams : 100; this[kHTTPContext] = null; this[kQueue] = []; this[kRunningIdx] = 0; this[kPendingIdx] = 0; this[kResume] = (sync) => resume(this, sync); this[kOnError] = (err2) => onError(this, err2); } get pipelining() { return this[kPipelining]; } set pipelining(value) { this[kPipelining] = value; this[kResume](true); } get [kPending]() { return this[kQueue].length - this[kPendingIdx]; } get [kRunning]() { return this[kPendingIdx] - this[kRunningIdx]; } get [kSize]() { return this[kQueue].length - this[kRunningIdx]; } get [kConnected]() { return !!this[kHTTPContext] && !this[kConnecting] && !this[kHTTPContext].destroyed; } get [kBusy]() { return Boolean( this[kHTTPContext]?.busy(null) || this[kSize] >= (getPipelining(this) || 1) || this[kPending] > 0 ); } /* istanbul ignore: only used for test */ [kConnect](cb) { connect(this); this.once("connect", cb); } [kDispatch](opts, handler) { const origin2 = opts.origin || this[kUrl].origin; const request = new Request2(origin2, opts, handler); this[kQueue].push(request); if (this[kResuming]) { } else if (util5.bodyLength(request.body) == null && util5.isIterable(request.body)) { this[kResuming] = 1; queueMicrotask(() => resume(this)); } else { this[kResume](true); } if (this[kResuming] && this[kNeedDrain] !== 2 && this[kBusy]) { this[kNeedDrain] = 2; } return this[kNeedDrain] < 2; } async [kClose]() { return new Promise((resolve) => { if (this[kSize]) { this[kClosedResolve] = resolve; } else { resolve(null); } }); } async [kDestroy](err2) { return new Promise((resolve) => { const requests = this[kQueue].splice(this[kPendingIdx]); for (let i = 0; i < requests.length; i++) { const request = requests[i]; util5.errorRequest(this, request, err2); } const callback = () => { if (this[kClosedResolve]) { this[kClosedResolve](); this[kClosedResolve] = null; } resolve(null); }; if (this[kHTTPContext]) { this[kHTTPContext].destroy(err2, callback); this[kHTTPContext] = null; } else { queueMicrotask(callback); } this[kResume](); }); } }; var createRedirectInterceptor = require_redirect_interceptor(); function onError(client, err2) { if (client[kRunning] === 0 && err2.code !== "UND_ERR_INFO" && err2.code !== "UND_ERR_SOCKET") { assert(client[kPendingIdx] === client[kRunningIdx]); const requests = client[kQueue].splice(client[kRunningIdx]); for (let i = 0; i < requests.length; i++) { const request = requests[i]; util5.errorRequest(client, request, err2); } assert(client[kSize] === 0); } } async function connect(client) { assert(!client[kConnecting]); assert(!client[kHTTPContext]); let { host, hostname, protocol, port } = client[kUrl]; if (hostname[0] === "[") { const idx = hostname.indexOf("]"); assert(idx !== -1); const ip = hostname.substring(1, idx); assert(net.isIP(ip)); hostname = ip; } client[kConnecting] = true; if (channels.beforeConnect.hasSubscribers) { channels.beforeConnect.publish({ connectParams: { host, hostname, protocol, port, version: client[kHTTPContext]?.version, servername: client[kServerName], localAddress: client[kLocalAddress] }, connector: client[kConnector] }); } try { const socket = await new Promise((resolve, reject) => { client[kConnector]({ host, hostname, protocol, port, servername: client[kServerName], localAddress: client[kLocalAddress] }, (err2, socket2) => { if (err2) { reject(err2); } else { resolve(socket2); } }); }); if (client.destroyed) { util5.destroy(socket.on("error", noop2), new ClientDestroyedError()); return; } assert(socket); try { client[kHTTPContext] = socket.alpnProtocol === "h2" ? await connectH2(client, socket) : await connectH1(client, socket); } catch (err2) { socket.destroy().on("error", noop2); throw err2; } client[kConnecting] = false; socket[kCounter] = 0; socket[kMaxRequests] = client[kMaxRequests]; socket[kClient] = client; socket[kError] = null; if (channels.connected.hasSubscribers) { channels.connected.publish({ connectParams: { host, hostname, protocol, port, version: client[kHTTPContext]?.version, servername: client[kServerName], localAddress: client[kLocalAddress] }, connector: client[kConnector], socket }); } client.emit("connect", client[kUrl], [client]); } catch (err2) { if (client.destroyed) { return; } client[kConnecting] = false; if (channels.connectError.hasSubscribers) { channels.connectError.publish({ connectParams: { host, hostname, protocol, port, version: client[kHTTPContext]?.version, servername: client[kServerName], localAddress: client[kLocalAddress] }, connector: client[kConnector], error: err2 }); } if (err2.code === "ERR_TLS_CERT_ALTNAME_INVALID") { assert(client[kRunning] === 0); while (client[kPending] > 0 && client[kQueue][client[kPendingIdx]].servername === client[kServerName]) { const request = client[kQueue][client[kPendingIdx]++]; util5.errorRequest(client, request, err2); } } else { onError(client, err2); } client.emit("connectionError", client[kUrl], [client], err2); } client[kResume](); } function emitDrain(client) { client[kNeedDrain] = 0; client.emit("drain", client[kUrl], [client]); } function resume(client, sync) { if (client[kResuming] === 2) { return; } client[kResuming] = 2; _resume(client, sync); client[kResuming] = 0; if (client[kRunningIdx] > 256) { client[kQueue].splice(0, client[kRunningIdx]); client[kPendingIdx] -= client[kRunningIdx]; client[kRunningIdx] = 0; } } function _resume(client, sync) { while (true) { if (client.destroyed) { assert(client[kPending] === 0); return; } if (client[kClosedResolve] && !client[kSize]) { client[kClosedResolve](); client[kClosedResolve] = null; return; } if (client[kHTTPContext]) { client[kHTTPContext].resume(); } if (client[kBusy]) { client[kNeedDrain] = 2; } else if (client[kNeedDrain] === 2) { if (sync) { client[kNeedDrain] = 1; queueMicrotask(() => emitDrain(client)); } else { emitDrain(client); } continue; } if (client[kPending] === 0) { return; } if (client[kRunning] >= (getPipelining(client) || 1)) { return; } const request = client[kQueue][client[kPendingIdx]]; if (client[kUrl].protocol === "https:" && client[kServerName] !== request.servername) { if (client[kRunning] > 0) { return; } client[kServerName] = request.servername; client[kHTTPContext]?.destroy(new InformationalError("servername changed"), () => { client[kHTTPContext] = null; resume(client); }); } if (client[kConnecting]) { return; } if (!client[kHTTPContext]) { connect(client); return; } if (client[kHTTPContext].destroyed) { return; } if (client[kHTTPContext].busy(request)) { return; } if (!request.aborted && client[kHTTPContext].write(request)) { client[kPendingIdx]++; } else { client[kQueue].splice(client[kPendingIdx], 1); } } } module2.exports = Client; } }); // node_modules/undici/lib/dispatcher/fixed-queue.js var require_fixed_queue = __commonJS({ "node_modules/undici/lib/dispatcher/fixed-queue.js"(exports2, module2) { "use strict"; var kSize = 2048; var kMask = kSize - 1; var FixedCircularBuffer = class { constructor() { this.bottom = 0; this.top = 0; this.list = new Array(kSize); this.next = null; } isEmpty() { return this.top === this.bottom; } isFull() { return (this.top + 1 & kMask) === this.bottom; } push(data2) { this.list[this.top] = data2; this.top = this.top + 1 & kMask; } shift() { const nextItem = this.list[this.bottom]; if (nextItem === void 0) return null; this.list[this.bottom] = void 0; this.bottom = this.bottom + 1 & kMask; return nextItem; } }; module2.exports = class FixedQueue { constructor() { this.head = this.tail = new FixedCircularBuffer(); } isEmpty() { return this.head.isEmpty(); } push(data2) { if (this.head.isFull()) { this.head = this.head.next = new FixedCircularBuffer(); } this.head.push(data2); } shift() { const tail = this.tail; const next2 = tail.shift(); if (tail.isEmpty() && tail.next !== null) { this.tail = tail.next; } return next2; } }; } }); // node_modules/undici/lib/dispatcher/pool-stats.js var require_pool_stats = __commonJS({ "node_modules/undici/lib/dispatcher/pool-stats.js"(exports2, module2) { var { kFree, kConnected, kPending, kQueued, kRunning, kSize } = require_symbols(); var kPool = Symbol("pool"); var PoolStats = class { constructor(pool) { this[kPool] = pool; } get connected() { return this[kPool][kConnected]; } get free() { return this[kPool][kFree]; } get pending() { return this[kPool][kPending]; } get queued() { return this[kPool][kQueued]; } get running() { return this[kPool][kRunning]; } get size() { return this[kPool][kSize]; } }; module2.exports = PoolStats; } }); // node_modules/undici/lib/dispatcher/pool-base.js var require_pool_base = __commonJS({ "node_modules/undici/lib/dispatcher/pool-base.js"(exports2, module2) { "use strict"; var DispatcherBase = require_dispatcher_base(); var FixedQueue = require_fixed_queue(); var { kConnected, kSize, kRunning, kPending, kQueued, kBusy, kFree, kUrl, kClose, kDestroy, kDispatch } = require_symbols(); var PoolStats = require_pool_stats(); var kClients = Symbol("clients"); var kNeedDrain = Symbol("needDrain"); var kQueue = Symbol("queue"); var kClosedResolve = Symbol("closed resolve"); var kOnDrain = Symbol("onDrain"); var kOnConnect = Symbol("onConnect"); var kOnDisconnect = Symbol("onDisconnect"); var kOnConnectionError = Symbol("onConnectionError"); var kGetDispatcher = Symbol("get dispatcher"); var kAddClient = Symbol("add client"); var kRemoveClient = Symbol("remove client"); var kStats = Symbol("stats"); var PoolBase = class extends DispatcherBase { constructor() { super(); this[kQueue] = new FixedQueue(); this[kClients] = []; this[kQueued] = 0; const pool = this; this[kOnDrain] = function onDrain(origin2, targets) { const queue = pool[kQueue]; let needDrain = false; while (!needDrain) { const item = queue.shift(); if (!item) { break; } pool[kQueued]--; needDrain = !this.dispatch(item.opts, item.handler); } this[kNeedDrain] = needDrain; if (!this[kNeedDrain] && pool[kNeedDrain]) { pool[kNeedDrain] = false; pool.emit("drain", origin2, [pool, ...targets]); } if (pool[kClosedResolve] && queue.isEmpty()) { Promise.all(pool[kClients].map((c) => c.close())).then(pool[kClosedResolve]); } }; this[kOnConnect] = (origin2, targets) => { pool.emit("connect", origin2, [pool, ...targets]); }; this[kOnDisconnect] = (origin2, targets, err2) => { pool.emit("disconnect", origin2, [pool, ...targets], err2); }; this[kOnConnectionError] = (origin2, targets, err2) => { pool.emit("connectionError", origin2, [pool, ...targets], err2); }; this[kStats] = new PoolStats(this); } get [kBusy]() { return this[kNeedDrain]; } get [kConnected]() { return this[kClients].filter((client) => client[kConnected]).length; } get [kFree]() { return this[kClients].filter((client) => client[kConnected] && !client[kNeedDrain]).length; } get [kPending]() { let ret = this[kQueued]; for (const { [kPending]: pending } of this[kClients]) { ret += pending; } return ret; } get [kRunning]() { let ret = 0; for (const { [kRunning]: running } of this[kClients]) { ret += running; } return ret; } get [kSize]() { let ret = this[kQueued]; for (const { [kSize]: size } of this[kClients]) { ret += size; } return ret; } get stats() { return this[kStats]; } async [kClose]() { if (this[kQueue].isEmpty()) { await Promise.all(this[kClients].map((c) => c.close())); } else { await new Promise((resolve) => { this[kClosedResolve] = resolve; }); } } async [kDestroy](err2) { while (true) { const item = this[kQueue].shift(); if (!item) { break; } item.handler.onError(err2); } await Promise.all(this[kClients].map((c) => c.destroy(err2))); } [kDispatch](opts, handler) { const dispatcher = this[kGetDispatcher](); if (!dispatcher) { this[kNeedDrain] = true; this[kQueue].push({ opts, handler }); this[kQueued]++; } else if (!dispatcher.dispatch(opts, handler)) { dispatcher[kNeedDrain] = true; this[kNeedDrain] = !this[kGetDispatcher](); } return !this[kNeedDrain]; } [kAddClient](client) { client.on("drain", this[kOnDrain]).on("connect", this[kOnConnect]).on("disconnect", this[kOnDisconnect]).on("connectionError", this[kOnConnectionError]); this[kClients].push(client); if (this[kNeedDrain]) { queueMicrotask(() => { if (this[kNeedDrain]) { this[kOnDrain](client[kUrl], [this, client]); } }); } return this; } [kRemoveClient](client) { client.close(() => { const idx = this[kClients].indexOf(client); if (idx !== -1) { this[kClients].splice(idx, 1); } }); this[kNeedDrain] = this[kClients].some((dispatcher) => !dispatcher[kNeedDrain] && dispatcher.closed !== true && dispatcher.destroyed !== true); } }; module2.exports = { PoolBase, kClients, kNeedDrain, kAddClient, kRemoveClient, kGetDispatcher }; } }); // node_modules/undici/lib/dispatcher/pool.js var require_pool = __commonJS({ "node_modules/undici/lib/dispatcher/pool.js"(exports2, module2) { "use strict"; var { PoolBase, kClients, kNeedDrain, kAddClient, kGetDispatcher } = require_pool_base(); var Client = require_client(); var { InvalidArgumentError } = require_errors(); var util5 = require_util2(); var { kUrl, kInterceptors } = require_symbols(); var buildConnector = require_connect(); var kOptions = Symbol("options"); var kConnections = Symbol("connections"); var kFactory = Symbol("factory"); function defaultFactory(origin2, opts) { return new Client(origin2, opts); } var Pool = class extends PoolBase { constructor(origin2, { connections, factory = defaultFactory, connect, connectTimeout, tls, maxCachedSessions, socketPath, autoSelectFamily, autoSelectFamilyAttemptTimeout, allowH2, ...options } = {}) { super(); if (connections != null && (!Number.isFinite(connections) || connections < 0)) { throw new InvalidArgumentError("invalid connections"); } if (typeof factory !== "function") { throw new InvalidArgumentError("factory must be a function."); } if (connect != null && typeof connect !== "function" && typeof connect !== "object") { throw new InvalidArgumentError("connect must be a function or an object"); } if (typeof connect !== "function") { connect = buildConnector({ ...tls, maxCachedSessions, allowH2, socketPath, timeout: connectTimeout, ...autoSelectFamily ? { autoSelectFamily, autoSelectFamilyAttemptTimeout } : void 0, ...connect }); } this[kInterceptors] = options.interceptors?.Pool && Array.isArray(options.interceptors.Pool) ? options.interceptors.Pool : []; this[kConnections] = connections || null; this[kUrl] = util5.parseOrigin(origin2); this[kOptions] = { ...util5.deepClone(options), connect, allowH2 }; this[kOptions].interceptors = options.interceptors ? { ...options.interceptors } : void 0; this[kFactory] = factory; this.on("connectionError", (origin3, targets, error) => { for (const target of targets) { const idx = this[kClients].indexOf(target); if (idx !== -1) { this[kClients].splice(idx, 1); } } }); } [kGetDispatcher]() { for (const client of this[kClients]) { if (!client[kNeedDrain]) { return client; } } if (!this[kConnections] || this[kClients].length < this[kConnections]) { const dispatcher = this[kFactory](this[kUrl], this[kOptions]); this[kAddClient](dispatcher); return dispatcher; } } }; module2.exports = Pool; } }); // node_modules/undici/lib/dispatcher/balanced-pool.js var require_balanced_pool = __commonJS({ "node_modules/undici/lib/dispatcher/balanced-pool.js"(exports2, module2) { "use strict"; var { BalancedPoolMissingUpstreamError, InvalidArgumentError } = require_errors(); var { PoolBase, kClients, kNeedDrain, kAddClient, kRemoveClient, kGetDispatcher } = require_pool_base(); var Pool = require_pool(); var { kUrl, kInterceptors } = require_symbols(); var { parseOrigin } = require_util2(); var kFactory = Symbol("factory"); var kOptions = Symbol("options"); var kGreatestCommonDivisor = Symbol("kGreatestCommonDivisor"); var kCurrentWeight = Symbol("kCurrentWeight"); var kIndex = Symbol("kIndex"); var kWeight = Symbol("kWeight"); var kMaxWeightPerServer = Symbol("kMaxWeightPerServer"); var kErrorPenalty = Symbol("kErrorPenalty"); function getGreatestCommonDivisor(a, b) { if (a === 0) return b; while (b !== 0) { const t = b; b = a % b; a = t; } return a; } function defaultFactory(origin2, opts) { return new Pool(origin2, opts); } var BalancedPool = class extends PoolBase { constructor(upstreams = [], { factory = defaultFactory, ...opts } = {}) { super(); this[kOptions] = opts; this[kIndex] = -1; this[kCurrentWeight] = 0; this[kMaxWeightPerServer] = this[kOptions].maxWeightPerServer || 100; this[kErrorPenalty] = this[kOptions].errorPenalty || 15; if (!Array.isArray(upstreams)) { upstreams = [upstreams]; } if (typeof factory !== "function") { throw new InvalidArgumentError("factory must be a function."); } this[kInterceptors] = opts.interceptors?.BalancedPool && Array.isArray(opts.interceptors.BalancedPool) ? opts.interceptors.BalancedPool : []; this[kFactory] = factory; for (const upstream of upstreams) { this.addUpstream(upstream); } this._updateBalancedPoolStats(); } addUpstream(upstream) { const upstreamOrigin = parseOrigin(upstream).origin; if (this[kClients].find((pool2) => pool2[kUrl].origin === upstreamOrigin && pool2.closed !== true && pool2.destroyed !== true)) { return this; } const pool = this[kFactory](upstreamOrigin, Object.assign({}, this[kOptions])); this[kAddClient](pool); pool.on("connect", () => { pool[kWeight] = Math.min(this[kMaxWeightPerServer], pool[kWeight] + this[kErrorPenalty]); }); pool.on("connectionError", () => { pool[kWeight] = Math.max(1, pool[kWeight] - this[kErrorPenalty]); this._updateBalancedPoolStats(); }); pool.on("disconnect", (...args) => { const err2 = args[2]; if (err2 && err2.code === "UND_ERR_SOCKET") { pool[kWeight] = Math.max(1, pool[kWeight] - this[kErrorPenalty]); this._updateBalancedPoolStats(); } }); for (const client of this[kClients]) { client[kWeight] = this[kMaxWeightPerServer]; } this._updateBalancedPoolStats(); return this; } _updateBalancedPoolStats() { let result = 0; for (let i = 0; i < this[kClients].length; i++) { result = getGreatestCommonDivisor(this[kClients][i][kWeight], result); } this[kGreatestCommonDivisor] = result; } removeUpstream(upstream) { const upstreamOrigin = parseOrigin(upstream).origin; const pool = this[kClients].find((pool2) => pool2[kUrl].origin === upstreamOrigin && pool2.closed !== true && pool2.destroyed !== true); if (pool) { this[kRemoveClient](pool); } return this; } get upstreams() { return this[kClients].filter((dispatcher) => dispatcher.closed !== true && dispatcher.destroyed !== true).map((p) => p[kUrl].origin); } [kGetDispatcher]() { if (this[kClients].length === 0) { throw new BalancedPoolMissingUpstreamError(); } const dispatcher = this[kClients].find((dispatcher2) => !dispatcher2[kNeedDrain] && dispatcher2.closed !== true && dispatcher2.destroyed !== true); if (!dispatcher) { return; } const allClientsBusy = this[kClients].map((pool) => pool[kNeedDrain]).reduce((a, b) => a && b, true); if (allClientsBusy) { return; } let counter = 0; let maxWeightIndex = this[kClients].findIndex((pool) => !pool[kNeedDrain]); while (counter++ < this[kClients].length) { this[kIndex] = (this[kIndex] + 1) % this[kClients].length; const pool = this[kClients][this[kIndex]]; if (pool[kWeight] > this[kClients][maxWeightIndex][kWeight] && !pool[kNeedDrain]) { maxWeightIndex = this[kIndex]; } if (this[kIndex] === 0) { this[kCurrentWeight] = this[kCurrentWeight] - this[kGreatestCommonDivisor]; if (this[kCurrentWeight] <= 0) { this[kCurrentWeight] = this[kMaxWeightPerServer]; } } if (pool[kWeight] >= this[kCurrentWeight] && !pool[kNeedDrain]) { return pool; } } this[kCurrentWeight] = this[kClients][maxWeightIndex][kWeight]; this[kIndex] = maxWeightIndex; return this[kClients][maxWeightIndex]; } }; module2.exports = BalancedPool; } }); // node_modules/undici/lib/dispatcher/agent.js var require_agent = __commonJS({ "node_modules/undici/lib/dispatcher/agent.js"(exports2, module2) { "use strict"; var { InvalidArgumentError } = require_errors(); var { kClients, kRunning, kClose, kDestroy, kDispatch, kInterceptors } = require_symbols(); var DispatcherBase = require_dispatcher_base(); var Pool = require_pool(); var Client = require_client(); var util5 = require_util2(); var createRedirectInterceptor = require_redirect_interceptor(); var kOnConnect = Symbol("onConnect"); var kOnDisconnect = Symbol("onDisconnect"); var kOnConnectionError = Symbol("onConnectionError"); var kMaxRedirections = Symbol("maxRedirections"); var kOnDrain = Symbol("onDrain"); var kFactory = Symbol("factory"); var kOptions = Symbol("options"); function defaultFactory(origin2, opts) { return opts && opts.connections === 1 ? new Client(origin2, opts) : new Pool(origin2, opts); } var Agent = class extends DispatcherBase { constructor({ factory = defaultFactory, maxRedirections = 0, connect, ...options } = {}) { super(); if (typeof factory !== "function") { throw new InvalidArgumentError("factory must be a function."); } if (connect != null && typeof connect !== "function" && typeof connect !== "object") { throw new InvalidArgumentError("connect must be a function or an object"); } if (!Number.isInteger(maxRedirections) || maxRedirections < 0) { throw new InvalidArgumentError("maxRedirections must be a positive number"); } if (connect && typeof connect !== "function") { connect = { ...connect }; } this[kInterceptors] = options.interceptors?.Agent && Array.isArray(options.interceptors.Agent) ? options.interceptors.Agent : [createRedirectInterceptor({ maxRedirections })]; this[kOptions] = { ...util5.deepClone(options), connect }; this[kOptions].interceptors = options.interceptors ? { ...options.interceptors } : void 0; this[kMaxRedirections] = maxRedirections; this[kFactory] = factory; this[kClients] = /* @__PURE__ */ new Map(); this[kOnDrain] = (origin2, targets) => { this.emit("drain", origin2, [this, ...targets]); }; this[kOnConnect] = (origin2, targets) => { this.emit("connect", origin2, [this, ...targets]); }; this[kOnDisconnect] = (origin2, targets, err2) => { this.emit("disconnect", origin2, [this, ...targets], err2); }; this[kOnConnectionError] = (origin2, targets, err2) => { this.emit("connectionError", origin2, [this, ...targets], err2); }; } get [kRunning]() { let ret = 0; for (const client of this[kClients].values()) { ret += client[kRunning]; } return ret; } [kDispatch](opts, handler) { let key; if (opts.origin && (typeof opts.origin === "string" || opts.origin instanceof URL)) { key = String(opts.origin); } else { throw new InvalidArgumentError("opts.origin must be a non-empty string or URL."); } let dispatcher = this[kClients].get(key); if (!dispatcher) { dispatcher = this[kFactory](opts.origin, this[kOptions]).on("drain", this[kOnDrain]).on("connect", this[kOnConnect]).on("disconnect", this[kOnDisconnect]).on("connectionError", this[kOnConnectionError]); this[kClients].set(key, dispatcher); } return dispatcher.dispatch(opts, handler); } async [kClose]() { const closePromises = []; for (const client of this[kClients].values()) { closePromises.push(client.close()); } this[kClients].clear(); await Promise.all(closePromises); } async [kDestroy](err2) { const destroyPromises = []; for (const client of this[kClients].values()) { destroyPromises.push(client.destroy(err2)); } this[kClients].clear(); await Promise.all(destroyPromises); } }; module2.exports = Agent; } }); // node_modules/undici/lib/dispatcher/proxy-agent.js var require_proxy_agent = __commonJS({ "node_modules/undici/lib/dispatcher/proxy-agent.js"(exports2, module2) { "use strict"; var { kProxy, kClose, kDestroy, kInterceptors } = require_symbols(); var { URL: URL2 } = require("node:url"); var Agent = require_agent(); var Pool = require_pool(); var DispatcherBase = require_dispatcher_base(); var { InvalidArgumentError, RequestAbortedError, SecureProxyConnectionError } = require_errors(); var buildConnector = require_connect(); var kAgent = Symbol("proxy agent"); var kClient = Symbol("proxy client"); var kProxyHeaders = Symbol("proxy headers"); var kRequestTls = Symbol("request tls settings"); var kProxyTls = Symbol("proxy tls settings"); var kConnectEndpoint = Symbol("connect endpoint function"); function defaultProtocolPort(protocol) { return protocol === "https:" ? 443 : 80; } function defaultFactory(origin2, opts) { return new Pool(origin2, opts); } var noop2 = () => { }; var ProxyAgent = class extends DispatcherBase { constructor(opts) { super(); if (!opts || typeof opts === "object" && !(opts instanceof URL2) && !opts.uri) { throw new InvalidArgumentError("Proxy uri is mandatory"); } const { clientFactory = defaultFactory } = opts; if (typeof clientFactory !== "function") { throw new InvalidArgumentError("Proxy opts.clientFactory must be a function."); } const url2 = this.#getUrl(opts); const { href, origin: origin2, port, protocol, username, password, hostname: proxyHostname } = url2; this[kProxy] = { uri: href, protocol }; this[kInterceptors] = opts.interceptors?.ProxyAgent && Array.isArray(opts.interceptors.ProxyAgent) ? opts.interceptors.ProxyAgent : []; this[kRequestTls] = opts.requestTls; this[kProxyTls] = opts.proxyTls; this[kProxyHeaders] = opts.headers || {}; if (opts.auth && opts.token) { throw new InvalidArgumentError("opts.auth cannot be used in combination with opts.token"); } else if (opts.auth) { this[kProxyHeaders]["proxy-authorization"] = `Basic ${opts.auth}`; } else if (opts.token) { this[kProxyHeaders]["proxy-authorization"] = opts.token; } else if (username && password) { this[kProxyHeaders]["proxy-authorization"] = `Basic ${Buffer.from(`${decodeURIComponent(username)}:${decodeURIComponent(password)}`).toString("base64")}`; } const connect = buildConnector({ ...opts.proxyTls }); this[kConnectEndpoint] = buildConnector({ ...opts.requestTls }); this[kClient] = clientFactory(url2, { connect }); this[kAgent] = new Agent({ ...opts, connect: async (opts2, callback) => { let requestedPath = opts2.host; if (!opts2.port) { requestedPath += `:${defaultProtocolPort(opts2.protocol)}`; } try { const { socket, statusCode } = await this[kClient].connect({ origin: origin2, port, path: requestedPath, signal: opts2.signal, headers: { ...this[kProxyHeaders], host: opts2.host }, servername: this[kProxyTls]?.servername || proxyHostname }); if (statusCode !== 200) { socket.on("error", noop2).destroy(); callback(new RequestAbortedError(`Proxy response (${statusCode}) !== 200 when HTTP Tunneling`)); } if (opts2.protocol !== "https:") { callback(null, socket); return; } let servername; if (this[kRequestTls]) { servername = this[kRequestTls].servername; } else { servername = opts2.servername; } this[kConnectEndpoint]({ ...opts2, servername, httpSocket: socket }, callback); } catch (err2) { if (err2.code === "ERR_TLS_CERT_ALTNAME_INVALID") { callback(new SecureProxyConnectionError(err2)); } else { callback(err2); } } } }); } dispatch(opts, handler) { const headers = buildHeaders(opts.headers); throwIfProxyAuthIsSent(headers); if (headers && !("host" in headers) && !("Host" in headers)) { const { host } = new URL2(opts.origin); headers.host = host; } return this[kAgent].dispatch( { ...opts, headers }, handler ); } /** * @param {import('../types/proxy-agent').ProxyAgent.Options | string | URL} opts * @returns {URL} */ #getUrl(opts) { if (typeof opts === "string") { return new URL2(opts); } else if (opts instanceof URL2) { return opts; } else { return new URL2(opts.uri); } } async [kClose]() { await this[kAgent].close(); await this[kClient].close(); } async [kDestroy]() { await this[kAgent].destroy(); await this[kClient].destroy(); } }; function buildHeaders(headers) { if (Array.isArray(headers)) { const headersPair = {}; for (let i = 0; i < headers.length; i += 2) { headersPair[headers[i]] = headers[i + 1]; } return headersPair; } return headers; } function throwIfProxyAuthIsSent(headers) { const existProxyAuth = headers && Object.keys(headers).find((key) => key.toLowerCase() === "proxy-authorization"); if (existProxyAuth) { throw new InvalidArgumentError("Proxy-Authorization should be sent in ProxyAgent constructor"); } } module2.exports = ProxyAgent; } }); // node_modules/undici/lib/dispatcher/env-http-proxy-agent.js var require_env_http_proxy_agent = __commonJS({ "node_modules/undici/lib/dispatcher/env-http-proxy-agent.js"(exports2, module2) { "use strict"; var DispatcherBase = require_dispatcher_base(); var { kClose, kDestroy, kClosed, kDestroyed, kDispatch, kNoProxyAgent, kHttpProxyAgent, kHttpsProxyAgent } = require_symbols(); var ProxyAgent = require_proxy_agent(); var Agent = require_agent(); var DEFAULT_PORTS = { "http:": 80, "https:": 443 }; var experimentalWarned = false; var EnvHttpProxyAgent = class extends DispatcherBase { #noProxyValue = null; #noProxyEntries = null; #opts = null; constructor(opts = {}) { super(); this.#opts = opts; if (!experimentalWarned) { experimentalWarned = true; process.emitWarning("EnvHttpProxyAgent is experimental, expect them to change at any time.", { code: "UNDICI-EHPA" }); } const { httpProxy, httpsProxy, noProxy, ...agentOpts } = opts; this[kNoProxyAgent] = new Agent(agentOpts); const HTTP_PROXY = httpProxy ?? process.env.http_proxy ?? process.env.HTTP_PROXY; if (HTTP_PROXY) { this[kHttpProxyAgent] = new ProxyAgent({ ...agentOpts, uri: HTTP_PROXY }); } else { this[kHttpProxyAgent] = this[kNoProxyAgent]; } const HTTPS_PROXY = httpsProxy ?? process.env.https_proxy ?? process.env.HTTPS_PROXY; if (HTTPS_PROXY) { this[kHttpsProxyAgent] = new ProxyAgent({ ...agentOpts, uri: HTTPS_PROXY }); } else { this[kHttpsProxyAgent] = this[kHttpProxyAgent]; } this.#parseNoProxy(); } [kDispatch](opts, handler) { const url2 = new URL(opts.origin); const agent = this.#getProxyAgentForUrl(url2); return agent.dispatch(opts, handler); } async [kClose]() { await this[kNoProxyAgent].close(); if (!this[kHttpProxyAgent][kClosed]) { await this[kHttpProxyAgent].close(); } if (!this[kHttpsProxyAgent][kClosed]) { await this[kHttpsProxyAgent].close(); } } async [kDestroy](err2) { await this[kNoProxyAgent].destroy(err2); if (!this[kHttpProxyAgent][kDestroyed]) { await this[kHttpProxyAgent].destroy(err2); } if (!this[kHttpsProxyAgent][kDestroyed]) { await this[kHttpsProxyAgent].destroy(err2); } } #getProxyAgentForUrl(url2) { let { protocol, host: hostname, port } = url2; hostname = hostname.replace(/:\d*$/, "").toLowerCase(); port = Number.parseInt(port, 10) || DEFAULT_PORTS[protocol] || 0; if (!this.#shouldProxy(hostname, port)) { return this[kNoProxyAgent]; } if (protocol === "https:") { return this[kHttpsProxyAgent]; } return this[kHttpProxyAgent]; } #shouldProxy(hostname, port) { if (this.#noProxyChanged) { this.#parseNoProxy(); } if (this.#noProxyEntries.length === 0) { return true; } if (this.#noProxyValue === "*") { return false; } for (let i = 0; i < this.#noProxyEntries.length; i++) { const entry2 = this.#noProxyEntries[i]; if (entry2.port && entry2.port !== port) { continue; } if (!/^[.*]/.test(entry2.hostname)) { if (hostname === entry2.hostname) { return false; } } else { if (hostname.endsWith(entry2.hostname.replace(/^\*/, ""))) { return false; } } } return true; } #parseNoProxy() { const noProxyValue = this.#opts.noProxy ?? this.#noProxyEnv; const noProxySplit = noProxyValue.split(/[,\s]/); const noProxyEntries = []; for (let i = 0; i < noProxySplit.length; i++) { const entry2 = noProxySplit[i]; if (!entry2) { continue; } const parsed = entry2.match(/^(.+):(\d+)$/); noProxyEntries.push({ hostname: (parsed ? parsed[1] : entry2).toLowerCase(), port: parsed ? Number.parseInt(parsed[2], 10) : 0 }); } this.#noProxyValue = noProxyValue; this.#noProxyEntries = noProxyEntries; } get #noProxyChanged() { if (this.#opts.noProxy !== void 0) { return false; } return this.#noProxyValue !== this.#noProxyEnv; } get #noProxyEnv() { return process.env.no_proxy ?? process.env.NO_PROXY ?? ""; } }; module2.exports = EnvHttpProxyAgent; } }); // node_modules/undici/lib/handler/retry-handler.js var require_retry_handler = __commonJS({ "node_modules/undici/lib/handler/retry-handler.js"(exports2, module2) { "use strict"; var assert = require("node:assert"); var { kRetryHandlerDefaultRetry } = require_symbols(); var { RequestRetryError } = require_errors(); var { isDisturbed, parseHeaders, parseRangeHeader, wrapRequestBody } = require_util2(); function calculateRetryAfterHeader(retryAfter) { const current = Date.now(); return new Date(retryAfter).getTime() - current; } var RetryHandler = class _RetryHandler { constructor(opts, handlers) { const { retryOptions, ...dispatchOpts } = opts; const { // Retry scoped retry: retryFn, maxRetries, maxTimeout, minTimeout, timeoutFactor, // Response scoped methods, errorCodes, retryAfter, statusCodes } = retryOptions ?? {}; this.dispatch = handlers.dispatch; this.handler = handlers.handler; this.opts = { ...dispatchOpts, body: wrapRequestBody(opts.body) }; this.abort = null; this.aborted = false; this.retryOpts = { retry: retryFn ?? _RetryHandler[kRetryHandlerDefaultRetry], retryAfter: retryAfter ?? true, maxTimeout: maxTimeout ?? 30 * 1e3, // 30s, minTimeout: minTimeout ?? 500, // .5s timeoutFactor: timeoutFactor ?? 2, maxRetries: maxRetries ?? 5, // What errors we should retry methods: methods ?? ["GET", "HEAD", "OPTIONS", "PUT", "DELETE", "TRACE"], // Indicates which errors to retry statusCodes: statusCodes ?? [500, 502, 503, 504, 429], // List of errors to retry errorCodes: errorCodes ?? [ "ECONNRESET", "ECONNREFUSED", "ENOTFOUND", "ENETDOWN", "ENETUNREACH", "EHOSTDOWN", "EHOSTUNREACH", "EPIPE", "UND_ERR_SOCKET" ] }; this.retryCount = 0; this.retryCountCheckpoint = 0; this.start = 0; this.end = null; this.etag = null; this.resume = null; this.handler.onConnect((reason) => { this.aborted = true; if (this.abort) { this.abort(reason); } else { this.reason = reason; } }); } onRequestSent() { if (this.handler.onRequestSent) { this.handler.onRequestSent(); } } onUpgrade(statusCode, headers, socket) { if (this.handler.onUpgrade) { this.handler.onUpgrade(statusCode, headers, socket); } } onConnect(abort) { if (this.aborted) { abort(this.reason); } else { this.abort = abort; } } onBodySent(chunk) { if (this.handler.onBodySent) return this.handler.onBodySent(chunk); } static [kRetryHandlerDefaultRetry](err2, { state, opts }, cb) { const { statusCode, code, headers } = err2; const { method, retryOptions } = opts; const { maxRetries, minTimeout, maxTimeout, timeoutFactor, statusCodes, errorCodes, methods } = retryOptions; const { counter } = state; if (code && code !== "UND_ERR_REQ_RETRY" && !errorCodes.includes(code)) { cb(err2); return; } if (Array.isArray(methods) && !methods.includes(method)) { cb(err2); return; } if (statusCode != null && Array.isArray(statusCodes) && !statusCodes.includes(statusCode)) { cb(err2); return; } if (counter > maxRetries) { cb(err2); return; } let retryAfterHeader = headers?.["retry-after"]; if (retryAfterHeader) { retryAfterHeader = Number(retryAfterHeader); retryAfterHeader = Number.isNaN(retryAfterHeader) ? calculateRetryAfterHeader(retryAfterHeader) : retryAfterHeader * 1e3; } const retryTimeout = retryAfterHeader > 0 ? Math.min(retryAfterHeader, maxTimeout) : Math.min(minTimeout * timeoutFactor ** (counter - 1), maxTimeout); setTimeout(() => cb(null), retryTimeout); } onHeaders(statusCode, rawHeaders, resume, statusMessage) { const headers = parseHeaders(rawHeaders); this.retryCount += 1; if (statusCode >= 300) { if (this.retryOpts.statusCodes.includes(statusCode) === false) { return this.handler.onHeaders( statusCode, rawHeaders, resume, statusMessage ); } else { this.abort( new RequestRetryError("Request failed", statusCode, { headers, data: { count: this.retryCount } }) ); return false; } } if (this.resume != null) { this.resume = null; if (statusCode !== 206 && (this.start > 0 || statusCode !== 200)) { this.abort( new RequestRetryError("server does not support the range header and the payload was partially consumed", statusCode, { headers, data: { count: this.retryCount } }) ); return false; } const contentRange = parseRangeHeader(headers["content-range"]); if (!contentRange) { this.abort( new RequestRetryError("Content-Range mismatch", statusCode, { headers, data: { count: this.retryCount } }) ); return false; } if (this.etag != null && this.etag !== headers.etag) { this.abort( new RequestRetryError("ETag mismatch", statusCode, { headers, data: { count: this.retryCount } }) ); return false; } const { start, size, end: end2 = size - 1 } = contentRange; assert(this.start === start, "content-range mismatch"); assert(this.end == null || this.end === end2, "content-range mismatch"); this.resume = resume; return true; } if (this.end == null) { if (statusCode === 206) { const range = parseRangeHeader(headers["content-range"]); if (range == null) { return this.handler.onHeaders( statusCode, rawHeaders, resume, statusMessage ); } const { start, size, end: end2 = size - 1 } = range; assert( start != null && Number.isFinite(start), "content-range mismatch" ); assert(end2 != null && Number.isFinite(end2), "invalid content-length"); this.start = start; this.end = end2; } if (this.end == null) { const contentLength = headers["content-length"]; this.end = contentLength != null ? Number(contentLength) - 1 : null; } assert(Number.isFinite(this.start)); assert( this.end == null || Number.isFinite(this.end), "invalid content-length" ); this.resume = resume; this.etag = headers.etag != null ? headers.etag : null; if (this.etag != null && this.etag.startsWith("W/")) { this.etag = null; } return this.handler.onHeaders( statusCode, rawHeaders, resume, statusMessage ); } const err2 = new RequestRetryError("Request failed", statusCode, { headers, data: { count: this.retryCount } }); this.abort(err2); return false; } onData(chunk) { this.start += chunk.length; return this.handler.onData(chunk); } onComplete(rawTrailers) { this.retryCount = 0; return this.handler.onComplete(rawTrailers); } onError(err2) { if (this.aborted || isDisturbed(this.opts.body)) { return this.handler.onError(err2); } if (this.retryCount - this.retryCountCheckpoint > 0) { this.retryCount = this.retryCountCheckpoint + (this.retryCount - this.retryCountCheckpoint); } else { this.retryCount += 1; } this.retryOpts.retry( err2, { state: { counter: this.retryCount }, opts: { retryOptions: this.retryOpts, ...this.opts } }, onRetry.bind(this) ); function onRetry(err3) { if (err3 != null || this.aborted || isDisturbed(this.opts.body)) { return this.handler.onError(err3); } if (this.start !== 0) { const headers = { range: `bytes=${this.start}-${this.end ?? ""}` }; if (this.etag != null) { headers["if-match"] = this.etag; } this.opts = { ...this.opts, headers: { ...this.opts.headers, ...headers } }; } try { this.retryCountCheckpoint = this.retryCount; this.dispatch(this.opts, this); } catch (err4) { this.handler.onError(err4); } } } }; module2.exports = RetryHandler; } }); // node_modules/undici/lib/dispatcher/retry-agent.js var require_retry_agent = __commonJS({ "node_modules/undici/lib/dispatcher/retry-agent.js"(exports2, module2) { "use strict"; var Dispatcher = require_dispatcher(); var RetryHandler = require_retry_handler(); var RetryAgent = class extends Dispatcher { #agent = null; #options = null; constructor(agent, options = {}) { super(options); this.#agent = agent; this.#options = options; } dispatch(opts, handler) { const retry = new RetryHandler({ ...opts, retryOptions: this.#options }, { dispatch: this.#agent.dispatch.bind(this.#agent), handler }); return this.#agent.dispatch(opts, retry); } close() { return this.#agent.close(); } destroy() { return this.#agent.destroy(); } }; module2.exports = RetryAgent; } }); // node_modules/undici/lib/api/readable.js var require_readable = __commonJS({ "node_modules/undici/lib/api/readable.js"(exports2, module2) { "use strict"; var assert = require("node:assert"); var { Readable: Readable2 } = require("node:stream"); var { RequestAbortedError, NotSupportedError, InvalidArgumentError, AbortError } = require_errors(); var util5 = require_util2(); var { ReadableStreamFrom } = require_util2(); var kConsume = Symbol("kConsume"); var kReading = Symbol("kReading"); var kBody = Symbol("kBody"); var kAbort = Symbol("kAbort"); var kContentType = Symbol("kContentType"); var kContentLength = Symbol("kContentLength"); var noop2 = () => { }; var BodyReadable = class extends Readable2 { constructor({ resume, abort, contentType = "", contentLength, highWaterMark = 64 * 1024 // Same as nodejs fs streams. }) { super({ autoDestroy: true, read: resume, highWaterMark }); this._readableState.dataEmitted = false; this[kAbort] = abort; this[kConsume] = null; this[kBody] = null; this[kContentType] = contentType; this[kContentLength] = contentLength; this[kReading] = false; } destroy(err2) { if (!err2 && !this._readableState.endEmitted) { err2 = new RequestAbortedError(); } if (err2) { this[kAbort](); } return super.destroy(err2); } _destroy(err2, callback) { if (!this[kReading]) { setImmediate(() => { callback(err2); }); } else { callback(err2); } } on(ev, ...args) { if (ev === "data" || ev === "readable") { this[kReading] = true; } return super.on(ev, ...args); } addListener(ev, ...args) { return this.on(ev, ...args); } off(ev, ...args) { const ret = super.off(ev, ...args); if (ev === "data" || ev === "readable") { this[kReading] = this.listenerCount("data") > 0 || this.listenerCount("readable") > 0; } return ret; } removeListener(ev, ...args) { return this.off(ev, ...args); } push(chunk) { if (this[kConsume] && chunk !== null) { consumePush(this[kConsume], chunk); return this[kReading] ? super.push(chunk) : true; } return super.push(chunk); } // https://fetch.spec.whatwg.org/#dom-body-text async text() { return consume(this, "text"); } // https://fetch.spec.whatwg.org/#dom-body-json async json() { return consume(this, "json"); } // https://fetch.spec.whatwg.org/#dom-body-blob async blob() { return consume(this, "blob"); } // https://fetch.spec.whatwg.org/#dom-body-bytes async bytes() { return consume(this, "bytes"); } // https://fetch.spec.whatwg.org/#dom-body-arraybuffer async arrayBuffer() { return consume(this, "arrayBuffer"); } // https://fetch.spec.whatwg.org/#dom-body-formdata async formData() { throw new NotSupportedError(); } // https://fetch.spec.whatwg.org/#dom-body-bodyused get bodyUsed() { return util5.isDisturbed(this); } // https://fetch.spec.whatwg.org/#dom-body-body get body() { if (!this[kBody]) { this[kBody] = ReadableStreamFrom(this); if (this[kConsume]) { this[kBody].getReader(); assert(this[kBody].locked); } } return this[kBody]; } async dump(opts) { let limit = Number.isFinite(opts?.limit) ? opts.limit : 128 * 1024; const signal = opts?.signal; if (signal != null && (typeof signal !== "object" || !("aborted" in signal))) { throw new InvalidArgumentError("signal must be an AbortSignal"); } signal?.throwIfAborted(); if (this._readableState.closeEmitted) { return null; } return await new Promise((resolve, reject) => { if (this[kContentLength] > limit) { this.destroy(new AbortError()); } const onAbort = () => { this.destroy(signal.reason ?? new AbortError()); }; signal?.addEventListener("abort", onAbort); this.on("close", function() { signal?.removeEventListener("abort", onAbort); if (signal?.aborted) { reject(signal.reason ?? new AbortError()); } else { resolve(null); } }).on("error", noop2).on("data", function(chunk) { limit -= chunk.length; if (limit <= 0) { this.destroy(); } }).resume(); }); } }; function isLocked(self2) { return self2[kBody] && self2[kBody].locked === true || self2[kConsume]; } function isUnusable(self2) { return util5.isDisturbed(self2) || isLocked(self2); } async function consume(stream5, type) { assert(!stream5[kConsume]); return new Promise((resolve, reject) => { if (isUnusable(stream5)) { const rState = stream5._readableState; if (rState.destroyed && rState.closeEmitted === false) { stream5.on("error", (err2) => { reject(err2); }).on("close", () => { reject(new TypeError("unusable")); }); } else { reject(rState.errored ?? new TypeError("unusable")); } } else { queueMicrotask(() => { stream5[kConsume] = { type, stream: stream5, resolve, reject, length: 0, body: [] }; stream5.on("error", function(err2) { consumeFinish(this[kConsume], err2); }).on("close", function() { if (this[kConsume].body !== null) { consumeFinish(this[kConsume], new RequestAbortedError()); } }); consumeStart(stream5[kConsume]); }); } }); } function consumeStart(consume2) { if (consume2.body === null) { return; } const { _readableState: state } = consume2.stream; if (state.bufferIndex) { const start = state.bufferIndex; const end2 = state.buffer.length; for (let n = start; n < end2; n++) { consumePush(consume2, state.buffer[n]); } } else { for (const chunk of state.buffer) { consumePush(consume2, chunk); } } if (state.endEmitted) { consumeEnd(this[kConsume]); } else { consume2.stream.on("end", function() { consumeEnd(this[kConsume]); }); } consume2.stream.resume(); while (consume2.stream.read() != null) { } } function chunksDecode(chunks, length) { if (chunks.length === 0 || length === 0) { return ""; } const buffer = chunks.length === 1 ? chunks[0] : Buffer.concat(chunks, length); const bufferLength = buffer.length; const start = bufferLength > 2 && buffer[0] === 239 && buffer[1] === 187 && buffer[2] === 191 ? 3 : 0; return buffer.utf8Slice(start, bufferLength); } function chunksConcat(chunks, length) { if (chunks.length === 0 || length === 0) { return new Uint8Array(0); } if (chunks.length === 1) { return new Uint8Array(chunks[0]); } const buffer = new Uint8Array(Buffer.allocUnsafeSlow(length).buffer); let offset = 0; for (let i = 0; i < chunks.length; ++i) { const chunk = chunks[i]; buffer.set(chunk, offset); offset += chunk.length; } return buffer; } function consumeEnd(consume2) { const { type, body, resolve, stream: stream5, length } = consume2; try { if (type === "text") { resolve(chunksDecode(body, length)); } else if (type === "json") { resolve(JSON.parse(chunksDecode(body, length))); } else if (type === "arrayBuffer") { resolve(chunksConcat(body, length).buffer); } else if (type === "blob") { resolve(new Blob(body, { type: stream5[kContentType] })); } else if (type === "bytes") { resolve(chunksConcat(body, length)); } consumeFinish(consume2); } catch (err2) { stream5.destroy(err2); } } function consumePush(consume2, chunk) { consume2.length += chunk.length; consume2.body.push(chunk); } function consumeFinish(consume2, err2) { if (consume2.body === null) { return; } if (err2) { consume2.reject(err2); } else { consume2.resolve(); } consume2.type = null; consume2.stream = null; consume2.resolve = null; consume2.reject = null; consume2.length = 0; consume2.body = null; } module2.exports = { Readable: BodyReadable, chunksDecode }; } }); // node_modules/undici/lib/api/util.js var require_util4 = __commonJS({ "node_modules/undici/lib/api/util.js"(exports2, module2) { var assert = require("node:assert"); var { ResponseStatusCodeError } = require_errors(); var { chunksDecode } = require_readable(); var CHUNK_LIMIT = 128 * 1024; async function getResolveErrorBodyCallback({ callback, body, contentType, statusCode, statusMessage, headers }) { assert(body); let chunks = []; let length = 0; try { for await (const chunk of body) { chunks.push(chunk); length += chunk.length; if (length > CHUNK_LIMIT) { chunks = []; length = 0; break; } } } catch { chunks = []; length = 0; } const message = `Response status code ${statusCode}${statusMessage ? `: ${statusMessage}` : ""}`; if (statusCode === 204 || !contentType || !length) { queueMicrotask(() => callback(new ResponseStatusCodeError(message, statusCode, headers))); return; } const stackTraceLimit = Error.stackTraceLimit; Error.stackTraceLimit = 0; let payload; try { if (isContentTypeApplicationJson(contentType)) { payload = JSON.parse(chunksDecode(chunks, length)); } else if (isContentTypeText(contentType)) { payload = chunksDecode(chunks, length); } } catch { } finally { Error.stackTraceLimit = stackTraceLimit; } queueMicrotask(() => callback(new ResponseStatusCodeError(message, statusCode, headers, payload))); } var isContentTypeApplicationJson = (contentType) => { return contentType.length > 15 && contentType[11] === "/" && contentType[0] === "a" && contentType[1] === "p" && contentType[2] === "p" && contentType[3] === "l" && contentType[4] === "i" && contentType[5] === "c" && contentType[6] === "a" && contentType[7] === "t" && contentType[8] === "i" && contentType[9] === "o" && contentType[10] === "n" && contentType[12] === "j" && contentType[13] === "s" && contentType[14] === "o" && contentType[15] === "n"; }; var isContentTypeText = (contentType) => { return contentType.length > 4 && contentType[4] === "/" && contentType[0] === "t" && contentType[1] === "e" && contentType[2] === "x" && contentType[3] === "t"; }; module2.exports = { getResolveErrorBodyCallback, isContentTypeApplicationJson, isContentTypeText }; } }); // node_modules/undici/lib/api/api-request.js var require_api_request = __commonJS({ "node_modules/undici/lib/api/api-request.js"(exports2, module2) { "use strict"; var assert = require("node:assert"); var { Readable: Readable2 } = require_readable(); var { InvalidArgumentError, RequestAbortedError } = require_errors(); var util5 = require_util2(); var { getResolveErrorBodyCallback } = require_util4(); var { AsyncResource } = require("node:async_hooks"); var RequestHandler = class extends AsyncResource { constructor(opts, callback) { if (!opts || typeof opts !== "object") { throw new InvalidArgumentError("invalid opts"); } const { signal, method, opaque, body, onInfo, responseHeaders, throwOnError, highWaterMark } = opts; try { if (typeof callback !== "function") { throw new InvalidArgumentError("invalid callback"); } if (highWaterMark && (typeof highWaterMark !== "number" || highWaterMark < 0)) { throw new InvalidArgumentError("invalid highWaterMark"); } if (signal && typeof signal.on !== "function" && typeof signal.addEventListener !== "function") { throw new InvalidArgumentError("signal must be an EventEmitter or EventTarget"); } if (method === "CONNECT") { throw new InvalidArgumentError("invalid method"); } if (onInfo && typeof onInfo !== "function") { throw new InvalidArgumentError("invalid onInfo callback"); } super("UNDICI_REQUEST"); } catch (err2) { if (util5.isStream(body)) { util5.destroy(body.on("error", util5.nop), err2); } throw err2; } this.method = method; this.responseHeaders = responseHeaders || null; this.opaque = opaque || null; this.callback = callback; this.res = null; this.abort = null; this.body = body; this.trailers = {}; this.context = null; this.onInfo = onInfo || null; this.throwOnError = throwOnError; this.highWaterMark = highWaterMark; this.signal = signal; this.reason = null; this.removeAbortListener = null; if (util5.isStream(body)) { body.on("error", (err2) => { this.onError(err2); }); } if (this.signal) { if (this.signal.aborted) { this.reason = this.signal.reason ?? new RequestAbortedError(); } else { this.removeAbortListener = util5.addAbortListener(this.signal, () => { this.reason = this.signal.reason ?? new RequestAbortedError(); if (this.res) { util5.destroy(this.res.on("error", util5.nop), this.reason); } else if (this.abort) { this.abort(this.reason); } if (this.removeAbortListener) { this.res?.off("close", this.removeAbortListener); this.removeAbortListener(); this.removeAbortListener = null; } }); } } } onConnect(abort, context) { if (this.reason) { abort(this.reason); return; } assert(this.callback); this.abort = abort; this.context = context; } onHeaders(statusCode, rawHeaders, resume, statusMessage) { const { callback, opaque, abort, context, responseHeaders, highWaterMark } = this; const headers = responseHeaders === "raw" ? util5.parseRawHeaders(rawHeaders) : util5.parseHeaders(rawHeaders); if (statusCode < 200) { if (this.onInfo) { this.onInfo({ statusCode, headers }); } return; } const parsedHeaders = responseHeaders === "raw" ? util5.parseHeaders(rawHeaders) : headers; const contentType = parsedHeaders["content-type"]; const contentLength = parsedHeaders["content-length"]; const res = new Readable2({ resume, abort, contentType, contentLength: this.method !== "HEAD" && contentLength ? Number(contentLength) : null, highWaterMark }); if (this.removeAbortListener) { res.on("close", this.removeAbortListener); } this.callback = null; this.res = res; if (callback !== null) { if (this.throwOnError && statusCode >= 400) { this.runInAsyncScope( getResolveErrorBodyCallback, null, { callback, body: res, contentType, statusCode, statusMessage, headers } ); } else { this.runInAsyncScope(callback, null, null, { statusCode, headers, trailers: this.trailers, opaque, body: res, context }); } } } onData(chunk) { return this.res.push(chunk); } onComplete(trailers) { util5.parseHeaders(trailers, this.trailers); this.res.push(null); } onError(err2) { const { res, callback, body, opaque } = this; if (callback) { this.callback = null; queueMicrotask(() => { this.runInAsyncScope(callback, null, err2, { opaque }); }); } if (res) { this.res = null; queueMicrotask(() => { util5.destroy(res, err2); }); } if (body) { this.body = null; util5.destroy(body, err2); } if (this.removeAbortListener) { res?.off("close", this.removeAbortListener); this.removeAbortListener(); this.removeAbortListener = null; } } }; function request(opts, callback) { if (callback === void 0) { return new Promise((resolve, reject) => { request.call(this, opts, (err2, data2) => { return err2 ? reject(err2) : resolve(data2); }); }); } try { this.dispatch(opts, new RequestHandler(opts, callback)); } catch (err2) { if (typeof callback !== "function") { throw err2; } const opaque = opts?.opaque; queueMicrotask(() => callback(err2, { opaque })); } } module2.exports = request; module2.exports.RequestHandler = RequestHandler; } }); // node_modules/undici/lib/api/abort-signal.js var require_abort_signal = __commonJS({ "node_modules/undici/lib/api/abort-signal.js"(exports2, module2) { var { addAbortListener } = require_util2(); var { RequestAbortedError } = require_errors(); var kListener = Symbol("kListener"); var kSignal = Symbol("kSignal"); function abort(self2) { if (self2.abort) { self2.abort(self2[kSignal]?.reason); } else { self2.reason = self2[kSignal]?.reason ?? new RequestAbortedError(); } removeSignal(self2); } function addSignal(self2, signal) { self2.reason = null; self2[kSignal] = null; self2[kListener] = null; if (!signal) { return; } if (signal.aborted) { abort(self2); return; } self2[kSignal] = signal; self2[kListener] = () => { abort(self2); }; addAbortListener(self2[kSignal], self2[kListener]); } function removeSignal(self2) { if (!self2[kSignal]) { return; } if ("removeEventListener" in self2[kSignal]) { self2[kSignal].removeEventListener("abort", self2[kListener]); } else { self2[kSignal].removeListener("abort", self2[kListener]); } self2[kSignal] = null; self2[kListener] = null; } module2.exports = { addSignal, removeSignal }; } }); // node_modules/undici/lib/api/api-stream.js var require_api_stream = __commonJS({ "node_modules/undici/lib/api/api-stream.js"(exports2, module2) { "use strict"; var assert = require("node:assert"); var { finished, PassThrough } = require("node:stream"); var { InvalidArgumentError, InvalidReturnValueError } = require_errors(); var util5 = require_util2(); var { getResolveErrorBodyCallback } = require_util4(); var { AsyncResource } = require("node:async_hooks"); var { addSignal, removeSignal } = require_abort_signal(); var StreamHandler = class extends AsyncResource { constructor(opts, factory, callback) { if (!opts || typeof opts !== "object") { throw new InvalidArgumentError("invalid opts"); } const { signal, method, opaque, body, onInfo, responseHeaders, throwOnError } = opts; try { if (typeof callback !== "function") { throw new InvalidArgumentError("invalid callback"); } if (typeof factory !== "function") { throw new InvalidArgumentError("invalid factory"); } if (signal && typeof signal.on !== "function" && typeof signal.addEventListener !== "function") { throw new InvalidArgumentError("signal must be an EventEmitter or EventTarget"); } if (method === "CONNECT") { throw new InvalidArgumentError("invalid method"); } if (onInfo && typeof onInfo !== "function") { throw new InvalidArgumentError("invalid onInfo callback"); } super("UNDICI_STREAM"); } catch (err2) { if (util5.isStream(body)) { util5.destroy(body.on("error", util5.nop), err2); } throw err2; } this.responseHeaders = responseHeaders || null; this.opaque = opaque || null; this.factory = factory; this.callback = callback; this.res = null; this.abort = null; this.context = null; this.trailers = null; this.body = body; this.onInfo = onInfo || null; this.throwOnError = throwOnError || false; if (util5.isStream(body)) { body.on("error", (err2) => { this.onError(err2); }); } addSignal(this, signal); } onConnect(abort, context) { if (this.reason) { abort(this.reason); return; } assert(this.callback); this.abort = abort; this.context = context; } onHeaders(statusCode, rawHeaders, resume, statusMessage) { const { factory, opaque, context, callback, responseHeaders } = this; const headers = responseHeaders === "raw" ? util5.parseRawHeaders(rawHeaders) : util5.parseHeaders(rawHeaders); if (statusCode < 200) { if (this.onInfo) { this.onInfo({ statusCode, headers }); } return; } this.factory = null; let res; if (this.throwOnError && statusCode >= 400) { const parsedHeaders = responseHeaders === "raw" ? util5.parseHeaders(rawHeaders) : headers; const contentType = parsedHeaders["content-type"]; res = new PassThrough(); this.callback = null; this.runInAsyncScope( getResolveErrorBodyCallback, null, { callback, body: res, contentType, statusCode, statusMessage, headers } ); } else { if (factory === null) { return; } res = this.runInAsyncScope(factory, null, { statusCode, headers, opaque, context }); if (!res || typeof res.write !== "function" || typeof res.end !== "function" || typeof res.on !== "function") { throw new InvalidReturnValueError("expected Writable"); } finished(res, { readable: false }, (err2) => { const { callback: callback2, res: res2, opaque: opaque2, trailers, abort } = this; this.res = null; if (err2 || !res2.readable) { util5.destroy(res2, err2); } this.callback = null; this.runInAsyncScope(callback2, null, err2 || null, { opaque: opaque2, trailers }); if (err2) { abort(); } }); } res.on("drain", resume); this.res = res; const needDrain = res.writableNeedDrain !== void 0 ? res.writableNeedDrain : res._writableState?.needDrain; return needDrain !== true; } onData(chunk) { const { res } = this; return res ? res.write(chunk) : true; } onComplete(trailers) { const { res } = this; removeSignal(this); if (!res) { return; } this.trailers = util5.parseHeaders(trailers); res.end(); } onError(err2) { const { res, callback, opaque, body } = this; removeSignal(this); this.factory = null; if (res) { this.res = null; util5.destroy(res, err2); } else if (callback) { this.callback = null; queueMicrotask(() => { this.runInAsyncScope(callback, null, err2, { opaque }); }); } if (body) { this.body = null; util5.destroy(body, err2); } } }; function stream5(opts, factory, callback) { if (callback === void 0) { return new Promise((resolve, reject) => { stream5.call(this, opts, factory, (err2, data2) => { return err2 ? reject(err2) : resolve(data2); }); }); } try { this.dispatch(opts, new StreamHandler(opts, factory, callback)); } catch (err2) { if (typeof callback !== "function") { throw err2; } const opaque = opts?.opaque; queueMicrotask(() => callback(err2, { opaque })); } } module2.exports = stream5; } }); // node_modules/undici/lib/api/api-pipeline.js var require_api_pipeline = __commonJS({ "node_modules/undici/lib/api/api-pipeline.js"(exports2, module2) { "use strict"; var { Readable: Readable2, Duplex, PassThrough } = require("node:stream"); var { InvalidArgumentError, InvalidReturnValueError, RequestAbortedError } = require_errors(); var util5 = require_util2(); var { AsyncResource } = require("node:async_hooks"); var { addSignal, removeSignal } = require_abort_signal(); var assert = require("node:assert"); var kResume = Symbol("resume"); var PipelineRequest = class extends Readable2 { constructor() { super({ autoDestroy: true }); this[kResume] = null; } _read() { const { [kResume]: resume } = this; if (resume) { this[kResume] = null; resume(); } } _destroy(err2, callback) { this._read(); callback(err2); } }; var PipelineResponse = class extends Readable2 { constructor(resume) { super({ autoDestroy: true }); this[kResume] = resume; } _read() { this[kResume](); } _destroy(err2, callback) { if (!err2 && !this._readableState.endEmitted) { err2 = new RequestAbortedError(); } callback(err2); } }; var PipelineHandler = class extends AsyncResource { constructor(opts, handler) { if (!opts || typeof opts !== "object") { throw new InvalidArgumentError("invalid opts"); } if (typeof handler !== "function") { throw new InvalidArgumentError("invalid handler"); } const { signal, method, opaque, onInfo, responseHeaders } = opts; if (signal && typeof signal.on !== "function" && typeof signal.addEventListener !== "function") { throw new InvalidArgumentError("signal must be an EventEmitter or EventTarget"); } if (method === "CONNECT") { throw new InvalidArgumentError("invalid method"); } if (onInfo && typeof onInfo !== "function") { throw new InvalidArgumentError("invalid onInfo callback"); } super("UNDICI_PIPELINE"); this.opaque = opaque || null; this.responseHeaders = responseHeaders || null; this.handler = handler; this.abort = null; this.context = null; this.onInfo = onInfo || null; this.req = new PipelineRequest().on("error", util5.nop); this.ret = new Duplex({ readableObjectMode: opts.objectMode, autoDestroy: true, read: () => { const { body } = this; if (body?.resume) { body.resume(); } }, write: (chunk, encoding, callback) => { const { req } = this; if (req.push(chunk, encoding) || req._readableState.destroyed) { callback(); } else { req[kResume] = callback; } }, destroy: (err2, callback) => { const { body, req, res, ret, abort } = this; if (!err2 && !ret._readableState.endEmitted) { err2 = new RequestAbortedError(); } if (abort && err2) { abort(); } util5.destroy(body, err2); util5.destroy(req, err2); util5.destroy(res, err2); removeSignal(this); callback(err2); } }).on("prefinish", () => { const { req } = this; req.push(null); }); this.res = null; addSignal(this, signal); } onConnect(abort, context) { const { ret, res } = this; if (this.reason) { abort(this.reason); return; } assert(!res, "pipeline cannot be retried"); assert(!ret.destroyed); this.abort = abort; this.context = context; } onHeaders(statusCode, rawHeaders, resume) { const { opaque, handler, context } = this; if (statusCode < 200) { if (this.onInfo) { const headers = this.responseHeaders === "raw" ? util5.parseRawHeaders(rawHeaders) : util5.parseHeaders(rawHeaders); this.onInfo({ statusCode, headers }); } return; } this.res = new PipelineResponse(resume); let body; try { this.handler = null; const headers = this.responseHeaders === "raw" ? util5.parseRawHeaders(rawHeaders) : util5.parseHeaders(rawHeaders); body = this.runInAsyncScope(handler, null, { statusCode, headers, opaque, body: this.res, context }); } catch (err2) { this.res.on("error", util5.nop); throw err2; } if (!body || typeof body.on !== "function") { throw new InvalidReturnValueError("expected Readable"); } body.on("data", (chunk) => { const { ret, body: body2 } = this; if (!ret.push(chunk) && body2.pause) { body2.pause(); } }).on("error", (err2) => { const { ret } = this; util5.destroy(ret, err2); }).on("end", () => { const { ret } = this; ret.push(null); }).on("close", () => { const { ret } = this; if (!ret._readableState.ended) { util5.destroy(ret, new RequestAbortedError()); } }); this.body = body; } onData(chunk) { const { res } = this; return res.push(chunk); } onComplete(trailers) { const { res } = this; res.push(null); } onError(err2) { const { ret } = this; this.handler = null; util5.destroy(ret, err2); } }; function pipeline(opts, handler) { try { const pipelineHandler = new PipelineHandler(opts, handler); this.dispatch({ ...opts, body: pipelineHandler.req }, pipelineHandler); return pipelineHandler.ret; } catch (err2) { return new PassThrough().destroy(err2); } } module2.exports = pipeline; } }); // node_modules/undici/lib/api/api-upgrade.js var require_api_upgrade = __commonJS({ "node_modules/undici/lib/api/api-upgrade.js"(exports2, module2) { "use strict"; var { InvalidArgumentError, SocketError } = require_errors(); var { AsyncResource } = require("node:async_hooks"); var util5 = require_util2(); var { addSignal, removeSignal } = require_abort_signal(); var assert = require("node:assert"); var UpgradeHandler = class extends AsyncResource { constructor(opts, callback) { if (!opts || typeof opts !== "object") { throw new InvalidArgumentError("invalid opts"); } if (typeof callback !== "function") { throw new InvalidArgumentError("invalid callback"); } const { signal, opaque, responseHeaders } = opts; if (signal && typeof signal.on !== "function" && typeof signal.addEventListener !== "function") { throw new InvalidArgumentError("signal must be an EventEmitter or EventTarget"); } super("UNDICI_UPGRADE"); this.responseHeaders = responseHeaders || null; this.opaque = opaque || null; this.callback = callback; this.abort = null; this.context = null; addSignal(this, signal); } onConnect(abort, context) { if (this.reason) { abort(this.reason); return; } assert(this.callback); this.abort = abort; this.context = null; } onHeaders() { throw new SocketError("bad upgrade", null); } onUpgrade(statusCode, rawHeaders, socket) { assert(statusCode === 101); const { callback, opaque, context } = this; removeSignal(this); this.callback = null; const headers = this.responseHeaders === "raw" ? util5.parseRawHeaders(rawHeaders) : util5.parseHeaders(rawHeaders); this.runInAsyncScope(callback, null, null, { headers, socket, opaque, context }); } onError(err2) { const { callback, opaque } = this; removeSignal(this); if (callback) { this.callback = null; queueMicrotask(() => { this.runInAsyncScope(callback, null, err2, { opaque }); }); } } }; function upgrade(opts, callback) { if (callback === void 0) { return new Promise((resolve, reject) => { upgrade.call(this, opts, (err2, data2) => { return err2 ? reject(err2) : resolve(data2); }); }); } try { const upgradeHandler = new UpgradeHandler(opts, callback); this.dispatch({ ...opts, method: opts.method || "GET", upgrade: opts.protocol || "Websocket" }, upgradeHandler); } catch (err2) { if (typeof callback !== "function") { throw err2; } const opaque = opts?.opaque; queueMicrotask(() => callback(err2, { opaque })); } } module2.exports = upgrade; } }); // node_modules/undici/lib/api/api-connect.js var require_api_connect = __commonJS({ "node_modules/undici/lib/api/api-connect.js"(exports2, module2) { "use strict"; var assert = require("node:assert"); var { AsyncResource } = require("node:async_hooks"); var { InvalidArgumentError, SocketError } = require_errors(); var util5 = require_util2(); var { addSignal, removeSignal } = require_abort_signal(); var ConnectHandler = class extends AsyncResource { constructor(opts, callback) { if (!opts || typeof opts !== "object") { throw new InvalidArgumentError("invalid opts"); } if (typeof callback !== "function") { throw new InvalidArgumentError("invalid callback"); } const { signal, opaque, responseHeaders } = opts; if (signal && typeof signal.on !== "function" && typeof signal.addEventListener !== "function") { throw new InvalidArgumentError("signal must be an EventEmitter or EventTarget"); } super("UNDICI_CONNECT"); this.opaque = opaque || null; this.responseHeaders = responseHeaders || null; this.callback = callback; this.abort = null; addSignal(this, signal); } onConnect(abort, context) { if (this.reason) { abort(this.reason); return; } assert(this.callback); this.abort = abort; this.context = context; } onHeaders() { throw new SocketError("bad connect", null); } onUpgrade(statusCode, rawHeaders, socket) { const { callback, opaque, context } = this; removeSignal(this); this.callback = null; let headers = rawHeaders; if (headers != null) { headers = this.responseHeaders === "raw" ? util5.parseRawHeaders(rawHeaders) : util5.parseHeaders(rawHeaders); } this.runInAsyncScope(callback, null, null, { statusCode, headers, socket, opaque, context }); } onError(err2) { const { callback, opaque } = this; removeSignal(this); if (callback) { this.callback = null; queueMicrotask(() => { this.runInAsyncScope(callback, null, err2, { opaque }); }); } } }; function connect(opts, callback) { if (callback === void 0) { return new Promise((resolve, reject) => { connect.call(this, opts, (err2, data2) => { return err2 ? reject(err2) : resolve(data2); }); }); } try { const connectHandler = new ConnectHandler(opts, callback); this.dispatch({ ...opts, method: "CONNECT" }, connectHandler); } catch (err2) { if (typeof callback !== "function") { throw err2; } const opaque = opts?.opaque; queueMicrotask(() => callback(err2, { opaque })); } } module2.exports = connect; } }); // node_modules/undici/lib/api/index.js var require_api = __commonJS({ "node_modules/undici/lib/api/index.js"(exports2, module2) { "use strict"; module2.exports.request = require_api_request(); module2.exports.stream = require_api_stream(); module2.exports.pipeline = require_api_pipeline(); module2.exports.upgrade = require_api_upgrade(); module2.exports.connect = require_api_connect(); } }); // node_modules/undici/lib/mock/mock-errors.js var require_mock_errors = __commonJS({ "node_modules/undici/lib/mock/mock-errors.js"(exports2, module2) { "use strict"; var { UndiciError } = require_errors(); var MockNotMatchedError = class _MockNotMatchedError extends UndiciError { constructor(message) { super(message); Error.captureStackTrace(this, _MockNotMatchedError); this.name = "MockNotMatchedError"; this.message = message || "The request does not match any registered mock dispatches"; this.code = "UND_MOCK_ERR_MOCK_NOT_MATCHED"; } }; module2.exports = { MockNotMatchedError }; } }); // node_modules/undici/lib/mock/mock-symbols.js var require_mock_symbols = __commonJS({ "node_modules/undici/lib/mock/mock-symbols.js"(exports2, module2) { "use strict"; module2.exports = { kAgent: Symbol("agent"), kOptions: Symbol("options"), kFactory: Symbol("factory"), kDispatches: Symbol("dispatches"), kDispatchKey: Symbol("dispatch key"), kDefaultHeaders: Symbol("default headers"), kDefaultTrailers: Symbol("default trailers"), kContentLength: Symbol("content length"), kMockAgent: Symbol("mock agent"), kMockAgentSet: Symbol("mock agent set"), kMockAgentGet: Symbol("mock agent get"), kMockDispatch: Symbol("mock dispatch"), kClose: Symbol("close"), kOriginalClose: Symbol("original agent close"), kOrigin: Symbol("origin"), kIsMockActive: Symbol("is mock active"), kNetConnect: Symbol("net connect"), kGetNetConnect: Symbol("get net connect"), kConnected: Symbol("connected") }; } }); // node_modules/undici/lib/mock/mock-utils.js var require_mock_utils = __commonJS({ "node_modules/undici/lib/mock/mock-utils.js"(exports2, module2) { "use strict"; var { MockNotMatchedError } = require_mock_errors(); var { kDispatches, kMockAgent, kOriginalDispatch, kOrigin, kGetNetConnect } = require_mock_symbols(); var { buildURL: buildURL2 } = require_util2(); var { STATUS_CODES } = require("node:http"); var { types: { isPromise } } = require("node:util"); function matchValue(match, value) { if (typeof match === "string") { return match === value; } if (match instanceof RegExp) { return match.test(value); } if (typeof match === "function") { return match(value) === true; } return false; } function lowerCaseEntries(headers) { return Object.fromEntries( Object.entries(headers).map(([headerName, headerValue]) => { return [headerName.toLocaleLowerCase(), headerValue]; }) ); } function getHeaderByName(headers, key) { if (Array.isArray(headers)) { for (let i = 0; i < headers.length; i += 2) { if (headers[i].toLocaleLowerCase() === key.toLocaleLowerCase()) { return headers[i + 1]; } } return void 0; } else if (typeof headers.get === "function") { return headers.get(key); } else { return lowerCaseEntries(headers)[key.toLocaleLowerCase()]; } } function buildHeadersFromArray(headers) { const clone2 = headers.slice(); const entries = []; for (let index2 = 0; index2 < clone2.length; index2 += 2) { entries.push([clone2[index2], clone2[index2 + 1]]); } return Object.fromEntries(entries); } function matchHeaders(mockDispatch2, headers) { if (typeof mockDispatch2.headers === "function") { if (Array.isArray(headers)) { headers = buildHeadersFromArray(headers); } return mockDispatch2.headers(headers ? lowerCaseEntries(headers) : {}); } if (typeof mockDispatch2.headers === "undefined") { return true; } if (typeof headers !== "object" || typeof mockDispatch2.headers !== "object") { return false; } for (const [matchHeaderName, matchHeaderValue2] of Object.entries(mockDispatch2.headers)) { const headerValue = getHeaderByName(headers, matchHeaderName); if (!matchValue(matchHeaderValue2, headerValue)) { return false; } } return true; } function safeUrl(path) { if (typeof path !== "string") { return path; } const pathSegments = path.split("?"); if (pathSegments.length !== 2) { return path; } const qp = new URLSearchParams(pathSegments.pop()); qp.sort(); return [...pathSegments, qp.toString()].join("?"); } function matchKey(mockDispatch2, { path, method, body, headers }) { const pathMatch = matchValue(mockDispatch2.path, path); const methodMatch = matchValue(mockDispatch2.method, method); const bodyMatch = typeof mockDispatch2.body !== "undefined" ? matchValue(mockDispatch2.body, body) : true; const headersMatch = matchHeaders(mockDispatch2, headers); return pathMatch && methodMatch && bodyMatch && headersMatch; } function getResponseData(data2) { if (Buffer.isBuffer(data2)) { return data2; } else if (data2 instanceof Uint8Array) { return data2; } else if (data2 instanceof ArrayBuffer) { return data2; } else if (typeof data2 === "object") { return JSON.stringify(data2); } else { return data2.toString(); } } function getMockDispatch(mockDispatches, key) { const basePath = key.query ? buildURL2(key.path, key.query) : key.path; const resolvedPath = typeof basePath === "string" ? safeUrl(basePath) : basePath; let matchedMockDispatches = mockDispatches.filter(({ consumed }) => !consumed).filter(({ path }) => matchValue(safeUrl(path), resolvedPath)); if (matchedMockDispatches.length === 0) { throw new MockNotMatchedError(`Mock dispatch not matched for path '${resolvedPath}'`); } matchedMockDispatches = matchedMockDispatches.filter(({ method }) => matchValue(method, key.method)); if (matchedMockDispatches.length === 0) { throw new MockNotMatchedError(`Mock dispatch not matched for method '${key.method}' on path '${resolvedPath}'`); } matchedMockDispatches = matchedMockDispatches.filter(({ body }) => typeof body !== "undefined" ? matchValue(body, key.body) : true); if (matchedMockDispatches.length === 0) { throw new MockNotMatchedError(`Mock dispatch not matched for body '${key.body}' on path '${resolvedPath}'`); } matchedMockDispatches = matchedMockDispatches.filter((mockDispatch2) => matchHeaders(mockDispatch2, key.headers)); if (matchedMockDispatches.length === 0) { const headers = typeof key.headers === "object" ? JSON.stringify(key.headers) : key.headers; throw new MockNotMatchedError(`Mock dispatch not matched for headers '${headers}' on path '${resolvedPath}'`); } return matchedMockDispatches[0]; } function addMockDispatch(mockDispatches, key, data2) { const baseData = { timesInvoked: 0, times: 1, persist: false, consumed: false }; const replyData = typeof data2 === "function" ? { callback: data2 } : { ...data2 }; const newMockDispatch = { ...baseData, ...key, pending: true, data: { error: null, ...replyData } }; mockDispatches.push(newMockDispatch); return newMockDispatch; } function deleteMockDispatch(mockDispatches, key) { const index2 = mockDispatches.findIndex((dispatch) => { if (!dispatch.consumed) { return false; } return matchKey(dispatch, key); }); if (index2 !== -1) { mockDispatches.splice(index2, 1); } } function buildKey(opts) { const { path, method, body, headers, query } = opts; return { path, method, body, headers, query }; } function generateKeyValues(data2) { const keys = Object.keys(data2); const result = []; for (let i = 0; i < keys.length; ++i) { const key = keys[i]; const value = data2[key]; const name = Buffer.from(`${key}`); if (Array.isArray(value)) { for (let j = 0; j < value.length; ++j) { result.push(name, Buffer.from(`${value[j]}`)); } } else { result.push(name, Buffer.from(`${value}`)); } } return result; } function getStatusText(statusCode) { return STATUS_CODES[statusCode] || "unknown"; } async function getResponse(body) { const buffers = []; for await (const data2 of body) { buffers.push(data2); } return Buffer.concat(buffers).toString("utf8"); } function mockDispatch(opts, handler) { const key = buildKey(opts); const mockDispatch2 = getMockDispatch(this[kDispatches], key); mockDispatch2.timesInvoked++; if (mockDispatch2.data.callback) { mockDispatch2.data = { ...mockDispatch2.data, ...mockDispatch2.data.callback(opts) }; } const { data: { statusCode, data: data2, headers, trailers, error }, delay, persist } = mockDispatch2; const { timesInvoked, times } = mockDispatch2; mockDispatch2.consumed = !persist && timesInvoked >= times; mockDispatch2.pending = timesInvoked < times; if (error !== null) { deleteMockDispatch(this[kDispatches], key); handler.onError(error); return true; } if (typeof delay === "number" && delay > 0) { setTimeout(() => { handleReply(this[kDispatches]); }, delay); } else { handleReply(this[kDispatches]); } function handleReply(mockDispatches, _data = data2) { const optsHeaders = Array.isArray(opts.headers) ? buildHeadersFromArray(opts.headers) : opts.headers; const body = typeof _data === "function" ? _data({ ...opts, headers: optsHeaders }) : _data; if (isPromise(body)) { body.then((newData) => handleReply(mockDispatches, newData)); return; } const responseData = getResponseData(body); const responseHeaders = generateKeyValues(headers); const responseTrailers = generateKeyValues(trailers); handler.onConnect?.((err2) => handler.onError(err2), null); handler.onHeaders?.(statusCode, responseHeaders, resume, getStatusText(statusCode)); handler.onData?.(Buffer.from(responseData)); handler.onComplete?.(responseTrailers); deleteMockDispatch(mockDispatches, key); } function resume() { } return true; } function buildMockDispatch() { const agent = this[kMockAgent]; const origin2 = this[kOrigin]; const originalDispatch = this[kOriginalDispatch]; return function dispatch(opts, handler) { if (agent.isMockActive) { try { mockDispatch.call(this, opts, handler); } catch (error) { if (error instanceof MockNotMatchedError) { const netConnect = agent[kGetNetConnect](); if (netConnect === false) { throw new MockNotMatchedError(`${error.message}: subsequent request to origin ${origin2} was not allowed (net.connect disabled)`); } if (checkNetConnect(netConnect, origin2)) { originalDispatch.call(this, opts, handler); } else { throw new MockNotMatchedError(`${error.message}: subsequent request to origin ${origin2} was not allowed (net.connect is not enabled for this origin)`); } } else { throw error; } } } else { originalDispatch.call(this, opts, handler); } }; } function checkNetConnect(netConnect, origin2) { const url2 = new URL(origin2); if (netConnect === true) { return true; } else if (Array.isArray(netConnect) && netConnect.some((matcher) => matchValue(matcher, url2.host))) { return true; } return false; } function buildMockOptions(opts) { if (opts) { const { agent, ...mockOptions } = opts; return mockOptions; } } module2.exports = { getResponseData, getMockDispatch, addMockDispatch, deleteMockDispatch, buildKey, generateKeyValues, matchValue, getResponse, getStatusText, mockDispatch, buildMockDispatch, checkNetConnect, buildMockOptions, getHeaderByName, buildHeadersFromArray }; } }); // node_modules/undici/lib/mock/mock-interceptor.js var require_mock_interceptor = __commonJS({ "node_modules/undici/lib/mock/mock-interceptor.js"(exports2, module2) { "use strict"; var { getResponseData, buildKey, addMockDispatch } = require_mock_utils(); var { kDispatches, kDispatchKey, kDefaultHeaders, kDefaultTrailers, kContentLength, kMockDispatch } = require_mock_symbols(); var { InvalidArgumentError } = require_errors(); var { buildURL: buildURL2 } = require_util2(); var MockScope = class { constructor(mockDispatch) { this[kMockDispatch] = mockDispatch; } /** * Delay a reply by a set amount in ms. */ delay(waitInMs) { if (typeof waitInMs !== "number" || !Number.isInteger(waitInMs) || waitInMs <= 0) { throw new InvalidArgumentError("waitInMs must be a valid integer > 0"); } this[kMockDispatch].delay = waitInMs; return this; } /** * For a defined reply, never mark as consumed. */ persist() { this[kMockDispatch].persist = true; return this; } /** * Allow one to define a reply for a set amount of matching requests. */ times(repeatTimes) { if (typeof repeatTimes !== "number" || !Number.isInteger(repeatTimes) || repeatTimes <= 0) { throw new InvalidArgumentError("repeatTimes must be a valid integer > 0"); } this[kMockDispatch].times = repeatTimes; return this; } }; var MockInterceptor = class { constructor(opts, mockDispatches) { if (typeof opts !== "object") { throw new InvalidArgumentError("opts must be an object"); } if (typeof opts.path === "undefined") { throw new InvalidArgumentError("opts.path must be defined"); } if (typeof opts.method === "undefined") { opts.method = "GET"; } if (typeof opts.path === "string") { if (opts.query) { opts.path = buildURL2(opts.path, opts.query); } else { const parsedURL = new URL(opts.path, "data://"); opts.path = parsedURL.pathname + parsedURL.search; } } if (typeof opts.method === "string") { opts.method = opts.method.toUpperCase(); } this[kDispatchKey] = buildKey(opts); this[kDispatches] = mockDispatches; this[kDefaultHeaders] = {}; this[kDefaultTrailers] = {}; this[kContentLength] = false; } createMockScopeDispatchData({ statusCode, data: data2, responseOptions }) { const responseData = getResponseData(data2); const contentLength = this[kContentLength] ? { "content-length": responseData.length } : {}; const headers = { ...this[kDefaultHeaders], ...contentLength, ...responseOptions.headers }; const trailers = { ...this[kDefaultTrailers], ...responseOptions.trailers }; return { statusCode, data: data2, headers, trailers }; } validateReplyParameters(replyParameters) { if (typeof replyParameters.statusCode === "undefined") { throw new InvalidArgumentError("statusCode must be defined"); } if (typeof replyParameters.responseOptions !== "object" || replyParameters.responseOptions === null) { throw new InvalidArgumentError("responseOptions must be an object"); } } /** * Mock an undici request with a defined reply. */ reply(replyOptionsCallbackOrStatusCode) { if (typeof replyOptionsCallbackOrStatusCode === "function") { const wrappedDefaultsCallback = (opts) => { const resolvedData = replyOptionsCallbackOrStatusCode(opts); if (typeof resolvedData !== "object" || resolvedData === null) { throw new InvalidArgumentError("reply options callback must return an object"); } const replyParameters2 = { data: "", responseOptions: {}, ...resolvedData }; this.validateReplyParameters(replyParameters2); return { ...this.createMockScopeDispatchData(replyParameters2) }; }; const newMockDispatch2 = addMockDispatch(this[kDispatches], this[kDispatchKey], wrappedDefaultsCallback); return new MockScope(newMockDispatch2); } const replyParameters = { statusCode: replyOptionsCallbackOrStatusCode, data: arguments[1] === void 0 ? "" : arguments[1], responseOptions: arguments[2] === void 0 ? {} : arguments[2] }; this.validateReplyParameters(replyParameters); const dispatchData = this.createMockScopeDispatchData(replyParameters); const newMockDispatch = addMockDispatch(this[kDispatches], this[kDispatchKey], dispatchData); return new MockScope(newMockDispatch); } /** * Mock an undici request with a defined error. */ replyWithError(error) { if (typeof error === "undefined") { throw new InvalidArgumentError("error must be defined"); } const newMockDispatch = addMockDispatch(this[kDispatches], this[kDispatchKey], { error }); return new MockScope(newMockDispatch); } /** * Set default reply headers on the interceptor for subsequent replies */ defaultReplyHeaders(headers) { if (typeof headers === "undefined") { throw new InvalidArgumentError("headers must be defined"); } this[kDefaultHeaders] = headers; return this; } /** * Set default reply trailers on the interceptor for subsequent replies */ defaultReplyTrailers(trailers) { if (typeof trailers === "undefined") { throw new InvalidArgumentError("trailers must be defined"); } this[kDefaultTrailers] = trailers; return this; } /** * Set reply content length header for replies on the interceptor */ replyContentLength() { this[kContentLength] = true; return this; } }; module2.exports.MockInterceptor = MockInterceptor; module2.exports.MockScope = MockScope; } }); // node_modules/undici/lib/mock/mock-client.js var require_mock_client = __commonJS({ "node_modules/undici/lib/mock/mock-client.js"(exports2, module2) { "use strict"; var { promisify } = require("node:util"); var Client = require_client(); var { buildMockDispatch } = require_mock_utils(); var { kDispatches, kMockAgent, kClose, kOriginalClose, kOrigin, kOriginalDispatch, kConnected } = require_mock_symbols(); var { MockInterceptor } = require_mock_interceptor(); var Symbols = require_symbols(); var { InvalidArgumentError } = require_errors(); var MockClient = class extends Client { constructor(origin2, opts) { super(origin2, opts); if (!opts || !opts.agent || typeof opts.agent.dispatch !== "function") { throw new InvalidArgumentError("Argument opts.agent must implement Agent"); } this[kMockAgent] = opts.agent; this[kOrigin] = origin2; this[kDispatches] = []; this[kConnected] = 1; this[kOriginalDispatch] = this.dispatch; this[kOriginalClose] = this.close.bind(this); this.dispatch = buildMockDispatch.call(this); this.close = this[kClose]; } get [Symbols.kConnected]() { return this[kConnected]; } /** * Sets up the base interceptor for mocking replies from undici. */ intercept(opts) { return new MockInterceptor(opts, this[kDispatches]); } async [kClose]() { await promisify(this[kOriginalClose])(); this[kConnected] = 0; this[kMockAgent][Symbols.kClients].delete(this[kOrigin]); } }; module2.exports = MockClient; } }); // node_modules/undici/lib/mock/mock-pool.js var require_mock_pool = __commonJS({ "node_modules/undici/lib/mock/mock-pool.js"(exports2, module2) { "use strict"; var { promisify } = require("node:util"); var Pool = require_pool(); var { buildMockDispatch } = require_mock_utils(); var { kDispatches, kMockAgent, kClose, kOriginalClose, kOrigin, kOriginalDispatch, kConnected } = require_mock_symbols(); var { MockInterceptor } = require_mock_interceptor(); var Symbols = require_symbols(); var { InvalidArgumentError } = require_errors(); var MockPool = class extends Pool { constructor(origin2, opts) { super(origin2, opts); if (!opts || !opts.agent || typeof opts.agent.dispatch !== "function") { throw new InvalidArgumentError("Argument opts.agent must implement Agent"); } this[kMockAgent] = opts.agent; this[kOrigin] = origin2; this[kDispatches] = []; this[kConnected] = 1; this[kOriginalDispatch] = this.dispatch; this[kOriginalClose] = this.close.bind(this); this.dispatch = buildMockDispatch.call(this); this.close = this[kClose]; } get [Symbols.kConnected]() { return this[kConnected]; } /** * Sets up the base interceptor for mocking replies from undici. */ intercept(opts) { return new MockInterceptor(opts, this[kDispatches]); } async [kClose]() { await promisify(this[kOriginalClose])(); this[kConnected] = 0; this[kMockAgent][Symbols.kClients].delete(this[kOrigin]); } }; module2.exports = MockPool; } }); // node_modules/undici/lib/mock/pluralizer.js var require_pluralizer = __commonJS({ "node_modules/undici/lib/mock/pluralizer.js"(exports2, module2) { "use strict"; var singulars = { pronoun: "it", is: "is", was: "was", this: "this" }; var plurals = { pronoun: "they", is: "are", was: "were", this: "these" }; module2.exports = class Pluralizer { constructor(singular, plural) { this.singular = singular; this.plural = plural; } pluralize(count) { const one = count === 1; const keys = one ? singulars : plurals; const noun = one ? this.singular : this.plural; return { ...keys, count, noun }; } }; } }); // node_modules/undici/lib/mock/pending-interceptors-formatter.js var require_pending_interceptors_formatter = __commonJS({ "node_modules/undici/lib/mock/pending-interceptors-formatter.js"(exports2, module2) { "use strict"; var { Transform: Transform2 } = require("node:stream"); var { Console } = require("node:console"); var PERSISTENT = process.versions.icu ? "\u2705" : "Y "; var NOT_PERSISTENT = process.versions.icu ? "\u274C" : "N "; module2.exports = class PendingInterceptorsFormatter { constructor({ disableColors } = {}) { this.transform = new Transform2({ transform(chunk, _enc, cb) { cb(null, chunk); } }); this.logger = new Console({ stdout: this.transform, inspectOptions: { colors: !disableColors && !process.env.CI } }); } format(pendingInterceptors) { const withPrettyHeaders = pendingInterceptors.map( ({ method, path, data: { statusCode }, persist, times, timesInvoked, origin: origin2 }) => ({ Method: method, Origin: origin2, Path: path, "Status code": statusCode, Persistent: persist ? PERSISTENT : NOT_PERSISTENT, Invocations: timesInvoked, Remaining: persist ? Infinity : times - timesInvoked }) ); this.logger.table(withPrettyHeaders); return this.transform.read().toString(); } }; } }); // node_modules/undici/lib/mock/mock-agent.js var require_mock_agent = __commonJS({ "node_modules/undici/lib/mock/mock-agent.js"(exports2, module2) { "use strict"; var { kClients } = require_symbols(); var Agent = require_agent(); var { kAgent, kMockAgentSet, kMockAgentGet, kDispatches, kIsMockActive, kNetConnect, kGetNetConnect, kOptions, kFactory } = require_mock_symbols(); var MockClient = require_mock_client(); var MockPool = require_mock_pool(); var { matchValue, buildMockOptions } = require_mock_utils(); var { InvalidArgumentError, UndiciError } = require_errors(); var Dispatcher = require_dispatcher(); var Pluralizer = require_pluralizer(); var PendingInterceptorsFormatter = require_pending_interceptors_formatter(); var MockAgent = class extends Dispatcher { constructor(opts) { super(opts); this[kNetConnect] = true; this[kIsMockActive] = true; if (opts?.agent && typeof opts.agent.dispatch !== "function") { throw new InvalidArgumentError("Argument opts.agent must implement Agent"); } const agent = opts?.agent ? opts.agent : new Agent(opts); this[kAgent] = agent; this[kClients] = agent[kClients]; this[kOptions] = buildMockOptions(opts); } get(origin2) { let dispatcher = this[kMockAgentGet](origin2); if (!dispatcher) { dispatcher = this[kFactory](origin2); this[kMockAgentSet](origin2, dispatcher); } return dispatcher; } dispatch(opts, handler) { this.get(opts.origin); return this[kAgent].dispatch(opts, handler); } async close() { await this[kAgent].close(); this[kClients].clear(); } deactivate() { this[kIsMockActive] = false; } activate() { this[kIsMockActive] = true; } enableNetConnect(matcher) { if (typeof matcher === "string" || typeof matcher === "function" || matcher instanceof RegExp) { if (Array.isArray(this[kNetConnect])) { this[kNetConnect].push(matcher); } else { this[kNetConnect] = [matcher]; } } else if (typeof matcher === "undefined") { this[kNetConnect] = true; } else { throw new InvalidArgumentError("Unsupported matcher. Must be one of String|Function|RegExp."); } } disableNetConnect() { this[kNetConnect] = false; } // This is required to bypass issues caused by using global symbols - see: // https://github.com/nodejs/undici/issues/1447 get isMockActive() { return this[kIsMockActive]; } [kMockAgentSet](origin2, dispatcher) { this[kClients].set(origin2, dispatcher); } [kFactory](origin2) { const mockOptions = Object.assign({ agent: this }, this[kOptions]); return this[kOptions] && this[kOptions].connections === 1 ? new MockClient(origin2, mockOptions) : new MockPool(origin2, mockOptions); } [kMockAgentGet](origin2) { const client = this[kClients].get(origin2); if (client) { return client; } if (typeof origin2 !== "string") { const dispatcher = this[kFactory]("http://localhost:9999"); this[kMockAgentSet](origin2, dispatcher); return dispatcher; } for (const [keyMatcher, nonExplicitDispatcher] of Array.from(this[kClients])) { if (nonExplicitDispatcher && typeof keyMatcher !== "string" && matchValue(keyMatcher, origin2)) { const dispatcher = this[kFactory](origin2); this[kMockAgentSet](origin2, dispatcher); dispatcher[kDispatches] = nonExplicitDispatcher[kDispatches]; return dispatcher; } } } [kGetNetConnect]() { return this[kNetConnect]; } pendingInterceptors() { const mockAgentClients = this[kClients]; return Array.from(mockAgentClients.entries()).flatMap(([origin2, scope]) => scope[kDispatches].map((dispatch) => ({ ...dispatch, origin: origin2 }))).filter(({ pending }) => pending); } assertNoPendingInterceptors({ pendingInterceptorsFormatter = new PendingInterceptorsFormatter() } = {}) { const pending = this.pendingInterceptors(); if (pending.length === 0) { return; } const pluralizer = new Pluralizer("interceptor", "interceptors").pluralize(pending.length); throw new UndiciError(` ${pluralizer.count} ${pluralizer.noun} ${pluralizer.is} pending: ${pendingInterceptorsFormatter.format(pending)} `.trim()); } }; module2.exports = MockAgent; } }); // node_modules/undici/lib/global.js var require_global2 = __commonJS({ "node_modules/undici/lib/global.js"(exports2, module2) { "use strict"; var globalDispatcher = Symbol.for("undici.globalDispatcher.1"); var { InvalidArgumentError } = require_errors(); var Agent = require_agent(); if (getGlobalDispatcher() === void 0) { setGlobalDispatcher(new Agent()); } function setGlobalDispatcher(agent) { if (!agent || typeof agent.dispatch !== "function") { throw new InvalidArgumentError("Argument agent must implement Agent"); } Object.defineProperty(globalThis, globalDispatcher, { value: agent, writable: true, enumerable: false, configurable: false }); } function getGlobalDispatcher() { return globalThis[globalDispatcher]; } module2.exports = { setGlobalDispatcher, getGlobalDispatcher }; } }); // node_modules/undici/lib/handler/decorator-handler.js var require_decorator_handler = __commonJS({ "node_modules/undici/lib/handler/decorator-handler.js"(exports2, module2) { "use strict"; module2.exports = class DecoratorHandler { #handler; constructor(handler) { if (typeof handler !== "object" || handler === null) { throw new TypeError("handler must be an object"); } this.#handler = handler; } onConnect(...args) { return this.#handler.onConnect?.(...args); } onError(...args) { return this.#handler.onError?.(...args); } onUpgrade(...args) { return this.#handler.onUpgrade?.(...args); } onResponseStarted(...args) { return this.#handler.onResponseStarted?.(...args); } onHeaders(...args) { return this.#handler.onHeaders?.(...args); } onData(...args) { return this.#handler.onData?.(...args); } onComplete(...args) { return this.#handler.onComplete?.(...args); } onBodySent(...args) { return this.#handler.onBodySent?.(...args); } }; } }); // node_modules/undici/lib/interceptor/redirect.js var require_redirect = __commonJS({ "node_modules/undici/lib/interceptor/redirect.js"(exports2, module2) { "use strict"; var RedirectHandler = require_redirect_handler(); module2.exports = (opts) => { const globalMaxRedirections = opts?.maxRedirections; return (dispatch) => { return function redirectInterceptor(opts2, handler) { const { maxRedirections = globalMaxRedirections, ...baseOpts } = opts2; if (!maxRedirections) { return dispatch(opts2, handler); } const redirectHandler = new RedirectHandler( dispatch, maxRedirections, opts2, handler ); return dispatch(baseOpts, redirectHandler); }; }; }; } }); // node_modules/undici/lib/interceptor/retry.js var require_retry = __commonJS({ "node_modules/undici/lib/interceptor/retry.js"(exports2, module2) { "use strict"; var RetryHandler = require_retry_handler(); module2.exports = (globalOpts) => { return (dispatch) => { return function retryInterceptor(opts, handler) { return dispatch( opts, new RetryHandler( { ...opts, retryOptions: { ...globalOpts, ...opts.retryOptions } }, { handler, dispatch } ) ); }; }; }; } }); // node_modules/undici/lib/interceptor/dump.js var require_dump = __commonJS({ "node_modules/undici/lib/interceptor/dump.js"(exports2, module2) { "use strict"; var util5 = require_util2(); var { InvalidArgumentError, RequestAbortedError } = require_errors(); var DecoratorHandler = require_decorator_handler(); var DumpHandler = class extends DecoratorHandler { #maxSize = 1024 * 1024; #abort = null; #dumped = false; #aborted = false; #size = 0; #reason = null; #handler = null; constructor({ maxSize }, handler) { super(handler); if (maxSize != null && (!Number.isFinite(maxSize) || maxSize < 1)) { throw new InvalidArgumentError("maxSize must be a number greater than 0"); } this.#maxSize = maxSize ?? this.#maxSize; this.#handler = handler; } onConnect(abort) { this.#abort = abort; this.#handler.onConnect(this.#customAbort.bind(this)); } #customAbort(reason) { this.#aborted = true; this.#reason = reason; } // TODO: will require adjustment after new hooks are out onHeaders(statusCode, rawHeaders, resume, statusMessage) { const headers = util5.parseHeaders(rawHeaders); const contentLength = headers["content-length"]; if (contentLength != null && contentLength > this.#maxSize) { throw new RequestAbortedError( `Response size (${contentLength}) larger than maxSize (${this.#maxSize})` ); } if (this.#aborted) { return true; } return this.#handler.onHeaders( statusCode, rawHeaders, resume, statusMessage ); } onError(err2) { if (this.#dumped) { return; } err2 = this.#reason ?? err2; this.#handler.onError(err2); } onData(chunk) { this.#size = this.#size + chunk.length; if (this.#size >= this.#maxSize) { this.#dumped = true; if (this.#aborted) { this.#handler.onError(this.#reason); } else { this.#handler.onComplete([]); } } return true; } onComplete(trailers) { if (this.#dumped) { return; } if (this.#aborted) { this.#handler.onError(this.reason); return; } this.#handler.onComplete(trailers); } }; function createDumpInterceptor({ maxSize: defaultMaxSize } = { maxSize: 1024 * 1024 }) { return (dispatch) => { return function Intercept(opts, handler) { const { dumpMaxSize = defaultMaxSize } = opts; const dumpHandler = new DumpHandler( { maxSize: dumpMaxSize }, handler ); return dispatch(opts, dumpHandler); }; }; } module2.exports = createDumpInterceptor; } }); // node_modules/undici/lib/interceptor/dns.js var require_dns = __commonJS({ "node_modules/undici/lib/interceptor/dns.js"(exports2, module2) { "use strict"; var { isIP } = require("node:net"); var { lookup } = require("node:dns"); var DecoratorHandler = require_decorator_handler(); var { InvalidArgumentError, InformationalError } = require_errors(); var maxInt = Math.pow(2, 31) - 1; var DNSInstance = class { #maxTTL = 0; #maxItems = 0; #records = /* @__PURE__ */ new Map(); dualStack = true; affinity = null; lookup = null; pick = null; constructor(opts) { this.#maxTTL = opts.maxTTL; this.#maxItems = opts.maxItems; this.dualStack = opts.dualStack; this.affinity = opts.affinity; this.lookup = opts.lookup ?? this.#defaultLookup; this.pick = opts.pick ?? this.#defaultPick; } get full() { return this.#records.size === this.#maxItems; } runLookup(origin2, opts, cb) { const ips = this.#records.get(origin2.hostname); if (ips == null && this.full) { cb(null, origin2.origin); return; } const newOpts = { affinity: this.affinity, dualStack: this.dualStack, lookup: this.lookup, pick: this.pick, ...opts.dns, maxTTL: this.#maxTTL, maxItems: this.#maxItems }; if (ips == null) { this.lookup(origin2, newOpts, (err2, addresses) => { if (err2 || addresses == null || addresses.length === 0) { cb(err2 ?? new InformationalError("No DNS entries found")); return; } this.setRecords(origin2, addresses); const records = this.#records.get(origin2.hostname); const ip = this.pick( origin2, records, newOpts.affinity ); let port; if (typeof ip.port === "number") { port = `:${ip.port}`; } else if (origin2.port !== "") { port = `:${origin2.port}`; } else { port = ""; } cb( null, `${origin2.protocol}//${ip.family === 6 ? `[${ip.address}]` : ip.address}${port}` ); }); } else { const ip = this.pick( origin2, ips, newOpts.affinity ); if (ip == null) { this.#records.delete(origin2.hostname); this.runLookup(origin2, opts, cb); return; } let port; if (typeof ip.port === "number") { port = `:${ip.port}`; } else if (origin2.port !== "") { port = `:${origin2.port}`; } else { port = ""; } cb( null, `${origin2.protocol}//${ip.family === 6 ? `[${ip.address}]` : ip.address}${port}` ); } } #defaultLookup(origin2, opts, cb) { lookup( origin2.hostname, { all: true, family: this.dualStack === false ? this.affinity : 0, order: "ipv4first" }, (err2, addresses) => { if (err2) { return cb(err2); } const results = /* @__PURE__ */ new Map(); for (const addr of addresses) { results.set(`${addr.address}:${addr.family}`, addr); } cb(null, results.values()); } ); } #defaultPick(origin2, hostnameRecords, affinity) { let ip = null; const { records, offset } = hostnameRecords; let family; if (this.dualStack) { if (affinity == null) { if (offset == null || offset === maxInt) { hostnameRecords.offset = 0; affinity = 4; } else { hostnameRecords.offset++; affinity = (hostnameRecords.offset & 1) === 1 ? 6 : 4; } } if (records[affinity] != null && records[affinity].ips.length > 0) { family = records[affinity]; } else { family = records[affinity === 4 ? 6 : 4]; } } else { family = records[affinity]; } if (family == null || family.ips.length === 0) { return ip; } if (family.offset == null || family.offset === maxInt) { family.offset = 0; } else { family.offset++; } const position = family.offset % family.ips.length; ip = family.ips[position] ?? null; if (ip == null) { return ip; } if (Date.now() - ip.timestamp > ip.ttl) { family.ips.splice(position, 1); return this.pick(origin2, hostnameRecords, affinity); } return ip; } setRecords(origin2, addresses) { const timestamp = Date.now(); const records = { records: { 4: null, 6: null } }; for (const record of addresses) { record.timestamp = timestamp; if (typeof record.ttl === "number") { record.ttl = Math.min(record.ttl, this.#maxTTL); } else { record.ttl = this.#maxTTL; } const familyRecords = records.records[record.family] ?? { ips: [] }; familyRecords.ips.push(record); records.records[record.family] = familyRecords; } this.#records.set(origin2.hostname, records); } getHandler(meta, opts) { return new DNSDispatchHandler(this, meta, opts); } }; var DNSDispatchHandler = class extends DecoratorHandler { #state = null; #opts = null; #dispatch = null; #handler = null; #origin = null; constructor(state, { origin: origin2, handler, dispatch }, opts) { super(handler); this.#origin = origin2; this.#handler = handler; this.#opts = { ...opts }; this.#state = state; this.#dispatch = dispatch; } onError(err2) { switch (err2.code) { case "ETIMEDOUT": case "ECONNREFUSED": { if (this.#state.dualStack) { this.#state.runLookup(this.#origin, this.#opts, (err3, newOrigin) => { if (err3) { return this.#handler.onError(err3); } const dispatchOpts = { ...this.#opts, origin: newOrigin }; this.#dispatch(dispatchOpts, this); }); return; } this.#handler.onError(err2); return; } case "ENOTFOUND": this.#state.deleteRecord(this.#origin); // eslint-disable-next-line no-fallthrough default: this.#handler.onError(err2); break; } } }; module2.exports = (interceptorOpts) => { if (interceptorOpts?.maxTTL != null && (typeof interceptorOpts?.maxTTL !== "number" || interceptorOpts?.maxTTL < 0)) { throw new InvalidArgumentError("Invalid maxTTL. Must be a positive number"); } if (interceptorOpts?.maxItems != null && (typeof interceptorOpts?.maxItems !== "number" || interceptorOpts?.maxItems < 1)) { throw new InvalidArgumentError( "Invalid maxItems. Must be a positive number and greater than zero" ); } if (interceptorOpts?.affinity != null && interceptorOpts?.affinity !== 4 && interceptorOpts?.affinity !== 6) { throw new InvalidArgumentError("Invalid affinity. Must be either 4 or 6"); } if (interceptorOpts?.dualStack != null && typeof interceptorOpts?.dualStack !== "boolean") { throw new InvalidArgumentError("Invalid dualStack. Must be a boolean"); } if (interceptorOpts?.lookup != null && typeof interceptorOpts?.lookup !== "function") { throw new InvalidArgumentError("Invalid lookup. Must be a function"); } if (interceptorOpts?.pick != null && typeof interceptorOpts?.pick !== "function") { throw new InvalidArgumentError("Invalid pick. Must be a function"); } const dualStack = interceptorOpts?.dualStack ?? true; let affinity; if (dualStack) { affinity = interceptorOpts?.affinity ?? null; } else { affinity = interceptorOpts?.affinity ?? 4; } const opts = { maxTTL: interceptorOpts?.maxTTL ?? 1e4, // Expressed in ms lookup: interceptorOpts?.lookup ?? null, pick: interceptorOpts?.pick ?? null, dualStack, affinity, maxItems: interceptorOpts?.maxItems ?? Infinity }; const instance = new DNSInstance(opts); return (dispatch) => { return function dnsInterceptor(origDispatchOpts, handler) { const origin2 = origDispatchOpts.origin.constructor === URL ? origDispatchOpts.origin : new URL(origDispatchOpts.origin); if (isIP(origin2.hostname) !== 0) { return dispatch(origDispatchOpts, handler); } instance.runLookup(origin2, origDispatchOpts, (err2, newOrigin) => { if (err2) { return handler.onError(err2); } let dispatchOpts = null; dispatchOpts = { ...origDispatchOpts, servername: origin2.hostname, // For SNI on TLS origin: newOrigin, headers: { host: origin2.hostname, ...origDispatchOpts.headers } }; dispatch( dispatchOpts, instance.getHandler({ origin: origin2, dispatch, handler }, origDispatchOpts) ); }); return true; }; }; }; } }); // node_modules/undici/lib/web/fetch/headers.js var require_headers = __commonJS({ "node_modules/undici/lib/web/fetch/headers.js"(exports2, module2) { "use strict"; var { kConstruct } = require_symbols(); var { kEnumerableProperty } = require_util2(); var { iteratorMixin, isValidHeaderName: isValidHeaderName2, isValidHeaderValue } = require_util3(); var { webidl } = require_webidl(); var assert = require("node:assert"); var util5 = require("node:util"); var kHeadersMap = Symbol("headers map"); var kHeadersSortedMap = Symbol("headers map sorted"); function isHTTPWhiteSpaceCharCode(code) { return code === 10 || code === 13 || code === 9 || code === 32; } function headerValueNormalize(potentialValue) { let i = 0; let j = potentialValue.length; while (j > i && isHTTPWhiteSpaceCharCode(potentialValue.charCodeAt(j - 1))) --j; while (j > i && isHTTPWhiteSpaceCharCode(potentialValue.charCodeAt(i))) ++i; return i === 0 && j === potentialValue.length ? potentialValue : potentialValue.substring(i, j); } function fill(headers, object) { if (Array.isArray(object)) { for (let i = 0; i < object.length; ++i) { const header = object[i]; if (header.length !== 2) { throw webidl.errors.exception({ header: "Headers constructor", message: `expected name/value pair to be length 2, found ${header.length}.` }); } appendHeader(headers, header[0], header[1]); } } else if (typeof object === "object" && object !== null) { const keys = Object.keys(object); for (let i = 0; i < keys.length; ++i) { appendHeader(headers, keys[i], object[keys[i]]); } } else { throw webidl.errors.conversionFailed({ prefix: "Headers constructor", argument: "Argument 1", types: ["sequence<sequence<ByteString>>", "record<ByteString, ByteString>"] }); } } function appendHeader(headers, name, value) { value = headerValueNormalize(value); if (!isValidHeaderName2(name)) { throw webidl.errors.invalidArgument({ prefix: "Headers.append", value: name, type: "header name" }); } else if (!isValidHeaderValue(value)) { throw webidl.errors.invalidArgument({ prefix: "Headers.append", value, type: "header value" }); } if (getHeadersGuard(headers) === "immutable") { throw new TypeError("immutable"); } return getHeadersList(headers).append(name, value, false); } function compareHeaderName(a, b) { return a[0] < b[0] ? -1 : 1; } var HeadersList = class _HeadersList { /** @type {[string, string][]|null} */ cookies = null; constructor(init) { if (init instanceof _HeadersList) { this[kHeadersMap] = new Map(init[kHeadersMap]); this[kHeadersSortedMap] = init[kHeadersSortedMap]; this.cookies = init.cookies === null ? null : [...init.cookies]; } else { this[kHeadersMap] = new Map(init); this[kHeadersSortedMap] = null; } } /** * @see https://fetch.spec.whatwg.org/#header-list-contains * @param {string} name * @param {boolean} isLowerCase */ contains(name, isLowerCase) { return this[kHeadersMap].has(isLowerCase ? name : name.toLowerCase()); } clear() { this[kHeadersMap].clear(); this[kHeadersSortedMap] = null; this.cookies = null; } /** * @see https://fetch.spec.whatwg.org/#concept-header-list-append * @param {string} name * @param {string} value * @param {boolean} isLowerCase */ append(name, value, isLowerCase) { this[kHeadersSortedMap] = null; const lowercaseName = isLowerCase ? name : name.toLowerCase(); const exists = this[kHeadersMap].get(lowercaseName); if (exists) { const delimiter = lowercaseName === "cookie" ? "; " : ", "; this[kHeadersMap].set(lowercaseName, { name: exists.name, value: `${exists.value}${delimiter}${value}` }); } else { this[kHeadersMap].set(lowercaseName, { name, value }); } if (lowercaseName === "set-cookie") { (this.cookies ??= []).push(value); } } /** * @see https://fetch.spec.whatwg.org/#concept-header-list-set * @param {string} name * @param {string} value * @param {boolean} isLowerCase */ set(name, value, isLowerCase) { this[kHeadersSortedMap] = null; const lowercaseName = isLowerCase ? name : name.toLowerCase(); if (lowercaseName === "set-cookie") { this.cookies = [value]; } this[kHeadersMap].set(lowercaseName, { name, value }); } /** * @see https://fetch.spec.whatwg.org/#concept-header-list-delete * @param {string} name * @param {boolean} isLowerCase */ delete(name, isLowerCase) { this[kHeadersSortedMap] = null; if (!isLowerCase) name = name.toLowerCase(); if (name === "set-cookie") { this.cookies = null; } this[kHeadersMap].delete(name); } /** * @see https://fetch.spec.whatwg.org/#concept-header-list-get * @param {string} name * @param {boolean} isLowerCase * @returns {string | null} */ get(name, isLowerCase) { return this[kHeadersMap].get(isLowerCase ? name : name.toLowerCase())?.value ?? null; } *[Symbol.iterator]() { for (const { 0: name, 1: { value } } of this[kHeadersMap]) { yield [name, value]; } } get entries() { const headers = {}; if (this[kHeadersMap].size !== 0) { for (const { name, value } of this[kHeadersMap].values()) { headers[name] = value; } } return headers; } rawValues() { return this[kHeadersMap].values(); } get entriesList() { const headers = []; if (this[kHeadersMap].size !== 0) { for (const { 0: lowerName, 1: { name, value } } of this[kHeadersMap]) { if (lowerName === "set-cookie") { for (const cookie of this.cookies) { headers.push([name, cookie]); } } else { headers.push([name, value]); } } } return headers; } // https://fetch.spec.whatwg.org/#convert-header-names-to-a-sorted-lowercase-set toSortedArray() { const size = this[kHeadersMap].size; const array = new Array(size); if (size <= 32) { if (size === 0) { return array; } const iterator = this[kHeadersMap][Symbol.iterator](); const firstValue = iterator.next().value; array[0] = [firstValue[0], firstValue[1].value]; assert(firstValue[1].value !== null); for (let i = 1, j = 0, right = 0, left = 0, pivot = 0, x, value; i < size; ++i) { value = iterator.next().value; x = array[i] = [value[0], value[1].value]; assert(x[1] !== null); left = 0; right = i; while (left < right) { pivot = left + (right - left >> 1); if (array[pivot][0] <= x[0]) { left = pivot + 1; } else { right = pivot; } } if (i !== pivot) { j = i; while (j > left) { array[j] = array[--j]; } array[left] = x; } } if (!iterator.next().done) { throw new TypeError("Unreachable"); } return array; } else { let i = 0; for (const { 0: name, 1: { value } } of this[kHeadersMap]) { array[i++] = [name, value]; assert(value !== null); } return array.sort(compareHeaderName); } } }; var Headers = class _Headers { #guard; #headersList; constructor(init = void 0) { webidl.util.markAsUncloneable(this); if (init === kConstruct) { return; } this.#headersList = new HeadersList(); this.#guard = "none"; if (init !== void 0) { init = webidl.converters.HeadersInit(init, "Headers contructor", "init"); fill(this, init); } } // https://fetch.spec.whatwg.org/#dom-headers-append append(name, value) { webidl.brandCheck(this, _Headers); webidl.argumentLengthCheck(arguments, 2, "Headers.append"); const prefix = "Headers.append"; name = webidl.converters.ByteString(name, prefix, "name"); value = webidl.converters.ByteString(value, prefix, "value"); return appendHeader(this, name, value); } // https://fetch.spec.whatwg.org/#dom-headers-delete delete(name) { webidl.brandCheck(this, _Headers); webidl.argumentLengthCheck(arguments, 1, "Headers.delete"); const prefix = "Headers.delete"; name = webidl.converters.ByteString(name, prefix, "name"); if (!isValidHeaderName2(name)) { throw webidl.errors.invalidArgument({ prefix: "Headers.delete", value: name, type: "header name" }); } if (this.#guard === "immutable") { throw new TypeError("immutable"); } if (!this.#headersList.contains(name, false)) { return; } this.#headersList.delete(name, false); } // https://fetch.spec.whatwg.org/#dom-headers-get get(name) { webidl.brandCheck(this, _Headers); webidl.argumentLengthCheck(arguments, 1, "Headers.get"); const prefix = "Headers.get"; name = webidl.converters.ByteString(name, prefix, "name"); if (!isValidHeaderName2(name)) { throw webidl.errors.invalidArgument({ prefix, value: name, type: "header name" }); } return this.#headersList.get(name, false); } // https://fetch.spec.whatwg.org/#dom-headers-has has(name) { webidl.brandCheck(this, _Headers); webidl.argumentLengthCheck(arguments, 1, "Headers.has"); const prefix = "Headers.has"; name = webidl.converters.ByteString(name, prefix, "name"); if (!isValidHeaderName2(name)) { throw webidl.errors.invalidArgument({ prefix, value: name, type: "header name" }); } return this.#headersList.contains(name, false); } // https://fetch.spec.whatwg.org/#dom-headers-set set(name, value) { webidl.brandCheck(this, _Headers); webidl.argumentLengthCheck(arguments, 2, "Headers.set"); const prefix = "Headers.set"; name = webidl.converters.ByteString(name, prefix, "name"); value = webidl.converters.ByteString(value, prefix, "value"); value = headerValueNormalize(value); if (!isValidHeaderName2(name)) { throw webidl.errors.invalidArgument({ prefix, value: name, type: "header name" }); } else if (!isValidHeaderValue(value)) { throw webidl.errors.invalidArgument({ prefix, value, type: "header value" }); } if (this.#guard === "immutable") { throw new TypeError("immutable"); } this.#headersList.set(name, value, false); } // https://fetch.spec.whatwg.org/#dom-headers-getsetcookie getSetCookie() { webidl.brandCheck(this, _Headers); const list = this.#headersList.cookies; if (list) { return [...list]; } return []; } // https://fetch.spec.whatwg.org/#concept-header-list-sort-and-combine get [kHeadersSortedMap]() { if (this.#headersList[kHeadersSortedMap]) { return this.#headersList[kHeadersSortedMap]; } const headers = []; const names = this.#headersList.toSortedArray(); const cookies = this.#headersList.cookies; if (cookies === null || cookies.length === 1) { return this.#headersList[kHeadersSortedMap] = names; } for (let i = 0; i < names.length; ++i) { const { 0: name, 1: value } = names[i]; if (name === "set-cookie") { for (let j = 0; j < cookies.length; ++j) { headers.push([name, cookies[j]]); } } else { headers.push([name, value]); } } return this.#headersList[kHeadersSortedMap] = headers; } [util5.inspect.custom](depth, options) { options.depth ??= depth; return `Headers ${util5.formatWithOptions(options, this.#headersList.entries)}`; } static getHeadersGuard(o) { return o.#guard; } static setHeadersGuard(o, guard) { o.#guard = guard; } static getHeadersList(o) { return o.#headersList; } static setHeadersList(o, list) { o.#headersList = list; } }; var { getHeadersGuard, setHeadersGuard, getHeadersList, setHeadersList } = Headers; Reflect.deleteProperty(Headers, "getHeadersGuard"); Reflect.deleteProperty(Headers, "setHeadersGuard"); Reflect.deleteProperty(Headers, "getHeadersList"); Reflect.deleteProperty(Headers, "setHeadersList"); iteratorMixin("Headers", Headers, kHeadersSortedMap, 0, 1); Object.defineProperties(Headers.prototype, { append: kEnumerableProperty, delete: kEnumerableProperty, get: kEnumerableProperty, has: kEnumerableProperty, set: kEnumerableProperty, getSetCookie: kEnumerableProperty, [Symbol.toStringTag]: { value: "Headers", configurable: true }, [util5.inspect.custom]: { enumerable: false } }); webidl.converters.HeadersInit = function(V, prefix, argument) { if (webidl.util.Type(V) === "Object") { const iterator = Reflect.get(V, Symbol.iterator); if (!util5.types.isProxy(V) && iterator === Headers.prototype.entries) { try { return getHeadersList(V).entriesList; } catch { } } if (typeof iterator === "function") { return webidl.converters["sequence<sequence<ByteString>>"](V, prefix, argument, iterator.bind(V)); } return webidl.converters["record<ByteString, ByteString>"](V, prefix, argument); } throw webidl.errors.conversionFailed({ prefix: "Headers constructor", argument: "Argument 1", types: ["sequence<sequence<ByteString>>", "record<ByteString, ByteString>"] }); }; module2.exports = { fill, // for test. compareHeaderName, Headers, HeadersList, getHeadersGuard, setHeadersGuard, setHeadersList, getHeadersList }; } }); // node_modules/undici/lib/web/fetch/response.js var require_response = __commonJS({ "node_modules/undici/lib/web/fetch/response.js"(exports2, module2) { "use strict"; var { Headers, HeadersList, fill, getHeadersGuard, setHeadersGuard, setHeadersList } = require_headers(); var { extractBody, cloneBody, mixinBody, hasFinalizationRegistry, streamRegistry, bodyUnusable } = require_body(); var util5 = require_util2(); var nodeUtil = require("node:util"); var { kEnumerableProperty } = util5; var { isValidReasonPhrase, isCancelled, isAborted: isAborted3, isBlobLike, serializeJavascriptValueToJSONString, isErrorLike, isomorphicEncode, environmentSettingsObject: relevantRealm } = require_util3(); var { redirectStatusSet, nullBodyStatus } = require_constants3(); var { kState, kHeaders } = require_symbols2(); var { webidl } = require_webidl(); var { FormData: FormData3 } = require_formdata(); var { URLSerializer } = require_data_url(); var { kConstruct } = require_symbols(); var assert = require("node:assert"); var { types } = require("node:util"); var textEncoder2 = new TextEncoder("utf-8"); var Response3 = class _Response { // Creates network error Response. static error() { const responseObject = fromInnerResponse(makeNetworkError(), "immutable"); return responseObject; } // https://fetch.spec.whatwg.org/#dom-response-json static json(data2, init = {}) { webidl.argumentLengthCheck(arguments, 1, "Response.json"); if (init !== null) { init = webidl.converters.ResponseInit(init); } const bytes = textEncoder2.encode( serializeJavascriptValueToJSONString(data2) ); const body = extractBody(bytes); const responseObject = fromInnerResponse(makeResponse({}), "response"); initializeResponse(responseObject, init, { body: body[0], type: "application/json" }); return responseObject; } // Creates a redirect Response that redirects to url with status status. static redirect(url2, status = 302) { webidl.argumentLengthCheck(arguments, 1, "Response.redirect"); url2 = webidl.converters.USVString(url2); status = webidl.converters["unsigned short"](status); let parsedURL; try { parsedURL = new URL(url2, relevantRealm.settingsObject.baseUrl); } catch (err2) { throw new TypeError(`Failed to parse URL from ${url2}`, { cause: err2 }); } if (!redirectStatusSet.has(status)) { throw new RangeError(`Invalid status code ${status}`); } const responseObject = fromInnerResponse(makeResponse({}), "immutable"); responseObject[kState].status = status; const value = isomorphicEncode(URLSerializer(parsedURL)); responseObject[kState].headersList.append("location", value, true); return responseObject; } // https://fetch.spec.whatwg.org/#dom-response constructor(body = null, init = {}) { webidl.util.markAsUncloneable(this); if (body === kConstruct) { return; } if (body !== null) { body = webidl.converters.BodyInit(body); } init = webidl.converters.ResponseInit(init); this[kState] = makeResponse({}); this[kHeaders] = new Headers(kConstruct); setHeadersGuard(this[kHeaders], "response"); setHeadersList(this[kHeaders], this[kState].headersList); let bodyWithType = null; if (body != null) { const [extractedBody, type] = extractBody(body); bodyWithType = { body: extractedBody, type }; } initializeResponse(this, init, bodyWithType); } // Returns response’s type, e.g., "cors". get type() { webidl.brandCheck(this, _Response); return this[kState].type; } // Returns response’s URL, if it has one; otherwise the empty string. get url() { webidl.brandCheck(this, _Response); const urlList = this[kState].urlList; const url2 = urlList[urlList.length - 1] ?? null; if (url2 === null) { return ""; } return URLSerializer(url2, true); } // Returns whether response was obtained through a redirect. get redirected() { webidl.brandCheck(this, _Response); return this[kState].urlList.length > 1; } // Returns response’s status. get status() { webidl.brandCheck(this, _Response); return this[kState].status; } // Returns whether response’s status is an ok status. get ok() { webidl.brandCheck(this, _Response); return this[kState].status >= 200 && this[kState].status <= 299; } // Returns response’s status message. get statusText() { webidl.brandCheck(this, _Response); return this[kState].statusText; } // Returns response’s headers as Headers. get headers() { webidl.brandCheck(this, _Response); return this[kHeaders]; } get body() { webidl.brandCheck(this, _Response); return this[kState].body ? this[kState].body.stream : null; } get bodyUsed() { webidl.brandCheck(this, _Response); return !!this[kState].body && util5.isDisturbed(this[kState].body.stream); } // Returns a clone of response. clone() { webidl.brandCheck(this, _Response); if (bodyUnusable(this)) { throw webidl.errors.exception({ header: "Response.clone", message: "Body has already been consumed." }); } const clonedResponse = cloneResponse(this[kState]); return fromInnerResponse(clonedResponse, getHeadersGuard(this[kHeaders])); } [nodeUtil.inspect.custom](depth, options) { if (options.depth === null) { options.depth = 2; } options.colors ??= true; const properties = { status: this.status, statusText: this.statusText, headers: this.headers, body: this.body, bodyUsed: this.bodyUsed, ok: this.ok, redirected: this.redirected, type: this.type, url: this.url }; return `Response ${nodeUtil.formatWithOptions(options, properties)}`; } }; mixinBody(Response3); Object.defineProperties(Response3.prototype, { type: kEnumerableProperty, url: kEnumerableProperty, status: kEnumerableProperty, ok: kEnumerableProperty, redirected: kEnumerableProperty, statusText: kEnumerableProperty, headers: kEnumerableProperty, clone: kEnumerableProperty, body: kEnumerableProperty, bodyUsed: kEnumerableProperty, [Symbol.toStringTag]: { value: "Response", configurable: true } }); Object.defineProperties(Response3, { json: kEnumerableProperty, redirect: kEnumerableProperty, error: kEnumerableProperty }); function cloneResponse(response) { if (response.internalResponse) { return filterResponse( cloneResponse(response.internalResponse), response.type ); } const newResponse = makeResponse({ ...response, body: null }); if (response.body != null) { newResponse.body = cloneBody(newResponse, response.body); } return newResponse; } function makeResponse(init) { return { aborted: false, rangeRequested: false, timingAllowPassed: false, requestIncludesCredentials: false, type: "default", status: 200, timingInfo: null, cacheState: "", statusText: "", ...init, headersList: init?.headersList ? new HeadersList(init?.headersList) : new HeadersList(), urlList: init?.urlList ? [...init.urlList] : [] }; } function makeNetworkError(reason) { const isError = isErrorLike(reason); return makeResponse({ type: "error", status: 0, error: isError ? reason : new Error(reason ? String(reason) : reason), aborted: reason && reason.name === "AbortError" }); } function isNetworkError(response) { return ( // A network error is a response whose type is "error", response.type === "error" && // status is 0 response.status === 0 ); } function makeFilteredResponse(response, state) { state = { internalResponse: response, ...state }; return new Proxy(response, { get(target, p) { return p in state ? state[p] : target[p]; }, set(target, p, value) { assert(!(p in state)); target[p] = value; return true; } }); } function filterResponse(response, type) { if (type === "basic") { return makeFilteredResponse(response, { type: "basic", headersList: response.headersList }); } else if (type === "cors") { return makeFilteredResponse(response, { type: "cors", headersList: response.headersList }); } else if (type === "opaque") { return makeFilteredResponse(response, { type: "opaque", urlList: Object.freeze([]), status: 0, statusText: "", body: null }); } else if (type === "opaqueredirect") { return makeFilteredResponse(response, { type: "opaqueredirect", status: 0, statusText: "", headersList: [], body: null }); } else { assert(false); } } function makeAppropriateNetworkError(fetchParams, err2 = null) { assert(isCancelled(fetchParams)); return isAborted3(fetchParams) ? makeNetworkError(Object.assign(new DOMException("The operation was aborted.", "AbortError"), { cause: err2 })) : makeNetworkError(Object.assign(new DOMException("Request was cancelled."), { cause: err2 })); } function initializeResponse(response, init, body) { if (init.status !== null && (init.status < 200 || init.status > 599)) { throw new RangeError('init["status"] must be in the range of 200 to 599, inclusive.'); } if ("statusText" in init && init.statusText != null) { if (!isValidReasonPhrase(String(init.statusText))) { throw new TypeError("Invalid statusText"); } } if ("status" in init && init.status != null) { response[kState].status = init.status; } if ("statusText" in init && init.statusText != null) { response[kState].statusText = init.statusText; } if ("headers" in init && init.headers != null) { fill(response[kHeaders], init.headers); } if (body) { if (nullBodyStatus.includes(response.status)) { throw webidl.errors.exception({ header: "Response constructor", message: `Invalid response status code ${response.status}` }); } response[kState].body = body.body; if (body.type != null && !response[kState].headersList.contains("content-type", true)) { response[kState].headersList.append("content-type", body.type, true); } } } function fromInnerResponse(innerResponse, guard) { const response = new Response3(kConstruct); response[kState] = innerResponse; response[kHeaders] = new Headers(kConstruct); setHeadersList(response[kHeaders], innerResponse.headersList); setHeadersGuard(response[kHeaders], guard); if (hasFinalizationRegistry && innerResponse.body?.stream) { streamRegistry.register(response, new WeakRef(innerResponse.body.stream)); } return response; } webidl.converters.ReadableStream = webidl.interfaceConverter( ReadableStream ); webidl.converters.FormData = webidl.interfaceConverter( FormData3 ); webidl.converters.URLSearchParams = webidl.interfaceConverter( URLSearchParams ); webidl.converters.XMLHttpRequestBodyInit = function(V, prefix, name) { if (typeof V === "string") { return webidl.converters.USVString(V, prefix, name); } if (isBlobLike(V)) { return webidl.converters.Blob(V, prefix, name, { strict: false }); } if (ArrayBuffer.isView(V) || types.isArrayBuffer(V)) { return webidl.converters.BufferSource(V, prefix, name); } if (util5.isFormDataLike(V)) { return webidl.converters.FormData(V, prefix, name, { strict: false }); } if (V instanceof URLSearchParams) { return webidl.converters.URLSearchParams(V, prefix, name); } return webidl.converters.DOMString(V, prefix, name); }; webidl.converters.BodyInit = function(V, prefix, argument) { if (V instanceof ReadableStream) { return webidl.converters.ReadableStream(V, prefix, argument); } if (V?.[Symbol.asyncIterator]) { return V; } return webidl.converters.XMLHttpRequestBodyInit(V, prefix, argument); }; webidl.converters.ResponseInit = webidl.dictionaryConverter([ { key: "status", converter: webidl.converters["unsigned short"], defaultValue: () => 200 }, { key: "statusText", converter: webidl.converters.ByteString, defaultValue: () => "" }, { key: "headers", converter: webidl.converters.HeadersInit } ]); module2.exports = { isNetworkError, makeNetworkError, makeResponse, makeAppropriateNetworkError, filterResponse, Response: Response3, cloneResponse, fromInnerResponse }; } }); // node_modules/undici/lib/web/fetch/dispatcher-weakref.js var require_dispatcher_weakref = __commonJS({ "node_modules/undici/lib/web/fetch/dispatcher-weakref.js"(exports2, module2) { "use strict"; var { kConnected, kSize } = require_symbols(); var CompatWeakRef = class { constructor(value) { this.value = value; } deref() { return this.value[kConnected] === 0 && this.value[kSize] === 0 ? void 0 : this.value; } }; var CompatFinalizer = class { constructor(finalizer) { this.finalizer = finalizer; } register(dispatcher, key) { if (dispatcher.on) { dispatcher.on("disconnect", () => { if (dispatcher[kConnected] === 0 && dispatcher[kSize] === 0) { this.finalizer(key); } }); } } unregister(key) { } }; module2.exports = function() { if (process.env.NODE_V8_COVERAGE && process.version.startsWith("v18")) { process._rawDebug("Using compatibility WeakRef and FinalizationRegistry"); return { WeakRef: CompatWeakRef, FinalizationRegistry: CompatFinalizer }; } return { WeakRef, FinalizationRegistry }; }; } }); // node_modules/undici/lib/web/fetch/request.js var require_request2 = __commonJS({ "node_modules/undici/lib/web/fetch/request.js"(exports2, module2) { "use strict"; var { extractBody, mixinBody, cloneBody, bodyUnusable } = require_body(); var { Headers, fill: fillHeaders, HeadersList, setHeadersGuard, getHeadersGuard, setHeadersList, getHeadersList } = require_headers(); var { FinalizationRegistry: FinalizationRegistry2 } = require_dispatcher_weakref()(); var util5 = require_util2(); var nodeUtil = require("node:util"); var { isValidHTTPToken, sameOrigin, environmentSettingsObject } = require_util3(); var { forbiddenMethodsSet, corsSafeListedMethodsSet, referrerPolicy, requestRedirect, requestMode, requestCredentials, requestCache, requestDuplex } = require_constants3(); var { kEnumerableProperty, normalizedMethodRecordsBase, normalizedMethodRecords } = util5; var { kHeaders, kSignal, kState, kDispatcher } = require_symbols2(); var { webidl } = require_webidl(); var { URLSerializer } = require_data_url(); var { kConstruct } = require_symbols(); var assert = require("node:assert"); var { getMaxListeners, setMaxListeners, getEventListeners, defaultMaxListeners } = require("node:events"); var kAbortController = Symbol("abortController"); var requestFinalizer = new FinalizationRegistry2(({ signal, abort }) => { signal.removeEventListener("abort", abort); }); var dependentControllerMap = /* @__PURE__ */ new WeakMap(); function buildAbort(acRef) { return abort; function abort() { const ac = acRef.deref(); if (ac !== void 0) { requestFinalizer.unregister(abort); this.removeEventListener("abort", abort); ac.abort(this.reason); const controllerList = dependentControllerMap.get(ac.signal); if (controllerList !== void 0) { if (controllerList.size !== 0) { for (const ref of controllerList) { const ctrl = ref.deref(); if (ctrl !== void 0) { ctrl.abort(this.reason); } } controllerList.clear(); } dependentControllerMap.delete(ac.signal); } } } } var patchMethodWarning = false; var Request2 = class _Request { // https://fetch.spec.whatwg.org/#dom-request constructor(input, init = {}) { webidl.util.markAsUncloneable(this); if (input === kConstruct) { return; } const prefix = "Request constructor"; webidl.argumentLengthCheck(arguments, 1, prefix); input = webidl.converters.RequestInfo(input, prefix, "input"); init = webidl.converters.RequestInit(init, prefix, "init"); let request = null; let fallbackMode = null; const baseUrl = environmentSettingsObject.settingsObject.baseUrl; let signal = null; if (typeof input === "string") { this[kDispatcher] = init.dispatcher; let parsedURL; try { parsedURL = new URL(input, baseUrl); } catch (err2) { throw new TypeError("Failed to parse URL from " + input, { cause: err2 }); } if (parsedURL.username || parsedURL.password) { throw new TypeError( "Request cannot be constructed from a URL that includes credentials: " + input ); } request = makeRequest({ urlList: [parsedURL] }); fallbackMode = "cors"; } else { this[kDispatcher] = init.dispatcher || input[kDispatcher]; assert(input instanceof _Request); request = input[kState]; signal = input[kSignal]; } const origin2 = environmentSettingsObject.settingsObject.origin; let window2 = "client"; if (request.window?.constructor?.name === "EnvironmentSettingsObject" && sameOrigin(request.window, origin2)) { window2 = request.window; } if (init.window != null) { throw new TypeError(`'window' option '${window2}' must be null`); } if ("window" in init) { window2 = "no-window"; } request = makeRequest({ // URL request’s URL. // undici implementation note: this is set as the first item in request's urlList in makeRequest // method request’s method. method: request.method, // header list A copy of request’s header list. // undici implementation note: headersList is cloned in makeRequest headersList: request.headersList, // unsafe-request flag Set. unsafeRequest: request.unsafeRequest, // client This’s relevant settings object. client: environmentSettingsObject.settingsObject, // window window. window: window2, // priority request’s priority. priority: request.priority, // origin request’s origin. The propagation of the origin is only significant for navigation requests // being handled by a service worker. In this scenario a request can have an origin that is different // from the current client. origin: request.origin, // referrer request’s referrer. referrer: request.referrer, // referrer policy request’s referrer policy. referrerPolicy: request.referrerPolicy, // mode request’s mode. mode: request.mode, // credentials mode request’s credentials mode. credentials: request.credentials, // cache mode request’s cache mode. cache: request.cache, // redirect mode request’s redirect mode. redirect: request.redirect, // integrity metadata request’s integrity metadata. integrity: request.integrity, // keepalive request’s keepalive. keepalive: request.keepalive, // reload-navigation flag request’s reload-navigation flag. reloadNavigation: request.reloadNavigation, // history-navigation flag request’s history-navigation flag. historyNavigation: request.historyNavigation, // URL list A clone of request’s URL list. urlList: [...request.urlList] }); const initHasKey = Object.keys(init).length !== 0; if (initHasKey) { if (request.mode === "navigate") { request.mode = "same-origin"; } request.reloadNavigation = false; request.historyNavigation = false; request.origin = "client"; request.referrer = "client"; request.referrerPolicy = ""; request.url = request.urlList[request.urlList.length - 1]; request.urlList = [request.url]; } if (init.referrer !== void 0) { const referrer = init.referrer; if (referrer === "") { request.referrer = "no-referrer"; } else { let parsedReferrer; try { parsedReferrer = new URL(referrer, baseUrl); } catch (err2) { throw new TypeError(`Referrer "${referrer}" is not a valid URL.`, { cause: err2 }); } if (parsedReferrer.protocol === "about:" && parsedReferrer.hostname === "client" || origin2 && !sameOrigin(parsedReferrer, environmentSettingsObject.settingsObject.baseUrl)) { request.referrer = "client"; } else { request.referrer = parsedReferrer; } } } if (init.referrerPolicy !== void 0) { request.referrerPolicy = init.referrerPolicy; } let mode; if (init.mode !== void 0) { mode = init.mode; } else { mode = fallbackMode; } if (mode === "navigate") { throw webidl.errors.exception({ header: "Request constructor", message: "invalid request mode navigate." }); } if (mode != null) { request.mode = mode; } if (init.credentials !== void 0) { request.credentials = init.credentials; } if (init.cache !== void 0) { request.cache = init.cache; } if (request.cache === "only-if-cached" && request.mode !== "same-origin") { throw new TypeError( "'only-if-cached' can be set only with 'same-origin' mode" ); } if (init.redirect !== void 0) { request.redirect = init.redirect; } if (init.integrity != null) { request.integrity = String(init.integrity); } if (init.keepalive !== void 0) { request.keepalive = Boolean(init.keepalive); } if (init.method !== void 0) { let method = init.method; const mayBeNormalized = normalizedMethodRecords[method]; if (mayBeNormalized !== void 0) { request.method = mayBeNormalized; } else { if (!isValidHTTPToken(method)) { throw new TypeError(`'${method}' is not a valid HTTP method.`); } const upperCase = method.toUpperCase(); if (forbiddenMethodsSet.has(upperCase)) { throw new TypeError(`'${method}' HTTP method is unsupported.`); } method = normalizedMethodRecordsBase[upperCase] ?? method; request.method = method; } if (!patchMethodWarning && request.method === "patch") { process.emitWarning("Using `patch` is highly likely to result in a `405 Method Not Allowed`. `PATCH` is much more likely to succeed.", { code: "UNDICI-FETCH-patch" }); patchMethodWarning = true; } } if (init.signal !== void 0) { signal = init.signal; } this[kState] = request; const ac = new AbortController(); this[kSignal] = ac.signal; if (signal != null) { if (!signal || typeof signal.aborted !== "boolean" || typeof signal.addEventListener !== "function") { throw new TypeError( "Failed to construct 'Request': member signal is not of type AbortSignal." ); } if (signal.aborted) { ac.abort(signal.reason); } else { this[kAbortController] = ac; const acRef = new WeakRef(ac); const abort = buildAbort(acRef); try { if (typeof getMaxListeners === "function" && getMaxListeners(signal) === defaultMaxListeners) { setMaxListeners(1500, signal); } else if (getEventListeners(signal, "abort").length >= defaultMaxListeners) { setMaxListeners(1500, signal); } } catch { } util5.addAbortListener(signal, abort); requestFinalizer.register(ac, { signal, abort }, abort); } } this[kHeaders] = new Headers(kConstruct); setHeadersList(this[kHeaders], request.headersList); setHeadersGuard(this[kHeaders], "request"); if (mode === "no-cors") { if (!corsSafeListedMethodsSet.has(request.method)) { throw new TypeError( `'${request.method} is unsupported in no-cors mode.` ); } setHeadersGuard(this[kHeaders], "request-no-cors"); } if (initHasKey) { const headersList = getHeadersList(this[kHeaders]); const headers = init.headers !== void 0 ? init.headers : new HeadersList(headersList); headersList.clear(); if (headers instanceof HeadersList) { for (const { name, value } of headers.rawValues()) { headersList.append(name, value, false); } headersList.cookies = headers.cookies; } else { fillHeaders(this[kHeaders], headers); } } const inputBody = input instanceof _Request ? input[kState].body : null; if ((init.body != null || inputBody != null) && (request.method === "GET" || request.method === "HEAD")) { throw new TypeError("Request with GET/HEAD method cannot have body."); } let initBody = null; if (init.body != null) { const [extractedBody, contentType] = extractBody( init.body, request.keepalive ); initBody = extractedBody; if (contentType && !getHeadersList(this[kHeaders]).contains("content-type", true)) { this[kHeaders].append("content-type", contentType); } } const inputOrInitBody = initBody ?? inputBody; if (inputOrInitBody != null && inputOrInitBody.source == null) { if (initBody != null && init.duplex == null) { throw new TypeError("RequestInit: duplex option is required when sending a body."); } if (request.mode !== "same-origin" && request.mode !== "cors") { throw new TypeError( 'If request is made from ReadableStream, mode should be "same-origin" or "cors"' ); } request.useCORSPreflightFlag = true; } let finalBody = inputOrInitBody; if (initBody == null && inputBody != null) { if (bodyUnusable(input)) { throw new TypeError( "Cannot construct a Request with a Request object that has already been used." ); } const identityTransform = new TransformStream(); inputBody.stream.pipeThrough(identityTransform); finalBody = { source: inputBody.source, length: inputBody.length, stream: identityTransform.readable }; } this[kState].body = finalBody; } // Returns request’s HTTP method, which is "GET" by default. get method() { webidl.brandCheck(this, _Request); return this[kState].method; } // Returns the URL of request as a string. get url() { webidl.brandCheck(this, _Request); return URLSerializer(this[kState].url); } // Returns a Headers object consisting of the headers associated with request. // Note that headers added in the network layer by the user agent will not // be accounted for in this object, e.g., the "Host" header. get headers() { webidl.brandCheck(this, _Request); return this[kHeaders]; } // Returns the kind of resource requested by request, e.g., "document" // or "script". get destination() { webidl.brandCheck(this, _Request); return this[kState].destination; } // Returns the referrer of request. Its value can be a same-origin URL if // explicitly set in init, the empty string to indicate no referrer, and // "about:client" when defaulting to the global’s default. This is used // during fetching to determine the value of the `Referer` header of the // request being made. get referrer() { webidl.brandCheck(this, _Request); if (this[kState].referrer === "no-referrer") { return ""; } if (this[kState].referrer === "client") { return "about:client"; } return this[kState].referrer.toString(); } // Returns the referrer policy associated with request. // This is used during fetching to compute the value of the request’s // referrer. get referrerPolicy() { webidl.brandCheck(this, _Request); return this[kState].referrerPolicy; } // Returns the mode associated with request, which is a string indicating // whether the request will use CORS, or will be restricted to same-origin // URLs. get mode() { webidl.brandCheck(this, _Request); return this[kState].mode; } // Returns the credentials mode associated with request, // which is a string indicating whether credentials will be sent with the // request always, never, or only when sent to a same-origin URL. get credentials() { return this[kState].credentials; } // Returns the cache mode associated with request, // which is a string indicating how the request will // interact with the browser’s cache when fetching. get cache() { webidl.brandCheck(this, _Request); return this[kState].cache; } // Returns the redirect mode associated with request, // which is a string indicating how redirects for the // request will be handled during fetching. A request // will follow redirects by default. get redirect() { webidl.brandCheck(this, _Request); return this[kState].redirect; } // Returns request’s subresource integrity metadata, which is a // cryptographic hash of the resource being fetched. Its value // consists of multiple hashes separated by whitespace. [SRI] get integrity() { webidl.brandCheck(this, _Request); return this[kState].integrity; } // Returns a boolean indicating whether or not request can outlive the // global in which it was created. get keepalive() { webidl.brandCheck(this, _Request); return this[kState].keepalive; } // Returns a boolean indicating whether or not request is for a reload // navigation. get isReloadNavigation() { webidl.brandCheck(this, _Request); return this[kState].reloadNavigation; } // Returns a boolean indicating whether or not request is for a history // navigation (a.k.a. back-forward navigation). get isHistoryNavigation() { webidl.brandCheck(this, _Request); return this[kState].historyNavigation; } // Returns the signal associated with request, which is an AbortSignal // object indicating whether or not request has been aborted, and its // abort event handler. get signal() { webidl.brandCheck(this, _Request); return this[kSignal]; } get body() { webidl.brandCheck(this, _Request); return this[kState].body ? this[kState].body.stream : null; } get bodyUsed() { webidl.brandCheck(this, _Request); return !!this[kState].body && util5.isDisturbed(this[kState].body.stream); } get duplex() { webidl.brandCheck(this, _Request); return "half"; } // Returns a clone of request. clone() { webidl.brandCheck(this, _Request); if (bodyUnusable(this)) { throw new TypeError("unusable"); } const clonedRequest = cloneRequest(this[kState]); const ac = new AbortController(); if (this.signal.aborted) { ac.abort(this.signal.reason); } else { let list = dependentControllerMap.get(this.signal); if (list === void 0) { list = /* @__PURE__ */ new Set(); dependentControllerMap.set(this.signal, list); } const acRef = new WeakRef(ac); list.add(acRef); util5.addAbortListener( ac.signal, buildAbort(acRef) ); } return fromInnerRequest(clonedRequest, ac.signal, getHeadersGuard(this[kHeaders])); } [nodeUtil.inspect.custom](depth, options) { if (options.depth === null) { options.depth = 2; } options.colors ??= true; const properties = { method: this.method, url: this.url, headers: this.headers, destination: this.destination, referrer: this.referrer, referrerPolicy: this.referrerPolicy, mode: this.mode, credentials: this.credentials, cache: this.cache, redirect: this.redirect, integrity: this.integrity, keepalive: this.keepalive, isReloadNavigation: this.isReloadNavigation, isHistoryNavigation: this.isHistoryNavigation, signal: this.signal }; return `Request ${nodeUtil.formatWithOptions(options, properties)}`; } }; mixinBody(Request2); function makeRequest(init) { return { method: init.method ?? "GET", localURLsOnly: init.localURLsOnly ?? false, unsafeRequest: init.unsafeRequest ?? false, body: init.body ?? null, client: init.client ?? null, reservedClient: init.reservedClient ?? null, replacesClientId: init.replacesClientId ?? "", window: init.window ?? "client", keepalive: init.keepalive ?? false, serviceWorkers: init.serviceWorkers ?? "all", initiator: init.initiator ?? "", destination: init.destination ?? "", priority: init.priority ?? null, origin: init.origin ?? "client", policyContainer: init.policyContainer ?? "client", referrer: init.referrer ?? "client", referrerPolicy: init.referrerPolicy ?? "", mode: init.mode ?? "no-cors", useCORSPreflightFlag: init.useCORSPreflightFlag ?? false, credentials: init.credentials ?? "same-origin", useCredentials: init.useCredentials ?? false, cache: init.cache ?? "default", redirect: init.redirect ?? "follow", integrity: init.integrity ?? "", cryptoGraphicsNonceMetadata: init.cryptoGraphicsNonceMetadata ?? "", parserMetadata: init.parserMetadata ?? "", reloadNavigation: init.reloadNavigation ?? false, historyNavigation: init.historyNavigation ?? false, userActivation: init.userActivation ?? false, taintedOrigin: init.taintedOrigin ?? false, redirectCount: init.redirectCount ?? 0, responseTainting: init.responseTainting ?? "basic", preventNoCacheCacheControlHeaderModification: init.preventNoCacheCacheControlHeaderModification ?? false, done: init.done ?? false, timingAllowFailed: init.timingAllowFailed ?? false, urlList: init.urlList, url: init.urlList[0], headersList: init.headersList ? new HeadersList(init.headersList) : new HeadersList() }; } function cloneRequest(request) { const newRequest = makeRequest({ ...request, body: null }); if (request.body != null) { newRequest.body = cloneBody(newRequest, request.body); } return newRequest; } function fromInnerRequest(innerRequest, signal, guard) { const request = new Request2(kConstruct); request[kState] = innerRequest; request[kSignal] = signal; request[kHeaders] = new Headers(kConstruct); setHeadersList(request[kHeaders], innerRequest.headersList); setHeadersGuard(request[kHeaders], guard); return request; } Object.defineProperties(Request2.prototype, { method: kEnumerableProperty, url: kEnumerableProperty, headers: kEnumerableProperty, redirect: kEnumerableProperty, clone: kEnumerableProperty, signal: kEnumerableProperty, duplex: kEnumerableProperty, destination: kEnumerableProperty, body: kEnumerableProperty, bodyUsed: kEnumerableProperty, isHistoryNavigation: kEnumerableProperty, isReloadNavigation: kEnumerableProperty, keepalive: kEnumerableProperty, integrity: kEnumerableProperty, cache: kEnumerableProperty, credentials: kEnumerableProperty, attribute: kEnumerableProperty, referrerPolicy: kEnumerableProperty, referrer: kEnumerableProperty, mode: kEnumerableProperty, [Symbol.toStringTag]: { value: "Request", configurable: true } }); webidl.converters.Request = webidl.interfaceConverter( Request2 ); webidl.converters.RequestInfo = function(V, prefix, argument) { if (typeof V === "string") { return webidl.converters.USVString(V, prefix, argument); } if (V instanceof Request2) { return webidl.converters.Request(V, prefix, argument); } return webidl.converters.USVString(V, prefix, argument); }; webidl.converters.AbortSignal = webidl.interfaceConverter( AbortSignal ); webidl.converters.RequestInit = webidl.dictionaryConverter([ { key: "method", converter: webidl.converters.ByteString }, { key: "headers", converter: webidl.converters.HeadersInit }, { key: "body", converter: webidl.nullableConverter( webidl.converters.BodyInit ) }, { key: "referrer", converter: webidl.converters.USVString }, { key: "referrerPolicy", converter: webidl.converters.DOMString, // https://w3c.github.io/webappsec-referrer-policy/#referrer-policy allowedValues: referrerPolicy }, { key: "mode", converter: webidl.converters.DOMString, // https://fetch.spec.whatwg.org/#concept-request-mode allowedValues: requestMode }, { key: "credentials", converter: webidl.converters.DOMString, // https://fetch.spec.whatwg.org/#requestcredentials allowedValues: requestCredentials }, { key: "cache", converter: webidl.converters.DOMString, // https://fetch.spec.whatwg.org/#requestcache allowedValues: requestCache }, { key: "redirect", converter: webidl.converters.DOMString, // https://fetch.spec.whatwg.org/#requestredirect allowedValues: requestRedirect }, { key: "integrity", converter: webidl.converters.DOMString }, { key: "keepalive", converter: webidl.converters.boolean }, { key: "signal", converter: webidl.nullableConverter( (signal) => webidl.converters.AbortSignal( signal, "RequestInit", "signal", { strict: false } ) ) }, { key: "window", converter: webidl.converters.any }, { key: "duplex", converter: webidl.converters.DOMString, allowedValues: requestDuplex }, { key: "dispatcher", // undici specific option converter: webidl.converters.any } ]); module2.exports = { Request: Request2, makeRequest, fromInnerRequest, cloneRequest }; } }); // node_modules/undici/lib/web/fetch/index.js var require_fetch = __commonJS({ "node_modules/undici/lib/web/fetch/index.js"(exports2, module2) { "use strict"; var { makeNetworkError, makeAppropriateNetworkError, filterResponse, makeResponse, fromInnerResponse } = require_response(); var { HeadersList } = require_headers(); var { Request: Request2, cloneRequest } = require_request2(); var zlib2 = require("node:zlib"); var { bytesMatch, makePolicyContainer, clonePolicyContainer, requestBadPort, TAOCheck, appendRequestOriginHeader, responseLocationURL, requestCurrentURL, setRequestReferrerPolicyOnRedirect, tryUpgradeRequestToAPotentiallyTrustworthyURL, createOpaqueTimingInfo, appendFetchMetadata, corsCheck, crossOriginResourcePolicyCheck, determineRequestsReferrer, coarsenedSharedCurrentTime, createDeferredPromise, isBlobLike, sameOrigin, isCancelled, isAborted: isAborted3, isErrorLike, fullyReadBody, readableStreamClose, isomorphicEncode, urlIsLocal, urlIsHttpHttpsScheme, urlHasHttpsScheme, clampAndCoarsenConnectionTimingInfo, simpleRangeHeaderValue, buildContentRange, createInflate, extractMimeType } = require_util3(); var { kState, kDispatcher } = require_symbols2(); var assert = require("node:assert"); var { safelyExtractBody, extractBody } = require_body(); var { redirectStatusSet, nullBodyStatus, safeMethodsSet, requestBodyHeader, subresourceSet } = require_constants3(); var EE = require("node:events"); var { Readable: Readable2, pipeline, finished } = require("node:stream"); var { addAbortListener, isErrored, isReadable, bufferToLowerCasedHeaderName } = require_util2(); var { dataURLProcessor, serializeAMimeType, minimizeSupportedMimeType } = require_data_url(); var { getGlobalDispatcher } = require_global2(); var { webidl } = require_webidl(); var { STATUS_CODES } = require("node:http"); var GET_OR_HEAD = ["GET", "HEAD"]; var defaultUserAgent = typeof __UNDICI_IS_NODE__ !== "undefined" || typeof esbuildDetection !== "undefined" ? "node" : "undici"; var resolveObjectURL; var Fetch = class extends EE { constructor(dispatcher) { super(); this.dispatcher = dispatcher; this.connection = null; this.dump = false; this.state = "ongoing"; } terminate(reason) { if (this.state !== "ongoing") { return; } this.state = "terminated"; this.connection?.destroy(reason); this.emit("terminated", reason); } // https://fetch.spec.whatwg.org/#fetch-controller-abort abort(error) { if (this.state !== "ongoing") { return; } this.state = "aborted"; if (!error) { error = new DOMException("The operation was aborted.", "AbortError"); } this.serializedAbortReason = error; this.connection?.destroy(error); this.emit("terminated", error); } }; function handleFetchDone(response) { finalizeAndReportTiming(response, "fetch"); } function fetch3(input, init = void 0) { webidl.argumentLengthCheck(arguments, 1, "globalThis.fetch"); let p = createDeferredPromise(); let requestObject; try { requestObject = new Request2(input, init); } catch (e) { p.reject(e); return p.promise; } const request = requestObject[kState]; if (requestObject.signal.aborted) { abortFetch(p, request, null, requestObject.signal.reason); return p.promise; } const globalObject = request.client.globalObject; if (globalObject?.constructor?.name === "ServiceWorkerGlobalScope") { request.serviceWorkers = "none"; } let responseObject = null; let locallyAborted = false; let controller = null; addAbortListener( requestObject.signal, () => { locallyAborted = true; assert(controller != null); controller.abort(requestObject.signal.reason); const realResponse = responseObject?.deref(); abortFetch(p, request, realResponse, requestObject.signal.reason); } ); const processResponse = (response) => { if (locallyAborted) { return; } if (response.aborted) { abortFetch(p, request, responseObject, controller.serializedAbortReason); return; } if (response.type === "error") { p.reject(new TypeError("fetch failed", { cause: response.error })); return; } responseObject = new WeakRef(fromInnerResponse(response, "immutable")); p.resolve(responseObject.deref()); p = null; }; controller = fetching({ request, processResponseEndOfBody: handleFetchDone, processResponse, dispatcher: requestObject[kDispatcher] // undici }); return p.promise; } function finalizeAndReportTiming(response, initiatorType = "other") { if (response.type === "error" && response.aborted) { return; } if (!response.urlList?.length) { return; } const originalURL = response.urlList[0]; let timingInfo = response.timingInfo; let cacheState = response.cacheState; if (!urlIsHttpHttpsScheme(originalURL)) { return; } if (timingInfo === null) { return; } if (!response.timingAllowPassed) { timingInfo = createOpaqueTimingInfo({ startTime: timingInfo.startTime }); cacheState = ""; } timingInfo.endTime = coarsenedSharedCurrentTime(); response.timingInfo = timingInfo; markResourceTiming( timingInfo, originalURL.href, initiatorType, globalThis, cacheState ); } var markResourceTiming = performance.markResourceTiming; function abortFetch(p, request, responseObject, error) { if (p) { p.reject(error); } if (request.body != null && isReadable(request.body?.stream)) { request.body.stream.cancel(error).catch((err2) => { if (err2.code === "ERR_INVALID_STATE") { return; } throw err2; }); } if (responseObject == null) { return; } const response = responseObject[kState]; if (response.body != null && isReadable(response.body?.stream)) { response.body.stream.cancel(error).catch((err2) => { if (err2.code === "ERR_INVALID_STATE") { return; } throw err2; }); } } function fetching({ request, processRequestBodyChunkLength, processRequestEndOfBody, processResponse, processResponseEndOfBody, processResponseConsumeBody, useParallelQueue = false, dispatcher = getGlobalDispatcher() // undici }) { assert(dispatcher); let taskDestination = null; let crossOriginIsolatedCapability = false; if (request.client != null) { taskDestination = request.client.globalObject; crossOriginIsolatedCapability = request.client.crossOriginIsolatedCapability; } const currentTime = coarsenedSharedCurrentTime(crossOriginIsolatedCapability); const timingInfo = createOpaqueTimingInfo({ startTime: currentTime }); const fetchParams = { controller: new Fetch(dispatcher), request, timingInfo, processRequestBodyChunkLength, processRequestEndOfBody, processResponse, processResponseConsumeBody, processResponseEndOfBody, taskDestination, crossOriginIsolatedCapability }; assert(!request.body || request.body.stream); if (request.window === "client") { request.window = request.client?.globalObject?.constructor?.name === "Window" ? request.client : "no-window"; } if (request.origin === "client") { request.origin = request.client.origin; } if (request.policyContainer === "client") { if (request.client != null) { request.policyContainer = clonePolicyContainer( request.client.policyContainer ); } else { request.policyContainer = makePolicyContainer(); } } if (!request.headersList.contains("accept", true)) { const value = "*/*"; request.headersList.append("accept", value, true); } if (!request.headersList.contains("accept-language", true)) { request.headersList.append("accept-language", "*", true); } if (request.priority === null) { } if (subresourceSet.has(request.destination)) { } mainFetch(fetchParams).catch((err2) => { fetchParams.controller.terminate(err2); }); return fetchParams.controller; } async function mainFetch(fetchParams, recursive = false) { const request = fetchParams.request; let response = null; if (request.localURLsOnly && !urlIsLocal(requestCurrentURL(request))) { response = makeNetworkError("local URLs only"); } tryUpgradeRequestToAPotentiallyTrustworthyURL(request); if (requestBadPort(request) === "blocked") { response = makeNetworkError("bad port"); } if (request.referrerPolicy === "") { request.referrerPolicy = request.policyContainer.referrerPolicy; } if (request.referrer !== "no-referrer") { request.referrer = determineRequestsReferrer(request); } if (response === null) { response = await (async () => { const currentURL = requestCurrentURL(request); if ( // - request’s current URL’s origin is same origin with request’s origin, // and request’s response tainting is "basic" sameOrigin(currentURL, request.url) && request.responseTainting === "basic" || // request’s current URL’s scheme is "data" currentURL.protocol === "data:" || // - request’s mode is "navigate" or "websocket" (request.mode === "navigate" || request.mode === "websocket") ) { request.responseTainting = "basic"; return await schemeFetch(fetchParams); } if (request.mode === "same-origin") { return makeNetworkError('request mode cannot be "same-origin"'); } if (request.mode === "no-cors") { if (request.redirect !== "follow") { return makeNetworkError( 'redirect mode cannot be "follow" for "no-cors" request' ); } request.responseTainting = "opaque"; return await schemeFetch(fetchParams); } if (!urlIsHttpHttpsScheme(requestCurrentURL(request))) { return makeNetworkError("URL scheme must be a HTTP(S) scheme"); } request.responseTainting = "cors"; return await httpFetch(fetchParams); })(); } if (recursive) { return response; } if (response.status !== 0 && !response.internalResponse) { if (request.responseTainting === "cors") { } if (request.responseTainting === "basic") { response = filterResponse(response, "basic"); } else if (request.responseTainting === "cors") { response = filterResponse(response, "cors"); } else if (request.responseTainting === "opaque") { response = filterResponse(response, "opaque"); } else { assert(false); } } let internalResponse = response.status === 0 ? response : response.internalResponse; if (internalResponse.urlList.length === 0) { internalResponse.urlList.push(...request.urlList); } if (!request.timingAllowFailed) { response.timingAllowPassed = true; } if (response.type === "opaque" && internalResponse.status === 206 && internalResponse.rangeRequested && !request.headers.contains("range", true)) { response = internalResponse = makeNetworkError(); } if (response.status !== 0 && (request.method === "HEAD" || request.method === "CONNECT" || nullBodyStatus.includes(internalResponse.status))) { internalResponse.body = null; fetchParams.controller.dump = true; } if (request.integrity) { const processBodyError = (reason) => fetchFinale(fetchParams, makeNetworkError(reason)); if (request.responseTainting === "opaque" || response.body == null) { processBodyError(response.error); return; } const processBody = (bytes) => { if (!bytesMatch(bytes, request.integrity)) { processBodyError("integrity mismatch"); return; } response.body = safelyExtractBody(bytes)[0]; fetchFinale(fetchParams, response); }; await fullyReadBody(response.body, processBody, processBodyError); } else { fetchFinale(fetchParams, response); } } function schemeFetch(fetchParams) { if (isCancelled(fetchParams) && fetchParams.request.redirectCount === 0) { return Promise.resolve(makeAppropriateNetworkError(fetchParams)); } const { request } = fetchParams; const { protocol: scheme } = requestCurrentURL(request); switch (scheme) { case "about:": { return Promise.resolve(makeNetworkError("about scheme is not supported")); } case "blob:": { if (!resolveObjectURL) { resolveObjectURL = require("node:buffer").resolveObjectURL; } const blobURLEntry = requestCurrentURL(request); if (blobURLEntry.search.length !== 0) { return Promise.resolve(makeNetworkError("NetworkError when attempting to fetch resource.")); } const blob = resolveObjectURL(blobURLEntry.toString()); if (request.method !== "GET" || !isBlobLike(blob)) { return Promise.resolve(makeNetworkError("invalid method")); } const response = makeResponse(); const fullLength = blob.size; const serializedFullLength = isomorphicEncode(`${fullLength}`); const type = blob.type; if (!request.headersList.contains("range", true)) { const bodyWithType = extractBody(blob); response.statusText = "OK"; response.body = bodyWithType[0]; response.headersList.set("content-length", serializedFullLength, true); response.headersList.set("content-type", type, true); } else { response.rangeRequested = true; const rangeHeader = request.headersList.get("range", true); const rangeValue = simpleRangeHeaderValue(rangeHeader, true); if (rangeValue === "failure") { return Promise.resolve(makeNetworkError("failed to fetch the data URL")); } let { rangeStartValue: rangeStart, rangeEndValue: rangeEnd } = rangeValue; if (rangeStart === null) { rangeStart = fullLength - rangeEnd; rangeEnd = rangeStart + rangeEnd - 1; } else { if (rangeStart >= fullLength) { return Promise.resolve(makeNetworkError("Range start is greater than the blob's size.")); } if (rangeEnd === null || rangeEnd >= fullLength) { rangeEnd = fullLength - 1; } } const slicedBlob = blob.slice(rangeStart, rangeEnd, type); const slicedBodyWithType = extractBody(slicedBlob); response.body = slicedBodyWithType[0]; const serializedSlicedLength = isomorphicEncode(`${slicedBlob.size}`); const contentRange = buildContentRange(rangeStart, rangeEnd, fullLength); response.status = 206; response.statusText = "Partial Content"; response.headersList.set("content-length", serializedSlicedLength, true); response.headersList.set("content-type", type, true); response.headersList.set("content-range", contentRange, true); } return Promise.resolve(response); } case "data:": { const currentURL = requestCurrentURL(request); const dataURLStruct = dataURLProcessor(currentURL); if (dataURLStruct === "failure") { return Promise.resolve(makeNetworkError("failed to fetch the data URL")); } const mimeType = serializeAMimeType(dataURLStruct.mimeType); return Promise.resolve(makeResponse({ statusText: "OK", headersList: [ ["content-type", { name: "Content-Type", value: mimeType }] ], body: safelyExtractBody(dataURLStruct.body)[0] })); } case "file:": { return Promise.resolve(makeNetworkError("not implemented... yet...")); } case "http:": case "https:": { return httpFetch(fetchParams).catch((err2) => makeNetworkError(err2)); } default: { return Promise.resolve(makeNetworkError("unknown scheme")); } } } function finalizeResponse(fetchParams, response) { fetchParams.request.done = true; if (fetchParams.processResponseDone != null) { queueMicrotask(() => fetchParams.processResponseDone(response)); } } function fetchFinale(fetchParams, response) { let timingInfo = fetchParams.timingInfo; const processResponseEndOfBody = () => { const unsafeEndTime = Date.now(); if (fetchParams.request.destination === "document") { fetchParams.controller.fullTimingInfo = timingInfo; } fetchParams.controller.reportTimingSteps = () => { if (fetchParams.request.url.protocol !== "https:") { return; } timingInfo.endTime = unsafeEndTime; let cacheState = response.cacheState; const bodyInfo = response.bodyInfo; if (!response.timingAllowPassed) { timingInfo = createOpaqueTimingInfo(timingInfo); cacheState = ""; } let responseStatus = 0; if (fetchParams.request.mode !== "navigator" || !response.hasCrossOriginRedirects) { responseStatus = response.status; const mimeType = extractMimeType(response.headersList); if (mimeType !== "failure") { bodyInfo.contentType = minimizeSupportedMimeType(mimeType); } } if (fetchParams.request.initiatorType != null) { markResourceTiming(timingInfo, fetchParams.request.url.href, fetchParams.request.initiatorType, globalThis, cacheState, bodyInfo, responseStatus); } }; const processResponseEndOfBodyTask = () => { fetchParams.request.done = true; if (fetchParams.processResponseEndOfBody != null) { queueMicrotask(() => fetchParams.processResponseEndOfBody(response)); } if (fetchParams.request.initiatorType != null) { fetchParams.controller.reportTimingSteps(); } }; queueMicrotask(() => processResponseEndOfBodyTask()); }; if (fetchParams.processResponse != null) { queueMicrotask(() => { fetchParams.processResponse(response); fetchParams.processResponse = null; }); } const internalResponse = response.type === "error" ? response : response.internalResponse ?? response; if (internalResponse.body == null) { processResponseEndOfBody(); } else { finished(internalResponse.body.stream, () => { processResponseEndOfBody(); }); } } async function httpFetch(fetchParams) { const request = fetchParams.request; let response = null; let actualResponse = null; const timingInfo = fetchParams.timingInfo; if (request.serviceWorkers === "all") { } if (response === null) { if (request.redirect === "follow") { request.serviceWorkers = "none"; } actualResponse = response = await httpNetworkOrCacheFetch(fetchParams); if (request.responseTainting === "cors" && corsCheck(request, response) === "failure") { return makeNetworkError("cors failure"); } if (TAOCheck(request, response) === "failure") { request.timingAllowFailed = true; } } if ((request.responseTainting === "opaque" || response.type === "opaque") && crossOriginResourcePolicyCheck( request.origin, request.client, request.destination, actualResponse ) === "blocked") { return makeNetworkError("blocked"); } if (redirectStatusSet.has(actualResponse.status)) { if (request.redirect !== "manual") { fetchParams.controller.connection.destroy(void 0, false); } if (request.redirect === "error") { response = makeNetworkError("unexpected redirect"); } else if (request.redirect === "manual") { response = actualResponse; } else if (request.redirect === "follow") { response = await httpRedirectFetch(fetchParams, response); } else { assert(false); } } response.timingInfo = timingInfo; return response; } function httpRedirectFetch(fetchParams, response) { const request = fetchParams.request; const actualResponse = response.internalResponse ? response.internalResponse : response; let locationURL; try { locationURL = responseLocationURL( actualResponse, requestCurrentURL(request).hash ); if (locationURL == null) { return response; } } catch (err2) { return Promise.resolve(makeNetworkError(err2)); } if (!urlIsHttpHttpsScheme(locationURL)) { return Promise.resolve(makeNetworkError("URL scheme must be a HTTP(S) scheme")); } if (request.redirectCount === 20) { return Promise.resolve(makeNetworkError("redirect count exceeded")); } request.redirectCount += 1; if (request.mode === "cors" && (locationURL.username || locationURL.password) && !sameOrigin(request, locationURL)) { return Promise.resolve(makeNetworkError('cross origin not allowed for request mode "cors"')); } if (request.responseTainting === "cors" && (locationURL.username || locationURL.password)) { return Promise.resolve(makeNetworkError( 'URL cannot contain credentials for request mode "cors"' )); } if (actualResponse.status !== 303 && request.body != null && request.body.source == null) { return Promise.resolve(makeNetworkError()); } if ([301, 302].includes(actualResponse.status) && request.method === "POST" || actualResponse.status === 303 && !GET_OR_HEAD.includes(request.method)) { request.method = "GET"; request.body = null; for (const headerName of requestBodyHeader) { request.headersList.delete(headerName); } } if (!sameOrigin(requestCurrentURL(request), locationURL)) { request.headersList.delete("authorization", true); request.headersList.delete("proxy-authorization", true); request.headersList.delete("cookie", true); request.headersList.delete("host", true); } if (request.body != null) { assert(request.body.source != null); request.body = safelyExtractBody(request.body.source)[0]; } const timingInfo = fetchParams.timingInfo; timingInfo.redirectEndTime = timingInfo.postRedirectStartTime = coarsenedSharedCurrentTime(fetchParams.crossOriginIsolatedCapability); if (timingInfo.redirectStartTime === 0) { timingInfo.redirectStartTime = timingInfo.startTime; } request.urlList.push(locationURL); setRequestReferrerPolicyOnRedirect(request, actualResponse); return mainFetch(fetchParams, true); } async function httpNetworkOrCacheFetch(fetchParams, isAuthenticationFetch = false, isNewConnectionFetch = false) { const request = fetchParams.request; let httpFetchParams = null; let httpRequest = null; let response = null; const httpCache = null; const revalidatingFlag = false; if (request.window === "no-window" && request.redirect === "error") { httpFetchParams = fetchParams; httpRequest = request; } else { httpRequest = cloneRequest(request); httpFetchParams = { ...fetchParams }; httpFetchParams.request = httpRequest; } const includeCredentials = request.credentials === "include" || request.credentials === "same-origin" && request.responseTainting === "basic"; const contentLength = httpRequest.body ? httpRequest.body.length : null; let contentLengthHeaderValue = null; if (httpRequest.body == null && ["POST", "PUT"].includes(httpRequest.method)) { contentLengthHeaderValue = "0"; } if (contentLength != null) { contentLengthHeaderValue = isomorphicEncode(`${contentLength}`); } if (contentLengthHeaderValue != null) { httpRequest.headersList.append("content-length", contentLengthHeaderValue, true); } if (contentLength != null && httpRequest.keepalive) { } if (httpRequest.referrer instanceof URL) { httpRequest.headersList.append("referer", isomorphicEncode(httpRequest.referrer.href), true); } appendRequestOriginHeader(httpRequest); appendFetchMetadata(httpRequest); if (!httpRequest.headersList.contains("user-agent", true)) { httpRequest.headersList.append("user-agent", defaultUserAgent); } if (httpRequest.cache === "default" && (httpRequest.headersList.contains("if-modified-since", true) || httpRequest.headersList.contains("if-none-match", true) || httpRequest.headersList.contains("if-unmodified-since", true) || httpRequest.headersList.contains("if-match", true) || httpRequest.headersList.contains("if-range", true))) { httpRequest.cache = "no-store"; } if (httpRequest.cache === "no-cache" && !httpRequest.preventNoCacheCacheControlHeaderModification && !httpRequest.headersList.contains("cache-control", true)) { httpRequest.headersList.append("cache-control", "max-age=0", true); } if (httpRequest.cache === "no-store" || httpRequest.cache === "reload") { if (!httpRequest.headersList.contains("pragma", true)) { httpRequest.headersList.append("pragma", "no-cache", true); } if (!httpRequest.headersList.contains("cache-control", true)) { httpRequest.headersList.append("cache-control", "no-cache", true); } } if (httpRequest.headersList.contains("range", true)) { httpRequest.headersList.append("accept-encoding", "identity", true); } if (!httpRequest.headersList.contains("accept-encoding", true)) { if (urlHasHttpsScheme(requestCurrentURL(httpRequest))) { httpRequest.headersList.append("accept-encoding", "br, gzip, deflate", true); } else { httpRequest.headersList.append("accept-encoding", "gzip, deflate", true); } } httpRequest.headersList.delete("host", true); if (includeCredentials) { } if (httpCache == null) { httpRequest.cache = "no-store"; } if (httpRequest.cache !== "no-store" && httpRequest.cache !== "reload") { } if (response == null) { if (httpRequest.cache === "only-if-cached") { return makeNetworkError("only if cached"); } const forwardResponse = await httpNetworkFetch( httpFetchParams, includeCredentials, isNewConnectionFetch ); if (!safeMethodsSet.has(httpRequest.method) && forwardResponse.status >= 200 && forwardResponse.status <= 399) { } if (revalidatingFlag && forwardResponse.status === 304) { } if (response == null) { response = forwardResponse; } } response.urlList = [...httpRequest.urlList]; if (httpRequest.headersList.contains("range", true)) { response.rangeRequested = true; } response.requestIncludesCredentials = includeCredentials; if (response.status === 407) { if (request.window === "no-window") { return makeNetworkError(); } if (isCancelled(fetchParams)) { return makeAppropriateNetworkError(fetchParams); } return makeNetworkError("proxy authentication required"); } if ( // response’s status is 421 response.status === 421 && // isNewConnectionFetch is false !isNewConnectionFetch && // request’s body is null, or request’s body is non-null and request’s body’s source is non-null (request.body == null || request.body.source != null) ) { if (isCancelled(fetchParams)) { return makeAppropriateNetworkError(fetchParams); } fetchParams.controller.connection.destroy(); response = await httpNetworkOrCacheFetch( fetchParams, isAuthenticationFetch, true ); } if (isAuthenticationFetch) { } return response; } async function httpNetworkFetch(fetchParams, includeCredentials = false, forceNewConnection = false) { assert(!fetchParams.controller.connection || fetchParams.controller.connection.destroyed); fetchParams.controller.connection = { abort: null, destroyed: false, destroy(err2, abort = true) { if (!this.destroyed) { this.destroyed = true; if (abort) { this.abort?.(err2 ?? new DOMException("The operation was aborted.", "AbortError")); } } } }; const request = fetchParams.request; let response = null; const timingInfo = fetchParams.timingInfo; const httpCache = null; if (httpCache == null) { request.cache = "no-store"; } const newConnection = forceNewConnection ? "yes" : "no"; if (request.mode === "websocket") { } else { } let requestBody = null; if (request.body == null && fetchParams.processRequestEndOfBody) { queueMicrotask(() => fetchParams.processRequestEndOfBody()); } else if (request.body != null) { const processBodyChunk = async function* (bytes) { if (isCancelled(fetchParams)) { return; } yield bytes; fetchParams.processRequestBodyChunkLength?.(bytes.byteLength); }; const processEndOfBody = () => { if (isCancelled(fetchParams)) { return; } if (fetchParams.processRequestEndOfBody) { fetchParams.processRequestEndOfBody(); } }; const processBodyError = (e) => { if (isCancelled(fetchParams)) { return; } if (e.name === "AbortError") { fetchParams.controller.abort(); } else { fetchParams.controller.terminate(e); } }; requestBody = (async function* () { try { for await (const bytes of request.body.stream) { yield* processBodyChunk(bytes); } processEndOfBody(); } catch (err2) { processBodyError(err2); } })(); } try { const { body, status, statusText, headersList, socket } = await dispatch({ body: requestBody }); if (socket) { response = makeResponse({ status, statusText, headersList, socket }); } else { const iterator = body[Symbol.asyncIterator](); fetchParams.controller.next = () => iterator.next(); response = makeResponse({ status, statusText, headersList }); } } catch (err2) { if (err2.name === "AbortError") { fetchParams.controller.connection.destroy(); return makeAppropriateNetworkError(fetchParams, err2); } return makeNetworkError(err2); } const pullAlgorithm = async () => { await fetchParams.controller.resume(); }; const cancelAlgorithm = (reason) => { if (!isCancelled(fetchParams)) { fetchParams.controller.abort(reason); } }; const stream5 = new ReadableStream( { async start(controller) { fetchParams.controller.controller = controller; }, async pull(controller) { await pullAlgorithm(controller); }, async cancel(reason) { await cancelAlgorithm(reason); }, type: "bytes" } ); response.body = { stream: stream5, source: null, length: null }; fetchParams.controller.onAborted = onAborted; fetchParams.controller.on("terminated", onAborted); fetchParams.controller.resume = async () => { while (true) { let bytes; let isFailure; try { const { done, value } = await fetchParams.controller.next(); if (isAborted3(fetchParams)) { break; } bytes = done ? void 0 : value; } catch (err2) { if (fetchParams.controller.ended && !timingInfo.encodedBodySize) { bytes = void 0; } else { bytes = err2; isFailure = true; } } if (bytes === void 0) { readableStreamClose(fetchParams.controller.controller); finalizeResponse(fetchParams, response); return; } timingInfo.decodedBodySize += bytes?.byteLength ?? 0; if (isFailure) { fetchParams.controller.terminate(bytes); return; } const buffer = new Uint8Array(bytes); if (buffer.byteLength) { fetchParams.controller.controller.enqueue(buffer); } if (isErrored(stream5)) { fetchParams.controller.terminate(); return; } if (fetchParams.controller.controller.desiredSize <= 0) { return; } } }; function onAborted(reason) { if (isAborted3(fetchParams)) { response.aborted = true; if (isReadable(stream5)) { fetchParams.controller.controller.error( fetchParams.controller.serializedAbortReason ); } } else { if (isReadable(stream5)) { fetchParams.controller.controller.error(new TypeError("terminated", { cause: isErrorLike(reason) ? reason : void 0 })); } } fetchParams.controller.connection.destroy(); } return response; function dispatch({ body }) { const url2 = requestCurrentURL(request); const agent = fetchParams.controller.dispatcher; return new Promise((resolve, reject) => agent.dispatch( { path: url2.pathname + url2.search, origin: url2.origin, method: request.method, body: agent.isMockActive ? request.body && (request.body.source || request.body.stream) : body, headers: request.headersList.entries, maxRedirections: 0, upgrade: request.mode === "websocket" ? "websocket" : void 0 }, { body: null, abort: null, onConnect(abort) { const { connection } = fetchParams.controller; timingInfo.finalConnectionTimingInfo = clampAndCoarsenConnectionTimingInfo(void 0, timingInfo.postRedirectStartTime, fetchParams.crossOriginIsolatedCapability); if (connection.destroyed) { abort(new DOMException("The operation was aborted.", "AbortError")); } else { fetchParams.controller.on("terminated", abort); this.abort = connection.abort = abort; } timingInfo.finalNetworkRequestStartTime = coarsenedSharedCurrentTime(fetchParams.crossOriginIsolatedCapability); }, onResponseStarted() { timingInfo.finalNetworkResponseStartTime = coarsenedSharedCurrentTime(fetchParams.crossOriginIsolatedCapability); }, onHeaders(status, rawHeaders, resume, statusText) { if (status < 200) { return; } let codings = []; let location = ""; const headersList = new HeadersList(); for (let i = 0; i < rawHeaders.length; i += 2) { headersList.append(bufferToLowerCasedHeaderName(rawHeaders[i]), rawHeaders[i + 1].toString("latin1"), true); } const contentEncoding = headersList.get("content-encoding", true); if (contentEncoding) { codings = contentEncoding.toLowerCase().split(",").map((x) => x.trim()); } location = headersList.get("location", true); this.body = new Readable2({ read: resume }); const decoders = []; const willFollow = location && request.redirect === "follow" && redirectStatusSet.has(status); if (codings.length !== 0 && request.method !== "HEAD" && request.method !== "CONNECT" && !nullBodyStatus.includes(status) && !willFollow) { for (let i = codings.length - 1; i >= 0; --i) { const coding = codings[i]; if (coding === "x-gzip" || coding === "gzip") { decoders.push(zlib2.createGunzip({ // Be less strict when decoding compressed responses, since sometimes // servers send slightly invalid responses that are still accepted // by common browsers. // Always using Z_SYNC_FLUSH is what cURL does. flush: zlib2.constants.Z_SYNC_FLUSH, finishFlush: zlib2.constants.Z_SYNC_FLUSH })); } else if (coding === "deflate") { decoders.push(createInflate({ flush: zlib2.constants.Z_SYNC_FLUSH, finishFlush: zlib2.constants.Z_SYNC_FLUSH })); } else if (coding === "br") { decoders.push(zlib2.createBrotliDecompress({ flush: zlib2.constants.BROTLI_OPERATION_FLUSH, finishFlush: zlib2.constants.BROTLI_OPERATION_FLUSH })); } else { decoders.length = 0; break; } } } const onError = this.onError.bind(this); resolve({ status, statusText, headersList, body: decoders.length ? pipeline(this.body, ...decoders, (err2) => { if (err2) { this.onError(err2); } }).on("error", onError) : this.body.on("error", onError) }); return true; }, onData(chunk) { if (fetchParams.controller.dump) { return; } const bytes = chunk; timingInfo.encodedBodySize += bytes.byteLength; return this.body.push(bytes); }, onComplete() { if (this.abort) { fetchParams.controller.off("terminated", this.abort); } if (fetchParams.controller.onAborted) { fetchParams.controller.off("terminated", fetchParams.controller.onAborted); } fetchParams.controller.ended = true; this.body.push(null); }, onError(error) { if (this.abort) { fetchParams.controller.off("terminated", this.abort); } this.body?.destroy(error); fetchParams.controller.terminate(error); reject(error); }, onUpgrade(status, rawHeaders, socket) { if (status !== 101) { return; } const headersList = new HeadersList(); for (let i = 0; i < rawHeaders.length; i += 2) { headersList.append(bufferToLowerCasedHeaderName(rawHeaders[i]), rawHeaders[i + 1].toString("latin1"), true); } resolve({ status, statusText: STATUS_CODES[status], headersList, socket }); return true; } } )); } } module2.exports = { fetch: fetch3, Fetch, fetching, finalizeAndReportTiming }; } }); // node_modules/undici/lib/web/fileapi/symbols.js var require_symbols3 = __commonJS({ "node_modules/undici/lib/web/fileapi/symbols.js"(exports2, module2) { "use strict"; module2.exports = { kState: Symbol("FileReader state"), kResult: Symbol("FileReader result"), kError: Symbol("FileReader error"), kLastProgressEventFired: Symbol("FileReader last progress event fired timestamp"), kEvents: Symbol("FileReader events"), kAborted: Symbol("FileReader aborted") }; } }); // node_modules/undici/lib/web/fileapi/progressevent.js var require_progressevent = __commonJS({ "node_modules/undici/lib/web/fileapi/progressevent.js"(exports2, module2) { "use strict"; var { webidl } = require_webidl(); var kState = Symbol("ProgressEvent state"); var ProgressEvent = class _ProgressEvent extends Event { constructor(type, eventInitDict = {}) { type = webidl.converters.DOMString(type, "ProgressEvent constructor", "type"); eventInitDict = webidl.converters.ProgressEventInit(eventInitDict ?? {}); super(type, eventInitDict); this[kState] = { lengthComputable: eventInitDict.lengthComputable, loaded: eventInitDict.loaded, total: eventInitDict.total }; } get lengthComputable() { webidl.brandCheck(this, _ProgressEvent); return this[kState].lengthComputable; } get loaded() { webidl.brandCheck(this, _ProgressEvent); return this[kState].loaded; } get total() { webidl.brandCheck(this, _ProgressEvent); return this[kState].total; } }; webidl.converters.ProgressEventInit = webidl.dictionaryConverter([ { key: "lengthComputable", converter: webidl.converters.boolean, defaultValue: () => false }, { key: "loaded", converter: webidl.converters["unsigned long long"], defaultValue: () => 0 }, { key: "total", converter: webidl.converters["unsigned long long"], defaultValue: () => 0 }, { key: "bubbles", converter: webidl.converters.boolean, defaultValue: () => false }, { key: "cancelable", converter: webidl.converters.boolean, defaultValue: () => false }, { key: "composed", converter: webidl.converters.boolean, defaultValue: () => false } ]); module2.exports = { ProgressEvent }; } }); // node_modules/undici/lib/web/fileapi/encoding.js var require_encoding = __commonJS({ "node_modules/undici/lib/web/fileapi/encoding.js"(exports2, module2) { "use strict"; function getEncoding2(label) { if (!label) { return "failure"; } switch (label.trim().toLowerCase()) { case "unicode-1-1-utf-8": case "unicode11utf8": case "unicode20utf8": case "utf-8": case "utf8": case "x-unicode20utf8": return "UTF-8"; case "866": case "cp866": case "csibm866": case "ibm866": return "IBM866"; case "csisolatin2": case "iso-8859-2": case "iso-ir-101": case "iso8859-2": case "iso88592": case "iso_8859-2": case "iso_8859-2:1987": case "l2": case "latin2": return "ISO-8859-2"; case "csisolatin3": case "iso-8859-3": case "iso-ir-109": case "iso8859-3": case "iso88593": case "iso_8859-3": case "iso_8859-3:1988": case "l3": case "latin3": return "ISO-8859-3"; case "csisolatin4": case "iso-8859-4": case "iso-ir-110": case "iso8859-4": case "iso88594": case "iso_8859-4": case "iso_8859-4:1988": case "l4": case "latin4": return "ISO-8859-4"; case "csisolatincyrillic": case "cyrillic": case "iso-8859-5": case "iso-ir-144": case "iso8859-5": case "iso88595": case "iso_8859-5": case "iso_8859-5:1988": return "ISO-8859-5"; case "arabic": case "asmo-708": case "csiso88596e": case "csiso88596i": case "csisolatinarabic": case "ecma-114": case "iso-8859-6": case "iso-8859-6-e": case "iso-8859-6-i": case "iso-ir-127": case "iso8859-6": case "iso88596": case "iso_8859-6": case "iso_8859-6:1987": return "ISO-8859-6"; case "csisolatingreek": case "ecma-118": case "elot_928": case "greek": case "greek8": case "iso-8859-7": case "iso-ir-126": case "iso8859-7": case "iso88597": case "iso_8859-7": case "iso_8859-7:1987": case "sun_eu_greek": return "ISO-8859-7"; case "csiso88598e": case "csisolatinhebrew": case "hebrew": case "iso-8859-8": case "iso-8859-8-e": case "iso-ir-138": case "iso8859-8": case "iso88598": case "iso_8859-8": case "iso_8859-8:1988": case "visual": return "ISO-8859-8"; case "csiso88598i": case "iso-8859-8-i": case "logical": return "ISO-8859-8-I"; case "csisolatin6": case "iso-8859-10": case "iso-ir-157": case "iso8859-10": case "iso885910": case "l6": case "latin6": return "ISO-8859-10"; case "iso-8859-13": case "iso8859-13": case "iso885913": return "ISO-8859-13"; case "iso-8859-14": case "iso8859-14": case "iso885914": return "ISO-8859-14"; case "csisolatin9": case "iso-8859-15": case "iso8859-15": case "iso885915": case "iso_8859-15": case "l9": return "ISO-8859-15"; case "iso-8859-16": return "ISO-8859-16"; case "cskoi8r": case "koi": case "koi8": case "koi8-r": case "koi8_r": return "KOI8-R"; case "koi8-ru": case "koi8-u": return "KOI8-U"; case "csmacintosh": case "mac": case "macintosh": case "x-mac-roman": return "macintosh"; case "iso-8859-11": case "iso8859-11": case "iso885911": case "tis-620": case "windows-874": return "windows-874"; case "cp1250": case "windows-1250": case "x-cp1250": return "windows-1250"; case "cp1251": case "windows-1251": case "x-cp1251": return "windows-1251"; case "ansi_x3.4-1968": case "ascii": case "cp1252": case "cp819": case "csisolatin1": case "ibm819": case "iso-8859-1": case "iso-ir-100": case "iso8859-1": case "iso88591": case "iso_8859-1": case "iso_8859-1:1987": case "l1": case "latin1": case "us-ascii": case "windows-1252": case "x-cp1252": return "windows-1252"; case "cp1253": case "windows-1253": case "x-cp1253": return "windows-1253"; case "cp1254": case "csisolatin5": case "iso-8859-9": case "iso-ir-148": case "iso8859-9": case "iso88599": case "iso_8859-9": case "iso_8859-9:1989": case "l5": case "latin5": case "windows-1254": case "x-cp1254": return "windows-1254"; case "cp1255": case "windows-1255": case "x-cp1255": return "windows-1255"; case "cp1256": case "windows-1256": case "x-cp1256": return "windows-1256"; case "cp1257": case "windows-1257": case "x-cp1257": return "windows-1257"; case "cp1258": case "windows-1258": case "x-cp1258": return "windows-1258"; case "x-mac-cyrillic": case "x-mac-ukrainian": return "x-mac-cyrillic"; case "chinese": case "csgb2312": case "csiso58gb231280": case "gb2312": case "gb_2312": case "gb_2312-80": case "gbk": case "iso-ir-58": case "x-gbk": return "GBK"; case "gb18030": return "gb18030"; case "big5": case "big5-hkscs": case "cn-big5": case "csbig5": case "x-x-big5": return "Big5"; case "cseucpkdfmtjapanese": case "euc-jp": case "x-euc-jp": return "EUC-JP"; case "csiso2022jp": case "iso-2022-jp": return "ISO-2022-JP"; case "csshiftjis": case "ms932": case "ms_kanji": case "shift-jis": case "shift_jis": case "sjis": case "windows-31j": case "x-sjis": return "Shift_JIS"; case "cseuckr": case "csksc56011987": case "euc-kr": case "iso-ir-149": case "korean": case "ks_c_5601-1987": case "ks_c_5601-1989": case "ksc5601": case "ksc_5601": case "windows-949": return "EUC-KR"; case "csiso2022kr": case "hz-gb-2312": case "iso-2022-cn": case "iso-2022-cn-ext": case "iso-2022-kr": case "replacement": return "replacement"; case "unicodefffe": case "utf-16be": return "UTF-16BE"; case "csunicode": case "iso-10646-ucs-2": case "ucs-2": case "unicode": case "unicodefeff": case "utf-16": case "utf-16le": return "UTF-16LE"; case "x-user-defined": return "x-user-defined"; default: return "failure"; } } module2.exports = { getEncoding: getEncoding2 }; } }); // node_modules/undici/lib/web/fileapi/util.js var require_util5 = __commonJS({ "node_modules/undici/lib/web/fileapi/util.js"(exports2, module2) { "use strict"; var { kState, kError, kResult, kAborted, kLastProgressEventFired } = require_symbols3(); var { ProgressEvent } = require_progressevent(); var { getEncoding: getEncoding2 } = require_encoding(); var { serializeAMimeType, parseMIMEType } = require_data_url(); var { types } = require("node:util"); var { StringDecoder } = require("string_decoder"); var { btoa: btoa2 } = require("node:buffer"); var staticPropertyDescriptors = { enumerable: true, writable: false, configurable: false }; function readOperation(fr, blob, type, encodingName) { if (fr[kState] === "loading") { throw new DOMException("Invalid state", "InvalidStateError"); } fr[kState] = "loading"; fr[kResult] = null; fr[kError] = null; const stream5 = blob.stream(); const reader = stream5.getReader(); const bytes = []; let chunkPromise = reader.read(); let isFirstChunk = true; (async () => { while (!fr[kAborted]) { try { const { done, value } = await chunkPromise; if (isFirstChunk && !fr[kAborted]) { queueMicrotask(() => { fireAProgressEvent("loadstart", fr); }); } isFirstChunk = false; if (!done && types.isUint8Array(value)) { bytes.push(value); if ((fr[kLastProgressEventFired] === void 0 || Date.now() - fr[kLastProgressEventFired] >= 50) && !fr[kAborted]) { fr[kLastProgressEventFired] = Date.now(); queueMicrotask(() => { fireAProgressEvent("progress", fr); }); } chunkPromise = reader.read(); } else if (done) { queueMicrotask(() => { fr[kState] = "done"; try { const result = packageData(bytes, type, blob.type, encodingName); if (fr[kAborted]) { return; } fr[kResult] = result; fireAProgressEvent("load", fr); } catch (error) { fr[kError] = error; fireAProgressEvent("error", fr); } if (fr[kState] !== "loading") { fireAProgressEvent("loadend", fr); } }); break; } } catch (error) { if (fr[kAborted]) { return; } queueMicrotask(() => { fr[kState] = "done"; fr[kError] = error; fireAProgressEvent("error", fr); if (fr[kState] !== "loading") { fireAProgressEvent("loadend", fr); } }); break; } } })(); } function fireAProgressEvent(e, reader) { const event = new ProgressEvent(e, { bubbles: false, cancelable: false }); reader.dispatchEvent(event); } function packageData(bytes, type, mimeType, encodingName) { switch (type) { case "DataURL": { let dataURL = "data:"; const parsed = parseMIMEType(mimeType || "application/octet-stream"); if (parsed !== "failure") { dataURL += serializeAMimeType(parsed); } dataURL += ";base64,"; const decoder = new StringDecoder("latin1"); for (const chunk of bytes) { dataURL += btoa2(decoder.write(chunk)); } dataURL += btoa2(decoder.end()); return dataURL; } case "Text": { let encoding = "failure"; if (encodingName) { encoding = getEncoding2(encodingName); } if (encoding === "failure" && mimeType) { const type2 = parseMIMEType(mimeType); if (type2 !== "failure") { encoding = getEncoding2(type2.parameters.get("charset")); } } if (encoding === "failure") { encoding = "UTF-8"; } return decode(bytes, encoding); } case "ArrayBuffer": { const sequence = combineByteSequences(bytes); return sequence.buffer; } case "BinaryString": { let binaryString = ""; const decoder = new StringDecoder("latin1"); for (const chunk of bytes) { binaryString += decoder.write(chunk); } binaryString += decoder.end(); return binaryString; } } } function decode(ioQueue, encoding) { const bytes = combineByteSequences(ioQueue); const BOMEncoding = BOMSniffing(bytes); let slice2 = 0; if (BOMEncoding !== null) { encoding = BOMEncoding; slice2 = BOMEncoding === "UTF-8" ? 3 : 2; } const sliced = bytes.slice(slice2); return new TextDecoder(encoding).decode(sliced); } function BOMSniffing(ioQueue) { const [a, b, c] = ioQueue; if (a === 239 && b === 187 && c === 191) { return "UTF-8"; } else if (a === 254 && b === 255) { return "UTF-16BE"; } else if (a === 255 && b === 254) { return "UTF-16LE"; } return null; } function combineByteSequences(sequences) { const size = sequences.reduce((a, b) => { return a + b.byteLength; }, 0); let offset = 0; return sequences.reduce((a, b) => { a.set(b, offset); offset += b.byteLength; return a; }, new Uint8Array(size)); } module2.exports = { staticPropertyDescriptors, readOperation, fireAProgressEvent }; } }); // node_modules/undici/lib/web/fileapi/filereader.js var require_filereader = __commonJS({ "node_modules/undici/lib/web/fileapi/filereader.js"(exports2, module2) { "use strict"; var { staticPropertyDescriptors, readOperation, fireAProgressEvent } = require_util5(); var { kState, kError, kResult, kEvents, kAborted } = require_symbols3(); var { webidl } = require_webidl(); var { kEnumerableProperty } = require_util2(); var FileReader = class _FileReader extends EventTarget { constructor() { super(); this[kState] = "empty"; this[kResult] = null; this[kError] = null; this[kEvents] = { loadend: null, error: null, abort: null, load: null, progress: null, loadstart: null }; } /** * @see https://w3c.github.io/FileAPI/#dfn-readAsArrayBuffer * @param {import('buffer').Blob} blob */ readAsArrayBuffer(blob) { webidl.brandCheck(this, _FileReader); webidl.argumentLengthCheck(arguments, 1, "FileReader.readAsArrayBuffer"); blob = webidl.converters.Blob(blob, { strict: false }); readOperation(this, blob, "ArrayBuffer"); } /** * @see https://w3c.github.io/FileAPI/#readAsBinaryString * @param {import('buffer').Blob} blob */ readAsBinaryString(blob) { webidl.brandCheck(this, _FileReader); webidl.argumentLengthCheck(arguments, 1, "FileReader.readAsBinaryString"); blob = webidl.converters.Blob(blob, { strict: false }); readOperation(this, blob, "BinaryString"); } /** * @see https://w3c.github.io/FileAPI/#readAsDataText * @param {import('buffer').Blob} blob * @param {string?} encoding */ readAsText(blob, encoding = void 0) { webidl.brandCheck(this, _FileReader); webidl.argumentLengthCheck(arguments, 1, "FileReader.readAsText"); blob = webidl.converters.Blob(blob, { strict: false }); if (encoding !== void 0) { encoding = webidl.converters.DOMString(encoding, "FileReader.readAsText", "encoding"); } readOperation(this, blob, "Text", encoding); } /** * @see https://w3c.github.io/FileAPI/#dfn-readAsDataURL * @param {import('buffer').Blob} blob */ readAsDataURL(blob) { webidl.brandCheck(this, _FileReader); webidl.argumentLengthCheck(arguments, 1, "FileReader.readAsDataURL"); blob = webidl.converters.Blob(blob, { strict: false }); readOperation(this, blob, "DataURL"); } /** * @see https://w3c.github.io/FileAPI/#dfn-abort */ abort() { if (this[kState] === "empty" || this[kState] === "done") { this[kResult] = null; return; } if (this[kState] === "loading") { this[kState] = "done"; this[kResult] = null; } this[kAborted] = true; fireAProgressEvent("abort", this); if (this[kState] !== "loading") { fireAProgressEvent("loadend", this); } } /** * @see https://w3c.github.io/FileAPI/#dom-filereader-readystate */ get readyState() { webidl.brandCheck(this, _FileReader); switch (this[kState]) { case "empty": return this.EMPTY; case "loading": return this.LOADING; case "done": return this.DONE; } } /** * @see https://w3c.github.io/FileAPI/#dom-filereader-result */ get result() { webidl.brandCheck(this, _FileReader); return this[kResult]; } /** * @see https://w3c.github.io/FileAPI/#dom-filereader-error */ get error() { webidl.brandCheck(this, _FileReader); return this[kError]; } get onloadend() { webidl.brandCheck(this, _FileReader); return this[kEvents].loadend; } set onloadend(fn) { webidl.brandCheck(this, _FileReader); if (this[kEvents].loadend) { this.removeEventListener("loadend", this[kEvents].loadend); } if (typeof fn === "function") { this[kEvents].loadend = fn; this.addEventListener("loadend", fn); } else { this[kEvents].loadend = null; } } get onerror() { webidl.brandCheck(this, _FileReader); return this[kEvents].error; } set onerror(fn) { webidl.brandCheck(this, _FileReader); if (this[kEvents].error) { this.removeEventListener("error", this[kEvents].error); } if (typeof fn === "function") { this[kEvents].error = fn; this.addEventListener("error", fn); } else { this[kEvents].error = null; } } get onloadstart() { webidl.brandCheck(this, _FileReader); return this[kEvents].loadstart; } set onloadstart(fn) { webidl.brandCheck(this, _FileReader); if (this[kEvents].loadstart) { this.removeEventListener("loadstart", this[kEvents].loadstart); } if (typeof fn === "function") { this[kEvents].loadstart = fn; this.addEventListener("loadstart", fn); } else { this[kEvents].loadstart = null; } } get onprogress() { webidl.brandCheck(this, _FileReader); return this[kEvents].progress; } set onprogress(fn) { webidl.brandCheck(this, _FileReader); if (this[kEvents].progress) { this.removeEventListener("progress", this[kEvents].progress); } if (typeof fn === "function") { this[kEvents].progress = fn; this.addEventListener("progress", fn); } else { this[kEvents].progress = null; } } get onload() { webidl.brandCheck(this, _FileReader); return this[kEvents].load; } set onload(fn) { webidl.brandCheck(this, _FileReader); if (this[kEvents].load) { this.removeEventListener("load", this[kEvents].load); } if (typeof fn === "function") { this[kEvents].load = fn; this.addEventListener("load", fn); } else { this[kEvents].load = null; } } get onabort() { webidl.brandCheck(this, _FileReader); return this[kEvents].abort; } set onabort(fn) { webidl.brandCheck(this, _FileReader); if (this[kEvents].abort) { this.removeEventListener("abort", this[kEvents].abort); } if (typeof fn === "function") { this[kEvents].abort = fn; this.addEventListener("abort", fn); } else { this[kEvents].abort = null; } } }; FileReader.EMPTY = FileReader.prototype.EMPTY = 0; FileReader.LOADING = FileReader.prototype.LOADING = 1; FileReader.DONE = FileReader.prototype.DONE = 2; Object.defineProperties(FileReader.prototype, { EMPTY: staticPropertyDescriptors, LOADING: staticPropertyDescriptors, DONE: staticPropertyDescriptors, readAsArrayBuffer: kEnumerableProperty, readAsBinaryString: kEnumerableProperty, readAsText: kEnumerableProperty, readAsDataURL: kEnumerableProperty, abort: kEnumerableProperty, readyState: kEnumerableProperty, result: kEnumerableProperty, error: kEnumerableProperty, onloadstart: kEnumerableProperty, onprogress: kEnumerableProperty, onload: kEnumerableProperty, onabort: kEnumerableProperty, onerror: kEnumerableProperty, onloadend: kEnumerableProperty, [Symbol.toStringTag]: { value: "FileReader", writable: false, enumerable: false, configurable: true } }); Object.defineProperties(FileReader, { EMPTY: staticPropertyDescriptors, LOADING: staticPropertyDescriptors, DONE: staticPropertyDescriptors }); module2.exports = { FileReader }; } }); // node_modules/undici/lib/web/cache/symbols.js var require_symbols4 = __commonJS({ "node_modules/undici/lib/web/cache/symbols.js"(exports2, module2) { "use strict"; module2.exports = { kConstruct: require_symbols().kConstruct }; } }); // node_modules/undici/lib/web/cache/util.js var require_util6 = __commonJS({ "node_modules/undici/lib/web/cache/util.js"(exports2, module2) { "use strict"; var assert = require("node:assert"); var { URLSerializer } = require_data_url(); var { isValidHeaderName: isValidHeaderName2 } = require_util3(); function urlEquals(A, B, excludeFragment = false) { const serializedA = URLSerializer(A, excludeFragment); const serializedB = URLSerializer(B, excludeFragment); return serializedA === serializedB; } function getFieldValues(header) { assert(header !== null); const values = []; for (let value of header.split(",")) { value = value.trim(); if (isValidHeaderName2(value)) { values.push(value); } } return values; } module2.exports = { urlEquals, getFieldValues }; } }); // node_modules/undici/lib/web/cache/cache.js var require_cache2 = __commonJS({ "node_modules/undici/lib/web/cache/cache.js"(exports2, module2) { "use strict"; var { kConstruct } = require_symbols4(); var { urlEquals, getFieldValues } = require_util6(); var { kEnumerableProperty, isDisturbed } = require_util2(); var { webidl } = require_webidl(); var { Response: Response3, cloneResponse, fromInnerResponse } = require_response(); var { Request: Request2, fromInnerRequest } = require_request2(); var { kState } = require_symbols2(); var { fetching } = require_fetch(); var { urlIsHttpHttpsScheme, createDeferredPromise, readAllBytes } = require_util3(); var assert = require("node:assert"); var Cache = class _Cache { /** * @see https://w3c.github.io/ServiceWorker/#dfn-relevant-request-response-list * @type {requestResponseList} */ #relevantRequestResponseList; constructor() { if (arguments[0] !== kConstruct) { webidl.illegalConstructor(); } webidl.util.markAsUncloneable(this); this.#relevantRequestResponseList = arguments[1]; } async match(request, options = {}) { webidl.brandCheck(this, _Cache); const prefix = "Cache.match"; webidl.argumentLengthCheck(arguments, 1, prefix); request = webidl.converters.RequestInfo(request, prefix, "request"); options = webidl.converters.CacheQueryOptions(options, prefix, "options"); const p = this.#internalMatchAll(request, options, 1); if (p.length === 0) { return; } return p[0]; } async matchAll(request = void 0, options = {}) { webidl.brandCheck(this, _Cache); const prefix = "Cache.matchAll"; if (request !== void 0) request = webidl.converters.RequestInfo(request, prefix, "request"); options = webidl.converters.CacheQueryOptions(options, prefix, "options"); return this.#internalMatchAll(request, options); } async add(request) { webidl.brandCheck(this, _Cache); const prefix = "Cache.add"; webidl.argumentLengthCheck(arguments, 1, prefix); request = webidl.converters.RequestInfo(request, prefix, "request"); const requests = [request]; const responseArrayPromise = this.addAll(requests); return await responseArrayPromise; } async addAll(requests) { webidl.brandCheck(this, _Cache); const prefix = "Cache.addAll"; webidl.argumentLengthCheck(arguments, 1, prefix); const responsePromises = []; const requestList = []; for (let request of requests) { if (request === void 0) { throw webidl.errors.conversionFailed({ prefix, argument: "Argument 1", types: ["undefined is not allowed"] }); } request = webidl.converters.RequestInfo(request); if (typeof request === "string") { continue; } const r = request[kState]; if (!urlIsHttpHttpsScheme(r.url) || r.method !== "GET") { throw webidl.errors.exception({ header: prefix, message: "Expected http/s scheme when method is not GET." }); } } const fetchControllers = []; for (const request of requests) { const r = new Request2(request)[kState]; if (!urlIsHttpHttpsScheme(r.url)) { throw webidl.errors.exception({ header: prefix, message: "Expected http/s scheme." }); } r.initiator = "fetch"; r.destination = "subresource"; requestList.push(r); const responsePromise = createDeferredPromise(); fetchControllers.push(fetching({ request: r, processResponse(response) { if (response.type === "error" || response.status === 206 || response.status < 200 || response.status > 299) { responsePromise.reject(webidl.errors.exception({ header: "Cache.addAll", message: "Received an invalid status code or the request failed." })); } else if (response.headersList.contains("vary")) { const fieldValues = getFieldValues(response.headersList.get("vary")); for (const fieldValue of fieldValues) { if (fieldValue === "*") { responsePromise.reject(webidl.errors.exception({ header: "Cache.addAll", message: "invalid vary field value" })); for (const controller of fetchControllers) { controller.abort(); } return; } } } }, processResponseEndOfBody(response) { if (response.aborted) { responsePromise.reject(new DOMException("aborted", "AbortError")); return; } responsePromise.resolve(response); } })); responsePromises.push(responsePromise.promise); } const p = Promise.all(responsePromises); const responses = await p; const operations = []; let index2 = 0; for (const response of responses) { const operation = { type: "put", // 7.3.2 request: requestList[index2], // 7.3.3 response // 7.3.4 }; operations.push(operation); index2++; } const cacheJobPromise = createDeferredPromise(); let errorData = null; try { this.#batchCacheOperations(operations); } catch (e) { errorData = e; } queueMicrotask(() => { if (errorData === null) { cacheJobPromise.resolve(void 0); } else { cacheJobPromise.reject(errorData); } }); return cacheJobPromise.promise; } async put(request, response) { webidl.brandCheck(this, _Cache); const prefix = "Cache.put"; webidl.argumentLengthCheck(arguments, 2, prefix); request = webidl.converters.RequestInfo(request, prefix, "request"); response = webidl.converters.Response(response, prefix, "response"); let innerRequest = null; if (request instanceof Request2) { innerRequest = request[kState]; } else { innerRequest = new Request2(request)[kState]; } if (!urlIsHttpHttpsScheme(innerRequest.url) || innerRequest.method !== "GET") { throw webidl.errors.exception({ header: prefix, message: "Expected an http/s scheme when method is not GET" }); } const innerResponse = response[kState]; if (innerResponse.status === 206) { throw webidl.errors.exception({ header: prefix, message: "Got 206 status" }); } if (innerResponse.headersList.contains("vary")) { const fieldValues = getFieldValues(innerResponse.headersList.get("vary")); for (const fieldValue of fieldValues) { if (fieldValue === "*") { throw webidl.errors.exception({ header: prefix, message: "Got * vary field value" }); } } } if (innerResponse.body && (isDisturbed(innerResponse.body.stream) || innerResponse.body.stream.locked)) { throw webidl.errors.exception({ header: prefix, message: "Response body is locked or disturbed" }); } const clonedResponse = cloneResponse(innerResponse); const bodyReadPromise = createDeferredPromise(); if (innerResponse.body != null) { const stream5 = innerResponse.body.stream; const reader = stream5.getReader(); readAllBytes(reader).then(bodyReadPromise.resolve, bodyReadPromise.reject); } else { bodyReadPromise.resolve(void 0); } const operations = []; const operation = { type: "put", // 14. request: innerRequest, // 15. response: clonedResponse // 16. }; operations.push(operation); const bytes = await bodyReadPromise.promise; if (clonedResponse.body != null) { clonedResponse.body.source = bytes; } const cacheJobPromise = createDeferredPromise(); let errorData = null; try { this.#batchCacheOperations(operations); } catch (e) { errorData = e; } queueMicrotask(() => { if (errorData === null) { cacheJobPromise.resolve(); } else { cacheJobPromise.reject(errorData); } }); return cacheJobPromise.promise; } async delete(request, options = {}) { webidl.brandCheck(this, _Cache); const prefix = "Cache.delete"; webidl.argumentLengthCheck(arguments, 1, prefix); request = webidl.converters.RequestInfo(request, prefix, "request"); options = webidl.converters.CacheQueryOptions(options, prefix, "options"); let r = null; if (request instanceof Request2) { r = request[kState]; if (r.method !== "GET" && !options.ignoreMethod) { return false; } } else { assert(typeof request === "string"); r = new Request2(request)[kState]; } const operations = []; const operation = { type: "delete", request: r, options }; operations.push(operation); const cacheJobPromise = createDeferredPromise(); let errorData = null; let requestResponses; try { requestResponses = this.#batchCacheOperations(operations); } catch (e) { errorData = e; } queueMicrotask(() => { if (errorData === null) { cacheJobPromise.resolve(!!requestResponses?.length); } else { cacheJobPromise.reject(errorData); } }); return cacheJobPromise.promise; } /** * @see https://w3c.github.io/ServiceWorker/#dom-cache-keys * @param {any} request * @param {import('../../types/cache').CacheQueryOptions} options * @returns {Promise<readonly Request[]>} */ async keys(request = void 0, options = {}) { webidl.brandCheck(this, _Cache); const prefix = "Cache.keys"; if (request !== void 0) request = webidl.converters.RequestInfo(request, prefix, "request"); options = webidl.converters.CacheQueryOptions(options, prefix, "options"); let r = null; if (request !== void 0) { if (request instanceof Request2) { r = request[kState]; if (r.method !== "GET" && !options.ignoreMethod) { return []; } } else if (typeof request === "string") { r = new Request2(request)[kState]; } } const promise = createDeferredPromise(); const requests = []; if (request === void 0) { for (const requestResponse of this.#relevantRequestResponseList) { requests.push(requestResponse[0]); } } else { const requestResponses = this.#queryCache(r, options); for (const requestResponse of requestResponses) { requests.push(requestResponse[0]); } } queueMicrotask(() => { const requestList = []; for (const request2 of requests) { const requestObject = fromInnerRequest( request2, new AbortController().signal, "immutable" ); requestList.push(requestObject); } promise.resolve(Object.freeze(requestList)); }); return promise.promise; } /** * @see https://w3c.github.io/ServiceWorker/#batch-cache-operations-algorithm * @param {CacheBatchOperation[]} operations * @returns {requestResponseList} */ #batchCacheOperations(operations) { const cache = this.#relevantRequestResponseList; const backupCache = [...cache]; const addedItems = []; const resultList = []; try { for (const operation of operations) { if (operation.type !== "delete" && operation.type !== "put") { throw webidl.errors.exception({ header: "Cache.#batchCacheOperations", message: 'operation type does not match "delete" or "put"' }); } if (operation.type === "delete" && operation.response != null) { throw webidl.errors.exception({ header: "Cache.#batchCacheOperations", message: "delete operation should not have an associated response" }); } if (this.#queryCache(operation.request, operation.options, addedItems).length) { throw new DOMException("???", "InvalidStateError"); } let requestResponses; if (operation.type === "delete") { requestResponses = this.#queryCache(operation.request, operation.options); if (requestResponses.length === 0) { return []; } for (const requestResponse of requestResponses) { const idx = cache.indexOf(requestResponse); assert(idx !== -1); cache.splice(idx, 1); } } else if (operation.type === "put") { if (operation.response == null) { throw webidl.errors.exception({ header: "Cache.#batchCacheOperations", message: "put operation should have an associated response" }); } const r = operation.request; if (!urlIsHttpHttpsScheme(r.url)) { throw webidl.errors.exception({ header: "Cache.#batchCacheOperations", message: "expected http or https scheme" }); } if (r.method !== "GET") { throw webidl.errors.exception({ header: "Cache.#batchCacheOperations", message: "not get method" }); } if (operation.options != null) { throw webidl.errors.exception({ header: "Cache.#batchCacheOperations", message: "options must not be defined" }); } requestResponses = this.#queryCache(operation.request); for (const requestResponse of requestResponses) { const idx = cache.indexOf(requestResponse); assert(idx !== -1); cache.splice(idx, 1); } cache.push([operation.request, operation.response]); addedItems.push([operation.request, operation.response]); } resultList.push([operation.request, operation.response]); } return resultList; } catch (e) { this.#relevantRequestResponseList.length = 0; this.#relevantRequestResponseList = backupCache; throw e; } } /** * @see https://w3c.github.io/ServiceWorker/#query-cache * @param {any} requestQuery * @param {import('../../types/cache').CacheQueryOptions} options * @param {requestResponseList} targetStorage * @returns {requestResponseList} */ #queryCache(requestQuery, options, targetStorage) { const resultList = []; const storage = targetStorage ?? this.#relevantRequestResponseList; for (const requestResponse of storage) { const [cachedRequest, cachedResponse] = requestResponse; if (this.#requestMatchesCachedItem(requestQuery, cachedRequest, cachedResponse, options)) { resultList.push(requestResponse); } } return resultList; } /** * @see https://w3c.github.io/ServiceWorker/#request-matches-cached-item-algorithm * @param {any} requestQuery * @param {any} request * @param {any | null} response * @param {import('../../types/cache').CacheQueryOptions | undefined} options * @returns {boolean} */ #requestMatchesCachedItem(requestQuery, request, response = null, options) { const queryURL = new URL(requestQuery.url); const cachedURL = new URL(request.url); if (options?.ignoreSearch) { cachedURL.search = ""; queryURL.search = ""; } if (!urlEquals(queryURL, cachedURL, true)) { return false; } if (response == null || options?.ignoreVary || !response.headersList.contains("vary")) { return true; } const fieldValues = getFieldValues(response.headersList.get("vary")); for (const fieldValue of fieldValues) { if (fieldValue === "*") { return false; } const requestValue = request.headersList.get(fieldValue); const queryValue = requestQuery.headersList.get(fieldValue); if (requestValue !== queryValue) { return false; } } return true; } #internalMatchAll(request, options, maxResponses = Infinity) { let r = null; if (request !== void 0) { if (request instanceof Request2) { r = request[kState]; if (r.method !== "GET" && !options.ignoreMethod) { return []; } } else if (typeof request === "string") { r = new Request2(request)[kState]; } } const responses = []; if (request === void 0) { for (const requestResponse of this.#relevantRequestResponseList) { responses.push(requestResponse[1]); } } else { const requestResponses = this.#queryCache(r, options); for (const requestResponse of requestResponses) { responses.push(requestResponse[1]); } } const responseList = []; for (const response of responses) { const responseObject = fromInnerResponse(response, "immutable"); responseList.push(responseObject.clone()); if (responseList.length >= maxResponses) { break; } } return Object.freeze(responseList); } }; Object.defineProperties(Cache.prototype, { [Symbol.toStringTag]: { value: "Cache", configurable: true }, match: kEnumerableProperty, matchAll: kEnumerableProperty, add: kEnumerableProperty, addAll: kEnumerableProperty, put: kEnumerableProperty, delete: kEnumerableProperty, keys: kEnumerableProperty }); var cacheQueryOptionConverters = [ { key: "ignoreSearch", converter: webidl.converters.boolean, defaultValue: () => false }, { key: "ignoreMethod", converter: webidl.converters.boolean, defaultValue: () => false }, { key: "ignoreVary", converter: webidl.converters.boolean, defaultValue: () => false } ]; webidl.converters.CacheQueryOptions = webidl.dictionaryConverter(cacheQueryOptionConverters); webidl.converters.MultiCacheQueryOptions = webidl.dictionaryConverter([ ...cacheQueryOptionConverters, { key: "cacheName", converter: webidl.converters.DOMString } ]); webidl.converters.Response = webidl.interfaceConverter(Response3); webidl.converters["sequence<RequestInfo>"] = webidl.sequenceConverter( webidl.converters.RequestInfo ); module2.exports = { Cache }; } }); // node_modules/undici/lib/web/cache/cachestorage.js var require_cachestorage = __commonJS({ "node_modules/undici/lib/web/cache/cachestorage.js"(exports2, module2) { "use strict"; var { kConstruct } = require_symbols4(); var { Cache } = require_cache2(); var { webidl } = require_webidl(); var { kEnumerableProperty } = require_util2(); var CacheStorage = class _CacheStorage { /** * @see https://w3c.github.io/ServiceWorker/#dfn-relevant-name-to-cache-map * @type {Map<string, import('./cache').requestResponseList} */ #caches = /* @__PURE__ */ new Map(); constructor() { if (arguments[0] !== kConstruct) { webidl.illegalConstructor(); } webidl.util.markAsUncloneable(this); } async match(request, options = {}) { webidl.brandCheck(this, _CacheStorage); webidl.argumentLengthCheck(arguments, 1, "CacheStorage.match"); request = webidl.converters.RequestInfo(request); options = webidl.converters.MultiCacheQueryOptions(options); if (options.cacheName != null) { if (this.#caches.has(options.cacheName)) { const cacheList = this.#caches.get(options.cacheName); const cache = new Cache(kConstruct, cacheList); return await cache.match(request, options); } } else { for (const cacheList of this.#caches.values()) { const cache = new Cache(kConstruct, cacheList); const response = await cache.match(request, options); if (response !== void 0) { return response; } } } } /** * @see https://w3c.github.io/ServiceWorker/#cache-storage-has * @param {string} cacheName * @returns {Promise<boolean>} */ async has(cacheName) { webidl.brandCheck(this, _CacheStorage); const prefix = "CacheStorage.has"; webidl.argumentLengthCheck(arguments, 1, prefix); cacheName = webidl.converters.DOMString(cacheName, prefix, "cacheName"); return this.#caches.has(cacheName); } /** * @see https://w3c.github.io/ServiceWorker/#dom-cachestorage-open * @param {string} cacheName * @returns {Promise<Cache>} */ async open(cacheName) { webidl.brandCheck(this, _CacheStorage); const prefix = "CacheStorage.open"; webidl.argumentLengthCheck(arguments, 1, prefix); cacheName = webidl.converters.DOMString(cacheName, prefix, "cacheName"); if (this.#caches.has(cacheName)) { const cache2 = this.#caches.get(cacheName); return new Cache(kConstruct, cache2); } const cache = []; this.#caches.set(cacheName, cache); return new Cache(kConstruct, cache); } /** * @see https://w3c.github.io/ServiceWorker/#cache-storage-delete * @param {string} cacheName * @returns {Promise<boolean>} */ async delete(cacheName) { webidl.brandCheck(this, _CacheStorage); const prefix = "CacheStorage.delete"; webidl.argumentLengthCheck(arguments, 1, prefix); cacheName = webidl.converters.DOMString(cacheName, prefix, "cacheName"); return this.#caches.delete(cacheName); } /** * @see https://w3c.github.io/ServiceWorker/#cache-storage-keys * @returns {Promise<string[]>} */ async keys() { webidl.brandCheck(this, _CacheStorage); const keys = this.#caches.keys(); return [...keys]; } }; Object.defineProperties(CacheStorage.prototype, { [Symbol.toStringTag]: { value: "CacheStorage", configurable: true }, match: kEnumerableProperty, has: kEnumerableProperty, open: kEnumerableProperty, delete: kEnumerableProperty, keys: kEnumerableProperty }); module2.exports = { CacheStorage }; } }); // node_modules/undici/lib/web/cookies/constants.js var require_constants4 = __commonJS({ "node_modules/undici/lib/web/cookies/constants.js"(exports2, module2) { "use strict"; var maxAttributeValueSize = 1024; var maxNameValuePairSize = 4096; module2.exports = { maxAttributeValueSize, maxNameValuePairSize }; } }); // node_modules/undici/lib/web/cookies/util.js var require_util7 = __commonJS({ "node_modules/undici/lib/web/cookies/util.js"(exports2, module2) { "use strict"; function isCTLExcludingHtab(value) { for (let i = 0; i < value.length; ++i) { const code = value.charCodeAt(i); if (code >= 0 && code <= 8 || code >= 10 && code <= 31 || code === 127) { return true; } } return false; } function validateCookieName(name) { for (let i = 0; i < name.length; ++i) { const code = name.charCodeAt(i); if (code < 33 || // exclude CTLs (0-31), SP and HT code > 126 || // exclude non-ascii and DEL code === 34 || // " code === 40 || // ( code === 41 || // ) code === 60 || // < code === 62 || // > code === 64 || // @ code === 44 || // , code === 59 || // ; code === 58 || // : code === 92 || // \ code === 47 || // / code === 91 || // [ code === 93 || // ] code === 63 || // ? code === 61 || // = code === 123 || // { code === 125) { throw new Error("Invalid cookie name"); } } } function validateCookieValue(value) { let len = value.length; let i = 0; if (value[0] === '"') { if (len === 1 || value[len - 1] !== '"') { throw new Error("Invalid cookie value"); } --len; ++i; } while (i < len) { const code = value.charCodeAt(i++); if (code < 33 || // exclude CTLs (0-31) code > 126 || // non-ascii and DEL (127) code === 34 || // " code === 44 || // , code === 59 || // ; code === 92) { throw new Error("Invalid cookie value"); } } } function validateCookiePath(path) { for (let i = 0; i < path.length; ++i) { const code = path.charCodeAt(i); if (code < 32 || // exclude CTLs (0-31) code === 127 || // DEL code === 59) { throw new Error("Invalid cookie path"); } } } function validateCookieDomain(domain) { if (domain.startsWith("-") || domain.endsWith(".") || domain.endsWith("-")) { throw new Error("Invalid cookie domain"); } } var IMFDays = [ "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" ]; var IMFMonths = [ "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" ]; var IMFPaddedNumbers = Array(61).fill(0).map((_, i) => i.toString().padStart(2, "0")); function toIMFDate(date) { if (typeof date === "number") { date = new Date(date); } return `${IMFDays[date.getUTCDay()]}, ${IMFPaddedNumbers[date.getUTCDate()]} ${IMFMonths[date.getUTCMonth()]} ${date.getUTCFullYear()} ${IMFPaddedNumbers[date.getUTCHours()]}:${IMFPaddedNumbers[date.getUTCMinutes()]}:${IMFPaddedNumbers[date.getUTCSeconds()]} GMT`; } function validateCookieMaxAge(maxAge) { if (maxAge < 0) { throw new Error("Invalid cookie max-age"); } } function stringify2(cookie) { if (cookie.name.length === 0) { return null; } validateCookieName(cookie.name); validateCookieValue(cookie.value); const out = [`${cookie.name}=${cookie.value}`]; if (cookie.name.startsWith("__Secure-")) { cookie.secure = true; } if (cookie.name.startsWith("__Host-")) { cookie.secure = true; cookie.domain = null; cookie.path = "/"; } if (cookie.secure) { out.push("Secure"); } if (cookie.httpOnly) { out.push("HttpOnly"); } if (typeof cookie.maxAge === "number") { validateCookieMaxAge(cookie.maxAge); out.push(`Max-Age=${cookie.maxAge}`); } if (cookie.domain) { validateCookieDomain(cookie.domain); out.push(`Domain=${cookie.domain}`); } if (cookie.path) { validateCookiePath(cookie.path); out.push(`Path=${cookie.path}`); } if (cookie.expires && cookie.expires.toString() !== "Invalid Date") { out.push(`Expires=${toIMFDate(cookie.expires)}`); } if (cookie.sameSite) { out.push(`SameSite=${cookie.sameSite}`); } for (const part of cookie.unparsed) { if (!part.includes("=")) { throw new Error("Invalid unparsed"); } const [key, ...value] = part.split("="); out.push(`${key.trim()}=${value.join("=")}`); } return out.join("; "); } module2.exports = { isCTLExcludingHtab, validateCookieName, validateCookiePath, validateCookieValue, toIMFDate, stringify: stringify2 }; } }); // node_modules/undici/lib/web/cookies/parse.js var require_parse2 = __commonJS({ "node_modules/undici/lib/web/cookies/parse.js"(exports2, module2) { "use strict"; var { maxNameValuePairSize, maxAttributeValueSize } = require_constants4(); var { isCTLExcludingHtab } = require_util7(); var { collectASequenceOfCodePointsFast } = require_data_url(); var assert = require("node:assert"); function parseSetCookie(header) { if (isCTLExcludingHtab(header)) { return null; } let nameValuePair = ""; let unparsedAttributes = ""; let name = ""; let value = ""; if (header.includes(";")) { const position = { position: 0 }; nameValuePair = collectASequenceOfCodePointsFast(";", header, position); unparsedAttributes = header.slice(position.position); } else { nameValuePair = header; } if (!nameValuePair.includes("=")) { value = nameValuePair; } else { const position = { position: 0 }; name = collectASequenceOfCodePointsFast( "=", nameValuePair, position ); value = nameValuePair.slice(position.position + 1); } name = name.trim(); value = value.trim(); if (name.length + value.length > maxNameValuePairSize) { return null; } return { name, value, ...parseUnparsedAttributes(unparsedAttributes) }; } function parseUnparsedAttributes(unparsedAttributes, cookieAttributeList = {}) { if (unparsedAttributes.length === 0) { return cookieAttributeList; } assert(unparsedAttributes[0] === ";"); unparsedAttributes = unparsedAttributes.slice(1); let cookieAv = ""; if (unparsedAttributes.includes(";")) { cookieAv = collectASequenceOfCodePointsFast( ";", unparsedAttributes, { position: 0 } ); unparsedAttributes = unparsedAttributes.slice(cookieAv.length); } else { cookieAv = unparsedAttributes; unparsedAttributes = ""; } let attributeName = ""; let attributeValue = ""; if (cookieAv.includes("=")) { const position = { position: 0 }; attributeName = collectASequenceOfCodePointsFast( "=", cookieAv, position ); attributeValue = cookieAv.slice(position.position + 1); } else { attributeName = cookieAv; } attributeName = attributeName.trim(); attributeValue = attributeValue.trim(); if (attributeValue.length > maxAttributeValueSize) { return parseUnparsedAttributes(unparsedAttributes, cookieAttributeList); } const attributeNameLowercase = attributeName.toLowerCase(); if (attributeNameLowercase === "expires") { const expiryTime = new Date(attributeValue); cookieAttributeList.expires = expiryTime; } else if (attributeNameLowercase === "max-age") { const charCode = attributeValue.charCodeAt(0); if ((charCode < 48 || charCode > 57) && attributeValue[0] !== "-") { return parseUnparsedAttributes(unparsedAttributes, cookieAttributeList); } if (!/^\d+$/.test(attributeValue)) { return parseUnparsedAttributes(unparsedAttributes, cookieAttributeList); } const deltaSeconds = Number(attributeValue); cookieAttributeList.maxAge = deltaSeconds; } else if (attributeNameLowercase === "domain") { let cookieDomain = attributeValue; if (cookieDomain[0] === ".") { cookieDomain = cookieDomain.slice(1); } cookieDomain = cookieDomain.toLowerCase(); cookieAttributeList.domain = cookieDomain; } else if (attributeNameLowercase === "path") { let cookiePath = ""; if (attributeValue.length === 0 || attributeValue[0] !== "/") { cookiePath = "/"; } else { cookiePath = attributeValue; } cookieAttributeList.path = cookiePath; } else if (attributeNameLowercase === "secure") { cookieAttributeList.secure = true; } else if (attributeNameLowercase === "httponly") { cookieAttributeList.httpOnly = true; } else if (attributeNameLowercase === "samesite") { let enforcement = "Default"; const attributeValueLowercase = attributeValue.toLowerCase(); if (attributeValueLowercase.includes("none")) { enforcement = "None"; } if (attributeValueLowercase.includes("strict")) { enforcement = "Strict"; } if (attributeValueLowercase.includes("lax")) { enforcement = "Lax"; } cookieAttributeList.sameSite = enforcement; } else { cookieAttributeList.unparsed ??= []; cookieAttributeList.unparsed.push(`${attributeName}=${attributeValue}`); } return parseUnparsedAttributes(unparsedAttributes, cookieAttributeList); } module2.exports = { parseSetCookie, parseUnparsedAttributes }; } }); // node_modules/undici/lib/web/cookies/index.js var require_cookies = __commonJS({ "node_modules/undici/lib/web/cookies/index.js"(exports2, module2) { "use strict"; var { parseSetCookie } = require_parse2(); var { stringify: stringify2 } = require_util7(); var { webidl } = require_webidl(); var { Headers } = require_headers(); function getCookies(headers) { webidl.argumentLengthCheck(arguments, 1, "getCookies"); webidl.brandCheck(headers, Headers, { strict: false }); const cookie = headers.get("cookie"); const out = {}; if (!cookie) { return out; } for (const piece of cookie.split(";")) { const [name, ...value] = piece.split("="); out[name.trim()] = value.join("="); } return out; } function deleteCookie(headers, name, attributes2) { webidl.brandCheck(headers, Headers, { strict: false }); const prefix = "deleteCookie"; webidl.argumentLengthCheck(arguments, 2, prefix); name = webidl.converters.DOMString(name, prefix, "name"); attributes2 = webidl.converters.DeleteCookieAttributes(attributes2); setCookie(headers, { name, value: "", expires: /* @__PURE__ */ new Date(0), ...attributes2 }); } function getSetCookies(headers) { webidl.argumentLengthCheck(arguments, 1, "getSetCookies"); webidl.brandCheck(headers, Headers, { strict: false }); const cookies = headers.getSetCookie(); if (!cookies) { return []; } return cookies.map((pair) => parseSetCookie(pair)); } function setCookie(headers, cookie) { webidl.argumentLengthCheck(arguments, 2, "setCookie"); webidl.brandCheck(headers, Headers, { strict: false }); cookie = webidl.converters.Cookie(cookie); const str = stringify2(cookie); if (str) { headers.append("Set-Cookie", str); } } webidl.converters.DeleteCookieAttributes = webidl.dictionaryConverter([ { converter: webidl.nullableConverter(webidl.converters.DOMString), key: "path", defaultValue: () => null }, { converter: webidl.nullableConverter(webidl.converters.DOMString), key: "domain", defaultValue: () => null } ]); webidl.converters.Cookie = webidl.dictionaryConverter([ { converter: webidl.converters.DOMString, key: "name" }, { converter: webidl.converters.DOMString, key: "value" }, { converter: webidl.nullableConverter((value) => { if (typeof value === "number") { return webidl.converters["unsigned long long"](value); } return new Date(value); }), key: "expires", defaultValue: () => null }, { converter: webidl.nullableConverter(webidl.converters["long long"]), key: "maxAge", defaultValue: () => null }, { converter: webidl.nullableConverter(webidl.converters.DOMString), key: "domain", defaultValue: () => null }, { converter: webidl.nullableConverter(webidl.converters.DOMString), key: "path", defaultValue: () => null }, { converter: webidl.nullableConverter(webidl.converters.boolean), key: "secure", defaultValue: () => null }, { converter: webidl.nullableConverter(webidl.converters.boolean), key: "httpOnly", defaultValue: () => null }, { converter: webidl.converters.USVString, key: "sameSite", allowedValues: ["Strict", "Lax", "None"] }, { converter: webidl.sequenceConverter(webidl.converters.DOMString), key: "unparsed", defaultValue: () => new Array(0) } ]); module2.exports = { getCookies, deleteCookie, getSetCookies, setCookie }; } }); // node_modules/undici/lib/web/websocket/events.js var require_events = __commonJS({ "node_modules/undici/lib/web/websocket/events.js"(exports2, module2) { "use strict"; var { webidl } = require_webidl(); var { kEnumerableProperty } = require_util2(); var { kConstruct } = require_symbols(); var { MessagePort } = require("node:worker_threads"); var MessageEvent = class _MessageEvent extends Event { #eventInit; constructor(type, eventInitDict = {}) { if (type === kConstruct) { super(arguments[1], arguments[2]); webidl.util.markAsUncloneable(this); return; } const prefix = "MessageEvent constructor"; webidl.argumentLengthCheck(arguments, 1, prefix); type = webidl.converters.DOMString(type, prefix, "type"); eventInitDict = webidl.converters.MessageEventInit(eventInitDict, prefix, "eventInitDict"); super(type, eventInitDict); this.#eventInit = eventInitDict; webidl.util.markAsUncloneable(this); } get data() { webidl.brandCheck(this, _MessageEvent); return this.#eventInit.data; } get origin() { webidl.brandCheck(this, _MessageEvent); return this.#eventInit.origin; } get lastEventId() { webidl.brandCheck(this, _MessageEvent); return this.#eventInit.lastEventId; } get source() { webidl.brandCheck(this, _MessageEvent); return this.#eventInit.source; } get ports() { webidl.brandCheck(this, _MessageEvent); if (!Object.isFrozen(this.#eventInit.ports)) { Object.freeze(this.#eventInit.ports); } return this.#eventInit.ports; } initMessageEvent(type, bubbles = false, cancelable = false, data2 = null, origin2 = "", lastEventId = "", source = null, ports = []) { webidl.brandCheck(this, _MessageEvent); webidl.argumentLengthCheck(arguments, 1, "MessageEvent.initMessageEvent"); return new _MessageEvent(type, { bubbles, cancelable, data: data2, origin: origin2, lastEventId, source, ports }); } static createFastMessageEvent(type, init) { const messageEvent = new _MessageEvent(kConstruct, type, init); messageEvent.#eventInit = init; messageEvent.#eventInit.data ??= null; messageEvent.#eventInit.origin ??= ""; messageEvent.#eventInit.lastEventId ??= ""; messageEvent.#eventInit.source ??= null; messageEvent.#eventInit.ports ??= []; return messageEvent; } }; var { createFastMessageEvent } = MessageEvent; delete MessageEvent.createFastMessageEvent; var CloseEvent = class _CloseEvent extends Event { #eventInit; constructor(type, eventInitDict = {}) { const prefix = "CloseEvent constructor"; webidl.argumentLengthCheck(arguments, 1, prefix); type = webidl.converters.DOMString(type, prefix, "type"); eventInitDict = webidl.converters.CloseEventInit(eventInitDict); super(type, eventInitDict); this.#eventInit = eventInitDict; webidl.util.markAsUncloneable(this); } get wasClean() { webidl.brandCheck(this, _CloseEvent); return this.#eventInit.wasClean; } get code() { webidl.brandCheck(this, _CloseEvent); return this.#eventInit.code; } get reason() { webidl.brandCheck(this, _CloseEvent); return this.#eventInit.reason; } }; var ErrorEvent = class _ErrorEvent extends Event { #eventInit; constructor(type, eventInitDict) { const prefix = "ErrorEvent constructor"; webidl.argumentLengthCheck(arguments, 1, prefix); super(type, eventInitDict); webidl.util.markAsUncloneable(this); type = webidl.converters.DOMString(type, prefix, "type"); eventInitDict = webidl.converters.ErrorEventInit(eventInitDict ?? {}); this.#eventInit = eventInitDict; } get message() { webidl.brandCheck(this, _ErrorEvent); return this.#eventInit.message; } get filename() { webidl.brandCheck(this, _ErrorEvent); return this.#eventInit.filename; } get lineno() { webidl.brandCheck(this, _ErrorEvent); return this.#eventInit.lineno; } get colno() { webidl.brandCheck(this, _ErrorEvent); return this.#eventInit.colno; } get error() { webidl.brandCheck(this, _ErrorEvent); return this.#eventInit.error; } }; Object.defineProperties(MessageEvent.prototype, { [Symbol.toStringTag]: { value: "MessageEvent", configurable: true }, data: kEnumerableProperty, origin: kEnumerableProperty, lastEventId: kEnumerableProperty, source: kEnumerableProperty, ports: kEnumerableProperty, initMessageEvent: kEnumerableProperty }); Object.defineProperties(CloseEvent.prototype, { [Symbol.toStringTag]: { value: "CloseEvent", configurable: true }, reason: kEnumerableProperty, code: kEnumerableProperty, wasClean: kEnumerableProperty }); Object.defineProperties(ErrorEvent.prototype, { [Symbol.toStringTag]: { value: "ErrorEvent", configurable: true }, message: kEnumerableProperty, filename: kEnumerableProperty, lineno: kEnumerableProperty, colno: kEnumerableProperty, error: kEnumerableProperty }); webidl.converters.MessagePort = webidl.interfaceConverter(MessagePort); webidl.converters["sequence<MessagePort>"] = webidl.sequenceConverter( webidl.converters.MessagePort ); var eventInit = [ { key: "bubbles", converter: webidl.converters.boolean, defaultValue: () => false }, { key: "cancelable", converter: webidl.converters.boolean, defaultValue: () => false }, { key: "composed", converter: webidl.converters.boolean, defaultValue: () => false } ]; webidl.converters.MessageEventInit = webidl.dictionaryConverter([ ...eventInit, { key: "data", converter: webidl.converters.any, defaultValue: () => null }, { key: "origin", converter: webidl.converters.USVString, defaultValue: () => "" }, { key: "lastEventId", converter: webidl.converters.DOMString, defaultValue: () => "" }, { key: "source", // Node doesn't implement WindowProxy or ServiceWorker, so the only // valid value for source is a MessagePort. converter: webidl.nullableConverter(webidl.converters.MessagePort), defaultValue: () => null }, { key: "ports", converter: webidl.converters["sequence<MessagePort>"], defaultValue: () => new Array(0) } ]); webidl.converters.CloseEventInit = webidl.dictionaryConverter([ ...eventInit, { key: "wasClean", converter: webidl.converters.boolean, defaultValue: () => false }, { key: "code", converter: webidl.converters["unsigned short"], defaultValue: () => 0 }, { key: "reason", converter: webidl.converters.USVString, defaultValue: () => "" } ]); webidl.converters.ErrorEventInit = webidl.dictionaryConverter([ ...eventInit, { key: "message", converter: webidl.converters.DOMString, defaultValue: () => "" }, { key: "filename", converter: webidl.converters.USVString, defaultValue: () => "" }, { key: "lineno", converter: webidl.converters["unsigned long"], defaultValue: () => 0 }, { key: "colno", converter: webidl.converters["unsigned long"], defaultValue: () => 0 }, { key: "error", converter: webidl.converters.any } ]); module2.exports = { MessageEvent, CloseEvent, ErrorEvent, createFastMessageEvent }; } }); // node_modules/undici/lib/web/websocket/constants.js var require_constants5 = __commonJS({ "node_modules/undici/lib/web/websocket/constants.js"(exports2, module2) { "use strict"; var uid = "258EAFA5-E914-47DA-95CA-C5AB0DC85B11"; var staticPropertyDescriptors = { enumerable: true, writable: false, configurable: false }; var states = { CONNECTING: 0, OPEN: 1, CLOSING: 2, CLOSED: 3 }; var sentCloseFrameState = { NOT_SENT: 0, PROCESSING: 1, SENT: 2 }; var opcodes = { CONTINUATION: 0, TEXT: 1, BINARY: 2, CLOSE: 8, PING: 9, PONG: 10 }; var maxUnsigned16Bit = 2 ** 16 - 1; var parserStates = { INFO: 0, PAYLOADLENGTH_16: 2, PAYLOADLENGTH_64: 3, READ_DATA: 4 }; var emptyBuffer = Buffer.allocUnsafe(0); var sendHints = { string: 1, typedArray: 2, arrayBuffer: 3, blob: 4 }; module2.exports = { uid, sentCloseFrameState, staticPropertyDescriptors, states, opcodes, maxUnsigned16Bit, parserStates, emptyBuffer, sendHints }; } }); // node_modules/undici/lib/web/websocket/symbols.js var require_symbols5 = __commonJS({ "node_modules/undici/lib/web/websocket/symbols.js"(exports2, module2) { "use strict"; module2.exports = { kWebSocketURL: Symbol("url"), kReadyState: Symbol("ready state"), kController: Symbol("controller"), kResponse: Symbol("response"), kBinaryType: Symbol("binary type"), kSentClose: Symbol("sent close"), kReceivedClose: Symbol("received close"), kByteParser: Symbol("byte parser") }; } }); // node_modules/undici/lib/web/websocket/util.js var require_util8 = __commonJS({ "node_modules/undici/lib/web/websocket/util.js"(exports2, module2) { "use strict"; var { kReadyState, kController, kResponse, kBinaryType, kWebSocketURL } = require_symbols5(); var { states, opcodes } = require_constants5(); var { ErrorEvent, createFastMessageEvent } = require_events(); var { isUtf8 } = require("node:buffer"); var { collectASequenceOfCodePointsFast, removeHTTPWhitespace } = require_data_url(); function isConnecting(ws) { return ws[kReadyState] === states.CONNECTING; } function isEstablished(ws) { return ws[kReadyState] === states.OPEN; } function isClosing(ws) { return ws[kReadyState] === states.CLOSING; } function isClosed(ws) { return ws[kReadyState] === states.CLOSED; } function fireEvent(e, target, eventFactory = (type, init) => new Event(type, init), eventInitDict = {}) { const event = eventFactory(e, eventInitDict); target.dispatchEvent(event); } function websocketMessageReceived(ws, type, data2) { if (ws[kReadyState] !== states.OPEN) { return; } let dataForEvent; if (type === opcodes.TEXT) { try { dataForEvent = utf8Decode(data2); } catch { failWebsocketConnection(ws, "Received invalid UTF-8 in text frame."); return; } } else if (type === opcodes.BINARY) { if (ws[kBinaryType] === "blob") { dataForEvent = new Blob([data2]); } else { dataForEvent = toArrayBuffer(data2); } } fireEvent("message", ws, createFastMessageEvent, { origin: ws[kWebSocketURL].origin, data: dataForEvent }); } function toArrayBuffer(buffer) { if (buffer.byteLength === buffer.buffer.byteLength) { return buffer.buffer; } return buffer.buffer.slice(buffer.byteOffset, buffer.byteOffset + buffer.byteLength); } function isValidSubprotocol(protocol) { if (protocol.length === 0) { return false; } for (let i = 0; i < protocol.length; ++i) { const code = protocol.charCodeAt(i); if (code < 33 || // CTL, contains SP (0x20) and HT (0x09) code > 126 || code === 34 || // " code === 40 || // ( code === 41 || // ) code === 44 || // , code === 47 || // / code === 58 || // : code === 59 || // ; code === 60 || // < code === 61 || // = code === 62 || // > code === 63 || // ? code === 64 || // @ code === 91 || // [ code === 92 || // \ code === 93 || // ] code === 123 || // { code === 125) { return false; } } return true; } function isValidStatusCode(code) { if (code >= 1e3 && code < 1015) { return code !== 1004 && // reserved code !== 1005 && // "MUST NOT be set as a status code" code !== 1006; } return code >= 3e3 && code <= 4999; } function failWebsocketConnection(ws, reason) { const { [kController]: controller, [kResponse]: response } = ws; controller.abort(); if (response?.socket && !response.socket.destroyed) { response.socket.destroy(); } if (reason) { fireEvent("error", ws, (type, init) => new ErrorEvent(type, init), { error: new Error(reason), message: reason }); } } function isControlFrame(opcode) { return opcode === opcodes.CLOSE || opcode === opcodes.PING || opcode === opcodes.PONG; } function isContinuationFrame(opcode) { return opcode === opcodes.CONTINUATION; } function isTextBinaryFrame(opcode) { return opcode === opcodes.TEXT || opcode === opcodes.BINARY; } function isValidOpcode(opcode) { return isTextBinaryFrame(opcode) || isContinuationFrame(opcode) || isControlFrame(opcode); } function parseExtensions(extensions) { const position = { position: 0 }; const extensionList = /* @__PURE__ */ new Map(); while (position.position < extensions.length) { const pair = collectASequenceOfCodePointsFast(";", extensions, position); const [name, value = ""] = pair.split("="); extensionList.set( removeHTTPWhitespace(name, true, false), removeHTTPWhitespace(value, false, true) ); position.position++; } return extensionList; } function isValidClientWindowBits(value) { for (let i = 0; i < value.length; i++) { const byte = value.charCodeAt(i); if (byte < 48 || byte > 57) { return false; } } return true; } var hasIntl = typeof process.versions.icu === "string"; var fatalDecoder = hasIntl ? new TextDecoder("utf-8", { fatal: true }) : void 0; var utf8Decode = hasIntl ? fatalDecoder.decode.bind(fatalDecoder) : function(buffer) { if (isUtf8(buffer)) { return buffer.toString("utf-8"); } throw new TypeError("Invalid utf-8 received."); }; module2.exports = { isConnecting, isEstablished, isClosing, isClosed, fireEvent, isValidSubprotocol, isValidStatusCode, failWebsocketConnection, websocketMessageReceived, utf8Decode, isControlFrame, isContinuationFrame, isTextBinaryFrame, isValidOpcode, parseExtensions, isValidClientWindowBits }; } }); // node_modules/undici/lib/web/websocket/frame.js var require_frame = __commonJS({ "node_modules/undici/lib/web/websocket/frame.js"(exports2, module2) { "use strict"; var { maxUnsigned16Bit } = require_constants5(); var BUFFER_SIZE = 16386; var crypto4; var buffer = null; var bufIdx = BUFFER_SIZE; try { crypto4 = require("node:crypto"); } catch { crypto4 = { // not full compatibility, but minimum. randomFillSync: function randomFillSync(buffer2, _offset, _size) { for (let i = 0; i < buffer2.length; ++i) { buffer2[i] = Math.random() * 255 | 0; } return buffer2; } }; } function generateMask() { if (bufIdx === BUFFER_SIZE) { bufIdx = 0; crypto4.randomFillSync(buffer ??= Buffer.allocUnsafe(BUFFER_SIZE), 0, BUFFER_SIZE); } return [buffer[bufIdx++], buffer[bufIdx++], buffer[bufIdx++], buffer[bufIdx++]]; } var WebsocketFrameSend = class { /** * @param {Buffer|undefined} data */ constructor(data2) { this.frameData = data2; } createFrame(opcode) { const frameData = this.frameData; const maskKey = generateMask(); const bodyLength = frameData?.byteLength ?? 0; let payloadLength = bodyLength; let offset = 6; if (bodyLength > maxUnsigned16Bit) { offset += 8; payloadLength = 127; } else if (bodyLength > 125) { offset += 2; payloadLength = 126; } const buffer2 = Buffer.allocUnsafe(bodyLength + offset); buffer2[0] = buffer2[1] = 0; buffer2[0] |= 128; buffer2[0] = (buffer2[0] & 240) + opcode; buffer2[offset - 4] = maskKey[0]; buffer2[offset - 3] = maskKey[1]; buffer2[offset - 2] = maskKey[2]; buffer2[offset - 1] = maskKey[3]; buffer2[1] = payloadLength; if (payloadLength === 126) { buffer2.writeUInt16BE(bodyLength, 2); } else if (payloadLength === 127) { buffer2[2] = buffer2[3] = 0; buffer2.writeUIntBE(bodyLength, 4, 6); } buffer2[1] |= 128; for (let i = 0; i < bodyLength; ++i) { buffer2[offset + i] = frameData[i] ^ maskKey[i & 3]; } return buffer2; } }; module2.exports = { WebsocketFrameSend }; } }); // node_modules/undici/lib/web/websocket/connection.js var require_connection = __commonJS({ "node_modules/undici/lib/web/websocket/connection.js"(exports2, module2) { "use strict"; var { uid, states, sentCloseFrameState, emptyBuffer, opcodes } = require_constants5(); var { kReadyState, kSentClose, kByteParser, kReceivedClose, kResponse } = require_symbols5(); var { fireEvent, failWebsocketConnection, isClosing, isClosed, isEstablished, parseExtensions } = require_util8(); var { channels } = require_diagnostics(); var { CloseEvent } = require_events(); var { makeRequest } = require_request2(); var { fetching } = require_fetch(); var { Headers, getHeadersList } = require_headers(); var { getDecodeSplit } = require_util3(); var { WebsocketFrameSend } = require_frame(); var crypto4; try { crypto4 = require("node:crypto"); } catch { } function establishWebSocketConnection(url2, protocols, client, ws, onEstablish, options) { const requestURL = url2; requestURL.protocol = url2.protocol === "ws:" ? "http:" : "https:"; const request = makeRequest({ urlList: [requestURL], client, serviceWorkers: "none", referrer: "no-referrer", mode: "websocket", credentials: "include", cache: "no-store", redirect: "error" }); if (options.headers) { const headersList = getHeadersList(new Headers(options.headers)); request.headersList = headersList; } const keyValue = crypto4.randomBytes(16).toString("base64"); request.headersList.append("sec-websocket-key", keyValue); request.headersList.append("sec-websocket-version", "13"); for (const protocol of protocols) { request.headersList.append("sec-websocket-protocol", protocol); } const permessageDeflate = "permessage-deflate; client_max_window_bits"; request.headersList.append("sec-websocket-extensions", permessageDeflate); const controller = fetching({ request, useParallelQueue: true, dispatcher: options.dispatcher, processResponse(response) { if (response.type === "error" || response.status !== 101) { failWebsocketConnection(ws, "Received network error or non-101 status code."); return; } if (protocols.length !== 0 && !response.headersList.get("Sec-WebSocket-Protocol")) { failWebsocketConnection(ws, "Server did not respond with sent protocols."); return; } if (response.headersList.get("Upgrade")?.toLowerCase() !== "websocket") { failWebsocketConnection(ws, 'Server did not set Upgrade header to "websocket".'); return; } if (response.headersList.get("Connection")?.toLowerCase() !== "upgrade") { failWebsocketConnection(ws, 'Server did not set Connection header to "upgrade".'); return; } const secWSAccept = response.headersList.get("Sec-WebSocket-Accept"); const digest = crypto4.createHash("sha1").update(keyValue + uid).digest("base64"); if (secWSAccept !== digest) { failWebsocketConnection(ws, "Incorrect hash received in Sec-WebSocket-Accept header."); return; } const secExtension = response.headersList.get("Sec-WebSocket-Extensions"); let extensions; if (secExtension !== null) { extensions = parseExtensions(secExtension); if (!extensions.has("permessage-deflate")) { failWebsocketConnection(ws, "Sec-WebSocket-Extensions header does not match."); return; } } const secProtocol = response.headersList.get("Sec-WebSocket-Protocol"); if (secProtocol !== null) { const requestProtocols = getDecodeSplit("sec-websocket-protocol", request.headersList); if (!requestProtocols.includes(secProtocol)) { failWebsocketConnection(ws, "Protocol was not set in the opening handshake."); return; } } response.socket.on("data", onSocketData); response.socket.on("close", onSocketClose); response.socket.on("error", onSocketError); if (channels.open.hasSubscribers) { channels.open.publish({ address: response.socket.address(), protocol: secProtocol, extensions: secExtension }); } onEstablish(response, extensions); } }); return controller; } function closeWebSocketConnection(ws, code, reason, reasonByteLength) { if (isClosing(ws) || isClosed(ws)) { } else if (!isEstablished(ws)) { failWebsocketConnection(ws, "Connection was closed before it was established."); ws[kReadyState] = states.CLOSING; } else if (ws[kSentClose] === sentCloseFrameState.NOT_SENT) { ws[kSentClose] = sentCloseFrameState.PROCESSING; const frame = new WebsocketFrameSend(); if (code !== void 0 && reason === void 0) { frame.frameData = Buffer.allocUnsafe(2); frame.frameData.writeUInt16BE(code, 0); } else if (code !== void 0 && reason !== void 0) { frame.frameData = Buffer.allocUnsafe(2 + reasonByteLength); frame.frameData.writeUInt16BE(code, 0); frame.frameData.write(reason, 2, "utf-8"); } else { frame.frameData = emptyBuffer; } const socket = ws[kResponse].socket; socket.write(frame.createFrame(opcodes.CLOSE)); ws[kSentClose] = sentCloseFrameState.SENT; ws[kReadyState] = states.CLOSING; } else { ws[kReadyState] = states.CLOSING; } } function onSocketData(chunk) { if (!this.ws[kByteParser].write(chunk)) { this.pause(); } } function onSocketClose() { const { ws } = this; const { [kResponse]: response } = ws; response.socket.off("data", onSocketData); response.socket.off("close", onSocketClose); response.socket.off("error", onSocketError); const wasClean = ws[kSentClose] === sentCloseFrameState.SENT && ws[kReceivedClose]; let code = 1005; let reason = ""; const result = ws[kByteParser].closingInfo; if (result && !result.error) { code = result.code ?? 1005; reason = result.reason; } else if (!ws[kReceivedClose]) { code = 1006; } ws[kReadyState] = states.CLOSED; fireEvent("close", ws, (type, init) => new CloseEvent(type, init), { wasClean, code, reason }); if (channels.close.hasSubscribers) { channels.close.publish({ websocket: ws, code, reason }); } } function onSocketError(error) { const { ws } = this; ws[kReadyState] = states.CLOSING; if (channels.socketError.hasSubscribers) { channels.socketError.publish(error); } this.destroy(); } module2.exports = { establishWebSocketConnection, closeWebSocketConnection }; } }); // node_modules/undici/lib/web/websocket/permessage-deflate.js var require_permessage_deflate = __commonJS({ "node_modules/undici/lib/web/websocket/permessage-deflate.js"(exports2, module2) { "use strict"; var { createInflateRaw, Z_DEFAULT_WINDOWBITS } = require("node:zlib"); var { isValidClientWindowBits } = require_util8(); var tail = Buffer.from([0, 0, 255, 255]); var kBuffer = Symbol("kBuffer"); var kLength = Symbol("kLength"); var PerMessageDeflate = class { /** @type {import('node:zlib').InflateRaw} */ #inflate; #options = {}; constructor(extensions) { this.#options.serverNoContextTakeover = extensions.has("server_no_context_takeover"); this.#options.serverMaxWindowBits = extensions.get("server_max_window_bits"); } decompress(chunk, fin, callback) { if (!this.#inflate) { let windowBits = Z_DEFAULT_WINDOWBITS; if (this.#options.serverMaxWindowBits) { if (!isValidClientWindowBits(this.#options.serverMaxWindowBits)) { callback(new Error("Invalid server_max_window_bits")); return; } windowBits = Number.parseInt(this.#options.serverMaxWindowBits); } this.#inflate = createInflateRaw({ windowBits }); this.#inflate[kBuffer] = []; this.#inflate[kLength] = 0; this.#inflate.on("data", (data2) => { this.#inflate[kBuffer].push(data2); this.#inflate[kLength] += data2.length; }); this.#inflate.on("error", (err2) => { this.#inflate = null; callback(err2); }); } this.#inflate.write(chunk); if (fin) { this.#inflate.write(tail); } this.#inflate.flush(() => { const full = Buffer.concat(this.#inflate[kBuffer], this.#inflate[kLength]); this.#inflate[kBuffer].length = 0; this.#inflate[kLength] = 0; callback(null, full); }); } }; module2.exports = { PerMessageDeflate }; } }); // node_modules/undici/lib/web/websocket/receiver.js var require_receiver = __commonJS({ "node_modules/undici/lib/web/websocket/receiver.js"(exports2, module2) { "use strict"; var { Writable } = require("node:stream"); var assert = require("node:assert"); var { parserStates, opcodes, states, emptyBuffer, sentCloseFrameState } = require_constants5(); var { kReadyState, kSentClose, kResponse, kReceivedClose } = require_symbols5(); var { channels } = require_diagnostics(); var { isValidStatusCode, isValidOpcode, failWebsocketConnection, websocketMessageReceived, utf8Decode, isControlFrame, isTextBinaryFrame, isContinuationFrame } = require_util8(); var { WebsocketFrameSend } = require_frame(); var { closeWebSocketConnection } = require_connection(); var { PerMessageDeflate } = require_permessage_deflate(); var ByteParser = class extends Writable { #buffers = []; #byteOffset = 0; #loop = false; #state = parserStates.INFO; #info = {}; #fragments = []; /** @type {Map<string, PerMessageDeflate>} */ #extensions; constructor(ws, extensions) { super(); this.ws = ws; this.#extensions = extensions == null ? /* @__PURE__ */ new Map() : extensions; if (this.#extensions.has("permessage-deflate")) { this.#extensions.set("permessage-deflate", new PerMessageDeflate(extensions)); } } /** * @param {Buffer} chunk * @param {() => void} callback */ _write(chunk, _, callback) { this.#buffers.push(chunk); this.#byteOffset += chunk.length; this.#loop = true; this.run(callback); } /** * Runs whenever a new chunk is received. * Callback is called whenever there are no more chunks buffering, * or not enough bytes are buffered to parse. */ run(callback) { while (this.#loop) { if (this.#state === parserStates.INFO) { if (this.#byteOffset < 2) { return callback(); } const buffer = this.consume(2); const fin = (buffer[0] & 128) !== 0; const opcode = buffer[0] & 15; const masked = (buffer[1] & 128) === 128; const fragmented = !fin && opcode !== opcodes.CONTINUATION; const payloadLength = buffer[1] & 127; const rsv1 = buffer[0] & 64; const rsv2 = buffer[0] & 32; const rsv3 = buffer[0] & 16; if (!isValidOpcode(opcode)) { failWebsocketConnection(this.ws, "Invalid opcode received"); return callback(); } if (masked) { failWebsocketConnection(this.ws, "Frame cannot be masked"); return callback(); } if (rsv1 !== 0 && !this.#extensions.has("permessage-deflate")) { failWebsocketConnection(this.ws, "Expected RSV1 to be clear."); return; } if (rsv2 !== 0 || rsv3 !== 0) { failWebsocketConnection(this.ws, "RSV1, RSV2, RSV3 must be clear"); return; } if (fragmented && !isTextBinaryFrame(opcode)) { failWebsocketConnection(this.ws, "Invalid frame type was fragmented."); return; } if (isTextBinaryFrame(opcode) && this.#fragments.length > 0) { failWebsocketConnection(this.ws, "Expected continuation frame"); return; } if (this.#info.fragmented && fragmented) { failWebsocketConnection(this.ws, "Fragmented frame exceeded 125 bytes."); return; } if ((payloadLength > 125 || fragmented) && isControlFrame(opcode)) { failWebsocketConnection(this.ws, "Control frame either too large or fragmented"); return; } if (isContinuationFrame(opcode) && this.#fragments.length === 0 && !this.#info.compressed) { failWebsocketConnection(this.ws, "Unexpected continuation frame"); return; } if (payloadLength <= 125) { this.#info.payloadLength = payloadLength; this.#state = parserStates.READ_DATA; } else if (payloadLength === 126) { this.#state = parserStates.PAYLOADLENGTH_16; } else if (payloadLength === 127) { this.#state = parserStates.PAYLOADLENGTH_64; } if (isTextBinaryFrame(opcode)) { this.#info.binaryType = opcode; this.#info.compressed = rsv1 !== 0; } this.#info.opcode = opcode; this.#info.masked = masked; this.#info.fin = fin; this.#info.fragmented = fragmented; } else if (this.#state === parserStates.PAYLOADLENGTH_16) { if (this.#byteOffset < 2) { return callback(); } const buffer = this.consume(2); this.#info.payloadLength = buffer.readUInt16BE(0); this.#state = parserStates.READ_DATA; } else if (this.#state === parserStates.PAYLOADLENGTH_64) { if (this.#byteOffset < 8) { return callback(); } const buffer = this.consume(8); const upper = buffer.readUInt32BE(0); if (upper > 2 ** 31 - 1) { failWebsocketConnection(this.ws, "Received payload length > 2^31 bytes."); return; } const lower = buffer.readUInt32BE(4); this.#info.payloadLength = (upper << 8) + lower; this.#state = parserStates.READ_DATA; } else if (this.#state === parserStates.READ_DATA) { if (this.#byteOffset < this.#info.payloadLength) { return callback(); } const body = this.consume(this.#info.payloadLength); if (isControlFrame(this.#info.opcode)) { this.#loop = this.parseControlFrame(body); this.#state = parserStates.INFO; } else { if (!this.#info.compressed) { this.#fragments.push(body); if (!this.#info.fragmented && this.#info.fin) { const fullMessage = Buffer.concat(this.#fragments); websocketMessageReceived(this.ws, this.#info.binaryType, fullMessage); this.#fragments.length = 0; } this.#state = parserStates.INFO; } else { this.#extensions.get("permessage-deflate").decompress(body, this.#info.fin, (error, data2) => { if (error) { closeWebSocketConnection(this.ws, 1007, error.message, error.message.length); return; } this.#fragments.push(data2); if (!this.#info.fin) { this.#state = parserStates.INFO; this.#loop = true; this.run(callback); return; } websocketMessageReceived(this.ws, this.#info.binaryType, Buffer.concat(this.#fragments)); this.#loop = true; this.#state = parserStates.INFO; this.#fragments.length = 0; this.run(callback); }); this.#loop = false; break; } } } } } /** * Take n bytes from the buffered Buffers * @param {number} n * @returns {Buffer} */ consume(n) { if (n > this.#byteOffset) { throw new Error("Called consume() before buffers satiated."); } else if (n === 0) { return emptyBuffer; } if (this.#buffers[0].length === n) { this.#byteOffset -= this.#buffers[0].length; return this.#buffers.shift(); } const buffer = Buffer.allocUnsafe(n); let offset = 0; while (offset !== n) { const next2 = this.#buffers[0]; const { length } = next2; if (length + offset === n) { buffer.set(this.#buffers.shift(), offset); break; } else if (length + offset > n) { buffer.set(next2.subarray(0, n - offset), offset); this.#buffers[0] = next2.subarray(n - offset); break; } else { buffer.set(this.#buffers.shift(), offset); offset += next2.length; } } this.#byteOffset -= n; return buffer; } parseCloseBody(data2) { assert(data2.length !== 1); let code; if (data2.length >= 2) { code = data2.readUInt16BE(0); } if (code !== void 0 && !isValidStatusCode(code)) { return { code: 1002, reason: "Invalid status code", error: true }; } let reason = data2.subarray(2); if (reason[0] === 239 && reason[1] === 187 && reason[2] === 191) { reason = reason.subarray(3); } try { reason = utf8Decode(reason); } catch { return { code: 1007, reason: "Invalid UTF-8", error: true }; } return { code, reason, error: false }; } /** * Parses control frames. * @param {Buffer} body */ parseControlFrame(body) { const { opcode, payloadLength } = this.#info; if (opcode === opcodes.CLOSE) { if (payloadLength === 1) { failWebsocketConnection(this.ws, "Received close frame with a 1-byte body."); return false; } this.#info.closeInfo = this.parseCloseBody(body); if (this.#info.closeInfo.error) { const { code, reason } = this.#info.closeInfo; closeWebSocketConnection(this.ws, code, reason, reason.length); failWebsocketConnection(this.ws, reason); return false; } if (this.ws[kSentClose] !== sentCloseFrameState.SENT) { let body2 = emptyBuffer; if (this.#info.closeInfo.code) { body2 = Buffer.allocUnsafe(2); body2.writeUInt16BE(this.#info.closeInfo.code, 0); } const closeFrame = new WebsocketFrameSend(body2); this.ws[kResponse].socket.write( closeFrame.createFrame(opcodes.CLOSE), (err2) => { if (!err2) { this.ws[kSentClose] = sentCloseFrameState.SENT; } } ); } this.ws[kReadyState] = states.CLOSING; this.ws[kReceivedClose] = true; return false; } else if (opcode === opcodes.PING) { if (!this.ws[kReceivedClose]) { const frame = new WebsocketFrameSend(body); this.ws[kResponse].socket.write(frame.createFrame(opcodes.PONG)); if (channels.ping.hasSubscribers) { channels.ping.publish({ payload: body }); } } } else if (opcode === opcodes.PONG) { if (channels.pong.hasSubscribers) { channels.pong.publish({ payload: body }); } } return true; } get closingInfo() { return this.#info.closeInfo; } }; module2.exports = { ByteParser }; } }); // node_modules/undici/lib/web/websocket/sender.js var require_sender = __commonJS({ "node_modules/undici/lib/web/websocket/sender.js"(exports2, module2) { "use strict"; var { WebsocketFrameSend } = require_frame(); var { opcodes, sendHints } = require_constants5(); var FixedQueue = require_fixed_queue(); var FastBuffer = Buffer[Symbol.species]; var SendQueue = class { /** * @type {FixedQueue} */ #queue = new FixedQueue(); /** * @type {boolean} */ #running = false; /** @type {import('node:net').Socket} */ #socket; constructor(socket) { this.#socket = socket; } add(item, cb, hint) { if (hint !== sendHints.blob) { const frame = createFrame(item, hint); if (!this.#running) { this.#socket.write(frame, cb); } else { const node2 = { promise: null, callback: cb, frame }; this.#queue.push(node2); } return; } const node = { promise: item.arrayBuffer().then((ab) => { node.promise = null; node.frame = createFrame(ab, hint); }), callback: cb, frame: null }; this.#queue.push(node); if (!this.#running) { this.#run(); } } async #run() { this.#running = true; const queue = this.#queue; while (!queue.isEmpty()) { const node = queue.shift(); if (node.promise !== null) { await node.promise; } this.#socket.write(node.frame, node.callback); node.callback = node.frame = null; } this.#running = false; } }; function createFrame(data2, hint) { return new WebsocketFrameSend(toBuffer(data2, hint)).createFrame(hint === sendHints.string ? opcodes.TEXT : opcodes.BINARY); } function toBuffer(data2, hint) { switch (hint) { case sendHints.string: return Buffer.from(data2); case sendHints.arrayBuffer: case sendHints.blob: return new FastBuffer(data2); case sendHints.typedArray: return new FastBuffer(data2.buffer, data2.byteOffset, data2.byteLength); } } module2.exports = { SendQueue }; } }); // node_modules/undici/lib/web/websocket/websocket.js var require_websocket = __commonJS({ "node_modules/undici/lib/web/websocket/websocket.js"(exports2, module2) { "use strict"; var { webidl } = require_webidl(); var { URLSerializer } = require_data_url(); var { environmentSettingsObject } = require_util3(); var { staticPropertyDescriptors, states, sentCloseFrameState, sendHints } = require_constants5(); var { kWebSocketURL, kReadyState, kController, kBinaryType, kResponse, kSentClose, kByteParser } = require_symbols5(); var { isConnecting, isEstablished, isClosing, isValidSubprotocol, fireEvent } = require_util8(); var { establishWebSocketConnection, closeWebSocketConnection } = require_connection(); var { ByteParser } = require_receiver(); var { kEnumerableProperty, isBlobLike } = require_util2(); var { getGlobalDispatcher } = require_global2(); var { types } = require("node:util"); var { ErrorEvent, CloseEvent } = require_events(); var { SendQueue } = require_sender(); var WebSocket = class _WebSocket extends EventTarget { #events = { open: null, error: null, close: null, message: null }; #bufferedAmount = 0; #protocol = ""; #extensions = ""; /** @type {SendQueue} */ #sendQueue; /** * @param {string} url * @param {string|string[]} protocols */ constructor(url2, protocols = []) { super(); webidl.util.markAsUncloneable(this); const prefix = "WebSocket constructor"; webidl.argumentLengthCheck(arguments, 1, prefix); const options = webidl.converters["DOMString or sequence<DOMString> or WebSocketInit"](protocols, prefix, "options"); url2 = webidl.converters.USVString(url2, prefix, "url"); protocols = options.protocols; const baseURL = environmentSettingsObject.settingsObject.baseUrl; let urlRecord; try { urlRecord = new URL(url2, baseURL); } catch (e) { throw new DOMException(e, "SyntaxError"); } if (urlRecord.protocol === "http:") { urlRecord.protocol = "ws:"; } else if (urlRecord.protocol === "https:") { urlRecord.protocol = "wss:"; } if (urlRecord.protocol !== "ws:" && urlRecord.protocol !== "wss:") { throw new DOMException( `Expected a ws: or wss: protocol, got ${urlRecord.protocol}`, "SyntaxError" ); } if (urlRecord.hash || urlRecord.href.endsWith("#")) { throw new DOMException("Got fragment", "SyntaxError"); } if (typeof protocols === "string") { protocols = [protocols]; } if (protocols.length !== new Set(protocols.map((p) => p.toLowerCase())).size) { throw new DOMException("Invalid Sec-WebSocket-Protocol value", "SyntaxError"); } if (protocols.length > 0 && !protocols.every((p) => isValidSubprotocol(p))) { throw new DOMException("Invalid Sec-WebSocket-Protocol value", "SyntaxError"); } this[kWebSocketURL] = new URL(urlRecord.href); const client = environmentSettingsObject.settingsObject; this[kController] = establishWebSocketConnection( urlRecord, protocols, client, this, (response, extensions) => this.#onConnectionEstablished(response, extensions), options ); this[kReadyState] = _WebSocket.CONNECTING; this[kSentClose] = sentCloseFrameState.NOT_SENT; this[kBinaryType] = "blob"; } /** * @see https://websockets.spec.whatwg.org/#dom-websocket-close * @param {number|undefined} code * @param {string|undefined} reason */ close(code = void 0, reason = void 0) { webidl.brandCheck(this, _WebSocket); const prefix = "WebSocket.close"; if (code !== void 0) { code = webidl.converters["unsigned short"](code, prefix, "code", { clamp: true }); } if (reason !== void 0) { reason = webidl.converters.USVString(reason, prefix, "reason"); } if (code !== void 0) { if (code !== 1e3 && (code < 3e3 || code > 4999)) { throw new DOMException("invalid code", "InvalidAccessError"); } } let reasonByteLength = 0; if (reason !== void 0) { reasonByteLength = Buffer.byteLength(reason); if (reasonByteLength > 123) { throw new DOMException( `Reason must be less than 123 bytes; received ${reasonByteLength}`, "SyntaxError" ); } } closeWebSocketConnection(this, code, reason, reasonByteLength); } /** * @see https://websockets.spec.whatwg.org/#dom-websocket-send * @param {NodeJS.TypedArray|ArrayBuffer|Blob|string} data */ send(data2) { webidl.brandCheck(this, _WebSocket); const prefix = "WebSocket.send"; webidl.argumentLengthCheck(arguments, 1, prefix); data2 = webidl.converters.WebSocketSendData(data2, prefix, "data"); if (isConnecting(this)) { throw new DOMException("Sent before connected.", "InvalidStateError"); } if (!isEstablished(this) || isClosing(this)) { return; } if (typeof data2 === "string") { const length = Buffer.byteLength(data2); this.#bufferedAmount += length; this.#sendQueue.add(data2, () => { this.#bufferedAmount -= length; }, sendHints.string); } else if (types.isArrayBuffer(data2)) { this.#bufferedAmount += data2.byteLength; this.#sendQueue.add(data2, () => { this.#bufferedAmount -= data2.byteLength; }, sendHints.arrayBuffer); } else if (ArrayBuffer.isView(data2)) { this.#bufferedAmount += data2.byteLength; this.#sendQueue.add(data2, () => { this.#bufferedAmount -= data2.byteLength; }, sendHints.typedArray); } else if (isBlobLike(data2)) { this.#bufferedAmount += data2.size; this.#sendQueue.add(data2, () => { this.#bufferedAmount -= data2.size; }, sendHints.blob); } } get readyState() { webidl.brandCheck(this, _WebSocket); return this[kReadyState]; } get bufferedAmount() { webidl.brandCheck(this, _WebSocket); return this.#bufferedAmount; } get url() { webidl.brandCheck(this, _WebSocket); return URLSerializer(this[kWebSocketURL]); } get extensions() { webidl.brandCheck(this, _WebSocket); return this.#extensions; } get protocol() { webidl.brandCheck(this, _WebSocket); return this.#protocol; } get onopen() { webidl.brandCheck(this, _WebSocket); return this.#events.open; } set onopen(fn) { webidl.brandCheck(this, _WebSocket); if (this.#events.open) { this.removeEventListener("open", this.#events.open); } if (typeof fn === "function") { this.#events.open = fn; this.addEventListener("open", fn); } else { this.#events.open = null; } } get onerror() { webidl.brandCheck(this, _WebSocket); return this.#events.error; } set onerror(fn) { webidl.brandCheck(this, _WebSocket); if (this.#events.error) { this.removeEventListener("error", this.#events.error); } if (typeof fn === "function") { this.#events.error = fn; this.addEventListener("error", fn); } else { this.#events.error = null; } } get onclose() { webidl.brandCheck(this, _WebSocket); return this.#events.close; } set onclose(fn) { webidl.brandCheck(this, _WebSocket); if (this.#events.close) { this.removeEventListener("close", this.#events.close); } if (typeof fn === "function") { this.#events.close = fn; this.addEventListener("close", fn); } else { this.#events.close = null; } } get onmessage() { webidl.brandCheck(this, _WebSocket); return this.#events.message; } set onmessage(fn) { webidl.brandCheck(this, _WebSocket); if (this.#events.message) { this.removeEventListener("message", this.#events.message); } if (typeof fn === "function") { this.#events.message = fn; this.addEventListener("message", fn); } else { this.#events.message = null; } } get binaryType() { webidl.brandCheck(this, _WebSocket); return this[kBinaryType]; } set binaryType(type) { webidl.brandCheck(this, _WebSocket); if (type !== "blob" && type !== "arraybuffer") { this[kBinaryType] = "blob"; } else { this[kBinaryType] = type; } } /** * @see https://websockets.spec.whatwg.org/#feedback-from-the-protocol */ #onConnectionEstablished(response, parsedExtensions) { this[kResponse] = response; const parser = new ByteParser(this, parsedExtensions); parser.on("drain", onParserDrain); parser.on("error", onParserError.bind(this)); response.socket.ws = this; this[kByteParser] = parser; this.#sendQueue = new SendQueue(response.socket); this[kReadyState] = states.OPEN; const extensions = response.headersList.get("sec-websocket-extensions"); if (extensions !== null) { this.#extensions = extensions; } const protocol = response.headersList.get("sec-websocket-protocol"); if (protocol !== null) { this.#protocol = protocol; } fireEvent("open", this); } }; WebSocket.CONNECTING = WebSocket.prototype.CONNECTING = states.CONNECTING; WebSocket.OPEN = WebSocket.prototype.OPEN = states.OPEN; WebSocket.CLOSING = WebSocket.prototype.CLOSING = states.CLOSING; WebSocket.CLOSED = WebSocket.prototype.CLOSED = states.CLOSED; Object.defineProperties(WebSocket.prototype, { CONNECTING: staticPropertyDescriptors, OPEN: staticPropertyDescriptors, CLOSING: staticPropertyDescriptors, CLOSED: staticPropertyDescriptors, url: kEnumerableProperty, readyState: kEnumerableProperty, bufferedAmount: kEnumerableProperty, onopen: kEnumerableProperty, onerror: kEnumerableProperty, onclose: kEnumerableProperty, close: kEnumerableProperty, onmessage: kEnumerableProperty, binaryType: kEnumerableProperty, send: kEnumerableProperty, extensions: kEnumerableProperty, protocol: kEnumerableProperty, [Symbol.toStringTag]: { value: "WebSocket", writable: false, enumerable: false, configurable: true } }); Object.defineProperties(WebSocket, { CONNECTING: staticPropertyDescriptors, OPEN: staticPropertyDescriptors, CLOSING: staticPropertyDescriptors, CLOSED: staticPropertyDescriptors }); webidl.converters["sequence<DOMString>"] = webidl.sequenceConverter( webidl.converters.DOMString ); webidl.converters["DOMString or sequence<DOMString>"] = function(V, prefix, argument) { if (webidl.util.Type(V) === "Object" && Symbol.iterator in V) { return webidl.converters["sequence<DOMString>"](V); } return webidl.converters.DOMString(V, prefix, argument); }; webidl.converters.WebSocketInit = webidl.dictionaryConverter([ { key: "protocols", converter: webidl.converters["DOMString or sequence<DOMString>"], defaultValue: () => new Array(0) }, { key: "dispatcher", converter: webidl.converters.any, defaultValue: () => getGlobalDispatcher() }, { key: "headers", converter: webidl.nullableConverter(webidl.converters.HeadersInit) } ]); webidl.converters["DOMString or sequence<DOMString> or WebSocketInit"] = function(V) { if (webidl.util.Type(V) === "Object" && !(Symbol.iterator in V)) { return webidl.converters.WebSocketInit(V); } return { protocols: webidl.converters["DOMString or sequence<DOMString>"](V) }; }; webidl.converters.WebSocketSendData = function(V) { if (webidl.util.Type(V) === "Object") { if (isBlobLike(V)) { return webidl.converters.Blob(V, { strict: false }); } if (ArrayBuffer.isView(V) || types.isArrayBuffer(V)) { return webidl.converters.BufferSource(V); } } return webidl.converters.USVString(V); }; function onParserDrain() { this.ws[kResponse].socket.resume(); } function onParserError(err2) { let message; let code; if (err2 instanceof CloseEvent) { message = err2.reason; code = err2.code; } else { message = err2.message; } fireEvent("error", this, () => new ErrorEvent("error", { error: err2, message })); closeWebSocketConnection(this, code); } module2.exports = { WebSocket }; } }); // node_modules/undici/lib/web/eventsource/util.js var require_util9 = __commonJS({ "node_modules/undici/lib/web/eventsource/util.js"(exports2, module2) { "use strict"; function isValidLastEventId(value) { return value.indexOf("\0") === -1; } function isASCIINumber(value) { if (value.length === 0) return false; for (let i = 0; i < value.length; i++) { if (value.charCodeAt(i) < 48 || value.charCodeAt(i) > 57) return false; } return true; } function delay(ms) { return new Promise((resolve) => { setTimeout(resolve, ms).unref(); }); } module2.exports = { isValidLastEventId, isASCIINumber, delay }; } }); // node_modules/undici/lib/web/eventsource/eventsource-stream.js var require_eventsource_stream = __commonJS({ "node_modules/undici/lib/web/eventsource/eventsource-stream.js"(exports2, module2) { "use strict"; var { Transform: Transform2 } = require("node:stream"); var { isASCIINumber, isValidLastEventId } = require_util9(); var BOM = [239, 187, 191]; var LF = 10; var CR = 13; var COLON = 58; var SPACE = 32; var EventSourceStream = class extends Transform2 { /** * @type {eventSourceSettings} */ state = null; /** * Leading byte-order-mark check. * @type {boolean} */ checkBOM = true; /** * @type {boolean} */ crlfCheck = false; /** * @type {boolean} */ eventEndCheck = false; /** * @type {Buffer} */ buffer = null; pos = 0; event = { data: void 0, event: void 0, id: void 0, retry: void 0 }; /** * @param {object} options * @param {eventSourceSettings} options.eventSourceSettings * @param {Function} [options.push] */ constructor(options = {}) { options.readableObjectMode = true; super(options); this.state = options.eventSourceSettings || {}; if (options.push) { this.push = options.push; } } /** * @param {Buffer} chunk * @param {string} _encoding * @param {Function} callback * @returns {void} */ _transform(chunk, _encoding, callback) { if (chunk.length === 0) { callback(); return; } if (this.buffer) { this.buffer = Buffer.concat([this.buffer, chunk]); } else { this.buffer = chunk; } if (this.checkBOM) { switch (this.buffer.length) { case 1: if (this.buffer[0] === BOM[0]) { callback(); return; } this.checkBOM = false; callback(); return; case 2: if (this.buffer[0] === BOM[0] && this.buffer[1] === BOM[1]) { callback(); return; } this.checkBOM = false; break; case 3: if (this.buffer[0] === BOM[0] && this.buffer[1] === BOM[1] && this.buffer[2] === BOM[2]) { this.buffer = Buffer.alloc(0); this.checkBOM = false; callback(); return; } this.checkBOM = false; break; default: if (this.buffer[0] === BOM[0] && this.buffer[1] === BOM[1] && this.buffer[2] === BOM[2]) { this.buffer = this.buffer.subarray(3); } this.checkBOM = false; break; } } while (this.pos < this.buffer.length) { if (this.eventEndCheck) { if (this.crlfCheck) { if (this.buffer[this.pos] === LF) { this.buffer = this.buffer.subarray(this.pos + 1); this.pos = 0; this.crlfCheck = false; continue; } this.crlfCheck = false; } if (this.buffer[this.pos] === LF || this.buffer[this.pos] === CR) { if (this.buffer[this.pos] === CR) { this.crlfCheck = true; } this.buffer = this.buffer.subarray(this.pos + 1); this.pos = 0; if (this.event.data !== void 0 || this.event.event || this.event.id || this.event.retry) { this.processEvent(this.event); } this.clearEvent(); continue; } this.eventEndCheck = false; continue; } if (this.buffer[this.pos] === LF || this.buffer[this.pos] === CR) { if (this.buffer[this.pos] === CR) { this.crlfCheck = true; } this.parseLine(this.buffer.subarray(0, this.pos), this.event); this.buffer = this.buffer.subarray(this.pos + 1); this.pos = 0; this.eventEndCheck = true; continue; } this.pos++; } callback(); } /** * @param {Buffer} line * @param {EventStreamEvent} event */ parseLine(line, event) { if (line.length === 0) { return; } const colonPosition = line.indexOf(COLON); if (colonPosition === 0) { return; } let field = ""; let value = ""; if (colonPosition !== -1) { field = line.subarray(0, colonPosition).toString("utf8"); let valueStart = colonPosition + 1; if (line[valueStart] === SPACE) { ++valueStart; } value = line.subarray(valueStart).toString("utf8"); } else { field = line.toString("utf8"); value = ""; } switch (field) { case "data": if (event[field] === void 0) { event[field] = value; } else { event[field] += ` ${value}`; } break; case "retry": if (isASCIINumber(value)) { event[field] = value; } break; case "id": if (isValidLastEventId(value)) { event[field] = value; } break; case "event": if (value.length > 0) { event[field] = value; } break; } } /** * @param {EventSourceStreamEvent} event */ processEvent(event) { if (event.retry && isASCIINumber(event.retry)) { this.state.reconnectionTime = parseInt(event.retry, 10); } if (event.id && isValidLastEventId(event.id)) { this.state.lastEventId = event.id; } if (event.data !== void 0) { this.push({ type: event.event || "message", options: { data: event.data, lastEventId: this.state.lastEventId, origin: this.state.origin } }); } } clearEvent() { this.event = { data: void 0, event: void 0, id: void 0, retry: void 0 }; } }; module2.exports = { EventSourceStream }; } }); // node_modules/undici/lib/web/eventsource/eventsource.js var require_eventsource = __commonJS({ "node_modules/undici/lib/web/eventsource/eventsource.js"(exports2, module2) { "use strict"; var { pipeline } = require("node:stream"); var { fetching } = require_fetch(); var { makeRequest } = require_request2(); var { webidl } = require_webidl(); var { EventSourceStream } = require_eventsource_stream(); var { parseMIMEType } = require_data_url(); var { createFastMessageEvent } = require_events(); var { isNetworkError } = require_response(); var { delay } = require_util9(); var { kEnumerableProperty } = require_util2(); var { environmentSettingsObject } = require_util3(); var experimentalWarned = false; var defaultReconnectionTime = 3e3; var CONNECTING = 0; var OPEN = 1; var CLOSED = 2; var ANONYMOUS = "anonymous"; var USE_CREDENTIALS = "use-credentials"; var EventSource = class _EventSource extends EventTarget { #events = { open: null, error: null, message: null }; #url = null; #withCredentials = false; #readyState = CONNECTING; #request = null; #controller = null; #dispatcher; /** * @type {import('./eventsource-stream').eventSourceSettings} */ #state; /** * Creates a new EventSource object. * @param {string} url * @param {EventSourceInit} [eventSourceInitDict] * @see https://html.spec.whatwg.org/multipage/server-sent-events.html#the-eventsource-interface */ constructor(url2, eventSourceInitDict = {}) { super(); webidl.util.markAsUncloneable(this); const prefix = "EventSource constructor"; webidl.argumentLengthCheck(arguments, 1, prefix); if (!experimentalWarned) { experimentalWarned = true; process.emitWarning("EventSource is experimental, expect them to change at any time.", { code: "UNDICI-ES" }); } url2 = webidl.converters.USVString(url2, prefix, "url"); eventSourceInitDict = webidl.converters.EventSourceInitDict(eventSourceInitDict, prefix, "eventSourceInitDict"); this.#dispatcher = eventSourceInitDict.dispatcher; this.#state = { lastEventId: "", reconnectionTime: defaultReconnectionTime }; const settings = environmentSettingsObject; let urlRecord; try { urlRecord = new URL(url2, settings.settingsObject.baseUrl); this.#state.origin = urlRecord.origin; } catch (e) { throw new DOMException(e, "SyntaxError"); } this.#url = urlRecord.href; let corsAttributeState = ANONYMOUS; if (eventSourceInitDict.withCredentials) { corsAttributeState = USE_CREDENTIALS; this.#withCredentials = true; } const initRequest = { redirect: "follow", keepalive: true, // @see https://html.spec.whatwg.org/multipage/urls-and-fetching.html#cors-settings-attributes mode: "cors", credentials: corsAttributeState === "anonymous" ? "same-origin" : "omit", referrer: "no-referrer" }; initRequest.client = environmentSettingsObject.settingsObject; initRequest.headersList = [["accept", { name: "accept", value: "text/event-stream" }]]; initRequest.cache = "no-store"; initRequest.initiator = "other"; initRequest.urlList = [new URL(this.#url)]; this.#request = makeRequest(initRequest); this.#connect(); } /** * Returns the state of this EventSource object's connection. It can have the * values described below. * @returns {0|1|2} * @readonly */ get readyState() { return this.#readyState; } /** * Returns the URL providing the event stream. * @readonly * @returns {string} */ get url() { return this.#url; } /** * Returns a boolean indicating whether the EventSource object was * instantiated with CORS credentials set (true), or not (false, the default). */ get withCredentials() { return this.#withCredentials; } #connect() { if (this.#readyState === CLOSED) return; this.#readyState = CONNECTING; const fetchParams = { request: this.#request, dispatcher: this.#dispatcher }; const processEventSourceEndOfBody = (response) => { if (isNetworkError(response)) { this.dispatchEvent(new Event("error")); this.close(); } this.#reconnect(); }; fetchParams.processResponseEndOfBody = processEventSourceEndOfBody; fetchParams.processResponse = (response) => { if (isNetworkError(response)) { if (response.aborted) { this.close(); this.dispatchEvent(new Event("error")); return; } else { this.#reconnect(); return; } } const contentType = response.headersList.get("content-type", true); const mimeType = contentType !== null ? parseMIMEType(contentType) : "failure"; const contentTypeValid = mimeType !== "failure" && mimeType.essence === "text/event-stream"; if (response.status !== 200 || contentTypeValid === false) { this.close(); this.dispatchEvent(new Event("error")); return; } this.#readyState = OPEN; this.dispatchEvent(new Event("open")); this.#state.origin = response.urlList[response.urlList.length - 1].origin; const eventSourceStream = new EventSourceStream({ eventSourceSettings: this.#state, push: (event) => { this.dispatchEvent(createFastMessageEvent( event.type, event.options )); } }); pipeline( response.body.stream, eventSourceStream, (error) => { if (error?.aborted === false) { this.close(); this.dispatchEvent(new Event("error")); } } ); }; this.#controller = fetching(fetchParams); } /** * @see https://html.spec.whatwg.org/multipage/server-sent-events.html#sse-processing-model * @returns {Promise<void>} */ async #reconnect() { if (this.#readyState === CLOSED) return; this.#readyState = CONNECTING; this.dispatchEvent(new Event("error")); await delay(this.#state.reconnectionTime); if (this.#readyState !== CONNECTING) return; if (this.#state.lastEventId.length) { this.#request.headersList.set("last-event-id", this.#state.lastEventId, true); } this.#connect(); } /** * Closes the connection, if any, and sets the readyState attribute to * CLOSED. */ close() { webidl.brandCheck(this, _EventSource); if (this.#readyState === CLOSED) return; this.#readyState = CLOSED; this.#controller.abort(); this.#request = null; } get onopen() { return this.#events.open; } set onopen(fn) { if (this.#events.open) { this.removeEventListener("open", this.#events.open); } if (typeof fn === "function") { this.#events.open = fn; this.addEventListener("open", fn); } else { this.#events.open = null; } } get onmessage() { return this.#events.message; } set onmessage(fn) { if (this.#events.message) { this.removeEventListener("message", this.#events.message); } if (typeof fn === "function") { this.#events.message = fn; this.addEventListener("message", fn); } else { this.#events.message = null; } } get onerror() { return this.#events.error; } set onerror(fn) { if (this.#events.error) { this.removeEventListener("error", this.#events.error); } if (typeof fn === "function") { this.#events.error = fn; this.addEventListener("error", fn); } else { this.#events.error = null; } } }; var constantsPropertyDescriptors = { CONNECTING: { __proto__: null, configurable: false, enumerable: true, value: CONNECTING, writable: false }, OPEN: { __proto__: null, configurable: false, enumerable: true, value: OPEN, writable: false }, CLOSED: { __proto__: null, configurable: false, enumerable: true, value: CLOSED, writable: false } }; Object.defineProperties(EventSource, constantsPropertyDescriptors); Object.defineProperties(EventSource.prototype, constantsPropertyDescriptors); Object.defineProperties(EventSource.prototype, { close: kEnumerableProperty, onerror: kEnumerableProperty, onmessage: kEnumerableProperty, onopen: kEnumerableProperty, readyState: kEnumerableProperty, url: kEnumerableProperty, withCredentials: kEnumerableProperty }); webidl.converters.EventSourceInitDict = webidl.dictionaryConverter([ { key: "withCredentials", converter: webidl.converters.boolean, defaultValue: () => false }, { key: "dispatcher", // undici only converter: webidl.converters.any } ]); module2.exports = { EventSource, defaultReconnectionTime }; } }); // node_modules/undici/index.js var require_undici = __commonJS({ "node_modules/undici/index.js"(exports2, module2) { "use strict"; var Client = require_client(); var Dispatcher = require_dispatcher(); var Pool = require_pool(); var BalancedPool = require_balanced_pool(); var Agent = require_agent(); var ProxyAgent = require_proxy_agent(); var EnvHttpProxyAgent = require_env_http_proxy_agent(); var RetryAgent = require_retry_agent(); var errors = require_errors(); var util5 = require_util2(); var { InvalidArgumentError } = errors; var api = require_api(); var buildConnector = require_connect(); var MockClient = require_mock_client(); var MockAgent = require_mock_agent(); var MockPool = require_mock_pool(); var mockErrors = require_mock_errors(); var RetryHandler = require_retry_handler(); var { getGlobalDispatcher, setGlobalDispatcher } = require_global2(); var DecoratorHandler = require_decorator_handler(); var RedirectHandler = require_redirect_handler(); var createRedirectInterceptor = require_redirect_interceptor(); Object.assign(Dispatcher.prototype, api); module2.exports.Dispatcher = Dispatcher; module2.exports.Client = Client; module2.exports.Pool = Pool; module2.exports.BalancedPool = BalancedPool; module2.exports.Agent = Agent; module2.exports.ProxyAgent = ProxyAgent; module2.exports.EnvHttpProxyAgent = EnvHttpProxyAgent; module2.exports.RetryAgent = RetryAgent; module2.exports.RetryHandler = RetryHandler; module2.exports.DecoratorHandler = DecoratorHandler; module2.exports.RedirectHandler = RedirectHandler; module2.exports.createRedirectInterceptor = createRedirectInterceptor; module2.exports.interceptors = { redirect: require_redirect(), retry: require_retry(), dump: require_dump(), dns: require_dns() }; module2.exports.buildConnector = buildConnector; module2.exports.errors = errors; module2.exports.util = { parseHeaders: util5.parseHeaders, headerNameToString: util5.headerNameToString }; function makeDispatcher(fn) { return (url2, opts, handler) => { if (typeof opts === "function") { handler = opts; opts = null; } if (!url2 || typeof url2 !== "string" && typeof url2 !== "object" && !(url2 instanceof URL)) { throw new InvalidArgumentError("invalid url"); } if (opts != null && typeof opts !== "object") { throw new InvalidArgumentError("invalid opts"); } if (opts && opts.path != null) { if (typeof opts.path !== "string") { throw new InvalidArgumentError("invalid opts.path"); } let path = opts.path; if (!opts.path.startsWith("/")) { path = `/${path}`; } url2 = new URL(util5.parseOrigin(url2).origin + path); } else { if (!opts) { opts = typeof url2 === "object" ? url2 : {}; } url2 = util5.parseURL(url2); } const { agent, dispatcher = getGlobalDispatcher() } = opts; if (agent) { throw new InvalidArgumentError("unsupported opts.agent. Did you mean opts.client?"); } return fn.call(dispatcher, { ...opts, origin: url2.origin, path: url2.search ? `${url2.pathname}${url2.search}` : url2.pathname, method: opts.method || (opts.body ? "PUT" : "GET") }, handler); }; } module2.exports.setGlobalDispatcher = setGlobalDispatcher; module2.exports.getGlobalDispatcher = getGlobalDispatcher; var fetchImpl = require_fetch().fetch; module2.exports.fetch = async function fetch3(init, options = void 0) { try { return await fetchImpl(init, options); } catch (err2) { if (err2 && typeof err2 === "object") { Error.captureStackTrace(err2); } throw err2; } }; module2.exports.Headers = require_headers().Headers; module2.exports.Response = require_response().Response; module2.exports.Request = require_request2().Request; module2.exports.FormData = require_formdata().FormData; module2.exports.File = globalThis.File ?? require("node:buffer").File; module2.exports.FileReader = require_filereader().FileReader; var { setGlobalOrigin, getGlobalOrigin } = require_global(); module2.exports.setGlobalOrigin = setGlobalOrigin; module2.exports.getGlobalOrigin = getGlobalOrigin; var { CacheStorage } = require_cachestorage(); var { kConstruct } = require_symbols4(); module2.exports.caches = new CacheStorage(kConstruct); var { deleteCookie, getCookies, getSetCookies, setCookie } = require_cookies(); module2.exports.deleteCookie = deleteCookie; module2.exports.getCookies = getCookies; module2.exports.getSetCookies = getSetCookies; module2.exports.setCookie = setCookie; var { parseMIMEType, serializeAMimeType } = require_data_url(); module2.exports.parseMIMEType = parseMIMEType; module2.exports.serializeAMimeType = serializeAMimeType; var { CloseEvent, ErrorEvent, MessageEvent } = require_events(); module2.exports.WebSocket = require_websocket().WebSocket; module2.exports.CloseEvent = CloseEvent; module2.exports.ErrorEvent = ErrorEvent; module2.exports.MessageEvent = MessageEvent; module2.exports.request = makeDispatcher(api.request); module2.exports.stream = makeDispatcher(api.stream); module2.exports.pipeline = makeDispatcher(api.pipeline); module2.exports.connect = makeDispatcher(api.connect); module2.exports.upgrade = makeDispatcher(api.upgrade); module2.exports.MockClient = MockClient; module2.exports.MockPool = MockPool; module2.exports.MockAgent = MockAgent; module2.exports.mockErrors = mockErrors; var { EventSource } = require_eventsource(); module2.exports.EventSource = EventSource; } }); // node_modules/whatwg-mimetype/lib/utils.js var require_utils2 = __commonJS({ "node_modules/whatwg-mimetype/lib/utils.js"(exports2) { "use strict"; exports2.removeLeadingAndTrailingHTTPWhitespace = (string) => { return string.replace(/^[ \t\n\r]+/u, "").replace(/[ \t\n\r]+$/u, ""); }; exports2.removeTrailingHTTPWhitespace = (string) => { return string.replace(/[ \t\n\r]+$/u, ""); }; exports2.isHTTPWhitespaceChar = (char) => { return char === " " || char === " " || char === "\n" || char === "\r"; }; exports2.solelyContainsHTTPTokenCodePoints = (string) => { return /^[-!#$%&'*+.^_`|~A-Za-z0-9]*$/u.test(string); }; exports2.soleyContainsHTTPQuotedStringTokenCodePoints = (string) => { return /^[\t\u0020-\u007E\u0080-\u00FF]*$/u.test(string); }; exports2.asciiLowercase = (string) => { return string.replace(/[A-Z]/ug, (l) => l.toLowerCase()); }; exports2.collectAnHTTPQuotedString = (input, position) => { let value = ""; position++; while (true) { while (position < input.length && input[position] !== '"' && input[position] !== "\\") { value += input[position]; ++position; } if (position >= input.length) { break; } const quoteOrBackslash = input[position]; ++position; if (quoteOrBackslash === "\\") { if (position >= input.length) { value += "\\"; break; } value += input[position]; ++position; } else { break; } } return [value, position]; }; } }); // node_modules/whatwg-mimetype/lib/mime-type-parameters.js var require_mime_type_parameters = __commonJS({ "node_modules/whatwg-mimetype/lib/mime-type-parameters.js"(exports2, module2) { "use strict"; var { asciiLowercase, solelyContainsHTTPTokenCodePoints, soleyContainsHTTPQuotedStringTokenCodePoints } = require_utils2(); module2.exports = class MIMETypeParameters { constructor(map2) { this._map = map2; } get size() { return this._map.size; } get(name) { name = asciiLowercase(String(name)); return this._map.get(name); } has(name) { name = asciiLowercase(String(name)); return this._map.has(name); } set(name, value) { name = asciiLowercase(String(name)); value = String(value); if (!solelyContainsHTTPTokenCodePoints(name)) { throw new Error(`Invalid MIME type parameter name "${name}": only HTTP token code points are valid.`); } if (!soleyContainsHTTPQuotedStringTokenCodePoints(value)) { throw new Error(`Invalid MIME type parameter value "${value}": only HTTP quoted-string token code points are valid.`); } return this._map.set(name, value); } clear() { this._map.clear(); } delete(name) { name = asciiLowercase(String(name)); return this._map.delete(name); } forEach(callbackFn, thisArg) { this._map.forEach(callbackFn, thisArg); } keys() { return this._map.keys(); } values() { return this._map.values(); } entries() { return this._map.entries(); } [Symbol.iterator]() { return this._map[Symbol.iterator](); } }; } }); // node_modules/whatwg-mimetype/lib/parser.js var require_parser = __commonJS({ "node_modules/whatwg-mimetype/lib/parser.js"(exports2, module2) { "use strict"; var { removeLeadingAndTrailingHTTPWhitespace, removeTrailingHTTPWhitespace, isHTTPWhitespaceChar, solelyContainsHTTPTokenCodePoints, soleyContainsHTTPQuotedStringTokenCodePoints, asciiLowercase, collectAnHTTPQuotedString } = require_utils2(); module2.exports = (input) => { input = removeLeadingAndTrailingHTTPWhitespace(input); let position = 0; let type = ""; while (position < input.length && input[position] !== "/") { type += input[position]; ++position; } if (type.length === 0 || !solelyContainsHTTPTokenCodePoints(type)) { return null; } if (position >= input.length) { return null; } ++position; let subtype = ""; while (position < input.length && input[position] !== ";") { subtype += input[position]; ++position; } subtype = removeTrailingHTTPWhitespace(subtype); if (subtype.length === 0 || !solelyContainsHTTPTokenCodePoints(subtype)) { return null; } const mimeType = { type: asciiLowercase(type), subtype: asciiLowercase(subtype), parameters: /* @__PURE__ */ new Map() }; while (position < input.length) { ++position; while (isHTTPWhitespaceChar(input[position])) { ++position; } let parameterName = ""; while (position < input.length && input[position] !== ";" && input[position] !== "=") { parameterName += input[position]; ++position; } parameterName = asciiLowercase(parameterName); if (position < input.length) { if (input[position] === ";") { continue; } ++position; } let parameterValue = null; if (input[position] === '"') { [parameterValue, position] = collectAnHTTPQuotedString(input, position); while (position < input.length && input[position] !== ";") { ++position; } } else { parameterValue = ""; while (position < input.length && input[position] !== ";") { parameterValue += input[position]; ++position; } parameterValue = removeTrailingHTTPWhitespace(parameterValue); if (parameterValue === "") { continue; } } if (parameterName.length > 0 && solelyContainsHTTPTokenCodePoints(parameterName) && soleyContainsHTTPQuotedStringTokenCodePoints(parameterValue) && !mimeType.parameters.has(parameterName)) { mimeType.parameters.set(parameterName, parameterValue); } } return mimeType; }; } }); // node_modules/whatwg-mimetype/lib/serializer.js var require_serializer = __commonJS({ "node_modules/whatwg-mimetype/lib/serializer.js"(exports2, module2) { "use strict"; var { solelyContainsHTTPTokenCodePoints } = require_utils2(); module2.exports = (mimeType) => { let serialization = `${mimeType.type}/${mimeType.subtype}`; if (mimeType.parameters.size === 0) { return serialization; } for (let [name, value] of mimeType.parameters) { serialization += ";"; serialization += name; serialization += "="; if (!solelyContainsHTTPTokenCodePoints(value) || value.length === 0) { value = value.replace(/(["\\])/ug, "\\$1"); value = `"${value}"`; } serialization += value; } return serialization; }; } }); // node_modules/whatwg-mimetype/lib/mime-type.js var require_mime_type = __commonJS({ "node_modules/whatwg-mimetype/lib/mime-type.js"(exports2, module2) { "use strict"; var MIMETypeParameters = require_mime_type_parameters(); var parse8 = require_parser(); var serialize3 = require_serializer(); var { asciiLowercase, solelyContainsHTTPTokenCodePoints } = require_utils2(); module2.exports = class MIMEType { constructor(string) { string = String(string); const result = parse8(string); if (result === null) { throw new Error(`Could not parse MIME type string "${string}"`); } this._type = result.type; this._subtype = result.subtype; this._parameters = new MIMETypeParameters(result.parameters); } static parse(string) { try { return new this(string); } catch (e) { return null; } } get essence() { return `${this.type}/${this.subtype}`; } get type() { return this._type; } set type(value) { value = asciiLowercase(String(value)); if (value.length === 0) { throw new Error("Invalid type: must be a non-empty string"); } if (!solelyContainsHTTPTokenCodePoints(value)) { throw new Error(`Invalid type ${value}: must contain only HTTP token code points`); } this._type = value; } get subtype() { return this._subtype; } set subtype(value) { value = asciiLowercase(String(value)); if (value.length === 0) { throw new Error("Invalid subtype: must be a non-empty string"); } if (!solelyContainsHTTPTokenCodePoints(value)) { throw new Error(`Invalid subtype ${value}: must contain only HTTP token code points`); } this._subtype = value; } get parameters() { return this._parameters; } toString() { return serialize3(this); } isJavaScript({ prohibitParameters = false } = {}) { switch (this._type) { case "text": { switch (this._subtype) { case "ecmascript": case "javascript": case "javascript1.0": case "javascript1.1": case "javascript1.2": case "javascript1.3": case "javascript1.4": case "javascript1.5": case "jscript": case "livescript": case "x-ecmascript": case "x-javascript": { return !prohibitParameters || this._parameters.size === 0; } default: { return false; } } } case "application": { switch (this._subtype) { case "ecmascript": case "javascript": case "x-ecmascript": case "x-javascript": { return !prohibitParameters || this._parameters.size === 0; } default: { return false; } } } default: { return false; } } } isXML() { return this._subtype === "xml" && (this._type === "text" || this._type === "application") || this._subtype.endsWith("+xml"); } isHTML() { return this._subtype === "html" && this._type === "text"; } }; } }); // node_modules/cheerio/dist/esm/index.js var undici, import_whatwg_mimetype; var init_esm11 = __esm({ "node_modules/cheerio/dist/esm/index.js"() { init_load_parse(); init_static(); init_dist2(); init_esm9(); init_dist3(); init_esm10(); undici = __toESM(require_undici(), 1); import_whatwg_mimetype = __toESM(require_mime_type(), 1); init_options(); init_load_parse(); } }); // src/utils/search.js function getRandomUserAgent() { return USER_AGENTS[Math.floor(Math.random() * USER_AGENTS.length)]; } function getCacheKey(query, page) { return `${query}-${page}`; } function clearOldCache() { const now = Date.now(); for (const [key, value] of resultsCache.entries()) { if (now - value.timestamp > CACHE_DURATION) { resultsCache.delete(key); } } } function extractDirectUrl(duckduckgoUrl) { try { if (duckduckgoUrl.startsWith("//")) { duckduckgoUrl = "https:" + duckduckgoUrl; } else if (duckduckgoUrl.startsWith("/")) { duckduckgoUrl = "https://duckduckgo.com" + duckduckgoUrl; } const url2 = new URL(duckduckgoUrl); if (url2.hostname === "duckduckgo.com" && url2.pathname === "/l/") { const uddg = url2.searchParams.get("uddg"); if (uddg) { return decodeURIComponent(uddg); } } if (url2.hostname === "duckduckgo.com" && url2.pathname === "/y.js") { const u3 = url2.searchParams.get("u3"); if (u3) { try { const decodedU3 = decodeURIComponent(u3); const u3Url = new URL(decodedU3); const clickUrl = u3Url.searchParams.get("ld"); if (clickUrl) { return decodeURIComponent(clickUrl); } return decodedU3; } catch { return duckduckgoUrl; } } } return duckduckgoUrl; } catch { const urlMatch = duckduckgoUrl.match(/https?:\/\/[^\s<>"]+/); if (urlMatch) { return urlMatch[0]; } return duckduckgoUrl; } } function getFaviconUrl(url2) { try { const urlObj = new URL(url2); return `https://www.google.com/s2/favicons?domain=${urlObj.hostname}&sz=32`; } catch { return ""; } } async function searchDuckDuckGo(query, page = 1, numResults = 10) { try { clearOldCache(); const startIndex = (page - 1) * RESULTS_PER_PAGE; const cacheKey = getCacheKey(query, page); const cachedResults = resultsCache.get(cacheKey); if (cachedResults && Date.now() - cachedResults.timestamp < CACHE_DURATION) { return cachedResults.results.slice(0, numResults); } const userAgent = getRandomUserAgent(); const response = await axios_default.get( `https://duckduckgo.com/html/?q=${encodeURIComponent(query)}&s=${startIndex}`, { headers: { "User-Agent": userAgent }, httpsAgent } ); if (response.status !== 200) { throw new Error("Failed to fetch search results"); } const html3 = response.data; const $2 = load(html3); const results = []; $2(".result").each((i, result) => { const $result = $2(result); const titleEl = $result.find(".result__title a"); const linkEl = $result.find(".result__url"); const snippetEl = $result.find(".result__snippet"); const title = titleEl.text()?.trim(); const rawLink = titleEl.attr("href"); const description = snippetEl.text()?.trim(); const displayUrl = linkEl.text()?.trim(); const directLink = extractDirectUrl(rawLink || ""); const favicon = getFaviconUrl(directLink); if (title && directLink) { results.push({ title, url: directLink, snippet: description || "", favicon, displayUrl: displayUrl || "" }); } }); const paginatedResults = results.slice(0, numResults); resultsCache.set(cacheKey, { results: paginatedResults, timestamp: Date.now() }); if (resultsCache.size > MAX_CACHE_PAGES) { const oldestKey = Array.from(resultsCache.keys())[0]; resultsCache.delete(oldestKey); } return paginatedResults; } catch (error) { console.error("Error searching DuckDuckGo:", error.message); throw error; } } async function fetchUrlContent(url2, options = {}) { try { const { extractMainContent = true, includeLinks = true, includeImages = true, excludeTags = ["script", "style", "noscript", "iframe", "svg", "nav", "footer", "header", "aside"] } = options; const userAgent = getRandomUserAgent(); const response = await axios_default.get(url2, { headers: { "User-Agent": userAgent }, timeout: 1e4, // 10 second timeout httpsAgent }); if (response.status !== 200) { throw new Error(`Failed to fetch URL: ${url2}`); } const contentType = response.headers["content-type"] || ""; if (contentType.includes("text/html")) { const $2 = load(response.data); excludeTags.forEach((tag) => { $2(tag).remove(); }); const unwantedSelectors = [ '[id*="ad"]', '[class*="ad"]', '[id*="banner"]', '[class*="banner"]', '[id*="popup"]', '[class*="popup"]', '[class*="cookie"]', '[id*="cookie"]', '[class*="newsletter"]', '[id*="newsletter"]', '[class*="social"]', '[id*="social"]', '[class*="share"]', '[id*="share"]' ]; unwantedSelectors.forEach((selector) => { try { $2(selector).remove(); } catch (e) { } }); if (!includeLinks) { $2("a").each((i, link) => { $2(link).replaceWith($2(link).text()); }); } if (!includeImages) { $2("img").remove(); } else { $2("img").each((i, img) => { const alt = $2(img).attr("alt"); if (alt) { $2(img).replaceWith(`[Image: ${alt}]`); } else { $2(img).remove(); } }); } if (extractMainContent) { const contentSelectors = [ "article", "main", '[role="main"]', ".post-content", ".article-content", ".content", "#content", ".post", ".article", ".entry-content", ".page-content", ".post-body", ".post-text", ".story-body" ]; for (const selector of contentSelectors) { const mainContent = $2(selector).first(); if (mainContent.length > 0) { return cleanText(mainContent.text()); } } } return cleanText($2("body").text()); } return response.data.toString(); } catch (error) { console.error("Error fetching URL content:", error.message); throw error; } } function cleanText(text3) { return text3.replace(/\s+/g, " ").replace(/\n\s*\n/g, "\n\n").replace(/^\s+|\s+$/g, "").trim(); } async function extractUrlMetadata(url2) { try { const userAgent = getRandomUserAgent(); const response = await axios_default.get(url2, { headers: { "User-Agent": userAgent }, httpsAgent }); if (response.status !== 200) { throw new Error(`Failed to fetch URL: ${url2}`); } const $2 = load(response.data); const title = $2("title").text() || ""; const description = $2('meta[name="description"]').attr("content") || $2('meta[property="og:description"]').attr("content") || ""; const ogImage = $2('meta[property="og:image"]').attr("content") || ""; const favicon = $2('link[rel="icon"]').attr("href") || $2('link[rel="shortcut icon"]').attr("href") || ""; const resolvedFavicon = favicon ? new URL(favicon, url2).href : getFaviconUrl(url2); const resolvedOgImage = ogImage ? new URL(ogImage, url2).href : ""; return { title, description, ogImage: resolvedOgImage, favicon: resolvedFavicon, url: url2 }; } catch (error) { console.error("Error extracting URL metadata:", error.message); throw error; } } var import_https2, RESULTS_PER_PAGE, MAX_CACHE_PAGES, USER_AGENTS, resultsCache, CACHE_DURATION, httpsAgent; var init_search = __esm({ "src/utils/search.js"() { init_axios2(); init_esm11(); import_https2 = __toESM(require("https"), 1); RESULTS_PER_PAGE = 10; MAX_CACHE_PAGES = 5; USER_AGENTS = [ "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) Edge/120.0.0.0", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.2.1 Safari/605.1.15", "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:122.0) Gecko/20100101 Firefox/122.0", "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36" ]; resultsCache = /* @__PURE__ */ new Map(); CACHE_DURATION = 5 * 60 * 1e3; httpsAgent = new import_https2.default.Agent({ rejectUnauthorized: true, // Keep security enabled keepAlive: true, timeout: 1e4, // Provide fallback for certificate issues while maintaining security secureProtocol: "TLSv1_2_method" }); } }); // src/tools/searchTool.js async function searchToolHandler(params) { const { query, page = 1, numResults = 10 } = params; console.log(`Searching for: ${query} (page ${page}, ${numResults} results)`); const results = await searchDuckDuckGo(query, page, numResults); console.log(`Found ${results.length} results`); const formattedResults = results.map( (result, index2) => `${index2 + 1}. [${result.title}](${result.url}) ${result.snippet}` ).join("\n\n"); return { content: [ { type: "text", text: formattedResults || "No results found." } ] }; } var searchToolDefinition; var init_searchTool = __esm({ "src/tools/searchTool.js"() { init_search(); searchToolDefinition = { name: "web-search", title: "Web Search", description: "Search the web using DuckDuckGo and return comprehensive results with titles, URLs, and snippets", inputSchema: { type: "object", properties: { query: { type: "string", description: "The search query to find relevant web pages" }, page: { type: "integer", description: "Page number for pagination (default: 1)", default: 1, minimum: 1 }, numResults: { type: "integer", description: "Number of results to return per page (default: 10, max: 20)", default: 10, minimum: 1, maximum: 20 } }, required: ["query"] } }; } }); // src/tools/fetchUrlTool.js async function fetchUrlToolHandler(params) { const { url: url2, maxLength = 1e4, extractMainContent = true, includeLinks = true, includeImages = true, excludeTags = ["script", "style", "noscript", "iframe", "svg", "nav", "footer", "header", "aside"] } = params; console.log(`Fetching content from URL: ${url2} (maxLength: ${maxLength})`); try { const content = await fetchUrlContent(url2, { extractMainContent, includeLinks, includeImages, excludeTags }); const truncatedContent = content.length > maxLength ? content.substring(0, maxLength) + "... [Content truncated due to length]" : content; const metadata = ` --- Extraction settings: - URL: ${url2} - Main content extraction: ${extractMainContent ? "Enabled" : "Disabled"} - Links included: ${includeLinks ? "Yes" : "No"} - Images included: ${includeImages ? "Yes (as alt text)" : "No"} - Content length: ${content.length} characters${content.length > maxLength ? ` (truncated to ${maxLength})` : ""} --- `; return { content: [ { type: "text", text: truncatedContent + metadata } ] }; } catch (error) { console.error(`Error fetching URL ${url2}:`, error); return { isError: true, content: [ { type: "text", text: `Error fetching URL: ${error.message}` } ] }; } } var fetchUrlToolDefinition; var init_fetchUrlTool = __esm({ "src/tools/fetchUrlTool.js"() { init_search(); fetchUrlToolDefinition = { name: "fetch-url", title: "Fetch URL Content", description: "Fetch and extract the main content from any URL, with customizable extraction options for text, links, and images", inputSchema: { type: "object", properties: { url: { type: "string", description: "The URL to fetch content from (must be a valid HTTP/HTTPS URL)" }, maxLength: { type: "integer", description: "Maximum length of content to return in characters (default: 10000)", default: 1e4, minimum: 1e3, maximum: 5e4 }, extractMainContent: { type: "boolean", description: "Whether to attempt to extract main content only, filtering out navigation and ads (default: true)", default: true }, includeLinks: { type: "boolean", description: "Whether to include link text in the extracted content (default: true)", default: true }, includeImages: { type: "boolean", description: "Whether to include image alt text in the extracted content (default: true)", default: true }, excludeTags: { type: "array", description: "HTML tags to exclude from extraction (default: script, style, etc.)", items: { type: "string" } } }, required: ["url"] } }; } }); // src/tools/metadataTool.js async function metadataToolHandler(params) { const { url: url2 } = params; console.log(`Extracting metadata from URL: ${url2}`); const metadata = await extractUrlMetadata(url2); const formattedMetadata = ` ## URL Metadata for ${url2} **Title:** ${metadata.title} **Description:** ${metadata.description} **Image:** ${metadata.ogImage || "None"} **Favicon:** ${metadata.favicon || "None"} `.trim(); return { content: [ { type: "text", text: formattedMetadata } ] }; } var metadataToolDefinition; var init_metadataTool = __esm({ "src/tools/metadataTool.js"() { init_search(); metadataToolDefinition = { name: "url-metadata", title: "URL Metadata Extractor", description: "Extract metadata from a URL including title, description, Open Graph data, and favicon information", inputSchema: { type: "object", properties: { url: { type: "string", description: "The URL to extract metadata from (must be a valid HTTP/HTTPS URL)" } }, required: ["url"] } }; } }); // node_modules/uuid/dist/esm-node/rng.js function rng() { if (poolPtr > rnds8Pool.length - 16) { import_crypto2.default.randomFillSync(rnds8Pool); poolPtr = 0; } return rnds8Pool.slice(poolPtr, poolPtr += 16); } var import_crypto2, rnds8Pool, poolPtr; var init_rng = __esm({ "node_modules/uuid/dist/esm-node/rng.js"() { import_crypto2 = __toESM(require("crypto")); rnds8Pool = new Uint8Array(256); poolPtr = rnds8Pool.length; } }); // node_modules/uuid/dist/esm-node/stringify.js function unsafeStringify(arr, offset = 0) { return byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + "-" + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + "-" + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + "-" + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + "-" + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]; } var byteToHex; var init_stringify2 = __esm({ "node_modules/uuid/dist/esm-node/stringify.js"() { byteToHex = []; for (let i = 0; i < 256; ++i) { byteToHex.push((i + 256).toString(16).slice(1)); } } }); // node_modules/uuid/dist/esm-node/native.js var import_crypto3, native_default; var init_native = __esm({ "node_modules/uuid/dist/esm-node/native.js"() { import_crypto3 = __toESM(require("crypto")); native_default = { randomUUID: import_crypto3.default.randomUUID }; } }); // node_modules/uuid/dist/esm-node/v4.js function v4(options, buf, offset) { if (native_default.randomUUID && !buf && !options) { return native_default.randomUUID(); } options = options || {}; const rnds = options.random || (options.rng || rng)(); rnds[6] = rnds[6] & 15 | 64; rnds[8] = rnds[8] & 63 | 128; if (buf) { offset = offset || 0; for (let i = 0; i < 16; ++i) { buf[offset + i] = rnds[i]; } return buf; } return unsafeStringify(rnds); } var v4_default; var init_v4 = __esm({ "node_modules/uuid/dist/esm-node/v4.js"() { init_native(); init_rng(); init_stringify2(); v4_default = v4; } }); // node_modules/uuid/dist/esm-node/index.js var init_esm_node = __esm({ "node_modules/uuid/dist/esm-node/index.js"() { init_v4(); } }); // src/utils/search_felo.js function getRandomUserAgent2() { return USER_AGENTS2[Math.floor(Math.random() * USER_AGENTS2.length)]; } function getCacheKey2(query) { return `felo-${query}`; } function clearOldCache2() { const now = Date.now(); for (const [key, value] of resultsCache2.entries()) { if (now - value.timestamp > CACHE_DURATION2) { resultsCache2.delete(key); } } } async function searchFelo(prompt, stream5 = false, raw = false) { clearOldCache2(); if (!stream5) { const cacheKey = getCacheKey2(prompt); const cachedResults = resultsCache2.get(cacheKey); if (cachedResults && Date.now() - cachedResults.timestamp < CACHE_DURATION2) { return cachedResults.results; } } const payload = { query: prompt, search_uuid: v4_default().replace(/-/g, ""), // Remove dashes like in reference lang: "", agent_lang: "en", search_options: { langcode: "en-US", search_image: true, search_video: true }, search_video: true, model: "", contexts_from: "google", auto_routing: true }; feloSession.defaults.headers["user-agent"] = getRandomUserAgent2(); async function* streamFunction() { try { const response = await feloSession.post("https://api.felo.ai/search/threads", payload, { responseType: "stream" }); if (response.status !== 200) { throw new Error(`Failed to generate response - (${response.status}, ${response.statusText}) - ${response.data}`); } let streamingText = ""; let buffer = ""; for await (const chunk of response.data) { buffer += chunk.toString(); const lines = buffer.split("\n"); buffer = lines.pop() || ""; for (const line of lines) { if (line.startsWith("data:")) { try { const dataStr = line.substring(5).trim(); if (dataStr) { const data2 = JSON.parse(dataStr); if (data2.type === "answer" && "text" in data2.data) { const newText = data2.data.text; if (newText.length > streamingText.length) { const delta = newText.substring(streamingText.length); streamingText = newText; if (raw) { yield { text: delta }; } else { yield new Response2(delta).toString(); } } } } } catch (error) { console.debug("JSON parse error:", error.message); } } } } if (streamingText) { resultsCache2.set(getCacheKey2(prompt), { results: streamingText, timestamp: Date.now() }); } } catch (error) { console.error("Error searching Felo:", error.message); if (error.response) { const status = error.response.status; const statusText = error.response.statusText; const data2 = error.response.data; throw new Error(`Felo API error: ${status} ${statusText} - ${data2}`); } throw new Error(`Failed to search Felo: ${error.message}`); } } if (stream5) { return streamFunction(); } let fullResponse = ""; try { for await (const chunk of streamFunction()) { if (raw) { fullResponse += chunk.text; } else { fullResponse += chunk; } } return fullResponse; } catch (error) { console.error("Error in non-streaming Felo search:", error.message); throw error; } } var import_https3, USER_AGENTS2, resultsCache2, CACHE_DURATION2, httpsAgent2, feloSession, Response2; var init_search_felo = __esm({ "src/utils/search_felo.js"() { init_axios2(); init_esm_node(); import_https3 = __toESM(require("https"), 1); USER_AGENTS2 = [ "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) Edge/120.0.0.0", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.2.1 Safari/605.1.15", "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:122.0) Gecko/20100101 Firefox/122.0", "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36" ]; resultsCache2 = /* @__PURE__ */ new Map(); CACHE_DURATION2 = 5 * 60 * 1e3; httpsAgent2 = new import_https3.default.Agent({ rejectUnauthorized: true, // Keep security enabled keepAlive: true, timeout: 3e4, // Provide fallback for certificate issues while maintaining security secureProtocol: "TLSv1_2_method" }); feloSession = axios_default.create({ timeout: 3e4, httpsAgent: httpsAgent2, headers: { "accept": "*/*", "accept-encoding": "gzip, deflate, br, zstd", "accept-language": "en-US,en;q=0.9,en-IN;q=0.8", "content-type": "application/json", "dnt": "1", "origin": "https://felo.ai", "referer": "https://felo.ai/", "sec-ch-ua": '"Not)A;Brand";v="99", "Microsoft Edge";v="127", "Chromium";v="127"', "sec-ch-ua-mobile": "?0", "sec-ch-ua-platform": '"Windows"', "sec-fetch-dest": "empty", "sec-fetch-mode": "cors", "sec-fetch-site": "same-site", "user-agent": getRandomUserAgent2() } }); Response2 = class { /** * Create a new Response * @param {string} text - The text content of the response */ constructor(text3) { this.text = text3; } /** * String representation of the response * @returns {string} The text content */ toString() { return this.text; } }; } }); // src/tools/feloTool.js async function feloToolHandler(params) { const { query, stream: stream5 = false } = params; console.log(`Searching Felo AI for: "${query}" (stream: ${stream5})`); try { if (stream5) { let fullResponse = ""; const chunks = []; for await (const chunk of await searchFelo(query, true)) { chunks.push(chunk); fullResponse += chunk; } return { content: [ { type: "text", text: fullResponse || "No results found." } ] }; } else { const response = await searchFelo(query, false); return { content: [ { type: "text", text: response || "No results found." } ] }; } } catch (error) { console.error(`Error in Felo search: ${error.message}`); return { isError: true, content: [ { type: "text", text: `Error searching Felo: ${error.message}` } ] }; } } var feloToolDefinition; var init_feloTool = __esm({ "src/tools/feloTool.js"() { init_search_felo(); feloToolDefinition = { name: "felo-search", title: "Felo AI Advanced Search", description: "Advanced AI-powered web search for technical intelligence. Retrieves up-to-date information including software releases, security advisories, migration guides, benchmarks, developer documentation, and community insights. Supports both standard and streaming responses.", inputSchema: { type: "object", properties: { query: { type: "string", description: "A detailed search query or prompt describing the technical information needed. Supports natural language and keyword-based queries for precise results." }, stream: { type: "boolean", description: "Enable streaming mode to receive incremental, real-time search results as they are discovered. Useful for monitoring live updates or large result sets. Default is false (returns full result at once).", default: false } }, required: ["query"] }, annotations: { readOnlyHint: true, openWorldHint: false } }; } }); // src/index.ts var src_exports = {}; __export(src_exports, { default: () => createServer }); function createServer({ config } = {}) { console.log("Creating MCP server with latest SDK..."); const availableTools = [ searchToolDefinition, fetchUrlToolDefinition, metadataToolDefinition, feloToolDefinition ]; console.log("Available tools:", availableTools.map((t) => t.name)); const server = new Server({ name: "ddg-search-mcp", version: "1.1.2" }, { capabilities: { tools: { listChanged: true } } }); server.setRequestHandler(ListToolsRequestSchema, async () => { console.log("Tools list requested, returning:", availableTools.length, "tools"); return { tools: availableTools }; }); server.setRequestHandler(CallToolRequestSchema, async (request) => { try { const { name, arguments: args } = request.params; console.log(`Tool call received: ${name} with args:`, args); switch (name) { case "web-search": return await searchToolHandler(args); case "fetch-url": return await fetchUrlToolHandler(args); case "url-metadata": return await metadataToolHandler(args); case "felo-search": return await feloToolHandler(args); default: throw new Error(`Tool not found: ${name}`); } } catch (error) { console.error(`Error handling ${request.params.name} tool call:`, error); return { isError: true, content: [ { type: "text", text: `Error executing tool '${request.params.name}': ${error.message}` } ] }; } }); console.log("MCP server created successfully"); return server; } var init_src = __esm({ "src/index.ts"() { init_server(); init_types(); init_searchTool(); init_fetchUrlTool(); init_metadataTool(); init_feloTool(); } }); // 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 = parse8; var formatThousandsRegExp = /\B(?=(\d{3})+(?!\d))/g; var formatDecimalsRegExp = /(?:\.0*|(\.[^0]+)0+)$/; var map2 = { 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 parse8(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 || !map2[unit.toLowerCase()]) { if (mag >= map2.pb) { unit = "PB"; } else if (mag >= map2.tb) { unit = "TB"; } else if (mag >= map2.gb) { unit = "GB"; } else if (mag >= map2.mb) { unit = "MB"; } else if (mag >= map2.kb) { unit = "KB"; } else { unit = "B"; } } var val2 = value / map2[unit.toLowerCase()]; var str = val2.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 parse8(val2) { if (typeof val2 === "number" && !isNaN(val2)) { return val2; } if (typeof val2 !== "string") { return null; } var results = parseRegExp.exec(val2); var floatValue; var unit = "b"; if (!results) { floatValue = parseInt(val2, 10); unit = "b"; } else { floatValue = parseFloat(results[1]); unit = results[4].toLowerCase(); } if (isNaN(floatValue)) { return null; } return Math.floor(map2[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 val2 = vals[i]; if (val2 && (val2 === "*" || val2.toLowerCase() === ns)) { return true; } } return false; } function convertDataDescriptorToAccessor(obj, prop2, message) { var descriptor = Object.getOwnPropertyDescriptor(obj, prop2); var value = descriptor.value; descriptor.get = function getter() { return value; }; if (descriptor.writable) { descriptor.set = function setter(val2) { return value = val2; }; } delete descriptor.value; delete descriptor.writable; Object.defineProperty(obj, prop2, 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, prop2, message) { if (!obj || typeof obj !== "object" && typeof obj !== "function") { throw new TypeError("argument obj must be object"); } var descriptor = Object.getOwnPropertyDescriptor(obj, prop2); 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 = prop2; if ("value" in descriptor) { descriptor = convertDataDescriptorToAccessor(obj, prop2, message); } var get2 = descriptor.get; var set = descriptor.set; if (typeof get2 === "function") { descriptor.get = function getter() { log.call(deprecate, message, site); return get2.apply(this, arguments); }; } if (typeof set === "function") { descriptor.set = function setter() { log.call(deprecate, message, site); return set.apply(this, arguments); }; } Object.defineProperty(obj, prop2, 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(val2) { stackString = val2; } }); 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 prop2 in proto) { if (!Object.prototype.hasOwnProperty.call(obj, prop2)) { obj[prop2] = proto[prop2]; } } 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 map2 = {}; Object.keys(codes2).forEach(function forEachCode(code) { var message = codes2[code]; var status2 = Number(code); map2[message.toLowerCase()] = status2; }); return map2; } 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(val2) { if (!val2 || typeof val2 !== "object") { return false; } if (val2 instanceof HttpError) { return true; } return val2 instanceof Error && typeof val2.expose === "boolean" && typeof val2.statusCode === "number" && val2.status === val2.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_safer2 = __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_handling2 = __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_internal2 = __commonJS2({ "node_modules/raw-body/node_modules/iconv-lite/encodings/internal.js"(exports2, module2) { "use strict"; var Buffer2 = require_safer2().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, iconv2) { 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 = iconv2.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/raw-body/node_modules/iconv-lite/encodings/utf32.js"(exports2) { "use strict"; var Buffer2 = require_safer2().Buffer; exports2._utf32 = Utf32Codec; function Utf32Codec(codecOptions, iconv2) { this.iconv = iconv2; 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, iconv2) { this.iconv = iconv2; } 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/raw-body/node_modules/iconv-lite/encodings/utf16.js"(exports2) { "use strict"; var Buffer2 = require_safer2().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, iconv2) { this.iconv = iconv2; } 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/raw-body/node_modules/iconv-lite/encodings/utf7.js"(exports2) { "use strict"; var Buffer2 = require_safer2().Buffer; exports2.utf7 = Utf7Codec; exports2.unicode11utf7 = "utf7"; function Utf7Codec(codecOptions, iconv2) { this.iconv = iconv2; } 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, iconv2) { this.iconv = iconv2; } 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/raw-body/node_modules/iconv-lite/encodings/sbcs-codec.js"(exports2) { "use strict"; var Buffer2 = require_safer2().Buffer; exports2._sbcs = SBCSCodec; function SBCSCodec(codecOptions, iconv2) { 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, iconv2.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/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_generated2 = __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_codec2 = __commonJS2({ "node_modules/raw-body/node_modules/iconv-lite/encodings/dbcs-codec.js"(exports2) { "use strict"; var Buffer2 = require_safer2().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, iconv2) { 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 = iconv2.defaultCharUnicode; this.encodeTable = []; this.encodeTableSeq = []; var skipEncodeChars = {}; if (codecOptions.encodeSkipVals) for (var i2 = 0; i2 < codecOptions.encodeSkipVals.length; i2++) { var val2 = codecOptions.encodeSkipVals[i2]; if (typeof val2 === "number") skipEncodeChars[val2] = true; else for (var j = val2.from; j <= val2.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][iconv2.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 val2 = node[bytes[i2]]; if (val2 == UNASSIGNED) { node[bytes[i2]] = NODE_START - this.decodeTables.length; this.decodeTables.push(node = UNASSIGNED_NODE.slice(0)); } else if (val2 <= NODE_START) { node = this.decodeTables[NODE_START - val2]; } 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, val2) { if (table[0] > val2) return -1; var l = 0, r = table.length; while (l < r - 1) { var mid = l + (r - l + 1 >> 1); if (table[mid] <= val2) l = mid; else r = mid; } return l; } } }); var require_shiftjis2 = __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_eucjp2 = __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_cp9362 = __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_added2 = __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_ranges2 = __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_cp9492 = __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_cp9502 = __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_added2 = __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_data2 = __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_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/raw-body/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/raw-body/node_modules/iconv-lite/lib/streams.js"(exports2, module2) { "use strict"; var Buffer2 = require_safer2().Buffer; module2.exports = function(stream_module) { var Transform2 = stream_module.Transform; function IconvLiteEncoderStream(conv, options) { this.conv = conv; options = options || {}; options.decodeStrings = false; Transform2.call(this, options); } IconvLiteEncoderStream.prototype = Object.create(Transform2.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"; Transform2.call(this, options); } IconvLiteDecoderStream.prototype = Object.create(Transform2.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/raw-body/node_modules/iconv-lite/lib/index.js"(exports2, module2) { "use strict"; var Buffer2 = require_safer2().Buffer; var bomHandling = require_bom_handling2(); var iconv2 = module2.exports; iconv2.encodings = null; iconv2.defaultCharUnicode = "\uFFFD"; iconv2.defaultCharSingleByte = "?"; iconv2.encode = function encode3(str, encoding, options) { str = "" + (str || ""); var encoder = iconv2.getEncoder(encoding, options); var res = encoder.write(str); var trail = encoder.end(); return trail && trail.length > 0 ? Buffer2.concat([res, trail]) : res; }; iconv2.decode = function decode(buf, encoding, options) { if (typeof buf === "string") { if (!iconv2.skipDecodeWarning) { console.error("Iconv-lite warning: decode()-ing strings is deprecated. Refer to https://github.com/ashtuchkin/iconv-lite/wiki/Use-Buffers-when-decoding"); iconv2.skipDecodeWarning = true; } buf = Buffer2.from("" + (buf || ""), "binary"); } var decoder = iconv2.getDecoder(encoding, options); var res = decoder.write(buf); var trail = decoder.end(); return trail ? res + trail : res; }; iconv2.encodingExists = function encodingExists(enc) { try { iconv2.getCodec(enc); return true; } catch (e) { return false; } }; iconv2.toEncoding = iconv2.encode; iconv2.fromEncoding = iconv2.decode; iconv2._codecDataCache = {}; iconv2.getCodec = function getCodec(encoding) { if (!iconv2.encodings) iconv2.encodings = require_encodings2(); var enc = iconv2._canonicalizeEncoding(encoding); var codecOptions = {}; while (true) { var codec = iconv2._codecDataCache[enc]; if (codec) return codec; var codecDef = iconv2.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, iconv2); iconv2._codecDataCache[codecOptions.encodingName] = codec; return codec; default: throw new Error("Encoding not recognized: '" + encoding + "' (searched as: '" + enc + "')"); } } }; iconv2._canonicalizeEncoding = function(encoding) { return ("" + encoding).toLowerCase().replace(/:\d{4}$|[^0-9a-z]/g, ""); }; iconv2.getEncoder = function getEncoder(encoding, options) { var codec = iconv2.getCodec(encoding), encoder = new codec.encoder(options, codec); if (codec.bomAware && options && options.addBOM) encoder = new bomHandling.PrependBOM(encoder, options); return encoder; }; iconv2.getDecoder = function getDecoder2(encoding, options) { var codec = iconv2.getCodec(encoding), decoder = new codec.decoder(options, codec); if (codec.bomAware && !(options && options.stripBOM === false)) decoder = new bomHandling.StripBOM(decoder, options); return decoder; }; iconv2.enableStreamingAPI = function enableStreamingAPI(stream_module2) { if (iconv2.supportsStreams) return; var streams = require_streams2()(stream_module2); iconv2.IconvLiteEncoderStream = streams.IconvLiteEncoderStream; iconv2.IconvLiteDecoderStream = streams.IconvLiteDecoderStream; iconv2.encodeStream = function encodeStream(encoding, options) { return new iconv2.IconvLiteEncoderStream(iconv2.getEncoder(encoding, options), options); }; iconv2.decodeStream = function decodeStream(encoding, options) { return new iconv2.IconvLiteDecoderStream(iconv2.getDecoder(encoding, options), options); }; iconv2.supportsStreams = true; }; var stream_module; try { stream_module = require("stream"); } catch (e) { } if (stream_module && stream_module.Transform) { iconv2.enableStreamingAPI(stream_module); } else { iconv2.encodeStream = iconv2.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(stream5) { var listeners = stream5.listeners("data"); for (var i = 0; i < listeners.length; i++) { if (listeners[i].name === "ondata") { return true; } } return false; } function unpipe(stream5) { if (!stream5) { throw new TypeError("argument stream is required"); } if (typeof stream5.unpipe === "function") { stream5.unpipe(); return; } if (!hasPipeDataListeners(stream5)) { return; } var listener; var listeners = stream5.listeners("close"); for (var i = 0; i < listeners.length; i++) { listener = listeners[i]; if (listener.name !== "cleanup" && listener.name !== "onclose") { continue; } listener.call(stream5); } } } }); 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 iconv2 = require_lib2(); var unpipe = require_unpipe(); module2.exports = getRawBody2; var ICONV_ENCODING_MESSAGE_REGEXP = /^Encoding not recognized: /; function getDecoder2(encoding) { if (!encoding) return null; try { return iconv2.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(stream5, options, callback) { var done = callback; var opts = options || {}; if (stream5 === void 0) { throw new TypeError("argument stream is required"); } else if (typeof stream5 !== "object" || stream5 === null || typeof stream5.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(stream5, encoding, length, limit, wrap2(done)); } return new Promise(function executor(resolve, reject) { readStream2(stream5, encoding, length, limit, function onRead(err2, buf) { if (err2) return reject(err2); resolve(buf); }); }); } function halt(stream5) { unpipe(stream5); if (typeof stream5.pause === "function") { stream5.pause(); } } function readStream2(stream5, 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 = stream5._readableState; if (stream5._decoder || state && (state.encoding || state.decoder)) { return done(createError(500, "stream encoding should not be set", { type: "stream.encoding.set" })); } if (typeof stream5.readable !== "undefined" && !stream5.readable) { return done(createError(500, "stream is not readable", { type: "stream.not.readable" })); } var received = 0; var decoder; try { decoder = getDecoder2(encoding); } catch (err2) { return done(err2); } var buffer = decoder ? "" : []; stream5.on("aborted", onAborted); stream5.on("close", cleanup); stream5.on("data", onData); stream5.on("end", onEnd); stream5.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(stream5); } 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; stream5.removeListener("aborted", onAborted); stream5.removeListener("data", onData); stream5.removeListener("end", onEnd); stream5.removeListener("error", onEnd); stream5.removeListener("close", cleanup); } } function tryRequireAsyncHooks() { try { return require("async_hooks"); } catch (e) { return {}; } } function wrap2(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 = parse8; 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 parse8(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 index2 = header.indexOf(";"); var type = index2 !== -1 ? header.slice(0, index2).trim() : header.trim(); if (!TYPE_REGEXP.test(type)) { throw new TypeError("invalid media type"); } var obj = new ContentType(type.toLowerCase()); if (index2 !== -1) { var key; var match; var value; PARAM_REGEXP.lastIndex = index2; while (match = PARAM_REGEXP.exec(header)) { if (match.index !== index2) { throw new TypeError("invalid parameter format"); } index2 += 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 (index2 !== 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(val2) { var str = String(val2); 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(val2, options) { options = options || {}; var type = typeof val2; if (type === "string" && val2.length > 0) { return parse8(val2); } else if (type === "number" && isFinite(val2)) { return options.long ? fmtLong(val2) : fmtShort(val2); } throw new Error( "val is not a non-empty string or a valid number. val=" + JSON.stringify(val2) ); }; function parse8(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_common2 = __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 index2 = 0; args[0] = args[0].replace(/%([a-zA-Z%])/g, (match, format) => { if (match === "%%") { return "%"; } index2++; const formatter = createDebug.formatters[format]; if (typeof formatter === "function") { const val2 = args[index2]; match = formatter.call(self2, val2); args.splice(index2, 1); index2--; } 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(" ", ",").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(val2) { if (val2 instanceof Error) { return val2.stack || val2.message; } return val2; } 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 = load2; 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 index2 = 0; let lastC = 0; args[0].replace(/%[a-zA-Z%]/g, (match) => { if (match === "%%") { return; } index2++; if (match === "%c") { lastC = index2; } }); 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 load2() { let r; try { r = 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_common2()(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(stream5) { const level = supportsColor(stream5, stream5 && stream5.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 = load2; 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 prop2 = key.substring(6).toLowerCase().replace(/_([a-z])/g, (_2, k) => { return k.toUpperCase(); }); let val2 = process.env[key]; if (/^(yes|on|true|enabled)$/i.test(val2)) { val2 = true; } else if (/^(no|off|false|disabled)$/i.test(val2)) { val2 = false; } else if (val2 === "null") { val2 = null; } else { val2 = Number(val2); } obj[prop2] = val2; 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 load2() { 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_common2()(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 = first2; function first2(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 first2 = 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, wrap2(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 = first2([[msg, "end", "finish"]], onFinish); function onSocket(socket) { msg.removeListener("socket", onSocket); if (finished) return; if (eeMsg !== eeSocket) return; eeSocket = first2([[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 wrap2(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_handling22 = __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_internal22 = __commonJS2({ "node_modules/body-parser/node_modules/iconv-lite/encodings/internal.js"(exports2, module2) { "use strict"; var Buffer2 = require_safer2().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, iconv2) { 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 = iconv2.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_utf3222 = __commonJS2({ "node_modules/body-parser/node_modules/iconv-lite/encodings/utf32.js"(exports2) { "use strict"; var Buffer2 = require_safer2().Buffer; exports2._utf32 = Utf32Codec; function Utf32Codec(codecOptions, iconv2) { this.iconv = iconv2; 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, iconv2) { this.iconv = iconv2; } 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_utf1622 = __commonJS2({ "node_modules/body-parser/node_modules/iconv-lite/encodings/utf16.js"(exports2) { "use strict"; var Buffer2 = require_safer2().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, iconv2) { this.iconv = iconv2; } 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_utf722 = __commonJS2({ "node_modules/body-parser/node_modules/iconv-lite/encodings/utf7.js"(exports2) { "use strict"; var Buffer2 = require_safer2().Buffer; exports2.utf7 = Utf7Codec; exports2.unicode11utf7 = "utf7"; function Utf7Codec(codecOptions, iconv2) { this.iconv = iconv2; } 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, iconv2) { this.iconv = iconv2; } 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_codec22 = __commonJS2({ "node_modules/body-parser/node_modules/iconv-lite/encodings/sbcs-codec.js"(exports2) { "use strict"; var Buffer2 = require_safer2().Buffer; exports2._sbcs = SBCSCodec; function SBCSCodec(codecOptions, iconv2) { 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, iconv2.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_data22 = __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_generated22 = __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_codec22 = __commonJS2({ "node_modules/body-parser/node_modules/iconv-lite/encodings/dbcs-codec.js"(exports2) { "use strict"; var Buffer2 = require_safer2().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, iconv2) { 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 = iconv2.defaultCharUnicode; this.encodeTable = []; this.encodeTableSeq = []; var skipEncodeChars = {}; if (codecOptions.encodeSkipVals) for (var i2 = 0; i2 < codecOptions.encodeSkipVals.length; i2++) { var val2 = codecOptions.encodeSkipVals[i2]; if (typeof val2 === "number") skipEncodeChars[val2] = true; else for (var j = val2.from; j <= val2.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][iconv2.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 val2 = node[bytes[i2]]; if (val2 == UNASSIGNED) { node[bytes[i2]] = NODE_START - this.decodeTables.length; this.decodeTables.push(node = UNASSIGNED_NODE.slice(0)); } else if (val2 <= NODE_START) { node = this.decodeTables[NODE_START - val2]; } 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, val2) { if (table[0] > val2) return -1; var l = 0, r = table.length; while (l < r - 1) { var mid = l + (r - l + 1 >> 1); if (table[mid] <= val2) l = mid; else r = mid; } return l; } } }); var require_shiftjis22 = __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_eucjp22 = __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_cp93622 = __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_added22 = __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_ranges22 = __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_cp94922 = __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_cp95022 = __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_added22 = __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_data22 = __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_shiftjis22(); }, 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_eucjp22(); }, 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_cp93622(); } }, // GBK (~22000 chars) is an extension of CP936 that added user-mapped chars and some other. "gbk": { type: "_dbcs", table: function() { return require_cp93622().concat(require_gbk_added22()); } }, "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_cp93622().concat(require_gbk_added22()); }, gb18030: function() { return require_gb18030_ranges22(); }, 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_cp94922(); } }, "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_cp95022(); } }, // 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_cp95022().concat(require_big5_added22()); }, 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_encodings22 = __commonJS2({ "node_modules/body-parser/node_modules/iconv-lite/encodings/index.js"(exports2, module2) { "use strict"; var modules = [ require_internal22(), require_utf3222(), require_utf1622(), require_utf722(), require_sbcs_codec22(), require_sbcs_data22(), require_sbcs_data_generated22(), require_dbcs_codec22(), require_dbcs_data22() ]; 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_streams22 = __commonJS2({ "node_modules/body-parser/node_modules/iconv-lite/lib/streams.js"(exports2, module2) { "use strict"; var Buffer2 = require_safer2().Buffer; module2.exports = function(stream_module) { var Transform2 = stream_module.Transform; function IconvLiteEncoderStream(conv, options) { this.conv = conv; options = options || {}; options.decodeStrings = false; Transform2.call(this, options); } IconvLiteEncoderStream.prototype = Object.create(Transform2.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"; Transform2.call(this, options); } IconvLiteDecoderStream.prototype = Object.create(Transform2.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_lib22 = __commonJS2({ "node_modules/body-parser/node_modules/iconv-lite/lib/index.js"(exports2, module2) { "use strict"; var Buffer2 = require_safer2().Buffer; var bomHandling = require_bom_handling22(); var iconv2 = module2.exports; iconv2.encodings = null; iconv2.defaultCharUnicode = "\uFFFD"; iconv2.defaultCharSingleByte = "?"; iconv2.encode = function encode3(str, encoding, options) { str = "" + (str || ""); var encoder = iconv2.getEncoder(encoding, options); var res = encoder.write(str); var trail = encoder.end(); return trail && trail.length > 0 ? Buffer2.concat([res, trail]) : res; }; iconv2.decode = function decode(buf, encoding, options) { if (typeof buf === "string") { if (!iconv2.skipDecodeWarning) { console.error("Iconv-lite warning: decode()-ing strings is deprecated. Refer to https://github.com/ashtuchkin/iconv-lite/wiki/Use-Buffers-when-decoding"); iconv2.skipDecodeWarning = true; } buf = Buffer2.from("" + (buf || ""), "binary"); } var decoder = iconv2.getDecoder(encoding, options); var res = decoder.write(buf); var trail = decoder.end(); return trail ? res + trail : res; }; iconv2.encodingExists = function encodingExists(enc) { try { iconv2.getCodec(enc); return true; } catch (e) { return false; } }; iconv2.toEncoding = iconv2.encode; iconv2.fromEncoding = iconv2.decode; iconv2._codecDataCache = {}; iconv2.getCodec = function getCodec(encoding) { if (!iconv2.encodings) iconv2.encodings = require_encodings22(); var enc = iconv2._canonicalizeEncoding(encoding); var codecOptions = {}; while (true) { var codec = iconv2._codecDataCache[enc]; if (codec) return codec; var codecDef = iconv2.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, iconv2); iconv2._codecDataCache[codecOptions.encodingName] = codec; return codec; default: throw new Error("Encoding not recognized: '" + encoding + "' (searched as: '" + enc + "')"); } } }; iconv2._canonicalizeEncoding = function(encoding) { return ("" + encoding).toLowerCase().replace(/:\d{4}$|[^0-9a-z]/g, ""); }; iconv2.getEncoder = function getEncoder(encoding, options) { var codec = iconv2.getCodec(encoding), encoder = new codec.encoder(options, codec); if (codec.bomAware && options && options.addBOM) encoder = new bomHandling.PrependBOM(encoder, options); return encoder; }; iconv2.getDecoder = function getDecoder2(encoding, options) { var codec = iconv2.getCodec(encoding), decoder = new codec.decoder(options, codec); if (codec.bomAware && !(options && options.stripBOM === false)) decoder = new bomHandling.StripBOM(decoder, options); return decoder; }; iconv2.enableStreamingAPI = function enableStreamingAPI(stream_module2) { if (iconv2.supportsStreams) return; var streams = require_streams22()(stream_module2); iconv2.IconvLiteEncoderStream = streams.IconvLiteEncoderStream; iconv2.IconvLiteDecoderStream = streams.IconvLiteDecoderStream; iconv2.encodeStream = function encodeStream(encoding, options) { return new iconv2.IconvLiteEncoderStream(iconv2.getEncoder(encoding, options), options); }; iconv2.decodeStream = function decodeStream(encoding, options) { return new iconv2.IconvLiteDecoderStream(iconv2.getDecoder(encoding, options), options); }; iconv2.supportsStreams = true; }; var stream_module; try { stream_module = require("stream"); } catch (e) { } if (stream_module && stream_module.Transform) { iconv2.enableStreamingAPI(stream_module); } else { iconv2.encodeStream = iconv2.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 iconv2 = require_lib22(); var onFinished = require_on_finished(); var zlib2 = require("node:zlib"); module2.exports = read; function read(req, res, next2, parse8, debug, options) { var length; var opts = options; var stream5; var encoding = opts.encoding !== null ? opts.encoding : null; var verify = opts.verify; try { stream5 = contentstream(req, debug, opts.inflate); length = stream5.length; stream5.length = void 0; } catch (err2) { return next2(err2); } opts.length = length; opts.encoding = verify ? null : encoding; if (opts.encoding === null && encoding !== null && !iconv2.encodingExists(encoding)) { return next2(createError(415, 'unsupported charset "' + encoding.toUpperCase() + '"', { charset: encoding.toLowerCase(), type: "charset.unsupported" })); } debug("read body"); getBody(stream5, 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 (stream5 !== req) { req.unpipe(); stream5.destroy(); } dump(req, function onfinished() { next2(createError(400, _error)); }); return; } if (verify) { try { debug("verify body"); verify(req, res, body, encoding); } catch (err2) { next2(createError(403, err2, { body, type: err2.type || "entity.verify.failed" })); return; } } var str = body; try { debug("parse body"); str = typeof body !== "string" && encoding !== null ? iconv2.decode(body, encoding) : body; req.body = parse8(str, encoding); } catch (err2) { next2(createError(400, err2, { body: str, type: err2.type || "entity.parse.failed" })); return; } next2(); }); } 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 stream5 = createDecompressionStream(encoding, debug); req.pipe(stream5); return stream5; } 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 = parse8; 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 parse8(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 index2 = subtype.lastIndexOf("+"); if (index2 !== -1) { suffix = subtype.substr(index2 + 1); subtype = subtype.substr(0, index2); } 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 val2 = tryNormalizeType(value); if (!val2) { 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 val2; } var type; for (i = 0; i < types.length; i++) { if (mimeMatch(normalize(type = types[i]), val2)) { return type[0] === "+" || type.indexOf("*") !== -1 ? val2 : 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_utils3 = __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_utils3(); 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 parse8(body) { if (body.length === 0) { return {}; } if (strict) { var first2 = firstchar(body); if (first2 !== "{" && first2 !== "[") { debug("strict violation"); throw createStrictSyntaxError(body, first2); } } 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, next2) { if (isFinished(req)) { debug("body already parsed"); next2(); return; } if (!("body" in req)) { req.body = void 0; } if (!typeis.hasBody(req)) { debug("skip empty body"); next2(); return; } debug("content-type %j", req.headers["content-type"]); if (!shouldParse(req)) { debug("skip parsing"); next2(); return; } var charset = getCharset(req) || "utf-8"; if (charset.slice(0, 4) !== "utf-") { debug("invalid charset"); next2(createError(415, 'unsupported charset "' + charset.toUpperCase() + '"', { charset, type: "charset.unsupported" })); return; } read(req, res, next2, parse8, debug, { encoding: charset, inflate, limit, verify }); }; } function createStrictSyntaxError(str, char) { var index2 = str.indexOf(char); var partial = ""; if (index2 !== -1) { partial = str.substring(0, index2) + JSON_SYNTAX_CHAR; for (var i = index2 + 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(index2, index2 + 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_utils3(); module2.exports = raw; function raw(options) { var { inflate, limit, verify, shouldParse } = normalizeOptions(options, "application/octet-stream"); function parse8(buf) { return buf; } return function rawParser(req, res, next2) { if (isFinished(req)) { debug("body already parsed"); next2(); return; } if (!("body" in req)) { req.body = void 0; } if (!typeis.hasBody(req)) { debug("skip empty body"); next2(); return; } debug("content-type %j", req.headers["content-type"]); if (!shouldParse(req)) { debug("skip parsing"); next2(); return; } read(req, res, next2, parse8, 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_utils3(); module2.exports = text3; function text3(options) { var { inflate, limit, verify, shouldParse } = normalizeOptions(options, "text/plain"); var defaultCharset = options?.defaultCharset || "utf-8"; function parse8(buf) { return buf; } return function textParser(req, res, next2) { if (isFinished(req)) { debug("body already parsed"); next2(); return; } if (!("body" in req)) { req.body = void 0; } if (!typeis.hasBody(req)) { debug("skip empty body"); next2(); return; } debug("content-type %j", req.headers["content-type"]); if (!shouldParse(req)) { debug("skip parsing"); next2(); return; } var charset = getCharset(req) || defaultCharset; read(req, res, next2, parse8, 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 (has2(opts, "quoteStyle") && !has2(quotes, opts.quoteStyle)) { throw new TypeError('option "quoteStyle" must be "single" or "double"'); } if (has2(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 = has2(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 (has2(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 (has2(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 (has2(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 (isNumber3(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, "&quot;"); } 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 isNumber3(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 hasOwn2 = Object.prototype.hasOwnProperty || function(key) { return key in this; }; function has2(obj, key) { return hasOwn2.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] = has2(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 (!has2(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 prev2 = list; var curr; for (; (curr = prev2.next) != null; prev2 = curr) { if (curr.key === key) { prev2.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 root2 = $o && $o.next; var deletedNode = listDelete($o, key); if (deletedNode && root2 && root2 === 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 hasOwn2 = 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 first2 = $strSlice(string, 0, 1); var last2 = $strSlice(string, -1); if (first2 === "%" && last2 !== "%") { throw new $SyntaxError("invalid intrinsic syntax, expected closing `%`"); } else if (last2 === "%" && first2 !== "%") { 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 (hasOwn2(LEGACY_ALIASES, intrinsicName)) { alias = LEGACY_ALIASES[intrinsicName]; intrinsicName = "%" + alias[0] + "%"; } if (hasOwn2(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 first2 = $strSlice(part, 0, 1); var last2 = $strSlice(part, -1); if ((first2 === '"' || first2 === "'" || first2 === "`" || (last2 === '"' || last2 === "'" || last2 === "`")) && first2 !== last2) { throw new $SyntaxError("property names with quotes must have matching quotes"); } if (part === "constructor" || !isOwn) { skipFurtherCaching = true; } intrinsicBaseName += "." + part; intrinsicRealName = "%" + intrinsicBaseName + "%"; if (hasOwn2(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 = hasOwn2(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_utils22 = __commonJS2({ "node_modules/qs/lib/utils.js"(exports2, module2) { "use strict"; var formats = require_formats2(); var has2 = 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 merge3 = 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) || !has2.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 (has2.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 (has2.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 val2 = obj[key]; if (typeof val2 === "object" && val2 !== null && refs.indexOf(val2) === -1) { queue.push({ obj, prop: key }); refs.push(val2); } } } 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(val2, fn) { if (isArray2(val2)) { var mapped = []; for (var i = 0; i < val2.length; i += 1) { mapped.push(fn(val2[i])); } return mapped; } return fn(val2); }; module2.exports = { arrayToObject: arrayToObject2, assign, combine, compact, decode, encode: encode3, isBuffer: isBuffer2, isRegExp: isRegExp2, maybeMap, merge: merge3 }; } }); var require_stringify2 = __commonJS2({ "node_modules/qs/lib/stringify.js"(exports2, module2) { "use strict"; var getSideChannel = require_side_channel(); var utils = require_utils22(); var formats = require_formats2(); var has2 = 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 stringify2 = function stringify22(object, prefix, generateArrayPrefix, commaRoundTrip, allowEmptyArrays, strictNullHandling, skipNulls, encodeDotInKeys, encoder, filter5, 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 filter5 === "function") { obj = filter5(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(filter5)) { objKeys = filter5; } 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, stringify22( value, keyPrefix, generateArrayPrefix, commaRoundTrip, allowEmptyArrays, strictNullHandling, skipNulls, encodeDotInKeys, generateArrayPrefix === "comma" && encodeValuesOnly && isArray2(obj) ? null : encoder, filter5, 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 (!has2.call(formats.formatters, opts.format)) { throw new TypeError("Unknown format option provided."); } format = opts.format; } var formatter = formats.formatters[format]; var filter5 = defaults2.filter; if (typeof opts.filter === "function" || isArray2(opts.filter)) { filter5 = 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: filter5, 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 filter5; if (typeof options.filter === "function") { filter5 = options.filter; obj = filter5("", obj); } else if (isArray2(options.filter)) { filter5 = options.filter; objKeys = filter5; } 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, stringify2( 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_parse3 = __commonJS2({ "node_modules/qs/lib/parse.js"(exports2, module2) { "use strict"; var utils = require_utils22(); var has2 = 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(val2, options, currentArrayLength) { if (val2 && typeof val2 === "string" && options.comma && val2.indexOf(",") > -1) { return val2.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 val2; }; 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 val2; if (pos === -1) { key = options.decoder(part, defaults2.decoder, charset, "key"); val2 = options.strictNullHandling ? null : ""; } else { key = options.decoder(part.slice(0, pos), defaults2.decoder, charset, "key"); val2 = 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 (val2 && options.interpretNumericEntities && charset === "iso-8859-1") { val2 = interpretNumericEntities(String(val2)); } if (part.indexOf("[]=") > -1) { val2 = isArray2(val2) ? [val2] : val2; } var existing = has2.call(obj, key); if (existing && options.duplicates === "combine") { obj[key] = utils.combine(obj[key], val2); } else if (!existing || options.duplicates === "last") { obj[key] = val2; } } return obj; }; var parseObject = function(chain, val2, options, valuesParsed) { var currentArrayLength = 0; if (chain.length > 0 && chain[chain.length - 1] === "[]") { var parentKey = chain.slice(0, -1).join(""); currentArrayLength = Array.isArray(val2) && val2[parentKey] ? val2[parentKey].length : 0; } var leaf = valuesParsed ? val2 : parseArrayValue(val2, options, currentArrayLength); for (var i = chain.length - 1; i >= 0; --i) { var obj; var root2 = chain[i]; if (root2 === "[]" && options.parseArrays) { obj = options.allowEmptyArrays && (leaf === "" || options.strictNullHandling && leaf === null) ? [] : utils.combine([], leaf); } else { obj = options.plainObjects ? { __proto__: null } : {}; var cleanRoot = root2.charAt(0) === "[" && root2.charAt(root2.length - 1) === "]" ? root2.slice(1, -1) : root2; var decodedRoot = options.decodeDotInKeys ? cleanRoot.replace(/%2E/g, ".") : cleanRoot; var index2 = parseInt(decodedRoot, 10); if (!options.parseArrays && decodedRoot === "") { obj = { 0: leaf }; } else if (!isNaN(index2) && root2 !== decodedRoot && String(index2) === decodedRoot && index2 >= 0 && (options.parseArrays && index2 <= options.arrayLimit)) { obj = []; obj[index2] = leaf; } else if (decodedRoot !== "__proto__") { obj[decodedRoot] = leaf; } } leaf = obj; } return leaf; }; var parseKeys = function parseQueryStringKeys(givenKey, val2, 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 parent2 = segment ? key.slice(0, segment.index) : key; var keys = []; if (parent2) { if (!options.plainObjects && has2.call(Object.prototype, parent2)) { if (!options.allowPrototypes) { return; } } keys.push(parent2); } var i = 0; while (options.depth > 0 && (segment = child.exec(key)) !== null && i < options.depth) { i += 1; if (!options.plainObjects && has2.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, val2, 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 stringify2 = require_stringify2(); var parse8 = require_parse3(); var formats = require_formats2(); module2.exports = { formats, parse: parse8, stringify: stringify2 }; } }); 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_utils3(); 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 parse8(body, encoding) { return body.length ? queryparse(body, encoding) : {}; } return function urlencodedParser(req, res, next2) { if (isFinished(req)) { debug("body already parsed"); next2(); return; } if (!("body" in req)) { req.body = void 0; } if (!typeis.hasBody(req)) { debug("skip empty body"); next2(); return; } debug("content-type %j", req.headers["content-type"]); if (!shouldParse(req)) { debug("skip parsing"); next2(); return; } var charset = getCharset(req) || defaultCharset; if (charset !== "utf-8" && charset !== "iso-8859-1") { debug("invalid charset"); next2(createError(415, 'unsupported charset "' + charset.toUpperCase() + '"', { charset, type: "charset.unsupported" })); return; } read(req, res, next2, parse8, 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 escape22; var html3 = ""; var index2 = 0; var lastIndex = 0; for (index2 = match.index; index2 < str.length; index2++) { switch (str.charCodeAt(index2)) { case 34: escape22 = "&quot;"; break; case 38: escape22 = "&amp;"; break; case 39: escape22 = "&#39;"; break; case 60: escape22 = "&lt;"; break; case 62: escape22 = "&gt;"; break; default: continue; } if (lastIndex !== index2) { html3 += str.substring(lastIndex, index2); } lastIndex = index2 + 1; html3 += escape22; } return lastIndex !== index2 ? html3 + str.substring(lastIndex, index2) : html3; } } }); var require_parseurl = __commonJS2({ "node_modules/parseurl/index.js"(exports2, module2) { "use strict"; var url2 = require("url"); var parse8 = 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 parse8(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 parse8(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(" ", " &nbsp;"); 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 || "production"; 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 root2 = roots[i]; var loc = resolve(root2, name); var dir = dirname(loc); var file = basename(loc); path2 = this.resolve(dir, file); } return path2; }; View.prototype.render = function render3(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 crypto4 = require("crypto"); var Stats = require("fs").Stats; var toString4 = Object.prototype.toString; function entitytag(entity) { if (entity.length === 0) { return '"0-2jmj7l5rSw0yVb/vlWAYkK/YBwk"'; } var hash = crypto4.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 && toString4.call(obj.ctime) === "[object Date]" && "mtime" in obj && toString4.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 = parse8(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 parse8(header) { var end2 = 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 === end2) { start = end2 = i; } break; case 44: if (start !== end2) { list.push(header.substring(start, end2)); } start = end2 = i; break; default: start = i; break; } } if (start !== end2) { list.push(header.substring(start, end2)); } return list; } } }); var require_ipaddr = __commonJS2({ "node_modules/ipaddr.js/lib/ipaddr.js"(exports2, module2) { (function() { var expandIPv6, ipaddr, ipv4Part, ipv4Regexes, ipv6Part, ipv6Regexes, matchCIDR, root2, zoneIndex; ipaddr = {}; root2 = this; if (typeof module2 !== "undefined" && module2 !== null && module2.exports) { module2.exports = ipaddr; } else { root2["ipaddr"] = ipaddr; } matchCIDR = function(first2, second, partSize, cidrBits) { var part, shift; if (first2.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 (first2[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 = compile4; 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 = compile4(trust); } for (var i = 0; i < addrs.length - 1; i++) { if (trust(addrs[i], i)) continue; addrs.length = i + 1; } return addrs; } function compile4(val2) { if (!val2) { throw new TypeError("argument is required"); } var trust; if (typeof val2 === "string") { trust = [val2]; } else if (Array.isArray(val2)) { trust = val2.slice(); } else { throw new TypeError("unsupported trust argument"); } for (var i = 0; i < trust.length; i++) { val2 = trust[i]; if (!Object.prototype.hasOwnProperty.call(IP_RANGES, val2)) { continue; } val2 = IP_RANGES[val2]; trust.splice.apply(trust, [i, 1].concat(val2)); i += val2.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_utils32 = __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 index2 = colonIndex === -1 ? length : colonIndex; var ret = { value: str.slice(0, index2).trim(), quality: 1, params: {} }; while (index2 < length) { var splitIndex = str.indexOf("=", index2); if (splitIndex === -1) break; var colonIndex = str.indexOf(";", index2); var endIndex = colonIndex === -1 ? length : colonIndex; if (splitIndex > endIndex) { index2 = str.lastIndexOf(";", splitIndex - 1) + 1; continue; } var key = str.slice(index2, splitIndex).trim(); var value = str.slice(splitIndex + 1, endIndex).trim(); if (key === "q") { ret.quality = parseFloat(value); } else { ret.params[key] = value; } index2 = endIndex + 1; } return ret; } exports2.compileETag = function(val2) { var fn; if (typeof val2 === "function") { return val2; } switch (val2) { 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: " + val2); } return fn; }; exports2.compileQueryParser = function compileQueryParser(val2) { var fn; if (typeof val2 === "function") { return val2; } switch (val2) { 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: " + val2); } return fn; }; exports2.compileTrust = function(val2) { if (typeof val2 === "function") return val2; if (val2 === true) { return function() { return true; }; } if (typeof val2 === "number") { return function(a, i) { return i < val2; }; } if (typeof val2 === "string") { val2 = val2.split(",").map(function(v) { return v.trim(); }); } return proxyaddr.compile(val2 || []); }; 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 = parse8; exports2.compile = compile4; exports2.match = match; exports2.pathToRegexp = pathToRegexp; exports2.stringify = stringify2; 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 escapeText2(str) { return str.replace(/[{}()\[\]+?!:*]/g, "\\$&"); } function escape22(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 next2 = this.tokens.next(); this._peek = next2.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: index2 } = this.peek(); throw new TypeError(`Unexpected ${nextType} at ${index2}, 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 parse8(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 compile4(path, options = {}) { const { encode: encode3 = encodeURIComponent, delimiter = DEFAULT_DELIMITER } = options; const data2 = path instanceof TokenData ? path : parse8(path, options); const fn = tokensToFunction(data2.tokens, delimiter, encode3); return function path2(data22 = {}) { const [path3, ...missing] = fn(data22); 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 (data2) => { const result = [""]; for (const encoder of encoders) { const [value, ...extras] = encoder(data2); 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 (data2) => { const [value, ...missing] = fn(data2); if (!missing.length) return [value]; return [""]; }; } const encodeValue = encode3 || NOOP_VALUE; if (token.type === "wildcard" && encode3 !== false) { return (data2) => { const value = data2[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, index2) => { if (typeof value2 !== "string") { throw new TypeError(`Expected "${token.name}/${index2}" to be a string`); } return encodeValue(value2); }).join(delimiter) ]; }; } return (data2) => { const value = data2[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: end2 = 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 : parse8(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 += `(?:${escape22(delimiter)}$)?`; pattern += end2 ? "$" : `(?=${escape22(delimiter)}|$)`; const regexp = new RegExp(pattern, flags); return { regexp, keys }; } function* flatten(tokens, index2, init) { if (index2 === tokens.length) { return yield init; } const token = tokens[index2]; if (token.type === "group") { const fork = init.slice(); for (const seq of flatten(token.tokens, 0, fork)) { yield* flatten(tokens, index2 + 1, seq); } } else { init.push(token); } yield* flatten(tokens, index2 + 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 += escape22(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 `[^${escape22(delimiter + backtrack)}]`; return `(?:(?!${escape22(delimiter)})[^${escape22(backtrack)}])`; } if (delimiter.length < 2) { return `(?:(?!${escape22(backtrack)})[^${escape22(delimiter)}])`; } return `(?:(?!${escape22(backtrack)}|${escape22(delimiter)})[\\s\\S])`; } function stringify2(data2) { return data2.tokens.map(function stringifyToken(token, index2, tokens) { if (token.type === "text") return escapeText2(token.value); if (token.type === "group") { return `{${token.tokens.map(stringifyToken).join("")}}`; } const isSafe = isNameSafe(token.name) && isNextNameSafe(tokens[index2 + 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 [first2, ...rest] = name; if (!ID_START.test(first2)) 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 prop2 = key.name; const val2 = decodeParam(match[i]); if (val2 !== void 0) { params[prop2] = val2; } } 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, next2) { const fn = this.handle; if (fn.length !== 4) { return next2(error); } try { const ret = fn(error, req, res, next2); 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) { next2(error2 || new Error("Rejected promise")); }); } } catch (err2) { next2(err2); } }; Layer.prototype.handleRequest = function handleRequest(req, res, next2) { const fn = this.handle; if (fn.length > 3) { return next2(); } try { const ret = fn(req, res, next2); 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) { next2(error || new Error("Rejected promise")); }); } } catch (err2) { next2(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(val2) { if (typeof val2 !== "string" || val2.length === 0) { return val2; } try { return decodeURIComponent(val2); } catch (err2) { if (err2 instanceof URIError) { err2.message = "Failed to decode param '" + val2 + "'"; 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 slice2 = 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; next2(); function next2(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(next2, 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, next2); } else { layer.handleRequest(req, res, next2); } sync = 0; } }; Route.prototype.all = function all3(handler) { const callbacks = flatten.call(slice2.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(slice2.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 slice2 = 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, next2) { router.handle(req, res, next2); } 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 = next2; if (req.method === "OPTIONS") { methods2 = []; done = wrap2(done, generateOptionsResponder(res, methods2)); } req.baseUrl = parentUrl; req.originalUrl = req.originalUrl || req.url; next2(); function next2(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(next2, 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) { next2(layerError || err3); } else if (route) { layer.handleRequest(req, res, next2); } 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)) { next2(layerError); return; } const c = path[layerPath.length]; if (c && c !== "/") { next2(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, next2); } else { layer.handleRequest(req, res, next2); } } }; 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(slice2.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, next2) { route2.dispatch(req, res, next2); } 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, slice2.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, parent2) { if (typeof parent2 !== "object" || !parent2) { return params; } const obj = Object.assign({}, parent2); if (!(0 in params) || !(0 in parent2)) { return Object.assign(obj, params); } let i = 0; let o = 0; while (i in params) { i++; } while (o in parent2) { 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, next2) { try { sendOptionsResponse(res, methods2); } catch (err2) { next2(err2); } } function wrap2(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_utils32().methods; var compileETag = require_utils32().compileETag; var compileQueryParser = require_utils32().compileQueryParser; var compileTrust = require_utils32().compileTrust; var resolve = require("node:path").resolve; var once = require_once(); var Router = require_router(); var slice2 = 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 = "production"; 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(parent2) { if (this.settings[trustProxyDefaultSymbol] === true && typeof parent2.settings["trust proxy fn"] === "function") { delete this.settings["trust proxy"]; delete this.settings["trust proxy fn"]; } Object.setPrototypeOf(this.request, parent2.request); Object.setPrototypeOf(this.response, parent2.response); Object.setPrototypeOf(this.engines, parent2.engines); Object.setPrototypeOf(this.settings, parent2.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(slice2.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, next2) { var orig = req.app; fn2.handle(req, res, function(err2) { Object.setPrototypeOf(req, orig.request); Object.setPrototypeOf(res, orig.response); next2(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, val2) { if (arguments.length === 1) { return this.settings[setting]; } debug('set "%s" to %o', setting, val2); this.settings[setting] = val2; switch (setting) { case "etag": this.set("etag fn", compileETag(val2)); break; case "query parser": this.set("query parser fn", compileQueryParser(val2)); break; case "trust proxy": this.set("trust proxy fn", compileTrust(val2)); 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, slice2.call(arguments, 1)); return this; }; }); app.all = function all3(path) { var route = this.route(path); var args = slice2.call(arguments, 1); for (var i = 0; i < methods.length; i++) { route[methods[i]].apply(route, args); } return this; }; app.render = function render3(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, index2) { var priority = { o: -1, q: 0, s: 0 }; for (var i = 0; i < accepted.length; i++) { var spec = specify(charset, accepted[i], index2); if (spec && (priority.s - spec.s || priority.q - spec.q || priority.o - spec.o) < 0) { priority = spec; } } return priority; } function specify(charset, spec, index2) { var s = 0; if (spec.charset.toLowerCase() === charset.toLowerCase()) { s |= 1; } else if (spec.charset !== "*") { return null; } return { i: index2, 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, index2) { return getCharsetPriority(type, accepts, index2); }); 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_encoding2 = __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, index2) { var priority = { encoding, o: -1, q: 0, s: 0 }; for (var i = 0; i < accepted.length; i++) { var spec = specify(encoding, accepted[i], index2); if (spec && (priority.s - spec.s || priority.q - spec.q || priority.o - spec.o) < 0) { priority = spec; } } return priority; } function specify(encoding, spec, index2) { var s = 0; if (spec.encoding.toLowerCase() === encoding.toLowerCase()) { s |= 1; } else if (spec.encoding !== "*") { return null; } return { encoding, i: index2, 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, index2) { return getEncodingPriority(type, accepts, index2); }); return priorities.filter(isQuality).sort(comparator).map(function getEncoding2(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, index2) { var priority = { o: -1, q: 0, s: 0 }; for (var i = 0; i < accepted.length; i++) { var spec = specify(language, accepted[i], index2); if (spec && (priority.s - spec.s || priority.q - spec.q || priority.o - spec.o) < 0) { priority = spec; } } return priority; } function specify(language, spec, index2) { 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: index2, 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, index2) { return getLanguagePriority(type, accepts, index2); }); 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 val2 = pair[1]; var value = val2 && val2[0] === '"' && val2[val2.length - 1] === '"' ? val2.slice(1, -1) : val2; if (key === "q") { q = parseFloat(value); break; } params[key] = value; } } return { type, subtype, params, q, i }; } function getMediaTypePriority(type, accepted, index2) { var priority = { o: -1, q: 0, s: 0 }; for (var i = 0; i < accepted.length; i++) { var spec = specify(type, accepted[i], index2); if (spec && (priority.s - spec.s || priority.q - spec.q || priority.o - spec.o) < 0) { priority = spec; } } return priority; } function specify(type, spec, index2) { 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: index2, 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, index2) { return getMediaTypePriority(type, accepts, index2); }); 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 index2 = 0; while ((index2 = string.indexOf('"', index2)) !== -1) { count++; index2++; } return count; } function splitKeyValuePair(str) { var index2 = str.indexOf("="); var key; var val2; if (index2 === -1) { key = str; } else { key = str.slice(0, index2); val2 = str.slice(index2 + 1); } return [key, val2]; } 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_encoding2(); 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 first2 = accepts[0]; return first2 ? types[mimes.indexOf(first2)] : 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 end2 = 0; var list = []; var start = 0; for (var i = 0, len = str.length; i < len; i++) { switch (str.charCodeAt(i)) { case 32: if (start === end2) { start = end2 = i + 1; } break; case 44: list.push(str.substring(start, end2)); start = end2 = i + 1; break; default: end2 = i + 1; break; } } list.push(str.substring(start, end2)); 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 index2 = str.indexOf("="); if (index2 === -1) { return -2; } var arr = str.slice(index2 + 1).split(","); var ranges = []; ranges.type = str.slice(0, index2); for (var i = 0; i < arr.length; i++) { var range = arr[i].split("-"); var start = parseInt(range[0], 10); var end2 = parseInt(range[1], 10); if (isNaN(start)) { start = size - end2; end2 = size - 1; } else if (isNaN(end2)) { end2 = size - 1; } if (end2 > size - 1) { end2 = size - 1; } if (isNaN(start) || isNaN(end2) || start > end2 || start < 0) { continue; } ranges.push({ start, end: end2 }); } 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, index2) { return { start: range.start, end: range.end, index: index2 }; } 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_request3 = __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 parse8 = 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 = parse8(this).query; return queryparse(querystring); }); req.is = function is4(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 index2 = header.indexOf(","); return index2 !== -1 ? header.substring(0, index2).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 parse8(this).pathname; }); defineGetter(req, "host", function host() { var trust = this.app.get("trust proxy fn"); var val2 = this.get("X-Forwarded-Host"); if (!val2 || !trust(this.connection.remoteAddress, 0)) { val2 = this.get("Host"); } else if (val2.indexOf(",") !== -1) { val2 = val2.substring(0, val2.indexOf(",")).trimRight(); } return val2 || void 0; }); defineGetter(req, "hostname", function hostname() { var host = this.host; if (!host) return; var offset = host[0] === "[" ? host.indexOf("]") + 1 : 0; var index2 = host.indexOf(":", offset); return index2 !== -1 ? host.substring(0, index2) : 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 val2 = this.get("X-Requested-With") || ""; return val2.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 = parse8; 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 val2 = param.slice(-1) === "*" ? ustring(parameters[param]) : qstring(parameters[param]); string += "; " + param + "=" + val2; } } 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(val2) { return String(val2).replace(NON_LATIN1_REGEXP, "?"); } function parse8(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 index2 = match[0].length; var type = match[1].toLowerCase(); var key; var names = []; var params = {}; var value; index2 = PARAM_REGEXP.lastIndex = match[0].slice(-1) === ";" ? index2 - 1 : index2; while (match = PARAM_REGEXP.exec(string)) { if (match.index !== index2) { throw new TypeError("invalid parameter format"); } index2 += 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 (index2 !== -1 && index2 !== 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(val2) { var str = String(val2); return '"' + str.replace(QUOTE_REGEXP, "\\$1") + '"'; } function ustring(val2) { var str = String(val2); 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 crypto4 = require("crypto"); exports2.sign = function(val2, secret) { if ("string" != typeof val2) throw new TypeError("Cookie value must be provided as a string."); if (null == secret) throw new TypeError("Secret key must be provided."); return val2 + "." + crypto4.createHmac("sha256", secret).update(val2).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 && crypto4.timingSafeEqual(expectedBuffer, inputBuffer) ? tentativeValue : false; }; } }); var require_cookie = __commonJS2({ "node_modules/cookie/index.js"(exports2) { "use strict"; exports2.parse = parse8; exports2.serialize = serialize3; 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 parse8(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 index2 = 0; var eqIdx = 0; var endIdx = 0; do { eqIdx = str.indexOf("=", index2); if (eqIdx === -1) break; endIdx = str.indexOf(";", index2); if (endIdx === -1) { endIdx = len; } else if (eqIdx > endIdx) { index2 = str.lastIndexOf(";", eqIdx - 1) + 1; continue; } var keyStartIdx = startIndex(str, index2, 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 val2 = str.slice(valStartIdx, valEndIdx); obj[key] = tryDecode(val2, dec); } index2 = endIdx + 1; } while (index2 < len); return obj; } function startIndex(str, index2, max) { do { var code = str.charCodeAt(index2); if (code !== 32 && code !== 9) return index2; } while (++index2 < max); return max; } function endIndex(str, index2, min) { while (index2 > min) { var code = str.charCodeAt(--index2); if (code !== 32 && code !== 9) return index2 + 1; } return min; } function serialize3(name, val2, 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(val2); 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(val2) { return __toString.call(val2) === "[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 root2 = 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 (root2 !== 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(root2, 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 prop2 in options) { opts[prop2] = options[prop2]; } 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 next2(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 next2(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 next2(err3); if (stat.isDirectory()) return next2(); self2.emit("file", p, stat); self2.send(p, stat); }); } }; SendStream.prototype.sendIndex = function sendIndex(path2) { var i = -1; var self2 = this; function next2(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 next2(err3); if (stat.isDirectory()) return next2(); self2.emit("file", p, stat); self2.send(p, stat); }); } next2(); }; SendStream.prototype.stream = function stream5(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 val2 = etag(stat); debug("etag %s", val2); res.setHeader("ETag", val2); } }; 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(val2, name) { var list = [].concat(val2 || []); 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 end2 = 0; var list = []; var start = 0; for (var i = 0, len = str.length; i < len; i++) { switch (str.charCodeAt(i)) { case 32: if (start === end2) { start = end2 = i + 1; } break; case 44: if (start !== end2) { list.push(str.substring(start, end2)); } start = end2 = i + 1; break; default: end2 = i + 1; break; } } if (start !== end2) { list.push(str.substring(start, end2)); } 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 = append4; var FIELD_NAME_REGEXP = /^[!#$%&'*+\-.^_`|~0-9A-Za-z]+$/; function append4(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) ? parse8(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 val2 = header; var vals = parse8(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); val2 = val2 ? val2 + ", " + fields[i] : fields[i]; } } return val2; } function parse8(header) { var end2 = 0; var list = []; var start = 0; for (var i = 0, len = header.length; i < len; i++) { switch (header.charCodeAt(i)) { case 32: if (start === end2) { start = end2 = i + 1; } break; case 44: list.push(header.substring(start, end2)); start = end2 = i + 1; break; default: end2 = i + 1; break; } } list.push(header.substring(start, end2)); return list; } function vary(res, field) { if (!res || !res.getHeader || !res.setHeader) { throw new TypeError("res argument is required"); } var val2 = res.getHeader("Vary") || ""; var header = Array.isArray(val2) ? val2.join(", ") : String(val2); if (val2 = append4(header, field)) { res.setHeader("Vary", val2); } } } }); var require_response2 = __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_utils32().normalizeType; var normalizeTypes = require_utils32().normalizeTypes; var setCharset = require_utils32().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 escape22 = app.get("json escape"); var replacer = app.get("json replacer"); var spaces = app.get("json spaces"); var body = stringify2(obj, replacer, spaces, escape22); 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 escape22 = app.get("json escape"); var replacer = app.get("json replacer"); var spaces = app.get("json spaces"); var body = stringify2(obj, replacer, spaces, escape22); 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 next2 = 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 next2(); if (err2 && err2.code !== "ECONNABORTED" && err2.syscall !== "write") { next2(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 next2 = 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, next2); } else if (obj.default) { obj.default(req, this, next2); } else { next2(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 append4(field, val2) { var prev2 = this.get(field); var value = val2; if (prev2) { value = Array.isArray(prev2) ? prev2.concat(val2) : Array.isArray(val2) ? [prev2].concat(val2) : [prev2, val2]; } return this.set(field, value); }; res.set = res.header = function header(field, val2) { if (arguments.length === 2) { var value = Array.isArray(val2) ? val2.map(String) : String(val2); 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 val2 = typeof value === "object" ? "j:" + JSON.stringify(value) : String(value); if (signed) { val2 = "s:" + sign(val2, 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(val2), 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 render3(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 stringify2(value, replacer, spaces, escape22) { var json = replacer || spaces ? JSON.stringify(value, replacer, spaces) : JSON.stringify(value); if (escape22 && 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(root2, options) { if (!root2) { throw new TypeError("root path required"); } if (typeof root2 !== "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(root2); var onDirectory = redirect ? createRedirectDirectoryListener() : createNotFoundDirectoryListener(); return function serveStatic2(req, res, next2) { if (req.method !== "GET" && req.method !== "HEAD") { if (fallthrough) { return next2(); } 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 stream5 = send(req, path, opts); stream5.on("directory", onDirectory); if (setHeaders) { stream5.on("headers", setHeaders); } if (fallthrough) { stream5.on("file", function onFile() { forwardError = true; }); } stream5.on("error", function error(err2) { if (forwardError || !(err2.statusCode < 500)) { next2(err2); return; } next2(); }); stream5.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_request3(); var res = require_response2(); exports2 = module2.exports = createApplication; function createApplication() { var app = function(req2, res2, next2) { app.handle(req2, res2, next2); }; 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 = { "&": "&amp;", "<": "&lt;", ">": "&gt;", '"': "&quot;", "'": "&#39;" }; var htmlUnescapes = { "&amp;": "&", "&lt;": "<", "&gt;": ">", "&quot;": '"', "&#39;": "'" }; 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 root2 = 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 index2 = -1, length = array == null ? 0 : array.length; while (++index2 < length) { var value = array[index2]; setter(accumulator, value, iteratee(value), array); } return accumulator; } function arrayEach(array, iteratee) { var index2 = -1, length = array == null ? 0 : array.length; while (++index2 < length) { if (iteratee(array[index2], index2, 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 index2 = -1, length = array == null ? 0 : array.length; while (++index2 < length) { if (!predicate(array[index2], index2, array)) { return false; } } return true; } function arrayFilter(array, predicate) { var index2 = -1, length = array == null ? 0 : array.length, resIndex = 0, result = []; while (++index2 < length) { var value = array[index2]; if (predicate(value, index2, 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 index2 = -1, length = array == null ? 0 : array.length; while (++index2 < length) { if (comparator(value, array[index2])) { return true; } } return false; } function arrayMap(array, iteratee) { var index2 = -1, length = array == null ? 0 : array.length, result = Array(length); while (++index2 < length) { result[index2] = iteratee(array[index2], index2, array); } return result; } function arrayPush(array, values) { var index2 = -1, length = values.length, offset = array.length; while (++index2 < length) { array[offset + index2] = values[index2]; } return array; } function arrayReduce(array, iteratee, accumulator, initAccum) { var index2 = -1, length = array == null ? 0 : array.length; if (initAccum && length) { accumulator = array[++index2]; } while (++index2 < length) { accumulator = iteratee(accumulator, array[index2], index2, 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 index2 = -1, length = array == null ? 0 : array.length; while (++index2 < length) { if (predicate(array[index2], index2, 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, index2 = fromIndex + (fromRight ? 1 : -1); while (fromRight ? index2-- : ++index2 < length) { if (predicate(array[index2], index2, array)) { return index2; } } 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 index2 = fromIndex - 1, length = array.length; while (++index2 < length) { if (comparator(array[index2], value)) { return index2; } } 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, index2, collection2) { accumulator = initAccum ? (initAccum = false, value) : iteratee(accumulator, value, index2, 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, index2 = -1, length = array.length; while (++index2 < length) { var current = iteratee(array[index2]); if (current !== undefined2) { result = result === undefined2 ? current : result + current; } } return result; } function baseTimes(n, iteratee) { var index2 = -1, result = Array(n); while (++index2 < n) { result[index2] = iteratee(index2); } 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 index2 = -1, length = strSymbols.length; while (++index2 < length && baseIndexOf(chrSymbols, strSymbols[index2], 0) > -1) { } return index2; } function charsEndIndex(strSymbols, chrSymbols) { var index2 = strSymbols.length; while (index2-- && baseIndexOf(chrSymbols, strSymbols[index2], 0) > -1) { } return index2; } 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 data2, result = []; while (!(data2 = iterator.next()).done) { result.push(data2.value); } return result; } function mapToArray(map2) { var index2 = -1, result = Array(map2.size); map2.forEach(function(value, key) { result[++index2] = [key, value]; }); return result; } function overArg(func, transform) { return function(arg) { return func(transform(arg)); }; } function replaceHolders(array, placeholder) { var index2 = -1, length = array.length, resIndex = 0, result = []; while (++index2 < length) { var value = array[index2]; if (value === placeholder || value === PLACEHOLDER) { array[index2] = PLACEHOLDER; result[resIndex++] = index2; } } return result; } function setToArray(set) { var index2 = -1, result = Array(set.size); set.forEach(function(value) { result[++index2] = value; }); return result; } function setToPairs(set) { var index2 = -1, result = Array(set.size); set.forEach(function(value) { result[++index2] = [value, value]; }); return result; } function strictIndexOf(array, value, fromIndex) { var index2 = fromIndex - 1, length = array.length; while (++index2 < length) { if (array[index2] === value) { return index2; } } return -1; } function strictLastIndexOf(array, value, fromIndex) { var index2 = fromIndex + 1; while (index2--) { if (array[index2] === value) { return index2; } } return index2; } function stringSize(string) { return hasUnicode(string) ? unicodeSize(string) : asciiSize(string); } function stringToArray(string) { return hasUnicode(string) ? unicodeToArray(string) : asciiToArray(string); } function trimmedEndIndex(string) { var index2 = string.length; while (index2-- && reWhitespace.test(string.charAt(index2))) { } return index2; } 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 ? root2 : _2.defaults(root2.Object(), context, _2.pick(root2, 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 = root2._; 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 !== root2.clearTimeout && context.clearTimeout, ctxNow = Date2 && Date2.now !== root2.Date.now && Date2.now, ctxSetTimeout = context.setTimeout !== root2.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, end2 = view.end, length = end2 - start, index2 = isRight ? end2 : 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) { index2 += dir; var iterIndex = -1, value = array[index2]; while (++iterIndex < iterLength) { var data2 = iteratees[iterIndex], iteratee2 = data2.iteratee, type = data2.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 index2 = -1, length = entries == null ? 0 : entries.length; this.clear(); while (++index2 < length) { var entry2 = entries[index2]; 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 data2 = this.__data__; if (nativeCreate) { var result2 = data2[key]; return result2 === HASH_UNDEFINED ? undefined2 : result2; } return hasOwnProperty2.call(data2, key) ? data2[key] : undefined2; } function hashHas(key) { var data2 = this.__data__; return nativeCreate ? data2[key] !== undefined2 : hasOwnProperty2.call(data2, key); } function hashSet(key, value) { var data2 = this.__data__; this.size += this.has(key) ? 0 : 1; data2[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 index2 = -1, length = entries == null ? 0 : entries.length; this.clear(); while (++index2 < length) { var entry2 = entries[index2]; this.set(entry2[0], entry2[1]); } } function listCacheClear() { this.__data__ = []; this.size = 0; } function listCacheDelete(key) { var data2 = this.__data__, index2 = assocIndexOf(data2, key); if (index2 < 0) { return false; } var lastIndex = data2.length - 1; if (index2 == lastIndex) { data2.pop(); } else { splice.call(data2, index2, 1); } --this.size; return true; } function listCacheGet(key) { var data2 = this.__data__, index2 = assocIndexOf(data2, key); return index2 < 0 ? undefined2 : data2[index2][1]; } function listCacheHas(key) { return assocIndexOf(this.__data__, key) > -1; } function listCacheSet(key, value) { var data2 = this.__data__, index2 = assocIndexOf(data2, key); if (index2 < 0) { ++this.size; data2.push([key, value]); } else { data2[index2][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 index2 = -1, length = entries == null ? 0 : entries.length; this.clear(); while (++index2 < length) { var entry2 = entries[index2]; 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 data2 = getMapData(this, key), size2 = data2.size; data2.set(key, value); this.size += data2.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 index2 = -1, length = values2 == null ? 0 : values2.length; this.__data__ = new MapCache(); while (++index2 < length) { this.add(values2[index2]); } } 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 data2 = this.__data__ = new ListCache(entries); this.size = data2.size; } function stackClear() { this.__data__ = new ListCache(); this.size = 0; } function stackDelete(key) { var data2 = this.__data__, result2 = data2["delete"](key); this.size = data2.size; return result2; } function stackGet(key) { return this.__data__.get(key); } function stackHas(key) { return this.__data__.has(key); } function stackSet(key, value) { var data2 = this.__data__; if (data2 instanceof ListCache) { var pairs = data2.__data__; if (!Map2 || pairs.length < LARGE_ARRAY_SIZE - 1) { pairs.push([key, value]); this.size = ++data2.size; return this; } data2 = this.__data__ = new MapCache(pairs); } data2.set(key, value); this.size = data2.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 && !eq2(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) && eq2(objValue, value)) || value === undefined2 && !(key in object)) { baseAssignValue(object, key, value); } } function assocIndexOf(array, key) { var length = array.length; while (length--) { if (eq2(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 index2 = -1, length = paths.length, result2 = Array2(length), skip = object == null; while (++index2 < length) { result2[index2] = skip ? undefined2 : get2(object, paths[index2]); } 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 index2 = -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 (++index2 < length) { var value = array[index2], 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, index2, collection2) { result2 = !!predicate(value, index2, collection2); return result2; }); return result2; } function baseExtremum(array, iteratee2, comparator) { var index2 = -1, length = array.length; while (++index2 < length) { var value = array[index2], 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, end2) { var length = array.length; start = toInteger(start); if (start < 0) { start = -start > length ? 0 : length + start; } end2 = end2 === undefined2 || end2 > length ? length : toInteger(end2); if (end2 < 0) { end2 += length; } end2 = start > end2 ? 0 : toLength(end2); while (start < end2) { array[start++] = value; } return array; } function baseFilter(collection, predicate) { var result2 = []; baseEach(collection, function(value, index2, collection2) { if (predicate(value, index2, collection2)) { result2.push(value); } }); return result2; } function baseFlatten(array, depth, predicate, isStrict, result2) { var index2 = -1, length = array.length; predicate || (predicate = isFlattenable); result2 || (result2 = []); while (++index2 < length) { var value = array[index2]; 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 index2 = 0, length = path.length; while (object != null && index2 < length) { object = object[toKey(path[index2++])]; } return index2 && index2 == 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, end2) { return number >= nativeMin(start, end2) && number < nativeMax(start, end2); } 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 index2 = -1, seen = caches[0]; outer: while (++index2 < length && result2.length < maxLength) { var value = array[index2], 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 = parent2(object, path); var func = object == null ? object : object[toKey(last2(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 index2 = matchData.length, length = index2, noCustomizer = !customizer; if (object == null) { return !length; } object = Object2(object); while (index2--) { var data2 = matchData[index2]; if (noCustomizer && data2[2] ? data2[1] !== object[data2[0]] : !(data2[0] in object)) { return false; } } while (++index2 < length) { data2 = matchData[index2]; var key = data2[0], objValue = object[key], srcValue = data2[1]; if (noCustomizer && data2[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 index2 = -1, result2 = isArrayLike2(collection) ? Array2(collection.length) : []; baseEach(collection, function(value, key, collection2) { result2[++index2] = 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 = get2(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 index2 = -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": ++index2, "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 index2 = -1, length = paths.length, result2 = {}; while (++index2 < length) { var path = paths[index2], 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, index2 = -1, length = values2.length, seen = array; if (array === values2) { values2 = copyArray(values2); } if (iteratee2) { seen = arrayMap(array, baseUnary(iteratee2)); } while (++index2 < length) { var fromIndex = 0, value = values2[index2], 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 index2 = indexes[length]; if (length == lastIndex || index2 !== previous) { var previous = index2; if (isIndex(index2)) { splice.call(array, index2, 1); } else { baseUnset(array, index2); } } } return array; } function baseRandom(lower, upper) { return lower + nativeFloor(nativeRandom() * (upper - lower + 1)); } function baseRange(start, end2, step, fromRight) { var index2 = -1, length = nativeMax(nativeCeil((end2 - start) / (step || 1)), 0), result2 = Array2(length); while (length--) { result2[fromRight ? length : ++index2] = 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 index2 = -1, length = path.length, lastIndex = length - 1, nested = object; while (nested != null && ++index2 < length) { var key = toKey(path[index2]), newValue = value; if (key === "__proto__" || key === "constructor" || key === "prototype") { return object; } if (index2 != lastIndex) { var objValue = nested[key]; newValue = customizer ? customizer(objValue, key, nested) : undefined2; if (newValue === undefined2) { newValue = isObject2(objValue) ? objValue : isIndex(path[index2 + 1]) ? [] : {}; } } assignValue(nested, key, newValue); nested = nested[key]; } return object; } var baseSetData = !metaMap ? identity : function(func, data2) { metaMap.set(func, data2); 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, end2) { var index2 = -1, length = array.length; if (start < 0) { start = -start > length ? 0 : length + start; } end2 = end2 > length ? length : end2; if (end2 < 0) { end2 += length; } length = start > end2 ? 0 : end2 - start >>> 0; start >>>= 0; var result2 = Array2(length); while (++index2 < length) { result2[index2] = array[index2 + start]; } return result2; } function baseSome(collection, predicate) { var result2; baseEach(collection, function(value, index2, collection2) { result2 = predicate(value, index2, 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 index2 = -1, length = array.length, resIndex = 0, result2 = []; while (++index2 < length) { var value = array[index2], computed = iteratee2 ? iteratee2(value) : value; if (!index2 || !eq2(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 index2 = -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 (++index2 < length) { var value = array[index2], 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 = parent2(object, path); return object == null || delete object[toKey(last2(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, index2 = fromRight ? length : -1; while ((fromRight ? index2-- : ++index2 < length) && predicate(array[index2], index2, array)) { } return isDrop ? baseSlice(array, fromRight ? 0 : index2, fromRight ? index2 + 1 : length) : baseSlice(array, fromRight ? index2 + 1 : 0, fromRight ? length : index2); } 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 index2 = -1, result2 = Array2(length); while (++index2 < length) { var array = arrays[index2], othIndex = -1; while (++othIndex < length) { if (othIndex != index2) { result2[index2] = baseDifference(result2[index2] || array, arrays[othIndex], iteratee2, comparator); } } } return baseUniq(baseFlatten(result2, 1), iteratee2, comparator); } function baseZipObject(props, values2, assignFunc) { var index2 = -1, length = props.length, valsLength = values2.length, result2 = {}; while (++index2 < length) { var value = index2 < valsLength ? values2[index2] : undefined2; assignFunc(result2, props[index2], 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(toString4(value)); } var castRest = baseRest; function castSlice(array, start, end2) { var length = array.length; end2 = end2 === undefined2 ? length : end2; return !start && end2 >= length ? array : baseSlice(array, start, end2); } var clearTimeout2 = ctxClearTimeout || function(id) { return root2.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 index2 = -1, objCriteria = object.criteria, othCriteria = other.criteria, length = objCriteria.length, ordersLength = orders.length; while (++index2 < length) { var result2 = compareAscending(objCriteria[index2], othCriteria[index2]); if (result2) { if (index2 >= ordersLength) { return result2; } var order = orders[index2]; 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 index2 = -1, length = source.length; array || (array = Array2(length)); while (++index2 < length) { array[index2] = source[index2]; } return array; } function copyObject(source, props, object, customizer) { var isNew = !object; object || (object = {}); var index2 = -1, length = props.length; while (++index2 < length) { var key = props[index2]; 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 index2 = -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 (++index2 < length) { var source = sources[index2]; if (source) { assigner(object, source, index2, customizer); } } return object; }); } function createBaseEach(eachFunc, fromRight) { return function(collection, iteratee2) { if (collection == null) { return collection; } if (!isArrayLike2(collection)) { return eachFunc(collection, iteratee2); } var length = collection.length, index2 = fromRight ? length : -1, iterable = Object2(collection); while (fromRight ? index2-- : ++index2 < length) { if (iteratee2(iterable[index2], index2, iterable) === false) { break; } } return collection; }; } function createBaseFor(fromRight) { return function(object, iteratee2, keysFunc) { var index2 = -1, iterable = Object2(object), props = keysFunc(object), length = props.length; while (length--) { var key = props[fromRight ? length : ++index2]; 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 !== root2 && this instanceof wrapper ? Ctor : func; return fn.apply(isBind ? thisArg : this, arguments); } return wrapper; } function createCaseFirst(methodName) { return function(string) { string = toString4(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), index2 = length, placeholder = getHolder(wrapper); while (index2--) { args[index2] = arguments[index2]; } 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 !== root2 && 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 (!isArrayLike2(collection)) { var iteratee2 = getIteratee(predicate, 3); collection = keys(collection); predicate = function(key) { return iteratee2(iterable[key], key, iterable); }; } var index2 = findIndexFunc(collection, predicate, fromIndex); return index2 > -1 ? iterable[iteratee2 ? collection[index2] : index2] : undefined2; }; } function createFlow(fromRight) { return flatRest(function(funcs) { var length = funcs.length, index2 = length, prereq = LodashWrapper.prototype.thru; if (fromRight) { funcs.reverse(); } while (index2--) { var func = funcs[index2]; if (typeof func != "function") { throw new TypeError2(FUNC_ERROR_TEXT); } if (prereq && !wrapper && getFuncName(func) == "wrapper") { var wrapper = new LodashWrapper([], true); } } index2 = wrapper ? index2 : length; while (++index2 < length) { func = funcs[index2]; var funcName = getFuncName(func), data2 = funcName == "wrapper" ? getData(func) : undefined2; if (data2 && isLaziable(data2[0]) && data2[1] == (WRAP_ARY_FLAG | WRAP_CURRY_FLAG | WRAP_PARTIAL_FLAG | WRAP_REARG_FLAG) && !data2[4].length && data2[9] == 1) { wrapper = wrapper[getFuncName(data2[0])].apply(wrapper, data2[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 index22 = 0, result2 = length ? funcs[index22].apply(this, args) : value; while (++index22 < length) { result2 = funcs[index22].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), index2 = length; while (index2--) { args[index2] = arguments[index2]; } 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 !== root2 && 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 !== root2 && 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, end2, step) { if (step && typeof step != "number" && isIterateeCall(start, end2, step)) { end2 = step = undefined2; } start = toFinite(start); if (end2 === undefined2) { end2 = start; start = 0; } else { end2 = toFinite(end2); } step = step === undefined2 ? start < end2 ? 1 : -1 : toFinite(step); return baseRange(start, end2, 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)) { setData2(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 = (toString4(number) + "e").split("e"), value = func(pair[0] + "e" + (+pair[1] + precision)); pair = (toString4(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 data2 = isBindKey ? undefined2 : getData(func); var newData = [ func, bitmask, thisArg, partials, holders, partialsRight, holdersRight, argPos, ary2, arity ]; if (data2) { mergeData(newData, data2); } 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 = data2 ? baseSetData : setData2; return setWrapToString(setter(result2, newData), func, bitmask); } function customDefaultsAssignIn(objValue, srcValue, key, object) { if (objValue === undefined2 || eq2(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 index2 = -1, result2 = true, seen = bitmask & COMPARE_UNORDERED_FLAG ? new SetCache() : undefined2; stack.set(array, other); stack.set(other, array); while (++index2 < arrLength) { var arrValue = array[index2], othValue = other[index2]; if (customizer) { var compared = isPartial ? customizer(othValue, arrValue, index2, other, array, stack) : customizer(arrValue, othValue, index2, 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 eq2(+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 index2 = objLength; while (index2--) { var key = objProps[index2]; 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 (++index2 < objLength) { key = objProps[index2]; 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 data2 = array[length], otherFunc = data2.func; if (otherFunc == null || otherFunc == func) { return data2.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(map22, key) { var data2 = map22.__data__; return isKeyable(key) ? data2[typeof key == "string" ? "string" : "hash"] : data2.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, end2, transforms) { var index2 = -1, length = transforms.length; while (++index2 < length) { var data2 = transforms[index2], size2 = data2.size; switch (data2.type) { case "drop": start += size2; break; case "dropRight": end2 -= size2; break; case "take": end2 = nativeMin(end2, start + size2); break; case "takeRight": start = nativeMax(start, end2 - size2); break; } } return { "start": start, "end": end2 }; } function getWrapDetails(source) { var match = source.match(reWrapDetails); return match ? match[1].split(reSplitDetails) : []; } function hasPath(object, path, hasFunc) { path = castPath(path, object); var index2 = -1, length = path.length, result2 = false; while (++index2 < length) { var key = toKey(path[index2]); if (!(result2 = object != null && hasFunc(object, key))) { break; } object = object[key]; } if (result2 || ++index2 != 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, index2, object) { if (!isObject2(object)) { return false; } var type = typeof index2; if (type == "number" ? isArrayLike2(object) && isIndex(index2, object.length) : type == "string" && index2 in object) { return eq2(object[index2], 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 data2 = getData(other); return !!data2 && func === data2[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(data2, source) { var bitmask = data2[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 && data2[7].length <= source[8] || srcBitmask == (WRAP_ARY_FLAG | WRAP_REARG_FLAG) && source[7].length <= source[8] && bitmask == WRAP_CURRY_FLAG; if (!(isCommon || isCombo)) { return data2; } if (srcBitmask & WRAP_BIND_FLAG) { data2[2] = source[2]; newBitmask |= bitmask & WRAP_BIND_FLAG ? 0 : WRAP_CURRY_BOUND_FLAG; } var value = source[3]; if (value) { var partials = data2[3]; data2[3] = partials ? composeArgs(partials, value, source[4]) : value; data2[4] = partials ? replaceHolders(data2[3], PLACEHOLDER) : source[4]; } value = source[5]; if (value) { partials = data2[5]; data2[5] = partials ? composeArgsRight(partials, value, source[6]) : value; data2[6] = partials ? replaceHolders(data2[5], PLACEHOLDER) : source[6]; } value = source[7]; if (value) { data2[7] = value; } if (srcBitmask & WRAP_ARY_FLAG) { data2[8] = data2[8] == null ? source[8] : nativeMin(data2[8], source[8]); } if (data2[9] == null) { data2[9] = source[9]; } data2[0] = source[0]; data2[1] = newBitmask; return data2; } 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, index2 = -1, length = nativeMax(args.length - start, 0), array = Array2(length); while (++index2 < length) { array[index2] = args[start + index2]; } index2 = -1; var otherArgs = Array2(start + 1); while (++index2 < start) { otherArgs[index2] = args[index2]; } otherArgs[start] = transform2(array); return apply(func, this, otherArgs); }; } function parent2(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 index2 = indexes[length]; array[length] = isIndex(index2, arrLength) ? oldArray[index2] : undefined2; } return array; } function safeGet(object, key) { if (key === "constructor" && typeof object[key] === "function") { return; } if (key == "__proto__") { return; } return object[key]; } var setData2 = shortOut(baseSetData); var setTimeout2 = ctxSetTimeout || function(func, wait) { return root2.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 index2 = -1, length = array.length, lastIndex = length - 1; size2 = size2 === undefined2 ? length : size2; while (++index2 < size2) { var rand = baseRandom(index2, lastIndex), value = array[rand]; array[rand] = array[index2]; array[index2] = 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 index2 = 0, resIndex = 0, result2 = Array2(nativeCeil(length / size2)); while (index2 < length) { result2[resIndex++] = baseSlice(array, index2, index2 += size2); } return result2; } function compact(array) { var index2 = -1, length = array == null ? 0 : array.length, resIndex = 0, result2 = []; while (++index2 < length) { var value = array[index2]; if (value) { result2[resIndex++] = value; } } return result2; } function concat() { var length = arguments.length; if (!length) { return []; } var args = Array2(length - 1), array = arguments[0], index2 = length; while (index2--) { args[index2 - 1] = arguments[index2]; } 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 = last2(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 = last2(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, end2) { var length = array == null ? 0 : array.length; if (!length) { return []; } if (start && typeof start != "number" && isIterateeCall(array, value, start)) { start = 0; end2 = length; } return baseFill(array, value, start, end2); } function findIndex(array, predicate, fromIndex) { var length = array == null ? 0 : array.length; if (!length) { return -1; } var index2 = fromIndex == null ? 0 : toInteger(fromIndex); if (index2 < 0) { index2 = nativeMax(length + index2, 0); } return baseFindIndex(array, getIteratee(predicate, 3), index2); } function findLastIndex(array, predicate, fromIndex) { var length = array == null ? 0 : array.length; if (!length) { return -1; } var index2 = length - 1; if (fromIndex !== undefined2) { index2 = toInteger(fromIndex); index2 = fromIndex < 0 ? nativeMax(length + index2, 0) : nativeMin(index2, length - 1); } return baseFindIndex(array, getIteratee(predicate, 3), index2, 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 index2 = -1, length = pairs == null ? 0 : pairs.length, result2 = {}; while (++index2 < length) { var pair = pairs[index2]; 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 index2 = fromIndex == null ? 0 : toInteger(fromIndex); if (index2 < 0) { index2 = nativeMax(length + index2, 0); } return baseIndexOf(array, value, index2); } 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 = last2(arrays), mapped = arrayMap(arrays, castArrayLikeObject); if (iteratee2 === last2(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 = last2(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 last2(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 index2 = length; if (fromIndex !== undefined2) { index2 = toInteger(fromIndex); index2 = index2 < 0 ? nativeMax(length + index2, 0) : nativeMin(index2, length - 1); } return value === value ? strictLastIndexOf(array, value, index2) : baseFindIndex(array, baseIsNaN, index2, 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(index2) { return isIndex(index2, length) ? +index2 : index2; }).sort(compareAscending)); return result2; }); function remove2(array, predicate) { var result2 = []; if (!(array && array.length)) { return result2; } var index2 = -1, indexes = [], length = array.length; predicate = getIteratee(predicate, 3); while (++index2 < length) { var value = array[index2]; if (predicate(value, index2, array)) { result2.push(value); indexes.push(index2); } } basePullAt(array, indexes); return result2; } function reverse(array) { return array == null ? array : nativeReverse.call(array); } function slice2(array, start, end2) { var length = array == null ? 0 : array.length; if (!length) { return []; } if (end2 && typeof end2 != "number" && isIterateeCall(array, start, end2)) { start = 0; end2 = length; } else { start = start == null ? 0 : toInteger(start); end2 = end2 === undefined2 ? length : toInteger(end2); } return baseSlice(array, start, end2); } 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 index2 = baseSortedIndex(array, value); if (index2 < length && eq2(array[index2], value)) { return index2; } } 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 index2 = baseSortedIndex(array, value, true) - 1; if (eq2(array[index2], value)) { return index2; } } 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 = last2(arrays); if (isArrayLikeObject(iteratee2)) { iteratee2 = undefined2; } return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true), getIteratee(iteratee2, 2)); }); var unionWith = baseRest(function(arrays) { var comparator = last2(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(index2) { return arrayMap(array, baseProperty(index2)); }); } 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 = last2(arrays); if (isArrayLikeObject(iteratee2)) { iteratee2 = undefined2; } return baseXor(arrayFilter(arrays, isArrayLikeObject), getIteratee(iteratee2, 2)); }); var xorWith = baseRest(function(arrays) { var comparator = last2(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__ = toArray3(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, parent22 = this; while (parent22 instanceof baseLodash) { var clone22 = wrapperClone(parent22); clone22.__index__ = 0; clone22.__values__ = undefined2; if (result2) { previous.__wrapped__ = clone22; } else { result2 = clone22; } var previous = clone22; parent22 = parent22.__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 filter5(collection, predicate) { var func = isArray2(collection) ? arrayFilter : baseFilter; return func(collection, getIteratee(predicate, 3)); } var find4 = createFind(findIndex); var findLast = createFind(findLastIndex); function flatMap(collection, iteratee2) { return baseFlatten(map2(collection, iteratee2), 1); } function flatMapDeep(collection, iteratee2) { return baseFlatten(map2(collection, iteratee2), INFINITY); } function flatMapDepth(collection, iteratee2, depth) { depth = depth === undefined2 ? 1 : toInteger(depth); return baseFlatten(map2(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 = isArrayLike2(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 index2 = -1, isFunc = typeof path == "function", result2 = isArrayLike2(collection) ? Array2(collection.length) : []; baseEach(collection, function(value) { result2[++index2] = isFunc ? apply(path, value, args) : baseInvoke(value, path, args); }); return result2; }); var keyBy = createAggregator(function(result2, value, key) { baseAssignValue(result2, key, value); }); function map2(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 (isArrayLike2(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 some2(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 root2.Date.now(); }; function after2(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 before2(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 before2(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 index2 = -1, length = nativeMin(args.length, funcsLength); while (++index2 < length) { args[index2] = transforms[index2].call(this, args[index2]); } 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 wrap2(value, wrapper) { return partial(castFunction(wrapper), value); } function castArray() { if (!arguments.length) { return []; } var value = arguments[0]; return isArray2(value) ? value : [value]; } function clone2(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 eq2(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 isArrayLike2(value) { return value != null && isLength(value.length) && !isFunction2(value); } function isArrayLikeObject(value) { return isObjectLike(value) && isArrayLike2(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 (isArrayLike2(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 isNumber3(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 isNumber3(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 toArray3(value) { if (!value) { return []; } if (isArrayLike2(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 toString4(value) { return value == null ? "" : baseToString(value); } var assign = createAssigner(function(object, source) { if (isPrototype(source) || isArrayLike2(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 index2 = -1; var length = sources.length; var guard = length > 2 ? sources[2] : undefined2; if (guard && isIterateeCall(sources[0], sources[1], guard)) { length = 1; } while (++index2 < length) { var source = sources[index2]; 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 || eq2(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 get2(object, path, defaultValue) { var result2 = object == null ? undefined2 : baseGet(object, path); return result2 === undefined2 ? defaultValue : result2; } function has2(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 isArrayLike2(object) ? arrayLikeKeys(object) : baseKeys(object); } function keysIn(object) { return isArrayLike2(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 merge3 = 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(prop2) { return [prop2]; }); 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 index2 = -1, length = path.length; if (!length) { length = 1; object = undefined2; } while (++index2 < length) { var value = object == null ? undefined2 : object[toKey(path[index2])]; if (value === undefined2) { index2 = 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, index2, object2) { return iteratee2(accumulator, value, index2, object2); }); return accumulator; } function unset(object, path) { return object == null ? true : baseUnset(object, path); } function update2(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, end2) { start = toFinite(start); if (end2 === undefined2) { end2 = start; start = 0; } else { end2 = toFinite(end2); } number = toNumber(number); return baseInRange(number, start, end2); } 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 camelCase2 = createCompounder(function(result2, word, index2) { word = word.toLowerCase(); return result2 + (index2 ? capitalize(word) : word); }); function capitalize(string) { return upperFirst(toString4(string).toLowerCase()); } function deburr(string) { string = toString4(string); return string && string.replace(reLatin, deburrLetter).replace(reComboMark, ""); } function endsWith2(string, target, position) { string = toString4(string); target = baseToString(target); var length = string.length; position = position === undefined2 ? length : baseClamp(toInteger(position), 0, length); var end2 = position; position -= target.length; return position >= 0 && string.slice(position, end2) == target; } function escape22(string) { string = toString4(string); return string && reHasUnescapedHtml.test(string) ? string.replace(reUnescapedHtml, escapeHtmlChar) : string; } function escapeRegExp(string) { string = toString4(string); return string && reHasRegExpChar.test(string) ? string.replace(reRegExpChar, "\\$&") : string; } var kebabCase = createCompounder(function(result2, word, index2) { return result2 + (index2 ? "-" : "") + word.toLowerCase(); }); var lowerCase = createCompounder(function(result2, word, index2) { return result2 + (index2 ? " " : "") + word.toLowerCase(); }); var lowerFirst = createCaseFirst("toLowerCase"); function pad(string, length, chars) { string = toString4(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 = toString4(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 = toString4(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(toString4(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(toString4(string), n); } function replace() { var args = arguments, string = toString4(args[0]); return args.length < 3 ? string : string.replace(args[1], args[2]); } var snakeCase = createCompounder(function(result2, word, index2) { return result2 + (index2 ? "_" : "") + 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 = toString4(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, index2) { return result2 + (index2 ? " " : "") + upperFirst(word); }); function startsWith(string, target, position) { string = toString4(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 = toString4(string); options = assignInWith({}, options, settings, customDefaultsAssignIn); var imports = assignInWith({}, options.imports, settings.imports, customDefaultsAssignIn), importsKeys = keys(imports), importsValues = baseValues(imports, importsKeys); var isEscaping, isEvaluating, index2 = 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(index2, 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'"; } index2 = 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 toString4(value).toLowerCase(); } function toUpper(value) { return toString4(value).toUpperCase(); } function trim2(string, chars, guard) { string = toString4(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), end2 = charsEndIndex(strSymbols, chrSymbols) + 1; return castSlice(strSymbols, start, end2).join(""); } function trimEnd(string, chars, guard) { string = toString4(string); if (string && (guard || chars === undefined2)) { return string.slice(0, trimmedEndIndex(string) + 1); } if (!string || !(chars = baseToString(chars))) { return string; } var strSymbols = stringToArray(string), end2 = charsEndIndex(strSymbols, stringToArray(chars)) + 1; return castSlice(strSymbols, 0, end2).join(""); } function trimStart(string, chars, guard) { string = toString4(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 = toString4(string); var strLength = string.length; if (hasUnicode(string)) { var strSymbols = stringToArray(string); strLength = strSymbols.length; } if (length >= strLength) { return string; } var end2 = length - stringSize(omission); if (end2 < 1) { return omission; } var result2 = strSymbols ? castSlice(strSymbols, 0, end2).join("") : string.slice(0, end2); if (separator === undefined2) { return result2 + omission; } if (strSymbols) { end2 += result2.length - end2; } if (isRegExp2(separator)) { if (string.slice(end2).search(separator)) { var match, substring = result2; if (!separator.global) { separator = RegExp2(separator.source, toString4(reFlags.exec(separator)) + "g"); } separator.lastIndex = 0; while (match = separator.exec(substring)) { var newEnd = match.index; } result2 = result2.slice(0, newEnd === undefined2 ? end2 : newEnd); } } else if (string.indexOf(baseToString(separator), end2) != end2) { var index2 = result2.lastIndexOf(separator); if (index2 > -1) { result2 = result2.slice(0, index2); } } return result2 + omission; } function unescape2(string) { string = toString4(string); return string && reHasEscapedHtml.test(string) ? string.replace(reEscapedHtml, unescapeHtmlChar) : string; } var upperCase = createCompounder(function(result2, word, index2) { return result2 + (index2 ? " " : "") + word.toUpperCase(); }); var upperFirst = createCaseFirst("toUpperCase"); function words(string, pattern, guard) { string = toString4(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 index2 = -1; while (++index2 < length) { var pair = pairs[index2]; 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 (root2._ === this) { root2._ = 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 index2 = MAX_ARRAY_LENGTH, length = nativeMin(n, MAX_ARRAY_LENGTH); iteratee2 = getIteratee(iteratee2); n -= MAX_ARRAY_LENGTH; var result2 = baseTimes(length, iteratee2); while (++index2 < n) { iteratee2(index2); } return result2; } function toPath(value) { if (isArray2(value)) { return arrayMap(value, toKey); } return isSymbol(value) ? [value] : copyArray(stringToPath(toString4(value))); } function uniqueId(prefix) { var id = ++idCounter; return toString4(prefix) + id; } var add2 = 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 = after2; lodash.ary = ary; lodash.assign = assign; lodash.assignIn = assignIn; lodash.assignInWith = assignInWith; lodash.assignWith = assignWith; lodash.at = at; lodash.before = before2; 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 = filter5; 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 = map2; lodash.mapKeys = mapKeys; lodash.mapValues = mapValues; lodash.matches = matches; lodash.matchesProperty = matchesProperty; lodash.memoize = memoize; lodash.merge = merge3; 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 = remove2; lodash.rest = rest; lodash.reverse = reverse; lodash.sampleSize = sampleSize; lodash.set = set; lodash.setWith = setWith; lodash.shuffle = shuffle; lodash.slice = slice2; 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 = toArray3; 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 = update2; lodash.updateWith = updateWith; lodash.values = values; lodash.valuesIn = valuesIn; lodash.without = without; lodash.words = words; lodash.wrap = wrap2; 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 = add2; lodash.attempt = attempt; lodash.camelCase = camelCase2; lodash.capitalize = capitalize; lodash.ceil = ceil; lodash.clamp = clamp; lodash.clone = clone2; 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 = eq2; lodash.escape = escape22; lodash.escapeRegExp = escapeRegExp; lodash.every = every; lodash.find = find4; 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 = get2; lodash.gt = gt; lodash.gte = gte; lodash.has = has2; 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 = isArrayLike2; 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 = isNumber3; 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 = last2; 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 = some2; 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 = toString4; 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, index2) { LazyWrapper.prototype[methodName] = function(n) { n = n === undefined2 ? 1 : nativeMax(toInteger(n), 0); var result2 = this.__filtered__ && !index2 ? 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, index2) { var type = index2 + 1, isFilter2 = 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__ || isFilter2; return result2; }; }); arrayEach(["head", "last"], function(methodName, index2) { var takeName = "take" + (index2 ? "Right" : ""); LazyWrapper.prototype[methodName] = function() { return this[takeName](1).value()[0]; }; }); arrayEach(["initial", "tail"], function(methodName, index2) { var dropName = "drop" + (index2 ? "" : "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, end2) { start = toInteger(start); var result2 = this; if (result2.__filtered__ && (start > 0 || end2 < 0)) { return new LazyWrapper(result2); } if (start < 0) { result2 = result2.takeRight(-start); } else if (start) { result2 = result2.drop(start); } if (end2 !== undefined2) { end2 = toInteger(end2); result2 = end2 < 0 ? result2.dropRight(-end2) : result2.take(end2 - 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) { root2._ = _2; define(function() { return _2; }); } else if (freeModule) { (freeModule.exports = _2)._ = _2; freeExports._ = _2; } else { root2._ = _2; } }).call(exports2); } }); 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(val2) { if (val2 === null || val2 === void 0) { throw new TypeError("Object.assign cannot be called with null or undefined"); } return Object(val2); } 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, next2) { 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) { next2(); } 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); next2(); } } 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, next2) { optionsCallback(req, function(err2, options) { if (err2) { next2(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) { next2(err22); } else { corsOptions.origin = origin2; cors2(corsOptions, req, res, next2); } }); } else { next2(); } } }); }; } module2.exports = middlewareWrapper; })(); } }); var util4; (function(util22) { util22.assertEqual = (val2) => val2; 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" ? (val2) => Number.isInteger(val2) : (val2) => typeof val2 === "number" && isFinite(val2) && Math.floor(val2) === val2; function joinValues(array, separator = " | ") { return array.map((val2) => typeof val2 === "string" ? `'${val2}'` : val2).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 = (first2, second) => { return { ...first2, ...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 = (data2) => { const t = typeof data2; switch (t) { case "undefined": return ZodParsedType2.undefined; case "string": return ZodParsedType2.string; case "number": return isNaN(data2) ? 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(data2)) { return ZodParsedType2.array; } if (data2 === null) { return ZodParsedType2.null; } if (data2.then && typeof data2.then === "function" && data2.catch && typeof data2.catch === "function") { return ZodParsedType2.promise; } if (typeof Map !== "undefined" && data2 instanceof Map) { return ZodParsedType2.map; } if (typeof Set !== "undefined" && data2 instanceof Set) { return ZodParsedType2.set; } if (typeof Date !== "undefined" && data2 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(map2) { overrideErrorMap2 = map2; } function getErrorMap2() { return overrideErrorMap2; } var makeIssue2 = (params) => { const { data: data2, 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 map2 of maps) { errorMessage = map2(fullIssue, { data: data2, 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(parent2, value, path, key) { this._cachedPath = []; this.parent = parent2; 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 processCreateParams2(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 _a2, _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: (_a2 = message !== null && message !== void 0 ? message : required_error) !== null && _a2 !== void 0 ? _a2 : 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(data2, params) { const result = this.safeParse(data2, params); if (result.success) return result.data; throw result.error; } safeParse(data2, params) { var _a2; const ctx = { common: { issues: [], async: (_a2 = params === null || params === void 0 ? void 0 : params.async) !== null && _a2 !== void 0 ? _a2 : 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: data2, parsedType: getParsedType2(data2) }; const result = this._parseSync({ data: data2, path: ctx.path, parent: ctx }); return handleResult2(ctx, result); } "~validate"(data2) { var _a2, _b; const ctx = { common: { issues: [], async: !!this["~standard"].async }, path: [], schemaErrorMap: this._def.errorMap, parent: null, data: data2, parsedType: getParsedType2(data2) }; if (!this["~standard"].async) { try { const result = this._parseSync({ data: data2, path: [], parent: ctx }); return isValid2(result) ? { value: result.value } : { issues: ctx.common.issues }; } catch (err2) { if ((_b = (_a2 = err2 === null || err2 === void 0 ? void 0 : err2.message) === null || _a2 === void 0 ? void 0 : _a2.toLowerCase()) === null || _b === void 0 ? void 0 : _b.includes("encountered")) { this["~standard"].async = true; } ctx.common = { issues: [], async: true }; } } return this._parseAsync({ data: data2, path: [], parent: ctx }).then((result) => isValid2(result) ? { value: result.value } : { issues: ctx.common.issues }); } async parseAsync(data2, params) { const result = await this.safeParseAsync(data2, params); if (result.success) return result.data; throw result.error; } async safeParseAsync(data2, 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: data2, parsedType: getParsedType2(data2) }; const maybeAsyncResult = this._parse({ data: data2, path: ctx.path, parent: ctx }); const result = await (isAsync2(maybeAsyncResult) ? maybeAsyncResult : Promise.resolve(maybeAsyncResult)); return handleResult2(ctx, result); } refine(check, message) { const getIssueProperties = (val2) => { if (typeof message === "string" || typeof message === "undefined") { return { message }; } else if (typeof message === "function") { return message(val2); } else { return message; } }; return this._refinement((val2, ctx) => { const result = check(val2); const setError = () => ctx.addIssue({ code: ZodIssueCode2.custom, ...getIssueProperties(val2) }); if (typeof Promise !== "undefined" && result instanceof Promise) { return result.then((data2) => { if (!data2) { setError(); return false; } else { return true; } }); } if (!result) { setError(); return false; } else { return true; } }); } refinement(check, refinementData) { return this._refinement((val2, ctx) => { if (!check(val2)) { ctx.addIssue(typeof refinementData === "function" ? refinementData(val2, 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: (data2) => this["~validate"](data2) }; } 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({ ...processCreateParams2(this._def), schema: this, typeName: ZodFirstPartyTypeKind2.ZodEffects, effect: { type: "transform", transform } }); } default(def) { const defaultValueFunc = typeof def === "function" ? def : () => def; return new ZodDefault2({ ...processCreateParams2(this._def), innerType: this, defaultValue: defaultValueFunc, typeName: ZodFirstPartyTypeKind2.ZodDefault }); } brand() { return new ZodBranded2({ typeName: ZodFirstPartyTypeKind2.ZodBranded, type: this, ...processCreateParams2(this._def) }); } catch(def) { const catchValueFunc = typeof def === "function" ? def : () => def; return new ZodCatch2({ ...processCreateParams2(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 emojiRegex2; 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 (_a2) { 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 (!emojiRegex2) { emojiRegex2 = new RegExp(_emojiRegex2, "u"); } if (!emojiRegex2.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 (_a2) { 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((data2) => regex.test(data2), { 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 _a2, _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: (_a2 = options === null || options === void 0 ? void 0 : options.offset) !== null && _a2 !== void 0 ? _a2 : 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 _a2; return new ZodString2({ checks: [], typeName: ZodFirstPartyTypeKind2.ZodString, coerce: (_a2 = params === null || params === void 0 ? void 0 : params.coerce) !== null && _a2 !== void 0 ? _a2 : false, ...processCreateParams2(params) }); }; function floatSafeRemainder2(val2, step) { const valDecCount = (val2.toString().split(".")[1] || "").length; const stepDecCount = (step.toString().split(".")[1] || "").length; const decCount = valDecCount > stepDecCount ? valDecCount : stepDecCount; const valInt = parseInt(val2.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, ...processCreateParams2(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 (_a2) { 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 _a2; return new ZodBigInt2({ checks: [], typeName: ZodFirstPartyTypeKind2.ZodBigInt, coerce: (_a2 = params === null || params === void 0 ? void 0 : params.coerce) !== null && _a2 !== void 0 ? _a2 : false, ...processCreateParams2(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, ...processCreateParams2(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, ...processCreateParams2(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, ...processCreateParams2(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, ...processCreateParams2(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, ...processCreateParams2(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, ...processCreateParams2(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, ...processCreateParams2(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, ...processCreateParams2(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, ...processCreateParams2(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, ...processCreateParams2(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 _a2, _b, _c, _d; const defaultError = (_c = (_b = (_a2 = this._def).errorMap) === null || _b === void 0 ? void 0 : _b.call(_a2, 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(index2) { return new _ZodObject({ ...this._def, catchall: index2 }); } 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, ...processCreateParams2(params) }); }; ZodObject2.strictCreate = (shape, params) => { return new ZodObject2({ shape: () => shape, unknownKeys: "strict", catchall: ZodNever2.create(), typeName: ZodFirstPartyTypeKind2.ZodObject, ...processCreateParams2(params) }); }; ZodObject2.lazycreate = (shape, params) => { return new ZodObject2({ shape, unknownKeys: "strip", catchall: ZodNever2.create(), typeName: ZodFirstPartyTypeKind2.ZodObject, ...processCreateParams2(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, ...processCreateParams2(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, ...processCreateParams2(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 index2 = 0; index2 < a.length; index2++) { const itemA = a[index2]; const itemB = b[index2]; 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, ...processCreateParams2(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, ...processCreateParams2(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(first2, second, third) { if (second instanceof ZodType2) { return new _ZodRecord({ keyType: first2, valueType: second, typeName: ZodFirstPartyTypeKind2.ZodRecord, ...processCreateParams2(third) }); } return new _ZodRecord({ keyType: ZodString2.create(), valueType: first2, typeName: ZodFirstPartyTypeKind2.ZodRecord, ...processCreateParams2(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], index2) => { return { key: keyType._parse(new ParseInputLazyPath2(ctx, key, ctx.path, [index2, "key"])), value: valueType._parse(new ParseInputLazyPath2(ctx, value, ctx.path, [index2, "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, ...processCreateParams2(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, ...processCreateParams2(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, ...processCreateParams2(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, ...processCreateParams2(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, ...processCreateParams2(params) }); }; function createZodEnum2(values, params) { return new ZodEnum2({ values, typeName: ZodFirstPartyTypeKind2.ZodEnum, ...processCreateParams2(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 val2 of this._def.values) { enumValues[val2] = val2; } return enumValues; } get Values() { const enumValues = {}; for (const val2 of this._def.values) { enumValues[val2] = val2; } return enumValues; } get Enum() { const enumValues = {}; for (const val2 of this._def.values) { enumValues[val2] = val2; } 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, ...processCreateParams2(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((data2) => { return this._def.type.parseAsync(data2, { path: ctx.path, errorMap: ctx.common.contextualErrorMap }); })); } }; ZodPromise2.create = (schema, params) => { return new ZodPromise2({ type: schema, typeName: ZodFirstPartyTypeKind2.ZodPromise, ...processCreateParams2(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, ...processCreateParams2(params) }); }; ZodEffects2.createWithPreprocess = (preprocess, schema, params) => { return new ZodEffects2({ schema, effect: { type: "preprocess", transform: preprocess }, typeName: ZodFirstPartyTypeKind2.ZodEffects, ...processCreateParams2(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, ...processCreateParams2(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, ...processCreateParams2(params) }); }; var ZodDefault2 = class extends ZodType2 { _parse(input) { const { ctx } = this._processInputParams(input); let data2 = ctx.data; if (ctx.parsedType === ZodParsedType2.undefined) { data2 = this._def.defaultValue(); } return this._def.innerType._parse({ data: data2, 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, ...processCreateParams2(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, ...processCreateParams2(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, ...processCreateParams2(params) }); }; var BRAND2 = Symbol("zod_brand"); var ZodBranded2 = class extends ZodType2 { _parse(input) { const { ctx } = this._processInputParams(input); const data2 = ctx.data; return this._def.type._parse({ data: data2, 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 = (data2) => { if (isValid2(data2)) { data2.value = Object.freeze(data2.value); } return data2; }; return isAsync2(result) ? result.then((data2) => freeze(data2)) : freeze(result); } unwrap() { return this._def.innerType; } }; ZodReadonly2.create = (type, params) => { return new ZodReadonly2({ innerType: type, typeName: ZodFirstPartyTypeKind2.ZodReadonly, ...processCreateParams2(params) }); }; function cleanParams2(params, data2) { const p = typeof params === "function" ? params(data2) : 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((data2, ctx) => { var _a2, _b; const r = check(data2); if (r instanceof Promise) { return r.then((r2) => { var _a22, _b2; if (!r2) { const params = cleanParams2(_params, data2); const _fatal = (_b2 = (_a22 = params.fatal) !== null && _a22 !== void 0 ? _a22 : fatal) !== null && _b2 !== void 0 ? _b2 : true; ctx.addIssue({ code: "custom", ...params, fatal: _fatal }); } }); } if (!r) { const params = cleanParams2(_params, data2); const _fatal = (_b = (_a2 = params.fatal) !== null && _a2 !== void 0 ? _a2 : 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((data2) => data2 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((val2) => { try { atob(val2); return true; } catch (_a2) { 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 _a2, _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 = (_a2 = options.enableJsonResponse) !== null && _a2 !== void 0 ? _a2 : 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 _a2; const validationError = this.validateRequestHeaders(req); if (validationError) { res.writeHead(403).end(JSON.stringify({ jsonrpc: "2.0", error: { code: -32e3, message: validationError }, id: null })); (_a2 = this.onerror) === null || _a2 === void 0 ? void 0 : _a2.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 _a2, _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 ((_a2 = this._eventStore) === null || _a2 === void 0 ? void 0 : _a2.replayEventsAfter(lastEventId, { send: async (eventId, message) => { var _a22; if (!this.writeSSEEvent(res, message, eventId)) { (_a22 = this.onerror) === null || _a22 === void 0 ? void 0 : _a22.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 _a2, _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: (_a2 = parsedCt.parameters.charset) !== null && _a2 !== void 0 ? _a2 : "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 _a2; if (!this.validateSession(req, res)) { return; } if (!this.validateProtocolVersion(req, res)) { return; } await Promise.resolve((_a2 = this._onsessionclosed) === null || _a2 === void 0 ? void 0 : _a2.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 _a2; let protocolVersion = (_a2 = req.headers["mcp-protocol-version"]) !== null && _a2 !== void 0 ? _a2 : 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 _a2; this._streamMapping.forEach((response) => { response.end(); }); this._streamMapping.clear(); this._requestResponseMap.clear(); (_a2 = this.onclose) === null || _a2 === void 0 ? void 0 : _a2.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 ignoreOverride = 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 getDefaultOptions = (options) => typeof options === "string" ? { ...defaultOptions2, name: options } : { ...defaultOptions2, ...options }; var 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 } ])) }; }; 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); } function parseAnyDef() { return {}; } function parseArrayDef(def, refs) { const res = { type: "array" }; if (def.type?._def && def.type?._def?.typeName !== ZodFirstPartyTypeKind2.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; } 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; } function parseBooleanDef() { return { type: "boolean" }; } function parseBrandedDef(_def, refs) { return parseDef(_def.type._def, refs); } var parseCatchDef = (def, refs) => { return parseDef(def.innerType._def, refs); }; 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 = (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; }; function parseDefaultDef(_def, refs) { return { ...parseDef(_def.innerType._def, refs), default: _def.defaultValue() }; } function parseEffectsDef(_def, refs) { return refs.effectStrategy === "input" ? parseDef(_def.schema._def, refs) : {}; } function parseEnumDef(def) { return { type: "string", enum: Array.from(def.values) }; } var isJsonSchema7AllOfType = (type) => { if ("type" in type && type.type === "string") return false; return "allOf" in type; }; 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; } 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 emojiRegex22 = void 0; var 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 (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 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__ */ ((_2) => { })(check); } } } return res; } function escapeLiteralCheckValue(literal, refs) { return refs.patternStrategy === "escape" ? escapeNonAlphaNumeric(literal) : literal; } var ALPHA_NUMERIC = new Set("ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789"); 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; } 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 === ZodFirstPartyTypeKind2.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: false }; } const schema = { type: "object", additionalProperties: parseDef(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 } = parseStringDef(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 } = parseBrandedDef(def.keyType._def, refs); return { ...schema, propertyNames: keyType }; } return schema; } 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 } }; } 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 }; } function parseNeverDef() { return { not: {} }; } function parseNullDef(refs) { return refs.target === "openApi3" ? { enum: ["null"], nullable: true } : { type: "null" }; } var primitiveMappings = { ZodString: "string", ZodNumber: "number", ZodBigInt: "integer", ZodBoolean: "boolean", ZodNull: "null" }; 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 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; }; 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" }] }; } 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; } function decideAdditionalProperties(def, refs) { if (refs.removeAdditionalStrategy === "strict") { return def.catchall._def.typeName === "ZodNever" ? def.unknownKeys !== "strict" : parseDef(def.catchall._def, { ...refs, currentPath: [...refs.currentPath, "additionalProperties"] }) ?? true; } else { return def.catchall._def.typeName === "ZodNever" ? def.unknownKeys === "passthrough" : parseDef(def.catchall._def, { ...refs, currentPath: [...refs.currentPath, "additionalProperties"] }) ?? true; } } function parseObjectDef(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 = parseDef(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: decideAdditionalProperties(def, refs) }; if (!result.required.length) delete result.required; return result; } var 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 ] } : {}; }; var 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) }; }; function parsePromiseDef(def, refs) { return parseDef(def.type._def, refs); } 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; } 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], []) }; } } function parseUndefinedDef() { return { not: {} }; } function parseUnknownDef() { return {}; } var parseReadonlyDef = (def, refs) => { return parseDef(def.innerType._def, refs); }; var selectParser = (def, typeName, refs) => { switch (typeName) { case ZodFirstPartyTypeKind2.ZodString: return parseStringDef(def, refs); case ZodFirstPartyTypeKind2.ZodNumber: return parseNumberDef(def, refs); case ZodFirstPartyTypeKind2.ZodObject: return parseObjectDef(def, refs); case ZodFirstPartyTypeKind2.ZodBigInt: return parseBigintDef(def, refs); case ZodFirstPartyTypeKind2.ZodBoolean: return parseBooleanDef(); case ZodFirstPartyTypeKind2.ZodDate: return parseDateDef(def, refs); case ZodFirstPartyTypeKind2.ZodUndefined: return parseUndefinedDef(); case ZodFirstPartyTypeKind2.ZodNull: return parseNullDef(refs); case ZodFirstPartyTypeKind2.ZodArray: return parseArrayDef(def, refs); case ZodFirstPartyTypeKind2.ZodUnion: case ZodFirstPartyTypeKind2.ZodDiscriminatedUnion: return parseUnionDef(def, refs); case ZodFirstPartyTypeKind2.ZodIntersection: return parseIntersectionDef(def, refs); case ZodFirstPartyTypeKind2.ZodTuple: return parseTupleDef(def, refs); case ZodFirstPartyTypeKind2.ZodRecord: return parseRecordDef(def, refs); case ZodFirstPartyTypeKind2.ZodLiteral: return parseLiteralDef(def, refs); case ZodFirstPartyTypeKind2.ZodEnum: return parseEnumDef(def); case ZodFirstPartyTypeKind2.ZodNativeEnum: return parseNativeEnumDef(def); case ZodFirstPartyTypeKind2.ZodNullable: return parseNullableDef(def, refs); case ZodFirstPartyTypeKind2.ZodOptional: return parseOptionalDef(def, refs); case ZodFirstPartyTypeKind2.ZodMap: return parseMapDef(def, refs); case ZodFirstPartyTypeKind2.ZodSet: return parseSetDef(def, refs); case ZodFirstPartyTypeKind2.ZodLazy: return () => def.getter()._def; case ZodFirstPartyTypeKind2.ZodPromise: return parsePromiseDef(def, refs); case ZodFirstPartyTypeKind2.ZodNaN: case ZodFirstPartyTypeKind2.ZodNever: return parseNeverDef(); case ZodFirstPartyTypeKind2.ZodEffects: return parseEffectsDef(def, refs); case ZodFirstPartyTypeKind2.ZodAny: return parseAnyDef(); case ZodFirstPartyTypeKind2.ZodUnknown: return parseUnknownDef(); case ZodFirstPartyTypeKind2.ZodDefault: return parseDefaultDef(def, refs); case ZodFirstPartyTypeKind2.ZodBranded: return parseBrandedDef(def, refs); case ZodFirstPartyTypeKind2.ZodReadonly: return parseReadonlyDef(def, refs); case ZodFirstPartyTypeKind2.ZodCatch: return parseCatchDef(def, refs); case ZodFirstPartyTypeKind2.ZodPipeline: return parsePipelineDef(def, refs); case ZodFirstPartyTypeKind2.ZodFunction: case ZodFirstPartyTypeKind2.ZodVoid: case ZodFirstPartyTypeKind2.ZodSymbol: return void 0; default: return /* @__PURE__ */ ((_2) => void 0)(typeName); } }; 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); } newItem.jsonSchema = jsonSchema; return jsonSchema; } var 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, index2) => refs.currentPath[index2] === value)) { console.warn(`Recursive reference detected at ${refs.currentPath.join("/")}! Defaulting to any`); return {}; } return refs.$refStrategy === "seen" ? {} : void 0; } } }; var 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("/"); }; var addMeta = (def, refs, jsonSchema) => { if (def.description) { jsonSchema.description = def.description; if (refs.markdownDescription) { jsonSchema.markdownDescription = def.description; } } return jsonSchema; }; var 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; }; 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 = zodToJsonSchema(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 ? zodToJsonSchema(options.schema) : { type: "object", properties: {}, required: [] }; const configSchema = { $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(configSchema); }); const handleSessionRequest = 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.get("/mcp", handleSessionRequest); 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_cors = __toESM2(require_lib4()); var import_express2 = __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(`[smithery] Starting MCP server on port ${port}`); let server; const app = (0, import_express2.default)(); if (false) { console.log(`[smithery] Injecting cors middleware`); app.use( (0, import_cors.default)({ exposedHeaders: ["mcp-session-id"] }) ); } if (entry.default && typeof entry.default === "function") { console.log(`[smithery] Setting up server.`); 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 }) { ... }" ); } server.app.listen(Number.parseInt(port)); console.log(`[smithery] MCP server started successfully on port ${port}`); } catch (error) { console.error(`[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 *) undici/lib/web/fetch/body.js: (*! formdata-polyfill. MIT License. Jimmy Wärting <https://jimmy.warting.se/opensource> *) undici/lib/web/websocket/frame.js: (*! ws. MIT License. Einar Otto Stangvik <einaros@gmail.com> *) */ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vbm9kZV9tb2R1bGVzL3pvZC9saWIvaW5kZXgubWpzIiwgIi4uL25vZGVfbW9kdWxlcy9AbW9kZWxjb250ZXh0cHJvdG9jb2wvc2RrL3NyYy90eXBlcy50cyIsICIuLi9ub2RlX21vZHVsZXMvQG1vZGVsY29udGV4dHByb3RvY29sL3Nkay9zcmMvc2hhcmVkL3Byb3RvY29sLnRzIiwgIi4uL25vZGVfbW9kdWxlcy91cmktanMvc3JjL2luZGV4LnRzIiwgIi4uL25vZGVfbW9kdWxlcy91cmktanMvc3JjL3NjaGVtZXMvdXJuLXV1aWQudHMiLCAiLi4vbm9kZV9tb2R1bGVzL3VyaS1qcy9zcmMvc2NoZW1lcy91cm4udHMiLCAiLi4vbm9kZV9tb2R1bGVzL3VyaS1qcy9zcmMvc2NoZW1lcy9tYWlsdG8udHMiLCAiLi4vbm9kZV9tb2R1bGVzL3VyaS1qcy9zcmMvc2NoZW1lcy93c3MudHMiLCAiLi4vbm9kZV9tb2R1bGVzL3VyaS1qcy9zcmMvc2NoZW1lcy93cy50cyIsICIuLi9ub2RlX21vZHVsZXMvdXJpLWpzL3NyYy9zY2hlbWVzL2h0dHBzLnRzIiwgIi4uL25vZGVfbW9kdWxlcy91cmktanMvc3JjL3NjaGVtZXMvaHR0cC50cyIsICIuLi9ub2RlX21vZHVsZXMvdXJpLWpzL3NyYy91cmkudHMiLCAiLi4vbm9kZV9tb2R1bGVzL3VyaS1qcy9ub2RlX21vZHVsZXMvcHVueWNvZGUvcHVueWNvZGUuZXM2LmpzIiwgIi4uL25vZGVfbW9kdWxlcy91cmktanMvc3JjL3JlZ2V4cHMtaXJpLnRzIiwgIi4uL25vZGVfbW9kdWxlcy91cmktanMvc3JjL3JlZ2V4cHMtdXJpLnRzIiwgIi4uL25vZGVfbW9kdWxlcy91cmktanMvc3JjL3V0aWwudHMiLCAiLi4vbm9kZV9tb2R1bGVzL2Zhc3QtZGVlcC1lcXVhbC9pbmRleC5qcyIsICIuLi9ub2RlX21vZHVsZXMvYWp2L2xpYi9jb21waWxlL3VjczJsZW5ndGguanMiLCAiLi4vbm9kZV9tb2R1bGVzL2Fqdi9saWIvY29tcGlsZS91dGlsLmpzIiwgIi4uL25vZGVfbW9kdWxlcy9hanYvbGliL2NvbXBpbGUvc2NoZW1hX29iai5qcyIsICIuLi9ub2RlX21vZHVsZXMvanNvbi1zY2hlbWEtdHJhdmVyc2UvaW5kZXguanMiLCAiLi4vbm9kZV9tb2R1bGVzL2Fqdi9saWIvY29tcGlsZS9yZXNvbHZlLmpzIiwgIi4uL25vZGVfbW9kdWxlcy9hanYvbGliL2NvbXBpbGUvZXJyb3JfY2xhc3Nlcy5qcyIsICIuLi9ub2RlX21vZHVsZXMvZmFzdC1qc29uLXN0YWJsZS1zdHJpbmdpZnkvaW5kZXguanMiLCAiLi4vbm9kZV9tb2R1bGVzL2Fqdi9saWIvZG90anMvdmFsaWRhdGUuanMiLCAiLi4vbm9kZV9tb2R1bGVzL2Fqdi9saWIvY29tcGlsZS9pbmRleC5qcyIsICIuLi9ub2RlX21vZHVsZXMvYWp2L2xpYi9jYWNoZS5qcyIsICIuLi9ub2RlX21vZHVsZXMvYWp2L2xpYi9jb21waWxlL2Zvcm1hdHMuanMiLCAiLi4vbm9kZV9tb2R1bGVzL2Fqdi9saWIvZG90anMvcmVmLmpzIiwgIi4uL25vZGVfbW9kdWxlcy9hanYvbGliL2RvdGpzL2FsbE9mLmpzIiwgIi4uL25vZGVfbW9kdWxlcy9hanYvbGliL2RvdGpzL2FueU9mLmpzIiwgIi4uL25vZGVfbW9kdWxlcy9hanYvbGliL2RvdGpzL2NvbW1lbnQuanMiLCAiLi4vbm9kZV9tb2R1bGVzL2Fqdi9saWIvZG90anMvY29uc3QuanMiLCAiLi4vbm9kZV9tb2R1bGVzL2Fqdi9saWIvZG90anMvY29udGFpbnMuanMiLCAiLi4vbm9kZV9tb2R1bGVzL2Fqdi9saWIvZG90anMvZGVwZW5kZW5jaWVzLmpzIiwgIi4uL25vZGVfbW9kdWxlcy9hanYvbGliL2RvdGpzL2VudW0uanMiLCAiLi4vbm9kZV9tb2R1bGVzL2Fqdi9saWIvZG90anMvZm9ybWF0LmpzIiwgIi4uL25vZGVfbW9kdWxlcy9hanYvbGliL2RvdGpzL2lmLmpzIiwgIi4uL25vZGVfbW9kdWxlcy9hanYvbGliL2RvdGpzL2l0ZW1zLmpzIiwgIi4uL25vZGVfbW9kdWxlcy9hanYvbGliL2RvdGpzL19saW1pdC5qcyIsICIuLi9ub2RlX21vZHVsZXMvYWp2L2xpYi9kb3Rqcy9fbGltaXRJdGVtcy5qcyIsICIuLi9ub2RlX21vZHVsZXMvYWp2L2xpYi9kb3Rqcy9fbGltaXRMZW5ndGguanMiLCAiLi4vbm9kZV9tb2R1bGVzL2Fqdi9saWIvZG90anMvX2xpbWl0UHJvcGVydGllcy5qcyIsICIuLi9ub2RlX21vZHVsZXMvYWp2L2xpYi9kb3Rqcy9tdWx0aXBsZU9mLmpzIiwgIi4uL25vZGVfbW9kdWxlcy9hanYvbGliL2RvdGpzL25vdC5qcyIsICIuLi9ub2RlX21vZHVsZXMvYWp2L2xpYi9kb3Rqcy9vbmVPZi5qcyIsICIuLi9ub2RlX21vZHVsZXMvYWp2L2xpYi9kb3Rqcy9wYXR0ZXJuLmpzIiwgIi4uL25vZGVfbW9kdWxlcy9hanYvbGliL2RvdGpzL3Byb3BlcnRpZXMuanMiLCAiLi4vbm9kZV9tb2R1bGVzL2Fqdi9saWIvZG90anMvcHJvcGVydHlOYW1lcy5qcyIsICIuLi9ub2RlX21vZHVsZXMvYWp2L2xpYi9kb3Rqcy9yZXF1aXJlZC5qcyIsICIuLi9ub2RlX21vZHVsZXMvYWp2L2xpYi9kb3Rqcy91bmlxdWVJdGVtcy5qcyIsICIuLi9ub2RlX21vZHVsZXMvYWp2L2xpYi9kb3Rqcy9pbmRleC5qcyIsICIuLi9ub2RlX21vZHVsZXMvYWp2L2xpYi9jb21waWxlL3J1bGVzLmpzIiwgIi4uL25vZGVfbW9kdWxlcy9hanYvbGliL2RhdGEuanMiLCAiLi4vbm9kZV9tb2R1bGVzL2Fqdi9saWIvY29tcGlsZS9hc3luYy5qcyIsICIuLi9ub2RlX21vZHVsZXMvYWp2L2xpYi9kb3Rqcy9jdXN0b20uanMiLCAiLi4vbm9kZV9tb2R1bGVzL2Fqdi9saWIvcmVmcy9qc29uLXNjaGVtYS1kcmFmdC0wNy5qc29uIiwgIi4uL25vZGVfbW9kdWxlcy9hanYvbGliL2RlZmluaXRpb25fc2NoZW1hLmpzIiwgIi4uL25vZGVfbW9kdWxlcy9hanYvbGliL2tleXdvcmQuanMiLCAiLi4vbm9kZV9tb2R1bGVzL2Fqdi9saWIvcmVmcy9kYXRhLmpzb24iLCAiLi4vbm9kZV9tb2R1bGVzL2Fqdi9saWIvYWp2LmpzIiwgIi4uL25vZGVfbW9kdWxlcy9AbW9kZWxjb250ZXh0cHJvdG9jb2wvc2RrL3NyYy9zZXJ2ZXIvaW5kZXgudHMiLCAiLi4vbm9kZV9tb2R1bGVzL2F4aW9zL2xpYi9oZWxwZXJzL2JpbmQuanMiLCAiLi4vbm9kZV9tb2R1bGVzL2F4aW9zL2xpYi91dGlscy5qcyIsICIuLi9ub2RlX21vZHVsZXMvYXhpb3MvbGliL2NvcmUvQXhpb3NFcnJvci5qcyIsICIuLi9ub2RlX21vZHVsZXMvZGVsYXllZC1zdHJlYW0vbGliL2RlbGF5ZWRfc3RyZWFtLmpzIiwgIi4uL25vZGVfbW9kdWxlcy9jb21iaW5lZC1zdHJlYW0vbGliL2NvbWJpbmVkX3N0cmVhbS5qcyIsICIuLi9ub2RlX21vZHVsZXMvbWltZS1kYi9kYi5qc29uIiwgIi4uL25vZGVfbW9kdWxlcy9taW1lLWRiL2luZGV4LmpzIiwgIi4uL25vZGVfbW9kdWxlcy9taW1lLXR5cGVzL2luZGV4LmpzIiwgIi4uL25vZGVfbW9kdWxlcy9hc3luY2tpdC9saWIvZGVmZXIuanMiLCAiLi4vbm9kZV9tb2R1bGVzL2FzeW5ja2l0L2xpYi9hc3luYy5qcyIsICIuLi9ub2RlX21vZHVsZXMvYXN5bmNraXQvbGliL2Fib3J0LmpzIiwgIi4uL25vZGVfbW9kdWxlcy9hc3luY2tpdC9saWIvaXRlcmF0ZS5qcyIsICIuLi9ub2RlX21vZHVsZXMvYXN5bmNraXQvbGliL3N0YXRlLmpzIiwgIi4uL25vZGVfbW9kdWxlcy9hc3luY2tpdC9saWIvdGVybWluYXRvci5qcyIsICIuLi9ub2RlX21vZHVsZXMvYXN5bmNraXQvcGFyYWxsZWwuanMiLCAiLi4vbm9kZV9tb2R1bGVzL2FzeW5ja2l0L3NlcmlhbE9yZGVyZWQuanMiLCAiLi4vbm9kZV9tb2R1bGVzL2FzeW5ja2l0L3NlcmlhbC5qcyIsICIuLi9ub2RlX21vZHVsZXMvYXN5bmNraXQvaW5kZXguanMiLCAiLi4vbm9kZV9tb2R1bGVzL2VzLW9iamVjdC1hdG9tcy9pbmRleC5qcyIsICIuLi9ub2RlX21vZHVsZXMvZXMtZXJyb3JzL2luZGV4LmpzIiwgIi4uL25vZGVfbW9kdWxlcy9lcy1lcnJvcnMvZXZhbC5qcyIsICIuLi9ub2RlX21vZHVsZXMvZXMtZXJyb3JzL3JhbmdlLmpzIiwgIi4uL25vZGVfbW9kdWxlcy9lcy1lcnJvcnMvcmVmLmpzIiwgIi4uL25vZGVfbW9kdWxlcy9lcy1lcnJvcnMvc3ludGF4LmpzIiwgIi4uL25vZGVfbW9kdWxlcy9lcy1lcnJvcnMvdHlwZS5qcyIsICIuLi9ub2RlX21vZHVsZXMvZXMtZXJyb3JzL3VyaS5qcyIsICIuLi9ub2RlX21vZHVsZXMvbWF0aC1pbnRyaW5zaWNzL2Ficy5qcyIsICIuLi9ub2RlX21vZHVsZXMvbWF0aC1pbnRyaW5zaWNzL2Zsb29yLmpzIiwgIi4uL25vZGVfbW9kdWxlcy9tYXRoLWludHJpbnNpY3MvbWF4LmpzIiwgIi4uL25vZGVfbW9kdWxlcy9tYXRoLWludHJpbnNpY3MvbWluLmpzIiwgIi4uL25vZGVfbW9kdWxlcy9tYXRoLWludHJpbnNpY3MvcG93LmpzIiwgIi4uL25vZGVfbW9kdWxlcy9tYXRoLWludHJpbnNpY3Mvcm91bmQuanMiLCAiLi4vbm9kZV9tb2R1bGVzL21hdGgtaW50cmluc2ljcy9pc05hTi5qcyIsICIuLi9ub2RlX21vZHVsZXMvbWF0aC1pbnRyaW5zaWNzL3NpZ24uanMiLCAiLi4vbm9kZV9tb2R1bGVzL2dvcGQvZ09QRC5qcyIsICIuLi9ub2RlX21vZHVsZXMvZ29wZC9pbmRleC5qcyIsICIuLi9ub2RlX21vZHVsZXMvZXMtZGVmaW5lLXByb3BlcnR5L2luZGV4LmpzIiwgIi4uL25vZGVfbW9kdWxlcy9oYXMtc3ltYm9scy9zaGFtcy5qcyIsICIuLi9ub2RlX21vZHVsZXMvaGFzLXN5bWJvbHMvaW5kZXguanMiLCAiLi4vbm9kZV9tb2R1bGVzL2dldC1wcm90by9SZWZsZWN0LmdldFByb3RvdHlwZU9mLmpzIiwgIi4uL25vZGVfbW9kdWxlcy9nZXQtcHJvdG8vT2JqZWN0LmdldFByb3RvdHlwZU9mLmpzIiwgIi4uL25vZGVfbW9kdWxlcy9mdW5jdGlvbi1iaW5kL2ltcGxlbWVudGF0aW9uLmpzIiwgIi4uL25vZGVfbW9kdWxlcy9mdW5jdGlvbi1iaW5kL2luZGV4LmpzIiwgIi4uL25vZGVfbW9kdWxlcy9jYWxsLWJpbmQtYXBwbHktaGVscGVycy9mdW5jdGlvbkNhbGwuanMiLCAiLi4vbm9kZV9tb2R1bGVzL2NhbGwtYmluZC1hcHBseS1oZWxwZXJzL2Z1bmN0aW9uQXBwbHkuanMiLCAiLi4vbm9kZV9tb2R1bGVzL2NhbGwtYmluZC1hcHBseS1oZWxwZXJzL3JlZmxlY3RBcHBseS5qcyIsICIuLi9ub2RlX21vZHVsZXMvY2FsbC1iaW5kLWFwcGx5LWhlbHBlcnMvYWN0dWFsQXBwbHkuanMiLCAiLi4vbm9kZV9tb2R1bGVzL2NhbGwtYmluZC1hcHBseS1oZWxwZXJzL2luZGV4LmpzIiwgIi4uL25vZGVfbW9kdWxlcy9kdW5kZXItcHJvdG8vZ2V0LmpzIiwgIi4uL25vZGVfbW9kdWxlcy9nZXQtcHJvdG8vaW5kZXguanMiLCAiLi4vbm9kZV9tb2R1bGVzL2hhc293bi9pbmRleC5qcyIsICIuLi9ub2RlX21vZHVsZXMvZ2V0LWludHJpbnNpYy9pbmRleC5qcyIsICIuLi9ub2RlX21vZHVsZXMvaGFzLXRvc3RyaW5ndGFnL3NoYW1zLmpzIiwgIi4uL25vZGVfbW9kdWxlcy9lcy1zZXQtdG9zdHJpbmd0YWcvaW5kZXguanMiLCAiLi4vbm9kZV9tb2R1bGVzL2Zvcm0tZGF0YS9saWIvcG9wdWxhdGUuanMiLCAiLi4vbm9kZV9tb2R1bGVzL2Zvcm0tZGF0YS9saWIvZm9ybV9kYXRhLmpzIiwgIi4uL25vZGVfbW9kdWxlcy9heGlvcy9saWIvcGxhdGZvcm0vbm9kZS9jbGFzc2VzL0Zvcm1EYXRhLmpzIiwgIi4uL25vZGVfbW9kdWxlcy9heGlvcy9saWIvaGVscGVycy90b0Zvcm1EYXRhLmpzIiwgIi4uL25vZGVfbW9kdWxlcy9heGlvcy9saWIvaGVscGVycy9BeGlvc1VSTFNlYXJjaFBhcmFtcy5qcyIsICIuLi9ub2RlX21vZHVsZXMvYXhpb3MvbGliL2hlbHBlcnMvYnVpbGRVUkwuanMiLCAiLi4vbm9kZV9tb2R1bGVzL2F4aW9zL2xpYi9jb3JlL0ludGVyY2VwdG9yTWFuYWdlci5qcyIsICIuLi9ub2RlX21vZHVsZXMvYXhpb3MvbGliL2RlZmF1bHRzL3RyYW5zaXRpb25hbC5qcyIsICIuLi9ub2RlX21vZHVsZXMvYXhpb3MvbGliL3BsYXRmb3JtL25vZGUvY2xhc3Nlcy9VUkxTZWFyY2hQYXJhbXMuanMiLCAiLi4vbm9kZV9tb2R1bGVzL2F4aW9zL2xpYi9wbGF0Zm9ybS9ub2RlL2luZGV4LmpzIiwgIi4uL25vZGVfbW9kdWxlcy9heGlvcy9saWIvcGxhdGZvcm0vY29tbW9uL3V0aWxzLmpzIiwgIi4uL25vZGVfbW9kdWxlcy9heGlvcy9saWIvcGxhdGZvcm0vaW5kZXguanMiLCAiLi4vbm9kZV9tb2R1bGVzL2F4aW9zL2xpYi9oZWxwZXJzL3RvVVJMRW5jb2RlZEZvcm0uanMiLCAiLi4vbm9kZV9tb2R1bGVzL2F4aW9zL2xpYi9oZWxwZXJzL2Zvcm1EYXRhVG9KU09OLmpzIiwgIi4uL25vZGVfbW9kdWxlcy9heGlvcy9saWIvZGVmYXVsdHMvaW5kZXguanMiLCAiLi4vbm9kZV9tb2R1bGVzL2F4aW9zL2xpYi9oZWxwZXJzL3BhcnNlSGVhZGVycy5qcyIsICIuLi9ub2RlX21vZHVsZXMvYXhpb3MvbGliL2NvcmUvQXhpb3NIZWFkZXJzLmpzIiwgIi4uL25vZGVfbW9kdWxlcy9heGlvcy9saWIvY29yZS90cmFuc2Zvcm1EYXRhLmpzIiwgIi4uL25vZGVfbW9kdWxlcy9heGlvcy9saWIvY2FuY2VsL2lzQ2FuY2VsLmpzIiwgIi4uL25vZGVfbW9kdWxlcy9heGlvcy9saWIvY2FuY2VsL0NhbmNlbGVkRXJyb3IuanMiLCAiLi4vbm9kZV9tb2R1bGVzL2F4aW9zL2xpYi9jb3JlL3NldHRsZS5qcyIsICIuLi9ub2RlX21vZHVsZXMvYXhpb3MvbGliL2hlbHBlcnMvaXNBYnNvbHV0ZVVSTC5qcyIsICIuLi9ub2RlX21vZHVsZXMvYXhpb3MvbGliL2hlbHBlcnMvY29tYmluZVVSTHMuanMiLCAiLi4vbm9kZV9tb2R1bGVzL2F4aW9zL2xpYi9jb3JlL2J1aWxkRnVsbFBhdGguanMiLCAiLi4vbm9kZV9tb2R1bGVzL3Byb3h5LWZyb20tZW52L2luZGV4LmpzIiwgIi4uL25vZGVfbW9kdWxlcy9tcy9pbmRleC5qcyIsICIuLi9ub2RlX21vZHVsZXMvZGVidWcvc3JjL2NvbW1vbi5qcyIsICIuLi9ub2RlX21vZHVsZXMvZGVidWcvc3JjL2Jyb3dzZXIuanMiLCAiLi4vbm9kZV9tb2R1bGVzL2RlYnVnL3NyYy9ub2RlLmpzIiwgIi4uL25vZGVfbW9kdWxlcy9kZWJ1Zy9zcmMvaW5kZXguanMiLCAiLi4vbm9kZV9tb2R1bGVzL2ZvbGxvdy1yZWRpcmVjdHMvZGVidWcuanMiLCAiLi4vbm9kZV9tb2R1bGVzL2ZvbGxvdy1yZWRpcmVjdHMvaW5kZXguanMiLCAiLi4vbm9kZV9tb2R1bGVzL2F4aW9zL2xpYi9lbnYvZGF0YS5qcyIsICIuLi9ub2RlX21vZHVsZXMvYXhpb3MvbGliL2hlbHBlcnMvcGFyc2VQcm90b2NvbC5qcyIsICIuLi9ub2RlX21vZHVsZXMvYXhpb3MvbGliL2hlbHBlcnMvZnJvbURhdGFVUkkuanMiLCAiLi4vbm9kZV9tb2R1bGVzL2F4aW9zL2xpYi9oZWxwZXJzL0F4aW9zVHJhbnNmb3JtU3RyZWFtLmpzIiwgIi4uL25vZGVfbW9kdWxlcy9heGlvcy9saWIvaGVscGVycy9yZWFkQmxvYi5qcyIsICIuLi9ub2RlX21vZHVsZXMvYXhpb3MvbGliL2hlbHBlcnMvZm9ybURhdGFUb1N0cmVhbS5qcyIsICIuLi9ub2RlX21vZHVsZXMvYXhpb3MvbGliL2hlbHBlcnMvWmxpYkhlYWRlclRyYW5zZm9ybVN0cmVhbS5qcyIsICIuLi9ub2RlX21vZHVsZXMvYXhpb3MvbGliL2hlbHBlcnMvY2FsbGJhY2tpZnkuanMiLCAiLi4vbm9kZV9tb2R1bGVzL2F4aW9zL2xpYi9oZWxwZXJzL3NwZWVkb21ldGVyLmpzIiwgIi4uL25vZGVfbW9kdWxlcy9heGlvcy9saWIvaGVscGVycy90aHJvdHRsZS5qcyIsICIuLi9ub2RlX21vZHVsZXMvYXhpb3MvbGliL2hlbHBlcnMvcHJvZ3Jlc3NFdmVudFJlZHVjZXIuanMiLCAiLi4vbm9kZV9tb2R1bGVzL2F4aW9zL2xpYi9hZGFwdGVycy9odHRwLmpzIiwgIi4uL25vZGVfbW9kdWxlcy9heGlvcy9saWIvaGVscGVycy9pc1VSTFNhbWVPcmlnaW4uanMiLCAiLi4vbm9kZV9tb2R1bGVzL2F4aW9zL2xpYi9oZWxwZXJzL2Nvb2tpZXMuanMiLCAiLi4vbm9kZV9tb2R1bGVzL2F4aW9zL2xpYi9jb3JlL21lcmdlQ29uZmlnLmpzIiwgIi4uL25vZGVfbW9kdWxlcy9heGlvcy9saWIvaGVscGVycy9yZXNvbHZlQ29uZmlnLmpzIiwgIi4uL25vZGVfbW9kdWxlcy9heGlvcy9saWIvYWRhcHRlcnMveGhyLmpzIiwgIi4uL25vZGVfbW9kdWxlcy9heGlvcy9saWIvaGVscGVycy9jb21wb3NlU2lnbmFscy5qcyIsICIuLi9ub2RlX21vZHVsZXMvYXhpb3MvbGliL2hlbHBlcnMvdHJhY2tTdHJlYW0uanMiLCAiLi4vbm9kZV9tb2R1bGVzL2F4aW9zL2xpYi9hZGFwdGVycy9mZXRjaC5qcyIsICIuLi9ub2RlX21vZHVsZXMvYXhpb3MvbGliL2FkYXB0ZXJzL2FkYXB0ZXJzLmpzIiwgIi4uL25vZGVfbW9kdWxlcy9heGlvcy9saWIvY29yZS9kaXNwYXRjaFJlcXVlc3QuanMiLCAiLi4vbm9kZV9tb2R1bGVzL2F4aW9zL2xpYi9oZWxwZXJzL3ZhbGlkYXRvci5qcyIsICIuLi9ub2RlX21vZHVsZXMvYXhpb3MvbGliL2NvcmUvQXhpb3MuanMiLCAiLi4vbm9kZV9tb2R1bGVzL2F4aW9zL2xpYi9jYW5jZWwvQ2FuY2VsVG9rZW4uanMiLCAiLi4vbm9kZV9tb2R1bGVzL2F4aW9zL2xpYi9oZWxwZXJzL3NwcmVhZC5qcyIsICIuLi9ub2RlX21vZHVsZXMvYXhpb3MvbGliL2hlbHBlcnMvaXNBeGlvc0Vycm9yLmpzIiwgIi4uL25vZGVfbW9kdWxlcy9heGlvcy9saWIvaGVscGVycy9IdHRwU3RhdHVzQ29kZS5qcyIsICIuLi9ub2RlX21vZHVsZXMvYXhpb3MvbGliL2F4aW9zLmpzIiwgIi4uL25vZGVfbW9kdWxlcy9heGlvcy9pbmRleC5qcyIsICIuLi9ub2RlX21vZHVsZXMvY2hlZXJpby9zcmMvb3B0aW9ucy50cyIsICIuLi9ub2RlX21vZHVsZXMvZG9tZWxlbWVudHR5cGUvbGliL2VzbS9pbmRleC5qcyIsICIuLi9ub2RlX21vZHVsZXMvZG9taGFuZGxlci9saWIvZXNtL25vZGUuanMiLCAiLi4vbm9kZV9tb2R1bGVzL2RvbWhhbmRsZXIvbGliL2VzbS9pbmRleC5qcyIsICJodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vZmI1NS9lbnRpdGllcy82MWFmZDQ3MDFlYWE3MzY5NzhiMTNjNzM1MWNkM2RlOWE5NmIwNGJjL3NyYy9nZW5lcmF0ZWQvZGVjb2RlLWRhdGEtaHRtbC50cyIsICJodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vZmI1NS9lbnRpdGllcy82MWFmZDQ3MDFlYWE3MzY5NzhiMTNjNzM1MWNkM2RlOWE5NmIwNGJjL3NyYy9nZW5lcmF0ZWQvZGVjb2RlLWRhdGEteG1sLnRzIiwgImh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9mYjU1L2VudGl0aWVzLzYxYWZkNDcwMWVhYTczNjk3OGIxM2M3MzUxY2QzZGU5YTk2YjA0YmMvc3JjL2RlY29kZV9jb2RlcG9pbnQudHMiLCAiaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2ZiNTUvZW50aXRpZXMvNjFhZmQ0NzAxZWFhNzM2OTc4YjEzYzczNTFjZDNkZTlhOTZiMDRiYy9zcmMvZGVjb2RlLnRzIiwgImh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9mYjU1L2VudGl0aWVzLzYxYWZkNDcwMWVhYTczNjk3OGIxM2M3MzUxY2QzZGU5YTk2YjA0YmMvc3JjL2dlbmVyYXRlZC9lbmNvZGUtaHRtbC50cyIsICJodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vZmI1NS9lbnRpdGllcy82MWFmZDQ3MDFlYWE3MzY5NzhiMTNjNzM1MWNkM2RlOWE5NmIwNGJjL3NyYy9lc2NhcGUudHMiLCAiaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2ZiNTUvZW50aXRpZXMvNjFhZmQ0NzAxZWFhNzM2OTc4YjEzYzczNTFjZDNkZTlhOTZiMDRiYy9zcmMvZW5jb2RlLnRzIiwgImh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9mYjU1L2VudGl0aWVzLzYxYWZkNDcwMWVhYTczNjk3OGIxM2M3MzUxY2QzZGU5YTk2YjA0YmMvc3JjL2luZGV4LnRzIiwgIi4uL25vZGVfbW9kdWxlcy9kb20tc2VyaWFsaXplci9saWIvZXNtL2ZvcmVpZ25OYW1lcy5qcyIsICIuLi9ub2RlX21vZHVsZXMvZG9tLXNlcmlhbGl6ZXIvbGliL2VzbS9pbmRleC5qcyIsICJodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vZmI1NS9kb211dGlscy8wYWI4YmNmMWVjZmM3MGRmYzkzMjkxYTRjYjI0OTY1NzhhYzI1ZTljL3NyYy9zdHJpbmdpZnkudHMiLCAiaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2ZiNTUvZG9tdXRpbHMvMGFiOGJjZjFlY2ZjNzBkZmM5MzI5MWE0Y2IyNDk2NTc4YWMyNWU5Yy9zcmMvdHJhdmVyc2FsLnRzIiwgImh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9mYjU1L2RvbXV0aWxzLzBhYjhiY2YxZWNmYzcwZGZjOTMyOTFhNGNiMjQ5NjU3OGFjMjVlOWMvc3JjL21hbmlwdWxhdGlvbi50cyIsICJodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vZmI1NS9kb211dGlscy8wYWI4YmNmMWVjZmM3MGRmYzkzMjkxYTRjYjI0OTY1NzhhYzI1ZTljL3NyYy9xdWVyeWluZy50cyIsICJodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vZmI1NS9kb211dGlscy8wYWI4YmNmMWVjZmM3MGRmYzkzMjkxYTRjYjI0OTY1NzhhYzI1ZTljL3NyYy9sZWdhY3kudHMiLCAiaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2ZiNTUvZG9tdXRpbHMvMGFiOGJjZjFlY2ZjNzBkZmM5MzI5MWE0Y2IyNDk2NTc4YWMyNWU5Yy9zcmMvaGVscGVycy50cyIsICJodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vZmI1NS9kb211dGlscy8wYWI4YmNmMWVjZmM3MGRmYzkzMjkxYTRjYjI0OTY1NzhhYzI1ZTljL3NyYy9mZWVkcy50cyIsICJodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vZmI1NS9kb211dGlscy8wYWI4YmNmMWVjZmM3MGRmYzkzMjkxYTRjYjI0OTY1NzhhYzI1ZTljL3NyYy9pbmRleC50cyIsICIuLi9ub2RlX21vZHVsZXMvY2hlZXJpby9zcmMvc3RhdGljLnRzIiwgIi4uL25vZGVfbW9kdWxlcy9jaGVlcmlvL3NyYy91dGlscy50cyIsICIuLi9ub2RlX21vZHVsZXMvY2hlZXJpby9zcmMvYXBpL2F0dHJpYnV0ZXMudHMiLCAiLi4vbm9kZV9tb2R1bGVzL2Nzcy13aGF0L2xpYi9jb21tb25qcy90eXBlcy5qcyIsICIuLi9ub2RlX21vZHVsZXMvY3NzLXdoYXQvbGliL2NvbW1vbmpzL3BhcnNlLmpzIiwgIi4uL25vZGVfbW9kdWxlcy9jc3Mtd2hhdC9saWIvY29tbW9uanMvc3RyaW5naWZ5LmpzIiwgIi4uL25vZGVfbW9kdWxlcy9jc3Mtd2hhdC9saWIvY29tbW9uanMvaW5kZXguanMiLCAiLi4vbm9kZV9tb2R1bGVzL2Jvb2xiYXNlL2luZGV4LmpzIiwgImh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9mYjU1L2Nzcy1zZWxlY3QvMGYwNzI1YTlkZmVkZGQyZmRiNTRlZGE5NjU2Y2RiYWI1YmJmNmJlNi9zcmMvc29ydC50cyIsICJodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vZmI1NS9jc3Mtc2VsZWN0LzBmMDcyNWE5ZGZlZGRkMmZkYjU0ZWRhOTY1NmNkYmFiNWJiZjZiZTYvc3JjL2F0dHJpYnV0ZXMudHMiLCAiaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2ZiNTUvbnRoLWNoZWNrLzYzOWZkMmE0MDAwYjY5ZjgyMzUwYWFkOGMzNGNiNDNmNzdlNDgzYmEvc3JjL3BhcnNlLnRzIiwgImh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9mYjU1L250aC1jaGVjay82MzlmZDJhNDAwMGI2OWY4MjM1MGFhZDhjMzRjYjQzZjc3ZTQ4M2JhL3NyYy9jb21waWxlLnRzIiwgImh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9mYjU1L250aC1jaGVjay82MzlmZDJhNDAwMGI2OWY4MjM1MGFhZDhjMzRjYjQzZjc3ZTQ4M2JhL3NyYy9pbmRleC50cyIsICJodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vZmI1NS9jc3Mtc2VsZWN0LzBmMDcyNWE5ZGZlZGRkMmZkYjU0ZWRhOTY1NmNkYmFiNWJiZjZiZTYvc3JjL3BzZXVkby1zZWxlY3RvcnMvZmlsdGVycy50cyIsICJodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vZmI1NS9jc3Mtc2VsZWN0LzBmMDcyNWE5ZGZlZGRkMmZkYjU0ZWRhOTY1NmNkYmFiNWJiZjZiZTYvc3JjL3BzZXVkby1zZWxlY3RvcnMvcHNldWRvcy50cyIsICJodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vZmI1NS9jc3Mtc2VsZWN0LzBmMDcyNWE5ZGZlZGRkMmZkYjU0ZWRhOTY1NmNkYmFiNWJiZjZiZTYvc3JjL3BzZXVkby1zZWxlY3RvcnMvYWxpYXNlcy50cyIsICJodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vZmI1NS9jc3Mtc2VsZWN0LzBmMDcyNWE5ZGZlZGRkMmZkYjU0ZWRhOTY1NmNkYmFiNWJiZjZiZTYvc3JjL3BzZXVkby1zZWxlY3RvcnMvc3Vic2VsZWN0cy50cyIsICJodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vZmI1NS9jc3Mtc2VsZWN0LzBmMDcyNWE5ZGZlZGRkMmZkYjU0ZWRhOTY1NmNkYmFiNWJiZjZiZTYvc3JjL3BzZXVkby1zZWxlY3RvcnMvaW5kZXgudHMiLCAiaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2ZiNTUvY3NzLXNlbGVjdC8wZjA3MjVhOWRmZWRkZDJmZGI1NGVkYTk2NTZjZGJhYjViYmY2YmU2L3NyYy9nZW5lcmFsLnRzIiwgImh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9mYjU1L2Nzcy1zZWxlY3QvMGYwNzI1YTlkZmVkZGQyZmRiNTRlZGE5NjU2Y2RiYWI1YmJmNmJlNi9zcmMvY29tcGlsZS50cyIsICJodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vZmI1NS9jc3Mtc2VsZWN0LzBmMDcyNWE5ZGZlZGRkMmZkYjU0ZWRhOTY1NmNkYmFiNWJiZjZiZTYvc3JjL2luZGV4LnRzIiwgImh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9jaGVlcmlvanMvY2hlZXJpby1zZWxlY3QvZWYwNjNhNmNhNGMzZjBkMDJkMmZjMzUwNWU3NTBiNmZiODFjNDQ4ZC9zcmMvcG9zaXRpb25hbHMudHMiLCAiaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2NoZWVyaW9qcy9jaGVlcmlvLXNlbGVjdC9lZjA2M2E2Y2E0YzNmMGQwMmQyZmMzNTA1ZTc1MGI2ZmI4MWM0NDhkL3NyYy9oZWxwZXJzLnRzIiwgImh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9jaGVlcmlvanMvY2hlZXJpby1zZWxlY3QvZWYwNjNhNmNhNGMzZjBkMDJkMmZjMzUwNWU3NTBiNmZiODFjNDQ4ZC9zcmMvaW5kZXgudHMiLCAiLi4vbm9kZV9tb2R1bGVzL2NoZWVyaW8vc3JjL2FwaS90cmF2ZXJzaW5nLnRzIiwgIi4uL25vZGVfbW9kdWxlcy9jaGVlcmlvL3NyYy9wYXJzZS50cyIsICIuLi9ub2RlX21vZHVsZXMvY2hlZXJpby9zcmMvYXBpL21hbmlwdWxhdGlvbi50cyIsICIuLi9ub2RlX21vZHVsZXMvY2hlZXJpby9zcmMvYXBpL2Nzcy50cyIsICIuLi9ub2RlX21vZHVsZXMvY2hlZXJpby9zcmMvYXBpL2Zvcm1zLnRzIiwgIi4uL25vZGVfbW9kdWxlcy9jaGVlcmlvL3NyYy9hcGkvZXh0cmFjdC50cyIsICIuLi9ub2RlX21vZHVsZXMvY2hlZXJpby9zcmMvY2hlZXJpby50cyIsICIuLi9ub2RlX21vZHVsZXMvY2hlZXJpby9zcmMvbG9hZC50cyIsICIuLi9ub2RlX21vZHVsZXMvcGFyc2U1L2Rpc3QvY29tbW9uL3VuaWNvZGUuanMiLCAiLi4vbm9kZV9tb2R1bGVzL3BhcnNlNS9kaXN0L2NvbW1vbi9lcnJvci1jb2Rlcy5qcyIsICIuLi9ub2RlX21vZHVsZXMvcGFyc2U1L2Rpc3QvdG9rZW5pemVyL3ByZXByb2Nlc3Nvci5qcyIsICIuLi9ub2RlX21vZHVsZXMvcGFyc2U1L2Rpc3QvY29tbW9uL3Rva2VuLmpzIiwgIi4uL25vZGVfbW9kdWxlcy9wYXJzZTUvZGlzdC9jb21tb24vaHRtbC5qcyIsICIuLi9ub2RlX21vZHVsZXMvcGFyc2U1L2Rpc3QvdG9rZW5pemVyL2luZGV4LmpzIiwgIi4uL25vZGVfbW9kdWxlcy9wYXJzZTUvZGlzdC9wYXJzZXIvb3Blbi1lbGVtZW50LXN0YWNrLmpzIiwgIi4uL25vZGVfbW9kdWxlcy9wYXJzZTUvZGlzdC9wYXJzZXIvZm9ybWF0dGluZy1lbGVtZW50LWxpc3QuanMiLCAiLi4vbm9kZV9tb2R1bGVzL3BhcnNlNS9kaXN0L3RyZWUtYWRhcHRlcnMvZGVmYXVsdC5qcyIsICIuLi9ub2RlX21vZHVsZXMvcGFyc2U1L2Rpc3QvY29tbW9uL2RvY3R5cGUuanMiLCAiLi4vbm9kZV9tb2R1bGVzL3BhcnNlNS9kaXN0L2NvbW1vbi9mb3JlaWduLWNvbnRlbnQuanMiLCAiLi4vbm9kZV9tb2R1bGVzL3BhcnNlNS9kaXN0L3BhcnNlci9pbmRleC5qcyIsICIuLi9ub2RlX21vZHVsZXMvcGFyc2U1L2Rpc3Qvc2VyaWFsaXplci9pbmRleC5qcyIsICIuLi9ub2RlX21vZHVsZXMvcGFyc2U1L2Rpc3QvaW5kZXguanMiLCAiLi4vbm9kZV9tb2R1bGVzL3BhcnNlNS1odG1scGFyc2VyMi10cmVlLWFkYXB0ZXIvZGlzdC9pbmRleC5qcyIsICIuLi9ub2RlX21vZHVsZXMvY2hlZXJpby9zcmMvcGFyc2Vycy9wYXJzZTUtYWRhcHRlci50cyIsICJodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vZmI1NS9odG1scGFyc2VyMi9lMjkzOWE2YzdiMDVkNWM0ODQ1YjRhMmU0NThhNGZjMGE2NWEzMjFkL3NyYy9Ub2tlbml6ZXIudHMiLCAiaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2ZiNTUvaHRtbHBhcnNlcjIvZTI5MzlhNmM3YjA1ZDVjNDg0NWI0YTJlNDU4YTRmYzBhNjVhMzIxZC9zcmMvUGFyc2VyLnRzIiwgImh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9mYjU1L2h0bWxwYXJzZXIyL2UyOTM5YTZjN2IwNWQ1YzQ4NDViNGEyZTQ1OGE0ZmMwYTY1YTMyMWQvc3JjL2luZGV4LnRzIiwgIi4uL25vZGVfbW9kdWxlcy9jaGVlcmlvL3NyYy9sb2FkLXBhcnNlLnRzIiwgIi4uL25vZGVfbW9kdWxlcy9wYXJzZTUtcGFyc2VyLXN0cmVhbS9kaXN0L2luZGV4LmpzIiwgIi4uL25vZGVfbW9kdWxlcy9zYWZlci1idWZmZXIvc2FmZXIuanMiLCAiLi4vbm9kZV9tb2R1bGVzL2ljb252LWxpdGUvbGliL2JvbS1oYW5kbGluZy5qcyIsICIuLi9ub2RlX21vZHVsZXMvaWNvbnYtbGl0ZS9lbmNvZGluZ3MvaW50ZXJuYWwuanMiLCAiLi4vbm9kZV9tb2R1bGVzL2ljb252LWxpdGUvZW5jb2RpbmdzL3V0ZjMyLmpzIiwgIi4uL25vZGVfbW9kdWxlcy9pY29udi1saXRlL2VuY29kaW5ncy91dGYxNi5qcyIsICIuLi9ub2RlX21vZHVsZXMvaWNvbnYtbGl0ZS9lbmNvZGluZ3MvdXRmNy5qcyIsICIuLi9ub2RlX21vZHVsZXMvaWNvbnYtbGl0ZS9lbmNvZGluZ3Mvc2Jjcy1jb2RlYy5qcyIsICIuLi9ub2RlX21vZHVsZXMvaWNvbnYtbGl0ZS9lbmNvZGluZ3Mvc2Jjcy1kYXRhLmpzIiwgIi4uL25vZGVfbW9kdWxlcy9pY29udi1saXRlL2VuY29kaW5ncy9zYmNzLWRhdGEtZ2VuZXJhdGVkLmpzIiwgIi4uL25vZGVfbW9kdWxlcy9pY29udi1saXRlL2VuY29kaW5ncy9kYmNzLWNvZGVjLmpzIiwgIi4uL25vZGVfbW9kdWxlcy9pY29udi1saXRlL2VuY29kaW5ncy90YWJsZXMvc2hpZnRqaXMuanNvbiIsICIuLi9ub2RlX21vZHVsZXMvaWNvbnYtbGl0ZS9lbmNvZGluZ3MvdGFibGVzL2V1Y2pwLmpzb24iLCAiLi4vbm9kZV9tb2R1bGVzL2ljb252LWxpdGUvZW5jb2RpbmdzL3RhYmxlcy9jcDkzNi5qc29uIiwgIi4uL25vZGVfbW9kdWxlcy9pY29udi1saXRlL2VuY29kaW5ncy90YWJsZXMvZ2JrLWFkZGVkLmpzb24iLCAiLi4vbm9kZV9tb2R1bGVzL2ljb252LWxpdGUvZW5jb2RpbmdzL3RhYmxlcy9nYjE4MDMwLXJhbmdlcy5qc29uIiwgIi4uL25vZGVfbW9kdWxlcy9pY29udi1saXRlL2VuY29kaW5ncy90YWJsZXMvY3A5NDkuanNvbiIsICIuLi9ub2RlX21vZHVsZXMvaWNvbnYtbGl0ZS9lbmNvZGluZ3MvdGFibGVzL2NwOTUwLmpzb24iLCAiLi4vbm9kZV9tb2R1bGVzL2ljb252LWxpdGUvZW5jb2RpbmdzL3RhYmxlcy9iaWc1LWFkZGVkLmpzb24iLCAiLi4vbm9kZV9tb2R1bGVzL2ljb252LWxpdGUvZW5jb2RpbmdzL2RiY3MtZGF0YS5qcyIsICIuLi9ub2RlX21vZHVsZXMvaWNvbnYtbGl0ZS9lbmNvZGluZ3MvaW5kZXguanMiLCAiLi4vbm9kZV9tb2R1bGVzL2ljb252LWxpdGUvbGliL3N0cmVhbXMuanMiLCAiLi4vbm9kZV9tb2R1bGVzL2ljb252LWxpdGUvbGliL2luZGV4LmpzIiwgIi4uL25vZGVfbW9kdWxlcy93aGF0d2ctZW5jb2RpbmcvbGliL3N1cHBvcnRlZC1uYW1lcy5qc29uIiwgIi4uL25vZGVfbW9kdWxlcy93aGF0d2ctZW5jb2RpbmcvbGliL2xhYmVscy10by1uYW1lcy5qc29uIiwgIi4uL25vZGVfbW9kdWxlcy93aGF0d2ctZW5jb2RpbmcvbGliL3doYXR3Zy1lbmNvZGluZy5qcyIsICIuLi9ub2RlX21vZHVsZXMvZW5jb2Rpbmctc25pZmZlci9zcmMvc25pZmZlci50cyIsICIuLi9ub2RlX21vZHVsZXMvZW5jb2Rpbmctc25pZmZlci9zcmMvaW5kZXgudHMiLCAiLi4vbm9kZV9tb2R1bGVzL3VuZGljaS9saWIvY29yZS9zeW1ib2xzLmpzIiwgIi4uL25vZGVfbW9kdWxlcy91bmRpY2kvbGliL2NvcmUvZXJyb3JzLmpzIiwgIi4uL25vZGVfbW9kdWxlcy91bmRpY2kvbGliL2NvcmUvY29uc3RhbnRzLmpzIiwgIi4uL25vZGVfbW9kdWxlcy91bmRpY2kvbGliL2NvcmUvdHJlZS5qcyIsICIuLi9ub2RlX21vZHVsZXMvdW5kaWNpL2xpYi9jb3JlL3V0aWwuanMiLCAiLi4vbm9kZV9tb2R1bGVzL3VuZGljaS9saWIvY29yZS9kaWFnbm9zdGljcy5qcyIsICIuLi9ub2RlX21vZHVsZXMvdW5kaWNpL2xpYi9jb3JlL3JlcXVlc3QuanMiLCAiLi4vbm9kZV9tb2R1bGVzL3VuZGljaS9saWIvZGlzcGF0Y2hlci9kaXNwYXRjaGVyLmpzIiwgIi4uL25vZGVfbW9kdWxlcy91bmRpY2kvbGliL2Rpc3BhdGNoZXIvZGlzcGF0Y2hlci1iYXNlLmpzIiwgIi4uL25vZGVfbW9kdWxlcy91bmRpY2kvbGliL3V0aWwvdGltZXJzLmpzIiwgIi4uL25vZGVfbW9kdWxlcy91bmRpY2kvbGliL2NvcmUvY29ubmVjdC5qcyIsICIuLi9ub2RlX21vZHVsZXMvdW5kaWNpL2xpYi9sbGh0dHAvdXRpbHMuanMiLCAiLi4vbm9kZV9tb2R1bGVzL3VuZGljaS9saWIvbGxodHRwL2NvbnN0YW50cy5qcyIsICIuLi9ub2RlX21vZHVsZXMvdW5kaWNpL2xpYi9sbGh0dHAvbGxodHRwLXdhc20uanMiLCAiLi4vbm9kZV9tb2R1bGVzL3VuZGljaS9saWIvbGxodHRwL2xsaHR0cF9zaW1kLXdhc20uanMiLCAiLi4vbm9kZV9tb2R1bGVzL3VuZGljaS9saWIvd2ViL2ZldGNoL2NvbnN0YW50cy5qcyIsICIuLi9ub2RlX21vZHVsZXMvdW5kaWNpL2xpYi93ZWIvZmV0Y2gvZ2xvYmFsLmpzIiwgIi4uL25vZGVfbW9kdWxlcy91bmRpY2kvbGliL3dlYi9mZXRjaC9kYXRhLXVybC5qcyIsICIuLi9ub2RlX21vZHVsZXMvdW5kaWNpL2xpYi93ZWIvZmV0Y2gvd2ViaWRsLmpzIiwgIi4uL25vZGVfbW9kdWxlcy91bmRpY2kvbGliL3dlYi9mZXRjaC91dGlsLmpzIiwgIi4uL25vZGVfbW9kdWxlcy91bmRpY2kvbGliL3dlYi9mZXRjaC9zeW1ib2xzLmpzIiwgIi4uL25vZGVfbW9kdWxlcy91bmRpY2kvbGliL3dlYi9mZXRjaC9maWxlLmpzIiwgIi4uL25vZGVfbW9kdWxlcy91bmRpY2kvbGliL3dlYi9mZXRjaC9mb3JtZGF0YS5qcyIsICIuLi9ub2RlX21vZHVsZXMvdW5kaWNpL2xpYi93ZWIvZmV0Y2gvZm9ybWRhdGEtcGFyc2VyLmpzIiwgIi4uL25vZGVfbW9kdWxlcy91bmRpY2kvbGliL3dlYi9mZXRjaC9ib2R5LmpzIiwgIi4uL25vZGVfbW9kdWxlcy91bmRpY2kvbGliL2Rpc3BhdGNoZXIvY2xpZW50LWgxLmpzIiwgIi4uL25vZGVfbW9kdWxlcy91bmRpY2kvbGliL2Rpc3BhdGNoZXIvY2xpZW50LWgyLmpzIiwgIi4uL25vZGVfbW9kdWxlcy91bmRpY2kvbGliL2hhbmRsZXIvcmVkaXJlY3QtaGFuZGxlci5qcyIsICIuLi9ub2RlX21vZHVsZXMvdW5kaWNpL2xpYi9pbnRlcmNlcHRvci9yZWRpcmVjdC1pbnRlcmNlcHRvci5qcyIsICIuLi9ub2RlX21vZHVsZXMvdW5kaWNpL2xpYi9kaXNwYXRjaGVyL2NsaWVudC5qcyIsICIuLi9ub2RlX21vZHVsZXMvdW5kaWNpL2xpYi9kaXNwYXRjaGVyL2ZpeGVkLXF1ZXVlLmpzIiwgIi4uL25vZGVfbW9kdWxlcy91bmRpY2kvbGliL2Rpc3BhdGNoZXIvcG9vbC1zdGF0cy5qcyIsICIuLi9ub2RlX21vZHVsZXMvdW5kaWNpL2xpYi9kaXNwYXRjaGVyL3Bvb2wtYmFzZS5qcyIsICIuLi9ub2RlX21vZHVsZXMvdW5kaWNpL2xpYi9kaXNwYXRjaGVyL3Bvb2wuanMiLCAiLi4vbm9kZV9tb2R1bGVzL3VuZGljaS9saWIvZGlzcGF0Y2hlci9iYWxhbmNlZC1wb29sLmpzIiwgIi4uL25vZGVfbW9kdWxlcy91bmRpY2kvbGliL2Rpc3BhdGNoZXIvYWdlbnQuanMiLCAiLi4vbm9kZV9tb2R1bGVzL3VuZGljaS9saWIvZGlzcGF0Y2hlci9wcm94eS1hZ2VudC5qcyIsICIuLi9ub2RlX21vZHVsZXMvdW5kaWNpL2xpYi9kaXNwYXRjaGVyL2Vudi1odHRwLXByb3h5LWFnZW50LmpzIiwgIi4uL25vZGVfbW9kdWxlcy91bmRpY2kvbGliL2hhbmRsZXIvcmV0cnktaGFuZGxlci5qcyIsICIuLi9ub2RlX21vZHVsZXMvdW5kaWNpL2xpYi9kaXNwYXRjaGVyL3JldHJ5LWFnZW50LmpzIiwgIi4uL25vZGVfbW9kdWxlcy91bmRpY2kvbGliL2FwaS9yZWFkYWJsZS5qcyIsICIuLi9ub2RlX21vZHVsZXMvdW5kaWNpL2xpYi9hcGkvdXRpbC5qcyIsICIuLi9ub2RlX21vZHVsZXMvdW5kaWNpL2xpYi9hcGkvYXBpLXJlcXVlc3QuanMiLCAiLi4vbm9kZV9tb2R1bGVzL3VuZGljaS9saWIvYXBpL2Fib3J0LXNpZ25hbC5qcyIsICIuLi9ub2RlX21vZHVsZXMvdW5kaWNpL2xpYi9hcGkvYXBpLXN0cmVhbS5qcyIsICIuLi9ub2RlX21vZHVsZXMvdW5kaWNpL2xpYi9hcGkvYXBpLXBpcGVsaW5lLmpzIiwgIi4uL25vZGVfbW9kdWxlcy91bmRpY2kvbGliL2FwaS9hcGktdXBncmFkZS5qcyIsICIuLi9ub2RlX21vZHVsZXMvdW5kaWNpL2xpYi9hcGkvYXBpLWNvbm5lY3QuanMiLCAiLi4vbm9kZV9tb2R1bGVzL3VuZGljaS9saWIvYXBpL2luZGV4LmpzIiwgIi4uL25vZGVfbW9kdWxlcy91bmRpY2kvbGliL21vY2svbW9jay1lcnJvcnMuanMiLCAiLi4vbm9kZV9tb2R1bGVzL3VuZGljaS9saWIvbW9jay9tb2NrLXN5bWJvbHMuanMiLCAiLi4vbm9kZV9tb2R1bGVzL3VuZGljaS9saWIvbW9jay9tb2NrLXV0aWxzLmpzIiwgIi4uL25vZGVfbW9kdWxlcy91bmRpY2kvbGliL21vY2svbW9jay1pbnRlcmNlcHRvci5qcyIsICIuLi9ub2RlX21vZHVsZXMvdW5kaWNpL2xpYi9tb2NrL21vY2stY2xpZW50LmpzIiwgIi4uL25vZGVfbW9kdWxlcy91bmRpY2kvbGliL21vY2svbW9jay1wb29sLmpzIiwgIi4uL25vZGVfbW9kdWxlcy91bmRpY2kvbGliL21vY2svcGx1cmFsaXplci5qcyIsICIuLi9ub2RlX21vZHVsZXMvdW5kaWNpL2xpYi9tb2NrL3BlbmRpbmctaW50ZXJjZXB0b3JzLWZvcm1hdHRlci5qcyIsICIuLi9ub2RlX21vZHVsZXMvdW5kaWNpL2xpYi9tb2NrL21vY2stYWdlbnQuanMiLCAiLi4vbm9kZV9tb2R1bGVzL3VuZGljaS9saWIvZ2xvYmFsLmpzIiwgIi4uL25vZGVfbW9kdWxlcy91bmRpY2kvbGliL2hhbmRsZXIvZGVjb3JhdG9yLWhhbmRsZXIuanMiLCAiLi4vbm9kZV9tb2R1bGVzL3VuZGljaS9saWIvaW50ZXJjZXB0b3IvcmVkaXJlY3QuanMiLCAiLi4vbm9kZV9tb2R1bGVzL3VuZGljaS9saWIvaW50ZXJjZXB0b3IvcmV0cnkuanMiLCAiLi4vbm9kZV9tb2R1bGVzL3VuZGljaS9saWIvaW50ZXJjZXB0b3IvZHVtcC5qcyIsICIuLi9ub2RlX21vZHVsZXMvdW5kaWNpL2xpYi9pbnRlcmNlcHRvci9kbnMuanMiLCAiLi4vbm9kZV9tb2R1bGVzL3VuZGljaS9saWIvd2ViL2ZldGNoL2hlYWRlcnMuanMiLCAiLi4vbm9kZV9tb2R1bGVzL3VuZGljaS9saWIvd2ViL2ZldGNoL3Jlc3BvbnNlLmpzIiwgIi4uL25vZGVfbW9kdWxlcy91bmRpY2kvbGliL3dlYi9mZXRjaC9kaXNwYXRjaGVyLXdlYWtyZWYuanMiLCAiLi4vbm9kZV9tb2R1bGVzL3VuZGljaS9saWIvd2ViL2ZldGNoL3JlcXVlc3QuanMiLCAiLi4vbm9kZV9tb2R1bGVzL3VuZGljaS9saWIvd2ViL2ZldGNoL2luZGV4LmpzIiwgIi4uL25vZGVfbW9kdWxlcy91bmRpY2kvbGliL3dlYi9maWxlYXBpL3N5bWJvbHMuanMiLCAiLi4vbm9kZV9tb2R1bGVzL3VuZGljaS9saWIvd2ViL2ZpbGVhcGkvcHJvZ3Jlc3NldmVudC5qcyIsICIuLi9ub2RlX21vZHVsZXMvdW5kaWNpL2xpYi93ZWIvZmlsZWFwaS9lbmNvZGluZy5qcyIsICIuLi9ub2RlX21vZHVsZXMvdW5kaWNpL2xpYi93ZWIvZmlsZWFwaS91dGlsLmpzIiwgIi4uL25vZGVfbW9kdWxlcy91bmRpY2kvbGliL3dlYi9maWxlYXBpL2ZpbGVyZWFkZXIuanMiLCAiLi4vbm9kZV9tb2R1bGVzL3VuZGljaS9saWIvd2ViL2NhY2hlL3N5bWJvbHMuanMiLCAiLi4vbm9kZV9tb2R1bGVzL3VuZGljaS9saWIvd2ViL2NhY2hlL3V0aWwuanMiLCAiLi4vbm9kZV9tb2R1bGVzL3VuZGljaS9saWIvd2ViL2NhY2hlL2NhY2hlLmpzIiwgIi4uL25vZGVfbW9kdWxlcy91bmRpY2kvbGliL3dlYi9jYWNoZS9jYWNoZXN0b3JhZ2UuanMiLCAiLi4vbm9kZV9tb2R1bGVzL3VuZGljaS9saWIvd2ViL2Nvb2tpZXMvY29uc3RhbnRzLmpzIiwgIi4uL25vZGVfbW9kdWxlcy91bmRpY2kvbGliL3dlYi9jb29raWVzL3V0aWwuanMiLCAiLi4vbm9kZV9tb2R1bGVzL3VuZGljaS9saWIvd2ViL2Nvb2tpZXMvcGFyc2UuanMiLCAiLi4vbm9kZV9tb2R1bGVzL3VuZGljaS9saWIvd2ViL2Nvb2tpZXMvaW5kZXguanMiLCAiLi4vbm9kZV9tb2R1bGVzL3VuZGljaS9saWIvd2ViL3dlYnNvY2tldC9ldmVudHMuanMiLCAiLi4vbm9kZV9tb2R1bGVzL3VuZGljaS9saWIvd2ViL3dlYnNvY2tldC9jb25zdGFudHMuanMiLCAiLi4vbm9kZV9tb2R1bGVzL3VuZGljaS9saWIvd2ViL3dlYnNvY2tldC9zeW1ib2xzLmpzIiwgIi4uL25vZGVfbW9kdWxlcy91bmRpY2kvbGliL3dlYi93ZWJzb2NrZXQvdXRpbC5qcyIsICIuLi9ub2RlX21vZHVsZXMvdW5kaWNpL2xpYi93ZWIvd2Vic29ja2V0L2ZyYW1lLmpzIiwgIi4uL25vZGVfbW9kdWxlcy91bmRpY2kvbGliL3dlYi93ZWJzb2NrZXQvY29ubmVjdGlvbi5qcyIsICIuLi9ub2RlX21vZHVsZXMvdW5kaWNpL2xpYi93ZWIvd2Vic29ja2V0L3Blcm1lc3NhZ2UtZGVmbGF0ZS5qcyIsICIuLi9ub2RlX21vZHVsZXMvdW5kaWNpL2xpYi93ZWIvd2Vic29ja2V0L3JlY2VpdmVyLmpzIiwgIi4uL25vZGVfbW9kdWxlcy91bmRpY2kvbGliL3dlYi93ZWJzb2NrZXQvc2VuZGVyLmpzIiwgIi4uL25vZGVfbW9kdWxlcy91bmRpY2kvbGliL3dlYi93ZWJzb2NrZXQvd2Vic29ja2V0LmpzIiwgIi4uL25vZGVfbW9kdWxlcy91bmRpY2kvbGliL3dlYi9ldmVudHNvdXJjZS91dGlsLmpzIiwgIi4uL25vZGVfbW9kdWxlcy91bmRpY2kvbGliL3dlYi9ldmVudHNvdXJjZS9ldmVudHNvdXJjZS1zdHJlYW0uanMiLCAiLi4vbm9kZV9tb2R1bGVzL3VuZGljaS9saWIvd2ViL2V2ZW50c291cmNlL2V2ZW50c291cmNlLmpzIiwgIi4uL25vZGVfbW9kdWxlcy91bmRpY2kvaW5kZXguanMiLCAiLi4vbm9kZV9tb2R1bGVzL3doYXR3Zy1taW1ldHlwZS9saWIvdXRpbHMuanMiLCAiLi4vbm9kZV9tb2R1bGVzL3doYXR3Zy1taW1ldHlwZS9saWIvbWltZS10eXBlLXBhcmFtZXRlcnMuanMiLCAiLi4vbm9kZV9tb2R1bGVzL3doYXR3Zy1taW1ldHlwZS9saWIvcGFyc2VyLmpzIiwgIi4uL25vZGVfbW9kdWxlcy93aGF0d2ctbWltZXR5cGUvbGliL3NlcmlhbGl6ZXIuanMiLCAiLi4vbm9kZV9tb2R1bGVzL3doYXR3Zy1taW1ldHlwZS9saWIvbWltZS10eXBlLmpzIiwgIi4uL25vZGVfbW9kdWxlcy9jaGVlcmlvL3NyYy9pbmRleC50cyIsICIuLi9zcmMvdXRpbHMvc2VhcmNoLmpzIiwgIi4uL3NyYy90b29scy9zZWFyY2hUb29sLmpzIiwgIi4uL3NyYy90b29scy9mZXRjaFVybFRvb2wuanMiLCAiLi4vc3JjL3Rvb2xzL21ldGFkYXRhVG9vbC5qcyIsICIuLi9ub2RlX21vZHVsZXMvdXVpZC9kaXN0L2VzbS1ub2RlL3JuZy5qcyIsICIuLi9ub2RlX21vZHVsZXMvdXVpZC9kaXN0L2VzbS1ub2RlL3N0cmluZ2lmeS5qcyIsICIuLi9ub2RlX21vZHVsZXMvdXVpZC9kaXN0L2VzbS1ub2RlL25hdGl2ZS5qcyIsICIuLi9ub2RlX21vZHVsZXMvdXVpZC9kaXN0L2VzbS1ub2RlL3Y0LmpzIiwgIi4uL25vZGVfbW9kdWxlcy91dWlkL2Rpc3QvZXNtLW5vZGUvaW5kZXguanMiLCAiLi4vc3JjL3V0aWxzL3NlYXJjaF9mZWxvLmpzIiwgIi4uL3NyYy90b29scy9mZWxvVG9vbC5qcyIsICIuLi9zcmMvaW5kZXgudHMiLCAiYm9vdHN0cmFwOnZpcnR1YWw6Ym9vdHN0cmFwIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJ2YXIgdXRpbDtcbihmdW5jdGlvbiAodXRpbCkge1xuICAgIHV0aWwuYXNzZXJ0RXF1YWwgPSAodmFsKSA9PiB2YWw7XG4gICAgZnVuY3Rpb24gYXNzZXJ0SXMoX2FyZykgeyB9XG4gICAgdXRpbC5hc3NlcnRJcyA9IGFzc2VydElzO1xuICAgIGZ1bmN0aW9uIGFzc2VydE5ldmVyKF94KSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcigpO1xuICAgIH1cbiAgICB1dGlsLmFzc2VydE5ldmVyID0gYXNzZXJ0TmV2ZXI7XG4gICAgdXRpbC5hcnJheVRvRW51bSA9IChpdGVtcykgPT4ge1xuICAgICAgICBjb25zdCBvYmogPSB7fTtcbiAgICAgICAgZm9yIChjb25zdCBpdGVtIG9mIGl0ZW1zKSB7XG4gICAgICAgICAgICBvYmpbaXRlbV0gPSBpdGVtO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvYmo7XG4gICAgfTtcbiAgICB1dGlsLmdldFZhbGlkRW51bVZhbHVlcyA9IChvYmopID0+IHtcbiAgICAgICAgY29uc3QgdmFsaWRLZXlzID0gdXRpbC5vYmplY3RLZXlzKG9iaikuZmlsdGVyKChrKSA9PiB0eXBlb2Ygb2JqW29ialtrXV0gIT09IFwibnVtYmVyXCIpO1xuICAgICAgICBjb25zdCBmaWx0ZXJlZCA9IHt9O1xuICAgICAgICBmb3IgKGNvbnN0IGsgb2YgdmFsaWRLZXlzKSB7XG4gICAgICAgICAgICBmaWx0ZXJlZFtrXSA9IG9ialtrXTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdXRpbC5vYmplY3RWYWx1ZXMoZmlsdGVyZWQpO1xuICAgIH07XG4gICAgdXRpbC5vYmplY3RWYWx1ZXMgPSAob2JqKSA9PiB7XG4gICAgICAgIHJldHVybiB1dGlsLm9iamVjdEtleXMob2JqKS5tYXAoZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgICAgIHJldHVybiBvYmpbZV07XG4gICAgICAgIH0pO1xuICAgIH07XG4gICAgdXRpbC5vYmplY3RLZXlzID0gdHlwZW9mIE9iamVjdC5rZXlzID09PSBcImZ1bmN0aW9uXCIgLy8gZXNsaW50LWRpc2FibGUtbGluZSBiYW4vYmFuXG4gICAgICAgID8gKG9iaikgPT4gT2JqZWN0LmtleXMob2JqKSAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIGJhbi9iYW5cbiAgICAgICAgOiAob2JqZWN0KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBrZXlzID0gW107XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBvYmplY3QpIHtcbiAgICAgICAgICAgICAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iamVjdCwga2V5KSkge1xuICAgICAgICAgICAgICAgICAgICBrZXlzLnB1c2goa2V5KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4ga2V5cztcbiAgICAgICAgfTtcbiAgICB1dGlsLmZpbmQgPSAoYXJyLCBjaGVja2VyKSA9PiB7XG4gICAgICAgIGZvciAoY29uc3QgaXRlbSBvZiBhcnIpIHtcbiAgICAgICAgICAgIGlmIChjaGVja2VyKGl0ZW0pKVxuICAgICAgICAgICAgICAgIHJldHVybiBpdGVtO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfTtcbiAgICB1dGlsLmlzSW50ZWdlciA9IHR5cGVvZiBOdW1iZXIuaXNJbnRlZ2VyID09PSBcImZ1bmN0aW9uXCJcbiAgICAgICAgPyAodmFsKSA9PiBOdW1iZXIuaXNJbnRlZ2VyKHZhbCkgLy8gZXNsaW50LWRpc2FibGUtbGluZSBiYW4vYmFuXG4gICAgICAgIDogKHZhbCkgPT4gdHlwZW9mIHZhbCA9PT0gXCJudW1iZXJcIiAmJiBpc0Zpbml0ZSh2YWwpICYmIE1hdGguZmxvb3IodmFsKSA9PT0gdmFsO1xuICAgIGZ1bmN0aW9uIGpvaW5WYWx1ZXMoYXJyYXksIHNlcGFyYXRvciA9IFwiIHwgXCIpIHtcbiAgICAgICAgcmV0dXJuIGFycmF5XG4gICAgICAgICAgICAubWFwKCh2YWwpID0+ICh0eXBlb2YgdmFsID09PSBcInN0cmluZ1wiID8gYCcke3ZhbH0nYCA6IHZhbCkpXG4gICAgICAgICAgICAuam9pbihzZXBhcmF0b3IpO1xuICAgIH1cbiAgICB1dGlsLmpvaW5WYWx1ZXMgPSBqb2luVmFsdWVzO1xuICAgIHV0aWwuanNvblN0cmluZ2lmeVJlcGxhY2VyID0gKF8sIHZhbHVlKSA9PiB7XG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09IFwiYmlnaW50XCIpIHtcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZS50b1N0cmluZygpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9O1xufSkodXRpbCB8fCAodXRpbCA9IHt9KSk7XG52YXIgb2JqZWN0VXRpbDtcbihmdW5jdGlvbiAob2JqZWN0VXRpbCkge1xuICAgIG9iamVjdFV0aWwubWVyZ2VTaGFwZXMgPSAoZmlyc3QsIHNlY29uZCkgPT4ge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgLi4uZmlyc3QsXG4gICAgICAgICAgICAuLi5zZWNvbmQsIC8vIHNlY29uZCBvdmVyd3JpdGVzIGZpcnN0XG4gICAgICAgIH07XG4gICAgfTtcbn0pKG9iamVjdFV0aWwgfHwgKG9iamVjdFV0aWwgPSB7fSkpO1xuY29uc3QgWm9kUGFyc2VkVHlwZSA9IHV0aWwuYXJyYXlUb0VudW0oW1xuICAgIFwic3RyaW5nXCIsXG4gICAgXCJuYW5cIixcbiAgICBcIm51bWJlclwiLFxuICAgIFwiaW50ZWdlclwiLFxuICAgIFwiZmxvYXRcIixcbiAgICBcImJvb2xlYW5cIixcbiAgICBcImRhdGVcIixcbiAgICBcImJpZ2ludFwiLFxuICAgIFwic3ltYm9sXCIsXG4gICAgXCJmdW5jdGlvblwiLFxuICAgIFwidW5kZWZpbmVkXCIsXG4gICAgXCJudWxsXCIsXG4gICAgXCJhcnJheVwiLFxuICAgIFwib2JqZWN0XCIsXG4gICAgXCJ1bmtub3duXCIsXG4gICAgXCJwcm9taXNlXCIsXG4gICAgXCJ2b2lkXCIsXG4gICAgXCJuZXZlclwiLFxuICAgIFwibWFwXCIsXG4gICAgXCJzZXRcIixcbl0pO1xuY29uc3QgZ2V0UGFyc2VkVHlwZSA9IChkYXRhKSA9PiB7XG4gICAgY29uc3QgdCA9IHR5cGVvZiBkYXRhO1xuICAgIHN3aXRjaCAodCkge1xuICAgICAgICBjYXNlIFwidW5kZWZpbmVkXCI6XG4gICAgICAgICAgICByZXR1cm4gWm9kUGFyc2VkVHlwZS51bmRlZmluZWQ7XG4gICAgICAgIGNhc2UgXCJzdHJpbmdcIjpcbiAgICAgICAgICAgIHJldHVybiBab2RQYXJzZWRUeXBlLnN0cmluZztcbiAgICAgICAgY2FzZSBcIm51bWJlclwiOlxuICAgICAgICAgICAgcmV0dXJuIGlzTmFOKGRhdGEpID8gWm9kUGFyc2VkVHlwZS5uYW4gOiBab2RQYXJzZWRUeXBlLm51bWJlcjtcbiAgICAgICAgY2FzZSBcImJvb2xlYW5cIjpcbiAgICAgICAgICAgIHJldHVybiBab2RQYXJzZWRUeXBlLmJvb2xlYW47XG4gICAgICAgIGNhc2UgXCJmdW5jdGlvblwiOlxuICAgICAgICAgICAgcmV0dXJuIFpvZFBhcnNlZFR5cGUuZnVuY3Rpb247XG4gICAgICAgIGNhc2UgXCJiaWdpbnRcIjpcbiAgICAgICAgICAgIHJldHVybiBab2RQYXJzZWRUeXBlLmJpZ2ludDtcbiAgICAgICAgY2FzZSBcInN5bWJvbFwiOlxuICAgICAgICAgICAgcmV0dXJuIFpvZFBhcnNlZFR5cGUuc3ltYm9sO1xuICAgICAgICBjYXNlIFwib2JqZWN0XCI6XG4gICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShkYXRhKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBab2RQYXJzZWRUeXBlLmFycmF5O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEgPT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gWm9kUGFyc2VkVHlwZS5udWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEudGhlbiAmJlxuICAgICAgICAgICAgICAgIHR5cGVvZiBkYXRhLnRoZW4gPT09IFwiZnVuY3Rpb25cIiAmJlxuICAgICAgICAgICAgICAgIGRhdGEuY2F0Y2ggJiZcbiAgICAgICAgICAgICAgICB0eXBlb2YgZGF0YS5jYXRjaCA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFpvZFBhcnNlZFR5cGUucHJvbWlzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0eXBlb2YgTWFwICE9PSBcInVuZGVmaW5lZFwiICYmIGRhdGEgaW5zdGFuY2VvZiBNYXApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gWm9kUGFyc2VkVHlwZS5tYXA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodHlwZW9mIFNldCAhPT0gXCJ1bmRlZmluZWRcIiAmJiBkYXRhIGluc3RhbmNlb2YgU2V0KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFpvZFBhcnNlZFR5cGUuc2V0O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHR5cGVvZiBEYXRlICE9PSBcInVuZGVmaW5lZFwiICYmIGRhdGEgaW5zdGFuY2VvZiBEYXRlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFpvZFBhcnNlZFR5cGUuZGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBab2RQYXJzZWRUeXBlLm9iamVjdDtcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHJldHVybiBab2RQYXJzZWRUeXBlLnVua25vd247XG4gICAgfVxufTtcblxuY29uc3QgWm9kSXNzdWVDb2RlID0gdXRpbC5hcnJheVRvRW51bShbXG4gICAgXCJpbnZhbGlkX3R5cGVcIixcbiAgICBcImludmFsaWRfbGl0ZXJhbFwiLFxuICAgIFwiY3VzdG9tXCIsXG4gICAgXCJpbnZhbGlkX3VuaW9uXCIsXG4gICAgXCJpbnZhbGlkX3VuaW9uX2Rpc2NyaW1pbmF0b3JcIixcbiAgICBcImludmFsaWRfZW51bV92YWx1ZVwiLFxuICAgIFwidW5yZWNvZ25pemVkX2tleXNcIixcbiAgICBcImludmFsaWRfYXJndW1lbnRzXCIsXG4gICAgXCJpbnZhbGlkX3JldHVybl90eXBlXCIsXG4gICAgXCJpbnZhbGlkX2RhdGVcIixcbiAgICBcImludmFsaWRfc3RyaW5nXCIsXG4gICAgXCJ0b29fc21hbGxcIixcbiAgICBcInRvb19iaWdcIixcbiAgICBcImludmFsaWRfaW50ZXJzZWN0aW9uX3R5cGVzXCIsXG4gICAgXCJub3RfbXVsdGlwbGVfb2ZcIixcbiAgICBcIm5vdF9maW5pdGVcIixcbl0pO1xuY29uc3QgcXVvdGVsZXNzSnNvbiA9IChvYmopID0+IHtcbiAgICBjb25zdCBqc29uID0gSlNPTi5zdHJpbmdpZnkob2JqLCBudWxsLCAyKTtcbiAgICByZXR1cm4ganNvbi5yZXBsYWNlKC9cIihbXlwiXSspXCI6L2csIFwiJDE6XCIpO1xufTtcbmNsYXNzIFpvZEVycm9yIGV4dGVuZHMgRXJyb3Ige1xuICAgIGdldCBlcnJvcnMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzc3VlcztcbiAgICB9XG4gICAgY29uc3RydWN0b3IoaXNzdWVzKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMuaXNzdWVzID0gW107XG4gICAgICAgIHRoaXMuYWRkSXNzdWUgPSAoc3ViKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmlzc3VlcyA9IFsuLi50aGlzLmlzc3Vlcywgc3ViXTtcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5hZGRJc3N1ZXMgPSAoc3VicyA9IFtdKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmlzc3VlcyA9IFsuLi50aGlzLmlzc3VlcywgLi4uc3Vic107XG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IGFjdHVhbFByb3RvID0gbmV3LnRhcmdldC5wcm90b3R5cGU7XG4gICAgICAgIGlmIChPYmplY3Quc2V0UHJvdG90eXBlT2YpIHtcbiAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBiYW4vYmFuXG4gICAgICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgYWN0dWFsUHJvdG8pO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fX3Byb3RvX18gPSBhY3R1YWxQcm90bztcbiAgICAgICAgfVxuICAgICAgICB0aGlzLm5hbWUgPSBcIlpvZEVycm9yXCI7XG4gICAgICAgIHRoaXMuaXNzdWVzID0gaXNzdWVzO1xuICAgIH1cbiAgICBmb3JtYXQoX21hcHBlcikge1xuICAgICAgICBjb25zdCBtYXBwZXIgPSBfbWFwcGVyIHx8XG4gICAgICAgICAgICBmdW5jdGlvbiAoaXNzdWUpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaXNzdWUubWVzc2FnZTtcbiAgICAgICAgICAgIH07XG4gICAgICAgIGNvbnN0IGZpZWxkRXJyb3JzID0geyBfZXJyb3JzOiBbXSB9O1xuICAgICAgICBjb25zdCBwcm9jZXNzRXJyb3IgPSAoZXJyb3IpID0+IHtcbiAgICAgICAgICAgIGZvciAoY29uc3QgaXNzdWUgb2YgZXJyb3IuaXNzdWVzKSB7XG4gICAgICAgICAgICAgICAgaWYgKGlzc3VlLmNvZGUgPT09IFwiaW52YWxpZF91bmlvblwiKSB7XG4gICAgICAgICAgICAgICAgICAgIGlzc3VlLnVuaW9uRXJyb3JzLm1hcChwcm9jZXNzRXJyb3IpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIGlmIChpc3N1ZS5jb2RlID09PSBcImludmFsaWRfcmV0dXJuX3R5cGVcIikge1xuICAgICAgICAgICAgICAgICAgICBwcm9jZXNzRXJyb3IoaXNzdWUucmV0dXJuVHlwZUVycm9yKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAoaXNzdWUuY29kZSA9PT0gXCJpbnZhbGlkX2FyZ3VtZW50c1wiKSB7XG4gICAgICAgICAgICAgICAgICAgIHByb2Nlc3NFcnJvcihpc3N1ZS5hcmd1bWVudHNFcnJvcik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKGlzc3VlLnBhdGgubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgIGZpZWxkRXJyb3JzLl9lcnJvcnMucHVzaChtYXBwZXIoaXNzdWUpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGxldCBjdXJyID0gZmllbGRFcnJvcnM7XG4gICAgICAgICAgICAgICAgICAgIGxldCBpID0gMDtcbiAgICAgICAgICAgICAgICAgICAgd2hpbGUgKGkgPCBpc3N1ZS5wYXRoLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZWwgPSBpc3N1ZS5wYXRoW2ldO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdGVybWluYWwgPSBpID09PSBpc3N1ZS5wYXRoLmxlbmd0aCAtIDE7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXRlcm1pbmFsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VycltlbF0gPSBjdXJyW2VsXSB8fCB7IF9lcnJvcnM6IFtdIH07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gaWYgKHR5cGVvZiBlbCA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgY3VycltlbF0gPSBjdXJyW2VsXSB8fCB7IF9lcnJvcnM6IFtdIH07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gfSBlbHNlIGlmICh0eXBlb2YgZWwgPT09IFwibnVtYmVyXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgIGNvbnN0IGVycm9yQXJyYXk6IGFueSA9IFtdO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgZXJyb3JBcnJheS5fZXJyb3JzID0gW107XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gICBjdXJyW2VsXSA9IGN1cnJbZWxdIHx8IGVycm9yQXJyYXk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VycltlbF0gPSBjdXJyW2VsXSB8fCB7IF9lcnJvcnM6IFtdIH07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VycltlbF0uX2Vycm9ycy5wdXNoKG1hcHBlcihpc3N1ZSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgY3VyciA9IGN1cnJbZWxdO1xuICAgICAgICAgICAgICAgICAgICAgICAgaSsrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgICBwcm9jZXNzRXJyb3IodGhpcyk7XG4gICAgICAgIHJldHVybiBmaWVsZEVycm9ycztcbiAgICB9XG4gICAgc3RhdGljIGFzc2VydCh2YWx1ZSkge1xuICAgICAgICBpZiAoISh2YWx1ZSBpbnN0YW5jZW9mIFpvZEVycm9yKSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBOb3QgYSBab2RFcnJvcjogJHt2YWx1ZX1gKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICB0b1N0cmluZygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubWVzc2FnZTtcbiAgICB9XG4gICAgZ2V0IG1lc3NhZ2UoKSB7XG4gICAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeSh0aGlzLmlzc3VlcywgdXRpbC5qc29uU3RyaW5naWZ5UmVwbGFjZXIsIDIpO1xuICAgIH1cbiAgICBnZXQgaXNFbXB0eSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNzdWVzLmxlbmd0aCA9PT0gMDtcbiAgICB9XG4gICAgZmxhdHRlbihtYXBwZXIgPSAoaXNzdWUpID0+IGlzc3VlLm1lc3NhZ2UpIHtcbiAgICAgICAgY29uc3QgZmllbGRFcnJvcnMgPSB7fTtcbiAgICAgICAgY29uc3QgZm9ybUVycm9ycyA9IFtdO1xuICAgICAgICBmb3IgKGNvbnN0IHN1YiBvZiB0aGlzLmlzc3Vlcykge1xuICAgICAgICAgICAgaWYgKHN1Yi5wYXRoLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICBmaWVsZEVycm9yc1tzdWIucGF0aFswXV0gPSBmaWVsZEVycm9yc1tzdWIucGF0aFswXV0gfHwgW107XG4gICAgICAgICAgICAgICAgZmllbGRFcnJvcnNbc3ViLnBhdGhbMF1dLnB1c2gobWFwcGVyKHN1YikpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgZm9ybUVycm9ycy5wdXNoKG1hcHBlcihzdWIpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4geyBmb3JtRXJyb3JzLCBmaWVsZEVycm9ycyB9O1xuICAgIH1cbiAgICBnZXQgZm9ybUVycm9ycygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZmxhdHRlbigpO1xuICAgIH1cbn1cblpvZEVycm9yLmNyZWF0ZSA9IChpc3N1ZXMpID0+IHtcbiAgICBjb25zdCBlcnJvciA9IG5ldyBab2RFcnJvcihpc3N1ZXMpO1xuICAgIHJldHVybiBlcnJvcjtcbn07XG5cbmNvbnN0IGVycm9yTWFwID0gKGlzc3VlLCBfY3R4KSA9PiB7XG4gICAgbGV0IG1lc3NhZ2U7XG4gICAgc3dpdGNoIChpc3N1ZS5jb2RlKSB7XG4gICAgICAgIGNhc2UgWm9kSXNzdWVDb2RlLmludmFsaWRfdHlwZTpcbiAgICAgICAgICAgIGlmIChpc3N1ZS5yZWNlaXZlZCA9PT0gWm9kUGFyc2VkVHlwZS51bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICBtZXNzYWdlID0gXCJSZXF1aXJlZFwiO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgbWVzc2FnZSA9IGBFeHBlY3RlZCAke2lzc3VlLmV4cGVjdGVkfSwgcmVjZWl2ZWQgJHtpc3N1ZS5yZWNlaXZlZH1gO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgWm9kSXNzdWVDb2RlLmludmFsaWRfbGl0ZXJhbDpcbiAgICAgICAgICAgIG1lc3NhZ2UgPSBgSW52YWxpZCBsaXRlcmFsIHZhbHVlLCBleHBlY3RlZCAke0pTT04uc3RyaW5naWZ5KGlzc3VlLmV4cGVjdGVkLCB1dGlsLmpzb25TdHJpbmdpZnlSZXBsYWNlcil9YDtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFpvZElzc3VlQ29kZS51bnJlY29nbml6ZWRfa2V5czpcbiAgICAgICAgICAgIG1lc3NhZ2UgPSBgVW5yZWNvZ25pemVkIGtleShzKSBpbiBvYmplY3Q6ICR7dXRpbC5qb2luVmFsdWVzKGlzc3VlLmtleXMsIFwiLCBcIil9YDtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFpvZElzc3VlQ29kZS5pbnZhbGlkX3VuaW9uOlxuICAgICAgICAgICAgbWVzc2FnZSA9IGBJbnZhbGlkIGlucHV0YDtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFpvZElzc3VlQ29kZS5pbnZhbGlkX3VuaW9uX2Rpc2NyaW1pbmF0b3I6XG4gICAgICAgICAgICBtZXNzYWdlID0gYEludmFsaWQgZGlzY3JpbWluYXRvciB2YWx1ZS4gRXhwZWN0ZWQgJHt1dGlsLmpvaW5WYWx1ZXMoaXNzdWUub3B0aW9ucyl9YDtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFpvZElzc3VlQ29kZS5pbnZhbGlkX2VudW1fdmFsdWU6XG4gICAgICAgICAgICBtZXNzYWdlID0gYEludmFsaWQgZW51bSB2YWx1ZS4gRXhwZWN0ZWQgJHt1dGlsLmpvaW5WYWx1ZXMoaXNzdWUub3B0aW9ucyl9LCByZWNlaXZlZCAnJHtpc3N1ZS5yZWNlaXZlZH0nYDtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFpvZElzc3VlQ29kZS5pbnZhbGlkX2FyZ3VtZW50czpcbiAgICAgICAgICAgIG1lc3NhZ2UgPSBgSW52YWxpZCBmdW5jdGlvbiBhcmd1bWVudHNgO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgWm9kSXNzdWVDb2RlLmludmFsaWRfcmV0dXJuX3R5cGU6XG4gICAgICAgICAgICBtZXNzYWdlID0gYEludmFsaWQgZnVuY3Rpb24gcmV0dXJuIHR5cGVgO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgWm9kSXNzdWVDb2RlLmludmFsaWRfZGF0ZTpcbiAgICAgICAgICAgIG1lc3NhZ2UgPSBgSW52YWxpZCBkYXRlYDtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFpvZElzc3VlQ29kZS5pbnZhbGlkX3N0cmluZzpcbiAgICAgICAgICAgIGlmICh0eXBlb2YgaXNzdWUudmFsaWRhdGlvbiA9PT0gXCJvYmplY3RcIikge1xuICAgICAgICAgICAgICAgIGlmIChcImluY2x1ZGVzXCIgaW4gaXNzdWUudmFsaWRhdGlvbikge1xuICAgICAgICAgICAgICAgICAgICBtZXNzYWdlID0gYEludmFsaWQgaW5wdXQ6IG11c3QgaW5jbHVkZSBcIiR7aXNzdWUudmFsaWRhdGlvbi5pbmNsdWRlc31cImA7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgaXNzdWUudmFsaWRhdGlvbi5wb3NpdGlvbiA9PT0gXCJudW1iZXJcIikge1xuICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZSA9IGAke21lc3NhZ2V9IGF0IG9uZSBvciBtb3JlIHBvc2l0aW9ucyBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJHtpc3N1ZS52YWxpZGF0aW9uLnBvc2l0aW9ufWA7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAoXCJzdGFydHNXaXRoXCIgaW4gaXNzdWUudmFsaWRhdGlvbikge1xuICAgICAgICAgICAgICAgICAgICBtZXNzYWdlID0gYEludmFsaWQgaW5wdXQ6IG11c3Qgc3RhcnQgd2l0aCBcIiR7aXNzdWUudmFsaWRhdGlvbi5zdGFydHNXaXRofVwiYDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAoXCJlbmRzV2l0aFwiIGluIGlzc3VlLnZhbGlkYXRpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgbWVzc2FnZSA9IGBJbnZhbGlkIGlucHV0OiBtdXN0IGVuZCB3aXRoIFwiJHtpc3N1ZS52YWxpZGF0aW9uLmVuZHNXaXRofVwiYDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHV0aWwuYXNzZXJ0TmV2ZXIoaXNzdWUudmFsaWRhdGlvbik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAoaXNzdWUudmFsaWRhdGlvbiAhPT0gXCJyZWdleFwiKSB7XG4gICAgICAgICAgICAgICAgbWVzc2FnZSA9IGBJbnZhbGlkICR7aXNzdWUudmFsaWRhdGlvbn1gO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgbWVzc2FnZSA9IFwiSW52YWxpZFwiO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgWm9kSXNzdWVDb2RlLnRvb19zbWFsbDpcbiAgICAgICAgICAgIGlmIChpc3N1ZS50eXBlID09PSBcImFycmF5XCIpXG4gICAgICAgICAgICAgICAgbWVzc2FnZSA9IGBBcnJheSBtdXN0IGNvbnRhaW4gJHtpc3N1ZS5leGFjdCA/IFwiZXhhY3RseVwiIDogaXNzdWUuaW5jbHVzaXZlID8gYGF0IGxlYXN0YCA6IGBtb3JlIHRoYW5gfSAke2lzc3VlLm1pbmltdW19IGVsZW1lbnQocylgO1xuICAgICAgICAgICAgZWxzZSBpZiAoaXNzdWUudHlwZSA9PT0gXCJzdHJpbmdcIilcbiAgICAgICAgICAgICAgICBtZXNzYWdlID0gYFN0cmluZyBtdXN0IGNvbnRhaW4gJHtpc3N1ZS5leGFjdCA/IFwiZXhhY3RseVwiIDogaXNzdWUuaW5jbHVzaXZlID8gYGF0IGxlYXN0YCA6IGBvdmVyYH0gJHtpc3N1ZS5taW5pbXVtfSBjaGFyYWN0ZXIocylgO1xuICAgICAgICAgICAgZWxzZSBpZiAoaXNzdWUudHlwZSA9PT0gXCJudW1iZXJcIilcbiAgICAgICAgICAgICAgICBtZXNzYWdlID0gYE51bWJlciBtdXN0IGJlICR7aXNzdWUuZXhhY3RcbiAgICAgICAgICAgICAgICAgICAgPyBgZXhhY3RseSBlcXVhbCB0byBgXG4gICAgICAgICAgICAgICAgICAgIDogaXNzdWUuaW5jbHVzaXZlXG4gICAgICAgICAgICAgICAgICAgICAgICA/IGBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gYFxuICAgICAgICAgICAgICAgICAgICAgICAgOiBgZ3JlYXRlciB0aGFuIGB9JHtpc3N1ZS5taW5pbXVtfWA7XG4gICAgICAgICAgICBlbHNlIGlmIChpc3N1ZS50eXBlID09PSBcImRhdGVcIilcbiAgICAgICAgICAgICAgICBtZXNzYWdlID0gYERhdGUgbXVzdCBiZSAke2lzc3VlLmV4YWN0XG4gICAgICAgICAgICAgICAgICAgID8gYGV4YWN0bHkgZXF1YWwgdG8gYFxuICAgICAgICAgICAgICAgICAgICA6IGlzc3VlLmluY2x1c2l2ZVxuICAgICAgICAgICAgICAgICAgICAgICAgPyBgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIGBcbiAgICAgICAgICAgICAgICAgICAgICAgIDogYGdyZWF0ZXIgdGhhbiBgfSR7bmV3IERhdGUoTnVtYmVyKGlzc3VlLm1pbmltdW0pKX1gO1xuICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgIG1lc3NhZ2UgPSBcIkludmFsaWQgaW5wdXRcIjtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFpvZElzc3VlQ29kZS50b29fYmlnOlxuICAgICAgICAgICAgaWYgKGlzc3VlLnR5cGUgPT09IFwiYXJyYXlcIilcbiAgICAgICAgICAgICAgICBtZXNzYWdlID0gYEFycmF5IG11c3QgY29udGFpbiAke2lzc3VlLmV4YWN0ID8gYGV4YWN0bHlgIDogaXNzdWUuaW5jbHVzaXZlID8gYGF0IG1vc3RgIDogYGxlc3MgdGhhbmB9ICR7aXNzdWUubWF4aW11bX0gZWxlbWVudChzKWA7XG4gICAgICAgICAgICBlbHNlIGlmIChpc3N1ZS50eXBlID09PSBcInN0cmluZ1wiKVxuICAgICAgICAgICAgICAgIG1lc3NhZ2UgPSBgU3RyaW5nIG11c3QgY29udGFpbiAke2lzc3VlLmV4YWN0ID8gYGV4YWN0bHlgIDogaXNzdWUuaW5jbHVzaXZlID8gYGF0IG1vc3RgIDogYHVuZGVyYH0gJHtpc3N1ZS5tYXhpbXVtfSBjaGFyYWN0ZXIocylgO1xuICAgICAgICAgICAgZWxzZSBpZiAoaXNzdWUudHlwZSA9PT0gXCJudW1iZXJcIilcbiAgICAgICAgICAgICAgICBtZXNzYWdlID0gYE51bWJlciBtdXN0IGJlICR7aXNzdWUuZXhhY3RcbiAgICAgICAgICAgICAgICAgICAgPyBgZXhhY3RseWBcbiAgICAgICAgICAgICAgICAgICAgOiBpc3N1ZS5pbmNsdXNpdmVcbiAgICAgICAgICAgICAgICAgICAgICAgID8gYGxlc3MgdGhhbiBvciBlcXVhbCB0b2BcbiAgICAgICAgICAgICAgICAgICAgICAgIDogYGxlc3MgdGhhbmB9ICR7aXNzdWUubWF4aW11bX1gO1xuICAgICAgICAgICAgZWxzZSBpZiAoaXNzdWUudHlwZSA9PT0gXCJiaWdpbnRcIilcbiAgICAgICAgICAgICAgICBtZXNzYWdlID0gYEJpZ0ludCBtdXN0IGJlICR7aXNzdWUuZXhhY3RcbiAgICAgICAgICAgICAgICAgICAgPyBgZXhhY3RseWBcbiAgICAgICAgICAgICAgICAgICAgOiBpc3N1ZS5pbmNsdXNpdmVcbiAgICAgICAgICAgICAgICAgICAgICAgID8gYGxlc3MgdGhhbiBvciBlcXVhbCB0b2BcbiAgICAgICAgICAgICAgICAgICAgICAgIDogYGxlc3MgdGhhbmB9ICR7aXNzdWUubWF4aW11bX1gO1xuICAgICAgICAgICAgZWxzZSBpZiAoaXNzdWUudHlwZSA9PT0gXCJkYXRlXCIpXG4gICAgICAgICAgICAgICAgbWVzc2FnZSA9IGBEYXRlIG11c3QgYmUgJHtpc3N1ZS5leGFjdFxuICAgICAgICAgICAgICAgICAgICA/IGBleGFjdGx5YFxuICAgICAgICAgICAgICAgICAgICA6IGlzc3VlLmluY2x1c2l2ZVxuICAgICAgICAgICAgICAgICAgICAgICAgPyBgc21hbGxlciB0aGFuIG9yIGVxdWFsIHRvYFxuICAgICAgICAgICAgICAgICAgICAgICAgOiBgc21hbGxlciB0aGFuYH0gJHtuZXcgRGF0ZShOdW1iZXIoaXNzdWUubWF4aW11bSkpfWA7XG4gICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgbWVzc2FnZSA9IFwiSW52YWxpZCBpbnB1dFwiO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgWm9kSXNzdWVDb2RlLmN1c3RvbTpcbiAgICAgICAgICAgIG1lc3NhZ2UgPSBgSW52YWxpZCBpbnB1dGA7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBab2RJc3N1ZUNvZGUuaW52YWxpZF9pbnRlcnNlY3Rpb25fdHlwZXM6XG4gICAgICAgICAgICBtZXNzYWdlID0gYEludGVyc2VjdGlvbiByZXN1bHRzIGNvdWxkIG5vdCBiZSBtZXJnZWRgO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgWm9kSXNzdWVDb2RlLm5vdF9tdWx0aXBsZV9vZjpcbiAgICAgICAgICAgIG1lc3NhZ2UgPSBgTnVtYmVyIG11c3QgYmUgYSBtdWx0aXBsZSBvZiAke2lzc3VlLm11bHRpcGxlT2Z9YDtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFpvZElzc3VlQ29kZS5ub3RfZmluaXRlOlxuICAgICAgICAgICAgbWVzc2FnZSA9IFwiTnVtYmVyIG11c3QgYmUgZmluaXRlXCI7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIG1lc3NhZ2UgPSBfY3R4LmRlZmF1bHRFcnJvcjtcbiAgICAgICAgICAgIHV0aWwuYXNzZXJ0TmV2ZXIoaXNzdWUpO1xuICAgIH1cbiAgICByZXR1cm4geyBtZXNzYWdlIH07XG59O1xuXG5sZXQgb3ZlcnJpZGVFcnJvck1hcCA9IGVycm9yTWFwO1xuZnVuY3Rpb24gc2V0RXJyb3JNYXAobWFwKSB7XG4gICAgb3ZlcnJpZGVFcnJvck1hcCA9IG1hcDtcbn1cbmZ1bmN0aW9uIGdldEVycm9yTWFwKCkge1xuICAgIHJldHVybiBvdmVycmlkZUVycm9yTWFwO1xufVxuXG5jb25zdCBtYWtlSXNzdWUgPSAocGFyYW1zKSA9PiB7XG4gICAgY29uc3QgeyBkYXRhLCBwYXRoLCBlcnJvck1hcHMsIGlzc3VlRGF0YSB9ID0gcGFyYW1zO1xuICAgIGNvbnN0IGZ1bGxQYXRoID0gWy4uLnBhdGgsIC4uLihpc3N1ZURhdGEucGF0aCB8fCBbXSldO1xuICAgIGNvbnN0IGZ1bGxJc3N1ZSA9IHtcbiAgICAgICAgLi4uaXNzdWVEYXRhLFxuICAgICAgICBwYXRoOiBmdWxsUGF0aCxcbiAgICB9O1xuICAgIGlmIChpc3N1ZURhdGEubWVzc2FnZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAuLi5pc3N1ZURhdGEsXG4gICAgICAgICAgICBwYXRoOiBmdWxsUGF0aCxcbiAgICAgICAgICAgIG1lc3NhZ2U6IGlzc3VlRGF0YS5tZXNzYWdlLFxuICAgICAgICB9O1xuICAgIH1cbiAgICBsZXQgZXJyb3JNZXNzYWdlID0gXCJcIjtcbiAgICBjb25zdCBtYXBzID0gZXJyb3JNYXBzXG4gICAgICAgIC5maWx0ZXIoKG0pID0+ICEhbSlcbiAgICAgICAgLnNsaWNlKClcbiAgICAgICAgLnJldmVyc2UoKTtcbiAgICBmb3IgKGNvbnN0IG1hcCBvZiBtYXBzKSB7XG4gICAgICAgIGVycm9yTWVzc2FnZSA9IG1hcChmdWxsSXNzdWUsIHsgZGF0YSwgZGVmYXVsdEVycm9yOiBlcnJvck1lc3NhZ2UgfSkubWVzc2FnZTtcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgICAgLi4uaXNzdWVEYXRhLFxuICAgICAgICBwYXRoOiBmdWxsUGF0aCxcbiAgICAgICAgbWVzc2FnZTogZXJyb3JNZXNzYWdlLFxuICAgIH07XG59O1xuY29uc3QgRU1QVFlfUEFUSCA9IFtdO1xuZnVuY3Rpb24gYWRkSXNzdWVUb0NvbnRleHQoY3R4LCBpc3N1ZURhdGEpIHtcbiAgICBjb25zdCBvdmVycmlkZU1hcCA9IGdldEVycm9yTWFwKCk7XG4gICAgY29uc3QgaXNzdWUgPSBtYWtlSXNzdWUoe1xuICAgICAgICBpc3N1ZURhdGE6IGlzc3VlRGF0YSxcbiAgICAgICAgZGF0YTogY3R4LmRhdGEsXG4gICAgICAgIHBhdGg6IGN0eC5wYXRoLFxuICAgICAgICBlcnJvck1hcHM6IFtcbiAgICAgICAgICAgIGN0eC5jb21tb24uY29udGV4dHVhbEVycm9yTWFwLCAvLyBjb250ZXh0dWFsIGVycm9yIG1hcCBpcyBmaXJzdCBwcmlvcml0eVxuICAgICAgICAgICAgY3R4LnNjaGVtYUVycm9yTWFwLCAvLyB0aGVuIHNjaGVtYS1ib3VuZCBtYXAgaWYgYXZhaWxhYmxlXG4gICAgICAgICAgICBvdmVycmlkZU1hcCwgLy8gdGhlbiBnbG9iYWwgb3ZlcnJpZGUgbWFwXG4gICAgICAgICAgICBvdmVycmlkZU1hcCA9PT0gZXJyb3JNYXAgPyB1bmRlZmluZWQgOiBlcnJvck1hcCwgLy8gdGhlbiBnbG9iYWwgZGVmYXVsdCBtYXBcbiAgICAgICAgXS5maWx0ZXIoKHgpID0+ICEheCksXG4gICAgfSk7XG4gICAgY3R4LmNvbW1vbi5pc3N1ZXMucHVzaChpc3N1ZSk7XG59XG5jbGFzcyBQYXJzZVN0YXR1cyB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMudmFsdWUgPSBcInZhbGlkXCI7XG4gICAgfVxuICAgIGRpcnR5KCkge1xuICAgICAgICBpZiAodGhpcy52YWx1ZSA9PT0gXCJ2YWxpZFwiKVxuICAgICAgICAgICAgdGhpcy52YWx1ZSA9IFwiZGlydHlcIjtcbiAgICB9XG4gICAgYWJvcnQoKSB7XG4gICAgICAgIGlmICh0aGlzLnZhbHVlICE9PSBcImFib3J0ZWRcIilcbiAgICAgICAgICAgIHRoaXMudmFsdWUgPSBcImFib3J0ZWRcIjtcbiAgICB9XG4gICAgc3RhdGljIG1lcmdlQXJyYXkoc3RhdHVzLCByZXN1bHRzKSB7XG4gICAgICAgIGNvbnN0IGFycmF5VmFsdWUgPSBbXTtcbiAgICAgICAgZm9yIChjb25zdCBzIG9mIHJlc3VsdHMpIHtcbiAgICAgICAgICAgIGlmIChzLnN0YXR1cyA9PT0gXCJhYm9ydGVkXCIpXG4gICAgICAgICAgICAgICAgcmV0dXJuIElOVkFMSUQ7XG4gICAgICAgICAgICBpZiAocy5zdGF0dXMgPT09IFwiZGlydHlcIilcbiAgICAgICAgICAgICAgICBzdGF0dXMuZGlydHkoKTtcbiAgICAgICAgICAgIGFycmF5VmFsdWUucHVzaChzLnZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4geyBzdGF0dXM6IHN0YXR1cy52YWx1ZSwgdmFsdWU6IGFycmF5VmFsdWUgfTtcbiAgICB9XG4gICAgc3RhdGljIGFzeW5jIG1lcmdlT2JqZWN0QXN5bmMoc3RhdHVzLCBwYWlycykge1xuICAgICAgICBjb25zdCBzeW5jUGFpcnMgPSBbXTtcbiAgICAgICAgZm9yIChjb25zdCBwYWlyIG9mIHBhaXJzKSB7XG4gICAgICAgICAgICBjb25zdCBrZXkgPSBhd2FpdCBwYWlyLmtleTtcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gYXdhaXQgcGFpci52YWx1ZTtcbiAgICAgICAgICAgIHN5bmNQYWlycy5wdXNoKHtcbiAgICAgICAgICAgICAgICBrZXksXG4gICAgICAgICAgICAgICAgdmFsdWUsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gUGFyc2VTdGF0dXMubWVyZ2VPYmplY3RTeW5jKHN0YXR1cywgc3luY1BhaXJzKTtcbiAgICB9XG4gICAgc3RhdGljIG1lcmdlT2JqZWN0U3luYyhzdGF0dXMsIHBhaXJzKSB7XG4gICAgICAgIGNvbnN0IGZpbmFsT2JqZWN0ID0ge307XG4gICAgICAgIGZvciAoY29uc3QgcGFpciBvZiBwYWlycykge1xuICAgICAgICAgICAgY29uc3QgeyBrZXksIHZhbHVlIH0gPSBwYWlyO1xuICAgICAgICAgICAgaWYgKGtleS5zdGF0dXMgPT09IFwiYWJvcnRlZFwiKVxuICAgICAgICAgICAgICAgIHJldHVybiBJTlZBTElEO1xuICAgICAgICAgICAgaWYgKHZhbHVlLnN0YXR1cyA9PT0gXCJhYm9ydGVkXCIpXG4gICAgICAgICAgICAgICAgcmV0dXJuIElOVkFMSUQ7XG4gICAgICAgICAgICBpZiAoa2V5LnN0YXR1cyA9PT0gXCJkaXJ0eVwiKVxuICAgICAgICAgICAgICAgIHN0YXR1cy5kaXJ0eSgpO1xuICAgICAgICAgICAgaWYgKHZhbHVlLnN0YXR1cyA9PT0gXCJkaXJ0eVwiKVxuICAgICAgICAgICAgICAgIHN0YXR1cy5kaXJ0eSgpO1xuICAgICAgICAgICAgaWYgKGtleS52YWx1ZSAhPT0gXCJfX3Byb3RvX19cIiAmJlxuICAgICAgICAgICAgICAgICh0eXBlb2YgdmFsdWUudmFsdWUgIT09IFwidW5kZWZpbmVkXCIgfHwgcGFpci5hbHdheXNTZXQpKSB7XG4gICAgICAgICAgICAgICAgZmluYWxPYmplY3Rba2V5LnZhbHVlXSA9IHZhbHVlLnZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7IHN0YXR1czogc3RhdHVzLnZhbHVlLCB2YWx1ZTogZmluYWxPYmplY3QgfTtcbiAgICB9XG59XG5jb25zdCBJTlZBTElEID0gT2JqZWN0LmZyZWV6ZSh7XG4gICAgc3RhdHVzOiBcImFib3J0ZWRcIixcbn0pO1xuY29uc3QgRElSVFkgPSAodmFsdWUpID0+ICh7IHN0YXR1czogXCJkaXJ0eVwiLCB2YWx1ZSB9KTtcbmNvbnN0IE9LID0gKHZhbHVlKSA9PiAoeyBzdGF0dXM6IFwidmFsaWRcIiwgdmFsdWUgfSk7XG5jb25zdCBpc0Fib3J0ZWQgPSAoeCkgPT4geC5zdGF0dXMgPT09IFwiYWJvcnRlZFwiO1xuY29uc3QgaXNEaXJ0eSA9ICh4KSA9PiB4LnN0YXR1cyA9PT0gXCJkaXJ0eVwiO1xuY29uc3QgaXNWYWxpZCA9ICh4KSA9PiB4LnN0YXR1cyA9PT0gXCJ2YWxpZFwiO1xuY29uc3QgaXNBc3luYyA9ICh4KSA9PiB0eXBlb2YgUHJvbWlzZSAhPT0gXCJ1bmRlZmluZWRcIiAmJiB4IGluc3RhbmNlb2YgUHJvbWlzZTtcblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5Db3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbi5cclxuXHJcblBlcm1pc3Npb24gdG8gdXNlLCBjb3B5LCBtb2RpZnksIGFuZC9vciBkaXN0cmlidXRlIHRoaXMgc29mdHdhcmUgZm9yIGFueVxyXG5wdXJwb3NlIHdpdGggb3Igd2l0aG91dCBmZWUgaXMgaGVyZWJ5IGdyYW50ZWQuXHJcblxyXG5USEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiIEFORCBUSEUgQVVUSE9SIERJU0NMQUlNUyBBTEwgV0FSUkFOVElFUyBXSVRIXHJcblJFR0FSRCBUTyBUSElTIFNPRlRXQVJFIElOQ0xVRElORyBBTEwgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWVxyXG5BTkQgRklUTkVTUy4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWSBTUEVDSUFMLCBESVJFQ1QsXHJcbklORElSRUNULCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgT1IgQU5ZIERBTUFHRVMgV0hBVFNPRVZFUiBSRVNVTFRJTkcgRlJPTVxyXG5MT1NTIE9GIFVTRSwgREFUQSBPUiBQUk9GSVRTLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgTkVHTElHRU5DRSBPUlxyXG5PVEhFUiBUT1JUSU9VUyBBQ1RJT04sIEFSSVNJTkcgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgVVNFIE9SXHJcblBFUkZPUk1BTkNFIE9GIFRISVMgU09GVFdBUkUuXHJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICovXHJcblxyXG5mdW5jdGlvbiBfX2NsYXNzUHJpdmF0ZUZpZWxkR2V0KHJlY2VpdmVyLCBzdGF0ZSwga2luZCwgZikge1xyXG4gICAgaWYgKGtpbmQgPT09IFwiYVwiICYmICFmKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiUHJpdmF0ZSBhY2Nlc3NvciB3YXMgZGVmaW5lZCB3aXRob3V0IGEgZ2V0dGVyXCIpO1xyXG4gICAgaWYgKHR5cGVvZiBzdGF0ZSA9PT0gXCJmdW5jdGlvblwiID8gcmVjZWl2ZXIgIT09IHN0YXRlIHx8ICFmIDogIXN0YXRlLmhhcyhyZWNlaXZlcikpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJDYW5ub3QgcmVhZCBwcml2YXRlIG1lbWJlciBmcm9tIGFuIG9iamVjdCB3aG9zZSBjbGFzcyBkaWQgbm90IGRlY2xhcmUgaXRcIik7XHJcbiAgICByZXR1cm4ga2luZCA9PT0gXCJtXCIgPyBmIDoga2luZCA9PT0gXCJhXCIgPyBmLmNhbGwocmVjZWl2ZXIpIDogZiA/IGYudmFsdWUgOiBzdGF0ZS5nZXQocmVjZWl2ZXIpO1xyXG59XHJcblxyXG5mdW5jdGlvbiBfX2NsYXNzUHJpdmF0ZUZpZWxkU2V0KHJlY2VpdmVyLCBzdGF0ZSwgdmFsdWUsIGtpbmQsIGYpIHtcclxuICAgIGlmIChraW5kID09PSBcIm1cIikgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlByaXZhdGUgbWV0aG9kIGlzIG5vdCB3cml0YWJsZVwiKTtcclxuICAgIGlmIChraW5kID09PSBcImFcIiAmJiAhZikgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlByaXZhdGUgYWNjZXNzb3Igd2FzIGRlZmluZWQgd2l0aG91dCBhIHNldHRlclwiKTtcclxuICAgIGlmICh0eXBlb2Ygc3RhdGUgPT09IFwiZnVuY3Rpb25cIiA/IHJlY2VpdmVyICE9PSBzdGF0ZSB8fCAhZiA6ICFzdGF0ZS5oYXMocmVjZWl2ZXIpKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IHdyaXRlIHByaXZhdGUgbWVtYmVyIHRvIGFuIG9iamVjdCB3aG9zZSBjbGFzcyBkaWQgbm90IGRlY2xhcmUgaXRcIik7XHJcbiAgICByZXR1cm4gKGtpbmQgPT09IFwiYVwiID8gZi5jYWxsKHJlY2VpdmVyLCB2YWx1ZSkgOiBmID8gZi52YWx1ZSA9IHZhbHVlIDogc3RhdGUuc2V0KHJlY2VpdmVyLCB2YWx1ZSkpLCB2YWx1ZTtcclxufVxyXG5cclxudHlwZW9mIFN1cHByZXNzZWRFcnJvciA9PT0gXCJmdW5jdGlvblwiID8gU3VwcHJlc3NlZEVycm9yIDogZnVuY3Rpb24gKGVycm9yLCBzdXBwcmVzc2VkLCBtZXNzYWdlKSB7XHJcbiAgICB2YXIgZSA9IG5ldyBFcnJvcihtZXNzYWdlKTtcclxuICAgIHJldHVybiBlLm5hbWUgPSBcIlN1cHByZXNzZWRFcnJvclwiLCBlLmVycm9yID0gZXJyb3IsIGUuc3VwcHJlc3NlZCA9IHN1cHByZXNzZWQsIGU7XHJcbn07XG5cbnZhciBlcnJvclV0aWw7XG4oZnVuY3Rpb24gKGVycm9yVXRpbCkge1xuICAgIGVycm9yVXRpbC5lcnJUb09iaiA9IChtZXNzYWdlKSA9PiB0eXBlb2YgbWVzc2FnZSA9PT0gXCJzdHJpbmdcIiA/IHsgbWVzc2FnZSB9IDogbWVzc2FnZSB8fCB7fTtcbiAgICBlcnJvclV0aWwudG9TdHJpbmcgPSAobWVzc2FnZSkgPT4gdHlwZW9mIG1lc3NhZ2UgPT09IFwic3RyaW5nXCIgPyBtZXNzYWdlIDogbWVzc2FnZSA9PT0gbnVsbCB8fCBtZXNzYWdlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBtZXNzYWdlLm1lc3NhZ2U7XG59KShlcnJvclV0aWwgfHwgKGVycm9yVXRpbCA9IHt9KSk7XG5cbnZhciBfWm9kRW51bV9jYWNoZSwgX1pvZE5hdGl2ZUVudW1fY2FjaGU7XG5jbGFzcyBQYXJzZUlucHV0TGF6eVBhdGgge1xuICAgIGNvbnN0cnVjdG9yKHBhcmVudCwgdmFsdWUsIHBhdGgsIGtleSkge1xuICAgICAgICB0aGlzLl9jYWNoZWRQYXRoID0gW107XG4gICAgICAgIHRoaXMucGFyZW50ID0gcGFyZW50O1xuICAgICAgICB0aGlzLmRhdGEgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5fcGF0aCA9IHBhdGg7XG4gICAgICAgIHRoaXMuX2tleSA9IGtleTtcbiAgICB9XG4gICAgZ2V0IHBhdGgoKSB7XG4gICAgICAgIGlmICghdGhpcy5fY2FjaGVkUGF0aC5sZW5ndGgpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLl9rZXkgaW5zdGFuY2VvZiBBcnJheSkge1xuICAgICAgICAgICAgICAgIHRoaXMuX2NhY2hlZFBhdGgucHVzaCguLi50aGlzLl9wYXRoLCAuLi50aGlzLl9rZXkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fY2FjaGVkUGF0aC5wdXNoKC4uLnRoaXMuX3BhdGgsIHRoaXMuX2tleSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuX2NhY2hlZFBhdGg7XG4gICAgfVxufVxuY29uc3QgaGFuZGxlUmVzdWx0ID0gKGN0eCwgcmVzdWx0KSA9PiB7XG4gICAgaWYgKGlzVmFsaWQocmVzdWx0KSkge1xuICAgICAgICByZXR1cm4geyBzdWNjZXNzOiB0cnVlLCBkYXRhOiByZXN1bHQudmFsdWUgfTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIGlmICghY3R4LmNvbW1vbi5pc3N1ZXMubGVuZ3RoKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJWYWxpZGF0aW9uIGZhaWxlZCBidXQgbm8gaXNzdWVzIGRldGVjdGVkLlwiKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgc3VjY2VzczogZmFsc2UsXG4gICAgICAgICAgICBnZXQgZXJyb3IoKSB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuX2Vycm9yKVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fZXJyb3I7XG4gICAgICAgICAgICAgICAgY29uc3QgZXJyb3IgPSBuZXcgWm9kRXJyb3IoY3R4LmNvbW1vbi5pc3N1ZXMpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2Vycm9yID0gZXJyb3I7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2Vycm9yO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgfTtcbiAgICB9XG59O1xuZnVuY3Rpb24gcHJvY2Vzc0NyZWF0ZVBhcmFtcyhwYXJhbXMpIHtcbiAgICBpZiAoIXBhcmFtcylcbiAgICAgICAgcmV0dXJuIHt9O1xuICAgIGNvbnN0IHsgZXJyb3JNYXAsIGludmFsaWRfdHlwZV9lcnJvciwgcmVxdWlyZWRfZXJyb3IsIGRlc2NyaXB0aW9uIH0gPSBwYXJhbXM7XG4gICAgaWYgKGVycm9yTWFwICYmIChpbnZhbGlkX3R5cGVfZXJyb3IgfHwgcmVxdWlyZWRfZXJyb3IpKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgQ2FuJ3QgdXNlIFwiaW52YWxpZF90eXBlX2Vycm9yXCIgb3IgXCJyZXF1aXJlZF9lcnJvclwiIGluIGNvbmp1bmN0aW9uIHdpdGggY3VzdG9tIGVycm9yIG1hcC5gKTtcbiAgICB9XG4gICAgaWYgKGVycm9yTWFwKVxuICAgICAgICByZXR1cm4geyBlcnJvck1hcDogZXJyb3JNYXAsIGRlc2NyaXB0aW9uIH07XG4gICAgY29uc3QgY3VzdG9tTWFwID0gKGlzcywgY3R4KSA9PiB7XG4gICAgICAgIHZhciBfYSwgX2I7XG4gICAgICAgIGNvbnN0IHsgbWVzc2FnZSB9ID0gcGFyYW1zO1xuICAgICAgICBpZiAoaXNzLmNvZGUgPT09IFwiaW52YWxpZF9lbnVtX3ZhbHVlXCIpIHtcbiAgICAgICAgICAgIHJldHVybiB7IG1lc3NhZ2U6IG1lc3NhZ2UgIT09IG51bGwgJiYgbWVzc2FnZSAhPT0gdm9pZCAwID8gbWVzc2FnZSA6IGN0eC5kZWZhdWx0RXJyb3IgfTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodHlwZW9mIGN0eC5kYXRhID09PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgICAgICAgICByZXR1cm4geyBtZXNzYWdlOiAoX2EgPSBtZXNzYWdlICE9PSBudWxsICYmIG1lc3NhZ2UgIT09IHZvaWQgMCA/IG1lc3NhZ2UgOiByZXF1aXJlZF9lcnJvcikgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogY3R4LmRlZmF1bHRFcnJvciB9O1xuICAgICAgICB9XG4gICAgICAgIGlmIChpc3MuY29kZSAhPT0gXCJpbnZhbGlkX3R5cGVcIilcbiAgICAgICAgICAgIHJldHVybiB7IG1lc3NhZ2U6IGN0eC5kZWZhdWx0RXJyb3IgfTtcbiAgICAgICAgcmV0dXJuIHsgbWVzc2FnZTogKF9iID0gbWVzc2FnZSAhPT0gbnVsbCAmJiBtZXNzYWdlICE9PSB2b2lkIDAgPyBtZXNzYWdlIDogaW52YWxpZF90eXBlX2Vycm9yKSAhPT0gbnVsbCAmJiBfYiAhPT0gdm9pZCAwID8gX2IgOiBjdHguZGVmYXVsdEVycm9yIH07XG4gICAgfTtcbiAgICByZXR1cm4geyBlcnJvck1hcDogY3VzdG9tTWFwLCBkZXNjcmlwdGlvbiB9O1xufVxuY2xhc3MgWm9kVHlwZSB7XG4gICAgZ2V0IGRlc2NyaXB0aW9uKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZGVmLmRlc2NyaXB0aW9uO1xuICAgIH1cbiAgICBfZ2V0VHlwZShpbnB1dCkge1xuICAgICAgICByZXR1cm4gZ2V0UGFyc2VkVHlwZShpbnB1dC5kYXRhKTtcbiAgICB9XG4gICAgX2dldE9yUmV0dXJuQ3R4KGlucHV0LCBjdHgpIHtcbiAgICAgICAgcmV0dXJuIChjdHggfHwge1xuICAgICAgICAgICAgY29tbW9uOiBpbnB1dC5wYXJlbnQuY29tbW9uLFxuICAgICAgICAgICAgZGF0YTogaW5wdXQuZGF0YSxcbiAgICAgICAgICAgIHBhcnNlZFR5cGU6IGdldFBhcnNlZFR5cGUoaW5wdXQuZGF0YSksXG4gICAgICAgICAgICBzY2hlbWFFcnJvck1hcDogdGhpcy5fZGVmLmVycm9yTWFwLFxuICAgICAgICAgICAgcGF0aDogaW5wdXQucGF0aCxcbiAgICAgICAgICAgIHBhcmVudDogaW5wdXQucGFyZW50LFxuICAgICAgICB9KTtcbiAgICB9XG4gICAgX3Byb2Nlc3NJbnB1dFBhcmFtcyhpbnB1dCkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgc3RhdHVzOiBuZXcgUGFyc2VTdGF0dXMoKSxcbiAgICAgICAgICAgIGN0eDoge1xuICAgICAgICAgICAgICAgIGNvbW1vbjogaW5wdXQucGFyZW50LmNvbW1vbixcbiAgICAgICAgICAgICAgICBkYXRhOiBpbnB1dC5kYXRhLFxuICAgICAgICAgICAgICAgIHBhcnNlZFR5cGU6IGdldFBhcnNlZFR5cGUoaW5wdXQuZGF0YSksXG4gICAgICAgICAgICAgICAgc2NoZW1hRXJyb3JNYXA6IHRoaXMuX2RlZi5lcnJvck1hcCxcbiAgICAgICAgICAgICAgICBwYXRoOiBpbnB1dC5wYXRoLFxuICAgICAgICAgICAgICAgIHBhcmVudDogaW5wdXQucGFyZW50LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfTtcbiAgICB9XG4gICAgX3BhcnNlU3luYyhpbnB1dCkge1xuICAgICAgICBjb25zdCByZXN1bHQgPSB0aGlzLl9wYXJzZShpbnB1dCk7XG4gICAgICAgIGlmIChpc0FzeW5jKHJlc3VsdCkpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIlN5bmNocm9ub3VzIHBhcnNlIGVuY291bnRlcmVkIHByb21pc2UuXCIpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuICAgIF9wYXJzZUFzeW5jKGlucHV0KSB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IHRoaXMuX3BhcnNlKGlucHV0KTtcbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShyZXN1bHQpO1xuICAgIH1cbiAgICBwYXJzZShkYXRhLCBwYXJhbXMpIHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gdGhpcy5zYWZlUGFyc2UoZGF0YSwgcGFyYW1zKTtcbiAgICAgICAgaWYgKHJlc3VsdC5zdWNjZXNzKVxuICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC5kYXRhO1xuICAgICAgICB0aHJvdyByZXN1bHQuZXJyb3I7XG4gICAgfVxuICAgIHNhZmVQYXJzZShkYXRhLCBwYXJhbXMpIHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICBjb25zdCBjdHggPSB7XG4gICAgICAgICAgICBjb21tb246IHtcbiAgICAgICAgICAgICAgICBpc3N1ZXM6IFtdLFxuICAgICAgICAgICAgICAgIGFzeW5jOiAoX2EgPSBwYXJhbXMgPT09IG51bGwgfHwgcGFyYW1zID09PSB2b2lkIDAgPyB2b2lkIDAgOiBwYXJhbXMuYXN5bmMpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IGZhbHNlLFxuICAgICAgICAgICAgICAgIGNvbnRleHR1YWxFcnJvck1hcDogcGFyYW1zID09PSBudWxsIHx8IHBhcmFtcyA9PT0gdm9pZCAwID8gdm9pZCAwIDogcGFyYW1zLmVycm9yTWFwLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHBhdGg6IChwYXJhbXMgPT09IG51bGwgfHwgcGFyYW1zID09PSB2b2lkIDAgPyB2b2lkIDAgOiBwYXJhbXMucGF0aCkgfHwgW10sXG4gICAgICAgICAgICBzY2hlbWFFcnJvck1hcDogdGhpcy5fZGVmLmVycm9yTWFwLFxuICAgICAgICAgICAgcGFyZW50OiBudWxsLFxuICAgICAgICAgICAgZGF0YSxcbiAgICAgICAgICAgIHBhcnNlZFR5cGU6IGdldFBhcnNlZFR5cGUoZGF0YSksXG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IHRoaXMuX3BhcnNlU3luYyh7IGRhdGEsIHBhdGg6IGN0eC5wYXRoLCBwYXJlbnQ6IGN0eCB9KTtcbiAgICAgICAgcmV0dXJuIGhhbmRsZVJlc3VsdChjdHgsIHJlc3VsdCk7XG4gICAgfVxuICAgIFwifnZhbGlkYXRlXCIoZGF0YSkge1xuICAgICAgICB2YXIgX2EsIF9iO1xuICAgICAgICBjb25zdCBjdHggPSB7XG4gICAgICAgICAgICBjb21tb246IHtcbiAgICAgICAgICAgICAgICBpc3N1ZXM6IFtdLFxuICAgICAgICAgICAgICAgIGFzeW5jOiAhIXRoaXNbXCJ+c3RhbmRhcmRcIl0uYXN5bmMsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcGF0aDogW10sXG4gICAgICAgICAgICBzY2hlbWFFcnJvck1hcDogdGhpcy5fZGVmLmVycm9yTWFwLFxuICAgICAgICAgICAgcGFyZW50OiBudWxsLFxuICAgICAgICAgICAgZGF0YSxcbiAgICAgICAgICAgIHBhcnNlZFR5cGU6IGdldFBhcnNlZFR5cGUoZGF0YSksXG4gICAgICAgIH07XG4gICAgICAgIGlmICghdGhpc1tcIn5zdGFuZGFyZFwiXS5hc3luYykge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBjb25zdCByZXN1bHQgPSB0aGlzLl9wYXJzZVN5bmMoeyBkYXRhLCBwYXRoOiBbXSwgcGFyZW50OiBjdHggfSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGlzVmFsaWQocmVzdWx0KVxuICAgICAgICAgICAgICAgICAgICA/IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiByZXN1bHQudmFsdWUsXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpc3N1ZXM6IGN0eC5jb21tb24uaXNzdWVzLFxuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgICAgIGlmICgoX2IgPSAoX2EgPSBlcnIgPT09IG51bGwgfHwgZXJyID09PSB2b2lkIDAgPyB2b2lkIDAgOiBlcnIubWVzc2FnZSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnRvTG93ZXJDYXNlKCkpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5pbmNsdWRlcyhcImVuY291bnRlcmVkXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXNbXCJ+c3RhbmRhcmRcIl0uYXN5bmMgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjdHguY29tbW9uID0ge1xuICAgICAgICAgICAgICAgICAgICBpc3N1ZXM6IFtdLFxuICAgICAgICAgICAgICAgICAgICBhc3luYzogdHJ1ZSxcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLl9wYXJzZUFzeW5jKHsgZGF0YSwgcGF0aDogW10sIHBhcmVudDogY3R4IH0pLnRoZW4oKHJlc3VsdCkgPT4gaXNWYWxpZChyZXN1bHQpXG4gICAgICAgICAgICA/IHtcbiAgICAgICAgICAgICAgICB2YWx1ZTogcmVzdWx0LnZhbHVlLFxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgOiB7XG4gICAgICAgICAgICAgICAgaXNzdWVzOiBjdHguY29tbW9uLmlzc3VlcyxcbiAgICAgICAgICAgIH0pO1xuICAgIH1cbiAgICBhc3luYyBwYXJzZUFzeW5jKGRhdGEsIHBhcmFtcykge1xuICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLnNhZmVQYXJzZUFzeW5jKGRhdGEsIHBhcmFtcyk7XG4gICAgICAgIGlmIChyZXN1bHQuc3VjY2VzcylcbiAgICAgICAgICAgIHJldHVybiByZXN1bHQuZGF0YTtcbiAgICAgICAgdGhyb3cgcmVzdWx0LmVycm9yO1xuICAgIH1cbiAgICBhc3luYyBzYWZlUGFyc2VBc3luYyhkYXRhLCBwYXJhbXMpIHtcbiAgICAgICAgY29uc3QgY3R4ID0ge1xuICAgICAgICAgICAgY29tbW9uOiB7XG4gICAgICAgICAgICAgICAgaXNzdWVzOiBbXSxcbiAgICAgICAgICAgICAgICBjb250ZXh0dWFsRXJyb3JNYXA6IHBhcmFtcyA9PT0gbnVsbCB8fCBwYXJhbXMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHBhcmFtcy5lcnJvck1hcCxcbiAgICAgICAgICAgICAgICBhc3luYzogdHJ1ZSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBwYXRoOiAocGFyYW1zID09PSBudWxsIHx8IHBhcmFtcyA9PT0gdm9pZCAwID8gdm9pZCAwIDogcGFyYW1zLnBhdGgpIHx8IFtdLFxuICAgICAgICAgICAgc2NoZW1hRXJyb3JNYXA6IHRoaXMuX2RlZi5lcnJvck1hcCxcbiAgICAgICAgICAgIHBhcmVudDogbnVsbCxcbiAgICAgICAgICAgIGRhdGEsXG4gICAgICAgICAgICBwYXJzZWRUeXBlOiBnZXRQYXJzZWRUeXBlKGRhdGEpLFxuICAgICAgICB9O1xuICAgICAgICBjb25zdCBtYXliZUFzeW5jUmVzdWx0ID0gdGhpcy5fcGFyc2UoeyBkYXRhLCBwYXRoOiBjdHgucGF0aCwgcGFyZW50OiBjdHggfSk7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IChpc0FzeW5jKG1heWJlQXN5bmNSZXN1bHQpXG4gICAgICAgICAgICA/IG1heWJlQXN5bmNSZXN1bHRcbiAgICAgICAgICAgIDogUHJvbWlzZS5yZXNvbHZlKG1heWJlQXN5bmNSZXN1bHQpKTtcbiAgICAgICAgcmV0dXJuIGhhbmRsZVJlc3VsdChjdHgsIHJlc3VsdCk7XG4gICAgfVxuICAgIHJlZmluZShjaGVjaywgbWVzc2FnZSkge1xuICAgICAgICBjb25zdCBnZXRJc3N1ZVByb3BlcnRpZXMgPSAodmFsKSA9PiB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIG1lc3NhZ2UgPT09IFwic3RyaW5nXCIgfHwgdHlwZW9mIG1lc3NhZ2UgPT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4geyBtZXNzYWdlIH07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmICh0eXBlb2YgbWVzc2FnZSA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG1lc3NhZ2UodmFsKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBtZXNzYWdlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgICByZXR1cm4gdGhpcy5fcmVmaW5lbWVudCgodmFsLCBjdHgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGNoZWNrKHZhbCk7XG4gICAgICAgICAgICBjb25zdCBzZXRFcnJvciA9ICgpID0+IGN0eC5hZGRJc3N1ZSh7XG4gICAgICAgICAgICAgICAgY29kZTogWm9kSXNzdWVDb2RlLmN1c3RvbSxcbiAgICAgICAgICAgICAgICAuLi5nZXRJc3N1ZVByb3BlcnRpZXModmFsKSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBQcm9taXNlICE9PSBcInVuZGVmaW5lZFwiICYmIHJlc3VsdCBpbnN0YW5jZW9mIFByb21pc2UpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0LnRoZW4oKGRhdGEpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFkYXRhKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzZXRFcnJvcigpO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICghcmVzdWx0KSB7XG4gICAgICAgICAgICAgICAgc2V0RXJyb3IoKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuICAgIHJlZmluZW1lbnQoY2hlY2ssIHJlZmluZW1lbnREYXRhKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9yZWZpbmVtZW50KCh2YWwsIGN0eCkgPT4ge1xuICAgICAgICAgICAgaWYgKCFjaGVjayh2YWwpKSB7XG4gICAgICAgICAgICAgICAgY3R4LmFkZElzc3VlKHR5cGVvZiByZWZpbmVtZW50RGF0YSA9PT0gXCJmdW5jdGlvblwiXG4gICAgICAgICAgICAgICAgICAgID8gcmVmaW5lbWVudERhdGEodmFsLCBjdHgpXG4gICAgICAgICAgICAgICAgICAgIDogcmVmaW5lbWVudERhdGEpO1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG4gICAgX3JlZmluZW1lbnQocmVmaW5lbWVudCkge1xuICAgICAgICByZXR1cm4gbmV3IFpvZEVmZmVjdHMoe1xuICAgICAgICAgICAgc2NoZW1hOiB0aGlzLFxuICAgICAgICAgICAgdHlwZU5hbWU6IFpvZEZpcnN0UGFydHlUeXBlS2luZC5ab2RFZmZlY3RzLFxuICAgICAgICAgICAgZWZmZWN0OiB7IHR5cGU6IFwicmVmaW5lbWVudFwiLCByZWZpbmVtZW50IH0sXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBzdXBlclJlZmluZShyZWZpbmVtZW50KSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9yZWZpbmVtZW50KHJlZmluZW1lbnQpO1xuICAgIH1cbiAgICBjb25zdHJ1Y3RvcihkZWYpIHtcbiAgICAgICAgLyoqIEFsaWFzIG9mIHNhZmVQYXJzZUFzeW5jICovXG4gICAgICAgIHRoaXMuc3BhID0gdGhpcy5zYWZlUGFyc2VBc3luYztcbiAgICAgICAgdGhpcy5fZGVmID0gZGVmO1xuICAgICAgICB0aGlzLnBhcnNlID0gdGhpcy5wYXJzZS5iaW5kKHRoaXMpO1xuICAgICAgICB0aGlzLnNhZmVQYXJzZSA9IHRoaXMuc2FmZVBhcnNlLmJpbmQodGhpcyk7XG4gICAgICAgIHRoaXMucGFyc2VBc3luYyA9IHRoaXMucGFyc2VBc3luYy5iaW5kKHRoaXMpO1xuICAgICAgICB0aGlzLnNhZmVQYXJzZUFzeW5jID0gdGhpcy5zYWZlUGFyc2VBc3luYy5iaW5kKHRoaXMpO1xuICAgICAgICB0aGlzLnNwYSA9IHRoaXMuc3BhLmJpbmQodGhpcyk7XG4gICAgICAgIHRoaXMucmVmaW5lID0gdGhpcy5yZWZpbmUuYmluZCh0aGlzKTtcbiAgICAgICAgdGhpcy5yZWZpbmVtZW50ID0gdGhpcy5yZWZpbmVtZW50LmJpbmQodGhpcyk7XG4gICAgICAgIHRoaXMuc3VwZXJSZWZpbmUgPSB0aGlzLnN1cGVyUmVmaW5lLmJpbmQodGhpcyk7XG4gICAgICAgIHRoaXMub3B0aW9uYWwgPSB0aGlzLm9wdGlvbmFsLmJpbmQodGhpcyk7XG4gICAgICAgIHRoaXMubnVsbGFibGUgPSB0aGlzLm51bGxhYmxlLmJpbmQodGhpcyk7XG4gICAgICAgIHRoaXMubnVsbGlzaCA9IHRoaXMubnVsbGlzaC5iaW5kKHRoaXMpO1xuICAgICAgICB0aGlzLmFycmF5ID0gdGhpcy5hcnJheS5iaW5kKHRoaXMpO1xuICAgICAgICB0aGlzLnByb21pc2UgPSB0aGlzLnByb21pc2UuYmluZCh0aGlzKTtcbiAgICAgICAgdGhpcy5vciA9IHRoaXMub3IuYmluZCh0aGlzKTtcbiAgICAgICAgdGhpcy5hbmQgPSB0aGlzLmFuZC5iaW5kKHRoaXMpO1xuICAgICAgICB0aGlzLnRyYW5zZm9ybSA9IHRoaXMudHJhbnNmb3JtLmJpbmQodGhpcyk7XG4gICAgICAgIHRoaXMuYnJhbmQgPSB0aGlzLmJyYW5kLmJpbmQodGhpcyk7XG4gICAgICAgIHRoaXMuZGVmYXVsdCA9IHRoaXMuZGVmYXVsdC5iaW5kKHRoaXMpO1xuICAgICAgICB0aGlzLmNhdGNoID0gdGhpcy5jYXRjaC5iaW5kKHRoaXMpO1xuICAgICAgICB0aGlzLmRlc2NyaWJlID0gdGhpcy5kZXNjcmliZS5iaW5kKHRoaXMpO1xuICAgICAgICB0aGlzLnBpcGUgPSB0aGlzLnBpcGUuYmluZCh0aGlzKTtcbiAgICAgICAgdGhpcy5yZWFkb25seSA9IHRoaXMucmVhZG9ubHkuYmluZCh0aGlzKTtcbiAgICAgICAgdGhpcy5pc051bGxhYmxlID0gdGhpcy5pc051bGxhYmxlLmJpbmQodGhpcyk7XG4gICAgICAgIHRoaXMuaXNPcHRpb25hbCA9IHRoaXMuaXNPcHRpb25hbC5iaW5kKHRoaXMpO1xuICAgICAgICB0aGlzW1wifnN0YW5kYXJkXCJdID0ge1xuICAgICAgICAgICAgdmVyc2lvbjogMSxcbiAgICAgICAgICAgIHZlbmRvcjogXCJ6b2RcIixcbiAgICAgICAgICAgIHZhbGlkYXRlOiAoZGF0YSkgPT4gdGhpc1tcIn52YWxpZGF0ZVwiXShkYXRhKSxcbiAgICAgICAgfTtcbiAgICB9XG4gICAgb3B0aW9uYWwoKSB7XG4gICAgICAgIHJldHVybiBab2RPcHRpb25hbC5jcmVhdGUodGhpcywgdGhpcy5fZGVmKTtcbiAgICB9XG4gICAgbnVsbGFibGUoKSB7XG4gICAgICAgIHJldHVybiBab2ROdWxsYWJsZS5jcmVhdGUodGhpcywgdGhpcy5fZGVmKTtcbiAgICB9XG4gICAgbnVsbGlzaCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubnVsbGFibGUoKS5vcHRpb25hbCgpO1xuICAgIH1cbiAgICBhcnJheSgpIHtcbiAgICAgICAgcmV0dXJuIFpvZEFycmF5LmNyZWF0ZSh0aGlzKTtcbiAgICB9XG4gICAgcHJvbWlzZSgpIHtcbiAgICAgICAgcmV0dXJuIFpvZFByb21pc2UuY3JlYXRlKHRoaXMsIHRoaXMuX2RlZik7XG4gICAgfVxuICAgIG9yKG9wdGlvbikge1xuICAgICAgICByZXR1cm4gWm9kVW5pb24uY3JlYXRlKFt0aGlzLCBvcHRpb25dLCB0aGlzLl9kZWYpO1xuICAgIH1cbiAgICBhbmQoaW5jb21pbmcpIHtcbiAgICAgICAgcmV0dXJuIFpvZEludGVyc2VjdGlvbi5jcmVhdGUodGhpcywgaW5jb21pbmcsIHRoaXMuX2RlZik7XG4gICAgfVxuICAgIHRyYW5zZm9ybSh0cmFuc2Zvcm0pIHtcbiAgICAgICAgcmV0dXJuIG5ldyBab2RFZmZlY3RzKHtcbiAgICAgICAgICAgIC4uLnByb2Nlc3NDcmVhdGVQYXJhbXModGhpcy5fZGVmKSxcbiAgICAgICAgICAgIHNjaGVtYTogdGhpcyxcbiAgICAgICAgICAgIHR5cGVOYW1lOiBab2RGaXJzdFBhcnR5VHlwZUtpbmQuWm9kRWZmZWN0cyxcbiAgICAgICAgICAgIGVmZmVjdDogeyB0eXBlOiBcInRyYW5zZm9ybVwiLCB0cmFuc2Zvcm0gfSxcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGRlZmF1bHQoZGVmKSB7XG4gICAgICAgIGNvbnN0IGRlZmF1bHRWYWx1ZUZ1bmMgPSB0eXBlb2YgZGVmID09PSBcImZ1bmN0aW9uXCIgPyBkZWYgOiAoKSA9PiBkZWY7XG4gICAgICAgIHJldHVybiBuZXcgWm9kRGVmYXVsdCh7XG4gICAgICAgICAgICAuLi5wcm9jZXNzQ3JlYXRlUGFyYW1zKHRoaXMuX2RlZiksXG4gICAgICAgICAgICBpbm5lclR5cGU6IHRoaXMsXG4gICAgICAgICAgICBkZWZhdWx0VmFsdWU6IGRlZmF1bHRWYWx1ZUZ1bmMsXG4gICAgICAgICAgICB0eXBlTmFtZTogWm9kRmlyc3RQYXJ0eVR5cGVLaW5kLlpvZERlZmF1bHQsXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBicmFuZCgpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBab2RCcmFuZGVkKHtcbiAgICAgICAgICAgIHR5cGVOYW1lOiBab2RGaXJzdFBhcnR5VHlwZUtpbmQuWm9kQnJhbmRlZCxcbiAgICAgICAgICAgIHR5cGU6IHRoaXMsXG4gICAgICAgICAgICAuLi5wcm9jZXNzQ3JlYXRlUGFyYW1zKHRoaXMuX2RlZiksXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBjYXRjaChkZWYpIHtcbiAgICAgICAgY29uc3QgY2F0Y2hWYWx1ZUZ1bmMgPSB0eXBlb2YgZGVmID09PSBcImZ1bmN0aW9uXCIgPyBkZWYgOiAoKSA9PiBkZWY7XG4gICAgICAgIHJldHVybiBuZXcgWm9kQ2F0Y2goe1xuICAgICAgICAgICAgLi4ucHJvY2Vzc0NyZWF0ZVBhcmFtcyh0aGlzLl9kZWYpLFxuICAgICAgICAgICAgaW5uZXJUeXBlOiB0aGlzLFxuICAgICAgICAgICAgY2F0Y2hWYWx1ZTogY2F0Y2hWYWx1ZUZ1bmMsXG4gICAgICAgICAgICB0eXBlTmFtZTogWm9kRmlyc3RQYXJ0eVR5cGVLaW5kLlpvZENhdGNoLFxuICAgICAgICB9KTtcbiAgICB9XG4gICAgZGVzY3JpYmUoZGVzY3JpcHRpb24pIHtcbiAgICAgICAgY29uc3QgVGhpcyA9IHRoaXMuY29uc3RydWN0b3I7XG4gICAgICAgIHJldHVybiBuZXcgVGhpcyh7XG4gICAgICAgICAgICAuLi50aGlzLl9kZWYsXG4gICAgICAgICAgICBkZXNjcmlwdGlvbixcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIHBpcGUodGFyZ2V0KSB7XG4gICAgICAgIHJldHVybiBab2RQaXBlbGluZS5jcmVhdGUodGhpcywgdGFyZ2V0KTtcbiAgICB9XG4gICAgcmVhZG9ubHkoKSB7XG4gICAgICAgIHJldHVybiBab2RSZWFkb25seS5jcmVhdGUodGhpcyk7XG4gICAgfVxuICAgIGlzT3B0aW9uYWwoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnNhZmVQYXJzZSh1bmRlZmluZWQpLnN1Y2Nlc3M7XG4gICAgfVxuICAgIGlzTnVsbGFibGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnNhZmVQYXJzZShudWxsKS5zdWNjZXNzO1xuICAgIH1cbn1cbmNvbnN0IGN1aWRSZWdleCA9IC9eY1teXFxzLV17OCx9JC9pO1xuY29uc3QgY3VpZDJSZWdleCA9IC9eWzAtOWEtel0rJC87XG5jb25zdCB1bGlkUmVnZXggPSAvXlswLTlBLUhKS01OUC1UVi1aXXsyNn0kL2k7XG4vLyBjb25zdCB1dWlkUmVnZXggPVxuLy8gICAvXihbYS1mMC05XXs4fS1bYS1mMC05XXs0fS1bMS01XVthLWYwLTldezN9LVthLWYwLTldezR9LVthLWYwLTldezEyfXwwMDAwMDAwMC0wMDAwLTAwMDAtMDAwMC0wMDAwMDAwMDAwMDApJC9pO1xuY29uc3QgdXVpZFJlZ2V4ID0gL15bMC05YS1mQS1GXXs4fVxcYi1bMC05YS1mQS1GXXs0fVxcYi1bMC05YS1mQS1GXXs0fVxcYi1bMC05YS1mQS1GXXs0fVxcYi1bMC05YS1mQS1GXXsxMn0kL2k7XG5jb25zdCBuYW5vaWRSZWdleCA9IC9eW2EtejAtOV8tXXsyMX0kL2k7XG5jb25zdCBqd3RSZWdleCA9IC9eW0EtWmEtejAtOS1fXStcXC5bQS1aYS16MC05LV9dK1xcLltBLVphLXowLTktX10qJC87XG5jb25zdCBkdXJhdGlvblJlZ2V4ID0gL15bLStdP1AoPyEkKSg/Oig/OlstK10/XFxkK1kpfCg/OlstK10/XFxkK1suLF1cXGQrWSQpKT8oPzooPzpbLStdP1xcZCtNKXwoPzpbLStdP1xcZCtbLixdXFxkK00kKSk/KD86KD86Wy0rXT9cXGQrVyl8KD86Wy0rXT9cXGQrWy4sXVxcZCtXJCkpPyg/Oig/OlstK10/XFxkK0QpfCg/OlstK10/XFxkK1suLF1cXGQrRCQpKT8oPzpUKD89W1xcZCstXSkoPzooPzpbLStdP1xcZCtIKXwoPzpbLStdP1xcZCtbLixdXFxkK0gkKSk/KD86KD86Wy0rXT9cXGQrTSl8KD86Wy0rXT9cXGQrWy4sXVxcZCtNJCkpPyg/OlstK10/XFxkKyg/OlsuLF1cXGQrKT9TKT8pPz8kLztcbi8vIGZyb20gaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9hLzQ2MTgxLzE1NTAxNTVcbi8vIG9sZCB2ZXJzaW9uOiB0b28gc2xvdywgZGlkbid0IHN1cHBvcnQgdW5pY29kZVxuLy8gY29uc3QgZW1haWxSZWdleCA9IC9eKCgoW2Etel18XFxkfFshI1xcJCUmJ1xcKlxcK1xcLVxcLz1cXD9cXF5fYHtcXHx9fl18W1xcdTAwQTAtXFx1RDdGRlxcdUY5MDAtXFx1RkRDRlxcdUZERjAtXFx1RkZFRl0pKyhcXC4oW2Etel18XFxkfFshI1xcJCUmJ1xcKlxcK1xcLVxcLz1cXD9cXF5fYHtcXHx9fl18W1xcdTAwQTAtXFx1RDdGRlxcdUY5MDAtXFx1RkRDRlxcdUZERjAtXFx1RkZFRl0pKykqKXwoKFxceDIyKSgoKChcXHgyMHxcXHgwOSkqKFxceDBkXFx4MGEpKT8oXFx4MjB8XFx4MDkpKyk/KChbXFx4MDEtXFx4MDhcXHgwYlxceDBjXFx4MGUtXFx4MWZcXHg3Zl18XFx4MjF8W1xceDIzLVxceDViXXxbXFx4NWQtXFx4N2VdfFtcXHUwMEEwLVxcdUQ3RkZcXHVGOTAwLVxcdUZEQ0ZcXHVGREYwLVxcdUZGRUZdKXwoXFxcXChbXFx4MDEtXFx4MDlcXHgwYlxceDBjXFx4MGQtXFx4N2ZdfFtcXHUwMEEwLVxcdUQ3RkZcXHVGOTAwLVxcdUZEQ0ZcXHVGREYwLVxcdUZGRUZdKSkpKSooKChcXHgyMHxcXHgwOSkqKFxceDBkXFx4MGEpKT8oXFx4MjB8XFx4MDkpKyk/KFxceDIyKSkpQCgoKFthLXpdfFxcZHxbXFx1MDBBMC1cXHVEN0ZGXFx1RjkwMC1cXHVGRENGXFx1RkRGMC1cXHVGRkVGXSl8KChbYS16XXxcXGR8W1xcdTAwQTAtXFx1RDdGRlxcdUY5MDAtXFx1RkRDRlxcdUZERjAtXFx1RkZFRl0pKFthLXpdfFxcZHwtfFxcLnxffH58W1xcdTAwQTAtXFx1RDdGRlxcdUY5MDAtXFx1RkRDRlxcdUZERjAtXFx1RkZFRl0pKihbYS16XXxcXGR8W1xcdTAwQTAtXFx1RDdGRlxcdUY5MDAtXFx1RkRDRlxcdUZERjAtXFx1RkZFRl0pKSlcXC4pKygoW2Etel18W1xcdTAwQTAtXFx1RDdGRlxcdUY5MDAtXFx1RkRDRlxcdUZERjAtXFx1RkZFRl0pfCgoW2Etel18W1xcdTAwQTAtXFx1RDdGRlxcdUY5MDAtXFx1RkRDRlxcdUZERjAtXFx1RkZFRl0pKFthLXpdfFxcZHwtfFxcLnxffH58W1xcdTAwQTAtXFx1RDdGRlxcdUY5MDAtXFx1RkRDRlxcdUZERjAtXFx1RkZFRl0pKihbYS16XXxbXFx1MDBBMC1cXHVEN0ZGXFx1RjkwMC1cXHVGRENGXFx1RkRGMC1cXHVGRkVGXSkpKSQvaTtcbi8vb2xkIGVtYWlsIHJlZ2V4XG4vLyBjb25zdCBlbWFpbFJlZ2V4ID0gL14oKFtePD4oKVtcXF0uLDs6XFxzQFwiXSsoXFwuW148PigpW1xcXS4sOzpcXHNAXCJdKykqKXwoXCIuK1wiKSlAKCg/IS0pKFtePD4oKVtcXF0uLDs6XFxzQFwiXStcXC4pK1tePD4oKVtcXF0uLDs6XFxzQFwiXXsxLH0pW14tPD4oKVtcXF0uLDs6XFxzQFwiXSQvaTtcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZVxuLy8gY29uc3QgZW1haWxSZWdleCA9XG4vLyAgIC9eKChbXjw+KClbXFxdXFxcXC4sOzpcXHNAXFxcIl0rKFxcLltePD4oKVtcXF1cXFxcLiw7Olxcc0BcXFwiXSspKil8KFxcXCIuK1xcXCIpKUAoKFxcWygoKDI1WzAtNV0pfCgyWzAtNF1bMC05XSl8KDFbMC05XXsyfSl8KFswLTldezEsMn0pKVxcLil7M30oKDI1WzAtNV0pfCgyWzAtNF1bMC05XSl8KDFbMC05XXsyfSl8KFswLTldezEsMn0pKVxcXSl8KFxcW0lQdjY6KChbYS1mMC05XXsxLDR9Oil7N318OjooW2EtZjAtOV17MSw0fTopezAsNn18KFthLWYwLTldezEsNH06KXsxfTooW2EtZjAtOV17MSw0fTopezAsNX18KFthLWYwLTldezEsNH06KXsyfTooW2EtZjAtOV17MSw0fTopezAsNH18KFthLWYwLTldezEsNH06KXszfTooW2EtZjAtOV17MSw0fTopezAsM318KFthLWYwLTldezEsNH06KXs0fTooW2EtZjAtOV17MSw0fTopezAsMn18KFthLWYwLTldezEsNH06KXs1fTooW2EtZjAtOV17MSw0fTopezAsMX0pKFthLWYwLTldezEsNH18KCgoMjVbMC01XSl8KDJbMC00XVswLTldKXwoMVswLTldezJ9KXwoWzAtOV17MSwyfSkpXFwuKXszfSgoMjVbMC01XSl8KDJbMC00XVswLTldKXwoMVswLTldezJ9KXwoWzAtOV17MSwyfSkpKVxcXSl8KFtBLVphLXowLTldKFtBLVphLXowLTktXSpbQS1aYS16MC05XSkqKFxcLltBLVphLXpdezIsfSkrKSkkLztcbi8vIGNvbnN0IGVtYWlsUmVnZXggPVxuLy8gICAvXlthLXpBLVowLTlcXC5cXCFcXCNcXCRcXCVcXCZcXCdcXCpcXCtcXC9cXD1cXD9cXF5cXF9cXGBcXHtcXHxcXH1cXH5cXC1dK0BbYS16QS1aMC05XSg/OlthLXpBLVowLTktXXswLDYxfVthLXpBLVowLTldKT8oPzpcXC5bYS16QS1aMC05XSg/OlthLXpBLVowLTktXXswLDYxfVthLXpBLVowLTldKT8pKiQvO1xuLy8gY29uc3QgZW1haWxSZWdleCA9XG4vLyAgIC9eKD86W2EtejAtOSEjJCUmJyorLz0/Xl9ge3x9fi1dKyg/OlxcLlthLXowLTkhIyQlJicqKy89P15fYHt8fX4tXSspKnxcIig/OltcXHgwMS1cXHgwOFxceDBiXFx4MGNcXHgwZS1cXHgxZlxceDIxXFx4MjMtXFx4NWJcXHg1ZC1cXHg3Zl18XFxcXFtcXHgwMS1cXHgwOVxceDBiXFx4MGNcXHgwZS1cXHg3Zl0pKlwiKUAoPzooPzpbYS16MC05XSg/OlthLXowLTktXSpbYS16MC05XSk/XFwuKStbYS16MC05XSg/OlthLXowLTktXSpbYS16MC05XSk/fFxcWyg/Oig/OjI1WzAtNV18MlswLTRdWzAtOV18WzAxXT9bMC05XVswLTldPylcXC4pezN9KD86MjVbMC01XXwyWzAtNF1bMC05XXxbMDFdP1swLTldWzAtOV0/fFthLXowLTktXSpbYS16MC05XTooPzpbXFx4MDEtXFx4MDhcXHgwYlxceDBjXFx4MGUtXFx4MWZcXHgyMS1cXHg1YVxceDUzLVxceDdmXXxcXFxcW1xceDAxLVxceDA5XFx4MGJcXHgwY1xceDBlLVxceDdmXSkrKVxcXSkkL2k7XG5jb25zdCBlbWFpbFJlZ2V4ID0gL14oPyFcXC4pKD8hLipcXC5cXC4pKFtBLVowLTlfJytcXC1cXC5dKilbQS1aMC05XystXUAoW0EtWjAtOV1bQS1aMC05XFwtXSpcXC4pK1tBLVpdezIsfSQvaTtcbi8vIGNvbnN0IGVtYWlsUmVnZXggPVxuLy8gICAvXlthLXowLTkuISMkJSZcdTIwMTkqKy89P15fYHt8fX4tXStAW2EtejAtOS1dKyg/OlxcLlthLXowLTlcXC1dKykqJC9pO1xuLy8gZnJvbSBodHRwczovL3RoZWtldmluc2NvdHQuY29tL2Vtb2ppcy1pbi1qYXZhc2NyaXB0LyN3cml0aW5nLWEtcmVndWxhci1leHByZXNzaW9uXG5jb25zdCBfZW1vamlSZWdleCA9IGBeKFxcXFxwe0V4dGVuZGVkX1BpY3RvZ3JhcGhpY318XFxcXHB7RW1vamlfQ29tcG9uZW50fSkrJGA7XG5sZXQgZW1vamlSZWdleDtcbi8vIGZhc3Rlciwgc2ltcGxlciwgc2FmZXJcbmNvbnN0IGlwdjRSZWdleCA9IC9eKD86KD86MjVbMC01XXwyWzAtNF1bMC05XXwxWzAtOV1bMC05XXxbMS05XVswLTldfFswLTldKVxcLil7M30oPzoyNVswLTVdfDJbMC00XVswLTldfDFbMC05XVswLTldfFsxLTldWzAtOV18WzAtOV0pJC87XG5jb25zdCBpcHY0Q2lkclJlZ2V4ID0gL14oPzooPzoyNVswLTVdfDJbMC00XVswLTldfDFbMC05XVswLTldfFsxLTldWzAtOV18WzAtOV0pXFwuKXszfSg/OjI1WzAtNV18MlswLTRdWzAtOV18MVswLTldWzAtOV18WzEtOV1bMC05XXxbMC05XSlcXC8oM1swLTJdfFsxMl0/WzAtOV0pJC87XG4vLyBjb25zdCBpcHY2UmVnZXggPVxuLy8gL14oKFthLWYwLTldezEsNH06KXs3fXw6OihbYS1mMC05XXsxLDR9Oil7MCw2fXwoW2EtZjAtOV17MSw0fTopezF9OihbYS1mMC05XXsxLDR9Oil7MCw1fXwoW2EtZjAtOV17MSw0fTopezJ9OihbYS1mMC05XXsxLDR9Oil7MCw0fXwoW2EtZjAtOV17MSw0fTopezN9OihbYS1mMC05XXsxLDR9Oil7MCwzfXwoW2EtZjAtOV17MSw0fTopezR9OihbYS1mMC05XXsxLDR9Oil7MCwyfXwoW2EtZjAtOV17MSw0fTopezV9OihbYS1mMC05XXsxLDR9Oil7MCwxfSkoW2EtZjAtOV17MSw0fXwoKCgyNVswLTVdKXwoMlswLTRdWzAtOV0pfCgxWzAtOV17Mn0pfChbMC05XXsxLDJ9KSlcXC4pezN9KCgyNVswLTVdKXwoMlswLTRdWzAtOV0pfCgxWzAtOV17Mn0pfChbMC05XXsxLDJ9KSkpJC87XG5jb25zdCBpcHY2UmVnZXggPSAvXigoWzAtOWEtZkEtRl17MSw0fTopezcsN31bMC05YS1mQS1GXXsxLDR9fChbMC05YS1mQS1GXXsxLDR9Oil7MSw3fTp8KFswLTlhLWZBLUZdezEsNH06KXsxLDZ9OlswLTlhLWZBLUZdezEsNH18KFswLTlhLWZBLUZdezEsNH06KXsxLDV9KDpbMC05YS1mQS1GXXsxLDR9KXsxLDJ9fChbMC05YS1mQS1GXXsxLDR9Oil7MSw0fSg6WzAtOWEtZkEtRl17MSw0fSl7MSwzfXwoWzAtOWEtZkEtRl17MSw0fTopezEsM30oOlswLTlhLWZBLUZdezEsNH0pezEsNH18KFswLTlhLWZBLUZdezEsNH06KXsxLDJ9KDpbMC05YS1mQS1GXXsxLDR9KXsxLDV9fFswLTlhLWZBLUZdezEsNH06KCg6WzAtOWEtZkEtRl17MSw0fSl7MSw2fSl8OigoOlswLTlhLWZBLUZdezEsNH0pezEsN318Oil8ZmU4MDooOlswLTlhLWZBLUZdezAsNH0pezAsNH0lWzAtOWEtekEtWl17MSx9fDo6KGZmZmYoOjB7MSw0fSl7MCwxfTopezAsMX0oKDI1WzAtNV18KDJbMC00XXwxezAsMX1bMC05XSl7MCwxfVswLTldKVxcLil7MywzfSgyNVswLTVdfCgyWzAtNF18MXswLDF9WzAtOV0pezAsMX1bMC05XSl8KFswLTlhLWZBLUZdezEsNH06KXsxLDR9OigoMjVbMC01XXwoMlswLTRdfDF7MCwxfVswLTldKXswLDF9WzAtOV0pXFwuKXszLDN9KDI1WzAtNV18KDJbMC00XXwxezAsMX1bMC05XSl7MCwxfVswLTldKSkkLztcbmNvbnN0IGlwdjZDaWRyUmVnZXggPSAvXigoWzAtOWEtZkEtRl17MSw0fTopezcsN31bMC05YS1mQS1GXXsxLDR9fChbMC05YS1mQS1GXXsxLDR9Oil7MSw3fTp8KFswLTlhLWZBLUZdezEsNH06KXsxLDZ9OlswLTlhLWZBLUZdezEsNH18KFswLTlhLWZBLUZdezEsNH06KXsxLDV9KDpbMC05YS1mQS1GXXsxLDR9KXsxLDJ9fChbMC05YS1mQS1GXXsxLDR9Oil7MSw0fSg6WzAtOWEtZkEtRl17MSw0fSl7MSwzfXwoWzAtOWEtZkEtRl17MSw0fTopezEsM30oOlswLTlhLWZBLUZdezEsNH0pezEsNH18KFswLTlhLWZBLUZdezEsNH06KXsxLDJ9KDpbMC05YS1mQS1GXXsxLDR9KXsxLDV9fFswLTlhLWZBLUZdezEsNH06KCg6WzAtOWEtZkEtRl17MSw0fSl7MSw2fSl8OigoOlswLTlhLWZBLUZdezEsNH0pezEsN318Oil8ZmU4MDooOlswLTlhLWZBLUZdezAsNH0pezAsNH0lWzAtOWEtekEtWl17MSx9fDo6KGZmZmYoOjB7MSw0fSl7MCwxfTopezAsMX0oKDI1WzAtNV18KDJbMC00XXwxezAsMX1bMC05XSl7MCwxfVswLTldKVxcLil7MywzfSgyNVswLTVdfCgyWzAtNF18MXswLDF9WzAtOV0pezAsMX1bMC05XSl8KFswLTlhLWZBLUZdezEsNH06KXsxLDR9OigoMjVbMC01XXwoMlswLTRdfDF7MCwxfVswLTldKXswLDF9WzAtOV0pXFwuKXszLDN9KDI1WzAtNV18KDJbMC00XXwxezAsMX1bMC05XSl7MCwxfVswLTldKSlcXC8oMTJbMC04XXwxWzAxXVswLTldfFsxLTldP1swLTldKSQvO1xuLy8gaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvNzg2MDM5Mi9kZXRlcm1pbmUtaWYtc3RyaW5nLWlzLWluLWJhc2U2NC11c2luZy1qYXZhc2NyaXB0XG5jb25zdCBiYXNlNjRSZWdleCA9IC9eKFswLTlhLXpBLVorL117NH0pKigoWzAtOWEtekEtWisvXXsyfT09KXwoWzAtOWEtekEtWisvXXszfT0pKT8kLztcbi8vIGh0dHBzOi8vYmFzZTY0Lmd1cnUvc3RhbmRhcmRzL2Jhc2U2NHVybFxuY29uc3QgYmFzZTY0dXJsUmVnZXggPSAvXihbMC05YS16QS1aLV9dezR9KSooKFswLTlhLXpBLVotX117Mn0oPT0pPyl8KFswLTlhLXpBLVotX117M30oPSk/KSk/JC87XG4vLyBzaW1wbGVcbi8vIGNvbnN0IGRhdGVSZWdleFNvdXJjZSA9IGBcXFxcZHs0fS1cXFxcZHsyfS1cXFxcZHsyfWA7XG4vLyBubyBsZWFwIHllYXIgdmFsaWRhdGlvblxuLy8gY29uc3QgZGF0ZVJlZ2V4U291cmNlID0gYFxcXFxkezR9LSgoMFsxMzU3OF18MTB8MTIpLTMxfCgwWzEzLTldfDFbMC0yXSktMzB8KDBbMS05XXwxWzAtMl0pLSgwWzEtOV18MVxcXFxkfDJcXFxcZCkpYDtcbi8vIHdpdGggbGVhcCB5ZWFyIHZhbGlkYXRpb25cbmNvbnN0IGRhdGVSZWdleFNvdXJjZSA9IGAoKFxcXFxkXFxcXGRbMjQ2OF1bMDQ4XXxcXFxcZFxcXFxkWzEzNTc5XVsyNl18XFxcXGRcXFxcZDBbNDhdfFswMjQ2OF1bMDQ4XTAwfFsxMzU3OV1bMjZdMDApLTAyLTI5fFxcXFxkezR9LSgoMFsxMzU3OF18MVswMl0pLSgwWzEtOV18WzEyXVxcXFxkfDNbMDFdKXwoMFs0NjldfDExKS0oMFsxLTldfFsxMl1cXFxcZHwzMCl8KDAyKS0oMFsxLTldfDFcXFxcZHwyWzAtOF0pKSlgO1xuY29uc3QgZGF0ZVJlZ2V4ID0gbmV3IFJlZ0V4cChgXiR7ZGF0ZVJlZ2V4U291cmNlfSRgKTtcbmZ1bmN0aW9uIHRpbWVSZWdleFNvdXJjZShhcmdzKSB7XG4gICAgLy8gbGV0IHJlZ2V4ID0gYFxcXFxkezJ9OlxcXFxkezJ9OlxcXFxkezJ9YDtcbiAgICBsZXQgcmVnZXggPSBgKFswMV1cXFxcZHwyWzAtM10pOlswLTVdXFxcXGQ6WzAtNV1cXFxcZGA7XG4gICAgaWYgKGFyZ3MucHJlY2lzaW9uKSB7XG4gICAgICAgIHJlZ2V4ID0gYCR7cmVnZXh9XFxcXC5cXFxcZHske2FyZ3MucHJlY2lzaW9ufX1gO1xuICAgIH1cbiAgICBlbHNlIGlmIChhcmdzLnByZWNpc2lvbiA9PSBudWxsKSB7XG4gICAgICAgIHJlZ2V4ID0gYCR7cmVnZXh9KFxcXFwuXFxcXGQrKT9gO1xuICAgIH1cbiAgICByZXR1cm4gcmVnZXg7XG59XG5mdW5jdGlvbiB0aW1lUmVnZXgoYXJncykge1xuICAgIHJldHVybiBuZXcgUmVnRXhwKGBeJHt0aW1lUmVnZXhTb3VyY2UoYXJncyl9JGApO1xufVxuLy8gQWRhcHRlZCBmcm9tIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vYS8zMTQzMjMxXG5mdW5jdGlvbiBkYXRldGltZVJlZ2V4KGFyZ3MpIHtcbiAgICBsZXQgcmVnZXggPSBgJHtkYXRlUmVnZXhTb3VyY2V9VCR7dGltZVJlZ2V4U291cmNlKGFyZ3MpfWA7XG4gICAgY29uc3Qgb3B0cyA9IFtdO1xuICAgIG9wdHMucHVzaChhcmdzLmxvY2FsID8gYFo/YCA6IGBaYCk7XG4gICAgaWYgKGFyZ3Mub2Zmc2V0KVxuICAgICAgICBvcHRzLnB1c2goYChbKy1dXFxcXGR7Mn06P1xcXFxkezJ9KWApO1xuICAgIHJlZ2V4ID0gYCR7cmVnZXh9KCR7b3B0cy5qb2luKFwifFwiKX0pYDtcbiAgICByZXR1cm4gbmV3IFJlZ0V4cChgXiR7cmVnZXh9JGApO1xufVxuZnVuY3Rpb24gaXNWYWxpZElQKGlwLCB2ZXJzaW9uKSB7XG4gICAgaWYgKCh2ZXJzaW9uID09PSBcInY0XCIgfHwgIXZlcnNpb24pICYmIGlwdjRSZWdleC50ZXN0KGlwKSkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgaWYgKCh2ZXJzaW9uID09PSBcInY2XCIgfHwgIXZlcnNpb24pICYmIGlwdjZSZWdleC50ZXN0KGlwKSkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xufVxuZnVuY3Rpb24gaXNWYWxpZEpXVChqd3QsIGFsZykge1xuICAgIGlmICghand0UmVnZXgudGVzdChqd3QpKVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgdHJ5IHtcbiAgICAgICAgY29uc3QgW2hlYWRlcl0gPSBqd3Quc3BsaXQoXCIuXCIpO1xuICAgICAgICAvLyBDb252ZXJ0IGJhc2U2NHVybCB0byBiYXNlNjRcbiAgICAgICAgY29uc3QgYmFzZTY0ID0gaGVhZGVyXG4gICAgICAgICAgICAucmVwbGFjZSgvLS9nLCBcIitcIilcbiAgICAgICAgICAgIC5yZXBsYWNlKC9fL2csIFwiL1wiKVxuICAgICAgICAgICAgLnBhZEVuZChoZWFkZXIubGVuZ3RoICsgKCg0IC0gKGhlYWRlci5sZW5ndGggJSA0KSkgJSA0KSwgXCI9XCIpO1xuICAgICAgICBjb25zdCBkZWNvZGVkID0gSlNPTi5wYXJzZShhdG9iKGJhc2U2NCkpO1xuICAgICAgICBpZiAodHlwZW9mIGRlY29kZWQgIT09IFwib2JqZWN0XCIgfHwgZGVjb2RlZCA9PT0gbnVsbClcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgaWYgKCFkZWNvZGVkLnR5cCB8fCAhZGVjb2RlZC5hbGcpXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIGlmIChhbGcgJiYgZGVjb2RlZC5hbGcgIT09IGFsZylcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGNhdGNoIChfYSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxufVxuZnVuY3Rpb24gaXNWYWxpZENpZHIoaXAsIHZlcnNpb24pIHtcbiAgICBpZiAoKHZlcnNpb24gPT09IFwidjRcIiB8fCAhdmVyc2lvbikgJiYgaXB2NENpZHJSZWdleC50ZXN0KGlwKSkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgaWYgKCh2ZXJzaW9uID09PSBcInY2XCIgfHwgIXZlcnNpb24pICYmIGlwdjZDaWRyUmVnZXgudGVzdChpcCkpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbn1cbmNsYXNzIFpvZFN0cmluZyBleHRlbmRzIFpvZFR5cGUge1xuICAgIF9wYXJzZShpbnB1dCkge1xuICAgICAgICBpZiAodGhpcy5fZGVmLmNvZXJjZSkge1xuICAgICAgICAgICAgaW5wdXQuZGF0YSA9IFN0cmluZyhpbnB1dC5kYXRhKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBwYXJzZWRUeXBlID0gdGhpcy5fZ2V0VHlwZShpbnB1dCk7XG4gICAgICAgIGlmIChwYXJzZWRUeXBlICE9PSBab2RQYXJzZWRUeXBlLnN0cmluZykge1xuICAgICAgICAgICAgY29uc3QgY3R4ID0gdGhpcy5fZ2V0T3JSZXR1cm5DdHgoaW5wdXQpO1xuICAgICAgICAgICAgYWRkSXNzdWVUb0NvbnRleHQoY3R4LCB7XG4gICAgICAgICAgICAgICAgY29kZTogWm9kSXNzdWVDb2RlLmludmFsaWRfdHlwZSxcbiAgICAgICAgICAgICAgICBleHBlY3RlZDogWm9kUGFyc2VkVHlwZS5zdHJpbmcsXG4gICAgICAgICAgICAgICAgcmVjZWl2ZWQ6IGN0eC5wYXJzZWRUeXBlLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXR1cm4gSU5WQUxJRDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBzdGF0dXMgPSBuZXcgUGFyc2VTdGF0dXMoKTtcbiAgICAgICAgbGV0IGN0eCA9IHVuZGVmaW5lZDtcbiAgICAgICAgZm9yIChjb25zdCBjaGVjayBvZiB0aGlzLl9kZWYuY2hlY2tzKSB7XG4gICAgICAgICAgICBpZiAoY2hlY2sua2luZCA9PT0gXCJtaW5cIikge1xuICAgICAgICAgICAgICAgIGlmIChpbnB1dC5kYXRhLmxlbmd0aCA8IGNoZWNrLnZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgIGN0eCA9IHRoaXMuX2dldE9yUmV0dXJuQ3R4KGlucHV0LCBjdHgpO1xuICAgICAgICAgICAgICAgICAgICBhZGRJc3N1ZVRvQ29udGV4dChjdHgsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvZGU6IFpvZElzc3VlQ29kZS50b29fc21hbGwsXG4gICAgICAgICAgICAgICAgICAgICAgICBtaW5pbXVtOiBjaGVjay52YWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBpbmNsdXNpdmU6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICBleGFjdDogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlOiBjaGVjay5tZXNzYWdlLFxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgc3RhdHVzLmRpcnR5KCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAoY2hlY2sua2luZCA9PT0gXCJtYXhcIikge1xuICAgICAgICAgICAgICAgIGlmIChpbnB1dC5kYXRhLmxlbmd0aCA+IGNoZWNrLnZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgIGN0eCA9IHRoaXMuX2dldE9yUmV0dXJuQ3R4KGlucHV0LCBjdHgpO1xuICAgICAgICAgICAgICAgICAgICBhZGRJc3N1ZVRvQ29udGV4dChjdHgsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvZGU6IFpvZElzc3VlQ29kZS50b29fYmlnLFxuICAgICAgICAgICAgICAgICAgICAgICAgbWF4aW11bTogY2hlY2sudmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgaW5jbHVzaXZlOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgZXhhY3Q6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZTogY2hlY2subWVzc2FnZSxcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIHN0YXR1cy5kaXJ0eSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKGNoZWNrLmtpbmQgPT09IFwibGVuZ3RoXCIpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0b29CaWcgPSBpbnB1dC5kYXRhLmxlbmd0aCA+IGNoZWNrLnZhbHVlO1xuICAgICAgICAgICAgICAgIGNvbnN0IHRvb1NtYWxsID0gaW5wdXQuZGF0YS5sZW5ndGggPCBjaGVjay52YWx1ZTtcbiAgICAgICAgICAgICAgICBpZiAodG9vQmlnIHx8IHRvb1NtYWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIGN0eCA9IHRoaXMuX2dldE9yUmV0dXJuQ3R4KGlucHV0LCBjdHgpO1xuICAgICAgICAgICAgICAgICAgICBpZiAodG9vQmlnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBhZGRJc3N1ZVRvQ29udGV4dChjdHgsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2RlOiBab2RJc3N1ZUNvZGUudG9vX2JpZyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXhpbXVtOiBjaGVjay52YWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluY2x1c2l2ZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBleGFjdDogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlOiBjaGVjay5tZXNzYWdlLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAodG9vU21hbGwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGFkZElzc3VlVG9Db250ZXh0KGN0eCwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvZGU6IFpvZElzc3VlQ29kZS50b29fc21hbGwsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWluaW11bTogY2hlY2sudmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmNsdXNpdmU6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhhY3Q6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZTogY2hlY2subWVzc2FnZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHN0YXR1cy5kaXJ0eSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKGNoZWNrLmtpbmQgPT09IFwiZW1haWxcIikge1xuICAgICAgICAgICAgICAgIGlmICghZW1haWxSZWdleC50ZXN0KGlucHV0LmRhdGEpKSB7XG4gICAgICAgICAgICAgICAgICAgIGN0eCA9IHRoaXMuX2dldE9yUmV0dXJuQ3R4KGlucHV0LCBjdHgpO1xuICAgICAgICAgICAgICAgICAgICBhZGRJc3N1ZVRvQ29udGV4dChjdHgsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbGlkYXRpb246IFwiZW1haWxcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvZGU6IFpvZElzc3VlQ29kZS5pbnZhbGlkX3N0cmluZyxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6IGNoZWNrLm1lc3NhZ2UsXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICBzdGF0dXMuZGlydHkoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmIChjaGVjay5raW5kID09PSBcImVtb2ppXCIpIHtcbiAgICAgICAgICAgICAgICBpZiAoIWVtb2ppUmVnZXgpIHtcbiAgICAgICAgICAgICAgICAgICAgZW1vamlSZWdleCA9IG5ldyBSZWdFeHAoX2Vtb2ppUmVnZXgsIFwidVwiKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKCFlbW9qaVJlZ2V4LnRlc3QoaW5wdXQuZGF0YSkpIHtcbiAgICAgICAgICAgICAgICAgICAgY3R4ID0gdGhpcy5fZ2V0T3JSZXR1cm5DdHgoaW5wdXQsIGN0eCk7XG4gICAgICAgICAgICAgICAgICAgIGFkZElzc3VlVG9Db250ZXh0KGN0eCwge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFsaWRhdGlvbjogXCJlbW9qaVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29kZTogWm9kSXNzdWVDb2RlLmludmFsaWRfc3RyaW5nLFxuICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZTogY2hlY2subWVzc2FnZSxcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIHN0YXR1cy5kaXJ0eSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKGNoZWNrLmtpbmQgPT09IFwidXVpZFwiKSB7XG4gICAgICAgICAgICAgICAgaWYgKCF1dWlkUmVnZXgudGVzdChpbnB1dC5kYXRhKSkge1xuICAgICAgICAgICAgICAgICAgICBjdHggPSB0aGlzLl9nZXRPclJldHVybkN0eChpbnB1dCwgY3R4KTtcbiAgICAgICAgICAgICAgICAgICAgYWRkSXNzdWVUb0NvbnRleHQoY3R4LCB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YWxpZGF0aW9uOiBcInV1aWRcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvZGU6IFpvZElzc3VlQ29kZS5pbnZhbGlkX3N0cmluZyxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6IGNoZWNrLm1lc3NhZ2UsXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICBzdGF0dXMuZGlydHkoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmIChjaGVjay5raW5kID09PSBcIm5hbm9pZFwiKSB7XG4gICAgICAgICAgICAgICAgaWYgKCFuYW5vaWRSZWdleC50ZXN0KGlucHV0LmRhdGEpKSB7XG4gICAgICAgICAgICAgICAgICAgIGN0eCA9IHRoaXMuX2dldE9yUmV0dXJuQ3R4KGlucHV0LCBjdHgpO1xuICAgICAgICAgICAgICAgICAgICBhZGRJc3N1ZVRvQ29udGV4dChjdHgsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbGlkYXRpb246IFwibmFub2lkXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2RlOiBab2RJc3N1ZUNvZGUuaW52YWxpZF9zdHJpbmcsXG4gICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlOiBjaGVjay5tZXNzYWdlLFxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgc3RhdHVzLmRpcnR5KCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAoY2hlY2sua2luZCA9PT0gXCJjdWlkXCIpIHtcbiAgICAgICAgICAgICAgICBpZiAoIWN1aWRSZWdleC50ZXN0KGlucHV0LmRhdGEpKSB7XG4gICAgICAgICAgICAgICAgICAgIGN0eCA9IHRoaXMuX2dldE9yUmV0dXJuQ3R4KGlucHV0LCBjdHgpO1xuICAgICAgICAgICAgICAgICAgICBhZGRJc3N1ZVRvQ29udGV4dChjdHgsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbGlkYXRpb246IFwiY3VpZFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29kZTogWm9kSXNzdWVDb2RlLmludmFsaWRfc3RyaW5nLFxuICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZTogY2hlY2subWVzc2FnZSxcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIHN0YXR1cy5kaXJ0eSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKGNoZWNrLmtpbmQgPT09IFwiY3VpZDJcIikge1xuICAgICAgICAgICAgICAgIGlmICghY3VpZDJSZWdleC50ZXN0KGlucHV0LmRhdGEpKSB7XG4gICAgICAgICAgICAgICAgICAgIGN0eCA9IHRoaXMuX2dldE9yUmV0dXJuQ3R4KGlucHV0LCBjdHgpO1xuICAgICAgICAgICAgICAgICAgICBhZGRJc3N1ZVRvQ29udGV4dChjdHgsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbGlkYXRpb246IFwiY3VpZDJcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvZGU6IFpvZElzc3VlQ29kZS5pbnZhbGlkX3N0cmluZyxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6IGNoZWNrLm1lc3NhZ2UsXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICBzdGF0dXMuZGlydHkoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmIChjaGVjay5raW5kID09PSBcInVsaWRcIikge1xuICAgICAgICAgICAgICAgIGlmICghdWxpZFJlZ2V4LnRlc3QoaW5wdXQuZGF0YSkpIHtcbiAgICAgICAgICAgICAgICAgICAgY3R4ID0gdGhpcy5fZ2V0T3JSZXR1cm5DdHgoaW5wdXQsIGN0eCk7XG4gICAgICAgICAgICAgICAgICAgIGFkZElzc3VlVG9Db250ZXh0KGN0eCwge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFsaWRhdGlvbjogXCJ1bGlkXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2RlOiBab2RJc3N1ZUNvZGUuaW52YWxpZF9zdHJpbmcsXG4gICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlOiBjaGVjay5tZXNzYWdlLFxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgc3RhdHVzLmRpcnR5KCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAoY2hlY2sua2luZCA9PT0gXCJ1cmxcIikge1xuICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgIG5ldyBVUkwoaW5wdXQuZGF0YSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNhdGNoIChfYSkge1xuICAgICAgICAgICAgICAgICAgICBjdHggPSB0aGlzLl9nZXRPclJldHVybkN0eChpbnB1dCwgY3R4KTtcbiAgICAgICAgICAgICAgICAgICAgYWRkSXNzdWVUb0NvbnRleHQoY3R4LCB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YWxpZGF0aW9uOiBcInVybFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29kZTogWm9kSXNzdWVDb2RlLmludmFsaWRfc3RyaW5nLFxuICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZTogY2hlY2subWVzc2FnZSxcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIHN0YXR1cy5kaXJ0eSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKGNoZWNrLmtpbmQgPT09IFwicmVnZXhcIikge1xuICAgICAgICAgICAgICAgIGNoZWNrLnJlZ2V4Lmxhc3RJbmRleCA9IDA7XG4gICAgICAgICAgICAgICAgY29uc3QgdGVzdFJlc3VsdCA9IGNoZWNrLnJlZ2V4LnRlc3QoaW5wdXQuZGF0YSk7XG4gICAgICAgICAgICAgICAgaWYgKCF0ZXN0UmVzdWx0KSB7XG4gICAgICAgICAgICAgICAgICAgIGN0eCA9IHRoaXMuX2dldE9yUmV0dXJuQ3R4KGlucHV0LCBjdHgpO1xuICAgICAgICAgICAgICAgICAgICBhZGRJc3N1ZVRvQ29udGV4dChjdHgsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbGlkYXRpb246IFwicmVnZXhcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvZGU6IFpvZElzc3VlQ29kZS5pbnZhbGlkX3N0cmluZyxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6IGNoZWNrLm1lc3NhZ2UsXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICBzdGF0dXMuZGlydHkoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmIChjaGVjay5raW5kID09PSBcInRyaW1cIikge1xuICAgICAgICAgICAgICAgIGlucHV0LmRhdGEgPSBpbnB1dC5kYXRhLnRyaW0oKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKGNoZWNrLmtpbmQgPT09IFwiaW5jbHVkZXNcIikge1xuICAgICAgICAgICAgICAgIGlmICghaW5wdXQuZGF0YS5pbmNsdWRlcyhjaGVjay52YWx1ZSwgY2hlY2sucG9zaXRpb24pKSB7XG4gICAgICAgICAgICAgICAgICAgIGN0eCA9IHRoaXMuX2dldE9yUmV0dXJuQ3R4KGlucHV0LCBjdHgpO1xuICAgICAgICAgICAgICAgICAgICBhZGRJc3N1ZVRvQ29udGV4dChjdHgsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvZGU6IFpvZElzc3VlQ29kZS5pbnZhbGlkX3N0cmluZyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbGlkYXRpb246IHsgaW5jbHVkZXM6IGNoZWNrLnZhbHVlLCBwb3NpdGlvbjogY2hlY2sucG9zaXRpb24gfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6IGNoZWNrLm1lc3NhZ2UsXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICBzdGF0dXMuZGlydHkoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmIChjaGVjay5raW5kID09PSBcInRvTG93ZXJDYXNlXCIpIHtcbiAgICAgICAgICAgICAgICBpbnB1dC5kYXRhID0gaW5wdXQuZGF0YS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAoY2hlY2sua2luZCA9PT0gXCJ0b1VwcGVyQ2FzZVwiKSB7XG4gICAgICAgICAgICAgICAgaW5wdXQuZGF0YSA9IGlucHV0LmRhdGEudG9VcHBlckNhc2UoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKGNoZWNrLmtpbmQgPT09IFwic3RhcnRzV2l0aFwiKSB7XG4gICAgICAgICAgICAgICAgaWYgKCFpbnB1dC5kYXRhLnN0YXJ0c1dpdGgoY2hlY2sudmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgICAgIGN0eCA9IHRoaXMuX2dldE9yUmV0dXJuQ3R4KGlucHV0LCBjdHgpO1xuICAgICAgICAgICAgICAgICAgICBhZGRJc3N1ZVRvQ29udGV4dChjdHgsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvZGU6IFpvZElzc3VlQ29kZS5pbnZhbGlkX3N0cmluZyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbGlkYXRpb246IHsgc3RhcnRzV2l0aDogY2hlY2sudmFsdWUgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6IGNoZWNrLm1lc3NhZ2UsXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICBzdGF0dXMuZGlydHkoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmIChjaGVjay5raW5kID09PSBcImVuZHNXaXRoXCIpIHtcbiAgICAgICAgICAgICAgICBpZiAoIWlucHV0LmRhdGEuZW5kc1dpdGgoY2hlY2sudmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgICAgIGN0eCA9IHRoaXMuX2dldE9yUmV0dXJuQ3R4KGlucHV0LCBjdHgpO1xuICAgICAgICAgICAgICAgICAgICBhZGRJc3N1ZVRvQ29udGV4dChjdHgsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvZGU6IFpvZElzc3VlQ29kZS5pbnZhbGlkX3N0cmluZyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbGlkYXRpb246IHsgZW5kc1dpdGg6IGNoZWNrLnZhbHVlIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlOiBjaGVjay5tZXNzYWdlLFxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgc3RhdHVzLmRpcnR5KCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAoY2hlY2sua2luZCA9PT0gXCJkYXRldGltZVwiKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVnZXggPSBkYXRldGltZVJlZ2V4KGNoZWNrKTtcbiAgICAgICAgICAgICAgICBpZiAoIXJlZ2V4LnRlc3QoaW5wdXQuZGF0YSkpIHtcbiAgICAgICAgICAgICAgICAgICAgY3R4ID0gdGhpcy5fZ2V0T3JSZXR1cm5DdHgoaW5wdXQsIGN0eCk7XG4gICAgICAgICAgICAgICAgICAgIGFkZElzc3VlVG9Db250ZXh0KGN0eCwge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29kZTogWm9kSXNzdWVDb2RlLmludmFsaWRfc3RyaW5nLFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFsaWRhdGlvbjogXCJkYXRldGltZVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZTogY2hlY2subWVzc2FnZSxcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIHN0YXR1cy5kaXJ0eSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKGNoZWNrLmtpbmQgPT09IFwiZGF0ZVwiKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVnZXggPSBkYXRlUmVnZXg7XG4gICAgICAgICAgICAgICAgaWYgKCFyZWdleC50ZXN0KGlucHV0LmRhdGEpKSB7XG4gICAgICAgICAgICAgICAgICAgIGN0eCA9IHRoaXMuX2dldE9yUmV0dXJuQ3R4KGlucHV0LCBjdHgpO1xuICAgICAgICAgICAgICAgICAgICBhZGRJc3N1ZVRvQ29udGV4dChjdHgsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvZGU6IFpvZElzc3VlQ29kZS5pbnZhbGlkX3N0cmluZyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbGlkYXRpb246IFwiZGF0ZVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZTogY2hlY2subWVzc2FnZSxcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIHN0YXR1cy5kaXJ0eSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKGNoZWNrLmtpbmQgPT09IFwidGltZVwiKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVnZXggPSB0aW1lUmVnZXgoY2hlY2spO1xuICAgICAgICAgICAgICAgIGlmICghcmVnZXgudGVzdChpbnB1dC5kYXRhKSkge1xuICAgICAgICAgICAgICAgICAgICBjdHggPSB0aGlzLl9nZXRPclJldHVybkN0eChpbnB1dCwgY3R4KTtcbiAgICAgICAgICAgICAgICAgICAgYWRkSXNzdWVUb0NvbnRleHQoY3R4LCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2RlOiBab2RJc3N1ZUNvZGUuaW52YWxpZF9zdHJpbmcsXG4gICAgICAgICAgICAgICAgICAgICAgICB2YWxpZGF0aW9uOiBcInRpbWVcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6IGNoZWNrLm1lc3NhZ2UsXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICBzdGF0dXMuZGlydHkoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmIChjaGVjay5raW5kID09PSBcImR1cmF0aW9uXCIpIHtcbiAgICAgICAgICAgICAgICBpZiAoIWR1cmF0aW9uUmVnZXgudGVzdChpbnB1dC5kYXRhKSkge1xuICAgICAgICAgICAgICAgICAgICBjdHggPSB0aGlzLl9nZXRPclJldHVybkN0eChpbnB1dCwgY3R4KTtcbiAgICAgICAgICAgICAgICAgICAgYWRkSXNzdWVUb0NvbnRleHQoY3R4LCB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YWxpZGF0aW9uOiBcImR1cmF0aW9uXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2RlOiBab2RJc3N1ZUNvZGUuaW52YWxpZF9zdHJpbmcsXG4gICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlOiBjaGVjay5tZXNzYWdlLFxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgc3RhdHVzLmRpcnR5KCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAoY2hlY2sua2luZCA9PT0gXCJpcFwiKSB7XG4gICAgICAgICAgICAgICAgaWYgKCFpc1ZhbGlkSVAoaW5wdXQuZGF0YSwgY2hlY2sudmVyc2lvbikpIHtcbiAgICAgICAgICAgICAgICAgICAgY3R4ID0gdGhpcy5fZ2V0T3JSZXR1cm5DdHgoaW5wdXQsIGN0eCk7XG4gICAgICAgICAgICAgICAgICAgIGFkZElzc3VlVG9Db250ZXh0KGN0eCwge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFsaWRhdGlvbjogXCJpcFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29kZTogWm9kSXNzdWVDb2RlLmludmFsaWRfc3RyaW5nLFxuICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZTogY2hlY2subWVzc2FnZSxcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIHN0YXR1cy5kaXJ0eSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKGNoZWNrLmtpbmQgPT09IFwiand0XCIpIHtcbiAgICAgICAgICAgICAgICBpZiAoIWlzVmFsaWRKV1QoaW5wdXQuZGF0YSwgY2hlY2suYWxnKSkge1xuICAgICAgICAgICAgICAgICAgICBjdHggPSB0aGlzLl9nZXRPclJldHVybkN0eChpbnB1dCwgY3R4KTtcbiAgICAgICAgICAgICAgICAgICAgYWRkSXNzdWVUb0NvbnRleHQoY3R4LCB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YWxpZGF0aW9uOiBcImp3dFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29kZTogWm9kSXNzdWVDb2RlLmludmFsaWRfc3RyaW5nLFxuICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZTogY2hlY2subWVzc2FnZSxcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIHN0YXR1cy5kaXJ0eSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKGNoZWNrLmtpbmQgPT09IFwiY2lkclwiKSB7XG4gICAgICAgICAgICAgICAgaWYgKCFpc1ZhbGlkQ2lkcihpbnB1dC5kYXRhLCBjaGVjay52ZXJzaW9uKSkge1xuICAgICAgICAgICAgICAgICAgICBjdHggPSB0aGlzLl9nZXRPclJldHVybkN0eChpbnB1dCwgY3R4KTtcbiAgICAgICAgICAgICAgICAgICAgYWRkSXNzdWVUb0NvbnRleHQoY3R4LCB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YWxpZGF0aW9uOiBcImNpZHJcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvZGU6IFpvZElzc3VlQ29kZS5pbnZhbGlkX3N0cmluZyxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6IGNoZWNrLm1lc3NhZ2UsXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICBzdGF0dXMuZGlydHkoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmIChjaGVjay5raW5kID09PSBcImJhc2U2NFwiKSB7XG4gICAgICAgICAgICAgICAgaWYgKCFiYXNlNjRSZWdleC50ZXN0KGlucHV0LmRhdGEpKSB7XG4gICAgICAgICAgICAgICAgICAgIGN0eCA9IHRoaXMuX2dldE9yUmV0dXJuQ3R4KGlucHV0LCBjdHgpO1xuICAgICAgICAgICAgICAgICAgICBhZGRJc3N1ZVRvQ29udGV4dChjdHgsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbGlkYXRpb246IFwiYmFzZTY0XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2RlOiBab2RJc3N1ZUNvZGUuaW52YWxpZF9zdHJpbmcsXG4gICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlOiBjaGVjay5tZXNzYWdlLFxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgc3RhdHVzLmRpcnR5KCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAoY2hlY2sua2luZCA9PT0gXCJiYXNlNjR1cmxcIikge1xuICAgICAgICAgICAgICAgIGlmICghYmFzZTY0dXJsUmVnZXgudGVzdChpbnB1dC5kYXRhKSkge1xuICAgICAgICAgICAgICAgICAgICBjdHggPSB0aGlzLl9nZXRPclJldHVybkN0eChpbnB1dCwgY3R4KTtcbiAgICAgICAgICAgICAgICAgICAgYWRkSXNzdWVUb0NvbnRleHQoY3R4LCB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YWxpZGF0aW9uOiBcImJhc2U2NHVybFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29kZTogWm9kSXNzdWVDb2RlLmludmFsaWRfc3RyaW5nLFxuICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZTogY2hlY2subWVzc2FnZSxcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIHN0YXR1cy5kaXJ0eSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHV0aWwuYXNzZXJ0TmV2ZXIoY2hlY2spO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7IHN0YXR1czogc3RhdHVzLnZhbHVlLCB2YWx1ZTogaW5wdXQuZGF0YSB9O1xuICAgIH1cbiAgICBfcmVnZXgocmVnZXgsIHZhbGlkYXRpb24sIG1lc3NhZ2UpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucmVmaW5lbWVudCgoZGF0YSkgPT4gcmVnZXgudGVzdChkYXRhKSwge1xuICAgICAgICAgICAgdmFsaWRhdGlvbixcbiAgICAgICAgICAgIGNvZGU6IFpvZElzc3VlQ29kZS5pbnZhbGlkX3N0cmluZyxcbiAgICAgICAgICAgIC4uLmVycm9yVXRpbC5lcnJUb09iaihtZXNzYWdlKSxcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIF9hZGRDaGVjayhjaGVjaykge1xuICAgICAgICByZXR1cm4gbmV3IFpvZFN0cmluZyh7XG4gICAgICAgICAgICAuLi50aGlzLl9kZWYsXG4gICAgICAgICAgICBjaGVja3M6IFsuLi50aGlzLl9kZWYuY2hlY2tzLCBjaGVja10sXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBlbWFpbChtZXNzYWdlKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9hZGRDaGVjayh7IGtpbmQ6IFwiZW1haWxcIiwgLi4uZXJyb3JVdGlsLmVyclRvT2JqKG1lc3NhZ2UpIH0pO1xuICAgIH1cbiAgICB1cmwobWVzc2FnZSkge1xuICAgICAgICByZXR1cm4gdGhpcy5fYWRkQ2hlY2soeyBraW5kOiBcInVybFwiLCAuLi5lcnJvclV0aWwuZXJyVG9PYmoobWVzc2FnZSkgfSk7XG4gICAgfVxuICAgIGVtb2ppKG1lc3NhZ2UpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2FkZENoZWNrKHsga2luZDogXCJlbW9qaVwiLCAuLi5lcnJvclV0aWwuZXJyVG9PYmoobWVzc2FnZSkgfSk7XG4gICAgfVxuICAgIHV1aWQobWVzc2FnZSkge1xuICAgICAgICByZXR1cm4gdGhpcy5fYWRkQ2hlY2soeyBraW5kOiBcInV1aWRcIiwgLi4uZXJyb3JVdGlsLmVyclRvT2JqKG1lc3NhZ2UpIH0pO1xuICAgIH1cbiAgICBuYW5vaWQobWVzc2FnZSkge1xuICAgICAgICByZXR1cm4gdGhpcy5fYWRkQ2hlY2soeyBraW5kOiBcIm5hbm9pZFwiLCAuLi5lcnJvclV0aWwuZXJyVG9PYmoobWVzc2FnZSkgfSk7XG4gICAgfVxuICAgIGN1aWQobWVzc2FnZSkge1xuICAgICAgICByZXR1cm4gdGhpcy5fYWRkQ2hlY2soeyBraW5kOiBcImN1aWRcIiwgLi4uZXJyb3JVdGlsLmVyclRvT2JqKG1lc3NhZ2UpIH0pO1xuICAgIH1cbiAgICBjdWlkMihtZXNzYWdlKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9hZGRDaGVjayh7IGtpbmQ6IFwiY3VpZDJcIiwgLi4uZXJyb3JVdGlsLmVyclRvT2JqKG1lc3NhZ2UpIH0pO1xuICAgIH1cbiAgICB1bGlkKG1lc3NhZ2UpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2FkZENoZWNrKHsga2luZDogXCJ1bGlkXCIsIC4uLmVycm9yVXRpbC5lcnJUb09iaihtZXNzYWdlKSB9KTtcbiAgICB9XG4gICAgYmFzZTY0KG1lc3NhZ2UpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2FkZENoZWNrKHsga2luZDogXCJiYXNlNjRcIiwgLi4uZXJyb3JVdGlsLmVyclRvT2JqKG1lc3NhZ2UpIH0pO1xuICAgIH1cbiAgICBiYXNlNjR1cmwobWVzc2FnZSkge1xuICAgICAgICAvLyBiYXNlNjR1cmwgZW5jb2RpbmcgaXMgYSBtb2RpZmljYXRpb24gb2YgYmFzZTY0IHRoYXQgY2FuIHNhZmVseSBiZSB1c2VkIGluIFVSTHMgYW5kIGZpbGVuYW1lc1xuICAgICAgICByZXR1cm4gdGhpcy5fYWRkQ2hlY2soe1xuICAgICAgICAgICAga2luZDogXCJiYXNlNjR1cmxcIixcbiAgICAgICAgICAgIC4uLmVycm9yVXRpbC5lcnJUb09iaihtZXNzYWdlKSxcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGp3dChvcHRpb25zKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9hZGRDaGVjayh7IGtpbmQ6IFwiand0XCIsIC4uLmVycm9yVXRpbC5lcnJUb09iaihvcHRpb25zKSB9KTtcbiAgICB9XG4gICAgaXAob3B0aW9ucykge1xuICAgICAgICByZXR1cm4gdGhpcy5fYWRkQ2hlY2soeyBraW5kOiBcImlwXCIsIC4uLmVycm9yVXRpbC5lcnJUb09iaihvcHRpb25zKSB9KTtcbiAgICB9XG4gICAgY2lkcihvcHRpb25zKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9hZGRDaGVjayh7IGtpbmQ6IFwiY2lkclwiLCAuLi5lcnJvclV0aWwuZXJyVG9PYmoob3B0aW9ucykgfSk7XG4gICAgfVxuICAgIGRhdGV0aW1lKG9wdGlvbnMpIHtcbiAgICAgICAgdmFyIF9hLCBfYjtcbiAgICAgICAgaWYgKHR5cGVvZiBvcHRpb25zID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fYWRkQ2hlY2soe1xuICAgICAgICAgICAgICAgIGtpbmQ6IFwiZGF0ZXRpbWVcIixcbiAgICAgICAgICAgICAgICBwcmVjaXNpb246IG51bGwsXG4gICAgICAgICAgICAgICAgb2Zmc2V0OiBmYWxzZSxcbiAgICAgICAgICAgICAgICBsb2NhbDogZmFsc2UsXG4gICAgICAgICAgICAgICAgbWVzc2FnZTogb3B0aW9ucyxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLl9hZGRDaGVjayh7XG4gICAgICAgICAgICBraW5kOiBcImRhdGV0aW1lXCIsXG4gICAgICAgICAgICBwcmVjaXNpb246IHR5cGVvZiAob3B0aW9ucyA9PT0gbnVsbCB8fCBvcHRpb25zID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvcHRpb25zLnByZWNpc2lvbikgPT09IFwidW5kZWZpbmVkXCIgPyBudWxsIDogb3B0aW9ucyA9PT0gbnVsbCB8fCBvcHRpb25zID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvcHRpb25zLnByZWNpc2lvbixcbiAgICAgICAgICAgIG9mZnNldDogKF9hID0gb3B0aW9ucyA9PT0gbnVsbCB8fCBvcHRpb25zID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvcHRpb25zLm9mZnNldCkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogZmFsc2UsXG4gICAgICAgICAgICBsb2NhbDogKF9iID0gb3B0aW9ucyA9PT0gbnVsbCB8fCBvcHRpb25zID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvcHRpb25zLmxvY2FsKSAhPT0gbnVsbCAmJiBfYiAhPT0gdm9pZCAwID8gX2IgOiBmYWxzZSxcbiAgICAgICAgICAgIC4uLmVycm9yVXRpbC5lcnJUb09iaihvcHRpb25zID09PSBudWxsIHx8IG9wdGlvbnMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9wdGlvbnMubWVzc2FnZSksXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBkYXRlKG1lc3NhZ2UpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2FkZENoZWNrKHsga2luZDogXCJkYXRlXCIsIG1lc3NhZ2UgfSk7XG4gICAgfVxuICAgIHRpbWUob3B0aW9ucykge1xuICAgICAgICBpZiAodHlwZW9mIG9wdGlvbnMgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9hZGRDaGVjayh7XG4gICAgICAgICAgICAgICAga2luZDogXCJ0aW1lXCIsXG4gICAgICAgICAgICAgICAgcHJlY2lzaW9uOiBudWxsLFxuICAgICAgICAgICAgICAgIG1lc3NhZ2U6IG9wdGlvbnMsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5fYWRkQ2hlY2soe1xuICAgICAgICAgICAga2luZDogXCJ0aW1lXCIsXG4gICAgICAgICAgICBwcmVjaXNpb246IHR5cGVvZiAob3B0aW9ucyA9PT0gbnVsbCB8fCBvcHRpb25zID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvcHRpb25zLnByZWNpc2lvbikgPT09IFwidW5kZWZpbmVkXCIgPyBudWxsIDogb3B0aW9ucyA9PT0gbnVsbCB8fCBvcHRpb25zID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvcHRpb25zLnByZWNpc2lvbixcbiAgICAgICAgICAgIC4uLmVycm9yVXRpbC5lcnJUb09iaihvcHRpb25zID09PSBudWxsIHx8IG9wdGlvbnMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9wdGlvbnMubWVzc2FnZSksXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBkdXJhdGlvbihtZXNzYWdlKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9hZGRDaGVjayh7IGtpbmQ6IFwiZHVyYXRpb25cIiwgLi4uZXJyb3JVdGlsLmVyclRvT2JqKG1lc3NhZ2UpIH0pO1xuICAgIH1cbiAgICByZWdleChyZWdleCwgbWVzc2FnZSkge1xuICAgICAgICByZXR1cm4gdGhpcy5fYWRkQ2hlY2soe1xuICAgICAgICAgICAga2luZDogXCJyZWdleFwiLFxuICAgICAgICAgICAgcmVnZXg6IHJlZ2V4LFxuICAgICAgICAgICAgLi4uZXJyb3JVdGlsLmVyclRvT2JqKG1lc3NhZ2UpLFxuICAgICAgICB9KTtcbiAgICB9XG4gICAgaW5jbHVkZXModmFsdWUsIG9wdGlvbnMpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2FkZENoZWNrKHtcbiAgICAgICAgICAgIGtpbmQ6IFwiaW5jbHVkZXNcIixcbiAgICAgICAgICAgIHZhbHVlOiB2YWx1ZSxcbiAgICAgICAgICAgIHBvc2l0aW9uOiBvcHRpb25zID09PSBudWxsIHx8IG9wdGlvbnMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9wdGlvbnMucG9zaXRpb24sXG4gICAgICAgICAgICAuLi5lcnJvclV0aWwuZXJyVG9PYmoob3B0aW9ucyA9PT0gbnVsbCB8fCBvcHRpb25zID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvcHRpb25zLm1lc3NhZ2UpLFxuICAgICAgICB9KTtcbiAgICB9XG4gICAgc3RhcnRzV2l0aCh2YWx1ZSwgbWVzc2FnZSkge1xuICAgICAgICByZXR1cm4gdGhpcy5fYWRkQ2hlY2soe1xuICAgICAgICAgICAga2luZDogXCJzdGFydHNXaXRoXCIsXG4gICAgICAgICAgICB2YWx1ZTogdmFsdWUsXG4gICAgICAgICAgICAuLi5lcnJvclV0aWwuZXJyVG9PYmoobWVzc2FnZSksXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBlbmRzV2l0aCh2YWx1ZSwgbWVzc2FnZSkge1xuICAgICAgICByZXR1cm4gdGhpcy5fYWRkQ2hlY2soe1xuICAgICAgICAgICAga2luZDogXCJlbmRzV2l0aFwiLFxuICAgICAgICAgICAgdmFsdWU6IHZhbHVlLFxuICAgICAgICAgICAgLi4uZXJyb3JVdGlsLmVyclRvT2JqKG1lc3NhZ2UpLFxuICAgICAgICB9KTtcbiAgICB9XG4gICAgbWluKG1pbkxlbmd0aCwgbWVzc2FnZSkge1xuICAgICAgICByZXR1cm4gdGhpcy5fYWRkQ2hlY2soe1xuICAgICAgICAgICAga2luZDogXCJtaW5cIixcbiAgICAgICAgICAgIHZhbHVlOiBtaW5MZW5ndGgsXG4gICAgICAgICAgICAuLi5lcnJvclV0aWwuZXJyVG9PYmoobWVzc2FnZSksXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBtYXgobWF4TGVuZ3RoLCBtZXNzYWdlKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9hZGRDaGVjayh7XG4gICAgICAgICAgICBraW5kOiBcIm1heFwiLFxuICAgICAgICAgICAgdmFsdWU6IG1heExlbmd0aCxcbiAgICAgICAgICAgIC4uLmVycm9yVXRpbC5lcnJUb09iaihtZXNzYWdlKSxcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGxlbmd0aChsZW4sIG1lc3NhZ2UpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2FkZENoZWNrKHtcbiAgICAgICAgICAgIGtpbmQ6IFwibGVuZ3RoXCIsXG4gICAgICAgICAgICB2YWx1ZTogbGVuLFxuICAgICAgICAgICAgLi4uZXJyb3JVdGlsLmVyclRvT2JqKG1lc3NhZ2UpLFxuICAgICAgICB9KTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogRXF1aXZhbGVudCB0byBgLm1pbigxKWBcbiAgICAgKi9cbiAgICBub25lbXB0eShtZXNzYWdlKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm1pbigxLCBlcnJvclV0aWwuZXJyVG9PYmoobWVzc2FnZSkpO1xuICAgIH1cbiAgICB0cmltKCkge1xuICAgICAgICByZXR1cm4gbmV3IFpvZFN0cmluZyh7XG4gICAgICAgICAgICAuLi50aGlzLl9kZWYsXG4gICAgICAgICAgICBjaGVja3M6IFsuLi50aGlzLl9kZWYuY2hlY2tzLCB7IGtpbmQ6IFwidHJpbVwiIH1dLFxuICAgICAgICB9KTtcbiAgICB9XG4gICAgdG9Mb3dlckNhc2UoKSB7XG4gICAgICAgIHJldHVybiBuZXcgWm9kU3RyaW5nKHtcbiAgICAgICAgICAgIC4uLnRoaXMuX2RlZixcbiAgICAgICAgICAgIGNoZWNrczogWy4uLnRoaXMuX2RlZi5jaGVja3MsIHsga2luZDogXCJ0b0xvd2VyQ2FzZVwiIH1dLFxuICAgICAgICB9KTtcbiAgICB9XG4gICAgdG9VcHBlckNhc2UoKSB7XG4gICAgICAgIHJldHVybiBuZXcgWm9kU3RyaW5nKHtcbiAgICAgICAgICAgIC4uLnRoaXMuX2RlZixcbiAgICAgICAgICAgIGNoZWNrczogWy4uLnRoaXMuX2RlZi5jaGVja3MsIHsga2luZDogXCJ0b1VwcGVyQ2FzZVwiIH1dLFxuICAgICAgICB9KTtcbiAgICB9XG4gICAgZ2V0IGlzRGF0ZXRpbWUoKSB7XG4gICAgICAgIHJldHVybiAhIXRoaXMuX2RlZi5jaGVja3MuZmluZCgoY2gpID0+IGNoLmtpbmQgPT09IFwiZGF0ZXRpbWVcIik7XG4gICAgfVxuICAgIGdldCBpc0RhdGUoKSB7XG4gICAgICAgIHJldHVybiAhIXRoaXMuX2RlZi5jaGVja3MuZmluZCgoY2gpID0+IGNoLmtpbmQgPT09IFwiZGF0ZVwiKTtcbiAgICB9XG4gICAgZ2V0IGlzVGltZSgpIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy5fZGVmLmNoZWNrcy5maW5kKChjaCkgPT4gY2gua2luZCA9PT0gXCJ0aW1lXCIpO1xuICAgIH1cbiAgICBnZXQgaXNEdXJhdGlvbigpIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy5fZGVmLmNoZWNrcy5maW5kKChjaCkgPT4gY2gua2luZCA9PT0gXCJkdXJhdGlvblwiKTtcbiAgICB9XG4gICAgZ2V0IGlzRW1haWwoKSB7XG4gICAgICAgIHJldHVybiAhIXRoaXMuX2RlZi5jaGVja3MuZmluZCgoY2gpID0+IGNoLmtpbmQgPT09IFwiZW1haWxcIik7XG4gICAgfVxuICAgIGdldCBpc1VSTCgpIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy5fZGVmLmNoZWNrcy5maW5kKChjaCkgPT4gY2gua2luZCA9PT0gXCJ1cmxcIik7XG4gICAgfVxuICAgIGdldCBpc0Vtb2ppKCkge1xuICAgICAgICByZXR1cm4gISF0aGlzLl9kZWYuY2hlY2tzLmZpbmQoKGNoKSA9PiBjaC5raW5kID09PSBcImVtb2ppXCIpO1xuICAgIH1cbiAgICBnZXQgaXNVVUlEKCkge1xuICAgICAgICByZXR1cm4gISF0aGlzLl9kZWYuY2hlY2tzLmZpbmQoKGNoKSA9PiBjaC5raW5kID09PSBcInV1aWRcIik7XG4gICAgfVxuICAgIGdldCBpc05BTk9JRCgpIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy5fZGVmLmNoZWNrcy5maW5kKChjaCkgPT4gY2gua2luZCA9PT0gXCJuYW5vaWRcIik7XG4gICAgfVxuICAgIGdldCBpc0NVSUQoKSB7XG4gICAgICAgIHJldHVybiAhIXRoaXMuX2RlZi5jaGVja3MuZmluZCgoY2gpID0+IGNoLmtpbmQgPT09IFwiY3VpZFwiKTtcbiAgICB9XG4gICAgZ2V0IGlzQ1VJRDIoKSB7XG4gICAgICAgIHJldHVybiAhIXRoaXMuX2RlZi5jaGVja3MuZmluZCgoY2gpID0+IGNoLmtpbmQgPT09IFwiY3VpZDJcIik7XG4gICAgfVxuICAgIGdldCBpc1VMSUQoKSB7XG4gICAgICAgIHJldHVybiAhIXRoaXMuX2RlZi5jaGVja3MuZmluZCgoY2gpID0+IGNoLmtpbmQgPT09IFwidWxpZFwiKTtcbiAgICB9XG4gICAgZ2V0IGlzSVAoKSB7XG4gICAgICAgIHJldHVybiAhIXRoaXMuX2RlZi5jaGVja3MuZmluZCgoY2gpID0+IGNoLmtpbmQgPT09IFwiaXBcIik7XG4gICAgfVxuICAgIGdldCBpc0NJRFIoKSB7XG4gICAgICAgIHJldHVybiAhIXRoaXMuX2RlZi5jaGVja3MuZmluZCgoY2gpID0+IGNoLmtpbmQgPT09IFwiY2lkclwiKTtcbiAgICB9XG4gICAgZ2V0IGlzQmFzZTY0KCkge1xuICAgICAgICByZXR1cm4gISF0aGlzLl9kZWYuY2hlY2tzLmZpbmQoKGNoKSA9PiBjaC5raW5kID09PSBcImJhc2U2NFwiKTtcbiAgICB9XG4gICAgZ2V0IGlzQmFzZTY0dXJsKCkge1xuICAgICAgICAvLyBiYXNlNjR1cmwgZW5jb2RpbmcgaXMgYSBtb2RpZmljYXRpb24gb2YgYmFzZTY0IHRoYXQgY2FuIHNhZmVseSBiZSB1c2VkIGluIFVSTHMgYW5kIGZpbGVuYW1lc1xuICAgICAgICByZXR1cm4gISF0aGlzLl9kZWYuY2hlY2tzLmZpbmQoKGNoKSA9PiBjaC5raW5kID09PSBcImJhc2U2NHVybFwiKTtcbiAgICB9XG4gICAgZ2V0IG1pbkxlbmd0aCgpIHtcbiAgICAgICAgbGV0IG1pbiA9IG51bGw7XG4gICAgICAgIGZvciAoY29uc3QgY2ggb2YgdGhpcy5fZGVmLmNoZWNrcykge1xuICAgICAgICAgICAgaWYgKGNoLmtpbmQgPT09IFwibWluXCIpIHtcbiAgICAgICAgICAgICAgICBpZiAobWluID09PSBudWxsIHx8IGNoLnZhbHVlID4gbWluKVxuICAgICAgICAgICAgICAgICAgICBtaW4gPSBjaC52YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbWluO1xuICAgIH1cbiAgICBnZXQgbWF4TGVuZ3RoKCkge1xuICAgICAgICBsZXQgbWF4ID0gbnVsbDtcbiAgICAgICAgZm9yIChjb25zdCBjaCBvZiB0aGlzLl9kZWYuY2hlY2tzKSB7XG4gICAgICAgICAgICBpZiAoY2gua2luZCA9PT0gXCJtYXhcIikge1xuICAgICAgICAgICAgICAgIGlmIChtYXggPT09IG51bGwgfHwgY2gudmFsdWUgPCBtYXgpXG4gICAgICAgICAgICAgICAgICAgIG1heCA9IGNoLnZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBtYXg7XG4gICAgfVxufVxuWm9kU3RyaW5nLmNyZWF0ZSA9IChwYXJhbXMpID0+IHtcbiAgICB2YXIgX2E7XG4gICAgcmV0dXJuIG5ldyBab2RTdHJpbmcoe1xuICAgICAgICBjaGVja3M6IFtdLFxuICAgICAgICB0eXBlTmFtZTogWm9kRmlyc3RQYXJ0eVR5cGVLaW5kLlpvZFN0cmluZyxcbiAgICAgICAgY29lcmNlOiAoX2EgPSBwYXJhbXMgPT09IG51bGwgfHwgcGFyYW1zID09PSB2b2lkIDAgPyB2b2lkIDAgOiBwYXJhbXMuY29lcmNlKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiBmYWxzZSxcbiAgICAgICAgLi4ucHJvY2Vzc0NyZWF0ZVBhcmFtcyhwYXJhbXMpLFxuICAgIH0pO1xufTtcbi8vIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzM5NjY0ODQvd2h5LWRvZXMtbW9kdWx1cy1vcGVyYXRvci1yZXR1cm4tZnJhY3Rpb25hbC1udW1iZXItaW4tamF2YXNjcmlwdC8zMTcxMTAzNCMzMTcxMTAzNFxuZnVuY3Rpb24gZmxvYXRTYWZlUmVtYWluZGVyKHZhbCwgc3RlcCkge1xuICAgIGNvbnN0IHZhbERlY0NvdW50ID0gKHZhbC50b1N0cmluZygpLnNwbGl0KFwiLlwiKVsxXSB8fCBcIlwiKS5sZW5ndGg7XG4gICAgY29uc3Qgc3RlcERlY0NvdW50ID0gKHN0ZXAudG9TdHJpbmcoKS5zcGxpdChcIi5cIilbMV0gfHwgXCJcIikubGVuZ3RoO1xuICAgIGNvbnN0IGRlY0NvdW50ID0gdmFsRGVjQ291bnQgPiBzdGVwRGVjQ291bnQgPyB2YWxEZWNDb3VudCA6IHN0ZXBEZWNDb3VudDtcbiAgICBjb25zdCB2YWxJbnQgPSBwYXJzZUludCh2YWwudG9GaXhlZChkZWNDb3VudCkucmVwbGFjZShcIi5cIiwgXCJcIikpO1xuICAgIGNvbnN0IHN0ZXBJbnQgPSBwYXJzZUludChzdGVwLnRvRml4ZWQoZGVjQ291bnQpLnJlcGxhY2UoXCIuXCIsIFwiXCIpKTtcbiAgICByZXR1cm4gKHZhbEludCAlIHN0ZXBJbnQpIC8gTWF0aC5wb3coMTAsIGRlY0NvdW50KTtcbn1cbmNsYXNzIFpvZE51bWJlciBleHRlbmRzIFpvZFR5cGUge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlciguLi5hcmd1bWVudHMpO1xuICAgICAgICB0aGlzLm1pbiA9IHRoaXMuZ3RlO1xuICAgICAgICB0aGlzLm1heCA9IHRoaXMubHRlO1xuICAgICAgICB0aGlzLnN0ZXAgPSB0aGlzLm11bHRpcGxlT2Y7XG4gICAgfVxuICAgIF9wYXJzZShpbnB1dCkge1xuICAgICAgICBpZiAodGhpcy5fZGVmLmNvZXJjZSkge1xuICAgICAgICAgICAgaW5wdXQuZGF0YSA9IE51bWJlcihpbnB1dC5kYXRhKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBwYXJzZWRUeXBlID0gdGhpcy5fZ2V0VHlwZShpbnB1dCk7XG4gICAgICAgIGlmIChwYXJzZWRUeXBlICE9PSBab2RQYXJzZWRUeXBlLm51bWJlcikge1xuICAgICAgICAgICAgY29uc3QgY3R4ID0gdGhpcy5fZ2V0T3JSZXR1cm5DdHgoaW5wdXQpO1xuICAgICAgICAgICAgYWRkSXNzdWVUb0NvbnRleHQoY3R4LCB7XG4gICAgICAgICAgICAgICAgY29kZTogWm9kSXNzdWVDb2RlLmludmFsaWRfdHlwZSxcbiAgICAgICAgICAgICAgICBleHBlY3RlZDogWm9kUGFyc2VkVHlwZS5udW1iZXIsXG4gICAgICAgICAgICAgICAgcmVjZWl2ZWQ6IGN0eC5wYXJzZWRUeXBlLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXR1cm4gSU5WQUxJRDtcbiAgICAgICAgfVxuICAgICAgICBsZXQgY3R4ID0gdW5kZWZpbmVkO1xuICAgICAgICBjb25zdCBzdGF0dXMgPSBuZXcgUGFyc2VTdGF0dXMoKTtcbiAgICAgICAgZm9yIChjb25zdCBjaGVjayBvZiB0aGlzLl9kZWYuY2hlY2tzKSB7XG4gICAgICAgICAgICBpZiAoY2hlY2sua2luZCA9PT0gXCJpbnRcIikge1xuICAgICAgICAgICAgICAgIGlmICghdXRpbC5pc0ludGVnZXIoaW5wdXQuZGF0YSkpIHtcbiAgICAgICAgICAgICAgICAgICAgY3R4ID0gdGhpcy5fZ2V0T3JSZXR1cm5DdHgoaW5wdXQsIGN0eCk7XG4gICAgICAgICAgICAgICAgICAgIGFkZElzc3VlVG9Db250ZXh0KGN0eCwge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29kZTogWm9kSXNzdWVDb2RlLmludmFsaWRfdHlwZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGV4cGVjdGVkOiBcImludGVnZXJcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlY2VpdmVkOiBcImZsb2F0XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlOiBjaGVjay5tZXNzYWdlLFxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgc3RhdHVzLmRpcnR5KCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAoY2hlY2sua2luZCA9PT0gXCJtaW5cIikge1xuICAgICAgICAgICAgICAgIGNvbnN0IHRvb1NtYWxsID0gY2hlY2suaW5jbHVzaXZlXG4gICAgICAgICAgICAgICAgICAgID8gaW5wdXQuZGF0YSA8IGNoZWNrLnZhbHVlXG4gICAgICAgICAgICAgICAgICAgIDogaW5wdXQuZGF0YSA8PSBjaGVjay52YWx1ZTtcbiAgICAgICAgICAgICAgICBpZiAodG9vU21hbGwpIHtcbiAgICAgICAgICAgICAgICAgICAgY3R4ID0gdGhpcy5fZ2V0T3JSZXR1cm5DdHgoaW5wdXQsIGN0eCk7XG4gICAgICAgICAgICAgICAgICAgIGFkZElzc3VlVG9Db250ZXh0KGN0eCwge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29kZTogWm9kSXNzdWVDb2RlLnRvb19zbWFsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1pbmltdW06IGNoZWNrLnZhbHVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJudW1iZXJcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIGluY2x1c2l2ZTogY2hlY2suaW5jbHVzaXZlLFxuICAgICAgICAgICAgICAgICAgICAgICAgZXhhY3Q6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZTogY2hlY2subWVzc2FnZSxcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIHN0YXR1cy5kaXJ0eSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKGNoZWNrLmtpbmQgPT09IFwibWF4XCIpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0b29CaWcgPSBjaGVjay5pbmNsdXNpdmVcbiAgICAgICAgICAgICAgICAgICAgPyBpbnB1dC5kYXRhID4gY2hlY2sudmFsdWVcbiAgICAgICAgICAgICAgICAgICAgOiBpbnB1dC5kYXRhID49IGNoZWNrLnZhbHVlO1xuICAgICAgICAgICAgICAgIGlmICh0b29CaWcpIHtcbiAgICAgICAgICAgICAgICAgICAgY3R4ID0gdGhpcy5fZ2V0T3JSZXR1cm5DdHgoaW5wdXQsIGN0eCk7XG4gICAgICAgICAgICAgICAgICAgIGFkZElzc3VlVG9Db250ZXh0KGN0eCwge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29kZTogWm9kSXNzdWVDb2RlLnRvb19iaWcsXG4gICAgICAgICAgICAgICAgICAgICAgICBtYXhpbXVtOiBjaGVjay52YWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IFwibnVtYmVyXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBpbmNsdXNpdmU6IGNoZWNrLmluY2x1c2l2ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGV4YWN0OiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6IGNoZWNrLm1lc3NhZ2UsXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICBzdGF0dXMuZGlydHkoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmIChjaGVjay5raW5kID09PSBcIm11bHRpcGxlT2ZcIikge1xuICAgICAgICAgICAgICAgIGlmIChmbG9hdFNhZmVSZW1haW5kZXIoaW5wdXQuZGF0YSwgY2hlY2sudmFsdWUpICE9PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgIGN0eCA9IHRoaXMuX2dldE9yUmV0dXJuQ3R4KGlucHV0LCBjdHgpO1xuICAgICAgICAgICAgICAgICAgICBhZGRJc3N1ZVRvQ29udGV4dChjdHgsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvZGU6IFpvZElzc3VlQ29kZS5ub3RfbXVsdGlwbGVfb2YsXG4gICAgICAgICAgICAgICAgICAgICAgICBtdWx0aXBsZU9mOiBjaGVjay52YWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6IGNoZWNrLm1lc3NhZ2UsXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICBzdGF0dXMuZGlydHkoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmIChjaGVjay5raW5kID09PSBcImZpbml0ZVwiKSB7XG4gICAgICAgICAgICAgICAgaWYgKCFOdW1iZXIuaXNGaW5pdGUoaW5wdXQuZGF0YSkpIHtcbiAgICAgICAgICAgICAgICAgICAgY3R4ID0gdGhpcy5fZ2V0T3JSZXR1cm5DdHgoaW5wdXQsIGN0eCk7XG4gICAgICAgICAgICAgICAgICAgIGFkZElzc3VlVG9Db250ZXh0KGN0eCwge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29kZTogWm9kSXNzdWVDb2RlLm5vdF9maW5pdGUsXG4gICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlOiBjaGVjay5tZXNzYWdlLFxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgc3RhdHVzLmRpcnR5KCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgdXRpbC5hc3NlcnROZXZlcihjaGVjayk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHsgc3RhdHVzOiBzdGF0dXMudmFsdWUsIHZhbHVlOiBpbnB1dC5kYXRhIH07XG4gICAgfVxuICAgIGd0ZSh2YWx1ZSwgbWVzc2FnZSkge1xuICAgICAgICByZXR1cm4gdGhpcy5zZXRMaW1pdChcIm1pblwiLCB2YWx1ZSwgdHJ1ZSwgZXJyb3JVdGlsLnRvU3RyaW5nKG1lc3NhZ2UpKTtcbiAgICB9XG4gICAgZ3QodmFsdWUsIG1lc3NhZ2UpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2V0TGltaXQoXCJtaW5cIiwgdmFsdWUsIGZhbHNlLCBlcnJvclV0aWwudG9TdHJpbmcobWVzc2FnZSkpO1xuICAgIH1cbiAgICBsdGUodmFsdWUsIG1lc3NhZ2UpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2V0TGltaXQoXCJtYXhcIiwgdmFsdWUsIHRydWUsIGVycm9yVXRpbC50b1N0cmluZyhtZXNzYWdlKSk7XG4gICAgfVxuICAgIGx0KHZhbHVlLCBtZXNzYWdlKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnNldExpbWl0KFwibWF4XCIsIHZhbHVlLCBmYWxzZSwgZXJyb3JVdGlsLnRvU3RyaW5nKG1lc3NhZ2UpKTtcbiAgICB9XG4gICAgc2V0TGltaXQoa2luZCwgdmFsdWUsIGluY2x1c2l2ZSwgbWVzc2FnZSkge1xuICAgICAgICByZXR1cm4gbmV3IFpvZE51bWJlcih7XG4gICAgICAgICAgICAuLi50aGlzLl9kZWYsXG4gICAgICAgICAgICBjaGVja3M6IFtcbiAgICAgICAgICAgICAgICAuLi50aGlzLl9kZWYuY2hlY2tzLFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAga2luZCxcbiAgICAgICAgICAgICAgICAgICAgdmFsdWUsXG4gICAgICAgICAgICAgICAgICAgIGluY2x1c2l2ZSxcbiAgICAgICAgICAgICAgICAgICAgbWVzc2FnZTogZXJyb3JVdGlsLnRvU3RyaW5nKG1lc3NhZ2UpLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBdLFxuICAgICAgICB9KTtcbiAgICB9XG4gICAgX2FkZENoZWNrKGNoZWNrKSB7XG4gICAgICAgIHJldHVybiBuZXcgWm9kTnVtYmVyKHtcbiAgICAgICAgICAgIC4uLnRoaXMuX2RlZixcbiAgICAgICAgICAgIGNoZWNrczogWy4uLnRoaXMuX2RlZi5jaGVja3MsIGNoZWNrXSxcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGludChtZXNzYWdlKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9hZGRDaGVjayh7XG4gICAgICAgICAgICBraW5kOiBcImludFwiLFxuICAgICAgICAgICAgbWVzc2FnZTogZXJyb3JVdGlsLnRvU3RyaW5nKG1lc3NhZ2UpLFxuICAgICAgICB9KTtcbiAgICB9XG4gICAgcG9zaXRpdmUobWVzc2FnZSkge1xuICAgICAgICByZXR1cm4gdGhpcy5fYWRkQ2hlY2soe1xuICAgICAgICAgICAga2luZDogXCJtaW5cIixcbiAgICAgICAgICAgIHZhbHVlOiAwLFxuICAgICAgICAgICAgaW5jbHVzaXZlOiBmYWxzZSxcbiAgICAgICAgICAgIG1lc3NhZ2U6IGVycm9yVXRpbC50b1N0cmluZyhtZXNzYWdlKSxcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIG5lZ2F0aXZlKG1lc3NhZ2UpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2FkZENoZWNrKHtcbiAgICAgICAgICAgIGtpbmQ6IFwibWF4XCIsXG4gICAgICAgICAgICB2YWx1ZTogMCxcbiAgICAgICAgICAgIGluY2x1c2l2ZTogZmFsc2UsXG4gICAgICAgICAgICBtZXNzYWdlOiBlcnJvclV0aWwudG9TdHJpbmcobWVzc2FnZSksXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBub25wb3NpdGl2ZShtZXNzYWdlKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9hZGRDaGVjayh7XG4gICAgICAgICAgICBraW5kOiBcIm1heFwiLFxuICAgICAgICAgICAgdmFsdWU6IDAsXG4gICAgICAgICAgICBpbmNsdXNpdmU6IHRydWUsXG4gICAgICAgICAgICBtZXNzYWdlOiBlcnJvclV0aWwudG9TdHJpbmcobWVzc2FnZSksXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBub25uZWdhdGl2ZShtZXNzYWdlKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9hZGRDaGVjayh7XG4gICAgICAgICAgICBraW5kOiBcIm1pblwiLFxuICAgICAgICAgICAgdmFsdWU6IDAsXG4gICAgICAgICAgICBpbmNsdXNpdmU6IHRydWUsXG4gICAgICAgICAgICBtZXNzYWdlOiBlcnJvclV0aWwudG9TdHJpbmcobWVzc2FnZSksXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBtdWx0aXBsZU9mKHZhbHVlLCBtZXNzYWdlKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9hZGRDaGVjayh7XG4gICAgICAgICAgICBraW5kOiBcIm11bHRpcGxlT2ZcIixcbiAgICAgICAgICAgIHZhbHVlOiB2YWx1ZSxcbiAgICAgICAgICAgIG1lc3NhZ2U6IGVycm9yVXRpbC50b1N0cmluZyhtZXNzYWdlKSxcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGZpbml0ZShtZXNzYWdlKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9hZGRDaGVjayh7XG4gICAgICAgICAgICBraW5kOiBcImZpbml0ZVwiLFxuICAgICAgICAgICAgbWVzc2FnZTogZXJyb3JVdGlsLnRvU3RyaW5nKG1lc3NhZ2UpLFxuICAgICAgICB9KTtcbiAgICB9XG4gICAgc2FmZShtZXNzYWdlKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9hZGRDaGVjayh7XG4gICAgICAgICAgICBraW5kOiBcIm1pblwiLFxuICAgICAgICAgICAgaW5jbHVzaXZlOiB0cnVlLFxuICAgICAgICAgICAgdmFsdWU6IE51bWJlci5NSU5fU0FGRV9JTlRFR0VSLFxuICAgICAgICAgICAgbWVzc2FnZTogZXJyb3JVdGlsLnRvU3RyaW5nKG1lc3NhZ2UpLFxuICAgICAgICB9KS5fYWRkQ2hlY2soe1xuICAgICAgICAgICAga2luZDogXCJtYXhcIixcbiAgICAgICAgICAgIGluY2x1c2l2ZTogdHJ1ZSxcbiAgICAgICAgICAgIHZhbHVlOiBOdW1iZXIuTUFYX1NBRkVfSU5URUdFUixcbiAgICAgICAgICAgIG1lc3NhZ2U6IGVycm9yVXRpbC50b1N0cmluZyhtZXNzYWdlKSxcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGdldCBtaW5WYWx1ZSgpIHtcbiAgICAgICAgbGV0IG1pbiA9IG51bGw7XG4gICAgICAgIGZvciAoY29uc3QgY2ggb2YgdGhpcy5fZGVmLmNoZWNrcykge1xuICAgICAgICAgICAgaWYgKGNoLmtpbmQgPT09IFwibWluXCIpIHtcbiAgICAgICAgICAgICAgICBpZiAobWluID09PSBudWxsIHx8IGNoLnZhbHVlID4gbWluKVxuICAgICAgICAgICAgICAgICAgICBtaW4gPSBjaC52YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbWluO1xuICAgIH1cbiAgICBnZXQgbWF4VmFsdWUoKSB7XG4gICAgICAgIGxldCBtYXggPSBudWxsO1xuICAgICAgICBmb3IgKGNvbnN0IGNoIG9mIHRoaXMuX2RlZi5jaGVja3MpIHtcbiAgICAgICAgICAgIGlmIChjaC5raW5kID09PSBcIm1heFwiKSB7XG4gICAgICAgICAgICAgICAgaWYgKG1heCA9PT0gbnVsbCB8fCBjaC52YWx1ZSA8IG1heClcbiAgICAgICAgICAgICAgICAgICAgbWF4ID0gY2gudmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG1heDtcbiAgICB9XG4gICAgZ2V0IGlzSW50KCkge1xuICAgICAgICByZXR1cm4gISF0aGlzLl9kZWYuY2hlY2tzLmZpbmQoKGNoKSA9PiBjaC5raW5kID09PSBcImludFwiIHx8XG4gICAgICAgICAgICAoY2gua2luZCA9PT0gXCJtdWx0aXBsZU9mXCIgJiYgdXRpbC5pc0ludGVnZXIoY2gudmFsdWUpKSk7XG4gICAgfVxuICAgIGdldCBpc0Zpbml0ZSgpIHtcbiAgICAgICAgbGV0IG1heCA9IG51bGwsIG1pbiA9IG51bGw7XG4gICAgICAgIGZvciAoY29uc3QgY2ggb2YgdGhpcy5fZGVmLmNoZWNrcykge1xuICAgICAgICAgICAgaWYgKGNoLmtpbmQgPT09IFwiZmluaXRlXCIgfHxcbiAgICAgICAgICAgICAgICBjaC5raW5kID09PSBcImludFwiIHx8XG4gICAgICAgICAgICAgICAgY2gua2luZCA9PT0gXCJtdWx0aXBsZU9mXCIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKGNoLmtpbmQgPT09IFwibWluXCIpIHtcbiAgICAgICAgICAgICAgICBpZiAobWluID09PSBudWxsIHx8IGNoLnZhbHVlID4gbWluKVxuICAgICAgICAgICAgICAgICAgICBtaW4gPSBjaC52YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKGNoLmtpbmQgPT09IFwibWF4XCIpIHtcbiAgICAgICAgICAgICAgICBpZiAobWF4ID09PSBudWxsIHx8IGNoLnZhbHVlIDwgbWF4KVxuICAgICAgICAgICAgICAgICAgICBtYXggPSBjaC52YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gTnVtYmVyLmlzRmluaXRlKG1pbikgJiYgTnVtYmVyLmlzRmluaXRlKG1heCk7XG4gICAgfVxufVxuWm9kTnVtYmVyLmNyZWF0ZSA9IChwYXJhbXMpID0+IHtcbiAgICByZXR1cm4gbmV3IFpvZE51bWJlcih7XG4gICAgICAgIGNoZWNrczogW10sXG4gICAgICAgIHR5cGVOYW1lOiBab2RGaXJzdFBhcnR5VHlwZUtpbmQuWm9kTnVtYmVyLFxuICAgICAgICBjb2VyY2U6IChwYXJhbXMgPT09IG51bGwgfHwgcGFyYW1zID09PSB2b2lkIDAgPyB2b2lkIDAgOiBwYXJhbXMuY29lcmNlKSB8fCBmYWxzZSxcbiAgICAgICAgLi4ucHJvY2Vzc0NyZWF0ZVBhcmFtcyhwYXJhbXMpLFxuICAgIH0pO1xufTtcbmNsYXNzIFpvZEJpZ0ludCBleHRlbmRzIFpvZFR5cGUge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlciguLi5hcmd1bWVudHMpO1xuICAgICAgICB0aGlzLm1pbiA9IHRoaXMuZ3RlO1xuICAgICAgICB0aGlzLm1heCA9IHRoaXMubHRlO1xuICAgIH1cbiAgICBfcGFyc2UoaW5wdXQpIHtcbiAgICAgICAgaWYgKHRoaXMuX2RlZi5jb2VyY2UpIHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgaW5wdXQuZGF0YSA9IEJpZ0ludChpbnB1dC5kYXRhKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhdGNoIChfYSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl9nZXRJbnZhbGlkSW5wdXQoaW5wdXQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHBhcnNlZFR5cGUgPSB0aGlzLl9nZXRUeXBlKGlucHV0KTtcbiAgICAgICAgaWYgKHBhcnNlZFR5cGUgIT09IFpvZFBhcnNlZFR5cGUuYmlnaW50KSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fZ2V0SW52YWxpZElucHV0KGlucHV0KTtcbiAgICAgICAgfVxuICAgICAgICBsZXQgY3R4ID0gdW5kZWZpbmVkO1xuICAgICAgICBjb25zdCBzdGF0dXMgPSBuZXcgUGFyc2VTdGF0dXMoKTtcbiAgICAgICAgZm9yIChjb25zdCBjaGVjayBvZiB0aGlzLl9kZWYuY2hlY2tzKSB7XG4gICAgICAgICAgICBpZiAoY2hlY2sua2luZCA9PT0gXCJtaW5cIikge1xuICAgICAgICAgICAgICAgIGNvbnN0IHRvb1NtYWxsID0gY2hlY2suaW5jbHVzaXZlXG4gICAgICAgICAgICAgICAgICAgID8gaW5wdXQuZGF0YSA8IGNoZWNrLnZhbHVlXG4gICAgICAgICAgICAgICAgICAgIDogaW5wdXQuZGF0YSA8PSBjaGVjay52YWx1ZTtcbiAgICAgICAgICAgICAgICBpZiAodG9vU21hbGwpIHtcbiAgICAgICAgICAgICAgICAgICAgY3R4ID0gdGhpcy5fZ2V0T3JSZXR1cm5DdHgoaW5wdXQsIGN0eCk7XG4gICAgICAgICAgICAgICAgICAgIGFkZElzc3VlVG9Db250ZXh0KGN0eCwge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29kZTogWm9kSXNzdWVDb2RlLnRvb19zbWFsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IFwiYmlnaW50XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBtaW5pbXVtOiBjaGVjay52YWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGluY2x1c2l2ZTogY2hlY2suaW5jbHVzaXZlLFxuICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZTogY2hlY2subWVzc2FnZSxcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIHN0YXR1cy5kaXJ0eSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKGNoZWNrLmtpbmQgPT09IFwibWF4XCIpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0b29CaWcgPSBjaGVjay5pbmNsdXNpdmVcbiAgICAgICAgICAgICAgICAgICAgPyBpbnB1dC5kYXRhID4gY2hlY2sudmFsdWVcbiAgICAgICAgICAgICAgICAgICAgOiBpbnB1dC5kYXRhID49IGNoZWNrLnZhbHVlO1xuICAgICAgICAgICAgICAgIGlmICh0b29CaWcpIHtcbiAgICAgICAgICAgICAgICAgICAgY3R4ID0gdGhpcy5fZ2V0T3JSZXR1cm5DdHgoaW5wdXQsIGN0eCk7XG4gICAgICAgICAgICAgICAgICAgIGFkZElzc3VlVG9Db250ZXh0KGN0eCwge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29kZTogWm9kSXNzdWVDb2RlLnRvb19iaWcsXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBcImJpZ2ludFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgbWF4aW11bTogY2hlY2sudmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgICBpbmNsdXNpdmU6IGNoZWNrLmluY2x1c2l2ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6IGNoZWNrLm1lc3NhZ2UsXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICBzdGF0dXMuZGlydHkoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmIChjaGVjay5raW5kID09PSBcIm11bHRpcGxlT2ZcIikge1xuICAgICAgICAgICAgICAgIGlmIChpbnB1dC5kYXRhICUgY2hlY2sudmFsdWUgIT09IEJpZ0ludCgwKSkge1xuICAgICAgICAgICAgICAgICAgICBjdHggPSB0aGlzLl9nZXRPclJldHVybkN0eChpbnB1dCwgY3R4KTtcbiAgICAgICAgICAgICAgICAgICAgYWRkSXNzdWVUb0NvbnRleHQoY3R4LCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2RlOiBab2RJc3N1ZUNvZGUubm90X211bHRpcGxlX29mLFxuICAgICAgICAgICAgICAgICAgICAgICAgbXVsdGlwbGVPZjogY2hlY2sudmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlOiBjaGVjay5tZXNzYWdlLFxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgc3RhdHVzLmRpcnR5KCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgdXRpbC5hc3NlcnROZXZlcihjaGVjayk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHsgc3RhdHVzOiBzdGF0dXMudmFsdWUsIHZhbHVlOiBpbnB1dC5kYXRhIH07XG4gICAgfVxuICAgIF9nZXRJbnZhbGlkSW5wdXQoaW5wdXQpIHtcbiAgICAgICAgY29uc3QgY3R4ID0gdGhpcy5fZ2V0T3JSZXR1cm5DdHgoaW5wdXQpO1xuICAgICAgICBhZGRJc3N1ZVRvQ29udGV4dChjdHgsIHtcbiAgICAgICAgICAgIGNvZGU6IFpvZElzc3VlQ29kZS5pbnZhbGlkX3R5cGUsXG4gICAgICAgICAgICBleHBlY3RlZDogWm9kUGFyc2VkVHlwZS5iaWdpbnQsXG4gICAgICAgICAgICByZWNlaXZlZDogY3R4LnBhcnNlZFR5cGUsXG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gSU5WQUxJRDtcbiAgICB9XG4gICAgZ3RlKHZhbHVlLCBtZXNzYWdlKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnNldExpbWl0KFwibWluXCIsIHZhbHVlLCB0cnVlLCBlcnJvclV0aWwudG9TdHJpbmcobWVzc2FnZSkpO1xuICAgIH1cbiAgICBndCh2YWx1ZSwgbWVzc2FnZSkge1xuICAgICAgICByZXR1cm4gdGhpcy5zZXRMaW1pdChcIm1pblwiLCB2YWx1ZSwgZmFsc2UsIGVycm9yVXRpbC50b1N0cmluZyhtZXNzYWdlKSk7XG4gICAgfVxuICAgIGx0ZSh2YWx1ZSwgbWVzc2FnZSkge1xuICAgICAgICByZXR1cm4gdGhpcy5zZXRMaW1pdChcIm1heFwiLCB2YWx1ZSwgdHJ1ZSwgZXJyb3JVdGlsLnRvU3RyaW5nKG1lc3NhZ2UpKTtcbiAgICB9XG4gICAgbHQodmFsdWUsIG1lc3NhZ2UpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2V0TGltaXQoXCJtYXhcIiwgdmFsdWUsIGZhbHNlLCBlcnJvclV0aWwudG9TdHJpbmcobWVzc2FnZSkpO1xuICAgIH1cbiAgICBzZXRMaW1pdChraW5kLCB2YWx1ZSwgaW5jbHVzaXZlLCBtZXNzYWdlKSB7XG4gICAgICAgIHJldHVybiBuZXcgWm9kQmlnSW50KHtcbiAgICAgICAgICAgIC4uLnRoaXMuX2RlZixcbiAgICAgICAgICAgIGNoZWNrczogW1xuICAgICAgICAgICAgICAgIC4uLnRoaXMuX2RlZi5jaGVja3MsXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBraW5kLFxuICAgICAgICAgICAgICAgICAgICB2YWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgaW5jbHVzaXZlLFxuICAgICAgICAgICAgICAgICAgICBtZXNzYWdlOiBlcnJvclV0aWwudG9TdHJpbmcobWVzc2FnZSksXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBfYWRkQ2hlY2soY2hlY2spIHtcbiAgICAgICAgcmV0dXJuIG5ldyBab2RCaWdJbnQoe1xuICAgICAgICAgICAgLi4udGhpcy5fZGVmLFxuICAgICAgICAgICAgY2hlY2tzOiBbLi4udGhpcy5fZGVmLmNoZWNrcywgY2hlY2tdLFxuICAgICAgICB9KTtcbiAgICB9XG4gICAgcG9zaXRpdmUobWVzc2FnZSkge1xuICAgICAgICByZXR1cm4gdGhpcy5fYWRkQ2hlY2soe1xuICAgICAgICAgICAga2luZDogXCJtaW5cIixcbiAgICAgICAgICAgIHZhbHVlOiBCaWdJbnQoMCksXG4gICAgICAgICAgICBpbmNsdXNpdmU6IGZhbHNlLFxuICAgICAgICAgICAgbWVzc2FnZTogZXJyb3JVdGlsLnRvU3RyaW5nKG1lc3NhZ2UpLFxuICAgICAgICB9KTtcbiAgICB9XG4gICAgbmVnYXRpdmUobWVzc2FnZSkge1xuICAgICAgICByZXR1cm4gdGhpcy5fYWRkQ2hlY2soe1xuICAgICAgICAgICAga2luZDogXCJtYXhcIixcbiAgICAgICAgICAgIHZhbHVlOiBCaWdJbnQoMCksXG4gICAgICAgICAgICBpbmNsdXNpdmU6IGZhbHNlLFxuICAgICAgICAgICAgbWVzc2FnZTogZXJyb3JVdGlsLnRvU3RyaW5nKG1lc3NhZ2UpLFxuICAgICAgICB9KTtcbiAgICB9XG4gICAgbm9ucG9zaXRpdmUobWVzc2FnZSkge1xuICAgICAgICByZXR1cm4gdGhpcy5fYWRkQ2hlY2soe1xuICAgICAgICAgICAga2luZDogXCJtYXhcIixcbiAgICAgICAgICAgIHZhbHVlOiBCaWdJbnQoMCksXG4gICAgICAgICAgICBpbmNsdXNpdmU6IHRydWUsXG4gICAgICAgICAgICBtZXNzYWdlOiBlcnJvclV0aWwudG9TdHJpbmcobWVzc2FnZSksXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBub25uZWdhdGl2ZShtZXNzYWdlKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9hZGRDaGVjayh7XG4gICAgICAgICAgICBraW5kOiBcIm1pblwiLFxuICAgICAgICAgICAgdmFsdWU6IEJpZ0ludCgwKSxcbiAgICAgICAgICAgIGluY2x1c2l2ZTogdHJ1ZSxcbiAgICAgICAgICAgIG1lc3NhZ2U6IGVycm9yVXRpbC50b1N0cmluZyhtZXNzYWdlKSxcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIG11bHRpcGxlT2YodmFsdWUsIG1lc3NhZ2UpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2FkZENoZWNrKHtcbiAgICAgICAgICAgIGtpbmQ6IFwibXVsdGlwbGVPZlwiLFxuICAgICAgICAgICAgdmFsdWUsXG4gICAgICAgICAgICBtZXNzYWdlOiBlcnJvclV0aWwudG9TdHJpbmcobWVzc2FnZSksXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBnZXQgbWluVmFsdWUoKSB7XG4gICAgICAgIGxldCBtaW4gPSBudWxsO1xuICAgICAgICBmb3IgKGNvbnN0IGNoIG9mIHRoaXMuX2RlZi5jaGVja3MpIHtcbiAgICAgICAgICAgIGlmIChjaC5raW5kID09PSBcIm1pblwiKSB7XG4gICAgICAgICAgICAgICAgaWYgKG1pbiA9PT0gbnVsbCB8fCBjaC52YWx1ZSA+IG1pbilcbiAgICAgICAgICAgICAgICAgICAgbWluID0gY2gudmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG1pbjtcbiAgICB9XG4gICAgZ2V0IG1heFZhbHVlKCkge1xuICAgICAgICBsZXQgbWF4ID0gbnVsbDtcbiAgICAgICAgZm9yIChjb25zdCBjaCBvZiB0aGlzLl9kZWYuY2hlY2tzKSB7XG4gICAgICAgICAgICBpZiAoY2gua2luZCA9PT0gXCJtYXhcIikge1xuICAgICAgICAgICAgICAgIGlmIChtYXggPT09IG51bGwgfHwgY2gudmFsdWUgPCBtYXgpXG4gICAgICAgICAgICAgICAgICAgIG1heCA9IGNoLnZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBtYXg7XG4gICAgfVxufVxuWm9kQmlnSW50LmNyZWF0ZSA9IChwYXJhbXMpID0+IHtcbiAgICB2YXIgX2E7XG4gICAgcmV0dXJuIG5ldyBab2RCaWdJbnQoe1xuICAgICAgICBjaGVja3M6IFtdLFxuICAgICAgICB0eXBlTmFtZTogWm9kRmlyc3RQYXJ0eVR5cGVLaW5kLlpvZEJpZ0ludCxcbiAgICAgICAgY29lcmNlOiAoX2EgPSBwYXJhbXMgPT09IG51bGwgfHwgcGFyYW1zID09PSB2b2lkIDAgPyB2b2lkIDAgOiBwYXJhbXMuY29lcmNlKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiBmYWxzZSxcbiAgICAgICAgLi4ucHJvY2Vzc0NyZWF0ZVBhcmFtcyhwYXJhbXMpLFxuICAgIH0pO1xufTtcbmNsYXNzIFpvZEJvb2xlYW4gZXh0ZW5kcyBab2RUeXBlIHtcbiAgICBfcGFyc2UoaW5wdXQpIHtcbiAgICAgICAgaWYgKHRoaXMuX2RlZi5jb2VyY2UpIHtcbiAgICAgICAgICAgIGlucHV0LmRhdGEgPSBCb29sZWFuKGlucHV0LmRhdGEpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHBhcnNlZFR5cGUgPSB0aGlzLl9nZXRUeXBlKGlucHV0KTtcbiAgICAgICAgaWYgKHBhcnNlZFR5cGUgIT09IFpvZFBhcnNlZFR5cGUuYm9vbGVhbikge1xuICAgICAgICAgICAgY29uc3QgY3R4ID0gdGhpcy5fZ2V0T3JSZXR1cm5DdHgoaW5wdXQpO1xuICAgICAgICAgICAgYWRkSXNzdWVUb0NvbnRleHQoY3R4LCB7XG4gICAgICAgICAgICAgICAgY29kZTogWm9kSXNzdWVDb2RlLmludmFsaWRfdHlwZSxcbiAgICAgICAgICAgICAgICBleHBlY3RlZDogWm9kUGFyc2VkVHlwZS5ib29sZWFuLFxuICAgICAgICAgICAgICAgIHJlY2VpdmVkOiBjdHgucGFyc2VkVHlwZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcmV0dXJuIElOVkFMSUQ7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIE9LKGlucHV0LmRhdGEpO1xuICAgIH1cbn1cblpvZEJvb2xlYW4uY3JlYXRlID0gKHBhcmFtcykgPT4ge1xuICAgIHJldHVybiBuZXcgWm9kQm9vbGVhbih7XG4gICAgICAgIHR5cGVOYW1lOiBab2RGaXJzdFBhcnR5VHlwZUtpbmQuWm9kQm9vbGVhbixcbiAgICAgICAgY29lcmNlOiAocGFyYW1zID09PSBudWxsIHx8IHBhcmFtcyA9PT0gdm9pZCAwID8gdm9pZCAwIDogcGFyYW1zLmNvZXJjZSkgfHwgZmFsc2UsXG4gICAgICAgIC4uLnByb2Nlc3NDcmVhdGVQYXJhbXMocGFyYW1zKSxcbiAgICB9KTtcbn07XG5jbGFzcyBab2REYXRlIGV4dGVuZHMgWm9kVHlwZSB7XG4gICAgX3BhcnNlKGlucHV0KSB7XG4gICAgICAgIGlmICh0aGlzLl9kZWYuY29lcmNlKSB7XG4gICAgICAgICAgICBpbnB1dC5kYXRhID0gbmV3IERhdGUoaW5wdXQuZGF0YSk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcGFyc2VkVHlwZSA9IHRoaXMuX2dldFR5cGUoaW5wdXQpO1xuICAgICAgICBpZiAocGFyc2VkVHlwZSAhPT0gWm9kUGFyc2VkVHlwZS5kYXRlKSB7XG4gICAgICAgICAgICBjb25zdCBjdHggPSB0aGlzLl9nZXRPclJldHVybkN0eChpbnB1dCk7XG4gICAgICAgICAgICBhZGRJc3N1ZVRvQ29udGV4dChjdHgsIHtcbiAgICAgICAgICAgICAgICBjb2RlOiBab2RJc3N1ZUNvZGUuaW52YWxpZF90eXBlLFxuICAgICAgICAgICAgICAgIGV4cGVjdGVkOiBab2RQYXJzZWRUeXBlLmRhdGUsXG4gICAgICAgICAgICAgICAgcmVjZWl2ZWQ6IGN0eC5wYXJzZWRUeXBlLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXR1cm4gSU5WQUxJRDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaXNOYU4oaW5wdXQuZGF0YS5nZXRUaW1lKCkpKSB7XG4gICAgICAgICAgICBjb25zdCBjdHggPSB0aGlzLl9nZXRPclJldHVybkN0eChpbnB1dCk7XG4gICAgICAgICAgICBhZGRJc3N1ZVRvQ29udGV4dChjdHgsIHtcbiAgICAgICAgICAgICAgICBjb2RlOiBab2RJc3N1ZUNvZGUuaW52YWxpZF9kYXRlLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXR1cm4gSU5WQUxJRDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBzdGF0dXMgPSBuZXcgUGFyc2VTdGF0dXMoKTtcbiAgICAgICAgbGV0IGN0eCA9IHVuZGVmaW5lZDtcbiAgICAgICAgZm9yIChjb25zdCBjaGVjayBvZiB0aGlzLl9kZWYuY2hlY2tzKSB7XG4gICAgICAgICAgICBpZiAoY2hlY2sua2luZCA9PT0gXCJtaW5cIikge1xuICAgICAgICAgICAgICAgIGlmIChpbnB1dC5kYXRhLmdldFRpbWUoKSA8IGNoZWNrLnZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgIGN0eCA9IHRoaXMuX2dldE9yUmV0dXJuQ3R4KGlucHV0LCBjdHgpO1xuICAgICAgICAgICAgICAgICAgICBhZGRJc3N1ZVRvQ29udGV4dChjdHgsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvZGU6IFpvZElzc3VlQ29kZS50b29fc21hbGwsXG4gICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlOiBjaGVjay5tZXNzYWdlLFxuICAgICAgICAgICAgICAgICAgICAgICAgaW5jbHVzaXZlOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgZXhhY3Q6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgbWluaW11bTogY2hlY2sudmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBcImRhdGVcIixcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIHN0YXR1cy5kaXJ0eSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKGNoZWNrLmtpbmQgPT09IFwibWF4XCIpIHtcbiAgICAgICAgICAgICAgICBpZiAoaW5wdXQuZGF0YS5nZXRUaW1lKCkgPiBjaGVjay52YWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICBjdHggPSB0aGlzLl9nZXRPclJldHVybkN0eChpbnB1dCwgY3R4KTtcbiAgICAgICAgICAgICAgICAgICAgYWRkSXNzdWVUb0NvbnRleHQoY3R4LCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2RlOiBab2RJc3N1ZUNvZGUudG9vX2JpZyxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6IGNoZWNrLm1lc3NhZ2UsXG4gICAgICAgICAgICAgICAgICAgICAgICBpbmNsdXNpdmU6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICBleGFjdDogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICBtYXhpbXVtOiBjaGVjay52YWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IFwiZGF0ZVwiLFxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgc3RhdHVzLmRpcnR5KCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgdXRpbC5hc3NlcnROZXZlcihjaGVjayk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHN0YXR1czogc3RhdHVzLnZhbHVlLFxuICAgICAgICAgICAgdmFsdWU6IG5ldyBEYXRlKGlucHV0LmRhdGEuZ2V0VGltZSgpKSxcbiAgICAgICAgfTtcbiAgICB9XG4gICAgX2FkZENoZWNrKGNoZWNrKSB7XG4gICAgICAgIHJldHVybiBuZXcgWm9kRGF0ZSh7XG4gICAgICAgICAgICAuLi50aGlzLl9kZWYsXG4gICAgICAgICAgICBjaGVja3M6IFsuLi50aGlzLl9kZWYuY2hlY2tzLCBjaGVja10sXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBtaW4obWluRGF0ZSwgbWVzc2FnZSkge1xuICAgICAgICByZXR1cm4gdGhpcy5fYWRkQ2hlY2soe1xuICAgICAgICAgICAga2luZDogXCJtaW5cIixcbiAgICAgICAgICAgIHZhbHVlOiBtaW5EYXRlLmdldFRpbWUoKSxcbiAgICAgICAgICAgIG1lc3NhZ2U6IGVycm9yVXRpbC50b1N0cmluZyhtZXNzYWdlKSxcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIG1heChtYXhEYXRlLCBtZXNzYWdlKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9hZGRDaGVjayh7XG4gICAgICAgICAgICBraW5kOiBcIm1heFwiLFxuICAgICAgICAgICAgdmFsdWU6IG1heERhdGUuZ2V0VGltZSgpLFxuICAgICAgICAgICAgbWVzc2FnZTogZXJyb3JVdGlsLnRvU3RyaW5nKG1lc3NhZ2UpLFxuICAgICAgICB9KTtcbiAgICB9XG4gICAgZ2V0IG1pbkRhdGUoKSB7XG4gICAgICAgIGxldCBtaW4gPSBudWxsO1xuICAgICAgICBmb3IgKGNvbnN0IGNoIG9mIHRoaXMuX2RlZi5jaGVja3MpIHtcbiAgICAgICAgICAgIGlmIChjaC5raW5kID09PSBcIm1pblwiKSB7XG4gICAgICAgICAgICAgICAgaWYgKG1pbiA9PT0gbnVsbCB8fCBjaC52YWx1ZSA+IG1pbilcbiAgICAgICAgICAgICAgICAgICAgbWluID0gY2gudmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG1pbiAhPSBudWxsID8gbmV3IERhdGUobWluKSA6IG51bGw7XG4gICAgfVxuICAgIGdldCBtYXhEYXRlKCkge1xuICAgICAgICBsZXQgbWF4ID0gbnVsbDtcbiAgICAgICAgZm9yIChjb25zdCBjaCBvZiB0aGlzLl9kZWYuY2hlY2tzKSB7XG4gICAgICAgICAgICBpZiAoY2gua2luZCA9PT0gXCJtYXhcIikge1xuICAgICAgICAgICAgICAgIGlmIChtYXggPT09IG51bGwgfHwgY2gudmFsdWUgPCBtYXgpXG4gICAgICAgICAgICAgICAgICAgIG1heCA9IGNoLnZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBtYXggIT0gbnVsbCA/IG5ldyBEYXRlKG1heCkgOiBudWxsO1xuICAgIH1cbn1cblpvZERhdGUuY3JlYXRlID0gKHBhcmFtcykgPT4ge1xuICAgIHJldHVybiBuZXcgWm9kRGF0ZSh7XG4gICAgICAgIGNoZWNrczogW10sXG4gICAgICAgIGNvZXJjZTogKHBhcmFtcyA9PT0gbnVsbCB8fCBwYXJhbXMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHBhcmFtcy5jb2VyY2UpIHx8IGZhbHNlLFxuICAgICAgICB0eXBlTmFtZTogWm9kRmlyc3RQYXJ0eVR5cGVLaW5kLlpvZERhdGUsXG4gICAgICAgIC4uLnByb2Nlc3NDcmVhdGVQYXJhbXMocGFyYW1zKSxcbiAgICB9KTtcbn07XG5jbGFzcyBab2RTeW1ib2wgZXh0ZW5kcyBab2RUeXBlIHtcbiAgICBfcGFyc2UoaW5wdXQpIHtcbiAgICAgICAgY29uc3QgcGFyc2VkVHlwZSA9IHRoaXMuX2dldFR5cGUoaW5wdXQpO1xuICAgICAgICBpZiAocGFyc2VkVHlwZSAhPT0gWm9kUGFyc2VkVHlwZS5zeW1ib2wpIHtcbiAgICAgICAgICAgIGNvbnN0IGN0eCA9IHRoaXMuX2dldE9yUmV0dXJuQ3R4KGlucHV0KTtcbiAgICAgICAgICAgIGFkZElzc3VlVG9Db250ZXh0KGN0eCwge1xuICAgICAgICAgICAgICAgIGNvZGU6IFpvZElzc3VlQ29kZS5pbnZhbGlkX3R5cGUsXG4gICAgICAgICAgICAgICAgZXhwZWN0ZWQ6IFpvZFBhcnNlZFR5cGUuc3ltYm9sLFxuICAgICAgICAgICAgICAgIHJlY2VpdmVkOiBjdHgucGFyc2VkVHlwZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcmV0dXJuIElOVkFMSUQ7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIE9LKGlucHV0LmRhdGEpO1xuICAgIH1cbn1cblpvZFN5bWJvbC5jcmVhdGUgPSAocGFyYW1zKSA9PiB7XG4gICAgcmV0dXJuIG5ldyBab2RTeW1ib2woe1xuICAgICAgICB0eXBlTmFtZTogWm9kRmlyc3RQYXJ0eVR5cGVLaW5kLlpvZFN5bWJvbCxcbiAgICAgICAgLi4ucHJvY2Vzc0NyZWF0ZVBhcmFtcyhwYXJhbXMpLFxuICAgIH0pO1xufTtcbmNsYXNzIFpvZFVuZGVmaW5lZCBleHRlbmRzIFpvZFR5cGUge1xuICAgIF9wYXJzZShpbnB1dCkge1xuICAgICAgICBjb25zdCBwYXJzZWRUeXBlID0gdGhpcy5fZ2V0VHlwZShpbnB1dCk7XG4gICAgICAgIGlmIChwYXJzZWRUeXBlICE9PSBab2RQYXJzZWRUeXBlLnVuZGVmaW5lZCkge1xuICAgICAgICAgICAgY29uc3QgY3R4ID0gdGhpcy5fZ2V0T3JSZXR1cm5DdHgoaW5wdXQpO1xuICAgICAgICAgICAgYWRkSXNzdWVUb0NvbnRleHQoY3R4LCB7XG4gICAgICAgICAgICAgICAgY29kZTogWm9kSXNzdWVDb2RlLmludmFsaWRfdHlwZSxcbiAgICAgICAgICAgICAgICBleHBlY3RlZDogWm9kUGFyc2VkVHlwZS51bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgcmVjZWl2ZWQ6IGN0eC5wYXJzZWRUeXBlLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXR1cm4gSU5WQUxJRDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gT0soaW5wdXQuZGF0YSk7XG4gICAgfVxufVxuWm9kVW5kZWZpbmVkLmNyZWF0ZSA9IChwYXJhbXMpID0+IHtcbiAgICByZXR1cm4gbmV3IFpvZFVuZGVmaW5lZCh7XG4gICAgICAgIHR5cGVOYW1lOiBab2RGaXJzdFBhcnR5VHlwZUtpbmQuWm9kVW5kZWZpbmVkLFxuICAgICAgICAuLi5wcm9jZXNzQ3JlYXRlUGFyYW1zKHBhcmFtcyksXG4gICAgfSk7XG59O1xuY2xhc3MgWm9kTnVsbCBleHRlbmRzIFpvZFR5cGUge1xuICAgIF9wYXJzZShpbnB1dCkge1xuICAgICAgICBjb25zdCBwYXJzZWRUeXBlID0gdGhpcy5fZ2V0VHlwZShpbnB1dCk7XG4gICAgICAgIGlmIChwYXJzZWRUeXBlICE9PSBab2RQYXJzZWRUeXBlLm51bGwpIHtcbiAgICAgICAgICAgIGNvbnN0IGN0eCA9IHRoaXMuX2dldE9yUmV0dXJuQ3R4KGlucHV0KTtcbiAgICAgICAgICAgIGFkZElzc3VlVG9Db250ZXh0KGN0eCwge1xuICAgICAgICAgICAgICAgIGNvZGU6IFpvZElzc3VlQ29kZS5pbnZhbGlkX3R5cGUsXG4gICAgICAgICAgICAgICAgZXhwZWN0ZWQ6IFpvZFBhcnNlZFR5cGUubnVsbCxcbiAgICAgICAgICAgICAgICByZWNlaXZlZDogY3R4LnBhcnNlZFR5cGUsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHJldHVybiBJTlZBTElEO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBPSyhpbnB1dC5kYXRhKTtcbiAgICB9XG59XG5ab2ROdWxsLmNyZWF0ZSA9IChwYXJhbXMpID0+IHtcbiAgICByZXR1cm4gbmV3IFpvZE51bGwoe1xuICAgICAgICB0eXBlTmFtZTogWm9kRmlyc3RQYXJ0eVR5cGVLaW5kLlpvZE51bGwsXG4gICAgICAgIC4uLnByb2Nlc3NDcmVhdGVQYXJhbXMocGFyYW1zKSxcbiAgICB9KTtcbn07XG5jbGFzcyBab2RBbnkgZXh0ZW5kcyBab2RUeXBlIHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoLi4uYXJndW1lbnRzKTtcbiAgICAgICAgLy8gdG8gcHJldmVudCBpbnN0YW5jZXMgb2Ygb3RoZXIgY2xhc3NlcyBmcm9tIGV4dGVuZGluZyBab2RBbnkuIHRoaXMgY2F1c2VzIGlzc3VlcyB3aXRoIGNhdGNoYWxsIGluIFpvZE9iamVjdC5cbiAgICAgICAgdGhpcy5fYW55ID0gdHJ1ZTtcbiAgICB9XG4gICAgX3BhcnNlKGlucHV0KSB7XG4gICAgICAgIHJldHVybiBPSyhpbnB1dC5kYXRhKTtcbiAgICB9XG59XG5ab2RBbnkuY3JlYXRlID0gKHBhcmFtcykgPT4ge1xuICAgIHJldHVybiBuZXcgWm9kQW55KHtcbiAgICAgICAgdHlwZU5hbWU6IFpvZEZpcnN0UGFydHlUeXBlS2luZC5ab2RBbnksXG4gICAgICAgIC4uLnByb2Nlc3NDcmVhdGVQYXJhbXMocGFyYW1zKSxcbiAgICB9KTtcbn07XG5jbGFzcyBab2RVbmtub3duIGV4dGVuZHMgWm9kVHlwZSB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKC4uLmFyZ3VtZW50cyk7XG4gICAgICAgIC8vIHJlcXVpcmVkXG4gICAgICAgIHRoaXMuX3Vua25vd24gPSB0cnVlO1xuICAgIH1cbiAgICBfcGFyc2UoaW5wdXQpIHtcbiAgICAgICAgcmV0dXJuIE9LKGlucHV0LmRhdGEpO1xuICAgIH1cbn1cblpvZFVua25vd24uY3JlYXRlID0gKHBhcmFtcykgPT4ge1xuICAgIHJldHVybiBuZXcgWm9kVW5rbm93bih7XG4gICAgICAgIHR5cGVOYW1lOiBab2RGaXJzdFBhcnR5VHlwZUtpbmQuWm9kVW5rbm93bixcbiAgICAgICAgLi4ucHJvY2Vzc0NyZWF0ZVBhcmFtcyhwYXJhbXMpLFxuICAgIH0pO1xufTtcbmNsYXNzIFpvZE5ldmVyIGV4dGVuZHMgWm9kVHlwZSB7XG4gICAgX3BhcnNlKGlucHV0KSB7XG4gICAgICAgIGNvbnN0IGN0eCA9IHRoaXMuX2dldE9yUmV0dXJuQ3R4KGlucHV0KTtcbiAgICAgICAgYWRkSXNzdWVUb0NvbnRleHQoY3R4LCB7XG4gICAgICAgICAgICBjb2RlOiBab2RJc3N1ZUNvZGUuaW52YWxpZF90eXBlLFxuICAgICAgICAgICAgZXhwZWN0ZWQ6IFpvZFBhcnNlZFR5cGUubmV2ZXIsXG4gICAgICAgICAgICByZWNlaXZlZDogY3R4LnBhcnNlZFR5cGUsXG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gSU5WQUxJRDtcbiAgICB9XG59XG5ab2ROZXZlci5jcmVhdGUgPSAocGFyYW1zKSA9PiB7XG4gICAgcmV0dXJuIG5ldyBab2ROZXZlcih7XG4gICAgICAgIHR5cGVOYW1lOiBab2RGaXJzdFBhcnR5VHlwZUtpbmQuWm9kTmV2ZXIsXG4gICAgICAgIC4uLnByb2Nlc3NDcmVhdGVQYXJhbXMocGFyYW1zKSxcbiAgICB9KTtcbn07XG5jbGFzcyBab2RWb2lkIGV4dGVuZHMgWm9kVHlwZSB7XG4gICAgX3BhcnNlKGlucHV0KSB7XG4gICAgICAgIGNvbnN0IHBhcnNlZFR5cGUgPSB0aGlzLl9nZXRUeXBlKGlucHV0KTtcbiAgICAgICAgaWYgKHBhcnNlZFR5cGUgIT09IFpvZFBhcnNlZFR5cGUudW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBjb25zdCBjdHggPSB0aGlzLl9nZXRPclJldHVybkN0eChpbnB1dCk7XG4gICAgICAgICAgICBhZGRJc3N1ZVRvQ29udGV4dChjdHgsIHtcbiAgICAgICAgICAgICAgICBjb2RlOiBab2RJc3N1ZUNvZGUuaW52YWxpZF90eXBlLFxuICAgICAgICAgICAgICAgIGV4cGVjdGVkOiBab2RQYXJzZWRUeXBlLnZvaWQsXG4gICAgICAgICAgICAgICAgcmVjZWl2ZWQ6IGN0eC5wYXJzZWRUeXBlLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXR1cm4gSU5WQUxJRDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gT0soaW5wdXQuZGF0YSk7XG4gICAgfVxufVxuWm9kVm9pZC5jcmVhdGUgPSAocGFyYW1zKSA9PiB7XG4gICAgcmV0dXJuIG5ldyBab2RWb2lkKHtcbiAgICAgICAgdHlwZU5hbWU6IFpvZEZpcnN0UGFydHlUeXBlS2luZC5ab2RWb2lkLFxuICAgICAgICAuLi5wcm9jZXNzQ3JlYXRlUGFyYW1zKHBhcmFtcyksXG4gICAgfSk7XG59O1xuY2xhc3MgWm9kQXJyYXkgZXh0ZW5kcyBab2RUeXBlIHtcbiAgICBfcGFyc2UoaW5wdXQpIHtcbiAgICAgICAgY29uc3QgeyBjdHgsIHN0YXR1cyB9ID0gdGhpcy5fcHJvY2Vzc0lucHV0UGFyYW1zKGlucHV0KTtcbiAgICAgICAgY29uc3QgZGVmID0gdGhpcy5fZGVmO1xuICAgICAgICBpZiAoY3R4LnBhcnNlZFR5cGUgIT09IFpvZFBhcnNlZFR5cGUuYXJyYXkpIHtcbiAgICAgICAgICAgIGFkZElzc3VlVG9Db250ZXh0KGN0eCwge1xuICAgICAgICAgICAgICAgIGNvZGU6IFpvZElzc3VlQ29kZS5pbnZhbGlkX3R5cGUsXG4gICAgICAgICAgICAgICAgZXhwZWN0ZWQ6IFpvZFBhcnNlZFR5cGUuYXJyYXksXG4gICAgICAgICAgICAgICAgcmVjZWl2ZWQ6IGN0eC5wYXJzZWRUeXBlLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXR1cm4gSU5WQUxJRDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGVmLmV4YWN0TGVuZ3RoICE9PSBudWxsKSB7XG4gICAgICAgICAgICBjb25zdCB0b29CaWcgPSBjdHguZGF0YS5sZW5ndGggPiBkZWYuZXhhY3RMZW5ndGgudmFsdWU7XG4gICAgICAgICAgICBjb25zdCB0b29TbWFsbCA9IGN0eC5kYXRhLmxlbmd0aCA8IGRlZi5leGFjdExlbmd0aC52YWx1ZTtcbiAgICAgICAgICAgIGlmICh0b29CaWcgfHwgdG9vU21hbGwpIHtcbiAgICAgICAgICAgICAgICBhZGRJc3N1ZVRvQ29udGV4dChjdHgsIHtcbiAgICAgICAgICAgICAgICAgICAgY29kZTogdG9vQmlnID8gWm9kSXNzdWVDb2RlLnRvb19iaWcgOiBab2RJc3N1ZUNvZGUudG9vX3NtYWxsLFxuICAgICAgICAgICAgICAgICAgICBtaW5pbXVtOiAodG9vU21hbGwgPyBkZWYuZXhhY3RMZW5ndGgudmFsdWUgOiB1bmRlZmluZWQpLFxuICAgICAgICAgICAgICAgICAgICBtYXhpbXVtOiAodG9vQmlnID8gZGVmLmV4YWN0TGVuZ3RoLnZhbHVlIDogdW5kZWZpbmVkKSxcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJhcnJheVwiLFxuICAgICAgICAgICAgICAgICAgICBpbmNsdXNpdmU6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIGV4YWN0OiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICBtZXNzYWdlOiBkZWYuZXhhY3RMZW5ndGgubWVzc2FnZSxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBzdGF0dXMuZGlydHkoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoZGVmLm1pbkxlbmd0aCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgaWYgKGN0eC5kYXRhLmxlbmd0aCA8IGRlZi5taW5MZW5ndGgudmFsdWUpIHtcbiAgICAgICAgICAgICAgICBhZGRJc3N1ZVRvQ29udGV4dChjdHgsIHtcbiAgICAgICAgICAgICAgICAgICAgY29kZTogWm9kSXNzdWVDb2RlLnRvb19zbWFsbCxcbiAgICAgICAgICAgICAgICAgICAgbWluaW11bTogZGVmLm1pbkxlbmd0aC52YWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJhcnJheVwiLFxuICAgICAgICAgICAgICAgICAgICBpbmNsdXNpdmU6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIGV4YWN0OiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgbWVzc2FnZTogZGVmLm1pbkxlbmd0aC5tZXNzYWdlLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHN0YXR1cy5kaXJ0eSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChkZWYubWF4TGVuZ3RoICE9PSBudWxsKSB7XG4gICAgICAgICAgICBpZiAoY3R4LmRhdGEubGVuZ3RoID4gZGVmLm1heExlbmd0aC52YWx1ZSkge1xuICAgICAgICAgICAgICAgIGFkZElzc3VlVG9Db250ZXh0KGN0eCwge1xuICAgICAgICAgICAgICAgICAgICBjb2RlOiBab2RJc3N1ZUNvZGUudG9vX2JpZyxcbiAgICAgICAgICAgICAgICAgICAgbWF4aW11bTogZGVmLm1heExlbmd0aC52YWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJhcnJheVwiLFxuICAgICAgICAgICAgICAgICAgICBpbmNsdXNpdmU6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIGV4YWN0OiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgbWVzc2FnZTogZGVmLm1heExlbmd0aC5tZXNzYWdlLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHN0YXR1cy5kaXJ0eSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChjdHguY29tbW9uLmFzeW5jKSB7XG4gICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5hbGwoWy4uLmN0eC5kYXRhXS5tYXAoKGl0ZW0sIGkpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZGVmLnR5cGUuX3BhcnNlQXN5bmMobmV3IFBhcnNlSW5wdXRMYXp5UGF0aChjdHgsIGl0ZW0sIGN0eC5wYXRoLCBpKSk7XG4gICAgICAgICAgICB9KSkudGhlbigocmVzdWx0KSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFBhcnNlU3RhdHVzLm1lcmdlQXJyYXkoc3RhdHVzLCByZXN1bHQpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcmVzdWx0ID0gWy4uLmN0eC5kYXRhXS5tYXAoKGl0ZW0sIGkpID0+IHtcbiAgICAgICAgICAgIHJldHVybiBkZWYudHlwZS5fcGFyc2VTeW5jKG5ldyBQYXJzZUlucHV0TGF6eVBhdGgoY3R4LCBpdGVtLCBjdHgucGF0aCwgaSkpO1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIFBhcnNlU3RhdHVzLm1lcmdlQXJyYXkoc3RhdHVzLCByZXN1bHQpO1xuICAgIH1cbiAgICBnZXQgZWxlbWVudCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2RlZi50eXBlO1xuICAgIH1cbiAgICBtaW4obWluTGVuZ3RoLCBtZXNzYWdlKSB7XG4gICAgICAgIHJldHVybiBuZXcgWm9kQXJyYXkoe1xuICAgICAgICAgICAgLi4udGhpcy5fZGVmLFxuICAgICAgICAgICAgbWluTGVuZ3RoOiB7IHZhbHVlOiBtaW5MZW5ndGgsIG1lc3NhZ2U6IGVycm9yVXRpbC50b1N0cmluZyhtZXNzYWdlKSB9LFxuICAgICAgICB9KTtcbiAgICB9XG4gICAgbWF4KG1heExlbmd0aCwgbWVzc2FnZSkge1xuICAgICAgICByZXR1cm4gbmV3IFpvZEFycmF5KHtcbiAgICAgICAgICAgIC4uLnRoaXMuX2RlZixcbiAgICAgICAgICAgIG1heExlbmd0aDogeyB2YWx1ZTogbWF4TGVuZ3RoLCBtZXNzYWdlOiBlcnJvclV0aWwudG9TdHJpbmcobWVzc2FnZSkgfSxcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGxlbmd0aChsZW4sIG1lc3NhZ2UpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBab2RBcnJheSh7XG4gICAgICAgICAgICAuLi50aGlzLl9kZWYsXG4gICAgICAgICAgICBleGFjdExlbmd0aDogeyB2YWx1ZTogbGVuLCBtZXNzYWdlOiBlcnJvclV0aWwudG9TdHJpbmcobWVzc2FnZSkgfSxcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIG5vbmVtcHR5KG1lc3NhZ2UpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubWluKDEsIG1lc3NhZ2UpO1xuICAgIH1cbn1cblpvZEFycmF5LmNyZWF0ZSA9IChzY2hlbWEsIHBhcmFtcykgPT4ge1xuICAgIHJldHVybiBuZXcgWm9kQXJyYXkoe1xuICAgICAgICB0eXBlOiBzY2hlbWEsXG4gICAgICAgIG1pbkxlbmd0aDogbnVsbCxcbiAgICAgICAgbWF4TGVuZ3RoOiBudWxsLFxuICAgICAgICBleGFjdExlbmd0aDogbnVsbCxcbiAgICAgICAgdHlwZU5hbWU6IFpvZEZpcnN0UGFydHlUeXBlS2luZC5ab2RBcnJheSxcbiAgICAgICAgLi4ucHJvY2Vzc0NyZWF0ZVBhcmFtcyhwYXJhbXMpLFxuICAgIH0pO1xufTtcbmZ1bmN0aW9uIGRlZXBQYXJ0aWFsaWZ5KHNjaGVtYSkge1xuICAgIGlmIChzY2hlbWEgaW5zdGFuY2VvZiBab2RPYmplY3QpIHtcbiAgICAgICAgY29uc3QgbmV3U2hhcGUgPSB7fTtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gc2NoZW1hLnNoYXBlKSB7XG4gICAgICAgICAgICBjb25zdCBmaWVsZFNjaGVtYSA9IHNjaGVtYS5zaGFwZVtrZXldO1xuICAgICAgICAgICAgbmV3U2hhcGVba2V5XSA9IFpvZE9wdGlvbmFsLmNyZWF0ZShkZWVwUGFydGlhbGlmeShmaWVsZFNjaGVtYSkpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBuZXcgWm9kT2JqZWN0KHtcbiAgICAgICAgICAgIC4uLnNjaGVtYS5fZGVmLFxuICAgICAgICAgICAgc2hhcGU6ICgpID0+IG5ld1NoYXBlLFxuICAgICAgICB9KTtcbiAgICB9XG4gICAgZWxzZSBpZiAoc2NoZW1hIGluc3RhbmNlb2YgWm9kQXJyYXkpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBab2RBcnJheSh7XG4gICAgICAgICAgICAuLi5zY2hlbWEuX2RlZixcbiAgICAgICAgICAgIHR5cGU6IGRlZXBQYXJ0aWFsaWZ5KHNjaGVtYS5lbGVtZW50KSxcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGVsc2UgaWYgKHNjaGVtYSBpbnN0YW5jZW9mIFpvZE9wdGlvbmFsKSB7XG4gICAgICAgIHJldHVybiBab2RPcHRpb25hbC5jcmVhdGUoZGVlcFBhcnRpYWxpZnkoc2NoZW1hLnVud3JhcCgpKSk7XG4gICAgfVxuICAgIGVsc2UgaWYgKHNjaGVtYSBpbnN0YW5jZW9mIFpvZE51bGxhYmxlKSB7XG4gICAgICAgIHJldHVybiBab2ROdWxsYWJsZS5jcmVhdGUoZGVlcFBhcnRpYWxpZnkoc2NoZW1hLnVud3JhcCgpKSk7XG4gICAgfVxuICAgIGVsc2UgaWYgKHNjaGVtYSBpbnN0YW5jZW9mIFpvZFR1cGxlKSB7XG4gICAgICAgIHJldHVybiBab2RUdXBsZS5jcmVhdGUoc2NoZW1hLml0ZW1zLm1hcCgoaXRlbSkgPT4gZGVlcFBhcnRpYWxpZnkoaXRlbSkpKTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIHJldHVybiBzY2hlbWE7XG4gICAgfVxufVxuY2xhc3MgWm9kT2JqZWN0IGV4dGVuZHMgWm9kVHlwZSB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKC4uLmFyZ3VtZW50cyk7XG4gICAgICAgIHRoaXMuX2NhY2hlZCA9IG51bGw7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVwcmVjYXRlZCBJbiBtb3N0IGNhc2VzLCB0aGlzIGlzIG5vIGxvbmdlciBuZWVkZWQgLSB1bmtub3duIHByb3BlcnRpZXMgYXJlIG5vdyBzaWxlbnRseSBzdHJpcHBlZC5cbiAgICAgICAgICogSWYgeW91IHdhbnQgdG8gcGFzcyB0aHJvdWdoIHVua25vd24gcHJvcGVydGllcywgdXNlIGAucGFzc3Rocm91Z2goKWAgaW5zdGVhZC5cbiAgICAgICAgICovXG4gICAgICAgIHRoaXMubm9uc3RyaWN0ID0gdGhpcy5wYXNzdGhyb3VnaDtcbiAgICAgICAgLy8gZXh0ZW5kPFxuICAgICAgICAvLyAgIEF1Z21lbnRhdGlvbiBleHRlbmRzIFpvZFJhd1NoYXBlLFxuICAgICAgICAvLyAgIE5ld091dHB1dCBleHRlbmRzIHV0aWwuZmxhdHRlbjx7XG4gICAgICAgIC8vICAgICBbayBpbiBrZXlvZiBBdWdtZW50YXRpb24gfCBrZXlvZiBPdXRwdXRdOiBrIGV4dGVuZHMga2V5b2YgQXVnbWVudGF0aW9uXG4gICAgICAgIC8vICAgICAgID8gQXVnbWVudGF0aW9uW2tdW1wiX291dHB1dFwiXVxuICAgICAgICAvLyAgICAgICA6IGsgZXh0ZW5kcyBrZXlvZiBPdXRwdXRcbiAgICAgICAgLy8gICAgICAgPyBPdXRwdXRba11cbiAgICAgICAgLy8gICAgICAgOiBuZXZlcjtcbiAgICAgICAgLy8gICB9PixcbiAgICAgICAgLy8gICBOZXdJbnB1dCBleHRlbmRzIHV0aWwuZmxhdHRlbjx7XG4gICAgICAgIC8vICAgICBbayBpbiBrZXlvZiBBdWdtZW50YXRpb24gfCBrZXlvZiBJbnB1dF06IGsgZXh0ZW5kcyBrZXlvZiBBdWdtZW50YXRpb25cbiAgICAgICAgLy8gICAgICAgPyBBdWdtZW50YXRpb25ba11bXCJfaW5wdXRcIl1cbiAgICAgICAgLy8gICAgICAgOiBrIGV4dGVuZHMga2V5b2YgSW5wdXRcbiAgICAgICAgLy8gICAgICAgPyBJbnB1dFtrXVxuICAgICAgICAvLyAgICAgICA6IG5ldmVyO1xuICAgICAgICAvLyAgIH0+XG4gICAgICAgIC8vID4oXG4gICAgICAgIC8vICAgYXVnbWVudGF0aW9uOiBBdWdtZW50YXRpb25cbiAgICAgICAgLy8gKTogWm9kT2JqZWN0PFxuICAgICAgICAvLyAgIGV4dGVuZFNoYXBlPFQsIEF1Z21lbnRhdGlvbj4sXG4gICAgICAgIC8vICAgVW5rbm93bktleXMsXG4gICAgICAgIC8vICAgQ2F0Y2hhbGwsXG4gICAgICAgIC8vICAgTmV3T3V0cHV0LFxuICAgICAgICAvLyAgIE5ld0lucHV0XG4gICAgICAgIC8vID4ge1xuICAgICAgICAvLyAgIHJldHVybiBuZXcgWm9kT2JqZWN0KHtcbiAgICAgICAgLy8gICAgIC4uLnRoaXMuX2RlZixcbiAgICAgICAgLy8gICAgIHNoYXBlOiAoKSA9PiAoe1xuICAgICAgICAvLyAgICAgICAuLi50aGlzLl9kZWYuc2hhcGUoKSxcbiAgICAgICAgLy8gICAgICAgLi4uYXVnbWVudGF0aW9uLFxuICAgICAgICAvLyAgICAgfSksXG4gICAgICAgIC8vICAgfSkgYXMgYW55O1xuICAgICAgICAvLyB9XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVwcmVjYXRlZCBVc2UgYC5leHRlbmRgIGluc3RlYWRcbiAgICAgICAgICogICovXG4gICAgICAgIHRoaXMuYXVnbWVudCA9IHRoaXMuZXh0ZW5kO1xuICAgIH1cbiAgICBfZ2V0Q2FjaGVkKCkge1xuICAgICAgICBpZiAodGhpcy5fY2FjaGVkICE9PSBudWxsKVxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2NhY2hlZDtcbiAgICAgICAgY29uc3Qgc2hhcGUgPSB0aGlzLl9kZWYuc2hhcGUoKTtcbiAgICAgICAgY29uc3Qga2V5cyA9IHV0aWwub2JqZWN0S2V5cyhzaGFwZSk7XG4gICAgICAgIHJldHVybiAodGhpcy5fY2FjaGVkID0geyBzaGFwZSwga2V5cyB9KTtcbiAgICB9XG4gICAgX3BhcnNlKGlucHV0KSB7XG4gICAgICAgIGNvbnN0IHBhcnNlZFR5cGUgPSB0aGlzLl9nZXRUeXBlKGlucHV0KTtcbiAgICAgICAgaWYgKHBhcnNlZFR5cGUgIT09IFpvZFBhcnNlZFR5cGUub2JqZWN0KSB7XG4gICAgICAgICAgICBjb25zdCBjdHggPSB0aGlzLl9nZXRPclJldHVybkN0eChpbnB1dCk7XG4gICAgICAgICAgICBhZGRJc3N1ZVRvQ29udGV4dChjdHgsIHtcbiAgICAgICAgICAgICAgICBjb2RlOiBab2RJc3N1ZUNvZGUuaW52YWxpZF90eXBlLFxuICAgICAgICAgICAgICAgIGV4cGVjdGVkOiBab2RQYXJzZWRUeXBlLm9iamVjdCxcbiAgICAgICAgICAgICAgICByZWNlaXZlZDogY3R4LnBhcnNlZFR5cGUsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHJldHVybiBJTlZBTElEO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHsgc3RhdHVzLCBjdHggfSA9IHRoaXMuX3Byb2Nlc3NJbnB1dFBhcmFtcyhpbnB1dCk7XG4gICAgICAgIGNvbnN0IHsgc2hhcGUsIGtleXM6IHNoYXBlS2V5cyB9ID0gdGhpcy5fZ2V0Q2FjaGVkKCk7XG4gICAgICAgIGNvbnN0IGV4dHJhS2V5cyA9IFtdO1xuICAgICAgICBpZiAoISh0aGlzLl9kZWYuY2F0Y2hhbGwgaW5zdGFuY2VvZiBab2ROZXZlciAmJlxuICAgICAgICAgICAgdGhpcy5fZGVmLnVua25vd25LZXlzID09PSBcInN0cmlwXCIpKSB7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBjdHguZGF0YSkge1xuICAgICAgICAgICAgICAgIGlmICghc2hhcGVLZXlzLmluY2x1ZGVzKGtleSkpIHtcbiAgICAgICAgICAgICAgICAgICAgZXh0cmFLZXlzLnB1c2goa2V5KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcGFpcnMgPSBbXTtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgb2Ygc2hhcGVLZXlzKSB7XG4gICAgICAgICAgICBjb25zdCBrZXlWYWxpZGF0b3IgPSBzaGFwZVtrZXldO1xuICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBjdHguZGF0YVtrZXldO1xuICAgICAgICAgICAgcGFpcnMucHVzaCh7XG4gICAgICAgICAgICAgICAga2V5OiB7IHN0YXR1czogXCJ2YWxpZFwiLCB2YWx1ZToga2V5IH0sXG4gICAgICAgICAgICAgICAgdmFsdWU6IGtleVZhbGlkYXRvci5fcGFyc2UobmV3IFBhcnNlSW5wdXRMYXp5UGF0aChjdHgsIHZhbHVlLCBjdHgucGF0aCwga2V5KSksXG4gICAgICAgICAgICAgICAgYWx3YXlzU2V0OiBrZXkgaW4gY3R4LmRhdGEsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5fZGVmLmNhdGNoYWxsIGluc3RhbmNlb2YgWm9kTmV2ZXIpIHtcbiAgICAgICAgICAgIGNvbnN0IHVua25vd25LZXlzID0gdGhpcy5fZGVmLnVua25vd25LZXlzO1xuICAgICAgICAgICAgaWYgKHVua25vd25LZXlzID09PSBcInBhc3N0aHJvdWdoXCIpIHtcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGtleSBvZiBleHRyYUtleXMpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFpcnMucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgICAgICBrZXk6IHsgc3RhdHVzOiBcInZhbGlkXCIsIHZhbHVlOiBrZXkgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiB7IHN0YXR1czogXCJ2YWxpZFwiLCB2YWx1ZTogY3R4LmRhdGFba2V5XSB9LFxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmICh1bmtub3duS2V5cyA9PT0gXCJzdHJpY3RcIikge1xuICAgICAgICAgICAgICAgIGlmIChleHRyYUtleXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgICAgICBhZGRJc3N1ZVRvQ29udGV4dChjdHgsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvZGU6IFpvZElzc3VlQ29kZS51bnJlY29nbml6ZWRfa2V5cyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGtleXM6IGV4dHJhS2V5cyxcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIHN0YXR1cy5kaXJ0eSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKHVua25vd25LZXlzID09PSBcInN0cmlwXCIpIDtcbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgSW50ZXJuYWwgWm9kT2JqZWN0IGVycm9yOiBpbnZhbGlkIHVua25vd25LZXlzIHZhbHVlLmApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgLy8gcnVuIGNhdGNoYWxsIHZhbGlkYXRpb25cbiAgICAgICAgICAgIGNvbnN0IGNhdGNoYWxsID0gdGhpcy5fZGVmLmNhdGNoYWxsO1xuICAgICAgICAgICAgZm9yIChjb25zdCBrZXkgb2YgZXh0cmFLZXlzKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBjdHguZGF0YVtrZXldO1xuICAgICAgICAgICAgICAgIHBhaXJzLnB1c2goe1xuICAgICAgICAgICAgICAgICAgICBrZXk6IHsgc3RhdHVzOiBcInZhbGlkXCIsIHZhbHVlOiBrZXkgfSxcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IGNhdGNoYWxsLl9wYXJzZShuZXcgUGFyc2VJbnB1dExhenlQYXRoKGN0eCwgdmFsdWUsIGN0eC5wYXRoLCBrZXkpIC8vLCBjdHguY2hpbGQoa2V5KSwgdmFsdWUsIGdldFBhcnNlZFR5cGUodmFsdWUpXG4gICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgICAgIGFsd2F5c1NldDoga2V5IGluIGN0eC5kYXRhLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChjdHguY29tbW9uLmFzeW5jKSB7XG4gICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKClcbiAgICAgICAgICAgICAgICAudGhlbihhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3Qgc3luY1BhaXJzID0gW107XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBwYWlyIG9mIHBhaXJzKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGtleSA9IGF3YWl0IHBhaXIua2V5O1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZSA9IGF3YWl0IHBhaXIudmFsdWU7XG4gICAgICAgICAgICAgICAgICAgIHN5bmNQYWlycy5wdXNoKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGtleSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgYWx3YXlzU2V0OiBwYWlyLmFsd2F5c1NldCxcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBzeW5jUGFpcnM7XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIC50aGVuKChzeW5jUGFpcnMpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gUGFyc2VTdGF0dXMubWVyZ2VPYmplY3RTeW5jKHN0YXR1cywgc3luY1BhaXJzKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIFBhcnNlU3RhdHVzLm1lcmdlT2JqZWN0U3luYyhzdGF0dXMsIHBhaXJzKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBnZXQgc2hhcGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kZWYuc2hhcGUoKTtcbiAgICB9XG4gICAgc3RyaWN0KG1lc3NhZ2UpIHtcbiAgICAgICAgZXJyb3JVdGlsLmVyclRvT2JqO1xuICAgICAgICByZXR1cm4gbmV3IFpvZE9iamVjdCh7XG4gICAgICAgICAgICAuLi50aGlzLl9kZWYsXG4gICAgICAgICAgICB1bmtub3duS2V5czogXCJzdHJpY3RcIixcbiAgICAgICAgICAgIC4uLihtZXNzYWdlICE9PSB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICA/IHtcbiAgICAgICAgICAgICAgICAgICAgZXJyb3JNYXA6IChpc3N1ZSwgY3R4KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgX2EsIF9iLCBfYywgX2Q7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBkZWZhdWx0RXJyb3IgPSAoX2MgPSAoX2IgPSAoX2EgPSB0aGlzLl9kZWYpLmVycm9yTWFwKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IuY2FsbChfYSwgaXNzdWUsIGN0eCkubWVzc2FnZSkgIT09IG51bGwgJiYgX2MgIT09IHZvaWQgMCA/IF9jIDogY3R4LmRlZmF1bHRFcnJvcjtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpc3N1ZS5jb2RlID09PSBcInVucmVjb2duaXplZF9rZXlzXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZTogKF9kID0gZXJyb3JVdGlsLmVyclRvT2JqKG1lc3NhZ2UpLm1lc3NhZ2UpICE9PSBudWxsICYmIF9kICE9PSB2b2lkIDAgPyBfZCA6IGRlZmF1bHRFcnJvcixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlOiBkZWZhdWx0RXJyb3IsXG4gICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA6IHt9KSxcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIHN0cmlwKCkge1xuICAgICAgICByZXR1cm4gbmV3IFpvZE9iamVjdCh7XG4gICAgICAgICAgICAuLi50aGlzLl9kZWYsXG4gICAgICAgICAgICB1bmtub3duS2V5czogXCJzdHJpcFwiLFxuICAgICAgICB9KTtcbiAgICB9XG4gICAgcGFzc3Rocm91Z2goKSB7XG4gICAgICAgIHJldHVybiBuZXcgWm9kT2JqZWN0KHtcbiAgICAgICAgICAgIC4uLnRoaXMuX2RlZixcbiAgICAgICAgICAgIHVua25vd25LZXlzOiBcInBhc3N0aHJvdWdoXCIsXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICAvLyBjb25zdCBBdWdtZW50RmFjdG9yeSA9XG4gICAgLy8gICA8RGVmIGV4dGVuZHMgWm9kT2JqZWN0RGVmPihkZWY6IERlZikgPT5cbiAgICAvLyAgIDxBdWdtZW50YXRpb24gZXh0ZW5kcyBab2RSYXdTaGFwZT4oXG4gICAgLy8gICAgIGF1Z21lbnRhdGlvbjogQXVnbWVudGF0aW9uXG4gICAgLy8gICApOiBab2RPYmplY3Q8XG4gICAgLy8gICAgIGV4dGVuZFNoYXBlPFJldHVyblR5cGU8RGVmW1wic2hhcGVcIl0+LCBBdWdtZW50YXRpb24+LFxuICAgIC8vICAgICBEZWZbXCJ1bmtub3duS2V5c1wiXSxcbiAgICAvLyAgICAgRGVmW1wiY2F0Y2hhbGxcIl1cbiAgICAvLyAgID4gPT4ge1xuICAgIC8vICAgICByZXR1cm4gbmV3IFpvZE9iamVjdCh7XG4gICAgLy8gICAgICAgLi4uZGVmLFxuICAgIC8vICAgICAgIHNoYXBlOiAoKSA9PiAoe1xuICAgIC8vICAgICAgICAgLi4uZGVmLnNoYXBlKCksXG4gICAgLy8gICAgICAgICAuLi5hdWdtZW50YXRpb24sXG4gICAgLy8gICAgICAgfSksXG4gICAgLy8gICAgIH0pIGFzIGFueTtcbiAgICAvLyAgIH07XG4gICAgZXh0ZW5kKGF1Z21lbnRhdGlvbikge1xuICAgICAgICByZXR1cm4gbmV3IFpvZE9iamVjdCh7XG4gICAgICAgICAgICAuLi50aGlzLl9kZWYsXG4gICAgICAgICAgICBzaGFwZTogKCkgPT4gKHtcbiAgICAgICAgICAgICAgICAuLi50aGlzLl9kZWYuc2hhcGUoKSxcbiAgICAgICAgICAgICAgICAuLi5hdWdtZW50YXRpb24sXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFByaW9yIHRvIHpvZEAxLjAuMTIgdGhlcmUgd2FzIGEgYnVnIGluIHRoZVxuICAgICAqIGluZmVycmVkIHR5cGUgb2YgbWVyZ2VkIG9iamVjdHMuIFBsZWFzZVxuICAgICAqIHVwZ3JhZGUgaWYgeW91IGFyZSBleHBlcmllbmNpbmcgaXNzdWVzLlxuICAgICAqL1xuICAgIG1lcmdlKG1lcmdpbmcpIHtcbiAgICAgICAgY29uc3QgbWVyZ2VkID0gbmV3IFpvZE9iamVjdCh7XG4gICAgICAgICAgICB1bmtub3duS2V5czogbWVyZ2luZy5fZGVmLnVua25vd25LZXlzLFxuICAgICAgICAgICAgY2F0Y2hhbGw6IG1lcmdpbmcuX2RlZi5jYXRjaGFsbCxcbiAgICAgICAgICAgIHNoYXBlOiAoKSA9PiAoe1xuICAgICAgICAgICAgICAgIC4uLnRoaXMuX2RlZi5zaGFwZSgpLFxuICAgICAgICAgICAgICAgIC4uLm1lcmdpbmcuX2RlZi5zaGFwZSgpLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICB0eXBlTmFtZTogWm9kRmlyc3RQYXJ0eVR5cGVLaW5kLlpvZE9iamVjdCxcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBtZXJnZWQ7XG4gICAgfVxuICAgIC8vIG1lcmdlPFxuICAgIC8vICAgSW5jb21pbmcgZXh0ZW5kcyBBbnlab2RPYmplY3QsXG4gICAgLy8gICBBdWdtZW50YXRpb24gZXh0ZW5kcyBJbmNvbWluZ1tcInNoYXBlXCJdLFxuICAgIC8vICAgTmV3T3V0cHV0IGV4dGVuZHMge1xuICAgIC8vICAgICBbayBpbiBrZXlvZiBBdWdtZW50YXRpb24gfCBrZXlvZiBPdXRwdXRdOiBrIGV4dGVuZHMga2V5b2YgQXVnbWVudGF0aW9uXG4gICAgLy8gICAgICAgPyBBdWdtZW50YXRpb25ba11bXCJfb3V0cHV0XCJdXG4gICAgLy8gICAgICAgOiBrIGV4dGVuZHMga2V5b2YgT3V0cHV0XG4gICAgLy8gICAgICAgPyBPdXRwdXRba11cbiAgICAvLyAgICAgICA6IG5ldmVyO1xuICAgIC8vICAgfSxcbiAgICAvLyAgIE5ld0lucHV0IGV4dGVuZHMge1xuICAgIC8vICAgICBbayBpbiBrZXlvZiBBdWdtZW50YXRpb24gfCBrZXlvZiBJbnB1dF06IGsgZXh0ZW5kcyBrZXlvZiBBdWdtZW50YXRpb25cbiAgICAvLyAgICAgICA/IEF1Z21lbnRhdGlvbltrXVtcIl9pbnB1dFwiXVxuICAgIC8vICAgICAgIDogayBleHRlbmRzIGtleW9mIElucHV0XG4gICAgLy8gICAgICAgPyBJbnB1dFtrXVxuICAgIC8vICAgICAgIDogbmV2ZXI7XG4gICAgLy8gICB9XG4gICAgLy8gPihcbiAgICAvLyAgIG1lcmdpbmc6IEluY29taW5nXG4gICAgLy8gKTogWm9kT2JqZWN0PFxuICAgIC8vICAgZXh0ZW5kU2hhcGU8VCwgUmV0dXJuVHlwZTxJbmNvbWluZ1tcIl9kZWZcIl1bXCJzaGFwZVwiXT4+LFxuICAgIC8vICAgSW5jb21pbmdbXCJfZGVmXCJdW1widW5rbm93bktleXNcIl0sXG4gICAgLy8gICBJbmNvbWluZ1tcIl9kZWZcIl1bXCJjYXRjaGFsbFwiXSxcbiAgICAvLyAgIE5ld091dHB1dCxcbiAgICAvLyAgIE5ld0lucHV0XG4gICAgLy8gPiB7XG4gICAgLy8gICBjb25zdCBtZXJnZWQ6IGFueSA9IG5ldyBab2RPYmplY3Qoe1xuICAgIC8vICAgICB1bmtub3duS2V5czogbWVyZ2luZy5fZGVmLnVua25vd25LZXlzLFxuICAgIC8vICAgICBjYXRjaGFsbDogbWVyZ2luZy5fZGVmLmNhdGNoYWxsLFxuICAgIC8vICAgICBzaGFwZTogKCkgPT5cbiAgICAvLyAgICAgICBvYmplY3RVdGlsLm1lcmdlU2hhcGVzKHRoaXMuX2RlZi5zaGFwZSgpLCBtZXJnaW5nLl9kZWYuc2hhcGUoKSksXG4gICAgLy8gICAgIHR5cGVOYW1lOiBab2RGaXJzdFBhcnR5VHlwZUtpbmQuWm9kT2JqZWN0LFxuICAgIC8vICAgfSkgYXMgYW55O1xuICAgIC8vICAgcmV0dXJuIG1lcmdlZDtcbiAgICAvLyB9XG4gICAgc2V0S2V5KGtleSwgc2NoZW1hKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmF1Z21lbnQoeyBba2V5XTogc2NoZW1hIH0pO1xuICAgIH1cbiAgICAvLyBtZXJnZTxJbmNvbWluZyBleHRlbmRzIEFueVpvZE9iamVjdD4oXG4gICAgLy8gICBtZXJnaW5nOiBJbmNvbWluZ1xuICAgIC8vICk6IC8vWm9kT2JqZWN0PFQgJiBJbmNvbWluZ1tcIl9zaGFwZVwiXSwgVW5rbm93bktleXMsIENhdGNoYWxsPiA9IChtZXJnaW5nKSA9PiB7XG4gICAgLy8gWm9kT2JqZWN0PFxuICAgIC8vICAgZXh0ZW5kU2hhcGU8VCwgUmV0dXJuVHlwZTxJbmNvbWluZ1tcIl9kZWZcIl1bXCJzaGFwZVwiXT4+LFxuICAgIC8vICAgSW5jb21pbmdbXCJfZGVmXCJdW1widW5rbm93bktleXNcIl0sXG4gICAgLy8gICBJbmNvbWluZ1tcIl9kZWZcIl1bXCJjYXRjaGFsbFwiXVxuICAgIC8vID4ge1xuICAgIC8vICAgLy8gY29uc3QgbWVyZ2VkU2hhcGUgPSBvYmplY3RVdGlsLm1lcmdlU2hhcGVzKFxuICAgIC8vICAgLy8gICB0aGlzLl9kZWYuc2hhcGUoKSxcbiAgICAvLyAgIC8vICAgbWVyZ2luZy5fZGVmLnNoYXBlKClcbiAgICAvLyAgIC8vICk7XG4gICAgLy8gICBjb25zdCBtZXJnZWQ6IGFueSA9IG5ldyBab2RPYmplY3Qoe1xuICAgIC8vICAgICB1bmtub3duS2V5czogbWVyZ2luZy5fZGVmLnVua25vd25LZXlzLFxuICAgIC8vICAgICBjYXRjaGFsbDogbWVyZ2luZy5fZGVmLmNhdGNoYWxsLFxuICAgIC8vICAgICBzaGFwZTogKCkgPT5cbiAgICAvLyAgICAgICBvYmplY3RVdGlsLm1lcmdlU2hhcGVzKHRoaXMuX2RlZi5zaGFwZSgpLCBtZXJnaW5nLl9kZWYuc2hhcGUoKSksXG4gICAgLy8gICAgIHR5cGVOYW1lOiBab2RGaXJzdFBhcnR5VHlwZUtpbmQuWm9kT2JqZWN0LFxuICAgIC8vICAgfSkgYXMgYW55O1xuICAgIC8vICAgcmV0dXJuIG1lcmdlZDtcbiAgICAvLyB9XG4gICAgY2F0Y2hhbGwoaW5kZXgpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBab2RPYmplY3Qoe1xuICAgICAgICAgICAgLi4udGhpcy5fZGVmLFxuICAgICAgICAgICAgY2F0Y2hhbGw6IGluZGV4LFxuICAgICAgICB9KTtcbiAgICB9XG4gICAgcGljayhtYXNrKSB7XG4gICAgICAgIGNvbnN0IHNoYXBlID0ge307XG4gICAgICAgIHV0aWwub2JqZWN0S2V5cyhtYXNrKS5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgICAgICAgIGlmIChtYXNrW2tleV0gJiYgdGhpcy5zaGFwZVtrZXldKSB7XG4gICAgICAgICAgICAgICAgc2hhcGVba2V5XSA9IHRoaXMuc2hhcGVba2V5XTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBuZXcgWm9kT2JqZWN0KHtcbiAgICAgICAgICAgIC4uLnRoaXMuX2RlZixcbiAgICAgICAgICAgIHNoYXBlOiAoKSA9PiBzaGFwZSxcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIG9taXQobWFzaykge1xuICAgICAgICBjb25zdCBzaGFwZSA9IHt9O1xuICAgICAgICB1dGlsLm9iamVjdEtleXModGhpcy5zaGFwZSkuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgICAgICAgICBpZiAoIW1hc2tba2V5XSkge1xuICAgICAgICAgICAgICAgIHNoYXBlW2tleV0gPSB0aGlzLnNoYXBlW2tleV07XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gbmV3IFpvZE9iamVjdCh7XG4gICAgICAgICAgICAuLi50aGlzLl9kZWYsXG4gICAgICAgICAgICBzaGFwZTogKCkgPT4gc2hhcGUsXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBAZGVwcmVjYXRlZFxuICAgICAqL1xuICAgIGRlZXBQYXJ0aWFsKCkge1xuICAgICAgICByZXR1cm4gZGVlcFBhcnRpYWxpZnkodGhpcyk7XG4gICAgfVxuICAgIHBhcnRpYWwobWFzaykge1xuICAgICAgICBjb25zdCBuZXdTaGFwZSA9IHt9O1xuICAgICAgICB1dGlsLm9iamVjdEtleXModGhpcy5zaGFwZSkuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBmaWVsZFNjaGVtYSA9IHRoaXMuc2hhcGVba2V5XTtcbiAgICAgICAgICAgIGlmIChtYXNrICYmICFtYXNrW2tleV0pIHtcbiAgICAgICAgICAgICAgICBuZXdTaGFwZVtrZXldID0gZmllbGRTY2hlbWE7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBuZXdTaGFwZVtrZXldID0gZmllbGRTY2hlbWEub3B0aW9uYWwoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBuZXcgWm9kT2JqZWN0KHtcbiAgICAgICAgICAgIC4uLnRoaXMuX2RlZixcbiAgICAgICAgICAgIHNoYXBlOiAoKSA9PiBuZXdTaGFwZSxcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIHJlcXVpcmVkKG1hc2spIHtcbiAgICAgICAgY29uc3QgbmV3U2hhcGUgPSB7fTtcbiAgICAgICAgdXRpbC5vYmplY3RLZXlzKHRoaXMuc2hhcGUpLmZvckVhY2goKGtleSkgPT4ge1xuICAgICAgICAgICAgaWYgKG1hc2sgJiYgIW1hc2tba2V5XSkge1xuICAgICAgICAgICAgICAgIG5ld1NoYXBlW2tleV0gPSB0aGlzLnNoYXBlW2tleV07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb25zdCBmaWVsZFNjaGVtYSA9IHRoaXMuc2hhcGVba2V5XTtcbiAgICAgICAgICAgICAgICBsZXQgbmV3RmllbGQgPSBmaWVsZFNjaGVtYTtcbiAgICAgICAgICAgICAgICB3aGlsZSAobmV3RmllbGQgaW5zdGFuY2VvZiBab2RPcHRpb25hbCkge1xuICAgICAgICAgICAgICAgICAgICBuZXdGaWVsZCA9IG5ld0ZpZWxkLl9kZWYuaW5uZXJUeXBlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBuZXdTaGFwZVtrZXldID0gbmV3RmllbGQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gbmV3IFpvZE9iamVjdCh7XG4gICAgICAgICAgICAuLi50aGlzLl9kZWYsXG4gICAgICAgICAgICBzaGFwZTogKCkgPT4gbmV3U2hhcGUsXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBrZXlvZigpIHtcbiAgICAgICAgcmV0dXJuIGNyZWF0ZVpvZEVudW0odXRpbC5vYmplY3RLZXlzKHRoaXMuc2hhcGUpKTtcbiAgICB9XG59XG5ab2RPYmplY3QuY3JlYXRlID0gKHNoYXBlLCBwYXJhbXMpID0+IHtcbiAgICByZXR1cm4gbmV3IFpvZE9iamVjdCh7XG4gICAgICAgIHNoYXBlOiAoKSA9PiBzaGFwZSxcbiAgICAgICAgdW5rbm93bktleXM6IFwic3RyaXBcIixcbiAgICAgICAgY2F0Y2hhbGw6IFpvZE5ldmVyLmNyZWF0ZSgpLFxuICAgICAgICB0eXBlTmFtZTogWm9kRmlyc3RQYXJ0eVR5cGVLaW5kLlpvZE9iamVjdCxcbiAgICAgICAgLi4ucHJvY2Vzc0NyZWF0ZVBhcmFtcyhwYXJhbXMpLFxuICAgIH0pO1xufTtcblpvZE9iamVjdC5zdHJpY3RDcmVhdGUgPSAoc2hhcGUsIHBhcmFtcykgPT4ge1xuICAgIHJldHVybiBuZXcgWm9kT2JqZWN0KHtcbiAgICAgICAgc2hhcGU6ICgpID0+IHNoYXBlLFxuICAgICAgICB1bmtub3duS2V5czogXCJzdHJpY3RcIixcbiAgICAgICAgY2F0Y2hhbGw6IFpvZE5ldmVyLmNyZWF0ZSgpLFxuICAgICAgICB0eXBlTmFtZTogWm9kRmlyc3RQYXJ0eVR5cGVLaW5kLlpvZE9iamVjdCxcbiAgICAgICAgLi4ucHJvY2Vzc0NyZWF0ZVBhcmFtcyhwYXJhbXMpLFxuICAgIH0pO1xufTtcblpvZE9iamVjdC5sYXp5Y3JlYXRlID0gKHNoYXBlLCBwYXJhbXMpID0+IHtcbiAgICByZXR1cm4gbmV3IFpvZE9iamVjdCh7XG4gICAgICAgIHNoYXBlLFxuICAgICAgICB1bmtub3duS2V5czogXCJzdHJpcFwiLFxuICAgICAgICBjYXRjaGFsbDogWm9kTmV2ZXIuY3JlYXRlKCksXG4gICAgICAgIHR5cGVOYW1lOiBab2RGaXJzdFBhcnR5VHlwZUtpbmQuWm9kT2JqZWN0LFxuICAgICAgICAuLi5wcm9jZXNzQ3JlYXRlUGFyYW1zKHBhcmFtcyksXG4gICAgfSk7XG59O1xuY2xhc3MgWm9kVW5pb24gZXh0ZW5kcyBab2RUeXBlIHtcbiAgICBfcGFyc2UoaW5wdXQpIHtcbiAgICAgICAgY29uc3QgeyBjdHggfSA9IHRoaXMuX3Byb2Nlc3NJbnB1dFBhcmFtcyhpbnB1dCk7XG4gICAgICAgIGNvbnN0IG9wdGlvbnMgPSB0aGlzLl9kZWYub3B0aW9ucztcbiAgICAgICAgZnVuY3Rpb24gaGFuZGxlUmVzdWx0cyhyZXN1bHRzKSB7XG4gICAgICAgICAgICAvLyByZXR1cm4gZmlyc3QgaXNzdWUtZnJlZSB2YWxpZGF0aW9uIGlmIGl0IGV4aXN0c1xuICAgICAgICAgICAgZm9yIChjb25zdCByZXN1bHQgb2YgcmVzdWx0cykge1xuICAgICAgICAgICAgICAgIGlmIChyZXN1bHQucmVzdWx0LnN0YXR1cyA9PT0gXCJ2YWxpZFwiKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQucmVzdWx0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGZvciAoY29uc3QgcmVzdWx0IG9mIHJlc3VsdHMpIHtcbiAgICAgICAgICAgICAgICBpZiAocmVzdWx0LnJlc3VsdC5zdGF0dXMgPT09IFwiZGlydHlcIikge1xuICAgICAgICAgICAgICAgICAgICAvLyBhZGQgaXNzdWVzIGZyb20gZGlydHkgb3B0aW9uXG4gICAgICAgICAgICAgICAgICAgIGN0eC5jb21tb24uaXNzdWVzLnB1c2goLi4ucmVzdWx0LmN0eC5jb21tb24uaXNzdWVzKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC5yZXN1bHQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gcmV0dXJuIGludmFsaWRcbiAgICAgICAgICAgIGNvbnN0IHVuaW9uRXJyb3JzID0gcmVzdWx0cy5tYXAoKHJlc3VsdCkgPT4gbmV3IFpvZEVycm9yKHJlc3VsdC5jdHguY29tbW9uLmlzc3VlcykpO1xuICAgICAgICAgICAgYWRkSXNzdWVUb0NvbnRleHQoY3R4LCB7XG4gICAgICAgICAgICAgICAgY29kZTogWm9kSXNzdWVDb2RlLmludmFsaWRfdW5pb24sXG4gICAgICAgICAgICAgICAgdW5pb25FcnJvcnMsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHJldHVybiBJTlZBTElEO1xuICAgICAgICB9XG4gICAgICAgIGlmIChjdHguY29tbW9uLmFzeW5jKSB7XG4gICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5hbGwob3B0aW9ucy5tYXAoYXN5bmMgKG9wdGlvbikgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGNoaWxkQ3R4ID0ge1xuICAgICAgICAgICAgICAgICAgICAuLi5jdHgsXG4gICAgICAgICAgICAgICAgICAgIGNvbW1vbjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgLi4uY3R4LmNvbW1vbixcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzc3VlczogW10sXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIHBhcmVudDogbnVsbCxcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdDogYXdhaXQgb3B0aW9uLl9wYXJzZUFzeW5jKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGE6IGN0eC5kYXRhLFxuICAgICAgICAgICAgICAgICAgICAgICAgcGF0aDogY3R4LnBhdGgsXG4gICAgICAgICAgICAgICAgICAgICAgICBwYXJlbnQ6IGNoaWxkQ3R4LFxuICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgY3R4OiBjaGlsZEN0eCxcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfSkpLnRoZW4oaGFuZGxlUmVzdWx0cyk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBsZXQgZGlydHkgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICBjb25zdCBpc3N1ZXMgPSBbXTtcbiAgICAgICAgICAgIGZvciAoY29uc3Qgb3B0aW9uIG9mIG9wdGlvbnMpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBjaGlsZEN0eCA9IHtcbiAgICAgICAgICAgICAgICAgICAgLi4uY3R4LFxuICAgICAgICAgICAgICAgICAgICBjb21tb246IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC4uLmN0eC5jb21tb24sXG4gICAgICAgICAgICAgICAgICAgICAgICBpc3N1ZXM6IFtdLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBwYXJlbnQ6IG51bGwsXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBjb25zdCByZXN1bHQgPSBvcHRpb24uX3BhcnNlU3luYyh7XG4gICAgICAgICAgICAgICAgICAgIGRhdGE6IGN0eC5kYXRhLFxuICAgICAgICAgICAgICAgICAgICBwYXRoOiBjdHgucGF0aCxcbiAgICAgICAgICAgICAgICAgICAgcGFyZW50OiBjaGlsZEN0eCxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBpZiAocmVzdWx0LnN0YXR1cyA9PT0gXCJ2YWxpZFwiKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKHJlc3VsdC5zdGF0dXMgPT09IFwiZGlydHlcIiAmJiAhZGlydHkpIHtcbiAgICAgICAgICAgICAgICAgICAgZGlydHkgPSB7IHJlc3VsdCwgY3R4OiBjaGlsZEN0eCB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoY2hpbGRDdHguY29tbW9uLmlzc3Vlcy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgaXNzdWVzLnB1c2goY2hpbGRDdHguY29tbW9uLmlzc3Vlcyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRpcnR5KSB7XG4gICAgICAgICAgICAgICAgY3R4LmNvbW1vbi5pc3N1ZXMucHVzaCguLi5kaXJ0eS5jdHguY29tbW9uLmlzc3Vlcyk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGRpcnR5LnJlc3VsdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IHVuaW9uRXJyb3JzID0gaXNzdWVzLm1hcCgoaXNzdWVzKSA9PiBuZXcgWm9kRXJyb3IoaXNzdWVzKSk7XG4gICAgICAgICAgICBhZGRJc3N1ZVRvQ29udGV4dChjdHgsIHtcbiAgICAgICAgICAgICAgICBjb2RlOiBab2RJc3N1ZUNvZGUuaW52YWxpZF91bmlvbixcbiAgICAgICAgICAgICAgICB1bmlvbkVycm9ycyxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcmV0dXJuIElOVkFMSUQ7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZ2V0IG9wdGlvbnMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kZWYub3B0aW9ucztcbiAgICB9XG59XG5ab2RVbmlvbi5jcmVhdGUgPSAodHlwZXMsIHBhcmFtcykgPT4ge1xuICAgIHJldHVybiBuZXcgWm9kVW5pb24oe1xuICAgICAgICBvcHRpb25zOiB0eXBlcyxcbiAgICAgICAgdHlwZU5hbWU6IFpvZEZpcnN0UGFydHlUeXBlS2luZC5ab2RVbmlvbixcbiAgICAgICAgLi4ucHJvY2Vzc0NyZWF0ZVBhcmFtcyhwYXJhbXMpLFxuICAgIH0pO1xufTtcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8vLy8vLy8vLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vLy8vLy8vLy9cbi8vLy8vLy8vLy8gICAgICBab2REaXNjcmltaW5hdGVkVW5pb24gICAgICAvLy8vLy8vLy8vXG4vLy8vLy8vLy8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8vLy8vLy8vL1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5jb25zdCBnZXREaXNjcmltaW5hdG9yID0gKHR5cGUpID0+IHtcbiAgICBpZiAodHlwZSBpbnN0YW5jZW9mIFpvZExhenkpIHtcbiAgICAgICAgcmV0dXJuIGdldERpc2NyaW1pbmF0b3IodHlwZS5zY2hlbWEpO1xuICAgIH1cbiAgICBlbHNlIGlmICh0eXBlIGluc3RhbmNlb2YgWm9kRWZmZWN0cykge1xuICAgICAgICByZXR1cm4gZ2V0RGlzY3JpbWluYXRvcih0eXBlLmlubmVyVHlwZSgpKTtcbiAgICB9XG4gICAgZWxzZSBpZiAodHlwZSBpbnN0YW5jZW9mIFpvZExpdGVyYWwpIHtcbiAgICAgICAgcmV0dXJuIFt0eXBlLnZhbHVlXTtcbiAgICB9XG4gICAgZWxzZSBpZiAodHlwZSBpbnN0YW5jZW9mIFpvZEVudW0pIHtcbiAgICAgICAgcmV0dXJuIHR5cGUub3B0aW9ucztcbiAgICB9XG4gICAgZWxzZSBpZiAodHlwZSBpbnN0YW5jZW9mIFpvZE5hdGl2ZUVudW0pIHtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGJhbi9iYW5cbiAgICAgICAgcmV0dXJuIHV0aWwub2JqZWN0VmFsdWVzKHR5cGUuZW51bSk7XG4gICAgfVxuICAgIGVsc2UgaWYgKHR5cGUgaW5zdGFuY2VvZiBab2REZWZhdWx0KSB7XG4gICAgICAgIHJldHVybiBnZXREaXNjcmltaW5hdG9yKHR5cGUuX2RlZi5pbm5lclR5cGUpO1xuICAgIH1cbiAgICBlbHNlIGlmICh0eXBlIGluc3RhbmNlb2YgWm9kVW5kZWZpbmVkKSB7XG4gICAgICAgIHJldHVybiBbdW5kZWZpbmVkXTtcbiAgICB9XG4gICAgZWxzZSBpZiAodHlwZSBpbnN0YW5jZW9mIFpvZE51bGwpIHtcbiAgICAgICAgcmV0dXJuIFtudWxsXTtcbiAgICB9XG4gICAgZWxzZSBpZiAodHlwZSBpbnN0YW5jZW9mIFpvZE9wdGlvbmFsKSB7XG4gICAgICAgIHJldHVybiBbdW5kZWZpbmVkLCAuLi5nZXREaXNjcmltaW5hdG9yKHR5cGUudW53cmFwKCkpXTtcbiAgICB9XG4gICAgZWxzZSBpZiAodHlwZSBpbnN0YW5jZW9mIFpvZE51bGxhYmxlKSB7XG4gICAgICAgIHJldHVybiBbbnVsbCwgLi4uZ2V0RGlzY3JpbWluYXRvcih0eXBlLnVud3JhcCgpKV07XG4gICAgfVxuICAgIGVsc2UgaWYgKHR5cGUgaW5zdGFuY2VvZiBab2RCcmFuZGVkKSB7XG4gICAgICAgIHJldHVybiBnZXREaXNjcmltaW5hdG9yKHR5cGUudW53cmFwKCkpO1xuICAgIH1cbiAgICBlbHNlIGlmICh0eXBlIGluc3RhbmNlb2YgWm9kUmVhZG9ubHkpIHtcbiAgICAgICAgcmV0dXJuIGdldERpc2NyaW1pbmF0b3IodHlwZS51bndyYXAoKSk7XG4gICAgfVxuICAgIGVsc2UgaWYgKHR5cGUgaW5zdGFuY2VvZiBab2RDYXRjaCkge1xuICAgICAgICByZXR1cm4gZ2V0RGlzY3JpbWluYXRvcih0eXBlLl9kZWYuaW5uZXJUeXBlKTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIHJldHVybiBbXTtcbiAgICB9XG59O1xuY2xhc3MgWm9kRGlzY3JpbWluYXRlZFVuaW9uIGV4dGVuZHMgWm9kVHlwZSB7XG4gICAgX3BhcnNlKGlucHV0KSB7XG4gICAgICAgIGNvbnN0IHsgY3R4IH0gPSB0aGlzLl9wcm9jZXNzSW5wdXRQYXJhbXMoaW5wdXQpO1xuICAgICAgICBpZiAoY3R4LnBhcnNlZFR5cGUgIT09IFpvZFBhcnNlZFR5cGUub2JqZWN0KSB7XG4gICAgICAgICAgICBhZGRJc3N1ZVRvQ29udGV4dChjdHgsIHtcbiAgICAgICAgICAgICAgICBjb2RlOiBab2RJc3N1ZUNvZGUuaW52YWxpZF90eXBlLFxuICAgICAgICAgICAgICAgIGV4cGVjdGVkOiBab2RQYXJzZWRUeXBlLm9iamVjdCxcbiAgICAgICAgICAgICAgICByZWNlaXZlZDogY3R4LnBhcnNlZFR5cGUsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHJldHVybiBJTlZBTElEO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGRpc2NyaW1pbmF0b3IgPSB0aGlzLmRpc2NyaW1pbmF0b3I7XG4gICAgICAgIGNvbnN0IGRpc2NyaW1pbmF0b3JWYWx1ZSA9IGN0eC5kYXRhW2Rpc2NyaW1pbmF0b3JdO1xuICAgICAgICBjb25zdCBvcHRpb24gPSB0aGlzLm9wdGlvbnNNYXAuZ2V0KGRpc2NyaW1pbmF0b3JWYWx1ZSk7XG4gICAgICAgIGlmICghb3B0aW9uKSB7XG4gICAgICAgICAgICBhZGRJc3N1ZVRvQ29udGV4dChjdHgsIHtcbiAgICAgICAgICAgICAgICBjb2RlOiBab2RJc3N1ZUNvZGUuaW52YWxpZF91bmlvbl9kaXNjcmltaW5hdG9yLFxuICAgICAgICAgICAgICAgIG9wdGlvbnM6IEFycmF5LmZyb20odGhpcy5vcHRpb25zTWFwLmtleXMoKSksXG4gICAgICAgICAgICAgICAgcGF0aDogW2Rpc2NyaW1pbmF0b3JdLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXR1cm4gSU5WQUxJRDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoY3R4LmNvbW1vbi5hc3luYykge1xuICAgICAgICAgICAgcmV0dXJuIG9wdGlvbi5fcGFyc2VBc3luYyh7XG4gICAgICAgICAgICAgICAgZGF0YTogY3R4LmRhdGEsXG4gICAgICAgICAgICAgICAgcGF0aDogY3R4LnBhdGgsXG4gICAgICAgICAgICAgICAgcGFyZW50OiBjdHgsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBvcHRpb24uX3BhcnNlU3luYyh7XG4gICAgICAgICAgICAgICAgZGF0YTogY3R4LmRhdGEsXG4gICAgICAgICAgICAgICAgcGF0aDogY3R4LnBhdGgsXG4gICAgICAgICAgICAgICAgcGFyZW50OiBjdHgsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBnZXQgZGlzY3JpbWluYXRvcigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2RlZi5kaXNjcmltaW5hdG9yO1xuICAgIH1cbiAgICBnZXQgb3B0aW9ucygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2RlZi5vcHRpb25zO1xuICAgIH1cbiAgICBnZXQgb3B0aW9uc01hcCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2RlZi5vcHRpb25zTWFwO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBUaGUgY29uc3RydWN0b3Igb2YgdGhlIGRpc2NyaW1pbmF0ZWQgdW5pb24gc2NoZW1hLiBJdHMgYmVoYXZpb3VyIGlzIHZlcnkgc2ltaWxhciB0byB0aGF0IG9mIHRoZSBub3JtYWwgei51bmlvbigpIGNvbnN0cnVjdG9yLlxuICAgICAqIEhvd2V2ZXIsIGl0IG9ubHkgYWxsb3dzIGEgdW5pb24gb2Ygb2JqZWN0cywgYWxsIG9mIHdoaWNoIG5lZWQgdG8gc2hhcmUgYSBkaXNjcmltaW5hdG9yIHByb3BlcnR5LiBUaGlzIHByb3BlcnR5IG11c3RcbiAgICAgKiBoYXZlIGEgZGlmZmVyZW50IHZhbHVlIGZvciBlYWNoIG9iamVjdCBpbiB0aGUgdW5pb24uXG4gICAgICogQHBhcmFtIGRpc2NyaW1pbmF0b3IgdGhlIG5hbWUgb2YgdGhlIGRpc2NyaW1pbmF0b3IgcHJvcGVydHlcbiAgICAgKiBAcGFyYW0gdHlwZXMgYW4gYXJyYXkgb2Ygb2JqZWN0IHNjaGVtYXNcbiAgICAgKiBAcGFyYW0gcGFyYW1zXG4gICAgICovXG4gICAgc3RhdGljIGNyZWF0ZShkaXNjcmltaW5hdG9yLCBvcHRpb25zLCBwYXJhbXMpIHtcbiAgICAgICAgLy8gR2V0IGFsbCB0aGUgdmFsaWQgZGlzY3JpbWluYXRvciB2YWx1ZXNcbiAgICAgICAgY29uc3Qgb3B0aW9uc01hcCA9IG5ldyBNYXAoKTtcbiAgICAgICAgLy8gdHJ5IHtcbiAgICAgICAgZm9yIChjb25zdCB0eXBlIG9mIG9wdGlvbnMpIHtcbiAgICAgICAgICAgIGNvbnN0IGRpc2NyaW1pbmF0b3JWYWx1ZXMgPSBnZXREaXNjcmltaW5hdG9yKHR5cGUuc2hhcGVbZGlzY3JpbWluYXRvcl0pO1xuICAgICAgICAgICAgaWYgKCFkaXNjcmltaW5hdG9yVmFsdWVzLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgQSBkaXNjcmltaW5hdG9yIHZhbHVlIGZvciBrZXkgXFxgJHtkaXNjcmltaW5hdG9yfVxcYCBjb3VsZCBub3QgYmUgZXh0cmFjdGVkIGZyb20gYWxsIHNjaGVtYSBvcHRpb25zYCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBmb3IgKGNvbnN0IHZhbHVlIG9mIGRpc2NyaW1pbmF0b3JWYWx1ZXMpIHtcbiAgICAgICAgICAgICAgICBpZiAob3B0aW9uc01hcC5oYXModmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgRGlzY3JpbWluYXRvciBwcm9wZXJ0eSAke1N0cmluZyhkaXNjcmltaW5hdG9yKX0gaGFzIGR1cGxpY2F0ZSB2YWx1ZSAke1N0cmluZyh2YWx1ZSl9YCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIG9wdGlvbnNNYXAuc2V0KHZhbHVlLCB0eXBlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbmV3IFpvZERpc2NyaW1pbmF0ZWRVbmlvbih7XG4gICAgICAgICAgICB0eXBlTmFtZTogWm9kRmlyc3RQYXJ0eVR5cGVLaW5kLlpvZERpc2NyaW1pbmF0ZWRVbmlvbixcbiAgICAgICAgICAgIGRpc2NyaW1pbmF0b3IsXG4gICAgICAgICAgICBvcHRpb25zLFxuICAgICAgICAgICAgb3B0aW9uc01hcCxcbiAgICAgICAgICAgIC4uLnByb2Nlc3NDcmVhdGVQYXJhbXMocGFyYW1zKSxcbiAgICAgICAgfSk7XG4gICAgfVxufVxuZnVuY3Rpb24gbWVyZ2VWYWx1ZXMoYSwgYikge1xuICAgIGNvbnN0IGFUeXBlID0gZ2V0UGFyc2VkVHlwZShhKTtcbiAgICBjb25zdCBiVHlwZSA9IGdldFBhcnNlZFR5cGUoYik7XG4gICAgaWYgKGEgPT09IGIpIHtcbiAgICAgICAgcmV0dXJuIHsgdmFsaWQ6IHRydWUsIGRhdGE6IGEgfTtcbiAgICB9XG4gICAgZWxzZSBpZiAoYVR5cGUgPT09IFpvZFBhcnNlZFR5cGUub2JqZWN0ICYmIGJUeXBlID09PSBab2RQYXJzZWRUeXBlLm9iamVjdCkge1xuICAgICAgICBjb25zdCBiS2V5cyA9IHV0aWwub2JqZWN0S2V5cyhiKTtcbiAgICAgICAgY29uc3Qgc2hhcmVkS2V5cyA9IHV0aWxcbiAgICAgICAgICAgIC5vYmplY3RLZXlzKGEpXG4gICAgICAgICAgICAuZmlsdGVyKChrZXkpID0+IGJLZXlzLmluZGV4T2Yoa2V5KSAhPT0gLTEpO1xuICAgICAgICBjb25zdCBuZXdPYmogPSB7IC4uLmEsIC4uLmIgfTtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgb2Ygc2hhcmVkS2V5cykge1xuICAgICAgICAgICAgY29uc3Qgc2hhcmVkVmFsdWUgPSBtZXJnZVZhbHVlcyhhW2tleV0sIGJba2V5XSk7XG4gICAgICAgICAgICBpZiAoIXNoYXJlZFZhbHVlLnZhbGlkKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgdmFsaWQ6IGZhbHNlIH07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBuZXdPYmpba2V5XSA9IHNoYXJlZFZhbHVlLmRhdGE7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHsgdmFsaWQ6IHRydWUsIGRhdGE6IG5ld09iaiB9O1xuICAgIH1cbiAgICBlbHNlIGlmIChhVHlwZSA9PT0gWm9kUGFyc2VkVHlwZS5hcnJheSAmJiBiVHlwZSA9PT0gWm9kUGFyc2VkVHlwZS5hcnJheSkge1xuICAgICAgICBpZiAoYS5sZW5ndGggIT09IGIubGVuZ3RoKSB7XG4gICAgICAgICAgICByZXR1cm4geyB2YWxpZDogZmFsc2UgfTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBuZXdBcnJheSA9IFtdO1xuICAgICAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgYS5sZW5ndGg7IGluZGV4KyspIHtcbiAgICAgICAgICAgIGNvbnN0IGl0ZW1BID0gYVtpbmRleF07XG4gICAgICAgICAgICBjb25zdCBpdGVtQiA9IGJbaW5kZXhdO1xuICAgICAgICAgICAgY29uc3Qgc2hhcmVkVmFsdWUgPSBtZXJnZVZhbHVlcyhpdGVtQSwgaXRlbUIpO1xuICAgICAgICAgICAgaWYgKCFzaGFyZWRWYWx1ZS52YWxpZCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB7IHZhbGlkOiBmYWxzZSB9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbmV3QXJyYXkucHVzaChzaGFyZWRWYWx1ZS5kYXRhKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4geyB2YWxpZDogdHJ1ZSwgZGF0YTogbmV3QXJyYXkgfTtcbiAgICB9XG4gICAgZWxzZSBpZiAoYVR5cGUgPT09IFpvZFBhcnNlZFR5cGUuZGF0ZSAmJlxuICAgICAgICBiVHlwZSA9PT0gWm9kUGFyc2VkVHlwZS5kYXRlICYmXG4gICAgICAgICthID09PSArYikge1xuICAgICAgICByZXR1cm4geyB2YWxpZDogdHJ1ZSwgZGF0YTogYSB9O1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHsgdmFsaWQ6IGZhbHNlIH07XG4gICAgfVxufVxuY2xhc3MgWm9kSW50ZXJzZWN0aW9uIGV4dGVuZHMgWm9kVHlwZSB7XG4gICAgX3BhcnNlKGlucHV0KSB7XG4gICAgICAgIGNvbnN0IHsgc3RhdHVzLCBjdHggfSA9IHRoaXMuX3Byb2Nlc3NJbnB1dFBhcmFtcyhpbnB1dCk7XG4gICAgICAgIGNvbnN0IGhhbmRsZVBhcnNlZCA9IChwYXJzZWRMZWZ0LCBwYXJzZWRSaWdodCkgPT4ge1xuICAgICAgICAgICAgaWYgKGlzQWJvcnRlZChwYXJzZWRMZWZ0KSB8fCBpc0Fib3J0ZWQocGFyc2VkUmlnaHQpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIElOVkFMSUQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBtZXJnZWQgPSBtZXJnZVZhbHVlcyhwYXJzZWRMZWZ0LnZhbHVlLCBwYXJzZWRSaWdodC52YWx1ZSk7XG4gICAgICAgICAgICBpZiAoIW1lcmdlZC52YWxpZCkge1xuICAgICAgICAgICAgICAgIGFkZElzc3VlVG9Db250ZXh0KGN0eCwge1xuICAgICAgICAgICAgICAgICAgICBjb2RlOiBab2RJc3N1ZUNvZGUuaW52YWxpZF9pbnRlcnNlY3Rpb25fdHlwZXMsXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIElOVkFMSUQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoaXNEaXJ0eShwYXJzZWRMZWZ0KSB8fCBpc0RpcnR5KHBhcnNlZFJpZ2h0KSkge1xuICAgICAgICAgICAgICAgIHN0YXR1cy5kaXJ0eSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHsgc3RhdHVzOiBzdGF0dXMudmFsdWUsIHZhbHVlOiBtZXJnZWQuZGF0YSB9O1xuICAgICAgICB9O1xuICAgICAgICBpZiAoY3R4LmNvbW1vbi5hc3luYykge1xuICAgICAgICAgICAgcmV0dXJuIFByb21pc2UuYWxsKFtcbiAgICAgICAgICAgICAgICB0aGlzLl9kZWYubGVmdC5fcGFyc2VBc3luYyh7XG4gICAgICAgICAgICAgICAgICAgIGRhdGE6IGN0eC5kYXRhLFxuICAgICAgICAgICAgICAgICAgICBwYXRoOiBjdHgucGF0aCxcbiAgICAgICAgICAgICAgICAgICAgcGFyZW50OiBjdHgsXG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgdGhpcy5fZGVmLnJpZ2h0Ll9wYXJzZUFzeW5jKHtcbiAgICAgICAgICAgICAgICAgICAgZGF0YTogY3R4LmRhdGEsXG4gICAgICAgICAgICAgICAgICAgIHBhdGg6IGN0eC5wYXRoLFxuICAgICAgICAgICAgICAgICAgICBwYXJlbnQ6IGN0eCxcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIF0pLnRoZW4oKFtsZWZ0LCByaWdodF0pID0+IGhhbmRsZVBhcnNlZChsZWZ0LCByaWdodCkpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIGhhbmRsZVBhcnNlZCh0aGlzLl9kZWYubGVmdC5fcGFyc2VTeW5jKHtcbiAgICAgICAgICAgICAgICBkYXRhOiBjdHguZGF0YSxcbiAgICAgICAgICAgICAgICBwYXRoOiBjdHgucGF0aCxcbiAgICAgICAgICAgICAgICBwYXJlbnQ6IGN0eCxcbiAgICAgICAgICAgIH0pLCB0aGlzLl9kZWYucmlnaHQuX3BhcnNlU3luYyh7XG4gICAgICAgICAgICAgICAgZGF0YTogY3R4LmRhdGEsXG4gICAgICAgICAgICAgICAgcGF0aDogY3R4LnBhdGgsXG4gICAgICAgICAgICAgICAgcGFyZW50OiBjdHgsXG4gICAgICAgICAgICB9KSk7XG4gICAgICAgIH1cbiAgICB9XG59XG5ab2RJbnRlcnNlY3Rpb24uY3JlYXRlID0gKGxlZnQsIHJpZ2h0LCBwYXJhbXMpID0+IHtcbiAgICByZXR1cm4gbmV3IFpvZEludGVyc2VjdGlvbih7XG4gICAgICAgIGxlZnQ6IGxlZnQsXG4gICAgICAgIHJpZ2h0OiByaWdodCxcbiAgICAgICAgdHlwZU5hbWU6IFpvZEZpcnN0UGFydHlUeXBlS2luZC5ab2RJbnRlcnNlY3Rpb24sXG4gICAgICAgIC4uLnByb2Nlc3NDcmVhdGVQYXJhbXMocGFyYW1zKSxcbiAgICB9KTtcbn07XG5jbGFzcyBab2RUdXBsZSBleHRlbmRzIFpvZFR5cGUge1xuICAgIF9wYXJzZShpbnB1dCkge1xuICAgICAgICBjb25zdCB7IHN0YXR1cywgY3R4IH0gPSB0aGlzLl9wcm9jZXNzSW5wdXRQYXJhbXMoaW5wdXQpO1xuICAgICAgICBpZiAoY3R4LnBhcnNlZFR5cGUgIT09IFpvZFBhcnNlZFR5cGUuYXJyYXkpIHtcbiAgICAgICAgICAgIGFkZElzc3VlVG9Db250ZXh0KGN0eCwge1xuICAgICAgICAgICAgICAgIGNvZGU6IFpvZElzc3VlQ29kZS5pbnZhbGlkX3R5cGUsXG4gICAgICAgICAgICAgICAgZXhwZWN0ZWQ6IFpvZFBhcnNlZFR5cGUuYXJyYXksXG4gICAgICAgICAgICAgICAgcmVjZWl2ZWQ6IGN0eC5wYXJzZWRUeXBlLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXR1cm4gSU5WQUxJRDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoY3R4LmRhdGEubGVuZ3RoIDwgdGhpcy5fZGVmLml0ZW1zLmxlbmd0aCkge1xuICAgICAgICAgICAgYWRkSXNzdWVUb0NvbnRleHQoY3R4LCB7XG4gICAgICAgICAgICAgICAgY29kZTogWm9kSXNzdWVDb2RlLnRvb19zbWFsbCxcbiAgICAgICAgICAgICAgICBtaW5pbXVtOiB0aGlzLl9kZWYuaXRlbXMubGVuZ3RoLFxuICAgICAgICAgICAgICAgIGluY2x1c2l2ZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICBleGFjdDogZmFsc2UsXG4gICAgICAgICAgICAgICAgdHlwZTogXCJhcnJheVwiLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXR1cm4gSU5WQUxJRDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCByZXN0ID0gdGhpcy5fZGVmLnJlc3Q7XG4gICAgICAgIGlmICghcmVzdCAmJiBjdHguZGF0YS5sZW5ndGggPiB0aGlzLl9kZWYuaXRlbXMubGVuZ3RoKSB7XG4gICAgICAgICAgICBhZGRJc3N1ZVRvQ29udGV4dChjdHgsIHtcbiAgICAgICAgICAgICAgICBjb2RlOiBab2RJc3N1ZUNvZGUudG9vX2JpZyxcbiAgICAgICAgICAgICAgICBtYXhpbXVtOiB0aGlzLl9kZWYuaXRlbXMubGVuZ3RoLFxuICAgICAgICAgICAgICAgIGluY2x1c2l2ZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICBleGFjdDogZmFsc2UsXG4gICAgICAgICAgICAgICAgdHlwZTogXCJhcnJheVwiLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBzdGF0dXMuZGlydHkoKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBpdGVtcyA9IFsuLi5jdHguZGF0YV1cbiAgICAgICAgICAgIC5tYXAoKGl0ZW0sIGl0ZW1JbmRleCkgPT4ge1xuICAgICAgICAgICAgY29uc3Qgc2NoZW1hID0gdGhpcy5fZGVmLml0ZW1zW2l0ZW1JbmRleF0gfHwgdGhpcy5fZGVmLnJlc3Q7XG4gICAgICAgICAgICBpZiAoIXNjaGVtYSlcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgIHJldHVybiBzY2hlbWEuX3BhcnNlKG5ldyBQYXJzZUlucHV0TGF6eVBhdGgoY3R4LCBpdGVtLCBjdHgucGF0aCwgaXRlbUluZGV4KSk7XG4gICAgICAgIH0pXG4gICAgICAgICAgICAuZmlsdGVyKCh4KSA9PiAhIXgpOyAvLyBmaWx0ZXIgbnVsbHNcbiAgICAgICAgaWYgKGN0eC5jb21tb24uYXN5bmMpIHtcbiAgICAgICAgICAgIHJldHVybiBQcm9taXNlLmFsbChpdGVtcykudGhlbigocmVzdWx0cykgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiBQYXJzZVN0YXR1cy5tZXJnZUFycmF5KHN0YXR1cywgcmVzdWx0cyk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBQYXJzZVN0YXR1cy5tZXJnZUFycmF5KHN0YXR1cywgaXRlbXMpO1xuICAgICAgICB9XG4gICAgfVxuICAgIGdldCBpdGVtcygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2RlZi5pdGVtcztcbiAgICB9XG4gICAgcmVzdChyZXN0KSB7XG4gICAgICAgIHJldHVybiBuZXcgWm9kVHVwbGUoe1xuICAgICAgICAgICAgLi4udGhpcy5fZGVmLFxuICAgICAgICAgICAgcmVzdCxcbiAgICAgICAgfSk7XG4gICAgfVxufVxuWm9kVHVwbGUuY3JlYXRlID0gKHNjaGVtYXMsIHBhcmFtcykgPT4ge1xuICAgIGlmICghQXJyYXkuaXNBcnJheShzY2hlbWFzKSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJZb3UgbXVzdCBwYXNzIGFuIGFycmF5IG9mIHNjaGVtYXMgdG8gei50dXBsZShbIC4uLiBdKVwiKTtcbiAgICB9XG4gICAgcmV0dXJuIG5ldyBab2RUdXBsZSh7XG4gICAgICAgIGl0ZW1zOiBzY2hlbWFzLFxuICAgICAgICB0eXBlTmFtZTogWm9kRmlyc3RQYXJ0eVR5cGVLaW5kLlpvZFR1cGxlLFxuICAgICAgICByZXN0OiBudWxsLFxuICAgICAgICAuLi5wcm9jZXNzQ3JlYXRlUGFyYW1zKHBhcmFtcyksXG4gICAgfSk7XG59O1xuY2xhc3MgWm9kUmVjb3JkIGV4dGVuZHMgWm9kVHlwZSB7XG4gICAgZ2V0IGtleVNjaGVtYSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2RlZi5rZXlUeXBlO1xuICAgIH1cbiAgICBnZXQgdmFsdWVTY2hlbWEoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kZWYudmFsdWVUeXBlO1xuICAgIH1cbiAgICBfcGFyc2UoaW5wdXQpIHtcbiAgICAgICAgY29uc3QgeyBzdGF0dXMsIGN0eCB9ID0gdGhpcy5fcHJvY2Vzc0lucHV0UGFyYW1zKGlucHV0KTtcbiAgICAgICAgaWYgKGN0eC5wYXJzZWRUeXBlICE9PSBab2RQYXJzZWRUeXBlLm9iamVjdCkge1xuICAgICAgICAgICAgYWRkSXNzdWVUb0NvbnRleHQoY3R4LCB7XG4gICAgICAgICAgICAgICAgY29kZTogWm9kSXNzdWVDb2RlLmludmFsaWRfdHlwZSxcbiAgICAgICAgICAgICAgICBleHBlY3RlZDogWm9kUGFyc2VkVHlwZS5vYmplY3QsXG4gICAgICAgICAgICAgICAgcmVjZWl2ZWQ6IGN0eC5wYXJzZWRUeXBlLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXR1cm4gSU5WQUxJRDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBwYWlycyA9IFtdO1xuICAgICAgICBjb25zdCBrZXlUeXBlID0gdGhpcy5fZGVmLmtleVR5cGU7XG4gICAgICAgIGNvbnN0IHZhbHVlVHlwZSA9IHRoaXMuX2RlZi52YWx1ZVR5cGU7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGN0eC5kYXRhKSB7XG4gICAgICAgICAgICBwYWlycy5wdXNoKHtcbiAgICAgICAgICAgICAgICBrZXk6IGtleVR5cGUuX3BhcnNlKG5ldyBQYXJzZUlucHV0TGF6eVBhdGgoY3R4LCBrZXksIGN0eC5wYXRoLCBrZXkpKSxcbiAgICAgICAgICAgICAgICB2YWx1ZTogdmFsdWVUeXBlLl9wYXJzZShuZXcgUGFyc2VJbnB1dExhenlQYXRoKGN0eCwgY3R4LmRhdGFba2V5XSwgY3R4LnBhdGgsIGtleSkpLFxuICAgICAgICAgICAgICAgIGFsd2F5c1NldDoga2V5IGluIGN0eC5kYXRhLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGN0eC5jb21tb24uYXN5bmMpIHtcbiAgICAgICAgICAgIHJldHVybiBQYXJzZVN0YXR1cy5tZXJnZU9iamVjdEFzeW5jKHN0YXR1cywgcGFpcnMpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIFBhcnNlU3RhdHVzLm1lcmdlT2JqZWN0U3luYyhzdGF0dXMsIHBhaXJzKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBnZXQgZWxlbWVudCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2RlZi52YWx1ZVR5cGU7XG4gICAgfVxuICAgIHN0YXRpYyBjcmVhdGUoZmlyc3QsIHNlY29uZCwgdGhpcmQpIHtcbiAgICAgICAgaWYgKHNlY29uZCBpbnN0YW5jZW9mIFpvZFR5cGUpIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgWm9kUmVjb3JkKHtcbiAgICAgICAgICAgICAgICBrZXlUeXBlOiBmaXJzdCxcbiAgICAgICAgICAgICAgICB2YWx1ZVR5cGU6IHNlY29uZCxcbiAgICAgICAgICAgICAgICB0eXBlTmFtZTogWm9kRmlyc3RQYXJ0eVR5cGVLaW5kLlpvZFJlY29yZCxcbiAgICAgICAgICAgICAgICAuLi5wcm9jZXNzQ3JlYXRlUGFyYW1zKHRoaXJkKSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBuZXcgWm9kUmVjb3JkKHtcbiAgICAgICAgICAgIGtleVR5cGU6IFpvZFN0cmluZy5jcmVhdGUoKSxcbiAgICAgICAgICAgIHZhbHVlVHlwZTogZmlyc3QsXG4gICAgICAgICAgICB0eXBlTmFtZTogWm9kRmlyc3RQYXJ0eVR5cGVLaW5kLlpvZFJlY29yZCxcbiAgICAgICAgICAgIC4uLnByb2Nlc3NDcmVhdGVQYXJhbXMoc2Vjb25kKSxcbiAgICAgICAgfSk7XG4gICAgfVxufVxuY2xhc3MgWm9kTWFwIGV4dGVuZHMgWm9kVHlwZSB7XG4gICAgZ2V0IGtleVNjaGVtYSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2RlZi5rZXlUeXBlO1xuICAgIH1cbiAgICBnZXQgdmFsdWVTY2hlbWEoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kZWYudmFsdWVUeXBlO1xuICAgIH1cbiAgICBfcGFyc2UoaW5wdXQpIHtcbiAgICAgICAgY29uc3QgeyBzdGF0dXMsIGN0eCB9ID0gdGhpcy5fcHJvY2Vzc0lucHV0UGFyYW1zKGlucHV0KTtcbiAgICAgICAgaWYgKGN0eC5wYXJzZWRUeXBlICE9PSBab2RQYXJzZWRUeXBlLm1hcCkge1xuICAgICAgICAgICAgYWRkSXNzdWVUb0NvbnRleHQoY3R4LCB7XG4gICAgICAgICAgICAgICAgY29kZTogWm9kSXNzdWVDb2RlLmludmFsaWRfdHlwZSxcbiAgICAgICAgICAgICAgICBleHBlY3RlZDogWm9kUGFyc2VkVHlwZS5tYXAsXG4gICAgICAgICAgICAgICAgcmVjZWl2ZWQ6IGN0eC5wYXJzZWRUeXBlLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXR1cm4gSU5WQUxJRDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBrZXlUeXBlID0gdGhpcy5fZGVmLmtleVR5cGU7XG4gICAgICAgIGNvbnN0IHZhbHVlVHlwZSA9IHRoaXMuX2RlZi52YWx1ZVR5cGU7XG4gICAgICAgIGNvbnN0IHBhaXJzID0gWy4uLmN0eC5kYXRhLmVudHJpZXMoKV0ubWFwKChba2V5LCB2YWx1ZV0sIGluZGV4KSA9PiB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIGtleToga2V5VHlwZS5fcGFyc2UobmV3IFBhcnNlSW5wdXRMYXp5UGF0aChjdHgsIGtleSwgY3R4LnBhdGgsIFtpbmRleCwgXCJrZXlcIl0pKSxcbiAgICAgICAgICAgICAgICB2YWx1ZTogdmFsdWVUeXBlLl9wYXJzZShuZXcgUGFyc2VJbnB1dExhenlQYXRoKGN0eCwgdmFsdWUsIGN0eC5wYXRoLCBbaW5kZXgsIFwidmFsdWVcIl0pKSxcbiAgICAgICAgICAgIH07XG4gICAgICAgIH0pO1xuICAgICAgICBpZiAoY3R4LmNvbW1vbi5hc3luYykge1xuICAgICAgICAgICAgY29uc3QgZmluYWxNYXAgPSBuZXcgTWFwKCk7XG4gICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCkudGhlbihhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBwYWlyIG9mIHBhaXJzKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGtleSA9IGF3YWl0IHBhaXIua2V5O1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZSA9IGF3YWl0IHBhaXIudmFsdWU7XG4gICAgICAgICAgICAgICAgICAgIGlmIChrZXkuc3RhdHVzID09PSBcImFib3J0ZWRcIiB8fCB2YWx1ZS5zdGF0dXMgPT09IFwiYWJvcnRlZFwiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gSU5WQUxJRDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpZiAoa2V5LnN0YXR1cyA9PT0gXCJkaXJ0eVwiIHx8IHZhbHVlLnN0YXR1cyA9PT0gXCJkaXJ0eVwiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXMuZGlydHkoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBmaW5hbE1hcC5zZXQoa2V5LnZhbHVlLCB2YWx1ZS52YWx1ZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiB7IHN0YXR1czogc3RhdHVzLnZhbHVlLCB2YWx1ZTogZmluYWxNYXAgfTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgZmluYWxNYXAgPSBuZXcgTWFwKCk7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IHBhaXIgb2YgcGFpcnMpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBrZXkgPSBwYWlyLmtleTtcbiAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZSA9IHBhaXIudmFsdWU7XG4gICAgICAgICAgICAgICAgaWYgKGtleS5zdGF0dXMgPT09IFwiYWJvcnRlZFwiIHx8IHZhbHVlLnN0YXR1cyA9PT0gXCJhYm9ydGVkXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIElOVkFMSUQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChrZXkuc3RhdHVzID09PSBcImRpcnR5XCIgfHwgdmFsdWUuc3RhdHVzID09PSBcImRpcnR5XCIpIHtcbiAgICAgICAgICAgICAgICAgICAgc3RhdHVzLmRpcnR5KCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGZpbmFsTWFwLnNldChrZXkudmFsdWUsIHZhbHVlLnZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB7IHN0YXR1czogc3RhdHVzLnZhbHVlLCB2YWx1ZTogZmluYWxNYXAgfTtcbiAgICAgICAgfVxuICAgIH1cbn1cblpvZE1hcC5jcmVhdGUgPSAoa2V5VHlwZSwgdmFsdWVUeXBlLCBwYXJhbXMpID0+IHtcbiAgICByZXR1cm4gbmV3IFpvZE1hcCh7XG4gICAgICAgIHZhbHVlVHlwZSxcbiAgICAgICAga2V5VHlwZSxcbiAgICAgICAgdHlwZU5hbWU6IFpvZEZpcnN0UGFydHlUeXBlS2luZC5ab2RNYXAsXG4gICAgICAgIC4uLnByb2Nlc3NDcmVhdGVQYXJhbXMocGFyYW1zKSxcbiAgICB9KTtcbn07XG5jbGFzcyBab2RTZXQgZXh0ZW5kcyBab2RUeXBlIHtcbiAgICBfcGFyc2UoaW5wdXQpIHtcbiAgICAgICAgY29uc3QgeyBzdGF0dXMsIGN0eCB9ID0gdGhpcy5fcHJvY2Vzc0lucHV0UGFyYW1zKGlucHV0KTtcbiAgICAgICAgaWYgKGN0eC5wYXJzZWRUeXBlICE9PSBab2RQYXJzZWRUeXBlLnNldCkge1xuICAgICAgICAgICAgYWRkSXNzdWVUb0NvbnRleHQoY3R4LCB7XG4gICAgICAgICAgICAgICAgY29kZTogWm9kSXNzdWVDb2RlLmludmFsaWRfdHlwZSxcbiAgICAgICAgICAgICAgICBleHBlY3RlZDogWm9kUGFyc2VkVHlwZS5zZXQsXG4gICAgICAgICAgICAgICAgcmVjZWl2ZWQ6IGN0eC5wYXJzZWRUeXBlLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXR1cm4gSU5WQUxJRDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBkZWYgPSB0aGlzLl9kZWY7XG4gICAgICAgIGlmIChkZWYubWluU2l6ZSAhPT0gbnVsbCkge1xuICAgICAgICAgICAgaWYgKGN0eC5kYXRhLnNpemUgPCBkZWYubWluU2l6ZS52YWx1ZSkge1xuICAgICAgICAgICAgICAgIGFkZElzc3VlVG9Db250ZXh0KGN0eCwge1xuICAgICAgICAgICAgICAgICAgICBjb2RlOiBab2RJc3N1ZUNvZGUudG9vX3NtYWxsLFxuICAgICAgICAgICAgICAgICAgICBtaW5pbXVtOiBkZWYubWluU2l6ZS52YWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJzZXRcIixcbiAgICAgICAgICAgICAgICAgICAgaW5jbHVzaXZlOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICBleGFjdDogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6IGRlZi5taW5TaXplLm1lc3NhZ2UsXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgc3RhdHVzLmRpcnR5KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRlZi5tYXhTaXplICE9PSBudWxsKSB7XG4gICAgICAgICAgICBpZiAoY3R4LmRhdGEuc2l6ZSA+IGRlZi5tYXhTaXplLnZhbHVlKSB7XG4gICAgICAgICAgICAgICAgYWRkSXNzdWVUb0NvbnRleHQoY3R4LCB7XG4gICAgICAgICAgICAgICAgICAgIGNvZGU6IFpvZElzc3VlQ29kZS50b29fYmlnLFxuICAgICAgICAgICAgICAgICAgICBtYXhpbXVtOiBkZWYubWF4U2l6ZS52YWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJzZXRcIixcbiAgICAgICAgICAgICAgICAgICAgaW5jbHVzaXZlOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICBleGFjdDogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6IGRlZi5tYXhTaXplLm1lc3NhZ2UsXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgc3RhdHVzLmRpcnR5KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgdmFsdWVUeXBlID0gdGhpcy5fZGVmLnZhbHVlVHlwZTtcbiAgICAgICAgZnVuY3Rpb24gZmluYWxpemVTZXQoZWxlbWVudHMpIHtcbiAgICAgICAgICAgIGNvbnN0IHBhcnNlZFNldCA9IG5ldyBTZXQoKTtcbiAgICAgICAgICAgIGZvciAoY29uc3QgZWxlbWVudCBvZiBlbGVtZW50cykge1xuICAgICAgICAgICAgICAgIGlmIChlbGVtZW50LnN0YXR1cyA9PT0gXCJhYm9ydGVkXCIpXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBJTlZBTElEO1xuICAgICAgICAgICAgICAgIGlmIChlbGVtZW50LnN0YXR1cyA9PT0gXCJkaXJ0eVwiKVxuICAgICAgICAgICAgICAgICAgICBzdGF0dXMuZGlydHkoKTtcbiAgICAgICAgICAgICAgICBwYXJzZWRTZXQuYWRkKGVsZW1lbnQudmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHsgc3RhdHVzOiBzdGF0dXMudmFsdWUsIHZhbHVlOiBwYXJzZWRTZXQgfTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBlbGVtZW50cyA9IFsuLi5jdHguZGF0YS52YWx1ZXMoKV0ubWFwKChpdGVtLCBpKSA9PiB2YWx1ZVR5cGUuX3BhcnNlKG5ldyBQYXJzZUlucHV0TGF6eVBhdGgoY3R4LCBpdGVtLCBjdHgucGF0aCwgaSkpKTtcbiAgICAgICAgaWYgKGN0eC5jb21tb24uYXN5bmMpIHtcbiAgICAgICAgICAgIHJldHVybiBQcm9taXNlLmFsbChlbGVtZW50cykudGhlbigoZWxlbWVudHMpID0+IGZpbmFsaXplU2V0KGVsZW1lbnRzKSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gZmluYWxpemVTZXQoZWxlbWVudHMpO1xuICAgICAgICB9XG4gICAgfVxuICAgIG1pbihtaW5TaXplLCBtZXNzYWdlKSB7XG4gICAgICAgIHJldHVybiBuZXcgWm9kU2V0KHtcbiAgICAgICAgICAgIC4uLnRoaXMuX2RlZixcbiAgICAgICAgICAgIG1pblNpemU6IHsgdmFsdWU6IG1pblNpemUsIG1lc3NhZ2U6IGVycm9yVXRpbC50b1N0cmluZyhtZXNzYWdlKSB9LFxuICAgICAgICB9KTtcbiAgICB9XG4gICAgbWF4KG1heFNpemUsIG1lc3NhZ2UpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBab2RTZXQoe1xuICAgICAgICAgICAgLi4udGhpcy5fZGVmLFxuICAgICAgICAgICAgbWF4U2l6ZTogeyB2YWx1ZTogbWF4U2l6ZSwgbWVzc2FnZTogZXJyb3JVdGlsLnRvU3RyaW5nKG1lc3NhZ2UpIH0sXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBzaXplKHNpemUsIG1lc3NhZ2UpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubWluKHNpemUsIG1lc3NhZ2UpLm1heChzaXplLCBtZXNzYWdlKTtcbiAgICB9XG4gICAgbm9uZW1wdHkobWVzc2FnZSkge1xuICAgICAgICByZXR1cm4gdGhpcy5taW4oMSwgbWVzc2FnZSk7XG4gICAgfVxufVxuWm9kU2V0LmNyZWF0ZSA9ICh2YWx1ZVR5cGUsIHBhcmFtcykgPT4ge1xuICAgIHJldHVybiBuZXcgWm9kU2V0KHtcbiAgICAgICAgdmFsdWVUeXBlLFxuICAgICAgICBtaW5TaXplOiBudWxsLFxuICAgICAgICBtYXhTaXplOiBudWxsLFxuICAgICAgICB0eXBlTmFtZTogWm9kRmlyc3RQYXJ0eVR5cGVLaW5kLlpvZFNldCxcbiAgICAgICAgLi4ucHJvY2Vzc0NyZWF0ZVBhcmFtcyhwYXJhbXMpLFxuICAgIH0pO1xufTtcbmNsYXNzIFpvZEZ1bmN0aW9uIGV4dGVuZHMgWm9kVHlwZSB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKC4uLmFyZ3VtZW50cyk7XG4gICAgICAgIHRoaXMudmFsaWRhdGUgPSB0aGlzLmltcGxlbWVudDtcbiAgICB9XG4gICAgX3BhcnNlKGlucHV0KSB7XG4gICAgICAgIGNvbnN0IHsgY3R4IH0gPSB0aGlzLl9wcm9jZXNzSW5wdXRQYXJhbXMoaW5wdXQpO1xuICAgICAgICBpZiAoY3R4LnBhcnNlZFR5cGUgIT09IFpvZFBhcnNlZFR5cGUuZnVuY3Rpb24pIHtcbiAgICAgICAgICAgIGFkZElzc3VlVG9Db250ZXh0KGN0eCwge1xuICAgICAgICAgICAgICAgIGNvZGU6IFpvZElzc3VlQ29kZS5pbnZhbGlkX3R5cGUsXG4gICAgICAgICAgICAgICAgZXhwZWN0ZWQ6IFpvZFBhcnNlZFR5cGUuZnVuY3Rpb24sXG4gICAgICAgICAgICAgICAgcmVjZWl2ZWQ6IGN0eC5wYXJzZWRUeXBlLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXR1cm4gSU5WQUxJRDtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBtYWtlQXJnc0lzc3VlKGFyZ3MsIGVycm9yKSB7XG4gICAgICAgICAgICByZXR1cm4gbWFrZUlzc3VlKHtcbiAgICAgICAgICAgICAgICBkYXRhOiBhcmdzLFxuICAgICAgICAgICAgICAgIHBhdGg6IGN0eC5wYXRoLFxuICAgICAgICAgICAgICAgIGVycm9yTWFwczogW1xuICAgICAgICAgICAgICAgICAgICBjdHguY29tbW9uLmNvbnRleHR1YWxFcnJvck1hcCxcbiAgICAgICAgICAgICAgICAgICAgY3R4LnNjaGVtYUVycm9yTWFwLFxuICAgICAgICAgICAgICAgICAgICBnZXRFcnJvck1hcCgpLFxuICAgICAgICAgICAgICAgICAgICBlcnJvck1hcCxcbiAgICAgICAgICAgICAgICBdLmZpbHRlcigoeCkgPT4gISF4KSxcbiAgICAgICAgICAgICAgICBpc3N1ZURhdGE6IHtcbiAgICAgICAgICAgICAgICAgICAgY29kZTogWm9kSXNzdWVDb2RlLmludmFsaWRfYXJndW1lbnRzLFxuICAgICAgICAgICAgICAgICAgICBhcmd1bWVudHNFcnJvcjogZXJyb3IsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIG1ha2VSZXR1cm5zSXNzdWUocmV0dXJucywgZXJyb3IpIHtcbiAgICAgICAgICAgIHJldHVybiBtYWtlSXNzdWUoe1xuICAgICAgICAgICAgICAgIGRhdGE6IHJldHVybnMsXG4gICAgICAgICAgICAgICAgcGF0aDogY3R4LnBhdGgsXG4gICAgICAgICAgICAgICAgZXJyb3JNYXBzOiBbXG4gICAgICAgICAgICAgICAgICAgIGN0eC5jb21tb24uY29udGV4dHVhbEVycm9yTWFwLFxuICAgICAgICAgICAgICAgICAgICBjdHguc2NoZW1hRXJyb3JNYXAsXG4gICAgICAgICAgICAgICAgICAgIGdldEVycm9yTWFwKCksXG4gICAgICAgICAgICAgICAgICAgIGVycm9yTWFwLFxuICAgICAgICAgICAgICAgIF0uZmlsdGVyKCh4KSA9PiAhIXgpLFxuICAgICAgICAgICAgICAgIGlzc3VlRGF0YToge1xuICAgICAgICAgICAgICAgICAgICBjb2RlOiBab2RJc3N1ZUNvZGUuaW52YWxpZF9yZXR1cm5fdHlwZSxcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuVHlwZUVycm9yOiBlcnJvcixcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcGFyYW1zID0geyBlcnJvck1hcDogY3R4LmNvbW1vbi5jb250ZXh0dWFsRXJyb3JNYXAgfTtcbiAgICAgICAgY29uc3QgZm4gPSBjdHguZGF0YTtcbiAgICAgICAgaWYgKHRoaXMuX2RlZi5yZXR1cm5zIGluc3RhbmNlb2YgWm9kUHJvbWlzZSkge1xuICAgICAgICAgICAgLy8gV291bGQgbG92ZSBhIHdheSB0byBhdm9pZCBkaXNhYmxpbmcgdGhpcyBydWxlLCBidXQgd2UgbmVlZFxuICAgICAgICAgICAgLy8gYW4gYWxpYXMgKHVzaW5nIGFuIGFycm93IGZ1bmN0aW9uIHdhcyB3aGF0IGNhdXNlZCAyNjUxKS5cbiAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdGhpcy1hbGlhc1xuICAgICAgICAgICAgY29uc3QgbWUgPSB0aGlzO1xuICAgICAgICAgICAgcmV0dXJuIE9LKGFzeW5jIGZ1bmN0aW9uICguLi5hcmdzKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZXJyb3IgPSBuZXcgWm9kRXJyb3IoW10pO1xuICAgICAgICAgICAgICAgIGNvbnN0IHBhcnNlZEFyZ3MgPSBhd2FpdCBtZS5fZGVmLmFyZ3NcbiAgICAgICAgICAgICAgICAgICAgLnBhcnNlQXN5bmMoYXJncywgcGFyYW1zKVxuICAgICAgICAgICAgICAgICAgICAuY2F0Y2goKGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgZXJyb3IuYWRkSXNzdWUobWFrZUFyZ3NJc3N1ZShhcmdzLCBlKSk7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IGVycm9yO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IFJlZmxlY3QuYXBwbHkoZm4sIHRoaXMsIHBhcnNlZEFyZ3MpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHBhcnNlZFJldHVybnMgPSBhd2FpdCBtZS5fZGVmLnJldHVybnMuX2RlZi50eXBlXG4gICAgICAgICAgICAgICAgICAgIC5wYXJzZUFzeW5jKHJlc3VsdCwgcGFyYW1zKVxuICAgICAgICAgICAgICAgICAgICAuY2F0Y2goKGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgZXJyb3IuYWRkSXNzdWUobWFrZVJldHVybnNJc3N1ZShyZXN1bHQsIGUpKTtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHBhcnNlZFJldHVybnM7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIC8vIFdvdWxkIGxvdmUgYSB3YXkgdG8gYXZvaWQgZGlzYWJsaW5nIHRoaXMgcnVsZSwgYnV0IHdlIG5lZWRcbiAgICAgICAgICAgIC8vIGFuIGFsaWFzICh1c2luZyBhbiBhcnJvdyBmdW5jdGlvbiB3YXMgd2hhdCBjYXVzZWQgMjY1MSkuXG4gICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXRoaXMtYWxpYXNcbiAgICAgICAgICAgIGNvbnN0IG1lID0gdGhpcztcbiAgICAgICAgICAgIHJldHVybiBPSyhmdW5jdGlvbiAoLi4uYXJncykge1xuICAgICAgICAgICAgICAgIGNvbnN0IHBhcnNlZEFyZ3MgPSBtZS5fZGVmLmFyZ3Muc2FmZVBhcnNlKGFyZ3MsIHBhcmFtcyk7XG4gICAgICAgICAgICAgICAgaWYgKCFwYXJzZWRBcmdzLnN1Y2Nlc3MpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFpvZEVycm9yKFttYWtlQXJnc0lzc3VlKGFyZ3MsIHBhcnNlZEFyZ3MuZXJyb3IpXSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IFJlZmxlY3QuYXBwbHkoZm4sIHRoaXMsIHBhcnNlZEFyZ3MuZGF0YSk7XG4gICAgICAgICAgICAgICAgY29uc3QgcGFyc2VkUmV0dXJucyA9IG1lLl9kZWYucmV0dXJucy5zYWZlUGFyc2UocmVzdWx0LCBwYXJhbXMpO1xuICAgICAgICAgICAgICAgIGlmICghcGFyc2VkUmV0dXJucy5zdWNjZXNzKSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBab2RFcnJvcihbbWFrZVJldHVybnNJc3N1ZShyZXN1bHQsIHBhcnNlZFJldHVybnMuZXJyb3IpXSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBwYXJzZWRSZXR1cm5zLmRhdGE7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBwYXJhbWV0ZXJzKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZGVmLmFyZ3M7XG4gICAgfVxuICAgIHJldHVyblR5cGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kZWYucmV0dXJucztcbiAgICB9XG4gICAgYXJncyguLi5pdGVtcykge1xuICAgICAgICByZXR1cm4gbmV3IFpvZEZ1bmN0aW9uKHtcbiAgICAgICAgICAgIC4uLnRoaXMuX2RlZixcbiAgICAgICAgICAgIGFyZ3M6IFpvZFR1cGxlLmNyZWF0ZShpdGVtcykucmVzdChab2RVbmtub3duLmNyZWF0ZSgpKSxcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybnMocmV0dXJuVHlwZSkge1xuICAgICAgICByZXR1cm4gbmV3IFpvZEZ1bmN0aW9uKHtcbiAgICAgICAgICAgIC4uLnRoaXMuX2RlZixcbiAgICAgICAgICAgIHJldHVybnM6IHJldHVyblR5cGUsXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBpbXBsZW1lbnQoZnVuYykge1xuICAgICAgICBjb25zdCB2YWxpZGF0ZWRGdW5jID0gdGhpcy5wYXJzZShmdW5jKTtcbiAgICAgICAgcmV0dXJuIHZhbGlkYXRlZEZ1bmM7XG4gICAgfVxuICAgIHN0cmljdEltcGxlbWVudChmdW5jKSB7XG4gICAgICAgIGNvbnN0IHZhbGlkYXRlZEZ1bmMgPSB0aGlzLnBhcnNlKGZ1bmMpO1xuICAgICAgICByZXR1cm4gdmFsaWRhdGVkRnVuYztcbiAgICB9XG4gICAgc3RhdGljIGNyZWF0ZShhcmdzLCByZXR1cm5zLCBwYXJhbXMpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBab2RGdW5jdGlvbih7XG4gICAgICAgICAgICBhcmdzOiAoYXJnc1xuICAgICAgICAgICAgICAgID8gYXJnc1xuICAgICAgICAgICAgICAgIDogWm9kVHVwbGUuY3JlYXRlKFtdKS5yZXN0KFpvZFVua25vd24uY3JlYXRlKCkpKSxcbiAgICAgICAgICAgIHJldHVybnM6IHJldHVybnMgfHwgWm9kVW5rbm93bi5jcmVhdGUoKSxcbiAgICAgICAgICAgIHR5cGVOYW1lOiBab2RGaXJzdFBhcnR5VHlwZUtpbmQuWm9kRnVuY3Rpb24sXG4gICAgICAgICAgICAuLi5wcm9jZXNzQ3JlYXRlUGFyYW1zKHBhcmFtcyksXG4gICAgICAgIH0pO1xuICAgIH1cbn1cbmNsYXNzIFpvZExhenkgZXh0ZW5kcyBab2RUeXBlIHtcbiAgICBnZXQgc2NoZW1hKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZGVmLmdldHRlcigpO1xuICAgIH1cbiAgICBfcGFyc2UoaW5wdXQpIHtcbiAgICAgICAgY29uc3QgeyBjdHggfSA9IHRoaXMuX3Byb2Nlc3NJbnB1dFBhcmFtcyhpbnB1dCk7XG4gICAgICAgIGNvbnN0IGxhenlTY2hlbWEgPSB0aGlzLl9kZWYuZ2V0dGVyKCk7XG4gICAgICAgIHJldHVybiBsYXp5U2NoZW1hLl9wYXJzZSh7IGRhdGE6IGN0eC5kYXRhLCBwYXRoOiBjdHgucGF0aCwgcGFyZW50OiBjdHggfSk7XG4gICAgfVxufVxuWm9kTGF6eS5jcmVhdGUgPSAoZ2V0dGVyLCBwYXJhbXMpID0+IHtcbiAgICByZXR1cm4gbmV3IFpvZExhenkoe1xuICAgICAgICBnZXR0ZXI6IGdldHRlcixcbiAgICAgICAgdHlwZU5hbWU6IFpvZEZpcnN0UGFydHlUeXBlS2luZC5ab2RMYXp5LFxuICAgICAgICAuLi5wcm9jZXNzQ3JlYXRlUGFyYW1zKHBhcmFtcyksXG4gICAgfSk7XG59O1xuY2xhc3MgWm9kTGl0ZXJhbCBleHRlbmRzIFpvZFR5cGUge1xuICAgIF9wYXJzZShpbnB1dCkge1xuICAgICAgICBpZiAoaW5wdXQuZGF0YSAhPT0gdGhpcy5fZGVmLnZhbHVlKSB7XG4gICAgICAgICAgICBjb25zdCBjdHggPSB0aGlzLl9nZXRPclJldHVybkN0eChpbnB1dCk7XG4gICAgICAgICAgICBhZGRJc3N1ZVRvQ29udGV4dChjdHgsIHtcbiAgICAgICAgICAgICAgICByZWNlaXZlZDogY3R4LmRhdGEsXG4gICAgICAgICAgICAgICAgY29kZTogWm9kSXNzdWVDb2RlLmludmFsaWRfbGl0ZXJhbCxcbiAgICAgICAgICAgICAgICBleHBlY3RlZDogdGhpcy5fZGVmLnZhbHVlLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXR1cm4gSU5WQUxJRDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4geyBzdGF0dXM6IFwidmFsaWRcIiwgdmFsdWU6IGlucHV0LmRhdGEgfTtcbiAgICB9XG4gICAgZ2V0IHZhbHVlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZGVmLnZhbHVlO1xuICAgIH1cbn1cblpvZExpdGVyYWwuY3JlYXRlID0gKHZhbHVlLCBwYXJhbXMpID0+IHtcbiAgICByZXR1cm4gbmV3IFpvZExpdGVyYWwoe1xuICAgICAgICB2YWx1ZTogdmFsdWUsXG4gICAgICAgIHR5cGVOYW1lOiBab2RGaXJzdFBhcnR5VHlwZUtpbmQuWm9kTGl0ZXJhbCxcbiAgICAgICAgLi4ucHJvY2Vzc0NyZWF0ZVBhcmFtcyhwYXJhbXMpLFxuICAgIH0pO1xufTtcbmZ1bmN0aW9uIGNyZWF0ZVpvZEVudW0odmFsdWVzLCBwYXJhbXMpIHtcbiAgICByZXR1cm4gbmV3IFpvZEVudW0oe1xuICAgICAgICB2YWx1ZXMsXG4gICAgICAgIHR5cGVOYW1lOiBab2RGaXJzdFBhcnR5VHlwZUtpbmQuWm9kRW51bSxcbiAgICAgICAgLi4ucHJvY2Vzc0NyZWF0ZVBhcmFtcyhwYXJhbXMpLFxuICAgIH0pO1xufVxuY2xhc3MgWm9kRW51bSBleHRlbmRzIFpvZFR5cGUge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlciguLi5hcmd1bWVudHMpO1xuICAgICAgICBfWm9kRW51bV9jYWNoZS5zZXQodGhpcywgdm9pZCAwKTtcbiAgICB9XG4gICAgX3BhcnNlKGlucHV0KSB7XG4gICAgICAgIGlmICh0eXBlb2YgaW5wdXQuZGF0YSAhPT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgY29uc3QgY3R4ID0gdGhpcy5fZ2V0T3JSZXR1cm5DdHgoaW5wdXQpO1xuICAgICAgICAgICAgY29uc3QgZXhwZWN0ZWRWYWx1ZXMgPSB0aGlzLl9kZWYudmFsdWVzO1xuICAgICAgICAgICAgYWRkSXNzdWVUb0NvbnRleHQoY3R4LCB7XG4gICAgICAgICAgICAgICAgZXhwZWN0ZWQ6IHV0aWwuam9pblZhbHVlcyhleHBlY3RlZFZhbHVlcyksXG4gICAgICAgICAgICAgICAgcmVjZWl2ZWQ6IGN0eC5wYXJzZWRUeXBlLFxuICAgICAgICAgICAgICAgIGNvZGU6IFpvZElzc3VlQ29kZS5pbnZhbGlkX3R5cGUsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHJldHVybiBJTlZBTElEO1xuICAgICAgICB9XG4gICAgICAgIGlmICghX19jbGFzc1ByaXZhdGVGaWVsZEdldCh0aGlzLCBfWm9kRW51bV9jYWNoZSwgXCJmXCIpKSB7XG4gICAgICAgICAgICBfX2NsYXNzUHJpdmF0ZUZpZWxkU2V0KHRoaXMsIF9ab2RFbnVtX2NhY2hlLCBuZXcgU2V0KHRoaXMuX2RlZi52YWx1ZXMpLCBcImZcIik7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFfX2NsYXNzUHJpdmF0ZUZpZWxkR2V0KHRoaXMsIF9ab2RFbnVtX2NhY2hlLCBcImZcIikuaGFzKGlucHV0LmRhdGEpKSB7XG4gICAgICAgICAgICBjb25zdCBjdHggPSB0aGlzLl9nZXRPclJldHVybkN0eChpbnB1dCk7XG4gICAgICAgICAgICBjb25zdCBleHBlY3RlZFZhbHVlcyA9IHRoaXMuX2RlZi52YWx1ZXM7XG4gICAgICAgICAgICBhZGRJc3N1ZVRvQ29udGV4dChjdHgsIHtcbiAgICAgICAgICAgICAgICByZWNlaXZlZDogY3R4LmRhdGEsXG4gICAgICAgICAgICAgICAgY29kZTogWm9kSXNzdWVDb2RlLmludmFsaWRfZW51bV92YWx1ZSxcbiAgICAgICAgICAgICAgICBvcHRpb25zOiBleHBlY3RlZFZhbHVlcyxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcmV0dXJuIElOVkFMSUQ7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIE9LKGlucHV0LmRhdGEpO1xuICAgIH1cbiAgICBnZXQgb3B0aW9ucygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2RlZi52YWx1ZXM7XG4gICAgfVxuICAgIGdldCBlbnVtKCkge1xuICAgICAgICBjb25zdCBlbnVtVmFsdWVzID0ge307XG4gICAgICAgIGZvciAoY29uc3QgdmFsIG9mIHRoaXMuX2RlZi52YWx1ZXMpIHtcbiAgICAgICAgICAgIGVudW1WYWx1ZXNbdmFsXSA9IHZhbDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZW51bVZhbHVlcztcbiAgICB9XG4gICAgZ2V0IFZhbHVlcygpIHtcbiAgICAgICAgY29uc3QgZW51bVZhbHVlcyA9IHt9O1xuICAgICAgICBmb3IgKGNvbnN0IHZhbCBvZiB0aGlzLl9kZWYudmFsdWVzKSB7XG4gICAgICAgICAgICBlbnVtVmFsdWVzW3ZhbF0gPSB2YWw7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGVudW1WYWx1ZXM7XG4gICAgfVxuICAgIGdldCBFbnVtKCkge1xuICAgICAgICBjb25zdCBlbnVtVmFsdWVzID0ge307XG4gICAgICAgIGZvciAoY29uc3QgdmFsIG9mIHRoaXMuX2RlZi52YWx1ZXMpIHtcbiAgICAgICAgICAgIGVudW1WYWx1ZXNbdmFsXSA9IHZhbDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZW51bVZhbHVlcztcbiAgICB9XG4gICAgZXh0cmFjdCh2YWx1ZXMsIG5ld0RlZiA9IHRoaXMuX2RlZikge1xuICAgICAgICByZXR1cm4gWm9kRW51bS5jcmVhdGUodmFsdWVzLCB7XG4gICAgICAgICAgICAuLi50aGlzLl9kZWYsXG4gICAgICAgICAgICAuLi5uZXdEZWYsXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBleGNsdWRlKHZhbHVlcywgbmV3RGVmID0gdGhpcy5fZGVmKSB7XG4gICAgICAgIHJldHVybiBab2RFbnVtLmNyZWF0ZSh0aGlzLm9wdGlvbnMuZmlsdGVyKChvcHQpID0+ICF2YWx1ZXMuaW5jbHVkZXMob3B0KSksIHtcbiAgICAgICAgICAgIC4uLnRoaXMuX2RlZixcbiAgICAgICAgICAgIC4uLm5ld0RlZixcbiAgICAgICAgfSk7XG4gICAgfVxufVxuX1pvZEVudW1fY2FjaGUgPSBuZXcgV2Vha01hcCgpO1xuWm9kRW51bS5jcmVhdGUgPSBjcmVhdGVab2RFbnVtO1xuY2xhc3MgWm9kTmF0aXZlRW51bSBleHRlbmRzIFpvZFR5cGUge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlciguLi5hcmd1bWVudHMpO1xuICAgICAgICBfWm9kTmF0aXZlRW51bV9jYWNoZS5zZXQodGhpcywgdm9pZCAwKTtcbiAgICB9XG4gICAgX3BhcnNlKGlucHV0KSB7XG4gICAgICAgIGNvbnN0IG5hdGl2ZUVudW1WYWx1ZXMgPSB1dGlsLmdldFZhbGlkRW51bVZhbHVlcyh0aGlzLl9kZWYudmFsdWVzKTtcbiAgICAgICAgY29uc3QgY3R4ID0gdGhpcy5fZ2V0T3JSZXR1cm5DdHgoaW5wdXQpO1xuICAgICAgICBpZiAoY3R4LnBhcnNlZFR5cGUgIT09IFpvZFBhcnNlZFR5cGUuc3RyaW5nICYmXG4gICAgICAgICAgICBjdHgucGFyc2VkVHlwZSAhPT0gWm9kUGFyc2VkVHlwZS5udW1iZXIpIHtcbiAgICAgICAgICAgIGNvbnN0IGV4cGVjdGVkVmFsdWVzID0gdXRpbC5vYmplY3RWYWx1ZXMobmF0aXZlRW51bVZhbHVlcyk7XG4gICAgICAgICAgICBhZGRJc3N1ZVRvQ29udGV4dChjdHgsIHtcbiAgICAgICAgICAgICAgICBleHBlY3RlZDogdXRpbC5qb2luVmFsdWVzKGV4cGVjdGVkVmFsdWVzKSxcbiAgICAgICAgICAgICAgICByZWNlaXZlZDogY3R4LnBhcnNlZFR5cGUsXG4gICAgICAgICAgICAgICAgY29kZTogWm9kSXNzdWVDb2RlLmludmFsaWRfdHlwZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcmV0dXJuIElOVkFMSUQ7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFfX2NsYXNzUHJpdmF0ZUZpZWxkR2V0KHRoaXMsIF9ab2ROYXRpdmVFbnVtX2NhY2hlLCBcImZcIikpIHtcbiAgICAgICAgICAgIF9fY2xhc3NQcml2YXRlRmllbGRTZXQodGhpcywgX1pvZE5hdGl2ZUVudW1fY2FjaGUsIG5ldyBTZXQodXRpbC5nZXRWYWxpZEVudW1WYWx1ZXModGhpcy5fZGVmLnZhbHVlcykpLCBcImZcIik7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFfX2NsYXNzUHJpdmF0ZUZpZWxkR2V0KHRoaXMsIF9ab2ROYXRpdmVFbnVtX2NhY2hlLCBcImZcIikuaGFzKGlucHV0LmRhdGEpKSB7XG4gICAgICAgICAgICBjb25zdCBleHBlY3RlZFZhbHVlcyA9IHV0aWwub2JqZWN0VmFsdWVzKG5hdGl2ZUVudW1WYWx1ZXMpO1xuICAgICAgICAgICAgYWRkSXNzdWVUb0NvbnRleHQoY3R4LCB7XG4gICAgICAgICAgICAgICAgcmVjZWl2ZWQ6IGN0eC5kYXRhLFxuICAgICAgICAgICAgICAgIGNvZGU6IFpvZElzc3VlQ29kZS5pbnZhbGlkX2VudW1fdmFsdWUsXG4gICAgICAgICAgICAgICAgb3B0aW9uczogZXhwZWN0ZWRWYWx1ZXMsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHJldHVybiBJTlZBTElEO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBPSyhpbnB1dC5kYXRhKTtcbiAgICB9XG4gICAgZ2V0IGVudW0oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kZWYudmFsdWVzO1xuICAgIH1cbn1cbl9ab2ROYXRpdmVFbnVtX2NhY2hlID0gbmV3IFdlYWtNYXAoKTtcblpvZE5hdGl2ZUVudW0uY3JlYXRlID0gKHZhbHVlcywgcGFyYW1zKSA9PiB7XG4gICAgcmV0dXJuIG5ldyBab2ROYXRpdmVFbnVtKHtcbiAgICAgICAgdmFsdWVzOiB2YWx1ZXMsXG4gICAgICAgIHR5cGVOYW1lOiBab2RGaXJzdFBhcnR5VHlwZUtpbmQuWm9kTmF0aXZlRW51bSxcbiAgICAgICAgLi4ucHJvY2Vzc0NyZWF0ZVBhcmFtcyhwYXJhbXMpLFxuICAgIH0pO1xufTtcbmNsYXNzIFpvZFByb21pc2UgZXh0ZW5kcyBab2RUeXBlIHtcbiAgICB1bndyYXAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kZWYudHlwZTtcbiAgICB9XG4gICAgX3BhcnNlKGlucHV0KSB7XG4gICAgICAgIGNvbnN0IHsgY3R4IH0gPSB0aGlzLl9wcm9jZXNzSW5wdXRQYXJhbXMoaW5wdXQpO1xuICAgICAgICBpZiAoY3R4LnBhcnNlZFR5cGUgIT09IFpvZFBhcnNlZFR5cGUucHJvbWlzZSAmJlxuICAgICAgICAgICAgY3R4LmNvbW1vbi5hc3luYyA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgIGFkZElzc3VlVG9Db250ZXh0KGN0eCwge1xuICAgICAgICAgICAgICAgIGNvZGU6IFpvZElzc3VlQ29kZS5pbnZhbGlkX3R5cGUsXG4gICAgICAgICAgICAgICAgZXhwZWN0ZWQ6IFpvZFBhcnNlZFR5cGUucHJvbWlzZSxcbiAgICAgICAgICAgICAgICByZWNlaXZlZDogY3R4LnBhcnNlZFR5cGUsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHJldHVybiBJTlZBTElEO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHByb21pc2lmaWVkID0gY3R4LnBhcnNlZFR5cGUgPT09IFpvZFBhcnNlZFR5cGUucHJvbWlzZVxuICAgICAgICAgICAgPyBjdHguZGF0YVxuICAgICAgICAgICAgOiBQcm9taXNlLnJlc29sdmUoY3R4LmRhdGEpO1xuICAgICAgICByZXR1cm4gT0socHJvbWlzaWZpZWQudGhlbigoZGF0YSkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2RlZi50eXBlLnBhcnNlQXN5bmMoZGF0YSwge1xuICAgICAgICAgICAgICAgIHBhdGg6IGN0eC5wYXRoLFxuICAgICAgICAgICAgICAgIGVycm9yTWFwOiBjdHguY29tbW9uLmNvbnRleHR1YWxFcnJvck1hcCxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KSk7XG4gICAgfVxufVxuWm9kUHJvbWlzZS5jcmVhdGUgPSAoc2NoZW1hLCBwYXJhbXMpID0+IHtcbiAgICByZXR1cm4gbmV3IFpvZFByb21pc2Uoe1xuICAgICAgICB0eXBlOiBzY2hlbWEsXG4gICAgICAgIHR5cGVOYW1lOiBab2RGaXJzdFBhcnR5VHlwZUtpbmQuWm9kUHJvbWlzZSxcbiAgICAgICAgLi4ucHJvY2Vzc0NyZWF0ZVBhcmFtcyhwYXJhbXMpLFxuICAgIH0pO1xufTtcbmNsYXNzIFpvZEVmZmVjdHMgZXh0ZW5kcyBab2RUeXBlIHtcbiAgICBpbm5lclR5cGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kZWYuc2NoZW1hO1xuICAgIH1cbiAgICBzb3VyY2VUeXBlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZGVmLnNjaGVtYS5fZGVmLnR5cGVOYW1lID09PSBab2RGaXJzdFBhcnR5VHlwZUtpbmQuWm9kRWZmZWN0c1xuICAgICAgICAgICAgPyB0aGlzLl9kZWYuc2NoZW1hLnNvdXJjZVR5cGUoKVxuICAgICAgICAgICAgOiB0aGlzLl9kZWYuc2NoZW1hO1xuICAgIH1cbiAgICBfcGFyc2UoaW5wdXQpIHtcbiAgICAgICAgY29uc3QgeyBzdGF0dXMsIGN0eCB9ID0gdGhpcy5fcHJvY2Vzc0lucHV0UGFyYW1zKGlucHV0KTtcbiAgICAgICAgY29uc3QgZWZmZWN0ID0gdGhpcy5fZGVmLmVmZmVjdCB8fCBudWxsO1xuICAgICAgICBjb25zdCBjaGVja0N0eCA9IHtcbiAgICAgICAgICAgIGFkZElzc3VlOiAoYXJnKSA9PiB7XG4gICAgICAgICAgICAgICAgYWRkSXNzdWVUb0NvbnRleHQoY3R4LCBhcmcpO1xuICAgICAgICAgICAgICAgIGlmIChhcmcuZmF0YWwpIHtcbiAgICAgICAgICAgICAgICAgICAgc3RhdHVzLmFib3J0KCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBzdGF0dXMuZGlydHkoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZ2V0IHBhdGgoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGN0eC5wYXRoO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgfTtcbiAgICAgICAgY2hlY2tDdHguYWRkSXNzdWUgPSBjaGVja0N0eC5hZGRJc3N1ZS5iaW5kKGNoZWNrQ3R4KTtcbiAgICAgICAgaWYgKGVmZmVjdC50eXBlID09PSBcInByZXByb2Nlc3NcIikge1xuICAgICAgICAgICAgY29uc3QgcHJvY2Vzc2VkID0gZWZmZWN0LnRyYW5zZm9ybShjdHguZGF0YSwgY2hlY2tDdHgpO1xuICAgICAgICAgICAgaWYgKGN0eC5jb21tb24uYXN5bmMpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHByb2Nlc3NlZCkudGhlbihhc3luYyAocHJvY2Vzc2VkKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChzdGF0dXMudmFsdWUgPT09IFwiYWJvcnRlZFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIElOVkFMSUQ7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMuX2RlZi5zY2hlbWEuX3BhcnNlQXN5bmMoe1xuICAgICAgICAgICAgICAgICAgICAgICAgZGF0YTogcHJvY2Vzc2VkLFxuICAgICAgICAgICAgICAgICAgICAgICAgcGF0aDogY3R4LnBhdGgsXG4gICAgICAgICAgICAgICAgICAgICAgICBwYXJlbnQ6IGN0eCxcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHQuc3RhdHVzID09PSBcImFib3J0ZWRcIilcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBJTlZBTElEO1xuICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0LnN0YXR1cyA9PT0gXCJkaXJ0eVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIERJUlRZKHJlc3VsdC52YWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChzdGF0dXMudmFsdWUgPT09IFwiZGlydHlcIilcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBESVJUWShyZXN1bHQudmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgaWYgKHN0YXR1cy52YWx1ZSA9PT0gXCJhYm9ydGVkXCIpXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBJTlZBTElEO1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IHRoaXMuX2RlZi5zY2hlbWEuX3BhcnNlU3luYyh7XG4gICAgICAgICAgICAgICAgICAgIGRhdGE6IHByb2Nlc3NlZCxcbiAgICAgICAgICAgICAgICAgICAgcGF0aDogY3R4LnBhdGgsXG4gICAgICAgICAgICAgICAgICAgIHBhcmVudDogY3R4LFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIGlmIChyZXN1bHQuc3RhdHVzID09PSBcImFib3J0ZWRcIilcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIElOVkFMSUQ7XG4gICAgICAgICAgICAgICAgaWYgKHJlc3VsdC5zdGF0dXMgPT09IFwiZGlydHlcIilcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIERJUlRZKHJlc3VsdC52YWx1ZSk7XG4gICAgICAgICAgICAgICAgaWYgKHN0YXR1cy52YWx1ZSA9PT0gXCJkaXJ0eVwiKVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gRElSVFkocmVzdWx0LnZhbHVlKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChlZmZlY3QudHlwZSA9PT0gXCJyZWZpbmVtZW50XCIpIHtcbiAgICAgICAgICAgIGNvbnN0IGV4ZWN1dGVSZWZpbmVtZW50ID0gKGFjYykgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGVmZmVjdC5yZWZpbmVtZW50KGFjYywgY2hlY2tDdHgpO1xuICAgICAgICAgICAgICAgIGlmIChjdHguY29tbW9uLmFzeW5jKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUocmVzdWx0KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHJlc3VsdCBpbnN0YW5jZW9mIFByb21pc2UpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQXN5bmMgcmVmaW5lbWVudCBlbmNvdW50ZXJlZCBkdXJpbmcgc3luY2hyb25vdXMgcGFyc2Ugb3BlcmF0aW9uLiBVc2UgLnBhcnNlQXN5bmMgaW5zdGVhZC5cIik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBhY2M7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgaWYgKGN0eC5jb21tb24uYXN5bmMgPT09IGZhbHNlKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgaW5uZXIgPSB0aGlzLl9kZWYuc2NoZW1hLl9wYXJzZVN5bmMoe1xuICAgICAgICAgICAgICAgICAgICBkYXRhOiBjdHguZGF0YSxcbiAgICAgICAgICAgICAgICAgICAgcGF0aDogY3R4LnBhdGgsXG4gICAgICAgICAgICAgICAgICAgIHBhcmVudDogY3R4LFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIGlmIChpbm5lci5zdGF0dXMgPT09IFwiYWJvcnRlZFwiKVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gSU5WQUxJRDtcbiAgICAgICAgICAgICAgICBpZiAoaW5uZXIuc3RhdHVzID09PSBcImRpcnR5XCIpXG4gICAgICAgICAgICAgICAgICAgIHN0YXR1cy5kaXJ0eSgpO1xuICAgICAgICAgICAgICAgIC8vIHJldHVybiB2YWx1ZSBpcyBpZ25vcmVkXG4gICAgICAgICAgICAgICAgZXhlY3V0ZVJlZmluZW1lbnQoaW5uZXIudmFsdWUpO1xuICAgICAgICAgICAgICAgIHJldHVybiB7IHN0YXR1czogc3RhdHVzLnZhbHVlLCB2YWx1ZTogaW5uZXIudmFsdWUgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl9kZWYuc2NoZW1hXG4gICAgICAgICAgICAgICAgICAgIC5fcGFyc2VBc3luYyh7IGRhdGE6IGN0eC5kYXRhLCBwYXRoOiBjdHgucGF0aCwgcGFyZW50OiBjdHggfSlcbiAgICAgICAgICAgICAgICAgICAgLnRoZW4oKGlubmVyKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChpbm5lci5zdGF0dXMgPT09IFwiYWJvcnRlZFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIElOVkFMSUQ7XG4gICAgICAgICAgICAgICAgICAgIGlmIChpbm5lci5zdGF0dXMgPT09IFwiZGlydHlcIilcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1cy5kaXJ0eSgpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZXhlY3V0ZVJlZmluZW1lbnQoaW5uZXIudmFsdWUpLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgc3RhdHVzOiBzdGF0dXMudmFsdWUsIHZhbHVlOiBpbm5lci52YWx1ZSB9O1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoZWZmZWN0LnR5cGUgPT09IFwidHJhbnNmb3JtXCIpIHtcbiAgICAgICAgICAgIGlmIChjdHguY29tbW9uLmFzeW5jID09PSBmYWxzZSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGJhc2UgPSB0aGlzLl9kZWYuc2NoZW1hLl9wYXJzZVN5bmMoe1xuICAgICAgICAgICAgICAgICAgICBkYXRhOiBjdHguZGF0YSxcbiAgICAgICAgICAgICAgICAgICAgcGF0aDogY3R4LnBhdGgsXG4gICAgICAgICAgICAgICAgICAgIHBhcmVudDogY3R4LFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIGlmICghaXNWYWxpZChiYXNlKSlcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJhc2U7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gZWZmZWN0LnRyYW5zZm9ybShiYXNlLnZhbHVlLCBjaGVja0N0eCk7XG4gICAgICAgICAgICAgICAgaWYgKHJlc3VsdCBpbnN0YW5jZW9mIFByb21pc2UpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBBc3luY2hyb25vdXMgdHJhbnNmb3JtIGVuY291bnRlcmVkIGR1cmluZyBzeW5jaHJvbm91cyBwYXJzZSBvcGVyYXRpb24uIFVzZSAucGFyc2VBc3luYyBpbnN0ZWFkLmApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4geyBzdGF0dXM6IHN0YXR1cy52YWx1ZSwgdmFsdWU6IHJlc3VsdCB9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2RlZi5zY2hlbWFcbiAgICAgICAgICAgICAgICAgICAgLl9wYXJzZUFzeW5jKHsgZGF0YTogY3R4LmRhdGEsIHBhdGg6IGN0eC5wYXRoLCBwYXJlbnQ6IGN0eCB9KVxuICAgICAgICAgICAgICAgICAgICAudGhlbigoYmFzZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoIWlzVmFsaWQoYmFzZSkpXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYmFzZTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShlZmZlY3QudHJhbnNmb3JtKGJhc2UudmFsdWUsIGNoZWNrQ3R4KSkudGhlbigocmVzdWx0KSA9PiAoeyBzdGF0dXM6IHN0YXR1cy52YWx1ZSwgdmFsdWU6IHJlc3VsdCB9KSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdXRpbC5hc3NlcnROZXZlcihlZmZlY3QpO1xuICAgIH1cbn1cblpvZEVmZmVjdHMuY3JlYXRlID0gKHNjaGVtYSwgZWZmZWN0LCBwYXJhbXMpID0+IHtcbiAgICByZXR1cm4gbmV3IFpvZEVmZmVjdHMoe1xuICAgICAgICBzY2hlbWEsXG4gICAgICAgIHR5cGVOYW1lOiBab2RGaXJzdFBhcnR5VHlwZUtpbmQuWm9kRWZmZWN0cyxcbiAgICAgICAgZWZmZWN0LFxuICAgICAgICAuLi5wcm9jZXNzQ3JlYXRlUGFyYW1zKHBhcmFtcyksXG4gICAgfSk7XG59O1xuWm9kRWZmZWN0cy5jcmVhdGVXaXRoUHJlcHJvY2VzcyA9IChwcmVwcm9jZXNzLCBzY2hlbWEsIHBhcmFtcykgPT4ge1xuICAgIHJldHVybiBuZXcgWm9kRWZmZWN0cyh7XG4gICAgICAgIHNjaGVtYSxcbiAgICAgICAgZWZmZWN0OiB7IHR5cGU6IFwicHJlcHJvY2Vzc1wiLCB0cmFuc2Zvcm06IHByZXByb2Nlc3MgfSxcbiAgICAgICAgdHlwZU5hbWU6IFpvZEZpcnN0UGFydHlUeXBlS2luZC5ab2RFZmZlY3RzLFxuICAgICAgICAuLi5wcm9jZXNzQ3JlYXRlUGFyYW1zKHBhcmFtcyksXG4gICAgfSk7XG59O1xuY2xhc3MgWm9kT3B0aW9uYWwgZXh0ZW5kcyBab2RUeXBlIHtcbiAgICBfcGFyc2UoaW5wdXQpIHtcbiAgICAgICAgY29uc3QgcGFyc2VkVHlwZSA9IHRoaXMuX2dldFR5cGUoaW5wdXQpO1xuICAgICAgICBpZiAocGFyc2VkVHlwZSA9PT0gWm9kUGFyc2VkVHlwZS51bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJldHVybiBPSyh1bmRlZmluZWQpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLl9kZWYuaW5uZXJUeXBlLl9wYXJzZShpbnB1dCk7XG4gICAgfVxuICAgIHVud3JhcCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2RlZi5pbm5lclR5cGU7XG4gICAgfVxufVxuWm9kT3B0aW9uYWwuY3JlYXRlID0gKHR5cGUsIHBhcmFtcykgPT4ge1xuICAgIHJldHVybiBuZXcgWm9kT3B0aW9uYWwoe1xuICAgICAgICBpbm5lclR5cGU6IHR5cGUsXG4gICAgICAgIHR5cGVOYW1lOiBab2RGaXJzdFBhcnR5VHlwZUtpbmQuWm9kT3B0aW9uYWwsXG4gICAgICAgIC4uLnByb2Nlc3NDcmVhdGVQYXJhbXMocGFyYW1zKSxcbiAgICB9KTtcbn07XG5jbGFzcyBab2ROdWxsYWJsZSBleHRlbmRzIFpvZFR5cGUge1xuICAgIF9wYXJzZShpbnB1dCkge1xuICAgICAgICBjb25zdCBwYXJzZWRUeXBlID0gdGhpcy5fZ2V0VHlwZShpbnB1dCk7XG4gICAgICAgIGlmIChwYXJzZWRUeXBlID09PSBab2RQYXJzZWRUeXBlLm51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiBPSyhudWxsKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5fZGVmLmlubmVyVHlwZS5fcGFyc2UoaW5wdXQpO1xuICAgIH1cbiAgICB1bndyYXAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kZWYuaW5uZXJUeXBlO1xuICAgIH1cbn1cblpvZE51bGxhYmxlLmNyZWF0ZSA9ICh0eXBlLCBwYXJhbXMpID0+IHtcbiAgICByZXR1cm4gbmV3IFpvZE51bGxhYmxlKHtcbiAgICAgICAgaW5uZXJUeXBlOiB0eXBlLFxuICAgICAgICB0eXBlTmFtZTogWm9kRmlyc3RQYXJ0eVR5cGVLaW5kLlpvZE51bGxhYmxlLFxuICAgICAgICAuLi5wcm9jZXNzQ3JlYXRlUGFyYW1zKHBhcmFtcyksXG4gICAgfSk7XG59O1xuY2xhc3MgWm9kRGVmYXVsdCBleHRlbmRzIFpvZFR5cGUge1xuICAgIF9wYXJzZShpbnB1dCkge1xuICAgICAgICBjb25zdCB7IGN0eCB9ID0gdGhpcy5fcHJvY2Vzc0lucHV0UGFyYW1zKGlucHV0KTtcbiAgICAgICAgbGV0IGRhdGEgPSBjdHguZGF0YTtcbiAgICAgICAgaWYgKGN0eC5wYXJzZWRUeXBlID09PSBab2RQYXJzZWRUeXBlLnVuZGVmaW5lZCkge1xuICAgICAgICAgICAgZGF0YSA9IHRoaXMuX2RlZi5kZWZhdWx0VmFsdWUoKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5fZGVmLmlubmVyVHlwZS5fcGFyc2Uoe1xuICAgICAgICAgICAgZGF0YSxcbiAgICAgICAgICAgIHBhdGg6IGN0eC5wYXRoLFxuICAgICAgICAgICAgcGFyZW50OiBjdHgsXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICByZW1vdmVEZWZhdWx0KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZGVmLmlubmVyVHlwZTtcbiAgICB9XG59XG5ab2REZWZhdWx0LmNyZWF0ZSA9ICh0eXBlLCBwYXJhbXMpID0+IHtcbiAgICByZXR1cm4gbmV3IFpvZERlZmF1bHQoe1xuICAgICAgICBpbm5lclR5cGU6IHR5cGUsXG4gICAgICAgIHR5cGVOYW1lOiBab2RGaXJzdFBhcnR5VHlwZUtpbmQuWm9kRGVmYXVsdCxcbiAgICAgICAgZGVmYXVsdFZhbHVlOiB0eXBlb2YgcGFyYW1zLmRlZmF1bHQgPT09IFwiZnVuY3Rpb25cIlxuICAgICAgICAgICAgPyBwYXJhbXMuZGVmYXVsdFxuICAgICAgICAgICAgOiAoKSA9PiBwYXJhbXMuZGVmYXVsdCxcbiAgICAgICAgLi4ucHJvY2Vzc0NyZWF0ZVBhcmFtcyhwYXJhbXMpLFxuICAgIH0pO1xufTtcbmNsYXNzIFpvZENhdGNoIGV4dGVuZHMgWm9kVHlwZSB7XG4gICAgX3BhcnNlKGlucHV0KSB7XG4gICAgICAgIGNvbnN0IHsgY3R4IH0gPSB0aGlzLl9wcm9jZXNzSW5wdXRQYXJhbXMoaW5wdXQpO1xuICAgICAgICAvLyBuZXdDdHggaXMgdXNlZCB0byBub3QgY29sbGVjdCBpc3N1ZXMgZnJvbSBpbm5lciB0eXBlcyBpbiBjdHhcbiAgICAgICAgY29uc3QgbmV3Q3R4ID0ge1xuICAgICAgICAgICAgLi4uY3R4LFxuICAgICAgICAgICAgY29tbW9uOiB7XG4gICAgICAgICAgICAgICAgLi4uY3R4LmNvbW1vbixcbiAgICAgICAgICAgICAgICBpc3N1ZXM6IFtdLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gdGhpcy5fZGVmLmlubmVyVHlwZS5fcGFyc2Uoe1xuICAgICAgICAgICAgZGF0YTogbmV3Q3R4LmRhdGEsXG4gICAgICAgICAgICBwYXRoOiBuZXdDdHgucGF0aCxcbiAgICAgICAgICAgIHBhcmVudDoge1xuICAgICAgICAgICAgICAgIC4uLm5ld0N0eCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuICAgICAgICBpZiAoaXNBc3luYyhyZXN1bHQpKSB7XG4gICAgICAgICAgICByZXR1cm4gcmVzdWx0LnRoZW4oKHJlc3VsdCkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgIHN0YXR1czogXCJ2YWxpZFwiLFxuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogcmVzdWx0LnN0YXR1cyA9PT0gXCJ2YWxpZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICA/IHJlc3VsdC52YWx1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgOiB0aGlzLl9kZWYuY2F0Y2hWYWx1ZSh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0IGVycm9yKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IFpvZEVycm9yKG5ld0N0eC5jb21tb24uaXNzdWVzKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0OiBuZXdDdHguZGF0YSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgc3RhdHVzOiBcInZhbGlkXCIsXG4gICAgICAgICAgICAgICAgdmFsdWU6IHJlc3VsdC5zdGF0dXMgPT09IFwidmFsaWRcIlxuICAgICAgICAgICAgICAgICAgICA/IHJlc3VsdC52YWx1ZVxuICAgICAgICAgICAgICAgICAgICA6IHRoaXMuX2RlZi5jYXRjaFZhbHVlKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGdldCBlcnJvcigpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IFpvZEVycm9yKG5ld0N0eC5jb21tb24uaXNzdWVzKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBpbnB1dDogbmV3Q3R4LmRhdGEsXG4gICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZW1vdmVDYXRjaCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2RlZi5pbm5lclR5cGU7XG4gICAgfVxufVxuWm9kQ2F0Y2guY3JlYXRlID0gKHR5cGUsIHBhcmFtcykgPT4ge1xuICAgIHJldHVybiBuZXcgWm9kQ2F0Y2goe1xuICAgICAgICBpbm5lclR5cGU6IHR5cGUsXG4gICAgICAgIHR5cGVOYW1lOiBab2RGaXJzdFBhcnR5VHlwZUtpbmQuWm9kQ2F0Y2gsXG4gICAgICAgIGNhdGNoVmFsdWU6IHR5cGVvZiBwYXJhbXMuY2F0Y2ggPT09IFwiZnVuY3Rpb25cIiA/IHBhcmFtcy5jYXRjaCA6ICgpID0+IHBhcmFtcy5jYXRjaCxcbiAgICAgICAgLi4ucHJvY2Vzc0NyZWF0ZVBhcmFtcyhwYXJhbXMpLFxuICAgIH0pO1xufTtcbmNsYXNzIFpvZE5hTiBleHRlbmRzIFpvZFR5cGUge1xuICAgIF9wYXJzZShpbnB1dCkge1xuICAgICAgICBjb25zdCBwYXJzZWRUeXBlID0gdGhpcy5fZ2V0VHlwZShpbnB1dCk7XG4gICAgICAgIGlmIChwYXJzZWRUeXBlICE9PSBab2RQYXJzZWRUeXBlLm5hbikge1xuICAgICAgICAgICAgY29uc3QgY3R4ID0gdGhpcy5fZ2V0T3JSZXR1cm5DdHgoaW5wdXQpO1xuICAgICAgICAgICAgYWRkSXNzdWVUb0NvbnRleHQoY3R4LCB7XG4gICAgICAgICAgICAgICAgY29kZTogWm9kSXNzdWVDb2RlLmludmFsaWRfdHlwZSxcbiAgICAgICAgICAgICAgICBleHBlY3RlZDogWm9kUGFyc2VkVHlwZS5uYW4sXG4gICAgICAgICAgICAgICAgcmVjZWl2ZWQ6IGN0eC5wYXJzZWRUeXBlLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXR1cm4gSU5WQUxJRDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4geyBzdGF0dXM6IFwidmFsaWRcIiwgdmFsdWU6IGlucHV0LmRhdGEgfTtcbiAgICB9XG59XG5ab2ROYU4uY3JlYXRlID0gKHBhcmFtcykgPT4ge1xuICAgIHJldHVybiBuZXcgWm9kTmFOKHtcbiAgICAgICAgdHlwZU5hbWU6IFpvZEZpcnN0UGFydHlUeXBlS2luZC5ab2ROYU4sXG4gICAgICAgIC4uLnByb2Nlc3NDcmVhdGVQYXJhbXMocGFyYW1zKSxcbiAgICB9KTtcbn07XG5jb25zdCBCUkFORCA9IFN5bWJvbChcInpvZF9icmFuZFwiKTtcbmNsYXNzIFpvZEJyYW5kZWQgZXh0ZW5kcyBab2RUeXBlIHtcbiAgICBfcGFyc2UoaW5wdXQpIHtcbiAgICAgICAgY29uc3QgeyBjdHggfSA9IHRoaXMuX3Byb2Nlc3NJbnB1dFBhcmFtcyhpbnB1dCk7XG4gICAgICAgIGNvbnN0IGRhdGEgPSBjdHguZGF0YTtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2RlZi50eXBlLl9wYXJzZSh7XG4gICAgICAgICAgICBkYXRhLFxuICAgICAgICAgICAgcGF0aDogY3R4LnBhdGgsXG4gICAgICAgICAgICBwYXJlbnQ6IGN0eCxcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIHVud3JhcCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2RlZi50eXBlO1xuICAgIH1cbn1cbmNsYXNzIFpvZFBpcGVsaW5lIGV4dGVuZHMgWm9kVHlwZSB7XG4gICAgX3BhcnNlKGlucHV0KSB7XG4gICAgICAgIGNvbnN0IHsgc3RhdHVzLCBjdHggfSA9IHRoaXMuX3Byb2Nlc3NJbnB1dFBhcmFtcyhpbnB1dCk7XG4gICAgICAgIGlmIChjdHguY29tbW9uLmFzeW5jKSB7XG4gICAgICAgICAgICBjb25zdCBoYW5kbGVBc3luYyA9IGFzeW5jICgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBpblJlc3VsdCA9IGF3YWl0IHRoaXMuX2RlZi5pbi5fcGFyc2VBc3luYyh7XG4gICAgICAgICAgICAgICAgICAgIGRhdGE6IGN0eC5kYXRhLFxuICAgICAgICAgICAgICAgICAgICBwYXRoOiBjdHgucGF0aCxcbiAgICAgICAgICAgICAgICAgICAgcGFyZW50OiBjdHgsXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgaWYgKGluUmVzdWx0LnN0YXR1cyA9PT0gXCJhYm9ydGVkXCIpXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBJTlZBTElEO1xuICAgICAgICAgICAgICAgIGlmIChpblJlc3VsdC5zdGF0dXMgPT09IFwiZGlydHlcIikge1xuICAgICAgICAgICAgICAgICAgICBzdGF0dXMuZGlydHkoKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIERJUlRZKGluUmVzdWx0LnZhbHVlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl9kZWYub3V0Ll9wYXJzZUFzeW5jKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGE6IGluUmVzdWx0LnZhbHVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgcGF0aDogY3R4LnBhdGgsXG4gICAgICAgICAgICAgICAgICAgICAgICBwYXJlbnQ6IGN0eCxcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHJldHVybiBoYW5kbGVBc3luYygpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgaW5SZXN1bHQgPSB0aGlzLl9kZWYuaW4uX3BhcnNlU3luYyh7XG4gICAgICAgICAgICAgICAgZGF0YTogY3R4LmRhdGEsXG4gICAgICAgICAgICAgICAgcGF0aDogY3R4LnBhdGgsXG4gICAgICAgICAgICAgICAgcGFyZW50OiBjdHgsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGlmIChpblJlc3VsdC5zdGF0dXMgPT09IFwiYWJvcnRlZFwiKVxuICAgICAgICAgICAgICAgIHJldHVybiBJTlZBTElEO1xuICAgICAgICAgICAgaWYgKGluUmVzdWx0LnN0YXR1cyA9PT0gXCJkaXJ0eVwiKSB7XG4gICAgICAgICAgICAgICAgc3RhdHVzLmRpcnR5KCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgc3RhdHVzOiBcImRpcnR5XCIsXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlOiBpblJlc3VsdC52YWx1ZSxcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2RlZi5vdXQuX3BhcnNlU3luYyh7XG4gICAgICAgICAgICAgICAgICAgIGRhdGE6IGluUmVzdWx0LnZhbHVlLFxuICAgICAgICAgICAgICAgICAgICBwYXRoOiBjdHgucGF0aCxcbiAgICAgICAgICAgICAgICAgICAgcGFyZW50OiBjdHgsXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgc3RhdGljIGNyZWF0ZShhLCBiKSB7XG4gICAgICAgIHJldHVybiBuZXcgWm9kUGlwZWxpbmUoe1xuICAgICAgICAgICAgaW46IGEsXG4gICAgICAgICAgICBvdXQ6IGIsXG4gICAgICAgICAgICB0eXBlTmFtZTogWm9kRmlyc3RQYXJ0eVR5cGVLaW5kLlpvZFBpcGVsaW5lLFxuICAgICAgICB9KTtcbiAgICB9XG59XG5jbGFzcyBab2RSZWFkb25seSBleHRlbmRzIFpvZFR5cGUge1xuICAgIF9wYXJzZShpbnB1dCkge1xuICAgICAgICBjb25zdCByZXN1bHQgPSB0aGlzLl9kZWYuaW5uZXJUeXBlLl9wYXJzZShpbnB1dCk7XG4gICAgICAgIGNvbnN0IGZyZWV6ZSA9IChkYXRhKSA9PiB7XG4gICAgICAgICAgICBpZiAoaXNWYWxpZChkYXRhKSkge1xuICAgICAgICAgICAgICAgIGRhdGEudmFsdWUgPSBPYmplY3QuZnJlZXplKGRhdGEudmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGRhdGE7XG4gICAgICAgIH07XG4gICAgICAgIHJldHVybiBpc0FzeW5jKHJlc3VsdClcbiAgICAgICAgICAgID8gcmVzdWx0LnRoZW4oKGRhdGEpID0+IGZyZWV6ZShkYXRhKSlcbiAgICAgICAgICAgIDogZnJlZXplKHJlc3VsdCk7XG4gICAgfVxuICAgIHVud3JhcCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2RlZi5pbm5lclR5cGU7XG4gICAgfVxufVxuWm9kUmVhZG9ubHkuY3JlYXRlID0gKHR5cGUsIHBhcmFtcykgPT4ge1xuICAgIHJldHVybiBuZXcgWm9kUmVhZG9ubHkoe1xuICAgICAgICBpbm5lclR5cGU6IHR5cGUsXG4gICAgICAgIHR5cGVOYW1lOiBab2RGaXJzdFBhcnR5VHlwZUtpbmQuWm9kUmVhZG9ubHksXG4gICAgICAgIC4uLnByb2Nlc3NDcmVhdGVQYXJhbXMocGFyYW1zKSxcbiAgICB9KTtcbn07XG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLy8vLy8vLy8vICAgICAgICAgICAgICAgICAgICAvLy8vLy8vLy8vXG4vLy8vLy8vLy8vICAgICAgei5jdXN0b20gICAgICAvLy8vLy8vLy8vXG4vLy8vLy8vLy8vICAgICAgICAgICAgICAgICAgICAvLy8vLy8vLy8vXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5mdW5jdGlvbiBjbGVhblBhcmFtcyhwYXJhbXMsIGRhdGEpIHtcbiAgICBjb25zdCBwID0gdHlwZW9mIHBhcmFtcyA9PT0gXCJmdW5jdGlvblwiXG4gICAgICAgID8gcGFyYW1zKGRhdGEpXG4gICAgICAgIDogdHlwZW9mIHBhcmFtcyA9PT0gXCJzdHJpbmdcIlxuICAgICAgICAgICAgPyB7IG1lc3NhZ2U6IHBhcmFtcyB9XG4gICAgICAgICAgICA6IHBhcmFtcztcbiAgICBjb25zdCBwMiA9IHR5cGVvZiBwID09PSBcInN0cmluZ1wiID8geyBtZXNzYWdlOiBwIH0gOiBwO1xuICAgIHJldHVybiBwMjtcbn1cbmZ1bmN0aW9uIGN1c3RvbShjaGVjaywgX3BhcmFtcyA9IHt9LCBcbi8qKlxuICogQGRlcHJlY2F0ZWRcbiAqXG4gKiBQYXNzIGBmYXRhbGAgaW50byB0aGUgcGFyYW1zIG9iamVjdCBpbnN0ZWFkOlxuICpcbiAqIGBgYHRzXG4gKiB6LnN0cmluZygpLmN1c3RvbSgodmFsKSA9PiB2YWwubGVuZ3RoID4gNSwgeyBmYXRhbDogZmFsc2UgfSlcbiAqIGBgYFxuICpcbiAqL1xuZmF0YWwpIHtcbiAgICBpZiAoY2hlY2spXG4gICAgICAgIHJldHVybiBab2RBbnkuY3JlYXRlKCkuc3VwZXJSZWZpbmUoKGRhdGEsIGN0eCkgPT4ge1xuICAgICAgICAgICAgdmFyIF9hLCBfYjtcbiAgICAgICAgICAgIGNvbnN0IHIgPSBjaGVjayhkYXRhKTtcbiAgICAgICAgICAgIGlmIChyIGluc3RhbmNlb2YgUHJvbWlzZSkge1xuICAgICAgICAgICAgICAgIHJldHVybiByLnRoZW4oKHIpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIF9hLCBfYjtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBwYXJhbXMgPSBjbGVhblBhcmFtcyhfcGFyYW1zLCBkYXRhKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IF9mYXRhbCA9IChfYiA9IChfYSA9IHBhcmFtcy5mYXRhbCkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogZmF0YWwpICE9PSBudWxsICYmIF9iICE9PSB2b2lkIDAgPyBfYiA6IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICBjdHguYWRkSXNzdWUoeyBjb2RlOiBcImN1c3RvbVwiLCAuLi5wYXJhbXMsIGZhdGFsOiBfZmF0YWwgfSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICghcikge1xuICAgICAgICAgICAgICAgIGNvbnN0IHBhcmFtcyA9IGNsZWFuUGFyYW1zKF9wYXJhbXMsIGRhdGEpO1xuICAgICAgICAgICAgICAgIGNvbnN0IF9mYXRhbCA9IChfYiA9IChfYSA9IHBhcmFtcy5mYXRhbCkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogZmF0YWwpICE9PSBudWxsICYmIF9iICE9PSB2b2lkIDAgPyBfYiA6IHRydWU7XG4gICAgICAgICAgICAgICAgY3R4LmFkZElzc3VlKHsgY29kZTogXCJjdXN0b21cIiwgLi4ucGFyYW1zLCBmYXRhbDogX2ZhdGFsIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9KTtcbiAgICByZXR1cm4gWm9kQW55LmNyZWF0ZSgpO1xufVxuY29uc3QgbGF0ZSA9IHtcbiAgICBvYmplY3Q6IFpvZE9iamVjdC5sYXp5Y3JlYXRlLFxufTtcbnZhciBab2RGaXJzdFBhcnR5VHlwZUtpbmQ7XG4oZnVuY3Rpb24gKFpvZEZpcnN0UGFydHlUeXBlS2luZCkge1xuICAgIFpvZEZpcnN0UGFydHlUeXBlS2luZFtcIlpvZFN0cmluZ1wiXSA9IFwiWm9kU3RyaW5nXCI7XG4gICAgWm9kRmlyc3RQYXJ0eVR5cGVLaW5kW1wiWm9kTnVtYmVyXCJdID0gXCJab2ROdW1iZXJcIjtcbiAgICBab2RGaXJzdFBhcnR5VHlwZUtpbmRbXCJab2ROYU5cIl0gPSBcIlpvZE5hTlwiO1xuICAgIFpvZEZpcnN0UGFydHlUeXBlS2luZFtcIlpvZEJpZ0ludFwiXSA9IFwiWm9kQmlnSW50XCI7XG4gICAgWm9kRmlyc3RQYXJ0eVR5cGVLaW5kW1wiWm9kQm9vbGVhblwiXSA9IFwiWm9kQm9vbGVhblwiO1xuICAgIFpvZEZpcnN0UGFydHlUeXBlS2luZFtcIlpvZERhdGVcIl0gPSBcIlpvZERhdGVcIjtcbiAgICBab2RGaXJzdFBhcnR5VHlwZUtpbmRbXCJab2RTeW1ib2xcIl0gPSBcIlpvZFN5bWJvbFwiO1xuICAgIFpvZEZpcnN0UGFydHlUeXBlS2luZFtcIlpvZFVuZGVmaW5lZFwiXSA9IFwiWm9kVW5kZWZpbmVkXCI7XG4gICAgWm9kRmlyc3RQYXJ0eVR5cGVLaW5kW1wiWm9kTnVsbFwiXSA9IFwiWm9kTnVsbFwiO1xuICAgIFpvZEZpcnN0UGFydHlUeXBlS2luZFtcIlpvZEFueVwiXSA9IFwiWm9kQW55XCI7XG4gICAgWm9kRmlyc3RQYXJ0eVR5cGVLaW5kW1wiWm9kVW5rbm93blwiXSA9IFwiWm9kVW5rbm93blwiO1xuICAgIFpvZEZpcnN0UGFydHlUeXBlS2luZFtcIlpvZE5ldmVyXCJdID0gXCJab2ROZXZlclwiO1xuICAgIFpvZEZpcnN0UGFydHlUeXBlS2luZFtcIlpvZFZvaWRcIl0gPSBcIlpvZFZvaWRcIjtcbiAgICBab2RGaXJzdFBhcnR5VHlwZUtpbmRbXCJab2RBcnJheVwiXSA9IFwiWm9kQXJyYXlcIjtcbiAgICBab2RGaXJzdFBhcnR5VHlwZUtpbmRbXCJab2RPYmplY3RcIl0gPSBcIlpvZE9iamVjdFwiO1xuICAgIFpvZEZpcnN0UGFydHlUeXBlS2luZFtcIlpvZFVuaW9uXCJdID0gXCJab2RVbmlvblwiO1xuICAgIFpvZEZpcnN0UGFydHlUeXBlS2luZFtcIlpvZERpc2NyaW1pbmF0ZWRVbmlvblwiXSA9IFwiWm9kRGlzY3JpbWluYXRlZFVuaW9uXCI7XG4gICAgWm9kRmlyc3RQYXJ0eVR5cGVLaW5kW1wiWm9kSW50ZXJzZWN0aW9uXCJdID0gXCJab2RJbnRlcnNlY3Rpb25cIjtcbiAgICBab2RGaXJzdFBhcnR5VHlwZUtpbmRbXCJab2RUdXBsZVwiXSA9IFwiWm9kVHVwbGVcIjtcbiAgICBab2RGaXJzdFBhcnR5VHlwZUtpbmRbXCJab2RSZWNvcmRcIl0gPSBcIlpvZFJlY29yZFwiO1xuICAgIFpvZEZpcnN0UGFydHlUeXBlS2luZFtcIlpvZE1hcFwiXSA9IFwiWm9kTWFwXCI7XG4gICAgWm9kRmlyc3RQYXJ0eVR5cGVLaW5kW1wiWm9kU2V0XCJdID0gXCJab2RTZXRcIjtcbiAgICBab2RGaXJzdFBhcnR5VHlwZUtpbmRbXCJab2RGdW5jdGlvblwiXSA9IFwiWm9kRnVuY3Rpb25cIjtcbiAgICBab2RGaXJzdFBhcnR5VHlwZUtpbmRbXCJab2RMYXp5XCJdID0gXCJab2RMYXp5XCI7XG4gICAgWm9kRmlyc3RQYXJ0eVR5cGVLaW5kW1wiWm9kTGl0ZXJhbFwiXSA9IFwiWm9kTGl0ZXJhbFwiO1xuICAgIFpvZEZpcnN0UGFydHlUeXBlS2luZFtcIlpvZEVudW1cIl0gPSBcIlpvZEVudW1cIjtcbiAgICBab2RGaXJzdFBhcnR5VHlwZUtpbmRbXCJab2RFZmZlY3RzXCJdID0gXCJab2RFZmZlY3RzXCI7XG4gICAgWm9kRmlyc3RQYXJ0eVR5cGVLaW5kW1wiWm9kTmF0aXZlRW51bVwiXSA9IFwiWm9kTmF0aXZlRW51bVwiO1xuICAgIFpvZEZpcnN0UGFydHlUeXBlS2luZFtcIlpvZE9wdGlvbmFsXCJdID0gXCJab2RPcHRpb25hbFwiO1xuICAgIFpvZEZpcnN0UGFydHlUeXBlS2luZFtcIlpvZE51bGxhYmxlXCJdID0gXCJab2ROdWxsYWJsZVwiO1xuICAgIFpvZEZpcnN0UGFydHlUeXBlS2luZFtcIlpvZERlZmF1bHRcIl0gPSBcIlpvZERlZmF1bHRcIjtcbiAgICBab2RGaXJzdFBhcnR5VHlwZUtpbmRbXCJab2RDYXRjaFwiXSA9IFwiWm9kQ2F0Y2hcIjtcbiAgICBab2RGaXJzdFBhcnR5VHlwZUtpbmRbXCJab2RQcm9taXNlXCJdID0gXCJab2RQcm9taXNlXCI7XG4gICAgWm9kRmlyc3RQYXJ0eVR5cGVLaW5kW1wiWm9kQnJhbmRlZFwiXSA9IFwiWm9kQnJhbmRlZFwiO1xuICAgIFpvZEZpcnN0UGFydHlUeXBlS2luZFtcIlpvZFBpcGVsaW5lXCJdID0gXCJab2RQaXBlbGluZVwiO1xuICAgIFpvZEZpcnN0UGFydHlUeXBlS2luZFtcIlpvZFJlYWRvbmx5XCJdID0gXCJab2RSZWFkb25seVwiO1xufSkoWm9kRmlyc3RQYXJ0eVR5cGVLaW5kIHx8IChab2RGaXJzdFBhcnR5VHlwZUtpbmQgPSB7fSkpO1xuY29uc3QgaW5zdGFuY2VPZlR5cGUgPSAoXG4vLyBjb25zdCBpbnN0YW5jZU9mVHlwZSA9IDxUIGV4dGVuZHMgbmV3ICguLi5hcmdzOiBhbnlbXSkgPT4gYW55PihcbmNscywgcGFyYW1zID0ge1xuICAgIG1lc3NhZ2U6IGBJbnB1dCBub3QgaW5zdGFuY2Ugb2YgJHtjbHMubmFtZX1gLFxufSkgPT4gY3VzdG9tKChkYXRhKSA9PiBkYXRhIGluc3RhbmNlb2YgY2xzLCBwYXJhbXMpO1xuY29uc3Qgc3RyaW5nVHlwZSA9IFpvZFN0cmluZy5jcmVhdGU7XG5jb25zdCBudW1iZXJUeXBlID0gWm9kTnVtYmVyLmNyZWF0ZTtcbmNvbnN0IG5hblR5cGUgPSBab2ROYU4uY3JlYXRlO1xuY29uc3QgYmlnSW50VHlwZSA9IFpvZEJpZ0ludC5jcmVhdGU7XG5jb25zdCBib29sZWFuVHlwZSA9IFpvZEJvb2xlYW4uY3JlYXRlO1xuY29uc3QgZGF0ZVR5cGUgPSBab2REYXRlLmNyZWF0ZTtcbmNvbnN0IHN5bWJvbFR5cGUgPSBab2RTeW1ib2wuY3JlYXRlO1xuY29uc3QgdW5kZWZpbmVkVHlwZSA9IFpvZFVuZGVmaW5lZC5jcmVhdGU7XG5jb25zdCBudWxsVHlwZSA9IFpvZE51bGwuY3JlYXRlO1xuY29uc3QgYW55VHlwZSA9IFpvZEFueS5jcmVhdGU7XG5jb25zdCB1bmtub3duVHlwZSA9IFpvZFVua25vd24uY3JlYXRlO1xuY29uc3QgbmV2ZXJUeXBlID0gWm9kTmV2ZXIuY3JlYXRlO1xuY29uc3Qgdm9pZFR5cGUgPSBab2RWb2lkLmNyZWF0ZTtcbmNvbnN0IGFycmF5VHlwZSA9IFpvZEFycmF5LmNyZWF0ZTtcbmNvbnN0IG9iamVjdFR5cGUgPSBab2RPYmplY3QuY3JlYXRlO1xuY29uc3Qgc3RyaWN0T2JqZWN0VHlwZSA9IFpvZE9iamVjdC5zdHJpY3RDcmVhdGU7XG5jb25zdCB1bmlvblR5cGUgPSBab2RVbmlvbi5jcmVhdGU7XG5jb25zdCBkaXNjcmltaW5hdGVkVW5pb25UeXBlID0gWm9kRGlzY3JpbWluYXRlZFVuaW9uLmNyZWF0ZTtcbmNvbnN0IGludGVyc2VjdGlvblR5cGUgPSBab2RJbnRlcnNlY3Rpb24uY3JlYXRlO1xuY29uc3QgdHVwbGVUeXBlID0gWm9kVHVwbGUuY3JlYXRlO1xuY29uc3QgcmVjb3JkVHlwZSA9IFpvZFJlY29yZC5jcmVhdGU7XG5jb25zdCBtYXBUeXBlID0gWm9kTWFwLmNyZWF0ZTtcbmNvbnN0IHNldFR5cGUgPSBab2RTZXQuY3JlYXRlO1xuY29uc3QgZnVuY3Rpb25UeXBlID0gWm9kRnVuY3Rpb24uY3JlYXRlO1xuY29uc3QgbGF6eVR5cGUgPSBab2RMYXp5LmNyZWF0ZTtcbmNvbnN0IGxpdGVyYWxUeXBlID0gWm9kTGl0ZXJhbC5jcmVhdGU7XG5jb25zdCBlbnVtVHlwZSA9IFpvZEVudW0uY3JlYXRlO1xuY29uc3QgbmF0aXZlRW51bVR5cGUgPSBab2ROYXRpdmVFbnVtLmNyZWF0ZTtcbmNvbnN0IHByb21pc2VUeXBlID0gWm9kUHJvbWlzZS5jcmVhdGU7XG5jb25zdCBlZmZlY3RzVHlwZSA9IFpvZEVmZmVjdHMuY3JlYXRlO1xuY29uc3Qgb3B0aW9uYWxUeXBlID0gWm9kT3B0aW9uYWwuY3JlYXRlO1xuY29uc3QgbnVsbGFibGVUeXBlID0gWm9kTnVsbGFibGUuY3JlYXRlO1xuY29uc3QgcHJlcHJvY2Vzc1R5cGUgPSBab2RFZmZlY3RzLmNyZWF0ZVdpdGhQcmVwcm9jZXNzO1xuY29uc3QgcGlwZWxpbmVUeXBlID0gWm9kUGlwZWxpbmUuY3JlYXRlO1xuY29uc3Qgb3N0cmluZyA9ICgpID0+IHN0cmluZ1R5cGUoKS5vcHRpb25hbCgpO1xuY29uc3Qgb251bWJlciA9ICgpID0+IG51bWJlclR5cGUoKS5vcHRpb25hbCgpO1xuY29uc3Qgb2Jvb2xlYW4gPSAoKSA9PiBib29sZWFuVHlwZSgpLm9wdGlvbmFsKCk7XG5jb25zdCBjb2VyY2UgPSB7XG4gICAgc3RyaW5nOiAoKGFyZykgPT4gWm9kU3RyaW5nLmNyZWF0ZSh7IC4uLmFyZywgY29lcmNlOiB0cnVlIH0pKSxcbiAgICBudW1iZXI6ICgoYXJnKSA9PiBab2ROdW1iZXIuY3JlYXRlKHsgLi4uYXJnLCBjb2VyY2U6IHRydWUgfSkpLFxuICAgIGJvb2xlYW46ICgoYXJnKSA9PiBab2RCb29sZWFuLmNyZWF0ZSh7XG4gICAgICAgIC4uLmFyZyxcbiAgICAgICAgY29lcmNlOiB0cnVlLFxuICAgIH0pKSxcbiAgICBiaWdpbnQ6ICgoYXJnKSA9PiBab2RCaWdJbnQuY3JlYXRlKHsgLi4uYXJnLCBjb2VyY2U6IHRydWUgfSkpLFxuICAgIGRhdGU6ICgoYXJnKSA9PiBab2REYXRlLmNyZWF0ZSh7IC4uLmFyZywgY29lcmNlOiB0cnVlIH0pKSxcbn07XG5jb25zdCBORVZFUiA9IElOVkFMSUQ7XG5cbnZhciB6ID0gLyojX19QVVJFX18qL09iamVjdC5mcmVlemUoe1xuICAgIF9fcHJvdG9fXzogbnVsbCxcbiAgICBkZWZhdWx0RXJyb3JNYXA6IGVycm9yTWFwLFxuICAgIHNldEVycm9yTWFwOiBzZXRFcnJvck1hcCxcbiAgICBnZXRFcnJvck1hcDogZ2V0RXJyb3JNYXAsXG4gICAgbWFrZUlzc3VlOiBtYWtlSXNzdWUsXG4gICAgRU1QVFlfUEFUSDogRU1QVFlfUEFUSCxcbiAgICBhZGRJc3N1ZVRvQ29udGV4dDogYWRkSXNzdWVUb0NvbnRleHQsXG4gICAgUGFyc2VTdGF0dXM6IFBhcnNlU3RhdHVzLFxuICAgIElOVkFMSUQ6IElOVkFMSUQsXG4gICAgRElSVFk6IERJUlRZLFxuICAgIE9LOiBPSyxcbiAgICBpc0Fib3J0ZWQ6IGlzQWJvcnRlZCxcbiAgICBpc0RpcnR5OiBpc0RpcnR5LFxuICAgIGlzVmFsaWQ6IGlzVmFsaWQsXG4gICAgaXNBc3luYzogaXNBc3luYyxcbiAgICBnZXQgdXRpbCAoKSB7IHJldHVybiB1dGlsOyB9LFxuICAgIGdldCBvYmplY3RVdGlsICgpIHsgcmV0dXJuIG9iamVjdFV0aWw7IH0sXG4gICAgWm9kUGFyc2VkVHlwZTogWm9kUGFyc2VkVHlwZSxcbiAgICBnZXRQYXJzZWRUeXBlOiBnZXRQYXJzZWRUeXBlLFxuICAgIFpvZFR5cGU6IFpvZFR5cGUsXG4gICAgZGF0ZXRpbWVSZWdleDogZGF0ZXRpbWVSZWdleCxcbiAgICBab2RTdHJpbmc6IFpvZFN0cmluZyxcbiAgICBab2ROdW1iZXI6IFpvZE51bWJlcixcbiAgICBab2RCaWdJbnQ6IFpvZEJpZ0ludCxcbiAgICBab2RCb29sZWFuOiBab2RCb29sZWFuLFxuICAgIFpvZERhdGU6IFpvZERhdGUsXG4gICAgWm9kU3ltYm9sOiBab2RTeW1ib2wsXG4gICAgWm9kVW5kZWZpbmVkOiBab2RVbmRlZmluZWQsXG4gICAgWm9kTnVsbDogWm9kTnVsbCxcbiAgICBab2RBbnk6IFpvZEFueSxcbiAgICBab2RVbmtub3duOiBab2RVbmtub3duLFxuICAgIFpvZE5ldmVyOiBab2ROZXZlcixcbiAgICBab2RWb2lkOiBab2RWb2lkLFxuICAgIFpvZEFycmF5OiBab2RBcnJheSxcbiAgICBab2RPYmplY3Q6IFpvZE9iamVjdCxcbiAgICBab2RVbmlvbjogWm9kVW5pb24sXG4gICAgWm9kRGlzY3JpbWluYXRlZFVuaW9uOiBab2REaXNjcmltaW5hdGVkVW5pb24sXG4gICAgWm9kSW50ZXJzZWN0aW9uOiBab2RJbnRlcnNlY3Rpb24sXG4gICAgWm9kVHVwbGU6IFpvZFR1cGxlLFxuICAgIFpvZFJlY29yZDogWm9kUmVjb3JkLFxuICAgIFpvZE1hcDogWm9kTWFwLFxuICAgIFpvZFNldDogWm9kU2V0LFxuICAgIFpvZEZ1bmN0aW9uOiBab2RGdW5jdGlvbixcbiAgICBab2RMYXp5OiBab2RMYXp5LFxuICAgIFpvZExpdGVyYWw6IFpvZExpdGVyYWwsXG4gICAgWm9kRW51bTogWm9kRW51bSxcbiAgICBab2ROYXRpdmVFbnVtOiBab2ROYXRpdmVFbnVtLFxuICAgIFpvZFByb21pc2U6IFpvZFByb21pc2UsXG4gICAgWm9kRWZmZWN0czogWm9kRWZmZWN0cyxcbiAgICBab2RUcmFuc2Zvcm1lcjogWm9kRWZmZWN0cyxcbiAgICBab2RPcHRpb25hbDogWm9kT3B0aW9uYWwsXG4gICAgWm9kTnVsbGFibGU6IFpvZE51bGxhYmxlLFxuICAgIFpvZERlZmF1bHQ6IFpvZERlZmF1bHQsXG4gICAgWm9kQ2F0Y2g6IFpvZENhdGNoLFxuICAgIFpvZE5hTjogWm9kTmFOLFxuICAgIEJSQU5EOiBCUkFORCxcbiAgICBab2RCcmFuZGVkOiBab2RCcmFuZGVkLFxuICAgIFpvZFBpcGVsaW5lOiBab2RQaXBlbGluZSxcbiAgICBab2RSZWFkb25seTogWm9kUmVhZG9ubHksXG4gICAgY3VzdG9tOiBjdXN0b20sXG4gICAgU2NoZW1hOiBab2RUeXBlLFxuICAgIFpvZFNjaGVtYTogWm9kVHlwZSxcbiAgICBsYXRlOiBsYXRlLFxuICAgIGdldCBab2RGaXJzdFBhcnR5VHlwZUtpbmQgKCkgeyByZXR1cm4gWm9kRmlyc3RQYXJ0eVR5cGVLaW5kOyB9LFxuICAgIGNvZXJjZTogY29lcmNlLFxuICAgIGFueTogYW55VHlwZSxcbiAgICBhcnJheTogYXJyYXlUeXBlLFxuICAgIGJpZ2ludDogYmlnSW50VHlwZSxcbiAgICBib29sZWFuOiBib29sZWFuVHlwZSxcbiAgICBkYXRlOiBkYXRlVHlwZSxcbiAgICBkaXNjcmltaW5hdGVkVW5pb246IGRpc2NyaW1pbmF0ZWRVbmlvblR5cGUsXG4gICAgZWZmZWN0OiBlZmZlY3RzVHlwZSxcbiAgICAnZW51bSc6IGVudW1UeXBlLFxuICAgICdmdW5jdGlvbic6IGZ1bmN0aW9uVHlwZSxcbiAgICAnaW5zdGFuY2VvZic6IGluc3RhbmNlT2ZUeXBlLFxuICAgIGludGVyc2VjdGlvbjogaW50ZXJzZWN0aW9uVHlwZSxcbiAgICBsYXp5OiBsYXp5VHlwZSxcbiAgICBsaXRlcmFsOiBsaXRlcmFsVHlwZSxcbiAgICBtYXA6IG1hcFR5cGUsXG4gICAgbmFuOiBuYW5UeXBlLFxuICAgIG5hdGl2ZUVudW06IG5hdGl2ZUVudW1UeXBlLFxuICAgIG5ldmVyOiBuZXZlclR5cGUsXG4gICAgJ251bGwnOiBudWxsVHlwZSxcbiAgICBudWxsYWJsZTogbnVsbGFibGVUeXBlLFxuICAgIG51bWJlcjogbnVtYmVyVHlwZSxcbiAgICBvYmplY3Q6IG9iamVjdFR5cGUsXG4gICAgb2Jvb2xlYW46IG9ib29sZWFuLFxuICAgIG9udW1iZXI6IG9udW1iZXIsXG4gICAgb3B0aW9uYWw6IG9wdGlvbmFsVHlwZSxcbiAgICBvc3RyaW5nOiBvc3RyaW5nLFxuICAgIHBpcGVsaW5lOiBwaXBlbGluZVR5cGUsXG4gICAgcHJlcHJvY2VzczogcHJlcHJvY2Vzc1R5cGUsXG4gICAgcHJvbWlzZTogcHJvbWlzZVR5cGUsXG4gICAgcmVjb3JkOiByZWNvcmRUeXBlLFxuICAgIHNldDogc2V0VHlwZSxcbiAgICBzdHJpY3RPYmplY3Q6IHN0cmljdE9iamVjdFR5cGUsXG4gICAgc3RyaW5nOiBzdHJpbmdUeXBlLFxuICAgIHN5bWJvbDogc3ltYm9sVHlwZSxcbiAgICB0cmFuc2Zvcm1lcjogZWZmZWN0c1R5cGUsXG4gICAgdHVwbGU6IHR1cGxlVHlwZSxcbiAgICAndW5kZWZpbmVkJzogdW5kZWZpbmVkVHlwZSxcbiAgICB1bmlvbjogdW5pb25UeXBlLFxuICAgIHVua25vd246IHVua25vd25UeXBlLFxuICAgICd2b2lkJzogdm9pZFR5cGUsXG4gICAgTkVWRVI6IE5FVkVSLFxuICAgIFpvZElzc3VlQ29kZTogWm9kSXNzdWVDb2RlLFxuICAgIHF1b3RlbGVzc0pzb246IHF1b3RlbGVzc0pzb24sXG4gICAgWm9kRXJyb3I6IFpvZEVycm9yXG59KTtcblxuZXhwb3J0IHsgQlJBTkQsIERJUlRZLCBFTVBUWV9QQVRILCBJTlZBTElELCBORVZFUiwgT0ssIFBhcnNlU3RhdHVzLCBab2RUeXBlIGFzIFNjaGVtYSwgWm9kQW55LCBab2RBcnJheSwgWm9kQmlnSW50LCBab2RCb29sZWFuLCBab2RCcmFuZGVkLCBab2RDYXRjaCwgWm9kRGF0ZSwgWm9kRGVmYXVsdCwgWm9kRGlzY3JpbWluYXRlZFVuaW9uLCBab2RFZmZlY3RzLCBab2RFbnVtLCBab2RFcnJvciwgWm9kRmlyc3RQYXJ0eVR5cGVLaW5kLCBab2RGdW5jdGlvbiwgWm9kSW50ZXJzZWN0aW9uLCBab2RJc3N1ZUNvZGUsIFpvZExhenksIFpvZExpdGVyYWwsIFpvZE1hcCwgWm9kTmFOLCBab2ROYXRpdmVFbnVtLCBab2ROZXZlciwgWm9kTnVsbCwgWm9kTnVsbGFibGUsIFpvZE51bWJlciwgWm9kT2JqZWN0LCBab2RPcHRpb25hbCwgWm9kUGFyc2VkVHlwZSwgWm9kUGlwZWxpbmUsIFpvZFByb21pc2UsIFpvZFJlYWRvbmx5LCBab2RSZWNvcmQsIFpvZFR5cGUgYXMgWm9kU2NoZW1hLCBab2RTZXQsIFpvZFN0cmluZywgWm9kU3ltYm9sLCBab2RFZmZlY3RzIGFzIFpvZFRyYW5zZm9ybWVyLCBab2RUdXBsZSwgWm9kVHlwZSwgWm9kVW5kZWZpbmVkLCBab2RVbmlvbiwgWm9kVW5rbm93biwgWm9kVm9pZCwgYWRkSXNzdWVUb0NvbnRleHQsIGFueVR5cGUgYXMgYW55LCBhcnJheVR5cGUgYXMgYXJyYXksIGJpZ0ludFR5cGUgYXMgYmlnaW50LCBib29sZWFuVHlwZSBhcyBib29sZWFuLCBjb2VyY2UsIGN1c3RvbSwgZGF0ZVR5cGUgYXMgZGF0ZSwgZGF0ZXRpbWVSZWdleCwgeiBhcyBkZWZhdWx0LCBlcnJvck1hcCBhcyBkZWZhdWx0RXJyb3JNYXAsIGRpc2NyaW1pbmF0ZWRVbmlvblR5cGUgYXMgZGlzY3JpbWluYXRlZFVuaW9uLCBlZmZlY3RzVHlwZSBhcyBlZmZlY3QsIGVudW1UeXBlIGFzIGVudW0sIGZ1bmN0aW9uVHlwZSBhcyBmdW5jdGlvbiwgZ2V0RXJyb3JNYXAsIGdldFBhcnNlZFR5cGUsIGluc3RhbmNlT2ZUeXBlIGFzIGluc3RhbmNlb2YsIGludGVyc2VjdGlvblR5cGUgYXMgaW50ZXJzZWN0aW9uLCBpc0Fib3J0ZWQsIGlzQXN5bmMsIGlzRGlydHksIGlzVmFsaWQsIGxhdGUsIGxhenlUeXBlIGFzIGxhenksIGxpdGVyYWxUeXBlIGFzIGxpdGVyYWwsIG1ha2VJc3N1ZSwgbWFwVHlwZSBhcyBtYXAsIG5hblR5cGUgYXMgbmFuLCBuYXRpdmVFbnVtVHlwZSBhcyBuYXRpdmVFbnVtLCBuZXZlclR5cGUgYXMgbmV2ZXIsIG51bGxUeXBlIGFzIG51bGwsIG51bGxhYmxlVHlwZSBhcyBudWxsYWJsZSwgbnVtYmVyVHlwZSBhcyBudW1iZXIsIG9iamVjdFR5cGUgYXMgb2JqZWN0LCBvYmplY3RVdGlsLCBvYm9vbGVhbiwgb251bWJlciwgb3B0aW9uYWxUeXBlIGFzIG9wdGlvbmFsLCBvc3RyaW5nLCBwaXBlbGluZVR5cGUgYXMgcGlwZWxpbmUsIHByZXByb2Nlc3NUeXBlIGFzIHByZXByb2Nlc3MsIHByb21pc2VUeXBlIGFzIHByb21pc2UsIHF1b3RlbGVzc0pzb24sIHJlY29yZFR5cGUgYXMgcmVjb3JkLCBzZXRUeXBlIGFzIHNldCwgc2V0RXJyb3JNYXAsIHN0cmljdE9iamVjdFR5cGUgYXMgc3RyaWN0T2JqZWN0LCBzdHJpbmdUeXBlIGFzIHN0cmluZywgc3ltYm9sVHlwZSBhcyBzeW1ib2wsIGVmZmVjdHNUeXBlIGFzIHRyYW5zZm9ybWVyLCB0dXBsZVR5cGUgYXMgdHVwbGUsIHVuZGVmaW5lZFR5cGUgYXMgdW5kZWZpbmVkLCB1bmlvblR5cGUgYXMgdW5pb24sIHVua25vd25UeXBlIGFzIHVua25vd24sIHV0aWwsIHZvaWRUeXBlIGFzIHZvaWQsIHogfTtcbiIsIG51bGwsIG51bGwsICJpbXBvcnQgeyBTQ0hFTUVTIH0gZnJvbSBcIi4vdXJpXCI7XG5cbmltcG9ydCBodHRwIGZyb20gXCIuL3NjaGVtZXMvaHR0cFwiO1xuU0NIRU1FU1todHRwLnNjaGVtZV0gPSBodHRwO1xuXG5pbXBvcnQgaHR0cHMgZnJvbSBcIi4vc2NoZW1lcy9odHRwc1wiO1xuU0NIRU1FU1todHRwcy5zY2hlbWVdID0gaHR0cHM7XG5cbmltcG9ydCB3cyBmcm9tIFwiLi9zY2hlbWVzL3dzXCI7XG5TQ0hFTUVTW3dzLnNjaGVtZV0gPSB3cztcblxuaW1wb3J0IHdzcyBmcm9tIFwiLi9zY2hlbWVzL3dzc1wiO1xuU0NIRU1FU1t3c3Muc2NoZW1lXSA9IHdzcztcblxuaW1wb3J0IG1haWx0byBmcm9tIFwiLi9zY2hlbWVzL21haWx0b1wiO1xuU0NIRU1FU1ttYWlsdG8uc2NoZW1lXSA9IG1haWx0bztcblxuaW1wb3J0IHVybiBmcm9tIFwiLi9zY2hlbWVzL3VyblwiO1xuU0NIRU1FU1t1cm4uc2NoZW1lXSA9IHVybjtcblxuaW1wb3J0IHV1aWQgZnJvbSBcIi4vc2NoZW1lcy91cm4tdXVpZFwiO1xuU0NIRU1FU1t1dWlkLnNjaGVtZV0gPSB1dWlkO1xuXG5leHBvcnQgKiBmcm9tIFwiLi91cmlcIjtcbiIsICJpbXBvcnQgeyBVUklTY2hlbWVIYW5kbGVyLCBVUklDb21wb25lbnRzLCBVUklPcHRpb25zIH0gZnJvbSBcIi4uL3VyaVwiO1xuaW1wb3J0IHsgVVJOQ29tcG9uZW50cyB9IGZyb20gXCIuL3VyblwiO1xuaW1wb3J0IHsgU0NIRU1FUyB9IGZyb20gXCIuLi91cmlcIjtcblxuZXhwb3J0IGludGVyZmFjZSBVVUlEQ29tcG9uZW50cyBleHRlbmRzIFVSTkNvbXBvbmVudHMge1xuXHR1dWlkPzogc3RyaW5nO1xufVxuXG5jb25zdCBVVUlEID0gL15bMC05QS1GYS1mXXs4fSg/OlxcLVswLTlBLUZhLWZdezR9KXszfVxcLVswLTlBLUZhLWZdezEyfSQvO1xuY29uc3QgVVVJRF9QQVJTRSA9IC9eWzAtOUEtRmEtZlxcLV17MzZ9LztcblxuLy9SRkMgNDEyMlxuY29uc3QgaGFuZGxlcjpVUklTY2hlbWVIYW5kbGVyPFVVSURDb21wb25lbnRzLCBVUklPcHRpb25zLCBVUk5Db21wb25lbnRzPiA9IHtcblx0c2NoZW1lIDogXCJ1cm46dXVpZFwiLFxuXG5cdHBhcnNlIDogZnVuY3Rpb24gKHVybkNvbXBvbmVudHM6VVJOQ29tcG9uZW50cywgb3B0aW9uczpVUklPcHRpb25zKTpVVUlEQ29tcG9uZW50cyB7XG5cdFx0Y29uc3QgdXVpZENvbXBvbmVudHMgPSB1cm5Db21wb25lbnRzIGFzIFVVSURDb21wb25lbnRzO1xuXHRcdHV1aWRDb21wb25lbnRzLnV1aWQgPSB1dWlkQ29tcG9uZW50cy5uc3M7XG5cdFx0dXVpZENvbXBvbmVudHMubnNzID0gdW5kZWZpbmVkO1xuXG5cdFx0aWYgKCFvcHRpb25zLnRvbGVyYW50ICYmICghdXVpZENvbXBvbmVudHMudXVpZCB8fCAhdXVpZENvbXBvbmVudHMudXVpZC5tYXRjaChVVUlEKSkpIHtcblx0XHRcdHV1aWRDb21wb25lbnRzLmVycm9yID0gdXVpZENvbXBvbmVudHMuZXJyb3IgfHwgXCJVVUlEIGlzIG5vdCB2YWxpZC5cIjtcblx0XHR9XG5cblx0XHRyZXR1cm4gdXVpZENvbXBvbmVudHM7XG5cdH0sXG5cblx0c2VyaWFsaXplIDogZnVuY3Rpb24gKHV1aWRDb21wb25lbnRzOlVVSURDb21wb25lbnRzLCBvcHRpb25zOlVSSU9wdGlvbnMpOlVSTkNvbXBvbmVudHMge1xuXHRcdGNvbnN0IHVybkNvbXBvbmVudHMgPSB1dWlkQ29tcG9uZW50cyBhcyBVUk5Db21wb25lbnRzO1xuXHRcdC8vbm9ybWFsaXplIFVVSURcblx0XHR1cm5Db21wb25lbnRzLm5zcyA9ICh1dWlkQ29tcG9uZW50cy51dWlkIHx8IFwiXCIpLnRvTG93ZXJDYXNlKCk7XG5cdFx0cmV0dXJuIHVybkNvbXBvbmVudHM7XG5cdH0sXG59O1xuXG5leHBvcnQgZGVmYXVsdCBoYW5kbGVyOyIsICJpbXBvcnQgeyBVUklTY2hlbWVIYW5kbGVyLCBVUklDb21wb25lbnRzLCBVUklPcHRpb25zIH0gZnJvbSBcIi4uL3VyaVwiO1xuaW1wb3J0IHsgcGN0RW5jQ2hhciwgU0NIRU1FUyB9IGZyb20gXCIuLi91cmlcIjtcblxuZXhwb3J0IGludGVyZmFjZSBVUk5Db21wb25lbnRzIGV4dGVuZHMgVVJJQ29tcG9uZW50cyB7XG5cdG5pZD86c3RyaW5nO1xuXHRuc3M/OnN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVUk5PcHRpb25zIGV4dGVuZHMgVVJJT3B0aW9ucyB7XG5cdG5pZD86c3RyaW5nO1xufVxuXG5jb25zdCBOSUQkID0gXCIoPzpbMC05QS1aYS16XVswLTlBLVphLXpcXFxcLV17MSwzMX0pXCI7XG5jb25zdCBQQ1RfRU5DT0RFRCQgPSBcIig/OlxcXFwlWzAtOUEtRmEtZl17Mn0pXCI7XG5jb25zdCBUUkFOUyQkID0gXCJbMC05QS1aYS16XFxcXChcXFxcKVxcXFwrXFxcXCxcXFxcLVxcXFwuXFxcXDpcXFxcPVxcXFxAXFxcXDtcXFxcJFxcXFxfXFxcXCFcXFxcKlxcXFwnXFxcXC9cXFxcP1xcXFwjXVwiO1xuY29uc3QgTlNTJCA9IFwiKD86KD86XCIgKyBQQ1RfRU5DT0RFRCQgKyBcInxcIiArIFRSQU5TJCQgKyBcIikrKVwiO1xuY29uc3QgVVJOX1NDSEVNRSA9IG5ldyBSZWdFeHAoXCJedXJuXFxcXDooXCIgKyBOSUQkICsgXCIpJFwiKTtcbmNvbnN0IFVSTl9QQVRIID0gbmV3IFJlZ0V4cChcIl4oXCIgKyBOSUQkICsgXCIpXFxcXDooXCIgKyBOU1MkICsgXCIpJFwiKTtcbmNvbnN0IFVSTl9QQVJTRSA9IC9eKFteXFw6XSspXFw6KC4qKS87XG5jb25zdCBVUk5fRVhDTFVERUQgPSAvW1xceDAwLVxceDIwXFxcXFxcXCJcXCZcXDxcXD5cXFtcXF1cXF5cXGBcXHtcXHxcXH1cXH5cXHg3Ri1cXHhGRl0vZztcblxuLy9SRkMgMjE0MVxuY29uc3QgaGFuZGxlcjpVUklTY2hlbWVIYW5kbGVyPFVSTkNvbXBvbmVudHMsVVJOT3B0aW9ucz4gPSB7XG5cdHNjaGVtZSA6IFwidXJuXCIsXG5cblx0cGFyc2UgOiBmdW5jdGlvbiAoY29tcG9uZW50czpVUklDb21wb25lbnRzLCBvcHRpb25zOlVSTk9wdGlvbnMpOlVSTkNvbXBvbmVudHMge1xuXHRcdGNvbnN0IG1hdGNoZXMgPSBjb21wb25lbnRzLnBhdGggJiYgY29tcG9uZW50cy5wYXRoLm1hdGNoKFVSTl9QQVJTRSk7XG5cdFx0bGV0IHVybkNvbXBvbmVudHMgPSBjb21wb25lbnRzIGFzIFVSTkNvbXBvbmVudHM7XG5cblx0XHRpZiAobWF0Y2hlcykge1xuXHRcdFx0Y29uc3Qgc2NoZW1lID0gb3B0aW9ucy5zY2hlbWUgfHwgdXJuQ29tcG9uZW50cy5zY2hlbWUgfHwgXCJ1cm5cIjtcblx0XHRcdGNvbnN0IG5pZCA9IG1hdGNoZXNbMV0udG9Mb3dlckNhc2UoKTtcblx0XHRcdGNvbnN0IG5zcyA9IG1hdGNoZXNbMl07XG5cdFx0XHRjb25zdCB1cm5TY2hlbWUgPSBgJHtzY2hlbWV9OiR7b3B0aW9ucy5uaWQgfHwgbmlkfWA7XG5cdFx0XHRjb25zdCBzY2hlbWVIYW5kbGVyID0gU0NIRU1FU1t1cm5TY2hlbWVdO1xuXG5cdFx0XHR1cm5Db21wb25lbnRzLm5pZCA9IG5pZDtcblx0XHRcdHVybkNvbXBvbmVudHMubnNzID0gbnNzO1xuXHRcdFx0dXJuQ29tcG9uZW50cy5wYXRoID0gdW5kZWZpbmVkO1xuXG5cdFx0XHRpZiAoc2NoZW1lSGFuZGxlcikge1xuXHRcdFx0XHR1cm5Db21wb25lbnRzID0gc2NoZW1lSGFuZGxlci5wYXJzZSh1cm5Db21wb25lbnRzLCBvcHRpb25zKSBhcyBVUk5Db21wb25lbnRzO1xuXHRcdFx0fVxuXHRcdH0gZWxzZSB7XG5cdFx0XHR1cm5Db21wb25lbnRzLmVycm9yID0gdXJuQ29tcG9uZW50cy5lcnJvciB8fCBcIlVSTiBjYW4gbm90IGJlIHBhcnNlZC5cIjtcblx0XHR9XG5cblx0XHRyZXR1cm4gdXJuQ29tcG9uZW50cztcblx0fSxcblxuXHRzZXJpYWxpemUgOiBmdW5jdGlvbiAodXJuQ29tcG9uZW50czpVUk5Db21wb25lbnRzLCBvcHRpb25zOlVSTk9wdGlvbnMpOlVSSUNvbXBvbmVudHMge1xuXHRcdGNvbnN0IHNjaGVtZSA9IG9wdGlvbnMuc2NoZW1lIHx8IHVybkNvbXBvbmVudHMuc2NoZW1lIHx8IFwidXJuXCI7XG5cdFx0Y29uc3QgbmlkID0gdXJuQ29tcG9uZW50cy5uaWQ7XG5cdFx0Y29uc3QgdXJuU2NoZW1lID0gYCR7c2NoZW1lfToke29wdGlvbnMubmlkIHx8IG5pZH1gO1xuXHRcdGNvbnN0IHNjaGVtZUhhbmRsZXIgPSBTQ0hFTUVTW3VyblNjaGVtZV07XG5cblx0XHRpZiAoc2NoZW1lSGFuZGxlcikge1xuXHRcdFx0dXJuQ29tcG9uZW50cyA9IHNjaGVtZUhhbmRsZXIuc2VyaWFsaXplKHVybkNvbXBvbmVudHMsIG9wdGlvbnMpIGFzIFVSTkNvbXBvbmVudHM7XG5cdFx0fVxuXG5cdFx0Y29uc3QgdXJpQ29tcG9uZW50cyA9IHVybkNvbXBvbmVudHMgYXMgVVJJQ29tcG9uZW50cztcblx0XHRjb25zdCBuc3MgPSB1cm5Db21wb25lbnRzLm5zcztcblx0XHR1cmlDb21wb25lbnRzLnBhdGggPSBgJHtuaWQgfHwgb3B0aW9ucy5uaWR9OiR7bnNzfWA7XG5cblx0XHRyZXR1cm4gdXJpQ29tcG9uZW50cztcblx0fSxcbn07XG5cbmV4cG9ydCBkZWZhdWx0IGhhbmRsZXI7IiwgImltcG9ydCB7IFVSSVNjaGVtZUhhbmRsZXIsIFVSSUNvbXBvbmVudHMsIFVSSU9wdGlvbnMgfSBmcm9tIFwiLi4vdXJpXCI7XG5pbXBvcnQgeyBwY3RFbmNDaGFyLCBwY3REZWNDaGFycywgdW5lc2NhcGVDb21wb25lbnQgfSBmcm9tIFwiLi4vdXJpXCI7XG5pbXBvcnQgcHVueWNvZGUgZnJvbSBcInB1bnljb2RlXCI7XG5pbXBvcnQgeyBtZXJnZSwgc3ViZXhwLCB0b1VwcGVyQ2FzZSwgdG9BcnJheSB9IGZyb20gXCIuLi91dGlsXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWFpbHRvSGVhZGVycyB7XG5cdFtoZm5hbWU6c3RyaW5nXTpzdHJpbmdcbn1cblxuZXhwb3J0IGludGVyZmFjZSBNYWlsdG9Db21wb25lbnRzIGV4dGVuZHMgVVJJQ29tcG9uZW50cyB7XG5cdHRvOkFycmF5PHN0cmluZz4sXG5cdGhlYWRlcnM/Ok1haWx0b0hlYWRlcnMsXG5cdHN1YmplY3Q/OnN0cmluZyxcblx0Ym9keT86c3RyaW5nXG59XG5cbmNvbnN0IE86TWFpbHRvSGVhZGVycyA9IHt9O1xuY29uc3QgaXNJUkkgPSB0cnVlO1xuXG4vL1JGQyAzOTg2XG5jb25zdCBVTlJFU0VSVkVEJCQgPSBcIltBLVphLXowLTlcXFxcLVxcXFwuXFxcXF9cXFxcflwiICsgKGlzSVJJID8gXCJcXFxceEEwLVxcXFx1MjAwRFxcXFx1MjAxMC1cXFxcdTIwMjlcXFxcdTIwMkYtXFxcXHVEN0ZGXFxcXHVGOTAwLVxcXFx1RkRDRlxcXFx1RkRGMC1cXFxcdUZGRUZcIiA6IFwiXCIpICsgXCJdXCI7XG5jb25zdCBIRVhESUckJCA9IFwiWzAtOUEtRmEtZl1cIjsgIC8vY2FzZS1pbnNlbnNpdGl2ZVxuY29uc3QgUENUX0VOQ09ERUQkID0gc3ViZXhwKHN1YmV4cChcIiVbRUZlZl1cIiArIEhFWERJRyQkICsgXCIlXCIgKyBIRVhESUckJCArIEhFWERJRyQkICsgXCIlXCIgKyBIRVhESUckJCArIEhFWERJRyQkKSArIFwifFwiICsgc3ViZXhwKFwiJVs4OUEtRmEtZl1cIiArIEhFWERJRyQkICsgXCIlXCIgKyBIRVhESUckJCArIEhFWERJRyQkKSArIFwifFwiICsgc3ViZXhwKFwiJVwiICsgSEVYRElHJCQgKyBIRVhESUckJCkpOyAgLy9leHBhbmRlZFxuXG4vL1JGQyA1MzIyLCBleGNlcHQgdGhlc2Ugc3ltYm9scyBhcyBwZXIgUkZDIDYwNjg6IEAgOiAvID8gIyBbIF0gJiA7ID1cbi8vY29uc3QgQVRFWFQkJCA9IFwiW0EtWmEtejAtOVxcXFwhXFxcXCNcXFxcJFxcXFwlXFxcXCZcXFxcJ1xcXFwqXFxcXCtcXFxcLVxcXFwvXFxcXD1cXFxcP1xcXFxeXFxcXF9cXFxcYFxcXFx7XFxcXHxcXFxcfVxcXFx+XVwiO1xuLy9jb25zdCBXU1AkJCA9IFwiW1xcXFx4MjBcXFxceDA5XVwiO1xuLy9jb25zdCBPQlNfUVRFWFQkJCA9IFwiW1xcXFx4MDEtXFxcXHgwOFxcXFx4MEJcXFxceDBDXFxcXHgwRS1cXFxceDFGXFxcXHg3Rl1cIjsgIC8vKCVkMS04IC8gJWQxMS0xMiAvICVkMTQtMzEgLyAlZDEyNylcbi8vY29uc3QgUVRFWFQkJCA9IG1lcmdlKFwiW1xcXFx4MjFcXFxceDIzLVxcXFx4NUJcXFxceDVELVxcXFx4N0VdXCIsIE9CU19RVEVYVCQkKTsgIC8vJWQzMyAvICVkMzUtOTEgLyAlZDkzLTEyNiAvIG9icy1xdGV4dFxuLy9jb25zdCBWQ0hBUiQkID0gXCJbXFxcXHgyMS1cXFxceDdFXVwiO1xuLy9jb25zdCBXU1AkJCA9IFwiW1xcXFx4MjBcXFxceDA5XVwiO1xuLy9jb25zdCBPQlNfUVAkID0gc3ViZXhwKFwiXFxcXFxcXFxcIiArIG1lcmdlKFwiW1xcXFx4MDBcXFxceDBEXFxcXHgwQV1cIiwgT0JTX1FURVhUJCQpKTsgIC8vJWQwIC8gQ1IgLyBMRiAvIG9icy1xdGV4dFxuLy9jb25zdCBGV1MkID0gc3ViZXhwKHN1YmV4cChXU1AkJCArIFwiKlwiICsgXCJcXFxceDBEXFxcXHgwQVwiKSArIFwiP1wiICsgV1NQJCQgKyBcIitcIik7XG4vL2NvbnN0IFFVT1RFRF9QQUlSJCA9IHN1YmV4cChzdWJleHAoXCJcXFxcXFxcXFwiICsgc3ViZXhwKFZDSEFSJCQgKyBcInxcIiArIFdTUCQkKSkgKyBcInxcIiArIE9CU19RUCQpO1xuLy9jb25zdCBRVU9URURfU1RSSU5HJCA9IHN1YmV4cCgnXFxcXFwiJyArIHN1YmV4cChGV1MkICsgXCI/XCIgKyBRQ09OVEVOVCQpICsgXCIqXCIgKyBGV1MkICsgXCI/XCIgKyAnXFxcXFwiJyk7XG5jb25zdCBBVEVYVCQkID0gXCJbQS1aYS16MC05XFxcXCFcXFxcJFxcXFwlXFxcXCdcXFxcKlxcXFwrXFxcXC1cXFxcXlxcXFxfXFxcXGBcXFxce1xcXFx8XFxcXH1cXFxcfl1cIjtcbmNvbnN0IFFURVhUJCQgPSBcIltcXFxcIVxcXFwkXFxcXCVcXFxcJ1xcXFwoXFxcXClcXFxcKlxcXFwrXFxcXCxcXFxcLVxcXFwuMC05XFxcXDxcXFxcPkEtWlxcXFx4NUUtXFxcXHg3RV1cIjtcbmNvbnN0IFZDSEFSJCQgPSBtZXJnZShRVEVYVCQkLCBcIltcXFxcXFxcIlxcXFxcXFxcXVwiKTtcbmNvbnN0IERPVF9BVE9NX1RFWFQkID0gc3ViZXhwKEFURVhUJCQgKyBcIitcIiArIHN1YmV4cChcIlxcXFwuXCIgKyBBVEVYVCQkICsgXCIrXCIpICsgXCIqXCIpO1xuY29uc3QgUVVPVEVEX1BBSVIkID0gc3ViZXhwKFwiXFxcXFxcXFxcIiArIFZDSEFSJCQpO1xuY29uc3QgUUNPTlRFTlQkID0gc3ViZXhwKFFURVhUJCQgKyBcInxcIiArIFFVT1RFRF9QQUlSJCk7XG5jb25zdCBRVU9URURfU1RSSU5HJCA9IHN1YmV4cCgnXFxcXFwiJyArIFFDT05URU5UJCArIFwiKlwiICsgJ1xcXFxcIicpO1xuXG4vL1JGQyA2MDY4XG5jb25zdCBEVEVYVF9OT19PQlMkJCA9IFwiW1xcXFx4MjEtXFxcXHg1QVxcXFx4NUUtXFxcXHg3RV1cIjsgIC8vJWQzMy05MCAvICVkOTQtMTI2XG5jb25zdCBTT01FX0RFTElNUyQkID0gXCJbXFxcXCFcXFxcJFxcXFwnXFxcXChcXFxcKVxcXFwqXFxcXCtcXFxcLFxcXFw7XFxcXDpcXFxcQF1cIjtcbmNvbnN0IFFDSEFSJCA9IHN1YmV4cChVTlJFU0VSVkVEJCQgKyBcInxcIiArIFBDVF9FTkNPREVEJCArIFwifFwiICsgU09NRV9ERUxJTVMkJCk7XG5jb25zdCBET01BSU4kID0gc3ViZXhwKERPVF9BVE9NX1RFWFQkICsgXCJ8XCIgKyBcIlxcXFxbXCIgKyBEVEVYVF9OT19PQlMkJCArIFwiKlwiICsgXCJcXFxcXVwiKTtcbmNvbnN0IExPQ0FMX1BBUlQkID0gc3ViZXhwKERPVF9BVE9NX1RFWFQkICsgXCJ8XCIgKyBRVU9URURfU1RSSU5HJCk7XG5jb25zdCBBRERSX1NQRUMkID0gc3ViZXhwKExPQ0FMX1BBUlQkICsgXCJcXFxcQFwiICsgRE9NQUlOJCk7XG5jb25zdCBUTyQgPSBzdWJleHAoQUREUl9TUEVDJCArIHN1YmV4cChcIlxcXFwsXCIgKyBBRERSX1NQRUMkKSArIFwiKlwiKTtcbmNvbnN0IEhGTkFNRSQgPSBzdWJleHAoUUNIQVIkICsgXCIqXCIpO1xuY29uc3QgSEZWQUxVRSQgPSBIRk5BTUUkO1xuY29uc3QgSEZJRUxEJCA9IHN1YmV4cChIRk5BTUUkICsgXCJcXFxcPVwiICsgSEZWQUxVRSQpO1xuY29uc3QgSEZJRUxEUzIkID0gc3ViZXhwKEhGSUVMRCQgKyBzdWJleHAoXCJcXFxcJlwiICsgSEZJRUxEJCkgKyBcIipcIik7XG5jb25zdCBIRklFTERTJCA9IHN1YmV4cChcIlxcXFw/XCIgKyBIRklFTERTMiQpO1xuY29uc3QgTUFJTFRPX1VSSSA9IG5ldyBSZWdFeHAoXCJebWFpbHRvXFxcXDpcIiArIFRPJCArIFwiP1wiICsgSEZJRUxEUyQgKyBcIj8kXCIpO1xuXG5jb25zdCBVTlJFU0VSVkVEID0gbmV3IFJlZ0V4cChVTlJFU0VSVkVEJCQsIFwiZ1wiKTtcbmNvbnN0IFBDVF9FTkNPREVEID0gbmV3IFJlZ0V4cChQQ1RfRU5DT0RFRCQsIFwiZ1wiKTtcbmNvbnN0IE5PVF9MT0NBTF9QQVJUID0gbmV3IFJlZ0V4cChtZXJnZShcIlteXVwiLCBBVEVYVCQkLCBcIltcXFxcLl1cIiwgJ1tcXFxcXCJdJywgVkNIQVIkJCksIFwiZ1wiKTtcbmNvbnN0IE5PVF9ET01BSU4gPSBuZXcgUmVnRXhwKG1lcmdlKFwiW15dXCIsIEFURVhUJCQsIFwiW1xcXFwuXVwiLCBcIltcXFxcW11cIiwgRFRFWFRfTk9fT0JTJCQsIFwiW1xcXFxdXVwiKSwgXCJnXCIpO1xuY29uc3QgTk9UX0hGTkFNRSA9IG5ldyBSZWdFeHAobWVyZ2UoXCJbXl1cIiwgVU5SRVNFUlZFRCQkLCBTT01FX0RFTElNUyQkKSwgXCJnXCIpO1xuY29uc3QgTk9UX0hGVkFMVUUgPSBOT1RfSEZOQU1FO1xuY29uc3QgVE8gPSBuZXcgUmVnRXhwKFwiXlwiICsgVE8kICsgXCIkXCIpO1xuY29uc3QgSEZJRUxEUyA9IG5ldyBSZWdFeHAoXCJeXCIgKyBIRklFTERTMiQgKyBcIiRcIik7XG5cbmZ1bmN0aW9uIGRlY29kZVVucmVzZXJ2ZWQoc3RyOnN0cmluZyk6c3RyaW5nIHtcblx0Y29uc3QgZGVjU3RyID0gcGN0RGVjQ2hhcnMoc3RyKTtcblx0cmV0dXJuICghZGVjU3RyLm1hdGNoKFVOUkVTRVJWRUQpID8gc3RyIDogZGVjU3RyKTtcbn1cblxuY29uc3QgaGFuZGxlcjpVUklTY2hlbWVIYW5kbGVyPE1haWx0b0NvbXBvbmVudHM+ID0gIHtcblx0c2NoZW1lIDogXCJtYWlsdG9cIixcblxuXHRwYXJzZSA6IGZ1bmN0aW9uIChjb21wb25lbnRzOlVSSUNvbXBvbmVudHMsIG9wdGlvbnM6VVJJT3B0aW9ucyk6TWFpbHRvQ29tcG9uZW50cyB7XG5cdFx0Y29uc3QgbWFpbHRvQ29tcG9uZW50cyA9IGNvbXBvbmVudHMgYXMgTWFpbHRvQ29tcG9uZW50cztcblx0XHRjb25zdCB0byA9IG1haWx0b0NvbXBvbmVudHMudG8gPSAobWFpbHRvQ29tcG9uZW50cy5wYXRoID8gbWFpbHRvQ29tcG9uZW50cy5wYXRoLnNwbGl0KFwiLFwiKSA6IFtdKTtcblx0XHRtYWlsdG9Db21wb25lbnRzLnBhdGggPSB1bmRlZmluZWQ7XG5cblx0XHRpZiAobWFpbHRvQ29tcG9uZW50cy5xdWVyeSkge1xuXHRcdFx0bGV0IHVua25vd25IZWFkZXJzID0gZmFsc2Vcblx0XHRcdGNvbnN0IGhlYWRlcnM6TWFpbHRvSGVhZGVycyA9IHt9O1xuXHRcdFx0Y29uc3QgaGZpZWxkcyA9IG1haWx0b0NvbXBvbmVudHMucXVlcnkuc3BsaXQoXCImXCIpO1xuXG5cdFx0XHRmb3IgKGxldCB4ID0gMCwgeGwgPSBoZmllbGRzLmxlbmd0aDsgeCA8IHhsOyArK3gpIHtcblx0XHRcdFx0Y29uc3QgaGZpZWxkID0gaGZpZWxkc1t4XS5zcGxpdChcIj1cIik7XG5cblx0XHRcdFx0c3dpdGNoIChoZmllbGRbMF0pIHtcblx0XHRcdFx0XHRjYXNlIFwidG9cIjpcblx0XHRcdFx0XHRcdGNvbnN0IHRvQWRkcnMgPSBoZmllbGRbMV0uc3BsaXQoXCIsXCIpO1xuXHRcdFx0XHRcdFx0Zm9yIChsZXQgeCA9IDAsIHhsID0gdG9BZGRycy5sZW5ndGg7IHggPCB4bDsgKyt4KSB7XG5cdFx0XHRcdFx0XHRcdHRvLnB1c2godG9BZGRyc1t4XSk7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0XHRjYXNlIFwic3ViamVjdFwiOlxuXHRcdFx0XHRcdFx0bWFpbHRvQ29tcG9uZW50cy5zdWJqZWN0ID0gdW5lc2NhcGVDb21wb25lbnQoaGZpZWxkWzFdLCBvcHRpb25zKTtcblx0XHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHRcdGNhc2UgXCJib2R5XCI6XG5cdFx0XHRcdFx0XHRtYWlsdG9Db21wb25lbnRzLmJvZHkgPSB1bmVzY2FwZUNvbXBvbmVudChoZmllbGRbMV0sIG9wdGlvbnMpO1xuXHRcdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdFx0ZGVmYXVsdDpcblx0XHRcdFx0XHRcdHVua25vd25IZWFkZXJzID0gdHJ1ZTtcblx0XHRcdFx0XHRcdGhlYWRlcnNbdW5lc2NhcGVDb21wb25lbnQoaGZpZWxkWzBdLCBvcHRpb25zKV0gPSB1bmVzY2FwZUNvbXBvbmVudChoZmllbGRbMV0sIG9wdGlvbnMpO1xuXHRcdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0aWYgKHVua25vd25IZWFkZXJzKSBtYWlsdG9Db21wb25lbnRzLmhlYWRlcnMgPSBoZWFkZXJzO1xuXHRcdH1cblxuXHRcdG1haWx0b0NvbXBvbmVudHMucXVlcnkgPSB1bmRlZmluZWQ7XG5cblx0XHRmb3IgKGxldCB4ID0gMCwgeGwgPSB0by5sZW5ndGg7IHggPCB4bDsgKyt4KSB7XG5cdFx0XHRjb25zdCBhZGRyID0gdG9beF0uc3BsaXQoXCJAXCIpO1xuXG5cdFx0XHRhZGRyWzBdID0gdW5lc2NhcGVDb21wb25lbnQoYWRkclswXSk7XG5cblx0XHRcdGlmICghb3B0aW9ucy51bmljb2RlU3VwcG9ydCkge1xuXHRcdFx0XHQvL2NvbnZlcnQgVW5pY29kZSBJRE4gLT4gQVNDSUkgSUROXG5cdFx0XHRcdHRyeSB7XG5cdFx0XHRcdFx0YWRkclsxXSA9IHB1bnljb2RlLnRvQVNDSUkodW5lc2NhcGVDb21wb25lbnQoYWRkclsxXSwgb3B0aW9ucykudG9Mb3dlckNhc2UoKSk7XG5cdFx0XHRcdH0gY2F0Y2ggKGUpIHtcblx0XHRcdFx0XHRtYWlsdG9Db21wb25lbnRzLmVycm9yID0gbWFpbHRvQ29tcG9uZW50cy5lcnJvciB8fCBcIkVtYWlsIGFkZHJlc3MncyBkb21haW4gbmFtZSBjYW4gbm90IGJlIGNvbnZlcnRlZCB0byBBU0NJSSB2aWEgcHVueWNvZGU6IFwiICsgZTtcblx0XHRcdFx0fVxuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0YWRkclsxXSA9IHVuZXNjYXBlQ29tcG9uZW50KGFkZHJbMV0sIG9wdGlvbnMpLnRvTG93ZXJDYXNlKCk7XG5cdFx0XHR9XG5cblx0XHRcdHRvW3hdID0gYWRkci5qb2luKFwiQFwiKTtcblx0XHR9XG5cblx0XHRyZXR1cm4gbWFpbHRvQ29tcG9uZW50cztcblx0fSxcblxuXHRzZXJpYWxpemUgOiBmdW5jdGlvbiAobWFpbHRvQ29tcG9uZW50czpNYWlsdG9Db21wb25lbnRzLCBvcHRpb25zOlVSSU9wdGlvbnMpOlVSSUNvbXBvbmVudHMge1xuXHRcdGNvbnN0IGNvbXBvbmVudHMgPSBtYWlsdG9Db21wb25lbnRzIGFzIFVSSUNvbXBvbmVudHM7XG5cdFx0Y29uc3QgdG8gPSB0b0FycmF5KG1haWx0b0NvbXBvbmVudHMudG8pO1xuXHRcdGlmICh0bykge1xuXHRcdFx0Zm9yIChsZXQgeCA9IDAsIHhsID0gdG8ubGVuZ3RoOyB4IDwgeGw7ICsreCkge1xuXHRcdFx0XHRjb25zdCB0b0FkZHIgPSBTdHJpbmcodG9beF0pO1xuXHRcdFx0XHRjb25zdCBhdElkeCA9IHRvQWRkci5sYXN0SW5kZXhPZihcIkBcIik7XG5cdFx0XHRcdGNvbnN0IGxvY2FsUGFydCA9ICh0b0FkZHIuc2xpY2UoMCwgYXRJZHgpKS5yZXBsYWNlKFBDVF9FTkNPREVELCBkZWNvZGVVbnJlc2VydmVkKS5yZXBsYWNlKFBDVF9FTkNPREVELCB0b1VwcGVyQ2FzZSkucmVwbGFjZShOT1RfTE9DQUxfUEFSVCwgcGN0RW5jQ2hhcik7XG5cdFx0XHRcdGxldCBkb21haW4gPSB0b0FkZHIuc2xpY2UoYXRJZHggKyAxKTtcblxuXHRcdFx0XHQvL2NvbnZlcnQgSUROIHZpYSBwdW55Y29kZVxuXHRcdFx0XHR0cnkge1xuXHRcdFx0XHRcdGRvbWFpbiA9ICghb3B0aW9ucy5pcmkgPyBwdW55Y29kZS50b0FTQ0lJKHVuZXNjYXBlQ29tcG9uZW50KGRvbWFpbiwgb3B0aW9ucykudG9Mb3dlckNhc2UoKSkgOiBwdW55Y29kZS50b1VuaWNvZGUoZG9tYWluKSk7XG5cdFx0XHRcdH0gY2F0Y2ggKGUpIHtcblx0XHRcdFx0XHRjb21wb25lbnRzLmVycm9yID0gY29tcG9uZW50cy5lcnJvciB8fCBcIkVtYWlsIGFkZHJlc3MncyBkb21haW4gbmFtZSBjYW4gbm90IGJlIGNvbnZlcnRlZCB0byBcIiArICghb3B0aW9ucy5pcmkgPyBcIkFTQ0lJXCIgOiBcIlVuaWNvZGVcIikgKyBcIiB2aWEgcHVueWNvZGU6IFwiICsgZTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdHRvW3hdID0gbG9jYWxQYXJ0ICsgXCJAXCIgKyBkb21haW47XG5cdFx0XHR9XG5cblx0XHRcdGNvbXBvbmVudHMucGF0aCA9IHRvLmpvaW4oXCIsXCIpO1xuXHRcdH1cblxuXHRcdGNvbnN0IGhlYWRlcnMgPSBtYWlsdG9Db21wb25lbnRzLmhlYWRlcnMgPSBtYWlsdG9Db21wb25lbnRzLmhlYWRlcnMgfHwge307XG5cblx0XHRpZiAobWFpbHRvQ29tcG9uZW50cy5zdWJqZWN0KSBoZWFkZXJzW1wic3ViamVjdFwiXSA9IG1haWx0b0NvbXBvbmVudHMuc3ViamVjdDtcblx0XHRpZiAobWFpbHRvQ29tcG9uZW50cy5ib2R5KSBoZWFkZXJzW1wiYm9keVwiXSA9IG1haWx0b0NvbXBvbmVudHMuYm9keTtcblxuXHRcdGNvbnN0IGZpZWxkcyA9IFtdO1xuXHRcdGZvciAoY29uc3QgbmFtZSBpbiBoZWFkZXJzKSB7XG5cdFx0XHRpZiAoaGVhZGVyc1tuYW1lXSAhPT0gT1tuYW1lXSkge1xuXHRcdFx0XHRmaWVsZHMucHVzaChcblx0XHRcdFx0XHRuYW1lLnJlcGxhY2UoUENUX0VOQ09ERUQsIGRlY29kZVVucmVzZXJ2ZWQpLnJlcGxhY2UoUENUX0VOQ09ERUQsIHRvVXBwZXJDYXNlKS5yZXBsYWNlKE5PVF9IRk5BTUUsIHBjdEVuY0NoYXIpICtcblx0XHRcdFx0XHRcIj1cIiArXG5cdFx0XHRcdFx0aGVhZGVyc1tuYW1lXS5yZXBsYWNlKFBDVF9FTkNPREVELCBkZWNvZGVVbnJlc2VydmVkKS5yZXBsYWNlKFBDVF9FTkNPREVELCB0b1VwcGVyQ2FzZSkucmVwbGFjZShOT1RfSEZWQUxVRSwgcGN0RW5jQ2hhcilcblx0XHRcdFx0KTtcblx0XHRcdH1cblx0XHR9XG5cdFx0aWYgKGZpZWxkcy5sZW5ndGgpIHtcblx0XHRcdGNvbXBvbmVudHMucXVlcnkgPSBmaWVsZHMuam9pbihcIiZcIik7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIGNvbXBvbmVudHM7XG5cdH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgaGFuZGxlcjsiLCAiaW1wb3J0IHsgVVJJU2NoZW1lSGFuZGxlciwgVVJJQ29tcG9uZW50cywgVVJJT3B0aW9ucyB9IGZyb20gXCIuLi91cmlcIjtcbmltcG9ydCB3cyBmcm9tIFwiLi93c1wiO1xuXG5jb25zdCBoYW5kbGVyOlVSSVNjaGVtZUhhbmRsZXIgPSB7XG5cdHNjaGVtZSA6IFwid3NzXCIsXG5cdGRvbWFpbkhvc3QgOiB3cy5kb21haW5Ib3N0LFxuXHRwYXJzZSA6IHdzLnBhcnNlLFxuXHRzZXJpYWxpemUgOiB3cy5zZXJpYWxpemVcbn1cblxuZXhwb3J0IGRlZmF1bHQgaGFuZGxlcjsiLCAiaW1wb3J0IHsgVVJJU2NoZW1lSGFuZGxlciwgVVJJQ29tcG9uZW50cywgVVJJT3B0aW9ucyB9IGZyb20gXCIuLi91cmlcIjtcblxuZXhwb3J0IGludGVyZmFjZSBXU0NvbXBvbmVudHMgZXh0ZW5kcyBVUklDb21wb25lbnRzIHtcblx0cmVzb3VyY2VOYW1lPzogc3RyaW5nO1xuXHRzZWN1cmU/OiBib29sZWFuO1xufVxuXG5mdW5jdGlvbiBpc1NlY3VyZSh3c0NvbXBvbmVudHM6V1NDb21wb25lbnRzKTpib29sZWFuIHtcblx0cmV0dXJuIHR5cGVvZiB3c0NvbXBvbmVudHMuc2VjdXJlID09PSAnYm9vbGVhbicgPyB3c0NvbXBvbmVudHMuc2VjdXJlIDogU3RyaW5nKHdzQ29tcG9uZW50cy5zY2hlbWUpLnRvTG93ZXJDYXNlKCkgPT09IFwid3NzXCI7XG59XG5cbi8vUkZDIDY0NTVcbmNvbnN0IGhhbmRsZXI6VVJJU2NoZW1lSGFuZGxlciA9IHtcblx0c2NoZW1lIDogXCJ3c1wiLFxuXG5cdGRvbWFpbkhvc3QgOiB0cnVlLFxuXG5cdHBhcnNlIDogZnVuY3Rpb24gKGNvbXBvbmVudHM6VVJJQ29tcG9uZW50cywgb3B0aW9uczpVUklPcHRpb25zKTpXU0NvbXBvbmVudHMge1xuXHRcdGNvbnN0IHdzQ29tcG9uZW50cyA9IGNvbXBvbmVudHMgYXMgV1NDb21wb25lbnRzO1xuXG5cdFx0Ly9pbmRpY2F0ZSBpZiB0aGUgc2VjdXJlIGZsYWcgaXMgc2V0XG5cdFx0d3NDb21wb25lbnRzLnNlY3VyZSA9IGlzU2VjdXJlKHdzQ29tcG9uZW50cyk7XG5cblx0XHQvL2NvbnN0cnVjdCByZXNvdWNlIG5hbWVcblx0XHR3c0NvbXBvbmVudHMucmVzb3VyY2VOYW1lID0gKHdzQ29tcG9uZW50cy5wYXRoIHx8ICcvJykgKyAod3NDb21wb25lbnRzLnF1ZXJ5ID8gJz8nICsgd3NDb21wb25lbnRzLnF1ZXJ5IDogJycpO1xuXHRcdHdzQ29tcG9uZW50cy5wYXRoID0gdW5kZWZpbmVkO1xuXHRcdHdzQ29tcG9uZW50cy5xdWVyeSA9IHVuZGVmaW5lZDtcblxuXHRcdHJldHVybiB3c0NvbXBvbmVudHM7XG5cdH0sXG5cblx0c2VyaWFsaXplIDogZnVuY3Rpb24gKHdzQ29tcG9uZW50czpXU0NvbXBvbmVudHMsIG9wdGlvbnM6VVJJT3B0aW9ucyk6VVJJQ29tcG9uZW50cyB7XG5cdFx0Ly9ub3JtYWxpemUgdGhlIGRlZmF1bHQgcG9ydFxuXHRcdGlmICh3c0NvbXBvbmVudHMucG9ydCA9PT0gKGlzU2VjdXJlKHdzQ29tcG9uZW50cykgPyA0NDMgOiA4MCkgfHwgd3NDb21wb25lbnRzLnBvcnQgPT09IFwiXCIpIHtcblx0XHRcdHdzQ29tcG9uZW50cy5wb3J0ID0gdW5kZWZpbmVkO1xuXHRcdH1cblxuXHRcdC8vZW5zdXJlIHNjaGVtZSBtYXRjaGVzIHNlY3VyZSBmbGFnXG5cdFx0aWYgKHR5cGVvZiB3c0NvbXBvbmVudHMuc2VjdXJlID09PSAnYm9vbGVhbicpIHtcblx0XHRcdHdzQ29tcG9uZW50cy5zY2hlbWUgPSAod3NDb21wb25lbnRzLnNlY3VyZSA/ICd3c3MnIDogJ3dzJyk7XG5cdFx0XHR3c0NvbXBvbmVudHMuc2VjdXJlID0gdW5kZWZpbmVkO1xuXHRcdH1cblxuXHRcdC8vcmVjb25zdHJ1Y3QgcGF0aCBmcm9tIHJlc291cmNlIG5hbWVcblx0XHRpZiAod3NDb21wb25lbnRzLnJlc291cmNlTmFtZSkge1xuXHRcdFx0Y29uc3QgW3BhdGgsIHF1ZXJ5XSA9IHdzQ29tcG9uZW50cy5yZXNvdXJjZU5hbWUuc3BsaXQoJz8nKTtcblx0XHRcdHdzQ29tcG9uZW50cy5wYXRoID0gKHBhdGggJiYgcGF0aCAhPT0gJy8nID8gcGF0aCA6IHVuZGVmaW5lZCk7XG5cdFx0XHR3c0NvbXBvbmVudHMucXVlcnkgPSBxdWVyeTtcblx0XHRcdHdzQ29tcG9uZW50cy5yZXNvdXJjZU5hbWUgPSB1bmRlZmluZWQ7XG5cdFx0fVxuXG5cdFx0Ly9mb3JiaWQgZnJhZ21lbnQgY29tcG9uZW50XG5cdFx0d3NDb21wb25lbnRzLmZyYWdtZW50ID0gdW5kZWZpbmVkO1xuXG5cdFx0cmV0dXJuIHdzQ29tcG9uZW50cztcblx0fVxufTtcblxuZXhwb3J0IGRlZmF1bHQgaGFuZGxlcjsiLCAiaW1wb3J0IHsgVVJJU2NoZW1lSGFuZGxlciwgVVJJQ29tcG9uZW50cywgVVJJT3B0aW9ucyB9IGZyb20gXCIuLi91cmlcIjtcbmltcG9ydCBodHRwIGZyb20gXCIuL2h0dHBcIjtcblxuY29uc3QgaGFuZGxlcjpVUklTY2hlbWVIYW5kbGVyID0ge1xuXHRzY2hlbWUgOiBcImh0dHBzXCIsXG5cdGRvbWFpbkhvc3QgOiBodHRwLmRvbWFpbkhvc3QsXG5cdHBhcnNlIDogaHR0cC5wYXJzZSxcblx0c2VyaWFsaXplIDogaHR0cC5zZXJpYWxpemVcbn1cblxuZXhwb3J0IGRlZmF1bHQgaGFuZGxlcjsiLCAiaW1wb3J0IHsgVVJJU2NoZW1lSGFuZGxlciwgVVJJQ29tcG9uZW50cywgVVJJT3B0aW9ucyB9IGZyb20gXCIuLi91cmlcIjtcblxuY29uc3QgaGFuZGxlcjpVUklTY2hlbWVIYW5kbGVyID0ge1xuXHRzY2hlbWUgOiBcImh0dHBcIixcblxuXHRkb21haW5Ib3N0IDogdHJ1ZSxcblxuXHRwYXJzZSA6IGZ1bmN0aW9uIChjb21wb25lbnRzOlVSSUNvbXBvbmVudHMsIG9wdGlvbnM6VVJJT3B0aW9ucyk6VVJJQ29tcG9uZW50cyB7XG5cdFx0Ly9yZXBvcnQgbWlzc2luZyBob3N0XG5cdFx0aWYgKCFjb21wb25lbnRzLmhvc3QpIHtcblx0XHRcdGNvbXBvbmVudHMuZXJyb3IgPSBjb21wb25lbnRzLmVycm9yIHx8IFwiSFRUUCBVUklzIG11c3QgaGF2ZSBhIGhvc3QuXCI7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIGNvbXBvbmVudHM7XG5cdH0sXG5cblx0c2VyaWFsaXplIDogZnVuY3Rpb24gKGNvbXBvbmVudHM6VVJJQ29tcG9uZW50cywgb3B0aW9uczpVUklPcHRpb25zKTpVUklDb21wb25lbnRzIHtcblx0XHRjb25zdCBzZWN1cmUgPSBTdHJpbmcoY29tcG9uZW50cy5zY2hlbWUpLnRvTG93ZXJDYXNlKCkgPT09IFwiaHR0cHNcIjtcblxuXHRcdC8vbm9ybWFsaXplIHRoZSBkZWZhdWx0IHBvcnRcblx0XHRpZiAoY29tcG9uZW50cy5wb3J0ID09PSAoc2VjdXJlID8gNDQzIDogODApIHx8IGNvbXBvbmVudHMucG9ydCA9PT0gXCJcIikge1xuXHRcdFx0Y29tcG9uZW50cy5wb3J0ID0gdW5kZWZpbmVkO1xuXHRcdH1cblx0XHRcblx0XHQvL25vcm1hbGl6ZSB0aGUgZW1wdHkgcGF0aFxuXHRcdGlmICghY29tcG9uZW50cy5wYXRoKSB7XG5cdFx0XHRjb21wb25lbnRzLnBhdGggPSBcIi9cIjtcblx0XHR9XG5cblx0XHQvL05PVEU6IFdlIGRvIG5vdCBwYXJzZSBxdWVyeSBzdHJpbmdzIGZvciBIVFRQIFVSSXNcblx0XHQvL2FzIFdXVyBGb3JtIFVybCBFbmNvZGVkIHF1ZXJ5IHN0cmluZ3MgYXJlIHBhcnQgb2YgdGhlIEhUTUw0KyBzcGVjLFxuXHRcdC8vYW5kIG5vdCB0aGUgSFRUUCBzcGVjLlxuXG5cdFx0cmV0dXJuIGNvbXBvbmVudHM7XG5cdH1cbn07XG5cbmV4cG9ydCBkZWZhdWx0IGhhbmRsZXI7IiwgIi8qKlxuICogVVJJLmpzXG4gKlxuICogQGZpbGVvdmVydmlldyBBbiBSRkMgMzk4NiBjb21wbGlhbnQsIHNjaGVtZSBleHRlbmRhYmxlIFVSSSBwYXJzaW5nL3ZhbGlkYXRpbmcvcmVzb2x2aW5nIGxpYnJhcnkgZm9yIEphdmFTY3JpcHQuXG4gKiBAYXV0aG9yIDxhIGhyZWY9XCJtYWlsdG86Z2FyeS5jb3VydEBnbWFpbC5jb21cIj5HYXJ5IENvdXJ0PC9hPlxuICogQHNlZSBodHRwOi8vZ2l0aHViLmNvbS9nYXJ5Y291cnQvdXJpLWpzXG4gKi9cblxuLyoqXG4gKiBDb3B5cmlnaHQgMjAxMSBHYXJ5IENvdXJ0LiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb24sIGFyZVxuICogcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBtZXQ6XG4gKlxuICogICAgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2ZcbiAqICAgICAgIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci5cbiAqXG4gKiAgICAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdFxuICogICAgICAgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHNcbiAqICAgICAgIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi5cbiAqXG4gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEdBUlkgQ09VUlQgYGBBUyBJUycnIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEXG4gKiBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EXG4gKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgR0FSWSBDT1VSVCBPUlxuICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1JcbiAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1JcbiAqIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT05cbiAqIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkdcbiAqIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRlxuICogQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuXG4gKlxuICogVGhlIHZpZXdzIGFuZCBjb25jbHVzaW9ucyBjb250YWluZWQgaW4gdGhlIHNvZnR3YXJlIGFuZCBkb2N1bWVudGF0aW9uIGFyZSB0aG9zZSBvZiB0aGVcbiAqIGF1dGhvcnMgYW5kIHNob3VsZCBub3QgYmUgaW50ZXJwcmV0ZWQgYXMgcmVwcmVzZW50aW5nIG9mZmljaWFsIHBvbGljaWVzLCBlaXRoZXIgZXhwcmVzc2VkXG4gKiBvciBpbXBsaWVkLCBvZiBHYXJ5IENvdXJ0LlxuICovXG5cbmltcG9ydCBVUklfUFJPVE9DT0wgZnJvbSBcIi4vcmVnZXhwcy11cmlcIjtcbmltcG9ydCBJUklfUFJPVE9DT0wgZnJvbSBcIi4vcmVnZXhwcy1pcmlcIjtcbmltcG9ydCBwdW55Y29kZSBmcm9tIFwicHVueWNvZGVcIjtcbmltcG9ydCB7IHRvVXBwZXJDYXNlLCB0eXBlT2YsIGFzc2lnbiB9IGZyb20gXCIuL3V0aWxcIjtcblxuZXhwb3J0IGludGVyZmFjZSBVUklDb21wb25lbnRzIHtcblx0c2NoZW1lPzpzdHJpbmc7XG5cdHVzZXJpbmZvPzpzdHJpbmc7XG5cdGhvc3Q/OnN0cmluZztcblx0cG9ydD86bnVtYmVyfHN0cmluZztcblx0cGF0aD86c3RyaW5nO1xuXHRxdWVyeT86c3RyaW5nO1xuXHRmcmFnbWVudD86c3RyaW5nO1xuXHRyZWZlcmVuY2U/OnN0cmluZztcblx0ZXJyb3I/OnN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVUklPcHRpb25zIHtcblx0c2NoZW1lPzpzdHJpbmc7XG5cdHJlZmVyZW5jZT86c3RyaW5nO1xuXHR0b2xlcmFudD86Ym9vbGVhbjtcblx0YWJzb2x1dGVQYXRoPzpib29sZWFuO1xuXHRpcmk/OmJvb2xlYW47XG5cdHVuaWNvZGVTdXBwb3J0Pzpib29sZWFuO1xuXHRkb21haW5Ib3N0Pzpib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFVSSVNjaGVtZUhhbmRsZXI8Q29tcG9uZW50cyBleHRlbmRzIFVSSUNvbXBvbmVudHMgPSBVUklDb21wb25lbnRzLCBPcHRpb25zIGV4dGVuZHMgVVJJT3B0aW9ucyA9IFVSSU9wdGlvbnMsIFBhcmVudENvbXBvbmVudHMgZXh0ZW5kcyBVUklDb21wb25lbnRzID0gVVJJQ29tcG9uZW50cz4ge1xuXHRzY2hlbWU6c3RyaW5nO1xuXHRwYXJzZShjb21wb25lbnRzOlBhcmVudENvbXBvbmVudHMsIG9wdGlvbnM6T3B0aW9ucyk6Q29tcG9uZW50cztcblx0c2VyaWFsaXplKGNvbXBvbmVudHM6Q29tcG9uZW50cywgb3B0aW9uczpPcHRpb25zKTpQYXJlbnRDb21wb25lbnRzO1xuXHR1bmljb2RlU3VwcG9ydD86Ym9vbGVhbjtcblx0ZG9tYWluSG9zdD86Ym9vbGVhbjtcblx0YWJzb2x1dGVQYXRoPzpib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFVSSVJlZ0V4cHMge1xuXHROT1RfU0NIRU1FIDogUmVnRXhwLFxuXHROT1RfVVNFUklORk8gOiBSZWdFeHAsXG5cdE5PVF9IT1NUIDogUmVnRXhwLFxuXHROT1RfUEFUSCA6IFJlZ0V4cCxcblx0Tk9UX1BBVEhfTk9TQ0hFTUUgOiBSZWdFeHAsXG5cdE5PVF9RVUVSWSA6IFJlZ0V4cCxcblx0Tk9UX0ZSQUdNRU5UIDogUmVnRXhwLFxuXHRFU0NBUEUgOiBSZWdFeHAsXG5cdFVOUkVTRVJWRUQgOiBSZWdFeHAsXG5cdE9USEVSX0NIQVJTIDogUmVnRXhwLFxuXHRQQ1RfRU5DT0RFRCA6IFJlZ0V4cCxcblx0SVBWNEFERFJFU1MgOiBSZWdFeHAsXG5cdElQVjZBRERSRVNTIDogUmVnRXhwLFxufVxuXG5leHBvcnQgY29uc3QgU0NIRU1FUzp7W3NjaGVtZTpzdHJpbmddOlVSSVNjaGVtZUhhbmRsZXJ9ID0ge307XG5cbmV4cG9ydCBmdW5jdGlvbiBwY3RFbmNDaGFyKGNocjpzdHJpbmcpOnN0cmluZyB7XG5cdGNvbnN0IGMgPSBjaHIuY2hhckNvZGVBdCgwKTtcblx0bGV0IGU6c3RyaW5nO1xuXG5cdGlmIChjIDwgMTYpIGUgPSBcIiUwXCIgKyBjLnRvU3RyaW5nKDE2KS50b1VwcGVyQ2FzZSgpO1xuXHRlbHNlIGlmIChjIDwgMTI4KSBlID0gXCIlXCIgKyBjLnRvU3RyaW5nKDE2KS50b1VwcGVyQ2FzZSgpO1xuXHRlbHNlIGlmIChjIDwgMjA0OCkgZSA9IFwiJVwiICsgKChjID4+IDYpIHwgMTkyKS50b1N0cmluZygxNikudG9VcHBlckNhc2UoKSArIFwiJVwiICsgKChjICYgNjMpIHwgMTI4KS50b1N0cmluZygxNikudG9VcHBlckNhc2UoKTtcblx0ZWxzZSBlID0gXCIlXCIgKyAoKGMgPj4gMTIpIHwgMjI0KS50b1N0cmluZygxNikudG9VcHBlckNhc2UoKSArIFwiJVwiICsgKCgoYyA+PiA2KSAmIDYzKSB8IDEyOCkudG9TdHJpbmcoMTYpLnRvVXBwZXJDYXNlKCkgKyBcIiVcIiArICgoYyAmIDYzKSB8IDEyOCkudG9TdHJpbmcoMTYpLnRvVXBwZXJDYXNlKCk7XG5cblx0cmV0dXJuIGU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwY3REZWNDaGFycyhzdHI6c3RyaW5nKTpzdHJpbmcge1xuXHRsZXQgbmV3U3RyID0gXCJcIjtcblx0bGV0IGkgPSAwO1xuXHRjb25zdCBpbCA9IHN0ci5sZW5ndGg7XG5cblx0d2hpbGUgKGkgPCBpbCkge1xuXHRcdGNvbnN0IGMgPSBwYXJzZUludChzdHIuc3Vic3RyKGkgKyAxLCAyKSwgMTYpO1xuXG5cdFx0aWYgKGMgPCAxMjgpIHtcblx0XHRcdG5ld1N0ciArPSBTdHJpbmcuZnJvbUNoYXJDb2RlKGMpO1xuXHRcdFx0aSArPSAzO1xuXHRcdH1cblx0XHRlbHNlIGlmIChjID49IDE5NCAmJiBjIDwgMjI0KSB7XG5cdFx0XHRpZiAoKGlsIC0gaSkgPj0gNikge1xuXHRcdFx0XHRjb25zdCBjMiA9IHBhcnNlSW50KHN0ci5zdWJzdHIoaSArIDQsIDIpLCAxNik7XG5cdFx0XHRcdG5ld1N0ciArPSBTdHJpbmcuZnJvbUNoYXJDb2RlKCgoYyAmIDMxKSA8PCA2KSB8IChjMiAmIDYzKSk7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRuZXdTdHIgKz0gc3RyLnN1YnN0cihpLCA2KTtcblx0XHRcdH1cblx0XHRcdGkgKz0gNjtcblx0XHR9XG5cdFx0ZWxzZSBpZiAoYyA+PSAyMjQpIHtcblx0XHRcdGlmICgoaWwgLSBpKSA+PSA5KSB7XG5cdFx0XHRcdGNvbnN0IGMyID0gcGFyc2VJbnQoc3RyLnN1YnN0cihpICsgNCwgMiksIDE2KTtcblx0XHRcdFx0Y29uc3QgYzMgPSBwYXJzZUludChzdHIuc3Vic3RyKGkgKyA3LCAyKSwgMTYpO1xuXHRcdFx0XHRuZXdTdHIgKz0gU3RyaW5nLmZyb21DaGFyQ29kZSgoKGMgJiAxNSkgPDwgMTIpIHwgKChjMiAmIDYzKSA8PCA2KSB8IChjMyAmIDYzKSk7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRuZXdTdHIgKz0gc3RyLnN1YnN0cihpLCA5KTtcblx0XHRcdH1cblx0XHRcdGkgKz0gOTtcblx0XHR9XG5cdFx0ZWxzZSB7XG5cdFx0XHRuZXdTdHIgKz0gc3RyLnN1YnN0cihpLCAzKTtcblx0XHRcdGkgKz0gMztcblx0XHR9XG5cdH1cblxuXHRyZXR1cm4gbmV3U3RyO1xufVxuXG5mdW5jdGlvbiBfbm9ybWFsaXplQ29tcG9uZW50RW5jb2RpbmcoY29tcG9uZW50czpVUklDb21wb25lbnRzLCBwcm90b2NvbDpVUklSZWdFeHBzKSB7XG5cdGZ1bmN0aW9uIGRlY29kZVVucmVzZXJ2ZWQoc3RyOnN0cmluZyk6c3RyaW5nIHtcblx0XHRjb25zdCBkZWNTdHIgPSBwY3REZWNDaGFycyhzdHIpO1xuXHRcdHJldHVybiAoIWRlY1N0ci5tYXRjaChwcm90b2NvbC5VTlJFU0VSVkVEKSA/IHN0ciA6IGRlY1N0cik7XG5cdH1cblxuXHRpZiAoY29tcG9uZW50cy5zY2hlbWUpIGNvbXBvbmVudHMuc2NoZW1lID0gU3RyaW5nKGNvbXBvbmVudHMuc2NoZW1lKS5yZXBsYWNlKHByb3RvY29sLlBDVF9FTkNPREVELCBkZWNvZGVVbnJlc2VydmVkKS50b0xvd2VyQ2FzZSgpLnJlcGxhY2UocHJvdG9jb2wuTk9UX1NDSEVNRSwgXCJcIik7XG5cdGlmIChjb21wb25lbnRzLnVzZXJpbmZvICE9PSB1bmRlZmluZWQpIGNvbXBvbmVudHMudXNlcmluZm8gPSBTdHJpbmcoY29tcG9uZW50cy51c2VyaW5mbykucmVwbGFjZShwcm90b2NvbC5QQ1RfRU5DT0RFRCwgZGVjb2RlVW5yZXNlcnZlZCkucmVwbGFjZShwcm90b2NvbC5OT1RfVVNFUklORk8sIHBjdEVuY0NoYXIpLnJlcGxhY2UocHJvdG9jb2wuUENUX0VOQ09ERUQsIHRvVXBwZXJDYXNlKTtcblx0aWYgKGNvbXBvbmVudHMuaG9zdCAhPT0gdW5kZWZpbmVkKSBjb21wb25lbnRzLmhvc3QgPSBTdHJpbmcoY29tcG9uZW50cy5ob3N0KS5yZXBsYWNlKHByb3RvY29sLlBDVF9FTkNPREVELCBkZWNvZGVVbnJlc2VydmVkKS50b0xvd2VyQ2FzZSgpLnJlcGxhY2UocHJvdG9jb2wuTk9UX0hPU1QsIHBjdEVuY0NoYXIpLnJlcGxhY2UocHJvdG9jb2wuUENUX0VOQ09ERUQsIHRvVXBwZXJDYXNlKTtcblx0aWYgKGNvbXBvbmVudHMucGF0aCAhPT0gdW5kZWZpbmVkKSBjb21wb25lbnRzLnBhdGggPSBTdHJpbmcoY29tcG9uZW50cy5wYXRoKS5yZXBsYWNlKHByb3RvY29sLlBDVF9FTkNPREVELCBkZWNvZGVVbnJlc2VydmVkKS5yZXBsYWNlKChjb21wb25lbnRzLnNjaGVtZSA/IHByb3RvY29sLk5PVF9QQVRIIDogcHJvdG9jb2wuTk9UX1BBVEhfTk9TQ0hFTUUpLCBwY3RFbmNDaGFyKS5yZXBsYWNlKHByb3RvY29sLlBDVF9FTkNPREVELCB0b1VwcGVyQ2FzZSk7XG5cdGlmIChjb21wb25lbnRzLnF1ZXJ5ICE9PSB1bmRlZmluZWQpIGNvbXBvbmVudHMucXVlcnkgPSBTdHJpbmcoY29tcG9uZW50cy5xdWVyeSkucmVwbGFjZShwcm90b2NvbC5QQ1RfRU5DT0RFRCwgZGVjb2RlVW5yZXNlcnZlZCkucmVwbGFjZShwcm90b2NvbC5OT1RfUVVFUlksIHBjdEVuY0NoYXIpLnJlcGxhY2UocHJvdG9jb2wuUENUX0VOQ09ERUQsIHRvVXBwZXJDYXNlKTtcblx0aWYgKGNvbXBvbmVudHMuZnJhZ21lbnQgIT09IHVuZGVmaW5lZCkgY29tcG9uZW50cy5mcmFnbWVudCA9IFN0cmluZyhjb21wb25lbnRzLmZyYWdtZW50KS5yZXBsYWNlKHByb3RvY29sLlBDVF9FTkNPREVELCBkZWNvZGVVbnJlc2VydmVkKS5yZXBsYWNlKHByb3RvY29sLk5PVF9GUkFHTUVOVCwgcGN0RW5jQ2hhcikucmVwbGFjZShwcm90b2NvbC5QQ1RfRU5DT0RFRCwgdG9VcHBlckNhc2UpO1xuXG5cdHJldHVybiBjb21wb25lbnRzO1xufTtcblxuZnVuY3Rpb24gX3N0cmlwTGVhZGluZ1plcm9zKHN0cjpzdHJpbmcpOnN0cmluZyB7XG5cdHJldHVybiBzdHIucmVwbGFjZSgvXjAqKC4qKS8sIFwiJDFcIikgfHwgXCIwXCI7XG59XG5cbmZ1bmN0aW9uIF9ub3JtYWxpemVJUHY0KGhvc3Q6c3RyaW5nLCBwcm90b2NvbDpVUklSZWdFeHBzKTpzdHJpbmcge1xuXHRjb25zdCBtYXRjaGVzID0gaG9zdC5tYXRjaChwcm90b2NvbC5JUFY0QUREUkVTUykgfHwgW107XG5cdGNvbnN0IFssIGFkZHJlc3NdID0gbWF0Y2hlcztcblx0XG5cdGlmIChhZGRyZXNzKSB7XG5cdFx0cmV0dXJuIGFkZHJlc3Muc3BsaXQoXCIuXCIpLm1hcChfc3RyaXBMZWFkaW5nWmVyb3MpLmpvaW4oXCIuXCIpO1xuXHR9IGVsc2Uge1xuXHRcdHJldHVybiBob3N0O1xuXHR9XG59XG5cbmZ1bmN0aW9uIF9ub3JtYWxpemVJUHY2KGhvc3Q6c3RyaW5nLCBwcm90b2NvbDpVUklSZWdFeHBzKTpzdHJpbmcge1xuXHRjb25zdCBtYXRjaGVzID0gaG9zdC5tYXRjaChwcm90b2NvbC5JUFY2QUREUkVTUykgfHwgW107XG5cdGNvbnN0IFssIGFkZHJlc3MsIHpvbmVdID0gbWF0Y2hlcztcblxuXHRpZiAoYWRkcmVzcykge1xuXHRcdGNvbnN0IFtsYXN0LCBmaXJzdF0gPSBhZGRyZXNzLnRvTG93ZXJDYXNlKCkuc3BsaXQoJzo6JykucmV2ZXJzZSgpO1xuXHRcdGNvbnN0IGZpcnN0RmllbGRzID0gZmlyc3QgPyBmaXJzdC5zcGxpdChcIjpcIikubWFwKF9zdHJpcExlYWRpbmdaZXJvcykgOiBbXTtcblx0XHRjb25zdCBsYXN0RmllbGRzID0gbGFzdC5zcGxpdChcIjpcIikubWFwKF9zdHJpcExlYWRpbmdaZXJvcyk7XG5cdFx0Y29uc3QgaXNMYXN0RmllbGRJUHY0QWRkcmVzcyA9IHByb3RvY29sLklQVjRBRERSRVNTLnRlc3QobGFzdEZpZWxkc1tsYXN0RmllbGRzLmxlbmd0aCAtIDFdKTtcblx0XHRjb25zdCBmaWVsZENvdW50ID0gaXNMYXN0RmllbGRJUHY0QWRkcmVzcyA/IDcgOiA4O1xuXHRcdGNvbnN0IGxhc3RGaWVsZHNTdGFydCA9IGxhc3RGaWVsZHMubGVuZ3RoIC0gZmllbGRDb3VudDtcblx0XHRjb25zdCBmaWVsZHMgPSBBcnJheTxzdHJpbmc+KGZpZWxkQ291bnQpO1xuXG5cdFx0Zm9yIChsZXQgeCA9IDA7IHggPCBmaWVsZENvdW50OyArK3gpIHtcblx0XHRcdGZpZWxkc1t4XSA9IGZpcnN0RmllbGRzW3hdIHx8IGxhc3RGaWVsZHNbbGFzdEZpZWxkc1N0YXJ0ICsgeF0gfHwgJyc7XG5cdFx0fVxuXG5cdFx0aWYgKGlzTGFzdEZpZWxkSVB2NEFkZHJlc3MpIHtcblx0XHRcdGZpZWxkc1tmaWVsZENvdW50IC0gMV0gPSBfbm9ybWFsaXplSVB2NChmaWVsZHNbZmllbGRDb3VudCAtIDFdLCBwcm90b2NvbCk7XG5cdFx0fVxuXG5cdFx0Y29uc3QgYWxsWmVyb0ZpZWxkcyA9IGZpZWxkcy5yZWR1Y2U8QXJyYXk8e2luZGV4Om51bWJlcixsZW5ndGg6bnVtYmVyfT4+KChhY2MsIGZpZWxkLCBpbmRleCkgPT4ge1xuXHRcdFx0aWYgKCFmaWVsZCB8fCBmaWVsZCA9PT0gXCIwXCIpIHtcblx0XHRcdFx0Y29uc3QgbGFzdExvbmdlc3QgPSBhY2NbYWNjLmxlbmd0aCAtIDFdO1xuXHRcdFx0XHRpZiAobGFzdExvbmdlc3QgJiYgbGFzdExvbmdlc3QuaW5kZXggKyBsYXN0TG9uZ2VzdC5sZW5ndGggPT09IGluZGV4KSB7XG5cdFx0XHRcdFx0bGFzdExvbmdlc3QubGVuZ3RoKys7XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0YWNjLnB1c2goeyBpbmRleCwgbGVuZ3RoIDogMSB9KTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0cmV0dXJuIGFjYztcblx0XHR9LCBbXSk7XG5cblx0XHRjb25zdCBsb25nZXN0WmVyb0ZpZWxkcyA9IGFsbFplcm9GaWVsZHMuc29ydCgoYSwgYikgPT4gYi5sZW5ndGggLSBhLmxlbmd0aClbMF07XG5cblx0XHRsZXQgbmV3SG9zdDpzdHJpbmc7XG5cdFx0aWYgKGxvbmdlc3RaZXJvRmllbGRzICYmIGxvbmdlc3RaZXJvRmllbGRzLmxlbmd0aCA+IDEpIHtcblx0XHRcdGNvbnN0IG5ld0ZpcnN0ID0gZmllbGRzLnNsaWNlKDAsIGxvbmdlc3RaZXJvRmllbGRzLmluZGV4KSA7XG5cdFx0XHRjb25zdCBuZXdMYXN0ID0gZmllbGRzLnNsaWNlKGxvbmdlc3RaZXJvRmllbGRzLmluZGV4ICsgbG9uZ2VzdFplcm9GaWVsZHMubGVuZ3RoKTtcblx0XHRcdG5ld0hvc3QgPSBuZXdGaXJzdC5qb2luKFwiOlwiKSArIFwiOjpcIiArIG5ld0xhc3Quam9pbihcIjpcIik7XG5cdFx0fSBlbHNlIHtcblx0XHRcdG5ld0hvc3QgPSBmaWVsZHMuam9pbihcIjpcIik7XG5cdFx0fVxuXG5cdFx0aWYgKHpvbmUpIHtcblx0XHRcdG5ld0hvc3QgKz0gXCIlXCIgKyB6b25lO1xuXHRcdH1cblxuXHRcdHJldHVybiBuZXdIb3N0O1xuXHR9IGVsc2Uge1xuXHRcdHJldHVybiBob3N0O1xuXHR9XG59XG5cbmNvbnN0IFVSSV9QQVJTRSA9IC9eKD86KFteOlxcLz8jXSspOik/KD86XFwvXFwvKCg/OihbXlxcLz8jQF0qKUApPyhcXFtbXlxcLz8jXFxdXStcXF18W15cXC8/IzpdKikoPzpcXDooXFxkKikpPykpPyhbXj8jXSopKD86XFw/KFteI10qKSk/KD86IygoPzoufFxcbnxcXHIpKikpPy9pO1xuY29uc3QgTk9fTUFUQ0hfSVNfVU5ERUZJTkVEID0gKDxSZWdFeHBNYXRjaEFycmF5PihcIlwiKS5tYXRjaCgvKCl7MH0vKSlbMV0gPT09IHVuZGVmaW5lZDtcblxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlKHVyaVN0cmluZzpzdHJpbmcsIG9wdGlvbnM6VVJJT3B0aW9ucyA9IHt9KTpVUklDb21wb25lbnRzIHtcblx0Y29uc3QgY29tcG9uZW50czpVUklDb21wb25lbnRzID0ge307XG5cdGNvbnN0IHByb3RvY29sID0gKG9wdGlvbnMuaXJpICE9PSBmYWxzZSA/IElSSV9QUk9UT0NPTCA6IFVSSV9QUk9UT0NPTCk7XG5cblx0aWYgKG9wdGlvbnMucmVmZXJlbmNlID09PSBcInN1ZmZpeFwiKSB1cmlTdHJpbmcgPSAob3B0aW9ucy5zY2hlbWUgPyBvcHRpb25zLnNjaGVtZSArIFwiOlwiIDogXCJcIikgKyBcIi8vXCIgKyB1cmlTdHJpbmc7XG5cblx0Y29uc3QgbWF0Y2hlcyA9IHVyaVN0cmluZy5tYXRjaChVUklfUEFSU0UpO1xuXG5cdGlmIChtYXRjaGVzKSB7XG5cdFx0aWYgKE5PX01BVENIX0lTX1VOREVGSU5FRCkge1xuXHRcdFx0Ly9zdG9yZSBlYWNoIGNvbXBvbmVudFxuXHRcdFx0Y29tcG9uZW50cy5zY2hlbWUgPSBtYXRjaGVzWzFdO1xuXHRcdFx0Y29tcG9uZW50cy51c2VyaW5mbyA9IG1hdGNoZXNbM107XG5cdFx0XHRjb21wb25lbnRzLmhvc3QgPSBtYXRjaGVzWzRdO1xuXHRcdFx0Y29tcG9uZW50cy5wb3J0ID0gcGFyc2VJbnQobWF0Y2hlc1s1XSwgMTApO1xuXHRcdFx0Y29tcG9uZW50cy5wYXRoID0gbWF0Y2hlc1s2XSB8fCBcIlwiO1xuXHRcdFx0Y29tcG9uZW50cy5xdWVyeSA9IG1hdGNoZXNbN107XG5cdFx0XHRjb21wb25lbnRzLmZyYWdtZW50ID0gbWF0Y2hlc1s4XTtcblxuXHRcdFx0Ly9maXggcG9ydCBudW1iZXJcblx0XHRcdGlmIChpc05hTihjb21wb25lbnRzLnBvcnQpKSB7XG5cdFx0XHRcdGNvbXBvbmVudHMucG9ydCA9IG1hdGNoZXNbNV07XG5cdFx0XHR9XG5cdFx0fSBlbHNlIHsgIC8vSUUgRklYIGZvciBpbXByb3BlciBSZWdFeHAgbWF0Y2hpbmdcblx0XHRcdC8vc3RvcmUgZWFjaCBjb21wb25lbnRcblx0XHRcdGNvbXBvbmVudHMuc2NoZW1lID0gbWF0Y2hlc1sxXSB8fCB1bmRlZmluZWQ7XG5cdFx0XHRjb21wb25lbnRzLnVzZXJpbmZvID0gKHVyaVN0cmluZy5pbmRleE9mKFwiQFwiKSAhPT0gLTEgPyBtYXRjaGVzWzNdIDogdW5kZWZpbmVkKTtcblx0XHRcdGNvbXBvbmVudHMuaG9zdCA9ICh1cmlTdHJpbmcuaW5kZXhPZihcIi8vXCIpICE9PSAtMSA/IG1hdGNoZXNbNF0gOiB1bmRlZmluZWQpO1xuXHRcdFx0Y29tcG9uZW50cy5wb3J0ID0gcGFyc2VJbnQobWF0Y2hlc1s1XSwgMTApO1xuXHRcdFx0Y29tcG9uZW50cy5wYXRoID0gbWF0Y2hlc1s2XSB8fCBcIlwiO1xuXHRcdFx0Y29tcG9uZW50cy5xdWVyeSA9ICh1cmlTdHJpbmcuaW5kZXhPZihcIj9cIikgIT09IC0xID8gbWF0Y2hlc1s3XSA6IHVuZGVmaW5lZCk7XG5cdFx0XHRjb21wb25lbnRzLmZyYWdtZW50ID0gKHVyaVN0cmluZy5pbmRleE9mKFwiI1wiKSAhPT0gLTEgPyBtYXRjaGVzWzhdIDogdW5kZWZpbmVkKTtcblxuXHRcdFx0Ly9maXggcG9ydCBudW1iZXJcblx0XHRcdGlmIChpc05hTihjb21wb25lbnRzLnBvcnQpKSB7XG5cdFx0XHRcdGNvbXBvbmVudHMucG9ydCA9ICh1cmlTdHJpbmcubWF0Y2goL1xcL1xcLyg/Oi58XFxuKSpcXDooPzpcXC98XFw/fFxcI3wkKS8pID8gbWF0Y2hlc1s0XSA6IHVuZGVmaW5lZCk7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0aWYgKGNvbXBvbmVudHMuaG9zdCkge1xuXHRcdFx0Ly9ub3JtYWxpemUgSVAgaG9zdHNcblx0XHRcdGNvbXBvbmVudHMuaG9zdCA9IF9ub3JtYWxpemVJUHY2KF9ub3JtYWxpemVJUHY0KGNvbXBvbmVudHMuaG9zdCwgcHJvdG9jb2wpLCBwcm90b2NvbCk7XG5cdFx0fVxuXG5cdFx0Ly9kZXRlcm1pbmUgcmVmZXJlbmNlIHR5cGVcblx0XHRpZiAoY29tcG9uZW50cy5zY2hlbWUgPT09IHVuZGVmaW5lZCAmJiBjb21wb25lbnRzLnVzZXJpbmZvID09PSB1bmRlZmluZWQgJiYgY29tcG9uZW50cy5ob3N0ID09PSB1bmRlZmluZWQgJiYgY29tcG9uZW50cy5wb3J0ID09PSB1bmRlZmluZWQgJiYgIWNvbXBvbmVudHMucGF0aCAmJiBjb21wb25lbnRzLnF1ZXJ5ID09PSB1bmRlZmluZWQpIHtcblx0XHRcdGNvbXBvbmVudHMucmVmZXJlbmNlID0gXCJzYW1lLWRvY3VtZW50XCI7XG5cdFx0fSBlbHNlIGlmIChjb21wb25lbnRzLnNjaGVtZSA9PT0gdW5kZWZpbmVkKSB7XG5cdFx0XHRjb21wb25lbnRzLnJlZmVyZW5jZSA9IFwicmVsYXRpdmVcIjtcblx0XHR9IGVsc2UgaWYgKGNvbXBvbmVudHMuZnJhZ21lbnQgPT09IHVuZGVmaW5lZCkge1xuXHRcdFx0Y29tcG9uZW50cy5yZWZlcmVuY2UgPSBcImFic29sdXRlXCI7XG5cdFx0fSBlbHNlIHtcblx0XHRcdGNvbXBvbmVudHMucmVmZXJlbmNlID0gXCJ1cmlcIjtcblx0XHR9XG5cblx0XHQvL2NoZWNrIGZvciByZWZlcmVuY2UgZXJyb3JzXG5cdFx0aWYgKG9wdGlvbnMucmVmZXJlbmNlICYmIG9wdGlvbnMucmVmZXJlbmNlICE9PSBcInN1ZmZpeFwiICYmIG9wdGlvbnMucmVmZXJlbmNlICE9PSBjb21wb25lbnRzLnJlZmVyZW5jZSkge1xuXHRcdFx0Y29tcG9uZW50cy5lcnJvciA9IGNvbXBvbmVudHMuZXJyb3IgfHwgXCJVUkkgaXMgbm90IGEgXCIgKyBvcHRpb25zLnJlZmVyZW5jZSArIFwiIHJlZmVyZW5jZS5cIjtcblx0XHR9XG5cblx0XHQvL2ZpbmQgc2NoZW1lIGhhbmRsZXJcblx0XHRjb25zdCBzY2hlbWVIYW5kbGVyID0gU0NIRU1FU1sob3B0aW9ucy5zY2hlbWUgfHwgY29tcG9uZW50cy5zY2hlbWUgfHwgXCJcIikudG9Mb3dlckNhc2UoKV07XG5cblx0XHQvL2NoZWNrIGlmIHNjaGVtZSBjYW4ndCBoYW5kbGUgSVJJc1xuXHRcdGlmICghb3B0aW9ucy51bmljb2RlU3VwcG9ydCAmJiAoIXNjaGVtZUhhbmRsZXIgfHwgIXNjaGVtZUhhbmRsZXIudW5pY29kZVN1cHBvcnQpKSB7XG5cdFx0XHQvL2lmIGhvc3QgY29tcG9uZW50IGlzIGEgZG9tYWluIG5hbWVcblx0XHRcdGlmIChjb21wb25lbnRzLmhvc3QgJiYgKG9wdGlvbnMuZG9tYWluSG9zdCB8fCAoc2NoZW1lSGFuZGxlciAmJiBzY2hlbWVIYW5kbGVyLmRvbWFpbkhvc3QpKSkge1xuXHRcdFx0XHQvL2NvbnZlcnQgVW5pY29kZSBJRE4gLT4gQVNDSUkgSUROXG5cdFx0XHRcdHRyeSB7XG5cdFx0XHRcdFx0Y29tcG9uZW50cy5ob3N0ID0gcHVueWNvZGUudG9BU0NJSShjb21wb25lbnRzLmhvc3QucmVwbGFjZShwcm90b2NvbC5QQ1RfRU5DT0RFRCwgcGN0RGVjQ2hhcnMpLnRvTG93ZXJDYXNlKCkpO1xuXHRcdFx0XHR9IGNhdGNoIChlKSB7XG5cdFx0XHRcdFx0Y29tcG9uZW50cy5lcnJvciA9IGNvbXBvbmVudHMuZXJyb3IgfHwgXCJIb3N0J3MgZG9tYWluIG5hbWUgY2FuIG5vdCBiZSBjb252ZXJ0ZWQgdG8gQVNDSUkgdmlhIHB1bnljb2RlOiBcIiArIGU7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdC8vY29udmVydCBJUkkgLT4gVVJJXG5cdFx0XHRfbm9ybWFsaXplQ29tcG9uZW50RW5jb2RpbmcoY29tcG9uZW50cywgVVJJX1BST1RPQ09MKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0Ly9ub3JtYWxpemUgZW5jb2RpbmdzXG5cdFx0XHRfbm9ybWFsaXplQ29tcG9uZW50RW5jb2RpbmcoY29tcG9uZW50cywgcHJvdG9jb2wpO1xuXHRcdH1cblxuXHRcdC8vcGVyZm9ybSBzY2hlbWUgc3BlY2lmaWMgcGFyc2luZ1xuXHRcdGlmIChzY2hlbWVIYW5kbGVyICYmIHNjaGVtZUhhbmRsZXIucGFyc2UpIHtcblx0XHRcdHNjaGVtZUhhbmRsZXIucGFyc2UoY29tcG9uZW50cywgb3B0aW9ucyk7XG5cdFx0fVxuXHR9IGVsc2Uge1xuXHRcdGNvbXBvbmVudHMuZXJyb3IgPSBjb21wb25lbnRzLmVycm9yIHx8IFwiVVJJIGNhbiBub3QgYmUgcGFyc2VkLlwiO1xuXHR9XG5cblx0cmV0dXJuIGNvbXBvbmVudHM7XG59O1xuXG5mdW5jdGlvbiBfcmVjb21wb3NlQXV0aG9yaXR5KGNvbXBvbmVudHM6VVJJQ29tcG9uZW50cywgb3B0aW9uczpVUklPcHRpb25zKTpzdHJpbmd8dW5kZWZpbmVkIHtcblx0Y29uc3QgcHJvdG9jb2wgPSAob3B0aW9ucy5pcmkgIT09IGZhbHNlID8gSVJJX1BST1RPQ09MIDogVVJJX1BST1RPQ09MKTtcblx0Y29uc3QgdXJpVG9rZW5zOkFycmF5PHN0cmluZz4gPSBbXTtcblxuXHRpZiAoY29tcG9uZW50cy51c2VyaW5mbyAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0dXJpVG9rZW5zLnB1c2goY29tcG9uZW50cy51c2VyaW5mbyk7XG5cdFx0dXJpVG9rZW5zLnB1c2goXCJAXCIpO1xuXHR9XG5cblx0aWYgKGNvbXBvbmVudHMuaG9zdCAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0Ly9ub3JtYWxpemUgSVAgaG9zdHMsIGFkZCBicmFja2V0cyBhbmQgZXNjYXBlIHpvbmUgc2VwYXJhdG9yIGZvciBJUHY2XG5cdFx0dXJpVG9rZW5zLnB1c2goX25vcm1hbGl6ZUlQdjYoX25vcm1hbGl6ZUlQdjQoU3RyaW5nKGNvbXBvbmVudHMuaG9zdCksIHByb3RvY29sKSwgcHJvdG9jb2wpLnJlcGxhY2UocHJvdG9jb2wuSVBWNkFERFJFU1MsIChfLCAkMSwgJDIpID0+IFwiW1wiICsgJDEgKyAoJDIgPyBcIiUyNVwiICsgJDIgOiBcIlwiKSArIFwiXVwiKSk7XG5cdH1cblxuXHRpZiAodHlwZW9mIGNvbXBvbmVudHMucG9ydCA9PT0gXCJudW1iZXJcIiB8fCB0eXBlb2YgY29tcG9uZW50cy5wb3J0ID09PSBcInN0cmluZ1wiKSB7XG5cdFx0dXJpVG9rZW5zLnB1c2goXCI6XCIpO1xuXHRcdHVyaVRva2Vucy5wdXNoKFN0cmluZyhjb21wb25lbnRzLnBvcnQpKTtcblx0fVxuXG5cdHJldHVybiB1cmlUb2tlbnMubGVuZ3RoID8gdXJpVG9rZW5zLmpvaW4oXCJcIikgOiB1bmRlZmluZWQ7XG59O1xuXG5jb25zdCBSRFMxID0gL15cXC5cXC4/XFwvLztcbmNvbnN0IFJEUzIgPSAvXlxcL1xcLihcXC98JCkvO1xuY29uc3QgUkRTMyA9IC9eXFwvXFwuXFwuKFxcL3wkKS87XG5jb25zdCBSRFM0ID0gL15cXC5cXC4/JC87XG5jb25zdCBSRFM1ID0gL15cXC8/KD86LnxcXG4pKj8oPz1cXC98JCkvO1xuXG5leHBvcnQgZnVuY3Rpb24gcmVtb3ZlRG90U2VnbWVudHMoaW5wdXQ6c3RyaW5nKTpzdHJpbmcge1xuXHRjb25zdCBvdXRwdXQ6QXJyYXk8c3RyaW5nPiA9IFtdO1xuXG5cdHdoaWxlIChpbnB1dC5sZW5ndGgpIHtcblx0XHRpZiAoaW5wdXQubWF0Y2goUkRTMSkpIHtcblx0XHRcdGlucHV0ID0gaW5wdXQucmVwbGFjZShSRFMxLCBcIlwiKTtcblx0XHR9IGVsc2UgaWYgKGlucHV0Lm1hdGNoKFJEUzIpKSB7XG5cdFx0XHRpbnB1dCA9IGlucHV0LnJlcGxhY2UoUkRTMiwgXCIvXCIpO1xuXHRcdH0gZWxzZSBpZiAoaW5wdXQubWF0Y2goUkRTMykpIHtcblx0XHRcdGlucHV0ID0gaW5wdXQucmVwbGFjZShSRFMzLCBcIi9cIik7XG5cdFx0XHRvdXRwdXQucG9wKCk7XG5cdFx0fSBlbHNlIGlmIChpbnB1dCA9PT0gXCIuXCIgfHwgaW5wdXQgPT09IFwiLi5cIikge1xuXHRcdFx0aW5wdXQgPSBcIlwiO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRjb25zdCBpbSA9IGlucHV0Lm1hdGNoKFJEUzUpO1xuXHRcdFx0aWYgKGltKSB7XG5cdFx0XHRcdGNvbnN0IHMgPSBpbVswXTtcblx0XHRcdFx0aW5wdXQgPSBpbnB1dC5zbGljZShzLmxlbmd0aCk7XG5cdFx0XHRcdG91dHB1dC5wdXNoKHMpO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0dGhyb3cgbmV3IEVycm9yKFwiVW5leHBlY3RlZCBkb3Qgc2VnbWVudCBjb25kaXRpb25cIik7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0cmV0dXJuIG91dHB1dC5qb2luKFwiXCIpO1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIHNlcmlhbGl6ZShjb21wb25lbnRzOlVSSUNvbXBvbmVudHMsIG9wdGlvbnM6VVJJT3B0aW9ucyA9IHt9KTpzdHJpbmcge1xuXHRjb25zdCBwcm90b2NvbCA9IChvcHRpb25zLmlyaSA/IElSSV9QUk9UT0NPTCA6IFVSSV9QUk9UT0NPTCk7XG5cdGNvbnN0IHVyaVRva2VuczpBcnJheTxzdHJpbmc+ID0gW107XG5cblx0Ly9maW5kIHNjaGVtZSBoYW5kbGVyXG5cdGNvbnN0IHNjaGVtZUhhbmRsZXIgPSBTQ0hFTUVTWyhvcHRpb25zLnNjaGVtZSB8fCBjb21wb25lbnRzLnNjaGVtZSB8fCBcIlwiKS50b0xvd2VyQ2FzZSgpXTtcblxuXHQvL3BlcmZvcm0gc2NoZW1lIHNwZWNpZmljIHNlcmlhbGl6YXRpb25cblx0aWYgKHNjaGVtZUhhbmRsZXIgJiYgc2NoZW1lSGFuZGxlci5zZXJpYWxpemUpIHNjaGVtZUhhbmRsZXIuc2VyaWFsaXplKGNvbXBvbmVudHMsIG9wdGlvbnMpO1xuXG5cdGlmIChjb21wb25lbnRzLmhvc3QpIHtcblx0XHQvL2lmIGhvc3QgY29tcG9uZW50IGlzIGFuIElQdjYgYWRkcmVzc1xuXHRcdGlmIChwcm90b2NvbC5JUFY2QUREUkVTUy50ZXN0KGNvbXBvbmVudHMuaG9zdCkpIHtcblx0XHRcdC8vVE9ETzogbm9ybWFsaXplIElQdjYgYWRkcmVzcyBhcyBwZXIgUkZDIDU5NTJcblx0XHR9XG5cblx0XHQvL2lmIGhvc3QgY29tcG9uZW50IGlzIGEgZG9tYWluIG5hbWVcblx0XHRlbHNlIGlmIChvcHRpb25zLmRvbWFpbkhvc3QgfHwgKHNjaGVtZUhhbmRsZXIgJiYgc2NoZW1lSGFuZGxlci5kb21haW5Ib3N0KSkge1xuXHRcdFx0Ly9jb252ZXJ0IElETiB2aWEgcHVueWNvZGVcblx0XHRcdHRyeSB7XG5cdFx0XHRcdGNvbXBvbmVudHMuaG9zdCA9ICghb3B0aW9ucy5pcmkgPyBwdW55Y29kZS50b0FTQ0lJKGNvbXBvbmVudHMuaG9zdC5yZXBsYWNlKHByb3RvY29sLlBDVF9FTkNPREVELCBwY3REZWNDaGFycykudG9Mb3dlckNhc2UoKSkgOiBwdW55Y29kZS50b1VuaWNvZGUoY29tcG9uZW50cy5ob3N0KSk7XG5cdFx0XHR9IGNhdGNoIChlKSB7XG5cdFx0XHRcdGNvbXBvbmVudHMuZXJyb3IgPSBjb21wb25lbnRzLmVycm9yIHx8IFwiSG9zdCdzIGRvbWFpbiBuYW1lIGNhbiBub3QgYmUgY29udmVydGVkIHRvIFwiICsgKCFvcHRpb25zLmlyaSA/IFwiQVNDSUlcIiA6IFwiVW5pY29kZVwiKSArIFwiIHZpYSBwdW55Y29kZTogXCIgKyBlO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdC8vbm9ybWFsaXplIGVuY29kaW5nXG5cdF9ub3JtYWxpemVDb21wb25lbnRFbmNvZGluZyhjb21wb25lbnRzLCBwcm90b2NvbCk7XG5cblx0aWYgKG9wdGlvbnMucmVmZXJlbmNlICE9PSBcInN1ZmZpeFwiICYmIGNvbXBvbmVudHMuc2NoZW1lKSB7XG5cdFx0dXJpVG9rZW5zLnB1c2goY29tcG9uZW50cy5zY2hlbWUpO1xuXHRcdHVyaVRva2Vucy5wdXNoKFwiOlwiKTtcblx0fVxuXG5cdGNvbnN0IGF1dGhvcml0eSA9IF9yZWNvbXBvc2VBdXRob3JpdHkoY29tcG9uZW50cywgb3B0aW9ucyk7XG5cdGlmIChhdXRob3JpdHkgIT09IHVuZGVmaW5lZCkge1xuXHRcdGlmIChvcHRpb25zLnJlZmVyZW5jZSAhPT0gXCJzdWZmaXhcIikge1xuXHRcdFx0dXJpVG9rZW5zLnB1c2goXCIvL1wiKTtcblx0XHR9XG5cblx0XHR1cmlUb2tlbnMucHVzaChhdXRob3JpdHkpO1xuXG5cdFx0aWYgKGNvbXBvbmVudHMucGF0aCAmJiBjb21wb25lbnRzLnBhdGguY2hhckF0KDApICE9PSBcIi9cIikge1xuXHRcdFx0dXJpVG9rZW5zLnB1c2goXCIvXCIpO1xuXHRcdH1cblx0fVxuXG5cdGlmIChjb21wb25lbnRzLnBhdGggIT09IHVuZGVmaW5lZCkge1xuXHRcdGxldCBzID0gY29tcG9uZW50cy5wYXRoO1xuXG5cdFx0aWYgKCFvcHRpb25zLmFic29sdXRlUGF0aCAmJiAoIXNjaGVtZUhhbmRsZXIgfHwgIXNjaGVtZUhhbmRsZXIuYWJzb2x1dGVQYXRoKSkge1xuXHRcdFx0cyA9IHJlbW92ZURvdFNlZ21lbnRzKHMpO1xuXHRcdH1cblxuXHRcdGlmIChhdXRob3JpdHkgPT09IHVuZGVmaW5lZCkge1xuXHRcdFx0cyA9IHMucmVwbGFjZSgvXlxcL1xcLy8sIFwiLyUyRlwiKTsgIC8vZG9uJ3QgYWxsb3cgdGhlIHBhdGggdG8gc3RhcnQgd2l0aCBcIi8vXCJcblx0XHR9XG5cblx0XHR1cmlUb2tlbnMucHVzaChzKTtcblx0fVxuXG5cdGlmIChjb21wb25lbnRzLnF1ZXJ5ICE9PSB1bmRlZmluZWQpIHtcblx0XHR1cmlUb2tlbnMucHVzaChcIj9cIik7XG5cdFx0dXJpVG9rZW5zLnB1c2goY29tcG9uZW50cy5xdWVyeSk7XG5cdH1cblxuXHRpZiAoY29tcG9uZW50cy5mcmFnbWVudCAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0dXJpVG9rZW5zLnB1c2goXCIjXCIpO1xuXHRcdHVyaVRva2Vucy5wdXNoKGNvbXBvbmVudHMuZnJhZ21lbnQpO1xuXHR9XG5cblx0cmV0dXJuIHVyaVRva2Vucy5qb2luKFwiXCIpOyAgLy9tZXJnZSB0b2tlbnMgaW50byBhIHN0cmluZ1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVDb21wb25lbnRzKGJhc2U6VVJJQ29tcG9uZW50cywgcmVsYXRpdmU6VVJJQ29tcG9uZW50cywgb3B0aW9uczpVUklPcHRpb25zID0ge30sIHNraXBOb3JtYWxpemF0aW9uPzpib29sZWFuKTpVUklDb21wb25lbnRzIHtcblx0Y29uc3QgdGFyZ2V0OlVSSUNvbXBvbmVudHMgPSB7fTtcblxuXHRpZiAoIXNraXBOb3JtYWxpemF0aW9uKSB7XG5cdFx0YmFzZSA9IHBhcnNlKHNlcmlhbGl6ZShiYXNlLCBvcHRpb25zKSwgb3B0aW9ucyk7ICAvL25vcm1hbGl6ZSBiYXNlIGNvbXBvbmVudHNcblx0XHRyZWxhdGl2ZSA9IHBhcnNlKHNlcmlhbGl6ZShyZWxhdGl2ZSwgb3B0aW9ucyksIG9wdGlvbnMpOyAgLy9ub3JtYWxpemUgcmVsYXRpdmUgY29tcG9uZW50c1xuXHR9XG5cdG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9O1xuXG5cdGlmICghb3B0aW9ucy50b2xlcmFudCAmJiByZWxhdGl2ZS5zY2hlbWUpIHtcblx0XHR0YXJnZXQuc2NoZW1lID0gcmVsYXRpdmUuc2NoZW1lO1xuXHRcdC8vdGFyZ2V0LmF1dGhvcml0eSA9IHJlbGF0aXZlLmF1dGhvcml0eTtcblx0XHR0YXJnZXQudXNlcmluZm8gPSByZWxhdGl2ZS51c2VyaW5mbztcblx0XHR0YXJnZXQuaG9zdCA9IHJlbGF0aXZlLmhvc3Q7XG5cdFx0dGFyZ2V0LnBvcnQgPSByZWxhdGl2ZS5wb3J0O1xuXHRcdHRhcmdldC5wYXRoID0gcmVtb3ZlRG90U2VnbWVudHMocmVsYXRpdmUucGF0aCB8fCBcIlwiKTtcblx0XHR0YXJnZXQucXVlcnkgPSByZWxhdGl2ZS5xdWVyeTtcblx0fSBlbHNlIHtcblx0XHRpZiAocmVsYXRpdmUudXNlcmluZm8gIT09IHVuZGVmaW5lZCB8fCByZWxhdGl2ZS5ob3N0ICE9PSB1bmRlZmluZWQgfHwgcmVsYXRpdmUucG9ydCAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0XHQvL3RhcmdldC5hdXRob3JpdHkgPSByZWxhdGl2ZS5hdXRob3JpdHk7XG5cdFx0XHR0YXJnZXQudXNlcmluZm8gPSByZWxhdGl2ZS51c2VyaW5mbztcblx0XHRcdHRhcmdldC5ob3N0ID0gcmVsYXRpdmUuaG9zdDtcblx0XHRcdHRhcmdldC5wb3J0ID0gcmVsYXRpdmUucG9ydDtcblx0XHRcdHRhcmdldC5wYXRoID0gcmVtb3ZlRG90U2VnbWVudHMocmVsYXRpdmUucGF0aCB8fCBcIlwiKTtcblx0XHRcdHRhcmdldC5xdWVyeSA9IHJlbGF0aXZlLnF1ZXJ5O1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRpZiAoIXJlbGF0aXZlLnBhdGgpIHtcblx0XHRcdFx0dGFyZ2V0LnBhdGggPSBiYXNlLnBhdGg7XG5cdFx0XHRcdGlmIChyZWxhdGl2ZS5xdWVyeSAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0XHRcdFx0dGFyZ2V0LnF1ZXJ5ID0gcmVsYXRpdmUucXVlcnk7XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0dGFyZ2V0LnF1ZXJ5ID0gYmFzZS5xdWVyeTtcblx0XHRcdFx0fVxuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0aWYgKHJlbGF0aXZlLnBhdGguY2hhckF0KDApID09PSBcIi9cIikge1xuXHRcdFx0XHRcdHRhcmdldC5wYXRoID0gcmVtb3ZlRG90U2VnbWVudHMocmVsYXRpdmUucGF0aCk7XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0aWYgKChiYXNlLnVzZXJpbmZvICE9PSB1bmRlZmluZWQgfHwgYmFzZS5ob3N0ICE9PSB1bmRlZmluZWQgfHwgYmFzZS5wb3J0ICE9PSB1bmRlZmluZWQpICYmICFiYXNlLnBhdGgpIHtcblx0XHRcdFx0XHRcdHRhcmdldC5wYXRoID0gXCIvXCIgKyByZWxhdGl2ZS5wYXRoO1xuXHRcdFx0XHRcdH0gZWxzZSBpZiAoIWJhc2UucGF0aCkge1xuXHRcdFx0XHRcdFx0dGFyZ2V0LnBhdGggPSByZWxhdGl2ZS5wYXRoO1xuXHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHR0YXJnZXQucGF0aCA9IGJhc2UucGF0aC5zbGljZSgwLCBiYXNlLnBhdGgubGFzdEluZGV4T2YoXCIvXCIpICsgMSkgKyByZWxhdGl2ZS5wYXRoO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHR0YXJnZXQucGF0aCA9IHJlbW92ZURvdFNlZ21lbnRzKHRhcmdldC5wYXRoKTtcblx0XHRcdFx0fVxuXHRcdFx0XHR0YXJnZXQucXVlcnkgPSByZWxhdGl2ZS5xdWVyeTtcblx0XHRcdH1cblx0XHRcdC8vdGFyZ2V0LmF1dGhvcml0eSA9IGJhc2UuYXV0aG9yaXR5O1xuXHRcdFx0dGFyZ2V0LnVzZXJpbmZvID0gYmFzZS51c2VyaW5mbztcblx0XHRcdHRhcmdldC5ob3N0ID0gYmFzZS5ob3N0O1xuXHRcdFx0dGFyZ2V0LnBvcnQgPSBiYXNlLnBvcnQ7XG5cdFx0fVxuXHRcdHRhcmdldC5zY2hlbWUgPSBiYXNlLnNjaGVtZTtcblx0fVxuXG5cdHRhcmdldC5mcmFnbWVudCA9IHJlbGF0aXZlLmZyYWdtZW50O1xuXG5cdHJldHVybiB0YXJnZXQ7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZShiYXNlVVJJOnN0cmluZywgcmVsYXRpdmVVUkk6c3RyaW5nLCBvcHRpb25zPzpVUklPcHRpb25zKTpzdHJpbmcge1xuXHRjb25zdCBzY2hlbWVsZXNzT3B0aW9ucyA9IGFzc2lnbih7IHNjaGVtZSA6ICdudWxsJyB9LCBvcHRpb25zKTtcblx0cmV0dXJuIHNlcmlhbGl6ZShyZXNvbHZlQ29tcG9uZW50cyhwYXJzZShiYXNlVVJJLCBzY2hlbWVsZXNzT3B0aW9ucyksIHBhcnNlKHJlbGF0aXZlVVJJLCBzY2hlbWVsZXNzT3B0aW9ucyksIHNjaGVtZWxlc3NPcHRpb25zLCB0cnVlKSwgc2NoZW1lbGVzc09wdGlvbnMpO1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIG5vcm1hbGl6ZSh1cmk6c3RyaW5nLCBvcHRpb25zPzpVUklPcHRpb25zKTpzdHJpbmc7XG5leHBvcnQgZnVuY3Rpb24gbm9ybWFsaXplKHVyaTpVUklDb21wb25lbnRzLCBvcHRpb25zPzpVUklPcHRpb25zKTpVUklDb21wb25lbnRzO1xuZXhwb3J0IGZ1bmN0aW9uIG5vcm1hbGl6ZSh1cmk6YW55LCBvcHRpb25zPzpVUklPcHRpb25zKTphbnkge1xuXHRpZiAodHlwZW9mIHVyaSA9PT0gXCJzdHJpbmdcIikge1xuXHRcdHVyaSA9IHNlcmlhbGl6ZShwYXJzZSh1cmksIG9wdGlvbnMpLCBvcHRpb25zKTtcblx0fSBlbHNlIGlmICh0eXBlT2YodXJpKSA9PT0gXCJvYmplY3RcIikge1xuXHRcdHVyaSA9IHBhcnNlKHNlcmlhbGl6ZSg8VVJJQ29tcG9uZW50cz51cmksIG9wdGlvbnMpLCBvcHRpb25zKTtcblx0fVxuXG5cdHJldHVybiB1cmk7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gZXF1YWwodXJpQTpzdHJpbmcsIHVyaUI6c3RyaW5nLCBvcHRpb25zPzogVVJJT3B0aW9ucyk6Ym9vbGVhbjtcbmV4cG9ydCBmdW5jdGlvbiBlcXVhbCh1cmlBOlVSSUNvbXBvbmVudHMsIHVyaUI6VVJJQ29tcG9uZW50cywgb3B0aW9ucz86VVJJT3B0aW9ucyk6Ym9vbGVhbjtcbmV4cG9ydCBmdW5jdGlvbiBlcXVhbCh1cmlBOmFueSwgdXJpQjphbnksIG9wdGlvbnM/OlVSSU9wdGlvbnMpOmJvb2xlYW4ge1xuXHRpZiAodHlwZW9mIHVyaUEgPT09IFwic3RyaW5nXCIpIHtcblx0XHR1cmlBID0gc2VyaWFsaXplKHBhcnNlKHVyaUEsIG9wdGlvbnMpLCBvcHRpb25zKTtcblx0fSBlbHNlIGlmICh0eXBlT2YodXJpQSkgPT09IFwib2JqZWN0XCIpIHtcblx0XHR1cmlBID0gc2VyaWFsaXplKDxVUklDb21wb25lbnRzPnVyaUEsIG9wdGlvbnMpO1xuXHR9XG5cblx0aWYgKHR5cGVvZiB1cmlCID09PSBcInN0cmluZ1wiKSB7XG5cdFx0dXJpQiA9IHNlcmlhbGl6ZShwYXJzZSh1cmlCLCBvcHRpb25zKSwgb3B0aW9ucyk7XG5cdH0gZWxzZSBpZiAodHlwZU9mKHVyaUIpID09PSBcIm9iamVjdFwiKSB7XG5cdFx0dXJpQiA9IHNlcmlhbGl6ZSg8VVJJQ29tcG9uZW50cz51cmlCLCBvcHRpb25zKTtcblx0fVxuXG5cdHJldHVybiB1cmlBID09PSB1cmlCO1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIGVzY2FwZUNvbXBvbmVudChzdHI6c3RyaW5nLCBvcHRpb25zPzpVUklPcHRpb25zKTpzdHJpbmcge1xuXHRyZXR1cm4gc3RyICYmIHN0ci50b1N0cmluZygpLnJlcGxhY2UoKCFvcHRpb25zIHx8ICFvcHRpb25zLmlyaSA/IFVSSV9QUk9UT0NPTC5FU0NBUEUgOiBJUklfUFJPVE9DT0wuRVNDQVBFKSwgcGN0RW5jQ2hhcik7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gdW5lc2NhcGVDb21wb25lbnQoc3RyOnN0cmluZywgb3B0aW9ucz86VVJJT3B0aW9ucyk6c3RyaW5nIHtcblx0cmV0dXJuIHN0ciAmJiBzdHIudG9TdHJpbmcoKS5yZXBsYWNlKCghb3B0aW9ucyB8fCAhb3B0aW9ucy5pcmkgPyBVUklfUFJPVE9DT0wuUENUX0VOQ09ERUQgOiBJUklfUFJPVE9DT0wuUENUX0VOQ09ERUQpLCBwY3REZWNDaGFycyk7XG59O1xuIiwgIid1c2Ugc3RyaWN0JztcblxuLyoqIEhpZ2hlc3QgcG9zaXRpdmUgc2lnbmVkIDMyLWJpdCBmbG9hdCB2YWx1ZSAqL1xuY29uc3QgbWF4SW50ID0gMjE0NzQ4MzY0NzsgLy8gYWthLiAweDdGRkZGRkZGIG9yIDJeMzEtMVxuXG4vKiogQm9vdHN0cmluZyBwYXJhbWV0ZXJzICovXG5jb25zdCBiYXNlID0gMzY7XG5jb25zdCB0TWluID0gMTtcbmNvbnN0IHRNYXggPSAyNjtcbmNvbnN0IHNrZXcgPSAzODtcbmNvbnN0IGRhbXAgPSA3MDA7XG5jb25zdCBpbml0aWFsQmlhcyA9IDcyO1xuY29uc3QgaW5pdGlhbE4gPSAxMjg7IC8vIDB4ODBcbmNvbnN0IGRlbGltaXRlciA9ICctJzsgLy8gJ1xceDJEJ1xuXG4vKiogUmVndWxhciBleHByZXNzaW9ucyAqL1xuY29uc3QgcmVnZXhQdW55Y29kZSA9IC9eeG4tLS87XG5jb25zdCByZWdleE5vbkFTQ0lJID0gL1teXFwwLVxceDdFXS87IC8vIG5vbi1BU0NJSSBjaGFyc1xuY29uc3QgcmVnZXhTZXBhcmF0b3JzID0gL1tcXHgyRVxcdTMwMDJcXHVGRjBFXFx1RkY2MV0vZzsgLy8gUkZDIDM0OTAgc2VwYXJhdG9yc1xuXG4vKiogRXJyb3IgbWVzc2FnZXMgKi9cbmNvbnN0IGVycm9ycyA9IHtcblx0J292ZXJmbG93JzogJ092ZXJmbG93OiBpbnB1dCBuZWVkcyB3aWRlciBpbnRlZ2VycyB0byBwcm9jZXNzJyxcblx0J25vdC1iYXNpYyc6ICdJbGxlZ2FsIGlucHV0ID49IDB4ODAgKG5vdCBhIGJhc2ljIGNvZGUgcG9pbnQpJyxcblx0J2ludmFsaWQtaW5wdXQnOiAnSW52YWxpZCBpbnB1dCdcbn07XG5cbi8qKiBDb252ZW5pZW5jZSBzaG9ydGN1dHMgKi9cbmNvbnN0IGJhc2VNaW51c1RNaW4gPSBiYXNlIC0gdE1pbjtcbmNvbnN0IGZsb29yID0gTWF0aC5mbG9vcjtcbmNvbnN0IHN0cmluZ0Zyb21DaGFyQ29kZSA9IFN0cmluZy5mcm9tQ2hhckNvZGU7XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4vKipcbiAqIEEgZ2VuZXJpYyBlcnJvciB1dGlsaXR5IGZ1bmN0aW9uLlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7U3RyaW5nfSB0eXBlIFRoZSBlcnJvciB0eXBlLlxuICogQHJldHVybnMge0Vycm9yfSBUaHJvd3MgYSBgUmFuZ2VFcnJvcmAgd2l0aCB0aGUgYXBwbGljYWJsZSBlcnJvciBtZXNzYWdlLlxuICovXG5mdW5jdGlvbiBlcnJvcih0eXBlKSB7XG5cdHRocm93IG5ldyBSYW5nZUVycm9yKGVycm9yc1t0eXBlXSk7XG59XG5cbi8qKlxuICogQSBnZW5lcmljIGBBcnJheSNtYXBgIHV0aWxpdHkgZnVuY3Rpb24uXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIGl0ZXJhdGUgb3Zlci5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IGNhbGxiYWNrIFRoZSBmdW5jdGlvbiB0aGF0IGdldHMgY2FsbGVkIGZvciBldmVyeSBhcnJheVxuICogaXRlbS5cbiAqIEByZXR1cm5zIHtBcnJheX0gQSBuZXcgYXJyYXkgb2YgdmFsdWVzIHJldHVybmVkIGJ5IHRoZSBjYWxsYmFjayBmdW5jdGlvbi5cbiAqL1xuZnVuY3Rpb24gbWFwKGFycmF5LCBmbikge1xuXHRjb25zdCByZXN1bHQgPSBbXTtcblx0bGV0IGxlbmd0aCA9IGFycmF5Lmxlbmd0aDtcblx0d2hpbGUgKGxlbmd0aC0tKSB7XG5cdFx0cmVzdWx0W2xlbmd0aF0gPSBmbihhcnJheVtsZW5ndGhdKTtcblx0fVxuXHRyZXR1cm4gcmVzdWx0O1xufVxuXG4vKipcbiAqIEEgc2ltcGxlIGBBcnJheSNtYXBgLWxpa2Ugd3JhcHBlciB0byB3b3JrIHdpdGggZG9tYWluIG5hbWUgc3RyaW5ncyBvciBlbWFpbFxuICogYWRkcmVzc2VzLlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7U3RyaW5nfSBkb21haW4gVGhlIGRvbWFpbiBuYW1lIG9yIGVtYWlsIGFkZHJlc3MuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBjYWxsYmFjayBUaGUgZnVuY3Rpb24gdGhhdCBnZXRzIGNhbGxlZCBmb3IgZXZlcnlcbiAqIGNoYXJhY3Rlci5cbiAqIEByZXR1cm5zIHtBcnJheX0gQSBuZXcgc3RyaW5nIG9mIGNoYXJhY3RlcnMgcmV0dXJuZWQgYnkgdGhlIGNhbGxiYWNrXG4gKiBmdW5jdGlvbi5cbiAqL1xuZnVuY3Rpb24gbWFwRG9tYWluKHN0cmluZywgZm4pIHtcblx0Y29uc3QgcGFydHMgPSBzdHJpbmcuc3BsaXQoJ0AnKTtcblx0bGV0IHJlc3VsdCA9ICcnO1xuXHRpZiAocGFydHMubGVuZ3RoID4gMSkge1xuXHRcdC8vIEluIGVtYWlsIGFkZHJlc3Nlcywgb25seSB0aGUgZG9tYWluIG5hbWUgc2hvdWxkIGJlIHB1bnljb2RlZC4gTGVhdmVcblx0XHQvLyB0aGUgbG9jYWwgcGFydCAoaS5lLiBldmVyeXRoaW5nIHVwIHRvIGBAYCkgaW50YWN0LlxuXHRcdHJlc3VsdCA9IHBhcnRzWzBdICsgJ0AnO1xuXHRcdHN0cmluZyA9IHBhcnRzWzFdO1xuXHR9XG5cdC8vIEF2b2lkIGBzcGxpdChyZWdleClgIGZvciBJRTggY29tcGF0aWJpbGl0eS4gU2VlICMxNy5cblx0c3RyaW5nID0gc3RyaW5nLnJlcGxhY2UocmVnZXhTZXBhcmF0b3JzLCAnXFx4MkUnKTtcblx0Y29uc3QgbGFiZWxzID0gc3RyaW5nLnNwbGl0KCcuJyk7XG5cdGNvbnN0IGVuY29kZWQgPSBtYXAobGFiZWxzLCBmbikuam9pbignLicpO1xuXHRyZXR1cm4gcmVzdWx0ICsgZW5jb2RlZDtcbn1cblxuLyoqXG4gKiBDcmVhdGVzIGFuIGFycmF5IGNvbnRhaW5pbmcgdGhlIG51bWVyaWMgY29kZSBwb2ludHMgb2YgZWFjaCBVbmljb2RlXG4gKiBjaGFyYWN0ZXIgaW4gdGhlIHN0cmluZy4gV2hpbGUgSmF2YVNjcmlwdCB1c2VzIFVDUy0yIGludGVybmFsbHksXG4gKiB0aGlzIGZ1bmN0aW9uIHdpbGwgY29udmVydCBhIHBhaXIgb2Ygc3Vycm9nYXRlIGhhbHZlcyAoZWFjaCBvZiB3aGljaFxuICogVUNTLTIgZXhwb3NlcyBhcyBzZXBhcmF0ZSBjaGFyYWN0ZXJzKSBpbnRvIGEgc2luZ2xlIGNvZGUgcG9pbnQsXG4gKiBtYXRjaGluZyBVVEYtMTYuXG4gKiBAc2VlIGBwdW55Y29kZS51Y3MyLmVuY29kZWBcbiAqIEBzZWUgPGh0dHBzOi8vbWF0aGlhc2J5bmVucy5iZS9ub3Rlcy9qYXZhc2NyaXB0LWVuY29kaW5nPlxuICogQG1lbWJlck9mIHB1bnljb2RlLnVjczJcbiAqIEBuYW1lIGRlY29kZVxuICogQHBhcmFtIHtTdHJpbmd9IHN0cmluZyBUaGUgVW5pY29kZSBpbnB1dCBzdHJpbmcgKFVDUy0yKS5cbiAqIEByZXR1cm5zIHtBcnJheX0gVGhlIG5ldyBhcnJheSBvZiBjb2RlIHBvaW50cy5cbiAqL1xuZnVuY3Rpb24gdWNzMmRlY29kZShzdHJpbmcpIHtcblx0Y29uc3Qgb3V0cHV0ID0gW107XG5cdGxldCBjb3VudGVyID0gMDtcblx0Y29uc3QgbGVuZ3RoID0gc3RyaW5nLmxlbmd0aDtcblx0d2hpbGUgKGNvdW50ZXIgPCBsZW5ndGgpIHtcblx0XHRjb25zdCB2YWx1ZSA9IHN0cmluZy5jaGFyQ29kZUF0KGNvdW50ZXIrKyk7XG5cdFx0aWYgKHZhbHVlID49IDB4RDgwMCAmJiB2YWx1ZSA8PSAweERCRkYgJiYgY291bnRlciA8IGxlbmd0aCkge1xuXHRcdFx0Ly8gSXQncyBhIGhpZ2ggc3Vycm9nYXRlLCBhbmQgdGhlcmUgaXMgYSBuZXh0IGNoYXJhY3Rlci5cblx0XHRcdGNvbnN0IGV4dHJhID0gc3RyaW5nLmNoYXJDb2RlQXQoY291bnRlcisrKTtcblx0XHRcdGlmICgoZXh0cmEgJiAweEZDMDApID09IDB4REMwMCkgeyAvLyBMb3cgc3Vycm9nYXRlLlxuXHRcdFx0XHRvdXRwdXQucHVzaCgoKHZhbHVlICYgMHgzRkYpIDw8IDEwKSArIChleHRyYSAmIDB4M0ZGKSArIDB4MTAwMDApO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0Ly8gSXQncyBhbiB1bm1hdGNoZWQgc3Vycm9nYXRlOyBvbmx5IGFwcGVuZCB0aGlzIGNvZGUgdW5pdCwgaW4gY2FzZSB0aGVcblx0XHRcdFx0Ly8gbmV4dCBjb2RlIHVuaXQgaXMgdGhlIGhpZ2ggc3Vycm9nYXRlIG9mIGEgc3Vycm9nYXRlIHBhaXIuXG5cdFx0XHRcdG91dHB1dC5wdXNoKHZhbHVlKTtcblx0XHRcdFx0Y291bnRlci0tO1xuXHRcdFx0fVxuXHRcdH0gZWxzZSB7XG5cdFx0XHRvdXRwdXQucHVzaCh2YWx1ZSk7XG5cdFx0fVxuXHR9XG5cdHJldHVybiBvdXRwdXQ7XG59XG5cbi8qKlxuICogQ3JlYXRlcyBhIHN0cmluZyBiYXNlZCBvbiBhbiBhcnJheSBvZiBudW1lcmljIGNvZGUgcG9pbnRzLlxuICogQHNlZSBgcHVueWNvZGUudWNzMi5kZWNvZGVgXG4gKiBAbWVtYmVyT2YgcHVueWNvZGUudWNzMlxuICogQG5hbWUgZW5jb2RlXG4gKiBAcGFyYW0ge0FycmF5fSBjb2RlUG9pbnRzIFRoZSBhcnJheSBvZiBudW1lcmljIGNvZGUgcG9pbnRzLlxuICogQHJldHVybnMge1N0cmluZ30gVGhlIG5ldyBVbmljb2RlIHN0cmluZyAoVUNTLTIpLlxuICovXG5jb25zdCB1Y3MyZW5jb2RlID0gYXJyYXkgPT4gU3RyaW5nLmZyb21Db2RlUG9pbnQoLi4uYXJyYXkpO1xuXG4vKipcbiAqIENvbnZlcnRzIGEgYmFzaWMgY29kZSBwb2ludCBpbnRvIGEgZGlnaXQvaW50ZWdlci5cbiAqIEBzZWUgYGRpZ2l0VG9CYXNpYygpYFxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7TnVtYmVyfSBjb2RlUG9pbnQgVGhlIGJhc2ljIG51bWVyaWMgY29kZSBwb2ludCB2YWx1ZS5cbiAqIEByZXR1cm5zIHtOdW1iZXJ9IFRoZSBudW1lcmljIHZhbHVlIG9mIGEgYmFzaWMgY29kZSBwb2ludCAoZm9yIHVzZSBpblxuICogcmVwcmVzZW50aW5nIGludGVnZXJzKSBpbiB0aGUgcmFuZ2UgYDBgIHRvIGBiYXNlIC0gMWAsIG9yIGBiYXNlYCBpZlxuICogdGhlIGNvZGUgcG9pbnQgZG9lcyBub3QgcmVwcmVzZW50IGEgdmFsdWUuXG4gKi9cbmNvbnN0IGJhc2ljVG9EaWdpdCA9IGZ1bmN0aW9uKGNvZGVQb2ludCkge1xuXHRpZiAoY29kZVBvaW50IC0gMHgzMCA8IDB4MEEpIHtcblx0XHRyZXR1cm4gY29kZVBvaW50IC0gMHgxNjtcblx0fVxuXHRpZiAoY29kZVBvaW50IC0gMHg0MSA8IDB4MUEpIHtcblx0XHRyZXR1cm4gY29kZVBvaW50IC0gMHg0MTtcblx0fVxuXHRpZiAoY29kZVBvaW50IC0gMHg2MSA8IDB4MUEpIHtcblx0XHRyZXR1cm4gY29kZVBvaW50IC0gMHg2MTtcblx0fVxuXHRyZXR1cm4gYmFzZTtcbn07XG5cbi8qKlxuICogQ29udmVydHMgYSBkaWdpdC9pbnRlZ2VyIGludG8gYSBiYXNpYyBjb2RlIHBvaW50LlxuICogQHNlZSBgYmFzaWNUb0RpZ2l0KClgXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtOdW1iZXJ9IGRpZ2l0IFRoZSBudW1lcmljIHZhbHVlIG9mIGEgYmFzaWMgY29kZSBwb2ludC5cbiAqIEByZXR1cm5zIHtOdW1iZXJ9IFRoZSBiYXNpYyBjb2RlIHBvaW50IHdob3NlIHZhbHVlICh3aGVuIHVzZWQgZm9yXG4gKiByZXByZXNlbnRpbmcgaW50ZWdlcnMpIGlzIGBkaWdpdGAsIHdoaWNoIG5lZWRzIHRvIGJlIGluIHRoZSByYW5nZVxuICogYDBgIHRvIGBiYXNlIC0gMWAuIElmIGBmbGFnYCBpcyBub24temVybywgdGhlIHVwcGVyY2FzZSBmb3JtIGlzXG4gKiB1c2VkOyBlbHNlLCB0aGUgbG93ZXJjYXNlIGZvcm0gaXMgdXNlZC4gVGhlIGJlaGF2aW9yIGlzIHVuZGVmaW5lZFxuICogaWYgYGZsYWdgIGlzIG5vbi16ZXJvIGFuZCBgZGlnaXRgIGhhcyBubyB1cHBlcmNhc2UgZm9ybS5cbiAqL1xuY29uc3QgZGlnaXRUb0Jhc2ljID0gZnVuY3Rpb24oZGlnaXQsIGZsYWcpIHtcblx0Ly8gIDAuLjI1IG1hcCB0byBBU0NJSSBhLi56IG9yIEEuLlpcblx0Ly8gMjYuLjM1IG1hcCB0byBBU0NJSSAwLi45XG5cdHJldHVybiBkaWdpdCArIDIyICsgNzUgKiAoZGlnaXQgPCAyNikgLSAoKGZsYWcgIT0gMCkgPDwgNSk7XG59O1xuXG4vKipcbiAqIEJpYXMgYWRhcHRhdGlvbiBmdW5jdGlvbiBhcyBwZXIgc2VjdGlvbiAzLjQgb2YgUkZDIDM0OTIuXG4gKiBodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjMzQ5MiNzZWN0aW9uLTMuNFxuICogQHByaXZhdGVcbiAqL1xuY29uc3QgYWRhcHQgPSBmdW5jdGlvbihkZWx0YSwgbnVtUG9pbnRzLCBmaXJzdFRpbWUpIHtcblx0bGV0IGsgPSAwO1xuXHRkZWx0YSA9IGZpcnN0VGltZSA/IGZsb29yKGRlbHRhIC8gZGFtcCkgOiBkZWx0YSA+PiAxO1xuXHRkZWx0YSArPSBmbG9vcihkZWx0YSAvIG51bVBvaW50cyk7XG5cdGZvciAoLyogbm8gaW5pdGlhbGl6YXRpb24gKi87IGRlbHRhID4gYmFzZU1pbnVzVE1pbiAqIHRNYXggPj4gMTsgayArPSBiYXNlKSB7XG5cdFx0ZGVsdGEgPSBmbG9vcihkZWx0YSAvIGJhc2VNaW51c1RNaW4pO1xuXHR9XG5cdHJldHVybiBmbG9vcihrICsgKGJhc2VNaW51c1RNaW4gKyAxKSAqIGRlbHRhIC8gKGRlbHRhICsgc2tldykpO1xufTtcblxuLyoqXG4gKiBDb252ZXJ0cyBhIFB1bnljb2RlIHN0cmluZyBvZiBBU0NJSS1vbmx5IHN5bWJvbHMgdG8gYSBzdHJpbmcgb2YgVW5pY29kZVxuICogc3ltYm9scy5cbiAqIEBtZW1iZXJPZiBwdW55Y29kZVxuICogQHBhcmFtIHtTdHJpbmd9IGlucHV0IFRoZSBQdW55Y29kZSBzdHJpbmcgb2YgQVNDSUktb25seSBzeW1ib2xzLlxuICogQHJldHVybnMge1N0cmluZ30gVGhlIHJlc3VsdGluZyBzdHJpbmcgb2YgVW5pY29kZSBzeW1ib2xzLlxuICovXG5jb25zdCBkZWNvZGUgPSBmdW5jdGlvbihpbnB1dCkge1xuXHQvLyBEb24ndCB1c2UgVUNTLTIuXG5cdGNvbnN0IG91dHB1dCA9IFtdO1xuXHRjb25zdCBpbnB1dExlbmd0aCA9IGlucHV0Lmxlbmd0aDtcblx0bGV0IGkgPSAwO1xuXHRsZXQgbiA9IGluaXRpYWxOO1xuXHRsZXQgYmlhcyA9IGluaXRpYWxCaWFzO1xuXG5cdC8vIEhhbmRsZSB0aGUgYmFzaWMgY29kZSBwb2ludHM6IGxldCBgYmFzaWNgIGJlIHRoZSBudW1iZXIgb2YgaW5wdXQgY29kZVxuXHQvLyBwb2ludHMgYmVmb3JlIHRoZSBsYXN0IGRlbGltaXRlciwgb3IgYDBgIGlmIHRoZXJlIGlzIG5vbmUsIHRoZW4gY29weVxuXHQvLyB0aGUgZmlyc3QgYmFzaWMgY29kZSBwb2ludHMgdG8gdGhlIG91dHB1dC5cblxuXHRsZXQgYmFzaWMgPSBpbnB1dC5sYXN0SW5kZXhPZihkZWxpbWl0ZXIpO1xuXHRpZiAoYmFzaWMgPCAwKSB7XG5cdFx0YmFzaWMgPSAwO1xuXHR9XG5cblx0Zm9yIChsZXQgaiA9IDA7IGogPCBiYXNpYzsgKytqKSB7XG5cdFx0Ly8gaWYgaXQncyBub3QgYSBiYXNpYyBjb2RlIHBvaW50XG5cdFx0aWYgKGlucHV0LmNoYXJDb2RlQXQoaikgPj0gMHg4MCkge1xuXHRcdFx0ZXJyb3IoJ25vdC1iYXNpYycpO1xuXHRcdH1cblx0XHRvdXRwdXQucHVzaChpbnB1dC5jaGFyQ29kZUF0KGopKTtcblx0fVxuXG5cdC8vIE1haW4gZGVjb2RpbmcgbG9vcDogc3RhcnQganVzdCBhZnRlciB0aGUgbGFzdCBkZWxpbWl0ZXIgaWYgYW55IGJhc2ljIGNvZGVcblx0Ly8gcG9pbnRzIHdlcmUgY29waWVkOyBzdGFydCBhdCB0aGUgYmVnaW5uaW5nIG90aGVyd2lzZS5cblxuXHRmb3IgKGxldCBpbmRleCA9IGJhc2ljID4gMCA/IGJhc2ljICsgMSA6IDA7IGluZGV4IDwgaW5wdXRMZW5ndGg7IC8qIG5vIGZpbmFsIGV4cHJlc3Npb24gKi8pIHtcblxuXHRcdC8vIGBpbmRleGAgaXMgdGhlIGluZGV4IG9mIHRoZSBuZXh0IGNoYXJhY3RlciB0byBiZSBjb25zdW1lZC5cblx0XHQvLyBEZWNvZGUgYSBnZW5lcmFsaXplZCB2YXJpYWJsZS1sZW5ndGggaW50ZWdlciBpbnRvIGBkZWx0YWAsXG5cdFx0Ly8gd2hpY2ggZ2V0cyBhZGRlZCB0byBgaWAuIFRoZSBvdmVyZmxvdyBjaGVja2luZyBpcyBlYXNpZXJcblx0XHQvLyBpZiB3ZSBpbmNyZWFzZSBgaWAgYXMgd2UgZ28sIHRoZW4gc3VidHJhY3Qgb2ZmIGl0cyBzdGFydGluZ1xuXHRcdC8vIHZhbHVlIGF0IHRoZSBlbmQgdG8gb2J0YWluIGBkZWx0YWAuXG5cdFx0bGV0IG9sZGkgPSBpO1xuXHRcdGZvciAobGV0IHcgPSAxLCBrID0gYmFzZTsgLyogbm8gY29uZGl0aW9uICovOyBrICs9IGJhc2UpIHtcblxuXHRcdFx0aWYgKGluZGV4ID49IGlucHV0TGVuZ3RoKSB7XG5cdFx0XHRcdGVycm9yKCdpbnZhbGlkLWlucHV0Jyk7XG5cdFx0XHR9XG5cblx0XHRcdGNvbnN0IGRpZ2l0ID0gYmFzaWNUb0RpZ2l0KGlucHV0LmNoYXJDb2RlQXQoaW5kZXgrKykpO1xuXG5cdFx0XHRpZiAoZGlnaXQgPj0gYmFzZSB8fCBkaWdpdCA+IGZsb29yKChtYXhJbnQgLSBpKSAvIHcpKSB7XG5cdFx0XHRcdGVycm9yKCdvdmVyZmxvdycpO1xuXHRcdFx0fVxuXG5cdFx0XHRpICs9IGRpZ2l0ICogdztcblx0XHRcdGNvbnN0IHQgPSBrIDw9IGJpYXMgPyB0TWluIDogKGsgPj0gYmlhcyArIHRNYXggPyB0TWF4IDogayAtIGJpYXMpO1xuXG5cdFx0XHRpZiAoZGlnaXQgPCB0KSB7XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0fVxuXG5cdFx0XHRjb25zdCBiYXNlTWludXNUID0gYmFzZSAtIHQ7XG5cdFx0XHRpZiAodyA+IGZsb29yKG1heEludCAvIGJhc2VNaW51c1QpKSB7XG5cdFx0XHRcdGVycm9yKCdvdmVyZmxvdycpO1xuXHRcdFx0fVxuXG5cdFx0XHR3ICo9IGJhc2VNaW51c1Q7XG5cblx0XHR9XG5cblx0XHRjb25zdCBvdXQgPSBvdXRwdXQubGVuZ3RoICsgMTtcblx0XHRiaWFzID0gYWRhcHQoaSAtIG9sZGksIG91dCwgb2xkaSA9PSAwKTtcblxuXHRcdC8vIGBpYCB3YXMgc3VwcG9zZWQgdG8gd3JhcCBhcm91bmQgZnJvbSBgb3V0YCB0byBgMGAsXG5cdFx0Ly8gaW5jcmVtZW50aW5nIGBuYCBlYWNoIHRpbWUsIHNvIHdlJ2xsIGZpeCB0aGF0IG5vdzpcblx0XHRpZiAoZmxvb3IoaSAvIG91dCkgPiBtYXhJbnQgLSBuKSB7XG5cdFx0XHRlcnJvcignb3ZlcmZsb3cnKTtcblx0XHR9XG5cblx0XHRuICs9IGZsb29yKGkgLyBvdXQpO1xuXHRcdGkgJT0gb3V0O1xuXG5cdFx0Ly8gSW5zZXJ0IGBuYCBhdCBwb3NpdGlvbiBgaWAgb2YgdGhlIG91dHB1dC5cblx0XHRvdXRwdXQuc3BsaWNlKGkrKywgMCwgbik7XG5cblx0fVxuXG5cdHJldHVybiBTdHJpbmcuZnJvbUNvZGVQb2ludCguLi5vdXRwdXQpO1xufTtcblxuLyoqXG4gKiBDb252ZXJ0cyBhIHN0cmluZyBvZiBVbmljb2RlIHN5bWJvbHMgKGUuZy4gYSBkb21haW4gbmFtZSBsYWJlbCkgdG8gYVxuICogUHVueWNvZGUgc3RyaW5nIG9mIEFTQ0lJLW9ubHkgc3ltYm9scy5cbiAqIEBtZW1iZXJPZiBwdW55Y29kZVxuICogQHBhcmFtIHtTdHJpbmd9IGlucHV0IFRoZSBzdHJpbmcgb2YgVW5pY29kZSBzeW1ib2xzLlxuICogQHJldHVybnMge1N0cmluZ30gVGhlIHJlc3VsdGluZyBQdW55Y29kZSBzdHJpbmcgb2YgQVNDSUktb25seSBzeW1ib2xzLlxuICovXG5jb25zdCBlbmNvZGUgPSBmdW5jdGlvbihpbnB1dCkge1xuXHRjb25zdCBvdXRwdXQgPSBbXTtcblxuXHQvLyBDb252ZXJ0IHRoZSBpbnB1dCBpbiBVQ1MtMiB0byBhbiBhcnJheSBvZiBVbmljb2RlIGNvZGUgcG9pbnRzLlxuXHRpbnB1dCA9IHVjczJkZWNvZGUoaW5wdXQpO1xuXG5cdC8vIENhY2hlIHRoZSBsZW5ndGguXG5cdGxldCBpbnB1dExlbmd0aCA9IGlucHV0Lmxlbmd0aDtcblxuXHQvLyBJbml0aWFsaXplIHRoZSBzdGF0ZS5cblx0bGV0IG4gPSBpbml0aWFsTjtcblx0bGV0IGRlbHRhID0gMDtcblx0bGV0IGJpYXMgPSBpbml0aWFsQmlhcztcblxuXHQvLyBIYW5kbGUgdGhlIGJhc2ljIGNvZGUgcG9pbnRzLlxuXHRmb3IgKGNvbnN0IGN1cnJlbnRWYWx1ZSBvZiBpbnB1dCkge1xuXHRcdGlmIChjdXJyZW50VmFsdWUgPCAweDgwKSB7XG5cdFx0XHRvdXRwdXQucHVzaChzdHJpbmdGcm9tQ2hhckNvZGUoY3VycmVudFZhbHVlKSk7XG5cdFx0fVxuXHR9XG5cblx0bGV0IGJhc2ljTGVuZ3RoID0gb3V0cHV0Lmxlbmd0aDtcblx0bGV0IGhhbmRsZWRDUENvdW50ID0gYmFzaWNMZW5ndGg7XG5cblx0Ly8gYGhhbmRsZWRDUENvdW50YCBpcyB0aGUgbnVtYmVyIG9mIGNvZGUgcG9pbnRzIHRoYXQgaGF2ZSBiZWVuIGhhbmRsZWQ7XG5cdC8vIGBiYXNpY0xlbmd0aGAgaXMgdGhlIG51bWJlciBvZiBiYXNpYyBjb2RlIHBvaW50cy5cblxuXHQvLyBGaW5pc2ggdGhlIGJhc2ljIHN0cmluZyB3aXRoIGEgZGVsaW1pdGVyIHVubGVzcyBpdCdzIGVtcHR5LlxuXHRpZiAoYmFzaWNMZW5ndGgpIHtcblx0XHRvdXRwdXQucHVzaChkZWxpbWl0ZXIpO1xuXHR9XG5cblx0Ly8gTWFpbiBlbmNvZGluZyBsb29wOlxuXHR3aGlsZSAoaGFuZGxlZENQQ291bnQgPCBpbnB1dExlbmd0aCkge1xuXG5cdFx0Ly8gQWxsIG5vbi1iYXNpYyBjb2RlIHBvaW50cyA8IG4gaGF2ZSBiZWVuIGhhbmRsZWQgYWxyZWFkeS4gRmluZCB0aGUgbmV4dFxuXHRcdC8vIGxhcmdlciBvbmU6XG5cdFx0bGV0IG0gPSBtYXhJbnQ7XG5cdFx0Zm9yIChjb25zdCBjdXJyZW50VmFsdWUgb2YgaW5wdXQpIHtcblx0XHRcdGlmIChjdXJyZW50VmFsdWUgPj0gbiAmJiBjdXJyZW50VmFsdWUgPCBtKSB7XG5cdFx0XHRcdG0gPSBjdXJyZW50VmFsdWU7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Ly8gSW5jcmVhc2UgYGRlbHRhYCBlbm91Z2ggdG8gYWR2YW5jZSB0aGUgZGVjb2RlcidzIDxuLGk+IHN0YXRlIHRvIDxtLDA+LFxuXHRcdC8vIGJ1dCBndWFyZCBhZ2FpbnN0IG92ZXJmbG93LlxuXHRcdGNvbnN0IGhhbmRsZWRDUENvdW50UGx1c09uZSA9IGhhbmRsZWRDUENvdW50ICsgMTtcblx0XHRpZiAobSAtIG4gPiBmbG9vcigobWF4SW50IC0gZGVsdGEpIC8gaGFuZGxlZENQQ291bnRQbHVzT25lKSkge1xuXHRcdFx0ZXJyb3IoJ292ZXJmbG93Jyk7XG5cdFx0fVxuXG5cdFx0ZGVsdGEgKz0gKG0gLSBuKSAqIGhhbmRsZWRDUENvdW50UGx1c09uZTtcblx0XHRuID0gbTtcblxuXHRcdGZvciAoY29uc3QgY3VycmVudFZhbHVlIG9mIGlucHV0KSB7XG5cdFx0XHRpZiAoY3VycmVudFZhbHVlIDwgbiAmJiArK2RlbHRhID4gbWF4SW50KSB7XG5cdFx0XHRcdGVycm9yKCdvdmVyZmxvdycpO1xuXHRcdFx0fVxuXHRcdFx0aWYgKGN1cnJlbnRWYWx1ZSA9PSBuKSB7XG5cdFx0XHRcdC8vIFJlcHJlc2VudCBkZWx0YSBhcyBhIGdlbmVyYWxpemVkIHZhcmlhYmxlLWxlbmd0aCBpbnRlZ2VyLlxuXHRcdFx0XHRsZXQgcSA9IGRlbHRhO1xuXHRcdFx0XHRmb3IgKGxldCBrID0gYmFzZTsgLyogbm8gY29uZGl0aW9uICovOyBrICs9IGJhc2UpIHtcblx0XHRcdFx0XHRjb25zdCB0ID0gayA8PSBiaWFzID8gdE1pbiA6IChrID49IGJpYXMgKyB0TWF4ID8gdE1heCA6IGsgLSBiaWFzKTtcblx0XHRcdFx0XHRpZiAocSA8IHQpIHtcblx0XHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRjb25zdCBxTWludXNUID0gcSAtIHQ7XG5cdFx0XHRcdFx0Y29uc3QgYmFzZU1pbnVzVCA9IGJhc2UgLSB0O1xuXHRcdFx0XHRcdG91dHB1dC5wdXNoKFxuXHRcdFx0XHRcdFx0c3RyaW5nRnJvbUNoYXJDb2RlKGRpZ2l0VG9CYXNpYyh0ICsgcU1pbnVzVCAlIGJhc2VNaW51c1QsIDApKVxuXHRcdFx0XHRcdCk7XG5cdFx0XHRcdFx0cSA9IGZsb29yKHFNaW51c1QgLyBiYXNlTWludXNUKTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdG91dHB1dC5wdXNoKHN0cmluZ0Zyb21DaGFyQ29kZShkaWdpdFRvQmFzaWMocSwgMCkpKTtcblx0XHRcdFx0YmlhcyA9IGFkYXB0KGRlbHRhLCBoYW5kbGVkQ1BDb3VudFBsdXNPbmUsIGhhbmRsZWRDUENvdW50ID09IGJhc2ljTGVuZ3RoKTtcblx0XHRcdFx0ZGVsdGEgPSAwO1xuXHRcdFx0XHQrK2hhbmRsZWRDUENvdW50O1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdCsrZGVsdGE7XG5cdFx0KytuO1xuXG5cdH1cblx0cmV0dXJuIG91dHB1dC5qb2luKCcnKTtcbn07XG5cbi8qKlxuICogQ29udmVydHMgYSBQdW55Y29kZSBzdHJpbmcgcmVwcmVzZW50aW5nIGEgZG9tYWluIG5hbWUgb3IgYW4gZW1haWwgYWRkcmVzc1xuICogdG8gVW5pY29kZS4gT25seSB0aGUgUHVueWNvZGVkIHBhcnRzIG9mIHRoZSBpbnB1dCB3aWxsIGJlIGNvbnZlcnRlZCwgaS5lLlxuICogaXQgZG9lc24ndCBtYXR0ZXIgaWYgeW91IGNhbGwgaXQgb24gYSBzdHJpbmcgdGhhdCBoYXMgYWxyZWFkeSBiZWVuXG4gKiBjb252ZXJ0ZWQgdG8gVW5pY29kZS5cbiAqIEBtZW1iZXJPZiBwdW55Y29kZVxuICogQHBhcmFtIHtTdHJpbmd9IGlucHV0IFRoZSBQdW55Y29kZWQgZG9tYWluIG5hbWUgb3IgZW1haWwgYWRkcmVzcyB0b1xuICogY29udmVydCB0byBVbmljb2RlLlxuICogQHJldHVybnMge1N0cmluZ30gVGhlIFVuaWNvZGUgcmVwcmVzZW50YXRpb24gb2YgdGhlIGdpdmVuIFB1bnljb2RlXG4gKiBzdHJpbmcuXG4gKi9cbmNvbnN0IHRvVW5pY29kZSA9IGZ1bmN0aW9uKGlucHV0KSB7XG5cdHJldHVybiBtYXBEb21haW4oaW5wdXQsIGZ1bmN0aW9uKHN0cmluZykge1xuXHRcdHJldHVybiByZWdleFB1bnljb2RlLnRlc3Qoc3RyaW5nKVxuXHRcdFx0PyBkZWNvZGUoc3RyaW5nLnNsaWNlKDQpLnRvTG93ZXJDYXNlKCkpXG5cdFx0XHQ6IHN0cmluZztcblx0fSk7XG59O1xuXG4vKipcbiAqIENvbnZlcnRzIGEgVW5pY29kZSBzdHJpbmcgcmVwcmVzZW50aW5nIGEgZG9tYWluIG5hbWUgb3IgYW4gZW1haWwgYWRkcmVzcyB0b1xuICogUHVueWNvZGUuIE9ubHkgdGhlIG5vbi1BU0NJSSBwYXJ0cyBvZiB0aGUgZG9tYWluIG5hbWUgd2lsbCBiZSBjb252ZXJ0ZWQsXG4gKiBpLmUuIGl0IGRvZXNuJ3QgbWF0dGVyIGlmIHlvdSBjYWxsIGl0IHdpdGggYSBkb21haW4gdGhhdCdzIGFscmVhZHkgaW5cbiAqIEFTQ0lJLlxuICogQG1lbWJlck9mIHB1bnljb2RlXG4gKiBAcGFyYW0ge1N0cmluZ30gaW5wdXQgVGhlIGRvbWFpbiBuYW1lIG9yIGVtYWlsIGFkZHJlc3MgdG8gY29udmVydCwgYXMgYVxuICogVW5pY29kZSBzdHJpbmcuXG4gKiBAcmV0dXJucyB7U3RyaW5nfSBUaGUgUHVueWNvZGUgcmVwcmVzZW50YXRpb24gb2YgdGhlIGdpdmVuIGRvbWFpbiBuYW1lIG9yXG4gKiBlbWFpbCBhZGRyZXNzLlxuICovXG5jb25zdCB0b0FTQ0lJID0gZnVuY3Rpb24oaW5wdXQpIHtcblx0cmV0dXJuIG1hcERvbWFpbihpbnB1dCwgZnVuY3Rpb24oc3RyaW5nKSB7XG5cdFx0cmV0dXJuIHJlZ2V4Tm9uQVNDSUkudGVzdChzdHJpbmcpXG5cdFx0XHQ/ICd4bi0tJyArIGVuY29kZShzdHJpbmcpXG5cdFx0XHQ6IHN0cmluZztcblx0fSk7XG59O1xuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLyoqIERlZmluZSB0aGUgcHVibGljIEFQSSAqL1xuY29uc3QgcHVueWNvZGUgPSB7XG5cdC8qKlxuXHQgKiBBIHN0cmluZyByZXByZXNlbnRpbmcgdGhlIGN1cnJlbnQgUHVueWNvZGUuanMgdmVyc2lvbiBudW1iZXIuXG5cdCAqIEBtZW1iZXJPZiBwdW55Y29kZVxuXHQgKiBAdHlwZSBTdHJpbmdcblx0ICovXG5cdCd2ZXJzaW9uJzogJzIuMS4wJyxcblx0LyoqXG5cdCAqIEFuIG9iamVjdCBvZiBtZXRob2RzIHRvIGNvbnZlcnQgZnJvbSBKYXZhU2NyaXB0J3MgaW50ZXJuYWwgY2hhcmFjdGVyXG5cdCAqIHJlcHJlc2VudGF0aW9uIChVQ1MtMikgdG8gVW5pY29kZSBjb2RlIHBvaW50cywgYW5kIGJhY2suXG5cdCAqIEBzZWUgPGh0dHBzOi8vbWF0aGlhc2J5bmVucy5iZS9ub3Rlcy9qYXZhc2NyaXB0LWVuY29kaW5nPlxuXHQgKiBAbWVtYmVyT2YgcHVueWNvZGVcblx0ICogQHR5cGUgT2JqZWN0XG5cdCAqL1xuXHQndWNzMic6IHtcblx0XHQnZGVjb2RlJzogdWNzMmRlY29kZSxcblx0XHQnZW5jb2RlJzogdWNzMmVuY29kZVxuXHR9LFxuXHQnZGVjb2RlJzogZGVjb2RlLFxuXHQnZW5jb2RlJzogZW5jb2RlLFxuXHQndG9BU0NJSSc6IHRvQVNDSUksXG5cdCd0b1VuaWNvZGUnOiB0b1VuaWNvZGVcbn07XG5cbmV4cG9ydCBkZWZhdWx0IHB1bnljb2RlO1xuIiwgImltcG9ydCB7IFVSSVJlZ0V4cHMgfSBmcm9tIFwiLi91cmlcIjtcbmltcG9ydCB7IGJ1aWxkRXhwcyB9IGZyb20gXCIuL3JlZ2V4cHMtdXJpXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGJ1aWxkRXhwcyh0cnVlKTtcbiIsICJpbXBvcnQgeyBVUklSZWdFeHBzIH0gZnJvbSBcIi4vdXJpXCI7XG5pbXBvcnQgeyBtZXJnZSwgc3ViZXhwIH0gZnJvbSBcIi4vdXRpbFwiO1xuXG5leHBvcnQgZnVuY3Rpb24gYnVpbGRFeHBzKGlzSVJJOmJvb2xlYW4pOlVSSVJlZ0V4cHMge1xuXHRjb25zdFxuXHRcdEFMUEhBJCQgPSBcIltBLVphLXpdXCIsXG5cdFx0Q1IkID0gXCJbXFxcXHgwRF1cIixcblx0XHRESUdJVCQkID0gXCJbMC05XVwiLFxuXHRcdERRVU9URSQkID0gXCJbXFxcXHgyMl1cIixcblx0XHRIRVhESUckJCA9IG1lcmdlKERJR0lUJCQsIFwiW0EtRmEtZl1cIiksICAvL2Nhc2UtaW5zZW5zaXRpdmVcblx0XHRMRiQkID0gXCJbXFxcXHgwQV1cIixcblx0XHRTUCQkID0gXCJbXFxcXHgyMF1cIixcblx0XHRQQ1RfRU5DT0RFRCQgPSBzdWJleHAoc3ViZXhwKFwiJVtFRmVmXVwiICsgSEVYRElHJCQgKyBcIiVcIiArIEhFWERJRyQkICsgSEVYRElHJCQgKyBcIiVcIiArIEhFWERJRyQkICsgSEVYRElHJCQpICsgXCJ8XCIgKyBzdWJleHAoXCIlWzg5QS1GYS1mXVwiICsgSEVYRElHJCQgKyBcIiVcIiArIEhFWERJRyQkICsgSEVYRElHJCQpICsgXCJ8XCIgKyBzdWJleHAoXCIlXCIgKyBIRVhESUckJCArIEhFWERJRyQkKSksICAvL2V4cGFuZGVkXG5cdFx0R0VOX0RFTElNUyQkID0gXCJbXFxcXDpcXFxcL1xcXFw/XFxcXCNcXFxcW1xcXFxdXFxcXEBdXCIsXG5cdFx0U1VCX0RFTElNUyQkID0gXCJbXFxcXCFcXFxcJFxcXFwmXFxcXCdcXFxcKFxcXFwpXFxcXCpcXFxcK1xcXFwsXFxcXDtcXFxcPV1cIixcblx0XHRSRVNFUlZFRCQkID0gbWVyZ2UoR0VOX0RFTElNUyQkLCBTVUJfREVMSU1TJCQpLFxuXHRcdFVDU0NIQVIkJCA9IGlzSVJJID8gXCJbXFxcXHhBMC1cXFxcdTIwMERcXFxcdTIwMTAtXFxcXHUyMDI5XFxcXHUyMDJGLVxcXFx1RDdGRlxcXFx1RjkwMC1cXFxcdUZEQ0ZcXFxcdUZERjAtXFxcXHVGRkVGXVwiIDogXCJbXVwiLCAgLy9zdWJzZXQsIGV4Y2x1ZGVzIGJpZGkgY29udHJvbCBjaGFyYWN0ZXJzXG5cdFx0SVBSSVZBVEUkJCA9IGlzSVJJID8gXCJbXFxcXHVFMDAwLVxcXFx1RjhGRl1cIiA6IFwiW11cIiwgIC8vc3Vic2V0XG5cdFx0VU5SRVNFUlZFRCQkID0gbWVyZ2UoQUxQSEEkJCwgRElHSVQkJCwgXCJbXFxcXC1cXFxcLlxcXFxfXFxcXH5dXCIsIFVDU0NIQVIkJCksXG5cdFx0U0NIRU1FJCA9IHN1YmV4cChBTFBIQSQkICsgbWVyZ2UoQUxQSEEkJCwgRElHSVQkJCwgXCJbXFxcXCtcXFxcLVxcXFwuXVwiKSArIFwiKlwiKSxcblx0XHRVU0VSSU5GTyQgPSBzdWJleHAoc3ViZXhwKFBDVF9FTkNPREVEJCArIFwifFwiICsgbWVyZ2UoVU5SRVNFUlZFRCQkLCBTVUJfREVMSU1TJCQsIFwiW1xcXFw6XVwiKSkgKyBcIipcIiksXG5cdFx0REVDX09DVEVUJCA9IHN1YmV4cChzdWJleHAoXCIyNVswLTVdXCIpICsgXCJ8XCIgKyBzdWJleHAoXCIyWzAtNF1cIiArIERJR0lUJCQpICsgXCJ8XCIgKyBzdWJleHAoXCIxXCIgKyBESUdJVCQkICsgRElHSVQkJCkgKyBcInxcIiArIHN1YmV4cChcIlsxLTldXCIgKyBESUdJVCQkKSArIFwifFwiICsgRElHSVQkJCksXG5cdFx0REVDX09DVEVUX1JFTEFYRUQkID0gc3ViZXhwKHN1YmV4cChcIjI1WzAtNV1cIikgKyBcInxcIiArIHN1YmV4cChcIjJbMC00XVwiICsgRElHSVQkJCkgKyBcInxcIiArIHN1YmV4cChcIjFcIiArIERJR0lUJCQgKyBESUdJVCQkKSArIFwifFwiICsgc3ViZXhwKFwiMD9bMS05XVwiICsgRElHSVQkJCkgKyBcInwwPzA/XCIgKyBESUdJVCQkKSwgIC8vcmVsYXhlZCBwYXJzaW5nIHJ1bGVzXG5cdFx0SVBWNEFERFJFU1MkID0gc3ViZXhwKERFQ19PQ1RFVF9SRUxBWEVEJCArIFwiXFxcXC5cIiArIERFQ19PQ1RFVF9SRUxBWEVEJCArIFwiXFxcXC5cIiArIERFQ19PQ1RFVF9SRUxBWEVEJCArIFwiXFxcXC5cIiArIERFQ19PQ1RFVF9SRUxBWEVEJCksXG5cdFx0SDE2JCA9IHN1YmV4cChIRVhESUckJCArIFwiezEsNH1cIiksXG5cdFx0TFMzMiQgPSBzdWJleHAoc3ViZXhwKEgxNiQgKyBcIlxcXFw6XCIgKyBIMTYkKSArIFwifFwiICsgSVBWNEFERFJFU1MkKSxcblx0XHRJUFY2QUREUkVTUzEkID0gc3ViZXhwKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1YmV4cChIMTYkICsgXCJcXFxcOlwiKSArIFwiezZ9XCIgKyBMUzMyJCksIC8vICAgICAgICAgICAgICAgICAgICAgICAgICAgNiggaDE2IFwiOlwiICkgbHMzMlxuXHRcdElQVjZBRERSRVNTMiQgPSBzdWJleHAoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiXFxcXDpcXFxcOlwiICsgc3ViZXhwKEgxNiQgKyBcIlxcXFw6XCIpICsgXCJ7NX1cIiArIExTMzIkKSwgLy8gICAgICAgICAgICAgICAgICAgICAgXCI6OlwiIDUoIGgxNiBcIjpcIiApIGxzMzJcblx0XHRJUFY2QUREUkVTUzMkID0gc3ViZXhwKHN1YmV4cCggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBIMTYkKSArIFwiP1xcXFw6XFxcXDpcIiArIHN1YmV4cChIMTYkICsgXCJcXFxcOlwiKSArIFwiezR9XCIgKyBMUzMyJCksIC8vWyAgICAgICAgICAgICAgIGgxNiBdIFwiOjpcIiA0KCBoMTYgXCI6XCIgKSBsczMyXG5cdFx0SVBWNkFERFJFU1M0JCA9IHN1YmV4cChzdWJleHAoc3ViZXhwKEgxNiQgKyBcIlxcXFw6XCIpICsgXCJ7MCwxfVwiICsgSDE2JCkgKyBcIj9cXFxcOlxcXFw6XCIgKyBzdWJleHAoSDE2JCArIFwiXFxcXDpcIikgKyBcInszfVwiICsgTFMzMiQpLCAvL1sgKjEoIGgxNiBcIjpcIiApIGgxNiBdIFwiOjpcIiAzKCBoMTYgXCI6XCIgKSBsczMyXG5cdFx0SVBWNkFERFJFU1M1JCA9IHN1YmV4cChzdWJleHAoc3ViZXhwKEgxNiQgKyBcIlxcXFw6XCIpICsgXCJ7MCwyfVwiICsgSDE2JCkgKyBcIj9cXFxcOlxcXFw6XCIgKyBzdWJleHAoSDE2JCArIFwiXFxcXDpcIikgKyBcInsyfVwiICsgTFMzMiQpLCAvL1sgKjIoIGgxNiBcIjpcIiApIGgxNiBdIFwiOjpcIiAyKCBoMTYgXCI6XCIgKSBsczMyXG5cdFx0SVBWNkFERFJFU1M2JCA9IHN1YmV4cChzdWJleHAoc3ViZXhwKEgxNiQgKyBcIlxcXFw6XCIpICsgXCJ7MCwzfVwiICsgSDE2JCkgKyBcIj9cXFxcOlxcXFw6XCIgKyAgICAgICAgSDE2JCArIFwiXFxcXDpcIiAgICAgICAgICArIExTMzIkKSwgLy9bICozKCBoMTYgXCI6XCIgKSBoMTYgXSBcIjo6XCIgICAgaDE2IFwiOlwiICAgbHMzMlxuXHRcdElQVjZBRERSRVNTNyQgPSBzdWJleHAoc3ViZXhwKHN1YmV4cChIMTYkICsgXCJcXFxcOlwiKSArIFwiezAsNH1cIiArIEgxNiQpICsgXCI/XFxcXDpcXFxcOlwiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIExTMzIkKSwgLy9bICo0KCBoMTYgXCI6XCIgKSBoMTYgXSBcIjo6XCIgICAgICAgICAgICAgIGxzMzJcblx0XHRJUFY2QUREUkVTUzgkID0gc3ViZXhwKHN1YmV4cChzdWJleHAoSDE2JCArIFwiXFxcXDpcIikgKyBcInswLDV9XCIgKyBIMTYkKSArIFwiP1xcXFw6XFxcXDpcIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBIMTYkICksIC8vWyAqNSggaDE2IFwiOlwiICkgaDE2IF0gXCI6OlwiICAgICAgICAgICAgICBoMTZcblx0XHRJUFY2QUREUkVTUzkkID0gc3ViZXhwKHN1YmV4cChzdWJleHAoSDE2JCArIFwiXFxcXDpcIikgKyBcInswLDZ9XCIgKyBIMTYkKSArIFwiP1xcXFw6XFxcXDpcIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICksIC8vWyAqNiggaDE2IFwiOlwiICkgaDE2IF0gXCI6OlwiXG5cdFx0SVBWNkFERFJFU1MkID0gc3ViZXhwKFtJUFY2QUREUkVTUzEkLCBJUFY2QUREUkVTUzIkLCBJUFY2QUREUkVTUzMkLCBJUFY2QUREUkVTUzQkLCBJUFY2QUREUkVTUzUkLCBJUFY2QUREUkVTUzYkLCBJUFY2QUREUkVTUzckLCBJUFY2QUREUkVTUzgkLCBJUFY2QUREUkVTUzkkXS5qb2luKFwifFwiKSksXG5cdFx0Wk9ORUlEJCA9IHN1YmV4cChzdWJleHAoVU5SRVNFUlZFRCQkICsgXCJ8XCIgKyBQQ1RfRU5DT0RFRCQpICsgXCIrXCIpLCAgLy9SRkMgNjg3NFxuXHRcdElQVjZBRERSWiQgPSBzdWJleHAoSVBWNkFERFJFU1MkICsgXCJcXFxcJTI1XCIgKyBaT05FSUQkKSwgIC8vUkZDIDY4NzRcblx0XHRJUFY2QUREUlpfUkVMQVhFRCQgPSBzdWJleHAoSVBWNkFERFJFU1MkICsgc3ViZXhwKFwiXFxcXCUyNXxcXFxcJSg/IVwiICsgSEVYRElHJCQgKyBcInsyfSlcIikgKyBaT05FSUQkKSwgIC8vUkZDIDY4NzQsIHdpdGggcmVsYXhlZCBwYXJzaW5nIHJ1bGVzXG5cdFx0SVBWRlVUVVJFJCA9IHN1YmV4cChcIlt2Vl1cIiArIEhFWERJRyQkICsgXCIrXFxcXC5cIiArIG1lcmdlKFVOUkVTRVJWRUQkJCwgU1VCX0RFTElNUyQkLCBcIltcXFxcOl1cIikgKyBcIitcIiksXG5cdFx0SVBfTElURVJBTCQgPSBzdWJleHAoXCJcXFxcW1wiICsgc3ViZXhwKElQVjZBRERSWl9SRUxBWEVEJCArIFwifFwiICsgSVBWNkFERFJFU1MkICsgXCJ8XCIgKyBJUFZGVVRVUkUkKSArIFwiXFxcXF1cIiksICAvL1JGQyA2ODc0XG5cdFx0UkVHX05BTUUkID0gc3ViZXhwKHN1YmV4cChQQ1RfRU5DT0RFRCQgKyBcInxcIiArIG1lcmdlKFVOUkVTRVJWRUQkJCwgU1VCX0RFTElNUyQkKSkgKyBcIipcIiksXG5cdFx0SE9TVCQgPSBzdWJleHAoSVBfTElURVJBTCQgKyBcInxcIiArIElQVjRBRERSRVNTJCArIFwiKD8hXCIgKyBSRUdfTkFNRSQgKyBcIilcIiArIFwifFwiICsgUkVHX05BTUUkKSxcblx0XHRQT1JUJCA9IHN1YmV4cChESUdJVCQkICsgXCIqXCIpLFxuXHRcdEFVVEhPUklUWSQgPSBzdWJleHAoc3ViZXhwKFVTRVJJTkZPJCArIFwiQFwiKSArIFwiP1wiICsgSE9TVCQgKyBzdWJleHAoXCJcXFxcOlwiICsgUE9SVCQpICsgXCI/XCIpLFxuXHRcdFBDSEFSJCA9IHN1YmV4cChQQ1RfRU5DT0RFRCQgKyBcInxcIiArIG1lcmdlKFVOUkVTRVJWRUQkJCwgU1VCX0RFTElNUyQkLCBcIltcXFxcOlxcXFxAXVwiKSksXG5cdFx0U0VHTUVOVCQgPSBzdWJleHAoUENIQVIkICsgXCIqXCIpLFxuXHRcdFNFR01FTlRfTlokID0gc3ViZXhwKFBDSEFSJCArIFwiK1wiKSxcblx0XHRTRUdNRU5UX05aX05DJCA9IHN1YmV4cChzdWJleHAoUENUX0VOQ09ERUQkICsgXCJ8XCIgKyBtZXJnZShVTlJFU0VSVkVEJCQsIFNVQl9ERUxJTVMkJCwgXCJbXFxcXEBdXCIpKSArIFwiK1wiKSxcblx0XHRQQVRIX0FCRU1QVFkkID0gc3ViZXhwKHN1YmV4cChcIlxcXFwvXCIgKyBTRUdNRU5UJCkgKyBcIipcIiksXG5cdFx0UEFUSF9BQlNPTFVURSQgPSBzdWJleHAoXCJcXFxcL1wiICsgc3ViZXhwKFNFR01FTlRfTlokICsgUEFUSF9BQkVNUFRZJCkgKyBcIj9cIiksICAvL3NpbXBsaWZpZWRcblx0XHRQQVRIX05PU0NIRU1FJCA9IHN1YmV4cChTRUdNRU5UX05aX05DJCArIFBBVEhfQUJFTVBUWSQpLCAgLy9zaW1wbGlmaWVkXG5cdFx0UEFUSF9ST09UTEVTUyQgPSBzdWJleHAoU0VHTUVOVF9OWiQgKyBQQVRIX0FCRU1QVFkkKSwgIC8vc2ltcGxpZmllZFxuXHRcdFBBVEhfRU1QVFkkID0gXCIoPyFcIiArIFBDSEFSJCArIFwiKVwiLFxuXHRcdFBBVEgkID0gc3ViZXhwKFBBVEhfQUJFTVBUWSQgKyBcInxcIiArIFBBVEhfQUJTT0xVVEUkICsgXCJ8XCIgKyBQQVRIX05PU0NIRU1FJCArIFwifFwiICsgUEFUSF9ST09UTEVTUyQgKyBcInxcIiArIFBBVEhfRU1QVFkkKSxcblx0XHRRVUVSWSQgPSBzdWJleHAoc3ViZXhwKFBDSEFSJCArIFwifFwiICsgbWVyZ2UoXCJbXFxcXC9cXFxcP11cIiwgSVBSSVZBVEUkJCkpICsgXCIqXCIpLFxuXHRcdEZSQUdNRU5UJCA9IHN1YmV4cChzdWJleHAoUENIQVIkICsgXCJ8W1xcXFwvXFxcXD9dXCIpICsgXCIqXCIpLFxuXHRcdEhJRVJfUEFSVCQgPSBzdWJleHAoc3ViZXhwKFwiXFxcXC9cXFxcL1wiICsgQVVUSE9SSVRZJCArIFBBVEhfQUJFTVBUWSQpICsgXCJ8XCIgKyBQQVRIX0FCU09MVVRFJCArIFwifFwiICsgUEFUSF9ST09UTEVTUyQgKyBcInxcIiArIFBBVEhfRU1QVFkkKSxcblx0XHRVUkkkID0gc3ViZXhwKFNDSEVNRSQgKyBcIlxcXFw6XCIgKyBISUVSX1BBUlQkICsgc3ViZXhwKFwiXFxcXD9cIiArIFFVRVJZJCkgKyBcIj9cIiArIHN1YmV4cChcIlxcXFwjXCIgKyBGUkFHTUVOVCQpICsgXCI/XCIpLFxuXHRcdFJFTEFUSVZFX1BBUlQkID0gc3ViZXhwKHN1YmV4cChcIlxcXFwvXFxcXC9cIiArIEFVVEhPUklUWSQgKyBQQVRIX0FCRU1QVFkkKSArIFwifFwiICsgUEFUSF9BQlNPTFVURSQgKyBcInxcIiArIFBBVEhfTk9TQ0hFTUUkICsgXCJ8XCIgKyBQQVRIX0VNUFRZJCksXG5cdFx0UkVMQVRJVkUkID0gc3ViZXhwKFJFTEFUSVZFX1BBUlQkICsgc3ViZXhwKFwiXFxcXD9cIiArIFFVRVJZJCkgKyBcIj9cIiArIHN1YmV4cChcIlxcXFwjXCIgKyBGUkFHTUVOVCQpICsgXCI/XCIpLFxuXHRcdFVSSV9SRUZFUkVOQ0UkID0gc3ViZXhwKFVSSSQgKyBcInxcIiArIFJFTEFUSVZFJCksXG5cdFx0QUJTT0xVVEVfVVJJJCA9IHN1YmV4cChTQ0hFTUUkICsgXCJcXFxcOlwiICsgSElFUl9QQVJUJCArIHN1YmV4cChcIlxcXFw/XCIgKyBRVUVSWSQpICsgXCI/XCIpLFxuXG5cdFx0R0VORVJJQ19SRUYkID0gXCJeKFwiICsgU0NIRU1FJCArIFwiKVxcXFw6XCIgKyBzdWJleHAoc3ViZXhwKFwiXFxcXC9cXFxcLyhcIiArIHN1YmV4cChcIihcIiArIFVTRVJJTkZPJCArIFwiKUBcIikgKyBcIj8oXCIgKyBIT1NUJCArIFwiKVwiICsgc3ViZXhwKFwiXFxcXDooXCIgKyBQT1JUJCArIFwiKVwiKSArIFwiPylcIikgKyBcIj8oXCIgKyBQQVRIX0FCRU1QVFkkICsgXCJ8XCIgKyBQQVRIX0FCU09MVVRFJCArIFwifFwiICsgUEFUSF9ST09UTEVTUyQgKyBcInxcIiArIFBBVEhfRU1QVFkkICsgXCIpXCIpICsgc3ViZXhwKFwiXFxcXD8oXCIgKyBRVUVSWSQgKyBcIilcIikgKyBcIj9cIiArIHN1YmV4cChcIlxcXFwjKFwiICsgRlJBR01FTlQkICsgXCIpXCIpICsgXCI/JFwiLFxuXHRcdFJFTEFUSVZFX1JFRiQgPSBcIl4oKXswfVwiICsgc3ViZXhwKHN1YmV4cChcIlxcXFwvXFxcXC8oXCIgKyBzdWJleHAoXCIoXCIgKyBVU0VSSU5GTyQgKyBcIilAXCIpICsgXCI/KFwiICsgSE9TVCQgKyBcIilcIiArIHN1YmV4cChcIlxcXFw6KFwiICsgUE9SVCQgKyBcIilcIikgKyBcIj8pXCIpICsgXCI/KFwiICsgUEFUSF9BQkVNUFRZJCArIFwifFwiICsgUEFUSF9BQlNPTFVURSQgKyBcInxcIiArIFBBVEhfTk9TQ0hFTUUkICsgXCJ8XCIgKyBQQVRIX0VNUFRZJCArIFwiKVwiKSArIHN1YmV4cChcIlxcXFw/KFwiICsgUVVFUlkkICsgXCIpXCIpICsgXCI/XCIgKyBzdWJleHAoXCJcXFxcIyhcIiArIEZSQUdNRU5UJCArIFwiKVwiKSArIFwiPyRcIixcblx0XHRBQlNPTFVURV9SRUYkID0gXCJeKFwiICsgU0NIRU1FJCArIFwiKVxcXFw6XCIgKyBzdWJleHAoc3ViZXhwKFwiXFxcXC9cXFxcLyhcIiArIHN1YmV4cChcIihcIiArIFVTRVJJTkZPJCArIFwiKUBcIikgKyBcIj8oXCIgKyBIT1NUJCArIFwiKVwiICsgc3ViZXhwKFwiXFxcXDooXCIgKyBQT1JUJCArIFwiKVwiKSArIFwiPylcIikgKyBcIj8oXCIgKyBQQVRIX0FCRU1QVFkkICsgXCJ8XCIgKyBQQVRIX0FCU09MVVRFJCArIFwifFwiICsgUEFUSF9ST09UTEVTUyQgKyBcInxcIiArIFBBVEhfRU1QVFkkICsgXCIpXCIpICsgc3ViZXhwKFwiXFxcXD8oXCIgKyBRVUVSWSQgKyBcIilcIikgKyBcIj8kXCIsXG5cdFx0U0FNRURPQ19SRUYkID0gXCJeXCIgKyBzdWJleHAoXCJcXFxcIyhcIiArIEZSQUdNRU5UJCArIFwiKVwiKSArIFwiPyRcIixcblx0XHRBVVRIT1JJVFlfUkVGJCA9IFwiXlwiICsgc3ViZXhwKFwiKFwiICsgVVNFUklORk8kICsgXCIpQFwiKSArIFwiPyhcIiArIEhPU1QkICsgXCIpXCIgKyBzdWJleHAoXCJcXFxcOihcIiArIFBPUlQkICsgXCIpXCIpICsgXCI/JFwiXG5cdDtcblxuXHRyZXR1cm4ge1xuXHRcdE5PVF9TQ0hFTUUgOiBuZXcgUmVnRXhwKG1lcmdlKFwiW15dXCIsIEFMUEhBJCQsIERJR0lUJCQsIFwiW1xcXFwrXFxcXC1cXFxcLl1cIiksIFwiZ1wiKSxcblx0XHROT1RfVVNFUklORk8gOiBuZXcgUmVnRXhwKG1lcmdlKFwiW15cXFxcJVxcXFw6XVwiLCBVTlJFU0VSVkVEJCQsIFNVQl9ERUxJTVMkJCksIFwiZ1wiKSxcblx0XHROT1RfSE9TVCA6IG5ldyBSZWdFeHAobWVyZ2UoXCJbXlxcXFwlXFxcXFtcXFxcXVxcXFw6XVwiLCBVTlJFU0VSVkVEJCQsIFNVQl9ERUxJTVMkJCksIFwiZ1wiKSxcblx0XHROT1RfUEFUSCA6IG5ldyBSZWdFeHAobWVyZ2UoXCJbXlxcXFwlXFxcXC9cXFxcOlxcXFxAXVwiLCBVTlJFU0VSVkVEJCQsIFNVQl9ERUxJTVMkJCksIFwiZ1wiKSxcblx0XHROT1RfUEFUSF9OT1NDSEVNRSA6IG5ldyBSZWdFeHAobWVyZ2UoXCJbXlxcXFwlXFxcXC9cXFxcQF1cIiwgVU5SRVNFUlZFRCQkLCBTVUJfREVMSU1TJCQpLCBcImdcIiksXG5cdFx0Tk9UX1FVRVJZIDogbmV3IFJlZ0V4cChtZXJnZShcIlteXFxcXCVdXCIsIFVOUkVTRVJWRUQkJCwgU1VCX0RFTElNUyQkLCBcIltcXFxcOlxcXFxAXFxcXC9cXFxcP11cIiwgSVBSSVZBVEUkJCksIFwiZ1wiKSxcblx0XHROT1RfRlJBR01FTlQgOiBuZXcgUmVnRXhwKG1lcmdlKFwiW15cXFxcJV1cIiwgVU5SRVNFUlZFRCQkLCBTVUJfREVMSU1TJCQsIFwiW1xcXFw6XFxcXEBcXFxcL1xcXFw/XVwiKSwgXCJnXCIpLFxuXHRcdEVTQ0FQRSA6IG5ldyBSZWdFeHAobWVyZ2UoXCJbXl1cIiwgVU5SRVNFUlZFRCQkLCBTVUJfREVMSU1TJCQpLCBcImdcIiksXG5cdFx0VU5SRVNFUlZFRCA6IG5ldyBSZWdFeHAoVU5SRVNFUlZFRCQkLCBcImdcIiksXG5cdFx0T1RIRVJfQ0hBUlMgOiBuZXcgUmVnRXhwKG1lcmdlKFwiW15cXFxcJV1cIiwgVU5SRVNFUlZFRCQkLCBSRVNFUlZFRCQkKSwgXCJnXCIpLFxuXHRcdFBDVF9FTkNPREVEIDogbmV3IFJlZ0V4cChQQ1RfRU5DT0RFRCQsIFwiZ1wiKSxcblx0XHRJUFY0QUREUkVTUyA6IG5ldyBSZWdFeHAoXCJeKFwiICsgSVBWNEFERFJFU1MkICsgXCIpJFwiKSxcblx0XHRJUFY2QUREUkVTUyA6IG5ldyBSZWdFeHAoXCJeXFxcXFs/KFwiICsgSVBWNkFERFJFU1MkICsgXCIpXCIgKyBzdWJleHAoc3ViZXhwKFwiXFxcXCUyNXxcXFxcJSg/IVwiICsgSEVYRElHJCQgKyBcInsyfSlcIikgKyBcIihcIiArIFpPTkVJRCQgKyBcIilcIikgKyBcIj9cXFxcXT8kXCIpICAvL1JGQyA2ODc0LCB3aXRoIHJlbGF4ZWQgcGFyc2luZyBydWxlc1xuXHR9O1xufVxuXG5leHBvcnQgZGVmYXVsdCBidWlsZEV4cHMoZmFsc2UpO1xuIiwgImV4cG9ydCBmdW5jdGlvbiBtZXJnZSguLi5zZXRzOkFycmF5PHN0cmluZz4pOnN0cmluZyB7XG5cdGlmIChzZXRzLmxlbmd0aCA+IDEpIHtcblx0XHRzZXRzWzBdID0gc2V0c1swXS5zbGljZSgwLCAtMSk7XG5cdFx0Y29uc3QgeGwgPSBzZXRzLmxlbmd0aCAtIDE7XG5cdFx0Zm9yIChsZXQgeCA9IDE7IHggPCB4bDsgKyt4KSB7XG5cdFx0XHRzZXRzW3hdID0gc2V0c1t4XS5zbGljZSgxLCAtMSk7XG5cdFx0fVxuXHRcdHNldHNbeGxdID0gc2V0c1t4bF0uc2xpY2UoMSk7XG5cdFx0cmV0dXJuIHNldHMuam9pbignJyk7XG5cdH0gZWxzZSB7XG5cdFx0cmV0dXJuIHNldHNbMF07XG5cdH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHN1YmV4cChzdHI6c3RyaW5nKTpzdHJpbmcge1xuXHRyZXR1cm4gXCIoPzpcIiArIHN0ciArIFwiKVwiO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdHlwZU9mKG86YW55KTpzdHJpbmcge1xuXHRyZXR1cm4gbyA9PT0gdW5kZWZpbmVkID8gXCJ1bmRlZmluZWRcIiA6IChvID09PSBudWxsID8gXCJudWxsXCIgOiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwobykuc3BsaXQoXCIgXCIpLnBvcCgpLnNwbGl0KFwiXVwiKS5zaGlmdCgpLnRvTG93ZXJDYXNlKCkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdG9VcHBlckNhc2Uoc3RyOnN0cmluZyk6c3RyaW5nIHtcblx0cmV0dXJuIHN0ci50b1VwcGVyQ2FzZSgpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdG9BcnJheShvYmo6YW55KTpBcnJheTxhbnk+IHtcblx0cmV0dXJuIG9iaiAhPT0gdW5kZWZpbmVkICYmIG9iaiAhPT0gbnVsbCA/IChvYmogaW5zdGFuY2VvZiBBcnJheSA/IG9iaiA6ICh0eXBlb2Ygb2JqLmxlbmd0aCAhPT0gXCJudW1iZXJcIiB8fCBvYmouc3BsaXQgfHwgb2JqLnNldEludGVydmFsIHx8IG9iai5jYWxsID8gW29ial0gOiBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChvYmopKSkgOiBbXTtcbn1cblxuXG5leHBvcnQgZnVuY3Rpb24gYXNzaWduKHRhcmdldDogb2JqZWN0LCBzb3VyY2U6IGFueSk6IGFueSB7XG5cdGNvbnN0IG9iaiA9IHRhcmdldCBhcyBhbnk7XG5cdGlmIChzb3VyY2UpIHtcblx0XHRmb3IgKGNvbnN0IGtleSBpbiBzb3VyY2UpIHtcblx0XHRcdG9ialtrZXldID0gc291cmNlW2tleV07XG5cdFx0fVxuXHR9XG5cdHJldHVybiBvYmo7XG59IiwgIid1c2Ugc3RyaWN0JztcblxuLy8gZG8gbm90IGVkaXQgLmpzIGZpbGVzIGRpcmVjdGx5IC0gZWRpdCBzcmMvaW5kZXguanN0XG5cblxuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIGVxdWFsKGEsIGIpIHtcbiAgaWYgKGEgPT09IGIpIHJldHVybiB0cnVlO1xuXG4gIGlmIChhICYmIGIgJiYgdHlwZW9mIGEgPT0gJ29iamVjdCcgJiYgdHlwZW9mIGIgPT0gJ29iamVjdCcpIHtcbiAgICBpZiAoYS5jb25zdHJ1Y3RvciAhPT0gYi5jb25zdHJ1Y3RvcikgcmV0dXJuIGZhbHNlO1xuXG4gICAgdmFyIGxlbmd0aCwgaSwga2V5cztcbiAgICBpZiAoQXJyYXkuaXNBcnJheShhKSkge1xuICAgICAgbGVuZ3RoID0gYS5sZW5ndGg7XG4gICAgICBpZiAobGVuZ3RoICE9IGIubGVuZ3RoKSByZXR1cm4gZmFsc2U7XG4gICAgICBmb3IgKGkgPSBsZW5ndGg7IGktLSAhPT0gMDspXG4gICAgICAgIGlmICghZXF1YWwoYVtpXSwgYltpXSkpIHJldHVybiBmYWxzZTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuXG5cbiAgICBpZiAoYS5jb25zdHJ1Y3RvciA9PT0gUmVnRXhwKSByZXR1cm4gYS5zb3VyY2UgPT09IGIuc291cmNlICYmIGEuZmxhZ3MgPT09IGIuZmxhZ3M7XG4gICAgaWYgKGEudmFsdWVPZiAhPT0gT2JqZWN0LnByb3RvdHlwZS52YWx1ZU9mKSByZXR1cm4gYS52YWx1ZU9mKCkgPT09IGIudmFsdWVPZigpO1xuICAgIGlmIChhLnRvU3RyaW5nICE9PSBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nKSByZXR1cm4gYS50b1N0cmluZygpID09PSBiLnRvU3RyaW5nKCk7XG5cbiAgICBrZXlzID0gT2JqZWN0LmtleXMoYSk7XG4gICAgbGVuZ3RoID0ga2V5cy5sZW5ndGg7XG4gICAgaWYgKGxlbmd0aCAhPT0gT2JqZWN0LmtleXMoYikubGVuZ3RoKSByZXR1cm4gZmFsc2U7XG5cbiAgICBmb3IgKGkgPSBsZW5ndGg7IGktLSAhPT0gMDspXG4gICAgICBpZiAoIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChiLCBrZXlzW2ldKSkgcmV0dXJuIGZhbHNlO1xuXG4gICAgZm9yIChpID0gbGVuZ3RoOyBpLS0gIT09IDA7KSB7XG4gICAgICB2YXIga2V5ID0ga2V5c1tpXTtcblxuICAgICAgaWYgKCFlcXVhbChhW2tleV0sIGJba2V5XSkpIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIC8vIHRydWUgaWYgYm90aCBOYU4sIGZhbHNlIG90aGVyd2lzZVxuICByZXR1cm4gYSE9PWEgJiYgYiE9PWI7XG59O1xuIiwgIid1c2Ugc3RyaWN0JztcblxuLy8gaHR0cHM6Ly9tYXRoaWFzYnluZW5zLmJlL25vdGVzL2phdmFzY3JpcHQtZW5jb2Rpbmdcbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9iZXN0aWVqcy9wdW55Y29kZS5qcyAtIHB1bnljb2RlLnVjczIuZGVjb2RlXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIHVjczJsZW5ndGgoc3RyKSB7XG4gIHZhciBsZW5ndGggPSAwXG4gICAgLCBsZW4gPSBzdHIubGVuZ3RoXG4gICAgLCBwb3MgPSAwXG4gICAgLCB2YWx1ZTtcbiAgd2hpbGUgKHBvcyA8IGxlbikge1xuICAgIGxlbmd0aCsrO1xuICAgIHZhbHVlID0gc3RyLmNoYXJDb2RlQXQocG9zKyspO1xuICAgIGlmICh2YWx1ZSA+PSAweEQ4MDAgJiYgdmFsdWUgPD0gMHhEQkZGICYmIHBvcyA8IGxlbikge1xuICAgICAgLy8gaGlnaCBzdXJyb2dhdGUsIGFuZCB0aGVyZSBpcyBhIG5leHQgY2hhcmFjdGVyXG4gICAgICB2YWx1ZSA9IHN0ci5jaGFyQ29kZUF0KHBvcyk7XG4gICAgICBpZiAoKHZhbHVlICYgMHhGQzAwKSA9PSAweERDMDApIHBvcysrOyAvLyBsb3cgc3Vycm9nYXRlXG4gICAgfVxuICB9XG4gIHJldHVybiBsZW5ndGg7XG59O1xuIiwgIid1c2Ugc3RyaWN0JztcblxuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgY29weTogY29weSxcbiAgY2hlY2tEYXRhVHlwZTogY2hlY2tEYXRhVHlwZSxcbiAgY2hlY2tEYXRhVHlwZXM6IGNoZWNrRGF0YVR5cGVzLFxuICBjb2VyY2VUb1R5cGVzOiBjb2VyY2VUb1R5cGVzLFxuICB0b0hhc2g6IHRvSGFzaCxcbiAgZ2V0UHJvcGVydHk6IGdldFByb3BlcnR5LFxuICBlc2NhcGVRdW90ZXM6IGVzY2FwZVF1b3RlcyxcbiAgZXF1YWw6IHJlcXVpcmUoJ2Zhc3QtZGVlcC1lcXVhbCcpLFxuICB1Y3MybGVuZ3RoOiByZXF1aXJlKCcuL3VjczJsZW5ndGgnKSxcbiAgdmFyT2NjdXJlbmNlczogdmFyT2NjdXJlbmNlcyxcbiAgdmFyUmVwbGFjZTogdmFyUmVwbGFjZSxcbiAgc2NoZW1hSGFzUnVsZXM6IHNjaGVtYUhhc1J1bGVzLFxuICBzY2hlbWFIYXNSdWxlc0V4Y2VwdDogc2NoZW1hSGFzUnVsZXNFeGNlcHQsXG4gIHNjaGVtYVVua25vd25SdWxlczogc2NoZW1hVW5rbm93blJ1bGVzLFxuICB0b1F1b3RlZFN0cmluZzogdG9RdW90ZWRTdHJpbmcsXG4gIGdldFBhdGhFeHByOiBnZXRQYXRoRXhwcixcbiAgZ2V0UGF0aDogZ2V0UGF0aCxcbiAgZ2V0RGF0YTogZ2V0RGF0YSxcbiAgdW5lc2NhcGVGcmFnbWVudDogdW5lc2NhcGVGcmFnbWVudCxcbiAgdW5lc2NhcGVKc29uUG9pbnRlcjogdW5lc2NhcGVKc29uUG9pbnRlcixcbiAgZXNjYXBlRnJhZ21lbnQ6IGVzY2FwZUZyYWdtZW50LFxuICBlc2NhcGVKc29uUG9pbnRlcjogZXNjYXBlSnNvblBvaW50ZXJcbn07XG5cblxuZnVuY3Rpb24gY29weShvLCB0bykge1xuICB0byA9IHRvIHx8IHt9O1xuICBmb3IgKHZhciBrZXkgaW4gbykgdG9ba2V5XSA9IG9ba2V5XTtcbiAgcmV0dXJuIHRvO1xufVxuXG5cbmZ1bmN0aW9uIGNoZWNrRGF0YVR5cGUoZGF0YVR5cGUsIGRhdGEsIHN0cmljdE51bWJlcnMsIG5lZ2F0ZSkge1xuICB2YXIgRVFVQUwgPSBuZWdhdGUgPyAnICE9PSAnIDogJyA9PT0gJ1xuICAgICwgQU5EID0gbmVnYXRlID8gJyB8fCAnIDogJyAmJiAnXG4gICAgLCBPSyA9IG5lZ2F0ZSA/ICchJyA6ICcnXG4gICAgLCBOT1QgPSBuZWdhdGUgPyAnJyA6ICchJztcbiAgc3dpdGNoIChkYXRhVHlwZSkge1xuICAgIGNhc2UgJ251bGwnOiByZXR1cm4gZGF0YSArIEVRVUFMICsgJ251bGwnO1xuICAgIGNhc2UgJ2FycmF5JzogcmV0dXJuIE9LICsgJ0FycmF5LmlzQXJyYXkoJyArIGRhdGEgKyAnKSc7XG4gICAgY2FzZSAnb2JqZWN0JzogcmV0dXJuICcoJyArIE9LICsgZGF0YSArIEFORCArXG4gICAgICAgICAgICAgICAgICAgICAgICAgICd0eXBlb2YgJyArIGRhdGEgKyBFUVVBTCArICdcIm9iamVjdFwiJyArIEFORCArXG4gICAgICAgICAgICAgICAgICAgICAgICAgIE5PVCArICdBcnJheS5pc0FycmF5KCcgKyBkYXRhICsgJykpJztcbiAgICBjYXNlICdpbnRlZ2VyJzogcmV0dXJuICcodHlwZW9mICcgKyBkYXRhICsgRVFVQUwgKyAnXCJudW1iZXJcIicgKyBBTkQgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgTk9UICsgJygnICsgZGF0YSArICcgJSAxKScgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgQU5EICsgZGF0YSArIEVRVUFMICsgZGF0YSArXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAoc3RyaWN0TnVtYmVycyA/IChBTkQgKyBPSyArICdpc0Zpbml0ZSgnICsgZGF0YSArICcpJykgOiAnJykgKyAnKSc7XG4gICAgY2FzZSAnbnVtYmVyJzogcmV0dXJuICcodHlwZW9mICcgKyBkYXRhICsgRVFVQUwgKyAnXCInICsgZGF0YVR5cGUgKyAnXCInICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKHN0cmljdE51bWJlcnMgPyAoQU5EICsgT0sgKyAnaXNGaW5pdGUoJyArIGRhdGEgKyAnKScpIDogJycpICsgJyknO1xuICAgIGRlZmF1bHQ6IHJldHVybiAndHlwZW9mICcgKyBkYXRhICsgRVFVQUwgKyAnXCInICsgZGF0YVR5cGUgKyAnXCInO1xuICB9XG59XG5cblxuZnVuY3Rpb24gY2hlY2tEYXRhVHlwZXMoZGF0YVR5cGVzLCBkYXRhLCBzdHJpY3ROdW1iZXJzKSB7XG4gIHN3aXRjaCAoZGF0YVR5cGVzLmxlbmd0aCkge1xuICAgIGNhc2UgMTogcmV0dXJuIGNoZWNrRGF0YVR5cGUoZGF0YVR5cGVzWzBdLCBkYXRhLCBzdHJpY3ROdW1iZXJzLCB0cnVlKTtcbiAgICBkZWZhdWx0OlxuICAgICAgdmFyIGNvZGUgPSAnJztcbiAgICAgIHZhciB0eXBlcyA9IHRvSGFzaChkYXRhVHlwZXMpO1xuICAgICAgaWYgKHR5cGVzLmFycmF5ICYmIHR5cGVzLm9iamVjdCkge1xuICAgICAgICBjb2RlID0gdHlwZXMubnVsbCA/ICcoJzogJyghJyArIGRhdGEgKyAnIHx8ICc7XG4gICAgICAgIGNvZGUgKz0gJ3R5cGVvZiAnICsgZGF0YSArICcgIT09IFwib2JqZWN0XCIpJztcbiAgICAgICAgZGVsZXRlIHR5cGVzLm51bGw7XG4gICAgICAgIGRlbGV0ZSB0eXBlcy5hcnJheTtcbiAgICAgICAgZGVsZXRlIHR5cGVzLm9iamVjdDtcbiAgICAgIH1cbiAgICAgIGlmICh0eXBlcy5udW1iZXIpIGRlbGV0ZSB0eXBlcy5pbnRlZ2VyO1xuICAgICAgZm9yICh2YXIgdCBpbiB0eXBlcylcbiAgICAgICAgY29kZSArPSAoY29kZSA/ICcgJiYgJyA6ICcnICkgKyBjaGVja0RhdGFUeXBlKHQsIGRhdGEsIHN0cmljdE51bWJlcnMsIHRydWUpO1xuXG4gICAgICByZXR1cm4gY29kZTtcbiAgfVxufVxuXG5cbnZhciBDT0VSQ0VfVE9fVFlQRVMgPSB0b0hhc2goWyAnc3RyaW5nJywgJ251bWJlcicsICdpbnRlZ2VyJywgJ2Jvb2xlYW4nLCAnbnVsbCcgXSk7XG5mdW5jdGlvbiBjb2VyY2VUb1R5cGVzKG9wdGlvbkNvZXJjZVR5cGVzLCBkYXRhVHlwZXMpIHtcbiAgaWYgKEFycmF5LmlzQXJyYXkoZGF0YVR5cGVzKSkge1xuICAgIHZhciB0eXBlcyA9IFtdO1xuICAgIGZvciAodmFyIGk9MDsgaTxkYXRhVHlwZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhciB0ID0gZGF0YVR5cGVzW2ldO1xuICAgICAgaWYgKENPRVJDRV9UT19UWVBFU1t0XSkgdHlwZXNbdHlwZXMubGVuZ3RoXSA9IHQ7XG4gICAgICBlbHNlIGlmIChvcHRpb25Db2VyY2VUeXBlcyA9PT0gJ2FycmF5JyAmJiB0ID09PSAnYXJyYXknKSB0eXBlc1t0eXBlcy5sZW5ndGhdID0gdDtcbiAgICB9XG4gICAgaWYgKHR5cGVzLmxlbmd0aCkgcmV0dXJuIHR5cGVzO1xuICB9IGVsc2UgaWYgKENPRVJDRV9UT19UWVBFU1tkYXRhVHlwZXNdKSB7XG4gICAgcmV0dXJuIFtkYXRhVHlwZXNdO1xuICB9IGVsc2UgaWYgKG9wdGlvbkNvZXJjZVR5cGVzID09PSAnYXJyYXknICYmIGRhdGFUeXBlcyA9PT0gJ2FycmF5Jykge1xuICAgIHJldHVybiBbJ2FycmF5J107XG4gIH1cbn1cblxuXG5mdW5jdGlvbiB0b0hhc2goYXJyKSB7XG4gIHZhciBoYXNoID0ge307XG4gIGZvciAodmFyIGk9MDsgaTxhcnIubGVuZ3RoOyBpKyspIGhhc2hbYXJyW2ldXSA9IHRydWU7XG4gIHJldHVybiBoYXNoO1xufVxuXG5cbnZhciBJREVOVElGSUVSID0gL15bYS16JF9dW2EteiRfMC05XSokL2k7XG52YXIgU0lOR0xFX1FVT1RFID0gLyd8XFxcXC9nO1xuZnVuY3Rpb24gZ2V0UHJvcGVydHkoa2V5KSB7XG4gIHJldHVybiB0eXBlb2Yga2V5ID09ICdudW1iZXInXG4gICAgICAgICAgPyAnWycgKyBrZXkgKyAnXSdcbiAgICAgICAgICA6IElERU5USUZJRVIudGVzdChrZXkpXG4gICAgICAgICAgICA/ICcuJyArIGtleVxuICAgICAgICAgICAgOiBcIlsnXCIgKyBlc2NhcGVRdW90ZXMoa2V5KSArIFwiJ11cIjtcbn1cblxuXG5mdW5jdGlvbiBlc2NhcGVRdW90ZXMoc3RyKSB7XG4gIHJldHVybiBzdHIucmVwbGFjZShTSU5HTEVfUVVPVEUsICdcXFxcJCYnKVxuICAgICAgICAgICAgLnJlcGxhY2UoL1xcbi9nLCAnXFxcXG4nKVxuICAgICAgICAgICAgLnJlcGxhY2UoL1xcci9nLCAnXFxcXHInKVxuICAgICAgICAgICAgLnJlcGxhY2UoL1xcZi9nLCAnXFxcXGYnKVxuICAgICAgICAgICAgLnJlcGxhY2UoL1xcdC9nLCAnXFxcXHQnKTtcbn1cblxuXG5mdW5jdGlvbiB2YXJPY2N1cmVuY2VzKHN0ciwgZGF0YVZhcikge1xuICBkYXRhVmFyICs9ICdbXjAtOV0nO1xuICB2YXIgbWF0Y2hlcyA9IHN0ci5tYXRjaChuZXcgUmVnRXhwKGRhdGFWYXIsICdnJykpO1xuICByZXR1cm4gbWF0Y2hlcyA/IG1hdGNoZXMubGVuZ3RoIDogMDtcbn1cblxuXG5mdW5jdGlvbiB2YXJSZXBsYWNlKHN0ciwgZGF0YVZhciwgZXhwcikge1xuICBkYXRhVmFyICs9ICcoW14wLTldKSc7XG4gIGV4cHIgPSBleHByLnJlcGxhY2UoL1xcJC9nLCAnJCQkJCcpO1xuICByZXR1cm4gc3RyLnJlcGxhY2UobmV3IFJlZ0V4cChkYXRhVmFyLCAnZycpLCBleHByICsgJyQxJyk7XG59XG5cblxuZnVuY3Rpb24gc2NoZW1hSGFzUnVsZXMoc2NoZW1hLCBydWxlcykge1xuICBpZiAodHlwZW9mIHNjaGVtYSA9PSAnYm9vbGVhbicpIHJldHVybiAhc2NoZW1hO1xuICBmb3IgKHZhciBrZXkgaW4gc2NoZW1hKSBpZiAocnVsZXNba2V5XSkgcmV0dXJuIHRydWU7XG59XG5cblxuZnVuY3Rpb24gc2NoZW1hSGFzUnVsZXNFeGNlcHQoc2NoZW1hLCBydWxlcywgZXhjZXB0S2V5d29yZCkge1xuICBpZiAodHlwZW9mIHNjaGVtYSA9PSAnYm9vbGVhbicpIHJldHVybiAhc2NoZW1hICYmIGV4Y2VwdEtleXdvcmQgIT0gJ25vdCc7XG4gIGZvciAodmFyIGtleSBpbiBzY2hlbWEpIGlmIChrZXkgIT0gZXhjZXB0S2V5d29yZCAmJiBydWxlc1trZXldKSByZXR1cm4gdHJ1ZTtcbn1cblxuXG5mdW5jdGlvbiBzY2hlbWFVbmtub3duUnVsZXMoc2NoZW1hLCBydWxlcykge1xuICBpZiAodHlwZW9mIHNjaGVtYSA9PSAnYm9vbGVhbicpIHJldHVybjtcbiAgZm9yICh2YXIga2V5IGluIHNjaGVtYSkgaWYgKCFydWxlc1trZXldKSByZXR1cm4ga2V5O1xufVxuXG5cbmZ1bmN0aW9uIHRvUXVvdGVkU3RyaW5nKHN0cikge1xuICByZXR1cm4gJ1xcJycgKyBlc2NhcGVRdW90ZXMoc3RyKSArICdcXCcnO1xufVxuXG5cbmZ1bmN0aW9uIGdldFBhdGhFeHByKGN1cnJlbnRQYXRoLCBleHByLCBqc29uUG9pbnRlcnMsIGlzTnVtYmVyKSB7XG4gIHZhciBwYXRoID0ganNvblBvaW50ZXJzIC8vIGZhbHNlIGJ5IGRlZmF1bHRcbiAgICAgICAgICAgICAgPyAnXFwnL1xcJyArICcgKyBleHByICsgKGlzTnVtYmVyID8gJycgOiAnLnJlcGxhY2UoL34vZywgXFwnfjBcXCcpLnJlcGxhY2UoL1xcXFwvL2csIFxcJ34xXFwnKScpXG4gICAgICAgICAgICAgIDogKGlzTnVtYmVyID8gJ1xcJ1tcXCcgKyAnICsgZXhwciArICcgKyBcXCddXFwnJyA6ICdcXCdbXFxcXFxcJ1xcJyArICcgKyBleHByICsgJyArIFxcJ1xcXFxcXCddXFwnJyk7XG4gIHJldHVybiBqb2luUGF0aHMoY3VycmVudFBhdGgsIHBhdGgpO1xufVxuXG5cbmZ1bmN0aW9uIGdldFBhdGgoY3VycmVudFBhdGgsIHByb3AsIGpzb25Qb2ludGVycykge1xuICB2YXIgcGF0aCA9IGpzb25Qb2ludGVycyAvLyBmYWxzZSBieSBkZWZhdWx0XG4gICAgICAgICAgICAgID8gdG9RdW90ZWRTdHJpbmcoJy8nICsgZXNjYXBlSnNvblBvaW50ZXIocHJvcCkpXG4gICAgICAgICAgICAgIDogdG9RdW90ZWRTdHJpbmcoZ2V0UHJvcGVydHkocHJvcCkpO1xuICByZXR1cm4gam9pblBhdGhzKGN1cnJlbnRQYXRoLCBwYXRoKTtcbn1cblxuXG52YXIgSlNPTl9QT0lOVEVSID0gL15cXC8oPzpbXn5dfH4wfH4xKSokLztcbnZhciBSRUxBVElWRV9KU09OX1BPSU5URVIgPSAvXihbMC05XSspKCN8XFwvKD86W15+XXx+MHx+MSkqKT8kLztcbmZ1bmN0aW9uIGdldERhdGEoJGRhdGEsIGx2bCwgcGF0aHMpIHtcbiAgdmFyIHVwLCBqc29uUG9pbnRlciwgZGF0YSwgbWF0Y2hlcztcbiAgaWYgKCRkYXRhID09PSAnJykgcmV0dXJuICdyb290RGF0YSc7XG4gIGlmICgkZGF0YVswXSA9PSAnLycpIHtcbiAgICBpZiAoIUpTT05fUE9JTlRFUi50ZXN0KCRkYXRhKSkgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIEpTT04tcG9pbnRlcjogJyArICRkYXRhKTtcbiAgICBqc29uUG9pbnRlciA9ICRkYXRhO1xuICAgIGRhdGEgPSAncm9vdERhdGEnO1xuICB9IGVsc2Uge1xuICAgIG1hdGNoZXMgPSAkZGF0YS5tYXRjaChSRUxBVElWRV9KU09OX1BPSU5URVIpO1xuICAgIGlmICghbWF0Y2hlcykgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIEpTT04tcG9pbnRlcjogJyArICRkYXRhKTtcbiAgICB1cCA9ICttYXRjaGVzWzFdO1xuICAgIGpzb25Qb2ludGVyID0gbWF0Y2hlc1syXTtcbiAgICBpZiAoanNvblBvaW50ZXIgPT0gJyMnKSB7XG4gICAgICBpZiAodXAgPj0gbHZsKSB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCBhY2Nlc3MgcHJvcGVydHkvaW5kZXggJyArIHVwICsgJyBsZXZlbHMgdXAsIGN1cnJlbnQgbGV2ZWwgaXMgJyArIGx2bCk7XG4gICAgICByZXR1cm4gcGF0aHNbbHZsIC0gdXBdO1xuICAgIH1cblxuICAgIGlmICh1cCA+IGx2bCkgdGhyb3cgbmV3IEVycm9yKCdDYW5ub3QgYWNjZXNzIGRhdGEgJyArIHVwICsgJyBsZXZlbHMgdXAsIGN1cnJlbnQgbGV2ZWwgaXMgJyArIGx2bCk7XG4gICAgZGF0YSA9ICdkYXRhJyArICgobHZsIC0gdXApIHx8ICcnKTtcbiAgICBpZiAoIWpzb25Qb2ludGVyKSByZXR1cm4gZGF0YTtcbiAgfVxuXG4gIHZhciBleHByID0gZGF0YTtcbiAgdmFyIHNlZ21lbnRzID0ganNvblBvaW50ZXIuc3BsaXQoJy8nKTtcbiAgZm9yICh2YXIgaT0wOyBpPHNlZ21lbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIHNlZ21lbnQgPSBzZWdtZW50c1tpXTtcbiAgICBpZiAoc2VnbWVudCkge1xuICAgICAgZGF0YSArPSBnZXRQcm9wZXJ0eSh1bmVzY2FwZUpzb25Qb2ludGVyKHNlZ21lbnQpKTtcbiAgICAgIGV4cHIgKz0gJyAmJiAnICsgZGF0YTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGV4cHI7XG59XG5cblxuZnVuY3Rpb24gam9pblBhdGhzIChhLCBiKSB7XG4gIGlmIChhID09ICdcIlwiJykgcmV0dXJuIGI7XG4gIHJldHVybiAoYSArICcgKyAnICsgYikucmVwbGFjZSgvKFteXFxcXF0pJyBcXCsgJy9nLCAnJDEnKTtcbn1cblxuXG5mdW5jdGlvbiB1bmVzY2FwZUZyYWdtZW50KHN0cikge1xuICByZXR1cm4gdW5lc2NhcGVKc29uUG9pbnRlcihkZWNvZGVVUklDb21wb25lbnQoc3RyKSk7XG59XG5cblxuZnVuY3Rpb24gZXNjYXBlRnJhZ21lbnQoc3RyKSB7XG4gIHJldHVybiBlbmNvZGVVUklDb21wb25lbnQoZXNjYXBlSnNvblBvaW50ZXIoc3RyKSk7XG59XG5cblxuZnVuY3Rpb24gZXNjYXBlSnNvblBvaW50ZXIoc3RyKSB7XG4gIHJldHVybiBzdHIucmVwbGFjZSgvfi9nLCAnfjAnKS5yZXBsYWNlKC9cXC8vZywgJ34xJyk7XG59XG5cblxuZnVuY3Rpb24gdW5lc2NhcGVKc29uUG9pbnRlcihzdHIpIHtcbiAgcmV0dXJuIHN0ci5yZXBsYWNlKC9+MS9nLCAnLycpLnJlcGxhY2UoL34wL2csICd+Jyk7XG59XG4iLCAiJ3VzZSBzdHJpY3QnO1xuXG52YXIgdXRpbCA9IHJlcXVpcmUoJy4vdXRpbCcpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IFNjaGVtYU9iamVjdDtcblxuZnVuY3Rpb24gU2NoZW1hT2JqZWN0KG9iaikge1xuICB1dGlsLmNvcHkob2JqLCB0aGlzKTtcbn1cbiIsICIndXNlIHN0cmljdCc7XG5cbnZhciB0cmF2ZXJzZSA9IG1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKHNjaGVtYSwgb3B0cywgY2IpIHtcbiAgLy8gTGVnYWN5IHN1cHBvcnQgZm9yIHYwLjMuMSBhbmQgZWFybGllci5cbiAgaWYgKHR5cGVvZiBvcHRzID09ICdmdW5jdGlvbicpIHtcbiAgICBjYiA9IG9wdHM7XG4gICAgb3B0cyA9IHt9O1xuICB9XG5cbiAgY2IgPSBvcHRzLmNiIHx8IGNiO1xuICB2YXIgcHJlID0gKHR5cGVvZiBjYiA9PSAnZnVuY3Rpb24nKSA/IGNiIDogY2IucHJlIHx8IGZ1bmN0aW9uKCkge307XG4gIHZhciBwb3N0ID0gY2IucG9zdCB8fCBmdW5jdGlvbigpIHt9O1xuXG4gIF90cmF2ZXJzZShvcHRzLCBwcmUsIHBvc3QsIHNjaGVtYSwgJycsIHNjaGVtYSk7XG59O1xuXG5cbnRyYXZlcnNlLmtleXdvcmRzID0ge1xuICBhZGRpdGlvbmFsSXRlbXM6IHRydWUsXG4gIGl0ZW1zOiB0cnVlLFxuICBjb250YWluczogdHJ1ZSxcbiAgYWRkaXRpb25hbFByb3BlcnRpZXM6IHRydWUsXG4gIHByb3BlcnR5TmFtZXM6IHRydWUsXG4gIG5vdDogdHJ1ZVxufTtcblxudHJhdmVyc2UuYXJyYXlLZXl3b3JkcyA9IHtcbiAgaXRlbXM6IHRydWUsXG4gIGFsbE9mOiB0cnVlLFxuICBhbnlPZjogdHJ1ZSxcbiAgb25lT2Y6IHRydWVcbn07XG5cbnRyYXZlcnNlLnByb3BzS2V5d29yZHMgPSB7XG4gIGRlZmluaXRpb25zOiB0cnVlLFxuICBwcm9wZXJ0aWVzOiB0cnVlLFxuICBwYXR0ZXJuUHJvcGVydGllczogdHJ1ZSxcbiAgZGVwZW5kZW5jaWVzOiB0cnVlXG59O1xuXG50cmF2ZXJzZS5za2lwS2V5d29yZHMgPSB7XG4gIGRlZmF1bHQ6IHRydWUsXG4gIGVudW06IHRydWUsXG4gIGNvbnN0OiB0cnVlLFxuICByZXF1aXJlZDogdHJ1ZSxcbiAgbWF4aW11bTogdHJ1ZSxcbiAgbWluaW11bTogdHJ1ZSxcbiAgZXhjbHVzaXZlTWF4aW11bTogdHJ1ZSxcbiAgZXhjbHVzaXZlTWluaW11bTogdHJ1ZSxcbiAgbXVsdGlwbGVPZjogdHJ1ZSxcbiAgbWF4TGVuZ3RoOiB0cnVlLFxuICBtaW5MZW5ndGg6IHRydWUsXG4gIHBhdHRlcm46IHRydWUsXG4gIGZvcm1hdDogdHJ1ZSxcbiAgbWF4SXRlbXM6IHRydWUsXG4gIG1pbkl0ZW1zOiB0cnVlLFxuICB1bmlxdWVJdGVtczogdHJ1ZSxcbiAgbWF4UHJvcGVydGllczogdHJ1ZSxcbiAgbWluUHJvcGVydGllczogdHJ1ZVxufTtcblxuXG5mdW5jdGlvbiBfdHJhdmVyc2Uob3B0cywgcHJlLCBwb3N0LCBzY2hlbWEsIGpzb25QdHIsIHJvb3RTY2hlbWEsIHBhcmVudEpzb25QdHIsIHBhcmVudEtleXdvcmQsIHBhcmVudFNjaGVtYSwga2V5SW5kZXgpIHtcbiAgaWYgKHNjaGVtYSAmJiB0eXBlb2Ygc2NoZW1hID09ICdvYmplY3QnICYmICFBcnJheS5pc0FycmF5KHNjaGVtYSkpIHtcbiAgICBwcmUoc2NoZW1hLCBqc29uUHRyLCByb290U2NoZW1hLCBwYXJlbnRKc29uUHRyLCBwYXJlbnRLZXl3b3JkLCBwYXJlbnRTY2hlbWEsIGtleUluZGV4KTtcbiAgICBmb3IgKHZhciBrZXkgaW4gc2NoZW1hKSB7XG4gICAgICB2YXIgc2NoID0gc2NoZW1hW2tleV07XG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShzY2gpKSB7XG4gICAgICAgIGlmIChrZXkgaW4gdHJhdmVyc2UuYXJyYXlLZXl3b3Jkcykge1xuICAgICAgICAgIGZvciAodmFyIGk9MDsgaTxzY2gubGVuZ3RoOyBpKyspXG4gICAgICAgICAgICBfdHJhdmVyc2Uob3B0cywgcHJlLCBwb3N0LCBzY2hbaV0sIGpzb25QdHIgKyAnLycgKyBrZXkgKyAnLycgKyBpLCByb290U2NoZW1hLCBqc29uUHRyLCBrZXksIHNjaGVtYSwgaSk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAoa2V5IGluIHRyYXZlcnNlLnByb3BzS2V5d29yZHMpIHtcbiAgICAgICAgaWYgKHNjaCAmJiB0eXBlb2Ygc2NoID09ICdvYmplY3QnKSB7XG4gICAgICAgICAgZm9yICh2YXIgcHJvcCBpbiBzY2gpXG4gICAgICAgICAgICBfdHJhdmVyc2Uob3B0cywgcHJlLCBwb3N0LCBzY2hbcHJvcF0sIGpzb25QdHIgKyAnLycgKyBrZXkgKyAnLycgKyBlc2NhcGVKc29uUHRyKHByb3ApLCByb290U2NoZW1hLCBqc29uUHRyLCBrZXksIHNjaGVtYSwgcHJvcCk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAoa2V5IGluIHRyYXZlcnNlLmtleXdvcmRzIHx8IChvcHRzLmFsbEtleXMgJiYgIShrZXkgaW4gdHJhdmVyc2Uuc2tpcEtleXdvcmRzKSkpIHtcbiAgICAgICAgX3RyYXZlcnNlKG9wdHMsIHByZSwgcG9zdCwgc2NoLCBqc29uUHRyICsgJy8nICsga2V5LCByb290U2NoZW1hLCBqc29uUHRyLCBrZXksIHNjaGVtYSk7XG4gICAgICB9XG4gICAgfVxuICAgIHBvc3Qoc2NoZW1hLCBqc29uUHRyLCByb290U2NoZW1hLCBwYXJlbnRKc29uUHRyLCBwYXJlbnRLZXl3b3JkLCBwYXJlbnRTY2hlbWEsIGtleUluZGV4KTtcbiAgfVxufVxuXG5cbmZ1bmN0aW9uIGVzY2FwZUpzb25QdHIoc3RyKSB7XG4gIHJldHVybiBzdHIucmVwbGFjZSgvfi9nLCAnfjAnKS5yZXBsYWNlKC9cXC8vZywgJ34xJyk7XG59XG4iLCAiJ3VzZSBzdHJpY3QnO1xuXG52YXIgVVJJID0gcmVxdWlyZSgndXJpLWpzJylcbiAgLCBlcXVhbCA9IHJlcXVpcmUoJ2Zhc3QtZGVlcC1lcXVhbCcpXG4gICwgdXRpbCA9IHJlcXVpcmUoJy4vdXRpbCcpXG4gICwgU2NoZW1hT2JqZWN0ID0gcmVxdWlyZSgnLi9zY2hlbWFfb2JqJylcbiAgLCB0cmF2ZXJzZSA9IHJlcXVpcmUoJ2pzb24tc2NoZW1hLXRyYXZlcnNlJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gcmVzb2x2ZTtcblxucmVzb2x2ZS5ub3JtYWxpemVJZCA9IG5vcm1hbGl6ZUlkO1xucmVzb2x2ZS5mdWxsUGF0aCA9IGdldEZ1bGxQYXRoO1xucmVzb2x2ZS51cmwgPSByZXNvbHZlVXJsO1xucmVzb2x2ZS5pZHMgPSByZXNvbHZlSWRzO1xucmVzb2x2ZS5pbmxpbmVSZWYgPSBpbmxpbmVSZWY7XG5yZXNvbHZlLnNjaGVtYSA9IHJlc29sdmVTY2hlbWE7XG5cbi8qKlxuICogW3Jlc29sdmUgYW5kIGNvbXBpbGUgdGhlIHJlZmVyZW5jZXMgKCRyZWYpXVxuICogQHRoaXMgICBBanZcbiAqIEBwYXJhbSAge0Z1bmN0aW9ufSBjb21waWxlIHJlZmVyZW5jZSB0byBzY2hlbWEgY29tcGlsYXRpb24gZnVuY2l0b24gKGxvY2FsQ29tcGlsZSlcbiAqIEBwYXJhbSAge09iamVjdH0gcm9vdCBvYmplY3Qgd2l0aCBpbmZvcm1hdGlvbiBhYm91dCB0aGUgcm9vdCBzY2hlbWEgZm9yIHRoZSBjdXJyZW50IHNjaGVtYVxuICogQHBhcmFtICB7U3RyaW5nfSByZWYgcmVmZXJlbmNlIHRvIHJlc29sdmVcbiAqIEByZXR1cm4ge09iamVjdHxGdW5jdGlvbn0gc2NoZW1hIG9iamVjdCAoaWYgdGhlIHNjaGVtYSBjYW4gYmUgaW5saW5lZCkgb3IgdmFsaWRhdGlvbiBmdW5jdGlvblxuICovXG5mdW5jdGlvbiByZXNvbHZlKGNvbXBpbGUsIHJvb3QsIHJlZikge1xuICAvKiBqc2hpbnQgdmFsaWR0aGlzOiB0cnVlICovXG4gIHZhciByZWZWYWwgPSB0aGlzLl9yZWZzW3JlZl07XG4gIGlmICh0eXBlb2YgcmVmVmFsID09ICdzdHJpbmcnKSB7XG4gICAgaWYgKHRoaXMuX3JlZnNbcmVmVmFsXSkgcmVmVmFsID0gdGhpcy5fcmVmc1tyZWZWYWxdO1xuICAgIGVsc2UgcmV0dXJuIHJlc29sdmUuY2FsbCh0aGlzLCBjb21waWxlLCByb290LCByZWZWYWwpO1xuICB9XG5cbiAgcmVmVmFsID0gcmVmVmFsIHx8IHRoaXMuX3NjaGVtYXNbcmVmXTtcbiAgaWYgKHJlZlZhbCBpbnN0YW5jZW9mIFNjaGVtYU9iamVjdCkge1xuICAgIHJldHVybiBpbmxpbmVSZWYocmVmVmFsLnNjaGVtYSwgdGhpcy5fb3B0cy5pbmxpbmVSZWZzKVxuICAgICAgICAgICAgPyByZWZWYWwuc2NoZW1hXG4gICAgICAgICAgICA6IHJlZlZhbC52YWxpZGF0ZSB8fCB0aGlzLl9jb21waWxlKHJlZlZhbCk7XG4gIH1cblxuICB2YXIgcmVzID0gcmVzb2x2ZVNjaGVtYS5jYWxsKHRoaXMsIHJvb3QsIHJlZik7XG4gIHZhciBzY2hlbWEsIHYsIGJhc2VJZDtcbiAgaWYgKHJlcykge1xuICAgIHNjaGVtYSA9IHJlcy5zY2hlbWE7XG4gICAgcm9vdCA9IHJlcy5yb290O1xuICAgIGJhc2VJZCA9IHJlcy5iYXNlSWQ7XG4gIH1cblxuICBpZiAoc2NoZW1hIGluc3RhbmNlb2YgU2NoZW1hT2JqZWN0KSB7XG4gICAgdiA9IHNjaGVtYS52YWxpZGF0ZSB8fCBjb21waWxlLmNhbGwodGhpcywgc2NoZW1hLnNjaGVtYSwgcm9vdCwgdW5kZWZpbmVkLCBiYXNlSWQpO1xuICB9IGVsc2UgaWYgKHNjaGVtYSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgdiA9IGlubGluZVJlZihzY2hlbWEsIHRoaXMuX29wdHMuaW5saW5lUmVmcylcbiAgICAgICAgPyBzY2hlbWFcbiAgICAgICAgOiBjb21waWxlLmNhbGwodGhpcywgc2NoZW1hLCByb290LCB1bmRlZmluZWQsIGJhc2VJZCk7XG4gIH1cblxuICByZXR1cm4gdjtcbn1cblxuXG4vKipcbiAqIFJlc29sdmUgc2NoZW1hLCBpdHMgcm9vdCBhbmQgYmFzZUlkXG4gKiBAdGhpcyBBanZcbiAqIEBwYXJhbSAge09iamVjdH0gcm9vdCByb290IG9iamVjdCB3aXRoIHByb3BlcnRpZXMgc2NoZW1hLCByZWZWYWwsIHJlZnNcbiAqIEBwYXJhbSAge1N0cmluZ30gcmVmICByZWZlcmVuY2UgdG8gcmVzb2x2ZVxuICogQHJldHVybiB7T2JqZWN0fSBvYmplY3Qgd2l0aCBwcm9wZXJ0aWVzIHNjaGVtYSwgcm9vdCwgYmFzZUlkXG4gKi9cbmZ1bmN0aW9uIHJlc29sdmVTY2hlbWEocm9vdCwgcmVmKSB7XG4gIC8qIGpzaGludCB2YWxpZHRoaXM6IHRydWUgKi9cbiAgdmFyIHAgPSBVUkkucGFyc2UocmVmKVxuICAgICwgcmVmUGF0aCA9IF9nZXRGdWxsUGF0aChwKVxuICAgICwgYmFzZUlkID0gZ2V0RnVsbFBhdGgodGhpcy5fZ2V0SWQocm9vdC5zY2hlbWEpKTtcbiAgaWYgKE9iamVjdC5rZXlzKHJvb3Quc2NoZW1hKS5sZW5ndGggPT09IDAgfHwgcmVmUGF0aCAhPT0gYmFzZUlkKSB7XG4gICAgdmFyIGlkID0gbm9ybWFsaXplSWQocmVmUGF0aCk7XG4gICAgdmFyIHJlZlZhbCA9IHRoaXMuX3JlZnNbaWRdO1xuICAgIGlmICh0eXBlb2YgcmVmVmFsID09ICdzdHJpbmcnKSB7XG4gICAgICByZXR1cm4gcmVzb2x2ZVJlY3Vyc2l2ZS5jYWxsKHRoaXMsIHJvb3QsIHJlZlZhbCwgcCk7XG4gICAgfSBlbHNlIGlmIChyZWZWYWwgaW5zdGFuY2VvZiBTY2hlbWFPYmplY3QpIHtcbiAgICAgIGlmICghcmVmVmFsLnZhbGlkYXRlKSB0aGlzLl9jb21waWxlKHJlZlZhbCk7XG4gICAgICByb290ID0gcmVmVmFsO1xuICAgIH0gZWxzZSB7XG4gICAgICByZWZWYWwgPSB0aGlzLl9zY2hlbWFzW2lkXTtcbiAgICAgIGlmIChyZWZWYWwgaW5zdGFuY2VvZiBTY2hlbWFPYmplY3QpIHtcbiAgICAgICAgaWYgKCFyZWZWYWwudmFsaWRhdGUpIHRoaXMuX2NvbXBpbGUocmVmVmFsKTtcbiAgICAgICAgaWYgKGlkID09IG5vcm1hbGl6ZUlkKHJlZikpXG4gICAgICAgICAgcmV0dXJuIHsgc2NoZW1hOiByZWZWYWwsIHJvb3Q6IHJvb3QsIGJhc2VJZDogYmFzZUlkIH07XG4gICAgICAgIHJvb3QgPSByZWZWYWw7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgfVxuICAgIGlmICghcm9vdC5zY2hlbWEpIHJldHVybjtcbiAgICBiYXNlSWQgPSBnZXRGdWxsUGF0aCh0aGlzLl9nZXRJZChyb290LnNjaGVtYSkpO1xuICB9XG4gIHJldHVybiBnZXRKc29uUG9pbnRlci5jYWxsKHRoaXMsIHAsIGJhc2VJZCwgcm9vdC5zY2hlbWEsIHJvb3QpO1xufVxuXG5cbi8qIEB0aGlzIEFqdiAqL1xuZnVuY3Rpb24gcmVzb2x2ZVJlY3Vyc2l2ZShyb290LCByZWYsIHBhcnNlZFJlZikge1xuICAvKiBqc2hpbnQgdmFsaWR0aGlzOiB0cnVlICovXG4gIHZhciByZXMgPSByZXNvbHZlU2NoZW1hLmNhbGwodGhpcywgcm9vdCwgcmVmKTtcbiAgaWYgKHJlcykge1xuICAgIHZhciBzY2hlbWEgPSByZXMuc2NoZW1hO1xuICAgIHZhciBiYXNlSWQgPSByZXMuYmFzZUlkO1xuICAgIHJvb3QgPSByZXMucm9vdDtcbiAgICB2YXIgaWQgPSB0aGlzLl9nZXRJZChzY2hlbWEpO1xuICAgIGlmIChpZCkgYmFzZUlkID0gcmVzb2x2ZVVybChiYXNlSWQsIGlkKTtcbiAgICByZXR1cm4gZ2V0SnNvblBvaW50ZXIuY2FsbCh0aGlzLCBwYXJzZWRSZWYsIGJhc2VJZCwgc2NoZW1hLCByb290KTtcbiAgfVxufVxuXG5cbnZhciBQUkVWRU5UX1NDT1BFX0NIQU5HRSA9IHV0aWwudG9IYXNoKFsncHJvcGVydGllcycsICdwYXR0ZXJuUHJvcGVydGllcycsICdlbnVtJywgJ2RlcGVuZGVuY2llcycsICdkZWZpbml0aW9ucyddKTtcbi8qIEB0aGlzIEFqdiAqL1xuZnVuY3Rpb24gZ2V0SnNvblBvaW50ZXIocGFyc2VkUmVmLCBiYXNlSWQsIHNjaGVtYSwgcm9vdCkge1xuICAvKiBqc2hpbnQgdmFsaWR0aGlzOiB0cnVlICovXG4gIHBhcnNlZFJlZi5mcmFnbWVudCA9IHBhcnNlZFJlZi5mcmFnbWVudCB8fCAnJztcbiAgaWYgKHBhcnNlZFJlZi5mcmFnbWVudC5zbGljZSgwLDEpICE9ICcvJykgcmV0dXJuO1xuICB2YXIgcGFydHMgPSBwYXJzZWRSZWYuZnJhZ21lbnQuc3BsaXQoJy8nKTtcblxuICBmb3IgKHZhciBpID0gMTsgaSA8IHBhcnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIHBhcnQgPSBwYXJ0c1tpXTtcbiAgICBpZiAocGFydCkge1xuICAgICAgcGFydCA9IHV0aWwudW5lc2NhcGVGcmFnbWVudChwYXJ0KTtcbiAgICAgIHNjaGVtYSA9IHNjaGVtYVtwYXJ0XTtcbiAgICAgIGlmIChzY2hlbWEgPT09IHVuZGVmaW5lZCkgYnJlYWs7XG4gICAgICB2YXIgaWQ7XG4gICAgICBpZiAoIVBSRVZFTlRfU0NPUEVfQ0hBTkdFW3BhcnRdKSB7XG4gICAgICAgIGlkID0gdGhpcy5fZ2V0SWQoc2NoZW1hKTtcbiAgICAgICAgaWYgKGlkKSBiYXNlSWQgPSByZXNvbHZlVXJsKGJhc2VJZCwgaWQpO1xuICAgICAgICBpZiAoc2NoZW1hLiRyZWYpIHtcbiAgICAgICAgICB2YXIgJHJlZiA9IHJlc29sdmVVcmwoYmFzZUlkLCBzY2hlbWEuJHJlZik7XG4gICAgICAgICAgdmFyIHJlcyA9IHJlc29sdmVTY2hlbWEuY2FsbCh0aGlzLCByb290LCAkcmVmKTtcbiAgICAgICAgICBpZiAocmVzKSB7XG4gICAgICAgICAgICBzY2hlbWEgPSByZXMuc2NoZW1hO1xuICAgICAgICAgICAgcm9vdCA9IHJlcy5yb290O1xuICAgICAgICAgICAgYmFzZUlkID0gcmVzLmJhc2VJZDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgaWYgKHNjaGVtYSAhPT0gdW5kZWZpbmVkICYmIHNjaGVtYSAhPT0gcm9vdC5zY2hlbWEpXG4gICAgcmV0dXJuIHsgc2NoZW1hOiBzY2hlbWEsIHJvb3Q6IHJvb3QsIGJhc2VJZDogYmFzZUlkIH07XG59XG5cblxudmFyIFNJTVBMRV9JTkxJTkVEID0gdXRpbC50b0hhc2goW1xuICAndHlwZScsICdmb3JtYXQnLCAncGF0dGVybicsXG4gICdtYXhMZW5ndGgnLCAnbWluTGVuZ3RoJyxcbiAgJ21heFByb3BlcnRpZXMnLCAnbWluUHJvcGVydGllcycsXG4gICdtYXhJdGVtcycsICdtaW5JdGVtcycsXG4gICdtYXhpbXVtJywgJ21pbmltdW0nLFxuICAndW5pcXVlSXRlbXMnLCAnbXVsdGlwbGVPZicsXG4gICdyZXF1aXJlZCcsICdlbnVtJ1xuXSk7XG5mdW5jdGlvbiBpbmxpbmVSZWYoc2NoZW1hLCBsaW1pdCkge1xuICBpZiAobGltaXQgPT09IGZhbHNlKSByZXR1cm4gZmFsc2U7XG4gIGlmIChsaW1pdCA9PT0gdW5kZWZpbmVkIHx8IGxpbWl0ID09PSB0cnVlKSByZXR1cm4gY2hlY2tOb1JlZihzY2hlbWEpO1xuICBlbHNlIGlmIChsaW1pdCkgcmV0dXJuIGNvdW50S2V5cyhzY2hlbWEpIDw9IGxpbWl0O1xufVxuXG5cbmZ1bmN0aW9uIGNoZWNrTm9SZWYoc2NoZW1hKSB7XG4gIHZhciBpdGVtO1xuICBpZiAoQXJyYXkuaXNBcnJheShzY2hlbWEpKSB7XG4gICAgZm9yICh2YXIgaT0wOyBpPHNjaGVtYS5sZW5ndGg7IGkrKykge1xuICAgICAgaXRlbSA9IHNjaGVtYVtpXTtcbiAgICAgIGlmICh0eXBlb2YgaXRlbSA9PSAnb2JqZWN0JyAmJiAhY2hlY2tOb1JlZihpdGVtKSkgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBmb3IgKHZhciBrZXkgaW4gc2NoZW1hKSB7XG4gICAgICBpZiAoa2V5ID09ICckcmVmJykgcmV0dXJuIGZhbHNlO1xuICAgICAgaXRlbSA9IHNjaGVtYVtrZXldO1xuICAgICAgaWYgKHR5cGVvZiBpdGVtID09ICdvYmplY3QnICYmICFjaGVja05vUmVmKGl0ZW0pKSByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG4gIHJldHVybiB0cnVlO1xufVxuXG5cbmZ1bmN0aW9uIGNvdW50S2V5cyhzY2hlbWEpIHtcbiAgdmFyIGNvdW50ID0gMCwgaXRlbTtcbiAgaWYgKEFycmF5LmlzQXJyYXkoc2NoZW1hKSkge1xuICAgIGZvciAodmFyIGk9MDsgaTxzY2hlbWEubGVuZ3RoOyBpKyspIHtcbiAgICAgIGl0ZW0gPSBzY2hlbWFbaV07XG4gICAgICBpZiAodHlwZW9mIGl0ZW0gPT0gJ29iamVjdCcpIGNvdW50ICs9IGNvdW50S2V5cyhpdGVtKTtcbiAgICAgIGlmIChjb3VudCA9PSBJbmZpbml0eSkgcmV0dXJuIEluZmluaXR5O1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBmb3IgKHZhciBrZXkgaW4gc2NoZW1hKSB7XG4gICAgICBpZiAoa2V5ID09ICckcmVmJykgcmV0dXJuIEluZmluaXR5O1xuICAgICAgaWYgKFNJTVBMRV9JTkxJTkVEW2tleV0pIHtcbiAgICAgICAgY291bnQrKztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGl0ZW0gPSBzY2hlbWFba2V5XTtcbiAgICAgICAgaWYgKHR5cGVvZiBpdGVtID09ICdvYmplY3QnKSBjb3VudCArPSBjb3VudEtleXMoaXRlbSkgKyAxO1xuICAgICAgICBpZiAoY291bnQgPT0gSW5maW5pdHkpIHJldHVybiBJbmZpbml0eTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcmV0dXJuIGNvdW50O1xufVxuXG5cbmZ1bmN0aW9uIGdldEZ1bGxQYXRoKGlkLCBub3JtYWxpemUpIHtcbiAgaWYgKG5vcm1hbGl6ZSAhPT0gZmFsc2UpIGlkID0gbm9ybWFsaXplSWQoaWQpO1xuICB2YXIgcCA9IFVSSS5wYXJzZShpZCk7XG4gIHJldHVybiBfZ2V0RnVsbFBhdGgocCk7XG59XG5cblxuZnVuY3Rpb24gX2dldEZ1bGxQYXRoKHApIHtcbiAgcmV0dXJuIFVSSS5zZXJpYWxpemUocCkuc3BsaXQoJyMnKVswXSArICcjJztcbn1cblxuXG52YXIgVFJBSUxJTkdfU0xBU0hfSEFTSCA9IC8jXFwvPyQvO1xuZnVuY3Rpb24gbm9ybWFsaXplSWQoaWQpIHtcbiAgcmV0dXJuIGlkID8gaWQucmVwbGFjZShUUkFJTElOR19TTEFTSF9IQVNILCAnJykgOiAnJztcbn1cblxuXG5mdW5jdGlvbiByZXNvbHZlVXJsKGJhc2VJZCwgaWQpIHtcbiAgaWQgPSBub3JtYWxpemVJZChpZCk7XG4gIHJldHVybiBVUkkucmVzb2x2ZShiYXNlSWQsIGlkKTtcbn1cblxuXG4vKiBAdGhpcyBBanYgKi9cbmZ1bmN0aW9uIHJlc29sdmVJZHMoc2NoZW1hKSB7XG4gIHZhciBzY2hlbWFJZCA9IG5vcm1hbGl6ZUlkKHRoaXMuX2dldElkKHNjaGVtYSkpO1xuICB2YXIgYmFzZUlkcyA9IHsnJzogc2NoZW1hSWR9O1xuICB2YXIgZnVsbFBhdGhzID0geycnOiBnZXRGdWxsUGF0aChzY2hlbWFJZCwgZmFsc2UpfTtcbiAgdmFyIGxvY2FsUmVmcyA9IHt9O1xuICB2YXIgc2VsZiA9IHRoaXM7XG5cbiAgdHJhdmVyc2Uoc2NoZW1hLCB7YWxsS2V5czogdHJ1ZX0sIGZ1bmN0aW9uKHNjaCwganNvblB0ciwgcm9vdFNjaGVtYSwgcGFyZW50SnNvblB0ciwgcGFyZW50S2V5d29yZCwgcGFyZW50U2NoZW1hLCBrZXlJbmRleCkge1xuICAgIGlmIChqc29uUHRyID09PSAnJykgcmV0dXJuO1xuICAgIHZhciBpZCA9IHNlbGYuX2dldElkKHNjaCk7XG4gICAgdmFyIGJhc2VJZCA9IGJhc2VJZHNbcGFyZW50SnNvblB0cl07XG4gICAgdmFyIGZ1bGxQYXRoID0gZnVsbFBhdGhzW3BhcmVudEpzb25QdHJdICsgJy8nICsgcGFyZW50S2V5d29yZDtcbiAgICBpZiAoa2V5SW5kZXggIT09IHVuZGVmaW5lZClcbiAgICAgIGZ1bGxQYXRoICs9ICcvJyArICh0eXBlb2Yga2V5SW5kZXggPT0gJ251bWJlcicgPyBrZXlJbmRleCA6IHV0aWwuZXNjYXBlRnJhZ21lbnQoa2V5SW5kZXgpKTtcblxuICAgIGlmICh0eXBlb2YgaWQgPT0gJ3N0cmluZycpIHtcbiAgICAgIGlkID0gYmFzZUlkID0gbm9ybWFsaXplSWQoYmFzZUlkID8gVVJJLnJlc29sdmUoYmFzZUlkLCBpZCkgOiBpZCk7XG5cbiAgICAgIHZhciByZWZWYWwgPSBzZWxmLl9yZWZzW2lkXTtcbiAgICAgIGlmICh0eXBlb2YgcmVmVmFsID09ICdzdHJpbmcnKSByZWZWYWwgPSBzZWxmLl9yZWZzW3JlZlZhbF07XG4gICAgICBpZiAocmVmVmFsICYmIHJlZlZhbC5zY2hlbWEpIHtcbiAgICAgICAgaWYgKCFlcXVhbChzY2gsIHJlZlZhbC5zY2hlbWEpKVxuICAgICAgICAgIHRocm93IG5ldyBFcnJvcignaWQgXCInICsgaWQgKyAnXCIgcmVzb2x2ZXMgdG8gbW9yZSB0aGFuIG9uZSBzY2hlbWEnKTtcbiAgICAgIH0gZWxzZSBpZiAoaWQgIT0gbm9ybWFsaXplSWQoZnVsbFBhdGgpKSB7XG4gICAgICAgIGlmIChpZFswXSA9PSAnIycpIHtcbiAgICAgICAgICBpZiAobG9jYWxSZWZzW2lkXSAmJiAhZXF1YWwoc2NoLCBsb2NhbFJlZnNbaWRdKSlcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignaWQgXCInICsgaWQgKyAnXCIgcmVzb2x2ZXMgdG8gbW9yZSB0aGFuIG9uZSBzY2hlbWEnKTtcbiAgICAgICAgICBsb2NhbFJlZnNbaWRdID0gc2NoO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHNlbGYuX3JlZnNbaWRdID0gZnVsbFBhdGg7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgYmFzZUlkc1tqc29uUHRyXSA9IGJhc2VJZDtcbiAgICBmdWxsUGF0aHNbanNvblB0cl0gPSBmdWxsUGF0aDtcbiAgfSk7XG5cbiAgcmV0dXJuIGxvY2FsUmVmcztcbn1cbiIsICIndXNlIHN0cmljdCc7XG5cbnZhciByZXNvbHZlID0gcmVxdWlyZSgnLi9yZXNvbHZlJyk7XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICBWYWxpZGF0aW9uOiBlcnJvclN1YmNsYXNzKFZhbGlkYXRpb25FcnJvciksXG4gIE1pc3NpbmdSZWY6IGVycm9yU3ViY2xhc3MoTWlzc2luZ1JlZkVycm9yKVxufTtcblxuXG5mdW5jdGlvbiBWYWxpZGF0aW9uRXJyb3IoZXJyb3JzKSB7XG4gIHRoaXMubWVzc2FnZSA9ICd2YWxpZGF0aW9uIGZhaWxlZCc7XG4gIHRoaXMuZXJyb3JzID0gZXJyb3JzO1xuICB0aGlzLmFqdiA9IHRoaXMudmFsaWRhdGlvbiA9IHRydWU7XG59XG5cblxuTWlzc2luZ1JlZkVycm9yLm1lc3NhZ2UgPSBmdW5jdGlvbiAoYmFzZUlkLCByZWYpIHtcbiAgcmV0dXJuICdjYW5cXCd0IHJlc29sdmUgcmVmZXJlbmNlICcgKyByZWYgKyAnIGZyb20gaWQgJyArIGJhc2VJZDtcbn07XG5cblxuZnVuY3Rpb24gTWlzc2luZ1JlZkVycm9yKGJhc2VJZCwgcmVmLCBtZXNzYWdlKSB7XG4gIHRoaXMubWVzc2FnZSA9IG1lc3NhZ2UgfHwgTWlzc2luZ1JlZkVycm9yLm1lc3NhZ2UoYmFzZUlkLCByZWYpO1xuICB0aGlzLm1pc3NpbmdSZWYgPSByZXNvbHZlLnVybChiYXNlSWQsIHJlZik7XG4gIHRoaXMubWlzc2luZ1NjaGVtYSA9IHJlc29sdmUubm9ybWFsaXplSWQocmVzb2x2ZS5mdWxsUGF0aCh0aGlzLm1pc3NpbmdSZWYpKTtcbn1cblxuXG5mdW5jdGlvbiBlcnJvclN1YmNsYXNzKFN1YmNsYXNzKSB7XG4gIFN1YmNsYXNzLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoRXJyb3IucHJvdG90eXBlKTtcbiAgU3ViY2xhc3MucHJvdG90eXBlLmNvbnN0cnVjdG9yID0gU3ViY2xhc3M7XG4gIHJldHVybiBTdWJjbGFzcztcbn1cbiIsICIndXNlIHN0cmljdCc7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGRhdGEsIG9wdHMpIHtcbiAgICBpZiAoIW9wdHMpIG9wdHMgPSB7fTtcbiAgICBpZiAodHlwZW9mIG9wdHMgPT09ICdmdW5jdGlvbicpIG9wdHMgPSB7IGNtcDogb3B0cyB9O1xuICAgIHZhciBjeWNsZXMgPSAodHlwZW9mIG9wdHMuY3ljbGVzID09PSAnYm9vbGVhbicpID8gb3B0cy5jeWNsZXMgOiBmYWxzZTtcblxuICAgIHZhciBjbXAgPSBvcHRzLmNtcCAmJiAoZnVuY3Rpb24gKGYpIHtcbiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uIChub2RlKSB7XG4gICAgICAgICAgICByZXR1cm4gZnVuY3Rpb24gKGEsIGIpIHtcbiAgICAgICAgICAgICAgICB2YXIgYW9iaiA9IHsga2V5OiBhLCB2YWx1ZTogbm9kZVthXSB9O1xuICAgICAgICAgICAgICAgIHZhciBib2JqID0geyBrZXk6IGIsIHZhbHVlOiBub2RlW2JdIH07XG4gICAgICAgICAgICAgICAgcmV0dXJuIGYoYW9iaiwgYm9iaik7XG4gICAgICAgICAgICB9O1xuICAgICAgICB9O1xuICAgIH0pKG9wdHMuY21wKTtcblxuICAgIHZhciBzZWVuID0gW107XG4gICAgcmV0dXJuIChmdW5jdGlvbiBzdHJpbmdpZnkgKG5vZGUpIHtcbiAgICAgICAgaWYgKG5vZGUgJiYgbm9kZS50b0pTT04gJiYgdHlwZW9mIG5vZGUudG9KU09OID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICBub2RlID0gbm9kZS50b0pTT04oKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChub2RlID09PSB1bmRlZmluZWQpIHJldHVybjtcbiAgICAgICAgaWYgKHR5cGVvZiBub2RlID09ICdudW1iZXInKSByZXR1cm4gaXNGaW5pdGUobm9kZSkgPyAnJyArIG5vZGUgOiAnbnVsbCc7XG4gICAgICAgIGlmICh0eXBlb2Ygbm9kZSAhPT0gJ29iamVjdCcpIHJldHVybiBKU09OLnN0cmluZ2lmeShub2RlKTtcblxuICAgICAgICB2YXIgaSwgb3V0O1xuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShub2RlKSkge1xuICAgICAgICAgICAgb3V0ID0gJ1snO1xuICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IG5vZGUubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICBpZiAoaSkgb3V0ICs9ICcsJztcbiAgICAgICAgICAgICAgICBvdXQgKz0gc3RyaW5naWZ5KG5vZGVbaV0pIHx8ICdudWxsJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBvdXQgKyAnXSc7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAobm9kZSA9PT0gbnVsbCkgcmV0dXJuICdudWxsJztcblxuICAgICAgICBpZiAoc2Vlbi5pbmRleE9mKG5vZGUpICE9PSAtMSkge1xuICAgICAgICAgICAgaWYgKGN5Y2xlcykgcmV0dXJuIEpTT04uc3RyaW5naWZ5KCdfX2N5Y2xlX18nKTtcbiAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ0NvbnZlcnRpbmcgY2lyY3VsYXIgc3RydWN0dXJlIHRvIEpTT04nKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHZhciBzZWVuSW5kZXggPSBzZWVuLnB1c2gobm9kZSkgLSAxO1xuICAgICAgICB2YXIga2V5cyA9IE9iamVjdC5rZXlzKG5vZGUpLnNvcnQoY21wICYmIGNtcChub2RlKSk7XG4gICAgICAgIG91dCA9ICcnO1xuICAgICAgICBmb3IgKGkgPSAwOyBpIDwga2V5cy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgdmFyIGtleSA9IGtleXNbaV07XG4gICAgICAgICAgICB2YXIgdmFsdWUgPSBzdHJpbmdpZnkobm9kZVtrZXldKTtcblxuICAgICAgICAgICAgaWYgKCF2YWx1ZSkgY29udGludWU7XG4gICAgICAgICAgICBpZiAob3V0KSBvdXQgKz0gJywnO1xuICAgICAgICAgICAgb3V0ICs9IEpTT04uc3RyaW5naWZ5KGtleSkgKyAnOicgKyB2YWx1ZTtcbiAgICAgICAgfVxuICAgICAgICBzZWVuLnNwbGljZShzZWVuSW5kZXgsIDEpO1xuICAgICAgICByZXR1cm4gJ3snICsgb3V0ICsgJ30nO1xuICAgIH0pKGRhdGEpO1xufTtcbiIsICIndXNlIHN0cmljdCc7XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIGdlbmVyYXRlX3ZhbGlkYXRlKGl0LCAka2V5d29yZCwgJHJ1bGVUeXBlKSB7XG4gIHZhciBvdXQgPSAnJztcbiAgdmFyICRhc3luYyA9IGl0LnNjaGVtYS4kYXN5bmMgPT09IHRydWUsXG4gICAgJHJlZktleXdvcmRzID0gaXQudXRpbC5zY2hlbWFIYXNSdWxlc0V4Y2VwdChpdC5zY2hlbWEsIGl0LlJVTEVTLmFsbCwgJyRyZWYnKSxcbiAgICAkaWQgPSBpdC5zZWxmLl9nZXRJZChpdC5zY2hlbWEpO1xuICBpZiAoaXQub3B0cy5zdHJpY3RLZXl3b3Jkcykge1xuICAgIHZhciAkdW5rbm93bkt3ZCA9IGl0LnV0aWwuc2NoZW1hVW5rbm93blJ1bGVzKGl0LnNjaGVtYSwgaXQuUlVMRVMua2V5d29yZHMpO1xuICAgIGlmICgkdW5rbm93bkt3ZCkge1xuICAgICAgdmFyICRrZXl3b3Jkc01zZyA9ICd1bmtub3duIGtleXdvcmQ6ICcgKyAkdW5rbm93bkt3ZDtcbiAgICAgIGlmIChpdC5vcHRzLnN0cmljdEtleXdvcmRzID09PSAnbG9nJykgaXQubG9nZ2VyLndhcm4oJGtleXdvcmRzTXNnKTtcbiAgICAgIGVsc2UgdGhyb3cgbmV3IEVycm9yKCRrZXl3b3Jkc01zZyk7XG4gICAgfVxuICB9XG4gIGlmIChpdC5pc1RvcCkge1xuICAgIG91dCArPSAnIHZhciB2YWxpZGF0ZSA9ICc7XG4gICAgaWYgKCRhc3luYykge1xuICAgICAgaXQuYXN5bmMgPSB0cnVlO1xuICAgICAgb3V0ICs9ICdhc3luYyAnO1xuICAgIH1cbiAgICBvdXQgKz0gJ2Z1bmN0aW9uKGRhdGEsIGRhdGFQYXRoLCBwYXJlbnREYXRhLCBwYXJlbnREYXRhUHJvcGVydHksIHJvb3REYXRhKSB7IFxcJ3VzZSBzdHJpY3RcXCc7ICc7XG4gICAgaWYgKCRpZCAmJiAoaXQub3B0cy5zb3VyY2VDb2RlIHx8IGl0Lm9wdHMucHJvY2Vzc0NvZGUpKSB7XG4gICAgICBvdXQgKz0gJyAnICsgKCcvXFwqIyBzb3VyY2VVUkw9JyArICRpZCArICcgKi8nKSArICcgJztcbiAgICB9XG4gIH1cbiAgaWYgKHR5cGVvZiBpdC5zY2hlbWEgPT0gJ2Jvb2xlYW4nIHx8ICEoJHJlZktleXdvcmRzIHx8IGl0LnNjaGVtYS4kcmVmKSkge1xuICAgIHZhciAka2V5d29yZCA9ICdmYWxzZSBzY2hlbWEnO1xuICAgIHZhciAkbHZsID0gaXQubGV2ZWw7XG4gICAgdmFyICRkYXRhTHZsID0gaXQuZGF0YUxldmVsO1xuICAgIHZhciAkc2NoZW1hID0gaXQuc2NoZW1hWyRrZXl3b3JkXTtcbiAgICB2YXIgJHNjaGVtYVBhdGggPSBpdC5zY2hlbWFQYXRoICsgaXQudXRpbC5nZXRQcm9wZXJ0eSgka2V5d29yZCk7XG4gICAgdmFyICRlcnJTY2hlbWFQYXRoID0gaXQuZXJyU2NoZW1hUGF0aCArICcvJyArICRrZXl3b3JkO1xuICAgIHZhciAkYnJlYWtPbkVycm9yID0gIWl0Lm9wdHMuYWxsRXJyb3JzO1xuICAgIHZhciAkZXJyb3JLZXl3b3JkO1xuICAgIHZhciAkZGF0YSA9ICdkYXRhJyArICgkZGF0YUx2bCB8fCAnJyk7XG4gICAgdmFyICR2YWxpZCA9ICd2YWxpZCcgKyAkbHZsO1xuICAgIGlmIChpdC5zY2hlbWEgPT09IGZhbHNlKSB7XG4gICAgICBpZiAoaXQuaXNUb3ApIHtcbiAgICAgICAgJGJyZWFrT25FcnJvciA9IHRydWU7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBvdXQgKz0gJyB2YXIgJyArICgkdmFsaWQpICsgJyA9IGZhbHNlOyAnO1xuICAgICAgfVxuICAgICAgdmFyICQkb3V0U3RhY2sgPSAkJG91dFN0YWNrIHx8IFtdO1xuICAgICAgJCRvdXRTdGFjay5wdXNoKG91dCk7XG4gICAgICBvdXQgPSAnJzsgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICAgIGlmIChpdC5jcmVhdGVFcnJvcnMgIT09IGZhbHNlKSB7XG4gICAgICAgIG91dCArPSAnIHsga2V5d29yZDogXFwnJyArICgkZXJyb3JLZXl3b3JkIHx8ICdmYWxzZSBzY2hlbWEnKSArICdcXCcgLCBkYXRhUGF0aDogKGRhdGFQYXRoIHx8IFxcJ1xcJykgKyAnICsgKGl0LmVycm9yUGF0aCkgKyAnICwgc2NoZW1hUGF0aDogJyArIChpdC51dGlsLnRvUXVvdGVkU3RyaW5nKCRlcnJTY2hlbWFQYXRoKSkgKyAnICwgcGFyYW1zOiB7fSAnO1xuICAgICAgICBpZiAoaXQub3B0cy5tZXNzYWdlcyAhPT0gZmFsc2UpIHtcbiAgICAgICAgICBvdXQgKz0gJyAsIG1lc3NhZ2U6IFxcJ2Jvb2xlYW4gc2NoZW1hIGlzIGZhbHNlXFwnICc7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGl0Lm9wdHMudmVyYm9zZSkge1xuICAgICAgICAgIG91dCArPSAnICwgc2NoZW1hOiBmYWxzZSAsIHBhcmVudFNjaGVtYTogdmFsaWRhdGUuc2NoZW1hJyArIChpdC5zY2hlbWFQYXRoKSArICcgLCBkYXRhOiAnICsgKCRkYXRhKSArICcgJztcbiAgICAgICAgfVxuICAgICAgICBvdXQgKz0gJyB9ICc7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBvdXQgKz0gJyB7fSAnO1xuICAgICAgfVxuICAgICAgdmFyIF9fZXJyID0gb3V0O1xuICAgICAgb3V0ID0gJCRvdXRTdGFjay5wb3AoKTtcbiAgICAgIGlmICghaXQuY29tcG9zaXRlUnVsZSAmJiAkYnJlYWtPbkVycm9yKSB7XG4gICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBpZiAqL1xuICAgICAgICBpZiAoaXQuYXN5bmMpIHtcbiAgICAgICAgICBvdXQgKz0gJyB0aHJvdyBuZXcgVmFsaWRhdGlvbkVycm9yKFsnICsgKF9fZXJyKSArICddKTsgJztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBvdXQgKz0gJyB2YWxpZGF0ZS5lcnJvcnMgPSBbJyArIChfX2VycikgKyAnXTsgcmV0dXJuIGZhbHNlOyAnO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBvdXQgKz0gJyB2YXIgZXJyID0gJyArIChfX2VycikgKyAnOyAgaWYgKHZFcnJvcnMgPT09IG51bGwpIHZFcnJvcnMgPSBbZXJyXTsgZWxzZSB2RXJyb3JzLnB1c2goZXJyKTsgZXJyb3JzKys7ICc7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChpdC5pc1RvcCkge1xuICAgICAgICBpZiAoJGFzeW5jKSB7XG4gICAgICAgICAgb3V0ICs9ICcgcmV0dXJuIGRhdGE7ICc7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgb3V0ICs9ICcgdmFsaWRhdGUuZXJyb3JzID0gbnVsbDsgcmV0dXJuIHRydWU7ICc7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG91dCArPSAnIHZhciAnICsgKCR2YWxpZCkgKyAnID0gdHJ1ZTsgJztcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKGl0LmlzVG9wKSB7XG4gICAgICBvdXQgKz0gJyB9OyByZXR1cm4gdmFsaWRhdGU7ICc7XG4gICAgfVxuICAgIHJldHVybiBvdXQ7XG4gIH1cbiAgaWYgKGl0LmlzVG9wKSB7XG4gICAgdmFyICR0b3AgPSBpdC5pc1RvcCxcbiAgICAgICRsdmwgPSBpdC5sZXZlbCA9IDAsXG4gICAgICAkZGF0YUx2bCA9IGl0LmRhdGFMZXZlbCA9IDAsXG4gICAgICAkZGF0YSA9ICdkYXRhJztcbiAgICBpdC5yb290SWQgPSBpdC5yZXNvbHZlLmZ1bGxQYXRoKGl0LnNlbGYuX2dldElkKGl0LnJvb3Quc2NoZW1hKSk7XG4gICAgaXQuYmFzZUlkID0gaXQuYmFzZUlkIHx8IGl0LnJvb3RJZDtcbiAgICBkZWxldGUgaXQuaXNUb3A7XG4gICAgaXQuZGF0YVBhdGhBcnIgPSBbXCJcIl07XG4gICAgaWYgKGl0LnNjaGVtYS5kZWZhdWx0ICE9PSB1bmRlZmluZWQgJiYgaXQub3B0cy51c2VEZWZhdWx0cyAmJiBpdC5vcHRzLnN0cmljdERlZmF1bHRzKSB7XG4gICAgICB2YXIgJGRlZmF1bHRNc2cgPSAnZGVmYXVsdCBpcyBpZ25vcmVkIGluIHRoZSBzY2hlbWEgcm9vdCc7XG4gICAgICBpZiAoaXQub3B0cy5zdHJpY3REZWZhdWx0cyA9PT0gJ2xvZycpIGl0LmxvZ2dlci53YXJuKCRkZWZhdWx0TXNnKTtcbiAgICAgIGVsc2UgdGhyb3cgbmV3IEVycm9yKCRkZWZhdWx0TXNnKTtcbiAgICB9XG4gICAgb3V0ICs9ICcgdmFyIHZFcnJvcnMgPSBudWxsOyAnO1xuICAgIG91dCArPSAnIHZhciBlcnJvcnMgPSAwOyAgICAgJztcbiAgICBvdXQgKz0gJyBpZiAocm9vdERhdGEgPT09IHVuZGVmaW5lZCkgcm9vdERhdGEgPSBkYXRhOyAnO1xuICB9IGVsc2Uge1xuICAgIHZhciAkbHZsID0gaXQubGV2ZWwsXG4gICAgICAkZGF0YUx2bCA9IGl0LmRhdGFMZXZlbCxcbiAgICAgICRkYXRhID0gJ2RhdGEnICsgKCRkYXRhTHZsIHx8ICcnKTtcbiAgICBpZiAoJGlkKSBpdC5iYXNlSWQgPSBpdC5yZXNvbHZlLnVybChpdC5iYXNlSWQsICRpZCk7XG4gICAgaWYgKCRhc3luYyAmJiAhaXQuYXN5bmMpIHRocm93IG5ldyBFcnJvcignYXN5bmMgc2NoZW1hIGluIHN5bmMgc2NoZW1hJyk7XG4gICAgb3V0ICs9ICcgdmFyIGVycnNfJyArICgkbHZsKSArICcgPSBlcnJvcnM7JztcbiAgfVxuICB2YXIgJHZhbGlkID0gJ3ZhbGlkJyArICRsdmwsXG4gICAgJGJyZWFrT25FcnJvciA9ICFpdC5vcHRzLmFsbEVycm9ycyxcbiAgICAkY2xvc2luZ0JyYWNlczEgPSAnJyxcbiAgICAkY2xvc2luZ0JyYWNlczIgPSAnJztcbiAgdmFyICRlcnJvcktleXdvcmQ7XG4gIHZhciAkdHlwZVNjaGVtYSA9IGl0LnNjaGVtYS50eXBlLFxuICAgICR0eXBlSXNBcnJheSA9IEFycmF5LmlzQXJyYXkoJHR5cGVTY2hlbWEpO1xuICBpZiAoJHR5cGVTY2hlbWEgJiYgaXQub3B0cy5udWxsYWJsZSAmJiBpdC5zY2hlbWEubnVsbGFibGUgPT09IHRydWUpIHtcbiAgICBpZiAoJHR5cGVJc0FycmF5KSB7XG4gICAgICBpZiAoJHR5cGVTY2hlbWEuaW5kZXhPZignbnVsbCcpID09IC0xKSAkdHlwZVNjaGVtYSA9ICR0eXBlU2NoZW1hLmNvbmNhdCgnbnVsbCcpO1xuICAgIH0gZWxzZSBpZiAoJHR5cGVTY2hlbWEgIT0gJ251bGwnKSB7XG4gICAgICAkdHlwZVNjaGVtYSA9IFskdHlwZVNjaGVtYSwgJ251bGwnXTtcbiAgICAgICR0eXBlSXNBcnJheSA9IHRydWU7XG4gICAgfVxuICB9XG4gIGlmICgkdHlwZUlzQXJyYXkgJiYgJHR5cGVTY2hlbWEubGVuZ3RoID09IDEpIHtcbiAgICAkdHlwZVNjaGVtYSA9ICR0eXBlU2NoZW1hWzBdO1xuICAgICR0eXBlSXNBcnJheSA9IGZhbHNlO1xuICB9XG4gIGlmIChpdC5zY2hlbWEuJHJlZiAmJiAkcmVmS2V5d29yZHMpIHtcbiAgICBpZiAoaXQub3B0cy5leHRlbmRSZWZzID09ICdmYWlsJykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCckcmVmOiB2YWxpZGF0aW9uIGtleXdvcmRzIHVzZWQgaW4gc2NoZW1hIGF0IHBhdGggXCInICsgaXQuZXJyU2NoZW1hUGF0aCArICdcIiAoc2VlIG9wdGlvbiBleHRlbmRSZWZzKScpO1xuICAgIH0gZWxzZSBpZiAoaXQub3B0cy5leHRlbmRSZWZzICE9PSB0cnVlKSB7XG4gICAgICAkcmVmS2V5d29yZHMgPSBmYWxzZTtcbiAgICAgIGl0LmxvZ2dlci53YXJuKCckcmVmOiBrZXl3b3JkcyBpZ25vcmVkIGluIHNjaGVtYSBhdCBwYXRoIFwiJyArIGl0LmVyclNjaGVtYVBhdGggKyAnXCInKTtcbiAgICB9XG4gIH1cbiAgaWYgKGl0LnNjaGVtYS4kY29tbWVudCAmJiBpdC5vcHRzLiRjb21tZW50KSB7XG4gICAgb3V0ICs9ICcgJyArIChpdC5SVUxFUy5hbGwuJGNvbW1lbnQuY29kZShpdCwgJyRjb21tZW50JykpO1xuICB9XG4gIGlmICgkdHlwZVNjaGVtYSkge1xuICAgIGlmIChpdC5vcHRzLmNvZXJjZVR5cGVzKSB7XG4gICAgICB2YXIgJGNvZXJjZVRvVHlwZXMgPSBpdC51dGlsLmNvZXJjZVRvVHlwZXMoaXQub3B0cy5jb2VyY2VUeXBlcywgJHR5cGVTY2hlbWEpO1xuICAgIH1cbiAgICB2YXIgJHJ1bGVzR3JvdXAgPSBpdC5SVUxFUy50eXBlc1skdHlwZVNjaGVtYV07XG4gICAgaWYgKCRjb2VyY2VUb1R5cGVzIHx8ICR0eXBlSXNBcnJheSB8fCAkcnVsZXNHcm91cCA9PT0gdHJ1ZSB8fCAoJHJ1bGVzR3JvdXAgJiYgISRzaG91bGRVc2VHcm91cCgkcnVsZXNHcm91cCkpKSB7XG4gICAgICB2YXIgJHNjaGVtYVBhdGggPSBpdC5zY2hlbWFQYXRoICsgJy50eXBlJyxcbiAgICAgICAgJGVyclNjaGVtYVBhdGggPSBpdC5lcnJTY2hlbWFQYXRoICsgJy90eXBlJztcbiAgICAgIHZhciAkc2NoZW1hUGF0aCA9IGl0LnNjaGVtYVBhdGggKyAnLnR5cGUnLFxuICAgICAgICAkZXJyU2NoZW1hUGF0aCA9IGl0LmVyclNjaGVtYVBhdGggKyAnL3R5cGUnLFxuICAgICAgICAkbWV0aG9kID0gJHR5cGVJc0FycmF5ID8gJ2NoZWNrRGF0YVR5cGVzJyA6ICdjaGVja0RhdGFUeXBlJztcbiAgICAgIG91dCArPSAnIGlmICgnICsgKGl0LnV0aWxbJG1ldGhvZF0oJHR5cGVTY2hlbWEsICRkYXRhLCBpdC5vcHRzLnN0cmljdE51bWJlcnMsIHRydWUpKSArICcpIHsgJztcbiAgICAgIGlmICgkY29lcmNlVG9UeXBlcykge1xuICAgICAgICB2YXIgJGRhdGFUeXBlID0gJ2RhdGFUeXBlJyArICRsdmwsXG4gICAgICAgICAgJGNvZXJjZWQgPSAnY29lcmNlZCcgKyAkbHZsO1xuICAgICAgICBvdXQgKz0gJyB2YXIgJyArICgkZGF0YVR5cGUpICsgJyA9IHR5cGVvZiAnICsgKCRkYXRhKSArICc7IHZhciAnICsgKCRjb2VyY2VkKSArICcgPSB1bmRlZmluZWQ7ICc7XG4gICAgICAgIGlmIChpdC5vcHRzLmNvZXJjZVR5cGVzID09ICdhcnJheScpIHtcbiAgICAgICAgICBvdXQgKz0gJyBpZiAoJyArICgkZGF0YVR5cGUpICsgJyA9PSBcXCdvYmplY3RcXCcgJiYgQXJyYXkuaXNBcnJheSgnICsgKCRkYXRhKSArICcpICYmICcgKyAoJGRhdGEpICsgJy5sZW5ndGggPT0gMSkgeyAnICsgKCRkYXRhKSArICcgPSAnICsgKCRkYXRhKSArICdbMF07ICcgKyAoJGRhdGFUeXBlKSArICcgPSB0eXBlb2YgJyArICgkZGF0YSkgKyAnOyBpZiAoJyArIChpdC51dGlsLmNoZWNrRGF0YVR5cGUoaXQuc2NoZW1hLnR5cGUsICRkYXRhLCBpdC5vcHRzLnN0cmljdE51bWJlcnMpKSArICcpICcgKyAoJGNvZXJjZWQpICsgJyA9ICcgKyAoJGRhdGEpICsgJzsgfSAnO1xuICAgICAgICB9XG4gICAgICAgIG91dCArPSAnIGlmICgnICsgKCRjb2VyY2VkKSArICcgIT09IHVuZGVmaW5lZCkgOyAnO1xuICAgICAgICB2YXIgYXJyMSA9ICRjb2VyY2VUb1R5cGVzO1xuICAgICAgICBpZiAoYXJyMSkge1xuICAgICAgICAgIHZhciAkdHlwZSwgJGkgPSAtMSxcbiAgICAgICAgICAgIGwxID0gYXJyMS5sZW5ndGggLSAxO1xuICAgICAgICAgIHdoaWxlICgkaSA8IGwxKSB7XG4gICAgICAgICAgICAkdHlwZSA9IGFycjFbJGkgKz0gMV07XG4gICAgICAgICAgICBpZiAoJHR5cGUgPT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgb3V0ICs9ICcgZWxzZSBpZiAoJyArICgkZGF0YVR5cGUpICsgJyA9PSBcXCdudW1iZXJcXCcgfHwgJyArICgkZGF0YVR5cGUpICsgJyA9PSBcXCdib29sZWFuXFwnKSAnICsgKCRjb2VyY2VkKSArICcgPSBcXCdcXCcgKyAnICsgKCRkYXRhKSArICc7IGVsc2UgaWYgKCcgKyAoJGRhdGEpICsgJyA9PT0gbnVsbCkgJyArICgkY29lcmNlZCkgKyAnID0gXFwnXFwnOyAnO1xuICAgICAgICAgICAgfSBlbHNlIGlmICgkdHlwZSA9PSAnbnVtYmVyJyB8fCAkdHlwZSA9PSAnaW50ZWdlcicpIHtcbiAgICAgICAgICAgICAgb3V0ICs9ICcgZWxzZSBpZiAoJyArICgkZGF0YVR5cGUpICsgJyA9PSBcXCdib29sZWFuXFwnIHx8ICcgKyAoJGRhdGEpICsgJyA9PT0gbnVsbCB8fCAoJyArICgkZGF0YVR5cGUpICsgJyA9PSBcXCdzdHJpbmdcXCcgJiYgJyArICgkZGF0YSkgKyAnICYmICcgKyAoJGRhdGEpICsgJyA9PSArJyArICgkZGF0YSkgKyAnICc7XG4gICAgICAgICAgICAgIGlmICgkdHlwZSA9PSAnaW50ZWdlcicpIHtcbiAgICAgICAgICAgICAgICBvdXQgKz0gJyAmJiAhKCcgKyAoJGRhdGEpICsgJyAlIDEpJztcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBvdXQgKz0gJykpICcgKyAoJGNvZXJjZWQpICsgJyA9ICsnICsgKCRkYXRhKSArICc7ICc7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKCR0eXBlID09ICdib29sZWFuJykge1xuICAgICAgICAgICAgICBvdXQgKz0gJyBlbHNlIGlmICgnICsgKCRkYXRhKSArICcgPT09IFxcJ2ZhbHNlXFwnIHx8ICcgKyAoJGRhdGEpICsgJyA9PT0gMCB8fCAnICsgKCRkYXRhKSArICcgPT09IG51bGwpICcgKyAoJGNvZXJjZWQpICsgJyA9IGZhbHNlOyBlbHNlIGlmICgnICsgKCRkYXRhKSArICcgPT09IFxcJ3RydWVcXCcgfHwgJyArICgkZGF0YSkgKyAnID09PSAxKSAnICsgKCRjb2VyY2VkKSArICcgPSB0cnVlOyAnO1xuICAgICAgICAgICAgfSBlbHNlIGlmICgkdHlwZSA9PSAnbnVsbCcpIHtcbiAgICAgICAgICAgICAgb3V0ICs9ICcgZWxzZSBpZiAoJyArICgkZGF0YSkgKyAnID09PSBcXCdcXCcgfHwgJyArICgkZGF0YSkgKyAnID09PSAwIHx8ICcgKyAoJGRhdGEpICsgJyA9PT0gZmFsc2UpICcgKyAoJGNvZXJjZWQpICsgJyA9IG51bGw7ICc7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGl0Lm9wdHMuY29lcmNlVHlwZXMgPT0gJ2FycmF5JyAmJiAkdHlwZSA9PSAnYXJyYXknKSB7XG4gICAgICAgICAgICAgIG91dCArPSAnIGVsc2UgaWYgKCcgKyAoJGRhdGFUeXBlKSArICcgPT0gXFwnc3RyaW5nXFwnIHx8ICcgKyAoJGRhdGFUeXBlKSArICcgPT0gXFwnbnVtYmVyXFwnIHx8ICcgKyAoJGRhdGFUeXBlKSArICcgPT0gXFwnYm9vbGVhblxcJyB8fCAnICsgKCRkYXRhKSArICcgPT0gbnVsbCkgJyArICgkY29lcmNlZCkgKyAnID0gWycgKyAoJGRhdGEpICsgJ107ICc7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIG91dCArPSAnIGVsc2UgeyAgICc7XG4gICAgICAgIHZhciAkJG91dFN0YWNrID0gJCRvdXRTdGFjayB8fCBbXTtcbiAgICAgICAgJCRvdXRTdGFjay5wdXNoKG91dCk7XG4gICAgICAgIG91dCA9ICcnOyAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgICBpZiAoaXQuY3JlYXRlRXJyb3JzICE9PSBmYWxzZSkge1xuICAgICAgICAgIG91dCArPSAnIHsga2V5d29yZDogXFwnJyArICgkZXJyb3JLZXl3b3JkIHx8ICd0eXBlJykgKyAnXFwnICwgZGF0YVBhdGg6IChkYXRhUGF0aCB8fCBcXCdcXCcpICsgJyArIChpdC5lcnJvclBhdGgpICsgJyAsIHNjaGVtYVBhdGg6ICcgKyAoaXQudXRpbC50b1F1b3RlZFN0cmluZygkZXJyU2NoZW1hUGF0aCkpICsgJyAsIHBhcmFtczogeyB0eXBlOiBcXCcnO1xuICAgICAgICAgIGlmICgkdHlwZUlzQXJyYXkpIHtcbiAgICAgICAgICAgIG91dCArPSAnJyArICgkdHlwZVNjaGVtYS5qb2luKFwiLFwiKSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIG91dCArPSAnJyArICgkdHlwZVNjaGVtYSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIG91dCArPSAnXFwnIH0gJztcbiAgICAgICAgICBpZiAoaXQub3B0cy5tZXNzYWdlcyAhPT0gZmFsc2UpIHtcbiAgICAgICAgICAgIG91dCArPSAnICwgbWVzc2FnZTogXFwnc2hvdWxkIGJlICc7XG4gICAgICAgICAgICBpZiAoJHR5cGVJc0FycmF5KSB7XG4gICAgICAgICAgICAgIG91dCArPSAnJyArICgkdHlwZVNjaGVtYS5qb2luKFwiLFwiKSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBvdXQgKz0gJycgKyAoJHR5cGVTY2hlbWEpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgb3V0ICs9ICdcXCcgJztcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGl0Lm9wdHMudmVyYm9zZSkge1xuICAgICAgICAgICAgb3V0ICs9ICcgLCBzY2hlbWE6IHZhbGlkYXRlLnNjaGVtYScgKyAoJHNjaGVtYVBhdGgpICsgJyAsIHBhcmVudFNjaGVtYTogdmFsaWRhdGUuc2NoZW1hJyArIChpdC5zY2hlbWFQYXRoKSArICcgLCBkYXRhOiAnICsgKCRkYXRhKSArICcgJztcbiAgICAgICAgICB9XG4gICAgICAgICAgb3V0ICs9ICcgfSAnO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIG91dCArPSAnIHt9ICc7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIF9fZXJyID0gb3V0O1xuICAgICAgICBvdXQgPSAkJG91dFN0YWNrLnBvcCgpO1xuICAgICAgICBpZiAoIWl0LmNvbXBvc2l0ZVJ1bGUgJiYgJGJyZWFrT25FcnJvcikge1xuICAgICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBpZiAqL1xuICAgICAgICAgIGlmIChpdC5hc3luYykge1xuICAgICAgICAgICAgb3V0ICs9ICcgdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcihbJyArIChfX2VycikgKyAnXSk7ICc7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIG91dCArPSAnIHZhbGlkYXRlLmVycm9ycyA9IFsnICsgKF9fZXJyKSArICddOyByZXR1cm4gZmFsc2U7ICc7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIG91dCArPSAnIHZhciBlcnIgPSAnICsgKF9fZXJyKSArICc7ICBpZiAodkVycm9ycyA9PT0gbnVsbCkgdkVycm9ycyA9IFtlcnJdOyBlbHNlIHZFcnJvcnMucHVzaChlcnIpOyBlcnJvcnMrKzsgJztcbiAgICAgICAgfVxuICAgICAgICBvdXQgKz0gJyB9IGlmICgnICsgKCRjb2VyY2VkKSArICcgIT09IHVuZGVmaW5lZCkgeyAgJztcbiAgICAgICAgdmFyICRwYXJlbnREYXRhID0gJGRhdGFMdmwgPyAnZGF0YScgKyAoKCRkYXRhTHZsIC0gMSkgfHwgJycpIDogJ3BhcmVudERhdGEnLFxuICAgICAgICAgICRwYXJlbnREYXRhUHJvcGVydHkgPSAkZGF0YUx2bCA/IGl0LmRhdGFQYXRoQXJyWyRkYXRhTHZsXSA6ICdwYXJlbnREYXRhUHJvcGVydHknO1xuICAgICAgICBvdXQgKz0gJyAnICsgKCRkYXRhKSArICcgPSAnICsgKCRjb2VyY2VkKSArICc7ICc7XG4gICAgICAgIGlmICghJGRhdGFMdmwpIHtcbiAgICAgICAgICBvdXQgKz0gJ2lmICgnICsgKCRwYXJlbnREYXRhKSArICcgIT09IHVuZGVmaW5lZCknO1xuICAgICAgICB9XG4gICAgICAgIG91dCArPSAnICcgKyAoJHBhcmVudERhdGEpICsgJ1snICsgKCRwYXJlbnREYXRhUHJvcGVydHkpICsgJ10gPSAnICsgKCRjb2VyY2VkKSArICc7IH0gJztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHZhciAkJG91dFN0YWNrID0gJCRvdXRTdGFjayB8fCBbXTtcbiAgICAgICAgJCRvdXRTdGFjay5wdXNoKG91dCk7XG4gICAgICAgIG91dCA9ICcnOyAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgICBpZiAoaXQuY3JlYXRlRXJyb3JzICE9PSBmYWxzZSkge1xuICAgICAgICAgIG91dCArPSAnIHsga2V5d29yZDogXFwnJyArICgkZXJyb3JLZXl3b3JkIHx8ICd0eXBlJykgKyAnXFwnICwgZGF0YVBhdGg6IChkYXRhUGF0aCB8fCBcXCdcXCcpICsgJyArIChpdC5lcnJvclBhdGgpICsgJyAsIHNjaGVtYVBhdGg6ICcgKyAoaXQudXRpbC50b1F1b3RlZFN0cmluZygkZXJyU2NoZW1hUGF0aCkpICsgJyAsIHBhcmFtczogeyB0eXBlOiBcXCcnO1xuICAgICAgICAgIGlmICgkdHlwZUlzQXJyYXkpIHtcbiAgICAgICAgICAgIG91dCArPSAnJyArICgkdHlwZVNjaGVtYS5qb2luKFwiLFwiKSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIG91dCArPSAnJyArICgkdHlwZVNjaGVtYSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIG91dCArPSAnXFwnIH0gJztcbiAgICAgICAgICBpZiAoaXQub3B0cy5tZXNzYWdlcyAhPT0gZmFsc2UpIHtcbiAgICAgICAgICAgIG91dCArPSAnICwgbWVzc2FnZTogXFwnc2hvdWxkIGJlICc7XG4gICAgICAgICAgICBpZiAoJHR5cGVJc0FycmF5KSB7XG4gICAgICAgICAgICAgIG91dCArPSAnJyArICgkdHlwZVNjaGVtYS5qb2luKFwiLFwiKSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBvdXQgKz0gJycgKyAoJHR5cGVTY2hlbWEpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgb3V0ICs9ICdcXCcgJztcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGl0Lm9wdHMudmVyYm9zZSkge1xuICAgICAgICAgICAgb3V0ICs9ICcgLCBzY2hlbWE6IHZhbGlkYXRlLnNjaGVtYScgKyAoJHNjaGVtYVBhdGgpICsgJyAsIHBhcmVudFNjaGVtYTogdmFsaWRhdGUuc2NoZW1hJyArIChpdC5zY2hlbWFQYXRoKSArICcgLCBkYXRhOiAnICsgKCRkYXRhKSArICcgJztcbiAgICAgICAgICB9XG4gICAgICAgICAgb3V0ICs9ICcgfSAnO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIG91dCArPSAnIHt9ICc7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIF9fZXJyID0gb3V0O1xuICAgICAgICBvdXQgPSAkJG91dFN0YWNrLnBvcCgpO1xuICAgICAgICBpZiAoIWl0LmNvbXBvc2l0ZVJ1bGUgJiYgJGJyZWFrT25FcnJvcikge1xuICAgICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBpZiAqL1xuICAgICAgICAgIGlmIChpdC5hc3luYykge1xuICAgICAgICAgICAgb3V0ICs9ICcgdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcihbJyArIChfX2VycikgKyAnXSk7ICc7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIG91dCArPSAnIHZhbGlkYXRlLmVycm9ycyA9IFsnICsgKF9fZXJyKSArICddOyByZXR1cm4gZmFsc2U7ICc7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIG91dCArPSAnIHZhciBlcnIgPSAnICsgKF9fZXJyKSArICc7ICBpZiAodkVycm9ycyA9PT0gbnVsbCkgdkVycm9ycyA9IFtlcnJdOyBlbHNlIHZFcnJvcnMucHVzaChlcnIpOyBlcnJvcnMrKzsgJztcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgb3V0ICs9ICcgfSAnO1xuICAgIH1cbiAgfVxuICBpZiAoaXQuc2NoZW1hLiRyZWYgJiYgISRyZWZLZXl3b3Jkcykge1xuICAgIG91dCArPSAnICcgKyAoaXQuUlVMRVMuYWxsLiRyZWYuY29kZShpdCwgJyRyZWYnKSkgKyAnICc7XG4gICAgaWYgKCRicmVha09uRXJyb3IpIHtcbiAgICAgIG91dCArPSAnIH0gaWYgKGVycm9ycyA9PT0gJztcbiAgICAgIGlmICgkdG9wKSB7XG4gICAgICAgIG91dCArPSAnMCc7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBvdXQgKz0gJ2VycnNfJyArICgkbHZsKTtcbiAgICAgIH1cbiAgICAgIG91dCArPSAnKSB7ICc7XG4gICAgICAkY2xvc2luZ0JyYWNlczIgKz0gJ30nO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICB2YXIgYXJyMiA9IGl0LlJVTEVTO1xuICAgIGlmIChhcnIyKSB7XG4gICAgICB2YXIgJHJ1bGVzR3JvdXAsIGkyID0gLTEsXG4gICAgICAgIGwyID0gYXJyMi5sZW5ndGggLSAxO1xuICAgICAgd2hpbGUgKGkyIDwgbDIpIHtcbiAgICAgICAgJHJ1bGVzR3JvdXAgPSBhcnIyW2kyICs9IDFdO1xuICAgICAgICBpZiAoJHNob3VsZFVzZUdyb3VwKCRydWxlc0dyb3VwKSkge1xuICAgICAgICAgIGlmICgkcnVsZXNHcm91cC50eXBlKSB7XG4gICAgICAgICAgICBvdXQgKz0gJyBpZiAoJyArIChpdC51dGlsLmNoZWNrRGF0YVR5cGUoJHJ1bGVzR3JvdXAudHlwZSwgJGRhdGEsIGl0Lm9wdHMuc3RyaWN0TnVtYmVycykpICsgJykgeyAnO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoaXQub3B0cy51c2VEZWZhdWx0cykge1xuICAgICAgICAgICAgaWYgKCRydWxlc0dyb3VwLnR5cGUgPT0gJ29iamVjdCcgJiYgaXQuc2NoZW1hLnByb3BlcnRpZXMpIHtcbiAgICAgICAgICAgICAgdmFyICRzY2hlbWEgPSBpdC5zY2hlbWEucHJvcGVydGllcyxcbiAgICAgICAgICAgICAgICAkc2NoZW1hS2V5cyA9IE9iamVjdC5rZXlzKCRzY2hlbWEpO1xuICAgICAgICAgICAgICB2YXIgYXJyMyA9ICRzY2hlbWFLZXlzO1xuICAgICAgICAgICAgICBpZiAoYXJyMykge1xuICAgICAgICAgICAgICAgIHZhciAkcHJvcGVydHlLZXksIGkzID0gLTEsXG4gICAgICAgICAgICAgICAgICBsMyA9IGFycjMubGVuZ3RoIC0gMTtcbiAgICAgICAgICAgICAgICB3aGlsZSAoaTMgPCBsMykge1xuICAgICAgICAgICAgICAgICAgJHByb3BlcnR5S2V5ID0gYXJyM1tpMyArPSAxXTtcbiAgICAgICAgICAgICAgICAgIHZhciAkc2NoID0gJHNjaGVtYVskcHJvcGVydHlLZXldO1xuICAgICAgICAgICAgICAgICAgaWYgKCRzY2guZGVmYXVsdCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciAkcGFzc0RhdGEgPSAkZGF0YSArIGl0LnV0aWwuZ2V0UHJvcGVydHkoJHByb3BlcnR5S2V5KTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGl0LmNvbXBvc2l0ZVJ1bGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICBpZiAoaXQub3B0cy5zdHJpY3REZWZhdWx0cykge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFyICRkZWZhdWx0TXNnID0gJ2RlZmF1bHQgaXMgaWdub3JlZCBmb3I6ICcgKyAkcGFzc0RhdGE7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXQub3B0cy5zdHJpY3REZWZhdWx0cyA9PT0gJ2xvZycpIGl0LmxvZ2dlci53YXJuKCRkZWZhdWx0TXNnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgdGhyb3cgbmV3IEVycm9yKCRkZWZhdWx0TXNnKTtcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgb3V0ICs9ICcgaWYgKCcgKyAoJHBhc3NEYXRhKSArICcgPT09IHVuZGVmaW5lZCAnO1xuICAgICAgICAgICAgICAgICAgICAgIGlmIChpdC5vcHRzLnVzZURlZmF1bHRzID09ICdlbXB0eScpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG91dCArPSAnIHx8ICcgKyAoJHBhc3NEYXRhKSArICcgPT09IG51bGwgfHwgJyArICgkcGFzc0RhdGEpICsgJyA9PT0gXFwnXFwnICc7XG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIG91dCArPSAnICkgJyArICgkcGFzc0RhdGEpICsgJyA9ICc7XG4gICAgICAgICAgICAgICAgICAgICAgaWYgKGl0Lm9wdHMudXNlRGVmYXVsdHMgPT0gJ3NoYXJlZCcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG91dCArPSAnICcgKyAoaXQudXNlRGVmYXVsdCgkc2NoLmRlZmF1bHQpKSArICcgJztcbiAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgb3V0ICs9ICcgJyArIChKU09OLnN0cmluZ2lmeSgkc2NoLmRlZmF1bHQpKSArICcgJztcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgb3V0ICs9ICc7ICc7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSBpZiAoJHJ1bGVzR3JvdXAudHlwZSA9PSAnYXJyYXknICYmIEFycmF5LmlzQXJyYXkoaXQuc2NoZW1hLml0ZW1zKSkge1xuICAgICAgICAgICAgICB2YXIgYXJyNCA9IGl0LnNjaGVtYS5pdGVtcztcbiAgICAgICAgICAgICAgaWYgKGFycjQpIHtcbiAgICAgICAgICAgICAgICB2YXIgJHNjaCwgJGkgPSAtMSxcbiAgICAgICAgICAgICAgICAgIGw0ID0gYXJyNC5sZW5ndGggLSAxO1xuICAgICAgICAgICAgICAgIHdoaWxlICgkaSA8IGw0KSB7XG4gICAgICAgICAgICAgICAgICAkc2NoID0gYXJyNFskaSArPSAxXTtcbiAgICAgICAgICAgICAgICAgIGlmICgkc2NoLmRlZmF1bHQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgJHBhc3NEYXRhID0gJGRhdGEgKyAnWycgKyAkaSArICddJztcbiAgICAgICAgICAgICAgICAgICAgaWYgKGl0LmNvbXBvc2l0ZVJ1bGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICBpZiAoaXQub3B0cy5zdHJpY3REZWZhdWx0cykge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFyICRkZWZhdWx0TXNnID0gJ2RlZmF1bHQgaXMgaWdub3JlZCBmb3I6ICcgKyAkcGFzc0RhdGE7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXQub3B0cy5zdHJpY3REZWZhdWx0cyA9PT0gJ2xvZycpIGl0LmxvZ2dlci53YXJuKCRkZWZhdWx0TXNnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgdGhyb3cgbmV3IEVycm9yKCRkZWZhdWx0TXNnKTtcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgb3V0ICs9ICcgaWYgKCcgKyAoJHBhc3NEYXRhKSArICcgPT09IHVuZGVmaW5lZCAnO1xuICAgICAgICAgICAgICAgICAgICAgIGlmIChpdC5vcHRzLnVzZURlZmF1bHRzID09ICdlbXB0eScpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG91dCArPSAnIHx8ICcgKyAoJHBhc3NEYXRhKSArICcgPT09IG51bGwgfHwgJyArICgkcGFzc0RhdGEpICsgJyA9PT0gXFwnXFwnICc7XG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIG91dCArPSAnICkgJyArICgkcGFzc0RhdGEpICsgJyA9ICc7XG4gICAgICAgICAgICAgICAgICAgICAgaWYgKGl0Lm9wdHMudXNlRGVmYXVsdHMgPT0gJ3NoYXJlZCcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG91dCArPSAnICcgKyAoaXQudXNlRGVmYXVsdCgkc2NoLmRlZmF1bHQpKSArICcgJztcbiAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgb3V0ICs9ICcgJyArIChKU09OLnN0cmluZ2lmeSgkc2NoLmRlZmF1bHQpKSArICcgJztcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgb3V0ICs9ICc7ICc7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgdmFyIGFycjUgPSAkcnVsZXNHcm91cC5ydWxlcztcbiAgICAgICAgICBpZiAoYXJyNSkge1xuICAgICAgICAgICAgdmFyICRydWxlLCBpNSA9IC0xLFxuICAgICAgICAgICAgICBsNSA9IGFycjUubGVuZ3RoIC0gMTtcbiAgICAgICAgICAgIHdoaWxlIChpNSA8IGw1KSB7XG4gICAgICAgICAgICAgICRydWxlID0gYXJyNVtpNSArPSAxXTtcbiAgICAgICAgICAgICAgaWYgKCRzaG91bGRVc2VSdWxlKCRydWxlKSkge1xuICAgICAgICAgICAgICAgIHZhciAkY29kZSA9ICRydWxlLmNvZGUoaXQsICRydWxlLmtleXdvcmQsICRydWxlc0dyb3VwLnR5cGUpO1xuICAgICAgICAgICAgICAgIGlmICgkY29kZSkge1xuICAgICAgICAgICAgICAgICAgb3V0ICs9ICcgJyArICgkY29kZSkgKyAnICc7XG4gICAgICAgICAgICAgICAgICBpZiAoJGJyZWFrT25FcnJvcikge1xuICAgICAgICAgICAgICAgICAgICAkY2xvc2luZ0JyYWNlczEgKz0gJ30nO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoJGJyZWFrT25FcnJvcikge1xuICAgICAgICAgICAgb3V0ICs9ICcgJyArICgkY2xvc2luZ0JyYWNlczEpICsgJyAnO1xuICAgICAgICAgICAgJGNsb3NpbmdCcmFjZXMxID0gJyc7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmICgkcnVsZXNHcm91cC50eXBlKSB7XG4gICAgICAgICAgICBvdXQgKz0gJyB9ICc7XG4gICAgICAgICAgICBpZiAoJHR5cGVTY2hlbWEgJiYgJHR5cGVTY2hlbWEgPT09ICRydWxlc0dyb3VwLnR5cGUgJiYgISRjb2VyY2VUb1R5cGVzKSB7XG4gICAgICAgICAgICAgIG91dCArPSAnIGVsc2UgeyAnO1xuICAgICAgICAgICAgICB2YXIgJHNjaGVtYVBhdGggPSBpdC5zY2hlbWFQYXRoICsgJy50eXBlJyxcbiAgICAgICAgICAgICAgICAkZXJyU2NoZW1hUGF0aCA9IGl0LmVyclNjaGVtYVBhdGggKyAnL3R5cGUnO1xuICAgICAgICAgICAgICB2YXIgJCRvdXRTdGFjayA9ICQkb3V0U3RhY2sgfHwgW107XG4gICAgICAgICAgICAgICQkb3V0U3RhY2sucHVzaChvdXQpO1xuICAgICAgICAgICAgICBvdXQgPSAnJzsgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICAgICAgICAgICAgaWYgKGl0LmNyZWF0ZUVycm9ycyAhPT0gZmFsc2UpIHtcbiAgICAgICAgICAgICAgICBvdXQgKz0gJyB7IGtleXdvcmQ6IFxcJycgKyAoJGVycm9yS2V5d29yZCB8fCAndHlwZScpICsgJ1xcJyAsIGRhdGFQYXRoOiAoZGF0YVBhdGggfHwgXFwnXFwnKSArICcgKyAoaXQuZXJyb3JQYXRoKSArICcgLCBzY2hlbWFQYXRoOiAnICsgKGl0LnV0aWwudG9RdW90ZWRTdHJpbmcoJGVyclNjaGVtYVBhdGgpKSArICcgLCBwYXJhbXM6IHsgdHlwZTogXFwnJztcbiAgICAgICAgICAgICAgICBpZiAoJHR5cGVJc0FycmF5KSB7XG4gICAgICAgICAgICAgICAgICBvdXQgKz0gJycgKyAoJHR5cGVTY2hlbWEuam9pbihcIixcIikpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICBvdXQgKz0gJycgKyAoJHR5cGVTY2hlbWEpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBvdXQgKz0gJ1xcJyB9ICc7XG4gICAgICAgICAgICAgICAgaWYgKGl0Lm9wdHMubWVzc2FnZXMgIT09IGZhbHNlKSB7XG4gICAgICAgICAgICAgICAgICBvdXQgKz0gJyAsIG1lc3NhZ2U6IFxcJ3Nob3VsZCBiZSAnO1xuICAgICAgICAgICAgICAgICAgaWYgKCR0eXBlSXNBcnJheSkge1xuICAgICAgICAgICAgICAgICAgICBvdXQgKz0gJycgKyAoJHR5cGVTY2hlbWEuam9pbihcIixcIikpO1xuICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgb3V0ICs9ICcnICsgKCR0eXBlU2NoZW1hKTtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIG91dCArPSAnXFwnICc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChpdC5vcHRzLnZlcmJvc2UpIHtcbiAgICAgICAgICAgICAgICAgIG91dCArPSAnICwgc2NoZW1hOiB2YWxpZGF0ZS5zY2hlbWEnICsgKCRzY2hlbWFQYXRoKSArICcgLCBwYXJlbnRTY2hlbWE6IHZhbGlkYXRlLnNjaGVtYScgKyAoaXQuc2NoZW1hUGF0aCkgKyAnICwgZGF0YTogJyArICgkZGF0YSkgKyAnICc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIG91dCArPSAnIH0gJztcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBvdXQgKz0gJyB7fSAnO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIHZhciBfX2VyciA9IG91dDtcbiAgICAgICAgICAgICAgb3V0ID0gJCRvdXRTdGFjay5wb3AoKTtcbiAgICAgICAgICAgICAgaWYgKCFpdC5jb21wb3NpdGVSdWxlICYmICRicmVha09uRXJyb3IpIHtcbiAgICAgICAgICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgaWYgKi9cbiAgICAgICAgICAgICAgICBpZiAoaXQuYXN5bmMpIHtcbiAgICAgICAgICAgICAgICAgIG91dCArPSAnIHRocm93IG5ldyBWYWxpZGF0aW9uRXJyb3IoWycgKyAoX19lcnIpICsgJ10pOyAnO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICBvdXQgKz0gJyB2YWxpZGF0ZS5lcnJvcnMgPSBbJyArIChfX2VycikgKyAnXTsgcmV0dXJuIGZhbHNlOyAnO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBvdXQgKz0gJyB2YXIgZXJyID0gJyArIChfX2VycikgKyAnOyAgaWYgKHZFcnJvcnMgPT09IG51bGwpIHZFcnJvcnMgPSBbZXJyXTsgZWxzZSB2RXJyb3JzLnB1c2goZXJyKTsgZXJyb3JzKys7ICc7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgb3V0ICs9ICcgfSAnO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoJGJyZWFrT25FcnJvcikge1xuICAgICAgICAgICAgb3V0ICs9ICcgaWYgKGVycm9ycyA9PT0gJztcbiAgICAgICAgICAgIGlmICgkdG9wKSB7XG4gICAgICAgICAgICAgIG91dCArPSAnMCc7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBvdXQgKz0gJ2VycnNfJyArICgkbHZsKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG91dCArPSAnKSB7ICc7XG4gICAgICAgICAgICAkY2xvc2luZ0JyYWNlczIgKz0gJ30nO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICBpZiAoJGJyZWFrT25FcnJvcikge1xuICAgIG91dCArPSAnICcgKyAoJGNsb3NpbmdCcmFjZXMyKSArICcgJztcbiAgfVxuICBpZiAoJHRvcCkge1xuICAgIGlmICgkYXN5bmMpIHtcbiAgICAgIG91dCArPSAnIGlmIChlcnJvcnMgPT09IDApIHJldHVybiBkYXRhOyAgICAgICAgICAgJztcbiAgICAgIG91dCArPSAnIGVsc2UgdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcih2RXJyb3JzKTsgJztcbiAgICB9IGVsc2Uge1xuICAgICAgb3V0ICs9ICcgdmFsaWRhdGUuZXJyb3JzID0gdkVycm9yczsgJztcbiAgICAgIG91dCArPSAnIHJldHVybiBlcnJvcnMgPT09IDA7ICAgICAgICc7XG4gICAgfVxuICAgIG91dCArPSAnIH07IHJldHVybiB2YWxpZGF0ZTsnO1xuICB9IGVsc2Uge1xuICAgIG91dCArPSAnIHZhciAnICsgKCR2YWxpZCkgKyAnID0gZXJyb3JzID09PSBlcnJzXycgKyAoJGx2bCkgKyAnOyc7XG4gIH1cblxuICBmdW5jdGlvbiAkc2hvdWxkVXNlR3JvdXAoJHJ1bGVzR3JvdXApIHtcbiAgICB2YXIgcnVsZXMgPSAkcnVsZXNHcm91cC5ydWxlcztcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJ1bGVzLmxlbmd0aDsgaSsrKVxuICAgICAgaWYgKCRzaG91bGRVc2VSdWxlKHJ1bGVzW2ldKSkgcmV0dXJuIHRydWU7XG4gIH1cblxuICBmdW5jdGlvbiAkc2hvdWxkVXNlUnVsZSgkcnVsZSkge1xuICAgIHJldHVybiBpdC5zY2hlbWFbJHJ1bGUua2V5d29yZF0gIT09IHVuZGVmaW5lZCB8fCAoJHJ1bGUuaW1wbGVtZW50cyAmJiAkcnVsZUltcGxlbWVudHNTb21lS2V5d29yZCgkcnVsZSkpO1xuICB9XG5cbiAgZnVuY3Rpb24gJHJ1bGVJbXBsZW1lbnRzU29tZUtleXdvcmQoJHJ1bGUpIHtcbiAgICB2YXIgaW1wbCA9ICRydWxlLmltcGxlbWVudHM7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBpbXBsLmxlbmd0aDsgaSsrKVxuICAgICAgaWYgKGl0LnNjaGVtYVtpbXBsW2ldXSAhPT0gdW5kZWZpbmVkKSByZXR1cm4gdHJ1ZTtcbiAgfVxuICByZXR1cm4gb3V0O1xufVxuIiwgIid1c2Ugc3RyaWN0JztcblxudmFyIHJlc29sdmUgPSByZXF1aXJlKCcuL3Jlc29sdmUnKVxuICAsIHV0aWwgPSByZXF1aXJlKCcuL3V0aWwnKVxuICAsIGVycm9yQ2xhc3NlcyA9IHJlcXVpcmUoJy4vZXJyb3JfY2xhc3NlcycpXG4gICwgc3RhYmxlU3RyaW5naWZ5ID0gcmVxdWlyZSgnZmFzdC1qc29uLXN0YWJsZS1zdHJpbmdpZnknKTtcblxudmFyIHZhbGlkYXRlR2VuZXJhdG9yID0gcmVxdWlyZSgnLi4vZG90anMvdmFsaWRhdGUnKTtcblxuLyoqXG4gKiBGdW5jdGlvbnMgYmVsb3cgYXJlIHVzZWQgaW5zaWRlIGNvbXBpbGVkIHZhbGlkYXRpb25zIGZ1bmN0aW9uXG4gKi9cblxudmFyIHVjczJsZW5ndGggPSB1dGlsLnVjczJsZW5ndGg7XG52YXIgZXF1YWwgPSByZXF1aXJlKCdmYXN0LWRlZXAtZXF1YWwnKTtcblxuLy8gdGhpcyBlcnJvciBpcyB0aHJvd24gYnkgYXN5bmMgc2NoZW1hcyB0byByZXR1cm4gdmFsaWRhdGlvbiBlcnJvcnMgdmlhIGV4Y2VwdGlvblxudmFyIFZhbGlkYXRpb25FcnJvciA9IGVycm9yQ2xhc3Nlcy5WYWxpZGF0aW9uO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGNvbXBpbGU7XG5cblxuLyoqXG4gKiBDb21waWxlcyBzY2hlbWEgdG8gdmFsaWRhdGlvbiBmdW5jdGlvblxuICogQHRoaXMgICBBanZcbiAqIEBwYXJhbSAge09iamVjdH0gc2NoZW1hIHNjaGVtYSBvYmplY3RcbiAqIEBwYXJhbSAge09iamVjdH0gcm9vdCBvYmplY3Qgd2l0aCBpbmZvcm1hdGlvbiBhYm91dCB0aGUgcm9vdCBzY2hlbWEgZm9yIHRoaXMgc2NoZW1hXG4gKiBAcGFyYW0gIHtPYmplY3R9IGxvY2FsUmVmcyB0aGUgaGFzaCBvZiBsb2NhbCByZWZlcmVuY2VzIGluc2lkZSB0aGUgc2NoZW1hIChjcmVhdGVkIGJ5IHJlc29sdmUuaWQpLCB1c2VkIGZvciBpbmxpbmUgcmVzb2x1dGlvblxuICogQHBhcmFtICB7U3RyaW5nfSBiYXNlSWQgYmFzZSBJRCBmb3IgSURzIGluIHRoZSBzY2hlbWFcbiAqIEByZXR1cm4ge0Z1bmN0aW9ufSB2YWxpZGF0aW9uIGZ1bmN0aW9uXG4gKi9cbmZ1bmN0aW9uIGNvbXBpbGUoc2NoZW1hLCByb290LCBsb2NhbFJlZnMsIGJhc2VJZCkge1xuICAvKiBqc2hpbnQgdmFsaWR0aGlzOiB0cnVlLCBldmlsOiB0cnVlICovXG4gIC8qIGVzbGludCBuby1zaGFkb3c6IDAgKi9cbiAgdmFyIHNlbGYgPSB0aGlzXG4gICAgLCBvcHRzID0gdGhpcy5fb3B0c1xuICAgICwgcmVmVmFsID0gWyB1bmRlZmluZWQgXVxuICAgICwgcmVmcyA9IHt9XG4gICAgLCBwYXR0ZXJucyA9IFtdXG4gICAgLCBwYXR0ZXJuc0hhc2ggPSB7fVxuICAgICwgZGVmYXVsdHMgPSBbXVxuICAgICwgZGVmYXVsdHNIYXNoID0ge31cbiAgICAsIGN1c3RvbVJ1bGVzID0gW107XG5cbiAgcm9vdCA9IHJvb3QgfHwgeyBzY2hlbWE6IHNjaGVtYSwgcmVmVmFsOiByZWZWYWwsIHJlZnM6IHJlZnMgfTtcblxuICB2YXIgYyA9IGNoZWNrQ29tcGlsaW5nLmNhbGwodGhpcywgc2NoZW1hLCByb290LCBiYXNlSWQpO1xuICB2YXIgY29tcGlsYXRpb24gPSB0aGlzLl9jb21waWxhdGlvbnNbYy5pbmRleF07XG4gIGlmIChjLmNvbXBpbGluZykgcmV0dXJuIChjb21waWxhdGlvbi5jYWxsVmFsaWRhdGUgPSBjYWxsVmFsaWRhdGUpO1xuXG4gIHZhciBmb3JtYXRzID0gdGhpcy5fZm9ybWF0cztcbiAgdmFyIFJVTEVTID0gdGhpcy5SVUxFUztcblxuICB0cnkge1xuICAgIHZhciB2ID0gbG9jYWxDb21waWxlKHNjaGVtYSwgcm9vdCwgbG9jYWxSZWZzLCBiYXNlSWQpO1xuICAgIGNvbXBpbGF0aW9uLnZhbGlkYXRlID0gdjtcbiAgICB2YXIgY3YgPSBjb21waWxhdGlvbi5jYWxsVmFsaWRhdGU7XG4gICAgaWYgKGN2KSB7XG4gICAgICBjdi5zY2hlbWEgPSB2LnNjaGVtYTtcbiAgICAgIGN2LmVycm9ycyA9IG51bGw7XG4gICAgICBjdi5yZWZzID0gdi5yZWZzO1xuICAgICAgY3YucmVmVmFsID0gdi5yZWZWYWw7XG4gICAgICBjdi5yb290ID0gdi5yb290O1xuICAgICAgY3YuJGFzeW5jID0gdi4kYXN5bmM7XG4gICAgICBpZiAob3B0cy5zb3VyY2VDb2RlKSBjdi5zb3VyY2UgPSB2LnNvdXJjZTtcbiAgICB9XG4gICAgcmV0dXJuIHY7XG4gIH0gZmluYWxseSB7XG4gICAgZW5kQ29tcGlsaW5nLmNhbGwodGhpcywgc2NoZW1hLCByb290LCBiYXNlSWQpO1xuICB9XG5cbiAgLyogQHRoaXMgICB7Kn0gLSBjdXN0b20gY29udGV4dCwgc2VlIHBhc3NDb250ZXh0IG9wdGlvbiAqL1xuICBmdW5jdGlvbiBjYWxsVmFsaWRhdGUoKSB7XG4gICAgLyoganNoaW50IHZhbGlkdGhpczogdHJ1ZSAqL1xuICAgIHZhciB2YWxpZGF0ZSA9IGNvbXBpbGF0aW9uLnZhbGlkYXRlO1xuICAgIHZhciByZXN1bHQgPSB2YWxpZGF0ZS5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICAgIGNhbGxWYWxpZGF0ZS5lcnJvcnMgPSB2YWxpZGF0ZS5lcnJvcnM7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIGZ1bmN0aW9uIGxvY2FsQ29tcGlsZShfc2NoZW1hLCBfcm9vdCwgbG9jYWxSZWZzLCBiYXNlSWQpIHtcbiAgICB2YXIgaXNSb290ID0gIV9yb290IHx8IChfcm9vdCAmJiBfcm9vdC5zY2hlbWEgPT0gX3NjaGVtYSk7XG4gICAgaWYgKF9yb290LnNjaGVtYSAhPSByb290LnNjaGVtYSlcbiAgICAgIHJldHVybiBjb21waWxlLmNhbGwoc2VsZiwgX3NjaGVtYSwgX3Jvb3QsIGxvY2FsUmVmcywgYmFzZUlkKTtcblxuICAgIHZhciAkYXN5bmMgPSBfc2NoZW1hLiRhc3luYyA9PT0gdHJ1ZTtcblxuICAgIHZhciBzb3VyY2VDb2RlID0gdmFsaWRhdGVHZW5lcmF0b3Ioe1xuICAgICAgaXNUb3A6IHRydWUsXG4gICAgICBzY2hlbWE6IF9zY2hlbWEsXG4gICAgICBpc1Jvb3Q6IGlzUm9vdCxcbiAgICAgIGJhc2VJZDogYmFzZUlkLFxuICAgICAgcm9vdDogX3Jvb3QsXG4gICAgICBzY2hlbWFQYXRoOiAnJyxcbiAgICAgIGVyclNjaGVtYVBhdGg6ICcjJyxcbiAgICAgIGVycm9yUGF0aDogJ1wiXCInLFxuICAgICAgTWlzc2luZ1JlZkVycm9yOiBlcnJvckNsYXNzZXMuTWlzc2luZ1JlZixcbiAgICAgIFJVTEVTOiBSVUxFUyxcbiAgICAgIHZhbGlkYXRlOiB2YWxpZGF0ZUdlbmVyYXRvcixcbiAgICAgIHV0aWw6IHV0aWwsXG4gICAgICByZXNvbHZlOiByZXNvbHZlLFxuICAgICAgcmVzb2x2ZVJlZjogcmVzb2x2ZVJlZixcbiAgICAgIHVzZVBhdHRlcm46IHVzZVBhdHRlcm4sXG4gICAgICB1c2VEZWZhdWx0OiB1c2VEZWZhdWx0LFxuICAgICAgdXNlQ3VzdG9tUnVsZTogdXNlQ3VzdG9tUnVsZSxcbiAgICAgIG9wdHM6IG9wdHMsXG4gICAgICBmb3JtYXRzOiBmb3JtYXRzLFxuICAgICAgbG9nZ2VyOiBzZWxmLmxvZ2dlcixcbiAgICAgIHNlbGY6IHNlbGZcbiAgICB9KTtcblxuICAgIHNvdXJjZUNvZGUgPSB2YXJzKHJlZlZhbCwgcmVmVmFsQ29kZSkgKyB2YXJzKHBhdHRlcm5zLCBwYXR0ZXJuQ29kZSlcbiAgICAgICAgICAgICAgICAgICArIHZhcnMoZGVmYXVsdHMsIGRlZmF1bHRDb2RlKSArIHZhcnMoY3VzdG9tUnVsZXMsIGN1c3RvbVJ1bGVDb2RlKVxuICAgICAgICAgICAgICAgICAgICsgc291cmNlQ29kZTtcblxuICAgIGlmIChvcHRzLnByb2Nlc3NDb2RlKSBzb3VyY2VDb2RlID0gb3B0cy5wcm9jZXNzQ29kZShzb3VyY2VDb2RlLCBfc2NoZW1hKTtcbiAgICAvLyBjb25zb2xlLmxvZygnXFxuXFxuXFxuICoqKiBcXG4nLCBKU09OLnN0cmluZ2lmeShzb3VyY2VDb2RlKSk7XG4gICAgdmFyIHZhbGlkYXRlO1xuICAgIHRyeSB7XG4gICAgICB2YXIgbWFrZVZhbGlkYXRlID0gbmV3IEZ1bmN0aW9uKFxuICAgICAgICAnc2VsZicsXG4gICAgICAgICdSVUxFUycsXG4gICAgICAgICdmb3JtYXRzJyxcbiAgICAgICAgJ3Jvb3QnLFxuICAgICAgICAncmVmVmFsJyxcbiAgICAgICAgJ2RlZmF1bHRzJyxcbiAgICAgICAgJ2N1c3RvbVJ1bGVzJyxcbiAgICAgICAgJ2VxdWFsJyxcbiAgICAgICAgJ3VjczJsZW5ndGgnLFxuICAgICAgICAnVmFsaWRhdGlvbkVycm9yJyxcbiAgICAgICAgc291cmNlQ29kZVxuICAgICAgKTtcblxuICAgICAgdmFsaWRhdGUgPSBtYWtlVmFsaWRhdGUoXG4gICAgICAgIHNlbGYsXG4gICAgICAgIFJVTEVTLFxuICAgICAgICBmb3JtYXRzLFxuICAgICAgICByb290LFxuICAgICAgICByZWZWYWwsXG4gICAgICAgIGRlZmF1bHRzLFxuICAgICAgICBjdXN0b21SdWxlcyxcbiAgICAgICAgZXF1YWwsXG4gICAgICAgIHVjczJsZW5ndGgsXG4gICAgICAgIFZhbGlkYXRpb25FcnJvclxuICAgICAgKTtcblxuICAgICAgcmVmVmFsWzBdID0gdmFsaWRhdGU7XG4gICAgfSBjYXRjaChlKSB7XG4gICAgICBzZWxmLmxvZ2dlci5lcnJvcignRXJyb3IgY29tcGlsaW5nIHNjaGVtYSwgZnVuY3Rpb24gY29kZTonLCBzb3VyY2VDb2RlKTtcbiAgICAgIHRocm93IGU7XG4gICAgfVxuXG4gICAgdmFsaWRhdGUuc2NoZW1hID0gX3NjaGVtYTtcbiAgICB2YWxpZGF0ZS5lcnJvcnMgPSBudWxsO1xuICAgIHZhbGlkYXRlLnJlZnMgPSByZWZzO1xuICAgIHZhbGlkYXRlLnJlZlZhbCA9IHJlZlZhbDtcbiAgICB2YWxpZGF0ZS5yb290ID0gaXNSb290ID8gdmFsaWRhdGUgOiBfcm9vdDtcbiAgICBpZiAoJGFzeW5jKSB2YWxpZGF0ZS4kYXN5bmMgPSB0cnVlO1xuICAgIGlmIChvcHRzLnNvdXJjZUNvZGUgPT09IHRydWUpIHtcbiAgICAgIHZhbGlkYXRlLnNvdXJjZSA9IHtcbiAgICAgICAgY29kZTogc291cmNlQ29kZSxcbiAgICAgICAgcGF0dGVybnM6IHBhdHRlcm5zLFxuICAgICAgICBkZWZhdWx0czogZGVmYXVsdHNcbiAgICAgIH07XG4gICAgfVxuXG4gICAgcmV0dXJuIHZhbGlkYXRlO1xuICB9XG5cbiAgZnVuY3Rpb24gcmVzb2x2ZVJlZihiYXNlSWQsIHJlZiwgaXNSb290KSB7XG4gICAgcmVmID0gcmVzb2x2ZS51cmwoYmFzZUlkLCByZWYpO1xuICAgIHZhciByZWZJbmRleCA9IHJlZnNbcmVmXTtcbiAgICB2YXIgX3JlZlZhbCwgcmVmQ29kZTtcbiAgICBpZiAocmVmSW5kZXggIT09IHVuZGVmaW5lZCkge1xuICAgICAgX3JlZlZhbCA9IHJlZlZhbFtyZWZJbmRleF07XG4gICAgICByZWZDb2RlID0gJ3JlZlZhbFsnICsgcmVmSW5kZXggKyAnXSc7XG4gICAgICByZXR1cm4gcmVzb2x2ZWRSZWYoX3JlZlZhbCwgcmVmQ29kZSk7XG4gICAgfVxuICAgIGlmICghaXNSb290ICYmIHJvb3QucmVmcykge1xuICAgICAgdmFyIHJvb3RSZWZJZCA9IHJvb3QucmVmc1tyZWZdO1xuICAgICAgaWYgKHJvb3RSZWZJZCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIF9yZWZWYWwgPSByb290LnJlZlZhbFtyb290UmVmSWRdO1xuICAgICAgICByZWZDb2RlID0gYWRkTG9jYWxSZWYocmVmLCBfcmVmVmFsKTtcbiAgICAgICAgcmV0dXJuIHJlc29sdmVkUmVmKF9yZWZWYWwsIHJlZkNvZGUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJlZkNvZGUgPSBhZGRMb2NhbFJlZihyZWYpO1xuICAgIHZhciB2ID0gcmVzb2x2ZS5jYWxsKHNlbGYsIGxvY2FsQ29tcGlsZSwgcm9vdCwgcmVmKTtcbiAgICBpZiAodiA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB2YXIgbG9jYWxTY2hlbWEgPSBsb2NhbFJlZnMgJiYgbG9jYWxSZWZzW3JlZl07XG4gICAgICBpZiAobG9jYWxTY2hlbWEpIHtcbiAgICAgICAgdiA9IHJlc29sdmUuaW5saW5lUmVmKGxvY2FsU2NoZW1hLCBvcHRzLmlubGluZVJlZnMpXG4gICAgICAgICAgICA/IGxvY2FsU2NoZW1hXG4gICAgICAgICAgICA6IGNvbXBpbGUuY2FsbChzZWxmLCBsb2NhbFNjaGVtYSwgcm9vdCwgbG9jYWxSZWZzLCBiYXNlSWQpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh2ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHJlbW92ZUxvY2FsUmVmKHJlZik7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJlcGxhY2VMb2NhbFJlZihyZWYsIHYpO1xuICAgICAgcmV0dXJuIHJlc29sdmVkUmVmKHYsIHJlZkNvZGUpO1xuICAgIH1cbiAgfVxuXG4gIGZ1bmN0aW9uIGFkZExvY2FsUmVmKHJlZiwgdikge1xuICAgIHZhciByZWZJZCA9IHJlZlZhbC5sZW5ndGg7XG4gICAgcmVmVmFsW3JlZklkXSA9IHY7XG4gICAgcmVmc1tyZWZdID0gcmVmSWQ7XG4gICAgcmV0dXJuICdyZWZWYWwnICsgcmVmSWQ7XG4gIH1cblxuICBmdW5jdGlvbiByZW1vdmVMb2NhbFJlZihyZWYpIHtcbiAgICBkZWxldGUgcmVmc1tyZWZdO1xuICB9XG5cbiAgZnVuY3Rpb24gcmVwbGFjZUxvY2FsUmVmKHJlZiwgdikge1xuICAgIHZhciByZWZJZCA9IHJlZnNbcmVmXTtcbiAgICByZWZWYWxbcmVmSWRdID0gdjtcbiAgfVxuXG4gIGZ1bmN0aW9uIHJlc29sdmVkUmVmKHJlZlZhbCwgY29kZSkge1xuICAgIHJldHVybiB0eXBlb2YgcmVmVmFsID09ICdvYmplY3QnIHx8IHR5cGVvZiByZWZWYWwgPT0gJ2Jvb2xlYW4nXG4gICAgICAgICAgICA/IHsgY29kZTogY29kZSwgc2NoZW1hOiByZWZWYWwsIGlubGluZTogdHJ1ZSB9XG4gICAgICAgICAgICA6IHsgY29kZTogY29kZSwgJGFzeW5jOiByZWZWYWwgJiYgISFyZWZWYWwuJGFzeW5jIH07XG4gIH1cblxuICBmdW5jdGlvbiB1c2VQYXR0ZXJuKHJlZ2V4U3RyKSB7XG4gICAgdmFyIGluZGV4ID0gcGF0dGVybnNIYXNoW3JlZ2V4U3RyXTtcbiAgICBpZiAoaW5kZXggPT09IHVuZGVmaW5lZCkge1xuICAgICAgaW5kZXggPSBwYXR0ZXJuc0hhc2hbcmVnZXhTdHJdID0gcGF0dGVybnMubGVuZ3RoO1xuICAgICAgcGF0dGVybnNbaW5kZXhdID0gcmVnZXhTdHI7XG4gICAgfVxuICAgIHJldHVybiAncGF0dGVybicgKyBpbmRleDtcbiAgfVxuXG4gIGZ1bmN0aW9uIHVzZURlZmF1bHQodmFsdWUpIHtcbiAgICBzd2l0Y2ggKHR5cGVvZiB2YWx1ZSkge1xuICAgICAgY2FzZSAnYm9vbGVhbic6XG4gICAgICBjYXNlICdudW1iZXInOlxuICAgICAgICByZXR1cm4gJycgKyB2YWx1ZTtcbiAgICAgIGNhc2UgJ3N0cmluZyc6XG4gICAgICAgIHJldHVybiB1dGlsLnRvUXVvdGVkU3RyaW5nKHZhbHVlKTtcbiAgICAgIGNhc2UgJ29iamVjdCc6XG4gICAgICAgIGlmICh2YWx1ZSA9PT0gbnVsbCkgcmV0dXJuICdudWxsJztcbiAgICAgICAgdmFyIHZhbHVlU3RyID0gc3RhYmxlU3RyaW5naWZ5KHZhbHVlKTtcbiAgICAgICAgdmFyIGluZGV4ID0gZGVmYXVsdHNIYXNoW3ZhbHVlU3RyXTtcbiAgICAgICAgaWYgKGluZGV4ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBpbmRleCA9IGRlZmF1bHRzSGFzaFt2YWx1ZVN0cl0gPSBkZWZhdWx0cy5sZW5ndGg7XG4gICAgICAgICAgZGVmYXVsdHNbaW5kZXhdID0gdmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuICdkZWZhdWx0JyArIGluZGV4O1xuICAgIH1cbiAgfVxuXG4gIGZ1bmN0aW9uIHVzZUN1c3RvbVJ1bGUocnVsZSwgc2NoZW1hLCBwYXJlbnRTY2hlbWEsIGl0KSB7XG4gICAgaWYgKHNlbGYuX29wdHMudmFsaWRhdGVTY2hlbWEgIT09IGZhbHNlKSB7XG4gICAgICB2YXIgZGVwcyA9IHJ1bGUuZGVmaW5pdGlvbi5kZXBlbmRlbmNpZXM7XG4gICAgICBpZiAoZGVwcyAmJiAhZGVwcy5ldmVyeShmdW5jdGlvbihrZXl3b3JkKSB7XG4gICAgICAgIHJldHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocGFyZW50U2NoZW1hLCBrZXl3b3JkKTtcbiAgICAgIH0pKVxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ3BhcmVudCBzY2hlbWEgbXVzdCBoYXZlIGFsbCByZXF1aXJlZCBrZXl3b3JkczogJyArIGRlcHMuam9pbignLCcpKTtcblxuICAgICAgdmFyIHZhbGlkYXRlU2NoZW1hID0gcnVsZS5kZWZpbml0aW9uLnZhbGlkYXRlU2NoZW1hO1xuICAgICAgaWYgKHZhbGlkYXRlU2NoZW1hKSB7XG4gICAgICAgIHZhciB2YWxpZCA9IHZhbGlkYXRlU2NoZW1hKHNjaGVtYSk7XG4gICAgICAgIGlmICghdmFsaWQpIHtcbiAgICAgICAgICB2YXIgbWVzc2FnZSA9ICdrZXl3b3JkIHNjaGVtYSBpcyBpbnZhbGlkOiAnICsgc2VsZi5lcnJvcnNUZXh0KHZhbGlkYXRlU2NoZW1hLmVycm9ycyk7XG4gICAgICAgICAgaWYgKHNlbGYuX29wdHMudmFsaWRhdGVTY2hlbWEgPT0gJ2xvZycpIHNlbGYubG9nZ2VyLmVycm9yKG1lc3NhZ2UpO1xuICAgICAgICAgIGVsc2UgdGhyb3cgbmV3IEVycm9yKG1lc3NhZ2UpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgdmFyIGNvbXBpbGUgPSBydWxlLmRlZmluaXRpb24uY29tcGlsZVxuICAgICAgLCBpbmxpbmUgPSBydWxlLmRlZmluaXRpb24uaW5saW5lXG4gICAgICAsIG1hY3JvID0gcnVsZS5kZWZpbml0aW9uLm1hY3JvO1xuXG4gICAgdmFyIHZhbGlkYXRlO1xuICAgIGlmIChjb21waWxlKSB7XG4gICAgICB2YWxpZGF0ZSA9IGNvbXBpbGUuY2FsbChzZWxmLCBzY2hlbWEsIHBhcmVudFNjaGVtYSwgaXQpO1xuICAgIH0gZWxzZSBpZiAobWFjcm8pIHtcbiAgICAgIHZhbGlkYXRlID0gbWFjcm8uY2FsbChzZWxmLCBzY2hlbWEsIHBhcmVudFNjaGVtYSwgaXQpO1xuICAgICAgaWYgKG9wdHMudmFsaWRhdGVTY2hlbWEgIT09IGZhbHNlKSBzZWxmLnZhbGlkYXRlU2NoZW1hKHZhbGlkYXRlLCB0cnVlKTtcbiAgICB9IGVsc2UgaWYgKGlubGluZSkge1xuICAgICAgdmFsaWRhdGUgPSBpbmxpbmUuY2FsbChzZWxmLCBpdCwgcnVsZS5rZXl3b3JkLCBzY2hlbWEsIHBhcmVudFNjaGVtYSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhbGlkYXRlID0gcnVsZS5kZWZpbml0aW9uLnZhbGlkYXRlO1xuICAgICAgaWYgKCF2YWxpZGF0ZSkgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh2YWxpZGF0ZSA9PT0gdW5kZWZpbmVkKVxuICAgICAgdGhyb3cgbmV3IEVycm9yKCdjdXN0b20ga2V5d29yZCBcIicgKyBydWxlLmtleXdvcmQgKyAnXCJmYWlsZWQgdG8gY29tcGlsZScpO1xuXG4gICAgdmFyIGluZGV4ID0gY3VzdG9tUnVsZXMubGVuZ3RoO1xuICAgIGN1c3RvbVJ1bGVzW2luZGV4XSA9IHZhbGlkYXRlO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGNvZGU6ICdjdXN0b21SdWxlJyArIGluZGV4LFxuICAgICAgdmFsaWRhdGU6IHZhbGlkYXRlXG4gICAgfTtcbiAgfVxufVxuXG5cbi8qKlxuICogQ2hlY2tzIGlmIHRoZSBzY2hlbWEgaXMgY3VycmVudGx5IGNvbXBpbGVkXG4gKiBAdGhpcyAgIEFqdlxuICogQHBhcmFtICB7T2JqZWN0fSBzY2hlbWEgc2NoZW1hIHRvIGNvbXBpbGVcbiAqIEBwYXJhbSAge09iamVjdH0gcm9vdCByb290IG9iamVjdFxuICogQHBhcmFtICB7U3RyaW5nfSBiYXNlSWQgYmFzZSBzY2hlbWEgSURcbiAqIEByZXR1cm4ge09iamVjdH0gb2JqZWN0IHdpdGggcHJvcGVydGllcyBcImluZGV4XCIgKGNvbXBpbGF0aW9uIGluZGV4KSBhbmQgXCJjb21waWxpbmdcIiAoYm9vbGVhbilcbiAqL1xuZnVuY3Rpb24gY2hlY2tDb21waWxpbmcoc2NoZW1hLCByb290LCBiYXNlSWQpIHtcbiAgLyoganNoaW50IHZhbGlkdGhpczogdHJ1ZSAqL1xuICB2YXIgaW5kZXggPSBjb21wSW5kZXguY2FsbCh0aGlzLCBzY2hlbWEsIHJvb3QsIGJhc2VJZCk7XG4gIGlmIChpbmRleCA+PSAwKSByZXR1cm4geyBpbmRleDogaW5kZXgsIGNvbXBpbGluZzogdHJ1ZSB9O1xuICBpbmRleCA9IHRoaXMuX2NvbXBpbGF0aW9ucy5sZW5ndGg7XG4gIHRoaXMuX2NvbXBpbGF0aW9uc1tpbmRleF0gPSB7XG4gICAgc2NoZW1hOiBzY2hlbWEsXG4gICAgcm9vdDogcm9vdCxcbiAgICBiYXNlSWQ6IGJhc2VJZFxuICB9O1xuICByZXR1cm4geyBpbmRleDogaW5kZXgsIGNvbXBpbGluZzogZmFsc2UgfTtcbn1cblxuXG4vKipcbiAqIFJlbW92ZXMgdGhlIHNjaGVtYSBmcm9tIHRoZSBjdXJyZW50bHkgY29tcGlsZWQgbGlzdFxuICogQHRoaXMgICBBanZcbiAqIEBwYXJhbSAge09iamVjdH0gc2NoZW1hIHNjaGVtYSB0byBjb21waWxlXG4gKiBAcGFyYW0gIHtPYmplY3R9IHJvb3Qgcm9vdCBvYmplY3RcbiAqIEBwYXJhbSAge1N0cmluZ30gYmFzZUlkIGJhc2Ugc2NoZW1hIElEXG4gKi9cbmZ1bmN0aW9uIGVuZENvbXBpbGluZyhzY2hlbWEsIHJvb3QsIGJhc2VJZCkge1xuICAvKiBqc2hpbnQgdmFsaWR0aGlzOiB0cnVlICovXG4gIHZhciBpID0gY29tcEluZGV4LmNhbGwodGhpcywgc2NoZW1hLCByb290LCBiYXNlSWQpO1xuICBpZiAoaSA+PSAwKSB0aGlzLl9jb21waWxhdGlvbnMuc3BsaWNlKGksIDEpO1xufVxuXG5cbi8qKlxuICogSW5kZXggb2Ygc2NoZW1hIGNvbXBpbGF0aW9uIGluIHRoZSBjdXJyZW50bHkgY29tcGlsZWQgbGlzdFxuICogQHRoaXMgICBBanZcbiAqIEBwYXJhbSAge09iamVjdH0gc2NoZW1hIHNjaGVtYSB0byBjb21waWxlXG4gKiBAcGFyYW0gIHtPYmplY3R9IHJvb3Qgcm9vdCBvYmplY3RcbiAqIEBwYXJhbSAge1N0cmluZ30gYmFzZUlkIGJhc2Ugc2NoZW1hIElEXG4gKiBAcmV0dXJuIHtJbnRlZ2VyfSBjb21waWxhdGlvbiBpbmRleFxuICovXG5mdW5jdGlvbiBjb21wSW5kZXgoc2NoZW1hLCByb290LCBiYXNlSWQpIHtcbiAgLyoganNoaW50IHZhbGlkdGhpczogdHJ1ZSAqL1xuICBmb3IgKHZhciBpPTA7IGk8dGhpcy5fY29tcGlsYXRpb25zLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIGMgPSB0aGlzLl9jb21waWxhdGlvbnNbaV07XG4gICAgaWYgKGMuc2NoZW1hID09IHNjaGVtYSAmJiBjLnJvb3QgPT0gcm9vdCAmJiBjLmJhc2VJZCA9PSBiYXNlSWQpIHJldHVybiBpO1xuICB9XG4gIHJldHVybiAtMTtcbn1cblxuXG5mdW5jdGlvbiBwYXR0ZXJuQ29kZShpLCBwYXR0ZXJucykge1xuICByZXR1cm4gJ3ZhciBwYXR0ZXJuJyArIGkgKyAnID0gbmV3IFJlZ0V4cCgnICsgdXRpbC50b1F1b3RlZFN0cmluZyhwYXR0ZXJuc1tpXSkgKyAnKTsnO1xufVxuXG5cbmZ1bmN0aW9uIGRlZmF1bHRDb2RlKGkpIHtcbiAgcmV0dXJuICd2YXIgZGVmYXVsdCcgKyBpICsgJyA9IGRlZmF1bHRzWycgKyBpICsgJ107Jztcbn1cblxuXG5mdW5jdGlvbiByZWZWYWxDb2RlKGksIHJlZlZhbCkge1xuICByZXR1cm4gcmVmVmFsW2ldID09PSB1bmRlZmluZWQgPyAnJyA6ICd2YXIgcmVmVmFsJyArIGkgKyAnID0gcmVmVmFsWycgKyBpICsgJ107Jztcbn1cblxuXG5mdW5jdGlvbiBjdXN0b21SdWxlQ29kZShpKSB7XG4gIHJldHVybiAndmFyIGN1c3RvbVJ1bGUnICsgaSArICcgPSBjdXN0b21SdWxlc1snICsgaSArICddOyc7XG59XG5cblxuZnVuY3Rpb24gdmFycyhhcnIsIHN0YXRlbWVudCkge1xuICBpZiAoIWFyci5sZW5ndGgpIHJldHVybiAnJztcbiAgdmFyIGNvZGUgPSAnJztcbiAgZm9yICh2YXIgaT0wOyBpPGFyci5sZW5ndGg7IGkrKylcbiAgICBjb2RlICs9IHN0YXRlbWVudChpLCBhcnIpO1xuICByZXR1cm4gY29kZTtcbn1cbiIsICIndXNlIHN0cmljdCc7XG5cblxudmFyIENhY2hlID0gbW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBDYWNoZSgpIHtcbiAgdGhpcy5fY2FjaGUgPSB7fTtcbn07XG5cblxuQ2FjaGUucHJvdG90eXBlLnB1dCA9IGZ1bmN0aW9uIENhY2hlX3B1dChrZXksIHZhbHVlKSB7XG4gIHRoaXMuX2NhY2hlW2tleV0gPSB2YWx1ZTtcbn07XG5cblxuQ2FjaGUucHJvdG90eXBlLmdldCA9IGZ1bmN0aW9uIENhY2hlX2dldChrZXkpIHtcbiAgcmV0dXJuIHRoaXMuX2NhY2hlW2tleV07XG59O1xuXG5cbkNhY2hlLnByb3RvdHlwZS5kZWwgPSBmdW5jdGlvbiBDYWNoZV9kZWwoa2V5KSB7XG4gIGRlbGV0ZSB0aGlzLl9jYWNoZVtrZXldO1xufTtcblxuXG5DYWNoZS5wcm90b3R5cGUuY2xlYXIgPSBmdW5jdGlvbiBDYWNoZV9jbGVhcigpIHtcbiAgdGhpcy5fY2FjaGUgPSB7fTtcbn07XG4iLCAiJ3VzZSBzdHJpY3QnO1xuXG52YXIgdXRpbCA9IHJlcXVpcmUoJy4vdXRpbCcpO1xuXG52YXIgREFURSA9IC9eKFxcZFxcZFxcZFxcZCktKFxcZFxcZCktKFxcZFxcZCkkLztcbnZhciBEQVlTID0gWzAsMzEsMjgsMzEsMzAsMzEsMzAsMzEsMzEsMzAsMzEsMzAsMzFdO1xudmFyIFRJTUUgPSAvXihcXGRcXGQpOihcXGRcXGQpOihcXGRcXGQpKFxcLlxcZCspPyh6fFsrLV1cXGRcXGQoPzo6P1xcZFxcZCk/KT8kL2k7XG52YXIgSE9TVE5BTUUgPSAvXig/PS57MSwyNTN9XFwuPyQpW2EtejAtOV0oPzpbYS16MC05LV17MCw2MX1bYS16MC05XSk/KD86XFwuW2EtejAtOV0oPzpbLTAtOWEtel17MCw2MX1bMC05YS16XSk/KSpcXC4/JC9pO1xudmFyIFVSSSA9IC9eKD86W2Etel1bYS16MC05K1xcLS5dKjopKD86XFwvP1xcLyg/Oig/OlthLXowLTlcXC0uX34hJCYnKCkqKyw7PTpdfCVbMC05YS1mXXsyfSkqQCk/KD86XFxbKD86KD86KD86KD86WzAtOWEtZl17MSw0fTopezZ9fDo6KD86WzAtOWEtZl17MSw0fTopezV9fCg/OlswLTlhLWZdezEsNH0pPzo6KD86WzAtOWEtZl17MSw0fTopezR9fCg/Oig/OlswLTlhLWZdezEsNH06KXswLDF9WzAtOWEtZl17MSw0fSk/OjooPzpbMC05YS1mXXsxLDR9Oil7M318KD86KD86WzAtOWEtZl17MSw0fTopezAsMn1bMC05YS1mXXsxLDR9KT86Oig/OlswLTlhLWZdezEsNH06KXsyfXwoPzooPzpbMC05YS1mXXsxLDR9Oil7MCwzfVswLTlhLWZdezEsNH0pPzo6WzAtOWEtZl17MSw0fTp8KD86KD86WzAtOWEtZl17MSw0fTopezAsNH1bMC05YS1mXXsxLDR9KT86OikoPzpbMC05YS1mXXsxLDR9OlswLTlhLWZdezEsNH18KD86KD86MjVbMC01XXwyWzAtNF1cXGR8WzAxXT9cXGRcXGQ/KVxcLil7M30oPzoyNVswLTVdfDJbMC00XVxcZHxbMDFdP1xcZFxcZD8pKXwoPzooPzpbMC05YS1mXXsxLDR9Oil7MCw1fVswLTlhLWZdezEsNH0pPzo6WzAtOWEtZl17MSw0fXwoPzooPzpbMC05YS1mXXsxLDR9Oil7MCw2fVswLTlhLWZdezEsNH0pPzo6KXxbVnZdWzAtOWEtZl0rXFwuW2EtejAtOVxcLS5ffiEkJicoKSorLDs9Ol0rKVxcXXwoPzooPzoyNVswLTVdfDJbMC00XVxcZHxbMDFdP1xcZFxcZD8pXFwuKXszfSg/OjI1WzAtNV18MlswLTRdXFxkfFswMV0/XFxkXFxkPyl8KD86W2EtejAtOVxcLS5ffiEkJicoKSorLDs9XXwlWzAtOWEtZl17Mn0pKikoPzo6XFxkKik/KD86XFwvKD86W2EtejAtOVxcLS5ffiEkJicoKSorLDs9OkBdfCVbMC05YS1mXXsyfSkqKSp8XFwvKD86KD86W2EtejAtOVxcLS5ffiEkJicoKSorLDs9OkBdfCVbMC05YS1mXXsyfSkrKD86XFwvKD86W2EtejAtOVxcLS5ffiEkJicoKSorLDs9OkBdfCVbMC05YS1mXXsyfSkqKSopP3woPzpbYS16MC05XFwtLl9+ISQmJygpKissOz06QF18JVswLTlhLWZdezJ9KSsoPzpcXC8oPzpbYS16MC05XFwtLl9+ISQmJygpKissOz06QF18JVswLTlhLWZdezJ9KSopKikoPzpcXD8oPzpbYS16MC05XFwtLl9+ISQmJygpKissOz06QC8/XXwlWzAtOWEtZl17Mn0pKik/KD86Iyg/OlthLXowLTlcXC0uX34hJCYnKCkqKyw7PTpALz9dfCVbMC05YS1mXXsyfSkqKT8kL2k7XG52YXIgVVJJUkVGID0gL14oPzpbYS16XVthLXowLTkrXFwtLl0qOik/KD86XFwvP1xcLyg/Oig/OlthLXowLTlcXC0uX34hJCYnKCkqKyw7PTpdfCVbMC05YS1mXXsyfSkqQCk/KD86XFxbKD86KD86KD86KD86WzAtOWEtZl17MSw0fTopezZ9fDo6KD86WzAtOWEtZl17MSw0fTopezV9fCg/OlswLTlhLWZdezEsNH0pPzo6KD86WzAtOWEtZl17MSw0fTopezR9fCg/Oig/OlswLTlhLWZdezEsNH06KXswLDF9WzAtOWEtZl17MSw0fSk/OjooPzpbMC05YS1mXXsxLDR9Oil7M318KD86KD86WzAtOWEtZl17MSw0fTopezAsMn1bMC05YS1mXXsxLDR9KT86Oig/OlswLTlhLWZdezEsNH06KXsyfXwoPzooPzpbMC05YS1mXXsxLDR9Oil7MCwzfVswLTlhLWZdezEsNH0pPzo6WzAtOWEtZl17MSw0fTp8KD86KD86WzAtOWEtZl17MSw0fTopezAsNH1bMC05YS1mXXsxLDR9KT86OikoPzpbMC05YS1mXXsxLDR9OlswLTlhLWZdezEsNH18KD86KD86MjVbMC01XXwyWzAtNF1cXGR8WzAxXT9cXGRcXGQ/KVxcLil7M30oPzoyNVswLTVdfDJbMC00XVxcZHxbMDFdP1xcZFxcZD8pKXwoPzooPzpbMC05YS1mXXsxLDR9Oil7MCw1fVswLTlhLWZdezEsNH0pPzo6WzAtOWEtZl17MSw0fXwoPzooPzpbMC05YS1mXXsxLDR9Oil7MCw2fVswLTlhLWZdezEsNH0pPzo6KXxbVnZdWzAtOWEtZl0rXFwuW2EtejAtOVxcLS5ffiEkJicoKSorLDs9Ol0rKVxcXXwoPzooPzoyNVswLTVdfDJbMC00XVxcZHxbMDFdP1xcZFxcZD8pXFwuKXszfSg/OjI1WzAtNV18MlswLTRdXFxkfFswMV0/XFxkXFxkPyl8KD86W2EtejAtOVxcLS5ffiEkJidcIigpKissOz1dfCVbMC05YS1mXXsyfSkqKSg/OjpcXGQqKT8oPzpcXC8oPzpbYS16MC05XFwtLl9+ISQmJ1wiKCkqKyw7PTpAXXwlWzAtOWEtZl17Mn0pKikqfFxcLyg/Oig/OlthLXowLTlcXC0uX34hJCYnXCIoKSorLDs9OkBdfCVbMC05YS1mXXsyfSkrKD86XFwvKD86W2EtejAtOVxcLS5ffiEkJidcIigpKissOz06QF18JVswLTlhLWZdezJ9KSopKik/fCg/OlthLXowLTlcXC0uX34hJCYnXCIoKSorLDs9OkBdfCVbMC05YS1mXXsyfSkrKD86XFwvKD86W2EtejAtOVxcLS5ffiEkJidcIigpKissOz06QF18JVswLTlhLWZdezJ9KSopKik/KD86XFw/KD86W2EtejAtOVxcLS5ffiEkJidcIigpKissOz06QC8/XXwlWzAtOWEtZl17Mn0pKik/KD86Iyg/OlthLXowLTlcXC0uX34hJCYnXCIoKSorLDs9OkAvP118JVswLTlhLWZdezJ9KSopPyQvaTtcbi8vIHVyaS10ZW1wbGF0ZTogaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzY1NzBcbnZhciBVUklURU1QTEFURSA9IC9eKD86KD86W15cXHgwMC1cXHgyMFwiJzw+JVxcXFxeYHt8fV18JVswLTlhLWZdezJ9KXxcXHtbKyMuLzs/Jj0sIUB8XT8oPzpbYS16MC05X118JVswLTlhLWZdezJ9KSsoPzo6WzEtOV1bMC05XXswLDN9fFxcKik/KD86LCg/OlthLXowLTlfXXwlWzAtOWEtZl17Mn0pKyg/OjpbMS05XVswLTldezAsM318XFwqKT8pKlxcfSkqJC9pO1xuLy8gRm9yIHRoZSBzb3VyY2U6IGh0dHBzOi8vZ2lzdC5naXRodWIuY29tL2RwZXJpbmkvNzI5Mjk0XG4vLyBGb3IgdGVzdCBjYXNlczogaHR0cHM6Ly9tYXRoaWFzYnluZW5zLmJlL2RlbW8vdXJsLXJlZ2V4XG4vLyBAdG9kbyBEZWxldGUgY3VycmVudCBVUkwgaW4gZmF2b3VyIG9mIHRoZSBjb21tZW50ZWQgb3V0IFVSTCBydWxlIHdoZW4gdGhpcyBpc3N1ZSBpcyBmaXhlZCBodHRwczovL2dpdGh1Yi5jb20vZXNsaW50L2VzbGludC9pc3N1ZXMvNzk4My5cbi8vIHZhciBVUkwgPSAvXig/Oig/Omh0dHBzP3xmdHApOlxcL1xcLykoPzpcXFMrKD86OlxcUyopP0ApPyg/Oig/ITEwKD86XFwuXFxkezEsM30pezN9KSg/ITEyNyg/OlxcLlxcZHsxLDN9KXszfSkoPyExNjlcXC4yNTQoPzpcXC5cXGR7MSwzfSl7Mn0pKD8hMTkyXFwuMTY4KD86XFwuXFxkezEsM30pezJ9KSg/ITE3MlxcLig/OjFbNi05XXwyXFxkfDNbMC0xXSkoPzpcXC5cXGR7MSwzfSl7Mn0pKD86WzEtOV1cXGQ/fDFcXGRcXGR8MlswMV1cXGR8MjJbMC0zXSkoPzpcXC4oPzoxP1xcZHsxLDJ9fDJbMC00XVxcZHwyNVswLTVdKSl7Mn0oPzpcXC4oPzpbMS05XVxcZD98MVxcZFxcZHwyWzAtNF1cXGR8MjVbMC00XSkpfCg/Oig/OlthLXpcXHV7MDBhMX0tXFx1e2ZmZmZ9MC05XSstKSpbYS16XFx1ezAwYTF9LVxcdXtmZmZmfTAtOV0rKSg/OlxcLig/OlthLXpcXHV7MDBhMX0tXFx1e2ZmZmZ9MC05XSstKSpbYS16XFx1ezAwYTF9LVxcdXtmZmZmfTAtOV0rKSooPzpcXC4oPzpbYS16XFx1ezAwYTF9LVxcdXtmZmZmfV17Mix9KSkpKD86OlxcZHsyLDV9KT8oPzpcXC9bXlxcc10qKT8kL2l1O1xudmFyIFVSTCA9IC9eKD86KD86aHR0cFtzXFx1MDE3Rl0/fGZ0cCk6XFwvXFwvKSg/Oig/OltcXDAtXFx4MDhcXHgwRS1cXHgxRiEtXFx4OUZcXHhBMS1cXHUxNjdGXFx1MTY4MS1cXHUxRkZGXFx1MjAwQi1cXHUyMDI3XFx1MjAyQS1cXHUyMDJFXFx1MjAzMC1cXHUyMDVFXFx1MjA2MC1cXHUyRkZGXFx1MzAwMS1cXHVEN0ZGXFx1RTAwMC1cXHVGRUZFXFx1RkYwMC1cXHVGRkZGXXxbXFx1RDgwMC1cXHVEQkZGXVtcXHVEQzAwLVxcdURGRkZdfFtcXHVEODAwLVxcdURCRkZdKD8hW1xcdURDMDAtXFx1REZGRl0pfCg/OlteXFx1RDgwMC1cXHVEQkZGXXxeKVtcXHVEQzAwLVxcdURGRkZdKSsoPzo6KD86W1xcMC1cXHgwOFxceDBFLVxceDFGIS1cXHg5RlxceEExLVxcdTE2N0ZcXHUxNjgxLVxcdTFGRkZcXHUyMDBCLVxcdTIwMjdcXHUyMDJBLVxcdTIwMkVcXHUyMDMwLVxcdTIwNUVcXHUyMDYwLVxcdTJGRkZcXHUzMDAxLVxcdUQ3RkZcXHVFMDAwLVxcdUZFRkVcXHVGRjAwLVxcdUZGRkZdfFtcXHVEODAwLVxcdURCRkZdW1xcdURDMDAtXFx1REZGRl18W1xcdUQ4MDAtXFx1REJGRl0oPyFbXFx1REMwMC1cXHVERkZGXSl8KD86W15cXHVEODAwLVxcdURCRkZdfF4pW1xcdURDMDAtXFx1REZGRl0pKik/QCk/KD86KD8hMTAoPzpcXC5bMC05XXsxLDN9KXszfSkoPyExMjcoPzpcXC5bMC05XXsxLDN9KXszfSkoPyExNjlcXC4yNTQoPzpcXC5bMC05XXsxLDN9KXsyfSkoPyExOTJcXC4xNjgoPzpcXC5bMC05XXsxLDN9KXsyfSkoPyExNzJcXC4oPzoxWzYtOV18MlswLTldfDNbMDFdKSg/OlxcLlswLTldezEsM30pezJ9KSg/OlsxLTldWzAtOV0/fDFbMC05XVswLTldfDJbMDFdWzAtOV18MjJbMC0zXSkoPzpcXC4oPzoxP1swLTldezEsMn18MlswLTRdWzAtOV18MjVbMC01XSkpezJ9KD86XFwuKD86WzEtOV1bMC05XT98MVswLTldWzAtOV18MlswLTRdWzAtOV18MjVbMC00XSkpfCg/Oig/Oig/OlswLTlhLXpcXHhBMS1cXHVEN0ZGXFx1RTAwMC1cXHVGRkZGXXxbXFx1RDgwMC1cXHVEQkZGXSg/IVtcXHVEQzAwLVxcdURGRkZdKXwoPzpbXlxcdUQ4MDAtXFx1REJGRl18XilbXFx1REMwMC1cXHVERkZGXSkrLSkqKD86WzAtOWEtelxceEExLVxcdUQ3RkZcXHVFMDAwLVxcdUZGRkZdfFtcXHVEODAwLVxcdURCRkZdKD8hW1xcdURDMDAtXFx1REZGRl0pfCg/OlteXFx1RDgwMC1cXHVEQkZGXXxeKVtcXHVEQzAwLVxcdURGRkZdKSspKD86XFwuKD86KD86WzAtOWEtelxceEExLVxcdUQ3RkZcXHVFMDAwLVxcdUZGRkZdfFtcXHVEODAwLVxcdURCRkZdKD8hW1xcdURDMDAtXFx1REZGRl0pfCg/OlteXFx1RDgwMC1cXHVEQkZGXXxeKVtcXHVEQzAwLVxcdURGRkZdKSstKSooPzpbMC05YS16XFx4QTEtXFx1RDdGRlxcdUUwMDAtXFx1RkZGRl18W1xcdUQ4MDAtXFx1REJGRl0oPyFbXFx1REMwMC1cXHVERkZGXSl8KD86W15cXHVEODAwLVxcdURCRkZdfF4pW1xcdURDMDAtXFx1REZGRl0pKykqKD86XFwuKD86KD86W2EtelxceEExLVxcdUQ3RkZcXHVFMDAwLVxcdUZGRkZdfFtcXHVEODAwLVxcdURCRkZdKD8hW1xcdURDMDAtXFx1REZGRl0pfCg/OlteXFx1RDgwMC1cXHVEQkZGXXxeKVtcXHVEQzAwLVxcdURGRkZdKXsyLH0pKSkoPzo6WzAtOV17Miw1fSk/KD86XFwvKD86W1xcMC1cXHgwOFxceDBFLVxceDFGIS1cXHg5RlxceEExLVxcdTE2N0ZcXHUxNjgxLVxcdTFGRkZcXHUyMDBCLVxcdTIwMjdcXHUyMDJBLVxcdTIwMkVcXHUyMDMwLVxcdTIwNUVcXHUyMDYwLVxcdTJGRkZcXHUzMDAxLVxcdUQ3RkZcXHVFMDAwLVxcdUZFRkVcXHVGRjAwLVxcdUZGRkZdfFtcXHVEODAwLVxcdURCRkZdW1xcdURDMDAtXFx1REZGRl18W1xcdUQ4MDAtXFx1REJGRl0oPyFbXFx1REMwMC1cXHVERkZGXSl8KD86W15cXHVEODAwLVxcdURCRkZdfF4pW1xcdURDMDAtXFx1REZGRl0pKik/JC9pO1xudmFyIFVVSUQgPSAvXig/OnVybjp1dWlkOik/WzAtOWEtZl17OH0tKD86WzAtOWEtZl17NH0tKXszfVswLTlhLWZdezEyfSQvaTtcbnZhciBKU09OX1BPSU5URVIgPSAvXig/OlxcLyg/Oltefi9dfH4wfH4xKSopKiQvO1xudmFyIEpTT05fUE9JTlRFUl9VUklfRlJBR01FTlQgPSAvXiMoPzpcXC8oPzpbYS16MC05X1xcLS4hJCYnKCkqKyw7Oj1AXXwlWzAtOWEtZl17Mn18fjB8fjEpKikqJC9pO1xudmFyIFJFTEFUSVZFX0pTT05fUE9JTlRFUiA9IC9eKD86MHxbMS05XVswLTldKikoPzojfCg/OlxcLyg/Oltefi9dfH4wfH4xKSopKikkLztcblxuXG5tb2R1bGUuZXhwb3J0cyA9IGZvcm1hdHM7XG5cbmZ1bmN0aW9uIGZvcm1hdHMobW9kZSkge1xuICBtb2RlID0gbW9kZSA9PSAnZnVsbCcgPyAnZnVsbCcgOiAnZmFzdCc7XG4gIHJldHVybiB1dGlsLmNvcHkoZm9ybWF0c1ttb2RlXSk7XG59XG5cblxuZm9ybWF0cy5mYXN0ID0ge1xuICAvLyBkYXRlOiBodHRwOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmMzMzM5I3NlY3Rpb24tNS42XG4gIGRhdGU6IC9eXFxkXFxkXFxkXFxkLVswLTFdXFxkLVswLTNdXFxkJC8sXG4gIC8vIGRhdGUtdGltZTogaHR0cDovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjMzMzOSNzZWN0aW9uLTUuNlxuICB0aW1lOiAvXig/OlswLTJdXFxkOlswLTVdXFxkOlswLTVdXFxkfDIzOjU5OjYwKSg/OlxcLlxcZCspPyg/Onp8WystXVxcZFxcZCg/Ojo/XFxkXFxkKT8pPyQvaSxcbiAgJ2RhdGUtdGltZSc6IC9eXFxkXFxkXFxkXFxkLVswLTFdXFxkLVswLTNdXFxkW3RcXHNdKD86WzAtMl1cXGQ6WzAtNV1cXGQ6WzAtNV1cXGR8MjM6NTk6NjApKD86XFwuXFxkKyk/KD86enxbKy1dXFxkXFxkKD86Oj9cXGRcXGQpPykkL2ksXG4gIC8vIHVyaTogaHR0cHM6Ly9naXRodWIuY29tL21hZmludG9zaC9pcy1teS1qc29uLXZhbGlkL2Jsb2IvbWFzdGVyL2Zvcm1hdHMuanNcbiAgdXJpOiAvXig/OlthLXpdW2EtejAtOStcXC0uXSo6KSg/OlxcLz9cXC8pP1teXFxzXSokL2ksXG4gICd1cmktcmVmZXJlbmNlJzogL14oPzooPzpbYS16XVthLXowLTkrXFwtLl0qOik/XFwvP1xcLyk/KD86W15cXFxcXFxzI11bXlxccyNdKik/KD86I1teXFxcXFxcc10qKT8kL2ksXG4gICd1cmktdGVtcGxhdGUnOiBVUklURU1QTEFURSxcbiAgdXJsOiBVUkwsXG4gIC8vIGVtYWlsIChzb3VyY2VzIGZyb20ganNlbiB2YWxpZGF0b3IpOlxuICAvLyBodHRwOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzIwMTMyMy91c2luZy1hLXJlZ3VsYXItZXhwcmVzc2lvbi10by12YWxpZGF0ZS1hbi1lbWFpbC1hZGRyZXNzI2Fuc3dlci04ODI5MzYzXG4gIC8vIGh0dHA6Ly93d3cudzMub3JnL1RSL2h0bWw1L2Zvcm1zLmh0bWwjdmFsaWQtZS1tYWlsLWFkZHJlc3MgKHNlYXJjaCBmb3IgJ3dpbGxmdWwgdmlvbGF0aW9uJylcbiAgZW1haWw6IC9eW2EtejAtOS4hIyQlJicqKy89P15fYHt8fX4tXStAW2EtejAtOV0oPzpbYS16MC05LV17MCw2MX1bYS16MC05XSk/KD86XFwuW2EtejAtOV0oPzpbYS16MC05LV17MCw2MX1bYS16MC05XSk/KSokL2ksXG4gIGhvc3RuYW1lOiBIT1NUTkFNRSxcbiAgLy8gb3B0aW1pemVkIGh0dHBzOi8vd3d3LnNhZmFyaWJvb2tzb25saW5lLmNvbS9saWJyYXJ5L3ZpZXcvcmVndWxhci1leHByZXNzaW9ucy1jb29rYm9vay85NzgwNTk2ODAyODM3L2NoMDdzMTYuaHRtbFxuICBpcHY0OiAvXig/Oig/OjI1WzAtNV18MlswLTRdXFxkfFswMV0/XFxkXFxkPylcXC4pezN9KD86MjVbMC01XXwyWzAtNF1cXGR8WzAxXT9cXGRcXGQ/KSQvLFxuICAvLyBvcHRpbWl6ZWQgaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy81MzQ5Ny9yZWd1bGFyLWV4cHJlc3Npb24tdGhhdC1tYXRjaGVzLXZhbGlkLWlwdjYtYWRkcmVzc2VzXG4gIGlwdjY6IC9eXFxzKig/Oig/Oig/OlswLTlhLWZdezEsNH06KXs3fSg/OlswLTlhLWZdezEsNH18OikpfCg/Oig/OlswLTlhLWZdezEsNH06KXs2fSg/OjpbMC05YS1mXXsxLDR9fCg/Oig/OjI1WzAtNV18MlswLTRdXFxkfDFcXGRcXGR8WzEtOV0/XFxkKSg/OlxcLig/OjI1WzAtNV18MlswLTRdXFxkfDFcXGRcXGR8WzEtOV0/XFxkKSl7M30pfDopKXwoPzooPzpbMC05YS1mXXsxLDR9Oil7NX0oPzooPzooPzo6WzAtOWEtZl17MSw0fSl7MSwyfSl8Oig/Oig/OjI1WzAtNV18MlswLTRdXFxkfDFcXGRcXGR8WzEtOV0/XFxkKSg/OlxcLig/OjI1WzAtNV18MlswLTRdXFxkfDFcXGRcXGR8WzEtOV0/XFxkKSl7M30pfDopKXwoPzooPzpbMC05YS1mXXsxLDR9Oil7NH0oPzooPzooPzo6WzAtOWEtZl17MSw0fSl7MSwzfSl8KD86KD86OlswLTlhLWZdezEsNH0pPzooPzooPzoyNVswLTVdfDJbMC00XVxcZHwxXFxkXFxkfFsxLTldP1xcZCkoPzpcXC4oPzoyNVswLTVdfDJbMC00XVxcZHwxXFxkXFxkfFsxLTldP1xcZCkpezN9KSl8OikpfCg/Oig/OlswLTlhLWZdezEsNH06KXszfSg/Oig/Oig/OjpbMC05YS1mXXsxLDR9KXsxLDR9KXwoPzooPzo6WzAtOWEtZl17MSw0fSl7MCwyfTooPzooPzoyNVswLTVdfDJbMC00XVxcZHwxXFxkXFxkfFsxLTldP1xcZCkoPzpcXC4oPzoyNVswLTVdfDJbMC00XVxcZHwxXFxkXFxkfFsxLTldP1xcZCkpezN9KSl8OikpfCg/Oig/OlswLTlhLWZdezEsNH06KXsyfSg/Oig/Oig/OjpbMC05YS1mXXsxLDR9KXsxLDV9KXwoPzooPzo6WzAtOWEtZl17MSw0fSl7MCwzfTooPzooPzoyNVswLTVdfDJbMC00XVxcZHwxXFxkXFxkfFsxLTldP1xcZCkoPzpcXC4oPzoyNVswLTVdfDJbMC00XVxcZHwxXFxkXFxkfFsxLTldP1xcZCkpezN9KSl8OikpfCg/Oig/OlswLTlhLWZdezEsNH06KXsxfSg/Oig/Oig/OjpbMC05YS1mXXsxLDR9KXsxLDZ9KXwoPzooPzo6WzAtOWEtZl17MSw0fSl7MCw0fTooPzooPzoyNVswLTVdfDJbMC00XVxcZHwxXFxkXFxkfFsxLTldP1xcZCkoPzpcXC4oPzoyNVswLTVdfDJbMC00XVxcZHwxXFxkXFxkfFsxLTldP1xcZCkpezN9KSl8OikpfCg/OjooPzooPzooPzo6WzAtOWEtZl17MSw0fSl7MSw3fSl8KD86KD86OlswLTlhLWZdezEsNH0pezAsNX06KD86KD86MjVbMC01XXwyWzAtNF1cXGR8MVxcZFxcZHxbMS05XT9cXGQpKD86XFwuKD86MjVbMC01XXwyWzAtNF1cXGR8MVxcZFxcZHxbMS05XT9cXGQpKXszfSkpfDopKSkoPzolLispP1xccyokL2ksXG4gIHJlZ2V4OiByZWdleCxcbiAgLy8gdXVpZDogaHR0cDovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjNDEyMlxuICB1dWlkOiBVVUlELFxuICAvLyBKU09OLXBvaW50ZXI6IGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM2OTAxXG4gIC8vIHVyaSBmcmFnbWVudDogaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzM5ODYjYXBwZW5kaXgtQVxuICAnanNvbi1wb2ludGVyJzogSlNPTl9QT0lOVEVSLFxuICAnanNvbi1wb2ludGVyLXVyaS1mcmFnbWVudCc6IEpTT05fUE9JTlRFUl9VUklfRlJBR01FTlQsXG4gIC8vIHJlbGF0aXZlIEpTT04tcG9pbnRlcjogaHR0cDovL3Rvb2xzLmlldGYub3JnL2h0bWwvZHJhZnQtbHVmZi1yZWxhdGl2ZS1qc29uLXBvaW50ZXItMDBcbiAgJ3JlbGF0aXZlLWpzb24tcG9pbnRlcic6IFJFTEFUSVZFX0pTT05fUE9JTlRFUlxufTtcblxuXG5mb3JtYXRzLmZ1bGwgPSB7XG4gIGRhdGU6IGRhdGUsXG4gIHRpbWU6IHRpbWUsXG4gICdkYXRlLXRpbWUnOiBkYXRlX3RpbWUsXG4gIHVyaTogdXJpLFxuICAndXJpLXJlZmVyZW5jZSc6IFVSSVJFRixcbiAgJ3VyaS10ZW1wbGF0ZSc6IFVSSVRFTVBMQVRFLFxuICB1cmw6IFVSTCxcbiAgZW1haWw6IC9eW2EtejAtOSEjJCUmJyorLz0/Xl9ge3x9fi1dKyg/OlxcLlthLXowLTkhIyQlJicqKy89P15fYHt8fX4tXSspKkAoPzpbYS16MC05XSg/OlthLXowLTktXSpbYS16MC05XSk/XFwuKStbYS16MC05XSg/OlthLXowLTktXSpbYS16MC05XSk/JC9pLFxuICBob3N0bmFtZTogSE9TVE5BTUUsXG4gIGlwdjQ6IC9eKD86KD86MjVbMC01XXwyWzAtNF1cXGR8WzAxXT9cXGRcXGQ/KVxcLil7M30oPzoyNVswLTVdfDJbMC00XVxcZHxbMDFdP1xcZFxcZD8pJC8sXG4gIGlwdjY6IC9eXFxzKig/Oig/Oig/OlswLTlhLWZdezEsNH06KXs3fSg/OlswLTlhLWZdezEsNH18OikpfCg/Oig/OlswLTlhLWZdezEsNH06KXs2fSg/OjpbMC05YS1mXXsxLDR9fCg/Oig/OjI1WzAtNV18MlswLTRdXFxkfDFcXGRcXGR8WzEtOV0/XFxkKSg/OlxcLig/OjI1WzAtNV18MlswLTRdXFxkfDFcXGRcXGR8WzEtOV0/XFxkKSl7M30pfDopKXwoPzooPzpbMC05YS1mXXsxLDR9Oil7NX0oPzooPzooPzo6WzAtOWEtZl17MSw0fSl7MSwyfSl8Oig/Oig/OjI1WzAtNV18MlswLTRdXFxkfDFcXGRcXGR8WzEtOV0/XFxkKSg/OlxcLig/OjI1WzAtNV18MlswLTRdXFxkfDFcXGRcXGR8WzEtOV0/XFxkKSl7M30pfDopKXwoPzooPzpbMC05YS1mXXsxLDR9Oil7NH0oPzooPzooPzo6WzAtOWEtZl17MSw0fSl7MSwzfSl8KD86KD86OlswLTlhLWZdezEsNH0pPzooPzooPzoyNVswLTVdfDJbMC00XVxcZHwxXFxkXFxkfFsxLTldP1xcZCkoPzpcXC4oPzoyNVswLTVdfDJbMC00XVxcZHwxXFxkXFxkfFsxLTldP1xcZCkpezN9KSl8OikpfCg/Oig/OlswLTlhLWZdezEsNH06KXszfSg/Oig/Oig/OjpbMC05YS1mXXsxLDR9KXsxLDR9KXwoPzooPzo6WzAtOWEtZl17MSw0fSl7MCwyfTooPzooPzoyNVswLTVdfDJbMC00XVxcZHwxXFxkXFxkfFsxLTldP1xcZCkoPzpcXC4oPzoyNVswLTVdfDJbMC00XVxcZHwxXFxkXFxkfFsxLTldP1xcZCkpezN9KSl8OikpfCg/Oig/OlswLTlhLWZdezEsNH06KXsyfSg/Oig/Oig/OjpbMC05YS1mXXsxLDR9KXsxLDV9KXwoPzooPzo6WzAtOWEtZl17MSw0fSl7MCwzfTooPzooPzoyNVswLTVdfDJbMC00XVxcZHwxXFxkXFxkfFsxLTldP1xcZCkoPzpcXC4oPzoyNVswLTVdfDJbMC00XVxcZHwxXFxkXFxkfFsxLTldP1xcZCkpezN9KSl8OikpfCg/Oig/OlswLTlhLWZdezEsNH06KXsxfSg/Oig/Oig/OjpbMC05YS1mXXsxLDR9KXsxLDZ9KXwoPzooPzo6WzAtOWEtZl17MSw0fSl7MCw0fTooPzooPzoyNVswLTVdfDJbMC00XVxcZHwxXFxkXFxkfFsxLTldP1xcZCkoPzpcXC4oPzoyNVswLTVdfDJbMC00XVxcZHwxXFxkXFxkfFsxLTldP1xcZCkpezN9KSl8OikpfCg/OjooPzooPzooPzo6WzAtOWEtZl17MSw0fSl7MSw3fSl8KD86KD86OlswLTlhLWZdezEsNH0pezAsNX06KD86KD86MjVbMC01XXwyWzAtNF1cXGR8MVxcZFxcZHxbMS05XT9cXGQpKD86XFwuKD86MjVbMC01XXwyWzAtNF1cXGR8MVxcZFxcZHxbMS05XT9cXGQpKXszfSkpfDopKSkoPzolLispP1xccyokL2ksXG4gIHJlZ2V4OiByZWdleCxcbiAgdXVpZDogVVVJRCxcbiAgJ2pzb24tcG9pbnRlcic6IEpTT05fUE9JTlRFUixcbiAgJ2pzb24tcG9pbnRlci11cmktZnJhZ21lbnQnOiBKU09OX1BPSU5URVJfVVJJX0ZSQUdNRU5ULFxuICAncmVsYXRpdmUtanNvbi1wb2ludGVyJzogUkVMQVRJVkVfSlNPTl9QT0lOVEVSXG59O1xuXG5cbmZ1bmN0aW9uIGlzTGVhcFllYXIoeWVhcikge1xuICAvLyBodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjMzMzOSNhcHBlbmRpeC1DXG4gIHJldHVybiB5ZWFyICUgNCA9PT0gMCAmJiAoeWVhciAlIDEwMCAhPT0gMCB8fCB5ZWFyICUgNDAwID09PSAwKTtcbn1cblxuXG5mdW5jdGlvbiBkYXRlKHN0cikge1xuICAvLyBmdWxsLWRhdGUgZnJvbSBodHRwOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmMzMzM5I3NlY3Rpb24tNS42XG4gIHZhciBtYXRjaGVzID0gc3RyLm1hdGNoKERBVEUpO1xuICBpZiAoIW1hdGNoZXMpIHJldHVybiBmYWxzZTtcblxuICB2YXIgeWVhciA9ICttYXRjaGVzWzFdO1xuICB2YXIgbW9udGggPSArbWF0Y2hlc1syXTtcbiAgdmFyIGRheSA9ICttYXRjaGVzWzNdO1xuXG4gIHJldHVybiBtb250aCA+PSAxICYmIG1vbnRoIDw9IDEyICYmIGRheSA+PSAxICYmXG4gICAgICAgICAgZGF5IDw9IChtb250aCA9PSAyICYmIGlzTGVhcFllYXIoeWVhcikgPyAyOSA6IERBWVNbbW9udGhdKTtcbn1cblxuXG5mdW5jdGlvbiB0aW1lKHN0ciwgZnVsbCkge1xuICB2YXIgbWF0Y2hlcyA9IHN0ci5tYXRjaChUSU1FKTtcbiAgaWYgKCFtYXRjaGVzKSByZXR1cm4gZmFsc2U7XG5cbiAgdmFyIGhvdXIgPSBtYXRjaGVzWzFdO1xuICB2YXIgbWludXRlID0gbWF0Y2hlc1syXTtcbiAgdmFyIHNlY29uZCA9IG1hdGNoZXNbM107XG4gIHZhciB0aW1lWm9uZSA9IG1hdGNoZXNbNV07XG4gIHJldHVybiAoKGhvdXIgPD0gMjMgJiYgbWludXRlIDw9IDU5ICYmIHNlY29uZCA8PSA1OSkgfHxcbiAgICAgICAgICAoaG91ciA9PSAyMyAmJiBtaW51dGUgPT0gNTkgJiYgc2Vjb25kID09IDYwKSkgJiZcbiAgICAgICAgICghZnVsbCB8fCB0aW1lWm9uZSk7XG59XG5cblxudmFyIERBVEVfVElNRV9TRVBBUkFUT1IgPSAvdHxcXHMvaTtcbmZ1bmN0aW9uIGRhdGVfdGltZShzdHIpIHtcbiAgLy8gaHR0cDovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjMzMzOSNzZWN0aW9uLTUuNlxuICB2YXIgZGF0ZVRpbWUgPSBzdHIuc3BsaXQoREFURV9USU1FX1NFUEFSQVRPUik7XG4gIHJldHVybiBkYXRlVGltZS5sZW5ndGggPT0gMiAmJiBkYXRlKGRhdGVUaW1lWzBdKSAmJiB0aW1lKGRhdGVUaW1lWzFdLCB0cnVlKTtcbn1cblxuXG52YXIgTk9UX1VSSV9GUkFHTUVOVCA9IC9cXC98Oi87XG5mdW5jdGlvbiB1cmkoc3RyKSB7XG4gIC8vIGh0dHA6Ly9qbXJ3YXJlLmNvbS9hcnRpY2xlcy8yMDA5L3VyaV9yZWdleHAvVVJJX3JlZ2V4Lmh0bWwgKyBvcHRpb25hbCBwcm90b2NvbCArIHJlcXVpcmVkIFwiLlwiXG4gIHJldHVybiBOT1RfVVJJX0ZSQUdNRU5ULnRlc3Qoc3RyKSAmJiBVUkkudGVzdChzdHIpO1xufVxuXG5cbnZhciBaX0FOQ0hPUiA9IC9bXlxcXFxdXFxcXFovO1xuZnVuY3Rpb24gcmVnZXgoc3RyKSB7XG4gIGlmIChaX0FOQ0hPUi50ZXN0KHN0cikpIHJldHVybiBmYWxzZTtcbiAgdHJ5IHtcbiAgICBuZXcgUmVnRXhwKHN0cik7XG4gICAgcmV0dXJuIHRydWU7XG4gIH0gY2F0Y2goZSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuIiwgIid1c2Ugc3RyaWN0Jztcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gZ2VuZXJhdGVfcmVmKGl0LCAka2V5d29yZCwgJHJ1bGVUeXBlKSB7XG4gIHZhciBvdXQgPSAnICc7XG4gIHZhciAkbHZsID0gaXQubGV2ZWw7XG4gIHZhciAkZGF0YUx2bCA9IGl0LmRhdGFMZXZlbDtcbiAgdmFyICRzY2hlbWEgPSBpdC5zY2hlbWFbJGtleXdvcmRdO1xuICB2YXIgJGVyclNjaGVtYVBhdGggPSBpdC5lcnJTY2hlbWFQYXRoICsgJy8nICsgJGtleXdvcmQ7XG4gIHZhciAkYnJlYWtPbkVycm9yID0gIWl0Lm9wdHMuYWxsRXJyb3JzO1xuICB2YXIgJGRhdGEgPSAnZGF0YScgKyAoJGRhdGFMdmwgfHwgJycpO1xuICB2YXIgJHZhbGlkID0gJ3ZhbGlkJyArICRsdmw7XG4gIHZhciAkYXN5bmMsICRyZWZDb2RlO1xuICBpZiAoJHNjaGVtYSA9PSAnIycgfHwgJHNjaGVtYSA9PSAnIy8nKSB7XG4gICAgaWYgKGl0LmlzUm9vdCkge1xuICAgICAgJGFzeW5jID0gaXQuYXN5bmM7XG4gICAgICAkcmVmQ29kZSA9ICd2YWxpZGF0ZSc7XG4gICAgfSBlbHNlIHtcbiAgICAgICRhc3luYyA9IGl0LnJvb3Quc2NoZW1hLiRhc3luYyA9PT0gdHJ1ZTtcbiAgICAgICRyZWZDb2RlID0gJ3Jvb3QucmVmVmFsWzBdJztcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgdmFyICRyZWZWYWwgPSBpdC5yZXNvbHZlUmVmKGl0LmJhc2VJZCwgJHNjaGVtYSwgaXQuaXNSb290KTtcbiAgICBpZiAoJHJlZlZhbCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB2YXIgJG1lc3NhZ2UgPSBpdC5NaXNzaW5nUmVmRXJyb3IubWVzc2FnZShpdC5iYXNlSWQsICRzY2hlbWEpO1xuICAgICAgaWYgKGl0Lm9wdHMubWlzc2luZ1JlZnMgPT0gJ2ZhaWwnKSB7XG4gICAgICAgIGl0LmxvZ2dlci5lcnJvcigkbWVzc2FnZSk7XG4gICAgICAgIHZhciAkJG91dFN0YWNrID0gJCRvdXRTdGFjayB8fCBbXTtcbiAgICAgICAgJCRvdXRTdGFjay5wdXNoKG91dCk7XG4gICAgICAgIG91dCA9ICcnOyAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgICBpZiAoaXQuY3JlYXRlRXJyb3JzICE9PSBmYWxzZSkge1xuICAgICAgICAgIG91dCArPSAnIHsga2V5d29yZDogXFwnJyArICgnJHJlZicpICsgJ1xcJyAsIGRhdGFQYXRoOiAoZGF0YVBhdGggfHwgXFwnXFwnKSArICcgKyAoaXQuZXJyb3JQYXRoKSArICcgLCBzY2hlbWFQYXRoOiAnICsgKGl0LnV0aWwudG9RdW90ZWRTdHJpbmcoJGVyclNjaGVtYVBhdGgpKSArICcgLCBwYXJhbXM6IHsgcmVmOiBcXCcnICsgKGl0LnV0aWwuZXNjYXBlUXVvdGVzKCRzY2hlbWEpKSArICdcXCcgfSAnO1xuICAgICAgICAgIGlmIChpdC5vcHRzLm1lc3NhZ2VzICE9PSBmYWxzZSkge1xuICAgICAgICAgICAgb3V0ICs9ICcgLCBtZXNzYWdlOiBcXCdjYW5cXFxcXFwndCByZXNvbHZlIHJlZmVyZW5jZSAnICsgKGl0LnV0aWwuZXNjYXBlUXVvdGVzKCRzY2hlbWEpKSArICdcXCcgJztcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGl0Lm9wdHMudmVyYm9zZSkge1xuICAgICAgICAgICAgb3V0ICs9ICcgLCBzY2hlbWE6ICcgKyAoaXQudXRpbC50b1F1b3RlZFN0cmluZygkc2NoZW1hKSkgKyAnICwgcGFyZW50U2NoZW1hOiB2YWxpZGF0ZS5zY2hlbWEnICsgKGl0LnNjaGVtYVBhdGgpICsgJyAsIGRhdGE6ICcgKyAoJGRhdGEpICsgJyAnO1xuICAgICAgICAgIH1cbiAgICAgICAgICBvdXQgKz0gJyB9ICc7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgb3V0ICs9ICcge30gJztcbiAgICAgICAgfVxuICAgICAgICB2YXIgX19lcnIgPSBvdXQ7XG4gICAgICAgIG91dCA9ICQkb3V0U3RhY2sucG9wKCk7XG4gICAgICAgIGlmICghaXQuY29tcG9zaXRlUnVsZSAmJiAkYnJlYWtPbkVycm9yKSB7XG4gICAgICAgICAgLyogaXN0YW5idWwgaWdub3JlIGlmICovXG4gICAgICAgICAgaWYgKGl0LmFzeW5jKSB7XG4gICAgICAgICAgICBvdXQgKz0gJyB0aHJvdyBuZXcgVmFsaWRhdGlvbkVycm9yKFsnICsgKF9fZXJyKSArICddKTsgJztcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgb3V0ICs9ICcgdmFsaWRhdGUuZXJyb3JzID0gWycgKyAoX19lcnIpICsgJ107IHJldHVybiBmYWxzZTsgJztcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgb3V0ICs9ICcgdmFyIGVyciA9ICcgKyAoX19lcnIpICsgJzsgIGlmICh2RXJyb3JzID09PSBudWxsKSB2RXJyb3JzID0gW2Vycl07IGVsc2UgdkVycm9ycy5wdXNoKGVycik7IGVycm9ycysrOyAnO1xuICAgICAgICB9XG4gICAgICAgIGlmICgkYnJlYWtPbkVycm9yKSB7XG4gICAgICAgICAgb3V0ICs9ICcgaWYgKGZhbHNlKSB7ICc7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAoaXQub3B0cy5taXNzaW5nUmVmcyA9PSAnaWdub3JlJykge1xuICAgICAgICBpdC5sb2dnZXIud2FybigkbWVzc2FnZSk7XG4gICAgICAgIGlmICgkYnJlYWtPbkVycm9yKSB7XG4gICAgICAgICAgb3V0ICs9ICcgaWYgKHRydWUpIHsgJztcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhyb3cgbmV3IGl0Lk1pc3NpbmdSZWZFcnJvcihpdC5iYXNlSWQsICRzY2hlbWEsICRtZXNzYWdlKTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKCRyZWZWYWwuaW5saW5lKSB7XG4gICAgICB2YXIgJGl0ID0gaXQudXRpbC5jb3B5KGl0KTtcbiAgICAgICRpdC5sZXZlbCsrO1xuICAgICAgdmFyICRuZXh0VmFsaWQgPSAndmFsaWQnICsgJGl0LmxldmVsO1xuICAgICAgJGl0LnNjaGVtYSA9ICRyZWZWYWwuc2NoZW1hO1xuICAgICAgJGl0LnNjaGVtYVBhdGggPSAnJztcbiAgICAgICRpdC5lcnJTY2hlbWFQYXRoID0gJHNjaGVtYTtcbiAgICAgIHZhciAkY29kZSA9IGl0LnZhbGlkYXRlKCRpdCkucmVwbGFjZSgvdmFsaWRhdGVcXC5zY2hlbWEvZywgJHJlZlZhbC5jb2RlKTtcbiAgICAgIG91dCArPSAnICcgKyAoJGNvZGUpICsgJyAnO1xuICAgICAgaWYgKCRicmVha09uRXJyb3IpIHtcbiAgICAgICAgb3V0ICs9ICcgaWYgKCcgKyAoJG5leHRWYWxpZCkgKyAnKSB7ICc7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgICRhc3luYyA9ICRyZWZWYWwuJGFzeW5jID09PSB0cnVlIHx8IChpdC5hc3luYyAmJiAkcmVmVmFsLiRhc3luYyAhPT0gZmFsc2UpO1xuICAgICAgJHJlZkNvZGUgPSAkcmVmVmFsLmNvZGU7XG4gICAgfVxuICB9XG4gIGlmICgkcmVmQ29kZSkge1xuICAgIHZhciAkJG91dFN0YWNrID0gJCRvdXRTdGFjayB8fCBbXTtcbiAgICAkJG91dFN0YWNrLnB1c2gob3V0KTtcbiAgICBvdXQgPSAnJztcbiAgICBpZiAoaXQub3B0cy5wYXNzQ29udGV4dCkge1xuICAgICAgb3V0ICs9ICcgJyArICgkcmVmQ29kZSkgKyAnLmNhbGwodGhpcywgJztcbiAgICB9IGVsc2Uge1xuICAgICAgb3V0ICs9ICcgJyArICgkcmVmQ29kZSkgKyAnKCAnO1xuICAgIH1cbiAgICBvdXQgKz0gJyAnICsgKCRkYXRhKSArICcsIChkYXRhUGF0aCB8fCBcXCdcXCcpJztcbiAgICBpZiAoaXQuZXJyb3JQYXRoICE9ICdcIlwiJykge1xuICAgICAgb3V0ICs9ICcgKyAnICsgKGl0LmVycm9yUGF0aCk7XG4gICAgfVxuICAgIHZhciAkcGFyZW50RGF0YSA9ICRkYXRhTHZsID8gJ2RhdGEnICsgKCgkZGF0YUx2bCAtIDEpIHx8ICcnKSA6ICdwYXJlbnREYXRhJyxcbiAgICAgICRwYXJlbnREYXRhUHJvcGVydHkgPSAkZGF0YUx2bCA/IGl0LmRhdGFQYXRoQXJyWyRkYXRhTHZsXSA6ICdwYXJlbnREYXRhUHJvcGVydHknO1xuICAgIG91dCArPSAnICwgJyArICgkcGFyZW50RGF0YSkgKyAnICwgJyArICgkcGFyZW50RGF0YVByb3BlcnR5KSArICcsIHJvb3REYXRhKSAgJztcbiAgICB2YXIgX19jYWxsVmFsaWRhdGUgPSBvdXQ7XG4gICAgb3V0ID0gJCRvdXRTdGFjay5wb3AoKTtcbiAgICBpZiAoJGFzeW5jKSB7XG4gICAgICBpZiAoIWl0LmFzeW5jKSB0aHJvdyBuZXcgRXJyb3IoJ2FzeW5jIHNjaGVtYSByZWZlcmVuY2VkIGJ5IHN5bmMgc2NoZW1hJyk7XG4gICAgICBpZiAoJGJyZWFrT25FcnJvcikge1xuICAgICAgICBvdXQgKz0gJyB2YXIgJyArICgkdmFsaWQpICsgJzsgJztcbiAgICAgIH1cbiAgICAgIG91dCArPSAnIHRyeSB7IGF3YWl0ICcgKyAoX19jYWxsVmFsaWRhdGUpICsgJzsgJztcbiAgICAgIGlmICgkYnJlYWtPbkVycm9yKSB7XG4gICAgICAgIG91dCArPSAnICcgKyAoJHZhbGlkKSArICcgPSB0cnVlOyAnO1xuICAgICAgfVxuICAgICAgb3V0ICs9ICcgfSBjYXRjaCAoZSkgeyBpZiAoIShlIGluc3RhbmNlb2YgVmFsaWRhdGlvbkVycm9yKSkgdGhyb3cgZTsgaWYgKHZFcnJvcnMgPT09IG51bGwpIHZFcnJvcnMgPSBlLmVycm9yczsgZWxzZSB2RXJyb3JzID0gdkVycm9ycy5jb25jYXQoZS5lcnJvcnMpOyBlcnJvcnMgPSB2RXJyb3JzLmxlbmd0aDsgJztcbiAgICAgIGlmICgkYnJlYWtPbkVycm9yKSB7XG4gICAgICAgIG91dCArPSAnICcgKyAoJHZhbGlkKSArICcgPSBmYWxzZTsgJztcbiAgICAgIH1cbiAgICAgIG91dCArPSAnIH0gJztcbiAgICAgIGlmICgkYnJlYWtPbkVycm9yKSB7XG4gICAgICAgIG91dCArPSAnIGlmICgnICsgKCR2YWxpZCkgKyAnKSB7ICc7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIG91dCArPSAnIGlmICghJyArIChfX2NhbGxWYWxpZGF0ZSkgKyAnKSB7IGlmICh2RXJyb3JzID09PSBudWxsKSB2RXJyb3JzID0gJyArICgkcmVmQ29kZSkgKyAnLmVycm9yczsgZWxzZSB2RXJyb3JzID0gdkVycm9ycy5jb25jYXQoJyArICgkcmVmQ29kZSkgKyAnLmVycm9ycyk7IGVycm9ycyA9IHZFcnJvcnMubGVuZ3RoOyB9ICc7XG4gICAgICBpZiAoJGJyZWFrT25FcnJvcikge1xuICAgICAgICBvdXQgKz0gJyBlbHNlIHsgJztcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcmV0dXJuIG91dDtcbn1cbiIsICIndXNlIHN0cmljdCc7XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIGdlbmVyYXRlX2FsbE9mKGl0LCAka2V5d29yZCwgJHJ1bGVUeXBlKSB7XG4gIHZhciBvdXQgPSAnICc7XG4gIHZhciAkc2NoZW1hID0gaXQuc2NoZW1hWyRrZXl3b3JkXTtcbiAgdmFyICRzY2hlbWFQYXRoID0gaXQuc2NoZW1hUGF0aCArIGl0LnV0aWwuZ2V0UHJvcGVydHkoJGtleXdvcmQpO1xuICB2YXIgJGVyclNjaGVtYVBhdGggPSBpdC5lcnJTY2hlbWFQYXRoICsgJy8nICsgJGtleXdvcmQ7XG4gIHZhciAkYnJlYWtPbkVycm9yID0gIWl0Lm9wdHMuYWxsRXJyb3JzO1xuICB2YXIgJGl0ID0gaXQudXRpbC5jb3B5KGl0KTtcbiAgdmFyICRjbG9zaW5nQnJhY2VzID0gJyc7XG4gICRpdC5sZXZlbCsrO1xuICB2YXIgJG5leHRWYWxpZCA9ICd2YWxpZCcgKyAkaXQubGV2ZWw7XG4gIHZhciAkY3VycmVudEJhc2VJZCA9ICRpdC5iYXNlSWQsXG4gICAgJGFsbFNjaGVtYXNFbXB0eSA9IHRydWU7XG4gIHZhciBhcnIxID0gJHNjaGVtYTtcbiAgaWYgKGFycjEpIHtcbiAgICB2YXIgJHNjaCwgJGkgPSAtMSxcbiAgICAgIGwxID0gYXJyMS5sZW5ndGggLSAxO1xuICAgIHdoaWxlICgkaSA8IGwxKSB7XG4gICAgICAkc2NoID0gYXJyMVskaSArPSAxXTtcbiAgICAgIGlmICgoaXQub3B0cy5zdHJpY3RLZXl3b3JkcyA/ICh0eXBlb2YgJHNjaCA9PSAnb2JqZWN0JyAmJiBPYmplY3Qua2V5cygkc2NoKS5sZW5ndGggPiAwKSB8fCAkc2NoID09PSBmYWxzZSA6IGl0LnV0aWwuc2NoZW1hSGFzUnVsZXMoJHNjaCwgaXQuUlVMRVMuYWxsKSkpIHtcbiAgICAgICAgJGFsbFNjaGVtYXNFbXB0eSA9IGZhbHNlO1xuICAgICAgICAkaXQuc2NoZW1hID0gJHNjaDtcbiAgICAgICAgJGl0LnNjaGVtYVBhdGggPSAkc2NoZW1hUGF0aCArICdbJyArICRpICsgJ10nO1xuICAgICAgICAkaXQuZXJyU2NoZW1hUGF0aCA9ICRlcnJTY2hlbWFQYXRoICsgJy8nICsgJGk7XG4gICAgICAgIG91dCArPSAnICAnICsgKGl0LnZhbGlkYXRlKCRpdCkpICsgJyAnO1xuICAgICAgICAkaXQuYmFzZUlkID0gJGN1cnJlbnRCYXNlSWQ7XG4gICAgICAgIGlmICgkYnJlYWtPbkVycm9yKSB7XG4gICAgICAgICAgb3V0ICs9ICcgaWYgKCcgKyAoJG5leHRWYWxpZCkgKyAnKSB7ICc7XG4gICAgICAgICAgJGNsb3NpbmdCcmFjZXMgKz0gJ30nO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIGlmICgkYnJlYWtPbkVycm9yKSB7XG4gICAgaWYgKCRhbGxTY2hlbWFzRW1wdHkpIHtcbiAgICAgIG91dCArPSAnIGlmICh0cnVlKSB7ICc7XG4gICAgfSBlbHNlIHtcbiAgICAgIG91dCArPSAnICcgKyAoJGNsb3NpbmdCcmFjZXMuc2xpY2UoMCwgLTEpKSArICcgJztcbiAgICB9XG4gIH1cbiAgcmV0dXJuIG91dDtcbn1cbiIsICIndXNlIHN0cmljdCc7XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIGdlbmVyYXRlX2FueU9mKGl0LCAka2V5d29yZCwgJHJ1bGVUeXBlKSB7XG4gIHZhciBvdXQgPSAnICc7XG4gIHZhciAkbHZsID0gaXQubGV2ZWw7XG4gIHZhciAkZGF0YUx2bCA9IGl0LmRhdGFMZXZlbDtcbiAgdmFyICRzY2hlbWEgPSBpdC5zY2hlbWFbJGtleXdvcmRdO1xuICB2YXIgJHNjaGVtYVBhdGggPSBpdC5zY2hlbWFQYXRoICsgaXQudXRpbC5nZXRQcm9wZXJ0eSgka2V5d29yZCk7XG4gIHZhciAkZXJyU2NoZW1hUGF0aCA9IGl0LmVyclNjaGVtYVBhdGggKyAnLycgKyAka2V5d29yZDtcbiAgdmFyICRicmVha09uRXJyb3IgPSAhaXQub3B0cy5hbGxFcnJvcnM7XG4gIHZhciAkZGF0YSA9ICdkYXRhJyArICgkZGF0YUx2bCB8fCAnJyk7XG4gIHZhciAkdmFsaWQgPSAndmFsaWQnICsgJGx2bDtcbiAgdmFyICRlcnJzID0gJ2VycnNfXycgKyAkbHZsO1xuICB2YXIgJGl0ID0gaXQudXRpbC5jb3B5KGl0KTtcbiAgdmFyICRjbG9zaW5nQnJhY2VzID0gJyc7XG4gICRpdC5sZXZlbCsrO1xuICB2YXIgJG5leHRWYWxpZCA9ICd2YWxpZCcgKyAkaXQubGV2ZWw7XG4gIHZhciAkbm9FbXB0eVNjaGVtYSA9ICRzY2hlbWEuZXZlcnkoZnVuY3Rpb24oJHNjaCkge1xuICAgIHJldHVybiAoaXQub3B0cy5zdHJpY3RLZXl3b3JkcyA/ICh0eXBlb2YgJHNjaCA9PSAnb2JqZWN0JyAmJiBPYmplY3Qua2V5cygkc2NoKS5sZW5ndGggPiAwKSB8fCAkc2NoID09PSBmYWxzZSA6IGl0LnV0aWwuc2NoZW1hSGFzUnVsZXMoJHNjaCwgaXQuUlVMRVMuYWxsKSk7XG4gIH0pO1xuICBpZiAoJG5vRW1wdHlTY2hlbWEpIHtcbiAgICB2YXIgJGN1cnJlbnRCYXNlSWQgPSAkaXQuYmFzZUlkO1xuICAgIG91dCArPSAnIHZhciAnICsgKCRlcnJzKSArICcgPSBlcnJvcnM7IHZhciAnICsgKCR2YWxpZCkgKyAnID0gZmFsc2U7ICAnO1xuICAgIHZhciAkd2FzQ29tcG9zaXRlID0gaXQuY29tcG9zaXRlUnVsZTtcbiAgICBpdC5jb21wb3NpdGVSdWxlID0gJGl0LmNvbXBvc2l0ZVJ1bGUgPSB0cnVlO1xuICAgIHZhciBhcnIxID0gJHNjaGVtYTtcbiAgICBpZiAoYXJyMSkge1xuICAgICAgdmFyICRzY2gsICRpID0gLTEsXG4gICAgICAgIGwxID0gYXJyMS5sZW5ndGggLSAxO1xuICAgICAgd2hpbGUgKCRpIDwgbDEpIHtcbiAgICAgICAgJHNjaCA9IGFycjFbJGkgKz0gMV07XG4gICAgICAgICRpdC5zY2hlbWEgPSAkc2NoO1xuICAgICAgICAkaXQuc2NoZW1hUGF0aCA9ICRzY2hlbWFQYXRoICsgJ1snICsgJGkgKyAnXSc7XG4gICAgICAgICRpdC5lcnJTY2hlbWFQYXRoID0gJGVyclNjaGVtYVBhdGggKyAnLycgKyAkaTtcbiAgICAgICAgb3V0ICs9ICcgICcgKyAoaXQudmFsaWRhdGUoJGl0KSkgKyAnICc7XG4gICAgICAgICRpdC5iYXNlSWQgPSAkY3VycmVudEJhc2VJZDtcbiAgICAgICAgb3V0ICs9ICcgJyArICgkdmFsaWQpICsgJyA9ICcgKyAoJHZhbGlkKSArICcgfHwgJyArICgkbmV4dFZhbGlkKSArICc7IGlmICghJyArICgkdmFsaWQpICsgJykgeyAnO1xuICAgICAgICAkY2xvc2luZ0JyYWNlcyArPSAnfSc7XG4gICAgICB9XG4gICAgfVxuICAgIGl0LmNvbXBvc2l0ZVJ1bGUgPSAkaXQuY29tcG9zaXRlUnVsZSA9ICR3YXNDb21wb3NpdGU7XG4gICAgb3V0ICs9ICcgJyArICgkY2xvc2luZ0JyYWNlcykgKyAnIGlmICghJyArICgkdmFsaWQpICsgJykgeyAgIHZhciBlcnIgPSAgICc7IC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgaWYgKGl0LmNyZWF0ZUVycm9ycyAhPT0gZmFsc2UpIHtcbiAgICAgIG91dCArPSAnIHsga2V5d29yZDogXFwnJyArICgnYW55T2YnKSArICdcXCcgLCBkYXRhUGF0aDogKGRhdGFQYXRoIHx8IFxcJ1xcJykgKyAnICsgKGl0LmVycm9yUGF0aCkgKyAnICwgc2NoZW1hUGF0aDogJyArIChpdC51dGlsLnRvUXVvdGVkU3RyaW5nKCRlcnJTY2hlbWFQYXRoKSkgKyAnICwgcGFyYW1zOiB7fSAnO1xuICAgICAgaWYgKGl0Lm9wdHMubWVzc2FnZXMgIT09IGZhbHNlKSB7XG4gICAgICAgIG91dCArPSAnICwgbWVzc2FnZTogXFwnc2hvdWxkIG1hdGNoIHNvbWUgc2NoZW1hIGluIGFueU9mXFwnICc7XG4gICAgICB9XG4gICAgICBpZiAoaXQub3B0cy52ZXJib3NlKSB7XG4gICAgICAgIG91dCArPSAnICwgc2NoZW1hOiB2YWxpZGF0ZS5zY2hlbWEnICsgKCRzY2hlbWFQYXRoKSArICcgLCBwYXJlbnRTY2hlbWE6IHZhbGlkYXRlLnNjaGVtYScgKyAoaXQuc2NoZW1hUGF0aCkgKyAnICwgZGF0YTogJyArICgkZGF0YSkgKyAnICc7XG4gICAgICB9XG4gICAgICBvdXQgKz0gJyB9ICc7XG4gICAgfSBlbHNlIHtcbiAgICAgIG91dCArPSAnIHt9ICc7XG4gICAgfVxuICAgIG91dCArPSAnOyAgaWYgKHZFcnJvcnMgPT09IG51bGwpIHZFcnJvcnMgPSBbZXJyXTsgZWxzZSB2RXJyb3JzLnB1c2goZXJyKTsgZXJyb3JzKys7ICc7XG4gICAgaWYgKCFpdC5jb21wb3NpdGVSdWxlICYmICRicmVha09uRXJyb3IpIHtcbiAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBpZiAqL1xuICAgICAgaWYgKGl0LmFzeW5jKSB7XG4gICAgICAgIG91dCArPSAnIHRocm93IG5ldyBWYWxpZGF0aW9uRXJyb3IodkVycm9ycyk7ICc7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBvdXQgKz0gJyB2YWxpZGF0ZS5lcnJvcnMgPSB2RXJyb3JzOyByZXR1cm4gZmFsc2U7ICc7XG4gICAgICB9XG4gICAgfVxuICAgIG91dCArPSAnIH0gZWxzZSB7ICBlcnJvcnMgPSAnICsgKCRlcnJzKSArICc7IGlmICh2RXJyb3JzICE9PSBudWxsKSB7IGlmICgnICsgKCRlcnJzKSArICcpIHZFcnJvcnMubGVuZ3RoID0gJyArICgkZXJycykgKyAnOyBlbHNlIHZFcnJvcnMgPSBudWxsOyB9ICc7XG4gICAgaWYgKGl0Lm9wdHMuYWxsRXJyb3JzKSB7XG4gICAgICBvdXQgKz0gJyB9ICc7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIGlmICgkYnJlYWtPbkVycm9yKSB7XG4gICAgICBvdXQgKz0gJyBpZiAodHJ1ZSkgeyAnO1xuICAgIH1cbiAgfVxuICByZXR1cm4gb3V0O1xufVxuIiwgIid1c2Ugc3RyaWN0Jztcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gZ2VuZXJhdGVfY29tbWVudChpdCwgJGtleXdvcmQsICRydWxlVHlwZSkge1xuICB2YXIgb3V0ID0gJyAnO1xuICB2YXIgJHNjaGVtYSA9IGl0LnNjaGVtYVska2V5d29yZF07XG4gIHZhciAkZXJyU2NoZW1hUGF0aCA9IGl0LmVyclNjaGVtYVBhdGggKyAnLycgKyAka2V5d29yZDtcbiAgdmFyICRicmVha09uRXJyb3IgPSAhaXQub3B0cy5hbGxFcnJvcnM7XG4gIHZhciAkY29tbWVudCA9IGl0LnV0aWwudG9RdW90ZWRTdHJpbmcoJHNjaGVtYSk7XG4gIGlmIChpdC5vcHRzLiRjb21tZW50ID09PSB0cnVlKSB7XG4gICAgb3V0ICs9ICcgY29uc29sZS5sb2coJyArICgkY29tbWVudCkgKyAnKTsnO1xuICB9IGVsc2UgaWYgKHR5cGVvZiBpdC5vcHRzLiRjb21tZW50ID09ICdmdW5jdGlvbicpIHtcbiAgICBvdXQgKz0gJyBzZWxmLl9vcHRzLiRjb21tZW50KCcgKyAoJGNvbW1lbnQpICsgJywgJyArIChpdC51dGlsLnRvUXVvdGVkU3RyaW5nKCRlcnJTY2hlbWFQYXRoKSkgKyAnLCB2YWxpZGF0ZS5yb290LnNjaGVtYSk7JztcbiAgfVxuICByZXR1cm4gb3V0O1xufVxuIiwgIid1c2Ugc3RyaWN0Jztcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gZ2VuZXJhdGVfY29uc3QoaXQsICRrZXl3b3JkLCAkcnVsZVR5cGUpIHtcbiAgdmFyIG91dCA9ICcgJztcbiAgdmFyICRsdmwgPSBpdC5sZXZlbDtcbiAgdmFyICRkYXRhTHZsID0gaXQuZGF0YUxldmVsO1xuICB2YXIgJHNjaGVtYSA9IGl0LnNjaGVtYVska2V5d29yZF07XG4gIHZhciAkc2NoZW1hUGF0aCA9IGl0LnNjaGVtYVBhdGggKyBpdC51dGlsLmdldFByb3BlcnR5KCRrZXl3b3JkKTtcbiAgdmFyICRlcnJTY2hlbWFQYXRoID0gaXQuZXJyU2NoZW1hUGF0aCArICcvJyArICRrZXl3b3JkO1xuICB2YXIgJGJyZWFrT25FcnJvciA9ICFpdC5vcHRzLmFsbEVycm9ycztcbiAgdmFyICRkYXRhID0gJ2RhdGEnICsgKCRkYXRhTHZsIHx8ICcnKTtcbiAgdmFyICR2YWxpZCA9ICd2YWxpZCcgKyAkbHZsO1xuICB2YXIgJGlzRGF0YSA9IGl0Lm9wdHMuJGRhdGEgJiYgJHNjaGVtYSAmJiAkc2NoZW1hLiRkYXRhLFxuICAgICRzY2hlbWFWYWx1ZTtcbiAgaWYgKCRpc0RhdGEpIHtcbiAgICBvdXQgKz0gJyB2YXIgc2NoZW1hJyArICgkbHZsKSArICcgPSAnICsgKGl0LnV0aWwuZ2V0RGF0YSgkc2NoZW1hLiRkYXRhLCAkZGF0YUx2bCwgaXQuZGF0YVBhdGhBcnIpKSArICc7ICc7XG4gICAgJHNjaGVtYVZhbHVlID0gJ3NjaGVtYScgKyAkbHZsO1xuICB9IGVsc2Uge1xuICAgICRzY2hlbWFWYWx1ZSA9ICRzY2hlbWE7XG4gIH1cbiAgaWYgKCEkaXNEYXRhKSB7XG4gICAgb3V0ICs9ICcgdmFyIHNjaGVtYScgKyAoJGx2bCkgKyAnID0gdmFsaWRhdGUuc2NoZW1hJyArICgkc2NoZW1hUGF0aCkgKyAnOyc7XG4gIH1cbiAgb3V0ICs9ICd2YXIgJyArICgkdmFsaWQpICsgJyA9IGVxdWFsKCcgKyAoJGRhdGEpICsgJywgc2NoZW1hJyArICgkbHZsKSArICcpOyBpZiAoIScgKyAoJHZhbGlkKSArICcpIHsgICAnO1xuICB2YXIgJCRvdXRTdGFjayA9ICQkb3V0U3RhY2sgfHwgW107XG4gICQkb3V0U3RhY2sucHVzaChvdXQpO1xuICBvdXQgPSAnJzsgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgaWYgKGl0LmNyZWF0ZUVycm9ycyAhPT0gZmFsc2UpIHtcbiAgICBvdXQgKz0gJyB7IGtleXdvcmQ6IFxcJycgKyAoJ2NvbnN0JykgKyAnXFwnICwgZGF0YVBhdGg6IChkYXRhUGF0aCB8fCBcXCdcXCcpICsgJyArIChpdC5lcnJvclBhdGgpICsgJyAsIHNjaGVtYVBhdGg6ICcgKyAoaXQudXRpbC50b1F1b3RlZFN0cmluZygkZXJyU2NoZW1hUGF0aCkpICsgJyAsIHBhcmFtczogeyBhbGxvd2VkVmFsdWU6IHNjaGVtYScgKyAoJGx2bCkgKyAnIH0gJztcbiAgICBpZiAoaXQub3B0cy5tZXNzYWdlcyAhPT0gZmFsc2UpIHtcbiAgICAgIG91dCArPSAnICwgbWVzc2FnZTogXFwnc2hvdWxkIGJlIGVxdWFsIHRvIGNvbnN0YW50XFwnICc7XG4gICAgfVxuICAgIGlmIChpdC5vcHRzLnZlcmJvc2UpIHtcbiAgICAgIG91dCArPSAnICwgc2NoZW1hOiB2YWxpZGF0ZS5zY2hlbWEnICsgKCRzY2hlbWFQYXRoKSArICcgLCBwYXJlbnRTY2hlbWE6IHZhbGlkYXRlLnNjaGVtYScgKyAoaXQuc2NoZW1hUGF0aCkgKyAnICwgZGF0YTogJyArICgkZGF0YSkgKyAnICc7XG4gICAgfVxuICAgIG91dCArPSAnIH0gJztcbiAgfSBlbHNlIHtcbiAgICBvdXQgKz0gJyB7fSAnO1xuICB9XG4gIHZhciBfX2VyciA9IG91dDtcbiAgb3V0ID0gJCRvdXRTdGFjay5wb3AoKTtcbiAgaWYgKCFpdC5jb21wb3NpdGVSdWxlICYmICRicmVha09uRXJyb3IpIHtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgaWYgKi9cbiAgICBpZiAoaXQuYXN5bmMpIHtcbiAgICAgIG91dCArPSAnIHRocm93IG5ldyBWYWxpZGF0aW9uRXJyb3IoWycgKyAoX19lcnIpICsgJ10pOyAnO1xuICAgIH0gZWxzZSB7XG4gICAgICBvdXQgKz0gJyB2YWxpZGF0ZS5lcnJvcnMgPSBbJyArIChfX2VycikgKyAnXTsgcmV0dXJuIGZhbHNlOyAnO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBvdXQgKz0gJyB2YXIgZXJyID0gJyArIChfX2VycikgKyAnOyAgaWYgKHZFcnJvcnMgPT09IG51bGwpIHZFcnJvcnMgPSBbZXJyXTsgZWxzZSB2RXJyb3JzLnB1c2goZXJyKTsgZXJyb3JzKys7ICc7XG4gIH1cbiAgb3V0ICs9ICcgfSc7XG4gIGlmICgkYnJlYWtPbkVycm9yKSB7XG4gICAgb3V0ICs9ICcgZWxzZSB7ICc7XG4gIH1cbiAgcmV0dXJuIG91dDtcbn1cbiIsICIndXNlIHN0cmljdCc7XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIGdlbmVyYXRlX2NvbnRhaW5zKGl0LCAka2V5d29yZCwgJHJ1bGVUeXBlKSB7XG4gIHZhciBvdXQgPSAnICc7XG4gIHZhciAkbHZsID0gaXQubGV2ZWw7XG4gIHZhciAkZGF0YUx2bCA9IGl0LmRhdGFMZXZlbDtcbiAgdmFyICRzY2hlbWEgPSBpdC5zY2hlbWFbJGtleXdvcmRdO1xuICB2YXIgJHNjaGVtYVBhdGggPSBpdC5zY2hlbWFQYXRoICsgaXQudXRpbC5nZXRQcm9wZXJ0eSgka2V5d29yZCk7XG4gIHZhciAkZXJyU2NoZW1hUGF0aCA9IGl0LmVyclNjaGVtYVBhdGggKyAnLycgKyAka2V5d29yZDtcbiAgdmFyICRicmVha09uRXJyb3IgPSAhaXQub3B0cy5hbGxFcnJvcnM7XG4gIHZhciAkZGF0YSA9ICdkYXRhJyArICgkZGF0YUx2bCB8fCAnJyk7XG4gIHZhciAkdmFsaWQgPSAndmFsaWQnICsgJGx2bDtcbiAgdmFyICRlcnJzID0gJ2VycnNfXycgKyAkbHZsO1xuICB2YXIgJGl0ID0gaXQudXRpbC5jb3B5KGl0KTtcbiAgdmFyICRjbG9zaW5nQnJhY2VzID0gJyc7XG4gICRpdC5sZXZlbCsrO1xuICB2YXIgJG5leHRWYWxpZCA9ICd2YWxpZCcgKyAkaXQubGV2ZWw7XG4gIHZhciAkaWR4ID0gJ2knICsgJGx2bCxcbiAgICAkZGF0YU54dCA9ICRpdC5kYXRhTGV2ZWwgPSBpdC5kYXRhTGV2ZWwgKyAxLFxuICAgICRuZXh0RGF0YSA9ICdkYXRhJyArICRkYXRhTnh0LFxuICAgICRjdXJyZW50QmFzZUlkID0gaXQuYmFzZUlkLFxuICAgICRub25FbXB0eVNjaGVtYSA9IChpdC5vcHRzLnN0cmljdEtleXdvcmRzID8gKHR5cGVvZiAkc2NoZW1hID09ICdvYmplY3QnICYmIE9iamVjdC5rZXlzKCRzY2hlbWEpLmxlbmd0aCA+IDApIHx8ICRzY2hlbWEgPT09IGZhbHNlIDogaXQudXRpbC5zY2hlbWFIYXNSdWxlcygkc2NoZW1hLCBpdC5SVUxFUy5hbGwpKTtcbiAgb3V0ICs9ICd2YXIgJyArICgkZXJycykgKyAnID0gZXJyb3JzO3ZhciAnICsgKCR2YWxpZCkgKyAnOyc7XG4gIGlmICgkbm9uRW1wdHlTY2hlbWEpIHtcbiAgICB2YXIgJHdhc0NvbXBvc2l0ZSA9IGl0LmNvbXBvc2l0ZVJ1bGU7XG4gICAgaXQuY29tcG9zaXRlUnVsZSA9ICRpdC5jb21wb3NpdGVSdWxlID0gdHJ1ZTtcbiAgICAkaXQuc2NoZW1hID0gJHNjaGVtYTtcbiAgICAkaXQuc2NoZW1hUGF0aCA9ICRzY2hlbWFQYXRoO1xuICAgICRpdC5lcnJTY2hlbWFQYXRoID0gJGVyclNjaGVtYVBhdGg7XG4gICAgb3V0ICs9ICcgdmFyICcgKyAoJG5leHRWYWxpZCkgKyAnID0gZmFsc2U7IGZvciAodmFyICcgKyAoJGlkeCkgKyAnID0gMDsgJyArICgkaWR4KSArICcgPCAnICsgKCRkYXRhKSArICcubGVuZ3RoOyAnICsgKCRpZHgpICsgJysrKSB7ICc7XG4gICAgJGl0LmVycm9yUGF0aCA9IGl0LnV0aWwuZ2V0UGF0aEV4cHIoaXQuZXJyb3JQYXRoLCAkaWR4LCBpdC5vcHRzLmpzb25Qb2ludGVycywgdHJ1ZSk7XG4gICAgdmFyICRwYXNzRGF0YSA9ICRkYXRhICsgJ1snICsgJGlkeCArICddJztcbiAgICAkaXQuZGF0YVBhdGhBcnJbJGRhdGFOeHRdID0gJGlkeDtcbiAgICB2YXIgJGNvZGUgPSBpdC52YWxpZGF0ZSgkaXQpO1xuICAgICRpdC5iYXNlSWQgPSAkY3VycmVudEJhc2VJZDtcbiAgICBpZiAoaXQudXRpbC52YXJPY2N1cmVuY2VzKCRjb2RlLCAkbmV4dERhdGEpIDwgMikge1xuICAgICAgb3V0ICs9ICcgJyArIChpdC51dGlsLnZhclJlcGxhY2UoJGNvZGUsICRuZXh0RGF0YSwgJHBhc3NEYXRhKSkgKyAnICc7XG4gICAgfSBlbHNlIHtcbiAgICAgIG91dCArPSAnIHZhciAnICsgKCRuZXh0RGF0YSkgKyAnID0gJyArICgkcGFzc0RhdGEpICsgJzsgJyArICgkY29kZSkgKyAnICc7XG4gICAgfVxuICAgIG91dCArPSAnIGlmICgnICsgKCRuZXh0VmFsaWQpICsgJykgYnJlYWs7IH0gICc7XG4gICAgaXQuY29tcG9zaXRlUnVsZSA9ICRpdC5jb21wb3NpdGVSdWxlID0gJHdhc0NvbXBvc2l0ZTtcbiAgICBvdXQgKz0gJyAnICsgKCRjbG9zaW5nQnJhY2VzKSArICcgaWYgKCEnICsgKCRuZXh0VmFsaWQpICsgJykgeyc7XG4gIH0gZWxzZSB7XG4gICAgb3V0ICs9ICcgaWYgKCcgKyAoJGRhdGEpICsgJy5sZW5ndGggPT0gMCkgeyc7XG4gIH1cbiAgdmFyICQkb3V0U3RhY2sgPSAkJG91dFN0YWNrIHx8IFtdO1xuICAkJG91dFN0YWNrLnB1c2gob3V0KTtcbiAgb3V0ID0gJyc7IC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gIGlmIChpdC5jcmVhdGVFcnJvcnMgIT09IGZhbHNlKSB7XG4gICAgb3V0ICs9ICcgeyBrZXl3b3JkOiBcXCcnICsgKCdjb250YWlucycpICsgJ1xcJyAsIGRhdGFQYXRoOiAoZGF0YVBhdGggfHwgXFwnXFwnKSArICcgKyAoaXQuZXJyb3JQYXRoKSArICcgLCBzY2hlbWFQYXRoOiAnICsgKGl0LnV0aWwudG9RdW90ZWRTdHJpbmcoJGVyclNjaGVtYVBhdGgpKSArICcgLCBwYXJhbXM6IHt9ICc7XG4gICAgaWYgKGl0Lm9wdHMubWVzc2FnZXMgIT09IGZhbHNlKSB7XG4gICAgICBvdXQgKz0gJyAsIG1lc3NhZ2U6IFxcJ3Nob3VsZCBjb250YWluIGEgdmFsaWQgaXRlbVxcJyAnO1xuICAgIH1cbiAgICBpZiAoaXQub3B0cy52ZXJib3NlKSB7XG4gICAgICBvdXQgKz0gJyAsIHNjaGVtYTogdmFsaWRhdGUuc2NoZW1hJyArICgkc2NoZW1hUGF0aCkgKyAnICwgcGFyZW50U2NoZW1hOiB2YWxpZGF0ZS5zY2hlbWEnICsgKGl0LnNjaGVtYVBhdGgpICsgJyAsIGRhdGE6ICcgKyAoJGRhdGEpICsgJyAnO1xuICAgIH1cbiAgICBvdXQgKz0gJyB9ICc7XG4gIH0gZWxzZSB7XG4gICAgb3V0ICs9ICcge30gJztcbiAgfVxuICB2YXIgX19lcnIgPSBvdXQ7XG4gIG91dCA9ICQkb3V0U3RhY2sucG9wKCk7XG4gIGlmICghaXQuY29tcG9zaXRlUnVsZSAmJiAkYnJlYWtPbkVycm9yKSB7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIGlmICovXG4gICAgaWYgKGl0LmFzeW5jKSB7XG4gICAgICBvdXQgKz0gJyB0aHJvdyBuZXcgVmFsaWRhdGlvbkVycm9yKFsnICsgKF9fZXJyKSArICddKTsgJztcbiAgICB9IGVsc2Uge1xuICAgICAgb3V0ICs9ICcgdmFsaWRhdGUuZXJyb3JzID0gWycgKyAoX19lcnIpICsgJ107IHJldHVybiBmYWxzZTsgJztcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgb3V0ICs9ICcgdmFyIGVyciA9ICcgKyAoX19lcnIpICsgJzsgIGlmICh2RXJyb3JzID09PSBudWxsKSB2RXJyb3JzID0gW2Vycl07IGVsc2UgdkVycm9ycy5wdXNoKGVycik7IGVycm9ycysrOyAnO1xuICB9XG4gIG91dCArPSAnIH0gZWxzZSB7ICc7XG4gIGlmICgkbm9uRW1wdHlTY2hlbWEpIHtcbiAgICBvdXQgKz0gJyAgZXJyb3JzID0gJyArICgkZXJycykgKyAnOyBpZiAodkVycm9ycyAhPT0gbnVsbCkgeyBpZiAoJyArICgkZXJycykgKyAnKSB2RXJyb3JzLmxlbmd0aCA9ICcgKyAoJGVycnMpICsgJzsgZWxzZSB2RXJyb3JzID0gbnVsbDsgfSAnO1xuICB9XG4gIGlmIChpdC5vcHRzLmFsbEVycm9ycykge1xuICAgIG91dCArPSAnIH0gJztcbiAgfVxuICByZXR1cm4gb3V0O1xufVxuIiwgIid1c2Ugc3RyaWN0Jztcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gZ2VuZXJhdGVfZGVwZW5kZW5jaWVzKGl0LCAka2V5d29yZCwgJHJ1bGVUeXBlKSB7XG4gIHZhciBvdXQgPSAnICc7XG4gIHZhciAkbHZsID0gaXQubGV2ZWw7XG4gIHZhciAkZGF0YUx2bCA9IGl0LmRhdGFMZXZlbDtcbiAgdmFyICRzY2hlbWEgPSBpdC5zY2hlbWFbJGtleXdvcmRdO1xuICB2YXIgJHNjaGVtYVBhdGggPSBpdC5zY2hlbWFQYXRoICsgaXQudXRpbC5nZXRQcm9wZXJ0eSgka2V5d29yZCk7XG4gIHZhciAkZXJyU2NoZW1hUGF0aCA9IGl0LmVyclNjaGVtYVBhdGggKyAnLycgKyAka2V5d29yZDtcbiAgdmFyICRicmVha09uRXJyb3IgPSAhaXQub3B0cy5hbGxFcnJvcnM7XG4gIHZhciAkZGF0YSA9ICdkYXRhJyArICgkZGF0YUx2bCB8fCAnJyk7XG4gIHZhciAkZXJycyA9ICdlcnJzX18nICsgJGx2bDtcbiAgdmFyICRpdCA9IGl0LnV0aWwuY29weShpdCk7XG4gIHZhciAkY2xvc2luZ0JyYWNlcyA9ICcnO1xuICAkaXQubGV2ZWwrKztcbiAgdmFyICRuZXh0VmFsaWQgPSAndmFsaWQnICsgJGl0LmxldmVsO1xuICB2YXIgJHNjaGVtYURlcHMgPSB7fSxcbiAgICAkcHJvcGVydHlEZXBzID0ge30sXG4gICAgJG93blByb3BlcnRpZXMgPSBpdC5vcHRzLm93blByb3BlcnRpZXM7XG4gIGZvciAoJHByb3BlcnR5IGluICRzY2hlbWEpIHtcbiAgICBpZiAoJHByb3BlcnR5ID09ICdfX3Byb3RvX18nKSBjb250aW51ZTtcbiAgICB2YXIgJHNjaCA9ICRzY2hlbWFbJHByb3BlcnR5XTtcbiAgICB2YXIgJGRlcHMgPSBBcnJheS5pc0FycmF5KCRzY2gpID8gJHByb3BlcnR5RGVwcyA6ICRzY2hlbWFEZXBzO1xuICAgICRkZXBzWyRwcm9wZXJ0eV0gPSAkc2NoO1xuICB9XG4gIG91dCArPSAndmFyICcgKyAoJGVycnMpICsgJyA9IGVycm9yczsnO1xuICB2YXIgJGN1cnJlbnRFcnJvclBhdGggPSBpdC5lcnJvclBhdGg7XG4gIG91dCArPSAndmFyIG1pc3NpbmcnICsgKCRsdmwpICsgJzsnO1xuICBmb3IgKHZhciAkcHJvcGVydHkgaW4gJHByb3BlcnR5RGVwcykge1xuICAgICRkZXBzID0gJHByb3BlcnR5RGVwc1skcHJvcGVydHldO1xuICAgIGlmICgkZGVwcy5sZW5ndGgpIHtcbiAgICAgIG91dCArPSAnIGlmICggJyArICgkZGF0YSkgKyAoaXQudXRpbC5nZXRQcm9wZXJ0eSgkcHJvcGVydHkpKSArICcgIT09IHVuZGVmaW5lZCAnO1xuICAgICAgaWYgKCRvd25Qcm9wZXJ0aWVzKSB7XG4gICAgICAgIG91dCArPSAnICYmIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCgnICsgKCRkYXRhKSArICcsIFxcJycgKyAoaXQudXRpbC5lc2NhcGVRdW90ZXMoJHByb3BlcnR5KSkgKyAnXFwnKSAnO1xuICAgICAgfVxuICAgICAgaWYgKCRicmVha09uRXJyb3IpIHtcbiAgICAgICAgb3V0ICs9ICcgJiYgKCAnO1xuICAgICAgICB2YXIgYXJyMSA9ICRkZXBzO1xuICAgICAgICBpZiAoYXJyMSkge1xuICAgICAgICAgIHZhciAkcHJvcGVydHlLZXksICRpID0gLTEsXG4gICAgICAgICAgICBsMSA9IGFycjEubGVuZ3RoIC0gMTtcbiAgICAgICAgICB3aGlsZSAoJGkgPCBsMSkge1xuICAgICAgICAgICAgJHByb3BlcnR5S2V5ID0gYXJyMVskaSArPSAxXTtcbiAgICAgICAgICAgIGlmICgkaSkge1xuICAgICAgICAgICAgICBvdXQgKz0gJyB8fCAnO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdmFyICRwcm9wID0gaXQudXRpbC5nZXRQcm9wZXJ0eSgkcHJvcGVydHlLZXkpLFxuICAgICAgICAgICAgICAkdXNlRGF0YSA9ICRkYXRhICsgJHByb3A7XG4gICAgICAgICAgICBvdXQgKz0gJyAoICggJyArICgkdXNlRGF0YSkgKyAnID09PSB1bmRlZmluZWQgJztcbiAgICAgICAgICAgIGlmICgkb3duUHJvcGVydGllcykge1xuICAgICAgICAgICAgICBvdXQgKz0gJyB8fCAhIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCgnICsgKCRkYXRhKSArICcsIFxcJycgKyAoaXQudXRpbC5lc2NhcGVRdW90ZXMoJHByb3BlcnR5S2V5KSkgKyAnXFwnKSAnO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgb3V0ICs9ICcpICYmIChtaXNzaW5nJyArICgkbHZsKSArICcgPSAnICsgKGl0LnV0aWwudG9RdW90ZWRTdHJpbmcoaXQub3B0cy5qc29uUG9pbnRlcnMgPyAkcHJvcGVydHlLZXkgOiAkcHJvcCkpICsgJykgKSAnO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBvdXQgKz0gJykpIHsgICc7XG4gICAgICAgIHZhciAkcHJvcGVydHlQYXRoID0gJ21pc3NpbmcnICsgJGx2bCxcbiAgICAgICAgICAkbWlzc2luZ1Byb3BlcnR5ID0gJ1xcJyArICcgKyAkcHJvcGVydHlQYXRoICsgJyArIFxcJyc7XG4gICAgICAgIGlmIChpdC5vcHRzLl9lcnJvckRhdGFQYXRoUHJvcGVydHkpIHtcbiAgICAgICAgICBpdC5lcnJvclBhdGggPSBpdC5vcHRzLmpzb25Qb2ludGVycyA/IGl0LnV0aWwuZ2V0UGF0aEV4cHIoJGN1cnJlbnRFcnJvclBhdGgsICRwcm9wZXJ0eVBhdGgsIHRydWUpIDogJGN1cnJlbnRFcnJvclBhdGggKyAnICsgJyArICRwcm9wZXJ0eVBhdGg7XG4gICAgICAgIH1cbiAgICAgICAgdmFyICQkb3V0U3RhY2sgPSAkJG91dFN0YWNrIHx8IFtdO1xuICAgICAgICAkJG91dFN0YWNrLnB1c2gob3V0KTtcbiAgICAgICAgb3V0ID0gJyc7IC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgICAgIGlmIChpdC5jcmVhdGVFcnJvcnMgIT09IGZhbHNlKSB7XG4gICAgICAgICAgb3V0ICs9ICcgeyBrZXl3b3JkOiBcXCcnICsgKCdkZXBlbmRlbmNpZXMnKSArICdcXCcgLCBkYXRhUGF0aDogKGRhdGFQYXRoIHx8IFxcJ1xcJykgKyAnICsgKGl0LmVycm9yUGF0aCkgKyAnICwgc2NoZW1hUGF0aDogJyArIChpdC51dGlsLnRvUXVvdGVkU3RyaW5nKCRlcnJTY2hlbWFQYXRoKSkgKyAnICwgcGFyYW1zOiB7IHByb3BlcnR5OiBcXCcnICsgKGl0LnV0aWwuZXNjYXBlUXVvdGVzKCRwcm9wZXJ0eSkpICsgJ1xcJywgbWlzc2luZ1Byb3BlcnR5OiBcXCcnICsgKCRtaXNzaW5nUHJvcGVydHkpICsgJ1xcJywgZGVwc0NvdW50OiAnICsgKCRkZXBzLmxlbmd0aCkgKyAnLCBkZXBzOiBcXCcnICsgKGl0LnV0aWwuZXNjYXBlUXVvdGVzKCRkZXBzLmxlbmd0aCA9PSAxID8gJGRlcHNbMF0gOiAkZGVwcy5qb2luKFwiLCBcIikpKSArICdcXCcgfSAnO1xuICAgICAgICAgIGlmIChpdC5vcHRzLm1lc3NhZ2VzICE9PSBmYWxzZSkge1xuICAgICAgICAgICAgb3V0ICs9ICcgLCBtZXNzYWdlOiBcXCdzaG91bGQgaGF2ZSAnO1xuICAgICAgICAgICAgaWYgKCRkZXBzLmxlbmd0aCA9PSAxKSB7XG4gICAgICAgICAgICAgIG91dCArPSAncHJvcGVydHkgJyArIChpdC51dGlsLmVzY2FwZVF1b3RlcygkZGVwc1swXSkpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgb3V0ICs9ICdwcm9wZXJ0aWVzICcgKyAoaXQudXRpbC5lc2NhcGVRdW90ZXMoJGRlcHMuam9pbihcIiwgXCIpKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBvdXQgKz0gJyB3aGVuIHByb3BlcnR5ICcgKyAoaXQudXRpbC5lc2NhcGVRdW90ZXMoJHByb3BlcnR5KSkgKyAnIGlzIHByZXNlbnRcXCcgJztcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGl0Lm9wdHMudmVyYm9zZSkge1xuICAgICAgICAgICAgb3V0ICs9ICcgLCBzY2hlbWE6IHZhbGlkYXRlLnNjaGVtYScgKyAoJHNjaGVtYVBhdGgpICsgJyAsIHBhcmVudFNjaGVtYTogdmFsaWRhdGUuc2NoZW1hJyArIChpdC5zY2hlbWFQYXRoKSArICcgLCBkYXRhOiAnICsgKCRkYXRhKSArICcgJztcbiAgICAgICAgICB9XG4gICAgICAgICAgb3V0ICs9ICcgfSAnO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIG91dCArPSAnIHt9ICc7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIF9fZXJyID0gb3V0O1xuICAgICAgICBvdXQgPSAkJG91dFN0YWNrLnBvcCgpO1xuICAgICAgICBpZiAoIWl0LmNvbXBvc2l0ZVJ1bGUgJiYgJGJyZWFrT25FcnJvcikge1xuICAgICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBpZiAqL1xuICAgICAgICAgIGlmIChpdC5hc3luYykge1xuICAgICAgICAgICAgb3V0ICs9ICcgdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcihbJyArIChfX2VycikgKyAnXSk7ICc7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIG91dCArPSAnIHZhbGlkYXRlLmVycm9ycyA9IFsnICsgKF9fZXJyKSArICddOyByZXR1cm4gZmFsc2U7ICc7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIG91dCArPSAnIHZhciBlcnIgPSAnICsgKF9fZXJyKSArICc7ICBpZiAodkVycm9ycyA9PT0gbnVsbCkgdkVycm9ycyA9IFtlcnJdOyBlbHNlIHZFcnJvcnMucHVzaChlcnIpOyBlcnJvcnMrKzsgJztcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgb3V0ICs9ICcgKSB7ICc7XG4gICAgICAgIHZhciBhcnIyID0gJGRlcHM7XG4gICAgICAgIGlmIChhcnIyKSB7XG4gICAgICAgICAgdmFyICRwcm9wZXJ0eUtleSwgaTIgPSAtMSxcbiAgICAgICAgICAgIGwyID0gYXJyMi5sZW5ndGggLSAxO1xuICAgICAgICAgIHdoaWxlIChpMiA8IGwyKSB7XG4gICAgICAgICAgICAkcHJvcGVydHlLZXkgPSBhcnIyW2kyICs9IDFdO1xuICAgICAgICAgICAgdmFyICRwcm9wID0gaXQudXRpbC5nZXRQcm9wZXJ0eSgkcHJvcGVydHlLZXkpLFxuICAgICAgICAgICAgICAkbWlzc2luZ1Byb3BlcnR5ID0gaXQudXRpbC5lc2NhcGVRdW90ZXMoJHByb3BlcnR5S2V5KSxcbiAgICAgICAgICAgICAgJHVzZURhdGEgPSAkZGF0YSArICRwcm9wO1xuICAgICAgICAgICAgaWYgKGl0Lm9wdHMuX2Vycm9yRGF0YVBhdGhQcm9wZXJ0eSkge1xuICAgICAgICAgICAgICBpdC5lcnJvclBhdGggPSBpdC51dGlsLmdldFBhdGgoJGN1cnJlbnRFcnJvclBhdGgsICRwcm9wZXJ0eUtleSwgaXQub3B0cy5qc29uUG9pbnRlcnMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgb3V0ICs9ICcgaWYgKCAnICsgKCR1c2VEYXRhKSArICcgPT09IHVuZGVmaW5lZCAnO1xuICAgICAgICAgICAgaWYgKCRvd25Qcm9wZXJ0aWVzKSB7XG4gICAgICAgICAgICAgIG91dCArPSAnIHx8ICEgT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKCcgKyAoJGRhdGEpICsgJywgXFwnJyArIChpdC51dGlsLmVzY2FwZVF1b3RlcygkcHJvcGVydHlLZXkpKSArICdcXCcpICc7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBvdXQgKz0gJykgeyAgdmFyIGVyciA9ICAgJzsgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICAgICAgICAgIGlmIChpdC5jcmVhdGVFcnJvcnMgIT09IGZhbHNlKSB7XG4gICAgICAgICAgICAgIG91dCArPSAnIHsga2V5d29yZDogXFwnJyArICgnZGVwZW5kZW5jaWVzJykgKyAnXFwnICwgZGF0YVBhdGg6IChkYXRhUGF0aCB8fCBcXCdcXCcpICsgJyArIChpdC5lcnJvclBhdGgpICsgJyAsIHNjaGVtYVBhdGg6ICcgKyAoaXQudXRpbC50b1F1b3RlZFN0cmluZygkZXJyU2NoZW1hUGF0aCkpICsgJyAsIHBhcmFtczogeyBwcm9wZXJ0eTogXFwnJyArIChpdC51dGlsLmVzY2FwZVF1b3RlcygkcHJvcGVydHkpKSArICdcXCcsIG1pc3NpbmdQcm9wZXJ0eTogXFwnJyArICgkbWlzc2luZ1Byb3BlcnR5KSArICdcXCcsIGRlcHNDb3VudDogJyArICgkZGVwcy5sZW5ndGgpICsgJywgZGVwczogXFwnJyArIChpdC51dGlsLmVzY2FwZVF1b3RlcygkZGVwcy5sZW5ndGggPT0gMSA/ICRkZXBzWzBdIDogJGRlcHMuam9pbihcIiwgXCIpKSkgKyAnXFwnIH0gJztcbiAgICAgICAgICAgICAgaWYgKGl0Lm9wdHMubWVzc2FnZXMgIT09IGZhbHNlKSB7XG4gICAgICAgICAgICAgICAgb3V0ICs9ICcgLCBtZXNzYWdlOiBcXCdzaG91bGQgaGF2ZSAnO1xuICAgICAgICAgICAgICAgIGlmICgkZGVwcy5sZW5ndGggPT0gMSkge1xuICAgICAgICAgICAgICAgICAgb3V0ICs9ICdwcm9wZXJ0eSAnICsgKGl0LnV0aWwuZXNjYXBlUXVvdGVzKCRkZXBzWzBdKSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgIG91dCArPSAncHJvcGVydGllcyAnICsgKGl0LnV0aWwuZXNjYXBlUXVvdGVzKCRkZXBzLmpvaW4oXCIsIFwiKSkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBvdXQgKz0gJyB3aGVuIHByb3BlcnR5ICcgKyAoaXQudXRpbC5lc2NhcGVRdW90ZXMoJHByb3BlcnR5KSkgKyAnIGlzIHByZXNlbnRcXCcgJztcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBpZiAoaXQub3B0cy52ZXJib3NlKSB7XG4gICAgICAgICAgICAgICAgb3V0ICs9ICcgLCBzY2hlbWE6IHZhbGlkYXRlLnNjaGVtYScgKyAoJHNjaGVtYVBhdGgpICsgJyAsIHBhcmVudFNjaGVtYTogdmFsaWRhdGUuc2NoZW1hJyArIChpdC5zY2hlbWFQYXRoKSArICcgLCBkYXRhOiAnICsgKCRkYXRhKSArICcgJztcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBvdXQgKz0gJyB9ICc7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBvdXQgKz0gJyB7fSAnO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgb3V0ICs9ICc7ICBpZiAodkVycm9ycyA9PT0gbnVsbCkgdkVycm9ycyA9IFtlcnJdOyBlbHNlIHZFcnJvcnMucHVzaChlcnIpOyBlcnJvcnMrKzsgfSAnO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgb3V0ICs9ICcgfSAgICc7XG4gICAgICBpZiAoJGJyZWFrT25FcnJvcikge1xuICAgICAgICAkY2xvc2luZ0JyYWNlcyArPSAnfSc7XG4gICAgICAgIG91dCArPSAnIGVsc2UgeyAnO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBpdC5lcnJvclBhdGggPSAkY3VycmVudEVycm9yUGF0aDtcbiAgdmFyICRjdXJyZW50QmFzZUlkID0gJGl0LmJhc2VJZDtcbiAgZm9yICh2YXIgJHByb3BlcnR5IGluICRzY2hlbWFEZXBzKSB7XG4gICAgdmFyICRzY2ggPSAkc2NoZW1hRGVwc1skcHJvcGVydHldO1xuICAgIGlmICgoaXQub3B0cy5zdHJpY3RLZXl3b3JkcyA/ICh0eXBlb2YgJHNjaCA9PSAnb2JqZWN0JyAmJiBPYmplY3Qua2V5cygkc2NoKS5sZW5ndGggPiAwKSB8fCAkc2NoID09PSBmYWxzZSA6IGl0LnV0aWwuc2NoZW1hSGFzUnVsZXMoJHNjaCwgaXQuUlVMRVMuYWxsKSkpIHtcbiAgICAgIG91dCArPSAnICcgKyAoJG5leHRWYWxpZCkgKyAnID0gdHJ1ZTsgaWYgKCAnICsgKCRkYXRhKSArIChpdC51dGlsLmdldFByb3BlcnR5KCRwcm9wZXJ0eSkpICsgJyAhPT0gdW5kZWZpbmVkICc7XG4gICAgICBpZiAoJG93blByb3BlcnRpZXMpIHtcbiAgICAgICAgb3V0ICs9ICcgJiYgT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKCcgKyAoJGRhdGEpICsgJywgXFwnJyArIChpdC51dGlsLmVzY2FwZVF1b3RlcygkcHJvcGVydHkpKSArICdcXCcpICc7XG4gICAgICB9XG4gICAgICBvdXQgKz0gJykgeyAnO1xuICAgICAgJGl0LnNjaGVtYSA9ICRzY2g7XG4gICAgICAkaXQuc2NoZW1hUGF0aCA9ICRzY2hlbWFQYXRoICsgaXQudXRpbC5nZXRQcm9wZXJ0eSgkcHJvcGVydHkpO1xuICAgICAgJGl0LmVyclNjaGVtYVBhdGggPSAkZXJyU2NoZW1hUGF0aCArICcvJyArIGl0LnV0aWwuZXNjYXBlRnJhZ21lbnQoJHByb3BlcnR5KTtcbiAgICAgIG91dCArPSAnICAnICsgKGl0LnZhbGlkYXRlKCRpdCkpICsgJyAnO1xuICAgICAgJGl0LmJhc2VJZCA9ICRjdXJyZW50QmFzZUlkO1xuICAgICAgb3V0ICs9ICcgfSAgJztcbiAgICAgIGlmICgkYnJlYWtPbkVycm9yKSB7XG4gICAgICAgIG91dCArPSAnIGlmICgnICsgKCRuZXh0VmFsaWQpICsgJykgeyAnO1xuICAgICAgICAkY2xvc2luZ0JyYWNlcyArPSAnfSc7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIGlmICgkYnJlYWtPbkVycm9yKSB7XG4gICAgb3V0ICs9ICcgICAnICsgKCRjbG9zaW5nQnJhY2VzKSArICcgaWYgKCcgKyAoJGVycnMpICsgJyA9PSBlcnJvcnMpIHsnO1xuICB9XG4gIHJldHVybiBvdXQ7XG59XG4iLCAiJ3VzZSBzdHJpY3QnO1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBnZW5lcmF0ZV9lbnVtKGl0LCAka2V5d29yZCwgJHJ1bGVUeXBlKSB7XG4gIHZhciBvdXQgPSAnICc7XG4gIHZhciAkbHZsID0gaXQubGV2ZWw7XG4gIHZhciAkZGF0YUx2bCA9IGl0LmRhdGFMZXZlbDtcbiAgdmFyICRzY2hlbWEgPSBpdC5zY2hlbWFbJGtleXdvcmRdO1xuICB2YXIgJHNjaGVtYVBhdGggPSBpdC5zY2hlbWFQYXRoICsgaXQudXRpbC5nZXRQcm9wZXJ0eSgka2V5d29yZCk7XG4gIHZhciAkZXJyU2NoZW1hUGF0aCA9IGl0LmVyclNjaGVtYVBhdGggKyAnLycgKyAka2V5d29yZDtcbiAgdmFyICRicmVha09uRXJyb3IgPSAhaXQub3B0cy5hbGxFcnJvcnM7XG4gIHZhciAkZGF0YSA9ICdkYXRhJyArICgkZGF0YUx2bCB8fCAnJyk7XG4gIHZhciAkdmFsaWQgPSAndmFsaWQnICsgJGx2bDtcbiAgdmFyICRpc0RhdGEgPSBpdC5vcHRzLiRkYXRhICYmICRzY2hlbWEgJiYgJHNjaGVtYS4kZGF0YSxcbiAgICAkc2NoZW1hVmFsdWU7XG4gIGlmICgkaXNEYXRhKSB7XG4gICAgb3V0ICs9ICcgdmFyIHNjaGVtYScgKyAoJGx2bCkgKyAnID0gJyArIChpdC51dGlsLmdldERhdGEoJHNjaGVtYS4kZGF0YSwgJGRhdGFMdmwsIGl0LmRhdGFQYXRoQXJyKSkgKyAnOyAnO1xuICAgICRzY2hlbWFWYWx1ZSA9ICdzY2hlbWEnICsgJGx2bDtcbiAgfSBlbHNlIHtcbiAgICAkc2NoZW1hVmFsdWUgPSAkc2NoZW1hO1xuICB9XG4gIHZhciAkaSA9ICdpJyArICRsdmwsXG4gICAgJHZTY2hlbWEgPSAnc2NoZW1hJyArICRsdmw7XG4gIGlmICghJGlzRGF0YSkge1xuICAgIG91dCArPSAnIHZhciAnICsgKCR2U2NoZW1hKSArICcgPSB2YWxpZGF0ZS5zY2hlbWEnICsgKCRzY2hlbWFQYXRoKSArICc7JztcbiAgfVxuICBvdXQgKz0gJ3ZhciAnICsgKCR2YWxpZCkgKyAnOyc7XG4gIGlmICgkaXNEYXRhKSB7XG4gICAgb3V0ICs9ICcgaWYgKHNjaGVtYScgKyAoJGx2bCkgKyAnID09PSB1bmRlZmluZWQpICcgKyAoJHZhbGlkKSArICcgPSB0cnVlOyBlbHNlIGlmICghQXJyYXkuaXNBcnJheShzY2hlbWEnICsgKCRsdmwpICsgJykpICcgKyAoJHZhbGlkKSArICcgPSBmYWxzZTsgZWxzZSB7JztcbiAgfVxuICBvdXQgKz0gJycgKyAoJHZhbGlkKSArICcgPSBmYWxzZTtmb3IgKHZhciAnICsgKCRpKSArICc9MDsgJyArICgkaSkgKyAnPCcgKyAoJHZTY2hlbWEpICsgJy5sZW5ndGg7ICcgKyAoJGkpICsgJysrKSBpZiAoZXF1YWwoJyArICgkZGF0YSkgKyAnLCAnICsgKCR2U2NoZW1hKSArICdbJyArICgkaSkgKyAnXSkpIHsgJyArICgkdmFsaWQpICsgJyA9IHRydWU7IGJyZWFrOyB9JztcbiAgaWYgKCRpc0RhdGEpIHtcbiAgICBvdXQgKz0gJyAgfSAgJztcbiAgfVxuICBvdXQgKz0gJyBpZiAoIScgKyAoJHZhbGlkKSArICcpIHsgICAnO1xuICB2YXIgJCRvdXRTdGFjayA9ICQkb3V0U3RhY2sgfHwgW107XG4gICQkb3V0U3RhY2sucHVzaChvdXQpO1xuICBvdXQgPSAnJzsgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgaWYgKGl0LmNyZWF0ZUVycm9ycyAhPT0gZmFsc2UpIHtcbiAgICBvdXQgKz0gJyB7IGtleXdvcmQ6IFxcJycgKyAoJ2VudW0nKSArICdcXCcgLCBkYXRhUGF0aDogKGRhdGFQYXRoIHx8IFxcJ1xcJykgKyAnICsgKGl0LmVycm9yUGF0aCkgKyAnICwgc2NoZW1hUGF0aDogJyArIChpdC51dGlsLnRvUXVvdGVkU3RyaW5nKCRlcnJTY2hlbWFQYXRoKSkgKyAnICwgcGFyYW1zOiB7IGFsbG93ZWRWYWx1ZXM6IHNjaGVtYScgKyAoJGx2bCkgKyAnIH0gJztcbiAgICBpZiAoaXQub3B0cy5tZXNzYWdlcyAhPT0gZmFsc2UpIHtcbiAgICAgIG91dCArPSAnICwgbWVzc2FnZTogXFwnc2hvdWxkIGJlIGVxdWFsIHRvIG9uZSBvZiB0aGUgYWxsb3dlZCB2YWx1ZXNcXCcgJztcbiAgICB9XG4gICAgaWYgKGl0Lm9wdHMudmVyYm9zZSkge1xuICAgICAgb3V0ICs9ICcgLCBzY2hlbWE6IHZhbGlkYXRlLnNjaGVtYScgKyAoJHNjaGVtYVBhdGgpICsgJyAsIHBhcmVudFNjaGVtYTogdmFsaWRhdGUuc2NoZW1hJyArIChpdC5zY2hlbWFQYXRoKSArICcgLCBkYXRhOiAnICsgKCRkYXRhKSArICcgJztcbiAgICB9XG4gICAgb3V0ICs9ICcgfSAnO1xuICB9IGVsc2Uge1xuICAgIG91dCArPSAnIHt9ICc7XG4gIH1cbiAgdmFyIF9fZXJyID0gb3V0O1xuICBvdXQgPSAkJG91dFN0YWNrLnBvcCgpO1xuICBpZiAoIWl0LmNvbXBvc2l0ZVJ1bGUgJiYgJGJyZWFrT25FcnJvcikge1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBpZiAqL1xuICAgIGlmIChpdC5hc3luYykge1xuICAgICAgb3V0ICs9ICcgdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcihbJyArIChfX2VycikgKyAnXSk7ICc7XG4gICAgfSBlbHNlIHtcbiAgICAgIG91dCArPSAnIHZhbGlkYXRlLmVycm9ycyA9IFsnICsgKF9fZXJyKSArICddOyByZXR1cm4gZmFsc2U7ICc7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIG91dCArPSAnIHZhciBlcnIgPSAnICsgKF9fZXJyKSArICc7ICBpZiAodkVycm9ycyA9PT0gbnVsbCkgdkVycm9ycyA9IFtlcnJdOyBlbHNlIHZFcnJvcnMucHVzaChlcnIpOyBlcnJvcnMrKzsgJztcbiAgfVxuICBvdXQgKz0gJyB9JztcbiAgaWYgKCRicmVha09uRXJyb3IpIHtcbiAgICBvdXQgKz0gJyBlbHNlIHsgJztcbiAgfVxuICByZXR1cm4gb3V0O1xufVxuIiwgIid1c2Ugc3RyaWN0Jztcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gZ2VuZXJhdGVfZm9ybWF0KGl0LCAka2V5d29yZCwgJHJ1bGVUeXBlKSB7XG4gIHZhciBvdXQgPSAnICc7XG4gIHZhciAkbHZsID0gaXQubGV2ZWw7XG4gIHZhciAkZGF0YUx2bCA9IGl0LmRhdGFMZXZlbDtcbiAgdmFyICRzY2hlbWEgPSBpdC5zY2hlbWFbJGtleXdvcmRdO1xuICB2YXIgJHNjaGVtYVBhdGggPSBpdC5zY2hlbWFQYXRoICsgaXQudXRpbC5nZXRQcm9wZXJ0eSgka2V5d29yZCk7XG4gIHZhciAkZXJyU2NoZW1hUGF0aCA9IGl0LmVyclNjaGVtYVBhdGggKyAnLycgKyAka2V5d29yZDtcbiAgdmFyICRicmVha09uRXJyb3IgPSAhaXQub3B0cy5hbGxFcnJvcnM7XG4gIHZhciAkZGF0YSA9ICdkYXRhJyArICgkZGF0YUx2bCB8fCAnJyk7XG4gIGlmIChpdC5vcHRzLmZvcm1hdCA9PT0gZmFsc2UpIHtcbiAgICBpZiAoJGJyZWFrT25FcnJvcikge1xuICAgICAgb3V0ICs9ICcgaWYgKHRydWUpIHsgJztcbiAgICB9XG4gICAgcmV0dXJuIG91dDtcbiAgfVxuICB2YXIgJGlzRGF0YSA9IGl0Lm9wdHMuJGRhdGEgJiYgJHNjaGVtYSAmJiAkc2NoZW1hLiRkYXRhLFxuICAgICRzY2hlbWFWYWx1ZTtcbiAgaWYgKCRpc0RhdGEpIHtcbiAgICBvdXQgKz0gJyB2YXIgc2NoZW1hJyArICgkbHZsKSArICcgPSAnICsgKGl0LnV0aWwuZ2V0RGF0YSgkc2NoZW1hLiRkYXRhLCAkZGF0YUx2bCwgaXQuZGF0YVBhdGhBcnIpKSArICc7ICc7XG4gICAgJHNjaGVtYVZhbHVlID0gJ3NjaGVtYScgKyAkbHZsO1xuICB9IGVsc2Uge1xuICAgICRzY2hlbWFWYWx1ZSA9ICRzY2hlbWE7XG4gIH1cbiAgdmFyICR1bmtub3duRm9ybWF0cyA9IGl0Lm9wdHMudW5rbm93bkZvcm1hdHMsXG4gICAgJGFsbG93VW5rbm93biA9IEFycmF5LmlzQXJyYXkoJHVua25vd25Gb3JtYXRzKTtcbiAgaWYgKCRpc0RhdGEpIHtcbiAgICB2YXIgJGZvcm1hdCA9ICdmb3JtYXQnICsgJGx2bCxcbiAgICAgICRpc09iamVjdCA9ICdpc09iamVjdCcgKyAkbHZsLFxuICAgICAgJGZvcm1hdFR5cGUgPSAnZm9ybWF0VHlwZScgKyAkbHZsO1xuICAgIG91dCArPSAnIHZhciAnICsgKCRmb3JtYXQpICsgJyA9IGZvcm1hdHNbJyArICgkc2NoZW1hVmFsdWUpICsgJ107IHZhciAnICsgKCRpc09iamVjdCkgKyAnID0gdHlwZW9mICcgKyAoJGZvcm1hdCkgKyAnID09IFxcJ29iamVjdFxcJyAmJiAhKCcgKyAoJGZvcm1hdCkgKyAnIGluc3RhbmNlb2YgUmVnRXhwKSAmJiAnICsgKCRmb3JtYXQpICsgJy52YWxpZGF0ZTsgdmFyICcgKyAoJGZvcm1hdFR5cGUpICsgJyA9ICcgKyAoJGlzT2JqZWN0KSArICcgJiYgJyArICgkZm9ybWF0KSArICcudHlwZSB8fCBcXCdzdHJpbmdcXCc7IGlmICgnICsgKCRpc09iamVjdCkgKyAnKSB7ICc7XG4gICAgaWYgKGl0LmFzeW5jKSB7XG4gICAgICBvdXQgKz0gJyB2YXIgYXN5bmMnICsgKCRsdmwpICsgJyA9ICcgKyAoJGZvcm1hdCkgKyAnLmFzeW5jOyAnO1xuICAgIH1cbiAgICBvdXQgKz0gJyAnICsgKCRmb3JtYXQpICsgJyA9ICcgKyAoJGZvcm1hdCkgKyAnLnZhbGlkYXRlOyB9IGlmICggICc7XG4gICAgaWYgKCRpc0RhdGEpIHtcbiAgICAgIG91dCArPSAnICgnICsgKCRzY2hlbWFWYWx1ZSkgKyAnICE9PSB1bmRlZmluZWQgJiYgdHlwZW9mICcgKyAoJHNjaGVtYVZhbHVlKSArICcgIT0gXFwnc3RyaW5nXFwnKSB8fCAnO1xuICAgIH1cbiAgICBvdXQgKz0gJyAoJztcbiAgICBpZiAoJHVua25vd25Gb3JtYXRzICE9ICdpZ25vcmUnKSB7XG4gICAgICBvdXQgKz0gJyAoJyArICgkc2NoZW1hVmFsdWUpICsgJyAmJiAhJyArICgkZm9ybWF0KSArICcgJztcbiAgICAgIGlmICgkYWxsb3dVbmtub3duKSB7XG4gICAgICAgIG91dCArPSAnICYmIHNlbGYuX29wdHMudW5rbm93bkZvcm1hdHMuaW5kZXhPZignICsgKCRzY2hlbWFWYWx1ZSkgKyAnKSA9PSAtMSAnO1xuICAgICAgfVxuICAgICAgb3V0ICs9ICcpIHx8ICc7XG4gICAgfVxuICAgIG91dCArPSAnICgnICsgKCRmb3JtYXQpICsgJyAmJiAnICsgKCRmb3JtYXRUeXBlKSArICcgPT0gXFwnJyArICgkcnVsZVR5cGUpICsgJ1xcJyAmJiAhKHR5cGVvZiAnICsgKCRmb3JtYXQpICsgJyA9PSBcXCdmdW5jdGlvblxcJyA/ICc7XG4gICAgaWYgKGl0LmFzeW5jKSB7XG4gICAgICBvdXQgKz0gJyAoYXN5bmMnICsgKCRsdmwpICsgJyA/IGF3YWl0ICcgKyAoJGZvcm1hdCkgKyAnKCcgKyAoJGRhdGEpICsgJykgOiAnICsgKCRmb3JtYXQpICsgJygnICsgKCRkYXRhKSArICcpKSAnO1xuICAgIH0gZWxzZSB7XG4gICAgICBvdXQgKz0gJyAnICsgKCRmb3JtYXQpICsgJygnICsgKCRkYXRhKSArICcpICc7XG4gICAgfVxuICAgIG91dCArPSAnIDogJyArICgkZm9ybWF0KSArICcudGVzdCgnICsgKCRkYXRhKSArICcpKSkpKSB7JztcbiAgfSBlbHNlIHtcbiAgICB2YXIgJGZvcm1hdCA9IGl0LmZvcm1hdHNbJHNjaGVtYV07XG4gICAgaWYgKCEkZm9ybWF0KSB7XG4gICAgICBpZiAoJHVua25vd25Gb3JtYXRzID09ICdpZ25vcmUnKSB7XG4gICAgICAgIGl0LmxvZ2dlci53YXJuKCd1bmtub3duIGZvcm1hdCBcIicgKyAkc2NoZW1hICsgJ1wiIGlnbm9yZWQgaW4gc2NoZW1hIGF0IHBhdGggXCInICsgaXQuZXJyU2NoZW1hUGF0aCArICdcIicpO1xuICAgICAgICBpZiAoJGJyZWFrT25FcnJvcikge1xuICAgICAgICAgIG91dCArPSAnIGlmICh0cnVlKSB7ICc7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG91dDtcbiAgICAgIH0gZWxzZSBpZiAoJGFsbG93VW5rbm93biAmJiAkdW5rbm93bkZvcm1hdHMuaW5kZXhPZigkc2NoZW1hKSA+PSAwKSB7XG4gICAgICAgIGlmICgkYnJlYWtPbkVycm9yKSB7XG4gICAgICAgICAgb3V0ICs9ICcgaWYgKHRydWUpIHsgJztcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb3V0O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCd1bmtub3duIGZvcm1hdCBcIicgKyAkc2NoZW1hICsgJ1wiIGlzIHVzZWQgaW4gc2NoZW1hIGF0IHBhdGggXCInICsgaXQuZXJyU2NoZW1hUGF0aCArICdcIicpO1xuICAgICAgfVxuICAgIH1cbiAgICB2YXIgJGlzT2JqZWN0ID0gdHlwZW9mICRmb3JtYXQgPT0gJ29iamVjdCcgJiYgISgkZm9ybWF0IGluc3RhbmNlb2YgUmVnRXhwKSAmJiAkZm9ybWF0LnZhbGlkYXRlO1xuICAgIHZhciAkZm9ybWF0VHlwZSA9ICRpc09iamVjdCAmJiAkZm9ybWF0LnR5cGUgfHwgJ3N0cmluZyc7XG4gICAgaWYgKCRpc09iamVjdCkge1xuICAgICAgdmFyICRhc3luYyA9ICRmb3JtYXQuYXN5bmMgPT09IHRydWU7XG4gICAgICAkZm9ybWF0ID0gJGZvcm1hdC52YWxpZGF0ZTtcbiAgICB9XG4gICAgaWYgKCRmb3JtYXRUeXBlICE9ICRydWxlVHlwZSkge1xuICAgICAgaWYgKCRicmVha09uRXJyb3IpIHtcbiAgICAgICAgb3V0ICs9ICcgaWYgKHRydWUpIHsgJztcbiAgICAgIH1cbiAgICAgIHJldHVybiBvdXQ7XG4gICAgfVxuICAgIGlmICgkYXN5bmMpIHtcbiAgICAgIGlmICghaXQuYXN5bmMpIHRocm93IG5ldyBFcnJvcignYXN5bmMgZm9ybWF0IGluIHN5bmMgc2NoZW1hJyk7XG4gICAgICB2YXIgJGZvcm1hdFJlZiA9ICdmb3JtYXRzJyArIGl0LnV0aWwuZ2V0UHJvcGVydHkoJHNjaGVtYSkgKyAnLnZhbGlkYXRlJztcbiAgICAgIG91dCArPSAnIGlmICghKGF3YWl0ICcgKyAoJGZvcm1hdFJlZikgKyAnKCcgKyAoJGRhdGEpICsgJykpKSB7ICc7XG4gICAgfSBlbHNlIHtcbiAgICAgIG91dCArPSAnIGlmICghICc7XG4gICAgICB2YXIgJGZvcm1hdFJlZiA9ICdmb3JtYXRzJyArIGl0LnV0aWwuZ2V0UHJvcGVydHkoJHNjaGVtYSk7XG4gICAgICBpZiAoJGlzT2JqZWN0KSAkZm9ybWF0UmVmICs9ICcudmFsaWRhdGUnO1xuICAgICAgaWYgKHR5cGVvZiAkZm9ybWF0ID09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgb3V0ICs9ICcgJyArICgkZm9ybWF0UmVmKSArICcoJyArICgkZGF0YSkgKyAnKSAnO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgb3V0ICs9ICcgJyArICgkZm9ybWF0UmVmKSArICcudGVzdCgnICsgKCRkYXRhKSArICcpICc7XG4gICAgICB9XG4gICAgICBvdXQgKz0gJykgeyAnO1xuICAgIH1cbiAgfVxuICB2YXIgJCRvdXRTdGFjayA9ICQkb3V0U3RhY2sgfHwgW107XG4gICQkb3V0U3RhY2sucHVzaChvdXQpO1xuICBvdXQgPSAnJzsgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgaWYgKGl0LmNyZWF0ZUVycm9ycyAhPT0gZmFsc2UpIHtcbiAgICBvdXQgKz0gJyB7IGtleXdvcmQ6IFxcJycgKyAoJ2Zvcm1hdCcpICsgJ1xcJyAsIGRhdGFQYXRoOiAoZGF0YVBhdGggfHwgXFwnXFwnKSArICcgKyAoaXQuZXJyb3JQYXRoKSArICcgLCBzY2hlbWFQYXRoOiAnICsgKGl0LnV0aWwudG9RdW90ZWRTdHJpbmcoJGVyclNjaGVtYVBhdGgpKSArICcgLCBwYXJhbXM6IHsgZm9ybWF0OiAgJztcbiAgICBpZiAoJGlzRGF0YSkge1xuICAgICAgb3V0ICs9ICcnICsgKCRzY2hlbWFWYWx1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIG91dCArPSAnJyArIChpdC51dGlsLnRvUXVvdGVkU3RyaW5nKCRzY2hlbWEpKTtcbiAgICB9XG4gICAgb3V0ICs9ICcgIH0gJztcbiAgICBpZiAoaXQub3B0cy5tZXNzYWdlcyAhPT0gZmFsc2UpIHtcbiAgICAgIG91dCArPSAnICwgbWVzc2FnZTogXFwnc2hvdWxkIG1hdGNoIGZvcm1hdCBcIic7XG4gICAgICBpZiAoJGlzRGF0YSkge1xuICAgICAgICBvdXQgKz0gJ1xcJyArICcgKyAoJHNjaGVtYVZhbHVlKSArICcgKyBcXCcnO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgb3V0ICs9ICcnICsgKGl0LnV0aWwuZXNjYXBlUXVvdGVzKCRzY2hlbWEpKTtcbiAgICAgIH1cbiAgICAgIG91dCArPSAnXCJcXCcgJztcbiAgICB9XG4gICAgaWYgKGl0Lm9wdHMudmVyYm9zZSkge1xuICAgICAgb3V0ICs9ICcgLCBzY2hlbWE6ICAnO1xuICAgICAgaWYgKCRpc0RhdGEpIHtcbiAgICAgICAgb3V0ICs9ICd2YWxpZGF0ZS5zY2hlbWEnICsgKCRzY2hlbWFQYXRoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG91dCArPSAnJyArIChpdC51dGlsLnRvUXVvdGVkU3RyaW5nKCRzY2hlbWEpKTtcbiAgICAgIH1cbiAgICAgIG91dCArPSAnICAgICAgICAgLCBwYXJlbnRTY2hlbWE6IHZhbGlkYXRlLnNjaGVtYScgKyAoaXQuc2NoZW1hUGF0aCkgKyAnICwgZGF0YTogJyArICgkZGF0YSkgKyAnICc7XG4gICAgfVxuICAgIG91dCArPSAnIH0gJztcbiAgfSBlbHNlIHtcbiAgICBvdXQgKz0gJyB7fSAnO1xuICB9XG4gIHZhciBfX2VyciA9IG91dDtcbiAgb3V0ID0gJCRvdXRTdGFjay5wb3AoKTtcbiAgaWYgKCFpdC5jb21wb3NpdGVSdWxlICYmICRicmVha09uRXJyb3IpIHtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgaWYgKi9cbiAgICBpZiAoaXQuYXN5bmMpIHtcbiAgICAgIG91dCArPSAnIHRocm93IG5ldyBWYWxpZGF0aW9uRXJyb3IoWycgKyAoX19lcnIpICsgJ10pOyAnO1xuICAgIH0gZWxzZSB7XG4gICAgICBvdXQgKz0gJyB2YWxpZGF0ZS5lcnJvcnMgPSBbJyArIChfX2VycikgKyAnXTsgcmV0dXJuIGZhbHNlOyAnO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBvdXQgKz0gJyB2YXIgZXJyID0gJyArIChfX2VycikgKyAnOyAgaWYgKHZFcnJvcnMgPT09IG51bGwpIHZFcnJvcnMgPSBbZXJyXTsgZWxzZSB2RXJyb3JzLnB1c2goZXJyKTsgZXJyb3JzKys7ICc7XG4gIH1cbiAgb3V0ICs9ICcgfSAnO1xuICBpZiAoJGJyZWFrT25FcnJvcikge1xuICAgIG91dCArPSAnIGVsc2UgeyAnO1xuICB9XG4gIHJldHVybiBvdXQ7XG59XG4iLCAiJ3VzZSBzdHJpY3QnO1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBnZW5lcmF0ZV9pZihpdCwgJGtleXdvcmQsICRydWxlVHlwZSkge1xuICB2YXIgb3V0ID0gJyAnO1xuICB2YXIgJGx2bCA9IGl0LmxldmVsO1xuICB2YXIgJGRhdGFMdmwgPSBpdC5kYXRhTGV2ZWw7XG4gIHZhciAkc2NoZW1hID0gaXQuc2NoZW1hWyRrZXl3b3JkXTtcbiAgdmFyICRzY2hlbWFQYXRoID0gaXQuc2NoZW1hUGF0aCArIGl0LnV0aWwuZ2V0UHJvcGVydHkoJGtleXdvcmQpO1xuICB2YXIgJGVyclNjaGVtYVBhdGggPSBpdC5lcnJTY2hlbWFQYXRoICsgJy8nICsgJGtleXdvcmQ7XG4gIHZhciAkYnJlYWtPbkVycm9yID0gIWl0Lm9wdHMuYWxsRXJyb3JzO1xuICB2YXIgJGRhdGEgPSAnZGF0YScgKyAoJGRhdGFMdmwgfHwgJycpO1xuICB2YXIgJHZhbGlkID0gJ3ZhbGlkJyArICRsdmw7XG4gIHZhciAkZXJycyA9ICdlcnJzX18nICsgJGx2bDtcbiAgdmFyICRpdCA9IGl0LnV0aWwuY29weShpdCk7XG4gICRpdC5sZXZlbCsrO1xuICB2YXIgJG5leHRWYWxpZCA9ICd2YWxpZCcgKyAkaXQubGV2ZWw7XG4gIHZhciAkdGhlblNjaCA9IGl0LnNjaGVtYVsndGhlbiddLFxuICAgICRlbHNlU2NoID0gaXQuc2NoZW1hWydlbHNlJ10sXG4gICAgJHRoZW5QcmVzZW50ID0gJHRoZW5TY2ggIT09IHVuZGVmaW5lZCAmJiAoaXQub3B0cy5zdHJpY3RLZXl3b3JkcyA/ICh0eXBlb2YgJHRoZW5TY2ggPT0gJ29iamVjdCcgJiYgT2JqZWN0LmtleXMoJHRoZW5TY2gpLmxlbmd0aCA+IDApIHx8ICR0aGVuU2NoID09PSBmYWxzZSA6IGl0LnV0aWwuc2NoZW1hSGFzUnVsZXMoJHRoZW5TY2gsIGl0LlJVTEVTLmFsbCkpLFxuICAgICRlbHNlUHJlc2VudCA9ICRlbHNlU2NoICE9PSB1bmRlZmluZWQgJiYgKGl0Lm9wdHMuc3RyaWN0S2V5d29yZHMgPyAodHlwZW9mICRlbHNlU2NoID09ICdvYmplY3QnICYmIE9iamVjdC5rZXlzKCRlbHNlU2NoKS5sZW5ndGggPiAwKSB8fCAkZWxzZVNjaCA9PT0gZmFsc2UgOiBpdC51dGlsLnNjaGVtYUhhc1J1bGVzKCRlbHNlU2NoLCBpdC5SVUxFUy5hbGwpKSxcbiAgICAkY3VycmVudEJhc2VJZCA9ICRpdC5iYXNlSWQ7XG4gIGlmICgkdGhlblByZXNlbnQgfHwgJGVsc2VQcmVzZW50KSB7XG4gICAgdmFyICRpZkNsYXVzZTtcbiAgICAkaXQuY3JlYXRlRXJyb3JzID0gZmFsc2U7XG4gICAgJGl0LnNjaGVtYSA9ICRzY2hlbWE7XG4gICAgJGl0LnNjaGVtYVBhdGggPSAkc2NoZW1hUGF0aDtcbiAgICAkaXQuZXJyU2NoZW1hUGF0aCA9ICRlcnJTY2hlbWFQYXRoO1xuICAgIG91dCArPSAnIHZhciAnICsgKCRlcnJzKSArICcgPSBlcnJvcnM7IHZhciAnICsgKCR2YWxpZCkgKyAnID0gdHJ1ZTsgICc7XG4gICAgdmFyICR3YXNDb21wb3NpdGUgPSBpdC5jb21wb3NpdGVSdWxlO1xuICAgIGl0LmNvbXBvc2l0ZVJ1bGUgPSAkaXQuY29tcG9zaXRlUnVsZSA9IHRydWU7XG4gICAgb3V0ICs9ICcgICcgKyAoaXQudmFsaWRhdGUoJGl0KSkgKyAnICc7XG4gICAgJGl0LmJhc2VJZCA9ICRjdXJyZW50QmFzZUlkO1xuICAgICRpdC5jcmVhdGVFcnJvcnMgPSB0cnVlO1xuICAgIG91dCArPSAnICBlcnJvcnMgPSAnICsgKCRlcnJzKSArICc7IGlmICh2RXJyb3JzICE9PSBudWxsKSB7IGlmICgnICsgKCRlcnJzKSArICcpIHZFcnJvcnMubGVuZ3RoID0gJyArICgkZXJycykgKyAnOyBlbHNlIHZFcnJvcnMgPSBudWxsOyB9ICAnO1xuICAgIGl0LmNvbXBvc2l0ZVJ1bGUgPSAkaXQuY29tcG9zaXRlUnVsZSA9ICR3YXNDb21wb3NpdGU7XG4gICAgaWYgKCR0aGVuUHJlc2VudCkge1xuICAgICAgb3V0ICs9ICcgaWYgKCcgKyAoJG5leHRWYWxpZCkgKyAnKSB7ICAnO1xuICAgICAgJGl0LnNjaGVtYSA9IGl0LnNjaGVtYVsndGhlbiddO1xuICAgICAgJGl0LnNjaGVtYVBhdGggPSBpdC5zY2hlbWFQYXRoICsgJy50aGVuJztcbiAgICAgICRpdC5lcnJTY2hlbWFQYXRoID0gaXQuZXJyU2NoZW1hUGF0aCArICcvdGhlbic7XG4gICAgICBvdXQgKz0gJyAgJyArIChpdC52YWxpZGF0ZSgkaXQpKSArICcgJztcbiAgICAgICRpdC5iYXNlSWQgPSAkY3VycmVudEJhc2VJZDtcbiAgICAgIG91dCArPSAnICcgKyAoJHZhbGlkKSArICcgPSAnICsgKCRuZXh0VmFsaWQpICsgJzsgJztcbiAgICAgIGlmICgkdGhlblByZXNlbnQgJiYgJGVsc2VQcmVzZW50KSB7XG4gICAgICAgICRpZkNsYXVzZSA9ICdpZkNsYXVzZScgKyAkbHZsO1xuICAgICAgICBvdXQgKz0gJyB2YXIgJyArICgkaWZDbGF1c2UpICsgJyA9IFxcJ3RoZW5cXCc7ICc7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAkaWZDbGF1c2UgPSAnXFwndGhlblxcJyc7XG4gICAgICB9XG4gICAgICBvdXQgKz0gJyB9ICc7XG4gICAgICBpZiAoJGVsc2VQcmVzZW50KSB7XG4gICAgICAgIG91dCArPSAnIGVsc2UgeyAnO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBvdXQgKz0gJyBpZiAoIScgKyAoJG5leHRWYWxpZCkgKyAnKSB7ICc7XG4gICAgfVxuICAgIGlmICgkZWxzZVByZXNlbnQpIHtcbiAgICAgICRpdC5zY2hlbWEgPSBpdC5zY2hlbWFbJ2Vsc2UnXTtcbiAgICAgICRpdC5zY2hlbWFQYXRoID0gaXQuc2NoZW1hUGF0aCArICcuZWxzZSc7XG4gICAgICAkaXQuZXJyU2NoZW1hUGF0aCA9IGl0LmVyclNjaGVtYVBhdGggKyAnL2Vsc2UnO1xuICAgICAgb3V0ICs9ICcgICcgKyAoaXQudmFsaWRhdGUoJGl0KSkgKyAnICc7XG4gICAgICAkaXQuYmFzZUlkID0gJGN1cnJlbnRCYXNlSWQ7XG4gICAgICBvdXQgKz0gJyAnICsgKCR2YWxpZCkgKyAnID0gJyArICgkbmV4dFZhbGlkKSArICc7ICc7XG4gICAgICBpZiAoJHRoZW5QcmVzZW50ICYmICRlbHNlUHJlc2VudCkge1xuICAgICAgICAkaWZDbGF1c2UgPSAnaWZDbGF1c2UnICsgJGx2bDtcbiAgICAgICAgb3V0ICs9ICcgdmFyICcgKyAoJGlmQ2xhdXNlKSArICcgPSBcXCdlbHNlXFwnOyAnO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgJGlmQ2xhdXNlID0gJ1xcJ2Vsc2VcXCcnO1xuICAgICAgfVxuICAgICAgb3V0ICs9ICcgfSAnO1xuICAgIH1cbiAgICBvdXQgKz0gJyBpZiAoIScgKyAoJHZhbGlkKSArICcpIHsgICB2YXIgZXJyID0gICAnOyAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIGlmIChpdC5jcmVhdGVFcnJvcnMgIT09IGZhbHNlKSB7XG4gICAgICBvdXQgKz0gJyB7IGtleXdvcmQ6IFxcJycgKyAoJ2lmJykgKyAnXFwnICwgZGF0YVBhdGg6IChkYXRhUGF0aCB8fCBcXCdcXCcpICsgJyArIChpdC5lcnJvclBhdGgpICsgJyAsIHNjaGVtYVBhdGg6ICcgKyAoaXQudXRpbC50b1F1b3RlZFN0cmluZygkZXJyU2NoZW1hUGF0aCkpICsgJyAsIHBhcmFtczogeyBmYWlsaW5nS2V5d29yZDogJyArICgkaWZDbGF1c2UpICsgJyB9ICc7XG4gICAgICBpZiAoaXQub3B0cy5tZXNzYWdlcyAhPT0gZmFsc2UpIHtcbiAgICAgICAgb3V0ICs9ICcgLCBtZXNzYWdlOiBcXCdzaG91bGQgbWF0Y2ggXCJcXCcgKyAnICsgKCRpZkNsYXVzZSkgKyAnICsgXFwnXCIgc2NoZW1hXFwnICc7XG4gICAgICB9XG4gICAgICBpZiAoaXQub3B0cy52ZXJib3NlKSB7XG4gICAgICAgIG91dCArPSAnICwgc2NoZW1hOiB2YWxpZGF0ZS5zY2hlbWEnICsgKCRzY2hlbWFQYXRoKSArICcgLCBwYXJlbnRTY2hlbWE6IHZhbGlkYXRlLnNjaGVtYScgKyAoaXQuc2NoZW1hUGF0aCkgKyAnICwgZGF0YTogJyArICgkZGF0YSkgKyAnICc7XG4gICAgICB9XG4gICAgICBvdXQgKz0gJyB9ICc7XG4gICAgfSBlbHNlIHtcbiAgICAgIG91dCArPSAnIHt9ICc7XG4gICAgfVxuICAgIG91dCArPSAnOyAgaWYgKHZFcnJvcnMgPT09IG51bGwpIHZFcnJvcnMgPSBbZXJyXTsgZWxzZSB2RXJyb3JzLnB1c2goZXJyKTsgZXJyb3JzKys7ICc7XG4gICAgaWYgKCFpdC5jb21wb3NpdGVSdWxlICYmICRicmVha09uRXJyb3IpIHtcbiAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBpZiAqL1xuICAgICAgaWYgKGl0LmFzeW5jKSB7XG4gICAgICAgIG91dCArPSAnIHRocm93IG5ldyBWYWxpZGF0aW9uRXJyb3IodkVycm9ycyk7ICc7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBvdXQgKz0gJyB2YWxpZGF0ZS5lcnJvcnMgPSB2RXJyb3JzOyByZXR1cm4gZmFsc2U7ICc7XG4gICAgICB9XG4gICAgfVxuICAgIG91dCArPSAnIH0gICAnO1xuICAgIGlmICgkYnJlYWtPbkVycm9yKSB7XG4gICAgICBvdXQgKz0gJyBlbHNlIHsgJztcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgaWYgKCRicmVha09uRXJyb3IpIHtcbiAgICAgIG91dCArPSAnIGlmICh0cnVlKSB7ICc7XG4gICAgfVxuICB9XG4gIHJldHVybiBvdXQ7XG59XG4iLCAiJ3VzZSBzdHJpY3QnO1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBnZW5lcmF0ZV9pdGVtcyhpdCwgJGtleXdvcmQsICRydWxlVHlwZSkge1xuICB2YXIgb3V0ID0gJyAnO1xuICB2YXIgJGx2bCA9IGl0LmxldmVsO1xuICB2YXIgJGRhdGFMdmwgPSBpdC5kYXRhTGV2ZWw7XG4gIHZhciAkc2NoZW1hID0gaXQuc2NoZW1hWyRrZXl3b3JkXTtcbiAgdmFyICRzY2hlbWFQYXRoID0gaXQuc2NoZW1hUGF0aCArIGl0LnV0aWwuZ2V0UHJvcGVydHkoJGtleXdvcmQpO1xuICB2YXIgJGVyclNjaGVtYVBhdGggPSBpdC5lcnJTY2hlbWFQYXRoICsgJy8nICsgJGtleXdvcmQ7XG4gIHZhciAkYnJlYWtPbkVycm9yID0gIWl0Lm9wdHMuYWxsRXJyb3JzO1xuICB2YXIgJGRhdGEgPSAnZGF0YScgKyAoJGRhdGFMdmwgfHwgJycpO1xuICB2YXIgJHZhbGlkID0gJ3ZhbGlkJyArICRsdmw7XG4gIHZhciAkZXJycyA9ICdlcnJzX18nICsgJGx2bDtcbiAgdmFyICRpdCA9IGl0LnV0aWwuY29weShpdCk7XG4gIHZhciAkY2xvc2luZ0JyYWNlcyA9ICcnO1xuICAkaXQubGV2ZWwrKztcbiAgdmFyICRuZXh0VmFsaWQgPSAndmFsaWQnICsgJGl0LmxldmVsO1xuICB2YXIgJGlkeCA9ICdpJyArICRsdmwsXG4gICAgJGRhdGFOeHQgPSAkaXQuZGF0YUxldmVsID0gaXQuZGF0YUxldmVsICsgMSxcbiAgICAkbmV4dERhdGEgPSAnZGF0YScgKyAkZGF0YU54dCxcbiAgICAkY3VycmVudEJhc2VJZCA9IGl0LmJhc2VJZDtcbiAgb3V0ICs9ICd2YXIgJyArICgkZXJycykgKyAnID0gZXJyb3JzO3ZhciAnICsgKCR2YWxpZCkgKyAnOyc7XG4gIGlmIChBcnJheS5pc0FycmF5KCRzY2hlbWEpKSB7XG4gICAgdmFyICRhZGRpdGlvbmFsSXRlbXMgPSBpdC5zY2hlbWEuYWRkaXRpb25hbEl0ZW1zO1xuICAgIGlmICgkYWRkaXRpb25hbEl0ZW1zID09PSBmYWxzZSkge1xuICAgICAgb3V0ICs9ICcgJyArICgkdmFsaWQpICsgJyA9ICcgKyAoJGRhdGEpICsgJy5sZW5ndGggPD0gJyArICgkc2NoZW1hLmxlbmd0aCkgKyAnOyAnO1xuICAgICAgdmFyICRjdXJyRXJyU2NoZW1hUGF0aCA9ICRlcnJTY2hlbWFQYXRoO1xuICAgICAgJGVyclNjaGVtYVBhdGggPSBpdC5lcnJTY2hlbWFQYXRoICsgJy9hZGRpdGlvbmFsSXRlbXMnO1xuICAgICAgb3V0ICs9ICcgIGlmICghJyArICgkdmFsaWQpICsgJykgeyAgICc7XG4gICAgICB2YXIgJCRvdXRTdGFjayA9ICQkb3V0U3RhY2sgfHwgW107XG4gICAgICAkJG91dFN0YWNrLnB1c2gob3V0KTtcbiAgICAgIG91dCA9ICcnOyAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgaWYgKGl0LmNyZWF0ZUVycm9ycyAhPT0gZmFsc2UpIHtcbiAgICAgICAgb3V0ICs9ICcgeyBrZXl3b3JkOiBcXCcnICsgKCdhZGRpdGlvbmFsSXRlbXMnKSArICdcXCcgLCBkYXRhUGF0aDogKGRhdGFQYXRoIHx8IFxcJ1xcJykgKyAnICsgKGl0LmVycm9yUGF0aCkgKyAnICwgc2NoZW1hUGF0aDogJyArIChpdC51dGlsLnRvUXVvdGVkU3RyaW5nKCRlcnJTY2hlbWFQYXRoKSkgKyAnICwgcGFyYW1zOiB7IGxpbWl0OiAnICsgKCRzY2hlbWEubGVuZ3RoKSArICcgfSAnO1xuICAgICAgICBpZiAoaXQub3B0cy5tZXNzYWdlcyAhPT0gZmFsc2UpIHtcbiAgICAgICAgICBvdXQgKz0gJyAsIG1lc3NhZ2U6IFxcJ3Nob3VsZCBOT1QgaGF2ZSBtb3JlIHRoYW4gJyArICgkc2NoZW1hLmxlbmd0aCkgKyAnIGl0ZW1zXFwnICc7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGl0Lm9wdHMudmVyYm9zZSkge1xuICAgICAgICAgIG91dCArPSAnICwgc2NoZW1hOiBmYWxzZSAsIHBhcmVudFNjaGVtYTogdmFsaWRhdGUuc2NoZW1hJyArIChpdC5zY2hlbWFQYXRoKSArICcgLCBkYXRhOiAnICsgKCRkYXRhKSArICcgJztcbiAgICAgICAgfVxuICAgICAgICBvdXQgKz0gJyB9ICc7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBvdXQgKz0gJyB7fSAnO1xuICAgICAgfVxuICAgICAgdmFyIF9fZXJyID0gb3V0O1xuICAgICAgb3V0ID0gJCRvdXRTdGFjay5wb3AoKTtcbiAgICAgIGlmICghaXQuY29tcG9zaXRlUnVsZSAmJiAkYnJlYWtPbkVycm9yKSB7XG4gICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBpZiAqL1xuICAgICAgICBpZiAoaXQuYXN5bmMpIHtcbiAgICAgICAgICBvdXQgKz0gJyB0aHJvdyBuZXcgVmFsaWRhdGlvbkVycm9yKFsnICsgKF9fZXJyKSArICddKTsgJztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBvdXQgKz0gJyB2YWxpZGF0ZS5lcnJvcnMgPSBbJyArIChfX2VycikgKyAnXTsgcmV0dXJuIGZhbHNlOyAnO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBvdXQgKz0gJyB2YXIgZXJyID0gJyArIChfX2VycikgKyAnOyAgaWYgKHZFcnJvcnMgPT09IG51bGwpIHZFcnJvcnMgPSBbZXJyXTsgZWxzZSB2RXJyb3JzLnB1c2goZXJyKTsgZXJyb3JzKys7ICc7XG4gICAgICB9XG4gICAgICBvdXQgKz0gJyB9ICc7XG4gICAgICAkZXJyU2NoZW1hUGF0aCA9ICRjdXJyRXJyU2NoZW1hUGF0aDtcbiAgICAgIGlmICgkYnJlYWtPbkVycm9yKSB7XG4gICAgICAgICRjbG9zaW5nQnJhY2VzICs9ICd9JztcbiAgICAgICAgb3V0ICs9ICcgZWxzZSB7ICc7XG4gICAgICB9XG4gICAgfVxuICAgIHZhciBhcnIxID0gJHNjaGVtYTtcbiAgICBpZiAoYXJyMSkge1xuICAgICAgdmFyICRzY2gsICRpID0gLTEsXG4gICAgICAgIGwxID0gYXJyMS5sZW5ndGggLSAxO1xuICAgICAgd2hpbGUgKCRpIDwgbDEpIHtcbiAgICAgICAgJHNjaCA9IGFycjFbJGkgKz0gMV07XG4gICAgICAgIGlmICgoaXQub3B0cy5zdHJpY3RLZXl3b3JkcyA/ICh0eXBlb2YgJHNjaCA9PSAnb2JqZWN0JyAmJiBPYmplY3Qua2V5cygkc2NoKS5sZW5ndGggPiAwKSB8fCAkc2NoID09PSBmYWxzZSA6IGl0LnV0aWwuc2NoZW1hSGFzUnVsZXMoJHNjaCwgaXQuUlVMRVMuYWxsKSkpIHtcbiAgICAgICAgICBvdXQgKz0gJyAnICsgKCRuZXh0VmFsaWQpICsgJyA9IHRydWU7IGlmICgnICsgKCRkYXRhKSArICcubGVuZ3RoID4gJyArICgkaSkgKyAnKSB7ICc7XG4gICAgICAgICAgdmFyICRwYXNzRGF0YSA9ICRkYXRhICsgJ1snICsgJGkgKyAnXSc7XG4gICAgICAgICAgJGl0LnNjaGVtYSA9ICRzY2g7XG4gICAgICAgICAgJGl0LnNjaGVtYVBhdGggPSAkc2NoZW1hUGF0aCArICdbJyArICRpICsgJ10nO1xuICAgICAgICAgICRpdC5lcnJTY2hlbWFQYXRoID0gJGVyclNjaGVtYVBhdGggKyAnLycgKyAkaTtcbiAgICAgICAgICAkaXQuZXJyb3JQYXRoID0gaXQudXRpbC5nZXRQYXRoRXhwcihpdC5lcnJvclBhdGgsICRpLCBpdC5vcHRzLmpzb25Qb2ludGVycywgdHJ1ZSk7XG4gICAgICAgICAgJGl0LmRhdGFQYXRoQXJyWyRkYXRhTnh0XSA9ICRpO1xuICAgICAgICAgIHZhciAkY29kZSA9IGl0LnZhbGlkYXRlKCRpdCk7XG4gICAgICAgICAgJGl0LmJhc2VJZCA9ICRjdXJyZW50QmFzZUlkO1xuICAgICAgICAgIGlmIChpdC51dGlsLnZhck9jY3VyZW5jZXMoJGNvZGUsICRuZXh0RGF0YSkgPCAyKSB7XG4gICAgICAgICAgICBvdXQgKz0gJyAnICsgKGl0LnV0aWwudmFyUmVwbGFjZSgkY29kZSwgJG5leHREYXRhLCAkcGFzc0RhdGEpKSArICcgJztcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgb3V0ICs9ICcgdmFyICcgKyAoJG5leHREYXRhKSArICcgPSAnICsgKCRwYXNzRGF0YSkgKyAnOyAnICsgKCRjb2RlKSArICcgJztcbiAgICAgICAgICB9XG4gICAgICAgICAgb3V0ICs9ICcgfSAgJztcbiAgICAgICAgICBpZiAoJGJyZWFrT25FcnJvcikge1xuICAgICAgICAgICAgb3V0ICs9ICcgaWYgKCcgKyAoJG5leHRWYWxpZCkgKyAnKSB7ICc7XG4gICAgICAgICAgICAkY2xvc2luZ0JyYWNlcyArPSAnfSc7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIGlmICh0eXBlb2YgJGFkZGl0aW9uYWxJdGVtcyA9PSAnb2JqZWN0JyAmJiAoaXQub3B0cy5zdHJpY3RLZXl3b3JkcyA/ICh0eXBlb2YgJGFkZGl0aW9uYWxJdGVtcyA9PSAnb2JqZWN0JyAmJiBPYmplY3Qua2V5cygkYWRkaXRpb25hbEl0ZW1zKS5sZW5ndGggPiAwKSB8fCAkYWRkaXRpb25hbEl0ZW1zID09PSBmYWxzZSA6IGl0LnV0aWwuc2NoZW1hSGFzUnVsZXMoJGFkZGl0aW9uYWxJdGVtcywgaXQuUlVMRVMuYWxsKSkpIHtcbiAgICAgICRpdC5zY2hlbWEgPSAkYWRkaXRpb25hbEl0ZW1zO1xuICAgICAgJGl0LnNjaGVtYVBhdGggPSBpdC5zY2hlbWFQYXRoICsgJy5hZGRpdGlvbmFsSXRlbXMnO1xuICAgICAgJGl0LmVyclNjaGVtYVBhdGggPSBpdC5lcnJTY2hlbWFQYXRoICsgJy9hZGRpdGlvbmFsSXRlbXMnO1xuICAgICAgb3V0ICs9ICcgJyArICgkbmV4dFZhbGlkKSArICcgPSB0cnVlOyBpZiAoJyArICgkZGF0YSkgKyAnLmxlbmd0aCA+ICcgKyAoJHNjaGVtYS5sZW5ndGgpICsgJykgeyAgZm9yICh2YXIgJyArICgkaWR4KSArICcgPSAnICsgKCRzY2hlbWEubGVuZ3RoKSArICc7ICcgKyAoJGlkeCkgKyAnIDwgJyArICgkZGF0YSkgKyAnLmxlbmd0aDsgJyArICgkaWR4KSArICcrKykgeyAnO1xuICAgICAgJGl0LmVycm9yUGF0aCA9IGl0LnV0aWwuZ2V0UGF0aEV4cHIoaXQuZXJyb3JQYXRoLCAkaWR4LCBpdC5vcHRzLmpzb25Qb2ludGVycywgdHJ1ZSk7XG4gICAgICB2YXIgJHBhc3NEYXRhID0gJGRhdGEgKyAnWycgKyAkaWR4ICsgJ10nO1xuICAgICAgJGl0LmRhdGFQYXRoQXJyWyRkYXRhTnh0XSA9ICRpZHg7XG4gICAgICB2YXIgJGNvZGUgPSBpdC52YWxpZGF0ZSgkaXQpO1xuICAgICAgJGl0LmJhc2VJZCA9ICRjdXJyZW50QmFzZUlkO1xuICAgICAgaWYgKGl0LnV0aWwudmFyT2NjdXJlbmNlcygkY29kZSwgJG5leHREYXRhKSA8IDIpIHtcbiAgICAgICAgb3V0ICs9ICcgJyArIChpdC51dGlsLnZhclJlcGxhY2UoJGNvZGUsICRuZXh0RGF0YSwgJHBhc3NEYXRhKSkgKyAnICc7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBvdXQgKz0gJyB2YXIgJyArICgkbmV4dERhdGEpICsgJyA9ICcgKyAoJHBhc3NEYXRhKSArICc7ICcgKyAoJGNvZGUpICsgJyAnO1xuICAgICAgfVxuICAgICAgaWYgKCRicmVha09uRXJyb3IpIHtcbiAgICAgICAgb3V0ICs9ICcgaWYgKCEnICsgKCRuZXh0VmFsaWQpICsgJykgYnJlYWs7ICc7XG4gICAgICB9XG4gICAgICBvdXQgKz0gJyB9IH0gICc7XG4gICAgICBpZiAoJGJyZWFrT25FcnJvcikge1xuICAgICAgICBvdXQgKz0gJyBpZiAoJyArICgkbmV4dFZhbGlkKSArICcpIHsgJztcbiAgICAgICAgJGNsb3NpbmdCcmFjZXMgKz0gJ30nO1xuICAgICAgfVxuICAgIH1cbiAgfSBlbHNlIGlmICgoaXQub3B0cy5zdHJpY3RLZXl3b3JkcyA/ICh0eXBlb2YgJHNjaGVtYSA9PSAnb2JqZWN0JyAmJiBPYmplY3Qua2V5cygkc2NoZW1hKS5sZW5ndGggPiAwKSB8fCAkc2NoZW1hID09PSBmYWxzZSA6IGl0LnV0aWwuc2NoZW1hSGFzUnVsZXMoJHNjaGVtYSwgaXQuUlVMRVMuYWxsKSkpIHtcbiAgICAkaXQuc2NoZW1hID0gJHNjaGVtYTtcbiAgICAkaXQuc2NoZW1hUGF0aCA9ICRzY2hlbWFQYXRoO1xuICAgICRpdC5lcnJTY2hlbWFQYXRoID0gJGVyclNjaGVtYVBhdGg7XG4gICAgb3V0ICs9ICcgIGZvciAodmFyICcgKyAoJGlkeCkgKyAnID0gJyArICgwKSArICc7ICcgKyAoJGlkeCkgKyAnIDwgJyArICgkZGF0YSkgKyAnLmxlbmd0aDsgJyArICgkaWR4KSArICcrKykgeyAnO1xuICAgICRpdC5lcnJvclBhdGggPSBpdC51dGlsLmdldFBhdGhFeHByKGl0LmVycm9yUGF0aCwgJGlkeCwgaXQub3B0cy5qc29uUG9pbnRlcnMsIHRydWUpO1xuICAgIHZhciAkcGFzc0RhdGEgPSAkZGF0YSArICdbJyArICRpZHggKyAnXSc7XG4gICAgJGl0LmRhdGFQYXRoQXJyWyRkYXRhTnh0XSA9ICRpZHg7XG4gICAgdmFyICRjb2RlID0gaXQudmFsaWRhdGUoJGl0KTtcbiAgICAkaXQuYmFzZUlkID0gJGN1cnJlbnRCYXNlSWQ7XG4gICAgaWYgKGl0LnV0aWwudmFyT2NjdXJlbmNlcygkY29kZSwgJG5leHREYXRhKSA8IDIpIHtcbiAgICAgIG91dCArPSAnICcgKyAoaXQudXRpbC52YXJSZXBsYWNlKCRjb2RlLCAkbmV4dERhdGEsICRwYXNzRGF0YSkpICsgJyAnO1xuICAgIH0gZWxzZSB7XG4gICAgICBvdXQgKz0gJyB2YXIgJyArICgkbmV4dERhdGEpICsgJyA9ICcgKyAoJHBhc3NEYXRhKSArICc7ICcgKyAoJGNvZGUpICsgJyAnO1xuICAgIH1cbiAgICBpZiAoJGJyZWFrT25FcnJvcikge1xuICAgICAgb3V0ICs9ICcgaWYgKCEnICsgKCRuZXh0VmFsaWQpICsgJykgYnJlYWs7ICc7XG4gICAgfVxuICAgIG91dCArPSAnIH0nO1xuICB9XG4gIGlmICgkYnJlYWtPbkVycm9yKSB7XG4gICAgb3V0ICs9ICcgJyArICgkY2xvc2luZ0JyYWNlcykgKyAnIGlmICgnICsgKCRlcnJzKSArICcgPT0gZXJyb3JzKSB7JztcbiAgfVxuICByZXR1cm4gb3V0O1xufVxuIiwgIid1c2Ugc3RyaWN0Jztcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gZ2VuZXJhdGVfX2xpbWl0KGl0LCAka2V5d29yZCwgJHJ1bGVUeXBlKSB7XG4gIHZhciBvdXQgPSAnICc7XG4gIHZhciAkbHZsID0gaXQubGV2ZWw7XG4gIHZhciAkZGF0YUx2bCA9IGl0LmRhdGFMZXZlbDtcbiAgdmFyICRzY2hlbWEgPSBpdC5zY2hlbWFbJGtleXdvcmRdO1xuICB2YXIgJHNjaGVtYVBhdGggPSBpdC5zY2hlbWFQYXRoICsgaXQudXRpbC5nZXRQcm9wZXJ0eSgka2V5d29yZCk7XG4gIHZhciAkZXJyU2NoZW1hUGF0aCA9IGl0LmVyclNjaGVtYVBhdGggKyAnLycgKyAka2V5d29yZDtcbiAgdmFyICRicmVha09uRXJyb3IgPSAhaXQub3B0cy5hbGxFcnJvcnM7XG4gIHZhciAkZXJyb3JLZXl3b3JkO1xuICB2YXIgJGRhdGEgPSAnZGF0YScgKyAoJGRhdGFMdmwgfHwgJycpO1xuICB2YXIgJGlzRGF0YSA9IGl0Lm9wdHMuJGRhdGEgJiYgJHNjaGVtYSAmJiAkc2NoZW1hLiRkYXRhLFxuICAgICRzY2hlbWFWYWx1ZTtcbiAgaWYgKCRpc0RhdGEpIHtcbiAgICBvdXQgKz0gJyB2YXIgc2NoZW1hJyArICgkbHZsKSArICcgPSAnICsgKGl0LnV0aWwuZ2V0RGF0YSgkc2NoZW1hLiRkYXRhLCAkZGF0YUx2bCwgaXQuZGF0YVBhdGhBcnIpKSArICc7ICc7XG4gICAgJHNjaGVtYVZhbHVlID0gJ3NjaGVtYScgKyAkbHZsO1xuICB9IGVsc2Uge1xuICAgICRzY2hlbWFWYWx1ZSA9ICRzY2hlbWE7XG4gIH1cbiAgdmFyICRpc01heCA9ICRrZXl3b3JkID09ICdtYXhpbXVtJyxcbiAgICAkZXhjbHVzaXZlS2V5d29yZCA9ICRpc01heCA/ICdleGNsdXNpdmVNYXhpbXVtJyA6ICdleGNsdXNpdmVNaW5pbXVtJyxcbiAgICAkc2NoZW1hRXhjbCA9IGl0LnNjaGVtYVskZXhjbHVzaXZlS2V5d29yZF0sXG4gICAgJGlzRGF0YUV4Y2wgPSBpdC5vcHRzLiRkYXRhICYmICRzY2hlbWFFeGNsICYmICRzY2hlbWFFeGNsLiRkYXRhLFxuICAgICRvcCA9ICRpc01heCA/ICc8JyA6ICc+JyxcbiAgICAkbm90T3AgPSAkaXNNYXggPyAnPicgOiAnPCcsXG4gICAgJGVycm9yS2V5d29yZCA9IHVuZGVmaW5lZDtcbiAgaWYgKCEoJGlzRGF0YSB8fCB0eXBlb2YgJHNjaGVtYSA9PSAnbnVtYmVyJyB8fCAkc2NoZW1hID09PSB1bmRlZmluZWQpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCRrZXl3b3JkICsgJyBtdXN0IGJlIG51bWJlcicpO1xuICB9XG4gIGlmICghKCRpc0RhdGFFeGNsIHx8ICRzY2hlbWFFeGNsID09PSB1bmRlZmluZWQgfHwgdHlwZW9mICRzY2hlbWFFeGNsID09ICdudW1iZXInIHx8IHR5cGVvZiAkc2NoZW1hRXhjbCA9PSAnYm9vbGVhbicpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCRleGNsdXNpdmVLZXl3b3JkICsgJyBtdXN0IGJlIG51bWJlciBvciBib29sZWFuJyk7XG4gIH1cbiAgaWYgKCRpc0RhdGFFeGNsKSB7XG4gICAgdmFyICRzY2hlbWFWYWx1ZUV4Y2wgPSBpdC51dGlsLmdldERhdGEoJHNjaGVtYUV4Y2wuJGRhdGEsICRkYXRhTHZsLCBpdC5kYXRhUGF0aEFyciksXG4gICAgICAkZXhjbHVzaXZlID0gJ2V4Y2x1c2l2ZScgKyAkbHZsLFxuICAgICAgJGV4Y2xUeXBlID0gJ2V4Y2xUeXBlJyArICRsdmwsXG4gICAgICAkZXhjbElzTnVtYmVyID0gJ2V4Y2xJc051bWJlcicgKyAkbHZsLFxuICAgICAgJG9wRXhwciA9ICdvcCcgKyAkbHZsLFxuICAgICAgJG9wU3RyID0gJ1xcJyArICcgKyAkb3BFeHByICsgJyArIFxcJyc7XG4gICAgb3V0ICs9ICcgdmFyIHNjaGVtYUV4Y2wnICsgKCRsdmwpICsgJyA9ICcgKyAoJHNjaGVtYVZhbHVlRXhjbCkgKyAnOyAnO1xuICAgICRzY2hlbWFWYWx1ZUV4Y2wgPSAnc2NoZW1hRXhjbCcgKyAkbHZsO1xuICAgIG91dCArPSAnIHZhciAnICsgKCRleGNsdXNpdmUpICsgJzsgdmFyICcgKyAoJGV4Y2xUeXBlKSArICcgPSB0eXBlb2YgJyArICgkc2NoZW1hVmFsdWVFeGNsKSArICc7IGlmICgnICsgKCRleGNsVHlwZSkgKyAnICE9IFxcJ2Jvb2xlYW5cXCcgJiYgJyArICgkZXhjbFR5cGUpICsgJyAhPSBcXCd1bmRlZmluZWRcXCcgJiYgJyArICgkZXhjbFR5cGUpICsgJyAhPSBcXCdudW1iZXJcXCcpIHsgJztcbiAgICB2YXIgJGVycm9yS2V5d29yZCA9ICRleGNsdXNpdmVLZXl3b3JkO1xuICAgIHZhciAkJG91dFN0YWNrID0gJCRvdXRTdGFjayB8fCBbXTtcbiAgICAkJG91dFN0YWNrLnB1c2gob3V0KTtcbiAgICBvdXQgPSAnJzsgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICBpZiAoaXQuY3JlYXRlRXJyb3JzICE9PSBmYWxzZSkge1xuICAgICAgb3V0ICs9ICcgeyBrZXl3b3JkOiBcXCcnICsgKCRlcnJvcktleXdvcmQgfHwgJ19leGNsdXNpdmVMaW1pdCcpICsgJ1xcJyAsIGRhdGFQYXRoOiAoZGF0YVBhdGggfHwgXFwnXFwnKSArICcgKyAoaXQuZXJyb3JQYXRoKSArICcgLCBzY2hlbWFQYXRoOiAnICsgKGl0LnV0aWwudG9RdW90ZWRTdHJpbmcoJGVyclNjaGVtYVBhdGgpKSArICcgLCBwYXJhbXM6IHt9ICc7XG4gICAgICBpZiAoaXQub3B0cy5tZXNzYWdlcyAhPT0gZmFsc2UpIHtcbiAgICAgICAgb3V0ICs9ICcgLCBtZXNzYWdlOiBcXCcnICsgKCRleGNsdXNpdmVLZXl3b3JkKSArICcgc2hvdWxkIGJlIGJvb2xlYW5cXCcgJztcbiAgICAgIH1cbiAgICAgIGlmIChpdC5vcHRzLnZlcmJvc2UpIHtcbiAgICAgICAgb3V0ICs9ICcgLCBzY2hlbWE6IHZhbGlkYXRlLnNjaGVtYScgKyAoJHNjaGVtYVBhdGgpICsgJyAsIHBhcmVudFNjaGVtYTogdmFsaWRhdGUuc2NoZW1hJyArIChpdC5zY2hlbWFQYXRoKSArICcgLCBkYXRhOiAnICsgKCRkYXRhKSArICcgJztcbiAgICAgIH1cbiAgICAgIG91dCArPSAnIH0gJztcbiAgICB9IGVsc2Uge1xuICAgICAgb3V0ICs9ICcge30gJztcbiAgICB9XG4gICAgdmFyIF9fZXJyID0gb3V0O1xuICAgIG91dCA9ICQkb3V0U3RhY2sucG9wKCk7XG4gICAgaWYgKCFpdC5jb21wb3NpdGVSdWxlICYmICRicmVha09uRXJyb3IpIHtcbiAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBpZiAqL1xuICAgICAgaWYgKGl0LmFzeW5jKSB7XG4gICAgICAgIG91dCArPSAnIHRocm93IG5ldyBWYWxpZGF0aW9uRXJyb3IoWycgKyAoX19lcnIpICsgJ10pOyAnO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgb3V0ICs9ICcgdmFsaWRhdGUuZXJyb3JzID0gWycgKyAoX19lcnIpICsgJ107IHJldHVybiBmYWxzZTsgJztcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgb3V0ICs9ICcgdmFyIGVyciA9ICcgKyAoX19lcnIpICsgJzsgIGlmICh2RXJyb3JzID09PSBudWxsKSB2RXJyb3JzID0gW2Vycl07IGVsc2UgdkVycm9ycy5wdXNoKGVycik7IGVycm9ycysrOyAnO1xuICAgIH1cbiAgICBvdXQgKz0gJyB9IGVsc2UgaWYgKCAnO1xuICAgIGlmICgkaXNEYXRhKSB7XG4gICAgICBvdXQgKz0gJyAoJyArICgkc2NoZW1hVmFsdWUpICsgJyAhPT0gdW5kZWZpbmVkICYmIHR5cGVvZiAnICsgKCRzY2hlbWFWYWx1ZSkgKyAnICE9IFxcJ251bWJlclxcJykgfHwgJztcbiAgICB9XG4gICAgb3V0ICs9ICcgJyArICgkZXhjbFR5cGUpICsgJyA9PSBcXCdudW1iZXJcXCcgPyAoICgnICsgKCRleGNsdXNpdmUpICsgJyA9ICcgKyAoJHNjaGVtYVZhbHVlKSArICcgPT09IHVuZGVmaW5lZCB8fCAnICsgKCRzY2hlbWFWYWx1ZUV4Y2wpICsgJyAnICsgKCRvcCkgKyAnPSAnICsgKCRzY2hlbWFWYWx1ZSkgKyAnKSA/ICcgKyAoJGRhdGEpICsgJyAnICsgKCRub3RPcCkgKyAnPSAnICsgKCRzY2hlbWFWYWx1ZUV4Y2wpICsgJyA6ICcgKyAoJGRhdGEpICsgJyAnICsgKCRub3RPcCkgKyAnICcgKyAoJHNjaGVtYVZhbHVlKSArICcgKSA6ICggKCcgKyAoJGV4Y2x1c2l2ZSkgKyAnID0gJyArICgkc2NoZW1hVmFsdWVFeGNsKSArICcgPT09IHRydWUpID8gJyArICgkZGF0YSkgKyAnICcgKyAoJG5vdE9wKSArICc9ICcgKyAoJHNjaGVtYVZhbHVlKSArICcgOiAnICsgKCRkYXRhKSArICcgJyArICgkbm90T3ApICsgJyAnICsgKCRzY2hlbWFWYWx1ZSkgKyAnICkgfHwgJyArICgkZGF0YSkgKyAnICE9PSAnICsgKCRkYXRhKSArICcpIHsgdmFyIG9wJyArICgkbHZsKSArICcgPSAnICsgKCRleGNsdXNpdmUpICsgJyA/IFxcJycgKyAoJG9wKSArICdcXCcgOiBcXCcnICsgKCRvcCkgKyAnPVxcJzsgJztcbiAgICBpZiAoJHNjaGVtYSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAkZXJyb3JLZXl3b3JkID0gJGV4Y2x1c2l2ZUtleXdvcmQ7XG4gICAgICAkZXJyU2NoZW1hUGF0aCA9IGl0LmVyclNjaGVtYVBhdGggKyAnLycgKyAkZXhjbHVzaXZlS2V5d29yZDtcbiAgICAgICRzY2hlbWFWYWx1ZSA9ICRzY2hlbWFWYWx1ZUV4Y2w7XG4gICAgICAkaXNEYXRhID0gJGlzRGF0YUV4Y2w7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIHZhciAkZXhjbElzTnVtYmVyID0gdHlwZW9mICRzY2hlbWFFeGNsID09ICdudW1iZXInLFxuICAgICAgJG9wU3RyID0gJG9wO1xuICAgIGlmICgkZXhjbElzTnVtYmVyICYmICRpc0RhdGEpIHtcbiAgICAgIHZhciAkb3BFeHByID0gJ1xcJycgKyAkb3BTdHIgKyAnXFwnJztcbiAgICAgIG91dCArPSAnIGlmICggJztcbiAgICAgIGlmICgkaXNEYXRhKSB7XG4gICAgICAgIG91dCArPSAnICgnICsgKCRzY2hlbWFWYWx1ZSkgKyAnICE9PSB1bmRlZmluZWQgJiYgdHlwZW9mICcgKyAoJHNjaGVtYVZhbHVlKSArICcgIT0gXFwnbnVtYmVyXFwnKSB8fCAnO1xuICAgICAgfVxuICAgICAgb3V0ICs9ICcgKCAnICsgKCRzY2hlbWFWYWx1ZSkgKyAnID09PSB1bmRlZmluZWQgfHwgJyArICgkc2NoZW1hRXhjbCkgKyAnICcgKyAoJG9wKSArICc9ICcgKyAoJHNjaGVtYVZhbHVlKSArICcgPyAnICsgKCRkYXRhKSArICcgJyArICgkbm90T3ApICsgJz0gJyArICgkc2NoZW1hRXhjbCkgKyAnIDogJyArICgkZGF0YSkgKyAnICcgKyAoJG5vdE9wKSArICcgJyArICgkc2NoZW1hVmFsdWUpICsgJyApIHx8ICcgKyAoJGRhdGEpICsgJyAhPT0gJyArICgkZGF0YSkgKyAnKSB7ICc7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICgkZXhjbElzTnVtYmVyICYmICRzY2hlbWEgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAkZXhjbHVzaXZlID0gdHJ1ZTtcbiAgICAgICAgJGVycm9yS2V5d29yZCA9ICRleGNsdXNpdmVLZXl3b3JkO1xuICAgICAgICAkZXJyU2NoZW1hUGF0aCA9IGl0LmVyclNjaGVtYVBhdGggKyAnLycgKyAkZXhjbHVzaXZlS2V5d29yZDtcbiAgICAgICAgJHNjaGVtYVZhbHVlID0gJHNjaGVtYUV4Y2w7XG4gICAgICAgICRub3RPcCArPSAnPSc7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAoJGV4Y2xJc051bWJlcikgJHNjaGVtYVZhbHVlID0gTWF0aFskaXNNYXggPyAnbWluJyA6ICdtYXgnXSgkc2NoZW1hRXhjbCwgJHNjaGVtYSk7XG4gICAgICAgIGlmICgkc2NoZW1hRXhjbCA9PT0gKCRleGNsSXNOdW1iZXIgPyAkc2NoZW1hVmFsdWUgOiB0cnVlKSkge1xuICAgICAgICAgICRleGNsdXNpdmUgPSB0cnVlO1xuICAgICAgICAgICRlcnJvcktleXdvcmQgPSAkZXhjbHVzaXZlS2V5d29yZDtcbiAgICAgICAgICAkZXJyU2NoZW1hUGF0aCA9IGl0LmVyclNjaGVtYVBhdGggKyAnLycgKyAkZXhjbHVzaXZlS2V5d29yZDtcbiAgICAgICAgICAkbm90T3AgKz0gJz0nO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICRleGNsdXNpdmUgPSBmYWxzZTtcbiAgICAgICAgICAkb3BTdHIgKz0gJz0nO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICB2YXIgJG9wRXhwciA9ICdcXCcnICsgJG9wU3RyICsgJ1xcJyc7XG4gICAgICBvdXQgKz0gJyBpZiAoICc7XG4gICAgICBpZiAoJGlzRGF0YSkge1xuICAgICAgICBvdXQgKz0gJyAoJyArICgkc2NoZW1hVmFsdWUpICsgJyAhPT0gdW5kZWZpbmVkICYmIHR5cGVvZiAnICsgKCRzY2hlbWFWYWx1ZSkgKyAnICE9IFxcJ251bWJlclxcJykgfHwgJztcbiAgICAgIH1cbiAgICAgIG91dCArPSAnICcgKyAoJGRhdGEpICsgJyAnICsgKCRub3RPcCkgKyAnICcgKyAoJHNjaGVtYVZhbHVlKSArICcgfHwgJyArICgkZGF0YSkgKyAnICE9PSAnICsgKCRkYXRhKSArICcpIHsgJztcbiAgICB9XG4gIH1cbiAgJGVycm9yS2V5d29yZCA9ICRlcnJvcktleXdvcmQgfHwgJGtleXdvcmQ7XG4gIHZhciAkJG91dFN0YWNrID0gJCRvdXRTdGFjayB8fCBbXTtcbiAgJCRvdXRTdGFjay5wdXNoKG91dCk7XG4gIG91dCA9ICcnOyAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICBpZiAoaXQuY3JlYXRlRXJyb3JzICE9PSBmYWxzZSkge1xuICAgIG91dCArPSAnIHsga2V5d29yZDogXFwnJyArICgkZXJyb3JLZXl3b3JkIHx8ICdfbGltaXQnKSArICdcXCcgLCBkYXRhUGF0aDogKGRhdGFQYXRoIHx8IFxcJ1xcJykgKyAnICsgKGl0LmVycm9yUGF0aCkgKyAnICwgc2NoZW1hUGF0aDogJyArIChpdC51dGlsLnRvUXVvdGVkU3RyaW5nKCRlcnJTY2hlbWFQYXRoKSkgKyAnICwgcGFyYW1zOiB7IGNvbXBhcmlzb246ICcgKyAoJG9wRXhwcikgKyAnLCBsaW1pdDogJyArICgkc2NoZW1hVmFsdWUpICsgJywgZXhjbHVzaXZlOiAnICsgKCRleGNsdXNpdmUpICsgJyB9ICc7XG4gICAgaWYgKGl0Lm9wdHMubWVzc2FnZXMgIT09IGZhbHNlKSB7XG4gICAgICBvdXQgKz0gJyAsIG1lc3NhZ2U6IFxcJ3Nob3VsZCBiZSAnICsgKCRvcFN0cikgKyAnICc7XG4gICAgICBpZiAoJGlzRGF0YSkge1xuICAgICAgICBvdXQgKz0gJ1xcJyArICcgKyAoJHNjaGVtYVZhbHVlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG91dCArPSAnJyArICgkc2NoZW1hVmFsdWUpICsgJ1xcJyc7XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChpdC5vcHRzLnZlcmJvc2UpIHtcbiAgICAgIG91dCArPSAnICwgc2NoZW1hOiAgJztcbiAgICAgIGlmICgkaXNEYXRhKSB7XG4gICAgICAgIG91dCArPSAndmFsaWRhdGUuc2NoZW1hJyArICgkc2NoZW1hUGF0aCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBvdXQgKz0gJycgKyAoJHNjaGVtYSk7XG4gICAgICB9XG4gICAgICBvdXQgKz0gJyAgICAgICAgICwgcGFyZW50U2NoZW1hOiB2YWxpZGF0ZS5zY2hlbWEnICsgKGl0LnNjaGVtYVBhdGgpICsgJyAsIGRhdGE6ICcgKyAoJGRhdGEpICsgJyAnO1xuICAgIH1cbiAgICBvdXQgKz0gJyB9ICc7XG4gIH0gZWxzZSB7XG4gICAgb3V0ICs9ICcge30gJztcbiAgfVxuICB2YXIgX19lcnIgPSBvdXQ7XG4gIG91dCA9ICQkb3V0U3RhY2sucG9wKCk7XG4gIGlmICghaXQuY29tcG9zaXRlUnVsZSAmJiAkYnJlYWtPbkVycm9yKSB7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIGlmICovXG4gICAgaWYgKGl0LmFzeW5jKSB7XG4gICAgICBvdXQgKz0gJyB0aHJvdyBuZXcgVmFsaWRhdGlvbkVycm9yKFsnICsgKF9fZXJyKSArICddKTsgJztcbiAgICB9IGVsc2Uge1xuICAgICAgb3V0ICs9ICcgdmFsaWRhdGUuZXJyb3JzID0gWycgKyAoX19lcnIpICsgJ107IHJldHVybiBmYWxzZTsgJztcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgb3V0ICs9ICcgdmFyIGVyciA9ICcgKyAoX19lcnIpICsgJzsgIGlmICh2RXJyb3JzID09PSBudWxsKSB2RXJyb3JzID0gW2Vycl07IGVsc2UgdkVycm9ycy5wdXNoKGVycik7IGVycm9ycysrOyAnO1xuICB9XG4gIG91dCArPSAnIH0gJztcbiAgaWYgKCRicmVha09uRXJyb3IpIHtcbiAgICBvdXQgKz0gJyBlbHNlIHsgJztcbiAgfVxuICByZXR1cm4gb3V0O1xufVxuIiwgIid1c2Ugc3RyaWN0Jztcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gZ2VuZXJhdGVfX2xpbWl0SXRlbXMoaXQsICRrZXl3b3JkLCAkcnVsZVR5cGUpIHtcbiAgdmFyIG91dCA9ICcgJztcbiAgdmFyICRsdmwgPSBpdC5sZXZlbDtcbiAgdmFyICRkYXRhTHZsID0gaXQuZGF0YUxldmVsO1xuICB2YXIgJHNjaGVtYSA9IGl0LnNjaGVtYVska2V5d29yZF07XG4gIHZhciAkc2NoZW1hUGF0aCA9IGl0LnNjaGVtYVBhdGggKyBpdC51dGlsLmdldFByb3BlcnR5KCRrZXl3b3JkKTtcbiAgdmFyICRlcnJTY2hlbWFQYXRoID0gaXQuZXJyU2NoZW1hUGF0aCArICcvJyArICRrZXl3b3JkO1xuICB2YXIgJGJyZWFrT25FcnJvciA9ICFpdC5vcHRzLmFsbEVycm9ycztcbiAgdmFyICRlcnJvcktleXdvcmQ7XG4gIHZhciAkZGF0YSA9ICdkYXRhJyArICgkZGF0YUx2bCB8fCAnJyk7XG4gIHZhciAkaXNEYXRhID0gaXQub3B0cy4kZGF0YSAmJiAkc2NoZW1hICYmICRzY2hlbWEuJGRhdGEsXG4gICAgJHNjaGVtYVZhbHVlO1xuICBpZiAoJGlzRGF0YSkge1xuICAgIG91dCArPSAnIHZhciBzY2hlbWEnICsgKCRsdmwpICsgJyA9ICcgKyAoaXQudXRpbC5nZXREYXRhKCRzY2hlbWEuJGRhdGEsICRkYXRhTHZsLCBpdC5kYXRhUGF0aEFycikpICsgJzsgJztcbiAgICAkc2NoZW1hVmFsdWUgPSAnc2NoZW1hJyArICRsdmw7XG4gIH0gZWxzZSB7XG4gICAgJHNjaGVtYVZhbHVlID0gJHNjaGVtYTtcbiAgfVxuICBpZiAoISgkaXNEYXRhIHx8IHR5cGVvZiAkc2NoZW1hID09ICdudW1iZXInKSkge1xuICAgIHRocm93IG5ldyBFcnJvcigka2V5d29yZCArICcgbXVzdCBiZSBudW1iZXInKTtcbiAgfVxuICB2YXIgJG9wID0gJGtleXdvcmQgPT0gJ21heEl0ZW1zJyA/ICc+JyA6ICc8JztcbiAgb3V0ICs9ICdpZiAoICc7XG4gIGlmICgkaXNEYXRhKSB7XG4gICAgb3V0ICs9ICcgKCcgKyAoJHNjaGVtYVZhbHVlKSArICcgIT09IHVuZGVmaW5lZCAmJiB0eXBlb2YgJyArICgkc2NoZW1hVmFsdWUpICsgJyAhPSBcXCdudW1iZXJcXCcpIHx8ICc7XG4gIH1cbiAgb3V0ICs9ICcgJyArICgkZGF0YSkgKyAnLmxlbmd0aCAnICsgKCRvcCkgKyAnICcgKyAoJHNjaGVtYVZhbHVlKSArICcpIHsgJztcbiAgdmFyICRlcnJvcktleXdvcmQgPSAka2V5d29yZDtcbiAgdmFyICQkb3V0U3RhY2sgPSAkJG91dFN0YWNrIHx8IFtdO1xuICAkJG91dFN0YWNrLnB1c2gob3V0KTtcbiAgb3V0ID0gJyc7IC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gIGlmIChpdC5jcmVhdGVFcnJvcnMgIT09IGZhbHNlKSB7XG4gICAgb3V0ICs9ICcgeyBrZXl3b3JkOiBcXCcnICsgKCRlcnJvcktleXdvcmQgfHwgJ19saW1pdEl0ZW1zJykgKyAnXFwnICwgZGF0YVBhdGg6IChkYXRhUGF0aCB8fCBcXCdcXCcpICsgJyArIChpdC5lcnJvclBhdGgpICsgJyAsIHNjaGVtYVBhdGg6ICcgKyAoaXQudXRpbC50b1F1b3RlZFN0cmluZygkZXJyU2NoZW1hUGF0aCkpICsgJyAsIHBhcmFtczogeyBsaW1pdDogJyArICgkc2NoZW1hVmFsdWUpICsgJyB9ICc7XG4gICAgaWYgKGl0Lm9wdHMubWVzc2FnZXMgIT09IGZhbHNlKSB7XG4gICAgICBvdXQgKz0gJyAsIG1lc3NhZ2U6IFxcJ3Nob3VsZCBOT1QgaGF2ZSAnO1xuICAgICAgaWYgKCRrZXl3b3JkID09ICdtYXhJdGVtcycpIHtcbiAgICAgICAgb3V0ICs9ICdtb3JlJztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG91dCArPSAnZmV3ZXInO1xuICAgICAgfVxuICAgICAgb3V0ICs9ICcgdGhhbiAnO1xuICAgICAgaWYgKCRpc0RhdGEpIHtcbiAgICAgICAgb3V0ICs9ICdcXCcgKyAnICsgKCRzY2hlbWFWYWx1ZSkgKyAnICsgXFwnJztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG91dCArPSAnJyArICgkc2NoZW1hKTtcbiAgICAgIH1cbiAgICAgIG91dCArPSAnIGl0ZW1zXFwnICc7XG4gICAgfVxuICAgIGlmIChpdC5vcHRzLnZlcmJvc2UpIHtcbiAgICAgIG91dCArPSAnICwgc2NoZW1hOiAgJztcbiAgICAgIGlmICgkaXNEYXRhKSB7XG4gICAgICAgIG91dCArPSAndmFsaWRhdGUuc2NoZW1hJyArICgkc2NoZW1hUGF0aCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBvdXQgKz0gJycgKyAoJHNjaGVtYSk7XG4gICAgICB9XG4gICAgICBvdXQgKz0gJyAgICAgICAgICwgcGFyZW50U2NoZW1hOiB2YWxpZGF0ZS5zY2hlbWEnICsgKGl0LnNjaGVtYVBhdGgpICsgJyAsIGRhdGE6ICcgKyAoJGRhdGEpICsgJyAnO1xuICAgIH1cbiAgICBvdXQgKz0gJyB9ICc7XG4gIH0gZWxzZSB7XG4gICAgb3V0ICs9ICcge30gJztcbiAgfVxuICB2YXIgX19lcnIgPSBvdXQ7XG4gIG91dCA9ICQkb3V0U3RhY2sucG9wKCk7XG4gIGlmICghaXQuY29tcG9zaXRlUnVsZSAmJiAkYnJlYWtPbkVycm9yKSB7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIGlmICovXG4gICAgaWYgKGl0LmFzeW5jKSB7XG4gICAgICBvdXQgKz0gJyB0aHJvdyBuZXcgVmFsaWRhdGlvbkVycm9yKFsnICsgKF9fZXJyKSArICddKTsgJztcbiAgICB9IGVsc2Uge1xuICAgICAgb3V0ICs9ICcgdmFsaWRhdGUuZXJyb3JzID0gWycgKyAoX19lcnIpICsgJ107IHJldHVybiBmYWxzZTsgJztcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgb3V0ICs9ICcgdmFyIGVyciA9ICcgKyAoX19lcnIpICsgJzsgIGlmICh2RXJyb3JzID09PSBudWxsKSB2RXJyb3JzID0gW2Vycl07IGVsc2UgdkVycm9ycy5wdXNoKGVycik7IGVycm9ycysrOyAnO1xuICB9XG4gIG91dCArPSAnfSAnO1xuICBpZiAoJGJyZWFrT25FcnJvcikge1xuICAgIG91dCArPSAnIGVsc2UgeyAnO1xuICB9XG4gIHJldHVybiBvdXQ7XG59XG4iLCAiJ3VzZSBzdHJpY3QnO1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBnZW5lcmF0ZV9fbGltaXRMZW5ndGgoaXQsICRrZXl3b3JkLCAkcnVsZVR5cGUpIHtcbiAgdmFyIG91dCA9ICcgJztcbiAgdmFyICRsdmwgPSBpdC5sZXZlbDtcbiAgdmFyICRkYXRhTHZsID0gaXQuZGF0YUxldmVsO1xuICB2YXIgJHNjaGVtYSA9IGl0LnNjaGVtYVska2V5d29yZF07XG4gIHZhciAkc2NoZW1hUGF0aCA9IGl0LnNjaGVtYVBhdGggKyBpdC51dGlsLmdldFByb3BlcnR5KCRrZXl3b3JkKTtcbiAgdmFyICRlcnJTY2hlbWFQYXRoID0gaXQuZXJyU2NoZW1hUGF0aCArICcvJyArICRrZXl3b3JkO1xuICB2YXIgJGJyZWFrT25FcnJvciA9ICFpdC5vcHRzLmFsbEVycm9ycztcbiAgdmFyICRlcnJvcktleXdvcmQ7XG4gIHZhciAkZGF0YSA9ICdkYXRhJyArICgkZGF0YUx2bCB8fCAnJyk7XG4gIHZhciAkaXNEYXRhID0gaXQub3B0cy4kZGF0YSAmJiAkc2NoZW1hICYmICRzY2hlbWEuJGRhdGEsXG4gICAgJHNjaGVtYVZhbHVlO1xuICBpZiAoJGlzRGF0YSkge1xuICAgIG91dCArPSAnIHZhciBzY2hlbWEnICsgKCRsdmwpICsgJyA9ICcgKyAoaXQudXRpbC5nZXREYXRhKCRzY2hlbWEuJGRhdGEsICRkYXRhTHZsLCBpdC5kYXRhUGF0aEFycikpICsgJzsgJztcbiAgICAkc2NoZW1hVmFsdWUgPSAnc2NoZW1hJyArICRsdmw7XG4gIH0gZWxzZSB7XG4gICAgJHNjaGVtYVZhbHVlID0gJHNjaGVtYTtcbiAgfVxuICBpZiAoISgkaXNEYXRhIHx8IHR5cGVvZiAkc2NoZW1hID09ICdudW1iZXInKSkge1xuICAgIHRocm93IG5ldyBFcnJvcigka2V5d29yZCArICcgbXVzdCBiZSBudW1iZXInKTtcbiAgfVxuICB2YXIgJG9wID0gJGtleXdvcmQgPT0gJ21heExlbmd0aCcgPyAnPicgOiAnPCc7XG4gIG91dCArPSAnaWYgKCAnO1xuICBpZiAoJGlzRGF0YSkge1xuICAgIG91dCArPSAnICgnICsgKCRzY2hlbWFWYWx1ZSkgKyAnICE9PSB1bmRlZmluZWQgJiYgdHlwZW9mICcgKyAoJHNjaGVtYVZhbHVlKSArICcgIT0gXFwnbnVtYmVyXFwnKSB8fCAnO1xuICB9XG4gIGlmIChpdC5vcHRzLnVuaWNvZGUgPT09IGZhbHNlKSB7XG4gICAgb3V0ICs9ICcgJyArICgkZGF0YSkgKyAnLmxlbmd0aCAnO1xuICB9IGVsc2Uge1xuICAgIG91dCArPSAnIHVjczJsZW5ndGgoJyArICgkZGF0YSkgKyAnKSAnO1xuICB9XG4gIG91dCArPSAnICcgKyAoJG9wKSArICcgJyArICgkc2NoZW1hVmFsdWUpICsgJykgeyAnO1xuICB2YXIgJGVycm9yS2V5d29yZCA9ICRrZXl3b3JkO1xuICB2YXIgJCRvdXRTdGFjayA9ICQkb3V0U3RhY2sgfHwgW107XG4gICQkb3V0U3RhY2sucHVzaChvdXQpO1xuICBvdXQgPSAnJzsgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgaWYgKGl0LmNyZWF0ZUVycm9ycyAhPT0gZmFsc2UpIHtcbiAgICBvdXQgKz0gJyB7IGtleXdvcmQ6IFxcJycgKyAoJGVycm9yS2V5d29yZCB8fCAnX2xpbWl0TGVuZ3RoJykgKyAnXFwnICwgZGF0YVBhdGg6IChkYXRhUGF0aCB8fCBcXCdcXCcpICsgJyArIChpdC5lcnJvclBhdGgpICsgJyAsIHNjaGVtYVBhdGg6ICcgKyAoaXQudXRpbC50b1F1b3RlZFN0cmluZygkZXJyU2NoZW1hUGF0aCkpICsgJyAsIHBhcmFtczogeyBsaW1pdDogJyArICgkc2NoZW1hVmFsdWUpICsgJyB9ICc7XG4gICAgaWYgKGl0Lm9wdHMubWVzc2FnZXMgIT09IGZhbHNlKSB7XG4gICAgICBvdXQgKz0gJyAsIG1lc3NhZ2U6IFxcJ3Nob3VsZCBOT1QgYmUgJztcbiAgICAgIGlmICgka2V5d29yZCA9PSAnbWF4TGVuZ3RoJykge1xuICAgICAgICBvdXQgKz0gJ2xvbmdlcic7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBvdXQgKz0gJ3Nob3J0ZXInO1xuICAgICAgfVxuICAgICAgb3V0ICs9ICcgdGhhbiAnO1xuICAgICAgaWYgKCRpc0RhdGEpIHtcbiAgICAgICAgb3V0ICs9ICdcXCcgKyAnICsgKCRzY2hlbWFWYWx1ZSkgKyAnICsgXFwnJztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG91dCArPSAnJyArICgkc2NoZW1hKTtcbiAgICAgIH1cbiAgICAgIG91dCArPSAnIGNoYXJhY3RlcnNcXCcgJztcbiAgICB9XG4gICAgaWYgKGl0Lm9wdHMudmVyYm9zZSkge1xuICAgICAgb3V0ICs9ICcgLCBzY2hlbWE6ICAnO1xuICAgICAgaWYgKCRpc0RhdGEpIHtcbiAgICAgICAgb3V0ICs9ICd2YWxpZGF0ZS5zY2hlbWEnICsgKCRzY2hlbWFQYXRoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG91dCArPSAnJyArICgkc2NoZW1hKTtcbiAgICAgIH1cbiAgICAgIG91dCArPSAnICAgICAgICAgLCBwYXJlbnRTY2hlbWE6IHZhbGlkYXRlLnNjaGVtYScgKyAoaXQuc2NoZW1hUGF0aCkgKyAnICwgZGF0YTogJyArICgkZGF0YSkgKyAnICc7XG4gICAgfVxuICAgIG91dCArPSAnIH0gJztcbiAgfSBlbHNlIHtcbiAgICBvdXQgKz0gJyB7fSAnO1xuICB9XG4gIHZhciBfX2VyciA9IG91dDtcbiAgb3V0ID0gJCRvdXRTdGFjay5wb3AoKTtcbiAgaWYgKCFpdC5jb21wb3NpdGVSdWxlICYmICRicmVha09uRXJyb3IpIHtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgaWYgKi9cbiAgICBpZiAoaXQuYXN5bmMpIHtcbiAgICAgIG91dCArPSAnIHRocm93IG5ldyBWYWxpZGF0aW9uRXJyb3IoWycgKyAoX19lcnIpICsgJ10pOyAnO1xuICAgIH0gZWxzZSB7XG4gICAgICBvdXQgKz0gJyB2YWxpZGF0ZS5lcnJvcnMgPSBbJyArIChfX2VycikgKyAnXTsgcmV0dXJuIGZhbHNlOyAnO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBvdXQgKz0gJyB2YXIgZXJyID0gJyArIChfX2VycikgKyAnOyAgaWYgKHZFcnJvcnMgPT09IG51bGwpIHZFcnJvcnMgPSBbZXJyXTsgZWxzZSB2RXJyb3JzLnB1c2goZXJyKTsgZXJyb3JzKys7ICc7XG4gIH1cbiAgb3V0ICs9ICd9ICc7XG4gIGlmICgkYnJlYWtPbkVycm9yKSB7XG4gICAgb3V0ICs9ICcgZWxzZSB7ICc7XG4gIH1cbiAgcmV0dXJuIG91dDtcbn1cbiIsICIndXNlIHN0cmljdCc7XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIGdlbmVyYXRlX19saW1pdFByb3BlcnRpZXMoaXQsICRrZXl3b3JkLCAkcnVsZVR5cGUpIHtcbiAgdmFyIG91dCA9ICcgJztcbiAgdmFyICRsdmwgPSBpdC5sZXZlbDtcbiAgdmFyICRkYXRhTHZsID0gaXQuZGF0YUxldmVsO1xuICB2YXIgJHNjaGVtYSA9IGl0LnNjaGVtYVska2V5d29yZF07XG4gIHZhciAkc2NoZW1hUGF0aCA9IGl0LnNjaGVtYVBhdGggKyBpdC51dGlsLmdldFByb3BlcnR5KCRrZXl3b3JkKTtcbiAgdmFyICRlcnJTY2hlbWFQYXRoID0gaXQuZXJyU2NoZW1hUGF0aCArICcvJyArICRrZXl3b3JkO1xuICB2YXIgJGJyZWFrT25FcnJvciA9ICFpdC5vcHRzLmFsbEVycm9ycztcbiAgdmFyICRlcnJvcktleXdvcmQ7XG4gIHZhciAkZGF0YSA9ICdkYXRhJyArICgkZGF0YUx2bCB8fCAnJyk7XG4gIHZhciAkaXNEYXRhID0gaXQub3B0cy4kZGF0YSAmJiAkc2NoZW1hICYmICRzY2hlbWEuJGRhdGEsXG4gICAgJHNjaGVtYVZhbHVlO1xuICBpZiAoJGlzRGF0YSkge1xuICAgIG91dCArPSAnIHZhciBzY2hlbWEnICsgKCRsdmwpICsgJyA9ICcgKyAoaXQudXRpbC5nZXREYXRhKCRzY2hlbWEuJGRhdGEsICRkYXRhTHZsLCBpdC5kYXRhUGF0aEFycikpICsgJzsgJztcbiAgICAkc2NoZW1hVmFsdWUgPSAnc2NoZW1hJyArICRsdmw7XG4gIH0gZWxzZSB7XG4gICAgJHNjaGVtYVZhbHVlID0gJHNjaGVtYTtcbiAgfVxuICBpZiAoISgkaXNEYXRhIHx8IHR5cGVvZiAkc2NoZW1hID09ICdudW1iZXInKSkge1xuICAgIHRocm93IG5ldyBFcnJvcigka2V5d29yZCArICcgbXVzdCBiZSBudW1iZXInKTtcbiAgfVxuICB2YXIgJG9wID0gJGtleXdvcmQgPT0gJ21heFByb3BlcnRpZXMnID8gJz4nIDogJzwnO1xuICBvdXQgKz0gJ2lmICggJztcbiAgaWYgKCRpc0RhdGEpIHtcbiAgICBvdXQgKz0gJyAoJyArICgkc2NoZW1hVmFsdWUpICsgJyAhPT0gdW5kZWZpbmVkICYmIHR5cGVvZiAnICsgKCRzY2hlbWFWYWx1ZSkgKyAnICE9IFxcJ251bWJlclxcJykgfHwgJztcbiAgfVxuICBvdXQgKz0gJyBPYmplY3Qua2V5cygnICsgKCRkYXRhKSArICcpLmxlbmd0aCAnICsgKCRvcCkgKyAnICcgKyAoJHNjaGVtYVZhbHVlKSArICcpIHsgJztcbiAgdmFyICRlcnJvcktleXdvcmQgPSAka2V5d29yZDtcbiAgdmFyICQkb3V0U3RhY2sgPSAkJG91dFN0YWNrIHx8IFtdO1xuICAkJG91dFN0YWNrLnB1c2gob3V0KTtcbiAgb3V0ID0gJyc7IC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gIGlmIChpdC5jcmVhdGVFcnJvcnMgIT09IGZhbHNlKSB7XG4gICAgb3V0ICs9ICcgeyBrZXl3b3JkOiBcXCcnICsgKCRlcnJvcktleXdvcmQgfHwgJ19saW1pdFByb3BlcnRpZXMnKSArICdcXCcgLCBkYXRhUGF0aDogKGRhdGFQYXRoIHx8IFxcJ1xcJykgKyAnICsgKGl0LmVycm9yUGF0aCkgKyAnICwgc2NoZW1hUGF0aDogJyArIChpdC51dGlsLnRvUXVvdGVkU3RyaW5nKCRlcnJTY2hlbWFQYXRoKSkgKyAnICwgcGFyYW1zOiB7IGxpbWl0OiAnICsgKCRzY2hlbWFWYWx1ZSkgKyAnIH0gJztcbiAgICBpZiAoaXQub3B0cy5tZXNzYWdlcyAhPT0gZmFsc2UpIHtcbiAgICAgIG91dCArPSAnICwgbWVzc2FnZTogXFwnc2hvdWxkIE5PVCBoYXZlICc7XG4gICAgICBpZiAoJGtleXdvcmQgPT0gJ21heFByb3BlcnRpZXMnKSB7XG4gICAgICAgIG91dCArPSAnbW9yZSc7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBvdXQgKz0gJ2Zld2VyJztcbiAgICAgIH1cbiAgICAgIG91dCArPSAnIHRoYW4gJztcbiAgICAgIGlmICgkaXNEYXRhKSB7XG4gICAgICAgIG91dCArPSAnXFwnICsgJyArICgkc2NoZW1hVmFsdWUpICsgJyArIFxcJyc7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBvdXQgKz0gJycgKyAoJHNjaGVtYSk7XG4gICAgICB9XG4gICAgICBvdXQgKz0gJyBwcm9wZXJ0aWVzXFwnICc7XG4gICAgfVxuICAgIGlmIChpdC5vcHRzLnZlcmJvc2UpIHtcbiAgICAgIG91dCArPSAnICwgc2NoZW1hOiAgJztcbiAgICAgIGlmICgkaXNEYXRhKSB7XG4gICAgICAgIG91dCArPSAndmFsaWRhdGUuc2NoZW1hJyArICgkc2NoZW1hUGF0aCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBvdXQgKz0gJycgKyAoJHNjaGVtYSk7XG4gICAgICB9XG4gICAgICBvdXQgKz0gJyAgICAgICAgICwgcGFyZW50U2NoZW1hOiB2YWxpZGF0ZS5zY2hlbWEnICsgKGl0LnNjaGVtYVBhdGgpICsgJyAsIGRhdGE6ICcgKyAoJGRhdGEpICsgJyAnO1xuICAgIH1cbiAgICBvdXQgKz0gJyB9ICc7XG4gIH0gZWxzZSB7XG4gICAgb3V0ICs9ICcge30gJztcbiAgfVxuICB2YXIgX19lcnIgPSBvdXQ7XG4gIG91dCA9ICQkb3V0U3RhY2sucG9wKCk7XG4gIGlmICghaXQuY29tcG9zaXRlUnVsZSAmJiAkYnJlYWtPbkVycm9yKSB7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIGlmICovXG4gICAgaWYgKGl0LmFzeW5jKSB7XG4gICAgICBvdXQgKz0gJyB0aHJvdyBuZXcgVmFsaWRhdGlvbkVycm9yKFsnICsgKF9fZXJyKSArICddKTsgJztcbiAgICB9IGVsc2Uge1xuICAgICAgb3V0ICs9ICcgdmFsaWRhdGUuZXJyb3JzID0gWycgKyAoX19lcnIpICsgJ107IHJldHVybiBmYWxzZTsgJztcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgb3V0ICs9ICcgdmFyIGVyciA9ICcgKyAoX19lcnIpICsgJzsgIGlmICh2RXJyb3JzID09PSBudWxsKSB2RXJyb3JzID0gW2Vycl07IGVsc2UgdkVycm9ycy5wdXNoKGVycik7IGVycm9ycysrOyAnO1xuICB9XG4gIG91dCArPSAnfSAnO1xuICBpZiAoJGJyZWFrT25FcnJvcikge1xuICAgIG91dCArPSAnIGVsc2UgeyAnO1xuICB9XG4gIHJldHVybiBvdXQ7XG59XG4iLCAiJ3VzZSBzdHJpY3QnO1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBnZW5lcmF0ZV9tdWx0aXBsZU9mKGl0LCAka2V5d29yZCwgJHJ1bGVUeXBlKSB7XG4gIHZhciBvdXQgPSAnICc7XG4gIHZhciAkbHZsID0gaXQubGV2ZWw7XG4gIHZhciAkZGF0YUx2bCA9IGl0LmRhdGFMZXZlbDtcbiAgdmFyICRzY2hlbWEgPSBpdC5zY2hlbWFbJGtleXdvcmRdO1xuICB2YXIgJHNjaGVtYVBhdGggPSBpdC5zY2hlbWFQYXRoICsgaXQudXRpbC5nZXRQcm9wZXJ0eSgka2V5d29yZCk7XG4gIHZhciAkZXJyU2NoZW1hUGF0aCA9IGl0LmVyclNjaGVtYVBhdGggKyAnLycgKyAka2V5d29yZDtcbiAgdmFyICRicmVha09uRXJyb3IgPSAhaXQub3B0cy5hbGxFcnJvcnM7XG4gIHZhciAkZGF0YSA9ICdkYXRhJyArICgkZGF0YUx2bCB8fCAnJyk7XG4gIHZhciAkaXNEYXRhID0gaXQub3B0cy4kZGF0YSAmJiAkc2NoZW1hICYmICRzY2hlbWEuJGRhdGEsXG4gICAgJHNjaGVtYVZhbHVlO1xuICBpZiAoJGlzRGF0YSkge1xuICAgIG91dCArPSAnIHZhciBzY2hlbWEnICsgKCRsdmwpICsgJyA9ICcgKyAoaXQudXRpbC5nZXREYXRhKCRzY2hlbWEuJGRhdGEsICRkYXRhTHZsLCBpdC5kYXRhUGF0aEFycikpICsgJzsgJztcbiAgICAkc2NoZW1hVmFsdWUgPSAnc2NoZW1hJyArICRsdmw7XG4gIH0gZWxzZSB7XG4gICAgJHNjaGVtYVZhbHVlID0gJHNjaGVtYTtcbiAgfVxuICBpZiAoISgkaXNEYXRhIHx8IHR5cGVvZiAkc2NoZW1hID09ICdudW1iZXInKSkge1xuICAgIHRocm93IG5ldyBFcnJvcigka2V5d29yZCArICcgbXVzdCBiZSBudW1iZXInKTtcbiAgfVxuICBvdXQgKz0gJ3ZhciBkaXZpc2lvbicgKyAoJGx2bCkgKyAnO2lmICgnO1xuICBpZiAoJGlzRGF0YSkge1xuICAgIG91dCArPSAnICcgKyAoJHNjaGVtYVZhbHVlKSArICcgIT09IHVuZGVmaW5lZCAmJiAoIHR5cGVvZiAnICsgKCRzY2hlbWFWYWx1ZSkgKyAnICE9IFxcJ251bWJlclxcJyB8fCAnO1xuICB9XG4gIG91dCArPSAnIChkaXZpc2lvbicgKyAoJGx2bCkgKyAnID0gJyArICgkZGF0YSkgKyAnIC8gJyArICgkc2NoZW1hVmFsdWUpICsgJywgJztcbiAgaWYgKGl0Lm9wdHMubXVsdGlwbGVPZlByZWNpc2lvbikge1xuICAgIG91dCArPSAnIE1hdGguYWJzKE1hdGgucm91bmQoZGl2aXNpb24nICsgKCRsdmwpICsgJykgLSBkaXZpc2lvbicgKyAoJGx2bCkgKyAnKSA+IDFlLScgKyAoaXQub3B0cy5tdWx0aXBsZU9mUHJlY2lzaW9uKSArICcgJztcbiAgfSBlbHNlIHtcbiAgICBvdXQgKz0gJyBkaXZpc2lvbicgKyAoJGx2bCkgKyAnICE9PSBwYXJzZUludChkaXZpc2lvbicgKyAoJGx2bCkgKyAnKSAnO1xuICB9XG4gIG91dCArPSAnICkgJztcbiAgaWYgKCRpc0RhdGEpIHtcbiAgICBvdXQgKz0gJyAgKSAgJztcbiAgfVxuICBvdXQgKz0gJyApIHsgICAnO1xuICB2YXIgJCRvdXRTdGFjayA9ICQkb3V0U3RhY2sgfHwgW107XG4gICQkb3V0U3RhY2sucHVzaChvdXQpO1xuICBvdXQgPSAnJzsgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgaWYgKGl0LmNyZWF0ZUVycm9ycyAhPT0gZmFsc2UpIHtcbiAgICBvdXQgKz0gJyB7IGtleXdvcmQ6IFxcJycgKyAoJ211bHRpcGxlT2YnKSArICdcXCcgLCBkYXRhUGF0aDogKGRhdGFQYXRoIHx8IFxcJ1xcJykgKyAnICsgKGl0LmVycm9yUGF0aCkgKyAnICwgc2NoZW1hUGF0aDogJyArIChpdC51dGlsLnRvUXVvdGVkU3RyaW5nKCRlcnJTY2hlbWFQYXRoKSkgKyAnICwgcGFyYW1zOiB7IG11bHRpcGxlT2Y6ICcgKyAoJHNjaGVtYVZhbHVlKSArICcgfSAnO1xuICAgIGlmIChpdC5vcHRzLm1lc3NhZ2VzICE9PSBmYWxzZSkge1xuICAgICAgb3V0ICs9ICcgLCBtZXNzYWdlOiBcXCdzaG91bGQgYmUgbXVsdGlwbGUgb2YgJztcbiAgICAgIGlmICgkaXNEYXRhKSB7XG4gICAgICAgIG91dCArPSAnXFwnICsgJyArICgkc2NoZW1hVmFsdWUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgb3V0ICs9ICcnICsgKCRzY2hlbWFWYWx1ZSkgKyAnXFwnJztcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKGl0Lm9wdHMudmVyYm9zZSkge1xuICAgICAgb3V0ICs9ICcgLCBzY2hlbWE6ICAnO1xuICAgICAgaWYgKCRpc0RhdGEpIHtcbiAgICAgICAgb3V0ICs9ICd2YWxpZGF0ZS5zY2hlbWEnICsgKCRzY2hlbWFQYXRoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG91dCArPSAnJyArICgkc2NoZW1hKTtcbiAgICAgIH1cbiAgICAgIG91dCArPSAnICAgICAgICAgLCBwYXJlbnRTY2hlbWE6IHZhbGlkYXRlLnNjaGVtYScgKyAoaXQuc2NoZW1hUGF0aCkgKyAnICwgZGF0YTogJyArICgkZGF0YSkgKyAnICc7XG4gICAgfVxuICAgIG91dCArPSAnIH0gJztcbiAgfSBlbHNlIHtcbiAgICBvdXQgKz0gJyB7fSAnO1xuICB9XG4gIHZhciBfX2VyciA9IG91dDtcbiAgb3V0ID0gJCRvdXRTdGFjay5wb3AoKTtcbiAgaWYgKCFpdC5jb21wb3NpdGVSdWxlICYmICRicmVha09uRXJyb3IpIHtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgaWYgKi9cbiAgICBpZiAoaXQuYXN5bmMpIHtcbiAgICAgIG91dCArPSAnIHRocm93IG5ldyBWYWxpZGF0aW9uRXJyb3IoWycgKyAoX19lcnIpICsgJ10pOyAnO1xuICAgIH0gZWxzZSB7XG4gICAgICBvdXQgKz0gJyB2YWxpZGF0ZS5lcnJvcnMgPSBbJyArIChfX2VycikgKyAnXTsgcmV0dXJuIGZhbHNlOyAnO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBvdXQgKz0gJyB2YXIgZXJyID0gJyArIChfX2VycikgKyAnOyAgaWYgKHZFcnJvcnMgPT09IG51bGwpIHZFcnJvcnMgPSBbZXJyXTsgZWxzZSB2RXJyb3JzLnB1c2goZXJyKTsgZXJyb3JzKys7ICc7XG4gIH1cbiAgb3V0ICs9ICd9ICc7XG4gIGlmICgkYnJlYWtPbkVycm9yKSB7XG4gICAgb3V0ICs9ICcgZWxzZSB7ICc7XG4gIH1cbiAgcmV0dXJuIG91dDtcbn1cbiIsICIndXNlIHN0cmljdCc7XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIGdlbmVyYXRlX25vdChpdCwgJGtleXdvcmQsICRydWxlVHlwZSkge1xuICB2YXIgb3V0ID0gJyAnO1xuICB2YXIgJGx2bCA9IGl0LmxldmVsO1xuICB2YXIgJGRhdGFMdmwgPSBpdC5kYXRhTGV2ZWw7XG4gIHZhciAkc2NoZW1hID0gaXQuc2NoZW1hWyRrZXl3b3JkXTtcbiAgdmFyICRzY2hlbWFQYXRoID0gaXQuc2NoZW1hUGF0aCArIGl0LnV0aWwuZ2V0UHJvcGVydHkoJGtleXdvcmQpO1xuICB2YXIgJGVyclNjaGVtYVBhdGggPSBpdC5lcnJTY2hlbWFQYXRoICsgJy8nICsgJGtleXdvcmQ7XG4gIHZhciAkYnJlYWtPbkVycm9yID0gIWl0Lm9wdHMuYWxsRXJyb3JzO1xuICB2YXIgJGRhdGEgPSAnZGF0YScgKyAoJGRhdGFMdmwgfHwgJycpO1xuICB2YXIgJGVycnMgPSAnZXJyc19fJyArICRsdmw7XG4gIHZhciAkaXQgPSBpdC51dGlsLmNvcHkoaXQpO1xuICAkaXQubGV2ZWwrKztcbiAgdmFyICRuZXh0VmFsaWQgPSAndmFsaWQnICsgJGl0LmxldmVsO1xuICBpZiAoKGl0Lm9wdHMuc3RyaWN0S2V5d29yZHMgPyAodHlwZW9mICRzY2hlbWEgPT0gJ29iamVjdCcgJiYgT2JqZWN0LmtleXMoJHNjaGVtYSkubGVuZ3RoID4gMCkgfHwgJHNjaGVtYSA9PT0gZmFsc2UgOiBpdC51dGlsLnNjaGVtYUhhc1J1bGVzKCRzY2hlbWEsIGl0LlJVTEVTLmFsbCkpKSB7XG4gICAgJGl0LnNjaGVtYSA9ICRzY2hlbWE7XG4gICAgJGl0LnNjaGVtYVBhdGggPSAkc2NoZW1hUGF0aDtcbiAgICAkaXQuZXJyU2NoZW1hUGF0aCA9ICRlcnJTY2hlbWFQYXRoO1xuICAgIG91dCArPSAnIHZhciAnICsgKCRlcnJzKSArICcgPSBlcnJvcnM7ICAnO1xuICAgIHZhciAkd2FzQ29tcG9zaXRlID0gaXQuY29tcG9zaXRlUnVsZTtcbiAgICBpdC5jb21wb3NpdGVSdWxlID0gJGl0LmNvbXBvc2l0ZVJ1bGUgPSB0cnVlO1xuICAgICRpdC5jcmVhdGVFcnJvcnMgPSBmYWxzZTtcbiAgICB2YXIgJGFsbEVycm9yc09wdGlvbjtcbiAgICBpZiAoJGl0Lm9wdHMuYWxsRXJyb3JzKSB7XG4gICAgICAkYWxsRXJyb3JzT3B0aW9uID0gJGl0Lm9wdHMuYWxsRXJyb3JzO1xuICAgICAgJGl0Lm9wdHMuYWxsRXJyb3JzID0gZmFsc2U7XG4gICAgfVxuICAgIG91dCArPSAnICcgKyAoaXQudmFsaWRhdGUoJGl0KSkgKyAnICc7XG4gICAgJGl0LmNyZWF0ZUVycm9ycyA9IHRydWU7XG4gICAgaWYgKCRhbGxFcnJvcnNPcHRpb24pICRpdC5vcHRzLmFsbEVycm9ycyA9ICRhbGxFcnJvcnNPcHRpb247XG4gICAgaXQuY29tcG9zaXRlUnVsZSA9ICRpdC5jb21wb3NpdGVSdWxlID0gJHdhc0NvbXBvc2l0ZTtcbiAgICBvdXQgKz0gJyBpZiAoJyArICgkbmV4dFZhbGlkKSArICcpIHsgICAnO1xuICAgIHZhciAkJG91dFN0YWNrID0gJCRvdXRTdGFjayB8fCBbXTtcbiAgICAkJG91dFN0YWNrLnB1c2gob3V0KTtcbiAgICBvdXQgPSAnJzsgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICBpZiAoaXQuY3JlYXRlRXJyb3JzICE9PSBmYWxzZSkge1xuICAgICAgb3V0ICs9ICcgeyBrZXl3b3JkOiBcXCcnICsgKCdub3QnKSArICdcXCcgLCBkYXRhUGF0aDogKGRhdGFQYXRoIHx8IFxcJ1xcJykgKyAnICsgKGl0LmVycm9yUGF0aCkgKyAnICwgc2NoZW1hUGF0aDogJyArIChpdC51dGlsLnRvUXVvdGVkU3RyaW5nKCRlcnJTY2hlbWFQYXRoKSkgKyAnICwgcGFyYW1zOiB7fSAnO1xuICAgICAgaWYgKGl0Lm9wdHMubWVzc2FnZXMgIT09IGZhbHNlKSB7XG4gICAgICAgIG91dCArPSAnICwgbWVzc2FnZTogXFwnc2hvdWxkIE5PVCBiZSB2YWxpZFxcJyAnO1xuICAgICAgfVxuICAgICAgaWYgKGl0Lm9wdHMudmVyYm9zZSkge1xuICAgICAgICBvdXQgKz0gJyAsIHNjaGVtYTogdmFsaWRhdGUuc2NoZW1hJyArICgkc2NoZW1hUGF0aCkgKyAnICwgcGFyZW50U2NoZW1hOiB2YWxpZGF0ZS5zY2hlbWEnICsgKGl0LnNjaGVtYVBhdGgpICsgJyAsIGRhdGE6ICcgKyAoJGRhdGEpICsgJyAnO1xuICAgICAgfVxuICAgICAgb3V0ICs9ICcgfSAnO1xuICAgIH0gZWxzZSB7XG4gICAgICBvdXQgKz0gJyB7fSAnO1xuICAgIH1cbiAgICB2YXIgX19lcnIgPSBvdXQ7XG4gICAgb3V0ID0gJCRvdXRTdGFjay5wb3AoKTtcbiAgICBpZiAoIWl0LmNvbXBvc2l0ZVJ1bGUgJiYgJGJyZWFrT25FcnJvcikge1xuICAgICAgLyogaXN0YW5idWwgaWdub3JlIGlmICovXG4gICAgICBpZiAoaXQuYXN5bmMpIHtcbiAgICAgICAgb3V0ICs9ICcgdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcihbJyArIChfX2VycikgKyAnXSk7ICc7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBvdXQgKz0gJyB2YWxpZGF0ZS5lcnJvcnMgPSBbJyArIChfX2VycikgKyAnXTsgcmV0dXJuIGZhbHNlOyAnO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBvdXQgKz0gJyB2YXIgZXJyID0gJyArIChfX2VycikgKyAnOyAgaWYgKHZFcnJvcnMgPT09IG51bGwpIHZFcnJvcnMgPSBbZXJyXTsgZWxzZSB2RXJyb3JzLnB1c2goZXJyKTsgZXJyb3JzKys7ICc7XG4gICAgfVxuICAgIG91dCArPSAnIH0gZWxzZSB7ICBlcnJvcnMgPSAnICsgKCRlcnJzKSArICc7IGlmICh2RXJyb3JzICE9PSBudWxsKSB7IGlmICgnICsgKCRlcnJzKSArICcpIHZFcnJvcnMubGVuZ3RoID0gJyArICgkZXJycykgKyAnOyBlbHNlIHZFcnJvcnMgPSBudWxsOyB9ICc7XG4gICAgaWYgKGl0Lm9wdHMuYWxsRXJyb3JzKSB7XG4gICAgICBvdXQgKz0gJyB9ICc7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIG91dCArPSAnICB2YXIgZXJyID0gICAnOyAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIGlmIChpdC5jcmVhdGVFcnJvcnMgIT09IGZhbHNlKSB7XG4gICAgICBvdXQgKz0gJyB7IGtleXdvcmQ6IFxcJycgKyAoJ25vdCcpICsgJ1xcJyAsIGRhdGFQYXRoOiAoZGF0YVBhdGggfHwgXFwnXFwnKSArICcgKyAoaXQuZXJyb3JQYXRoKSArICcgLCBzY2hlbWFQYXRoOiAnICsgKGl0LnV0aWwudG9RdW90ZWRTdHJpbmcoJGVyclNjaGVtYVBhdGgpKSArICcgLCBwYXJhbXM6IHt9ICc7XG4gICAgICBpZiAoaXQub3B0cy5tZXNzYWdlcyAhPT0gZmFsc2UpIHtcbiAgICAgICAgb3V0ICs9ICcgLCBtZXNzYWdlOiBcXCdzaG91bGQgTk9UIGJlIHZhbGlkXFwnICc7XG4gICAgICB9XG4gICAgICBpZiAoaXQub3B0cy52ZXJib3NlKSB7XG4gICAgICAgIG91dCArPSAnICwgc2NoZW1hOiB2YWxpZGF0ZS5zY2hlbWEnICsgKCRzY2hlbWFQYXRoKSArICcgLCBwYXJlbnRTY2hlbWE6IHZhbGlkYXRlLnNjaGVtYScgKyAoaXQuc2NoZW1hUGF0aCkgKyAnICwgZGF0YTogJyArICgkZGF0YSkgKyAnICc7XG4gICAgICB9XG4gICAgICBvdXQgKz0gJyB9ICc7XG4gICAgfSBlbHNlIHtcbiAgICAgIG91dCArPSAnIHt9ICc7XG4gICAgfVxuICAgIG91dCArPSAnOyAgaWYgKHZFcnJvcnMgPT09IG51bGwpIHZFcnJvcnMgPSBbZXJyXTsgZWxzZSB2RXJyb3JzLnB1c2goZXJyKTsgZXJyb3JzKys7ICc7XG4gICAgaWYgKCRicmVha09uRXJyb3IpIHtcbiAgICAgIG91dCArPSAnIGlmIChmYWxzZSkgeyAnO1xuICAgIH1cbiAgfVxuICByZXR1cm4gb3V0O1xufVxuIiwgIid1c2Ugc3RyaWN0Jztcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gZ2VuZXJhdGVfb25lT2YoaXQsICRrZXl3b3JkLCAkcnVsZVR5cGUpIHtcbiAgdmFyIG91dCA9ICcgJztcbiAgdmFyICRsdmwgPSBpdC5sZXZlbDtcbiAgdmFyICRkYXRhTHZsID0gaXQuZGF0YUxldmVsO1xuICB2YXIgJHNjaGVtYSA9IGl0LnNjaGVtYVska2V5d29yZF07XG4gIHZhciAkc2NoZW1hUGF0aCA9IGl0LnNjaGVtYVBhdGggKyBpdC51dGlsLmdldFByb3BlcnR5KCRrZXl3b3JkKTtcbiAgdmFyICRlcnJTY2hlbWFQYXRoID0gaXQuZXJyU2NoZW1hUGF0aCArICcvJyArICRrZXl3b3JkO1xuICB2YXIgJGJyZWFrT25FcnJvciA9ICFpdC5vcHRzLmFsbEVycm9ycztcbiAgdmFyICRkYXRhID0gJ2RhdGEnICsgKCRkYXRhTHZsIHx8ICcnKTtcbiAgdmFyICR2YWxpZCA9ICd2YWxpZCcgKyAkbHZsO1xuICB2YXIgJGVycnMgPSAnZXJyc19fJyArICRsdmw7XG4gIHZhciAkaXQgPSBpdC51dGlsLmNvcHkoaXQpO1xuICB2YXIgJGNsb3NpbmdCcmFjZXMgPSAnJztcbiAgJGl0LmxldmVsKys7XG4gIHZhciAkbmV4dFZhbGlkID0gJ3ZhbGlkJyArICRpdC5sZXZlbDtcbiAgdmFyICRjdXJyZW50QmFzZUlkID0gJGl0LmJhc2VJZCxcbiAgICAkcHJldlZhbGlkID0gJ3ByZXZWYWxpZCcgKyAkbHZsLFxuICAgICRwYXNzaW5nU2NoZW1hcyA9ICdwYXNzaW5nU2NoZW1hcycgKyAkbHZsO1xuICBvdXQgKz0gJ3ZhciAnICsgKCRlcnJzKSArICcgPSBlcnJvcnMgLCAnICsgKCRwcmV2VmFsaWQpICsgJyA9IGZhbHNlICwgJyArICgkdmFsaWQpICsgJyA9IGZhbHNlICwgJyArICgkcGFzc2luZ1NjaGVtYXMpICsgJyA9IG51bGw7ICc7XG4gIHZhciAkd2FzQ29tcG9zaXRlID0gaXQuY29tcG9zaXRlUnVsZTtcbiAgaXQuY29tcG9zaXRlUnVsZSA9ICRpdC5jb21wb3NpdGVSdWxlID0gdHJ1ZTtcbiAgdmFyIGFycjEgPSAkc2NoZW1hO1xuICBpZiAoYXJyMSkge1xuICAgIHZhciAkc2NoLCAkaSA9IC0xLFxuICAgICAgbDEgPSBhcnIxLmxlbmd0aCAtIDE7XG4gICAgd2hpbGUgKCRpIDwgbDEpIHtcbiAgICAgICRzY2ggPSBhcnIxWyRpICs9IDFdO1xuICAgICAgaWYgKChpdC5vcHRzLnN0cmljdEtleXdvcmRzID8gKHR5cGVvZiAkc2NoID09ICdvYmplY3QnICYmIE9iamVjdC5rZXlzKCRzY2gpLmxlbmd0aCA+IDApIHx8ICRzY2ggPT09IGZhbHNlIDogaXQudXRpbC5zY2hlbWFIYXNSdWxlcygkc2NoLCBpdC5SVUxFUy5hbGwpKSkge1xuICAgICAgICAkaXQuc2NoZW1hID0gJHNjaDtcbiAgICAgICAgJGl0LnNjaGVtYVBhdGggPSAkc2NoZW1hUGF0aCArICdbJyArICRpICsgJ10nO1xuICAgICAgICAkaXQuZXJyU2NoZW1hUGF0aCA9ICRlcnJTY2hlbWFQYXRoICsgJy8nICsgJGk7XG4gICAgICAgIG91dCArPSAnICAnICsgKGl0LnZhbGlkYXRlKCRpdCkpICsgJyAnO1xuICAgICAgICAkaXQuYmFzZUlkID0gJGN1cnJlbnRCYXNlSWQ7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBvdXQgKz0gJyB2YXIgJyArICgkbmV4dFZhbGlkKSArICcgPSB0cnVlOyAnO1xuICAgICAgfVxuICAgICAgaWYgKCRpKSB7XG4gICAgICAgIG91dCArPSAnIGlmICgnICsgKCRuZXh0VmFsaWQpICsgJyAmJiAnICsgKCRwcmV2VmFsaWQpICsgJykgeyAnICsgKCR2YWxpZCkgKyAnID0gZmFsc2U7ICcgKyAoJHBhc3NpbmdTY2hlbWFzKSArICcgPSBbJyArICgkcGFzc2luZ1NjaGVtYXMpICsgJywgJyArICgkaSkgKyAnXTsgfSBlbHNlIHsgJztcbiAgICAgICAgJGNsb3NpbmdCcmFjZXMgKz0gJ30nO1xuICAgICAgfVxuICAgICAgb3V0ICs9ICcgaWYgKCcgKyAoJG5leHRWYWxpZCkgKyAnKSB7ICcgKyAoJHZhbGlkKSArICcgPSAnICsgKCRwcmV2VmFsaWQpICsgJyA9IHRydWU7ICcgKyAoJHBhc3NpbmdTY2hlbWFzKSArICcgPSAnICsgKCRpKSArICc7IH0nO1xuICAgIH1cbiAgfVxuICBpdC5jb21wb3NpdGVSdWxlID0gJGl0LmNvbXBvc2l0ZVJ1bGUgPSAkd2FzQ29tcG9zaXRlO1xuICBvdXQgKz0gJycgKyAoJGNsb3NpbmdCcmFjZXMpICsgJ2lmICghJyArICgkdmFsaWQpICsgJykgeyAgIHZhciBlcnIgPSAgICc7IC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gIGlmIChpdC5jcmVhdGVFcnJvcnMgIT09IGZhbHNlKSB7XG4gICAgb3V0ICs9ICcgeyBrZXl3b3JkOiBcXCcnICsgKCdvbmVPZicpICsgJ1xcJyAsIGRhdGFQYXRoOiAoZGF0YVBhdGggfHwgXFwnXFwnKSArICcgKyAoaXQuZXJyb3JQYXRoKSArICcgLCBzY2hlbWFQYXRoOiAnICsgKGl0LnV0aWwudG9RdW90ZWRTdHJpbmcoJGVyclNjaGVtYVBhdGgpKSArICcgLCBwYXJhbXM6IHsgcGFzc2luZ1NjaGVtYXM6ICcgKyAoJHBhc3NpbmdTY2hlbWFzKSArICcgfSAnO1xuICAgIGlmIChpdC5vcHRzLm1lc3NhZ2VzICE9PSBmYWxzZSkge1xuICAgICAgb3V0ICs9ICcgLCBtZXNzYWdlOiBcXCdzaG91bGQgbWF0Y2ggZXhhY3RseSBvbmUgc2NoZW1hIGluIG9uZU9mXFwnICc7XG4gICAgfVxuICAgIGlmIChpdC5vcHRzLnZlcmJvc2UpIHtcbiAgICAgIG91dCArPSAnICwgc2NoZW1hOiB2YWxpZGF0ZS5zY2hlbWEnICsgKCRzY2hlbWFQYXRoKSArICcgLCBwYXJlbnRTY2hlbWE6IHZhbGlkYXRlLnNjaGVtYScgKyAoaXQuc2NoZW1hUGF0aCkgKyAnICwgZGF0YTogJyArICgkZGF0YSkgKyAnICc7XG4gICAgfVxuICAgIG91dCArPSAnIH0gJztcbiAgfSBlbHNlIHtcbiAgICBvdXQgKz0gJyB7fSAnO1xuICB9XG4gIG91dCArPSAnOyAgaWYgKHZFcnJvcnMgPT09IG51bGwpIHZFcnJvcnMgPSBbZXJyXTsgZWxzZSB2RXJyb3JzLnB1c2goZXJyKTsgZXJyb3JzKys7ICc7XG4gIGlmICghaXQuY29tcG9zaXRlUnVsZSAmJiAkYnJlYWtPbkVycm9yKSB7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIGlmICovXG4gICAgaWYgKGl0LmFzeW5jKSB7XG4gICAgICBvdXQgKz0gJyB0aHJvdyBuZXcgVmFsaWRhdGlvbkVycm9yKHZFcnJvcnMpOyAnO1xuICAgIH0gZWxzZSB7XG4gICAgICBvdXQgKz0gJyB2YWxpZGF0ZS5lcnJvcnMgPSB2RXJyb3JzOyByZXR1cm4gZmFsc2U7ICc7XG4gICAgfVxuICB9XG4gIG91dCArPSAnfSBlbHNlIHsgIGVycm9ycyA9ICcgKyAoJGVycnMpICsgJzsgaWYgKHZFcnJvcnMgIT09IG51bGwpIHsgaWYgKCcgKyAoJGVycnMpICsgJykgdkVycm9ycy5sZW5ndGggPSAnICsgKCRlcnJzKSArICc7IGVsc2UgdkVycm9ycyA9IG51bGw7IH0nO1xuICBpZiAoaXQub3B0cy5hbGxFcnJvcnMpIHtcbiAgICBvdXQgKz0gJyB9ICc7XG4gIH1cbiAgcmV0dXJuIG91dDtcbn1cbiIsICIndXNlIHN0cmljdCc7XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIGdlbmVyYXRlX3BhdHRlcm4oaXQsICRrZXl3b3JkLCAkcnVsZVR5cGUpIHtcbiAgdmFyIG91dCA9ICcgJztcbiAgdmFyICRsdmwgPSBpdC5sZXZlbDtcbiAgdmFyICRkYXRhTHZsID0gaXQuZGF0YUxldmVsO1xuICB2YXIgJHNjaGVtYSA9IGl0LnNjaGVtYVska2V5d29yZF07XG4gIHZhciAkc2NoZW1hUGF0aCA9IGl0LnNjaGVtYVBhdGggKyBpdC51dGlsLmdldFByb3BlcnR5KCRrZXl3b3JkKTtcbiAgdmFyICRlcnJTY2hlbWFQYXRoID0gaXQuZXJyU2NoZW1hUGF0aCArICcvJyArICRrZXl3b3JkO1xuICB2YXIgJGJyZWFrT25FcnJvciA9ICFpdC5vcHRzLmFsbEVycm9ycztcbiAgdmFyICRkYXRhID0gJ2RhdGEnICsgKCRkYXRhTHZsIHx8ICcnKTtcbiAgdmFyICRpc0RhdGEgPSBpdC5vcHRzLiRkYXRhICYmICRzY2hlbWEgJiYgJHNjaGVtYS4kZGF0YSxcbiAgICAkc2NoZW1hVmFsdWU7XG4gIGlmICgkaXNEYXRhKSB7XG4gICAgb3V0ICs9ICcgdmFyIHNjaGVtYScgKyAoJGx2bCkgKyAnID0gJyArIChpdC51dGlsLmdldERhdGEoJHNjaGVtYS4kZGF0YSwgJGRhdGFMdmwsIGl0LmRhdGFQYXRoQXJyKSkgKyAnOyAnO1xuICAgICRzY2hlbWFWYWx1ZSA9ICdzY2hlbWEnICsgJGx2bDtcbiAgfSBlbHNlIHtcbiAgICAkc2NoZW1hVmFsdWUgPSAkc2NoZW1hO1xuICB9XG4gIHZhciAkcmVnZXhwID0gJGlzRGF0YSA/ICcobmV3IFJlZ0V4cCgnICsgJHNjaGVtYVZhbHVlICsgJykpJyA6IGl0LnVzZVBhdHRlcm4oJHNjaGVtYSk7XG4gIG91dCArPSAnaWYgKCAnO1xuICBpZiAoJGlzRGF0YSkge1xuICAgIG91dCArPSAnICgnICsgKCRzY2hlbWFWYWx1ZSkgKyAnICE9PSB1bmRlZmluZWQgJiYgdHlwZW9mICcgKyAoJHNjaGVtYVZhbHVlKSArICcgIT0gXFwnc3RyaW5nXFwnKSB8fCAnO1xuICB9XG4gIG91dCArPSAnICEnICsgKCRyZWdleHApICsgJy50ZXN0KCcgKyAoJGRhdGEpICsgJykgKSB7ICAgJztcbiAgdmFyICQkb3V0U3RhY2sgPSAkJG91dFN0YWNrIHx8IFtdO1xuICAkJG91dFN0YWNrLnB1c2gob3V0KTtcbiAgb3V0ID0gJyc7IC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gIGlmIChpdC5jcmVhdGVFcnJvcnMgIT09IGZhbHNlKSB7XG4gICAgb3V0ICs9ICcgeyBrZXl3b3JkOiBcXCcnICsgKCdwYXR0ZXJuJykgKyAnXFwnICwgZGF0YVBhdGg6IChkYXRhUGF0aCB8fCBcXCdcXCcpICsgJyArIChpdC5lcnJvclBhdGgpICsgJyAsIHNjaGVtYVBhdGg6ICcgKyAoaXQudXRpbC50b1F1b3RlZFN0cmluZygkZXJyU2NoZW1hUGF0aCkpICsgJyAsIHBhcmFtczogeyBwYXR0ZXJuOiAgJztcbiAgICBpZiAoJGlzRGF0YSkge1xuICAgICAgb3V0ICs9ICcnICsgKCRzY2hlbWFWYWx1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIG91dCArPSAnJyArIChpdC51dGlsLnRvUXVvdGVkU3RyaW5nKCRzY2hlbWEpKTtcbiAgICB9XG4gICAgb3V0ICs9ICcgIH0gJztcbiAgICBpZiAoaXQub3B0cy5tZXNzYWdlcyAhPT0gZmFsc2UpIHtcbiAgICAgIG91dCArPSAnICwgbWVzc2FnZTogXFwnc2hvdWxkIG1hdGNoIHBhdHRlcm4gXCInO1xuICAgICAgaWYgKCRpc0RhdGEpIHtcbiAgICAgICAgb3V0ICs9ICdcXCcgKyAnICsgKCRzY2hlbWFWYWx1ZSkgKyAnICsgXFwnJztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG91dCArPSAnJyArIChpdC51dGlsLmVzY2FwZVF1b3Rlcygkc2NoZW1hKSk7XG4gICAgICB9XG4gICAgICBvdXQgKz0gJ1wiXFwnICc7XG4gICAgfVxuICAgIGlmIChpdC5vcHRzLnZlcmJvc2UpIHtcbiAgICAgIG91dCArPSAnICwgc2NoZW1hOiAgJztcbiAgICAgIGlmICgkaXNEYXRhKSB7XG4gICAgICAgIG91dCArPSAndmFsaWRhdGUuc2NoZW1hJyArICgkc2NoZW1hUGF0aCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBvdXQgKz0gJycgKyAoaXQudXRpbC50b1F1b3RlZFN0cmluZygkc2NoZW1hKSk7XG4gICAgICB9XG4gICAgICBvdXQgKz0gJyAgICAgICAgICwgcGFyZW50U2NoZW1hOiB2YWxpZGF0ZS5zY2hlbWEnICsgKGl0LnNjaGVtYVBhdGgpICsgJyAsIGRhdGE6ICcgKyAoJGRhdGEpICsgJyAnO1xuICAgIH1cbiAgICBvdXQgKz0gJyB9ICc7XG4gIH0gZWxzZSB7XG4gICAgb3V0ICs9ICcge30gJztcbiAgfVxuICB2YXIgX19lcnIgPSBvdXQ7XG4gIG91dCA9ICQkb3V0U3RhY2sucG9wKCk7XG4gIGlmICghaXQuY29tcG9zaXRlUnVsZSAmJiAkYnJlYWtPbkVycm9yKSB7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIGlmICovXG4gICAgaWYgKGl0LmFzeW5jKSB7XG4gICAgICBvdXQgKz0gJyB0aHJvdyBuZXcgVmFsaWRhdGlvbkVycm9yKFsnICsgKF9fZXJyKSArICddKTsgJztcbiAgICB9IGVsc2Uge1xuICAgICAgb3V0ICs9ICcgdmFsaWRhdGUuZXJyb3JzID0gWycgKyAoX19lcnIpICsgJ107IHJldHVybiBmYWxzZTsgJztcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgb3V0ICs9ICcgdmFyIGVyciA9ICcgKyAoX19lcnIpICsgJzsgIGlmICh2RXJyb3JzID09PSBudWxsKSB2RXJyb3JzID0gW2Vycl07IGVsc2UgdkVycm9ycy5wdXNoKGVycik7IGVycm9ycysrOyAnO1xuICB9XG4gIG91dCArPSAnfSAnO1xuICBpZiAoJGJyZWFrT25FcnJvcikge1xuICAgIG91dCArPSAnIGVsc2UgeyAnO1xuICB9XG4gIHJldHVybiBvdXQ7XG59XG4iLCAiJ3VzZSBzdHJpY3QnO1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBnZW5lcmF0ZV9wcm9wZXJ0aWVzKGl0LCAka2V5d29yZCwgJHJ1bGVUeXBlKSB7XG4gIHZhciBvdXQgPSAnICc7XG4gIHZhciAkbHZsID0gaXQubGV2ZWw7XG4gIHZhciAkZGF0YUx2bCA9IGl0LmRhdGFMZXZlbDtcbiAgdmFyICRzY2hlbWEgPSBpdC5zY2hlbWFbJGtleXdvcmRdO1xuICB2YXIgJHNjaGVtYVBhdGggPSBpdC5zY2hlbWFQYXRoICsgaXQudXRpbC5nZXRQcm9wZXJ0eSgka2V5d29yZCk7XG4gIHZhciAkZXJyU2NoZW1hUGF0aCA9IGl0LmVyclNjaGVtYVBhdGggKyAnLycgKyAka2V5d29yZDtcbiAgdmFyICRicmVha09uRXJyb3IgPSAhaXQub3B0cy5hbGxFcnJvcnM7XG4gIHZhciAkZGF0YSA9ICdkYXRhJyArICgkZGF0YUx2bCB8fCAnJyk7XG4gIHZhciAkZXJycyA9ICdlcnJzX18nICsgJGx2bDtcbiAgdmFyICRpdCA9IGl0LnV0aWwuY29weShpdCk7XG4gIHZhciAkY2xvc2luZ0JyYWNlcyA9ICcnO1xuICAkaXQubGV2ZWwrKztcbiAgdmFyICRuZXh0VmFsaWQgPSAndmFsaWQnICsgJGl0LmxldmVsO1xuICB2YXIgJGtleSA9ICdrZXknICsgJGx2bCxcbiAgICAkaWR4ID0gJ2lkeCcgKyAkbHZsLFxuICAgICRkYXRhTnh0ID0gJGl0LmRhdGFMZXZlbCA9IGl0LmRhdGFMZXZlbCArIDEsXG4gICAgJG5leHREYXRhID0gJ2RhdGEnICsgJGRhdGFOeHQsXG4gICAgJGRhdGFQcm9wZXJ0aWVzID0gJ2RhdGFQcm9wZXJ0aWVzJyArICRsdmw7XG4gIHZhciAkc2NoZW1hS2V5cyA9IE9iamVjdC5rZXlzKCRzY2hlbWEgfHwge30pLmZpbHRlcihub3RQcm90byksXG4gICAgJHBQcm9wZXJ0aWVzID0gaXQuc2NoZW1hLnBhdHRlcm5Qcm9wZXJ0aWVzIHx8IHt9LFxuICAgICRwUHJvcGVydHlLZXlzID0gT2JqZWN0LmtleXMoJHBQcm9wZXJ0aWVzKS5maWx0ZXIobm90UHJvdG8pLFxuICAgICRhUHJvcGVydGllcyA9IGl0LnNjaGVtYS5hZGRpdGlvbmFsUHJvcGVydGllcyxcbiAgICAkc29tZVByb3BlcnRpZXMgPSAkc2NoZW1hS2V5cy5sZW5ndGggfHwgJHBQcm9wZXJ0eUtleXMubGVuZ3RoLFxuICAgICRub0FkZGl0aW9uYWwgPSAkYVByb3BlcnRpZXMgPT09IGZhbHNlLFxuICAgICRhZGRpdGlvbmFsSXNTY2hlbWEgPSB0eXBlb2YgJGFQcm9wZXJ0aWVzID09ICdvYmplY3QnICYmIE9iamVjdC5rZXlzKCRhUHJvcGVydGllcykubGVuZ3RoLFxuICAgICRyZW1vdmVBZGRpdGlvbmFsID0gaXQub3B0cy5yZW1vdmVBZGRpdGlvbmFsLFxuICAgICRjaGVja0FkZGl0aW9uYWwgPSAkbm9BZGRpdGlvbmFsIHx8ICRhZGRpdGlvbmFsSXNTY2hlbWEgfHwgJHJlbW92ZUFkZGl0aW9uYWwsXG4gICAgJG93blByb3BlcnRpZXMgPSBpdC5vcHRzLm93blByb3BlcnRpZXMsXG4gICAgJGN1cnJlbnRCYXNlSWQgPSBpdC5iYXNlSWQ7XG4gIHZhciAkcmVxdWlyZWQgPSBpdC5zY2hlbWEucmVxdWlyZWQ7XG4gIGlmICgkcmVxdWlyZWQgJiYgIShpdC5vcHRzLiRkYXRhICYmICRyZXF1aXJlZC4kZGF0YSkgJiYgJHJlcXVpcmVkLmxlbmd0aCA8IGl0Lm9wdHMubG9vcFJlcXVpcmVkKSB7XG4gICAgdmFyICRyZXF1aXJlZEhhc2ggPSBpdC51dGlsLnRvSGFzaCgkcmVxdWlyZWQpO1xuICB9XG5cbiAgZnVuY3Rpb24gbm90UHJvdG8ocCkge1xuICAgIHJldHVybiBwICE9PSAnX19wcm90b19fJztcbiAgfVxuICBvdXQgKz0gJ3ZhciAnICsgKCRlcnJzKSArICcgPSBlcnJvcnM7dmFyICcgKyAoJG5leHRWYWxpZCkgKyAnID0gdHJ1ZTsnO1xuICBpZiAoJG93blByb3BlcnRpZXMpIHtcbiAgICBvdXQgKz0gJyB2YXIgJyArICgkZGF0YVByb3BlcnRpZXMpICsgJyA9IHVuZGVmaW5lZDsnO1xuICB9XG4gIGlmICgkY2hlY2tBZGRpdGlvbmFsKSB7XG4gICAgaWYgKCRvd25Qcm9wZXJ0aWVzKSB7XG4gICAgICBvdXQgKz0gJyAnICsgKCRkYXRhUHJvcGVydGllcykgKyAnID0gJyArICgkZGF0YVByb3BlcnRpZXMpICsgJyB8fCBPYmplY3Qua2V5cygnICsgKCRkYXRhKSArICcpOyBmb3IgKHZhciAnICsgKCRpZHgpICsgJz0wOyAnICsgKCRpZHgpICsgJzwnICsgKCRkYXRhUHJvcGVydGllcykgKyAnLmxlbmd0aDsgJyArICgkaWR4KSArICcrKykgeyB2YXIgJyArICgka2V5KSArICcgPSAnICsgKCRkYXRhUHJvcGVydGllcykgKyAnWycgKyAoJGlkeCkgKyAnXTsgJztcbiAgICB9IGVsc2Uge1xuICAgICAgb3V0ICs9ICcgZm9yICh2YXIgJyArICgka2V5KSArICcgaW4gJyArICgkZGF0YSkgKyAnKSB7ICc7XG4gICAgfVxuICAgIGlmICgkc29tZVByb3BlcnRpZXMpIHtcbiAgICAgIG91dCArPSAnIHZhciBpc0FkZGl0aW9uYWwnICsgKCRsdmwpICsgJyA9ICEoZmFsc2UgJztcbiAgICAgIGlmICgkc2NoZW1hS2V5cy5sZW5ndGgpIHtcbiAgICAgICAgaWYgKCRzY2hlbWFLZXlzLmxlbmd0aCA+IDgpIHtcbiAgICAgICAgICBvdXQgKz0gJyB8fCB2YWxpZGF0ZS5zY2hlbWEnICsgKCRzY2hlbWFQYXRoKSArICcuaGFzT3duUHJvcGVydHkoJyArICgka2V5KSArICcpICc7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdmFyIGFycjEgPSAkc2NoZW1hS2V5cztcbiAgICAgICAgICBpZiAoYXJyMSkge1xuICAgICAgICAgICAgdmFyICRwcm9wZXJ0eUtleSwgaTEgPSAtMSxcbiAgICAgICAgICAgICAgbDEgPSBhcnIxLmxlbmd0aCAtIDE7XG4gICAgICAgICAgICB3aGlsZSAoaTEgPCBsMSkge1xuICAgICAgICAgICAgICAkcHJvcGVydHlLZXkgPSBhcnIxW2kxICs9IDFdO1xuICAgICAgICAgICAgICBvdXQgKz0gJyB8fCAnICsgKCRrZXkpICsgJyA9PSAnICsgKGl0LnV0aWwudG9RdW90ZWRTdHJpbmcoJHByb3BlcnR5S2V5KSkgKyAnICc7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoJHBQcm9wZXJ0eUtleXMubGVuZ3RoKSB7XG4gICAgICAgIHZhciBhcnIyID0gJHBQcm9wZXJ0eUtleXM7XG4gICAgICAgIGlmIChhcnIyKSB7XG4gICAgICAgICAgdmFyICRwUHJvcGVydHksICRpID0gLTEsXG4gICAgICAgICAgICBsMiA9IGFycjIubGVuZ3RoIC0gMTtcbiAgICAgICAgICB3aGlsZSAoJGkgPCBsMikge1xuICAgICAgICAgICAgJHBQcm9wZXJ0eSA9IGFycjJbJGkgKz0gMV07XG4gICAgICAgICAgICBvdXQgKz0gJyB8fCAnICsgKGl0LnVzZVBhdHRlcm4oJHBQcm9wZXJ0eSkpICsgJy50ZXN0KCcgKyAoJGtleSkgKyAnKSAnO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgb3V0ICs9ICcgKTsgaWYgKGlzQWRkaXRpb25hbCcgKyAoJGx2bCkgKyAnKSB7ICc7XG4gICAgfVxuICAgIGlmICgkcmVtb3ZlQWRkaXRpb25hbCA9PSAnYWxsJykge1xuICAgICAgb3V0ICs9ICcgZGVsZXRlICcgKyAoJGRhdGEpICsgJ1snICsgKCRrZXkpICsgJ107ICc7XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhciAkY3VycmVudEVycm9yUGF0aCA9IGl0LmVycm9yUGF0aDtcbiAgICAgIHZhciAkYWRkaXRpb25hbFByb3BlcnR5ID0gJ1xcJyArICcgKyAka2V5ICsgJyArIFxcJyc7XG4gICAgICBpZiAoaXQub3B0cy5fZXJyb3JEYXRhUGF0aFByb3BlcnR5KSB7XG4gICAgICAgIGl0LmVycm9yUGF0aCA9IGl0LnV0aWwuZ2V0UGF0aEV4cHIoaXQuZXJyb3JQYXRoLCAka2V5LCBpdC5vcHRzLmpzb25Qb2ludGVycyk7XG4gICAgICB9XG4gICAgICBpZiAoJG5vQWRkaXRpb25hbCkge1xuICAgICAgICBpZiAoJHJlbW92ZUFkZGl0aW9uYWwpIHtcbiAgICAgICAgICBvdXQgKz0gJyBkZWxldGUgJyArICgkZGF0YSkgKyAnWycgKyAoJGtleSkgKyAnXTsgJztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBvdXQgKz0gJyAnICsgKCRuZXh0VmFsaWQpICsgJyA9IGZhbHNlOyAnO1xuICAgICAgICAgIHZhciAkY3VyckVyclNjaGVtYVBhdGggPSAkZXJyU2NoZW1hUGF0aDtcbiAgICAgICAgICAkZXJyU2NoZW1hUGF0aCA9IGl0LmVyclNjaGVtYVBhdGggKyAnL2FkZGl0aW9uYWxQcm9wZXJ0aWVzJztcbiAgICAgICAgICB2YXIgJCRvdXRTdGFjayA9ICQkb3V0U3RhY2sgfHwgW107XG4gICAgICAgICAgJCRvdXRTdGFjay5wdXNoKG91dCk7XG4gICAgICAgICAgb3V0ID0gJyc7IC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgICAgICAgaWYgKGl0LmNyZWF0ZUVycm9ycyAhPT0gZmFsc2UpIHtcbiAgICAgICAgICAgIG91dCArPSAnIHsga2V5d29yZDogXFwnJyArICgnYWRkaXRpb25hbFByb3BlcnRpZXMnKSArICdcXCcgLCBkYXRhUGF0aDogKGRhdGFQYXRoIHx8IFxcJ1xcJykgKyAnICsgKGl0LmVycm9yUGF0aCkgKyAnICwgc2NoZW1hUGF0aDogJyArIChpdC51dGlsLnRvUXVvdGVkU3RyaW5nKCRlcnJTY2hlbWFQYXRoKSkgKyAnICwgcGFyYW1zOiB7IGFkZGl0aW9uYWxQcm9wZXJ0eTogXFwnJyArICgkYWRkaXRpb25hbFByb3BlcnR5KSArICdcXCcgfSAnO1xuICAgICAgICAgICAgaWYgKGl0Lm9wdHMubWVzc2FnZXMgIT09IGZhbHNlKSB7XG4gICAgICAgICAgICAgIG91dCArPSAnICwgbWVzc2FnZTogXFwnJztcbiAgICAgICAgICAgICAgaWYgKGl0Lm9wdHMuX2Vycm9yRGF0YVBhdGhQcm9wZXJ0eSkge1xuICAgICAgICAgICAgICAgIG91dCArPSAnaXMgYW4gaW52YWxpZCBhZGRpdGlvbmFsIHByb3BlcnR5JztcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBvdXQgKz0gJ3Nob3VsZCBOT1QgaGF2ZSBhZGRpdGlvbmFsIHByb3BlcnRpZXMnO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIG91dCArPSAnXFwnICc7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoaXQub3B0cy52ZXJib3NlKSB7XG4gICAgICAgICAgICAgIG91dCArPSAnICwgc2NoZW1hOiBmYWxzZSAsIHBhcmVudFNjaGVtYTogdmFsaWRhdGUuc2NoZW1hJyArIChpdC5zY2hlbWFQYXRoKSArICcgLCBkYXRhOiAnICsgKCRkYXRhKSArICcgJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG91dCArPSAnIH0gJztcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgb3V0ICs9ICcge30gJztcbiAgICAgICAgICB9XG4gICAgICAgICAgdmFyIF9fZXJyID0gb3V0O1xuICAgICAgICAgIG91dCA9ICQkb3V0U3RhY2sucG9wKCk7XG4gICAgICAgICAgaWYgKCFpdC5jb21wb3NpdGVSdWxlICYmICRicmVha09uRXJyb3IpIHtcbiAgICAgICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBpZiAqL1xuICAgICAgICAgICAgaWYgKGl0LmFzeW5jKSB7XG4gICAgICAgICAgICAgIG91dCArPSAnIHRocm93IG5ldyBWYWxpZGF0aW9uRXJyb3IoWycgKyAoX19lcnIpICsgJ10pOyAnO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgb3V0ICs9ICcgdmFsaWRhdGUuZXJyb3JzID0gWycgKyAoX19lcnIpICsgJ107IHJldHVybiBmYWxzZTsgJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgb3V0ICs9ICcgdmFyIGVyciA9ICcgKyAoX19lcnIpICsgJzsgIGlmICh2RXJyb3JzID09PSBudWxsKSB2RXJyb3JzID0gW2Vycl07IGVsc2UgdkVycm9ycy5wdXNoKGVycik7IGVycm9ycysrOyAnO1xuICAgICAgICAgIH1cbiAgICAgICAgICAkZXJyU2NoZW1hUGF0aCA9ICRjdXJyRXJyU2NoZW1hUGF0aDtcbiAgICAgICAgICBpZiAoJGJyZWFrT25FcnJvcikge1xuICAgICAgICAgICAgb3V0ICs9ICcgYnJlYWs7ICc7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKCRhZGRpdGlvbmFsSXNTY2hlbWEpIHtcbiAgICAgICAgaWYgKCRyZW1vdmVBZGRpdGlvbmFsID09ICdmYWlsaW5nJykge1xuICAgICAgICAgIG91dCArPSAnIHZhciAnICsgKCRlcnJzKSArICcgPSBlcnJvcnM7ICAnO1xuICAgICAgICAgIHZhciAkd2FzQ29tcG9zaXRlID0gaXQuY29tcG9zaXRlUnVsZTtcbiAgICAgICAgICBpdC5jb21wb3NpdGVSdWxlID0gJGl0LmNvbXBvc2l0ZVJ1bGUgPSB0cnVlO1xuICAgICAgICAgICRpdC5zY2hlbWEgPSAkYVByb3BlcnRpZXM7XG4gICAgICAgICAgJGl0LnNjaGVtYVBhdGggPSBpdC5zY2hlbWFQYXRoICsgJy5hZGRpdGlvbmFsUHJvcGVydGllcyc7XG4gICAgICAgICAgJGl0LmVyclNjaGVtYVBhdGggPSBpdC5lcnJTY2hlbWFQYXRoICsgJy9hZGRpdGlvbmFsUHJvcGVydGllcyc7XG4gICAgICAgICAgJGl0LmVycm9yUGF0aCA9IGl0Lm9wdHMuX2Vycm9yRGF0YVBhdGhQcm9wZXJ0eSA/IGl0LmVycm9yUGF0aCA6IGl0LnV0aWwuZ2V0UGF0aEV4cHIoaXQuZXJyb3JQYXRoLCAka2V5LCBpdC5vcHRzLmpzb25Qb2ludGVycyk7XG4gICAgICAgICAgdmFyICRwYXNzRGF0YSA9ICRkYXRhICsgJ1snICsgJGtleSArICddJztcbiAgICAgICAgICAkaXQuZGF0YVBhdGhBcnJbJGRhdGFOeHRdID0gJGtleTtcbiAgICAgICAgICB2YXIgJGNvZGUgPSBpdC52YWxpZGF0ZSgkaXQpO1xuICAgICAgICAgICRpdC5iYXNlSWQgPSAkY3VycmVudEJhc2VJZDtcbiAgICAgICAgICBpZiAoaXQudXRpbC52YXJPY2N1cmVuY2VzKCRjb2RlLCAkbmV4dERhdGEpIDwgMikge1xuICAgICAgICAgICAgb3V0ICs9ICcgJyArIChpdC51dGlsLnZhclJlcGxhY2UoJGNvZGUsICRuZXh0RGF0YSwgJHBhc3NEYXRhKSkgKyAnICc7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIG91dCArPSAnIHZhciAnICsgKCRuZXh0RGF0YSkgKyAnID0gJyArICgkcGFzc0RhdGEpICsgJzsgJyArICgkY29kZSkgKyAnICc7XG4gICAgICAgICAgfVxuICAgICAgICAgIG91dCArPSAnIGlmICghJyArICgkbmV4dFZhbGlkKSArICcpIHsgZXJyb3JzID0gJyArICgkZXJycykgKyAnOyBpZiAodmFsaWRhdGUuZXJyb3JzICE9PSBudWxsKSB7IGlmIChlcnJvcnMpIHZhbGlkYXRlLmVycm9ycy5sZW5ndGggPSBlcnJvcnM7IGVsc2UgdmFsaWRhdGUuZXJyb3JzID0gbnVsbDsgfSBkZWxldGUgJyArICgkZGF0YSkgKyAnWycgKyAoJGtleSkgKyAnXTsgfSAgJztcbiAgICAgICAgICBpdC5jb21wb3NpdGVSdWxlID0gJGl0LmNvbXBvc2l0ZVJ1bGUgPSAkd2FzQ29tcG9zaXRlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICRpdC5zY2hlbWEgPSAkYVByb3BlcnRpZXM7XG4gICAgICAgICAgJGl0LnNjaGVtYVBhdGggPSBpdC5zY2hlbWFQYXRoICsgJy5hZGRpdGlvbmFsUHJvcGVydGllcyc7XG4gICAgICAgICAgJGl0LmVyclNjaGVtYVBhdGggPSBpdC5lcnJTY2hlbWFQYXRoICsgJy9hZGRpdGlvbmFsUHJvcGVydGllcyc7XG4gICAgICAgICAgJGl0LmVycm9yUGF0aCA9IGl0Lm9wdHMuX2Vycm9yRGF0YVBhdGhQcm9wZXJ0eSA/IGl0LmVycm9yUGF0aCA6IGl0LnV0aWwuZ2V0UGF0aEV4cHIoaXQuZXJyb3JQYXRoLCAka2V5LCBpdC5vcHRzLmpzb25Qb2ludGVycyk7XG4gICAgICAgICAgdmFyICRwYXNzRGF0YSA9ICRkYXRhICsgJ1snICsgJGtleSArICddJztcbiAgICAgICAgICAkaXQuZGF0YVBhdGhBcnJbJGRhdGFOeHRdID0gJGtleTtcbiAgICAgICAgICB2YXIgJGNvZGUgPSBpdC52YWxpZGF0ZSgkaXQpO1xuICAgICAgICAgICRpdC5iYXNlSWQgPSAkY3VycmVudEJhc2VJZDtcbiAgICAgICAgICBpZiAoaXQudXRpbC52YXJPY2N1cmVuY2VzKCRjb2RlLCAkbmV4dERhdGEpIDwgMikge1xuICAgICAgICAgICAgb3V0ICs9ICcgJyArIChpdC51dGlsLnZhclJlcGxhY2UoJGNvZGUsICRuZXh0RGF0YSwgJHBhc3NEYXRhKSkgKyAnICc7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIG91dCArPSAnIHZhciAnICsgKCRuZXh0RGF0YSkgKyAnID0gJyArICgkcGFzc0RhdGEpICsgJzsgJyArICgkY29kZSkgKyAnICc7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmICgkYnJlYWtPbkVycm9yKSB7XG4gICAgICAgICAgICBvdXQgKz0gJyBpZiAoIScgKyAoJG5leHRWYWxpZCkgKyAnKSBicmVhazsgJztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGl0LmVycm9yUGF0aCA9ICRjdXJyZW50RXJyb3JQYXRoO1xuICAgIH1cbiAgICBpZiAoJHNvbWVQcm9wZXJ0aWVzKSB7XG4gICAgICBvdXQgKz0gJyB9ICc7XG4gICAgfVxuICAgIG91dCArPSAnIH0gICc7XG4gICAgaWYgKCRicmVha09uRXJyb3IpIHtcbiAgICAgIG91dCArPSAnIGlmICgnICsgKCRuZXh0VmFsaWQpICsgJykgeyAnO1xuICAgICAgJGNsb3NpbmdCcmFjZXMgKz0gJ30nO1xuICAgIH1cbiAgfVxuICB2YXIgJHVzZURlZmF1bHRzID0gaXQub3B0cy51c2VEZWZhdWx0cyAmJiAhaXQuY29tcG9zaXRlUnVsZTtcbiAgaWYgKCRzY2hlbWFLZXlzLmxlbmd0aCkge1xuICAgIHZhciBhcnIzID0gJHNjaGVtYUtleXM7XG4gICAgaWYgKGFycjMpIHtcbiAgICAgIHZhciAkcHJvcGVydHlLZXksIGkzID0gLTEsXG4gICAgICAgIGwzID0gYXJyMy5sZW5ndGggLSAxO1xuICAgICAgd2hpbGUgKGkzIDwgbDMpIHtcbiAgICAgICAgJHByb3BlcnR5S2V5ID0gYXJyM1tpMyArPSAxXTtcbiAgICAgICAgdmFyICRzY2ggPSAkc2NoZW1hWyRwcm9wZXJ0eUtleV07XG4gICAgICAgIGlmICgoaXQub3B0cy5zdHJpY3RLZXl3b3JkcyA/ICh0eXBlb2YgJHNjaCA9PSAnb2JqZWN0JyAmJiBPYmplY3Qua2V5cygkc2NoKS5sZW5ndGggPiAwKSB8fCAkc2NoID09PSBmYWxzZSA6IGl0LnV0aWwuc2NoZW1hSGFzUnVsZXMoJHNjaCwgaXQuUlVMRVMuYWxsKSkpIHtcbiAgICAgICAgICB2YXIgJHByb3AgPSBpdC51dGlsLmdldFByb3BlcnR5KCRwcm9wZXJ0eUtleSksXG4gICAgICAgICAgICAkcGFzc0RhdGEgPSAkZGF0YSArICRwcm9wLFxuICAgICAgICAgICAgJGhhc0RlZmF1bHQgPSAkdXNlRGVmYXVsdHMgJiYgJHNjaC5kZWZhdWx0ICE9PSB1bmRlZmluZWQ7XG4gICAgICAgICAgJGl0LnNjaGVtYSA9ICRzY2g7XG4gICAgICAgICAgJGl0LnNjaGVtYVBhdGggPSAkc2NoZW1hUGF0aCArICRwcm9wO1xuICAgICAgICAgICRpdC5lcnJTY2hlbWFQYXRoID0gJGVyclNjaGVtYVBhdGggKyAnLycgKyBpdC51dGlsLmVzY2FwZUZyYWdtZW50KCRwcm9wZXJ0eUtleSk7XG4gICAgICAgICAgJGl0LmVycm9yUGF0aCA9IGl0LnV0aWwuZ2V0UGF0aChpdC5lcnJvclBhdGgsICRwcm9wZXJ0eUtleSwgaXQub3B0cy5qc29uUG9pbnRlcnMpO1xuICAgICAgICAgICRpdC5kYXRhUGF0aEFyclskZGF0YU54dF0gPSBpdC51dGlsLnRvUXVvdGVkU3RyaW5nKCRwcm9wZXJ0eUtleSk7XG4gICAgICAgICAgdmFyICRjb2RlID0gaXQudmFsaWRhdGUoJGl0KTtcbiAgICAgICAgICAkaXQuYmFzZUlkID0gJGN1cnJlbnRCYXNlSWQ7XG4gICAgICAgICAgaWYgKGl0LnV0aWwudmFyT2NjdXJlbmNlcygkY29kZSwgJG5leHREYXRhKSA8IDIpIHtcbiAgICAgICAgICAgICRjb2RlID0gaXQudXRpbC52YXJSZXBsYWNlKCRjb2RlLCAkbmV4dERhdGEsICRwYXNzRGF0YSk7XG4gICAgICAgICAgICB2YXIgJHVzZURhdGEgPSAkcGFzc0RhdGE7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHZhciAkdXNlRGF0YSA9ICRuZXh0RGF0YTtcbiAgICAgICAgICAgIG91dCArPSAnIHZhciAnICsgKCRuZXh0RGF0YSkgKyAnID0gJyArICgkcGFzc0RhdGEpICsgJzsgJztcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKCRoYXNEZWZhdWx0KSB7XG4gICAgICAgICAgICBvdXQgKz0gJyAnICsgKCRjb2RlKSArICcgJztcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKCRyZXF1aXJlZEhhc2ggJiYgJHJlcXVpcmVkSGFzaFskcHJvcGVydHlLZXldKSB7XG4gICAgICAgICAgICAgIG91dCArPSAnIGlmICggJyArICgkdXNlRGF0YSkgKyAnID09PSB1bmRlZmluZWQgJztcbiAgICAgICAgICAgICAgaWYgKCRvd25Qcm9wZXJ0aWVzKSB7XG4gICAgICAgICAgICAgICAgb3V0ICs9ICcgfHwgISBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoJyArICgkZGF0YSkgKyAnLCBcXCcnICsgKGl0LnV0aWwuZXNjYXBlUXVvdGVzKCRwcm9wZXJ0eUtleSkpICsgJ1xcJykgJztcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBvdXQgKz0gJykgeyAnICsgKCRuZXh0VmFsaWQpICsgJyA9IGZhbHNlOyAnO1xuICAgICAgICAgICAgICB2YXIgJGN1cnJlbnRFcnJvclBhdGggPSBpdC5lcnJvclBhdGgsXG4gICAgICAgICAgICAgICAgJGN1cnJFcnJTY2hlbWFQYXRoID0gJGVyclNjaGVtYVBhdGgsXG4gICAgICAgICAgICAgICAgJG1pc3NpbmdQcm9wZXJ0eSA9IGl0LnV0aWwuZXNjYXBlUXVvdGVzKCRwcm9wZXJ0eUtleSk7XG4gICAgICAgICAgICAgIGlmIChpdC5vcHRzLl9lcnJvckRhdGFQYXRoUHJvcGVydHkpIHtcbiAgICAgICAgICAgICAgICBpdC5lcnJvclBhdGggPSBpdC51dGlsLmdldFBhdGgoJGN1cnJlbnRFcnJvclBhdGgsICRwcm9wZXJ0eUtleSwgaXQub3B0cy5qc29uUG9pbnRlcnMpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICRlcnJTY2hlbWFQYXRoID0gaXQuZXJyU2NoZW1hUGF0aCArICcvcmVxdWlyZWQnO1xuICAgICAgICAgICAgICB2YXIgJCRvdXRTdGFjayA9ICQkb3V0U3RhY2sgfHwgW107XG4gICAgICAgICAgICAgICQkb3V0U3RhY2sucHVzaChvdXQpO1xuICAgICAgICAgICAgICBvdXQgPSAnJzsgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICAgICAgICAgICAgaWYgKGl0LmNyZWF0ZUVycm9ycyAhPT0gZmFsc2UpIHtcbiAgICAgICAgICAgICAgICBvdXQgKz0gJyB7IGtleXdvcmQ6IFxcJycgKyAoJ3JlcXVpcmVkJykgKyAnXFwnICwgZGF0YVBhdGg6IChkYXRhUGF0aCB8fCBcXCdcXCcpICsgJyArIChpdC5lcnJvclBhdGgpICsgJyAsIHNjaGVtYVBhdGg6ICcgKyAoaXQudXRpbC50b1F1b3RlZFN0cmluZygkZXJyU2NoZW1hUGF0aCkpICsgJyAsIHBhcmFtczogeyBtaXNzaW5nUHJvcGVydHk6IFxcJycgKyAoJG1pc3NpbmdQcm9wZXJ0eSkgKyAnXFwnIH0gJztcbiAgICAgICAgICAgICAgICBpZiAoaXQub3B0cy5tZXNzYWdlcyAhPT0gZmFsc2UpIHtcbiAgICAgICAgICAgICAgICAgIG91dCArPSAnICwgbWVzc2FnZTogXFwnJztcbiAgICAgICAgICAgICAgICAgIGlmIChpdC5vcHRzLl9lcnJvckRhdGFQYXRoUHJvcGVydHkpIHtcbiAgICAgICAgICAgICAgICAgICAgb3V0ICs9ICdpcyBhIHJlcXVpcmVkIHByb3BlcnR5JztcbiAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIG91dCArPSAnc2hvdWxkIGhhdmUgcmVxdWlyZWQgcHJvcGVydHkgXFxcXFxcJycgKyAoJG1pc3NpbmdQcm9wZXJ0eSkgKyAnXFxcXFxcJyc7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBvdXQgKz0gJ1xcJyAnO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoaXQub3B0cy52ZXJib3NlKSB7XG4gICAgICAgICAgICAgICAgICBvdXQgKz0gJyAsIHNjaGVtYTogdmFsaWRhdGUuc2NoZW1hJyArICgkc2NoZW1hUGF0aCkgKyAnICwgcGFyZW50U2NoZW1hOiB2YWxpZGF0ZS5zY2hlbWEnICsgKGl0LnNjaGVtYVBhdGgpICsgJyAsIGRhdGE6ICcgKyAoJGRhdGEpICsgJyAnO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBvdXQgKz0gJyB9ICc7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgb3V0ICs9ICcge30gJztcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB2YXIgX19lcnIgPSBvdXQ7XG4gICAgICAgICAgICAgIG91dCA9ICQkb3V0U3RhY2sucG9wKCk7XG4gICAgICAgICAgICAgIGlmICghaXQuY29tcG9zaXRlUnVsZSAmJiAkYnJlYWtPbkVycm9yKSB7XG4gICAgICAgICAgICAgICAgLyogaXN0YW5idWwgaWdub3JlIGlmICovXG4gICAgICAgICAgICAgICAgaWYgKGl0LmFzeW5jKSB7XG4gICAgICAgICAgICAgICAgICBvdXQgKz0gJyB0aHJvdyBuZXcgVmFsaWRhdGlvbkVycm9yKFsnICsgKF9fZXJyKSArICddKTsgJztcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgb3V0ICs9ICcgdmFsaWRhdGUuZXJyb3JzID0gWycgKyAoX19lcnIpICsgJ107IHJldHVybiBmYWxzZTsgJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgb3V0ICs9ICcgdmFyIGVyciA9ICcgKyAoX19lcnIpICsgJzsgIGlmICh2RXJyb3JzID09PSBudWxsKSB2RXJyb3JzID0gW2Vycl07IGVsc2UgdkVycm9ycy5wdXNoKGVycik7IGVycm9ycysrOyAnO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICRlcnJTY2hlbWFQYXRoID0gJGN1cnJFcnJTY2hlbWFQYXRoO1xuICAgICAgICAgICAgICBpdC5lcnJvclBhdGggPSAkY3VycmVudEVycm9yUGF0aDtcbiAgICAgICAgICAgICAgb3V0ICs9ICcgfSBlbHNlIHsgJztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIGlmICgkYnJlYWtPbkVycm9yKSB7XG4gICAgICAgICAgICAgICAgb3V0ICs9ICcgaWYgKCAnICsgKCR1c2VEYXRhKSArICcgPT09IHVuZGVmaW5lZCAnO1xuICAgICAgICAgICAgICAgIGlmICgkb3duUHJvcGVydGllcykge1xuICAgICAgICAgICAgICAgICAgb3V0ICs9ICcgfHwgISBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoJyArICgkZGF0YSkgKyAnLCBcXCcnICsgKGl0LnV0aWwuZXNjYXBlUXVvdGVzKCRwcm9wZXJ0eUtleSkpICsgJ1xcJykgJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgb3V0ICs9ICcpIHsgJyArICgkbmV4dFZhbGlkKSArICcgPSB0cnVlOyB9IGVsc2UgeyAnO1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIG91dCArPSAnIGlmICgnICsgKCR1c2VEYXRhKSArICcgIT09IHVuZGVmaW5lZCAnO1xuICAgICAgICAgICAgICAgIGlmICgkb3duUHJvcGVydGllcykge1xuICAgICAgICAgICAgICAgICAgb3V0ICs9ICcgJiYgICBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoJyArICgkZGF0YSkgKyAnLCBcXCcnICsgKGl0LnV0aWwuZXNjYXBlUXVvdGVzKCRwcm9wZXJ0eUtleSkpICsgJ1xcJykgJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgb3V0ICs9ICcgKSB7ICc7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG91dCArPSAnICcgKyAoJGNvZGUpICsgJyB9ICc7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmICgkYnJlYWtPbkVycm9yKSB7XG4gICAgICAgICAgb3V0ICs9ICcgaWYgKCcgKyAoJG5leHRWYWxpZCkgKyAnKSB7ICc7XG4gICAgICAgICAgJGNsb3NpbmdCcmFjZXMgKz0gJ30nO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIGlmICgkcFByb3BlcnR5S2V5cy5sZW5ndGgpIHtcbiAgICB2YXIgYXJyNCA9ICRwUHJvcGVydHlLZXlzO1xuICAgIGlmIChhcnI0KSB7XG4gICAgICB2YXIgJHBQcm9wZXJ0eSwgaTQgPSAtMSxcbiAgICAgICAgbDQgPSBhcnI0Lmxlbmd0aCAtIDE7XG4gICAgICB3aGlsZSAoaTQgPCBsNCkge1xuICAgICAgICAkcFByb3BlcnR5ID0gYXJyNFtpNCArPSAxXTtcbiAgICAgICAgdmFyICRzY2ggPSAkcFByb3BlcnRpZXNbJHBQcm9wZXJ0eV07XG4gICAgICAgIGlmICgoaXQub3B0cy5zdHJpY3RLZXl3b3JkcyA/ICh0eXBlb2YgJHNjaCA9PSAnb2JqZWN0JyAmJiBPYmplY3Qua2V5cygkc2NoKS5sZW5ndGggPiAwKSB8fCAkc2NoID09PSBmYWxzZSA6IGl0LnV0aWwuc2NoZW1hSGFzUnVsZXMoJHNjaCwgaXQuUlVMRVMuYWxsKSkpIHtcbiAgICAgICAgICAkaXQuc2NoZW1hID0gJHNjaDtcbiAgICAgICAgICAkaXQuc2NoZW1hUGF0aCA9IGl0LnNjaGVtYVBhdGggKyAnLnBhdHRlcm5Qcm9wZXJ0aWVzJyArIGl0LnV0aWwuZ2V0UHJvcGVydHkoJHBQcm9wZXJ0eSk7XG4gICAgICAgICAgJGl0LmVyclNjaGVtYVBhdGggPSBpdC5lcnJTY2hlbWFQYXRoICsgJy9wYXR0ZXJuUHJvcGVydGllcy8nICsgaXQudXRpbC5lc2NhcGVGcmFnbWVudCgkcFByb3BlcnR5KTtcbiAgICAgICAgICBpZiAoJG93blByb3BlcnRpZXMpIHtcbiAgICAgICAgICAgIG91dCArPSAnICcgKyAoJGRhdGFQcm9wZXJ0aWVzKSArICcgPSAnICsgKCRkYXRhUHJvcGVydGllcykgKyAnIHx8IE9iamVjdC5rZXlzKCcgKyAoJGRhdGEpICsgJyk7IGZvciAodmFyICcgKyAoJGlkeCkgKyAnPTA7ICcgKyAoJGlkeCkgKyAnPCcgKyAoJGRhdGFQcm9wZXJ0aWVzKSArICcubGVuZ3RoOyAnICsgKCRpZHgpICsgJysrKSB7IHZhciAnICsgKCRrZXkpICsgJyA9ICcgKyAoJGRhdGFQcm9wZXJ0aWVzKSArICdbJyArICgkaWR4KSArICddOyAnO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBvdXQgKz0gJyBmb3IgKHZhciAnICsgKCRrZXkpICsgJyBpbiAnICsgKCRkYXRhKSArICcpIHsgJztcbiAgICAgICAgICB9XG4gICAgICAgICAgb3V0ICs9ICcgaWYgKCcgKyAoaXQudXNlUGF0dGVybigkcFByb3BlcnR5KSkgKyAnLnRlc3QoJyArICgka2V5KSArICcpKSB7ICc7XG4gICAgICAgICAgJGl0LmVycm9yUGF0aCA9IGl0LnV0aWwuZ2V0UGF0aEV4cHIoaXQuZXJyb3JQYXRoLCAka2V5LCBpdC5vcHRzLmpzb25Qb2ludGVycyk7XG4gICAgICAgICAgdmFyICRwYXNzRGF0YSA9ICRkYXRhICsgJ1snICsgJGtleSArICddJztcbiAgICAgICAgICAkaXQuZGF0YVBhdGhBcnJbJGRhdGFOeHRdID0gJGtleTtcbiAgICAgICAgICB2YXIgJGNvZGUgPSBpdC52YWxpZGF0ZSgkaXQpO1xuICAgICAgICAgICRpdC5iYXNlSWQgPSAkY3VycmVudEJhc2VJZDtcbiAgICAgICAgICBpZiAoaXQudXRpbC52YXJPY2N1cmVuY2VzKCRjb2RlLCAkbmV4dERhdGEpIDwgMikge1xuICAgICAgICAgICAgb3V0ICs9ICcgJyArIChpdC51dGlsLnZhclJlcGxhY2UoJGNvZGUsICRuZXh0RGF0YSwgJHBhc3NEYXRhKSkgKyAnICc7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIG91dCArPSAnIHZhciAnICsgKCRuZXh0RGF0YSkgKyAnID0gJyArICgkcGFzc0RhdGEpICsgJzsgJyArICgkY29kZSkgKyAnICc7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmICgkYnJlYWtPbkVycm9yKSB7XG4gICAgICAgICAgICBvdXQgKz0gJyBpZiAoIScgKyAoJG5leHRWYWxpZCkgKyAnKSBicmVhazsgJztcbiAgICAgICAgICB9XG4gICAgICAgICAgb3V0ICs9ICcgfSAnO1xuICAgICAgICAgIGlmICgkYnJlYWtPbkVycm9yKSB7XG4gICAgICAgICAgICBvdXQgKz0gJyBlbHNlICcgKyAoJG5leHRWYWxpZCkgKyAnID0gdHJ1ZTsgJztcbiAgICAgICAgICB9XG4gICAgICAgICAgb3V0ICs9ICcgfSAgJztcbiAgICAgICAgICBpZiAoJGJyZWFrT25FcnJvcikge1xuICAgICAgICAgICAgb3V0ICs9ICcgaWYgKCcgKyAoJG5leHRWYWxpZCkgKyAnKSB7ICc7XG4gICAgICAgICAgICAkY2xvc2luZ0JyYWNlcyArPSAnfSc7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIGlmICgkYnJlYWtPbkVycm9yKSB7XG4gICAgb3V0ICs9ICcgJyArICgkY2xvc2luZ0JyYWNlcykgKyAnIGlmICgnICsgKCRlcnJzKSArICcgPT0gZXJyb3JzKSB7JztcbiAgfVxuICByZXR1cm4gb3V0O1xufVxuIiwgIid1c2Ugc3RyaWN0Jztcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gZ2VuZXJhdGVfcHJvcGVydHlOYW1lcyhpdCwgJGtleXdvcmQsICRydWxlVHlwZSkge1xuICB2YXIgb3V0ID0gJyAnO1xuICB2YXIgJGx2bCA9IGl0LmxldmVsO1xuICB2YXIgJGRhdGFMdmwgPSBpdC5kYXRhTGV2ZWw7XG4gIHZhciAkc2NoZW1hID0gaXQuc2NoZW1hWyRrZXl3b3JkXTtcbiAgdmFyICRzY2hlbWFQYXRoID0gaXQuc2NoZW1hUGF0aCArIGl0LnV0aWwuZ2V0UHJvcGVydHkoJGtleXdvcmQpO1xuICB2YXIgJGVyclNjaGVtYVBhdGggPSBpdC5lcnJTY2hlbWFQYXRoICsgJy8nICsgJGtleXdvcmQ7XG4gIHZhciAkYnJlYWtPbkVycm9yID0gIWl0Lm9wdHMuYWxsRXJyb3JzO1xuICB2YXIgJGRhdGEgPSAnZGF0YScgKyAoJGRhdGFMdmwgfHwgJycpO1xuICB2YXIgJGVycnMgPSAnZXJyc19fJyArICRsdmw7XG4gIHZhciAkaXQgPSBpdC51dGlsLmNvcHkoaXQpO1xuICB2YXIgJGNsb3NpbmdCcmFjZXMgPSAnJztcbiAgJGl0LmxldmVsKys7XG4gIHZhciAkbmV4dFZhbGlkID0gJ3ZhbGlkJyArICRpdC5sZXZlbDtcbiAgb3V0ICs9ICd2YXIgJyArICgkZXJycykgKyAnID0gZXJyb3JzOyc7XG4gIGlmICgoaXQub3B0cy5zdHJpY3RLZXl3b3JkcyA/ICh0eXBlb2YgJHNjaGVtYSA9PSAnb2JqZWN0JyAmJiBPYmplY3Qua2V5cygkc2NoZW1hKS5sZW5ndGggPiAwKSB8fCAkc2NoZW1hID09PSBmYWxzZSA6IGl0LnV0aWwuc2NoZW1hSGFzUnVsZXMoJHNjaGVtYSwgaXQuUlVMRVMuYWxsKSkpIHtcbiAgICAkaXQuc2NoZW1hID0gJHNjaGVtYTtcbiAgICAkaXQuc2NoZW1hUGF0aCA9ICRzY2hlbWFQYXRoO1xuICAgICRpdC5lcnJTY2hlbWFQYXRoID0gJGVyclNjaGVtYVBhdGg7XG4gICAgdmFyICRrZXkgPSAna2V5JyArICRsdmwsXG4gICAgICAkaWR4ID0gJ2lkeCcgKyAkbHZsLFxuICAgICAgJGkgPSAnaScgKyAkbHZsLFxuICAgICAgJGludmFsaWROYW1lID0gJ1xcJyArICcgKyAka2V5ICsgJyArIFxcJycsXG4gICAgICAkZGF0YU54dCA9ICRpdC5kYXRhTGV2ZWwgPSBpdC5kYXRhTGV2ZWwgKyAxLFxuICAgICAgJG5leHREYXRhID0gJ2RhdGEnICsgJGRhdGFOeHQsXG4gICAgICAkZGF0YVByb3BlcnRpZXMgPSAnZGF0YVByb3BlcnRpZXMnICsgJGx2bCxcbiAgICAgICRvd25Qcm9wZXJ0aWVzID0gaXQub3B0cy5vd25Qcm9wZXJ0aWVzLFxuICAgICAgJGN1cnJlbnRCYXNlSWQgPSBpdC5iYXNlSWQ7XG4gICAgaWYgKCRvd25Qcm9wZXJ0aWVzKSB7XG4gICAgICBvdXQgKz0gJyB2YXIgJyArICgkZGF0YVByb3BlcnRpZXMpICsgJyA9IHVuZGVmaW5lZDsgJztcbiAgICB9XG4gICAgaWYgKCRvd25Qcm9wZXJ0aWVzKSB7XG4gICAgICBvdXQgKz0gJyAnICsgKCRkYXRhUHJvcGVydGllcykgKyAnID0gJyArICgkZGF0YVByb3BlcnRpZXMpICsgJyB8fCBPYmplY3Qua2V5cygnICsgKCRkYXRhKSArICcpOyBmb3IgKHZhciAnICsgKCRpZHgpICsgJz0wOyAnICsgKCRpZHgpICsgJzwnICsgKCRkYXRhUHJvcGVydGllcykgKyAnLmxlbmd0aDsgJyArICgkaWR4KSArICcrKykgeyB2YXIgJyArICgka2V5KSArICcgPSAnICsgKCRkYXRhUHJvcGVydGllcykgKyAnWycgKyAoJGlkeCkgKyAnXTsgJztcbiAgICB9IGVsc2Uge1xuICAgICAgb3V0ICs9ICcgZm9yICh2YXIgJyArICgka2V5KSArICcgaW4gJyArICgkZGF0YSkgKyAnKSB7ICc7XG4gICAgfVxuICAgIG91dCArPSAnIHZhciBzdGFydEVycnMnICsgKCRsdmwpICsgJyA9IGVycm9yczsgJztcbiAgICB2YXIgJHBhc3NEYXRhID0gJGtleTtcbiAgICB2YXIgJHdhc0NvbXBvc2l0ZSA9IGl0LmNvbXBvc2l0ZVJ1bGU7XG4gICAgaXQuY29tcG9zaXRlUnVsZSA9ICRpdC5jb21wb3NpdGVSdWxlID0gdHJ1ZTtcbiAgICB2YXIgJGNvZGUgPSBpdC52YWxpZGF0ZSgkaXQpO1xuICAgICRpdC5iYXNlSWQgPSAkY3VycmVudEJhc2VJZDtcbiAgICBpZiAoaXQudXRpbC52YXJPY2N1cmVuY2VzKCRjb2RlLCAkbmV4dERhdGEpIDwgMikge1xuICAgICAgb3V0ICs9ICcgJyArIChpdC51dGlsLnZhclJlcGxhY2UoJGNvZGUsICRuZXh0RGF0YSwgJHBhc3NEYXRhKSkgKyAnICc7XG4gICAgfSBlbHNlIHtcbiAgICAgIG91dCArPSAnIHZhciAnICsgKCRuZXh0RGF0YSkgKyAnID0gJyArICgkcGFzc0RhdGEpICsgJzsgJyArICgkY29kZSkgKyAnICc7XG4gICAgfVxuICAgIGl0LmNvbXBvc2l0ZVJ1bGUgPSAkaXQuY29tcG9zaXRlUnVsZSA9ICR3YXNDb21wb3NpdGU7XG4gICAgb3V0ICs9ICcgaWYgKCEnICsgKCRuZXh0VmFsaWQpICsgJykgeyBmb3IgKHZhciAnICsgKCRpKSArICc9c3RhcnRFcnJzJyArICgkbHZsKSArICc7ICcgKyAoJGkpICsgJzxlcnJvcnM7ICcgKyAoJGkpICsgJysrKSB7IHZFcnJvcnNbJyArICgkaSkgKyAnXS5wcm9wZXJ0eU5hbWUgPSAnICsgKCRrZXkpICsgJzsgfSAgIHZhciBlcnIgPSAgICc7IC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgaWYgKGl0LmNyZWF0ZUVycm9ycyAhPT0gZmFsc2UpIHtcbiAgICAgIG91dCArPSAnIHsga2V5d29yZDogXFwnJyArICgncHJvcGVydHlOYW1lcycpICsgJ1xcJyAsIGRhdGFQYXRoOiAoZGF0YVBhdGggfHwgXFwnXFwnKSArICcgKyAoaXQuZXJyb3JQYXRoKSArICcgLCBzY2hlbWFQYXRoOiAnICsgKGl0LnV0aWwudG9RdW90ZWRTdHJpbmcoJGVyclNjaGVtYVBhdGgpKSArICcgLCBwYXJhbXM6IHsgcHJvcGVydHlOYW1lOiBcXCcnICsgKCRpbnZhbGlkTmFtZSkgKyAnXFwnIH0gJztcbiAgICAgIGlmIChpdC5vcHRzLm1lc3NhZ2VzICE9PSBmYWxzZSkge1xuICAgICAgICBvdXQgKz0gJyAsIG1lc3NhZ2U6IFxcJ3Byb3BlcnR5IG5hbWUgXFxcXFxcJycgKyAoJGludmFsaWROYW1lKSArICdcXFxcXFwnIGlzIGludmFsaWRcXCcgJztcbiAgICAgIH1cbiAgICAgIGlmIChpdC5vcHRzLnZlcmJvc2UpIHtcbiAgICAgICAgb3V0ICs9ICcgLCBzY2hlbWE6IHZhbGlkYXRlLnNjaGVtYScgKyAoJHNjaGVtYVBhdGgpICsgJyAsIHBhcmVudFNjaGVtYTogdmFsaWRhdGUuc2NoZW1hJyArIChpdC5zY2hlbWFQYXRoKSArICcgLCBkYXRhOiAnICsgKCRkYXRhKSArICcgJztcbiAgICAgIH1cbiAgICAgIG91dCArPSAnIH0gJztcbiAgICB9IGVsc2Uge1xuICAgICAgb3V0ICs9ICcge30gJztcbiAgICB9XG4gICAgb3V0ICs9ICc7ICBpZiAodkVycm9ycyA9PT0gbnVsbCkgdkVycm9ycyA9IFtlcnJdOyBlbHNlIHZFcnJvcnMucHVzaChlcnIpOyBlcnJvcnMrKzsgJztcbiAgICBpZiAoIWl0LmNvbXBvc2l0ZVJ1bGUgJiYgJGJyZWFrT25FcnJvcikge1xuICAgICAgLyogaXN0YW5idWwgaWdub3JlIGlmICovXG4gICAgICBpZiAoaXQuYXN5bmMpIHtcbiAgICAgICAgb3V0ICs9ICcgdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcih2RXJyb3JzKTsgJztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG91dCArPSAnIHZhbGlkYXRlLmVycm9ycyA9IHZFcnJvcnM7IHJldHVybiBmYWxzZTsgJztcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKCRicmVha09uRXJyb3IpIHtcbiAgICAgIG91dCArPSAnIGJyZWFrOyAnO1xuICAgIH1cbiAgICBvdXQgKz0gJyB9IH0nO1xuICB9XG4gIGlmICgkYnJlYWtPbkVycm9yKSB7XG4gICAgb3V0ICs9ICcgJyArICgkY2xvc2luZ0JyYWNlcykgKyAnIGlmICgnICsgKCRlcnJzKSArICcgPT0gZXJyb3JzKSB7JztcbiAgfVxuICByZXR1cm4gb3V0O1xufVxuIiwgIid1c2Ugc3RyaWN0Jztcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gZ2VuZXJhdGVfcmVxdWlyZWQoaXQsICRrZXl3b3JkLCAkcnVsZVR5cGUpIHtcbiAgdmFyIG91dCA9ICcgJztcbiAgdmFyICRsdmwgPSBpdC5sZXZlbDtcbiAgdmFyICRkYXRhTHZsID0gaXQuZGF0YUxldmVsO1xuICB2YXIgJHNjaGVtYSA9IGl0LnNjaGVtYVska2V5d29yZF07XG4gIHZhciAkc2NoZW1hUGF0aCA9IGl0LnNjaGVtYVBhdGggKyBpdC51dGlsLmdldFByb3BlcnR5KCRrZXl3b3JkKTtcbiAgdmFyICRlcnJTY2hlbWFQYXRoID0gaXQuZXJyU2NoZW1hUGF0aCArICcvJyArICRrZXl3b3JkO1xuICB2YXIgJGJyZWFrT25FcnJvciA9ICFpdC5vcHRzLmFsbEVycm9ycztcbiAgdmFyICRkYXRhID0gJ2RhdGEnICsgKCRkYXRhTHZsIHx8ICcnKTtcbiAgdmFyICR2YWxpZCA9ICd2YWxpZCcgKyAkbHZsO1xuICB2YXIgJGlzRGF0YSA9IGl0Lm9wdHMuJGRhdGEgJiYgJHNjaGVtYSAmJiAkc2NoZW1hLiRkYXRhLFxuICAgICRzY2hlbWFWYWx1ZTtcbiAgaWYgKCRpc0RhdGEpIHtcbiAgICBvdXQgKz0gJyB2YXIgc2NoZW1hJyArICgkbHZsKSArICcgPSAnICsgKGl0LnV0aWwuZ2V0RGF0YSgkc2NoZW1hLiRkYXRhLCAkZGF0YUx2bCwgaXQuZGF0YVBhdGhBcnIpKSArICc7ICc7XG4gICAgJHNjaGVtYVZhbHVlID0gJ3NjaGVtYScgKyAkbHZsO1xuICB9IGVsc2Uge1xuICAgICRzY2hlbWFWYWx1ZSA9ICRzY2hlbWE7XG4gIH1cbiAgdmFyICR2U2NoZW1hID0gJ3NjaGVtYScgKyAkbHZsO1xuICBpZiAoISRpc0RhdGEpIHtcbiAgICBpZiAoJHNjaGVtYS5sZW5ndGggPCBpdC5vcHRzLmxvb3BSZXF1aXJlZCAmJiBpdC5zY2hlbWEucHJvcGVydGllcyAmJiBPYmplY3Qua2V5cyhpdC5zY2hlbWEucHJvcGVydGllcykubGVuZ3RoKSB7XG4gICAgICB2YXIgJHJlcXVpcmVkID0gW107XG4gICAgICB2YXIgYXJyMSA9ICRzY2hlbWE7XG4gICAgICBpZiAoYXJyMSkge1xuICAgICAgICB2YXIgJHByb3BlcnR5LCBpMSA9IC0xLFxuICAgICAgICAgIGwxID0gYXJyMS5sZW5ndGggLSAxO1xuICAgICAgICB3aGlsZSAoaTEgPCBsMSkge1xuICAgICAgICAgICRwcm9wZXJ0eSA9IGFycjFbaTEgKz0gMV07XG4gICAgICAgICAgdmFyICRwcm9wZXJ0eVNjaCA9IGl0LnNjaGVtYS5wcm9wZXJ0aWVzWyRwcm9wZXJ0eV07XG4gICAgICAgICAgaWYgKCEoJHByb3BlcnR5U2NoICYmIChpdC5vcHRzLnN0cmljdEtleXdvcmRzID8gKHR5cGVvZiAkcHJvcGVydHlTY2ggPT0gJ29iamVjdCcgJiYgT2JqZWN0LmtleXMoJHByb3BlcnR5U2NoKS5sZW5ndGggPiAwKSB8fCAkcHJvcGVydHlTY2ggPT09IGZhbHNlIDogaXQudXRpbC5zY2hlbWFIYXNSdWxlcygkcHJvcGVydHlTY2gsIGl0LlJVTEVTLmFsbCkpKSkge1xuICAgICAgICAgICAgJHJlcXVpcmVkWyRyZXF1aXJlZC5sZW5ndGhdID0gJHByb3BlcnR5O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB2YXIgJHJlcXVpcmVkID0gJHNjaGVtYTtcbiAgICB9XG4gIH1cbiAgaWYgKCRpc0RhdGEgfHwgJHJlcXVpcmVkLmxlbmd0aCkge1xuICAgIHZhciAkY3VycmVudEVycm9yUGF0aCA9IGl0LmVycm9yUGF0aCxcbiAgICAgICRsb29wUmVxdWlyZWQgPSAkaXNEYXRhIHx8ICRyZXF1aXJlZC5sZW5ndGggPj0gaXQub3B0cy5sb29wUmVxdWlyZWQsXG4gICAgICAkb3duUHJvcGVydGllcyA9IGl0Lm9wdHMub3duUHJvcGVydGllcztcbiAgICBpZiAoJGJyZWFrT25FcnJvcikge1xuICAgICAgb3V0ICs9ICcgdmFyIG1pc3NpbmcnICsgKCRsdmwpICsgJzsgJztcbiAgICAgIGlmICgkbG9vcFJlcXVpcmVkKSB7XG4gICAgICAgIGlmICghJGlzRGF0YSkge1xuICAgICAgICAgIG91dCArPSAnIHZhciAnICsgKCR2U2NoZW1hKSArICcgPSB2YWxpZGF0ZS5zY2hlbWEnICsgKCRzY2hlbWFQYXRoKSArICc7ICc7XG4gICAgICAgIH1cbiAgICAgICAgdmFyICRpID0gJ2knICsgJGx2bCxcbiAgICAgICAgICAkcHJvcGVydHlQYXRoID0gJ3NjaGVtYScgKyAkbHZsICsgJ1snICsgJGkgKyAnXScsXG4gICAgICAgICAgJG1pc3NpbmdQcm9wZXJ0eSA9ICdcXCcgKyAnICsgJHByb3BlcnR5UGF0aCArICcgKyBcXCcnO1xuICAgICAgICBpZiAoaXQub3B0cy5fZXJyb3JEYXRhUGF0aFByb3BlcnR5KSB7XG4gICAgICAgICAgaXQuZXJyb3JQYXRoID0gaXQudXRpbC5nZXRQYXRoRXhwcigkY3VycmVudEVycm9yUGF0aCwgJHByb3BlcnR5UGF0aCwgaXQub3B0cy5qc29uUG9pbnRlcnMpO1xuICAgICAgICB9XG4gICAgICAgIG91dCArPSAnIHZhciAnICsgKCR2YWxpZCkgKyAnID0gdHJ1ZTsgJztcbiAgICAgICAgaWYgKCRpc0RhdGEpIHtcbiAgICAgICAgICBvdXQgKz0gJyBpZiAoc2NoZW1hJyArICgkbHZsKSArICcgPT09IHVuZGVmaW5lZCkgJyArICgkdmFsaWQpICsgJyA9IHRydWU7IGVsc2UgaWYgKCFBcnJheS5pc0FycmF5KHNjaGVtYScgKyAoJGx2bCkgKyAnKSkgJyArICgkdmFsaWQpICsgJyA9IGZhbHNlOyBlbHNlIHsnO1xuICAgICAgICB9XG4gICAgICAgIG91dCArPSAnIGZvciAodmFyICcgKyAoJGkpICsgJyA9IDA7ICcgKyAoJGkpICsgJyA8ICcgKyAoJHZTY2hlbWEpICsgJy5sZW5ndGg7ICcgKyAoJGkpICsgJysrKSB7ICcgKyAoJHZhbGlkKSArICcgPSAnICsgKCRkYXRhKSArICdbJyArICgkdlNjaGVtYSkgKyAnWycgKyAoJGkpICsgJ11dICE9PSB1bmRlZmluZWQgJztcbiAgICAgICAgaWYgKCRvd25Qcm9wZXJ0aWVzKSB7XG4gICAgICAgICAgb3V0ICs9ICcgJiYgICBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoJyArICgkZGF0YSkgKyAnLCAnICsgKCR2U2NoZW1hKSArICdbJyArICgkaSkgKyAnXSkgJztcbiAgICAgICAgfVxuICAgICAgICBvdXQgKz0gJzsgaWYgKCEnICsgKCR2YWxpZCkgKyAnKSBicmVhazsgfSAnO1xuICAgICAgICBpZiAoJGlzRGF0YSkge1xuICAgICAgICAgIG91dCArPSAnICB9ICAnO1xuICAgICAgICB9XG4gICAgICAgIG91dCArPSAnICBpZiAoIScgKyAoJHZhbGlkKSArICcpIHsgICAnO1xuICAgICAgICB2YXIgJCRvdXRTdGFjayA9ICQkb3V0U3RhY2sgfHwgW107XG4gICAgICAgICQkb3V0U3RhY2sucHVzaChvdXQpO1xuICAgICAgICBvdXQgPSAnJzsgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICAgICAgaWYgKGl0LmNyZWF0ZUVycm9ycyAhPT0gZmFsc2UpIHtcbiAgICAgICAgICBvdXQgKz0gJyB7IGtleXdvcmQ6IFxcJycgKyAoJ3JlcXVpcmVkJykgKyAnXFwnICwgZGF0YVBhdGg6IChkYXRhUGF0aCB8fCBcXCdcXCcpICsgJyArIChpdC5lcnJvclBhdGgpICsgJyAsIHNjaGVtYVBhdGg6ICcgKyAoaXQudXRpbC50b1F1b3RlZFN0cmluZygkZXJyU2NoZW1hUGF0aCkpICsgJyAsIHBhcmFtczogeyBtaXNzaW5nUHJvcGVydHk6IFxcJycgKyAoJG1pc3NpbmdQcm9wZXJ0eSkgKyAnXFwnIH0gJztcbiAgICAgICAgICBpZiAoaXQub3B0cy5tZXNzYWdlcyAhPT0gZmFsc2UpIHtcbiAgICAgICAgICAgIG91dCArPSAnICwgbWVzc2FnZTogXFwnJztcbiAgICAgICAgICAgIGlmIChpdC5vcHRzLl9lcnJvckRhdGFQYXRoUHJvcGVydHkpIHtcbiAgICAgICAgICAgICAgb3V0ICs9ICdpcyBhIHJlcXVpcmVkIHByb3BlcnR5JztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIG91dCArPSAnc2hvdWxkIGhhdmUgcmVxdWlyZWQgcHJvcGVydHkgXFxcXFxcJycgKyAoJG1pc3NpbmdQcm9wZXJ0eSkgKyAnXFxcXFxcJyc7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBvdXQgKz0gJ1xcJyAnO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoaXQub3B0cy52ZXJib3NlKSB7XG4gICAgICAgICAgICBvdXQgKz0gJyAsIHNjaGVtYTogdmFsaWRhdGUuc2NoZW1hJyArICgkc2NoZW1hUGF0aCkgKyAnICwgcGFyZW50U2NoZW1hOiB2YWxpZGF0ZS5zY2hlbWEnICsgKGl0LnNjaGVtYVBhdGgpICsgJyAsIGRhdGE6ICcgKyAoJGRhdGEpICsgJyAnO1xuICAgICAgICAgIH1cbiAgICAgICAgICBvdXQgKz0gJyB9ICc7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgb3V0ICs9ICcge30gJztcbiAgICAgICAgfVxuICAgICAgICB2YXIgX19lcnIgPSBvdXQ7XG4gICAgICAgIG91dCA9ICQkb3V0U3RhY2sucG9wKCk7XG4gICAgICAgIGlmICghaXQuY29tcG9zaXRlUnVsZSAmJiAkYnJlYWtPbkVycm9yKSB7XG4gICAgICAgICAgLyogaXN0YW5idWwgaWdub3JlIGlmICovXG4gICAgICAgICAgaWYgKGl0LmFzeW5jKSB7XG4gICAgICAgICAgICBvdXQgKz0gJyB0aHJvdyBuZXcgVmFsaWRhdGlvbkVycm9yKFsnICsgKF9fZXJyKSArICddKTsgJztcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgb3V0ICs9ICcgdmFsaWRhdGUuZXJyb3JzID0gWycgKyAoX19lcnIpICsgJ107IHJldHVybiBmYWxzZTsgJztcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgb3V0ICs9ICcgdmFyIGVyciA9ICcgKyAoX19lcnIpICsgJzsgIGlmICh2RXJyb3JzID09PSBudWxsKSB2RXJyb3JzID0gW2Vycl07IGVsc2UgdkVycm9ycy5wdXNoKGVycik7IGVycm9ycysrOyAnO1xuICAgICAgICB9XG4gICAgICAgIG91dCArPSAnIH0gZWxzZSB7ICc7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBvdXQgKz0gJyBpZiAoICc7XG4gICAgICAgIHZhciBhcnIyID0gJHJlcXVpcmVkO1xuICAgICAgICBpZiAoYXJyMikge1xuICAgICAgICAgIHZhciAkcHJvcGVydHlLZXksICRpID0gLTEsXG4gICAgICAgICAgICBsMiA9IGFycjIubGVuZ3RoIC0gMTtcbiAgICAgICAgICB3aGlsZSAoJGkgPCBsMikge1xuICAgICAgICAgICAgJHByb3BlcnR5S2V5ID0gYXJyMlskaSArPSAxXTtcbiAgICAgICAgICAgIGlmICgkaSkge1xuICAgICAgICAgICAgICBvdXQgKz0gJyB8fCAnO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdmFyICRwcm9wID0gaXQudXRpbC5nZXRQcm9wZXJ0eSgkcHJvcGVydHlLZXkpLFxuICAgICAgICAgICAgICAkdXNlRGF0YSA9ICRkYXRhICsgJHByb3A7XG4gICAgICAgICAgICBvdXQgKz0gJyAoICggJyArICgkdXNlRGF0YSkgKyAnID09PSB1bmRlZmluZWQgJztcbiAgICAgICAgICAgIGlmICgkb3duUHJvcGVydGllcykge1xuICAgICAgICAgICAgICBvdXQgKz0gJyB8fCAhIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCgnICsgKCRkYXRhKSArICcsIFxcJycgKyAoaXQudXRpbC5lc2NhcGVRdW90ZXMoJHByb3BlcnR5S2V5KSkgKyAnXFwnKSAnO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgb3V0ICs9ICcpICYmIChtaXNzaW5nJyArICgkbHZsKSArICcgPSAnICsgKGl0LnV0aWwudG9RdW90ZWRTdHJpbmcoaXQub3B0cy5qc29uUG9pbnRlcnMgPyAkcHJvcGVydHlLZXkgOiAkcHJvcCkpICsgJykgKSAnO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBvdXQgKz0gJykgeyAgJztcbiAgICAgICAgdmFyICRwcm9wZXJ0eVBhdGggPSAnbWlzc2luZycgKyAkbHZsLFxuICAgICAgICAgICRtaXNzaW5nUHJvcGVydHkgPSAnXFwnICsgJyArICRwcm9wZXJ0eVBhdGggKyAnICsgXFwnJztcbiAgICAgICAgaWYgKGl0Lm9wdHMuX2Vycm9yRGF0YVBhdGhQcm9wZXJ0eSkge1xuICAgICAgICAgIGl0LmVycm9yUGF0aCA9IGl0Lm9wdHMuanNvblBvaW50ZXJzID8gaXQudXRpbC5nZXRQYXRoRXhwcigkY3VycmVudEVycm9yUGF0aCwgJHByb3BlcnR5UGF0aCwgdHJ1ZSkgOiAkY3VycmVudEVycm9yUGF0aCArICcgKyAnICsgJHByb3BlcnR5UGF0aDtcbiAgICAgICAgfVxuICAgICAgICB2YXIgJCRvdXRTdGFjayA9ICQkb3V0U3RhY2sgfHwgW107XG4gICAgICAgICQkb3V0U3RhY2sucHVzaChvdXQpO1xuICAgICAgICBvdXQgPSAnJzsgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICAgICAgaWYgKGl0LmNyZWF0ZUVycm9ycyAhPT0gZmFsc2UpIHtcbiAgICAgICAgICBvdXQgKz0gJyB7IGtleXdvcmQ6IFxcJycgKyAoJ3JlcXVpcmVkJykgKyAnXFwnICwgZGF0YVBhdGg6IChkYXRhUGF0aCB8fCBcXCdcXCcpICsgJyArIChpdC5lcnJvclBhdGgpICsgJyAsIHNjaGVtYVBhdGg6ICcgKyAoaXQudXRpbC50b1F1b3RlZFN0cmluZygkZXJyU2NoZW1hUGF0aCkpICsgJyAsIHBhcmFtczogeyBtaXNzaW5nUHJvcGVydHk6IFxcJycgKyAoJG1pc3NpbmdQcm9wZXJ0eSkgKyAnXFwnIH0gJztcbiAgICAgICAgICBpZiAoaXQub3B0cy5tZXNzYWdlcyAhPT0gZmFsc2UpIHtcbiAgICAgICAgICAgIG91dCArPSAnICwgbWVzc2FnZTogXFwnJztcbiAgICAgICAgICAgIGlmIChpdC5vcHRzLl9lcnJvckRhdGFQYXRoUHJvcGVydHkpIHtcbiAgICAgICAgICAgICAgb3V0ICs9ICdpcyBhIHJlcXVpcmVkIHByb3BlcnR5JztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIG91dCArPSAnc2hvdWxkIGhhdmUgcmVxdWlyZWQgcHJvcGVydHkgXFxcXFxcJycgKyAoJG1pc3NpbmdQcm9wZXJ0eSkgKyAnXFxcXFxcJyc7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBvdXQgKz0gJ1xcJyAnO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoaXQub3B0cy52ZXJib3NlKSB7XG4gICAgICAgICAgICBvdXQgKz0gJyAsIHNjaGVtYTogdmFsaWRhdGUuc2NoZW1hJyArICgkc2NoZW1hUGF0aCkgKyAnICwgcGFyZW50U2NoZW1hOiB2YWxpZGF0ZS5zY2hlbWEnICsgKGl0LnNjaGVtYVBhdGgpICsgJyAsIGRhdGE6ICcgKyAoJGRhdGEpICsgJyAnO1xuICAgICAgICAgIH1cbiAgICAgICAgICBvdXQgKz0gJyB9ICc7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgb3V0ICs9ICcge30gJztcbiAgICAgICAgfVxuICAgICAgICB2YXIgX19lcnIgPSBvdXQ7XG4gICAgICAgIG91dCA9ICQkb3V0U3RhY2sucG9wKCk7XG4gICAgICAgIGlmICghaXQuY29tcG9zaXRlUnVsZSAmJiAkYnJlYWtPbkVycm9yKSB7XG4gICAgICAgICAgLyogaXN0YW5idWwgaWdub3JlIGlmICovXG4gICAgICAgICAgaWYgKGl0LmFzeW5jKSB7XG4gICAgICAgICAgICBvdXQgKz0gJyB0aHJvdyBuZXcgVmFsaWRhdGlvbkVycm9yKFsnICsgKF9fZXJyKSArICddKTsgJztcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgb3V0ICs9ICcgdmFsaWRhdGUuZXJyb3JzID0gWycgKyAoX19lcnIpICsgJ107IHJldHVybiBmYWxzZTsgJztcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgb3V0ICs9ICcgdmFyIGVyciA9ICcgKyAoX19lcnIpICsgJzsgIGlmICh2RXJyb3JzID09PSBudWxsKSB2RXJyb3JzID0gW2Vycl07IGVsc2UgdkVycm9ycy5wdXNoKGVycik7IGVycm9ycysrOyAnO1xuICAgICAgICB9XG4gICAgICAgIG91dCArPSAnIH0gZWxzZSB7ICc7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICgkbG9vcFJlcXVpcmVkKSB7XG4gICAgICAgIGlmICghJGlzRGF0YSkge1xuICAgICAgICAgIG91dCArPSAnIHZhciAnICsgKCR2U2NoZW1hKSArICcgPSB2YWxpZGF0ZS5zY2hlbWEnICsgKCRzY2hlbWFQYXRoKSArICc7ICc7XG4gICAgICAgIH1cbiAgICAgICAgdmFyICRpID0gJ2knICsgJGx2bCxcbiAgICAgICAgICAkcHJvcGVydHlQYXRoID0gJ3NjaGVtYScgKyAkbHZsICsgJ1snICsgJGkgKyAnXScsXG4gICAgICAgICAgJG1pc3NpbmdQcm9wZXJ0eSA9ICdcXCcgKyAnICsgJHByb3BlcnR5UGF0aCArICcgKyBcXCcnO1xuICAgICAgICBpZiAoaXQub3B0cy5fZXJyb3JEYXRhUGF0aFByb3BlcnR5KSB7XG4gICAgICAgICAgaXQuZXJyb3JQYXRoID0gaXQudXRpbC5nZXRQYXRoRXhwcigkY3VycmVudEVycm9yUGF0aCwgJHByb3BlcnR5UGF0aCwgaXQub3B0cy5qc29uUG9pbnRlcnMpO1xuICAgICAgICB9XG4gICAgICAgIGlmICgkaXNEYXRhKSB7XG4gICAgICAgICAgb3V0ICs9ICcgaWYgKCcgKyAoJHZTY2hlbWEpICsgJyAmJiAhQXJyYXkuaXNBcnJheSgnICsgKCR2U2NoZW1hKSArICcpKSB7ICB2YXIgZXJyID0gICAnOyAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgICAgIGlmIChpdC5jcmVhdGVFcnJvcnMgIT09IGZhbHNlKSB7XG4gICAgICAgICAgICBvdXQgKz0gJyB7IGtleXdvcmQ6IFxcJycgKyAoJ3JlcXVpcmVkJykgKyAnXFwnICwgZGF0YVBhdGg6IChkYXRhUGF0aCB8fCBcXCdcXCcpICsgJyArIChpdC5lcnJvclBhdGgpICsgJyAsIHNjaGVtYVBhdGg6ICcgKyAoaXQudXRpbC50b1F1b3RlZFN0cmluZygkZXJyU2NoZW1hUGF0aCkpICsgJyAsIHBhcmFtczogeyBtaXNzaW5nUHJvcGVydHk6IFxcJycgKyAoJG1pc3NpbmdQcm9wZXJ0eSkgKyAnXFwnIH0gJztcbiAgICAgICAgICAgIGlmIChpdC5vcHRzLm1lc3NhZ2VzICE9PSBmYWxzZSkge1xuICAgICAgICAgICAgICBvdXQgKz0gJyAsIG1lc3NhZ2U6IFxcJyc7XG4gICAgICAgICAgICAgIGlmIChpdC5vcHRzLl9lcnJvckRhdGFQYXRoUHJvcGVydHkpIHtcbiAgICAgICAgICAgICAgICBvdXQgKz0gJ2lzIGEgcmVxdWlyZWQgcHJvcGVydHknO1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIG91dCArPSAnc2hvdWxkIGhhdmUgcmVxdWlyZWQgcHJvcGVydHkgXFxcXFxcJycgKyAoJG1pc3NpbmdQcm9wZXJ0eSkgKyAnXFxcXFxcJyc7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgb3V0ICs9ICdcXCcgJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChpdC5vcHRzLnZlcmJvc2UpIHtcbiAgICAgICAgICAgICAgb3V0ICs9ICcgLCBzY2hlbWE6IHZhbGlkYXRlLnNjaGVtYScgKyAoJHNjaGVtYVBhdGgpICsgJyAsIHBhcmVudFNjaGVtYTogdmFsaWRhdGUuc2NoZW1hJyArIChpdC5zY2hlbWFQYXRoKSArICcgLCBkYXRhOiAnICsgKCRkYXRhKSArICcgJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG91dCArPSAnIH0gJztcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgb3V0ICs9ICcge30gJztcbiAgICAgICAgICB9XG4gICAgICAgICAgb3V0ICs9ICc7ICBpZiAodkVycm9ycyA9PT0gbnVsbCkgdkVycm9ycyA9IFtlcnJdOyBlbHNlIHZFcnJvcnMucHVzaChlcnIpOyBlcnJvcnMrKzsgfSBlbHNlIGlmICgnICsgKCR2U2NoZW1hKSArICcgIT09IHVuZGVmaW5lZCkgeyAnO1xuICAgICAgICB9XG4gICAgICAgIG91dCArPSAnIGZvciAodmFyICcgKyAoJGkpICsgJyA9IDA7ICcgKyAoJGkpICsgJyA8ICcgKyAoJHZTY2hlbWEpICsgJy5sZW5ndGg7ICcgKyAoJGkpICsgJysrKSB7IGlmICgnICsgKCRkYXRhKSArICdbJyArICgkdlNjaGVtYSkgKyAnWycgKyAoJGkpICsgJ11dID09PSB1bmRlZmluZWQgJztcbiAgICAgICAgaWYgKCRvd25Qcm9wZXJ0aWVzKSB7XG4gICAgICAgICAgb3V0ICs9ICcgfHwgISBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoJyArICgkZGF0YSkgKyAnLCAnICsgKCR2U2NoZW1hKSArICdbJyArICgkaSkgKyAnXSkgJztcbiAgICAgICAgfVxuICAgICAgICBvdXQgKz0gJykgeyAgdmFyIGVyciA9ICAgJzsgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICAgICAgaWYgKGl0LmNyZWF0ZUVycm9ycyAhPT0gZmFsc2UpIHtcbiAgICAgICAgICBvdXQgKz0gJyB7IGtleXdvcmQ6IFxcJycgKyAoJ3JlcXVpcmVkJykgKyAnXFwnICwgZGF0YVBhdGg6IChkYXRhUGF0aCB8fCBcXCdcXCcpICsgJyArIChpdC5lcnJvclBhdGgpICsgJyAsIHNjaGVtYVBhdGg6ICcgKyAoaXQudXRpbC50b1F1b3RlZFN0cmluZygkZXJyU2NoZW1hUGF0aCkpICsgJyAsIHBhcmFtczogeyBtaXNzaW5nUHJvcGVydHk6IFxcJycgKyAoJG1pc3NpbmdQcm9wZXJ0eSkgKyAnXFwnIH0gJztcbiAgICAgICAgICBpZiAoaXQub3B0cy5tZXNzYWdlcyAhPT0gZmFsc2UpIHtcbiAgICAgICAgICAgIG91dCArPSAnICwgbWVzc2FnZTogXFwnJztcbiAgICAgICAgICAgIGlmIChpdC5vcHRzLl9lcnJvckRhdGFQYXRoUHJvcGVydHkpIHtcbiAgICAgICAgICAgICAgb3V0ICs9ICdpcyBhIHJlcXVpcmVkIHByb3BlcnR5JztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIG91dCArPSAnc2hvdWxkIGhhdmUgcmVxdWlyZWQgcHJvcGVydHkgXFxcXFxcJycgKyAoJG1pc3NpbmdQcm9wZXJ0eSkgKyAnXFxcXFxcJyc7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBvdXQgKz0gJ1xcJyAnO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoaXQub3B0cy52ZXJib3NlKSB7XG4gICAgICAgICAgICBvdXQgKz0gJyAsIHNjaGVtYTogdmFsaWRhdGUuc2NoZW1hJyArICgkc2NoZW1hUGF0aCkgKyAnICwgcGFyZW50U2NoZW1hOiB2YWxpZGF0ZS5zY2hlbWEnICsgKGl0LnNjaGVtYVBhdGgpICsgJyAsIGRhdGE6ICcgKyAoJGRhdGEpICsgJyAnO1xuICAgICAgICAgIH1cbiAgICAgICAgICBvdXQgKz0gJyB9ICc7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgb3V0ICs9ICcge30gJztcbiAgICAgICAgfVxuICAgICAgICBvdXQgKz0gJzsgIGlmICh2RXJyb3JzID09PSBudWxsKSB2RXJyb3JzID0gW2Vycl07IGVsc2UgdkVycm9ycy5wdXNoKGVycik7IGVycm9ycysrOyB9IH0gJztcbiAgICAgICAgaWYgKCRpc0RhdGEpIHtcbiAgICAgICAgICBvdXQgKz0gJyAgfSAgJztcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdmFyIGFycjMgPSAkcmVxdWlyZWQ7XG4gICAgICAgIGlmIChhcnIzKSB7XG4gICAgICAgICAgdmFyICRwcm9wZXJ0eUtleSwgaTMgPSAtMSxcbiAgICAgICAgICAgIGwzID0gYXJyMy5sZW5ndGggLSAxO1xuICAgICAgICAgIHdoaWxlIChpMyA8IGwzKSB7XG4gICAgICAgICAgICAkcHJvcGVydHlLZXkgPSBhcnIzW2kzICs9IDFdO1xuICAgICAgICAgICAgdmFyICRwcm9wID0gaXQudXRpbC5nZXRQcm9wZXJ0eSgkcHJvcGVydHlLZXkpLFxuICAgICAgICAgICAgICAkbWlzc2luZ1Byb3BlcnR5ID0gaXQudXRpbC5lc2NhcGVRdW90ZXMoJHByb3BlcnR5S2V5KSxcbiAgICAgICAgICAgICAgJHVzZURhdGEgPSAkZGF0YSArICRwcm9wO1xuICAgICAgICAgICAgaWYgKGl0Lm9wdHMuX2Vycm9yRGF0YVBhdGhQcm9wZXJ0eSkge1xuICAgICAgICAgICAgICBpdC5lcnJvclBhdGggPSBpdC51dGlsLmdldFBhdGgoJGN1cnJlbnRFcnJvclBhdGgsICRwcm9wZXJ0eUtleSwgaXQub3B0cy5qc29uUG9pbnRlcnMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgb3V0ICs9ICcgaWYgKCAnICsgKCR1c2VEYXRhKSArICcgPT09IHVuZGVmaW5lZCAnO1xuICAgICAgICAgICAgaWYgKCRvd25Qcm9wZXJ0aWVzKSB7XG4gICAgICAgICAgICAgIG91dCArPSAnIHx8ICEgT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKCcgKyAoJGRhdGEpICsgJywgXFwnJyArIChpdC51dGlsLmVzY2FwZVF1b3RlcygkcHJvcGVydHlLZXkpKSArICdcXCcpICc7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBvdXQgKz0gJykgeyAgdmFyIGVyciA9ICAgJzsgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICAgICAgICAgIGlmIChpdC5jcmVhdGVFcnJvcnMgIT09IGZhbHNlKSB7XG4gICAgICAgICAgICAgIG91dCArPSAnIHsga2V5d29yZDogXFwnJyArICgncmVxdWlyZWQnKSArICdcXCcgLCBkYXRhUGF0aDogKGRhdGFQYXRoIHx8IFxcJ1xcJykgKyAnICsgKGl0LmVycm9yUGF0aCkgKyAnICwgc2NoZW1hUGF0aDogJyArIChpdC51dGlsLnRvUXVvdGVkU3RyaW5nKCRlcnJTY2hlbWFQYXRoKSkgKyAnICwgcGFyYW1zOiB7IG1pc3NpbmdQcm9wZXJ0eTogXFwnJyArICgkbWlzc2luZ1Byb3BlcnR5KSArICdcXCcgfSAnO1xuICAgICAgICAgICAgICBpZiAoaXQub3B0cy5tZXNzYWdlcyAhPT0gZmFsc2UpIHtcbiAgICAgICAgICAgICAgICBvdXQgKz0gJyAsIG1lc3NhZ2U6IFxcJyc7XG4gICAgICAgICAgICAgICAgaWYgKGl0Lm9wdHMuX2Vycm9yRGF0YVBhdGhQcm9wZXJ0eSkge1xuICAgICAgICAgICAgICAgICAgb3V0ICs9ICdpcyBhIHJlcXVpcmVkIHByb3BlcnR5JztcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgb3V0ICs9ICdzaG91bGQgaGF2ZSByZXF1aXJlZCBwcm9wZXJ0eSBcXFxcXFwnJyArICgkbWlzc2luZ1Byb3BlcnR5KSArICdcXFxcXFwnJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgb3V0ICs9ICdcXCcgJztcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBpZiAoaXQub3B0cy52ZXJib3NlKSB7XG4gICAgICAgICAgICAgICAgb3V0ICs9ICcgLCBzY2hlbWE6IHZhbGlkYXRlLnNjaGVtYScgKyAoJHNjaGVtYVBhdGgpICsgJyAsIHBhcmVudFNjaGVtYTogdmFsaWRhdGUuc2NoZW1hJyArIChpdC5zY2hlbWFQYXRoKSArICcgLCBkYXRhOiAnICsgKCRkYXRhKSArICcgJztcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBvdXQgKz0gJyB9ICc7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBvdXQgKz0gJyB7fSAnO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgb3V0ICs9ICc7ICBpZiAodkVycm9ycyA9PT0gbnVsbCkgdkVycm9ycyA9IFtlcnJdOyBlbHNlIHZFcnJvcnMucHVzaChlcnIpOyBlcnJvcnMrKzsgfSAnO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICBpdC5lcnJvclBhdGggPSAkY3VycmVudEVycm9yUGF0aDtcbiAgfSBlbHNlIGlmICgkYnJlYWtPbkVycm9yKSB7XG4gICAgb3V0ICs9ICcgaWYgKHRydWUpIHsnO1xuICB9XG4gIHJldHVybiBvdXQ7XG59XG4iLCAiJ3VzZSBzdHJpY3QnO1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBnZW5lcmF0ZV91bmlxdWVJdGVtcyhpdCwgJGtleXdvcmQsICRydWxlVHlwZSkge1xuICB2YXIgb3V0ID0gJyAnO1xuICB2YXIgJGx2bCA9IGl0LmxldmVsO1xuICB2YXIgJGRhdGFMdmwgPSBpdC5kYXRhTGV2ZWw7XG4gIHZhciAkc2NoZW1hID0gaXQuc2NoZW1hWyRrZXl3b3JkXTtcbiAgdmFyICRzY2hlbWFQYXRoID0gaXQuc2NoZW1hUGF0aCArIGl0LnV0aWwuZ2V0UHJvcGVydHkoJGtleXdvcmQpO1xuICB2YXIgJGVyclNjaGVtYVBhdGggPSBpdC5lcnJTY2hlbWFQYXRoICsgJy8nICsgJGtleXdvcmQ7XG4gIHZhciAkYnJlYWtPbkVycm9yID0gIWl0Lm9wdHMuYWxsRXJyb3JzO1xuICB2YXIgJGRhdGEgPSAnZGF0YScgKyAoJGRhdGFMdmwgfHwgJycpO1xuICB2YXIgJHZhbGlkID0gJ3ZhbGlkJyArICRsdmw7XG4gIHZhciAkaXNEYXRhID0gaXQub3B0cy4kZGF0YSAmJiAkc2NoZW1hICYmICRzY2hlbWEuJGRhdGEsXG4gICAgJHNjaGVtYVZhbHVlO1xuICBpZiAoJGlzRGF0YSkge1xuICAgIG91dCArPSAnIHZhciBzY2hlbWEnICsgKCRsdmwpICsgJyA9ICcgKyAoaXQudXRpbC5nZXREYXRhKCRzY2hlbWEuJGRhdGEsICRkYXRhTHZsLCBpdC5kYXRhUGF0aEFycikpICsgJzsgJztcbiAgICAkc2NoZW1hVmFsdWUgPSAnc2NoZW1hJyArICRsdmw7XG4gIH0gZWxzZSB7XG4gICAgJHNjaGVtYVZhbHVlID0gJHNjaGVtYTtcbiAgfVxuICBpZiAoKCRzY2hlbWEgfHwgJGlzRGF0YSkgJiYgaXQub3B0cy51bmlxdWVJdGVtcyAhPT0gZmFsc2UpIHtcbiAgICBpZiAoJGlzRGF0YSkge1xuICAgICAgb3V0ICs9ICcgdmFyICcgKyAoJHZhbGlkKSArICc7IGlmICgnICsgKCRzY2hlbWFWYWx1ZSkgKyAnID09PSBmYWxzZSB8fCAnICsgKCRzY2hlbWFWYWx1ZSkgKyAnID09PSB1bmRlZmluZWQpICcgKyAoJHZhbGlkKSArICcgPSB0cnVlOyBlbHNlIGlmICh0eXBlb2YgJyArICgkc2NoZW1hVmFsdWUpICsgJyAhPSBcXCdib29sZWFuXFwnKSAnICsgKCR2YWxpZCkgKyAnID0gZmFsc2U7IGVsc2UgeyAnO1xuICAgIH1cbiAgICBvdXQgKz0gJyB2YXIgaSA9ICcgKyAoJGRhdGEpICsgJy5sZW5ndGggLCAnICsgKCR2YWxpZCkgKyAnID0gdHJ1ZSAsIGo7IGlmIChpID4gMSkgeyAnO1xuICAgIHZhciAkaXRlbVR5cGUgPSBpdC5zY2hlbWEuaXRlbXMgJiYgaXQuc2NoZW1hLml0ZW1zLnR5cGUsXG4gICAgICAkdHlwZUlzQXJyYXkgPSBBcnJheS5pc0FycmF5KCRpdGVtVHlwZSk7XG4gICAgaWYgKCEkaXRlbVR5cGUgfHwgJGl0ZW1UeXBlID09ICdvYmplY3QnIHx8ICRpdGVtVHlwZSA9PSAnYXJyYXknIHx8ICgkdHlwZUlzQXJyYXkgJiYgKCRpdGVtVHlwZS5pbmRleE9mKCdvYmplY3QnKSA+PSAwIHx8ICRpdGVtVHlwZS5pbmRleE9mKCdhcnJheScpID49IDApKSkge1xuICAgICAgb3V0ICs9ICcgb3V0ZXI6IGZvciAoO2ktLTspIHsgZm9yIChqID0gaTsgai0tOykgeyBpZiAoZXF1YWwoJyArICgkZGF0YSkgKyAnW2ldLCAnICsgKCRkYXRhKSArICdbal0pKSB7ICcgKyAoJHZhbGlkKSArICcgPSBmYWxzZTsgYnJlYWsgb3V0ZXI7IH0gfSB9ICc7XG4gICAgfSBlbHNlIHtcbiAgICAgIG91dCArPSAnIHZhciBpdGVtSW5kaWNlcyA9IHt9LCBpdGVtOyBmb3IgKDtpLS07KSB7IHZhciBpdGVtID0gJyArICgkZGF0YSkgKyAnW2ldOyAnO1xuICAgICAgdmFyICRtZXRob2QgPSAnY2hlY2tEYXRhVHlwZScgKyAoJHR5cGVJc0FycmF5ID8gJ3MnIDogJycpO1xuICAgICAgb3V0ICs9ICcgaWYgKCcgKyAoaXQudXRpbFskbWV0aG9kXSgkaXRlbVR5cGUsICdpdGVtJywgaXQub3B0cy5zdHJpY3ROdW1iZXJzLCB0cnVlKSkgKyAnKSBjb250aW51ZTsgJztcbiAgICAgIGlmICgkdHlwZUlzQXJyYXkpIHtcbiAgICAgICAgb3V0ICs9ICcgaWYgKHR5cGVvZiBpdGVtID09IFxcJ3N0cmluZ1xcJykgaXRlbSA9IFxcJ1wiXFwnICsgaXRlbTsgJztcbiAgICAgIH1cbiAgICAgIG91dCArPSAnIGlmICh0eXBlb2YgaXRlbUluZGljZXNbaXRlbV0gPT0gXFwnbnVtYmVyXFwnKSB7ICcgKyAoJHZhbGlkKSArICcgPSBmYWxzZTsgaiA9IGl0ZW1JbmRpY2VzW2l0ZW1dOyBicmVhazsgfSBpdGVtSW5kaWNlc1tpdGVtXSA9IGk7IH0gJztcbiAgICB9XG4gICAgb3V0ICs9ICcgfSAnO1xuICAgIGlmICgkaXNEYXRhKSB7XG4gICAgICBvdXQgKz0gJyAgfSAgJztcbiAgICB9XG4gICAgb3V0ICs9ICcgaWYgKCEnICsgKCR2YWxpZCkgKyAnKSB7ICAgJztcbiAgICB2YXIgJCRvdXRTdGFjayA9ICQkb3V0U3RhY2sgfHwgW107XG4gICAgJCRvdXRTdGFjay5wdXNoKG91dCk7XG4gICAgb3V0ID0gJyc7IC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgaWYgKGl0LmNyZWF0ZUVycm9ycyAhPT0gZmFsc2UpIHtcbiAgICAgIG91dCArPSAnIHsga2V5d29yZDogXFwnJyArICgndW5pcXVlSXRlbXMnKSArICdcXCcgLCBkYXRhUGF0aDogKGRhdGFQYXRoIHx8IFxcJ1xcJykgKyAnICsgKGl0LmVycm9yUGF0aCkgKyAnICwgc2NoZW1hUGF0aDogJyArIChpdC51dGlsLnRvUXVvdGVkU3RyaW5nKCRlcnJTY2hlbWFQYXRoKSkgKyAnICwgcGFyYW1zOiB7IGk6IGksIGo6IGogfSAnO1xuICAgICAgaWYgKGl0Lm9wdHMubWVzc2FnZXMgIT09IGZhbHNlKSB7XG4gICAgICAgIG91dCArPSAnICwgbWVzc2FnZTogXFwnc2hvdWxkIE5PVCBoYXZlIGR1cGxpY2F0ZSBpdGVtcyAoaXRlbXMgIyMgXFwnICsgaiArIFxcJyBhbmQgXFwnICsgaSArIFxcJyBhcmUgaWRlbnRpY2FsKVxcJyAnO1xuICAgICAgfVxuICAgICAgaWYgKGl0Lm9wdHMudmVyYm9zZSkge1xuICAgICAgICBvdXQgKz0gJyAsIHNjaGVtYTogICc7XG4gICAgICAgIGlmICgkaXNEYXRhKSB7XG4gICAgICAgICAgb3V0ICs9ICd2YWxpZGF0ZS5zY2hlbWEnICsgKCRzY2hlbWFQYXRoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBvdXQgKz0gJycgKyAoJHNjaGVtYSk7XG4gICAgICAgIH1cbiAgICAgICAgb3V0ICs9ICcgICAgICAgICAsIHBhcmVudFNjaGVtYTogdmFsaWRhdGUuc2NoZW1hJyArIChpdC5zY2hlbWFQYXRoKSArICcgLCBkYXRhOiAnICsgKCRkYXRhKSArICcgJztcbiAgICAgIH1cbiAgICAgIG91dCArPSAnIH0gJztcbiAgICB9IGVsc2Uge1xuICAgICAgb3V0ICs9ICcge30gJztcbiAgICB9XG4gICAgdmFyIF9fZXJyID0gb3V0O1xuICAgIG91dCA9ICQkb3V0U3RhY2sucG9wKCk7XG4gICAgaWYgKCFpdC5jb21wb3NpdGVSdWxlICYmICRicmVha09uRXJyb3IpIHtcbiAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBpZiAqL1xuICAgICAgaWYgKGl0LmFzeW5jKSB7XG4gICAgICAgIG91dCArPSAnIHRocm93IG5ldyBWYWxpZGF0aW9uRXJyb3IoWycgKyAoX19lcnIpICsgJ10pOyAnO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgb3V0ICs9ICcgdmFsaWRhdGUuZXJyb3JzID0gWycgKyAoX19lcnIpICsgJ107IHJldHVybiBmYWxzZTsgJztcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgb3V0ICs9ICcgdmFyIGVyciA9ICcgKyAoX19lcnIpICsgJzsgIGlmICh2RXJyb3JzID09PSBudWxsKSB2RXJyb3JzID0gW2Vycl07IGVsc2UgdkVycm9ycy5wdXNoKGVycik7IGVycm9ycysrOyAnO1xuICAgIH1cbiAgICBvdXQgKz0gJyB9ICc7XG4gICAgaWYgKCRicmVha09uRXJyb3IpIHtcbiAgICAgIG91dCArPSAnIGVsc2UgeyAnO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBpZiAoJGJyZWFrT25FcnJvcikge1xuICAgICAgb3V0ICs9ICcgaWYgKHRydWUpIHsgJztcbiAgICB9XG4gIH1cbiAgcmV0dXJuIG91dDtcbn1cbiIsICIndXNlIHN0cmljdCc7XG5cbi8vYWxsIHJlcXVpcmVzIG11c3QgYmUgZXhwbGljaXQgYmVjYXVzZSBicm93c2VyaWZ5IHdvbid0IHdvcmsgd2l0aCBkeW5hbWljIHJlcXVpcmVzXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgJyRyZWYnOiByZXF1aXJlKCcuL3JlZicpLFxuICBhbGxPZjogcmVxdWlyZSgnLi9hbGxPZicpLFxuICBhbnlPZjogcmVxdWlyZSgnLi9hbnlPZicpLFxuICAnJGNvbW1lbnQnOiByZXF1aXJlKCcuL2NvbW1lbnQnKSxcbiAgY29uc3Q6IHJlcXVpcmUoJy4vY29uc3QnKSxcbiAgY29udGFpbnM6IHJlcXVpcmUoJy4vY29udGFpbnMnKSxcbiAgZGVwZW5kZW5jaWVzOiByZXF1aXJlKCcuL2RlcGVuZGVuY2llcycpLFxuICAnZW51bSc6IHJlcXVpcmUoJy4vZW51bScpLFxuICBmb3JtYXQ6IHJlcXVpcmUoJy4vZm9ybWF0JyksXG4gICdpZic6IHJlcXVpcmUoJy4vaWYnKSxcbiAgaXRlbXM6IHJlcXVpcmUoJy4vaXRlbXMnKSxcbiAgbWF4aW11bTogcmVxdWlyZSgnLi9fbGltaXQnKSxcbiAgbWluaW11bTogcmVxdWlyZSgnLi9fbGltaXQnKSxcbiAgbWF4SXRlbXM6IHJlcXVpcmUoJy4vX2xpbWl0SXRlbXMnKSxcbiAgbWluSXRlbXM6IHJlcXVpcmUoJy4vX2xpbWl0SXRlbXMnKSxcbiAgbWF4TGVuZ3RoOiByZXF1aXJlKCcuL19saW1pdExlbmd0aCcpLFxuICBtaW5MZW5ndGg6IHJlcXVpcmUoJy4vX2xpbWl0TGVuZ3RoJyksXG4gIG1heFByb3BlcnRpZXM6IHJlcXVpcmUoJy4vX2xpbWl0UHJvcGVydGllcycpLFxuICBtaW5Qcm9wZXJ0aWVzOiByZXF1aXJlKCcuL19saW1pdFByb3BlcnRpZXMnKSxcbiAgbXVsdGlwbGVPZjogcmVxdWlyZSgnLi9tdWx0aXBsZU9mJyksXG4gIG5vdDogcmVxdWlyZSgnLi9ub3QnKSxcbiAgb25lT2Y6IHJlcXVpcmUoJy4vb25lT2YnKSxcbiAgcGF0dGVybjogcmVxdWlyZSgnLi9wYXR0ZXJuJyksXG4gIHByb3BlcnRpZXM6IHJlcXVpcmUoJy4vcHJvcGVydGllcycpLFxuICBwcm9wZXJ0eU5hbWVzOiByZXF1aXJlKCcuL3Byb3BlcnR5TmFtZXMnKSxcbiAgcmVxdWlyZWQ6IHJlcXVpcmUoJy4vcmVxdWlyZWQnKSxcbiAgdW5pcXVlSXRlbXM6IHJlcXVpcmUoJy4vdW5pcXVlSXRlbXMnKSxcbiAgdmFsaWRhdGU6IHJlcXVpcmUoJy4vdmFsaWRhdGUnKVxufTtcbiIsICIndXNlIHN0cmljdCc7XG5cbnZhciBydWxlTW9kdWxlcyA9IHJlcXVpcmUoJy4uL2RvdGpzJylcbiAgLCB0b0hhc2ggPSByZXF1aXJlKCcuL3V0aWwnKS50b0hhc2g7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gcnVsZXMoKSB7XG4gIHZhciBSVUxFUyA9IFtcbiAgICB7IHR5cGU6ICdudW1iZXInLFxuICAgICAgcnVsZXM6IFsgeyAnbWF4aW11bSc6IFsnZXhjbHVzaXZlTWF4aW11bSddIH0sXG4gICAgICAgICAgICAgICB7ICdtaW5pbXVtJzogWydleGNsdXNpdmVNaW5pbXVtJ10gfSwgJ211bHRpcGxlT2YnLCAnZm9ybWF0J10gfSxcbiAgICB7IHR5cGU6ICdzdHJpbmcnLFxuICAgICAgcnVsZXM6IFsgJ21heExlbmd0aCcsICdtaW5MZW5ndGgnLCAncGF0dGVybicsICdmb3JtYXQnIF0gfSxcbiAgICB7IHR5cGU6ICdhcnJheScsXG4gICAgICBydWxlczogWyAnbWF4SXRlbXMnLCAnbWluSXRlbXMnLCAnaXRlbXMnLCAnY29udGFpbnMnLCAndW5pcXVlSXRlbXMnIF0gfSxcbiAgICB7IHR5cGU6ICdvYmplY3QnLFxuICAgICAgcnVsZXM6IFsgJ21heFByb3BlcnRpZXMnLCAnbWluUHJvcGVydGllcycsICdyZXF1aXJlZCcsICdkZXBlbmRlbmNpZXMnLCAncHJvcGVydHlOYW1lcycsXG4gICAgICAgICAgICAgICB7ICdwcm9wZXJ0aWVzJzogWydhZGRpdGlvbmFsUHJvcGVydGllcycsICdwYXR0ZXJuUHJvcGVydGllcyddIH0gXSB9LFxuICAgIHsgcnVsZXM6IFsgJyRyZWYnLCAnY29uc3QnLCAnZW51bScsICdub3QnLCAnYW55T2YnLCAnb25lT2YnLCAnYWxsT2YnLCAnaWYnIF0gfVxuICBdO1xuXG4gIHZhciBBTEwgPSBbICd0eXBlJywgJyRjb21tZW50JyBdO1xuICB2YXIgS0VZV09SRFMgPSBbXG4gICAgJyRzY2hlbWEnLCAnJGlkJywgJ2lkJywgJyRkYXRhJywgJyRhc3luYycsICd0aXRsZScsXG4gICAgJ2Rlc2NyaXB0aW9uJywgJ2RlZmF1bHQnLCAnZGVmaW5pdGlvbnMnLFxuICAgICdleGFtcGxlcycsICdyZWFkT25seScsICd3cml0ZU9ubHknLFxuICAgICdjb250ZW50TWVkaWFUeXBlJywgJ2NvbnRlbnRFbmNvZGluZycsXG4gICAgJ2FkZGl0aW9uYWxJdGVtcycsICd0aGVuJywgJ2Vsc2UnXG4gIF07XG4gIHZhciBUWVBFUyA9IFsgJ251bWJlcicsICdpbnRlZ2VyJywgJ3N0cmluZycsICdhcnJheScsICdvYmplY3QnLCAnYm9vbGVhbicsICdudWxsJyBdO1xuICBSVUxFUy5hbGwgPSB0b0hhc2goQUxMKTtcbiAgUlVMRVMudHlwZXMgPSB0b0hhc2goVFlQRVMpO1xuXG4gIFJVTEVTLmZvckVhY2goZnVuY3Rpb24gKGdyb3VwKSB7XG4gICAgZ3JvdXAucnVsZXMgPSBncm91cC5ydWxlcy5tYXAoZnVuY3Rpb24gKGtleXdvcmQpIHtcbiAgICAgIHZhciBpbXBsS2V5d29yZHM7XG4gICAgICBpZiAodHlwZW9mIGtleXdvcmQgPT0gJ29iamVjdCcpIHtcbiAgICAgICAgdmFyIGtleSA9IE9iamVjdC5rZXlzKGtleXdvcmQpWzBdO1xuICAgICAgICBpbXBsS2V5d29yZHMgPSBrZXl3b3JkW2tleV07XG4gICAgICAgIGtleXdvcmQgPSBrZXk7XG4gICAgICAgIGltcGxLZXl3b3Jkcy5mb3JFYWNoKGZ1bmN0aW9uIChrKSB7XG4gICAgICAgICAgQUxMLnB1c2goayk7XG4gICAgICAgICAgUlVMRVMuYWxsW2tdID0gdHJ1ZTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICBBTEwucHVzaChrZXl3b3JkKTtcbiAgICAgIHZhciBydWxlID0gUlVMRVMuYWxsW2tleXdvcmRdID0ge1xuICAgICAgICBrZXl3b3JkOiBrZXl3b3JkLFxuICAgICAgICBjb2RlOiBydWxlTW9kdWxlc1trZXl3b3JkXSxcbiAgICAgICAgaW1wbGVtZW50czogaW1wbEtleXdvcmRzXG4gICAgICB9O1xuICAgICAgcmV0dXJuIHJ1bGU7XG4gICAgfSk7XG5cbiAgICBSVUxFUy5hbGwuJGNvbW1lbnQgPSB7XG4gICAgICBrZXl3b3JkOiAnJGNvbW1lbnQnLFxuICAgICAgY29kZTogcnVsZU1vZHVsZXMuJGNvbW1lbnRcbiAgICB9O1xuXG4gICAgaWYgKGdyb3VwLnR5cGUpIFJVTEVTLnR5cGVzW2dyb3VwLnR5cGVdID0gZ3JvdXA7XG4gIH0pO1xuXG4gIFJVTEVTLmtleXdvcmRzID0gdG9IYXNoKEFMTC5jb25jYXQoS0VZV09SRFMpKTtcbiAgUlVMRVMuY3VzdG9tID0ge307XG5cbiAgcmV0dXJuIFJVTEVTO1xufTtcbiIsICIndXNlIHN0cmljdCc7XG5cbnZhciBLRVlXT1JEUyA9IFtcbiAgJ211bHRpcGxlT2YnLFxuICAnbWF4aW11bScsXG4gICdleGNsdXNpdmVNYXhpbXVtJyxcbiAgJ21pbmltdW0nLFxuICAnZXhjbHVzaXZlTWluaW11bScsXG4gICdtYXhMZW5ndGgnLFxuICAnbWluTGVuZ3RoJyxcbiAgJ3BhdHRlcm4nLFxuICAnYWRkaXRpb25hbEl0ZW1zJyxcbiAgJ21heEl0ZW1zJyxcbiAgJ21pbkl0ZW1zJyxcbiAgJ3VuaXF1ZUl0ZW1zJyxcbiAgJ21heFByb3BlcnRpZXMnLFxuICAnbWluUHJvcGVydGllcycsXG4gICdyZXF1aXJlZCcsXG4gICdhZGRpdGlvbmFsUHJvcGVydGllcycsXG4gICdlbnVtJyxcbiAgJ2Zvcm1hdCcsXG4gICdjb25zdCdcbl07XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKG1ldGFTY2hlbWEsIGtleXdvcmRzSnNvblBvaW50ZXJzKSB7XG4gIGZvciAodmFyIGk9MDsgaTxrZXl3b3Jkc0pzb25Qb2ludGVycy5sZW5ndGg7IGkrKykge1xuICAgIG1ldGFTY2hlbWEgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KG1ldGFTY2hlbWEpKTtcbiAgICB2YXIgc2VnbWVudHMgPSBrZXl3b3Jkc0pzb25Qb2ludGVyc1tpXS5zcGxpdCgnLycpO1xuICAgIHZhciBrZXl3b3JkcyA9IG1ldGFTY2hlbWE7XG4gICAgdmFyIGo7XG4gICAgZm9yIChqPTE7IGo8c2VnbWVudHMubGVuZ3RoOyBqKyspXG4gICAgICBrZXl3b3JkcyA9IGtleXdvcmRzW3NlZ21lbnRzW2pdXTtcblxuICAgIGZvciAoaj0wOyBqPEtFWVdPUkRTLmxlbmd0aDsgaisrKSB7XG4gICAgICB2YXIga2V5ID0gS0VZV09SRFNbal07XG4gICAgICB2YXIgc2NoZW1hID0ga2V5d29yZHNba2V5XTtcbiAgICAgIGlmIChzY2hlbWEpIHtcbiAgICAgICAga2V5d29yZHNba2V5XSA9IHtcbiAgICAgICAgICBhbnlPZjogW1xuICAgICAgICAgICAgc2NoZW1hLFxuICAgICAgICAgICAgeyAkcmVmOiAnaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2Fqdi12YWxpZGF0b3IvYWp2L21hc3Rlci9saWIvcmVmcy9kYXRhLmpzb24jJyB9XG4gICAgICAgICAgXVxuICAgICAgICB9O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBtZXRhU2NoZW1hO1xufTtcbiIsICIndXNlIHN0cmljdCc7XG5cbnZhciBNaXNzaW5nUmVmRXJyb3IgPSByZXF1aXJlKCcuL2Vycm9yX2NsYXNzZXMnKS5NaXNzaW5nUmVmO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGNvbXBpbGVBc3luYztcblxuXG4vKipcbiAqIENyZWF0ZXMgdmFsaWRhdGluZyBmdW5jdGlvbiBmb3IgcGFzc2VkIHNjaGVtYSB3aXRoIGFzeW5jaHJvbm91cyBsb2FkaW5nIG9mIG1pc3Npbmcgc2NoZW1hcy5cbiAqIGBsb2FkU2NoZW1hYCBvcHRpb24gc2hvdWxkIGJlIGEgZnVuY3Rpb24gdGhhdCBhY2NlcHRzIHNjaGVtYSB1cmkgYW5kIHJldHVybnMgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHdpdGggdGhlIHNjaGVtYS5cbiAqIEB0aGlzICBBanZcbiAqIEBwYXJhbSB7T2JqZWN0fSAgIHNjaGVtYSBzY2hlbWEgb2JqZWN0XG4gKiBAcGFyYW0ge0Jvb2xlYW59ICBtZXRhIG9wdGlvbmFsIHRydWUgdG8gY29tcGlsZSBtZXRhLXNjaGVtYTsgdGhpcyBwYXJhbWV0ZXIgY2FuIGJlIHNraXBwZWRcbiAqIEBwYXJhbSB7RnVuY3Rpb259IGNhbGxiYWNrIGFuIG9wdGlvbmFsIG5vZGUtc3R5bGUgY2FsbGJhY2ssIGl0IGlzIGNhbGxlZCB3aXRoIDIgcGFyYW1ldGVyczogZXJyb3IgKG9yIG51bGwpIGFuZCB2YWxpZGF0aW5nIGZ1bmN0aW9uLlxuICogQHJldHVybiB7UHJvbWlzZX0gcHJvbWlzZSB0aGF0IHJlc29sdmVzIHdpdGggYSB2YWxpZGF0aW5nIGZ1bmN0aW9uLlxuICovXG5mdW5jdGlvbiBjb21waWxlQXN5bmMoc2NoZW1hLCBtZXRhLCBjYWxsYmFjaykge1xuICAvKiBlc2xpbnQgbm8tc2hhZG93OiAwICovXG4gIC8qIGdsb2JhbCBQcm9taXNlICovXG4gIC8qIGpzaGludCB2YWxpZHRoaXM6IHRydWUgKi9cbiAgdmFyIHNlbGYgPSB0aGlzO1xuICBpZiAodHlwZW9mIHRoaXMuX29wdHMubG9hZFNjaGVtYSAhPSAnZnVuY3Rpb24nKVxuICAgIHRocm93IG5ldyBFcnJvcignb3B0aW9ucy5sb2FkU2NoZW1hIHNob3VsZCBiZSBhIGZ1bmN0aW9uJyk7XG5cbiAgaWYgKHR5cGVvZiBtZXRhID09ICdmdW5jdGlvbicpIHtcbiAgICBjYWxsYmFjayA9IG1ldGE7XG4gICAgbWV0YSA9IHVuZGVmaW5lZDtcbiAgfVxuXG4gIHZhciBwID0gbG9hZE1ldGFTY2hlbWFPZihzY2hlbWEpLnRoZW4oZnVuY3Rpb24gKCkge1xuICAgIHZhciBzY2hlbWFPYmogPSBzZWxmLl9hZGRTY2hlbWEoc2NoZW1hLCB1bmRlZmluZWQsIG1ldGEpO1xuICAgIHJldHVybiBzY2hlbWFPYmoudmFsaWRhdGUgfHwgX2NvbXBpbGVBc3luYyhzY2hlbWFPYmopO1xuICB9KTtcblxuICBpZiAoY2FsbGJhY2spIHtcbiAgICBwLnRoZW4oXG4gICAgICBmdW5jdGlvbih2KSB7IGNhbGxiYWNrKG51bGwsIHYpOyB9LFxuICAgICAgY2FsbGJhY2tcbiAgICApO1xuICB9XG5cbiAgcmV0dXJuIHA7XG5cblxuICBmdW5jdGlvbiBsb2FkTWV0YVNjaGVtYU9mKHNjaCkge1xuICAgIHZhciAkc2NoZW1hID0gc2NoLiRzY2hlbWE7XG4gICAgcmV0dXJuICRzY2hlbWEgJiYgIXNlbGYuZ2V0U2NoZW1hKCRzY2hlbWEpXG4gICAgICAgICAgICA/IGNvbXBpbGVBc3luYy5jYWxsKHNlbGYsIHsgJHJlZjogJHNjaGVtYSB9LCB0cnVlKVxuICAgICAgICAgICAgOiBQcm9taXNlLnJlc29sdmUoKTtcbiAgfVxuXG5cbiAgZnVuY3Rpb24gX2NvbXBpbGVBc3luYyhzY2hlbWFPYmopIHtcbiAgICB0cnkgeyByZXR1cm4gc2VsZi5fY29tcGlsZShzY2hlbWFPYmopOyB9XG4gICAgY2F0Y2goZSkge1xuICAgICAgaWYgKGUgaW5zdGFuY2VvZiBNaXNzaW5nUmVmRXJyb3IpIHJldHVybiBsb2FkTWlzc2luZ1NjaGVtYShlKTtcbiAgICAgIHRocm93IGU7XG4gICAgfVxuXG5cbiAgICBmdW5jdGlvbiBsb2FkTWlzc2luZ1NjaGVtYShlKSB7XG4gICAgICB2YXIgcmVmID0gZS5taXNzaW5nU2NoZW1hO1xuICAgICAgaWYgKGFkZGVkKHJlZikpIHRocm93IG5ldyBFcnJvcignU2NoZW1hICcgKyByZWYgKyAnIGlzIGxvYWRlZCBidXQgJyArIGUubWlzc2luZ1JlZiArICcgY2Fubm90IGJlIHJlc29sdmVkJyk7XG5cbiAgICAgIHZhciBzY2hlbWFQcm9taXNlID0gc2VsZi5fbG9hZGluZ1NjaGVtYXNbcmVmXTtcbiAgICAgIGlmICghc2NoZW1hUHJvbWlzZSkge1xuICAgICAgICBzY2hlbWFQcm9taXNlID0gc2VsZi5fbG9hZGluZ1NjaGVtYXNbcmVmXSA9IHNlbGYuX29wdHMubG9hZFNjaGVtYShyZWYpO1xuICAgICAgICBzY2hlbWFQcm9taXNlLnRoZW4ocmVtb3ZlUHJvbWlzZSwgcmVtb3ZlUHJvbWlzZSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBzY2hlbWFQcm9taXNlLnRoZW4oZnVuY3Rpb24gKHNjaCkge1xuICAgICAgICBpZiAoIWFkZGVkKHJlZikpIHtcbiAgICAgICAgICByZXR1cm4gbG9hZE1ldGFTY2hlbWFPZihzY2gpLnRoZW4oZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgaWYgKCFhZGRlZChyZWYpKSBzZWxmLmFkZFNjaGVtYShzY2gsIHJlZiwgdW5kZWZpbmVkLCBtZXRhKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSkudGhlbihmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIF9jb21waWxlQXN5bmMoc2NoZW1hT2JqKTtcbiAgICAgIH0pO1xuXG4gICAgICBmdW5jdGlvbiByZW1vdmVQcm9taXNlKCkge1xuICAgICAgICBkZWxldGUgc2VsZi5fbG9hZGluZ1NjaGVtYXNbcmVmXTtcbiAgICAgIH1cblxuICAgICAgZnVuY3Rpb24gYWRkZWQocmVmKSB7XG4gICAgICAgIHJldHVybiBzZWxmLl9yZWZzW3JlZl0gfHwgc2VsZi5fc2NoZW1hc1tyZWZdO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwgIid1c2Ugc3RyaWN0Jztcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gZ2VuZXJhdGVfY3VzdG9tKGl0LCAka2V5d29yZCwgJHJ1bGVUeXBlKSB7XG4gIHZhciBvdXQgPSAnICc7XG4gIHZhciAkbHZsID0gaXQubGV2ZWw7XG4gIHZhciAkZGF0YUx2bCA9IGl0LmRhdGFMZXZlbDtcbiAgdmFyICRzY2hlbWEgPSBpdC5zY2hlbWFbJGtleXdvcmRdO1xuICB2YXIgJHNjaGVtYVBhdGggPSBpdC5zY2hlbWFQYXRoICsgaXQudXRpbC5nZXRQcm9wZXJ0eSgka2V5d29yZCk7XG4gIHZhciAkZXJyU2NoZW1hUGF0aCA9IGl0LmVyclNjaGVtYVBhdGggKyAnLycgKyAka2V5d29yZDtcbiAgdmFyICRicmVha09uRXJyb3IgPSAhaXQub3B0cy5hbGxFcnJvcnM7XG4gIHZhciAkZXJyb3JLZXl3b3JkO1xuICB2YXIgJGRhdGEgPSAnZGF0YScgKyAoJGRhdGFMdmwgfHwgJycpO1xuICB2YXIgJHZhbGlkID0gJ3ZhbGlkJyArICRsdmw7XG4gIHZhciAkZXJycyA9ICdlcnJzX18nICsgJGx2bDtcbiAgdmFyICRpc0RhdGEgPSBpdC5vcHRzLiRkYXRhICYmICRzY2hlbWEgJiYgJHNjaGVtYS4kZGF0YSxcbiAgICAkc2NoZW1hVmFsdWU7XG4gIGlmICgkaXNEYXRhKSB7XG4gICAgb3V0ICs9ICcgdmFyIHNjaGVtYScgKyAoJGx2bCkgKyAnID0gJyArIChpdC51dGlsLmdldERhdGEoJHNjaGVtYS4kZGF0YSwgJGRhdGFMdmwsIGl0LmRhdGFQYXRoQXJyKSkgKyAnOyAnO1xuICAgICRzY2hlbWFWYWx1ZSA9ICdzY2hlbWEnICsgJGx2bDtcbiAgfSBlbHNlIHtcbiAgICAkc2NoZW1hVmFsdWUgPSAkc2NoZW1hO1xuICB9XG4gIHZhciAkcnVsZSA9IHRoaXMsXG4gICAgJGRlZmluaXRpb24gPSAnZGVmaW5pdGlvbicgKyAkbHZsLFxuICAgICRyRGVmID0gJHJ1bGUuZGVmaW5pdGlvbixcbiAgICAkY2xvc2luZ0JyYWNlcyA9ICcnO1xuICB2YXIgJGNvbXBpbGUsICRpbmxpbmUsICRtYWNybywgJHJ1bGVWYWxpZGF0ZSwgJHZhbGlkYXRlQ29kZTtcbiAgaWYgKCRpc0RhdGEgJiYgJHJEZWYuJGRhdGEpIHtcbiAgICAkdmFsaWRhdGVDb2RlID0gJ2tleXdvcmRWYWxpZGF0ZScgKyAkbHZsO1xuICAgIHZhciAkdmFsaWRhdGVTY2hlbWEgPSAkckRlZi52YWxpZGF0ZVNjaGVtYTtcbiAgICBvdXQgKz0gJyB2YXIgJyArICgkZGVmaW5pdGlvbikgKyAnID0gUlVMRVMuY3VzdG9tW1xcJycgKyAoJGtleXdvcmQpICsgJ1xcJ10uZGVmaW5pdGlvbjsgdmFyICcgKyAoJHZhbGlkYXRlQ29kZSkgKyAnID0gJyArICgkZGVmaW5pdGlvbikgKyAnLnZhbGlkYXRlOyc7XG4gIH0gZWxzZSB7XG4gICAgJHJ1bGVWYWxpZGF0ZSA9IGl0LnVzZUN1c3RvbVJ1bGUoJHJ1bGUsICRzY2hlbWEsIGl0LnNjaGVtYSwgaXQpO1xuICAgIGlmICghJHJ1bGVWYWxpZGF0ZSkgcmV0dXJuO1xuICAgICRzY2hlbWFWYWx1ZSA9ICd2YWxpZGF0ZS5zY2hlbWEnICsgJHNjaGVtYVBhdGg7XG4gICAgJHZhbGlkYXRlQ29kZSA9ICRydWxlVmFsaWRhdGUuY29kZTtcbiAgICAkY29tcGlsZSA9ICRyRGVmLmNvbXBpbGU7XG4gICAgJGlubGluZSA9ICRyRGVmLmlubGluZTtcbiAgICAkbWFjcm8gPSAkckRlZi5tYWNybztcbiAgfVxuICB2YXIgJHJ1bGVFcnJzID0gJHZhbGlkYXRlQ29kZSArICcuZXJyb3JzJyxcbiAgICAkaSA9ICdpJyArICRsdmwsXG4gICAgJHJ1bGVFcnIgPSAncnVsZUVycicgKyAkbHZsLFxuICAgICRhc3luY0tleXdvcmQgPSAkckRlZi5hc3luYztcbiAgaWYgKCRhc3luY0tleXdvcmQgJiYgIWl0LmFzeW5jKSB0aHJvdyBuZXcgRXJyb3IoJ2FzeW5jIGtleXdvcmQgaW4gc3luYyBzY2hlbWEnKTtcbiAgaWYgKCEoJGlubGluZSB8fCAkbWFjcm8pKSB7XG4gICAgb3V0ICs9ICcnICsgKCRydWxlRXJycykgKyAnID0gbnVsbDsnO1xuICB9XG4gIG91dCArPSAndmFyICcgKyAoJGVycnMpICsgJyA9IGVycm9yczt2YXIgJyArICgkdmFsaWQpICsgJzsnO1xuICBpZiAoJGlzRGF0YSAmJiAkckRlZi4kZGF0YSkge1xuICAgICRjbG9zaW5nQnJhY2VzICs9ICd9JztcbiAgICBvdXQgKz0gJyBpZiAoJyArICgkc2NoZW1hVmFsdWUpICsgJyA9PT0gdW5kZWZpbmVkKSB7ICcgKyAoJHZhbGlkKSArICcgPSB0cnVlOyB9IGVsc2UgeyAnO1xuICAgIGlmICgkdmFsaWRhdGVTY2hlbWEpIHtcbiAgICAgICRjbG9zaW5nQnJhY2VzICs9ICd9JztcbiAgICAgIG91dCArPSAnICcgKyAoJHZhbGlkKSArICcgPSAnICsgKCRkZWZpbml0aW9uKSArICcudmFsaWRhdGVTY2hlbWEoJyArICgkc2NoZW1hVmFsdWUpICsgJyk7IGlmICgnICsgKCR2YWxpZCkgKyAnKSB7ICc7XG4gICAgfVxuICB9XG4gIGlmICgkaW5saW5lKSB7XG4gICAgaWYgKCRyRGVmLnN0YXRlbWVudHMpIHtcbiAgICAgIG91dCArPSAnICcgKyAoJHJ1bGVWYWxpZGF0ZS52YWxpZGF0ZSkgKyAnICc7XG4gICAgfSBlbHNlIHtcbiAgICAgIG91dCArPSAnICcgKyAoJHZhbGlkKSArICcgPSAnICsgKCRydWxlVmFsaWRhdGUudmFsaWRhdGUpICsgJzsgJztcbiAgICB9XG4gIH0gZWxzZSBpZiAoJG1hY3JvKSB7XG4gICAgdmFyICRpdCA9IGl0LnV0aWwuY29weShpdCk7XG4gICAgdmFyICRjbG9zaW5nQnJhY2VzID0gJyc7XG4gICAgJGl0LmxldmVsKys7XG4gICAgdmFyICRuZXh0VmFsaWQgPSAndmFsaWQnICsgJGl0LmxldmVsO1xuICAgICRpdC5zY2hlbWEgPSAkcnVsZVZhbGlkYXRlLnZhbGlkYXRlO1xuICAgICRpdC5zY2hlbWFQYXRoID0gJyc7XG4gICAgdmFyICR3YXNDb21wb3NpdGUgPSBpdC5jb21wb3NpdGVSdWxlO1xuICAgIGl0LmNvbXBvc2l0ZVJ1bGUgPSAkaXQuY29tcG9zaXRlUnVsZSA9IHRydWU7XG4gICAgdmFyICRjb2RlID0gaXQudmFsaWRhdGUoJGl0KS5yZXBsYWNlKC92YWxpZGF0ZVxcLnNjaGVtYS9nLCAkdmFsaWRhdGVDb2RlKTtcbiAgICBpdC5jb21wb3NpdGVSdWxlID0gJGl0LmNvbXBvc2l0ZVJ1bGUgPSAkd2FzQ29tcG9zaXRlO1xuICAgIG91dCArPSAnICcgKyAoJGNvZGUpO1xuICB9IGVsc2Uge1xuICAgIHZhciAkJG91dFN0YWNrID0gJCRvdXRTdGFjayB8fCBbXTtcbiAgICAkJG91dFN0YWNrLnB1c2gob3V0KTtcbiAgICBvdXQgPSAnJztcbiAgICBvdXQgKz0gJyAgJyArICgkdmFsaWRhdGVDb2RlKSArICcuY2FsbCggJztcbiAgICBpZiAoaXQub3B0cy5wYXNzQ29udGV4dCkge1xuICAgICAgb3V0ICs9ICd0aGlzJztcbiAgICB9IGVsc2Uge1xuICAgICAgb3V0ICs9ICdzZWxmJztcbiAgICB9XG4gICAgaWYgKCRjb21waWxlIHx8ICRyRGVmLnNjaGVtYSA9PT0gZmFsc2UpIHtcbiAgICAgIG91dCArPSAnICwgJyArICgkZGF0YSkgKyAnICc7XG4gICAgfSBlbHNlIHtcbiAgICAgIG91dCArPSAnICwgJyArICgkc2NoZW1hVmFsdWUpICsgJyAsICcgKyAoJGRhdGEpICsgJyAsIHZhbGlkYXRlLnNjaGVtYScgKyAoaXQuc2NoZW1hUGF0aCkgKyAnICc7XG4gICAgfVxuICAgIG91dCArPSAnICwgKGRhdGFQYXRoIHx8IFxcJ1xcJyknO1xuICAgIGlmIChpdC5lcnJvclBhdGggIT0gJ1wiXCInKSB7XG4gICAgICBvdXQgKz0gJyArICcgKyAoaXQuZXJyb3JQYXRoKTtcbiAgICB9XG4gICAgdmFyICRwYXJlbnREYXRhID0gJGRhdGFMdmwgPyAnZGF0YScgKyAoKCRkYXRhTHZsIC0gMSkgfHwgJycpIDogJ3BhcmVudERhdGEnLFxuICAgICAgJHBhcmVudERhdGFQcm9wZXJ0eSA9ICRkYXRhTHZsID8gaXQuZGF0YVBhdGhBcnJbJGRhdGFMdmxdIDogJ3BhcmVudERhdGFQcm9wZXJ0eSc7XG4gICAgb3V0ICs9ICcgLCAnICsgKCRwYXJlbnREYXRhKSArICcgLCAnICsgKCRwYXJlbnREYXRhUHJvcGVydHkpICsgJyAsIHJvb3REYXRhICkgICc7XG4gICAgdmFyIGRlZl9jYWxsUnVsZVZhbGlkYXRlID0gb3V0O1xuICAgIG91dCA9ICQkb3V0U3RhY2sucG9wKCk7XG4gICAgaWYgKCRyRGVmLmVycm9ycyA9PT0gZmFsc2UpIHtcbiAgICAgIG91dCArPSAnICcgKyAoJHZhbGlkKSArICcgPSAnO1xuICAgICAgaWYgKCRhc3luY0tleXdvcmQpIHtcbiAgICAgICAgb3V0ICs9ICdhd2FpdCAnO1xuICAgICAgfVxuICAgICAgb3V0ICs9ICcnICsgKGRlZl9jYWxsUnVsZVZhbGlkYXRlKSArICc7ICc7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICgkYXN5bmNLZXl3b3JkKSB7XG4gICAgICAgICRydWxlRXJycyA9ICdjdXN0b21FcnJvcnMnICsgJGx2bDtcbiAgICAgICAgb3V0ICs9ICcgdmFyICcgKyAoJHJ1bGVFcnJzKSArICcgPSBudWxsOyB0cnkgeyAnICsgKCR2YWxpZCkgKyAnID0gYXdhaXQgJyArIChkZWZfY2FsbFJ1bGVWYWxpZGF0ZSkgKyAnOyB9IGNhdGNoIChlKSB7ICcgKyAoJHZhbGlkKSArICcgPSBmYWxzZTsgaWYgKGUgaW5zdGFuY2VvZiBWYWxpZGF0aW9uRXJyb3IpICcgKyAoJHJ1bGVFcnJzKSArICcgPSBlLmVycm9yczsgZWxzZSB0aHJvdyBlOyB9ICc7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBvdXQgKz0gJyAnICsgKCRydWxlRXJycykgKyAnID0gbnVsbDsgJyArICgkdmFsaWQpICsgJyA9ICcgKyAoZGVmX2NhbGxSdWxlVmFsaWRhdGUpICsgJzsgJztcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgaWYgKCRyRGVmLm1vZGlmeWluZykge1xuICAgIG91dCArPSAnIGlmICgnICsgKCRwYXJlbnREYXRhKSArICcpICcgKyAoJGRhdGEpICsgJyA9ICcgKyAoJHBhcmVudERhdGEpICsgJ1snICsgKCRwYXJlbnREYXRhUHJvcGVydHkpICsgJ107JztcbiAgfVxuICBvdXQgKz0gJycgKyAoJGNsb3NpbmdCcmFjZXMpO1xuICBpZiAoJHJEZWYudmFsaWQpIHtcbiAgICBpZiAoJGJyZWFrT25FcnJvcikge1xuICAgICAgb3V0ICs9ICcgaWYgKHRydWUpIHsgJztcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgb3V0ICs9ICcgaWYgKCAnO1xuICAgIGlmICgkckRlZi52YWxpZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBvdXQgKz0gJyAhJztcbiAgICAgIGlmICgkbWFjcm8pIHtcbiAgICAgICAgb3V0ICs9ICcnICsgKCRuZXh0VmFsaWQpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgb3V0ICs9ICcnICsgKCR2YWxpZCk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIG91dCArPSAnICcgKyAoISRyRGVmLnZhbGlkKSArICcgJztcbiAgICB9XG4gICAgb3V0ICs9ICcpIHsgJztcbiAgICAkZXJyb3JLZXl3b3JkID0gJHJ1bGUua2V5d29yZDtcbiAgICB2YXIgJCRvdXRTdGFjayA9ICQkb3V0U3RhY2sgfHwgW107XG4gICAgJCRvdXRTdGFjay5wdXNoKG91dCk7XG4gICAgb3V0ID0gJyc7XG4gICAgdmFyICQkb3V0U3RhY2sgPSAkJG91dFN0YWNrIHx8IFtdO1xuICAgICQkb3V0U3RhY2sucHVzaChvdXQpO1xuICAgIG91dCA9ICcnOyAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIGlmIChpdC5jcmVhdGVFcnJvcnMgIT09IGZhbHNlKSB7XG4gICAgICBvdXQgKz0gJyB7IGtleXdvcmQ6IFxcJycgKyAoJGVycm9yS2V5d29yZCB8fCAnY3VzdG9tJykgKyAnXFwnICwgZGF0YVBhdGg6IChkYXRhUGF0aCB8fCBcXCdcXCcpICsgJyArIChpdC5lcnJvclBhdGgpICsgJyAsIHNjaGVtYVBhdGg6ICcgKyAoaXQudXRpbC50b1F1b3RlZFN0cmluZygkZXJyU2NoZW1hUGF0aCkpICsgJyAsIHBhcmFtczogeyBrZXl3b3JkOiBcXCcnICsgKCRydWxlLmtleXdvcmQpICsgJ1xcJyB9ICc7XG4gICAgICBpZiAoaXQub3B0cy5tZXNzYWdlcyAhPT0gZmFsc2UpIHtcbiAgICAgICAgb3V0ICs9ICcgLCBtZXNzYWdlOiBcXCdzaG91bGQgcGFzcyBcIicgKyAoJHJ1bGUua2V5d29yZCkgKyAnXCIga2V5d29yZCB2YWxpZGF0aW9uXFwnICc7XG4gICAgICB9XG4gICAgICBpZiAoaXQub3B0cy52ZXJib3NlKSB7XG4gICAgICAgIG91dCArPSAnICwgc2NoZW1hOiB2YWxpZGF0ZS5zY2hlbWEnICsgKCRzY2hlbWFQYXRoKSArICcgLCBwYXJlbnRTY2hlbWE6IHZhbGlkYXRlLnNjaGVtYScgKyAoaXQuc2NoZW1hUGF0aCkgKyAnICwgZGF0YTogJyArICgkZGF0YSkgKyAnICc7XG4gICAgICB9XG4gICAgICBvdXQgKz0gJyB9ICc7XG4gICAgfSBlbHNlIHtcbiAgICAgIG91dCArPSAnIHt9ICc7XG4gICAgfVxuICAgIHZhciBfX2VyciA9IG91dDtcbiAgICBvdXQgPSAkJG91dFN0YWNrLnBvcCgpO1xuICAgIGlmICghaXQuY29tcG9zaXRlUnVsZSAmJiAkYnJlYWtPbkVycm9yKSB7XG4gICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgaWYgKi9cbiAgICAgIGlmIChpdC5hc3luYykge1xuICAgICAgICBvdXQgKz0gJyB0aHJvdyBuZXcgVmFsaWRhdGlvbkVycm9yKFsnICsgKF9fZXJyKSArICddKTsgJztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG91dCArPSAnIHZhbGlkYXRlLmVycm9ycyA9IFsnICsgKF9fZXJyKSArICddOyByZXR1cm4gZmFsc2U7ICc7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIG91dCArPSAnIHZhciBlcnIgPSAnICsgKF9fZXJyKSArICc7ICBpZiAodkVycm9ycyA9PT0gbnVsbCkgdkVycm9ycyA9IFtlcnJdOyBlbHNlIHZFcnJvcnMucHVzaChlcnIpOyBlcnJvcnMrKzsgJztcbiAgICB9XG4gICAgdmFyIGRlZl9jdXN0b21FcnJvciA9IG91dDtcbiAgICBvdXQgPSAkJG91dFN0YWNrLnBvcCgpO1xuICAgIGlmICgkaW5saW5lKSB7XG4gICAgICBpZiAoJHJEZWYuZXJyb3JzKSB7XG4gICAgICAgIGlmICgkckRlZi5lcnJvcnMgIT0gJ2Z1bGwnKSB7XG4gICAgICAgICAgb3V0ICs9ICcgIGZvciAodmFyICcgKyAoJGkpICsgJz0nICsgKCRlcnJzKSArICc7ICcgKyAoJGkpICsgJzxlcnJvcnM7ICcgKyAoJGkpICsgJysrKSB7IHZhciAnICsgKCRydWxlRXJyKSArICcgPSB2RXJyb3JzWycgKyAoJGkpICsgJ107IGlmICgnICsgKCRydWxlRXJyKSArICcuZGF0YVBhdGggPT09IHVuZGVmaW5lZCkgJyArICgkcnVsZUVycikgKyAnLmRhdGFQYXRoID0gKGRhdGFQYXRoIHx8IFxcJ1xcJykgKyAnICsgKGl0LmVycm9yUGF0aCkgKyAnOyBpZiAoJyArICgkcnVsZUVycikgKyAnLnNjaGVtYVBhdGggPT09IHVuZGVmaW5lZCkgeyAnICsgKCRydWxlRXJyKSArICcuc2NoZW1hUGF0aCA9IFwiJyArICgkZXJyU2NoZW1hUGF0aCkgKyAnXCI7IH0gJztcbiAgICAgICAgICBpZiAoaXQub3B0cy52ZXJib3NlKSB7XG4gICAgICAgICAgICBvdXQgKz0gJyAnICsgKCRydWxlRXJyKSArICcuc2NoZW1hID0gJyArICgkc2NoZW1hVmFsdWUpICsgJzsgJyArICgkcnVsZUVycikgKyAnLmRhdGEgPSAnICsgKCRkYXRhKSArICc7ICc7XG4gICAgICAgICAgfVxuICAgICAgICAgIG91dCArPSAnIH0gJztcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKCRyRGVmLmVycm9ycyA9PT0gZmFsc2UpIHtcbiAgICAgICAgICBvdXQgKz0gJyAnICsgKGRlZl9jdXN0b21FcnJvcikgKyAnICc7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgb3V0ICs9ICcgaWYgKCcgKyAoJGVycnMpICsgJyA9PSBlcnJvcnMpIHsgJyArIChkZWZfY3VzdG9tRXJyb3IpICsgJyB9IGVsc2UgeyAgZm9yICh2YXIgJyArICgkaSkgKyAnPScgKyAoJGVycnMpICsgJzsgJyArICgkaSkgKyAnPGVycm9yczsgJyArICgkaSkgKyAnKyspIHsgdmFyICcgKyAoJHJ1bGVFcnIpICsgJyA9IHZFcnJvcnNbJyArICgkaSkgKyAnXTsgaWYgKCcgKyAoJHJ1bGVFcnIpICsgJy5kYXRhUGF0aCA9PT0gdW5kZWZpbmVkKSAnICsgKCRydWxlRXJyKSArICcuZGF0YVBhdGggPSAoZGF0YVBhdGggfHwgXFwnXFwnKSArICcgKyAoaXQuZXJyb3JQYXRoKSArICc7IGlmICgnICsgKCRydWxlRXJyKSArICcuc2NoZW1hUGF0aCA9PT0gdW5kZWZpbmVkKSB7ICcgKyAoJHJ1bGVFcnIpICsgJy5zY2hlbWFQYXRoID0gXCInICsgKCRlcnJTY2hlbWFQYXRoKSArICdcIjsgfSAnO1xuICAgICAgICAgIGlmIChpdC5vcHRzLnZlcmJvc2UpIHtcbiAgICAgICAgICAgIG91dCArPSAnICcgKyAoJHJ1bGVFcnIpICsgJy5zY2hlbWEgPSAnICsgKCRzY2hlbWFWYWx1ZSkgKyAnOyAnICsgKCRydWxlRXJyKSArICcuZGF0YSA9ICcgKyAoJGRhdGEpICsgJzsgJztcbiAgICAgICAgICB9XG4gICAgICAgICAgb3V0ICs9ICcgfSB9ICc7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKCRtYWNybykge1xuICAgICAgb3V0ICs9ICcgICB2YXIgZXJyID0gICAnOyAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgaWYgKGl0LmNyZWF0ZUVycm9ycyAhPT0gZmFsc2UpIHtcbiAgICAgICAgb3V0ICs9ICcgeyBrZXl3b3JkOiBcXCcnICsgKCRlcnJvcktleXdvcmQgfHwgJ2N1c3RvbScpICsgJ1xcJyAsIGRhdGFQYXRoOiAoZGF0YVBhdGggfHwgXFwnXFwnKSArICcgKyAoaXQuZXJyb3JQYXRoKSArICcgLCBzY2hlbWFQYXRoOiAnICsgKGl0LnV0aWwudG9RdW90ZWRTdHJpbmcoJGVyclNjaGVtYVBhdGgpKSArICcgLCBwYXJhbXM6IHsga2V5d29yZDogXFwnJyArICgkcnVsZS5rZXl3b3JkKSArICdcXCcgfSAnO1xuICAgICAgICBpZiAoaXQub3B0cy5tZXNzYWdlcyAhPT0gZmFsc2UpIHtcbiAgICAgICAgICBvdXQgKz0gJyAsIG1lc3NhZ2U6IFxcJ3Nob3VsZCBwYXNzIFwiJyArICgkcnVsZS5rZXl3b3JkKSArICdcIiBrZXl3b3JkIHZhbGlkYXRpb25cXCcgJztcbiAgICAgICAgfVxuICAgICAgICBpZiAoaXQub3B0cy52ZXJib3NlKSB7XG4gICAgICAgICAgb3V0ICs9ICcgLCBzY2hlbWE6IHZhbGlkYXRlLnNjaGVtYScgKyAoJHNjaGVtYVBhdGgpICsgJyAsIHBhcmVudFNjaGVtYTogdmFsaWRhdGUuc2NoZW1hJyArIChpdC5zY2hlbWFQYXRoKSArICcgLCBkYXRhOiAnICsgKCRkYXRhKSArICcgJztcbiAgICAgICAgfVxuICAgICAgICBvdXQgKz0gJyB9ICc7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBvdXQgKz0gJyB7fSAnO1xuICAgICAgfVxuICAgICAgb3V0ICs9ICc7ICBpZiAodkVycm9ycyA9PT0gbnVsbCkgdkVycm9ycyA9IFtlcnJdOyBlbHNlIHZFcnJvcnMucHVzaChlcnIpOyBlcnJvcnMrKzsgJztcbiAgICAgIGlmICghaXQuY29tcG9zaXRlUnVsZSAmJiAkYnJlYWtPbkVycm9yKSB7XG4gICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBpZiAqL1xuICAgICAgICBpZiAoaXQuYXN5bmMpIHtcbiAgICAgICAgICBvdXQgKz0gJyB0aHJvdyBuZXcgVmFsaWRhdGlvbkVycm9yKHZFcnJvcnMpOyAnO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIG91dCArPSAnIHZhbGlkYXRlLmVycm9ycyA9IHZFcnJvcnM7IHJldHVybiBmYWxzZTsgJztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoJHJEZWYuZXJyb3JzID09PSBmYWxzZSkge1xuICAgICAgICBvdXQgKz0gJyAnICsgKGRlZl9jdXN0b21FcnJvcikgKyAnICc7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBvdXQgKz0gJyBpZiAoQXJyYXkuaXNBcnJheSgnICsgKCRydWxlRXJycykgKyAnKSkgeyBpZiAodkVycm9ycyA9PT0gbnVsbCkgdkVycm9ycyA9ICcgKyAoJHJ1bGVFcnJzKSArICc7IGVsc2UgdkVycm9ycyA9IHZFcnJvcnMuY29uY2F0KCcgKyAoJHJ1bGVFcnJzKSArICcpOyBlcnJvcnMgPSB2RXJyb3JzLmxlbmd0aDsgIGZvciAodmFyICcgKyAoJGkpICsgJz0nICsgKCRlcnJzKSArICc7ICcgKyAoJGkpICsgJzxlcnJvcnM7ICcgKyAoJGkpICsgJysrKSB7IHZhciAnICsgKCRydWxlRXJyKSArICcgPSB2RXJyb3JzWycgKyAoJGkpICsgJ107IGlmICgnICsgKCRydWxlRXJyKSArICcuZGF0YVBhdGggPT09IHVuZGVmaW5lZCkgJyArICgkcnVsZUVycikgKyAnLmRhdGFQYXRoID0gKGRhdGFQYXRoIHx8IFxcJ1xcJykgKyAnICsgKGl0LmVycm9yUGF0aCkgKyAnOyAgJyArICgkcnVsZUVycikgKyAnLnNjaGVtYVBhdGggPSBcIicgKyAoJGVyclNjaGVtYVBhdGgpICsgJ1wiOyAgJztcbiAgICAgICAgaWYgKGl0Lm9wdHMudmVyYm9zZSkge1xuICAgICAgICAgIG91dCArPSAnICcgKyAoJHJ1bGVFcnIpICsgJy5zY2hlbWEgPSAnICsgKCRzY2hlbWFWYWx1ZSkgKyAnOyAnICsgKCRydWxlRXJyKSArICcuZGF0YSA9ICcgKyAoJGRhdGEpICsgJzsgJztcbiAgICAgICAgfVxuICAgICAgICBvdXQgKz0gJyB9IH0gZWxzZSB7ICcgKyAoZGVmX2N1c3RvbUVycm9yKSArICcgfSAnO1xuICAgICAgfVxuICAgIH1cbiAgICBvdXQgKz0gJyB9ICc7XG4gICAgaWYgKCRicmVha09uRXJyb3IpIHtcbiAgICAgIG91dCArPSAnIGVsc2UgeyAnO1xuICAgIH1cbiAgfVxuICByZXR1cm4gb3V0O1xufVxuIiwgIntcbiAgICBcIiRzY2hlbWFcIjogXCJodHRwOi8vanNvbi1zY2hlbWEub3JnL2RyYWZ0LTA3L3NjaGVtYSNcIixcbiAgICBcIiRpZFwiOiBcImh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvZHJhZnQtMDcvc2NoZW1hI1wiLFxuICAgIFwidGl0bGVcIjogXCJDb3JlIHNjaGVtYSBtZXRhLXNjaGVtYVwiLFxuICAgIFwiZGVmaW5pdGlvbnNcIjoge1xuICAgICAgICBcInNjaGVtYUFycmF5XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImFycmF5XCIsXG4gICAgICAgICAgICBcIm1pbkl0ZW1zXCI6IDEsXG4gICAgICAgICAgICBcIml0ZW1zXCI6IHsgXCIkcmVmXCI6IFwiI1wiIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJub25OZWdhdGl2ZUludGVnZXJcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiLFxuICAgICAgICAgICAgXCJtaW5pbXVtXCI6IDBcbiAgICAgICAgfSxcbiAgICAgICAgXCJub25OZWdhdGl2ZUludGVnZXJEZWZhdWx0MFwiOiB7XG4gICAgICAgICAgICBcImFsbE9mXCI6IFtcbiAgICAgICAgICAgICAgICB7IFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvbm9uTmVnYXRpdmVJbnRlZ2VyXCIgfSxcbiAgICAgICAgICAgICAgICB7IFwiZGVmYXVsdFwiOiAwIH1cbiAgICAgICAgICAgIF1cbiAgICAgICAgfSxcbiAgICAgICAgXCJzaW1wbGVUeXBlc1wiOiB7XG4gICAgICAgICAgICBcImVudW1cIjogW1xuICAgICAgICAgICAgICAgIFwiYXJyYXlcIixcbiAgICAgICAgICAgICAgICBcImJvb2xlYW5cIixcbiAgICAgICAgICAgICAgICBcImludGVnZXJcIixcbiAgICAgICAgICAgICAgICBcIm51bGxcIixcbiAgICAgICAgICAgICAgICBcIm51bWJlclwiLFxuICAgICAgICAgICAgICAgIFwib2JqZWN0XCIsXG4gICAgICAgICAgICAgICAgXCJzdHJpbmdcIlxuICAgICAgICAgICAgXVxuICAgICAgICB9LFxuICAgICAgICBcInN0cmluZ0FycmF5XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImFycmF5XCIsXG4gICAgICAgICAgICBcIml0ZW1zXCI6IHsgXCJ0eXBlXCI6IFwic3RyaW5nXCIgfSxcbiAgICAgICAgICAgIFwidW5pcXVlSXRlbXNcIjogdHJ1ZSxcbiAgICAgICAgICAgIFwiZGVmYXVsdFwiOiBbXVxuICAgICAgICB9XG4gICAgfSxcbiAgICBcInR5cGVcIjogW1wib2JqZWN0XCIsIFwiYm9vbGVhblwiXSxcbiAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICBcIiRpZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwiZm9ybWF0XCI6IFwidXJpLXJlZmVyZW5jZVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiJHNjaGVtYVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwiZm9ybWF0XCI6IFwidXJpXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCIkcmVmXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgXCJmb3JtYXRcIjogXCJ1cmktcmVmZXJlbmNlXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCIkY29tbWVudFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIlxuICAgICAgICB9LFxuICAgICAgICBcInRpdGxlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiZGVzY3JpcHRpb25cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJkZWZhdWx0XCI6IHRydWUsXG4gICAgICAgIFwicmVhZE9ubHlcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiLFxuICAgICAgICAgICAgXCJkZWZhdWx0XCI6IGZhbHNlXG4gICAgICAgIH0sXG4gICAgICAgIFwiZXhhbXBsZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYXJyYXlcIixcbiAgICAgICAgICAgIFwiaXRlbXNcIjogdHJ1ZVxuICAgICAgICB9LFxuICAgICAgICBcIm11bHRpcGxlT2ZcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibnVtYmVyXCIsXG4gICAgICAgICAgICBcImV4Y2x1c2l2ZU1pbmltdW1cIjogMFxuICAgICAgICB9LFxuICAgICAgICBcIm1heGltdW1cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibnVtYmVyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJleGNsdXNpdmVNYXhpbXVtXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcIm51bWJlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwibWluaW11bVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJudW1iZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcImV4Y2x1c2l2ZU1pbmltdW1cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibnVtYmVyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJtYXhMZW5ndGhcIjogeyBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL25vbk5lZ2F0aXZlSW50ZWdlclwiIH0sXG4gICAgICAgIFwibWluTGVuZ3RoXCI6IHsgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9ub25OZWdhdGl2ZUludGVnZXJEZWZhdWx0MFwiIH0sXG4gICAgICAgIFwicGF0dGVyblwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwiZm9ybWF0XCI6IFwicmVnZXhcIlxuICAgICAgICB9LFxuICAgICAgICBcImFkZGl0aW9uYWxJdGVtc1wiOiB7IFwiJHJlZlwiOiBcIiNcIiB9LFxuICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICAgIFwiYW55T2ZcIjogW1xuICAgICAgICAgICAgICAgIHsgXCIkcmVmXCI6IFwiI1wiIH0sXG4gICAgICAgICAgICAgICAgeyBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL3NjaGVtYUFycmF5XCIgfVxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIFwiZGVmYXVsdFwiOiB0cnVlXG4gICAgICAgIH0sXG4gICAgICAgIFwibWF4SXRlbXNcIjogeyBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL25vbk5lZ2F0aXZlSW50ZWdlclwiIH0sXG4gICAgICAgIFwibWluSXRlbXNcIjogeyBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL25vbk5lZ2F0aXZlSW50ZWdlckRlZmF1bHQwXCIgfSxcbiAgICAgICAgXCJ1bmlxdWVJdGVtc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCIsXG4gICAgICAgICAgICBcImRlZmF1bHRcIjogZmFsc2VcbiAgICAgICAgfSxcbiAgICAgICAgXCJjb250YWluc1wiOiB7IFwiJHJlZlwiOiBcIiNcIiB9LFxuICAgICAgICBcIm1heFByb3BlcnRpZXNcIjogeyBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL25vbk5lZ2F0aXZlSW50ZWdlclwiIH0sXG4gICAgICAgIFwibWluUHJvcGVydGllc1wiOiB7IFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvbm9uTmVnYXRpdmVJbnRlZ2VyRGVmYXVsdDBcIiB9LFxuICAgICAgICBcInJlcXVpcmVkXCI6IHsgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9zdHJpbmdBcnJheVwiIH0sXG4gICAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogeyBcIiRyZWZcIjogXCIjXCIgfSxcbiAgICAgICAgXCJkZWZpbml0aW9uc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgICAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogeyBcIiRyZWZcIjogXCIjXCIgfSxcbiAgICAgICAgICAgIFwiZGVmYXVsdFwiOiB7fVxuICAgICAgICB9LFxuICAgICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IHsgXCIkcmVmXCI6IFwiI1wiIH0sXG4gICAgICAgICAgICBcImRlZmF1bHRcIjoge31cbiAgICAgICAgfSxcbiAgICAgICAgXCJwYXR0ZXJuUHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgICAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogeyBcIiRyZWZcIjogXCIjXCIgfSxcbiAgICAgICAgICAgIFwicHJvcGVydHlOYW1lc1wiOiB7IFwiZm9ybWF0XCI6IFwicmVnZXhcIiB9LFxuICAgICAgICAgICAgXCJkZWZhdWx0XCI6IHt9XG4gICAgICAgIH0sXG4gICAgICAgIFwiZGVwZW5kZW5jaWVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJhbnlPZlwiOiBbXG4gICAgICAgICAgICAgICAgICAgIHsgXCIkcmVmXCI6IFwiI1wiIH0sXG4gICAgICAgICAgICAgICAgICAgIHsgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9zdHJpbmdBcnJheVwiIH1cbiAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwicHJvcGVydHlOYW1lc1wiOiB7IFwiJHJlZlwiOiBcIiNcIiB9LFxuICAgICAgICBcImNvbnN0XCI6IHRydWUsXG4gICAgICAgIFwiZW51bVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJhcnJheVwiLFxuICAgICAgICAgICAgXCJpdGVtc1wiOiB0cnVlLFxuICAgICAgICAgICAgXCJtaW5JdGVtc1wiOiAxLFxuICAgICAgICAgICAgXCJ1bmlxdWVJdGVtc1wiOiB0cnVlXG4gICAgICAgIH0sXG4gICAgICAgIFwidHlwZVwiOiB7XG4gICAgICAgICAgICBcImFueU9mXCI6IFtcbiAgICAgICAgICAgICAgICB7IFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvc2ltcGxlVHlwZXNcIiB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYXJyYXlcIixcbiAgICAgICAgICAgICAgICAgICAgXCJpdGVtc1wiOiB7IFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvc2ltcGxlVHlwZXNcIiB9LFxuICAgICAgICAgICAgICAgICAgICBcIm1pbkl0ZW1zXCI6IDEsXG4gICAgICAgICAgICAgICAgICAgIFwidW5pcXVlSXRlbXNcIjogdHJ1ZVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIF1cbiAgICAgICAgfSxcbiAgICAgICAgXCJmb3JtYXRcIjogeyBcInR5cGVcIjogXCJzdHJpbmdcIiB9LFxuICAgICAgICBcImNvbnRlbnRNZWRpYVR5cGVcIjogeyBcInR5cGVcIjogXCJzdHJpbmdcIiB9LFxuICAgICAgICBcImNvbnRlbnRFbmNvZGluZ1wiOiB7IFwidHlwZVwiOiBcInN0cmluZ1wiIH0sXG4gICAgICAgIFwiaWZcIjoge1wiJHJlZlwiOiBcIiNcIn0sXG4gICAgICAgIFwidGhlblwiOiB7XCIkcmVmXCI6IFwiI1wifSxcbiAgICAgICAgXCJlbHNlXCI6IHtcIiRyZWZcIjogXCIjXCJ9LFxuICAgICAgICBcImFsbE9mXCI6IHsgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9zY2hlbWFBcnJheVwiIH0sXG4gICAgICAgIFwiYW55T2ZcIjogeyBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL3NjaGVtYUFycmF5XCIgfSxcbiAgICAgICAgXCJvbmVPZlwiOiB7IFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvc2NoZW1hQXJyYXlcIiB9LFxuICAgICAgICBcIm5vdFwiOiB7IFwiJHJlZlwiOiBcIiNcIiB9XG4gICAgfSxcbiAgICBcImRlZmF1bHRcIjogdHJ1ZVxufVxuIiwgIid1c2Ugc3RyaWN0JztcblxudmFyIG1ldGFTY2hlbWEgPSByZXF1aXJlKCcuL3JlZnMvanNvbi1zY2hlbWEtZHJhZnQtMDcuanNvbicpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgJGlkOiAnaHR0cHM6Ly9naXRodWIuY29tL2Fqdi12YWxpZGF0b3IvYWp2L2Jsb2IvbWFzdGVyL2xpYi9kZWZpbml0aW9uX3NjaGVtYS5qcycsXG4gIGRlZmluaXRpb25zOiB7XG4gICAgc2ltcGxlVHlwZXM6IG1ldGFTY2hlbWEuZGVmaW5pdGlvbnMuc2ltcGxlVHlwZXNcbiAgfSxcbiAgdHlwZTogJ29iamVjdCcsXG4gIGRlcGVuZGVuY2llczoge1xuICAgIHNjaGVtYTogWyd2YWxpZGF0ZSddLFxuICAgICRkYXRhOiBbJ3ZhbGlkYXRlJ10sXG4gICAgc3RhdGVtZW50czogWydpbmxpbmUnXSxcbiAgICB2YWxpZDoge25vdDoge3JlcXVpcmVkOiBbJ21hY3JvJ119fVxuICB9LFxuICBwcm9wZXJ0aWVzOiB7XG4gICAgdHlwZTogbWV0YVNjaGVtYS5wcm9wZXJ0aWVzLnR5cGUsXG4gICAgc2NoZW1hOiB7dHlwZTogJ2Jvb2xlYW4nfSxcbiAgICBzdGF0ZW1lbnRzOiB7dHlwZTogJ2Jvb2xlYW4nfSxcbiAgICBkZXBlbmRlbmNpZXM6IHtcbiAgICAgIHR5cGU6ICdhcnJheScsXG4gICAgICBpdGVtczoge3R5cGU6ICdzdHJpbmcnfVxuICAgIH0sXG4gICAgbWV0YVNjaGVtYToge3R5cGU6ICdvYmplY3QnfSxcbiAgICBtb2RpZnlpbmc6IHt0eXBlOiAnYm9vbGVhbid9LFxuICAgIHZhbGlkOiB7dHlwZTogJ2Jvb2xlYW4nfSxcbiAgICAkZGF0YToge3R5cGU6ICdib29sZWFuJ30sXG4gICAgYXN5bmM6IHt0eXBlOiAnYm9vbGVhbid9LFxuICAgIGVycm9yczoge1xuICAgICAgYW55T2Y6IFtcbiAgICAgICAge3R5cGU6ICdib29sZWFuJ30sXG4gICAgICAgIHtjb25zdDogJ2Z1bGwnfVxuICAgICAgXVxuICAgIH1cbiAgfVxufTtcbiIsICIndXNlIHN0cmljdCc7XG5cbnZhciBJREVOVElGSUVSID0gL15bYS16XyRdW2EtejAtOV8kLV0qJC9pO1xudmFyIGN1c3RvbVJ1bGVDb2RlID0gcmVxdWlyZSgnLi9kb3Rqcy9jdXN0b20nKTtcbnZhciBkZWZpbml0aW9uU2NoZW1hID0gcmVxdWlyZSgnLi9kZWZpbml0aW9uX3NjaGVtYScpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgYWRkOiBhZGRLZXl3b3JkLFxuICBnZXQ6IGdldEtleXdvcmQsXG4gIHJlbW92ZTogcmVtb3ZlS2V5d29yZCxcbiAgdmFsaWRhdGU6IHZhbGlkYXRlS2V5d29yZFxufTtcblxuXG4vKipcbiAqIERlZmluZSBjdXN0b20ga2V5d29yZFxuICogQHRoaXMgIEFqdlxuICogQHBhcmFtIHtTdHJpbmd9IGtleXdvcmQgY3VzdG9tIGtleXdvcmQsIHNob3VsZCBiZSB1bmlxdWUgKGluY2x1ZGluZyBkaWZmZXJlbnQgZnJvbSBhbGwgc3RhbmRhcmQsIGN1c3RvbSBhbmQgbWFjcm8ga2V5d29yZHMpLlxuICogQHBhcmFtIHtPYmplY3R9IGRlZmluaXRpb24ga2V5d29yZCBkZWZpbml0aW9uIG9iamVjdCB3aXRoIHByb3BlcnRpZXMgYHR5cGVgICh0eXBlKHMpIHdoaWNoIHRoZSBrZXl3b3JkIGFwcGxpZXMgdG8pLCBgdmFsaWRhdGVgIG9yIGBjb21waWxlYC5cbiAqIEByZXR1cm4ge0Fqdn0gdGhpcyBmb3IgbWV0aG9kIGNoYWluaW5nXG4gKi9cbmZ1bmN0aW9uIGFkZEtleXdvcmQoa2V5d29yZCwgZGVmaW5pdGlvbikge1xuICAvKiBqc2hpbnQgdmFsaWR0aGlzOiB0cnVlICovXG4gIC8qIGVzbGludCBuby1zaGFkb3c6IDAgKi9cbiAgdmFyIFJVTEVTID0gdGhpcy5SVUxFUztcbiAgaWYgKFJVTEVTLmtleXdvcmRzW2tleXdvcmRdKVxuICAgIHRocm93IG5ldyBFcnJvcignS2V5d29yZCAnICsga2V5d29yZCArICcgaXMgYWxyZWFkeSBkZWZpbmVkJyk7XG5cbiAgaWYgKCFJREVOVElGSUVSLnRlc3Qoa2V5d29yZCkpXG4gICAgdGhyb3cgbmV3IEVycm9yKCdLZXl3b3JkICcgKyBrZXl3b3JkICsgJyBpcyBub3QgYSB2YWxpZCBpZGVudGlmaWVyJyk7XG5cbiAgaWYgKGRlZmluaXRpb24pIHtcbiAgICB0aGlzLnZhbGlkYXRlS2V5d29yZChkZWZpbml0aW9uLCB0cnVlKTtcblxuICAgIHZhciBkYXRhVHlwZSA9IGRlZmluaXRpb24udHlwZTtcbiAgICBpZiAoQXJyYXkuaXNBcnJheShkYXRhVHlwZSkpIHtcbiAgICAgIGZvciAodmFyIGk9MDsgaTxkYXRhVHlwZS5sZW5ndGg7IGkrKylcbiAgICAgICAgX2FkZFJ1bGUoa2V5d29yZCwgZGF0YVR5cGVbaV0sIGRlZmluaXRpb24pO1xuICAgIH0gZWxzZSB7XG4gICAgICBfYWRkUnVsZShrZXl3b3JkLCBkYXRhVHlwZSwgZGVmaW5pdGlvbik7XG4gICAgfVxuXG4gICAgdmFyIG1ldGFTY2hlbWEgPSBkZWZpbml0aW9uLm1ldGFTY2hlbWE7XG4gICAgaWYgKG1ldGFTY2hlbWEpIHtcbiAgICAgIGlmIChkZWZpbml0aW9uLiRkYXRhICYmIHRoaXMuX29wdHMuJGRhdGEpIHtcbiAgICAgICAgbWV0YVNjaGVtYSA9IHtcbiAgICAgICAgICBhbnlPZjogW1xuICAgICAgICAgICAgbWV0YVNjaGVtYSxcbiAgICAgICAgICAgIHsgJyRyZWYnOiAnaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2Fqdi12YWxpZGF0b3IvYWp2L21hc3Rlci9saWIvcmVmcy9kYXRhLmpzb24jJyB9XG4gICAgICAgICAgXVxuICAgICAgICB9O1xuICAgICAgfVxuICAgICAgZGVmaW5pdGlvbi52YWxpZGF0ZVNjaGVtYSA9IHRoaXMuY29tcGlsZShtZXRhU2NoZW1hLCB0cnVlKTtcbiAgICB9XG4gIH1cblxuICBSVUxFUy5rZXl3b3Jkc1trZXl3b3JkXSA9IFJVTEVTLmFsbFtrZXl3b3JkXSA9IHRydWU7XG5cblxuICBmdW5jdGlvbiBfYWRkUnVsZShrZXl3b3JkLCBkYXRhVHlwZSwgZGVmaW5pdGlvbikge1xuICAgIHZhciBydWxlR3JvdXA7XG4gICAgZm9yICh2YXIgaT0wOyBpPFJVTEVTLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgcmcgPSBSVUxFU1tpXTtcbiAgICAgIGlmIChyZy50eXBlID09IGRhdGFUeXBlKSB7XG4gICAgICAgIHJ1bGVHcm91cCA9IHJnO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoIXJ1bGVHcm91cCkge1xuICAgICAgcnVsZUdyb3VwID0geyB0eXBlOiBkYXRhVHlwZSwgcnVsZXM6IFtdIH07XG4gICAgICBSVUxFUy5wdXNoKHJ1bGVHcm91cCk7XG4gICAgfVxuXG4gICAgdmFyIHJ1bGUgPSB7XG4gICAgICBrZXl3b3JkOiBrZXl3b3JkLFxuICAgICAgZGVmaW5pdGlvbjogZGVmaW5pdGlvbixcbiAgICAgIGN1c3RvbTogdHJ1ZSxcbiAgICAgIGNvZGU6IGN1c3RvbVJ1bGVDb2RlLFxuICAgICAgaW1wbGVtZW50czogZGVmaW5pdGlvbi5pbXBsZW1lbnRzXG4gICAgfTtcbiAgICBydWxlR3JvdXAucnVsZXMucHVzaChydWxlKTtcbiAgICBSVUxFUy5jdXN0b21ba2V5d29yZF0gPSBydWxlO1xuICB9XG5cbiAgcmV0dXJuIHRoaXM7XG59XG5cblxuLyoqXG4gKiBHZXQga2V5d29yZFxuICogQHRoaXMgIEFqdlxuICogQHBhcmFtIHtTdHJpbmd9IGtleXdvcmQgcHJlLWRlZmluZWQgb3IgY3VzdG9tIGtleXdvcmQuXG4gKiBAcmV0dXJuIHtPYmplY3R8Qm9vbGVhbn0gY3VzdG9tIGtleXdvcmQgZGVmaW5pdGlvbiwgYHRydWVgIGlmIGl0IGlzIGEgcHJlZGVmaW5lZCBrZXl3b3JkLCBgZmFsc2VgIG90aGVyd2lzZS5cbiAqL1xuZnVuY3Rpb24gZ2V0S2V5d29yZChrZXl3b3JkKSB7XG4gIC8qIGpzaGludCB2YWxpZHRoaXM6IHRydWUgKi9cbiAgdmFyIHJ1bGUgPSB0aGlzLlJVTEVTLmN1c3RvbVtrZXl3b3JkXTtcbiAgcmV0dXJuIHJ1bGUgPyBydWxlLmRlZmluaXRpb24gOiB0aGlzLlJVTEVTLmtleXdvcmRzW2tleXdvcmRdIHx8IGZhbHNlO1xufVxuXG5cbi8qKlxuICogUmVtb3ZlIGtleXdvcmRcbiAqIEB0aGlzICBBanZcbiAqIEBwYXJhbSB7U3RyaW5nfSBrZXl3b3JkIHByZS1kZWZpbmVkIG9yIGN1c3RvbSBrZXl3b3JkLlxuICogQHJldHVybiB7QWp2fSB0aGlzIGZvciBtZXRob2QgY2hhaW5pbmdcbiAqL1xuZnVuY3Rpb24gcmVtb3ZlS2V5d29yZChrZXl3b3JkKSB7XG4gIC8qIGpzaGludCB2YWxpZHRoaXM6IHRydWUgKi9cbiAgdmFyIFJVTEVTID0gdGhpcy5SVUxFUztcbiAgZGVsZXRlIFJVTEVTLmtleXdvcmRzW2tleXdvcmRdO1xuICBkZWxldGUgUlVMRVMuYWxsW2tleXdvcmRdO1xuICBkZWxldGUgUlVMRVMuY3VzdG9tW2tleXdvcmRdO1xuICBmb3IgKHZhciBpPTA7IGk8UlVMRVMubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIgcnVsZXMgPSBSVUxFU1tpXS5ydWxlcztcbiAgICBmb3IgKHZhciBqPTA7IGo8cnVsZXMubGVuZ3RoOyBqKyspIHtcbiAgICAgIGlmIChydWxlc1tqXS5rZXl3b3JkID09IGtleXdvcmQpIHtcbiAgICAgICAgcnVsZXMuc3BsaWNlKGosIDEpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcmV0dXJuIHRoaXM7XG59XG5cblxuLyoqXG4gKiBWYWxpZGF0ZSBrZXl3b3JkIGRlZmluaXRpb25cbiAqIEB0aGlzICBBanZcbiAqIEBwYXJhbSB7T2JqZWN0fSBkZWZpbml0aW9uIGtleXdvcmQgZGVmaW5pdGlvbiBvYmplY3QuXG4gKiBAcGFyYW0ge0Jvb2xlYW59IHRocm93RXJyb3IgdHJ1ZSB0byB0aHJvdyBleGNlcHRpb24gaWYgZGVmaW5pdGlvbiBpcyBpbnZhbGlkXG4gKiBAcmV0dXJuIHtib29sZWFufSB2YWxpZGF0aW9uIHJlc3VsdFxuICovXG5mdW5jdGlvbiB2YWxpZGF0ZUtleXdvcmQoZGVmaW5pdGlvbiwgdGhyb3dFcnJvcikge1xuICB2YWxpZGF0ZUtleXdvcmQuZXJyb3JzID0gbnVsbDtcbiAgdmFyIHYgPSB0aGlzLl92YWxpZGF0ZUtleXdvcmQgPSB0aGlzLl92YWxpZGF0ZUtleXdvcmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8fCB0aGlzLmNvbXBpbGUoZGVmaW5pdGlvblNjaGVtYSwgdHJ1ZSk7XG5cbiAgaWYgKHYoZGVmaW5pdGlvbikpIHJldHVybiB0cnVlO1xuICB2YWxpZGF0ZUtleXdvcmQuZXJyb3JzID0gdi5lcnJvcnM7XG4gIGlmICh0aHJvd0Vycm9yKVxuICAgIHRocm93IG5ldyBFcnJvcignY3VzdG9tIGtleXdvcmQgZGVmaW5pdGlvbiBpcyBpbnZhbGlkOiAnICArIHRoaXMuZXJyb3JzVGV4dCh2LmVycm9ycykpO1xuICBlbHNlXG4gICAgcmV0dXJuIGZhbHNlO1xufVxuIiwgIntcbiAgICBcIiRzY2hlbWFcIjogXCJodHRwOi8vanNvbi1zY2hlbWEub3JnL2RyYWZ0LTA3L3NjaGVtYSNcIixcbiAgICBcIiRpZFwiOiBcImh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9hanYtdmFsaWRhdG9yL2Fqdi9tYXN0ZXIvbGliL3JlZnMvZGF0YS5qc29uI1wiLFxuICAgIFwiZGVzY3JpcHRpb25cIjogXCJNZXRhLXNjaGVtYSBmb3IgJGRhdGEgcmVmZXJlbmNlIChKU09OIFNjaGVtYSBleHRlbnNpb24gcHJvcG9zYWwpXCIsXG4gICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgXCJyZXF1aXJlZFwiOiBbIFwiJGRhdGFcIiBdLFxuICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgIFwiJGRhdGFcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImFueU9mXCI6IFtcbiAgICAgICAgICAgICAgICB7IFwiZm9ybWF0XCI6IFwicmVsYXRpdmUtanNvbi1wb2ludGVyXCIgfSwgXG4gICAgICAgICAgICAgICAgeyBcImZvcm1hdFwiOiBcImpzb24tcG9pbnRlclwiIH1cbiAgICAgICAgICAgIF1cbiAgICAgICAgfVxuICAgIH0sXG4gICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiBmYWxzZVxufVxuIiwgIid1c2Ugc3RyaWN0JztcblxudmFyIGNvbXBpbGVTY2hlbWEgPSByZXF1aXJlKCcuL2NvbXBpbGUnKVxuICAsIHJlc29sdmUgPSByZXF1aXJlKCcuL2NvbXBpbGUvcmVzb2x2ZScpXG4gICwgQ2FjaGUgPSByZXF1aXJlKCcuL2NhY2hlJylcbiAgLCBTY2hlbWFPYmplY3QgPSByZXF1aXJlKCcuL2NvbXBpbGUvc2NoZW1hX29iaicpXG4gICwgc3RhYmxlU3RyaW5naWZ5ID0gcmVxdWlyZSgnZmFzdC1qc29uLXN0YWJsZS1zdHJpbmdpZnknKVxuICAsIGZvcm1hdHMgPSByZXF1aXJlKCcuL2NvbXBpbGUvZm9ybWF0cycpXG4gICwgcnVsZXMgPSByZXF1aXJlKCcuL2NvbXBpbGUvcnVsZXMnKVxuICAsICRkYXRhTWV0YVNjaGVtYSA9IHJlcXVpcmUoJy4vZGF0YScpXG4gICwgdXRpbCA9IHJlcXVpcmUoJy4vY29tcGlsZS91dGlsJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gQWp2O1xuXG5BanYucHJvdG90eXBlLnZhbGlkYXRlID0gdmFsaWRhdGU7XG5BanYucHJvdG90eXBlLmNvbXBpbGUgPSBjb21waWxlO1xuQWp2LnByb3RvdHlwZS5hZGRTY2hlbWEgPSBhZGRTY2hlbWE7XG5BanYucHJvdG90eXBlLmFkZE1ldGFTY2hlbWEgPSBhZGRNZXRhU2NoZW1hO1xuQWp2LnByb3RvdHlwZS52YWxpZGF0ZVNjaGVtYSA9IHZhbGlkYXRlU2NoZW1hO1xuQWp2LnByb3RvdHlwZS5nZXRTY2hlbWEgPSBnZXRTY2hlbWE7XG5BanYucHJvdG90eXBlLnJlbW92ZVNjaGVtYSA9IHJlbW92ZVNjaGVtYTtcbkFqdi5wcm90b3R5cGUuYWRkRm9ybWF0ID0gYWRkRm9ybWF0O1xuQWp2LnByb3RvdHlwZS5lcnJvcnNUZXh0ID0gZXJyb3JzVGV4dDtcblxuQWp2LnByb3RvdHlwZS5fYWRkU2NoZW1hID0gX2FkZFNjaGVtYTtcbkFqdi5wcm90b3R5cGUuX2NvbXBpbGUgPSBfY29tcGlsZTtcblxuQWp2LnByb3RvdHlwZS5jb21waWxlQXN5bmMgPSByZXF1aXJlKCcuL2NvbXBpbGUvYXN5bmMnKTtcbnZhciBjdXN0b21LZXl3b3JkID0gcmVxdWlyZSgnLi9rZXl3b3JkJyk7XG5BanYucHJvdG90eXBlLmFkZEtleXdvcmQgPSBjdXN0b21LZXl3b3JkLmFkZDtcbkFqdi5wcm90b3R5cGUuZ2V0S2V5d29yZCA9IGN1c3RvbUtleXdvcmQuZ2V0O1xuQWp2LnByb3RvdHlwZS5yZW1vdmVLZXl3b3JkID0gY3VzdG9tS2V5d29yZC5yZW1vdmU7XG5BanYucHJvdG90eXBlLnZhbGlkYXRlS2V5d29yZCA9IGN1c3RvbUtleXdvcmQudmFsaWRhdGU7XG5cbnZhciBlcnJvckNsYXNzZXMgPSByZXF1aXJlKCcuL2NvbXBpbGUvZXJyb3JfY2xhc3NlcycpO1xuQWp2LlZhbGlkYXRpb25FcnJvciA9IGVycm9yQ2xhc3Nlcy5WYWxpZGF0aW9uO1xuQWp2Lk1pc3NpbmdSZWZFcnJvciA9IGVycm9yQ2xhc3Nlcy5NaXNzaW5nUmVmO1xuQWp2LiRkYXRhTWV0YVNjaGVtYSA9ICRkYXRhTWV0YVNjaGVtYTtcblxudmFyIE1FVEFfU0NIRU1BX0lEID0gJ2h0dHA6Ly9qc29uLXNjaGVtYS5vcmcvZHJhZnQtMDcvc2NoZW1hJztcblxudmFyIE1FVEFfSUdOT1JFX09QVElPTlMgPSBbICdyZW1vdmVBZGRpdGlvbmFsJywgJ3VzZURlZmF1bHRzJywgJ2NvZXJjZVR5cGVzJywgJ3N0cmljdERlZmF1bHRzJyBdO1xudmFyIE1FVEFfU1VQUE9SVF9EQVRBID0gWycvcHJvcGVydGllcyddO1xuXG4vKipcbiAqIENyZWF0ZXMgdmFsaWRhdG9yIGluc3RhbmNlLlxuICogVXNhZ2U6IGBBanYob3B0cylgXG4gKiBAcGFyYW0ge09iamVjdH0gb3B0cyBvcHRpb25hbCBvcHRpb25zXG4gKiBAcmV0dXJuIHtPYmplY3R9IGFqdiBpbnN0YW5jZVxuICovXG5mdW5jdGlvbiBBanYob3B0cykge1xuICBpZiAoISh0aGlzIGluc3RhbmNlb2YgQWp2KSkgcmV0dXJuIG5ldyBBanYob3B0cyk7XG4gIG9wdHMgPSB0aGlzLl9vcHRzID0gdXRpbC5jb3B5KG9wdHMpIHx8IHt9O1xuICBzZXRMb2dnZXIodGhpcyk7XG4gIHRoaXMuX3NjaGVtYXMgPSB7fTtcbiAgdGhpcy5fcmVmcyA9IHt9O1xuICB0aGlzLl9mcmFnbWVudHMgPSB7fTtcbiAgdGhpcy5fZm9ybWF0cyA9IGZvcm1hdHMob3B0cy5mb3JtYXQpO1xuXG4gIHRoaXMuX2NhY2hlID0gb3B0cy5jYWNoZSB8fCBuZXcgQ2FjaGU7XG4gIHRoaXMuX2xvYWRpbmdTY2hlbWFzID0ge307XG4gIHRoaXMuX2NvbXBpbGF0aW9ucyA9IFtdO1xuICB0aGlzLlJVTEVTID0gcnVsZXMoKTtcbiAgdGhpcy5fZ2V0SWQgPSBjaG9vc2VHZXRJZChvcHRzKTtcblxuICBvcHRzLmxvb3BSZXF1aXJlZCA9IG9wdHMubG9vcFJlcXVpcmVkIHx8IEluZmluaXR5O1xuICBpZiAob3B0cy5lcnJvckRhdGFQYXRoID09ICdwcm9wZXJ0eScpIG9wdHMuX2Vycm9yRGF0YVBhdGhQcm9wZXJ0eSA9IHRydWU7XG4gIGlmIChvcHRzLnNlcmlhbGl6ZSA9PT0gdW5kZWZpbmVkKSBvcHRzLnNlcmlhbGl6ZSA9IHN0YWJsZVN0cmluZ2lmeTtcbiAgdGhpcy5fbWV0YU9wdHMgPSBnZXRNZXRhU2NoZW1hT3B0aW9ucyh0aGlzKTtcblxuICBpZiAob3B0cy5mb3JtYXRzKSBhZGRJbml0aWFsRm9ybWF0cyh0aGlzKTtcbiAgaWYgKG9wdHMua2V5d29yZHMpIGFkZEluaXRpYWxLZXl3b3Jkcyh0aGlzKTtcbiAgYWRkRGVmYXVsdE1ldGFTY2hlbWEodGhpcyk7XG4gIGlmICh0eXBlb2Ygb3B0cy5tZXRhID09ICdvYmplY3QnKSB0aGlzLmFkZE1ldGFTY2hlbWEob3B0cy5tZXRhKTtcbiAgaWYgKG9wdHMubnVsbGFibGUpIHRoaXMuYWRkS2V5d29yZCgnbnVsbGFibGUnLCB7bWV0YVNjaGVtYToge3R5cGU6ICdib29sZWFuJ319KTtcbiAgYWRkSW5pdGlhbFNjaGVtYXModGhpcyk7XG59XG5cblxuXG4vKipcbiAqIFZhbGlkYXRlIGRhdGEgdXNpbmcgc2NoZW1hXG4gKiBTY2hlbWEgd2lsbCBiZSBjb21waWxlZCBhbmQgY2FjaGVkICh1c2luZyBzZXJpYWxpemVkIEpTT04gYXMga2V5LiBbZmFzdC1qc29uLXN0YWJsZS1zdHJpbmdpZnldKGh0dHBzOi8vZ2l0aHViLmNvbS9lcG9iZXJlemtpbi9mYXN0LWpzb24tc3RhYmxlLXN0cmluZ2lmeSkgaXMgdXNlZCB0byBzZXJpYWxpemUuXG4gKiBAdGhpcyAgIEFqdlxuICogQHBhcmFtICB7U3RyaW5nfE9iamVjdH0gc2NoZW1hS2V5UmVmIGtleSwgcmVmIG9yIHNjaGVtYSBvYmplY3RcbiAqIEBwYXJhbSAge0FueX0gZGF0YSB0byBiZSB2YWxpZGF0ZWRcbiAqIEByZXR1cm4ge0Jvb2xlYW59IHZhbGlkYXRpb24gcmVzdWx0LiBFcnJvcnMgZnJvbSB0aGUgbGFzdCB2YWxpZGF0aW9uIHdpbGwgYmUgYXZhaWxhYmxlIGluIGBhanYuZXJyb3JzYCAoYW5kIGFsc28gaW4gY29tcGlsZWQgc2NoZW1hOiBgc2NoZW1hLmVycm9yc2ApLlxuICovXG5mdW5jdGlvbiB2YWxpZGF0ZShzY2hlbWFLZXlSZWYsIGRhdGEpIHtcbiAgdmFyIHY7XG4gIGlmICh0eXBlb2Ygc2NoZW1hS2V5UmVmID09ICdzdHJpbmcnKSB7XG4gICAgdiA9IHRoaXMuZ2V0U2NoZW1hKHNjaGVtYUtleVJlZik7XG4gICAgaWYgKCF2KSB0aHJvdyBuZXcgRXJyb3IoJ25vIHNjaGVtYSB3aXRoIGtleSBvciByZWYgXCInICsgc2NoZW1hS2V5UmVmICsgJ1wiJyk7XG4gIH0gZWxzZSB7XG4gICAgdmFyIHNjaGVtYU9iaiA9IHRoaXMuX2FkZFNjaGVtYShzY2hlbWFLZXlSZWYpO1xuICAgIHYgPSBzY2hlbWFPYmoudmFsaWRhdGUgfHwgdGhpcy5fY29tcGlsZShzY2hlbWFPYmopO1xuICB9XG5cbiAgdmFyIHZhbGlkID0gdihkYXRhKTtcbiAgaWYgKHYuJGFzeW5jICE9PSB0cnVlKSB0aGlzLmVycm9ycyA9IHYuZXJyb3JzO1xuICByZXR1cm4gdmFsaWQ7XG59XG5cblxuLyoqXG4gKiBDcmVhdGUgdmFsaWRhdGluZyBmdW5jdGlvbiBmb3IgcGFzc2VkIHNjaGVtYS5cbiAqIEB0aGlzICAgQWp2XG4gKiBAcGFyYW0gIHtPYmplY3R9IHNjaGVtYSBzY2hlbWEgb2JqZWN0XG4gKiBAcGFyYW0gIHtCb29sZWFufSBfbWV0YSB0cnVlIGlmIHNjaGVtYSBpcyBhIG1ldGEtc2NoZW1hLiBVc2VkIGludGVybmFsbHkgdG8gY29tcGlsZSBtZXRhIHNjaGVtYXMgb2YgY3VzdG9tIGtleXdvcmRzLlxuICogQHJldHVybiB7RnVuY3Rpb259IHZhbGlkYXRpbmcgZnVuY3Rpb25cbiAqL1xuZnVuY3Rpb24gY29tcGlsZShzY2hlbWEsIF9tZXRhKSB7XG4gIHZhciBzY2hlbWFPYmogPSB0aGlzLl9hZGRTY2hlbWEoc2NoZW1hLCB1bmRlZmluZWQsIF9tZXRhKTtcbiAgcmV0dXJuIHNjaGVtYU9iai52YWxpZGF0ZSB8fCB0aGlzLl9jb21waWxlKHNjaGVtYU9iaik7XG59XG5cblxuLyoqXG4gKiBBZGRzIHNjaGVtYSB0byB0aGUgaW5zdGFuY2UuXG4gKiBAdGhpcyAgIEFqdlxuICogQHBhcmFtIHtPYmplY3R8QXJyYXl9IHNjaGVtYSBzY2hlbWEgb3IgYXJyYXkgb2Ygc2NoZW1hcy4gSWYgYXJyYXkgaXMgcGFzc2VkLCBga2V5YCBhbmQgb3RoZXIgcGFyYW1ldGVycyB3aWxsIGJlIGlnbm9yZWQuXG4gKiBAcGFyYW0ge1N0cmluZ30ga2V5IE9wdGlvbmFsIHNjaGVtYSBrZXkuIENhbiBiZSBwYXNzZWQgdG8gYHZhbGlkYXRlYCBtZXRob2QgaW5zdGVhZCBvZiBzY2hlbWEgb2JqZWN0IG9yIGlkL3JlZi4gT25lIHNjaGVtYSBwZXIgaW5zdGFuY2UgY2FuIGhhdmUgZW1wdHkgYGlkYCBhbmQgYGtleWAuXG4gKiBAcGFyYW0ge0Jvb2xlYW59IF9za2lwVmFsaWRhdGlvbiB0cnVlIHRvIHNraXAgc2NoZW1hIHZhbGlkYXRpb24uIFVzZWQgaW50ZXJuYWxseSwgb3B0aW9uIHZhbGlkYXRlU2NoZW1hIHNob3VsZCBiZSB1c2VkIGluc3RlYWQuXG4gKiBAcGFyYW0ge0Jvb2xlYW59IF9tZXRhIHRydWUgaWYgc2NoZW1hIGlzIGEgbWV0YS1zY2hlbWEuIFVzZWQgaW50ZXJuYWxseSwgYWRkTWV0YVNjaGVtYSBzaG91bGQgYmUgdXNlZCBpbnN0ZWFkLlxuICogQHJldHVybiB7QWp2fSB0aGlzIGZvciBtZXRob2QgY2hhaW5pbmdcbiAqL1xuZnVuY3Rpb24gYWRkU2NoZW1hKHNjaGVtYSwga2V5LCBfc2tpcFZhbGlkYXRpb24sIF9tZXRhKSB7XG4gIGlmIChBcnJheS5pc0FycmF5KHNjaGVtYSkpe1xuICAgIGZvciAodmFyIGk9MDsgaTxzY2hlbWEubGVuZ3RoOyBpKyspIHRoaXMuYWRkU2NoZW1hKHNjaGVtYVtpXSwgdW5kZWZpbmVkLCBfc2tpcFZhbGlkYXRpb24sIF9tZXRhKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuICB2YXIgaWQgPSB0aGlzLl9nZXRJZChzY2hlbWEpO1xuICBpZiAoaWQgIT09IHVuZGVmaW5lZCAmJiB0eXBlb2YgaWQgIT0gJ3N0cmluZycpXG4gICAgdGhyb3cgbmV3IEVycm9yKCdzY2hlbWEgaWQgbXVzdCBiZSBzdHJpbmcnKTtcbiAga2V5ID0gcmVzb2x2ZS5ub3JtYWxpemVJZChrZXkgfHwgaWQpO1xuICBjaGVja1VuaXF1ZSh0aGlzLCBrZXkpO1xuICB0aGlzLl9zY2hlbWFzW2tleV0gPSB0aGlzLl9hZGRTY2hlbWEoc2NoZW1hLCBfc2tpcFZhbGlkYXRpb24sIF9tZXRhLCB0cnVlKTtcbiAgcmV0dXJuIHRoaXM7XG59XG5cblxuLyoqXG4gKiBBZGQgc2NoZW1hIHRoYXQgd2lsbCBiZSB1c2VkIHRvIHZhbGlkYXRlIG90aGVyIHNjaGVtYXNcbiAqIG9wdGlvbnMgaW4gTUVUQV9JR05PUkVfT1BUSU9OUyBhcmUgYWx3YXkgc2V0IHRvIGZhbHNlXG4gKiBAdGhpcyAgIEFqdlxuICogQHBhcmFtIHtPYmplY3R9IHNjaGVtYSBzY2hlbWEgb2JqZWN0XG4gKiBAcGFyYW0ge1N0cmluZ30ga2V5IG9wdGlvbmFsIHNjaGVtYSBrZXlcbiAqIEBwYXJhbSB7Qm9vbGVhbn0gc2tpcFZhbGlkYXRpb24gdHJ1ZSB0byBza2lwIHNjaGVtYSB2YWxpZGF0aW9uLCBjYW4gYmUgdXNlZCB0byBvdmVycmlkZSB2YWxpZGF0ZVNjaGVtYSBvcHRpb24gZm9yIG1ldGEtc2NoZW1hXG4gKiBAcmV0dXJuIHtBanZ9IHRoaXMgZm9yIG1ldGhvZCBjaGFpbmluZ1xuICovXG5mdW5jdGlvbiBhZGRNZXRhU2NoZW1hKHNjaGVtYSwga2V5LCBza2lwVmFsaWRhdGlvbikge1xuICB0aGlzLmFkZFNjaGVtYShzY2hlbWEsIGtleSwgc2tpcFZhbGlkYXRpb24sIHRydWUpO1xuICByZXR1cm4gdGhpcztcbn1cblxuXG4vKipcbiAqIFZhbGlkYXRlIHNjaGVtYVxuICogQHRoaXMgICBBanZcbiAqIEBwYXJhbSB7T2JqZWN0fSBzY2hlbWEgc2NoZW1hIHRvIHZhbGlkYXRlXG4gKiBAcGFyYW0ge0Jvb2xlYW59IHRocm93T3JMb2dFcnJvciBwYXNzIHRydWUgdG8gdGhyb3cgKG9yIGxvZykgYW4gZXJyb3IgaWYgaW52YWxpZFxuICogQHJldHVybiB7Qm9vbGVhbn0gdHJ1ZSBpZiBzY2hlbWEgaXMgdmFsaWRcbiAqL1xuZnVuY3Rpb24gdmFsaWRhdGVTY2hlbWEoc2NoZW1hLCB0aHJvd09yTG9nRXJyb3IpIHtcbiAgdmFyICRzY2hlbWEgPSBzY2hlbWEuJHNjaGVtYTtcbiAgaWYgKCRzY2hlbWEgIT09IHVuZGVmaW5lZCAmJiB0eXBlb2YgJHNjaGVtYSAhPSAnc3RyaW5nJylcbiAgICB0aHJvdyBuZXcgRXJyb3IoJyRzY2hlbWEgbXVzdCBiZSBhIHN0cmluZycpO1xuICAkc2NoZW1hID0gJHNjaGVtYSB8fCB0aGlzLl9vcHRzLmRlZmF1bHRNZXRhIHx8IGRlZmF1bHRNZXRhKHRoaXMpO1xuICBpZiAoISRzY2hlbWEpIHtcbiAgICB0aGlzLmxvZ2dlci53YXJuKCdtZXRhLXNjaGVtYSBub3QgYXZhaWxhYmxlJyk7XG4gICAgdGhpcy5lcnJvcnMgPSBudWxsO1xuICAgIHJldHVybiB0cnVlO1xuICB9XG4gIHZhciB2YWxpZCA9IHRoaXMudmFsaWRhdGUoJHNjaGVtYSwgc2NoZW1hKTtcbiAgaWYgKCF2YWxpZCAmJiB0aHJvd09yTG9nRXJyb3IpIHtcbiAgICB2YXIgbWVzc2FnZSA9ICdzY2hlbWEgaXMgaW52YWxpZDogJyArIHRoaXMuZXJyb3JzVGV4dCgpO1xuICAgIGlmICh0aGlzLl9vcHRzLnZhbGlkYXRlU2NoZW1hID09ICdsb2cnKSB0aGlzLmxvZ2dlci5lcnJvcihtZXNzYWdlKTtcbiAgICBlbHNlIHRocm93IG5ldyBFcnJvcihtZXNzYWdlKTtcbiAgfVxuICByZXR1cm4gdmFsaWQ7XG59XG5cblxuZnVuY3Rpb24gZGVmYXVsdE1ldGEoc2VsZikge1xuICB2YXIgbWV0YSA9IHNlbGYuX29wdHMubWV0YTtcbiAgc2VsZi5fb3B0cy5kZWZhdWx0TWV0YSA9IHR5cGVvZiBtZXRhID09ICdvYmplY3QnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBzZWxmLl9nZXRJZChtZXRhKSB8fCBtZXRhXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBzZWxmLmdldFNjaGVtYShNRVRBX1NDSEVNQV9JRClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gTUVUQV9TQ0hFTUFfSURcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogdW5kZWZpbmVkO1xuICByZXR1cm4gc2VsZi5fb3B0cy5kZWZhdWx0TWV0YTtcbn1cblxuXG4vKipcbiAqIEdldCBjb21waWxlZCBzY2hlbWEgZnJvbSB0aGUgaW5zdGFuY2UgYnkgYGtleWAgb3IgYHJlZmAuXG4gKiBAdGhpcyAgIEFqdlxuICogQHBhcmFtICB7U3RyaW5nfSBrZXlSZWYgYGtleWAgdGhhdCB3YXMgcGFzc2VkIHRvIGBhZGRTY2hlbWFgIG9yIGZ1bGwgc2NoZW1hIHJlZmVyZW5jZSAoYHNjaGVtYS5pZGAgb3IgcmVzb2x2ZWQgaWQpLlxuICogQHJldHVybiB7RnVuY3Rpb259IHNjaGVtYSB2YWxpZGF0aW5nIGZ1bmN0aW9uICh3aXRoIHByb3BlcnR5IGBzY2hlbWFgKS5cbiAqL1xuZnVuY3Rpb24gZ2V0U2NoZW1hKGtleVJlZikge1xuICB2YXIgc2NoZW1hT2JqID0gX2dldFNjaGVtYU9iaih0aGlzLCBrZXlSZWYpO1xuICBzd2l0Y2ggKHR5cGVvZiBzY2hlbWFPYmopIHtcbiAgICBjYXNlICdvYmplY3QnOiByZXR1cm4gc2NoZW1hT2JqLnZhbGlkYXRlIHx8IHRoaXMuX2NvbXBpbGUoc2NoZW1hT2JqKTtcbiAgICBjYXNlICdzdHJpbmcnOiByZXR1cm4gdGhpcy5nZXRTY2hlbWEoc2NoZW1hT2JqKTtcbiAgICBjYXNlICd1bmRlZmluZWQnOiByZXR1cm4gX2dldFNjaGVtYUZyYWdtZW50KHRoaXMsIGtleVJlZik7XG4gIH1cbn1cblxuXG5mdW5jdGlvbiBfZ2V0U2NoZW1hRnJhZ21lbnQoc2VsZiwgcmVmKSB7XG4gIHZhciByZXMgPSByZXNvbHZlLnNjaGVtYS5jYWxsKHNlbGYsIHsgc2NoZW1hOiB7fSB9LCByZWYpO1xuICBpZiAocmVzKSB7XG4gICAgdmFyIHNjaGVtYSA9IHJlcy5zY2hlbWFcbiAgICAgICwgcm9vdCA9IHJlcy5yb290XG4gICAgICAsIGJhc2VJZCA9IHJlcy5iYXNlSWQ7XG4gICAgdmFyIHYgPSBjb21waWxlU2NoZW1hLmNhbGwoc2VsZiwgc2NoZW1hLCByb290LCB1bmRlZmluZWQsIGJhc2VJZCk7XG4gICAgc2VsZi5fZnJhZ21lbnRzW3JlZl0gPSBuZXcgU2NoZW1hT2JqZWN0KHtcbiAgICAgIHJlZjogcmVmLFxuICAgICAgZnJhZ21lbnQ6IHRydWUsXG4gICAgICBzY2hlbWE6IHNjaGVtYSxcbiAgICAgIHJvb3Q6IHJvb3QsXG4gICAgICBiYXNlSWQ6IGJhc2VJZCxcbiAgICAgIHZhbGlkYXRlOiB2XG4gICAgfSk7XG4gICAgcmV0dXJuIHY7XG4gIH1cbn1cblxuXG5mdW5jdGlvbiBfZ2V0U2NoZW1hT2JqKHNlbGYsIGtleVJlZikge1xuICBrZXlSZWYgPSByZXNvbHZlLm5vcm1hbGl6ZUlkKGtleVJlZik7XG4gIHJldHVybiBzZWxmLl9zY2hlbWFzW2tleVJlZl0gfHwgc2VsZi5fcmVmc1trZXlSZWZdIHx8IHNlbGYuX2ZyYWdtZW50c1trZXlSZWZdO1xufVxuXG5cbi8qKlxuICogUmVtb3ZlIGNhY2hlZCBzY2hlbWEocykuXG4gKiBJZiBubyBwYXJhbWV0ZXIgaXMgcGFzc2VkIGFsbCBzY2hlbWFzIGJ1dCBtZXRhLXNjaGVtYXMgYXJlIHJlbW92ZWQuXG4gKiBJZiBSZWdFeHAgaXMgcGFzc2VkIGFsbCBzY2hlbWFzIHdpdGgga2V5L2lkIG1hdGNoaW5nIHBhdHRlcm4gYnV0IG1ldGEtc2NoZW1hcyBhcmUgcmVtb3ZlZC5cbiAqIEV2ZW4gaWYgc2NoZW1hIGlzIHJlZmVyZW5jZWQgYnkgb3RoZXIgc2NoZW1hcyBpdCBzdGlsbCBjYW4gYmUgcmVtb3ZlZCBhcyBvdGhlciBzY2hlbWFzIGhhdmUgbG9jYWwgcmVmZXJlbmNlcy5cbiAqIEB0aGlzICAgQWp2XG4gKiBAcGFyYW0gIHtTdHJpbmd8T2JqZWN0fFJlZ0V4cH0gc2NoZW1hS2V5UmVmIGtleSwgcmVmLCBwYXR0ZXJuIHRvIG1hdGNoIGtleS9yZWYgb3Igc2NoZW1hIG9iamVjdFxuICogQHJldHVybiB7QWp2fSB0aGlzIGZvciBtZXRob2QgY2hhaW5pbmdcbiAqL1xuZnVuY3Rpb24gcmVtb3ZlU2NoZW1hKHNjaGVtYUtleVJlZikge1xuICBpZiAoc2NoZW1hS2V5UmVmIGluc3RhbmNlb2YgUmVnRXhwKSB7XG4gICAgX3JlbW92ZUFsbFNjaGVtYXModGhpcywgdGhpcy5fc2NoZW1hcywgc2NoZW1hS2V5UmVmKTtcbiAgICBfcmVtb3ZlQWxsU2NoZW1hcyh0aGlzLCB0aGlzLl9yZWZzLCBzY2hlbWFLZXlSZWYpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG4gIHN3aXRjaCAodHlwZW9mIHNjaGVtYUtleVJlZikge1xuICAgIGNhc2UgJ3VuZGVmaW5lZCc6XG4gICAgICBfcmVtb3ZlQWxsU2NoZW1hcyh0aGlzLCB0aGlzLl9zY2hlbWFzKTtcbiAgICAgIF9yZW1vdmVBbGxTY2hlbWFzKHRoaXMsIHRoaXMuX3JlZnMpO1xuICAgICAgdGhpcy5fY2FjaGUuY2xlYXIoKTtcbiAgICAgIHJldHVybiB0aGlzO1xuICAgIGNhc2UgJ3N0cmluZyc6XG4gICAgICB2YXIgc2NoZW1hT2JqID0gX2dldFNjaGVtYU9iaih0aGlzLCBzY2hlbWFLZXlSZWYpO1xuICAgICAgaWYgKHNjaGVtYU9iaikgdGhpcy5fY2FjaGUuZGVsKHNjaGVtYU9iai5jYWNoZUtleSk7XG4gICAgICBkZWxldGUgdGhpcy5fc2NoZW1hc1tzY2hlbWFLZXlSZWZdO1xuICAgICAgZGVsZXRlIHRoaXMuX3JlZnNbc2NoZW1hS2V5UmVmXTtcbiAgICAgIHJldHVybiB0aGlzO1xuICAgIGNhc2UgJ29iamVjdCc6XG4gICAgICB2YXIgc2VyaWFsaXplID0gdGhpcy5fb3B0cy5zZXJpYWxpemU7XG4gICAgICB2YXIgY2FjaGVLZXkgPSBzZXJpYWxpemUgPyBzZXJpYWxpemUoc2NoZW1hS2V5UmVmKSA6IHNjaGVtYUtleVJlZjtcbiAgICAgIHRoaXMuX2NhY2hlLmRlbChjYWNoZUtleSk7XG4gICAgICB2YXIgaWQgPSB0aGlzLl9nZXRJZChzY2hlbWFLZXlSZWYpO1xuICAgICAgaWYgKGlkKSB7XG4gICAgICAgIGlkID0gcmVzb2x2ZS5ub3JtYWxpemVJZChpZCk7XG4gICAgICAgIGRlbGV0ZSB0aGlzLl9zY2hlbWFzW2lkXTtcbiAgICAgICAgZGVsZXRlIHRoaXMuX3JlZnNbaWRdO1xuICAgICAgfVxuICB9XG4gIHJldHVybiB0aGlzO1xufVxuXG5cbmZ1bmN0aW9uIF9yZW1vdmVBbGxTY2hlbWFzKHNlbGYsIHNjaGVtYXMsIHJlZ2V4KSB7XG4gIGZvciAodmFyIGtleVJlZiBpbiBzY2hlbWFzKSB7XG4gICAgdmFyIHNjaGVtYU9iaiA9IHNjaGVtYXNba2V5UmVmXTtcbiAgICBpZiAoIXNjaGVtYU9iai5tZXRhICYmICghcmVnZXggfHwgcmVnZXgudGVzdChrZXlSZWYpKSkge1xuICAgICAgc2VsZi5fY2FjaGUuZGVsKHNjaGVtYU9iai5jYWNoZUtleSk7XG4gICAgICBkZWxldGUgc2NoZW1hc1trZXlSZWZdO1xuICAgIH1cbiAgfVxufVxuXG5cbi8qIEB0aGlzICAgQWp2ICovXG5mdW5jdGlvbiBfYWRkU2NoZW1hKHNjaGVtYSwgc2tpcFZhbGlkYXRpb24sIG1ldGEsIHNob3VsZEFkZFNjaGVtYSkge1xuICBpZiAodHlwZW9mIHNjaGVtYSAhPSAnb2JqZWN0JyAmJiB0eXBlb2Ygc2NoZW1hICE9ICdib29sZWFuJylcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ3NjaGVtYSBzaG91bGQgYmUgb2JqZWN0IG9yIGJvb2xlYW4nKTtcbiAgdmFyIHNlcmlhbGl6ZSA9IHRoaXMuX29wdHMuc2VyaWFsaXplO1xuICB2YXIgY2FjaGVLZXkgPSBzZXJpYWxpemUgPyBzZXJpYWxpemUoc2NoZW1hKSA6IHNjaGVtYTtcbiAgdmFyIGNhY2hlZCA9IHRoaXMuX2NhY2hlLmdldChjYWNoZUtleSk7XG4gIGlmIChjYWNoZWQpIHJldHVybiBjYWNoZWQ7XG5cbiAgc2hvdWxkQWRkU2NoZW1hID0gc2hvdWxkQWRkU2NoZW1hIHx8IHRoaXMuX29wdHMuYWRkVXNlZFNjaGVtYSAhPT0gZmFsc2U7XG5cbiAgdmFyIGlkID0gcmVzb2x2ZS5ub3JtYWxpemVJZCh0aGlzLl9nZXRJZChzY2hlbWEpKTtcbiAgaWYgKGlkICYmIHNob3VsZEFkZFNjaGVtYSkgY2hlY2tVbmlxdWUodGhpcywgaWQpO1xuXG4gIHZhciB3aWxsVmFsaWRhdGUgPSB0aGlzLl9vcHRzLnZhbGlkYXRlU2NoZW1hICE9PSBmYWxzZSAmJiAhc2tpcFZhbGlkYXRpb247XG4gIHZhciByZWN1cnNpdmVNZXRhO1xuICBpZiAod2lsbFZhbGlkYXRlICYmICEocmVjdXJzaXZlTWV0YSA9IGlkICYmIGlkID09IHJlc29sdmUubm9ybWFsaXplSWQoc2NoZW1hLiRzY2hlbWEpKSlcbiAgICB0aGlzLnZhbGlkYXRlU2NoZW1hKHNjaGVtYSwgdHJ1ZSk7XG5cbiAgdmFyIGxvY2FsUmVmcyA9IHJlc29sdmUuaWRzLmNhbGwodGhpcywgc2NoZW1hKTtcblxuICB2YXIgc2NoZW1hT2JqID0gbmV3IFNjaGVtYU9iamVjdCh7XG4gICAgaWQ6IGlkLFxuICAgIHNjaGVtYTogc2NoZW1hLFxuICAgIGxvY2FsUmVmczogbG9jYWxSZWZzLFxuICAgIGNhY2hlS2V5OiBjYWNoZUtleSxcbiAgICBtZXRhOiBtZXRhXG4gIH0pO1xuXG4gIGlmIChpZFswXSAhPSAnIycgJiYgc2hvdWxkQWRkU2NoZW1hKSB0aGlzLl9yZWZzW2lkXSA9IHNjaGVtYU9iajtcbiAgdGhpcy5fY2FjaGUucHV0KGNhY2hlS2V5LCBzY2hlbWFPYmopO1xuXG4gIGlmICh3aWxsVmFsaWRhdGUgJiYgcmVjdXJzaXZlTWV0YSkgdGhpcy52YWxpZGF0ZVNjaGVtYShzY2hlbWEsIHRydWUpO1xuXG4gIHJldHVybiBzY2hlbWFPYmo7XG59XG5cblxuLyogQHRoaXMgICBBanYgKi9cbmZ1bmN0aW9uIF9jb21waWxlKHNjaGVtYU9iaiwgcm9vdCkge1xuICBpZiAoc2NoZW1hT2JqLmNvbXBpbGluZykge1xuICAgIHNjaGVtYU9iai52YWxpZGF0ZSA9IGNhbGxWYWxpZGF0ZTtcbiAgICBjYWxsVmFsaWRhdGUuc2NoZW1hID0gc2NoZW1hT2JqLnNjaGVtYTtcbiAgICBjYWxsVmFsaWRhdGUuZXJyb3JzID0gbnVsbDtcbiAgICBjYWxsVmFsaWRhdGUucm9vdCA9IHJvb3QgPyByb290IDogY2FsbFZhbGlkYXRlO1xuICAgIGlmIChzY2hlbWFPYmouc2NoZW1hLiRhc3luYyA9PT0gdHJ1ZSlcbiAgICAgIGNhbGxWYWxpZGF0ZS4kYXN5bmMgPSB0cnVlO1xuICAgIHJldHVybiBjYWxsVmFsaWRhdGU7XG4gIH1cbiAgc2NoZW1hT2JqLmNvbXBpbGluZyA9IHRydWU7XG5cbiAgdmFyIGN1cnJlbnRPcHRzO1xuICBpZiAoc2NoZW1hT2JqLm1ldGEpIHtcbiAgICBjdXJyZW50T3B0cyA9IHRoaXMuX29wdHM7XG4gICAgdGhpcy5fb3B0cyA9IHRoaXMuX21ldGFPcHRzO1xuICB9XG5cbiAgdmFyIHY7XG4gIHRyeSB7IHYgPSBjb21waWxlU2NoZW1hLmNhbGwodGhpcywgc2NoZW1hT2JqLnNjaGVtYSwgcm9vdCwgc2NoZW1hT2JqLmxvY2FsUmVmcyk7IH1cbiAgY2F0Y2goZSkge1xuICAgIGRlbGV0ZSBzY2hlbWFPYmoudmFsaWRhdGU7XG4gICAgdGhyb3cgZTtcbiAgfVxuICBmaW5hbGx5IHtcbiAgICBzY2hlbWFPYmouY29tcGlsaW5nID0gZmFsc2U7XG4gICAgaWYgKHNjaGVtYU9iai5tZXRhKSB0aGlzLl9vcHRzID0gY3VycmVudE9wdHM7XG4gIH1cblxuICBzY2hlbWFPYmoudmFsaWRhdGUgPSB2O1xuICBzY2hlbWFPYmoucmVmcyA9IHYucmVmcztcbiAgc2NoZW1hT2JqLnJlZlZhbCA9IHYucmVmVmFsO1xuICBzY2hlbWFPYmoucm9vdCA9IHYucm9vdDtcbiAgcmV0dXJuIHY7XG5cblxuICAvKiBAdGhpcyAgIHsqfSAtIGN1c3RvbSBjb250ZXh0LCBzZWUgcGFzc0NvbnRleHQgb3B0aW9uICovXG4gIGZ1bmN0aW9uIGNhbGxWYWxpZGF0ZSgpIHtcbiAgICAvKiBqc2hpbnQgdmFsaWR0aGlzOiB0cnVlICovXG4gICAgdmFyIF92YWxpZGF0ZSA9IHNjaGVtYU9iai52YWxpZGF0ZTtcbiAgICB2YXIgcmVzdWx0ID0gX3ZhbGlkYXRlLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gICAgY2FsbFZhbGlkYXRlLmVycm9ycyA9IF92YWxpZGF0ZS5lcnJvcnM7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxufVxuXG5cbmZ1bmN0aW9uIGNob29zZUdldElkKG9wdHMpIHtcbiAgc3dpdGNoIChvcHRzLnNjaGVtYUlkKSB7XG4gICAgY2FzZSAnYXV0byc6IHJldHVybiBfZ2V0JElkT3JJZDtcbiAgICBjYXNlICdpZCc6IHJldHVybiBfZ2V0SWQ7XG4gICAgZGVmYXVsdDogcmV0dXJuIF9nZXQkSWQ7XG4gIH1cbn1cblxuLyogQHRoaXMgICBBanYgKi9cbmZ1bmN0aW9uIF9nZXRJZChzY2hlbWEpIHtcbiAgaWYgKHNjaGVtYS4kaWQpIHRoaXMubG9nZ2VyLndhcm4oJ3NjaGVtYSAkaWQgaWdub3JlZCcsIHNjaGVtYS4kaWQpO1xuICByZXR1cm4gc2NoZW1hLmlkO1xufVxuXG4vKiBAdGhpcyAgIEFqdiAqL1xuZnVuY3Rpb24gX2dldCRJZChzY2hlbWEpIHtcbiAgaWYgKHNjaGVtYS5pZCkgdGhpcy5sb2dnZXIud2Fybignc2NoZW1hIGlkIGlnbm9yZWQnLCBzY2hlbWEuaWQpO1xuICByZXR1cm4gc2NoZW1hLiRpZDtcbn1cblxuXG5mdW5jdGlvbiBfZ2V0JElkT3JJZChzY2hlbWEpIHtcbiAgaWYgKHNjaGVtYS4kaWQgJiYgc2NoZW1hLmlkICYmIHNjaGVtYS4kaWQgIT0gc2NoZW1hLmlkKVxuICAgIHRocm93IG5ldyBFcnJvcignc2NoZW1hICRpZCBpcyBkaWZmZXJlbnQgZnJvbSBpZCcpO1xuICByZXR1cm4gc2NoZW1hLiRpZCB8fCBzY2hlbWEuaWQ7XG59XG5cblxuLyoqXG4gKiBDb252ZXJ0IGFycmF5IG9mIGVycm9yIG1lc3NhZ2Ugb2JqZWN0cyB0byBzdHJpbmdcbiAqIEB0aGlzICAgQWp2XG4gKiBAcGFyYW0gIHtBcnJheTxPYmplY3Q+fSBlcnJvcnMgb3B0aW9uYWwgYXJyYXkgb2YgdmFsaWRhdGlvbiBlcnJvcnMsIGlmIG5vdCBwYXNzZWQgZXJyb3JzIGZyb20gdGhlIGluc3RhbmNlIGFyZSB1c2VkLlxuICogQHBhcmFtICB7T2JqZWN0fSBvcHRpb25zIG9wdGlvbmFsIG9wdGlvbnMgd2l0aCBwcm9wZXJ0aWVzIGBzZXBhcmF0b3JgIGFuZCBgZGF0YVZhcmAuXG4gKiBAcmV0dXJuIHtTdHJpbmd9IGh1bWFuIHJlYWRhYmxlIHN0cmluZyB3aXRoIGFsbCBlcnJvcnMgZGVzY3JpcHRpb25zXG4gKi9cbmZ1bmN0aW9uIGVycm9yc1RleHQoZXJyb3JzLCBvcHRpb25zKSB7XG4gIGVycm9ycyA9IGVycm9ycyB8fCB0aGlzLmVycm9ycztcbiAgaWYgKCFlcnJvcnMpIHJldHVybiAnTm8gZXJyb3JzJztcbiAgb3B0aW9ucyA9IG9wdGlvbnMgfHwge307XG4gIHZhciBzZXBhcmF0b3IgPSBvcHRpb25zLnNlcGFyYXRvciA9PT0gdW5kZWZpbmVkID8gJywgJyA6IG9wdGlvbnMuc2VwYXJhdG9yO1xuICB2YXIgZGF0YVZhciA9IG9wdGlvbnMuZGF0YVZhciA9PT0gdW5kZWZpbmVkID8gJ2RhdGEnIDogb3B0aW9ucy5kYXRhVmFyO1xuXG4gIHZhciB0ZXh0ID0gJyc7XG4gIGZvciAodmFyIGk9MDsgaTxlcnJvcnMubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIgZSA9IGVycm9yc1tpXTtcbiAgICBpZiAoZSkgdGV4dCArPSBkYXRhVmFyICsgZS5kYXRhUGF0aCArICcgJyArIGUubWVzc2FnZSArIHNlcGFyYXRvcjtcbiAgfVxuICByZXR1cm4gdGV4dC5zbGljZSgwLCAtc2VwYXJhdG9yLmxlbmd0aCk7XG59XG5cblxuLyoqXG4gKiBBZGQgY3VzdG9tIGZvcm1hdFxuICogQHRoaXMgICBBanZcbiAqIEBwYXJhbSB7U3RyaW5nfSBuYW1lIGZvcm1hdCBuYW1lXG4gKiBAcGFyYW0ge1N0cmluZ3xSZWdFeHB8RnVuY3Rpb259IGZvcm1hdCBzdHJpbmcgaXMgY29udmVydGVkIHRvIFJlZ0V4cDsgZnVuY3Rpb24gc2hvdWxkIHJldHVybiBib29sZWFuICh0cnVlIHdoZW4gdmFsaWQpXG4gKiBAcmV0dXJuIHtBanZ9IHRoaXMgZm9yIG1ldGhvZCBjaGFpbmluZ1xuICovXG5mdW5jdGlvbiBhZGRGb3JtYXQobmFtZSwgZm9ybWF0KSB7XG4gIGlmICh0eXBlb2YgZm9ybWF0ID09ICdzdHJpbmcnKSBmb3JtYXQgPSBuZXcgUmVnRXhwKGZvcm1hdCk7XG4gIHRoaXMuX2Zvcm1hdHNbbmFtZV0gPSBmb3JtYXQ7XG4gIHJldHVybiB0aGlzO1xufVxuXG5cbmZ1bmN0aW9uIGFkZERlZmF1bHRNZXRhU2NoZW1hKHNlbGYpIHtcbiAgdmFyICRkYXRhU2NoZW1hO1xuICBpZiAoc2VsZi5fb3B0cy4kZGF0YSkge1xuICAgICRkYXRhU2NoZW1hID0gcmVxdWlyZSgnLi9yZWZzL2RhdGEuanNvbicpO1xuICAgIHNlbGYuYWRkTWV0YVNjaGVtYSgkZGF0YVNjaGVtYSwgJGRhdGFTY2hlbWEuJGlkLCB0cnVlKTtcbiAgfVxuICBpZiAoc2VsZi5fb3B0cy5tZXRhID09PSBmYWxzZSkgcmV0dXJuO1xuICB2YXIgbWV0YVNjaGVtYSA9IHJlcXVpcmUoJy4vcmVmcy9qc29uLXNjaGVtYS1kcmFmdC0wNy5qc29uJyk7XG4gIGlmIChzZWxmLl9vcHRzLiRkYXRhKSBtZXRhU2NoZW1hID0gJGRhdGFNZXRhU2NoZW1hKG1ldGFTY2hlbWEsIE1FVEFfU1VQUE9SVF9EQVRBKTtcbiAgc2VsZi5hZGRNZXRhU2NoZW1hKG1ldGFTY2hlbWEsIE1FVEFfU0NIRU1BX0lELCB0cnVlKTtcbiAgc2VsZi5fcmVmc1snaHR0cDovL2pzb24tc2NoZW1hLm9yZy9zY2hlbWEnXSA9IE1FVEFfU0NIRU1BX0lEO1xufVxuXG5cbmZ1bmN0aW9uIGFkZEluaXRpYWxTY2hlbWFzKHNlbGYpIHtcbiAgdmFyIG9wdHNTY2hlbWFzID0gc2VsZi5fb3B0cy5zY2hlbWFzO1xuICBpZiAoIW9wdHNTY2hlbWFzKSByZXR1cm47XG4gIGlmIChBcnJheS5pc0FycmF5KG9wdHNTY2hlbWFzKSkgc2VsZi5hZGRTY2hlbWEob3B0c1NjaGVtYXMpO1xuICBlbHNlIGZvciAodmFyIGtleSBpbiBvcHRzU2NoZW1hcykgc2VsZi5hZGRTY2hlbWEob3B0c1NjaGVtYXNba2V5XSwga2V5KTtcbn1cblxuXG5mdW5jdGlvbiBhZGRJbml0aWFsRm9ybWF0cyhzZWxmKSB7XG4gIGZvciAodmFyIG5hbWUgaW4gc2VsZi5fb3B0cy5mb3JtYXRzKSB7XG4gICAgdmFyIGZvcm1hdCA9IHNlbGYuX29wdHMuZm9ybWF0c1tuYW1lXTtcbiAgICBzZWxmLmFkZEZvcm1hdChuYW1lLCBmb3JtYXQpO1xuICB9XG59XG5cblxuZnVuY3Rpb24gYWRkSW5pdGlhbEtleXdvcmRzKHNlbGYpIHtcbiAgZm9yICh2YXIgbmFtZSBpbiBzZWxmLl9vcHRzLmtleXdvcmRzKSB7XG4gICAgdmFyIGtleXdvcmQgPSBzZWxmLl9vcHRzLmtleXdvcmRzW25hbWVdO1xuICAgIHNlbGYuYWRkS2V5d29yZChuYW1lLCBrZXl3b3JkKTtcbiAgfVxufVxuXG5cbmZ1bmN0aW9uIGNoZWNrVW5pcXVlKHNlbGYsIGlkKSB7XG4gIGlmIChzZWxmLl9zY2hlbWFzW2lkXSB8fCBzZWxmLl9yZWZzW2lkXSlcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ3NjaGVtYSB3aXRoIGtleSBvciBpZCBcIicgKyBpZCArICdcIiBhbHJlYWR5IGV4aXN0cycpO1xufVxuXG5cbmZ1bmN0aW9uIGdldE1ldGFTY2hlbWFPcHRpb25zKHNlbGYpIHtcbiAgdmFyIG1ldGFPcHRzID0gdXRpbC5jb3B5KHNlbGYuX29wdHMpO1xuICBmb3IgKHZhciBpPTA7IGk8TUVUQV9JR05PUkVfT1BUSU9OUy5sZW5ndGg7IGkrKylcbiAgICBkZWxldGUgbWV0YU9wdHNbTUVUQV9JR05PUkVfT1BUSU9OU1tpXV07XG4gIHJldHVybiBtZXRhT3B0cztcbn1cblxuXG5mdW5jdGlvbiBzZXRMb2dnZXIoc2VsZikge1xuICB2YXIgbG9nZ2VyID0gc2VsZi5fb3B0cy5sb2dnZXI7XG4gIGlmIChsb2dnZXIgPT09IGZhbHNlKSB7XG4gICAgc2VsZi5sb2dnZXIgPSB7bG9nOiBub29wLCB3YXJuOiBub29wLCBlcnJvcjogbm9vcH07XG4gIH0gZWxzZSB7XG4gICAgaWYgKGxvZ2dlciA9PT0gdW5kZWZpbmVkKSBsb2dnZXIgPSBjb25zb2xlO1xuICAgIGlmICghKHR5cGVvZiBsb2dnZXIgPT0gJ29iamVjdCcgJiYgbG9nZ2VyLmxvZyAmJiBsb2dnZXIud2FybiAmJiBsb2dnZXIuZXJyb3IpKVxuICAgICAgdGhyb3cgbmV3IEVycm9yKCdsb2dnZXIgbXVzdCBpbXBsZW1lbnQgbG9nLCB3YXJuIGFuZCBlcnJvciBtZXRob2RzJyk7XG4gICAgc2VsZi5sb2dnZXIgPSBsb2dnZXI7XG4gIH1cbn1cblxuXG5mdW5jdGlvbiBub29wKCkge31cbiIsIG51bGwsICIndXNlIHN0cmljdCc7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGJpbmQoZm4sIHRoaXNBcmcpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIHdyYXAoKSB7XG4gICAgcmV0dXJuIGZuLmFwcGx5KHRoaXNBcmcsIGFyZ3VtZW50cyk7XG4gIH07XG59XG4iLCAiJ3VzZSBzdHJpY3QnO1xuXG5pbXBvcnQgYmluZCBmcm9tICcuL2hlbHBlcnMvYmluZC5qcyc7XG5cbi8vIHV0aWxzIGlzIGEgbGlicmFyeSBvZiBnZW5lcmljIGhlbHBlciBmdW5jdGlvbnMgbm9uLXNwZWNpZmljIHRvIGF4aW9zXG5cbmNvbnN0IHt0b1N0cmluZ30gPSBPYmplY3QucHJvdG90eXBlO1xuY29uc3Qge2dldFByb3RvdHlwZU9mfSA9IE9iamVjdDtcblxuY29uc3Qga2luZE9mID0gKGNhY2hlID0+IHRoaW5nID0+IHtcbiAgICBjb25zdCBzdHIgPSB0b1N0cmluZy5jYWxsKHRoaW5nKTtcbiAgICByZXR1cm4gY2FjaGVbc3RyXSB8fCAoY2FjaGVbc3RyXSA9IHN0ci5zbGljZSg4LCAtMSkudG9Mb3dlckNhc2UoKSk7XG59KShPYmplY3QuY3JlYXRlKG51bGwpKTtcblxuY29uc3Qga2luZE9mVGVzdCA9ICh0eXBlKSA9PiB7XG4gIHR5cGUgPSB0eXBlLnRvTG93ZXJDYXNlKCk7XG4gIHJldHVybiAodGhpbmcpID0+IGtpbmRPZih0aGluZykgPT09IHR5cGVcbn1cblxuY29uc3QgdHlwZU9mVGVzdCA9IHR5cGUgPT4gdGhpbmcgPT4gdHlwZW9mIHRoaW5nID09PSB0eXBlO1xuXG4vKipcbiAqIERldGVybWluZSBpZiBhIHZhbHVlIGlzIGFuIEFycmF5XG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHZhbCBUaGUgdmFsdWUgdG8gdGVzdFxuICpcbiAqIEByZXR1cm5zIHtib29sZWFufSBUcnVlIGlmIHZhbHVlIGlzIGFuIEFycmF5LCBvdGhlcndpc2UgZmFsc2VcbiAqL1xuY29uc3Qge2lzQXJyYXl9ID0gQXJyYXk7XG5cbi8qKlxuICogRGV0ZXJtaW5lIGlmIGEgdmFsdWUgaXMgdW5kZWZpbmVkXG4gKlxuICogQHBhcmFtIHsqfSB2YWwgVGhlIHZhbHVlIHRvIHRlc3RcbiAqXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gVHJ1ZSBpZiB0aGUgdmFsdWUgaXMgdW5kZWZpbmVkLCBvdGhlcndpc2UgZmFsc2VcbiAqL1xuY29uc3QgaXNVbmRlZmluZWQgPSB0eXBlT2ZUZXN0KCd1bmRlZmluZWQnKTtcblxuLyoqXG4gKiBEZXRlcm1pbmUgaWYgYSB2YWx1ZSBpcyBhIEJ1ZmZlclxuICpcbiAqIEBwYXJhbSB7Kn0gdmFsIFRoZSB2YWx1ZSB0byB0ZXN0XG4gKlxuICogQHJldHVybnMge2Jvb2xlYW59IFRydWUgaWYgdmFsdWUgaXMgYSBCdWZmZXIsIG90aGVyd2lzZSBmYWxzZVxuICovXG5mdW5jdGlvbiBpc0J1ZmZlcih2YWwpIHtcbiAgcmV0dXJuIHZhbCAhPT0gbnVsbCAmJiAhaXNVbmRlZmluZWQodmFsKSAmJiB2YWwuY29uc3RydWN0b3IgIT09IG51bGwgJiYgIWlzVW5kZWZpbmVkKHZhbC5jb25zdHJ1Y3RvcilcbiAgICAmJiBpc0Z1bmN0aW9uKHZhbC5jb25zdHJ1Y3Rvci5pc0J1ZmZlcikgJiYgdmFsLmNvbnN0cnVjdG9yLmlzQnVmZmVyKHZhbCk7XG59XG5cbi8qKlxuICogRGV0ZXJtaW5lIGlmIGEgdmFsdWUgaXMgYW4gQXJyYXlCdWZmZXJcbiAqXG4gKiBAcGFyYW0geyp9IHZhbCBUaGUgdmFsdWUgdG8gdGVzdFxuICpcbiAqIEByZXR1cm5zIHtib29sZWFufSBUcnVlIGlmIHZhbHVlIGlzIGFuIEFycmF5QnVmZmVyLCBvdGhlcndpc2UgZmFsc2VcbiAqL1xuY29uc3QgaXNBcnJheUJ1ZmZlciA9IGtpbmRPZlRlc3QoJ0FycmF5QnVmZmVyJyk7XG5cblxuLyoqXG4gKiBEZXRlcm1pbmUgaWYgYSB2YWx1ZSBpcyBhIHZpZXcgb24gYW4gQXJyYXlCdWZmZXJcbiAqXG4gKiBAcGFyYW0geyp9IHZhbCBUaGUgdmFsdWUgdG8gdGVzdFxuICpcbiAqIEByZXR1cm5zIHtib29sZWFufSBUcnVlIGlmIHZhbHVlIGlzIGEgdmlldyBvbiBhbiBBcnJheUJ1ZmZlciwgb3RoZXJ3aXNlIGZhbHNlXG4gKi9cbmZ1bmN0aW9uIGlzQXJyYXlCdWZmZXJWaWV3KHZhbCkge1xuICBsZXQgcmVzdWx0O1xuICBpZiAoKHR5cGVvZiBBcnJheUJ1ZmZlciAhPT0gJ3VuZGVmaW5lZCcpICYmIChBcnJheUJ1ZmZlci5pc1ZpZXcpKSB7XG4gICAgcmVzdWx0ID0gQXJyYXlCdWZmZXIuaXNWaWV3KHZhbCk7XG4gIH0gZWxzZSB7XG4gICAgcmVzdWx0ID0gKHZhbCkgJiYgKHZhbC5idWZmZXIpICYmIChpc0FycmF5QnVmZmVyKHZhbC5idWZmZXIpKTtcbiAgfVxuICByZXR1cm4gcmVzdWx0O1xufVxuXG4vKipcbiAqIERldGVybWluZSBpZiBhIHZhbHVlIGlzIGEgU3RyaW5nXG4gKlxuICogQHBhcmFtIHsqfSB2YWwgVGhlIHZhbHVlIHRvIHRlc3RcbiAqXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gVHJ1ZSBpZiB2YWx1ZSBpcyBhIFN0cmluZywgb3RoZXJ3aXNlIGZhbHNlXG4gKi9cbmNvbnN0IGlzU3RyaW5nID0gdHlwZU9mVGVzdCgnc3RyaW5nJyk7XG5cbi8qKlxuICogRGV0ZXJtaW5lIGlmIGEgdmFsdWUgaXMgYSBGdW5jdGlvblxuICpcbiAqIEBwYXJhbSB7Kn0gdmFsIFRoZSB2YWx1ZSB0byB0ZXN0XG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gVHJ1ZSBpZiB2YWx1ZSBpcyBhIEZ1bmN0aW9uLCBvdGhlcndpc2UgZmFsc2VcbiAqL1xuY29uc3QgaXNGdW5jdGlvbiA9IHR5cGVPZlRlc3QoJ2Z1bmN0aW9uJyk7XG5cbi8qKlxuICogRGV0ZXJtaW5lIGlmIGEgdmFsdWUgaXMgYSBOdW1iZXJcbiAqXG4gKiBAcGFyYW0geyp9IHZhbCBUaGUgdmFsdWUgdG8gdGVzdFxuICpcbiAqIEByZXR1cm5zIHtib29sZWFufSBUcnVlIGlmIHZhbHVlIGlzIGEgTnVtYmVyLCBvdGhlcndpc2UgZmFsc2VcbiAqL1xuY29uc3QgaXNOdW1iZXIgPSB0eXBlT2ZUZXN0KCdudW1iZXInKTtcblxuLyoqXG4gKiBEZXRlcm1pbmUgaWYgYSB2YWx1ZSBpcyBhbiBPYmplY3RcbiAqXG4gKiBAcGFyYW0geyp9IHRoaW5nIFRoZSB2YWx1ZSB0byB0ZXN0XG4gKlxuICogQHJldHVybnMge2Jvb2xlYW59IFRydWUgaWYgdmFsdWUgaXMgYW4gT2JqZWN0LCBvdGhlcndpc2UgZmFsc2VcbiAqL1xuY29uc3QgaXNPYmplY3QgPSAodGhpbmcpID0+IHRoaW5nICE9PSBudWxsICYmIHR5cGVvZiB0aGluZyA9PT0gJ29iamVjdCc7XG5cbi8qKlxuICogRGV0ZXJtaW5lIGlmIGEgdmFsdWUgaXMgYSBCb29sZWFuXG4gKlxuICogQHBhcmFtIHsqfSB0aGluZyBUaGUgdmFsdWUgdG8gdGVzdFxuICogQHJldHVybnMge2Jvb2xlYW59IFRydWUgaWYgdmFsdWUgaXMgYSBCb29sZWFuLCBvdGhlcndpc2UgZmFsc2VcbiAqL1xuY29uc3QgaXNCb29sZWFuID0gdGhpbmcgPT4gdGhpbmcgPT09IHRydWUgfHwgdGhpbmcgPT09IGZhbHNlO1xuXG4vKipcbiAqIERldGVybWluZSBpZiBhIHZhbHVlIGlzIGEgcGxhaW4gT2JqZWN0XG4gKlxuICogQHBhcmFtIHsqfSB2YWwgVGhlIHZhbHVlIHRvIHRlc3RcbiAqXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gVHJ1ZSBpZiB2YWx1ZSBpcyBhIHBsYWluIE9iamVjdCwgb3RoZXJ3aXNlIGZhbHNlXG4gKi9cbmNvbnN0IGlzUGxhaW5PYmplY3QgPSAodmFsKSA9PiB7XG4gIGlmIChraW5kT2YodmFsKSAhPT0gJ29iamVjdCcpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBjb25zdCBwcm90b3R5cGUgPSBnZXRQcm90b3R5cGVPZih2YWwpO1xuICByZXR1cm4gKHByb3RvdHlwZSA9PT0gbnVsbCB8fCBwcm90b3R5cGUgPT09IE9iamVjdC5wcm90b3R5cGUgfHwgT2JqZWN0LmdldFByb3RvdHlwZU9mKHByb3RvdHlwZSkgPT09IG51bGwpICYmICEoU3ltYm9sLnRvU3RyaW5nVGFnIGluIHZhbCkgJiYgIShTeW1ib2wuaXRlcmF0b3IgaW4gdmFsKTtcbn1cblxuLyoqXG4gKiBEZXRlcm1pbmUgaWYgYSB2YWx1ZSBpcyBhIERhdGVcbiAqXG4gKiBAcGFyYW0geyp9IHZhbCBUaGUgdmFsdWUgdG8gdGVzdFxuICpcbiAqIEByZXR1cm5zIHtib29sZWFufSBUcnVlIGlmIHZhbHVlIGlzIGEgRGF0ZSwgb3RoZXJ3aXNlIGZhbHNlXG4gKi9cbmNvbnN0IGlzRGF0ZSA9IGtpbmRPZlRlc3QoJ0RhdGUnKTtcblxuLyoqXG4gKiBEZXRlcm1pbmUgaWYgYSB2YWx1ZSBpcyBhIEZpbGVcbiAqXG4gKiBAcGFyYW0geyp9IHZhbCBUaGUgdmFsdWUgdG8gdGVzdFxuICpcbiAqIEByZXR1cm5zIHtib29sZWFufSBUcnVlIGlmIHZhbHVlIGlzIGEgRmlsZSwgb3RoZXJ3aXNlIGZhbHNlXG4gKi9cbmNvbnN0IGlzRmlsZSA9IGtpbmRPZlRlc3QoJ0ZpbGUnKTtcblxuLyoqXG4gKiBEZXRlcm1pbmUgaWYgYSB2YWx1ZSBpcyBhIEJsb2JcbiAqXG4gKiBAcGFyYW0geyp9IHZhbCBUaGUgdmFsdWUgdG8gdGVzdFxuICpcbiAqIEByZXR1cm5zIHtib29sZWFufSBUcnVlIGlmIHZhbHVlIGlzIGEgQmxvYiwgb3RoZXJ3aXNlIGZhbHNlXG4gKi9cbmNvbnN0IGlzQmxvYiA9IGtpbmRPZlRlc3QoJ0Jsb2InKTtcblxuLyoqXG4gKiBEZXRlcm1pbmUgaWYgYSB2YWx1ZSBpcyBhIEZpbGVMaXN0XG4gKlxuICogQHBhcmFtIHsqfSB2YWwgVGhlIHZhbHVlIHRvIHRlc3RcbiAqXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gVHJ1ZSBpZiB2YWx1ZSBpcyBhIEZpbGUsIG90aGVyd2lzZSBmYWxzZVxuICovXG5jb25zdCBpc0ZpbGVMaXN0ID0ga2luZE9mVGVzdCgnRmlsZUxpc3QnKTtcblxuLyoqXG4gKiBEZXRlcm1pbmUgaWYgYSB2YWx1ZSBpcyBhIFN0cmVhbVxuICpcbiAqIEBwYXJhbSB7Kn0gdmFsIFRoZSB2YWx1ZSB0byB0ZXN0XG4gKlxuICogQHJldHVybnMge2Jvb2xlYW59IFRydWUgaWYgdmFsdWUgaXMgYSBTdHJlYW0sIG90aGVyd2lzZSBmYWxzZVxuICovXG5jb25zdCBpc1N0cmVhbSA9ICh2YWwpID0+IGlzT2JqZWN0KHZhbCkgJiYgaXNGdW5jdGlvbih2YWwucGlwZSk7XG5cbi8qKlxuICogRGV0ZXJtaW5lIGlmIGEgdmFsdWUgaXMgYSBGb3JtRGF0YVxuICpcbiAqIEBwYXJhbSB7Kn0gdGhpbmcgVGhlIHZhbHVlIHRvIHRlc3RcbiAqXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gVHJ1ZSBpZiB2YWx1ZSBpcyBhbiBGb3JtRGF0YSwgb3RoZXJ3aXNlIGZhbHNlXG4gKi9cbmNvbnN0IGlzRm9ybURhdGEgPSAodGhpbmcpID0+IHtcbiAgbGV0IGtpbmQ7XG4gIHJldHVybiB0aGluZyAmJiAoXG4gICAgKHR5cGVvZiBGb3JtRGF0YSA9PT0gJ2Z1bmN0aW9uJyAmJiB0aGluZyBpbnN0YW5jZW9mIEZvcm1EYXRhKSB8fCAoXG4gICAgICBpc0Z1bmN0aW9uKHRoaW5nLmFwcGVuZCkgJiYgKFxuICAgICAgICAoa2luZCA9IGtpbmRPZih0aGluZykpID09PSAnZm9ybWRhdGEnIHx8XG4gICAgICAgIC8vIGRldGVjdCBmb3JtLWRhdGEgaW5zdGFuY2VcbiAgICAgICAgKGtpbmQgPT09ICdvYmplY3QnICYmIGlzRnVuY3Rpb24odGhpbmcudG9TdHJpbmcpICYmIHRoaW5nLnRvU3RyaW5nKCkgPT09ICdbb2JqZWN0IEZvcm1EYXRhXScpXG4gICAgICApXG4gICAgKVxuICApXG59XG5cbi8qKlxuICogRGV0ZXJtaW5lIGlmIGEgdmFsdWUgaXMgYSBVUkxTZWFyY2hQYXJhbXMgb2JqZWN0XG4gKlxuICogQHBhcmFtIHsqfSB2YWwgVGhlIHZhbHVlIHRvIHRlc3RcbiAqXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gVHJ1ZSBpZiB2YWx1ZSBpcyBhIFVSTFNlYXJjaFBhcmFtcyBvYmplY3QsIG90aGVyd2lzZSBmYWxzZVxuICovXG5jb25zdCBpc1VSTFNlYXJjaFBhcmFtcyA9IGtpbmRPZlRlc3QoJ1VSTFNlYXJjaFBhcmFtcycpO1xuXG5jb25zdCBbaXNSZWFkYWJsZVN0cmVhbSwgaXNSZXF1ZXN0LCBpc1Jlc3BvbnNlLCBpc0hlYWRlcnNdID0gWydSZWFkYWJsZVN0cmVhbScsICdSZXF1ZXN0JywgJ1Jlc3BvbnNlJywgJ0hlYWRlcnMnXS5tYXAoa2luZE9mVGVzdCk7XG5cbi8qKlxuICogVHJpbSBleGNlc3Mgd2hpdGVzcGFjZSBvZmYgdGhlIGJlZ2lubmluZyBhbmQgZW5kIG9mIGEgc3RyaW5nXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IHN0ciBUaGUgU3RyaW5nIHRvIHRyaW1cbiAqXG4gKiBAcmV0dXJucyB7U3RyaW5nfSBUaGUgU3RyaW5nIGZyZWVkIG9mIGV4Y2VzcyB3aGl0ZXNwYWNlXG4gKi9cbmNvbnN0IHRyaW0gPSAoc3RyKSA9PiBzdHIudHJpbSA/XG4gIHN0ci50cmltKCkgOiBzdHIucmVwbGFjZSgvXltcXHNcXHVGRUZGXFx4QTBdK3xbXFxzXFx1RkVGRlxceEEwXSskL2csICcnKTtcblxuLyoqXG4gKiBJdGVyYXRlIG92ZXIgYW4gQXJyYXkgb3IgYW4gT2JqZWN0IGludm9raW5nIGEgZnVuY3Rpb24gZm9yIGVhY2ggaXRlbS5cbiAqXG4gKiBJZiBgb2JqYCBpcyBhbiBBcnJheSBjYWxsYmFjayB3aWxsIGJlIGNhbGxlZCBwYXNzaW5nXG4gKiB0aGUgdmFsdWUsIGluZGV4LCBhbmQgY29tcGxldGUgYXJyYXkgZm9yIGVhY2ggaXRlbS5cbiAqXG4gKiBJZiAnb2JqJyBpcyBhbiBPYmplY3QgY2FsbGJhY2sgd2lsbCBiZSBjYWxsZWQgcGFzc2luZ1xuICogdGhlIHZhbHVlLCBrZXksIGFuZCBjb21wbGV0ZSBvYmplY3QgZm9yIGVhY2ggcHJvcGVydHkuXG4gKlxuICogQHBhcmFtIHtPYmplY3R8QXJyYXl9IG9iaiBUaGUgb2JqZWN0IHRvIGl0ZXJhdGVcbiAqIEBwYXJhbSB7RnVuY3Rpb259IGZuIFRoZSBjYWxsYmFjayB0byBpbnZva2UgZm9yIGVhY2ggaXRlbVxuICpcbiAqIEBwYXJhbSB7Qm9vbGVhbn0gW2FsbE93bktleXMgPSBmYWxzZV1cbiAqIEByZXR1cm5zIHthbnl9XG4gKi9cbmZ1bmN0aW9uIGZvckVhY2gob2JqLCBmbiwge2FsbE93bktleXMgPSBmYWxzZX0gPSB7fSkge1xuICAvLyBEb24ndCBib3RoZXIgaWYgbm8gdmFsdWUgcHJvdmlkZWRcbiAgaWYgKG9iaiA9PT0gbnVsbCB8fCB0eXBlb2Ygb2JqID09PSAndW5kZWZpbmVkJykge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGxldCBpO1xuICBsZXQgbDtcblxuICAvLyBGb3JjZSBhbiBhcnJheSBpZiBub3QgYWxyZWFkeSBzb21ldGhpbmcgaXRlcmFibGVcbiAgaWYgKHR5cGVvZiBvYmogIT09ICdvYmplY3QnKSB7XG4gICAgLyplc2xpbnQgbm8tcGFyYW0tcmVhc3NpZ246MCovXG4gICAgb2JqID0gW29ial07XG4gIH1cblxuICBpZiAoaXNBcnJheShvYmopKSB7XG4gICAgLy8gSXRlcmF0ZSBvdmVyIGFycmF5IHZhbHVlc1xuICAgIGZvciAoaSA9IDAsIGwgPSBvYmoubGVuZ3RoOyBpIDwgbDsgaSsrKSB7XG4gICAgICBmbi5jYWxsKG51bGwsIG9ialtpXSwgaSwgb2JqKTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgLy8gSXRlcmF0ZSBvdmVyIG9iamVjdCBrZXlzXG4gICAgY29uc3Qga2V5cyA9IGFsbE93bktleXMgPyBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhvYmopIDogT2JqZWN0LmtleXMob2JqKTtcbiAgICBjb25zdCBsZW4gPSBrZXlzLmxlbmd0aDtcbiAgICBsZXQga2V5O1xuXG4gICAgZm9yIChpID0gMDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgICBrZXkgPSBrZXlzW2ldO1xuICAgICAgZm4uY2FsbChudWxsLCBvYmpba2V5XSwga2V5LCBvYmopO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBmaW5kS2V5KG9iaiwga2V5KSB7XG4gIGtleSA9IGtleS50b0xvd2VyQ2FzZSgpO1xuICBjb25zdCBrZXlzID0gT2JqZWN0LmtleXMob2JqKTtcbiAgbGV0IGkgPSBrZXlzLmxlbmd0aDtcbiAgbGV0IF9rZXk7XG4gIHdoaWxlIChpLS0gPiAwKSB7XG4gICAgX2tleSA9IGtleXNbaV07XG4gICAgaWYgKGtleSA9PT0gX2tleS50b0xvd2VyQ2FzZSgpKSB7XG4gICAgICByZXR1cm4gX2tleTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIG51bGw7XG59XG5cbmNvbnN0IF9nbG9iYWwgPSAoKCkgPT4ge1xuICAvKmVzbGludCBuby11bmRlZjowKi9cbiAgaWYgKHR5cGVvZiBnbG9iYWxUaGlzICE9PSBcInVuZGVmaW5lZFwiKSByZXR1cm4gZ2xvYmFsVGhpcztcbiAgcmV0dXJuIHR5cGVvZiBzZWxmICE9PSBcInVuZGVmaW5lZFwiID8gc2VsZiA6ICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJyA/IHdpbmRvdyA6IGdsb2JhbClcbn0pKCk7XG5cbmNvbnN0IGlzQ29udGV4dERlZmluZWQgPSAoY29udGV4dCkgPT4gIWlzVW5kZWZpbmVkKGNvbnRleHQpICYmIGNvbnRleHQgIT09IF9nbG9iYWw7XG5cbi8qKlxuICogQWNjZXB0cyB2YXJhcmdzIGV4cGVjdGluZyBlYWNoIGFyZ3VtZW50IHRvIGJlIGFuIG9iamVjdCwgdGhlblxuICogaW1tdXRhYmx5IG1lcmdlcyB0aGUgcHJvcGVydGllcyBvZiBlYWNoIG9iamVjdCBhbmQgcmV0dXJucyByZXN1bHQuXG4gKlxuICogV2hlbiBtdWx0aXBsZSBvYmplY3RzIGNvbnRhaW4gdGhlIHNhbWUga2V5IHRoZSBsYXRlciBvYmplY3QgaW5cbiAqIHRoZSBhcmd1bWVudHMgbGlzdCB3aWxsIHRha2UgcHJlY2VkZW5jZS5cbiAqXG4gKiBFeGFtcGxlOlxuICpcbiAqIGBgYGpzXG4gKiB2YXIgcmVzdWx0ID0gbWVyZ2Uoe2ZvbzogMTIzfSwge2ZvbzogNDU2fSk7XG4gKiBjb25zb2xlLmxvZyhyZXN1bHQuZm9vKTsgLy8gb3V0cHV0cyA0NTZcbiAqIGBgYFxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmoxIE9iamVjdCB0byBtZXJnZVxuICpcbiAqIEByZXR1cm5zIHtPYmplY3R9IFJlc3VsdCBvZiBhbGwgbWVyZ2UgcHJvcGVydGllc1xuICovXG5mdW5jdGlvbiBtZXJnZSgvKiBvYmoxLCBvYmoyLCBvYmozLCAuLi4gKi8pIHtcbiAgY29uc3Qge2Nhc2VsZXNzfSA9IGlzQ29udGV4dERlZmluZWQodGhpcykgJiYgdGhpcyB8fCB7fTtcbiAgY29uc3QgcmVzdWx0ID0ge307XG4gIGNvbnN0IGFzc2lnblZhbHVlID0gKHZhbCwga2V5KSA9PiB7XG4gICAgY29uc3QgdGFyZ2V0S2V5ID0gY2FzZWxlc3MgJiYgZmluZEtleShyZXN1bHQsIGtleSkgfHwga2V5O1xuICAgIGlmIChpc1BsYWluT2JqZWN0KHJlc3VsdFt0YXJnZXRLZXldKSAmJiBpc1BsYWluT2JqZWN0KHZhbCkpIHtcbiAgICAgIHJlc3VsdFt0YXJnZXRLZXldID0gbWVyZ2UocmVzdWx0W3RhcmdldEtleV0sIHZhbCk7XG4gICAgfSBlbHNlIGlmIChpc1BsYWluT2JqZWN0KHZhbCkpIHtcbiAgICAgIHJlc3VsdFt0YXJnZXRLZXldID0gbWVyZ2Uoe30sIHZhbCk7XG4gICAgfSBlbHNlIGlmIChpc0FycmF5KHZhbCkpIHtcbiAgICAgIHJlc3VsdFt0YXJnZXRLZXldID0gdmFsLnNsaWNlKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJlc3VsdFt0YXJnZXRLZXldID0gdmFsO1xuICAgIH1cbiAgfVxuXG4gIGZvciAobGV0IGkgPSAwLCBsID0gYXJndW1lbnRzLmxlbmd0aDsgaSA8IGw7IGkrKykge1xuICAgIGFyZ3VtZW50c1tpXSAmJiBmb3JFYWNoKGFyZ3VtZW50c1tpXSwgYXNzaWduVmFsdWUpO1xuICB9XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbi8qKlxuICogRXh0ZW5kcyBvYmplY3QgYSBieSBtdXRhYmx5IGFkZGluZyB0byBpdCB0aGUgcHJvcGVydGllcyBvZiBvYmplY3QgYi5cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gYSBUaGUgb2JqZWN0IHRvIGJlIGV4dGVuZGVkXG4gKiBAcGFyYW0ge09iamVjdH0gYiBUaGUgb2JqZWN0IHRvIGNvcHkgcHJvcGVydGllcyBmcm9tXG4gKiBAcGFyYW0ge09iamVjdH0gdGhpc0FyZyBUaGUgb2JqZWN0IHRvIGJpbmQgZnVuY3Rpb24gdG9cbiAqXG4gKiBAcGFyYW0ge0Jvb2xlYW59IFthbGxPd25LZXlzXVxuICogQHJldHVybnMge09iamVjdH0gVGhlIHJlc3VsdGluZyB2YWx1ZSBvZiBvYmplY3QgYVxuICovXG5jb25zdCBleHRlbmQgPSAoYSwgYiwgdGhpc0FyZywge2FsbE93bktleXN9PSB7fSkgPT4ge1xuICBmb3JFYWNoKGIsICh2YWwsIGtleSkgPT4ge1xuICAgIGlmICh0aGlzQXJnICYmIGlzRnVuY3Rpb24odmFsKSkge1xuICAgICAgYVtrZXldID0gYmluZCh2YWwsIHRoaXNBcmcpO1xuICAgIH0gZWxzZSB7XG4gICAgICBhW2tleV0gPSB2YWw7XG4gICAgfVxuICB9LCB7YWxsT3duS2V5c30pO1xuICByZXR1cm4gYTtcbn1cblxuLyoqXG4gKiBSZW1vdmUgYnl0ZSBvcmRlciBtYXJrZXIuIFRoaXMgY2F0Y2hlcyBFRiBCQiBCRiAodGhlIFVURi04IEJPTSlcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gY29udGVudCB3aXRoIEJPTVxuICpcbiAqIEByZXR1cm5zIHtzdHJpbmd9IGNvbnRlbnQgdmFsdWUgd2l0aG91dCBCT01cbiAqL1xuY29uc3Qgc3RyaXBCT00gPSAoY29udGVudCkgPT4ge1xuICBpZiAoY29udGVudC5jaGFyQ29kZUF0KDApID09PSAweEZFRkYpIHtcbiAgICBjb250ZW50ID0gY29udGVudC5zbGljZSgxKTtcbiAgfVxuICByZXR1cm4gY29udGVudDtcbn1cblxuLyoqXG4gKiBJbmhlcml0IHRoZSBwcm90b3R5cGUgbWV0aG9kcyBmcm9tIG9uZSBjb25zdHJ1Y3RvciBpbnRvIGFub3RoZXJcbiAqIEBwYXJhbSB7ZnVuY3Rpb259IGNvbnN0cnVjdG9yXG4gKiBAcGFyYW0ge2Z1bmN0aW9ufSBzdXBlckNvbnN0cnVjdG9yXG4gKiBAcGFyYW0ge29iamVjdH0gW3Byb3BzXVxuICogQHBhcmFtIHtvYmplY3R9IFtkZXNjcmlwdG9yc11cbiAqXG4gKiBAcmV0dXJucyB7dm9pZH1cbiAqL1xuY29uc3QgaW5oZXJpdHMgPSAoY29uc3RydWN0b3IsIHN1cGVyQ29uc3RydWN0b3IsIHByb3BzLCBkZXNjcmlwdG9ycykgPT4ge1xuICBjb25zdHJ1Y3Rvci5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKHN1cGVyQ29uc3RydWN0b3IucHJvdG90eXBlLCBkZXNjcmlwdG9ycyk7XG4gIGNvbnN0cnVjdG9yLnByb3RvdHlwZS5jb25zdHJ1Y3RvciA9IGNvbnN0cnVjdG9yO1xuICBPYmplY3QuZGVmaW5lUHJvcGVydHkoY29uc3RydWN0b3IsICdzdXBlcicsIHtcbiAgICB2YWx1ZTogc3VwZXJDb25zdHJ1Y3Rvci5wcm90b3R5cGVcbiAgfSk7XG4gIHByb3BzICYmIE9iamVjdC5hc3NpZ24oY29uc3RydWN0b3IucHJvdG90eXBlLCBwcm9wcyk7XG59XG5cbi8qKlxuICogUmVzb2x2ZSBvYmplY3Qgd2l0aCBkZWVwIHByb3RvdHlwZSBjaGFpbiB0byBhIGZsYXQgb2JqZWN0XG4gKiBAcGFyYW0ge09iamVjdH0gc291cmNlT2JqIHNvdXJjZSBvYmplY3RcbiAqIEBwYXJhbSB7T2JqZWN0fSBbZGVzdE9ial1cbiAqIEBwYXJhbSB7RnVuY3Rpb258Qm9vbGVhbn0gW2ZpbHRlcl1cbiAqIEBwYXJhbSB7RnVuY3Rpb259IFtwcm9wRmlsdGVyXVxuICpcbiAqIEByZXR1cm5zIHtPYmplY3R9XG4gKi9cbmNvbnN0IHRvRmxhdE9iamVjdCA9IChzb3VyY2VPYmosIGRlc3RPYmosIGZpbHRlciwgcHJvcEZpbHRlcikgPT4ge1xuICBsZXQgcHJvcHM7XG4gIGxldCBpO1xuICBsZXQgcHJvcDtcbiAgY29uc3QgbWVyZ2VkID0ge307XG5cbiAgZGVzdE9iaiA9IGRlc3RPYmogfHwge307XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1lcS1udWxsLGVxZXFlcVxuICBpZiAoc291cmNlT2JqID09IG51bGwpIHJldHVybiBkZXN0T2JqO1xuXG4gIGRvIHtcbiAgICBwcm9wcyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHNvdXJjZU9iaik7XG4gICAgaSA9IHByb3BzLmxlbmd0aDtcbiAgICB3aGlsZSAoaS0tID4gMCkge1xuICAgICAgcHJvcCA9IHByb3BzW2ldO1xuICAgICAgaWYgKCghcHJvcEZpbHRlciB8fCBwcm9wRmlsdGVyKHByb3AsIHNvdXJjZU9iaiwgZGVzdE9iaikpICYmICFtZXJnZWRbcHJvcF0pIHtcbiAgICAgICAgZGVzdE9ialtwcm9wXSA9IHNvdXJjZU9ialtwcm9wXTtcbiAgICAgICAgbWVyZ2VkW3Byb3BdID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgc291cmNlT2JqID0gZmlsdGVyICE9PSBmYWxzZSAmJiBnZXRQcm90b3R5cGVPZihzb3VyY2VPYmopO1xuICB9IHdoaWxlIChzb3VyY2VPYmogJiYgKCFmaWx0ZXIgfHwgZmlsdGVyKHNvdXJjZU9iaiwgZGVzdE9iaikpICYmIHNvdXJjZU9iaiAhPT0gT2JqZWN0LnByb3RvdHlwZSk7XG5cbiAgcmV0dXJuIGRlc3RPYmo7XG59XG5cbi8qKlxuICogRGV0ZXJtaW5lcyB3aGV0aGVyIGEgc3RyaW5nIGVuZHMgd2l0aCB0aGUgY2hhcmFjdGVycyBvZiBhIHNwZWNpZmllZCBzdHJpbmdcbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gc3RyXG4gKiBAcGFyYW0ge1N0cmluZ30gc2VhcmNoU3RyaW5nXG4gKiBAcGFyYW0ge051bWJlcn0gW3Bvc2l0aW9uPSAwXVxuICpcbiAqIEByZXR1cm5zIHtib29sZWFufVxuICovXG5jb25zdCBlbmRzV2l0aCA9IChzdHIsIHNlYXJjaFN0cmluZywgcG9zaXRpb24pID0+IHtcbiAgc3RyID0gU3RyaW5nKHN0cik7XG4gIGlmIChwb3NpdGlvbiA9PT0gdW5kZWZpbmVkIHx8IHBvc2l0aW9uID4gc3RyLmxlbmd0aCkge1xuICAgIHBvc2l0aW9uID0gc3RyLmxlbmd0aDtcbiAgfVxuICBwb3NpdGlvbiAtPSBzZWFyY2hTdHJpbmcubGVuZ3RoO1xuICBjb25zdCBsYXN0SW5kZXggPSBzdHIuaW5kZXhPZihzZWFyY2hTdHJpbmcsIHBvc2l0aW9uKTtcbiAgcmV0dXJuIGxhc3RJbmRleCAhPT0gLTEgJiYgbGFzdEluZGV4ID09PSBwb3NpdGlvbjtcbn1cblxuXG4vKipcbiAqIFJldHVybnMgbmV3IGFycmF5IGZyb20gYXJyYXkgbGlrZSBvYmplY3Qgb3IgbnVsbCBpZiBmYWlsZWRcbiAqXG4gKiBAcGFyYW0geyp9IFt0aGluZ11cbiAqXG4gKiBAcmV0dXJucyB7P0FycmF5fVxuICovXG5jb25zdCB0b0FycmF5ID0gKHRoaW5nKSA9PiB7XG4gIGlmICghdGhpbmcpIHJldHVybiBudWxsO1xuICBpZiAoaXNBcnJheSh0aGluZykpIHJldHVybiB0aGluZztcbiAgbGV0IGkgPSB0aGluZy5sZW5ndGg7XG4gIGlmICghaXNOdW1iZXIoaSkpIHJldHVybiBudWxsO1xuICBjb25zdCBhcnIgPSBuZXcgQXJyYXkoaSk7XG4gIHdoaWxlIChpLS0gPiAwKSB7XG4gICAgYXJyW2ldID0gdGhpbmdbaV07XG4gIH1cbiAgcmV0dXJuIGFycjtcbn1cblxuLyoqXG4gKiBDaGVja2luZyBpZiB0aGUgVWludDhBcnJheSBleGlzdHMgYW5kIGlmIGl0IGRvZXMsIGl0IHJldHVybnMgYSBmdW5jdGlvbiB0aGF0IGNoZWNrcyBpZiB0aGVcbiAqIHRoaW5nIHBhc3NlZCBpbiBpcyBhbiBpbnN0YW5jZSBvZiBVaW50OEFycmF5XG4gKlxuICogQHBhcmFtIHtUeXBlZEFycmF5fVxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqL1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGZ1bmMtbmFtZXNcbmNvbnN0IGlzVHlwZWRBcnJheSA9IChUeXBlZEFycmF5ID0+IHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGZ1bmMtbmFtZXNcbiAgcmV0dXJuIHRoaW5nID0+IHtcbiAgICByZXR1cm4gVHlwZWRBcnJheSAmJiB0aGluZyBpbnN0YW5jZW9mIFR5cGVkQXJyYXk7XG4gIH07XG59KSh0eXBlb2YgVWludDhBcnJheSAhPT0gJ3VuZGVmaW5lZCcgJiYgZ2V0UHJvdG90eXBlT2YoVWludDhBcnJheSkpO1xuXG4vKipcbiAqIEZvciBlYWNoIGVudHJ5IGluIHRoZSBvYmplY3QsIGNhbGwgdGhlIGZ1bmN0aW9uIHdpdGggdGhlIGtleSBhbmQgdmFsdWUuXG4gKlxuICogQHBhcmFtIHtPYmplY3Q8YW55LCBhbnk+fSBvYmogLSBUaGUgb2JqZWN0IHRvIGl0ZXJhdGUgb3Zlci5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IGZuIC0gVGhlIGZ1bmN0aW9uIHRvIGNhbGwgZm9yIGVhY2ggZW50cnkuXG4gKlxuICogQHJldHVybnMge3ZvaWR9XG4gKi9cbmNvbnN0IGZvckVhY2hFbnRyeSA9IChvYmosIGZuKSA9PiB7XG4gIGNvbnN0IGdlbmVyYXRvciA9IG9iaiAmJiBvYmpbU3ltYm9sLml0ZXJhdG9yXTtcblxuICBjb25zdCBpdGVyYXRvciA9IGdlbmVyYXRvci5jYWxsKG9iaik7XG5cbiAgbGV0IHJlc3VsdDtcblxuICB3aGlsZSAoKHJlc3VsdCA9IGl0ZXJhdG9yLm5leHQoKSkgJiYgIXJlc3VsdC5kb25lKSB7XG4gICAgY29uc3QgcGFpciA9IHJlc3VsdC52YWx1ZTtcbiAgICBmbi5jYWxsKG9iaiwgcGFpclswXSwgcGFpclsxXSk7XG4gIH1cbn1cblxuLyoqXG4gKiBJdCB0YWtlcyBhIHJlZ3VsYXIgZXhwcmVzc2lvbiBhbmQgYSBzdHJpbmcsIGFuZCByZXR1cm5zIGFuIGFycmF5IG9mIGFsbCB0aGUgbWF0Y2hlc1xuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSByZWdFeHAgLSBUaGUgcmVndWxhciBleHByZXNzaW9uIHRvIG1hdGNoIGFnYWluc3QuXG4gKiBAcGFyYW0ge3N0cmluZ30gc3RyIC0gVGhlIHN0cmluZyB0byBzZWFyY2guXG4gKlxuICogQHJldHVybnMge0FycmF5PGJvb2xlYW4+fVxuICovXG5jb25zdCBtYXRjaEFsbCA9IChyZWdFeHAsIHN0cikgPT4ge1xuICBsZXQgbWF0Y2hlcztcbiAgY29uc3QgYXJyID0gW107XG5cbiAgd2hpbGUgKChtYXRjaGVzID0gcmVnRXhwLmV4ZWMoc3RyKSkgIT09IG51bGwpIHtcbiAgICBhcnIucHVzaChtYXRjaGVzKTtcbiAgfVxuXG4gIHJldHVybiBhcnI7XG59XG5cbi8qIENoZWNraW5nIGlmIHRoZSBraW5kT2ZUZXN0IGZ1bmN0aW9uIHJldHVybnMgdHJ1ZSB3aGVuIHBhc3NlZCBhbiBIVE1MRm9ybUVsZW1lbnQuICovXG5jb25zdCBpc0hUTUxGb3JtID0ga2luZE9mVGVzdCgnSFRNTEZvcm1FbGVtZW50Jyk7XG5cbmNvbnN0IHRvQ2FtZWxDYXNlID0gc3RyID0+IHtcbiAgcmV0dXJuIHN0ci50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoL1stX1xcc10oW2EtelxcZF0pKFxcdyopL2csXG4gICAgZnVuY3Rpb24gcmVwbGFjZXIobSwgcDEsIHAyKSB7XG4gICAgICByZXR1cm4gcDEudG9VcHBlckNhc2UoKSArIHAyO1xuICAgIH1cbiAgKTtcbn07XG5cbi8qIENyZWF0aW5nIGEgZnVuY3Rpb24gdGhhdCB3aWxsIGNoZWNrIGlmIGFuIG9iamVjdCBoYXMgYSBwcm9wZXJ0eS4gKi9cbmNvbnN0IGhhc093blByb3BlcnR5ID0gKCh7aGFzT3duUHJvcGVydHl9KSA9PiAob2JqLCBwcm9wKSA9PiBoYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwgcHJvcCkpKE9iamVjdC5wcm90b3R5cGUpO1xuXG4vKipcbiAqIERldGVybWluZSBpZiBhIHZhbHVlIGlzIGEgUmVnRXhwIG9iamVjdFxuICpcbiAqIEBwYXJhbSB7Kn0gdmFsIFRoZSB2YWx1ZSB0byB0ZXN0XG4gKlxuICogQHJldHVybnMge2Jvb2xlYW59IFRydWUgaWYgdmFsdWUgaXMgYSBSZWdFeHAgb2JqZWN0LCBvdGhlcndpc2UgZmFsc2VcbiAqL1xuY29uc3QgaXNSZWdFeHAgPSBraW5kT2ZUZXN0KCdSZWdFeHAnKTtcblxuY29uc3QgcmVkdWNlRGVzY3JpcHRvcnMgPSAob2JqLCByZWR1Y2VyKSA9PiB7XG4gIGNvbnN0IGRlc2NyaXB0b3JzID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMob2JqKTtcbiAgY29uc3QgcmVkdWNlZERlc2NyaXB0b3JzID0ge307XG5cbiAgZm9yRWFjaChkZXNjcmlwdG9ycywgKGRlc2NyaXB0b3IsIG5hbWUpID0+IHtcbiAgICBsZXQgcmV0O1xuICAgIGlmICgocmV0ID0gcmVkdWNlcihkZXNjcmlwdG9yLCBuYW1lLCBvYmopKSAhPT0gZmFsc2UpIHtcbiAgICAgIHJlZHVjZWREZXNjcmlwdG9yc1tuYW1lXSA9IHJldCB8fCBkZXNjcmlwdG9yO1xuICAgIH1cbiAgfSk7XG5cbiAgT2JqZWN0LmRlZmluZVByb3BlcnRpZXMob2JqLCByZWR1Y2VkRGVzY3JpcHRvcnMpO1xufVxuXG4vKipcbiAqIE1ha2VzIGFsbCBtZXRob2RzIHJlYWQtb25seVxuICogQHBhcmFtIHtPYmplY3R9IG9ialxuICovXG5cbmNvbnN0IGZyZWV6ZU1ldGhvZHMgPSAob2JqKSA9PiB7XG4gIHJlZHVjZURlc2NyaXB0b3JzKG9iaiwgKGRlc2NyaXB0b3IsIG5hbWUpID0+IHtcbiAgICAvLyBza2lwIHJlc3RyaWN0ZWQgcHJvcHMgaW4gc3RyaWN0IG1vZGVcbiAgICBpZiAoaXNGdW5jdGlvbihvYmopICYmIFsnYXJndW1lbnRzJywgJ2NhbGxlcicsICdjYWxsZWUnXS5pbmRleE9mKG5hbWUpICE9PSAtMSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGNvbnN0IHZhbHVlID0gb2JqW25hbWVdO1xuXG4gICAgaWYgKCFpc0Z1bmN0aW9uKHZhbHVlKSkgcmV0dXJuO1xuXG4gICAgZGVzY3JpcHRvci5lbnVtZXJhYmxlID0gZmFsc2U7XG5cbiAgICBpZiAoJ3dyaXRhYmxlJyBpbiBkZXNjcmlwdG9yKSB7XG4gICAgICBkZXNjcmlwdG9yLndyaXRhYmxlID0gZmFsc2U7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKCFkZXNjcmlwdG9yLnNldCkge1xuICAgICAgZGVzY3JpcHRvci5zZXQgPSAoKSA9PiB7XG4gICAgICAgIHRocm93IEVycm9yKCdDYW4gbm90IHJld3JpdGUgcmVhZC1vbmx5IG1ldGhvZCBcXCcnICsgbmFtZSArICdcXCcnKTtcbiAgICAgIH07XG4gICAgfVxuICB9KTtcbn1cblxuY29uc3QgdG9PYmplY3RTZXQgPSAoYXJyYXlPclN0cmluZywgZGVsaW1pdGVyKSA9PiB7XG4gIGNvbnN0IG9iaiA9IHt9O1xuXG4gIGNvbnN0IGRlZmluZSA9IChhcnIpID0+IHtcbiAgICBhcnIuZm9yRWFjaCh2YWx1ZSA9PiB7XG4gICAgICBvYmpbdmFsdWVdID0gdHJ1ZTtcbiAgICB9KTtcbiAgfVxuXG4gIGlzQXJyYXkoYXJyYXlPclN0cmluZykgPyBkZWZpbmUoYXJyYXlPclN0cmluZykgOiBkZWZpbmUoU3RyaW5nKGFycmF5T3JTdHJpbmcpLnNwbGl0KGRlbGltaXRlcikpO1xuXG4gIHJldHVybiBvYmo7XG59XG5cbmNvbnN0IG5vb3AgPSAoKSA9PiB7fVxuXG5jb25zdCB0b0Zpbml0ZU51bWJlciA9ICh2YWx1ZSwgZGVmYXVsdFZhbHVlKSA9PiB7XG4gIHJldHVybiB2YWx1ZSAhPSBudWxsICYmIE51bWJlci5pc0Zpbml0ZSh2YWx1ZSA9ICt2YWx1ZSkgPyB2YWx1ZSA6IGRlZmF1bHRWYWx1ZTtcbn1cblxuLyoqXG4gKiBJZiB0aGUgdGhpbmcgaXMgYSBGb3JtRGF0YSBvYmplY3QsIHJldHVybiB0cnVlLCBvdGhlcndpc2UgcmV0dXJuIGZhbHNlLlxuICpcbiAqIEBwYXJhbSB7dW5rbm93bn0gdGhpbmcgLSBUaGUgdGhpbmcgdG8gY2hlY2suXG4gKlxuICogQHJldHVybnMge2Jvb2xlYW59XG4gKi9cbmZ1bmN0aW9uIGlzU3BlY0NvbXBsaWFudEZvcm0odGhpbmcpIHtcbiAgcmV0dXJuICEhKHRoaW5nICYmIGlzRnVuY3Rpb24odGhpbmcuYXBwZW5kKSAmJiB0aGluZ1tTeW1ib2wudG9TdHJpbmdUYWddID09PSAnRm9ybURhdGEnICYmIHRoaW5nW1N5bWJvbC5pdGVyYXRvcl0pO1xufVxuXG5jb25zdCB0b0pTT05PYmplY3QgPSAob2JqKSA9PiB7XG4gIGNvbnN0IHN0YWNrID0gbmV3IEFycmF5KDEwKTtcblxuICBjb25zdCB2aXNpdCA9IChzb3VyY2UsIGkpID0+IHtcblxuICAgIGlmIChpc09iamVjdChzb3VyY2UpKSB7XG4gICAgICBpZiAoc3RhY2suaW5kZXhPZihzb3VyY2UpID49IDApIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBpZighKCd0b0pTT04nIGluIHNvdXJjZSkpIHtcbiAgICAgICAgc3RhY2tbaV0gPSBzb3VyY2U7XG4gICAgICAgIGNvbnN0IHRhcmdldCA9IGlzQXJyYXkoc291cmNlKSA/IFtdIDoge307XG5cbiAgICAgICAgZm9yRWFjaChzb3VyY2UsICh2YWx1ZSwga2V5KSA9PiB7XG4gICAgICAgICAgY29uc3QgcmVkdWNlZFZhbHVlID0gdmlzaXQodmFsdWUsIGkgKyAxKTtcbiAgICAgICAgICAhaXNVbmRlZmluZWQocmVkdWNlZFZhbHVlKSAmJiAodGFyZ2V0W2tleV0gPSByZWR1Y2VkVmFsdWUpO1xuICAgICAgICB9KTtcblxuICAgICAgICBzdGFja1tpXSA9IHVuZGVmaW5lZDtcblxuICAgICAgICByZXR1cm4gdGFyZ2V0O1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBzb3VyY2U7XG4gIH1cblxuICByZXR1cm4gdmlzaXQob2JqLCAwKTtcbn1cblxuY29uc3QgaXNBc3luY0ZuID0ga2luZE9mVGVzdCgnQXN5bmNGdW5jdGlvbicpO1xuXG5jb25zdCBpc1RoZW5hYmxlID0gKHRoaW5nKSA9PlxuICB0aGluZyAmJiAoaXNPYmplY3QodGhpbmcpIHx8IGlzRnVuY3Rpb24odGhpbmcpKSAmJiBpc0Z1bmN0aW9uKHRoaW5nLnRoZW4pICYmIGlzRnVuY3Rpb24odGhpbmcuY2F0Y2gpO1xuXG4vLyBvcmlnaW5hbCBjb2RlXG4vLyBodHRwczovL2dpdGh1Yi5jb20vRGlnaXRhbEJyYWluSlMvQXhpb3NQcm9taXNlL2Jsb2IvMTZkZWFiMTM3MTBlYzA5Nzc5OTIyMTMxZjNmYTU5NTQzMjBmODNhYi9saWIvdXRpbHMuanMjTDExLUwzNFxuXG5jb25zdCBfc2V0SW1tZWRpYXRlID0gKChzZXRJbW1lZGlhdGVTdXBwb3J0ZWQsIHBvc3RNZXNzYWdlU3VwcG9ydGVkKSA9PiB7XG4gIGlmIChzZXRJbW1lZGlhdGVTdXBwb3J0ZWQpIHtcbiAgICByZXR1cm4gc2V0SW1tZWRpYXRlO1xuICB9XG5cbiAgcmV0dXJuIHBvc3RNZXNzYWdlU3VwcG9ydGVkID8gKCh0b2tlbiwgY2FsbGJhY2tzKSA9PiB7XG4gICAgX2dsb2JhbC5hZGRFdmVudExpc3RlbmVyKFwibWVzc2FnZVwiLCAoe3NvdXJjZSwgZGF0YX0pID0+IHtcbiAgICAgIGlmIChzb3VyY2UgPT09IF9nbG9iYWwgJiYgZGF0YSA9PT0gdG9rZW4pIHtcbiAgICAgICAgY2FsbGJhY2tzLmxlbmd0aCAmJiBjYWxsYmFja3Muc2hpZnQoKSgpO1xuICAgICAgfVxuICAgIH0sIGZhbHNlKTtcblxuICAgIHJldHVybiAoY2IpID0+IHtcbiAgICAgIGNhbGxiYWNrcy5wdXNoKGNiKTtcbiAgICAgIF9nbG9iYWwucG9zdE1lc3NhZ2UodG9rZW4sIFwiKlwiKTtcbiAgICB9XG4gIH0pKGBheGlvc0Ake01hdGgucmFuZG9tKCl9YCwgW10pIDogKGNiKSA9PiBzZXRUaW1lb3V0KGNiKTtcbn0pKFxuICB0eXBlb2Ygc2V0SW1tZWRpYXRlID09PSAnZnVuY3Rpb24nLFxuICBpc0Z1bmN0aW9uKF9nbG9iYWwucG9zdE1lc3NhZ2UpXG4pO1xuXG5jb25zdCBhc2FwID0gdHlwZW9mIHF1ZXVlTWljcm90YXNrICE9PSAndW5kZWZpbmVkJyA/XG4gIHF1ZXVlTWljcm90YXNrLmJpbmQoX2dsb2JhbCkgOiAoIHR5cGVvZiBwcm9jZXNzICE9PSAndW5kZWZpbmVkJyAmJiBwcm9jZXNzLm5leHRUaWNrIHx8IF9zZXRJbW1lZGlhdGUpO1xuXG4vLyAqKioqKioqKioqKioqKioqKioqKipcblxuZXhwb3J0IGRlZmF1bHQge1xuICBpc0FycmF5LFxuICBpc0FycmF5QnVmZmVyLFxuICBpc0J1ZmZlcixcbiAgaXNGb3JtRGF0YSxcbiAgaXNBcnJheUJ1ZmZlclZpZXcsXG4gIGlzU3RyaW5nLFxuICBpc051bWJlcixcbiAgaXNCb29sZWFuLFxuICBpc09iamVjdCxcbiAgaXNQbGFpbk9iamVjdCxcbiAgaXNSZWFkYWJsZVN0cmVhbSxcbiAgaXNSZXF1ZXN0LFxuICBpc1Jlc3BvbnNlLFxuICBpc0hlYWRlcnMsXG4gIGlzVW5kZWZpbmVkLFxuICBpc0RhdGUsXG4gIGlzRmlsZSxcbiAgaXNCbG9iLFxuICBpc1JlZ0V4cCxcbiAgaXNGdW5jdGlvbixcbiAgaXNTdHJlYW0sXG4gIGlzVVJMU2VhcmNoUGFyYW1zLFxuICBpc1R5cGVkQXJyYXksXG4gIGlzRmlsZUxpc3QsXG4gIGZvckVhY2gsXG4gIG1lcmdlLFxuICBleHRlbmQsXG4gIHRyaW0sXG4gIHN0cmlwQk9NLFxuICBpbmhlcml0cyxcbiAgdG9GbGF0T2JqZWN0LFxuICBraW5kT2YsXG4gIGtpbmRPZlRlc3QsXG4gIGVuZHNXaXRoLFxuICB0b0FycmF5LFxuICBmb3JFYWNoRW50cnksXG4gIG1hdGNoQWxsLFxuICBpc0hUTUxGb3JtLFxuICBoYXNPd25Qcm9wZXJ0eSxcbiAgaGFzT3duUHJvcDogaGFzT3duUHJvcGVydHksIC8vIGFuIGFsaWFzIHRvIGF2b2lkIEVTTGludCBuby1wcm90b3R5cGUtYnVpbHRpbnMgZGV0ZWN0aW9uXG4gIHJlZHVjZURlc2NyaXB0b3JzLFxuICBmcmVlemVNZXRob2RzLFxuICB0b09iamVjdFNldCxcbiAgdG9DYW1lbENhc2UsXG4gIG5vb3AsXG4gIHRvRmluaXRlTnVtYmVyLFxuICBmaW5kS2V5LFxuICBnbG9iYWw6IF9nbG9iYWwsXG4gIGlzQ29udGV4dERlZmluZWQsXG4gIGlzU3BlY0NvbXBsaWFudEZvcm0sXG4gIHRvSlNPTk9iamVjdCxcbiAgaXNBc3luY0ZuLFxuICBpc1RoZW5hYmxlLFxuICBzZXRJbW1lZGlhdGU6IF9zZXRJbW1lZGlhdGUsXG4gIGFzYXBcbn07XG4iLCAiJ3VzZSBzdHJpY3QnO1xuXG5pbXBvcnQgdXRpbHMgZnJvbSAnLi4vdXRpbHMuanMnO1xuXG4vKipcbiAqIENyZWF0ZSBhbiBFcnJvciB3aXRoIHRoZSBzcGVjaWZpZWQgbWVzc2FnZSwgY29uZmlnLCBlcnJvciBjb2RlLCByZXF1ZXN0IGFuZCByZXNwb25zZS5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gbWVzc2FnZSBUaGUgZXJyb3IgbWVzc2FnZS5cbiAqIEBwYXJhbSB7c3RyaW5nfSBbY29kZV0gVGhlIGVycm9yIGNvZGUgKGZvciBleGFtcGxlLCAnRUNPTk5BQk9SVEVEJykuXG4gKiBAcGFyYW0ge09iamVjdH0gW2NvbmZpZ10gVGhlIGNvbmZpZy5cbiAqIEBwYXJhbSB7T2JqZWN0fSBbcmVxdWVzdF0gVGhlIHJlcXVlc3QuXG4gKiBAcGFyYW0ge09iamVjdH0gW3Jlc3BvbnNlXSBUaGUgcmVzcG9uc2UuXG4gKlxuICogQHJldHVybnMge0Vycm9yfSBUaGUgY3JlYXRlZCBlcnJvci5cbiAqL1xuZnVuY3Rpb24gQXhpb3NFcnJvcihtZXNzYWdlLCBjb2RlLCBjb25maWcsIHJlcXVlc3QsIHJlc3BvbnNlKSB7XG4gIEVycm9yLmNhbGwodGhpcyk7XG5cbiAgaWYgKEVycm9yLmNhcHR1cmVTdGFja1RyYWNlKSB7XG4gICAgRXJyb3IuY2FwdHVyZVN0YWNrVHJhY2UodGhpcywgdGhpcy5jb25zdHJ1Y3Rvcik7XG4gIH0gZWxzZSB7XG4gICAgdGhpcy5zdGFjayA9IChuZXcgRXJyb3IoKSkuc3RhY2s7XG4gIH1cblxuICB0aGlzLm1lc3NhZ2UgPSBtZXNzYWdlO1xuICB0aGlzLm5hbWUgPSAnQXhpb3NFcnJvcic7XG4gIGNvZGUgJiYgKHRoaXMuY29kZSA9IGNvZGUpO1xuICBjb25maWcgJiYgKHRoaXMuY29uZmlnID0gY29uZmlnKTtcbiAgcmVxdWVzdCAmJiAodGhpcy5yZXF1ZXN0ID0gcmVxdWVzdCk7XG4gIGlmIChyZXNwb25zZSkge1xuICAgIHRoaXMucmVzcG9uc2UgPSByZXNwb25zZTtcbiAgICB0aGlzLnN0YXR1cyA9IHJlc3BvbnNlLnN0YXR1cyA/IHJlc3BvbnNlLnN0YXR1cyA6IG51bGw7XG4gIH1cbn1cblxudXRpbHMuaW5oZXJpdHMoQXhpb3NFcnJvciwgRXJyb3IsIHtcbiAgdG9KU09OOiBmdW5jdGlvbiB0b0pTT04oKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC8vIFN0YW5kYXJkXG4gICAgICBtZXNzYWdlOiB0aGlzLm1lc3NhZ2UsXG4gICAgICBuYW1lOiB0aGlzLm5hbWUsXG4gICAgICAvLyBNaWNyb3NvZnRcbiAgICAgIGRlc2NyaXB0aW9uOiB0aGlzLmRlc2NyaXB0aW9uLFxuICAgICAgbnVtYmVyOiB0aGlzLm51bWJlcixcbiAgICAgIC8vIE1vemlsbGFcbiAgICAgIGZpbGVOYW1lOiB0aGlzLmZpbGVOYW1lLFxuICAgICAgbGluZU51bWJlcjogdGhpcy5saW5lTnVtYmVyLFxuICAgICAgY29sdW1uTnVtYmVyOiB0aGlzLmNvbHVtbk51bWJlcixcbiAgICAgIHN0YWNrOiB0aGlzLnN0YWNrLFxuICAgICAgLy8gQXhpb3NcbiAgICAgIGNvbmZpZzogdXRpbHMudG9KU09OT2JqZWN0KHRoaXMuY29uZmlnKSxcbiAgICAgIGNvZGU6IHRoaXMuY29kZSxcbiAgICAgIHN0YXR1czogdGhpcy5zdGF0dXNcbiAgICB9O1xuICB9XG59KTtcblxuY29uc3QgcHJvdG90eXBlID0gQXhpb3NFcnJvci5wcm90b3R5cGU7XG5jb25zdCBkZXNjcmlwdG9ycyA9IHt9O1xuXG5bXG4gICdFUlJfQkFEX09QVElPTl9WQUxVRScsXG4gICdFUlJfQkFEX09QVElPTicsXG4gICdFQ09OTkFCT1JURUQnLFxuICAnRVRJTUVET1VUJyxcbiAgJ0VSUl9ORVRXT1JLJyxcbiAgJ0VSUl9GUl9UT09fTUFOWV9SRURJUkVDVFMnLFxuICAnRVJSX0RFUFJFQ0FURUQnLFxuICAnRVJSX0JBRF9SRVNQT05TRScsXG4gICdFUlJfQkFEX1JFUVVFU1QnLFxuICAnRVJSX0NBTkNFTEVEJyxcbiAgJ0VSUl9OT1RfU1VQUE9SVCcsXG4gICdFUlJfSU5WQUxJRF9VUkwnXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZnVuYy1uYW1lc1xuXS5mb3JFYWNoKGNvZGUgPT4ge1xuICBkZXNjcmlwdG9yc1tjb2RlXSA9IHt2YWx1ZTogY29kZX07XG59KTtcblxuT2JqZWN0LmRlZmluZVByb3BlcnRpZXMoQXhpb3NFcnJvciwgZGVzY3JpcHRvcnMpO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KHByb3RvdHlwZSwgJ2lzQXhpb3NFcnJvcicsIHt2YWx1ZTogdHJ1ZX0pO1xuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZnVuYy1uYW1lc1xuQXhpb3NFcnJvci5mcm9tID0gKGVycm9yLCBjb2RlLCBjb25maWcsIHJlcXVlc3QsIHJlc3BvbnNlLCBjdXN0b21Qcm9wcykgPT4ge1xuICBjb25zdCBheGlvc0Vycm9yID0gT2JqZWN0LmNyZWF0ZShwcm90b3R5cGUpO1xuXG4gIHV0aWxzLnRvRmxhdE9iamVjdChlcnJvciwgYXhpb3NFcnJvciwgZnVuY3Rpb24gZmlsdGVyKG9iaikge1xuICAgIHJldHVybiBvYmogIT09IEVycm9yLnByb3RvdHlwZTtcbiAgfSwgcHJvcCA9PiB7XG4gICAgcmV0dXJuIHByb3AgIT09ICdpc0F4aW9zRXJyb3InO1xuICB9KTtcblxuICBBeGlvc0Vycm9yLmNhbGwoYXhpb3NFcnJvciwgZXJyb3IubWVzc2FnZSwgY29kZSwgY29uZmlnLCByZXF1ZXN0LCByZXNwb25zZSk7XG5cbiAgYXhpb3NFcnJvci5jYXVzZSA9IGVycm9yO1xuXG4gIGF4aW9zRXJyb3IubmFtZSA9IGVycm9yLm5hbWU7XG5cbiAgY3VzdG9tUHJvcHMgJiYgT2JqZWN0LmFzc2lnbihheGlvc0Vycm9yLCBjdXN0b21Qcm9wcyk7XG5cbiAgcmV0dXJuIGF4aW9zRXJyb3I7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBBeGlvc0Vycm9yO1xuIiwgInZhciBTdHJlYW0gPSByZXF1aXJlKCdzdHJlYW0nKS5TdHJlYW07XG52YXIgdXRpbCA9IHJlcXVpcmUoJ3V0aWwnKTtcblxubW9kdWxlLmV4cG9ydHMgPSBEZWxheWVkU3RyZWFtO1xuZnVuY3Rpb24gRGVsYXllZFN0cmVhbSgpIHtcbiAgdGhpcy5zb3VyY2UgPSBudWxsO1xuICB0aGlzLmRhdGFTaXplID0gMDtcbiAgdGhpcy5tYXhEYXRhU2l6ZSA9IDEwMjQgKiAxMDI0O1xuICB0aGlzLnBhdXNlU3RyZWFtID0gdHJ1ZTtcblxuICB0aGlzLl9tYXhEYXRhU2l6ZUV4Y2VlZGVkID0gZmFsc2U7XG4gIHRoaXMuX3JlbGVhc2VkID0gZmFsc2U7XG4gIHRoaXMuX2J1ZmZlcmVkRXZlbnRzID0gW107XG59XG51dGlsLmluaGVyaXRzKERlbGF5ZWRTdHJlYW0sIFN0cmVhbSk7XG5cbkRlbGF5ZWRTdHJlYW0uY3JlYXRlID0gZnVuY3Rpb24oc291cmNlLCBvcHRpb25zKSB7XG4gIHZhciBkZWxheWVkU3RyZWFtID0gbmV3IHRoaXMoKTtcblxuICBvcHRpb25zID0gb3B0aW9ucyB8fCB7fTtcbiAgZm9yICh2YXIgb3B0aW9uIGluIG9wdGlvbnMpIHtcbiAgICBkZWxheWVkU3RyZWFtW29wdGlvbl0gPSBvcHRpb25zW29wdGlvbl07XG4gIH1cblxuICBkZWxheWVkU3RyZWFtLnNvdXJjZSA9IHNvdXJjZTtcblxuICB2YXIgcmVhbEVtaXQgPSBzb3VyY2UuZW1pdDtcbiAgc291cmNlLmVtaXQgPSBmdW5jdGlvbigpIHtcbiAgICBkZWxheWVkU3RyZWFtLl9oYW5kbGVFbWl0KGFyZ3VtZW50cyk7XG4gICAgcmV0dXJuIHJlYWxFbWl0LmFwcGx5KHNvdXJjZSwgYXJndW1lbnRzKTtcbiAgfTtcblxuICBzb3VyY2Uub24oJ2Vycm9yJywgZnVuY3Rpb24oKSB7fSk7XG4gIGlmIChkZWxheWVkU3RyZWFtLnBhdXNlU3RyZWFtKSB7XG4gICAgc291cmNlLnBhdXNlKCk7XG4gIH1cblxuICByZXR1cm4gZGVsYXllZFN0cmVhbTtcbn07XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShEZWxheWVkU3RyZWFtLnByb3RvdHlwZSwgJ3JlYWRhYmxlJywge1xuICBjb25maWd1cmFibGU6IHRydWUsXG4gIGVudW1lcmFibGU6IHRydWUsXG4gIGdldDogZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMuc291cmNlLnJlYWRhYmxlO1xuICB9XG59KTtcblxuRGVsYXllZFN0cmVhbS5wcm90b3R5cGUuc2V0RW5jb2RpbmcgPSBmdW5jdGlvbigpIHtcbiAgcmV0dXJuIHRoaXMuc291cmNlLnNldEVuY29kaW5nLmFwcGx5KHRoaXMuc291cmNlLCBhcmd1bWVudHMpO1xufTtcblxuRGVsYXllZFN0cmVhbS5wcm90b3R5cGUucmVzdW1lID0gZnVuY3Rpb24oKSB7XG4gIGlmICghdGhpcy5fcmVsZWFzZWQpIHtcbiAgICB0aGlzLnJlbGVhc2UoKTtcbiAgfVxuXG4gIHRoaXMuc291cmNlLnJlc3VtZSgpO1xufTtcblxuRGVsYXllZFN0cmVhbS5wcm90b3R5cGUucGF1c2UgPSBmdW5jdGlvbigpIHtcbiAgdGhpcy5zb3VyY2UucGF1c2UoKTtcbn07XG5cbkRlbGF5ZWRTdHJlYW0ucHJvdG90eXBlLnJlbGVhc2UgPSBmdW5jdGlvbigpIHtcbiAgdGhpcy5fcmVsZWFzZWQgPSB0cnVlO1xuXG4gIHRoaXMuX2J1ZmZlcmVkRXZlbnRzLmZvckVhY2goZnVuY3Rpb24oYXJncykge1xuICAgIHRoaXMuZW1pdC5hcHBseSh0aGlzLCBhcmdzKTtcbiAgfS5iaW5kKHRoaXMpKTtcbiAgdGhpcy5fYnVmZmVyZWRFdmVudHMgPSBbXTtcbn07XG5cbkRlbGF5ZWRTdHJlYW0ucHJvdG90eXBlLnBpcGUgPSBmdW5jdGlvbigpIHtcbiAgdmFyIHIgPSBTdHJlYW0ucHJvdG90eXBlLnBpcGUuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgdGhpcy5yZXN1bWUoKTtcbiAgcmV0dXJuIHI7XG59O1xuXG5EZWxheWVkU3RyZWFtLnByb3RvdHlwZS5faGFuZGxlRW1pdCA9IGZ1bmN0aW9uKGFyZ3MpIHtcbiAgaWYgKHRoaXMuX3JlbGVhc2VkKSB7XG4gICAgdGhpcy5lbWl0LmFwcGx5KHRoaXMsIGFyZ3MpO1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGlmIChhcmdzWzBdID09PSAnZGF0YScpIHtcbiAgICB0aGlzLmRhdGFTaXplICs9IGFyZ3NbMV0ubGVuZ3RoO1xuICAgIHRoaXMuX2NoZWNrSWZNYXhEYXRhU2l6ZUV4Y2VlZGVkKCk7XG4gIH1cblxuICB0aGlzLl9idWZmZXJlZEV2ZW50cy5wdXNoKGFyZ3MpO1xufTtcblxuRGVsYXllZFN0cmVhbS5wcm90b3R5cGUuX2NoZWNrSWZNYXhEYXRhU2l6ZUV4Y2VlZGVkID0gZnVuY3Rpb24oKSB7XG4gIGlmICh0aGlzLl9tYXhEYXRhU2l6ZUV4Y2VlZGVkKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgaWYgKHRoaXMuZGF0YVNpemUgPD0gdGhpcy5tYXhEYXRhU2l6ZSkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIHRoaXMuX21heERhdGFTaXplRXhjZWVkZWQgPSB0cnVlO1xuICB2YXIgbWVzc2FnZSA9XG4gICAgJ0RlbGF5ZWRTdHJlYW0jbWF4RGF0YVNpemUgb2YgJyArIHRoaXMubWF4RGF0YVNpemUgKyAnIGJ5dGVzIGV4Y2VlZGVkLidcbiAgdGhpcy5lbWl0KCdlcnJvcicsIG5ldyBFcnJvcihtZXNzYWdlKSk7XG59O1xuIiwgInZhciB1dGlsID0gcmVxdWlyZSgndXRpbCcpO1xudmFyIFN0cmVhbSA9IHJlcXVpcmUoJ3N0cmVhbScpLlN0cmVhbTtcbnZhciBEZWxheWVkU3RyZWFtID0gcmVxdWlyZSgnZGVsYXllZC1zdHJlYW0nKTtcblxubW9kdWxlLmV4cG9ydHMgPSBDb21iaW5lZFN0cmVhbTtcbmZ1bmN0aW9uIENvbWJpbmVkU3RyZWFtKCkge1xuICB0aGlzLndyaXRhYmxlID0gZmFsc2U7XG4gIHRoaXMucmVhZGFibGUgPSB0cnVlO1xuICB0aGlzLmRhdGFTaXplID0gMDtcbiAgdGhpcy5tYXhEYXRhU2l6ZSA9IDIgKiAxMDI0ICogMTAyNDtcbiAgdGhpcy5wYXVzZVN0cmVhbXMgPSB0cnVlO1xuXG4gIHRoaXMuX3JlbGVhc2VkID0gZmFsc2U7XG4gIHRoaXMuX3N0cmVhbXMgPSBbXTtcbiAgdGhpcy5fY3VycmVudFN0cmVhbSA9IG51bGw7XG4gIHRoaXMuX2luc2lkZUxvb3AgPSBmYWxzZTtcbiAgdGhpcy5fcGVuZGluZ05leHQgPSBmYWxzZTtcbn1cbnV0aWwuaW5oZXJpdHMoQ29tYmluZWRTdHJlYW0sIFN0cmVhbSk7XG5cbkNvbWJpbmVkU3RyZWFtLmNyZWF0ZSA9IGZ1bmN0aW9uKG9wdGlvbnMpIHtcbiAgdmFyIGNvbWJpbmVkU3RyZWFtID0gbmV3IHRoaXMoKTtcblxuICBvcHRpb25zID0gb3B0aW9ucyB8fCB7fTtcbiAgZm9yICh2YXIgb3B0aW9uIGluIG9wdGlvbnMpIHtcbiAgICBjb21iaW5lZFN0cmVhbVtvcHRpb25dID0gb3B0aW9uc1tvcHRpb25dO1xuICB9XG5cbiAgcmV0dXJuIGNvbWJpbmVkU3RyZWFtO1xufTtcblxuQ29tYmluZWRTdHJlYW0uaXNTdHJlYW1MaWtlID0gZnVuY3Rpb24oc3RyZWFtKSB7XG4gIHJldHVybiAodHlwZW9mIHN0cmVhbSAhPT0gJ2Z1bmN0aW9uJylcbiAgICAmJiAodHlwZW9mIHN0cmVhbSAhPT0gJ3N0cmluZycpXG4gICAgJiYgKHR5cGVvZiBzdHJlYW0gIT09ICdib29sZWFuJylcbiAgICAmJiAodHlwZW9mIHN0cmVhbSAhPT0gJ251bWJlcicpXG4gICAgJiYgKCFCdWZmZXIuaXNCdWZmZXIoc3RyZWFtKSk7XG59O1xuXG5Db21iaW5lZFN0cmVhbS5wcm90b3R5cGUuYXBwZW5kID0gZnVuY3Rpb24oc3RyZWFtKSB7XG4gIHZhciBpc1N0cmVhbUxpa2UgPSBDb21iaW5lZFN0cmVhbS5pc1N0cmVhbUxpa2Uoc3RyZWFtKTtcblxuICBpZiAoaXNTdHJlYW1MaWtlKSB7XG4gICAgaWYgKCEoc3RyZWFtIGluc3RhbmNlb2YgRGVsYXllZFN0cmVhbSkpIHtcbiAgICAgIHZhciBuZXdTdHJlYW0gPSBEZWxheWVkU3RyZWFtLmNyZWF0ZShzdHJlYW0sIHtcbiAgICAgICAgbWF4RGF0YVNpemU6IEluZmluaXR5LFxuICAgICAgICBwYXVzZVN0cmVhbTogdGhpcy5wYXVzZVN0cmVhbXMsXG4gICAgICB9KTtcbiAgICAgIHN0cmVhbS5vbignZGF0YScsIHRoaXMuX2NoZWNrRGF0YVNpemUuYmluZCh0aGlzKSk7XG4gICAgICBzdHJlYW0gPSBuZXdTdHJlYW07XG4gICAgfVxuXG4gICAgdGhpcy5faGFuZGxlRXJyb3JzKHN0cmVhbSk7XG5cbiAgICBpZiAodGhpcy5wYXVzZVN0cmVhbXMpIHtcbiAgICAgIHN0cmVhbS5wYXVzZSgpO1xuICAgIH1cbiAgfVxuXG4gIHRoaXMuX3N0cmVhbXMucHVzaChzdHJlYW0pO1xuICByZXR1cm4gdGhpcztcbn07XG5cbkNvbWJpbmVkU3RyZWFtLnByb3RvdHlwZS5waXBlID0gZnVuY3Rpb24oZGVzdCwgb3B0aW9ucykge1xuICBTdHJlYW0ucHJvdG90eXBlLnBpcGUuY2FsbCh0aGlzLCBkZXN0LCBvcHRpb25zKTtcbiAgdGhpcy5yZXN1bWUoKTtcbiAgcmV0dXJuIGRlc3Q7XG59O1xuXG5Db21iaW5lZFN0cmVhbS5wcm90b3R5cGUuX2dldE5leHQgPSBmdW5jdGlvbigpIHtcbiAgdGhpcy5fY3VycmVudFN0cmVhbSA9IG51bGw7XG5cbiAgaWYgKHRoaXMuX2luc2lkZUxvb3ApIHtcbiAgICB0aGlzLl9wZW5kaW5nTmV4dCA9IHRydWU7XG4gICAgcmV0dXJuOyAvLyBkZWZlciBjYWxsXG4gIH1cblxuICB0aGlzLl9pbnNpZGVMb29wID0gdHJ1ZTtcbiAgdHJ5IHtcbiAgICBkbyB7XG4gICAgICB0aGlzLl9wZW5kaW5nTmV4dCA9IGZhbHNlO1xuICAgICAgdGhpcy5fcmVhbEdldE5leHQoKTtcbiAgICB9IHdoaWxlICh0aGlzLl9wZW5kaW5nTmV4dCk7XG4gIH0gZmluYWxseSB7XG4gICAgdGhpcy5faW5zaWRlTG9vcCA9IGZhbHNlO1xuICB9XG59O1xuXG5Db21iaW5lZFN0cmVhbS5wcm90b3R5cGUuX3JlYWxHZXROZXh0ID0gZnVuY3Rpb24oKSB7XG4gIHZhciBzdHJlYW0gPSB0aGlzLl9zdHJlYW1zLnNoaWZ0KCk7XG5cblxuICBpZiAodHlwZW9mIHN0cmVhbSA9PSAndW5kZWZpbmVkJykge1xuICAgIHRoaXMuZW5kKCk7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgaWYgKHR5cGVvZiBzdHJlYW0gIT09ICdmdW5jdGlvbicpIHtcbiAgICB0aGlzLl9waXBlTmV4dChzdHJlYW0pO1xuICAgIHJldHVybjtcbiAgfVxuXG4gIHZhciBnZXRTdHJlYW0gPSBzdHJlYW07XG4gIGdldFN0cmVhbShmdW5jdGlvbihzdHJlYW0pIHtcbiAgICB2YXIgaXNTdHJlYW1MaWtlID0gQ29tYmluZWRTdHJlYW0uaXNTdHJlYW1MaWtlKHN0cmVhbSk7XG4gICAgaWYgKGlzU3RyZWFtTGlrZSkge1xuICAgICAgc3RyZWFtLm9uKCdkYXRhJywgdGhpcy5fY2hlY2tEYXRhU2l6ZS5iaW5kKHRoaXMpKTtcbiAgICAgIHRoaXMuX2hhbmRsZUVycm9ycyhzdHJlYW0pO1xuICAgIH1cblxuICAgIHRoaXMuX3BpcGVOZXh0KHN0cmVhbSk7XG4gIH0uYmluZCh0aGlzKSk7XG59O1xuXG5Db21iaW5lZFN0cmVhbS5wcm90b3R5cGUuX3BpcGVOZXh0ID0gZnVuY3Rpb24oc3RyZWFtKSB7XG4gIHRoaXMuX2N1cnJlbnRTdHJlYW0gPSBzdHJlYW07XG5cbiAgdmFyIGlzU3RyZWFtTGlrZSA9IENvbWJpbmVkU3RyZWFtLmlzU3RyZWFtTGlrZShzdHJlYW0pO1xuICBpZiAoaXNTdHJlYW1MaWtlKSB7XG4gICAgc3RyZWFtLm9uKCdlbmQnLCB0aGlzLl9nZXROZXh0LmJpbmQodGhpcykpO1xuICAgIHN0cmVhbS5waXBlKHRoaXMsIHtlbmQ6IGZhbHNlfSk7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgdmFyIHZhbHVlID0gc3RyZWFtO1xuICB0aGlzLndyaXRlKHZhbHVlKTtcbiAgdGhpcy5fZ2V0TmV4dCgpO1xufTtcblxuQ29tYmluZWRTdHJlYW0ucHJvdG90eXBlLl9oYW5kbGVFcnJvcnMgPSBmdW5jdGlvbihzdHJlYW0pIHtcbiAgdmFyIHNlbGYgPSB0aGlzO1xuICBzdHJlYW0ub24oJ2Vycm9yJywgZnVuY3Rpb24oZXJyKSB7XG4gICAgc2VsZi5fZW1pdEVycm9yKGVycik7XG4gIH0pO1xufTtcblxuQ29tYmluZWRTdHJlYW0ucHJvdG90eXBlLndyaXRlID0gZnVuY3Rpb24oZGF0YSkge1xuICB0aGlzLmVtaXQoJ2RhdGEnLCBkYXRhKTtcbn07XG5cbkNvbWJpbmVkU3RyZWFtLnByb3RvdHlwZS5wYXVzZSA9IGZ1bmN0aW9uKCkge1xuICBpZiAoIXRoaXMucGF1c2VTdHJlYW1zKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgaWYodGhpcy5wYXVzZVN0cmVhbXMgJiYgdGhpcy5fY3VycmVudFN0cmVhbSAmJiB0eXBlb2YodGhpcy5fY3VycmVudFN0cmVhbS5wYXVzZSkgPT0gJ2Z1bmN0aW9uJykgdGhpcy5fY3VycmVudFN0cmVhbS5wYXVzZSgpO1xuICB0aGlzLmVtaXQoJ3BhdXNlJyk7XG59O1xuXG5Db21iaW5lZFN0cmVhbS5wcm90b3R5cGUucmVzdW1lID0gZnVuY3Rpb24oKSB7XG4gIGlmICghdGhpcy5fcmVsZWFzZWQpIHtcbiAgICB0aGlzLl9yZWxlYXNlZCA9IHRydWU7XG4gICAgdGhpcy53cml0YWJsZSA9IHRydWU7XG4gICAgdGhpcy5fZ2V0TmV4dCgpO1xuICB9XG5cbiAgaWYodGhpcy5wYXVzZVN0cmVhbXMgJiYgdGhpcy5fY3VycmVudFN0cmVhbSAmJiB0eXBlb2YodGhpcy5fY3VycmVudFN0cmVhbS5yZXN1bWUpID09ICdmdW5jdGlvbicpIHRoaXMuX2N1cnJlbnRTdHJlYW0ucmVzdW1lKCk7XG4gIHRoaXMuZW1pdCgncmVzdW1lJyk7XG59O1xuXG5Db21iaW5lZFN0cmVhbS5wcm90b3R5cGUuZW5kID0gZnVuY3Rpb24oKSB7XG4gIHRoaXMuX3Jlc2V0KCk7XG4gIHRoaXMuZW1pdCgnZW5kJyk7XG59O1xuXG5Db21iaW5lZFN0cmVhbS5wcm90b3R5cGUuZGVzdHJveSA9IGZ1bmN0aW9uKCkge1xuICB0aGlzLl9yZXNldCgpO1xuICB0aGlzLmVtaXQoJ2Nsb3NlJyk7XG59O1xuXG5Db21iaW5lZFN0cmVhbS5wcm90b3R5cGUuX3Jlc2V0ID0gZnVuY3Rpb24oKSB7XG4gIHRoaXMud3JpdGFibGUgPSBmYWxzZTtcbiAgdGhpcy5fc3RyZWFtcyA9IFtdO1xuICB0aGlzLl9jdXJyZW50U3RyZWFtID0gbnVsbDtcbn07XG5cbkNvbWJpbmVkU3RyZWFtLnByb3RvdHlwZS5fY2hlY2tEYXRhU2l6ZSA9IGZ1bmN0aW9uKCkge1xuICB0aGlzLl91cGRhdGVEYXRhU2l6ZSgpO1xuICBpZiAodGhpcy5kYXRhU2l6ZSA8PSB0aGlzLm1heERhdGFTaXplKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgdmFyIG1lc3NhZ2UgPVxuICAgICdEZWxheWVkU3RyZWFtI21heERhdGFTaXplIG9mICcgKyB0aGlzLm1heERhdGFTaXplICsgJyBieXRlcyBleGNlZWRlZC4nO1xuICB0aGlzLl9lbWl0RXJyb3IobmV3IEVycm9yKG1lc3NhZ2UpKTtcbn07XG5cbkNvbWJpbmVkU3RyZWFtLnByb3RvdHlwZS5fdXBkYXRlRGF0YVNpemUgPSBmdW5jdGlvbigpIHtcbiAgdGhpcy5kYXRhU2l6ZSA9IDA7XG5cbiAgdmFyIHNlbGYgPSB0aGlzO1xuICB0aGlzLl9zdHJlYW1zLmZvckVhY2goZnVuY3Rpb24oc3RyZWFtKSB7XG4gICAgaWYgKCFzdHJlYW0uZGF0YVNpemUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBzZWxmLmRhdGFTaXplICs9IHN0cmVhbS5kYXRhU2l6ZTtcbiAgfSk7XG5cbiAgaWYgKHRoaXMuX2N1cnJlbnRTdHJlYW0gJiYgdGhpcy5fY3VycmVudFN0cmVhbS5kYXRhU2l6ZSkge1xuICAgIHRoaXMuZGF0YVNpemUgKz0gdGhpcy5fY3VycmVudFN0cmVhbS5kYXRhU2l6ZTtcbiAgfVxufTtcblxuQ29tYmluZWRTdHJlYW0ucHJvdG90eXBlLl9lbWl0RXJyb3IgPSBmdW5jdGlvbihlcnIpIHtcbiAgdGhpcy5fcmVzZXQoKTtcbiAgdGhpcy5lbWl0KCdlcnJvcicsIGVycik7XG59O1xuIiwgIntcbiAgXCJhcHBsaWNhdGlvbi8xZC1pbnRlcmxlYXZlZC1wYXJpdHlmZWNcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vM2dwZGFzaC1xb2UtcmVwb3J0K3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjaGFyc2V0XCI6IFwiVVRGLThcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vM2dwcC1pbXMreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vM2dwcGhhbCtqc29uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vM2dwcGhhbGZvcm1zK2pzb25cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9hMmxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vYWNlK2Nib3JcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vYWN0aXZlbWVzc2FnZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9hY3Rpdml0eStqc29uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vYWx0by1jb3N0bWFwK2pzb25cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9hbHRvLWNvc3RtYXBmaWx0ZXIranNvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL2FsdG8tZGlyZWN0b3J5K2pzb25cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9hbHRvLWVuZHBvaW50Y29zdCtqc29uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vYWx0by1lbmRwb2ludGNvc3RwYXJhbXMranNvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL2FsdG8tZW5kcG9pbnRwcm9wK2pzb25cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9hbHRvLWVuZHBvaW50cHJvcHBhcmFtcytqc29uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vYWx0by1lcnJvcitqc29uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vYWx0by1uZXR3b3JrbWFwK2pzb25cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9hbHRvLW5ldHdvcmttYXBmaWx0ZXIranNvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL2FsdG8tdXBkYXRlc3RyZWFtY29udHJvbCtqc29uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vYWx0by11cGRhdGVzdHJlYW1wYXJhbXMranNvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL2FtbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9hbmRyZXctaW5zZXRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJlelwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL2FwcGxlZmlsZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9hcHBsaXh3YXJlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJhd1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL2F0K2p3dFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9hdGZcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vYXRmeFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9hdG9tK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiYXRvbVwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL2F0b21jYXQreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJhdG9tY2F0XCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vYXRvbWRlbGV0ZWQreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJhdG9tZGVsZXRlZFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL2F0b21pY21haWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vYXRvbXN2Yyt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImF0b21zdmNcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9hdHNjLWR3ZCt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImR3ZFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL2F0c2MtZHluYW1pYy1ldmVudC1tZXNzYWdlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL2F0c2MtaGVsZCt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImhlbGRcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9hdHNjLXJkdCtqc29uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vYXRzYy1yc2F0K3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wicnNhdFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL2F0eG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL2F1dGgtcG9saWN5K3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL2JhY25ldC14ZGQremlwXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiBmYWxzZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL2JhdGNoLXNtdHBcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vYmRvY1wiOiB7XG4gICAgXCJjb21wcmVzc2libGVcIjogZmFsc2UsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImJkb2NcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9iZWVwK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjaGFyc2V0XCI6IFwiVVRGLThcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vY2FsZW5kYXIranNvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL2NhbGVuZGFyK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wieGNzXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vY2FsbC1jb21wbGV0aW9uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL2NhbHMtMTg0MFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9jYXB0aXZlK2pzb25cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9jYm9yXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL2Nib3Itc2VxXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL2NjY2V4XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL2NjbXAreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vY2N4bWwreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJjY3htbFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL2NkZngreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJjZGZ4XCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vY2RtaS1jYXBhYmlsaXR5XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiY2RtaWFcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9jZG1pLWNvbnRhaW5lclwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImNkbWljXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vY2RtaS1kb21haW5cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJjZG1pZFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL2NkbWktb2JqZWN0XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiY2RtaW9cIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9jZG1pLXF1ZXVlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiY2RtaXFcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9jZG5pXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL2NlYVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9jZWEtMjAxOCt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9jZWxsbWwreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vY2Z3XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL2NpdHkranNvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL2NsclwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9jbHVlK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL2NsdWVfaW5mbyt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9jbXNcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vY25ycCt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9jb2FwLWdyb3VwK2pzb25cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9jb2FwLXBheWxvYWRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vY29tbW9uZ3JvdW5kXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL2NvbmZlcmVuY2UtaW5mbyt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9jb3NlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL2Nvc2Uta2V5XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL2Nvc2Uta2V5LXNldFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9jcGwreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJjcGxcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9jc3JhdHRyc1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9jc3RhK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL2NzdGFkYXRhK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL2Nzdm0ranNvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL2N1LXNlZW1lXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJjdVwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL2N3dFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9jeWJlcmNhc2hcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vZGFydFwiOiB7XG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL2Rhc2greG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJtcGRcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9kYXNoLXBhdGNoK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wibXBwXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vZGFzaGRlbHRhXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL2Rhdm1vdW50K3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiZGF2bW91bnRcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9kY2EtcmZ0XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL2RjZFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9kZWMtZHhcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vZGlhbG9nLWluZm8reG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vZGljb21cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vZGljb20ranNvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL2RpY29tK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL2RpaVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9kaXRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vZG5zXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL2Rucytqc29uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vZG5zLW1lc3NhZ2VcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vZG9jYm9vayt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiZGJrXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vZG90cytjYm9yXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL2Rza3BwK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL2Rzc2MrZGVyXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiZHNzY1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL2Rzc2MreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ4ZHNzY1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL2R2Y3NcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vZWNtYXNjcmlwdFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiZXNcIixcImVjbWFcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9lZGktY29uc2VudFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9lZGkteDEyXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiBmYWxzZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL2VkaWZhY3RcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IGZhbHNlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vZWZpXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL2VsbStqc29uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNoYXJzZXRcIjogXCJVVEYtOFwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9lbG0reG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vZW1lcmdlbmN5Y2FsbGRhdGEuY2FwK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjaGFyc2V0XCI6IFwiVVRGLThcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vZW1lcmdlbmN5Y2FsbGRhdGEuY29tbWVudCt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9lbWVyZ2VuY3ljYWxsZGF0YS5jb250cm9sK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL2VtZXJnZW5jeWNhbGxkYXRhLmRldmljZWluZm8reG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vZW1lcmdlbmN5Y2FsbGRhdGEuZWNhbGwubXNkXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL2VtZXJnZW5jeWNhbGxkYXRhLnByb3ZpZGVyaW5mbyt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9lbWVyZ2VuY3ljYWxsZGF0YS5zZXJ2aWNlaW5mbyt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9lbWVyZ2VuY3ljYWxsZGF0YS5zdWJzY3JpYmVyaW5mbyt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9lbWVyZ2VuY3ljYWxsZGF0YS52ZWRzK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL2VtbWEreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJlbW1hXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vZW1vdGlvbm1sK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiZW1vdGlvbm1sXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vZW5jYXBydHBcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vZXBwK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL2VwdWIremlwXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiBmYWxzZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiZXB1YlwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL2VzaG9wXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL2V4aVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImV4aVwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL2V4cGVjdC1jdC1yZXBvcnQranNvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL2V4cHJlc3NcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJleHBcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9mYXN0aW5mb3NldFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9mYXN0c29hcFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9mZHQreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJmZHRcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9maGlyK2pzb25cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY2hhcnNldFwiOiBcIlVURi04XCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL2ZoaXIreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNoYXJzZXRcIjogXCJVVEYtOFwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9maWRvLnRydXN0ZWQtYXBwcytqc29uXCI6IHtcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vZml0c1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9mbGV4ZmVjXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL2ZvbnQtc2ZudFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9mb250LXRkcGZyXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wicGZyXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vZm9udC13b2ZmXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiBmYWxzZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL2ZyYW1ld29yay1hdHRyaWJ1dGVzK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL2dlbytqc29uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJnZW9qc29uXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vZ2VvK2pzb24tc2VxXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL2dlb3BhY2thZ2Urc3FsaXRlM1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9nZW94YWNtbCt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9nbHRmLWJ1ZmZlclwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9nbWwreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJnbWxcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9ncHgreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImdweFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL2d4ZlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiZ3hmXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vZ3ppcFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogZmFsc2UsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImd6XCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vaDIyNFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9oZWxkK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL2hqc29uXCI6IHtcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiaGpzb25cIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9odHRwXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL2h5cGVyc3R1ZGlvXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wic3RrXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vaWJlLWtleS1yZXF1ZXN0K3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL2liZS1wa2ctcmVwbHkreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vaWJlLXBwLWRhdGFcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vaWdlc1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9pbS1pc2NvbXBvc2luZyt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY2hhcnNldFwiOiBcIlVURi04XCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL2luZGV4XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL2luZGV4LmNtZFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9pbmRleC5vYmpcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vaW5kZXgucmVzcG9uc2VcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vaW5kZXgudm5kXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL2lua21sK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiaW5rXCIsXCJpbmttbFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL2lvdHBcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vaXBmaXhcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJpcGZpeFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL2lwcFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9pc3VwXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL2l0cyt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIml0c1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL2phdmEtYXJjaGl2ZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiBmYWxzZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiamFyXCIsXCJ3YXJcIixcImVhclwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL2phdmEtc2VyaWFsaXplZC1vYmplY3RcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogZmFsc2UsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInNlclwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL2phdmEtdm1cIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogZmFsc2UsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImNsYXNzXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vamF2YXNjcmlwdFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjaGFyc2V0XCI6IFwiVVRGLThcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJqc1wiLFwibWpzXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vamYyZmVlZCtqc29uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vam9zZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9qb3NlK2pzb25cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9qcmQranNvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL2pzY2FsZW5kYXIranNvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL2pzb25cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY2hhcnNldFwiOiBcIlVURi04XCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wianNvblwiLFwibWFwXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vanNvbi1wYXRjaCtqc29uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vanNvbi1zZXFcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vanNvbjVcIjoge1xuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJqc29uNVwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL2pzb25tbCtqc29uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImpzb25tbFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL2p3aytqc29uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vandrLXNldCtqc29uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vand0XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL2twbWwtcmVxdWVzdCt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9rcG1sLXJlc3BvbnNlK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL2xkK2pzb25cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImpzb25sZFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL2xncit4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImxnclwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL2xpbmstZm9ybWF0XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL2xvYWQtY29udHJvbCt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9sb3N0K3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wibG9zdHhtbFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL2xvc3RzeW5jK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL2xwZit6aXBcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IGZhbHNlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vbHhmXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL21hYy1iaW5oZXg0MFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImhxeFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL21hYy1jb21wYWN0cHJvXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJjcHRcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9tYWN3cml0ZWlpXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL21hZHMreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJtYWRzXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vbWFuaWZlc3QranNvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjaGFyc2V0XCI6IFwiVVRGLThcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ3ZWJtYW5pZmVzdFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL21hcmNcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJtcmNcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9tYXJjeG1sK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wibXJjeFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL21hdGhlbWF0aWNhXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wibWFcIixcIm5iXCIsXCJtYlwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL21hdGhtbCt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIm1hdGhtbFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL21hdGhtbC1jb250ZW50K3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL21hdGhtbC1wcmVzZW50YXRpb24reG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vbWJtcy1hc3NvY2lhdGVkLXByb2NlZHVyZS1kZXNjcmlwdGlvbit4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9tYm1zLWRlcmVnaXN0ZXIreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vbWJtcy1lbnZlbG9wZSt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9tYm1zLW1zayt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9tYm1zLW1zay1yZXNwb25zZSt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9tYm1zLXByb3RlY3Rpb24tZGVzY3JpcHRpb24reG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vbWJtcy1yZWNlcHRpb24tcmVwb3J0K3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL21ibXMtcmVnaXN0ZXIreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vbWJtcy1yZWdpc3Rlci1yZXNwb25zZSt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9tYm1zLXNjaGVkdWxlK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL21ibXMtdXNlci1zZXJ2aWNlLWRlc2NyaXB0aW9uK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL21ib3hcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJtYm94XCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vbWVkaWEtcG9saWN5LWRhdGFzZXQreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJtcGZcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9tZWRpYV9jb250cm9sK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL21lZGlhc2VydmVyY29udHJvbCt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIm1zY21sXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vbWVyZ2UtcGF0Y2granNvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL21ldGFsaW5rK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJtZXRhbGlua1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL21ldGFsaW5rNCt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIm1ldGE0XCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vbWV0cyt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIm1ldHNcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9tZjRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vbWlrZXlcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vbWlwY1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9taXNzaW5nLWJsb2NrcytjYm9yLXNlcVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9tbXQtYWVpK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wibWFlaVwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL21tdC11c2QreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJtdXNkXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vbW9kcyt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIm1vZHNcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9tb3NzLWtleXNcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vbW9zcy1zaWduYXR1cmVcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vbW9zc2tleS1kYXRhXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL21vc3NrZXktcmVxdWVzdFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9tcDIxXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wibTIxXCIsXCJtcDIxXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vbXA0XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wibXA0c1wiLFwibTRwXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vbXBlZzQtZ2VuZXJpY1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9tcGVnNC1pb2RcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vbXBlZzQtaW9kLXhtdFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9tcmItY29uc3VtZXIreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vbXJiLXB1Ymxpc2greG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vbXNjLWl2cit4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY2hhcnNldFwiOiBcIlVURi04XCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL21zYy1taXhlcit4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY2hhcnNldFwiOiBcIlVURi04XCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL21zd29yZFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogZmFsc2UsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImRvY1wiLFwiZG90XCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vbXVkK2pzb25cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9tdWx0aXBhcnQtY29yZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9teGZcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJteGZcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9uLXF1YWRzXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wibnFcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9uLXRyaXBsZXNcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJudFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL25hc2RhdGFcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vbmV3cy1jaGVja2dyb3Vwc1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjaGFyc2V0XCI6IFwiVVMtQVNDSUlcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL25ld3MtZ3JvdXBpbmZvXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNoYXJzZXRcIjogXCJVUy1BU0NJSVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vbmV3cy10cmFuc21pc3Npb25cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vbmxzbWwreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vbm9kZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImNqc1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL25zc1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9vYXV0aC1hdXRoei1yZXErand0XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL29ibGl2aW91cy1kbnMtbWVzc2FnZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9vY3NwLXJlcXVlc3RcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vb2NzcC1yZXNwb25zZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW1cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IGZhbHNlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJiaW5cIixcImRtc1wiLFwibHJmXCIsXCJtYXJcIixcInNvXCIsXCJkaXN0XCIsXCJkaXN0elwiLFwicGtnXCIsXCJicGtcIixcImR1bXBcIixcImVsY1wiLFwiZGVwbG95XCIsXCJleGVcIixcImRsbFwiLFwiZGViXCIsXCJkbWdcIixcImlzb1wiLFwiaW1nXCIsXCJtc2lcIixcIm1zcFwiLFwibXNtXCIsXCJidWZmZXJcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9vZGFcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJvZGFcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9vZG0reG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vb2R4XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL29lYnBzLXBhY2thZ2UreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJvcGZcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9vZ2dcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IGZhbHNlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJvZ3hcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9vbWRvYyt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wib21kb2NcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9vbmVub3RlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJvbmV0b2NcIixcIm9uZXRvYzJcIixcIm9uZXRtcFwiLFwib25lcGtnXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vb3BjLW5vZGVzZXQreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vb3Njb3JlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL294cHNcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJveHBzXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vcDIxXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3AyMSt6aXBcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IGZhbHNlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vcDJwLW92ZXJsYXkreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJyZWxvXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vcGFyaXR5ZmVjXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3Bhc3Nwb3J0XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3BhdGNoLW9wcy1lcnJvcit4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInhlclwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3BkZlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogZmFsc2UsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInBkZlwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3BkeFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9wZW0tY2VydGlmaWNhdGUtY2hhaW5cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vcGdwLWVuY3J5cHRlZFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogZmFsc2UsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInBncFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3BncC1rZXlzXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiYXNjXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vcGdwLXNpZ25hdHVyZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImFzY1wiLFwic2lnXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vcGljcy1ydWxlc1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wicHJmXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vcGlkZit4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY2hhcnNldFwiOiBcIlVURi04XCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3BpZGYtZGlmZit4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY2hhcnNldFwiOiBcIlVURi04XCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3BrY3MxMFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInAxMFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3BrY3MxMlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9wa2NzNy1taW1lXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wicDdtXCIsXCJwN2NcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9wa2NzNy1zaWduYXR1cmVcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJwN3NcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9wa2NzOFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInA4XCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vcGtjczgtZW5jcnlwdGVkXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3BraXgtYXR0ci1jZXJ0XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiYWNcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9wa2l4LWNlcnRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJjZXJcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9wa2l4LWNybFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImNybFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3BraXgtcGtpcGF0aFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInBraXBhdGhcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9wa2l4Y21wXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wicGtpXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vcGxzK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wicGxzXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vcG9jLXNldHRpbmdzK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjaGFyc2V0XCI6IFwiVVRGLThcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vcG9zdHNjcmlwdFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiYWlcIixcImVwc1wiLFwicHNcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9wcHNwLXRyYWNrZXIranNvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3Byb2JsZW0ranNvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3Byb2JsZW0reG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vcHJvdmVuYW5jZSt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInByb3Z4XCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vcHJzLmFsdmVzdHJhbmQudGl0cmF4LXNoZWV0XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3Bycy5jd3dcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJjd3dcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9wcnMuY3luXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNoYXJzZXRcIjogXCI3LUJJVFwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vcHJzLmhwdWIremlwXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiBmYWxzZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3Bycy5ucHJlbmRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vcHJzLnBsdWNrZXJcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vcHJzLnJkZi14bWwtY3J5cHRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vcHJzLnhzZit4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9wc2tjK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wicHNrY3htbFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3B2ZCtqc29uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vcXNpZ1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9yYW1sK3lhbWxcIjoge1xuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInJhbWxcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9yYXB0b3JmZWNcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vcmRhcCtqc29uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vcmRmK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wicmRmXCIsXCJvd2xcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9yZWdpbmZvK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wicmlmXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vcmVsYXgtbmctY29tcGFjdC1zeW50YXhcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJybmNcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9yZW1vdGUtcHJpbnRpbmdcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vcmVwdXRvbitqc29uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vcmVzb3VyY2UtbGlzdHMreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJybFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3Jlc291cmNlLWxpc3RzLWRpZmYreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJybGRcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9yZmMreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vcmlzY29zXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3JsbWkreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vcmxzLXNlcnZpY2VzK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wicnNcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9yb3V0ZS1hcGQreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJyYXBkXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vcm91dGUtcy10c2lkK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wic2xzXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vcm91dGUtdXNkK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wicnVzZFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3Jwa2ktZ2hvc3RidXN0ZXJzXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiZ2JyXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vcnBraS1tYW5pZmVzdFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIm1mdFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3Jwa2ktcHVibGljYXRpb25cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vcnBraS1yb2FcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJyb2FcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9ycGtpLXVwZG93blwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9yc2QreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInJzZFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3Jzcyt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wicnNzXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vcnRmXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJydGZcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9ydHBsb29wYmFja1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9ydHhcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vc2FtbGFzc2VydGlvbit4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9zYW1sbWV0YWRhdGEreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vc2FyaWYranNvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3NhcmlmLWV4dGVybmFsLXByb3BlcnRpZXMranNvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3NiZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9zYm1sK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wic2JtbFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3NjYWlwK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3NjaW0ranNvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3NjdnAtY3YtcmVxdWVzdFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInNjcVwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3NjdnAtY3YtcmVzcG9uc2VcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJzY3NcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9zY3ZwLXZwLXJlcXVlc3RcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJzcHFcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9zY3ZwLXZwLXJlc3BvbnNlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wic3BwXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vc2RwXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wic2RwXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vc2VjZXZlbnQrand0XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3Nlbm1sK2Nib3JcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vc2VubWwranNvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3Nlbm1sK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wic2VubWx4XCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vc2VubWwtZXRjaCtjYm9yXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3Nlbm1sLWV0Y2granNvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3Nlbm1sLWV4aVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9zZW5zbWwrY2JvclwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9zZW5zbWwranNvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3NlbnNtbCt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInNlbnNtbHhcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9zZW5zbWwtZXhpXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3NlcCt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9zZXAtZXhpXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3Nlc3Npb24taW5mb1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9zZXQtcGF5bWVudFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9zZXQtcGF5bWVudC1pbml0aWF0aW9uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wic2V0cGF5XCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vc2V0LXJlZ2lzdHJhdGlvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9zZXQtcmVnaXN0cmF0aW9uLWluaXRpYXRpb25cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJzZXRyZWdcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9zZ21sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3NnbWwtb3Blbi1jYXRhbG9nXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3NoZit4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInNoZlwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3NpZXZlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wic2l2XCIsXCJzaWV2ZVwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3NpbXBsZS1maWx0ZXIreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vc2ltcGxlLW1lc3NhZ2Utc3VtbWFyeVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9zaW1wbGVzeW1ib2xjb250YWluZXJcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vc2lwY1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9zbGF0ZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9zbWlsXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3NtaWwreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJzbWlcIixcInNtaWxcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9zbXB0ZTMzNm1cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vc29hcCtmYXN0aW5mb3NldFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9zb2FwK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3NwYXJxbC1xdWVyeVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInJxXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vc3BhcnFsLXJlc3VsdHMreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJzcnhcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9zcGR4K2pzb25cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9zcGlyaXRzLWV2ZW50K3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3NxbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9zcmdzXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiZ3JhbVwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3NyZ3MreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJncnhtbFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3NydSt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInNydVwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3NzZGwreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInNzZGxcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi9zc21sK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wic3NtbFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3N0aXgranNvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3N3aWQreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJzd2lkdGFnXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdGFtcC1hcGV4LXVwZGF0ZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi90YW1wLWFwZXgtdXBkYXRlLWNvbmZpcm1cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdGFtcC1jb21tdW5pdHktdXBkYXRlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3RhbXAtY29tbXVuaXR5LXVwZGF0ZS1jb25maXJtXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3RhbXAtZXJyb3JcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdGFtcC1zZXF1ZW5jZS1hZGp1c3RcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdGFtcC1zZXF1ZW5jZS1hZGp1c3QtY29uZmlybVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi90YW1wLXN0YXR1cy1xdWVyeVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi90YW1wLXN0YXR1cy1yZXNwb25zZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi90YW1wLXVwZGF0ZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi90YW1wLXVwZGF0ZS1jb25maXJtXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3RhclwiOiB7XG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3RheGlpK2pzb25cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi90ZCtqc29uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdGVpK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1widGVpXCIsXCJ0ZWljb3JwdXNcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi90ZXRyYV9pc2lcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdGhyYXVkK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1widGZpXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdGltZXN0YW1wLXF1ZXJ5XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3RpbWVzdGFtcC1yZXBseVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi90aW1lc3RhbXBlZC1kYXRhXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1widHNkXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdGxzcnB0K2d6aXBcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdGxzcnB0K2pzb25cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi90bmF1dGhsaXN0XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3Rva2VuLWludHJvc3BlY3Rpb24rand0XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3RvbWxcIjoge1xuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInRvbWxcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi90cmlja2xlLWljZS1zZHBmcmFnXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3RyaWdcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ0cmlnXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdHRtbCt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInR0bWxcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi90dmUtdHJpZ2dlclwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi90emlmXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3R6aWYtbGVhcFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi91Ympzb25cIjoge1xuICAgIFwiY29tcHJlc3NpYmxlXCI6IGZhbHNlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ1YmpcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi91bHBmZWNcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdXJjLWdycHNoZWV0K3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3VyYy1yZXNzaGVldCt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInJzaGVldFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3VyYy10YXJnZXRkZXNjK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1widGRcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi91cmMtdWlzb2NrZXRkZXNjK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZjYXJkK2pzb25cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92Y2FyZCt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92ZW1taVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92aXZpZGVuY2Uuc2NyaXB0ZmlsZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC4xMDAwbWluZHMuZGVjaXNpb24tbW9kZWwreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCIxa21cIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC1wcm9zZSt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC1wcm9zZS1wYzNjaCt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC12MngtbG9jYWwtc2VydmljZS1pbmZvcm1hdGlvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC41Z25hc1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5hY2Nlc3MtdHJhbnNmZXItZXZlbnRzK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLmJzZit4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5nbW9wK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLmd0cGNcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLjNncHAuaW50ZXJ3b3JraW5nLWRhdGFcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLjNncHAubHBwXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLm1jLXNpZ25hbGxpbmctZWFyXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLm1jZGF0YS1hZmZpbGlhdGlvbi1jb21tYW5kK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLm1jZGF0YS1pbmZvK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLm1jZGF0YS1wYXlsb2FkXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLm1jZGF0YS1zZXJ2aWNlLWNvbmZpZyt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5tY2RhdGEtc2lnbmFsbGluZ1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5tY2RhdGEtdWUtY29uZmlnK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLm1jZGF0YS11c2VyLXByb2ZpbGUreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLjNncHAubWNwdHQtYWZmaWxpYXRpb24tY29tbWFuZCt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5tY3B0dC1mbG9vci1yZXF1ZXN0K3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLm1jcHR0LWluZm8reG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLjNncHAubWNwdHQtbG9jYXRpb24taW5mbyt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5tY3B0dC1tYm1zLXVzYWdlLWluZm8reG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLjNncHAubWNwdHQtc2VydmljZS1jb25maWcreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLjNncHAubWNwdHQtc2lnbmVkK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLm1jcHR0LXVlLWNvbmZpZyt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5tY3B0dC11ZS1pbml0LWNvbmZpZyt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5tY3B0dC11c2VyLXByb2ZpbGUreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLjNncHAubWN2aWRlby1hZmZpbGlhdGlvbi1jb21tYW5kK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLm1jdmlkZW8tYWZmaWxpYXRpb24taW5mbyt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5tY3ZpZGVvLWluZm8reG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLjNncHAubWN2aWRlby1sb2NhdGlvbi1pbmZvK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLm1jdmlkZW8tbWJtcy11c2FnZS1pbmZvK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLm1jdmlkZW8tc2VydmljZS1jb25maWcreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLjNncHAubWN2aWRlby10cmFuc21pc3Npb24tcmVxdWVzdCt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5tY3ZpZGVvLXVlLWNvbmZpZyt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5tY3ZpZGVvLXVzZXItcHJvZmlsZSt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5taWQtY2FsbCt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5uZ2FwXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLnBmY3BcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLjNncHAucGljLWJ3LWxhcmdlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wicGxiXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLjNncHAucGljLWJ3LXNtYWxsXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wicHNiXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLjNncHAucGljLWJ3LXZhclwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInB2YlwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLnMxYXBcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLjNncHAuc21zXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLnNtcyt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5zcnZjYy1leHQreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLjNncHAuc3J2Y2MtaW5mbyt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5zdGF0ZS1hbmQtZXZlbnQtaW5mbyt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC51c3NkK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwMi5iY21jc2luZm8reG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLjNncHAyLnNtc1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcDIudGNhcFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInRjYXBcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuM2xpZ2h0c3NvZnR3YXJlLmltYWdlc2NhbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuM20ucG9zdC1pdC1ub3Rlc1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInB3blwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5hY2NwYWMuc2ltcGx5LmFzb1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImFzb1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5hY2NwYWMuc2ltcGx5LmltcFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImltcFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5hY3Vjb2JvbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImFjdVwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5hY3Vjb3JwXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiYXRjXCIsXCJhY3V0Y1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5hZG9iZS5haXItYXBwbGljYXRpb24taW5zdGFsbGVyLXBhY2thZ2UremlwXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IGZhbHNlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJhaXJcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuYWRvYmUuZmxhc2gubW92aWVcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmFkb2JlLmZvcm1zY2VudHJhbC5mY2R0XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiZmNkdFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5hZG9iZS5meHBcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJmeHBcIixcImZ4cGxcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuYWRvYmUucGFydGlhbC11cGxvYWRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmFkb2JlLnhkcCt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInhkcFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5hZG9iZS54ZmRmXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wieGZkZlwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5hZXRoZXIuaW1wXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5hZnBjLmFmcGxpbmVkYXRhXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5hZnBjLmFmcGxpbmVkYXRhLXBhZ2VkZWZcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmFmcGMuY21vY2EtY21yZXNvdXJjZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuYWZwYy5mb2NhLWNoYXJzZXRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmFmcGMuZm9jYS1jb2RlZGZvbnRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmFmcGMuZm9jYS1jb2RlcGFnZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuYWZwYy5tb2RjYVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuYWZwYy5tb2RjYS1jbXRhYmxlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5hZnBjLm1vZGNhLWZvcm1kZWZcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmFmcGMubW9kY2EtbWVkaXVtbWFwXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5hZnBjLm1vZGNhLW9iamVjdGNvbnRhaW5lclwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuYWZwYy5tb2RjYS1vdmVybGF5XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5hZnBjLm1vZGNhLXBhZ2VzZWdtZW50XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5hZ2VcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJhZ2VcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuYWgtYmFyY29kZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuYWhlYWQuc3BhY2VcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJhaGVhZFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5haXJ6aXAuZmlsZXNlY3VyZS5hemZcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJhemZcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuYWlyemlwLmZpbGVzZWN1cmUuYXpzXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiYXpzXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmFtYWRldXMranNvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5hbWF6b24uZWJvb2tcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImF6d1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5hbWF6b24ubW9iaTgtZWJvb2tcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmFtZXJpY2FuZHluYW1pY3MuYWNjXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiYWNjXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmFtaWdhLmFtaVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImFtaVwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5hbXVuZHNlbi5tYXplK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5hbmRyb2lkLm90YVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuYW5kcm9pZC5wYWNrYWdlLWFyY2hpdmVcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogZmFsc2UsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImFwa1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5hbmtpXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5hbnNlci13ZWItY2VydGlmaWNhdGUtaXNzdWUtaW5pdGlhdGlvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImNpaVwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5hbnNlci13ZWItZnVuZHMtdHJhbnNmZXItaW5pdGlhdGlvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiZnRpXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmFudGl4LmdhbWUtY29tcG9uZW50XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiYXR4XCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmFwYWNoZS5hcnJvdy5maWxlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5hcGFjaGUuYXJyb3cuc3RyZWFtXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5hcGFjaGUudGhyaWZ0LmJpbmFyeVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuYXBhY2hlLnRocmlmdC5jb21wYWN0XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5hcGFjaGUudGhyaWZ0Lmpzb25cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmFwaStqc29uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmFwbGV4dG9yLndhcnJwK2pzb25cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuYXBvdGhla2VuZGUucmVzZXJ2YXRpb24ranNvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5hcHBsZS5pbnN0YWxsZXIreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJtcGtnXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmFwcGxlLmtleW5vdGVcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJrZXlcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuYXBwbGUubXBlZ3VybFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIm0zdThcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuYXBwbGUubnVtYmVyc1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIm51bWJlcnNcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuYXBwbGUucGFnZXNcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJwYWdlc1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5hcHBsZS5wa3Bhc3NcIjoge1xuICAgIFwiY29tcHJlc3NpYmxlXCI6IGZhbHNlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJwa3Bhc3NcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuYXJhc3RyYS5zd2lcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmFyaXN0YW5ldHdvcmtzLnN3aVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInN3aVwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5hcnRpc2FuK2pzb25cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuYXJ0c3F1YXJlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5hc3RyYWVhLXNvZnR3YXJlLmlvdGFcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJpb3RhXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmF1ZGlvZ3JhcGhcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJhZXBcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuYXV0b3BhY2thZ2VcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmF2YWxvbitqc29uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmF2aXN0YXIreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmJhbHNhbWlxLmJtbWwreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJibW1sXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmJhbHNhbWlxLmJtcHJcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmJhbmFuYS1hY2NvdW50aW5nXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5iYmYudXNwLmVycm9yXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5iYmYudXNwLm1zZ1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuYmJmLnVzcC5tc2cranNvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5iZWtpdHp1ci1zdGVjaCtqc29uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmJpbnQubWVkLWNvbnRlbnRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmJpb3BheC5yZGYreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmJsaW5rLWlkYi12YWx1ZS13cmFwcGVyXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5ibHVlaWNlLm11bHRpcGFzc1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIm1wbVwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5ibHVldG9vdGguZXAub29iXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5ibHVldG9vdGgubGUub29iXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5ibWlcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJibWlcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuYnBmXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5icGYzXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5idXNpbmVzc29iamVjdHNcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJyZXBcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuYnl1LnVhcGkranNvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5jYWItanNjcmlwdFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuY2Fub24tY3BkbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuY2Fub24tbGlwc1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuY2FwYXN5c3RlbXMtcGcranNvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5jZW5kaW8udGhpbmxpbmMuY2xpZW50Y29uZlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuY2VudHVyeS1zeXN0ZW1zLnRjcF9zdHJlYW1cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmNoZW1kcmF3K3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiY2R4bWxcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuY2hlc3MtcGduXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5jaGlwbnV0cy5rYXJhb2tlLW1tZFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIm1tZFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5jaWVkaVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuY2luZGVyZWxsYVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImNkeVwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5jaXJwYWNrLmlzZG4tZXh0XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5jaXRhdGlvbnN0eWxlcy5zdHlsZSt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImNzbFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5jbGF5bW9yZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImNsYVwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5jbG9hbnRvLnJwOVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInJwOVwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5jbG9uay5jNGdyb3VwXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiYzRnXCIsXCJjNGRcIixcImM0ZlwiLFwiYzRwXCIsXCJjNHVcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuY2x1ZXRydXN0LmNhcnRvbW9iaWxlLWNvbmZpZ1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImMxMWFtY1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5jbHVldHJ1c3QuY2FydG9tb2JpbGUtY29uZmlnLXBrZ1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImMxMWFtelwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5jb2ZmZWVzY3JpcHRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmNvbGxhYmlvLnhvZG9jdW1lbnRzLmRvY3VtZW50XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5jb2xsYWJpby54b2RvY3VtZW50cy5kb2N1bWVudC10ZW1wbGF0ZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuY29sbGFiaW8ueG9kb2N1bWVudHMucHJlc2VudGF0aW9uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5jb2xsYWJpby54b2RvY3VtZW50cy5wcmVzZW50YXRpb24tdGVtcGxhdGVcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmNvbGxhYmlvLnhvZG9jdW1lbnRzLnNwcmVhZHNoZWV0XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5jb2xsYWJpby54b2RvY3VtZW50cy5zcHJlYWRzaGVldC10ZW1wbGF0ZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuY29sbGVjdGlvbitqc29uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmNvbGxlY3Rpb24uZG9jK2pzb25cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuY29sbGVjdGlvbi5uZXh0K2pzb25cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuY29taWNib29rK3ppcFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogZmFsc2VcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuY29taWNib29rLXJhclwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuY29tbWVyY2UtYmF0dGVsbGVcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmNvbW1vbnNwYWNlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiY3NwXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmNvbnRhY3QuY21zZ1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImNkYmNtc2dcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuY29yZW9zLmlnbml0aW9uK2pzb25cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuY29zbW9jYWxsZXJcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJjbWNcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuY3JpY2suY2xpY2tlclwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImNsa3hcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuY3JpY2suY2xpY2tlci5rZXlib2FyZFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImNsa2tcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuY3JpY2suY2xpY2tlci5wYWxldHRlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiY2xrcFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5jcmljay5jbGlja2VyLnRlbXBsYXRlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiY2xrdFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5jcmljay5jbGlja2VyLndvcmRiYW5rXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiY2xrd1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5jcml0aWNhbHRvb2xzLndicyt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIndic1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5jcnlwdGlpLnBpcGUranNvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5jcnlwdG8tc2hhZGUtZmlsZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuY3J5cHRvbWF0b3IuZW5jcnlwdGVkXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5jcnlwdG9tYXRvci52YXVsdFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuY3RjLXBvc21sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wicG1sXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmN0Y3Qud3MreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmN1cHMtcGRmXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5jdXBzLXBvc3RzY3JpcHRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmN1cHMtcHBkXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wicHBkXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmN1cHMtcmFzdGVyXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5jdXBzLXJhd1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuY3VybFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuY3VybC5jYXJcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImNhclwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5jdXJsLnBjdXJsXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJwY3VybFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5jeWFuLmRlYW4ucm9vdCt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuY3liYW5rXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5jeWNsb25lZHgranNvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5jeWNsb25lZHgreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmQybC5jb3Vyc2VwYWNrYWdlMXAwK3ppcFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogZmFsc2VcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZDNtLWRhdGFzZXRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmQzbS1wcm9ibGVtXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5kYXJ0XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJkYXJ0XCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmRhdGEtdmlzaW9uLnJkelwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInJkelwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5kYXRhcGFja2FnZStqc29uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmRhdGFyZXNvdXJjZStqc29uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmRiZlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImRiZlwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5kZWJpYW4uYmluYXJ5LXBhY2thZ2VcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmRlY2UuZGF0YVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInV2ZlwiLFwidXZ2ZlwiLFwidXZkXCIsXCJ1dnZkXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmRlY2UudHRtbCt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInV2dFwiLFwidXZ2dFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5kZWNlLnVuc3BlY2lmaWVkXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1widXZ4XCIsXCJ1dnZ4XCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmRlY2UuemlwXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1widXZ6XCIsXCJ1dnZ6XCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmRlbm92by5mY3NlbGF5b3V0LWxpbmtcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJmZV9sYXVuY2hcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZGVzbXVtZS5tb3ZpZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZGlyLWJpLnBsYXRlLWRsLW5vc3VmZml4XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5kbS5kZWxlZ2F0aW9uK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5kbmFcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJkbmFcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZG9jdW1lbnQranNvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5kb2xieS5tbHBcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIm1scFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5kb2xieS5tb2JpbGUuMVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZG9sYnkubW9iaWxlLjJcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmRvcmVtaXIuc2NvcmVjbG91ZC1iaW5hcnktZG9jdW1lbnRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmRwZ3JhcGhcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJkcGdcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZHJlYW1mYWN0b3J5XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiZGZhY1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5kcml2ZStqc29uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmRzLWtleXBvaW50XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJrcHh4XCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmR0Zy5sb2NhbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZHRnLmxvY2FsLmZsYXNoXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5kdGcubG9jYWwuaHRtbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZHZiLmFpdFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImFpdFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5kdmIuZHZiaXNsK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5kdmIuZHZialwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZHZiLmVzZ2NvbnRhaW5lclwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZHZiLmlwZGNkZnRub3RpZmFjY2Vzc1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZHZiLmlwZGNlc2dhY2Nlc3NcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmR2Yi5pcGRjZXNnYWNjZXNzMlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZHZiLmlwZGNlc2dwZGRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmR2Yi5pcGRjcm9hbWluZ1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZHZiLmlwdHYuYWxmZWMtYmFzZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZHZiLmlwdHYuYWxmZWMtZW5oYW5jZW1lbnRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmR2Yi5ub3RpZi1hZ2dyZWdhdGUtcm9vdCt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZHZiLm5vdGlmLWNvbnRhaW5lcit4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZHZiLm5vdGlmLWdlbmVyaWMreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmR2Yi5ub3RpZi1pYS1tc2dsaXN0K3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5kdmIubm90aWYtaWEtcmVnaXN0cmF0aW9uLXJlcXVlc3QreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmR2Yi5ub3RpZi1pYS1yZWdpc3RyYXRpb24tcmVzcG9uc2UreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmR2Yi5ub3RpZi1pbml0K3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5kdmIucGZyXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5kdmIuc2VydmljZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInN2Y1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5keHJcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmR5bmFnZW9cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJnZW9cIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZHpyXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5lYXN5a2FyYW9rZS5jZGdkb3dubG9hZFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZWNkaXMtdXBkYXRlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5lY2lwLnJscFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZWNsaXBzZS5kaXR0bytqc29uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmVjb3dpbi5jaGFydFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIm1hZ1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5lY293aW4uZmlsZXJlcXVlc3RcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmVjb3dpbi5maWxldXBkYXRlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5lY293aW4uc2VyaWVzXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5lY293aW4uc2VyaWVzcmVxdWVzdFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZWNvd2luLnNlcmllc3VwZGF0ZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZWZpLmltZ1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZWZpLmlzb1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZW1jbGllbnQuYWNjZXNzcmVxdWVzdCt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZW5saXZlblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIm5tbFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5lbnBoYXNlLmVudm95XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5lcHJpbnRzLmRhdGEreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmVwc29uLmVzZlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImVzZlwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5lcHNvbi5tc2ZcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJtc2ZcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZXBzb24ucXVpY2thbmltZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInFhbVwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5lcHNvbi5zYWx0XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wic2x0XCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmVwc29uLnNzZlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInNzZlwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5lcmljc3Nvbi5xdWlja2NhbGxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmVzcGFzcy1lc3Bhc3MremlwXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiBmYWxzZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5lc3ppZ25vMyt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImVzM1wiLFwiZXQzXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmV0c2kuYW9jK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5ldHNpLmFzaWMtZSt6aXBcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IGZhbHNlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmV0c2kuYXNpYy1zK3ppcFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogZmFsc2VcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZXRzaS5jdWcreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmV0c2kuaXB0dmNvbW1hbmQreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmV0c2kuaXB0dmRpc2NvdmVyeSt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZXRzaS5pcHR2cHJvZmlsZSt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZXRzaS5pcHR2c2FkLWJjK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5ldHNpLmlwdHZzYWQtY29kK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5ldHNpLmlwdHZzYWQtbnB2cit4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZXRzaS5pcHR2c2VydmljZSt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZXRzaS5pcHR2c3luYyt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZXRzaS5pcHR2dWVwcm9maWxlK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5ldHNpLm1jaWQreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmV0c2kubWhlZzVcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmV0c2kub3ZlcmxvYWQtY29udHJvbC1wb2xpY3ktZGF0YXNldCt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZXRzaS5wc3RuK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5ldHNpLnNjaSt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZXRzaS5zaW1zZXJ2cyt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZXRzaS50aW1lc3RhbXAtdG9rZW5cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmV0c2kudHNsK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5ldHNpLnRzbC5kZXJcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmV1Lmthc3Bhcmlhbi5jYXIranNvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5ldWRvcmEuZGF0YVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZXZvbHYuZWNpZy5wcm9maWxlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5ldm9sdi5lY2lnLnNldHRpbmdzXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5ldm9sdi5lY2lnLnRoZW1lXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5leHN0cmVhbS1lbXBvd2VyK3ppcFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogZmFsc2VcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZXhzdHJlYW0tcGFja2FnZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZXpwaXgtYWxidW1cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJlejJcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZXpwaXgtcGFja2FnZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImV6M1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5mLXNlY3VyZS5tb2JpbGVcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmZhbWlseXNlYXJjaC5nZWRjb20remlwXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiBmYWxzZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5mYXN0Y29weS1kaXNrLWltYWdlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5mZGZcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJmZGZcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZmRzbi5tc2VlZFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIm1zZWVkXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmZkc24uc2VlZFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInNlZWRcIixcImRhdGFsZXNzXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmZmc25zXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5maWNsYWIuZmxiK3ppcFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogZmFsc2VcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZmlsbWl0LnpmY1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZmludHNcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmZpcmVtb25rZXlzLmNsb3VkY2VsbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZmxvZ3JhcGhpdFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImdwaFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5mbHV4dGltZS5jbGlwXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiZnRjXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmZvbnQtZm9udGZvcmdlLXNmZFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZnJhbWVtYWtlclwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImZtXCIsXCJmcmFtZVwiLFwibWFrZXJcIixcImJvb2tcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZnJvZ2Fucy5mbmNcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJmbmNcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZnJvZ2Fucy5sdGZcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJsdGZcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZnNjLndlYmxhdW5jaFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImZzY1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5mdWppZmlsbS5mYi5kb2N1d29ya3NcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmZ1amlmaWxtLmZiLmRvY3V3b3Jrcy5iaW5kZXJcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmZ1amlmaWxtLmZiLmRvY3V3b3Jrcy5jb250YWluZXJcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmZ1amlmaWxtLmZiLmpmaSt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZnVqaXRzdS5vYXN5c1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIm9hc1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5mdWppdHN1Lm9hc3lzMlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIm9hMlwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5mdWppdHN1Lm9hc3lzM1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIm9hM1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5mdWppdHN1Lm9hc3lzZ3BcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJmZzVcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZnVqaXRzdS5vYXN5c3Byc1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImJoMlwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5mdWppeGVyb3guYXJ0LWV4XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5mdWppeGVyb3guYXJ0NFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZnVqaXhlcm94LmRkZFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImRkZFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5mdWppeGVyb3guZG9jdXdvcmtzXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wieGR3XCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmZ1aml4ZXJveC5kb2N1d29ya3MuYmluZGVyXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wieGJkXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmZ1aml4ZXJveC5kb2N1d29ya3MuY29udGFpbmVyXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5mdWppeGVyb3guaGJwbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZnV0LW1pc25ldFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZnV0b2luK2Nib3JcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmZ1dG9pbitqc29uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmZ1enp5c2hlZXRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJmenNcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZ2Vub21hdGl4LnR1eGVkb1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInR4ZFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5nZW50aWNzLmdyZCtqc29uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmdlbytqc29uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmdlb2N1YmUreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmdlb2dlYnJhLmZpbGVcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJnZ2JcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZ2VvZ2VicmEuc2xpZGVzXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5nZW9nZWJyYS50b29sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiZ2d0XCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmdlb21ldHJ5LWV4cGxvcmVyXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiZ2V4XCIsXCJncmVcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZ2VvbmV4dFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImd4dFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5nZW9wbGFuXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiZzJ3XCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmdlb3NwYWNlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiZzN3XCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmdlcmJlclwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZ2xvYmFscGxhdGZvcm0uY2FyZC1jb250ZW50LW1ndFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZ2xvYmFscGxhdGZvcm0uY2FyZC1jb250ZW50LW1ndC1yZXNwb25zZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZ214XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiZ214XCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmdvb2dsZS1hcHBzLmRvY3VtZW50XCI6IHtcbiAgICBcImNvbXByZXNzaWJsZVwiOiBmYWxzZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiZ2RvY1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5nb29nbGUtYXBwcy5wcmVzZW50YXRpb25cIjoge1xuICAgIFwiY29tcHJlc3NpYmxlXCI6IGZhbHNlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJnc2xpZGVzXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmdvb2dsZS1hcHBzLnNwcmVhZHNoZWV0XCI6IHtcbiAgICBcImNvbXByZXNzaWJsZVwiOiBmYWxzZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiZ3NoZWV0XCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmdvb2dsZS1lYXJ0aC5rbWwreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJrbWxcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZ29vZ2xlLWVhcnRoLmttelwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogZmFsc2UsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImttelwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5nb3Yuc2suZS1mb3JtK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5nb3Yuc2suZS1mb3JtK3ppcFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogZmFsc2VcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZ292LnNrLnhtbGRhdGFjb250YWluZXIreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmdyYWZlcVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImdxZlwiLFwiZ3FzXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmdyaWRtcFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZ3Jvb3ZlLWFjY291bnRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJnYWNcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZ3Jvb3ZlLWhlbHBcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJnaGZcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZ3Jvb3ZlLWlkZW50aXR5LW1lc3NhZ2VcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJnaW1cIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZ3Jvb3ZlLWluamVjdG9yXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiZ3J2XCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmdyb292ZS10b29sLW1lc3NhZ2VcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJndG1cIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZ3Jvb3ZlLXRvb2wtdGVtcGxhdGVcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ0cGxcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuZ3Jvb3ZlLXZjYXJkXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1widmNnXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmhhbCtqc29uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmhhbCt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImhhbFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5oYW5kaGVsZC1lbnRlcnRhaW5tZW50K3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiem1tXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmhiY2lcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJoYmNpXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmhjK2pzb25cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuaGNsLWJpcmVwb3J0c1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuaGR0XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5oZXJva3UranNvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5oaGUubGVzc29uLXBsYXllclwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImxlc1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5obDdjZGEreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNoYXJzZXRcIjogXCJVVEYtOFwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuaGw3djIreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNoYXJzZXRcIjogXCJVVEYtOFwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuaHAtaHBnbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImhwZ2xcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuaHAtaHBpZFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImhwaWRcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuaHAtaHBzXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiaHBzXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmhwLWpseXRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJqbHRcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuaHAtcGNsXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wicGNsXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmhwLXBjbHhsXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wicGNseGxcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuaHR0cGhvbmVcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmh5ZHJvc3RhdGl4LnNvZi1kYXRhXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wic2ZkLWhkc3R4XCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmh5cGVyK2pzb25cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuaHlwZXItaXRlbStqc29uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmh5cGVyZHJpdmUranNvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5oem4tM2QtY3Jvc3N3b3JkXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5pYm0uYWZwbGluZWRhdGFcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmlibS5lbGVjdHJvbmljLW1lZGlhXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5pYm0ubWluaXBheVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIm1weVwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5pYm0ubW9kY2FwXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiYWZwXCIsXCJsaXN0YWZwXCIsXCJsaXN0MzgyMFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5pYm0ucmlnaHRzLW1hbmFnZW1lbnRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJpcm1cIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuaWJtLnNlY3VyZS1jb250YWluZXJcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJzY1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5pY2Nwcm9maWxlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiaWNjXCIsXCJpY21cIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuaWVlZS4xOTA1XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5pZ2xvYWRlclwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImlnbFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5pbWFnZW1ldGVyLmZvbGRlcit6aXBcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IGZhbHNlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmltYWdlbWV0ZXIuaW1hZ2UremlwXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiBmYWxzZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5pbW1lcnZpc2lvbi1pdnBcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJpdnBcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuaW1tZXJ2aXNpb24taXZ1XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiaXZ1XCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmltcy5pbXNjY3YxcDFcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmltcy5pbXNjY3YxcDJcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmltcy5pbXNjY3YxcDNcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmltcy5saXMudjIucmVzdWx0K2pzb25cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuaW1zLmx0aS52Mi50b29sY29uc3VtZXJwcm9maWxlK2pzb25cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuaW1zLmx0aS52Mi50b29scHJveHkranNvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5pbXMubHRpLnYyLnRvb2xwcm94eS5pZCtqc29uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmltcy5sdGkudjIudG9vbHNldHRpbmdzK2pzb25cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuaW1zLmx0aS52Mi50b29sc2V0dGluZ3Muc2ltcGxlK2pzb25cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuaW5mb3JtZWRjb250cm9sLnJtcyt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuaW5mb3JtaXgtdmlzaW9uYXJ5XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5pbmZvdGVjaC5wcm9qZWN0XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5pbmZvdGVjaC5wcm9qZWN0K3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5pbm5vcGF0aC53YW1wLm5vdGlmaWNhdGlvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuaW5zb3JzLmlnbVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImlnbVwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5pbnRlcmNvbi5mb3JtbmV0XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wieHB3XCIsXCJ4cHhcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuaW50ZXJnZW9cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJpMmdcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuaW50ZXJ0cnVzdC5kaWdpYm94XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5pbnRlcnRydXN0Lm5uY3BcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmludHUucWJvXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wicWJvXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmludHUucWZ4XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wicWZ4XCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmlwdGMuZzIuY2F0YWxvZ2l0ZW0reG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmlwdGMuZzIuY29uY2VwdGl0ZW0reG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmlwdGMuZzIua25vd2xlZGdlaXRlbSt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuaXB0Yy5nMi5uZXdzaXRlbSt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuaXB0Yy5nMi5uZXdzbWVzc2FnZSt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuaXB0Yy5nMi5wYWNrYWdlaXRlbSt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuaXB0Yy5nMi5wbGFubmluZ2l0ZW0reG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmlwdW5wbHVnZ2VkLnJjcHJvZmlsZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInJjcHJvZmlsZVwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5pcmVwb3NpdG9yeS5wYWNrYWdlK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiaXJwXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmlzLXhwclwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInhwclwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5pc2FjLmZjc1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImZjc1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5pc28xMTc4My0xMCt6aXBcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IGZhbHNlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmphbVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImphbVwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5qYXBhbm5ldC1kaXJlY3Rvcnktc2VydmljZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuamFwYW5uZXQtanBuc3RvcmUtd2FrZXVwXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5qYXBhbm5ldC1wYXltZW50LXdha2V1cFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuamFwYW5uZXQtcmVnaXN0cmF0aW9uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5qYXBhbm5ldC1yZWdpc3RyYXRpb24td2FrZXVwXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5qYXBhbm5ldC1zZXRzdG9yZS13YWtldXBcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmphcGFubmV0LXZlcmlmaWNhdGlvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuamFwYW5uZXQtdmVyaWZpY2F0aW9uLXdha2V1cFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuamNwLmphdmFtZS5taWRsZXQtcm1zXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wicm1zXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmppc3BcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJqaXNwXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmpvb3N0LmpvZGEtYXJjaGl2ZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImpvZGFcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuanNrLmlzZG4tbmduXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5rYWhvb3R6XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wia3R6XCIsXCJrdHJcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQua2RlLmthcmJvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImthcmJvblwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5rZGUua2NoYXJ0XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiY2hydFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5rZGUua2Zvcm11bGFcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJrZm9cIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQua2RlLmtpdmlvXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiZmx3XCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmtkZS5rb250b3VyXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wia29uXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmtkZS5rcHJlc2VudGVyXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wia3ByXCIsXCJrcHRcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQua2RlLmtzcHJlYWRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJrc3BcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQua2RlLmt3b3JkXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wia3dkXCIsXCJrd3RcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQua2VuYW1lYWFwcFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImh0a2VcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQua2lkc3BpcmF0aW9uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wia2lhXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmtpbmFyXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wia25lXCIsXCJrbnBcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQua29hblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInNrcFwiLFwic2tkXCIsXCJza3RcIixcInNrbVwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5rb2Rhay1kZXNjcmlwdG9yXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wic3NlXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmxhc1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQubGFzLmxhcytqc29uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmxhcy5sYXMreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJsYXN4bWxcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQubGFzemlwXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5sZWFwK2pzb25cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQubGliZXJ0eS1yZXF1ZXN0K3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5sbGFtYWdyYXBoaWNzLmxpZmUtYmFsYW5jZS5kZXNrdG9wXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wibGJkXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmxsYW1hZ3JhcGhpY3MubGlmZS1iYWxhbmNlLmV4Y2hhbmdlK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wibGJlXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmxvZ2lwaXBlLmNpcmN1aXQremlwXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiBmYWxzZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5sb29tXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5sb3R1cy0xLTItM1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIjEyM1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5sb3R1cy1hcHByb2FjaFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImFwclwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5sb3R1cy1mcmVlbGFuY2VcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJwcmVcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQubG90dXMtbm90ZXNcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJuc2ZcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQubG90dXMtb3JnYW5pemVyXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wib3JnXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLmxvdHVzLXNjcmVlbmNhbVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInNjbVwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5sb3R1cy13b3JkcHJvXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wibHdwXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm1hY3BvcnRzLnBvcnRwa2dcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJwb3J0cGtnXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm1hcGJveC12ZWN0b3ItdGlsZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIm12dFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5tYXJsaW4uZHJtLmFjdGlvbnRva2VuK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5tYXJsaW4uZHJtLmNvbmZ0b2tlbit4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQubWFybGluLmRybS5saWNlbnNlK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5tYXJsaW4uZHJtLm1kY2ZcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm1hc29uK2pzb25cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQubWF4YXIuYXJjaGl2ZS4zdHoremlwXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiBmYWxzZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5tYXhtaW5kLm1heG1pbmQtZGJcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm1jZFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIm1jZFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5tZWRjYWxjZGF0YVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIm1jMVwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5tZWRpYXN0YXRpb24uY2RrZXlcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJjZGtleVwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5tZXJpZGlhbi1zbGluZ3Nob3RcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm1mZXJcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJtd2ZcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQubWZtcFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIm1mbVwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5taWNybytqc29uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm1pY3JvZ3JhZnguZmxvXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiZmxvXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm1pY3JvZ3JhZnguaWd4XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiaWd4XCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm1pY3Jvc29mdC5wb3J0YWJsZS1leGVjdXRhYmxlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5taWNyb3NvZnQud2luZG93cy50aHVtYm5haWwtY2FjaGVcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm1pZWxlK2pzb25cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQubWlmXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wibWlmXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm1pbmlzb2Z0LWhwMzAwMC1zYXZlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5taXRzdWJpc2hpLm1pc3R5LWd1YXJkLnRydXN0d2ViXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5tb2JpdXMuZGFmXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiZGFmXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm1vYml1cy5kaXNcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJkaXNcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQubW9iaXVzLm1ia1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIm1ia1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5tb2JpdXMubXF5XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wibXF5XCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm1vYml1cy5tc2xcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJtc2xcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQubW9iaXVzLnBsY1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInBsY1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5tb2JpdXMudHhmXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1widHhmXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm1vcGh1bi5hcHBsaWNhdGlvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIm1wblwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5tb3BodW4uY2VydGlmaWNhdGVcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJtcGNcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQubW90b3JvbGEuZmxleHN1aXRlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5tb3Rvcm9sYS5mbGV4c3VpdGUuYWRzaVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQubW90b3JvbGEuZmxleHN1aXRlLmZpc1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQubW90b3JvbGEuZmxleHN1aXRlLmdvdGFwXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5tb3Rvcm9sYS5mbGV4c3VpdGUua21yXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5tb3Rvcm9sYS5mbGV4c3VpdGUudHRjXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5tb3Rvcm9sYS5mbGV4c3VpdGUud2VtXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5tb3Rvcm9sYS5pcHJtXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5tb3ppbGxhLnh1bCt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInh1bFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5tcy0zbWZkb2N1bWVudFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQubXMtYXJ0Z2FscnlcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJjaWxcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQubXMtYXNmXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5tcy1jYWItY29tcHJlc3NlZFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImNhYlwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5tcy1jb2xvci5pY2Nwcm9maWxlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiBmYWxzZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wieGxzXCIsXCJ4bG1cIixcInhsYVwiLFwieGxjXCIsXCJ4bHRcIixcInhsd1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbC5hZGRpbi5tYWNyb2VuYWJsZWQuMTJcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ4bGFtXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsLnNoZWV0LmJpbmFyeS5tYWNyb2VuYWJsZWQuMTJcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ4bHNiXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsLnNoZWV0Lm1hY3JvZW5hYmxlZC4xMlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInhsc21cIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwudGVtcGxhdGUubWFjcm9lbmFibGVkLjEyXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wieGx0bVwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5tcy1mb250b2JqZWN0XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJlb3RcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQubXMtaHRtbGhlbHBcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJjaG1cIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQubXMtaW1zXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiaW1zXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm1zLWxybVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImxybVwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5tcy1vZmZpY2UuYWN0aXZleCt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQubXMtb2ZmaWNldGhlbWVcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ0aG14XCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm1zLW9wZW50eXBlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQubXMtb3V0bG9va1wiOiB7XG4gICAgXCJjb21wcmVzc2libGVcIjogZmFsc2UsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIm1zZ1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5tcy1wYWNrYWdlLm9iZnVzY2F0ZWQtb3BlbnR5cGVcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQubXMtcGtpLnNlY2NhdFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiY2F0XCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm1zLXBraS5zdGxcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInN0bFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5tcy1wbGF5cmVhZHkuaW5pdGlhdG9yK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5tcy1wb3dlcnBvaW50XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiBmYWxzZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wicHB0XCIsXCJwcHNcIixcInBvdFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5tcy1wb3dlcnBvaW50LmFkZGluLm1hY3JvZW5hYmxlZC4xMlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInBwYW1cIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQubXMtcG93ZXJwb2ludC5wcmVzZW50YXRpb24ubWFjcm9lbmFibGVkLjEyXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wicHB0bVwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5tcy1wb3dlcnBvaW50LnNsaWRlLm1hY3JvZW5hYmxlZC4xMlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInNsZG1cIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQubXMtcG93ZXJwb2ludC5zbGlkZXNob3cubWFjcm9lbmFibGVkLjEyXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wicHBzbVwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5tcy1wb3dlcnBvaW50LnRlbXBsYXRlLm1hY3JvZW5hYmxlZC4xMlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInBvdG1cIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQubXMtcHJpbnRkZXZpY2VjYXBhYmlsaXRpZXMreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm1zLXByaW50aW5nLnByaW50dGlja2V0K3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm1zLXByaW50c2NoZW1hdGlja2V0K3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5tcy1wcm9qZWN0XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wibXBwXCIsXCJtcHRcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQubXMtdG5lZlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQubXMtd2luZG93cy5kZXZpY2VwYWlyaW5nXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5tcy13aW5kb3dzLm53cHJpbnRpbmcub29iXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5tcy13aW5kb3dzLnByaW50ZXJwYWlyaW5nXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5tcy13aW5kb3dzLndzZC5vb2JcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm1zLXdtZHJtLmxpYy1jaGxnLXJlcVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQubXMtd21kcm0ubGljLXJlc3BcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm1zLXdtZHJtLm1ldGVyLWNobGctcmVxXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5tcy13bWRybS5tZXRlci1yZXNwXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5tcy13b3JkLmRvY3VtZW50Lm1hY3JvZW5hYmxlZC4xMlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImRvY21cIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQubXMtd29yZC50ZW1wbGF0ZS5tYWNyb2VuYWJsZWQuMTJcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJkb3RtXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm1zLXdvcmtzXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wid3BzXCIsXCJ3a3NcIixcIndjbVwiLFwid2RiXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm1zLXdwbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIndwbFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5tcy14cHNkb2N1bWVudFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogZmFsc2UsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInhwc1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5tc2EtZGlzay1pbWFnZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQubXNlcVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIm1zZXFcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQubXNpZ25cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm11bHRpYWQuY3JlYXRvclwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQubXVsdGlhZC5jcmVhdG9yLmNpZlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQubXVzaWMtbmlmZlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQubXVzaWNpYW5cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJtdXNcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQubXV2ZWUuc3R5bGVcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJtc3R5XCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm15bmZjXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1widGFnbGV0XCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm5hY2FtYXIueWJyaWQranNvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5uY2QuY29udHJvbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQubmNkLnJlZmVyZW5jZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQubmVhcnN0Lmluditqc29uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm5lYnVtaW5kLmxpbmVcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm5lcnZhbmFcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm5ldGZweFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQubmV1cm9sYW5ndWFnZS5ubHVcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJubHVcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQubmltblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQubmludGVuZG8ubml0cm8ucm9tXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5uaW50ZW5kby5zbmVzLnJvbVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQubml0ZlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIm50ZlwiLFwibml0ZlwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5ub2JsZW5ldC1kaXJlY3RvcnlcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJubmRcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQubm9ibGVuZXQtc2VhbGVyXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wibm5zXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm5vYmxlbmV0LXdlYlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIm5ud1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5ub2tpYS5jYXRhbG9nc1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQubm9raWEuY29ubWwrd2J4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm5va2lhLmNvbm1sK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5ub2tpYS5pcHR2LmNvbmZpZyt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQubm9raWEuaXNkcy1yYWRpby1wcmVzZXRzXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5ub2tpYS5sYW5kbWFyayt3YnhtbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQubm9raWEubGFuZG1hcmsreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm5va2lhLmxhbmRtYXJrY29sbGVjdGlvbit4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQubm9raWEubi1nYWdlLmFjK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiYWNcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQubm9raWEubi1nYWdlLmRhdGFcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJuZ2RhdFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5ub2tpYS5uLWdhZ2Uuc3ltYmlhbi5pbnN0YWxsXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wibi1nYWdlXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm5va2lhLm5jZFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQubm9raWEucGNkK3dieG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5ub2tpYS5wY2QreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm5va2lhLnJhZGlvLXByZXNldFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInJwc3RcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQubm9raWEucmFkaW8tcHJlc2V0c1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInJwc3NcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQubm92YWRpZ20uZWRtXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiZWRtXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm5vdmFkaWdtLmVkeFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImVkeFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5ub3ZhZGlnbS5leHRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJleHRcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQubnR0LWxvY2FsLmNvbnRlbnQtc2hhcmVcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm50dC1sb2NhbC5maWxlLXRyYW5zZmVyXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5udHQtbG9jYWwub2d3X3JlbW90ZS1hY2Nlc3NcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm50dC1sb2NhbC5zaXAtdGFfcmVtb3RlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5udHQtbG9jYWwuc2lwLXRhX3RjcF9zdHJlYW1cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm9hc2lzLm9wZW5kb2N1bWVudC5jaGFydFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIm9kY1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5vYXNpcy5vcGVuZG9jdW1lbnQuY2hhcnQtdGVtcGxhdGVcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJvdGNcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub2FzaXMub3BlbmRvY3VtZW50LmRhdGFiYXNlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wib2RiXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm9hc2lzLm9wZW5kb2N1bWVudC5mb3JtdWxhXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wib2RmXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm9hc2lzLm9wZW5kb2N1bWVudC5mb3JtdWxhLXRlbXBsYXRlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wib2RmdFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5vYXNpcy5vcGVuZG9jdW1lbnQuZ3JhcGhpY3NcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IGZhbHNlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJvZGdcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub2FzaXMub3BlbmRvY3VtZW50LmdyYXBoaWNzLXRlbXBsYXRlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wib3RnXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm9hc2lzLm9wZW5kb2N1bWVudC5pbWFnZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIm9kaVwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5vYXNpcy5vcGVuZG9jdW1lbnQuaW1hZ2UtdGVtcGxhdGVcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJvdGlcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub2FzaXMub3BlbmRvY3VtZW50LnByZXNlbnRhdGlvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogZmFsc2UsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIm9kcFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5vYXNpcy5vcGVuZG9jdW1lbnQucHJlc2VudGF0aW9uLXRlbXBsYXRlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wib3RwXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm9hc2lzLm9wZW5kb2N1bWVudC5zcHJlYWRzaGVldFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogZmFsc2UsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIm9kc1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5vYXNpcy5vcGVuZG9jdW1lbnQuc3ByZWFkc2hlZXQtdGVtcGxhdGVcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJvdHNcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub2FzaXMub3BlbmRvY3VtZW50LnRleHRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IGZhbHNlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJvZHRcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub2FzaXMub3BlbmRvY3VtZW50LnRleHQtbWFzdGVyXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wib2RtXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm9hc2lzLm9wZW5kb2N1bWVudC50ZXh0LXRlbXBsYXRlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wib3R0XCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm9hc2lzLm9wZW5kb2N1bWVudC50ZXh0LXdlYlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIm90aFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5vYm5cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm9jZitjYm9yXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5vY2kuaW1hZ2UubWFuaWZlc3QudjEranNvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5vZnRuLmwxMG4ranNvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5vaXBmLmNvbnRlbnRhY2Nlc3Nkb3dubG9hZCt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub2lwZi5jb250ZW50YWNjZXNzc3RyZWFtaW5nK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5vaXBmLmNzcGctaGV4YmluYXJ5XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5vaXBmLmRhZS5zdmcreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm9pcGYuZGFlLnhodG1sK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5vaXBmLm1pcHB2Y29udHJvbG1lc3NhZ2UreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm9pcGYucGFlLmdlbVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub2lwZi5zcGRpc2NvdmVyeSt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub2lwZi5zcGRsaXN0K3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5vaXBmLnVlcHJvZmlsZSt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub2lwZi51c2VycHJvZmlsZSt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub2xwYy1zdWdhclwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInhvXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm9tYS1zY3dzLWNvbmZpZ1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub21hLXNjd3MtaHR0cC1yZXF1ZXN0XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5vbWEtc2N3cy1odHRwLXJlc3BvbnNlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5vbWEuYmNhc3QuYXNzb2NpYXRlZC1wcm9jZWR1cmUtcGFyYW1ldGVyK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5vbWEuYmNhc3QuZHJtLXRyaWdnZXIreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm9tYS5iY2FzdC5pbWQreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm9tYS5iY2FzdC5sdGttXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5vbWEuYmNhc3Qubm90aWZpY2F0aW9uK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5vbWEuYmNhc3QucHJvdmlzaW9uaW5ndHJpZ2dlclwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub21hLmJjYXN0LnNnYm9vdFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub21hLmJjYXN0LnNnZGQreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm9tYS5iY2FzdC5zZ2R1XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5vbWEuYmNhc3Quc2ltcGxlLXN5bWJvbC1jb250YWluZXJcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm9tYS5iY2FzdC5zbWFydGNhcmQtdHJpZ2dlcit4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub21hLmJjYXN0LnNwcm92K3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5vbWEuYmNhc3Quc3RrbVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub21hLmNhYi1hZGRyZXNzLWJvb2sreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm9tYS5jYWItZmVhdHVyZS1oYW5kbGVyK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5vbWEuY2FiLXBjYyt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub21hLmNhYi1zdWJzLWludml0ZSt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub21hLmNhYi11c2VyLXByZWZzK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5vbWEuZGNkXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5vbWEuZGNkY1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub21hLmRkMit4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImRkMlwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5vbWEuZHJtLnJpc2QreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm9tYS5ncm91cC11c2FnZS1saXN0K3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5vbWEubHdtMm0rY2JvclwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub21hLmx3bTJtK2pzb25cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub21hLmx3bTJtK3RsdlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub21hLnBhbCt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub21hLnBvYy5kZXRhaWxlZC1wcm9ncmVzcy1yZXBvcnQreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm9tYS5wb2MuZmluYWwtcmVwb3J0K3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5vbWEucG9jLmdyb3Vwcyt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub21hLnBvYy5pbnZvY2F0aW9uLWRlc2NyaXB0b3IreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm9tYS5wb2Mub3B0aW1pemVkLXByb2dyZXNzLXJlcG9ydCt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub21hLnB1c2hcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm9tYS5zY2lkbS5tZXNzYWdlcyt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub21hLnhjYXAtZGlyZWN0b3J5K3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5vbWFkcy1lbWFpbCt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY2hhcnNldFwiOiBcIlVURi04XCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5vbWFkcy1maWxlK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjaGFyc2V0XCI6IFwiVVRGLThcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm9tYWRzLWZvbGRlcit4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY2hhcnNldFwiOiBcIlVURi04XCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5vbWFsb2Mtc3VwbC1pbml0XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5vbmVwYWdlclwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub25lcGFnZXJ0YW1wXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5vbmVwYWdlcnRhbXhcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm9uZXBhZ2VydGF0XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5vbmVwYWdlcnRhdHBcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm9uZXBhZ2VydGF0eFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub3BlbmJsb3guZ2FtZSt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIm9iZ3hcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub3BlbmJsb3guZ2FtZS1iaW5hcnlcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm9wZW5leWUub2ViXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVub2ZmaWNlb3JnLmV4dGVuc2lvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wib3h0XCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm9wZW5zdHJlZXRtYXAuZGF0YSt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIm9zbVwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVudGltZXN0YW1wcy5vdHNcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LmN1c3RvbS1wcm9wZXJ0aWVzK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5jdXN0b214bWxwcm9wZXJ0aWVzK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5kcmF3aW5nK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5kcmF3aW5nbWwuY2hhcnQreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LmRyYXdpbmdtbC5jaGFydHNoYXBlcyt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuZHJhd2luZ21sLmRpYWdyYW1jb2xvcnMreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LmRyYXdpbmdtbC5kaWFncmFtZGF0YSt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuZHJhd2luZ21sLmRpYWdyYW1sYXlvdXQreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LmRyYXdpbmdtbC5kaWFncmFtc3R5bGUreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LmV4dGVuZGVkLXByb3BlcnRpZXMreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnByZXNlbnRhdGlvbm1sLmNvbW1lbnRhdXRob3JzK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5wcmVzZW50YXRpb25tbC5jb21tZW50cyt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQucHJlc2VudGF0aW9ubWwuaGFuZG91dG1hc3Rlcit4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQucHJlc2VudGF0aW9ubWwubm90ZXNtYXN0ZXIreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnByZXNlbnRhdGlvbm1sLm5vdGVzc2xpZGUreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnByZXNlbnRhdGlvbm1sLnByZXNlbnRhdGlvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogZmFsc2UsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInBwdHhcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQucHJlc2VudGF0aW9ubWwucHJlc2VudGF0aW9uLm1haW4reG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnByZXNlbnRhdGlvbm1sLnByZXNwcm9wcyt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQucHJlc2VudGF0aW9ubWwuc2xpZGVcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJzbGR4XCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnByZXNlbnRhdGlvbm1sLnNsaWRlK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5wcmVzZW50YXRpb25tbC5zbGlkZWxheW91dCt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQucHJlc2VudGF0aW9ubWwuc2xpZGVtYXN0ZXIreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnByZXNlbnRhdGlvbm1sLnNsaWRlc2hvd1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInBwc3hcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQucHJlc2VudGF0aW9ubWwuc2xpZGVzaG93Lm1haW4reG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnByZXNlbnRhdGlvbm1sLnNsaWRldXBkYXRlaW5mbyt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQucHJlc2VudGF0aW9ubWwudGFibGVzdHlsZXMreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnByZXNlbnRhdGlvbm1sLnRhZ3MreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnByZXNlbnRhdGlvbm1sLnRlbXBsYXRlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wicG90eFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5wcmVzZW50YXRpb25tbC50ZW1wbGF0ZS5tYWluK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5wcmVzZW50YXRpb25tbC52aWV3cHJvcHMreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuY2FsY2NoYWluK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLmNoYXJ0c2hlZXQreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuY29tbWVudHMreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuY29ubmVjdGlvbnMreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuZGlhbG9nc2hlZXQreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuZXh0ZXJuYWxsaW5rK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnBpdm90Y2FjaGVkZWZpbml0aW9uK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnBpdm90Y2FjaGVyZWNvcmRzK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnBpdm90dGFibGUreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwucXVlcnl0YWJsZSt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5yZXZpc2lvbmhlYWRlcnMreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwucmV2aXNpb25sb2creG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuc2hhcmVkc3RyaW5ncyt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5zaGVldFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogZmFsc2UsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInhsc3hcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5zaGVldC5tYWluK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnNoZWV0bWV0YWRhdGEreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuc3R5bGVzK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnRhYmxlK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnRhYmxlc2luZ2xlY2VsbHMreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwudGVtcGxhdGVcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ4bHR4XCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwudGVtcGxhdGUubWFpbit4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC51c2VybmFtZXMreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwudm9sYXRpbGVkZXBlbmRlbmNpZXMreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwud29ya3NoZWV0K3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC50aGVtZSt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQudGhlbWVvdmVycmlkZSt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQudm1sZHJhd2luZ1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQud29yZHByb2Nlc3NpbmdtbC5jb21tZW50cyt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQud29yZHByb2Nlc3NpbmdtbC5kb2N1bWVudFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogZmFsc2UsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImRvY3hcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQud29yZHByb2Nlc3NpbmdtbC5kb2N1bWVudC5nbG9zc2FyeSt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQud29yZHByb2Nlc3NpbmdtbC5kb2N1bWVudC5tYWluK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC53b3JkcHJvY2Vzc2luZ21sLmVuZG5vdGVzK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC53b3JkcHJvY2Vzc2luZ21sLmZvbnR0YWJsZSt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQud29yZHByb2Nlc3NpbmdtbC5mb290ZXIreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LndvcmRwcm9jZXNzaW5nbWwuZm9vdG5vdGVzK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC53b3JkcHJvY2Vzc2luZ21sLm51bWJlcmluZyt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQud29yZHByb2Nlc3NpbmdtbC5zZXR0aW5ncyt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQud29yZHByb2Nlc3NpbmdtbC5zdHlsZXMreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LndvcmRwcm9jZXNzaW5nbWwudGVtcGxhdGVcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJkb3R4XCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LndvcmRwcm9jZXNzaW5nbWwudGVtcGxhdGUubWFpbit4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQud29yZHByb2Nlc3NpbmdtbC53ZWJzZXR0aW5ncyt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtcGFja2FnZS5jb3JlLXByb3BlcnRpZXMreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLXBhY2thZ2UuZGlnaXRhbC1zaWduYXR1cmUteG1sc2lnbmF0dXJlK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1wYWNrYWdlLnJlbGF0aW9uc2hpcHMreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm9yYWNsZS5yZXNvdXJjZStqc29uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm9yYW5nZS5pbmRhdGFcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm9zYS5uZXRkZXBsb3lcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm9zZ2VvLm1hcGd1aWRlLnBhY2thZ2VcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJtZ3BcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub3NnaS5idW5kbGVcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLm9zZ2kuZHBcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJkcFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5vc2dpLnN1YnN5c3RlbVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImVzYVwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5vdHBzLmN0LWtpcCt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQub3hsaS5jb3VudGdyYXBoXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5wYWdlcmR1dHkranNvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5wYWxtXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wicGRiXCIsXCJwcWFcIixcIm9wcmNcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQucGFub3BseVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQucGFvcy54bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnBhdGVudGRpdmVcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnBhdGllbnRlY29tbXNkb2NcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnBhd2FhZmlsZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInBhd1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5wY29zXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5wZy5mb3JtYXRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJzdHJcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQucGcub3Nhc2xpXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiZWk2XCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnBpYWNjZXNzLmFwcGxpY2F0aW9uLWxpY2VuY2VcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnBpY3NlbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImVmaWZcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQucG1pLndpZGdldFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIndnXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnBvYy5ncm91cC1hZHZlcnRpc2VtZW50K3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5wb2NrZXRsZWFyblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInBsZlwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5wb3dlcmJ1aWxkZXI2XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wicGJkXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnBvd2VyYnVpbGRlcjYtc1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQucG93ZXJidWlsZGVyN1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQucG93ZXJidWlsZGVyNy1zXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5wb3dlcmJ1aWxkZXI3NVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQucG93ZXJidWlsZGVyNzUtc1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQucHJlbWluZXRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnByZXZpZXdzeXN0ZW1zLmJveFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImJveFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5wcm90ZXVzLm1hZ2F6aW5lXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wibWd6XCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnBzZnNcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnB1Ymxpc2hhcmUtZGVsdGEtdHJlZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInFwc1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5wdmkucHRpZDFcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJwdGlkXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnB3Zy1tdWx0aXBsZXhlZFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQucHdnLXhodG1sLXByaW50K3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5xdWFsY29tbS5icmV3LWFwcC1yZXNcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnF1YXJhbnRhaW5lbmV0XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5xdWFyay5xdWFya3hwcmVzc1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInF4ZFwiLFwicXh0XCIsXCJxd2RcIixcInF3dFwiLFwicXhsXCIsXCJxeGJcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQucXVvYmplY3QtcXVveGRvY3VtZW50XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5yYWRpc3lzLm1vbWwreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnJhZGlzeXMubXNtbCt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQucmFkaXN5cy5tc21sLWF1ZGl0K3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5yYWRpc3lzLm1zbWwtYXVkaXQtY29uZit4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQucmFkaXN5cy5tc21sLWF1ZGl0LWNvbm4reG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnJhZGlzeXMubXNtbC1hdWRpdC1kaWFsb2creG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnJhZGlzeXMubXNtbC1hdWRpdC1zdHJlYW0reG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnJhZGlzeXMubXNtbC1jb25mK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5yYWRpc3lzLm1zbWwtZGlhbG9nK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5yYWRpc3lzLm1zbWwtZGlhbG9nLWJhc2UreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnJhZGlzeXMubXNtbC1kaWFsb2ctZmF4LWRldGVjdCt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQucmFkaXN5cy5tc21sLWRpYWxvZy1mYXgtc2VuZHJlY3YreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnJhZGlzeXMubXNtbC1kaWFsb2ctZ3JvdXAreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnJhZGlzeXMubXNtbC1kaWFsb2ctc3BlZWNoK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5yYWRpc3lzLm1zbWwtZGlhbG9nLXRyYW5zZm9ybSt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQucmFpbnN0b3IuZGF0YVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQucmFwaWRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnJhclwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInJhclwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5yZWFsdm5jLmJlZFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImJlZFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5yZWNvcmRhcmUubXVzaWN4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJteGxcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQucmVjb3JkYXJlLm11c2ljeG1sK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wibXVzaWN4bWxcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQucmVubGVhcm4ucmxwcmludFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQucmVzaWxpZW50LmxvZ2ljXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5yZXN0ZnVsK2pzb25cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQucmlnLmNyeXB0b25vdGVcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJjcnlwdG9ub3RlXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnJpbS5jb2RcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImNvZFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5ybi1yZWFsbWVkaWFcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInJtXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnJuLXJlYWxtZWRpYS12YnJcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInJtdmJcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQucm91dGU2Ni5saW5rNjYreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJsaW5rNjZcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQucnMtMjc0eFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQucnVja3VzLmRvd25sb2FkXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5zM3Ntc1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuc2FpbGluZ3RyYWNrZXIudHJhY2tcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJzdFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5zYXJcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnNibS5jaWRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnNibS5taWQyXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5zY3JpYnVzXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5zZWFsZWQuM2RmXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5zZWFsZWQuY3NmXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5zZWFsZWQuZG9jXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5zZWFsZWQuZW1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5zZWFsZWQubWh0XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5zZWFsZWQubmV0XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5zZWFsZWQucHB0XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5zZWFsZWQudGlmZlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuc2VhbGVkLnhsc1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuc2VhbGVkbWVkaWEuc29mdHNlYWwuaHRtbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuc2VhbGVkbWVkaWEuc29mdHNlYWwucGRmXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5zZWVtYWlsXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wic2VlXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnNlaXMranNvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5zZW1hXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wic2VtYVwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5zZW1kXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wic2VtZFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5zZW1mXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wic2VtZlwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5zaGFkZS1zYXZlLWZpbGVcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnNoYW5hLmluZm9ybWVkLmZvcm1kYXRhXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiaWZtXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnNoYW5hLmluZm9ybWVkLmZvcm10ZW1wbGF0ZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIml0cFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5zaGFuYS5pbmZvcm1lZC5pbnRlcmNoYW5nZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImlpZlwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5zaGFuYS5pbmZvcm1lZC5wYWNrYWdlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiaXBrXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnNob290cHJvb2YranNvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5zaG9wa2ljaytqc29uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnNocFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuc2h4XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5zaWdyb2suc2Vzc2lvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuc2ltdGVjaC1taW5kbWFwcGVyXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1widHdkXCIsXCJ0d2RzXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnNpcmVuK2pzb25cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuc21hZlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIm1tZlwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5zbWFydC5ub3RlYm9va1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuc21hcnQudGVhY2hlclwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInRlYWNoZXJcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuc25lc2Rldi1wYWdlLXRhYmxlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5zb2Z0d2FyZTYwMi5maWxsZXIuZm9ybSt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImZvXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnNvZnR3YXJlNjAyLmZpbGxlci5mb3JtLXhtbC16aXBcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnNvbGVudC5zZGttK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wic2RrbVwiLFwic2RrZFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5zcG90ZmlyZS5keHBcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJkeHBcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuc3BvdGZpcmUuc2ZzXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wic2ZzXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnNxbGl0ZTNcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnNzcy1jb2RcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnNzcy1kdGZcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnNzcy1udGZcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnN0YXJkaXZpc2lvbi5jYWxjXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJzZGNcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuc3RhcmRpdmlzaW9uLmRyYXdcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInNkYVwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5zdGFyZGl2aXNpb24uaW1wcmVzc1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wic2RkXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnN0YXJkaXZpc2lvbi5tYXRoXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJzbWZcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuc3RhcmRpdmlzaW9uLndyaXRlclwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wic2R3XCIsXCJ2b3JcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuc3RhcmRpdmlzaW9uLndyaXRlci1nbG9iYWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInNnbFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5zdGVwbWFuaWEucGFja2FnZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInNtemlwXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnN0ZXBtYW5pYS5zdGVwY2hhcnRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJzbVwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5zdHJlZXQtc3RyZWFtXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5zdW4ud2FkbCt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIndhZGxcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuc3VuLnhtbC5jYWxjXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJzeGNcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuc3VuLnhtbC5jYWxjLnRlbXBsYXRlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJzdGNcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuc3VuLnhtbC5kcmF3XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJzeGRcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuc3VuLnhtbC5kcmF3LnRlbXBsYXRlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJzdGRcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuc3VuLnhtbC5pbXByZXNzXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJzeGlcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuc3VuLnhtbC5pbXByZXNzLnRlbXBsYXRlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJzdGlcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuc3VuLnhtbC5tYXRoXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJzeG1cIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuc3VuLnhtbC53cml0ZXJcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInN4d1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5zdW4ueG1sLndyaXRlci5nbG9iYWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInN4Z1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5zdW4ueG1sLndyaXRlci50ZW1wbGF0ZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wic3R3XCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnN1cy1jYWxlbmRhclwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInN1c1wiLFwic3VzcFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5zdmRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJzdmRcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuc3dpZnR2aWV3LWljc1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuc3ljbGUreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnN5ZnQranNvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5zeW1iaWFuLmluc3RhbGxcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInNpc1wiLFwic2lzeFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5zeW5jbWwreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNoYXJzZXRcIjogXCJVVEYtOFwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInhzbVwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5zeW5jbWwuZG0rd2J4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY2hhcnNldFwiOiBcIlVURi04XCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImJkbVwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5zeW5jbWwuZG0reG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNoYXJzZXRcIjogXCJVVEYtOFwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInhkbVwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5zeW5jbWwuZG0ubm90aWZpY2F0aW9uXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC5zeW5jbWwuZG1kZGYrd2J4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnN5bmNtbC5kbWRkZit4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY2hhcnNldFwiOiBcIlVURi04XCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiZGRmXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnN5bmNtbC5kbXRuZHMrd2J4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnN5bmNtbC5kbXRuZHMreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNoYXJzZXRcIjogXCJVVEYtOFwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQuc3luY21sLmRzLm5vdGlmaWNhdGlvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQudGFibGVzY2hlbWEranNvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC50YW8uaW50ZW50LW1vZHVsZS1hcmNoaXZlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1widGFvXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnRjcGR1bXAucGNhcFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInBjYXBcIixcImNhcFwiLFwiZG1wXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnRoaW5rLWNlbGwucHB0dGMranNvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC50bWQubWVkaWFmbGV4LmFwaSt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQudG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC50bW9iaWxlLWxpdmV0dlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInRtb1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC50cmkub25lc291cmNlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC50cmlkLnRwdFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInRwdFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC50cmlzY2FwZS5teHNcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJteHNcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQudHJ1ZWFwcFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInRyYVwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC50cnVlZG9jXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC51Ymlzb2Z0LndlYnBsYXllclwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQudWZkbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInVmZFwiLFwidWZkbFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC51aXEudGhlbWVcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ1dHpcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQudW1hamluXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1widW1qXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnVuaXR5XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1widW5pdHl3ZWJcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQudW9tbCt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInVvbWxcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQudXBsYW5ldC5hbGVydFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQudXBsYW5ldC5hbGVydC13YnhtbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQudXBsYW5ldC5iZWFyZXItY2hvaWNlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC51cGxhbmV0LmJlYXJlci1jaG9pY2Utd2J4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnVwbGFuZXQuY2FjaGVvcFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQudXBsYW5ldC5jYWNoZW9wLXdieG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC51cGxhbmV0LmNoYW5uZWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnVwbGFuZXQuY2hhbm5lbC13YnhtbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQudXBsYW5ldC5saXN0XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC51cGxhbmV0Lmxpc3Qtd2J4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnVwbGFuZXQubGlzdGNtZFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQudXBsYW5ldC5saXN0Y21kLXdieG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC51cGxhbmV0LnNpZ25hbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQudXJpLW1hcFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQudmFsdmUuc291cmNlLm1hdGVyaWFsXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC52Y3hcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ2Y3hcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQudmQtc3R1ZHlcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnZlY3RvcndvcmtzXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC52ZWwranNvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC52ZXJpbWF0cml4LnZjYXNcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnZlcml0b25lLmFpb24ranNvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC52ZXJ5YW50LnRoaW5cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnZlcy5lbmNyeXB0ZWRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnZpZHNvZnQudmlkY29uZmVyZW5jZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQudmlzaW9cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ2c2RcIixcInZzdFwiLFwidnNzXCIsXCJ2c3dcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQudmlzaW9uYXJ5XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1widmlzXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnZpdmlkZW5jZS5zY3JpcHRmaWxlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC52c2ZcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ2c2ZcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQud2FwLnNpY1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQud2FwLnNsY1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQud2FwLndieG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNoYXJzZXRcIjogXCJVVEYtOFwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ3YnhtbFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC53YXAud21sY1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIndtbGNcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQud2FwLndtbHNjcmlwdGNcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ3bWxzY1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC53ZWJ0dXJib1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInd0YlwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC53ZmEuZHBwXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC53ZmEucDJwXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC53ZmEud3NjXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC53aW5kb3dzLmRldmljZXBhaXJpbmdcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLndtY1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQud21mLmJvb3RzdHJhcFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQud29sZnJhbS5tYXRoZW1hdGljYVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQud29sZnJhbS5tYXRoZW1hdGljYS5wYWNrYWdlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC53b2xmcmFtLnBsYXllclwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIm5icFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC53b3JkcGVyZmVjdFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIndwZFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC53cWRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ3cWRcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQud3JxLWhwMzAwMC1sYWJlbGxlZFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQud3Quc3RmXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wic3RmXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnd2LmNzcCt3YnhtbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQud3YuY3NwK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC53di5zc3AreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnhhY21sK2pzb25cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQueGFyYVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInhhclwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC54ZmRsXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wieGZkbFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC54ZmRsLndlYmZvcm1cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnhtaSt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQueG1waWUuY3BrZ1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQueG1waWUuZHBrZ1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQueG1waWUucGxhblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQueG1waWUucHBrZ1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQueG1waWUueGxpbVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi92bmQueWFtYWhhLmh2LWRpY1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImh2ZFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC55YW1haGEuaHYtc2NyaXB0XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiaHZzXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnlhbWFoYS5odi12b2ljZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImh2cFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC55YW1haGEub3BlbnNjb3JlZm9ybWF0XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wib3NmXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnlhbWFoYS5vcGVuc2NvcmVmb3JtYXQub3NmcHZnK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wib3NmcHZnXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnlhbWFoYS5yZW1vdGUtc2V0dXBcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnlhbWFoYS5zbWFmLWF1ZGlvXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wic2FmXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnlhbWFoYS5zbWFmLXBocmFzZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInNwZlwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC55YW1haGEudGhyb3VnaC1uZ25cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnlhbWFoYS50dW5uZWwtdWRwZW5jYXBcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnlhb3dlbWVcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnllbGxvd3JpdmVyLWN1c3RvbS1tZW51XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiY21wXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnlvdXR1YmUueXRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm5kLnp1bFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInppclwiLFwiemlyelwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZuZC56emF6ei5kZWNrK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiemF6XCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm9pY2V4bWwreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ2eG1sXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vdm91Y2hlci1jbXMranNvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ZxLXJ0Y3B4clwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi93YXNtXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ3YXNtXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vd2F0Y2hlcmluZm8reG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ3aWZcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi93ZWJwdXNoLW9wdGlvbnMranNvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3dob2lzcHAtcXVlcnlcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vd2hvaXNwcC1yZXNwb25zZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi93aWRnZXRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ3Z3RcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi93aW5obHBcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImhscFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3dpdGFcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vd29yZHBlcmZlY3Q1LjFcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24vd3NkbCt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIndzZGxcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi93c3BvbGljeSt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIndzcG9saWN5XCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veC03ei1jb21wcmVzc2VkXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IGZhbHNlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCI3elwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3gtYWJpd29yZFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiYWJ3XCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veC1hY2UtY29tcHJlc3NlZFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiYWNlXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veC1hbWZcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94LWFwcGxlLWRpc2tpbWFnZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiZG1nXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veC1hcmpcIjoge1xuICAgIFwiY29tcHJlc3NpYmxlXCI6IGZhbHNlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJhcmpcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94LWF1dGhvcndhcmUtYmluXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJhYWJcIixcIngzMlwiLFwidTMyXCIsXCJ2b3hcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94LWF1dGhvcndhcmUtbWFwXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJhYW1cIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94LWF1dGhvcndhcmUtc2VnXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJhYXNcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94LWJjcGlvXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJiY3Bpb1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3gtYmRvY1wiOiB7XG4gICAgXCJjb21wcmVzc2libGVcIjogZmFsc2UsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImJkb2NcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94LWJpdHRvcnJlbnRcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInRvcnJlbnRcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94LWJsb3JiXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJibGJcIixcImJsb3JiXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veC1iemlwXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IGZhbHNlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJielwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3gtYnppcDJcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogZmFsc2UsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImJ6MlwiLFwiYm96XCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veC1jYnJcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImNiclwiLFwiY2JhXCIsXCJjYnRcIixcImNielwiLFwiY2I3XCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veC1jZGxpbmtcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInZjZFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3gtY2ZzLWNvbXByZXNzZWRcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImNmc1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3gtY2hhdFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiY2hhdFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3gtY2hlc3MtcGduXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJwZ25cIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94LWNocm9tZS1leHRlbnNpb25cIjoge1xuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJjcnhcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94LWNvY29hXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcIm5naW54XCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImNjb1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3gtY29tcHJlc3NcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94LWNvbmZlcmVuY2VcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIm5zY1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3gtY3Bpb1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiY3Bpb1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3gtY3NoXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJjc2hcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94LWRlYlwiOiB7XG4gICAgXCJjb21wcmVzc2libGVcIjogZmFsc2VcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94LWRlYmlhbi1wYWNrYWdlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJkZWJcIixcInVkZWJcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94LWRnYy1jb21wcmVzc2VkXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJkZ2NcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94LWRpcmVjdG9yXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJkaXJcIixcImRjclwiLFwiZHhyXCIsXCJjc3RcIixcImNjdFwiLFwiY3h0XCIsXCJ3M2RcIixcImZnZFwiLFwic3dhXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veC1kb29tXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ3YWRcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94LWR0Ym5jeCt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wibmN4XCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veC1kdGJvb2sreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImR0YlwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3gtZHRicmVzb3VyY2UreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInJlc1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3gtZHZpXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IGZhbHNlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJkdmlcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94LWVudm95XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJldnlcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94LWV2YVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiZXZhXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veC1mb250LWJkZlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiYmRmXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veC1mb250LWRvc1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3gtZm9udC1mcmFtZW1ha2VyXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veC1mb250LWdob3N0c2NyaXB0XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJnc2ZcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94LWZvbnQtbGliZ3J4XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veC1mb250LWxpbnV4LXBzZlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wicHNmXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veC1mb250LXBjZlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wicGNmXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veC1mb250LXNuZlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wic25mXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veC1mb250LXNwZWVkb1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3gtZm9udC1zdW5vcy1uZXdzXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veC1mb250LXR5cGUxXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJwZmFcIixcInBmYlwiLFwicGZtXCIsXCJhZm1cIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94LWZvbnQtdmZvbnRcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94LWZyZWVhcmNcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImFyY1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3gtZnV0dXJlc3BsYXNoXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJzcGxcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94LWdjYS1jb21wcmVzc2VkXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJnY2FcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94LWdsdWx4XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ1bHhcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94LWdudW1lcmljXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJnbnVtZXJpY1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3gtZ3JhbXBzLXhtbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiZ3JhbXBzXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veC1ndGFyXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJndGFyXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veC1nemlwXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veC1oZGZcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImhkZlwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3gtaHR0cGQtcGhwXCI6IHtcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJwaHBcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94LWluc3RhbGwtaW5zdHJ1Y3Rpb25zXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJpbnN0YWxsXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veC1pc285NjYwLWltYWdlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJpc29cIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94LWl3b3JrLWtleW5vdGUtc2Zma2V5XCI6IHtcbiAgICBcImV4dGVuc2lvbnNcIjogW1wia2V5XCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veC1pd29yay1udW1iZXJzLXNmZm51bWJlcnNcIjoge1xuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJudW1iZXJzXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veC1pd29yay1wYWdlcy1zZmZwYWdlc1wiOiB7XG4gICAgXCJleHRlbnNpb25zXCI6IFtcInBhZ2VzXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veC1qYXZhLWFyY2hpdmUtZGlmZlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJuZ2lueFwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJqYXJkaWZmXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veC1qYXZhLWpubHAtZmlsZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiBmYWxzZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiam5scFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3gtamF2YXNjcmlwdFwiOiB7XG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3gta2VlcGFzczJcIjoge1xuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJrZGJ4XCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veC1sYXRleFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiBmYWxzZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wibGF0ZXhcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94LWx1YS1ieXRlY29kZVwiOiB7XG4gICAgXCJleHRlbnNpb25zXCI6IFtcImx1YWNcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94LWx6aC1jb21wcmVzc2VkXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJsemhcIixcImxoYVwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3gtbWFrZXNlbGZcIjoge1xuICAgIFwic291cmNlXCI6IFwibmdpbnhcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wicnVuXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veC1taWVcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIm1pZVwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3gtbW9iaXBvY2tldC1lYm9va1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wicHJjXCIsXCJtb2JpXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veC1tcGVndXJsXCI6IHtcbiAgICBcImNvbXByZXNzaWJsZVwiOiBmYWxzZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3gtbXMtYXBwbGljYXRpb25cIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImFwcGxpY2F0aW9uXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veC1tcy1zaG9ydGN1dFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wibG5rXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veC1tcy13bWRcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIndtZFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3gtbXMtd216XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ3bXpcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94LW1zLXhiYXBcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInhiYXBcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94LW1zYWNjZXNzXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJtZGJcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94LW1zYmluZGVyXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJvYmRcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94LW1zY2FyZGZpbGVcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImNyZFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3gtbXNjbGlwXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJjbHBcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94LW1zZG9zLXByb2dyYW1cIjoge1xuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJleGVcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94LW1zZG93bmxvYWRcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImV4ZVwiLFwiZGxsXCIsXCJjb21cIixcImJhdFwiLFwibXNpXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veC1tc21lZGlhdmlld1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wibXZiXCIsXCJtMTNcIixcIm0xNFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3gtbXNtZXRhZmlsZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wid21mXCIsXCJ3bXpcIixcImVtZlwiLFwiZW16XCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veC1tc21vbmV5XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJtbnlcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94LW1zcHVibGlzaGVyXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJwdWJcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94LW1zc2NoZWR1bGVcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInNjZFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3gtbXN0ZXJtaW5hbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1widHJtXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veC1tc3dyaXRlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ3cmlcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94LW5ldGNkZlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wibmNcIixcImNkZlwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3gtbnMtcHJveHktYXV0b2NvbmZpZ1wiOiB7XG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wicGFjXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veC1uemJcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIm56YlwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3gtcGVybFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJuZ2lueFwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJwbFwiLFwicG1cIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94LXBpbG90XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcIm5naW54XCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInByY1wiLFwicGRiXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veC1wa2NzMTJcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogZmFsc2UsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInAxMlwiLFwicGZ4XCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veC1wa2NzNy1jZXJ0aWZpY2F0ZXNcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInA3YlwiLFwic3BjXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veC1wa2NzNy1jZXJ0cmVxcmVzcFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wicDdyXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veC1wa2ktbWVzc2FnZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94LXJhci1jb21wcmVzc2VkXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IGZhbHNlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJyYXJcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94LXJlZGhhdC1wYWNrYWdlLW1hbmFnZXJcIjoge1xuICAgIFwic291cmNlXCI6IFwibmdpbnhcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wicnBtXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veC1yZXNlYXJjaC1pbmZvLXN5c3RlbXNcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInJpc1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3gtc2VhXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcIm5naW54XCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInNlYVwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3gtc2hcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wic2hcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94LXNoYXJcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInNoYXJcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94LXNob2Nrd2F2ZS1mbGFzaFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiBmYWxzZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wic3dmXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veC1zaWx2ZXJsaWdodC1hcHBcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInhhcFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3gtc3FsXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJzcWxcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94LXN0dWZmaXRcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogZmFsc2UsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInNpdFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3gtc3R1ZmZpdHhcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInNpdHhcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94LXN1YnJpcFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wic3J0XCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veC1zdjRjcGlvXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJzdjRjcGlvXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veC1zdjRjcmNcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInN2NGNyY1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3gtdDN2bS1pbWFnZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1widDNcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94LXRhZHNcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImdhbVwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3gtdGFyXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInRhclwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3gtdGNsXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ0Y2xcIixcInRrXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veC10ZXhcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInRleFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3gtdGV4LXRmbVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1widGZtXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veC10ZXhpbmZvXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ0ZXhpbmZvXCIsXCJ0ZXhpXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veC10Z2lmXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJvYmpcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94LXVzdGFyXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ1c3RhclwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3gtdmlydHVhbGJveC1oZGRcIjoge1xuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImhkZFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3gtdmlydHVhbGJveC1vdmFcIjoge1xuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIm92YVwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3gtdmlydHVhbGJveC1vdmZcIjoge1xuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIm92ZlwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3gtdmlydHVhbGJveC12Ym94XCI6IHtcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ2Ym94XCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veC12aXJ0dWFsYm94LXZib3gtZXh0cGFja1wiOiB7XG4gICAgXCJjb21wcmVzc2libGVcIjogZmFsc2UsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInZib3gtZXh0cGFja1wiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3gtdmlydHVhbGJveC12ZGlcIjoge1xuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInZkaVwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3gtdmlydHVhbGJveC12aGRcIjoge1xuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInZoZFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3gtdmlydHVhbGJveC12bWRrXCI6IHtcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ2bWRrXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veC13YWlzLXNvdXJjZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wic3JjXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veC13ZWItYXBwLW1hbmlmZXN0K2pzb25cIjoge1xuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIndlYmFwcFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3gteDUwOS1jYS1jZXJ0XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiZGVyXCIsXCJjcnRcIixcInBlbVwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3gteDUwOS1jYS1yYS1jZXJ0XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3gteDUwOS1uZXh0LWNhLWNlcnRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veC14ZmlnXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJmaWdcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94LXhsaWZmK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ4bGZcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94LXhwaW5zdGFsbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiBmYWxzZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wieHBpXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veC14elwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wieHpcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94LXptYWNoaW5lXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ6MVwiLFwiejJcIixcInozXCIsXCJ6NFwiLFwiejVcIixcIno2XCIsXCJ6N1wiLFwiejhcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94NDAwLWJwXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImFwcGxpY2F0aW9uL3hhY21sK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3hhbWwreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInhhbWxcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94Y2FwLWF0dCt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInhhdlwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3hjYXAtY2Fwcyt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInhjYVwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3hjYXAtZGlmZit4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInhkZlwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3hjYXAtZWwreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ4ZWxcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94Y2FwLWVycm9yK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3hjYXAtbnMreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ4bnNcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94Y29uLWNvbmZlcmVuY2UtaW5mbyt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94Y29uLWNvbmZlcmVuY2UtaW5mby1kaWZmK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3hlbmMreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ4ZW5jXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veGh0bWwreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ4aHRtbFwiLFwieGh0XCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veGh0bWwtdm9pY2UreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94bGlmZit4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInhsZlwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wieG1sXCIsXCJ4c2xcIixcInhzZFwiLFwicm5nXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veG1sLWR0ZFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiZHRkXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veG1sLWV4dGVybmFsLXBhcnNlZC1lbnRpdHlcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veG1sLXBhdGNoK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3htcHAreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veG9wK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wieG9wXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veHByb2MreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInhwbFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3hzbHQreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ4c2xcIixcInhzbHRcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi94c3BmK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ4c3BmXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veHYreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJteG1sXCIsXCJ4aHZtbFwiLFwieHZtbFwiLFwieHZtXCJdXG4gIH0sXG4gIFwiYXBwbGljYXRpb24veWFuZ1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInlhbmdcIl1cbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi95YW5nLWRhdGEranNvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3lhbmctZGF0YSt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi95YW5nLXBhdGNoK2pzb25cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbi95YW5nLXBhdGNoK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3lpbit4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInlpblwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3ppcFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogZmFsc2UsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInppcFwiXVxuICB9LFxuICBcImFwcGxpY2F0aW9uL3psaWJcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXBwbGljYXRpb24venN0ZFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhdWRpby8xZC1pbnRlcmxlYXZlZC1wYXJpdHlmZWNcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXVkaW8vMzJrYWRwY21cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXVkaW8vM2dwcFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogZmFsc2UsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIjNncHBcIl1cbiAgfSxcbiAgXCJhdWRpby8zZ3BwMlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhdWRpby9hYWNcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXVkaW8vYWMzXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImF1ZGlvL2FkcGNtXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJhZHBcIl1cbiAgfSxcbiAgXCJhdWRpby9hbXJcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJhbXJcIl1cbiAgfSxcbiAgXCJhdWRpby9hbXItd2JcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXVkaW8vYW1yLXdiK1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhdWRpby9hcHR4XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImF1ZGlvL2FzY1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhdWRpby9hdHJhYy1hZHZhbmNlZC1sb3NzbGVzc1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhdWRpby9hdHJhYy14XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImF1ZGlvL2F0cmFjM1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhdWRpby9iYXNpY1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogZmFsc2UsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImF1XCIsXCJzbmRcIl1cbiAgfSxcbiAgXCJhdWRpby9idjE2XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImF1ZGlvL2J2MzJcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXVkaW8vY2xlYXJtb2RlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImF1ZGlvL2NuXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImF1ZGlvL2RhdDEyXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImF1ZGlvL2Rsc1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhdWRpby9kc3ItZXMyMDExMDhcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXVkaW8vZHNyLWVzMjAyMDUwXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImF1ZGlvL2Rzci1lczIwMjIxMVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhdWRpby9kc3ItZXMyMDIyMTJcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXVkaW8vZHZcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXVkaW8vZHZpNFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhdWRpby9lYWMzXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImF1ZGlvL2VuY2FwcnRwXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImF1ZGlvL2V2cmNcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXVkaW8vZXZyYy1xY3BcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXVkaW8vZXZyYzBcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXVkaW8vZXZyYzFcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXVkaW8vZXZyY2JcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXVkaW8vZXZyY2IwXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImF1ZGlvL2V2cmNiMVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhdWRpby9ldnJjbndcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXVkaW8vZXZyY253MFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhdWRpby9ldnJjbncxXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImF1ZGlvL2V2cmN3YlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhdWRpby9ldnJjd2IwXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImF1ZGlvL2V2cmN3YjFcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXVkaW8vZXZzXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImF1ZGlvL2ZsZXhmZWNcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXVkaW8vZndkcmVkXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImF1ZGlvL2c3MTEtMFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhdWRpby9nNzE5XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImF1ZGlvL2c3MjJcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXVkaW8vZzcyMjFcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXVkaW8vZzcyM1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhdWRpby9nNzI2LTE2XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImF1ZGlvL2c3MjYtMjRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXVkaW8vZzcyNi0zMlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhdWRpby9nNzI2LTQwXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImF1ZGlvL2c3MjhcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXVkaW8vZzcyOVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhdWRpby9nNzI5MVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhdWRpby9nNzI5ZFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhdWRpby9nNzI5ZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhdWRpby9nc21cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXVkaW8vZ3NtLWVmclwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhdWRpby9nc20taHItMDhcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXVkaW8vaWxiY1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhdWRpby9pcC1tcl92Mi41XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImF1ZGlvL2lzYWNcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCJcbiAgfSxcbiAgXCJhdWRpby9sMTZcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXVkaW8vbDIwXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImF1ZGlvL2wyNFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogZmFsc2VcbiAgfSxcbiAgXCJhdWRpby9sOFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhdWRpby9scGNcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXVkaW8vbWVscFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhdWRpby9tZWxwMTIwMFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhdWRpby9tZWxwMjQwMFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhdWRpby9tZWxwNjAwXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImF1ZGlvL21oYXNcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXVkaW8vbWlkaVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wibWlkXCIsXCJtaWRpXCIsXCJrYXJcIixcInJtaVwiXVxuICB9LFxuICBcImF1ZGlvL21vYmlsZS14bWZcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJteG1mXCJdXG4gIH0sXG4gIFwiYXVkaW8vbXAzXCI6IHtcbiAgICBcImNvbXByZXNzaWJsZVwiOiBmYWxzZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wibXAzXCJdXG4gIH0sXG4gIFwiYXVkaW8vbXA0XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiBmYWxzZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wibTRhXCIsXCJtcDRhXCJdXG4gIH0sXG4gIFwiYXVkaW8vbXA0YS1sYXRtXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImF1ZGlvL21wYVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhdWRpby9tcGEtcm9idXN0XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImF1ZGlvL21wZWdcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IGZhbHNlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJtcGdhXCIsXCJtcDJcIixcIm1wMmFcIixcIm1wM1wiLFwibTJhXCIsXCJtM2FcIl1cbiAgfSxcbiAgXCJhdWRpby9tcGVnNC1nZW5lcmljXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImF1ZGlvL211c2VwYWNrXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiXG4gIH0sXG4gIFwiYXVkaW8vb2dnXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiBmYWxzZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wib2dhXCIsXCJvZ2dcIixcInNweFwiLFwib3B1c1wiXVxuICB9LFxuICBcImF1ZGlvL29wdXNcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXVkaW8vcGFyaXR5ZmVjXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImF1ZGlvL3BjbWFcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXVkaW8vcGNtYS13YlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhdWRpby9wY211XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImF1ZGlvL3BjbXUtd2JcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXVkaW8vcHJzLnNpZFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhdWRpby9xY2VscFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhdWRpby9yYXB0b3JmZWNcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXVkaW8vcmVkXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImF1ZGlvL3J0cC1lbmMtYWVzY20xMjhcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXVkaW8vcnRwLW1pZGlcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXVkaW8vcnRwbG9vcGJhY2tcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXVkaW8vcnR4XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImF1ZGlvL3MzbVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiczNtXCJdXG4gIH0sXG4gIFwiYXVkaW8vc2NpcFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhdWRpby9zaWxrXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJzaWxcIl1cbiAgfSxcbiAgXCJhdWRpby9zbXZcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXVkaW8vc212LXFjcFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhdWRpby9zbXYwXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImF1ZGlvL3NvZmFcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXVkaW8vc3AtbWlkaVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhdWRpby9zcGVleFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhdWRpby90MTQwY1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhdWRpby90MzhcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXVkaW8vdGVsZXBob25lLWV2ZW50XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImF1ZGlvL3RldHJhX2FjZWxwXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImF1ZGlvL3RldHJhX2FjZWxwX2JiXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImF1ZGlvL3RvbmVcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXVkaW8vdHN2Y2lzXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImF1ZGlvL3VlbWNsaXBcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXVkaW8vdWxwZmVjXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImF1ZGlvL3VzYWNcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXVkaW8vdmR2aVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhdWRpby92bXItd2JcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXVkaW8vdm5kLjNncHAuaXVmcFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhdWRpby92bmQuNHNiXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImF1ZGlvL3ZuZC5hdWRpb2tvelwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhdWRpby92bmQuY2VscFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhdWRpby92bmQuY2lzY28ubnNlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImF1ZGlvL3ZuZC5jbWxlcy5yYWRpby1ldmVudHNcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXVkaW8vdm5kLmNucy5hbnAxXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImF1ZGlvL3ZuZC5jbnMuaW5mMVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhdWRpby92bmQuZGVjZS5hdWRpb1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInV2YVwiLFwidXZ2YVwiXVxuICB9LFxuICBcImF1ZGlvL3ZuZC5kaWdpdGFsLXdpbmRzXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiZW9sXCJdXG4gIH0sXG4gIFwiYXVkaW8vdm5kLmRsbmEuYWR0c1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhdWRpby92bmQuZG9sYnkuaGVhYWMuMVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhdWRpby92bmQuZG9sYnkuaGVhYWMuMlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhdWRpby92bmQuZG9sYnkubWxwXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImF1ZGlvL3ZuZC5kb2xieS5tcHNcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXVkaW8vdm5kLmRvbGJ5LnBsMlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhdWRpby92bmQuZG9sYnkucGwyeFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhdWRpby92bmQuZG9sYnkucGwyelwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhdWRpby92bmQuZG9sYnkucHVsc2UuMVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhdWRpby92bmQuZHJhXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiZHJhXCJdXG4gIH0sXG4gIFwiYXVkaW8vdm5kLmR0c1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImR0c1wiXVxuICB9LFxuICBcImF1ZGlvL3ZuZC5kdHMuaGRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJkdHNoZFwiXVxuICB9LFxuICBcImF1ZGlvL3ZuZC5kdHMudWhkXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImF1ZGlvL3ZuZC5kdmIuZmlsZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhdWRpby92bmQuZXZlcmFkLnBsalwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhdWRpby92bmQuaG5zLmF1ZGlvXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImF1ZGlvL3ZuZC5sdWNlbnQudm9pY2VcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJsdnBcIl1cbiAgfSxcbiAgXCJhdWRpby92bmQubXMtcGxheXJlYWR5Lm1lZGlhLnB5YVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInB5YVwiXVxuICB9LFxuICBcImF1ZGlvL3ZuZC5ub2tpYS5tb2JpbGUteG1mXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImF1ZGlvL3ZuZC5ub3J0ZWwudmJrXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImF1ZGlvL3ZuZC5udWVyYS5lY2VscDQ4MDBcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJlY2VscDQ4MDBcIl1cbiAgfSxcbiAgXCJhdWRpby92bmQubnVlcmEuZWNlbHA3NDcwXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiZWNlbHA3NDcwXCJdXG4gIH0sXG4gIFwiYXVkaW8vdm5kLm51ZXJhLmVjZWxwOTYwMFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImVjZWxwOTYwMFwiXVxuICB9LFxuICBcImF1ZGlvL3ZuZC5vY3RlbC5zYmNcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXVkaW8vdm5kLnByZXNvbnVzLm11bHRpdHJhY2tcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXVkaW8vdm5kLnFjZWxwXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImF1ZGlvL3ZuZC5yaGV0b3JleC4zMmthZHBjbVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhdWRpby92bmQucmlwXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wicmlwXCJdXG4gIH0sXG4gIFwiYXVkaW8vdm5kLnJuLXJlYWxhdWRpb1wiOiB7XG4gICAgXCJjb21wcmVzc2libGVcIjogZmFsc2VcbiAgfSxcbiAgXCJhdWRpby92bmQuc2VhbGVkbWVkaWEuc29mdHNlYWwubXBlZ1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJhdWRpby92bmQudm14LmN2c2RcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXVkaW8vdm5kLndhdmVcIjoge1xuICAgIFwiY29tcHJlc3NpYmxlXCI6IGZhbHNlXG4gIH0sXG4gIFwiYXVkaW8vdm9yYmlzXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiBmYWxzZVxuICB9LFxuICBcImF1ZGlvL3ZvcmJpcy1jb25maWdcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiYXVkaW8vd2F2XCI6IHtcbiAgICBcImNvbXByZXNzaWJsZVwiOiBmYWxzZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wid2F2XCJdXG4gIH0sXG4gIFwiYXVkaW8vd2F2ZVwiOiB7XG4gICAgXCJjb21wcmVzc2libGVcIjogZmFsc2UsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIndhdlwiXVxuICB9LFxuICBcImF1ZGlvL3dlYm1cIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogZmFsc2UsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIndlYmFcIl1cbiAgfSxcbiAgXCJhdWRpby94LWFhY1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiBmYWxzZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiYWFjXCJdXG4gIH0sXG4gIFwiYXVkaW8veC1haWZmXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJhaWZcIixcImFpZmZcIixcImFpZmNcIl1cbiAgfSxcbiAgXCJhdWRpby94LWNhZlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiBmYWxzZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiY2FmXCJdXG4gIH0sXG4gIFwiYXVkaW8veC1mbGFjXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJmbGFjXCJdXG4gIH0sXG4gIFwiYXVkaW8veC1tNGFcIjoge1xuICAgIFwic291cmNlXCI6IFwibmdpbnhcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wibTRhXCJdXG4gIH0sXG4gIFwiYXVkaW8veC1tYXRyb3NrYVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wibWthXCJdXG4gIH0sXG4gIFwiYXVkaW8veC1tcGVndXJsXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJtM3VcIl1cbiAgfSxcbiAgXCJhdWRpby94LW1zLXdheFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wid2F4XCJdXG4gIH0sXG4gIFwiYXVkaW8veC1tcy13bWFcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIndtYVwiXVxuICB9LFxuICBcImF1ZGlvL3gtcG4tcmVhbGF1ZGlvXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJyYW1cIixcInJhXCJdXG4gIH0sXG4gIFwiYXVkaW8veC1wbi1yZWFsYXVkaW8tcGx1Z2luXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJybXBcIl1cbiAgfSxcbiAgXCJhdWRpby94LXJlYWxhdWRpb1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJuZ2lueFwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJyYVwiXVxuICB9LFxuICBcImF1ZGlvL3gtdHRhXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiXG4gIH0sXG4gIFwiYXVkaW8veC13YXZcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIndhdlwiXVxuICB9LFxuICBcImF1ZGlvL3htXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ4bVwiXVxuICB9LFxuICBcImNoZW1pY2FsL3gtY2R4XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJjZHhcIl1cbiAgfSxcbiAgXCJjaGVtaWNhbC94LWNpZlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiY2lmXCJdXG4gIH0sXG4gIFwiY2hlbWljYWwveC1jbWRmXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJjbWRmXCJdXG4gIH0sXG4gIFwiY2hlbWljYWwveC1jbWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImNtbFwiXVxuICB9LFxuICBcImNoZW1pY2FsL3gtY3NtbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiY3NtbFwiXVxuICB9LFxuICBcImNoZW1pY2FsL3gtcGRiXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiXG4gIH0sXG4gIFwiY2hlbWljYWwveC14eXpcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInh5elwiXVxuICB9LFxuICBcImZvbnQvY29sbGVjdGlvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInR0Y1wiXVxuICB9LFxuICBcImZvbnQvb3RmXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJvdGZcIl1cbiAgfSxcbiAgXCJmb250L3NmbnRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiZm9udC90dGZcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInR0ZlwiXVxuICB9LFxuICBcImZvbnQvd29mZlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIndvZmZcIl1cbiAgfSxcbiAgXCJmb250L3dvZmYyXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wid29mZjJcIl1cbiAgfSxcbiAgXCJpbWFnZS9hY2VzXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiZXhyXCJdXG4gIH0sXG4gIFwiaW1hZ2UvYXBuZ1wiOiB7XG4gICAgXCJjb21wcmVzc2libGVcIjogZmFsc2UsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImFwbmdcIl1cbiAgfSxcbiAgXCJpbWFnZS9hdmNpXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiYXZjaVwiXVxuICB9LFxuICBcImltYWdlL2F2Y3NcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJhdmNzXCJdXG4gIH0sXG4gIFwiaW1hZ2UvYXZpZlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogZmFsc2UsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImF2aWZcIl1cbiAgfSxcbiAgXCJpbWFnZS9ibXBcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImJtcFwiXVxuICB9LFxuICBcImltYWdlL2NnbVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImNnbVwiXVxuICB9LFxuICBcImltYWdlL2RpY29tLXJsZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImRybGVcIl1cbiAgfSxcbiAgXCJpbWFnZS9lbWZcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJlbWZcIl1cbiAgfSxcbiAgXCJpbWFnZS9maXRzXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiZml0c1wiXVxuICB9LFxuICBcImltYWdlL2czZmF4XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiZzNcIl1cbiAgfSxcbiAgXCJpbWFnZS9naWZcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IGZhbHNlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJnaWZcIl1cbiAgfSxcbiAgXCJpbWFnZS9oZWljXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiaGVpY1wiXVxuICB9LFxuICBcImltYWdlL2hlaWMtc2VxdWVuY2VcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJoZWljc1wiXVxuICB9LFxuICBcImltYWdlL2hlaWZcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJoZWlmXCJdXG4gIH0sXG4gIFwiaW1hZ2UvaGVpZi1zZXF1ZW5jZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImhlaWZzXCJdXG4gIH0sXG4gIFwiaW1hZ2UvaGVqMmtcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJoZWoyXCJdXG4gIH0sXG4gIFwiaW1hZ2UvaHNqMlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImhzajJcIl1cbiAgfSxcbiAgXCJpbWFnZS9pZWZcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJpZWZcIl1cbiAgfSxcbiAgXCJpbWFnZS9qbHNcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJqbHNcIl1cbiAgfSxcbiAgXCJpbWFnZS9qcDJcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IGZhbHNlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJqcDJcIixcImpwZzJcIl1cbiAgfSxcbiAgXCJpbWFnZS9qcGVnXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiBmYWxzZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wianBlZ1wiLFwianBnXCIsXCJqcGVcIl1cbiAgfSxcbiAgXCJpbWFnZS9qcGhcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJqcGhcIl1cbiAgfSxcbiAgXCJpbWFnZS9qcGhjXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiamhjXCJdXG4gIH0sXG4gIFwiaW1hZ2UvanBtXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiBmYWxzZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wianBtXCJdXG4gIH0sXG4gIFwiaW1hZ2UvanB4XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiBmYWxzZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wianB4XCIsXCJqcGZcIl1cbiAgfSxcbiAgXCJpbWFnZS9qeHJcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJqeHJcIl1cbiAgfSxcbiAgXCJpbWFnZS9qeHJhXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wianhyYVwiXVxuICB9LFxuICBcImltYWdlL2p4cnNcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJqeHJzXCJdXG4gIH0sXG4gIFwiaW1hZ2UvanhzXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wianhzXCJdXG4gIH0sXG4gIFwiaW1hZ2UvanhzY1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImp4c2NcIl1cbiAgfSxcbiAgXCJpbWFnZS9qeHNpXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wianhzaVwiXVxuICB9LFxuICBcImltYWdlL2p4c3NcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJqeHNzXCJdXG4gIH0sXG4gIFwiaW1hZ2Uva3R4XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wia3R4XCJdXG4gIH0sXG4gIFwiaW1hZ2Uva3R4MlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImt0eDJcIl1cbiAgfSxcbiAgXCJpbWFnZS9uYXBscHNcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiaW1hZ2UvcGpwZWdcIjoge1xuICAgIFwiY29tcHJlc3NpYmxlXCI6IGZhbHNlXG4gIH0sXG4gIFwiaW1hZ2UvcG5nXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiBmYWxzZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wicG5nXCJdXG4gIH0sXG4gIFwiaW1hZ2UvcHJzLmJ0aWZcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJidGlmXCJdXG4gIH0sXG4gIFwiaW1hZ2UvcHJzLnB0aVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInB0aVwiXVxuICB9LFxuICBcImltYWdlL3B3Zy1yYXN0ZXJcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiaW1hZ2Uvc2dpXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJzZ2lcIl1cbiAgfSxcbiAgXCJpbWFnZS9zdmcreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJzdmdcIixcInN2Z3pcIl1cbiAgfSxcbiAgXCJpbWFnZS90MzhcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ0MzhcIl1cbiAgfSxcbiAgXCJpbWFnZS90aWZmXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiBmYWxzZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1widGlmXCIsXCJ0aWZmXCJdXG4gIH0sXG4gIFwiaW1hZ2UvdGlmZi1meFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInRmeFwiXVxuICB9LFxuICBcImltYWdlL3ZuZC5hZG9iZS5waG90b3Nob3BcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInBzZFwiXVxuICB9LFxuICBcImltYWdlL3ZuZC5haXJ6aXAuYWNjZWxlcmF0b3IuYXp2XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiYXp2XCJdXG4gIH0sXG4gIFwiaW1hZ2Uvdm5kLmNucy5pbmYyXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImltYWdlL3ZuZC5kZWNlLmdyYXBoaWNcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ1dmlcIixcInV2dmlcIixcInV2Z1wiLFwidXZ2Z1wiXVxuICB9LFxuICBcImltYWdlL3ZuZC5kanZ1XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiZGp2dVwiLFwiZGp2XCJdXG4gIH0sXG4gIFwiaW1hZ2Uvdm5kLmR2Yi5zdWJ0aXRsZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInN1YlwiXVxuICB9LFxuICBcImltYWdlL3ZuZC5kd2dcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJkd2dcIl1cbiAgfSxcbiAgXCJpbWFnZS92bmQuZHhmXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiZHhmXCJdXG4gIH0sXG4gIFwiaW1hZ2Uvdm5kLmZhc3RiaWRzaGVldFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImZic1wiXVxuICB9LFxuICBcImltYWdlL3ZuZC5mcHhcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJmcHhcIl1cbiAgfSxcbiAgXCJpbWFnZS92bmQuZnN0XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiZnN0XCJdXG4gIH0sXG4gIFwiaW1hZ2Uvdm5kLmZ1aml4ZXJveC5lZG1pY3MtbW1yXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wibW1yXCJdXG4gIH0sXG4gIFwiaW1hZ2Uvdm5kLmZ1aml4ZXJveC5lZG1pY3MtcmxjXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wicmxjXCJdXG4gIH0sXG4gIFwiaW1hZ2Uvdm5kLmdsb2JhbGdyYXBoaWNzLnBnYlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJpbWFnZS92bmQubWljcm9zb2Z0Lmljb25cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImljb1wiXVxuICB9LFxuICBcImltYWdlL3ZuZC5taXhcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiaW1hZ2Uvdm5kLm1vemlsbGEuYXBuZ1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJpbWFnZS92bmQubXMtZGRzXCI6IHtcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJkZHNcIl1cbiAgfSxcbiAgXCJpbWFnZS92bmQubXMtbW9kaVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIm1kaVwiXVxuICB9LFxuICBcImltYWdlL3ZuZC5tcy1waG90b1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wid2RwXCJdXG4gIH0sXG4gIFwiaW1hZ2Uvdm5kLm5ldC1mcHhcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJucHhcIl1cbiAgfSxcbiAgXCJpbWFnZS92bmQucGNvLmIxNlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImIxNlwiXVxuICB9LFxuICBcImltYWdlL3ZuZC5yYWRpYW5jZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJpbWFnZS92bmQuc2VhbGVkLnBuZ1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJpbWFnZS92bmQuc2VhbGVkbWVkaWEuc29mdHNlYWwuZ2lmXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcImltYWdlL3ZuZC5zZWFsZWRtZWRpYS5zb2Z0c2VhbC5qcGdcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwiaW1hZ2Uvdm5kLnN2ZlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJpbWFnZS92bmQudGVuY2VudC50YXBcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ0YXBcIl1cbiAgfSxcbiAgXCJpbWFnZS92bmQudmFsdmUuc291cmNlLnRleHR1cmVcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ2dGZcIl1cbiAgfSxcbiAgXCJpbWFnZS92bmQud2FwLndibXBcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ3Ym1wXCJdXG4gIH0sXG4gIFwiaW1hZ2Uvdm5kLnhpZmZcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ4aWZcIl1cbiAgfSxcbiAgXCJpbWFnZS92bmQuemJydXNoLnBjeFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInBjeFwiXVxuICB9LFxuICBcImltYWdlL3dlYnBcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIndlYnBcIl1cbiAgfSxcbiAgXCJpbWFnZS93bWZcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ3bWZcIl1cbiAgfSxcbiAgXCJpbWFnZS94LTNkc1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiM2RzXCJdXG4gIH0sXG4gIFwiaW1hZ2UveC1jbXUtcmFzdGVyXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJyYXNcIl1cbiAgfSxcbiAgXCJpbWFnZS94LWNteFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiY214XCJdXG4gIH0sXG4gIFwiaW1hZ2UveC1mcmVlaGFuZFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiZmhcIixcImZoY1wiLFwiZmg0XCIsXCJmaDVcIixcImZoN1wiXVxuICB9LFxuICBcImltYWdlL3gtaWNvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJpY29cIl1cbiAgfSxcbiAgXCJpbWFnZS94LWpuZ1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJuZ2lueFwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJqbmdcIl1cbiAgfSxcbiAgXCJpbWFnZS94LW1yc2lkLWltYWdlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJzaWRcIl1cbiAgfSxcbiAgXCJpbWFnZS94LW1zLWJtcFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJuZ2lueFwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImJtcFwiXVxuICB9LFxuICBcImltYWdlL3gtcGN4XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJwY3hcIl1cbiAgfSxcbiAgXCJpbWFnZS94LXBpY3RcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInBpY1wiLFwicGN0XCJdXG4gIH0sXG4gIFwiaW1hZ2UveC1wb3J0YWJsZS1hbnltYXBcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInBubVwiXVxuICB9LFxuICBcImltYWdlL3gtcG9ydGFibGUtYml0bWFwXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJwYm1cIl1cbiAgfSxcbiAgXCJpbWFnZS94LXBvcnRhYmxlLWdyYXltYXBcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInBnbVwiXVxuICB9LFxuICBcImltYWdlL3gtcG9ydGFibGUtcGl4bWFwXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJwcG1cIl1cbiAgfSxcbiAgXCJpbWFnZS94LXJnYlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wicmdiXCJdXG4gIH0sXG4gIFwiaW1hZ2UveC10Z2FcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInRnYVwiXVxuICB9LFxuICBcImltYWdlL3gteGJpdG1hcFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wieGJtXCJdXG4gIH0sXG4gIFwiaW1hZ2UveC14Y2ZcIjoge1xuICAgIFwiY29tcHJlc3NpYmxlXCI6IGZhbHNlXG4gIH0sXG4gIFwiaW1hZ2UveC14cGl4bWFwXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ4cG1cIl1cbiAgfSxcbiAgXCJpbWFnZS94LXh3aW5kb3dkdW1wXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ4d2RcIl1cbiAgfSxcbiAgXCJtZXNzYWdlL2NwaW1cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwibWVzc2FnZS9kZWxpdmVyeS1zdGF0dXNcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwibWVzc2FnZS9kaXNwb3NpdGlvbi1ub3RpZmljYXRpb25cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXG4gICAgICBcImRpc3Bvc2l0aW9uLW5vdGlmaWNhdGlvblwiXG4gICAgXVxuICB9LFxuICBcIm1lc3NhZ2UvZXh0ZXJuYWwtYm9keVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJtZXNzYWdlL2ZlZWRiYWNrLXJlcG9ydFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJtZXNzYWdlL2dsb2JhbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInU4bXNnXCJdXG4gIH0sXG4gIFwibWVzc2FnZS9nbG9iYWwtZGVsaXZlcnktc3RhdHVzXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1widThkc25cIl1cbiAgfSxcbiAgXCJtZXNzYWdlL2dsb2JhbC1kaXNwb3NpdGlvbi1ub3RpZmljYXRpb25cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ1OG1kblwiXVxuICB9LFxuICBcIm1lc3NhZ2UvZ2xvYmFsLWhlYWRlcnNcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ1OGhkclwiXVxuICB9LFxuICBcIm1lc3NhZ2UvaHR0cFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogZmFsc2VcbiAgfSxcbiAgXCJtZXNzYWdlL2ltZG4reG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwibWVzc2FnZS9uZXdzXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcIm1lc3NhZ2UvcGFydGlhbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogZmFsc2VcbiAgfSxcbiAgXCJtZXNzYWdlL3JmYzgyMlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiZW1sXCIsXCJtaW1lXCJdXG4gIH0sXG4gIFwibWVzc2FnZS9zLWh0dHBcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwibWVzc2FnZS9zaXBcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwibWVzc2FnZS9zaXBmcmFnXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcIm1lc3NhZ2UvdHJhY2tpbmctc3RhdHVzXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcIm1lc3NhZ2Uvdm5kLnNpLnNpbXBcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwibWVzc2FnZS92bmQud2ZhLndzY1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIndzY1wiXVxuICB9LFxuICBcIm1vZGVsLzNtZlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIjNtZlwiXVxuICB9LFxuICBcIm1vZGVsL2U1N1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJtb2RlbC9nbHRmK2pzb25cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImdsdGZcIl1cbiAgfSxcbiAgXCJtb2RlbC9nbHRmLWJpbmFyeVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiZ2xiXCJdXG4gIH0sXG4gIFwibW9kZWwvaWdlc1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogZmFsc2UsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImlnc1wiLFwiaWdlc1wiXVxuICB9LFxuICBcIm1vZGVsL21lc2hcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IGZhbHNlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJtc2hcIixcIm1lc2hcIixcInNpbG9cIl1cbiAgfSxcbiAgXCJtb2RlbC9tdGxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJtdGxcIl1cbiAgfSxcbiAgXCJtb2RlbC9vYmpcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJvYmpcIl1cbiAgfSxcbiAgXCJtb2RlbC9zdGVwXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcIm1vZGVsL3N0ZXAreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJzdHB4XCJdXG4gIH0sXG4gIFwibW9kZWwvc3RlcCt6aXBcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IGZhbHNlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJzdHB6XCJdXG4gIH0sXG4gIFwibW9kZWwvc3RlcC14bWwremlwXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiBmYWxzZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wic3RweHpcIl1cbiAgfSxcbiAgXCJtb2RlbC9zdGxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJzdGxcIl1cbiAgfSxcbiAgXCJtb2RlbC92bmQuY29sbGFkYSt4bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImRhZVwiXVxuICB9LFxuICBcIm1vZGVsL3ZuZC5kd2ZcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJkd2ZcIl1cbiAgfSxcbiAgXCJtb2RlbC92bmQuZmxhdGxhbmQuM2RtbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJtb2RlbC92bmQuZ2RsXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiZ2RsXCJdXG4gIH0sXG4gIFwibW9kZWwvdm5kLmdzLWdkbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIlxuICB9LFxuICBcIm1vZGVsL3ZuZC5ncy5nZGxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwibW9kZWwvdm5kLmd0d1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImd0d1wiXVxuICB9LFxuICBcIm1vZGVsL3ZuZC5tb21sK3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcIm1vZGVsL3ZuZC5tdHNcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJtdHNcIl1cbiAgfSxcbiAgXCJtb2RlbC92bmQub3BlbmdleFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIm9nZXhcIl1cbiAgfSxcbiAgXCJtb2RlbC92bmQucGFyYXNvbGlkLnRyYW5zbWl0LmJpbmFyeVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInhfYlwiXVxuICB9LFxuICBcIm1vZGVsL3ZuZC5wYXJhc29saWQudHJhbnNtaXQudGV4dFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInhfdFwiXVxuICB9LFxuICBcIm1vZGVsL3ZuZC5weXRoYS5weW94XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcIm1vZGVsL3ZuZC5yb3NldHRlLmFubm90YXRlZC1kYXRhLW1vZGVsXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcIm1vZGVsL3ZuZC5zYXAudmRzXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1widmRzXCJdXG4gIH0sXG4gIFwibW9kZWwvdm5kLnVzZHoremlwXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiBmYWxzZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1widXNkelwiXVxuICB9LFxuICBcIm1vZGVsL3ZuZC52YWx2ZS5zb3VyY2UuY29tcGlsZWQtbWFwXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiYnNwXCJdXG4gIH0sXG4gIFwibW9kZWwvdm5kLnZ0dVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInZ0dVwiXVxuICB9LFxuICBcIm1vZGVsL3ZybWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IGZhbHNlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ3cmxcIixcInZybWxcIl1cbiAgfSxcbiAgXCJtb2RlbC94M2QrYmluYXJ5XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IGZhbHNlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ4M2RiXCIsXCJ4M2RielwiXVxuICB9LFxuICBcIm1vZGVsL3gzZCtmYXN0aW5mb3NldFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIngzZGJcIl1cbiAgfSxcbiAgXCJtb2RlbC94M2QrdnJtbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiBmYWxzZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wieDNkdlwiLFwieDNkdnpcIl1cbiAgfSxcbiAgXCJtb2RlbC94M2QreG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ4M2RcIixcIngzZHpcIl1cbiAgfSxcbiAgXCJtb2RlbC94M2QtdnJtbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIngzZHZcIl1cbiAgfSxcbiAgXCJtdWx0aXBhcnQvYWx0ZXJuYXRpdmVcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IGZhbHNlXG4gIH0sXG4gIFwibXVsdGlwYXJ0L2FwcGxlZG91YmxlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcIm11bHRpcGFydC9ieXRlcmFuZ2VzXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcIm11bHRpcGFydC9kaWdlc3RcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwibXVsdGlwYXJ0L2VuY3J5cHRlZFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogZmFsc2VcbiAgfSxcbiAgXCJtdWx0aXBhcnQvZm9ybS1kYXRhXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiBmYWxzZVxuICB9LFxuICBcIm11bHRpcGFydC9oZWFkZXItc2V0XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcIm11bHRpcGFydC9taXhlZFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJtdWx0aXBhcnQvbXVsdGlsaW5ndWFsXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcIm11bHRpcGFydC9wYXJhbGxlbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJtdWx0aXBhcnQvcmVsYXRlZFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogZmFsc2VcbiAgfSxcbiAgXCJtdWx0aXBhcnQvcmVwb3J0XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcIm11bHRpcGFydC9zaWduZWRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IGZhbHNlXG4gIH0sXG4gIFwibXVsdGlwYXJ0L3ZuZC5iaW50Lm1lZC1wbHVzXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcIm11bHRpcGFydC92b2ljZS1tZXNzYWdlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcIm11bHRpcGFydC94LW1peGVkLXJlcGxhY2VcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwidGV4dC8xZC1pbnRlcmxlYXZlZC1wYXJpdHlmZWNcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwidGV4dC9jYWNoZS1tYW5pZmVzdFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiYXBwY2FjaGVcIixcIm1hbmlmZXN0XCJdXG4gIH0sXG4gIFwidGV4dC9jYWxlbmRhclwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImljc1wiLFwiaWZiXCJdXG4gIH0sXG4gIFwidGV4dC9jYWxlbmRlclwiOiB7XG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcInRleHQvY21kXCI6IHtcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwidGV4dC9jb2ZmZWVzY3JpcHRcIjoge1xuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJjb2ZmZWVcIixcImxpdGNvZmZlZVwiXVxuICB9LFxuICBcInRleHQvY3FsXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcInRleHQvY3FsLWV4cHJlc3Npb25cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwidGV4dC9jcWwtaWRlbnRpZmllclwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJ0ZXh0L2Nzc1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjaGFyc2V0XCI6IFwiVVRGLThcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJjc3NcIl1cbiAgfSxcbiAgXCJ0ZXh0L2NzdlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiY3N2XCJdXG4gIH0sXG4gIFwidGV4dC9jc3Ytc2NoZW1hXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcInRleHQvZGlyZWN0b3J5XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcInRleHQvZG5zXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcInRleHQvZWNtYXNjcmlwdFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJ0ZXh0L2VuY2FwcnRwXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcInRleHQvZW5yaWNoZWRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwidGV4dC9maGlycGF0aFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJ0ZXh0L2ZsZXhmZWNcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwidGV4dC9md2RyZWRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwidGV4dC9nZmYzXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcInRleHQvZ3JhbW1hci1yZWYtbGlzdFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJ0ZXh0L2h0bWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImh0bWxcIixcImh0bVwiLFwic2h0bWxcIl1cbiAgfSxcbiAgXCJ0ZXh0L2phZGVcIjoge1xuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJqYWRlXCJdXG4gIH0sXG4gIFwidGV4dC9qYXZhc2NyaXB0XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwidGV4dC9qY3ItY25kXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcInRleHQvanN4XCI6IHtcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJqc3hcIl1cbiAgfSxcbiAgXCJ0ZXh0L2xlc3NcIjoge1xuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImxlc3NcIl1cbiAgfSxcbiAgXCJ0ZXh0L21hcmtkb3duXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJtYXJrZG93blwiLFwibWRcIl1cbiAgfSxcbiAgXCJ0ZXh0L21hdGhtbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJuZ2lueFwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJtbWxcIl1cbiAgfSxcbiAgXCJ0ZXh0L21keFwiOiB7XG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wibWR4XCJdXG4gIH0sXG4gIFwidGV4dC9taXphclwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJ0ZXh0L24zXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNoYXJzZXRcIjogXCJVVEYtOFwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIm4zXCJdXG4gIH0sXG4gIFwidGV4dC9wYXJhbWV0ZXJzXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNoYXJzZXRcIjogXCJVVEYtOFwiXG4gIH0sXG4gIFwidGV4dC9wYXJpdHlmZWNcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwidGV4dC9wbGFpblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1widHh0XCIsXCJ0ZXh0XCIsXCJjb25mXCIsXCJkZWZcIixcImxpc3RcIixcImxvZ1wiLFwiaW5cIixcImluaVwiXVxuICB9LFxuICBcInRleHQvcHJvdmVuYW5jZS1ub3RhdGlvblwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjaGFyc2V0XCI6IFwiVVRGLThcIlxuICB9LFxuICBcInRleHQvcHJzLmZhbGxlbnN0ZWluLnJzdFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJ0ZXh0L3Bycy5saW5lcy50YWdcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJkc2NcIl1cbiAgfSxcbiAgXCJ0ZXh0L3Bycy5wcm9wLmxvZ2ljXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcInRleHQvcmFwdG9yZmVjXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcInRleHQvcmVkXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcInRleHQvcmZjODIyLWhlYWRlcnNcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwidGV4dC9yaWNodGV4dFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wicnR4XCJdXG4gIH0sXG4gIFwidGV4dC9ydGZcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInJ0ZlwiXVxuICB9LFxuICBcInRleHQvcnRwLWVuYy1hZXNjbTEyOFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJ0ZXh0L3J0cGxvb3BiYWNrXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcInRleHQvcnR4XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcInRleHQvc2dtbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInNnbWxcIixcInNnbVwiXVxuICB9LFxuICBcInRleHQvc2hhY2xjXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcInRleHQvc2hleFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInNoZXhcIl1cbiAgfSxcbiAgXCJ0ZXh0L3NsaW1cIjoge1xuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJzbGltXCIsXCJzbG1cIl1cbiAgfSxcbiAgXCJ0ZXh0L3NwZHhcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJzcGR4XCJdXG4gIH0sXG4gIFwidGV4dC9zdHJpbmdzXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcInRleHQvc3R5bHVzXCI6IHtcbiAgICBcImV4dGVuc2lvbnNcIjogW1wic3R5bHVzXCIsXCJzdHlsXCJdXG4gIH0sXG4gIFwidGV4dC90MTQwXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcInRleHQvdGFiLXNlcGFyYXRlZC12YWx1ZXNcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInRzdlwiXVxuICB9LFxuICBcInRleHQvdHJvZmZcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ0XCIsXCJ0clwiLFwicm9mZlwiLFwibWFuXCIsXCJtZVwiLFwibXNcIl1cbiAgfSxcbiAgXCJ0ZXh0L3R1cnRsZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjaGFyc2V0XCI6IFwiVVRGLThcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1widHRsXCJdXG4gIH0sXG4gIFwidGV4dC91bHBmZWNcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwidGV4dC91cmktbGlzdFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1widXJpXCIsXCJ1cmlzXCIsXCJ1cmxzXCJdXG4gIH0sXG4gIFwidGV4dC92Y2FyZFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1widmNhcmRcIl1cbiAgfSxcbiAgXCJ0ZXh0L3ZuZC5hXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcInRleHQvdm5kLmFiY1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJ0ZXh0L3ZuZC5hc2NpaS1hcnRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwidGV4dC92bmQuY3VybFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImN1cmxcIl1cbiAgfSxcbiAgXCJ0ZXh0L3ZuZC5jdXJsLmRjdXJsXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJkY3VybFwiXVxuICB9LFxuICBcInRleHQvdm5kLmN1cmwubWN1cmxcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIm1jdXJsXCJdXG4gIH0sXG4gIFwidGV4dC92bmQuY3VybC5zY3VybFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wic2N1cmxcIl1cbiAgfSxcbiAgXCJ0ZXh0L3ZuZC5kZWJpYW4uY29weXJpZ2h0XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImNoYXJzZXRcIjogXCJVVEYtOFwiXG4gIH0sXG4gIFwidGV4dC92bmQuZG1jbGllbnRzY3JpcHRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwidGV4dC92bmQuZHZiLnN1YnRpdGxlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wic3ViXCJdXG4gIH0sXG4gIFwidGV4dC92bmQuZXNtZXJ0ZWMudGhlbWUtZGVzY3JpcHRvclwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjaGFyc2V0XCI6IFwiVVRGLThcIlxuICB9LFxuICBcInRleHQvdm5kLmZhbWlseXNlYXJjaC5nZWRjb21cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJnZWRcIl1cbiAgfSxcbiAgXCJ0ZXh0L3ZuZC5maWNsYWIuZmx0XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcInRleHQvdm5kLmZseVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImZseVwiXVxuICB9LFxuICBcInRleHQvdm5kLmZtaS5mbGV4c3RvclwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImZseFwiXVxuICB9LFxuICBcInRleHQvdm5kLmdtbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJ0ZXh0L3ZuZC5ncmFwaHZpelwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImd2XCJdXG4gIH0sXG4gIFwidGV4dC92bmQuaGFuc1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJ0ZXh0L3ZuZC5oZ2xcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwidGV4dC92bmQuaW4zZC4zZG1sXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiM2RtbFwiXVxuICB9LFxuICBcInRleHQvdm5kLmluM2Quc3BvdFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInNwb3RcIl1cbiAgfSxcbiAgXCJ0ZXh0L3ZuZC5pcHRjLm5ld3NtbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJ0ZXh0L3ZuZC5pcHRjLm5pdGZcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwidGV4dC92bmQubGF0ZXgtelwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJ0ZXh0L3ZuZC5tb3Rvcm9sYS5yZWZsZXhcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwidGV4dC92bmQubXMtbWVkaWFwYWNrYWdlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcInRleHQvdm5kLm5ldDJwaG9uZS5jb21tY2VudGVyLmNvbW1hbmRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwidGV4dC92bmQucmFkaXN5cy5tc21sLWJhc2ljLWxheW91dFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJ0ZXh0L3ZuZC5zZW54LndhcnBzY3JpcHRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwidGV4dC92bmQuc2kudXJpY2F0YWxvZ3VlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcInRleHQvdm5kLnNvc2lcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwidGV4dC92bmQuc3VuLmoybWUuYXBwLWRlc2NyaXB0b3JcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY2hhcnNldFwiOiBcIlVURi04XCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImphZFwiXVxuICB9LFxuICBcInRleHQvdm5kLnRyb2xsdGVjaC5saW5ndWlzdFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjaGFyc2V0XCI6IFwiVVRGLThcIlxuICB9LFxuICBcInRleHQvdm5kLndhcC5zaVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJ0ZXh0L3ZuZC53YXAuc2xcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwidGV4dC92bmQud2FwLndtbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIndtbFwiXVxuICB9LFxuICBcInRleHQvdm5kLndhcC53bWxzY3JpcHRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ3bWxzXCJdXG4gIH0sXG4gIFwidGV4dC92dHRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiY2hhcnNldFwiOiBcIlVURi04XCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1widnR0XCJdXG4gIH0sXG4gIFwidGV4dC94LWFzbVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wic1wiLFwiYXNtXCJdXG4gIH0sXG4gIFwidGV4dC94LWNcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImNcIixcImNjXCIsXCJjeHhcIixcImNwcFwiLFwiaFwiLFwiaGhcIixcImRpY1wiXVxuICB9LFxuICBcInRleHQveC1jb21wb25lbnRcIjoge1xuICAgIFwic291cmNlXCI6IFwibmdpbnhcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiaHRjXCJdXG4gIH0sXG4gIFwidGV4dC94LWZvcnRyYW5cIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImZcIixcImZvclwiLFwiZjc3XCIsXCJmOTBcIl1cbiAgfSxcbiAgXCJ0ZXh0L3gtZ3d0LXJwY1wiOiB7XG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcInRleHQveC1oYW5kbGViYXJzLXRlbXBsYXRlXCI6IHtcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiaGJzXCJdXG4gIH0sXG4gIFwidGV4dC94LWphdmEtc291cmNlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJqYXZhXCJdXG4gIH0sXG4gIFwidGV4dC94LWpxdWVyeS10bXBsXCI6IHtcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH0sXG4gIFwidGV4dC94LWx1YVwiOiB7XG4gICAgXCJleHRlbnNpb25zXCI6IFtcImx1YVwiXVxuICB9LFxuICBcInRleHQveC1tYXJrZG93blwiOiB7XG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wibWtkXCJdXG4gIH0sXG4gIFwidGV4dC94LW5mb1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wibmZvXCJdXG4gIH0sXG4gIFwidGV4dC94LW9wbWxcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIm9wbWxcIl1cbiAgfSxcbiAgXCJ0ZXh0L3gtb3JnXCI6IHtcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJvcmdcIl1cbiAgfSxcbiAgXCJ0ZXh0L3gtcGFzY2FsXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJwXCIsXCJwYXNcIl1cbiAgfSxcbiAgXCJ0ZXh0L3gtcHJvY2Vzc2luZ1wiOiB7XG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wicGRlXCJdXG4gIH0sXG4gIFwidGV4dC94LXNhc3NcIjoge1xuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJzYXNzXCJdXG4gIH0sXG4gIFwidGV4dC94LXNjc3NcIjoge1xuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJzY3NzXCJdXG4gIH0sXG4gIFwidGV4dC94LXNldGV4dFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiZXR4XCJdXG4gIH0sXG4gIFwidGV4dC94LXNmdlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wic2Z2XCJdXG4gIH0sXG4gIFwidGV4dC94LXN1c2UteW1wXCI6IHtcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ5bXBcIl1cbiAgfSxcbiAgXCJ0ZXh0L3gtdXVlbmNvZGVcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInV1XCJdXG4gIH0sXG4gIFwidGV4dC94LXZjYWxlbmRhclwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1widmNzXCJdXG4gIH0sXG4gIFwidGV4dC94LXZjYXJkXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ2Y2ZcIl1cbiAgfSxcbiAgXCJ0ZXh0L3htbFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wieG1sXCJdXG4gIH0sXG4gIFwidGV4dC94bWwtZXh0ZXJuYWwtcGFyc2VkLWVudGl0eVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJ0ZXh0L3lhbWxcIjoge1xuICAgIFwiY29tcHJlc3NpYmxlXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInlhbWxcIixcInltbFwiXVxuICB9LFxuICBcInZpZGVvLzFkLWludGVybGVhdmVkLXBhcml0eWZlY1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJ2aWRlby8zZ3BwXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiM2dwXCIsXCIzZ3BwXCJdXG4gIH0sXG4gIFwidmlkZW8vM2dwcC10dFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJ2aWRlby8zZ3BwMlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIjNnMlwiXVxuICB9LFxuICBcInZpZGVvL2F2MVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJ2aWRlby9ibXBlZ1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJ2aWRlby9idDY1NlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJ2aWRlby9jZWxiXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcInZpZGVvL2R2XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcInZpZGVvL2VuY2FwcnRwXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcInZpZGVvL2ZmdjFcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwidmlkZW8vZmxleGZlY1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJ2aWRlby9oMjYxXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiaDI2MVwiXVxuICB9LFxuICBcInZpZGVvL2gyNjNcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJoMjYzXCJdXG4gIH0sXG4gIFwidmlkZW8vaDI2My0xOTk4XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcInZpZGVvL2gyNjMtMjAwMFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJ2aWRlby9oMjY0XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiaDI2NFwiXVxuICB9LFxuICBcInZpZGVvL2gyNjQtcmNkb1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJ2aWRlby9oMjY0LXN2Y1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJ2aWRlby9oMjY1XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcInZpZGVvL2lzby5zZWdtZW50XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wibTRzXCJdXG4gIH0sXG4gIFwidmlkZW8vanBlZ1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImpwZ3ZcIl1cbiAgfSxcbiAgXCJ2aWRlby9qcGVnMjAwMFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJ2aWRlby9qcG1cIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImpwbVwiLFwianBnbVwiXVxuICB9LFxuICBcInZpZGVvL2p4c3ZcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwidmlkZW8vbWoyXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wibWoyXCIsXCJtanAyXCJdXG4gIH0sXG4gIFwidmlkZW8vbXAxc1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJ2aWRlby9tcDJwXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcInZpZGVvL21wMnRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ0c1wiXVxuICB9LFxuICBcInZpZGVvL21wNFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogZmFsc2UsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIm1wNFwiLFwibXA0dlwiLFwibXBnNFwiXVxuICB9LFxuICBcInZpZGVvL21wNHYtZXNcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwidmlkZW8vbXBlZ1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogZmFsc2UsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIm1wZWdcIixcIm1wZ1wiLFwibXBlXCIsXCJtMXZcIixcIm0ydlwiXVxuICB9LFxuICBcInZpZGVvL21wZWc0LWdlbmVyaWNcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwidmlkZW8vbXB2XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcInZpZGVvL252XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcInZpZGVvL29nZ1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogZmFsc2UsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIm9ndlwiXVxuICB9LFxuICBcInZpZGVvL3Bhcml0eWZlY1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJ2aWRlby9wb2ludGVyXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcInZpZGVvL3F1aWNrdGltZVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogZmFsc2UsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInF0XCIsXCJtb3ZcIl1cbiAgfSxcbiAgXCJ2aWRlby9yYXB0b3JmZWNcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwidmlkZW8vcmF3XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcInZpZGVvL3J0cC1lbmMtYWVzY20xMjhcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwidmlkZW8vcnRwbG9vcGJhY2tcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwidmlkZW8vcnR4XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcInZpZGVvL3NjaXBcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwidmlkZW8vc21wdGUyOTFcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwidmlkZW8vc21wdGUyOTJtXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcInZpZGVvL3VscGZlY1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJ2aWRlby92YzFcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwidmlkZW8vdmMyXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcInZpZGVvL3ZuZC5jY3R2XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcInZpZGVvL3ZuZC5kZWNlLmhkXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1widXZoXCIsXCJ1dnZoXCJdXG4gIH0sXG4gIFwidmlkZW8vdm5kLmRlY2UubW9iaWxlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1widXZtXCIsXCJ1dnZtXCJdXG4gIH0sXG4gIFwidmlkZW8vdm5kLmRlY2UubXA0XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcInZpZGVvL3ZuZC5kZWNlLnBkXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1widXZwXCIsXCJ1dnZwXCJdXG4gIH0sXG4gIFwidmlkZW8vdm5kLmRlY2Uuc2RcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ1dnNcIixcInV2dnNcIl1cbiAgfSxcbiAgXCJ2aWRlby92bmQuZGVjZS52aWRlb1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInV2dlwiLFwidXZ2dlwiXVxuICB9LFxuICBcInZpZGVvL3ZuZC5kaXJlY3R2Lm1wZWdcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwidmlkZW8vdm5kLmRpcmVjdHYubXBlZy10dHNcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwidmlkZW8vdm5kLmRsbmEubXBlZy10dHNcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwidmlkZW8vdm5kLmR2Yi5maWxlXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiZHZiXCJdXG4gIH0sXG4gIFwidmlkZW8vdm5kLmZ2dFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImZ2dFwiXVxuICB9LFxuICBcInZpZGVvL3ZuZC5obnMudmlkZW9cIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwidmlkZW8vdm5kLmlwdHZmb3J1bS4xZHBhcml0eWZlYy0xMDEwXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcInZpZGVvL3ZuZC5pcHR2Zm9ydW0uMWRwYXJpdHlmZWMtMjAwNVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJ2aWRlby92bmQuaXB0dmZvcnVtLjJkcGFyaXR5ZmVjLTEwMTBcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwidmlkZW8vdm5kLmlwdHZmb3J1bS4yZHBhcml0eWZlYy0yMDA1XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcInZpZGVvL3ZuZC5pcHR2Zm9ydW0udHRzYXZjXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcInZpZGVvL3ZuZC5pcHR2Zm9ydW0udHRzbXBlZzJcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwidmlkZW8vdm5kLm1vdG9yb2xhLnZpZGVvXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcInZpZGVvL3ZuZC5tb3Rvcm9sYS52aWRlb3BcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwidmlkZW8vdm5kLm1wZWd1cmxcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJteHVcIixcIm00dVwiXVxuICB9LFxuICBcInZpZGVvL3ZuZC5tcy1wbGF5cmVhZHkubWVkaWEucHl2XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wicHl2XCJdXG4gIH0sXG4gIFwidmlkZW8vdm5kLm5va2lhLmludGVybGVhdmVkLW11bHRpbWVkaWFcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwidmlkZW8vdm5kLm5va2lhLm1wNHZyXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcInZpZGVvL3ZuZC5ub2tpYS52aWRlb3ZvaXBcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwidmlkZW8vdm5kLm9iamVjdHZpZGVvXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcInZpZGVvL3ZuZC5yYWRnYW1ldHRvb2xzLmJpbmtcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwidmlkZW8vdm5kLnJhZGdhbWV0dG9vbHMuc21hY2tlclwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJ2aWRlby92bmQuc2VhbGVkLm1wZWcxXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcInZpZGVvL3ZuZC5zZWFsZWQubXBlZzRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwidmlkZW8vdm5kLnNlYWxlZC5zd2ZcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwidmlkZW8vdm5kLnNlYWxlZG1lZGlhLnNvZnRzZWFsLm1vdlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJ2aWRlby92bmQudXZ2dS5tcDRcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ1dnVcIixcInV2dnVcIl1cbiAgfSxcbiAgXCJ2aWRlby92bmQudml2b1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcInZpdlwiXVxuICB9LFxuICBcInZpZGVvL3ZuZC55b3V0dWJlLnl0XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImlhbmFcIlxuICB9LFxuICBcInZpZGVvL3ZwOFwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJpYW5hXCJcbiAgfSxcbiAgXCJ2aWRlby92cDlcIjoge1xuICAgIFwic291cmNlXCI6IFwiaWFuYVwiXG4gIH0sXG4gIFwidmlkZW8vd2VibVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiBmYWxzZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wid2VibVwiXVxuICB9LFxuICBcInZpZGVvL3gtZjR2XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJmNHZcIl1cbiAgfSxcbiAgXCJ2aWRlby94LWZsaVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiZmxpXCJdXG4gIH0sXG4gIFwidmlkZW8veC1mbHZcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJjb21wcmVzc2libGVcIjogZmFsc2UsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImZsdlwiXVxuICB9LFxuICBcInZpZGVvL3gtbTR2XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJtNHZcIl1cbiAgfSxcbiAgXCJ2aWRlby94LW1hdHJvc2thXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiY29tcHJlc3NpYmxlXCI6IGZhbHNlLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJta3ZcIixcIm1rM2RcIixcIm1rc1wiXVxuICB9LFxuICBcInZpZGVvL3gtbW5nXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJtbmdcIl1cbiAgfSxcbiAgXCJ2aWRlby94LW1zLWFzZlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiYXNmXCIsXCJhc3hcIl1cbiAgfSxcbiAgXCJ2aWRlby94LW1zLXZvYlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1widm9iXCJdXG4gIH0sXG4gIFwidmlkZW8veC1tcy13bVwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wid21cIl1cbiAgfSxcbiAgXCJ2aWRlby94LW1zLXdtdlwiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImNvbXByZXNzaWJsZVwiOiBmYWxzZSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1wid212XCJdXG4gIH0sXG4gIFwidmlkZW8veC1tcy13bXhcIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcIndteFwiXVxuICB9LFxuICBcInZpZGVvL3gtbXMtd3Z4XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJ3dnhcIl1cbiAgfSxcbiAgXCJ2aWRlby94LW1zdmlkZW9cIjoge1xuICAgIFwic291cmNlXCI6IFwiYXBhY2hlXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcImF2aVwiXVxuICB9LFxuICBcInZpZGVvL3gtc2dpLW1vdmllXCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJtb3ZpZVwiXVxuICB9LFxuICBcInZpZGVvL3gtc212XCI6IHtcbiAgICBcInNvdXJjZVwiOiBcImFwYWNoZVwiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXCJzbXZcIl1cbiAgfSxcbiAgXCJ4LWNvbmZlcmVuY2UveC1jb29sdGFsa1wiOiB7XG4gICAgXCJzb3VyY2VcIjogXCJhcGFjaGVcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1wiaWNlXCJdXG4gIH0sXG4gIFwieC1zaGFkZXIveC1mcmFnbWVudFwiOiB7XG4gICAgXCJjb21wcmVzc2libGVcIjogdHJ1ZVxuICB9LFxuICBcIngtc2hhZGVyL3gtdmVydGV4XCI6IHtcbiAgICBcImNvbXByZXNzaWJsZVwiOiB0cnVlXG4gIH1cbn1cbiIsICIvKiFcbiAqIG1pbWUtZGJcbiAqIENvcHlyaWdodChjKSAyMDE0IEpvbmF0aGFuIE9uZ1xuICogQ29weXJpZ2h0KGMpIDIwMTUtMjAyMiBEb3VnbGFzIENocmlzdG9waGVyIFdpbHNvblxuICogTUlUIExpY2Vuc2VkXG4gKi9cblxuLyoqXG4gKiBNb2R1bGUgZXhwb3J0cy5cbiAqL1xuXG5tb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4vZGIuanNvbicpXG4iLCAiLyohXG4gKiBtaW1lLXR5cGVzXG4gKiBDb3B5cmlnaHQoYykgMjAxNCBKb25hdGhhbiBPbmdcbiAqIENvcHlyaWdodChjKSAyMDE1IERvdWdsYXMgQ2hyaXN0b3BoZXIgV2lsc29uXG4gKiBNSVQgTGljZW5zZWRcbiAqL1xuXG4ndXNlIHN0cmljdCdcblxuLyoqXG4gKiBNb2R1bGUgZGVwZW5kZW5jaWVzLlxuICogQHByaXZhdGVcbiAqL1xuXG52YXIgZGIgPSByZXF1aXJlKCdtaW1lLWRiJylcbnZhciBleHRuYW1lID0gcmVxdWlyZSgncGF0aCcpLmV4dG5hbWVcblxuLyoqXG4gKiBNb2R1bGUgdmFyaWFibGVzLlxuICogQHByaXZhdGVcbiAqL1xuXG52YXIgRVhUUkFDVF9UWVBFX1JFR0VYUCA9IC9eXFxzKihbXjtcXHNdKikoPzo7fFxcc3wkKS9cbnZhciBURVhUX1RZUEVfUkVHRVhQID0gL150ZXh0XFwvL2lcblxuLyoqXG4gKiBNb2R1bGUgZXhwb3J0cy5cbiAqIEBwdWJsaWNcbiAqL1xuXG5leHBvcnRzLmNoYXJzZXQgPSBjaGFyc2V0XG5leHBvcnRzLmNoYXJzZXRzID0geyBsb29rdXA6IGNoYXJzZXQgfVxuZXhwb3J0cy5jb250ZW50VHlwZSA9IGNvbnRlbnRUeXBlXG5leHBvcnRzLmV4dGVuc2lvbiA9IGV4dGVuc2lvblxuZXhwb3J0cy5leHRlbnNpb25zID0gT2JqZWN0LmNyZWF0ZShudWxsKVxuZXhwb3J0cy5sb29rdXAgPSBsb29rdXBcbmV4cG9ydHMudHlwZXMgPSBPYmplY3QuY3JlYXRlKG51bGwpXG5cbi8vIFBvcHVsYXRlIHRoZSBleHRlbnNpb25zL3R5cGVzIG1hcHNcbnBvcHVsYXRlTWFwcyhleHBvcnRzLmV4dGVuc2lvbnMsIGV4cG9ydHMudHlwZXMpXG5cbi8qKlxuICogR2V0IHRoZSBkZWZhdWx0IGNoYXJzZXQgZm9yIGEgTUlNRSB0eXBlLlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSB0eXBlXG4gKiBAcmV0dXJuIHtib29sZWFufHN0cmluZ31cbiAqL1xuXG5mdW5jdGlvbiBjaGFyc2V0ICh0eXBlKSB7XG4gIGlmICghdHlwZSB8fCB0eXBlb2YgdHlwZSAhPT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuXG4gIC8vIFRPRE86IHVzZSBtZWRpYS10eXBlclxuICB2YXIgbWF0Y2ggPSBFWFRSQUNUX1RZUEVfUkVHRVhQLmV4ZWModHlwZSlcbiAgdmFyIG1pbWUgPSBtYXRjaCAmJiBkYlttYXRjaFsxXS50b0xvd2VyQ2FzZSgpXVxuXG4gIGlmIChtaW1lICYmIG1pbWUuY2hhcnNldCkge1xuICAgIHJldHVybiBtaW1lLmNoYXJzZXRcbiAgfVxuXG4gIC8vIGRlZmF1bHQgdGV4dC8qIHRvIHV0Zi04XG4gIGlmIChtYXRjaCAmJiBURVhUX1RZUEVfUkVHRVhQLnRlc3QobWF0Y2hbMV0pKSB7XG4gICAgcmV0dXJuICdVVEYtOCdcbiAgfVxuXG4gIHJldHVybiBmYWxzZVxufVxuXG4vKipcbiAqIENyZWF0ZSBhIGZ1bGwgQ29udGVudC1UeXBlIGhlYWRlciBnaXZlbiBhIE1JTUUgdHlwZSBvciBleHRlbnNpb24uXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IHN0clxuICogQHJldHVybiB7Ym9vbGVhbnxzdHJpbmd9XG4gKi9cblxuZnVuY3Rpb24gY29udGVudFR5cGUgKHN0cikge1xuICAvLyBUT0RPOiBzaG91bGQgdGhpcyBldmVuIGJlIGluIHRoaXMgbW9kdWxlP1xuICBpZiAoIXN0ciB8fCB0eXBlb2Ygc3RyICE9PSAnc3RyaW5nJykge1xuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbiAgdmFyIG1pbWUgPSBzdHIuaW5kZXhPZignLycpID09PSAtMVxuICAgID8gZXhwb3J0cy5sb29rdXAoc3RyKVxuICAgIDogc3RyXG5cbiAgaWYgKCFtaW1lKSB7XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cblxuICAvLyBUT0RPOiB1c2UgY29udGVudC10eXBlIG9yIG90aGVyIG1vZHVsZVxuICBpZiAobWltZS5pbmRleE9mKCdjaGFyc2V0JykgPT09IC0xKSB7XG4gICAgdmFyIGNoYXJzZXQgPSBleHBvcnRzLmNoYXJzZXQobWltZSlcbiAgICBpZiAoY2hhcnNldCkgbWltZSArPSAnOyBjaGFyc2V0PScgKyBjaGFyc2V0LnRvTG93ZXJDYXNlKClcbiAgfVxuXG4gIHJldHVybiBtaW1lXG59XG5cbi8qKlxuICogR2V0IHRoZSBkZWZhdWx0IGV4dGVuc2lvbiBmb3IgYSBNSU1FIHR5cGUuXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IHR5cGVcbiAqIEByZXR1cm4ge2Jvb2xlYW58c3RyaW5nfVxuICovXG5cbmZ1bmN0aW9uIGV4dGVuc2lvbiAodHlwZSkge1xuICBpZiAoIXR5cGUgfHwgdHlwZW9mIHR5cGUgIT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cblxuICAvLyBUT0RPOiB1c2UgbWVkaWEtdHlwZXJcbiAgdmFyIG1hdGNoID0gRVhUUkFDVF9UWVBFX1JFR0VYUC5leGVjKHR5cGUpXG5cbiAgLy8gZ2V0IGV4dGVuc2lvbnNcbiAgdmFyIGV4dHMgPSBtYXRjaCAmJiBleHBvcnRzLmV4dGVuc2lvbnNbbWF0Y2hbMV0udG9Mb3dlckNhc2UoKV1cblxuICBpZiAoIWV4dHMgfHwgIWV4dHMubGVuZ3RoKSB7XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cblxuICByZXR1cm4gZXh0c1swXVxufVxuXG4vKipcbiAqIExvb2t1cCB0aGUgTUlNRSB0eXBlIGZvciBhIGZpbGUgcGF0aC9leHRlbnNpb24uXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IHBhdGhcbiAqIEByZXR1cm4ge2Jvb2xlYW58c3RyaW5nfVxuICovXG5cbmZ1bmN0aW9uIGxvb2t1cCAocGF0aCkge1xuICBpZiAoIXBhdGggfHwgdHlwZW9mIHBhdGggIT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cblxuICAvLyBnZXQgdGhlIGV4dGVuc2lvbiAoXCJleHRcIiBvciBcIi5leHRcIiBvciBmdWxsIHBhdGgpXG4gIHZhciBleHRlbnNpb24gPSBleHRuYW1lKCd4LicgKyBwYXRoKVxuICAgIC50b0xvd2VyQ2FzZSgpXG4gICAgLnN1YnN0cigxKVxuXG4gIGlmICghZXh0ZW5zaW9uKSB7XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cblxuICByZXR1cm4gZXhwb3J0cy50eXBlc1tleHRlbnNpb25dIHx8IGZhbHNlXG59XG5cbi8qKlxuICogUG9wdWxhdGUgdGhlIGV4dGVuc2lvbnMgYW5kIHR5cGVzIG1hcHMuXG4gKiBAcHJpdmF0ZVxuICovXG5cbmZ1bmN0aW9uIHBvcHVsYXRlTWFwcyAoZXh0ZW5zaW9ucywgdHlwZXMpIHtcbiAgLy8gc291cmNlIHByZWZlcmVuY2UgKGxlYXN0IC0+IG1vc3QpXG4gIHZhciBwcmVmZXJlbmNlID0gWyduZ2lueCcsICdhcGFjaGUnLCB1bmRlZmluZWQsICdpYW5hJ11cblxuICBPYmplY3Qua2V5cyhkYikuZm9yRWFjaChmdW5jdGlvbiBmb3JFYWNoTWltZVR5cGUgKHR5cGUpIHtcbiAgICB2YXIgbWltZSA9IGRiW3R5cGVdXG4gICAgdmFyIGV4dHMgPSBtaW1lLmV4dGVuc2lvbnNcblxuICAgIGlmICghZXh0cyB8fCAhZXh0cy5sZW5ndGgpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIC8vIG1pbWUgLT4gZXh0ZW5zaW9uc1xuICAgIGV4dGVuc2lvbnNbdHlwZV0gPSBleHRzXG5cbiAgICAvLyBleHRlbnNpb24gLT4gbWltZVxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZXh0cy5sZW5ndGg7IGkrKykge1xuICAgICAgdmFyIGV4dGVuc2lvbiA9IGV4dHNbaV1cblxuICAgICAgaWYgKHR5cGVzW2V4dGVuc2lvbl0pIHtcbiAgICAgICAgdmFyIGZyb20gPSBwcmVmZXJlbmNlLmluZGV4T2YoZGJbdHlwZXNbZXh0ZW5zaW9uXV0uc291cmNlKVxuICAgICAgICB2YXIgdG8gPSBwcmVmZXJlbmNlLmluZGV4T2YobWltZS5zb3VyY2UpXG5cbiAgICAgICAgaWYgKHR5cGVzW2V4dGVuc2lvbl0gIT09ICdhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0nICYmXG4gICAgICAgICAgKGZyb20gPiB0byB8fCAoZnJvbSA9PT0gdG8gJiYgdHlwZXNbZXh0ZW5zaW9uXS5zdWJzdHIoMCwgMTIpID09PSAnYXBwbGljYXRpb24vJykpKSB7XG4gICAgICAgICAgLy8gc2tpcCB0aGUgcmVtYXBwaW5nXG4gICAgICAgICAgY29udGludWVcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyBzZXQgdGhlIGV4dGVuc2lvbiAtPiBtaW1lXG4gICAgICB0eXBlc1tleHRlbnNpb25dID0gdHlwZVxuICAgIH1cbiAgfSlcbn1cbiIsICJtb2R1bGUuZXhwb3J0cyA9IGRlZmVyO1xuXG4vKipcbiAqIFJ1bnMgcHJvdmlkZWQgZnVuY3Rpb24gb24gbmV4dCBpdGVyYXRpb24gb2YgdGhlIGV2ZW50IGxvb3BcbiAqXG4gKiBAcGFyYW0ge2Z1bmN0aW9ufSBmbiAtIGZ1bmN0aW9uIHRvIHJ1blxuICovXG5mdW5jdGlvbiBkZWZlcihmbilcbntcbiAgdmFyIG5leHRUaWNrID0gdHlwZW9mIHNldEltbWVkaWF0ZSA9PSAnZnVuY3Rpb24nXG4gICAgPyBzZXRJbW1lZGlhdGVcbiAgICA6IChcbiAgICAgIHR5cGVvZiBwcm9jZXNzID09ICdvYmplY3QnICYmIHR5cGVvZiBwcm9jZXNzLm5leHRUaWNrID09ICdmdW5jdGlvbidcbiAgICAgID8gcHJvY2Vzcy5uZXh0VGlja1xuICAgICAgOiBudWxsXG4gICAgKTtcblxuICBpZiAobmV4dFRpY2spXG4gIHtcbiAgICBuZXh0VGljayhmbik7XG4gIH1cbiAgZWxzZVxuICB7XG4gICAgc2V0VGltZW91dChmbiwgMCk7XG4gIH1cbn1cbiIsICJ2YXIgZGVmZXIgPSByZXF1aXJlKCcuL2RlZmVyLmpzJyk7XG5cbi8vIEFQSVxubW9kdWxlLmV4cG9ydHMgPSBhc3luYztcblxuLyoqXG4gKiBSdW5zIHByb3ZpZGVkIGNhbGxiYWNrIGFzeW5jaHJvbm91c2x5XG4gKiBldmVuIGlmIGNhbGxiYWNrIGl0c2VsZiBpcyBub3RcbiAqXG4gKiBAcGFyYW0gICB7ZnVuY3Rpb259IGNhbGxiYWNrIC0gY2FsbGJhY2sgdG8gaW52b2tlXG4gKiBAcmV0dXJucyB7ZnVuY3Rpb259IC0gYXVnbWVudGVkIGNhbGxiYWNrXG4gKi9cbmZ1bmN0aW9uIGFzeW5jKGNhbGxiYWNrKVxue1xuICB2YXIgaXNBc3luYyA9IGZhbHNlO1xuXG4gIC8vIGNoZWNrIGlmIGFzeW5jIGhhcHBlbmVkXG4gIGRlZmVyKGZ1bmN0aW9uKCkgeyBpc0FzeW5jID0gdHJ1ZTsgfSk7XG5cbiAgcmV0dXJuIGZ1bmN0aW9uIGFzeW5jX2NhbGxiYWNrKGVyciwgcmVzdWx0KVxuICB7XG4gICAgaWYgKGlzQXN5bmMpXG4gICAge1xuICAgICAgY2FsbGJhY2soZXJyLCByZXN1bHQpO1xuICAgIH1cbiAgICBlbHNlXG4gICAge1xuICAgICAgZGVmZXIoZnVuY3Rpb24gbmV4dFRpY2tfY2FsbGJhY2soKVxuICAgICAge1xuICAgICAgICBjYWxsYmFjayhlcnIsIHJlc3VsdCk7XG4gICAgICB9KTtcbiAgICB9XG4gIH07XG59XG4iLCAiLy8gQVBJXG5tb2R1bGUuZXhwb3J0cyA9IGFib3J0O1xuXG4vKipcbiAqIEFib3J0cyBsZWZ0b3ZlciBhY3RpdmUgam9ic1xuICpcbiAqIEBwYXJhbSB7b2JqZWN0fSBzdGF0ZSAtIGN1cnJlbnQgc3RhdGUgb2JqZWN0XG4gKi9cbmZ1bmN0aW9uIGFib3J0KHN0YXRlKVxue1xuICBPYmplY3Qua2V5cyhzdGF0ZS5qb2JzKS5mb3JFYWNoKGNsZWFuLmJpbmQoc3RhdGUpKTtcblxuICAvLyByZXNldCBsZWZ0b3ZlciBqb2JzXG4gIHN0YXRlLmpvYnMgPSB7fTtcbn1cblxuLyoqXG4gKiBDbGVhbnMgdXAgbGVmdG92ZXIgam9iIGJ5IGludm9raW5nIGFib3J0IGZ1bmN0aW9uIGZvciB0aGUgcHJvdmlkZWQgam9iIGlkXG4gKlxuICogQHRoaXMgIHN0YXRlXG4gKiBAcGFyYW0ge3N0cmluZ3xudW1iZXJ9IGtleSAtIGpvYiBpZCB0byBhYm9ydFxuICovXG5mdW5jdGlvbiBjbGVhbihrZXkpXG57XG4gIGlmICh0eXBlb2YgdGhpcy5qb2JzW2tleV0gPT0gJ2Z1bmN0aW9uJylcbiAge1xuICAgIHRoaXMuam9ic1trZXldKCk7XG4gIH1cbn1cbiIsICJ2YXIgYXN5bmMgPSByZXF1aXJlKCcuL2FzeW5jLmpzJylcbiAgLCBhYm9ydCA9IHJlcXVpcmUoJy4vYWJvcnQuanMnKVxuICA7XG5cbi8vIEFQSVxubW9kdWxlLmV4cG9ydHMgPSBpdGVyYXRlO1xuXG4vKipcbiAqIEl0ZXJhdGVzIG92ZXIgZWFjaCBqb2Igb2JqZWN0XG4gKlxuICogQHBhcmFtIHthcnJheXxvYmplY3R9IGxpc3QgLSBhcnJheSBvciBvYmplY3QgKG5hbWVkIGxpc3QpIHRvIGl0ZXJhdGUgb3ZlclxuICogQHBhcmFtIHtmdW5jdGlvbn0gaXRlcmF0b3IgLSBpdGVyYXRvciB0byBydW5cbiAqIEBwYXJhbSB7b2JqZWN0fSBzdGF0ZSAtIGN1cnJlbnQgam9iIHN0YXR1c1xuICogQHBhcmFtIHtmdW5jdGlvbn0gY2FsbGJhY2sgLSBpbnZva2VkIHdoZW4gYWxsIGVsZW1lbnRzIHByb2Nlc3NlZFxuICovXG5mdW5jdGlvbiBpdGVyYXRlKGxpc3QsIGl0ZXJhdG9yLCBzdGF0ZSwgY2FsbGJhY2spXG57XG4gIC8vIHN0b3JlIGN1cnJlbnQgaW5kZXhcbiAgdmFyIGtleSA9IHN0YXRlWydrZXllZExpc3QnXSA/IHN0YXRlWydrZXllZExpc3QnXVtzdGF0ZS5pbmRleF0gOiBzdGF0ZS5pbmRleDtcblxuICBzdGF0ZS5qb2JzW2tleV0gPSBydW5Kb2IoaXRlcmF0b3IsIGtleSwgbGlzdFtrZXldLCBmdW5jdGlvbihlcnJvciwgb3V0cHV0KVxuICB7XG4gICAgLy8gZG9uJ3QgcmVwZWF0IHlvdXJzZWxmXG4gICAgLy8gc2tpcCBzZWNvbmRhcnkgY2FsbGJhY2tzXG4gICAgaWYgKCEoa2V5IGluIHN0YXRlLmpvYnMpKVxuICAgIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBjbGVhbiB1cCBqb2JzXG4gICAgZGVsZXRlIHN0YXRlLmpvYnNba2V5XTtcblxuICAgIGlmIChlcnJvcilcbiAgICB7XG4gICAgICAvLyBkb24ndCBwcm9jZXNzIHJlc3Qgb2YgdGhlIHJlc3VsdHNcbiAgICAgIC8vIHN0b3Agc3RpbGwgYWN0aXZlIGpvYnNcbiAgICAgIC8vIGFuZCByZXNldCB0aGUgbGlzdFxuICAgICAgYWJvcnQoc3RhdGUpO1xuICAgIH1cbiAgICBlbHNlXG4gICAge1xuICAgICAgc3RhdGUucmVzdWx0c1trZXldID0gb3V0cHV0O1xuICAgIH1cblxuICAgIC8vIHJldHVybiBzYWx2YWdlZCByZXN1bHRzXG4gICAgY2FsbGJhY2soZXJyb3IsIHN0YXRlLnJlc3VsdHMpO1xuICB9KTtcbn1cblxuLyoqXG4gKiBSdW5zIGl0ZXJhdG9yIG92ZXIgcHJvdmlkZWQgam9iIGVsZW1lbnRcbiAqXG4gKiBAcGFyYW0gICB7ZnVuY3Rpb259IGl0ZXJhdG9yIC0gaXRlcmF0b3IgdG8gaW52b2tlXG4gKiBAcGFyYW0gICB7c3RyaW5nfG51bWJlcn0ga2V5IC0ga2V5L2luZGV4IG9mIHRoZSBlbGVtZW50IGluIHRoZSBsaXN0IG9mIGpvYnNcbiAqIEBwYXJhbSAgIHttaXhlZH0gaXRlbSAtIGpvYiBkZXNjcmlwdGlvblxuICogQHBhcmFtICAge2Z1bmN0aW9ufSBjYWxsYmFjayAtIGludm9rZWQgYWZ0ZXIgaXRlcmF0b3IgaXMgZG9uZSB3aXRoIHRoZSBqb2JcbiAqIEByZXR1cm5zIHtmdW5jdGlvbnxtaXhlZH0gLSBqb2IgYWJvcnQgZnVuY3Rpb24gb3Igc29tZXRoaW5nIGVsc2VcbiAqL1xuZnVuY3Rpb24gcnVuSm9iKGl0ZXJhdG9yLCBrZXksIGl0ZW0sIGNhbGxiYWNrKVxue1xuICB2YXIgYWJvcnRlcjtcblxuICAvLyBhbGxvdyBzaG9ydGN1dCBpZiBpdGVyYXRvciBleHBlY3RzIG9ubHkgdHdvIGFyZ3VtZW50c1xuICBpZiAoaXRlcmF0b3IubGVuZ3RoID09IDIpXG4gIHtcbiAgICBhYm9ydGVyID0gaXRlcmF0b3IoaXRlbSwgYXN5bmMoY2FsbGJhY2spKTtcbiAgfVxuICAvLyBvdGhlcndpc2UgZ28gd2l0aCBmdWxsIHRocmVlIGFyZ3VtZW50c1xuICBlbHNlXG4gIHtcbiAgICBhYm9ydGVyID0gaXRlcmF0b3IoaXRlbSwga2V5LCBhc3luYyhjYWxsYmFjaykpO1xuICB9XG5cbiAgcmV0dXJuIGFib3J0ZXI7XG59XG4iLCAiLy8gQVBJXG5tb2R1bGUuZXhwb3J0cyA9IHN0YXRlO1xuXG4vKipcbiAqIENyZWF0ZXMgaW5pdGlhbCBzdGF0ZSBvYmplY3RcbiAqIGZvciBpdGVyYXRpb24gb3ZlciBsaXN0XG4gKlxuICogQHBhcmFtICAge2FycmF5fG9iamVjdH0gbGlzdCAtIGxpc3QgdG8gaXRlcmF0ZSBvdmVyXG4gKiBAcGFyYW0gICB7ZnVuY3Rpb258bnVsbH0gc29ydE1ldGhvZCAtIGZ1bmN0aW9uIHRvIHVzZSBmb3Iga2V5cyBzb3J0LFxuICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3IgYG51bGxgIHRvIGtlZXAgdGhlbSBhcyBpc1xuICogQHJldHVybnMge29iamVjdH0gLSBpbml0aWFsIHN0YXRlIG9iamVjdFxuICovXG5mdW5jdGlvbiBzdGF0ZShsaXN0LCBzb3J0TWV0aG9kKVxue1xuICB2YXIgaXNOYW1lZExpc3QgPSAhQXJyYXkuaXNBcnJheShsaXN0KVxuICAgICwgaW5pdFN0YXRlID1cbiAgICB7XG4gICAgICBpbmRleCAgICA6IDAsXG4gICAgICBrZXllZExpc3Q6IGlzTmFtZWRMaXN0IHx8IHNvcnRNZXRob2QgPyBPYmplY3Qua2V5cyhsaXN0KSA6IG51bGwsXG4gICAgICBqb2JzICAgICA6IHt9LFxuICAgICAgcmVzdWx0cyAgOiBpc05hbWVkTGlzdCA/IHt9IDogW10sXG4gICAgICBzaXplICAgICA6IGlzTmFtZWRMaXN0ID8gT2JqZWN0LmtleXMobGlzdCkubGVuZ3RoIDogbGlzdC5sZW5ndGhcbiAgICB9XG4gICAgO1xuXG4gIGlmIChzb3J0TWV0aG9kKVxuICB7XG4gICAgLy8gc29ydCBhcnJheSBrZXlzIGJhc2VkIG9uIGl0J3MgdmFsdWVzXG4gICAgLy8gc29ydCBvYmplY3QncyBrZXlzIGp1c3Qgb24gb3duIG1lcml0XG4gICAgaW5pdFN0YXRlLmtleWVkTGlzdC5zb3J0KGlzTmFtZWRMaXN0ID8gc29ydE1ldGhvZCA6IGZ1bmN0aW9uKGEsIGIpXG4gICAge1xuICAgICAgcmV0dXJuIHNvcnRNZXRob2QobGlzdFthXSwgbGlzdFtiXSk7XG4gICAgfSk7XG4gIH1cblxuICByZXR1cm4gaW5pdFN0YXRlO1xufVxuIiwgInZhciBhYm9ydCA9IHJlcXVpcmUoJy4vYWJvcnQuanMnKVxuICAsIGFzeW5jID0gcmVxdWlyZSgnLi9hc3luYy5qcycpXG4gIDtcblxuLy8gQVBJXG5tb2R1bGUuZXhwb3J0cyA9IHRlcm1pbmF0b3I7XG5cbi8qKlxuICogVGVybWluYXRlcyBqb2JzIGluIHRoZSBhdHRhY2hlZCBzdGF0ZSBjb250ZXh0XG4gKlxuICogQHRoaXMgIEFzeW5jS2l0U3RhdGUjXG4gKiBAcGFyYW0ge2Z1bmN0aW9ufSBjYWxsYmFjayAtIGZpbmFsIGNhbGxiYWNrIHRvIGludm9rZSBhZnRlciB0ZXJtaW5hdGlvblxuICovXG5mdW5jdGlvbiB0ZXJtaW5hdG9yKGNhbGxiYWNrKVxue1xuICBpZiAoIU9iamVjdC5rZXlzKHRoaXMuam9icykubGVuZ3RoKVxuICB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgLy8gZmFzdCBmb3J3YXJkIGl0ZXJhdGlvbiBpbmRleFxuICB0aGlzLmluZGV4ID0gdGhpcy5zaXplO1xuXG4gIC8vIGFib3J0IGpvYnNcbiAgYWJvcnQodGhpcyk7XG5cbiAgLy8gc2VuZCBiYWNrIHJlc3VsdHMgd2UgaGF2ZSBzbyBmYXJcbiAgYXN5bmMoY2FsbGJhY2spKG51bGwsIHRoaXMucmVzdWx0cyk7XG59XG4iLCAidmFyIGl0ZXJhdGUgICAgPSByZXF1aXJlKCcuL2xpYi9pdGVyYXRlLmpzJylcbiAgLCBpbml0U3RhdGUgID0gcmVxdWlyZSgnLi9saWIvc3RhdGUuanMnKVxuICAsIHRlcm1pbmF0b3IgPSByZXF1aXJlKCcuL2xpYi90ZXJtaW5hdG9yLmpzJylcbiAgO1xuXG4vLyBQdWJsaWMgQVBJXG5tb2R1bGUuZXhwb3J0cyA9IHBhcmFsbGVsO1xuXG4vKipcbiAqIFJ1bnMgaXRlcmF0b3Igb3ZlciBwcm92aWRlZCBhcnJheSBlbGVtZW50cyBpbiBwYXJhbGxlbFxuICpcbiAqIEBwYXJhbSAgIHthcnJheXxvYmplY3R9IGxpc3QgLSBhcnJheSBvciBvYmplY3QgKG5hbWVkIGxpc3QpIHRvIGl0ZXJhdGUgb3ZlclxuICogQHBhcmFtICAge2Z1bmN0aW9ufSBpdGVyYXRvciAtIGl0ZXJhdG9yIHRvIHJ1blxuICogQHBhcmFtICAge2Z1bmN0aW9ufSBjYWxsYmFjayAtIGludm9rZWQgd2hlbiBhbGwgZWxlbWVudHMgcHJvY2Vzc2VkXG4gKiBAcmV0dXJucyB7ZnVuY3Rpb259IC0gam9icyB0ZXJtaW5hdG9yXG4gKi9cbmZ1bmN0aW9uIHBhcmFsbGVsKGxpc3QsIGl0ZXJhdG9yLCBjYWxsYmFjaylcbntcbiAgdmFyIHN0YXRlID0gaW5pdFN0YXRlKGxpc3QpO1xuXG4gIHdoaWxlIChzdGF0ZS5pbmRleCA8IChzdGF0ZVsna2V5ZWRMaXN0J10gfHwgbGlzdCkubGVuZ3RoKVxuICB7XG4gICAgaXRlcmF0ZShsaXN0LCBpdGVyYXRvciwgc3RhdGUsIGZ1bmN0aW9uKGVycm9yLCByZXN1bHQpXG4gICAge1xuICAgICAgaWYgKGVycm9yKVxuICAgICAge1xuICAgICAgICBjYWxsYmFjayhlcnJvciwgcmVzdWx0KTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICAvLyBsb29rcyBsaWtlIGl0J3MgdGhlIGxhc3Qgb25lXG4gICAgICBpZiAoT2JqZWN0LmtleXMoc3RhdGUuam9icykubGVuZ3RoID09PSAwKVxuICAgICAge1xuICAgICAgICBjYWxsYmFjayhudWxsLCBzdGF0ZS5yZXN1bHRzKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgc3RhdGUuaW5kZXgrKztcbiAgfVxuXG4gIHJldHVybiB0ZXJtaW5hdG9yLmJpbmQoc3RhdGUsIGNhbGxiYWNrKTtcbn1cbiIsICJ2YXIgaXRlcmF0ZSAgICA9IHJlcXVpcmUoJy4vbGliL2l0ZXJhdGUuanMnKVxuICAsIGluaXRTdGF0ZSAgPSByZXF1aXJlKCcuL2xpYi9zdGF0ZS5qcycpXG4gICwgdGVybWluYXRvciA9IHJlcXVpcmUoJy4vbGliL3Rlcm1pbmF0b3IuanMnKVxuICA7XG5cbi8vIFB1YmxpYyBBUElcbm1vZHVsZS5leHBvcnRzID0gc2VyaWFsT3JkZXJlZDtcbi8vIHNvcnRpbmcgaGVscGVyc1xubW9kdWxlLmV4cG9ydHMuYXNjZW5kaW5nICA9IGFzY2VuZGluZztcbm1vZHVsZS5leHBvcnRzLmRlc2NlbmRpbmcgPSBkZXNjZW5kaW5nO1xuXG4vKipcbiAqIFJ1bnMgaXRlcmF0b3Igb3ZlciBwcm92aWRlZCBzb3J0ZWQgYXJyYXkgZWxlbWVudHMgaW4gc2VyaWVzXG4gKlxuICogQHBhcmFtICAge2FycmF5fG9iamVjdH0gbGlzdCAtIGFycmF5IG9yIG9iamVjdCAobmFtZWQgbGlzdCkgdG8gaXRlcmF0ZSBvdmVyXG4gKiBAcGFyYW0gICB7ZnVuY3Rpb259IGl0ZXJhdG9yIC0gaXRlcmF0b3IgdG8gcnVuXG4gKiBAcGFyYW0gICB7ZnVuY3Rpb259IHNvcnRNZXRob2QgLSBjdXN0b20gc29ydCBmdW5jdGlvblxuICogQHBhcmFtICAge2Z1bmN0aW9ufSBjYWxsYmFjayAtIGludm9rZWQgd2hlbiBhbGwgZWxlbWVudHMgcHJvY2Vzc2VkXG4gKiBAcmV0dXJucyB7ZnVuY3Rpb259IC0gam9icyB0ZXJtaW5hdG9yXG4gKi9cbmZ1bmN0aW9uIHNlcmlhbE9yZGVyZWQobGlzdCwgaXRlcmF0b3IsIHNvcnRNZXRob2QsIGNhbGxiYWNrKVxue1xuICB2YXIgc3RhdGUgPSBpbml0U3RhdGUobGlzdCwgc29ydE1ldGhvZCk7XG5cbiAgaXRlcmF0ZShsaXN0LCBpdGVyYXRvciwgc3RhdGUsIGZ1bmN0aW9uIGl0ZXJhdG9ySGFuZGxlcihlcnJvciwgcmVzdWx0KVxuICB7XG4gICAgaWYgKGVycm9yKVxuICAgIHtcbiAgICAgIGNhbGxiYWNrKGVycm9yLCByZXN1bHQpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHN0YXRlLmluZGV4Kys7XG5cbiAgICAvLyBhcmUgd2UgdGhlcmUgeWV0P1xuICAgIGlmIChzdGF0ZS5pbmRleCA8IChzdGF0ZVsna2V5ZWRMaXN0J10gfHwgbGlzdCkubGVuZ3RoKVxuICAgIHtcbiAgICAgIGl0ZXJhdGUobGlzdCwgaXRlcmF0b3IsIHN0YXRlLCBpdGVyYXRvckhhbmRsZXIpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIGRvbmUgaGVyZVxuICAgIGNhbGxiYWNrKG51bGwsIHN0YXRlLnJlc3VsdHMpO1xuICB9KTtcblxuICByZXR1cm4gdGVybWluYXRvci5iaW5kKHN0YXRlLCBjYWxsYmFjayk7XG59XG5cbi8qXG4gKiAtLSBTb3J0IG1ldGhvZHNcbiAqL1xuXG4vKipcbiAqIHNvcnQgaGVscGVyIHRvIHNvcnQgYXJyYXkgZWxlbWVudHMgaW4gYXNjZW5kaW5nIG9yZGVyXG4gKlxuICogQHBhcmFtICAge21peGVkfSBhIC0gYW4gaXRlbSB0byBjb21wYXJlXG4gKiBAcGFyYW0gICB7bWl4ZWR9IGIgLSBhbiBpdGVtIHRvIGNvbXBhcmVcbiAqIEByZXR1cm5zIHtudW1iZXJ9IC0gY29tcGFyaXNvbiByZXN1bHRcbiAqL1xuZnVuY3Rpb24gYXNjZW5kaW5nKGEsIGIpXG57XG4gIHJldHVybiBhIDwgYiA/IC0xIDogYSA+IGIgPyAxIDogMDtcbn1cblxuLyoqXG4gKiBzb3J0IGhlbHBlciB0byBzb3J0IGFycmF5IGVsZW1lbnRzIGluIGRlc2NlbmRpbmcgb3JkZXJcbiAqXG4gKiBAcGFyYW0gICB7bWl4ZWR9IGEgLSBhbiBpdGVtIHRvIGNvbXBhcmVcbiAqIEBwYXJhbSAgIHttaXhlZH0gYiAtIGFuIGl0ZW0gdG8gY29tcGFyZVxuICogQHJldHVybnMge251bWJlcn0gLSBjb21wYXJpc29uIHJlc3VsdFxuICovXG5mdW5jdGlvbiBkZXNjZW5kaW5nKGEsIGIpXG57XG4gIHJldHVybiAtMSAqIGFzY2VuZGluZyhhLCBiKTtcbn1cbiIsICJ2YXIgc2VyaWFsT3JkZXJlZCA9IHJlcXVpcmUoJy4vc2VyaWFsT3JkZXJlZC5qcycpO1xuXG4vLyBQdWJsaWMgQVBJXG5tb2R1bGUuZXhwb3J0cyA9IHNlcmlhbDtcblxuLyoqXG4gKiBSdW5zIGl0ZXJhdG9yIG92ZXIgcHJvdmlkZWQgYXJyYXkgZWxlbWVudHMgaW4gc2VyaWVzXG4gKlxuICogQHBhcmFtICAge2FycmF5fG9iamVjdH0gbGlzdCAtIGFycmF5IG9yIG9iamVjdCAobmFtZWQgbGlzdCkgdG8gaXRlcmF0ZSBvdmVyXG4gKiBAcGFyYW0gICB7ZnVuY3Rpb259IGl0ZXJhdG9yIC0gaXRlcmF0b3IgdG8gcnVuXG4gKiBAcGFyYW0gICB7ZnVuY3Rpb259IGNhbGxiYWNrIC0gaW52b2tlZCB3aGVuIGFsbCBlbGVtZW50cyBwcm9jZXNzZWRcbiAqIEByZXR1cm5zIHtmdW5jdGlvbn0gLSBqb2JzIHRlcm1pbmF0b3JcbiAqL1xuZnVuY3Rpb24gc2VyaWFsKGxpc3QsIGl0ZXJhdG9yLCBjYWxsYmFjaylcbntcbiAgcmV0dXJuIHNlcmlhbE9yZGVyZWQobGlzdCwgaXRlcmF0b3IsIG51bGwsIGNhbGxiYWNrKTtcbn1cbiIsICJtb2R1bGUuZXhwb3J0cyA9XG57XG4gIHBhcmFsbGVsICAgICAgOiByZXF1aXJlKCcuL3BhcmFsbGVsLmpzJyksXG4gIHNlcmlhbCAgICAgICAgOiByZXF1aXJlKCcuL3NlcmlhbC5qcycpLFxuICBzZXJpYWxPcmRlcmVkIDogcmVxdWlyZSgnLi9zZXJpYWxPcmRlcmVkLmpzJylcbn07XG4iLCAiJ3VzZSBzdHJpY3QnO1xuXG4vKiogQHR5cGUge2ltcG9ydCgnLicpfSAqL1xubW9kdWxlLmV4cG9ydHMgPSBPYmplY3Q7XG4iLCAiJ3VzZSBzdHJpY3QnO1xuXG4vKiogQHR5cGUge2ltcG9ydCgnLicpfSAqL1xubW9kdWxlLmV4cG9ydHMgPSBFcnJvcjtcbiIsICIndXNlIHN0cmljdCc7XG5cbi8qKiBAdHlwZSB7aW1wb3J0KCcuL2V2YWwnKX0gKi9cbm1vZHVsZS5leHBvcnRzID0gRXZhbEVycm9yO1xuIiwgIid1c2Ugc3RyaWN0JztcblxuLyoqIEB0eXBlIHtpbXBvcnQoJy4vcmFuZ2UnKX0gKi9cbm1vZHVsZS5leHBvcnRzID0gUmFuZ2VFcnJvcjtcbiIsICIndXNlIHN0cmljdCc7XG5cbi8qKiBAdHlwZSB7aW1wb3J0KCcuL3JlZicpfSAqL1xubW9kdWxlLmV4cG9ydHMgPSBSZWZlcmVuY2VFcnJvcjtcbiIsICIndXNlIHN0cmljdCc7XG5cbi8qKiBAdHlwZSB7aW1wb3J0KCcuL3N5bnRheCcpfSAqL1xubW9kdWxlLmV4cG9ydHMgPSBTeW50YXhFcnJvcjtcbiIsICIndXNlIHN0cmljdCc7XG5cbi8qKiBAdHlwZSB7aW1wb3J0KCcuL3R5cGUnKX0gKi9cbm1vZHVsZS5leHBvcnRzID0gVHlwZUVycm9yO1xuIiwgIid1c2Ugc3RyaWN0JztcblxuLyoqIEB0eXBlIHtpbXBvcnQoJy4vdXJpJyl9ICovXG5tb2R1bGUuZXhwb3J0cyA9IFVSSUVycm9yO1xuIiwgIid1c2Ugc3RyaWN0JztcblxuLyoqIEB0eXBlIHtpbXBvcnQoJy4vYWJzJyl9ICovXG5tb2R1bGUuZXhwb3J0cyA9IE1hdGguYWJzO1xuIiwgIid1c2Ugc3RyaWN0JztcblxuLyoqIEB0eXBlIHtpbXBvcnQoJy4vZmxvb3InKX0gKi9cbm1vZHVsZS5leHBvcnRzID0gTWF0aC5mbG9vcjtcbiIsICIndXNlIHN0cmljdCc7XG5cbi8qKiBAdHlwZSB7aW1wb3J0KCcuL21heCcpfSAqL1xubW9kdWxlLmV4cG9ydHMgPSBNYXRoLm1heDtcbiIsICIndXNlIHN0cmljdCc7XG5cbi8qKiBAdHlwZSB7aW1wb3J0KCcuL21pbicpfSAqL1xubW9kdWxlLmV4cG9ydHMgPSBNYXRoLm1pbjtcbiIsICIndXNlIHN0cmljdCc7XG5cbi8qKiBAdHlwZSB7aW1wb3J0KCcuL3BvdycpfSAqL1xubW9kdWxlLmV4cG9ydHMgPSBNYXRoLnBvdztcbiIsICIndXNlIHN0cmljdCc7XG5cbi8qKiBAdHlwZSB7aW1wb3J0KCcuL3JvdW5kJyl9ICovXG5tb2R1bGUuZXhwb3J0cyA9IE1hdGgucm91bmQ7XG4iLCAiJ3VzZSBzdHJpY3QnO1xuXG4vKiogQHR5cGUge2ltcG9ydCgnLi9pc05hTicpfSAqL1xubW9kdWxlLmV4cG9ydHMgPSBOdW1iZXIuaXNOYU4gfHwgZnVuY3Rpb24gaXNOYU4oYSkge1xuXHRyZXR1cm4gYSAhPT0gYTtcbn07XG4iLCAiJ3VzZSBzdHJpY3QnO1xuXG52YXIgJGlzTmFOID0gcmVxdWlyZSgnLi9pc05hTicpO1xuXG4vKiogQHR5cGUge2ltcG9ydCgnLi9zaWduJyl9ICovXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIHNpZ24obnVtYmVyKSB7XG5cdGlmICgkaXNOYU4obnVtYmVyKSB8fCBudW1iZXIgPT09IDApIHtcblx0XHRyZXR1cm4gbnVtYmVyO1xuXHR9XG5cdHJldHVybiBudW1iZXIgPCAwID8gLTEgOiArMTtcbn07XG4iLCAiJ3VzZSBzdHJpY3QnO1xuXG4vKiogQHR5cGUge2ltcG9ydCgnLi9nT1BEJyl9ICovXG5tb2R1bGUuZXhwb3J0cyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7XG4iLCAiJ3VzZSBzdHJpY3QnO1xuXG4vKiogQHR5cGUge2ltcG9ydCgnLicpfSAqL1xudmFyICRnT1BEID0gcmVxdWlyZSgnLi9nT1BEJyk7XG5cbmlmICgkZ09QRCkge1xuXHR0cnkge1xuXHRcdCRnT1BEKFtdLCAnbGVuZ3RoJyk7XG5cdH0gY2F0Y2ggKGUpIHtcblx0XHQvLyBJRSA4IGhhcyBhIGJyb2tlbiBnT1BEXG5cdFx0JGdPUEQgPSBudWxsO1xuXHR9XG59XG5cbm1vZHVsZS5leHBvcnRzID0gJGdPUEQ7XG4iLCAiJ3VzZSBzdHJpY3QnO1xuXG4vKiogQHR5cGUge2ltcG9ydCgnLicpfSAqL1xudmFyICRkZWZpbmVQcm9wZXJ0eSA9IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSB8fCBmYWxzZTtcbmlmICgkZGVmaW5lUHJvcGVydHkpIHtcblx0dHJ5IHtcblx0XHQkZGVmaW5lUHJvcGVydHkoe30sICdhJywgeyB2YWx1ZTogMSB9KTtcblx0fSBjYXRjaCAoZSkge1xuXHRcdC8vIElFIDggaGFzIGEgYnJva2VuIGRlZmluZVByb3BlcnR5XG5cdFx0JGRlZmluZVByb3BlcnR5ID0gZmFsc2U7XG5cdH1cbn1cblxubW9kdWxlLmV4cG9ydHMgPSAkZGVmaW5lUHJvcGVydHk7XG4iLCAiJ3VzZSBzdHJpY3QnO1xuXG4vKiogQHR5cGUge2ltcG9ydCgnLi9zaGFtcycpfSAqL1xuLyogZXNsaW50IGNvbXBsZXhpdHk6IFsyLCAxOF0sIG1heC1zdGF0ZW1lbnRzOiBbMiwgMzNdICovXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIGhhc1N5bWJvbHMoKSB7XG5cdGlmICh0eXBlb2YgU3ltYm9sICE9PSAnZnVuY3Rpb24nIHx8IHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzICE9PSAnZnVuY3Rpb24nKSB7IHJldHVybiBmYWxzZTsgfVxuXHRpZiAodHlwZW9mIFN5bWJvbC5pdGVyYXRvciA9PT0gJ3N5bWJvbCcpIHsgcmV0dXJuIHRydWU7IH1cblxuXHQvKiogQHR5cGUge3sgW2sgaW4gc3ltYm9sXT86IHVua25vd24gfX0gKi9cblx0dmFyIG9iaiA9IHt9O1xuXHR2YXIgc3ltID0gU3ltYm9sKCd0ZXN0Jyk7XG5cdHZhciBzeW1PYmogPSBPYmplY3Qoc3ltKTtcblx0aWYgKHR5cGVvZiBzeW0gPT09ICdzdHJpbmcnKSB7IHJldHVybiBmYWxzZTsgfVxuXG5cdGlmIChPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoc3ltKSAhPT0gJ1tvYmplY3QgU3ltYm9sXScpIHsgcmV0dXJuIGZhbHNlOyB9XG5cdGlmIChPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoc3ltT2JqKSAhPT0gJ1tvYmplY3QgU3ltYm9sXScpIHsgcmV0dXJuIGZhbHNlOyB9XG5cblx0Ly8gdGVtcCBkaXNhYmxlZCBwZXIgaHR0cHM6Ly9naXRodWIuY29tL2xqaGFyYi9vYmplY3QuYXNzaWduL2lzc3Vlcy8xN1xuXHQvLyBpZiAoc3ltIGluc3RhbmNlb2YgU3ltYm9sKSB7IHJldHVybiBmYWxzZTsgfVxuXHQvLyB0ZW1wIGRpc2FibGVkIHBlciBodHRwczovL2dpdGh1Yi5jb20vV2ViUmVmbGVjdGlvbi9nZXQtb3duLXByb3BlcnR5LXN5bWJvbHMvaXNzdWVzLzRcblx0Ly8gaWYgKCEoc3ltT2JqIGluc3RhbmNlb2YgU3ltYm9sKSkgeyByZXR1cm4gZmFsc2U7IH1cblxuXHQvLyBpZiAodHlwZW9mIFN5bWJvbC5wcm90b3R5cGUudG9TdHJpbmcgIT09ICdmdW5jdGlvbicpIHsgcmV0dXJuIGZhbHNlOyB9XG5cdC8vIGlmIChTdHJpbmcoc3ltKSAhPT0gU3ltYm9sLnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHN5bSkpIHsgcmV0dXJuIGZhbHNlOyB9XG5cblx0dmFyIHN5bVZhbCA9IDQyO1xuXHRvYmpbc3ltXSA9IHN5bVZhbDtcblx0Zm9yICh2YXIgXyBpbiBvYmopIHsgcmV0dXJuIGZhbHNlOyB9IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbm8tcmVzdHJpY3RlZC1zeW50YXgsIG5vLXVucmVhY2hhYmxlLWxvb3Bcblx0aWYgKHR5cGVvZiBPYmplY3Qua2V5cyA9PT0gJ2Z1bmN0aW9uJyAmJiBPYmplY3Qua2V5cyhvYmopLmxlbmd0aCAhPT0gMCkgeyByZXR1cm4gZmFsc2U7IH1cblxuXHRpZiAodHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzID09PSAnZnVuY3Rpb24nICYmIE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKG9iaikubGVuZ3RoICE9PSAwKSB7IHJldHVybiBmYWxzZTsgfVxuXG5cdHZhciBzeW1zID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhvYmopO1xuXHRpZiAoc3ltcy5sZW5ndGggIT09IDEgfHwgc3ltc1swXSAhPT0gc3ltKSB7IHJldHVybiBmYWxzZTsgfVxuXG5cdGlmICghT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKG9iaiwgc3ltKSkgeyByZXR1cm4gZmFsc2U7IH1cblxuXHRpZiAodHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IgPT09ICdmdW5jdGlvbicpIHtcblx0XHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tZXh0cmEtcGFyZW5zXG5cdFx0dmFyIGRlc2NyaXB0b3IgPSAvKiogQHR5cGUge1Byb3BlcnR5RGVzY3JpcHRvcn0gKi8gKE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iob2JqLCBzeW0pKTtcblx0XHRpZiAoZGVzY3JpcHRvci52YWx1ZSAhPT0gc3ltVmFsIHx8IGRlc2NyaXB0b3IuZW51bWVyYWJsZSAhPT0gdHJ1ZSkgeyByZXR1cm4gZmFsc2U7IH1cblx0fVxuXG5cdHJldHVybiB0cnVlO1xufTtcbiIsICIndXNlIHN0cmljdCc7XG5cbnZhciBvcmlnU3ltYm9sID0gdHlwZW9mIFN5bWJvbCAhPT0gJ3VuZGVmaW5lZCcgJiYgU3ltYm9sO1xudmFyIGhhc1N5bWJvbFNoYW0gPSByZXF1aXJlKCcuL3NoYW1zJyk7XG5cbi8qKiBAdHlwZSB7aW1wb3J0KCcuJyl9ICovXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIGhhc05hdGl2ZVN5bWJvbHMoKSB7XG5cdGlmICh0eXBlb2Ygb3JpZ1N5bWJvbCAhPT0gJ2Z1bmN0aW9uJykgeyByZXR1cm4gZmFsc2U7IH1cblx0aWYgKHR5cGVvZiBTeW1ib2wgIT09ICdmdW5jdGlvbicpIHsgcmV0dXJuIGZhbHNlOyB9XG5cdGlmICh0eXBlb2Ygb3JpZ1N5bWJvbCgnZm9vJykgIT09ICdzeW1ib2wnKSB7IHJldHVybiBmYWxzZTsgfVxuXHRpZiAodHlwZW9mIFN5bWJvbCgnYmFyJykgIT09ICdzeW1ib2wnKSB7IHJldHVybiBmYWxzZTsgfVxuXG5cdHJldHVybiBoYXNTeW1ib2xTaGFtKCk7XG59O1xuIiwgIid1c2Ugc3RyaWN0JztcblxuLyoqIEB0eXBlIHtpbXBvcnQoJy4vUmVmbGVjdC5nZXRQcm90b3R5cGVPZicpfSAqL1xubW9kdWxlLmV4cG9ydHMgPSAodHlwZW9mIFJlZmxlY3QgIT09ICd1bmRlZmluZWQnICYmIFJlZmxlY3QuZ2V0UHJvdG90eXBlT2YpIHx8IG51bGw7XG4iLCAiJ3VzZSBzdHJpY3QnO1xuXG52YXIgJE9iamVjdCA9IHJlcXVpcmUoJ2VzLW9iamVjdC1hdG9tcycpO1xuXG4vKiogQHR5cGUge2ltcG9ydCgnLi9PYmplY3QuZ2V0UHJvdG90eXBlT2YnKX0gKi9cbm1vZHVsZS5leHBvcnRzID0gJE9iamVjdC5nZXRQcm90b3R5cGVPZiB8fCBudWxsO1xuIiwgIid1c2Ugc3RyaWN0JztcblxuLyogZXNsaW50IG5vLWludmFsaWQtdGhpczogMSAqL1xuXG52YXIgRVJST1JfTUVTU0FHRSA9ICdGdW5jdGlvbi5wcm90b3R5cGUuYmluZCBjYWxsZWQgb24gaW5jb21wYXRpYmxlICc7XG52YXIgdG9TdHIgPSBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nO1xudmFyIG1heCA9IE1hdGgubWF4O1xudmFyIGZ1bmNUeXBlID0gJ1tvYmplY3QgRnVuY3Rpb25dJztcblxudmFyIGNvbmNhdHR5ID0gZnVuY3Rpb24gY29uY2F0dHkoYSwgYikge1xuICAgIHZhciBhcnIgPSBbXTtcblxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYS5sZW5ndGg7IGkgKz0gMSkge1xuICAgICAgICBhcnJbaV0gPSBhW2ldO1xuICAgIH1cbiAgICBmb3IgKHZhciBqID0gMDsgaiA8IGIubGVuZ3RoOyBqICs9IDEpIHtcbiAgICAgICAgYXJyW2ogKyBhLmxlbmd0aF0gPSBiW2pdO1xuICAgIH1cblxuICAgIHJldHVybiBhcnI7XG59O1xuXG52YXIgc2xpY3kgPSBmdW5jdGlvbiBzbGljeShhcnJMaWtlLCBvZmZzZXQpIHtcbiAgICB2YXIgYXJyID0gW107XG4gICAgZm9yICh2YXIgaSA9IG9mZnNldCB8fCAwLCBqID0gMDsgaSA8IGFyckxpa2UubGVuZ3RoOyBpICs9IDEsIGogKz0gMSkge1xuICAgICAgICBhcnJbal0gPSBhcnJMaWtlW2ldO1xuICAgIH1cbiAgICByZXR1cm4gYXJyO1xufTtcblxudmFyIGpvaW55ID0gZnVuY3Rpb24gKGFyciwgam9pbmVyKSB7XG4gICAgdmFyIHN0ciA9ICcnO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYXJyLmxlbmd0aDsgaSArPSAxKSB7XG4gICAgICAgIHN0ciArPSBhcnJbaV07XG4gICAgICAgIGlmIChpICsgMSA8IGFyci5sZW5ndGgpIHtcbiAgICAgICAgICAgIHN0ciArPSBqb2luZXI7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHN0cjtcbn07XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gYmluZCh0aGF0KSB7XG4gICAgdmFyIHRhcmdldCA9IHRoaXM7XG4gICAgaWYgKHR5cGVvZiB0YXJnZXQgIT09ICdmdW5jdGlvbicgfHwgdG9TdHIuYXBwbHkodGFyZ2V0KSAhPT0gZnVuY1R5cGUpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihFUlJPUl9NRVNTQUdFICsgdGFyZ2V0KTtcbiAgICB9XG4gICAgdmFyIGFyZ3MgPSBzbGljeShhcmd1bWVudHMsIDEpO1xuXG4gICAgdmFyIGJvdW5kO1xuICAgIHZhciBiaW5kZXIgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGlmICh0aGlzIGluc3RhbmNlb2YgYm91bmQpIHtcbiAgICAgICAgICAgIHZhciByZXN1bHQgPSB0YXJnZXQuYXBwbHkoXG4gICAgICAgICAgICAgICAgdGhpcyxcbiAgICAgICAgICAgICAgICBjb25jYXR0eShhcmdzLCBhcmd1bWVudHMpXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgaWYgKE9iamVjdChyZXN1bHQpID09PSByZXN1bHQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRhcmdldC5hcHBseShcbiAgICAgICAgICAgIHRoYXQsXG4gICAgICAgICAgICBjb25jYXR0eShhcmdzLCBhcmd1bWVudHMpXG4gICAgICAgICk7XG5cbiAgICB9O1xuXG4gICAgdmFyIGJvdW5kTGVuZ3RoID0gbWF4KDAsIHRhcmdldC5sZW5ndGggLSBhcmdzLmxlbmd0aCk7XG4gICAgdmFyIGJvdW5kQXJncyA9IFtdO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYm91bmRMZW5ndGg7IGkrKykge1xuICAgICAgICBib3VuZEFyZ3NbaV0gPSAnJCcgKyBpO1xuICAgIH1cblxuICAgIGJvdW5kID0gRnVuY3Rpb24oJ2JpbmRlcicsICdyZXR1cm4gZnVuY3Rpb24gKCcgKyBqb2lueShib3VuZEFyZ3MsICcsJykgKyAnKXsgcmV0dXJuIGJpbmRlci5hcHBseSh0aGlzLGFyZ3VtZW50cyk7IH0nKShiaW5kZXIpO1xuXG4gICAgaWYgKHRhcmdldC5wcm90b3R5cGUpIHtcbiAgICAgICAgdmFyIEVtcHR5ID0gZnVuY3Rpb24gRW1wdHkoKSB7fTtcbiAgICAgICAgRW1wdHkucHJvdG90eXBlID0gdGFyZ2V0LnByb3RvdHlwZTtcbiAgICAgICAgYm91bmQucHJvdG90eXBlID0gbmV3IEVtcHR5KCk7XG4gICAgICAgIEVtcHR5LnByb3RvdHlwZSA9IG51bGw7XG4gICAgfVxuXG4gICAgcmV0dXJuIGJvdW5kO1xufTtcbiIsICIndXNlIHN0cmljdCc7XG5cbnZhciBpbXBsZW1lbnRhdGlvbiA9IHJlcXVpcmUoJy4vaW1wbGVtZW50YXRpb24nKTtcblxubW9kdWxlLmV4cG9ydHMgPSBGdW5jdGlvbi5wcm90b3R5cGUuYmluZCB8fCBpbXBsZW1lbnRhdGlvbjtcbiIsICIndXNlIHN0cmljdCc7XG5cbi8qKiBAdHlwZSB7aW1wb3J0KCcuL2Z1bmN0aW9uQ2FsbCcpfSAqL1xubW9kdWxlLmV4cG9ydHMgPSBGdW5jdGlvbi5wcm90b3R5cGUuY2FsbDtcbiIsICIndXNlIHN0cmljdCc7XG5cbi8qKiBAdHlwZSB7aW1wb3J0KCcuL2Z1bmN0aW9uQXBwbHknKX0gKi9cbm1vZHVsZS5leHBvcnRzID0gRnVuY3Rpb24ucHJvdG90eXBlLmFwcGx5O1xuIiwgIid1c2Ugc3RyaWN0JztcblxuLyoqIEB0eXBlIHtpbXBvcnQoJy4vcmVmbGVjdEFwcGx5Jyl9ICovXG5tb2R1bGUuZXhwb3J0cyA9IHR5cGVvZiBSZWZsZWN0ICE9PSAndW5kZWZpbmVkJyAmJiBSZWZsZWN0ICYmIFJlZmxlY3QuYXBwbHk7XG4iLCAiJ3VzZSBzdHJpY3QnO1xuXG52YXIgYmluZCA9IHJlcXVpcmUoJ2Z1bmN0aW9uLWJpbmQnKTtcblxudmFyICRhcHBseSA9IHJlcXVpcmUoJy4vZnVuY3Rpb25BcHBseScpO1xudmFyICRjYWxsID0gcmVxdWlyZSgnLi9mdW5jdGlvbkNhbGwnKTtcbnZhciAkcmVmbGVjdEFwcGx5ID0gcmVxdWlyZSgnLi9yZWZsZWN0QXBwbHknKTtcblxuLyoqIEB0eXBlIHtpbXBvcnQoJy4vYWN0dWFsQXBwbHknKX0gKi9cbm1vZHVsZS5leHBvcnRzID0gJHJlZmxlY3RBcHBseSB8fCBiaW5kLmNhbGwoJGNhbGwsICRhcHBseSk7XG4iLCAiJ3VzZSBzdHJpY3QnO1xuXG52YXIgYmluZCA9IHJlcXVpcmUoJ2Z1bmN0aW9uLWJpbmQnKTtcbnZhciAkVHlwZUVycm9yID0gcmVxdWlyZSgnZXMtZXJyb3JzL3R5cGUnKTtcblxudmFyICRjYWxsID0gcmVxdWlyZSgnLi9mdW5jdGlvbkNhbGwnKTtcbnZhciAkYWN0dWFsQXBwbHkgPSByZXF1aXJlKCcuL2FjdHVhbEFwcGx5Jyk7XG5cbi8qKiBAdHlwZSB7KGFyZ3M6IFtGdW5jdGlvbiwgdGhpc0FyZz86IHVua25vd24sIC4uLmFyZ3M6IHVua25vd25bXV0pID0+IEZ1bmN0aW9ufSBUT0RPIEZJWE1FLCBmaW5kIGEgd2F5IHRvIHVzZSBpbXBvcnQoJy4nKSAqL1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBjYWxsQmluZEJhc2ljKGFyZ3MpIHtcblx0aWYgKGFyZ3MubGVuZ3RoIDwgMSB8fCB0eXBlb2YgYXJnc1swXSAhPT0gJ2Z1bmN0aW9uJykge1xuXHRcdHRocm93IG5ldyAkVHlwZUVycm9yKCdhIGZ1bmN0aW9uIGlzIHJlcXVpcmVkJyk7XG5cdH1cblx0cmV0dXJuICRhY3R1YWxBcHBseShiaW5kLCAkY2FsbCwgYXJncyk7XG59O1xuIiwgIid1c2Ugc3RyaWN0JztcblxudmFyIGNhbGxCaW5kID0gcmVxdWlyZSgnY2FsbC1iaW5kLWFwcGx5LWhlbHBlcnMnKTtcbnZhciBnT1BEID0gcmVxdWlyZSgnZ29wZCcpO1xuXG52YXIgaGFzUHJvdG9BY2Nlc3NvcjtcbnRyeSB7XG5cdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1leHRyYS1wYXJlbnMsIG5vLXByb3RvXG5cdGhhc1Byb3RvQWNjZXNzb3IgPSAvKiogQHR5cGUge3sgX19wcm90b19fPzogdHlwZW9mIEFycmF5LnByb3RvdHlwZSB9fSAqLyAoW10pLl9fcHJvdG9fXyA9PT0gQXJyYXkucHJvdG90eXBlO1xufSBjYXRjaCAoZSkge1xuXHRpZiAoIWUgfHwgdHlwZW9mIGUgIT09ICdvYmplY3QnIHx8ICEoJ2NvZGUnIGluIGUpIHx8IGUuY29kZSAhPT0gJ0VSUl9QUk9UT19BQ0NFU1MnKSB7XG5cdFx0dGhyb3cgZTtcblx0fVxufVxuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tZXh0cmEtcGFyZW5zXG52YXIgZGVzYyA9ICEhaGFzUHJvdG9BY2Nlc3NvciAmJiBnT1BEICYmIGdPUEQoT2JqZWN0LnByb3RvdHlwZSwgLyoqIEB0eXBlIHtrZXlvZiB0eXBlb2YgT2JqZWN0LnByb3RvdHlwZX0gKi8gKCdfX3Byb3RvX18nKSk7XG5cbnZhciAkT2JqZWN0ID0gT2JqZWN0O1xudmFyICRnZXRQcm90b3R5cGVPZiA9ICRPYmplY3QuZ2V0UHJvdG90eXBlT2Y7XG5cbi8qKiBAdHlwZSB7aW1wb3J0KCcuL2dldCcpfSAqL1xubW9kdWxlLmV4cG9ydHMgPSBkZXNjICYmIHR5cGVvZiBkZXNjLmdldCA9PT0gJ2Z1bmN0aW9uJ1xuXHQ/IGNhbGxCaW5kKFtkZXNjLmdldF0pXG5cdDogdHlwZW9mICRnZXRQcm90b3R5cGVPZiA9PT0gJ2Z1bmN0aW9uJ1xuXHRcdD8gLyoqIEB0eXBlIHtpbXBvcnQoJy4vZ2V0Jyl9ICovIGZ1bmN0aW9uIGdldER1bmRlcih2YWx1ZSkge1xuXHRcdFx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGVxZXFlcVxuXHRcdFx0cmV0dXJuICRnZXRQcm90b3R5cGVPZih2YWx1ZSA9PSBudWxsID8gdmFsdWUgOiAkT2JqZWN0KHZhbHVlKSk7XG5cdFx0fVxuXHRcdDogZmFsc2U7XG4iLCAiJ3VzZSBzdHJpY3QnO1xuXG52YXIgcmVmbGVjdEdldFByb3RvID0gcmVxdWlyZSgnLi9SZWZsZWN0LmdldFByb3RvdHlwZU9mJyk7XG52YXIgb3JpZ2luYWxHZXRQcm90byA9IHJlcXVpcmUoJy4vT2JqZWN0LmdldFByb3RvdHlwZU9mJyk7XG5cbnZhciBnZXREdW5kZXJQcm90byA9IHJlcXVpcmUoJ2R1bmRlci1wcm90by9nZXQnKTtcblxuLyoqIEB0eXBlIHtpbXBvcnQoJy4nKX0gKi9cbm1vZHVsZS5leHBvcnRzID0gcmVmbGVjdEdldFByb3RvXG5cdD8gZnVuY3Rpb24gZ2V0UHJvdG8oTykge1xuXHRcdC8vIEB0cy1leHBlY3QtZXJyb3IgVFMgY2FuJ3QgbmFycm93IGluc2lkZSBhIGNsb3N1cmUsIGZvciBzb21lIHJlYXNvblxuXHRcdHJldHVybiByZWZsZWN0R2V0UHJvdG8oTyk7XG5cdH1cblx0OiBvcmlnaW5hbEdldFByb3RvXG5cdFx0PyBmdW5jdGlvbiBnZXRQcm90byhPKSB7XG5cdFx0XHRpZiAoIU8gfHwgKHR5cGVvZiBPICE9PSAnb2JqZWN0JyAmJiB0eXBlb2YgTyAhPT0gJ2Z1bmN0aW9uJykpIHtcblx0XHRcdFx0dGhyb3cgbmV3IFR5cGVFcnJvcignZ2V0UHJvdG86IG5vdCBhbiBvYmplY3QnKTtcblx0XHRcdH1cblx0XHRcdC8vIEB0cy1leHBlY3QtZXJyb3IgVFMgY2FuJ3QgbmFycm93IGluc2lkZSBhIGNsb3N1cmUsIGZvciBzb21lIHJlYXNvblxuXHRcdFx0cmV0dXJuIG9yaWdpbmFsR2V0UHJvdG8oTyk7XG5cdFx0fVxuXHRcdDogZ2V0RHVuZGVyUHJvdG9cblx0XHRcdD8gZnVuY3Rpb24gZ2V0UHJvdG8oTykge1xuXHRcdFx0XHQvLyBAdHMtZXhwZWN0LWVycm9yIFRTIGNhbid0IG5hcnJvdyBpbnNpZGUgYSBjbG9zdXJlLCBmb3Igc29tZSByZWFzb25cblx0XHRcdFx0cmV0dXJuIGdldER1bmRlclByb3RvKE8pO1xuXHRcdFx0fVxuXHRcdFx0OiBudWxsO1xuIiwgIid1c2Ugc3RyaWN0JztcblxudmFyIGNhbGwgPSBGdW5jdGlvbi5wcm90b3R5cGUuY2FsbDtcbnZhciAkaGFzT3duID0gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTtcbnZhciBiaW5kID0gcmVxdWlyZSgnZnVuY3Rpb24tYmluZCcpO1xuXG4vKiogQHR5cGUge2ltcG9ydCgnLicpfSAqL1xubW9kdWxlLmV4cG9ydHMgPSBiaW5kLmNhbGwoY2FsbCwgJGhhc093bik7XG4iLCAiJ3VzZSBzdHJpY3QnO1xuXG52YXIgdW5kZWZpbmVkO1xuXG52YXIgJE9iamVjdCA9IHJlcXVpcmUoJ2VzLW9iamVjdC1hdG9tcycpO1xuXG52YXIgJEVycm9yID0gcmVxdWlyZSgnZXMtZXJyb3JzJyk7XG52YXIgJEV2YWxFcnJvciA9IHJlcXVpcmUoJ2VzLWVycm9ycy9ldmFsJyk7XG52YXIgJFJhbmdlRXJyb3IgPSByZXF1aXJlKCdlcy1lcnJvcnMvcmFuZ2UnKTtcbnZhciAkUmVmZXJlbmNlRXJyb3IgPSByZXF1aXJlKCdlcy1lcnJvcnMvcmVmJyk7XG52YXIgJFN5bnRheEVycm9yID0gcmVxdWlyZSgnZXMtZXJyb3JzL3N5bnRheCcpO1xudmFyICRUeXBlRXJyb3IgPSByZXF1aXJlKCdlcy1lcnJvcnMvdHlwZScpO1xudmFyICRVUklFcnJvciA9IHJlcXVpcmUoJ2VzLWVycm9ycy91cmknKTtcblxudmFyIGFicyA9IHJlcXVpcmUoJ21hdGgtaW50cmluc2ljcy9hYnMnKTtcbnZhciBmbG9vciA9IHJlcXVpcmUoJ21hdGgtaW50cmluc2ljcy9mbG9vcicpO1xudmFyIG1heCA9IHJlcXVpcmUoJ21hdGgtaW50cmluc2ljcy9tYXgnKTtcbnZhciBtaW4gPSByZXF1aXJlKCdtYXRoLWludHJpbnNpY3MvbWluJyk7XG52YXIgcG93ID0gcmVxdWlyZSgnbWF0aC1pbnRyaW5zaWNzL3BvdycpO1xudmFyIHJvdW5kID0gcmVxdWlyZSgnbWF0aC1pbnRyaW5zaWNzL3JvdW5kJyk7XG52YXIgc2lnbiA9IHJlcXVpcmUoJ21hdGgtaW50cmluc2ljcy9zaWduJyk7XG5cbnZhciAkRnVuY3Rpb24gPSBGdW5jdGlvbjtcblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGNvbnNpc3RlbnQtcmV0dXJuXG52YXIgZ2V0RXZhbGxlZENvbnN0cnVjdG9yID0gZnVuY3Rpb24gKGV4cHJlc3Npb25TeW50YXgpIHtcblx0dHJ5IHtcblx0XHRyZXR1cm4gJEZ1bmN0aW9uKCdcInVzZSBzdHJpY3RcIjsgcmV0dXJuICgnICsgZXhwcmVzc2lvblN5bnRheCArICcpLmNvbnN0cnVjdG9yOycpKCk7XG5cdH0gY2F0Y2ggKGUpIHt9XG59O1xuXG52YXIgJGdPUEQgPSByZXF1aXJlKCdnb3BkJyk7XG52YXIgJGRlZmluZVByb3BlcnR5ID0gcmVxdWlyZSgnZXMtZGVmaW5lLXByb3BlcnR5Jyk7XG5cbnZhciB0aHJvd1R5cGVFcnJvciA9IGZ1bmN0aW9uICgpIHtcblx0dGhyb3cgbmV3ICRUeXBlRXJyb3IoKTtcbn07XG52YXIgVGhyb3dUeXBlRXJyb3IgPSAkZ09QRFxuXHQ/IChmdW5jdGlvbiAoKSB7XG5cdFx0dHJ5IHtcblx0XHRcdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtZXhwcmVzc2lvbnMsIG5vLWNhbGxlciwgbm8tcmVzdHJpY3RlZC1wcm9wZXJ0aWVzXG5cdFx0XHRhcmd1bWVudHMuY2FsbGVlOyAvLyBJRSA4IGRvZXMgbm90IHRocm93IGhlcmVcblx0XHRcdHJldHVybiB0aHJvd1R5cGVFcnJvcjtcblx0XHR9IGNhdGNoIChjYWxsZWVUaHJvd3MpIHtcblx0XHRcdHRyeSB7XG5cdFx0XHRcdC8vIElFIDggdGhyb3dzIG9uIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYXJndW1lbnRzLCAnJylcblx0XHRcdFx0cmV0dXJuICRnT1BEKGFyZ3VtZW50cywgJ2NhbGxlZScpLmdldDtcblx0XHRcdH0gY2F0Y2ggKGdPUER0aHJvd3MpIHtcblx0XHRcdFx0cmV0dXJuIHRocm93VHlwZUVycm9yO1xuXHRcdFx0fVxuXHRcdH1cblx0fSgpKVxuXHQ6IHRocm93VHlwZUVycm9yO1xuXG52YXIgaGFzU3ltYm9scyA9IHJlcXVpcmUoJ2hhcy1zeW1ib2xzJykoKTtcblxudmFyIGdldFByb3RvID0gcmVxdWlyZSgnZ2V0LXByb3RvJyk7XG52YXIgJE9iamVjdEdQTyA9IHJlcXVpcmUoJ2dldC1wcm90by9PYmplY3QuZ2V0UHJvdG90eXBlT2YnKTtcbnZhciAkUmVmbGVjdEdQTyA9IHJlcXVpcmUoJ2dldC1wcm90by9SZWZsZWN0LmdldFByb3RvdHlwZU9mJyk7XG5cbnZhciAkYXBwbHkgPSByZXF1aXJlKCdjYWxsLWJpbmQtYXBwbHktaGVscGVycy9mdW5jdGlvbkFwcGx5Jyk7XG52YXIgJGNhbGwgPSByZXF1aXJlKCdjYWxsLWJpbmQtYXBwbHktaGVscGVycy9mdW5jdGlvbkNhbGwnKTtcblxudmFyIG5lZWRzRXZhbCA9IHt9O1xuXG52YXIgVHlwZWRBcnJheSA9IHR5cGVvZiBVaW50OEFycmF5ID09PSAndW5kZWZpbmVkJyB8fCAhZ2V0UHJvdG8gPyB1bmRlZmluZWQgOiBnZXRQcm90byhVaW50OEFycmF5KTtcblxudmFyIElOVFJJTlNJQ1MgPSB7XG5cdF9fcHJvdG9fXzogbnVsbCxcblx0JyVBZ2dyZWdhdGVFcnJvciUnOiB0eXBlb2YgQWdncmVnYXRlRXJyb3IgPT09ICd1bmRlZmluZWQnID8gdW5kZWZpbmVkIDogQWdncmVnYXRlRXJyb3IsXG5cdCclQXJyYXklJzogQXJyYXksXG5cdCclQXJyYXlCdWZmZXIlJzogdHlwZW9mIEFycmF5QnVmZmVyID09PSAndW5kZWZpbmVkJyA/IHVuZGVmaW5lZCA6IEFycmF5QnVmZmVyLFxuXHQnJUFycmF5SXRlcmF0b3JQcm90b3R5cGUlJzogaGFzU3ltYm9scyAmJiBnZXRQcm90byA/IGdldFByb3RvKFtdW1N5bWJvbC5pdGVyYXRvcl0oKSkgOiB1bmRlZmluZWQsXG5cdCclQXN5bmNGcm9tU3luY0l0ZXJhdG9yUHJvdG90eXBlJSc6IHVuZGVmaW5lZCxcblx0JyVBc3luY0Z1bmN0aW9uJSc6IG5lZWRzRXZhbCxcblx0JyVBc3luY0dlbmVyYXRvciUnOiBuZWVkc0V2YWwsXG5cdCclQXN5bmNHZW5lcmF0b3JGdW5jdGlvbiUnOiBuZWVkc0V2YWwsXG5cdCclQXN5bmNJdGVyYXRvclByb3RvdHlwZSUnOiBuZWVkc0V2YWwsXG5cdCclQXRvbWljcyUnOiB0eXBlb2YgQXRvbWljcyA9PT0gJ3VuZGVmaW5lZCcgPyB1bmRlZmluZWQgOiBBdG9taWNzLFxuXHQnJUJpZ0ludCUnOiB0eXBlb2YgQmlnSW50ID09PSAndW5kZWZpbmVkJyA/IHVuZGVmaW5lZCA6IEJpZ0ludCxcblx0JyVCaWdJbnQ2NEFycmF5JSc6IHR5cGVvZiBCaWdJbnQ2NEFycmF5ID09PSAndW5kZWZpbmVkJyA/IHVuZGVmaW5lZCA6IEJpZ0ludDY0QXJyYXksXG5cdCclQmlnVWludDY0QXJyYXklJzogdHlwZW9mIEJpZ1VpbnQ2NEFycmF5ID09PSAndW5kZWZpbmVkJyA/IHVuZGVmaW5lZCA6IEJpZ1VpbnQ2NEFycmF5LFxuXHQnJUJvb2xlYW4lJzogQm9vbGVhbixcblx0JyVEYXRhVmlldyUnOiB0eXBlb2YgRGF0YVZpZXcgPT09ICd1bmRlZmluZWQnID8gdW5kZWZpbmVkIDogRGF0YVZpZXcsXG5cdCclRGF0ZSUnOiBEYXRlLFxuXHQnJWRlY29kZVVSSSUnOiBkZWNvZGVVUkksXG5cdCclZGVjb2RlVVJJQ29tcG9uZW50JSc6IGRlY29kZVVSSUNvbXBvbmVudCxcblx0JyVlbmNvZGVVUkklJzogZW5jb2RlVVJJLFxuXHQnJWVuY29kZVVSSUNvbXBvbmVudCUnOiBlbmNvZGVVUklDb21wb25lbnQsXG5cdCclRXJyb3IlJzogJEVycm9yLFxuXHQnJWV2YWwlJzogZXZhbCwgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby1ldmFsXG5cdCclRXZhbEVycm9yJSc6ICRFdmFsRXJyb3IsXG5cdCclRmxvYXQxNkFycmF5JSc6IHR5cGVvZiBGbG9hdDE2QXJyYXkgPT09ICd1bmRlZmluZWQnID8gdW5kZWZpbmVkIDogRmxvYXQxNkFycmF5LFxuXHQnJUZsb2F0MzJBcnJheSUnOiB0eXBlb2YgRmxvYXQzMkFycmF5ID09PSAndW5kZWZpbmVkJyA/IHVuZGVmaW5lZCA6IEZsb2F0MzJBcnJheSxcblx0JyVGbG9hdDY0QXJyYXklJzogdHlwZW9mIEZsb2F0NjRBcnJheSA9PT0gJ3VuZGVmaW5lZCcgPyB1bmRlZmluZWQgOiBGbG9hdDY0QXJyYXksXG5cdCclRmluYWxpemF0aW9uUmVnaXN0cnklJzogdHlwZW9mIEZpbmFsaXphdGlvblJlZ2lzdHJ5ID09PSAndW5kZWZpbmVkJyA/IHVuZGVmaW5lZCA6IEZpbmFsaXphdGlvblJlZ2lzdHJ5LFxuXHQnJUZ1bmN0aW9uJSc6ICRGdW5jdGlvbixcblx0JyVHZW5lcmF0b3JGdW5jdGlvbiUnOiBuZWVkc0V2YWwsXG5cdCclSW50OEFycmF5JSc6IHR5cGVvZiBJbnQ4QXJyYXkgPT09ICd1bmRlZmluZWQnID8gdW5kZWZpbmVkIDogSW50OEFycmF5LFxuXHQnJUludDE2QXJyYXklJzogdHlwZW9mIEludDE2QXJyYXkgPT09ICd1bmRlZmluZWQnID8gdW5kZWZpbmVkIDogSW50MTZBcnJheSxcblx0JyVJbnQzMkFycmF5JSc6IHR5cGVvZiBJbnQzMkFycmF5ID09PSAndW5kZWZpbmVkJyA/IHVuZGVmaW5lZCA6IEludDMyQXJyYXksXG5cdCclaXNGaW5pdGUlJzogaXNGaW5pdGUsXG5cdCclaXNOYU4lJzogaXNOYU4sXG5cdCclSXRlcmF0b3JQcm90b3R5cGUlJzogaGFzU3ltYm9scyAmJiBnZXRQcm90byA/IGdldFByb3RvKGdldFByb3RvKFtdW1N5bWJvbC5pdGVyYXRvcl0oKSkpIDogdW5kZWZpbmVkLFxuXHQnJUpTT04lJzogdHlwZW9mIEpTT04gPT09ICdvYmplY3QnID8gSlNPTiA6IHVuZGVmaW5lZCxcblx0JyVNYXAlJzogdHlwZW9mIE1hcCA9PT0gJ3VuZGVmaW5lZCcgPyB1bmRlZmluZWQgOiBNYXAsXG5cdCclTWFwSXRlcmF0b3JQcm90b3R5cGUlJzogdHlwZW9mIE1hcCA9PT0gJ3VuZGVmaW5lZCcgfHwgIWhhc1N5bWJvbHMgfHwgIWdldFByb3RvID8gdW5kZWZpbmVkIDogZ2V0UHJvdG8obmV3IE1hcCgpW1N5bWJvbC5pdGVyYXRvcl0oKSksXG5cdCclTWF0aCUnOiBNYXRoLFxuXHQnJU51bWJlciUnOiBOdW1iZXIsXG5cdCclT2JqZWN0JSc6ICRPYmplY3QsXG5cdCclT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvciUnOiAkZ09QRCxcblx0JyVwYXJzZUZsb2F0JSc6IHBhcnNlRmxvYXQsXG5cdCclcGFyc2VJbnQlJzogcGFyc2VJbnQsXG5cdCclUHJvbWlzZSUnOiB0eXBlb2YgUHJvbWlzZSA9PT0gJ3VuZGVmaW5lZCcgPyB1bmRlZmluZWQgOiBQcm9taXNlLFxuXHQnJVByb3h5JSc6IHR5cGVvZiBQcm94eSA9PT0gJ3VuZGVmaW5lZCcgPyB1bmRlZmluZWQgOiBQcm94eSxcblx0JyVSYW5nZUVycm9yJSc6ICRSYW5nZUVycm9yLFxuXHQnJVJlZmVyZW5jZUVycm9yJSc6ICRSZWZlcmVuY2VFcnJvcixcblx0JyVSZWZsZWN0JSc6IHR5cGVvZiBSZWZsZWN0ID09PSAndW5kZWZpbmVkJyA/IHVuZGVmaW5lZCA6IFJlZmxlY3QsXG5cdCclUmVnRXhwJSc6IFJlZ0V4cCxcblx0JyVTZXQlJzogdHlwZW9mIFNldCA9PT0gJ3VuZGVmaW5lZCcgPyB1bmRlZmluZWQgOiBTZXQsXG5cdCclU2V0SXRlcmF0b3JQcm90b3R5cGUlJzogdHlwZW9mIFNldCA9PT0gJ3VuZGVmaW5lZCcgfHwgIWhhc1N5bWJvbHMgfHwgIWdldFByb3RvID8gdW5kZWZpbmVkIDogZ2V0UHJvdG8obmV3IFNldCgpW1N5bWJvbC5pdGVyYXRvcl0oKSksXG5cdCclU2hhcmVkQXJyYXlCdWZmZXIlJzogdHlwZW9mIFNoYXJlZEFycmF5QnVmZmVyID09PSAndW5kZWZpbmVkJyA/IHVuZGVmaW5lZCA6IFNoYXJlZEFycmF5QnVmZmVyLFxuXHQnJVN0cmluZyUnOiBTdHJpbmcsXG5cdCclU3RyaW5nSXRlcmF0b3JQcm90b3R5cGUlJzogaGFzU3ltYm9scyAmJiBnZXRQcm90byA/IGdldFByb3RvKCcnW1N5bWJvbC5pdGVyYXRvcl0oKSkgOiB1bmRlZmluZWQsXG5cdCclU3ltYm9sJSc6IGhhc1N5bWJvbHMgPyBTeW1ib2wgOiB1bmRlZmluZWQsXG5cdCclU3ludGF4RXJyb3IlJzogJFN5bnRheEVycm9yLFxuXHQnJVRocm93VHlwZUVycm9yJSc6IFRocm93VHlwZUVycm9yLFxuXHQnJVR5cGVkQXJyYXklJzogVHlwZWRBcnJheSxcblx0JyVUeXBlRXJyb3IlJzogJFR5cGVFcnJvcixcblx0JyVVaW50OEFycmF5JSc6IHR5cGVvZiBVaW50OEFycmF5ID09PSAndW5kZWZpbmVkJyA/IHVuZGVmaW5lZCA6IFVpbnQ4QXJyYXksXG5cdCclVWludDhDbGFtcGVkQXJyYXklJzogdHlwZW9mIFVpbnQ4Q2xhbXBlZEFycmF5ID09PSAndW5kZWZpbmVkJyA/IHVuZGVmaW5lZCA6IFVpbnQ4Q2xhbXBlZEFycmF5LFxuXHQnJVVpbnQxNkFycmF5JSc6IHR5cGVvZiBVaW50MTZBcnJheSA9PT0gJ3VuZGVmaW5lZCcgPyB1bmRlZmluZWQgOiBVaW50MTZBcnJheSxcblx0JyVVaW50MzJBcnJheSUnOiB0eXBlb2YgVWludDMyQXJyYXkgPT09ICd1bmRlZmluZWQnID8gdW5kZWZpbmVkIDogVWludDMyQXJyYXksXG5cdCclVVJJRXJyb3IlJzogJFVSSUVycm9yLFxuXHQnJVdlYWtNYXAlJzogdHlwZW9mIFdlYWtNYXAgPT09ICd1bmRlZmluZWQnID8gdW5kZWZpbmVkIDogV2Vha01hcCxcblx0JyVXZWFrUmVmJSc6IHR5cGVvZiBXZWFrUmVmID09PSAndW5kZWZpbmVkJyA/IHVuZGVmaW5lZCA6IFdlYWtSZWYsXG5cdCclV2Vha1NldCUnOiB0eXBlb2YgV2Vha1NldCA9PT0gJ3VuZGVmaW5lZCcgPyB1bmRlZmluZWQgOiBXZWFrU2V0LFxuXG5cdCclRnVuY3Rpb24ucHJvdG90eXBlLmNhbGwlJzogJGNhbGwsXG5cdCclRnVuY3Rpb24ucHJvdG90eXBlLmFwcGx5JSc6ICRhcHBseSxcblx0JyVPYmplY3QuZGVmaW5lUHJvcGVydHklJzogJGRlZmluZVByb3BlcnR5LFxuXHQnJU9iamVjdC5nZXRQcm90b3R5cGVPZiUnOiAkT2JqZWN0R1BPLFxuXHQnJU1hdGguYWJzJSc6IGFicyxcblx0JyVNYXRoLmZsb29yJSc6IGZsb29yLFxuXHQnJU1hdGgubWF4JSc6IG1heCxcblx0JyVNYXRoLm1pbiUnOiBtaW4sXG5cdCclTWF0aC5wb3clJzogcG93LFxuXHQnJU1hdGgucm91bmQlJzogcm91bmQsXG5cdCclTWF0aC5zaWduJSc6IHNpZ24sXG5cdCclUmVmbGVjdC5nZXRQcm90b3R5cGVPZiUnOiAkUmVmbGVjdEdQT1xufTtcblxuaWYgKGdldFByb3RvKSB7XG5cdHRyeSB7XG5cdFx0bnVsbC5lcnJvcjsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby11bnVzZWQtZXhwcmVzc2lvbnNcblx0fSBjYXRjaCAoZSkge1xuXHRcdC8vIGh0dHBzOi8vZ2l0aHViLmNvbS90YzM5L3Byb3Bvc2FsLXNoYWRvd3JlYWxtL3B1bGwvMzg0I2lzc3VlY29tbWVudC0xMzY0MjY0MjI5XG5cdFx0dmFyIGVycm9yUHJvdG8gPSBnZXRQcm90byhnZXRQcm90byhlKSk7XG5cdFx0SU5UUklOU0lDU1snJUVycm9yLnByb3RvdHlwZSUnXSA9IGVycm9yUHJvdG87XG5cdH1cbn1cblxudmFyIGRvRXZhbCA9IGZ1bmN0aW9uIGRvRXZhbChuYW1lKSB7XG5cdHZhciB2YWx1ZTtcblx0aWYgKG5hbWUgPT09ICclQXN5bmNGdW5jdGlvbiUnKSB7XG5cdFx0dmFsdWUgPSBnZXRFdmFsbGVkQ29uc3RydWN0b3IoJ2FzeW5jIGZ1bmN0aW9uICgpIHt9Jyk7XG5cdH0gZWxzZSBpZiAobmFtZSA9PT0gJyVHZW5lcmF0b3JGdW5jdGlvbiUnKSB7XG5cdFx0dmFsdWUgPSBnZXRFdmFsbGVkQ29uc3RydWN0b3IoJ2Z1bmN0aW9uKiAoKSB7fScpO1xuXHR9IGVsc2UgaWYgKG5hbWUgPT09ICclQXN5bmNHZW5lcmF0b3JGdW5jdGlvbiUnKSB7XG5cdFx0dmFsdWUgPSBnZXRFdmFsbGVkQ29uc3RydWN0b3IoJ2FzeW5jIGZ1bmN0aW9uKiAoKSB7fScpO1xuXHR9IGVsc2UgaWYgKG5hbWUgPT09ICclQXN5bmNHZW5lcmF0b3IlJykge1xuXHRcdHZhciBmbiA9IGRvRXZhbCgnJUFzeW5jR2VuZXJhdG9yRnVuY3Rpb24lJyk7XG5cdFx0aWYgKGZuKSB7XG5cdFx0XHR2YWx1ZSA9IGZuLnByb3RvdHlwZTtcblx0XHR9XG5cdH0gZWxzZSBpZiAobmFtZSA9PT0gJyVBc3luY0l0ZXJhdG9yUHJvdG90eXBlJScpIHtcblx0XHR2YXIgZ2VuID0gZG9FdmFsKCclQXN5bmNHZW5lcmF0b3IlJyk7XG5cdFx0aWYgKGdlbiAmJiBnZXRQcm90bykge1xuXHRcdFx0dmFsdWUgPSBnZXRQcm90byhnZW4ucHJvdG90eXBlKTtcblx0XHR9XG5cdH1cblxuXHRJTlRSSU5TSUNTW25hbWVdID0gdmFsdWU7XG5cblx0cmV0dXJuIHZhbHVlO1xufTtcblxudmFyIExFR0FDWV9BTElBU0VTID0ge1xuXHRfX3Byb3RvX186IG51bGwsXG5cdCclQXJyYXlCdWZmZXJQcm90b3R5cGUlJzogWydBcnJheUJ1ZmZlcicsICdwcm90b3R5cGUnXSxcblx0JyVBcnJheVByb3RvdHlwZSUnOiBbJ0FycmF5JywgJ3Byb3RvdHlwZSddLFxuXHQnJUFycmF5UHJvdG9fZW50cmllcyUnOiBbJ0FycmF5JywgJ3Byb3RvdHlwZScsICdlbnRyaWVzJ10sXG5cdCclQXJyYXlQcm90b19mb3JFYWNoJSc6IFsnQXJyYXknLCAncHJvdG90eXBlJywgJ2ZvckVhY2gnXSxcblx0JyVBcnJheVByb3RvX2tleXMlJzogWydBcnJheScsICdwcm90b3R5cGUnLCAna2V5cyddLFxuXHQnJUFycmF5UHJvdG9fdmFsdWVzJSc6IFsnQXJyYXknLCAncHJvdG90eXBlJywgJ3ZhbHVlcyddLFxuXHQnJUFzeW5jRnVuY3Rpb25Qcm90b3R5cGUlJzogWydBc3luY0Z1bmN0aW9uJywgJ3Byb3RvdHlwZSddLFxuXHQnJUFzeW5jR2VuZXJhdG9yJSc6IFsnQXN5bmNHZW5lcmF0b3JGdW5jdGlvbicsICdwcm90b3R5cGUnXSxcblx0JyVBc3luY0dlbmVyYXRvclByb3RvdHlwZSUnOiBbJ0FzeW5jR2VuZXJhdG9yRnVuY3Rpb24nLCAncHJvdG90eXBlJywgJ3Byb3RvdHlwZSddLFxuXHQnJUJvb2xlYW5Qcm90b3R5cGUlJzogWydCb29sZWFuJywgJ3Byb3RvdHlwZSddLFxuXHQnJURhdGFWaWV3UHJvdG90eXBlJSc6IFsnRGF0YVZpZXcnLCAncHJvdG90eXBlJ10sXG5cdCclRGF0ZVByb3RvdHlwZSUnOiBbJ0RhdGUnLCAncHJvdG90eXBlJ10sXG5cdCclRXJyb3JQcm90b3R5cGUlJzogWydFcnJvcicsICdwcm90b3R5cGUnXSxcblx0JyVFdmFsRXJyb3JQcm90b3R5cGUlJzogWydFdmFsRXJyb3InLCAncHJvdG90eXBlJ10sXG5cdCclRmxvYXQzMkFycmF5UHJvdG90eXBlJSc6IFsnRmxvYXQzMkFycmF5JywgJ3Byb3RvdHlwZSddLFxuXHQnJUZsb2F0NjRBcnJheVByb3RvdHlwZSUnOiBbJ0Zsb2F0NjRBcnJheScsICdwcm90b3R5cGUnXSxcblx0JyVGdW5jdGlvblByb3RvdHlwZSUnOiBbJ0Z1bmN0aW9uJywgJ3Byb3RvdHlwZSddLFxuXHQnJUdlbmVyYXRvciUnOiBbJ0dlbmVyYXRvckZ1bmN0aW9uJywgJ3Byb3RvdHlwZSddLFxuXHQnJUdlbmVyYXRvclByb3RvdHlwZSUnOiBbJ0dlbmVyYXRvckZ1bmN0aW9uJywgJ3Byb3RvdHlwZScsICdwcm90b3R5cGUnXSxcblx0JyVJbnQ4QXJyYXlQcm90b3R5cGUlJzogWydJbnQ4QXJyYXknLCAncHJvdG90eXBlJ10sXG5cdCclSW50MTZBcnJheVByb3RvdHlwZSUnOiBbJ0ludDE2QXJyYXknLCAncHJvdG90eXBlJ10sXG5cdCclSW50MzJBcnJheVByb3RvdHlwZSUnOiBbJ0ludDMyQXJyYXknLCAncHJvdG90eXBlJ10sXG5cdCclSlNPTlBhcnNlJSc6IFsnSlNPTicsICdwYXJzZSddLFxuXHQnJUpTT05TdHJpbmdpZnklJzogWydKU09OJywgJ3N0cmluZ2lmeSddLFxuXHQnJU1hcFByb3RvdHlwZSUnOiBbJ01hcCcsICdwcm90b3R5cGUnXSxcblx0JyVOdW1iZXJQcm90b3R5cGUlJzogWydOdW1iZXInLCAncHJvdG90eXBlJ10sXG5cdCclT2JqZWN0UHJvdG90eXBlJSc6IFsnT2JqZWN0JywgJ3Byb3RvdHlwZSddLFxuXHQnJU9ialByb3RvX3RvU3RyaW5nJSc6IFsnT2JqZWN0JywgJ3Byb3RvdHlwZScsICd0b1N0cmluZyddLFxuXHQnJU9ialByb3RvX3ZhbHVlT2YlJzogWydPYmplY3QnLCAncHJvdG90eXBlJywgJ3ZhbHVlT2YnXSxcblx0JyVQcm9taXNlUHJvdG90eXBlJSc6IFsnUHJvbWlzZScsICdwcm90b3R5cGUnXSxcblx0JyVQcm9taXNlUHJvdG9fdGhlbiUnOiBbJ1Byb21pc2UnLCAncHJvdG90eXBlJywgJ3RoZW4nXSxcblx0JyVQcm9taXNlX2FsbCUnOiBbJ1Byb21pc2UnLCAnYWxsJ10sXG5cdCclUHJvbWlzZV9yZWplY3QlJzogWydQcm9taXNlJywgJ3JlamVjdCddLFxuXHQnJVByb21pc2VfcmVzb2x2ZSUnOiBbJ1Byb21pc2UnLCAncmVzb2x2ZSddLFxuXHQnJVJhbmdlRXJyb3JQcm90b3R5cGUlJzogWydSYW5nZUVycm9yJywgJ3Byb3RvdHlwZSddLFxuXHQnJVJlZmVyZW5jZUVycm9yUHJvdG90eXBlJSc6IFsnUmVmZXJlbmNlRXJyb3InLCAncHJvdG90eXBlJ10sXG5cdCclUmVnRXhwUHJvdG90eXBlJSc6IFsnUmVnRXhwJywgJ3Byb3RvdHlwZSddLFxuXHQnJVNldFByb3RvdHlwZSUnOiBbJ1NldCcsICdwcm90b3R5cGUnXSxcblx0JyVTaGFyZWRBcnJheUJ1ZmZlclByb3RvdHlwZSUnOiBbJ1NoYXJlZEFycmF5QnVmZmVyJywgJ3Byb3RvdHlwZSddLFxuXHQnJVN0cmluZ1Byb3RvdHlwZSUnOiBbJ1N0cmluZycsICdwcm90b3R5cGUnXSxcblx0JyVTeW1ib2xQcm90b3R5cGUlJzogWydTeW1ib2wnLCAncHJvdG90eXBlJ10sXG5cdCclU3ludGF4RXJyb3JQcm90b3R5cGUlJzogWydTeW50YXhFcnJvcicsICdwcm90b3R5cGUnXSxcblx0JyVUeXBlZEFycmF5UHJvdG90eXBlJSc6IFsnVHlwZWRBcnJheScsICdwcm90b3R5cGUnXSxcblx0JyVUeXBlRXJyb3JQcm90b3R5cGUlJzogWydUeXBlRXJyb3InLCAncHJvdG90eXBlJ10sXG5cdCclVWludDhBcnJheVByb3RvdHlwZSUnOiBbJ1VpbnQ4QXJyYXknLCAncHJvdG90eXBlJ10sXG5cdCclVWludDhDbGFtcGVkQXJyYXlQcm90b3R5cGUlJzogWydVaW50OENsYW1wZWRBcnJheScsICdwcm90b3R5cGUnXSxcblx0JyVVaW50MTZBcnJheVByb3RvdHlwZSUnOiBbJ1VpbnQxNkFycmF5JywgJ3Byb3RvdHlwZSddLFxuXHQnJVVpbnQzMkFycmF5UHJvdG90eXBlJSc6IFsnVWludDMyQXJyYXknLCAncHJvdG90eXBlJ10sXG5cdCclVVJJRXJyb3JQcm90b3R5cGUlJzogWydVUklFcnJvcicsICdwcm90b3R5cGUnXSxcblx0JyVXZWFrTWFwUHJvdG90eXBlJSc6IFsnV2Vha01hcCcsICdwcm90b3R5cGUnXSxcblx0JyVXZWFrU2V0UHJvdG90eXBlJSc6IFsnV2Vha1NldCcsICdwcm90b3R5cGUnXVxufTtcblxudmFyIGJpbmQgPSByZXF1aXJlKCdmdW5jdGlvbi1iaW5kJyk7XG52YXIgaGFzT3duID0gcmVxdWlyZSgnaGFzb3duJyk7XG52YXIgJGNvbmNhdCA9IGJpbmQuY2FsbCgkY2FsbCwgQXJyYXkucHJvdG90eXBlLmNvbmNhdCk7XG52YXIgJHNwbGljZUFwcGx5ID0gYmluZC5jYWxsKCRhcHBseSwgQXJyYXkucHJvdG90eXBlLnNwbGljZSk7XG52YXIgJHJlcGxhY2UgPSBiaW5kLmNhbGwoJGNhbGwsIFN0cmluZy5wcm90b3R5cGUucmVwbGFjZSk7XG52YXIgJHN0clNsaWNlID0gYmluZC5jYWxsKCRjYWxsLCBTdHJpbmcucHJvdG90eXBlLnNsaWNlKTtcbnZhciAkZXhlYyA9IGJpbmQuY2FsbCgkY2FsbCwgUmVnRXhwLnByb3RvdHlwZS5leGVjKTtcblxuLyogYWRhcHRlZCBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS9sb2Rhc2gvbG9kYXNoL2Jsb2IvNC4xNy4xNS9kaXN0L2xvZGFzaC5qcyNMNjczNS1MNjc0NCAqL1xudmFyIHJlUHJvcE5hbWUgPSAvW14lLltcXF1dK3xcXFsoPzooLT9cXGQrKD86XFwuXFxkKyk/KXwoW1wiJ10pKCg/Oig/IVxcMilbXlxcXFxdfFxcXFwuKSo/KVxcMilcXF18KD89KD86XFwufFxcW1xcXSkoPzpcXC58XFxbXFxdfCUkKSkvZztcbnZhciByZUVzY2FwZUNoYXIgPSAvXFxcXChcXFxcKT8vZzsgLyoqIFVzZWQgdG8gbWF0Y2ggYmFja3NsYXNoZXMgaW4gcHJvcGVydHkgcGF0aHMuICovXG52YXIgc3RyaW5nVG9QYXRoID0gZnVuY3Rpb24gc3RyaW5nVG9QYXRoKHN0cmluZykge1xuXHR2YXIgZmlyc3QgPSAkc3RyU2xpY2Uoc3RyaW5nLCAwLCAxKTtcblx0dmFyIGxhc3QgPSAkc3RyU2xpY2Uoc3RyaW5nLCAtMSk7XG5cdGlmIChmaXJzdCA9PT0gJyUnICYmIGxhc3QgIT09ICclJykge1xuXHRcdHRocm93IG5ldyAkU3ludGF4RXJyb3IoJ2ludmFsaWQgaW50cmluc2ljIHN5bnRheCwgZXhwZWN0ZWQgY2xvc2luZyBgJWAnKTtcblx0fSBlbHNlIGlmIChsYXN0ID09PSAnJScgJiYgZmlyc3QgIT09ICclJykge1xuXHRcdHRocm93IG5ldyAkU3ludGF4RXJyb3IoJ2ludmFsaWQgaW50cmluc2ljIHN5bnRheCwgZXhwZWN0ZWQgb3BlbmluZyBgJWAnKTtcblx0fVxuXHR2YXIgcmVzdWx0ID0gW107XG5cdCRyZXBsYWNlKHN0cmluZywgcmVQcm9wTmFtZSwgZnVuY3Rpb24gKG1hdGNoLCBudW1iZXIsIHF1b3RlLCBzdWJTdHJpbmcpIHtcblx0XHRyZXN1bHRbcmVzdWx0Lmxlbmd0aF0gPSBxdW90ZSA/ICRyZXBsYWNlKHN1YlN0cmluZywgcmVFc2NhcGVDaGFyLCAnJDEnKSA6IG51bWJlciB8fCBtYXRjaDtcblx0fSk7XG5cdHJldHVybiByZXN1bHQ7XG59O1xuLyogZW5kIGFkYXB0YXRpb24gKi9cblxudmFyIGdldEJhc2VJbnRyaW5zaWMgPSBmdW5jdGlvbiBnZXRCYXNlSW50cmluc2ljKG5hbWUsIGFsbG93TWlzc2luZykge1xuXHR2YXIgaW50cmluc2ljTmFtZSA9IG5hbWU7XG5cdHZhciBhbGlhcztcblx0aWYgKGhhc093bihMRUdBQ1lfQUxJQVNFUywgaW50cmluc2ljTmFtZSkpIHtcblx0XHRhbGlhcyA9IExFR0FDWV9BTElBU0VTW2ludHJpbnNpY05hbWVdO1xuXHRcdGludHJpbnNpY05hbWUgPSAnJScgKyBhbGlhc1swXSArICclJztcblx0fVxuXG5cdGlmIChoYXNPd24oSU5UUklOU0lDUywgaW50cmluc2ljTmFtZSkpIHtcblx0XHR2YXIgdmFsdWUgPSBJTlRSSU5TSUNTW2ludHJpbnNpY05hbWVdO1xuXHRcdGlmICh2YWx1ZSA9PT0gbmVlZHNFdmFsKSB7XG5cdFx0XHR2YWx1ZSA9IGRvRXZhbChpbnRyaW5zaWNOYW1lKTtcblx0XHR9XG5cdFx0aWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3VuZGVmaW5lZCcgJiYgIWFsbG93TWlzc2luZykge1xuXHRcdFx0dGhyb3cgbmV3ICRUeXBlRXJyb3IoJ2ludHJpbnNpYyAnICsgbmFtZSArICcgZXhpc3RzLCBidXQgaXMgbm90IGF2YWlsYWJsZS4gUGxlYXNlIGZpbGUgYW4gaXNzdWUhJyk7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIHtcblx0XHRcdGFsaWFzOiBhbGlhcyxcblx0XHRcdG5hbWU6IGludHJpbnNpY05hbWUsXG5cdFx0XHR2YWx1ZTogdmFsdWVcblx0XHR9O1xuXHR9XG5cblx0dGhyb3cgbmV3ICRTeW50YXhFcnJvcignaW50cmluc2ljICcgKyBuYW1lICsgJyBkb2VzIG5vdCBleGlzdCEnKTtcbn07XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gR2V0SW50cmluc2ljKG5hbWUsIGFsbG93TWlzc2luZykge1xuXHRpZiAodHlwZW9mIG5hbWUgIT09ICdzdHJpbmcnIHx8IG5hbWUubGVuZ3RoID09PSAwKSB7XG5cdFx0dGhyb3cgbmV3ICRUeXBlRXJyb3IoJ2ludHJpbnNpYyBuYW1lIG11c3QgYmUgYSBub24tZW1wdHkgc3RyaW5nJyk7XG5cdH1cblx0aWYgKGFyZ3VtZW50cy5sZW5ndGggPiAxICYmIHR5cGVvZiBhbGxvd01pc3NpbmcgIT09ICdib29sZWFuJykge1xuXHRcdHRocm93IG5ldyAkVHlwZUVycm9yKCdcImFsbG93TWlzc2luZ1wiIGFyZ3VtZW50IG11c3QgYmUgYSBib29sZWFuJyk7XG5cdH1cblxuXHRpZiAoJGV4ZWMoL14lP1teJV0qJT8kLywgbmFtZSkgPT09IG51bGwpIHtcblx0XHR0aHJvdyBuZXcgJFN5bnRheEVycm9yKCdgJWAgbWF5IG5vdCBiZSBwcmVzZW50IGFueXdoZXJlIGJ1dCBhdCB0aGUgYmVnaW5uaW5nIGFuZCBlbmQgb2YgdGhlIGludHJpbnNpYyBuYW1lJyk7XG5cdH1cblx0dmFyIHBhcnRzID0gc3RyaW5nVG9QYXRoKG5hbWUpO1xuXHR2YXIgaW50cmluc2ljQmFzZU5hbWUgPSBwYXJ0cy5sZW5ndGggPiAwID8gcGFydHNbMF0gOiAnJztcblxuXHR2YXIgaW50cmluc2ljID0gZ2V0QmFzZUludHJpbnNpYygnJScgKyBpbnRyaW5zaWNCYXNlTmFtZSArICclJywgYWxsb3dNaXNzaW5nKTtcblx0dmFyIGludHJpbnNpY1JlYWxOYW1lID0gaW50cmluc2ljLm5hbWU7XG5cdHZhciB2YWx1ZSA9IGludHJpbnNpYy52YWx1ZTtcblx0dmFyIHNraXBGdXJ0aGVyQ2FjaGluZyA9IGZhbHNlO1xuXG5cdHZhciBhbGlhcyA9IGludHJpbnNpYy5hbGlhcztcblx0aWYgKGFsaWFzKSB7XG5cdFx0aW50cmluc2ljQmFzZU5hbWUgPSBhbGlhc1swXTtcblx0XHQkc3BsaWNlQXBwbHkocGFydHMsICRjb25jYXQoWzAsIDFdLCBhbGlhcykpO1xuXHR9XG5cblx0Zm9yICh2YXIgaSA9IDEsIGlzT3duID0gdHJ1ZTsgaSA8IHBhcnRzLmxlbmd0aDsgaSArPSAxKSB7XG5cdFx0dmFyIHBhcnQgPSBwYXJ0c1tpXTtcblx0XHR2YXIgZmlyc3QgPSAkc3RyU2xpY2UocGFydCwgMCwgMSk7XG5cdFx0dmFyIGxhc3QgPSAkc3RyU2xpY2UocGFydCwgLTEpO1xuXHRcdGlmIChcblx0XHRcdChcblx0XHRcdFx0KGZpcnN0ID09PSAnXCInIHx8IGZpcnN0ID09PSBcIidcIiB8fCBmaXJzdCA9PT0gJ2AnKVxuXHRcdFx0XHR8fCAobGFzdCA9PT0gJ1wiJyB8fCBsYXN0ID09PSBcIidcIiB8fCBsYXN0ID09PSAnYCcpXG5cdFx0XHQpXG5cdFx0XHQmJiBmaXJzdCAhPT0gbGFzdFxuXHRcdCkge1xuXHRcdFx0dGhyb3cgbmV3ICRTeW50YXhFcnJvcigncHJvcGVydHkgbmFtZXMgd2l0aCBxdW90ZXMgbXVzdCBoYXZlIG1hdGNoaW5nIHF1b3RlcycpO1xuXHRcdH1cblx0XHRpZiAocGFydCA9PT0gJ2NvbnN0cnVjdG9yJyB8fCAhaXNPd24pIHtcblx0XHRcdHNraXBGdXJ0aGVyQ2FjaGluZyA9IHRydWU7XG5cdFx0fVxuXG5cdFx0aW50cmluc2ljQmFzZU5hbWUgKz0gJy4nICsgcGFydDtcblx0XHRpbnRyaW5zaWNSZWFsTmFtZSA9ICclJyArIGludHJpbnNpY0Jhc2VOYW1lICsgJyUnO1xuXG5cdFx0aWYgKGhhc093bihJTlRSSU5TSUNTLCBpbnRyaW5zaWNSZWFsTmFtZSkpIHtcblx0XHRcdHZhbHVlID0gSU5UUklOU0lDU1tpbnRyaW5zaWNSZWFsTmFtZV07XG5cdFx0fSBlbHNlIGlmICh2YWx1ZSAhPSBudWxsKSB7XG5cdFx0XHRpZiAoIShwYXJ0IGluIHZhbHVlKSkge1xuXHRcdFx0XHRpZiAoIWFsbG93TWlzc2luZykge1xuXHRcdFx0XHRcdHRocm93IG5ldyAkVHlwZUVycm9yKCdiYXNlIGludHJpbnNpYyBmb3IgJyArIG5hbWUgKyAnIGV4aXN0cywgYnV0IHRoZSBwcm9wZXJ0eSBpcyBub3QgYXZhaWxhYmxlLicpO1xuXHRcdFx0XHR9XG5cdFx0XHRcdHJldHVybiB2b2lkIHVuZGVmaW5lZDtcblx0XHRcdH1cblx0XHRcdGlmICgkZ09QRCAmJiAoaSArIDEpID49IHBhcnRzLmxlbmd0aCkge1xuXHRcdFx0XHR2YXIgZGVzYyA9ICRnT1BEKHZhbHVlLCBwYXJ0KTtcblx0XHRcdFx0aXNPd24gPSAhIWRlc2M7XG5cblx0XHRcdFx0Ly8gQnkgY29udmVudGlvbiwgd2hlbiBhIGRhdGEgcHJvcGVydHkgaXMgY29udmVydGVkIHRvIGFuIGFjY2Vzc29yXG5cdFx0XHRcdC8vIHByb3BlcnR5IHRvIGVtdWxhdGUgYSBkYXRhIHByb3BlcnR5IHRoYXQgZG9lcyBub3Qgc3VmZmVyIGZyb21cblx0XHRcdFx0Ly8gdGhlIG92ZXJyaWRlIG1pc3Rha2UsIHRoYXQgYWNjZXNzb3IncyBnZXR0ZXIgaXMgbWFya2VkIHdpdGhcblx0XHRcdFx0Ly8gYW4gYG9yaWdpbmFsVmFsdWVgIHByb3BlcnR5LiBIZXJlLCB3aGVuIHdlIGRldGVjdCB0aGlzLCB3ZVxuXHRcdFx0XHQvLyB1cGhvbGQgdGhlIGlsbHVzaW9uIGJ5IHByZXRlbmRpbmcgdG8gc2VlIHRoYXQgb3JpZ2luYWwgZGF0YVxuXHRcdFx0XHQvLyBwcm9wZXJ0eSwgaS5lLiwgcmV0dXJuaW5nIHRoZSB2YWx1ZSByYXRoZXIgdGhhbiB0aGUgZ2V0dGVyXG5cdFx0XHRcdC8vIGl0c2VsZi5cblx0XHRcdFx0aWYgKGlzT3duICYmICdnZXQnIGluIGRlc2MgJiYgISgnb3JpZ2luYWxWYWx1ZScgaW4gZGVzYy5nZXQpKSB7XG5cdFx0XHRcdFx0dmFsdWUgPSBkZXNjLmdldDtcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHR2YWx1ZSA9IHZhbHVlW3BhcnRdO1xuXHRcdFx0XHR9XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRpc093biA9IGhhc093bih2YWx1ZSwgcGFydCk7XG5cdFx0XHRcdHZhbHVlID0gdmFsdWVbcGFydF07XG5cdFx0XHR9XG5cblx0XHRcdGlmIChpc093biAmJiAhc2tpcEZ1cnRoZXJDYWNoaW5nKSB7XG5cdFx0XHRcdElOVFJJTlNJQ1NbaW50cmluc2ljUmVhbE5hbWVdID0gdmFsdWU7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cdHJldHVybiB2YWx1ZTtcbn07XG4iLCAiJ3VzZSBzdHJpY3QnO1xuXG52YXIgaGFzU3ltYm9scyA9IHJlcXVpcmUoJ2hhcy1zeW1ib2xzL3NoYW1zJyk7XG5cbi8qKiBAdHlwZSB7aW1wb3J0KCcuJyl9ICovXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIGhhc1RvU3RyaW5nVGFnU2hhbXMoKSB7XG5cdHJldHVybiBoYXNTeW1ib2xzKCkgJiYgISFTeW1ib2wudG9TdHJpbmdUYWc7XG59O1xuIiwgIid1c2Ugc3RyaWN0JztcblxudmFyIEdldEludHJpbnNpYyA9IHJlcXVpcmUoJ2dldC1pbnRyaW5zaWMnKTtcblxudmFyICRkZWZpbmVQcm9wZXJ0eSA9IEdldEludHJpbnNpYygnJU9iamVjdC5kZWZpbmVQcm9wZXJ0eSUnLCB0cnVlKTtcblxudmFyIGhhc1RvU3RyaW5nVGFnID0gcmVxdWlyZSgnaGFzLXRvc3RyaW5ndGFnL3NoYW1zJykoKTtcbnZhciBoYXNPd24gPSByZXF1aXJlKCdoYXNvd24nKTtcbnZhciAkVHlwZUVycm9yID0gcmVxdWlyZSgnZXMtZXJyb3JzL3R5cGUnKTtcblxudmFyIHRvU3RyaW5nVGFnID0gaGFzVG9TdHJpbmdUYWcgPyBTeW1ib2wudG9TdHJpbmdUYWcgOiBudWxsO1xuXG4vKiogQHR5cGUge2ltcG9ydCgnLicpfSAqL1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBzZXRUb1N0cmluZ1RhZyhvYmplY3QsIHZhbHVlKSB7XG5cdHZhciBvdmVycmlkZUlmU2V0ID0gYXJndW1lbnRzLmxlbmd0aCA+IDIgJiYgISFhcmd1bWVudHNbMl0gJiYgYXJndW1lbnRzWzJdLmZvcmNlO1xuXHR2YXIgbm9uQ29uZmlndXJhYmxlID0gYXJndW1lbnRzLmxlbmd0aCA+IDIgJiYgISFhcmd1bWVudHNbMl0gJiYgYXJndW1lbnRzWzJdLm5vbkNvbmZpZ3VyYWJsZTtcblx0aWYgKFxuXHRcdCh0eXBlb2Ygb3ZlcnJpZGVJZlNldCAhPT0gJ3VuZGVmaW5lZCcgJiYgdHlwZW9mIG92ZXJyaWRlSWZTZXQgIT09ICdib29sZWFuJylcblx0XHR8fCAodHlwZW9mIG5vbkNvbmZpZ3VyYWJsZSAhPT0gJ3VuZGVmaW5lZCcgJiYgdHlwZW9mIG5vbkNvbmZpZ3VyYWJsZSAhPT0gJ2Jvb2xlYW4nKVxuXHQpIHtcblx0XHR0aHJvdyBuZXcgJFR5cGVFcnJvcignaWYgcHJvdmlkZWQsIHRoZSBgb3ZlcnJpZGVJZlNldGAgYW5kIGBub25Db25maWd1cmFibGVgIG9wdGlvbnMgbXVzdCBiZSBib29sZWFucycpO1xuXHR9XG5cdGlmICh0b1N0cmluZ1RhZyAmJiAob3ZlcnJpZGVJZlNldCB8fCAhaGFzT3duKG9iamVjdCwgdG9TdHJpbmdUYWcpKSkge1xuXHRcdGlmICgkZGVmaW5lUHJvcGVydHkpIHtcblx0XHRcdCRkZWZpbmVQcm9wZXJ0eShvYmplY3QsIHRvU3RyaW5nVGFnLCB7XG5cdFx0XHRcdGNvbmZpZ3VyYWJsZTogIW5vbkNvbmZpZ3VyYWJsZSxcblx0XHRcdFx0ZW51bWVyYWJsZTogZmFsc2UsXG5cdFx0XHRcdHZhbHVlOiB2YWx1ZSxcblx0XHRcdFx0d3JpdGFibGU6IGZhbHNlXG5cdFx0XHR9KTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0b2JqZWN0W3RvU3RyaW5nVGFnXSA9IHZhbHVlOyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG5cdFx0fVxuXHR9XG59O1xuIiwgIi8vIHBvcHVsYXRlcyBtaXNzaW5nIHZhbHVlc1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbihkc3QsIHNyYykge1xuXG4gIE9iamVjdC5rZXlzKHNyYykuZm9yRWFjaChmdW5jdGlvbihwcm9wKVxuICB7XG4gICAgZHN0W3Byb3BdID0gZHN0W3Byb3BdIHx8IHNyY1twcm9wXTtcbiAgfSk7XG5cbiAgcmV0dXJuIGRzdDtcbn07XG4iLCAidmFyIENvbWJpbmVkU3RyZWFtID0gcmVxdWlyZSgnY29tYmluZWQtc3RyZWFtJyk7XG52YXIgdXRpbCA9IHJlcXVpcmUoJ3V0aWwnKTtcbnZhciBwYXRoID0gcmVxdWlyZSgncGF0aCcpO1xudmFyIGh0dHAgPSByZXF1aXJlKCdodHRwJyk7XG52YXIgaHR0cHMgPSByZXF1aXJlKCdodHRwcycpO1xudmFyIHBhcnNlVXJsID0gcmVxdWlyZSgndXJsJykucGFyc2U7XG52YXIgZnMgPSByZXF1aXJlKCdmcycpO1xudmFyIFN0cmVhbSA9IHJlcXVpcmUoJ3N0cmVhbScpLlN0cmVhbTtcbnZhciBtaW1lID0gcmVxdWlyZSgnbWltZS10eXBlcycpO1xudmFyIGFzeW5ja2l0ID0gcmVxdWlyZSgnYXN5bmNraXQnKTtcbnZhciBzZXRUb1N0cmluZ1RhZyA9IHJlcXVpcmUoJ2VzLXNldC10b3N0cmluZ3RhZycpO1xudmFyIHBvcHVsYXRlID0gcmVxdWlyZSgnLi9wb3B1bGF0ZS5qcycpO1xuXG4vLyBQdWJsaWMgQVBJXG5tb2R1bGUuZXhwb3J0cyA9IEZvcm1EYXRhO1xuXG4vLyBtYWtlIGl0IGEgU3RyZWFtXG51dGlsLmluaGVyaXRzKEZvcm1EYXRhLCBDb21iaW5lZFN0cmVhbSk7XG5cbi8qKlxuICogQ3JlYXRlIHJlYWRhYmxlIFwibXVsdGlwYXJ0L2Zvcm0tZGF0YVwiIHN0cmVhbXMuXG4gKiBDYW4gYmUgdXNlZCB0byBzdWJtaXQgZm9ybXNcbiAqIGFuZCBmaWxlIHVwbG9hZHMgdG8gb3RoZXIgd2ViIGFwcGxpY2F0aW9ucy5cbiAqXG4gKiBAY29uc3RydWN0b3JcbiAqIEBwYXJhbSB7T2JqZWN0fSBvcHRpb25zIC0gUHJvcGVydGllcyB0byBiZSBhZGRlZC9vdmVycmlkZW4gZm9yIEZvcm1EYXRhIGFuZCBDb21iaW5lZFN0cmVhbVxuICovXG5mdW5jdGlvbiBGb3JtRGF0YShvcHRpb25zKSB7XG4gIGlmICghKHRoaXMgaW5zdGFuY2VvZiBGb3JtRGF0YSkpIHtcbiAgICByZXR1cm4gbmV3IEZvcm1EYXRhKG9wdGlvbnMpO1xuICB9XG5cbiAgdGhpcy5fb3ZlcmhlYWRMZW5ndGggPSAwO1xuICB0aGlzLl92YWx1ZUxlbmd0aCA9IDA7XG4gIHRoaXMuX3ZhbHVlc1RvTWVhc3VyZSA9IFtdO1xuXG4gIENvbWJpbmVkU3RyZWFtLmNhbGwodGhpcyk7XG5cbiAgb3B0aW9ucyA9IG9wdGlvbnMgfHwge307XG4gIGZvciAodmFyIG9wdGlvbiBpbiBvcHRpb25zKSB7XG4gICAgdGhpc1tvcHRpb25dID0gb3B0aW9uc1tvcHRpb25dO1xuICB9XG59XG5cbkZvcm1EYXRhLkxJTkVfQlJFQUsgPSAnXFxyXFxuJztcbkZvcm1EYXRhLkRFRkFVTFRfQ09OVEVOVF9UWVBFID0gJ2FwcGxpY2F0aW9uL29jdGV0LXN0cmVhbSc7XG5cbkZvcm1EYXRhLnByb3RvdHlwZS5hcHBlbmQgPSBmdW5jdGlvbihmaWVsZCwgdmFsdWUsIG9wdGlvbnMpIHtcblxuICBvcHRpb25zID0gb3B0aW9ucyB8fCB7fTtcblxuICAvLyBhbGxvdyBmaWxlbmFtZSBhcyBzaW5nbGUgb3B0aW9uXG4gIGlmICh0eXBlb2Ygb3B0aW9ucyA9PSAnc3RyaW5nJykge1xuICAgIG9wdGlvbnMgPSB7ZmlsZW5hbWU6IG9wdGlvbnN9O1xuICB9XG5cbiAgdmFyIGFwcGVuZCA9IENvbWJpbmVkU3RyZWFtLnByb3RvdHlwZS5hcHBlbmQuYmluZCh0aGlzKTtcblxuICAvLyBhbGwgdGhhdCBzdHJlYW15IGJ1c2luZXNzIGNhbid0IGhhbmRsZSBudW1iZXJzXG4gIGlmICh0eXBlb2YgdmFsdWUgPT0gJ251bWJlcicpIHtcbiAgICB2YWx1ZSA9ICcnICsgdmFsdWU7XG4gIH1cblxuICAvLyBodHRwczovL2dpdGh1Yi5jb20vZmVsaXhnZS9ub2RlLWZvcm0tZGF0YS9pc3N1ZXMvMzhcbiAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgLy8gUGxlYXNlIGNvbnZlcnQgeW91ciBhcnJheSBpbnRvIHN0cmluZ1xuICAgIC8vIHRoZSB3YXkgd2ViIHNlcnZlciBleHBlY3RzIGl0XG4gICAgdGhpcy5fZXJyb3IobmV3IEVycm9yKCdBcnJheXMgYXJlIG5vdCBzdXBwb3J0ZWQuJykpO1xuICAgIHJldHVybjtcbiAgfVxuXG4gIHZhciBoZWFkZXIgPSB0aGlzLl9tdWx0aVBhcnRIZWFkZXIoZmllbGQsIHZhbHVlLCBvcHRpb25zKTtcbiAgdmFyIGZvb3RlciA9IHRoaXMuX211bHRpUGFydEZvb3RlcigpO1xuXG4gIGFwcGVuZChoZWFkZXIpO1xuICBhcHBlbmQodmFsdWUpO1xuICBhcHBlbmQoZm9vdGVyKTtcblxuICAvLyBwYXNzIGFsb25nIG9wdGlvbnMua25vd25MZW5ndGhcbiAgdGhpcy5fdHJhY2tMZW5ndGgoaGVhZGVyLCB2YWx1ZSwgb3B0aW9ucyk7XG59O1xuXG5Gb3JtRGF0YS5wcm90b3R5cGUuX3RyYWNrTGVuZ3RoID0gZnVuY3Rpb24oaGVhZGVyLCB2YWx1ZSwgb3B0aW9ucykge1xuICB2YXIgdmFsdWVMZW5ndGggPSAwO1xuXG4gIC8vIHVzZWQgdy8gZ2V0TGVuZ3RoU3luYygpLCB3aGVuIGxlbmd0aCBpcyBrbm93bi5cbiAgLy8gZS5nLiBmb3Igc3RyZWFtaW5nIGRpcmVjdGx5IGZyb20gYSByZW1vdGUgc2VydmVyLFxuICAvLyB3LyBhIGtub3duIGZpbGUgYSBzaXplLCBhbmQgbm90IHdhbnRpbmcgdG8gd2FpdCBmb3JcbiAgLy8gaW5jb21pbmcgZmlsZSB0byBmaW5pc2ggdG8gZ2V0IGl0cyBzaXplLlxuICBpZiAob3B0aW9ucy5rbm93bkxlbmd0aCAhPSBudWxsKSB7XG4gICAgdmFsdWVMZW5ndGggKz0gK29wdGlvbnMua25vd25MZW5ndGg7XG4gIH0gZWxzZSBpZiAoQnVmZmVyLmlzQnVmZmVyKHZhbHVlKSkge1xuICAgIHZhbHVlTGVuZ3RoID0gdmFsdWUubGVuZ3RoO1xuICB9IGVsc2UgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICB2YWx1ZUxlbmd0aCA9IEJ1ZmZlci5ieXRlTGVuZ3RoKHZhbHVlKTtcbiAgfVxuXG4gIHRoaXMuX3ZhbHVlTGVuZ3RoICs9IHZhbHVlTGVuZ3RoO1xuXG4gIC8vIEBjaGVjayB3aHkgYWRkIENSTEY/IGRvZXMgdGhpcyBhY2NvdW50IGZvciBjdXN0b20vbXVsdGlwbGUgQ1JMRnM/XG4gIHRoaXMuX292ZXJoZWFkTGVuZ3RoICs9XG4gICAgQnVmZmVyLmJ5dGVMZW5ndGgoaGVhZGVyKSArXG4gICAgRm9ybURhdGEuTElORV9CUkVBSy5sZW5ndGg7XG5cbiAgLy8gZW1wdHkgb3IgZWl0aGVyIGRvZXNuJ3QgaGF2ZSBwYXRoIG9yIG5vdCBhbiBodHRwIHJlc3BvbnNlIG9yIG5vdCBhIHN0cmVhbVxuICBpZiAoIXZhbHVlIHx8ICggIXZhbHVlLnBhdGggJiYgISh2YWx1ZS5yZWFkYWJsZSAmJiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodmFsdWUsICdodHRwVmVyc2lvbicpKSAmJiAhKHZhbHVlIGluc3RhbmNlb2YgU3RyZWFtKSkpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICAvLyBubyBuZWVkIHRvIGJvdGhlciB3aXRoIHRoZSBsZW5ndGhcbiAgaWYgKCFvcHRpb25zLmtub3duTGVuZ3RoKSB7XG4gICAgdGhpcy5fdmFsdWVzVG9NZWFzdXJlLnB1c2godmFsdWUpO1xuICB9XG59O1xuXG5Gb3JtRGF0YS5wcm90b3R5cGUuX2xlbmd0aFJldHJpZXZlciA9IGZ1bmN0aW9uKHZhbHVlLCBjYWxsYmFjaykge1xuICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHZhbHVlLCAnZmQnKSkge1xuXG4gICAgLy8gdGFrZSByZWFkIHJhbmdlIGludG8gYSBhY2NvdW50XG4gICAgLy8gYGVuZGAgPSBJbmZpbml0eSBcdTIwMTM+IHJlYWQgZmlsZSB0aWxsIHRoZSBlbmRcbiAgICAvL1xuICAgIC8vIFRPRE86IExvb2tzIGxpa2UgdGhlcmUgaXMgYnVnIGluIE5vZGUgZnMuY3JlYXRlUmVhZFN0cmVhbVxuICAgIC8vIGl0IGRvZXNuJ3QgcmVzcGVjdCBgZW5kYCBvcHRpb25zIHdpdGhvdXQgYHN0YXJ0YCBvcHRpb25zXG4gICAgLy8gRml4IGl0IHdoZW4gbm9kZSBmaXhlcyBpdC5cbiAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vam95ZW50L25vZGUvaXNzdWVzLzc4MTlcbiAgICBpZiAodmFsdWUuZW5kICE9IHVuZGVmaW5lZCAmJiB2YWx1ZS5lbmQgIT0gSW5maW5pdHkgJiYgdmFsdWUuc3RhcnQgIT0gdW5kZWZpbmVkKSB7XG5cbiAgICAgIC8vIHdoZW4gZW5kIHNwZWNpZmllZFxuICAgICAgLy8gbm8gbmVlZCB0byBjYWxjdWxhdGUgcmFuZ2VcbiAgICAgIC8vIGluY2x1c2l2ZSwgc3RhcnRzIHdpdGggMFxuICAgICAgY2FsbGJhY2sobnVsbCwgdmFsdWUuZW5kICsgMSAtICh2YWx1ZS5zdGFydCA/IHZhbHVlLnN0YXJ0IDogMCkpO1xuXG4gICAgLy8gbm90IHRoYXQgZmFzdCBzbm9vcHlcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gc3RpbGwgbmVlZCB0byBmZXRjaCBmaWxlIHNpemUgZnJvbSBmc1xuICAgICAgZnMuc3RhdCh2YWx1ZS5wYXRoLCBmdW5jdGlvbihlcnIsIHN0YXQpIHtcblxuICAgICAgICB2YXIgZmlsZVNpemU7XG5cbiAgICAgICAgaWYgKGVycikge1xuICAgICAgICAgIGNhbGxiYWNrKGVycik7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gdXBkYXRlIGZpbmFsIHNpemUgYmFzZWQgb24gdGhlIHJhbmdlIG9wdGlvbnNcbiAgICAgICAgZmlsZVNpemUgPSBzdGF0LnNpemUgLSAodmFsdWUuc3RhcnQgPyB2YWx1ZS5zdGFydCA6IDApO1xuICAgICAgICBjYWxsYmFjayhudWxsLCBmaWxlU2l6ZSk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgLy8gb3IgaHR0cCByZXNwb25zZVxuICB9IGVsc2UgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh2YWx1ZSwgJ2h0dHBWZXJzaW9uJykpIHtcbiAgICBjYWxsYmFjayhudWxsLCArdmFsdWUuaGVhZGVyc1snY29udGVudC1sZW5ndGgnXSk7XG5cbiAgLy8gb3IgcmVxdWVzdCBzdHJlYW0gaHR0cDovL2dpdGh1Yi5jb20vbWlrZWFsL3JlcXVlc3RcbiAgfSBlbHNlIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodmFsdWUsICdodHRwTW9kdWxlJykpIHtcbiAgICAvLyB3YWl0IHRpbGwgcmVzcG9uc2UgY29tZSBiYWNrXG4gICAgdmFsdWUub24oJ3Jlc3BvbnNlJywgZnVuY3Rpb24ocmVzcG9uc2UpIHtcbiAgICAgIHZhbHVlLnBhdXNlKCk7XG4gICAgICBjYWxsYmFjayhudWxsLCArcmVzcG9uc2UuaGVhZGVyc1snY29udGVudC1sZW5ndGgnXSk7XG4gICAgfSk7XG4gICAgdmFsdWUucmVzdW1lKCk7XG5cbiAgLy8gc29tZXRoaW5nIGVsc2VcbiAgfSBlbHNlIHtcbiAgICBjYWxsYmFjaygnVW5rbm93biBzdHJlYW0nKTtcbiAgfVxufTtcblxuRm9ybURhdGEucHJvdG90eXBlLl9tdWx0aVBhcnRIZWFkZXIgPSBmdW5jdGlvbihmaWVsZCwgdmFsdWUsIG9wdGlvbnMpIHtcbiAgLy8gY3VzdG9tIGhlYWRlciBzcGVjaWZpZWQgKGFzIHN0cmluZyk/XG4gIC8vIGl0IGJlY29tZXMgcmVzcG9uc2libGUgZm9yIGJvdW5kYXJ5XG4gIC8vIChlLmcuIHRvIGhhbmRsZSBleHRyYSBDUkxGcyBvbiAuTkVUIHNlcnZlcnMpXG4gIGlmICh0eXBlb2Ygb3B0aW9ucy5oZWFkZXIgPT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gb3B0aW9ucy5oZWFkZXI7XG4gIH1cblxuICB2YXIgY29udGVudERpc3Bvc2l0aW9uID0gdGhpcy5fZ2V0Q29udGVudERpc3Bvc2l0aW9uKHZhbHVlLCBvcHRpb25zKTtcbiAgdmFyIGNvbnRlbnRUeXBlID0gdGhpcy5fZ2V0Q29udGVudFR5cGUodmFsdWUsIG9wdGlvbnMpO1xuXG4gIHZhciBjb250ZW50cyA9ICcnO1xuICB2YXIgaGVhZGVycyAgPSB7XG4gICAgLy8gYWRkIGN1c3RvbSBkaXNwb3NpdGlvbiBhcyB0aGlyZCBlbGVtZW50IG9yIGtlZXAgaXQgdHdvIGVsZW1lbnRzIGlmIG5vdFxuICAgICdDb250ZW50LURpc3Bvc2l0aW9uJzogWydmb3JtLWRhdGEnLCAnbmFtZT1cIicgKyBmaWVsZCArICdcIiddLmNvbmNhdChjb250ZW50RGlzcG9zaXRpb24gfHwgW10pLFxuICAgIC8vIGlmIG5vIGNvbnRlbnQgdHlwZS4gYWxsb3cgaXQgdG8gYmUgZW1wdHkgYXJyYXlcbiAgICAnQ29udGVudC1UeXBlJzogW10uY29uY2F0KGNvbnRlbnRUeXBlIHx8IFtdKVxuICB9O1xuXG4gIC8vIGFsbG93IGN1c3RvbSBoZWFkZXJzLlxuICBpZiAodHlwZW9mIG9wdGlvbnMuaGVhZGVyID09ICdvYmplY3QnKSB7XG4gICAgcG9wdWxhdGUoaGVhZGVycywgb3B0aW9ucy5oZWFkZXIpO1xuICB9XG5cbiAgdmFyIGhlYWRlcjtcbiAgZm9yICh2YXIgcHJvcCBpbiBoZWFkZXJzKSB7XG4gICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChoZWFkZXJzLCBwcm9wKSkge1xuICAgICAgaGVhZGVyID0gaGVhZGVyc1twcm9wXTtcblxuICAgICAgLy8gc2tpcCBudWxsaXNoIGhlYWRlcnMuXG4gICAgICBpZiAoaGVhZGVyID09IG51bGwpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIC8vIGNvbnZlcnQgYWxsIGhlYWRlcnMgdG8gYXJyYXlzLlxuICAgICAgaWYgKCFBcnJheS5pc0FycmF5KGhlYWRlcikpIHtcbiAgICAgICAgaGVhZGVyID0gW2hlYWRlcl07XG4gICAgICB9XG5cbiAgICAgIC8vIGFkZCBub24tZW1wdHkgaGVhZGVycy5cbiAgICAgIGlmIChoZWFkZXIubGVuZ3RoKSB7XG4gICAgICAgIGNvbnRlbnRzICs9IHByb3AgKyAnOiAnICsgaGVhZGVyLmpvaW4oJzsgJykgKyBGb3JtRGF0YS5MSU5FX0JSRUFLO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiAnLS0nICsgdGhpcy5nZXRCb3VuZGFyeSgpICsgRm9ybURhdGEuTElORV9CUkVBSyArIGNvbnRlbnRzICsgRm9ybURhdGEuTElORV9CUkVBSztcbn07XG5cbkZvcm1EYXRhLnByb3RvdHlwZS5fZ2V0Q29udGVudERpc3Bvc2l0aW9uID0gZnVuY3Rpb24odmFsdWUsIG9wdGlvbnMpIHtcblxuICB2YXIgZmlsZW5hbWVcbiAgICAsIGNvbnRlbnREaXNwb3NpdGlvblxuICAgIDtcblxuICBpZiAodHlwZW9mIG9wdGlvbnMuZmlsZXBhdGggPT09ICdzdHJpbmcnKSB7XG4gICAgLy8gY3VzdG9tIGZpbGVwYXRoIGZvciByZWxhdGl2ZSBwYXRoc1xuICAgIGZpbGVuYW1lID0gcGF0aC5ub3JtYWxpemUob3B0aW9ucy5maWxlcGF0aCkucmVwbGFjZSgvXFxcXC9nLCAnLycpO1xuICB9IGVsc2UgaWYgKG9wdGlvbnMuZmlsZW5hbWUgfHwgdmFsdWUubmFtZSB8fCB2YWx1ZS5wYXRoKSB7XG4gICAgLy8gY3VzdG9tIGZpbGVuYW1lIHRha2UgcHJlY2VkZW5jZVxuICAgIC8vIGZvcm1pZGFibGUgYW5kIHRoZSBicm93c2VyIGFkZCBhIG5hbWUgcHJvcGVydHlcbiAgICAvLyBmcy0gYW5kIHJlcXVlc3QtIHN0cmVhbXMgaGF2ZSBwYXRoIHByb3BlcnR5XG4gICAgZmlsZW5hbWUgPSBwYXRoLmJhc2VuYW1lKG9wdGlvbnMuZmlsZW5hbWUgfHwgdmFsdWUubmFtZSB8fCB2YWx1ZS5wYXRoKTtcbiAgfSBlbHNlIGlmICh2YWx1ZS5yZWFkYWJsZSAmJiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodmFsdWUsICdodHRwVmVyc2lvbicpKSB7XG4gICAgLy8gb3IgdHJ5IGh0dHAgcmVzcG9uc2VcbiAgICBmaWxlbmFtZSA9IHBhdGguYmFzZW5hbWUodmFsdWUuY2xpZW50Ll9odHRwTWVzc2FnZS5wYXRoIHx8ICcnKTtcbiAgfVxuXG4gIGlmIChmaWxlbmFtZSkge1xuICAgIGNvbnRlbnREaXNwb3NpdGlvbiA9ICdmaWxlbmFtZT1cIicgKyBmaWxlbmFtZSArICdcIic7XG4gIH1cblxuICByZXR1cm4gY29udGVudERpc3Bvc2l0aW9uO1xufTtcblxuRm9ybURhdGEucHJvdG90eXBlLl9nZXRDb250ZW50VHlwZSA9IGZ1bmN0aW9uKHZhbHVlLCBvcHRpb25zKSB7XG5cbiAgLy8gdXNlIGN1c3RvbSBjb250ZW50LXR5cGUgYWJvdmUgYWxsXG4gIHZhciBjb250ZW50VHlwZSA9IG9wdGlvbnMuY29udGVudFR5cGU7XG5cbiAgLy8gb3IgdHJ5IGBuYW1lYCBmcm9tIGZvcm1pZGFibGUsIGJyb3dzZXJcbiAgaWYgKCFjb250ZW50VHlwZSAmJiB2YWx1ZS5uYW1lKSB7XG4gICAgY29udGVudFR5cGUgPSBtaW1lLmxvb2t1cCh2YWx1ZS5uYW1lKTtcbiAgfVxuXG4gIC8vIG9yIHRyeSBgcGF0aGAgZnJvbSBmcy0sIHJlcXVlc3QtIHN0cmVhbXNcbiAgaWYgKCFjb250ZW50VHlwZSAmJiB2YWx1ZS5wYXRoKSB7XG4gICAgY29udGVudFR5cGUgPSBtaW1lLmxvb2t1cCh2YWx1ZS5wYXRoKTtcbiAgfVxuXG4gIC8vIG9yIGlmIGl0J3MgaHR0cC1yZXBvbnNlXG4gIGlmICghY29udGVudFR5cGUgJiYgdmFsdWUucmVhZGFibGUgJiYgT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHZhbHVlLCAnaHR0cFZlcnNpb24nKSkge1xuICAgIGNvbnRlbnRUeXBlID0gdmFsdWUuaGVhZGVyc1snY29udGVudC10eXBlJ107XG4gIH1cblxuICAvLyBvciBndWVzcyBpdCBmcm9tIHRoZSBmaWxlcGF0aCBvciBmaWxlbmFtZVxuICBpZiAoIWNvbnRlbnRUeXBlICYmIChvcHRpb25zLmZpbGVwYXRoIHx8IG9wdGlvbnMuZmlsZW5hbWUpKSB7XG4gICAgY29udGVudFR5cGUgPSBtaW1lLmxvb2t1cChvcHRpb25zLmZpbGVwYXRoIHx8IG9wdGlvbnMuZmlsZW5hbWUpO1xuICB9XG5cbiAgLy8gZmFsbGJhY2sgdG8gdGhlIGRlZmF1bHQgY29udGVudCB0eXBlIGlmIGB2YWx1ZWAgaXMgbm90IHNpbXBsZSB2YWx1ZVxuICBpZiAoIWNvbnRlbnRUeXBlICYmIHR5cGVvZiB2YWx1ZSA9PSAnb2JqZWN0Jykge1xuICAgIGNvbnRlbnRUeXBlID0gRm9ybURhdGEuREVGQVVMVF9DT05URU5UX1RZUEU7XG4gIH1cblxuICByZXR1cm4gY29udGVudFR5cGU7XG59O1xuXG5Gb3JtRGF0YS5wcm90b3R5cGUuX211bHRpUGFydEZvb3RlciA9IGZ1bmN0aW9uKCkge1xuICByZXR1cm4gZnVuY3Rpb24obmV4dCkge1xuICAgIHZhciBmb290ZXIgPSBGb3JtRGF0YS5MSU5FX0JSRUFLO1xuXG4gICAgdmFyIGxhc3RQYXJ0ID0gKHRoaXMuX3N0cmVhbXMubGVuZ3RoID09PSAwKTtcbiAgICBpZiAobGFzdFBhcnQpIHtcbiAgICAgIGZvb3RlciArPSB0aGlzLl9sYXN0Qm91bmRhcnkoKTtcbiAgICB9XG5cbiAgICBuZXh0KGZvb3Rlcik7XG4gIH0uYmluZCh0aGlzKTtcbn07XG5cbkZvcm1EYXRhLnByb3RvdHlwZS5fbGFzdEJvdW5kYXJ5ID0gZnVuY3Rpb24oKSB7XG4gIHJldHVybiAnLS0nICsgdGhpcy5nZXRCb3VuZGFyeSgpICsgJy0tJyArIEZvcm1EYXRhLkxJTkVfQlJFQUs7XG59O1xuXG5Gb3JtRGF0YS5wcm90b3R5cGUuZ2V0SGVhZGVycyA9IGZ1bmN0aW9uKHVzZXJIZWFkZXJzKSB7XG4gIHZhciBoZWFkZXI7XG4gIHZhciBmb3JtSGVhZGVycyA9IHtcbiAgICAnY29udGVudC10eXBlJzogJ211bHRpcGFydC9mb3JtLWRhdGE7IGJvdW5kYXJ5PScgKyB0aGlzLmdldEJvdW5kYXJ5KClcbiAgfTtcblxuICBmb3IgKGhlYWRlciBpbiB1c2VySGVhZGVycykge1xuICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodXNlckhlYWRlcnMsIGhlYWRlcikpIHtcbiAgICAgIGZvcm1IZWFkZXJzW2hlYWRlci50b0xvd2VyQ2FzZSgpXSA9IHVzZXJIZWFkZXJzW2hlYWRlcl07XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGZvcm1IZWFkZXJzO1xufTtcblxuRm9ybURhdGEucHJvdG90eXBlLnNldEJvdW5kYXJ5ID0gZnVuY3Rpb24oYm91bmRhcnkpIHtcbiAgdGhpcy5fYm91bmRhcnkgPSBib3VuZGFyeTtcbn07XG5cbkZvcm1EYXRhLnByb3RvdHlwZS5nZXRCb3VuZGFyeSA9IGZ1bmN0aW9uKCkge1xuICBpZiAoIXRoaXMuX2JvdW5kYXJ5KSB7XG4gICAgdGhpcy5fZ2VuZXJhdGVCb3VuZGFyeSgpO1xuICB9XG5cbiAgcmV0dXJuIHRoaXMuX2JvdW5kYXJ5O1xufTtcblxuRm9ybURhdGEucHJvdG90eXBlLmdldEJ1ZmZlciA9IGZ1bmN0aW9uKCkge1xuICB2YXIgZGF0YUJ1ZmZlciA9IG5ldyBCdWZmZXIuYWxsb2MoMCk7XG4gIHZhciBib3VuZGFyeSA9IHRoaXMuZ2V0Qm91bmRhcnkoKTtcblxuICAvLyBDcmVhdGUgdGhlIGZvcm0gY29udGVudC4gQWRkIExpbmUgYnJlYWtzIHRvIHRoZSBlbmQgb2YgZGF0YS5cbiAgZm9yICh2YXIgaSA9IDAsIGxlbiA9IHRoaXMuX3N0cmVhbXMubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHtcbiAgICBpZiAodHlwZW9mIHRoaXMuX3N0cmVhbXNbaV0gIT09ICdmdW5jdGlvbicpIHtcblxuICAgICAgLy8gQWRkIGNvbnRlbnQgdG8gdGhlIGJ1ZmZlci5cbiAgICAgIGlmKEJ1ZmZlci5pc0J1ZmZlcih0aGlzLl9zdHJlYW1zW2ldKSkge1xuICAgICAgICBkYXRhQnVmZmVyID0gQnVmZmVyLmNvbmNhdCggW2RhdGFCdWZmZXIsIHRoaXMuX3N0cmVhbXNbaV1dKTtcbiAgICAgIH1lbHNlIHtcbiAgICAgICAgZGF0YUJ1ZmZlciA9IEJ1ZmZlci5jb25jYXQoIFtkYXRhQnVmZmVyLCBCdWZmZXIuZnJvbSh0aGlzLl9zdHJlYW1zW2ldKV0pO1xuICAgICAgfVxuXG4gICAgICAvLyBBZGQgYnJlYWsgYWZ0ZXIgY29udGVudC5cbiAgICAgIGlmICh0eXBlb2YgdGhpcy5fc3RyZWFtc1tpXSAhPT0gJ3N0cmluZycgfHwgdGhpcy5fc3RyZWFtc1tpXS5zdWJzdHJpbmcoIDIsIGJvdW5kYXJ5Lmxlbmd0aCArIDIgKSAhPT0gYm91bmRhcnkpIHtcbiAgICAgICAgZGF0YUJ1ZmZlciA9IEJ1ZmZlci5jb25jYXQoIFtkYXRhQnVmZmVyLCBCdWZmZXIuZnJvbShGb3JtRGF0YS5MSU5FX0JSRUFLKV0gKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBBZGQgdGhlIGZvb3RlciBhbmQgcmV0dXJuIHRoZSBCdWZmZXIgb2JqZWN0LlxuICByZXR1cm4gQnVmZmVyLmNvbmNhdCggW2RhdGFCdWZmZXIsIEJ1ZmZlci5mcm9tKHRoaXMuX2xhc3RCb3VuZGFyeSgpKV0gKTtcbn07XG5cbkZvcm1EYXRhLnByb3RvdHlwZS5fZ2VuZXJhdGVCb3VuZGFyeSA9IGZ1bmN0aW9uKCkge1xuICAvLyBUaGlzIGdlbmVyYXRlcyBhIDUwIGNoYXJhY3RlciBib3VuZGFyeSBzaW1pbGFyIHRvIHRob3NlIHVzZWQgYnkgRmlyZWZveC5cbiAgLy8gVGhleSBhcmUgb3B0aW1pemVkIGZvciBib3llci1tb29yZSBwYXJzaW5nLlxuICB2YXIgYm91bmRhcnkgPSAnLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0nO1xuICBmb3IgKHZhciBpID0gMDsgaSA8IDI0OyBpKyspIHtcbiAgICBib3VuZGFyeSArPSBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiAxMCkudG9TdHJpbmcoMTYpO1xuICB9XG5cbiAgdGhpcy5fYm91bmRhcnkgPSBib3VuZGFyeTtcbn07XG5cbi8vIE5vdGU6IGdldExlbmd0aFN5bmMgRE9FU04nVCBjYWxjdWxhdGUgc3RyZWFtcyBsZW5ndGhcbi8vIEFzIHdvcmthcm91bmQgb25lIGNhbiBjYWxjdWxhdGUgZmlsZSBzaXplIG1hbnVhbGx5XG4vLyBhbmQgYWRkIGl0IGFzIGtub3duTGVuZ3RoIG9wdGlvblxuRm9ybURhdGEucHJvdG90eXBlLmdldExlbmd0aFN5bmMgPSBmdW5jdGlvbigpIHtcbiAgdmFyIGtub3duTGVuZ3RoID0gdGhpcy5fb3ZlcmhlYWRMZW5ndGggKyB0aGlzLl92YWx1ZUxlbmd0aDtcblxuICAvLyBEb24ndCBnZXQgY29uZnVzZWQsIHRoZXJlIGFyZSAzIFwiaW50ZXJuYWxcIiBzdHJlYW1zIGZvciBlYWNoIGtleXZhbCBwYWlyXG4gIC8vIHNvIGl0IGJhc2ljYWxseSBjaGVja3MgaWYgdGhlcmUgaXMgYW55IHZhbHVlIGFkZGVkIHRvIHRoZSBmb3JtXG4gIGlmICh0aGlzLl9zdHJlYW1zLmxlbmd0aCkge1xuICAgIGtub3duTGVuZ3RoICs9IHRoaXMuX2xhc3RCb3VuZGFyeSgpLmxlbmd0aDtcbiAgfVxuXG4gIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9mb3JtLWRhdGEvZm9ybS1kYXRhL2lzc3Vlcy80MFxuICBpZiAoIXRoaXMuaGFzS25vd25MZW5ndGgoKSkge1xuICAgIC8vIFNvbWUgYXN5bmMgbGVuZ3RoIHJldHJpZXZlcnMgYXJlIHByZXNlbnRcbiAgICAvLyB0aGVyZWZvcmUgc3luY2hyb25vdXMgbGVuZ3RoIGNhbGN1bGF0aW9uIGlzIGZhbHNlLlxuICAgIC8vIFBsZWFzZSB1c2UgZ2V0TGVuZ3RoKGNhbGxiYWNrKSB0byBnZXQgcHJvcGVyIGxlbmd0aFxuICAgIHRoaXMuX2Vycm9yKG5ldyBFcnJvcignQ2Fubm90IGNhbGN1bGF0ZSBwcm9wZXIgbGVuZ3RoIGluIHN5bmNocm9ub3VzIHdheS4nKSk7XG4gIH1cblxuICByZXR1cm4ga25vd25MZW5ndGg7XG59O1xuXG4vLyBQdWJsaWMgQVBJIHRvIGNoZWNrIGlmIGxlbmd0aCBvZiBhZGRlZCB2YWx1ZXMgaXMga25vd25cbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9mb3JtLWRhdGEvZm9ybS1kYXRhL2lzc3Vlcy8xOTZcbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9mb3JtLWRhdGEvZm9ybS1kYXRhL2lzc3Vlcy8yNjJcbkZvcm1EYXRhLnByb3RvdHlwZS5oYXNLbm93bkxlbmd0aCA9IGZ1bmN0aW9uKCkge1xuICB2YXIgaGFzS25vd25MZW5ndGggPSB0cnVlO1xuXG4gIGlmICh0aGlzLl92YWx1ZXNUb01lYXN1cmUubGVuZ3RoKSB7XG4gICAgaGFzS25vd25MZW5ndGggPSBmYWxzZTtcbiAgfVxuXG4gIHJldHVybiBoYXNLbm93bkxlbmd0aDtcbn07XG5cbkZvcm1EYXRhLnByb3RvdHlwZS5nZXRMZW5ndGggPSBmdW5jdGlvbihjYikge1xuICB2YXIga25vd25MZW5ndGggPSB0aGlzLl9vdmVyaGVhZExlbmd0aCArIHRoaXMuX3ZhbHVlTGVuZ3RoO1xuXG4gIGlmICh0aGlzLl9zdHJlYW1zLmxlbmd0aCkge1xuICAgIGtub3duTGVuZ3RoICs9IHRoaXMuX2xhc3RCb3VuZGFyeSgpLmxlbmd0aDtcbiAgfVxuXG4gIGlmICghdGhpcy5fdmFsdWVzVG9NZWFzdXJlLmxlbmd0aCkge1xuICAgIHByb2Nlc3MubmV4dFRpY2soY2IuYmluZCh0aGlzLCBudWxsLCBrbm93bkxlbmd0aCkpO1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGFzeW5ja2l0LnBhcmFsbGVsKHRoaXMuX3ZhbHVlc1RvTWVhc3VyZSwgdGhpcy5fbGVuZ3RoUmV0cmlldmVyLCBmdW5jdGlvbihlcnIsIHZhbHVlcykge1xuICAgIGlmIChlcnIpIHtcbiAgICAgIGNiKGVycik7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdmFsdWVzLmZvckVhY2goZnVuY3Rpb24obGVuZ3RoKSB7XG4gICAgICBrbm93bkxlbmd0aCArPSBsZW5ndGg7XG4gICAgfSk7XG5cbiAgICBjYihudWxsLCBrbm93bkxlbmd0aCk7XG4gIH0pO1xufTtcblxuRm9ybURhdGEucHJvdG90eXBlLnN1Ym1pdCA9IGZ1bmN0aW9uKHBhcmFtcywgY2IpIHtcbiAgdmFyIHJlcXVlc3RcbiAgICAsIG9wdGlvbnNcbiAgICAsIGRlZmF1bHRzID0ge21ldGhvZDogJ3Bvc3QnfVxuICAgIDtcblxuICAvLyBwYXJzZSBwcm92aWRlZCB1cmwgaWYgaXQncyBzdHJpbmdcbiAgLy8gb3IgdHJlYXQgaXQgYXMgb3B0aW9ucyBvYmplY3RcbiAgaWYgKHR5cGVvZiBwYXJhbXMgPT0gJ3N0cmluZycpIHtcblxuICAgIHBhcmFtcyA9IHBhcnNlVXJsKHBhcmFtcyk7XG4gICAgb3B0aW9ucyA9IHBvcHVsYXRlKHtcbiAgICAgIHBvcnQ6IHBhcmFtcy5wb3J0LFxuICAgICAgcGF0aDogcGFyYW1zLnBhdGhuYW1lLFxuICAgICAgaG9zdDogcGFyYW1zLmhvc3RuYW1lLFxuICAgICAgcHJvdG9jb2w6IHBhcmFtcy5wcm90b2NvbFxuICAgIH0sIGRlZmF1bHRzKTtcblxuICAvLyB1c2UgY3VzdG9tIHBhcmFtc1xuICB9IGVsc2Uge1xuXG4gICAgb3B0aW9ucyA9IHBvcHVsYXRlKHBhcmFtcywgZGVmYXVsdHMpO1xuICAgIC8vIGlmIG5vIHBvcnQgcHJvdmlkZWQgdXNlIGRlZmF1bHQgb25lXG4gICAgaWYgKCFvcHRpb25zLnBvcnQpIHtcbiAgICAgIG9wdGlvbnMucG9ydCA9IG9wdGlvbnMucHJvdG9jb2wgPT0gJ2h0dHBzOicgPyA0NDMgOiA4MDtcbiAgICB9XG4gIH1cblxuICAvLyBwdXQgdGhhdCBnb29kIGNvZGUgaW4gZ2V0SGVhZGVycyB0byBzb21lIHVzZVxuICBvcHRpb25zLmhlYWRlcnMgPSB0aGlzLmdldEhlYWRlcnMocGFyYW1zLmhlYWRlcnMpO1xuXG4gIC8vIGh0dHBzIGlmIHNwZWNpZmllZCwgZmFsbGJhY2sgdG8gaHR0cCBpbiBhbnkgb3RoZXIgY2FzZVxuICBpZiAob3B0aW9ucy5wcm90b2NvbCA9PSAnaHR0cHM6Jykge1xuICAgIHJlcXVlc3QgPSBodHRwcy5yZXF1ZXN0KG9wdGlvbnMpO1xuICB9IGVsc2Uge1xuICAgIHJlcXVlc3QgPSBodHRwLnJlcXVlc3Qob3B0aW9ucyk7XG4gIH1cblxuICAvLyBnZXQgY29udGVudCBsZW5ndGggYW5kIGZpcmUgYXdheVxuICB0aGlzLmdldExlbmd0aChmdW5jdGlvbihlcnIsIGxlbmd0aCkge1xuICAgIGlmIChlcnIgJiYgZXJyICE9PSAnVW5rbm93biBzdHJlYW0nKSB7XG4gICAgICB0aGlzLl9lcnJvcihlcnIpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIGFkZCBjb250ZW50IGxlbmd0aFxuICAgIGlmIChsZW5ndGgpIHtcbiAgICAgIHJlcXVlc3Quc2V0SGVhZGVyKCdDb250ZW50LUxlbmd0aCcsIGxlbmd0aCk7XG4gICAgfVxuXG4gICAgdGhpcy5waXBlKHJlcXVlc3QpO1xuICAgIGlmIChjYikge1xuICAgICAgdmFyIG9uUmVzcG9uc2U7XG5cbiAgICAgIHZhciBjYWxsYmFjayA9IGZ1bmN0aW9uIChlcnJvciwgcmVzcG9uY2UpIHtcbiAgICAgICAgcmVxdWVzdC5yZW1vdmVMaXN0ZW5lcignZXJyb3InLCBjYWxsYmFjayk7XG4gICAgICAgIHJlcXVlc3QucmVtb3ZlTGlzdGVuZXIoJ3Jlc3BvbnNlJywgb25SZXNwb25zZSk7XG5cbiAgICAgICAgcmV0dXJuIGNiLmNhbGwodGhpcywgZXJyb3IsIHJlc3BvbmNlKTtcbiAgICAgIH07XG5cbiAgICAgIG9uUmVzcG9uc2UgPSBjYWxsYmFjay5iaW5kKHRoaXMsIG51bGwpO1xuXG4gICAgICByZXF1ZXN0Lm9uKCdlcnJvcicsIGNhbGxiYWNrKTtcbiAgICAgIHJlcXVlc3Qub24oJ3Jlc3BvbnNlJywgb25SZXNwb25zZSk7XG4gICAgfVxuICB9LmJpbmQodGhpcykpO1xuXG4gIHJldHVybiByZXF1ZXN0O1xufTtcblxuRm9ybURhdGEucHJvdG90eXBlLl9lcnJvciA9IGZ1bmN0aW9uKGVycikge1xuICBpZiAoIXRoaXMuZXJyb3IpIHtcbiAgICB0aGlzLmVycm9yID0gZXJyO1xuICAgIHRoaXMucGF1c2UoKTtcbiAgICB0aGlzLmVtaXQoJ2Vycm9yJywgZXJyKTtcbiAgfVxufTtcblxuRm9ybURhdGEucHJvdG90eXBlLnRvU3RyaW5nID0gZnVuY3Rpb24gKCkge1xuICByZXR1cm4gJ1tvYmplY3QgRm9ybURhdGFdJztcbn07XG5zZXRUb1N0cmluZ1RhZyhGb3JtRGF0YSwgJ0Zvcm1EYXRhJyk7XG4iLCAiaW1wb3J0IEZvcm1EYXRhIGZyb20gJ2Zvcm0tZGF0YSc7XG5cbmV4cG9ydCBkZWZhdWx0IEZvcm1EYXRhO1xuIiwgIid1c2Ugc3RyaWN0JztcblxuaW1wb3J0IHV0aWxzIGZyb20gJy4uL3V0aWxzLmpzJztcbmltcG9ydCBBeGlvc0Vycm9yIGZyb20gJy4uL2NvcmUvQXhpb3NFcnJvci5qcyc7XG4vLyB0ZW1wb3JhcnkgaG90Zml4IHRvIGF2b2lkIGNpcmN1bGFyIHJlZmVyZW5jZXMgdW50aWwgQXhpb3NVUkxTZWFyY2hQYXJhbXMgaXMgcmVmYWN0b3JlZFxuaW1wb3J0IFBsYXRmb3JtRm9ybURhdGEgZnJvbSAnLi4vcGxhdGZvcm0vbm9kZS9jbGFzc2VzL0Zvcm1EYXRhLmpzJztcblxuLyoqXG4gKiBEZXRlcm1pbmVzIGlmIHRoZSBnaXZlbiB0aGluZyBpcyBhIGFycmF5IG9yIGpzIG9iamVjdC5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gdGhpbmcgLSBUaGUgb2JqZWN0IG9yIGFycmF5IHRvIGJlIHZpc2l0ZWQuXG4gKlxuICogQHJldHVybnMge2Jvb2xlYW59XG4gKi9cbmZ1bmN0aW9uIGlzVmlzaXRhYmxlKHRoaW5nKSB7XG4gIHJldHVybiB1dGlscy5pc1BsYWluT2JqZWN0KHRoaW5nKSB8fCB1dGlscy5pc0FycmF5KHRoaW5nKTtcbn1cblxuLyoqXG4gKiBJdCByZW1vdmVzIHRoZSBicmFja2V0cyBmcm9tIHRoZSBlbmQgb2YgYSBzdHJpbmdcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30ga2V5IC0gVGhlIGtleSBvZiB0aGUgcGFyYW1ldGVyLlxuICpcbiAqIEByZXR1cm5zIHtzdHJpbmd9IHRoZSBrZXkgd2l0aG91dCB0aGUgYnJhY2tldHMuXG4gKi9cbmZ1bmN0aW9uIHJlbW92ZUJyYWNrZXRzKGtleSkge1xuICByZXR1cm4gdXRpbHMuZW5kc1dpdGgoa2V5LCAnW10nKSA/IGtleS5zbGljZSgwLCAtMikgOiBrZXk7XG59XG5cbi8qKlxuICogSXQgdGFrZXMgYSBwYXRoLCBhIGtleSwgYW5kIGEgYm9vbGVhbiwgYW5kIHJldHVybnMgYSBzdHJpbmdcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gcGF0aCAtIFRoZSBwYXRoIHRvIHRoZSBjdXJyZW50IGtleS5cbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgLSBUaGUga2V5IG9mIHRoZSBjdXJyZW50IG9iamVjdCBiZWluZyBpdGVyYXRlZCBvdmVyLlxuICogQHBhcmFtIHtzdHJpbmd9IGRvdHMgLSBJZiB0cnVlLCB0aGUga2V5IHdpbGwgYmUgcmVuZGVyZWQgd2l0aCBkb3RzIGluc3RlYWQgb2YgYnJhY2tldHMuXG4gKlxuICogQHJldHVybnMge3N0cmluZ30gVGhlIHBhdGggdG8gdGhlIGN1cnJlbnQga2V5LlxuICovXG5mdW5jdGlvbiByZW5kZXJLZXkocGF0aCwga2V5LCBkb3RzKSB7XG4gIGlmICghcGF0aCkgcmV0dXJuIGtleTtcbiAgcmV0dXJuIHBhdGguY29uY2F0KGtleSkubWFwKGZ1bmN0aW9uIGVhY2godG9rZW4sIGkpIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcGFyYW0tcmVhc3NpZ25cbiAgICB0b2tlbiA9IHJlbW92ZUJyYWNrZXRzKHRva2VuKTtcbiAgICByZXR1cm4gIWRvdHMgJiYgaSA/ICdbJyArIHRva2VuICsgJ10nIDogdG9rZW47XG4gIH0pLmpvaW4oZG90cyA/ICcuJyA6ICcnKTtcbn1cblxuLyoqXG4gKiBJZiB0aGUgYXJyYXkgaXMgYW4gYXJyYXkgYW5kIG5vbmUgb2YgaXRzIGVsZW1lbnRzIGFyZSB2aXNpdGFibGUsIHRoZW4gaXQncyBhIGZsYXQgYXJyYXkuXG4gKlxuICogQHBhcmFtIHtBcnJheTxhbnk+fSBhcnIgLSBUaGUgYXJyYXkgdG8gY2hlY2tcbiAqXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAqL1xuZnVuY3Rpb24gaXNGbGF0QXJyYXkoYXJyKSB7XG4gIHJldHVybiB1dGlscy5pc0FycmF5KGFycikgJiYgIWFyci5zb21lKGlzVmlzaXRhYmxlKTtcbn1cblxuY29uc3QgcHJlZGljYXRlcyA9IHV0aWxzLnRvRmxhdE9iamVjdCh1dGlscywge30sIG51bGwsIGZ1bmN0aW9uIGZpbHRlcihwcm9wKSB7XG4gIHJldHVybiAvXmlzW0EtWl0vLnRlc3QocHJvcCk7XG59KTtcblxuLyoqXG4gKiBDb252ZXJ0IGEgZGF0YSBvYmplY3QgdG8gRm9ybURhdGFcbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gb2JqXG4gKiBAcGFyYW0gez9PYmplY3R9IFtmb3JtRGF0YV1cbiAqIEBwYXJhbSB7P09iamVjdH0gW29wdGlvbnNdXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBbb3B0aW9ucy52aXNpdG9yXVxuICogQHBhcmFtIHtCb29sZWFufSBbb3B0aW9ucy5tZXRhVG9rZW5zID0gdHJ1ZV1cbiAqIEBwYXJhbSB7Qm9vbGVhbn0gW29wdGlvbnMuZG90cyA9IGZhbHNlXVxuICogQHBhcmFtIHs/Qm9vbGVhbn0gW29wdGlvbnMuaW5kZXhlcyA9IGZhbHNlXVxuICpcbiAqIEByZXR1cm5zIHtPYmplY3R9XG4gKiovXG5cbi8qKlxuICogSXQgY29udmVydHMgYW4gb2JqZWN0IGludG8gYSBGb3JtRGF0YSBvYmplY3RcbiAqXG4gKiBAcGFyYW0ge09iamVjdDxhbnksIGFueT59IG9iaiAtIFRoZSBvYmplY3QgdG8gY29udmVydCB0byBmb3JtIGRhdGEuXG4gKiBAcGFyYW0ge3N0cmluZ30gZm9ybURhdGEgLSBUaGUgRm9ybURhdGEgb2JqZWN0IHRvIGFwcGVuZCB0by5cbiAqIEBwYXJhbSB7T2JqZWN0PHN0cmluZywgYW55Pn0gb3B0aW9uc1xuICpcbiAqIEByZXR1cm5zXG4gKi9cbmZ1bmN0aW9uIHRvRm9ybURhdGEob2JqLCBmb3JtRGF0YSwgb3B0aW9ucykge1xuICBpZiAoIXV0aWxzLmlzT2JqZWN0KG9iaikpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCd0YXJnZXQgbXVzdCBiZSBhbiBvYmplY3QnKTtcbiAgfVxuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wYXJhbS1yZWFzc2lnblxuICBmb3JtRGF0YSA9IGZvcm1EYXRhIHx8IG5ldyAoUGxhdGZvcm1Gb3JtRGF0YSB8fCBGb3JtRGF0YSkoKTtcblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcGFyYW0tcmVhc3NpZ25cbiAgb3B0aW9ucyA9IHV0aWxzLnRvRmxhdE9iamVjdChvcHRpb25zLCB7XG4gICAgbWV0YVRva2VuczogdHJ1ZSxcbiAgICBkb3RzOiBmYWxzZSxcbiAgICBpbmRleGVzOiBmYWxzZVxuICB9LCBmYWxzZSwgZnVuY3Rpb24gZGVmaW5lZChvcHRpb24sIHNvdXJjZSkge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1lcS1udWxsLGVxZXFlcVxuICAgIHJldHVybiAhdXRpbHMuaXNVbmRlZmluZWQoc291cmNlW29wdGlvbl0pO1xuICB9KTtcblxuICBjb25zdCBtZXRhVG9rZW5zID0gb3B0aW9ucy5tZXRhVG9rZW5zO1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdXNlLWJlZm9yZS1kZWZpbmVcbiAgY29uc3QgdmlzaXRvciA9IG9wdGlvbnMudmlzaXRvciB8fCBkZWZhdWx0VmlzaXRvcjtcbiAgY29uc3QgZG90cyA9IG9wdGlvbnMuZG90cztcbiAgY29uc3QgaW5kZXhlcyA9IG9wdGlvbnMuaW5kZXhlcztcbiAgY29uc3QgX0Jsb2IgPSBvcHRpb25zLkJsb2IgfHwgdHlwZW9mIEJsb2IgIT09ICd1bmRlZmluZWQnICYmIEJsb2I7XG4gIGNvbnN0IHVzZUJsb2IgPSBfQmxvYiAmJiB1dGlscy5pc1NwZWNDb21wbGlhbnRGb3JtKGZvcm1EYXRhKTtcblxuICBpZiAoIXV0aWxzLmlzRnVuY3Rpb24odmlzaXRvcikpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCd2aXNpdG9yIG11c3QgYmUgYSBmdW5jdGlvbicpO1xuICB9XG5cbiAgZnVuY3Rpb24gY29udmVydFZhbHVlKHZhbHVlKSB7XG4gICAgaWYgKHZhbHVlID09PSBudWxsKSByZXR1cm4gJyc7XG5cbiAgICBpZiAodXRpbHMuaXNEYXRlKHZhbHVlKSkge1xuICAgICAgcmV0dXJuIHZhbHVlLnRvSVNPU3RyaW5nKCk7XG4gICAgfVxuXG4gICAgaWYgKCF1c2VCbG9iICYmIHV0aWxzLmlzQmxvYih2YWx1ZSkpIHtcbiAgICAgIHRocm93IG5ldyBBeGlvc0Vycm9yKCdCbG9iIGlzIG5vdCBzdXBwb3J0ZWQuIFVzZSBhIEJ1ZmZlciBpbnN0ZWFkLicpO1xuICAgIH1cblxuICAgIGlmICh1dGlscy5pc0FycmF5QnVmZmVyKHZhbHVlKSB8fCB1dGlscy5pc1R5cGVkQXJyYXkodmFsdWUpKSB7XG4gICAgICByZXR1cm4gdXNlQmxvYiAmJiB0eXBlb2YgQmxvYiA9PT0gJ2Z1bmN0aW9uJyA/IG5ldyBCbG9iKFt2YWx1ZV0pIDogQnVmZmVyLmZyb20odmFsdWUpO1xuICAgIH1cblxuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZWZhdWx0IHZpc2l0b3IuXG4gICAqXG4gICAqIEBwYXJhbSB7Kn0gdmFsdWVcbiAgICogQHBhcmFtIHtTdHJpbmd8TnVtYmVyfSBrZXlcbiAgICogQHBhcmFtIHtBcnJheTxTdHJpbmd8TnVtYmVyPn0gcGF0aFxuICAgKiBAdGhpcyB7Rm9ybURhdGF9XG4gICAqXG4gICAqIEByZXR1cm5zIHtib29sZWFufSByZXR1cm4gdHJ1ZSB0byB2aXNpdCB0aGUgZWFjaCBwcm9wIG9mIHRoZSB2YWx1ZSByZWN1cnNpdmVseVxuICAgKi9cbiAgZnVuY3Rpb24gZGVmYXVsdFZpc2l0b3IodmFsdWUsIGtleSwgcGF0aCkge1xuICAgIGxldCBhcnIgPSB2YWx1ZTtcblxuICAgIGlmICh2YWx1ZSAmJiAhcGF0aCAmJiB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnKSB7XG4gICAgICBpZiAodXRpbHMuZW5kc1dpdGgoa2V5LCAne30nKSkge1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcGFyYW0tcmVhc3NpZ25cbiAgICAgICAga2V5ID0gbWV0YVRva2VucyA/IGtleSA6IGtleS5zbGljZSgwLCAtMik7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wYXJhbS1yZWFzc2lnblxuICAgICAgICB2YWx1ZSA9IEpTT04uc3RyaW5naWZ5KHZhbHVlKTtcbiAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgICh1dGlscy5pc0FycmF5KHZhbHVlKSAmJiBpc0ZsYXRBcnJheSh2YWx1ZSkpIHx8XG4gICAgICAgICgodXRpbHMuaXNGaWxlTGlzdCh2YWx1ZSkgfHwgdXRpbHMuZW5kc1dpdGgoa2V5LCAnW10nKSkgJiYgKGFyciA9IHV0aWxzLnRvQXJyYXkodmFsdWUpKVxuICAgICAgICApKSB7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wYXJhbS1yZWFzc2lnblxuICAgICAgICBrZXkgPSByZW1vdmVCcmFja2V0cyhrZXkpO1xuXG4gICAgICAgIGFyci5mb3JFYWNoKGZ1bmN0aW9uIGVhY2goZWwsIGluZGV4KSB7XG4gICAgICAgICAgISh1dGlscy5pc1VuZGVmaW5lZChlbCkgfHwgZWwgPT09IG51bGwpICYmIGZvcm1EYXRhLmFwcGVuZChcbiAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1uZXN0ZWQtdGVybmFyeVxuICAgICAgICAgICAgaW5kZXhlcyA9PT0gdHJ1ZSA/IHJlbmRlcktleShba2V5XSwgaW5kZXgsIGRvdHMpIDogKGluZGV4ZXMgPT09IG51bGwgPyBrZXkgOiBrZXkgKyAnW10nKSxcbiAgICAgICAgICAgIGNvbnZlcnRWYWx1ZShlbClcbiAgICAgICAgICApO1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChpc1Zpc2l0YWJsZSh2YWx1ZSkpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIGZvcm1EYXRhLmFwcGVuZChyZW5kZXJLZXkocGF0aCwga2V5LCBkb3RzKSwgY29udmVydFZhbHVlKHZhbHVlKSk7XG5cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBjb25zdCBzdGFjayA9IFtdO1xuXG4gIGNvbnN0IGV4cG9zZWRIZWxwZXJzID0gT2JqZWN0LmFzc2lnbihwcmVkaWNhdGVzLCB7XG4gICAgZGVmYXVsdFZpc2l0b3IsXG4gICAgY29udmVydFZhbHVlLFxuICAgIGlzVmlzaXRhYmxlXG4gIH0pO1xuXG4gIGZ1bmN0aW9uIGJ1aWxkKHZhbHVlLCBwYXRoKSB7XG4gICAgaWYgKHV0aWxzLmlzVW5kZWZpbmVkKHZhbHVlKSkgcmV0dXJuO1xuXG4gICAgaWYgKHN0YWNrLmluZGV4T2YodmFsdWUpICE9PSAtMSkge1xuICAgICAgdGhyb3cgRXJyb3IoJ0NpcmN1bGFyIHJlZmVyZW5jZSBkZXRlY3RlZCBpbiAnICsgcGF0aC5qb2luKCcuJykpO1xuICAgIH1cblxuICAgIHN0YWNrLnB1c2godmFsdWUpO1xuXG4gICAgdXRpbHMuZm9yRWFjaCh2YWx1ZSwgZnVuY3Rpb24gZWFjaChlbCwga2V5KSB7XG4gICAgICBjb25zdCByZXN1bHQgPSAhKHV0aWxzLmlzVW5kZWZpbmVkKGVsKSB8fCBlbCA9PT0gbnVsbCkgJiYgdmlzaXRvci5jYWxsKFxuICAgICAgICBmb3JtRGF0YSwgZWwsIHV0aWxzLmlzU3RyaW5nKGtleSkgPyBrZXkudHJpbSgpIDoga2V5LCBwYXRoLCBleHBvc2VkSGVscGVyc1xuICAgICAgKTtcblxuICAgICAgaWYgKHJlc3VsdCA9PT0gdHJ1ZSkge1xuICAgICAgICBidWlsZChlbCwgcGF0aCA/IHBhdGguY29uY2F0KGtleSkgOiBba2V5XSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBzdGFjay5wb3AoKTtcbiAgfVxuXG4gIGlmICghdXRpbHMuaXNPYmplY3Qob2JqKSkge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ2RhdGEgbXVzdCBiZSBhbiBvYmplY3QnKTtcbiAgfVxuXG4gIGJ1aWxkKG9iaik7XG5cbiAgcmV0dXJuIGZvcm1EYXRhO1xufVxuXG5leHBvcnQgZGVmYXVsdCB0b0Zvcm1EYXRhO1xuIiwgIid1c2Ugc3RyaWN0JztcblxuaW1wb3J0IHRvRm9ybURhdGEgZnJvbSAnLi90b0Zvcm1EYXRhLmpzJztcblxuLyoqXG4gKiBJdCBlbmNvZGVzIGEgc3RyaW5nIGJ5IHJlcGxhY2luZyBhbGwgY2hhcmFjdGVycyB0aGF0IGFyZSBub3QgaW4gdGhlIHVucmVzZXJ2ZWQgc2V0IHdpdGhcbiAqIHRoZWlyIHBlcmNlbnQtZW5jb2RlZCBlcXVpdmFsZW50c1xuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBzdHIgLSBUaGUgc3RyaW5nIHRvIGVuY29kZS5cbiAqXG4gKiBAcmV0dXJucyB7c3RyaW5nfSBUaGUgZW5jb2RlZCBzdHJpbmcuXG4gKi9cbmZ1bmN0aW9uIGVuY29kZShzdHIpIHtcbiAgY29uc3QgY2hhck1hcCA9IHtcbiAgICAnISc6ICclMjEnLFxuICAgIFwiJ1wiOiAnJTI3JyxcbiAgICAnKCc6ICclMjgnLFxuICAgICcpJzogJyUyOScsXG4gICAgJ34nOiAnJTdFJyxcbiAgICAnJTIwJzogJysnLFxuICAgICclMDAnOiAnXFx4MDAnXG4gIH07XG4gIHJldHVybiBlbmNvZGVVUklDb21wb25lbnQoc3RyKS5yZXBsYWNlKC9bIScoKX5dfCUyMHwlMDAvZywgZnVuY3Rpb24gcmVwbGFjZXIobWF0Y2gpIHtcbiAgICByZXR1cm4gY2hhck1hcFttYXRjaF07XG4gIH0pO1xufVxuXG4vKipcbiAqIEl0IHRha2VzIGEgcGFyYW1zIG9iamVjdCBhbmQgY29udmVydHMgaXQgdG8gYSBGb3JtRGF0YSBvYmplY3RcbiAqXG4gKiBAcGFyYW0ge09iamVjdDxzdHJpbmcsIGFueT59IHBhcmFtcyAtIFRoZSBwYXJhbWV0ZXJzIHRvIGJlIGNvbnZlcnRlZCB0byBhIEZvcm1EYXRhIG9iamVjdC5cbiAqIEBwYXJhbSB7T2JqZWN0PHN0cmluZywgYW55Pn0gb3B0aW9ucyAtIFRoZSBvcHRpb25zIG9iamVjdCBwYXNzZWQgdG8gdGhlIEF4aW9zIGNvbnN0cnVjdG9yLlxuICpcbiAqIEByZXR1cm5zIHt2b2lkfVxuICovXG5mdW5jdGlvbiBBeGlvc1VSTFNlYXJjaFBhcmFtcyhwYXJhbXMsIG9wdGlvbnMpIHtcbiAgdGhpcy5fcGFpcnMgPSBbXTtcblxuICBwYXJhbXMgJiYgdG9Gb3JtRGF0YShwYXJhbXMsIHRoaXMsIG9wdGlvbnMpO1xufVxuXG5jb25zdCBwcm90b3R5cGUgPSBBeGlvc1VSTFNlYXJjaFBhcmFtcy5wcm90b3R5cGU7XG5cbnByb3RvdHlwZS5hcHBlbmQgPSBmdW5jdGlvbiBhcHBlbmQobmFtZSwgdmFsdWUpIHtcbiAgdGhpcy5fcGFpcnMucHVzaChbbmFtZSwgdmFsdWVdKTtcbn07XG5cbnByb3RvdHlwZS50b1N0cmluZyA9IGZ1bmN0aW9uIHRvU3RyaW5nKGVuY29kZXIpIHtcbiAgY29uc3QgX2VuY29kZSA9IGVuY29kZXIgPyBmdW5jdGlvbih2YWx1ZSkge1xuICAgIHJldHVybiBlbmNvZGVyLmNhbGwodGhpcywgdmFsdWUsIGVuY29kZSk7XG4gIH0gOiBlbmNvZGU7XG5cbiAgcmV0dXJuIHRoaXMuX3BhaXJzLm1hcChmdW5jdGlvbiBlYWNoKHBhaXIpIHtcbiAgICByZXR1cm4gX2VuY29kZShwYWlyWzBdKSArICc9JyArIF9lbmNvZGUocGFpclsxXSk7XG4gIH0sICcnKS5qb2luKCcmJyk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBBeGlvc1VSTFNlYXJjaFBhcmFtcztcbiIsICIndXNlIHN0cmljdCc7XG5cbmltcG9ydCB1dGlscyBmcm9tICcuLi91dGlscy5qcyc7XG5pbXBvcnQgQXhpb3NVUkxTZWFyY2hQYXJhbXMgZnJvbSAnLi4vaGVscGVycy9BeGlvc1VSTFNlYXJjaFBhcmFtcy5qcyc7XG5cbi8qKlxuICogSXQgcmVwbGFjZXMgYWxsIGluc3RhbmNlcyBvZiB0aGUgY2hhcmFjdGVycyBgOmAsIGAkYCwgYCxgLCBgK2AsIGBbYCwgYW5kIGBdYCB3aXRoIHRoZWlyXG4gKiBVUkkgZW5jb2RlZCBjb3VudGVycGFydHNcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gdmFsIFRoZSB2YWx1ZSB0byBiZSBlbmNvZGVkLlxuICpcbiAqIEByZXR1cm5zIHtzdHJpbmd9IFRoZSBlbmNvZGVkIHZhbHVlLlxuICovXG5mdW5jdGlvbiBlbmNvZGUodmFsKSB7XG4gIHJldHVybiBlbmNvZGVVUklDb21wb25lbnQodmFsKS5cbiAgICByZXBsYWNlKC8lM0EvZ2ksICc6JykuXG4gICAgcmVwbGFjZSgvJTI0L2csICckJykuXG4gICAgcmVwbGFjZSgvJTJDL2dpLCAnLCcpLlxuICAgIHJlcGxhY2UoLyUyMC9nLCAnKycpLlxuICAgIHJlcGxhY2UoLyU1Qi9naSwgJ1snKS5cbiAgICByZXBsYWNlKC8lNUQvZ2ksICddJyk7XG59XG5cbi8qKlxuICogQnVpbGQgYSBVUkwgYnkgYXBwZW5kaW5nIHBhcmFtcyB0byB0aGUgZW5kXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IHVybCBUaGUgYmFzZSBvZiB0aGUgdXJsIChlLmcuLCBodHRwOi8vd3d3Lmdvb2dsZS5jb20pXG4gKiBAcGFyYW0ge29iamVjdH0gW3BhcmFtc10gVGhlIHBhcmFtcyB0byBiZSBhcHBlbmRlZFxuICogQHBhcmFtIHs/KG9iamVjdHxGdW5jdGlvbil9IG9wdGlvbnNcbiAqXG4gKiBAcmV0dXJucyB7c3RyaW5nfSBUaGUgZm9ybWF0dGVkIHVybFxuICovXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBidWlsZFVSTCh1cmwsIHBhcmFtcywgb3B0aW9ucykge1xuICAvKmVzbGludCBuby1wYXJhbS1yZWFzc2lnbjowKi9cbiAgaWYgKCFwYXJhbXMpIHtcbiAgICByZXR1cm4gdXJsO1xuICB9XG4gIFxuICBjb25zdCBfZW5jb2RlID0gb3B0aW9ucyAmJiBvcHRpb25zLmVuY29kZSB8fCBlbmNvZGU7XG5cbiAgaWYgKHV0aWxzLmlzRnVuY3Rpb24ob3B0aW9ucykpIHtcbiAgICBvcHRpb25zID0ge1xuICAgICAgc2VyaWFsaXplOiBvcHRpb25zXG4gICAgfTtcbiAgfSBcblxuICBjb25zdCBzZXJpYWxpemVGbiA9IG9wdGlvbnMgJiYgb3B0aW9ucy5zZXJpYWxpemU7XG5cbiAgbGV0IHNlcmlhbGl6ZWRQYXJhbXM7XG5cbiAgaWYgKHNlcmlhbGl6ZUZuKSB7XG4gICAgc2VyaWFsaXplZFBhcmFtcyA9IHNlcmlhbGl6ZUZuKHBhcmFtcywgb3B0aW9ucyk7XG4gIH0gZWxzZSB7XG4gICAgc2VyaWFsaXplZFBhcmFtcyA9IHV0aWxzLmlzVVJMU2VhcmNoUGFyYW1zKHBhcmFtcykgP1xuICAgICAgcGFyYW1zLnRvU3RyaW5nKCkgOlxuICAgICAgbmV3IEF4aW9zVVJMU2VhcmNoUGFyYW1zKHBhcmFtcywgb3B0aW9ucykudG9TdHJpbmcoX2VuY29kZSk7XG4gIH1cblxuICBpZiAoc2VyaWFsaXplZFBhcmFtcykge1xuICAgIGNvbnN0IGhhc2htYXJrSW5kZXggPSB1cmwuaW5kZXhPZihcIiNcIik7XG5cbiAgICBpZiAoaGFzaG1hcmtJbmRleCAhPT0gLTEpIHtcbiAgICAgIHVybCA9IHVybC5zbGljZSgwLCBoYXNobWFya0luZGV4KTtcbiAgICB9XG4gICAgdXJsICs9ICh1cmwuaW5kZXhPZignPycpID09PSAtMSA/ICc/JyA6ICcmJykgKyBzZXJpYWxpemVkUGFyYW1zO1xuICB9XG5cbiAgcmV0dXJuIHVybDtcbn1cbiIsICIndXNlIHN0cmljdCc7XG5cbmltcG9ydCB1dGlscyBmcm9tICcuLy4uL3V0aWxzLmpzJztcblxuY2xhc3MgSW50ZXJjZXB0b3JNYW5hZ2VyIHtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5oYW5kbGVycyA9IFtdO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZCBhIG5ldyBpbnRlcmNlcHRvciB0byB0aGUgc3RhY2tcbiAgICpcbiAgICogQHBhcmFtIHtGdW5jdGlvbn0gZnVsZmlsbGVkIFRoZSBmdW5jdGlvbiB0byBoYW5kbGUgYHRoZW5gIGZvciBhIGBQcm9taXNlYFxuICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSByZWplY3RlZCBUaGUgZnVuY3Rpb24gdG8gaGFuZGxlIGByZWplY3RgIGZvciBhIGBQcm9taXNlYFxuICAgKlxuICAgKiBAcmV0dXJuIHtOdW1iZXJ9IEFuIElEIHVzZWQgdG8gcmVtb3ZlIGludGVyY2VwdG9yIGxhdGVyXG4gICAqL1xuICB1c2UoZnVsZmlsbGVkLCByZWplY3RlZCwgb3B0aW9ucykge1xuICAgIHRoaXMuaGFuZGxlcnMucHVzaCh7XG4gICAgICBmdWxmaWxsZWQsXG4gICAgICByZWplY3RlZCxcbiAgICAgIHN5bmNocm9ub3VzOiBvcHRpb25zID8gb3B0aW9ucy5zeW5jaHJvbm91cyA6IGZhbHNlLFxuICAgICAgcnVuV2hlbjogb3B0aW9ucyA/IG9wdGlvbnMucnVuV2hlbiA6IG51bGxcbiAgICB9KTtcbiAgICByZXR1cm4gdGhpcy5oYW5kbGVycy5sZW5ndGggLSAxO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZSBhbiBpbnRlcmNlcHRvciBmcm9tIHRoZSBzdGFja1xuICAgKlxuICAgKiBAcGFyYW0ge051bWJlcn0gaWQgVGhlIElEIHRoYXQgd2FzIHJldHVybmVkIGJ5IGB1c2VgXG4gICAqXG4gICAqIEByZXR1cm5zIHtCb29sZWFufSBgdHJ1ZWAgaWYgdGhlIGludGVyY2VwdG9yIHdhcyByZW1vdmVkLCBgZmFsc2VgIG90aGVyd2lzZVxuICAgKi9cbiAgZWplY3QoaWQpIHtcbiAgICBpZiAodGhpcy5oYW5kbGVyc1tpZF0pIHtcbiAgICAgIHRoaXMuaGFuZGxlcnNbaWRdID0gbnVsbDtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ2xlYXIgYWxsIGludGVyY2VwdG9ycyBmcm9tIHRoZSBzdGFja1xuICAgKlxuICAgKiBAcmV0dXJucyB7dm9pZH1cbiAgICovXG4gIGNsZWFyKCkge1xuICAgIGlmICh0aGlzLmhhbmRsZXJzKSB7XG4gICAgICB0aGlzLmhhbmRsZXJzID0gW107XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEl0ZXJhdGUgb3ZlciBhbGwgdGhlIHJlZ2lzdGVyZWQgaW50ZXJjZXB0b3JzXG4gICAqXG4gICAqIFRoaXMgbWV0aG9kIGlzIHBhcnRpY3VsYXJseSB1c2VmdWwgZm9yIHNraXBwaW5nIG92ZXIgYW55XG4gICAqIGludGVyY2VwdG9ycyB0aGF0IG1heSBoYXZlIGJlY29tZSBgbnVsbGAgY2FsbGluZyBgZWplY3RgLlxuICAgKlxuICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBmbiBUaGUgZnVuY3Rpb24gdG8gY2FsbCBmb3IgZWFjaCBpbnRlcmNlcHRvclxuICAgKlxuICAgKiBAcmV0dXJucyB7dm9pZH1cbiAgICovXG4gIGZvckVhY2goZm4pIHtcbiAgICB1dGlscy5mb3JFYWNoKHRoaXMuaGFuZGxlcnMsIGZ1bmN0aW9uIGZvckVhY2hIYW5kbGVyKGgpIHtcbiAgICAgIGlmIChoICE9PSBudWxsKSB7XG4gICAgICAgIGZuKGgpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IEludGVyY2VwdG9yTWFuYWdlcjtcbiIsICIndXNlIHN0cmljdCc7XG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgc2lsZW50SlNPTlBhcnNpbmc6IHRydWUsXG4gIGZvcmNlZEpTT05QYXJzaW5nOiB0cnVlLFxuICBjbGFyaWZ5VGltZW91dEVycm9yOiBmYWxzZVxufTtcbiIsICIndXNlIHN0cmljdCc7XG5cbmltcG9ydCB1cmwgZnJvbSAndXJsJztcbmV4cG9ydCBkZWZhdWx0IHVybC5VUkxTZWFyY2hQYXJhbXM7XG4iLCAiaW1wb3J0IGNyeXB0byBmcm9tICdjcnlwdG8nO1xuaW1wb3J0IFVSTFNlYXJjaFBhcmFtcyBmcm9tICcuL2NsYXNzZXMvVVJMU2VhcmNoUGFyYW1zLmpzJ1xuaW1wb3J0IEZvcm1EYXRhIGZyb20gJy4vY2xhc3Nlcy9Gb3JtRGF0YS5qcydcblxuY29uc3QgQUxQSEEgPSAnYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXonXG5cbmNvbnN0IERJR0lUID0gJzAxMjM0NTY3ODknO1xuXG5jb25zdCBBTFBIQUJFVCA9IHtcbiAgRElHSVQsXG4gIEFMUEhBLFxuICBBTFBIQV9ESUdJVDogQUxQSEEgKyBBTFBIQS50b1VwcGVyQ2FzZSgpICsgRElHSVRcbn1cblxuY29uc3QgZ2VuZXJhdGVTdHJpbmcgPSAoc2l6ZSA9IDE2LCBhbHBoYWJldCA9IEFMUEhBQkVULkFMUEhBX0RJR0lUKSA9PiB7XG4gIGxldCBzdHIgPSAnJztcbiAgY29uc3Qge2xlbmd0aH0gPSBhbHBoYWJldDtcbiAgY29uc3QgcmFuZG9tVmFsdWVzID0gbmV3IFVpbnQzMkFycmF5KHNpemUpO1xuICBjcnlwdG8ucmFuZG9tRmlsbFN5bmMocmFuZG9tVmFsdWVzKTtcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBzaXplOyBpKyspIHtcbiAgICBzdHIgKz0gYWxwaGFiZXRbcmFuZG9tVmFsdWVzW2ldICUgbGVuZ3RoXTtcbiAgfVxuXG4gIHJldHVybiBzdHI7XG59XG5cblxuZXhwb3J0IGRlZmF1bHQge1xuICBpc05vZGU6IHRydWUsXG4gIGNsYXNzZXM6IHtcbiAgICBVUkxTZWFyY2hQYXJhbXMsXG4gICAgRm9ybURhdGEsXG4gICAgQmxvYjogdHlwZW9mIEJsb2IgIT09ICd1bmRlZmluZWQnICYmIEJsb2IgfHwgbnVsbFxuICB9LFxuICBBTFBIQUJFVCxcbiAgZ2VuZXJhdGVTdHJpbmcsXG4gIHByb3RvY29sczogWyAnaHR0cCcsICdodHRwcycsICdmaWxlJywgJ2RhdGEnIF1cbn07XG4iLCAiY29uc3QgaGFzQnJvd3NlckVudiA9IHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnICYmIHR5cGVvZiBkb2N1bWVudCAhPT0gJ3VuZGVmaW5lZCc7XG5cbmNvbnN0IF9uYXZpZ2F0b3IgPSB0eXBlb2YgbmF2aWdhdG9yID09PSAnb2JqZWN0JyAmJiBuYXZpZ2F0b3IgfHwgdW5kZWZpbmVkO1xuXG4vKipcbiAqIERldGVybWluZSBpZiB3ZSdyZSBydW5uaW5nIGluIGEgc3RhbmRhcmQgYnJvd3NlciBlbnZpcm9ubWVudFxuICpcbiAqIFRoaXMgYWxsb3dzIGF4aW9zIHRvIHJ1biBpbiBhIHdlYiB3b3JrZXIsIGFuZCByZWFjdC1uYXRpdmUuXG4gKiBCb3RoIGVudmlyb25tZW50cyBzdXBwb3J0IFhNTEh0dHBSZXF1ZXN0LCBidXQgbm90IGZ1bGx5IHN0YW5kYXJkIGdsb2JhbHMuXG4gKlxuICogd2ViIHdvcmtlcnM6XG4gKiAgdHlwZW9mIHdpbmRvdyAtPiB1bmRlZmluZWRcbiAqICB0eXBlb2YgZG9jdW1lbnQgLT4gdW5kZWZpbmVkXG4gKlxuICogcmVhY3QtbmF0aXZlOlxuICogIG5hdmlnYXRvci5wcm9kdWN0IC0+ICdSZWFjdE5hdGl2ZSdcbiAqIG5hdGl2ZXNjcmlwdFxuICogIG5hdmlnYXRvci5wcm9kdWN0IC0+ICdOYXRpdmVTY3JpcHQnIG9yICdOUydcbiAqXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAqL1xuY29uc3QgaGFzU3RhbmRhcmRCcm93c2VyRW52ID0gaGFzQnJvd3NlckVudiAmJlxuICAoIV9uYXZpZ2F0b3IgfHwgWydSZWFjdE5hdGl2ZScsICdOYXRpdmVTY3JpcHQnLCAnTlMnXS5pbmRleE9mKF9uYXZpZ2F0b3IucHJvZHVjdCkgPCAwKTtcblxuLyoqXG4gKiBEZXRlcm1pbmUgaWYgd2UncmUgcnVubmluZyBpbiBhIHN0YW5kYXJkIGJyb3dzZXIgd2ViV29ya2VyIGVudmlyb25tZW50XG4gKlxuICogQWx0aG91Z2ggdGhlIGBpc1N0YW5kYXJkQnJvd3NlckVudmAgbWV0aG9kIGluZGljYXRlcyB0aGF0XG4gKiBgYWxsb3dzIGF4aW9zIHRvIHJ1biBpbiBhIHdlYiB3b3JrZXJgLCB0aGUgV2ViV29ya2VyIHdpbGwgc3RpbGwgYmVcbiAqIGZpbHRlcmVkIG91dCBkdWUgdG8gaXRzIGp1ZGdtZW50IHN0YW5kYXJkXG4gKiBgdHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcgJiYgdHlwZW9mIGRvY3VtZW50ICE9PSAndW5kZWZpbmVkJ2AuXG4gKiBUaGlzIGxlYWRzIHRvIGEgcHJvYmxlbSB3aGVuIGF4aW9zIHBvc3QgYEZvcm1EYXRhYCBpbiB3ZWJXb3JrZXJcbiAqL1xuY29uc3QgaGFzU3RhbmRhcmRCcm93c2VyV2ViV29ya2VyRW52ID0gKCgpID0+IHtcbiAgcmV0dXJuIChcbiAgICB0eXBlb2YgV29ya2VyR2xvYmFsU2NvcGUgIT09ICd1bmRlZmluZWQnICYmXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVuZGVmXG4gICAgc2VsZiBpbnN0YW5jZW9mIFdvcmtlckdsb2JhbFNjb3BlICYmXG4gICAgdHlwZW9mIHNlbGYuaW1wb3J0U2NyaXB0cyA9PT0gJ2Z1bmN0aW9uJ1xuICApO1xufSkoKTtcblxuY29uc3Qgb3JpZ2luID0gaGFzQnJvd3NlckVudiAmJiB3aW5kb3cubG9jYXRpb24uaHJlZiB8fCAnaHR0cDovL2xvY2FsaG9zdCc7XG5cbmV4cG9ydCB7XG4gIGhhc0Jyb3dzZXJFbnYsXG4gIGhhc1N0YW5kYXJkQnJvd3NlcldlYldvcmtlckVudixcbiAgaGFzU3RhbmRhcmRCcm93c2VyRW52LFxuICBfbmF2aWdhdG9yIGFzIG5hdmlnYXRvcixcbiAgb3JpZ2luXG59XG4iLCAiaW1wb3J0IHBsYXRmb3JtIGZyb20gJy4vbm9kZS9pbmRleC5qcyc7XG5pbXBvcnQgKiBhcyB1dGlscyBmcm9tICcuL2NvbW1vbi91dGlscy5qcyc7XG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgLi4udXRpbHMsXG4gIC4uLnBsYXRmb3JtXG59XG4iLCAiJ3VzZSBzdHJpY3QnO1xuXG5pbXBvcnQgdXRpbHMgZnJvbSAnLi4vdXRpbHMuanMnO1xuaW1wb3J0IHRvRm9ybURhdGEgZnJvbSAnLi90b0Zvcm1EYXRhLmpzJztcbmltcG9ydCBwbGF0Zm9ybSBmcm9tICcuLi9wbGF0Zm9ybS9pbmRleC5qcyc7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHRvVVJMRW5jb2RlZEZvcm0oZGF0YSwgb3B0aW9ucykge1xuICByZXR1cm4gdG9Gb3JtRGF0YShkYXRhLCBuZXcgcGxhdGZvcm0uY2xhc3Nlcy5VUkxTZWFyY2hQYXJhbXMoKSwgT2JqZWN0LmFzc2lnbih7XG4gICAgdmlzaXRvcjogZnVuY3Rpb24odmFsdWUsIGtleSwgcGF0aCwgaGVscGVycykge1xuICAgICAgaWYgKHBsYXRmb3JtLmlzTm9kZSAmJiB1dGlscy5pc0J1ZmZlcih2YWx1ZSkpIHtcbiAgICAgICAgdGhpcy5hcHBlbmQoa2V5LCB2YWx1ZS50b1N0cmluZygnYmFzZTY0JykpO1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBoZWxwZXJzLmRlZmF1bHRWaXNpdG9yLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gICAgfVxuICB9LCBvcHRpb25zKSk7XG59XG4iLCAiJ3VzZSBzdHJpY3QnO1xuXG5pbXBvcnQgdXRpbHMgZnJvbSAnLi4vdXRpbHMuanMnO1xuXG4vKipcbiAqIEl0IHRha2VzIGEgc3RyaW5nIGxpa2UgYGZvb1t4XVt5XVt6XWAgYW5kIHJldHVybnMgYW4gYXJyYXkgbGlrZSBgWydmb28nLCAneCcsICd5JywgJ3onXVxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBuYW1lIC0gVGhlIG5hbWUgb2YgdGhlIHByb3BlcnR5IHRvIGdldC5cbiAqXG4gKiBAcmV0dXJucyBBbiBhcnJheSBvZiBzdHJpbmdzLlxuICovXG5mdW5jdGlvbiBwYXJzZVByb3BQYXRoKG5hbWUpIHtcbiAgLy8gZm9vW3hdW3ldW3pdXG4gIC8vIGZvby54LnkuelxuICAvLyBmb28teC15LXpcbiAgLy8gZm9vIHggeSB6XG4gIHJldHVybiB1dGlscy5tYXRjaEFsbCgvXFx3K3xcXFsoXFx3KildL2csIG5hbWUpLm1hcChtYXRjaCA9PiB7XG4gICAgcmV0dXJuIG1hdGNoWzBdID09PSAnW10nID8gJycgOiBtYXRjaFsxXSB8fCBtYXRjaFswXTtcbiAgfSk7XG59XG5cbi8qKlxuICogQ29udmVydCBhbiBhcnJheSB0byBhbiBvYmplY3QuXG4gKlxuICogQHBhcmFtIHtBcnJheTxhbnk+fSBhcnIgLSBUaGUgYXJyYXkgdG8gY29udmVydCB0byBhbiBvYmplY3QuXG4gKlxuICogQHJldHVybnMgQW4gb2JqZWN0IHdpdGggdGhlIHNhbWUga2V5cyBhbmQgdmFsdWVzIGFzIHRoZSBhcnJheS5cbiAqL1xuZnVuY3Rpb24gYXJyYXlUb09iamVjdChhcnIpIHtcbiAgY29uc3Qgb2JqID0ge307XG4gIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyhhcnIpO1xuICBsZXQgaTtcbiAgY29uc3QgbGVuID0ga2V5cy5sZW5ndGg7XG4gIGxldCBrZXk7XG4gIGZvciAoaSA9IDA7IGkgPCBsZW47IGkrKykge1xuICAgIGtleSA9IGtleXNbaV07XG4gICAgb2JqW2tleV0gPSBhcnJba2V5XTtcbiAgfVxuICByZXR1cm4gb2JqO1xufVxuXG4vKipcbiAqIEl0IHRha2VzIGEgRm9ybURhdGEgb2JqZWN0IGFuZCByZXR1cm5zIGEgSmF2YVNjcmlwdCBvYmplY3RcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gZm9ybURhdGEgVGhlIEZvcm1EYXRhIG9iamVjdCB0byBjb252ZXJ0IHRvIEpTT04uXG4gKlxuICogQHJldHVybnMge09iamVjdDxzdHJpbmcsIGFueT4gfCBudWxsfSBUaGUgY29udmVydGVkIG9iamVjdC5cbiAqL1xuZnVuY3Rpb24gZm9ybURhdGFUb0pTT04oZm9ybURhdGEpIHtcbiAgZnVuY3Rpb24gYnVpbGRQYXRoKHBhdGgsIHZhbHVlLCB0YXJnZXQsIGluZGV4KSB7XG4gICAgbGV0IG5hbWUgPSBwYXRoW2luZGV4KytdO1xuXG4gICAgaWYgKG5hbWUgPT09ICdfX3Byb3RvX18nKSByZXR1cm4gdHJ1ZTtcblxuICAgIGNvbnN0IGlzTnVtZXJpY0tleSA9IE51bWJlci5pc0Zpbml0ZSgrbmFtZSk7XG4gICAgY29uc3QgaXNMYXN0ID0gaW5kZXggPj0gcGF0aC5sZW5ndGg7XG4gICAgbmFtZSA9ICFuYW1lICYmIHV0aWxzLmlzQXJyYXkodGFyZ2V0KSA/IHRhcmdldC5sZW5ndGggOiBuYW1lO1xuXG4gICAgaWYgKGlzTGFzdCkge1xuICAgICAgaWYgKHV0aWxzLmhhc093blByb3AodGFyZ2V0LCBuYW1lKSkge1xuICAgICAgICB0YXJnZXRbbmFtZV0gPSBbdGFyZ2V0W25hbWVdLCB2YWx1ZV07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0YXJnZXRbbmFtZV0gPSB2YWx1ZTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuICFpc051bWVyaWNLZXk7XG4gICAgfVxuXG4gICAgaWYgKCF0YXJnZXRbbmFtZV0gfHwgIXV0aWxzLmlzT2JqZWN0KHRhcmdldFtuYW1lXSkpIHtcbiAgICAgIHRhcmdldFtuYW1lXSA9IFtdO1xuICAgIH1cblxuICAgIGNvbnN0IHJlc3VsdCA9IGJ1aWxkUGF0aChwYXRoLCB2YWx1ZSwgdGFyZ2V0W25hbWVdLCBpbmRleCk7XG5cbiAgICBpZiAocmVzdWx0ICYmIHV0aWxzLmlzQXJyYXkodGFyZ2V0W25hbWVdKSkge1xuICAgICAgdGFyZ2V0W25hbWVdID0gYXJyYXlUb09iamVjdCh0YXJnZXRbbmFtZV0pO1xuICAgIH1cblxuICAgIHJldHVybiAhaXNOdW1lcmljS2V5O1xuICB9XG5cbiAgaWYgKHV0aWxzLmlzRm9ybURhdGEoZm9ybURhdGEpICYmIHV0aWxzLmlzRnVuY3Rpb24oZm9ybURhdGEuZW50cmllcykpIHtcbiAgICBjb25zdCBvYmogPSB7fTtcblxuICAgIHV0aWxzLmZvckVhY2hFbnRyeShmb3JtRGF0YSwgKG5hbWUsIHZhbHVlKSA9PiB7XG4gICAgICBidWlsZFBhdGgocGFyc2VQcm9wUGF0aChuYW1lKSwgdmFsdWUsIG9iaiwgMCk7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gb2JqO1xuICB9XG5cbiAgcmV0dXJuIG51bGw7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGZvcm1EYXRhVG9KU09OO1xuIiwgIid1c2Ugc3RyaWN0JztcblxuaW1wb3J0IHV0aWxzIGZyb20gJy4uL3V0aWxzLmpzJztcbmltcG9ydCBBeGlvc0Vycm9yIGZyb20gJy4uL2NvcmUvQXhpb3NFcnJvci5qcyc7XG5pbXBvcnQgdHJhbnNpdGlvbmFsRGVmYXVsdHMgZnJvbSAnLi90cmFuc2l0aW9uYWwuanMnO1xuaW1wb3J0IHRvRm9ybURhdGEgZnJvbSAnLi4vaGVscGVycy90b0Zvcm1EYXRhLmpzJztcbmltcG9ydCB0b1VSTEVuY29kZWRGb3JtIGZyb20gJy4uL2hlbHBlcnMvdG9VUkxFbmNvZGVkRm9ybS5qcyc7XG5pbXBvcnQgcGxhdGZvcm0gZnJvbSAnLi4vcGxhdGZvcm0vaW5kZXguanMnO1xuaW1wb3J0IGZvcm1EYXRhVG9KU09OIGZyb20gJy4uL2hlbHBlcnMvZm9ybURhdGFUb0pTT04uanMnO1xuXG4vKipcbiAqIEl0IHRha2VzIGEgc3RyaW5nLCB0cmllcyB0byBwYXJzZSBpdCwgYW5kIGlmIGl0IGZhaWxzLCBpdCByZXR1cm5zIHRoZSBzdHJpbmdpZmllZCB2ZXJzaW9uXG4gKiBvZiB0aGUgaW5wdXRcbiAqXG4gKiBAcGFyYW0ge2FueX0gcmF3VmFsdWUgLSBUaGUgdmFsdWUgdG8gYmUgc3RyaW5naWZpZWQuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBwYXJzZXIgLSBBIGZ1bmN0aW9uIHRoYXQgcGFyc2VzIGEgc3RyaW5nIGludG8gYSBKYXZhU2NyaXB0IG9iamVjdC5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IGVuY29kZXIgLSBBIGZ1bmN0aW9uIHRoYXQgdGFrZXMgYSB2YWx1ZSBhbmQgcmV0dXJucyBhIHN0cmluZy5cbiAqXG4gKiBAcmV0dXJucyB7c3RyaW5nfSBBIHN0cmluZ2lmaWVkIHZlcnNpb24gb2YgdGhlIHJhd1ZhbHVlLlxuICovXG5mdW5jdGlvbiBzdHJpbmdpZnlTYWZlbHkocmF3VmFsdWUsIHBhcnNlciwgZW5jb2Rlcikge1xuICBpZiAodXRpbHMuaXNTdHJpbmcocmF3VmFsdWUpKSB7XG4gICAgdHJ5IHtcbiAgICAgIChwYXJzZXIgfHwgSlNPTi5wYXJzZSkocmF3VmFsdWUpO1xuICAgICAgcmV0dXJuIHV0aWxzLnRyaW0ocmF3VmFsdWUpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGlmIChlLm5hbWUgIT09ICdTeW50YXhFcnJvcicpIHtcbiAgICAgICAgdGhyb3cgZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gKGVuY29kZXIgfHwgSlNPTi5zdHJpbmdpZnkpKHJhd1ZhbHVlKTtcbn1cblxuY29uc3QgZGVmYXVsdHMgPSB7XG5cbiAgdHJhbnNpdGlvbmFsOiB0cmFuc2l0aW9uYWxEZWZhdWx0cyxcblxuICBhZGFwdGVyOiBbJ3hocicsICdodHRwJywgJ2ZldGNoJ10sXG5cbiAgdHJhbnNmb3JtUmVxdWVzdDogW2Z1bmN0aW9uIHRyYW5zZm9ybVJlcXVlc3QoZGF0YSwgaGVhZGVycykge1xuICAgIGNvbnN0IGNvbnRlbnRUeXBlID0gaGVhZGVycy5nZXRDb250ZW50VHlwZSgpIHx8ICcnO1xuICAgIGNvbnN0IGhhc0pTT05Db250ZW50VHlwZSA9IGNvbnRlbnRUeXBlLmluZGV4T2YoJ2FwcGxpY2F0aW9uL2pzb24nKSA+IC0xO1xuICAgIGNvbnN0IGlzT2JqZWN0UGF5bG9hZCA9IHV0aWxzLmlzT2JqZWN0KGRhdGEpO1xuXG4gICAgaWYgKGlzT2JqZWN0UGF5bG9hZCAmJiB1dGlscy5pc0hUTUxGb3JtKGRhdGEpKSB7XG4gICAgICBkYXRhID0gbmV3IEZvcm1EYXRhKGRhdGEpO1xuICAgIH1cblxuICAgIGNvbnN0IGlzRm9ybURhdGEgPSB1dGlscy5pc0Zvcm1EYXRhKGRhdGEpO1xuXG4gICAgaWYgKGlzRm9ybURhdGEpIHtcbiAgICAgIHJldHVybiBoYXNKU09OQ29udGVudFR5cGUgPyBKU09OLnN0cmluZ2lmeShmb3JtRGF0YVRvSlNPTihkYXRhKSkgOiBkYXRhO1xuICAgIH1cblxuICAgIGlmICh1dGlscy5pc0FycmF5QnVmZmVyKGRhdGEpIHx8XG4gICAgICB1dGlscy5pc0J1ZmZlcihkYXRhKSB8fFxuICAgICAgdXRpbHMuaXNTdHJlYW0oZGF0YSkgfHxcbiAgICAgIHV0aWxzLmlzRmlsZShkYXRhKSB8fFxuICAgICAgdXRpbHMuaXNCbG9iKGRhdGEpIHx8XG4gICAgICB1dGlscy5pc1JlYWRhYmxlU3RyZWFtKGRhdGEpXG4gICAgKSB7XG4gICAgICByZXR1cm4gZGF0YTtcbiAgICB9XG4gICAgaWYgKHV0aWxzLmlzQXJyYXlCdWZmZXJWaWV3KGRhdGEpKSB7XG4gICAgICByZXR1cm4gZGF0YS5idWZmZXI7XG4gICAgfVxuICAgIGlmICh1dGlscy5pc1VSTFNlYXJjaFBhcmFtcyhkYXRhKSkge1xuICAgICAgaGVhZGVycy5zZXRDb250ZW50VHlwZSgnYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkO2NoYXJzZXQ9dXRmLTgnLCBmYWxzZSk7XG4gICAgICByZXR1cm4gZGF0YS50b1N0cmluZygpO1xuICAgIH1cblxuICAgIGxldCBpc0ZpbGVMaXN0O1xuXG4gICAgaWYgKGlzT2JqZWN0UGF5bG9hZCkge1xuICAgICAgaWYgKGNvbnRlbnRUeXBlLmluZGV4T2YoJ2FwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCcpID4gLTEpIHtcbiAgICAgICAgcmV0dXJuIHRvVVJMRW5jb2RlZEZvcm0oZGF0YSwgdGhpcy5mb3JtU2VyaWFsaXplcikudG9TdHJpbmcoKTtcbiAgICAgIH1cblxuICAgICAgaWYgKChpc0ZpbGVMaXN0ID0gdXRpbHMuaXNGaWxlTGlzdChkYXRhKSkgfHwgY29udGVudFR5cGUuaW5kZXhPZignbXVsdGlwYXJ0L2Zvcm0tZGF0YScpID4gLTEpIHtcbiAgICAgICAgY29uc3QgX0Zvcm1EYXRhID0gdGhpcy5lbnYgJiYgdGhpcy5lbnYuRm9ybURhdGE7XG5cbiAgICAgICAgcmV0dXJuIHRvRm9ybURhdGEoXG4gICAgICAgICAgaXNGaWxlTGlzdCA/IHsnZmlsZXNbXSc6IGRhdGF9IDogZGF0YSxcbiAgICAgICAgICBfRm9ybURhdGEgJiYgbmV3IF9Gb3JtRGF0YSgpLFxuICAgICAgICAgIHRoaXMuZm9ybVNlcmlhbGl6ZXJcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoaXNPYmplY3RQYXlsb2FkIHx8IGhhc0pTT05Db250ZW50VHlwZSApIHtcbiAgICAgIGhlYWRlcnMuc2V0Q29udGVudFR5cGUoJ2FwcGxpY2F0aW9uL2pzb24nLCBmYWxzZSk7XG4gICAgICByZXR1cm4gc3RyaW5naWZ5U2FmZWx5KGRhdGEpO1xuICAgIH1cblxuICAgIHJldHVybiBkYXRhO1xuICB9XSxcblxuICB0cmFuc2Zvcm1SZXNwb25zZTogW2Z1bmN0aW9uIHRyYW5zZm9ybVJlc3BvbnNlKGRhdGEpIHtcbiAgICBjb25zdCB0cmFuc2l0aW9uYWwgPSB0aGlzLnRyYW5zaXRpb25hbCB8fCBkZWZhdWx0cy50cmFuc2l0aW9uYWw7XG4gICAgY29uc3QgZm9yY2VkSlNPTlBhcnNpbmcgPSB0cmFuc2l0aW9uYWwgJiYgdHJhbnNpdGlvbmFsLmZvcmNlZEpTT05QYXJzaW5nO1xuICAgIGNvbnN0IEpTT05SZXF1ZXN0ZWQgPSB0aGlzLnJlc3BvbnNlVHlwZSA9PT0gJ2pzb24nO1xuXG4gICAgaWYgKHV0aWxzLmlzUmVzcG9uc2UoZGF0YSkgfHwgdXRpbHMuaXNSZWFkYWJsZVN0cmVhbShkYXRhKSkge1xuICAgICAgcmV0dXJuIGRhdGE7XG4gICAgfVxuXG4gICAgaWYgKGRhdGEgJiYgdXRpbHMuaXNTdHJpbmcoZGF0YSkgJiYgKChmb3JjZWRKU09OUGFyc2luZyAmJiAhdGhpcy5yZXNwb25zZVR5cGUpIHx8IEpTT05SZXF1ZXN0ZWQpKSB7XG4gICAgICBjb25zdCBzaWxlbnRKU09OUGFyc2luZyA9IHRyYW5zaXRpb25hbCAmJiB0cmFuc2l0aW9uYWwuc2lsZW50SlNPTlBhcnNpbmc7XG4gICAgICBjb25zdCBzdHJpY3RKU09OUGFyc2luZyA9ICFzaWxlbnRKU09OUGFyc2luZyAmJiBKU09OUmVxdWVzdGVkO1xuXG4gICAgICB0cnkge1xuICAgICAgICByZXR1cm4gSlNPTi5wYXJzZShkYXRhKTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgaWYgKHN0cmljdEpTT05QYXJzaW5nKSB7XG4gICAgICAgICAgaWYgKGUubmFtZSA9PT0gJ1N5bnRheEVycm9yJykge1xuICAgICAgICAgICAgdGhyb3cgQXhpb3NFcnJvci5mcm9tKGUsIEF4aW9zRXJyb3IuRVJSX0JBRF9SRVNQT05TRSwgdGhpcywgbnVsbCwgdGhpcy5yZXNwb25zZSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRocm93IGU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gZGF0YTtcbiAgfV0sXG5cbiAgLyoqXG4gICAqIEEgdGltZW91dCBpbiBtaWxsaXNlY29uZHMgdG8gYWJvcnQgYSByZXF1ZXN0LiBJZiBzZXQgdG8gMCAoZGVmYXVsdCkgYVxuICAgKiB0aW1lb3V0IGlzIG5vdCBjcmVhdGVkLlxuICAgKi9cbiAgdGltZW91dDogMCxcblxuICB4c3JmQ29va2llTmFtZTogJ1hTUkYtVE9LRU4nLFxuICB4c3JmSGVhZGVyTmFtZTogJ1gtWFNSRi1UT0tFTicsXG5cbiAgbWF4Q29udGVudExlbmd0aDogLTEsXG4gIG1heEJvZHlMZW5ndGg6IC0xLFxuXG4gIGVudjoge1xuICAgIEZvcm1EYXRhOiBwbGF0Zm9ybS5jbGFzc2VzLkZvcm1EYXRhLFxuICAgIEJsb2I6IHBsYXRmb3JtLmNsYXNzZXMuQmxvYlxuICB9LFxuXG4gIHZhbGlkYXRlU3RhdHVzOiBmdW5jdGlvbiB2YWxpZGF0ZVN0YXR1cyhzdGF0dXMpIHtcbiAgICByZXR1cm4gc3RhdHVzID49IDIwMCAmJiBzdGF0dXMgPCAzMDA7XG4gIH0sXG5cbiAgaGVhZGVyczoge1xuICAgIGNvbW1vbjoge1xuICAgICAgJ0FjY2VwdCc6ICdhcHBsaWNhdGlvbi9qc29uLCB0ZXh0L3BsYWluLCAqLyonLFxuICAgICAgJ0NvbnRlbnQtVHlwZSc6IHVuZGVmaW5lZFxuICAgIH1cbiAgfVxufTtcblxudXRpbHMuZm9yRWFjaChbJ2RlbGV0ZScsICdnZXQnLCAnaGVhZCcsICdwb3N0JywgJ3B1dCcsICdwYXRjaCddLCAobWV0aG9kKSA9PiB7XG4gIGRlZmF1bHRzLmhlYWRlcnNbbWV0aG9kXSA9IHt9O1xufSk7XG5cbmV4cG9ydCBkZWZhdWx0IGRlZmF1bHRzO1xuIiwgIid1c2Ugc3RyaWN0JztcblxuaW1wb3J0IHV0aWxzIGZyb20gJy4vLi4vdXRpbHMuanMnO1xuXG4vLyBSYXdBeGlvc0hlYWRlcnMgd2hvc2UgZHVwbGljYXRlcyBhcmUgaWdub3JlZCBieSBub2RlXG4vLyBjLmYuIGh0dHBzOi8vbm9kZWpzLm9yZy9hcGkvaHR0cC5odG1sI2h0dHBfbWVzc2FnZV9oZWFkZXJzXG5jb25zdCBpZ25vcmVEdXBsaWNhdGVPZiA9IHV0aWxzLnRvT2JqZWN0U2V0KFtcbiAgJ2FnZScsICdhdXRob3JpemF0aW9uJywgJ2NvbnRlbnQtbGVuZ3RoJywgJ2NvbnRlbnQtdHlwZScsICdldGFnJyxcbiAgJ2V4cGlyZXMnLCAnZnJvbScsICdob3N0JywgJ2lmLW1vZGlmaWVkLXNpbmNlJywgJ2lmLXVubW9kaWZpZWQtc2luY2UnLFxuICAnbGFzdC1tb2RpZmllZCcsICdsb2NhdGlvbicsICdtYXgtZm9yd2FyZHMnLCAncHJveHktYXV0aG9yaXphdGlvbicsXG4gICdyZWZlcmVyJywgJ3JldHJ5LWFmdGVyJywgJ3VzZXItYWdlbnQnXG5dKTtcblxuLyoqXG4gKiBQYXJzZSBoZWFkZXJzIGludG8gYW4gb2JqZWN0XG4gKlxuICogYGBgXG4gKiBEYXRlOiBXZWQsIDI3IEF1ZyAyMDE0IDA4OjU4OjQ5IEdNVFxuICogQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi9qc29uXG4gKiBDb25uZWN0aW9uOiBrZWVwLWFsaXZlXG4gKiBUcmFuc2Zlci1FbmNvZGluZzogY2h1bmtlZFxuICogYGBgXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IHJhd0hlYWRlcnMgSGVhZGVycyBuZWVkaW5nIHRvIGJlIHBhcnNlZFxuICpcbiAqIEByZXR1cm5zIHtPYmplY3R9IEhlYWRlcnMgcGFyc2VkIGludG8gYW4gb2JqZWN0XG4gKi9cbmV4cG9ydCBkZWZhdWx0IHJhd0hlYWRlcnMgPT4ge1xuICBjb25zdCBwYXJzZWQgPSB7fTtcbiAgbGV0IGtleTtcbiAgbGV0IHZhbDtcbiAgbGV0IGk7XG5cbiAgcmF3SGVhZGVycyAmJiByYXdIZWFkZXJzLnNwbGl0KCdcXG4nKS5mb3JFYWNoKGZ1bmN0aW9uIHBhcnNlcihsaW5lKSB7XG4gICAgaSA9IGxpbmUuaW5kZXhPZignOicpO1xuICAgIGtleSA9IGxpbmUuc3Vic3RyaW5nKDAsIGkpLnRyaW0oKS50b0xvd2VyQ2FzZSgpO1xuICAgIHZhbCA9IGxpbmUuc3Vic3RyaW5nKGkgKyAxKS50cmltKCk7XG5cbiAgICBpZiAoIWtleSB8fCAocGFyc2VkW2tleV0gJiYgaWdub3JlRHVwbGljYXRlT2Zba2V5XSkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoa2V5ID09PSAnc2V0LWNvb2tpZScpIHtcbiAgICAgIGlmIChwYXJzZWRba2V5XSkge1xuICAgICAgICBwYXJzZWRba2V5XS5wdXNoKHZhbCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBwYXJzZWRba2V5XSA9IFt2YWxdO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBwYXJzZWRba2V5XSA9IHBhcnNlZFtrZXldID8gcGFyc2VkW2tleV0gKyAnLCAnICsgdmFsIDogdmFsO1xuICAgIH1cbiAgfSk7XG5cbiAgcmV0dXJuIHBhcnNlZDtcbn07XG4iLCAiJ3VzZSBzdHJpY3QnO1xuXG5pbXBvcnQgdXRpbHMgZnJvbSAnLi4vdXRpbHMuanMnO1xuaW1wb3J0IHBhcnNlSGVhZGVycyBmcm9tICcuLi9oZWxwZXJzL3BhcnNlSGVhZGVycy5qcyc7XG5cbmNvbnN0ICRpbnRlcm5hbHMgPSBTeW1ib2woJ2ludGVybmFscycpO1xuXG5mdW5jdGlvbiBub3JtYWxpemVIZWFkZXIoaGVhZGVyKSB7XG4gIHJldHVybiBoZWFkZXIgJiYgU3RyaW5nKGhlYWRlcikudHJpbSgpLnRvTG93ZXJDYXNlKCk7XG59XG5cbmZ1bmN0aW9uIG5vcm1hbGl6ZVZhbHVlKHZhbHVlKSB7XG4gIGlmICh2YWx1ZSA9PT0gZmFsc2UgfHwgdmFsdWUgPT0gbnVsbCkge1xuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuXG4gIHJldHVybiB1dGlscy5pc0FycmF5KHZhbHVlKSA/IHZhbHVlLm1hcChub3JtYWxpemVWYWx1ZSkgOiBTdHJpbmcodmFsdWUpO1xufVxuXG5mdW5jdGlvbiBwYXJzZVRva2VucyhzdHIpIHtcbiAgY29uc3QgdG9rZW5zID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgY29uc3QgdG9rZW5zUkUgPSAvKFteXFxzLDs9XSspXFxzKig/Oj1cXHMqKFteLDtdKykpPy9nO1xuICBsZXQgbWF0Y2g7XG5cbiAgd2hpbGUgKChtYXRjaCA9IHRva2Vuc1JFLmV4ZWMoc3RyKSkpIHtcbiAgICB0b2tlbnNbbWF0Y2hbMV1dID0gbWF0Y2hbMl07XG4gIH1cblxuICByZXR1cm4gdG9rZW5zO1xufVxuXG5jb25zdCBpc1ZhbGlkSGVhZGVyTmFtZSA9IChzdHIpID0+IC9eWy1fYS16QS1aMC05XmB8fiwhIyQlJicqKy5dKyQvLnRlc3Qoc3RyLnRyaW0oKSk7XG5cbmZ1bmN0aW9uIG1hdGNoSGVhZGVyVmFsdWUoY29udGV4dCwgdmFsdWUsIGhlYWRlciwgZmlsdGVyLCBpc0hlYWRlck5hbWVGaWx0ZXIpIHtcbiAgaWYgKHV0aWxzLmlzRnVuY3Rpb24oZmlsdGVyKSkge1xuICAgIHJldHVybiBmaWx0ZXIuY2FsbCh0aGlzLCB2YWx1ZSwgaGVhZGVyKTtcbiAgfVxuXG4gIGlmIChpc0hlYWRlck5hbWVGaWx0ZXIpIHtcbiAgICB2YWx1ZSA9IGhlYWRlcjtcbiAgfVxuXG4gIGlmICghdXRpbHMuaXNTdHJpbmcodmFsdWUpKSByZXR1cm47XG5cbiAgaWYgKHV0aWxzLmlzU3RyaW5nKGZpbHRlcikpIHtcbiAgICByZXR1cm4gdmFsdWUuaW5kZXhPZihmaWx0ZXIpICE9PSAtMTtcbiAgfVxuXG4gIGlmICh1dGlscy5pc1JlZ0V4cChmaWx0ZXIpKSB7XG4gICAgcmV0dXJuIGZpbHRlci50ZXN0KHZhbHVlKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBmb3JtYXRIZWFkZXIoaGVhZGVyKSB7XG4gIHJldHVybiBoZWFkZXIudHJpbSgpXG4gICAgLnRvTG93ZXJDYXNlKCkucmVwbGFjZSgvKFthLXpcXGRdKShcXHcqKS9nLCAodywgY2hhciwgc3RyKSA9PiB7XG4gICAgICByZXR1cm4gY2hhci50b1VwcGVyQ2FzZSgpICsgc3RyO1xuICAgIH0pO1xufVxuXG5mdW5jdGlvbiBidWlsZEFjY2Vzc29ycyhvYmosIGhlYWRlcikge1xuICBjb25zdCBhY2Nlc3Nvck5hbWUgPSB1dGlscy50b0NhbWVsQ2FzZSgnICcgKyBoZWFkZXIpO1xuXG4gIFsnZ2V0JywgJ3NldCcsICdoYXMnXS5mb3JFYWNoKG1ldGhvZE5hbWUgPT4ge1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosIG1ldGhvZE5hbWUgKyBhY2Nlc3Nvck5hbWUsIHtcbiAgICAgIHZhbHVlOiBmdW5jdGlvbihhcmcxLCBhcmcyLCBhcmczKSB7XG4gICAgICAgIHJldHVybiB0aGlzW21ldGhvZE5hbWVdLmNhbGwodGhpcywgaGVhZGVyLCBhcmcxLCBhcmcyLCBhcmczKTtcbiAgICAgIH0sXG4gICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICB9KTtcbiAgfSk7XG59XG5cbmNsYXNzIEF4aW9zSGVhZGVycyB7XG4gIGNvbnN0cnVjdG9yKGhlYWRlcnMpIHtcbiAgICBoZWFkZXJzICYmIHRoaXMuc2V0KGhlYWRlcnMpO1xuICB9XG5cbiAgc2V0KGhlYWRlciwgdmFsdWVPclJld3JpdGUsIHJld3JpdGUpIHtcbiAgICBjb25zdCBzZWxmID0gdGhpcztcblxuICAgIGZ1bmN0aW9uIHNldEhlYWRlcihfdmFsdWUsIF9oZWFkZXIsIF9yZXdyaXRlKSB7XG4gICAgICBjb25zdCBsSGVhZGVyID0gbm9ybWFsaXplSGVhZGVyKF9oZWFkZXIpO1xuXG4gICAgICBpZiAoIWxIZWFkZXIpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdoZWFkZXIgbmFtZSBtdXN0IGJlIGEgbm9uLWVtcHR5IHN0cmluZycpO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBrZXkgPSB1dGlscy5maW5kS2V5KHNlbGYsIGxIZWFkZXIpO1xuXG4gICAgICBpZigha2V5IHx8IHNlbGZba2V5XSA9PT0gdW5kZWZpbmVkIHx8IF9yZXdyaXRlID09PSB0cnVlIHx8IChfcmV3cml0ZSA9PT0gdW5kZWZpbmVkICYmIHNlbGZba2V5XSAhPT0gZmFsc2UpKSB7XG4gICAgICAgIHNlbGZba2V5IHx8IF9oZWFkZXJdID0gbm9ybWFsaXplVmFsdWUoX3ZhbHVlKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBzZXRIZWFkZXJzID0gKGhlYWRlcnMsIF9yZXdyaXRlKSA9PlxuICAgICAgdXRpbHMuZm9yRWFjaChoZWFkZXJzLCAoX3ZhbHVlLCBfaGVhZGVyKSA9PiBzZXRIZWFkZXIoX3ZhbHVlLCBfaGVhZGVyLCBfcmV3cml0ZSkpO1xuXG4gICAgaWYgKHV0aWxzLmlzUGxhaW5PYmplY3QoaGVhZGVyKSB8fCBoZWFkZXIgaW5zdGFuY2VvZiB0aGlzLmNvbnN0cnVjdG9yKSB7XG4gICAgICBzZXRIZWFkZXJzKGhlYWRlciwgdmFsdWVPclJld3JpdGUpXG4gICAgfSBlbHNlIGlmKHV0aWxzLmlzU3RyaW5nKGhlYWRlcikgJiYgKGhlYWRlciA9IGhlYWRlci50cmltKCkpICYmICFpc1ZhbGlkSGVhZGVyTmFtZShoZWFkZXIpKSB7XG4gICAgICBzZXRIZWFkZXJzKHBhcnNlSGVhZGVycyhoZWFkZXIpLCB2YWx1ZU9yUmV3cml0ZSk7XG4gICAgfSBlbHNlIGlmICh1dGlscy5pc0hlYWRlcnMoaGVhZGVyKSkge1xuICAgICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgaGVhZGVyLmVudHJpZXMoKSkge1xuICAgICAgICBzZXRIZWFkZXIodmFsdWUsIGtleSwgcmV3cml0ZSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGhlYWRlciAhPSBudWxsICYmIHNldEhlYWRlcih2YWx1ZU9yUmV3cml0ZSwgaGVhZGVyLCByZXdyaXRlKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIGdldChoZWFkZXIsIHBhcnNlcikge1xuICAgIGhlYWRlciA9IG5vcm1hbGl6ZUhlYWRlcihoZWFkZXIpO1xuXG4gICAgaWYgKGhlYWRlcikge1xuICAgICAgY29uc3Qga2V5ID0gdXRpbHMuZmluZEtleSh0aGlzLCBoZWFkZXIpO1xuXG4gICAgICBpZiAoa2V5KSB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gdGhpc1trZXldO1xuXG4gICAgICAgIGlmICghcGFyc2VyKSB7XG4gICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHBhcnNlciA9PT0gdHJ1ZSkge1xuICAgICAgICAgIHJldHVybiBwYXJzZVRva2Vucyh2YWx1ZSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodXRpbHMuaXNGdW5jdGlvbihwYXJzZXIpKSB7XG4gICAgICAgICAgcmV0dXJuIHBhcnNlci5jYWxsKHRoaXMsIHZhbHVlLCBrZXkpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHV0aWxzLmlzUmVnRXhwKHBhcnNlcikpIHtcbiAgICAgICAgICByZXR1cm4gcGFyc2VyLmV4ZWModmFsdWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcigncGFyc2VyIG11c3QgYmUgYm9vbGVhbnxyZWdleHB8ZnVuY3Rpb24nKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBoYXMoaGVhZGVyLCBtYXRjaGVyKSB7XG4gICAgaGVhZGVyID0gbm9ybWFsaXplSGVhZGVyKGhlYWRlcik7XG5cbiAgICBpZiAoaGVhZGVyKSB7XG4gICAgICBjb25zdCBrZXkgPSB1dGlscy5maW5kS2V5KHRoaXMsIGhlYWRlcik7XG5cbiAgICAgIHJldHVybiAhIShrZXkgJiYgdGhpc1trZXldICE9PSB1bmRlZmluZWQgJiYgKCFtYXRjaGVyIHx8IG1hdGNoSGVhZGVyVmFsdWUodGhpcywgdGhpc1trZXldLCBrZXksIG1hdGNoZXIpKSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgZGVsZXRlKGhlYWRlciwgbWF0Y2hlcikge1xuICAgIGNvbnN0IHNlbGYgPSB0aGlzO1xuICAgIGxldCBkZWxldGVkID0gZmFsc2U7XG5cbiAgICBmdW5jdGlvbiBkZWxldGVIZWFkZXIoX2hlYWRlcikge1xuICAgICAgX2hlYWRlciA9IG5vcm1hbGl6ZUhlYWRlcihfaGVhZGVyKTtcblxuICAgICAgaWYgKF9oZWFkZXIpIHtcbiAgICAgICAgY29uc3Qga2V5ID0gdXRpbHMuZmluZEtleShzZWxmLCBfaGVhZGVyKTtcblxuICAgICAgICBpZiAoa2V5ICYmICghbWF0Y2hlciB8fCBtYXRjaEhlYWRlclZhbHVlKHNlbGYsIHNlbGZba2V5XSwga2V5LCBtYXRjaGVyKSkpIHtcbiAgICAgICAgICBkZWxldGUgc2VsZltrZXldO1xuXG4gICAgICAgICAgZGVsZXRlZCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodXRpbHMuaXNBcnJheShoZWFkZXIpKSB7XG4gICAgICBoZWFkZXIuZm9yRWFjaChkZWxldGVIZWFkZXIpO1xuICAgIH0gZWxzZSB7XG4gICAgICBkZWxldGVIZWFkZXIoaGVhZGVyKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZGVsZXRlZDtcbiAgfVxuXG4gIGNsZWFyKG1hdGNoZXIpIHtcbiAgICBjb25zdCBrZXlzID0gT2JqZWN0LmtleXModGhpcyk7XG4gICAgbGV0IGkgPSBrZXlzLmxlbmd0aDtcbiAgICBsZXQgZGVsZXRlZCA9IGZhbHNlO1xuXG4gICAgd2hpbGUgKGktLSkge1xuICAgICAgY29uc3Qga2V5ID0ga2V5c1tpXTtcbiAgICAgIGlmKCFtYXRjaGVyIHx8IG1hdGNoSGVhZGVyVmFsdWUodGhpcywgdGhpc1trZXldLCBrZXksIG1hdGNoZXIsIHRydWUpKSB7XG4gICAgICAgIGRlbGV0ZSB0aGlzW2tleV07XG4gICAgICAgIGRlbGV0ZWQgPSB0cnVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBkZWxldGVkO1xuICB9XG5cbiAgbm9ybWFsaXplKGZvcm1hdCkge1xuICAgIGNvbnN0IHNlbGYgPSB0aGlzO1xuICAgIGNvbnN0IGhlYWRlcnMgPSB7fTtcblxuICAgIHV0aWxzLmZvckVhY2godGhpcywgKHZhbHVlLCBoZWFkZXIpID0+IHtcbiAgICAgIGNvbnN0IGtleSA9IHV0aWxzLmZpbmRLZXkoaGVhZGVycywgaGVhZGVyKTtcblxuICAgICAgaWYgKGtleSkge1xuICAgICAgICBzZWxmW2tleV0gPSBub3JtYWxpemVWYWx1ZSh2YWx1ZSk7XG4gICAgICAgIGRlbGV0ZSBzZWxmW2hlYWRlcl07XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgY29uc3Qgbm9ybWFsaXplZCA9IGZvcm1hdCA/IGZvcm1hdEhlYWRlcihoZWFkZXIpIDogU3RyaW5nKGhlYWRlcikudHJpbSgpO1xuXG4gICAgICBpZiAobm9ybWFsaXplZCAhPT0gaGVhZGVyKSB7XG4gICAgICAgIGRlbGV0ZSBzZWxmW2hlYWRlcl07XG4gICAgICB9XG5cbiAgICAgIHNlbGZbbm9ybWFsaXplZF0gPSBub3JtYWxpemVWYWx1ZSh2YWx1ZSk7XG5cbiAgICAgIGhlYWRlcnNbbm9ybWFsaXplZF0gPSB0cnVlO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBjb25jYXQoLi4udGFyZ2V0cykge1xuICAgIHJldHVybiB0aGlzLmNvbnN0cnVjdG9yLmNvbmNhdCh0aGlzLCAuLi50YXJnZXRzKTtcbiAgfVxuXG4gIHRvSlNPTihhc1N0cmluZ3MpIHtcbiAgICBjb25zdCBvYmogPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuXG4gICAgdXRpbHMuZm9yRWFjaCh0aGlzLCAodmFsdWUsIGhlYWRlcikgPT4ge1xuICAgICAgdmFsdWUgIT0gbnVsbCAmJiB2YWx1ZSAhPT0gZmFsc2UgJiYgKG9ialtoZWFkZXJdID0gYXNTdHJpbmdzICYmIHV0aWxzLmlzQXJyYXkodmFsdWUpID8gdmFsdWUuam9pbignLCAnKSA6IHZhbHVlKTtcbiAgICB9KTtcblxuICAgIHJldHVybiBvYmo7XG4gIH1cblxuICBbU3ltYm9sLml0ZXJhdG9yXSgpIHtcbiAgICByZXR1cm4gT2JqZWN0LmVudHJpZXModGhpcy50b0pTT04oKSlbU3ltYm9sLml0ZXJhdG9yXSgpO1xuICB9XG5cbiAgdG9TdHJpbmcoKSB7XG4gICAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKHRoaXMudG9KU09OKCkpLm1hcCgoW2hlYWRlciwgdmFsdWVdKSA9PiBoZWFkZXIgKyAnOiAnICsgdmFsdWUpLmpvaW4oJ1xcbicpO1xuICB9XG5cbiAgZ2V0IFtTeW1ib2wudG9TdHJpbmdUYWddKCkge1xuICAgIHJldHVybiAnQXhpb3NIZWFkZXJzJztcbiAgfVxuXG4gIHN0YXRpYyBmcm9tKHRoaW5nKSB7XG4gICAgcmV0dXJuIHRoaW5nIGluc3RhbmNlb2YgdGhpcyA/IHRoaW5nIDogbmV3IHRoaXModGhpbmcpO1xuICB9XG5cbiAgc3RhdGljIGNvbmNhdChmaXJzdCwgLi4udGFyZ2V0cykge1xuICAgIGNvbnN0IGNvbXB1dGVkID0gbmV3IHRoaXMoZmlyc3QpO1xuXG4gICAgdGFyZ2V0cy5mb3JFYWNoKCh0YXJnZXQpID0+IGNvbXB1dGVkLnNldCh0YXJnZXQpKTtcblxuICAgIHJldHVybiBjb21wdXRlZDtcbiAgfVxuXG4gIHN0YXRpYyBhY2Nlc3NvcihoZWFkZXIpIHtcbiAgICBjb25zdCBpbnRlcm5hbHMgPSB0aGlzWyRpbnRlcm5hbHNdID0gKHRoaXNbJGludGVybmFsc10gPSB7XG4gICAgICBhY2Nlc3NvcnM6IHt9XG4gICAgfSk7XG5cbiAgICBjb25zdCBhY2Nlc3NvcnMgPSBpbnRlcm5hbHMuYWNjZXNzb3JzO1xuICAgIGNvbnN0IHByb3RvdHlwZSA9IHRoaXMucHJvdG90eXBlO1xuXG4gICAgZnVuY3Rpb24gZGVmaW5lQWNjZXNzb3IoX2hlYWRlcikge1xuICAgICAgY29uc3QgbEhlYWRlciA9IG5vcm1hbGl6ZUhlYWRlcihfaGVhZGVyKTtcblxuICAgICAgaWYgKCFhY2Nlc3NvcnNbbEhlYWRlcl0pIHtcbiAgICAgICAgYnVpbGRBY2Nlc3NvcnMocHJvdG90eXBlLCBfaGVhZGVyKTtcbiAgICAgICAgYWNjZXNzb3JzW2xIZWFkZXJdID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB1dGlscy5pc0FycmF5KGhlYWRlcikgPyBoZWFkZXIuZm9yRWFjaChkZWZpbmVBY2Nlc3NvcikgOiBkZWZpbmVBY2Nlc3NvcihoZWFkZXIpO1xuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cbn1cblxuQXhpb3NIZWFkZXJzLmFjY2Vzc29yKFsnQ29udGVudC1UeXBlJywgJ0NvbnRlbnQtTGVuZ3RoJywgJ0FjY2VwdCcsICdBY2NlcHQtRW5jb2RpbmcnLCAnVXNlci1BZ2VudCcsICdBdXRob3JpemF0aW9uJ10pO1xuXG4vLyByZXNlcnZlZCBuYW1lcyBob3RmaXhcbnV0aWxzLnJlZHVjZURlc2NyaXB0b3JzKEF4aW9zSGVhZGVycy5wcm90b3R5cGUsICh7dmFsdWV9LCBrZXkpID0+IHtcbiAgbGV0IG1hcHBlZCA9IGtleVswXS50b1VwcGVyQ2FzZSgpICsga2V5LnNsaWNlKDEpOyAvLyBtYXAgYHNldGAgPT4gYFNldGBcbiAgcmV0dXJuIHtcbiAgICBnZXQ6ICgpID0+IHZhbHVlLFxuICAgIHNldChoZWFkZXJWYWx1ZSkge1xuICAgICAgdGhpc1ttYXBwZWRdID0gaGVhZGVyVmFsdWU7XG4gICAgfVxuICB9XG59KTtcblxudXRpbHMuZnJlZXplTWV0aG9kcyhBeGlvc0hlYWRlcnMpO1xuXG5leHBvcnQgZGVmYXVsdCBBeGlvc0hlYWRlcnM7XG4iLCAiJ3VzZSBzdHJpY3QnO1xuXG5pbXBvcnQgdXRpbHMgZnJvbSAnLi8uLi91dGlscy5qcyc7XG5pbXBvcnQgZGVmYXVsdHMgZnJvbSAnLi4vZGVmYXVsdHMvaW5kZXguanMnO1xuaW1wb3J0IEF4aW9zSGVhZGVycyBmcm9tICcuLi9jb3JlL0F4aW9zSGVhZGVycy5qcyc7XG5cbi8qKlxuICogVHJhbnNmb3JtIHRoZSBkYXRhIGZvciBhIHJlcXVlc3Qgb3IgYSByZXNwb25zZVxuICpcbiAqIEBwYXJhbSB7QXJyYXl8RnVuY3Rpb259IGZucyBBIHNpbmdsZSBmdW5jdGlvbiBvciBBcnJheSBvZiBmdW5jdGlvbnNcbiAqIEBwYXJhbSB7P09iamVjdH0gcmVzcG9uc2UgVGhlIHJlc3BvbnNlIG9iamVjdFxuICpcbiAqIEByZXR1cm5zIHsqfSBUaGUgcmVzdWx0aW5nIHRyYW5zZm9ybWVkIGRhdGFcbiAqL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdHJhbnNmb3JtRGF0YShmbnMsIHJlc3BvbnNlKSB7XG4gIGNvbnN0IGNvbmZpZyA9IHRoaXMgfHwgZGVmYXVsdHM7XG4gIGNvbnN0IGNvbnRleHQgPSByZXNwb25zZSB8fCBjb25maWc7XG4gIGNvbnN0IGhlYWRlcnMgPSBBeGlvc0hlYWRlcnMuZnJvbShjb250ZXh0LmhlYWRlcnMpO1xuICBsZXQgZGF0YSA9IGNvbnRleHQuZGF0YTtcblxuICB1dGlscy5mb3JFYWNoKGZucywgZnVuY3Rpb24gdHJhbnNmb3JtKGZuKSB7XG4gICAgZGF0YSA9IGZuLmNhbGwoY29uZmlnLCBkYXRhLCBoZWFkZXJzLm5vcm1hbGl6ZSgpLCByZXNwb25zZSA/IHJlc3BvbnNlLnN0YXR1cyA6IHVuZGVmaW5lZCk7XG4gIH0pO1xuXG4gIGhlYWRlcnMubm9ybWFsaXplKCk7XG5cbiAgcmV0dXJuIGRhdGE7XG59XG4iLCAiJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBpc0NhbmNlbCh2YWx1ZSkge1xuICByZXR1cm4gISEodmFsdWUgJiYgdmFsdWUuX19DQU5DRUxfXyk7XG59XG4iLCAiJ3VzZSBzdHJpY3QnO1xuXG5pbXBvcnQgQXhpb3NFcnJvciBmcm9tICcuLi9jb3JlL0F4aW9zRXJyb3IuanMnO1xuaW1wb3J0IHV0aWxzIGZyb20gJy4uL3V0aWxzLmpzJztcblxuLyoqXG4gKiBBIGBDYW5jZWxlZEVycm9yYCBpcyBhbiBvYmplY3QgdGhhdCBpcyB0aHJvd24gd2hlbiBhbiBvcGVyYXRpb24gaXMgY2FuY2VsZWQuXG4gKlxuICogQHBhcmFtIHtzdHJpbmc9fSBtZXNzYWdlIFRoZSBtZXNzYWdlLlxuICogQHBhcmFtIHtPYmplY3Q9fSBjb25maWcgVGhlIGNvbmZpZy5cbiAqIEBwYXJhbSB7T2JqZWN0PX0gcmVxdWVzdCBUaGUgcmVxdWVzdC5cbiAqXG4gKiBAcmV0dXJucyB7Q2FuY2VsZWRFcnJvcn0gVGhlIGNyZWF0ZWQgZXJyb3IuXG4gKi9cbmZ1bmN0aW9uIENhbmNlbGVkRXJyb3IobWVzc2FnZSwgY29uZmlnLCByZXF1ZXN0KSB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1lcS1udWxsLGVxZXFlcVxuICBBeGlvc0Vycm9yLmNhbGwodGhpcywgbWVzc2FnZSA9PSBudWxsID8gJ2NhbmNlbGVkJyA6IG1lc3NhZ2UsIEF4aW9zRXJyb3IuRVJSX0NBTkNFTEVELCBjb25maWcsIHJlcXVlc3QpO1xuICB0aGlzLm5hbWUgPSAnQ2FuY2VsZWRFcnJvcic7XG59XG5cbnV0aWxzLmluaGVyaXRzKENhbmNlbGVkRXJyb3IsIEF4aW9zRXJyb3IsIHtcbiAgX19DQU5DRUxfXzogdHJ1ZVxufSk7XG5cbmV4cG9ydCBkZWZhdWx0IENhbmNlbGVkRXJyb3I7XG4iLCAiJ3VzZSBzdHJpY3QnO1xuXG5pbXBvcnQgQXhpb3NFcnJvciBmcm9tICcuL0F4aW9zRXJyb3IuanMnO1xuXG4vKipcbiAqIFJlc29sdmUgb3IgcmVqZWN0IGEgUHJvbWlzZSBiYXNlZCBvbiByZXNwb25zZSBzdGF0dXMuXG4gKlxuICogQHBhcmFtIHtGdW5jdGlvbn0gcmVzb2x2ZSBBIGZ1bmN0aW9uIHRoYXQgcmVzb2x2ZXMgdGhlIHByb21pc2UuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSByZWplY3QgQSBmdW5jdGlvbiB0aGF0IHJlamVjdHMgdGhlIHByb21pc2UuXG4gKiBAcGFyYW0ge29iamVjdH0gcmVzcG9uc2UgVGhlIHJlc3BvbnNlLlxuICpcbiAqIEByZXR1cm5zIHtvYmplY3R9IFRoZSByZXNwb25zZS5cbiAqL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gc2V0dGxlKHJlc29sdmUsIHJlamVjdCwgcmVzcG9uc2UpIHtcbiAgY29uc3QgdmFsaWRhdGVTdGF0dXMgPSByZXNwb25zZS5jb25maWcudmFsaWRhdGVTdGF0dXM7XG4gIGlmICghcmVzcG9uc2Uuc3RhdHVzIHx8ICF2YWxpZGF0ZVN0YXR1cyB8fCB2YWxpZGF0ZVN0YXR1cyhyZXNwb25zZS5zdGF0dXMpKSB7XG4gICAgcmVzb2x2ZShyZXNwb25zZSk7XG4gIH0gZWxzZSB7XG4gICAgcmVqZWN0KG5ldyBBeGlvc0Vycm9yKFxuICAgICAgJ1JlcXVlc3QgZmFpbGVkIHdpdGggc3RhdHVzIGNvZGUgJyArIHJlc3BvbnNlLnN0YXR1cyxcbiAgICAgIFtBeGlvc0Vycm9yLkVSUl9CQURfUkVRVUVTVCwgQXhpb3NFcnJvci5FUlJfQkFEX1JFU1BPTlNFXVtNYXRoLmZsb29yKHJlc3BvbnNlLnN0YXR1cyAvIDEwMCkgLSA0XSxcbiAgICAgIHJlc3BvbnNlLmNvbmZpZyxcbiAgICAgIHJlc3BvbnNlLnJlcXVlc3QsXG4gICAgICByZXNwb25zZVxuICAgICkpO1xuICB9XG59XG4iLCAiJ3VzZSBzdHJpY3QnO1xuXG4vKipcbiAqIERldGVybWluZXMgd2hldGhlciB0aGUgc3BlY2lmaWVkIFVSTCBpcyBhYnNvbHV0ZVxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSB1cmwgVGhlIFVSTCB0byB0ZXN0XG4gKlxuICogQHJldHVybnMge2Jvb2xlYW59IFRydWUgaWYgdGhlIHNwZWNpZmllZCBVUkwgaXMgYWJzb2x1dGUsIG90aGVyd2lzZSBmYWxzZVxuICovXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBpc0Fic29sdXRlVVJMKHVybCkge1xuICAvLyBBIFVSTCBpcyBjb25zaWRlcmVkIGFic29sdXRlIGlmIGl0IGJlZ2lucyB3aXRoIFwiPHNjaGVtZT46Ly9cIiBvciBcIi8vXCIgKHByb3RvY29sLXJlbGF0aXZlIFVSTCkuXG4gIC8vIFJGQyAzOTg2IGRlZmluZXMgc2NoZW1lIG5hbWUgYXMgYSBzZXF1ZW5jZSBvZiBjaGFyYWN0ZXJzIGJlZ2lubmluZyB3aXRoIGEgbGV0dGVyIGFuZCBmb2xsb3dlZFxuICAvLyBieSBhbnkgY29tYmluYXRpb24gb2YgbGV0dGVycywgZGlnaXRzLCBwbHVzLCBwZXJpb2QsIG9yIGh5cGhlbi5cbiAgcmV0dXJuIC9eKFthLXpdW2EtelxcZCtcXC0uXSo6KT9cXC9cXC8vaS50ZXN0KHVybCk7XG59XG4iLCAiJ3VzZSBzdHJpY3QnO1xuXG4vKipcbiAqIENyZWF0ZXMgYSBuZXcgVVJMIGJ5IGNvbWJpbmluZyB0aGUgc3BlY2lmaWVkIFVSTHNcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gYmFzZVVSTCBUaGUgYmFzZSBVUkxcbiAqIEBwYXJhbSB7c3RyaW5nfSByZWxhdGl2ZVVSTCBUaGUgcmVsYXRpdmUgVVJMXG4gKlxuICogQHJldHVybnMge3N0cmluZ30gVGhlIGNvbWJpbmVkIFVSTFxuICovXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBjb21iaW5lVVJMcyhiYXNlVVJMLCByZWxhdGl2ZVVSTCkge1xuICByZXR1cm4gcmVsYXRpdmVVUkxcbiAgICA/IGJhc2VVUkwucmVwbGFjZSgvXFwvP1xcLyQvLCAnJykgKyAnLycgKyByZWxhdGl2ZVVSTC5yZXBsYWNlKC9eXFwvKy8sICcnKVxuICAgIDogYmFzZVVSTDtcbn1cbiIsICIndXNlIHN0cmljdCc7XG5cbmltcG9ydCBpc0Fic29sdXRlVVJMIGZyb20gJy4uL2hlbHBlcnMvaXNBYnNvbHV0ZVVSTC5qcyc7XG5pbXBvcnQgY29tYmluZVVSTHMgZnJvbSAnLi4vaGVscGVycy9jb21iaW5lVVJMcy5qcyc7XG5cbi8qKlxuICogQ3JlYXRlcyBhIG5ldyBVUkwgYnkgY29tYmluaW5nIHRoZSBiYXNlVVJMIHdpdGggdGhlIHJlcXVlc3RlZFVSTCxcbiAqIG9ubHkgd2hlbiB0aGUgcmVxdWVzdGVkVVJMIGlzIG5vdCBhbHJlYWR5IGFuIGFic29sdXRlIFVSTC5cbiAqIElmIHRoZSByZXF1ZXN0VVJMIGlzIGFic29sdXRlLCB0aGlzIGZ1bmN0aW9uIHJldHVybnMgdGhlIHJlcXVlc3RlZFVSTCB1bnRvdWNoZWQuXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IGJhc2VVUkwgVGhlIGJhc2UgVVJMXG4gKiBAcGFyYW0ge3N0cmluZ30gcmVxdWVzdGVkVVJMIEFic29sdXRlIG9yIHJlbGF0aXZlIFVSTCB0byBjb21iaW5lXG4gKlxuICogQHJldHVybnMge3N0cmluZ30gVGhlIGNvbWJpbmVkIGZ1bGwgcGF0aFxuICovXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBidWlsZEZ1bGxQYXRoKGJhc2VVUkwsIHJlcXVlc3RlZFVSTCwgYWxsb3dBYnNvbHV0ZVVybHMpIHtcbiAgbGV0IGlzUmVsYXRpdmVVcmwgPSAhaXNBYnNvbHV0ZVVSTChyZXF1ZXN0ZWRVUkwpO1xuICBpZiAoYmFzZVVSTCAmJiAoaXNSZWxhdGl2ZVVybCB8fCBhbGxvd0Fic29sdXRlVXJscyA9PSBmYWxzZSkpIHtcbiAgICByZXR1cm4gY29tYmluZVVSTHMoYmFzZVVSTCwgcmVxdWVzdGVkVVJMKTtcbiAgfVxuICByZXR1cm4gcmVxdWVzdGVkVVJMO1xufVxuIiwgIid1c2Ugc3RyaWN0JztcblxudmFyIHBhcnNlVXJsID0gcmVxdWlyZSgndXJsJykucGFyc2U7XG5cbnZhciBERUZBVUxUX1BPUlRTID0ge1xuICBmdHA6IDIxLFxuICBnb3BoZXI6IDcwLFxuICBodHRwOiA4MCxcbiAgaHR0cHM6IDQ0MyxcbiAgd3M6IDgwLFxuICB3c3M6IDQ0Myxcbn07XG5cbnZhciBzdHJpbmdFbmRzV2l0aCA9IFN0cmluZy5wcm90b3R5cGUuZW5kc1dpdGggfHwgZnVuY3Rpb24ocykge1xuICByZXR1cm4gcy5sZW5ndGggPD0gdGhpcy5sZW5ndGggJiZcbiAgICB0aGlzLmluZGV4T2YocywgdGhpcy5sZW5ndGggLSBzLmxlbmd0aCkgIT09IC0xO1xufTtcblxuLyoqXG4gKiBAcGFyYW0ge3N0cmluZ3xvYmplY3R9IHVybCAtIFRoZSBVUkwsIG9yIHRoZSByZXN1bHQgZnJvbSB1cmwucGFyc2UuXG4gKiBAcmV0dXJuIHtzdHJpbmd9IFRoZSBVUkwgb2YgdGhlIHByb3h5IHRoYXQgc2hvdWxkIGhhbmRsZSB0aGUgcmVxdWVzdCB0byB0aGVcbiAqICBnaXZlbiBVUkwuIElmIG5vIHByb3h5IGlzIHNldCwgdGhpcyB3aWxsIGJlIGFuIGVtcHR5IHN0cmluZy5cbiAqL1xuZnVuY3Rpb24gZ2V0UHJveHlGb3JVcmwodXJsKSB7XG4gIHZhciBwYXJzZWRVcmwgPSB0eXBlb2YgdXJsID09PSAnc3RyaW5nJyA/IHBhcnNlVXJsKHVybCkgOiB1cmwgfHwge307XG4gIHZhciBwcm90byA9IHBhcnNlZFVybC5wcm90b2NvbDtcbiAgdmFyIGhvc3RuYW1lID0gcGFyc2VkVXJsLmhvc3Q7XG4gIHZhciBwb3J0ID0gcGFyc2VkVXJsLnBvcnQ7XG4gIGlmICh0eXBlb2YgaG9zdG5hbWUgIT09ICdzdHJpbmcnIHx8ICFob3N0bmFtZSB8fCB0eXBlb2YgcHJvdG8gIT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuICcnOyAgLy8gRG9uJ3QgcHJveHkgVVJMcyB3aXRob3V0IGEgdmFsaWQgc2NoZW1lIG9yIGhvc3QuXG4gIH1cblxuICBwcm90byA9IHByb3RvLnNwbGl0KCc6JywgMSlbMF07XG4gIC8vIFN0cmlwcGluZyBwb3J0cyBpbiB0aGlzIHdheSBpbnN0ZWFkIG9mIHVzaW5nIHBhcnNlZFVybC5ob3N0bmFtZSB0byBtYWtlXG4gIC8vIHN1cmUgdGhhdCB0aGUgYnJhY2tldHMgYXJvdW5kIElQdjYgYWRkcmVzc2VzIGFyZSBrZXB0LlxuICBob3N0bmFtZSA9IGhvc3RuYW1lLnJlcGxhY2UoLzpcXGQqJC8sICcnKTtcbiAgcG9ydCA9IHBhcnNlSW50KHBvcnQpIHx8IERFRkFVTFRfUE9SVFNbcHJvdG9dIHx8IDA7XG4gIGlmICghc2hvdWxkUHJveHkoaG9zdG5hbWUsIHBvcnQpKSB7XG4gICAgcmV0dXJuICcnOyAgLy8gRG9uJ3QgcHJveHkgVVJMcyB0aGF0IG1hdGNoIE5PX1BST1hZLlxuICB9XG5cbiAgdmFyIHByb3h5ID1cbiAgICBnZXRFbnYoJ25wbV9jb25maWdfJyArIHByb3RvICsgJ19wcm94eScpIHx8XG4gICAgZ2V0RW52KHByb3RvICsgJ19wcm94eScpIHx8XG4gICAgZ2V0RW52KCducG1fY29uZmlnX3Byb3h5JykgfHxcbiAgICBnZXRFbnYoJ2FsbF9wcm94eScpO1xuICBpZiAocHJveHkgJiYgcHJveHkuaW5kZXhPZignOi8vJykgPT09IC0xKSB7XG4gICAgLy8gTWlzc2luZyBzY2hlbWUgaW4gcHJveHksIGRlZmF1bHQgdG8gdGhlIHJlcXVlc3RlZCBVUkwncyBzY2hlbWUuXG4gICAgcHJveHkgPSBwcm90byArICc6Ly8nICsgcHJveHk7XG4gIH1cbiAgcmV0dXJuIHByb3h5O1xufVxuXG4vKipcbiAqIERldGVybWluZXMgd2hldGhlciBhIGdpdmVuIFVSTCBzaG91bGQgYmUgcHJveGllZC5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gaG9zdG5hbWUgLSBUaGUgaG9zdCBuYW1lIG9mIHRoZSBVUkwuXG4gKiBAcGFyYW0ge251bWJlcn0gcG9ydCAtIFRoZSBlZmZlY3RpdmUgcG9ydCBvZiB0aGUgVVJMLlxuICogQHJldHVybnMge2Jvb2xlYW59IFdoZXRoZXIgdGhlIGdpdmVuIFVSTCBzaG91bGQgYmUgcHJveGllZC5cbiAqIEBwcml2YXRlXG4gKi9cbmZ1bmN0aW9uIHNob3VsZFByb3h5KGhvc3RuYW1lLCBwb3J0KSB7XG4gIHZhciBOT19QUk9YWSA9XG4gICAgKGdldEVudignbnBtX2NvbmZpZ19ub19wcm94eScpIHx8IGdldEVudignbm9fcHJveHknKSkudG9Mb3dlckNhc2UoKTtcbiAgaWYgKCFOT19QUk9YWSkge1xuICAgIHJldHVybiB0cnVlOyAgLy8gQWx3YXlzIHByb3h5IGlmIE5PX1BST1hZIGlzIG5vdCBzZXQuXG4gIH1cbiAgaWYgKE5PX1BST1hZID09PSAnKicpIHtcbiAgICByZXR1cm4gZmFsc2U7ICAvLyBOZXZlciBwcm94eSBpZiB3aWxkY2FyZCBpcyBzZXQuXG4gIH1cblxuICByZXR1cm4gTk9fUFJPWFkuc3BsaXQoL1ssXFxzXS8pLmV2ZXJ5KGZ1bmN0aW9uKHByb3h5KSB7XG4gICAgaWYgKCFwcm94eSkge1xuICAgICAgcmV0dXJuIHRydWU7ICAvLyBTa2lwIHplcm8tbGVuZ3RoIGhvc3RzLlxuICAgIH1cbiAgICB2YXIgcGFyc2VkUHJveHkgPSBwcm94eS5tYXRjaCgvXiguKyk6KFxcZCspJC8pO1xuICAgIHZhciBwYXJzZWRQcm94eUhvc3RuYW1lID0gcGFyc2VkUHJveHkgPyBwYXJzZWRQcm94eVsxXSA6IHByb3h5O1xuICAgIHZhciBwYXJzZWRQcm94eVBvcnQgPSBwYXJzZWRQcm94eSA/IHBhcnNlSW50KHBhcnNlZFByb3h5WzJdKSA6IDA7XG4gICAgaWYgKHBhcnNlZFByb3h5UG9ydCAmJiBwYXJzZWRQcm94eVBvcnQgIT09IHBvcnQpIHtcbiAgICAgIHJldHVybiB0cnVlOyAgLy8gU2tpcCBpZiBwb3J0cyBkb24ndCBtYXRjaC5cbiAgICB9XG5cbiAgICBpZiAoIS9eWy4qXS8udGVzdChwYXJzZWRQcm94eUhvc3RuYW1lKSkge1xuICAgICAgLy8gTm8gd2lsZGNhcmRzLCBzbyBzdG9wIHByb3h5aW5nIGlmIHRoZXJlIGlzIGFuIGV4YWN0IG1hdGNoLlxuICAgICAgcmV0dXJuIGhvc3RuYW1lICE9PSBwYXJzZWRQcm94eUhvc3RuYW1lO1xuICAgIH1cblxuICAgIGlmIChwYXJzZWRQcm94eUhvc3RuYW1lLmNoYXJBdCgwKSA9PT0gJyonKSB7XG4gICAgICAvLyBSZW1vdmUgbGVhZGluZyB3aWxkY2FyZC5cbiAgICAgIHBhcnNlZFByb3h5SG9zdG5hbWUgPSBwYXJzZWRQcm94eUhvc3RuYW1lLnNsaWNlKDEpO1xuICAgIH1cbiAgICAvLyBTdG9wIHByb3h5aW5nIGlmIHRoZSBob3N0bmFtZSBlbmRzIHdpdGggdGhlIG5vX3Byb3h5IGhvc3QuXG4gICAgcmV0dXJuICFzdHJpbmdFbmRzV2l0aC5jYWxsKGhvc3RuYW1lLCBwYXJzZWRQcm94eUhvc3RuYW1lKTtcbiAgfSk7XG59XG5cbi8qKlxuICogR2V0IHRoZSB2YWx1ZSBmb3IgYW4gZW52aXJvbm1lbnQgdmFyaWFibGUuXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IGtleSAtIFRoZSBuYW1lIG9mIHRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZS5cbiAqIEByZXR1cm4ge3N0cmluZ30gVGhlIHZhbHVlIG9mIHRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZS5cbiAqIEBwcml2YXRlXG4gKi9cbmZ1bmN0aW9uIGdldEVudihrZXkpIHtcbiAgcmV0dXJuIHByb2Nlc3MuZW52W2tleS50b0xvd2VyQ2FzZSgpXSB8fCBwcm9jZXNzLmVudltrZXkudG9VcHBlckNhc2UoKV0gfHwgJyc7XG59XG5cbmV4cG9ydHMuZ2V0UHJveHlGb3JVcmwgPSBnZXRQcm94eUZvclVybDtcbiIsICIvKipcbiAqIEhlbHBlcnMuXG4gKi9cblxudmFyIHMgPSAxMDAwO1xudmFyIG0gPSBzICogNjA7XG52YXIgaCA9IG0gKiA2MDtcbnZhciBkID0gaCAqIDI0O1xudmFyIHcgPSBkICogNztcbnZhciB5ID0gZCAqIDM2NS4yNTtcblxuLyoqXG4gKiBQYXJzZSBvciBmb3JtYXQgdGhlIGdpdmVuIGB2YWxgLlxuICpcbiAqIE9wdGlvbnM6XG4gKlxuICogIC0gYGxvbmdgIHZlcmJvc2UgZm9ybWF0dGluZyBbZmFsc2VdXG4gKlxuICogQHBhcmFtIHtTdHJpbmd8TnVtYmVyfSB2YWxcbiAqIEBwYXJhbSB7T2JqZWN0fSBbb3B0aW9uc11cbiAqIEB0aHJvd3Mge0Vycm9yfSB0aHJvdyBhbiBlcnJvciBpZiB2YWwgaXMgbm90IGEgbm9uLWVtcHR5IHN0cmluZyBvciBhIG51bWJlclxuICogQHJldHVybiB7U3RyaW5nfE51bWJlcn1cbiAqIEBhcGkgcHVibGljXG4gKi9cblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAodmFsLCBvcHRpb25zKSB7XG4gIG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9O1xuICB2YXIgdHlwZSA9IHR5cGVvZiB2YWw7XG4gIGlmICh0eXBlID09PSAnc3RyaW5nJyAmJiB2YWwubGVuZ3RoID4gMCkge1xuICAgIHJldHVybiBwYXJzZSh2YWwpO1xuICB9IGVsc2UgaWYgKHR5cGUgPT09ICdudW1iZXInICYmIGlzRmluaXRlKHZhbCkpIHtcbiAgICByZXR1cm4gb3B0aW9ucy5sb25nID8gZm10TG9uZyh2YWwpIDogZm10U2hvcnQodmFsKTtcbiAgfVxuICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgJ3ZhbCBpcyBub3QgYSBub24tZW1wdHkgc3RyaW5nIG9yIGEgdmFsaWQgbnVtYmVyLiB2YWw9JyArXG4gICAgICBKU09OLnN0cmluZ2lmeSh2YWwpXG4gICk7XG59O1xuXG4vKipcbiAqIFBhcnNlIHRoZSBnaXZlbiBgc3RyYCBhbmQgcmV0dXJuIG1pbGxpc2Vjb25kcy5cbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gc3RyXG4gKiBAcmV0dXJuIHtOdW1iZXJ9XG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuXG5mdW5jdGlvbiBwYXJzZShzdHIpIHtcbiAgc3RyID0gU3RyaW5nKHN0cik7XG4gIGlmIChzdHIubGVuZ3RoID4gMTAwKSB7XG4gICAgcmV0dXJuO1xuICB9XG4gIHZhciBtYXRjaCA9IC9eKC0/KD86XFxkKyk/XFwuP1xcZCspICoobWlsbGlzZWNvbmRzP3xtc2Vjcz98bXN8c2Vjb25kcz98c2Vjcz98c3xtaW51dGVzP3xtaW5zP3xtfGhvdXJzP3xocnM/fGh8ZGF5cz98ZHx3ZWVrcz98d3x5ZWFycz98eXJzP3x5KT8kL2kuZXhlYyhcbiAgICBzdHJcbiAgKTtcbiAgaWYgKCFtYXRjaCkge1xuICAgIHJldHVybjtcbiAgfVxuICB2YXIgbiA9IHBhcnNlRmxvYXQobWF0Y2hbMV0pO1xuICB2YXIgdHlwZSA9IChtYXRjaFsyXSB8fCAnbXMnKS50b0xvd2VyQ2FzZSgpO1xuICBzd2l0Y2ggKHR5cGUpIHtcbiAgICBjYXNlICd5ZWFycyc6XG4gICAgY2FzZSAneWVhcic6XG4gICAgY2FzZSAneXJzJzpcbiAgICBjYXNlICd5cic6XG4gICAgY2FzZSAneSc6XG4gICAgICByZXR1cm4gbiAqIHk7XG4gICAgY2FzZSAnd2Vla3MnOlxuICAgIGNhc2UgJ3dlZWsnOlxuICAgIGNhc2UgJ3cnOlxuICAgICAgcmV0dXJuIG4gKiB3O1xuICAgIGNhc2UgJ2RheXMnOlxuICAgIGNhc2UgJ2RheSc6XG4gICAgY2FzZSAnZCc6XG4gICAgICByZXR1cm4gbiAqIGQ7XG4gICAgY2FzZSAnaG91cnMnOlxuICAgIGNhc2UgJ2hvdXInOlxuICAgIGNhc2UgJ2hycyc6XG4gICAgY2FzZSAnaHInOlxuICAgIGNhc2UgJ2gnOlxuICAgICAgcmV0dXJuIG4gKiBoO1xuICAgIGNhc2UgJ21pbnV0ZXMnOlxuICAgIGNhc2UgJ21pbnV0ZSc6XG4gICAgY2FzZSAnbWlucyc6XG4gICAgY2FzZSAnbWluJzpcbiAgICBjYXNlICdtJzpcbiAgICAgIHJldHVybiBuICogbTtcbiAgICBjYXNlICdzZWNvbmRzJzpcbiAgICBjYXNlICdzZWNvbmQnOlxuICAgIGNhc2UgJ3NlY3MnOlxuICAgIGNhc2UgJ3NlYyc6XG4gICAgY2FzZSAncyc6XG4gICAgICByZXR1cm4gbiAqIHM7XG4gICAgY2FzZSAnbWlsbGlzZWNvbmRzJzpcbiAgICBjYXNlICdtaWxsaXNlY29uZCc6XG4gICAgY2FzZSAnbXNlY3MnOlxuICAgIGNhc2UgJ21zZWMnOlxuICAgIGNhc2UgJ21zJzpcbiAgICAgIHJldHVybiBuO1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG59XG5cbi8qKlxuICogU2hvcnQgZm9ybWF0IGZvciBgbXNgLlxuICpcbiAqIEBwYXJhbSB7TnVtYmVyfSBtc1xuICogQHJldHVybiB7U3RyaW5nfVxuICogQGFwaSBwcml2YXRlXG4gKi9cblxuZnVuY3Rpb24gZm10U2hvcnQobXMpIHtcbiAgdmFyIG1zQWJzID0gTWF0aC5hYnMobXMpO1xuICBpZiAobXNBYnMgPj0gZCkge1xuICAgIHJldHVybiBNYXRoLnJvdW5kKG1zIC8gZCkgKyAnZCc7XG4gIH1cbiAgaWYgKG1zQWJzID49IGgpIHtcbiAgICByZXR1cm4gTWF0aC5yb3VuZChtcyAvIGgpICsgJ2gnO1xuICB9XG4gIGlmIChtc0FicyA+PSBtKSB7XG4gICAgcmV0dXJuIE1hdGgucm91bmQobXMgLyBtKSArICdtJztcbiAgfVxuICBpZiAobXNBYnMgPj0gcykge1xuICAgIHJldHVybiBNYXRoLnJvdW5kKG1zIC8gcykgKyAncyc7XG4gIH1cbiAgcmV0dXJuIG1zICsgJ21zJztcbn1cblxuLyoqXG4gKiBMb25nIGZvcm1hdCBmb3IgYG1zYC5cbiAqXG4gKiBAcGFyYW0ge051bWJlcn0gbXNcbiAqIEByZXR1cm4ge1N0cmluZ31cbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5cbmZ1bmN0aW9uIGZtdExvbmcobXMpIHtcbiAgdmFyIG1zQWJzID0gTWF0aC5hYnMobXMpO1xuICBpZiAobXNBYnMgPj0gZCkge1xuICAgIHJldHVybiBwbHVyYWwobXMsIG1zQWJzLCBkLCAnZGF5Jyk7XG4gIH1cbiAgaWYgKG1zQWJzID49IGgpIHtcbiAgICByZXR1cm4gcGx1cmFsKG1zLCBtc0FicywgaCwgJ2hvdXInKTtcbiAgfVxuICBpZiAobXNBYnMgPj0gbSkge1xuICAgIHJldHVybiBwbHVyYWwobXMsIG1zQWJzLCBtLCAnbWludXRlJyk7XG4gIH1cbiAgaWYgKG1zQWJzID49IHMpIHtcbiAgICByZXR1cm4gcGx1cmFsKG1zLCBtc0FicywgcywgJ3NlY29uZCcpO1xuICB9XG4gIHJldHVybiBtcyArICcgbXMnO1xufVxuXG4vKipcbiAqIFBsdXJhbGl6YXRpb24gaGVscGVyLlxuICovXG5cbmZ1bmN0aW9uIHBsdXJhbChtcywgbXNBYnMsIG4sIG5hbWUpIHtcbiAgdmFyIGlzUGx1cmFsID0gbXNBYnMgPj0gbiAqIDEuNTtcbiAgcmV0dXJuIE1hdGgucm91bmQobXMgLyBuKSArICcgJyArIG5hbWUgKyAoaXNQbHVyYWwgPyAncycgOiAnJyk7XG59XG4iLCAiXG4vKipcbiAqIFRoaXMgaXMgdGhlIGNvbW1vbiBsb2dpYyBmb3IgYm90aCB0aGUgTm9kZS5qcyBhbmQgd2ViIGJyb3dzZXJcbiAqIGltcGxlbWVudGF0aW9ucyBvZiBgZGVidWcoKWAuXG4gKi9cblxuZnVuY3Rpb24gc2V0dXAoZW52KSB7XG5cdGNyZWF0ZURlYnVnLmRlYnVnID0gY3JlYXRlRGVidWc7XG5cdGNyZWF0ZURlYnVnLmRlZmF1bHQgPSBjcmVhdGVEZWJ1Zztcblx0Y3JlYXRlRGVidWcuY29lcmNlID0gY29lcmNlO1xuXHRjcmVhdGVEZWJ1Zy5kaXNhYmxlID0gZGlzYWJsZTtcblx0Y3JlYXRlRGVidWcuZW5hYmxlID0gZW5hYmxlO1xuXHRjcmVhdGVEZWJ1Zy5lbmFibGVkID0gZW5hYmxlZDtcblx0Y3JlYXRlRGVidWcuaHVtYW5pemUgPSByZXF1aXJlKCdtcycpO1xuXHRjcmVhdGVEZWJ1Zy5kZXN0cm95ID0gZGVzdHJveTtcblxuXHRPYmplY3Qua2V5cyhlbnYpLmZvckVhY2goa2V5ID0+IHtcblx0XHRjcmVhdGVEZWJ1Z1trZXldID0gZW52W2tleV07XG5cdH0pO1xuXG5cdC8qKlxuXHQqIFRoZSBjdXJyZW50bHkgYWN0aXZlIGRlYnVnIG1vZGUgbmFtZXMsIGFuZCBuYW1lcyB0byBza2lwLlxuXHQqL1xuXG5cdGNyZWF0ZURlYnVnLm5hbWVzID0gW107XG5cdGNyZWF0ZURlYnVnLnNraXBzID0gW107XG5cblx0LyoqXG5cdCogTWFwIG9mIHNwZWNpYWwgXCIlblwiIGhhbmRsaW5nIGZ1bmN0aW9ucywgZm9yIHRoZSBkZWJ1ZyBcImZvcm1hdFwiIGFyZ3VtZW50LlxuXHQqXG5cdCogVmFsaWQga2V5IG5hbWVzIGFyZSBhIHNpbmdsZSwgbG93ZXIgb3IgdXBwZXItY2FzZSBsZXR0ZXIsIGkuZS4gXCJuXCIgYW5kIFwiTlwiLlxuXHQqL1xuXHRjcmVhdGVEZWJ1Zy5mb3JtYXR0ZXJzID0ge307XG5cblx0LyoqXG5cdCogU2VsZWN0cyBhIGNvbG9yIGZvciBhIGRlYnVnIG5hbWVzcGFjZVxuXHQqIEBwYXJhbSB7U3RyaW5nfSBuYW1lc3BhY2UgVGhlIG5hbWVzcGFjZSBzdHJpbmcgZm9yIHRoZSBkZWJ1ZyBpbnN0YW5jZSB0byBiZSBjb2xvcmVkXG5cdCogQHJldHVybiB7TnVtYmVyfFN0cmluZ30gQW4gQU5TSSBjb2xvciBjb2RlIGZvciB0aGUgZ2l2ZW4gbmFtZXNwYWNlXG5cdCogQGFwaSBwcml2YXRlXG5cdCovXG5cdGZ1bmN0aW9uIHNlbGVjdENvbG9yKG5hbWVzcGFjZSkge1xuXHRcdGxldCBoYXNoID0gMDtcblxuXHRcdGZvciAobGV0IGkgPSAwOyBpIDwgbmFtZXNwYWNlLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRoYXNoID0gKChoYXNoIDw8IDUpIC0gaGFzaCkgKyBuYW1lc3BhY2UuY2hhckNvZGVBdChpKTtcblx0XHRcdGhhc2ggfD0gMDsgLy8gQ29udmVydCB0byAzMmJpdCBpbnRlZ2VyXG5cdFx0fVxuXG5cdFx0cmV0dXJuIGNyZWF0ZURlYnVnLmNvbG9yc1tNYXRoLmFicyhoYXNoKSAlIGNyZWF0ZURlYnVnLmNvbG9ycy5sZW5ndGhdO1xuXHR9XG5cdGNyZWF0ZURlYnVnLnNlbGVjdENvbG9yID0gc2VsZWN0Q29sb3I7XG5cblx0LyoqXG5cdCogQ3JlYXRlIGEgZGVidWdnZXIgd2l0aCB0aGUgZ2l2ZW4gYG5hbWVzcGFjZWAuXG5cdCpcblx0KiBAcGFyYW0ge1N0cmluZ30gbmFtZXNwYWNlXG5cdCogQHJldHVybiB7RnVuY3Rpb259XG5cdCogQGFwaSBwdWJsaWNcblx0Ki9cblx0ZnVuY3Rpb24gY3JlYXRlRGVidWcobmFtZXNwYWNlKSB7XG5cdFx0bGV0IHByZXZUaW1lO1xuXHRcdGxldCBlbmFibGVPdmVycmlkZSA9IG51bGw7XG5cdFx0bGV0IG5hbWVzcGFjZXNDYWNoZTtcblx0XHRsZXQgZW5hYmxlZENhY2hlO1xuXG5cdFx0ZnVuY3Rpb24gZGVidWcoLi4uYXJncykge1xuXHRcdFx0Ly8gRGlzYWJsZWQ/XG5cdFx0XHRpZiAoIWRlYnVnLmVuYWJsZWQpIHtcblx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0fVxuXG5cdFx0XHRjb25zdCBzZWxmID0gZGVidWc7XG5cblx0XHRcdC8vIFNldCBgZGlmZmAgdGltZXN0YW1wXG5cdFx0XHRjb25zdCBjdXJyID0gTnVtYmVyKG5ldyBEYXRlKCkpO1xuXHRcdFx0Y29uc3QgbXMgPSBjdXJyIC0gKHByZXZUaW1lIHx8IGN1cnIpO1xuXHRcdFx0c2VsZi5kaWZmID0gbXM7XG5cdFx0XHRzZWxmLnByZXYgPSBwcmV2VGltZTtcblx0XHRcdHNlbGYuY3VyciA9IGN1cnI7XG5cdFx0XHRwcmV2VGltZSA9IGN1cnI7XG5cblx0XHRcdGFyZ3NbMF0gPSBjcmVhdGVEZWJ1Zy5jb2VyY2UoYXJnc1swXSk7XG5cblx0XHRcdGlmICh0eXBlb2YgYXJnc1swXSAhPT0gJ3N0cmluZycpIHtcblx0XHRcdFx0Ly8gQW55dGhpbmcgZWxzZSBsZXQncyBpbnNwZWN0IHdpdGggJU9cblx0XHRcdFx0YXJncy51bnNoaWZ0KCclTycpO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBBcHBseSBhbnkgYGZvcm1hdHRlcnNgIHRyYW5zZm9ybWF0aW9uc1xuXHRcdFx0bGV0IGluZGV4ID0gMDtcblx0XHRcdGFyZ3NbMF0gPSBhcmdzWzBdLnJlcGxhY2UoLyUoW2EtekEtWiVdKS9nLCAobWF0Y2gsIGZvcm1hdCkgPT4ge1xuXHRcdFx0XHQvLyBJZiB3ZSBlbmNvdW50ZXIgYW4gZXNjYXBlZCAlIHRoZW4gZG9uJ3QgaW5jcmVhc2UgdGhlIGFycmF5IGluZGV4XG5cdFx0XHRcdGlmIChtYXRjaCA9PT0gJyUlJykge1xuXHRcdFx0XHRcdHJldHVybiAnJSc7XG5cdFx0XHRcdH1cblx0XHRcdFx0aW5kZXgrKztcblx0XHRcdFx0Y29uc3QgZm9ybWF0dGVyID0gY3JlYXRlRGVidWcuZm9ybWF0dGVyc1tmb3JtYXRdO1xuXHRcdFx0XHRpZiAodHlwZW9mIGZvcm1hdHRlciA9PT0gJ2Z1bmN0aW9uJykge1xuXHRcdFx0XHRcdGNvbnN0IHZhbCA9IGFyZ3NbaW5kZXhdO1xuXHRcdFx0XHRcdG1hdGNoID0gZm9ybWF0dGVyLmNhbGwoc2VsZiwgdmFsKTtcblxuXHRcdFx0XHRcdC8vIE5vdyB3ZSBuZWVkIHRvIHJlbW92ZSBgYXJnc1tpbmRleF1gIHNpbmNlIGl0J3MgaW5saW5lZCBpbiB0aGUgYGZvcm1hdGBcblx0XHRcdFx0XHRhcmdzLnNwbGljZShpbmRleCwgMSk7XG5cdFx0XHRcdFx0aW5kZXgtLTtcblx0XHRcdFx0fVxuXHRcdFx0XHRyZXR1cm4gbWF0Y2g7XG5cdFx0XHR9KTtcblxuXHRcdFx0Ly8gQXBwbHkgZW52LXNwZWNpZmljIGZvcm1hdHRpbmcgKGNvbG9ycywgZXRjLilcblx0XHRcdGNyZWF0ZURlYnVnLmZvcm1hdEFyZ3MuY2FsbChzZWxmLCBhcmdzKTtcblxuXHRcdFx0Y29uc3QgbG9nRm4gPSBzZWxmLmxvZyB8fCBjcmVhdGVEZWJ1Zy5sb2c7XG5cdFx0XHRsb2dGbi5hcHBseShzZWxmLCBhcmdzKTtcblx0XHR9XG5cblx0XHRkZWJ1Zy5uYW1lc3BhY2UgPSBuYW1lc3BhY2U7XG5cdFx0ZGVidWcudXNlQ29sb3JzID0gY3JlYXRlRGVidWcudXNlQ29sb3JzKCk7XG5cdFx0ZGVidWcuY29sb3IgPSBjcmVhdGVEZWJ1Zy5zZWxlY3RDb2xvcihuYW1lc3BhY2UpO1xuXHRcdGRlYnVnLmV4dGVuZCA9IGV4dGVuZDtcblx0XHRkZWJ1Zy5kZXN0cm95ID0gY3JlYXRlRGVidWcuZGVzdHJveTsgLy8gWFhYIFRlbXBvcmFyeS4gV2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZXh0IG1ham9yIHJlbGVhc2UuXG5cblx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZGVidWcsICdlbmFibGVkJywge1xuXHRcdFx0ZW51bWVyYWJsZTogdHJ1ZSxcblx0XHRcdGNvbmZpZ3VyYWJsZTogZmFsc2UsXG5cdFx0XHRnZXQ6ICgpID0+IHtcblx0XHRcdFx0aWYgKGVuYWJsZU92ZXJyaWRlICE9PSBudWxsKSB7XG5cdFx0XHRcdFx0cmV0dXJuIGVuYWJsZU92ZXJyaWRlO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGlmIChuYW1lc3BhY2VzQ2FjaGUgIT09IGNyZWF0ZURlYnVnLm5hbWVzcGFjZXMpIHtcblx0XHRcdFx0XHRuYW1lc3BhY2VzQ2FjaGUgPSBjcmVhdGVEZWJ1Zy5uYW1lc3BhY2VzO1xuXHRcdFx0XHRcdGVuYWJsZWRDYWNoZSA9IGNyZWF0ZURlYnVnLmVuYWJsZWQobmFtZXNwYWNlKTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdHJldHVybiBlbmFibGVkQ2FjaGU7XG5cdFx0XHR9LFxuXHRcdFx0c2V0OiB2ID0+IHtcblx0XHRcdFx0ZW5hYmxlT3ZlcnJpZGUgPSB2O1xuXHRcdFx0fVxuXHRcdH0pO1xuXG5cdFx0Ly8gRW52LXNwZWNpZmljIGluaXRpYWxpemF0aW9uIGxvZ2ljIGZvciBkZWJ1ZyBpbnN0YW5jZXNcblx0XHRpZiAodHlwZW9mIGNyZWF0ZURlYnVnLmluaXQgPT09ICdmdW5jdGlvbicpIHtcblx0XHRcdGNyZWF0ZURlYnVnLmluaXQoZGVidWcpO1xuXHRcdH1cblxuXHRcdHJldHVybiBkZWJ1Zztcblx0fVxuXG5cdGZ1bmN0aW9uIGV4dGVuZChuYW1lc3BhY2UsIGRlbGltaXRlcikge1xuXHRcdGNvbnN0IG5ld0RlYnVnID0gY3JlYXRlRGVidWcodGhpcy5uYW1lc3BhY2UgKyAodHlwZW9mIGRlbGltaXRlciA9PT0gJ3VuZGVmaW5lZCcgPyAnOicgOiBkZWxpbWl0ZXIpICsgbmFtZXNwYWNlKTtcblx0XHRuZXdEZWJ1Zy5sb2cgPSB0aGlzLmxvZztcblx0XHRyZXR1cm4gbmV3RGVidWc7XG5cdH1cblxuXHQvKipcblx0KiBFbmFibGVzIGEgZGVidWcgbW9kZSBieSBuYW1lc3BhY2VzLiBUaGlzIGNhbiBpbmNsdWRlIG1vZGVzXG5cdCogc2VwYXJhdGVkIGJ5IGEgY29sb24gYW5kIHdpbGRjYXJkcy5cblx0KlxuXHQqIEBwYXJhbSB7U3RyaW5nfSBuYW1lc3BhY2VzXG5cdCogQGFwaSBwdWJsaWNcblx0Ki9cblx0ZnVuY3Rpb24gZW5hYmxlKG5hbWVzcGFjZXMpIHtcblx0XHRjcmVhdGVEZWJ1Zy5zYXZlKG5hbWVzcGFjZXMpO1xuXHRcdGNyZWF0ZURlYnVnLm5hbWVzcGFjZXMgPSBuYW1lc3BhY2VzO1xuXG5cdFx0Y3JlYXRlRGVidWcubmFtZXMgPSBbXTtcblx0XHRjcmVhdGVEZWJ1Zy5za2lwcyA9IFtdO1xuXG5cdFx0Y29uc3Qgc3BsaXQgPSAodHlwZW9mIG5hbWVzcGFjZXMgPT09ICdzdHJpbmcnID8gbmFtZXNwYWNlcyA6ICcnKVxuXHRcdFx0LnRyaW0oKVxuXHRcdFx0LnJlcGxhY2UoJyAnLCAnLCcpXG5cdFx0XHQuc3BsaXQoJywnKVxuXHRcdFx0LmZpbHRlcihCb29sZWFuKTtcblxuXHRcdGZvciAoY29uc3QgbnMgb2Ygc3BsaXQpIHtcblx0XHRcdGlmIChuc1swXSA9PT0gJy0nKSB7XG5cdFx0XHRcdGNyZWF0ZURlYnVnLnNraXBzLnB1c2gobnMuc2xpY2UoMSkpO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0Y3JlYXRlRGVidWcubmFtZXMucHVzaChucyk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0LyoqXG5cdCAqIENoZWNrcyBpZiB0aGUgZ2l2ZW4gc3RyaW5nIG1hdGNoZXMgYSBuYW1lc3BhY2UgdGVtcGxhdGUsIGhvbm9yaW5nXG5cdCAqIGFzdGVyaXNrcyBhcyB3aWxkY2FyZHMuXG5cdCAqXG5cdCAqIEBwYXJhbSB7U3RyaW5nfSBzZWFyY2hcblx0ICogQHBhcmFtIHtTdHJpbmd9IHRlbXBsYXRlXG5cdCAqIEByZXR1cm4ge0Jvb2xlYW59XG5cdCAqL1xuXHRmdW5jdGlvbiBtYXRjaGVzVGVtcGxhdGUoc2VhcmNoLCB0ZW1wbGF0ZSkge1xuXHRcdGxldCBzZWFyY2hJbmRleCA9IDA7XG5cdFx0bGV0IHRlbXBsYXRlSW5kZXggPSAwO1xuXHRcdGxldCBzdGFySW5kZXggPSAtMTtcblx0XHRsZXQgbWF0Y2hJbmRleCA9IDA7XG5cblx0XHR3aGlsZSAoc2VhcmNoSW5kZXggPCBzZWFyY2gubGVuZ3RoKSB7XG5cdFx0XHRpZiAodGVtcGxhdGVJbmRleCA8IHRlbXBsYXRlLmxlbmd0aCAmJiAodGVtcGxhdGVbdGVtcGxhdGVJbmRleF0gPT09IHNlYXJjaFtzZWFyY2hJbmRleF0gfHwgdGVtcGxhdGVbdGVtcGxhdGVJbmRleF0gPT09ICcqJykpIHtcblx0XHRcdFx0Ly8gTWF0Y2ggY2hhcmFjdGVyIG9yIHByb2NlZWQgd2l0aCB3aWxkY2FyZFxuXHRcdFx0XHRpZiAodGVtcGxhdGVbdGVtcGxhdGVJbmRleF0gPT09ICcqJykge1xuXHRcdFx0XHRcdHN0YXJJbmRleCA9IHRlbXBsYXRlSW5kZXg7XG5cdFx0XHRcdFx0bWF0Y2hJbmRleCA9IHNlYXJjaEluZGV4O1xuXHRcdFx0XHRcdHRlbXBsYXRlSW5kZXgrKzsgLy8gU2tpcCB0aGUgJyonXG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0c2VhcmNoSW5kZXgrKztcblx0XHRcdFx0XHR0ZW1wbGF0ZUluZGV4Kys7XG5cdFx0XHRcdH1cblx0XHRcdH0gZWxzZSBpZiAoc3RhckluZGV4ICE9PSAtMSkgeyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLW5lZ2F0ZWQtY29uZGl0aW9uXG5cdFx0XHRcdC8vIEJhY2t0cmFjayB0byB0aGUgbGFzdCAnKicgYW5kIHRyeSB0byBtYXRjaCBtb3JlIGNoYXJhY3RlcnNcblx0XHRcdFx0dGVtcGxhdGVJbmRleCA9IHN0YXJJbmRleCArIDE7XG5cdFx0XHRcdG1hdGNoSW5kZXgrKztcblx0XHRcdFx0c2VhcmNoSW5kZXggPSBtYXRjaEluZGV4O1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0cmV0dXJuIGZhbHNlOyAvLyBObyBtYXRjaFxuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC8vIEhhbmRsZSB0cmFpbGluZyAnKicgaW4gdGVtcGxhdGVcblx0XHR3aGlsZSAodGVtcGxhdGVJbmRleCA8IHRlbXBsYXRlLmxlbmd0aCAmJiB0ZW1wbGF0ZVt0ZW1wbGF0ZUluZGV4XSA9PT0gJyonKSB7XG5cdFx0XHR0ZW1wbGF0ZUluZGV4Kys7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIHRlbXBsYXRlSW5kZXggPT09IHRlbXBsYXRlLmxlbmd0aDtcblx0fVxuXG5cdC8qKlxuXHQqIERpc2FibGUgZGVidWcgb3V0cHV0LlxuXHQqXG5cdCogQHJldHVybiB7U3RyaW5nfSBuYW1lc3BhY2VzXG5cdCogQGFwaSBwdWJsaWNcblx0Ki9cblx0ZnVuY3Rpb24gZGlzYWJsZSgpIHtcblx0XHRjb25zdCBuYW1lc3BhY2VzID0gW1xuXHRcdFx0Li4uY3JlYXRlRGVidWcubmFtZXMsXG5cdFx0XHQuLi5jcmVhdGVEZWJ1Zy5za2lwcy5tYXAobmFtZXNwYWNlID0+ICctJyArIG5hbWVzcGFjZSlcblx0XHRdLmpvaW4oJywnKTtcblx0XHRjcmVhdGVEZWJ1Zy5lbmFibGUoJycpO1xuXHRcdHJldHVybiBuYW1lc3BhY2VzO1xuXHR9XG5cblx0LyoqXG5cdCogUmV0dXJucyB0cnVlIGlmIHRoZSBnaXZlbiBtb2RlIG5hbWUgaXMgZW5hYmxlZCwgZmFsc2Ugb3RoZXJ3aXNlLlxuXHQqXG5cdCogQHBhcmFtIHtTdHJpbmd9IG5hbWVcblx0KiBAcmV0dXJuIHtCb29sZWFufVxuXHQqIEBhcGkgcHVibGljXG5cdCovXG5cdGZ1bmN0aW9uIGVuYWJsZWQobmFtZSkge1xuXHRcdGZvciAoY29uc3Qgc2tpcCBvZiBjcmVhdGVEZWJ1Zy5za2lwcykge1xuXHRcdFx0aWYgKG1hdGNoZXNUZW1wbGF0ZShuYW1lLCBza2lwKSkge1xuXHRcdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Zm9yIChjb25zdCBucyBvZiBjcmVhdGVEZWJ1Zy5uYW1lcykge1xuXHRcdFx0aWYgKG1hdGNoZXNUZW1wbGF0ZShuYW1lLCBucykpIHtcblx0XHRcdFx0cmV0dXJuIHRydWU7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0cmV0dXJuIGZhbHNlO1xuXHR9XG5cblx0LyoqXG5cdCogQ29lcmNlIGB2YWxgLlxuXHQqXG5cdCogQHBhcmFtIHtNaXhlZH0gdmFsXG5cdCogQHJldHVybiB7TWl4ZWR9XG5cdCogQGFwaSBwcml2YXRlXG5cdCovXG5cdGZ1bmN0aW9uIGNvZXJjZSh2YWwpIHtcblx0XHRpZiAodmFsIGluc3RhbmNlb2YgRXJyb3IpIHtcblx0XHRcdHJldHVybiB2YWwuc3RhY2sgfHwgdmFsLm1lc3NhZ2U7XG5cdFx0fVxuXHRcdHJldHVybiB2YWw7XG5cdH1cblxuXHQvKipcblx0KiBYWFggRE8gTk9UIFVTRS4gVGhpcyBpcyBhIHRlbXBvcmFyeSBzdHViIGZ1bmN0aW9uLlxuXHQqIFhYWCBJdCBXSUxMIGJlIHJlbW92ZWQgaW4gdGhlIG5leHQgbWFqb3IgcmVsZWFzZS5cblx0Ki9cblx0ZnVuY3Rpb24gZGVzdHJveSgpIHtcblx0XHRjb25zb2xlLndhcm4oJ0luc3RhbmNlIG1ldGhvZCBgZGVidWcuZGVzdHJveSgpYCBpcyBkZXByZWNhdGVkIGFuZCBubyBsb25nZXIgZG9lcyBhbnl0aGluZy4gSXQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZXh0IG1ham9yIHZlcnNpb24gb2YgYGRlYnVnYC4nKTtcblx0fVxuXG5cdGNyZWF0ZURlYnVnLmVuYWJsZShjcmVhdGVEZWJ1Zy5sb2FkKCkpO1xuXG5cdHJldHVybiBjcmVhdGVEZWJ1Zztcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBzZXR1cDtcbiIsICIvKiBlc2xpbnQtZW52IGJyb3dzZXIgKi9cblxuLyoqXG4gKiBUaGlzIGlzIHRoZSB3ZWIgYnJvd3NlciBpbXBsZW1lbnRhdGlvbiBvZiBgZGVidWcoKWAuXG4gKi9cblxuZXhwb3J0cy5mb3JtYXRBcmdzID0gZm9ybWF0QXJncztcbmV4cG9ydHMuc2F2ZSA9IHNhdmU7XG5leHBvcnRzLmxvYWQgPSBsb2FkO1xuZXhwb3J0cy51c2VDb2xvcnMgPSB1c2VDb2xvcnM7XG5leHBvcnRzLnN0b3JhZ2UgPSBsb2NhbHN0b3JhZ2UoKTtcbmV4cG9ydHMuZGVzdHJveSA9ICgoKSA9PiB7XG5cdGxldCB3YXJuZWQgPSBmYWxzZTtcblxuXHRyZXR1cm4gKCkgPT4ge1xuXHRcdGlmICghd2FybmVkKSB7XG5cdFx0XHR3YXJuZWQgPSB0cnVlO1xuXHRcdFx0Y29uc29sZS53YXJuKCdJbnN0YW5jZSBtZXRob2QgYGRlYnVnLmRlc3Ryb3koKWAgaXMgZGVwcmVjYXRlZCBhbmQgbm8gbG9uZ2VyIGRvZXMgYW55dGhpbmcuIEl0IHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmV4dCBtYWpvciB2ZXJzaW9uIG9mIGBkZWJ1Z2AuJyk7XG5cdFx0fVxuXHR9O1xufSkoKTtcblxuLyoqXG4gKiBDb2xvcnMuXG4gKi9cblxuZXhwb3J0cy5jb2xvcnMgPSBbXG5cdCcjMDAwMENDJyxcblx0JyMwMDAwRkYnLFxuXHQnIzAwMzNDQycsXG5cdCcjMDAzM0ZGJyxcblx0JyMwMDY2Q0MnLFxuXHQnIzAwNjZGRicsXG5cdCcjMDA5OUNDJyxcblx0JyMwMDk5RkYnLFxuXHQnIzAwQ0MwMCcsXG5cdCcjMDBDQzMzJyxcblx0JyMwMENDNjYnLFxuXHQnIzAwQ0M5OScsXG5cdCcjMDBDQ0NDJyxcblx0JyMwMENDRkYnLFxuXHQnIzMzMDBDQycsXG5cdCcjMzMwMEZGJyxcblx0JyMzMzMzQ0MnLFxuXHQnIzMzMzNGRicsXG5cdCcjMzM2NkNDJyxcblx0JyMzMzY2RkYnLFxuXHQnIzMzOTlDQycsXG5cdCcjMzM5OUZGJyxcblx0JyMzM0NDMDAnLFxuXHQnIzMzQ0MzMycsXG5cdCcjMzNDQzY2Jyxcblx0JyMzM0NDOTknLFxuXHQnIzMzQ0NDQycsXG5cdCcjMzNDQ0ZGJyxcblx0JyM2NjAwQ0MnLFxuXHQnIzY2MDBGRicsXG5cdCcjNjYzM0NDJyxcblx0JyM2NjMzRkYnLFxuXHQnIzY2Q0MwMCcsXG5cdCcjNjZDQzMzJyxcblx0JyM5OTAwQ0MnLFxuXHQnIzk5MDBGRicsXG5cdCcjOTkzM0NDJyxcblx0JyM5OTMzRkYnLFxuXHQnIzk5Q0MwMCcsXG5cdCcjOTlDQzMzJyxcblx0JyNDQzAwMDAnLFxuXHQnI0NDMDAzMycsXG5cdCcjQ0MwMDY2Jyxcblx0JyNDQzAwOTknLFxuXHQnI0NDMDBDQycsXG5cdCcjQ0MwMEZGJyxcblx0JyNDQzMzMDAnLFxuXHQnI0NDMzMzMycsXG5cdCcjQ0MzMzY2Jyxcblx0JyNDQzMzOTknLFxuXHQnI0NDMzNDQycsXG5cdCcjQ0MzM0ZGJyxcblx0JyNDQzY2MDAnLFxuXHQnI0NDNjYzMycsXG5cdCcjQ0M5OTAwJyxcblx0JyNDQzk5MzMnLFxuXHQnI0NDQ0MwMCcsXG5cdCcjQ0NDQzMzJyxcblx0JyNGRjAwMDAnLFxuXHQnI0ZGMDAzMycsXG5cdCcjRkYwMDY2Jyxcblx0JyNGRjAwOTknLFxuXHQnI0ZGMDBDQycsXG5cdCcjRkYwMEZGJyxcblx0JyNGRjMzMDAnLFxuXHQnI0ZGMzMzMycsXG5cdCcjRkYzMzY2Jyxcblx0JyNGRjMzOTknLFxuXHQnI0ZGMzNDQycsXG5cdCcjRkYzM0ZGJyxcblx0JyNGRjY2MDAnLFxuXHQnI0ZGNjYzMycsXG5cdCcjRkY5OTAwJyxcblx0JyNGRjk5MzMnLFxuXHQnI0ZGQ0MwMCcsXG5cdCcjRkZDQzMzJ1xuXTtcblxuLyoqXG4gKiBDdXJyZW50bHkgb25seSBXZWJLaXQtYmFzZWQgV2ViIEluc3BlY3RvcnMsIEZpcmVmb3ggPj0gdjMxLFxuICogYW5kIHRoZSBGaXJlYnVnIGV4dGVuc2lvbiAoYW55IEZpcmVmb3ggdmVyc2lvbikgYXJlIGtub3duXG4gKiB0byBzdXBwb3J0IFwiJWNcIiBDU1MgY3VzdG9taXphdGlvbnMuXG4gKlxuICogVE9ETzogYWRkIGEgYGxvY2FsU3RvcmFnZWAgdmFyaWFibGUgdG8gZXhwbGljaXRseSBlbmFibGUvZGlzYWJsZSBjb2xvcnNcbiAqL1xuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgY29tcGxleGl0eVxuZnVuY3Rpb24gdXNlQ29sb3JzKCkge1xuXHQvLyBOQjogSW4gYW4gRWxlY3Ryb24gcHJlbG9hZCBzY3JpcHQsIGRvY3VtZW50IHdpbGwgYmUgZGVmaW5lZCBidXQgbm90IGZ1bGx5XG5cdC8vIGluaXRpYWxpemVkLiBTaW5jZSB3ZSBrbm93IHdlJ3JlIGluIENocm9tZSwgd2UnbGwganVzdCBkZXRlY3QgdGhpcyBjYXNlXG5cdC8vIGV4cGxpY2l0bHlcblx0aWYgKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnICYmIHdpbmRvdy5wcm9jZXNzICYmICh3aW5kb3cucHJvY2Vzcy50eXBlID09PSAncmVuZGVyZXInIHx8IHdpbmRvdy5wcm9jZXNzLl9fbndqcykpIHtcblx0XHRyZXR1cm4gdHJ1ZTtcblx0fVxuXG5cdC8vIEludGVybmV0IEV4cGxvcmVyIGFuZCBFZGdlIGRvIG5vdCBzdXBwb3J0IGNvbG9ycy5cblx0aWYgKHR5cGVvZiBuYXZpZ2F0b3IgIT09ICd1bmRlZmluZWQnICYmIG5hdmlnYXRvci51c2VyQWdlbnQgJiYgbmF2aWdhdG9yLnVzZXJBZ2VudC50b0xvd2VyQ2FzZSgpLm1hdGNoKC8oZWRnZXx0cmlkZW50KVxcLyhcXGQrKS8pKSB7XG5cdFx0cmV0dXJuIGZhbHNlO1xuXHR9XG5cblx0bGV0IG07XG5cblx0Ly8gSXMgd2Via2l0PyBodHRwOi8vc3RhY2tvdmVyZmxvdy5jb20vYS8xNjQ1OTYwNi8zNzY3NzNcblx0Ly8gZG9jdW1lbnQgaXMgdW5kZWZpbmVkIGluIHJlYWN0LW5hdGl2ZTogaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL3JlYWN0LW5hdGl2ZS9wdWxsLzE2MzJcblx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXJldHVybi1hc3NpZ25cblx0cmV0dXJuICh0eXBlb2YgZG9jdW1lbnQgIT09ICd1bmRlZmluZWQnICYmIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCAmJiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUgJiYgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLldlYmtpdEFwcGVhcmFuY2UpIHx8XG5cdFx0Ly8gSXMgZmlyZWJ1Zz8gaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL2EvMzk4MTIwLzM3Njc3M1xuXHRcdCh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJyAmJiB3aW5kb3cuY29uc29sZSAmJiAod2luZG93LmNvbnNvbGUuZmlyZWJ1ZyB8fCAod2luZG93LmNvbnNvbGUuZXhjZXB0aW9uICYmIHdpbmRvdy5jb25zb2xlLnRhYmxlKSkpIHx8XG5cdFx0Ly8gSXMgZmlyZWZveCA+PSB2MzE/XG5cdFx0Ly8gaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9Ub29scy9XZWJfQ29uc29sZSNTdHlsaW5nX21lc3NhZ2VzXG5cdFx0KHR5cGVvZiBuYXZpZ2F0b3IgIT09ICd1bmRlZmluZWQnICYmIG5hdmlnYXRvci51c2VyQWdlbnQgJiYgKG0gPSBuYXZpZ2F0b3IudXNlckFnZW50LnRvTG93ZXJDYXNlKCkubWF0Y2goL2ZpcmVmb3hcXC8oXFxkKykvKSkgJiYgcGFyc2VJbnQobVsxXSwgMTApID49IDMxKSB8fFxuXHRcdC8vIERvdWJsZSBjaGVjayB3ZWJraXQgaW4gdXNlckFnZW50IGp1c3QgaW4gY2FzZSB3ZSBhcmUgaW4gYSB3b3JrZXJcblx0XHQodHlwZW9mIG5hdmlnYXRvciAhPT0gJ3VuZGVmaW5lZCcgJiYgbmF2aWdhdG9yLnVzZXJBZ2VudCAmJiBuYXZpZ2F0b3IudXNlckFnZW50LnRvTG93ZXJDYXNlKCkubWF0Y2goL2FwcGxld2Via2l0XFwvKFxcZCspLykpO1xufVxuXG4vKipcbiAqIENvbG9yaXplIGxvZyBhcmd1bWVudHMgaWYgZW5hYmxlZC5cbiAqXG4gKiBAYXBpIHB1YmxpY1xuICovXG5cbmZ1bmN0aW9uIGZvcm1hdEFyZ3MoYXJncykge1xuXHRhcmdzWzBdID0gKHRoaXMudXNlQ29sb3JzID8gJyVjJyA6ICcnKSArXG5cdFx0dGhpcy5uYW1lc3BhY2UgK1xuXHRcdCh0aGlzLnVzZUNvbG9ycyA/ICcgJWMnIDogJyAnKSArXG5cdFx0YXJnc1swXSArXG5cdFx0KHRoaXMudXNlQ29sb3JzID8gJyVjICcgOiAnICcpICtcblx0XHQnKycgKyBtb2R1bGUuZXhwb3J0cy5odW1hbml6ZSh0aGlzLmRpZmYpO1xuXG5cdGlmICghdGhpcy51c2VDb2xvcnMpIHtcblx0XHRyZXR1cm47XG5cdH1cblxuXHRjb25zdCBjID0gJ2NvbG9yOiAnICsgdGhpcy5jb2xvcjtcblx0YXJncy5zcGxpY2UoMSwgMCwgYywgJ2NvbG9yOiBpbmhlcml0Jyk7XG5cblx0Ly8gVGhlIGZpbmFsIFwiJWNcIiBpcyBzb21ld2hhdCB0cmlja3ksIGJlY2F1c2UgdGhlcmUgY291bGQgYmUgb3RoZXJcblx0Ly8gYXJndW1lbnRzIHBhc3NlZCBlaXRoZXIgYmVmb3JlIG9yIGFmdGVyIHRoZSAlYywgc28gd2UgbmVlZCB0b1xuXHQvLyBmaWd1cmUgb3V0IHRoZSBjb3JyZWN0IGluZGV4IHRvIGluc2VydCB0aGUgQ1NTIGludG9cblx0bGV0IGluZGV4ID0gMDtcblx0bGV0IGxhc3RDID0gMDtcblx0YXJnc1swXS5yZXBsYWNlKC8lW2EtekEtWiVdL2csIG1hdGNoID0+IHtcblx0XHRpZiAobWF0Y2ggPT09ICclJScpIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cdFx0aW5kZXgrKztcblx0XHRpZiAobWF0Y2ggPT09ICclYycpIHtcblx0XHRcdC8vIFdlIG9ubHkgYXJlIGludGVyZXN0ZWQgaW4gdGhlICpsYXN0KiAlY1xuXHRcdFx0Ly8gKHRoZSB1c2VyIG1heSBoYXZlIHByb3ZpZGVkIHRoZWlyIG93bilcblx0XHRcdGxhc3RDID0gaW5kZXg7XG5cdFx0fVxuXHR9KTtcblxuXHRhcmdzLnNwbGljZShsYXN0QywgMCwgYyk7XG59XG5cbi8qKlxuICogSW52b2tlcyBgY29uc29sZS5kZWJ1ZygpYCB3aGVuIGF2YWlsYWJsZS5cbiAqIE5vLW9wIHdoZW4gYGNvbnNvbGUuZGVidWdgIGlzIG5vdCBhIFwiZnVuY3Rpb25cIi5cbiAqIElmIGBjb25zb2xlLmRlYnVnYCBpcyBub3QgYXZhaWxhYmxlLCBmYWxscyBiYWNrXG4gKiB0byBgY29uc29sZS5sb2dgLlxuICpcbiAqIEBhcGkgcHVibGljXG4gKi9cbmV4cG9ydHMubG9nID0gY29uc29sZS5kZWJ1ZyB8fCBjb25zb2xlLmxvZyB8fCAoKCkgPT4ge30pO1xuXG4vKipcbiAqIFNhdmUgYG5hbWVzcGFjZXNgLlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBuYW1lc3BhY2VzXG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuZnVuY3Rpb24gc2F2ZShuYW1lc3BhY2VzKSB7XG5cdHRyeSB7XG5cdFx0aWYgKG5hbWVzcGFjZXMpIHtcblx0XHRcdGV4cG9ydHMuc3RvcmFnZS5zZXRJdGVtKCdkZWJ1ZycsIG5hbWVzcGFjZXMpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRleHBvcnRzLnN0b3JhZ2UucmVtb3ZlSXRlbSgnZGVidWcnKTtcblx0XHR9XG5cdH0gY2F0Y2ggKGVycm9yKSB7XG5cdFx0Ly8gU3dhbGxvd1xuXHRcdC8vIFhYWCAoQFFpeC0pIHNob3VsZCB3ZSBiZSBsb2dnaW5nIHRoZXNlP1xuXHR9XG59XG5cbi8qKlxuICogTG9hZCBgbmFtZXNwYWNlc2AuXG4gKlxuICogQHJldHVybiB7U3RyaW5nfSByZXR1cm5zIHRoZSBwcmV2aW91c2x5IHBlcnNpc3RlZCBkZWJ1ZyBtb2Rlc1xuICogQGFwaSBwcml2YXRlXG4gKi9cbmZ1bmN0aW9uIGxvYWQoKSB7XG5cdGxldCByO1xuXHR0cnkge1xuXHRcdHIgPSBleHBvcnRzLnN0b3JhZ2UuZ2V0SXRlbSgnZGVidWcnKTtcblx0fSBjYXRjaCAoZXJyb3IpIHtcblx0XHQvLyBTd2FsbG93XG5cdFx0Ly8gWFhYIChAUWl4LSkgc2hvdWxkIHdlIGJlIGxvZ2dpbmcgdGhlc2U/XG5cdH1cblxuXHQvLyBJZiBkZWJ1ZyBpc24ndCBzZXQgaW4gTFMsIGFuZCB3ZSdyZSBpbiBFbGVjdHJvbiwgdHJ5IHRvIGxvYWQgJERFQlVHXG5cdGlmICghciAmJiB0eXBlb2YgcHJvY2VzcyAhPT0gJ3VuZGVmaW5lZCcgJiYgJ2VudicgaW4gcHJvY2Vzcykge1xuXHRcdHIgPSBwcm9jZXNzLmVudi5ERUJVRztcblx0fVxuXG5cdHJldHVybiByO1xufVxuXG4vKipcbiAqIExvY2Fsc3RvcmFnZSBhdHRlbXB0cyB0byByZXR1cm4gdGhlIGxvY2Fsc3RvcmFnZS5cbiAqXG4gKiBUaGlzIGlzIG5lY2Vzc2FyeSBiZWNhdXNlIHNhZmFyaSB0aHJvd3NcbiAqIHdoZW4gYSB1c2VyIGRpc2FibGVzIGNvb2tpZXMvbG9jYWxzdG9yYWdlXG4gKiBhbmQgeW91IGF0dGVtcHQgdG8gYWNjZXNzIGl0LlxuICpcbiAqIEByZXR1cm4ge0xvY2FsU3RvcmFnZX1cbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5cbmZ1bmN0aW9uIGxvY2Fsc3RvcmFnZSgpIHtcblx0dHJ5IHtcblx0XHQvLyBUVk1MS2l0IChBcHBsZSBUViBKUyBSdW50aW1lKSBkb2VzIG5vdCBoYXZlIGEgd2luZG93IG9iamVjdCwganVzdCBsb2NhbFN0b3JhZ2UgaW4gdGhlIGdsb2JhbCBjb250ZXh0XG5cdFx0Ly8gVGhlIEJyb3dzZXIgYWxzbyBoYXMgbG9jYWxTdG9yYWdlIGluIHRoZSBnbG9iYWwgY29udGV4dC5cblx0XHRyZXR1cm4gbG9jYWxTdG9yYWdlO1xuXHR9IGNhdGNoIChlcnJvcikge1xuXHRcdC8vIFN3YWxsb3dcblx0XHQvLyBYWFggKEBRaXgtKSBzaG91bGQgd2UgYmUgbG9nZ2luZyB0aGVzZT9cblx0fVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4vY29tbW9uJykoZXhwb3J0cyk7XG5cbmNvbnN0IHtmb3JtYXR0ZXJzfSA9IG1vZHVsZS5leHBvcnRzO1xuXG4vKipcbiAqIE1hcCAlaiB0byBgSlNPTi5zdHJpbmdpZnkoKWAsIHNpbmNlIG5vIFdlYiBJbnNwZWN0b3JzIGRvIHRoYXQgYnkgZGVmYXVsdC5cbiAqL1xuXG5mb3JtYXR0ZXJzLmogPSBmdW5jdGlvbiAodikge1xuXHR0cnkge1xuXHRcdHJldHVybiBKU09OLnN0cmluZ2lmeSh2KTtcblx0fSBjYXRjaCAoZXJyb3IpIHtcblx0XHRyZXR1cm4gJ1tVbmV4cGVjdGVkSlNPTlBhcnNlRXJyb3JdOiAnICsgZXJyb3IubWVzc2FnZTtcblx0fVxufTtcbiIsICIvKipcbiAqIE1vZHVsZSBkZXBlbmRlbmNpZXMuXG4gKi9cblxuY29uc3QgdHR5ID0gcmVxdWlyZSgndHR5Jyk7XG5jb25zdCB1dGlsID0gcmVxdWlyZSgndXRpbCcpO1xuXG4vKipcbiAqIFRoaXMgaXMgdGhlIE5vZGUuanMgaW1wbGVtZW50YXRpb24gb2YgYGRlYnVnKClgLlxuICovXG5cbmV4cG9ydHMuaW5pdCA9IGluaXQ7XG5leHBvcnRzLmxvZyA9IGxvZztcbmV4cG9ydHMuZm9ybWF0QXJncyA9IGZvcm1hdEFyZ3M7XG5leHBvcnRzLnNhdmUgPSBzYXZlO1xuZXhwb3J0cy5sb2FkID0gbG9hZDtcbmV4cG9ydHMudXNlQ29sb3JzID0gdXNlQ29sb3JzO1xuZXhwb3J0cy5kZXN0cm95ID0gdXRpbC5kZXByZWNhdGUoXG5cdCgpID0+IHt9LFxuXHQnSW5zdGFuY2UgbWV0aG9kIGBkZWJ1Zy5kZXN0cm95KClgIGlzIGRlcHJlY2F0ZWQgYW5kIG5vIGxvbmdlciBkb2VzIGFueXRoaW5nLiBJdCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5leHQgbWFqb3IgdmVyc2lvbiBvZiBgZGVidWdgLidcbik7XG5cbi8qKlxuICogQ29sb3JzLlxuICovXG5cbmV4cG9ydHMuY29sb3JzID0gWzYsIDIsIDMsIDQsIDUsIDFdO1xuXG50cnkge1xuXHQvLyBPcHRpb25hbCBkZXBlbmRlbmN5IChhcyBpbiwgZG9lc24ndCBuZWVkIHRvIGJlIGluc3RhbGxlZCwgTk9UIGxpa2Ugb3B0aW9uYWxEZXBlbmRlbmNpZXMgaW4gcGFja2FnZS5qc29uKVxuXHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0L25vLWV4dHJhbmVvdXMtZGVwZW5kZW5jaWVzXG5cdGNvbnN0IHN1cHBvcnRzQ29sb3IgPSByZXF1aXJlKCdzdXBwb3J0cy1jb2xvcicpO1xuXG5cdGlmIChzdXBwb3J0c0NvbG9yICYmIChzdXBwb3J0c0NvbG9yLnN0ZGVyciB8fCBzdXBwb3J0c0NvbG9yKS5sZXZlbCA+PSAyKSB7XG5cdFx0ZXhwb3J0cy5jb2xvcnMgPSBbXG5cdFx0XHQyMCxcblx0XHRcdDIxLFxuXHRcdFx0MjYsXG5cdFx0XHQyNyxcblx0XHRcdDMyLFxuXHRcdFx0MzMsXG5cdFx0XHQzOCxcblx0XHRcdDM5LFxuXHRcdFx0NDAsXG5cdFx0XHQ0MSxcblx0XHRcdDQyLFxuXHRcdFx0NDMsXG5cdFx0XHQ0NCxcblx0XHRcdDQ1LFxuXHRcdFx0NTYsXG5cdFx0XHQ1Nyxcblx0XHRcdDYyLFxuXHRcdFx0NjMsXG5cdFx0XHQ2OCxcblx0XHRcdDY5LFxuXHRcdFx0NzQsXG5cdFx0XHQ3NSxcblx0XHRcdDc2LFxuXHRcdFx0NzcsXG5cdFx0XHQ3OCxcblx0XHRcdDc5LFxuXHRcdFx0ODAsXG5cdFx0XHQ4MSxcblx0XHRcdDkyLFxuXHRcdFx0OTMsXG5cdFx0XHQ5OCxcblx0XHRcdDk5LFxuXHRcdFx0MTEyLFxuXHRcdFx0MTEzLFxuXHRcdFx0MTI4LFxuXHRcdFx0MTI5LFxuXHRcdFx0MTM0LFxuXHRcdFx0MTM1LFxuXHRcdFx0MTQ4LFxuXHRcdFx0MTQ5LFxuXHRcdFx0MTYwLFxuXHRcdFx0MTYxLFxuXHRcdFx0MTYyLFxuXHRcdFx0MTYzLFxuXHRcdFx0MTY0LFxuXHRcdFx0MTY1LFxuXHRcdFx0MTY2LFxuXHRcdFx0MTY3LFxuXHRcdFx0MTY4LFxuXHRcdFx0MTY5LFxuXHRcdFx0MTcwLFxuXHRcdFx0MTcxLFxuXHRcdFx0MTcyLFxuXHRcdFx0MTczLFxuXHRcdFx0MTc4LFxuXHRcdFx0MTc5LFxuXHRcdFx0MTg0LFxuXHRcdFx0MTg1LFxuXHRcdFx0MTk2LFxuXHRcdFx0MTk3LFxuXHRcdFx0MTk4LFxuXHRcdFx0MTk5LFxuXHRcdFx0MjAwLFxuXHRcdFx0MjAxLFxuXHRcdFx0MjAyLFxuXHRcdFx0MjAzLFxuXHRcdFx0MjA0LFxuXHRcdFx0MjA1LFxuXHRcdFx0MjA2LFxuXHRcdFx0MjA3LFxuXHRcdFx0MjA4LFxuXHRcdFx0MjA5LFxuXHRcdFx0MjE0LFxuXHRcdFx0MjE1LFxuXHRcdFx0MjIwLFxuXHRcdFx0MjIxXG5cdFx0XTtcblx0fVxufSBjYXRjaCAoZXJyb3IpIHtcblx0Ly8gU3dhbGxvdyAtIHdlIG9ubHkgY2FyZSBpZiBgc3VwcG9ydHMtY29sb3JgIGlzIGF2YWlsYWJsZTsgaXQgZG9lc24ndCBoYXZlIHRvIGJlLlxufVxuXG4vKipcbiAqIEJ1aWxkIHVwIHRoZSBkZWZhdWx0IGBpbnNwZWN0T3B0c2Agb2JqZWN0IGZyb20gdGhlIGVudmlyb25tZW50IHZhcmlhYmxlcy5cbiAqXG4gKiAgICQgREVCVUdfQ09MT1JTPW5vIERFQlVHX0RFUFRIPTEwIERFQlVHX1NIT1dfSElEREVOPWVuYWJsZWQgbm9kZSBzY3JpcHQuanNcbiAqL1xuXG5leHBvcnRzLmluc3BlY3RPcHRzID0gT2JqZWN0LmtleXMocHJvY2Vzcy5lbnYpLmZpbHRlcihrZXkgPT4ge1xuXHRyZXR1cm4gL15kZWJ1Z18vaS50ZXN0KGtleSk7XG59KS5yZWR1Y2UoKG9iaiwga2V5KSA9PiB7XG5cdC8vIENhbWVsLWNhc2Vcblx0Y29uc3QgcHJvcCA9IGtleVxuXHRcdC5zdWJzdHJpbmcoNilcblx0XHQudG9Mb3dlckNhc2UoKVxuXHRcdC5yZXBsYWNlKC9fKFthLXpdKS9nLCAoXywgaykgPT4ge1xuXHRcdFx0cmV0dXJuIGsudG9VcHBlckNhc2UoKTtcblx0XHR9KTtcblxuXHQvLyBDb2VyY2Ugc3RyaW5nIHZhbHVlIGludG8gSlMgdmFsdWVcblx0bGV0IHZhbCA9IHByb2Nlc3MuZW52W2tleV07XG5cdGlmICgvXih5ZXN8b258dHJ1ZXxlbmFibGVkKSQvaS50ZXN0KHZhbCkpIHtcblx0XHR2YWwgPSB0cnVlO1xuXHR9IGVsc2UgaWYgKC9eKG5vfG9mZnxmYWxzZXxkaXNhYmxlZCkkL2kudGVzdCh2YWwpKSB7XG5cdFx0dmFsID0gZmFsc2U7XG5cdH0gZWxzZSBpZiAodmFsID09PSAnbnVsbCcpIHtcblx0XHR2YWwgPSBudWxsO1xuXHR9IGVsc2Uge1xuXHRcdHZhbCA9IE51bWJlcih2YWwpO1xuXHR9XG5cblx0b2JqW3Byb3BdID0gdmFsO1xuXHRyZXR1cm4gb2JqO1xufSwge30pO1xuXG4vKipcbiAqIElzIHN0ZG91dCBhIFRUWT8gQ29sb3JlZCBvdXRwdXQgaXMgZW5hYmxlZCB3aGVuIGB0cnVlYC5cbiAqL1xuXG5mdW5jdGlvbiB1c2VDb2xvcnMoKSB7XG5cdHJldHVybiAnY29sb3JzJyBpbiBleHBvcnRzLmluc3BlY3RPcHRzID9cblx0XHRCb29sZWFuKGV4cG9ydHMuaW5zcGVjdE9wdHMuY29sb3JzKSA6XG5cdFx0dHR5LmlzYXR0eShwcm9jZXNzLnN0ZGVyci5mZCk7XG59XG5cbi8qKlxuICogQWRkcyBBTlNJIGNvbG9yIGVzY2FwZSBjb2RlcyBpZiBlbmFibGVkLlxuICpcbiAqIEBhcGkgcHVibGljXG4gKi9cblxuZnVuY3Rpb24gZm9ybWF0QXJncyhhcmdzKSB7XG5cdGNvbnN0IHtuYW1lc3BhY2U6IG5hbWUsIHVzZUNvbG9yc30gPSB0aGlzO1xuXG5cdGlmICh1c2VDb2xvcnMpIHtcblx0XHRjb25zdCBjID0gdGhpcy5jb2xvcjtcblx0XHRjb25zdCBjb2xvckNvZGUgPSAnXFx1MDAxQlszJyArIChjIDwgOCA/IGMgOiAnODs1OycgKyBjKTtcblx0XHRjb25zdCBwcmVmaXggPSBgICAke2NvbG9yQ29kZX07MW0ke25hbWV9IFxcdTAwMUJbMG1gO1xuXG5cdFx0YXJnc1swXSA9IHByZWZpeCArIGFyZ3NbMF0uc3BsaXQoJ1xcbicpLmpvaW4oJ1xcbicgKyBwcmVmaXgpO1xuXHRcdGFyZ3MucHVzaChjb2xvckNvZGUgKyAnbSsnICsgbW9kdWxlLmV4cG9ydHMuaHVtYW5pemUodGhpcy5kaWZmKSArICdcXHUwMDFCWzBtJyk7XG5cdH0gZWxzZSB7XG5cdFx0YXJnc1swXSA9IGdldERhdGUoKSArIG5hbWUgKyAnICcgKyBhcmdzWzBdO1xuXHR9XG59XG5cbmZ1bmN0aW9uIGdldERhdGUoKSB7XG5cdGlmIChleHBvcnRzLmluc3BlY3RPcHRzLmhpZGVEYXRlKSB7XG5cdFx0cmV0dXJuICcnO1xuXHR9XG5cdHJldHVybiBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCkgKyAnICc7XG59XG5cbi8qKlxuICogSW52b2tlcyBgdXRpbC5mb3JtYXRXaXRoT3B0aW9ucygpYCB3aXRoIHRoZSBzcGVjaWZpZWQgYXJndW1lbnRzIGFuZCB3cml0ZXMgdG8gc3RkZXJyLlxuICovXG5cbmZ1bmN0aW9uIGxvZyguLi5hcmdzKSB7XG5cdHJldHVybiBwcm9jZXNzLnN0ZGVyci53cml0ZSh1dGlsLmZvcm1hdFdpdGhPcHRpb25zKGV4cG9ydHMuaW5zcGVjdE9wdHMsIC4uLmFyZ3MpICsgJ1xcbicpO1xufVxuXG4vKipcbiAqIFNhdmUgYG5hbWVzcGFjZXNgLlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBuYW1lc3BhY2VzXG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuZnVuY3Rpb24gc2F2ZShuYW1lc3BhY2VzKSB7XG5cdGlmIChuYW1lc3BhY2VzKSB7XG5cdFx0cHJvY2Vzcy5lbnYuREVCVUcgPSBuYW1lc3BhY2VzO1xuXHR9IGVsc2Uge1xuXHRcdC8vIElmIHlvdSBzZXQgYSBwcm9jZXNzLmVudiBmaWVsZCB0byBudWxsIG9yIHVuZGVmaW5lZCwgaXQgZ2V0cyBjYXN0IHRvIHRoZVxuXHRcdC8vIHN0cmluZyAnbnVsbCcgb3IgJ3VuZGVmaW5lZCcuIEp1c3QgZGVsZXRlIGluc3RlYWQuXG5cdFx0ZGVsZXRlIHByb2Nlc3MuZW52LkRFQlVHO1xuXHR9XG59XG5cbi8qKlxuICogTG9hZCBgbmFtZXNwYWNlc2AuXG4gKlxuICogQHJldHVybiB7U3RyaW5nfSByZXR1cm5zIHRoZSBwcmV2aW91c2x5IHBlcnNpc3RlZCBkZWJ1ZyBtb2Rlc1xuICogQGFwaSBwcml2YXRlXG4gKi9cblxuZnVuY3Rpb24gbG9hZCgpIHtcblx0cmV0dXJuIHByb2Nlc3MuZW52LkRFQlVHO1xufVxuXG4vKipcbiAqIEluaXQgbG9naWMgZm9yIGBkZWJ1Z2AgaW5zdGFuY2VzLlxuICpcbiAqIENyZWF0ZSBhIG5ldyBgaW5zcGVjdE9wdHNgIG9iamVjdCBpbiBjYXNlIGB1c2VDb2xvcnNgIGlzIHNldFxuICogZGlmZmVyZW50bHkgZm9yIGEgcGFydGljdWxhciBgZGVidWdgIGluc3RhbmNlLlxuICovXG5cbmZ1bmN0aW9uIGluaXQoZGVidWcpIHtcblx0ZGVidWcuaW5zcGVjdE9wdHMgPSB7fTtcblxuXHRjb25zdCBrZXlzID0gT2JqZWN0LmtleXMoZXhwb3J0cy5pbnNwZWN0T3B0cyk7XG5cdGZvciAobGV0IGkgPSAwOyBpIDwga2V5cy5sZW5ndGg7IGkrKykge1xuXHRcdGRlYnVnLmluc3BlY3RPcHRzW2tleXNbaV1dID0gZXhwb3J0cy5pbnNwZWN0T3B0c1trZXlzW2ldXTtcblx0fVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4vY29tbW9uJykoZXhwb3J0cyk7XG5cbmNvbnN0IHtmb3JtYXR0ZXJzfSA9IG1vZHVsZS5leHBvcnRzO1xuXG4vKipcbiAqIE1hcCAlbyB0byBgdXRpbC5pbnNwZWN0KClgLCBhbGwgb24gYSBzaW5nbGUgbGluZS5cbiAqL1xuXG5mb3JtYXR0ZXJzLm8gPSBmdW5jdGlvbiAodikge1xuXHR0aGlzLmluc3BlY3RPcHRzLmNvbG9ycyA9IHRoaXMudXNlQ29sb3JzO1xuXHRyZXR1cm4gdXRpbC5pbnNwZWN0KHYsIHRoaXMuaW5zcGVjdE9wdHMpXG5cdFx0LnNwbGl0KCdcXG4nKVxuXHRcdC5tYXAoc3RyID0+IHN0ci50cmltKCkpXG5cdFx0LmpvaW4oJyAnKTtcbn07XG5cbi8qKlxuICogTWFwICVPIHRvIGB1dGlsLmluc3BlY3QoKWAsIGFsbG93aW5nIG11bHRpcGxlIGxpbmVzIGlmIG5lZWRlZC5cbiAqL1xuXG5mb3JtYXR0ZXJzLk8gPSBmdW5jdGlvbiAodikge1xuXHR0aGlzLmluc3BlY3RPcHRzLmNvbG9ycyA9IHRoaXMudXNlQ29sb3JzO1xuXHRyZXR1cm4gdXRpbC5pbnNwZWN0KHYsIHRoaXMuaW5zcGVjdE9wdHMpO1xufTtcbiIsICIvKipcbiAqIERldGVjdCBFbGVjdHJvbiByZW5kZXJlciAvIG53anMgcHJvY2Vzcywgd2hpY2ggaXMgbm9kZSwgYnV0IHdlIHNob3VsZFxuICogdHJlYXQgYXMgYSBicm93c2VyLlxuICovXG5cbmlmICh0eXBlb2YgcHJvY2VzcyA9PT0gJ3VuZGVmaW5lZCcgfHwgcHJvY2Vzcy50eXBlID09PSAncmVuZGVyZXInIHx8IHByb2Nlc3MuYnJvd3NlciA9PT0gdHJ1ZSB8fCBwcm9jZXNzLl9fbndqcykge1xuXHRtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4vYnJvd3Nlci5qcycpO1xufSBlbHNlIHtcblx0bW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL25vZGUuanMnKTtcbn1cbiIsICJ2YXIgZGVidWc7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKCkge1xuICBpZiAoIWRlYnVnKSB7XG4gICAgdHJ5IHtcbiAgICAgIC8qIGVzbGludCBnbG9iYWwtcmVxdWlyZTogb2ZmICovXG4gICAgICBkZWJ1ZyA9IHJlcXVpcmUoXCJkZWJ1Z1wiKShcImZvbGxvdy1yZWRpcmVjdHNcIik7XG4gICAgfVxuICAgIGNhdGNoIChlcnJvcikgeyAvKiAqLyB9XG4gICAgaWYgKHR5cGVvZiBkZWJ1ZyAhPT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICBkZWJ1ZyA9IGZ1bmN0aW9uICgpIHsgLyogKi8gfTtcbiAgICB9XG4gIH1cbiAgZGVidWcuYXBwbHkobnVsbCwgYXJndW1lbnRzKTtcbn07XG4iLCAidmFyIHVybCA9IHJlcXVpcmUoXCJ1cmxcIik7XG52YXIgVVJMID0gdXJsLlVSTDtcbnZhciBodHRwID0gcmVxdWlyZShcImh0dHBcIik7XG52YXIgaHR0cHMgPSByZXF1aXJlKFwiaHR0cHNcIik7XG52YXIgV3JpdGFibGUgPSByZXF1aXJlKFwic3RyZWFtXCIpLldyaXRhYmxlO1xudmFyIGFzc2VydCA9IHJlcXVpcmUoXCJhc3NlcnRcIik7XG52YXIgZGVidWcgPSByZXF1aXJlKFwiLi9kZWJ1Z1wiKTtcblxuLy8gUHJldmVudGl2ZSBwbGF0Zm9ybSBkZXRlY3Rpb25cbi8vIGlzdGFuYnVsIGlnbm9yZSBuZXh0XG4oZnVuY3Rpb24gZGV0ZWN0VW5zdXBwb3J0ZWRFbnZpcm9ubWVudCgpIHtcbiAgdmFyIGxvb2tzTGlrZU5vZGUgPSB0eXBlb2YgcHJvY2VzcyAhPT0gXCJ1bmRlZmluZWRcIjtcbiAgdmFyIGxvb2tzTGlrZUJyb3dzZXIgPSB0eXBlb2Ygd2luZG93ICE9PSBcInVuZGVmaW5lZFwiICYmIHR5cGVvZiBkb2N1bWVudCAhPT0gXCJ1bmRlZmluZWRcIjtcbiAgdmFyIGxvb2tzTGlrZVY4ID0gaXNGdW5jdGlvbihFcnJvci5jYXB0dXJlU3RhY2tUcmFjZSk7XG4gIGlmICghbG9va3NMaWtlTm9kZSAmJiAobG9va3NMaWtlQnJvd3NlciB8fCAhbG9va3NMaWtlVjgpKSB7XG4gICAgY29uc29sZS53YXJuKFwiVGhlIGZvbGxvdy1yZWRpcmVjdHMgcGFja2FnZSBzaG91bGQgYmUgZXhjbHVkZWQgZnJvbSBicm93c2VyIGJ1aWxkcy5cIik7XG4gIH1cbn0oKSk7XG5cbi8vIFdoZXRoZXIgdG8gdXNlIHRoZSBuYXRpdmUgVVJMIG9iamVjdCBvciB0aGUgbGVnYWN5IHVybCBtb2R1bGVcbnZhciB1c2VOYXRpdmVVUkwgPSBmYWxzZTtcbnRyeSB7XG4gIGFzc2VydChuZXcgVVJMKFwiXCIpKTtcbn1cbmNhdGNoIChlcnJvcikge1xuICB1c2VOYXRpdmVVUkwgPSBlcnJvci5jb2RlID09PSBcIkVSUl9JTlZBTElEX1VSTFwiO1xufVxuXG4vLyBVUkwgZmllbGRzIHRvIHByZXNlcnZlIGluIGNvcHkgb3BlcmF0aW9uc1xudmFyIHByZXNlcnZlZFVybEZpZWxkcyA9IFtcbiAgXCJhdXRoXCIsXG4gIFwiaG9zdFwiLFxuICBcImhvc3RuYW1lXCIsXG4gIFwiaHJlZlwiLFxuICBcInBhdGhcIixcbiAgXCJwYXRobmFtZVwiLFxuICBcInBvcnRcIixcbiAgXCJwcm90b2NvbFwiLFxuICBcInF1ZXJ5XCIsXG4gIFwic2VhcmNoXCIsXG4gIFwiaGFzaFwiLFxuXTtcblxuLy8gQ3JlYXRlIGhhbmRsZXJzIHRoYXQgcGFzcyBldmVudHMgZnJvbSBuYXRpdmUgcmVxdWVzdHNcbnZhciBldmVudHMgPSBbXCJhYm9ydFwiLCBcImFib3J0ZWRcIiwgXCJjb25uZWN0XCIsIFwiZXJyb3JcIiwgXCJzb2NrZXRcIiwgXCJ0aW1lb3V0XCJdO1xudmFyIGV2ZW50SGFuZGxlcnMgPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuZXZlbnRzLmZvckVhY2goZnVuY3Rpb24gKGV2ZW50KSB7XG4gIGV2ZW50SGFuZGxlcnNbZXZlbnRdID0gZnVuY3Rpb24gKGFyZzEsIGFyZzIsIGFyZzMpIHtcbiAgICB0aGlzLl9yZWRpcmVjdGFibGUuZW1pdChldmVudCwgYXJnMSwgYXJnMiwgYXJnMyk7XG4gIH07XG59KTtcblxuLy8gRXJyb3IgdHlwZXMgd2l0aCBjb2Rlc1xudmFyIEludmFsaWRVcmxFcnJvciA9IGNyZWF0ZUVycm9yVHlwZShcbiAgXCJFUlJfSU5WQUxJRF9VUkxcIixcbiAgXCJJbnZhbGlkIFVSTFwiLFxuICBUeXBlRXJyb3Jcbik7XG52YXIgUmVkaXJlY3Rpb25FcnJvciA9IGNyZWF0ZUVycm9yVHlwZShcbiAgXCJFUlJfRlJfUkVESVJFQ1RJT05fRkFJTFVSRVwiLFxuICBcIlJlZGlyZWN0ZWQgcmVxdWVzdCBmYWlsZWRcIlxuKTtcbnZhciBUb29NYW55UmVkaXJlY3RzRXJyb3IgPSBjcmVhdGVFcnJvclR5cGUoXG4gIFwiRVJSX0ZSX1RPT19NQU5ZX1JFRElSRUNUU1wiLFxuICBcIk1heGltdW0gbnVtYmVyIG9mIHJlZGlyZWN0cyBleGNlZWRlZFwiLFxuICBSZWRpcmVjdGlvbkVycm9yXG4pO1xudmFyIE1heEJvZHlMZW5ndGhFeGNlZWRlZEVycm9yID0gY3JlYXRlRXJyb3JUeXBlKFxuICBcIkVSUl9GUl9NQVhfQk9EWV9MRU5HVEhfRVhDRUVERURcIixcbiAgXCJSZXF1ZXN0IGJvZHkgbGFyZ2VyIHRoYW4gbWF4Qm9keUxlbmd0aCBsaW1pdFwiXG4pO1xudmFyIFdyaXRlQWZ0ZXJFbmRFcnJvciA9IGNyZWF0ZUVycm9yVHlwZShcbiAgXCJFUlJfU1RSRUFNX1dSSVRFX0FGVEVSX0VORFwiLFxuICBcIndyaXRlIGFmdGVyIGVuZFwiXG4pO1xuXG4vLyBpc3RhbmJ1bCBpZ25vcmUgbmV4dFxudmFyIGRlc3Ryb3kgPSBXcml0YWJsZS5wcm90b3R5cGUuZGVzdHJveSB8fCBub29wO1xuXG4vLyBBbiBIVFRQKFMpIHJlcXVlc3QgdGhhdCBjYW4gYmUgcmVkaXJlY3RlZFxuZnVuY3Rpb24gUmVkaXJlY3RhYmxlUmVxdWVzdChvcHRpb25zLCByZXNwb25zZUNhbGxiYWNrKSB7XG4gIC8vIEluaXRpYWxpemUgdGhlIHJlcXVlc3RcbiAgV3JpdGFibGUuY2FsbCh0aGlzKTtcbiAgdGhpcy5fc2FuaXRpemVPcHRpb25zKG9wdGlvbnMpO1xuICB0aGlzLl9vcHRpb25zID0gb3B0aW9ucztcbiAgdGhpcy5fZW5kZWQgPSBmYWxzZTtcbiAgdGhpcy5fZW5kaW5nID0gZmFsc2U7XG4gIHRoaXMuX3JlZGlyZWN0Q291bnQgPSAwO1xuICB0aGlzLl9yZWRpcmVjdHMgPSBbXTtcbiAgdGhpcy5fcmVxdWVzdEJvZHlMZW5ndGggPSAwO1xuICB0aGlzLl9yZXF1ZXN0Qm9keUJ1ZmZlcnMgPSBbXTtcblxuICAvLyBBdHRhY2ggYSBjYWxsYmFjayBpZiBwYXNzZWRcbiAgaWYgKHJlc3BvbnNlQ2FsbGJhY2spIHtcbiAgICB0aGlzLm9uKFwicmVzcG9uc2VcIiwgcmVzcG9uc2VDYWxsYmFjayk7XG4gIH1cblxuICAvLyBSZWFjdCB0byByZXNwb25zZXMgb2YgbmF0aXZlIHJlcXVlc3RzXG4gIHZhciBzZWxmID0gdGhpcztcbiAgdGhpcy5fb25OYXRpdmVSZXNwb25zZSA9IGZ1bmN0aW9uIChyZXNwb25zZSkge1xuICAgIHRyeSB7XG4gICAgICBzZWxmLl9wcm9jZXNzUmVzcG9uc2UocmVzcG9uc2UpO1xuICAgIH1cbiAgICBjYXRjaCAoY2F1c2UpIHtcbiAgICAgIHNlbGYuZW1pdChcImVycm9yXCIsIGNhdXNlIGluc3RhbmNlb2YgUmVkaXJlY3Rpb25FcnJvciA/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/IG5ldyBGb3JtRGF0YSh0aGluZykgOiB0aGluZyk7XG5cbmF4aW9zLmdldEFkYXB0ZXIgPSBhZGFwdGVycy5nZXRBZGFwdGVyO1xuXG5heGlvcy5IdHRwU3RhdHVzQ29kZSA9IEh0dHBTdGF0dXNDb2RlO1xuXG5heGlvcy5kZWZhdWx0ID0gYXhpb3M7XG5cbi8vIHRoaXMgbW9kdWxlIHNob3VsZCBvbmx5IGhhdmUgYSBkZWZhdWx0IGV4cG9ydFxuZXhwb3J0IGRlZmF1bHQgYXhpb3NcbiIsICJpbXBvcnQgYXhpb3MgZnJvbSAnLi9saWIvYXhpb3MuanMnO1xuXG4vLyBUaGlzIG1vZHVsZSBpcyBpbnRlbmRlZCB0byB1bndyYXAgQXhpb3MgZGVmYXVsdCBleHBvcnQgYXMgbmFtZWQuXG4vLyBLZWVwIHRvcC1sZXZlbCBleHBvcnQgc2FtZSB3aXRoIHN0YXRpYyBwcm9wZXJ0aWVzXG4vLyBzbyB0aGF0IGl0IGNhbiBrZWVwIHNhbWUgd2l0aCBlcyBtb2R1bGUgb3IgY2pzXG5jb25zdCB7XG4gIEF4aW9zLFxuICBBeGlvc0Vycm9yLFxuICBDYW5jZWxlZEVycm9yLFxuICBpc0NhbmNlbCxcbiAgQ2FuY2VsVG9rZW4sXG4gIFZFUlNJT04sXG4gIGFsbCxcbiAgQ2FuY2VsLFxuICBpc0F4aW9zRXJyb3IsXG4gIHNwcmVhZCxcbiAgdG9Gb3JtRGF0YSxcbiAgQXhpb3NIZWFkZXJzLFxuICBIdHRwU3RhdHVzQ29kZSxcbiAgZm9ybVRvSlNPTixcbiAgZ2V0QWRhcHRlcixcbiAgbWVyZ2VDb25maWdcbn0gPSBheGlvcztcblxuZXhwb3J0IHtcbiAgYXhpb3MgYXMgZGVmYXVsdCxcbiAgQXhpb3MsXG4gIEF4aW9zRXJyb3IsXG4gIENhbmNlbGVkRXJyb3IsXG4gIGlzQ2FuY2VsLFxuICBDYW5jZWxUb2tlbixcbiAgVkVSU0lPTixcbiAgYWxsLFxuICBDYW5jZWwsXG4gIGlzQXhpb3NFcnJvcixcbiAgc3ByZWFkLFxuICB0b0Zvcm1EYXRhLFxuICBBeGlvc0hlYWRlcnMsXG4gIEh0dHBTdGF0dXNDb2RlLFxuICBmb3JtVG9KU09OLFxuICBnZXRBZGFwdGVyLFxuICBtZXJnZUNvbmZpZ1xufVxuIiwgImltcG9ydCB0eXBlIHsgRG9tSGFuZGxlck9wdGlvbnMgfSBmcm9tICdkb21oYW5kbGVyJztcbmltcG9ydCB0eXBlIHsgUGFyc2VyT3B0aW9ucyBhcyBIVE1MUGFyc2VyMlBhcnNlck9wdGlvbnMgfSBmcm9tICdodG1scGFyc2VyMic7XG5pbXBvcnQgdHlwZSB7IFBhcnNlck9wdGlvbnMgYXMgUGFyc2U1UGFyc2VyT3B0aW9ucyB9IGZyb20gJ3BhcnNlNSc7XG5pbXBvcnQgdHlwZSB7IEh0bWxwYXJzZXIyVHJlZUFkYXB0ZXJNYXAgfSBmcm9tICdwYXJzZTUtaHRtbHBhcnNlcjItdHJlZS1hZGFwdGVyJztcbmltcG9ydCB0eXBlIHsgT3B0aW9ucyBhcyBTZWxlY3RPcHRpb25zIH0gZnJvbSAnY2hlZXJpby1zZWxlY3QnO1xuXG4vKipcbiAqIE9wdGlvbnMgYWNjZXB0ZWQgYnkgaHRtbHBhcnNlcjIsIHRoZSBkZWZhdWx0IHBhcnNlciBmb3IgWE1MLlxuICpcbiAqIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL2ZiNTUvaHRtbHBhcnNlcjIvd2lraS9QYXJzZXItb3B0aW9uc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIEhUTUxQYXJzZXIyT3B0aW9uc1xuICBleHRlbmRzIERvbUhhbmRsZXJPcHRpb25zLFxuICAgIEhUTUxQYXJzZXIyUGFyc2VyT3B0aW9ucyB7fVxuXG4vKipcbiAqIE9wdGlvbnMgYWNjZXB0ZWQgYnkgQ2hlZXJpby5cbiAqXG4gKiBQbGVhc2Ugbm90ZSB0aGF0IHBhcnNlci1zcGVjaWZpYyBvcHRpb25zIGFyZSBfb25seSByZWNvZ25pemVkXyBpZiB0aGVcbiAqIHJlbGV2YW50IHBhcnNlciBpcyB1c2VkLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENoZWVyaW9PcHRpb25zXG4gIGV4dGVuZHMgUGFyc2U1UGFyc2VyT3B0aW9uczxIdG1scGFyc2VyMlRyZWVBZGFwdGVyTWFwPiB7XG4gIC8qKlxuICAgKiBSZWNvbW1lbmRlZCB3YXkgb2YgY29uZmlndXJpbmcgaHRtbHBhcnNlcjIgd2hlbiB3YW50aW5nIHRvIHBhcnNlIFhNTC5cbiAgICpcbiAgICogVGhpcyB3aWxsIHN3aXRjaCBDaGVlcmlvIHRvIHVzZSBodG1scGFyc2VyMi5cbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHhtbD86IEhUTUxQYXJzZXIyT3B0aW9ucyB8IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEVuYWJsZSB4bWwgbW9kZSwgd2hpY2ggd2lsbCBzd2l0Y2ggQ2hlZXJpbyB0byB1c2UgaHRtbHBhcnNlcjIuXG4gICAqXG4gICAqIEBkZXByZWNhdGVkIFBsZWFzZSB1c2UgdGhlIGB4bWxgIG9wdGlvbiBpbnN0ZWFkLlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgeG1sTW9kZT86IGJvb2xlYW47XG5cbiAgLyoqIFRoZSBiYXNlIFVSSSBmb3IgdGhlIGRvY3VtZW50LiBVc2VkIHRvIHJlc29sdmUgdGhlIGBocmVmYCBhbmQgYHNyY2AgcHJvcHMuICovXG4gIGJhc2VVUkk/OiBzdHJpbmcgfCBVUkw7XG5cbiAgLyoqXG4gICAqIElzIHRoZSBkb2N1bWVudCBpbiBxdWlya3MgbW9kZT9cbiAgICpcbiAgICogVGhpcyB3aWxsIGxlYWQgdG8gYC5jbGFzc05hbWVgIGFuZCBgI2lkYCBiZWluZyBjYXNlLWluc2Vuc2l0aXZlLlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcXVpcmtzTW9kZT86IFNlbGVjdE9wdGlvbnNbJ3F1aXJrc01vZGUnXTtcbiAgLyoqXG4gICAqIEV4dGVuc2lvbiBwb2ludCBmb3IgcHNldWRvLWNsYXNzZXMuXG4gICAqXG4gICAqIE1hcHMgZnJvbSBuYW1lcyB0byBlaXRoZXIgc3RyaW5ncyBvZiBmdW5jdGlvbnMuXG4gICAqXG4gICAqIC0gQSBzdHJpbmcgdmFsdWUgaXMgYSBzZWxlY3RvciB0aGF0IHRoZSBlbGVtZW50IG11c3QgbWF0Y2ggdG8gYmUgc2VsZWN0ZWQuXG4gICAqIC0gQSBmdW5jdGlvbiBpcyBjYWxsZWQgd2l0aCB0aGUgZWxlbWVudCBhcyBpdHMgZmlyc3QgYXJndW1lbnQsIGFuZCBvcHRpb25hbFxuICAgKiAgIHBhcmFtZXRlcnMgc2Vjb25kLiBJZiBpdCByZXR1cm5zIHRydWUsIHRoZSBlbGVtZW50IGlzIHNlbGVjdGVkLlxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKlxuICAgKiBgYGBqc1xuICAgKiBjb25zdCAkID0gY2hlZXJpby5sb2FkKFxuICAgKiAgICc8ZGl2IGNsYXNzPVwiZm9vXCI+PC9kaXY+PGRpdiBkYXRhLWJhcj1cImJvb1wiPjwvZGl2PicsXG4gICAqICAge1xuICAgKiAgICAgcHNldWRvczoge1xuICAgKiAgICAgICAvLyBgOmZvb2AgaXMgYW4gYWxpYXMgZm9yIGBkaXYuZm9vYFxuICAgKiAgICAgICBmb286ICdkaXYuZm9vJyxcbiAgICogICAgICAgLy8gYDpiYXIodmFsKWAgaXMgZXF1aXZhbGVudCB0byBgW2RhdGEtYmFyPXZhbCBzXWBcbiAgICogICAgICAgYmFyOiAoZWwsIHZhbCkgPT4gZWwuYXR0cmlic1snZGF0YS1iYXInXSA9PT0gdmFsLFxuICAgKiAgICAgfSxcbiAgICogICB9LFxuICAgKiApO1xuICAgKlxuICAgKiAkKCc6Zm9vJykubGVuZ3RoOyAvLyAxXG4gICAqICQoJ2RpdjpiYXIoYm9vKScpLmxlbmd0aDsgLy8gMVxuICAgKiAkKCdkaXY6YmFyKGJheiknKS5sZW5ndGg7IC8vIDBcbiAgICogYGBgXG4gICAqL1xuICBwc2V1ZG9zPzogU2VsZWN0T3B0aW9uc1sncHNldWRvcyddO1xufVxuXG4vKiogSW50ZXJuYWwgb3B0aW9ucyBmb3IgQ2hlZXJpby4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSW50ZXJuYWxPcHRpb25zXG4gIGV4dGVuZHMgSFRNTFBhcnNlcjJPcHRpb25zLFxuICAgIE9taXQ8Q2hlZXJpb09wdGlvbnMsICd4bWwnPiB7XG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIHVzZSBodG1scGFyc2VyMi5cbiAgICpcbiAgICogVGhpcyBpcyBzZXQgdG8gdHJ1ZSBpZiBgeG1sYCBpcyBzZXQgdG8gdHJ1ZS5cbiAgICovXG4gIF91c2VIdG1sUGFyc2VyMj86IGJvb2xlYW47XG59XG5cbmNvbnN0IGRlZmF1bHRPcHRzOiBJbnRlcm5hbE9wdGlvbnMgPSB7XG4gIF91c2VIdG1sUGFyc2VyMjogZmFsc2UsXG59O1xuXG4vKipcbiAqIEZsYXR0ZW4gdGhlIG9wdGlvbnMgZm9yIENoZWVyaW8uXG4gKlxuICogVGhpcyB3aWxsIHNldCBgX3VzZUh0bWxQYXJzZXIyYCB0byB0cnVlIGlmIGB4bWxgIGlzIHNldCB0byB0cnVlLlxuICpcbiAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIG9wdGlvbnMgdG8gZmxhdHRlbi5cbiAqIEBwYXJhbSBiYXNlT3B0aW9ucyAtIFRoZSBiYXNlIG9wdGlvbnMgdG8gdXNlLlxuICogQHJldHVybnMgVGhlIGZsYXR0ZW5lZCBvcHRpb25zLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZmxhdHRlbk9wdGlvbnMoXG4gIG9wdGlvbnM/OiBDaGVlcmlvT3B0aW9ucyB8IG51bGwsXG4gIGJhc2VPcHRpb25zPzogSW50ZXJuYWxPcHRpb25zLFxuKTogSW50ZXJuYWxPcHRpb25zIHtcbiAgaWYgKCFvcHRpb25zKSB7XG4gICAgcmV0dXJuIGJhc2VPcHRpb25zID8/IGRlZmF1bHRPcHRzO1xuICB9XG5cbiAgY29uc3Qgb3B0czogSW50ZXJuYWxPcHRpb25zID0ge1xuICAgIF91c2VIdG1sUGFyc2VyMjogISFvcHRpb25zLnhtbE1vZGUsXG4gICAgLi4uYmFzZU9wdGlvbnMsXG4gICAgLi4ub3B0aW9ucyxcbiAgfTtcblxuICBpZiAob3B0aW9ucy54bWwpIHtcbiAgICBvcHRzLl91c2VIdG1sUGFyc2VyMiA9IHRydWU7XG4gICAgb3B0cy54bWxNb2RlID0gdHJ1ZTtcblxuICAgIGlmIChvcHRpb25zLnhtbCAhPT0gdHJ1ZSkge1xuICAgICAgT2JqZWN0LmFzc2lnbihvcHRzLCBvcHRpb25zLnhtbCk7XG4gICAgfVxuICB9IGVsc2UgaWYgKG9wdGlvbnMueG1sTW9kZSkge1xuICAgIG9wdHMuX3VzZUh0bWxQYXJzZXIyID0gdHJ1ZTtcbiAgfVxuXG4gIHJldHVybiBvcHRzO1xufVxuIiwgIi8qKiBUeXBlcyBvZiBlbGVtZW50cyBmb3VuZCBpbiBodG1scGFyc2VyMidzIERPTSAqL1xuZXhwb3J0IHZhciBFbGVtZW50VHlwZTtcbihmdW5jdGlvbiAoRWxlbWVudFR5cGUpIHtcbiAgICAvKiogVHlwZSBmb3IgdGhlIHJvb3QgZWxlbWVudCBvZiBhIGRvY3VtZW50ICovXG4gICAgRWxlbWVudFR5cGVbXCJSb290XCJdID0gXCJyb290XCI7XG4gICAgLyoqIFR5cGUgZm9yIFRleHQgKi9cbiAgICBFbGVtZW50VHlwZVtcIlRleHRcIl0gPSBcInRleHRcIjtcbiAgICAvKiogVHlwZSBmb3IgPD8gLi4uID8+ICovXG4gICAgRWxlbWVudFR5cGVbXCJEaXJlY3RpdmVcIl0gPSBcImRpcmVjdGl2ZVwiO1xuICAgIC8qKiBUeXBlIGZvciA8IS0tIC4uLiAtLT4gKi9cbiAgICBFbGVtZW50VHlwZVtcIkNvbW1lbnRcIl0gPSBcImNvbW1lbnRcIjtcbiAgICAvKiogVHlwZSBmb3IgPHNjcmlwdD4gdGFncyAqL1xuICAgIEVsZW1lbnRUeXBlW1wiU2NyaXB0XCJdID0gXCJzY3JpcHRcIjtcbiAgICAvKiogVHlwZSBmb3IgPHN0eWxlPiB0YWdzICovXG4gICAgRWxlbWVudFR5cGVbXCJTdHlsZVwiXSA9IFwic3R5bGVcIjtcbiAgICAvKiogVHlwZSBmb3IgQW55IHRhZyAqL1xuICAgIEVsZW1lbnRUeXBlW1wiVGFnXCJdID0gXCJ0YWdcIjtcbiAgICAvKiogVHlwZSBmb3IgPCFbQ0RBVEFbIC4uLiBdXT4gKi9cbiAgICBFbGVtZW50VHlwZVtcIkNEQVRBXCJdID0gXCJjZGF0YVwiO1xuICAgIC8qKiBUeXBlIGZvciA8IWRvY3R5cGUgLi4uPiAqL1xuICAgIEVsZW1lbnRUeXBlW1wiRG9jdHlwZVwiXSA9IFwiZG9jdHlwZVwiO1xufSkoRWxlbWVudFR5cGUgfHwgKEVsZW1lbnRUeXBlID0ge30pKTtcbi8qKlxuICogVGVzdHMgd2hldGhlciBhbiBlbGVtZW50IGlzIGEgdGFnIG9yIG5vdC5cbiAqXG4gKiBAcGFyYW0gZWxlbSBFbGVtZW50IHRvIHRlc3RcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzVGFnKGVsZW0pIHtcbiAgICByZXR1cm4gKGVsZW0udHlwZSA9PT0gRWxlbWVudFR5cGUuVGFnIHx8XG4gICAgICAgIGVsZW0udHlwZSA9PT0gRWxlbWVudFR5cGUuU2NyaXB0IHx8XG4gICAgICAgIGVsZW0udHlwZSA9PT0gRWxlbWVudFR5cGUuU3R5bGUpO1xufVxuLy8gRXhwb3J0cyBmb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHlcbi8qKiBUeXBlIGZvciB0aGUgcm9vdCBlbGVtZW50IG9mIGEgZG9jdW1lbnQgKi9cbmV4cG9ydCBjb25zdCBSb290ID0gRWxlbWVudFR5cGUuUm9vdDtcbi8qKiBUeXBlIGZvciBUZXh0ICovXG5leHBvcnQgY29uc3QgVGV4dCA9IEVsZW1lbnRUeXBlLlRleHQ7XG4vKiogVHlwZSBmb3IgPD8gLi4uID8+ICovXG5leHBvcnQgY29uc3QgRGlyZWN0aXZlID0gRWxlbWVudFR5cGUuRGlyZWN0aXZlO1xuLyoqIFR5cGUgZm9yIDwhLS0gLi4uIC0tPiAqL1xuZXhwb3J0IGNvbnN0IENvbW1lbnQgPSBFbGVtZW50VHlwZS5Db21tZW50O1xuLyoqIFR5cGUgZm9yIDxzY3JpcHQ+IHRhZ3MgKi9cbmV4cG9ydCBjb25zdCBTY3JpcHQgPSBFbGVtZW50VHlwZS5TY3JpcHQ7XG4vKiogVHlwZSBmb3IgPHN0eWxlPiB0YWdzICovXG5leHBvcnQgY29uc3QgU3R5bGUgPSBFbGVtZW50VHlwZS5TdHlsZTtcbi8qKiBUeXBlIGZvciBBbnkgdGFnICovXG5leHBvcnQgY29uc3QgVGFnID0gRWxlbWVudFR5cGUuVGFnO1xuLyoqIFR5cGUgZm9yIDwhW0NEQVRBWyAuLi4gXV0+ICovXG5leHBvcnQgY29uc3QgQ0RBVEEgPSBFbGVtZW50VHlwZS5DREFUQTtcbi8qKiBUeXBlIGZvciA8IWRvY3R5cGUgLi4uPiAqL1xuZXhwb3J0IGNvbnN0IERvY3R5cGUgPSBFbGVtZW50VHlwZS5Eb2N0eXBlO1xuIiwgImltcG9ydCB7IEVsZW1lbnRUeXBlLCBpc1RhZyBhcyBpc1RhZ1JhdyB9IGZyb20gXCJkb21lbGVtZW50dHlwZVwiO1xuLyoqXG4gKiBUaGlzIG9iamVjdCB3aWxsIGJlIHVzZWQgYXMgdGhlIHByb3RvdHlwZSBmb3IgTm9kZXMgd2hlbiBjcmVhdGluZyBhXG4gKiBET00tTGV2ZWwtMS1jb21wbGlhbnQgc3RydWN0dXJlLlxuICovXG5leHBvcnQgY2xhc3MgTm9kZSB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIC8qKiBQYXJlbnQgb2YgdGhlIG5vZGUgKi9cbiAgICAgICAgdGhpcy5wYXJlbnQgPSBudWxsO1xuICAgICAgICAvKiogUHJldmlvdXMgc2libGluZyAqL1xuICAgICAgICB0aGlzLnByZXYgPSBudWxsO1xuICAgICAgICAvKiogTmV4dCBzaWJsaW5nICovXG4gICAgICAgIHRoaXMubmV4dCA9IG51bGw7XG4gICAgICAgIC8qKiBUaGUgc3RhcnQgaW5kZXggb2YgdGhlIG5vZGUuIFJlcXVpcmVzIGB3aXRoU3RhcnRJbmRpY2VzYCBvbiB0aGUgaGFuZGxlciB0byBiZSBgdHJ1ZS4gKi9cbiAgICAgICAgdGhpcy5zdGFydEluZGV4ID0gbnVsbDtcbiAgICAgICAgLyoqIFRoZSBlbmQgaW5kZXggb2YgdGhlIG5vZGUuIFJlcXVpcmVzIGB3aXRoRW5kSW5kaWNlc2Agb24gdGhlIGhhbmRsZXIgdG8gYmUgYHRydWUuICovXG4gICAgICAgIHRoaXMuZW5kSW5kZXggPSBudWxsO1xuICAgIH1cbiAgICAvLyBSZWFkLXdyaXRlIGFsaWFzZXMgZm9yIHByb3BlcnRpZXNcbiAgICAvKipcbiAgICAgKiBTYW1lIGFzIHtAbGluayBwYXJlbnR9LlxuICAgICAqIFtET00gc3BlY10oaHR0cHM6Ly9kb20uc3BlYy53aGF0d2cub3JnKS1jb21wYXRpYmxlIGFsaWFzLlxuICAgICAqL1xuICAgIGdldCBwYXJlbnROb2RlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5wYXJlbnQ7XG4gICAgfVxuICAgIHNldCBwYXJlbnROb2RlKHBhcmVudCkge1xuICAgICAgICB0aGlzLnBhcmVudCA9IHBhcmVudDtcbiAgICB9XG4gICAgLyoqXG4gICAgICogU2FtZSBhcyB7QGxpbmsgcHJldn0uXG4gICAgICogW0RPTSBzcGVjXShodHRwczovL2RvbS5zcGVjLndoYXR3Zy5vcmcpLWNvbXBhdGlibGUgYWxpYXMuXG4gICAgICovXG4gICAgZ2V0IHByZXZpb3VzU2libGluZygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucHJldjtcbiAgICB9XG4gICAgc2V0IHByZXZpb3VzU2libGluZyhwcmV2KSB7XG4gICAgICAgIHRoaXMucHJldiA9IHByZXY7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFNhbWUgYXMge0BsaW5rIG5leHR9LlxuICAgICAqIFtET00gc3BlY10oaHR0cHM6Ly9kb20uc3BlYy53aGF0d2cub3JnKS1jb21wYXRpYmxlIGFsaWFzLlxuICAgICAqL1xuICAgIGdldCBuZXh0U2libGluZygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubmV4dDtcbiAgICB9XG4gICAgc2V0IG5leHRTaWJsaW5nKG5leHQpIHtcbiAgICAgICAgdGhpcy5uZXh0ID0gbmV4dDtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQ2xvbmUgdGhpcyBub2RlLCBhbmQgb3B0aW9uYWxseSBpdHMgY2hpbGRyZW4uXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcmVjdXJzaXZlIENsb25lIGNoaWxkIG5vZGVzIGFzIHdlbGwuXG4gICAgICogQHJldHVybnMgQSBjbG9uZSBvZiB0aGUgbm9kZS5cbiAgICAgKi9cbiAgICBjbG9uZU5vZGUocmVjdXJzaXZlID0gZmFsc2UpIHtcbiAgICAgICAgcmV0dXJuIGNsb25lTm9kZSh0aGlzLCByZWN1cnNpdmUpO1xuICAgIH1cbn1cbi8qKlxuICogQSBub2RlIHRoYXQgY29udGFpbnMgc29tZSBkYXRhLlxuICovXG5leHBvcnQgY2xhc3MgRGF0YU5vZGUgZXh0ZW5kcyBOb2RlIHtcbiAgICAvKipcbiAgICAgKiBAcGFyYW0gZGF0YSBUaGUgY29udGVudCBvZiB0aGUgZGF0YSBub2RlXG4gICAgICovXG4gICAgY29uc3RydWN0b3IoZGF0YSkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLmRhdGEgPSBkYXRhO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBTYW1lIGFzIHtAbGluayBkYXRhfS5cbiAgICAgKiBbRE9NIHNwZWNdKGh0dHBzOi8vZG9tLnNwZWMud2hhdHdnLm9yZyktY29tcGF0aWJsZSBhbGlhcy5cbiAgICAgKi9cbiAgICBnZXQgbm9kZVZhbHVlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5kYXRhO1xuICAgIH1cbiAgICBzZXQgbm9kZVZhbHVlKGRhdGEpIHtcbiAgICAgICAgdGhpcy5kYXRhID0gZGF0YTtcbiAgICB9XG59XG4vKipcbiAqIFRleHQgd2l0aGluIHRoZSBkb2N1bWVudC5cbiAqL1xuZXhwb3J0IGNsYXNzIFRleHQgZXh0ZW5kcyBEYXRhTm9kZSB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKC4uLmFyZ3VtZW50cyk7XG4gICAgICAgIHRoaXMudHlwZSA9IEVsZW1lbnRUeXBlLlRleHQ7XG4gICAgfVxuICAgIGdldCBub2RlVHlwZSgpIHtcbiAgICAgICAgcmV0dXJuIDM7XG4gICAgfVxufVxuLyoqXG4gKiBDb21tZW50cyB3aXRoaW4gdGhlIGRvY3VtZW50LlxuICovXG5leHBvcnQgY2xhc3MgQ29tbWVudCBleHRlbmRzIERhdGFOb2RlIHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoLi4uYXJndW1lbnRzKTtcbiAgICAgICAgdGhpcy50eXBlID0gRWxlbWVudFR5cGUuQ29tbWVudDtcbiAgICB9XG4gICAgZ2V0IG5vZGVUeXBlKCkge1xuICAgICAgICByZXR1cm4gODtcbiAgICB9XG59XG4vKipcbiAqIFByb2Nlc3NpbmcgaW5zdHJ1Y3Rpb25zLCBpbmNsdWRpbmcgZG9jIHR5cGVzLlxuICovXG5leHBvcnQgY2xhc3MgUHJvY2Vzc2luZ0luc3RydWN0aW9uIGV4dGVuZHMgRGF0YU5vZGUge1xuICAgIGNvbnN0cnVjdG9yKG5hbWUsIGRhdGEpIHtcbiAgICAgICAgc3VwZXIoZGF0YSk7XG4gICAgICAgIHRoaXMubmFtZSA9IG5hbWU7XG4gICAgICAgIHRoaXMudHlwZSA9IEVsZW1lbnRUeXBlLkRpcmVjdGl2ZTtcbiAgICB9XG4gICAgZ2V0IG5vZGVUeXBlKCkge1xuICAgICAgICByZXR1cm4gMTtcbiAgICB9XG59XG4vKipcbiAqIEEgYE5vZGVgIHRoYXQgY2FuIGhhdmUgY2hpbGRyZW4uXG4gKi9cbmV4cG9ydCBjbGFzcyBOb2RlV2l0aENoaWxkcmVuIGV4dGVuZHMgTm9kZSB7XG4gICAgLyoqXG4gICAgICogQHBhcmFtIGNoaWxkcmVuIENoaWxkcmVuIG9mIHRoZSBub2RlLiBPbmx5IGNlcnRhaW4gbm9kZSB0eXBlcyBjYW4gaGF2ZSBjaGlsZHJlbi5cbiAgICAgKi9cbiAgICBjb25zdHJ1Y3RvcihjaGlsZHJlbikge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLmNoaWxkcmVuID0gY2hpbGRyZW47XG4gICAgfVxuICAgIC8vIEFsaWFzZXNcbiAgICAvKiogRmlyc3QgY2hpbGQgb2YgdGhlIG5vZGUuICovXG4gICAgZ2V0IGZpcnN0Q2hpbGQoKSB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgcmV0dXJuIChfYSA9IHRoaXMuY2hpbGRyZW5bMF0pICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IG51bGw7XG4gICAgfVxuICAgIC8qKiBMYXN0IGNoaWxkIG9mIHRoZSBub2RlLiAqL1xuICAgIGdldCBsYXN0Q2hpbGQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNoaWxkcmVuLmxlbmd0aCA+IDBcbiAgICAgICAgICAgID8gdGhpcy5jaGlsZHJlblt0aGlzLmNoaWxkcmVuLmxlbmd0aCAtIDFdXG4gICAgICAgICAgICA6IG51bGw7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFNhbWUgYXMge0BsaW5rIGNoaWxkcmVufS5cbiAgICAgKiBbRE9NIHNwZWNdKGh0dHBzOi8vZG9tLnNwZWMud2hhdHdnLm9yZyktY29tcGF0aWJsZSBhbGlhcy5cbiAgICAgKi9cbiAgICBnZXQgY2hpbGROb2RlcygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY2hpbGRyZW47XG4gICAgfVxuICAgIHNldCBjaGlsZE5vZGVzKGNoaWxkcmVuKSB7XG4gICAgICAgIHRoaXMuY2hpbGRyZW4gPSBjaGlsZHJlbjtcbiAgICB9XG59XG5leHBvcnQgY2xhc3MgQ0RBVEEgZXh0ZW5kcyBOb2RlV2l0aENoaWxkcmVuIHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoLi4uYXJndW1lbnRzKTtcbiAgICAgICAgdGhpcy50eXBlID0gRWxlbWVudFR5cGUuQ0RBVEE7XG4gICAgfVxuICAgIGdldCBub2RlVHlwZSgpIHtcbiAgICAgICAgcmV0dXJuIDQ7XG4gICAgfVxufVxuLyoqXG4gKiBUaGUgcm9vdCBub2RlIG9mIHRoZSBkb2N1bWVudC5cbiAqL1xuZXhwb3J0IGNsYXNzIERvY3VtZW50IGV4dGVuZHMgTm9kZVdpdGhDaGlsZHJlbiB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKC4uLmFyZ3VtZW50cyk7XG4gICAgICAgIHRoaXMudHlwZSA9IEVsZW1lbnRUeXBlLlJvb3Q7XG4gICAgfVxuICAgIGdldCBub2RlVHlwZSgpIHtcbiAgICAgICAgcmV0dXJuIDk7XG4gICAgfVxufVxuLyoqXG4gKiBBbiBlbGVtZW50IHdpdGhpbiB0aGUgRE9NLlxuICovXG5leHBvcnQgY2xhc3MgRWxlbWVudCBleHRlbmRzIE5vZGVXaXRoQ2hpbGRyZW4ge1xuICAgIC8qKlxuICAgICAqIEBwYXJhbSBuYW1lIE5hbWUgb2YgdGhlIHRhZywgZWcuIGBkaXZgLCBgc3BhbmAuXG4gICAgICogQHBhcmFtIGF0dHJpYnMgT2JqZWN0IG1hcHBpbmcgYXR0cmlidXRlIG5hbWVzIHRvIGF0dHJpYnV0ZSB2YWx1ZXMuXG4gICAgICogQHBhcmFtIGNoaWxkcmVuIENoaWxkcmVuIG9mIHRoZSBub2RlLlxuICAgICAqL1xuICAgIGNvbnN0cnVjdG9yKG5hbWUsIGF0dHJpYnMsIGNoaWxkcmVuID0gW10sIHR5cGUgPSBuYW1lID09PSBcInNjcmlwdFwiXG4gICAgICAgID8gRWxlbWVudFR5cGUuU2NyaXB0XG4gICAgICAgIDogbmFtZSA9PT0gXCJzdHlsZVwiXG4gICAgICAgICAgICA/IEVsZW1lbnRUeXBlLlN0eWxlXG4gICAgICAgICAgICA6IEVsZW1lbnRUeXBlLlRhZykge1xuICAgICAgICBzdXBlcihjaGlsZHJlbik7XG4gICAgICAgIHRoaXMubmFtZSA9IG5hbWU7XG4gICAgICAgIHRoaXMuYXR0cmlicyA9IGF0dHJpYnM7XG4gICAgICAgIHRoaXMudHlwZSA9IHR5cGU7XG4gICAgfVxuICAgIGdldCBub2RlVHlwZSgpIHtcbiAgICAgICAgcmV0dXJuIDE7XG4gICAgfVxuICAgIC8vIERPTSBMZXZlbCAxIGFsaWFzZXNcbiAgICAvKipcbiAgICAgKiBTYW1lIGFzIHtAbGluayBuYW1lfS5cbiAgICAgKiBbRE9NIHNwZWNdKGh0dHBzOi8vZG9tLnNwZWMud2hhdHdnLm9yZyktY29tcGF0aWJsZSBhbGlhcy5cbiAgICAgKi9cbiAgICBnZXQgdGFnTmFtZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubmFtZTtcbiAgICB9XG4gICAgc2V0IHRhZ05hbWUobmFtZSkge1xuICAgICAgICB0aGlzLm5hbWUgPSBuYW1lO1xuICAgIH1cbiAgICBnZXQgYXR0cmlidXRlcygpIHtcbiAgICAgICAgcmV0dXJuIE9iamVjdC5rZXlzKHRoaXMuYXR0cmlicykubWFwKChuYW1lKSA9PiB7XG4gICAgICAgICAgICB2YXIgX2EsIF9iO1xuICAgICAgICAgICAgcmV0dXJuICh7XG4gICAgICAgICAgICAgICAgbmFtZSxcbiAgICAgICAgICAgICAgICB2YWx1ZTogdGhpcy5hdHRyaWJzW25hbWVdLFxuICAgICAgICAgICAgICAgIG5hbWVzcGFjZTogKF9hID0gdGhpc1tcIngtYXR0cmlic05hbWVzcGFjZVwiXSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hW25hbWVdLFxuICAgICAgICAgICAgICAgIHByZWZpeDogKF9iID0gdGhpc1tcIngtYXR0cmlic1ByZWZpeFwiXSkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iW25hbWVdLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH1cbn1cbi8qKlxuICogQHBhcmFtIG5vZGUgTm9kZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIGB0cnVlYCBpZiB0aGUgbm9kZSBpcyBhIGBFbGVtZW50YCwgYGZhbHNlYCBvdGhlcndpc2UuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1RhZyhub2RlKSB7XG4gICAgcmV0dXJuIGlzVGFnUmF3KG5vZGUpO1xufVxuLyoqXG4gKiBAcGFyYW0gbm9kZSBOb2RlIHRvIGNoZWNrLlxuICogQHJldHVybnMgYHRydWVgIGlmIHRoZSBub2RlIGhhcyB0aGUgdHlwZSBgQ0RBVEFgLCBgZmFsc2VgIG90aGVyd2lzZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzQ0RBVEEobm9kZSkge1xuICAgIHJldHVybiBub2RlLnR5cGUgPT09IEVsZW1lbnRUeXBlLkNEQVRBO1xufVxuLyoqXG4gKiBAcGFyYW0gbm9kZSBOb2RlIHRvIGNoZWNrLlxuICogQHJldHVybnMgYHRydWVgIGlmIHRoZSBub2RlIGhhcyB0aGUgdHlwZSBgVGV4dGAsIGBmYWxzZWAgb3RoZXJ3aXNlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNUZXh0KG5vZGUpIHtcbiAgICByZXR1cm4gbm9kZS50eXBlID09PSBFbGVtZW50VHlwZS5UZXh0O1xufVxuLyoqXG4gKiBAcGFyYW0gbm9kZSBOb2RlIHRvIGNoZWNrLlxuICogQHJldHVybnMgYHRydWVgIGlmIHRoZSBub2RlIGhhcyB0aGUgdHlwZSBgQ29tbWVudGAsIGBmYWxzZWAgb3RoZXJ3aXNlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNDb21tZW50KG5vZGUpIHtcbiAgICByZXR1cm4gbm9kZS50eXBlID09PSBFbGVtZW50VHlwZS5Db21tZW50O1xufVxuLyoqXG4gKiBAcGFyYW0gbm9kZSBOb2RlIHRvIGNoZWNrLlxuICogQHJldHVybnMgYHRydWVgIGlmIHRoZSBub2RlIGhhcyB0aGUgdHlwZSBgUHJvY2Vzc2luZ0luc3RydWN0aW9uYCwgYGZhbHNlYCBvdGhlcndpc2UuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc0RpcmVjdGl2ZShub2RlKSB7XG4gICAgcmV0dXJuIG5vZGUudHlwZSA9PT0gRWxlbWVudFR5cGUuRGlyZWN0aXZlO1xufVxuLyoqXG4gKiBAcGFyYW0gbm9kZSBOb2RlIHRvIGNoZWNrLlxuICogQHJldHVybnMgYHRydWVgIGlmIHRoZSBub2RlIGhhcyB0aGUgdHlwZSBgUHJvY2Vzc2luZ0luc3RydWN0aW9uYCwgYGZhbHNlYCBvdGhlcndpc2UuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc0RvY3VtZW50KG5vZGUpIHtcbiAgICByZXR1cm4gbm9kZS50eXBlID09PSBFbGVtZW50VHlwZS5Sb290O1xufVxuLyoqXG4gKiBAcGFyYW0gbm9kZSBOb2RlIHRvIGNoZWNrLlxuICogQHJldHVybnMgYHRydWVgIGlmIHRoZSBub2RlIGhhcyBjaGlsZHJlbiwgYGZhbHNlYCBvdGhlcndpc2UuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBoYXNDaGlsZHJlbihub2RlKSB7XG4gICAgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChub2RlLCBcImNoaWxkcmVuXCIpO1xufVxuLyoqXG4gKiBDbG9uZSBhIG5vZGUsIGFuZCBvcHRpb25hbGx5IGl0cyBjaGlsZHJlbi5cbiAqXG4gKiBAcGFyYW0gcmVjdXJzaXZlIENsb25lIGNoaWxkIG5vZGVzIGFzIHdlbGwuXG4gKiBAcmV0dXJucyBBIGNsb25lIG9mIHRoZSBub2RlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY2xvbmVOb2RlKG5vZGUsIHJlY3Vyc2l2ZSA9IGZhbHNlKSB7XG4gICAgbGV0IHJlc3VsdDtcbiAgICBpZiAoaXNUZXh0KG5vZGUpKSB7XG4gICAgICAgIHJlc3VsdCA9IG5ldyBUZXh0KG5vZGUuZGF0YSk7XG4gICAgfVxuICAgIGVsc2UgaWYgKGlzQ29tbWVudChub2RlKSkge1xuICAgICAgICByZXN1bHQgPSBuZXcgQ29tbWVudChub2RlLmRhdGEpO1xuICAgIH1cbiAgICBlbHNlIGlmIChpc1RhZyhub2RlKSkge1xuICAgICAgICBjb25zdCBjaGlsZHJlbiA9IHJlY3Vyc2l2ZSA/IGNsb25lQ2hpbGRyZW4obm9kZS5jaGlsZHJlbikgOiBbXTtcbiAgICAgICAgY29uc3QgY2xvbmUgPSBuZXcgRWxlbWVudChub2RlLm5hbWUsIHsgLi4ubm9kZS5hdHRyaWJzIH0sIGNoaWxkcmVuKTtcbiAgICAgICAgY2hpbGRyZW4uZm9yRWFjaCgoY2hpbGQpID0+IChjaGlsZC5wYXJlbnQgPSBjbG9uZSkpO1xuICAgICAgICBpZiAobm9kZS5uYW1lc3BhY2UgIT0gbnVsbCkge1xuICAgICAgICAgICAgY2xvbmUubmFtZXNwYWNlID0gbm9kZS5uYW1lc3BhY2U7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG5vZGVbXCJ4LWF0dHJpYnNOYW1lc3BhY2VcIl0pIHtcbiAgICAgICAgICAgIGNsb25lW1wieC1hdHRyaWJzTmFtZXNwYWNlXCJdID0geyAuLi5ub2RlW1wieC1hdHRyaWJzTmFtZXNwYWNlXCJdIH07XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG5vZGVbXCJ4LWF0dHJpYnNQcmVmaXhcIl0pIHtcbiAgICAgICAgICAgIGNsb25lW1wieC1hdHRyaWJzUHJlZml4XCJdID0geyAuLi5ub2RlW1wieC1hdHRyaWJzUHJlZml4XCJdIH07XG4gICAgICAgIH1cbiAgICAgICAgcmVzdWx0ID0gY2xvbmU7XG4gICAgfVxuICAgIGVsc2UgaWYgKGlzQ0RBVEEobm9kZSkpIHtcbiAgICAgICAgY29uc3QgY2hpbGRyZW4gPSByZWN1cnNpdmUgPyBjbG9uZUNoaWxkcmVuKG5vZGUuY2hpbGRyZW4pIDogW107XG4gICAgICAgIGNvbnN0IGNsb25lID0gbmV3IENEQVRBKGNoaWxkcmVuKTtcbiAgICAgICAgY2hpbGRyZW4uZm9yRWFjaCgoY2hpbGQpID0+IChjaGlsZC5wYXJlbnQgPSBjbG9uZSkpO1xuICAgICAgICByZXN1bHQgPSBjbG9uZTtcbiAgICB9XG4gICAgZWxzZSBpZiAoaXNEb2N1bWVudChub2RlKSkge1xuICAgICAgICBjb25zdCBjaGlsZHJlbiA9IHJlY3Vyc2l2ZSA/IGNsb25lQ2hpbGRyZW4obm9kZS5jaGlsZHJlbikgOiBbXTtcbiAgICAgICAgY29uc3QgY2xvbmUgPSBuZXcgRG9jdW1lbnQoY2hpbGRyZW4pO1xuICAgICAgICBjaGlsZHJlbi5mb3JFYWNoKChjaGlsZCkgPT4gKGNoaWxkLnBhcmVudCA9IGNsb25lKSk7XG4gICAgICAgIGlmIChub2RlW1wieC1tb2RlXCJdKSB7XG4gICAgICAgICAgICBjbG9uZVtcIngtbW9kZVwiXSA9IG5vZGVbXCJ4LW1vZGVcIl07XG4gICAgICAgIH1cbiAgICAgICAgcmVzdWx0ID0gY2xvbmU7XG4gICAgfVxuICAgIGVsc2UgaWYgKGlzRGlyZWN0aXZlKG5vZGUpKSB7XG4gICAgICAgIGNvbnN0IGluc3RydWN0aW9uID0gbmV3IFByb2Nlc3NpbmdJbnN0cnVjdGlvbihub2RlLm5hbWUsIG5vZGUuZGF0YSk7XG4gICAgICAgIGlmIChub2RlW1wieC1uYW1lXCJdICE9IG51bGwpIHtcbiAgICAgICAgICAgIGluc3RydWN0aW9uW1wieC1uYW1lXCJdID0gbm9kZVtcIngtbmFtZVwiXTtcbiAgICAgICAgICAgIGluc3RydWN0aW9uW1wieC1wdWJsaWNJZFwiXSA9IG5vZGVbXCJ4LXB1YmxpY0lkXCJdO1xuICAgICAgICAgICAgaW5zdHJ1Y3Rpb25bXCJ4LXN5c3RlbUlkXCJdID0gbm9kZVtcIngtc3lzdGVtSWRcIl07XG4gICAgICAgIH1cbiAgICAgICAgcmVzdWx0ID0gaW5zdHJ1Y3Rpb247XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYE5vdCBpbXBsZW1lbnRlZCB5ZXQ6ICR7bm9kZS50eXBlfWApO1xuICAgIH1cbiAgICByZXN1bHQuc3RhcnRJbmRleCA9IG5vZGUuc3RhcnRJbmRleDtcbiAgICByZXN1bHQuZW5kSW5kZXggPSBub2RlLmVuZEluZGV4O1xuICAgIGlmIChub2RlLnNvdXJjZUNvZGVMb2NhdGlvbiAhPSBudWxsKSB7XG4gICAgICAgIHJlc3VsdC5zb3VyY2VDb2RlTG9jYXRpb24gPSBub2RlLnNvdXJjZUNvZGVMb2NhdGlvbjtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbn1cbmZ1bmN0aW9uIGNsb25lQ2hpbGRyZW4oY2hpbGRzKSB7XG4gICAgY29uc3QgY2hpbGRyZW4gPSBjaGlsZHMubWFwKChjaGlsZCkgPT4gY2xvbmVOb2RlKGNoaWxkLCB0cnVlKSk7XG4gICAgZm9yIChsZXQgaSA9IDE7IGkgPCBjaGlsZHJlbi5sZW5ndGg7IGkrKykge1xuICAgICAgICBjaGlsZHJlbltpXS5wcmV2ID0gY2hpbGRyZW5baSAtIDFdO1xuICAgICAgICBjaGlsZHJlbltpIC0gMV0ubmV4dCA9IGNoaWxkcmVuW2ldO1xuICAgIH1cbiAgICByZXR1cm4gY2hpbGRyZW47XG59XG4iLCAiaW1wb3J0IHsgRWxlbWVudFR5cGUgfSBmcm9tIFwiZG9tZWxlbWVudHR5cGVcIjtcbmltcG9ydCB7IEVsZW1lbnQsIFRleHQsIENvbW1lbnQsIENEQVRBLCBEb2N1bWVudCwgUHJvY2Vzc2luZ0luc3RydWN0aW9uLCB9IGZyb20gXCIuL25vZGUuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL25vZGUuanNcIjtcbi8vIERlZmF1bHQgb3B0aW9uc1xuY29uc3QgZGVmYXVsdE9wdHMgPSB7XG4gICAgd2l0aFN0YXJ0SW5kaWNlczogZmFsc2UsXG4gICAgd2l0aEVuZEluZGljZXM6IGZhbHNlLFxuICAgIHhtbE1vZGU6IGZhbHNlLFxufTtcbmV4cG9ydCBjbGFzcyBEb21IYW5kbGVyIHtcbiAgICAvKipcbiAgICAgKiBAcGFyYW0gY2FsbGJhY2sgQ2FsbGVkIG9uY2UgcGFyc2luZyBoYXMgY29tcGxldGVkLlxuICAgICAqIEBwYXJhbSBvcHRpb25zIFNldHRpbmdzIGZvciB0aGUgaGFuZGxlci5cbiAgICAgKiBAcGFyYW0gZWxlbWVudENCIENhbGxiYWNrIHdoZW5ldmVyIGEgdGFnIGlzIGNsb3NlZC5cbiAgICAgKi9cbiAgICBjb25zdHJ1Y3RvcihjYWxsYmFjaywgb3B0aW9ucywgZWxlbWVudENCKSB7XG4gICAgICAgIC8qKiBUaGUgZWxlbWVudHMgb2YgdGhlIERPTSAqL1xuICAgICAgICB0aGlzLmRvbSA9IFtdO1xuICAgICAgICAvKiogVGhlIHJvb3QgZWxlbWVudCBmb3IgdGhlIERPTSAqL1xuICAgICAgICB0aGlzLnJvb3QgPSBuZXcgRG9jdW1lbnQodGhpcy5kb20pO1xuICAgICAgICAvKiogSW5kaWNhdGVkIHdoZXRoZXIgcGFyc2luZyBoYXMgYmVlbiBjb21wbGV0ZWQuICovXG4gICAgICAgIHRoaXMuZG9uZSA9IGZhbHNlO1xuICAgICAgICAvKiogU3RhY2sgb2Ygb3BlbiB0YWdzLiAqL1xuICAgICAgICB0aGlzLnRhZ1N0YWNrID0gW3RoaXMucm9vdF07XG4gICAgICAgIC8qKiBBIGRhdGEgbm9kZSB0aGF0IGlzIHN0aWxsIGJlaW5nIHdyaXR0ZW4gdG8uICovXG4gICAgICAgIHRoaXMubGFzdE5vZGUgPSBudWxsO1xuICAgICAgICAvKiogUmVmZXJlbmNlIHRvIHRoZSBwYXJzZXIgaW5zdGFuY2UuIFVzZWQgZm9yIGxvY2F0aW9uIGluZm9ybWF0aW9uLiAqL1xuICAgICAgICB0aGlzLnBhcnNlciA9IG51bGw7XG4gICAgICAgIC8vIE1ha2UgaXQgcG9zc2libGUgdG8gc2tpcCBhcmd1bWVudHMsIGZvciBiYWNrd2FyZHMtY29tcGF0aWJpbGl0eVxuICAgICAgICBpZiAodHlwZW9mIG9wdGlvbnMgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICAgICAgZWxlbWVudENCID0gb3B0aW9ucztcbiAgICAgICAgICAgIG9wdGlvbnMgPSBkZWZhdWx0T3B0cztcbiAgICAgICAgfVxuICAgICAgICBpZiAodHlwZW9mIGNhbGxiYWNrID09PSBcIm9iamVjdFwiKSB7XG4gICAgICAgICAgICBvcHRpb25zID0gY2FsbGJhY2s7XG4gICAgICAgICAgICBjYWxsYmFjayA9IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmNhbGxiYWNrID0gY2FsbGJhY2sgIT09IG51bGwgJiYgY2FsbGJhY2sgIT09IHZvaWQgMCA/IGNhbGxiYWNrIDogbnVsbDtcbiAgICAgICAgdGhpcy5vcHRpb25zID0gb3B0aW9ucyAhPT0gbnVsbCAmJiBvcHRpb25zICE9PSB2b2lkIDAgPyBvcHRpb25zIDogZGVmYXVsdE9wdHM7XG4gICAgICAgIHRoaXMuZWxlbWVudENCID0gZWxlbWVudENCICE9PSBudWxsICYmIGVsZW1lbnRDQiAhPT0gdm9pZCAwID8gZWxlbWVudENCIDogbnVsbDtcbiAgICB9XG4gICAgb25wYXJzZXJpbml0KHBhcnNlcikge1xuICAgICAgICB0aGlzLnBhcnNlciA9IHBhcnNlcjtcbiAgICB9XG4gICAgLy8gUmVzZXRzIHRoZSBoYW5kbGVyIGJhY2sgdG8gc3RhcnRpbmcgc3RhdGVcbiAgICBvbnJlc2V0KCkge1xuICAgICAgICB0aGlzLmRvbSA9IFtdO1xuICAgICAgICB0aGlzLnJvb3QgPSBuZXcgRG9jdW1lbnQodGhpcy5kb20pO1xuICAgICAgICB0aGlzLmRvbmUgPSBmYWxzZTtcbiAgICAgICAgdGhpcy50YWdTdGFjayA9IFt0aGlzLnJvb3RdO1xuICAgICAgICB0aGlzLmxhc3ROb2RlID0gbnVsbDtcbiAgICAgICAgdGhpcy5wYXJzZXIgPSBudWxsO1xuICAgIH1cbiAgICAvLyBTaWduYWxzIHRoZSBoYW5kbGVyIHRoYXQgcGFyc2luZyBpcyBkb25lXG4gICAgb25lbmQoKSB7XG4gICAgICAgIGlmICh0aGlzLmRvbmUpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIHRoaXMuZG9uZSA9IHRydWU7XG4gICAgICAgIHRoaXMucGFyc2VyID0gbnVsbDtcbiAgICAgICAgdGhpcy5oYW5kbGVDYWxsYmFjayhudWxsKTtcbiAgICB9XG4gICAgb25lcnJvcihlcnJvcikge1xuICAgICAgICB0aGlzLmhhbmRsZUNhbGxiYWNrKGVycm9yKTtcbiAgICB9XG4gICAgb25jbG9zZXRhZygpIHtcbiAgICAgICAgdGhpcy5sYXN0Tm9kZSA9IG51bGw7XG4gICAgICAgIGNvbnN0IGVsZW0gPSB0aGlzLnRhZ1N0YWNrLnBvcCgpO1xuICAgICAgICBpZiAodGhpcy5vcHRpb25zLndpdGhFbmRJbmRpY2VzKSB7XG4gICAgICAgICAgICBlbGVtLmVuZEluZGV4ID0gdGhpcy5wYXJzZXIuZW5kSW5kZXg7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuZWxlbWVudENCKVxuICAgICAgICAgICAgdGhpcy5lbGVtZW50Q0IoZWxlbSk7XG4gICAgfVxuICAgIG9ub3BlbnRhZyhuYW1lLCBhdHRyaWJzKSB7XG4gICAgICAgIGNvbnN0IHR5cGUgPSB0aGlzLm9wdGlvbnMueG1sTW9kZSA/IEVsZW1lbnRUeXBlLlRhZyA6IHVuZGVmaW5lZDtcbiAgICAgICAgY29uc3QgZWxlbWVudCA9IG5ldyBFbGVtZW50KG5hbWUsIGF0dHJpYnMsIHVuZGVmaW5lZCwgdHlwZSk7XG4gICAgICAgIHRoaXMuYWRkTm9kZShlbGVtZW50KTtcbiAgICAgICAgdGhpcy50YWdTdGFjay5wdXNoKGVsZW1lbnQpO1xuICAgIH1cbiAgICBvbnRleHQoZGF0YSkge1xuICAgICAgICBjb25zdCB7IGxhc3ROb2RlIH0gPSB0aGlzO1xuICAgICAgICBpZiAobGFzdE5vZGUgJiYgbGFzdE5vZGUudHlwZSA9PT0gRWxlbWVudFR5cGUuVGV4dCkge1xuICAgICAgICAgICAgbGFzdE5vZGUuZGF0YSArPSBkYXRhO1xuICAgICAgICAgICAgaWYgKHRoaXMub3B0aW9ucy53aXRoRW5kSW5kaWNlcykge1xuICAgICAgICAgICAgICAgIGxhc3ROb2RlLmVuZEluZGV4ID0gdGhpcy5wYXJzZXIuZW5kSW5kZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBub2RlID0gbmV3IFRleHQoZGF0YSk7XG4gICAgICAgICAgICB0aGlzLmFkZE5vZGUobm9kZSk7XG4gICAgICAgICAgICB0aGlzLmxhc3ROb2RlID0gbm9kZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBvbmNvbW1lbnQoZGF0YSkge1xuICAgICAgICBpZiAodGhpcy5sYXN0Tm9kZSAmJiB0aGlzLmxhc3ROb2RlLnR5cGUgPT09IEVsZW1lbnRUeXBlLkNvbW1lbnQpIHtcbiAgICAgICAgICAgIHRoaXMubGFzdE5vZGUuZGF0YSArPSBkYXRhO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG5vZGUgPSBuZXcgQ29tbWVudChkYXRhKTtcbiAgICAgICAgdGhpcy5hZGROb2RlKG5vZGUpO1xuICAgICAgICB0aGlzLmxhc3ROb2RlID0gbm9kZTtcbiAgICB9XG4gICAgb25jb21tZW50ZW5kKCkge1xuICAgICAgICB0aGlzLmxhc3ROb2RlID0gbnVsbDtcbiAgICB9XG4gICAgb25jZGF0YXN0YXJ0KCkge1xuICAgICAgICBjb25zdCB0ZXh0ID0gbmV3IFRleHQoXCJcIik7XG4gICAgICAgIGNvbnN0IG5vZGUgPSBuZXcgQ0RBVEEoW3RleHRdKTtcbiAgICAgICAgdGhpcy5hZGROb2RlKG5vZGUpO1xuICAgICAgICB0ZXh0LnBhcmVudCA9IG5vZGU7XG4gICAgICAgIHRoaXMubGFzdE5vZGUgPSB0ZXh0O1xuICAgIH1cbiAgICBvbmNkYXRhZW5kKCkge1xuICAgICAgICB0aGlzLmxhc3ROb2RlID0gbnVsbDtcbiAgICB9XG4gICAgb25wcm9jZXNzaW5naW5zdHJ1Y3Rpb24obmFtZSwgZGF0YSkge1xuICAgICAgICBjb25zdCBub2RlID0gbmV3IFByb2Nlc3NpbmdJbnN0cnVjdGlvbihuYW1lLCBkYXRhKTtcbiAgICAgICAgdGhpcy5hZGROb2RlKG5vZGUpO1xuICAgIH1cbiAgICBoYW5kbGVDYWxsYmFjayhlcnJvcikge1xuICAgICAgICBpZiAodHlwZW9mIHRoaXMuY2FsbGJhY2sgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICAgICAgdGhpcy5jYWxsYmFjayhlcnJvciwgdGhpcy5kb20pO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKGVycm9yKSB7XG4gICAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgfVxuICAgIH1cbiAgICBhZGROb2RlKG5vZGUpIHtcbiAgICAgICAgY29uc3QgcGFyZW50ID0gdGhpcy50YWdTdGFja1t0aGlzLnRhZ1N0YWNrLmxlbmd0aCAtIDFdO1xuICAgICAgICBjb25zdCBwcmV2aW91c1NpYmxpbmcgPSBwYXJlbnQuY2hpbGRyZW5bcGFyZW50LmNoaWxkcmVuLmxlbmd0aCAtIDFdO1xuICAgICAgICBpZiAodGhpcy5vcHRpb25zLndpdGhTdGFydEluZGljZXMpIHtcbiAgICAgICAgICAgIG5vZGUuc3RhcnRJbmRleCA9IHRoaXMucGFyc2VyLnN0YXJ0SW5kZXg7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMub3B0aW9ucy53aXRoRW5kSW5kaWNlcykge1xuICAgICAgICAgICAgbm9kZS5lbmRJbmRleCA9IHRoaXMucGFyc2VyLmVuZEluZGV4O1xuICAgICAgICB9XG4gICAgICAgIHBhcmVudC5jaGlsZHJlbi5wdXNoKG5vZGUpO1xuICAgICAgICBpZiAocHJldmlvdXNTaWJsaW5nKSB7XG4gICAgICAgICAgICBub2RlLnByZXYgPSBwcmV2aW91c1NpYmxpbmc7XG4gICAgICAgICAgICBwcmV2aW91c1NpYmxpbmcubmV4dCA9IG5vZGU7XG4gICAgICAgIH1cbiAgICAgICAgbm9kZS5wYXJlbnQgPSBwYXJlbnQ7XG4gICAgICAgIHRoaXMubGFzdE5vZGUgPSBudWxsO1xuICAgIH1cbn1cbmV4cG9ydCBkZWZhdWx0IERvbUhhbmRsZXI7XG4iLCBudWxsLCBudWxsLCBudWxsLCBudWxsLCBudWxsLCBudWxsLCBudWxsLCBudWxsLCAiZXhwb3J0IGNvbnN0IGVsZW1lbnROYW1lcyA9IG5ldyBNYXAoW1xuICAgIFwiYWx0R2x5cGhcIixcbiAgICBcImFsdEdseXBoRGVmXCIsXG4gICAgXCJhbHRHbHlwaEl0ZW1cIixcbiAgICBcImFuaW1hdGVDb2xvclwiLFxuICAgIFwiYW5pbWF0ZU1vdGlvblwiLFxuICAgIFwiYW5pbWF0ZVRyYW5zZm9ybVwiLFxuICAgIFwiY2xpcFBhdGhcIixcbiAgICBcImZlQmxlbmRcIixcbiAgICBcImZlQ29sb3JNYXRyaXhcIixcbiAgICBcImZlQ29tcG9uZW50VHJhbnNmZXJcIixcbiAgICBcImZlQ29tcG9zaXRlXCIsXG4gICAgXCJmZUNvbnZvbHZlTWF0cml4XCIsXG4gICAgXCJmZURpZmZ1c2VMaWdodGluZ1wiLFxuICAgIFwiZmVEaXNwbGFjZW1lbnRNYXBcIixcbiAgICBcImZlRGlzdGFudExpZ2h0XCIsXG4gICAgXCJmZURyb3BTaGFkb3dcIixcbiAgICBcImZlRmxvb2RcIixcbiAgICBcImZlRnVuY0FcIixcbiAgICBcImZlRnVuY0JcIixcbiAgICBcImZlRnVuY0dcIixcbiAgICBcImZlRnVuY1JcIixcbiAgICBcImZlR2F1c3NpYW5CbHVyXCIsXG4gICAgXCJmZUltYWdlXCIsXG4gICAgXCJmZU1lcmdlXCIsXG4gICAgXCJmZU1lcmdlTm9kZVwiLFxuICAgIFwiZmVNb3JwaG9sb2d5XCIsXG4gICAgXCJmZU9mZnNldFwiLFxuICAgIFwiZmVQb2ludExpZ2h0XCIsXG4gICAgXCJmZVNwZWN1bGFyTGlnaHRpbmdcIixcbiAgICBcImZlU3BvdExpZ2h0XCIsXG4gICAgXCJmZVRpbGVcIixcbiAgICBcImZlVHVyYnVsZW5jZVwiLFxuICAgIFwiZm9yZWlnbk9iamVjdFwiLFxuICAgIFwiZ2x5cGhSZWZcIixcbiAgICBcImxpbmVhckdyYWRpZW50XCIsXG4gICAgXCJyYWRpYWxHcmFkaWVudFwiLFxuICAgIFwidGV4dFBhdGhcIixcbl0ubWFwKCh2YWwpID0+IFt2YWwudG9Mb3dlckNhc2UoKSwgdmFsXSkpO1xuZXhwb3J0IGNvbnN0IGF0dHJpYnV0ZU5hbWVzID0gbmV3IE1hcChbXG4gICAgXCJkZWZpbml0aW9uVVJMXCIsXG4gICAgXCJhdHRyaWJ1dGVOYW1lXCIsXG4gICAgXCJhdHRyaWJ1dGVUeXBlXCIsXG4gICAgXCJiYXNlRnJlcXVlbmN5XCIsXG4gICAgXCJiYXNlUHJvZmlsZVwiLFxuICAgIFwiY2FsY01vZGVcIixcbiAgICBcImNsaXBQYXRoVW5pdHNcIixcbiAgICBcImRpZmZ1c2VDb25zdGFudFwiLFxuICAgIFwiZWRnZU1vZGVcIixcbiAgICBcImZpbHRlclVuaXRzXCIsXG4gICAgXCJnbHlwaFJlZlwiLFxuICAgIFwiZ3JhZGllbnRUcmFuc2Zvcm1cIixcbiAgICBcImdyYWRpZW50VW5pdHNcIixcbiAgICBcImtlcm5lbE1hdHJpeFwiLFxuICAgIFwia2VybmVsVW5pdExlbmd0aFwiLFxuICAgIFwia2V5UG9pbnRzXCIsXG4gICAgXCJrZXlTcGxpbmVzXCIsXG4gICAgXCJrZXlUaW1lc1wiLFxuICAgIFwibGVuZ3RoQWRqdXN0XCIsXG4gICAgXCJsaW1pdGluZ0NvbmVBbmdsZVwiLFxuICAgIFwibWFya2VySGVpZ2h0XCIsXG4gICAgXCJtYXJrZXJVbml0c1wiLFxuICAgIFwibWFya2VyV2lkdGhcIixcbiAgICBcIm1hc2tDb250ZW50VW5pdHNcIixcbiAgICBcIm1hc2tVbml0c1wiLFxuICAgIFwibnVtT2N0YXZlc1wiLFxuICAgIFwicGF0aExlbmd0aFwiLFxuICAgIFwicGF0dGVybkNvbnRlbnRVbml0c1wiLFxuICAgIFwicGF0dGVyblRyYW5zZm9ybVwiLFxuICAgIFwicGF0dGVyblVuaXRzXCIsXG4gICAgXCJwb2ludHNBdFhcIixcbiAgICBcInBvaW50c0F0WVwiLFxuICAgIFwicG9pbnRzQXRaXCIsXG4gICAgXCJwcmVzZXJ2ZUFscGhhXCIsXG4gICAgXCJwcmVzZXJ2ZUFzcGVjdFJhdGlvXCIsXG4gICAgXCJwcmltaXRpdmVVbml0c1wiLFxuICAgIFwicmVmWFwiLFxuICAgIFwicmVmWVwiLFxuICAgIFwicmVwZWF0Q291bnRcIixcbiAgICBcInJlcGVhdER1clwiLFxuICAgIFwicmVxdWlyZWRFeHRlbnNpb25zXCIsXG4gICAgXCJyZXF1aXJlZEZlYXR1cmVzXCIsXG4gICAgXCJzcGVjdWxhckNvbnN0YW50XCIsXG4gICAgXCJzcGVjdWxhckV4cG9uZW50XCIsXG4gICAgXCJzcHJlYWRNZXRob2RcIixcbiAgICBcInN0YXJ0T2Zmc2V0XCIsXG4gICAgXCJzdGREZXZpYXRpb25cIixcbiAgICBcInN0aXRjaFRpbGVzXCIsXG4gICAgXCJzdXJmYWNlU2NhbGVcIixcbiAgICBcInN5c3RlbUxhbmd1YWdlXCIsXG4gICAgXCJ0YWJsZVZhbHVlc1wiLFxuICAgIFwidGFyZ2V0WFwiLFxuICAgIFwidGFyZ2V0WVwiLFxuICAgIFwidGV4dExlbmd0aFwiLFxuICAgIFwidmlld0JveFwiLFxuICAgIFwidmlld1RhcmdldFwiLFxuICAgIFwieENoYW5uZWxTZWxlY3RvclwiLFxuICAgIFwieUNoYW5uZWxTZWxlY3RvclwiLFxuICAgIFwiem9vbUFuZFBhblwiLFxuXS5tYXAoKHZhbCkgPT4gW3ZhbC50b0xvd2VyQ2FzZSgpLCB2YWxdKSk7XG4iLCAiLypcbiAqIE1vZHVsZSBkZXBlbmRlbmNpZXNcbiAqL1xuaW1wb3J0ICogYXMgRWxlbWVudFR5cGUgZnJvbSBcImRvbWVsZW1lbnR0eXBlXCI7XG5pbXBvcnQgeyBlbmNvZGVYTUwsIGVzY2FwZUF0dHJpYnV0ZSwgZXNjYXBlVGV4dCB9IGZyb20gXCJlbnRpdGllc1wiO1xuLyoqXG4gKiBNaXhlZC1jYXNlIFNWRyBhbmQgTWF0aE1MIHRhZ3MgJiBhdHRyaWJ1dGVzXG4gKiByZWNvZ25pemVkIGJ5IHRoZSBIVE1MIHBhcnNlci5cbiAqXG4gKiBAc2VlIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL3BhcnNpbmcuaHRtbCNwYXJzaW5nLW1haW4taW5mb3JlaWduXG4gKi9cbmltcG9ydCB7IGVsZW1lbnROYW1lcywgYXR0cmlidXRlTmFtZXMgfSBmcm9tIFwiLi9mb3JlaWduTmFtZXMuanNcIjtcbmNvbnN0IHVuZW5jb2RlZEVsZW1lbnRzID0gbmV3IFNldChbXG4gICAgXCJzdHlsZVwiLFxuICAgIFwic2NyaXB0XCIsXG4gICAgXCJ4bXBcIixcbiAgICBcImlmcmFtZVwiLFxuICAgIFwibm9lbWJlZFwiLFxuICAgIFwibm9mcmFtZXNcIixcbiAgICBcInBsYWludGV4dFwiLFxuICAgIFwibm9zY3JpcHRcIixcbl0pO1xuZnVuY3Rpb24gcmVwbGFjZVF1b3Rlcyh2YWx1ZSkge1xuICAgIHJldHVybiB2YWx1ZS5yZXBsYWNlKC9cIi9nLCBcIiZxdW90O1wiKTtcbn1cbi8qKlxuICogRm9ybWF0IGF0dHJpYnV0ZXNcbiAqL1xuZnVuY3Rpb24gZm9ybWF0QXR0cmlidXRlcyhhdHRyaWJ1dGVzLCBvcHRzKSB7XG4gICAgdmFyIF9hO1xuICAgIGlmICghYXR0cmlidXRlcylcbiAgICAgICAgcmV0dXJuO1xuICAgIGNvbnN0IGVuY29kZSA9ICgoX2EgPSBvcHRzLmVuY29kZUVudGl0aWVzKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiBvcHRzLmRlY29kZUVudGl0aWVzKSA9PT0gZmFsc2VcbiAgICAgICAgPyByZXBsYWNlUXVvdGVzXG4gICAgICAgIDogb3B0cy54bWxNb2RlIHx8IG9wdHMuZW5jb2RlRW50aXRpZXMgIT09IFwidXRmOFwiXG4gICAgICAgICAgICA/IGVuY29kZVhNTFxuICAgICAgICAgICAgOiBlc2NhcGVBdHRyaWJ1dGU7XG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKGF0dHJpYnV0ZXMpXG4gICAgICAgIC5tYXAoKGtleSkgPT4ge1xuICAgICAgICB2YXIgX2EsIF9iO1xuICAgICAgICBjb25zdCB2YWx1ZSA9IChfYSA9IGF0dHJpYnV0ZXNba2V5XSkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogXCJcIjtcbiAgICAgICAgaWYgKG9wdHMueG1sTW9kZSA9PT0gXCJmb3JlaWduXCIpIHtcbiAgICAgICAgICAgIC8qIEZpeCB1cCBtaXhlZC1jYXNlIGF0dHJpYnV0ZSBuYW1lcyAqL1xuICAgICAgICAgICAga2V5ID0gKF9iID0gYXR0cmlidXRlTmFtZXMuZ2V0KGtleSkpICE9PSBudWxsICYmIF9iICE9PSB2b2lkIDAgPyBfYiA6IGtleTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIW9wdHMuZW1wdHlBdHRycyAmJiAhb3B0cy54bWxNb2RlICYmIHZhbHVlID09PSBcIlwiKSB7XG4gICAgICAgICAgICByZXR1cm4ga2V5O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBgJHtrZXl9PVwiJHtlbmNvZGUodmFsdWUpfVwiYDtcbiAgICB9KVxuICAgICAgICAuam9pbihcIiBcIik7XG59XG4vKipcbiAqIFNlbGYtZW5jbG9zaW5nIHRhZ3NcbiAqL1xuY29uc3Qgc2luZ2xlVGFnID0gbmV3IFNldChbXG4gICAgXCJhcmVhXCIsXG4gICAgXCJiYXNlXCIsXG4gICAgXCJiYXNlZm9udFwiLFxuICAgIFwiYnJcIixcbiAgICBcImNvbFwiLFxuICAgIFwiY29tbWFuZFwiLFxuICAgIFwiZW1iZWRcIixcbiAgICBcImZyYW1lXCIsXG4gICAgXCJoclwiLFxuICAgIFwiaW1nXCIsXG4gICAgXCJpbnB1dFwiLFxuICAgIFwiaXNpbmRleFwiLFxuICAgIFwia2V5Z2VuXCIsXG4gICAgXCJsaW5rXCIsXG4gICAgXCJtZXRhXCIsXG4gICAgXCJwYXJhbVwiLFxuICAgIFwic291cmNlXCIsXG4gICAgXCJ0cmFja1wiLFxuICAgIFwid2JyXCIsXG5dKTtcbi8qKlxuICogUmVuZGVycyBhIERPTSBub2RlIG9yIGFuIGFycmF5IG9mIERPTSBub2RlcyB0byBhIHN0cmluZy5cbiAqXG4gKiBDYW4gYmUgdGhvdWdodCBvZiBhcyB0aGUgZXF1aXZhbGVudCBvZiB0aGUgYG91dGVySFRNTGAgb2YgdGhlIHBhc3NlZCBub2RlKHMpLlxuICpcbiAqIEBwYXJhbSBub2RlIE5vZGUgdG8gYmUgcmVuZGVyZWQuXG4gKiBAcGFyYW0gb3B0aW9ucyBDaGFuZ2VzIHNlcmlhbGl6YXRpb24gYmVoYXZpb3JcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlbmRlcihub2RlLCBvcHRpb25zID0ge30pIHtcbiAgICBjb25zdCBub2RlcyA9IFwibGVuZ3RoXCIgaW4gbm9kZSA/IG5vZGUgOiBbbm9kZV07XG4gICAgbGV0IG91dHB1dCA9IFwiXCI7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBub2Rlcy5sZW5ndGg7IGkrKykge1xuICAgICAgICBvdXRwdXQgKz0gcmVuZGVyTm9kZShub2Rlc1tpXSwgb3B0aW9ucyk7XG4gICAgfVxuICAgIHJldHVybiBvdXRwdXQ7XG59XG5leHBvcnQgZGVmYXVsdCByZW5kZXI7XG5mdW5jdGlvbiByZW5kZXJOb2RlKG5vZGUsIG9wdGlvbnMpIHtcbiAgICBzd2l0Y2ggKG5vZGUudHlwZSkge1xuICAgICAgICBjYXNlIEVsZW1lbnRUeXBlLlJvb3Q6XG4gICAgICAgICAgICByZXR1cm4gcmVuZGVyKG5vZGUuY2hpbGRyZW4sIG9wdGlvbnMpO1xuICAgICAgICAvLyBAdHMtZXhwZWN0LWVycm9yIFdlIGRvbid0IHVzZSBgRG9jdHlwZWAgeWV0XG4gICAgICAgIGNhc2UgRWxlbWVudFR5cGUuRG9jdHlwZTpcbiAgICAgICAgY2FzZSBFbGVtZW50VHlwZS5EaXJlY3RpdmU6XG4gICAgICAgICAgICByZXR1cm4gcmVuZGVyRGlyZWN0aXZlKG5vZGUpO1xuICAgICAgICBjYXNlIEVsZW1lbnRUeXBlLkNvbW1lbnQ6XG4gICAgICAgICAgICByZXR1cm4gcmVuZGVyQ29tbWVudChub2RlKTtcbiAgICAgICAgY2FzZSBFbGVtZW50VHlwZS5DREFUQTpcbiAgICAgICAgICAgIHJldHVybiByZW5kZXJDZGF0YShub2RlKTtcbiAgICAgICAgY2FzZSBFbGVtZW50VHlwZS5TY3JpcHQ6XG4gICAgICAgIGNhc2UgRWxlbWVudFR5cGUuU3R5bGU6XG4gICAgICAgIGNhc2UgRWxlbWVudFR5cGUuVGFnOlxuICAgICAgICAgICAgcmV0dXJuIHJlbmRlclRhZyhub2RlLCBvcHRpb25zKTtcbiAgICAgICAgY2FzZSBFbGVtZW50VHlwZS5UZXh0OlxuICAgICAgICAgICAgcmV0dXJuIHJlbmRlclRleHQobm9kZSwgb3B0aW9ucyk7XG4gICAgfVxufVxuY29uc3QgZm9yZWlnbk1vZGVJbnRlZ3JhdGlvblBvaW50cyA9IG5ldyBTZXQoW1xuICAgIFwibWlcIixcbiAgICBcIm1vXCIsXG4gICAgXCJtblwiLFxuICAgIFwibXNcIixcbiAgICBcIm10ZXh0XCIsXG4gICAgXCJhbm5vdGF0aW9uLXhtbFwiLFxuICAgIFwiZm9yZWlnbk9iamVjdFwiLFxuICAgIFwiZGVzY1wiLFxuICAgIFwidGl0bGVcIixcbl0pO1xuY29uc3QgZm9yZWlnbkVsZW1lbnRzID0gbmV3IFNldChbXCJzdmdcIiwgXCJtYXRoXCJdKTtcbmZ1bmN0aW9uIHJlbmRlclRhZyhlbGVtLCBvcHRzKSB7XG4gICAgdmFyIF9hO1xuICAgIC8vIEhhbmRsZSBTVkcgLyBNYXRoTUwgaW4gSFRNTFxuICAgIGlmIChvcHRzLnhtbE1vZGUgPT09IFwiZm9yZWlnblwiKSB7XG4gICAgICAgIC8qIEZpeCB1cCBtaXhlZC1jYXNlIGVsZW1lbnQgbmFtZXMgKi9cbiAgICAgICAgZWxlbS5uYW1lID0gKF9hID0gZWxlbWVudE5hbWVzLmdldChlbGVtLm5hbWUpKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiBlbGVtLm5hbWU7XG4gICAgICAgIC8qIEV4aXQgZm9yZWlnbiBtb2RlIGF0IGludGVncmF0aW9uIHBvaW50cyAqL1xuICAgICAgICBpZiAoZWxlbS5wYXJlbnQgJiZcbiAgICAgICAgICAgIGZvcmVpZ25Nb2RlSW50ZWdyYXRpb25Qb2ludHMuaGFzKGVsZW0ucGFyZW50Lm5hbWUpKSB7XG4gICAgICAgICAgICBvcHRzID0geyAuLi5vcHRzLCB4bWxNb2RlOiBmYWxzZSB9O1xuICAgICAgICB9XG4gICAgfVxuICAgIGlmICghb3B0cy54bWxNb2RlICYmIGZvcmVpZ25FbGVtZW50cy5oYXMoZWxlbS5uYW1lKSkge1xuICAgICAgICBvcHRzID0geyAuLi5vcHRzLCB4bWxNb2RlOiBcImZvcmVpZ25cIiB9O1xuICAgIH1cbiAgICBsZXQgdGFnID0gYDwke2VsZW0ubmFtZX1gO1xuICAgIGNvbnN0IGF0dHJpYnMgPSBmb3JtYXRBdHRyaWJ1dGVzKGVsZW0uYXR0cmlicywgb3B0cyk7XG4gICAgaWYgKGF0dHJpYnMpIHtcbiAgICAgICAgdGFnICs9IGAgJHthdHRyaWJzfWA7XG4gICAgfVxuICAgIGlmIChlbGVtLmNoaWxkcmVuLmxlbmd0aCA9PT0gMCAmJlxuICAgICAgICAob3B0cy54bWxNb2RlXG4gICAgICAgICAgICA/IC8vIEluIFhNTCBtb2RlIG9yIGZvcmVpZ24gbW9kZSwgYW5kIHVzZXIgaGFzbid0IGV4cGxpY2l0bHkgdHVybmVkIG9mZiBzZWxmLWNsb3NpbmcgdGFnc1xuICAgICAgICAgICAgICAgIG9wdHMuc2VsZkNsb3NpbmdUYWdzICE9PSBmYWxzZVxuICAgICAgICAgICAgOiAvLyBVc2VyIGV4cGxpY2l0bHkgYXNrZWQgZm9yIHNlbGYtY2xvc2luZyB0YWdzLCBldmVuIGluIEhUTUwgbW9kZVxuICAgICAgICAgICAgICAgIG9wdHMuc2VsZkNsb3NpbmdUYWdzICYmIHNpbmdsZVRhZy5oYXMoZWxlbS5uYW1lKSkpIHtcbiAgICAgICAgaWYgKCFvcHRzLnhtbE1vZGUpXG4gICAgICAgICAgICB0YWcgKz0gXCIgXCI7XG4gICAgICAgIHRhZyArPSBcIi8+XCI7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICB0YWcgKz0gXCI+XCI7XG4gICAgICAgIGlmIChlbGVtLmNoaWxkcmVuLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHRhZyArPSByZW5kZXIoZWxlbS5jaGlsZHJlbiwgb3B0cyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG9wdHMueG1sTW9kZSB8fCAhc2luZ2xlVGFnLmhhcyhlbGVtLm5hbWUpKSB7XG4gICAgICAgICAgICB0YWcgKz0gYDwvJHtlbGVtLm5hbWV9PmA7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRhZztcbn1cbmZ1bmN0aW9uIHJlbmRlckRpcmVjdGl2ZShlbGVtKSB7XG4gICAgcmV0dXJuIGA8JHtlbGVtLmRhdGF9PmA7XG59XG5mdW5jdGlvbiByZW5kZXJUZXh0KGVsZW0sIG9wdHMpIHtcbiAgICB2YXIgX2E7XG4gICAgbGV0IGRhdGEgPSBlbGVtLmRhdGEgfHwgXCJcIjtcbiAgICAvLyBJZiBlbnRpdGllcyB3ZXJlbid0IGRlY29kZWQsIG5vIG5lZWQgdG8gZW5jb2RlIHRoZW0gYmFja1xuICAgIGlmICgoKF9hID0gb3B0cy5lbmNvZGVFbnRpdGllcykgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogb3B0cy5kZWNvZGVFbnRpdGllcykgIT09IGZhbHNlICYmXG4gICAgICAgICEoIW9wdHMueG1sTW9kZSAmJlxuICAgICAgICAgICAgZWxlbS5wYXJlbnQgJiZcbiAgICAgICAgICAgIHVuZW5jb2RlZEVsZW1lbnRzLmhhcyhlbGVtLnBhcmVudC5uYW1lKSkpIHtcbiAgICAgICAgZGF0YSA9XG4gICAgICAgICAgICBvcHRzLnhtbE1vZGUgfHwgb3B0cy5lbmNvZGVFbnRpdGllcyAhPT0gXCJ1dGY4XCJcbiAgICAgICAgICAgICAgICA/IGVuY29kZVhNTChkYXRhKVxuICAgICAgICAgICAgICAgIDogZXNjYXBlVGV4dChkYXRhKTtcbiAgICB9XG4gICAgcmV0dXJuIGRhdGE7XG59XG5mdW5jdGlvbiByZW5kZXJDZGF0YShlbGVtKSB7XG4gICAgcmV0dXJuIGA8IVtDREFUQVske2VsZW0uY2hpbGRyZW5bMF0uZGF0YX1dXT5gO1xufVxuZnVuY3Rpb24gcmVuZGVyQ29tbWVudChlbGVtKSB7XG4gICAgcmV0dXJuIGA8IS0tJHtlbGVtLmRhdGF9LS0+YDtcbn1cbiIsIG51bGwsIG51bGwsIG51bGwsIG51bGwsIG51bGwsIG51bGwsIG51bGwsIG51bGwsICJpbXBvcnQgdHlwZSB7IEJhc2ljQWNjZXB0ZWRFbGVtcyB9IGZyb20gJy4vdHlwZXMuanMnO1xuaW1wb3J0IHR5cGUgeyBDaGVlcmlvQVBJIH0gZnJvbSAnLi9sb2FkLmpzJztcbmltcG9ydCB0eXBlIHsgQ2hlZXJpbyB9IGZyb20gJy4vY2hlZXJpby5qcyc7XG5pbXBvcnQgdHlwZSB7IEFueU5vZGUsIERvY3VtZW50IH0gZnJvbSAnZG9taGFuZGxlcic7XG5pbXBvcnQgeyB0ZXh0Q29udGVudCB9IGZyb20gJ2RvbXV0aWxzJztcbmltcG9ydCB7XG4gIHR5cGUgSW50ZXJuYWxPcHRpb25zLFxuICB0eXBlIENoZWVyaW9PcHRpb25zLFxuICBmbGF0dGVuT3B0aW9ucyBhcyBmbGF0dGVuT3B0aW9ucyxcbn0gZnJvbSAnLi9vcHRpb25zLmpzJztcbmltcG9ydCB0eXBlIHsgRXh0cmFjdGVkTWFwLCBFeHRyYWN0TWFwIH0gZnJvbSAnLi9hcGkvZXh0cmFjdC5qcyc7XG5cbi8qKlxuICogSGVscGVyIGZ1bmN0aW9uIHRvIHJlbmRlciBhIERPTS5cbiAqXG4gKiBAcGFyYW0gdGhhdCAtIENoZWVyaW8gaW5zdGFuY2UgdG8gcmVuZGVyLlxuICogQHBhcmFtIGRvbSAtIFRoZSBET00gdG8gcmVuZGVyLiBEZWZhdWx0cyB0byBgdGhhdGAncyByb290LlxuICogQHBhcmFtIG9wdGlvbnMgLSBPcHRpb25zIGZvciByZW5kZXJpbmcuXG4gKiBAcmV0dXJucyBUaGUgcmVuZGVyZWQgZG9jdW1lbnQuXG4gKi9cbmZ1bmN0aW9uIHJlbmRlcihcbiAgdGhhdDogQ2hlZXJpb0FQSSxcbiAgZG9tOiBCYXNpY0FjY2VwdGVkRWxlbXM8QW55Tm9kZT4gfCB1bmRlZmluZWQsXG4gIG9wdGlvbnM6IEludGVybmFsT3B0aW9ucyxcbik6IHN0cmluZyB7XG4gIGlmICghdGhhdCkgcmV0dXJuICcnO1xuXG4gIHJldHVybiB0aGF0KGRvbSA/PyB0aGF0Ll9yb290LmNoaWxkcmVuLCBudWxsLCB1bmRlZmluZWQsIG9wdGlvbnMpLnRvU3RyaW5nKCk7XG59XG5cbi8qKlxuICogQ2hlY2tzIGlmIGEgcGFzc2VkIG9iamVjdCBpcyBhbiBvcHRpb25zIG9iamVjdC5cbiAqXG4gKiBAcGFyYW0gZG9tIC0gT2JqZWN0IHRvIGNoZWNrIGlmIGl0IGlzIGFuIG9wdGlvbnMgb2JqZWN0LlxuICogQHBhcmFtIG9wdGlvbnMgLSBPcHRpb25zIG9iamVjdC5cbiAqIEByZXR1cm5zIFdoZXRoZXIgdGhlIG9iamVjdCBpcyBhbiBvcHRpb25zIG9iamVjdC5cbiAqL1xuZnVuY3Rpb24gaXNPcHRpb25zKFxuICBkb20/OiBCYXNpY0FjY2VwdGVkRWxlbXM8QW55Tm9kZT4gfCBDaGVlcmlvT3B0aW9ucyB8IG51bGwsXG4gIG9wdGlvbnM/OiBDaGVlcmlvT3B0aW9ucyxcbik6IGRvbSBpcyBDaGVlcmlvT3B0aW9ucyB7XG4gIHJldHVybiAoXG4gICAgIW9wdGlvbnMgJiZcbiAgICB0eXBlb2YgZG9tID09PSAnb2JqZWN0JyAmJlxuICAgIGRvbSAhPSBudWxsICYmXG4gICAgISgnbGVuZ3RoJyBpbiBkb20pICYmXG4gICAgISgndHlwZScgaW4gZG9tKVxuICApO1xufVxuXG4vKipcbiAqIFJlbmRlcnMgdGhlIGRvY3VtZW50LlxuICpcbiAqIEBjYXRlZ29yeSBTdGF0aWNcbiAqIEBwYXJhbSBvcHRpb25zIC0gT3B0aW9ucyBmb3IgdGhlIHJlbmRlcmVyLlxuICogQHJldHVybnMgVGhlIHJlbmRlcmVkIGRvY3VtZW50LlxuICovXG5leHBvcnQgZnVuY3Rpb24gaHRtbCh0aGlzOiBDaGVlcmlvQVBJLCBvcHRpb25zPzogQ2hlZXJpb09wdGlvbnMpOiBzdHJpbmc7XG4vKipcbiAqIFJlbmRlcnMgdGhlIGRvY3VtZW50LlxuICpcbiAqIEBjYXRlZ29yeSBTdGF0aWNcbiAqIEBwYXJhbSBkb20gLSBFbGVtZW50IHRvIHJlbmRlci5cbiAqIEBwYXJhbSBvcHRpb25zIC0gT3B0aW9ucyBmb3IgdGhlIHJlbmRlcmVyLlxuICogQHJldHVybnMgVGhlIHJlbmRlcmVkIGRvY3VtZW50LlxuICovXG5leHBvcnQgZnVuY3Rpb24gaHRtbChcbiAgdGhpczogQ2hlZXJpb0FQSSxcbiAgZG9tPzogQmFzaWNBY2NlcHRlZEVsZW1zPEFueU5vZGU+LFxuICBvcHRpb25zPzogQ2hlZXJpb09wdGlvbnMsXG4pOiBzdHJpbmc7XG5leHBvcnQgZnVuY3Rpb24gaHRtbChcbiAgdGhpczogQ2hlZXJpb0FQSSxcbiAgZG9tPzogQmFzaWNBY2NlcHRlZEVsZW1zPEFueU5vZGU+IHwgQ2hlZXJpb09wdGlvbnMsXG4gIG9wdGlvbnM/OiBDaGVlcmlvT3B0aW9ucyxcbik6IHN0cmluZyB7XG4gIC8qXG4gICAqIEJlIGZsZXhpYmxlIGFib3V0IHBhcmFtZXRlcnMsIHNvbWV0aW1lcyB3ZSBjYWxsIGh0bWwoKSxcbiAgICogd2l0aCBvcHRpb25zIGFzIG9ubHkgcGFyYW1ldGVyXG4gICAqIGNoZWNrIGRvbSBhcmd1bWVudCBmb3IgZG9tIGVsZW1lbnQgc3BlY2lmaWMgcHJvcGVydGllc1xuICAgKiBhc3N1bWUgdGhlcmUgaXMgbm8gJ2xlbmd0aCcgb3IgJ3R5cGUnIHByb3BlcnRpZXMgaW4gdGhlIG9wdGlvbnMgb2JqZWN0XG4gICAqL1xuICBjb25zdCB0b1JlbmRlciA9IGlzT3B0aW9ucyhkb20pID8gKChvcHRpb25zID0gZG9tKSwgdW5kZWZpbmVkKSA6IGRvbTtcblxuICAvKlxuICAgKiBTb21ldGltZXMgYCQuaHRtbCgpYCBpcyB1c2VkIHdpdGhvdXQgcHJlbG9hZGluZyBodG1sLFxuICAgKiBzbyBmYWxsYmFjayBub24tZXhpc3Rpbmcgb3B0aW9ucyB0byB0aGUgZGVmYXVsdCBvbmVzLlxuICAgKi9cbiAgY29uc3Qgb3B0cyA9IHtcbiAgICAuLi50aGlzPy5fb3B0aW9ucyxcbiAgICAuLi5mbGF0dGVuT3B0aW9ucyhvcHRpb25zKSxcbiAgfTtcblxuICByZXR1cm4gcmVuZGVyKHRoaXMsIHRvUmVuZGVyLCBvcHRzKTtcbn1cblxuLyoqXG4gKiBSZW5kZXIgdGhlIGRvY3VtZW50IGFzIFhNTC5cbiAqXG4gKiBAY2F0ZWdvcnkgU3RhdGljXG4gKiBAcGFyYW0gZG9tIC0gRWxlbWVudCB0byByZW5kZXIuXG4gKiBAcmV0dXJucyBUSGUgcmVuZGVyZWQgZG9jdW1lbnQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB4bWwoXG4gIHRoaXM6IENoZWVyaW9BUEksXG4gIGRvbT86IEJhc2ljQWNjZXB0ZWRFbGVtczxBbnlOb2RlPixcbik6IHN0cmluZyB7XG4gIGNvbnN0IG9wdGlvbnMgPSB7IC4uLnRoaXMuX29wdGlvbnMsIHhtbE1vZGU6IHRydWUgfTtcblxuICByZXR1cm4gcmVuZGVyKHRoaXMsIGRvbSwgb3B0aW9ucyk7XG59XG5cbi8qKlxuICogUmVuZGVyIHRoZSBkb2N1bWVudCBhcyB0ZXh0LlxuICpcbiAqIFRoaXMgcmV0dXJucyB0aGUgYHRleHRDb250ZW50YCBvZiB0aGUgcGFzc2VkIGVsZW1lbnRzLiBUaGUgcmVzdWx0IHdpbGxcbiAqIGluY2x1ZGUgdGhlIGNvbnRlbnRzIG9mIGA8c2NyaXB0PmAgYW5kIGA8c3R5bGU+YCBlbGVtZW50cy4gVG8gYXZvaWQgdGhpcywgdXNlXG4gKiBgLnByb3AoJ2lubmVyVGV4dCcpYCBpbnN0ZWFkLlxuICpcbiAqIEBjYXRlZ29yeSBTdGF0aWNcbiAqIEBwYXJhbSBlbGVtZW50cyAtIEVsZW1lbnRzIHRvIHJlbmRlci5cbiAqIEByZXR1cm5zIFRoZSByZW5kZXJlZCBkb2N1bWVudC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRleHQoXG4gIHRoaXM6IENoZWVyaW9BUEkgfCB2b2lkLFxuICBlbGVtZW50cz86IEFycmF5TGlrZTxBbnlOb2RlPixcbik6IHN0cmluZyB7XG4gIGNvbnN0IGVsZW1zID0gZWxlbWVudHMgPz8gKHRoaXMgPyB0aGlzLnJvb3QoKSA6IFtdKTtcblxuICBsZXQgcmV0ID0gJyc7XG5cbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBlbGVtcy5sZW5ndGg7IGkrKykge1xuICAgIHJldCArPSB0ZXh0Q29udGVudChlbGVtc1tpXSk7XG4gIH1cblxuICByZXR1cm4gcmV0O1xufVxuXG4vKipcbiAqIFBhcnNlcyBhIHN0cmluZyBpbnRvIGFuIGFycmF5IG9mIERPTSBub2Rlcy4gVGhlIGBjb250ZXh0YCBhcmd1bWVudCBoYXMgbm9cbiAqIG1lYW5pbmcgZm9yIENoZWVyaW8sIGJ1dCBpdCBpcyBtYWludGFpbmVkIGZvciBBUEkgY29tcGF0aWJpbGl0eSB3aXRoIGpRdWVyeS5cbiAqXG4gKiBAY2F0ZWdvcnkgU3RhdGljXG4gKiBAcGFyYW0gZGF0YSAtIE1hcmt1cCB0aGF0IHdpbGwgYmUgcGFyc2VkLlxuICogQHBhcmFtIGNvbnRleHQgLSBXaWxsIGJlIGlnbm9yZWQuIElmIGl0IGlzIGEgYm9vbGVhbiBpdCB3aWxsIGJlIHVzZWQgYXMgdGhlXG4gKiAgIHZhbHVlIG9mIGBrZWVwU2NyaXB0c2AuXG4gKiBAcGFyYW0ga2VlcFNjcmlwdHMgLSBJZiBmYWxzZSBhbGwgc2NyaXB0cyB3aWxsIGJlIHJlbW92ZWQuXG4gKiBAcmV0dXJucyBUaGUgcGFyc2VkIERPTS5cbiAqIEBhbGlhcyBDaGVlcmlvLnBhcnNlSFRNTFxuICogQHNlZSB7QGxpbmsgaHR0cHM6Ly9hcGkuanF1ZXJ5LmNvbS9qUXVlcnkucGFyc2VIVE1ML31cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlSFRNTChcbiAgdGhpczogQ2hlZXJpb0FQSSxcbiAgZGF0YTogc3RyaW5nLFxuICBjb250ZXh0PzogdW5rbm93biB8IGJvb2xlYW4sXG4gIGtlZXBTY3JpcHRzPzogYm9vbGVhbixcbik6IEFueU5vZGVbXTtcbmV4cG9ydCBmdW5jdGlvbiBwYXJzZUhUTUwodGhpczogQ2hlZXJpb0FQSSwgZGF0YT86ICcnIHwgbnVsbCk6IG51bGw7XG5leHBvcnQgZnVuY3Rpb24gcGFyc2VIVE1MKFxuICB0aGlzOiBDaGVlcmlvQVBJLFxuICBkYXRhPzogc3RyaW5nIHwgbnVsbCxcbiAgY29udGV4dD86IHVua25vd24gfCBib29sZWFuLFxuICBrZWVwU2NyaXB0cyA9IHR5cGVvZiBjb250ZXh0ID09PSAnYm9vbGVhbicgPyBjb250ZXh0IDogZmFsc2UsXG4pOiBBbnlOb2RlW10gfCBudWxsIHtcbiAgaWYgKCFkYXRhIHx8IHR5cGVvZiBkYXRhICE9PSAnc3RyaW5nJykge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgaWYgKHR5cGVvZiBjb250ZXh0ID09PSAnYm9vbGVhbicpIHtcbiAgICBrZWVwU2NyaXB0cyA9IGNvbnRleHQ7XG4gIH1cblxuICBjb25zdCBwYXJzZWQgPSB0aGlzLmxvYWQoZGF0YSwgdGhpcy5fb3B0aW9ucywgZmFsc2UpO1xuICBpZiAoIWtlZXBTY3JpcHRzKSB7XG4gICAgcGFyc2VkKCdzY3JpcHQnKS5yZW1vdmUoKTtcbiAgfVxuXG4gIC8qXG4gICAqIFRoZSBgY2hpbGRyZW5gIGFycmF5IGlzIHVzZWQgYnkgQ2hlZXJpbyBpbnRlcm5hbGx5IHRvIGdyb3VwIGVsZW1lbnRzIHRoYXRcbiAgICogc2hhcmUgdGhlIHNhbWUgcGFyZW50cy4gV2hlbiBub2RlcyBjcmVhdGVkIHRocm91Z2ggYHBhcnNlSFRNTGAgYXJlXG4gICAqIGluc2VydGVkIGludG8gcHJldmlvdXNseS1leGlzdGluZyBET00gc3RydWN0dXJlcywgdGhleSB3aWxsIGJlIHJlbW92ZWRcbiAgICogZnJvbSB0aGUgYGNoaWxkcmVuYCBhcnJheS4gVGhlIHJlc3VsdHMgb2YgYHBhcnNlSFRNTGAgc2hvdWxkIHJlbWFpblxuICAgKiBjb25zdGFudCBhY3Jvc3MgdGhlc2Ugb3BlcmF0aW9ucywgc28gYSBzaGFsbG93IGNvcHkgc2hvdWxkIGJlIHJldHVybmVkLlxuICAgKi9cbiAgcmV0dXJuIFsuLi5wYXJzZWQucm9vdCgpWzBdLmNoaWxkcmVuXTtcbn1cblxuLyoqXG4gKiBTb21ldGltZXMgeW91IG5lZWQgdG8gd29yayB3aXRoIHRoZSB0b3AtbGV2ZWwgcm9vdCBlbGVtZW50LiBUbyBxdWVyeSBpdCwgeW91XG4gKiBjYW4gdXNlIGAkLnJvb3QoKWAuXG4gKlxuICogQGNhdGVnb3J5IFN0YXRpY1xuICogQGV4YW1wbGVcbiAqXG4gKiBgYGBqc1xuICogJC5yb290KCkuYXBwZW5kKCc8dWwgaWQ9XCJ2ZWdldGFibGVzXCI+PC91bD4nKS5odG1sKCk7XG4gKiAvLz0+IDx1bCBpZD1cImZydWl0c1wiPi4uLjwvdWw+PHVsIGlkPVwidmVnZXRhYmxlc1wiPjwvdWw+XG4gKiBgYGBcbiAqXG4gKiBAcmV0dXJucyBDaGVlcmlvIGluc3RhbmNlIHdyYXBwaW5nIHRoZSByb290IG5vZGUuXG4gKiBAYWxpYXMgQ2hlZXJpby5yb290XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByb290KHRoaXM6IENoZWVyaW9BUEkpOiBDaGVlcmlvPERvY3VtZW50PiB7XG4gIHJldHVybiB0aGlzKHRoaXMuX3Jvb3QpO1xufVxuXG4vKipcbiAqIENoZWNrcyB0byBzZWUgaWYgdGhlIGBjb250YWluZWRgIERPTSBlbGVtZW50IGlzIGEgZGVzY2VuZGFudCBvZiB0aGVcbiAqIGBjb250YWluZXJgIERPTSBlbGVtZW50LlxuICpcbiAqIEBjYXRlZ29yeSBTdGF0aWNcbiAqIEBwYXJhbSBjb250YWluZXIgLSBQb3RlbnRpYWwgcGFyZW50IG5vZGUuXG4gKiBAcGFyYW0gY29udGFpbmVkIC0gUG90ZW50aWFsIGNoaWxkIG5vZGUuXG4gKiBAcmV0dXJucyBJbmRpY2F0ZXMgaWYgdGhlIG5vZGVzIGNvbnRhaW4gb25lIGFub3RoZXIuXG4gKiBAYWxpYXMgQ2hlZXJpby5jb250YWluc1xuICogQHNlZSB7QGxpbmsgaHR0cHM6Ly9hcGkuanF1ZXJ5LmNvbS9qUXVlcnkuY29udGFpbnMvfVxuICovXG5leHBvcnQgZnVuY3Rpb24gY29udGFpbnMoY29udGFpbmVyOiBBbnlOb2RlLCBjb250YWluZWQ6IEFueU5vZGUpOiBib29sZWFuIHtcbiAgLy8gQWNjb3JkaW5nIHRvIHRoZSBqUXVlcnkgQVBJLCBhbiBlbGVtZW50IGRvZXMgbm90IFwiY29udGFpblwiIGl0c2VsZlxuICBpZiAoY29udGFpbmVkID09PSBjb250YWluZXIpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICAvKlxuICAgKiBTdGVwIHVwIHRoZSBkZXNjZW5kYW50cywgc3RvcHBpbmcgd2hlbiB0aGUgcm9vdCBlbGVtZW50IGlzIHJlYWNoZWRcbiAgICogKHNpZ25hbGVkIGJ5IGAucGFyZW50YCByZXR1cm5pbmcgYSByZWZlcmVuY2UgdG8gdGhlIHNhbWUgb2JqZWN0KVxuICAgKi9cbiAgbGV0IG5leHQ6IEFueU5vZGUgfCBudWxsID0gY29udGFpbmVkO1xuICB3aGlsZSAobmV4dCAmJiBuZXh0ICE9PSBuZXh0LnBhcmVudCkge1xuICAgIG5leHQgPSBuZXh0LnBhcmVudDtcbiAgICBpZiAobmV4dCA9PT0gY29udGFpbmVyKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gZmFsc2U7XG59XG5cbi8qKlxuICogRXh0cmFjdCBtdWx0aXBsZSB2YWx1ZXMgZnJvbSBhIGRvY3VtZW50LCBhbmQgc3RvcmUgdGhlbSBpbiBhbiBvYmplY3QuXG4gKlxuICogQGNhdGVnb3J5IFN0YXRpY1xuICogQHBhcmFtIG1hcCAtIEFuIG9iamVjdCBjb250YWluaW5nIGtleS12YWx1ZSBwYWlycy4gVGhlIGtleXMgYXJlIHRoZSBuYW1lcyBvZlxuICogICB0aGUgcHJvcGVydGllcyB0byBiZSBjcmVhdGVkIG9uIHRoZSBvYmplY3QsIGFuZCB0aGUgdmFsdWVzIGFyZSB0aGVcbiAqICAgc2VsZWN0b3JzIHRvIGJlIHVzZWQgdG8gZXh0cmFjdCB0aGUgdmFsdWVzLlxuICogQHJldHVybnMgQW4gb2JqZWN0IGNvbnRhaW5pbmcgdGhlIGV4dHJhY3RlZCB2YWx1ZXMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBleHRyYWN0PE0gZXh0ZW5kcyBFeHRyYWN0TWFwPihcbiAgdGhpczogQ2hlZXJpb0FQSSxcbiAgbWFwOiBNLFxuKTogRXh0cmFjdGVkTWFwPE0+IHtcbiAgcmV0dXJuIHRoaXMucm9vdCgpLmV4dHJhY3QobWFwKTtcbn1cblxudHlwZSBXcml0YWJsZTxUPiA9IHsgLXJlYWRvbmx5IFtQIGluIGtleW9mIFRdOiBUW1BdIH07XG5cbi8qKlxuICogJC5tZXJnZSgpLlxuICpcbiAqIEBjYXRlZ29yeSBTdGF0aWNcbiAqIEBwYXJhbSBhcnIxIC0gRmlyc3QgYXJyYXkuXG4gKiBAcGFyYW0gYXJyMiAtIFNlY29uZCBhcnJheS5cbiAqIEByZXR1cm5zIGBhcnIxYCwgd2l0aCBlbGVtZW50cyBvZiBgYXJyMmAgaW5zZXJ0ZWQuXG4gKiBAYWxpYXMgQ2hlZXJpby5tZXJnZVxuICogQHNlZSB7QGxpbmsgaHR0cHM6Ly9hcGkuanF1ZXJ5LmNvbS9qUXVlcnkubWVyZ2UvfVxuICovXG5leHBvcnQgZnVuY3Rpb24gbWVyZ2U8VD4oXG4gIGFycjE6IFdyaXRhYmxlPEFycmF5TGlrZTxUPj4sXG4gIGFycjI6IEFycmF5TGlrZTxUPixcbik6IEFycmF5TGlrZTxUPiB8IHVuZGVmaW5lZCB7XG4gIGlmICghaXNBcnJheUxpa2UoYXJyMSkgfHwgIWlzQXJyYXlMaWtlKGFycjIpKSB7XG4gICAgcmV0dXJuO1xuICB9XG4gIGxldCBuZXdMZW5ndGggPSBhcnIxLmxlbmd0aDtcbiAgY29uc3QgbGVuID0gK2FycjIubGVuZ3RoO1xuXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgbGVuOyBpKyspIHtcbiAgICBhcnIxW25ld0xlbmd0aCsrXSA9IGFycjJbaV07XG4gIH1cbiAgYXJyMS5sZW5ndGggPSBuZXdMZW5ndGg7XG4gIHJldHVybiBhcnIxO1xufVxuXG4vKipcbiAqIENoZWNrcyBpZiBhbiBvYmplY3QgaXMgYXJyYXktbGlrZS5cbiAqXG4gKiBAY2F0ZWdvcnkgU3RhdGljXG4gKiBAcGFyYW0gaXRlbSAtIEl0ZW0gdG8gY2hlY2suXG4gKiBAcmV0dXJucyBJbmRpY2F0ZXMgaWYgdGhlIGl0ZW0gaXMgYXJyYXktbGlrZS5cbiAqL1xuZnVuY3Rpb24gaXNBcnJheUxpa2UoaXRlbTogdW5rbm93bik6IGl0ZW0gaXMgQXJyYXlMaWtlPHVua25vd24+IHtcbiAgaWYgKEFycmF5LmlzQXJyYXkoaXRlbSkpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIGlmIChcbiAgICB0eXBlb2YgaXRlbSAhPT0gJ29iamVjdCcgfHxcbiAgICBpdGVtID09PSBudWxsIHx8XG4gICAgISgnbGVuZ3RoJyBpbiBpdGVtKSB8fFxuICAgIHR5cGVvZiBpdGVtLmxlbmd0aCAhPT0gJ251bWJlcicgfHxcbiAgICBpdGVtLmxlbmd0aCA8IDBcbiAgKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBpdGVtLmxlbmd0aDsgaSsrKSB7XG4gICAgaWYgKCEoaSBpbiBpdGVtKSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuICByZXR1cm4gdHJ1ZTtcbn1cbiIsICJpbXBvcnQgdHlwZSB7IEFueU5vZGUgfSBmcm9tICdkb21oYW5kbGVyJztcbmltcG9ydCB0eXBlIHsgQ2hlZXJpbyB9IGZyb20gJy4vY2hlZXJpby5qcyc7XG5cbi8qKlxuICogQ2hlY2tzIGlmIGFuIG9iamVjdCBpcyBhIENoZWVyaW8gaW5zdGFuY2UuXG4gKlxuICogQGNhdGVnb3J5IFV0aWxzXG4gKiBAcGFyYW0gbWF5YmVDaGVlcmlvIC0gVGhlIG9iamVjdCB0byBjaGVjay5cbiAqIEByZXR1cm5zIFdoZXRoZXIgdGhlIG9iamVjdCBpcyBhIENoZWVyaW8gaW5zdGFuY2UuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc0NoZWVyaW88VD4obWF5YmVDaGVlcmlvOiBhbnkpOiBtYXliZUNoZWVyaW8gaXMgQ2hlZXJpbzxUPiB7XG4gIHJldHVybiBtYXliZUNoZWVyaW8uY2hlZXJpbyAhPSBudWxsO1xufVxuXG4vKipcbiAqIENvbnZlcnQgYSBzdHJpbmcgdG8gY2FtZWwgY2FzZSBub3RhdGlvbi5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQGNhdGVnb3J5IFV0aWxzXG4gKiBAcGFyYW0gc3RyIC0gVGhlIHN0cmluZyB0byBiZSBjb252ZXJ0ZWQuXG4gKiBAcmV0dXJucyBTdHJpbmcgaW4gY2FtZWwgY2FzZSBub3RhdGlvbi5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNhbWVsQ2FzZShzdHI6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBzdHIucmVwbGFjZSgvWy5fLV0oXFx3fCQpL2csIChfLCB4KSA9PiB4LnRvVXBwZXJDYXNlKCkpO1xufVxuXG4vKipcbiAqIENvbnZlcnQgYSBzdHJpbmcgZnJvbSBjYW1lbCBjYXNlIHRvIFwiQ1NTIGNhc2VcIiwgd2hlcmUgd29yZCBib3VuZGFyaWVzIGFyZVxuICogZGVzY3JpYmVkIGJ5IGh5cGhlbnMgKFwiLVwiKSBhbmQgYWxsIGNoYXJhY3RlcnMgYXJlIGxvd2VyLWNhc2UuXG4gKlxuICogQHByaXZhdGVcbiAqIEBjYXRlZ29yeSBVdGlsc1xuICogQHBhcmFtIHN0ciAtIFRoZSBzdHJpbmcgdG8gYmUgY29udmVydGVkLlxuICogQHJldHVybnMgU3RyaW5nIGluIFwiQ1NTIGNhc2VcIi5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNzc0Nhc2Uoc3RyOiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gc3RyLnJlcGxhY2UoL1tBLVpdL2csICctJCYnKS50b0xvd2VyQ2FzZSgpO1xufVxuXG4vKipcbiAqIEl0ZXJhdGUgb3ZlciBlYWNoIERPTSBlbGVtZW50IHdpdGhvdXQgY3JlYXRpbmcgaW50ZXJtZWRpYXJ5IENoZWVyaW9cbiAqIGluc3RhbmNlcy5cbiAqXG4gKiBUaGlzIGlzIGluZGVudGVkIGZvciB1c2UgaW50ZXJuYWxseSB0byBhdm9pZCBvdGhlcndpc2UgdW5uZWNlc3NhcnkgbWVtb3J5XG4gKiBwcmVzc3VyZSBpbnRyb2R1Y2VkIGJ5IF9tYWtlLlxuICpcbiAqIEBjYXRlZ29yeSBVdGlsc1xuICogQHBhcmFtIGFycmF5IC0gVGhlIGFycmF5IHRvIGl0ZXJhdGUgb3Zlci5cbiAqIEBwYXJhbSBmbiAtIEZ1bmN0aW9uIHRvIGNhbGwuXG4gKiBAcmV0dXJucyBUaGUgb3JpZ2luYWwgaW5zdGFuY2UuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkb21FYWNoPFxuICBUIGV4dGVuZHMgQW55Tm9kZSxcbiAgQXJyIGV4dGVuZHMgQXJyYXlMaWtlPFQ+ID0gQ2hlZXJpbzxUPixcbj4oYXJyYXk6IEFyciwgZm46IChlbGVtOiBULCBpbmRleDogbnVtYmVyKSA9PiB2b2lkKTogQXJyIHtcbiAgY29uc3QgbGVuID0gYXJyYXkubGVuZ3RoO1xuICBmb3IgKGxldCBpID0gMDsgaSA8IGxlbjsgaSsrKSBmbihhcnJheVtpXSwgaSk7XG4gIHJldHVybiBhcnJheTtcbn1cblxuY29uc3QgZW51bSBDaGFyYWN0ZXJDb2RlcyB7XG4gIExvd2VyQSA9IDk3LFxuICBMb3dlclogPSAxMjIsXG4gIFVwcGVyQSA9IDY1LFxuICBVcHBlclogPSA5MCxcbiAgRXhjbGFtYXRpb24gPSAzMyxcbn1cblxuLyoqXG4gKiBDaGVjayBpZiBzdHJpbmcgaXMgSFRNTC5cbiAqXG4gKiBUZXN0cyBmb3IgYSBgPGAgd2l0aGluIGEgc3RyaW5nLCBpbW1lZGlhdGUgZm9sbG93ZWQgYnkgYSBsZXR0ZXIgYW5kXG4gKiBldmVudHVhbGx5IGZvbGxvd2VkIGJ5IGEgYD5gLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAY2F0ZWdvcnkgVXRpbHNcbiAqIEBwYXJhbSBzdHIgLSBUaGUgc3RyaW5nIHRvIGNoZWNrLlxuICogQHJldHVybnMgSW5kaWNhdGVzIGlmIGBzdHJgIGlzIEhUTUwuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc0h0bWwoc3RyOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgY29uc3QgdGFnU3RhcnQgPSBzdHIuaW5kZXhPZignPCcpO1xuXG4gIGlmICh0YWdTdGFydCA8IDAgfHwgdGFnU3RhcnQgPiBzdHIubGVuZ3RoIC0gMykgcmV0dXJuIGZhbHNlO1xuXG4gIGNvbnN0IHRhZ0NoYXIgPSBzdHIuY2hhckNvZGVBdCh0YWdTdGFydCArIDEpO1xuXG4gIHJldHVybiAoXG4gICAgKCh0YWdDaGFyID49IENoYXJhY3RlckNvZGVzLkxvd2VyQSAmJiB0YWdDaGFyIDw9IENoYXJhY3RlckNvZGVzLkxvd2VyWikgfHxcbiAgICAgICh0YWdDaGFyID49IENoYXJhY3RlckNvZGVzLlVwcGVyQSAmJiB0YWdDaGFyIDw9IENoYXJhY3RlckNvZGVzLlVwcGVyWikgfHxcbiAgICAgIHRhZ0NoYXIgPT09IENoYXJhY3RlckNvZGVzLkV4Y2xhbWF0aW9uKSAmJlxuICAgIHN0ci5pbmNsdWRlcygnPicsIHRhZ1N0YXJ0ICsgMilcbiAgKTtcbn1cbiIsICIvKipcbiAqIE1ldGhvZHMgZm9yIGdldHRpbmcgYW5kIG1vZGlmeWluZyBhdHRyaWJ1dGVzLlxuICpcbiAqIEBtb2R1bGUgY2hlZXJpby9hdHRyaWJ1dGVzXG4gKi9cblxuaW1wb3J0IHsgdGV4dCB9IGZyb20gJy4uL3N0YXRpYy5qcyc7XG5pbXBvcnQgeyBkb21FYWNoLCBjYW1lbENhc2UsIGNzc0Nhc2UgfSBmcm9tICcuLi91dGlscy5qcyc7XG5pbXBvcnQgeyBpc1RhZywgdHlwZSBBbnlOb2RlLCB0eXBlIEVsZW1lbnQgfSBmcm9tICdkb21oYW5kbGVyJztcbmltcG9ydCB0eXBlIHsgQ2hlZXJpbyB9IGZyb20gJy4uL2NoZWVyaW8uanMnO1xuaW1wb3J0IHsgaW5uZXJUZXh0LCB0ZXh0Q29udGVudCB9IGZyb20gJ2RvbXV0aWxzJztcbmNvbnN0IGhhc093biA9IE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7XG5jb25zdCByc3BhY2UgPSAvXFxzKy87XG5jb25zdCBkYXRhQXR0clByZWZpeCA9ICdkYXRhLSc7XG5cbi8vIEF0dHJpYnV0ZXMgdGhhdCBhcmUgYm9vbGVhbnNcbmNvbnN0IHJib29sZWFuID1cbiAgL14oPzphdXRvZm9jdXN8YXV0b3BsYXl8YXN5bmN8Y2hlY2tlZHxjb250cm9sc3xkZWZlcnxkaXNhYmxlZHxoaWRkZW58bG9vcHxtdWx0aXBsZXxvcGVufHJlYWRvbmx5fHJlcXVpcmVkfHNjb3BlZHxzZWxlY3RlZCkkL2k7XG4vLyBNYXRjaGVzIHN0cmluZ3MgdGhhdCBsb29rIGxpa2UgSlNPTiBvYmplY3RzIG9yIGFycmF5c1xuY29uc3QgcmJyYWNlID0gL157W15dKn0kfF5cXFtbXl0qXSQvO1xuXG4vKipcbiAqIEdldHMgYSBub2RlJ3MgYXR0cmlidXRlLiBGb3IgYm9vbGVhbiBhdHRyaWJ1dGVzLCBpdCB3aWxsIHJldHVybiB0aGUgdmFsdWUnc1xuICogbmFtZSBzaG91bGQgaXQgYmUgc2V0LlxuICpcbiAqIEFsc28gc3VwcG9ydHMgZ2V0dGluZyB0aGUgYHZhbHVlYCBvZiBzZXZlcmFsIGZvcm0gZWxlbWVudHMuXG4gKlxuICogQHByaXZhdGVcbiAqIEBjYXRlZ29yeSBBdHRyaWJ1dGVzXG4gKiBAcGFyYW0gZWxlbSAtIEVsZW1lbnQgdG8gZ2V0IHRoZSBhdHRyaWJ1dGUgb2YuXG4gKiBAcGFyYW0gbmFtZSAtIE5hbWUgb2YgdGhlIGF0dHJpYnV0ZS5cbiAqIEBwYXJhbSB4bWxNb2RlIC0gRGlzYWJsZSBoYW5kbGluZyBvZiBzcGVjaWFsIEhUTUwgYXR0cmlidXRlcy5cbiAqIEByZXR1cm5zIFRoZSBhdHRyaWJ1dGUncyB2YWx1ZS5cbiAqL1xuZnVuY3Rpb24gZ2V0QXR0cihcbiAgZWxlbTogQW55Tm9kZSxcbiAgbmFtZTogdW5kZWZpbmVkLFxuICB4bWxNb2RlPzogYm9vbGVhbixcbik6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gfCB1bmRlZmluZWQ7XG5mdW5jdGlvbiBnZXRBdHRyKFxuICBlbGVtOiBBbnlOb2RlLFxuICBuYW1lOiBzdHJpbmcsXG4gIHhtbE1vZGU/OiBib29sZWFuLFxuKTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuZnVuY3Rpb24gZ2V0QXR0cihcbiAgZWxlbTogQW55Tm9kZSxcbiAgbmFtZTogc3RyaW5nIHwgdW5kZWZpbmVkLFxuICB4bWxNb2RlPzogYm9vbGVhbixcbik6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gfCBzdHJpbmcgfCB1bmRlZmluZWQge1xuICBpZiAoIWVsZW0gfHwgIWlzVGFnKGVsZW0pKSByZXR1cm4gdW5kZWZpbmVkO1xuXG4gIGVsZW0uYXR0cmlicyA/Pz0ge307XG5cbiAgLy8gUmV0dXJuIHRoZSBlbnRpcmUgYXR0cmlicyBvYmplY3QgaWYgbm8gYXR0cmlidXRlIHNwZWNpZmllZFxuICBpZiAoIW5hbWUpIHtcbiAgICByZXR1cm4gZWxlbS5hdHRyaWJzO1xuICB9XG5cbiAgaWYgKGhhc093bi5jYWxsKGVsZW0uYXR0cmlicywgbmFtZSkpIHtcbiAgICAvLyBHZXQgdGhlIChkZWNvZGVkKSBhdHRyaWJ1dGVcbiAgICByZXR1cm4gIXhtbE1vZGUgJiYgcmJvb2xlYW4udGVzdChuYW1lKSA/IG5hbWUgOiBlbGVtLmF0dHJpYnNbbmFtZV07XG4gIH1cblxuICAvLyBNaW1pYyB0aGUgRE9NIGFuZCByZXR1cm4gdGV4dCBjb250ZW50IGFzIHZhbHVlIGZvciBgb3B0aW9uJ3NgXG4gIGlmIChlbGVtLm5hbWUgPT09ICdvcHRpb24nICYmIG5hbWUgPT09ICd2YWx1ZScpIHtcbiAgICByZXR1cm4gdGV4dChlbGVtLmNoaWxkcmVuKTtcbiAgfVxuXG4gIC8vIE1pbWljIERPTSB3aXRoIGRlZmF1bHQgdmFsdWUgZm9yIHJhZGlvcy9jaGVja2JveGVzXG4gIGlmIChcbiAgICBlbGVtLm5hbWUgPT09ICdpbnB1dCcgJiZcbiAgICAoZWxlbS5hdHRyaWJzWyd0eXBlJ10gPT09ICdyYWRpbycgfHwgZWxlbS5hdHRyaWJzWyd0eXBlJ10gPT09ICdjaGVja2JveCcpICYmXG4gICAgbmFtZSA9PT0gJ3ZhbHVlJ1xuICApIHtcbiAgICByZXR1cm4gJ29uJztcbiAgfVxuXG4gIHJldHVybiB1bmRlZmluZWQ7XG59XG5cbi8qKlxuICogU2V0cyB0aGUgdmFsdWUgb2YgYW4gYXR0cmlidXRlLiBUaGUgYXR0cmlidXRlIHdpbGwgYmUgZGVsZXRlZCBpZiB0aGUgdmFsdWUgaXNcbiAqIGBudWxsYC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIGVsIC0gVGhlIGVsZW1lbnQgdG8gc2V0IHRoZSBhdHRyaWJ1dGUgb24uXG4gKiBAcGFyYW0gbmFtZSAtIFRoZSBhdHRyaWJ1dGUncyBuYW1lLlxuICogQHBhcmFtIHZhbHVlIC0gVGhlIGF0dHJpYnV0ZSdzIHZhbHVlLlxuICovXG5mdW5jdGlvbiBzZXRBdHRyKGVsOiBFbGVtZW50LCBuYW1lOiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcgfCBudWxsKSB7XG4gIGlmICh2YWx1ZSA9PT0gbnVsbCkge1xuICAgIHJlbW92ZUF0dHJpYnV0ZShlbCwgbmFtZSk7XG4gIH0gZWxzZSB7XG4gICAgZWwuYXR0cmlic1tuYW1lXSA9IGAke3ZhbHVlfWA7XG4gIH1cbn1cblxuLyoqXG4gKiBNZXRob2QgZm9yIGdldHRpbmcgYXR0cmlidXRlcy4gR2V0cyB0aGUgYXR0cmlidXRlIHZhbHVlIGZvciBvbmx5IHRoZSBmaXJzdFxuICogZWxlbWVudCBpbiB0aGUgbWF0Y2hlZCBzZXQuXG4gKlxuICogQGNhdGVnb3J5IEF0dHJpYnV0ZXNcbiAqIEBleGFtcGxlXG4gKlxuICogYGBganNcbiAqICQoJ3VsJykuYXR0cignaWQnKTtcbiAqIC8vPT4gZnJ1aXRzXG4gKiBgYGBcbiAqXG4gKiBAcGFyYW0gbmFtZSAtIE5hbWUgb2YgdGhlIGF0dHJpYnV0ZS5cbiAqIEByZXR1cm5zIFRoZSBhdHRyaWJ1dGUncyB2YWx1ZS5cbiAqIEBzZWUge0BsaW5rIGh0dHBzOi8vYXBpLmpxdWVyeS5jb20vYXR0ci99XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhdHRyPFQgZXh0ZW5kcyBBbnlOb2RlPihcbiAgdGhpczogQ2hlZXJpbzxUPixcbiAgbmFtZTogc3RyaW5nLFxuKTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuLyoqXG4gKiBNZXRob2QgZm9yIGdldHRpbmcgYWxsIGF0dHJpYnV0ZXMgYW5kIHRoZWlyIHZhbHVlcyBvZiB0aGUgZmlyc3QgZWxlbWVudCBpblxuICogdGhlIG1hdGNoZWQgc2V0LlxuICpcbiAqIEBjYXRlZ29yeSBBdHRyaWJ1dGVzXG4gKiBAZXhhbXBsZVxuICpcbiAqIGBgYGpzXG4gKiAkKCd1bCcpLmF0dHIoKTtcbiAqIC8vPT4geyBpZDogJ2ZydWl0cycgfVxuICogYGBgXG4gKlxuICogQHJldHVybnMgVGhlIGF0dHJpYnV0ZSdzIHZhbHVlcy5cbiAqIEBzZWUge0BsaW5rIGh0dHBzOi8vYXBpLmpxdWVyeS5jb20vYXR0ci99XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhdHRyPFQgZXh0ZW5kcyBBbnlOb2RlPihcbiAgdGhpczogQ2hlZXJpbzxUPixcbik6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gfCB1bmRlZmluZWQ7XG4vKipcbiAqIE1ldGhvZCBmb3Igc2V0dGluZyBhdHRyaWJ1dGVzLiBTZXRzIHRoZSBhdHRyaWJ1dGUgdmFsdWUgZm9yIG9ubHkgdGhlIGZpcnN0XG4gKiBlbGVtZW50IGluIHRoZSBtYXRjaGVkIHNldC4gSWYgeW91IHNldCBhbiBhdHRyaWJ1dGUncyB2YWx1ZSB0byBgbnVsbGAsIHlvdVxuICogcmVtb3ZlIHRoYXQgYXR0cmlidXRlLiBZb3UgbWF5IGFsc28gcGFzcyBhIGBtYXBgIGFuZCBgZnVuY3Rpb25gLlxuICpcbiAqIEBjYXRlZ29yeSBBdHRyaWJ1dGVzXG4gKiBAZXhhbXBsZVxuICpcbiAqIGBgYGpzXG4gKiAkKCcuYXBwbGUnKS5hdHRyKCdpZCcsICdmYXZvcml0ZScpLmh0bWwoKTtcbiAqIC8vPT4gPGxpIGNsYXNzPVwiYXBwbGVcIiBpZD1cImZhdm9yaXRlXCI+QXBwbGU8L2xpPlxuICogYGBgXG4gKlxuICogQHBhcmFtIG5hbWUgLSBOYW1lIG9mIHRoZSBhdHRyaWJ1dGUuXG4gKiBAcGFyYW0gdmFsdWUgLSBUaGUgbmV3IHZhbHVlIG9mIHRoZSBhdHRyaWJ1dGUuXG4gKiBAcmV0dXJucyBUaGUgaW5zdGFuY2UgaXRzZWxmLlxuICogQHNlZSB7QGxpbmsgaHR0cHM6Ly9hcGkuanF1ZXJ5LmNvbS9hdHRyL31cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGF0dHI8VCBleHRlbmRzIEFueU5vZGU+KFxuICB0aGlzOiBDaGVlcmlvPFQ+LFxuICBuYW1lOiBzdHJpbmcsXG4gIHZhbHVlPzpcbiAgICB8IHN0cmluZ1xuICAgIHwgbnVsbFxuICAgIHwgKCh0aGlzOiBFbGVtZW50LCBpOiBudW1iZXIsIGF0dHJpYjogc3RyaW5nKSA9PiBzdHJpbmcgfCBudWxsKSxcbik6IENoZWVyaW88VD47XG4vKipcbiAqIE1ldGhvZCBmb3Igc2V0dGluZyBtdWx0aXBsZSBhdHRyaWJ1dGVzIGF0IG9uY2UuIFNldHMgdGhlIGF0dHJpYnV0ZSB2YWx1ZSBmb3JcbiAqIG9ubHkgdGhlIGZpcnN0IGVsZW1lbnQgaW4gdGhlIG1hdGNoZWQgc2V0LiBJZiB5b3Ugc2V0IGFuIGF0dHJpYnV0ZSdzIHZhbHVlIHRvXG4gKiBgbnVsbGAsIHlvdSByZW1vdmUgdGhhdCBhdHRyaWJ1dGUuXG4gKlxuICogQGNhdGVnb3J5IEF0dHJpYnV0ZXNcbiAqIEBleGFtcGxlXG4gKlxuICogYGBganNcbiAqICQoJy5hcHBsZScpLmF0dHIoeyBpZDogJ2Zhdm9yaXRlJyB9KS5odG1sKCk7XG4gKiAvLz0+IDxsaSBjbGFzcz1cImFwcGxlXCIgaWQ9XCJmYXZvcml0ZVwiPkFwcGxlPC9saT5cbiAqIGBgYFxuICpcbiAqIEBwYXJhbSB2YWx1ZXMgLSBNYXAgb2YgYXR0cmlidXRlIG5hbWVzIGFuZCB2YWx1ZXMuXG4gKiBAcmV0dXJucyBUaGUgaW5zdGFuY2UgaXRzZWxmLlxuICogQHNlZSB7QGxpbmsgaHR0cHM6Ly9hcGkuanF1ZXJ5LmNvbS9hdHRyL31cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGF0dHI8VCBleHRlbmRzIEFueU5vZGU+KFxuICB0aGlzOiBDaGVlcmlvPFQ+LFxuICB2YWx1ZXM6IFJlY29yZDxzdHJpbmcsIHN0cmluZyB8IG51bGw+LFxuKTogQ2hlZXJpbzxUPjtcbmV4cG9ydCBmdW5jdGlvbiBhdHRyPFQgZXh0ZW5kcyBBbnlOb2RlPihcbiAgdGhpczogQ2hlZXJpbzxUPixcbiAgbmFtZT86IHN0cmluZyB8IFJlY29yZDxzdHJpbmcsIHN0cmluZyB8IG51bGw+LFxuICB2YWx1ZT86XG4gICAgfCBzdHJpbmdcbiAgICB8IG51bGxcbiAgICB8ICgodGhpczogRWxlbWVudCwgaTogbnVtYmVyLCBhdHRyaWI6IHN0cmluZykgPT4gc3RyaW5nIHwgbnVsbCksXG4pOiBzdHJpbmcgfCBDaGVlcmlvPFQ+IHwgdW5kZWZpbmVkIHwgUmVjb3JkPHN0cmluZywgc3RyaW5nPiB7XG4gIC8vIFNldCB0aGUgdmFsdWUgKHdpdGggYXR0ciBtYXAgc3VwcG9ydClcbiAgaWYgKHR5cGVvZiBuYW1lID09PSAnb2JqZWN0JyB8fCB2YWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgaWYgKHR5cGVvZiBuYW1lICE9PSAnc3RyaW5nJykge1xuICAgICAgICB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdCYWQgY29tYmluYXRpb24gb2YgYXJndW1lbnRzLicpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gZG9tRWFjaCh0aGlzLCAoZWwsIGkpID0+IHtcbiAgICAgICAgaWYgKGlzVGFnKGVsKSkgc2V0QXR0cihlbCwgbmFtZSwgdmFsdWUuY2FsbChlbCwgaSwgZWwuYXR0cmlic1tuYW1lXSkpO1xuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiBkb21FYWNoKHRoaXMsIChlbCkgPT4ge1xuICAgICAgaWYgKCFpc1RhZyhlbCkpIHJldHVybjtcblxuICAgICAgaWYgKHR5cGVvZiBuYW1lID09PSAnb2JqZWN0Jykge1xuICAgICAgICBmb3IgKGNvbnN0IG9iak5hbWUgb2YgT2JqZWN0LmtleXMobmFtZSkpIHtcbiAgICAgICAgICBjb25zdCBvYmpWYWx1ZSA9IG5hbWVbb2JqTmFtZV07XG4gICAgICAgICAgc2V0QXR0cihlbCwgb2JqTmFtZSwgb2JqVmFsdWUpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzZXRBdHRyKGVsLCBuYW1lIGFzIHN0cmluZywgdmFsdWUgYXMgc3RyaW5nKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHJldHVybiBhcmd1bWVudHMubGVuZ3RoID4gMVxuICAgID8gdGhpc1xuICAgIDogZ2V0QXR0cih0aGlzWzBdLCBuYW1lIGFzIHN0cmluZywgdGhpcy5vcHRpb25zLnhtbE1vZGUpO1xufVxuXG4vKipcbiAqIEdldHMgYSBub2RlJ3MgcHJvcC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQGNhdGVnb3J5IEF0dHJpYnV0ZXNcbiAqIEBwYXJhbSBlbCAtIEVsZW1lbnQgdG8gZ2V0IHRoZSBwcm9wIG9mLlxuICogQHBhcmFtIG5hbWUgLSBOYW1lIG9mIHRoZSBwcm9wLlxuICogQHBhcmFtIHhtbE1vZGUgLSBEaXNhYmxlIGhhbmRsaW5nIG9mIHNwZWNpYWwgSFRNTCBhdHRyaWJ1dGVzLlxuICogQHJldHVybnMgVGhlIHByb3AncyB2YWx1ZS5cbiAqL1xuZnVuY3Rpb24gZ2V0UHJvcChcbiAgZWw6IEVsZW1lbnQsXG4gIG5hbWU6IHN0cmluZyxcbiAgeG1sTW9kZT86IGJvb2xlYW4sXG4pOiBzdHJpbmcgfCB1bmRlZmluZWQgfCBFbGVtZW50W2tleW9mIEVsZW1lbnRdIHtcbiAgcmV0dXJuIG5hbWUgaW4gZWxcbiAgICA/IC8vIEB0cy1leHBlY3QtZXJyb3IgVFMgZG9lc24ndCBsaWtlIHVzIGFjY2Vzc2luZyB0aGUgdmFsdWUgZGlyZWN0bHkgaGVyZS5cbiAgICAgIGVsW25hbWVdXG4gICAgOiAheG1sTW9kZSAmJiByYm9vbGVhbi50ZXN0KG5hbWUpXG4gICAgICA/IGdldEF0dHIoZWwsIG5hbWUsIGZhbHNlKSAhPT0gdW5kZWZpbmVkXG4gICAgICA6IGdldEF0dHIoZWwsIG5hbWUsIHhtbE1vZGUpO1xufVxuXG4vKipcbiAqIFNldHMgdGhlIHZhbHVlIG9mIGEgcHJvcC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIGVsIC0gVGhlIGVsZW1lbnQgdG8gc2V0IHRoZSBwcm9wIG9uLlxuICogQHBhcmFtIG5hbWUgLSBUaGUgcHJvcCdzIG5hbWUuXG4gKiBAcGFyYW0gdmFsdWUgLSBUaGUgcHJvcCdzIHZhbHVlLlxuICogQHBhcmFtIHhtbE1vZGUgLSBEaXNhYmxlIGhhbmRsaW5nIG9mIHNwZWNpYWwgSFRNTCBhdHRyaWJ1dGVzLlxuICovXG5mdW5jdGlvbiBzZXRQcm9wKGVsOiBFbGVtZW50LCBuYW1lOiBzdHJpbmcsIHZhbHVlOiB1bmtub3duLCB4bWxNb2RlPzogYm9vbGVhbikge1xuICBpZiAobmFtZSBpbiBlbCkge1xuICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgT3ZlcnJpZGluZyB2YWx1ZVxuICAgIGVsW25hbWVdID0gdmFsdWU7XG4gIH0gZWxzZSB7XG4gICAgc2V0QXR0cihcbiAgICAgIGVsLFxuICAgICAgbmFtZSxcbiAgICAgICF4bWxNb2RlICYmIHJib29sZWFuLnRlc3QobmFtZSkgPyAodmFsdWUgPyAnJyA6IG51bGwpIDogYCR7dmFsdWV9YCxcbiAgICApO1xuICB9XG59XG5cbmludGVyZmFjZSBTdHlsZVByb3Age1xuICBsZW5ndGg6IG51bWJlcjtcbiAgW2tleTogc3RyaW5nXTogc3RyaW5nIHwgbnVtYmVyO1xuICBbaW5kZXg6IG51bWJlcl06IHN0cmluZztcbn1cblxuLyoqXG4gKiBNZXRob2QgZm9yIGdldHRpbmcgYW5kIHNldHRpbmcgcHJvcGVydGllcy4gR2V0cyB0aGUgcHJvcGVydHkgdmFsdWUgZm9yIG9ubHlcbiAqIHRoZSBmaXJzdCBlbGVtZW50IGluIHRoZSBtYXRjaGVkIHNldC5cbiAqXG4gKiBAY2F0ZWdvcnkgQXR0cmlidXRlc1xuICogQGV4YW1wbGVcbiAqXG4gKiBgYGBqc1xuICogJCgnaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdJykucHJvcCgnY2hlY2tlZCcpO1xuICogLy89PiBmYWxzZVxuICpcbiAqICQoJ2lucHV0W3R5cGU9XCJjaGVja2JveFwiXScpLnByb3AoJ2NoZWNrZWQnLCB0cnVlKS52YWwoKTtcbiAqIC8vPT4gb2tcbiAqIGBgYFxuICpcbiAqIEBwYXJhbSBuYW1lIC0gTmFtZSBvZiB0aGUgcHJvcGVydHkuXG4gKiBAcmV0dXJucyBJZiBgdmFsdWVgIGlzIHNwZWNpZmllZCB0aGUgaW5zdGFuY2UgaXRzZWxmLCBvdGhlcndpc2UgdGhlIHByb3Anc1xuICogICB2YWx1ZS5cbiAqIEBzZWUge0BsaW5rIGh0dHBzOi8vYXBpLmpxdWVyeS5jb20vcHJvcC99XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwcm9wPFQgZXh0ZW5kcyBBbnlOb2RlPihcbiAgdGhpczogQ2hlZXJpbzxUPixcbiAgbmFtZTogJ3RhZ05hbWUnIHwgJ25vZGVOYW1lJyxcbik6IHN0cmluZyB8IHVuZGVmaW5lZDtcbmV4cG9ydCBmdW5jdGlvbiBwcm9wPFQgZXh0ZW5kcyBBbnlOb2RlPihcbiAgdGhpczogQ2hlZXJpbzxUPixcbiAgbmFtZTogJ2lubmVySFRNTCcgfCAnb3V0ZXJIVE1MJyB8ICdpbm5lclRleHQnIHwgJ3RleHRDb250ZW50Jyxcbik6IHN0cmluZyB8IG51bGw7XG4vKipcbiAqIEdldCBhIHBhcnNlZCBDU1Mgc3R5bGUgb2JqZWN0LlxuICpcbiAqIEBwYXJhbSBuYW1lIC0gTmFtZSBvZiB0aGUgcHJvcGVydHkuXG4gKiBAcmV0dXJucyBUaGUgc3R5bGUgb2JqZWN0LCBvciBgdW5kZWZpbmVkYCBpZiB0aGUgZWxlbWVudCBoYXMgbm8gYHN0eWxlYFxuICogICBhdHRyaWJ1dGUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwcm9wPFQgZXh0ZW5kcyBBbnlOb2RlPihcbiAgdGhpczogQ2hlZXJpbzxUPixcbiAgbmFtZTogJ3N0eWxlJyxcbik6IFN0eWxlUHJvcCB8IHVuZGVmaW5lZDtcbi8qKlxuICogUmVzb2x2ZSBgaHJlZmAgb3IgYHNyY2Agb2Ygc3VwcG9ydGVkIGVsZW1lbnRzLiBSZXF1aXJlcyB0aGUgYGJhc2VVUklgIG9wdGlvblxuICogdG8gYmUgc2V0LCBhbmQgYSBnbG9iYWwgYFVSTGAgb2JqZWN0IHRvIGJlIHBhcnQgb2YgdGhlIGVudmlyb25tZW50LlxuICpcbiAqIEBleGFtcGxlIFdpdGggYGJhc2VVUklgIHNldCB0byBgJ2h0dHBzOi8vZXhhbXBsZS5jb20nYDpcbiAqXG4gKiBgYGBqc1xuICogJCgnPGltZyBzcmM9XCJpbWFnZS5wbmdcIj4nKS5wcm9wKCdzcmMnKTtcbiAqIC8vPT4gJ2h0dHBzOi8vZXhhbXBsZS5jb20vaW1hZ2UucG5nJ1xuICogYGBgXG4gKlxuICogQHBhcmFtIG5hbWUgLSBOYW1lIG9mIHRoZSBwcm9wZXJ0eS5cbiAqIEByZXR1cm5zIFRoZSByZXNvbHZlZCBVUkwsIG9yIGB1bmRlZmluZWRgIGlmIHRoZSBlbGVtZW50IGlzIG5vdCBzdXBwb3J0ZWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwcm9wPFQgZXh0ZW5kcyBBbnlOb2RlPihcbiAgdGhpczogQ2hlZXJpbzxUPixcbiAgbmFtZTogJ2hyZWYnIHwgJ3NyYycsXG4pOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4vKipcbiAqIEdldCBhIHByb3BlcnR5IG9mIGFuIGVsZW1lbnQuXG4gKlxuICogQHBhcmFtIG5hbWUgLSBOYW1lIG9mIHRoZSBwcm9wZXJ0eS5cbiAqIEByZXR1cm5zIFRoZSBwcm9wZXJ0eSdzIHZhbHVlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcHJvcDxUIGV4dGVuZHMgQW55Tm9kZSwgSyBleHRlbmRzIGtleW9mIEVsZW1lbnQ+KFxuICB0aGlzOiBDaGVlcmlvPFQ+LFxuICBuYW1lOiBLLFxuKTogRWxlbWVudFtLXTtcbi8qKlxuICogU2V0IGEgcHJvcGVydHkgb2YgYW4gZWxlbWVudC5cbiAqXG4gKiBAcGFyYW0gbmFtZSAtIE5hbWUgb2YgdGhlIHByb3BlcnR5LlxuICogQHBhcmFtIHZhbHVlIC0gVmFsdWUgdG8gc2V0IHRoZSBwcm9wZXJ0eSB0by5cbiAqIEByZXR1cm5zIFRoZSBpbnN0YW5jZSBpdHNlbGYuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwcm9wPFQgZXh0ZW5kcyBBbnlOb2RlLCBLIGV4dGVuZHMga2V5b2YgRWxlbWVudD4oXG4gIHRoaXM6IENoZWVyaW88VD4sXG4gIG5hbWU6IEssXG4gIHZhbHVlOlxuICAgIHwgRWxlbWVudFtLXVxuICAgIHwgKCh0aGlzOiBFbGVtZW50LCBpOiBudW1iZXIsIHByb3A6IEspID0+IEVsZW1lbnRba2V5b2YgRWxlbWVudF0pLFxuKTogQ2hlZXJpbzxUPjtcbi8qKlxuICogU2V0IG11bHRpcGxlIHByb3BlcnRpZXMgb2YgYW4gZWxlbWVudC5cbiAqXG4gKiBAZXhhbXBsZVxuICpcbiAqIGBgYGpzXG4gKiAkKCdpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0nKS5wcm9wKHtcbiAqICAgY2hlY2tlZDogdHJ1ZSxcbiAqICAgZGlzYWJsZWQ6IGZhbHNlLFxuICogfSk7XG4gKiBgYGBcbiAqXG4gKiBAcGFyYW0gbWFwIC0gT2JqZWN0IG9mIHByb3BlcnRpZXMgdG8gc2V0LlxuICogQHJldHVybnMgVGhlIGluc3RhbmNlIGl0c2VsZi5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHByb3A8VCBleHRlbmRzIEFueU5vZGU+KFxuICB0aGlzOiBDaGVlcmlvPFQ+LFxuICBtYXA6IFJlY29yZDxzdHJpbmcsIHN0cmluZyB8IEVsZW1lbnRba2V5b2YgRWxlbWVudF0gfCBib29sZWFuPixcbik6IENoZWVyaW88VD47XG4vKipcbiAqIFNldCBhIHByb3BlcnR5IG9mIGFuIGVsZW1lbnQuXG4gKlxuICogQHBhcmFtIG5hbWUgLSBOYW1lIG9mIHRoZSBwcm9wZXJ0eS5cbiAqIEBwYXJhbSB2YWx1ZSAtIFZhbHVlIHRvIHNldCB0aGUgcHJvcGVydHkgdG8uXG4gKiBAcmV0dXJucyBUaGUgaW5zdGFuY2UgaXRzZWxmLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcHJvcDxUIGV4dGVuZHMgQW55Tm9kZT4oXG4gIHRoaXM6IENoZWVyaW88VD4sXG4gIG5hbWU6IHN0cmluZyxcbiAgdmFsdWU6XG4gICAgfCBzdHJpbmdcbiAgICB8IGJvb2xlYW5cbiAgICB8IG51bGxcbiAgICB8ICgodGhpczogRWxlbWVudCwgaTogbnVtYmVyLCBwcm9wOiBzdHJpbmcpID0+IHN0cmluZyB8IGJvb2xlYW4pLFxuKTogQ2hlZXJpbzxUPjtcbi8qKlxuICogR2V0IGEgcHJvcGVydHkgb2YgYW4gZWxlbWVudC5cbiAqXG4gKiBAcGFyYW0gbmFtZSAtIFRoZSBwcm9wZXJ0eSdzIG5hbWUuXG4gKiBAcmV0dXJucyBUaGUgcHJvcGVydHkncyB2YWx1ZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHByb3A8VCBleHRlbmRzIEFueU5vZGU+KHRoaXM6IENoZWVyaW88VD4sIG5hbWU6IHN0cmluZyk6IHN0cmluZztcbmV4cG9ydCBmdW5jdGlvbiBwcm9wPFQgZXh0ZW5kcyBBbnlOb2RlPihcbiAgdGhpczogQ2hlZXJpbzxUPixcbiAgbmFtZTogc3RyaW5nIHwgUmVjb3JkPHN0cmluZywgc3RyaW5nIHwgRWxlbWVudFtrZXlvZiBFbGVtZW50XSB8IGJvb2xlYW4+LFxuICB2YWx1ZT86XG4gICAgfCAoKFxuICAgICAgICB0aGlzOiBFbGVtZW50LFxuICAgICAgICBpOiBudW1iZXIsXG4gICAgICAgIHByb3A6IHN0cmluZyB8IHVuZGVmaW5lZCxcbiAgICAgICkgPT4gc3RyaW5nIHwgRWxlbWVudFtrZXlvZiBFbGVtZW50XSB8IGJvb2xlYW4pXG4gICAgfCB1bmtub3duLFxuKTogQ2hlZXJpbzxUPiB8IHN0cmluZyB8IHVuZGVmaW5lZCB8IG51bGwgfCBFbGVtZW50W2tleW9mIEVsZW1lbnRdIHwgU3R5bGVQcm9wIHtcbiAgaWYgKHR5cGVvZiBuYW1lID09PSAnc3RyaW5nJyAmJiB2YWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgY29uc3QgZWwgPSB0aGlzWzBdO1xuXG4gICAgaWYgKCFlbCB8fCAhaXNUYWcoZWwpKSByZXR1cm4gdW5kZWZpbmVkO1xuXG4gICAgc3dpdGNoIChuYW1lKSB7XG4gICAgICBjYXNlICdzdHlsZSc6IHtcbiAgICAgICAgY29uc3QgcHJvcGVydHkgPSB0aGlzLmNzcygpIGFzIFN0eWxlUHJvcDtcbiAgICAgICAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKHByb3BlcnR5KTtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBrZXlzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgcHJvcGVydHlbaV0gPSBrZXlzW2ldO1xuICAgICAgICB9XG5cbiAgICAgICAgcHJvcGVydHkubGVuZ3RoID0ga2V5cy5sZW5ndGg7XG5cbiAgICAgICAgcmV0dXJuIHByb3BlcnR5O1xuICAgICAgfVxuICAgICAgY2FzZSAndGFnTmFtZSc6XG4gICAgICBjYXNlICdub2RlTmFtZSc6IHtcbiAgICAgICAgcmV0dXJuIGVsLm5hbWUudG9VcHBlckNhc2UoKTtcbiAgICAgIH1cblxuICAgICAgY2FzZSAnaHJlZic6XG4gICAgICBjYXNlICdzcmMnOiB7XG4gICAgICAgIGNvbnN0IHByb3AgPSBlbC5hdHRyaWJzPy5bbmFtZV07XG5cbiAgICAgICAgaWYgKFxuICAgICAgICAgIHR5cGVvZiBVUkwgIT09ICd1bmRlZmluZWQnICYmXG4gICAgICAgICAgKChuYW1lID09PSAnaHJlZicgJiYgKGVsLnRhZ05hbWUgPT09ICdhJyB8fCBlbC50YWdOYW1lID09PSAnbGluaycpKSB8fFxuICAgICAgICAgICAgKG5hbWUgPT09ICdzcmMnICYmXG4gICAgICAgICAgICAgIChlbC50YWdOYW1lID09PSAnaW1nJyB8fFxuICAgICAgICAgICAgICAgIGVsLnRhZ05hbWUgPT09ICdpZnJhbWUnIHx8XG4gICAgICAgICAgICAgICAgZWwudGFnTmFtZSA9PT0gJ2F1ZGlvJyB8fFxuICAgICAgICAgICAgICAgIGVsLnRhZ05hbWUgPT09ICd2aWRlbycgfHxcbiAgICAgICAgICAgICAgICBlbC50YWdOYW1lID09PSAnc291cmNlJykpKSAmJlxuICAgICAgICAgIHByb3AgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgICAgIHRoaXMub3B0aW9ucy5iYXNlVVJJXG4gICAgICAgICkge1xuICAgICAgICAgIHJldHVybiBuZXcgVVJMKHByb3AsIHRoaXMub3B0aW9ucy5iYXNlVVJJKS5ocmVmO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHByb3A7XG4gICAgICB9XG5cbiAgICAgIGNhc2UgJ2lubmVyVGV4dCc6IHtcbiAgICAgICAgcmV0dXJuIGlubmVyVGV4dChlbCk7XG4gICAgICB9XG5cbiAgICAgIGNhc2UgJ3RleHRDb250ZW50Jzoge1xuICAgICAgICByZXR1cm4gdGV4dENvbnRlbnQoZWwpO1xuICAgICAgfVxuXG4gICAgICBjYXNlICdvdXRlckhUTUwnOiB7XG4gICAgICAgIHJldHVybiB0aGlzLmNsb25lKCkud3JhcCgnPGNvbnRhaW5lciAvPicpLnBhcmVudCgpLmh0bWwoKTtcbiAgICAgIH1cblxuICAgICAgY2FzZSAnaW5uZXJIVE1MJzoge1xuICAgICAgICByZXR1cm4gdGhpcy5odG1sKCk7XG4gICAgICB9XG5cbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgcmV0dXJuIGdldFByb3AoZWwsIG5hbWUsIHRoaXMub3B0aW9ucy54bWxNb2RlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBpZiAodHlwZW9mIG5hbWUgPT09ICdvYmplY3QnIHx8IHZhbHVlICE9PSB1bmRlZmluZWQpIHtcbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBpZiAodHlwZW9mIG5hbWUgPT09ICdvYmplY3QnKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ0JhZCBjb21iaW5hdGlvbiBvZiBhcmd1bWVudHMuJyk7XG4gICAgICB9XG4gICAgICByZXR1cm4gZG9tRWFjaCh0aGlzLCAoZWwsIGkpID0+IHtcbiAgICAgICAgaWYgKGlzVGFnKGVsKSkge1xuICAgICAgICAgIHNldFByb3AoXG4gICAgICAgICAgICBlbCxcbiAgICAgICAgICAgIG5hbWUsXG4gICAgICAgICAgICB2YWx1ZS5jYWxsKGVsLCBpLCBnZXRQcm9wKGVsLCBuYW1lLCB0aGlzLm9wdGlvbnMueG1sTW9kZSkpLFxuICAgICAgICAgICAgdGhpcy5vcHRpb25zLnhtbE1vZGUsXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGRvbUVhY2godGhpcywgKGVsKSA9PiB7XG4gICAgICBpZiAoIWlzVGFnKGVsKSkgcmV0dXJuO1xuXG4gICAgICBpZiAodHlwZW9mIG5hbWUgPT09ICdvYmplY3QnKSB7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKG5hbWUpKSB7XG4gICAgICAgICAgY29uc3QgdmFsID0gbmFtZVtrZXldO1xuICAgICAgICAgIHNldFByb3AoZWwsIGtleSwgdmFsLCB0aGlzLm9wdGlvbnMueG1sTW9kZSk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHNldFByb3AoZWwsIG5hbWUsIHZhbHVlLCB0aGlzLm9wdGlvbnMueG1sTW9kZSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICByZXR1cm4gdW5kZWZpbmVkO1xufVxuXG4vKipcbiAqIEFuIGVsZW1lbnQgd2l0aCBhIGRhdGEgYXR0cmlidXRlLlxuICpcbiAqIEBwcml2YXRlXG4gKi9cbmludGVyZmFjZSBEYXRhRWxlbWVudCBleHRlbmRzIEVsZW1lbnQge1xuICAvKiogVGhlIGRhdGEgYXR0cmlidXRlLiAqL1xuICBkYXRhPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG59XG5cbi8qKlxuICogU2V0cyB0aGUgdmFsdWUgb2YgYSBkYXRhIGF0dHJpYnV0ZS5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIGVsZW0gLSBUaGUgZWxlbWVudCB0byBzZXQgdGhlIGRhdGEgYXR0cmlidXRlIG9uLlxuICogQHBhcmFtIG5hbWUgLSBUaGUgZGF0YSBhdHRyaWJ1dGUncyBuYW1lLlxuICogQHBhcmFtIHZhbHVlIC0gVGhlIGRhdGEgYXR0cmlidXRlJ3MgdmFsdWUuXG4gKi9cbmZ1bmN0aW9uIHNldERhdGEoXG4gIGVsZW06IERhdGFFbGVtZW50LFxuICBuYW1lOiBzdHJpbmcgfCBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcbiAgdmFsdWU/OiB1bmtub3duLFxuKSB7XG4gIGVsZW0uZGF0YSA/Pz0ge307XG5cbiAgaWYgKHR5cGVvZiBuYW1lID09PSAnb2JqZWN0JykgT2JqZWN0LmFzc2lnbihlbGVtLmRhdGEsIG5hbWUpO1xuICBlbHNlIGlmICh0eXBlb2YgbmFtZSA9PT0gJ3N0cmluZycgJiYgdmFsdWUgIT09IHVuZGVmaW5lZCkge1xuICAgIGVsZW0uZGF0YVtuYW1lXSA9IHZhbHVlO1xuICB9XG59XG5cbi8qKlxuICogUmVhZCBfYWxsXyBIVE1MNSBgZGF0YS0qYCBhdHRyaWJ1dGVzIGZyb20gdGhlIGVxdWl2YWxlbnQgSFRNTDUgYGRhdGEtKmBcbiAqIGF0dHJpYnV0ZSwgYW5kIGNhY2hlIHRoZSB2YWx1ZSBpbiB0aGUgbm9kZSdzIGludGVybmFsIGRhdGEgc3RvcmUuXG4gKlxuICogQHByaXZhdGVcbiAqIEBjYXRlZ29yeSBBdHRyaWJ1dGVzXG4gKiBAcGFyYW0gZWwgLSBFbGVtZW50IHRvIGdldCB0aGUgZGF0YSBhdHRyaWJ1dGUgb2YuXG4gKiBAcmV0dXJucyBBIG1hcCB3aXRoIGFsbCBvZiB0aGUgZGF0YSBhdHRyaWJ1dGVzLlxuICovXG5mdW5jdGlvbiByZWFkQWxsRGF0YShlbDogRGF0YUVsZW1lbnQpOiB1bmtub3duIHtcbiAgZm9yIChjb25zdCBkb21OYW1lIG9mIE9iamVjdC5rZXlzKGVsLmF0dHJpYnMpKSB7XG4gICAgaWYgKCFkb21OYW1lLnN0YXJ0c1dpdGgoZGF0YUF0dHJQcmVmaXgpKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBjb25zdCBqc05hbWUgPSBjYW1lbENhc2UoZG9tTmFtZS5zbGljZShkYXRhQXR0clByZWZpeC5sZW5ndGgpKTtcblxuICAgIGlmICghaGFzT3duLmNhbGwoZWwuZGF0YSwganNOYW1lKSkge1xuICAgICAgZWwuZGF0YSFbanNOYW1lXSA9IHBhcnNlRGF0YVZhbHVlKGVsLmF0dHJpYnNbZG9tTmFtZV0pO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBlbC5kYXRhO1xufVxuXG4vKipcbiAqIFJlYWQgdGhlIHNwZWNpZmllZCBhdHRyaWJ1dGUgZnJvbSB0aGUgZXF1aXZhbGVudCBIVE1MNSBgZGF0YS0qYCBhdHRyaWJ1dGUsXG4gKiBhbmQgKGlmIHByZXNlbnQpIGNhY2hlIHRoZSB2YWx1ZSBpbiB0aGUgbm9kZSdzIGludGVybmFsIGRhdGEgc3RvcmUuXG4gKlxuICogQHByaXZhdGVcbiAqIEBjYXRlZ29yeSBBdHRyaWJ1dGVzXG4gKiBAcGFyYW0gZWwgLSBFbGVtZW50IHRvIGdldCB0aGUgZGF0YSBhdHRyaWJ1dGUgb2YuXG4gKiBAcGFyYW0gbmFtZSAtIE5hbWUgb2YgdGhlIGRhdGEgYXR0cmlidXRlLlxuICogQHJldHVybnMgVGhlIGRhdGEgYXR0cmlidXRlJ3MgdmFsdWUuXG4gKi9cbmZ1bmN0aW9uIHJlYWREYXRhKGVsOiBEYXRhRWxlbWVudCwgbmFtZTogc3RyaW5nKTogdW5rbm93biB7XG4gIGNvbnN0IGRvbU5hbWUgPSBkYXRhQXR0clByZWZpeCArIGNzc0Nhc2UobmFtZSk7XG4gIGNvbnN0IGRhdGEgPSBlbC5kYXRhITtcblxuICBpZiAoaGFzT3duLmNhbGwoZGF0YSwgbmFtZSkpIHtcbiAgICByZXR1cm4gZGF0YVtuYW1lXTtcbiAgfVxuXG4gIGlmIChoYXNPd24uY2FsbChlbC5hdHRyaWJzLCBkb21OYW1lKSkge1xuICAgIHJldHVybiAoZGF0YVtuYW1lXSA9IHBhcnNlRGF0YVZhbHVlKGVsLmF0dHJpYnNbZG9tTmFtZV0pKTtcbiAgfVxuXG4gIHJldHVybiB1bmRlZmluZWQ7XG59XG5cbi8qKlxuICogQ29lcmNlIHN0cmluZyBkYXRhLSogYXR0cmlidXRlcyB0byB0aGVpciBjb3JyZXNwb25kaW5nIEphdmFTY3JpcHQgcHJpbWl0aXZlcy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQGNhdGVnb3J5IEF0dHJpYnV0ZXNcbiAqIEBwYXJhbSB2YWx1ZSAtIFRoZSB2YWx1ZSB0byBwYXJzZS5cbiAqIEByZXR1cm5zIFRoZSBwYXJzZWQgdmFsdWUuXG4gKi9cbmZ1bmN0aW9uIHBhcnNlRGF0YVZhbHVlKHZhbHVlOiBzdHJpbmcpOiB1bmtub3duIHtcbiAgaWYgKHZhbHVlID09PSAnbnVsbCcpIHJldHVybiBudWxsO1xuICBpZiAodmFsdWUgPT09ICd0cnVlJykgcmV0dXJuIHRydWU7XG4gIGlmICh2YWx1ZSA9PT0gJ2ZhbHNlJykgcmV0dXJuIGZhbHNlO1xuICBjb25zdCBudW0gPSBOdW1iZXIodmFsdWUpO1xuICBpZiAodmFsdWUgPT09IFN0cmluZyhudW0pKSByZXR1cm4gbnVtO1xuICBpZiAocmJyYWNlLnRlc3QodmFsdWUpKSB7XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiBKU09OLnBhcnNlKHZhbHVlKTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIC8qIElnbm9yZSAqL1xuICAgIH1cbiAgfVxuICByZXR1cm4gdmFsdWU7XG59XG5cbi8qKlxuICogTWV0aG9kIGZvciBnZXR0aW5nIGRhdGEgYXR0cmlidXRlcywgZm9yIG9ubHkgdGhlIGZpcnN0IGVsZW1lbnQgaW4gdGhlIG1hdGNoZWRcbiAqIHNldC5cbiAqXG4gKiBAY2F0ZWdvcnkgQXR0cmlidXRlc1xuICogQGV4YW1wbGVcbiAqXG4gKiBgYGBqc1xuICogJCgnPGRpdiBkYXRhLWFwcGxlLWNvbG9yPVwicmVkXCI+PC9kaXY+JykuZGF0YSgnYXBwbGUtY29sb3InKTtcbiAqIC8vPT4gJ3JlZCdcbiAqIGBgYFxuICpcbiAqIEBwYXJhbSBuYW1lIC0gTmFtZSBvZiB0aGUgZGF0YSBhdHRyaWJ1dGUuXG4gKiBAcmV0dXJucyBUaGUgZGF0YSBhdHRyaWJ1dGUncyB2YWx1ZSwgb3IgYHVuZGVmaW5lZGAgaWYgdGhlIGF0dHJpYnV0ZSBkb2VzIG5vdFxuICogICBleGlzdC5cbiAqIEBzZWUge0BsaW5rIGh0dHBzOi8vYXBpLmpxdWVyeS5jb20vZGF0YS99XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkYXRhPFQgZXh0ZW5kcyBBbnlOb2RlPihcbiAgdGhpczogQ2hlZXJpbzxUPixcbiAgbmFtZTogc3RyaW5nLFxuKTogdW5rbm93biB8IHVuZGVmaW5lZDtcbi8qKlxuICogTWV0aG9kIGZvciBnZXR0aW5nIGFsbCBvZiBhbiBlbGVtZW50J3MgZGF0YSBhdHRyaWJ1dGVzLCBmb3Igb25seSB0aGUgZmlyc3RcbiAqIGVsZW1lbnQgaW4gdGhlIG1hdGNoZWQgc2V0LlxuICpcbiAqIEBjYXRlZ29yeSBBdHRyaWJ1dGVzXG4gKiBAZXhhbXBsZVxuICpcbiAqIGBgYGpzXG4gKiAkKCc8ZGl2IGRhdGEtYXBwbGUtY29sb3I9XCJyZWRcIj48L2Rpdj4nKS5kYXRhKCk7XG4gKiAvLz0+IHsgYXBwbGVDb2xvcjogJ3JlZCcgfVxuICogYGBgXG4gKlxuICogQHJldHVybnMgQSBtYXAgd2l0aCBhbGwgb2YgdGhlIGRhdGEgYXR0cmlidXRlcy5cbiAqIEBzZWUge0BsaW5rIGh0dHBzOi8vYXBpLmpxdWVyeS5jb20vZGF0YS99XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkYXRhPFQgZXh0ZW5kcyBBbnlOb2RlPihcbiAgdGhpczogQ2hlZXJpbzxUPixcbik6IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuLyoqXG4gKiBNZXRob2QgZm9yIHNldHRpbmcgZGF0YSBhdHRyaWJ1dGVzLCBmb3Igb25seSB0aGUgZmlyc3QgZWxlbWVudCBpbiB0aGUgbWF0Y2hlZFxuICogc2V0LlxuICpcbiAqIEBjYXRlZ29yeSBBdHRyaWJ1dGVzXG4gKiBAZXhhbXBsZVxuICpcbiAqIGBgYGpzXG4gKiBjb25zdCBhcHBsZSA9ICQoJy5hcHBsZScpLmRhdGEoJ2tpbmQnLCAnbWFjJyk7XG4gKlxuICogYXBwbGUuZGF0YSgna2luZCcpO1xuICogLy89PiAnbWFjJ1xuICogYGBgXG4gKlxuICogQHBhcmFtIG5hbWUgLSBOYW1lIG9mIHRoZSBkYXRhIGF0dHJpYnV0ZS5cbiAqIEBwYXJhbSB2YWx1ZSAtIFRoZSBuZXcgdmFsdWUuXG4gKiBAcmV0dXJucyBUaGUgaW5zdGFuY2UgaXRzZWxmLlxuICogQHNlZSB7QGxpbmsgaHR0cHM6Ly9hcGkuanF1ZXJ5LmNvbS9kYXRhL31cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRhdGE8VCBleHRlbmRzIEFueU5vZGU+KFxuICB0aGlzOiBDaGVlcmlvPFQ+LFxuICBuYW1lOiBzdHJpbmcsXG4gIHZhbHVlOiB1bmtub3duLFxuKTogQ2hlZXJpbzxUPjtcbi8qKlxuICogTWV0aG9kIGZvciBzZXR0aW5nIG11bHRpcGxlIGRhdGEgYXR0cmlidXRlcyBhdCBvbmNlLCBmb3Igb25seSB0aGUgZmlyc3RcbiAqIGVsZW1lbnQgaW4gdGhlIG1hdGNoZWQgc2V0LlxuICpcbiAqIEBjYXRlZ29yeSBBdHRyaWJ1dGVzXG4gKiBAZXhhbXBsZVxuICpcbiAqIGBgYGpzXG4gKiBjb25zdCBhcHBsZSA9ICQoJy5hcHBsZScpLmRhdGEoeyBraW5kOiAnbWFjJyB9KTtcbiAqXG4gKiBhcHBsZS5kYXRhKCdraW5kJyk7XG4gKiAvLz0+ICdtYWMnXG4gKiBgYGBcbiAqXG4gKiBAcGFyYW0gdmFsdWVzIC0gTWFwIG9mIG5hbWVzIHRvIHZhbHVlcy5cbiAqIEByZXR1cm5zIFRoZSBpbnN0YW5jZSBpdHNlbGYuXG4gKiBAc2VlIHtAbGluayBodHRwczovL2FwaS5qcXVlcnkuY29tL2RhdGEvfVxuICovXG5leHBvcnQgZnVuY3Rpb24gZGF0YTxUIGV4dGVuZHMgQW55Tm9kZT4oXG4gIHRoaXM6IENoZWVyaW88VD4sXG4gIHZhbHVlczogUmVjb3JkPHN0cmluZywgdW5rbm93bj4sXG4pOiBDaGVlcmlvPFQ+O1xuZXhwb3J0IGZ1bmN0aW9uIGRhdGE8VCBleHRlbmRzIEFueU5vZGU+KFxuICB0aGlzOiBDaGVlcmlvPFQ+LFxuICBuYW1lPzogc3RyaW5nIHwgUmVjb3JkPHN0cmluZywgdW5rbm93bj4sXG4gIHZhbHVlPzogdW5rbm93bixcbik6IHVua25vd24gfCBDaGVlcmlvPFQ+IHwgdW5kZWZpbmVkIHwgUmVjb3JkPHN0cmluZywgdW5rbm93bj4ge1xuICBjb25zdCBlbGVtID0gdGhpc1swXTtcblxuICBpZiAoIWVsZW0gfHwgIWlzVGFnKGVsZW0pKSByZXR1cm47XG5cbiAgY29uc3QgZGF0YUVsOiBEYXRhRWxlbWVudCA9IGVsZW07XG4gIGRhdGFFbC5kYXRhID8/PSB7fTtcblxuICAvLyBSZXR1cm4gdGhlIGVudGlyZSBkYXRhIG9iamVjdCBpZiBubyBkYXRhIHNwZWNpZmllZFxuICBpZiAobmFtZSA9PSBudWxsKSB7XG4gICAgcmV0dXJuIHJlYWRBbGxEYXRhKGRhdGFFbCk7XG4gIH1cblxuICAvLyBTZXQgdGhlIHZhbHVlICh3aXRoIGF0dHIgbWFwIHN1cHBvcnQpXG4gIGlmICh0eXBlb2YgbmFtZSA9PT0gJ29iamVjdCcgfHwgdmFsdWUgIT09IHVuZGVmaW5lZCkge1xuICAgIGRvbUVhY2godGhpcywgKGVsKSA9PiB7XG4gICAgICBpZiAoaXNUYWcoZWwpKSB7XG4gICAgICAgIGlmICh0eXBlb2YgbmFtZSA9PT0gJ29iamVjdCcpIHNldERhdGEoZWwsIG5hbWUpO1xuICAgICAgICBlbHNlIHNldERhdGEoZWwsIG5hbWUsIHZhbHVlIGFzIHVua25vd24pO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgcmV0dXJuIHJlYWREYXRhKGRhdGFFbCwgbmFtZSk7XG59XG5cbi8qKlxuICogTWV0aG9kIGZvciBnZXR0aW5nIHRoZSB2YWx1ZSBvZiBpbnB1dCwgc2VsZWN0LCBhbmQgdGV4dGFyZWEuIE5vdGU6IFN1cHBvcnRcbiAqIGZvciBgbWFwYCwgYW5kIGBmdW5jdGlvbmAgaGFzIG5vdCBiZWVuIGFkZGVkIHlldC5cbiAqXG4gKiBAY2F0ZWdvcnkgQXR0cmlidXRlc1xuICogQGV4YW1wbGVcbiAqXG4gKiBgYGBqc1xuICogJCgnaW5wdXRbdHlwZT1cInRleHRcIl0nKS52YWwoKTtcbiAqIC8vPT4gaW5wdXRfdGV4dFxuICogYGBgXG4gKlxuICogQHJldHVybnMgVGhlIHZhbHVlLlxuICogQHNlZSB7QGxpbmsgaHR0cHM6Ly9hcGkuanF1ZXJ5LmNvbS92YWwvfVxuICovXG5leHBvcnQgZnVuY3Rpb24gdmFsPFQgZXh0ZW5kcyBBbnlOb2RlPihcbiAgdGhpczogQ2hlZXJpbzxUPixcbik6IHN0cmluZyB8IHVuZGVmaW5lZCB8IHN0cmluZ1tdO1xuLyoqXG4gKiBNZXRob2QgZm9yIHNldHRpbmcgdGhlIHZhbHVlIG9mIGlucHV0LCBzZWxlY3QsIGFuZCB0ZXh0YXJlYS4gTm90ZTogU3VwcG9ydFxuICogZm9yIGBtYXBgLCBhbmQgYGZ1bmN0aW9uYCBoYXMgbm90IGJlZW4gYWRkZWQgeWV0LlxuICpcbiAqIEBjYXRlZ29yeSBBdHRyaWJ1dGVzXG4gKiBAZXhhbXBsZVxuICpcbiAqIGBgYGpzXG4gKiAkKCdpbnB1dFt0eXBlPVwidGV4dFwiXScpLnZhbCgndGVzdCcpLmh0bWwoKTtcbiAqIC8vPT4gPGlucHV0IHR5cGU9XCJ0ZXh0XCIgdmFsdWU9XCJ0ZXN0XCIvPlxuICogYGBgXG4gKlxuICogQHBhcmFtIHZhbHVlIC0gVGhlIG5ldyB2YWx1ZS5cbiAqIEByZXR1cm5zIFRoZSBpbnN0YW5jZSBpdHNlbGYuXG4gKiBAc2VlIHtAbGluayBodHRwczovL2FwaS5qcXVlcnkuY29tL3ZhbC99XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB2YWw8VCBleHRlbmRzIEFueU5vZGU+KFxuICB0aGlzOiBDaGVlcmlvPFQ+LFxuICB2YWx1ZTogc3RyaW5nIHwgc3RyaW5nW10sXG4pOiBDaGVlcmlvPFQ+O1xuZXhwb3J0IGZ1bmN0aW9uIHZhbDxUIGV4dGVuZHMgQW55Tm9kZT4oXG4gIHRoaXM6IENoZWVyaW88VD4sXG4gIHZhbHVlPzogc3RyaW5nIHwgc3RyaW5nW10sXG4pOiBzdHJpbmcgfCBzdHJpbmdbXSB8IENoZWVyaW88VD4gfCB1bmRlZmluZWQge1xuICBjb25zdCBxdWVyeWluZyA9IGFyZ3VtZW50cy5sZW5ndGggPT09IDA7XG4gIGNvbnN0IGVsZW1lbnQgPSB0aGlzWzBdO1xuXG4gIGlmICghZWxlbWVudCB8fCAhaXNUYWcoZWxlbWVudCkpIHJldHVybiBxdWVyeWluZyA/IHVuZGVmaW5lZCA6IHRoaXM7XG5cbiAgc3dpdGNoIChlbGVtZW50Lm5hbWUpIHtcbiAgICBjYXNlICd0ZXh0YXJlYSc6IHtcbiAgICAgIHJldHVybiB0aGlzLnRleHQodmFsdWUgYXMgc3RyaW5nKTtcbiAgICB9XG4gICAgY2FzZSAnc2VsZWN0Jzoge1xuICAgICAgY29uc3Qgb3B0aW9uID0gdGhpcy5maW5kKCdvcHRpb246c2VsZWN0ZWQnKTtcbiAgICAgIGlmICghcXVlcnlpbmcpIHtcbiAgICAgICAgaWYgKHRoaXMuYXR0cignbXVsdGlwbGUnKSA9PSBudWxsICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuZmluZCgnb3B0aW9uJykucmVtb3ZlQXR0cignc2VsZWN0ZWQnKTtcblxuICAgICAgICBjb25zdCB2YWx1ZXMgPSB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnID8gdmFsdWUgOiBbdmFsdWVdO1xuICAgICAgICBmb3IgKGNvbnN0IHZhbCBvZiB2YWx1ZXMpIHtcbiAgICAgICAgICB0aGlzLmZpbmQoYG9wdGlvblt2YWx1ZT1cIiR7dmFsfVwiXWApLmF0dHIoJ3NlbGVjdGVkJywgJycpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB0aGlzLmF0dHIoJ211bHRpcGxlJylcbiAgICAgICAgPyBvcHRpb24udG9BcnJheSgpLm1hcCgoZWwpID0+IHRleHQoZWwuY2hpbGRyZW4pKVxuICAgICAgICA6IG9wdGlvbi5hdHRyKCd2YWx1ZScpO1xuICAgIH1cbiAgICBjYXNlICdpbnB1dCc6XG4gICAgY2FzZSAnb3B0aW9uJzoge1xuICAgICAgcmV0dXJuIHF1ZXJ5aW5nXG4gICAgICAgID8gdGhpcy5hdHRyKCd2YWx1ZScpXG4gICAgICAgIDogdGhpcy5hdHRyKCd2YWx1ZScsIHZhbHVlIGFzIHN0cmluZyk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHVuZGVmaW5lZDtcbn1cblxuLyoqXG4gKiBSZW1vdmUgYW4gYXR0cmlidXRlLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0gZWxlbSAtIE5vZGUgdG8gcmVtb3ZlIGF0dHJpYnV0ZSBmcm9tLlxuICogQHBhcmFtIG5hbWUgLSBOYW1lIG9mIHRoZSBhdHRyaWJ1dGUgdG8gcmVtb3ZlLlxuICovXG5mdW5jdGlvbiByZW1vdmVBdHRyaWJ1dGUoZWxlbTogRWxlbWVudCwgbmFtZTogc3RyaW5nKSB7XG4gIGlmICghZWxlbS5hdHRyaWJzIHx8ICFoYXNPd24uY2FsbChlbGVtLmF0dHJpYnMsIG5hbWUpKSByZXR1cm47XG5cbiAgZGVsZXRlIGVsZW0uYXR0cmlic1tuYW1lXTtcbn1cblxuLyoqXG4gKiBTcGxpdHMgYSBzcGFjZS1zZXBhcmF0ZWQgbGlzdCBvZiBuYW1lcyB0byBpbmRpdmlkdWFsIG5hbWVzLlxuICpcbiAqIEBjYXRlZ29yeSBBdHRyaWJ1dGVzXG4gKiBAcGFyYW0gbmFtZXMgLSBOYW1lcyB0byBzcGxpdC5cbiAqIEByZXR1cm5zIC0gU3BsaXQgbmFtZXMuXG4gKi9cbmZ1bmN0aW9uIHNwbGl0TmFtZXMobmFtZXM/OiBzdHJpbmcpOiBzdHJpbmdbXSB7XG4gIHJldHVybiBuYW1lcyA/IG5hbWVzLnRyaW0oKS5zcGxpdChyc3BhY2UpIDogW107XG59XG5cbi8qKlxuICogTWV0aG9kIGZvciByZW1vdmluZyBhdHRyaWJ1dGVzIGJ5IGBuYW1lYC5cbiAqXG4gKiBAY2F0ZWdvcnkgQXR0cmlidXRlc1xuICogQGV4YW1wbGVcbiAqXG4gKiBgYGBqc1xuICogJCgnLnBlYXInKS5yZW1vdmVBdHRyKCdjbGFzcycpLmh0bWwoKTtcbiAqIC8vPT4gPGxpPlBlYXI8L2xpPlxuICpcbiAqICQoJy5hcHBsZScpLmF0dHIoJ2lkJywgJ2Zhdm9yaXRlJyk7XG4gKiAkKCcuYXBwbGUnKS5yZW1vdmVBdHRyKCdpZCBjbGFzcycpLmh0bWwoKTtcbiAqIC8vPT4gPGxpPkFwcGxlPC9saT5cbiAqIGBgYFxuICpcbiAqIEBwYXJhbSBuYW1lIC0gTmFtZSBvZiB0aGUgYXR0cmlidXRlLlxuICogQHJldHVybnMgVGhlIGluc3RhbmNlIGl0c2VsZi5cbiAqIEBzZWUge0BsaW5rIGh0dHBzOi8vYXBpLmpxdWVyeS5jb20vcmVtb3ZlQXR0ci99XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZW1vdmVBdHRyPFQgZXh0ZW5kcyBBbnlOb2RlPihcbiAgdGhpczogQ2hlZXJpbzxUPixcbiAgbmFtZTogc3RyaW5nLFxuKTogQ2hlZXJpbzxUPiB7XG4gIGNvbnN0IGF0dHJOYW1lcyA9IHNwbGl0TmFtZXMobmFtZSk7XG5cbiAgZm9yIChjb25zdCBhdHRyTmFtZSBvZiBhdHRyTmFtZXMpIHtcbiAgICBkb21FYWNoKHRoaXMsIChlbGVtKSA9PiB7XG4gICAgICBpZiAoaXNUYWcoZWxlbSkpIHJlbW92ZUF0dHJpYnV0ZShlbGVtLCBhdHRyTmFtZSk7XG4gICAgfSk7XG4gIH1cblxuICByZXR1cm4gdGhpcztcbn1cblxuLyoqXG4gKiBDaGVjayB0byBzZWUgaWYgX2FueV8gb2YgdGhlIG1hdGNoZWQgZWxlbWVudHMgaGF2ZSB0aGUgZ2l2ZW4gYGNsYXNzTmFtZWAuXG4gKlxuICogQGNhdGVnb3J5IEF0dHJpYnV0ZXNcbiAqIEBleGFtcGxlXG4gKlxuICogYGBganNcbiAqICQoJy5wZWFyJykuaGFzQ2xhc3MoJ3BlYXInKTtcbiAqIC8vPT4gdHJ1ZVxuICpcbiAqICQoJ2FwcGxlJykuaGFzQ2xhc3MoJ2ZydWl0Jyk7XG4gKiAvLz0+IGZhbHNlXG4gKlxuICogJCgnbGknKS5oYXNDbGFzcygncGVhcicpO1xuICogLy89PiB0cnVlXG4gKiBgYGBcbiAqXG4gKiBAcGFyYW0gY2xhc3NOYW1lIC0gTmFtZSBvZiB0aGUgY2xhc3MuXG4gKiBAcmV0dXJucyBJbmRpY2F0ZXMgaWYgYW4gZWxlbWVudCBoYXMgdGhlIGdpdmVuIGBjbGFzc05hbWVgLlxuICogQHNlZSB7QGxpbmsgaHR0cHM6Ly9hcGkuanF1ZXJ5LmNvbS9oYXNDbGFzcy99XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBoYXNDbGFzczxUIGV4dGVuZHMgQW55Tm9kZT4oXG4gIHRoaXM6IENoZWVyaW88VD4sXG4gIGNsYXNzTmFtZTogc3RyaW5nLFxuKTogYm9vbGVhbiB7XG4gIHJldHVybiB0aGlzLnRvQXJyYXkoKS5zb21lKChlbGVtKSA9PiB7XG4gICAgY29uc3QgY2xhenogPSBpc1RhZyhlbGVtKSAmJiBlbGVtLmF0dHJpYnNbJ2NsYXNzJ107XG4gICAgbGV0IGlkeCA9IC0xO1xuXG4gICAgaWYgKGNsYXp6ICYmIGNsYXNzTmFtZS5sZW5ndGggPiAwKSB7XG4gICAgICB3aGlsZSAoKGlkeCA9IGNsYXp6LmluZGV4T2YoY2xhc3NOYW1lLCBpZHggKyAxKSkgPiAtMSkge1xuICAgICAgICBjb25zdCBlbmQgPSBpZHggKyBjbGFzc05hbWUubGVuZ3RoO1xuXG4gICAgICAgIGlmIChcbiAgICAgICAgICAoaWR4ID09PSAwIHx8IHJzcGFjZS50ZXN0KGNsYXp6W2lkeCAtIDFdKSkgJiZcbiAgICAgICAgICAoZW5kID09PSBjbGF6ei5sZW5ndGggfHwgcnNwYWNlLnRlc3QoY2xhenpbZW5kXSkpXG4gICAgICAgICkge1xuICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlO1xuICB9KTtcbn1cblxuLyoqXG4gKiBBZGRzIGNsYXNzKGVzKSB0byBhbGwgb2YgdGhlIG1hdGNoZWQgZWxlbWVudHMuIEFsc28gYWNjZXB0cyBhIGBmdW5jdGlvbmAuXG4gKlxuICogQGNhdGVnb3J5IEF0dHJpYnV0ZXNcbiAqIEBleGFtcGxlXG4gKlxuICogYGBganNcbiAqICQoJy5wZWFyJykuYWRkQ2xhc3MoJ2ZydWl0JykuaHRtbCgpO1xuICogLy89PiA8bGkgY2xhc3M9XCJwZWFyIGZydWl0XCI+UGVhcjwvbGk+XG4gKlxuICogJCgnLmFwcGxlJykuYWRkQ2xhc3MoJ2ZydWl0IHJlZCcpLmh0bWwoKTtcbiAqIC8vPT4gPGxpIGNsYXNzPVwiYXBwbGUgZnJ1aXQgcmVkXCI+QXBwbGU8L2xpPlxuICogYGBgXG4gKlxuICogQHBhcmFtIHZhbHVlIC0gTmFtZSBvZiBuZXcgY2xhc3MuXG4gKiBAcmV0dXJucyBUaGUgaW5zdGFuY2UgaXRzZWxmLlxuICogQHNlZSB7QGxpbmsgaHR0cHM6Ly9hcGkuanF1ZXJ5LmNvbS9hZGRDbGFzcy99XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhZGRDbGFzczxUIGV4dGVuZHMgQW55Tm9kZSwgUiBleHRlbmRzIEFycmF5TGlrZTxUPj4oXG4gIHRoaXM6IFIsXG4gIHZhbHVlPzpcbiAgICB8IHN0cmluZ1xuICAgIHwgKCh0aGlzOiBFbGVtZW50LCBpOiBudW1iZXIsIGNsYXNzTmFtZTogc3RyaW5nKSA9PiBzdHJpbmcgfCB1bmRlZmluZWQpLFxuKTogUiB7XG4gIC8vIFN1cHBvcnQgZnVuY3Rpb25zXG4gIGlmICh0eXBlb2YgdmFsdWUgPT09ICdmdW5jdGlvbicpIHtcbiAgICByZXR1cm4gZG9tRWFjaCh0aGlzLCAoZWwsIGkpID0+IHtcbiAgICAgIGlmIChpc1RhZyhlbCkpIHtcbiAgICAgICAgY29uc3QgY2xhc3NOYW1lID0gZWwuYXR0cmlic1snY2xhc3MnXSB8fCAnJztcbiAgICAgICAgYWRkQ2xhc3MuY2FsbChbZWxdLCB2YWx1ZS5jYWxsKGVsLCBpLCBjbGFzc05hbWUpKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIC8vIFJldHVybiBpZiBubyB2YWx1ZSBvciBub3QgYSBzdHJpbmcgb3IgZnVuY3Rpb25cbiAgaWYgKCF2YWx1ZSB8fCB0eXBlb2YgdmFsdWUgIT09ICdzdHJpbmcnKSByZXR1cm4gdGhpcztcblxuICBjb25zdCBjbGFzc05hbWVzID0gdmFsdWUuc3BsaXQocnNwYWNlKTtcbiAgY29uc3QgbnVtRWxlbWVudHMgPSB0aGlzLmxlbmd0aDtcblxuICBmb3IgKGxldCBpID0gMDsgaSA8IG51bUVsZW1lbnRzOyBpKyspIHtcbiAgICBjb25zdCBlbCA9IHRoaXNbaV07XG4gICAgLy8gSWYgc2VsZWN0ZWQgZWxlbWVudCBpc24ndCBhIHRhZywgbW92ZSBvblxuICAgIGlmICghaXNUYWcoZWwpKSBjb250aW51ZTtcblxuICAgIC8vIElmIHdlIGRvbid0IGFscmVhZHkgaGF2ZSBjbGFzc2VzIFx1MjAxNCBhbHdheXMgc2V0IHhtbE1vZGUgdG8gZmFsc2UgaGVyZSwgYXMgaXQgZG9lc24ndCBtYXR0ZXIgZm9yIGNsYXNzZXNcbiAgICBjb25zdCBjbGFzc05hbWUgPSBnZXRBdHRyKGVsLCAnY2xhc3MnLCBmYWxzZSk7XG5cbiAgICBpZiAoY2xhc3NOYW1lKSB7XG4gICAgICBsZXQgc2V0Q2xhc3MgPSBgICR7Y2xhc3NOYW1lfSBgO1xuXG4gICAgICAvLyBDaGVjayBpZiBjbGFzcyBhbHJlYWR5IGV4aXN0c1xuICAgICAgZm9yIChjb25zdCBjbiBvZiBjbGFzc05hbWVzKSB7XG4gICAgICAgIGNvbnN0IGFwcGVuZENsYXNzID0gYCR7Y259IGA7XG4gICAgICAgIGlmICghc2V0Q2xhc3MuaW5jbHVkZXMoYCAke2FwcGVuZENsYXNzfWApKSBzZXRDbGFzcyArPSBhcHBlbmRDbGFzcztcbiAgICAgIH1cblxuICAgICAgc2V0QXR0cihlbCwgJ2NsYXNzJywgc2V0Q2xhc3MudHJpbSgpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgc2V0QXR0cihlbCwgJ2NsYXNzJywgY2xhc3NOYW1lcy5qb2luKCcgJykudHJpbSgpKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdGhpcztcbn1cblxuLyoqXG4gKiBSZW1vdmVzIG9uZSBvciBtb3JlIHNwYWNlLXNlcGFyYXRlZCBjbGFzc2VzIGZyb20gdGhlIHNlbGVjdGVkIGVsZW1lbnRzLiBJZiBub1xuICogYGNsYXNzTmFtZWAgaXMgZGVmaW5lZCwgYWxsIGNsYXNzZXMgd2lsbCBiZSByZW1vdmVkLiBBbHNvIGFjY2VwdHMgYVxuICogYGZ1bmN0aW9uYC5cbiAqXG4gKiBAY2F0ZWdvcnkgQXR0cmlidXRlc1xuICogQGV4YW1wbGVcbiAqXG4gKiBgYGBqc1xuICogJCgnLnBlYXInKS5yZW1vdmVDbGFzcygncGVhcicpLmh0bWwoKTtcbiAqIC8vPT4gPGxpIGNsYXNzPVwiXCI+UGVhcjwvbGk+XG4gKlxuICogJCgnLmFwcGxlJykuYWRkQ2xhc3MoJ3JlZCcpLnJlbW92ZUNsYXNzKCkuaHRtbCgpO1xuICogLy89PiA8bGkgY2xhc3M9XCJcIj5BcHBsZTwvbGk+XG4gKiBgYGBcbiAqXG4gKiBAcGFyYW0gbmFtZSAtIE5hbWUgb2YgdGhlIGNsYXNzLiBJZiBub3Qgc3BlY2lmaWVkLCByZW1vdmVzIGFsbCBlbGVtZW50cy5cbiAqIEByZXR1cm5zIFRoZSBpbnN0YW5jZSBpdHNlbGYuXG4gKiBAc2VlIHtAbGluayBodHRwczovL2FwaS5qcXVlcnkuY29tL3JlbW92ZUNsYXNzL31cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlbW92ZUNsYXNzPFQgZXh0ZW5kcyBBbnlOb2RlLCBSIGV4dGVuZHMgQXJyYXlMaWtlPFQ+PihcbiAgdGhpczogUixcbiAgbmFtZT86XG4gICAgfCBzdHJpbmdcbiAgICB8ICgodGhpczogRWxlbWVudCwgaTogbnVtYmVyLCBjbGFzc05hbWU6IHN0cmluZykgPT4gc3RyaW5nIHwgdW5kZWZpbmVkKSxcbik6IFIge1xuICAvLyBIYW5kbGUgaWYgdmFsdWUgaXMgYSBmdW5jdGlvblxuICBpZiAodHlwZW9mIG5hbWUgPT09ICdmdW5jdGlvbicpIHtcbiAgICByZXR1cm4gZG9tRWFjaCh0aGlzLCAoZWwsIGkpID0+IHtcbiAgICAgIGlmIChpc1RhZyhlbCkpIHtcbiAgICAgICAgcmVtb3ZlQ2xhc3MuY2FsbChbZWxdLCBuYW1lLmNhbGwoZWwsIGksIGVsLmF0dHJpYnNbJ2NsYXNzJ10gfHwgJycpKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIGNvbnN0IGNsYXNzZXMgPSBzcGxpdE5hbWVzKG5hbWUpO1xuICBjb25zdCBudW1DbGFzc2VzID0gY2xhc3Nlcy5sZW5ndGg7XG4gIGNvbnN0IHJlbW92ZUFsbCA9IGFyZ3VtZW50cy5sZW5ndGggPT09IDA7XG5cbiAgcmV0dXJuIGRvbUVhY2godGhpcywgKGVsKSA9PiB7XG4gICAgaWYgKCFpc1RhZyhlbCkpIHJldHVybjtcblxuICAgIGlmIChyZW1vdmVBbGwpIHtcbiAgICAgIC8vIFNob3J0IGNpcmN1aXQgdGhlIHJlbW92ZSBhbGwgY2FzZSBhcyB0aGlzIGlzIHRoZSBuaWNlIG9uZVxuICAgICAgZWwuYXR0cmlic1snY2xhc3MnXSA9ICcnO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBlbENsYXNzZXMgPSBzcGxpdE5hbWVzKGVsLmF0dHJpYnNbJ2NsYXNzJ10pO1xuICAgICAgbGV0IGNoYW5nZWQgPSBmYWxzZTtcblxuICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCBudW1DbGFzc2VzOyBqKyspIHtcbiAgICAgICAgY29uc3QgaW5kZXggPSBlbENsYXNzZXMuaW5kZXhPZihjbGFzc2VzW2pdKTtcblxuICAgICAgICBpZiAoaW5kZXggPj0gMCkge1xuICAgICAgICAgIGVsQ2xhc3Nlcy5zcGxpY2UoaW5kZXgsIDEpO1xuICAgICAgICAgIGNoYW5nZWQgPSB0cnVlO1xuXG4gICAgICAgICAgLypcbiAgICAgICAgICAgKiBXZSBoYXZlIHRvIGRvIGFub3RoZXIgcGFzcyB0byBlbnN1cmUgdGhhdCB0aGVyZSBhcmUgbm90IGR1cGxpY2F0ZVxuICAgICAgICAgICAqIGNsYXNzZXMgbGlzdGVkXG4gICAgICAgICAgICovXG4gICAgICAgICAgai0tO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoY2hhbmdlZCkge1xuICAgICAgICBlbC5hdHRyaWJzWydjbGFzcyddID0gZWxDbGFzc2VzLmpvaW4oJyAnKTtcbiAgICAgIH1cbiAgICB9XG4gIH0pO1xufVxuXG4vKipcbiAqIEFkZCBvciByZW1vdmUgY2xhc3MoZXMpIGZyb20gdGhlIG1hdGNoZWQgZWxlbWVudHMsIGRlcGVuZGluZyBvbiBlaXRoZXIgdGhlXG4gKiBjbGFzcydzIHByZXNlbmNlIG9yIHRoZSB2YWx1ZSBvZiB0aGUgc3dpdGNoIGFyZ3VtZW50LiBBbHNvIGFjY2VwdHMgYVxuICogYGZ1bmN0aW9uYC5cbiAqXG4gKiBAY2F0ZWdvcnkgQXR0cmlidXRlc1xuICogQGV4YW1wbGVcbiAqXG4gKiBgYGBqc1xuICogJCgnLmFwcGxlLmdyZWVuJykudG9nZ2xlQ2xhc3MoJ2ZydWl0IGdyZWVuIHJlZCcpLmh0bWwoKTtcbiAqIC8vPT4gPGxpIGNsYXNzPVwiYXBwbGUgZnJ1aXQgcmVkXCI+QXBwbGU8L2xpPlxuICpcbiAqICQoJy5hcHBsZS5ncmVlbicpLnRvZ2dsZUNsYXNzKCdmcnVpdCBncmVlbiByZWQnLCB0cnVlKS5odG1sKCk7XG4gKiAvLz0+IDxsaSBjbGFzcz1cImFwcGxlIGdyZWVuIGZydWl0IHJlZFwiPkFwcGxlPC9saT5cbiAqIGBgYFxuICpcbiAqIEBwYXJhbSB2YWx1ZSAtIE5hbWUgb2YgdGhlIGNsYXNzLiBDYW4gYWxzbyBiZSBhIGZ1bmN0aW9uLlxuICogQHBhcmFtIHN0YXRlVmFsIC0gSWYgc3BlY2lmaWVkIHRoZSBzdGF0ZSBvZiB0aGUgY2xhc3MuXG4gKiBAcmV0dXJucyBUaGUgaW5zdGFuY2UgaXRzZWxmLlxuICogQHNlZSB7QGxpbmsgaHR0cHM6Ly9hcGkuanF1ZXJ5LmNvbS90b2dnbGVDbGFzcy99XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0b2dnbGVDbGFzczxUIGV4dGVuZHMgQW55Tm9kZSwgUiBleHRlbmRzIEFycmF5TGlrZTxUPj4oXG4gIHRoaXM6IFIsXG4gIHZhbHVlPzpcbiAgICB8IHN0cmluZ1xuICAgIHwgKChcbiAgICAgICAgdGhpczogRWxlbWVudCxcbiAgICAgICAgaTogbnVtYmVyLFxuICAgICAgICBjbGFzc05hbWU6IHN0cmluZyxcbiAgICAgICAgc3RhdGVWYWw/OiBib29sZWFuLFxuICAgICAgKSA9PiBzdHJpbmcpLFxuICBzdGF0ZVZhbD86IGJvb2xlYW4sXG4pOiBSIHtcbiAgLy8gU3VwcG9ydCBmdW5jdGlvbnNcbiAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIHJldHVybiBkb21FYWNoKHRoaXMsIChlbCwgaSkgPT4ge1xuICAgICAgaWYgKGlzVGFnKGVsKSkge1xuICAgICAgICB0b2dnbGVDbGFzcy5jYWxsKFxuICAgICAgICAgIFtlbF0sXG4gICAgICAgICAgdmFsdWUuY2FsbChlbCwgaSwgZWwuYXR0cmlic1snY2xhc3MnXSB8fCAnJywgc3RhdGVWYWwpLFxuICAgICAgICAgIHN0YXRlVmFsLFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgLy8gUmV0dXJuIGlmIG5vIHZhbHVlIG9yIG5vdCBhIHN0cmluZyBvciBmdW5jdGlvblxuICBpZiAoIXZhbHVlIHx8IHR5cGVvZiB2YWx1ZSAhPT0gJ3N0cmluZycpIHJldHVybiB0aGlzO1xuXG4gIGNvbnN0IGNsYXNzTmFtZXMgPSB2YWx1ZS5zcGxpdChyc3BhY2UpO1xuICBjb25zdCBudW1DbGFzc2VzID0gY2xhc3NOYW1lcy5sZW5ndGg7XG4gIGNvbnN0IHN0YXRlID0gdHlwZW9mIHN0YXRlVmFsID09PSAnYm9vbGVhbicgPyAoc3RhdGVWYWwgPyAxIDogLTEpIDogMDtcbiAgY29uc3QgbnVtRWxlbWVudHMgPSB0aGlzLmxlbmd0aDtcblxuICBmb3IgKGxldCBpID0gMDsgaSA8IG51bUVsZW1lbnRzOyBpKyspIHtcbiAgICBjb25zdCBlbCA9IHRoaXNbaV07XG4gICAgLy8gSWYgc2VsZWN0ZWQgZWxlbWVudCBpc24ndCBhIHRhZywgbW92ZSBvblxuICAgIGlmICghaXNUYWcoZWwpKSBjb250aW51ZTtcblxuICAgIGNvbnN0IGVsZW1lbnRDbGFzc2VzID0gc3BsaXROYW1lcyhlbC5hdHRyaWJzWydjbGFzcyddKTtcblxuICAgIC8vIENoZWNrIGlmIGNsYXNzIGFscmVhZHkgZXhpc3RzXG4gICAgZm9yIChsZXQgaiA9IDA7IGogPCBudW1DbGFzc2VzOyBqKyspIHtcbiAgICAgIC8vIENoZWNrIGlmIHRoZSBjbGFzcyBuYW1lIGlzIGN1cnJlbnRseSBkZWZpbmVkXG4gICAgICBjb25zdCBpbmRleCA9IGVsZW1lbnRDbGFzc2VzLmluZGV4T2YoY2xhc3NOYW1lc1tqXSk7XG5cbiAgICAgIC8vIEFkZCBpZiBzdGF0ZVZhbHVlID09PSB0cnVlIG9yIHdlIGFyZSB0b2dnbGluZyBhbmQgdGhlcmUgaXMgbm8gdmFsdWVcbiAgICAgIGlmIChzdGF0ZSA+PSAwICYmIGluZGV4IDwgMCkge1xuICAgICAgICBlbGVtZW50Q2xhc3Nlcy5wdXNoKGNsYXNzTmFtZXNbal0pO1xuICAgICAgfSBlbHNlIGlmIChzdGF0ZSA8PSAwICYmIGluZGV4ID49IDApIHtcbiAgICAgICAgLy8gT3RoZXJ3aXNlIHJlbW92ZSBidXQgb25seSBpZiB0aGUgaXRlbSBleGlzdHNcbiAgICAgICAgZWxlbWVudENsYXNzZXMuc3BsaWNlKGluZGV4LCAxKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBlbC5hdHRyaWJzWydjbGFzcyddID0gZWxlbWVudENsYXNzZXMuam9pbignICcpO1xuICB9XG5cbiAgcmV0dXJuIHRoaXM7XG59XG4iLCAiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLkF0dHJpYnV0ZUFjdGlvbiA9IGV4cG9ydHMuSWdub3JlQ2FzZU1vZGUgPSBleHBvcnRzLlNlbGVjdG9yVHlwZSA9IHZvaWQgMDtcbnZhciBTZWxlY3RvclR5cGU7XG4oZnVuY3Rpb24gKFNlbGVjdG9yVHlwZSkge1xuICAgIFNlbGVjdG9yVHlwZVtcIkF0dHJpYnV0ZVwiXSA9IFwiYXR0cmlidXRlXCI7XG4gICAgU2VsZWN0b3JUeXBlW1wiUHNldWRvXCJdID0gXCJwc2V1ZG9cIjtcbiAgICBTZWxlY3RvclR5cGVbXCJQc2V1ZG9FbGVtZW50XCJdID0gXCJwc2V1ZG8tZWxlbWVudFwiO1xuICAgIFNlbGVjdG9yVHlwZVtcIlRhZ1wiXSA9IFwidGFnXCI7XG4gICAgU2VsZWN0b3JUeXBlW1wiVW5pdmVyc2FsXCJdID0gXCJ1bml2ZXJzYWxcIjtcbiAgICAvLyBUcmF2ZXJzYWxzXG4gICAgU2VsZWN0b3JUeXBlW1wiQWRqYWNlbnRcIl0gPSBcImFkamFjZW50XCI7XG4gICAgU2VsZWN0b3JUeXBlW1wiQ2hpbGRcIl0gPSBcImNoaWxkXCI7XG4gICAgU2VsZWN0b3JUeXBlW1wiRGVzY2VuZGFudFwiXSA9IFwiZGVzY2VuZGFudFwiO1xuICAgIFNlbGVjdG9yVHlwZVtcIlBhcmVudFwiXSA9IFwicGFyZW50XCI7XG4gICAgU2VsZWN0b3JUeXBlW1wiU2libGluZ1wiXSA9IFwic2libGluZ1wiO1xuICAgIFNlbGVjdG9yVHlwZVtcIkNvbHVtbkNvbWJpbmF0b3JcIl0gPSBcImNvbHVtbi1jb21iaW5hdG9yXCI7XG59KShTZWxlY3RvclR5cGUgPSBleHBvcnRzLlNlbGVjdG9yVHlwZSB8fCAoZXhwb3J0cy5TZWxlY3RvclR5cGUgPSB7fSkpO1xuLyoqXG4gKiBNb2RlcyBmb3IgaWdub3JlIGNhc2UuXG4gKlxuICogVGhpcyBjb3VsZCBiZSB1cGRhdGVkIHRvIGFuIGVudW0sIGFuZCB0aGUgb2JqZWN0IGlzXG4gKiB0aGUgY3VycmVudCBzdGFuZC1pbiB0aGF0IHdpbGwgYWxsb3cgY29kZSB0byBiZSB1cGRhdGVkXG4gKiB3aXRob3V0IGJpZyBjaGFuZ2VzLlxuICovXG5leHBvcnRzLklnbm9yZUNhc2VNb2RlID0ge1xuICAgIFVua25vd246IG51bGwsXG4gICAgUXVpcmtzTW9kZTogXCJxdWlya3NcIixcbiAgICBJZ25vcmVDYXNlOiB0cnVlLFxuICAgIENhc2VTZW5zaXRpdmU6IGZhbHNlLFxufTtcbnZhciBBdHRyaWJ1dGVBY3Rpb247XG4oZnVuY3Rpb24gKEF0dHJpYnV0ZUFjdGlvbikge1xuICAgIEF0dHJpYnV0ZUFjdGlvbltcIkFueVwiXSA9IFwiYW55XCI7XG4gICAgQXR0cmlidXRlQWN0aW9uW1wiRWxlbWVudFwiXSA9IFwiZWxlbWVudFwiO1xuICAgIEF0dHJpYnV0ZUFjdGlvbltcIkVuZFwiXSA9IFwiZW5kXCI7XG4gICAgQXR0cmlidXRlQWN0aW9uW1wiRXF1YWxzXCJdID0gXCJlcXVhbHNcIjtcbiAgICBBdHRyaWJ1dGVBY3Rpb25bXCJFeGlzdHNcIl0gPSBcImV4aXN0c1wiO1xuICAgIEF0dHJpYnV0ZUFjdGlvbltcIkh5cGhlblwiXSA9IFwiaHlwaGVuXCI7XG4gICAgQXR0cmlidXRlQWN0aW9uW1wiTm90XCJdID0gXCJub3RcIjtcbiAgICBBdHRyaWJ1dGVBY3Rpb25bXCJTdGFydFwiXSA9IFwic3RhcnRcIjtcbn0pKEF0dHJpYnV0ZUFjdGlvbiA9IGV4cG9ydHMuQXR0cmlidXRlQWN0aW9uIHx8IChleHBvcnRzLkF0dHJpYnV0ZUFjdGlvbiA9IHt9KSk7XG4iLCAiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLnBhcnNlID0gZXhwb3J0cy5pc1RyYXZlcnNhbCA9IHZvaWQgMDtcbnZhciB0eXBlc18xID0gcmVxdWlyZShcIi4vdHlwZXNcIik7XG52YXIgcmVOYW1lID0gL15bXlxcXFwjXT8oPzpcXFxcKD86W1xcZGEtZl17MSw2fVxccz98Lil8W1xcd1xcLVxcdTAwYjAtXFx1RkZGRl0pKy87XG52YXIgcmVFc2NhcGUgPSAvXFxcXChbXFxkYS1mXXsxLDZ9XFxzP3woXFxzKXwuKS9naTtcbnZhciBhY3Rpb25UeXBlcyA9IG5ldyBNYXAoW1xuICAgIFsxMjYgLyogVGlsZGUgKi8sIHR5cGVzXzEuQXR0cmlidXRlQWN0aW9uLkVsZW1lbnRdLFxuICAgIFs5NCAvKiBDaXJjdW1mbGV4ICovLCB0eXBlc18xLkF0dHJpYnV0ZUFjdGlvbi5TdGFydF0sXG4gICAgWzM2IC8qIERvbGxhciAqLywgdHlwZXNfMS5BdHRyaWJ1dGVBY3Rpb24uRW5kXSxcbiAgICBbNDIgLyogQXN0ZXJpc2sgKi8sIHR5cGVzXzEuQXR0cmlidXRlQWN0aW9uLkFueV0sXG4gICAgWzMzIC8qIEV4Y2xhbWF0aW9uTWFyayAqLywgdHlwZXNfMS5BdHRyaWJ1dGVBY3Rpb24uTm90XSxcbiAgICBbMTI0IC8qIFBpcGUgKi8sIHR5cGVzXzEuQXR0cmlidXRlQWN0aW9uLkh5cGhlbl0sXG5dKTtcbi8vIFBzZXVkb3MsIHdob3NlIGRhdGEgcHJvcGVydHkgaXMgcGFyc2VkIGFzIHdlbGwuXG52YXIgdW5wYWNrUHNldWRvcyA9IG5ldyBTZXQoW1xuICAgIFwiaGFzXCIsXG4gICAgXCJub3RcIixcbiAgICBcIm1hdGNoZXNcIixcbiAgICBcImlzXCIsXG4gICAgXCJ3aGVyZVwiLFxuICAgIFwiaG9zdFwiLFxuICAgIFwiaG9zdC1jb250ZXh0XCIsXG5dKTtcbi8qKlxuICogQ2hlY2tzIHdoZXRoZXIgYSBzcGVjaWZpYyBzZWxlY3RvciBpcyBhIHRyYXZlcnNhbC5cbiAqIFRoaXMgaXMgdXNlZnVsIGVnLiBpbiBzd2FwcGluZyB0aGUgb3JkZXIgb2YgZWxlbWVudHMgdGhhdFxuICogYXJlIG5vdCB0cmF2ZXJzYWxzLlxuICpcbiAqIEBwYXJhbSBzZWxlY3RvciBTZWxlY3RvciB0byBjaGVjay5cbiAqL1xuZnVuY3Rpb24gaXNUcmF2ZXJzYWwoc2VsZWN0b3IpIHtcbiAgICBzd2l0Y2ggKHNlbGVjdG9yLnR5cGUpIHtcbiAgICAgICAgY2FzZSB0eXBlc18xLlNlbGVjdG9yVHlwZS5BZGphY2VudDpcbiAgICAgICAgY2FzZSB0eXBlc18xLlNlbGVjdG9yVHlwZS5DaGlsZDpcbiAgICAgICAgY2FzZSB0eXBlc18xLlNlbGVjdG9yVHlwZS5EZXNjZW5kYW50OlxuICAgICAgICBjYXNlIHR5cGVzXzEuU2VsZWN0b3JUeXBlLlBhcmVudDpcbiAgICAgICAgY2FzZSB0eXBlc18xLlNlbGVjdG9yVHlwZS5TaWJsaW5nOlxuICAgICAgICBjYXNlIHR5cGVzXzEuU2VsZWN0b3JUeXBlLkNvbHVtbkNvbWJpbmF0b3I6XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG59XG5leHBvcnRzLmlzVHJhdmVyc2FsID0gaXNUcmF2ZXJzYWw7XG52YXIgc3RyaXBRdW90ZXNGcm9tUHNldWRvcyA9IG5ldyBTZXQoW1wiY29udGFpbnNcIiwgXCJpY29udGFpbnNcIl0pO1xuLy8gVW5lc2NhcGUgZnVuY3Rpb24gdGFrZW4gZnJvbSBodHRwczovL2dpdGh1Yi5jb20vanF1ZXJ5L3NpenpsZS9ibG9iL21hc3Rlci9zcmMvc2l6emxlLmpzI0wxNTJcbmZ1bmN0aW9uIGZ1bmVzY2FwZShfLCBlc2NhcGVkLCBlc2NhcGVkV2hpdGVzcGFjZSkge1xuICAgIHZhciBoaWdoID0gcGFyc2VJbnQoZXNjYXBlZCwgMTYpIC0gMHgxMDAwMDtcbiAgICAvLyBOYU4gbWVhbnMgbm9uLWNvZGVwb2ludFxuICAgIHJldHVybiBoaWdoICE9PSBoaWdoIHx8IGVzY2FwZWRXaGl0ZXNwYWNlXG4gICAgICAgID8gZXNjYXBlZFxuICAgICAgICA6IGhpZ2ggPCAwXG4gICAgICAgICAgICA/IC8vIEJNUCBjb2RlcG9pbnRcbiAgICAgICAgICAgICAgICBTdHJpbmcuZnJvbUNoYXJDb2RlKGhpZ2ggKyAweDEwMDAwKVxuICAgICAgICAgICAgOiAvLyBTdXBwbGVtZW50YWwgUGxhbmUgY29kZXBvaW50IChzdXJyb2dhdGUgcGFpcilcbiAgICAgICAgICAgICAgICBTdHJpbmcuZnJvbUNoYXJDb2RlKChoaWdoID4+IDEwKSB8IDB4ZDgwMCwgKGhpZ2ggJiAweDNmZikgfCAweGRjMDApO1xufVxuZnVuY3Rpb24gdW5lc2NhcGVDU1Moc3RyKSB7XG4gICAgcmV0dXJuIHN0ci5yZXBsYWNlKHJlRXNjYXBlLCBmdW5lc2NhcGUpO1xufVxuZnVuY3Rpb24gaXNRdW90ZShjKSB7XG4gICAgcmV0dXJuIGMgPT09IDM5IC8qIFNpbmdsZVF1b3RlICovIHx8IGMgPT09IDM0IC8qIERvdWJsZVF1b3RlICovO1xufVxuZnVuY3Rpb24gaXNXaGl0ZXNwYWNlKGMpIHtcbiAgICByZXR1cm4gKGMgPT09IDMyIC8qIFNwYWNlICovIHx8XG4gICAgICAgIGMgPT09IDkgLyogVGFiICovIHx8XG4gICAgICAgIGMgPT09IDEwIC8qIE5ld0xpbmUgKi8gfHxcbiAgICAgICAgYyA9PT0gMTIgLyogRm9ybUZlZWQgKi8gfHxcbiAgICAgICAgYyA9PT0gMTMgLyogQ2FycmlhZ2VSZXR1cm4gKi8pO1xufVxuLyoqXG4gKiBQYXJzZXMgYHNlbGVjdG9yYCwgb3B0aW9uYWxseSB3aXRoIHRoZSBwYXNzZWQgYG9wdGlvbnNgLlxuICpcbiAqIEBwYXJhbSBzZWxlY3RvciBTZWxlY3RvciB0byBwYXJzZS5cbiAqIEBwYXJhbSBvcHRpb25zIE9wdGlvbnMgZm9yIHBhcnNpbmcuXG4gKiBAcmV0dXJucyBSZXR1cm5zIGEgdHdvLWRpbWVuc2lvbmFsIGFycmF5LlxuICogVGhlIGZpcnN0IGRpbWVuc2lvbiByZXByZXNlbnRzIHNlbGVjdG9ycyBzZXBhcmF0ZWQgYnkgY29tbWFzIChlZy4gYHN1YjEsIHN1YjJgKSxcbiAqIHRoZSBzZWNvbmQgY29udGFpbnMgdGhlIHJlbGV2YW50IHRva2VucyBmb3IgdGhhdCBzZWxlY3Rvci5cbiAqL1xuZnVuY3Rpb24gcGFyc2Uoc2VsZWN0b3IpIHtcbiAgICB2YXIgc3Vic2VsZWN0cyA9IFtdO1xuICAgIHZhciBlbmRJbmRleCA9IHBhcnNlU2VsZWN0b3Ioc3Vic2VsZWN0cywgXCJcIi5jb25jYXQoc2VsZWN0b3IpLCAwKTtcbiAgICBpZiAoZW5kSW5kZXggPCBzZWxlY3Rvci5sZW5ndGgpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiVW5tYXRjaGVkIHNlbGVjdG9yOiBcIi5jb25jYXQoc2VsZWN0b3Iuc2xpY2UoZW5kSW5kZXgpKSk7XG4gICAgfVxuICAgIHJldHVybiBzdWJzZWxlY3RzO1xufVxuZXhwb3J0cy5wYXJzZSA9IHBhcnNlO1xuZnVuY3Rpb24gcGFyc2VTZWxlY3RvcihzdWJzZWxlY3RzLCBzZWxlY3Rvciwgc2VsZWN0b3JJbmRleCkge1xuICAgIHZhciB0b2tlbnMgPSBbXTtcbiAgICBmdW5jdGlvbiBnZXROYW1lKG9mZnNldCkge1xuICAgICAgICB2YXIgbWF0Y2ggPSBzZWxlY3Rvci5zbGljZShzZWxlY3RvckluZGV4ICsgb2Zmc2V0KS5tYXRjaChyZU5hbWUpO1xuICAgICAgICBpZiAoIW1hdGNoKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJFeHBlY3RlZCBuYW1lLCBmb3VuZCBcIi5jb25jYXQoc2VsZWN0b3Iuc2xpY2Uoc2VsZWN0b3JJbmRleCkpKTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgbmFtZSA9IG1hdGNoWzBdO1xuICAgICAgICBzZWxlY3RvckluZGV4ICs9IG9mZnNldCArIG5hbWUubGVuZ3RoO1xuICAgICAgICByZXR1cm4gdW5lc2NhcGVDU1MobmFtZSk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHN0cmlwV2hpdGVzcGFjZShvZmZzZXQpIHtcbiAgICAgICAgc2VsZWN0b3JJbmRleCArPSBvZmZzZXQ7XG4gICAgICAgIHdoaWxlIChzZWxlY3RvckluZGV4IDwgc2VsZWN0b3IubGVuZ3RoICYmXG4gICAgICAgICAgICBpc1doaXRlc3BhY2Uoc2VsZWN0b3IuY2hhckNvZGVBdChzZWxlY3RvckluZGV4KSkpIHtcbiAgICAgICAgICAgIHNlbGVjdG9ySW5kZXgrKztcbiAgICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiByZWFkVmFsdWVXaXRoUGFyZW50aGVzaXMoKSB7XG4gICAgICAgIHNlbGVjdG9ySW5kZXggKz0gMTtcbiAgICAgICAgdmFyIHN0YXJ0ID0gc2VsZWN0b3JJbmRleDtcbiAgICAgICAgdmFyIGNvdW50ZXIgPSAxO1xuICAgICAgICBmb3IgKDsgY291bnRlciA+IDAgJiYgc2VsZWN0b3JJbmRleCA8IHNlbGVjdG9yLmxlbmd0aDsgc2VsZWN0b3JJbmRleCsrKSB7XG4gICAgICAgICAgICBpZiAoc2VsZWN0b3IuY2hhckNvZGVBdChzZWxlY3RvckluZGV4KSA9PT1cbiAgICAgICAgICAgICAgICA0MCAvKiBMZWZ0UGFyZW50aGVzaXMgKi8gJiZcbiAgICAgICAgICAgICAgICAhaXNFc2NhcGVkKHNlbGVjdG9ySW5kZXgpKSB7XG4gICAgICAgICAgICAgICAgY291bnRlcisrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAoc2VsZWN0b3IuY2hhckNvZGVBdChzZWxlY3RvckluZGV4KSA9PT1cbiAgICAgICAgICAgICAgICA0MSAvKiBSaWdodFBhcmVudGhlc2lzICovICYmXG4gICAgICAgICAgICAgICAgIWlzRXNjYXBlZChzZWxlY3RvckluZGV4KSkge1xuICAgICAgICAgICAgICAgIGNvdW50ZXItLTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoY291bnRlcikge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiUGFyZW50aGVzaXMgbm90IG1hdGNoZWRcIik7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHVuZXNjYXBlQ1NTKHNlbGVjdG9yLnNsaWNlKHN0YXJ0LCBzZWxlY3RvckluZGV4IC0gMSkpO1xuICAgIH1cbiAgICBmdW5jdGlvbiBpc0VzY2FwZWQocG9zKSB7XG4gICAgICAgIHZhciBzbGFzaENvdW50ID0gMDtcbiAgICAgICAgd2hpbGUgKHNlbGVjdG9yLmNoYXJDb2RlQXQoLS1wb3MpID09PSA5MiAvKiBCYWNrU2xhc2ggKi8pXG4gICAgICAgICAgICBzbGFzaENvdW50Kys7XG4gICAgICAgIHJldHVybiAoc2xhc2hDb3VudCAmIDEpID09PSAxO1xuICAgIH1cbiAgICBmdW5jdGlvbiBlbnN1cmVOb3RUcmF2ZXJzYWwoKSB7XG4gICAgICAgIGlmICh0b2tlbnMubGVuZ3RoID4gMCAmJiBpc1RyYXZlcnNhbCh0b2tlbnNbdG9rZW5zLmxlbmd0aCAtIDFdKSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiRGlkIG5vdCBleHBlY3Qgc3VjY2Vzc2l2ZSB0cmF2ZXJzYWxzLlwiKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiBhZGRUcmF2ZXJzYWwodHlwZSkge1xuICAgICAgICBpZiAodG9rZW5zLmxlbmd0aCA+IDAgJiZcbiAgICAgICAgICAgIHRva2Vuc1t0b2tlbnMubGVuZ3RoIC0gMV0udHlwZSA9PT0gdHlwZXNfMS5TZWxlY3RvclR5cGUuRGVzY2VuZGFudCkge1xuICAgICAgICAgICAgdG9rZW5zW3Rva2Vucy5sZW5ndGggLSAxXS50eXBlID0gdHlwZTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBlbnN1cmVOb3RUcmF2ZXJzYWwoKTtcbiAgICAgICAgdG9rZW5zLnB1c2goeyB0eXBlOiB0eXBlIH0pO1xuICAgIH1cbiAgICBmdW5jdGlvbiBhZGRTcGVjaWFsQXR0cmlidXRlKG5hbWUsIGFjdGlvbikge1xuICAgICAgICB0b2tlbnMucHVzaCh7XG4gICAgICAgICAgICB0eXBlOiB0eXBlc18xLlNlbGVjdG9yVHlwZS5BdHRyaWJ1dGUsXG4gICAgICAgICAgICBuYW1lOiBuYW1lLFxuICAgICAgICAgICAgYWN0aW9uOiBhY3Rpb24sXG4gICAgICAgICAgICB2YWx1ZTogZ2V0TmFtZSgxKSxcbiAgICAgICAgICAgIG5hbWVzcGFjZTogbnVsbCxcbiAgICAgICAgICAgIGlnbm9yZUNhc2U6IFwicXVpcmtzXCIsXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBXZSBoYXZlIGZpbmlzaGVkIHBhcnNpbmcgdGhlIGN1cnJlbnQgcGFydCBvZiB0aGUgc2VsZWN0b3IuXG4gICAgICpcbiAgICAgKiBSZW1vdmUgZGVzY2VuZGFudCB0b2tlbnMgYXQgdGhlIGVuZCBpZiB0aGV5IGV4aXN0LFxuICAgICAqIGFuZCByZXR1cm4gdGhlIGxhc3QgaW5kZXgsIHNvIHRoYXQgcGFyc2luZyBjYW4gYmVcbiAgICAgKiBwaWNrZWQgdXAgZnJvbSBoZXJlLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGZpbmFsaXplU3Vic2VsZWN0b3IoKSB7XG4gICAgICAgIGlmICh0b2tlbnMubGVuZ3RoICYmXG4gICAgICAgICAgICB0b2tlbnNbdG9rZW5zLmxlbmd0aCAtIDFdLnR5cGUgPT09IHR5cGVzXzEuU2VsZWN0b3JUeXBlLkRlc2NlbmRhbnQpIHtcbiAgICAgICAgICAgIHRva2Vucy5wb3AoKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodG9rZW5zLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiRW1wdHkgc3ViLXNlbGVjdG9yXCIpO1xuICAgICAgICB9XG4gICAgICAgIHN1YnNlbGVjdHMucHVzaCh0b2tlbnMpO1xuICAgIH1cbiAgICBzdHJpcFdoaXRlc3BhY2UoMCk7XG4gICAgaWYgKHNlbGVjdG9yLmxlbmd0aCA9PT0gc2VsZWN0b3JJbmRleCkge1xuICAgICAgICByZXR1cm4gc2VsZWN0b3JJbmRleDtcbiAgICB9XG4gICAgbG9vcDogd2hpbGUgKHNlbGVjdG9ySW5kZXggPCBzZWxlY3Rvci5sZW5ndGgpIHtcbiAgICAgICAgdmFyIGZpcnN0Q2hhciA9IHNlbGVjdG9yLmNoYXJDb2RlQXQoc2VsZWN0b3JJbmRleCk7XG4gICAgICAgIHN3aXRjaCAoZmlyc3RDaGFyKSB7XG4gICAgICAgICAgICAvLyBXaGl0ZXNwYWNlXG4gICAgICAgICAgICBjYXNlIDMyIC8qIFNwYWNlICovOlxuICAgICAgICAgICAgY2FzZSA5IC8qIFRhYiAqLzpcbiAgICAgICAgICAgIGNhc2UgMTAgLyogTmV3TGluZSAqLzpcbiAgICAgICAgICAgIGNhc2UgMTIgLyogRm9ybUZlZWQgKi86XG4gICAgICAgICAgICBjYXNlIDEzIC8qIENhcnJpYWdlUmV0dXJuICovOiB7XG4gICAgICAgICAgICAgICAgaWYgKHRva2Vucy5sZW5ndGggPT09IDAgfHxcbiAgICAgICAgICAgICAgICAgICAgdG9rZW5zWzBdLnR5cGUgIT09IHR5cGVzXzEuU2VsZWN0b3JUeXBlLkRlc2NlbmRhbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgZW5zdXJlTm90VHJhdmVyc2FsKCk7XG4gICAgICAgICAgICAgICAgICAgIHRva2Vucy5wdXNoKHsgdHlwZTogdHlwZXNfMS5TZWxlY3RvclR5cGUuRGVzY2VuZGFudCB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgc3RyaXBXaGl0ZXNwYWNlKDEpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gVHJhdmVyc2Fsc1xuICAgICAgICAgICAgY2FzZSA2MiAvKiBHcmVhdGVyVGhhbiAqLzoge1xuICAgICAgICAgICAgICAgIGFkZFRyYXZlcnNhbCh0eXBlc18xLlNlbGVjdG9yVHlwZS5DaGlsZCk7XG4gICAgICAgICAgICAgICAgc3RyaXBXaGl0ZXNwYWNlKDEpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSA2MCAvKiBMZXNzVGhhbiAqLzoge1xuICAgICAgICAgICAgICAgIGFkZFRyYXZlcnNhbCh0eXBlc18xLlNlbGVjdG9yVHlwZS5QYXJlbnQpO1xuICAgICAgICAgICAgICAgIHN0cmlwV2hpdGVzcGFjZSgxKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgMTI2IC8qIFRpbGRlICovOiB7XG4gICAgICAgICAgICAgICAgYWRkVHJhdmVyc2FsKHR5cGVzXzEuU2VsZWN0b3JUeXBlLlNpYmxpbmcpO1xuICAgICAgICAgICAgICAgIHN0cmlwV2hpdGVzcGFjZSgxKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgNDMgLyogUGx1cyAqLzoge1xuICAgICAgICAgICAgICAgIGFkZFRyYXZlcnNhbCh0eXBlc18xLlNlbGVjdG9yVHlwZS5BZGphY2VudCk7XG4gICAgICAgICAgICAgICAgc3RyaXBXaGl0ZXNwYWNlKDEpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gU3BlY2lhbCBhdHRyaWJ1dGUgc2VsZWN0b3JzOiAuY2xhc3MsICNpZFxuICAgICAgICAgICAgY2FzZSA0NiAvKiBQZXJpb2QgKi86IHtcbiAgICAgICAgICAgICAgICBhZGRTcGVjaWFsQXR0cmlidXRlKFwiY2xhc3NcIiwgdHlwZXNfMS5BdHRyaWJ1dGVBY3Rpb24uRWxlbWVudCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIDM1IC8qIEhhc2ggKi86IHtcbiAgICAgICAgICAgICAgICBhZGRTcGVjaWFsQXR0cmlidXRlKFwiaWRcIiwgdHlwZXNfMS5BdHRyaWJ1dGVBY3Rpb24uRXF1YWxzKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgOTEgLyogTGVmdFNxdWFyZUJyYWNrZXQgKi86IHtcbiAgICAgICAgICAgICAgICBzdHJpcFdoaXRlc3BhY2UoMSk7XG4gICAgICAgICAgICAgICAgLy8gRGV0ZXJtaW5lIGF0dHJpYnV0ZSBuYW1lIGFuZCBuYW1lc3BhY2VcbiAgICAgICAgICAgICAgICB2YXIgbmFtZV8xID0gdm9pZCAwO1xuICAgICAgICAgICAgICAgIHZhciBuYW1lc3BhY2UgPSBudWxsO1xuICAgICAgICAgICAgICAgIGlmIChzZWxlY3Rvci5jaGFyQ29kZUF0KHNlbGVjdG9ySW5kZXgpID09PSAxMjQgLyogUGlwZSAqLykge1xuICAgICAgICAgICAgICAgICAgICAvLyBFcXVpdmFsZW50IHRvIG5vIG5hbWVzcGFjZVxuICAgICAgICAgICAgICAgICAgICBuYW1lXzEgPSBnZXROYW1lKDEpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIGlmIChzZWxlY3Rvci5zdGFydHNXaXRoKFwiKnxcIiwgc2VsZWN0b3JJbmRleCkpIHtcbiAgICAgICAgICAgICAgICAgICAgbmFtZXNwYWNlID0gXCIqXCI7XG4gICAgICAgICAgICAgICAgICAgIG5hbWVfMSA9IGdldE5hbWUoMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBuYW1lXzEgPSBnZXROYW1lKDApO1xuICAgICAgICAgICAgICAgICAgICBpZiAoc2VsZWN0b3IuY2hhckNvZGVBdChzZWxlY3RvckluZGV4KSA9PT0gMTI0IC8qIFBpcGUgKi8gJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdG9yLmNoYXJDb2RlQXQoc2VsZWN0b3JJbmRleCArIDEpICE9PVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDYxIC8qIEVxdWFsICovKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lc3BhY2UgPSBuYW1lXzE7XG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lXzEgPSBnZXROYW1lKDEpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHN0cmlwV2hpdGVzcGFjZSgwKTtcbiAgICAgICAgICAgICAgICAvLyBEZXRlcm1pbmUgY29tcGFyaXNvbiBvcGVyYXRpb25cbiAgICAgICAgICAgICAgICB2YXIgYWN0aW9uID0gdHlwZXNfMS5BdHRyaWJ1dGVBY3Rpb24uRXhpc3RzO1xuICAgICAgICAgICAgICAgIHZhciBwb3NzaWJsZUFjdGlvbiA9IGFjdGlvblR5cGVzLmdldChzZWxlY3Rvci5jaGFyQ29kZUF0KHNlbGVjdG9ySW5kZXgpKTtcbiAgICAgICAgICAgICAgICBpZiAocG9zc2libGVBY3Rpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgYWN0aW9uID0gcG9zc2libGVBY3Rpb247XG4gICAgICAgICAgICAgICAgICAgIGlmIChzZWxlY3Rvci5jaGFyQ29kZUF0KHNlbGVjdG9ySW5kZXggKyAxKSAhPT1cbiAgICAgICAgICAgICAgICAgICAgICAgIDYxIC8qIEVxdWFsICovKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJFeHBlY3RlZCBgPWBcIik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgc3RyaXBXaGl0ZXNwYWNlKDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIGlmIChzZWxlY3Rvci5jaGFyQ29kZUF0KHNlbGVjdG9ySW5kZXgpID09PSA2MSAvKiBFcXVhbCAqLykge1xuICAgICAgICAgICAgICAgICAgICBhY3Rpb24gPSB0eXBlc18xLkF0dHJpYnV0ZUFjdGlvbi5FcXVhbHM7XG4gICAgICAgICAgICAgICAgICAgIHN0cmlwV2hpdGVzcGFjZSgxKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLy8gRGV0ZXJtaW5lIHZhbHVlXG4gICAgICAgICAgICAgICAgdmFyIHZhbHVlID0gXCJcIjtcbiAgICAgICAgICAgICAgICB2YXIgaWdub3JlQ2FzZSA9IG51bGw7XG4gICAgICAgICAgICAgICAgaWYgKGFjdGlvbiAhPT0gXCJleGlzdHNcIikge1xuICAgICAgICAgICAgICAgICAgICBpZiAoaXNRdW90ZShzZWxlY3Rvci5jaGFyQ29kZUF0KHNlbGVjdG9ySW5kZXgpKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHF1b3RlID0gc2VsZWN0b3IuY2hhckNvZGVBdChzZWxlY3RvckluZGV4KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBzZWN0aW9uRW5kID0gc2VsZWN0b3JJbmRleCArIDE7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aGlsZSAoc2VjdGlvbkVuZCA8IHNlbGVjdG9yLmxlbmd0aCAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzZWxlY3Rvci5jaGFyQ29kZUF0KHNlY3Rpb25FbmQpICE9PSBxdW90ZSB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc0VzY2FwZWQoc2VjdGlvbkVuZCkpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VjdGlvbkVuZCArPSAxO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHNlbGVjdG9yLmNoYXJDb2RlQXQoc2VjdGlvbkVuZCkgIT09IHF1b3RlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQXR0cmlidXRlIHZhbHVlIGRpZG4ndCBlbmRcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHVuZXNjYXBlQ1NTKHNlbGVjdG9yLnNsaWNlKHNlbGVjdG9ySW5kZXggKyAxLCBzZWN0aW9uRW5kKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RvckluZGV4ID0gc2VjdGlvbkVuZCArIDE7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgdmFsdWVTdGFydCA9IHNlbGVjdG9ySW5kZXg7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aGlsZSAoc2VsZWN0b3JJbmRleCA8IHNlbGVjdG9yLmxlbmd0aCAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICgoIWlzV2hpdGVzcGFjZShzZWxlY3Rvci5jaGFyQ29kZUF0KHNlbGVjdG9ySW5kZXgpKSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3Rvci5jaGFyQ29kZUF0KHNlbGVjdG9ySW5kZXgpICE9PVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOTMgLyogUmlnaHRTcXVhcmVCcmFja2V0ICovKSB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc0VzY2FwZWQoc2VsZWN0b3JJbmRleCkpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0b3JJbmRleCArPSAxO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSB1bmVzY2FwZUNTUyhzZWxlY3Rvci5zbGljZSh2YWx1ZVN0YXJ0LCBzZWxlY3RvckluZGV4KSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgc3RyaXBXaGl0ZXNwYWNlKDApO1xuICAgICAgICAgICAgICAgICAgICAvLyBTZWUgaWYgd2UgaGF2ZSBhIGZvcmNlIGlnbm9yZSBmbGFnXG4gICAgICAgICAgICAgICAgICAgIHZhciBmb3JjZUlnbm9yZSA9IHNlbGVjdG9yLmNoYXJDb2RlQXQoc2VsZWN0b3JJbmRleCkgfCAweDIwO1xuICAgICAgICAgICAgICAgICAgICAvLyBJZiB0aGUgZm9yY2VJZ25vcmUgZmxhZyBpcyBzZXQgKGVpdGhlciBgaWAgb3IgYHNgKSwgdXNlIHRoYXQgdmFsdWVcbiAgICAgICAgICAgICAgICAgICAgaWYgKGZvcmNlSWdub3JlID09PSAxMTUgLyogTG93ZXJTICovKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZ25vcmVDYXNlID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdHJpcFdoaXRlc3BhY2UoMSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoZm9yY2VJZ25vcmUgPT09IDEwNSAvKiBMb3dlckkgKi8pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlnbm9yZUNhc2UgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RyaXBXaGl0ZXNwYWNlKDEpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChzZWxlY3Rvci5jaGFyQ29kZUF0KHNlbGVjdG9ySW5kZXgpICE9PVxuICAgICAgICAgICAgICAgICAgICA5MyAvKiBSaWdodFNxdWFyZUJyYWNrZXQgKi8pIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQXR0cmlidXRlIHNlbGVjdG9yIGRpZG4ndCB0ZXJtaW5hdGVcIik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHNlbGVjdG9ySW5kZXggKz0gMTtcbiAgICAgICAgICAgICAgICB2YXIgYXR0cmlidXRlU2VsZWN0b3IgPSB7XG4gICAgICAgICAgICAgICAgICAgIHR5cGU6IHR5cGVzXzEuU2VsZWN0b3JUeXBlLkF0dHJpYnV0ZSxcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogbmFtZV8xLFxuICAgICAgICAgICAgICAgICAgICBhY3Rpb246IGFjdGlvbixcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHZhbHVlLFxuICAgICAgICAgICAgICAgICAgICBuYW1lc3BhY2U6IG5hbWVzcGFjZSxcbiAgICAgICAgICAgICAgICAgICAgaWdub3JlQ2FzZTogaWdub3JlQ2FzZSxcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIHRva2Vucy5wdXNoKGF0dHJpYnV0ZVNlbGVjdG9yKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgNTggLyogQ29sb24gKi86IHtcbiAgICAgICAgICAgICAgICBpZiAoc2VsZWN0b3IuY2hhckNvZGVBdChzZWxlY3RvckluZGV4ICsgMSkgPT09IDU4IC8qIENvbG9uICovKSB7XG4gICAgICAgICAgICAgICAgICAgIHRva2Vucy5wdXNoKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IHR5cGVzXzEuU2VsZWN0b3JUeXBlLlBzZXVkb0VsZW1lbnQsXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBnZXROYW1lKDIpLnRvTG93ZXJDYXNlKCksXG4gICAgICAgICAgICAgICAgICAgICAgICBkYXRhOiBzZWxlY3Rvci5jaGFyQ29kZUF0KHNlbGVjdG9ySW5kZXgpID09PVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQwIC8qIExlZnRQYXJlbnRoZXNpcyAqL1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gcmVhZFZhbHVlV2l0aFBhcmVudGhlc2lzKClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdmFyIG5hbWVfMiA9IGdldE5hbWUoMSkudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgICAgICAgICB2YXIgZGF0YSA9IG51bGw7XG4gICAgICAgICAgICAgICAgaWYgKHNlbGVjdG9yLmNoYXJDb2RlQXQoc2VsZWN0b3JJbmRleCkgPT09XG4gICAgICAgICAgICAgICAgICAgIDQwIC8qIExlZnRQYXJlbnRoZXNpcyAqLykge1xuICAgICAgICAgICAgICAgICAgICBpZiAodW5wYWNrUHNldWRvcy5oYXMobmFtZV8yKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzUXVvdGUoc2VsZWN0b3IuY2hhckNvZGVBdChzZWxlY3RvckluZGV4ICsgMSkpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiUHNldWRvLXNlbGVjdG9yIFwiLmNvbmNhdChuYW1lXzIsIFwiIGNhbm5vdCBiZSBxdW90ZWRcIikpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgZGF0YSA9IFtdO1xuICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0b3JJbmRleCA9IHBhcnNlU2VsZWN0b3IoZGF0YSwgc2VsZWN0b3IsIHNlbGVjdG9ySW5kZXggKyAxKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzZWxlY3Rvci5jaGFyQ29kZUF0KHNlbGVjdG9ySW5kZXgpICE9PVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQxIC8qIFJpZ2h0UGFyZW50aGVzaXMgKi8pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJNaXNzaW5nIGNsb3NpbmcgcGFyZW50aGVzaXMgaW4gOlwiLmNvbmNhdChuYW1lXzIsIFwiIChcIikuY29uY2F0KHNlbGVjdG9yLCBcIilcIikpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0b3JJbmRleCArPSAxO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGF0YSA9IHJlYWRWYWx1ZVdpdGhQYXJlbnRoZXNpcygpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHN0cmlwUXVvdGVzRnJvbVBzZXVkb3MuaGFzKG5hbWVfMikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgcXVvdCA9IGRhdGEuY2hhckNvZGVBdCgwKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocXVvdCA9PT0gZGF0YS5jaGFyQ29kZUF0KGRhdGEubGVuZ3RoIC0gMSkgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNRdW90ZShxdW90KSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhID0gZGF0YS5zbGljZSgxLCAtMSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgZGF0YSA9IHVuZXNjYXBlQ1NTKGRhdGEpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRva2Vucy5wdXNoKHsgdHlwZTogdHlwZXNfMS5TZWxlY3RvclR5cGUuUHNldWRvLCBuYW1lOiBuYW1lXzIsIGRhdGE6IGRhdGEgfSk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIDQ0IC8qIENvbW1hICovOiB7XG4gICAgICAgICAgICAgICAgZmluYWxpemVTdWJzZWxlY3RvcigpO1xuICAgICAgICAgICAgICAgIHRva2VucyA9IFtdO1xuICAgICAgICAgICAgICAgIHN0cmlwV2hpdGVzcGFjZSgxKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICBpZiAoc2VsZWN0b3Iuc3RhcnRzV2l0aChcIi8qXCIsIHNlbGVjdG9ySW5kZXgpKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBlbmRJbmRleCA9IHNlbGVjdG9yLmluZGV4T2YoXCIqL1wiLCBzZWxlY3RvckluZGV4ICsgMik7XG4gICAgICAgICAgICAgICAgICAgIGlmIChlbmRJbmRleCA8IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkNvbW1lbnQgd2FzIG5vdCB0ZXJtaW5hdGVkXCIpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdG9ySW5kZXggPSBlbmRJbmRleCArIDI7XG4gICAgICAgICAgICAgICAgICAgIC8vIFJlbW92ZSBsZWFkaW5nIHdoaXRlc3BhY2VcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRva2Vucy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0cmlwV2hpdGVzcGFjZSgwKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdmFyIG5hbWVzcGFjZSA9IG51bGw7XG4gICAgICAgICAgICAgICAgdmFyIG5hbWVfMyA9IHZvaWQgMDtcbiAgICAgICAgICAgICAgICBpZiAoZmlyc3RDaGFyID09PSA0MiAvKiBBc3RlcmlzayAqLykge1xuICAgICAgICAgICAgICAgICAgICBzZWxlY3RvckluZGV4ICs9IDE7XG4gICAgICAgICAgICAgICAgICAgIG5hbWVfMyA9IFwiKlwiO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIGlmIChmaXJzdENoYXIgPT09IDEyNCAvKiBQaXBlICovKSB7XG4gICAgICAgICAgICAgICAgICAgIG5hbWVfMyA9IFwiXCI7XG4gICAgICAgICAgICAgICAgICAgIGlmIChzZWxlY3Rvci5jaGFyQ29kZUF0KHNlbGVjdG9ySW5kZXggKyAxKSA9PT0gMTI0IC8qIFBpcGUgKi8pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGFkZFRyYXZlcnNhbCh0eXBlc18xLlNlbGVjdG9yVHlwZS5Db2x1bW5Db21iaW5hdG9yKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0cmlwV2hpdGVzcGFjZSgyKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKHJlTmFtZS50ZXN0KHNlbGVjdG9yLnNsaWNlKHNlbGVjdG9ySW5kZXgpKSkge1xuICAgICAgICAgICAgICAgICAgICBuYW1lXzMgPSBnZXROYW1lKDApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWsgbG9vcDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHNlbGVjdG9yLmNoYXJDb2RlQXQoc2VsZWN0b3JJbmRleCkgPT09IDEyNCAvKiBQaXBlICovICYmXG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdG9yLmNoYXJDb2RlQXQoc2VsZWN0b3JJbmRleCArIDEpICE9PSAxMjQgLyogUGlwZSAqLykge1xuICAgICAgICAgICAgICAgICAgICBuYW1lc3BhY2UgPSBuYW1lXzM7XG4gICAgICAgICAgICAgICAgICAgIGlmIChzZWxlY3Rvci5jaGFyQ29kZUF0KHNlbGVjdG9ySW5kZXggKyAxKSA9PT1cbiAgICAgICAgICAgICAgICAgICAgICAgIDQyIC8qIEFzdGVyaXNrICovKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lXzMgPSBcIipcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdG9ySW5kZXggKz0gMjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWVfMyA9IGdldE5hbWUoMSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdG9rZW5zLnB1c2gobmFtZV8zID09PSBcIipcIlxuICAgICAgICAgICAgICAgICAgICA/IHsgdHlwZTogdHlwZXNfMS5TZWxlY3RvclR5cGUuVW5pdmVyc2FsLCBuYW1lc3BhY2U6IG5hbWVzcGFjZSB9XG4gICAgICAgICAgICAgICAgICAgIDogeyB0eXBlOiB0eXBlc18xLlNlbGVjdG9yVHlwZS5UYWcsIG5hbWU6IG5hbWVfMywgbmFtZXNwYWNlOiBuYW1lc3BhY2UgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgZmluYWxpemVTdWJzZWxlY3RvcigpO1xuICAgIHJldHVybiBzZWxlY3RvckluZGV4O1xufVxuIiwgIlwidXNlIHN0cmljdFwiO1xudmFyIF9fc3ByZWFkQXJyYXkgPSAodGhpcyAmJiB0aGlzLl9fc3ByZWFkQXJyYXkpIHx8IGZ1bmN0aW9uICh0bywgZnJvbSwgcGFjaykge1xuICAgIGlmIChwYWNrIHx8IGFyZ3VtZW50cy5sZW5ndGggPT09IDIpIGZvciAodmFyIGkgPSAwLCBsID0gZnJvbS5sZW5ndGgsIGFyOyBpIDwgbDsgaSsrKSB7XG4gICAgICAgIGlmIChhciB8fCAhKGkgaW4gZnJvbSkpIHtcbiAgICAgICAgICAgIGlmICghYXIpIGFyID0gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoZnJvbSwgMCwgaSk7XG4gICAgICAgICAgICBhcltpXSA9IGZyb21baV07XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRvLmNvbmNhdChhciB8fCBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChmcm9tKSk7XG59O1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5zdHJpbmdpZnkgPSB2b2lkIDA7XG52YXIgdHlwZXNfMSA9IHJlcXVpcmUoXCIuL3R5cGVzXCIpO1xudmFyIGF0dHJpYlZhbENoYXJzID0gW1wiXFxcXFwiLCAnXCInXTtcbnZhciBwc2V1ZG9WYWxDaGFycyA9IF9fc3ByZWFkQXJyYXkoX19zcHJlYWRBcnJheShbXSwgYXR0cmliVmFsQ2hhcnMsIHRydWUpLCBbXCIoXCIsIFwiKVwiXSwgZmFsc2UpO1xudmFyIGNoYXJzVG9Fc2NhcGVJbkF0dHJpYnV0ZVZhbHVlID0gbmV3IFNldChhdHRyaWJWYWxDaGFycy5tYXAoZnVuY3Rpb24gKGMpIHsgcmV0dXJuIGMuY2hhckNvZGVBdCgwKTsgfSkpO1xudmFyIGNoYXJzVG9Fc2NhcGVJblBzZXVkb1ZhbHVlID0gbmV3IFNldChwc2V1ZG9WYWxDaGFycy5tYXAoZnVuY3Rpb24gKGMpIHsgcmV0dXJuIGMuY2hhckNvZGVBdCgwKTsgfSkpO1xudmFyIGNoYXJzVG9Fc2NhcGVJbk5hbWUgPSBuZXcgU2V0KF9fc3ByZWFkQXJyYXkoX19zcHJlYWRBcnJheShbXSwgcHNldWRvVmFsQ2hhcnMsIHRydWUpLCBbXG4gICAgXCJ+XCIsXG4gICAgXCJeXCIsXG4gICAgXCIkXCIsXG4gICAgXCIqXCIsXG4gICAgXCIrXCIsXG4gICAgXCIhXCIsXG4gICAgXCJ8XCIsXG4gICAgXCI6XCIsXG4gICAgXCJbXCIsXG4gICAgXCJdXCIsXG4gICAgXCIgXCIsXG4gICAgXCIuXCIsXG5dLCBmYWxzZSkubWFwKGZ1bmN0aW9uIChjKSB7IHJldHVybiBjLmNoYXJDb2RlQXQoMCk7IH0pKTtcbi8qKlxuICogVHVybnMgYHNlbGVjdG9yYCBiYWNrIGludG8gYSBzdHJpbmcuXG4gKlxuICogQHBhcmFtIHNlbGVjdG9yIFNlbGVjdG9yIHRvIHN0cmluZ2lmeS5cbiAqL1xuZnVuY3Rpb24gc3RyaW5naWZ5KHNlbGVjdG9yKSB7XG4gICAgcmV0dXJuIHNlbGVjdG9yXG4gICAgICAgIC5tYXAoZnVuY3Rpb24gKHRva2VuKSB7IHJldHVybiB0b2tlbi5tYXAoc3RyaW5naWZ5VG9rZW4pLmpvaW4oXCJcIik7IH0pXG4gICAgICAgIC5qb2luKFwiLCBcIik7XG59XG5leHBvcnRzLnN0cmluZ2lmeSA9IHN0cmluZ2lmeTtcbmZ1bmN0aW9uIHN0cmluZ2lmeVRva2VuKHRva2VuLCBpbmRleCwgYXJyKSB7XG4gICAgc3dpdGNoICh0b2tlbi50eXBlKSB7XG4gICAgICAgIC8vIFNpbXBsZSB0eXBlc1xuICAgICAgICBjYXNlIHR5cGVzXzEuU2VsZWN0b3JUeXBlLkNoaWxkOlxuICAgICAgICAgICAgcmV0dXJuIGluZGV4ID09PSAwID8gXCI+IFwiIDogXCIgPiBcIjtcbiAgICAgICAgY2FzZSB0eXBlc18xLlNlbGVjdG9yVHlwZS5QYXJlbnQ6XG4gICAgICAgICAgICByZXR1cm4gaW5kZXggPT09IDAgPyBcIjwgXCIgOiBcIiA8IFwiO1xuICAgICAgICBjYXNlIHR5cGVzXzEuU2VsZWN0b3JUeXBlLlNpYmxpbmc6XG4gICAgICAgICAgICByZXR1cm4gaW5kZXggPT09IDAgPyBcIn4gXCIgOiBcIiB+IFwiO1xuICAgICAgICBjYXNlIHR5cGVzXzEuU2VsZWN0b3JUeXBlLkFkamFjZW50OlxuICAgICAgICAgICAgcmV0dXJuIGluZGV4ID09PSAwID8gXCIrIFwiIDogXCIgKyBcIjtcbiAgICAgICAgY2FzZSB0eXBlc18xLlNlbGVjdG9yVHlwZS5EZXNjZW5kYW50OlxuICAgICAgICAgICAgcmV0dXJuIFwiIFwiO1xuICAgICAgICBjYXNlIHR5cGVzXzEuU2VsZWN0b3JUeXBlLkNvbHVtbkNvbWJpbmF0b3I6XG4gICAgICAgICAgICByZXR1cm4gaW5kZXggPT09IDAgPyBcInx8IFwiIDogXCIgfHwgXCI7XG4gICAgICAgIGNhc2UgdHlwZXNfMS5TZWxlY3RvclR5cGUuVW5pdmVyc2FsOlxuICAgICAgICAgICAgLy8gUmV0dXJuIGFuIGVtcHR5IHN0cmluZyBpZiB0aGUgc2VsZWN0b3IgaXNuJ3QgbmVlZGVkLlxuICAgICAgICAgICAgcmV0dXJuIHRva2VuLm5hbWVzcGFjZSA9PT0gXCIqXCIgJiZcbiAgICAgICAgICAgICAgICBpbmRleCArIDEgPCBhcnIubGVuZ3RoICYmXG4gICAgICAgICAgICAgICAgXCJuYW1lXCIgaW4gYXJyW2luZGV4ICsgMV1cbiAgICAgICAgICAgICAgICA/IFwiXCJcbiAgICAgICAgICAgICAgICA6IFwiXCIuY29uY2F0KGdldE5hbWVzcGFjZSh0b2tlbi5uYW1lc3BhY2UpLCBcIipcIik7XG4gICAgICAgIGNhc2UgdHlwZXNfMS5TZWxlY3RvclR5cGUuVGFnOlxuICAgICAgICAgICAgcmV0dXJuIGdldE5hbWVzcGFjZWROYW1lKHRva2VuKTtcbiAgICAgICAgY2FzZSB0eXBlc18xLlNlbGVjdG9yVHlwZS5Qc2V1ZG9FbGVtZW50OlxuICAgICAgICAgICAgcmV0dXJuIFwiOjpcIi5jb25jYXQoZXNjYXBlTmFtZSh0b2tlbi5uYW1lLCBjaGFyc1RvRXNjYXBlSW5OYW1lKSkuY29uY2F0KHRva2VuLmRhdGEgPT09IG51bGxcbiAgICAgICAgICAgICAgICA/IFwiXCJcbiAgICAgICAgICAgICAgICA6IFwiKFwiLmNvbmNhdChlc2NhcGVOYW1lKHRva2VuLmRhdGEsIGNoYXJzVG9Fc2NhcGVJblBzZXVkb1ZhbHVlKSwgXCIpXCIpKTtcbiAgICAgICAgY2FzZSB0eXBlc18xLlNlbGVjdG9yVHlwZS5Qc2V1ZG86XG4gICAgICAgICAgICByZXR1cm4gXCI6XCIuY29uY2F0KGVzY2FwZU5hbWUodG9rZW4ubmFtZSwgY2hhcnNUb0VzY2FwZUluTmFtZSkpLmNvbmNhdCh0b2tlbi5kYXRhID09PSBudWxsXG4gICAgICAgICAgICAgICAgPyBcIlwiXG4gICAgICAgICAgICAgICAgOiBcIihcIi5jb25jYXQodHlwZW9mIHRva2VuLmRhdGEgPT09IFwic3RyaW5nXCJcbiAgICAgICAgICAgICAgICAgICAgPyBlc2NhcGVOYW1lKHRva2VuLmRhdGEsIGNoYXJzVG9Fc2NhcGVJblBzZXVkb1ZhbHVlKVxuICAgICAgICAgICAgICAgICAgICA6IHN0cmluZ2lmeSh0b2tlbi5kYXRhKSwgXCIpXCIpKTtcbiAgICAgICAgY2FzZSB0eXBlc18xLlNlbGVjdG9yVHlwZS5BdHRyaWJ1dGU6IHtcbiAgICAgICAgICAgIGlmICh0b2tlbi5uYW1lID09PSBcImlkXCIgJiZcbiAgICAgICAgICAgICAgICB0b2tlbi5hY3Rpb24gPT09IHR5cGVzXzEuQXR0cmlidXRlQWN0aW9uLkVxdWFscyAmJlxuICAgICAgICAgICAgICAgIHRva2VuLmlnbm9yZUNhc2UgPT09IFwicXVpcmtzXCIgJiZcbiAgICAgICAgICAgICAgICAhdG9rZW4ubmFtZXNwYWNlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFwiI1wiLmNvbmNhdChlc2NhcGVOYW1lKHRva2VuLnZhbHVlLCBjaGFyc1RvRXNjYXBlSW5OYW1lKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodG9rZW4ubmFtZSA9PT0gXCJjbGFzc1wiICYmXG4gICAgICAgICAgICAgICAgdG9rZW4uYWN0aW9uID09PSB0eXBlc18xLkF0dHJpYnV0ZUFjdGlvbi5FbGVtZW50ICYmXG4gICAgICAgICAgICAgICAgdG9rZW4uaWdub3JlQ2FzZSA9PT0gXCJxdWlya3NcIiAmJlxuICAgICAgICAgICAgICAgICF0b2tlbi5uYW1lc3BhY2UpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gXCIuXCIuY29uY2F0KGVzY2FwZU5hbWUodG9rZW4udmFsdWUsIGNoYXJzVG9Fc2NhcGVJbk5hbWUpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHZhciBuYW1lXzEgPSBnZXROYW1lc3BhY2VkTmFtZSh0b2tlbik7XG4gICAgICAgICAgICBpZiAodG9rZW4uYWN0aW9uID09PSB0eXBlc18xLkF0dHJpYnV0ZUFjdGlvbi5FeGlzdHMpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gXCJbXCIuY29uY2F0KG5hbWVfMSwgXCJdXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIFwiW1wiLmNvbmNhdChuYW1lXzEpLmNvbmNhdChnZXRBY3Rpb25WYWx1ZSh0b2tlbi5hY3Rpb24pLCBcIj1cXFwiXCIpLmNvbmNhdChlc2NhcGVOYW1lKHRva2VuLnZhbHVlLCBjaGFyc1RvRXNjYXBlSW5BdHRyaWJ1dGVWYWx1ZSksIFwiXFxcIlwiKS5jb25jYXQodG9rZW4uaWdub3JlQ2FzZSA9PT0gbnVsbCA/IFwiXCIgOiB0b2tlbi5pZ25vcmVDYXNlID8gXCIgaVwiIDogXCIgc1wiLCBcIl1cIik7XG4gICAgICAgIH1cbiAgICB9XG59XG5mdW5jdGlvbiBnZXRBY3Rpb25WYWx1ZShhY3Rpb24pIHtcbiAgICBzd2l0Y2ggKGFjdGlvbikge1xuICAgICAgICBjYXNlIHR5cGVzXzEuQXR0cmlidXRlQWN0aW9uLkVxdWFsczpcbiAgICAgICAgICAgIHJldHVybiBcIlwiO1xuICAgICAgICBjYXNlIHR5cGVzXzEuQXR0cmlidXRlQWN0aW9uLkVsZW1lbnQ6XG4gICAgICAgICAgICByZXR1cm4gXCJ+XCI7XG4gICAgICAgIGNhc2UgdHlwZXNfMS5BdHRyaWJ1dGVBY3Rpb24uU3RhcnQ6XG4gICAgICAgICAgICByZXR1cm4gXCJeXCI7XG4gICAgICAgIGNhc2UgdHlwZXNfMS5BdHRyaWJ1dGVBY3Rpb24uRW5kOlxuICAgICAgICAgICAgcmV0dXJuIFwiJFwiO1xuICAgICAgICBjYXNlIHR5cGVzXzEuQXR0cmlidXRlQWN0aW9uLkFueTpcbiAgICAgICAgICAgIHJldHVybiBcIipcIjtcbiAgICAgICAgY2FzZSB0eXBlc18xLkF0dHJpYnV0ZUFjdGlvbi5Ob3Q6XG4gICAgICAgICAgICByZXR1cm4gXCIhXCI7XG4gICAgICAgIGNhc2UgdHlwZXNfMS5BdHRyaWJ1dGVBY3Rpb24uSHlwaGVuOlxuICAgICAgICAgICAgcmV0dXJuIFwifFwiO1xuICAgICAgICBjYXNlIHR5cGVzXzEuQXR0cmlidXRlQWN0aW9uLkV4aXN0czpcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIlNob3VsZG4ndCBiZSBoZXJlXCIpO1xuICAgIH1cbn1cbmZ1bmN0aW9uIGdldE5hbWVzcGFjZWROYW1lKHRva2VuKSB7XG4gICAgcmV0dXJuIFwiXCIuY29uY2F0KGdldE5hbWVzcGFjZSh0b2tlbi5uYW1lc3BhY2UpKS5jb25jYXQoZXNjYXBlTmFtZSh0b2tlbi5uYW1lLCBjaGFyc1RvRXNjYXBlSW5OYW1lKSk7XG59XG5mdW5jdGlvbiBnZXROYW1lc3BhY2UobmFtZXNwYWNlKSB7XG4gICAgcmV0dXJuIG5hbWVzcGFjZSAhPT0gbnVsbFxuICAgICAgICA/IFwiXCIuY29uY2F0KG5hbWVzcGFjZSA9PT0gXCIqXCJcbiAgICAgICAgICAgID8gXCIqXCJcbiAgICAgICAgICAgIDogZXNjYXBlTmFtZShuYW1lc3BhY2UsIGNoYXJzVG9Fc2NhcGVJbk5hbWUpLCBcInxcIilcbiAgICAgICAgOiBcIlwiO1xufVxuZnVuY3Rpb24gZXNjYXBlTmFtZShzdHIsIGNoYXJzVG9Fc2NhcGUpIHtcbiAgICB2YXIgbGFzdElkeCA9IDA7XG4gICAgdmFyIHJldCA9IFwiXCI7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzdHIubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgaWYgKGNoYXJzVG9Fc2NhcGUuaGFzKHN0ci5jaGFyQ29kZUF0KGkpKSkge1xuICAgICAgICAgICAgcmV0ICs9IFwiXCIuY29uY2F0KHN0ci5zbGljZShsYXN0SWR4LCBpKSwgXCJcXFxcXCIpLmNvbmNhdChzdHIuY2hhckF0KGkpKTtcbiAgICAgICAgICAgIGxhc3RJZHggPSBpICsgMTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmV0Lmxlbmd0aCA+IDAgPyByZXQgKyBzdHIuc2xpY2UobGFzdElkeCkgOiBzdHI7XG59XG4iLCAiXCJ1c2Ugc3RyaWN0XCI7XG52YXIgX19jcmVhdGVCaW5kaW5nID0gKHRoaXMgJiYgdGhpcy5fX2NyZWF0ZUJpbmRpbmcpIHx8IChPYmplY3QuY3JlYXRlID8gKGZ1bmN0aW9uKG8sIG0sIGssIGsyKSB7XG4gICAgaWYgKGsyID09PSB1bmRlZmluZWQpIGsyID0gaztcbiAgICB2YXIgZGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobSwgayk7XG4gICAgaWYgKCFkZXNjIHx8IChcImdldFwiIGluIGRlc2MgPyAhbS5fX2VzTW9kdWxlIDogZGVzYy53cml0YWJsZSB8fCBkZXNjLmNvbmZpZ3VyYWJsZSkpIHtcbiAgICAgIGRlc2MgPSB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7IHJldHVybiBtW2tdOyB9IH07XG4gICAgfVxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvLCBrMiwgZGVzYyk7XG59KSA6IChmdW5jdGlvbihvLCBtLCBrLCBrMikge1xuICAgIGlmIChrMiA9PT0gdW5kZWZpbmVkKSBrMiA9IGs7XG4gICAgb1trMl0gPSBtW2tdO1xufSkpO1xudmFyIF9fZXhwb3J0U3RhciA9ICh0aGlzICYmIHRoaXMuX19leHBvcnRTdGFyKSB8fCBmdW5jdGlvbihtLCBleHBvcnRzKSB7XG4gICAgZm9yICh2YXIgcCBpbiBtKSBpZiAocCAhPT0gXCJkZWZhdWx0XCIgJiYgIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChleHBvcnRzLCBwKSkgX19jcmVhdGVCaW5kaW5nKGV4cG9ydHMsIG0sIHApO1xufTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuc3RyaW5naWZ5ID0gZXhwb3J0cy5wYXJzZSA9IGV4cG9ydHMuaXNUcmF2ZXJzYWwgPSB2b2lkIDA7XG5fX2V4cG9ydFN0YXIocmVxdWlyZShcIi4vdHlwZXNcIiksIGV4cG9ydHMpO1xudmFyIHBhcnNlXzEgPSByZXF1aXJlKFwiLi9wYXJzZVwiKTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcImlzVHJhdmVyc2FsXCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiBwYXJzZV8xLmlzVHJhdmVyc2FsOyB9IH0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwicGFyc2VcIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHBhcnNlXzEucGFyc2U7IH0gfSk7XG52YXIgc3RyaW5naWZ5XzEgPSByZXF1aXJlKFwiLi9zdHJpbmdpZnlcIik7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJzdHJpbmdpZnlcIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHN0cmluZ2lmeV8xLnN0cmluZ2lmeTsgfSB9KTtcbiIsICJtb2R1bGUuZXhwb3J0cyA9IHtcblx0dHJ1ZUZ1bmM6IGZ1bmN0aW9uIHRydWVGdW5jKCl7XG5cdFx0cmV0dXJuIHRydWU7XG5cdH0sXG5cdGZhbHNlRnVuYzogZnVuY3Rpb24gZmFsc2VGdW5jKCl7XG5cdFx0cmV0dXJuIGZhbHNlO1xuXHR9XG59OyIsIG51bGwsIG51bGwsIG51bGwsIG51bGwsIG51bGwsIG51bGwsIG51bGwsIG51bGwsIG51bGwsIG51bGwsIG51bGwsIG51bGwsIG51bGwsIG51bGwsIG51bGwsIG51bGwsICIvKipcbiAqIE1ldGhvZHMgZm9yIHRyYXZlcnNpbmcgdGhlIERPTSBzdHJ1Y3R1cmUuXG4gKlxuICogQG1vZHVsZSBjaGVlcmlvL3RyYXZlcnNpbmdcbiAqL1xuXG5pbXBvcnQge1xuICBpc1RhZyxcbiAgdHlwZSBBbnlOb2RlLFxuICB0eXBlIEVsZW1lbnQsXG4gIGhhc0NoaWxkcmVuLFxuICBpc0RvY3VtZW50LFxuICB0eXBlIERvY3VtZW50LFxufSBmcm9tICdkb21oYW5kbGVyJztcbmltcG9ydCB0eXBlIHsgQ2hlZXJpbyB9IGZyb20gJy4uL2NoZWVyaW8uanMnO1xuaW1wb3J0ICogYXMgc2VsZWN0IGZyb20gJ2NoZWVyaW8tc2VsZWN0JztcbmltcG9ydCB7IGRvbUVhY2gsIGlzQ2hlZXJpbyB9IGZyb20gJy4uL3V0aWxzLmpzJztcbmltcG9ydCB7IGNvbnRhaW5zIH0gZnJvbSAnLi4vc3RhdGljLmpzJztcbmltcG9ydCB7XG4gIGdldENoaWxkcmVuLFxuICBnZXRTaWJsaW5ncyxcbiAgbmV4dEVsZW1lbnRTaWJsaW5nLFxuICBwcmV2RWxlbWVudFNpYmxpbmcsXG4gIHVuaXF1ZVNvcnQsXG59IGZyb20gJ2RvbXV0aWxzJztcbmltcG9ydCB0eXBlIHsgRmlsdGVyRnVuY3Rpb24sIEFjY2VwdGVkRmlsdGVycyB9IGZyb20gJy4uL3R5cGVzLmpzJztcbmNvbnN0IHJlU2libGluZ1NlbGVjdG9yID0gL15cXHMqWyt+XS87XG5cbi8qKlxuICogR2V0IHRoZSBkZXNjZW5kYW50cyBvZiBlYWNoIGVsZW1lbnQgaW4gdGhlIGN1cnJlbnQgc2V0IG9mIG1hdGNoZWQgZWxlbWVudHMsXG4gKiBmaWx0ZXJlZCBieSBhIHNlbGVjdG9yLCBqUXVlcnkgb2JqZWN0LCBvciBlbGVtZW50LlxuICpcbiAqIEBjYXRlZ29yeSBUcmF2ZXJzaW5nXG4gKiBAZXhhbXBsZVxuICpcbiAqIGBgYGpzXG4gKiAkKCcjZnJ1aXRzJykuZmluZCgnbGknKS5sZW5ndGg7XG4gKiAvLz0+IDNcbiAqICQoJyNmcnVpdHMnKS5maW5kKCQoJy5hcHBsZScpKS5sZW5ndGg7XG4gKiAvLz0+IDFcbiAqIGBgYFxuICpcbiAqIEBwYXJhbSBzZWxlY3Rvck9ySGF5c3RhY2sgLSBFbGVtZW50IHRvIGxvb2sgZm9yLlxuICogQHJldHVybnMgVGhlIGZvdW5kIGVsZW1lbnRzLlxuICogQHNlZSB7QGxpbmsgaHR0cHM6Ly9hcGkuanF1ZXJ5LmNvbS9maW5kL31cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZpbmQ8VCBleHRlbmRzIEFueU5vZGU+KFxuICB0aGlzOiBDaGVlcmlvPFQ+LFxuICBzZWxlY3Rvck9ySGF5c3RhY2s/OiBzdHJpbmcgfCBDaGVlcmlvPEVsZW1lbnQ+IHwgRWxlbWVudCxcbik6IENoZWVyaW88RWxlbWVudD4ge1xuICBpZiAoIXNlbGVjdG9yT3JIYXlzdGFjaykge1xuICAgIHJldHVybiB0aGlzLl9tYWtlKFtdKTtcbiAgfVxuXG4gIGlmICh0eXBlb2Ygc2VsZWN0b3JPckhheXN0YWNrICE9PSAnc3RyaW5nJykge1xuICAgIGNvbnN0IGhheXN0YWNrID0gaXNDaGVlcmlvKHNlbGVjdG9yT3JIYXlzdGFjaylcbiAgICAgID8gc2VsZWN0b3JPckhheXN0YWNrLnRvQXJyYXkoKVxuICAgICAgOiBbc2VsZWN0b3JPckhheXN0YWNrXTtcblxuICAgIGNvbnN0IGNvbnRleHQgPSB0aGlzLnRvQXJyYXkoKTtcblxuICAgIHJldHVybiB0aGlzLl9tYWtlKFxuICAgICAgaGF5c3RhY2suZmlsdGVyKChlbGVtKSA9PiBjb250ZXh0LnNvbWUoKG5vZGUpID0+IGNvbnRhaW5zKG5vZGUsIGVsZW0pKSksXG4gICAgKTtcbiAgfVxuXG4gIHJldHVybiB0aGlzLl9maW5kQnlTZWxlY3RvcihzZWxlY3Rvck9ySGF5c3RhY2ssIE51bWJlci5QT1NJVElWRV9JTkZJTklUWSk7XG59XG5cbi8qKlxuICogRmluZCBlbGVtZW50cyBieSBhIHNwZWNpZmljIHNlbGVjdG9yLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAY2F0ZWdvcnkgVHJhdmVyc2luZ1xuICogQHBhcmFtIHNlbGVjdG9yIC0gU2VsZWN0b3IgdG8gZmlsdGVyIGJ5LlxuICogQHBhcmFtIGxpbWl0IC0gTWF4aW11bSBudW1iZXIgb2YgZWxlbWVudHMgdG8gbWF0Y2guXG4gKiBAcmV0dXJucyBUaGUgZm91bmQgZWxlbWVudHMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBfZmluZEJ5U2VsZWN0b3I8VCBleHRlbmRzIEFueU5vZGU+KFxuICB0aGlzOiBDaGVlcmlvPFQ+LFxuICBzZWxlY3Rvcjogc3RyaW5nLFxuICBsaW1pdDogbnVtYmVyLFxuKTogQ2hlZXJpbzxFbGVtZW50PiB7XG4gIGNvbnN0IGNvbnRleHQgPSB0aGlzLnRvQXJyYXkoKTtcblxuICBjb25zdCBlbGVtcyA9IHJlU2libGluZ1NlbGVjdG9yLnRlc3Qoc2VsZWN0b3IpXG4gICAgPyBjb250ZXh0XG4gICAgOiB0aGlzLmNoaWxkcmVuKCkudG9BcnJheSgpO1xuXG4gIGNvbnN0IG9wdGlvbnMgPSB7XG4gICAgY29udGV4dCxcbiAgICByb290OiB0aGlzLl9yb290Py5bMF0sXG5cbiAgICAvLyBQYXNzIG9wdGlvbnMgdGhhdCBhcmUgcmVjb2duaXplZCBieSBgY2hlZXJpby1zZWxlY3RgXG4gICAgeG1sTW9kZTogdGhpcy5vcHRpb25zLnhtbE1vZGUsXG4gICAgbG93ZXJDYXNlVGFnczogdGhpcy5vcHRpb25zLmxvd2VyQ2FzZVRhZ3MsXG4gICAgbG93ZXJDYXNlQXR0cmlidXRlTmFtZXM6IHRoaXMub3B0aW9ucy5sb3dlckNhc2VBdHRyaWJ1dGVOYW1lcyxcbiAgICBwc2V1ZG9zOiB0aGlzLm9wdGlvbnMucHNldWRvcyxcbiAgICBxdWlya3NNb2RlOiB0aGlzLm9wdGlvbnMucXVpcmtzTW9kZSxcbiAgfTtcblxuICByZXR1cm4gdGhpcy5fbWFrZShzZWxlY3Quc2VsZWN0KHNlbGVjdG9yLCBlbGVtcywgb3B0aW9ucywgbGltaXQpKTtcbn1cblxuLyoqXG4gKiBDcmVhdGVzIGEgbWF0Y2hlciwgdXNpbmcgYSBwYXJ0aWN1bGFyIG1hcHBpbmcgZnVuY3Rpb24uIE1hdGNoZXJzIHByb3ZpZGUgYVxuICogZnVuY3Rpb24gdGhhdCBmaW5kcyBlbGVtZW50cyB1c2luZyBhIGdlbmVyYXRpbmcgZnVuY3Rpb24sIHN1cHBvcnRpbmdcbiAqIGZpbHRlcmluZy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIG1hdGNoTWFwIC0gTWFwcGluZyBmdW5jdGlvbi5cbiAqIEByZXR1cm5zIC0gRnVuY3Rpb24gZm9yIHdyYXBwaW5nIGdlbmVyYXRpbmcgZnVuY3Rpb25zLlxuICovXG5mdW5jdGlvbiBfZ2V0TWF0Y2hlcjxQPihcbiAgbWF0Y2hNYXA6IChmbjogKGVsZW06IEFueU5vZGUpID0+IFAsIGVsZW1zOiBDaGVlcmlvPEFueU5vZGU+KSA9PiBFbGVtZW50W10sXG4pIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIChcbiAgICBmbjogKGVsZW06IEFueU5vZGUpID0+IFAsXG4gICAgLi4ucG9zdEZuczogKChlbGVtczogRWxlbWVudFtdKSA9PiBFbGVtZW50W10pW11cbiAgKSB7XG4gICAgcmV0dXJuIGZ1bmN0aW9uIDxUIGV4dGVuZHMgQW55Tm9kZT4oXG4gICAgICB0aGlzOiBDaGVlcmlvPFQ+LFxuICAgICAgc2VsZWN0b3I/OiBBY2NlcHRlZEZpbHRlcnM8RWxlbWVudD4sXG4gICAgKTogQ2hlZXJpbzxFbGVtZW50PiB7XG4gICAgICBsZXQgbWF0Y2hlZDogRWxlbWVudFtdID0gbWF0Y2hNYXAoZm4sIHRoaXMpO1xuXG4gICAgICBpZiAoc2VsZWN0b3IpIHtcbiAgICAgICAgbWF0Y2hlZCA9IGZpbHRlckFycmF5KFxuICAgICAgICAgIG1hdGNoZWQsXG4gICAgICAgICAgc2VsZWN0b3IsXG4gICAgICAgICAgdGhpcy5vcHRpb25zLnhtbE1vZGUsXG4gICAgICAgICAgdGhpcy5fcm9vdD8uWzBdLFxuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gdGhpcy5fbWFrZShcbiAgICAgICAgLy8gUG9zdCBwcm9jZXNzaW5nIGlzIG9ubHkgbmVjZXNzYXJ5IGlmIHRoZXJlIGlzIG1vcmUgdGhhbiBvbmUgZWxlbWVudC5cbiAgICAgICAgdGhpcy5sZW5ndGggPiAxICYmIG1hdGNoZWQubGVuZ3RoID4gMVxuICAgICAgICAgID8gcG9zdEZucy5yZWR1Y2UoKGVsZW1zLCBmbikgPT4gZm4oZWxlbXMpLCBtYXRjaGVkKVxuICAgICAgICAgIDogbWF0Y2hlZCxcbiAgICAgICk7XG4gICAgfTtcbiAgfTtcbn1cblxuLyoqIE1hdGNoZXIgdGhhdCBhZGRzIG11bHRpcGxlIGVsZW1lbnRzIGZvciBlYWNoIGVudHJ5IGluIHRoZSBpbnB1dC4gKi9cbmNvbnN0IF9tYXRjaGVyID0gX2dldE1hdGNoZXIoKGZuOiAoZWxlbTogQW55Tm9kZSkgPT4gRWxlbWVudFtdLCBlbGVtcykgPT4ge1xuICBsZXQgcmV0OiBFbGVtZW50W10gPSBbXTtcblxuICBmb3IgKGxldCBpID0gMDsgaSA8IGVsZW1zLmxlbmd0aDsgaSsrKSB7XG4gICAgY29uc3QgdmFsdWUgPSBmbihlbGVtc1tpXSk7XG4gICAgaWYgKHZhbHVlLmxlbmd0aCA+IDApIHJldCA9IHJldC5jb25jYXQodmFsdWUpO1xuICB9XG5cbiAgcmV0dXJuIHJldDtcbn0pO1xuXG4vKiogTWF0Y2hlciB0aGF0IGFkZHMgYXQgbW9zdCBvbmUgZWxlbWVudCBmb3IgZWFjaCBlbnRyeSBpbiB0aGUgaW5wdXQuICovXG5jb25zdCBfc2luZ2xlTWF0Y2hlciA9IF9nZXRNYXRjaGVyKFxuICAoZm46IChlbGVtOiBBbnlOb2RlKSA9PiBFbGVtZW50IHwgbnVsbCwgZWxlbXMpID0+IHtcbiAgICBjb25zdCByZXQ6IEVsZW1lbnRbXSA9IFtdO1xuXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBlbGVtcy5sZW5ndGg7IGkrKykge1xuICAgICAgY29uc3QgdmFsdWUgPSBmbihlbGVtc1tpXSk7XG4gICAgICBpZiAodmFsdWUgIT09IG51bGwpIHtcbiAgICAgICAgcmV0LnB1c2godmFsdWUpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmV0O1xuICB9LFxuKTtcblxuLyoqXG4gKiBNYXRjaGVyIHRoYXQgc3VwcG9ydHMgdHJhdmVyc2luZyB1bnRpbCBhIGNvbmRpdGlvbiBpcyBtZXQuXG4gKlxuICogQHBhcmFtIG5leHRFbGVtIC0gRnVuY3Rpb24gdGhhdCByZXR1cm5zIHRoZSBuZXh0IGVsZW1lbnQuXG4gKiBAcGFyYW0gcG9zdEZucyAtIFBvc3QgcHJvY2Vzc2luZyBmdW5jdGlvbnMuXG4gKiBAcmV0dXJucyBBIGZ1bmN0aW9uIHVzYWJsZSBmb3IgYCpVbnRpbGAgbWV0aG9kcy5cbiAqL1xuZnVuY3Rpb24gX21hdGNoVW50aWwoXG4gIG5leHRFbGVtOiAoZWxlbTogQW55Tm9kZSkgPT4gRWxlbWVudCB8IG51bGwsXG4gIC4uLnBvc3RGbnM6ICgoZWxlbXM6IEVsZW1lbnRbXSkgPT4gRWxlbWVudFtdKVtdXG4pIHtcbiAgLy8gV2UgdXNlIGEgdmFyaWFibGUgaGVyZSB0aGF0IGlzIHVzZWQgZnJvbSB3aXRoaW4gdGhlIG1hdGNoZXIuXG4gIGxldCBtYXRjaGVzOiAoKGVsOiBFbGVtZW50LCBpOiBudW1iZXIpID0+IGJvb2xlYW4pIHwgbnVsbCA9IG51bGw7XG5cbiAgY29uc3QgaW5uZXJNYXRjaGVyID0gX2dldE1hdGNoZXIoXG4gICAgKG5leHRFbGVtOiAoZWxlbTogQW55Tm9kZSkgPT4gRWxlbWVudCB8IG51bGwsIGVsZW1zKSA9PiB7XG4gICAgICBjb25zdCBtYXRjaGVkOiBFbGVtZW50W10gPSBbXTtcblxuICAgICAgZG9tRWFjaChlbGVtcywgKGVsZW0pID0+IHtcbiAgICAgICAgZm9yIChsZXQgbmV4dDsgKG5leHQgPSBuZXh0RWxlbShlbGVtKSk7IGVsZW0gPSBuZXh0KSB7XG4gICAgICAgICAgLy8gRklYTUU6IGBtYXRjaGVkYCBtaWdodCBjb250YWluIGR1cGxpY2F0ZXMgaGVyZSBhbmQgdGhlIGluZGV4IGlzIHRvbyBsYXJnZS5cbiAgICAgICAgICBpZiAobWF0Y2hlcz8uKG5leHQsIG1hdGNoZWQubGVuZ3RoKSkgYnJlYWs7XG4gICAgICAgICAgbWF0Y2hlZC5wdXNoKG5leHQpO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgICAgcmV0dXJuIG1hdGNoZWQ7XG4gICAgfSxcbiAgKShuZXh0RWxlbSwgLi4ucG9zdEZucyk7XG5cbiAgcmV0dXJuIGZ1bmN0aW9uIDxUIGV4dGVuZHMgQW55Tm9kZT4oXG4gICAgdGhpczogQ2hlZXJpbzxUPixcbiAgICBzZWxlY3Rvcj86IEFjY2VwdGVkRmlsdGVyczxFbGVtZW50PiB8IG51bGwsXG4gICAgZmlsdGVyU2VsZWN0b3I/OiBBY2NlcHRlZEZpbHRlcnM8RWxlbWVudD4sXG4gICk6IENoZWVyaW88RWxlbWVudD4ge1xuICAgIC8vIE92ZXJyaWRlIGBtYXRjaGVzYCB2YXJpYWJsZSB3aXRoIHRoZSBuZXcgdGFyZ2V0LlxuICAgIG1hdGNoZXMgPVxuICAgICAgdHlwZW9mIHNlbGVjdG9yID09PSAnc3RyaW5nJ1xuICAgICAgICA/IChlbGVtOiBFbGVtZW50KSA9PiBzZWxlY3QuaXMoZWxlbSwgc2VsZWN0b3IsIHRoaXMub3B0aW9ucylcbiAgICAgICAgOiBzZWxlY3RvclxuICAgICAgICAgID8gZ2V0RmlsdGVyRm4oc2VsZWN0b3IpXG4gICAgICAgICAgOiBudWxsO1xuXG4gICAgY29uc3QgcmV0ID0gaW5uZXJNYXRjaGVyLmNhbGwodGhpcywgZmlsdGVyU2VsZWN0b3IpO1xuXG4gICAgLy8gU2V0IGBtYXRjaGVzYCB0byBgbnVsbGAsIHNvIHdlIGRvbid0IHdhc3RlIG1lbW9yeS5cbiAgICBtYXRjaGVzID0gbnVsbDtcblxuICAgIHJldHVybiByZXQ7XG4gIH07XG59XG5cbmZ1bmN0aW9uIF9yZW1vdmVEdXBsaWNhdGVzPFQgZXh0ZW5kcyBBbnlOb2RlPihlbGVtczogVFtdKTogVFtdIHtcbiAgcmV0dXJuIGVsZW1zLmxlbmd0aCA+IDEgPyBBcnJheS5mcm9tKG5ldyBTZXQ8VD4oZWxlbXMpKSA6IGVsZW1zO1xufVxuXG4vKipcbiAqIEdldCB0aGUgcGFyZW50IG9mIGVhY2ggZWxlbWVudCBpbiB0aGUgY3VycmVudCBzZXQgb2YgbWF0Y2hlZCBlbGVtZW50cyxcbiAqIG9wdGlvbmFsbHkgZmlsdGVyZWQgYnkgYSBzZWxlY3Rvci5cbiAqXG4gKiBAY2F0ZWdvcnkgVHJhdmVyc2luZ1xuICogQGV4YW1wbGVcbiAqXG4gKiBgYGBqc1xuICogJCgnLnBlYXInKS5wYXJlbnQoKS5hdHRyKCdpZCcpO1xuICogLy89PiBmcnVpdHNcbiAqIGBgYFxuICpcbiAqIEBwYXJhbSBzZWxlY3RvciAtIElmIHNwZWNpZmllZCBmaWx0ZXIgZm9yIHBhcmVudC5cbiAqIEByZXR1cm5zIFRoZSBwYXJlbnRzLlxuICogQHNlZSB7QGxpbmsgaHR0cHM6Ly9hcGkuanF1ZXJ5LmNvbS9wYXJlbnQvfVxuICovXG5leHBvcnQgY29uc3QgcGFyZW50OiA8VCBleHRlbmRzIEFueU5vZGU+KFxuICB0aGlzOiBDaGVlcmlvPFQ+LFxuICBzZWxlY3Rvcj86IEFjY2VwdGVkRmlsdGVyczxFbGVtZW50PixcbikgPT4gQ2hlZXJpbzxFbGVtZW50PiA9IF9zaW5nbGVNYXRjaGVyKFxuICAoeyBwYXJlbnQgfSkgPT4gKHBhcmVudCAmJiAhaXNEb2N1bWVudChwYXJlbnQpID8gKHBhcmVudCBhcyBFbGVtZW50KSA6IG51bGwpLFxuICBfcmVtb3ZlRHVwbGljYXRlcyxcbik7XG5cbi8qKlxuICogR2V0IGEgc2V0IG9mIHBhcmVudHMgZmlsdGVyZWQgYnkgYHNlbGVjdG9yYCBvZiBlYWNoIGVsZW1lbnQgaW4gdGhlIGN1cnJlbnRcbiAqIHNldCBvZiBtYXRjaCBlbGVtZW50cy5cbiAqXG4gKiBAY2F0ZWdvcnkgVHJhdmVyc2luZ1xuICogQGV4YW1wbGVcbiAqXG4gKiBgYGBqc1xuICogJCgnLm9yYW5nZScpLnBhcmVudHMoKS5sZW5ndGg7XG4gKiAvLz0+IDJcbiAqICQoJy5vcmFuZ2UnKS5wYXJlbnRzKCcjZnJ1aXRzJykubGVuZ3RoO1xuICogLy89PiAxXG4gKiBgYGBcbiAqXG4gKiBAcGFyYW0gc2VsZWN0b3IgLSBJZiBzcGVjaWZpZWQgZmlsdGVyIGZvciBwYXJlbnRzLlxuICogQHJldHVybnMgVGhlIHBhcmVudHMuXG4gKiBAc2VlIHtAbGluayBodHRwczovL2FwaS5qcXVlcnkuY29tL3BhcmVudHMvfVxuICovXG5leHBvcnQgY29uc3QgcGFyZW50czogPFQgZXh0ZW5kcyBBbnlOb2RlPihcbiAgdGhpczogQ2hlZXJpbzxUPixcbiAgc2VsZWN0b3I/OiBBY2NlcHRlZEZpbHRlcnM8RWxlbWVudD4sXG4pID0+IENoZWVyaW88RWxlbWVudD4gPSBfbWF0Y2hlcihcbiAgKGVsZW0pID0+IHtcbiAgICBjb25zdCBtYXRjaGVkID0gW107XG4gICAgd2hpbGUgKGVsZW0ucGFyZW50ICYmICFpc0RvY3VtZW50KGVsZW0ucGFyZW50KSkge1xuICAgICAgbWF0Y2hlZC5wdXNoKGVsZW0ucGFyZW50IGFzIEVsZW1lbnQpO1xuICAgICAgZWxlbSA9IGVsZW0ucGFyZW50O1xuICAgIH1cbiAgICByZXR1cm4gbWF0Y2hlZDtcbiAgfSxcbiAgdW5pcXVlU29ydCxcbiAgKGVsZW1zKSA9PiBlbGVtcy5yZXZlcnNlKCksXG4pO1xuXG4vKipcbiAqIEdldCB0aGUgYW5jZXN0b3JzIG9mIGVhY2ggZWxlbWVudCBpbiB0aGUgY3VycmVudCBzZXQgb2YgbWF0Y2hlZCBlbGVtZW50cywgdXBcbiAqIHRvIGJ1dCBub3QgaW5jbHVkaW5nIHRoZSBlbGVtZW50IG1hdGNoZWQgYnkgdGhlIHNlbGVjdG9yLCBET00gbm9kZSwgb3JcbiAqIGNoZWVyaW8gb2JqZWN0LlxuICpcbiAqIEBjYXRlZ29yeSBUcmF2ZXJzaW5nXG4gKiBAZXhhbXBsZVxuICpcbiAqIGBgYGpzXG4gKiAkKCcub3JhbmdlJykucGFyZW50c1VudGlsKCcjZm9vZCcpLmxlbmd0aDtcbiAqIC8vPT4gMVxuICogYGBgXG4gKlxuICogQHBhcmFtIHNlbGVjdG9yIC0gU2VsZWN0b3IgZm9yIGVsZW1lbnQgdG8gc3RvcCBhdC5cbiAqIEBwYXJhbSBmaWx0ZXJTZWxlY3RvciAtIE9wdGlvbmFsIGZpbHRlciBmb3IgcGFyZW50cy5cbiAqIEByZXR1cm5zIFRoZSBwYXJlbnRzLlxuICogQHNlZSB7QGxpbmsgaHR0cHM6Ly9hcGkuanF1ZXJ5LmNvbS9wYXJlbnRzVW50aWwvfVxuICovXG5leHBvcnQgY29uc3QgcGFyZW50c1VudGlsOiA8VCBleHRlbmRzIEFueU5vZGU+KFxuICB0aGlzOiBDaGVlcmlvPFQ+LFxuICBzZWxlY3Rvcj86IEFjY2VwdGVkRmlsdGVyczxFbGVtZW50PiB8IG51bGwsXG4gIGZpbHRlclNlbGVjdG9yPzogQWNjZXB0ZWRGaWx0ZXJzPEVsZW1lbnQ+LFxuKSA9PiBDaGVlcmlvPEVsZW1lbnQ+ID0gX21hdGNoVW50aWwoXG4gICh7IHBhcmVudCB9KSA9PiAocGFyZW50ICYmICFpc0RvY3VtZW50KHBhcmVudCkgPyAocGFyZW50IGFzIEVsZW1lbnQpIDogbnVsbCksXG4gIHVuaXF1ZVNvcnQsXG4gIChlbGVtcykgPT4gZWxlbXMucmV2ZXJzZSgpLFxuKTtcblxuLyoqXG4gKiBGb3IgZWFjaCBlbGVtZW50IGluIHRoZSBzZXQsIGdldCB0aGUgZmlyc3QgZWxlbWVudCB0aGF0IG1hdGNoZXMgdGhlIHNlbGVjdG9yXG4gKiBieSB0ZXN0aW5nIHRoZSBlbGVtZW50IGl0c2VsZiBhbmQgdHJhdmVyc2luZyB1cCB0aHJvdWdoIGl0cyBhbmNlc3RvcnMgaW4gdGhlXG4gKiBET00gdHJlZS5cbiAqXG4gKiBAY2F0ZWdvcnkgVHJhdmVyc2luZ1xuICogQGV4YW1wbGVcbiAqXG4gKiBgYGBqc1xuICogJCgnLm9yYW5nZScpLmNsb3Nlc3QoKTtcbiAqIC8vPT4gW11cbiAqXG4gKiAkKCcub3JhbmdlJykuY2xvc2VzdCgnLmFwcGxlJyk7XG4gKiAvLyA9PiBbXVxuICpcbiAqICQoJy5vcmFuZ2UnKS5jbG9zZXN0KCdsaScpO1xuICogLy89PiBbPGxpIGNsYXNzPVwib3JhbmdlXCI+T3JhbmdlPC9saT5dXG4gKlxuICogJCgnLm9yYW5nZScpLmNsb3Nlc3QoJyNmcnVpdHMnKTtcbiAqIC8vPT4gWzx1bCBpZD1cImZydWl0c1wiPiAuLi4gPC91bD5dXG4gKiBgYGBcbiAqXG4gKiBAcGFyYW0gc2VsZWN0b3IgLSBTZWxlY3RvciBmb3IgdGhlIGVsZW1lbnQgdG8gZmluZC5cbiAqIEByZXR1cm5zIFRoZSBjbG9zZXN0IG5vZGVzLlxuICogQHNlZSB7QGxpbmsgaHR0cHM6Ly9hcGkuanF1ZXJ5LmNvbS9jbG9zZXN0L31cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNsb3Nlc3Q8VCBleHRlbmRzIEFueU5vZGU+KFxuICB0aGlzOiBDaGVlcmlvPFQ+LFxuICBzZWxlY3Rvcj86IEFjY2VwdGVkRmlsdGVyczxFbGVtZW50Pixcbik6IENoZWVyaW88QW55Tm9kZT4ge1xuICBjb25zdCBzZXQ6IEFueU5vZGVbXSA9IFtdO1xuXG4gIGlmICghc2VsZWN0b3IpIHtcbiAgICByZXR1cm4gdGhpcy5fbWFrZShzZXQpO1xuICB9XG5cbiAgY29uc3Qgc2VsZWN0T3B0cyA9IHtcbiAgICB4bWxNb2RlOiB0aGlzLm9wdGlvbnMueG1sTW9kZSxcbiAgICByb290OiB0aGlzLl9yb290Py5bMF0sXG4gIH07XG5cbiAgY29uc3Qgc2VsZWN0Rm4gPVxuICAgIHR5cGVvZiBzZWxlY3RvciA9PT0gJ3N0cmluZydcbiAgICAgID8gKGVsZW06IEVsZW1lbnQpID0+IHNlbGVjdC5pcyhlbGVtLCBzZWxlY3Rvciwgc2VsZWN0T3B0cylcbiAgICAgIDogZ2V0RmlsdGVyRm4oc2VsZWN0b3IpO1xuXG4gIGRvbUVhY2godGhpcywgKGVsZW06IEFueU5vZGUgfCBudWxsKSA9PiB7XG4gICAgaWYgKGVsZW0gJiYgIWlzRG9jdW1lbnQoZWxlbSkgJiYgIWlzVGFnKGVsZW0pKSB7XG4gICAgICBlbGVtID0gZWxlbS5wYXJlbnQ7XG4gICAgfVxuICAgIHdoaWxlIChlbGVtICYmIGlzVGFnKGVsZW0pKSB7XG4gICAgICBpZiAoc2VsZWN0Rm4oZWxlbSwgMCkpIHtcbiAgICAgICAgLy8gRG8gbm90IGFkZCBkdXBsaWNhdGUgZWxlbWVudHMgdG8gdGhlIHNldFxuICAgICAgICBpZiAoIXNldC5pbmNsdWRlcyhlbGVtKSkge1xuICAgICAgICAgIHNldC5wdXNoKGVsZW0pO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgZWxlbSA9IGVsZW0ucGFyZW50O1xuICAgIH1cbiAgfSk7XG5cbiAgcmV0dXJuIHRoaXMuX21ha2Uoc2V0KTtcbn1cblxuLyoqXG4gKiBHZXRzIHRoZSBuZXh0IHNpYmxpbmcgb2YgZWFjaCBzZWxlY3RlZCBlbGVtZW50LCBvcHRpb25hbGx5IGZpbHRlcmVkIGJ5IGFcbiAqIHNlbGVjdG9yLlxuICpcbiAqIEBjYXRlZ29yeSBUcmF2ZXJzaW5nXG4gKiBAZXhhbXBsZVxuICpcbiAqIGBgYGpzXG4gKiAkKCcuYXBwbGUnKS5uZXh0KCkuaGFzQ2xhc3MoJ29yYW5nZScpO1xuICogLy89PiB0cnVlXG4gKiBgYGBcbiAqXG4gKiBAcGFyYW0gc2VsZWN0b3IgLSBJZiBzcGVjaWZpZWQgZmlsdGVyIGZvciBzaWJsaW5nLlxuICogQHJldHVybnMgVGhlIG5leHQgbm9kZXMuXG4gKiBAc2VlIHtAbGluayBodHRwczovL2FwaS5qcXVlcnkuY29tL25leHQvfVxuICovXG5leHBvcnQgY29uc3QgbmV4dDogPFQgZXh0ZW5kcyBBbnlOb2RlPihcbiAgdGhpczogQ2hlZXJpbzxUPixcbiAgc2VsZWN0b3I/OiBBY2NlcHRlZEZpbHRlcnM8RWxlbWVudD4sXG4pID0+IENoZWVyaW88RWxlbWVudD4gPSBfc2luZ2xlTWF0Y2hlcigoZWxlbSkgPT4gbmV4dEVsZW1lbnRTaWJsaW5nKGVsZW0pKTtcblxuLyoqXG4gKiBHZXRzIGFsbCB0aGUgZm9sbG93aW5nIHNpYmxpbmdzIG9mIHRoZSBlYWNoIHNlbGVjdGVkIGVsZW1lbnQsIG9wdGlvbmFsbHlcbiAqIGZpbHRlcmVkIGJ5IGEgc2VsZWN0b3IuXG4gKlxuICogQGNhdGVnb3J5IFRyYXZlcnNpbmdcbiAqIEBleGFtcGxlXG4gKlxuICogYGBganNcbiAqICQoJy5hcHBsZScpLm5leHRBbGwoKTtcbiAqIC8vPT4gWzxsaSBjbGFzcz1cIm9yYW5nZVwiPk9yYW5nZTwvbGk+LCA8bGkgY2xhc3M9XCJwZWFyXCI+UGVhcjwvbGk+XVxuICogJCgnLmFwcGxlJykubmV4dEFsbCgnLm9yYW5nZScpO1xuICogLy89PiBbPGxpIGNsYXNzPVwib3JhbmdlXCI+T3JhbmdlPC9saT5dXG4gKiBgYGBcbiAqXG4gKiBAcGFyYW0gc2VsZWN0b3IgLSBJZiBzcGVjaWZpZWQgZmlsdGVyIGZvciBzaWJsaW5ncy5cbiAqIEByZXR1cm5zIFRoZSBuZXh0IG5vZGVzLlxuICogQHNlZSB7QGxpbmsgaHR0cHM6Ly9hcGkuanF1ZXJ5LmNvbS9uZXh0QWxsL31cbiAqL1xuZXhwb3J0IGNvbnN0IG5leHRBbGw6IDxUIGV4dGVuZHMgQW55Tm9kZT4oXG4gIHRoaXM6IENoZWVyaW88VD4sXG4gIHNlbGVjdG9yPzogQWNjZXB0ZWRGaWx0ZXJzPEVsZW1lbnQ+LFxuKSA9PiBDaGVlcmlvPEVsZW1lbnQ+ID0gX21hdGNoZXIoKGVsZW0pID0+IHtcbiAgY29uc3QgbWF0Y2hlZCA9IFtdO1xuICB3aGlsZSAoZWxlbS5uZXh0KSB7XG4gICAgZWxlbSA9IGVsZW0ubmV4dDtcbiAgICBpZiAoaXNUYWcoZWxlbSkpIG1hdGNoZWQucHVzaChlbGVtKTtcbiAgfVxuICByZXR1cm4gbWF0Y2hlZDtcbn0sIF9yZW1vdmVEdXBsaWNhdGVzKTtcblxuLyoqXG4gKiBHZXRzIGFsbCB0aGUgZm9sbG93aW5nIHNpYmxpbmdzIHVwIHRvIGJ1dCBub3QgaW5jbHVkaW5nIHRoZSBlbGVtZW50IG1hdGNoZWRcbiAqIGJ5IHRoZSBzZWxlY3Rvciwgb3B0aW9uYWxseSBmaWx0ZXJlZCBieSBhbm90aGVyIHNlbGVjdG9yLlxuICpcbiAqIEBjYXRlZ29yeSBUcmF2ZXJzaW5nXG4gKiBAZXhhbXBsZVxuICpcbiAqIGBgYGpzXG4gKiAkKCcuYXBwbGUnKS5uZXh0VW50aWwoJy5wZWFyJyk7XG4gKiAvLz0+IFs8bGkgY2xhc3M9XCJvcmFuZ2VcIj5PcmFuZ2U8L2xpPl1cbiAqIGBgYFxuICpcbiAqIEBwYXJhbSBzZWxlY3RvciAtIFNlbGVjdG9yIGZvciBlbGVtZW50IHRvIHN0b3AgYXQuXG4gKiBAcGFyYW0gZmlsdGVyU2VsZWN0b3IgLSBJZiBzcGVjaWZpZWQgZmlsdGVyIGZvciBzaWJsaW5ncy5cbiAqIEByZXR1cm5zIFRoZSBuZXh0IG5vZGVzLlxuICogQHNlZSB7QGxpbmsgaHR0cHM6Ly9hcGkuanF1ZXJ5LmNvbS9uZXh0VW50aWwvfVxuICovXG5leHBvcnQgY29uc3QgbmV4dFVudGlsOiA8VCBleHRlbmRzIEFueU5vZGU+KFxuICB0aGlzOiBDaGVlcmlvPFQ+LFxuICBzZWxlY3Rvcj86IEFjY2VwdGVkRmlsdGVyczxFbGVtZW50PiB8IG51bGwsXG4gIGZpbHRlclNlbGVjdG9yPzogQWNjZXB0ZWRGaWx0ZXJzPEVsZW1lbnQ+LFxuKSA9PiBDaGVlcmlvPEVsZW1lbnQ+ID0gX21hdGNoVW50aWwoXG4gIChlbCkgPT4gbmV4dEVsZW1lbnRTaWJsaW5nKGVsKSxcbiAgX3JlbW92ZUR1cGxpY2F0ZXMsXG4pO1xuXG4vKipcbiAqIEdldHMgdGhlIHByZXZpb3VzIHNpYmxpbmcgb2YgZWFjaCBzZWxlY3RlZCBlbGVtZW50IG9wdGlvbmFsbHkgZmlsdGVyZWQgYnkgYVxuICogc2VsZWN0b3IuXG4gKlxuICogQGNhdGVnb3J5IFRyYXZlcnNpbmdcbiAqIEBleGFtcGxlXG4gKlxuICogYGBganNcbiAqICQoJy5vcmFuZ2UnKS5wcmV2KCkuaGFzQ2xhc3MoJ2FwcGxlJyk7XG4gKiAvLz0+IHRydWVcbiAqIGBgYFxuICpcbiAqIEBwYXJhbSBzZWxlY3RvciAtIElmIHNwZWNpZmllZCBmaWx0ZXIgZm9yIHNpYmxpbmdzLlxuICogQHJldHVybnMgVGhlIHByZXZpb3VzIG5vZGVzLlxuICogQHNlZSB7QGxpbmsgaHR0cHM6Ly9hcGkuanF1ZXJ5LmNvbS9wcmV2L31cbiAqL1xuZXhwb3J0IGNvbnN0IHByZXY6IDxUIGV4dGVuZHMgQW55Tm9kZT4oXG4gIHRoaXM6IENoZWVyaW88VD4sXG4gIHNlbGVjdG9yPzogQWNjZXB0ZWRGaWx0ZXJzPEVsZW1lbnQ+LFxuKSA9PiBDaGVlcmlvPEVsZW1lbnQ+ID0gX3NpbmdsZU1hdGNoZXIoKGVsZW0pID0+IHByZXZFbGVtZW50U2libGluZyhlbGVtKSk7XG5cbi8qKlxuICogR2V0cyBhbGwgdGhlIHByZWNlZGluZyBzaWJsaW5ncyBvZiBlYWNoIHNlbGVjdGVkIGVsZW1lbnQsIG9wdGlvbmFsbHkgZmlsdGVyZWRcbiAqIGJ5IGEgc2VsZWN0b3IuXG4gKlxuICogQGNhdGVnb3J5IFRyYXZlcnNpbmdcbiAqIEBleGFtcGxlXG4gKlxuICogYGBganNcbiAqICQoJy5wZWFyJykucHJldkFsbCgpO1xuICogLy89PiBbPGxpIGNsYXNzPVwib3JhbmdlXCI+T3JhbmdlPC9saT4sIDxsaSBjbGFzcz1cImFwcGxlXCI+QXBwbGU8L2xpPl1cbiAqXG4gKiAkKCcucGVhcicpLnByZXZBbGwoJy5vcmFuZ2UnKTtcbiAqIC8vPT4gWzxsaSBjbGFzcz1cIm9yYW5nZVwiPk9yYW5nZTwvbGk+XVxuICogYGBgXG4gKlxuICogQHBhcmFtIHNlbGVjdG9yIC0gSWYgc3BlY2lmaWVkIGZpbHRlciBmb3Igc2libGluZ3MuXG4gKiBAcmV0dXJucyBUaGUgcHJldmlvdXMgbm9kZXMuXG4gKiBAc2VlIHtAbGluayBodHRwczovL2FwaS5qcXVlcnkuY29tL3ByZXZBbGwvfVxuICovXG5leHBvcnQgY29uc3QgcHJldkFsbDogPFQgZXh0ZW5kcyBBbnlOb2RlPihcbiAgdGhpczogQ2hlZXJpbzxUPixcbiAgc2VsZWN0b3I/OiBBY2NlcHRlZEZpbHRlcnM8RWxlbWVudD4sXG4pID0+IENoZWVyaW88RWxlbWVudD4gPSBfbWF0Y2hlcigoZWxlbSkgPT4ge1xuICBjb25zdCBtYXRjaGVkID0gW107XG4gIHdoaWxlIChlbGVtLnByZXYpIHtcbiAgICBlbGVtID0gZWxlbS5wcmV2O1xuICAgIGlmIChpc1RhZyhlbGVtKSkgbWF0Y2hlZC5wdXNoKGVsZW0pO1xuICB9XG4gIHJldHVybiBtYXRjaGVkO1xufSwgX3JlbW92ZUR1cGxpY2F0ZXMpO1xuXG4vKipcbiAqIEdldHMgYWxsIHRoZSBwcmVjZWRpbmcgc2libGluZ3MgdXAgdG8gYnV0IG5vdCBpbmNsdWRpbmcgdGhlIGVsZW1lbnQgbWF0Y2hlZFxuICogYnkgdGhlIHNlbGVjdG9yLCBvcHRpb25hbGx5IGZpbHRlcmVkIGJ5IGFub3RoZXIgc2VsZWN0b3IuXG4gKlxuICogQGNhdGVnb3J5IFRyYXZlcnNpbmdcbiAqIEBleGFtcGxlXG4gKlxuICogYGBganNcbiAqICQoJy5wZWFyJykucHJldlVudGlsKCcuYXBwbGUnKTtcbiAqIC8vPT4gWzxsaSBjbGFzcz1cIm9yYW5nZVwiPk9yYW5nZTwvbGk+XVxuICogYGBgXG4gKlxuICogQHBhcmFtIHNlbGVjdG9yIC0gU2VsZWN0b3IgZm9yIGVsZW1lbnQgdG8gc3RvcCBhdC5cbiAqIEBwYXJhbSBmaWx0ZXJTZWxlY3RvciAtIElmIHNwZWNpZmllZCBmaWx0ZXIgZm9yIHNpYmxpbmdzLlxuICogQHJldHVybnMgVGhlIHByZXZpb3VzIG5vZGVzLlxuICogQHNlZSB7QGxpbmsgaHR0cHM6Ly9hcGkuanF1ZXJ5LmNvbS9wcmV2VW50aWwvfVxuICovXG5leHBvcnQgY29uc3QgcHJldlVudGlsOiA8VCBleHRlbmRzIEFueU5vZGU+KFxuICB0aGlzOiBDaGVlcmlvPFQ+LFxuICBzZWxlY3Rvcj86IEFjY2VwdGVkRmlsdGVyczxFbGVtZW50PiB8IG51bGwsXG4gIGZpbHRlclNlbGVjdG9yPzogQWNjZXB0ZWRGaWx0ZXJzPEVsZW1lbnQ+LFxuKSA9PiBDaGVlcmlvPEVsZW1lbnQ+ID0gX21hdGNoVW50aWwoXG4gIChlbCkgPT4gcHJldkVsZW1lbnRTaWJsaW5nKGVsKSxcbiAgX3JlbW92ZUR1cGxpY2F0ZXMsXG4pO1xuXG4vKipcbiAqIEdldCB0aGUgc2libGluZ3Mgb2YgZWFjaCBlbGVtZW50IChleGNsdWRpbmcgdGhlIGVsZW1lbnQpIGluIHRoZSBzZXQgb2ZcbiAqIG1hdGNoZWQgZWxlbWVudHMsIG9wdGlvbmFsbHkgZmlsdGVyZWQgYnkgYSBzZWxlY3Rvci5cbiAqXG4gKiBAY2F0ZWdvcnkgVHJhdmVyc2luZ1xuICogQGV4YW1wbGVcbiAqXG4gKiBgYGBqc1xuICogJCgnLnBlYXInKS5zaWJsaW5ncygpLmxlbmd0aDtcbiAqIC8vPT4gMlxuICpcbiAqICQoJy5wZWFyJykuc2libGluZ3MoJy5vcmFuZ2UnKS5sZW5ndGg7XG4gKiAvLz0+IDFcbiAqIGBgYFxuICpcbiAqIEBwYXJhbSBzZWxlY3RvciAtIElmIHNwZWNpZmllZCBmaWx0ZXIgZm9yIHNpYmxpbmdzLlxuICogQHJldHVybnMgVGhlIHNpYmxpbmdzLlxuICogQHNlZSB7QGxpbmsgaHR0cHM6Ly9hcGkuanF1ZXJ5LmNvbS9zaWJsaW5ncy99XG4gKi9cbmV4cG9ydCBjb25zdCBzaWJsaW5nczogPFQgZXh0ZW5kcyBBbnlOb2RlPihcbiAgdGhpczogQ2hlZXJpbzxUPixcbiAgc2VsZWN0b3I/OiBBY2NlcHRlZEZpbHRlcnM8RWxlbWVudD4sXG4pID0+IENoZWVyaW88RWxlbWVudD4gPSBfbWF0Y2hlcihcbiAgKGVsZW0pID0+XG4gICAgZ2V0U2libGluZ3MoZWxlbSkuZmlsdGVyKChlbCk6IGVsIGlzIEVsZW1lbnQgPT4gaXNUYWcoZWwpICYmIGVsICE9PSBlbGVtKSxcbiAgdW5pcXVlU29ydCxcbik7XG5cbi8qKlxuICogR2V0cyB0aGUgZWxlbWVudCBjaGlsZHJlbiBvZiBlYWNoIGVsZW1lbnQgaW4gdGhlIHNldCBvZiBtYXRjaGVkIGVsZW1lbnRzLlxuICpcbiAqIEBjYXRlZ29yeSBUcmF2ZXJzaW5nXG4gKiBAZXhhbXBsZVxuICpcbiAqIGBgYGpzXG4gKiAkKCcjZnJ1aXRzJykuY2hpbGRyZW4oKS5sZW5ndGg7XG4gKiAvLz0+IDNcbiAqXG4gKiAkKCcjZnJ1aXRzJykuY2hpbGRyZW4oJy5wZWFyJykudGV4dCgpO1xuICogLy89PiBQZWFyXG4gKiBgYGBcbiAqXG4gKiBAcGFyYW0gc2VsZWN0b3IgLSBJZiBzcGVjaWZpZWQgZmlsdGVyIGZvciBjaGlsZHJlbi5cbiAqIEByZXR1cm5zIFRoZSBjaGlsZHJlbi5cbiAqIEBzZWUge0BsaW5rIGh0dHBzOi8vYXBpLmpxdWVyeS5jb20vY2hpbGRyZW4vfVxuICovXG5leHBvcnQgY29uc3QgY2hpbGRyZW46IDxUIGV4dGVuZHMgQW55Tm9kZT4oXG4gIHRoaXM6IENoZWVyaW88VD4sXG4gIHNlbGVjdG9yPzogQWNjZXB0ZWRGaWx0ZXJzPEVsZW1lbnQ+LFxuKSA9PiBDaGVlcmlvPEVsZW1lbnQ+ID0gX21hdGNoZXIoXG4gIChlbGVtKSA9PiBnZXRDaGlsZHJlbihlbGVtKS5maWx0ZXIoaXNUYWcpLFxuICBfcmVtb3ZlRHVwbGljYXRlcyxcbik7XG5cbi8qKlxuICogR2V0cyB0aGUgY2hpbGRyZW4gb2YgZWFjaCBlbGVtZW50IGluIHRoZSBzZXQgb2YgbWF0Y2hlZCBlbGVtZW50cywgaW5jbHVkaW5nXG4gKiB0ZXh0IGFuZCBjb21tZW50IG5vZGVzLlxuICpcbiAqIEBjYXRlZ29yeSBUcmF2ZXJzaW5nXG4gKiBAZXhhbXBsZVxuICpcbiAqIGBgYGpzXG4gKiAkKCcjZnJ1aXRzJykuY29udGVudHMoKS5sZW5ndGg7XG4gKiAvLz0+IDNcbiAqIGBgYFxuICpcbiAqIEByZXR1cm5zIFRoZSBjaGlsZHJlbi5cbiAqIEBzZWUge0BsaW5rIGh0dHBzOi8vYXBpLmpxdWVyeS5jb20vY29udGVudHMvfVxuICovXG5leHBvcnQgZnVuY3Rpb24gY29udGVudHM8VCBleHRlbmRzIEFueU5vZGU+KFxuICB0aGlzOiBDaGVlcmlvPFQ+LFxuKTogQ2hlZXJpbzxBbnlOb2RlPiB7XG4gIGNvbnN0IGVsZW1zID0gdGhpcy50b0FycmF5KCkucmVkdWNlPEFueU5vZGVbXT4oXG4gICAgKG5ld0VsZW1zLCBlbGVtKSA9PlxuICAgICAgaGFzQ2hpbGRyZW4oZWxlbSkgPyBuZXdFbGVtcy5jb25jYXQoZWxlbS5jaGlsZHJlbikgOiBuZXdFbGVtcyxcbiAgICBbXSxcbiAgKTtcbiAgcmV0dXJuIHRoaXMuX21ha2UoZWxlbXMpO1xufVxuXG4vKipcbiAqIEl0ZXJhdGVzIG92ZXIgYSBjaGVlcmlvIG9iamVjdCwgZXhlY3V0aW5nIGEgZnVuY3Rpb24gZm9yIGVhY2ggbWF0Y2hlZFxuICogZWxlbWVudC4gV2hlbiB0aGUgY2FsbGJhY2sgaXMgZmlyZWQsIHRoZSBmdW5jdGlvbiBpcyBmaXJlZCBpbiB0aGUgY29udGV4dCBvZlxuICogdGhlIERPTSBlbGVtZW50LCBzbyBgdGhpc2AgcmVmZXJzIHRvIHRoZSBjdXJyZW50IGVsZW1lbnQsIHdoaWNoIGlzIGVxdWl2YWxlbnRcbiAqIHRvIHRoZSBmdW5jdGlvbiBwYXJhbWV0ZXIgYGVsZW1lbnRgLiBUbyBicmVhayBvdXQgb2YgdGhlIGBlYWNoYCBsb29wIGVhcmx5LFxuICogcmV0dXJuIHdpdGggYGZhbHNlYC5cbiAqXG4gKiBAY2F0ZWdvcnkgVHJhdmVyc2luZ1xuICogQGV4YW1wbGVcbiAqXG4gKiBgYGBqc1xuICogY29uc3QgZnJ1aXRzID0gW107XG4gKlxuICogJCgnbGknKS5lYWNoKGZ1bmN0aW9uIChpLCBlbGVtKSB7XG4gKiAgIGZydWl0c1tpXSA9ICQodGhpcykudGV4dCgpO1xuICogfSk7XG4gKlxuICogZnJ1aXRzLmpvaW4oJywgJyk7XG4gKiAvLz0+IEFwcGxlLCBPcmFuZ2UsIFBlYXJcbiAqIGBgYFxuICpcbiAqIEBwYXJhbSBmbiAtIEZ1bmN0aW9uIHRvIGV4ZWN1dGUuXG4gKiBAcmV0dXJucyBUaGUgaW5zdGFuY2UgaXRzZWxmLCB1c2VmdWwgZm9yIGNoYWluaW5nLlxuICogQHNlZSB7QGxpbmsgaHR0cHM6Ly9hcGkuanF1ZXJ5LmNvbS9lYWNoL31cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGVhY2g8VD4oXG4gIHRoaXM6IENoZWVyaW88VD4sXG4gIGZuOiAodGhpczogVCwgaTogbnVtYmVyLCBlbDogVCkgPT4gdm9pZCB8IGJvb2xlYW4sXG4pOiBDaGVlcmlvPFQ+IHtcbiAgbGV0IGkgPSAwO1xuICBjb25zdCBsZW4gPSB0aGlzLmxlbmd0aDtcbiAgd2hpbGUgKGkgPCBsZW4gJiYgZm4uY2FsbCh0aGlzW2ldLCBpLCB0aGlzW2ldKSAhPT0gZmFsc2UpICsraTtcbiAgcmV0dXJuIHRoaXM7XG59XG5cbi8qKlxuICogUGFzcyBlYWNoIGVsZW1lbnQgaW4gdGhlIGN1cnJlbnQgbWF0Y2hlZCBzZXQgdGhyb3VnaCBhIGZ1bmN0aW9uLCBwcm9kdWNpbmcgYVxuICogbmV3IENoZWVyaW8gb2JqZWN0IGNvbnRhaW5pbmcgdGhlIHJldHVybiB2YWx1ZXMuIFRoZSBmdW5jdGlvbiBjYW4gcmV0dXJuIGFuXG4gKiBpbmRpdmlkdWFsIGRhdGEgaXRlbSBvciBhbiBhcnJheSBvZiBkYXRhIGl0ZW1zIHRvIGJlIGluc2VydGVkIGludG8gdGhlXG4gKiByZXN1bHRpbmcgc2V0LiBJZiBhbiBhcnJheSBpcyByZXR1cm5lZCwgdGhlIGVsZW1lbnRzIGluc2lkZSB0aGUgYXJyYXkgYXJlXG4gKiBpbnNlcnRlZCBpbnRvIHRoZSBzZXQuIElmIHRoZSBmdW5jdGlvbiByZXR1cm5zIG51bGwgb3IgdW5kZWZpbmVkLCBubyBlbGVtZW50XG4gKiB3aWxsIGJlIGluc2VydGVkLlxuICpcbiAqIEBjYXRlZ29yeSBUcmF2ZXJzaW5nXG4gKiBAZXhhbXBsZVxuICpcbiAqIGBgYGpzXG4gKiAkKCdsaScpXG4gKiAgIC5tYXAoZnVuY3Rpb24gKGksIGVsKSB7XG4gKiAgICAgLy8gdGhpcyA9PT0gZWxcbiAqICAgICByZXR1cm4gJCh0aGlzKS50ZXh0KCk7XG4gKiAgIH0pXG4gKiAgIC50b0FycmF5KClcbiAqICAgLmpvaW4oJyAnKTtcbiAqIC8vPT4gXCJhcHBsZSBvcmFuZ2UgcGVhclwiXG4gKiBgYGBcbiAqXG4gKiBAcGFyYW0gZm4gLSBGdW5jdGlvbiB0byBleGVjdXRlLlxuICogQHJldHVybnMgVGhlIG1hcHBlZCBlbGVtZW50cywgd3JhcHBlZCBpbiBhIENoZWVyaW8gY29sbGVjdGlvbi5cbiAqIEBzZWUge0BsaW5rIGh0dHBzOi8vYXBpLmpxdWVyeS5jb20vbWFwL31cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1hcDxULCBNPihcbiAgdGhpczogQ2hlZXJpbzxUPixcbiAgZm46ICh0aGlzOiBULCBpOiBudW1iZXIsIGVsOiBUKSA9PiBNW10gfCBNIHwgbnVsbCB8IHVuZGVmaW5lZCxcbik6IENoZWVyaW88TT4ge1xuICBsZXQgZWxlbXM6IE1bXSA9IFtdO1xuICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMubGVuZ3RoOyBpKyspIHtcbiAgICBjb25zdCBlbCA9IHRoaXNbaV07XG4gICAgY29uc3QgdmFsID0gZm4uY2FsbChlbCwgaSwgZWwpO1xuICAgIGlmICh2YWwgIT0gbnVsbCkge1xuICAgICAgZWxlbXMgPSBlbGVtcy5jb25jYXQodmFsKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHRoaXMuX21ha2UoZWxlbXMpO1xufVxuXG4vKipcbiAqIENyZWF0ZXMgYSBmdW5jdGlvbiB0byB0ZXN0IGlmIGEgZmlsdGVyIGlzIG1hdGNoZWQuXG4gKlxuICogQHBhcmFtIG1hdGNoIC0gQSBmaWx0ZXIuXG4gKiBAcmV0dXJucyBBIGZ1bmN0aW9uIHRoYXQgZGV0ZXJtaW5lcyBpZiBhIGZpbHRlciBoYXMgYmVlbiBtYXRjaGVkLlxuICovXG5mdW5jdGlvbiBnZXRGaWx0ZXJGbjxUPihcbiAgbWF0Y2g6IEZpbHRlckZ1bmN0aW9uPFQ+IHwgQ2hlZXJpbzxUPiB8IFQsXG4pOiAoZWw6IFQsIGk6IG51bWJlcikgPT4gYm9vbGVhbiB7XG4gIGlmICh0eXBlb2YgbWF0Y2ggPT09ICdmdW5jdGlvbicpIHtcbiAgICByZXR1cm4gKGVsLCBpKSA9PiAobWF0Y2ggYXMgRmlsdGVyRnVuY3Rpb248VD4pLmNhbGwoZWwsIGksIGVsKTtcbiAgfVxuICBpZiAoaXNDaGVlcmlvPFQ+KG1hdGNoKSkge1xuICAgIHJldHVybiAoZWwpID0+IEFycmF5LnByb3RvdHlwZS5pbmNsdWRlcy5jYWxsKG1hdGNoLCBlbCk7XG4gIH1cbiAgcmV0dXJuIGZ1bmN0aW9uIChlbCkge1xuICAgIHJldHVybiBtYXRjaCA9PT0gZWw7XG4gIH07XG59XG5cbi8qKlxuICogSXRlcmF0ZXMgb3ZlciBhIGNoZWVyaW8gb2JqZWN0LCByZWR1Y2luZyB0aGUgc2V0IG9mIHNlbGVjdG9yIGVsZW1lbnRzIHRvXG4gKiB0aG9zZSB0aGF0IG1hdGNoIHRoZSBzZWxlY3RvciBvciBwYXNzIHRoZSBmdW5jdGlvbidzIHRlc3QuXG4gKlxuICogVGhpcyBpcyB0aGUgZGVmaW5pdGlvbiBmb3IgdXNpbmcgdHlwZSBndWFyZHM7IGhhdmUgYSBsb29rIGJlbG93IGZvciBvdGhlclxuICogd2F5cyB0byBpbnZva2UgdGhpcyBtZXRob2QuIFRoZSBmdW5jdGlvbiBpcyBleGVjdXRlZCBpbiB0aGUgY29udGV4dCBvZiB0aGVcbiAqIHNlbGVjdGVkIGVsZW1lbnQsIHNvIGB0aGlzYCByZWZlcnMgdG8gdGhlIGN1cnJlbnQgZWxlbWVudC5cbiAqXG4gKiBAY2F0ZWdvcnkgVHJhdmVyc2luZ1xuICogQGV4YW1wbGUgPGNhcHRpb24+RnVuY3Rpb248L2NhcHRpb24+XG4gKlxuICogYGBganNcbiAqICQoJ2xpJylcbiAqICAgLmZpbHRlcihmdW5jdGlvbiAoaSwgZWwpIHtcbiAqICAgICAvLyB0aGlzID09PSBlbFxuICogICAgIHJldHVybiAkKHRoaXMpLmF0dHIoJ2NsYXNzJykgPT09ICdvcmFuZ2UnO1xuICogICB9KVxuICogICAuYXR0cignY2xhc3MnKTsgLy89PiBvcmFuZ2VcbiAqIGBgYFxuICpcbiAqIEBwYXJhbSBtYXRjaCAtIFZhbHVlIHRvIGxvb2sgZm9yLCBmb2xsb3dpbmcgdGhlIHJ1bGVzIGFib3ZlLlxuICogQHJldHVybnMgVGhlIGZpbHRlcmVkIGNvbGxlY3Rpb24uXG4gKiBAc2VlIHtAbGluayBodHRwczovL2FwaS5qcXVlcnkuY29tL2ZpbHRlci99XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmaWx0ZXI8VCwgUyBleHRlbmRzIFQ+KFxuICB0aGlzOiBDaGVlcmlvPFQ+LFxuICBtYXRjaDogKHRoaXM6IFQsIGluZGV4OiBudW1iZXIsIHZhbHVlOiBUKSA9PiB2YWx1ZSBpcyBTLFxuKTogQ2hlZXJpbzxTPjtcbi8qKlxuICogSXRlcmF0ZXMgb3ZlciBhIGNoZWVyaW8gb2JqZWN0LCByZWR1Y2luZyB0aGUgc2V0IG9mIHNlbGVjdG9yIGVsZW1lbnRzIHRvXG4gKiB0aG9zZSB0aGF0IG1hdGNoIHRoZSBzZWxlY3RvciBvciBwYXNzIHRoZSBmdW5jdGlvbidzIHRlc3QuXG4gKlxuICogLSBXaGVuIGEgQ2hlZXJpbyBzZWxlY3Rpb24gaXMgc3BlY2lmaWVkLCByZXR1cm4gb25seSB0aGUgZWxlbWVudHMgY29udGFpbmVkIGluXG4gKiAgIHRoYXQgc2VsZWN0aW9uLlxuICogLSBXaGVuIGFuIGVsZW1lbnQgaXMgc3BlY2lmaWVkLCByZXR1cm4gb25seSB0aGF0IGVsZW1lbnQgKGlmIGl0IGlzIGNvbnRhaW5lZCBpblxuICogICB0aGUgb3JpZ2luYWwgc2VsZWN0aW9uKS5cbiAqIC0gSWYgdXNpbmcgdGhlIGZ1bmN0aW9uIG1ldGhvZCwgdGhlIGZ1bmN0aW9uIGlzIGV4ZWN1dGVkIGluIHRoZSBjb250ZXh0IG9mIHRoZVxuICogICBzZWxlY3RlZCBlbGVtZW50LCBzbyBgdGhpc2AgcmVmZXJzIHRvIHRoZSBjdXJyZW50IGVsZW1lbnQuXG4gKlxuICogQGNhdGVnb3J5IFRyYXZlcnNpbmdcbiAqIEBleGFtcGxlIDxjYXB0aW9uPlNlbGVjdG9yPC9jYXB0aW9uPlxuICpcbiAqIGBgYGpzXG4gKiAkKCdsaScpLmZpbHRlcignLm9yYW5nZScpLmF0dHIoJ2NsYXNzJyk7XG4gKiAvLz0+IG9yYW5nZVxuICogYGBgXG4gKlxuICogQGV4YW1wbGUgPGNhcHRpb24+RnVuY3Rpb248L2NhcHRpb24+XG4gKlxuICogYGBganNcbiAqICQoJ2xpJylcbiAqICAgLmZpbHRlcihmdW5jdGlvbiAoaSwgZWwpIHtcbiAqICAgICAvLyB0aGlzID09PSBlbFxuICogICAgIHJldHVybiAkKHRoaXMpLmF0dHIoJ2NsYXNzJykgPT09ICdvcmFuZ2UnO1xuICogICB9KVxuICogICAuYXR0cignY2xhc3MnKTsgLy89PiBvcmFuZ2VcbiAqIGBgYFxuICpcbiAqIEBwYXJhbSBtYXRjaCAtIFZhbHVlIHRvIGxvb2sgZm9yLCBmb2xsb3dpbmcgdGhlIHJ1bGVzIGFib3ZlLiBTZWVcbiAqICAge0BsaW5rIEFjY2VwdGVkRmlsdGVyc30uXG4gKiBAcmV0dXJucyBUaGUgZmlsdGVyZWQgY29sbGVjdGlvbi5cbiAqIEBzZWUge0BsaW5rIGh0dHBzOi8vYXBpLmpxdWVyeS5jb20vZmlsdGVyL31cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZpbHRlcjxULCBTIGV4dGVuZHMgQWNjZXB0ZWRGaWx0ZXJzPFQ+PihcbiAgdGhpczogQ2hlZXJpbzxUPixcbiAgbWF0Y2g6IFMsXG4pOiBDaGVlcmlvPFMgZXh0ZW5kcyBzdHJpbmcgPyBFbGVtZW50IDogVD47XG5leHBvcnQgZnVuY3Rpb24gZmlsdGVyPFQ+KFxuICB0aGlzOiBDaGVlcmlvPFQ+LFxuICBtYXRjaDogQWNjZXB0ZWRGaWx0ZXJzPFQ+LFxuKTogQ2hlZXJpbzx1bmtub3duPiB7XG4gIHJldHVybiB0aGlzLl9tYWtlPHVua25vd24+KFxuICAgIGZpbHRlckFycmF5KHRoaXMudG9BcnJheSgpLCBtYXRjaCwgdGhpcy5vcHRpb25zLnhtbE1vZGUsIHRoaXMuX3Jvb3Q/LlswXSksXG4gICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmaWx0ZXJBcnJheTxUPihcbiAgbm9kZXM6IFRbXSxcbiAgbWF0Y2g6IEFjY2VwdGVkRmlsdGVyczxUPixcbiAgeG1sTW9kZT86IGJvb2xlYW4sXG4gIHJvb3Q/OiBEb2N1bWVudCxcbik6IEVsZW1lbnRbXSB8IFRbXSB7XG4gIHJldHVybiB0eXBlb2YgbWF0Y2ggPT09ICdzdHJpbmcnXG4gICAgPyBzZWxlY3QuZmlsdGVyKG1hdGNoLCBub2RlcyBhcyB1bmtub3duIGFzIEFueU5vZGVbXSwgeyB4bWxNb2RlLCByb290IH0pXG4gICAgOiBub2Rlcy5maWx0ZXIoZ2V0RmlsdGVyRm48VD4obWF0Y2gpKTtcbn1cblxuLyoqXG4gKiBDaGVja3MgdGhlIGN1cnJlbnQgbGlzdCBvZiBlbGVtZW50cyBhbmQgcmV0dXJucyBgdHJ1ZWAgaWYgX2FueV8gb2YgdGhlXG4gKiBlbGVtZW50cyBtYXRjaCB0aGUgc2VsZWN0b3IuIElmIHVzaW5nIGFuIGVsZW1lbnQgb3IgQ2hlZXJpbyBzZWxlY3Rpb24sXG4gKiByZXR1cm5zIGB0cnVlYCBpZiBfYW55XyBvZiB0aGUgZWxlbWVudHMgbWF0Y2guIElmIHVzaW5nIGEgcHJlZGljYXRlIGZ1bmN0aW9uLFxuICogdGhlIGZ1bmN0aW9uIGlzIGV4ZWN1dGVkIGluIHRoZSBjb250ZXh0IG9mIHRoZSBzZWxlY3RlZCBlbGVtZW50LCBzbyBgdGhpc2BcbiAqIHJlZmVycyB0byB0aGUgY3VycmVudCBlbGVtZW50LlxuICpcbiAqIEBjYXRlZ29yeSBUcmF2ZXJzaW5nXG4gKiBAcGFyYW0gc2VsZWN0b3IgLSBTZWxlY3RvciBmb3IgdGhlIHNlbGVjdGlvbi5cbiAqIEByZXR1cm5zIFdoZXRoZXIgb3Igbm90IHRoZSBzZWxlY3RvciBtYXRjaGVzIGFuIGVsZW1lbnQgb2YgdGhlIGluc3RhbmNlLlxuICogQHNlZSB7QGxpbmsgaHR0cHM6Ly9hcGkuanF1ZXJ5LmNvbS9pcy99XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpczxUPihcbiAgdGhpczogQ2hlZXJpbzxUPixcbiAgc2VsZWN0b3I/OiBBY2NlcHRlZEZpbHRlcnM8VD4sXG4pOiBib29sZWFuIHtcbiAgY29uc3Qgbm9kZXMgPSB0aGlzLnRvQXJyYXkoKTtcbiAgcmV0dXJuIHR5cGVvZiBzZWxlY3RvciA9PT0gJ3N0cmluZydcbiAgICA/IHNlbGVjdC5zb21lKFxuICAgICAgICAobm9kZXMgYXMgdW5rbm93biBhcyBBbnlOb2RlW10pLmZpbHRlcihpc1RhZyksXG4gICAgICAgIHNlbGVjdG9yLFxuICAgICAgICB0aGlzLm9wdGlvbnMsXG4gICAgICApXG4gICAgOiBzZWxlY3RvclxuICAgICAgPyBub2Rlcy5zb21lKGdldEZpbHRlckZuPFQ+KHNlbGVjdG9yKSlcbiAgICAgIDogZmFsc2U7XG59XG5cbi8qKlxuICogUmVtb3ZlIGVsZW1lbnRzIGZyb20gdGhlIHNldCBvZiBtYXRjaGVkIGVsZW1lbnRzLiBHaXZlbiBhIENoZWVyaW8gb2JqZWN0IHRoYXRcbiAqIHJlcHJlc2VudHMgYSBzZXQgb2YgRE9NIGVsZW1lbnRzLCB0aGUgYC5ub3QoKWAgbWV0aG9kIGNvbnN0cnVjdHMgYSBuZXdcbiAqIENoZWVyaW8gb2JqZWN0IGZyb20gYSBzdWJzZXQgb2YgdGhlIG1hdGNoaW5nIGVsZW1lbnRzLiBUaGUgc3VwcGxpZWQgc2VsZWN0b3JcbiAqIGlzIHRlc3RlZCBhZ2FpbnN0IGVhY2ggZWxlbWVudDsgdGhlIGVsZW1lbnRzIHRoYXQgZG9uJ3QgbWF0Y2ggdGhlIHNlbGVjdG9yXG4gKiB3aWxsIGJlIGluY2x1ZGVkIGluIHRoZSByZXN1bHQuXG4gKlxuICogVGhlIGAubm90KClgIG1ldGhvZCBjYW4gdGFrZSBhIGZ1bmN0aW9uIGFzIGl0cyBhcmd1bWVudCBpbiB0aGUgc2FtZSB3YXkgdGhhdFxuICogYC5maWx0ZXIoKWAgZG9lcy4gRWxlbWVudHMgZm9yIHdoaWNoIHRoZSBmdW5jdGlvbiByZXR1cm5zIGB0cnVlYCBhcmUgZXhjbHVkZWRcbiAqIGZyb20gdGhlIGZpbHRlcmVkIHNldDsgYWxsIG90aGVyIGVsZW1lbnRzIGFyZSBpbmNsdWRlZC5cbiAqXG4gKiBAY2F0ZWdvcnkgVHJhdmVyc2luZ1xuICogQGV4YW1wbGUgPGNhcHRpb24+U2VsZWN0b3I8L2NhcHRpb24+XG4gKlxuICogYGBganNcbiAqICQoJ2xpJykubm90KCcuYXBwbGUnKS5sZW5ndGg7XG4gKiAvLz0+IDJcbiAqIGBgYFxuICpcbiAqIEBleGFtcGxlIDxjYXB0aW9uPkZ1bmN0aW9uPC9jYXB0aW9uPlxuICpcbiAqIGBgYGpzXG4gKiAkKCdsaScpLm5vdChmdW5jdGlvbiAoaSwgZWwpIHtcbiAqICAgLy8gdGhpcyA9PT0gZWxcbiAqICAgcmV0dXJuICQodGhpcykuYXR0cignY2xhc3MnKSA9PT0gJ29yYW5nZSc7XG4gKiB9KS5sZW5ndGg7IC8vPT4gMlxuICogYGBgXG4gKlxuICogQHBhcmFtIG1hdGNoIC0gVmFsdWUgdG8gbG9vayBmb3IsIGZvbGxvd2luZyB0aGUgcnVsZXMgYWJvdmUuXG4gKiBAcmV0dXJucyBUaGUgZmlsdGVyZWQgY29sbGVjdGlvbi5cbiAqIEBzZWUge0BsaW5rIGh0dHBzOi8vYXBpLmpxdWVyeS5jb20vbm90L31cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG5vdDxUIGV4dGVuZHMgQW55Tm9kZT4oXG4gIHRoaXM6IENoZWVyaW88VD4sXG4gIG1hdGNoOiBBY2NlcHRlZEZpbHRlcnM8VD4sXG4pOiBDaGVlcmlvPFQ+IHtcbiAgbGV0IG5vZGVzID0gdGhpcy50b0FycmF5KCk7XG5cbiAgaWYgKHR5cGVvZiBtYXRjaCA9PT0gJ3N0cmluZycpIHtcbiAgICBjb25zdCBtYXRjaGVzID0gbmV3IFNldDxBbnlOb2RlPihzZWxlY3QuZmlsdGVyKG1hdGNoLCBub2RlcywgdGhpcy5vcHRpb25zKSk7XG4gICAgbm9kZXMgPSBub2Rlcy5maWx0ZXIoKGVsKSA9PiAhbWF0Y2hlcy5oYXMoZWwpKTtcbiAgfSBlbHNlIHtcbiAgICBjb25zdCBmaWx0ZXJGbiA9IGdldEZpbHRlckZuKG1hdGNoKTtcbiAgICBub2RlcyA9IG5vZGVzLmZpbHRlcigoZWwsIGkpID0+ICFmaWx0ZXJGbihlbCwgaSkpO1xuICB9XG5cbiAgcmV0dXJuIHRoaXMuX21ha2Uobm9kZXMpO1xufVxuXG4vKipcbiAqIEZpbHRlcnMgdGhlIHNldCBvZiBtYXRjaGVkIGVsZW1lbnRzIHRvIG9ubHkgdGhvc2Ugd2hpY2ggaGF2ZSB0aGUgZ2l2ZW4gRE9NXG4gKiBlbGVtZW50IGFzIGEgZGVzY2VuZGFudCBvciB3aGljaCBoYXZlIGEgZGVzY2VuZGFudCB0aGF0IG1hdGNoZXMgdGhlIGdpdmVuXG4gKiBzZWxlY3Rvci4gRXF1aXZhbGVudCB0byBgLmZpbHRlcignOmhhcyhzZWxlY3RvciknKWAuXG4gKlxuICogQGNhdGVnb3J5IFRyYXZlcnNpbmdcbiAqIEBleGFtcGxlIDxjYXB0aW9uPlNlbGVjdG9yPC9jYXB0aW9uPlxuICpcbiAqIGBgYGpzXG4gKiAkKCd1bCcpLmhhcygnLnBlYXInKS5hdHRyKCdpZCcpO1xuICogLy89PiBmcnVpdHNcbiAqIGBgYFxuICpcbiAqIEBleGFtcGxlIDxjYXB0aW9uPkVsZW1lbnQ8L2NhcHRpb24+XG4gKlxuICogYGBganNcbiAqICQoJ3VsJykuaGFzKCQoJy5wZWFyJylbMF0pLmF0dHIoJ2lkJyk7XG4gKiAvLz0+IGZydWl0c1xuICogYGBgXG4gKlxuICogQHBhcmFtIHNlbGVjdG9yT3JIYXlzdGFjayAtIEVsZW1lbnQgdG8gbG9vayBmb3IuXG4gKiBAcmV0dXJucyBUaGUgZmlsdGVyZWQgY29sbGVjdGlvbi5cbiAqIEBzZWUge0BsaW5rIGh0dHBzOi8vYXBpLmpxdWVyeS5jb20vaGFzL31cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGhhcyhcbiAgdGhpczogQ2hlZXJpbzxBbnlOb2RlIHwgRWxlbWVudD4sXG4gIHNlbGVjdG9yT3JIYXlzdGFjazogc3RyaW5nIHwgQ2hlZXJpbzxFbGVtZW50PiB8IEVsZW1lbnQsXG4pOiBDaGVlcmlvPEFueU5vZGUgfCBFbGVtZW50PiB7XG4gIHJldHVybiB0aGlzLmZpbHRlcihcbiAgICB0eXBlb2Ygc2VsZWN0b3JPckhheXN0YWNrID09PSAnc3RyaW5nJ1xuICAgICAgPyAvLyBVc2luZyB0aGUgYDpoYXNgIHNlbGVjdG9yIGhlcmUgc2hvcnQtY2lyY3VpdHMgc2VhcmNoZXMuXG4gICAgICAgIGA6aGFzKCR7c2VsZWN0b3JPckhheXN0YWNrfSlgXG4gICAgICA6IChfLCBlbCkgPT4gdGhpcy5fbWFrZShlbCkuZmluZChzZWxlY3Rvck9ySGF5c3RhY2spLmxlbmd0aCA+IDAsXG4gICk7XG59XG5cbi8qKlxuICogV2lsbCBzZWxlY3QgdGhlIGZpcnN0IGVsZW1lbnQgb2YgYSBjaGVlcmlvIG9iamVjdC5cbiAqXG4gKiBAY2F0ZWdvcnkgVHJhdmVyc2luZ1xuICogQGV4YW1wbGVcbiAqXG4gKiBgYGBqc1xuICogJCgnI2ZydWl0cycpLmNoaWxkcmVuKCkuZmlyc3QoKS50ZXh0KCk7XG4gKiAvLz0+IEFwcGxlXG4gKiBgYGBcbiAqXG4gKiBAcmV0dXJucyBUaGUgZmlyc3QgZWxlbWVudC5cbiAqIEBzZWUge0BsaW5rIGh0dHBzOi8vYXBpLmpxdWVyeS5jb20vZmlyc3QvfVxuICovXG5leHBvcnQgZnVuY3Rpb24gZmlyc3Q8VCBleHRlbmRzIEFueU5vZGU+KHRoaXM6IENoZWVyaW88VD4pOiBDaGVlcmlvPFQ+IHtcbiAgcmV0dXJuIHRoaXMubGVuZ3RoID4gMSA/IHRoaXMuX21ha2UodGhpc1swXSkgOiB0aGlzO1xufVxuXG4vKipcbiAqIFdpbGwgc2VsZWN0IHRoZSBsYXN0IGVsZW1lbnQgb2YgYSBjaGVlcmlvIG9iamVjdC5cbiAqXG4gKiBAY2F0ZWdvcnkgVHJhdmVyc2luZ1xuICogQGV4YW1wbGVcbiAqXG4gKiBgYGBqc1xuICogJCgnI2ZydWl0cycpLmNoaWxkcmVuKCkubGFzdCgpLnRleHQoKTtcbiAqIC8vPT4gUGVhclxuICogYGBgXG4gKlxuICogQHJldHVybnMgVGhlIGxhc3QgZWxlbWVudC5cbiAqIEBzZWUge0BsaW5rIGh0dHBzOi8vYXBpLmpxdWVyeS5jb20vbGFzdC99XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBsYXN0PFQ+KHRoaXM6IENoZWVyaW88VD4pOiBDaGVlcmlvPFQ+IHtcbiAgcmV0dXJuIHRoaXMubGVuZ3RoID4gMCA/IHRoaXMuX21ha2UodGhpc1t0aGlzLmxlbmd0aCAtIDFdKSA6IHRoaXM7XG59XG5cbi8qKlxuICogUmVkdWNlIHRoZSBzZXQgb2YgbWF0Y2hlZCBlbGVtZW50cyB0byB0aGUgb25lIGF0IHRoZSBzcGVjaWZpZWQgaW5kZXguIFVzZVxuICogYC5lcSgtaSlgIHRvIGNvdW50IGJhY2t3YXJkcyBmcm9tIHRoZSBsYXN0IHNlbGVjdGVkIGVsZW1lbnQuXG4gKlxuICogQGNhdGVnb3J5IFRyYXZlcnNpbmdcbiAqIEBleGFtcGxlXG4gKlxuICogYGBganNcbiAqICQoJ2xpJykuZXEoMCkudGV4dCgpO1xuICogLy89PiBBcHBsZVxuICpcbiAqICQoJ2xpJykuZXEoLTEpLnRleHQoKTtcbiAqIC8vPT4gUGVhclxuICogYGBgXG4gKlxuICogQHBhcmFtIGkgLSBJbmRleCBvZiB0aGUgZWxlbWVudCB0byBzZWxlY3QuXG4gKiBAcmV0dXJucyBUaGUgZWxlbWVudCBhdCB0aGUgYGlgdGggcG9zaXRpb24uXG4gKiBAc2VlIHtAbGluayBodHRwczovL2FwaS5qcXVlcnkuY29tL2VxL31cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGVxPFQ+KHRoaXM6IENoZWVyaW88VD4sIGk6IG51bWJlcik6IENoZWVyaW88VD4ge1xuICBpID0gK2k7XG5cbiAgLy8gVXNlIHRoZSBmaXJzdCBpZGVudGl0eSBvcHRpbWl6YXRpb24gaWYgcG9zc2libGVcbiAgaWYgKGkgPT09IDAgJiYgdGhpcy5sZW5ndGggPD0gMSkgcmV0dXJuIHRoaXM7XG5cbiAgaWYgKGkgPCAwKSBpID0gdGhpcy5sZW5ndGggKyBpO1xuICByZXR1cm4gdGhpcy5fbWFrZSh0aGlzW2ldID8/IFtdKTtcbn1cblxuLyoqXG4gKiBSZXRyaWV2ZSBvbmUgb2YgdGhlIGVsZW1lbnRzIG1hdGNoZWQgYnkgdGhlIENoZWVyaW8gb2JqZWN0LCBhdCB0aGUgYGlgdGhcbiAqIHBvc2l0aW9uLlxuICpcbiAqIEBjYXRlZ29yeSBUcmF2ZXJzaW5nXG4gKiBAZXhhbXBsZVxuICpcbiAqIGBgYGpzXG4gKiAkKCdsaScpLmdldCgwKS50YWdOYW1lO1xuICogLy89PiBsaVxuICogYGBgXG4gKlxuICogQHBhcmFtIGkgLSBFbGVtZW50IHRvIHJldHJpZXZlLlxuICogQHJldHVybnMgVGhlIGVsZW1lbnQgYXQgdGhlIGBpYHRoIHBvc2l0aW9uLlxuICogQHNlZSB7QGxpbmsgaHR0cHM6Ly9hcGkuanF1ZXJ5LmNvbS9nZXQvfVxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0PFQ+KHRoaXM6IENoZWVyaW88VD4sIGk6IG51bWJlcik6IFQgfCB1bmRlZmluZWQ7XG4vKipcbiAqIFJldHJpZXZlIGFsbCBlbGVtZW50cyBtYXRjaGVkIGJ5IHRoZSBDaGVlcmlvIG9iamVjdCwgYXMgYW4gYXJyYXkuXG4gKlxuICogQGNhdGVnb3J5IFRyYXZlcnNpbmdcbiAqIEBleGFtcGxlXG4gKlxuICogYGBganNcbiAqICQoJ2xpJykuZ2V0KCkubGVuZ3RoO1xuICogLy89PiAzXG4gKiBgYGBcbiAqXG4gKiBAcmV0dXJucyBBbGwgZWxlbWVudHMgbWF0Y2hlZCBieSB0aGUgQ2hlZXJpbyBvYmplY3QuXG4gKiBAc2VlIHtAbGluayBodHRwczovL2FwaS5qcXVlcnkuY29tL2dldC99XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXQ8VD4odGhpczogQ2hlZXJpbzxUPik6IFRbXTtcbmV4cG9ydCBmdW5jdGlvbiBnZXQ8VD4odGhpczogQ2hlZXJpbzxUPiwgaT86IG51bWJlcik6IFQgfCBUW10ge1xuICBpZiAoaSA9PSBudWxsKSB7XG4gICAgcmV0dXJuIHRoaXMudG9BcnJheSgpO1xuICB9XG4gIHJldHVybiB0aGlzW2kgPCAwID8gdGhpcy5sZW5ndGggKyBpIDogaV07XG59XG5cbi8qKlxuICogUmV0cmlldmUgYWxsIHRoZSBET00gZWxlbWVudHMgY29udGFpbmVkIGluIHRoZSBqUXVlcnkgc2V0IGFzIGFuIGFycmF5LlxuICpcbiAqIEBleGFtcGxlXG4gKlxuICogYGBganNcbiAqICQoJ2xpJykudG9BcnJheSgpO1xuICogLy89PiBbIHsuLi59LCB7Li4ufSwgey4uLn0gXVxuICogYGBgXG4gKlxuICogQHJldHVybnMgVGhlIGNvbnRhaW5lZCBpdGVtcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvQXJyYXk8VD4odGhpczogQ2hlZXJpbzxUPik6IFRbXSB7XG4gIHJldHVybiBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbCh0aGlzKTtcbn1cblxuLyoqXG4gKiBTZWFyY2ggZm9yIGEgZ2l2ZW4gZWxlbWVudCBmcm9tIGFtb25nIHRoZSBtYXRjaGVkIGVsZW1lbnRzLlxuICpcbiAqIEBjYXRlZ29yeSBUcmF2ZXJzaW5nXG4gKiBAZXhhbXBsZVxuICpcbiAqIGBgYGpzXG4gKiAkKCcucGVhcicpLmluZGV4KCk7XG4gKiAvLz0+IDIgJCgnLm9yYW5nZScpLmluZGV4KCdsaScpO1xuICogLy89PiAxXG4gKiAkKCcuYXBwbGUnKS5pbmRleCgkKCcjZnJ1aXQsIGxpJykpO1xuICogLy89PiAxXG4gKiBgYGBcbiAqXG4gKiBAcGFyYW0gc2VsZWN0b3JPck5lZWRsZSAtIEVsZW1lbnQgdG8gbG9vayBmb3IuXG4gKiBAcmV0dXJucyBUaGUgaW5kZXggb2YgdGhlIGVsZW1lbnQuXG4gKiBAc2VlIHtAbGluayBodHRwczovL2FwaS5qcXVlcnkuY29tL2luZGV4L31cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGluZGV4PFQgZXh0ZW5kcyBBbnlOb2RlPihcbiAgdGhpczogQ2hlZXJpbzxUPixcbiAgc2VsZWN0b3JPck5lZWRsZT86IHN0cmluZyB8IENoZWVyaW88QW55Tm9kZT4gfCBBbnlOb2RlLFxuKTogbnVtYmVyIHtcbiAgbGV0ICRoYXlzdGFjazogQ2hlZXJpbzxBbnlOb2RlPjtcbiAgbGV0IG5lZWRsZTogQW55Tm9kZTtcblxuICBpZiAoc2VsZWN0b3JPck5lZWRsZSA9PSBudWxsKSB7XG4gICAgJGhheXN0YWNrID0gdGhpcy5wYXJlbnQoKS5jaGlsZHJlbigpO1xuICAgIG5lZWRsZSA9IHRoaXNbMF07XG4gIH0gZWxzZSBpZiAodHlwZW9mIHNlbGVjdG9yT3JOZWVkbGUgPT09ICdzdHJpbmcnKSB7XG4gICAgJGhheXN0YWNrID0gdGhpcy5fbWFrZTxBbnlOb2RlPihzZWxlY3Rvck9yTmVlZGxlKTtcbiAgICBuZWVkbGUgPSB0aGlzWzBdO1xuICB9IGVsc2Uge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdGhpcy1hbGlhcywgdW5pY29ybi9uby10aGlzLWFzc2lnbm1lbnRcbiAgICAkaGF5c3RhY2sgPSB0aGlzO1xuICAgIG5lZWRsZSA9IGlzQ2hlZXJpbyhzZWxlY3Rvck9yTmVlZGxlKVxuICAgICAgPyBzZWxlY3Rvck9yTmVlZGxlWzBdXG4gICAgICA6IHNlbGVjdG9yT3JOZWVkbGU7XG4gIH1cblxuICByZXR1cm4gQXJyYXkucHJvdG90eXBlLmluZGV4T2YuY2FsbCgkaGF5c3RhY2ssIG5lZWRsZSk7XG59XG5cbi8qKlxuICogR2V0cyB0aGUgZWxlbWVudHMgbWF0Y2hpbmcgdGhlIHNwZWNpZmllZCByYW5nZSAoMC1iYXNlZCBwb3NpdGlvbikuXG4gKlxuICogQGNhdGVnb3J5IFRyYXZlcnNpbmdcbiAqIEBleGFtcGxlXG4gKlxuICogYGBganNcbiAqICQoJ2xpJykuc2xpY2UoMSkuZXEoMCkudGV4dCgpO1xuICogLy89PiAnT3JhbmdlJ1xuICpcbiAqICQoJ2xpJykuc2xpY2UoMSwgMikubGVuZ3RoO1xuICogLy89PiAxXG4gKiBgYGBcbiAqXG4gKiBAcGFyYW0gc3RhcnQgLSBBIHBvc2l0aW9uIGF0IHdoaWNoIHRoZSBlbGVtZW50cyBiZWdpbiB0byBiZSBzZWxlY3RlZC4gSWZcbiAqICAgbmVnYXRpdmUsIGl0IGluZGljYXRlcyBhbiBvZmZzZXQgZnJvbSB0aGUgZW5kIG9mIHRoZSBzZXQuXG4gKiBAcGFyYW0gZW5kIC0gQSBwb3NpdGlvbiBhdCB3aGljaCB0aGUgZWxlbWVudHMgc3RvcCBiZWluZyBzZWxlY3RlZC4gSWZcbiAqICAgbmVnYXRpdmUsIGl0IGluZGljYXRlcyBhbiBvZmZzZXQgZnJvbSB0aGUgZW5kIG9mIHRoZSBzZXQuIElmIG9taXR0ZWQsIHRoZVxuICogICByYW5nZSBjb250aW51ZXMgdW50aWwgdGhlIGVuZCBvZiB0aGUgc2V0LlxuICogQHJldHVybnMgVGhlIGVsZW1lbnRzIG1hdGNoaW5nIHRoZSBzcGVjaWZpZWQgcmFuZ2UuXG4gKiBAc2VlIHtAbGluayBodHRwczovL2FwaS5qcXVlcnkuY29tL3NsaWNlL31cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNsaWNlPFQ+KFxuICB0aGlzOiBDaGVlcmlvPFQ+LFxuICBzdGFydD86IG51bWJlcixcbiAgZW5kPzogbnVtYmVyLFxuKTogQ2hlZXJpbzxUPiB7XG4gIHJldHVybiB0aGlzLl9tYWtlKEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKHRoaXMsIHN0YXJ0LCBlbmQpKTtcbn1cblxuLyoqXG4gKiBFbmQgdGhlIG1vc3QgcmVjZW50IGZpbHRlcmluZyBvcGVyYXRpb24gaW4gdGhlIGN1cnJlbnQgY2hhaW4gYW5kIHJldHVybiB0aGVcbiAqIHNldCBvZiBtYXRjaGVkIGVsZW1lbnRzIHRvIGl0cyBwcmV2aW91cyBzdGF0ZS5cbiAqXG4gKiBAY2F0ZWdvcnkgVHJhdmVyc2luZ1xuICogQGV4YW1wbGVcbiAqXG4gKiBgYGBqc1xuICogJCgnbGknKS5lcSgwKS5lbmQoKS5sZW5ndGg7XG4gKiAvLz0+IDNcbiAqIGBgYFxuICpcbiAqIEByZXR1cm5zIFRoZSBwcmV2aW91cyBzdGF0ZSBvZiB0aGUgc2V0IG9mIG1hdGNoZWQgZWxlbWVudHMuXG4gKiBAc2VlIHtAbGluayBodHRwczovL2FwaS5qcXVlcnkuY29tL2VuZC99XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBlbmQ8VD4odGhpczogQ2hlZXJpbzxUPik6IENoZWVyaW88QW55Tm9kZT4ge1xuICByZXR1cm4gdGhpcy5wcmV2T2JqZWN0ID8/IHRoaXMuX21ha2UoW10pO1xufVxuXG4vKipcbiAqIEFkZCBlbGVtZW50cyB0byB0aGUgc2V0IG9mIG1hdGNoZWQgZWxlbWVudHMuXG4gKlxuICogQGNhdGVnb3J5IFRyYXZlcnNpbmdcbiAqIEBleGFtcGxlXG4gKlxuICogYGBganNcbiAqICQoJy5hcHBsZScpLmFkZCgnLm9yYW5nZScpLmxlbmd0aDtcbiAqIC8vPT4gMlxuICogYGBgXG4gKlxuICogQHBhcmFtIG90aGVyIC0gRWxlbWVudHMgdG8gYWRkLlxuICogQHBhcmFtIGNvbnRleHQgLSBPcHRpb25hbGx5IHRoZSBjb250ZXh0IG9mIHRoZSBuZXcgc2VsZWN0aW9uLlxuICogQHJldHVybnMgVGhlIGNvbWJpbmVkIHNldC5cbiAqIEBzZWUge0BsaW5rIGh0dHBzOi8vYXBpLmpxdWVyeS5jb20vYWRkL31cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFkZDxTIGV4dGVuZHMgQW55Tm9kZSwgVCBleHRlbmRzIEFueU5vZGU+KFxuICB0aGlzOiBDaGVlcmlvPFQ+LFxuICBvdGhlcjogc3RyaW5nIHwgQ2hlZXJpbzxTPiB8IFMgfCBTW10sXG4gIGNvbnRleHQ/OiBDaGVlcmlvPFM+IHwgc3RyaW5nLFxuKTogQ2hlZXJpbzxTIHwgVD4ge1xuICBjb25zdCBzZWxlY3Rpb24gPSB0aGlzLl9tYWtlKG90aGVyLCBjb250ZXh0KTtcbiAgY29uc3QgY29udGVudHMgPSB1bmlxdWVTb3J0KFsuLi50aGlzLmdldCgpLCAuLi5zZWxlY3Rpb24uZ2V0KCldKTtcbiAgcmV0dXJuIHRoaXMuX21ha2UoY29udGVudHMpO1xufVxuXG4vKipcbiAqIEFkZCB0aGUgcHJldmlvdXMgc2V0IG9mIGVsZW1lbnRzIG9uIHRoZSBzdGFjayB0byB0aGUgY3VycmVudCBzZXQsIG9wdGlvbmFsbHlcbiAqIGZpbHRlcmVkIGJ5IGEgc2VsZWN0b3IuXG4gKlxuICogQGNhdGVnb3J5IFRyYXZlcnNpbmdcbiAqIEBleGFtcGxlXG4gKlxuICogYGBganNcbiAqICQoJ2xpJykuZXEoMCkuYWRkQmFjaygnLm9yYW5nZScpLmxlbmd0aDtcbiAqIC8vPT4gMlxuICogYGBgXG4gKlxuICogQHBhcmFtIHNlbGVjdG9yIC0gU2VsZWN0b3IgZm9yIHRoZSBlbGVtZW50cyB0byBhZGQuXG4gKiBAcmV0dXJucyBUaGUgY29tYmluZWQgc2V0LlxuICogQHNlZSB7QGxpbmsgaHR0cHM6Ly9hcGkuanF1ZXJ5LmNvbS9hZGRCYWNrL31cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFkZEJhY2s8VCBleHRlbmRzIEFueU5vZGU+KFxuICB0aGlzOiBDaGVlcmlvPFQ+LFxuICBzZWxlY3Rvcj86IHN0cmluZyxcbik6IENoZWVyaW88QW55Tm9kZT4ge1xuICByZXR1cm4gdGhpcy5wcmV2T2JqZWN0XG4gICAgPyB0aGlzLmFkZChzZWxlY3RvciA/IHRoaXMucHJldk9iamVjdC5maWx0ZXIoc2VsZWN0b3IpIDogdGhpcy5wcmV2T2JqZWN0KVxuICAgIDogdGhpcztcbn1cbiIsICJpbXBvcnQgeyByZW1vdmVFbGVtZW50IH0gZnJvbSAnZG9tdXRpbHMnO1xuaW1wb3J0IHtcbiAgdHlwZSBBbnlOb2RlLFxuICBEb2N1bWVudCxcbiAgdHlwZSBQYXJlbnROb2RlLFxuICBpc0RvY3VtZW50IGFzIGNoZWNrSXNEb2N1bWVudCxcbn0gZnJvbSAnZG9taGFuZGxlcic7XG5pbXBvcnQgdHlwZSB7IEludGVybmFsT3B0aW9ucyB9IGZyb20gJy4vb3B0aW9ucy5qcyc7XG5cbi8qKlxuICogR2V0IHRoZSBwYXJzZSBmdW5jdGlvbiB3aXRoIG9wdGlvbnMuXG4gKlxuICogQHBhcmFtIHBhcnNlciAtIFRoZSBwYXJzZXIgZnVuY3Rpb24uXG4gKiBAcmV0dXJucyBUaGUgcGFyc2UgZnVuY3Rpb24gd2l0aCBvcHRpb25zLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0UGFyc2UoXG4gIHBhcnNlcjogKFxuICAgIGNvbnRlbnQ6IHN0cmluZyxcbiAgICBvcHRpb25zOiBJbnRlcm5hbE9wdGlvbnMsXG4gICAgaXNEb2N1bWVudDogYm9vbGVhbixcbiAgICBjb250ZXh0OiBQYXJlbnROb2RlIHwgbnVsbCxcbiAgKSA9PiBEb2N1bWVudCxcbikge1xuICAvKipcbiAgICogUGFyc2UgYSBIVE1MIHN0cmluZyBvciBhIG5vZGUuXG4gICAqXG4gICAqIEBwYXJhbSBjb250ZW50IC0gVGhlIEhUTUwgc3RyaW5nIG9yIG5vZGUuXG4gICAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIHBhcnNlciBvcHRpb25zLlxuICAgKiBAcGFyYW0gaXNEb2N1bWVudCAtIElmIGBjb250ZW50YCBpcyBhIGRvY3VtZW50LlxuICAgKiBAcGFyYW0gY29udGV4dCAtIFRoZSBjb250ZXh0IG5vZGUgaW4gdGhlIERPTSB0cmVlLlxuICAgKiBAcmV0dXJucyBUaGUgcGFyc2VkIGRvY3VtZW50IG5vZGUuXG4gICAqL1xuICByZXR1cm4gZnVuY3Rpb24gcGFyc2UoXG4gICAgY29udGVudDogc3RyaW5nIHwgRG9jdW1lbnQgfCBBbnlOb2RlIHwgQW55Tm9kZVtdIHwgQnVmZmVyLFxuICAgIG9wdGlvbnM6IEludGVybmFsT3B0aW9ucyxcbiAgICBpc0RvY3VtZW50OiBib29sZWFuLFxuICAgIGNvbnRleHQ6IFBhcmVudE5vZGUgfCBudWxsLFxuICApOiBEb2N1bWVudCB7XG4gICAgaWYgKHR5cGVvZiBCdWZmZXIgIT09ICd1bmRlZmluZWQnICYmIEJ1ZmZlci5pc0J1ZmZlcihjb250ZW50KSkge1xuICAgICAgY29udGVudCA9IGNvbnRlbnQudG9TdHJpbmcoKTtcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIGNvbnRlbnQgPT09ICdzdHJpbmcnKSB7XG4gICAgICByZXR1cm4gcGFyc2VyKGNvbnRlbnQsIG9wdGlvbnMsIGlzRG9jdW1lbnQsIGNvbnRleHQpO1xuICAgIH1cblxuICAgIGNvbnN0IGRvYyA9IGNvbnRlbnQgYXMgQW55Tm9kZSB8IEFueU5vZGVbXSB8IERvY3VtZW50O1xuXG4gICAgaWYgKCFBcnJheS5pc0FycmF5KGRvYykgJiYgY2hlY2tJc0RvY3VtZW50KGRvYykpIHtcbiAgICAgIC8vIElmIGBkb2NgIGlzIGFscmVhZHkgYSByb290LCBqdXN0IHJldHVybiBpdFxuICAgICAgcmV0dXJuIGRvYztcbiAgICB9XG5cbiAgICAvLyBBZGQgY29uZW50IHRvIG5ldyByb290IGVsZW1lbnRcbiAgICBjb25zdCByb290ID0gbmV3IERvY3VtZW50KFtdKTtcblxuICAgIC8vIFVwZGF0ZSB0aGUgRE9NIHVzaW5nIHRoZSByb290XG4gICAgdXBkYXRlKGRvYywgcm9vdCk7XG5cbiAgICByZXR1cm4gcm9vdDtcbiAgfTtcbn1cblxuLyoqXG4gKiBVcGRhdGUgdGhlIGRvbSBzdHJ1Y3R1cmUsIGZvciBvbmUgY2hhbmdlZCBsYXllci5cbiAqXG4gKiBAcGFyYW0gbmV3Q2hpbGRzIC0gVGhlIG5ldyBjaGlsZHJlbi5cbiAqIEBwYXJhbSBwYXJlbnQgLSBUaGUgbmV3IHBhcmVudC5cbiAqIEByZXR1cm5zIFRoZSBwYXJlbnQgbm9kZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVwZGF0ZShcbiAgbmV3Q2hpbGRzOiBBbnlOb2RlW10gfCBBbnlOb2RlLFxuICBwYXJlbnQ6IFBhcmVudE5vZGUgfCBudWxsLFxuKTogUGFyZW50Tm9kZSB8IG51bGwge1xuICAvLyBOb3JtYWxpemVcbiAgY29uc3QgYXJyID0gQXJyYXkuaXNBcnJheShuZXdDaGlsZHMpID8gbmV3Q2hpbGRzIDogW25ld0NoaWxkc107XG5cbiAgLy8gVXBkYXRlIHBhcmVudFxuICBpZiAocGFyZW50KSB7XG4gICAgcGFyZW50LmNoaWxkcmVuID0gYXJyO1xuICB9IGVsc2Uge1xuICAgIHBhcmVudCA9IG51bGw7XG4gIH1cblxuICAvLyBVcGRhdGUgbmVpZ2hib3JzXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgYXJyLmxlbmd0aDsgaSsrKSB7XG4gICAgY29uc3Qgbm9kZSA9IGFycltpXTtcblxuICAgIC8vIENsZWFubHkgcmVtb3ZlIGV4aXN0aW5nIG5vZGVzIGZyb20gdGhlaXIgcHJldmlvdXMgc3RydWN0dXJlcy5cbiAgICBpZiAobm9kZS5wYXJlbnQgJiYgbm9kZS5wYXJlbnQuY2hpbGRyZW4gIT09IGFycikge1xuICAgICAgcmVtb3ZlRWxlbWVudChub2RlKTtcbiAgICB9XG5cbiAgICBpZiAocGFyZW50KSB7XG4gICAgICBub2RlLnByZXYgPSBhcnJbaSAtIDFdIHx8IG51bGw7XG4gICAgICBub2RlLm5leHQgPSBhcnJbaSArIDFdIHx8IG51bGw7XG4gICAgfSBlbHNlIHtcbiAgICAgIG5vZGUucHJldiA9IG5vZGUubmV4dCA9IG51bGw7XG4gICAgfVxuXG4gICAgbm9kZS5wYXJlbnQgPSBwYXJlbnQ7XG4gIH1cblxuICByZXR1cm4gcGFyZW50O1xufVxuIiwgIi8qKlxuICogTWV0aG9kcyBmb3IgbW9kaWZ5aW5nIHRoZSBET00gc3RydWN0dXJlLlxuICpcbiAqIEBtb2R1bGUgY2hlZXJpby9tYW5pcHVsYXRpb25cbiAqL1xuXG5pbXBvcnQge1xuICBpc1RhZyxcbiAgVGV4dCxcbiAgaGFzQ2hpbGRyZW4sXG4gIGNsb25lTm9kZSxcbiAgRG9jdW1lbnQsXG4gIHR5cGUgUGFyZW50Tm9kZSxcbiAgdHlwZSBBbnlOb2RlLFxuICB0eXBlIEVsZW1lbnQsXG59IGZyb20gJ2RvbWhhbmRsZXInO1xuaW1wb3J0IHsgdXBkYXRlIGFzIHVwZGF0ZURPTSB9IGZyb20gJy4uL3BhcnNlLmpzJztcbmltcG9ydCB7IHRleHQgYXMgc3RhdGljVGV4dCB9IGZyb20gJy4uL3N0YXRpYy5qcyc7XG5pbXBvcnQgeyBkb21FYWNoLCBpc0h0bWwsIGlzQ2hlZXJpbyB9IGZyb20gJy4uL3V0aWxzLmpzJztcbmltcG9ydCB7IHJlbW92ZUVsZW1lbnQgfSBmcm9tICdkb211dGlscyc7XG5pbXBvcnQgdHlwZSB7IENoZWVyaW8gfSBmcm9tICcuLi9jaGVlcmlvLmpzJztcbmltcG9ydCB0eXBlIHsgQmFzaWNBY2NlcHRlZEVsZW1zLCBBY2NlcHRlZEVsZW1zIH0gZnJvbSAnLi4vdHlwZXMuanMnO1xuXG4vKipcbiAqIENyZWF0ZSBhbiBhcnJheSBvZiBub2RlcywgcmVjdXJzaW5nIGludG8gYXJyYXlzIGFuZCBwYXJzaW5nIHN0cmluZ3MgaWZcbiAqIG5lY2Vzc2FyeS5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQGNhdGVnb3J5IE1hbmlwdWxhdGlvblxuICogQHBhcmFtIGVsZW0gLSBFbGVtZW50cyB0byBtYWtlIGFuIGFycmF5IG9mLlxuICogQHBhcmFtIGNsb25lIC0gT3B0aW9uYWxseSBjbG9uZSBub2Rlcy5cbiAqIEByZXR1cm5zIFRoZSBhcnJheSBvZiBub2Rlcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIF9tYWtlRG9tQXJyYXk8VCBleHRlbmRzIEFueU5vZGU+KFxuICB0aGlzOiBDaGVlcmlvPFQ+LFxuICBlbGVtPzogQmFzaWNBY2NlcHRlZEVsZW1zPEFueU5vZGU+IHwgQmFzaWNBY2NlcHRlZEVsZW1zPEFueU5vZGU+W10sXG4gIGNsb25lPzogYm9vbGVhbixcbik6IEFueU5vZGVbXSB7XG4gIGlmIChlbGVtID09IG51bGwpIHtcbiAgICByZXR1cm4gW107XG4gIH1cblxuICBpZiAodHlwZW9mIGVsZW0gPT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIHRoaXMuX3BhcnNlKGVsZW0sIHRoaXMub3B0aW9ucywgZmFsc2UsIG51bGwpLmNoaWxkcmVuLnNsaWNlKDApO1xuICB9XG5cbiAgaWYgKCdsZW5ndGgnIGluIGVsZW0pIHtcbiAgICBpZiAoZWxlbS5sZW5ndGggPT09IDEpIHtcbiAgICAgIHJldHVybiB0aGlzLl9tYWtlRG9tQXJyYXkoZWxlbVswXSwgY2xvbmUpO1xuICAgIH1cblxuICAgIGNvbnN0IHJlc3VsdDogQW55Tm9kZVtdID0gW107XG5cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGVsZW0ubGVuZ3RoOyBpKyspIHtcbiAgICAgIGNvbnN0IGVsID0gZWxlbVtpXTtcblxuICAgICAgaWYgKHR5cGVvZiBlbCA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgaWYgKGVsID09IG51bGwpIHtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghKCdsZW5ndGgnIGluIGVsKSkge1xuICAgICAgICAgIHJlc3VsdC5wdXNoKGNsb25lID8gY2xvbmVOb2RlKGVsLCB0cnVlKSA6IGVsKTtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByZXN1bHQucHVzaCguLi50aGlzLl9tYWtlRG9tQXJyYXkoZWwsIGNsb25lKSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIHJldHVybiBbY2xvbmUgPyBjbG9uZU5vZGUoZWxlbSwgdHJ1ZSkgOiBlbGVtXTtcbn1cblxuZnVuY3Rpb24gX2luc2VydChcbiAgY29uY2F0ZW5hdG9yOiAoXG4gICAgZG9tOiBBbnlOb2RlW10sXG4gICAgY2hpbGRyZW46IEFueU5vZGVbXSxcbiAgICBwYXJlbnQ6IFBhcmVudE5vZGUsXG4gICkgPT4gdm9pZCxcbikge1xuICByZXR1cm4gZnVuY3Rpb24gPFQgZXh0ZW5kcyBBbnlOb2RlPihcbiAgICB0aGlzOiBDaGVlcmlvPFQ+LFxuICAgIC4uLmVsZW1zOlxuICAgICAgfCBbXG4gICAgICAgICAgKFxuICAgICAgICAgICAgdGhpczogQW55Tm9kZSxcbiAgICAgICAgICAgIGk6IG51bWJlcixcbiAgICAgICAgICAgIGh0bWw6IHN0cmluZyxcbiAgICAgICAgICApID0+IEJhc2ljQWNjZXB0ZWRFbGVtczxBbnlOb2RlPixcbiAgICAgICAgXVxuICAgICAgfCBCYXNpY0FjY2VwdGVkRWxlbXM8QW55Tm9kZT5bXVxuICApIHtcbiAgICBjb25zdCBsYXN0SWR4ID0gdGhpcy5sZW5ndGggLSAxO1xuXG4gICAgcmV0dXJuIGRvbUVhY2godGhpcywgKGVsLCBpKSA9PiB7XG4gICAgICBpZiAoIWhhc0NoaWxkcmVuKGVsKSkgcmV0dXJuO1xuXG4gICAgICBjb25zdCBkb21TcmMgPVxuICAgICAgICB0eXBlb2YgZWxlbXNbMF0gPT09ICdmdW5jdGlvbidcbiAgICAgICAgICA/IGVsZW1zWzBdLmNhbGwoZWwsIGksIHRoaXMuX3JlbmRlcihlbC5jaGlsZHJlbikpXG4gICAgICAgICAgOiAoZWxlbXMgYXMgQmFzaWNBY2NlcHRlZEVsZW1zPEFueU5vZGU+W10pO1xuXG4gICAgICBjb25zdCBkb20gPSB0aGlzLl9tYWtlRG9tQXJyYXkoZG9tU3JjLCBpIDwgbGFzdElkeCk7XG4gICAgICBjb25jYXRlbmF0b3IoZG9tLCBlbC5jaGlsZHJlbiwgZWwpO1xuICAgIH0pO1xuICB9O1xufVxuXG4vKipcbiAqIE1vZGlmeSBhbiBhcnJheSBpbi1wbGFjZSwgcmVtb3Zpbmcgc29tZSBudW1iZXIgb2YgZWxlbWVudHMgYW5kIGFkZGluZyBuZXdcbiAqIGVsZW1lbnRzIGRpcmVjdGx5IGZvbGxvd2luZyB0aGVtLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAY2F0ZWdvcnkgTWFuaXB1bGF0aW9uXG4gKiBAcGFyYW0gYXJyYXkgLSBUYXJnZXQgYXJyYXkgdG8gc3BsaWNlLlxuICogQHBhcmFtIHNwbGljZUlkeCAtIEluZGV4IGF0IHdoaWNoIHRvIGJlZ2luIGNoYW5naW5nIHRoZSBhcnJheS5cbiAqIEBwYXJhbSBzcGxpY2VDb3VudCAtIE51bWJlciBvZiBlbGVtZW50cyB0byByZW1vdmUgZnJvbSB0aGUgYXJyYXkuXG4gKiBAcGFyYW0gbmV3RWxlbXMgLSBFbGVtZW50cyB0byBpbnNlcnQgaW50byB0aGUgYXJyYXkuXG4gKiBAcGFyYW0gcGFyZW50IC0gVGhlIHBhcmVudCBvZiB0aGUgbm9kZS5cbiAqIEByZXR1cm5zIFRoZSBzcGxpY2VkIGFycmF5LlxuICovXG5mdW5jdGlvbiB1bmlxdWVTcGxpY2UoXG4gIGFycmF5OiBBbnlOb2RlW10sXG4gIHNwbGljZUlkeDogbnVtYmVyLFxuICBzcGxpY2VDb3VudDogbnVtYmVyLFxuICBuZXdFbGVtczogQW55Tm9kZVtdLFxuICBwYXJlbnQ6IFBhcmVudE5vZGUsXG4pOiBBbnlOb2RlW10ge1xuICBjb25zdCBzcGxpY2VBcmdzOiBQYXJhbWV0ZXJzPHR5cGVvZiBBcnJheS5wcm90b3R5cGUuc3BsaWNlPiA9IFtcbiAgICBzcGxpY2VJZHgsXG4gICAgc3BsaWNlQ291bnQsXG4gICAgLi4ubmV3RWxlbXMsXG4gIF07XG4gIGNvbnN0IHByZXYgPSBzcGxpY2VJZHggPT09IDAgPyBudWxsIDogYXJyYXlbc3BsaWNlSWR4IC0gMV07XG4gIGNvbnN0IG5leHQgPVxuICAgIHNwbGljZUlkeCArIHNwbGljZUNvdW50ID49IGFycmF5Lmxlbmd0aFxuICAgICAgPyBudWxsXG4gICAgICA6IGFycmF5W3NwbGljZUlkeCArIHNwbGljZUNvdW50XTtcblxuICAvKlxuICAgKiBCZWZvcmUgc3BsaWNpbmcgaW4gbmV3IGVsZW1lbnRzLCBlbnN1cmUgdGhleSBkbyBub3QgYWxyZWFkeSBhcHBlYXIgaW4gdGhlXG4gICAqIGN1cnJlbnQgYXJyYXkuXG4gICAqL1xuICBmb3IgKGxldCBpZHggPSAwOyBpZHggPCBuZXdFbGVtcy5sZW5ndGg7ICsraWR4KSB7XG4gICAgY29uc3Qgbm9kZSA9IG5ld0VsZW1zW2lkeF07XG4gICAgY29uc3Qgb2xkUGFyZW50ID0gbm9kZS5wYXJlbnQ7XG5cbiAgICBpZiAob2xkUGFyZW50KSB7XG4gICAgICBjb25zdCBvbGRTaWJsaW5nczogQW55Tm9kZVtdID0gb2xkUGFyZW50LmNoaWxkcmVuO1xuICAgICAgY29uc3QgcHJldklkeCA9IG9sZFNpYmxpbmdzLmluZGV4T2Yobm9kZSk7XG5cbiAgICAgIGlmIChwcmV2SWR4ID4gLTEpIHtcbiAgICAgICAgb2xkUGFyZW50LmNoaWxkcmVuLnNwbGljZShwcmV2SWR4LCAxKTtcbiAgICAgICAgaWYgKHBhcmVudCA9PT0gb2xkUGFyZW50ICYmIHNwbGljZUlkeCA+IHByZXZJZHgpIHtcbiAgICAgICAgICBzcGxpY2VBcmdzWzBdLS07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBub2RlLnBhcmVudCA9IHBhcmVudDtcblxuICAgIGlmIChub2RlLnByZXYpIHtcbiAgICAgIG5vZGUucHJldi5uZXh0ID0gbm9kZS5uZXh0ID8/IG51bGw7XG4gICAgfVxuXG4gICAgaWYgKG5vZGUubmV4dCkge1xuICAgICAgbm9kZS5uZXh0LnByZXYgPSBub2RlLnByZXYgPz8gbnVsbDtcbiAgICB9XG5cbiAgICBub2RlLnByZXYgPSBpZHggPT09IDAgPyBwcmV2IDogbmV3RWxlbXNbaWR4IC0gMV07XG4gICAgbm9kZS5uZXh0ID0gaWR4ID09PSBuZXdFbGVtcy5sZW5ndGggLSAxID8gbmV4dCA6IG5ld0VsZW1zW2lkeCArIDFdO1xuICB9XG5cbiAgaWYgKHByZXYpIHtcbiAgICBwcmV2Lm5leHQgPSBuZXdFbGVtc1swXTtcbiAgfVxuICBpZiAobmV4dCkge1xuICAgIG5leHQucHJldiA9IG5ld0VsZW1zW25ld0VsZW1zLmxlbmd0aCAtIDFdO1xuICB9XG4gIHJldHVybiBhcnJheS5zcGxpY2UoLi4uc3BsaWNlQXJncyk7XG59XG5cbi8qKlxuICogSW5zZXJ0IGV2ZXJ5IGVsZW1lbnQgaW4gdGhlIHNldCBvZiBtYXRjaGVkIGVsZW1lbnRzIHRvIHRoZSBlbmQgb2YgdGhlIHRhcmdldC5cbiAqXG4gKiBAY2F0ZWdvcnkgTWFuaXB1bGF0aW9uXG4gKiBAZXhhbXBsZVxuICpcbiAqIGBgYGpzXG4gKiAkKCc8bGkgY2xhc3M9XCJwbHVtXCI+UGx1bTwvbGk+JykuYXBwZW5kVG8oJyNmcnVpdHMnKTtcbiAqICQuaHRtbCgpO1xuICogLy89PiAgPHVsIGlkPVwiZnJ1aXRzXCI+XG4gKiAvLyAgICAgIDxsaSBjbGFzcz1cImFwcGxlXCI+QXBwbGU8L2xpPlxuICogLy8gICAgICA8bGkgY2xhc3M9XCJvcmFuZ2VcIj5PcmFuZ2U8L2xpPlxuICogLy8gICAgICA8bGkgY2xhc3M9XCJwZWFyXCI+UGVhcjwvbGk+XG4gKiAvLyAgICAgIDxsaSBjbGFzcz1cInBsdW1cIj5QbHVtPC9saT5cbiAqIC8vICAgIDwvdWw+XG4gKiBgYGBcbiAqXG4gKiBAcGFyYW0gdGFyZ2V0IC0gRWxlbWVudCB0byBhcHBlbmQgZWxlbWVudHMgdG8uXG4gKiBAcmV0dXJucyBUaGUgaW5zdGFuY2UgaXRzZWxmLlxuICogQHNlZSB7QGxpbmsgaHR0cHM6Ly9hcGkuanF1ZXJ5LmNvbS9hcHBlbmRUby99XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhcHBlbmRUbzxUIGV4dGVuZHMgQW55Tm9kZT4oXG4gIHRoaXM6IENoZWVyaW88VD4sXG4gIHRhcmdldDogQmFzaWNBY2NlcHRlZEVsZW1zPEFueU5vZGU+LFxuKTogQ2hlZXJpbzxUPiB7XG4gIGNvbnN0IGFwcGVuZFRhcmdldCA9IGlzQ2hlZXJpbzxUPih0YXJnZXQpID8gdGFyZ2V0IDogdGhpcy5fbWFrZSh0YXJnZXQpO1xuXG4gIGFwcGVuZFRhcmdldC5hcHBlbmQodGhpcyk7XG5cbiAgcmV0dXJuIHRoaXM7XG59XG5cbi8qKlxuICogSW5zZXJ0IGV2ZXJ5IGVsZW1lbnQgaW4gdGhlIHNldCBvZiBtYXRjaGVkIGVsZW1lbnRzIHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhlXG4gKiB0YXJnZXQuXG4gKlxuICogQGNhdGVnb3J5IE1hbmlwdWxhdGlvblxuICogQGV4YW1wbGVcbiAqXG4gKiBgYGBqc1xuICogJCgnPGxpIGNsYXNzPVwicGx1bVwiPlBsdW08L2xpPicpLnByZXBlbmRUbygnI2ZydWl0cycpO1xuICogJC5odG1sKCk7XG4gKiAvLz0+ICA8dWwgaWQ9XCJmcnVpdHNcIj5cbiAqIC8vICAgICAgPGxpIGNsYXNzPVwicGx1bVwiPlBsdW08L2xpPlxuICogLy8gICAgICA8bGkgY2xhc3M9XCJhcHBsZVwiPkFwcGxlPC9saT5cbiAqIC8vICAgICAgPGxpIGNsYXNzPVwib3JhbmdlXCI+T3JhbmdlPC9saT5cbiAqIC8vICAgICAgPGxpIGNsYXNzPVwicGVhclwiPlBlYXI8L2xpPlxuICogLy8gICAgPC91bD5cbiAqIGBgYFxuICpcbiAqIEBwYXJhbSB0YXJnZXQgLSBFbGVtZW50IHRvIHByZXBlbmQgZWxlbWVudHMgdG8uXG4gKiBAcmV0dXJucyBUaGUgaW5zdGFuY2UgaXRzZWxmLlxuICogQHNlZSB7QGxpbmsgaHR0cHM6Ly9hcGkuanF1ZXJ5LmNvbS9wcmVwZW5kVG8vfVxuICovXG5leHBvcnQgZnVuY3Rpb24gcHJlcGVuZFRvPFQgZXh0ZW5kcyBBbnlOb2RlPihcbiAgdGhpczogQ2hlZXJpbzxUPixcbiAgdGFyZ2V0OiBCYXNpY0FjY2VwdGVkRWxlbXM8QW55Tm9kZT4sXG4pOiBDaGVlcmlvPFQ+IHtcbiAgY29uc3QgcHJlcGVuZFRhcmdldCA9IGlzQ2hlZXJpbzxUPih0YXJnZXQpID8gdGFyZ2V0IDogdGhpcy5fbWFrZSh0YXJnZXQpO1xuXG4gIHByZXBlbmRUYXJnZXQucHJlcGVuZCh0aGlzKTtcblxuICByZXR1cm4gdGhpcztcbn1cblxuLyoqXG4gKiBJbnNlcnRzIGNvbnRlbnQgYXMgdGhlIF9sYXN0XyBjaGlsZCBvZiBlYWNoIG9mIHRoZSBzZWxlY3RlZCBlbGVtZW50cy5cbiAqXG4gKiBAY2F0ZWdvcnkgTWFuaXB1bGF0aW9uXG4gKiBAZXhhbXBsZVxuICpcbiAqIGBgYGpzXG4gKiAkKCd1bCcpLmFwcGVuZCgnPGxpIGNsYXNzPVwicGx1bVwiPlBsdW08L2xpPicpO1xuICogJC5odG1sKCk7XG4gKiAvLz0+ICA8dWwgaWQ9XCJmcnVpdHNcIj5cbiAqIC8vICAgICAgPGxpIGNsYXNzPVwiYXBwbGVcIj5BcHBsZTwvbGk+XG4gKiAvLyAgICAgIDxsaSBjbGFzcz1cIm9yYW5nZVwiPk9yYW5nZTwvbGk+XG4gKiAvLyAgICAgIDxsaSBjbGFzcz1cInBlYXJcIj5QZWFyPC9saT5cbiAqIC8vICAgICAgPGxpIGNsYXNzPVwicGx1bVwiPlBsdW08L2xpPlxuICogLy8gICAgPC91bD5cbiAqIGBgYFxuICpcbiAqIEBzZWUge0BsaW5rIGh0dHBzOi8vYXBpLmpxdWVyeS5jb20vYXBwZW5kL31cbiAqL1xuZXhwb3J0IGNvbnN0IGFwcGVuZDogPFQgZXh0ZW5kcyBBbnlOb2RlPihcbiAgdGhpczogQ2hlZXJpbzxUPixcbiAgLi4uZWxlbXM6XG4gICAgfCBbKHRoaXM6IEFueU5vZGUsIGk6IG51bWJlciwgaHRtbDogc3RyaW5nKSA9PiBCYXNpY0FjY2VwdGVkRWxlbXM8QW55Tm9kZT5dXG4gICAgfCBCYXNpY0FjY2VwdGVkRWxlbXM8QW55Tm9kZT5bXVxuKSA9PiBDaGVlcmlvPFQ+ID0gX2luc2VydCgoZG9tLCBjaGlsZHJlbiwgcGFyZW50KSA9PiB7XG4gIHVuaXF1ZVNwbGljZShjaGlsZHJlbiwgY2hpbGRyZW4ubGVuZ3RoLCAwLCBkb20sIHBhcmVudCk7XG59KTtcblxuLyoqXG4gKiBJbnNlcnRzIGNvbnRlbnQgYXMgdGhlIF9maXJzdF8gY2hpbGQgb2YgZWFjaCBvZiB0aGUgc2VsZWN0ZWQgZWxlbWVudHMuXG4gKlxuICogQGNhdGVnb3J5IE1hbmlwdWxhdGlvblxuICogQGV4YW1wbGVcbiAqXG4gKiBgYGBqc1xuICogJCgndWwnKS5wcmVwZW5kKCc8bGkgY2xhc3M9XCJwbHVtXCI+UGx1bTwvbGk+Jyk7XG4gKiAkLmh0bWwoKTtcbiAqIC8vPT4gIDx1bCBpZD1cImZydWl0c1wiPlxuICogLy8gICAgICA8bGkgY2xhc3M9XCJwbHVtXCI+UGx1bTwvbGk+XG4gKiAvLyAgICAgIDxsaSBjbGFzcz1cImFwcGxlXCI+QXBwbGU8L2xpPlxuICogLy8gICAgICA8bGkgY2xhc3M9XCJvcmFuZ2VcIj5PcmFuZ2U8L2xpPlxuICogLy8gICAgICA8bGkgY2xhc3M9XCJwZWFyXCI+UGVhcjwvbGk+XG4gKiAvLyAgICA8L3VsPlxuICogYGBgXG4gKlxuICogQHNlZSB7QGxpbmsgaHR0cHM6Ly9hcGkuanF1ZXJ5LmNvbS9wcmVwZW5kL31cbiAqL1xuZXhwb3J0IGNvbnN0IHByZXBlbmQ6IDxUIGV4dGVuZHMgQW55Tm9kZT4oXG4gIHRoaXM6IENoZWVyaW88VD4sXG4gIC4uLmVsZW1zOlxuICAgIHwgWyh0aGlzOiBBbnlOb2RlLCBpOiBudW1iZXIsIGh0bWw6IHN0cmluZykgPT4gQmFzaWNBY2NlcHRlZEVsZW1zPEFueU5vZGU+XVxuICAgIHwgQmFzaWNBY2NlcHRlZEVsZW1zPEFueU5vZGU+W11cbikgPT4gQ2hlZXJpbzxUPiA9IF9pbnNlcnQoKGRvbSwgY2hpbGRyZW4sIHBhcmVudCkgPT4ge1xuICB1bmlxdWVTcGxpY2UoY2hpbGRyZW4sIDAsIDAsIGRvbSwgcGFyZW50KTtcbn0pO1xuXG5mdW5jdGlvbiBfd3JhcChcbiAgaW5zZXJ0OiAoXG4gICAgZWw6IEFueU5vZGUsXG4gICAgZWxJbnNlcnRMb2NhdGlvbjogUGFyZW50Tm9kZSxcbiAgICB3cmFwcGVyRG9tOiBQYXJlbnROb2RlW10sXG4gICkgPT4gdm9pZCxcbikge1xuICByZXR1cm4gZnVuY3Rpb24gPFQgZXh0ZW5kcyBBbnlOb2RlPihcbiAgICB0aGlzOiBDaGVlcmlvPFQ+LFxuICAgIHdyYXBwZXI6IEFjY2VwdGVkRWxlbXM8QW55Tm9kZT4sXG4gICkge1xuICAgIGNvbnN0IGxhc3RJZHggPSB0aGlzLmxlbmd0aCAtIDE7XG4gICAgY29uc3QgbGFzdFBhcmVudCA9IHRoaXMucGFyZW50cygpLmxhc3QoKTtcblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5sZW5ndGg7IGkrKykge1xuICAgICAgY29uc3QgZWwgPSB0aGlzW2ldO1xuXG4gICAgICBjb25zdCB3cmFwID1cbiAgICAgICAgdHlwZW9mIHdyYXBwZXIgPT09ICdmdW5jdGlvbidcbiAgICAgICAgICA/IHdyYXBwZXIuY2FsbChlbCwgaSwgZWwpXG4gICAgICAgICAgOiB0eXBlb2Ygd3JhcHBlciA9PT0gJ3N0cmluZycgJiYgIWlzSHRtbCh3cmFwcGVyKVxuICAgICAgICAgICAgPyBsYXN0UGFyZW50LmZpbmQod3JhcHBlcikuY2xvbmUoKVxuICAgICAgICAgICAgOiB3cmFwcGVyO1xuXG4gICAgICBjb25zdCBbd3JhcHBlckRvbV0gPSB0aGlzLl9tYWtlRG9tQXJyYXkod3JhcCwgaSA8IGxhc3RJZHgpO1xuXG4gICAgICBpZiAoIXdyYXBwZXJEb20gfHwgIWhhc0NoaWxkcmVuKHdyYXBwZXJEb20pKSBjb250aW51ZTtcblxuICAgICAgbGV0IGVsSW5zZXJ0TG9jYXRpb24gPSB3cmFwcGVyRG9tO1xuXG4gICAgICAvKlxuICAgICAgICogRmluZCB0aGUgZGVlcGVzdCBjaGlsZC4gT25seSBjb25zaWRlciB0aGUgZmlyc3QgdGFnIGNoaWxkIG9mIGVhY2ggbm9kZVxuICAgICAgICogKGlnbm9yZSB0ZXh0KTsgc3RvcCBpZiBubyBjaGlsZHJlbiBhcmUgZm91bmQuXG4gICAgICAgKi9cbiAgICAgIGxldCBqID0gMDtcblxuICAgICAgd2hpbGUgKGogPCBlbEluc2VydExvY2F0aW9uLmNoaWxkcmVuLmxlbmd0aCkge1xuICAgICAgICBjb25zdCBjaGlsZCA9IGVsSW5zZXJ0TG9jYXRpb24uY2hpbGRyZW5bal07XG4gICAgICAgIGlmIChpc1RhZyhjaGlsZCkpIHtcbiAgICAgICAgICBlbEluc2VydExvY2F0aW9uID0gY2hpbGQ7XG4gICAgICAgICAgaiA9IDA7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaisrO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGluc2VydChlbCwgZWxJbnNlcnRMb2NhdGlvbiwgW3dyYXBwZXJEb21dKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfTtcbn1cblxuLyoqXG4gKiBUaGUgLndyYXAoKSBmdW5jdGlvbiBjYW4gdGFrZSBhbnkgc3RyaW5nIG9yIG9iamVjdCB0aGF0IGNvdWxkIGJlIHBhc3NlZCB0b1xuICogdGhlICQoKSBmYWN0b3J5IGZ1bmN0aW9uIHRvIHNwZWNpZnkgYSBET00gc3RydWN0dXJlLiBUaGlzIHN0cnVjdHVyZSBtYXkgYmVcbiAqIG5lc3RlZCBzZXZlcmFsIGxldmVscyBkZWVwLCBidXQgc2hvdWxkIGNvbnRhaW4gb25seSBvbmUgaW5tb3N0IGVsZW1lbnQuIEFcbiAqIGNvcHkgb2YgdGhpcyBzdHJ1Y3R1cmUgd2lsbCBiZSB3cmFwcGVkIGFyb3VuZCBlYWNoIG9mIHRoZSBlbGVtZW50cyBpbiB0aGUgc2V0XG4gKiBvZiBtYXRjaGVkIGVsZW1lbnRzLiBUaGlzIG1ldGhvZCByZXR1cm5zIHRoZSBvcmlnaW5hbCBzZXQgb2YgZWxlbWVudHMgZm9yXG4gKiBjaGFpbmluZyBwdXJwb3Nlcy5cbiAqXG4gKiBAY2F0ZWdvcnkgTWFuaXB1bGF0aW9uXG4gKiBAZXhhbXBsZVxuICpcbiAqIGBgYGpzXG4gKiBjb25zdCByZWRGcnVpdCA9ICQoJzxkaXYgY2xhc3M9XCJyZWQtZnJ1aXRcIj48L2Rpdj4nKTtcbiAqICQoJy5hcHBsZScpLndyYXAocmVkRnJ1aXQpO1xuICpcbiAqIC8vPT4gPHVsIGlkPVwiZnJ1aXRzXCI+XG4gKiAvLyAgICAgPGRpdiBjbGFzcz1cInJlZC1mcnVpdFwiPlxuICogLy8gICAgICA8bGkgY2xhc3M9XCJhcHBsZVwiPkFwcGxlPC9saT5cbiAqIC8vICAgICA8L2Rpdj5cbiAqIC8vICAgICA8bGkgY2xhc3M9XCJvcmFuZ2VcIj5PcmFuZ2U8L2xpPlxuICogLy8gICAgIDxsaSBjbGFzcz1cInBsdW1cIj5QbHVtPC9saT5cbiAqIC8vICAgPC91bD5cbiAqXG4gKiBjb25zdCBoZWFsdGh5ID0gJCgnPGRpdiBjbGFzcz1cImhlYWx0aHlcIj48L2Rpdj4nKTtcbiAqICQoJ2xpJykud3JhcChoZWFsdGh5KTtcbiAqXG4gKiAvLz0+IDx1bCBpZD1cImZydWl0c1wiPlxuICogLy8gICAgIDxkaXYgY2xhc3M9XCJoZWFsdGh5XCI+XG4gKiAvLyAgICAgICA8bGkgY2xhc3M9XCJhcHBsZVwiPkFwcGxlPC9saT5cbiAqIC8vICAgICA8L2Rpdj5cbiAqIC8vICAgICA8ZGl2IGNsYXNzPVwiaGVhbHRoeVwiPlxuICogLy8gICAgICAgPGxpIGNsYXNzPVwib3JhbmdlXCI+T3JhbmdlPC9saT5cbiAqIC8vICAgICA8L2Rpdj5cbiAqIC8vICAgICA8ZGl2IGNsYXNzPVwiaGVhbHRoeVwiPlxuICogLy8gICAgICAgIDxsaSBjbGFzcz1cInBsdW1cIj5QbHVtPC9saT5cbiAqIC8vICAgICA8L2Rpdj5cbiAqIC8vICAgPC91bD5cbiAqIGBgYFxuICpcbiAqIEBwYXJhbSB3cmFwcGVyIC0gVGhlIERPTSBzdHJ1Y3R1cmUgdG8gd3JhcCBhcm91bmQgZWFjaCBlbGVtZW50IGluIHRoZVxuICogICBzZWxlY3Rpb24uXG4gKiBAc2VlIHtAbGluayBodHRwczovL2FwaS5qcXVlcnkuY29tL3dyYXAvfVxuICovXG5leHBvcnQgY29uc3Qgd3JhcDogPFQgZXh0ZW5kcyBBbnlOb2RlPihcbiAgdGhpczogQ2hlZXJpbzxUPixcbiAgd3JhcHBlcjogQWNjZXB0ZWRFbGVtczxBbnlOb2RlPixcbikgPT4gQ2hlZXJpbzxUPiA9IF93cmFwKChlbCwgZWxJbnNlcnRMb2NhdGlvbiwgd3JhcHBlckRvbSkgPT4ge1xuICBjb25zdCB7IHBhcmVudCB9ID0gZWw7XG5cbiAgaWYgKCFwYXJlbnQpIHJldHVybjtcblxuICBjb25zdCBzaWJsaW5nczogQW55Tm9kZVtdID0gcGFyZW50LmNoaWxkcmVuO1xuICBjb25zdCBpbmRleCA9IHNpYmxpbmdzLmluZGV4T2YoZWwpO1xuXG4gIHVwZGF0ZURPTShbZWxdLCBlbEluc2VydExvY2F0aW9uKTtcbiAgLypcbiAgICogVGhlIHByZXZpb3VzIG9wZXJhdGlvbiByZW1vdmVkIHRoZSBjdXJyZW50IGVsZW1lbnQgZnJvbSB0aGUgYHNpYmxpbmdzYFxuICAgKiBhcnJheSwgc28gdGhlIGBkb21gIGFycmF5IGNhbiBiZSBpbnNlcnRlZCB3aXRob3V0IHJlbW92aW5nIGFueVxuICAgKiBhZGRpdGlvbmFsIGVsZW1lbnRzLlxuICAgKi9cbiAgdW5pcXVlU3BsaWNlKHNpYmxpbmdzLCBpbmRleCwgMCwgd3JhcHBlckRvbSwgcGFyZW50KTtcbn0pO1xuXG4vKipcbiAqIFRoZSAud3JhcElubmVyKCkgZnVuY3Rpb24gY2FuIHRha2UgYW55IHN0cmluZyBvciBvYmplY3QgdGhhdCBjb3VsZCBiZSBwYXNzZWRcbiAqIHRvIHRoZSAkKCkgZmFjdG9yeSBmdW5jdGlvbiB0byBzcGVjaWZ5IGEgRE9NIHN0cnVjdHVyZS4gVGhpcyBzdHJ1Y3R1cmUgbWF5IGJlXG4gKiBuZXN0ZWQgc2V2ZXJhbCBsZXZlbHMgZGVlcCwgYnV0IHNob3VsZCBjb250YWluIG9ubHkgb25lIGlubW9zdCBlbGVtZW50LiBUaGVcbiAqIHN0cnVjdHVyZSB3aWxsIGJlIHdyYXBwZWQgYXJvdW5kIHRoZSBjb250ZW50IG9mIGVhY2ggb2YgdGhlIGVsZW1lbnRzIGluIHRoZVxuICogc2V0IG9mIG1hdGNoZWQgZWxlbWVudHMuXG4gKlxuICogQGNhdGVnb3J5IE1hbmlwdWxhdGlvblxuICogQGV4YW1wbGVcbiAqXG4gKiBgYGBqc1xuICogY29uc3QgcmVkRnJ1aXQgPSAkKCc8ZGl2IGNsYXNzPVwicmVkLWZydWl0XCI+PC9kaXY+Jyk7XG4gKiAkKCcuYXBwbGUnKS53cmFwSW5uZXIocmVkRnJ1aXQpO1xuICpcbiAqIC8vPT4gPHVsIGlkPVwiZnJ1aXRzXCI+XG4gKiAvLyAgICAgPGxpIGNsYXNzPVwiYXBwbGVcIj5cbiAqIC8vICAgICAgIDxkaXYgY2xhc3M9XCJyZWQtZnJ1aXRcIj5BcHBsZTwvZGl2PlxuICogLy8gICAgIDwvbGk+XG4gKiAvLyAgICAgPGxpIGNsYXNzPVwib3JhbmdlXCI+T3JhbmdlPC9saT5cbiAqIC8vICAgICA8bGkgY2xhc3M9XCJwZWFyXCI+UGVhcjwvbGk+XG4gKiAvLyAgIDwvdWw+XG4gKlxuICogY29uc3QgaGVhbHRoeSA9ICQoJzxkaXYgY2xhc3M9XCJoZWFsdGh5XCI+PC9kaXY+Jyk7XG4gKiAkKCdsaScpLndyYXBJbm5lcihoZWFsdGh5KTtcbiAqXG4gKiAvLz0+IDx1bCBpZD1cImZydWl0c1wiPlxuICogLy8gICAgIDxsaSBjbGFzcz1cImFwcGxlXCI+XG4gKiAvLyAgICAgICA8ZGl2IGNsYXNzPVwiaGVhbHRoeVwiPkFwcGxlPC9kaXY+XG4gKiAvLyAgICAgPC9saT5cbiAqIC8vICAgICA8bGkgY2xhc3M9XCJvcmFuZ2VcIj5cbiAqIC8vICAgICAgIDxkaXYgY2xhc3M9XCJoZWFsdGh5XCI+T3JhbmdlPC9kaXY+XG4gKiAvLyAgICAgPC9saT5cbiAqIC8vICAgICA8bGkgY2xhc3M9XCJwZWFyXCI+XG4gKiAvLyAgICAgICA8ZGl2IGNsYXNzPVwiaGVhbHRoeVwiPlBlYXI8L2Rpdj5cbiAqIC8vICAgICA8L2xpPlxuICogLy8gICA8L3VsPlxuICogYGBgXG4gKlxuICogQHBhcmFtIHdyYXBwZXIgLSBUaGUgRE9NIHN0cnVjdHVyZSB0byB3cmFwIGFyb3VuZCB0aGUgY29udGVudCBvZiBlYWNoIGVsZW1lbnRcbiAqICAgaW4gdGhlIHNlbGVjdGlvbi5cbiAqIEByZXR1cm5zIFRoZSBpbnN0YW5jZSBpdHNlbGYsIGZvciBjaGFpbmluZy5cbiAqIEBzZWUge0BsaW5rIGh0dHBzOi8vYXBpLmpxdWVyeS5jb20vd3JhcElubmVyL31cbiAqL1xuZXhwb3J0IGNvbnN0IHdyYXBJbm5lcjogPFQgZXh0ZW5kcyBBbnlOb2RlPihcbiAgdGhpczogQ2hlZXJpbzxUPixcbiAgd3JhcHBlcjogQWNjZXB0ZWRFbGVtczxBbnlOb2RlPixcbikgPT4gQ2hlZXJpbzxUPiA9IF93cmFwKChlbCwgZWxJbnNlcnRMb2NhdGlvbiwgd3JhcHBlckRvbSkgPT4ge1xuICBpZiAoIWhhc0NoaWxkcmVuKGVsKSkgcmV0dXJuO1xuICB1cGRhdGVET00oZWwuY2hpbGRyZW4sIGVsSW5zZXJ0TG9jYXRpb24pO1xuICB1cGRhdGVET00od3JhcHBlckRvbSwgZWwpO1xufSk7XG5cbi8qKlxuICogVGhlIC51bndyYXAoKSBmdW5jdGlvbiwgcmVtb3ZlcyB0aGUgcGFyZW50cyBvZiB0aGUgc2V0IG9mIG1hdGNoZWQgZWxlbWVudHNcbiAqIGZyb20gdGhlIERPTSwgbGVhdmluZyB0aGUgbWF0Y2hlZCBlbGVtZW50cyBpbiB0aGVpciBwbGFjZS5cbiAqXG4gKiBAY2F0ZWdvcnkgTWFuaXB1bGF0aW9uXG4gKiBAZXhhbXBsZSA8Y2FwdGlvbj53aXRob3V0IHNlbGVjdG9yPC9jYXB0aW9uPlxuICpcbiAqIGBgYGpzXG4gKiBjb25zdCAkID0gY2hlZXJpby5sb2FkKFxuICogICAnPGRpdiBpZD10ZXN0PlxcbiAgPGRpdj48cD5IZWxsbzwvcD48L2Rpdj5cXG4gIDxkaXY+PHA+V29ybGQ8L3A+PC9kaXY+XFxuPC9kaXY+JyxcbiAqICk7XG4gKiAkKCcjdGVzdCBwJykudW53cmFwKCk7XG4gKlxuICogLy89PiA8ZGl2IGlkPXRlc3Q+XG4gKiAvLyAgICAgPHA+SGVsbG88L3A+XG4gKiAvLyAgICAgPHA+V29ybGQ8L3A+XG4gKiAvLyAgIDwvZGl2PlxuICogYGBgXG4gKlxuICogQGV4YW1wbGUgPGNhcHRpb24+d2l0aCBzZWxlY3RvcjwvY2FwdGlvbj5cbiAqXG4gKiBgYGBqc1xuICogY29uc3QgJCA9IGNoZWVyaW8ubG9hZChcbiAqICAgJzxkaXYgaWQ9dGVzdD5cXG4gIDxwPkhlbGxvPC9wPlxcbiAgPGI+PHA+V29ybGQ8L3A+PC9iPlxcbjwvZGl2PicsXG4gKiApO1xuICogJCgnI3Rlc3QgcCcpLnVud3JhcCgnYicpO1xuICpcbiAqIC8vPT4gPGRpdiBpZD10ZXN0PlxuICogLy8gICAgIDxwPkhlbGxvPC9wPlxuICogLy8gICAgIDxwPldvcmxkPC9wPlxuICogLy8gICA8L2Rpdj5cbiAqIGBgYFxuICpcbiAqIEBwYXJhbSBzZWxlY3RvciAtIEEgc2VsZWN0b3IgdG8gY2hlY2sgdGhlIHBhcmVudCBlbGVtZW50IGFnYWluc3QuIElmIGFuXG4gKiAgIGVsZW1lbnQncyBwYXJlbnQgZG9lcyBub3QgbWF0Y2ggdGhlIHNlbGVjdG9yLCB0aGUgZWxlbWVudCB3b24ndCBiZVxuICogICB1bndyYXBwZWQuXG4gKiBAcmV0dXJucyBUaGUgaW5zdGFuY2UgaXRzZWxmLCBmb3IgY2hhaW5pbmcuXG4gKiBAc2VlIHtAbGluayBodHRwczovL2FwaS5qcXVlcnkuY29tL3Vud3JhcC99XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1bndyYXA8VCBleHRlbmRzIEFueU5vZGU+KFxuICB0aGlzOiBDaGVlcmlvPFQ+LFxuICBzZWxlY3Rvcj86IHN0cmluZyxcbik6IENoZWVyaW88VD4ge1xuICB0aGlzLnBhcmVudChzZWxlY3RvcilcbiAgICAubm90KCdib2R5JylcbiAgICAuZWFjaCgoXywgZWwpID0+IHtcbiAgICAgIHRoaXMuX21ha2UoZWwpLnJlcGxhY2VXaXRoKGVsLmNoaWxkcmVuKTtcbiAgICB9KTtcbiAgcmV0dXJuIHRoaXM7XG59XG5cbi8qKlxuICogVGhlIC53cmFwQWxsKCkgZnVuY3Rpb24gY2FuIHRha2UgYW55IHN0cmluZyBvciBvYmplY3QgdGhhdCBjb3VsZCBiZSBwYXNzZWQgdG9cbiAqIHRoZSAkKCkgZnVuY3Rpb24gdG8gc3BlY2lmeSBhIERPTSBzdHJ1Y3R1cmUuIFRoaXMgc3RydWN0dXJlIG1heSBiZSBuZXN0ZWRcbiAqIHNldmVyYWwgbGV2ZWxzIGRlZXAsIGJ1dCBzaG91bGQgY29udGFpbiBvbmx5IG9uZSBpbm1vc3QgZWxlbWVudC4gVGhlXG4gKiBzdHJ1Y3R1cmUgd2lsbCBiZSB3cmFwcGVkIGFyb3VuZCBhbGwgb2YgdGhlIGVsZW1lbnRzIGluIHRoZSBzZXQgb2YgbWF0Y2hlZFxuICogZWxlbWVudHMsIGFzIGEgc2luZ2xlIGdyb3VwLlxuICpcbiAqIEBjYXRlZ29yeSBNYW5pcHVsYXRpb25cbiAqIEBleGFtcGxlIDxjYXB0aW9uPldpdGggbWFya3VwIHBhc3NlZCB0byBgd3JhcEFsbGA8L2NhcHRpb24+XG4gKlxuICogYGBganNcbiAqIGNvbnN0ICQgPSBjaGVlcmlvLmxvYWQoXG4gKiAgICc8ZGl2IGNsYXNzPVwiY29udGFpbmVyXCI+PGRpdiBjbGFzcz1cImlubmVyXCI+Rmlyc3Q8L2Rpdj48ZGl2IGNsYXNzPVwiaW5uZXJcIj5TZWNvbmQ8L2Rpdj48L2Rpdj4nLFxuICogKTtcbiAqICQoJy5pbm5lcicpLndyYXBBbGwoXCI8ZGl2IGNsYXNzPSduZXcnPjwvZGl2PlwiKTtcbiAqXG4gKiAvLz0+IDxkaXYgY2xhc3M9XCJjb250YWluZXJcIj5cbiAqIC8vICAgICA8ZGl2IGNsYXNzPSduZXcnPlxuICogLy8gICAgICAgPGRpdiBjbGFzcz1cImlubmVyXCI+Rmlyc3Q8L2Rpdj5cbiAqIC8vICAgICAgIDxkaXYgY2xhc3M9XCJpbm5lclwiPlNlY29uZDwvZGl2PlxuICogLy8gICAgIDwvZGl2PlxuICogLy8gICA8L2Rpdj5cbiAqIGBgYFxuICpcbiAqIEBleGFtcGxlIDxjYXB0aW9uPldpdGggYW4gZXhpc3RpbmcgY2hlZXJpbyBpbnN0YW5jZTwvY2FwdGlvbj5cbiAqXG4gKiBgYGBqc1xuICogY29uc3QgJCA9IGNoZWVyaW8ubG9hZChcbiAqICAgJzxzcGFuPlNwYW4gMTwvc3Bhbj48c3Ryb25nPlN0cm9uZzwvc3Ryb25nPjxzcGFuPlNwYW4gMjwvc3Bhbj4nLFxuICogKTtcbiAqIGNvbnN0IHdyYXAgPSAkKCc8ZGl2PjxwPjxlbT48Yj48L2I+PC9lbT48L3A+PC9kaXY+Jyk7XG4gKiAkKCdzcGFuJykud3JhcEFsbCh3cmFwKTtcbiAqXG4gKiAvLz0+IDxkaXY+XG4gKiAvLyAgICAgPHA+XG4gKiAvLyAgICAgICA8ZW0+XG4gKiAvLyAgICAgICAgIDxiPlxuICogLy8gICAgICAgICAgIDxzcGFuPlNwYW4gMTwvc3Bhbj5cbiAqIC8vICAgICAgICAgICA8c3Bhbj5TcGFuIDI8L3NwYW4+XG4gKiAvLyAgICAgICAgIDwvYj5cbiAqIC8vICAgICAgIDwvZW0+XG4gKiAvLyAgICAgPC9wPlxuICogLy8gICA8L2Rpdj5cbiAqIC8vICAgPHN0cm9uZz5TdHJvbmc8L3N0cm9uZz5cbiAqIGBgYFxuICpcbiAqIEBwYXJhbSB3cmFwcGVyIC0gVGhlIERPTSBzdHJ1Y3R1cmUgdG8gd3JhcCBhcm91bmQgYWxsIG1hdGNoZWQgZWxlbWVudHMgaW4gdGhlXG4gKiAgIHNlbGVjdGlvbi5cbiAqIEByZXR1cm5zIFRoZSBpbnN0YW5jZSBpdHNlbGYuXG4gKiBAc2VlIHtAbGluayBodHRwczovL2FwaS5qcXVlcnkuY29tL3dyYXBBbGwvfVxuICovXG5leHBvcnQgZnVuY3Rpb24gd3JhcEFsbDxUIGV4dGVuZHMgQW55Tm9kZT4oXG4gIHRoaXM6IENoZWVyaW88VD4sXG4gIHdyYXBwZXI6IEFjY2VwdGVkRWxlbXM8VD4sXG4pOiBDaGVlcmlvPFQ+IHtcbiAgY29uc3QgZWwgPSB0aGlzWzBdO1xuICBpZiAoZWwpIHtcbiAgICBjb25zdCB3cmFwOiBDaGVlcmlvPEFueU5vZGU+ID0gdGhpcy5fbWFrZShcbiAgICAgIHR5cGVvZiB3cmFwcGVyID09PSAnZnVuY3Rpb24nID8gd3JhcHBlci5jYWxsKGVsLCAwLCBlbCkgOiB3cmFwcGVyLFxuICAgICkuaW5zZXJ0QmVmb3JlKGVsKTtcblxuICAgIC8vIElmIGh0bWwgaXMgZ2l2ZW4gYXMgd3JhcHBlciwgd3JhcCBtYXkgY29udGFpbiB0ZXh0IGVsZW1lbnRzXG4gICAgbGV0IGVsSW5zZXJ0TG9jYXRpb246IEVsZW1lbnQgfCB1bmRlZmluZWQ7XG5cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHdyYXAubGVuZ3RoOyBpKyspIHtcbiAgICAgIGlmICh3cmFwW2ldLnR5cGUgPT09ICd0YWcnKSBlbEluc2VydExvY2F0aW9uID0gd3JhcFtpXSBhcyBFbGVtZW50O1xuICAgIH1cblxuICAgIGxldCBqID0gMDtcblxuICAgIC8qXG4gICAgICogRmluZCB0aGUgZGVlcGVzdCBjaGlsZC4gT25seSBjb25zaWRlciB0aGUgZmlyc3QgdGFnIGNoaWxkIG9mIGVhY2ggbm9kZVxuICAgICAqIChpZ25vcmUgdGV4dCk7IHN0b3AgaWYgbm8gY2hpbGRyZW4gYXJlIGZvdW5kLlxuICAgICAqL1xuICAgIHdoaWxlIChlbEluc2VydExvY2F0aW9uICYmIGogPCBlbEluc2VydExvY2F0aW9uLmNoaWxkcmVuLmxlbmd0aCkge1xuICAgICAgY29uc3QgY2hpbGQgPSBlbEluc2VydExvY2F0aW9uLmNoaWxkcmVuW2pdO1xuICAgICAgaWYgKGNoaWxkLnR5cGUgPT09ICd0YWcnKSB7XG4gICAgICAgIGVsSW5zZXJ0TG9jYXRpb24gPSBjaGlsZCBhcyBFbGVtZW50O1xuICAgICAgICBqID0gMDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGorKztcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoZWxJbnNlcnRMb2NhdGlvbikgdGhpcy5fbWFrZShlbEluc2VydExvY2F0aW9uKS5hcHBlbmQodGhpcyk7XG4gIH1cbiAgcmV0dXJuIHRoaXM7XG59XG5cbi8qKlxuICogSW5zZXJ0IGNvbnRlbnQgbmV4dCB0byBlYWNoIGVsZW1lbnQgaW4gdGhlIHNldCBvZiBtYXRjaGVkIGVsZW1lbnRzLlxuICpcbiAqIEBjYXRlZ29yeSBNYW5pcHVsYXRpb25cbiAqIEBleGFtcGxlXG4gKlxuICogYGBganNcbiAqICQoJy5hcHBsZScpLmFmdGVyKCc8bGkgY2xhc3M9XCJwbHVtXCI+UGx1bTwvbGk+Jyk7XG4gKiAkLmh0bWwoKTtcbiAqIC8vPT4gIDx1bCBpZD1cImZydWl0c1wiPlxuICogLy8gICAgICA8bGkgY2xhc3M9XCJhcHBsZVwiPkFwcGxlPC9saT5cbiAqIC8vICAgICAgPGxpIGNsYXNzPVwicGx1bVwiPlBsdW08L2xpPlxuICogLy8gICAgICA8bGkgY2xhc3M9XCJvcmFuZ2VcIj5PcmFuZ2U8L2xpPlxuICogLy8gICAgICA8bGkgY2xhc3M9XCJwZWFyXCI+UGVhcjwvbGk+XG4gKiAvLyAgICA8L3VsPlxuICogYGBgXG4gKlxuICogQHBhcmFtIGVsZW1zIC0gSFRNTCBzdHJpbmcsIERPTSBlbGVtZW50LCBhcnJheSBvZiBET00gZWxlbWVudHMgb3IgQ2hlZXJpbyB0b1xuICogICBpbnNlcnQgYWZ0ZXIgZWFjaCBlbGVtZW50IGluIHRoZSBzZXQgb2YgbWF0Y2hlZCBlbGVtZW50cy5cbiAqIEByZXR1cm5zIFRoZSBpbnN0YW5jZSBpdHNlbGYuXG4gKiBAc2VlIHtAbGluayBodHRwczovL2FwaS5qcXVlcnkuY29tL2FmdGVyL31cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFmdGVyPFQgZXh0ZW5kcyBBbnlOb2RlPihcbiAgdGhpczogQ2hlZXJpbzxUPixcbiAgLi4uZWxlbXM6XG4gICAgfCBbKHRoaXM6IEFueU5vZGUsIGk6IG51bWJlciwgaHRtbDogc3RyaW5nKSA9PiBCYXNpY0FjY2VwdGVkRWxlbXM8QW55Tm9kZT5dXG4gICAgfCBCYXNpY0FjY2VwdGVkRWxlbXM8QW55Tm9kZT5bXVxuKTogQ2hlZXJpbzxUPiB7XG4gIGNvbnN0IGxhc3RJZHggPSB0aGlzLmxlbmd0aCAtIDE7XG5cbiAgcmV0dXJuIGRvbUVhY2godGhpcywgKGVsLCBpKSA9PiB7XG4gICAgaWYgKCFoYXNDaGlsZHJlbihlbCkgfHwgIWVsLnBhcmVudCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHNpYmxpbmdzOiBBbnlOb2RlW10gPSBlbC5wYXJlbnQuY2hpbGRyZW47XG4gICAgY29uc3QgaW5kZXggPSBzaWJsaW5ncy5pbmRleE9mKGVsKTtcblxuICAgIC8vIElmIG5vdCBmb3VuZCwgbW92ZSBvblxuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgaWYgKGluZGV4IDwgMCkgcmV0dXJuO1xuXG4gICAgY29uc3QgZG9tU3JjID1cbiAgICAgIHR5cGVvZiBlbGVtc1swXSA9PT0gJ2Z1bmN0aW9uJ1xuICAgICAgICA/IGVsZW1zWzBdLmNhbGwoZWwsIGksIHRoaXMuX3JlbmRlcihlbC5jaGlsZHJlbikpXG4gICAgICAgIDogKGVsZW1zIGFzIEJhc2ljQWNjZXB0ZWRFbGVtczxBbnlOb2RlPltdKTtcblxuICAgIGNvbnN0IGRvbSA9IHRoaXMuX21ha2VEb21BcnJheShkb21TcmMsIGkgPCBsYXN0SWR4KTtcblxuICAgIC8vIEFkZCBlbGVtZW50IGFmdGVyIGB0aGlzYCBlbGVtZW50XG4gICAgdW5pcXVlU3BsaWNlKHNpYmxpbmdzLCBpbmRleCArIDEsIDAsIGRvbSwgZWwucGFyZW50KTtcbiAgfSk7XG59XG5cbi8qKlxuICogSW5zZXJ0IGV2ZXJ5IGVsZW1lbnQgaW4gdGhlIHNldCBvZiBtYXRjaGVkIGVsZW1lbnRzIGFmdGVyIHRoZSB0YXJnZXQuXG4gKlxuICogQGNhdGVnb3J5IE1hbmlwdWxhdGlvblxuICogQGV4YW1wbGVcbiAqXG4gKiBgYGBqc1xuICogJCgnPGxpIGNsYXNzPVwicGx1bVwiPlBsdW08L2xpPicpLmluc2VydEFmdGVyKCcuYXBwbGUnKTtcbiAqICQuaHRtbCgpO1xuICogLy89PiAgPHVsIGlkPVwiZnJ1aXRzXCI+XG4gKiAvLyAgICAgIDxsaSBjbGFzcz1cImFwcGxlXCI+QXBwbGU8L2xpPlxuICogLy8gICAgICA8bGkgY2xhc3M9XCJwbHVtXCI+UGx1bTwvbGk+XG4gKiAvLyAgICAgIDxsaSBjbGFzcz1cIm9yYW5nZVwiPk9yYW5nZTwvbGk+XG4gKiAvLyAgICAgIDxsaSBjbGFzcz1cInBlYXJcIj5QZWFyPC9saT5cbiAqIC8vICAgIDwvdWw+XG4gKiBgYGBcbiAqXG4gKiBAcGFyYW0gdGFyZ2V0IC0gRWxlbWVudCB0byBpbnNlcnQgZWxlbWVudHMgYWZ0ZXIuXG4gKiBAcmV0dXJucyBUaGUgc2V0IG9mIG5ld2x5IGluc2VydGVkIGVsZW1lbnRzLlxuICogQHNlZSB7QGxpbmsgaHR0cHM6Ly9hcGkuanF1ZXJ5LmNvbS9pbnNlcnRBZnRlci99XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpbnNlcnRBZnRlcjxUIGV4dGVuZHMgQW55Tm9kZT4oXG4gIHRoaXM6IENoZWVyaW88VD4sXG4gIHRhcmdldDogQmFzaWNBY2NlcHRlZEVsZW1zPEFueU5vZGU+LFxuKTogQ2hlZXJpbzxUPiB7XG4gIGlmICh0eXBlb2YgdGFyZ2V0ID09PSAnc3RyaW5nJykge1xuICAgIHRhcmdldCA9IHRoaXMuX21ha2U8QW55Tm9kZT4odGFyZ2V0KTtcbiAgfVxuXG4gIHRoaXMucmVtb3ZlKCk7XG5cbiAgY29uc3QgY2xvbmVzOiBUW10gPSBbXTtcblxuICBmb3IgKGNvbnN0IGVsIG9mIHRoaXMuX21ha2VEb21BcnJheSh0YXJnZXQpKSB7XG4gICAgY29uc3QgY2xvbmVkU2VsZiA9IHRoaXMuY2xvbmUoKS50b0FycmF5KCk7XG4gICAgY29uc3QgeyBwYXJlbnQgfSA9IGVsO1xuICAgIGlmICghcGFyZW50KSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBjb25zdCBzaWJsaW5nczogQW55Tm9kZVtdID0gcGFyZW50LmNoaWxkcmVuO1xuICAgIGNvbnN0IGluZGV4ID0gc2libGluZ3MuaW5kZXhPZihlbCk7XG5cbiAgICAvLyBJZiBub3QgZm91bmQsIG1vdmUgb25cbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgIGlmIChpbmRleCA8IDApIGNvbnRpbnVlO1xuXG4gICAgLy8gQWRkIGNsb25lZCBgdGhpc2AgZWxlbWVudChzKSBhZnRlciB0YXJnZXQgZWxlbWVudFxuICAgIHVuaXF1ZVNwbGljZShzaWJsaW5ncywgaW5kZXggKyAxLCAwLCBjbG9uZWRTZWxmLCBwYXJlbnQpO1xuICAgIGNsb25lcy5wdXNoKC4uLmNsb25lZFNlbGYpO1xuICB9XG5cbiAgcmV0dXJuIHRoaXMuX21ha2UoY2xvbmVzKTtcbn1cblxuLyoqXG4gKiBJbnNlcnQgY29udGVudCBwcmV2aW91cyB0byBlYWNoIGVsZW1lbnQgaW4gdGhlIHNldCBvZiBtYXRjaGVkIGVsZW1lbnRzLlxuICpcbiAqIEBjYXRlZ29yeSBNYW5pcHVsYXRpb25cbiAqIEBleGFtcGxlXG4gKlxuICogYGBganNcbiAqICQoJy5hcHBsZScpLmJlZm9yZSgnPGxpIGNsYXNzPVwicGx1bVwiPlBsdW08L2xpPicpO1xuICogJC5odG1sKCk7XG4gKiAvLz0+ICA8dWwgaWQ9XCJmcnVpdHNcIj5cbiAqIC8vICAgICAgPGxpIGNsYXNzPVwicGx1bVwiPlBsdW08L2xpPlxuICogLy8gICAgICA8bGkgY2xhc3M9XCJhcHBsZVwiPkFwcGxlPC9saT5cbiAqIC8vICAgICAgPGxpIGNsYXNzPVwib3JhbmdlXCI+T3JhbmdlPC9saT5cbiAqIC8vICAgICAgPGxpIGNsYXNzPVwicGVhclwiPlBlYXI8L2xpPlxuICogLy8gICAgPC91bD5cbiAqIGBgYFxuICpcbiAqIEBwYXJhbSBlbGVtcyAtIEhUTUwgc3RyaW5nLCBET00gZWxlbWVudCwgYXJyYXkgb2YgRE9NIGVsZW1lbnRzIG9yIENoZWVyaW8gdG9cbiAqICAgaW5zZXJ0IGJlZm9yZSBlYWNoIGVsZW1lbnQgaW4gdGhlIHNldCBvZiBtYXRjaGVkIGVsZW1lbnRzLlxuICogQHJldHVybnMgVGhlIGluc3RhbmNlIGl0c2VsZi5cbiAqIEBzZWUge0BsaW5rIGh0dHBzOi8vYXBpLmpxdWVyeS5jb20vYmVmb3JlL31cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJlZm9yZTxUIGV4dGVuZHMgQW55Tm9kZT4oXG4gIHRoaXM6IENoZWVyaW88VD4sXG4gIC4uLmVsZW1zOlxuICAgIHwgWyh0aGlzOiBBbnlOb2RlLCBpOiBudW1iZXIsIGh0bWw6IHN0cmluZykgPT4gQmFzaWNBY2NlcHRlZEVsZW1zPEFueU5vZGU+XVxuICAgIHwgQmFzaWNBY2NlcHRlZEVsZW1zPEFueU5vZGU+W11cbik6IENoZWVyaW88VD4ge1xuICBjb25zdCBsYXN0SWR4ID0gdGhpcy5sZW5ndGggLSAxO1xuXG4gIHJldHVybiBkb21FYWNoKHRoaXMsIChlbCwgaSkgPT4ge1xuICAgIGlmICghaGFzQ2hpbGRyZW4oZWwpIHx8ICFlbC5wYXJlbnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBzaWJsaW5nczogQW55Tm9kZVtdID0gZWwucGFyZW50LmNoaWxkcmVuO1xuICAgIGNvbnN0IGluZGV4ID0gc2libGluZ3MuaW5kZXhPZihlbCk7XG5cbiAgICAvLyBJZiBub3QgZm91bmQsIG1vdmUgb25cbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgIGlmIChpbmRleCA8IDApIHJldHVybjtcblxuICAgIGNvbnN0IGRvbVNyYyA9XG4gICAgICB0eXBlb2YgZWxlbXNbMF0gPT09ICdmdW5jdGlvbidcbiAgICAgICAgPyBlbGVtc1swXS5jYWxsKGVsLCBpLCB0aGlzLl9yZW5kZXIoZWwuY2hpbGRyZW4pKVxuICAgICAgICA6IChlbGVtcyBhcyBCYXNpY0FjY2VwdGVkRWxlbXM8QW55Tm9kZT5bXSk7XG5cbiAgICBjb25zdCBkb20gPSB0aGlzLl9tYWtlRG9tQXJyYXkoZG9tU3JjLCBpIDwgbGFzdElkeCk7XG5cbiAgICAvLyBBZGQgZWxlbWVudCBiZWZvcmUgYGVsYCBlbGVtZW50XG4gICAgdW5pcXVlU3BsaWNlKHNpYmxpbmdzLCBpbmRleCwgMCwgZG9tLCBlbC5wYXJlbnQpO1xuICB9KTtcbn1cblxuLyoqXG4gKiBJbnNlcnQgZXZlcnkgZWxlbWVudCBpbiB0aGUgc2V0IG9mIG1hdGNoZWQgZWxlbWVudHMgYmVmb3JlIHRoZSB0YXJnZXQuXG4gKlxuICogQGNhdGVnb3J5IE1hbmlwdWxhdGlvblxuICogQGV4YW1wbGVcbiAqXG4gKiBgYGBqc1xuICogJCgnPGxpIGNsYXNzPVwicGx1bVwiPlBsdW08L2xpPicpLmluc2VydEJlZm9yZSgnLmFwcGxlJyk7XG4gKiAkLmh0bWwoKTtcbiAqIC8vPT4gIDx1bCBpZD1cImZydWl0c1wiPlxuICogLy8gICAgICA8bGkgY2xhc3M9XCJwbHVtXCI+UGx1bTwvbGk+XG4gKiAvLyAgICAgIDxsaSBjbGFzcz1cImFwcGxlXCI+QXBwbGU8L2xpPlxuICogLy8gICAgICA8bGkgY2xhc3M9XCJvcmFuZ2VcIj5PcmFuZ2U8L2xpPlxuICogLy8gICAgICA8bGkgY2xhc3M9XCJwZWFyXCI+UGVhcjwvbGk+XG4gKiAvLyAgICA8L3VsPlxuICogYGBgXG4gKlxuICogQHBhcmFtIHRhcmdldCAtIEVsZW1lbnQgdG8gaW5zZXJ0IGVsZW1lbnRzIGJlZm9yZS5cbiAqIEByZXR1cm5zIFRoZSBzZXQgb2YgbmV3bHkgaW5zZXJ0ZWQgZWxlbWVudHMuXG4gKiBAc2VlIHtAbGluayBodHRwczovL2FwaS5qcXVlcnkuY29tL2luc2VydEJlZm9yZS99XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpbnNlcnRCZWZvcmU8VCBleHRlbmRzIEFueU5vZGU+KFxuICB0aGlzOiBDaGVlcmlvPFQ+LFxuICB0YXJnZXQ6IEJhc2ljQWNjZXB0ZWRFbGVtczxBbnlOb2RlPixcbik6IENoZWVyaW88VD4ge1xuICBjb25zdCB0YXJnZXRBcnIgPSB0aGlzLl9tYWtlPEFueU5vZGU+KHRhcmdldCk7XG5cbiAgdGhpcy5yZW1vdmUoKTtcblxuICBjb25zdCBjbG9uZXM6IFRbXSA9IFtdO1xuXG4gIGRvbUVhY2godGFyZ2V0QXJyLCAoZWwpID0+IHtcbiAgICBjb25zdCBjbG9uZWRTZWxmID0gdGhpcy5jbG9uZSgpLnRvQXJyYXkoKTtcbiAgICBjb25zdCB7IHBhcmVudCB9ID0gZWw7XG4gICAgaWYgKCFwYXJlbnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBzaWJsaW5nczogQW55Tm9kZVtdID0gcGFyZW50LmNoaWxkcmVuO1xuICAgIGNvbnN0IGluZGV4ID0gc2libGluZ3MuaW5kZXhPZihlbCk7XG5cbiAgICAvLyBJZiBub3QgZm91bmQsIG1vdmUgb25cbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgIGlmIChpbmRleCA8IDApIHJldHVybjtcblxuICAgIC8vIEFkZCBjbG9uZWQgYHRoaXNgIGVsZW1lbnQocykgYWZ0ZXIgdGFyZ2V0IGVsZW1lbnRcbiAgICB1bmlxdWVTcGxpY2Uoc2libGluZ3MsIGluZGV4LCAwLCBjbG9uZWRTZWxmLCBwYXJlbnQpO1xuICAgIGNsb25lcy5wdXNoKC4uLmNsb25lZFNlbGYpO1xuICB9KTtcblxuICByZXR1cm4gdGhpcy5fbWFrZShjbG9uZXMpO1xufVxuXG4vKipcbiAqIFJlbW92ZXMgdGhlIHNldCBvZiBtYXRjaGVkIGVsZW1lbnRzIGZyb20gdGhlIERPTSBhbmQgYWxsIHRoZWlyIGNoaWxkcmVuLlxuICogYHNlbGVjdG9yYCBmaWx0ZXJzIHRoZSBzZXQgb2YgbWF0Y2hlZCBlbGVtZW50cyB0byBiZSByZW1vdmVkLlxuICpcbiAqIEBjYXRlZ29yeSBNYW5pcHVsYXRpb25cbiAqIEBleGFtcGxlXG4gKlxuICogYGBganNcbiAqICQoJy5wZWFyJykucmVtb3ZlKCk7XG4gKiAkLmh0bWwoKTtcbiAqIC8vPT4gIDx1bCBpZD1cImZydWl0c1wiPlxuICogLy8gICAgICA8bGkgY2xhc3M9XCJhcHBsZVwiPkFwcGxlPC9saT5cbiAqIC8vICAgICAgPGxpIGNsYXNzPVwib3JhbmdlXCI+T3JhbmdlPC9saT5cbiAqIC8vICAgIDwvdWw+XG4gKiBgYGBcbiAqXG4gKiBAcGFyYW0gc2VsZWN0b3IgLSBPcHRpb25hbCBzZWxlY3RvciBmb3IgZWxlbWVudHMgdG8gcmVtb3ZlLlxuICogQHJldHVybnMgVGhlIGluc3RhbmNlIGl0c2VsZi5cbiAqIEBzZWUge0BsaW5rIGh0dHBzOi8vYXBpLmpxdWVyeS5jb20vcmVtb3ZlL31cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlbW92ZTxUIGV4dGVuZHMgQW55Tm9kZT4oXG4gIHRoaXM6IENoZWVyaW88VD4sXG4gIHNlbGVjdG9yPzogc3RyaW5nLFxuKTogQ2hlZXJpbzxUPiB7XG4gIC8vIEZpbHRlciBpZiB3ZSBoYXZlIHNlbGVjdG9yXG4gIGNvbnN0IGVsZW1zID0gc2VsZWN0b3IgPyB0aGlzLmZpbHRlcihzZWxlY3RvcikgOiB0aGlzO1xuXG4gIGRvbUVhY2goZWxlbXMsIChlbCkgPT4ge1xuICAgIHJlbW92ZUVsZW1lbnQoZWwpO1xuICAgIGVsLnByZXYgPSBlbC5uZXh0ID0gZWwucGFyZW50ID0gbnVsbDtcbiAgfSk7XG5cbiAgcmV0dXJuIHRoaXM7XG59XG5cbi8qKlxuICogUmVwbGFjZXMgbWF0Y2hlZCBlbGVtZW50cyB3aXRoIGBjb250ZW50YC5cbiAqXG4gKiBAY2F0ZWdvcnkgTWFuaXB1bGF0aW9uXG4gKiBAZXhhbXBsZVxuICpcbiAqIGBgYGpzXG4gKiBjb25zdCBwbHVtID0gJCgnPGxpIGNsYXNzPVwicGx1bVwiPlBsdW08L2xpPicpO1xuICogJCgnLnBlYXInKS5yZXBsYWNlV2l0aChwbHVtKTtcbiAqICQuaHRtbCgpO1xuICogLy89PiA8dWwgaWQ9XCJmcnVpdHNcIj5cbiAqIC8vICAgICA8bGkgY2xhc3M9XCJhcHBsZVwiPkFwcGxlPC9saT5cbiAqIC8vICAgICA8bGkgY2xhc3M9XCJvcmFuZ2VcIj5PcmFuZ2U8L2xpPlxuICogLy8gICAgIDxsaSBjbGFzcz1cInBsdW1cIj5QbHVtPC9saT5cbiAqIC8vICAgPC91bD5cbiAqIGBgYFxuICpcbiAqIEBwYXJhbSBjb250ZW50IC0gUmVwbGFjZW1lbnQgZm9yIG1hdGNoZWQgZWxlbWVudHMuXG4gKiBAcmV0dXJucyBUaGUgaW5zdGFuY2UgaXRzZWxmLlxuICogQHNlZSB7QGxpbmsgaHR0cHM6Ly9hcGkuanF1ZXJ5LmNvbS9yZXBsYWNlV2l0aC99XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXBsYWNlV2l0aDxUIGV4dGVuZHMgQW55Tm9kZT4oXG4gIHRoaXM6IENoZWVyaW88VD4sXG4gIGNvbnRlbnQ6IEFjY2VwdGVkRWxlbXM8QW55Tm9kZT4sXG4pOiBDaGVlcmlvPFQ+IHtcbiAgcmV0dXJuIGRvbUVhY2godGhpcywgKGVsLCBpKSA9PiB7XG4gICAgY29uc3QgeyBwYXJlbnQgfSA9IGVsO1xuICAgIGlmICghcGFyZW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3Qgc2libGluZ3M6IEFueU5vZGVbXSA9IHBhcmVudC5jaGlsZHJlbjtcbiAgICBjb25zdCBjb250ID1cbiAgICAgIHR5cGVvZiBjb250ZW50ID09PSAnZnVuY3Rpb24nID8gY29udGVudC5jYWxsKGVsLCBpLCBlbCkgOiBjb250ZW50O1xuICAgIGNvbnN0IGRvbSA9IHRoaXMuX21ha2VEb21BcnJheShjb250KTtcblxuICAgIC8qXG4gICAgICogSW4gdGhlIGNhc2UgdGhhdCBgZG9tYCBjb250YWlucyBub2RlcyB0aGF0IGFscmVhZHkgZXhpc3QgaW4gb3RoZXJcbiAgICAgKiBzdHJ1Y3R1cmVzLCBlbnN1cmUgdGhvc2Ugbm9kZXMgYXJlIHByb3Blcmx5IHJlbW92ZWQuXG4gICAgICovXG4gICAgdXBkYXRlRE9NKGRvbSwgbnVsbCk7XG5cbiAgICBjb25zdCBpbmRleCA9IHNpYmxpbmdzLmluZGV4T2YoZWwpO1xuXG4gICAgLy8gQ29tcGxldGVseSByZW1vdmUgb2xkIGVsZW1lbnRcbiAgICB1bmlxdWVTcGxpY2Uoc2libGluZ3MsIGluZGV4LCAxLCBkb20sIHBhcmVudCk7XG5cbiAgICBpZiAoIWRvbS5pbmNsdWRlcyhlbCkpIHtcbiAgICAgIGVsLnBhcmVudCA9IGVsLnByZXYgPSBlbC5uZXh0ID0gbnVsbDtcbiAgICB9XG4gIH0pO1xufVxuXG4vKipcbiAqIFJlbW92ZXMgYWxsIGNoaWxkcmVuIGZyb20gZWFjaCBpdGVtIGluIHRoZSBzZWxlY3Rpb24uIFRleHQgbm9kZXMgYW5kIGNvbW1lbnRcbiAqIG5vZGVzIGFyZSBsZWZ0IGFzIGlzLlxuICpcbiAqIEBjYXRlZ29yeSBNYW5pcHVsYXRpb25cbiAqIEBleGFtcGxlXG4gKlxuICogYGBganNcbiAqICQoJ3VsJykuZW1wdHkoKTtcbiAqICQuaHRtbCgpO1xuICogLy89PiAgPHVsIGlkPVwiZnJ1aXRzXCI+PC91bD5cbiAqIGBgYFxuICpcbiAqIEByZXR1cm5zIFRoZSBpbnN0YW5jZSBpdHNlbGYuXG4gKiBAc2VlIHtAbGluayBodHRwczovL2FwaS5qcXVlcnkuY29tL2VtcHR5L31cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGVtcHR5PFQgZXh0ZW5kcyBBbnlOb2RlPih0aGlzOiBDaGVlcmlvPFQ+KTogQ2hlZXJpbzxUPiB7XG4gIHJldHVybiBkb21FYWNoKHRoaXMsIChlbCkgPT4ge1xuICAgIGlmICghaGFzQ2hpbGRyZW4oZWwpKSByZXR1cm47XG4gICAgZm9yIChjb25zdCBjaGlsZCBvZiBlbC5jaGlsZHJlbikge1xuICAgICAgY2hpbGQubmV4dCA9IGNoaWxkLnByZXYgPSBjaGlsZC5wYXJlbnQgPSBudWxsO1xuICAgIH1cblxuICAgIGVsLmNoaWxkcmVuLmxlbmd0aCA9IDA7XG4gIH0pO1xufVxuXG4vKipcbiAqIEdldHMgYW4gSFRNTCBjb250ZW50IHN0cmluZyBmcm9tIHRoZSBmaXJzdCBzZWxlY3RlZCBlbGVtZW50LlxuICpcbiAqIEBjYXRlZ29yeSBNYW5pcHVsYXRpb25cbiAqIEBleGFtcGxlXG4gKlxuICogYGBganNcbiAqICQoJy5vcmFuZ2UnKS5odG1sKCk7XG4gKiAvLz0+IE9yYW5nZVxuICpcbiAqICQoJyNmcnVpdHMnKS5odG1sKCc8bGkgY2xhc3M9XCJtYW5nb1wiPk1hbmdvPC9saT4nKS5odG1sKCk7XG4gKiAvLz0+IDxsaSBjbGFzcz1cIm1hbmdvXCI+TWFuZ288L2xpPlxuICogYGBgXG4gKlxuICogQHJldHVybnMgVGhlIEhUTUwgY29udGVudCBzdHJpbmcuXG4gKiBAc2VlIHtAbGluayBodHRwczovL2FwaS5qcXVlcnkuY29tL2h0bWwvfVxuICovXG5leHBvcnQgZnVuY3Rpb24gaHRtbDxUIGV4dGVuZHMgQW55Tm9kZT4odGhpczogQ2hlZXJpbzxUPik6IHN0cmluZyB8IG51bGw7XG4vKipcbiAqIFJlcGxhY2VzIGVhY2ggc2VsZWN0ZWQgZWxlbWVudCdzIGNvbnRlbnQgd2l0aCB0aGUgc3BlY2lmaWVkIGNvbnRlbnQuXG4gKlxuICogQGNhdGVnb3J5IE1hbmlwdWxhdGlvblxuICogQGV4YW1wbGVcbiAqXG4gKiBgYGBqc1xuICogJCgnLm9yYW5nZScpLmh0bWwoJzxsaSBjbGFzcz1cIm1hbmdvXCI+TWFuZ288L2xpPicpLmh0bWwoKTtcbiAqIC8vPT4gPGxpIGNsYXNzPVwibWFuZ29cIj5NYW5nbzwvbGk+XG4gKiBgYGBcbiAqXG4gKiBAcGFyYW0gc3RyIC0gVGhlIGNvbnRlbnQgdG8gcmVwbGFjZSBzZWxlY3Rpb24ncyBjb250ZW50cyB3aXRoLlxuICogQHJldHVybnMgVGhlIGluc3RhbmNlIGl0c2VsZi5cbiAqIEBzZWUge0BsaW5rIGh0dHBzOi8vYXBpLmpxdWVyeS5jb20vaHRtbC99XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBodG1sPFQgZXh0ZW5kcyBBbnlOb2RlPihcbiAgdGhpczogQ2hlZXJpbzxUPixcbiAgc3RyOiBzdHJpbmcgfCBDaGVlcmlvPFQ+LFxuKTogQ2hlZXJpbzxUPjtcbmV4cG9ydCBmdW5jdGlvbiBodG1sPFQgZXh0ZW5kcyBBbnlOb2RlPihcbiAgdGhpczogQ2hlZXJpbzxUPixcbiAgc3RyPzogc3RyaW5nIHwgQ2hlZXJpbzxBbnlOb2RlPixcbik6IENoZWVyaW88VD4gfCBzdHJpbmcgfCBudWxsIHtcbiAgaWYgKHN0ciA9PT0gdW5kZWZpbmVkKSB7XG4gICAgY29uc3QgZWwgPSB0aGlzWzBdO1xuICAgIGlmICghZWwgfHwgIWhhc0NoaWxkcmVuKGVsKSkgcmV0dXJuIG51bGw7XG4gICAgcmV0dXJuIHRoaXMuX3JlbmRlcihlbC5jaGlsZHJlbik7XG4gIH1cblxuICByZXR1cm4gZG9tRWFjaCh0aGlzLCAoZWwpID0+IHtcbiAgICBpZiAoIWhhc0NoaWxkcmVuKGVsKSkgcmV0dXJuO1xuICAgIGZvciAoY29uc3QgY2hpbGQgb2YgZWwuY2hpbGRyZW4pIHtcbiAgICAgIGNoaWxkLm5leHQgPSBjaGlsZC5wcmV2ID0gY2hpbGQucGFyZW50ID0gbnVsbDtcbiAgICB9XG5cbiAgICBjb25zdCBjb250ZW50ID0gaXNDaGVlcmlvKHN0cilcbiAgICAgID8gc3RyLnRvQXJyYXkoKVxuICAgICAgOiB0aGlzLl9wYXJzZShgJHtzdHJ9YCwgdGhpcy5vcHRpb25zLCBmYWxzZSwgZWwpLmNoaWxkcmVuO1xuXG4gICAgdXBkYXRlRE9NKGNvbnRlbnQsIGVsKTtcbiAgfSk7XG59XG5cbi8qKlxuICogVHVybnMgdGhlIGNvbGxlY3Rpb24gdG8gYSBzdHJpbmcuIEFsaWFzIGZvciBgLmh0bWwoKWAuXG4gKlxuICogQGNhdGVnb3J5IE1hbmlwdWxhdGlvblxuICogQHJldHVybnMgVGhlIHJlbmRlcmVkIGRvY3VtZW50LlxuICovXG5leHBvcnQgZnVuY3Rpb24gdG9TdHJpbmc8VCBleHRlbmRzIEFueU5vZGU+KHRoaXM6IENoZWVyaW88VD4pOiBzdHJpbmcge1xuICByZXR1cm4gdGhpcy5fcmVuZGVyKHRoaXMpO1xufVxuXG4vKipcbiAqIEdldCB0aGUgY29tYmluZWQgdGV4dCBjb250ZW50cyBvZiBlYWNoIGVsZW1lbnQgaW4gdGhlIHNldCBvZiBtYXRjaGVkXG4gKiBlbGVtZW50cywgaW5jbHVkaW5nIHRoZWlyIGRlc2NlbmRhbnRzLlxuICpcbiAqIEBjYXRlZ29yeSBNYW5pcHVsYXRpb25cbiAqIEBleGFtcGxlXG4gKlxuICogYGBganNcbiAqICQoJy5vcmFuZ2UnKS50ZXh0KCk7XG4gKiAvLz0+IE9yYW5nZVxuICpcbiAqICQoJ3VsJykudGV4dCgpO1xuICogLy89PiAgQXBwbGVcbiAqIC8vICAgIE9yYW5nZVxuICogLy8gICAgUGVhclxuICogYGBgXG4gKlxuICogQHJldHVybnMgVGhlIHRleHQgY29udGVudHMgb2YgdGhlIGNvbGxlY3Rpb24uXG4gKiBAc2VlIHtAbGluayBodHRwczovL2FwaS5qcXVlcnkuY29tL3RleHQvfVxuICovXG5leHBvcnQgZnVuY3Rpb24gdGV4dDxUIGV4dGVuZHMgQW55Tm9kZT4odGhpczogQ2hlZXJpbzxUPik6IHN0cmluZztcbi8qKlxuICogU2V0IHRoZSBjb250ZW50IG9mIGVhY2ggZWxlbWVudCBpbiB0aGUgc2V0IG9mIG1hdGNoZWQgZWxlbWVudHMgdG8gdGhlXG4gKiBzcGVjaWZpZWQgdGV4dC5cbiAqXG4gKiBAY2F0ZWdvcnkgTWFuaXB1bGF0aW9uXG4gKiBAZXhhbXBsZVxuICpcbiAqIGBgYGpzXG4gKiAkKCcub3JhbmdlJykudGV4dCgnT3JhbmdlJyk7XG4gKiAvLz0+IDxkaXYgY2xhc3M9XCJvcmFuZ2VcIj5PcmFuZ2U8L2Rpdj5cbiAqIGBgYFxuICpcbiAqIEBwYXJhbSBzdHIgLSBUaGUgdGV4dCB0byBzZXQgYXMgdGhlIGNvbnRlbnQgb2YgZWFjaCBtYXRjaGVkIGVsZW1lbnQuXG4gKiBAcmV0dXJucyBUaGUgaW5zdGFuY2UgaXRzZWxmLlxuICogQHNlZSB7QGxpbmsgaHR0cHM6Ly9hcGkuanF1ZXJ5LmNvbS90ZXh0L31cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRleHQ8VCBleHRlbmRzIEFueU5vZGU+KFxuICB0aGlzOiBDaGVlcmlvPFQ+LFxuICBzdHI6IHN0cmluZyB8ICgodGhpczogQW55Tm9kZSwgaTogbnVtYmVyLCB0ZXh0OiBzdHJpbmcpID0+IHN0cmluZyksXG4pOiBDaGVlcmlvPFQ+O1xuZXhwb3J0IGZ1bmN0aW9uIHRleHQ8VCBleHRlbmRzIEFueU5vZGU+KFxuICB0aGlzOiBDaGVlcmlvPFQ+LFxuICBzdHI/OiBzdHJpbmcgfCAoKHRoaXM6IEFueU5vZGUsIGk6IG51bWJlciwgdGV4dDogc3RyaW5nKSA9PiBzdHJpbmcpLFxuKTogQ2hlZXJpbzxUPiB8IHN0cmluZyB7XG4gIC8vIElmIGBzdHJgIGlzIHVuZGVmaW5lZCwgYWN0IGFzIGEgXCJnZXR0ZXJcIlxuICBpZiAoc3RyID09PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gc3RhdGljVGV4dCh0aGlzKTtcbiAgfVxuICBpZiAodHlwZW9mIHN0ciA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIC8vIEZ1bmN0aW9uIHN1cHBvcnRcbiAgICByZXR1cm4gZG9tRWFjaCh0aGlzLCAoZWwsIGkpID0+XG4gICAgICB0aGlzLl9tYWtlKGVsKS50ZXh0KHN0ci5jYWxsKGVsLCBpLCBzdGF0aWNUZXh0KFtlbF0pKSksXG4gICAgKTtcbiAgfVxuXG4gIC8vIEFwcGVuZCB0ZXh0IG5vZGUgdG8gZWFjaCBzZWxlY3RlZCBlbGVtZW50c1xuICByZXR1cm4gZG9tRWFjaCh0aGlzLCAoZWwpID0+IHtcbiAgICBpZiAoIWhhc0NoaWxkcmVuKGVsKSkgcmV0dXJuO1xuICAgIGZvciAoY29uc3QgY2hpbGQgb2YgZWwuY2hpbGRyZW4pIHtcbiAgICAgIGNoaWxkLm5leHQgPSBjaGlsZC5wcmV2ID0gY2hpbGQucGFyZW50ID0gbnVsbDtcbiAgICB9XG5cbiAgICBjb25zdCB0ZXh0Tm9kZSA9IG5ldyBUZXh0KGAke3N0cn1gKTtcblxuICAgIHVwZGF0ZURPTSh0ZXh0Tm9kZSwgZWwpO1xuICB9KTtcbn1cblxuLyoqXG4gKiBDbG9uZSB0aGUgY2hlZXJpbyBvYmplY3QuXG4gKlxuICogQGNhdGVnb3J5IE1hbmlwdWxhdGlvblxuICogQGV4YW1wbGVcbiAqXG4gKiBgYGBqc1xuICogY29uc3QgbW9yZUZydWl0ID0gJCgnI2ZydWl0cycpLmNsb25lKCk7XG4gKiBgYGBcbiAqXG4gKiBAcmV0dXJucyBUaGUgY2xvbmVkIG9iamVjdC5cbiAqIEBzZWUge0BsaW5rIGh0dHBzOi8vYXBpLmpxdWVyeS5jb20vY2xvbmUvfVxuICovXG5leHBvcnQgZnVuY3Rpb24gY2xvbmU8VCBleHRlbmRzIEFueU5vZGU+KHRoaXM6IENoZWVyaW88VD4pOiBDaGVlcmlvPFQ+IHtcbiAgY29uc3QgY2xvbmUgPSBBcnJheS5wcm90b3R5cGUubWFwLmNhbGwodGhpcy5nZXQoKSwgKGVsKSA9PlxuICAgIGNsb25lTm9kZShlbCwgdHJ1ZSksXG4gICkgYXMgVFtdO1xuXG4gIC8vIEFkZCBhIHJvb3Qgbm9kZSBhcm91bmQgdGhlIGNsb25lZCBub2Rlc1xuICBjb25zdCByb290ID0gbmV3IERvY3VtZW50KGNsb25lKTtcbiAgZm9yIChjb25zdCBub2RlIG9mIGNsb25lKSB7XG4gICAgbm9kZS5wYXJlbnQgPSByb290O1xuICB9XG5cbiAgcmV0dXJuIHRoaXMuX21ha2UoY2xvbmUpO1xufVxuIiwgImltcG9ydCB7IGRvbUVhY2ggfSBmcm9tICcuLi91dGlscy5qcyc7XG5pbXBvcnQgeyBpc1RhZywgdHlwZSBFbGVtZW50LCB0eXBlIEFueU5vZGUgfSBmcm9tICdkb21oYW5kbGVyJztcbmltcG9ydCB0eXBlIHsgQ2hlZXJpbyB9IGZyb20gJy4uL2NoZWVyaW8uanMnO1xuXG4vKipcbiAqIEdldCB0aGUgdmFsdWUgb2YgYSBzdHlsZSBwcm9wZXJ0eSBmb3IgdGhlIGZpcnN0IGVsZW1lbnQgaW4gdGhlIHNldCBvZiBtYXRjaGVkXG4gKiBlbGVtZW50cy5cbiAqXG4gKiBAY2F0ZWdvcnkgQ1NTXG4gKiBAcGFyYW0gbmFtZXMgLSBPcHRpb25hbGx5IHRoZSBuYW1lcyBvZiB0aGUgcHJvcGVydGllcyBvZiBpbnRlcmVzdC5cbiAqIEByZXR1cm5zIEEgbWFwIG9mIGFsbCBvZiB0aGUgc3R5bGUgcHJvcGVydGllcy5cbiAqIEBzZWUge0BsaW5rIGh0dHBzOi8vYXBpLmpxdWVyeS5jb20vY3NzL31cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNzczxUIGV4dGVuZHMgQW55Tm9kZT4oXG4gIHRoaXM6IENoZWVyaW88VD4sXG4gIG5hbWVzPzogc3RyaW5nW10sXG4pOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+IHwgdW5kZWZpbmVkO1xuLyoqXG4gKiBHZXQgdGhlIHZhbHVlIG9mIGEgc3R5bGUgcHJvcGVydHkgZm9yIHRoZSBmaXJzdCBlbGVtZW50IGluIHRoZSBzZXQgb2YgbWF0Y2hlZFxuICogZWxlbWVudHMuXG4gKlxuICogQGNhdGVnb3J5IENTU1xuICogQHBhcmFtIG5hbWUgLSBUaGUgbmFtZSBvZiB0aGUgcHJvcGVydHkuXG4gKiBAcmV0dXJucyBUaGUgcHJvcGVydHkgdmFsdWUgZm9yIHRoZSBnaXZlbiBuYW1lLlxuICogQHNlZSB7QGxpbmsgaHR0cHM6Ly9hcGkuanF1ZXJ5LmNvbS9jc3MvfVxuICovXG5leHBvcnQgZnVuY3Rpb24gY3NzPFQgZXh0ZW5kcyBBbnlOb2RlPihcbiAgdGhpczogQ2hlZXJpbzxUPixcbiAgbmFtZTogc3RyaW5nLFxuKTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuLyoqXG4gKiBTZXQgb25lIENTUyBwcm9wZXJ0eSBmb3IgZXZlcnkgbWF0Y2hlZCBlbGVtZW50LlxuICpcbiAqIEBjYXRlZ29yeSBDU1NcbiAqIEBwYXJhbSBwcm9wIC0gVGhlIG5hbWUgb2YgdGhlIHByb3BlcnR5LlxuICogQHBhcmFtIHZhbCAtIFRoZSBuZXcgdmFsdWUuXG4gKiBAcmV0dXJucyBUaGUgaW5zdGFuY2UgaXRzZWxmLlxuICogQHNlZSB7QGxpbmsgaHR0cHM6Ly9hcGkuanF1ZXJ5LmNvbS9jc3MvfVxuICovXG5leHBvcnQgZnVuY3Rpb24gY3NzPFQgZXh0ZW5kcyBBbnlOb2RlPihcbiAgdGhpczogQ2hlZXJpbzxUPixcbiAgcHJvcDogc3RyaW5nLFxuICB2YWw6XG4gICAgfCBzdHJpbmdcbiAgICB8ICgodGhpczogRWxlbWVudCwgaTogbnVtYmVyLCBzdHlsZTogc3RyaW5nKSA9PiBzdHJpbmcgfCB1bmRlZmluZWQpLFxuKTogQ2hlZXJpbzxUPjtcbi8qKlxuICogU2V0IG11bHRpcGxlIENTUyBwcm9wZXJ0aWVzIGZvciBldmVyeSBtYXRjaGVkIGVsZW1lbnQuXG4gKlxuICogQGNhdGVnb3J5IENTU1xuICogQHBhcmFtIG1hcCAtIEEgbWFwIG9mIHByb3BlcnR5IG5hbWVzIGFuZCB2YWx1ZXMuXG4gKiBAcmV0dXJucyBUaGUgaW5zdGFuY2UgaXRzZWxmLlxuICogQHNlZSB7QGxpbmsgaHR0cHM6Ly9hcGkuanF1ZXJ5LmNvbS9jc3MvfVxuICovXG5leHBvcnQgZnVuY3Rpb24gY3NzPFQgZXh0ZW5kcyBBbnlOb2RlPihcbiAgdGhpczogQ2hlZXJpbzxUPixcbiAgbWFwOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+LFxuKTogQ2hlZXJpbzxUPjtcbi8qKlxuICogU2V0IG11bHRpcGxlIENTUyBwcm9wZXJ0aWVzIGZvciBldmVyeSBtYXRjaGVkIGVsZW1lbnQuXG4gKlxuICogQGNhdGVnb3J5IENTU1xuICogQHBhcmFtIHByb3AgLSBUaGUgbmFtZXMgb2YgdGhlIHByb3BlcnRpZXMuXG4gKiBAcGFyYW0gdmFsIC0gVGhlIG5ldyB2YWx1ZXMuXG4gKiBAcmV0dXJucyBUaGUgaW5zdGFuY2UgaXRzZWxmLlxuICogQHNlZSB7QGxpbmsgaHR0cHM6Ly9hcGkuanF1ZXJ5LmNvbS9jc3MvfVxuICovXG5leHBvcnQgZnVuY3Rpb24gY3NzPFQgZXh0ZW5kcyBBbnlOb2RlPihcbiAgdGhpczogQ2hlZXJpbzxUPixcbiAgcHJvcD86IHN0cmluZyB8IHN0cmluZ1tdIHwgUmVjb3JkPHN0cmluZywgc3RyaW5nPixcbiAgdmFsPzpcbiAgICB8IHN0cmluZ1xuICAgIHwgKCh0aGlzOiBFbGVtZW50LCBpOiBudW1iZXIsIHN0eWxlOiBzdHJpbmcpID0+IHN0cmluZyB8IHVuZGVmaW5lZCksXG4pOiBDaGVlcmlvPFQ+IHwgUmVjb3JkPHN0cmluZywgc3RyaW5nPiB8IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIGlmIChcbiAgICAocHJvcCAhPSBudWxsICYmIHZhbCAhPSBudWxsKSB8fFxuICAgIC8vIFdoZW4gYHByb3BgIGlzIGEgXCJwbGFpblwiIG9iamVjdFxuICAgICh0eXBlb2YgcHJvcCA9PT0gJ29iamVjdCcgJiYgIUFycmF5LmlzQXJyYXkocHJvcCkpXG4gICkge1xuICAgIHJldHVybiBkb21FYWNoKHRoaXMsIChlbCwgaSkgPT4ge1xuICAgICAgaWYgKGlzVGFnKGVsKSkge1xuICAgICAgICAvLyBgcHJvcGAgY2FuJ3QgYmUgYW4gYXJyYXkgaGVyZSBhbnltb3JlLlxuICAgICAgICBzZXRDc3MoZWwsIHByb3AgYXMgc3RyaW5nLCB2YWwsIGkpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgaWYgKHRoaXMubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIHJldHVybiBnZXRDc3ModGhpc1swXSwgcHJvcCBhcyBzdHJpbmcpO1xufVxuXG4vKipcbiAqIFNldCBzdHlsZXMgb2YgYWxsIGVsZW1lbnRzLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0gZWwgLSBFbGVtZW50IHRvIHNldCBzdHlsZSBvZi5cbiAqIEBwYXJhbSBwcm9wIC0gTmFtZSBvZiBwcm9wZXJ0eS5cbiAqIEBwYXJhbSB2YWx1ZSAtIFZhbHVlIHRvIHNldCBwcm9wZXJ0eSB0by5cbiAqIEBwYXJhbSBpZHggLSBPcHRpb25hbCBpbmRleCB3aXRoaW4gdGhlIHNlbGVjdGlvbi5cbiAqL1xuZnVuY3Rpb24gc2V0Q3NzKFxuICBlbDogRWxlbWVudCxcbiAgcHJvcDogc3RyaW5nIHwgUmVjb3JkPHN0cmluZywgc3RyaW5nPixcbiAgdmFsdWU6XG4gICAgfCBzdHJpbmdcbiAgICB8ICgodGhpczogRWxlbWVudCwgaTogbnVtYmVyLCBzdHlsZTogc3RyaW5nKSA9PiBzdHJpbmcgfCB1bmRlZmluZWQpXG4gICAgfCB1bmRlZmluZWQsXG4gIGlkeDogbnVtYmVyLFxuKSB7XG4gIGlmICh0eXBlb2YgcHJvcCA9PT0gJ3N0cmluZycpIHtcbiAgICBjb25zdCBzdHlsZXMgPSBnZXRDc3MoZWwpO1xuXG4gICAgY29uc3QgdmFsID1cbiAgICAgIHR5cGVvZiB2YWx1ZSA9PT0gJ2Z1bmN0aW9uJyA/IHZhbHVlLmNhbGwoZWwsIGlkeCwgc3R5bGVzW3Byb3BdKSA6IHZhbHVlO1xuXG4gICAgaWYgKHZhbCA9PT0gJycpIHtcbiAgICAgIGRlbGV0ZSBzdHlsZXNbcHJvcF07XG4gICAgfSBlbHNlIGlmICh2YWwgIT0gbnVsbCkge1xuICAgICAgc3R5bGVzW3Byb3BdID0gdmFsO1xuICAgIH1cblxuICAgIGVsLmF0dHJpYnNbJ3N0eWxlJ10gPSBzdHJpbmdpZnkoc3R5bGVzKTtcbiAgfSBlbHNlIGlmICh0eXBlb2YgcHJvcCA9PT0gJ29iamVjdCcpIHtcbiAgICBjb25zdCBrZXlzID0gT2JqZWN0LmtleXMocHJvcCk7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBrZXlzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBjb25zdCBrID0ga2V5c1tpXTtcbiAgICAgIHNldENzcyhlbCwgaywgcHJvcFtrXSwgaSk7XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogR2V0IHRoZSBwYXJzZWQgc3R5bGVzIG9mIHRoZSBmaXJzdCBlbGVtZW50LlxuICpcbiAqIEBwcml2YXRlXG4gKiBAY2F0ZWdvcnkgQ1NTXG4gKiBAcGFyYW0gZWwgLSBFbGVtZW50IHRvIGdldCBzdHlsZXMgZnJvbS5cbiAqIEBwYXJhbSBwcm9wcyAtIE9wdGlvbmFsbHkgdGhlIG5hbWVzIG9mIHRoZSBwcm9wZXJ0aWVzIG9mIGludGVyZXN0LlxuICogQHJldHVybnMgVGhlIHBhcnNlZCBzdHlsZXMuXG4gKi9cbmZ1bmN0aW9uIGdldENzcyhlbDogQW55Tm9kZSwgcHJvcHM/OiBzdHJpbmdbXSk6IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG4vKipcbiAqIEdldCBhIHByb3BlcnR5IGZyb20gdGhlIHBhcnNlZCBzdHlsZXMgb2YgdGhlIGZpcnN0IGVsZW1lbnQuXG4gKlxuICogQHByaXZhdGVcbiAqIEBjYXRlZ29yeSBDU1NcbiAqIEBwYXJhbSBlbCAtIEVsZW1lbnQgdG8gZ2V0IHN0eWxlcyBmcm9tLlxuICogQHBhcmFtIHByb3AgLSBOYW1lIG9mIHRoZSBwcm9wLlxuICogQHJldHVybnMgVGhlIHZhbHVlIG9mIHRoZSBwcm9wZXJ0eS5cbiAqL1xuZnVuY3Rpb24gZ2V0Q3NzKGVsOiBBbnlOb2RlLCBwcm9wOiBzdHJpbmcpOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5mdW5jdGlvbiBnZXRDc3MoXG4gIGVsOiBBbnlOb2RlLFxuICBwcm9wPzogc3RyaW5nIHwgc3RyaW5nW10sXG4pOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+IHwgc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgaWYgKCFlbCB8fCAhaXNUYWcoZWwpKSByZXR1cm47XG5cbiAgY29uc3Qgc3R5bGVzID0gcGFyc2UoZWwuYXR0cmlic1snc3R5bGUnXSk7XG4gIGlmICh0eXBlb2YgcHJvcCA9PT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gc3R5bGVzW3Byb3BdO1xuICB9XG4gIGlmIChBcnJheS5pc0FycmF5KHByb3ApKSB7XG4gICAgY29uc3QgbmV3U3R5bGVzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge307XG4gICAgZm9yIChjb25zdCBpdGVtIG9mIHByb3ApIHtcbiAgICAgIGlmIChzdHlsZXNbaXRlbV0gIT0gbnVsbCkge1xuICAgICAgICBuZXdTdHlsZXNbaXRlbV0gPSBzdHlsZXNbaXRlbV07XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBuZXdTdHlsZXM7XG4gIH1cbiAgcmV0dXJuIHN0eWxlcztcbn1cblxuLyoqXG4gKiBTdHJpbmdpZnkgYG9iamAgdG8gc3R5bGVzLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAY2F0ZWdvcnkgQ1NTXG4gKiBAcGFyYW0gb2JqIC0gT2JqZWN0IHRvIHN0cmluZ2lmeS5cbiAqIEByZXR1cm5zIFRoZSBzZXJpYWxpemVkIHN0eWxlcy5cbiAqL1xuZnVuY3Rpb24gc3RyaW5naWZ5KG9iajogUmVjb3JkPHN0cmluZywgc3RyaW5nPik6IHN0cmluZyB7XG4gIHJldHVybiBPYmplY3Qua2V5cyhvYmopLnJlZHVjZShcbiAgICAoc3RyLCBwcm9wKSA9PiBgJHtzdHJ9JHtzdHIgPyAnICcgOiAnJ30ke3Byb3B9OiAke29ialtwcm9wXX07YCxcbiAgICAnJyxcbiAgKTtcbn1cblxuLyoqXG4gKiBQYXJzZSBgc3R5bGVzYC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQGNhdGVnb3J5IENTU1xuICogQHBhcmFtIHN0eWxlcyAtIFN0eWxlcyB0byBiZSBwYXJzZWQuXG4gKiBAcmV0dXJucyBUaGUgcGFyc2VkIHN0eWxlcy5cbiAqL1xuZnVuY3Rpb24gcGFyc2Uoc3R5bGVzOiBzdHJpbmcpOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+IHtcbiAgc3R5bGVzID0gKHN0eWxlcyB8fCAnJykudHJpbSgpO1xuXG4gIGlmICghc3R5bGVzKSByZXR1cm4ge307XG5cbiAgY29uc3Qgb2JqOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge307XG5cbiAgbGV0IGtleTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIGZvciAoY29uc3Qgc3RyIG9mIHN0eWxlcy5zcGxpdCgnOycpKSB7XG4gICAgY29uc3QgbiA9IHN0ci5pbmRleE9mKCc6Jyk7XG4gICAgLy8gSWYgdGhlcmUgaXMgbm8gOiwgb3IgaWYgaXQgaXMgdGhlIGZpcnN0L2xhc3QgY2hhcmFjdGVyLCBhZGQgdG8gdGhlIHByZXZpb3VzIGl0ZW0ncyB2YWx1ZVxuICAgIGlmIChuIDwgMSB8fCBuID09PSBzdHIubGVuZ3RoIC0gMSkge1xuICAgICAgY29uc3QgdHJpbW1lZCA9IHN0ci50cmltRW5kKCk7XG4gICAgICBpZiAodHJpbW1lZC5sZW5ndGggPiAwICYmIGtleSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIG9ialtrZXldICs9IGA7JHt0cmltbWVkfWA7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGtleSA9IHN0ci5zbGljZSgwLCBuKS50cmltKCk7XG4gICAgICBvYmpba2V5XSA9IHN0ci5zbGljZShuICsgMSkudHJpbSgpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBvYmo7XG59XG4iLCAiaW1wb3J0IHsgaXNUYWcsIHR5cGUgQW55Tm9kZSB9IGZyb20gJ2RvbWhhbmRsZXInO1xuaW1wb3J0IHR5cGUgeyBDaGVlcmlvIH0gZnJvbSAnLi4vY2hlZXJpby5qcyc7XG5cbi8qXG4gKiBodHRwczovL2dpdGh1Yi5jb20vanF1ZXJ5L2pxdWVyeS9ibG9iLzIuMS4zL3NyYy9tYW5pcHVsYXRpb24vdmFyL3JjaGVja2FibGVUeXBlLmpzXG4gKiBodHRwczovL2dpdGh1Yi5jb20vanF1ZXJ5L2pxdWVyeS9ibG9iLzIuMS4zL3NyYy9zZXJpYWxpemUuanNcbiAqL1xuY29uc3Qgc3VibWl0dGFibGVTZWxlY3RvciA9ICdpbnB1dCxzZWxlY3QsdGV4dGFyZWEsa2V5Z2VuJztcbmNvbnN0IHIyMCA9IC8lMjAvZztcbmNvbnN0IHJDUkxGID0gL1xccj9cXG4vZztcblxuLyoqXG4gKiBFbmNvZGUgYSBzZXQgb2YgZm9ybSBlbGVtZW50cyBhcyBhIHN0cmluZyBmb3Igc3VibWlzc2lvbi5cbiAqXG4gKiBAY2F0ZWdvcnkgRm9ybXNcbiAqIEBleGFtcGxlXG4gKlxuICogYGBganNcbiAqICQoJzxmb3JtPjxpbnB1dCBuYW1lPVwiZm9vXCIgdmFsdWU9XCJiYXJcIiAvPjwvZm9ybT4nKS5zZXJpYWxpemUoKTtcbiAqIC8vPT4gJ2Zvbz1iYXInXG4gKiBgYGBcbiAqXG4gKiBAcmV0dXJucyBUaGUgc2VyaWFsaXplZCBmb3JtLlxuICogQHNlZSB7QGxpbmsgaHR0cHM6Ly9hcGkuanF1ZXJ5LmNvbS9zZXJpYWxpemUvfVxuICovXG5leHBvcnQgZnVuY3Rpb24gc2VyaWFsaXplPFQgZXh0ZW5kcyBBbnlOb2RlPih0aGlzOiBDaGVlcmlvPFQ+KTogc3RyaW5nIHtcbiAgLy8gQ29udmVydCBmb3JtIGVsZW1lbnRzIGludG8gbmFtZS92YWx1ZSBvYmplY3RzXG4gIGNvbnN0IGFyciA9IHRoaXMuc2VyaWFsaXplQXJyYXkoKTtcblxuICAvLyBTZXJpYWxpemUgZWFjaCBlbGVtZW50IGludG8gYSBrZXkvdmFsdWUgc3RyaW5nXG4gIGNvbnN0IHJldEFyciA9IGFyci5tYXAoXG4gICAgKGRhdGEpID0+XG4gICAgICBgJHtlbmNvZGVVUklDb21wb25lbnQoZGF0YS5uYW1lKX09JHtlbmNvZGVVUklDb21wb25lbnQoZGF0YS52YWx1ZSl9YCxcbiAgKTtcblxuICAvLyBSZXR1cm4gdGhlIHJlc3VsdGluZyBzZXJpYWxpemF0aW9uXG4gIHJldHVybiByZXRBcnIuam9pbignJicpLnJlcGxhY2UocjIwLCAnKycpO1xufVxuXG4vKipcbiAqIEVuY29kZSBhIHNldCBvZiBmb3JtIGVsZW1lbnRzIGFzIGFuIGFycmF5IG9mIG5hbWVzIGFuZCB2YWx1ZXMuXG4gKlxuICogQGNhdGVnb3J5IEZvcm1zXG4gKiBAZXhhbXBsZVxuICpcbiAqIGBgYGpzXG4gKiAkKCc8Zm9ybT48aW5wdXQgbmFtZT1cImZvb1wiIHZhbHVlPVwiYmFyXCIgLz48L2Zvcm0+Jykuc2VyaWFsaXplQXJyYXkoKTtcbiAqIC8vPT4gWyB7IG5hbWU6ICdmb28nLCB2YWx1ZTogJ2JhcicgfSBdXG4gKiBgYGBcbiAqXG4gKiBAcmV0dXJucyBUaGUgc2VyaWFsaXplZCBmb3JtLlxuICogQHNlZSB7QGxpbmsgaHR0cHM6Ly9hcGkuanF1ZXJ5LmNvbS9zZXJpYWxpemVBcnJheS99XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzZXJpYWxpemVBcnJheTxUIGV4dGVuZHMgQW55Tm9kZT4oXG4gIHRoaXM6IENoZWVyaW88VD4sXG4pOiB7XG4gIG5hbWU6IHN0cmluZztcbiAgdmFsdWU6IHN0cmluZztcbn1bXSB7XG4gIC8vIFJlc29sdmUgYWxsIGZvcm0gZWxlbWVudHMgZnJvbSBlaXRoZXIgZm9ybXMgb3IgY29sbGVjdGlvbnMgb2YgZm9ybSBlbGVtZW50c1xuICByZXR1cm4gdGhpcy5tYXAoKF8sIGVsZW0pID0+IHtcbiAgICBjb25zdCAkZWxlbSA9IHRoaXMuX21ha2UoZWxlbSk7XG4gICAgaWYgKGlzVGFnKGVsZW0pICYmIGVsZW0ubmFtZSA9PT0gJ2Zvcm0nKSB7XG4gICAgICByZXR1cm4gJGVsZW0uZmluZChzdWJtaXR0YWJsZVNlbGVjdG9yKS50b0FycmF5KCk7XG4gICAgfVxuICAgIHJldHVybiAkZWxlbS5maWx0ZXIoc3VibWl0dGFibGVTZWxlY3RvcikudG9BcnJheSgpO1xuICB9KVxuICAgIC5maWx0ZXIoXG4gICAgICAvLyBWZXJpZnkgZWxlbWVudHMgaGF2ZSBhIG5hbWUgKGBhdHRyLm5hbWVgKSBhbmQgYXJlIG5vdCBkaXNhYmxlZCAoYDplbmFibGVkYClcbiAgICAgICdbbmFtZSE9XCJcIl06ZW5hYmxlZCcgK1xuICAgICAgICAvLyBBbmQgY2Fubm90IGJlIGNsaWNrZWQgKGBbdHlwZT1zdWJtaXRdYCkgb3IgYXJlIHVzZWQgaW4gYHgtd3d3LWZvcm0tdXJsZW5jb2RlZGAgKGBbdHlwZT1maWxlXWApXG4gICAgICAgICc6bm90KDpzdWJtaXQsIDpidXR0b24sIDppbWFnZSwgOnJlc2V0LCA6ZmlsZSknICtcbiAgICAgICAgLy8gQW5kIGFyZSBlaXRoZXIgY2hlY2tlZC9kb24ndCBoYXZlIGEgY2hlY2thYmxlIHN0YXRlXG4gICAgICAgICc6bWF0Y2hlcyhbY2hlY2tlZF0sIDpub3QoOmNoZWNrYm94LCA6cmFkaW8pKScsXG4gICAgICAvLyBDb252ZXJ0IGVhY2ggb2YgdGhlIGVsZW1lbnRzIHRvIGl0cyB2YWx1ZShzKVxuICAgIClcbiAgICAubWFwPFxuICAgICAgQW55Tm9kZSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogc3RyaW5nO1xuICAgICAgICB2YWx1ZTogc3RyaW5nO1xuICAgICAgfVxuICAgID4oKF8sIGVsZW0pID0+IHtcbiAgICAgIGNvbnN0ICRlbGVtID0gdGhpcy5fbWFrZShlbGVtKTtcbiAgICAgIGNvbnN0IG5hbWUgPSAkZWxlbS5hdHRyKCduYW1lJykgYXMgc3RyaW5nOyAvLyBXZSBoYXZlIGZpbHRlcmVkIGZvciBlbGVtZW50cyB3aXRoIGEgbmFtZSBiZWZvcmUuXG4gICAgICAvLyBJZiB0aGVyZSBpcyBubyB2YWx1ZSBzZXQgKGUuZy4gYHVuZGVmaW5lZGAsIGBudWxsYCksIHRoZW4gZGVmYXVsdCB2YWx1ZSB0byBlbXB0eVxuICAgICAgY29uc3QgdmFsdWUgPSAkZWxlbS52YWwoKSA/PyAnJztcblxuICAgICAgLy8gSWYgd2UgaGF2ZSBhbiBhcnJheSBvZiB2YWx1ZXMgKGUuZy4gYDxzZWxlY3QgbXVsdGlwbGU+YCksIHJldHVybiBhbiBhcnJheSBvZiBrZXkvdmFsdWUgcGFpcnNcbiAgICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgICByZXR1cm4gdmFsdWUubWFwKCh2YWwpID0+XG4gICAgICAgICAgLypcbiAgICAgICAgICAgKiBXZSB0cmltIHJlcGxhY2UgYW55IGxpbmUgZW5kaW5ncyAoZS5nLiBgXFxyYCBvciBgXFxyXFxuYCB3aXRoIGBcXHJcXG5gKSB0byBndWFyYW50ZWUgY29uc2lzdGVuY3kgYWNyb3NzIHBsYXRmb3Jtc1xuICAgICAgICAgICAqIFRoZXNlIGNhbiBvY2N1ciBpbnNpZGUgb2YgYDx0ZXh0YXJlYT4nc2BcbiAgICAgICAgICAgKi9cbiAgICAgICAgICAoeyBuYW1lLCB2YWx1ZTogdmFsLnJlcGxhY2UockNSTEYsICdcXHJcXG4nKSB9KSxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIC8vIE90aGVyd2lzZSAoZS5nLiBgPGlucHV0IHR5cGU9XCJ0ZXh0XCI+YCwgcmV0dXJuIG9ubHkgb25lIGtleS92YWx1ZSBwYWlyXG4gICAgICByZXR1cm4geyBuYW1lLCB2YWx1ZTogdmFsdWUucmVwbGFjZShyQ1JMRiwgJ1xcclxcbicpIH07XG4gICAgfSlcbiAgICAudG9BcnJheSgpO1xufVxuIiwgImltcG9ydCB0eXBlIHsgQW55Tm9kZSwgRWxlbWVudCB9IGZyb20gJ2RvbWhhbmRsZXInO1xuaW1wb3J0IHR5cGUgeyBDaGVlcmlvIH0gZnJvbSAnLi4vY2hlZXJpby5qcyc7XG5pbXBvcnQgdHlwZSB7IHByb3AgfSBmcm9tICcuL2F0dHJpYnV0ZXMuanMnO1xuXG50eXBlIEV4dHJhY3REZXNjcmlwdG9yRm4gPSAoXG4gIGVsOiBFbGVtZW50LFxuICBrZXk6IHN0cmluZyxcbiAgLy8gVE9ETzogVGhpcyBjb3VsZCBiZSB0eXBlZCB3aXRoIEV4dHJhY3RlZE1hcFxuICBvYmo6IFJlY29yZDxzdHJpbmcsIHVua25vd24+LFxuKSA9PiB1bmtub3duO1xuXG5pbnRlcmZhY2UgRXh0cmFjdERlc2NyaXB0b3Ige1xuICBzZWxlY3Rvcjogc3RyaW5nO1xuICB2YWx1ZT86IHN0cmluZyB8IEV4dHJhY3REZXNjcmlwdG9yRm4gfCBFeHRyYWN0TWFwO1xufVxuXG50eXBlIEV4dHJhY3RWYWx1ZSA9IHN0cmluZyB8IEV4dHJhY3REZXNjcmlwdG9yIHwgW3N0cmluZyB8IEV4dHJhY3REZXNjcmlwdG9yXTtcblxuZXhwb3J0IGludGVyZmFjZSBFeHRyYWN0TWFwIHtcbiAgW2tleTogc3RyaW5nXTogRXh0cmFjdFZhbHVlO1xufVxuXG50eXBlIEV4dHJhY3RlZFZhbHVlPFYgZXh0ZW5kcyBFeHRyYWN0VmFsdWUsIE0gZXh0ZW5kcyBFeHRyYWN0TWFwPiA9IFYgZXh0ZW5kcyBbXG4gIHN0cmluZyB8IEV4dHJhY3REZXNjcmlwdG9yLFxuXVxuICA/IE5vbk51bGxhYmxlPEV4dHJhY3RlZFZhbHVlPFZbMF0sIE0+PltdXG4gIDogViBleHRlbmRzIHN0cmluZ1xuICAgID8gc3RyaW5nIHwgdW5kZWZpbmVkXG4gICAgOiBWIGV4dGVuZHMgRXh0cmFjdERlc2NyaXB0b3JcbiAgICAgID8gVlsndmFsdWUnXSBleHRlbmRzIEV4dHJhY3RNYXBcbiAgICAgICAgPyBFeHRyYWN0ZWRNYXA8VlsndmFsdWUnXT4gfCB1bmRlZmluZWRcbiAgICAgICAgOiBWWyd2YWx1ZSddIGV4dGVuZHMgRXh0cmFjdERlc2NyaXB0b3JGblxuICAgICAgICAgID8gUmV0dXJuVHlwZTxWWyd2YWx1ZSddPiB8IHVuZGVmaW5lZFxuICAgICAgICAgIDogUmV0dXJuVHlwZTx0eXBlb2YgcHJvcD4gfCB1bmRlZmluZWRcbiAgICAgIDogbmV2ZXI7XG5cbmV4cG9ydCB0eXBlIEV4dHJhY3RlZE1hcDxNIGV4dGVuZHMgRXh0cmFjdE1hcD4gPSB7XG4gIFtrZXkgaW4ga2V5b2YgTV06IEV4dHJhY3RlZFZhbHVlPE1ba2V5XSwgTT47XG59O1xuXG5mdW5jdGlvbiBnZXRFeHRyYWN0RGVzY3IoXG4gIGRlc2NyOiBzdHJpbmcgfCBFeHRyYWN0RGVzY3JpcHRvcixcbik6IFJlcXVpcmVkPEV4dHJhY3REZXNjcmlwdG9yPiB7XG4gIGlmICh0eXBlb2YgZGVzY3IgPT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIHsgc2VsZWN0b3I6IGRlc2NyLCB2YWx1ZTogJ3RleHRDb250ZW50JyB9O1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBzZWxlY3RvcjogZGVzY3Iuc2VsZWN0b3IsXG4gICAgdmFsdWU6IGRlc2NyLnZhbHVlID8/ICd0ZXh0Q29udGVudCcsXG4gIH07XG59XG5cbi8qKlxuICogRXh0cmFjdCBtdWx0aXBsZSB2YWx1ZXMgZnJvbSBhIGRvY3VtZW50LCBhbmQgc3RvcmUgdGhlbSBpbiBhbiBvYmplY3QuXG4gKlxuICogQHBhcmFtIG1hcCAtIEFuIG9iamVjdCBjb250YWluaW5nIGtleS12YWx1ZSBwYWlycy4gVGhlIGtleXMgYXJlIHRoZSBuYW1lcyBvZlxuICogICB0aGUgcHJvcGVydGllcyB0byBiZSBjcmVhdGVkIG9uIHRoZSBvYmplY3QsIGFuZCB0aGUgdmFsdWVzIGFyZSB0aGVcbiAqICAgc2VsZWN0b3JzIHRvIGJlIHVzZWQgdG8gZXh0cmFjdCB0aGUgdmFsdWVzLlxuICogQHJldHVybnMgQW4gb2JqZWN0IGNvbnRhaW5pbmcgdGhlIGV4dHJhY3RlZCB2YWx1ZXMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBleHRyYWN0PE0gZXh0ZW5kcyBFeHRyYWN0TWFwLCBUIGV4dGVuZHMgQW55Tm9kZT4oXG4gIHRoaXM6IENoZWVyaW88VD4sXG4gIG1hcDogTSxcbik6IEV4dHJhY3RlZE1hcDxNPiB7XG4gIGNvbnN0IHJldDogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSB7fTtcblxuICBmb3IgKGNvbnN0IGtleSBpbiBtYXApIHtcbiAgICBjb25zdCBkZXNjciA9IG1hcFtrZXldO1xuICAgIGNvbnN0IGlzQXJyYXkgPSBBcnJheS5pc0FycmF5KGRlc2NyKTtcblxuICAgIGNvbnN0IHsgc2VsZWN0b3IsIHZhbHVlIH0gPSBnZXRFeHRyYWN0RGVzY3IoaXNBcnJheSA/IGRlc2NyWzBdIDogZGVzY3IpO1xuXG4gICAgY29uc3QgZm46IEV4dHJhY3REZXNjcmlwdG9yRm4gPVxuICAgICAgdHlwZW9mIHZhbHVlID09PSAnZnVuY3Rpb24nXG4gICAgICAgID8gdmFsdWVcbiAgICAgICAgOiB0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnXG4gICAgICAgICAgPyAoZWw6IEVsZW1lbnQpID0+IHRoaXMuX21ha2UoZWwpLnByb3AodmFsdWUpXG4gICAgICAgICAgOiAoZWw6IEVsZW1lbnQpID0+IHRoaXMuX21ha2UoZWwpLmV4dHJhY3QodmFsdWUpO1xuXG4gICAgaWYgKGlzQXJyYXkpIHtcbiAgICAgIHJldFtrZXldID0gdGhpcy5fZmluZEJ5U2VsZWN0b3Ioc2VsZWN0b3IsIE51bWJlci5QT1NJVElWRV9JTkZJTklUWSlcbiAgICAgICAgLm1hcCgoXywgZWwpID0+IGZuKGVsLCBrZXksIHJldCkpXG4gICAgICAgIC5nZXQoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgJCA9IHRoaXMuX2ZpbmRCeVNlbGVjdG9yKHNlbGVjdG9yLCAxKTtcbiAgICAgIHJldFtrZXldID0gJC5sZW5ndGggPiAwID8gZm4oJFswXSwga2V5LCByZXQpIDogdW5kZWZpbmVkO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiByZXQgYXMgRXh0cmFjdGVkTWFwPE0+O1xufVxuIiwgIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnNhZmUtZGVjbGFyYXRpb24tbWVyZ2luZyAqL1xuaW1wb3J0IHR5cGUgeyBJbnRlcm5hbE9wdGlvbnMgfSBmcm9tICcuL29wdGlvbnMuanMnO1xuaW1wb3J0IHR5cGUgeyBBbnlOb2RlLCBEb2N1bWVudCwgUGFyZW50Tm9kZSB9IGZyb20gJ2RvbWhhbmRsZXInO1xuaW1wb3J0IHR5cGUgeyBCYXNpY0FjY2VwdGVkRWxlbXMgfSBmcm9tICcuL3R5cGVzLmpzJztcblxuaW1wb3J0ICogYXMgQXR0cmlidXRlcyBmcm9tICcuL2FwaS9hdHRyaWJ1dGVzLmpzJztcbmltcG9ydCAqIGFzIFRyYXZlcnNpbmcgZnJvbSAnLi9hcGkvdHJhdmVyc2luZy5qcyc7XG5pbXBvcnQgKiBhcyBNYW5pcHVsYXRpb24gZnJvbSAnLi9hcGkvbWFuaXB1bGF0aW9uLmpzJztcbmltcG9ydCAqIGFzIENzcyBmcm9tICcuL2FwaS9jc3MuanMnO1xuaW1wb3J0ICogYXMgRm9ybXMgZnJvbSAnLi9hcGkvZm9ybXMuanMnO1xuaW1wb3J0ICogYXMgRXh0cmFjdCBmcm9tICcuL2FwaS9leHRyYWN0LmpzJztcblxudHlwZSBNZXRob2RzVHlwZSA9IHR5cGVvZiBBdHRyaWJ1dGVzICZcbiAgdHlwZW9mIFRyYXZlcnNpbmcgJlxuICB0eXBlb2YgTWFuaXB1bGF0aW9uICZcbiAgdHlwZW9mIENzcyAmXG4gIHR5cGVvZiBGb3JtcyAmXG4gIHR5cGVvZiBFeHRyYWN0O1xuXG4vKipcbiAqIFRoZSBjaGVlcmlvIGNsYXNzIGlzIHRoZSBjZW50cmFsIGNsYXNzIG9mIHRoZSBsaWJyYXJ5LiBJdCB3cmFwcyBhIHNldCBvZlxuICogZWxlbWVudHMgYW5kIHByb3ZpZGVzIGFuIEFQSSBmb3IgdHJhdmVyc2luZywgbW9kaWZ5aW5nLCBhbmQgaW50ZXJhY3Rpbmcgd2l0aFxuICogdGhlIHNldC5cbiAqXG4gKiBMb2FkaW5nIGEgZG9jdW1lbnQgd2lsbCByZXR1cm4gdGhlIENoZWVyaW8gY2xhc3MgYm91bmQgdG8gdGhlIHJvb3QgZWxlbWVudCBvZlxuICogdGhlIGRvY3VtZW50LiBUaGUgY2xhc3Mgd2lsbCBiZSBpbnN0YW50aWF0ZWQgd2hlbiBxdWVyeWluZyB0aGUgZG9jdW1lbnQgKHdoZW5cbiAqIGNhbGxpbmcgYCQoJ3NlbGVjdG9yJylgKS5cbiAqXG4gKiBAZXhhbXBsZSBUaGlzIGlzIHRoZSBIVE1MIG1hcmt1cCB3ZSB3aWxsIGJlIHVzaW5nIGluIGFsbCBvZiB0aGUgQVBJIGV4YW1wbGVzOlxuICpcbiAqIGBgYGh0bWxcbiAqIDx1bCBpZD1cImZydWl0c1wiPlxuICogICA8bGkgY2xhc3M9XCJhcHBsZVwiPkFwcGxlPC9saT5cbiAqICAgPGxpIGNsYXNzPVwib3JhbmdlXCI+T3JhbmdlPC9saT5cbiAqICAgPGxpIGNsYXNzPVwicGVhclwiPlBlYXI8L2xpPlxuICogPC91bD5cbiAqIGBgYFxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQ2hlZXJpbzxUPiBpbXBsZW1lbnRzIEFycmF5TGlrZTxUPiB7XG4gIGxlbmd0aCA9IDA7XG4gIFtpbmRleDogbnVtYmVyXTogVDtcblxuICBvcHRpb25zOiBJbnRlcm5hbE9wdGlvbnM7XG4gIC8qKlxuICAgKiBUaGUgcm9vdCBvZiB0aGUgZG9jdW1lbnQuIENhbiBiZSBzZXQgYnkgdXNpbmcgdGhlIGByb290YCBhcmd1bWVudCBvZiB0aGVcbiAgICogY29uc3RydWN0b3IuXG4gICAqXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBfcm9vdDogQ2hlZXJpbzxEb2N1bWVudD4gfCBudWxsO1xuXG4gIC8qKlxuICAgKiBJbnN0YW5jZSBvZiBjaGVlcmlvLiBNZXRob2RzIGFyZSBzcGVjaWZpZWQgaW4gdGhlIG1vZHVsZXMuIFVzYWdlIG9mIHRoaXNcbiAgICogY29uc3RydWN0b3IgaXMgbm90IHJlY29tbWVuZGVkLiBQbGVhc2UgdXNlIGAkLmxvYWRgIGluc3RlYWQuXG4gICAqXG4gICAqIEBwcml2YXRlXG4gICAqIEBwYXJhbSBlbGVtZW50cyAtIFRoZSBuZXcgc2VsZWN0aW9uLlxuICAgKiBAcGFyYW0gcm9vdCAtIFNldHMgdGhlIHJvb3Qgbm9kZS5cbiAgICogQHBhcmFtIG9wdGlvbnMgLSBPcHRpb25zIGZvciB0aGUgaW5zdGFuY2UuXG4gICAqL1xuICBjb25zdHJ1Y3RvcihcbiAgICBlbGVtZW50czogQXJyYXlMaWtlPFQ+IHwgdW5kZWZpbmVkLFxuICAgIHJvb3Q6IENoZWVyaW88RG9jdW1lbnQ+IHwgbnVsbCxcbiAgICBvcHRpb25zOiBJbnRlcm5hbE9wdGlvbnMsXG4gICkge1xuICAgIHRoaXMub3B0aW9ucyA9IG9wdGlvbnM7XG4gICAgdGhpcy5fcm9vdCA9IHJvb3Q7XG5cbiAgICBpZiAoZWxlbWVudHMpIHtcbiAgICAgIGZvciAobGV0IGlkeCA9IDA7IGlkeCA8IGVsZW1lbnRzLmxlbmd0aDsgaWR4KyspIHtcbiAgICAgICAgdGhpc1tpZHhdID0gZWxlbWVudHNbaWR4XTtcbiAgICAgIH1cbiAgICAgIHRoaXMubGVuZ3RoID0gZWxlbWVudHMubGVuZ3RoO1xuICAgIH1cbiAgfVxuXG4gIHByZXZPYmplY3Q6IENoZWVyaW88YW55PiB8IHVuZGVmaW5lZDtcbiAgLyoqXG4gICAqIE1ha2UgYSBjaGVlcmlvIG9iamVjdC5cbiAgICpcbiAgICogQHByaXZhdGVcbiAgICogQHBhcmFtIGRvbSAtIFRoZSBjb250ZW50cyBvZiB0aGUgbmV3IG9iamVjdC5cbiAgICogQHBhcmFtIGNvbnRleHQgLSBUaGUgY29udGV4dCBvZiB0aGUgbmV3IG9iamVjdC5cbiAgICogQHJldHVybnMgVGhlIG5ldyBjaGVlcmlvIG9iamVjdC5cbiAgICovXG4gIGFic3RyYWN0IF9tYWtlPFQ+KFxuICAgIGRvbTogQXJyYXlMaWtlPFQ+IHwgVCB8IHN0cmluZyxcbiAgICBjb250ZXh0PzogQmFzaWNBY2NlcHRlZEVsZW1zPEFueU5vZGU+LFxuICApOiBDaGVlcmlvPFQ+O1xuXG4gIC8qKlxuICAgKiBQYXJzZXMgc29tZSBjb250ZW50LlxuICAgKlxuICAgKiBAcHJpdmF0ZVxuICAgKiBAcGFyYW0gY29udGVudCAtIENvbnRlbnQgdG8gcGFyc2UuXG4gICAqIEBwYXJhbSBvcHRpb25zIC0gT3B0aW9ucyBmb3IgcGFyc2luZy5cbiAgICogQHBhcmFtIGlzRG9jdW1lbnQgLSBBbGxvd3MgcGFyc2VyIHRvIGJlIHN3aXRjaGVkIHRvIGZyYWdtZW50IG1vZGUuXG4gICAqIEByZXR1cm5zIEEgZG9jdW1lbnQgY29udGFpbmluZyB0aGUgYGNvbnRlbnRgLlxuICAgKi9cbiAgYWJzdHJhY3QgX3BhcnNlKFxuICAgIGNvbnRlbnQ6IHN0cmluZyB8IERvY3VtZW50IHwgQW55Tm9kZSB8IEFueU5vZGVbXSB8IEJ1ZmZlcixcbiAgICBvcHRpb25zOiBJbnRlcm5hbE9wdGlvbnMsXG4gICAgaXNEb2N1bWVudDogYm9vbGVhbixcbiAgICBjb250ZXh0OiBQYXJlbnROb2RlIHwgbnVsbCxcbiAgKTogRG9jdW1lbnQ7XG5cbiAgLyoqXG4gICAqIFJlbmRlciBhbiBlbGVtZW50IG9yIGEgc2V0IG9mIGVsZW1lbnRzLlxuICAgKlxuICAgKiBAcHJpdmF0ZVxuICAgKiBAcGFyYW0gZG9tIC0gRE9NIHRvIHJlbmRlci5cbiAgICogQHJldHVybnMgVGhlIHJlbmRlcmVkIERPTS5cbiAgICovXG4gIGFic3RyYWN0IF9yZW5kZXIoZG9tOiBBbnlOb2RlIHwgQXJyYXlMaWtlPEFueU5vZGU+KTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENoZWVyaW88VD4gZXh0ZW5kcyBNZXRob2RzVHlwZSwgSXRlcmFibGU8VD4ge1xuICBjaGVlcmlvOiAnW2NoZWVyaW8gb2JqZWN0XSc7XG5cbiAgc3BsaWNlOiB0eXBlb2YgQXJyYXkucHJvdG90eXBlLnNwbGljZTtcbn1cblxuLyoqIFNldCBhIHNpZ25hdHVyZSBvZiB0aGUgb2JqZWN0LiAqL1xuQ2hlZXJpby5wcm90b3R5cGUuY2hlZXJpbyA9ICdbY2hlZXJpbyBvYmplY3RdJztcblxuLypcbiAqIE1ha2UgY2hlZXJpbyBhbiBhcnJheS1saWtlIG9iamVjdFxuICovXG5DaGVlcmlvLnByb3RvdHlwZS5zcGxpY2UgPSBBcnJheS5wcm90b3R5cGUuc3BsaWNlO1xuXG4vLyBTdXBwb3J0IGZvciAoY29uc3QgZWxlbWVudCBvZiAkKC4uLikpIGl0ZXJhdGlvbjpcbkNoZWVyaW8ucHJvdG90eXBlW1N5bWJvbC5pdGVyYXRvcl0gPSBBcnJheS5wcm90b3R5cGVbU3ltYm9sLml0ZXJhdG9yXTtcblxuLy8gUGx1ZyBpbiB0aGUgQVBJXG5PYmplY3QuYXNzaWduKFxuICBDaGVlcmlvLnByb3RvdHlwZSxcbiAgQXR0cmlidXRlcyxcbiAgVHJhdmVyc2luZyxcbiAgTWFuaXB1bGF0aW9uLFxuICBDc3MsXG4gIEZvcm1zLFxuICBFeHRyYWN0LFxuKTtcbiIsICJpbXBvcnQge1xuICB0eXBlIENoZWVyaW9PcHRpb25zLFxuICB0eXBlIEludGVybmFsT3B0aW9ucyxcbiAgZmxhdHRlbk9wdGlvbnMsXG59IGZyb20gJy4vb3B0aW9ucy5qcyc7XG5pbXBvcnQgKiBhcyBzdGF0aWNNZXRob2RzIGZyb20gJy4vc3RhdGljLmpzJztcbmltcG9ydCB7IENoZWVyaW8gfSBmcm9tICcuL2NoZWVyaW8uanMnO1xuaW1wb3J0IHsgaXNIdG1sLCBpc0NoZWVyaW8gfSBmcm9tICcuL3V0aWxzLmpzJztcbmltcG9ydCB0eXBlIHsgQW55Tm9kZSwgRG9jdW1lbnQsIEVsZW1lbnQsIFBhcmVudE5vZGUgfSBmcm9tICdkb21oYW5kbGVyJztcbmltcG9ydCB0eXBlIHsgU2VsZWN0b3JUeXBlLCBCYXNpY0FjY2VwdGVkRWxlbXMgfSBmcm9tICcuL3R5cGVzLmpzJztcblxudHlwZSBTdGF0aWNUeXBlID0gdHlwZW9mIHN0YXRpY01ldGhvZHM7XG5cbi8qKlxuICogQSBxdWVyeWluZyBmdW5jdGlvbiwgYm91bmQgdG8gYSBkb2N1bWVudCBjcmVhdGVkIGZyb20gdGhlIHByb3ZpZGVkIG1hcmt1cC5cbiAqXG4gKiBBbHNvIHByb3ZpZGVzIHNldmVyYWwgaGVscGVyIG1ldGhvZHMgZm9yIGRlYWxpbmcgd2l0aCB0aGUgZG9jdW1lbnQgYXMgYVxuICogd2hvbGUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ2hlZXJpb0FQSSBleHRlbmRzIFN0YXRpY1R5cGUge1xuICAvKipcbiAgICogVGhpcyBzZWxlY3RvciBtZXRob2QgaXMgdGhlIHN0YXJ0aW5nIHBvaW50IGZvciB0cmF2ZXJzaW5nIGFuZCBtYW5pcHVsYXRpbmdcbiAgICogdGhlIGRvY3VtZW50LiBMaWtlIGpRdWVyeSwgaXQncyB0aGUgcHJpbWFyeSBtZXRob2QgZm9yIHNlbGVjdGluZyBlbGVtZW50c1xuICAgKiBpbiB0aGUgZG9jdW1lbnQuXG4gICAqXG4gICAqIGBzZWxlY3RvcmAgc2VhcmNoZXMgd2l0aGluIHRoZSBgY29udGV4dGAgc2NvcGUsIHdoaWNoIHNlYXJjaGVzIHdpdGhpbiB0aGVcbiAgICogYHJvb3RgIHNjb3BlLlxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKlxuICAgKiBgYGBqc1xuICAgKiAkKCd1bCAucGVhcicpLmF0dHIoJ2NsYXNzJyk7XG4gICAqIC8vPT4gcGVhclxuICAgKlxuICAgKiAkKCdsaVtjbGFzcz1vcmFuZ2VdJykuaHRtbCgpO1xuICAgKiAvLz0+IE9yYW5nZVxuICAgKlxuICAgKiAkKCcuYXBwbGUnLCAnI2ZydWl0cycpLnRleHQoKTtcbiAgICogLy89PiBBcHBsZVxuICAgKiBgYGBcbiAgICpcbiAgICogT3B0aW9uYWxseSwgeW91IGNhbiBhbHNvIGxvYWQgSFRNTCBieSBwYXNzaW5nIHRoZSBzdHJpbmcgYXMgdGhlIHNlbGVjdG9yOlxuICAgKlxuICAgKiBgYGBqc1xuICAgKiAkKCc8dWwgaWQ9XCJmcnVpdHNcIj4uLi48L3VsPicpO1xuICAgKiBgYGBcbiAgICpcbiAgICogT3IgdGhlIGNvbnRleHQ6XG4gICAqXG4gICAqIGBgYGpzXG4gICAqICQoJ3VsJywgJzx1bCBpZD1cImZydWl0c1wiPi4uLjwvdWw+Jyk7XG4gICAqIGBgYFxuICAgKlxuICAgKiBPciBhcyB0aGUgcm9vdDpcbiAgICpcbiAgICogYGBganNcbiAgICogJCgnbGknLCAndWwnLCAnPHVsIGlkPVwiZnJ1aXRzXCI+Li4uPC91bD4nKTtcbiAgICogYGBgXG4gICAqXG4gICAqIEBwYXJhbSBzZWxlY3RvciAtIEVpdGhlciBhIHNlbGVjdG9yIHRvIGxvb2sgZm9yIHdpdGhpbiB0aGUgZG9jdW1lbnQsIG9yIHRoZVxuICAgKiAgIGNvbnRlbnRzIG9mIGEgbmV3IENoZWVyaW8gaW5zdGFuY2UuXG4gICAqIEBwYXJhbSBjb250ZXh0IC0gRWl0aGVyIGEgc2VsZWN0b3IgdG8gbG9vayBmb3Igd2l0aGluIHRoZSByb290LCBvciB0aGVcbiAgICogICBjb250ZW50cyBvZiB0aGUgZG9jdW1lbnQgdG8gcXVlcnkuXG4gICAqIEBwYXJhbSByb290IC0gT3B0aW9uYWwgSFRNTCBkb2N1bWVudCBzdHJpbmcuXG4gICAqL1xuICA8VCBleHRlbmRzIEFueU5vZGUsIFMgZXh0ZW5kcyBzdHJpbmc+KFxuICAgIHNlbGVjdG9yPzogUyB8IEJhc2ljQWNjZXB0ZWRFbGVtczxUPixcbiAgICBjb250ZXh0PzogQmFzaWNBY2NlcHRlZEVsZW1zPEFueU5vZGU+IHwgbnVsbCxcbiAgICByb290PzogQmFzaWNBY2NlcHRlZEVsZW1zPERvY3VtZW50PixcbiAgICBvcHRpb25zPzogQ2hlZXJpb09wdGlvbnMsXG4gICk6IENoZWVyaW88UyBleHRlbmRzIFNlbGVjdG9yVHlwZSA/IEVsZW1lbnQgOiBUPjtcblxuICAvKipcbiAgICogVGhlIHJvb3QgdGhlIGRvY3VtZW50IHdhcyBvcmlnaW5hbGx5IGxvYWRlZCB3aXRoLlxuICAgKlxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgX3Jvb3Q6IERvY3VtZW50O1xuXG4gIC8qKlxuICAgKiBUaGUgb3B0aW9ucyB0aGUgZG9jdW1lbnQgd2FzIG9yaWdpbmFsbHkgbG9hZGVkIHdpdGguXG4gICAqXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBfb3B0aW9uczogSW50ZXJuYWxPcHRpb25zO1xuXG4gIC8qKiBNaW1pYyBqUXVlcnkncyBwcm90b3R5cGUgYWxpYXMgZm9yIHBsdWdpbiBhdXRob3JzLiAqL1xuICBmbjogdHlwZW9mIENoZWVyaW8ucHJvdG90eXBlO1xuXG4gIC8qKlxuICAgKiBUaGUgYC5sb2FkYCBzdGF0aWMgbWV0aG9kIGRlZmluZWQgb24gdGhlIFwibG9hZGVkXCIgQ2hlZXJpbyBmYWN0b3J5IGZ1bmN0aW9uXG4gICAqIGlzIGRlcHJlY2F0ZWQuIFVzZXJzIGFyZSBlbmNvdXJhZ2VkIHRvIGluc3RlYWQgdXNlIHRoZSBgbG9hZGAgZnVuY3Rpb25cbiAgICogZXhwb3J0ZWQgYnkgdGhlIENoZWVyaW8gbW9kdWxlLlxuICAgKlxuICAgKiBAZGVwcmVjYXRlZCBVc2UgdGhlIGBsb2FkYCBmdW5jdGlvbiBleHBvcnRlZCBieSB0aGUgQ2hlZXJpbyBtb2R1bGUuXG4gICAqIEBjYXRlZ29yeSBEZXByZWNhdGVkXG4gICAqIEBleGFtcGxlXG4gICAqXG4gICAqIGBgYGpzXG4gICAqIGNvbnN0ICQgPSBjaGVlcmlvLmxvYWQoJzxoMT5IZWxsbywgPHNwYW4+d29ybGQ8L3NwYW4+LjwvaDE+Jyk7XG4gICAqIGBgYFxuICAgKi9cbiAgbG9hZDogUmV0dXJuVHlwZTx0eXBlb2YgZ2V0TG9hZD47XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRMb2FkKFxuICBwYXJzZTogdHlwZW9mIENoZWVyaW8ucHJvdG90eXBlLl9wYXJzZSxcbiAgcmVuZGVyOiAoXG4gICAgZG9tOiBBbnlOb2RlIHwgQXJyYXlMaWtlPEFueU5vZGU+LFxuICAgIG9wdGlvbnM6IEludGVybmFsT3B0aW9ucyxcbiAgKSA9PiBzdHJpbmcsXG4pIHtcbiAgLyoqXG4gICAqIENyZWF0ZSBhIHF1ZXJ5aW5nIGZ1bmN0aW9uLCBib3VuZCB0byBhIGRvY3VtZW50IGNyZWF0ZWQgZnJvbSB0aGUgcHJvdmlkZWRcbiAgICogbWFya3VwLlxuICAgKlxuICAgKiBOb3RlIHRoYXQgc2ltaWxhciB0byB3ZWIgYnJvd3NlciBjb250ZXh0cywgdGhpcyBvcGVyYXRpb24gbWF5IGludHJvZHVjZVxuICAgKiBgPGh0bWw+YCwgYDxoZWFkPmAsIGFuZCBgPGJvZHk+YCBlbGVtZW50czsgc2V0IGBpc0RvY3VtZW50YCB0byBgZmFsc2VgIHRvXG4gICAqIHN3aXRjaCB0byBmcmFnbWVudCBtb2RlIGFuZCBkaXNhYmxlIHRoaXMuXG4gICAqXG4gICAqIEBwYXJhbSBjb250ZW50IC0gTWFya3VwIHRvIGJlIGxvYWRlZC5cbiAgICogQHBhcmFtIG9wdGlvbnMgLSBPcHRpb25zIGZvciB0aGUgY3JlYXRlZCBpbnN0YW5jZS5cbiAgICogQHBhcmFtIGlzRG9jdW1lbnQgLSBBbGxvd3MgcGFyc2VyIHRvIGJlIHN3aXRjaGVkIHRvIGZyYWdtZW50IG1vZGUuXG4gICAqIEByZXR1cm5zIFRoZSBsb2FkZWQgZG9jdW1lbnQuXG4gICAqIEBzZWUge0BsaW5rIGh0dHBzOi8vY2hlZXJpby5qcy5vcmcjbG9hZGluZ30gZm9yIGFkZGl0aW9uYWwgdXNhZ2UgaW5mb3JtYXRpb24uXG4gICAqL1xuICByZXR1cm4gZnVuY3Rpb24gbG9hZChcbiAgICBjb250ZW50OiBzdHJpbmcgfCBBbnlOb2RlIHwgQW55Tm9kZVtdIHwgQnVmZmVyLFxuICAgIG9wdGlvbnM/OiBDaGVlcmlvT3B0aW9ucyB8IG51bGwsXG4gICAgaXNEb2N1bWVudCA9IHRydWUsXG4gICk6IENoZWVyaW9BUEkge1xuICAgIGlmICgoY29udGVudCBhcyBzdHJpbmcgfCBudWxsKSA9PSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ2NoZWVyaW8ubG9hZCgpIGV4cGVjdHMgYSBzdHJpbmcnKTtcbiAgICB9XG5cbiAgICBjb25zdCBpbnRlcm5hbE9wdHMgPSBmbGF0dGVuT3B0aW9ucyhvcHRpb25zKTtcbiAgICBjb25zdCBpbml0aWFsUm9vdCA9IHBhcnNlKGNvbnRlbnQsIGludGVybmFsT3B0cywgaXNEb2N1bWVudCwgbnVsbCk7XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGUgYW4gZXh0ZW5kZWQgY2xhc3MgaGVyZSwgc28gdGhhdCBleHRlbnNpb25zIG9ubHkgbGl2ZSBvbiBvbmVcbiAgICAgKiBpbnN0YW5jZS5cbiAgICAgKi9cbiAgICBjbGFzcyBMb2FkZWRDaGVlcmlvPFQ+IGV4dGVuZHMgQ2hlZXJpbzxUPiB7XG4gICAgICBfbWFrZTxUPihcbiAgICAgICAgc2VsZWN0b3I/OiBBcnJheUxpa2U8VD4gfCBUIHwgc3RyaW5nLFxuICAgICAgICBjb250ZXh0PzogQmFzaWNBY2NlcHRlZEVsZW1zPEFueU5vZGU+IHwgbnVsbCxcbiAgICAgICk6IENoZWVyaW88VD4ge1xuICAgICAgICBjb25zdCBjaGVlcmlvID0gaW5pdGlhbGl6ZShzZWxlY3RvciwgY29udGV4dCk7XG4gICAgICAgIGNoZWVyaW8ucHJldk9iamVjdCA9IHRoaXM7XG5cbiAgICAgICAgcmV0dXJuIGNoZWVyaW87XG4gICAgICB9XG5cbiAgICAgIF9wYXJzZShcbiAgICAgICAgY29udGVudDogc3RyaW5nIHwgRG9jdW1lbnQgfCBBbnlOb2RlIHwgQW55Tm9kZVtdIHwgQnVmZmVyLFxuICAgICAgICBvcHRpb25zOiBJbnRlcm5hbE9wdGlvbnMsXG4gICAgICAgIGlzRG9jdW1lbnQ6IGJvb2xlYW4sXG4gICAgICAgIGNvbnRleHQ6IFBhcmVudE5vZGUgfCBudWxsLFxuICAgICAgKSB7XG4gICAgICAgIHJldHVybiBwYXJzZShjb250ZW50LCBvcHRpb25zLCBpc0RvY3VtZW50LCBjb250ZXh0KTtcbiAgICAgIH1cblxuICAgICAgX3JlbmRlcihkb206IEFueU5vZGUgfCBBcnJheUxpa2U8QW55Tm9kZT4pOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gcmVuZGVyKGRvbSwgdGhpcy5vcHRpb25zKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiBpbml0aWFsaXplPFQgPSBBbnlOb2RlLCBTIGV4dGVuZHMgc3RyaW5nID0gc3RyaW5nPihcbiAgICAgIHNlbGVjdG9yPzogQXJyYXlMaWtlPFQ+IHwgVCB8IFMsXG4gICAgICBjb250ZXh0PzogQmFzaWNBY2NlcHRlZEVsZW1zPEFueU5vZGU+IHwgbnVsbCxcbiAgICAgIHJvb3Q6IEJhc2ljQWNjZXB0ZWRFbGVtczxEb2N1bWVudD4gPSBpbml0aWFsUm9vdCxcbiAgICAgIG9wdHM/OiBDaGVlcmlvT3B0aW9ucyxcbiAgICApOiBDaGVlcmlvPFMgZXh0ZW5kcyBTZWxlY3RvclR5cGUgPyBFbGVtZW50IDogVD4ge1xuICAgICAgdHlwZSBSZXN1bHQgPSBTIGV4dGVuZHMgU2VsZWN0b3JUeXBlID8gRWxlbWVudCA6IFQ7XG5cbiAgICAgIC8vICQoJClcbiAgICAgIGlmIChzZWxlY3RvciAmJiBpc0NoZWVyaW88UmVzdWx0PihzZWxlY3RvcikpIHJldHVybiBzZWxlY3RvcjtcblxuICAgICAgY29uc3Qgb3B0aW9ucyA9IGZsYXR0ZW5PcHRpb25zKG9wdHMsIGludGVybmFsT3B0cyk7XG4gICAgICBjb25zdCByID1cbiAgICAgICAgdHlwZW9mIHJvb3QgPT09ICdzdHJpbmcnXG4gICAgICAgICAgPyBbcGFyc2Uocm9vdCwgb3B0aW9ucywgZmFsc2UsIG51bGwpXVxuICAgICAgICAgIDogJ2xlbmd0aCcgaW4gcm9vdFxuICAgICAgICAgICAgPyByb290XG4gICAgICAgICAgICA6IFtyb290XTtcbiAgICAgIGNvbnN0IHJvb3RJbnN0YW5jZSA9IGlzQ2hlZXJpbzxEb2N1bWVudD4ocilcbiAgICAgICAgPyByXG4gICAgICAgIDogbmV3IExvYWRlZENoZWVyaW88RG9jdW1lbnQ+KHIsIG51bGwsIG9wdGlvbnMpO1xuICAgICAgLy8gQWRkIGEgY3ljbGljIHJlZmVyZW5jZSwgc28gdGhhdCBjYWxsaW5nIG1ldGhvZHMgb24gYF9yb290YCBuZXZlciBmYWlscy5cbiAgICAgIHJvb3RJbnN0YW5jZS5fcm9vdCA9IHJvb3RJbnN0YW5jZTtcblxuICAgICAgLy8gJCgpLCAkKG51bGwpLCAkKHVuZGVmaW5lZCksICQoZmFsc2UpXG4gICAgICBpZiAoIXNlbGVjdG9yKSB7XG4gICAgICAgIHJldHVybiBuZXcgTG9hZGVkQ2hlZXJpbzxSZXN1bHQ+KHVuZGVmaW5lZCwgcm9vdEluc3RhbmNlLCBvcHRpb25zKTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgZWxlbWVudHM6IEFueU5vZGVbXSB8IHVuZGVmaW5lZCA9XG4gICAgICAgIHR5cGVvZiBzZWxlY3RvciA9PT0gJ3N0cmluZycgJiYgaXNIdG1sKHNlbGVjdG9yKVxuICAgICAgICAgID8gLy8gJCg8aHRtbD4pXG4gICAgICAgICAgICBwYXJzZShzZWxlY3Rvciwgb3B0aW9ucywgZmFsc2UsIG51bGwpLmNoaWxkcmVuXG4gICAgICAgICAgOiBpc05vZGUoc2VsZWN0b3IpXG4gICAgICAgICAgICA/IC8vICQoZG9tKVxuICAgICAgICAgICAgICBbc2VsZWN0b3JdXG4gICAgICAgICAgICA6IEFycmF5LmlzQXJyYXkoc2VsZWN0b3IpXG4gICAgICAgICAgICAgID8gLy8gJChbZG9tXSlcbiAgICAgICAgICAgICAgICBzZWxlY3RvclxuICAgICAgICAgICAgICA6IHVuZGVmaW5lZDtcblxuICAgICAgY29uc3QgaW5zdGFuY2UgPSBuZXcgTG9hZGVkQ2hlZXJpbyhlbGVtZW50cywgcm9vdEluc3RhbmNlLCBvcHRpb25zKTtcblxuICAgICAgaWYgKGVsZW1lbnRzKSB7XG4gICAgICAgIHJldHVybiBpbnN0YW5jZSBhcyBhbnk7XG4gICAgICB9XG5cbiAgICAgIGlmICh0eXBlb2Ygc2VsZWN0b3IgIT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ1VuZXhwZWN0ZWQgdHlwZSBvZiBzZWxlY3RvcicpO1xuICAgICAgfVxuXG4gICAgICAvLyBXZSBrbm93IHRoYXQgb3VyIHNlbGVjdG9yIGlzIGEgc3RyaW5nIG5vdy5cbiAgICAgIGxldCBzZWFyY2ggPSBzZWxlY3RvcjtcblxuICAgICAgY29uc3Qgc2VhcmNoQ29udGV4dDogQ2hlZXJpbzxBbnlOb2RlPiB8IHVuZGVmaW5lZCA9IGNvbnRleHRcbiAgICAgICAgPyAvLyBJZiB3ZSBkb24ndCBoYXZlIGEgY29udGV4dCwgbWF5YmUgd2UgaGF2ZSBhIHJvb3QsIGZyb20gbG9hZGluZ1xuICAgICAgICAgIHR5cGVvZiBjb250ZXh0ID09PSAnc3RyaW5nJ1xuICAgICAgICAgID8gaXNIdG1sKGNvbnRleHQpXG4gICAgICAgICAgICA/IC8vICQoJ2xpJywgJzx1bD4uLi48L3VsPicpXG4gICAgICAgICAgICAgIG5ldyBMb2FkZWRDaGVlcmlvPERvY3VtZW50PihcbiAgICAgICAgICAgICAgICBbcGFyc2UoY29udGV4dCwgb3B0aW9ucywgZmFsc2UsIG51bGwpXSxcbiAgICAgICAgICAgICAgICByb290SW5zdGFuY2UsXG4gICAgICAgICAgICAgICAgb3B0aW9ucyxcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgOiAvLyAkKCdsaScsICd1bCcpXG4gICAgICAgICAgICAgICgoc2VhcmNoID0gYCR7Y29udGV4dH0gJHtzZWFyY2h9YCBhcyBTKSwgcm9vdEluc3RhbmNlKVxuICAgICAgICAgIDogaXNDaGVlcmlvPEFueU5vZGU+KGNvbnRleHQpXG4gICAgICAgICAgICA/IC8vICQoJ2xpJywgJClcbiAgICAgICAgICAgICAgY29udGV4dFxuICAgICAgICAgICAgOiAvLyAkKCdsaScsIG5vZGUpLCAkKCdsaScsIFtub2Rlc10pXG4gICAgICAgICAgICAgIG5ldyBMb2FkZWRDaGVlcmlvPEFueU5vZGU+KFxuICAgICAgICAgICAgICAgIEFycmF5LmlzQXJyYXkoY29udGV4dCkgPyBjb250ZXh0IDogW2NvbnRleHRdLFxuICAgICAgICAgICAgICAgIHJvb3RJbnN0YW5jZSxcbiAgICAgICAgICAgICAgICBvcHRpb25zLFxuICAgICAgICAgICAgICApXG4gICAgICAgIDogcm9vdEluc3RhbmNlO1xuXG4gICAgICAvLyBJZiB3ZSBzdGlsbCBkb24ndCBoYXZlIGEgY29udGV4dCwgcmV0dXJuXG4gICAgICBpZiAoIXNlYXJjaENvbnRleHQpIHJldHVybiBpbnN0YW5jZSBhcyBhbnk7XG5cbiAgICAgIC8qXG4gICAgICAgKiAjaWQsIC5jbGFzcywgdGFnXG4gICAgICAgKi9cbiAgICAgIHJldHVybiBzZWFyY2hDb250ZXh0LmZpbmQoc2VhcmNoKSBhcyBDaGVlcmlvPFJlc3VsdD47XG4gICAgfVxuXG4gICAgLy8gQWRkIGluIHN0YXRpYyBtZXRob2RzICYgcHJvcGVydGllc1xuICAgIE9iamVjdC5hc3NpZ24oaW5pdGlhbGl6ZSwgc3RhdGljTWV0aG9kcywge1xuICAgICAgbG9hZCxcbiAgICAgIC8vIGBfcm9vdGAgYW5kIGBfb3B0aW9uc2AgYXJlIHVzZWQgaW4gc3RhdGljIG1ldGhvZHMuXG4gICAgICBfcm9vdDogaW5pdGlhbFJvb3QsXG4gICAgICBfb3B0aW9uczogaW50ZXJuYWxPcHRzLFxuICAgICAgLy8gQWRkIGBmbmAgZm9yIHBsdWdpbnNcbiAgICAgIGZuOiBMb2FkZWRDaGVlcmlvLnByb3RvdHlwZSxcbiAgICAgIC8vIEFkZCB0aGUgcHJvdG90eXBlIGhlcmUgdG8gbWFpbnRhaW4gYGluc3RhbmNlb2ZgIGJlaGF2aW9yLlxuICAgICAgcHJvdG90eXBlOiBMb2FkZWRDaGVlcmlvLnByb3RvdHlwZSxcbiAgICB9KTtcblxuICAgIHJldHVybiBpbml0aWFsaXplIGFzIENoZWVyaW9BUEk7XG4gIH07XG59XG5cbmZ1bmN0aW9uIGlzTm9kZShvYmo6IGFueSk6IG9iaiBpcyBBbnlOb2RlIHtcbiAgcmV0dXJuIChcbiAgICAhIW9iai5uYW1lIHx8XG4gICAgb2JqLnR5cGUgPT09ICdyb290JyB8fFxuICAgIG9iai50eXBlID09PSAndGV4dCcgfHxcbiAgICBvYmoudHlwZSA9PT0gJ2NvbW1lbnQnXG4gICk7XG59XG4iLCAiY29uc3QgVU5ERUZJTkVEX0NPREVfUE9JTlRTID0gbmV3IFNldChbXG4gICAgNjU1MzQsIDY1NTM1LCAxMzEwNzAsIDEzMTA3MSwgMTk2NjA2LCAxOTY2MDcsIDI2MjE0MiwgMjYyMTQzLCAzMjc2NzgsIDMyNzY3OSwgMzkzMjE0LFxuICAgIDM5MzIxNSwgNDU4NzUwLCA0NTg3NTEsIDUyNDI4NiwgNTI0Mjg3LCA1ODk4MjIsIDU4OTgyMywgNjU1MzU4LCA2NTUzNTksIDcyMDg5NCxcbiAgICA3MjA4OTUsIDc4NjQzMCwgNzg2NDMxLCA4NTE5NjYsIDg1MTk2NywgOTE3NTAyLCA5MTc1MDMsIDk4MzAzOCwgOTgzMDM5LCAxMDQ4NTc0LFxuICAgIDEwNDg1NzUsIDExMTQxMTAsIDExMTQxMTEsXG5dKTtcbmV4cG9ydCBjb25zdCBSRVBMQUNFTUVOVF9DSEFSQUNURVIgPSAnXFx1RkZGRCc7XG5leHBvcnQgdmFyIENPREVfUE9JTlRTO1xuKGZ1bmN0aW9uIChDT0RFX1BPSU5UUykge1xuICAgIENPREVfUE9JTlRTW0NPREVfUE9JTlRTW1wiRU9GXCJdID0gLTFdID0gXCJFT0ZcIjtcbiAgICBDT0RFX1BPSU5UU1tDT0RFX1BPSU5UU1tcIk5VTExcIl0gPSAwXSA9IFwiTlVMTFwiO1xuICAgIENPREVfUE9JTlRTW0NPREVfUE9JTlRTW1wiVEFCVUxBVElPTlwiXSA9IDldID0gXCJUQUJVTEFUSU9OXCI7XG4gICAgQ09ERV9QT0lOVFNbQ09ERV9QT0lOVFNbXCJDQVJSSUFHRV9SRVRVUk5cIl0gPSAxM10gPSBcIkNBUlJJQUdFX1JFVFVSTlwiO1xuICAgIENPREVfUE9JTlRTW0NPREVfUE9JTlRTW1wiTElORV9GRUVEXCJdID0gMTBdID0gXCJMSU5FX0ZFRURcIjtcbiAgICBDT0RFX1BPSU5UU1tDT0RFX1BPSU5UU1tcIkZPUk1fRkVFRFwiXSA9IDEyXSA9IFwiRk9STV9GRUVEXCI7XG4gICAgQ09ERV9QT0lOVFNbQ09ERV9QT0lOVFNbXCJTUEFDRVwiXSA9IDMyXSA9IFwiU1BBQ0VcIjtcbiAgICBDT0RFX1BPSU5UU1tDT0RFX1BPSU5UU1tcIkVYQ0xBTUFUSU9OX01BUktcIl0gPSAzM10gPSBcIkVYQ0xBTUFUSU9OX01BUktcIjtcbiAgICBDT0RFX1BPSU5UU1tDT0RFX1BPSU5UU1tcIlFVT1RBVElPTl9NQVJLXCJdID0gMzRdID0gXCJRVU9UQVRJT05fTUFSS1wiO1xuICAgIENPREVfUE9JTlRTW0NPREVfUE9JTlRTW1wiQU1QRVJTQU5EXCJdID0gMzhdID0gXCJBTVBFUlNBTkRcIjtcbiAgICBDT0RFX1BPSU5UU1tDT0RFX1BPSU5UU1tcIkFQT1NUUk9QSEVcIl0gPSAzOV0gPSBcIkFQT1NUUk9QSEVcIjtcbiAgICBDT0RFX1BPSU5UU1tDT0RFX1BPSU5UU1tcIkhZUEhFTl9NSU5VU1wiXSA9IDQ1XSA9IFwiSFlQSEVOX01JTlVTXCI7XG4gICAgQ09ERV9QT0lOVFNbQ09ERV9QT0lOVFNbXCJTT0xJRFVTXCJdID0gNDddID0gXCJTT0xJRFVTXCI7XG4gICAgQ09ERV9QT0lOVFNbQ09ERV9QT0lOVFNbXCJESUdJVF8wXCJdID0gNDhdID0gXCJESUdJVF8wXCI7XG4gICAgQ09ERV9QT0lOVFNbQ09ERV9QT0lOVFNbXCJESUdJVF85XCJdID0gNTddID0gXCJESUdJVF85XCI7XG4gICAgQ09ERV9QT0lOVFNbQ09ERV9QT0lOVFNbXCJTRU1JQ09MT05cIl0gPSA1OV0gPSBcIlNFTUlDT0xPTlwiO1xuICAgIENPREVfUE9JTlRTW0NPREVfUE9JTlRTW1wiTEVTU19USEFOX1NJR05cIl0gPSA2MF0gPSBcIkxFU1NfVEhBTl9TSUdOXCI7XG4gICAgQ09ERV9QT0lOVFNbQ09ERV9QT0lOVFNbXCJFUVVBTFNfU0lHTlwiXSA9IDYxXSA9IFwiRVFVQUxTX1NJR05cIjtcbiAgICBDT0RFX1BPSU5UU1tDT0RFX1BPSU5UU1tcIkdSRUFURVJfVEhBTl9TSUdOXCJdID0gNjJdID0gXCJHUkVBVEVSX1RIQU5fU0lHTlwiO1xuICAgIENPREVfUE9JTlRTW0NPREVfUE9JTlRTW1wiUVVFU1RJT05fTUFSS1wiXSA9IDYzXSA9IFwiUVVFU1RJT05fTUFSS1wiO1xuICAgIENPREVfUE9JTlRTW0NPREVfUE9JTlRTW1wiTEFUSU5fQ0FQSVRBTF9BXCJdID0gNjVdID0gXCJMQVRJTl9DQVBJVEFMX0FcIjtcbiAgICBDT0RFX1BPSU5UU1tDT0RFX1BPSU5UU1tcIkxBVElOX0NBUElUQUxfWlwiXSA9IDkwXSA9IFwiTEFUSU5fQ0FQSVRBTF9aXCI7XG4gICAgQ09ERV9QT0lOVFNbQ09ERV9QT0lOVFNbXCJSSUdIVF9TUVVBUkVfQlJBQ0tFVFwiXSA9IDkzXSA9IFwiUklHSFRfU1FVQVJFX0JSQUNLRVRcIjtcbiAgICBDT0RFX1BPSU5UU1tDT0RFX1BPSU5UU1tcIkdSQVZFX0FDQ0VOVFwiXSA9IDk2XSA9IFwiR1JBVkVfQUNDRU5UXCI7XG4gICAgQ09ERV9QT0lOVFNbQ09ERV9QT0lOVFNbXCJMQVRJTl9TTUFMTF9BXCJdID0gOTddID0gXCJMQVRJTl9TTUFMTF9BXCI7XG4gICAgQ09ERV9QT0lOVFNbQ09ERV9QT0lOVFNbXCJMQVRJTl9TTUFMTF9aXCJdID0gMTIyXSA9IFwiTEFUSU5fU01BTExfWlwiO1xufSkoQ09ERV9QT0lOVFMgfHwgKENPREVfUE9JTlRTID0ge30pKTtcbmV4cG9ydCBjb25zdCBTRVFVRU5DRVMgPSB7XG4gICAgREFTSF9EQVNIOiAnLS0nLFxuICAgIENEQVRBX1NUQVJUOiAnW0NEQVRBWycsXG4gICAgRE9DVFlQRTogJ2RvY3R5cGUnLFxuICAgIFNDUklQVDogJ3NjcmlwdCcsXG4gICAgUFVCTElDOiAncHVibGljJyxcbiAgICBTWVNURU06ICdzeXN0ZW0nLFxufTtcbi8vU3Vycm9nYXRlc1xuZXhwb3J0IGZ1bmN0aW9uIGlzU3Vycm9nYXRlKGNwKSB7XG4gICAgcmV0dXJuIGNwID49IDU1Mjk2ICYmIGNwIDw9IDU3MzQzO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGlzU3Vycm9nYXRlUGFpcihjcCkge1xuICAgIHJldHVybiBjcCA+PSA1NjMyMCAmJiBjcCA8PSA1NzM0Mztcbn1cbmV4cG9ydCBmdW5jdGlvbiBnZXRTdXJyb2dhdGVQYWlyQ29kZVBvaW50KGNwMSwgY3AyKSB7XG4gICAgcmV0dXJuIChjcDEgLSA1NTI5NikgKiAxMDI0ICsgOTIxNiArIGNwMjtcbn1cbi8vTk9URTogZXhjbHVkaW5nIE5VTEwgYW5kIEFTQ0lJIHdoaXRlc3BhY2VcbmV4cG9ydCBmdW5jdGlvbiBpc0NvbnRyb2xDb2RlUG9pbnQoY3ApIHtcbiAgICByZXR1cm4gKChjcCAhPT0gMHgyMCAmJiBjcCAhPT0gMHgwYSAmJiBjcCAhPT0gMHgwZCAmJiBjcCAhPT0gMHgwOSAmJiBjcCAhPT0gMHgwYyAmJiBjcCA+PSAweDAxICYmIGNwIDw9IDB4MWYpIHx8XG4gICAgICAgIChjcCA+PSAweDdmICYmIGNwIDw9IDB4OWYpKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBpc1VuZGVmaW5lZENvZGVQb2ludChjcCkge1xuICAgIHJldHVybiAoY3AgPj0gNjQ5NzYgJiYgY3AgPD0gNjUwMDcpIHx8IFVOREVGSU5FRF9DT0RFX1BPSU5UUy5oYXMoY3ApO1xufVxuIiwgImV4cG9ydCB2YXIgRVJSO1xuKGZ1bmN0aW9uIChFUlIpIHtcbiAgICBFUlJbXCJjb250cm9sQ2hhcmFjdGVySW5JbnB1dFN0cmVhbVwiXSA9IFwiY29udHJvbC1jaGFyYWN0ZXItaW4taW5wdXQtc3RyZWFtXCI7XG4gICAgRVJSW1wibm9uY2hhcmFjdGVySW5JbnB1dFN0cmVhbVwiXSA9IFwibm9uY2hhcmFjdGVyLWluLWlucHV0LXN0cmVhbVwiO1xuICAgIEVSUltcInN1cnJvZ2F0ZUluSW5wdXRTdHJlYW1cIl0gPSBcInN1cnJvZ2F0ZS1pbi1pbnB1dC1zdHJlYW1cIjtcbiAgICBFUlJbXCJub25Wb2lkSHRtbEVsZW1lbnRTdGFydFRhZ1dpdGhUcmFpbGluZ1NvbGlkdXNcIl0gPSBcIm5vbi12b2lkLWh0bWwtZWxlbWVudC1zdGFydC10YWctd2l0aC10cmFpbGluZy1zb2xpZHVzXCI7XG4gICAgRVJSW1wiZW5kVGFnV2l0aEF0dHJpYnV0ZXNcIl0gPSBcImVuZC10YWctd2l0aC1hdHRyaWJ1dGVzXCI7XG4gICAgRVJSW1wiZW5kVGFnV2l0aFRyYWlsaW5nU29saWR1c1wiXSA9IFwiZW5kLXRhZy13aXRoLXRyYWlsaW5nLXNvbGlkdXNcIjtcbiAgICBFUlJbXCJ1bmV4cGVjdGVkU29saWR1c0luVGFnXCJdID0gXCJ1bmV4cGVjdGVkLXNvbGlkdXMtaW4tdGFnXCI7XG4gICAgRVJSW1widW5leHBlY3RlZE51bGxDaGFyYWN0ZXJcIl0gPSBcInVuZXhwZWN0ZWQtbnVsbC1jaGFyYWN0ZXJcIjtcbiAgICBFUlJbXCJ1bmV4cGVjdGVkUXVlc3Rpb25NYXJrSW5zdGVhZE9mVGFnTmFtZVwiXSA9IFwidW5leHBlY3RlZC1xdWVzdGlvbi1tYXJrLWluc3RlYWQtb2YtdGFnLW5hbWVcIjtcbiAgICBFUlJbXCJpbnZhbGlkRmlyc3RDaGFyYWN0ZXJPZlRhZ05hbWVcIl0gPSBcImludmFsaWQtZmlyc3QtY2hhcmFjdGVyLW9mLXRhZy1uYW1lXCI7XG4gICAgRVJSW1widW5leHBlY3RlZEVxdWFsc1NpZ25CZWZvcmVBdHRyaWJ1dGVOYW1lXCJdID0gXCJ1bmV4cGVjdGVkLWVxdWFscy1zaWduLWJlZm9yZS1hdHRyaWJ1dGUtbmFtZVwiO1xuICAgIEVSUltcIm1pc3NpbmdFbmRUYWdOYW1lXCJdID0gXCJtaXNzaW5nLWVuZC10YWctbmFtZVwiO1xuICAgIEVSUltcInVuZXhwZWN0ZWRDaGFyYWN0ZXJJbkF0dHJpYnV0ZU5hbWVcIl0gPSBcInVuZXhwZWN0ZWQtY2hhcmFjdGVyLWluLWF0dHJpYnV0ZS1uYW1lXCI7XG4gICAgRVJSW1widW5rbm93bk5hbWVkQ2hhcmFjdGVyUmVmZXJlbmNlXCJdID0gXCJ1bmtub3duLW5hbWVkLWNoYXJhY3Rlci1yZWZlcmVuY2VcIjtcbiAgICBFUlJbXCJtaXNzaW5nU2VtaWNvbG9uQWZ0ZXJDaGFyYWN0ZXJSZWZlcmVuY2VcIl0gPSBcIm1pc3Npbmctc2VtaWNvbG9uLWFmdGVyLWNoYXJhY3Rlci1yZWZlcmVuY2VcIjtcbiAgICBFUlJbXCJ1bmV4cGVjdGVkQ2hhcmFjdGVyQWZ0ZXJEb2N0eXBlU3lzdGVtSWRlbnRpZmllclwiXSA9IFwidW5leHBlY3RlZC1jaGFyYWN0ZXItYWZ0ZXItZG9jdHlwZS1zeXN0ZW0taWRlbnRpZmllclwiO1xuICAgIEVSUltcInVuZXhwZWN0ZWRDaGFyYWN0ZXJJblVucXVvdGVkQXR0cmlidXRlVmFsdWVcIl0gPSBcInVuZXhwZWN0ZWQtY2hhcmFjdGVyLWluLXVucXVvdGVkLWF0dHJpYnV0ZS12YWx1ZVwiO1xuICAgIEVSUltcImVvZkJlZm9yZVRhZ05hbWVcIl0gPSBcImVvZi1iZWZvcmUtdGFnLW5hbWVcIjtcbiAgICBFUlJbXCJlb2ZJblRhZ1wiXSA9IFwiZW9mLWluLXRhZ1wiO1xuICAgIEVSUltcIm1pc3NpbmdBdHRyaWJ1dGVWYWx1ZVwiXSA9IFwibWlzc2luZy1hdHRyaWJ1dGUtdmFsdWVcIjtcbiAgICBFUlJbXCJtaXNzaW5nV2hpdGVzcGFjZUJldHdlZW5BdHRyaWJ1dGVzXCJdID0gXCJtaXNzaW5nLXdoaXRlc3BhY2UtYmV0d2Vlbi1hdHRyaWJ1dGVzXCI7XG4gICAgRVJSW1wibWlzc2luZ1doaXRlc3BhY2VBZnRlckRvY3R5cGVQdWJsaWNLZXl3b3JkXCJdID0gXCJtaXNzaW5nLXdoaXRlc3BhY2UtYWZ0ZXItZG9jdHlwZS1wdWJsaWMta2V5d29yZFwiO1xuICAgIEVSUltcIm1pc3NpbmdXaGl0ZXNwYWNlQmV0d2VlbkRvY3R5cGVQdWJsaWNBbmRTeXN0ZW1JZGVudGlmaWVyc1wiXSA9IFwibWlzc2luZy13aGl0ZXNwYWNlLWJldHdlZW4tZG9jdHlwZS1wdWJsaWMtYW5kLXN5c3RlbS1pZGVudGlmaWVyc1wiO1xuICAgIEVSUltcIm1pc3NpbmdXaGl0ZXNwYWNlQWZ0ZXJEb2N0eXBlU3lzdGVtS2V5d29yZFwiXSA9IFwibWlzc2luZy13aGl0ZXNwYWNlLWFmdGVyLWRvY3R5cGUtc3lzdGVtLWtleXdvcmRcIjtcbiAgICBFUlJbXCJtaXNzaW5nUXVvdGVCZWZvcmVEb2N0eXBlUHVibGljSWRlbnRpZmllclwiXSA9IFwibWlzc2luZy1xdW90ZS1iZWZvcmUtZG9jdHlwZS1wdWJsaWMtaWRlbnRpZmllclwiO1xuICAgIEVSUltcIm1pc3NpbmdRdW90ZUJlZm9yZURvY3R5cGVTeXN0ZW1JZGVudGlmaWVyXCJdID0gXCJtaXNzaW5nLXF1b3RlLWJlZm9yZS1kb2N0eXBlLXN5c3RlbS1pZGVudGlmaWVyXCI7XG4gICAgRVJSW1wibWlzc2luZ0RvY3R5cGVQdWJsaWNJZGVudGlmaWVyXCJdID0gXCJtaXNzaW5nLWRvY3R5cGUtcHVibGljLWlkZW50aWZpZXJcIjtcbiAgICBFUlJbXCJtaXNzaW5nRG9jdHlwZVN5c3RlbUlkZW50aWZpZXJcIl0gPSBcIm1pc3NpbmctZG9jdHlwZS1zeXN0ZW0taWRlbnRpZmllclwiO1xuICAgIEVSUltcImFicnVwdERvY3R5cGVQdWJsaWNJZGVudGlmaWVyXCJdID0gXCJhYnJ1cHQtZG9jdHlwZS1wdWJsaWMtaWRlbnRpZmllclwiO1xuICAgIEVSUltcImFicnVwdERvY3R5cGVTeXN0ZW1JZGVudGlmaWVyXCJdID0gXCJhYnJ1cHQtZG9jdHlwZS1zeXN0ZW0taWRlbnRpZmllclwiO1xuICAgIEVSUltcImNkYXRhSW5IdG1sQ29udGVudFwiXSA9IFwiY2RhdGEtaW4taHRtbC1jb250ZW50XCI7XG4gICAgRVJSW1wiaW5jb3JyZWN0bHlPcGVuZWRDb21tZW50XCJdID0gXCJpbmNvcnJlY3RseS1vcGVuZWQtY29tbWVudFwiO1xuICAgIEVSUltcImVvZkluU2NyaXB0SHRtbENvbW1lbnRMaWtlVGV4dFwiXSA9IFwiZW9mLWluLXNjcmlwdC1odG1sLWNvbW1lbnQtbGlrZS10ZXh0XCI7XG4gICAgRVJSW1wiZW9mSW5Eb2N0eXBlXCJdID0gXCJlb2YtaW4tZG9jdHlwZVwiO1xuICAgIEVSUltcIm5lc3RlZENvbW1lbnRcIl0gPSBcIm5lc3RlZC1jb21tZW50XCI7XG4gICAgRVJSW1wiYWJydXB0Q2xvc2luZ09mRW1wdHlDb21tZW50XCJdID0gXCJhYnJ1cHQtY2xvc2luZy1vZi1lbXB0eS1jb21tZW50XCI7XG4gICAgRVJSW1wiZW9mSW5Db21tZW50XCJdID0gXCJlb2YtaW4tY29tbWVudFwiO1xuICAgIEVSUltcImluY29ycmVjdGx5Q2xvc2VkQ29tbWVudFwiXSA9IFwiaW5jb3JyZWN0bHktY2xvc2VkLWNvbW1lbnRcIjtcbiAgICBFUlJbXCJlb2ZJbkNkYXRhXCJdID0gXCJlb2YtaW4tY2RhdGFcIjtcbiAgICBFUlJbXCJhYnNlbmNlT2ZEaWdpdHNJbk51bWVyaWNDaGFyYWN0ZXJSZWZlcmVuY2VcIl0gPSBcImFic2VuY2Utb2YtZGlnaXRzLWluLW51bWVyaWMtY2hhcmFjdGVyLXJlZmVyZW5jZVwiO1xuICAgIEVSUltcIm51bGxDaGFyYWN0ZXJSZWZlcmVuY2VcIl0gPSBcIm51bGwtY2hhcmFjdGVyLXJlZmVyZW5jZVwiO1xuICAgIEVSUltcInN1cnJvZ2F0ZUNoYXJhY3RlclJlZmVyZW5jZVwiXSA9IFwic3Vycm9nYXRlLWNoYXJhY3Rlci1yZWZlcmVuY2VcIjtcbiAgICBFUlJbXCJjaGFyYWN0ZXJSZWZlcmVuY2VPdXRzaWRlVW5pY29kZVJhbmdlXCJdID0gXCJjaGFyYWN0ZXItcmVmZXJlbmNlLW91dHNpZGUtdW5pY29kZS1yYW5nZVwiO1xuICAgIEVSUltcImNvbnRyb2xDaGFyYWN0ZXJSZWZlcmVuY2VcIl0gPSBcImNvbnRyb2wtY2hhcmFjdGVyLXJlZmVyZW5jZVwiO1xuICAgIEVSUltcIm5vbmNoYXJhY3RlckNoYXJhY3RlclJlZmVyZW5jZVwiXSA9IFwibm9uY2hhcmFjdGVyLWNoYXJhY3Rlci1yZWZlcmVuY2VcIjtcbiAgICBFUlJbXCJtaXNzaW5nV2hpdGVzcGFjZUJlZm9yZURvY3R5cGVOYW1lXCJdID0gXCJtaXNzaW5nLXdoaXRlc3BhY2UtYmVmb3JlLWRvY3R5cGUtbmFtZVwiO1xuICAgIEVSUltcIm1pc3NpbmdEb2N0eXBlTmFtZVwiXSA9IFwibWlzc2luZy1kb2N0eXBlLW5hbWVcIjtcbiAgICBFUlJbXCJpbnZhbGlkQ2hhcmFjdGVyU2VxdWVuY2VBZnRlckRvY3R5cGVOYW1lXCJdID0gXCJpbnZhbGlkLWNoYXJhY3Rlci1zZXF1ZW5jZS1hZnRlci1kb2N0eXBlLW5hbWVcIjtcbiAgICBFUlJbXCJkdXBsaWNhdGVBdHRyaWJ1dGVcIl0gPSBcImR1cGxpY2F0ZS1hdHRyaWJ1dGVcIjtcbiAgICBFUlJbXCJub25Db25mb3JtaW5nRG9jdHlwZVwiXSA9IFwibm9uLWNvbmZvcm1pbmctZG9jdHlwZVwiO1xuICAgIEVSUltcIm1pc3NpbmdEb2N0eXBlXCJdID0gXCJtaXNzaW5nLWRvY3R5cGVcIjtcbiAgICBFUlJbXCJtaXNwbGFjZWREb2N0eXBlXCJdID0gXCJtaXNwbGFjZWQtZG9jdHlwZVwiO1xuICAgIEVSUltcImVuZFRhZ1dpdGhvdXRNYXRjaGluZ09wZW5FbGVtZW50XCJdID0gXCJlbmQtdGFnLXdpdGhvdXQtbWF0Y2hpbmctb3Blbi1lbGVtZW50XCI7XG4gICAgRVJSW1wiY2xvc2luZ09mRWxlbWVudFdpdGhPcGVuQ2hpbGRFbGVtZW50c1wiXSA9IFwiY2xvc2luZy1vZi1lbGVtZW50LXdpdGgtb3Blbi1jaGlsZC1lbGVtZW50c1wiO1xuICAgIEVSUltcImRpc2FsbG93ZWRDb250ZW50SW5Ob3NjcmlwdEluSGVhZFwiXSA9IFwiZGlzYWxsb3dlZC1jb250ZW50LWluLW5vc2NyaXB0LWluLWhlYWRcIjtcbiAgICBFUlJbXCJvcGVuRWxlbWVudHNMZWZ0QWZ0ZXJFb2ZcIl0gPSBcIm9wZW4tZWxlbWVudHMtbGVmdC1hZnRlci1lb2ZcIjtcbiAgICBFUlJbXCJhYmFuZG9uZWRIZWFkRWxlbWVudENoaWxkXCJdID0gXCJhYmFuZG9uZWQtaGVhZC1lbGVtZW50LWNoaWxkXCI7XG4gICAgRVJSW1wibWlzcGxhY2VkU3RhcnRUYWdGb3JIZWFkRWxlbWVudFwiXSA9IFwibWlzcGxhY2VkLXN0YXJ0LXRhZy1mb3ItaGVhZC1lbGVtZW50XCI7XG4gICAgRVJSW1wibmVzdGVkTm9zY3JpcHRJbkhlYWRcIl0gPSBcIm5lc3RlZC1ub3NjcmlwdC1pbi1oZWFkXCI7XG4gICAgRVJSW1wiZW9mSW5FbGVtZW50VGhhdENhbkNvbnRhaW5Pbmx5VGV4dFwiXSA9IFwiZW9mLWluLWVsZW1lbnQtdGhhdC1jYW4tY29udGFpbi1vbmx5LXRleHRcIjtcbn0pKEVSUiB8fCAoRVJSID0ge30pKTtcbiIsICJpbXBvcnQgeyBDT0RFX1BPSU5UUyBhcyAkLCBnZXRTdXJyb2dhdGVQYWlyQ29kZVBvaW50LCBpc0NvbnRyb2xDb2RlUG9pbnQsIGlzU3Vycm9nYXRlLCBpc1N1cnJvZ2F0ZVBhaXIsIGlzVW5kZWZpbmVkQ29kZVBvaW50LCB9IGZyb20gJy4uL2NvbW1vbi91bmljb2RlLmpzJztcbmltcG9ydCB7IEVSUiB9IGZyb20gJy4uL2NvbW1vbi9lcnJvci1jb2Rlcy5qcyc7XG4vL0NvbnN0XG5jb25zdCBERUZBVUxUX0JVRkZFUl9XQVRFUkxJTkUgPSAxIDw8IDE2O1xuLy9QcmVwcm9jZXNzb3Jcbi8vTk9URTogSFRNTCBpbnB1dCBwcmVwcm9jZXNzaW5nXG4vLyhzZWU6IGh0dHA6Ly93d3cud2hhdHdnLm9yZy9zcGVjcy93ZWItYXBwcy9jdXJyZW50LXdvcmsvbXVsdGlwYWdlL3BhcnNpbmcuaHRtbCNwcmVwcm9jZXNzaW5nLXRoZS1pbnB1dC1zdHJlYW0pXG5leHBvcnQgY2xhc3MgUHJlcHJvY2Vzc29yIHtcbiAgICBjb25zdHJ1Y3RvcihoYW5kbGVyKSB7XG4gICAgICAgIHRoaXMuaGFuZGxlciA9IGhhbmRsZXI7XG4gICAgICAgIHRoaXMuaHRtbCA9ICcnO1xuICAgICAgICB0aGlzLnBvcyA9IC0xO1xuICAgICAgICAvLyBOT1RFOiBJbml0aWFsIGBsYXN0R2FwUG9zYCBpcyAtMiwgdG8gZW5zdXJlIGBjb2xgIG9uIGluaXRpYWxpc2F0aW9uIGlzIDBcbiAgICAgICAgdGhpcy5sYXN0R2FwUG9zID0gLTI7XG4gICAgICAgIHRoaXMuZ2FwU3RhY2sgPSBbXTtcbiAgICAgICAgdGhpcy5za2lwTmV4dE5ld0xpbmUgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5sYXN0Q2h1bmtXcml0dGVuID0gZmFsc2U7XG4gICAgICAgIHRoaXMuZW5kT2ZDaHVua0hpdCA9IGZhbHNlO1xuICAgICAgICB0aGlzLmJ1ZmZlcldhdGVybGluZSA9IERFRkFVTFRfQlVGRkVSX1dBVEVSTElORTtcbiAgICAgICAgdGhpcy5pc0VvbCA9IGZhbHNlO1xuICAgICAgICB0aGlzLmxpbmVTdGFydFBvcyA9IDA7XG4gICAgICAgIHRoaXMuZHJvcHBlZEJ1ZmZlclNpemUgPSAwO1xuICAgICAgICB0aGlzLmxpbmUgPSAxO1xuICAgICAgICAvL05PVEU6IGF2b2lkIHJlcG9ydGluZyBlcnJvcnMgdHdpY2Ugb24gYWR2YW5jZS9yZXRyZWF0XG4gICAgICAgIHRoaXMubGFzdEVyck9mZnNldCA9IC0xO1xuICAgIH1cbiAgICAvKiogVGhlIGNvbHVtbiBvbiB0aGUgY3VycmVudCBsaW5lLiBJZiB3ZSBqdXN0IHNhdyBhIGdhcCAoZWcuIGEgc3Vycm9nYXRlIHBhaXIpLCByZXR1cm4gdGhlIGluZGV4IGJlZm9yZS4gKi9cbiAgICBnZXQgY29sKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5wb3MgLSB0aGlzLmxpbmVTdGFydFBvcyArIE51bWJlcih0aGlzLmxhc3RHYXBQb3MgIT09IHRoaXMucG9zKTtcbiAgICB9XG4gICAgZ2V0IG9mZnNldCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZHJvcHBlZEJ1ZmZlclNpemUgKyB0aGlzLnBvcztcbiAgICB9XG4gICAgZ2V0RXJyb3IoY29kZSwgY3BPZmZzZXQpIHtcbiAgICAgICAgY29uc3QgeyBsaW5lLCBjb2wsIG9mZnNldCB9ID0gdGhpcztcbiAgICAgICAgY29uc3Qgc3RhcnRDb2wgPSBjb2wgKyBjcE9mZnNldDtcbiAgICAgICAgY29uc3Qgc3RhcnRPZmZzZXQgPSBvZmZzZXQgKyBjcE9mZnNldDtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGNvZGUsXG4gICAgICAgICAgICBzdGFydExpbmU6IGxpbmUsXG4gICAgICAgICAgICBlbmRMaW5lOiBsaW5lLFxuICAgICAgICAgICAgc3RhcnRDb2wsXG4gICAgICAgICAgICBlbmRDb2w6IHN0YXJ0Q29sLFxuICAgICAgICAgICAgc3RhcnRPZmZzZXQsXG4gICAgICAgICAgICBlbmRPZmZzZXQ6IHN0YXJ0T2Zmc2V0LFxuICAgICAgICB9O1xuICAgIH1cbiAgICBfZXJyKGNvZGUpIHtcbiAgICAgICAgaWYgKHRoaXMuaGFuZGxlci5vblBhcnNlRXJyb3IgJiYgdGhpcy5sYXN0RXJyT2Zmc2V0ICE9PSB0aGlzLm9mZnNldCkge1xuICAgICAgICAgICAgdGhpcy5sYXN0RXJyT2Zmc2V0ID0gdGhpcy5vZmZzZXQ7XG4gICAgICAgICAgICB0aGlzLmhhbmRsZXIub25QYXJzZUVycm9yKHRoaXMuZ2V0RXJyb3IoY29kZSwgMCkpO1xuICAgICAgICB9XG4gICAgfVxuICAgIF9hZGRHYXAoKSB7XG4gICAgICAgIHRoaXMuZ2FwU3RhY2sucHVzaCh0aGlzLmxhc3RHYXBQb3MpO1xuICAgICAgICB0aGlzLmxhc3RHYXBQb3MgPSB0aGlzLnBvcztcbiAgICB9XG4gICAgX3Byb2Nlc3NTdXJyb2dhdGUoY3ApIHtcbiAgICAgICAgLy9OT1RFOiB0cnkgdG8gcGVlayBhIHN1cnJvZ2F0ZSBwYWlyXG4gICAgICAgIGlmICh0aGlzLnBvcyAhPT0gdGhpcy5odG1sLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgICAgIGNvbnN0IG5leHRDcCA9IHRoaXMuaHRtbC5jaGFyQ29kZUF0KHRoaXMucG9zICsgMSk7XG4gICAgICAgICAgICBpZiAoaXNTdXJyb2dhdGVQYWlyKG5leHRDcCkpIHtcbiAgICAgICAgICAgICAgICAvL05PVEU6IHdlIGhhdmUgYSBzdXJyb2dhdGUgcGFpci4gUGVlayBwYWlyIGNoYXJhY3RlciBhbmQgcmVjYWxjdWxhdGUgY29kZSBwb2ludC5cbiAgICAgICAgICAgICAgICB0aGlzLnBvcysrO1xuICAgICAgICAgICAgICAgIC8vTk9URTogYWRkIGEgZ2FwIHRoYXQgc2hvdWxkIGJlIGF2b2lkZWQgZHVyaW5nIHJldHJlYXRcbiAgICAgICAgICAgICAgICB0aGlzLl9hZGRHYXAoKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gZ2V0U3Vycm9nYXRlUGFpckNvZGVQb2ludChjcCwgbmV4dENwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAvL05PVEU6IHdlIGFyZSBhdCB0aGUgZW5kIG9mIGEgY2h1bmssIHRoZXJlZm9yZSB3ZSBjYW4ndCBpbmZlciB0aGUgc3Vycm9nYXRlIHBhaXIgeWV0LlxuICAgICAgICBlbHNlIGlmICghdGhpcy5sYXN0Q2h1bmtXcml0dGVuKSB7XG4gICAgICAgICAgICB0aGlzLmVuZE9mQ2h1bmtIaXQgPSB0cnVlO1xuICAgICAgICAgICAgcmV0dXJuICQuRU9GO1xuICAgICAgICB9XG4gICAgICAgIC8vTk9URTogaXNvbGF0ZWQgc3Vycm9nYXRlXG4gICAgICAgIHRoaXMuX2VycihFUlIuc3Vycm9nYXRlSW5JbnB1dFN0cmVhbSk7XG4gICAgICAgIHJldHVybiBjcDtcbiAgICB9XG4gICAgd2lsbERyb3BQYXJzZWRDaHVuaygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucG9zID4gdGhpcy5idWZmZXJXYXRlcmxpbmU7XG4gICAgfVxuICAgIGRyb3BQYXJzZWRDaHVuaygpIHtcbiAgICAgICAgaWYgKHRoaXMud2lsbERyb3BQYXJzZWRDaHVuaygpKSB7XG4gICAgICAgICAgICB0aGlzLmh0bWwgPSB0aGlzLmh0bWwuc3Vic3RyaW5nKHRoaXMucG9zKTtcbiAgICAgICAgICAgIHRoaXMubGluZVN0YXJ0UG9zIC09IHRoaXMucG9zO1xuICAgICAgICAgICAgdGhpcy5kcm9wcGVkQnVmZmVyU2l6ZSArPSB0aGlzLnBvcztcbiAgICAgICAgICAgIHRoaXMucG9zID0gMDtcbiAgICAgICAgICAgIHRoaXMubGFzdEdhcFBvcyA9IC0yO1xuICAgICAgICAgICAgdGhpcy5nYXBTdGFjay5sZW5ndGggPSAwO1xuICAgICAgICB9XG4gICAgfVxuICAgIHdyaXRlKGNodW5rLCBpc0xhc3RDaHVuaykge1xuICAgICAgICBpZiAodGhpcy5odG1sLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHRoaXMuaHRtbCArPSBjaHVuaztcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuaHRtbCA9IGNodW5rO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZW5kT2ZDaHVua0hpdCA9IGZhbHNlO1xuICAgICAgICB0aGlzLmxhc3RDaHVua1dyaXR0ZW4gPSBpc0xhc3RDaHVuaztcbiAgICB9XG4gICAgaW5zZXJ0SHRtbEF0Q3VycmVudFBvcyhjaHVuaykge1xuICAgICAgICB0aGlzLmh0bWwgPSB0aGlzLmh0bWwuc3Vic3RyaW5nKDAsIHRoaXMucG9zICsgMSkgKyBjaHVuayArIHRoaXMuaHRtbC5zdWJzdHJpbmcodGhpcy5wb3MgKyAxKTtcbiAgICAgICAgdGhpcy5lbmRPZkNodW5rSGl0ID0gZmFsc2U7XG4gICAgfVxuICAgIHN0YXJ0c1dpdGgocGF0dGVybiwgY2FzZVNlbnNpdGl2ZSkge1xuICAgICAgICAvLyBDaGVjayBpZiBvdXIgYnVmZmVyIGhhcyBlbm91Z2ggY2hhcmFjdGVyc1xuICAgICAgICBpZiAodGhpcy5wb3MgKyBwYXR0ZXJuLmxlbmd0aCA+IHRoaXMuaHRtbC5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMuZW5kT2ZDaHVua0hpdCA9ICF0aGlzLmxhc3RDaHVua1dyaXR0ZW47XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNhc2VTZW5zaXRpdmUpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmh0bWwuc3RhcnRzV2l0aChwYXR0ZXJuLCB0aGlzLnBvcyk7XG4gICAgICAgIH1cbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBwYXR0ZXJuLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBjb25zdCBjcCA9IHRoaXMuaHRtbC5jaGFyQ29kZUF0KHRoaXMucG9zICsgaSkgfCAweDIwO1xuICAgICAgICAgICAgaWYgKGNwICE9PSBwYXR0ZXJuLmNoYXJDb2RlQXQoaSkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHBlZWsob2Zmc2V0KSB7XG4gICAgICAgIGNvbnN0IHBvcyA9IHRoaXMucG9zICsgb2Zmc2V0O1xuICAgICAgICBpZiAocG9zID49IHRoaXMuaHRtbC5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMuZW5kT2ZDaHVua0hpdCA9ICF0aGlzLmxhc3RDaHVua1dyaXR0ZW47XG4gICAgICAgICAgICByZXR1cm4gJC5FT0Y7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgY29kZSA9IHRoaXMuaHRtbC5jaGFyQ29kZUF0KHBvcyk7XG4gICAgICAgIHJldHVybiBjb2RlID09PSAkLkNBUlJJQUdFX1JFVFVSTiA/ICQuTElORV9GRUVEIDogY29kZTtcbiAgICB9XG4gICAgYWR2YW5jZSgpIHtcbiAgICAgICAgdGhpcy5wb3MrKztcbiAgICAgICAgLy9OT1RFOiBMRiBzaG91bGQgYmUgaW4gdGhlIGxhc3QgY29sdW1uIG9mIHRoZSBsaW5lXG4gICAgICAgIGlmICh0aGlzLmlzRW9sKSB7XG4gICAgICAgICAgICB0aGlzLmlzRW9sID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLmxpbmUrKztcbiAgICAgICAgICAgIHRoaXMubGluZVN0YXJ0UG9zID0gdGhpcy5wb3M7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMucG9zID49IHRoaXMuaHRtbC5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMuZW5kT2ZDaHVua0hpdCA9ICF0aGlzLmxhc3RDaHVua1dyaXR0ZW47XG4gICAgICAgICAgICByZXR1cm4gJC5FT0Y7XG4gICAgICAgIH1cbiAgICAgICAgbGV0IGNwID0gdGhpcy5odG1sLmNoYXJDb2RlQXQodGhpcy5wb3MpO1xuICAgICAgICAvL05PVEU6IGFsbCBVKzAwMEQgQ0FSUklBR0UgUkVUVVJOIChDUikgY2hhcmFjdGVycyBtdXN0IGJlIGNvbnZlcnRlZCB0byBVKzAwMEEgTElORSBGRUVEIChMRikgY2hhcmFjdGVyc1xuICAgICAgICBpZiAoY3AgPT09ICQuQ0FSUklBR0VfUkVUVVJOKSB7XG4gICAgICAgICAgICB0aGlzLmlzRW9sID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMuc2tpcE5leHROZXdMaW5lID0gdHJ1ZTtcbiAgICAgICAgICAgIHJldHVybiAkLkxJTkVfRkVFRDtcbiAgICAgICAgfVxuICAgICAgICAvL05PVEU6IGFueSBVKzAwMEEgTElORSBGRUVEIChMRikgY2hhcmFjdGVycyB0aGF0IGltbWVkaWF0ZWx5IGZvbGxvdyBhIFUrMDAwRCBDQVJSSUFHRSBSRVRVUk4gKENSKSBjaGFyYWN0ZXJcbiAgICAgICAgLy9tdXN0IGJlIGlnbm9yZWQuXG4gICAgICAgIGlmIChjcCA9PT0gJC5MSU5FX0ZFRUQpIHtcbiAgICAgICAgICAgIHRoaXMuaXNFb2wgPSB0cnVlO1xuICAgICAgICAgICAgaWYgKHRoaXMuc2tpcE5leHROZXdMaW5lKSB7XG4gICAgICAgICAgICAgICAgLy8gYGxpbmVgIHdpbGwgYmUgYnVtcGVkIGFnYWluIGluIHRoZSByZWN1cnNpdmUgY2FsbC5cbiAgICAgICAgICAgICAgICB0aGlzLmxpbmUtLTtcbiAgICAgICAgICAgICAgICB0aGlzLnNraXBOZXh0TmV3TGluZSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIHRoaXMuX2FkZEdhcCgpO1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmFkdmFuY2UoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0aGlzLnNraXBOZXh0TmV3TGluZSA9IGZhbHNlO1xuICAgICAgICBpZiAoaXNTdXJyb2dhdGUoY3ApKSB7XG4gICAgICAgICAgICBjcCA9IHRoaXMuX3Byb2Nlc3NTdXJyb2dhdGUoY3ApO1xuICAgICAgICB9XG4gICAgICAgIC8vT1BUSU1JWkFUSU9OOiBmaXJzdCBjaGVjayBpZiBjb2RlIHBvaW50IGlzIGluIHRoZSBjb21tb24gYWxsb3dlZFxuICAgICAgICAvL3JhbmdlIChBU0NJSSBhbHBoYW51bWVyaWMsIHdoaXRlc3BhY2VzLCBiaWcgY2h1bmsgb2YgQk1QKVxuICAgICAgICAvL2JlZm9yZSBnb2luZyBpbnRvIGRldGFpbGVkIHBlcmZvcm1hbmNlIGNvc3QgdmFsaWRhdGlvbi5cbiAgICAgICAgY29uc3QgaXNDb21tb25WYWxpZFJhbmdlID0gdGhpcy5oYW5kbGVyLm9uUGFyc2VFcnJvciA9PT0gbnVsbCB8fFxuICAgICAgICAgICAgKGNwID4gMHgxZiAmJiBjcCA8IDB4N2YpIHx8XG4gICAgICAgICAgICBjcCA9PT0gJC5MSU5FX0ZFRUQgfHxcbiAgICAgICAgICAgIGNwID09PSAkLkNBUlJJQUdFX1JFVFVSTiB8fFxuICAgICAgICAgICAgKGNwID4gMHg5ZiAmJiBjcCA8IDY0OTc2KTtcbiAgICAgICAgaWYgKCFpc0NvbW1vblZhbGlkUmFuZ2UpIHtcbiAgICAgICAgICAgIHRoaXMuX2NoZWNrRm9yUHJvYmxlbWF0aWNDaGFyYWN0ZXJzKGNwKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gY3A7XG4gICAgfVxuICAgIF9jaGVja0ZvclByb2JsZW1hdGljQ2hhcmFjdGVycyhjcCkge1xuICAgICAgICBpZiAoaXNDb250cm9sQ29kZVBvaW50KGNwKSkge1xuICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5jb250cm9sQ2hhcmFjdGVySW5JbnB1dFN0cmVhbSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoaXNVbmRlZmluZWRDb2RlUG9pbnQoY3ApKSB7XG4gICAgICAgICAgICB0aGlzLl9lcnIoRVJSLm5vbmNoYXJhY3RlckluSW5wdXRTdHJlYW0pO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHJlYXQoY291bnQpIHtcbiAgICAgICAgdGhpcy5wb3MgLT0gY291bnQ7XG4gICAgICAgIHdoaWxlICh0aGlzLnBvcyA8IHRoaXMubGFzdEdhcFBvcykge1xuICAgICAgICAgICAgdGhpcy5sYXN0R2FwUG9zID0gdGhpcy5nYXBTdGFjay5wb3AoKTtcbiAgICAgICAgICAgIHRoaXMucG9zLS07XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5pc0VvbCA9IGZhbHNlO1xuICAgIH1cbn1cbiIsICJleHBvcnQgdmFyIFRva2VuVHlwZTtcbihmdW5jdGlvbiAoVG9rZW5UeXBlKSB7XG4gICAgVG9rZW5UeXBlW1Rva2VuVHlwZVtcIkNIQVJBQ1RFUlwiXSA9IDBdID0gXCJDSEFSQUNURVJcIjtcbiAgICBUb2tlblR5cGVbVG9rZW5UeXBlW1wiTlVMTF9DSEFSQUNURVJcIl0gPSAxXSA9IFwiTlVMTF9DSEFSQUNURVJcIjtcbiAgICBUb2tlblR5cGVbVG9rZW5UeXBlW1wiV0hJVEVTUEFDRV9DSEFSQUNURVJcIl0gPSAyXSA9IFwiV0hJVEVTUEFDRV9DSEFSQUNURVJcIjtcbiAgICBUb2tlblR5cGVbVG9rZW5UeXBlW1wiU1RBUlRfVEFHXCJdID0gM10gPSBcIlNUQVJUX1RBR1wiO1xuICAgIFRva2VuVHlwZVtUb2tlblR5cGVbXCJFTkRfVEFHXCJdID0gNF0gPSBcIkVORF9UQUdcIjtcbiAgICBUb2tlblR5cGVbVG9rZW5UeXBlW1wiQ09NTUVOVFwiXSA9IDVdID0gXCJDT01NRU5UXCI7XG4gICAgVG9rZW5UeXBlW1Rva2VuVHlwZVtcIkRPQ1RZUEVcIl0gPSA2XSA9IFwiRE9DVFlQRVwiO1xuICAgIFRva2VuVHlwZVtUb2tlblR5cGVbXCJFT0ZcIl0gPSA3XSA9IFwiRU9GXCI7XG4gICAgVG9rZW5UeXBlW1Rva2VuVHlwZVtcIkhJQkVSTkFUSU9OXCJdID0gOF0gPSBcIkhJQkVSTkFUSU9OXCI7XG59KShUb2tlblR5cGUgfHwgKFRva2VuVHlwZSA9IHt9KSk7XG5leHBvcnQgZnVuY3Rpb24gZ2V0VG9rZW5BdHRyKHRva2VuLCBhdHRyTmFtZSkge1xuICAgIGZvciAobGV0IGkgPSB0b2tlbi5hdHRycy5sZW5ndGggLSAxOyBpID49IDA7IGktLSkge1xuICAgICAgICBpZiAodG9rZW4uYXR0cnNbaV0ubmFtZSA9PT0gYXR0ck5hbWUpIHtcbiAgICAgICAgICAgIHJldHVybiB0b2tlbi5hdHRyc1tpXS52YWx1ZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbn1cbiIsICIvKiogQWxsIHZhbGlkIG5hbWVzcGFjZXMgaW4gSFRNTC4gKi9cbmV4cG9ydCB2YXIgTlM7XG4oZnVuY3Rpb24gKE5TKSB7XG4gICAgTlNbXCJIVE1MXCJdID0gXCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sXCI7XG4gICAgTlNbXCJNQVRITUxcIl0gPSBcImh0dHA6Ly93d3cudzMub3JnLzE5OTgvTWF0aC9NYXRoTUxcIjtcbiAgICBOU1tcIlNWR1wiXSA9IFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIjtcbiAgICBOU1tcIlhMSU5LXCJdID0gXCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rXCI7XG4gICAgTlNbXCJYTUxcIl0gPSBcImh0dHA6Ly93d3cudzMub3JnL1hNTC8xOTk4L25hbWVzcGFjZVwiO1xuICAgIE5TW1wiWE1MTlNcIl0gPSBcImh0dHA6Ly93d3cudzMub3JnLzIwMDAveG1sbnMvXCI7XG59KShOUyB8fCAoTlMgPSB7fSkpO1xuZXhwb3J0IHZhciBBVFRSUztcbihmdW5jdGlvbiAoQVRUUlMpIHtcbiAgICBBVFRSU1tcIlRZUEVcIl0gPSBcInR5cGVcIjtcbiAgICBBVFRSU1tcIkFDVElPTlwiXSA9IFwiYWN0aW9uXCI7XG4gICAgQVRUUlNbXCJFTkNPRElOR1wiXSA9IFwiZW5jb2RpbmdcIjtcbiAgICBBVFRSU1tcIlBST01QVFwiXSA9IFwicHJvbXB0XCI7XG4gICAgQVRUUlNbXCJOQU1FXCJdID0gXCJuYW1lXCI7XG4gICAgQVRUUlNbXCJDT0xPUlwiXSA9IFwiY29sb3JcIjtcbiAgICBBVFRSU1tcIkZBQ0VcIl0gPSBcImZhY2VcIjtcbiAgICBBVFRSU1tcIlNJWkVcIl0gPSBcInNpemVcIjtcbn0pKEFUVFJTIHx8IChBVFRSUyA9IHt9KSk7XG4vKipcbiAqIFRoZSBtb2RlIG9mIHRoZSBkb2N1bWVudC5cbiAqXG4gKiBAc2VlIHtAbGluayBodHRwczovL2RvbS5zcGVjLndoYXR3Zy5vcmcvI2NvbmNlcHQtZG9jdW1lbnQtbGltaXRlZC1xdWlya3N9XG4gKi9cbmV4cG9ydCB2YXIgRE9DVU1FTlRfTU9ERTtcbihmdW5jdGlvbiAoRE9DVU1FTlRfTU9ERSkge1xuICAgIERPQ1VNRU5UX01PREVbXCJOT19RVUlSS1NcIl0gPSBcIm5vLXF1aXJrc1wiO1xuICAgIERPQ1VNRU5UX01PREVbXCJRVUlSS1NcIl0gPSBcInF1aXJrc1wiO1xuICAgIERPQ1VNRU5UX01PREVbXCJMSU1JVEVEX1FVSVJLU1wiXSA9IFwibGltaXRlZC1xdWlya3NcIjtcbn0pKERPQ1VNRU5UX01PREUgfHwgKERPQ1VNRU5UX01PREUgPSB7fSkpO1xuZXhwb3J0IHZhciBUQUdfTkFNRVM7XG4oZnVuY3Rpb24gKFRBR19OQU1FUykge1xuICAgIFRBR19OQU1FU1tcIkFcIl0gPSBcImFcIjtcbiAgICBUQUdfTkFNRVNbXCJBRERSRVNTXCJdID0gXCJhZGRyZXNzXCI7XG4gICAgVEFHX05BTUVTW1wiQU5OT1RBVElPTl9YTUxcIl0gPSBcImFubm90YXRpb24teG1sXCI7XG4gICAgVEFHX05BTUVTW1wiQVBQTEVUXCJdID0gXCJhcHBsZXRcIjtcbiAgICBUQUdfTkFNRVNbXCJBUkVBXCJdID0gXCJhcmVhXCI7XG4gICAgVEFHX05BTUVTW1wiQVJUSUNMRVwiXSA9IFwiYXJ0aWNsZVwiO1xuICAgIFRBR19OQU1FU1tcIkFTSURFXCJdID0gXCJhc2lkZVwiO1xuICAgIFRBR19OQU1FU1tcIkJcIl0gPSBcImJcIjtcbiAgICBUQUdfTkFNRVNbXCJCQVNFXCJdID0gXCJiYXNlXCI7XG4gICAgVEFHX05BTUVTW1wiQkFTRUZPTlRcIl0gPSBcImJhc2Vmb250XCI7XG4gICAgVEFHX05BTUVTW1wiQkdTT1VORFwiXSA9IFwiYmdzb3VuZFwiO1xuICAgIFRBR19OQU1FU1tcIkJJR1wiXSA9IFwiYmlnXCI7XG4gICAgVEFHX05BTUVTW1wiQkxPQ0tRVU9URVwiXSA9IFwiYmxvY2txdW90ZVwiO1xuICAgIFRBR19OQU1FU1tcIkJPRFlcIl0gPSBcImJvZHlcIjtcbiAgICBUQUdfTkFNRVNbXCJCUlwiXSA9IFwiYnJcIjtcbiAgICBUQUdfTkFNRVNbXCJCVVRUT05cIl0gPSBcImJ1dHRvblwiO1xuICAgIFRBR19OQU1FU1tcIkNBUFRJT05cIl0gPSBcImNhcHRpb25cIjtcbiAgICBUQUdfTkFNRVNbXCJDRU5URVJcIl0gPSBcImNlbnRlclwiO1xuICAgIFRBR19OQU1FU1tcIkNPREVcIl0gPSBcImNvZGVcIjtcbiAgICBUQUdfTkFNRVNbXCJDT0xcIl0gPSBcImNvbFwiO1xuICAgIFRBR19OQU1FU1tcIkNPTEdST1VQXCJdID0gXCJjb2xncm91cFwiO1xuICAgIFRBR19OQU1FU1tcIkREXCJdID0gXCJkZFwiO1xuICAgIFRBR19OQU1FU1tcIkRFU0NcIl0gPSBcImRlc2NcIjtcbiAgICBUQUdfTkFNRVNbXCJERVRBSUxTXCJdID0gXCJkZXRhaWxzXCI7XG4gICAgVEFHX05BTUVTW1wiRElBTE9HXCJdID0gXCJkaWFsb2dcIjtcbiAgICBUQUdfTkFNRVNbXCJESVJcIl0gPSBcImRpclwiO1xuICAgIFRBR19OQU1FU1tcIkRJVlwiXSA9IFwiZGl2XCI7XG4gICAgVEFHX05BTUVTW1wiRExcIl0gPSBcImRsXCI7XG4gICAgVEFHX05BTUVTW1wiRFRcIl0gPSBcImR0XCI7XG4gICAgVEFHX05BTUVTW1wiRU1cIl0gPSBcImVtXCI7XG4gICAgVEFHX05BTUVTW1wiRU1CRURcIl0gPSBcImVtYmVkXCI7XG4gICAgVEFHX05BTUVTW1wiRklFTERTRVRcIl0gPSBcImZpZWxkc2V0XCI7XG4gICAgVEFHX05BTUVTW1wiRklHQ0FQVElPTlwiXSA9IFwiZmlnY2FwdGlvblwiO1xuICAgIFRBR19OQU1FU1tcIkZJR1VSRVwiXSA9IFwiZmlndXJlXCI7XG4gICAgVEFHX05BTUVTW1wiRk9OVFwiXSA9IFwiZm9udFwiO1xuICAgIFRBR19OQU1FU1tcIkZPT1RFUlwiXSA9IFwiZm9vdGVyXCI7XG4gICAgVEFHX05BTUVTW1wiRk9SRUlHTl9PQkpFQ1RcIl0gPSBcImZvcmVpZ25PYmplY3RcIjtcbiAgICBUQUdfTkFNRVNbXCJGT1JNXCJdID0gXCJmb3JtXCI7XG4gICAgVEFHX05BTUVTW1wiRlJBTUVcIl0gPSBcImZyYW1lXCI7XG4gICAgVEFHX05BTUVTW1wiRlJBTUVTRVRcIl0gPSBcImZyYW1lc2V0XCI7XG4gICAgVEFHX05BTUVTW1wiSDFcIl0gPSBcImgxXCI7XG4gICAgVEFHX05BTUVTW1wiSDJcIl0gPSBcImgyXCI7XG4gICAgVEFHX05BTUVTW1wiSDNcIl0gPSBcImgzXCI7XG4gICAgVEFHX05BTUVTW1wiSDRcIl0gPSBcImg0XCI7XG4gICAgVEFHX05BTUVTW1wiSDVcIl0gPSBcImg1XCI7XG4gICAgVEFHX05BTUVTW1wiSDZcIl0gPSBcImg2XCI7XG4gICAgVEFHX05BTUVTW1wiSEVBRFwiXSA9IFwiaGVhZFwiO1xuICAgIFRBR19OQU1FU1tcIkhFQURFUlwiXSA9IFwiaGVhZGVyXCI7XG4gICAgVEFHX05BTUVTW1wiSEdST1VQXCJdID0gXCJoZ3JvdXBcIjtcbiAgICBUQUdfTkFNRVNbXCJIUlwiXSA9IFwiaHJcIjtcbiAgICBUQUdfTkFNRVNbXCJIVE1MXCJdID0gXCJodG1sXCI7XG4gICAgVEFHX05BTUVTW1wiSVwiXSA9IFwiaVwiO1xuICAgIFRBR19OQU1FU1tcIklNR1wiXSA9IFwiaW1nXCI7XG4gICAgVEFHX05BTUVTW1wiSU1BR0VcIl0gPSBcImltYWdlXCI7XG4gICAgVEFHX05BTUVTW1wiSU5QVVRcIl0gPSBcImlucHV0XCI7XG4gICAgVEFHX05BTUVTW1wiSUZSQU1FXCJdID0gXCJpZnJhbWVcIjtcbiAgICBUQUdfTkFNRVNbXCJLRVlHRU5cIl0gPSBcImtleWdlblwiO1xuICAgIFRBR19OQU1FU1tcIkxBQkVMXCJdID0gXCJsYWJlbFwiO1xuICAgIFRBR19OQU1FU1tcIkxJXCJdID0gXCJsaVwiO1xuICAgIFRBR19OQU1FU1tcIkxJTktcIl0gPSBcImxpbmtcIjtcbiAgICBUQUdfTkFNRVNbXCJMSVNUSU5HXCJdID0gXCJsaXN0aW5nXCI7XG4gICAgVEFHX05BTUVTW1wiTUFJTlwiXSA9IFwibWFpblwiO1xuICAgIFRBR19OQU1FU1tcIk1BTElHTk1BUktcIl0gPSBcIm1hbGlnbm1hcmtcIjtcbiAgICBUQUdfTkFNRVNbXCJNQVJRVUVFXCJdID0gXCJtYXJxdWVlXCI7XG4gICAgVEFHX05BTUVTW1wiTUFUSFwiXSA9IFwibWF0aFwiO1xuICAgIFRBR19OQU1FU1tcIk1FTlVcIl0gPSBcIm1lbnVcIjtcbiAgICBUQUdfTkFNRVNbXCJNRVRBXCJdID0gXCJtZXRhXCI7XG4gICAgVEFHX05BTUVTW1wiTUdMWVBIXCJdID0gXCJtZ2x5cGhcIjtcbiAgICBUQUdfTkFNRVNbXCJNSVwiXSA9IFwibWlcIjtcbiAgICBUQUdfTkFNRVNbXCJNT1wiXSA9IFwibW9cIjtcbiAgICBUQUdfTkFNRVNbXCJNTlwiXSA9IFwibW5cIjtcbiAgICBUQUdfTkFNRVNbXCJNU1wiXSA9IFwibXNcIjtcbiAgICBUQUdfTkFNRVNbXCJNVEVYVFwiXSA9IFwibXRleHRcIjtcbiAgICBUQUdfTkFNRVNbXCJOQVZcIl0gPSBcIm5hdlwiO1xuICAgIFRBR19OQU1FU1tcIk5PQlJcIl0gPSBcIm5vYnJcIjtcbiAgICBUQUdfTkFNRVNbXCJOT0ZSQU1FU1wiXSA9IFwibm9mcmFtZXNcIjtcbiAgICBUQUdfTkFNRVNbXCJOT0VNQkVEXCJdID0gXCJub2VtYmVkXCI7XG4gICAgVEFHX05BTUVTW1wiTk9TQ1JJUFRcIl0gPSBcIm5vc2NyaXB0XCI7XG4gICAgVEFHX05BTUVTW1wiT0JKRUNUXCJdID0gXCJvYmplY3RcIjtcbiAgICBUQUdfTkFNRVNbXCJPTFwiXSA9IFwib2xcIjtcbiAgICBUQUdfTkFNRVNbXCJPUFRHUk9VUFwiXSA9IFwib3B0Z3JvdXBcIjtcbiAgICBUQUdfTkFNRVNbXCJPUFRJT05cIl0gPSBcIm9wdGlvblwiO1xuICAgIFRBR19OQU1FU1tcIlBcIl0gPSBcInBcIjtcbiAgICBUQUdfTkFNRVNbXCJQQVJBTVwiXSA9IFwicGFyYW1cIjtcbiAgICBUQUdfTkFNRVNbXCJQTEFJTlRFWFRcIl0gPSBcInBsYWludGV4dFwiO1xuICAgIFRBR19OQU1FU1tcIlBSRVwiXSA9IFwicHJlXCI7XG4gICAgVEFHX05BTUVTW1wiUkJcIl0gPSBcInJiXCI7XG4gICAgVEFHX05BTUVTW1wiUlBcIl0gPSBcInJwXCI7XG4gICAgVEFHX05BTUVTW1wiUlRcIl0gPSBcInJ0XCI7XG4gICAgVEFHX05BTUVTW1wiUlRDXCJdID0gXCJydGNcIjtcbiAgICBUQUdfTkFNRVNbXCJSVUJZXCJdID0gXCJydWJ5XCI7XG4gICAgVEFHX05BTUVTW1wiU1wiXSA9IFwic1wiO1xuICAgIFRBR19OQU1FU1tcIlNDUklQVFwiXSA9IFwic2NyaXB0XCI7XG4gICAgVEFHX05BTUVTW1wiU0VBUkNIXCJdID0gXCJzZWFyY2hcIjtcbiAgICBUQUdfTkFNRVNbXCJTRUNUSU9OXCJdID0gXCJzZWN0aW9uXCI7XG4gICAgVEFHX05BTUVTW1wiU0VMRUNUXCJdID0gXCJzZWxlY3RcIjtcbiAgICBUQUdfTkFNRVNbXCJTT1VSQ0VcIl0gPSBcInNvdXJjZVwiO1xuICAgIFRBR19OQU1FU1tcIlNNQUxMXCJdID0gXCJzbWFsbFwiO1xuICAgIFRBR19OQU1FU1tcIlNQQU5cIl0gPSBcInNwYW5cIjtcbiAgICBUQUdfTkFNRVNbXCJTVFJJS0VcIl0gPSBcInN0cmlrZVwiO1xuICAgIFRBR19OQU1FU1tcIlNUUk9OR1wiXSA9IFwic3Ryb25nXCI7XG4gICAgVEFHX05BTUVTW1wiU1RZTEVcIl0gPSBcInN0eWxlXCI7XG4gICAgVEFHX05BTUVTW1wiU1VCXCJdID0gXCJzdWJcIjtcbiAgICBUQUdfTkFNRVNbXCJTVU1NQVJZXCJdID0gXCJzdW1tYXJ5XCI7XG4gICAgVEFHX05BTUVTW1wiU1VQXCJdID0gXCJzdXBcIjtcbiAgICBUQUdfTkFNRVNbXCJUQUJMRVwiXSA9IFwidGFibGVcIjtcbiAgICBUQUdfTkFNRVNbXCJUQk9EWVwiXSA9IFwidGJvZHlcIjtcbiAgICBUQUdfTkFNRVNbXCJURU1QTEFURVwiXSA9IFwidGVtcGxhdGVcIjtcbiAgICBUQUdfTkFNRVNbXCJURVhUQVJFQVwiXSA9IFwidGV4dGFyZWFcIjtcbiAgICBUQUdfTkFNRVNbXCJURk9PVFwiXSA9IFwidGZvb3RcIjtcbiAgICBUQUdfTkFNRVNbXCJURFwiXSA9IFwidGRcIjtcbiAgICBUQUdfTkFNRVNbXCJUSFwiXSA9IFwidGhcIjtcbiAgICBUQUdfTkFNRVNbXCJUSEVBRFwiXSA9IFwidGhlYWRcIjtcbiAgICBUQUdfTkFNRVNbXCJUSVRMRVwiXSA9IFwidGl0bGVcIjtcbiAgICBUQUdfTkFNRVNbXCJUUlwiXSA9IFwidHJcIjtcbiAgICBUQUdfTkFNRVNbXCJUUkFDS1wiXSA9IFwidHJhY2tcIjtcbiAgICBUQUdfTkFNRVNbXCJUVFwiXSA9IFwidHRcIjtcbiAgICBUQUdfTkFNRVNbXCJVXCJdID0gXCJ1XCI7XG4gICAgVEFHX05BTUVTW1wiVUxcIl0gPSBcInVsXCI7XG4gICAgVEFHX05BTUVTW1wiU1ZHXCJdID0gXCJzdmdcIjtcbiAgICBUQUdfTkFNRVNbXCJWQVJcIl0gPSBcInZhclwiO1xuICAgIFRBR19OQU1FU1tcIldCUlwiXSA9IFwid2JyXCI7XG4gICAgVEFHX05BTUVTW1wiWE1QXCJdID0gXCJ4bXBcIjtcbn0pKFRBR19OQU1FUyB8fCAoVEFHX05BTUVTID0ge30pKTtcbi8qKlxuICogVGFnIElEcyBhcmUgbnVtZXJpYyBJRHMgZm9yIGtub3duIHRhZyBuYW1lcy5cbiAqXG4gKiBXZSB1c2UgdGFnIElEcyB0byBpbXByb3ZlIHRoZSBwZXJmb3JtYW5jZSBvZiB0YWcgbmFtZSBjb21wYXJpc29ucy5cbiAqL1xuZXhwb3J0IHZhciBUQUdfSUQ7XG4oZnVuY3Rpb24gKFRBR19JRCkge1xuICAgIFRBR19JRFtUQUdfSURbXCJVTktOT1dOXCJdID0gMF0gPSBcIlVOS05PV05cIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiQVwiXSA9IDFdID0gXCJBXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIkFERFJFU1NcIl0gPSAyXSA9IFwiQUREUkVTU1wiO1xuICAgIFRBR19JRFtUQUdfSURbXCJBTk5PVEFUSU9OX1hNTFwiXSA9IDNdID0gXCJBTk5PVEFUSU9OX1hNTFwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJBUFBMRVRcIl0gPSA0XSA9IFwiQVBQTEVUXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIkFSRUFcIl0gPSA1XSA9IFwiQVJFQVwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJBUlRJQ0xFXCJdID0gNl0gPSBcIkFSVElDTEVcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiQVNJREVcIl0gPSA3XSA9IFwiQVNJREVcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiQlwiXSA9IDhdID0gXCJCXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIkJBU0VcIl0gPSA5XSA9IFwiQkFTRVwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJCQVNFRk9OVFwiXSA9IDEwXSA9IFwiQkFTRUZPTlRcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiQkdTT1VORFwiXSA9IDExXSA9IFwiQkdTT1VORFwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJCSUdcIl0gPSAxMl0gPSBcIkJJR1wiO1xuICAgIFRBR19JRFtUQUdfSURbXCJCTE9DS1FVT1RFXCJdID0gMTNdID0gXCJCTE9DS1FVT1RFXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIkJPRFlcIl0gPSAxNF0gPSBcIkJPRFlcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiQlJcIl0gPSAxNV0gPSBcIkJSXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIkJVVFRPTlwiXSA9IDE2XSA9IFwiQlVUVE9OXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIkNBUFRJT05cIl0gPSAxN10gPSBcIkNBUFRJT05cIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiQ0VOVEVSXCJdID0gMThdID0gXCJDRU5URVJcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiQ09ERVwiXSA9IDE5XSA9IFwiQ09ERVwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJDT0xcIl0gPSAyMF0gPSBcIkNPTFwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJDT0xHUk9VUFwiXSA9IDIxXSA9IFwiQ09MR1JPVVBcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiRERcIl0gPSAyMl0gPSBcIkREXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIkRFU0NcIl0gPSAyM10gPSBcIkRFU0NcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiREVUQUlMU1wiXSA9IDI0XSA9IFwiREVUQUlMU1wiO1xuICAgIFRBR19JRFtUQUdfSURbXCJESUFMT0dcIl0gPSAyNV0gPSBcIkRJQUxPR1wiO1xuICAgIFRBR19JRFtUQUdfSURbXCJESVJcIl0gPSAyNl0gPSBcIkRJUlwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJESVZcIl0gPSAyN10gPSBcIkRJVlwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJETFwiXSA9IDI4XSA9IFwiRExcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiRFRcIl0gPSAyOV0gPSBcIkRUXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIkVNXCJdID0gMzBdID0gXCJFTVwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJFTUJFRFwiXSA9IDMxXSA9IFwiRU1CRURcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiRklFTERTRVRcIl0gPSAzMl0gPSBcIkZJRUxEU0VUXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIkZJR0NBUFRJT05cIl0gPSAzM10gPSBcIkZJR0NBUFRJT05cIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiRklHVVJFXCJdID0gMzRdID0gXCJGSUdVUkVcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiRk9OVFwiXSA9IDM1XSA9IFwiRk9OVFwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJGT09URVJcIl0gPSAzNl0gPSBcIkZPT1RFUlwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJGT1JFSUdOX09CSkVDVFwiXSA9IDM3XSA9IFwiRk9SRUlHTl9PQkpFQ1RcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiRk9STVwiXSA9IDM4XSA9IFwiRk9STVwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJGUkFNRVwiXSA9IDM5XSA9IFwiRlJBTUVcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiRlJBTUVTRVRcIl0gPSA0MF0gPSBcIkZSQU1FU0VUXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIkgxXCJdID0gNDFdID0gXCJIMVwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJIMlwiXSA9IDQyXSA9IFwiSDJcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiSDNcIl0gPSA0M10gPSBcIkgzXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIkg0XCJdID0gNDRdID0gXCJINFwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJINVwiXSA9IDQ1XSA9IFwiSDVcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiSDZcIl0gPSA0Nl0gPSBcIkg2XCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIkhFQURcIl0gPSA0N10gPSBcIkhFQURcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiSEVBREVSXCJdID0gNDhdID0gXCJIRUFERVJcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiSEdST1VQXCJdID0gNDldID0gXCJIR1JPVVBcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiSFJcIl0gPSA1MF0gPSBcIkhSXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIkhUTUxcIl0gPSA1MV0gPSBcIkhUTUxcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiSVwiXSA9IDUyXSA9IFwiSVwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJJTUdcIl0gPSA1M10gPSBcIklNR1wiO1xuICAgIFRBR19JRFtUQUdfSURbXCJJTUFHRVwiXSA9IDU0XSA9IFwiSU1BR0VcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiSU5QVVRcIl0gPSA1NV0gPSBcIklOUFVUXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIklGUkFNRVwiXSA9IDU2XSA9IFwiSUZSQU1FXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIktFWUdFTlwiXSA9IDU3XSA9IFwiS0VZR0VOXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIkxBQkVMXCJdID0gNThdID0gXCJMQUJFTFwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJMSVwiXSA9IDU5XSA9IFwiTElcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiTElOS1wiXSA9IDYwXSA9IFwiTElOS1wiO1xuICAgIFRBR19JRFtUQUdfSURbXCJMSVNUSU5HXCJdID0gNjFdID0gXCJMSVNUSU5HXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIk1BSU5cIl0gPSA2Ml0gPSBcIk1BSU5cIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiTUFMSUdOTUFSS1wiXSA9IDYzXSA9IFwiTUFMSUdOTUFSS1wiO1xuICAgIFRBR19JRFtUQUdfSURbXCJNQVJRVUVFXCJdID0gNjRdID0gXCJNQVJRVUVFXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIk1BVEhcIl0gPSA2NV0gPSBcIk1BVEhcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiTUVOVVwiXSA9IDY2XSA9IFwiTUVOVVwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJNRVRBXCJdID0gNjddID0gXCJNRVRBXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIk1HTFlQSFwiXSA9IDY4XSA9IFwiTUdMWVBIXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIk1JXCJdID0gNjldID0gXCJNSVwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJNT1wiXSA9IDcwXSA9IFwiTU9cIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiTU5cIl0gPSA3MV0gPSBcIk1OXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIk1TXCJdID0gNzJdID0gXCJNU1wiO1xuICAgIFRBR19JRFtUQUdfSURbXCJNVEVYVFwiXSA9IDczXSA9IFwiTVRFWFRcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiTkFWXCJdID0gNzRdID0gXCJOQVZcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiTk9CUlwiXSA9IDc1XSA9IFwiTk9CUlwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJOT0ZSQU1FU1wiXSA9IDc2XSA9IFwiTk9GUkFNRVNcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiTk9FTUJFRFwiXSA9IDc3XSA9IFwiTk9FTUJFRFwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJOT1NDUklQVFwiXSA9IDc4XSA9IFwiTk9TQ1JJUFRcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiT0JKRUNUXCJdID0gNzldID0gXCJPQkpFQ1RcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiT0xcIl0gPSA4MF0gPSBcIk9MXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIk9QVEdST1VQXCJdID0gODFdID0gXCJPUFRHUk9VUFwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJPUFRJT05cIl0gPSA4Ml0gPSBcIk9QVElPTlwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJQXCJdID0gODNdID0gXCJQXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIlBBUkFNXCJdID0gODRdID0gXCJQQVJBTVwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJQTEFJTlRFWFRcIl0gPSA4NV0gPSBcIlBMQUlOVEVYVFwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJQUkVcIl0gPSA4Nl0gPSBcIlBSRVwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJSQlwiXSA9IDg3XSA9IFwiUkJcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiUlBcIl0gPSA4OF0gPSBcIlJQXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIlJUXCJdID0gODldID0gXCJSVFwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJSVENcIl0gPSA5MF0gPSBcIlJUQ1wiO1xuICAgIFRBR19JRFtUQUdfSURbXCJSVUJZXCJdID0gOTFdID0gXCJSVUJZXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIlNcIl0gPSA5Ml0gPSBcIlNcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiU0NSSVBUXCJdID0gOTNdID0gXCJTQ1JJUFRcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiU0VBUkNIXCJdID0gOTRdID0gXCJTRUFSQ0hcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiU0VDVElPTlwiXSA9IDk1XSA9IFwiU0VDVElPTlwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJTRUxFQ1RcIl0gPSA5Nl0gPSBcIlNFTEVDVFwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJTT1VSQ0VcIl0gPSA5N10gPSBcIlNPVVJDRVwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJTTUFMTFwiXSA9IDk4XSA9IFwiU01BTExcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiU1BBTlwiXSA9IDk5XSA9IFwiU1BBTlwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJTVFJJS0VcIl0gPSAxMDBdID0gXCJTVFJJS0VcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiU1RST05HXCJdID0gMTAxXSA9IFwiU1RST05HXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIlNUWUxFXCJdID0gMTAyXSA9IFwiU1RZTEVcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiU1VCXCJdID0gMTAzXSA9IFwiU1VCXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIlNVTU1BUllcIl0gPSAxMDRdID0gXCJTVU1NQVJZXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIlNVUFwiXSA9IDEwNV0gPSBcIlNVUFwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJUQUJMRVwiXSA9IDEwNl0gPSBcIlRBQkxFXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIlRCT0RZXCJdID0gMTA3XSA9IFwiVEJPRFlcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiVEVNUExBVEVcIl0gPSAxMDhdID0gXCJURU1QTEFURVwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJURVhUQVJFQVwiXSA9IDEwOV0gPSBcIlRFWFRBUkVBXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIlRGT09UXCJdID0gMTEwXSA9IFwiVEZPT1RcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiVERcIl0gPSAxMTFdID0gXCJURFwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJUSFwiXSA9IDExMl0gPSBcIlRIXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIlRIRUFEXCJdID0gMTEzXSA9IFwiVEhFQURcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiVElUTEVcIl0gPSAxMTRdID0gXCJUSVRMRVwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJUUlwiXSA9IDExNV0gPSBcIlRSXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIlRSQUNLXCJdID0gMTE2XSA9IFwiVFJBQ0tcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiVFRcIl0gPSAxMTddID0gXCJUVFwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJVXCJdID0gMTE4XSA9IFwiVVwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJVTFwiXSA9IDExOV0gPSBcIlVMXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIlNWR1wiXSA9IDEyMF0gPSBcIlNWR1wiO1xuICAgIFRBR19JRFtUQUdfSURbXCJWQVJcIl0gPSAxMjFdID0gXCJWQVJcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiV0JSXCJdID0gMTIyXSA9IFwiV0JSXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIlhNUFwiXSA9IDEyM10gPSBcIlhNUFwiO1xufSkoVEFHX0lEIHx8IChUQUdfSUQgPSB7fSkpO1xuY29uc3QgVEFHX05BTUVfVE9fSUQgPSBuZXcgTWFwKFtcbiAgICBbVEFHX05BTUVTLkEsIFRBR19JRC5BXSxcbiAgICBbVEFHX05BTUVTLkFERFJFU1MsIFRBR19JRC5BRERSRVNTXSxcbiAgICBbVEFHX05BTUVTLkFOTk9UQVRJT05fWE1MLCBUQUdfSUQuQU5OT1RBVElPTl9YTUxdLFxuICAgIFtUQUdfTkFNRVMuQVBQTEVULCBUQUdfSUQuQVBQTEVUXSxcbiAgICBbVEFHX05BTUVTLkFSRUEsIFRBR19JRC5BUkVBXSxcbiAgICBbVEFHX05BTUVTLkFSVElDTEUsIFRBR19JRC5BUlRJQ0xFXSxcbiAgICBbVEFHX05BTUVTLkFTSURFLCBUQUdfSUQuQVNJREVdLFxuICAgIFtUQUdfTkFNRVMuQiwgVEFHX0lELkJdLFxuICAgIFtUQUdfTkFNRVMuQkFTRSwgVEFHX0lELkJBU0VdLFxuICAgIFtUQUdfTkFNRVMuQkFTRUZPTlQsIFRBR19JRC5CQVNFRk9OVF0sXG4gICAgW1RBR19OQU1FUy5CR1NPVU5ELCBUQUdfSUQuQkdTT1VORF0sXG4gICAgW1RBR19OQU1FUy5CSUcsIFRBR19JRC5CSUddLFxuICAgIFtUQUdfTkFNRVMuQkxPQ0tRVU9URSwgVEFHX0lELkJMT0NLUVVPVEVdLFxuICAgIFtUQUdfTkFNRVMuQk9EWSwgVEFHX0lELkJPRFldLFxuICAgIFtUQUdfTkFNRVMuQlIsIFRBR19JRC5CUl0sXG4gICAgW1RBR19OQU1FUy5CVVRUT04sIFRBR19JRC5CVVRUT05dLFxuICAgIFtUQUdfTkFNRVMuQ0FQVElPTiwgVEFHX0lELkNBUFRJT05dLFxuICAgIFtUQUdfTkFNRVMuQ0VOVEVSLCBUQUdfSUQuQ0VOVEVSXSxcbiAgICBbVEFHX05BTUVTLkNPREUsIFRBR19JRC5DT0RFXSxcbiAgICBbVEFHX05BTUVTLkNPTCwgVEFHX0lELkNPTF0sXG4gICAgW1RBR19OQU1FUy5DT0xHUk9VUCwgVEFHX0lELkNPTEdST1VQXSxcbiAgICBbVEFHX05BTUVTLkRELCBUQUdfSUQuRERdLFxuICAgIFtUQUdfTkFNRVMuREVTQywgVEFHX0lELkRFU0NdLFxuICAgIFtUQUdfTkFNRVMuREVUQUlMUywgVEFHX0lELkRFVEFJTFNdLFxuICAgIFtUQUdfTkFNRVMuRElBTE9HLCBUQUdfSUQuRElBTE9HXSxcbiAgICBbVEFHX05BTUVTLkRJUiwgVEFHX0lELkRJUl0sXG4gICAgW1RBR19OQU1FUy5ESVYsIFRBR19JRC5ESVZdLFxuICAgIFtUQUdfTkFNRVMuREwsIFRBR19JRC5ETF0sXG4gICAgW1RBR19OQU1FUy5EVCwgVEFHX0lELkRUXSxcbiAgICBbVEFHX05BTUVTLkVNLCBUQUdfSUQuRU1dLFxuICAgIFtUQUdfTkFNRVMuRU1CRUQsIFRBR19JRC5FTUJFRF0sXG4gICAgW1RBR19OQU1FUy5GSUVMRFNFVCwgVEFHX0lELkZJRUxEU0VUXSxcbiAgICBbVEFHX05BTUVTLkZJR0NBUFRJT04sIFRBR19JRC5GSUdDQVBUSU9OXSxcbiAgICBbVEFHX05BTUVTLkZJR1VSRSwgVEFHX0lELkZJR1VSRV0sXG4gICAgW1RBR19OQU1FUy5GT05ULCBUQUdfSUQuRk9OVF0sXG4gICAgW1RBR19OQU1FUy5GT09URVIsIFRBR19JRC5GT09URVJdLFxuICAgIFtUQUdfTkFNRVMuRk9SRUlHTl9PQkpFQ1QsIFRBR19JRC5GT1JFSUdOX09CSkVDVF0sXG4gICAgW1RBR19OQU1FUy5GT1JNLCBUQUdfSUQuRk9STV0sXG4gICAgW1RBR19OQU1FUy5GUkFNRSwgVEFHX0lELkZSQU1FXSxcbiAgICBbVEFHX05BTUVTLkZSQU1FU0VULCBUQUdfSUQuRlJBTUVTRVRdLFxuICAgIFtUQUdfTkFNRVMuSDEsIFRBR19JRC5IMV0sXG4gICAgW1RBR19OQU1FUy5IMiwgVEFHX0lELkgyXSxcbiAgICBbVEFHX05BTUVTLkgzLCBUQUdfSUQuSDNdLFxuICAgIFtUQUdfTkFNRVMuSDQsIFRBR19JRC5INF0sXG4gICAgW1RBR19OQU1FUy5INSwgVEFHX0lELkg1XSxcbiAgICBbVEFHX05BTUVTLkg2LCBUQUdfSUQuSDZdLFxuICAgIFtUQUdfTkFNRVMuSEVBRCwgVEFHX0lELkhFQURdLFxuICAgIFtUQUdfTkFNRVMuSEVBREVSLCBUQUdfSUQuSEVBREVSXSxcbiAgICBbVEFHX05BTUVTLkhHUk9VUCwgVEFHX0lELkhHUk9VUF0sXG4gICAgW1RBR19OQU1FUy5IUiwgVEFHX0lELkhSXSxcbiAgICBbVEFHX05BTUVTLkhUTUwsIFRBR19JRC5IVE1MXSxcbiAgICBbVEFHX05BTUVTLkksIFRBR19JRC5JXSxcbiAgICBbVEFHX05BTUVTLklNRywgVEFHX0lELklNR10sXG4gICAgW1RBR19OQU1FUy5JTUFHRSwgVEFHX0lELklNQUdFXSxcbiAgICBbVEFHX05BTUVTLklOUFVULCBUQUdfSUQuSU5QVVRdLFxuICAgIFtUQUdfTkFNRVMuSUZSQU1FLCBUQUdfSUQuSUZSQU1FXSxcbiAgICBbVEFHX05BTUVTLktFWUdFTiwgVEFHX0lELktFWUdFTl0sXG4gICAgW1RBR19OQU1FUy5MQUJFTCwgVEFHX0lELkxBQkVMXSxcbiAgICBbVEFHX05BTUVTLkxJLCBUQUdfSUQuTEldLFxuICAgIFtUQUdfTkFNRVMuTElOSywgVEFHX0lELkxJTktdLFxuICAgIFtUQUdfTkFNRVMuTElTVElORywgVEFHX0lELkxJU1RJTkddLFxuICAgIFtUQUdfTkFNRVMuTUFJTiwgVEFHX0lELk1BSU5dLFxuICAgIFtUQUdfTkFNRVMuTUFMSUdOTUFSSywgVEFHX0lELk1BTElHTk1BUktdLFxuICAgIFtUQUdfTkFNRVMuTUFSUVVFRSwgVEFHX0lELk1BUlFVRUVdLFxuICAgIFtUQUdfTkFNRVMuTUFUSCwgVEFHX0lELk1BVEhdLFxuICAgIFtUQUdfTkFNRVMuTUVOVSwgVEFHX0lELk1FTlVdLFxuICAgIFtUQUdfTkFNRVMuTUVUQSwgVEFHX0lELk1FVEFdLFxuICAgIFtUQUdfTkFNRVMuTUdMWVBILCBUQUdfSUQuTUdMWVBIXSxcbiAgICBbVEFHX05BTUVTLk1JLCBUQUdfSUQuTUldLFxuICAgIFtUQUdfTkFNRVMuTU8sIFRBR19JRC5NT10sXG4gICAgW1RBR19OQU1FUy5NTiwgVEFHX0lELk1OXSxcbiAgICBbVEFHX05BTUVTLk1TLCBUQUdfSUQuTVNdLFxuICAgIFtUQUdfTkFNRVMuTVRFWFQsIFRBR19JRC5NVEVYVF0sXG4gICAgW1RBR19OQU1FUy5OQVYsIFRBR19JRC5OQVZdLFxuICAgIFtUQUdfTkFNRVMuTk9CUiwgVEFHX0lELk5PQlJdLFxuICAgIFtUQUdfTkFNRVMuTk9GUkFNRVMsIFRBR19JRC5OT0ZSQU1FU10sXG4gICAgW1RBR19OQU1FUy5OT0VNQkVELCBUQUdfSUQuTk9FTUJFRF0sXG4gICAgW1RBR19OQU1FUy5OT1NDUklQVCwgVEFHX0lELk5PU0NSSVBUXSxcbiAgICBbVEFHX05BTUVTLk9CSkVDVCwgVEFHX0lELk9CSkVDVF0sXG4gICAgW1RBR19OQU1FUy5PTCwgVEFHX0lELk9MXSxcbiAgICBbVEFHX05BTUVTLk9QVEdST1VQLCBUQUdfSUQuT1BUR1JPVVBdLFxuICAgIFtUQUdfTkFNRVMuT1BUSU9OLCBUQUdfSUQuT1BUSU9OXSxcbiAgICBbVEFHX05BTUVTLlAsIFRBR19JRC5QXSxcbiAgICBbVEFHX05BTUVTLlBBUkFNLCBUQUdfSUQuUEFSQU1dLFxuICAgIFtUQUdfTkFNRVMuUExBSU5URVhULCBUQUdfSUQuUExBSU5URVhUXSxcbiAgICBbVEFHX05BTUVTLlBSRSwgVEFHX0lELlBSRV0sXG4gICAgW1RBR19OQU1FUy5SQiwgVEFHX0lELlJCXSxcbiAgICBbVEFHX05BTUVTLlJQLCBUQUdfSUQuUlBdLFxuICAgIFtUQUdfTkFNRVMuUlQsIFRBR19JRC5SVF0sXG4gICAgW1RBR19OQU1FUy5SVEMsIFRBR19JRC5SVENdLFxuICAgIFtUQUdfTkFNRVMuUlVCWSwgVEFHX0lELlJVQlldLFxuICAgIFtUQUdfTkFNRVMuUywgVEFHX0lELlNdLFxuICAgIFtUQUdfTkFNRVMuU0NSSVBULCBUQUdfSUQuU0NSSVBUXSxcbiAgICBbVEFHX05BTUVTLlNFQVJDSCwgVEFHX0lELlNFQVJDSF0sXG4gICAgW1RBR19OQU1FUy5TRUNUSU9OLCBUQUdfSUQuU0VDVElPTl0sXG4gICAgW1RBR19OQU1FUy5TRUxFQ1QsIFRBR19JRC5TRUxFQ1RdLFxuICAgIFtUQUdfTkFNRVMuU09VUkNFLCBUQUdfSUQuU09VUkNFXSxcbiAgICBbVEFHX05BTUVTLlNNQUxMLCBUQUdfSUQuU01BTExdLFxuICAgIFtUQUdfTkFNRVMuU1BBTiwgVEFHX0lELlNQQU5dLFxuICAgIFtUQUdfTkFNRVMuU1RSSUtFLCBUQUdfSUQuU1RSSUtFXSxcbiAgICBbVEFHX05BTUVTLlNUUk9ORywgVEFHX0lELlNUUk9OR10sXG4gICAgW1RBR19OQU1FUy5TVFlMRSwgVEFHX0lELlNUWUxFXSxcbiAgICBbVEFHX05BTUVTLlNVQiwgVEFHX0lELlNVQl0sXG4gICAgW1RBR19OQU1FUy5TVU1NQVJZLCBUQUdfSUQuU1VNTUFSWV0sXG4gICAgW1RBR19OQU1FUy5TVVAsIFRBR19JRC5TVVBdLFxuICAgIFtUQUdfTkFNRVMuVEFCTEUsIFRBR19JRC5UQUJMRV0sXG4gICAgW1RBR19OQU1FUy5UQk9EWSwgVEFHX0lELlRCT0RZXSxcbiAgICBbVEFHX05BTUVTLlRFTVBMQVRFLCBUQUdfSUQuVEVNUExBVEVdLFxuICAgIFtUQUdfTkFNRVMuVEVYVEFSRUEsIFRBR19JRC5URVhUQVJFQV0sXG4gICAgW1RBR19OQU1FUy5URk9PVCwgVEFHX0lELlRGT09UXSxcbiAgICBbVEFHX05BTUVTLlRELCBUQUdfSUQuVERdLFxuICAgIFtUQUdfTkFNRVMuVEgsIFRBR19JRC5USF0sXG4gICAgW1RBR19OQU1FUy5USEVBRCwgVEFHX0lELlRIRUFEXSxcbiAgICBbVEFHX05BTUVTLlRJVExFLCBUQUdfSUQuVElUTEVdLFxuICAgIFtUQUdfTkFNRVMuVFIsIFRBR19JRC5UUl0sXG4gICAgW1RBR19OQU1FUy5UUkFDSywgVEFHX0lELlRSQUNLXSxcbiAgICBbVEFHX05BTUVTLlRULCBUQUdfSUQuVFRdLFxuICAgIFtUQUdfTkFNRVMuVSwgVEFHX0lELlVdLFxuICAgIFtUQUdfTkFNRVMuVUwsIFRBR19JRC5VTF0sXG4gICAgW1RBR19OQU1FUy5TVkcsIFRBR19JRC5TVkddLFxuICAgIFtUQUdfTkFNRVMuVkFSLCBUQUdfSUQuVkFSXSxcbiAgICBbVEFHX05BTUVTLldCUiwgVEFHX0lELldCUl0sXG4gICAgW1RBR19OQU1FUy5YTVAsIFRBR19JRC5YTVBdLFxuXSk7XG5leHBvcnQgZnVuY3Rpb24gZ2V0VGFnSUQodGFnTmFtZSkge1xuICAgIHZhciBfYTtcbiAgICByZXR1cm4gKF9hID0gVEFHX05BTUVfVE9fSUQuZ2V0KHRhZ05hbWUpKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiBUQUdfSUQuVU5LTk9XTjtcbn1cbmNvbnN0ICQgPSBUQUdfSUQ7XG5leHBvcnQgY29uc3QgU1BFQ0lBTF9FTEVNRU5UUyA9IHtcbiAgICBbTlMuSFRNTF06IG5ldyBTZXQoW1xuICAgICAgICAkLkFERFJFU1MsXG4gICAgICAgICQuQVBQTEVULFxuICAgICAgICAkLkFSRUEsXG4gICAgICAgICQuQVJUSUNMRSxcbiAgICAgICAgJC5BU0lERSxcbiAgICAgICAgJC5CQVNFLFxuICAgICAgICAkLkJBU0VGT05ULFxuICAgICAgICAkLkJHU09VTkQsXG4gICAgICAgICQuQkxPQ0tRVU9URSxcbiAgICAgICAgJC5CT0RZLFxuICAgICAgICAkLkJSLFxuICAgICAgICAkLkJVVFRPTixcbiAgICAgICAgJC5DQVBUSU9OLFxuICAgICAgICAkLkNFTlRFUixcbiAgICAgICAgJC5DT0wsXG4gICAgICAgICQuQ09MR1JPVVAsXG4gICAgICAgICQuREQsXG4gICAgICAgICQuREVUQUlMUyxcbiAgICAgICAgJC5ESVIsXG4gICAgICAgICQuRElWLFxuICAgICAgICAkLkRMLFxuICAgICAgICAkLkRULFxuICAgICAgICAkLkVNQkVELFxuICAgICAgICAkLkZJRUxEU0VULFxuICAgICAgICAkLkZJR0NBUFRJT04sXG4gICAgICAgICQuRklHVVJFLFxuICAgICAgICAkLkZPT1RFUixcbiAgICAgICAgJC5GT1JNLFxuICAgICAgICAkLkZSQU1FLFxuICAgICAgICAkLkZSQU1FU0VULFxuICAgICAgICAkLkgxLFxuICAgICAgICAkLkgyLFxuICAgICAgICAkLkgzLFxuICAgICAgICAkLkg0LFxuICAgICAgICAkLkg1LFxuICAgICAgICAkLkg2LFxuICAgICAgICAkLkhFQUQsXG4gICAgICAgICQuSEVBREVSLFxuICAgICAgICAkLkhHUk9VUCxcbiAgICAgICAgJC5IUixcbiAgICAgICAgJC5IVE1MLFxuICAgICAgICAkLklGUkFNRSxcbiAgICAgICAgJC5JTUcsXG4gICAgICAgICQuSU5QVVQsXG4gICAgICAgICQuTEksXG4gICAgICAgICQuTElOSyxcbiAgICAgICAgJC5MSVNUSU5HLFxuICAgICAgICAkLk1BSU4sXG4gICAgICAgICQuTUFSUVVFRSxcbiAgICAgICAgJC5NRU5VLFxuICAgICAgICAkLk1FVEEsXG4gICAgICAgICQuTkFWLFxuICAgICAgICAkLk5PRU1CRUQsXG4gICAgICAgICQuTk9GUkFNRVMsXG4gICAgICAgICQuTk9TQ1JJUFQsXG4gICAgICAgICQuT0JKRUNULFxuICAgICAgICAkLk9MLFxuICAgICAgICAkLlAsXG4gICAgICAgICQuUEFSQU0sXG4gICAgICAgICQuUExBSU5URVhULFxuICAgICAgICAkLlBSRSxcbiAgICAgICAgJC5TQ1JJUFQsXG4gICAgICAgICQuU0VDVElPTixcbiAgICAgICAgJC5TRUxFQ1QsXG4gICAgICAgICQuU09VUkNFLFxuICAgICAgICAkLlNUWUxFLFxuICAgICAgICAkLlNVTU1BUlksXG4gICAgICAgICQuVEFCTEUsXG4gICAgICAgICQuVEJPRFksXG4gICAgICAgICQuVEQsXG4gICAgICAgICQuVEVNUExBVEUsXG4gICAgICAgICQuVEVYVEFSRUEsXG4gICAgICAgICQuVEZPT1QsXG4gICAgICAgICQuVEgsXG4gICAgICAgICQuVEhFQUQsXG4gICAgICAgICQuVElUTEUsXG4gICAgICAgICQuVFIsXG4gICAgICAgICQuVFJBQ0ssXG4gICAgICAgICQuVUwsXG4gICAgICAgICQuV0JSLFxuICAgICAgICAkLlhNUCxcbiAgICBdKSxcbiAgICBbTlMuTUFUSE1MXTogbmV3IFNldChbJC5NSSwgJC5NTywgJC5NTiwgJC5NUywgJC5NVEVYVCwgJC5BTk5PVEFUSU9OX1hNTF0pLFxuICAgIFtOUy5TVkddOiBuZXcgU2V0KFskLlRJVExFLCAkLkZPUkVJR05fT0JKRUNULCAkLkRFU0NdKSxcbiAgICBbTlMuWExJTktdOiBuZXcgU2V0KCksXG4gICAgW05TLlhNTF06IG5ldyBTZXQoKSxcbiAgICBbTlMuWE1MTlNdOiBuZXcgU2V0KCksXG59O1xuZXhwb3J0IGNvbnN0IE5VTUJFUkVEX0hFQURFUlMgPSBuZXcgU2V0KFskLkgxLCAkLkgyLCAkLkgzLCAkLkg0LCAkLkg1LCAkLkg2XSk7XG5jb25zdCBVTkVTQ0FQRURfVEVYVCA9IG5ldyBTZXQoW1xuICAgIFRBR19OQU1FUy5TVFlMRSxcbiAgICBUQUdfTkFNRVMuU0NSSVBULFxuICAgIFRBR19OQU1FUy5YTVAsXG4gICAgVEFHX05BTUVTLklGUkFNRSxcbiAgICBUQUdfTkFNRVMuTk9FTUJFRCxcbiAgICBUQUdfTkFNRVMuTk9GUkFNRVMsXG4gICAgVEFHX05BTUVTLlBMQUlOVEVYVCxcbl0pO1xuZXhwb3J0IGZ1bmN0aW9uIGhhc1VuZXNjYXBlZFRleHQodG4sIHNjcmlwdGluZ0VuYWJsZWQpIHtcbiAgICByZXR1cm4gVU5FU0NBUEVEX1RFWFQuaGFzKHRuKSB8fCAoc2NyaXB0aW5nRW5hYmxlZCAmJiB0biA9PT0gVEFHX05BTUVTLk5PU0NSSVBUKTtcbn1cbiIsICJpbXBvcnQgeyBQcmVwcm9jZXNzb3IgfSBmcm9tICcuL3ByZXByb2Nlc3Nvci5qcyc7XG5pbXBvcnQgeyBDT0RFX1BPSU5UUyBhcyAkLCBTRVFVRU5DRVMgYXMgJCQsIFJFUExBQ0VNRU5UX0NIQVJBQ1RFUiwgaXNTdXJyb2dhdGUsIGlzVW5kZWZpbmVkQ29kZVBvaW50LCBpc0NvbnRyb2xDb2RlUG9pbnQsIH0gZnJvbSAnLi4vY29tbW9uL3VuaWNvZGUuanMnO1xuaW1wb3J0IHsgVG9rZW5UeXBlLCBnZXRUb2tlbkF0dHIsIH0gZnJvbSAnLi4vY29tbW9uL3Rva2VuLmpzJztcbmltcG9ydCB7IGh0bWxEZWNvZGVUcmVlLCBFbnRpdHlEZWNvZGVyLCBEZWNvZGluZ01vZGUgfSBmcm9tICdlbnRpdGllcy9saWIvZGVjb2RlLmpzJztcbmltcG9ydCB7IEVSUiB9IGZyb20gJy4uL2NvbW1vbi9lcnJvci1jb2Rlcy5qcyc7XG5pbXBvcnQgeyBUQUdfSUQsIGdldFRhZ0lEIH0gZnJvbSAnLi4vY29tbW9uL2h0bWwuanMnO1xuLy9TdGF0ZXNcbnZhciBTdGF0ZTtcbihmdW5jdGlvbiAoU3RhdGUpIHtcbiAgICBTdGF0ZVtTdGF0ZVtcIkRBVEFcIl0gPSAwXSA9IFwiREFUQVwiO1xuICAgIFN0YXRlW1N0YXRlW1wiUkNEQVRBXCJdID0gMV0gPSBcIlJDREFUQVwiO1xuICAgIFN0YXRlW1N0YXRlW1wiUkFXVEVYVFwiXSA9IDJdID0gXCJSQVdURVhUXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJTQ1JJUFRfREFUQVwiXSA9IDNdID0gXCJTQ1JJUFRfREFUQVwiO1xuICAgIFN0YXRlW1N0YXRlW1wiUExBSU5URVhUXCJdID0gNF0gPSBcIlBMQUlOVEVYVFwiO1xuICAgIFN0YXRlW1N0YXRlW1wiVEFHX09QRU5cIl0gPSA1XSA9IFwiVEFHX09QRU5cIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIkVORF9UQUdfT1BFTlwiXSA9IDZdID0gXCJFTkRfVEFHX09QRU5cIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIlRBR19OQU1FXCJdID0gN10gPSBcIlRBR19OQU1FXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJSQ0RBVEFfTEVTU19USEFOX1NJR05cIl0gPSA4XSA9IFwiUkNEQVRBX0xFU1NfVEhBTl9TSUdOXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJSQ0RBVEFfRU5EX1RBR19PUEVOXCJdID0gOV0gPSBcIlJDREFUQV9FTkRfVEFHX09QRU5cIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIlJDREFUQV9FTkRfVEFHX05BTUVcIl0gPSAxMF0gPSBcIlJDREFUQV9FTkRfVEFHX05BTUVcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIlJBV1RFWFRfTEVTU19USEFOX1NJR05cIl0gPSAxMV0gPSBcIlJBV1RFWFRfTEVTU19USEFOX1NJR05cIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIlJBV1RFWFRfRU5EX1RBR19PUEVOXCJdID0gMTJdID0gXCJSQVdURVhUX0VORF9UQUdfT1BFTlwiO1xuICAgIFN0YXRlW1N0YXRlW1wiUkFXVEVYVF9FTkRfVEFHX05BTUVcIl0gPSAxM10gPSBcIlJBV1RFWFRfRU5EX1RBR19OQU1FXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJTQ1JJUFRfREFUQV9MRVNTX1RIQU5fU0lHTlwiXSA9IDE0XSA9IFwiU0NSSVBUX0RBVEFfTEVTU19USEFOX1NJR05cIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIlNDUklQVF9EQVRBX0VORF9UQUdfT1BFTlwiXSA9IDE1XSA9IFwiU0NSSVBUX0RBVEFfRU5EX1RBR19PUEVOXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJTQ1JJUFRfREFUQV9FTkRfVEFHX05BTUVcIl0gPSAxNl0gPSBcIlNDUklQVF9EQVRBX0VORF9UQUdfTkFNRVwiO1xuICAgIFN0YXRlW1N0YXRlW1wiU0NSSVBUX0RBVEFfRVNDQVBFX1NUQVJUXCJdID0gMTddID0gXCJTQ1JJUFRfREFUQV9FU0NBUEVfU1RBUlRcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIlNDUklQVF9EQVRBX0VTQ0FQRV9TVEFSVF9EQVNIXCJdID0gMThdID0gXCJTQ1JJUFRfREFUQV9FU0NBUEVfU1RBUlRfREFTSFwiO1xuICAgIFN0YXRlW1N0YXRlW1wiU0NSSVBUX0RBVEFfRVNDQVBFRFwiXSA9IDE5XSA9IFwiU0NSSVBUX0RBVEFfRVNDQVBFRFwiO1xuICAgIFN0YXRlW1N0YXRlW1wiU0NSSVBUX0RBVEFfRVNDQVBFRF9EQVNIXCJdID0gMjBdID0gXCJTQ1JJUFRfREFUQV9FU0NBUEVEX0RBU0hcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIlNDUklQVF9EQVRBX0VTQ0FQRURfREFTSF9EQVNIXCJdID0gMjFdID0gXCJTQ1JJUFRfREFUQV9FU0NBUEVEX0RBU0hfREFTSFwiO1xuICAgIFN0YXRlW1N0YXRlW1wiU0NSSVBUX0RBVEFfRVNDQVBFRF9MRVNTX1RIQU5fU0lHTlwiXSA9IDIyXSA9IFwiU0NSSVBUX0RBVEFfRVNDQVBFRF9MRVNTX1RIQU5fU0lHTlwiO1xuICAgIFN0YXRlW1N0YXRlW1wiU0NSSVBUX0RBVEFfRVNDQVBFRF9FTkRfVEFHX09QRU5cIl0gPSAyM10gPSBcIlNDUklQVF9EQVRBX0VTQ0FQRURfRU5EX1RBR19PUEVOXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJTQ1JJUFRfREFUQV9FU0NBUEVEX0VORF9UQUdfTkFNRVwiXSA9IDI0XSA9IFwiU0NSSVBUX0RBVEFfRVNDQVBFRF9FTkRfVEFHX05BTUVcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIlNDUklQVF9EQVRBX0RPVUJMRV9FU0NBUEVfU1RBUlRcIl0gPSAyNV0gPSBcIlNDUklQVF9EQVRBX0RPVUJMRV9FU0NBUEVfU1RBUlRcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIlNDUklQVF9EQVRBX0RPVUJMRV9FU0NBUEVEXCJdID0gMjZdID0gXCJTQ1JJUFRfREFUQV9ET1VCTEVfRVNDQVBFRFwiO1xuICAgIFN0YXRlW1N0YXRlW1wiU0NSSVBUX0RBVEFfRE9VQkxFX0VTQ0FQRURfREFTSFwiXSA9IDI3XSA9IFwiU0NSSVBUX0RBVEFfRE9VQkxFX0VTQ0FQRURfREFTSFwiO1xuICAgIFN0YXRlW1N0YXRlW1wiU0NSSVBUX0RBVEFfRE9VQkxFX0VTQ0FQRURfREFTSF9EQVNIXCJdID0gMjhdID0gXCJTQ1JJUFRfREFUQV9ET1VCTEVfRVNDQVBFRF9EQVNIX0RBU0hcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIlNDUklQVF9EQVRBX0RPVUJMRV9FU0NBUEVEX0xFU1NfVEhBTl9TSUdOXCJdID0gMjldID0gXCJTQ1JJUFRfREFUQV9ET1VCTEVfRVNDQVBFRF9MRVNTX1RIQU5fU0lHTlwiO1xuICAgIFN0YXRlW1N0YXRlW1wiU0NSSVBUX0RBVEFfRE9VQkxFX0VTQ0FQRV9FTkRcIl0gPSAzMF0gPSBcIlNDUklQVF9EQVRBX0RPVUJMRV9FU0NBUEVfRU5EXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJCRUZPUkVfQVRUUklCVVRFX05BTUVcIl0gPSAzMV0gPSBcIkJFRk9SRV9BVFRSSUJVVEVfTkFNRVwiO1xuICAgIFN0YXRlW1N0YXRlW1wiQVRUUklCVVRFX05BTUVcIl0gPSAzMl0gPSBcIkFUVFJJQlVURV9OQU1FXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJBRlRFUl9BVFRSSUJVVEVfTkFNRVwiXSA9IDMzXSA9IFwiQUZURVJfQVRUUklCVVRFX05BTUVcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIkJFRk9SRV9BVFRSSUJVVEVfVkFMVUVcIl0gPSAzNF0gPSBcIkJFRk9SRV9BVFRSSUJVVEVfVkFMVUVcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIkFUVFJJQlVURV9WQUxVRV9ET1VCTEVfUVVPVEVEXCJdID0gMzVdID0gXCJBVFRSSUJVVEVfVkFMVUVfRE9VQkxFX1FVT1RFRFwiO1xuICAgIFN0YXRlW1N0YXRlW1wiQVRUUklCVVRFX1ZBTFVFX1NJTkdMRV9RVU9URURcIl0gPSAzNl0gPSBcIkFUVFJJQlVURV9WQUxVRV9TSU5HTEVfUVVPVEVEXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJBVFRSSUJVVEVfVkFMVUVfVU5RVU9URURcIl0gPSAzN10gPSBcIkFUVFJJQlVURV9WQUxVRV9VTlFVT1RFRFwiO1xuICAgIFN0YXRlW1N0YXRlW1wiQUZURVJfQVRUUklCVVRFX1ZBTFVFX1FVT1RFRFwiXSA9IDM4XSA9IFwiQUZURVJfQVRUUklCVVRFX1ZBTFVFX1FVT1RFRFwiO1xuICAgIFN0YXRlW1N0YXRlW1wiU0VMRl9DTE9TSU5HX1NUQVJUX1RBR1wiXSA9IDM5XSA9IFwiU0VMRl9DTE9TSU5HX1NUQVJUX1RBR1wiO1xuICAgIFN0YXRlW1N0YXRlW1wiQk9HVVNfQ09NTUVOVFwiXSA9IDQwXSA9IFwiQk9HVVNfQ09NTUVOVFwiO1xuICAgIFN0YXRlW1N0YXRlW1wiTUFSS1VQX0RFQ0xBUkFUSU9OX09QRU5cIl0gPSA0MV0gPSBcIk1BUktVUF9ERUNMQVJBVElPTl9PUEVOXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJDT01NRU5UX1NUQVJUXCJdID0gNDJdID0gXCJDT01NRU5UX1NUQVJUXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJDT01NRU5UX1NUQVJUX0RBU0hcIl0gPSA0M10gPSBcIkNPTU1FTlRfU1RBUlRfREFTSFwiO1xuICAgIFN0YXRlW1N0YXRlW1wiQ09NTUVOVFwiXSA9IDQ0XSA9IFwiQ09NTUVOVFwiO1xuICAgIFN0YXRlW1N0YXRlW1wiQ09NTUVOVF9MRVNTX1RIQU5fU0lHTlwiXSA9IDQ1XSA9IFwiQ09NTUVOVF9MRVNTX1RIQU5fU0lHTlwiO1xuICAgIFN0YXRlW1N0YXRlW1wiQ09NTUVOVF9MRVNTX1RIQU5fU0lHTl9CQU5HXCJdID0gNDZdID0gXCJDT01NRU5UX0xFU1NfVEhBTl9TSUdOX0JBTkdcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIkNPTU1FTlRfTEVTU19USEFOX1NJR05fQkFOR19EQVNIXCJdID0gNDddID0gXCJDT01NRU5UX0xFU1NfVEhBTl9TSUdOX0JBTkdfREFTSFwiO1xuICAgIFN0YXRlW1N0YXRlW1wiQ09NTUVOVF9MRVNTX1RIQU5fU0lHTl9CQU5HX0RBU0hfREFTSFwiXSA9IDQ4XSA9IFwiQ09NTUVOVF9MRVNTX1RIQU5fU0lHTl9CQU5HX0RBU0hfREFTSFwiO1xuICAgIFN0YXRlW1N0YXRlW1wiQ09NTUVOVF9FTkRfREFTSFwiXSA9IDQ5XSA9IFwiQ09NTUVOVF9FTkRfREFTSFwiO1xuICAgIFN0YXRlW1N0YXRlW1wiQ09NTUVOVF9FTkRcIl0gPSA1MF0gPSBcIkNPTU1FTlRfRU5EXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJDT01NRU5UX0VORF9CQU5HXCJdID0gNTFdID0gXCJDT01NRU5UX0VORF9CQU5HXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJET0NUWVBFXCJdID0gNTJdID0gXCJET0NUWVBFXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJCRUZPUkVfRE9DVFlQRV9OQU1FXCJdID0gNTNdID0gXCJCRUZPUkVfRE9DVFlQRV9OQU1FXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJET0NUWVBFX05BTUVcIl0gPSA1NF0gPSBcIkRPQ1RZUEVfTkFNRVwiO1xuICAgIFN0YXRlW1N0YXRlW1wiQUZURVJfRE9DVFlQRV9OQU1FXCJdID0gNTVdID0gXCJBRlRFUl9ET0NUWVBFX05BTUVcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIkFGVEVSX0RPQ1RZUEVfUFVCTElDX0tFWVdPUkRcIl0gPSA1Nl0gPSBcIkFGVEVSX0RPQ1RZUEVfUFVCTElDX0tFWVdPUkRcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIkJFRk9SRV9ET0NUWVBFX1BVQkxJQ19JREVOVElGSUVSXCJdID0gNTddID0gXCJCRUZPUkVfRE9DVFlQRV9QVUJMSUNfSURFTlRJRklFUlwiO1xuICAgIFN0YXRlW1N0YXRlW1wiRE9DVFlQRV9QVUJMSUNfSURFTlRJRklFUl9ET1VCTEVfUVVPVEVEXCJdID0gNThdID0gXCJET0NUWVBFX1BVQkxJQ19JREVOVElGSUVSX0RPVUJMRV9RVU9URURcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIkRPQ1RZUEVfUFVCTElDX0lERU5USUZJRVJfU0lOR0xFX1FVT1RFRFwiXSA9IDU5XSA9IFwiRE9DVFlQRV9QVUJMSUNfSURFTlRJRklFUl9TSU5HTEVfUVVPVEVEXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJBRlRFUl9ET0NUWVBFX1BVQkxJQ19JREVOVElGSUVSXCJdID0gNjBdID0gXCJBRlRFUl9ET0NUWVBFX1BVQkxJQ19JREVOVElGSUVSXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJCRVRXRUVOX0RPQ1RZUEVfUFVCTElDX0FORF9TWVNURU1fSURFTlRJRklFUlNcIl0gPSA2MV0gPSBcIkJFVFdFRU5fRE9DVFlQRV9QVUJMSUNfQU5EX1NZU1RFTV9JREVOVElGSUVSU1wiO1xuICAgIFN0YXRlW1N0YXRlW1wiQUZURVJfRE9DVFlQRV9TWVNURU1fS0VZV09SRFwiXSA9IDYyXSA9IFwiQUZURVJfRE9DVFlQRV9TWVNURU1fS0VZV09SRFwiO1xuICAgIFN0YXRlW1N0YXRlW1wiQkVGT1JFX0RPQ1RZUEVfU1lTVEVNX0lERU5USUZJRVJcIl0gPSA2M10gPSBcIkJFRk9SRV9ET0NUWVBFX1NZU1RFTV9JREVOVElGSUVSXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJET0NUWVBFX1NZU1RFTV9JREVOVElGSUVSX0RPVUJMRV9RVU9URURcIl0gPSA2NF0gPSBcIkRPQ1RZUEVfU1lTVEVNX0lERU5USUZJRVJfRE9VQkxFX1FVT1RFRFwiO1xuICAgIFN0YXRlW1N0YXRlW1wiRE9DVFlQRV9TWVNURU1fSURFTlRJRklFUl9TSU5HTEVfUVVPVEVEXCJdID0gNjVdID0gXCJET0NUWVBFX1NZU1RFTV9JREVOVElGSUVSX1NJTkdMRV9RVU9URURcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIkFGVEVSX0RPQ1RZUEVfU1lTVEVNX0lERU5USUZJRVJcIl0gPSA2Nl0gPSBcIkFGVEVSX0RPQ1RZUEVfU1lTVEVNX0lERU5USUZJRVJcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIkJPR1VTX0RPQ1RZUEVcIl0gPSA2N10gPSBcIkJPR1VTX0RPQ1RZUEVcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIkNEQVRBX1NFQ1RJT05cIl0gPSA2OF0gPSBcIkNEQVRBX1NFQ1RJT05cIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIkNEQVRBX1NFQ1RJT05fQlJBQ0tFVFwiXSA9IDY5XSA9IFwiQ0RBVEFfU0VDVElPTl9CUkFDS0VUXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJDREFUQV9TRUNUSU9OX0VORFwiXSA9IDcwXSA9IFwiQ0RBVEFfU0VDVElPTl9FTkRcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIkNIQVJBQ1RFUl9SRUZFUkVOQ0VcIl0gPSA3MV0gPSBcIkNIQVJBQ1RFUl9SRUZFUkVOQ0VcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIkFNQklHVU9VU19BTVBFUlNBTkRcIl0gPSA3Ml0gPSBcIkFNQklHVU9VU19BTVBFUlNBTkRcIjtcbn0pKFN0YXRlIHx8IChTdGF0ZSA9IHt9KSk7XG4vL1Rva2VuaXplciBpbml0aWFsIHN0YXRlcyBmb3IgZGlmZmVyZW50IG1vZGVzXG5leHBvcnQgY29uc3QgVG9rZW5pemVyTW9kZSA9IHtcbiAgICBEQVRBOiBTdGF0ZS5EQVRBLFxuICAgIFJDREFUQTogU3RhdGUuUkNEQVRBLFxuICAgIFJBV1RFWFQ6IFN0YXRlLlJBV1RFWFQsXG4gICAgU0NSSVBUX0RBVEE6IFN0YXRlLlNDUklQVF9EQVRBLFxuICAgIFBMQUlOVEVYVDogU3RhdGUuUExBSU5URVhULFxuICAgIENEQVRBX1NFQ1RJT046IFN0YXRlLkNEQVRBX1NFQ1RJT04sXG59O1xuLy9VdGlsc1xuLy9PUFRJTUlaQVRJT046IHRoZXNlIHV0aWxpdHkgZnVuY3Rpb25zIHNob3VsZCBub3QgYmUgbW92ZWQgb3V0IG9mIHRoaXMgbW9kdWxlLiBWOCBDcmFua3NoYWZ0IHdpbGwgbm90IGlubGluZVxuLy90aGlzIGZ1bmN0aW9ucyBpZiB0aGV5IHdpbGwgYmUgc2l0dWF0ZWQgaW4gYW5vdGhlciBtb2R1bGUgZHVlIHRvIGNvbnRleHQgc3dpdGNoLlxuLy9BbHdheXMgcGVyZm9ybSBpbmxpbmluZyBjaGVjayBiZWZvcmUgbW9kaWZ5aW5nIHRoaXMgZnVuY3Rpb25zICgnbm9kZSAtLXRyYWNlLWlubGluaW5nJykuXG5mdW5jdGlvbiBpc0FzY2lpRGlnaXQoY3ApIHtcbiAgICByZXR1cm4gY3AgPj0gJC5ESUdJVF8wICYmIGNwIDw9ICQuRElHSVRfOTtcbn1cbmZ1bmN0aW9uIGlzQXNjaWlVcHBlcihjcCkge1xuICAgIHJldHVybiBjcCA+PSAkLkxBVElOX0NBUElUQUxfQSAmJiBjcCA8PSAkLkxBVElOX0NBUElUQUxfWjtcbn1cbmZ1bmN0aW9uIGlzQXNjaWlMb3dlcihjcCkge1xuICAgIHJldHVybiBjcCA+PSAkLkxBVElOX1NNQUxMX0EgJiYgY3AgPD0gJC5MQVRJTl9TTUFMTF9aO1xufVxuZnVuY3Rpb24gaXNBc2NpaUxldHRlcihjcCkge1xuICAgIHJldHVybiBpc0FzY2lpTG93ZXIoY3ApIHx8IGlzQXNjaWlVcHBlcihjcCk7XG59XG5mdW5jdGlvbiBpc0FzY2lpQWxwaGFOdW1lcmljKGNwKSB7XG4gICAgcmV0dXJuIGlzQXNjaWlMZXR0ZXIoY3ApIHx8IGlzQXNjaWlEaWdpdChjcCk7XG59XG5mdW5jdGlvbiB0b0FzY2lpTG93ZXIoY3ApIHtcbiAgICByZXR1cm4gY3AgKyAzMjtcbn1cbmZ1bmN0aW9uIGlzV2hpdGVzcGFjZShjcCkge1xuICAgIHJldHVybiBjcCA9PT0gJC5TUEFDRSB8fCBjcCA9PT0gJC5MSU5FX0ZFRUQgfHwgY3AgPT09ICQuVEFCVUxBVElPTiB8fCBjcCA9PT0gJC5GT1JNX0ZFRUQ7XG59XG5mdW5jdGlvbiBpc1NjcmlwdERhdGFEb3VibGVFc2NhcGVTZXF1ZW5jZUVuZChjcCkge1xuICAgIHJldHVybiBpc1doaXRlc3BhY2UoY3ApIHx8IGNwID09PSAkLlNPTElEVVMgfHwgY3AgPT09ICQuR1JFQVRFUl9USEFOX1NJR047XG59XG5mdW5jdGlvbiBnZXRFcnJvckZvck51bWVyaWNDaGFyYWN0ZXJSZWZlcmVuY2UoY29kZSkge1xuICAgIGlmIChjb2RlID09PSAkLk5VTEwpIHtcbiAgICAgICAgcmV0dXJuIEVSUi5udWxsQ2hhcmFjdGVyUmVmZXJlbmNlO1xuICAgIH1cbiAgICBlbHNlIGlmIChjb2RlID4gMTExNDExMSkge1xuICAgICAgICByZXR1cm4gRVJSLmNoYXJhY3RlclJlZmVyZW5jZU91dHNpZGVVbmljb2RlUmFuZ2U7XG4gICAgfVxuICAgIGVsc2UgaWYgKGlzU3Vycm9nYXRlKGNvZGUpKSB7XG4gICAgICAgIHJldHVybiBFUlIuc3Vycm9nYXRlQ2hhcmFjdGVyUmVmZXJlbmNlO1xuICAgIH1cbiAgICBlbHNlIGlmIChpc1VuZGVmaW5lZENvZGVQb2ludChjb2RlKSkge1xuICAgICAgICByZXR1cm4gRVJSLm5vbmNoYXJhY3RlckNoYXJhY3RlclJlZmVyZW5jZTtcbiAgICB9XG4gICAgZWxzZSBpZiAoaXNDb250cm9sQ29kZVBvaW50KGNvZGUpIHx8IGNvZGUgPT09ICQuQ0FSUklBR0VfUkVUVVJOKSB7XG4gICAgICAgIHJldHVybiBFUlIuY29udHJvbENoYXJhY3RlclJlZmVyZW5jZTtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG59XG4vL1Rva2VuaXplclxuZXhwb3J0IGNsYXNzIFRva2VuaXplciB7XG4gICAgY29uc3RydWN0b3Iob3B0aW9ucywgaGFuZGxlcikge1xuICAgICAgICB0aGlzLm9wdGlvbnMgPSBvcHRpb25zO1xuICAgICAgICB0aGlzLmhhbmRsZXIgPSBoYW5kbGVyO1xuICAgICAgICB0aGlzLnBhdXNlZCA9IGZhbHNlO1xuICAgICAgICAvKiogRW5zdXJlcyB0aGF0IHRoZSBwYXJzaW5nIGxvb3AgaXNuJ3QgcnVuIG11bHRpcGxlIHRpbWVzIGF0IG9uY2UuICovXG4gICAgICAgIHRoaXMuaW5Mb29wID0gZmFsc2U7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBJbmRpY2F0ZXMgdGhhdCB0aGUgY3VycmVudCBhZGp1c3RlZCBub2RlIGV4aXN0cywgaXMgbm90IGFuIGVsZW1lbnQgaW4gdGhlIEhUTUwgbmFtZXNwYWNlLFxuICAgICAgICAgKiBhbmQgdGhhdCBpdCBpcyBub3QgYW4gaW50ZWdyYXRpb24gcG9pbnQgZm9yIGVpdGhlciBNYXRoTUwgb3IgSFRNTC5cbiAgICAgICAgICpcbiAgICAgICAgICogQHNlZSB7QGxpbmsgaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2UvcGFyc2luZy5odG1sI3RyZWUtY29uc3RydWN0aW9ufVxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5pbkZvcmVpZ25Ob2RlID0gZmFsc2U7XG4gICAgICAgIHRoaXMubGFzdFN0YXJ0VGFnTmFtZSA9ICcnO1xuICAgICAgICB0aGlzLmFjdGl2ZSA9IGZhbHNlO1xuICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuREFUQTtcbiAgICAgICAgdGhpcy5yZXR1cm5TdGF0ZSA9IFN0YXRlLkRBVEE7XG4gICAgICAgIHRoaXMuZW50aXR5U3RhcnRQb3MgPSAwO1xuICAgICAgICB0aGlzLmNvbnN1bWVkQWZ0ZXJTbmFwc2hvdCA9IC0xO1xuICAgICAgICB0aGlzLmN1cnJlbnRDaGFyYWN0ZXJUb2tlbiA9IG51bGw7XG4gICAgICAgIHRoaXMuY3VycmVudFRva2VuID0gbnVsbDtcbiAgICAgICAgdGhpcy5jdXJyZW50QXR0ciA9IHsgbmFtZTogJycsIHZhbHVlOiAnJyB9O1xuICAgICAgICB0aGlzLnByZXByb2Nlc3NvciA9IG5ldyBQcmVwcm9jZXNzb3IoaGFuZGxlcik7XG4gICAgICAgIHRoaXMuY3VycmVudExvY2F0aW9uID0gdGhpcy5nZXRDdXJyZW50TG9jYXRpb24oLTEpO1xuICAgICAgICB0aGlzLmVudGl0eURlY29kZXIgPSBuZXcgRW50aXR5RGVjb2RlcihodG1sRGVjb2RlVHJlZSwgKGNwLCBjb25zdW1lZCkgPT4ge1xuICAgICAgICAgICAgLy8gTm90ZTogU2V0IGBwb3NgIF9iZWZvcmVfIGZsdXNoaW5nLCBhcyBmbHVzaGluZyBtaWdodCBkcm9wXG4gICAgICAgICAgICAvLyB0aGUgY3VycmVudCBjaHVuayBhbmQgaW52YWxpZGF0ZSBgZW50aXR5U3RhcnRQb3NgLlxuICAgICAgICAgICAgdGhpcy5wcmVwcm9jZXNzb3IucG9zID0gdGhpcy5lbnRpdHlTdGFydFBvcyArIGNvbnN1bWVkIC0gMTtcbiAgICAgICAgICAgIHRoaXMuX2ZsdXNoQ29kZVBvaW50Q29uc3VtZWRBc0NoYXJhY3RlclJlZmVyZW5jZShjcCk7XG4gICAgICAgIH0sIGhhbmRsZXIub25QYXJzZUVycm9yXG4gICAgICAgICAgICA/IHtcbiAgICAgICAgICAgICAgICBtaXNzaW5nU2VtaWNvbG9uQWZ0ZXJDaGFyYWN0ZXJSZWZlcmVuY2U6ICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5taXNzaW5nU2VtaWNvbG9uQWZ0ZXJDaGFyYWN0ZXJSZWZlcmVuY2UsIDEpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgYWJzZW5jZU9mRGlnaXRzSW5OdW1lcmljQ2hhcmFjdGVyUmVmZXJlbmNlOiAoY29uc3VtZWQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5hYnNlbmNlT2ZEaWdpdHNJbk51bWVyaWNDaGFyYWN0ZXJSZWZlcmVuY2UsIHRoaXMuZW50aXR5U3RhcnRQb3MgLSB0aGlzLnByZXByb2Nlc3Nvci5wb3MgKyBjb25zdW1lZCk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB2YWxpZGF0ZU51bWVyaWNDaGFyYWN0ZXJSZWZlcmVuY2U6IChjb2RlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGVycm9yID0gZ2V0RXJyb3JGb3JOdW1lcmljQ2hhcmFjdGVyUmVmZXJlbmNlKGNvZGUpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoZXJyb3IpXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9lcnIoZXJyb3IsIDEpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICA6IHVuZGVmaW5lZCk7XG4gICAgfVxuICAgIC8vRXJyb3JzXG4gICAgX2Vycihjb2RlLCBjcE9mZnNldCA9IDApIHtcbiAgICAgICAgdmFyIF9hLCBfYjtcbiAgICAgICAgKF9iID0gKF9hID0gdGhpcy5oYW5kbGVyKS5vblBhcnNlRXJyb3IpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5jYWxsKF9hLCB0aGlzLnByZXByb2Nlc3Nvci5nZXRFcnJvcihjb2RlLCBjcE9mZnNldCkpO1xuICAgIH1cbiAgICAvLyBOT1RFOiBgb2Zmc2V0YCBtYXkgbmV2ZXIgcnVuIGFjcm9zcyBsaW5lIGJvdW5kYXJpZXMuXG4gICAgZ2V0Q3VycmVudExvY2F0aW9uKG9mZnNldCkge1xuICAgICAgICBpZiAoIXRoaXMub3B0aW9ucy5zb3VyY2VDb2RlTG9jYXRpb25JbmZvKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgc3RhcnRMaW5lOiB0aGlzLnByZXByb2Nlc3Nvci5saW5lLFxuICAgICAgICAgICAgc3RhcnRDb2w6IHRoaXMucHJlcHJvY2Vzc29yLmNvbCAtIG9mZnNldCxcbiAgICAgICAgICAgIHN0YXJ0T2Zmc2V0OiB0aGlzLnByZXByb2Nlc3Nvci5vZmZzZXQgLSBvZmZzZXQsXG4gICAgICAgICAgICBlbmRMaW5lOiAtMSxcbiAgICAgICAgICAgIGVuZENvbDogLTEsXG4gICAgICAgICAgICBlbmRPZmZzZXQ6IC0xLFxuICAgICAgICB9O1xuICAgIH1cbiAgICBfcnVuUGFyc2luZ0xvb3AoKSB7XG4gICAgICAgIGlmICh0aGlzLmluTG9vcClcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgdGhpcy5pbkxvb3AgPSB0cnVlO1xuICAgICAgICB3aGlsZSAodGhpcy5hY3RpdmUgJiYgIXRoaXMucGF1c2VkKSB7XG4gICAgICAgICAgICB0aGlzLmNvbnN1bWVkQWZ0ZXJTbmFwc2hvdCA9IDA7XG4gICAgICAgICAgICBjb25zdCBjcCA9IHRoaXMuX2NvbnN1bWUoKTtcbiAgICAgICAgICAgIGlmICghdGhpcy5fZW5zdXJlSGliZXJuYXRpb24oKSkge1xuICAgICAgICAgICAgICAgIHRoaXMuX2NhbGxTdGF0ZShjcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5pbkxvb3AgPSBmYWxzZTtcbiAgICB9XG4gICAgLy9BUElcbiAgICBwYXVzZSgpIHtcbiAgICAgICAgdGhpcy5wYXVzZWQgPSB0cnVlO1xuICAgIH1cbiAgICByZXN1bWUod3JpdGVDYWxsYmFjaykge1xuICAgICAgICBpZiAoIXRoaXMucGF1c2VkKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1BhcnNlciB3YXMgYWxyZWFkeSByZXN1bWVkJyk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5wYXVzZWQgPSBmYWxzZTtcbiAgICAgICAgLy8gTmVjZXNzYXJ5IGZvciBzeW5jaHJvbm91cyByZXN1bWUuXG4gICAgICAgIGlmICh0aGlzLmluTG9vcClcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgdGhpcy5fcnVuUGFyc2luZ0xvb3AoKTtcbiAgICAgICAgaWYgKCF0aGlzLnBhdXNlZCkge1xuICAgICAgICAgICAgd3JpdGVDYWxsYmFjayA9PT0gbnVsbCB8fCB3cml0ZUNhbGxiYWNrID09PSB2b2lkIDAgPyB2b2lkIDAgOiB3cml0ZUNhbGxiYWNrKCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgd3JpdGUoY2h1bmssIGlzTGFzdENodW5rLCB3cml0ZUNhbGxiYWNrKSB7XG4gICAgICAgIHRoaXMuYWN0aXZlID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5wcmVwcm9jZXNzb3Iud3JpdGUoY2h1bmssIGlzTGFzdENodW5rKTtcbiAgICAgICAgdGhpcy5fcnVuUGFyc2luZ0xvb3AoKTtcbiAgICAgICAgaWYgKCF0aGlzLnBhdXNlZCkge1xuICAgICAgICAgICAgd3JpdGVDYWxsYmFjayA9PT0gbnVsbCB8fCB3cml0ZUNhbGxiYWNrID09PSB2b2lkIDAgPyB2b2lkIDAgOiB3cml0ZUNhbGxiYWNrKCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgaW5zZXJ0SHRtbEF0Q3VycmVudFBvcyhjaHVuaykge1xuICAgICAgICB0aGlzLmFjdGl2ZSA9IHRydWU7XG4gICAgICAgIHRoaXMucHJlcHJvY2Vzc29yLmluc2VydEh0bWxBdEN1cnJlbnRQb3MoY2h1bmspO1xuICAgICAgICB0aGlzLl9ydW5QYXJzaW5nTG9vcCgpO1xuICAgIH1cbiAgICAvL0hpYmVybmF0aW9uXG4gICAgX2Vuc3VyZUhpYmVybmF0aW9uKCkge1xuICAgICAgICBpZiAodGhpcy5wcmVwcm9jZXNzb3IuZW5kT2ZDaHVua0hpdCkge1xuICAgICAgICAgICAgdGhpcy5wcmVwcm9jZXNzb3IucmV0cmVhdCh0aGlzLmNvbnN1bWVkQWZ0ZXJTbmFwc2hvdCk7XG4gICAgICAgICAgICB0aGlzLmNvbnN1bWVkQWZ0ZXJTbmFwc2hvdCA9IDA7XG4gICAgICAgICAgICB0aGlzLmFjdGl2ZSA9IGZhbHNlO1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICAvL0NvbnN1bXB0aW9uXG4gICAgX2NvbnN1bWUoKSB7XG4gICAgICAgIHRoaXMuY29uc3VtZWRBZnRlclNuYXBzaG90Kys7XG4gICAgICAgIHJldHVybiB0aGlzLnByZXByb2Nlc3Nvci5hZHZhbmNlKCk7XG4gICAgfVxuICAgIF9hZHZhbmNlQnkoY291bnQpIHtcbiAgICAgICAgdGhpcy5jb25zdW1lZEFmdGVyU25hcHNob3QgKz0gY291bnQ7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY291bnQ7IGkrKykge1xuICAgICAgICAgICAgdGhpcy5wcmVwcm9jZXNzb3IuYWR2YW5jZSgpO1xuICAgICAgICB9XG4gICAgfVxuICAgIF9jb25zdW1lU2VxdWVuY2VJZk1hdGNoKHBhdHRlcm4sIGNhc2VTZW5zaXRpdmUpIHtcbiAgICAgICAgaWYgKHRoaXMucHJlcHJvY2Vzc29yLnN0YXJ0c1dpdGgocGF0dGVybiwgY2FzZVNlbnNpdGl2ZSkpIHtcbiAgICAgICAgICAgIC8vIFdlIHdpbGwgYWxyZWFkeSBoYXZlIGNvbnN1bWVkIG9uZSBjaGFyYWN0ZXIgYmVmb3JlIGNhbGxpbmcgdGhpcyBtZXRob2QuXG4gICAgICAgICAgICB0aGlzLl9hZHZhbmNlQnkocGF0dGVybi5sZW5ndGggLSAxKTtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgLy9Ub2tlbiBjcmVhdGlvblxuICAgIF9jcmVhdGVTdGFydFRhZ1Rva2VuKCkge1xuICAgICAgICB0aGlzLmN1cnJlbnRUb2tlbiA9IHtcbiAgICAgICAgICAgIHR5cGU6IFRva2VuVHlwZS5TVEFSVF9UQUcsXG4gICAgICAgICAgICB0YWdOYW1lOiAnJyxcbiAgICAgICAgICAgIHRhZ0lEOiBUQUdfSUQuVU5LTk9XTixcbiAgICAgICAgICAgIHNlbGZDbG9zaW5nOiBmYWxzZSxcbiAgICAgICAgICAgIGFja1NlbGZDbG9zaW5nOiBmYWxzZSxcbiAgICAgICAgICAgIGF0dHJzOiBbXSxcbiAgICAgICAgICAgIGxvY2F0aW9uOiB0aGlzLmdldEN1cnJlbnRMb2NhdGlvbigxKSxcbiAgICAgICAgfTtcbiAgICB9XG4gICAgX2NyZWF0ZUVuZFRhZ1Rva2VuKCkge1xuICAgICAgICB0aGlzLmN1cnJlbnRUb2tlbiA9IHtcbiAgICAgICAgICAgIHR5cGU6IFRva2VuVHlwZS5FTkRfVEFHLFxuICAgICAgICAgICAgdGFnTmFtZTogJycsXG4gICAgICAgICAgICB0YWdJRDogVEFHX0lELlVOS05PV04sXG4gICAgICAgICAgICBzZWxmQ2xvc2luZzogZmFsc2UsXG4gICAgICAgICAgICBhY2tTZWxmQ2xvc2luZzogZmFsc2UsXG4gICAgICAgICAgICBhdHRyczogW10sXG4gICAgICAgICAgICBsb2NhdGlvbjogdGhpcy5nZXRDdXJyZW50TG9jYXRpb24oMiksXG4gICAgICAgIH07XG4gICAgfVxuICAgIF9jcmVhdGVDb21tZW50VG9rZW4ob2Zmc2V0KSB7XG4gICAgICAgIHRoaXMuY3VycmVudFRva2VuID0ge1xuICAgICAgICAgICAgdHlwZTogVG9rZW5UeXBlLkNPTU1FTlQsXG4gICAgICAgICAgICBkYXRhOiAnJyxcbiAgICAgICAgICAgIGxvY2F0aW9uOiB0aGlzLmdldEN1cnJlbnRMb2NhdGlvbihvZmZzZXQpLFxuICAgICAgICB9O1xuICAgIH1cbiAgICBfY3JlYXRlRG9jdHlwZVRva2VuKGluaXRpYWxOYW1lKSB7XG4gICAgICAgIHRoaXMuY3VycmVudFRva2VuID0ge1xuICAgICAgICAgICAgdHlwZTogVG9rZW5UeXBlLkRPQ1RZUEUsXG4gICAgICAgICAgICBuYW1lOiBpbml0aWFsTmFtZSxcbiAgICAgICAgICAgIGZvcmNlUXVpcmtzOiBmYWxzZSxcbiAgICAgICAgICAgIHB1YmxpY0lkOiBudWxsLFxuICAgICAgICAgICAgc3lzdGVtSWQ6IG51bGwsXG4gICAgICAgICAgICBsb2NhdGlvbjogdGhpcy5jdXJyZW50TG9jYXRpb24sXG4gICAgICAgIH07XG4gICAgfVxuICAgIF9jcmVhdGVDaGFyYWN0ZXJUb2tlbih0eXBlLCBjaGFycykge1xuICAgICAgICB0aGlzLmN1cnJlbnRDaGFyYWN0ZXJUb2tlbiA9IHtcbiAgICAgICAgICAgIHR5cGUsXG4gICAgICAgICAgICBjaGFycyxcbiAgICAgICAgICAgIGxvY2F0aW9uOiB0aGlzLmN1cnJlbnRMb2NhdGlvbixcbiAgICAgICAgfTtcbiAgICB9XG4gICAgLy9UYWcgYXR0cmlidXRlc1xuICAgIF9jcmVhdGVBdHRyKGF0dHJOYW1lRmlyc3RDaCkge1xuICAgICAgICB0aGlzLmN1cnJlbnRBdHRyID0ge1xuICAgICAgICAgICAgbmFtZTogYXR0ck5hbWVGaXJzdENoLFxuICAgICAgICAgICAgdmFsdWU6ICcnLFxuICAgICAgICB9O1xuICAgICAgICB0aGlzLmN1cnJlbnRMb2NhdGlvbiA9IHRoaXMuZ2V0Q3VycmVudExvY2F0aW9uKDApO1xuICAgIH1cbiAgICBfbGVhdmVBdHRyTmFtZSgpIHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICB2YXIgX2I7XG4gICAgICAgIGNvbnN0IHRva2VuID0gdGhpcy5jdXJyZW50VG9rZW47XG4gICAgICAgIGlmIChnZXRUb2tlbkF0dHIodG9rZW4sIHRoaXMuY3VycmVudEF0dHIubmFtZSkgPT09IG51bGwpIHtcbiAgICAgICAgICAgIHRva2VuLmF0dHJzLnB1c2godGhpcy5jdXJyZW50QXR0cik7XG4gICAgICAgICAgICBpZiAodG9rZW4ubG9jYXRpb24gJiYgdGhpcy5jdXJyZW50TG9jYXRpb24pIHtcbiAgICAgICAgICAgICAgICBjb25zdCBhdHRyTG9jYXRpb25zID0gKChfYSA9IChfYiA9IHRva2VuLmxvY2F0aW9uKS5hdHRycykgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogKF9iLmF0dHJzID0gT2JqZWN0LmNyZWF0ZShudWxsKSkpO1xuICAgICAgICAgICAgICAgIGF0dHJMb2NhdGlvbnNbdGhpcy5jdXJyZW50QXR0ci5uYW1lXSA9IHRoaXMuY3VycmVudExvY2F0aW9uO1xuICAgICAgICAgICAgICAgIC8vIFNldCBlbmQgbG9jYXRpb25cbiAgICAgICAgICAgICAgICB0aGlzLl9sZWF2ZUF0dHJWYWx1ZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5kdXBsaWNhdGVBdHRyaWJ1dGUpO1xuICAgICAgICB9XG4gICAgfVxuICAgIF9sZWF2ZUF0dHJWYWx1ZSgpIHtcbiAgICAgICAgaWYgKHRoaXMuY3VycmVudExvY2F0aW9uKSB7XG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRMb2NhdGlvbi5lbmRMaW5lID0gdGhpcy5wcmVwcm9jZXNzb3IubGluZTtcbiAgICAgICAgICAgIHRoaXMuY3VycmVudExvY2F0aW9uLmVuZENvbCA9IHRoaXMucHJlcHJvY2Vzc29yLmNvbDtcbiAgICAgICAgICAgIHRoaXMuY3VycmVudExvY2F0aW9uLmVuZE9mZnNldCA9IHRoaXMucHJlcHJvY2Vzc29yLm9mZnNldDtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvL1Rva2VuIGVtaXNzaW9uXG4gICAgcHJlcGFyZVRva2VuKGN0KSB7XG4gICAgICAgIHRoaXMuX2VtaXRDdXJyZW50Q2hhcmFjdGVyVG9rZW4oY3QubG9jYXRpb24pO1xuICAgICAgICB0aGlzLmN1cnJlbnRUb2tlbiA9IG51bGw7XG4gICAgICAgIGlmIChjdC5sb2NhdGlvbikge1xuICAgICAgICAgICAgY3QubG9jYXRpb24uZW5kTGluZSA9IHRoaXMucHJlcHJvY2Vzc29yLmxpbmU7XG4gICAgICAgICAgICBjdC5sb2NhdGlvbi5lbmRDb2wgPSB0aGlzLnByZXByb2Nlc3Nvci5jb2wgKyAxO1xuICAgICAgICAgICAgY3QubG9jYXRpb24uZW5kT2Zmc2V0ID0gdGhpcy5wcmVwcm9jZXNzb3Iub2Zmc2V0ICsgMTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmN1cnJlbnRMb2NhdGlvbiA9IHRoaXMuZ2V0Q3VycmVudExvY2F0aW9uKC0xKTtcbiAgICB9XG4gICAgZW1pdEN1cnJlbnRUYWdUb2tlbigpIHtcbiAgICAgICAgY29uc3QgY3QgPSB0aGlzLmN1cnJlbnRUb2tlbjtcbiAgICAgICAgdGhpcy5wcmVwYXJlVG9rZW4oY3QpO1xuICAgICAgICBjdC50YWdJRCA9IGdldFRhZ0lEKGN0LnRhZ05hbWUpO1xuICAgICAgICBpZiAoY3QudHlwZSA9PT0gVG9rZW5UeXBlLlNUQVJUX1RBRykge1xuICAgICAgICAgICAgdGhpcy5sYXN0U3RhcnRUYWdOYW1lID0gY3QudGFnTmFtZTtcbiAgICAgICAgICAgIHRoaXMuaGFuZGxlci5vblN0YXJ0VGFnKGN0KTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGlmIChjdC5hdHRycy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5lbmRUYWdXaXRoQXR0cmlidXRlcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoY3Quc2VsZkNsb3NpbmcpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLmVuZFRhZ1dpdGhUcmFpbGluZ1NvbGlkdXMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5oYW5kbGVyLm9uRW5kVGFnKGN0KTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnByZXByb2Nlc3Nvci5kcm9wUGFyc2VkQ2h1bmsoKTtcbiAgICB9XG4gICAgZW1pdEN1cnJlbnRDb21tZW50KGN0KSB7XG4gICAgICAgIHRoaXMucHJlcGFyZVRva2VuKGN0KTtcbiAgICAgICAgdGhpcy5oYW5kbGVyLm9uQ29tbWVudChjdCk7XG4gICAgICAgIHRoaXMucHJlcHJvY2Vzc29yLmRyb3BQYXJzZWRDaHVuaygpO1xuICAgIH1cbiAgICBlbWl0Q3VycmVudERvY3R5cGUoY3QpIHtcbiAgICAgICAgdGhpcy5wcmVwYXJlVG9rZW4oY3QpO1xuICAgICAgICB0aGlzLmhhbmRsZXIub25Eb2N0eXBlKGN0KTtcbiAgICAgICAgdGhpcy5wcmVwcm9jZXNzb3IuZHJvcFBhcnNlZENodW5rKCk7XG4gICAgfVxuICAgIF9lbWl0Q3VycmVudENoYXJhY3RlclRva2VuKG5leHRMb2NhdGlvbikge1xuICAgICAgICBpZiAodGhpcy5jdXJyZW50Q2hhcmFjdGVyVG9rZW4pIHtcbiAgICAgICAgICAgIC8vTk9URTogaWYgd2UgaGF2ZSBhIHBlbmRpbmcgY2hhcmFjdGVyIHRva2VuLCBtYWtlIGl0J3MgZW5kIGxvY2F0aW9uIGVxdWFsIHRvIHRoZVxuICAgICAgICAgICAgLy9jdXJyZW50IHRva2VuJ3Mgc3RhcnQgbG9jYXRpb24uXG4gICAgICAgICAgICBpZiAobmV4dExvY2F0aW9uICYmIHRoaXMuY3VycmVudENoYXJhY3RlclRva2VuLmxvY2F0aW9uKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50Q2hhcmFjdGVyVG9rZW4ubG9jYXRpb24uZW5kTGluZSA9IG5leHRMb2NhdGlvbi5zdGFydExpbmU7XG4gICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50Q2hhcmFjdGVyVG9rZW4ubG9jYXRpb24uZW5kQ29sID0gbmV4dExvY2F0aW9uLnN0YXJ0Q29sO1xuICAgICAgICAgICAgICAgIHRoaXMuY3VycmVudENoYXJhY3RlclRva2VuLmxvY2F0aW9uLmVuZE9mZnNldCA9IG5leHRMb2NhdGlvbi5zdGFydE9mZnNldDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHN3aXRjaCAodGhpcy5jdXJyZW50Q2hhcmFjdGVyVG9rZW4udHlwZSkge1xuICAgICAgICAgICAgICAgIGNhc2UgVG9rZW5UeXBlLkNIQVJBQ1RFUjoge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmhhbmRsZXIub25DaGFyYWN0ZXIodGhpcy5jdXJyZW50Q2hhcmFjdGVyVG9rZW4pO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2FzZSBUb2tlblR5cGUuTlVMTF9DSEFSQUNURVI6IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5oYW5kbGVyLm9uTnVsbENoYXJhY3Rlcih0aGlzLmN1cnJlbnRDaGFyYWN0ZXJUb2tlbik7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjYXNlIFRva2VuVHlwZS5XSElURVNQQUNFX0NIQVJBQ1RFUjoge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmhhbmRsZXIub25XaGl0ZXNwYWNlQ2hhcmFjdGVyKHRoaXMuY3VycmVudENoYXJhY3RlclRva2VuKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5jdXJyZW50Q2hhcmFjdGVyVG9rZW4gPSBudWxsO1xuICAgICAgICB9XG4gICAgfVxuICAgIF9lbWl0RU9GVG9rZW4oKSB7XG4gICAgICAgIGNvbnN0IGxvY2F0aW9uID0gdGhpcy5nZXRDdXJyZW50TG9jYXRpb24oMCk7XG4gICAgICAgIGlmIChsb2NhdGlvbikge1xuICAgICAgICAgICAgbG9jYXRpb24uZW5kTGluZSA9IGxvY2F0aW9uLnN0YXJ0TGluZTtcbiAgICAgICAgICAgIGxvY2F0aW9uLmVuZENvbCA9IGxvY2F0aW9uLnN0YXJ0Q29sO1xuICAgICAgICAgICAgbG9jYXRpb24uZW5kT2Zmc2V0ID0gbG9jYXRpb24uc3RhcnRPZmZzZXQ7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fZW1pdEN1cnJlbnRDaGFyYWN0ZXJUb2tlbihsb2NhdGlvbik7XG4gICAgICAgIHRoaXMuaGFuZGxlci5vbkVvZih7IHR5cGU6IFRva2VuVHlwZS5FT0YsIGxvY2F0aW9uIH0pO1xuICAgICAgICB0aGlzLmFjdGl2ZSA9IGZhbHNlO1xuICAgIH1cbiAgICAvL0NoYXJhY3RlcnMgZW1pc3Npb25cbiAgICAvL09QVElNSVpBVElPTjogVGhlIHNwZWNpZmljYXRpb24gdXNlcyBvbmx5IG9uZSB0eXBlIG9mIGNoYXJhY3RlciB0b2tlbiAob25lIHRva2VuIHBlciBjaGFyYWN0ZXIpLlxuICAgIC8vVGhpcyBjYXVzZXMgYSBodWdlIG1lbW9yeSBvdmVyaGVhZCBhbmQgYSBsb3Qgb2YgdW5uZWNlc3NhcnkgcGFyc2VyIGxvb3BzLiBwYXJzZTUgdXNlcyAzIGdyb3VwcyBvZiBjaGFyYWN0ZXJzLlxuICAgIC8vSWYgd2UgaGF2ZSBhIHNlcXVlbmNlIG9mIGNoYXJhY3RlcnMgdGhhdCBiZWxvbmcgdG8gdGhlIHNhbWUgZ3JvdXAsIHRoZSBwYXJzZXIgY2FuIHByb2Nlc3MgaXRcbiAgICAvL2FzIGEgc2luZ2xlIHNvbGlkIGNoYXJhY3RlciB0b2tlbi5cbiAgICAvL1NvLCB0aGVyZSBhcmUgMyB0eXBlcyBvZiBjaGFyYWN0ZXIgdG9rZW5zIGluIHBhcnNlNTpcbiAgICAvLzEpVG9rZW5UeXBlLk5VTExfQ0hBUkFDVEVSIC0gXFx1MDAwMC1jaGFyYWN0ZXIgc2VxdWVuY2VzIChlLmcuICdcXHUwMDAwXFx1MDAwMFxcdTAwMDAnKVxuICAgIC8vMilUb2tlblR5cGUuV0hJVEVTUEFDRV9DSEFSQUNURVIgLSBhbnkgd2hpdGVzcGFjZS9uZXctbGluZSBjaGFyYWN0ZXIgc2VxdWVuY2VzIChlLmcuICdcXG4gIFxcclxcdCAgIFxcZicpXG4gICAgLy8zKVRva2VuVHlwZS5DSEFSQUNURVIgLSBhbnkgY2hhcmFjdGVyIHNlcXVlbmNlIHdoaWNoIGRvbid0IGJlbG9uZyB0byBncm91cHMgMSBhbmQgMiAoZS5nLiAnYWJjZGVmMTIzNEBAIyQlXicpXG4gICAgX2FwcGVuZENoYXJUb0N1cnJlbnRDaGFyYWN0ZXJUb2tlbih0eXBlLCBjaCkge1xuICAgICAgICBpZiAodGhpcy5jdXJyZW50Q2hhcmFjdGVyVG9rZW4pIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmN1cnJlbnRDaGFyYWN0ZXJUb2tlbi50eXBlID09PSB0eXBlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50Q2hhcmFjdGVyVG9rZW4uY2hhcnMgKz0gY2g7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50TG9jYXRpb24gPSB0aGlzLmdldEN1cnJlbnRMb2NhdGlvbigwKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0Q3VycmVudENoYXJhY3RlclRva2VuKHRoaXMuY3VycmVudExvY2F0aW9uKTtcbiAgICAgICAgICAgICAgICB0aGlzLnByZXByb2Nlc3Nvci5kcm9wUGFyc2VkQ2h1bmsoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9jcmVhdGVDaGFyYWN0ZXJUb2tlbih0eXBlLCBjaCk7XG4gICAgfVxuICAgIF9lbWl0Q29kZVBvaW50KGNwKSB7XG4gICAgICAgIGNvbnN0IHR5cGUgPSBpc1doaXRlc3BhY2UoY3ApXG4gICAgICAgICAgICA/IFRva2VuVHlwZS5XSElURVNQQUNFX0NIQVJBQ1RFUlxuICAgICAgICAgICAgOiBjcCA9PT0gJC5OVUxMXG4gICAgICAgICAgICAgICAgPyBUb2tlblR5cGUuTlVMTF9DSEFSQUNURVJcbiAgICAgICAgICAgICAgICA6IFRva2VuVHlwZS5DSEFSQUNURVI7XG4gICAgICAgIHRoaXMuX2FwcGVuZENoYXJUb0N1cnJlbnRDaGFyYWN0ZXJUb2tlbih0eXBlLCBTdHJpbmcuZnJvbUNvZGVQb2ludChjcCkpO1xuICAgIH1cbiAgICAvL05PVEU6IHVzZWQgd2hlbiB3ZSBlbWl0IGNoYXJhY3RlcnMgZXhwbGljaXRseS5cbiAgICAvL1RoaXMgaXMgYWx3YXlzIGZvciBub24td2hpdGVzcGFjZSBhbmQgbm9uLW51bGwgY2hhcmFjdGVycywgd2hpY2ggYWxsb3dzIHVzIHRvIGF2b2lkIGFkZGl0aW9uYWwgY2hlY2tzLlxuICAgIF9lbWl0Q2hhcnMoY2gpIHtcbiAgICAgICAgdGhpcy5fYXBwZW5kQ2hhclRvQ3VycmVudENoYXJhY3RlclRva2VuKFRva2VuVHlwZS5DSEFSQUNURVIsIGNoKTtcbiAgICB9XG4gICAgLy8gQ2hhcmFjdGVyIHJlZmVyZW5jZSBoZWxwZXJzXG4gICAgX3N0YXJ0Q2hhcmFjdGVyUmVmZXJlbmNlKCkge1xuICAgICAgICB0aGlzLnJldHVyblN0YXRlID0gdGhpcy5zdGF0ZTtcbiAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkNIQVJBQ1RFUl9SRUZFUkVOQ0U7XG4gICAgICAgIHRoaXMuZW50aXR5U3RhcnRQb3MgPSB0aGlzLnByZXByb2Nlc3Nvci5wb3M7XG4gICAgICAgIHRoaXMuZW50aXR5RGVjb2Rlci5zdGFydEVudGl0eSh0aGlzLl9pc0NoYXJhY3RlclJlZmVyZW5jZUluQXR0cmlidXRlKCkgPyBEZWNvZGluZ01vZGUuQXR0cmlidXRlIDogRGVjb2RpbmdNb2RlLkxlZ2FjeSk7XG4gICAgfVxuICAgIF9pc0NoYXJhY3RlclJlZmVyZW5jZUluQXR0cmlidXRlKCkge1xuICAgICAgICByZXR1cm4gKHRoaXMucmV0dXJuU3RhdGUgPT09IFN0YXRlLkFUVFJJQlVURV9WQUxVRV9ET1VCTEVfUVVPVEVEIHx8XG4gICAgICAgICAgICB0aGlzLnJldHVyblN0YXRlID09PSBTdGF0ZS5BVFRSSUJVVEVfVkFMVUVfU0lOR0xFX1FVT1RFRCB8fFxuICAgICAgICAgICAgdGhpcy5yZXR1cm5TdGF0ZSA9PT0gU3RhdGUuQVRUUklCVVRFX1ZBTFVFX1VOUVVPVEVEKTtcbiAgICB9XG4gICAgX2ZsdXNoQ29kZVBvaW50Q29uc3VtZWRBc0NoYXJhY3RlclJlZmVyZW5jZShjcCkge1xuICAgICAgICBpZiAodGhpcy5faXNDaGFyYWN0ZXJSZWZlcmVuY2VJbkF0dHJpYnV0ZSgpKSB7XG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRBdHRyLnZhbHVlICs9IFN0cmluZy5mcm9tQ29kZVBvaW50KGNwKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX2VtaXRDb2RlUG9pbnQoY3ApO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8vIENhbGxpbmcgc3RhdGVzIHRoaXMgd2F5IHR1cm5zIG91dCB0byBiZSBtdWNoIGZhc3RlciB0aGFuIGFueSBvdGhlciBhcHByb2FjaC5cbiAgICBfY2FsbFN0YXRlKGNwKSB7XG4gICAgICAgIHN3aXRjaCAodGhpcy5zdGF0ZSkge1xuICAgICAgICAgICAgY2FzZSBTdGF0ZS5EQVRBOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVEYXRhKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuUkNEQVRBOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVSY2RhdGEoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5SQVdURVhUOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVSYXd0ZXh0KGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuU0NSSVBUX0RBVEE6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZVNjcmlwdERhdGEoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5QTEFJTlRFWFQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZVBsYWludGV4dChjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLlRBR19PUEVOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVUYWdPcGVuKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuRU5EX1RBR19PUEVOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVFbmRUYWdPcGVuKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuVEFHX05BTUU6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZVRhZ05hbWUoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5SQ0RBVEFfTEVTU19USEFOX1NJR046IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZVJjZGF0YUxlc3NUaGFuU2lnbihjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLlJDREFUQV9FTkRfVEFHX09QRU46IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZVJjZGF0YUVuZFRhZ09wZW4oY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5SQ0RBVEFfRU5EX1RBR19OQU1FOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVSY2RhdGFFbmRUYWdOYW1lKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuUkFXVEVYVF9MRVNTX1RIQU5fU0lHTjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlUmF3dGV4dExlc3NUaGFuU2lnbihjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLlJBV1RFWFRfRU5EX1RBR19PUEVOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVSYXd0ZXh0RW5kVGFnT3BlbihjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLlJBV1RFWFRfRU5EX1RBR19OQU1FOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVSYXd0ZXh0RW5kVGFnTmFtZShjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLlNDUklQVF9EQVRBX0xFU1NfVEhBTl9TSUdOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVTY3JpcHREYXRhTGVzc1RoYW5TaWduKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuU0NSSVBUX0RBVEFfRU5EX1RBR19PUEVOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVTY3JpcHREYXRhRW5kVGFnT3BlbihjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLlNDUklQVF9EQVRBX0VORF9UQUdfTkFNRToge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlU2NyaXB0RGF0YUVuZFRhZ05hbWUoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5TQ1JJUFRfREFUQV9FU0NBUEVfU1RBUlQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZVNjcmlwdERhdGFFc2NhcGVTdGFydChjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLlNDUklQVF9EQVRBX0VTQ0FQRV9TVEFSVF9EQVNIOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVTY3JpcHREYXRhRXNjYXBlU3RhcnREYXNoKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuU0NSSVBUX0RBVEFfRVNDQVBFRDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlU2NyaXB0RGF0YUVzY2FwZWQoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5TQ1JJUFRfREFUQV9FU0NBUEVEX0RBU0g6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZVNjcmlwdERhdGFFc2NhcGVkRGFzaChjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLlNDUklQVF9EQVRBX0VTQ0FQRURfREFTSF9EQVNIOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVTY3JpcHREYXRhRXNjYXBlZERhc2hEYXNoKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuU0NSSVBUX0RBVEFfRVNDQVBFRF9MRVNTX1RIQU5fU0lHTjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlU2NyaXB0RGF0YUVzY2FwZWRMZXNzVGhhblNpZ24oY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5TQ1JJUFRfREFUQV9FU0NBUEVEX0VORF9UQUdfT1BFTjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlU2NyaXB0RGF0YUVzY2FwZWRFbmRUYWdPcGVuKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuU0NSSVBUX0RBVEFfRVNDQVBFRF9FTkRfVEFHX05BTUU6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZVNjcmlwdERhdGFFc2NhcGVkRW5kVGFnTmFtZShjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLlNDUklQVF9EQVRBX0RPVUJMRV9FU0NBUEVfU1RBUlQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZVNjcmlwdERhdGFEb3VibGVFc2NhcGVTdGFydChjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLlNDUklQVF9EQVRBX0RPVUJMRV9FU0NBUEVEOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVTY3JpcHREYXRhRG91YmxlRXNjYXBlZChjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLlNDUklQVF9EQVRBX0RPVUJMRV9FU0NBUEVEX0RBU0g6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZVNjcmlwdERhdGFEb3VibGVFc2NhcGVkRGFzaChjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLlNDUklQVF9EQVRBX0RPVUJMRV9FU0NBUEVEX0RBU0hfREFTSDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlU2NyaXB0RGF0YURvdWJsZUVzY2FwZWREYXNoRGFzaChjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLlNDUklQVF9EQVRBX0RPVUJMRV9FU0NBUEVEX0xFU1NfVEhBTl9TSUdOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVTY3JpcHREYXRhRG91YmxlRXNjYXBlZExlc3NUaGFuU2lnbihjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLlNDUklQVF9EQVRBX0RPVUJMRV9FU0NBUEVfRU5EOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVTY3JpcHREYXRhRG91YmxlRXNjYXBlRW5kKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuQkVGT1JFX0FUVFJJQlVURV9OQU1FOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVCZWZvcmVBdHRyaWJ1dGVOYW1lKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuQVRUUklCVVRFX05BTUU6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUF0dHJpYnV0ZU5hbWUoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5BRlRFUl9BVFRSSUJVVEVfTkFNRToge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQWZ0ZXJBdHRyaWJ1dGVOYW1lKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuQkVGT1JFX0FUVFJJQlVURV9WQUxVRToge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQmVmb3JlQXR0cmlidXRlVmFsdWUoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5BVFRSSUJVVEVfVkFMVUVfRE9VQkxFX1FVT1RFRDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQXR0cmlidXRlVmFsdWVEb3VibGVRdW90ZWQoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5BVFRSSUJVVEVfVkFMVUVfU0lOR0xFX1FVT1RFRDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQXR0cmlidXRlVmFsdWVTaW5nbGVRdW90ZWQoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5BVFRSSUJVVEVfVkFMVUVfVU5RVU9URUQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUF0dHJpYnV0ZVZhbHVlVW5xdW90ZWQoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5BRlRFUl9BVFRSSUJVVEVfVkFMVUVfUVVPVEVEOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVBZnRlckF0dHJpYnV0ZVZhbHVlUXVvdGVkKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuU0VMRl9DTE9TSU5HX1NUQVJUX1RBRzoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlU2VsZkNsb3NpbmdTdGFydFRhZyhjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLkJPR1VTX0NPTU1FTlQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUJvZ3VzQ29tbWVudChjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLk1BUktVUF9ERUNMQVJBVElPTl9PUEVOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVNYXJrdXBEZWNsYXJhdGlvbk9wZW4oY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5DT01NRU5UX1NUQVJUOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVDb21tZW50U3RhcnQoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5DT01NRU5UX1NUQVJUX0RBU0g6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUNvbW1lbnRTdGFydERhc2goY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5DT01NRU5UOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVDb21tZW50KGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuQ09NTUVOVF9MRVNTX1RIQU5fU0lHTjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQ29tbWVudExlc3NUaGFuU2lnbihjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLkNPTU1FTlRfTEVTU19USEFOX1NJR05fQkFORzoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQ29tbWVudExlc3NUaGFuU2lnbkJhbmcoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5DT01NRU5UX0xFU1NfVEhBTl9TSUdOX0JBTkdfREFTSDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQ29tbWVudExlc3NUaGFuU2lnbkJhbmdEYXNoKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuQ09NTUVOVF9MRVNTX1RIQU5fU0lHTl9CQU5HX0RBU0hfREFTSDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQ29tbWVudExlc3NUaGFuU2lnbkJhbmdEYXNoRGFzaChjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLkNPTU1FTlRfRU5EX0RBU0g6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUNvbW1lbnRFbmREYXNoKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuQ09NTUVOVF9FTkQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUNvbW1lbnRFbmQoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5DT01NRU5UX0VORF9CQU5HOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVDb21tZW50RW5kQmFuZyhjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLkRPQ1RZUEU6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZURvY3R5cGUoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5CRUZPUkVfRE9DVFlQRV9OQU1FOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVCZWZvcmVEb2N0eXBlTmFtZShjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLkRPQ1RZUEVfTkFNRToge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlRG9jdHlwZU5hbWUoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5BRlRFUl9ET0NUWVBFX05BTUU6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUFmdGVyRG9jdHlwZU5hbWUoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5BRlRFUl9ET0NUWVBFX1BVQkxJQ19LRVlXT1JEOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVBZnRlckRvY3R5cGVQdWJsaWNLZXl3b3JkKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuQkVGT1JFX0RPQ1RZUEVfUFVCTElDX0lERU5USUZJRVI6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUJlZm9yZURvY3R5cGVQdWJsaWNJZGVudGlmaWVyKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuRE9DVFlQRV9QVUJMSUNfSURFTlRJRklFUl9ET1VCTEVfUVVPVEVEOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVEb2N0eXBlUHVibGljSWRlbnRpZmllckRvdWJsZVF1b3RlZChjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLkRPQ1RZUEVfUFVCTElDX0lERU5USUZJRVJfU0lOR0xFX1FVT1RFRDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlRG9jdHlwZVB1YmxpY0lkZW50aWZpZXJTaW5nbGVRdW90ZWQoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5BRlRFUl9ET0NUWVBFX1BVQkxJQ19JREVOVElGSUVSOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVBZnRlckRvY3R5cGVQdWJsaWNJZGVudGlmaWVyKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuQkVUV0VFTl9ET0NUWVBFX1BVQkxJQ19BTkRfU1lTVEVNX0lERU5USUZJRVJTOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVCZXR3ZWVuRG9jdHlwZVB1YmxpY0FuZFN5c3RlbUlkZW50aWZpZXJzKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuQUZURVJfRE9DVFlQRV9TWVNURU1fS0VZV09SRDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQWZ0ZXJEb2N0eXBlU3lzdGVtS2V5d29yZChjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLkJFRk9SRV9ET0NUWVBFX1NZU1RFTV9JREVOVElGSUVSOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVCZWZvcmVEb2N0eXBlU3lzdGVtSWRlbnRpZmllcihjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLkRPQ1RZUEVfU1lTVEVNX0lERU5USUZJRVJfRE9VQkxFX1FVT1RFRDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlRG9jdHlwZVN5c3RlbUlkZW50aWZpZXJEb3VibGVRdW90ZWQoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5ET0NUWVBFX1NZU1RFTV9JREVOVElGSUVSX1NJTkdMRV9RVU9URUQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZURvY3R5cGVTeXN0ZW1JZGVudGlmaWVyU2luZ2xlUXVvdGVkKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuQUZURVJfRE9DVFlQRV9TWVNURU1fSURFTlRJRklFUjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQWZ0ZXJEb2N0eXBlU3lzdGVtSWRlbnRpZmllcihjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLkJPR1VTX0RPQ1RZUEU6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUJvZ3VzRG9jdHlwZShjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLkNEQVRBX1NFQ1RJT046IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUNkYXRhU2VjdGlvbihjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLkNEQVRBX1NFQ1RJT05fQlJBQ0tFVDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQ2RhdGFTZWN0aW9uQnJhY2tldChjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLkNEQVRBX1NFQ1RJT05fRU5EOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVDZGF0YVNlY3Rpb25FbmQoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5DSEFSQUNURVJfUkVGRVJFTkNFOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVDaGFyYWN0ZXJSZWZlcmVuY2UoKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuQU1CSUdVT1VTX0FNUEVSU0FORDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQW1iaWd1b3VzQW1wZXJzYW5kKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1Vua25vd24gc3RhdGUnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBTdGF0ZSBtYWNoaW5lXG4gICAgLy8gRGF0YSBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlRGF0YShjcCkge1xuICAgICAgICBzd2l0Y2ggKGNwKSB7XG4gICAgICAgICAgICBjYXNlICQuTEVTU19USEFOX1NJR046IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuVEFHX09QRU47XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuQU1QRVJTQU5EOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhcnRDaGFyYWN0ZXJSZWZlcmVuY2UoKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5OVUxMOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi51bmV4cGVjdGVkTnVsbENoYXJhY3Rlcik7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdENvZGVQb2ludChjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuRU9GOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdEVPRlRva2VuKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdENvZGVQb2ludChjcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gIFJDREFUQSBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlUmNkYXRhKGNwKSB7XG4gICAgICAgIHN3aXRjaCAoY3ApIHtcbiAgICAgICAgICAgIGNhc2UgJC5BTVBFUlNBTkQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGFydENoYXJhY3RlclJlZmVyZW5jZSgpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkxFU1NfVEhBTl9TSUdOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlJDREFUQV9MRVNTX1RIQU5fU0lHTjtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5OVUxMOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi51bmV4cGVjdGVkTnVsbENoYXJhY3Rlcik7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdENoYXJzKFJFUExBQ0VNRU5UX0NIQVJBQ1RFUik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuRU9GOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdEVPRlRva2VuKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdENvZGVQb2ludChjcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gUkFXVEVYVCBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlUmF3dGV4dChjcCkge1xuICAgICAgICBzd2l0Y2ggKGNwKSB7XG4gICAgICAgICAgICBjYXNlICQuTEVTU19USEFOX1NJR046IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuUkFXVEVYVF9MRVNTX1RIQU5fU0lHTjtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5OVUxMOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi51bmV4cGVjdGVkTnVsbENoYXJhY3Rlcik7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdENoYXJzKFJFUExBQ0VNRU5UX0NIQVJBQ1RFUik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuRU9GOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdEVPRlRva2VuKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdENvZGVQb2ludChjcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gU2NyaXB0IGRhdGEgc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZVNjcmlwdERhdGEoY3ApIHtcbiAgICAgICAgc3dpdGNoIChjcCkge1xuICAgICAgICAgICAgY2FzZSAkLkxFU1NfVEhBTl9TSUdOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlNDUklQVF9EQVRBX0xFU1NfVEhBTl9TSUdOO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLk5VTEw6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLnVuZXhwZWN0ZWROdWxsQ2hhcmFjdGVyKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0Q2hhcnMoUkVQTEFDRU1FTlRfQ0hBUkFDVEVSKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5FT0Y6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0RU9GVG9rZW4oKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0Q29kZVBvaW50KGNwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBQTEFJTlRFWFQgc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZVBsYWludGV4dChjcCkge1xuICAgICAgICBzd2l0Y2ggKGNwKSB7XG4gICAgICAgICAgICBjYXNlICQuTlVMTDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIudW5leHBlY3RlZE51bGxDaGFyYWN0ZXIpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRDaGFycyhSRVBMQUNFTUVOVF9DSEFSQUNURVIpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkVPRjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRFT0ZUb2tlbigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRDb2RlUG9pbnQoY3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vIFRhZyBvcGVuIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVUYWdPcGVuKGNwKSB7XG4gICAgICAgIGlmIChpc0FzY2lpTGV0dGVyKGNwKSkge1xuICAgICAgICAgICAgdGhpcy5fY3JlYXRlU3RhcnRUYWdUb2tlbigpO1xuICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlRBR19OQU1FO1xuICAgICAgICAgICAgdGhpcy5fc3RhdGVUYWdOYW1lKGNwKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlXG4gICAgICAgICAgICBzd2l0Y2ggKGNwKSB7XG4gICAgICAgICAgICAgICAgY2FzZSAkLkVYQ0xBTUFUSU9OX01BUks6IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLk1BUktVUF9ERUNMQVJBVElPTl9PUEVOO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2FzZSAkLlNPTElEVVM6IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkVORF9UQUdfT1BFTjtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNhc2UgJC5RVUVTVElPTl9NQVJLOiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIudW5leHBlY3RlZFF1ZXN0aW9uTWFya0luc3RlYWRPZlRhZ05hbWUpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9jcmVhdGVDb21tZW50VG9rZW4oMSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5CT0dVU19DT01NRU5UO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUJvZ3VzQ29tbWVudChjcCk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjYXNlICQuRU9GOiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIuZW9mQmVmb3JlVGFnTmFtZSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRDaGFycygnPCcpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9lbWl0RU9GVG9rZW4oKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5pbnZhbGlkRmlyc3RDaGFyYWN0ZXJPZlRhZ05hbWUpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9lbWl0Q2hhcnMoJzwnKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkRBVEE7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlRGF0YShjcCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgIH1cbiAgICAvLyBFbmQgdGFnIG9wZW4gc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZUVuZFRhZ09wZW4oY3ApIHtcbiAgICAgICAgaWYgKGlzQXNjaWlMZXR0ZXIoY3ApKSB7XG4gICAgICAgICAgICB0aGlzLl9jcmVhdGVFbmRUYWdUb2tlbigpO1xuICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlRBR19OQU1FO1xuICAgICAgICAgICAgdGhpcy5fc3RhdGVUYWdOYW1lKGNwKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlXG4gICAgICAgICAgICBzd2l0Y2ggKGNwKSB7XG4gICAgICAgICAgICAgICAgY2FzZSAkLkdSRUFURVJfVEhBTl9TSUdOOiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIubWlzc2luZ0VuZFRhZ05hbWUpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuREFUQTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNhc2UgJC5FT0Y6IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5lb2ZCZWZvcmVUYWdOYW1lKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fZW1pdENoYXJzKCc8LycpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9lbWl0RU9GVG9rZW4oKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5pbnZhbGlkRmlyc3RDaGFyYWN0ZXJPZlRhZ05hbWUpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9jcmVhdGVDb21tZW50VG9rZW4oMik7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5CT0dVU19DT01NRU5UO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUJvZ3VzQ29tbWVudChjcCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgIH1cbiAgICAvLyBUYWcgbmFtZSBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlVGFnTmFtZShjcCkge1xuICAgICAgICBjb25zdCB0b2tlbiA9IHRoaXMuY3VycmVudFRva2VuO1xuICAgICAgICBzd2l0Y2ggKGNwKSB7XG4gICAgICAgICAgICBjYXNlICQuU1BBQ0U6XG4gICAgICAgICAgICBjYXNlICQuTElORV9GRUVEOlxuICAgICAgICAgICAgY2FzZSAkLlRBQlVMQVRJT046XG4gICAgICAgICAgICBjYXNlICQuRk9STV9GRUVEOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkJFRk9SRV9BVFRSSUJVVEVfTkFNRTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5TT0xJRFVTOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlNFTEZfQ0xPU0lOR19TVEFSVF9UQUc7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuR1JFQVRFUl9USEFOX1NJR046IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuREFUQTtcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXRDdXJyZW50VGFnVG9rZW4oKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5OVUxMOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi51bmV4cGVjdGVkTnVsbENoYXJhY3Rlcik7XG4gICAgICAgICAgICAgICAgdG9rZW4udGFnTmFtZSArPSBSRVBMQUNFTUVOVF9DSEFSQUNURVI7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuRU9GOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5lb2ZJblRhZyk7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdEVPRlRva2VuKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgdG9rZW4udGFnTmFtZSArPSBTdHJpbmcuZnJvbUNvZGVQb2ludChpc0FzY2lpVXBwZXIoY3ApID8gdG9Bc2NpaUxvd2VyKGNwKSA6IGNwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBSQ0RBVEEgbGVzcy10aGFuIHNpZ24gc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZVJjZGF0YUxlc3NUaGFuU2lnbihjcCkge1xuICAgICAgICBpZiAoY3AgPT09ICQuU09MSURVUykge1xuICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlJDREFUQV9FTkRfVEFHX09QRU47XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9lbWl0Q2hhcnMoJzwnKTtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5SQ0RBVEE7XG4gICAgICAgICAgICB0aGlzLl9zdGF0ZVJjZGF0YShjcCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gUkNEQVRBIGVuZCB0YWcgb3BlbiBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlUmNkYXRhRW5kVGFnT3BlbihjcCkge1xuICAgICAgICBpZiAoaXNBc2NpaUxldHRlcihjcCkpIHtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5SQ0RBVEFfRU5EX1RBR19OQU1FO1xuICAgICAgICAgICAgdGhpcy5fc3RhdGVSY2RhdGFFbmRUYWdOYW1lKGNwKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX2VtaXRDaGFycygnPC8nKTtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5SQ0RBVEE7XG4gICAgICAgICAgICB0aGlzLl9zdGF0ZVJjZGF0YShjcCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgaGFuZGxlU3BlY2lhbEVuZFRhZyhfY3ApIHtcbiAgICAgICAgaWYgKCF0aGlzLnByZXByb2Nlc3Nvci5zdGFydHNXaXRoKHRoaXMubGFzdFN0YXJ0VGFnTmFtZSwgZmFsc2UpKSB7XG4gICAgICAgICAgICByZXR1cm4gIXRoaXMuX2Vuc3VyZUhpYmVybmF0aW9uKCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fY3JlYXRlRW5kVGFnVG9rZW4oKTtcbiAgICAgICAgY29uc3QgdG9rZW4gPSB0aGlzLmN1cnJlbnRUb2tlbjtcbiAgICAgICAgdG9rZW4udGFnTmFtZSA9IHRoaXMubGFzdFN0YXJ0VGFnTmFtZTtcbiAgICAgICAgY29uc3QgY3AgPSB0aGlzLnByZXByb2Nlc3Nvci5wZWVrKHRoaXMubGFzdFN0YXJ0VGFnTmFtZS5sZW5ndGgpO1xuICAgICAgICBzd2l0Y2ggKGNwKSB7XG4gICAgICAgICAgICBjYXNlICQuU1BBQ0U6XG4gICAgICAgICAgICBjYXNlICQuTElORV9GRUVEOlxuICAgICAgICAgICAgY2FzZSAkLlRBQlVMQVRJT046XG4gICAgICAgICAgICBjYXNlICQuRk9STV9GRUVEOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fYWR2YW5jZUJ5KHRoaXMubGFzdFN0YXJ0VGFnTmFtZS5sZW5ndGgpO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5CRUZPUkVfQVRUUklCVVRFX05BTUU7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLlNPTElEVVM6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9hZHZhbmNlQnkodGhpcy5sYXN0U3RhcnRUYWdOYW1lLmxlbmd0aCk7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlNFTEZfQ0xPU0lOR19TVEFSVF9UQUc7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkdSRUFURVJfVEhBTl9TSUdOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fYWR2YW5jZUJ5KHRoaXMubGFzdFN0YXJ0VGFnTmFtZS5sZW5ndGgpO1xuICAgICAgICAgICAgICAgIHRoaXMuZW1pdEN1cnJlbnRUYWdUb2tlbigpO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5EQVRBO1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gIXRoaXMuX2Vuc3VyZUhpYmVybmF0aW9uKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gUkNEQVRBIGVuZCB0YWcgbmFtZSBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlUmNkYXRhRW5kVGFnTmFtZShjcCkge1xuICAgICAgICBpZiAodGhpcy5oYW5kbGVTcGVjaWFsRW5kVGFnKGNwKSkge1xuICAgICAgICAgICAgdGhpcy5fZW1pdENoYXJzKCc8LycpO1xuICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlJDREFUQTtcbiAgICAgICAgICAgIHRoaXMuX3N0YXRlUmNkYXRhKGNwKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBSQVdURVhUIGxlc3MtdGhhbiBzaWduIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVSYXd0ZXh0TGVzc1RoYW5TaWduKGNwKSB7XG4gICAgICAgIGlmIChjcCA9PT0gJC5TT0xJRFVTKSB7XG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuUkFXVEVYVF9FTkRfVEFHX09QRU47XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9lbWl0Q2hhcnMoJzwnKTtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5SQVdURVhUO1xuICAgICAgICAgICAgdGhpcy5fc3RhdGVSYXd0ZXh0KGNwKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBSQVdURVhUIGVuZCB0YWcgb3BlbiBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlUmF3dGV4dEVuZFRhZ09wZW4oY3ApIHtcbiAgICAgICAgaWYgKGlzQXNjaWlMZXR0ZXIoY3ApKSB7XG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuUkFXVEVYVF9FTkRfVEFHX05BTUU7XG4gICAgICAgICAgICB0aGlzLl9zdGF0ZVJhd3RleHRFbmRUYWdOYW1lKGNwKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX2VtaXRDaGFycygnPC8nKTtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5SQVdURVhUO1xuICAgICAgICAgICAgdGhpcy5fc3RhdGVSYXd0ZXh0KGNwKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBSQVdURVhUIGVuZCB0YWcgbmFtZSBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlUmF3dGV4dEVuZFRhZ05hbWUoY3ApIHtcbiAgICAgICAgaWYgKHRoaXMuaGFuZGxlU3BlY2lhbEVuZFRhZyhjcCkpIHtcbiAgICAgICAgICAgIHRoaXMuX2VtaXRDaGFycygnPC8nKTtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5SQVdURVhUO1xuICAgICAgICAgICAgdGhpcy5fc3RhdGVSYXd0ZXh0KGNwKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBTY3JpcHQgZGF0YSBsZXNzLXRoYW4gc2lnbiBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlU2NyaXB0RGF0YUxlc3NUaGFuU2lnbihjcCkge1xuICAgICAgICBzd2l0Y2ggKGNwKSB7XG4gICAgICAgICAgICBjYXNlICQuU09MSURVUzoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5TQ1JJUFRfREFUQV9FTkRfVEFHX09QRU47XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuRVhDTEFNQVRJT05fTUFSSzoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5TQ1JJUFRfREFUQV9FU0NBUEVfU1RBUlQ7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdENoYXJzKCc8IScpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRDaGFycygnPCcpO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5TQ1JJUFRfREFUQTtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZVNjcmlwdERhdGEoY3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vIFNjcmlwdCBkYXRhIGVuZCB0YWcgb3BlbiBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlU2NyaXB0RGF0YUVuZFRhZ09wZW4oY3ApIHtcbiAgICAgICAgaWYgKGlzQXNjaWlMZXR0ZXIoY3ApKSB7XG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuU0NSSVBUX0RBVEFfRU5EX1RBR19OQU1FO1xuICAgICAgICAgICAgdGhpcy5fc3RhdGVTY3JpcHREYXRhRW5kVGFnTmFtZShjcCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9lbWl0Q2hhcnMoJzwvJyk7XG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuU0NSSVBUX0RBVEE7XG4gICAgICAgICAgICB0aGlzLl9zdGF0ZVNjcmlwdERhdGEoY3ApO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8vIFNjcmlwdCBkYXRhIGVuZCB0YWcgbmFtZSBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlU2NyaXB0RGF0YUVuZFRhZ05hbWUoY3ApIHtcbiAgICAgICAgaWYgKHRoaXMuaGFuZGxlU3BlY2lhbEVuZFRhZyhjcCkpIHtcbiAgICAgICAgICAgIHRoaXMuX2VtaXRDaGFycygnPC8nKTtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5TQ1JJUFRfREFUQTtcbiAgICAgICAgICAgIHRoaXMuX3N0YXRlU2NyaXB0RGF0YShjcCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gU2NyaXB0IGRhdGEgZXNjYXBlIHN0YXJ0IHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVTY3JpcHREYXRhRXNjYXBlU3RhcnQoY3ApIHtcbiAgICAgICAgaWYgKGNwID09PSAkLkhZUEhFTl9NSU5VUykge1xuICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlNDUklQVF9EQVRBX0VTQ0FQRV9TVEFSVF9EQVNIO1xuICAgICAgICAgICAgdGhpcy5fZW1pdENoYXJzKCctJyk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuU0NSSVBUX0RBVEE7XG4gICAgICAgICAgICB0aGlzLl9zdGF0ZVNjcmlwdERhdGEoY3ApO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8vIFNjcmlwdCBkYXRhIGVzY2FwZSBzdGFydCBkYXNoIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVTY3JpcHREYXRhRXNjYXBlU3RhcnREYXNoKGNwKSB7XG4gICAgICAgIGlmIChjcCA9PT0gJC5IWVBIRU5fTUlOVVMpIHtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5TQ1JJUFRfREFUQV9FU0NBUEVEX0RBU0hfREFTSDtcbiAgICAgICAgICAgIHRoaXMuX2VtaXRDaGFycygnLScpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlNDUklQVF9EQVRBO1xuICAgICAgICAgICAgdGhpcy5fc3RhdGVTY3JpcHREYXRhKGNwKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBTY3JpcHQgZGF0YSBlc2NhcGVkIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVTY3JpcHREYXRhRXNjYXBlZChjcCkge1xuICAgICAgICBzd2l0Y2ggKGNwKSB7XG4gICAgICAgICAgICBjYXNlICQuSFlQSEVOX01JTlVTOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlNDUklQVF9EQVRBX0VTQ0FQRURfREFTSDtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0Q2hhcnMoJy0nKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5MRVNTX1RIQU5fU0lHTjoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5TQ1JJUFRfREFUQV9FU0NBUEVEX0xFU1NfVEhBTl9TSUdOO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLk5VTEw6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLnVuZXhwZWN0ZWROdWxsQ2hhcmFjdGVyKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0Q2hhcnMoUkVQTEFDRU1FTlRfQ0hBUkFDVEVSKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5FT0Y6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLmVvZkluU2NyaXB0SHRtbENvbW1lbnRMaWtlVGV4dCk7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdEVPRlRva2VuKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdENvZGVQb2ludChjcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gU2NyaXB0IGRhdGEgZXNjYXBlZCBkYXNoIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVTY3JpcHREYXRhRXNjYXBlZERhc2goY3ApIHtcbiAgICAgICAgc3dpdGNoIChjcCkge1xuICAgICAgICAgICAgY2FzZSAkLkhZUEhFTl9NSU5VUzoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5TQ1JJUFRfREFUQV9FU0NBUEVEX0RBU0hfREFTSDtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0Q2hhcnMoJy0nKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5MRVNTX1RIQU5fU0lHTjoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5TQ1JJUFRfREFUQV9FU0NBUEVEX0xFU1NfVEhBTl9TSUdOO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLk5VTEw6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLnVuZXhwZWN0ZWROdWxsQ2hhcmFjdGVyKTtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuU0NSSVBUX0RBVEFfRVNDQVBFRDtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0Q2hhcnMoUkVQTEFDRU1FTlRfQ0hBUkFDVEVSKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5FT0Y6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLmVvZkluU2NyaXB0SHRtbENvbW1lbnRMaWtlVGV4dCk7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdEVPRlRva2VuKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlNDUklQVF9EQVRBX0VTQ0FQRUQ7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdENvZGVQb2ludChjcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gU2NyaXB0IGRhdGEgZXNjYXBlZCBkYXNoIGRhc2ggc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZVNjcmlwdERhdGFFc2NhcGVkRGFzaERhc2goY3ApIHtcbiAgICAgICAgc3dpdGNoIChjcCkge1xuICAgICAgICAgICAgY2FzZSAkLkhZUEhFTl9NSU5VUzoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRDaGFycygnLScpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkxFU1NfVEhBTl9TSUdOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlNDUklQVF9EQVRBX0VTQ0FQRURfTEVTU19USEFOX1NJR047XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuR1JFQVRFUl9USEFOX1NJR046IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuU0NSSVBUX0RBVEE7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdENoYXJzKCc+Jyk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuTlVMTDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIudW5leHBlY3RlZE51bGxDaGFyYWN0ZXIpO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5TQ1JJUFRfREFUQV9FU0NBUEVEO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRDaGFycyhSRVBMQUNFTUVOVF9DSEFSQUNURVIpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkVPRjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIuZW9mSW5TY3JpcHRIdG1sQ29tbWVudExpa2VUZXh0KTtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0RU9GVG9rZW4oKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuU0NSSVBUX0RBVEFfRVNDQVBFRDtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0Q29kZVBvaW50KGNwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBTY3JpcHQgZGF0YSBlc2NhcGVkIGxlc3MtdGhhbiBzaWduIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVTY3JpcHREYXRhRXNjYXBlZExlc3NUaGFuU2lnbihjcCkge1xuICAgICAgICBpZiAoY3AgPT09ICQuU09MSURVUykge1xuICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlNDUklQVF9EQVRBX0VTQ0FQRURfRU5EX1RBR19PUEVOO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKGlzQXNjaWlMZXR0ZXIoY3ApKSB7XG4gICAgICAgICAgICB0aGlzLl9lbWl0Q2hhcnMoJzwnKTtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5TQ1JJUFRfREFUQV9ET1VCTEVfRVNDQVBFX1NUQVJUO1xuICAgICAgICAgICAgdGhpcy5fc3RhdGVTY3JpcHREYXRhRG91YmxlRXNjYXBlU3RhcnQoY3ApO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fZW1pdENoYXJzKCc8Jyk7XG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuU0NSSVBUX0RBVEFfRVNDQVBFRDtcbiAgICAgICAgICAgIHRoaXMuX3N0YXRlU2NyaXB0RGF0YUVzY2FwZWQoY3ApO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8vIFNjcmlwdCBkYXRhIGVzY2FwZWQgZW5kIHRhZyBvcGVuIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVTY3JpcHREYXRhRXNjYXBlZEVuZFRhZ09wZW4oY3ApIHtcbiAgICAgICAgaWYgKGlzQXNjaWlMZXR0ZXIoY3ApKSB7XG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuU0NSSVBUX0RBVEFfRVNDQVBFRF9FTkRfVEFHX05BTUU7XG4gICAgICAgICAgICB0aGlzLl9zdGF0ZVNjcmlwdERhdGFFc2NhcGVkRW5kVGFnTmFtZShjcCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9lbWl0Q2hhcnMoJzwvJyk7XG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuU0NSSVBUX0RBVEFfRVNDQVBFRDtcbiAgICAgICAgICAgIHRoaXMuX3N0YXRlU2NyaXB0RGF0YUVzY2FwZWQoY3ApO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8vIFNjcmlwdCBkYXRhIGVzY2FwZWQgZW5kIHRhZyBuYW1lIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVTY3JpcHREYXRhRXNjYXBlZEVuZFRhZ05hbWUoY3ApIHtcbiAgICAgICAgaWYgKHRoaXMuaGFuZGxlU3BlY2lhbEVuZFRhZyhjcCkpIHtcbiAgICAgICAgICAgIHRoaXMuX2VtaXRDaGFycygnPC8nKTtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5TQ1JJUFRfREFUQV9FU0NBUEVEO1xuICAgICAgICAgICAgdGhpcy5fc3RhdGVTY3JpcHREYXRhRXNjYXBlZChjcCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gU2NyaXB0IGRhdGEgZG91YmxlIGVzY2FwZSBzdGFydCBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlU2NyaXB0RGF0YURvdWJsZUVzY2FwZVN0YXJ0KGNwKSB7XG4gICAgICAgIGlmICh0aGlzLnByZXByb2Nlc3Nvci5zdGFydHNXaXRoKCQkLlNDUklQVCwgZmFsc2UpICYmXG4gICAgICAgICAgICBpc1NjcmlwdERhdGFEb3VibGVFc2NhcGVTZXF1ZW5jZUVuZCh0aGlzLnByZXByb2Nlc3Nvci5wZWVrKCQkLlNDUklQVC5sZW5ndGgpKSkge1xuICAgICAgICAgICAgdGhpcy5fZW1pdENvZGVQb2ludChjcCk7XG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8ICQkLlNDUklQVC5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRDb2RlUG9pbnQodGhpcy5fY29uc3VtZSgpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5TQ1JJUFRfREFUQV9ET1VCTEVfRVNDQVBFRDtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmICghdGhpcy5fZW5zdXJlSGliZXJuYXRpb24oKSkge1xuICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlNDUklQVF9EQVRBX0VTQ0FQRUQ7XG4gICAgICAgICAgICB0aGlzLl9zdGF0ZVNjcmlwdERhdGFFc2NhcGVkKGNwKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBTY3JpcHQgZGF0YSBkb3VibGUgZXNjYXBlZCBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlU2NyaXB0RGF0YURvdWJsZUVzY2FwZWQoY3ApIHtcbiAgICAgICAgc3dpdGNoIChjcCkge1xuICAgICAgICAgICAgY2FzZSAkLkhZUEhFTl9NSU5VUzoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5TQ1JJUFRfREFUQV9ET1VCTEVfRVNDQVBFRF9EQVNIO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRDaGFycygnLScpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkxFU1NfVEhBTl9TSUdOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlNDUklQVF9EQVRBX0RPVUJMRV9FU0NBUEVEX0xFU1NfVEhBTl9TSUdOO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRDaGFycygnPCcpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLk5VTEw6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLnVuZXhwZWN0ZWROdWxsQ2hhcmFjdGVyKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0Q2hhcnMoUkVQTEFDRU1FTlRfQ0hBUkFDVEVSKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5FT0Y6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLmVvZkluU2NyaXB0SHRtbENvbW1lbnRMaWtlVGV4dCk7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdEVPRlRva2VuKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdENvZGVQb2ludChjcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gU2NyaXB0IGRhdGEgZG91YmxlIGVzY2FwZWQgZGFzaCBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlU2NyaXB0RGF0YURvdWJsZUVzY2FwZWREYXNoKGNwKSB7XG4gICAgICAgIHN3aXRjaCAoY3ApIHtcbiAgICAgICAgICAgIGNhc2UgJC5IWVBIRU5fTUlOVVM6IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuU0NSSVBUX0RBVEFfRE9VQkxFX0VTQ0FQRURfREFTSF9EQVNIO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRDaGFycygnLScpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkxFU1NfVEhBTl9TSUdOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlNDUklQVF9EQVRBX0RPVUJMRV9FU0NBUEVEX0xFU1NfVEhBTl9TSUdOO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRDaGFycygnPCcpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLk5VTEw6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLnVuZXhwZWN0ZWROdWxsQ2hhcmFjdGVyKTtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuU0NSSVBUX0RBVEFfRE9VQkxFX0VTQ0FQRUQ7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdENoYXJzKFJFUExBQ0VNRU5UX0NIQVJBQ1RFUik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuRU9GOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5lb2ZJblNjcmlwdEh0bWxDb21tZW50TGlrZVRleHQpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRFT0ZUb2tlbigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5TQ1JJUFRfREFUQV9ET1VCTEVfRVNDQVBFRDtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0Q29kZVBvaW50KGNwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBTY3JpcHQgZGF0YSBkb3VibGUgZXNjYXBlZCBkYXNoIGRhc2ggc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZVNjcmlwdERhdGFEb3VibGVFc2NhcGVkRGFzaERhc2goY3ApIHtcbiAgICAgICAgc3dpdGNoIChjcCkge1xuICAgICAgICAgICAgY2FzZSAkLkhZUEhFTl9NSU5VUzoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRDaGFycygnLScpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkxFU1NfVEhBTl9TSUdOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlNDUklQVF9EQVRBX0RPVUJMRV9FU0NBUEVEX0xFU1NfVEhBTl9TSUdOO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRDaGFycygnPCcpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkdSRUFURVJfVEhBTl9TSUdOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlNDUklQVF9EQVRBO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRDaGFycygnPicpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLk5VTEw6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLnVuZXhwZWN0ZWROdWxsQ2hhcmFjdGVyKTtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuU0NSSVBUX0RBVEFfRE9VQkxFX0VTQ0FQRUQ7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdENoYXJzKFJFUExBQ0VNRU5UX0NIQVJBQ1RFUik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuRU9GOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5lb2ZJblNjcmlwdEh0bWxDb21tZW50TGlrZVRleHQpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRFT0ZUb2tlbigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5TQ1JJUFRfREFUQV9ET1VCTEVfRVNDQVBFRDtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0Q29kZVBvaW50KGNwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBTY3JpcHQgZGF0YSBkb3VibGUgZXNjYXBlZCBsZXNzLXRoYW4gc2lnbiBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlU2NyaXB0RGF0YURvdWJsZUVzY2FwZWRMZXNzVGhhblNpZ24oY3ApIHtcbiAgICAgICAgaWYgKGNwID09PSAkLlNPTElEVVMpIHtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5TQ1JJUFRfREFUQV9ET1VCTEVfRVNDQVBFX0VORDtcbiAgICAgICAgICAgIHRoaXMuX2VtaXRDaGFycygnLycpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlNDUklQVF9EQVRBX0RPVUJMRV9FU0NBUEVEO1xuICAgICAgICAgICAgdGhpcy5fc3RhdGVTY3JpcHREYXRhRG91YmxlRXNjYXBlZChjcCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gU2NyaXB0IGRhdGEgZG91YmxlIGVzY2FwZSBlbmQgc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZVNjcmlwdERhdGFEb3VibGVFc2NhcGVFbmQoY3ApIHtcbiAgICAgICAgaWYgKHRoaXMucHJlcHJvY2Vzc29yLnN0YXJ0c1dpdGgoJCQuU0NSSVBULCBmYWxzZSkgJiZcbiAgICAgICAgICAgIGlzU2NyaXB0RGF0YURvdWJsZUVzY2FwZVNlcXVlbmNlRW5kKHRoaXMucHJlcHJvY2Vzc29yLnBlZWsoJCQuU0NSSVBULmxlbmd0aCkpKSB7XG4gICAgICAgICAgICB0aGlzLl9lbWl0Q29kZVBvaW50KGNwKTtcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgJCQuU0NSSVBULmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdENvZGVQb2ludCh0aGlzLl9jb25zdW1lKCkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlNDUklQVF9EQVRBX0VTQ0FQRUQ7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoIXRoaXMuX2Vuc3VyZUhpYmVybmF0aW9uKCkpIHtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5TQ1JJUFRfREFUQV9ET1VCTEVfRVNDQVBFRDtcbiAgICAgICAgICAgIHRoaXMuX3N0YXRlU2NyaXB0RGF0YURvdWJsZUVzY2FwZWQoY3ApO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8vIEJlZm9yZSBhdHRyaWJ1dGUgbmFtZSBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlQmVmb3JlQXR0cmlidXRlTmFtZShjcCkge1xuICAgICAgICBzd2l0Y2ggKGNwKSB7XG4gICAgICAgICAgICBjYXNlICQuU1BBQ0U6XG4gICAgICAgICAgICBjYXNlICQuTElORV9GRUVEOlxuICAgICAgICAgICAgY2FzZSAkLlRBQlVMQVRJT046XG4gICAgICAgICAgICBjYXNlICQuRk9STV9GRUVEOiB7XG4gICAgICAgICAgICAgICAgLy8gSWdub3JlIHdoaXRlc3BhY2VcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5TT0xJRFVTOlxuICAgICAgICAgICAgY2FzZSAkLkdSRUFURVJfVEhBTl9TSUdOOlxuICAgICAgICAgICAgY2FzZSAkLkVPRjoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5BRlRFUl9BVFRSSUJVVEVfTkFNRTtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUFmdGVyQXR0cmlidXRlTmFtZShjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuRVFVQUxTX1NJR046IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLnVuZXhwZWN0ZWRFcXVhbHNTaWduQmVmb3JlQXR0cmlidXRlTmFtZSk7XG4gICAgICAgICAgICAgICAgdGhpcy5fY3JlYXRlQXR0cignPScpO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5BVFRSSUJVVEVfTkFNRTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9jcmVhdGVBdHRyKCcnKTtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQVRUUklCVVRFX05BTUU7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVBdHRyaWJ1dGVOYW1lKGNwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBBdHRyaWJ1dGUgbmFtZSBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlQXR0cmlidXRlTmFtZShjcCkge1xuICAgICAgICBzd2l0Y2ggKGNwKSB7XG4gICAgICAgICAgICBjYXNlICQuU1BBQ0U6XG4gICAgICAgICAgICBjYXNlICQuTElORV9GRUVEOlxuICAgICAgICAgICAgY2FzZSAkLlRBQlVMQVRJT046XG4gICAgICAgICAgICBjYXNlICQuRk9STV9GRUVEOlxuICAgICAgICAgICAgY2FzZSAkLlNPTElEVVM6XG4gICAgICAgICAgICBjYXNlICQuR1JFQVRFUl9USEFOX1NJR046XG4gICAgICAgICAgICBjYXNlICQuRU9GOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fbGVhdmVBdHRyTmFtZSgpO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5BRlRFUl9BVFRSSUJVVEVfTkFNRTtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUFmdGVyQXR0cmlidXRlTmFtZShjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuRVFVQUxTX1NJR046IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9sZWF2ZUF0dHJOYW1lKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkJFRk9SRV9BVFRSSUJVVEVfVkFMVUU7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuUVVPVEFUSU9OX01BUks6XG4gICAgICAgICAgICBjYXNlICQuQVBPU1RST1BIRTpcbiAgICAgICAgICAgIGNhc2UgJC5MRVNTX1RIQU5fU0lHTjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIudW5leHBlY3RlZENoYXJhY3RlckluQXR0cmlidXRlTmFtZSk7XG4gICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50QXR0ci5uYW1lICs9IFN0cmluZy5mcm9tQ29kZVBvaW50KGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5OVUxMOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi51bmV4cGVjdGVkTnVsbENoYXJhY3Rlcik7XG4gICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50QXR0ci5uYW1lICs9IFJFUExBQ0VNRU5UX0NIQVJBQ1RFUjtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRBdHRyLm5hbWUgKz0gU3RyaW5nLmZyb21Db2RlUG9pbnQoaXNBc2NpaVVwcGVyKGNwKSA/IHRvQXNjaWlMb3dlcihjcCkgOiBjcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gQWZ0ZXIgYXR0cmlidXRlIG5hbWUgc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZUFmdGVyQXR0cmlidXRlTmFtZShjcCkge1xuICAgICAgICBzd2l0Y2ggKGNwKSB7XG4gICAgICAgICAgICBjYXNlICQuU1BBQ0U6XG4gICAgICAgICAgICBjYXNlICQuTElORV9GRUVEOlxuICAgICAgICAgICAgY2FzZSAkLlRBQlVMQVRJT046XG4gICAgICAgICAgICBjYXNlICQuRk9STV9GRUVEOiB7XG4gICAgICAgICAgICAgICAgLy8gSWdub3JlIHdoaXRlc3BhY2VcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5TT0xJRFVTOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlNFTEZfQ0xPU0lOR19TVEFSVF9UQUc7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuRVFVQUxTX1NJR046IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQkVGT1JFX0FUVFJJQlVURV9WQUxVRTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5HUkVBVEVSX1RIQU5fU0lHTjoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5EQVRBO1xuICAgICAgICAgICAgICAgIHRoaXMuZW1pdEN1cnJlbnRUYWdUb2tlbigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkVPRjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIuZW9mSW5UYWcpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRFT0ZUb2tlbigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2NyZWF0ZUF0dHIoJycpO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5BVFRSSUJVVEVfTkFNRTtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUF0dHJpYnV0ZU5hbWUoY3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vIEJlZm9yZSBhdHRyaWJ1dGUgdmFsdWUgc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZUJlZm9yZUF0dHJpYnV0ZVZhbHVlKGNwKSB7XG4gICAgICAgIHN3aXRjaCAoY3ApIHtcbiAgICAgICAgICAgIGNhc2UgJC5TUEFDRTpcbiAgICAgICAgICAgIGNhc2UgJC5MSU5FX0ZFRUQ6XG4gICAgICAgICAgICBjYXNlICQuVEFCVUxBVElPTjpcbiAgICAgICAgICAgIGNhc2UgJC5GT1JNX0ZFRUQ6IHtcbiAgICAgICAgICAgICAgICAvLyBJZ25vcmUgd2hpdGVzcGFjZVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLlFVT1RBVElPTl9NQVJLOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkFUVFJJQlVURV9WQUxVRV9ET1VCTEVfUVVPVEVEO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkFQT1NUUk9QSEU6IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQVRUUklCVVRFX1ZBTFVFX1NJTkdMRV9RVU9URUQ7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuR1JFQVRFUl9USEFOX1NJR046IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLm1pc3NpbmdBdHRyaWJ1dGVWYWx1ZSk7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkRBVEE7XG4gICAgICAgICAgICAgICAgdGhpcy5lbWl0Q3VycmVudFRhZ1Rva2VuKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkFUVFJJQlVURV9WQUxVRV9VTlFVT1RFRDtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUF0dHJpYnV0ZVZhbHVlVW5xdW90ZWQoY3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vIEF0dHJpYnV0ZSB2YWx1ZSAoZG91YmxlLXF1b3RlZCkgc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZUF0dHJpYnV0ZVZhbHVlRG91YmxlUXVvdGVkKGNwKSB7XG4gICAgICAgIHN3aXRjaCAoY3ApIHtcbiAgICAgICAgICAgIGNhc2UgJC5RVU9UQVRJT05fTUFSSzoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5BRlRFUl9BVFRSSUJVVEVfVkFMVUVfUVVPVEVEO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkFNUEVSU0FORDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXJ0Q2hhcmFjdGVyUmVmZXJlbmNlKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuTlVMTDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIudW5leHBlY3RlZE51bGxDaGFyYWN0ZXIpO1xuICAgICAgICAgICAgICAgIHRoaXMuY3VycmVudEF0dHIudmFsdWUgKz0gUkVQTEFDRU1FTlRfQ0hBUkFDVEVSO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkVPRjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIuZW9mSW5UYWcpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRFT0ZUb2tlbigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIHRoaXMuY3VycmVudEF0dHIudmFsdWUgKz0gU3RyaW5nLmZyb21Db2RlUG9pbnQoY3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vIEF0dHJpYnV0ZSB2YWx1ZSAoc2luZ2xlLXF1b3RlZCkgc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZUF0dHJpYnV0ZVZhbHVlU2luZ2xlUXVvdGVkKGNwKSB7XG4gICAgICAgIHN3aXRjaCAoY3ApIHtcbiAgICAgICAgICAgIGNhc2UgJC5BUE9TVFJPUEhFOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkFGVEVSX0FUVFJJQlVURV9WQUxVRV9RVU9URUQ7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuQU1QRVJTQU5EOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhcnRDaGFyYWN0ZXJSZWZlcmVuY2UoKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5OVUxMOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi51bmV4cGVjdGVkTnVsbENoYXJhY3Rlcik7XG4gICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50QXR0ci52YWx1ZSArPSBSRVBMQUNFTUVOVF9DSEFSQUNURVI7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuRU9GOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5lb2ZJblRhZyk7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdEVPRlRva2VuKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50QXR0ci52YWx1ZSArPSBTdHJpbmcuZnJvbUNvZGVQb2ludChjcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gQXR0cmlidXRlIHZhbHVlICh1bnF1b3RlZCkgc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZUF0dHJpYnV0ZVZhbHVlVW5xdW90ZWQoY3ApIHtcbiAgICAgICAgc3dpdGNoIChjcCkge1xuICAgICAgICAgICAgY2FzZSAkLlNQQUNFOlxuICAgICAgICAgICAgY2FzZSAkLkxJTkVfRkVFRDpcbiAgICAgICAgICAgIGNhc2UgJC5UQUJVTEFUSU9OOlxuICAgICAgICAgICAgY2FzZSAkLkZPUk1fRkVFRDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2xlYXZlQXR0clZhbHVlKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkJFRk9SRV9BVFRSSUJVVEVfTkFNRTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5BTVBFUlNBTkQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGFydENoYXJhY3RlclJlZmVyZW5jZSgpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkdSRUFURVJfVEhBTl9TSUdOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fbGVhdmVBdHRyVmFsdWUoKTtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuREFUQTtcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXRDdXJyZW50VGFnVG9rZW4oKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5OVUxMOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi51bmV4cGVjdGVkTnVsbENoYXJhY3Rlcik7XG4gICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50QXR0ci52YWx1ZSArPSBSRVBMQUNFTUVOVF9DSEFSQUNURVI7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuUVVPVEFUSU9OX01BUks6XG4gICAgICAgICAgICBjYXNlICQuQVBPU1RST1BIRTpcbiAgICAgICAgICAgIGNhc2UgJC5MRVNTX1RIQU5fU0lHTjpcbiAgICAgICAgICAgIGNhc2UgJC5FUVVBTFNfU0lHTjpcbiAgICAgICAgICAgIGNhc2UgJC5HUkFWRV9BQ0NFTlQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLnVuZXhwZWN0ZWRDaGFyYWN0ZXJJblVucXVvdGVkQXR0cmlidXRlVmFsdWUpO1xuICAgICAgICAgICAgICAgIHRoaXMuY3VycmVudEF0dHIudmFsdWUgKz0gU3RyaW5nLmZyb21Db2RlUG9pbnQoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkVPRjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIuZW9mSW5UYWcpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRFT0ZUb2tlbigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIHRoaXMuY3VycmVudEF0dHIudmFsdWUgKz0gU3RyaW5nLmZyb21Db2RlUG9pbnQoY3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vIEFmdGVyIGF0dHJpYnV0ZSB2YWx1ZSAocXVvdGVkKSBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlQWZ0ZXJBdHRyaWJ1dGVWYWx1ZVF1b3RlZChjcCkge1xuICAgICAgICBzd2l0Y2ggKGNwKSB7XG4gICAgICAgICAgICBjYXNlICQuU1BBQ0U6XG4gICAgICAgICAgICBjYXNlICQuTElORV9GRUVEOlxuICAgICAgICAgICAgY2FzZSAkLlRBQlVMQVRJT046XG4gICAgICAgICAgICBjYXNlICQuRk9STV9GRUVEOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fbGVhdmVBdHRyVmFsdWUoKTtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQkVGT1JFX0FUVFJJQlVURV9OQU1FO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLlNPTElEVVM6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9sZWF2ZUF0dHJWYWx1ZSgpO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5TRUxGX0NMT1NJTkdfU1RBUlRfVEFHO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkdSRUFURVJfVEhBTl9TSUdOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fbGVhdmVBdHRyVmFsdWUoKTtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuREFUQTtcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXRDdXJyZW50VGFnVG9rZW4oKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5FT0Y6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLmVvZkluVGFnKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0RU9GVG9rZW4oKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLm1pc3NpbmdXaGl0ZXNwYWNlQmV0d2VlbkF0dHJpYnV0ZXMpO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5CRUZPUkVfQVRUUklCVVRFX05BTUU7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVCZWZvcmVBdHRyaWJ1dGVOYW1lKGNwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBTZWxmLWNsb3Npbmcgc3RhcnQgdGFnIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVTZWxmQ2xvc2luZ1N0YXJ0VGFnKGNwKSB7XG4gICAgICAgIHN3aXRjaCAoY3ApIHtcbiAgICAgICAgICAgIGNhc2UgJC5HUkVBVEVSX1RIQU5fU0lHTjoge1xuICAgICAgICAgICAgICAgIGNvbnN0IHRva2VuID0gdGhpcy5jdXJyZW50VG9rZW47XG4gICAgICAgICAgICAgICAgdG9rZW4uc2VsZkNsb3NpbmcgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5EQVRBO1xuICAgICAgICAgICAgICAgIHRoaXMuZW1pdEN1cnJlbnRUYWdUb2tlbigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkVPRjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIuZW9mSW5UYWcpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRFT0ZUb2tlbigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIudW5leHBlY3RlZFNvbGlkdXNJblRhZyk7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkJFRk9SRV9BVFRSSUJVVEVfTkFNRTtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUJlZm9yZUF0dHJpYnV0ZU5hbWUoY3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vIEJvZ3VzIGNvbW1lbnQgc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZUJvZ3VzQ29tbWVudChjcCkge1xuICAgICAgICBjb25zdCB0b2tlbiA9IHRoaXMuY3VycmVudFRva2VuO1xuICAgICAgICBzd2l0Y2ggKGNwKSB7XG4gICAgICAgICAgICBjYXNlICQuR1JFQVRFUl9USEFOX1NJR046IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuREFUQTtcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXRDdXJyZW50Q29tbWVudCh0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuRU9GOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5lbWl0Q3VycmVudENvbW1lbnQodG9rZW4pO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRFT0ZUb2tlbigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLk5VTEw6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLnVuZXhwZWN0ZWROdWxsQ2hhcmFjdGVyKTtcbiAgICAgICAgICAgICAgICB0b2tlbi5kYXRhICs9IFJFUExBQ0VNRU5UX0NIQVJBQ1RFUjtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICB0b2tlbi5kYXRhICs9IFN0cmluZy5mcm9tQ29kZVBvaW50KGNwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBNYXJrdXAgZGVjbGFyYXRpb24gb3BlbiBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlTWFya3VwRGVjbGFyYXRpb25PcGVuKGNwKSB7XG4gICAgICAgIGlmICh0aGlzLl9jb25zdW1lU2VxdWVuY2VJZk1hdGNoKCQkLkRBU0hfREFTSCwgdHJ1ZSkpIHtcbiAgICAgICAgICAgIHRoaXMuX2NyZWF0ZUNvbW1lbnRUb2tlbigkJC5EQVNIX0RBU0gubGVuZ3RoICsgMSk7XG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQ09NTUVOVF9TVEFSVDtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmICh0aGlzLl9jb25zdW1lU2VxdWVuY2VJZk1hdGNoKCQkLkRPQ1RZUEUsIGZhbHNlKSkge1xuICAgICAgICAgICAgLy8gTk9URTogRG9jdHlwZXMgdG9rZW5zIGFyZSBjcmVhdGVkIHdpdGhvdXQgZml4ZWQgb2Zmc2V0cy4gV2Uga2VlcCB0cmFjayBvZiB0aGUgbW9tZW50IGEgZG9jdHlwZSAqbWlnaHQqIHN0YXJ0IGhlcmUuXG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRMb2NhdGlvbiA9IHRoaXMuZ2V0Q3VycmVudExvY2F0aW9uKCQkLkRPQ1RZUEUubGVuZ3RoICsgMSk7XG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuRE9DVFlQRTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmICh0aGlzLl9jb25zdW1lU2VxdWVuY2VJZk1hdGNoKCQkLkNEQVRBX1NUQVJULCB0cnVlKSkge1xuICAgICAgICAgICAgaWYgKHRoaXMuaW5Gb3JlaWduTm9kZSkge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5DREFUQV9TRUNUSU9OO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5jZGF0YUluSHRtbENvbnRlbnQpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2NyZWF0ZUNvbW1lbnRUb2tlbigkJC5DREFUQV9TVEFSVC5sZW5ndGggKyAxKTtcbiAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRUb2tlbi5kYXRhID0gJ1tDREFUQVsnO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5CT0dVU19DT01NRU5UO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8vTk9URTogU2VxdWVuY2UgbG9va3VwcyBjYW4gYmUgYWJydXB0ZWQgYnkgaGliZXJuYXRpb24uIEluIHRoYXQgY2FzZSwgbG9va3VwXG4gICAgICAgIC8vcmVzdWx0cyBhcmUgbm8gbG9uZ2VyIHZhbGlkIGFuZCB3ZSB3aWxsIG5lZWQgdG8gc3RhcnQgb3Zlci5cbiAgICAgICAgZWxzZSBpZiAoIXRoaXMuX2Vuc3VyZUhpYmVybmF0aW9uKCkpIHtcbiAgICAgICAgICAgIHRoaXMuX2VycihFUlIuaW5jb3JyZWN0bHlPcGVuZWRDb21tZW50KTtcbiAgICAgICAgICAgIHRoaXMuX2NyZWF0ZUNvbW1lbnRUb2tlbigyKTtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5CT0dVU19DT01NRU5UO1xuICAgICAgICAgICAgdGhpcy5fc3RhdGVCb2d1c0NvbW1lbnQoY3ApO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8vIENvbW1lbnQgc3RhcnQgc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZUNvbW1lbnRTdGFydChjcCkge1xuICAgICAgICBzd2l0Y2ggKGNwKSB7XG4gICAgICAgICAgICBjYXNlICQuSFlQSEVOX01JTlVTOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkNPTU1FTlRfU1RBUlRfREFTSDtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5HUkVBVEVSX1RIQU5fU0lHTjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIuYWJydXB0Q2xvc2luZ09mRW1wdHlDb21tZW50KTtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuREFUQTtcbiAgICAgICAgICAgICAgICBjb25zdCB0b2tlbiA9IHRoaXMuY3VycmVudFRva2VuO1xuICAgICAgICAgICAgICAgIHRoaXMuZW1pdEN1cnJlbnRDb21tZW50KHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQ09NTUVOVDtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUNvbW1lbnQoY3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vIENvbW1lbnQgc3RhcnQgZGFzaCBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlQ29tbWVudFN0YXJ0RGFzaChjcCkge1xuICAgICAgICBjb25zdCB0b2tlbiA9IHRoaXMuY3VycmVudFRva2VuO1xuICAgICAgICBzd2l0Y2ggKGNwKSB7XG4gICAgICAgICAgICBjYXNlICQuSFlQSEVOX01JTlVTOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkNPTU1FTlRfRU5EO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkdSRUFURVJfVEhBTl9TSUdOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5hYnJ1cHRDbG9zaW5nT2ZFbXB0eUNvbW1lbnQpO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5EQVRBO1xuICAgICAgICAgICAgICAgIHRoaXMuZW1pdEN1cnJlbnRDb21tZW50KHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5FT0Y6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLmVvZkluQ29tbWVudCk7XG4gICAgICAgICAgICAgICAgdGhpcy5lbWl0Q3VycmVudENvbW1lbnQodG9rZW4pO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRFT0ZUb2tlbigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIHRva2VuLmRhdGEgKz0gJy0nO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5DT01NRU5UO1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQ29tbWVudChjcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gQ29tbWVudCBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlQ29tbWVudChjcCkge1xuICAgICAgICBjb25zdCB0b2tlbiA9IHRoaXMuY3VycmVudFRva2VuO1xuICAgICAgICBzd2l0Y2ggKGNwKSB7XG4gICAgICAgICAgICBjYXNlICQuSFlQSEVOX01JTlVTOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkNPTU1FTlRfRU5EX0RBU0g7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuTEVTU19USEFOX1NJR046IHtcbiAgICAgICAgICAgICAgICB0b2tlbi5kYXRhICs9ICc8JztcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQ09NTUVOVF9MRVNTX1RIQU5fU0lHTjtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5OVUxMOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi51bmV4cGVjdGVkTnVsbENoYXJhY3Rlcik7XG4gICAgICAgICAgICAgICAgdG9rZW4uZGF0YSArPSBSRVBMQUNFTUVOVF9DSEFSQUNURVI7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuRU9GOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5lb2ZJbkNvbW1lbnQpO1xuICAgICAgICAgICAgICAgIHRoaXMuZW1pdEN1cnJlbnRDb21tZW50KHRva2VuKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0RU9GVG9rZW4oKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICB0b2tlbi5kYXRhICs9IFN0cmluZy5mcm9tQ29kZVBvaW50KGNwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBDb21tZW50IGxlc3MtdGhhbiBzaWduIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVDb21tZW50TGVzc1RoYW5TaWduKGNwKSB7XG4gICAgICAgIGNvbnN0IHRva2VuID0gdGhpcy5jdXJyZW50VG9rZW47XG4gICAgICAgIHN3aXRjaCAoY3ApIHtcbiAgICAgICAgICAgIGNhc2UgJC5FWENMQU1BVElPTl9NQVJLOiB7XG4gICAgICAgICAgICAgICAgdG9rZW4uZGF0YSArPSAnISc7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkNPTU1FTlRfTEVTU19USEFOX1NJR05fQkFORztcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5MRVNTX1RIQU5fU0lHTjoge1xuICAgICAgICAgICAgICAgIHRva2VuLmRhdGEgKz0gJzwnO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5DT01NRU5UO1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQ29tbWVudChjcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gQ29tbWVudCBsZXNzLXRoYW4gc2lnbiBiYW5nIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVDb21tZW50TGVzc1RoYW5TaWduQmFuZyhjcCkge1xuICAgICAgICBpZiAoY3AgPT09ICQuSFlQSEVOX01JTlVTKSB7XG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQ09NTUVOVF9MRVNTX1RIQU5fU0lHTl9CQU5HX0RBU0g7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQ09NTUVOVDtcbiAgICAgICAgICAgIHRoaXMuX3N0YXRlQ29tbWVudChjcCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gQ29tbWVudCBsZXNzLXRoYW4gc2lnbiBiYW5nIGRhc2ggc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZUNvbW1lbnRMZXNzVGhhblNpZ25CYW5nRGFzaChjcCkge1xuICAgICAgICBpZiAoY3AgPT09ICQuSFlQSEVOX01JTlVTKSB7XG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQ09NTUVOVF9MRVNTX1RIQU5fU0lHTl9CQU5HX0RBU0hfREFTSDtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5DT01NRU5UX0VORF9EQVNIO1xuICAgICAgICAgICAgdGhpcy5fc3RhdGVDb21tZW50RW5kRGFzaChjcCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gQ29tbWVudCBsZXNzLXRoYW4gc2lnbiBiYW5nIGRhc2ggZGFzaCBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlQ29tbWVudExlc3NUaGFuU2lnbkJhbmdEYXNoRGFzaChjcCkge1xuICAgICAgICBpZiAoY3AgIT09ICQuR1JFQVRFUl9USEFOX1NJR04gJiYgY3AgIT09ICQuRU9GKSB7XG4gICAgICAgICAgICB0aGlzLl9lcnIoRVJSLm5lc3RlZENvbW1lbnQpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5DT01NRU5UX0VORDtcbiAgICAgICAgdGhpcy5fc3RhdGVDb21tZW50RW5kKGNwKTtcbiAgICB9XG4gICAgLy8gQ29tbWVudCBlbmQgZGFzaCBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlQ29tbWVudEVuZERhc2goY3ApIHtcbiAgICAgICAgY29uc3QgdG9rZW4gPSB0aGlzLmN1cnJlbnRUb2tlbjtcbiAgICAgICAgc3dpdGNoIChjcCkge1xuICAgICAgICAgICAgY2FzZSAkLkhZUEhFTl9NSU5VUzoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5DT01NRU5UX0VORDtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5FT0Y6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLmVvZkluQ29tbWVudCk7XG4gICAgICAgICAgICAgICAgdGhpcy5lbWl0Q3VycmVudENvbW1lbnQodG9rZW4pO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRFT0ZUb2tlbigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIHRva2VuLmRhdGEgKz0gJy0nO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5DT01NRU5UO1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQ29tbWVudChjcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gQ29tbWVudCBlbmQgc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZUNvbW1lbnRFbmQoY3ApIHtcbiAgICAgICAgY29uc3QgdG9rZW4gPSB0aGlzLmN1cnJlbnRUb2tlbjtcbiAgICAgICAgc3dpdGNoIChjcCkge1xuICAgICAgICAgICAgY2FzZSAkLkdSRUFURVJfVEhBTl9TSUdOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkRBVEE7XG4gICAgICAgICAgICAgICAgdGhpcy5lbWl0Q3VycmVudENvbW1lbnQodG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkVYQ0xBTUFUSU9OX01BUks6IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQ09NTUVOVF9FTkRfQkFORztcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5IWVBIRU5fTUlOVVM6IHtcbiAgICAgICAgICAgICAgICB0b2tlbi5kYXRhICs9ICctJztcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5FT0Y6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLmVvZkluQ29tbWVudCk7XG4gICAgICAgICAgICAgICAgdGhpcy5lbWl0Q3VycmVudENvbW1lbnQodG9rZW4pO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRFT0ZUb2tlbigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIHRva2VuLmRhdGEgKz0gJy0tJztcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQ09NTUVOVDtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUNvbW1lbnQoY3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vIENvbW1lbnQgZW5kIGJhbmcgc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZUNvbW1lbnRFbmRCYW5nKGNwKSB7XG4gICAgICAgIGNvbnN0IHRva2VuID0gdGhpcy5jdXJyZW50VG9rZW47XG4gICAgICAgIHN3aXRjaCAoY3ApIHtcbiAgICAgICAgICAgIGNhc2UgJC5IWVBIRU5fTUlOVVM6IHtcbiAgICAgICAgICAgICAgICB0b2tlbi5kYXRhICs9ICctLSEnO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5DT01NRU5UX0VORF9EQVNIO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkdSRUFURVJfVEhBTl9TSUdOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5pbmNvcnJlY3RseUNsb3NlZENvbW1lbnQpO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5EQVRBO1xuICAgICAgICAgICAgICAgIHRoaXMuZW1pdEN1cnJlbnRDb21tZW50KHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5FT0Y6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLmVvZkluQ29tbWVudCk7XG4gICAgICAgICAgICAgICAgdGhpcy5lbWl0Q3VycmVudENvbW1lbnQodG9rZW4pO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRFT0ZUb2tlbigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIHRva2VuLmRhdGEgKz0gJy0tISc7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkNPTU1FTlQ7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVDb21tZW50KGNwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBET0NUWVBFIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVEb2N0eXBlKGNwKSB7XG4gICAgICAgIHN3aXRjaCAoY3ApIHtcbiAgICAgICAgICAgIGNhc2UgJC5TUEFDRTpcbiAgICAgICAgICAgIGNhc2UgJC5MSU5FX0ZFRUQ6XG4gICAgICAgICAgICBjYXNlICQuVEFCVUxBVElPTjpcbiAgICAgICAgICAgIGNhc2UgJC5GT1JNX0ZFRUQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQkVGT1JFX0RPQ1RZUEVfTkFNRTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5HUkVBVEVSX1RIQU5fU0lHTjoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5CRUZPUkVfRE9DVFlQRV9OQU1FO1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQmVmb3JlRG9jdHlwZU5hbWUoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkVPRjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIuZW9mSW5Eb2N0eXBlKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9jcmVhdGVEb2N0eXBlVG9rZW4obnVsbCk7XG4gICAgICAgICAgICAgICAgY29uc3QgdG9rZW4gPSB0aGlzLmN1cnJlbnRUb2tlbjtcbiAgICAgICAgICAgICAgICB0b2tlbi5mb3JjZVF1aXJrcyA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy5lbWl0Q3VycmVudERvY3R5cGUodG9rZW4pO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRFT0ZUb2tlbigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIubWlzc2luZ1doaXRlc3BhY2VCZWZvcmVEb2N0eXBlTmFtZSk7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkJFRk9SRV9ET0NUWVBFX05BTUU7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVCZWZvcmVEb2N0eXBlTmFtZShjcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gQmVmb3JlIERPQ1RZUEUgbmFtZSBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlQmVmb3JlRG9jdHlwZU5hbWUoY3ApIHtcbiAgICAgICAgaWYgKGlzQXNjaWlVcHBlcihjcCkpIHtcbiAgICAgICAgICAgIHRoaXMuX2NyZWF0ZURvY3R5cGVUb2tlbihTdHJpbmcuZnJvbUNoYXJDb2RlKHRvQXNjaWlMb3dlcihjcCkpKTtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5ET0NUWVBFX05BTUU7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZVxuICAgICAgICAgICAgc3dpdGNoIChjcCkge1xuICAgICAgICAgICAgICAgIGNhc2UgJC5TUEFDRTpcbiAgICAgICAgICAgICAgICBjYXNlICQuTElORV9GRUVEOlxuICAgICAgICAgICAgICAgIGNhc2UgJC5UQUJVTEFUSU9OOlxuICAgICAgICAgICAgICAgIGNhc2UgJC5GT1JNX0ZFRUQ6IHtcbiAgICAgICAgICAgICAgICAgICAgLy8gSWdub3JlIHdoaXRlc3BhY2VcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNhc2UgJC5OVUxMOiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIudW5leHBlY3RlZE51bGxDaGFyYWN0ZXIpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9jcmVhdGVEb2N0eXBlVG9rZW4oUkVQTEFDRU1FTlRfQ0hBUkFDVEVSKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkRPQ1RZUEVfTkFNRTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNhc2UgJC5HUkVBVEVSX1RIQU5fU0lHTjoge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLm1pc3NpbmdEb2N0eXBlTmFtZSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2NyZWF0ZURvY3R5cGVUb2tlbihudWxsKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdG9rZW4gPSB0aGlzLmN1cnJlbnRUb2tlbjtcbiAgICAgICAgICAgICAgICAgICAgdG9rZW4uZm9yY2VRdWlya3MgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmVtaXRDdXJyZW50RG9jdHlwZSh0b2tlbik7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5EQVRBO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2FzZSAkLkVPRjoge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLmVvZkluRG9jdHlwZSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2NyZWF0ZURvY3R5cGVUb2tlbihudWxsKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdG9rZW4gPSB0aGlzLmN1cnJlbnRUb2tlbjtcbiAgICAgICAgICAgICAgICAgICAgdG9rZW4uZm9yY2VRdWlya3MgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmVtaXRDdXJyZW50RG9jdHlwZSh0b2tlbik7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRFT0ZUb2tlbigpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9jcmVhdGVEb2N0eXBlVG9rZW4oU3RyaW5nLmZyb21Db2RlUG9pbnQoY3ApKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkRPQ1RZUEVfTkFNRTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgfVxuICAgIC8vIERPQ1RZUEUgbmFtZSBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlRG9jdHlwZU5hbWUoY3ApIHtcbiAgICAgICAgY29uc3QgdG9rZW4gPSB0aGlzLmN1cnJlbnRUb2tlbjtcbiAgICAgICAgc3dpdGNoIChjcCkge1xuICAgICAgICAgICAgY2FzZSAkLlNQQUNFOlxuICAgICAgICAgICAgY2FzZSAkLkxJTkVfRkVFRDpcbiAgICAgICAgICAgIGNhc2UgJC5UQUJVTEFUSU9OOlxuICAgICAgICAgICAgY2FzZSAkLkZPUk1fRkVFRDoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5BRlRFUl9ET0NUWVBFX05BTUU7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuR1JFQVRFUl9USEFOX1NJR046IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuREFUQTtcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXRDdXJyZW50RG9jdHlwZSh0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuTlVMTDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIudW5leHBlY3RlZE51bGxDaGFyYWN0ZXIpO1xuICAgICAgICAgICAgICAgIHRva2VuLm5hbWUgKz0gUkVQTEFDRU1FTlRfQ0hBUkFDVEVSO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkVPRjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIuZW9mSW5Eb2N0eXBlKTtcbiAgICAgICAgICAgICAgICB0b2tlbi5mb3JjZVF1aXJrcyA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy5lbWl0Q3VycmVudERvY3R5cGUodG9rZW4pO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRFT0ZUb2tlbigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIHRva2VuLm5hbWUgKz0gU3RyaW5nLmZyb21Db2RlUG9pbnQoaXNBc2NpaVVwcGVyKGNwKSA/IHRvQXNjaWlMb3dlcihjcCkgOiBjcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gQWZ0ZXIgRE9DVFlQRSBuYW1lIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVBZnRlckRvY3R5cGVOYW1lKGNwKSB7XG4gICAgICAgIGNvbnN0IHRva2VuID0gdGhpcy5jdXJyZW50VG9rZW47XG4gICAgICAgIHN3aXRjaCAoY3ApIHtcbiAgICAgICAgICAgIGNhc2UgJC5TUEFDRTpcbiAgICAgICAgICAgIGNhc2UgJC5MSU5FX0ZFRUQ6XG4gICAgICAgICAgICBjYXNlICQuVEFCVUxBVElPTjpcbiAgICAgICAgICAgIGNhc2UgJC5GT1JNX0ZFRUQ6IHtcbiAgICAgICAgICAgICAgICAvLyBJZ25vcmUgd2hpdGVzcGFjZVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkdSRUFURVJfVEhBTl9TSUdOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkRBVEE7XG4gICAgICAgICAgICAgICAgdGhpcy5lbWl0Q3VycmVudERvY3R5cGUodG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkVPRjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIuZW9mSW5Eb2N0eXBlKTtcbiAgICAgICAgICAgICAgICB0b2tlbi5mb3JjZVF1aXJrcyA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy5lbWl0Q3VycmVudERvY3R5cGUodG9rZW4pO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRFT0ZUb2tlbigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLl9jb25zdW1lU2VxdWVuY2VJZk1hdGNoKCQkLlBVQkxJQywgZmFsc2UpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5BRlRFUl9ET0NUWVBFX1BVQkxJQ19LRVlXT1JEO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIGlmICh0aGlzLl9jb25zdW1lU2VxdWVuY2VJZk1hdGNoKCQkLlNZU1RFTSwgZmFsc2UpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5BRlRFUl9ET0NUWVBFX1NZU1RFTV9LRVlXT1JEO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAvL05PVEU6IHNlcXVlbmNlIGxvb2t1cCBjYW4gYmUgYWJydXB0ZWQgYnkgaGliZXJuYXRpb24uIEluIHRoYXQgY2FzZSBsb29rdXBcbiAgICAgICAgICAgICAgICAvL3Jlc3VsdHMgYXJlIG5vIGxvbmdlciB2YWxpZCBhbmQgd2Ugd2lsbCBuZWVkIHRvIHN0YXJ0IG92ZXIuXG4gICAgICAgICAgICAgICAgZWxzZSBpZiAoIXRoaXMuX2Vuc3VyZUhpYmVybmF0aW9uKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5pbnZhbGlkQ2hhcmFjdGVyU2VxdWVuY2VBZnRlckRvY3R5cGVOYW1lKTtcbiAgICAgICAgICAgICAgICAgICAgdG9rZW4uZm9yY2VRdWlya3MgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQk9HVVNfRE9DVFlQRTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVCb2d1c0RvY3R5cGUoY3ApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBBZnRlciBET0NUWVBFIHB1YmxpYyBrZXl3b3JkIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVBZnRlckRvY3R5cGVQdWJsaWNLZXl3b3JkKGNwKSB7XG4gICAgICAgIGNvbnN0IHRva2VuID0gdGhpcy5jdXJyZW50VG9rZW47XG4gICAgICAgIHN3aXRjaCAoY3ApIHtcbiAgICAgICAgICAgIGNhc2UgJC5TUEFDRTpcbiAgICAgICAgICAgIGNhc2UgJC5MSU5FX0ZFRUQ6XG4gICAgICAgICAgICBjYXNlICQuVEFCVUxBVElPTjpcbiAgICAgICAgICAgIGNhc2UgJC5GT1JNX0ZFRUQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQkVGT1JFX0RPQ1RZUEVfUFVCTElDX0lERU5USUZJRVI7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuUVVPVEFUSU9OX01BUks6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLm1pc3NpbmdXaGl0ZXNwYWNlQWZ0ZXJEb2N0eXBlUHVibGljS2V5d29yZCk7XG4gICAgICAgICAgICAgICAgdG9rZW4ucHVibGljSWQgPSAnJztcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuRE9DVFlQRV9QVUJMSUNfSURFTlRJRklFUl9ET1VCTEVfUVVPVEVEO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkFQT1NUUk9QSEU6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLm1pc3NpbmdXaGl0ZXNwYWNlQWZ0ZXJEb2N0eXBlUHVibGljS2V5d29yZCk7XG4gICAgICAgICAgICAgICAgdG9rZW4ucHVibGljSWQgPSAnJztcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuRE9DVFlQRV9QVUJMSUNfSURFTlRJRklFUl9TSU5HTEVfUVVPVEVEO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkdSRUFURVJfVEhBTl9TSUdOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5taXNzaW5nRG9jdHlwZVB1YmxpY0lkZW50aWZpZXIpO1xuICAgICAgICAgICAgICAgIHRva2VuLmZvcmNlUXVpcmtzID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuREFUQTtcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXRDdXJyZW50RG9jdHlwZSh0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuRU9GOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5lb2ZJbkRvY3R5cGUpO1xuICAgICAgICAgICAgICAgIHRva2VuLmZvcmNlUXVpcmtzID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXRDdXJyZW50RG9jdHlwZSh0b2tlbik7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdEVPRlRva2VuKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5taXNzaW5nUXVvdGVCZWZvcmVEb2N0eXBlUHVibGljSWRlbnRpZmllcik7XG4gICAgICAgICAgICAgICAgdG9rZW4uZm9yY2VRdWlya3MgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5CT0dVU19ET0NUWVBFO1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQm9ndXNEb2N0eXBlKGNwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBCZWZvcmUgRE9DVFlQRSBwdWJsaWMgaWRlbnRpZmllciBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlQmVmb3JlRG9jdHlwZVB1YmxpY0lkZW50aWZpZXIoY3ApIHtcbiAgICAgICAgY29uc3QgdG9rZW4gPSB0aGlzLmN1cnJlbnRUb2tlbjtcbiAgICAgICAgc3dpdGNoIChjcCkge1xuICAgICAgICAgICAgY2FzZSAkLlNQQUNFOlxuICAgICAgICAgICAgY2FzZSAkLkxJTkVfRkVFRDpcbiAgICAgICAgICAgIGNhc2UgJC5UQUJVTEFUSU9OOlxuICAgICAgICAgICAgY2FzZSAkLkZPUk1fRkVFRDoge1xuICAgICAgICAgICAgICAgIC8vIElnbm9yZSB3aGl0ZXNwYWNlXG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuUVVPVEFUSU9OX01BUks6IHtcbiAgICAgICAgICAgICAgICB0b2tlbi5wdWJsaWNJZCA9ICcnO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5ET0NUWVBFX1BVQkxJQ19JREVOVElGSUVSX0RPVUJMRV9RVU9URUQ7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuQVBPU1RST1BIRToge1xuICAgICAgICAgICAgICAgIHRva2VuLnB1YmxpY0lkID0gJyc7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkRPQ1RZUEVfUFVCTElDX0lERU5USUZJRVJfU0lOR0xFX1FVT1RFRDtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5HUkVBVEVSX1RIQU5fU0lHTjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIubWlzc2luZ0RvY3R5cGVQdWJsaWNJZGVudGlmaWVyKTtcbiAgICAgICAgICAgICAgICB0b2tlbi5mb3JjZVF1aXJrcyA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkRBVEE7XG4gICAgICAgICAgICAgICAgdGhpcy5lbWl0Q3VycmVudERvY3R5cGUodG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkVPRjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIuZW9mSW5Eb2N0eXBlKTtcbiAgICAgICAgICAgICAgICB0b2tlbi5mb3JjZVF1aXJrcyA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy5lbWl0Q3VycmVudERvY3R5cGUodG9rZW4pO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRFT0ZUb2tlbigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIubWlzc2luZ1F1b3RlQmVmb3JlRG9jdHlwZVB1YmxpY0lkZW50aWZpZXIpO1xuICAgICAgICAgICAgICAgIHRva2VuLmZvcmNlUXVpcmtzID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQk9HVVNfRE9DVFlQRTtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUJvZ3VzRG9jdHlwZShjcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gRE9DVFlQRSBwdWJsaWMgaWRlbnRpZmllciAoZG91YmxlLXF1b3RlZCkgc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZURvY3R5cGVQdWJsaWNJZGVudGlmaWVyRG91YmxlUXVvdGVkKGNwKSB7XG4gICAgICAgIGNvbnN0IHRva2VuID0gdGhpcy5jdXJyZW50VG9rZW47XG4gICAgICAgIHN3aXRjaCAoY3ApIHtcbiAgICAgICAgICAgIGNhc2UgJC5RVU9UQVRJT05fTUFSSzoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5BRlRFUl9ET0NUWVBFX1BVQkxJQ19JREVOVElGSUVSO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLk5VTEw6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLnVuZXhwZWN0ZWROdWxsQ2hhcmFjdGVyKTtcbiAgICAgICAgICAgICAgICB0b2tlbi5wdWJsaWNJZCArPSBSRVBMQUNFTUVOVF9DSEFSQUNURVI7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuR1JFQVRFUl9USEFOX1NJR046IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLmFicnVwdERvY3R5cGVQdWJsaWNJZGVudGlmaWVyKTtcbiAgICAgICAgICAgICAgICB0b2tlbi5mb3JjZVF1aXJrcyA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy5lbWl0Q3VycmVudERvY3R5cGUodG9rZW4pO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5EQVRBO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkVPRjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIuZW9mSW5Eb2N0eXBlKTtcbiAgICAgICAgICAgICAgICB0b2tlbi5mb3JjZVF1aXJrcyA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy5lbWl0Q3VycmVudERvY3R5cGUodG9rZW4pO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRFT0ZUb2tlbigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIHRva2VuLnB1YmxpY0lkICs9IFN0cmluZy5mcm9tQ29kZVBvaW50KGNwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBET0NUWVBFIHB1YmxpYyBpZGVudGlmaWVyIChzaW5nbGUtcXVvdGVkKSBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlRG9jdHlwZVB1YmxpY0lkZW50aWZpZXJTaW5nbGVRdW90ZWQoY3ApIHtcbiAgICAgICAgY29uc3QgdG9rZW4gPSB0aGlzLmN1cnJlbnRUb2tlbjtcbiAgICAgICAgc3dpdGNoIChjcCkge1xuICAgICAgICAgICAgY2FzZSAkLkFQT1NUUk9QSEU6IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQUZURVJfRE9DVFlQRV9QVUJMSUNfSURFTlRJRklFUjtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5OVUxMOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi51bmV4cGVjdGVkTnVsbENoYXJhY3Rlcik7XG4gICAgICAgICAgICAgICAgdG9rZW4ucHVibGljSWQgKz0gUkVQTEFDRU1FTlRfQ0hBUkFDVEVSO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkdSRUFURVJfVEhBTl9TSUdOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5hYnJ1cHREb2N0eXBlUHVibGljSWRlbnRpZmllcik7XG4gICAgICAgICAgICAgICAgdG9rZW4uZm9yY2VRdWlya3MgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHRoaXMuZW1pdEN1cnJlbnREb2N0eXBlKHRva2VuKTtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuREFUQTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5FT0Y6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLmVvZkluRG9jdHlwZSk7XG4gICAgICAgICAgICAgICAgdG9rZW4uZm9yY2VRdWlya3MgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHRoaXMuZW1pdEN1cnJlbnREb2N0eXBlKHRva2VuKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0RU9GVG9rZW4oKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICB0b2tlbi5wdWJsaWNJZCArPSBTdHJpbmcuZnJvbUNvZGVQb2ludChjcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gQWZ0ZXIgRE9DVFlQRSBwdWJsaWMgaWRlbnRpZmllciBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlQWZ0ZXJEb2N0eXBlUHVibGljSWRlbnRpZmllcihjcCkge1xuICAgICAgICBjb25zdCB0b2tlbiA9IHRoaXMuY3VycmVudFRva2VuO1xuICAgICAgICBzd2l0Y2ggKGNwKSB7XG4gICAgICAgICAgICBjYXNlICQuU1BBQ0U6XG4gICAgICAgICAgICBjYXNlICQuTElORV9GRUVEOlxuICAgICAgICAgICAgY2FzZSAkLlRBQlVMQVRJT046XG4gICAgICAgICAgICBjYXNlICQuRk9STV9GRUVEOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkJFVFdFRU5fRE9DVFlQRV9QVUJMSUNfQU5EX1NZU1RFTV9JREVOVElGSUVSUztcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5HUkVBVEVSX1RIQU5fU0lHTjoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5EQVRBO1xuICAgICAgICAgICAgICAgIHRoaXMuZW1pdEN1cnJlbnREb2N0eXBlKHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5RVU9UQVRJT05fTUFSSzoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIubWlzc2luZ1doaXRlc3BhY2VCZXR3ZWVuRG9jdHlwZVB1YmxpY0FuZFN5c3RlbUlkZW50aWZpZXJzKTtcbiAgICAgICAgICAgICAgICB0b2tlbi5zeXN0ZW1JZCA9ICcnO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5ET0NUWVBFX1NZU1RFTV9JREVOVElGSUVSX0RPVUJMRV9RVU9URUQ7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuQVBPU1RST1BIRToge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIubWlzc2luZ1doaXRlc3BhY2VCZXR3ZWVuRG9jdHlwZVB1YmxpY0FuZFN5c3RlbUlkZW50aWZpZXJzKTtcbiAgICAgICAgICAgICAgICB0b2tlbi5zeXN0ZW1JZCA9ICcnO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5ET0NUWVBFX1NZU1RFTV9JREVOVElGSUVSX1NJTkdMRV9RVU9URUQ7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuRU9GOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5lb2ZJbkRvY3R5cGUpO1xuICAgICAgICAgICAgICAgIHRva2VuLmZvcmNlUXVpcmtzID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXRDdXJyZW50RG9jdHlwZSh0b2tlbik7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdEVPRlRva2VuKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5taXNzaW5nUXVvdGVCZWZvcmVEb2N0eXBlU3lzdGVtSWRlbnRpZmllcik7XG4gICAgICAgICAgICAgICAgdG9rZW4uZm9yY2VRdWlya3MgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5CT0dVU19ET0NUWVBFO1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQm9ndXNEb2N0eXBlKGNwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBCZXR3ZWVuIERPQ1RZUEUgcHVibGljIGFuZCBzeXN0ZW0gaWRlbnRpZmllcnMgc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZUJldHdlZW5Eb2N0eXBlUHVibGljQW5kU3lzdGVtSWRlbnRpZmllcnMoY3ApIHtcbiAgICAgICAgY29uc3QgdG9rZW4gPSB0aGlzLmN1cnJlbnRUb2tlbjtcbiAgICAgICAgc3dpdGNoIChjcCkge1xuICAgICAgICAgICAgY2FzZSAkLlNQQUNFOlxuICAgICAgICAgICAgY2FzZSAkLkxJTkVfRkVFRDpcbiAgICAgICAgICAgIGNhc2UgJC5UQUJVTEFUSU9OOlxuICAgICAgICAgICAgY2FzZSAkLkZPUk1fRkVFRDoge1xuICAgICAgICAgICAgICAgIC8vIElnbm9yZSB3aGl0ZXNwYWNlXG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuR1JFQVRFUl9USEFOX1NJR046IHtcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXRDdXJyZW50RG9jdHlwZSh0b2tlbik7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkRBVEE7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuUVVPVEFUSU9OX01BUks6IHtcbiAgICAgICAgICAgICAgICB0b2tlbi5zeXN0ZW1JZCA9ICcnO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5ET0NUWVBFX1NZU1RFTV9JREVOVElGSUVSX0RPVUJMRV9RVU9URUQ7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuQVBPU1RST1BIRToge1xuICAgICAgICAgICAgICAgIHRva2VuLnN5c3RlbUlkID0gJyc7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkRPQ1RZUEVfU1lTVEVNX0lERU5USUZJRVJfU0lOR0xFX1FVT1RFRDtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5FT0Y6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLmVvZkluRG9jdHlwZSk7XG4gICAgICAgICAgICAgICAgdG9rZW4uZm9yY2VRdWlya3MgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHRoaXMuZW1pdEN1cnJlbnREb2N0eXBlKHRva2VuKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0RU9GVG9rZW4oKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLm1pc3NpbmdRdW90ZUJlZm9yZURvY3R5cGVTeXN0ZW1JZGVudGlmaWVyKTtcbiAgICAgICAgICAgICAgICB0b2tlbi5mb3JjZVF1aXJrcyA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkJPR1VTX0RPQ1RZUEU7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVCb2d1c0RvY3R5cGUoY3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vIEFmdGVyIERPQ1RZUEUgc3lzdGVtIGtleXdvcmQgc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZUFmdGVyRG9jdHlwZVN5c3RlbUtleXdvcmQoY3ApIHtcbiAgICAgICAgY29uc3QgdG9rZW4gPSB0aGlzLmN1cnJlbnRUb2tlbjtcbiAgICAgICAgc3dpdGNoIChjcCkge1xuICAgICAgICAgICAgY2FzZSAkLlNQQUNFOlxuICAgICAgICAgICAgY2FzZSAkLkxJTkVfRkVFRDpcbiAgICAgICAgICAgIGNhc2UgJC5UQUJVTEFUSU9OOlxuICAgICAgICAgICAgY2FzZSAkLkZPUk1fRkVFRDoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5CRUZPUkVfRE9DVFlQRV9TWVNURU1fSURFTlRJRklFUjtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5RVU9UQVRJT05fTUFSSzoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIubWlzc2luZ1doaXRlc3BhY2VBZnRlckRvY3R5cGVTeXN0ZW1LZXl3b3JkKTtcbiAgICAgICAgICAgICAgICB0b2tlbi5zeXN0ZW1JZCA9ICcnO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5ET0NUWVBFX1NZU1RFTV9JREVOVElGSUVSX0RPVUJMRV9RVU9URUQ7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuQVBPU1RST1BIRToge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIubWlzc2luZ1doaXRlc3BhY2VBZnRlckRvY3R5cGVTeXN0ZW1LZXl3b3JkKTtcbiAgICAgICAgICAgICAgICB0b2tlbi5zeXN0ZW1JZCA9ICcnO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5ET0NUWVBFX1NZU1RFTV9JREVOVElGSUVSX1NJTkdMRV9RVU9URUQ7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuR1JFQVRFUl9USEFOX1NJR046IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLm1pc3NpbmdEb2N0eXBlU3lzdGVtSWRlbnRpZmllcik7XG4gICAgICAgICAgICAgICAgdG9rZW4uZm9yY2VRdWlya3MgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5EQVRBO1xuICAgICAgICAgICAgICAgIHRoaXMuZW1pdEN1cnJlbnREb2N0eXBlKHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5FT0Y6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLmVvZkluRG9jdHlwZSk7XG4gICAgICAgICAgICAgICAgdG9rZW4uZm9yY2VRdWlya3MgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHRoaXMuZW1pdEN1cnJlbnREb2N0eXBlKHRva2VuKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0RU9GVG9rZW4oKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLm1pc3NpbmdRdW90ZUJlZm9yZURvY3R5cGVTeXN0ZW1JZGVudGlmaWVyKTtcbiAgICAgICAgICAgICAgICB0b2tlbi5mb3JjZVF1aXJrcyA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkJPR1VTX0RPQ1RZUEU7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVCb2d1c0RvY3R5cGUoY3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vIEJlZm9yZSBET0NUWVBFIHN5c3RlbSBpZGVudGlmaWVyIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVCZWZvcmVEb2N0eXBlU3lzdGVtSWRlbnRpZmllcihjcCkge1xuICAgICAgICBjb25zdCB0b2tlbiA9IHRoaXMuY3VycmVudFRva2VuO1xuICAgICAgICBzd2l0Y2ggKGNwKSB7XG4gICAgICAgICAgICBjYXNlICQuU1BBQ0U6XG4gICAgICAgICAgICBjYXNlICQuTElORV9GRUVEOlxuICAgICAgICAgICAgY2FzZSAkLlRBQlVMQVRJT046XG4gICAgICAgICAgICBjYXNlICQuRk9STV9GRUVEOiB7XG4gICAgICAgICAgICAgICAgLy8gSWdub3JlIHdoaXRlc3BhY2VcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5RVU9UQVRJT05fTUFSSzoge1xuICAgICAgICAgICAgICAgIHRva2VuLnN5c3RlbUlkID0gJyc7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkRPQ1RZUEVfU1lTVEVNX0lERU5USUZJRVJfRE9VQkxFX1FVT1RFRDtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5BUE9TVFJPUEhFOiB7XG4gICAgICAgICAgICAgICAgdG9rZW4uc3lzdGVtSWQgPSAnJztcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuRE9DVFlQRV9TWVNURU1fSURFTlRJRklFUl9TSU5HTEVfUVVPVEVEO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkdSRUFURVJfVEhBTl9TSUdOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5taXNzaW5nRG9jdHlwZVN5c3RlbUlkZW50aWZpZXIpO1xuICAgICAgICAgICAgICAgIHRva2VuLmZvcmNlUXVpcmtzID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuREFUQTtcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXRDdXJyZW50RG9jdHlwZSh0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuRU9GOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5lb2ZJbkRvY3R5cGUpO1xuICAgICAgICAgICAgICAgIHRva2VuLmZvcmNlUXVpcmtzID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXRDdXJyZW50RG9jdHlwZSh0b2tlbik7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdEVPRlRva2VuKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5taXNzaW5nUXVvdGVCZWZvcmVEb2N0eXBlU3lzdGVtSWRlbnRpZmllcik7XG4gICAgICAgICAgICAgICAgdG9rZW4uZm9yY2VRdWlya3MgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5CT0dVU19ET0NUWVBFO1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQm9ndXNEb2N0eXBlKGNwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBET0NUWVBFIHN5c3RlbSBpZGVudGlmaWVyIChkb3VibGUtcXVvdGVkKSBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlRG9jdHlwZVN5c3RlbUlkZW50aWZpZXJEb3VibGVRdW90ZWQoY3ApIHtcbiAgICAgICAgY29uc3QgdG9rZW4gPSB0aGlzLmN1cnJlbnRUb2tlbjtcbiAgICAgICAgc3dpdGNoIChjcCkge1xuICAgICAgICAgICAgY2FzZSAkLlFVT1RBVElPTl9NQVJLOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkFGVEVSX0RPQ1RZUEVfU1lTVEVNX0lERU5USUZJRVI7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuTlVMTDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIudW5leHBlY3RlZE51bGxDaGFyYWN0ZXIpO1xuICAgICAgICAgICAgICAgIHRva2VuLnN5c3RlbUlkICs9IFJFUExBQ0VNRU5UX0NIQVJBQ1RFUjtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5HUkVBVEVSX1RIQU5fU0lHTjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIuYWJydXB0RG9jdHlwZVN5c3RlbUlkZW50aWZpZXIpO1xuICAgICAgICAgICAgICAgIHRva2VuLmZvcmNlUXVpcmtzID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXRDdXJyZW50RG9jdHlwZSh0b2tlbik7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkRBVEE7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuRU9GOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5lb2ZJbkRvY3R5cGUpO1xuICAgICAgICAgICAgICAgIHRva2VuLmZvcmNlUXVpcmtzID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXRDdXJyZW50RG9jdHlwZSh0b2tlbik7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdEVPRlRva2VuKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgdG9rZW4uc3lzdGVtSWQgKz0gU3RyaW5nLmZyb21Db2RlUG9pbnQoY3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vIERPQ1RZUEUgc3lzdGVtIGlkZW50aWZpZXIgKHNpbmdsZS1xdW90ZWQpIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVEb2N0eXBlU3lzdGVtSWRlbnRpZmllclNpbmdsZVF1b3RlZChjcCkge1xuICAgICAgICBjb25zdCB0b2tlbiA9IHRoaXMuY3VycmVudFRva2VuO1xuICAgICAgICBzd2l0Y2ggKGNwKSB7XG4gICAgICAgICAgICBjYXNlICQuQVBPU1RST1BIRToge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5BRlRFUl9ET0NUWVBFX1NZU1RFTV9JREVOVElGSUVSO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLk5VTEw6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLnVuZXhwZWN0ZWROdWxsQ2hhcmFjdGVyKTtcbiAgICAgICAgICAgICAgICB0b2tlbi5zeXN0ZW1JZCArPSBSRVBMQUNFTUVOVF9DSEFSQUNURVI7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuR1JFQVRFUl9USEFOX1NJR046IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLmFicnVwdERvY3R5cGVTeXN0ZW1JZGVudGlmaWVyKTtcbiAgICAgICAgICAgICAgICB0b2tlbi5mb3JjZVF1aXJrcyA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy5lbWl0Q3VycmVudERvY3R5cGUodG9rZW4pO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5EQVRBO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkVPRjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIuZW9mSW5Eb2N0eXBlKTtcbiAgICAgICAgICAgICAgICB0b2tlbi5mb3JjZVF1aXJrcyA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy5lbWl0Q3VycmVudERvY3R5cGUodG9rZW4pO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRFT0ZUb2tlbigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIHRva2VuLnN5c3RlbUlkICs9IFN0cmluZy5mcm9tQ29kZVBvaW50KGNwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBBZnRlciBET0NUWVBFIHN5c3RlbSBpZGVudGlmaWVyIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVBZnRlckRvY3R5cGVTeXN0ZW1JZGVudGlmaWVyKGNwKSB7XG4gICAgICAgIGNvbnN0IHRva2VuID0gdGhpcy5jdXJyZW50VG9rZW47XG4gICAgICAgIHN3aXRjaCAoY3ApIHtcbiAgICAgICAgICAgIGNhc2UgJC5TUEFDRTpcbiAgICAgICAgICAgIGNhc2UgJC5MSU5FX0ZFRUQ6XG4gICAgICAgICAgICBjYXNlICQuVEFCVUxBVElPTjpcbiAgICAgICAgICAgIGNhc2UgJC5GT1JNX0ZFRUQ6IHtcbiAgICAgICAgICAgICAgICAvLyBJZ25vcmUgd2hpdGVzcGFjZVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkdSRUFURVJfVEhBTl9TSUdOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5lbWl0Q3VycmVudERvY3R5cGUodG9rZW4pO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5EQVRBO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkVPRjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIuZW9mSW5Eb2N0eXBlKTtcbiAgICAgICAgICAgICAgICB0b2tlbi5mb3JjZVF1aXJrcyA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy5lbWl0Q3VycmVudERvY3R5cGUodG9rZW4pO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRFT0ZUb2tlbigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIudW5leHBlY3RlZENoYXJhY3RlckFmdGVyRG9jdHlwZVN5c3RlbUlkZW50aWZpZXIpO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5CT0dVU19ET0NUWVBFO1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQm9ndXNEb2N0eXBlKGNwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBCb2d1cyBET0NUWVBFIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVCb2d1c0RvY3R5cGUoY3ApIHtcbiAgICAgICAgY29uc3QgdG9rZW4gPSB0aGlzLmN1cnJlbnRUb2tlbjtcbiAgICAgICAgc3dpdGNoIChjcCkge1xuICAgICAgICAgICAgY2FzZSAkLkdSRUFURVJfVEhBTl9TSUdOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5lbWl0Q3VycmVudERvY3R5cGUodG9rZW4pO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5EQVRBO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLk5VTEw6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLnVuZXhwZWN0ZWROdWxsQ2hhcmFjdGVyKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5FT0Y6IHtcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXRDdXJyZW50RG9jdHlwZSh0b2tlbik7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdEVPRlRva2VuKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgLy8gRG8gbm90aGluZ1xuICAgICAgICB9XG4gICAgfVxuICAgIC8vIENEQVRBIHNlY3Rpb24gc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZUNkYXRhU2VjdGlvbihjcCkge1xuICAgICAgICBzd2l0Y2ggKGNwKSB7XG4gICAgICAgICAgICBjYXNlICQuUklHSFRfU1FVQVJFX0JSQUNLRVQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQ0RBVEFfU0VDVElPTl9CUkFDS0VUO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkVPRjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIuZW9mSW5DZGF0YSk7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdEVPRlRva2VuKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdENvZGVQb2ludChjcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gQ0RBVEEgc2VjdGlvbiBicmFja2V0IHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVDZGF0YVNlY3Rpb25CcmFja2V0KGNwKSB7XG4gICAgICAgIGlmIChjcCA9PT0gJC5SSUdIVF9TUVVBUkVfQlJBQ0tFVCkge1xuICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkNEQVRBX1NFQ1RJT05fRU5EO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fZW1pdENoYXJzKCddJyk7XG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQ0RBVEFfU0VDVElPTjtcbiAgICAgICAgICAgIHRoaXMuX3N0YXRlQ2RhdGFTZWN0aW9uKGNwKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBDREFUQSBzZWN0aW9uIGVuZCBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlQ2RhdGFTZWN0aW9uRW5kKGNwKSB7XG4gICAgICAgIHN3aXRjaCAoY3ApIHtcbiAgICAgICAgICAgIGNhc2UgJC5HUkVBVEVSX1RIQU5fU0lHTjoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5EQVRBO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLlJJR0hUX1NRVUFSRV9CUkFDS0VUOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdENoYXJzKCddJyk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdENoYXJzKCddXScpO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5DREFUQV9TRUNUSU9OO1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQ2RhdGFTZWN0aW9uKGNwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBDaGFyYWN0ZXIgcmVmZXJlbmNlIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVDaGFyYWN0ZXJSZWZlcmVuY2UoKSB7XG4gICAgICAgIGxldCBsZW5ndGggPSB0aGlzLmVudGl0eURlY29kZXIud3JpdGUodGhpcy5wcmVwcm9jZXNzb3IuaHRtbCwgdGhpcy5wcmVwcm9jZXNzb3IucG9zKTtcbiAgICAgICAgaWYgKGxlbmd0aCA8IDApIHtcbiAgICAgICAgICAgIGlmICh0aGlzLnByZXByb2Nlc3Nvci5sYXN0Q2h1bmtXcml0dGVuKSB7XG4gICAgICAgICAgICAgICAgbGVuZ3RoID0gdGhpcy5lbnRpdHlEZWNvZGVyLmVuZCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgLy8gV2FpdCBmb3IgdGhlIHJlc3Qgb2YgdGhlIGVudGl0eS5cbiAgICAgICAgICAgICAgICB0aGlzLmFjdGl2ZSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIC8vIE1hcmsgdGhlIGVudGlyZSBidWZmZXIgYXMgcmVhZC5cbiAgICAgICAgICAgICAgICB0aGlzLnByZXByb2Nlc3Nvci5wb3MgPSB0aGlzLnByZXByb2Nlc3Nvci5odG1sLmxlbmd0aCAtIDE7XG4gICAgICAgICAgICAgICAgdGhpcy5jb25zdW1lZEFmdGVyU25hcHNob3QgPSAwO1xuICAgICAgICAgICAgICAgIHRoaXMucHJlcHJvY2Vzc29yLmVuZE9mQ2h1bmtIaXQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAobGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAvLyBUaGlzIHdhcyBub3QgYSB2YWxpZCBlbnRpdHkuIEdvIGJhY2sgdG8gdGhlIGJlZ2lubmluZywgYW5kXG4gICAgICAgICAgICAvLyBmaWd1cmUgb3V0IHdoYXQgdG8gZG8uXG4gICAgICAgICAgICB0aGlzLnByZXByb2Nlc3Nvci5wb3MgPSB0aGlzLmVudGl0eVN0YXJ0UG9zO1xuICAgICAgICAgICAgdGhpcy5fZmx1c2hDb2RlUG9pbnRDb25zdW1lZEFzQ2hhcmFjdGVyUmVmZXJlbmNlKCQuQU1QRVJTQU5EKTtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPVxuICAgICAgICAgICAgICAgICF0aGlzLl9pc0NoYXJhY3RlclJlZmVyZW5jZUluQXR0cmlidXRlKCkgJiYgaXNBc2NpaUFscGhhTnVtZXJpYyh0aGlzLnByZXByb2Nlc3Nvci5wZWVrKDEpKVxuICAgICAgICAgICAgICAgICAgICA/IFN0YXRlLkFNQklHVU9VU19BTVBFUlNBTkRcbiAgICAgICAgICAgICAgICAgICAgOiB0aGlzLnJldHVyblN0YXRlO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgLy8gV2Ugc3VjY2Vzc2Z1bGx5IHBhcnNlZCBhbiBlbnRpdHkuIFN3aXRjaCB0byB0aGUgcmV0dXJuIHN0YXRlLlxuICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IHRoaXMucmV0dXJuU3RhdGU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gQW1iaWd1b3MgYW1wZXJzYW5kIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVBbWJpZ3VvdXNBbXBlcnNhbmQoY3ApIHtcbiAgICAgICAgaWYgKGlzQXNjaWlBbHBoYU51bWVyaWMoY3ApKSB7XG4gICAgICAgICAgICB0aGlzLl9mbHVzaENvZGVQb2ludENvbnN1bWVkQXNDaGFyYWN0ZXJSZWZlcmVuY2UoY3ApO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgaWYgKGNwID09PSAkLlNFTUlDT0xPTikge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIudW5rbm93bk5hbWVkQ2hhcmFjdGVyUmVmZXJlbmNlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSB0aGlzLnJldHVyblN0YXRlO1xuICAgICAgICAgICAgdGhpcy5fY2FsbFN0YXRlKGNwKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsICJpbXBvcnQgeyBUQUdfSUQgYXMgJCwgTlMsIE5VTUJFUkVEX0hFQURFUlMgfSBmcm9tICcuLi9jb21tb24vaHRtbC5qcyc7XG4vL0VsZW1lbnQgdXRpbHNcbmNvbnN0IElNUExJQ0lUX0VORF9UQUdfUkVRVUlSRUQgPSBuZXcgU2V0KFskLkRELCAkLkRULCAkLkxJLCAkLk9QVEdST1VQLCAkLk9QVElPTiwgJC5QLCAkLlJCLCAkLlJQLCAkLlJULCAkLlJUQ10pO1xuY29uc3QgSU1QTElDSVRfRU5EX1RBR19SRVFVSVJFRF9USE9ST1VHSExZID0gbmV3IFNldChbXG4gICAgLi4uSU1QTElDSVRfRU5EX1RBR19SRVFVSVJFRCxcbiAgICAkLkNBUFRJT04sXG4gICAgJC5DT0xHUk9VUCxcbiAgICAkLlRCT0RZLFxuICAgICQuVEQsXG4gICAgJC5URk9PVCxcbiAgICAkLlRILFxuICAgICQuVEhFQUQsXG4gICAgJC5UUixcbl0pO1xuY29uc3QgU0NPUElOR19FTEVNRU5UU19IVE1MID0gbmV3IFNldChbXG4gICAgJC5BUFBMRVQsXG4gICAgJC5DQVBUSU9OLFxuICAgICQuSFRNTCxcbiAgICAkLk1BUlFVRUUsXG4gICAgJC5PQkpFQ1QsXG4gICAgJC5UQUJMRSxcbiAgICAkLlRELFxuICAgICQuVEVNUExBVEUsXG4gICAgJC5USCxcbl0pO1xuY29uc3QgU0NPUElOR19FTEVNRU5UU19IVE1MX0xJU1QgPSBuZXcgU2V0KFsuLi5TQ09QSU5HX0VMRU1FTlRTX0hUTUwsICQuT0wsICQuVUxdKTtcbmNvbnN0IFNDT1BJTkdfRUxFTUVOVFNfSFRNTF9CVVRUT04gPSBuZXcgU2V0KFsuLi5TQ09QSU5HX0VMRU1FTlRTX0hUTUwsICQuQlVUVE9OXSk7XG5jb25zdCBTQ09QSU5HX0VMRU1FTlRTX01BVEhNTCA9IG5ldyBTZXQoWyQuQU5OT1RBVElPTl9YTUwsICQuTUksICQuTU4sICQuTU8sICQuTVMsICQuTVRFWFRdKTtcbmNvbnN0IFNDT1BJTkdfRUxFTUVOVFNfU1ZHID0gbmV3IFNldChbJC5ERVNDLCAkLkZPUkVJR05fT0JKRUNULCAkLlRJVExFXSk7XG5jb25zdCBUQUJMRV9ST1dfQ09OVEVYVCA9IG5ldyBTZXQoWyQuVFIsICQuVEVNUExBVEUsICQuSFRNTF0pO1xuY29uc3QgVEFCTEVfQk9EWV9DT05URVhUID0gbmV3IFNldChbJC5UQk9EWSwgJC5URk9PVCwgJC5USEVBRCwgJC5URU1QTEFURSwgJC5IVE1MXSk7XG5jb25zdCBUQUJMRV9DT05URVhUID0gbmV3IFNldChbJC5UQUJMRSwgJC5URU1QTEFURSwgJC5IVE1MXSk7XG5jb25zdCBUQUJMRV9DRUxMUyA9IG5ldyBTZXQoWyQuVEQsICQuVEhdKTtcbi8vU3RhY2sgb2Ygb3BlbiBlbGVtZW50c1xuZXhwb3J0IGNsYXNzIE9wZW5FbGVtZW50U3RhY2sge1xuICAgIGdldCBjdXJyZW50VG1wbENvbnRlbnRPck5vZGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc0luVGVtcGxhdGUoKSA/IHRoaXMudHJlZUFkYXB0ZXIuZ2V0VGVtcGxhdGVDb250ZW50KHRoaXMuY3VycmVudCkgOiB0aGlzLmN1cnJlbnQ7XG4gICAgfVxuICAgIGNvbnN0cnVjdG9yKGRvY3VtZW50LCB0cmVlQWRhcHRlciwgaGFuZGxlcikge1xuICAgICAgICB0aGlzLnRyZWVBZGFwdGVyID0gdHJlZUFkYXB0ZXI7XG4gICAgICAgIHRoaXMuaGFuZGxlciA9IGhhbmRsZXI7XG4gICAgICAgIHRoaXMuaXRlbXMgPSBbXTtcbiAgICAgICAgdGhpcy50YWdJRHMgPSBbXTtcbiAgICAgICAgdGhpcy5zdGFja1RvcCA9IC0xO1xuICAgICAgICB0aGlzLnRtcGxDb3VudCA9IDA7XG4gICAgICAgIHRoaXMuY3VycmVudFRhZ0lkID0gJC5VTktOT1dOO1xuICAgICAgICB0aGlzLmN1cnJlbnQgPSBkb2N1bWVudDtcbiAgICB9XG4gICAgLy9JbmRleCBvZiBlbGVtZW50XG4gICAgX2luZGV4T2YoZWxlbWVudCkge1xuICAgICAgICByZXR1cm4gdGhpcy5pdGVtcy5sYXN0SW5kZXhPZihlbGVtZW50LCB0aGlzLnN0YWNrVG9wKTtcbiAgICB9XG4gICAgLy9VcGRhdGUgY3VycmVudCBlbGVtZW50XG4gICAgX2lzSW5UZW1wbGF0ZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY3VycmVudFRhZ0lkID09PSAkLlRFTVBMQVRFICYmIHRoaXMudHJlZUFkYXB0ZXIuZ2V0TmFtZXNwYWNlVVJJKHRoaXMuY3VycmVudCkgPT09IE5TLkhUTUw7XG4gICAgfVxuICAgIF91cGRhdGVDdXJyZW50RWxlbWVudCgpIHtcbiAgICAgICAgdGhpcy5jdXJyZW50ID0gdGhpcy5pdGVtc1t0aGlzLnN0YWNrVG9wXTtcbiAgICAgICAgdGhpcy5jdXJyZW50VGFnSWQgPSB0aGlzLnRhZ0lEc1t0aGlzLnN0YWNrVG9wXTtcbiAgICB9XG4gICAgLy9NdXRhdGlvbnNcbiAgICBwdXNoKGVsZW1lbnQsIHRhZ0lEKSB7XG4gICAgICAgIHRoaXMuc3RhY2tUb3ArKztcbiAgICAgICAgdGhpcy5pdGVtc1t0aGlzLnN0YWNrVG9wXSA9IGVsZW1lbnQ7XG4gICAgICAgIHRoaXMuY3VycmVudCA9IGVsZW1lbnQ7XG4gICAgICAgIHRoaXMudGFnSURzW3RoaXMuc3RhY2tUb3BdID0gdGFnSUQ7XG4gICAgICAgIHRoaXMuY3VycmVudFRhZ0lkID0gdGFnSUQ7XG4gICAgICAgIGlmICh0aGlzLl9pc0luVGVtcGxhdGUoKSkge1xuICAgICAgICAgICAgdGhpcy50bXBsQ291bnQrKztcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmhhbmRsZXIub25JdGVtUHVzaChlbGVtZW50LCB0YWdJRCwgdHJ1ZSk7XG4gICAgfVxuICAgIHBvcCgpIHtcbiAgICAgICAgY29uc3QgcG9wcGVkID0gdGhpcy5jdXJyZW50O1xuICAgICAgICBpZiAodGhpcy50bXBsQ291bnQgPiAwICYmIHRoaXMuX2lzSW5UZW1wbGF0ZSgpKSB7XG4gICAgICAgICAgICB0aGlzLnRtcGxDb3VudC0tO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc3RhY2tUb3AtLTtcbiAgICAgICAgdGhpcy5fdXBkYXRlQ3VycmVudEVsZW1lbnQoKTtcbiAgICAgICAgdGhpcy5oYW5kbGVyLm9uSXRlbVBvcChwb3BwZWQsIHRydWUpO1xuICAgIH1cbiAgICByZXBsYWNlKG9sZEVsZW1lbnQsIG5ld0VsZW1lbnQpIHtcbiAgICAgICAgY29uc3QgaWR4ID0gdGhpcy5faW5kZXhPZihvbGRFbGVtZW50KTtcbiAgICAgICAgdGhpcy5pdGVtc1tpZHhdID0gbmV3RWxlbWVudDtcbiAgICAgICAgaWYgKGlkeCA9PT0gdGhpcy5zdGFja1RvcCkge1xuICAgICAgICAgICAgdGhpcy5jdXJyZW50ID0gbmV3RWxlbWVudDtcbiAgICAgICAgfVxuICAgIH1cbiAgICBpbnNlcnRBZnRlcihyZWZlcmVuY2VFbGVtZW50LCBuZXdFbGVtZW50LCBuZXdFbGVtZW50SUQpIHtcbiAgICAgICAgY29uc3QgaW5zZXJ0aW9uSWR4ID0gdGhpcy5faW5kZXhPZihyZWZlcmVuY2VFbGVtZW50KSArIDE7XG4gICAgICAgIHRoaXMuaXRlbXMuc3BsaWNlKGluc2VydGlvbklkeCwgMCwgbmV3RWxlbWVudCk7XG4gICAgICAgIHRoaXMudGFnSURzLnNwbGljZShpbnNlcnRpb25JZHgsIDAsIG5ld0VsZW1lbnRJRCk7XG4gICAgICAgIHRoaXMuc3RhY2tUb3ArKztcbiAgICAgICAgaWYgKGluc2VydGlvbklkeCA9PT0gdGhpcy5zdGFja1RvcCkge1xuICAgICAgICAgICAgdGhpcy5fdXBkYXRlQ3VycmVudEVsZW1lbnQoKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmhhbmRsZXIub25JdGVtUHVzaCh0aGlzLmN1cnJlbnQsIHRoaXMuY3VycmVudFRhZ0lkLCBpbnNlcnRpb25JZHggPT09IHRoaXMuc3RhY2tUb3ApO1xuICAgIH1cbiAgICBwb3BVbnRpbFRhZ05hbWVQb3BwZWQodGFnTmFtZSkge1xuICAgICAgICBsZXQgdGFyZ2V0SWR4ID0gdGhpcy5zdGFja1RvcCArIDE7XG4gICAgICAgIGRvIHtcbiAgICAgICAgICAgIHRhcmdldElkeCA9IHRoaXMudGFnSURzLmxhc3RJbmRleE9mKHRhZ05hbWUsIHRhcmdldElkeCAtIDEpO1xuICAgICAgICB9IHdoaWxlICh0YXJnZXRJZHggPiAwICYmIHRoaXMudHJlZUFkYXB0ZXIuZ2V0TmFtZXNwYWNlVVJJKHRoaXMuaXRlbXNbdGFyZ2V0SWR4XSkgIT09IE5TLkhUTUwpO1xuICAgICAgICB0aGlzLnNob3J0ZW5Ub0xlbmd0aCh0YXJnZXRJZHggPCAwID8gMCA6IHRhcmdldElkeCk7XG4gICAgfVxuICAgIHNob3J0ZW5Ub0xlbmd0aChpZHgpIHtcbiAgICAgICAgd2hpbGUgKHRoaXMuc3RhY2tUb3AgPj0gaWR4KSB7XG4gICAgICAgICAgICBjb25zdCBwb3BwZWQgPSB0aGlzLmN1cnJlbnQ7XG4gICAgICAgICAgICBpZiAodGhpcy50bXBsQ291bnQgPiAwICYmIHRoaXMuX2lzSW5UZW1wbGF0ZSgpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy50bXBsQ291bnQgLT0gMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuc3RhY2tUb3AtLTtcbiAgICAgICAgICAgIHRoaXMuX3VwZGF0ZUN1cnJlbnRFbGVtZW50KCk7XG4gICAgICAgICAgICB0aGlzLmhhbmRsZXIub25JdGVtUG9wKHBvcHBlZCwgdGhpcy5zdGFja1RvcCA8IGlkeCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcG9wVW50aWxFbGVtZW50UG9wcGVkKGVsZW1lbnQpIHtcbiAgICAgICAgY29uc3QgaWR4ID0gdGhpcy5faW5kZXhPZihlbGVtZW50KTtcbiAgICAgICAgdGhpcy5zaG9ydGVuVG9MZW5ndGgoaWR4IDwgMCA/IDAgOiBpZHgpO1xuICAgIH1cbiAgICBwb3BVbnRpbFBvcHBlZCh0YWdOYW1lcywgdGFyZ2V0TlMpIHtcbiAgICAgICAgY29uc3QgaWR4ID0gdGhpcy5faW5kZXhPZlRhZ05hbWVzKHRhZ05hbWVzLCB0YXJnZXROUyk7XG4gICAgICAgIHRoaXMuc2hvcnRlblRvTGVuZ3RoKGlkeCA8IDAgPyAwIDogaWR4KTtcbiAgICB9XG4gICAgcG9wVW50aWxOdW1iZXJlZEhlYWRlclBvcHBlZCgpIHtcbiAgICAgICAgdGhpcy5wb3BVbnRpbFBvcHBlZChOVU1CRVJFRF9IRUFERVJTLCBOUy5IVE1MKTtcbiAgICB9XG4gICAgcG9wVW50aWxUYWJsZUNlbGxQb3BwZWQoKSB7XG4gICAgICAgIHRoaXMucG9wVW50aWxQb3BwZWQoVEFCTEVfQ0VMTFMsIE5TLkhUTUwpO1xuICAgIH1cbiAgICBwb3BBbGxVcFRvSHRtbEVsZW1lbnQoKSB7XG4gICAgICAgIC8vTk9URTogaGVyZSB3ZSBhc3N1bWUgdGhhdCB0aGUgcm9vdCA8aHRtbD4gZWxlbWVudCBpcyBhbHdheXMgZmlyc3QgaW4gdGhlIG9wZW4gZWxlbWVudCBzdGFjaywgc29cbiAgICAgICAgLy93ZSBwZXJmb3JtIHRoaXMgZmFzdCBzdGFjayBjbGVhbiB1cC5cbiAgICAgICAgdGhpcy50bXBsQ291bnQgPSAwO1xuICAgICAgICB0aGlzLnNob3J0ZW5Ub0xlbmd0aCgxKTtcbiAgICB9XG4gICAgX2luZGV4T2ZUYWdOYW1lcyh0YWdOYW1lcywgbmFtZXNwYWNlKSB7XG4gICAgICAgIGZvciAobGV0IGkgPSB0aGlzLnN0YWNrVG9wOyBpID49IDA7IGktLSkge1xuICAgICAgICAgICAgaWYgKHRhZ05hbWVzLmhhcyh0aGlzLnRhZ0lEc1tpXSkgJiYgdGhpcy50cmVlQWRhcHRlci5nZXROYW1lc3BhY2VVUkkodGhpcy5pdGVtc1tpXSkgPT09IG5hbWVzcGFjZSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiAtMTtcbiAgICB9XG4gICAgY2xlYXJCYWNrVG8odGFnTmFtZXMsIHRhcmdldE5TKSB7XG4gICAgICAgIGNvbnN0IGlkeCA9IHRoaXMuX2luZGV4T2ZUYWdOYW1lcyh0YWdOYW1lcywgdGFyZ2V0TlMpO1xuICAgICAgICB0aGlzLnNob3J0ZW5Ub0xlbmd0aChpZHggKyAxKTtcbiAgICB9XG4gICAgY2xlYXJCYWNrVG9UYWJsZUNvbnRleHQoKSB7XG4gICAgICAgIHRoaXMuY2xlYXJCYWNrVG8oVEFCTEVfQ09OVEVYVCwgTlMuSFRNTCk7XG4gICAgfVxuICAgIGNsZWFyQmFja1RvVGFibGVCb2R5Q29udGV4dCgpIHtcbiAgICAgICAgdGhpcy5jbGVhckJhY2tUbyhUQUJMRV9CT0RZX0NPTlRFWFQsIE5TLkhUTUwpO1xuICAgIH1cbiAgICBjbGVhckJhY2tUb1RhYmxlUm93Q29udGV4dCgpIHtcbiAgICAgICAgdGhpcy5jbGVhckJhY2tUbyhUQUJMRV9ST1dfQ09OVEVYVCwgTlMuSFRNTCk7XG4gICAgfVxuICAgIHJlbW92ZShlbGVtZW50KSB7XG4gICAgICAgIGNvbnN0IGlkeCA9IHRoaXMuX2luZGV4T2YoZWxlbWVudCk7XG4gICAgICAgIGlmIChpZHggPj0gMCkge1xuICAgICAgICAgICAgaWYgKGlkeCA9PT0gdGhpcy5zdGFja1RvcCkge1xuICAgICAgICAgICAgICAgIHRoaXMucG9wKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLml0ZW1zLnNwbGljZShpZHgsIDEpO1xuICAgICAgICAgICAgICAgIHRoaXMudGFnSURzLnNwbGljZShpZHgsIDEpO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhY2tUb3AtLTtcbiAgICAgICAgICAgICAgICB0aGlzLl91cGRhdGVDdXJyZW50RWxlbWVudCgpO1xuICAgICAgICAgICAgICAgIHRoaXMuaGFuZGxlci5vbkl0ZW1Qb3AoZWxlbWVudCwgZmFsc2UpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vU2VhcmNoXG4gICAgdHJ5UGVla1Byb3Blcmx5TmVzdGVkQm9keUVsZW1lbnQoKSB7XG4gICAgICAgIC8vUHJvcGVybHkgbmVzdGVkIDxib2R5PiBlbGVtZW50IChzaG91bGQgYmUgc2Vjb25kIGVsZW1lbnQgaW4gc3RhY2spLlxuICAgICAgICByZXR1cm4gdGhpcy5zdGFja1RvcCA+PSAxICYmIHRoaXMudGFnSURzWzFdID09PSAkLkJPRFkgPyB0aGlzLml0ZW1zWzFdIDogbnVsbDtcbiAgICB9XG4gICAgY29udGFpbnMoZWxlbWVudCkge1xuICAgICAgICByZXR1cm4gdGhpcy5faW5kZXhPZihlbGVtZW50KSA+IC0xO1xuICAgIH1cbiAgICBnZXRDb21tb25BbmNlc3RvcihlbGVtZW50KSB7XG4gICAgICAgIGNvbnN0IGVsZW1lbnRJZHggPSB0aGlzLl9pbmRleE9mKGVsZW1lbnQpIC0gMTtcbiAgICAgICAgcmV0dXJuIGVsZW1lbnRJZHggPj0gMCA/IHRoaXMuaXRlbXNbZWxlbWVudElkeF0gOiBudWxsO1xuICAgIH1cbiAgICBpc1Jvb3RIdG1sRWxlbWVudEN1cnJlbnQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnN0YWNrVG9wID09PSAwICYmIHRoaXMudGFnSURzWzBdID09PSAkLkhUTUw7XG4gICAgfVxuICAgIC8vRWxlbWVudCBpbiBzY29wZVxuICAgIGhhc0luRHluYW1pY1Njb3BlKHRhZ05hbWUsIGh0bWxTY29wZSkge1xuICAgICAgICBmb3IgKGxldCBpID0gdGhpcy5zdGFja1RvcDsgaSA+PSAwOyBpLS0pIHtcbiAgICAgICAgICAgIGNvbnN0IHRuID0gdGhpcy50YWdJRHNbaV07XG4gICAgICAgICAgICBzd2l0Y2ggKHRoaXMudHJlZUFkYXB0ZXIuZ2V0TmFtZXNwYWNlVVJJKHRoaXMuaXRlbXNbaV0pKSB7XG4gICAgICAgICAgICAgICAgY2FzZSBOUy5IVE1MOiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0biA9PT0gdGFnTmFtZSlcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICAgICAgICBpZiAoaHRtbFNjb3BlLmhhcyh0bikpXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjYXNlIE5TLlNWRzoge1xuICAgICAgICAgICAgICAgICAgICBpZiAoU0NPUElOR19FTEVNRU5UU19TVkcuaGFzKHRuKSlcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNhc2UgTlMuTUFUSE1MOiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChTQ09QSU5HX0VMRU1FTlRTX01BVEhNTC5oYXModG4pKVxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGhhc0luU2NvcGUodGFnTmFtZSkge1xuICAgICAgICByZXR1cm4gdGhpcy5oYXNJbkR5bmFtaWNTY29wZSh0YWdOYW1lLCBTQ09QSU5HX0VMRU1FTlRTX0hUTUwpO1xuICAgIH1cbiAgICBoYXNJbkxpc3RJdGVtU2NvcGUodGFnTmFtZSkge1xuICAgICAgICByZXR1cm4gdGhpcy5oYXNJbkR5bmFtaWNTY29wZSh0YWdOYW1lLCBTQ09QSU5HX0VMRU1FTlRTX0hUTUxfTElTVCk7XG4gICAgfVxuICAgIGhhc0luQnV0dG9uU2NvcGUodGFnTmFtZSkge1xuICAgICAgICByZXR1cm4gdGhpcy5oYXNJbkR5bmFtaWNTY29wZSh0YWdOYW1lLCBTQ09QSU5HX0VMRU1FTlRTX0hUTUxfQlVUVE9OKTtcbiAgICB9XG4gICAgaGFzTnVtYmVyZWRIZWFkZXJJblNjb3BlKCkge1xuICAgICAgICBmb3IgKGxldCBpID0gdGhpcy5zdGFja1RvcDsgaSA+PSAwOyBpLS0pIHtcbiAgICAgICAgICAgIGNvbnN0IHRuID0gdGhpcy50YWdJRHNbaV07XG4gICAgICAgICAgICBzd2l0Y2ggKHRoaXMudHJlZUFkYXB0ZXIuZ2V0TmFtZXNwYWNlVVJJKHRoaXMuaXRlbXNbaV0pKSB7XG4gICAgICAgICAgICAgICAgY2FzZSBOUy5IVE1MOiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChOVU1CRVJFRF9IRUFERVJTLmhhcyh0bikpXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKFNDT1BJTkdfRUxFTUVOVFNfSFRNTC5oYXModG4pKVxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2FzZSBOUy5TVkc6IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKFNDT1BJTkdfRUxFTUVOVFNfU1ZHLmhhcyh0bikpXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjYXNlIE5TLk1BVEhNTDoge1xuICAgICAgICAgICAgICAgICAgICBpZiAoU0NPUElOR19FTEVNRU5UU19NQVRITUwuaGFzKHRuKSlcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBoYXNJblRhYmxlU2NvcGUodGFnTmFtZSkge1xuICAgICAgICBmb3IgKGxldCBpID0gdGhpcy5zdGFja1RvcDsgaSA+PSAwOyBpLS0pIHtcbiAgICAgICAgICAgIGlmICh0aGlzLnRyZWVBZGFwdGVyLmdldE5hbWVzcGFjZVVSSSh0aGlzLml0ZW1zW2ldKSAhPT0gTlMuSFRNTCkge1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgc3dpdGNoICh0aGlzLnRhZ0lEc1tpXSkge1xuICAgICAgICAgICAgICAgIGNhc2UgdGFnTmFtZToge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2FzZSAkLlRBQkxFOlxuICAgICAgICAgICAgICAgIGNhc2UgJC5IVE1MOiB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGhhc1RhYmxlQm9keUNvbnRleHRJblRhYmxlU2NvcGUoKSB7XG4gICAgICAgIGZvciAobGV0IGkgPSB0aGlzLnN0YWNrVG9wOyBpID49IDA7IGktLSkge1xuICAgICAgICAgICAgaWYgKHRoaXMudHJlZUFkYXB0ZXIuZ2V0TmFtZXNwYWNlVVJJKHRoaXMuaXRlbXNbaV0pICE9PSBOUy5IVE1MKSB7XG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBzd2l0Y2ggKHRoaXMudGFnSURzW2ldKSB7XG4gICAgICAgICAgICAgICAgY2FzZSAkLlRCT0RZOlxuICAgICAgICAgICAgICAgIGNhc2UgJC5USEVBRDpcbiAgICAgICAgICAgICAgICBjYXNlICQuVEZPT1Q6IHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNhc2UgJC5UQUJMRTpcbiAgICAgICAgICAgICAgICBjYXNlICQuSFRNTDoge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBoYXNJblNlbGVjdFNjb3BlKHRhZ05hbWUpIHtcbiAgICAgICAgZm9yIChsZXQgaSA9IHRoaXMuc3RhY2tUb3A7IGkgPj0gMDsgaS0tKSB7XG4gICAgICAgICAgICBpZiAodGhpcy50cmVlQWRhcHRlci5nZXROYW1lc3BhY2VVUkkodGhpcy5pdGVtc1tpXSkgIT09IE5TLkhUTUwpIHtcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHN3aXRjaCAodGhpcy50YWdJRHNbaV0pIHtcbiAgICAgICAgICAgICAgICBjYXNlIHRhZ05hbWU6IHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNhc2UgJC5PUFRJT046XG4gICAgICAgICAgICAgICAgY2FzZSAkLk9QVEdST1VQOiB7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIC8vSW1wbGllZCBlbmQgdGFnc1xuICAgIGdlbmVyYXRlSW1wbGllZEVuZFRhZ3MoKSB7XG4gICAgICAgIHdoaWxlIChJTVBMSUNJVF9FTkRfVEFHX1JFUVVJUkVELmhhcyh0aGlzLmN1cnJlbnRUYWdJZCkpIHtcbiAgICAgICAgICAgIHRoaXMucG9wKCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZ2VuZXJhdGVJbXBsaWVkRW5kVGFnc1Rob3JvdWdobHkoKSB7XG4gICAgICAgIHdoaWxlIChJTVBMSUNJVF9FTkRfVEFHX1JFUVVJUkVEX1RIT1JPVUdITFkuaGFzKHRoaXMuY3VycmVudFRhZ0lkKSkge1xuICAgICAgICAgICAgdGhpcy5wb3AoKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBnZW5lcmF0ZUltcGxpZWRFbmRUYWdzV2l0aEV4Y2x1c2lvbihleGNsdXNpb25JZCkge1xuICAgICAgICB3aGlsZSAodGhpcy5jdXJyZW50VGFnSWQgIT09IGV4Y2x1c2lvbklkICYmIElNUExJQ0lUX0VORF9UQUdfUkVRVUlSRURfVEhPUk9VR0hMWS5oYXModGhpcy5jdXJyZW50VGFnSWQpKSB7XG4gICAgICAgICAgICB0aGlzLnBvcCgpO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwgIi8vQ29uc3RcbmNvbnN0IE5PQUhfQVJLX0NBUEFDSVRZID0gMztcbmV4cG9ydCB2YXIgRW50cnlUeXBlO1xuKGZ1bmN0aW9uIChFbnRyeVR5cGUpIHtcbiAgICBFbnRyeVR5cGVbRW50cnlUeXBlW1wiTWFya2VyXCJdID0gMF0gPSBcIk1hcmtlclwiO1xuICAgIEVudHJ5VHlwZVtFbnRyeVR5cGVbXCJFbGVtZW50XCJdID0gMV0gPSBcIkVsZW1lbnRcIjtcbn0pKEVudHJ5VHlwZSB8fCAoRW50cnlUeXBlID0ge30pKTtcbmNvbnN0IE1BUktFUiA9IHsgdHlwZTogRW50cnlUeXBlLk1hcmtlciB9O1xuLy9MaXN0IG9mIGZvcm1hdHRpbmcgZWxlbWVudHNcbmV4cG9ydCBjbGFzcyBGb3JtYXR0aW5nRWxlbWVudExpc3Qge1xuICAgIGNvbnN0cnVjdG9yKHRyZWVBZGFwdGVyKSB7XG4gICAgICAgIHRoaXMudHJlZUFkYXB0ZXIgPSB0cmVlQWRhcHRlcjtcbiAgICAgICAgdGhpcy5lbnRyaWVzID0gW107XG4gICAgICAgIHRoaXMuYm9va21hcmsgPSBudWxsO1xuICAgIH1cbiAgICAvL05vYWggQXJrJ3MgY29uZGl0aW9uXG4gICAgLy9PUFRJTUlaQVRJT046IGF0IGZpcnN0IHdlIHRyeSB0byBmaW5kIHBvc3NpYmxlIGNhbmRpZGF0ZXMgZm9yIGV4Y2x1c2lvbiB1c2luZ1xuICAgIC8vbGlnaHR3ZWlnaHQgaGV1cmlzdGljcyB3aXRob3V0IHRob3JvdWdoIGF0dHJpYnV0ZXMgY2hlY2suXG4gICAgX2dldE5vYWhBcmtDb25kaXRpb25DYW5kaWRhdGVzKG5ld0VsZW1lbnQsIG5lQXR0cnMpIHtcbiAgICAgICAgY29uc3QgY2FuZGlkYXRlcyA9IFtdO1xuICAgICAgICBjb25zdCBuZUF0dHJzTGVuZ3RoID0gbmVBdHRycy5sZW5ndGg7XG4gICAgICAgIGNvbnN0IG5lVGFnTmFtZSA9IHRoaXMudHJlZUFkYXB0ZXIuZ2V0VGFnTmFtZShuZXdFbGVtZW50KTtcbiAgICAgICAgY29uc3QgbmVOYW1lc3BhY2VVUkkgPSB0aGlzLnRyZWVBZGFwdGVyLmdldE5hbWVzcGFjZVVSSShuZXdFbGVtZW50KTtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLmVudHJpZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGNvbnN0IGVudHJ5ID0gdGhpcy5lbnRyaWVzW2ldO1xuICAgICAgICAgICAgaWYgKGVudHJ5LnR5cGUgPT09IEVudHJ5VHlwZS5NYXJrZXIpIHtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IHsgZWxlbWVudCB9ID0gZW50cnk7XG4gICAgICAgICAgICBpZiAodGhpcy50cmVlQWRhcHRlci5nZXRUYWdOYW1lKGVsZW1lbnQpID09PSBuZVRhZ05hbWUgJiZcbiAgICAgICAgICAgICAgICB0aGlzLnRyZWVBZGFwdGVyLmdldE5hbWVzcGFjZVVSSShlbGVtZW50KSA9PT0gbmVOYW1lc3BhY2VVUkkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBlbGVtZW50QXR0cnMgPSB0aGlzLnRyZWVBZGFwdGVyLmdldEF0dHJMaXN0KGVsZW1lbnQpO1xuICAgICAgICAgICAgICAgIGlmIChlbGVtZW50QXR0cnMubGVuZ3RoID09PSBuZUF0dHJzTGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgIGNhbmRpZGF0ZXMucHVzaCh7IGlkeDogaSwgYXR0cnM6IGVsZW1lbnRBdHRycyB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGNhbmRpZGF0ZXM7XG4gICAgfVxuICAgIF9lbnN1cmVOb2FoQXJrQ29uZGl0aW9uKG5ld0VsZW1lbnQpIHtcbiAgICAgICAgaWYgKHRoaXMuZW50cmllcy5sZW5ndGggPCBOT0FIX0FSS19DQVBBQ0lUWSlcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgY29uc3QgbmVBdHRycyA9IHRoaXMudHJlZUFkYXB0ZXIuZ2V0QXR0ckxpc3QobmV3RWxlbWVudCk7XG4gICAgICAgIGNvbnN0IGNhbmRpZGF0ZXMgPSB0aGlzLl9nZXROb2FoQXJrQ29uZGl0aW9uQ2FuZGlkYXRlcyhuZXdFbGVtZW50LCBuZUF0dHJzKTtcbiAgICAgICAgaWYgKGNhbmRpZGF0ZXMubGVuZ3RoIDwgTk9BSF9BUktfQ0FQQUNJVFkpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIC8vTk9URTogYnVpbGQgYXR0cnMgbWFwIGZvciB0aGUgbmV3IGVsZW1lbnQsIHNvIHdlIGNhbiBwZXJmb3JtIGZhc3QgbG9va3Vwc1xuICAgICAgICBjb25zdCBuZUF0dHJzTWFwID0gbmV3IE1hcChuZUF0dHJzLm1hcCgobmVBdHRyKSA9PiBbbmVBdHRyLm5hbWUsIG5lQXR0ci52YWx1ZV0pKTtcbiAgICAgICAgbGV0IHZhbGlkQ2FuZGlkYXRlcyA9IDA7XG4gICAgICAgIC8vTk9URTogcmVtb3ZlIGJvdHRvbW1vc3QgY2FuZGlkYXRlcywgdW50aWwgTm9haCdzIEFyayBjb25kaXRpb24gd2lsbCBub3QgYmUgbWV0XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY2FuZGlkYXRlcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgY29uc3QgY2FuZGlkYXRlID0gY2FuZGlkYXRlc1tpXTtcbiAgICAgICAgICAgIC8vIFdlIGtub3cgdGhhdCBgY2FuZGlkYXRlLmF0dHJzLmxlbmd0aCA9PT0gbmVBdHRycy5sZW5ndGhgXG4gICAgICAgICAgICBpZiAoY2FuZGlkYXRlLmF0dHJzLmV2ZXJ5KChjQXR0cikgPT4gbmVBdHRyc01hcC5nZXQoY0F0dHIubmFtZSkgPT09IGNBdHRyLnZhbHVlKSkge1xuICAgICAgICAgICAgICAgIHZhbGlkQ2FuZGlkYXRlcyArPSAxO1xuICAgICAgICAgICAgICAgIGlmICh2YWxpZENhbmRpZGF0ZXMgPj0gTk9BSF9BUktfQ0FQQUNJVFkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5lbnRyaWVzLnNwbGljZShjYW5kaWRhdGUuaWR4LCAxKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy9NdXRhdGlvbnNcbiAgICBpbnNlcnRNYXJrZXIoKSB7XG4gICAgICAgIHRoaXMuZW50cmllcy51bnNoaWZ0KE1BUktFUik7XG4gICAgfVxuICAgIHB1c2hFbGVtZW50KGVsZW1lbnQsIHRva2VuKSB7XG4gICAgICAgIHRoaXMuX2Vuc3VyZU5vYWhBcmtDb25kaXRpb24oZWxlbWVudCk7XG4gICAgICAgIHRoaXMuZW50cmllcy51bnNoaWZ0KHtcbiAgICAgICAgICAgIHR5cGU6IEVudHJ5VHlwZS5FbGVtZW50LFxuICAgICAgICAgICAgZWxlbWVudCxcbiAgICAgICAgICAgIHRva2VuLFxuICAgICAgICB9KTtcbiAgICB9XG4gICAgaW5zZXJ0RWxlbWVudEFmdGVyQm9va21hcmsoZWxlbWVudCwgdG9rZW4pIHtcbiAgICAgICAgY29uc3QgYm9va21hcmtJZHggPSB0aGlzLmVudHJpZXMuaW5kZXhPZih0aGlzLmJvb2ttYXJrKTtcbiAgICAgICAgdGhpcy5lbnRyaWVzLnNwbGljZShib29rbWFya0lkeCwgMCwge1xuICAgICAgICAgICAgdHlwZTogRW50cnlUeXBlLkVsZW1lbnQsXG4gICAgICAgICAgICBlbGVtZW50LFxuICAgICAgICAgICAgdG9rZW4sXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICByZW1vdmVFbnRyeShlbnRyeSkge1xuICAgICAgICBjb25zdCBlbnRyeUluZGV4ID0gdGhpcy5lbnRyaWVzLmluZGV4T2YoZW50cnkpO1xuICAgICAgICBpZiAoZW50cnlJbmRleCA+PSAwKSB7XG4gICAgICAgICAgICB0aGlzLmVudHJpZXMuc3BsaWNlKGVudHJ5SW5kZXgsIDEpO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8qKlxuICAgICAqIENsZWFycyB0aGUgbGlzdCBvZiBmb3JtYXR0aW5nIGVsZW1lbnRzIHVwIHRvIHRoZSBsYXN0IG1hcmtlci5cbiAgICAgKlxuICAgICAqIEBzZWUgaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2UvcGFyc2luZy5odG1sI2NsZWFyLXRoZS1saXN0LW9mLWFjdGl2ZS1mb3JtYXR0aW5nLWVsZW1lbnRzLXVwLXRvLXRoZS1sYXN0LW1hcmtlclxuICAgICAqL1xuICAgIGNsZWFyVG9MYXN0TWFya2VyKCkge1xuICAgICAgICBjb25zdCBtYXJrZXJJZHggPSB0aGlzLmVudHJpZXMuaW5kZXhPZihNQVJLRVIpO1xuICAgICAgICBpZiAobWFya2VySWR4ID49IDApIHtcbiAgICAgICAgICAgIHRoaXMuZW50cmllcy5zcGxpY2UoMCwgbWFya2VySWR4ICsgMSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmVudHJpZXMubGVuZ3RoID0gMDtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvL1NlYXJjaFxuICAgIGdldEVsZW1lbnRFbnRyeUluU2NvcGVXaXRoVGFnTmFtZSh0YWdOYW1lKSB7XG4gICAgICAgIGNvbnN0IGVudHJ5ID0gdGhpcy5lbnRyaWVzLmZpbmQoKGVudHJ5KSA9PiBlbnRyeS50eXBlID09PSBFbnRyeVR5cGUuTWFya2VyIHx8IHRoaXMudHJlZUFkYXB0ZXIuZ2V0VGFnTmFtZShlbnRyeS5lbGVtZW50KSA9PT0gdGFnTmFtZSk7XG4gICAgICAgIHJldHVybiBlbnRyeSAmJiBlbnRyeS50eXBlID09PSBFbnRyeVR5cGUuRWxlbWVudCA/IGVudHJ5IDogbnVsbDtcbiAgICB9XG4gICAgZ2V0RWxlbWVudEVudHJ5KGVsZW1lbnQpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZW50cmllcy5maW5kKChlbnRyeSkgPT4gZW50cnkudHlwZSA9PT0gRW50cnlUeXBlLkVsZW1lbnQgJiYgZW50cnkuZWxlbWVudCA9PT0gZWxlbWVudCk7XG4gICAgfVxufVxuIiwgImltcG9ydCB7IERPQ1VNRU5UX01PREUgfSBmcm9tICcuLi9jb21tb24vaHRtbC5qcyc7XG5leHBvcnQgY29uc3QgZGVmYXVsdFRyZWVBZGFwdGVyID0ge1xuICAgIC8vTm9kZSBjb25zdHJ1Y3Rpb25cbiAgICBjcmVhdGVEb2N1bWVudCgpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIG5vZGVOYW1lOiAnI2RvY3VtZW50JyxcbiAgICAgICAgICAgIG1vZGU6IERPQ1VNRU5UX01PREUuTk9fUVVJUktTLFxuICAgICAgICAgICAgY2hpbGROb2RlczogW10sXG4gICAgICAgIH07XG4gICAgfSxcbiAgICBjcmVhdGVEb2N1bWVudEZyYWdtZW50KCkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgbm9kZU5hbWU6ICcjZG9jdW1lbnQtZnJhZ21lbnQnLFxuICAgICAgICAgICAgY2hpbGROb2RlczogW10sXG4gICAgICAgIH07XG4gICAgfSxcbiAgICBjcmVhdGVFbGVtZW50KHRhZ05hbWUsIG5hbWVzcGFjZVVSSSwgYXR0cnMpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIG5vZGVOYW1lOiB0YWdOYW1lLFxuICAgICAgICAgICAgdGFnTmFtZSxcbiAgICAgICAgICAgIGF0dHJzLFxuICAgICAgICAgICAgbmFtZXNwYWNlVVJJLFxuICAgICAgICAgICAgY2hpbGROb2RlczogW10sXG4gICAgICAgICAgICBwYXJlbnROb2RlOiBudWxsLFxuICAgICAgICB9O1xuICAgIH0sXG4gICAgY3JlYXRlQ29tbWVudE5vZGUoZGF0YSkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgbm9kZU5hbWU6ICcjY29tbWVudCcsXG4gICAgICAgICAgICBkYXRhLFxuICAgICAgICAgICAgcGFyZW50Tm9kZTogbnVsbCxcbiAgICAgICAgfTtcbiAgICB9LFxuICAgIGNyZWF0ZVRleHROb2RlKHZhbHVlKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBub2RlTmFtZTogJyN0ZXh0JyxcbiAgICAgICAgICAgIHZhbHVlLFxuICAgICAgICAgICAgcGFyZW50Tm9kZTogbnVsbCxcbiAgICAgICAgfTtcbiAgICB9LFxuICAgIC8vVHJlZSBtdXRhdGlvblxuICAgIGFwcGVuZENoaWxkKHBhcmVudE5vZGUsIG5ld05vZGUpIHtcbiAgICAgICAgcGFyZW50Tm9kZS5jaGlsZE5vZGVzLnB1c2gobmV3Tm9kZSk7XG4gICAgICAgIG5ld05vZGUucGFyZW50Tm9kZSA9IHBhcmVudE5vZGU7XG4gICAgfSxcbiAgICBpbnNlcnRCZWZvcmUocGFyZW50Tm9kZSwgbmV3Tm9kZSwgcmVmZXJlbmNlTm9kZSkge1xuICAgICAgICBjb25zdCBpbnNlcnRpb25JZHggPSBwYXJlbnROb2RlLmNoaWxkTm9kZXMuaW5kZXhPZihyZWZlcmVuY2VOb2RlKTtcbiAgICAgICAgcGFyZW50Tm9kZS5jaGlsZE5vZGVzLnNwbGljZShpbnNlcnRpb25JZHgsIDAsIG5ld05vZGUpO1xuICAgICAgICBuZXdOb2RlLnBhcmVudE5vZGUgPSBwYXJlbnROb2RlO1xuICAgIH0sXG4gICAgc2V0VGVtcGxhdGVDb250ZW50KHRlbXBsYXRlRWxlbWVudCwgY29udGVudEVsZW1lbnQpIHtcbiAgICAgICAgdGVtcGxhdGVFbGVtZW50LmNvbnRlbnQgPSBjb250ZW50RWxlbWVudDtcbiAgICB9LFxuICAgIGdldFRlbXBsYXRlQ29udGVudCh0ZW1wbGF0ZUVsZW1lbnQpIHtcbiAgICAgICAgcmV0dXJuIHRlbXBsYXRlRWxlbWVudC5jb250ZW50O1xuICAgIH0sXG4gICAgc2V0RG9jdW1lbnRUeXBlKGRvY3VtZW50LCBuYW1lLCBwdWJsaWNJZCwgc3lzdGVtSWQpIHtcbiAgICAgICAgY29uc3QgZG9jdHlwZU5vZGUgPSBkb2N1bWVudC5jaGlsZE5vZGVzLmZpbmQoKG5vZGUpID0+IG5vZGUubm9kZU5hbWUgPT09ICcjZG9jdW1lbnRUeXBlJyk7XG4gICAgICAgIGlmIChkb2N0eXBlTm9kZSkge1xuICAgICAgICAgICAgZG9jdHlwZU5vZGUubmFtZSA9IG5hbWU7XG4gICAgICAgICAgICBkb2N0eXBlTm9kZS5wdWJsaWNJZCA9IHB1YmxpY0lkO1xuICAgICAgICAgICAgZG9jdHlwZU5vZGUuc3lzdGVtSWQgPSBzeXN0ZW1JZDtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IG5vZGUgPSB7XG4gICAgICAgICAgICAgICAgbm9kZU5hbWU6ICcjZG9jdW1lbnRUeXBlJyxcbiAgICAgICAgICAgICAgICBuYW1lLFxuICAgICAgICAgICAgICAgIHB1YmxpY0lkLFxuICAgICAgICAgICAgICAgIHN5c3RlbUlkLFxuICAgICAgICAgICAgICAgIHBhcmVudE5vZGU6IG51bGwsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgZGVmYXVsdFRyZWVBZGFwdGVyLmFwcGVuZENoaWxkKGRvY3VtZW50LCBub2RlKTtcbiAgICAgICAgfVxuICAgIH0sXG4gICAgc2V0RG9jdW1lbnRNb2RlKGRvY3VtZW50LCBtb2RlKSB7XG4gICAgICAgIGRvY3VtZW50Lm1vZGUgPSBtb2RlO1xuICAgIH0sXG4gICAgZ2V0RG9jdW1lbnRNb2RlKGRvY3VtZW50KSB7XG4gICAgICAgIHJldHVybiBkb2N1bWVudC5tb2RlO1xuICAgIH0sXG4gICAgZGV0YWNoTm9kZShub2RlKSB7XG4gICAgICAgIGlmIChub2RlLnBhcmVudE5vZGUpIHtcbiAgICAgICAgICAgIGNvbnN0IGlkeCA9IG5vZGUucGFyZW50Tm9kZS5jaGlsZE5vZGVzLmluZGV4T2Yobm9kZSk7XG4gICAgICAgICAgICBub2RlLnBhcmVudE5vZGUuY2hpbGROb2Rlcy5zcGxpY2UoaWR4LCAxKTtcbiAgICAgICAgICAgIG5vZGUucGFyZW50Tm9kZSA9IG51bGw7XG4gICAgICAgIH1cbiAgICB9LFxuICAgIGluc2VydFRleHQocGFyZW50Tm9kZSwgdGV4dCkge1xuICAgICAgICBpZiAocGFyZW50Tm9kZS5jaGlsZE5vZGVzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGNvbnN0IHByZXZOb2RlID0gcGFyZW50Tm9kZS5jaGlsZE5vZGVzW3BhcmVudE5vZGUuY2hpbGROb2Rlcy5sZW5ndGggLSAxXTtcbiAgICAgICAgICAgIGlmIChkZWZhdWx0VHJlZUFkYXB0ZXIuaXNUZXh0Tm9kZShwcmV2Tm9kZSkpIHtcbiAgICAgICAgICAgICAgICBwcmV2Tm9kZS52YWx1ZSArPSB0ZXh0O1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBkZWZhdWx0VHJlZUFkYXB0ZXIuYXBwZW5kQ2hpbGQocGFyZW50Tm9kZSwgZGVmYXVsdFRyZWVBZGFwdGVyLmNyZWF0ZVRleHROb2RlKHRleHQpKTtcbiAgICB9LFxuICAgIGluc2VydFRleHRCZWZvcmUocGFyZW50Tm9kZSwgdGV4dCwgcmVmZXJlbmNlTm9kZSkge1xuICAgICAgICBjb25zdCBwcmV2Tm9kZSA9IHBhcmVudE5vZGUuY2hpbGROb2Rlc1twYXJlbnROb2RlLmNoaWxkTm9kZXMuaW5kZXhPZihyZWZlcmVuY2VOb2RlKSAtIDFdO1xuICAgICAgICBpZiAocHJldk5vZGUgJiYgZGVmYXVsdFRyZWVBZGFwdGVyLmlzVGV4dE5vZGUocHJldk5vZGUpKSB7XG4gICAgICAgICAgICBwcmV2Tm9kZS52YWx1ZSArPSB0ZXh0O1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgZGVmYXVsdFRyZWVBZGFwdGVyLmluc2VydEJlZm9yZShwYXJlbnROb2RlLCBkZWZhdWx0VHJlZUFkYXB0ZXIuY3JlYXRlVGV4dE5vZGUodGV4dCksIHJlZmVyZW5jZU5vZGUpO1xuICAgICAgICB9XG4gICAgfSxcbiAgICBhZG9wdEF0dHJpYnV0ZXMocmVjaXBpZW50LCBhdHRycykge1xuICAgICAgICBjb25zdCByZWNpcGllbnRBdHRyc01hcCA9IG5ldyBTZXQocmVjaXBpZW50LmF0dHJzLm1hcCgoYXR0cikgPT4gYXR0ci5uYW1lKSk7XG4gICAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgYXR0cnMubGVuZ3RoOyBqKyspIHtcbiAgICAgICAgICAgIGlmICghcmVjaXBpZW50QXR0cnNNYXAuaGFzKGF0dHJzW2pdLm5hbWUpKSB7XG4gICAgICAgICAgICAgICAgcmVjaXBpZW50LmF0dHJzLnB1c2goYXR0cnNbal0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSxcbiAgICAvL1RyZWUgdHJhdmVyc2luZ1xuICAgIGdldEZpcnN0Q2hpbGQobm9kZSkge1xuICAgICAgICByZXR1cm4gbm9kZS5jaGlsZE5vZGVzWzBdO1xuICAgIH0sXG4gICAgZ2V0Q2hpbGROb2Rlcyhub2RlKSB7XG4gICAgICAgIHJldHVybiBub2RlLmNoaWxkTm9kZXM7XG4gICAgfSxcbiAgICBnZXRQYXJlbnROb2RlKG5vZGUpIHtcbiAgICAgICAgcmV0dXJuIG5vZGUucGFyZW50Tm9kZTtcbiAgICB9LFxuICAgIGdldEF0dHJMaXN0KGVsZW1lbnQpIHtcbiAgICAgICAgcmV0dXJuIGVsZW1lbnQuYXR0cnM7XG4gICAgfSxcbiAgICAvL05vZGUgZGF0YVxuICAgIGdldFRhZ05hbWUoZWxlbWVudCkge1xuICAgICAgICByZXR1cm4gZWxlbWVudC50YWdOYW1lO1xuICAgIH0sXG4gICAgZ2V0TmFtZXNwYWNlVVJJKGVsZW1lbnQpIHtcbiAgICAgICAgcmV0dXJuIGVsZW1lbnQubmFtZXNwYWNlVVJJO1xuICAgIH0sXG4gICAgZ2V0VGV4dE5vZGVDb250ZW50KHRleHROb2RlKSB7XG4gICAgICAgIHJldHVybiB0ZXh0Tm9kZS52YWx1ZTtcbiAgICB9LFxuICAgIGdldENvbW1lbnROb2RlQ29udGVudChjb21tZW50Tm9kZSkge1xuICAgICAgICByZXR1cm4gY29tbWVudE5vZGUuZGF0YTtcbiAgICB9LFxuICAgIGdldERvY3VtZW50VHlwZU5vZGVOYW1lKGRvY3R5cGVOb2RlKSB7XG4gICAgICAgIHJldHVybiBkb2N0eXBlTm9kZS5uYW1lO1xuICAgIH0sXG4gICAgZ2V0RG9jdW1lbnRUeXBlTm9kZVB1YmxpY0lkKGRvY3R5cGVOb2RlKSB7XG4gICAgICAgIHJldHVybiBkb2N0eXBlTm9kZS5wdWJsaWNJZDtcbiAgICB9LFxuICAgIGdldERvY3VtZW50VHlwZU5vZGVTeXN0ZW1JZChkb2N0eXBlTm9kZSkge1xuICAgICAgICByZXR1cm4gZG9jdHlwZU5vZGUuc3lzdGVtSWQ7XG4gICAgfSxcbiAgICAvL05vZGUgdHlwZXNcbiAgICBpc1RleHROb2RlKG5vZGUpIHtcbiAgICAgICAgcmV0dXJuIG5vZGUubm9kZU5hbWUgPT09ICcjdGV4dCc7XG4gICAgfSxcbiAgICBpc0NvbW1lbnROb2RlKG5vZGUpIHtcbiAgICAgICAgcmV0dXJuIG5vZGUubm9kZU5hbWUgPT09ICcjY29tbWVudCc7XG4gICAgfSxcbiAgICBpc0RvY3VtZW50VHlwZU5vZGUobm9kZSkge1xuICAgICAgICByZXR1cm4gbm9kZS5ub2RlTmFtZSA9PT0gJyNkb2N1bWVudFR5cGUnO1xuICAgIH0sXG4gICAgaXNFbGVtZW50Tm9kZShub2RlKSB7XG4gICAgICAgIHJldHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobm9kZSwgJ3RhZ05hbWUnKTtcbiAgICB9LFxuICAgIC8vIFNvdXJjZSBjb2RlIGxvY2F0aW9uXG4gICAgc2V0Tm9kZVNvdXJjZUNvZGVMb2NhdGlvbihub2RlLCBsb2NhdGlvbikge1xuICAgICAgICBub2RlLnNvdXJjZUNvZGVMb2NhdGlvbiA9IGxvY2F0aW9uO1xuICAgIH0sXG4gICAgZ2V0Tm9kZVNvdXJjZUNvZGVMb2NhdGlvbihub2RlKSB7XG4gICAgICAgIHJldHVybiBub2RlLnNvdXJjZUNvZGVMb2NhdGlvbjtcbiAgICB9LFxuICAgIHVwZGF0ZU5vZGVTb3VyY2VDb2RlTG9jYXRpb24obm9kZSwgZW5kTG9jYXRpb24pIHtcbiAgICAgICAgbm9kZS5zb3VyY2VDb2RlTG9jYXRpb24gPSB7IC4uLm5vZGUuc291cmNlQ29kZUxvY2F0aW9uLCAuLi5lbmRMb2NhdGlvbiB9O1xuICAgIH0sXG59O1xuIiwgImltcG9ydCB7IERPQ1VNRU5UX01PREUgfSBmcm9tICcuL2h0bWwuanMnO1xuLy9Db25zdFxuY29uc3QgVkFMSURfRE9DVFlQRV9OQU1FID0gJ2h0bWwnO1xuY29uc3QgVkFMSURfU1lTVEVNX0lEID0gJ2Fib3V0OmxlZ2FjeS1jb21wYXQnO1xuY29uc3QgUVVJUktTX01PREVfU1lTVEVNX0lEID0gJ2h0dHA6Ly93d3cuaWJtLmNvbS9kYXRhL2R0ZC92MTEvaWJteGh0bWwxLXRyYW5zaXRpb25hbC5kdGQnO1xuY29uc3QgUVVJUktTX01PREVfUFVCTElDX0lEX1BSRUZJWEVTID0gW1xuICAgICcrLy9zaWxtYXJpbC8vZHRkIGh0bWwgcHJvIHYwcjExIDE5OTcwMTAxLy8nLFxuICAgICctLy9hcy8vZHRkIGh0bWwgMy4wIGFzd2VkaXQgKyBleHRlbnNpb25zLy8nLFxuICAgICctLy9hZHZhc29mdCBsdGQvL2R0ZCBodG1sIDMuMCBhc3dlZGl0ICsgZXh0ZW5zaW9ucy8vJyxcbiAgICAnLS8vaWV0Zi8vZHRkIGh0bWwgMi4wIGxldmVsIDEvLycsXG4gICAgJy0vL2lldGYvL2R0ZCBodG1sIDIuMCBsZXZlbCAyLy8nLFxuICAgICctLy9pZXRmLy9kdGQgaHRtbCAyLjAgc3RyaWN0IGxldmVsIDEvLycsXG4gICAgJy0vL2lldGYvL2R0ZCBodG1sIDIuMCBzdHJpY3QgbGV2ZWwgMi8vJyxcbiAgICAnLS8vaWV0Zi8vZHRkIGh0bWwgMi4wIHN0cmljdC8vJyxcbiAgICAnLS8vaWV0Zi8vZHRkIGh0bWwgMi4wLy8nLFxuICAgICctLy9pZXRmLy9kdGQgaHRtbCAyLjFlLy8nLFxuICAgICctLy9pZXRmLy9kdGQgaHRtbCAzLjAvLycsXG4gICAgJy0vL2lldGYvL2R0ZCBodG1sIDMuMiBmaW5hbC8vJyxcbiAgICAnLS8vaWV0Zi8vZHRkIGh0bWwgMy4yLy8nLFxuICAgICctLy9pZXRmLy9kdGQgaHRtbCAzLy8nLFxuICAgICctLy9pZXRmLy9kdGQgaHRtbCBsZXZlbCAwLy8nLFxuICAgICctLy9pZXRmLy9kdGQgaHRtbCBsZXZlbCAxLy8nLFxuICAgICctLy9pZXRmLy9kdGQgaHRtbCBsZXZlbCAyLy8nLFxuICAgICctLy9pZXRmLy9kdGQgaHRtbCBsZXZlbCAzLy8nLFxuICAgICctLy9pZXRmLy9kdGQgaHRtbCBzdHJpY3QgbGV2ZWwgMC8vJyxcbiAgICAnLS8vaWV0Zi8vZHRkIGh0bWwgc3RyaWN0IGxldmVsIDEvLycsXG4gICAgJy0vL2lldGYvL2R0ZCBodG1sIHN0cmljdCBsZXZlbCAyLy8nLFxuICAgICctLy9pZXRmLy9kdGQgaHRtbCBzdHJpY3QgbGV2ZWwgMy8vJyxcbiAgICAnLS8vaWV0Zi8vZHRkIGh0bWwgc3RyaWN0Ly8nLFxuICAgICctLy9pZXRmLy9kdGQgaHRtbC8vJyxcbiAgICAnLS8vbWV0cml1cy8vZHRkIG1ldHJpdXMgcHJlc2VudGF0aW9uYWwvLycsXG4gICAgJy0vL21pY3Jvc29mdC8vZHRkIGludGVybmV0IGV4cGxvcmVyIDIuMCBodG1sIHN0cmljdC8vJyxcbiAgICAnLS8vbWljcm9zb2Z0Ly9kdGQgaW50ZXJuZXQgZXhwbG9yZXIgMi4wIGh0bWwvLycsXG4gICAgJy0vL21pY3Jvc29mdC8vZHRkIGludGVybmV0IGV4cGxvcmVyIDIuMCB0YWJsZXMvLycsXG4gICAgJy0vL21pY3Jvc29mdC8vZHRkIGludGVybmV0IGV4cGxvcmVyIDMuMCBodG1sIHN0cmljdC8vJyxcbiAgICAnLS8vbWljcm9zb2Z0Ly9kdGQgaW50ZXJuZXQgZXhwbG9yZXIgMy4wIGh0bWwvLycsXG4gICAgJy0vL21pY3Jvc29mdC8vZHRkIGludGVybmV0IGV4cGxvcmVyIDMuMCB0YWJsZXMvLycsXG4gICAgJy0vL25ldHNjYXBlIGNvbW0uIGNvcnAuLy9kdGQgaHRtbC8vJyxcbiAgICAnLS8vbmV0c2NhcGUgY29tbS4gY29ycC4vL2R0ZCBzdHJpY3QgaHRtbC8vJyxcbiAgICBcIi0vL28ncmVpbGx5IGFuZCBhc3NvY2lhdGVzLy9kdGQgaHRtbCAyLjAvL1wiLFxuICAgIFwiLS8vbydyZWlsbHkgYW5kIGFzc29jaWF0ZXMvL2R0ZCBodG1sIGV4dGVuZGVkIDEuMC8vXCIsXG4gICAgXCItLy9vJ3JlaWxseSBhbmQgYXNzb2NpYXRlcy8vZHRkIGh0bWwgZXh0ZW5kZWQgcmVsYXhlZCAxLjAvL1wiLFxuICAgICctLy9zcS8vZHRkIGh0bWwgMi4wIGhvdG1ldGFsICsgZXh0ZW5zaW9ucy8vJyxcbiAgICAnLS8vc29mdHF1YWQgc29mdHdhcmUvL2R0ZCBob3RtZXRhbCBwcm8gNi4wOjoxOTk5MDYwMTo6ZXh0ZW5zaW9ucyB0byBodG1sIDQuMC8vJyxcbiAgICAnLS8vc29mdHF1YWQvL2R0ZCBob3RtZXRhbCBwcm8gNC4wOjoxOTk3MTAxMDo6ZXh0ZW5zaW9ucyB0byBodG1sIDQuMC8vJyxcbiAgICAnLS8vc3B5Z2xhc3MvL2R0ZCBodG1sIDIuMCBleHRlbmRlZC8vJyxcbiAgICAnLS8vc3VuIG1pY3Jvc3lzdGVtcyBjb3JwLi8vZHRkIGhvdGphdmEgaHRtbC8vJyxcbiAgICAnLS8vc3VuIG1pY3Jvc3lzdGVtcyBjb3JwLi8vZHRkIGhvdGphdmEgc3RyaWN0IGh0bWwvLycsXG4gICAgJy0vL3czYy8vZHRkIGh0bWwgMyAxOTk1LTAzLTI0Ly8nLFxuICAgICctLy93M2MvL2R0ZCBodG1sIDMuMiBkcmFmdC8vJyxcbiAgICAnLS8vdzNjLy9kdGQgaHRtbCAzLjIgZmluYWwvLycsXG4gICAgJy0vL3czYy8vZHRkIGh0bWwgMy4yLy8nLFxuICAgICctLy93M2MvL2R0ZCBodG1sIDMuMnMgZHJhZnQvLycsXG4gICAgJy0vL3czYy8vZHRkIGh0bWwgNC4wIGZyYW1lc2V0Ly8nLFxuICAgICctLy93M2MvL2R0ZCBodG1sIDQuMCB0cmFuc2l0aW9uYWwvLycsXG4gICAgJy0vL3czYy8vZHRkIGh0bWwgZXhwZXJpbWVudGFsIDE5OTYwNzEyLy8nLFxuICAgICctLy93M2MvL2R0ZCBodG1sIGV4cGVyaW1lbnRhbCA5NzA0MjEvLycsXG4gICAgJy0vL3czYy8vZHRkIHczIGh0bWwvLycsXG4gICAgJy0vL3czby8vZHRkIHczIGh0bWwgMy4wLy8nLFxuICAgICctLy93ZWJ0ZWNocy8vZHRkIG1vemlsbGEgaHRtbCAyLjAvLycsXG4gICAgJy0vL3dlYnRlY2hzLy9kdGQgbW96aWxsYSBodG1sLy8nLFxuXTtcbmNvbnN0IFFVSVJLU19NT0RFX05PX1NZU1RFTV9JRF9QVUJMSUNfSURfUFJFRklYRVMgPSBbXG4gICAgLi4uUVVJUktTX01PREVfUFVCTElDX0lEX1BSRUZJWEVTLFxuICAgICctLy93M2MvL2R0ZCBodG1sIDQuMDEgZnJhbWVzZXQvLycsXG4gICAgJy0vL3czYy8vZHRkIGh0bWwgNC4wMSB0cmFuc2l0aW9uYWwvLycsXG5dO1xuY29uc3QgUVVJUktTX01PREVfUFVCTElDX0lEUyA9IG5ldyBTZXQoW1xuICAgICctLy93M28vL2R0ZCB3MyBodG1sIHN0cmljdCAzLjAvL2VuLy8nLFxuICAgICctL3czYy9kdGQgaHRtbCA0LjAgdHJhbnNpdGlvbmFsL2VuJyxcbiAgICAnaHRtbCcsXG5dKTtcbmNvbnN0IExJTUlURURfUVVJUktTX1BVQkxJQ19JRF9QUkVGSVhFUyA9IFsnLS8vdzNjLy9kdGQgeGh0bWwgMS4wIGZyYW1lc2V0Ly8nLCAnLS8vdzNjLy9kdGQgeGh0bWwgMS4wIHRyYW5zaXRpb25hbC8vJ107XG5jb25zdCBMSU1JVEVEX1FVSVJLU19XSVRIX1NZU1RFTV9JRF9QVUJMSUNfSURfUFJFRklYRVMgPSBbXG4gICAgLi4uTElNSVRFRF9RVUlSS1NfUFVCTElDX0lEX1BSRUZJWEVTLFxuICAgICctLy93M2MvL2R0ZCBodG1sIDQuMDEgZnJhbWVzZXQvLycsXG4gICAgJy0vL3czYy8vZHRkIGh0bWwgNC4wMSB0cmFuc2l0aW9uYWwvLycsXG5dO1xuLy9VdGlsc1xuZnVuY3Rpb24gaGFzUHJlZml4KHB1YmxpY0lkLCBwcmVmaXhlcykge1xuICAgIHJldHVybiBwcmVmaXhlcy5zb21lKChwcmVmaXgpID0+IHB1YmxpY0lkLnN0YXJ0c1dpdGgocHJlZml4KSk7XG59XG4vL0FQSVxuZXhwb3J0IGZ1bmN0aW9uIGlzQ29uZm9ybWluZyh0b2tlbikge1xuICAgIHJldHVybiAodG9rZW4ubmFtZSA9PT0gVkFMSURfRE9DVFlQRV9OQU1FICYmXG4gICAgICAgIHRva2VuLnB1YmxpY0lkID09PSBudWxsICYmXG4gICAgICAgICh0b2tlbi5zeXN0ZW1JZCA9PT0gbnVsbCB8fCB0b2tlbi5zeXN0ZW1JZCA9PT0gVkFMSURfU1lTVEVNX0lEKSk7XG59XG5leHBvcnQgZnVuY3Rpb24gZ2V0RG9jdW1lbnRNb2RlKHRva2VuKSB7XG4gICAgaWYgKHRva2VuLm5hbWUgIT09IFZBTElEX0RPQ1RZUEVfTkFNRSkge1xuICAgICAgICByZXR1cm4gRE9DVU1FTlRfTU9ERS5RVUlSS1M7XG4gICAgfVxuICAgIGNvbnN0IHsgc3lzdGVtSWQgfSA9IHRva2VuO1xuICAgIGlmIChzeXN0ZW1JZCAmJiBzeXN0ZW1JZC50b0xvd2VyQ2FzZSgpID09PSBRVUlSS1NfTU9ERV9TWVNURU1fSUQpIHtcbiAgICAgICAgcmV0dXJuIERPQ1VNRU5UX01PREUuUVVJUktTO1xuICAgIH1cbiAgICBsZXQgeyBwdWJsaWNJZCB9ID0gdG9rZW47XG4gICAgaWYgKHB1YmxpY0lkICE9PSBudWxsKSB7XG4gICAgICAgIHB1YmxpY0lkID0gcHVibGljSWQudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgaWYgKFFVSVJLU19NT0RFX1BVQkxJQ19JRFMuaGFzKHB1YmxpY0lkKSkge1xuICAgICAgICAgICAgcmV0dXJuIERPQ1VNRU5UX01PREUuUVVJUktTO1xuICAgICAgICB9XG4gICAgICAgIGxldCBwcmVmaXhlcyA9IHN5c3RlbUlkID09PSBudWxsID8gUVVJUktTX01PREVfTk9fU1lTVEVNX0lEX1BVQkxJQ19JRF9QUkVGSVhFUyA6IFFVSVJLU19NT0RFX1BVQkxJQ19JRF9QUkVGSVhFUztcbiAgICAgICAgaWYgKGhhc1ByZWZpeChwdWJsaWNJZCwgcHJlZml4ZXMpKSB7XG4gICAgICAgICAgICByZXR1cm4gRE9DVU1FTlRfTU9ERS5RVUlSS1M7XG4gICAgICAgIH1cbiAgICAgICAgcHJlZml4ZXMgPVxuICAgICAgICAgICAgc3lzdGVtSWQgPT09IG51bGwgPyBMSU1JVEVEX1FVSVJLU19QVUJMSUNfSURfUFJFRklYRVMgOiBMSU1JVEVEX1FVSVJLU19XSVRIX1NZU1RFTV9JRF9QVUJMSUNfSURfUFJFRklYRVM7XG4gICAgICAgIGlmIChoYXNQcmVmaXgocHVibGljSWQsIHByZWZpeGVzKSkge1xuICAgICAgICAgICAgcmV0dXJuIERPQ1VNRU5UX01PREUuTElNSVRFRF9RVUlSS1M7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIERPQ1VNRU5UX01PREUuTk9fUVVJUktTO1xufVxuIiwgImltcG9ydCB7IFRBR19JRCBhcyAkLCBOUywgQVRUUlMsIGdldFRhZ0lEIH0gZnJvbSAnLi9odG1sLmpzJztcbi8vTUlNRSB0eXBlc1xuY29uc3QgTUlNRV9UWVBFUyA9IHtcbiAgICBURVhUX0hUTUw6ICd0ZXh0L2h0bWwnLFxuICAgIEFQUExJQ0FUSU9OX1hNTDogJ2FwcGxpY2F0aW9uL3hodG1sK3htbCcsXG59O1xuLy9BdHRyaWJ1dGVzXG5jb25zdCBERUZJTklUSU9OX1VSTF9BVFRSID0gJ2RlZmluaXRpb251cmwnO1xuY29uc3QgQURKVVNURURfREVGSU5JVElPTl9VUkxfQVRUUiA9ICdkZWZpbml0aW9uVVJMJztcbmNvbnN0IFNWR19BVFRSU19BREpVU1RNRU5UX01BUCA9IG5ldyBNYXAoW1xuICAgICdhdHRyaWJ1dGVOYW1lJyxcbiAgICAnYXR0cmlidXRlVHlwZScsXG4gICAgJ2Jhc2VGcmVxdWVuY3knLFxuICAgICdiYXNlUHJvZmlsZScsXG4gICAgJ2NhbGNNb2RlJyxcbiAgICAnY2xpcFBhdGhVbml0cycsXG4gICAgJ2RpZmZ1c2VDb25zdGFudCcsXG4gICAgJ2VkZ2VNb2RlJyxcbiAgICAnZmlsdGVyVW5pdHMnLFxuICAgICdnbHlwaFJlZicsXG4gICAgJ2dyYWRpZW50VHJhbnNmb3JtJyxcbiAgICAnZ3JhZGllbnRVbml0cycsXG4gICAgJ2tlcm5lbE1hdHJpeCcsXG4gICAgJ2tlcm5lbFVuaXRMZW5ndGgnLFxuICAgICdrZXlQb2ludHMnLFxuICAgICdrZXlTcGxpbmVzJyxcbiAgICAna2V5VGltZXMnLFxuICAgICdsZW5ndGhBZGp1c3QnLFxuICAgICdsaW1pdGluZ0NvbmVBbmdsZScsXG4gICAgJ21hcmtlckhlaWdodCcsXG4gICAgJ21hcmtlclVuaXRzJyxcbiAgICAnbWFya2VyV2lkdGgnLFxuICAgICdtYXNrQ29udGVudFVuaXRzJyxcbiAgICAnbWFza1VuaXRzJyxcbiAgICAnbnVtT2N0YXZlcycsXG4gICAgJ3BhdGhMZW5ndGgnLFxuICAgICdwYXR0ZXJuQ29udGVudFVuaXRzJyxcbiAgICAncGF0dGVyblRyYW5zZm9ybScsXG4gICAgJ3BhdHRlcm5Vbml0cycsXG4gICAgJ3BvaW50c0F0WCcsXG4gICAgJ3BvaW50c0F0WScsXG4gICAgJ3BvaW50c0F0WicsXG4gICAgJ3ByZXNlcnZlQWxwaGEnLFxuICAgICdwcmVzZXJ2ZUFzcGVjdFJhdGlvJyxcbiAgICAncHJpbWl0aXZlVW5pdHMnLFxuICAgICdyZWZYJyxcbiAgICAncmVmWScsXG4gICAgJ3JlcGVhdENvdW50JyxcbiAgICAncmVwZWF0RHVyJyxcbiAgICAncmVxdWlyZWRFeHRlbnNpb25zJyxcbiAgICAncmVxdWlyZWRGZWF0dXJlcycsXG4gICAgJ3NwZWN1bGFyQ29uc3RhbnQnLFxuICAgICdzcGVjdWxhckV4cG9uZW50JyxcbiAgICAnc3ByZWFkTWV0aG9kJyxcbiAgICAnc3RhcnRPZmZzZXQnLFxuICAgICdzdGREZXZpYXRpb24nLFxuICAgICdzdGl0Y2hUaWxlcycsXG4gICAgJ3N1cmZhY2VTY2FsZScsXG4gICAgJ3N5c3RlbUxhbmd1YWdlJyxcbiAgICAndGFibGVWYWx1ZXMnLFxuICAgICd0YXJnZXRYJyxcbiAgICAndGFyZ2V0WScsXG4gICAgJ3RleHRMZW5ndGgnLFxuICAgICd2aWV3Qm94JyxcbiAgICAndmlld1RhcmdldCcsXG4gICAgJ3hDaGFubmVsU2VsZWN0b3InLFxuICAgICd5Q2hhbm5lbFNlbGVjdG9yJyxcbiAgICAnem9vbUFuZFBhbicsXG5dLm1hcCgoYXR0cikgPT4gW2F0dHIudG9Mb3dlckNhc2UoKSwgYXR0cl0pKTtcbmNvbnN0IFhNTF9BVFRSU19BREpVU1RNRU5UX01BUCA9IG5ldyBNYXAoW1xuICAgIFsneGxpbms6YWN0dWF0ZScsIHsgcHJlZml4OiAneGxpbmsnLCBuYW1lOiAnYWN0dWF0ZScsIG5hbWVzcGFjZTogTlMuWExJTksgfV0sXG4gICAgWyd4bGluazphcmNyb2xlJywgeyBwcmVmaXg6ICd4bGluaycsIG5hbWU6ICdhcmNyb2xlJywgbmFtZXNwYWNlOiBOUy5YTElOSyB9XSxcbiAgICBbJ3hsaW5rOmhyZWYnLCB7IHByZWZpeDogJ3hsaW5rJywgbmFtZTogJ2hyZWYnLCBuYW1lc3BhY2U6IE5TLlhMSU5LIH1dLFxuICAgIFsneGxpbms6cm9sZScsIHsgcHJlZml4OiAneGxpbmsnLCBuYW1lOiAncm9sZScsIG5hbWVzcGFjZTogTlMuWExJTksgfV0sXG4gICAgWyd4bGluazpzaG93JywgeyBwcmVmaXg6ICd4bGluaycsIG5hbWU6ICdzaG93JywgbmFtZXNwYWNlOiBOUy5YTElOSyB9XSxcbiAgICBbJ3hsaW5rOnRpdGxlJywgeyBwcmVmaXg6ICd4bGluaycsIG5hbWU6ICd0aXRsZScsIG5hbWVzcGFjZTogTlMuWExJTksgfV0sXG4gICAgWyd4bGluazp0eXBlJywgeyBwcmVmaXg6ICd4bGluaycsIG5hbWU6ICd0eXBlJywgbmFtZXNwYWNlOiBOUy5YTElOSyB9XSxcbiAgICBbJ3htbDpsYW5nJywgeyBwcmVmaXg6ICd4bWwnLCBuYW1lOiAnbGFuZycsIG5hbWVzcGFjZTogTlMuWE1MIH1dLFxuICAgIFsneG1sOnNwYWNlJywgeyBwcmVmaXg6ICd4bWwnLCBuYW1lOiAnc3BhY2UnLCBuYW1lc3BhY2U6IE5TLlhNTCB9XSxcbiAgICBbJ3htbG5zJywgeyBwcmVmaXg6ICcnLCBuYW1lOiAneG1sbnMnLCBuYW1lc3BhY2U6IE5TLlhNTE5TIH1dLFxuICAgIFsneG1sbnM6eGxpbmsnLCB7IHByZWZpeDogJ3htbG5zJywgbmFtZTogJ3hsaW5rJywgbmFtZXNwYWNlOiBOUy5YTUxOUyB9XSxcbl0pO1xuLy9TVkcgdGFnIG5hbWVzIGFkanVzdG1lbnQgbWFwXG5leHBvcnQgY29uc3QgU1ZHX1RBR19OQU1FU19BREpVU1RNRU5UX01BUCA9IG5ldyBNYXAoW1xuICAgICdhbHRHbHlwaCcsXG4gICAgJ2FsdEdseXBoRGVmJyxcbiAgICAnYWx0R2x5cGhJdGVtJyxcbiAgICAnYW5pbWF0ZUNvbG9yJyxcbiAgICAnYW5pbWF0ZU1vdGlvbicsXG4gICAgJ2FuaW1hdGVUcmFuc2Zvcm0nLFxuICAgICdjbGlwUGF0aCcsXG4gICAgJ2ZlQmxlbmQnLFxuICAgICdmZUNvbG9yTWF0cml4JyxcbiAgICAnZmVDb21wb25lbnRUcmFuc2ZlcicsXG4gICAgJ2ZlQ29tcG9zaXRlJyxcbiAgICAnZmVDb252b2x2ZU1hdHJpeCcsXG4gICAgJ2ZlRGlmZnVzZUxpZ2h0aW5nJyxcbiAgICAnZmVEaXNwbGFjZW1lbnRNYXAnLFxuICAgICdmZURpc3RhbnRMaWdodCcsXG4gICAgJ2ZlRmxvb2QnLFxuICAgICdmZUZ1bmNBJyxcbiAgICAnZmVGdW5jQicsXG4gICAgJ2ZlRnVuY0cnLFxuICAgICdmZUZ1bmNSJyxcbiAgICAnZmVHYXVzc2lhbkJsdXInLFxuICAgICdmZUltYWdlJyxcbiAgICAnZmVNZXJnZScsXG4gICAgJ2ZlTWVyZ2VOb2RlJyxcbiAgICAnZmVNb3JwaG9sb2d5JyxcbiAgICAnZmVPZmZzZXQnLFxuICAgICdmZVBvaW50TGlnaHQnLFxuICAgICdmZVNwZWN1bGFyTGlnaHRpbmcnLFxuICAgICdmZVNwb3RMaWdodCcsXG4gICAgJ2ZlVGlsZScsXG4gICAgJ2ZlVHVyYnVsZW5jZScsXG4gICAgJ2ZvcmVpZ25PYmplY3QnLFxuICAgICdnbHlwaFJlZicsXG4gICAgJ2xpbmVhckdyYWRpZW50JyxcbiAgICAncmFkaWFsR3JhZGllbnQnLFxuICAgICd0ZXh0UGF0aCcsXG5dLm1hcCgodG4pID0+IFt0bi50b0xvd2VyQ2FzZSgpLCB0bl0pKTtcbi8vVGFncyB0aGF0IGNhdXNlcyBleGl0IGZyb20gZm9yZWlnbiBjb250ZW50XG5jb25zdCBFWElUU19GT1JFSUdOX0NPTlRFTlQgPSBuZXcgU2V0KFtcbiAgICAkLkIsXG4gICAgJC5CSUcsXG4gICAgJC5CTE9DS1FVT1RFLFxuICAgICQuQk9EWSxcbiAgICAkLkJSLFxuICAgICQuQ0VOVEVSLFxuICAgICQuQ09ERSxcbiAgICAkLkRELFxuICAgICQuRElWLFxuICAgICQuREwsXG4gICAgJC5EVCxcbiAgICAkLkVNLFxuICAgICQuRU1CRUQsXG4gICAgJC5IMSxcbiAgICAkLkgyLFxuICAgICQuSDMsXG4gICAgJC5INCxcbiAgICAkLkg1LFxuICAgICQuSDYsXG4gICAgJC5IRUFELFxuICAgICQuSFIsXG4gICAgJC5JLFxuICAgICQuSU1HLFxuICAgICQuTEksXG4gICAgJC5MSVNUSU5HLFxuICAgICQuTUVOVSxcbiAgICAkLk1FVEEsXG4gICAgJC5OT0JSLFxuICAgICQuT0wsXG4gICAgJC5QLFxuICAgICQuUFJFLFxuICAgICQuUlVCWSxcbiAgICAkLlMsXG4gICAgJC5TTUFMTCxcbiAgICAkLlNQQU4sXG4gICAgJC5TVFJPTkcsXG4gICAgJC5TVFJJS0UsXG4gICAgJC5TVUIsXG4gICAgJC5TVVAsXG4gICAgJC5UQUJMRSxcbiAgICAkLlRULFxuICAgICQuVSxcbiAgICAkLlVMLFxuICAgICQuVkFSLFxuXSk7XG4vL0NoZWNrIGV4aXQgZnJvbSBmb3JlaWduIGNvbnRlbnRcbmV4cG9ydCBmdW5jdGlvbiBjYXVzZXNFeGl0KHN0YXJ0VGFnVG9rZW4pIHtcbiAgICBjb25zdCB0biA9IHN0YXJ0VGFnVG9rZW4udGFnSUQ7XG4gICAgY29uc3QgaXNGb250V2l0aEF0dHJzID0gdG4gPT09ICQuRk9OVCAmJlxuICAgICAgICBzdGFydFRhZ1Rva2VuLmF0dHJzLnNvbWUoKHsgbmFtZSB9KSA9PiBuYW1lID09PSBBVFRSUy5DT0xPUiB8fCBuYW1lID09PSBBVFRSUy5TSVpFIHx8IG5hbWUgPT09IEFUVFJTLkZBQ0UpO1xuICAgIHJldHVybiBpc0ZvbnRXaXRoQXR0cnMgfHwgRVhJVFNfRk9SRUlHTl9DT05URU5ULmhhcyh0bik7XG59XG4vL1Rva2VuIGFkanVzdG1lbnRzXG5leHBvcnQgZnVuY3Rpb24gYWRqdXN0VG9rZW5NYXRoTUxBdHRycyh0b2tlbikge1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdG9rZW4uYXR0cnMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgaWYgKHRva2VuLmF0dHJzW2ldLm5hbWUgPT09IERFRklOSVRJT05fVVJMX0FUVFIpIHtcbiAgICAgICAgICAgIHRva2VuLmF0dHJzW2ldLm5hbWUgPSBBREpVU1RFRF9ERUZJTklUSU9OX1VSTF9BVFRSO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICB9XG59XG5leHBvcnQgZnVuY3Rpb24gYWRqdXN0VG9rZW5TVkdBdHRycyh0b2tlbikge1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdG9rZW4uYXR0cnMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgY29uc3QgYWRqdXN0ZWRBdHRyTmFtZSA9IFNWR19BVFRSU19BREpVU1RNRU5UX01BUC5nZXQodG9rZW4uYXR0cnNbaV0ubmFtZSk7XG4gICAgICAgIGlmIChhZGp1c3RlZEF0dHJOYW1lICE9IG51bGwpIHtcbiAgICAgICAgICAgIHRva2VuLmF0dHJzW2ldLm5hbWUgPSBhZGp1c3RlZEF0dHJOYW1lO1xuICAgICAgICB9XG4gICAgfVxufVxuZXhwb3J0IGZ1bmN0aW9uIGFkanVzdFRva2VuWE1MQXR0cnModG9rZW4pIHtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRva2VuLmF0dHJzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGNvbnN0IGFkanVzdGVkQXR0ckVudHJ5ID0gWE1MX0FUVFJTX0FESlVTVE1FTlRfTUFQLmdldCh0b2tlbi5hdHRyc1tpXS5uYW1lKTtcbiAgICAgICAgaWYgKGFkanVzdGVkQXR0ckVudHJ5KSB7XG4gICAgICAgICAgICB0b2tlbi5hdHRyc1tpXS5wcmVmaXggPSBhZGp1c3RlZEF0dHJFbnRyeS5wcmVmaXg7XG4gICAgICAgICAgICB0b2tlbi5hdHRyc1tpXS5uYW1lID0gYWRqdXN0ZWRBdHRyRW50cnkubmFtZTtcbiAgICAgICAgICAgIHRva2VuLmF0dHJzW2ldLm5hbWVzcGFjZSA9IGFkanVzdGVkQXR0ckVudHJ5Lm5hbWVzcGFjZTtcbiAgICAgICAgfVxuICAgIH1cbn1cbmV4cG9ydCBmdW5jdGlvbiBhZGp1c3RUb2tlblNWR1RhZ05hbWUodG9rZW4pIHtcbiAgICBjb25zdCBhZGp1c3RlZFRhZ05hbWUgPSBTVkdfVEFHX05BTUVTX0FESlVTVE1FTlRfTUFQLmdldCh0b2tlbi50YWdOYW1lKTtcbiAgICBpZiAoYWRqdXN0ZWRUYWdOYW1lICE9IG51bGwpIHtcbiAgICAgICAgdG9rZW4udGFnTmFtZSA9IGFkanVzdGVkVGFnTmFtZTtcbiAgICAgICAgdG9rZW4udGFnSUQgPSBnZXRUYWdJRCh0b2tlbi50YWdOYW1lKTtcbiAgICB9XG59XG4vL0ludGVncmF0aW9uIHBvaW50c1xuZnVuY3Rpb24gaXNNYXRoTUxUZXh0SW50ZWdyYXRpb25Qb2ludCh0biwgbnMpIHtcbiAgICByZXR1cm4gbnMgPT09IE5TLk1BVEhNTCAmJiAodG4gPT09ICQuTUkgfHwgdG4gPT09ICQuTU8gfHwgdG4gPT09ICQuTU4gfHwgdG4gPT09ICQuTVMgfHwgdG4gPT09ICQuTVRFWFQpO1xufVxuZnVuY3Rpb24gaXNIdG1sSW50ZWdyYXRpb25Qb2ludCh0biwgbnMsIGF0dHJzKSB7XG4gICAgaWYgKG5zID09PSBOUy5NQVRITUwgJiYgdG4gPT09ICQuQU5OT1RBVElPTl9YTUwpIHtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBhdHRycy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgaWYgKGF0dHJzW2ldLm5hbWUgPT09IEFUVFJTLkVOQ09ESU5HKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBhdHRyc1tpXS52YWx1ZS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZSA9PT0gTUlNRV9UWVBFUy5URVhUX0hUTUwgfHwgdmFsdWUgPT09IE1JTUVfVFlQRVMuQVBQTElDQVRJT05fWE1MO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBucyA9PT0gTlMuU1ZHICYmICh0biA9PT0gJC5GT1JFSUdOX09CSkVDVCB8fCB0biA9PT0gJC5ERVNDIHx8IHRuID09PSAkLlRJVExFKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBpc0ludGVncmF0aW9uUG9pbnQodG4sIG5zLCBhdHRycywgZm9yZWlnbk5TKSB7XG4gICAgcmV0dXJuICgoKCFmb3JlaWduTlMgfHwgZm9yZWlnbk5TID09PSBOUy5IVE1MKSAmJiBpc0h0bWxJbnRlZ3JhdGlvblBvaW50KHRuLCBucywgYXR0cnMpKSB8fFxuICAgICAgICAoKCFmb3JlaWduTlMgfHwgZm9yZWlnbk5TID09PSBOUy5NQVRITUwpICYmIGlzTWF0aE1MVGV4dEludGVncmF0aW9uUG9pbnQodG4sIG5zKSkpO1xufVxuIiwgImltcG9ydCB7IFRva2VuaXplciwgVG9rZW5pemVyTW9kZSB9IGZyb20gJy4uL3Rva2VuaXplci9pbmRleC5qcyc7XG5pbXBvcnQgeyBPcGVuRWxlbWVudFN0YWNrIH0gZnJvbSAnLi9vcGVuLWVsZW1lbnQtc3RhY2suanMnO1xuaW1wb3J0IHsgRm9ybWF0dGluZ0VsZW1lbnRMaXN0LCBFbnRyeVR5cGUgfSBmcm9tICcuL2Zvcm1hdHRpbmctZWxlbWVudC1saXN0LmpzJztcbmltcG9ydCB7IGRlZmF1bHRUcmVlQWRhcHRlciB9IGZyb20gJy4uL3RyZWUtYWRhcHRlcnMvZGVmYXVsdC5qcyc7XG5pbXBvcnQgKiBhcyBkb2N0eXBlIGZyb20gJy4uL2NvbW1vbi9kb2N0eXBlLmpzJztcbmltcG9ydCAqIGFzIGZvcmVpZ25Db250ZW50IGZyb20gJy4uL2NvbW1vbi9mb3JlaWduLWNvbnRlbnQuanMnO1xuaW1wb3J0IHsgRVJSIH0gZnJvbSAnLi4vY29tbW9uL2Vycm9yLWNvZGVzLmpzJztcbmltcG9ydCAqIGFzIHVuaWNvZGUgZnJvbSAnLi4vY29tbW9uL3VuaWNvZGUuanMnO1xuaW1wb3J0IHsgVEFHX0lEIGFzICQsIFRBR19OQU1FUyBhcyBUTiwgTlMsIEFUVFJTLCBTUEVDSUFMX0VMRU1FTlRTLCBET0NVTUVOVF9NT0RFLCBOVU1CRVJFRF9IRUFERVJTLCBnZXRUYWdJRCwgfSBmcm9tICcuLi9jb21tb24vaHRtbC5qcyc7XG5pbXBvcnQgeyBUb2tlblR5cGUsIGdldFRva2VuQXR0ciwgfSBmcm9tICcuLi9jb21tb24vdG9rZW4uanMnO1xuLy9NaXNjIGNvbnN0YW50c1xuY29uc3QgSElEREVOX0lOUFVUX1RZUEUgPSAnaGlkZGVuJztcbi8vQWRvcHRpb24gYWdlbmN5IGxvb3BzIGl0ZXJhdGlvbiBjb3VudFxuY29uc3QgQUFfT1VURVJfTE9PUF9JVEVSID0gODtcbmNvbnN0IEFBX0lOTkVSX0xPT1BfSVRFUiA9IDM7XG4vL0luc2VydGlvbiBtb2Rlc1xudmFyIEluc2VydGlvbk1vZGU7XG4oZnVuY3Rpb24gKEluc2VydGlvbk1vZGUpIHtcbiAgICBJbnNlcnRpb25Nb2RlW0luc2VydGlvbk1vZGVbXCJJTklUSUFMXCJdID0gMF0gPSBcIklOSVRJQUxcIjtcbiAgICBJbnNlcnRpb25Nb2RlW0luc2VydGlvbk1vZGVbXCJCRUZPUkVfSFRNTFwiXSA9IDFdID0gXCJCRUZPUkVfSFRNTFwiO1xuICAgIEluc2VydGlvbk1vZGVbSW5zZXJ0aW9uTW9kZVtcIkJFRk9SRV9IRUFEXCJdID0gMl0gPSBcIkJFRk9SRV9IRUFEXCI7XG4gICAgSW5zZXJ0aW9uTW9kZVtJbnNlcnRpb25Nb2RlW1wiSU5fSEVBRFwiXSA9IDNdID0gXCJJTl9IRUFEXCI7XG4gICAgSW5zZXJ0aW9uTW9kZVtJbnNlcnRpb25Nb2RlW1wiSU5fSEVBRF9OT19TQ1JJUFRcIl0gPSA0XSA9IFwiSU5fSEVBRF9OT19TQ1JJUFRcIjtcbiAgICBJbnNlcnRpb25Nb2RlW0luc2VydGlvbk1vZGVbXCJBRlRFUl9IRUFEXCJdID0gNV0gPSBcIkFGVEVSX0hFQURcIjtcbiAgICBJbnNlcnRpb25Nb2RlW0luc2VydGlvbk1vZGVbXCJJTl9CT0RZXCJdID0gNl0gPSBcIklOX0JPRFlcIjtcbiAgICBJbnNlcnRpb25Nb2RlW0luc2VydGlvbk1vZGVbXCJURVhUXCJdID0gN10gPSBcIlRFWFRcIjtcbiAgICBJbnNlcnRpb25Nb2RlW0luc2VydGlvbk1vZGVbXCJJTl9UQUJMRVwiXSA9IDhdID0gXCJJTl9UQUJMRVwiO1xuICAgIEluc2VydGlvbk1vZGVbSW5zZXJ0aW9uTW9kZVtcIklOX1RBQkxFX1RFWFRcIl0gPSA5XSA9IFwiSU5fVEFCTEVfVEVYVFwiO1xuICAgIEluc2VydGlvbk1vZGVbSW5zZXJ0aW9uTW9kZVtcIklOX0NBUFRJT05cIl0gPSAxMF0gPSBcIklOX0NBUFRJT05cIjtcbiAgICBJbnNlcnRpb25Nb2RlW0luc2VydGlvbk1vZGVbXCJJTl9DT0xVTU5fR1JPVVBcIl0gPSAxMV0gPSBcIklOX0NPTFVNTl9HUk9VUFwiO1xuICAgIEluc2VydGlvbk1vZGVbSW5zZXJ0aW9uTW9kZVtcIklOX1RBQkxFX0JPRFlcIl0gPSAxMl0gPSBcIklOX1RBQkxFX0JPRFlcIjtcbiAgICBJbnNlcnRpb25Nb2RlW0luc2VydGlvbk1vZGVbXCJJTl9ST1dcIl0gPSAxM10gPSBcIklOX1JPV1wiO1xuICAgIEluc2VydGlvbk1vZGVbSW5zZXJ0aW9uTW9kZVtcIklOX0NFTExcIl0gPSAxNF0gPSBcIklOX0NFTExcIjtcbiAgICBJbnNlcnRpb25Nb2RlW0luc2VydGlvbk1vZGVbXCJJTl9TRUxFQ1RcIl0gPSAxNV0gPSBcIklOX1NFTEVDVFwiO1xuICAgIEluc2VydGlvbk1vZGVbSW5zZXJ0aW9uTW9kZVtcIklOX1NFTEVDVF9JTl9UQUJMRVwiXSA9IDE2XSA9IFwiSU5fU0VMRUNUX0lOX1RBQkxFXCI7XG4gICAgSW5zZXJ0aW9uTW9kZVtJbnNlcnRpb25Nb2RlW1wiSU5fVEVNUExBVEVcIl0gPSAxN10gPSBcIklOX1RFTVBMQVRFXCI7XG4gICAgSW5zZXJ0aW9uTW9kZVtJbnNlcnRpb25Nb2RlW1wiQUZURVJfQk9EWVwiXSA9IDE4XSA9IFwiQUZURVJfQk9EWVwiO1xuICAgIEluc2VydGlvbk1vZGVbSW5zZXJ0aW9uTW9kZVtcIklOX0ZSQU1FU0VUXCJdID0gMTldID0gXCJJTl9GUkFNRVNFVFwiO1xuICAgIEluc2VydGlvbk1vZGVbSW5zZXJ0aW9uTW9kZVtcIkFGVEVSX0ZSQU1FU0VUXCJdID0gMjBdID0gXCJBRlRFUl9GUkFNRVNFVFwiO1xuICAgIEluc2VydGlvbk1vZGVbSW5zZXJ0aW9uTW9kZVtcIkFGVEVSX0FGVEVSX0JPRFlcIl0gPSAyMV0gPSBcIkFGVEVSX0FGVEVSX0JPRFlcIjtcbiAgICBJbnNlcnRpb25Nb2RlW0luc2VydGlvbk1vZGVbXCJBRlRFUl9BRlRFUl9GUkFNRVNFVFwiXSA9IDIyXSA9IFwiQUZURVJfQUZURVJfRlJBTUVTRVRcIjtcbn0pKEluc2VydGlvbk1vZGUgfHwgKEluc2VydGlvbk1vZGUgPSB7fSkpO1xuY29uc3QgQkFTRV9MT0MgPSB7XG4gICAgc3RhcnRMaW5lOiAtMSxcbiAgICBzdGFydENvbDogLTEsXG4gICAgc3RhcnRPZmZzZXQ6IC0xLFxuICAgIGVuZExpbmU6IC0xLFxuICAgIGVuZENvbDogLTEsXG4gICAgZW5kT2Zmc2V0OiAtMSxcbn07XG5jb25zdCBUQUJMRV9TVFJVQ1RVUkVfVEFHUyA9IG5ldyBTZXQoWyQuVEFCTEUsICQuVEJPRFksICQuVEZPT1QsICQuVEhFQUQsICQuVFJdKTtcbmNvbnN0IGRlZmF1bHRQYXJzZXJPcHRpb25zID0ge1xuICAgIHNjcmlwdGluZ0VuYWJsZWQ6IHRydWUsXG4gICAgc291cmNlQ29kZUxvY2F0aW9uSW5mbzogZmFsc2UsXG4gICAgdHJlZUFkYXB0ZXI6IGRlZmF1bHRUcmVlQWRhcHRlcixcbiAgICBvblBhcnNlRXJyb3I6IG51bGwsXG59O1xuLy9QYXJzZXJcbmV4cG9ydCBjbGFzcyBQYXJzZXIge1xuICAgIGNvbnN0cnVjdG9yKG9wdGlvbnMsIGRvY3VtZW50LCBcbiAgICAvKiogQGludGVybmFsICovXG4gICAgZnJhZ21lbnRDb250ZXh0ID0gbnVsbCwgXG4gICAgLyoqIEBpbnRlcm5hbCAqL1xuICAgIHNjcmlwdEhhbmRsZXIgPSBudWxsKSB7XG4gICAgICAgIHRoaXMuZnJhZ21lbnRDb250ZXh0ID0gZnJhZ21lbnRDb250ZXh0O1xuICAgICAgICB0aGlzLnNjcmlwdEhhbmRsZXIgPSBzY3JpcHRIYW5kbGVyO1xuICAgICAgICB0aGlzLmN1cnJlbnRUb2tlbiA9IG51bGw7XG4gICAgICAgIHRoaXMuc3RvcHBlZCA9IGZhbHNlO1xuICAgICAgICAvKiogQGludGVybmFsICovXG4gICAgICAgIHRoaXMuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuSU5JVElBTDtcbiAgICAgICAgLyoqIEBpbnRlcm5hbCAqL1xuICAgICAgICB0aGlzLm9yaWdpbmFsSW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuSU5JVElBTDtcbiAgICAgICAgLyoqIEBpbnRlcm5hbCAqL1xuICAgICAgICB0aGlzLmhlYWRFbGVtZW50ID0gbnVsbDtcbiAgICAgICAgLyoqIEBpbnRlcm5hbCAqL1xuICAgICAgICB0aGlzLmZvcm1FbGVtZW50ID0gbnVsbDtcbiAgICAgICAgLyoqIEluZGljYXRlcyB0aGF0IHRoZSBjdXJyZW50IG5vZGUgaXMgbm90IGFuIGVsZW1lbnQgaW4gdGhlIEhUTUwgbmFtZXNwYWNlICovXG4gICAgICAgIHRoaXMuY3VycmVudE5vdEluSFRNTCA9IGZhbHNlO1xuICAgICAgICAvKipcbiAgICAgICAgICogVGhlIHRlbXBsYXRlIGluc2VydGlvbiBtb2RlIHN0YWNrIGlzIG1haW50YWluZWQgZnJvbSB0aGUgbGVmdC5cbiAgICAgICAgICogSWUuIHRoZSB0b3Btb3N0IGVsZW1lbnQgd2lsbCBhbHdheXMgaGF2ZSBpbmRleCAwLlxuICAgICAgICAgKlxuICAgICAgICAgKiBAaW50ZXJuYWxcbiAgICAgICAgICovXG4gICAgICAgIHRoaXMudG1wbEluc2VydGlvbk1vZGVTdGFjayA9IFtdO1xuICAgICAgICAvKiogQGludGVybmFsICovXG4gICAgICAgIHRoaXMucGVuZGluZ0NoYXJhY3RlclRva2VucyA9IFtdO1xuICAgICAgICAvKiogQGludGVybmFsICovXG4gICAgICAgIHRoaXMuaGFzTm9uV2hpdGVzcGFjZVBlbmRpbmdDaGFyYWN0ZXJUb2tlbiA9IGZhbHNlO1xuICAgICAgICAvKiogQGludGVybmFsICovXG4gICAgICAgIHRoaXMuZnJhbWVzZXRPayA9IHRydWU7XG4gICAgICAgIC8qKiBAaW50ZXJuYWwgKi9cbiAgICAgICAgdGhpcy5za2lwTmV4dE5ld0xpbmUgPSBmYWxzZTtcbiAgICAgICAgLyoqIEBpbnRlcm5hbCAqL1xuICAgICAgICB0aGlzLmZvc3RlclBhcmVudGluZ0VuYWJsZWQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5vcHRpb25zID0ge1xuICAgICAgICAgICAgLi4uZGVmYXVsdFBhcnNlck9wdGlvbnMsXG4gICAgICAgICAgICAuLi5vcHRpb25zLFxuICAgICAgICB9O1xuICAgICAgICB0aGlzLnRyZWVBZGFwdGVyID0gdGhpcy5vcHRpb25zLnRyZWVBZGFwdGVyO1xuICAgICAgICB0aGlzLm9uUGFyc2VFcnJvciA9IHRoaXMub3B0aW9ucy5vblBhcnNlRXJyb3I7XG4gICAgICAgIC8vIEFsd2F5cyBlbmFibGUgbG9jYXRpb24gaW5mbyBpZiB3ZSByZXBvcnQgcGFyc2UgZXJyb3JzLlxuICAgICAgICBpZiAodGhpcy5vblBhcnNlRXJyb3IpIHtcbiAgICAgICAgICAgIHRoaXMub3B0aW9ucy5zb3VyY2VDb2RlTG9jYXRpb25JbmZvID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmRvY3VtZW50ID0gZG9jdW1lbnQgIT09IG51bGwgJiYgZG9jdW1lbnQgIT09IHZvaWQgMCA/IGRvY3VtZW50IDogdGhpcy50cmVlQWRhcHRlci5jcmVhdGVEb2N1bWVudCgpO1xuICAgICAgICB0aGlzLnRva2VuaXplciA9IG5ldyBUb2tlbml6ZXIodGhpcy5vcHRpb25zLCB0aGlzKTtcbiAgICAgICAgdGhpcy5hY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMgPSBuZXcgRm9ybWF0dGluZ0VsZW1lbnRMaXN0KHRoaXMudHJlZUFkYXB0ZXIpO1xuICAgICAgICB0aGlzLmZyYWdtZW50Q29udGV4dElEID0gZnJhZ21lbnRDb250ZXh0ID8gZ2V0VGFnSUQodGhpcy50cmVlQWRhcHRlci5nZXRUYWdOYW1lKGZyYWdtZW50Q29udGV4dCkpIDogJC5VTktOT1dOO1xuICAgICAgICB0aGlzLl9zZXRDb250ZXh0TW9kZXMoZnJhZ21lbnRDb250ZXh0ICE9PSBudWxsICYmIGZyYWdtZW50Q29udGV4dCAhPT0gdm9pZCAwID8gZnJhZ21lbnRDb250ZXh0IDogdGhpcy5kb2N1bWVudCwgdGhpcy5mcmFnbWVudENvbnRleHRJRCk7XG4gICAgICAgIHRoaXMub3BlbkVsZW1lbnRzID0gbmV3IE9wZW5FbGVtZW50U3RhY2sodGhpcy5kb2N1bWVudCwgdGhpcy50cmVlQWRhcHRlciwgdGhpcyk7XG4gICAgfVxuICAgIC8vIEFQSVxuICAgIHN0YXRpYyBwYXJzZShodG1sLCBvcHRpb25zKSB7XG4gICAgICAgIGNvbnN0IHBhcnNlciA9IG5ldyB0aGlzKG9wdGlvbnMpO1xuICAgICAgICBwYXJzZXIudG9rZW5pemVyLndyaXRlKGh0bWwsIHRydWUpO1xuICAgICAgICByZXR1cm4gcGFyc2VyLmRvY3VtZW50O1xuICAgIH1cbiAgICBzdGF0aWMgZ2V0RnJhZ21lbnRQYXJzZXIoZnJhZ21lbnRDb250ZXh0LCBvcHRpb25zKSB7XG4gICAgICAgIGNvbnN0IG9wdHMgPSB7XG4gICAgICAgICAgICAuLi5kZWZhdWx0UGFyc2VyT3B0aW9ucyxcbiAgICAgICAgICAgIC4uLm9wdGlvbnMsXG4gICAgICAgIH07XG4gICAgICAgIC8vTk9URTogdXNlIGEgPHRlbXBsYXRlPiBlbGVtZW50IGFzIHRoZSBmcmFnbWVudCBjb250ZXh0IGlmIG5vIGNvbnRleHQgZWxlbWVudCB3YXMgcHJvdmlkZWQsXG4gICAgICAgIC8vc28gd2Ugd2lsbCBwYXJzZSBpbiBhIFwiZm9yZ2l2aW5nXCIgbWFubmVyXG4gICAgICAgIGZyYWdtZW50Q29udGV4dCAhPT0gbnVsbCAmJiBmcmFnbWVudENvbnRleHQgIT09IHZvaWQgMCA/IGZyYWdtZW50Q29udGV4dCA6IChmcmFnbWVudENvbnRleHQgPSBvcHRzLnRyZWVBZGFwdGVyLmNyZWF0ZUVsZW1lbnQoVE4uVEVNUExBVEUsIE5TLkhUTUwsIFtdKSk7XG4gICAgICAgIC8vTk9URTogY3JlYXRlIGEgZmFrZSBlbGVtZW50IHdoaWNoIHdpbGwgYmUgdXNlZCBhcyB0aGUgYGRvY3VtZW50YCBmb3IgZnJhZ21lbnQgcGFyc2luZy5cbiAgICAgICAgLy9UaGlzIGlzIGltcG9ydGFudCBmb3IganNkb20sIHdoZXJlIGEgbmV3IGBkb2N1bWVudGAgY2Fubm90IGJlIGNyZWF0ZWQuIFRoaXMgbGVkIHRvXG4gICAgICAgIC8vZnJhZ21lbnQgcGFyc2luZyBtZXNzaW5nIHdpdGggdGhlIG1haW4gYGRvY3VtZW50YC5cbiAgICAgICAgY29uc3QgZG9jdW1lbnRNb2NrID0gb3B0cy50cmVlQWRhcHRlci5jcmVhdGVFbGVtZW50KCdkb2N1bWVudG1vY2snLCBOUy5IVE1MLCBbXSk7XG4gICAgICAgIGNvbnN0IHBhcnNlciA9IG5ldyB0aGlzKG9wdHMsIGRvY3VtZW50TW9jaywgZnJhZ21lbnRDb250ZXh0KTtcbiAgICAgICAgaWYgKHBhcnNlci5mcmFnbWVudENvbnRleHRJRCA9PT0gJC5URU1QTEFURSkge1xuICAgICAgICAgICAgcGFyc2VyLnRtcGxJbnNlcnRpb25Nb2RlU3RhY2sudW5zaGlmdChJbnNlcnRpb25Nb2RlLklOX1RFTVBMQVRFKTtcbiAgICAgICAgfVxuICAgICAgICBwYXJzZXIuX2luaXRUb2tlbml6ZXJGb3JGcmFnbWVudFBhcnNpbmcoKTtcbiAgICAgICAgcGFyc2VyLl9pbnNlcnRGYWtlUm9vdEVsZW1lbnQoKTtcbiAgICAgICAgcGFyc2VyLl9yZXNldEluc2VydGlvbk1vZGUoKTtcbiAgICAgICAgcGFyc2VyLl9maW5kRm9ybUluRnJhZ21lbnRDb250ZXh0KCk7XG4gICAgICAgIHJldHVybiBwYXJzZXI7XG4gICAgfVxuICAgIGdldEZyYWdtZW50KCkge1xuICAgICAgICBjb25zdCByb290RWxlbWVudCA9IHRoaXMudHJlZUFkYXB0ZXIuZ2V0Rmlyc3RDaGlsZCh0aGlzLmRvY3VtZW50KTtcbiAgICAgICAgY29uc3QgZnJhZ21lbnQgPSB0aGlzLnRyZWVBZGFwdGVyLmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTtcbiAgICAgICAgdGhpcy5fYWRvcHROb2Rlcyhyb290RWxlbWVudCwgZnJhZ21lbnQpO1xuICAgICAgICByZXR1cm4gZnJhZ21lbnQ7XG4gICAgfVxuICAgIC8vRXJyb3JzXG4gICAgLyoqIEBpbnRlcm5hbCAqL1xuICAgIF9lcnIodG9rZW4sIGNvZGUsIGJlZm9yZVRva2VuKSB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgaWYgKCF0aGlzLm9uUGFyc2VFcnJvcilcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgY29uc3QgbG9jID0gKF9hID0gdG9rZW4ubG9jYXRpb24pICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IEJBU0VfTE9DO1xuICAgICAgICBjb25zdCBlcnIgPSB7XG4gICAgICAgICAgICBjb2RlLFxuICAgICAgICAgICAgc3RhcnRMaW5lOiBsb2Muc3RhcnRMaW5lLFxuICAgICAgICAgICAgc3RhcnRDb2w6IGxvYy5zdGFydENvbCxcbiAgICAgICAgICAgIHN0YXJ0T2Zmc2V0OiBsb2Muc3RhcnRPZmZzZXQsXG4gICAgICAgICAgICBlbmRMaW5lOiBiZWZvcmVUb2tlbiA/IGxvYy5zdGFydExpbmUgOiBsb2MuZW5kTGluZSxcbiAgICAgICAgICAgIGVuZENvbDogYmVmb3JlVG9rZW4gPyBsb2Muc3RhcnRDb2wgOiBsb2MuZW5kQ29sLFxuICAgICAgICAgICAgZW5kT2Zmc2V0OiBiZWZvcmVUb2tlbiA/IGxvYy5zdGFydE9mZnNldCA6IGxvYy5lbmRPZmZzZXQsXG4gICAgICAgIH07XG4gICAgICAgIHRoaXMub25QYXJzZUVycm9yKGVycik7XG4gICAgfVxuICAgIC8vU3RhY2sgZXZlbnRzXG4gICAgLyoqIEBpbnRlcm5hbCAqL1xuICAgIG9uSXRlbVB1c2gobm9kZSwgdGlkLCBpc1RvcCkge1xuICAgICAgICB2YXIgX2EsIF9iO1xuICAgICAgICAoX2IgPSAoX2EgPSB0aGlzLnRyZWVBZGFwdGVyKS5vbkl0ZW1QdXNoKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IuY2FsbChfYSwgbm9kZSk7XG4gICAgICAgIGlmIChpc1RvcCAmJiB0aGlzLm9wZW5FbGVtZW50cy5zdGFja1RvcCA+IDApXG4gICAgICAgICAgICB0aGlzLl9zZXRDb250ZXh0TW9kZXMobm9kZSwgdGlkKTtcbiAgICB9XG4gICAgLyoqIEBpbnRlcm5hbCAqL1xuICAgIG9uSXRlbVBvcChub2RlLCBpc1RvcCkge1xuICAgICAgICB2YXIgX2EsIF9iO1xuICAgICAgICBpZiAodGhpcy5vcHRpb25zLnNvdXJjZUNvZGVMb2NhdGlvbkluZm8pIHtcbiAgICAgICAgICAgIHRoaXMuX3NldEVuZExvY2F0aW9uKG5vZGUsIHRoaXMuY3VycmVudFRva2VuKTtcbiAgICAgICAgfVxuICAgICAgICAoX2IgPSAoX2EgPSB0aGlzLnRyZWVBZGFwdGVyKS5vbkl0ZW1Qb3ApID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5jYWxsKF9hLCBub2RlLCB0aGlzLm9wZW5FbGVtZW50cy5jdXJyZW50KTtcbiAgICAgICAgaWYgKGlzVG9wKSB7XG4gICAgICAgICAgICBsZXQgY3VycmVudDtcbiAgICAgICAgICAgIGxldCBjdXJyZW50VGFnSWQ7XG4gICAgICAgICAgICBpZiAodGhpcy5vcGVuRWxlbWVudHMuc3RhY2tUb3AgPT09IDAgJiYgdGhpcy5mcmFnbWVudENvbnRleHQpIHtcbiAgICAgICAgICAgICAgICBjdXJyZW50ID0gdGhpcy5mcmFnbWVudENvbnRleHQ7XG4gICAgICAgICAgICAgICAgY3VycmVudFRhZ0lkID0gdGhpcy5mcmFnbWVudENvbnRleHRJRDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICh7IGN1cnJlbnQsIGN1cnJlbnRUYWdJZCB9ID0gdGhpcy5vcGVuRWxlbWVudHMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5fc2V0Q29udGV4dE1vZGVzKGN1cnJlbnQsIGN1cnJlbnRUYWdJZCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgX3NldENvbnRleHRNb2RlcyhjdXJyZW50LCB0aWQpIHtcbiAgICAgICAgY29uc3QgaXNIVE1MID0gY3VycmVudCA9PT0gdGhpcy5kb2N1bWVudCB8fCB0aGlzLnRyZWVBZGFwdGVyLmdldE5hbWVzcGFjZVVSSShjdXJyZW50KSA9PT0gTlMuSFRNTDtcbiAgICAgICAgdGhpcy5jdXJyZW50Tm90SW5IVE1MID0gIWlzSFRNTDtcbiAgICAgICAgdGhpcy50b2tlbml6ZXIuaW5Gb3JlaWduTm9kZSA9ICFpc0hUTUwgJiYgIXRoaXMuX2lzSW50ZWdyYXRpb25Qb2ludCh0aWQsIGN1cnJlbnQpO1xuICAgIH1cbiAgICAvKiogQHByb3RlY3RlZCAqL1xuICAgIF9zd2l0Y2hUb1RleHRQYXJzaW5nKGN1cnJlbnRUb2tlbiwgbmV4dFRva2VuaXplclN0YXRlKSB7XG4gICAgICAgIHRoaXMuX2luc2VydEVsZW1lbnQoY3VycmVudFRva2VuLCBOUy5IVE1MKTtcbiAgICAgICAgdGhpcy50b2tlbml6ZXIuc3RhdGUgPSBuZXh0VG9rZW5pemVyU3RhdGU7XG4gICAgICAgIHRoaXMub3JpZ2luYWxJbnNlcnRpb25Nb2RlID0gdGhpcy5pbnNlcnRpb25Nb2RlO1xuICAgICAgICB0aGlzLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLlRFWFQ7XG4gICAgfVxuICAgIHN3aXRjaFRvUGxhaW50ZXh0UGFyc2luZygpIHtcbiAgICAgICAgdGhpcy5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5URVhUO1xuICAgICAgICB0aGlzLm9yaWdpbmFsSW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuSU5fQk9EWTtcbiAgICAgICAgdGhpcy50b2tlbml6ZXIuc3RhdGUgPSBUb2tlbml6ZXJNb2RlLlBMQUlOVEVYVDtcbiAgICB9XG4gICAgLy9GcmFnbWVudCBwYXJzaW5nXG4gICAgLyoqIEBwcm90ZWN0ZWQgKi9cbiAgICBfZ2V0QWRqdXN0ZWRDdXJyZW50RWxlbWVudCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMub3BlbkVsZW1lbnRzLnN0YWNrVG9wID09PSAwICYmIHRoaXMuZnJhZ21lbnRDb250ZXh0XG4gICAgICAgICAgICA/IHRoaXMuZnJhZ21lbnRDb250ZXh0XG4gICAgICAgICAgICA6IHRoaXMub3BlbkVsZW1lbnRzLmN1cnJlbnQ7XG4gICAgfVxuICAgIC8qKiBAcHJvdGVjdGVkICovXG4gICAgX2ZpbmRGb3JtSW5GcmFnbWVudENvbnRleHQoKSB7XG4gICAgICAgIGxldCBub2RlID0gdGhpcy5mcmFnbWVudENvbnRleHQ7XG4gICAgICAgIHdoaWxlIChub2RlKSB7XG4gICAgICAgICAgICBpZiAodGhpcy50cmVlQWRhcHRlci5nZXRUYWdOYW1lKG5vZGUpID09PSBUTi5GT1JNKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5mb3JtRWxlbWVudCA9IG5vZGU7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBub2RlID0gdGhpcy50cmVlQWRhcHRlci5nZXRQYXJlbnROb2RlKG5vZGUpO1xuICAgICAgICB9XG4gICAgfVxuICAgIF9pbml0VG9rZW5pemVyRm9yRnJhZ21lbnRQYXJzaW5nKCkge1xuICAgICAgICBpZiAoIXRoaXMuZnJhZ21lbnRDb250ZXh0IHx8IHRoaXMudHJlZUFkYXB0ZXIuZ2V0TmFtZXNwYWNlVVJJKHRoaXMuZnJhZ21lbnRDb250ZXh0KSAhPT0gTlMuSFRNTCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHN3aXRjaCAodGhpcy5mcmFnbWVudENvbnRleHRJRCkge1xuICAgICAgICAgICAgY2FzZSAkLlRJVExFOlxuICAgICAgICAgICAgY2FzZSAkLlRFWFRBUkVBOiB7XG4gICAgICAgICAgICAgICAgdGhpcy50b2tlbml6ZXIuc3RhdGUgPSBUb2tlbml6ZXJNb2RlLlJDREFUQTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5TVFlMRTpcbiAgICAgICAgICAgIGNhc2UgJC5YTVA6XG4gICAgICAgICAgICBjYXNlICQuSUZSQU1FOlxuICAgICAgICAgICAgY2FzZSAkLk5PRU1CRUQ6XG4gICAgICAgICAgICBjYXNlICQuTk9GUkFNRVM6XG4gICAgICAgICAgICBjYXNlICQuTk9TQ1JJUFQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLnRva2VuaXplci5zdGF0ZSA9IFRva2VuaXplck1vZGUuUkFXVEVYVDtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5TQ1JJUFQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLnRva2VuaXplci5zdGF0ZSA9IFRva2VuaXplck1vZGUuU0NSSVBUX0RBVEE7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuUExBSU5URVhUOiB7XG4gICAgICAgICAgICAgICAgdGhpcy50b2tlbml6ZXIuc3RhdGUgPSBUb2tlbml6ZXJNb2RlLlBMQUlOVEVYVDtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAvLyBEbyBub3RoaW5nXG4gICAgICAgIH1cbiAgICB9XG4gICAgLy9UcmVlIG11dGF0aW9uXG4gICAgLyoqIEBwcm90ZWN0ZWQgKi9cbiAgICBfc2V0RG9jdW1lbnRUeXBlKHRva2VuKSB7XG4gICAgICAgIGNvbnN0IG5hbWUgPSB0b2tlbi5uYW1lIHx8ICcnO1xuICAgICAgICBjb25zdCBwdWJsaWNJZCA9IHRva2VuLnB1YmxpY0lkIHx8ICcnO1xuICAgICAgICBjb25zdCBzeXN0ZW1JZCA9IHRva2VuLnN5c3RlbUlkIHx8ICcnO1xuICAgICAgICB0aGlzLnRyZWVBZGFwdGVyLnNldERvY3VtZW50VHlwZSh0aGlzLmRvY3VtZW50LCBuYW1lLCBwdWJsaWNJZCwgc3lzdGVtSWQpO1xuICAgICAgICBpZiAodG9rZW4ubG9jYXRpb24pIHtcbiAgICAgICAgICAgIGNvbnN0IGRvY3VtZW50Q2hpbGRyZW4gPSB0aGlzLnRyZWVBZGFwdGVyLmdldENoaWxkTm9kZXModGhpcy5kb2N1bWVudCk7XG4gICAgICAgICAgICBjb25zdCBkb2NUeXBlTm9kZSA9IGRvY3VtZW50Q2hpbGRyZW4uZmluZCgobm9kZSkgPT4gdGhpcy50cmVlQWRhcHRlci5pc0RvY3VtZW50VHlwZU5vZGUobm9kZSkpO1xuICAgICAgICAgICAgaWYgKGRvY1R5cGVOb2RlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy50cmVlQWRhcHRlci5zZXROb2RlU291cmNlQ29kZUxvY2F0aW9uKGRvY1R5cGVOb2RlLCB0b2tlbi5sb2NhdGlvbik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqIEBwcm90ZWN0ZWQgKi9cbiAgICBfYXR0YWNoRWxlbWVudFRvVHJlZShlbGVtZW50LCBsb2NhdGlvbikge1xuICAgICAgICBpZiAodGhpcy5vcHRpb25zLnNvdXJjZUNvZGVMb2NhdGlvbkluZm8pIHtcbiAgICAgICAgICAgIGNvbnN0IGxvYyA9IGxvY2F0aW9uICYmIHtcbiAgICAgICAgICAgICAgICAuLi5sb2NhdGlvbixcbiAgICAgICAgICAgICAgICBzdGFydFRhZzogbG9jYXRpb24sXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgdGhpcy50cmVlQWRhcHRlci5zZXROb2RlU291cmNlQ29kZUxvY2F0aW9uKGVsZW1lbnQsIGxvYyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuX3Nob3VsZEZvc3RlclBhcmVudE9uSW5zZXJ0aW9uKCkpIHtcbiAgICAgICAgICAgIHRoaXMuX2Zvc3RlclBhcmVudEVsZW1lbnQoZWxlbWVudCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBwYXJlbnQgPSB0aGlzLm9wZW5FbGVtZW50cy5jdXJyZW50VG1wbENvbnRlbnRPck5vZGU7XG4gICAgICAgICAgICB0aGlzLnRyZWVBZGFwdGVyLmFwcGVuZENoaWxkKHBhcmVudCwgZWxlbWVudCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAgICogRm9yIHNlbGYtY2xvc2luZyB0YWdzLiBBZGQgYW4gZWxlbWVudCB0byB0aGUgdHJlZSwgYnV0IHNraXAgYWRkaW5nIGl0XG4gICAgICogdG8gdGhlIHN0YWNrLlxuICAgICAqL1xuICAgIC8qKiBAcHJvdGVjdGVkICovXG4gICAgX2FwcGVuZEVsZW1lbnQodG9rZW4sIG5hbWVzcGFjZVVSSSkge1xuICAgICAgICBjb25zdCBlbGVtZW50ID0gdGhpcy50cmVlQWRhcHRlci5jcmVhdGVFbGVtZW50KHRva2VuLnRhZ05hbWUsIG5hbWVzcGFjZVVSSSwgdG9rZW4uYXR0cnMpO1xuICAgICAgICB0aGlzLl9hdHRhY2hFbGVtZW50VG9UcmVlKGVsZW1lbnQsIHRva2VuLmxvY2F0aW9uKTtcbiAgICB9XG4gICAgLyoqIEBwcm90ZWN0ZWQgKi9cbiAgICBfaW5zZXJ0RWxlbWVudCh0b2tlbiwgbmFtZXNwYWNlVVJJKSB7XG4gICAgICAgIGNvbnN0IGVsZW1lbnQgPSB0aGlzLnRyZWVBZGFwdGVyLmNyZWF0ZUVsZW1lbnQodG9rZW4udGFnTmFtZSwgbmFtZXNwYWNlVVJJLCB0b2tlbi5hdHRycyk7XG4gICAgICAgIHRoaXMuX2F0dGFjaEVsZW1lbnRUb1RyZWUoZWxlbWVudCwgdG9rZW4ubG9jYXRpb24pO1xuICAgICAgICB0aGlzLm9wZW5FbGVtZW50cy5wdXNoKGVsZW1lbnQsIHRva2VuLnRhZ0lEKTtcbiAgICB9XG4gICAgLyoqIEBwcm90ZWN0ZWQgKi9cbiAgICBfaW5zZXJ0RmFrZUVsZW1lbnQodGFnTmFtZSwgdGFnSUQpIHtcbiAgICAgICAgY29uc3QgZWxlbWVudCA9IHRoaXMudHJlZUFkYXB0ZXIuY3JlYXRlRWxlbWVudCh0YWdOYW1lLCBOUy5IVE1MLCBbXSk7XG4gICAgICAgIHRoaXMuX2F0dGFjaEVsZW1lbnRUb1RyZWUoZWxlbWVudCwgbnVsbCk7XG4gICAgICAgIHRoaXMub3BlbkVsZW1lbnRzLnB1c2goZWxlbWVudCwgdGFnSUQpO1xuICAgIH1cbiAgICAvKiogQHByb3RlY3RlZCAqL1xuICAgIF9pbnNlcnRUZW1wbGF0ZSh0b2tlbikge1xuICAgICAgICBjb25zdCB0bXBsID0gdGhpcy50cmVlQWRhcHRlci5jcmVhdGVFbGVtZW50KHRva2VuLnRhZ05hbWUsIE5TLkhUTUwsIHRva2VuLmF0dHJzKTtcbiAgICAgICAgY29uc3QgY29udGVudCA9IHRoaXMudHJlZUFkYXB0ZXIuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpO1xuICAgICAgICB0aGlzLnRyZWVBZGFwdGVyLnNldFRlbXBsYXRlQ29udGVudCh0bXBsLCBjb250ZW50KTtcbiAgICAgICAgdGhpcy5fYXR0YWNoRWxlbWVudFRvVHJlZSh0bXBsLCB0b2tlbi5sb2NhdGlvbik7XG4gICAgICAgIHRoaXMub3BlbkVsZW1lbnRzLnB1c2godG1wbCwgdG9rZW4udGFnSUQpO1xuICAgICAgICBpZiAodGhpcy5vcHRpb25zLnNvdXJjZUNvZGVMb2NhdGlvbkluZm8pXG4gICAgICAgICAgICB0aGlzLnRyZWVBZGFwdGVyLnNldE5vZGVTb3VyY2VDb2RlTG9jYXRpb24oY29udGVudCwgbnVsbCk7XG4gICAgfVxuICAgIC8qKiBAcHJvdGVjdGVkICovXG4gICAgX2luc2VydEZha2VSb290RWxlbWVudCgpIHtcbiAgICAgICAgY29uc3QgZWxlbWVudCA9IHRoaXMudHJlZUFkYXB0ZXIuY3JlYXRlRWxlbWVudChUTi5IVE1MLCBOUy5IVE1MLCBbXSk7XG4gICAgICAgIGlmICh0aGlzLm9wdGlvbnMuc291cmNlQ29kZUxvY2F0aW9uSW5mbylcbiAgICAgICAgICAgIHRoaXMudHJlZUFkYXB0ZXIuc2V0Tm9kZVNvdXJjZUNvZGVMb2NhdGlvbihlbGVtZW50LCBudWxsKTtcbiAgICAgICAgdGhpcy50cmVlQWRhcHRlci5hcHBlbmRDaGlsZCh0aGlzLm9wZW5FbGVtZW50cy5jdXJyZW50LCBlbGVtZW50KTtcbiAgICAgICAgdGhpcy5vcGVuRWxlbWVudHMucHVzaChlbGVtZW50LCAkLkhUTUwpO1xuICAgIH1cbiAgICAvKiogQHByb3RlY3RlZCAqL1xuICAgIF9hcHBlbmRDb21tZW50Tm9kZSh0b2tlbiwgcGFyZW50KSB7XG4gICAgICAgIGNvbnN0IGNvbW1lbnROb2RlID0gdGhpcy50cmVlQWRhcHRlci5jcmVhdGVDb21tZW50Tm9kZSh0b2tlbi5kYXRhKTtcbiAgICAgICAgdGhpcy50cmVlQWRhcHRlci5hcHBlbmRDaGlsZChwYXJlbnQsIGNvbW1lbnROb2RlKTtcbiAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5zb3VyY2VDb2RlTG9jYXRpb25JbmZvKSB7XG4gICAgICAgICAgICB0aGlzLnRyZWVBZGFwdGVyLnNldE5vZGVTb3VyY2VDb2RlTG9jYXRpb24oY29tbWVudE5vZGUsIHRva2VuLmxvY2F0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKiogQHByb3RlY3RlZCAqL1xuICAgIF9pbnNlcnRDaGFyYWN0ZXJzKHRva2VuKSB7XG4gICAgICAgIGxldCBwYXJlbnQ7XG4gICAgICAgIGxldCBiZWZvcmVFbGVtZW50O1xuICAgICAgICBpZiAodGhpcy5fc2hvdWxkRm9zdGVyUGFyZW50T25JbnNlcnRpb24oKSkge1xuICAgICAgICAgICAgKHsgcGFyZW50LCBiZWZvcmVFbGVtZW50IH0gPSB0aGlzLl9maW5kRm9zdGVyUGFyZW50aW5nTG9jYXRpb24oKSk7XG4gICAgICAgICAgICBpZiAoYmVmb3JlRWxlbWVudCkge1xuICAgICAgICAgICAgICAgIHRoaXMudHJlZUFkYXB0ZXIuaW5zZXJ0VGV4dEJlZm9yZShwYXJlbnQsIHRva2VuLmNoYXJzLCBiZWZvcmVFbGVtZW50KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMudHJlZUFkYXB0ZXIuaW5zZXJ0VGV4dChwYXJlbnQsIHRva2VuLmNoYXJzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHBhcmVudCA9IHRoaXMub3BlbkVsZW1lbnRzLmN1cnJlbnRUbXBsQ29udGVudE9yTm9kZTtcbiAgICAgICAgICAgIHRoaXMudHJlZUFkYXB0ZXIuaW5zZXJ0VGV4dChwYXJlbnQsIHRva2VuLmNoYXJzKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXRva2VuLmxvY2F0aW9uKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBjb25zdCBzaWJsaW5ncyA9IHRoaXMudHJlZUFkYXB0ZXIuZ2V0Q2hpbGROb2RlcyhwYXJlbnQpO1xuICAgICAgICBjb25zdCB0ZXh0Tm9kZUlkeCA9IGJlZm9yZUVsZW1lbnQgPyBzaWJsaW5ncy5sYXN0SW5kZXhPZihiZWZvcmVFbGVtZW50KSA6IHNpYmxpbmdzLmxlbmd0aDtcbiAgICAgICAgY29uc3QgdGV4dE5vZGUgPSBzaWJsaW5nc1t0ZXh0Tm9kZUlkeCAtIDFdO1xuICAgICAgICAvL05PVEU6IGlmIHdlIGhhdmUgYSBsb2NhdGlvbiBhc3NpZ25lZCBieSBhbm90aGVyIHRva2VuLCB0aGVuIGp1c3QgdXBkYXRlIHRoZSBlbmQgcG9zaXRpb25cbiAgICAgICAgY29uc3QgdG5Mb2MgPSB0aGlzLnRyZWVBZGFwdGVyLmdldE5vZGVTb3VyY2VDb2RlTG9jYXRpb24odGV4dE5vZGUpO1xuICAgICAgICBpZiAodG5Mb2MpIHtcbiAgICAgICAgICAgIGNvbnN0IHsgZW5kTGluZSwgZW5kQ29sLCBlbmRPZmZzZXQgfSA9IHRva2VuLmxvY2F0aW9uO1xuICAgICAgICAgICAgdGhpcy50cmVlQWRhcHRlci51cGRhdGVOb2RlU291cmNlQ29kZUxvY2F0aW9uKHRleHROb2RlLCB7IGVuZExpbmUsIGVuZENvbCwgZW5kT2Zmc2V0IH0pO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKHRoaXMub3B0aW9ucy5zb3VyY2VDb2RlTG9jYXRpb25JbmZvKSB7XG4gICAgICAgICAgICB0aGlzLnRyZWVBZGFwdGVyLnNldE5vZGVTb3VyY2VDb2RlTG9jYXRpb24odGV4dE5vZGUsIHRva2VuLmxvY2F0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKiogQHByb3RlY3RlZCAqL1xuICAgIF9hZG9wdE5vZGVzKGRvbm9yLCByZWNpcGllbnQpIHtcbiAgICAgICAgZm9yIChsZXQgY2hpbGQgPSB0aGlzLnRyZWVBZGFwdGVyLmdldEZpcnN0Q2hpbGQoZG9ub3IpOyBjaGlsZDsgY2hpbGQgPSB0aGlzLnRyZWVBZGFwdGVyLmdldEZpcnN0Q2hpbGQoZG9ub3IpKSB7XG4gICAgICAgICAgICB0aGlzLnRyZWVBZGFwdGVyLmRldGFjaE5vZGUoY2hpbGQpO1xuICAgICAgICAgICAgdGhpcy50cmVlQWRhcHRlci5hcHBlbmRDaGlsZChyZWNpcGllbnQsIGNoaWxkKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKiogQHByb3RlY3RlZCAqL1xuICAgIF9zZXRFbmRMb2NhdGlvbihlbGVtZW50LCBjbG9zaW5nVG9rZW4pIHtcbiAgICAgICAgaWYgKHRoaXMudHJlZUFkYXB0ZXIuZ2V0Tm9kZVNvdXJjZUNvZGVMb2NhdGlvbihlbGVtZW50KSAmJiBjbG9zaW5nVG9rZW4ubG9jYXRpb24pIHtcbiAgICAgICAgICAgIGNvbnN0IGN0TG9jID0gY2xvc2luZ1Rva2VuLmxvY2F0aW9uO1xuICAgICAgICAgICAgY29uc3QgdG4gPSB0aGlzLnRyZWVBZGFwdGVyLmdldFRhZ05hbWUoZWxlbWVudCk7XG4gICAgICAgICAgICBjb25zdCBlbmRMb2MgPSBcbiAgICAgICAgICAgIC8vIE5PVEU6IEZvciBjYXNlcyBsaWtlIDxwPiA8cD4gPC9wPiAtIEZpcnN0ICdwJyBjbG9zZXMgd2l0aG91dCBhIGNsb3NpbmdcbiAgICAgICAgICAgIC8vIHRhZyBhbmQgZm9yIGNhc2VzIGxpa2UgPHRkPiA8cD4gPC90ZD4gLSAncCcgY2xvc2VzIHdpdGhvdXQgYSBjbG9zaW5nIHRhZy5cbiAgICAgICAgICAgIGNsb3NpbmdUb2tlbi50eXBlID09PSBUb2tlblR5cGUuRU5EX1RBRyAmJiB0biA9PT0gY2xvc2luZ1Rva2VuLnRhZ05hbWVcbiAgICAgICAgICAgICAgICA/IHtcbiAgICAgICAgICAgICAgICAgICAgZW5kVGFnOiB7IC4uLmN0TG9jIH0sXG4gICAgICAgICAgICAgICAgICAgIGVuZExpbmU6IGN0TG9jLmVuZExpbmUsXG4gICAgICAgICAgICAgICAgICAgIGVuZENvbDogY3RMb2MuZW5kQ29sLFxuICAgICAgICAgICAgICAgICAgICBlbmRPZmZzZXQ6IGN0TG9jLmVuZE9mZnNldCxcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgOiB7XG4gICAgICAgICAgICAgICAgICAgIGVuZExpbmU6IGN0TG9jLnN0YXJ0TGluZSxcbiAgICAgICAgICAgICAgICAgICAgZW5kQ29sOiBjdExvYy5zdGFydENvbCxcbiAgICAgICAgICAgICAgICAgICAgZW5kT2Zmc2V0OiBjdExvYy5zdGFydE9mZnNldCxcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgdGhpcy50cmVlQWRhcHRlci51cGRhdGVOb2RlU291cmNlQ29kZUxvY2F0aW9uKGVsZW1lbnQsIGVuZExvYyk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy9Ub2tlbiBwcm9jZXNzaW5nXG4gICAgc2hvdWxkUHJvY2Vzc1N0YXJ0VGFnVG9rZW5JbkZvcmVpZ25Db250ZW50KHRva2VuKSB7XG4gICAgICAgIC8vIENoZWNrIHRoYXQgbmVpdGhlciBjdXJyZW50ID09PSBkb2N1bWVudCwgb3IgbnMgPT09IE5TLkhUTUxcbiAgICAgICAgaWYgKCF0aGlzLmN1cnJlbnROb3RJbkhUTUwpXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIGxldCBjdXJyZW50O1xuICAgICAgICBsZXQgY3VycmVudFRhZ0lkO1xuICAgICAgICBpZiAodGhpcy5vcGVuRWxlbWVudHMuc3RhY2tUb3AgPT09IDAgJiYgdGhpcy5mcmFnbWVudENvbnRleHQpIHtcbiAgICAgICAgICAgIGN1cnJlbnQgPSB0aGlzLmZyYWdtZW50Q29udGV4dDtcbiAgICAgICAgICAgIGN1cnJlbnRUYWdJZCA9IHRoaXMuZnJhZ21lbnRDb250ZXh0SUQ7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAoeyBjdXJyZW50LCBjdXJyZW50VGFnSWQgfSA9IHRoaXMub3BlbkVsZW1lbnRzKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodG9rZW4udGFnSUQgPT09ICQuU1ZHICYmXG4gICAgICAgICAgICB0aGlzLnRyZWVBZGFwdGVyLmdldFRhZ05hbWUoY3VycmVudCkgPT09IFROLkFOTk9UQVRJT05fWE1MICYmXG4gICAgICAgICAgICB0aGlzLnRyZWVBZGFwdGVyLmdldE5hbWVzcGFjZVVSSShjdXJyZW50KSA9PT0gTlMuTUFUSE1MKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgLy8gQ2hlY2sgdGhhdCBgY3VycmVudGAgaXMgbm90IGFuIGludGVncmF0aW9uIHBvaW50IGZvciBIVE1MIG9yIE1hdGhNTCBlbGVtZW50cy5cbiAgICAgICAgdGhpcy50b2tlbml6ZXIuaW5Gb3JlaWduTm9kZSB8fFxuICAgICAgICAgICAgLy8gSWYgaXQgX2lzXyBhbiBpbnRlZ3JhdGlvbiBwb2ludCwgdGhlbiB3ZSBtaWdodCBoYXZlIHRvIGNoZWNrIHRoYXQgaXQgaXMgbm90IGFuIEhUTUxcbiAgICAgICAgICAgIC8vIGludGVncmF0aW9uIHBvaW50LlxuICAgICAgICAgICAgKCh0b2tlbi50YWdJRCA9PT0gJC5NR0xZUEggfHwgdG9rZW4udGFnSUQgPT09ICQuTUFMSUdOTUFSSykgJiZcbiAgICAgICAgICAgICAgICAhdGhpcy5faXNJbnRlZ3JhdGlvblBvaW50KGN1cnJlbnRUYWdJZCwgY3VycmVudCwgTlMuSFRNTCkpKTtcbiAgICB9XG4gICAgLyoqIEBwcm90ZWN0ZWQgKi9cbiAgICBfcHJvY2Vzc1Rva2VuKHRva2VuKSB7XG4gICAgICAgIHN3aXRjaCAodG9rZW4udHlwZSkge1xuICAgICAgICAgICAgY2FzZSBUb2tlblR5cGUuQ0hBUkFDVEVSOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5vbkNoYXJhY3Rlcih0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFRva2VuVHlwZS5OVUxMX0NIQVJBQ1RFUjoge1xuICAgICAgICAgICAgICAgIHRoaXMub25OdWxsQ2hhcmFjdGVyKHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgVG9rZW5UeXBlLkNPTU1FTlQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLm9uQ29tbWVudCh0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFRva2VuVHlwZS5ET0NUWVBFOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5vbkRvY3R5cGUodG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBUb2tlblR5cGUuU1RBUlRfVEFHOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fcHJvY2Vzc1N0YXJ0VGFnKHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgVG9rZW5UeXBlLkVORF9UQUc6IHtcbiAgICAgICAgICAgICAgICB0aGlzLm9uRW5kVGFnKHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgVG9rZW5UeXBlLkVPRjoge1xuICAgICAgICAgICAgICAgIHRoaXMub25Fb2YodG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBUb2tlblR5cGUuV0hJVEVTUEFDRV9DSEFSQUNURVI6IHtcbiAgICAgICAgICAgICAgICB0aGlzLm9uV2hpdGVzcGFjZUNoYXJhY3Rlcih0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy9JbnRlZ3JhdGlvbiBwb2ludHNcbiAgICAvKiogQHByb3RlY3RlZCAqL1xuICAgIF9pc0ludGVncmF0aW9uUG9pbnQodGlkLCBlbGVtZW50LCBmb3JlaWduTlMpIHtcbiAgICAgICAgY29uc3QgbnMgPSB0aGlzLnRyZWVBZGFwdGVyLmdldE5hbWVzcGFjZVVSSShlbGVtZW50KTtcbiAgICAgICAgY29uc3QgYXR0cnMgPSB0aGlzLnRyZWVBZGFwdGVyLmdldEF0dHJMaXN0KGVsZW1lbnQpO1xuICAgICAgICByZXR1cm4gZm9yZWlnbkNvbnRlbnQuaXNJbnRlZ3JhdGlvblBvaW50KHRpZCwgbnMsIGF0dHJzLCBmb3JlaWduTlMpO1xuICAgIH1cbiAgICAvL0FjdGl2ZSBmb3JtYXR0aW5nIGVsZW1lbnRzIHJlY29uc3RydWN0aW9uXG4gICAgLyoqIEBwcm90ZWN0ZWQgKi9cbiAgICBfcmVjb25zdHJ1Y3RBY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMoKSB7XG4gICAgICAgIGNvbnN0IGxpc3RMZW5ndGggPSB0aGlzLmFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cy5lbnRyaWVzLmxlbmd0aDtcbiAgICAgICAgaWYgKGxpc3RMZW5ndGgpIHtcbiAgICAgICAgICAgIGNvbnN0IGVuZEluZGV4ID0gdGhpcy5hY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMuZW50cmllcy5maW5kSW5kZXgoKGVudHJ5KSA9PiBlbnRyeS50eXBlID09PSBFbnRyeVR5cGUuTWFya2VyIHx8IHRoaXMub3BlbkVsZW1lbnRzLmNvbnRhaW5zKGVudHJ5LmVsZW1lbnQpKTtcbiAgICAgICAgICAgIGNvbnN0IHVub3BlbklkeCA9IGVuZEluZGV4IDwgMCA/IGxpc3RMZW5ndGggLSAxIDogZW5kSW5kZXggLSAxO1xuICAgICAgICAgICAgZm9yIChsZXQgaSA9IHVub3BlbklkeDsgaSA+PSAwOyBpLS0pIHtcbiAgICAgICAgICAgICAgICBjb25zdCBlbnRyeSA9IHRoaXMuYWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzLmVudHJpZXNbaV07XG4gICAgICAgICAgICAgICAgdGhpcy5faW5zZXJ0RWxlbWVudChlbnRyeS50b2tlbiwgdGhpcy50cmVlQWRhcHRlci5nZXROYW1lc3BhY2VVUkkoZW50cnkuZWxlbWVudCkpO1xuICAgICAgICAgICAgICAgIGVudHJ5LmVsZW1lbnQgPSB0aGlzLm9wZW5FbGVtZW50cy5jdXJyZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vQ2xvc2UgZWxlbWVudHNcbiAgICAvKiogQHByb3RlY3RlZCAqL1xuICAgIF9jbG9zZVRhYmxlQ2VsbCgpIHtcbiAgICAgICAgdGhpcy5vcGVuRWxlbWVudHMuZ2VuZXJhdGVJbXBsaWVkRW5kVGFncygpO1xuICAgICAgICB0aGlzLm9wZW5FbGVtZW50cy5wb3BVbnRpbFRhYmxlQ2VsbFBvcHBlZCgpO1xuICAgICAgICB0aGlzLmFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cy5jbGVhclRvTGFzdE1hcmtlcigpO1xuICAgICAgICB0aGlzLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLklOX1JPVztcbiAgICB9XG4gICAgLyoqIEBwcm90ZWN0ZWQgKi9cbiAgICBfY2xvc2VQRWxlbWVudCgpIHtcbiAgICAgICAgdGhpcy5vcGVuRWxlbWVudHMuZ2VuZXJhdGVJbXBsaWVkRW5kVGFnc1dpdGhFeGNsdXNpb24oJC5QKTtcbiAgICAgICAgdGhpcy5vcGVuRWxlbWVudHMucG9wVW50aWxUYWdOYW1lUG9wcGVkKCQuUCk7XG4gICAgfVxuICAgIC8vSW5zZXJ0aW9uIG1vZGVzXG4gICAgLyoqIEBwcm90ZWN0ZWQgKi9cbiAgICBfcmVzZXRJbnNlcnRpb25Nb2RlKCkge1xuICAgICAgICBmb3IgKGxldCBpID0gdGhpcy5vcGVuRWxlbWVudHMuc3RhY2tUb3A7IGkgPj0gMDsgaS0tKSB7XG4gICAgICAgICAgICAvL0luc2VydGlvbiBtb2RlIHJlc2V0IG1hcFxuICAgICAgICAgICAgc3dpdGNoIChpID09PSAwICYmIHRoaXMuZnJhZ21lbnRDb250ZXh0ID8gdGhpcy5mcmFnbWVudENvbnRleHRJRCA6IHRoaXMub3BlbkVsZW1lbnRzLnRhZ0lEc1tpXSkge1xuICAgICAgICAgICAgICAgIGNhc2UgJC5UUjoge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLklOX1JPVztcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjYXNlICQuVEJPRFk6XG4gICAgICAgICAgICAgICAgY2FzZSAkLlRIRUFEOlxuICAgICAgICAgICAgICAgIGNhc2UgJC5URk9PVDoge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLklOX1RBQkxFX0JPRFk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2FzZSAkLkNBUFRJT046IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9DQVBUSU9OO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNhc2UgJC5DT0xHUk9VUDoge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLklOX0NPTFVNTl9HUk9VUDtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjYXNlICQuVEFCTEU6IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9UQUJMRTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjYXNlICQuQk9EWToge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLklOX0JPRFk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2FzZSAkLkZSQU1FU0VUOiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuSU5fRlJBTUVTRVQ7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2FzZSAkLlNFTEVDVDoge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9yZXNldEluc2VydGlvbk1vZGVGb3JTZWxlY3QoaSk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2FzZSAkLlRFTVBMQVRFOiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5zZXJ0aW9uTW9kZSA9IHRoaXMudG1wbEluc2VydGlvbk1vZGVTdGFja1swXTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjYXNlICQuSFRNTDoge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmluc2VydGlvbk1vZGUgPSB0aGlzLmhlYWRFbGVtZW50ID8gSW5zZXJ0aW9uTW9kZS5BRlRFUl9IRUFEIDogSW5zZXJ0aW9uTW9kZS5CRUZPUkVfSEVBRDtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjYXNlICQuVEQ6XG4gICAgICAgICAgICAgICAgY2FzZSAkLlRIOiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChpID4gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9DRUxMO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjYXNlICQuSEVBRDoge1xuICAgICAgICAgICAgICAgICAgICBpZiAoaSA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuSU5fSEVBRDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9CT0RZO1xuICAgIH1cbiAgICAvKiogQHByb3RlY3RlZCAqL1xuICAgIF9yZXNldEluc2VydGlvbk1vZGVGb3JTZWxlY3Qoc2VsZWN0SWR4KSB7XG4gICAgICAgIGlmIChzZWxlY3RJZHggPiAwKSB7XG4gICAgICAgICAgICBmb3IgKGxldCBpID0gc2VsZWN0SWR4IC0gMTsgaSA+IDA7IGktLSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHRuID0gdGhpcy5vcGVuRWxlbWVudHMudGFnSURzW2ldO1xuICAgICAgICAgICAgICAgIGlmICh0biA9PT0gJC5URU1QTEFURSkge1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAodG4gPT09ICQuVEFCTEUpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9TRUxFQ1RfSU5fVEFCTEU7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9TRUxFQ1Q7XG4gICAgfVxuICAgIC8vRm9zdGVyIHBhcmVudGluZ1xuICAgIC8qKiBAcHJvdGVjdGVkICovXG4gICAgX2lzRWxlbWVudENhdXNlc0Zvc3RlclBhcmVudGluZyh0bikge1xuICAgICAgICByZXR1cm4gVEFCTEVfU1RSVUNUVVJFX1RBR1MuaGFzKHRuKTtcbiAgICB9XG4gICAgLyoqIEBwcm90ZWN0ZWQgKi9cbiAgICBfc2hvdWxkRm9zdGVyUGFyZW50T25JbnNlcnRpb24oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmZvc3RlclBhcmVudGluZ0VuYWJsZWQgJiYgdGhpcy5faXNFbGVtZW50Q2F1c2VzRm9zdGVyUGFyZW50aW5nKHRoaXMub3BlbkVsZW1lbnRzLmN1cnJlbnRUYWdJZCk7XG4gICAgfVxuICAgIC8qKiBAcHJvdGVjdGVkICovXG4gICAgX2ZpbmRGb3N0ZXJQYXJlbnRpbmdMb2NhdGlvbigpIHtcbiAgICAgICAgZm9yIChsZXQgaSA9IHRoaXMub3BlbkVsZW1lbnRzLnN0YWNrVG9wOyBpID49IDA7IGktLSkge1xuICAgICAgICAgICAgY29uc3Qgb3BlbkVsZW1lbnQgPSB0aGlzLm9wZW5FbGVtZW50cy5pdGVtc1tpXTtcbiAgICAgICAgICAgIHN3aXRjaCAodGhpcy5vcGVuRWxlbWVudHMudGFnSURzW2ldKSB7XG4gICAgICAgICAgICAgICAgY2FzZSAkLlRFTVBMQVRFOiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLnRyZWVBZGFwdGVyLmdldE5hbWVzcGFjZVVSSShvcGVuRWxlbWVudCkgPT09IE5TLkhUTUwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7IHBhcmVudDogdGhpcy50cmVlQWRhcHRlci5nZXRUZW1wbGF0ZUNvbnRlbnQob3BlbkVsZW1lbnQpLCBiZWZvcmVFbGVtZW50OiBudWxsIH07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNhc2UgJC5UQUJMRToge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBwYXJlbnQgPSB0aGlzLnRyZWVBZGFwdGVyLmdldFBhcmVudE5vZGUob3BlbkVsZW1lbnQpO1xuICAgICAgICAgICAgICAgICAgICBpZiAocGFyZW50KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBwYXJlbnQsIGJlZm9yZUVsZW1lbnQ6IG9wZW5FbGVtZW50IH07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgcGFyZW50OiB0aGlzLm9wZW5FbGVtZW50cy5pdGVtc1tpIC0gMV0sIGJlZm9yZUVsZW1lbnQ6IG51bGwgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAvLyBEbyBub3RoaW5nXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHsgcGFyZW50OiB0aGlzLm9wZW5FbGVtZW50cy5pdGVtc1swXSwgYmVmb3JlRWxlbWVudDogbnVsbCB9O1xuICAgIH1cbiAgICAvKiogQHByb3RlY3RlZCAqL1xuICAgIF9mb3N0ZXJQYXJlbnRFbGVtZW50KGVsZW1lbnQpIHtcbiAgICAgICAgY29uc3QgbG9jYXRpb24gPSB0aGlzLl9maW5kRm9zdGVyUGFyZW50aW5nTG9jYXRpb24oKTtcbiAgICAgICAgaWYgKGxvY2F0aW9uLmJlZm9yZUVsZW1lbnQpIHtcbiAgICAgICAgICAgIHRoaXMudHJlZUFkYXB0ZXIuaW5zZXJ0QmVmb3JlKGxvY2F0aW9uLnBhcmVudCwgZWxlbWVudCwgbG9jYXRpb24uYmVmb3JlRWxlbWVudCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnRyZWVBZGFwdGVyLmFwcGVuZENoaWxkKGxvY2F0aW9uLnBhcmVudCwgZWxlbWVudCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy9TcGVjaWFsIGVsZW1lbnRzXG4gICAgLyoqIEBwcm90ZWN0ZWQgKi9cbiAgICBfaXNTcGVjaWFsRWxlbWVudChlbGVtZW50LCBpZCkge1xuICAgICAgICBjb25zdCBucyA9IHRoaXMudHJlZUFkYXB0ZXIuZ2V0TmFtZXNwYWNlVVJJKGVsZW1lbnQpO1xuICAgICAgICByZXR1cm4gU1BFQ0lBTF9FTEVNRU5UU1tuc10uaGFzKGlkKTtcbiAgICB9XG4gICAgLyoqIEBpbnRlcm5hbCAqL1xuICAgIG9uQ2hhcmFjdGVyKHRva2VuKSB7XG4gICAgICAgIHRoaXMuc2tpcE5leHROZXdMaW5lID0gZmFsc2U7XG4gICAgICAgIGlmICh0aGlzLnRva2VuaXplci5pbkZvcmVpZ25Ob2RlKSB7XG4gICAgICAgICAgICBjaGFyYWN0ZXJJbkZvcmVpZ25Db250ZW50KHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBzd2l0Y2ggKHRoaXMuaW5zZXJ0aW9uTW9kZSkge1xuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOSVRJQUw6IHtcbiAgICAgICAgICAgICAgICB0b2tlbkluSW5pdGlhbE1vZGUodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLkJFRk9SRV9IVE1MOiB7XG4gICAgICAgICAgICAgICAgdG9rZW5CZWZvcmVIdG1sKHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5CRUZPUkVfSEVBRDoge1xuICAgICAgICAgICAgICAgIHRva2VuQmVmb3JlSGVhZCh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fSEVBRDoge1xuICAgICAgICAgICAgICAgIHRva2VuSW5IZWFkKHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9IRUFEX05PX1NDUklQVDoge1xuICAgICAgICAgICAgICAgIHRva2VuSW5IZWFkTm9TY3JpcHQodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLkFGVEVSX0hFQUQ6IHtcbiAgICAgICAgICAgICAgICB0b2tlbkFmdGVySGVhZCh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fQk9EWTpcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9DQVBUSU9OOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX0NFTEw6XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fVEVNUExBVEU6IHtcbiAgICAgICAgICAgICAgICBjaGFyYWN0ZXJJbkJvZHkodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLlRFWFQ6XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fU0VMRUNUOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX1NFTEVDVF9JTl9UQUJMRToge1xuICAgICAgICAgICAgICAgIHRoaXMuX2luc2VydENoYXJhY3RlcnModG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX1RBQkxFOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX1RBQkxFX0JPRFk6XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fUk9XOiB7XG4gICAgICAgICAgICAgICAgY2hhcmFjdGVySW5UYWJsZSh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fVEFCTEVfVEVYVDoge1xuICAgICAgICAgICAgICAgIGNoYXJhY3RlckluVGFibGVUZXh0KHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9DT0xVTU5fR1JPVVA6IHtcbiAgICAgICAgICAgICAgICB0b2tlbkluQ29sdW1uR3JvdXAodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLkFGVEVSX0JPRFk6IHtcbiAgICAgICAgICAgICAgICB0b2tlbkFmdGVyQm9keSh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuQUZURVJfQUZURVJfQk9EWToge1xuICAgICAgICAgICAgICAgIHRva2VuQWZ0ZXJBZnRlckJvZHkodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIC8vIERvIG5vdGhpbmdcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKiogQGludGVybmFsICovXG4gICAgb25OdWxsQ2hhcmFjdGVyKHRva2VuKSB7XG4gICAgICAgIHRoaXMuc2tpcE5leHROZXdMaW5lID0gZmFsc2U7XG4gICAgICAgIGlmICh0aGlzLnRva2VuaXplci5pbkZvcmVpZ25Ob2RlKSB7XG4gICAgICAgICAgICBudWxsQ2hhcmFjdGVySW5Gb3JlaWduQ29udGVudCh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgc3dpdGNoICh0aGlzLmluc2VydGlvbk1vZGUpIHtcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTklUSUFMOiB7XG4gICAgICAgICAgICAgICAgdG9rZW5JbkluaXRpYWxNb2RlKHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5CRUZPUkVfSFRNTDoge1xuICAgICAgICAgICAgICAgIHRva2VuQmVmb3JlSHRtbCh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuQkVGT1JFX0hFQUQ6IHtcbiAgICAgICAgICAgICAgICB0b2tlbkJlZm9yZUhlYWQodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX0hFQUQ6IHtcbiAgICAgICAgICAgICAgICB0b2tlbkluSGVhZCh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fSEVBRF9OT19TQ1JJUFQ6IHtcbiAgICAgICAgICAgICAgICB0b2tlbkluSGVhZE5vU2NyaXB0KHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5BRlRFUl9IRUFEOiB7XG4gICAgICAgICAgICAgICAgdG9rZW5BZnRlckhlYWQodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLlRFWFQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9pbnNlcnRDaGFyYWN0ZXJzKHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9UQUJMRTpcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9UQUJMRV9CT0RZOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX1JPVzoge1xuICAgICAgICAgICAgICAgIGNoYXJhY3RlckluVGFibGUodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX0NPTFVNTl9HUk9VUDoge1xuICAgICAgICAgICAgICAgIHRva2VuSW5Db2x1bW5Hcm91cCh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuQUZURVJfQk9EWToge1xuICAgICAgICAgICAgICAgIHRva2VuQWZ0ZXJCb2R5KHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5BRlRFUl9BRlRFUl9CT0RZOiB7XG4gICAgICAgICAgICAgICAgdG9rZW5BZnRlckFmdGVyQm9keSh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgLy8gRG8gbm90aGluZ1xuICAgICAgICB9XG4gICAgfVxuICAgIC8qKiBAaW50ZXJuYWwgKi9cbiAgICBvbkNvbW1lbnQodG9rZW4pIHtcbiAgICAgICAgdGhpcy5za2lwTmV4dE5ld0xpbmUgPSBmYWxzZTtcbiAgICAgICAgaWYgKHRoaXMuY3VycmVudE5vdEluSFRNTCkge1xuICAgICAgICAgICAgYXBwZW5kQ29tbWVudCh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgc3dpdGNoICh0aGlzLmluc2VydGlvbk1vZGUpIHtcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTklUSUFMOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLkJFRk9SRV9IVE1MOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLkJFRk9SRV9IRUFEOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX0hFQUQ6XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fSEVBRF9OT19TQ1JJUFQ6XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuQUZURVJfSEVBRDpcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9CT0RZOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX1RBQkxFOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX0NBUFRJT046XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fQ09MVU1OX0dST1VQOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX1RBQkxFX0JPRFk6XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fUk9XOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX0NFTEw6XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fU0VMRUNUOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX1NFTEVDVF9JTl9UQUJMRTpcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9URU1QTEFURTpcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9GUkFNRVNFVDpcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5BRlRFUl9GUkFNRVNFVDoge1xuICAgICAgICAgICAgICAgIGFwcGVuZENvbW1lbnQodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX1RBQkxFX1RFWFQ6IHtcbiAgICAgICAgICAgICAgICB0b2tlbkluVGFibGVUZXh0KHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5BRlRFUl9CT0RZOiB7XG4gICAgICAgICAgICAgICAgYXBwZW5kQ29tbWVudFRvUm9vdEh0bWxFbGVtZW50KHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5BRlRFUl9BRlRFUl9CT0RZOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLkFGVEVSX0FGVEVSX0ZSQU1FU0VUOiB7XG4gICAgICAgICAgICAgICAgYXBwZW5kQ29tbWVudFRvRG9jdW1lbnQodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIC8vIERvIG5vdGhpbmdcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKiogQGludGVybmFsICovXG4gICAgb25Eb2N0eXBlKHRva2VuKSB7XG4gICAgICAgIHRoaXMuc2tpcE5leHROZXdMaW5lID0gZmFsc2U7XG4gICAgICAgIHN3aXRjaCAodGhpcy5pbnNlcnRpb25Nb2RlKSB7XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5JVElBTDoge1xuICAgICAgICAgICAgICAgIGRvY3R5cGVJbkluaXRpYWxNb2RlKHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5CRUZPUkVfSEVBRDpcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9IRUFEOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX0hFQURfTk9fU0NSSVBUOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLkFGVEVSX0hFQUQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIodG9rZW4sIEVSUi5taXNwbGFjZWREb2N0eXBlKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9UQUJMRV9URVhUOiB7XG4gICAgICAgICAgICAgICAgdG9rZW5JblRhYmxlVGV4dCh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgLy8gRG8gbm90aGluZ1xuICAgICAgICB9XG4gICAgfVxuICAgIC8qKiBAaW50ZXJuYWwgKi9cbiAgICBvblN0YXJ0VGFnKHRva2VuKSB7XG4gICAgICAgIHRoaXMuc2tpcE5leHROZXdMaW5lID0gZmFsc2U7XG4gICAgICAgIHRoaXMuY3VycmVudFRva2VuID0gdG9rZW47XG4gICAgICAgIHRoaXMuX3Byb2Nlc3NTdGFydFRhZyh0b2tlbik7XG4gICAgICAgIGlmICh0b2tlbi5zZWxmQ2xvc2luZyAmJiAhdG9rZW4uYWNrU2VsZkNsb3NpbmcpIHtcbiAgICAgICAgICAgIHRoaXMuX2Vycih0b2tlbiwgRVJSLm5vblZvaWRIdG1sRWxlbWVudFN0YXJ0VGFnV2l0aFRyYWlsaW5nU29saWR1cyk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAgICogUHJvY2Vzc2VzIGEgZ2l2ZW4gc3RhcnQgdGFnLlxuICAgICAqXG4gICAgICogYG9uU3RhcnRUYWdgIGNoZWNrcyBpZiBhIHNlbGYtY2xvc2luZyB0YWcgd2FzIHJlY29nbml6ZWQuIFdoZW4gYSB0b2tlblxuICAgICAqIGlzIG1vdmVkIGluYmV0d2VlbiBtdWx0aXBsZSBpbnNlcnRpb24gbW9kZXMsIHRoaXMgY2hlY2sgZm9yIHNlbGYtY2xvc2luZ1xuICAgICAqIGNvdWxkIGxlYWQgdG8gZmFsc2UgcG9zaXRpdmVzLiBUbyBhdm9pZCB0aGlzLCBgX3Byb2Nlc3NTdGFydFRhZ2AgaXMgdXNlZFxuICAgICAqIGZvciBuZXN0ZWQgY2FsbHMuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gdG9rZW4gVGhlIHRva2VuIHRvIHByb2Nlc3MuXG4gICAgICogQHByb3RlY3RlZFxuICAgICAqL1xuICAgIF9wcm9jZXNzU3RhcnRUYWcodG9rZW4pIHtcbiAgICAgICAgaWYgKHRoaXMuc2hvdWxkUHJvY2Vzc1N0YXJ0VGFnVG9rZW5JbkZvcmVpZ25Db250ZW50KHRva2VuKSkge1xuICAgICAgICAgICAgc3RhcnRUYWdJbkZvcmVpZ25Db250ZW50KHRoaXMsIHRva2VuKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX3N0YXJ0VGFnT3V0c2lkZUZvcmVpZ25Db250ZW50KHRva2VuKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKiogQHByb3RlY3RlZCAqL1xuICAgIF9zdGFydFRhZ091dHNpZGVGb3JlaWduQ29udGVudCh0b2tlbikge1xuICAgICAgICBzd2l0Y2ggKHRoaXMuaW5zZXJ0aW9uTW9kZSkge1xuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOSVRJQUw6IHtcbiAgICAgICAgICAgICAgICB0b2tlbkluSW5pdGlhbE1vZGUodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLkJFRk9SRV9IVE1MOiB7XG4gICAgICAgICAgICAgICAgc3RhcnRUYWdCZWZvcmVIdG1sKHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5CRUZPUkVfSEVBRDoge1xuICAgICAgICAgICAgICAgIHN0YXJ0VGFnQmVmb3JlSGVhZCh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fSEVBRDoge1xuICAgICAgICAgICAgICAgIHN0YXJ0VGFnSW5IZWFkKHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9IRUFEX05PX1NDUklQVDoge1xuICAgICAgICAgICAgICAgIHN0YXJ0VGFnSW5IZWFkTm9TY3JpcHQodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLkFGVEVSX0hFQUQ6IHtcbiAgICAgICAgICAgICAgICBzdGFydFRhZ0FmdGVySGVhZCh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fQk9EWToge1xuICAgICAgICAgICAgICAgIHN0YXJ0VGFnSW5Cb2R5KHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9UQUJMRToge1xuICAgICAgICAgICAgICAgIHN0YXJ0VGFnSW5UYWJsZSh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fVEFCTEVfVEVYVDoge1xuICAgICAgICAgICAgICAgIHRva2VuSW5UYWJsZVRleHQodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX0NBUFRJT046IHtcbiAgICAgICAgICAgICAgICBzdGFydFRhZ0luQ2FwdGlvbih0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fQ09MVU1OX0dST1VQOiB7XG4gICAgICAgICAgICAgICAgc3RhcnRUYWdJbkNvbHVtbkdyb3VwKHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9UQUJMRV9CT0RZOiB7XG4gICAgICAgICAgICAgICAgc3RhcnRUYWdJblRhYmxlQm9keSh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fUk9XOiB7XG4gICAgICAgICAgICAgICAgc3RhcnRUYWdJblJvdyh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fQ0VMTDoge1xuICAgICAgICAgICAgICAgIHN0YXJ0VGFnSW5DZWxsKHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9TRUxFQ1Q6IHtcbiAgICAgICAgICAgICAgICBzdGFydFRhZ0luU2VsZWN0KHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9TRUxFQ1RfSU5fVEFCTEU6IHtcbiAgICAgICAgICAgICAgICBzdGFydFRhZ0luU2VsZWN0SW5UYWJsZSh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fVEVNUExBVEU6IHtcbiAgICAgICAgICAgICAgICBzdGFydFRhZ0luVGVtcGxhdGUodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLkFGVEVSX0JPRFk6IHtcbiAgICAgICAgICAgICAgICBzdGFydFRhZ0FmdGVyQm9keSh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fRlJBTUVTRVQ6IHtcbiAgICAgICAgICAgICAgICBzdGFydFRhZ0luRnJhbWVzZXQodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLkFGVEVSX0ZSQU1FU0VUOiB7XG4gICAgICAgICAgICAgICAgc3RhcnRUYWdBZnRlckZyYW1lc2V0KHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5BRlRFUl9BRlRFUl9CT0RZOiB7XG4gICAgICAgICAgICAgICAgc3RhcnRUYWdBZnRlckFmdGVyQm9keSh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuQUZURVJfQUZURVJfRlJBTUVTRVQ6IHtcbiAgICAgICAgICAgICAgICBzdGFydFRhZ0FmdGVyQWZ0ZXJGcmFtZXNldCh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgLy8gRG8gbm90aGluZ1xuICAgICAgICB9XG4gICAgfVxuICAgIC8qKiBAaW50ZXJuYWwgKi9cbiAgICBvbkVuZFRhZyh0b2tlbikge1xuICAgICAgICB0aGlzLnNraXBOZXh0TmV3TGluZSA9IGZhbHNlO1xuICAgICAgICB0aGlzLmN1cnJlbnRUb2tlbiA9IHRva2VuO1xuICAgICAgICBpZiAodGhpcy5jdXJyZW50Tm90SW5IVE1MKSB7XG4gICAgICAgICAgICBlbmRUYWdJbkZvcmVpZ25Db250ZW50KHRoaXMsIHRva2VuKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX2VuZFRhZ091dHNpZGVGb3JlaWduQ29udGVudCh0b2tlbik7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqIEBwcm90ZWN0ZWQgKi9cbiAgICBfZW5kVGFnT3V0c2lkZUZvcmVpZ25Db250ZW50KHRva2VuKSB7XG4gICAgICAgIHN3aXRjaCAodGhpcy5pbnNlcnRpb25Nb2RlKSB7XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5JVElBTDoge1xuICAgICAgICAgICAgICAgIHRva2VuSW5Jbml0aWFsTW9kZSh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuQkVGT1JFX0hUTUw6IHtcbiAgICAgICAgICAgICAgICBlbmRUYWdCZWZvcmVIdG1sKHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5CRUZPUkVfSEVBRDoge1xuICAgICAgICAgICAgICAgIGVuZFRhZ0JlZm9yZUhlYWQodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX0hFQUQ6IHtcbiAgICAgICAgICAgICAgICBlbmRUYWdJbkhlYWQodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX0hFQURfTk9fU0NSSVBUOiB7XG4gICAgICAgICAgICAgICAgZW5kVGFnSW5IZWFkTm9TY3JpcHQodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLkFGVEVSX0hFQUQ6IHtcbiAgICAgICAgICAgICAgICBlbmRUYWdBZnRlckhlYWQodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX0JPRFk6IHtcbiAgICAgICAgICAgICAgICBlbmRUYWdJbkJvZHkodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLlRFWFQ6IHtcbiAgICAgICAgICAgICAgICBlbmRUYWdJblRleHQodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX1RBQkxFOiB7XG4gICAgICAgICAgICAgICAgZW5kVGFnSW5UYWJsZSh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fVEFCTEVfVEVYVDoge1xuICAgICAgICAgICAgICAgIHRva2VuSW5UYWJsZVRleHQodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX0NBUFRJT046IHtcbiAgICAgICAgICAgICAgICBlbmRUYWdJbkNhcHRpb24odGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX0NPTFVNTl9HUk9VUDoge1xuICAgICAgICAgICAgICAgIGVuZFRhZ0luQ29sdW1uR3JvdXAodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX1RBQkxFX0JPRFk6IHtcbiAgICAgICAgICAgICAgICBlbmRUYWdJblRhYmxlQm9keSh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fUk9XOiB7XG4gICAgICAgICAgICAgICAgZW5kVGFnSW5Sb3codGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX0NFTEw6IHtcbiAgICAgICAgICAgICAgICBlbmRUYWdJbkNlbGwodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX1NFTEVDVDoge1xuICAgICAgICAgICAgICAgIGVuZFRhZ0luU2VsZWN0KHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9TRUxFQ1RfSU5fVEFCTEU6IHtcbiAgICAgICAgICAgICAgICBlbmRUYWdJblNlbGVjdEluVGFibGUodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX1RFTVBMQVRFOiB7XG4gICAgICAgICAgICAgICAgZW5kVGFnSW5UZW1wbGF0ZSh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuQUZURVJfQk9EWToge1xuICAgICAgICAgICAgICAgIGVuZFRhZ0FmdGVyQm9keSh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fRlJBTUVTRVQ6IHtcbiAgICAgICAgICAgICAgICBlbmRUYWdJbkZyYW1lc2V0KHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5BRlRFUl9GUkFNRVNFVDoge1xuICAgICAgICAgICAgICAgIGVuZFRhZ0FmdGVyRnJhbWVzZXQodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLkFGVEVSX0FGVEVSX0JPRFk6IHtcbiAgICAgICAgICAgICAgICB0b2tlbkFmdGVyQWZ0ZXJCb2R5KHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAvLyBEbyBub3RoaW5nXG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqIEBpbnRlcm5hbCAqL1xuICAgIG9uRW9mKHRva2VuKSB7XG4gICAgICAgIHN3aXRjaCAodGhpcy5pbnNlcnRpb25Nb2RlKSB7XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5JVElBTDoge1xuICAgICAgICAgICAgICAgIHRva2VuSW5Jbml0aWFsTW9kZSh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuQkVGT1JFX0hUTUw6IHtcbiAgICAgICAgICAgICAgICB0b2tlbkJlZm9yZUh0bWwodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLkJFRk9SRV9IRUFEOiB7XG4gICAgICAgICAgICAgICAgdG9rZW5CZWZvcmVIZWFkKHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9IRUFEOiB7XG4gICAgICAgICAgICAgICAgdG9rZW5JbkhlYWQodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX0hFQURfTk9fU0NSSVBUOiB7XG4gICAgICAgICAgICAgICAgdG9rZW5JbkhlYWROb1NjcmlwdCh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuQUZURVJfSEVBRDoge1xuICAgICAgICAgICAgICAgIHRva2VuQWZ0ZXJIZWFkKHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9CT0RZOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX1RBQkxFOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX0NBUFRJT046XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fQ09MVU1OX0dST1VQOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX1RBQkxFX0JPRFk6XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fUk9XOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX0NFTEw6XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fU0VMRUNUOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX1NFTEVDVF9JTl9UQUJMRToge1xuICAgICAgICAgICAgICAgIGVvZkluQm9keSh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuVEVYVDoge1xuICAgICAgICAgICAgICAgIGVvZkluVGV4dCh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fVEFCTEVfVEVYVDoge1xuICAgICAgICAgICAgICAgIHRva2VuSW5UYWJsZVRleHQodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX1RFTVBMQVRFOiB7XG4gICAgICAgICAgICAgICAgZW9mSW5UZW1wbGF0ZSh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuQUZURVJfQk9EWTpcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9GUkFNRVNFVDpcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5BRlRFUl9GUkFNRVNFVDpcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5BRlRFUl9BRlRFUl9CT0RZOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLkFGVEVSX0FGVEVSX0ZSQU1FU0VUOiB7XG4gICAgICAgICAgICAgICAgc3RvcFBhcnNpbmcodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIC8vIERvIG5vdGhpbmdcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKiogQGludGVybmFsICovXG4gICAgb25XaGl0ZXNwYWNlQ2hhcmFjdGVyKHRva2VuKSB7XG4gICAgICAgIGlmICh0aGlzLnNraXBOZXh0TmV3TGluZSkge1xuICAgICAgICAgICAgdGhpcy5za2lwTmV4dE5ld0xpbmUgPSBmYWxzZTtcbiAgICAgICAgICAgIGlmICh0b2tlbi5jaGFycy5jaGFyQ29kZUF0KDApID09PSB1bmljb2RlLkNPREVfUE9JTlRTLkxJTkVfRkVFRCkge1xuICAgICAgICAgICAgICAgIGlmICh0b2tlbi5jaGFycy5sZW5ndGggPT09IDEpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0b2tlbi5jaGFycyA9IHRva2VuLmNoYXJzLnN1YnN0cigxKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy50b2tlbml6ZXIuaW5Gb3JlaWduTm9kZSkge1xuICAgICAgICAgICAgdGhpcy5faW5zZXJ0Q2hhcmFjdGVycyh0b2tlbik7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgc3dpdGNoICh0aGlzLmluc2VydGlvbk1vZGUpIHtcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9IRUFEOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX0hFQURfTk9fU0NSSVBUOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLkFGVEVSX0hFQUQ6XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuVEVYVDpcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9DT0xVTU5fR1JPVVA6XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fU0VMRUNUOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX1NFTEVDVF9JTl9UQUJMRTpcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9GUkFNRVNFVDpcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5BRlRFUl9GUkFNRVNFVDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2luc2VydENoYXJhY3RlcnModG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX0JPRFk6XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fQ0FQVElPTjpcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9DRUxMOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX1RFTVBMQVRFOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLkFGVEVSX0JPRFk6XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuQUZURVJfQUZURVJfQk9EWTpcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5BRlRFUl9BRlRFUl9GUkFNRVNFVDoge1xuICAgICAgICAgICAgICAgIHdoaXRlc3BhY2VDaGFyYWN0ZXJJbkJvZHkodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX1RBQkxFOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX1RBQkxFX0JPRFk6XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fUk9XOiB7XG4gICAgICAgICAgICAgICAgY2hhcmFjdGVySW5UYWJsZSh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fVEFCTEVfVEVYVDoge1xuICAgICAgICAgICAgICAgIHdoaXRlc3BhY2VDaGFyYWN0ZXJJblRhYmxlVGV4dCh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgLy8gRG8gbm90aGluZ1xuICAgICAgICB9XG4gICAgfVxufVxuLy9BZG9wdGlvbiBhZ2VuY3kgYWxnb3JpdGhtXG4vLyhzZWU6IGh0dHA6Ly93d3cud2hhdHdnLm9yZy9zcGVjcy93ZWItYXBwcy9jdXJyZW50LXdvcmsvbXVsdGlwYWdlL3RyZWUtY29uc3RydWN0aW9uLmh0bWwjYWRvcHRpb25BZ2VuY3kpXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy9TdGVwcyA1LTggb2YgdGhlIGFsZ29yaXRobVxuZnVuY3Rpb24gYWFPYnRhaW5Gb3JtYXR0aW5nRWxlbWVudEVudHJ5KHAsIHRva2VuKSB7XG4gICAgbGV0IGZvcm1hdHRpbmdFbGVtZW50RW50cnkgPSBwLmFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cy5nZXRFbGVtZW50RW50cnlJblNjb3BlV2l0aFRhZ05hbWUodG9rZW4udGFnTmFtZSk7XG4gICAgaWYgKGZvcm1hdHRpbmdFbGVtZW50RW50cnkpIHtcbiAgICAgICAgaWYgKCFwLm9wZW5FbGVtZW50cy5jb250YWlucyhmb3JtYXR0aW5nRWxlbWVudEVudHJ5LmVsZW1lbnQpKSB7XG4gICAgICAgICAgICBwLmFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cy5yZW1vdmVFbnRyeShmb3JtYXR0aW5nRWxlbWVudEVudHJ5KTtcbiAgICAgICAgICAgIGZvcm1hdHRpbmdFbGVtZW50RW50cnkgPSBudWxsO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKCFwLm9wZW5FbGVtZW50cy5oYXNJblNjb3BlKHRva2VuLnRhZ0lEKSkge1xuICAgICAgICAgICAgZm9ybWF0dGluZ0VsZW1lbnRFbnRyeSA9IG51bGw7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIGdlbmVyaWNFbmRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgIH1cbiAgICByZXR1cm4gZm9ybWF0dGluZ0VsZW1lbnRFbnRyeTtcbn1cbi8vU3RlcHMgOSBhbmQgMTAgb2YgdGhlIGFsZ29yaXRobVxuZnVuY3Rpb24gYWFPYnRhaW5GdXJ0aGVzdEJsb2NrKHAsIGZvcm1hdHRpbmdFbGVtZW50RW50cnkpIHtcbiAgICBsZXQgZnVydGhlc3RCbG9jayA9IG51bGw7XG4gICAgbGV0IGlkeCA9IHAub3BlbkVsZW1lbnRzLnN0YWNrVG9wO1xuICAgIGZvciAoOyBpZHggPj0gMDsgaWR4LS0pIHtcbiAgICAgICAgY29uc3QgZWxlbWVudCA9IHAub3BlbkVsZW1lbnRzLml0ZW1zW2lkeF07XG4gICAgICAgIGlmIChlbGVtZW50ID09PSBmb3JtYXR0aW5nRWxlbWVudEVudHJ5LmVsZW1lbnQpIHtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGlmIChwLl9pc1NwZWNpYWxFbGVtZW50KGVsZW1lbnQsIHAub3BlbkVsZW1lbnRzLnRhZ0lEc1tpZHhdKSkge1xuICAgICAgICAgICAgZnVydGhlc3RCbG9jayA9IGVsZW1lbnQ7XG4gICAgICAgIH1cbiAgICB9XG4gICAgaWYgKCFmdXJ0aGVzdEJsb2NrKSB7XG4gICAgICAgIHAub3BlbkVsZW1lbnRzLnNob3J0ZW5Ub0xlbmd0aChpZHggPCAwID8gMCA6IGlkeCk7XG4gICAgICAgIHAuYWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzLnJlbW92ZUVudHJ5KGZvcm1hdHRpbmdFbGVtZW50RW50cnkpO1xuICAgIH1cbiAgICByZXR1cm4gZnVydGhlc3RCbG9jaztcbn1cbi8vU3RlcCAxMyBvZiB0aGUgYWxnb3JpdGhtXG5mdW5jdGlvbiBhYUlubmVyTG9vcChwLCBmdXJ0aGVzdEJsb2NrLCBmb3JtYXR0aW5nRWxlbWVudCkge1xuICAgIGxldCBsYXN0RWxlbWVudCA9IGZ1cnRoZXN0QmxvY2s7XG4gICAgbGV0IG5leHRFbGVtZW50ID0gcC5vcGVuRWxlbWVudHMuZ2V0Q29tbW9uQW5jZXN0b3IoZnVydGhlc3RCbG9jayk7XG4gICAgZm9yIChsZXQgaSA9IDAsIGVsZW1lbnQgPSBuZXh0RWxlbWVudDsgZWxlbWVudCAhPT0gZm9ybWF0dGluZ0VsZW1lbnQ7IGkrKywgZWxlbWVudCA9IG5leHRFbGVtZW50KSB7XG4gICAgICAgIC8vTk9URTogc3RvcmUgdGhlIG5leHQgZWxlbWVudCBmb3IgdGhlIG5leHQgbG9vcCBpdGVyYXRpb24gKGl0IG1heSBiZSBkZWxldGVkIGZyb20gdGhlIHN0YWNrIGJ5IHN0ZXAgOS41KVxuICAgICAgICBuZXh0RWxlbWVudCA9IHAub3BlbkVsZW1lbnRzLmdldENvbW1vbkFuY2VzdG9yKGVsZW1lbnQpO1xuICAgICAgICBjb25zdCBlbGVtZW50RW50cnkgPSBwLmFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cy5nZXRFbGVtZW50RW50cnkoZWxlbWVudCk7XG4gICAgICAgIGNvbnN0IGNvdW50ZXJPdmVyZmxvdyA9IGVsZW1lbnRFbnRyeSAmJiBpID49IEFBX0lOTkVSX0xPT1BfSVRFUjtcbiAgICAgICAgY29uc3Qgc2hvdWxkUmVtb3ZlRnJvbU9wZW5FbGVtZW50cyA9ICFlbGVtZW50RW50cnkgfHwgY291bnRlck92ZXJmbG93O1xuICAgICAgICBpZiAoc2hvdWxkUmVtb3ZlRnJvbU9wZW5FbGVtZW50cykge1xuICAgICAgICAgICAgaWYgKGNvdW50ZXJPdmVyZmxvdykge1xuICAgICAgICAgICAgICAgIHAuYWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzLnJlbW92ZUVudHJ5KGVsZW1lbnRFbnRyeSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBwLm9wZW5FbGVtZW50cy5yZW1vdmUoZWxlbWVudCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBlbGVtZW50ID0gYWFSZWNyZWF0ZUVsZW1lbnRGcm9tRW50cnkocCwgZWxlbWVudEVudHJ5KTtcbiAgICAgICAgICAgIGlmIChsYXN0RWxlbWVudCA9PT0gZnVydGhlc3RCbG9jaykge1xuICAgICAgICAgICAgICAgIHAuYWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzLmJvb2ttYXJrID0gZWxlbWVudEVudHJ5O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcC50cmVlQWRhcHRlci5kZXRhY2hOb2RlKGxhc3RFbGVtZW50KTtcbiAgICAgICAgICAgIHAudHJlZUFkYXB0ZXIuYXBwZW5kQ2hpbGQoZWxlbWVudCwgbGFzdEVsZW1lbnQpO1xuICAgICAgICAgICAgbGFzdEVsZW1lbnQgPSBlbGVtZW50O1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBsYXN0RWxlbWVudDtcbn1cbi8vU3RlcCAxMy43IG9mIHRoZSBhbGdvcml0aG1cbmZ1bmN0aW9uIGFhUmVjcmVhdGVFbGVtZW50RnJvbUVudHJ5KHAsIGVsZW1lbnRFbnRyeSkge1xuICAgIGNvbnN0IG5zID0gcC50cmVlQWRhcHRlci5nZXROYW1lc3BhY2VVUkkoZWxlbWVudEVudHJ5LmVsZW1lbnQpO1xuICAgIGNvbnN0IG5ld0VsZW1lbnQgPSBwLnRyZWVBZGFwdGVyLmNyZWF0ZUVsZW1lbnQoZWxlbWVudEVudHJ5LnRva2VuLnRhZ05hbWUsIG5zLCBlbGVtZW50RW50cnkudG9rZW4uYXR0cnMpO1xuICAgIHAub3BlbkVsZW1lbnRzLnJlcGxhY2UoZWxlbWVudEVudHJ5LmVsZW1lbnQsIG5ld0VsZW1lbnQpO1xuICAgIGVsZW1lbnRFbnRyeS5lbGVtZW50ID0gbmV3RWxlbWVudDtcbiAgICByZXR1cm4gbmV3RWxlbWVudDtcbn1cbi8vU3RlcCAxNCBvZiB0aGUgYWxnb3JpdGhtXG5mdW5jdGlvbiBhYUluc2VydExhc3ROb2RlSW5Db21tb25BbmNlc3RvcihwLCBjb21tb25BbmNlc3RvciwgbGFzdEVsZW1lbnQpIHtcbiAgICBjb25zdCB0biA9IHAudHJlZUFkYXB0ZXIuZ2V0VGFnTmFtZShjb21tb25BbmNlc3Rvcik7XG4gICAgY29uc3QgdGlkID0gZ2V0VGFnSUQodG4pO1xuICAgIGlmIChwLl9pc0VsZW1lbnRDYXVzZXNGb3N0ZXJQYXJlbnRpbmcodGlkKSkge1xuICAgICAgICBwLl9mb3N0ZXJQYXJlbnRFbGVtZW50KGxhc3RFbGVtZW50KTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIGNvbnN0IG5zID0gcC50cmVlQWRhcHRlci5nZXROYW1lc3BhY2VVUkkoY29tbW9uQW5jZXN0b3IpO1xuICAgICAgICBpZiAodGlkID09PSAkLlRFTVBMQVRFICYmIG5zID09PSBOUy5IVE1MKSB7XG4gICAgICAgICAgICBjb21tb25BbmNlc3RvciA9IHAudHJlZUFkYXB0ZXIuZ2V0VGVtcGxhdGVDb250ZW50KGNvbW1vbkFuY2VzdG9yKTtcbiAgICAgICAgfVxuICAgICAgICBwLnRyZWVBZGFwdGVyLmFwcGVuZENoaWxkKGNvbW1vbkFuY2VzdG9yLCBsYXN0RWxlbWVudCk7XG4gICAgfVxufVxuLy9TdGVwcyAxNS0xOSBvZiB0aGUgYWxnb3JpdGhtXG5mdW5jdGlvbiBhYVJlcGxhY2VGb3JtYXR0aW5nRWxlbWVudChwLCBmdXJ0aGVzdEJsb2NrLCBmb3JtYXR0aW5nRWxlbWVudEVudHJ5KSB7XG4gICAgY29uc3QgbnMgPSBwLnRyZWVBZGFwdGVyLmdldE5hbWVzcGFjZVVSSShmb3JtYXR0aW5nRWxlbWVudEVudHJ5LmVsZW1lbnQpO1xuICAgIGNvbnN0IHsgdG9rZW4gfSA9IGZvcm1hdHRpbmdFbGVtZW50RW50cnk7XG4gICAgY29uc3QgbmV3RWxlbWVudCA9IHAudHJlZUFkYXB0ZXIuY3JlYXRlRWxlbWVudCh0b2tlbi50YWdOYW1lLCBucywgdG9rZW4uYXR0cnMpO1xuICAgIHAuX2Fkb3B0Tm9kZXMoZnVydGhlc3RCbG9jaywgbmV3RWxlbWVudCk7XG4gICAgcC50cmVlQWRhcHRlci5hcHBlbmRDaGlsZChmdXJ0aGVzdEJsb2NrLCBuZXdFbGVtZW50KTtcbiAgICBwLmFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cy5pbnNlcnRFbGVtZW50QWZ0ZXJCb29rbWFyayhuZXdFbGVtZW50LCB0b2tlbik7XG4gICAgcC5hY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMucmVtb3ZlRW50cnkoZm9ybWF0dGluZ0VsZW1lbnRFbnRyeSk7XG4gICAgcC5vcGVuRWxlbWVudHMucmVtb3ZlKGZvcm1hdHRpbmdFbGVtZW50RW50cnkuZWxlbWVudCk7XG4gICAgcC5vcGVuRWxlbWVudHMuaW5zZXJ0QWZ0ZXIoZnVydGhlc3RCbG9jaywgbmV3RWxlbWVudCwgdG9rZW4udGFnSUQpO1xufVxuLy9BbGdvcml0aG0gZW50cnkgcG9pbnRcbmZ1bmN0aW9uIGNhbGxBZG9wdGlvbkFnZW5jeShwLCB0b2tlbikge1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgQUFfT1VURVJfTE9PUF9JVEVSOyBpKyspIHtcbiAgICAgICAgY29uc3QgZm9ybWF0dGluZ0VsZW1lbnRFbnRyeSA9IGFhT2J0YWluRm9ybWF0dGluZ0VsZW1lbnRFbnRyeShwLCB0b2tlbik7XG4gICAgICAgIGlmICghZm9ybWF0dGluZ0VsZW1lbnRFbnRyeSkge1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZnVydGhlc3RCbG9jayA9IGFhT2J0YWluRnVydGhlc3RCbG9jayhwLCBmb3JtYXR0aW5nRWxlbWVudEVudHJ5KTtcbiAgICAgICAgaWYgKCFmdXJ0aGVzdEJsb2NrKSB7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBwLmFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cy5ib29rbWFyayA9IGZvcm1hdHRpbmdFbGVtZW50RW50cnk7XG4gICAgICAgIGNvbnN0IGxhc3RFbGVtZW50ID0gYWFJbm5lckxvb3AocCwgZnVydGhlc3RCbG9jaywgZm9ybWF0dGluZ0VsZW1lbnRFbnRyeS5lbGVtZW50KTtcbiAgICAgICAgY29uc3QgY29tbW9uQW5jZXN0b3IgPSBwLm9wZW5FbGVtZW50cy5nZXRDb21tb25BbmNlc3Rvcihmb3JtYXR0aW5nRWxlbWVudEVudHJ5LmVsZW1lbnQpO1xuICAgICAgICBwLnRyZWVBZGFwdGVyLmRldGFjaE5vZGUobGFzdEVsZW1lbnQpO1xuICAgICAgICBpZiAoY29tbW9uQW5jZXN0b3IpXG4gICAgICAgICAgICBhYUluc2VydExhc3ROb2RlSW5Db21tb25BbmNlc3RvcihwLCBjb21tb25BbmNlc3RvciwgbGFzdEVsZW1lbnQpO1xuICAgICAgICBhYVJlcGxhY2VGb3JtYXR0aW5nRWxlbWVudChwLCBmdXJ0aGVzdEJsb2NrLCBmb3JtYXR0aW5nRWxlbWVudEVudHJ5KTtcbiAgICB9XG59XG4vL0dlbmVyaWMgdG9rZW4gaGFuZGxlcnNcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5mdW5jdGlvbiBhcHBlbmRDb21tZW50KHAsIHRva2VuKSB7XG4gICAgcC5fYXBwZW5kQ29tbWVudE5vZGUodG9rZW4sIHAub3BlbkVsZW1lbnRzLmN1cnJlbnRUbXBsQ29udGVudE9yTm9kZSk7XG59XG5mdW5jdGlvbiBhcHBlbmRDb21tZW50VG9Sb290SHRtbEVsZW1lbnQocCwgdG9rZW4pIHtcbiAgICBwLl9hcHBlbmRDb21tZW50Tm9kZSh0b2tlbiwgcC5vcGVuRWxlbWVudHMuaXRlbXNbMF0pO1xufVxuZnVuY3Rpb24gYXBwZW5kQ29tbWVudFRvRG9jdW1lbnQocCwgdG9rZW4pIHtcbiAgICBwLl9hcHBlbmRDb21tZW50Tm9kZSh0b2tlbiwgcC5kb2N1bWVudCk7XG59XG5mdW5jdGlvbiBzdG9wUGFyc2luZyhwLCB0b2tlbikge1xuICAgIHAuc3RvcHBlZCA9IHRydWU7XG4gICAgLy8gTk9URTogU2V0IGVuZCBsb2NhdGlvbnMgZm9yIGVsZW1lbnRzIHRoYXQgcmVtYWluIG9uIHRoZSBvcGVuIGVsZW1lbnQgc3RhY2suXG4gICAgaWYgKHRva2VuLmxvY2F0aW9uKSB7XG4gICAgICAgIC8vIE5PVEU6IElmIHdlIGFyZSBub3QgaW4gYSBmcmFnbWVudCwgYGh0bWxgIGFuZCBgYm9keWAgd2lsbCBzdGF5IG9uIHRoZSBzdGFjay5cbiAgICAgICAgLy8gVGhpcyBpcyBhIHByb2JsZW0sIGFzIHdlIG1pZ2h0IG92ZXJ3cml0ZSB0aGVpciBlbmQgcG9zaXRpb24gaGVyZS5cbiAgICAgICAgY29uc3QgdGFyZ2V0ID0gcC5mcmFnbWVudENvbnRleHQgPyAwIDogMjtcbiAgICAgICAgZm9yIChsZXQgaSA9IHAub3BlbkVsZW1lbnRzLnN0YWNrVG9wOyBpID49IHRhcmdldDsgaS0tKSB7XG4gICAgICAgICAgICBwLl9zZXRFbmRMb2NhdGlvbihwLm9wZW5FbGVtZW50cy5pdGVtc1tpXSwgdG9rZW4pO1xuICAgICAgICB9XG4gICAgICAgIC8vIEhhbmRsZSBgaHRtbGAgYW5kIGBib2R5YFxuICAgICAgICBpZiAoIXAuZnJhZ21lbnRDb250ZXh0ICYmIHAub3BlbkVsZW1lbnRzLnN0YWNrVG9wID49IDApIHtcbiAgICAgICAgICAgIGNvbnN0IGh0bWxFbGVtZW50ID0gcC5vcGVuRWxlbWVudHMuaXRlbXNbMF07XG4gICAgICAgICAgICBjb25zdCBodG1sTG9jYXRpb24gPSBwLnRyZWVBZGFwdGVyLmdldE5vZGVTb3VyY2VDb2RlTG9jYXRpb24oaHRtbEVsZW1lbnQpO1xuICAgICAgICAgICAgaWYgKGh0bWxMb2NhdGlvbiAmJiAhaHRtbExvY2F0aW9uLmVuZFRhZykge1xuICAgICAgICAgICAgICAgIHAuX3NldEVuZExvY2F0aW9uKGh0bWxFbGVtZW50LCB0b2tlbik7XG4gICAgICAgICAgICAgICAgaWYgKHAub3BlbkVsZW1lbnRzLnN0YWNrVG9wID49IDEpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYm9keUVsZW1lbnQgPSBwLm9wZW5FbGVtZW50cy5pdGVtc1sxXTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYm9keUxvY2F0aW9uID0gcC50cmVlQWRhcHRlci5nZXROb2RlU291cmNlQ29kZUxvY2F0aW9uKGJvZHlFbGVtZW50KTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGJvZHlMb2NhdGlvbiAmJiAhYm9keUxvY2F0aW9uLmVuZFRhZykge1xuICAgICAgICAgICAgICAgICAgICAgICAgcC5fc2V0RW5kTG9jYXRpb24oYm9keUVsZW1lbnQsIHRva2VuKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbi8vIFRoZSBcImluaXRpYWxcIiBpbnNlcnRpb24gbW9kZVxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbmZ1bmN0aW9uIGRvY3R5cGVJbkluaXRpYWxNb2RlKHAsIHRva2VuKSB7XG4gICAgcC5fc2V0RG9jdW1lbnRUeXBlKHRva2VuKTtcbiAgICBjb25zdCBtb2RlID0gdG9rZW4uZm9yY2VRdWlya3MgPyBET0NVTUVOVF9NT0RFLlFVSVJLUyA6IGRvY3R5cGUuZ2V0RG9jdW1lbnRNb2RlKHRva2VuKTtcbiAgICBpZiAoIWRvY3R5cGUuaXNDb25mb3JtaW5nKHRva2VuKSkge1xuICAgICAgICBwLl9lcnIodG9rZW4sIEVSUi5ub25Db25mb3JtaW5nRG9jdHlwZSk7XG4gICAgfVxuICAgIHAudHJlZUFkYXB0ZXIuc2V0RG9jdW1lbnRNb2RlKHAuZG9jdW1lbnQsIG1vZGUpO1xuICAgIHAuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuQkVGT1JFX0hUTUw7XG59XG5mdW5jdGlvbiB0b2tlbkluSW5pdGlhbE1vZGUocCwgdG9rZW4pIHtcbiAgICBwLl9lcnIodG9rZW4sIEVSUi5taXNzaW5nRG9jdHlwZSwgdHJ1ZSk7XG4gICAgcC50cmVlQWRhcHRlci5zZXREb2N1bWVudE1vZGUocC5kb2N1bWVudCwgRE9DVU1FTlRfTU9ERS5RVUlSS1MpO1xuICAgIHAuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuQkVGT1JFX0hUTUw7XG4gICAgcC5fcHJvY2Vzc1Rva2VuKHRva2VuKTtcbn1cbi8vIFRoZSBcImJlZm9yZSBodG1sXCIgaW5zZXJ0aW9uIG1vZGVcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5mdW5jdGlvbiBzdGFydFRhZ0JlZm9yZUh0bWwocCwgdG9rZW4pIHtcbiAgICBpZiAodG9rZW4udGFnSUQgPT09ICQuSFRNTCkge1xuICAgICAgICBwLl9pbnNlcnRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTtcbiAgICAgICAgcC5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5CRUZPUkVfSEVBRDtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIHRva2VuQmVmb3JlSHRtbChwLCB0b2tlbik7XG4gICAgfVxufVxuZnVuY3Rpb24gZW5kVGFnQmVmb3JlSHRtbChwLCB0b2tlbikge1xuICAgIGNvbnN0IHRuID0gdG9rZW4udGFnSUQ7XG4gICAgaWYgKHRuID09PSAkLkhUTUwgfHwgdG4gPT09ICQuSEVBRCB8fCB0biA9PT0gJC5CT0RZIHx8IHRuID09PSAkLkJSKSB7XG4gICAgICAgIHRva2VuQmVmb3JlSHRtbChwLCB0b2tlbik7XG4gICAgfVxufVxuZnVuY3Rpb24gdG9rZW5CZWZvcmVIdG1sKHAsIHRva2VuKSB7XG4gICAgcC5faW5zZXJ0RmFrZVJvb3RFbGVtZW50KCk7XG4gICAgcC5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5CRUZPUkVfSEVBRDtcbiAgICBwLl9wcm9jZXNzVG9rZW4odG9rZW4pO1xufVxuLy8gVGhlIFwiYmVmb3JlIGhlYWRcIiBpbnNlcnRpb24gbW9kZVxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbmZ1bmN0aW9uIHN0YXJ0VGFnQmVmb3JlSGVhZChwLCB0b2tlbikge1xuICAgIHN3aXRjaCAodG9rZW4udGFnSUQpIHtcbiAgICAgICAgY2FzZSAkLkhUTUw6IHtcbiAgICAgICAgICAgIHN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5IRUFEOiB7XG4gICAgICAgICAgICBwLl9pbnNlcnRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTtcbiAgICAgICAgICAgIHAuaGVhZEVsZW1lbnQgPSBwLm9wZW5FbGVtZW50cy5jdXJyZW50O1xuICAgICAgICAgICAgcC5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9IRUFEO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgdG9rZW5CZWZvcmVIZWFkKHAsIHRva2VuKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbmZ1bmN0aW9uIGVuZFRhZ0JlZm9yZUhlYWQocCwgdG9rZW4pIHtcbiAgICBjb25zdCB0biA9IHRva2VuLnRhZ0lEO1xuICAgIGlmICh0biA9PT0gJC5IRUFEIHx8IHRuID09PSAkLkJPRFkgfHwgdG4gPT09ICQuSFRNTCB8fCB0biA9PT0gJC5CUikge1xuICAgICAgICB0b2tlbkJlZm9yZUhlYWQocCwgdG9rZW4pO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgcC5fZXJyKHRva2VuLCBFUlIuZW5kVGFnV2l0aG91dE1hdGNoaW5nT3BlbkVsZW1lbnQpO1xuICAgIH1cbn1cbmZ1bmN0aW9uIHRva2VuQmVmb3JlSGVhZChwLCB0b2tlbikge1xuICAgIHAuX2luc2VydEZha2VFbGVtZW50KFROLkhFQUQsICQuSEVBRCk7XG4gICAgcC5oZWFkRWxlbWVudCA9IHAub3BlbkVsZW1lbnRzLmN1cnJlbnQ7XG4gICAgcC5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9IRUFEO1xuICAgIHAuX3Byb2Nlc3NUb2tlbih0b2tlbik7XG59XG4vLyBUaGUgXCJpbiBoZWFkXCIgaW5zZXJ0aW9uIG1vZGVcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5mdW5jdGlvbiBzdGFydFRhZ0luSGVhZChwLCB0b2tlbikge1xuICAgIHN3aXRjaCAodG9rZW4udGFnSUQpIHtcbiAgICAgICAgY2FzZSAkLkhUTUw6IHtcbiAgICAgICAgICAgIHN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5CQVNFOlxuICAgICAgICBjYXNlICQuQkFTRUZPTlQ6XG4gICAgICAgIGNhc2UgJC5CR1NPVU5EOlxuICAgICAgICBjYXNlICQuTElOSzpcbiAgICAgICAgY2FzZSAkLk1FVEE6IHtcbiAgICAgICAgICAgIHAuX2FwcGVuZEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpO1xuICAgICAgICAgICAgdG9rZW4uYWNrU2VsZkNsb3NpbmcgPSB0cnVlO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLlRJVExFOiB7XG4gICAgICAgICAgICBwLl9zd2l0Y2hUb1RleHRQYXJzaW5nKHRva2VuLCBUb2tlbml6ZXJNb2RlLlJDREFUQSk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuTk9TQ1JJUFQ6IHtcbiAgICAgICAgICAgIGlmIChwLm9wdGlvbnMuc2NyaXB0aW5nRW5hYmxlZCkge1xuICAgICAgICAgICAgICAgIHAuX3N3aXRjaFRvVGV4dFBhcnNpbmcodG9rZW4sIFRva2VuaXplck1vZGUuUkFXVEVYVCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBwLl9pbnNlcnRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTtcbiAgICAgICAgICAgICAgICBwLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLklOX0hFQURfTk9fU0NSSVBUO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLk5PRlJBTUVTOlxuICAgICAgICBjYXNlICQuU1RZTEU6IHtcbiAgICAgICAgICAgIHAuX3N3aXRjaFRvVGV4dFBhcnNpbmcodG9rZW4sIFRva2VuaXplck1vZGUuUkFXVEVYVCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuU0NSSVBUOiB7XG4gICAgICAgICAgICBwLl9zd2l0Y2hUb1RleHRQYXJzaW5nKHRva2VuLCBUb2tlbml6ZXJNb2RlLlNDUklQVF9EQVRBKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5URU1QTEFURToge1xuICAgICAgICAgICAgcC5faW5zZXJ0VGVtcGxhdGUodG9rZW4pO1xuICAgICAgICAgICAgcC5hY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMuaW5zZXJ0TWFya2VyKCk7XG4gICAgICAgICAgICBwLmZyYW1lc2V0T2sgPSBmYWxzZTtcbiAgICAgICAgICAgIHAuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuSU5fVEVNUExBVEU7XG4gICAgICAgICAgICBwLnRtcGxJbnNlcnRpb25Nb2RlU3RhY2sudW5zaGlmdChJbnNlcnRpb25Nb2RlLklOX1RFTVBMQVRFKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5IRUFEOiB7XG4gICAgICAgICAgICBwLl9lcnIodG9rZW4sIEVSUi5taXNwbGFjZWRTdGFydFRhZ0ZvckhlYWRFbGVtZW50KTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgIHRva2VuSW5IZWFkKHAsIHRva2VuKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbmZ1bmN0aW9uIGVuZFRhZ0luSGVhZChwLCB0b2tlbikge1xuICAgIHN3aXRjaCAodG9rZW4udGFnSUQpIHtcbiAgICAgICAgY2FzZSAkLkhFQUQ6IHtcbiAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcCgpO1xuICAgICAgICAgICAgcC5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5BRlRFUl9IRUFEO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLkJPRFk6XG4gICAgICAgIGNhc2UgJC5CUjpcbiAgICAgICAgY2FzZSAkLkhUTUw6IHtcbiAgICAgICAgICAgIHRva2VuSW5IZWFkKHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5URU1QTEFURToge1xuICAgICAgICAgICAgdGVtcGxhdGVFbmRUYWdJbkhlYWQocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgcC5fZXJyKHRva2VuLCBFUlIuZW5kVGFnV2l0aG91dE1hdGNoaW5nT3BlbkVsZW1lbnQpO1xuICAgICAgICB9XG4gICAgfVxufVxuZnVuY3Rpb24gdGVtcGxhdGVFbmRUYWdJbkhlYWQocCwgdG9rZW4pIHtcbiAgICBpZiAocC5vcGVuRWxlbWVudHMudG1wbENvdW50ID4gMCkge1xuICAgICAgICBwLm9wZW5FbGVtZW50cy5nZW5lcmF0ZUltcGxpZWRFbmRUYWdzVGhvcm91Z2hseSgpO1xuICAgICAgICBpZiAocC5vcGVuRWxlbWVudHMuY3VycmVudFRhZ0lkICE9PSAkLlRFTVBMQVRFKSB7XG4gICAgICAgICAgICBwLl9lcnIodG9rZW4sIEVSUi5jbG9zaW5nT2ZFbGVtZW50V2l0aE9wZW5DaGlsZEVsZW1lbnRzKTtcbiAgICAgICAgfVxuICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3BVbnRpbFRhZ05hbWVQb3BwZWQoJC5URU1QTEFURSk7XG4gICAgICAgIHAuYWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzLmNsZWFyVG9MYXN0TWFya2VyKCk7XG4gICAgICAgIHAudG1wbEluc2VydGlvbk1vZGVTdGFjay5zaGlmdCgpO1xuICAgICAgICBwLl9yZXNldEluc2VydGlvbk1vZGUoKTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIHAuX2Vycih0b2tlbiwgRVJSLmVuZFRhZ1dpdGhvdXRNYXRjaGluZ09wZW5FbGVtZW50KTtcbiAgICB9XG59XG5mdW5jdGlvbiB0b2tlbkluSGVhZChwLCB0b2tlbikge1xuICAgIHAub3BlbkVsZW1lbnRzLnBvcCgpO1xuICAgIHAuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuQUZURVJfSEVBRDtcbiAgICBwLl9wcm9jZXNzVG9rZW4odG9rZW4pO1xufVxuLy8gVGhlIFwiaW4gaGVhZCBubyBzY3JpcHRcIiBpbnNlcnRpb24gbW9kZVxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbmZ1bmN0aW9uIHN0YXJ0VGFnSW5IZWFkTm9TY3JpcHQocCwgdG9rZW4pIHtcbiAgICBzd2l0Y2ggKHRva2VuLnRhZ0lEKSB7XG4gICAgICAgIGNhc2UgJC5IVE1MOiB7XG4gICAgICAgICAgICBzdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuQkFTRUZPTlQ6XG4gICAgICAgIGNhc2UgJC5CR1NPVU5EOlxuICAgICAgICBjYXNlICQuSEVBRDpcbiAgICAgICAgY2FzZSAkLkxJTks6XG4gICAgICAgIGNhc2UgJC5NRVRBOlxuICAgICAgICBjYXNlICQuTk9GUkFNRVM6XG4gICAgICAgIGNhc2UgJC5TVFlMRToge1xuICAgICAgICAgICAgc3RhcnRUYWdJbkhlYWQocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLk5PU0NSSVBUOiB7XG4gICAgICAgICAgICBwLl9lcnIodG9rZW4sIEVSUi5uZXN0ZWROb3NjcmlwdEluSGVhZCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICB0b2tlbkluSGVhZE5vU2NyaXB0KHAsIHRva2VuKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbmZ1bmN0aW9uIGVuZFRhZ0luSGVhZE5vU2NyaXB0KHAsIHRva2VuKSB7XG4gICAgc3dpdGNoICh0b2tlbi50YWdJRCkge1xuICAgICAgICBjYXNlICQuTk9TQ1JJUFQ6IHtcbiAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcCgpO1xuICAgICAgICAgICAgcC5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9IRUFEO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLkJSOiB7XG4gICAgICAgICAgICB0b2tlbkluSGVhZE5vU2NyaXB0KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgIHAuX2Vycih0b2tlbiwgRVJSLmVuZFRhZ1dpdGhvdXRNYXRjaGluZ09wZW5FbGVtZW50KTtcbiAgICAgICAgfVxuICAgIH1cbn1cbmZ1bmN0aW9uIHRva2VuSW5IZWFkTm9TY3JpcHQocCwgdG9rZW4pIHtcbiAgICBjb25zdCBlcnJDb2RlID0gdG9rZW4udHlwZSA9PT0gVG9rZW5UeXBlLkVPRiA/IEVSUi5vcGVuRWxlbWVudHNMZWZ0QWZ0ZXJFb2YgOiBFUlIuZGlzYWxsb3dlZENvbnRlbnRJbk5vc2NyaXB0SW5IZWFkO1xuICAgIHAuX2Vycih0b2tlbiwgZXJyQ29kZSk7XG4gICAgcC5vcGVuRWxlbWVudHMucG9wKCk7XG4gICAgcC5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9IRUFEO1xuICAgIHAuX3Byb2Nlc3NUb2tlbih0b2tlbik7XG59XG4vLyBUaGUgXCJhZnRlciBoZWFkXCIgaW5zZXJ0aW9uIG1vZGVcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5mdW5jdGlvbiBzdGFydFRhZ0FmdGVySGVhZChwLCB0b2tlbikge1xuICAgIHN3aXRjaCAodG9rZW4udGFnSUQpIHtcbiAgICAgICAgY2FzZSAkLkhUTUw6IHtcbiAgICAgICAgICAgIHN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5CT0RZOiB7XG4gICAgICAgICAgICBwLl9pbnNlcnRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTtcbiAgICAgICAgICAgIHAuZnJhbWVzZXRPayA9IGZhbHNlO1xuICAgICAgICAgICAgcC5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9CT0RZO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLkZSQU1FU0VUOiB7XG4gICAgICAgICAgICBwLl9pbnNlcnRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTtcbiAgICAgICAgICAgIHAuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuSU5fRlJBTUVTRVQ7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuQkFTRTpcbiAgICAgICAgY2FzZSAkLkJBU0VGT05UOlxuICAgICAgICBjYXNlICQuQkdTT1VORDpcbiAgICAgICAgY2FzZSAkLkxJTks6XG4gICAgICAgIGNhc2UgJC5NRVRBOlxuICAgICAgICBjYXNlICQuTk9GUkFNRVM6XG4gICAgICAgIGNhc2UgJC5TQ1JJUFQ6XG4gICAgICAgIGNhc2UgJC5TVFlMRTpcbiAgICAgICAgY2FzZSAkLlRFTVBMQVRFOlxuICAgICAgICBjYXNlICQuVElUTEU6IHtcbiAgICAgICAgICAgIHAuX2Vycih0b2tlbiwgRVJSLmFiYW5kb25lZEhlYWRFbGVtZW50Q2hpbGQpO1xuICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMucHVzaChwLmhlYWRFbGVtZW50LCAkLkhFQUQpO1xuICAgICAgICAgICAgc3RhcnRUYWdJbkhlYWQocCwgdG9rZW4pO1xuICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMucmVtb3ZlKHAuaGVhZEVsZW1lbnQpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLkhFQUQ6IHtcbiAgICAgICAgICAgIHAuX2Vycih0b2tlbiwgRVJSLm1pc3BsYWNlZFN0YXJ0VGFnRm9ySGVhZEVsZW1lbnQpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgdG9rZW5BZnRlckhlYWQocCwgdG9rZW4pO1xuICAgICAgICB9XG4gICAgfVxufVxuZnVuY3Rpb24gZW5kVGFnQWZ0ZXJIZWFkKHAsIHRva2VuKSB7XG4gICAgc3dpdGNoICh0b2tlbi50YWdJRCkge1xuICAgICAgICBjYXNlICQuQk9EWTpcbiAgICAgICAgY2FzZSAkLkhUTUw6XG4gICAgICAgIGNhc2UgJC5CUjoge1xuICAgICAgICAgICAgdG9rZW5BZnRlckhlYWQocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLlRFTVBMQVRFOiB7XG4gICAgICAgICAgICB0ZW1wbGF0ZUVuZFRhZ0luSGVhZChwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICBwLl9lcnIodG9rZW4sIEVSUi5lbmRUYWdXaXRob3V0TWF0Y2hpbmdPcGVuRWxlbWVudCk7XG4gICAgICAgIH1cbiAgICB9XG59XG5mdW5jdGlvbiB0b2tlbkFmdGVySGVhZChwLCB0b2tlbikge1xuICAgIHAuX2luc2VydEZha2VFbGVtZW50KFROLkJPRFksICQuQk9EWSk7XG4gICAgcC5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9CT0RZO1xuICAgIG1vZGVJbkJvZHkocCwgdG9rZW4pO1xufVxuLy8gVGhlIFwiaW4gYm9keVwiIGluc2VydGlvbiBtb2RlXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuZnVuY3Rpb24gbW9kZUluQm9keShwLCB0b2tlbikge1xuICAgIHN3aXRjaCAodG9rZW4udHlwZSkge1xuICAgICAgICBjYXNlIFRva2VuVHlwZS5DSEFSQUNURVI6IHtcbiAgICAgICAgICAgIGNoYXJhY3RlckluQm9keShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlIFRva2VuVHlwZS5XSElURVNQQUNFX0NIQVJBQ1RFUjoge1xuICAgICAgICAgICAgd2hpdGVzcGFjZUNoYXJhY3RlckluQm9keShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlIFRva2VuVHlwZS5DT01NRU5UOiB7XG4gICAgICAgICAgICBhcHBlbmRDb21tZW50KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgVG9rZW5UeXBlLlNUQVJUX1RBRzoge1xuICAgICAgICAgICAgc3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSBUb2tlblR5cGUuRU5EX1RBRzoge1xuICAgICAgICAgICAgZW5kVGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgVG9rZW5UeXBlLkVPRjoge1xuICAgICAgICAgICAgZW9mSW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgIC8vIERvIG5vdGhpbmdcbiAgICB9XG59XG5mdW5jdGlvbiB3aGl0ZXNwYWNlQ2hhcmFjdGVySW5Cb2R5KHAsIHRva2VuKSB7XG4gICAgcC5fcmVjb25zdHJ1Y3RBY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMoKTtcbiAgICBwLl9pbnNlcnRDaGFyYWN0ZXJzKHRva2VuKTtcbn1cbmZ1bmN0aW9uIGNoYXJhY3RlckluQm9keShwLCB0b2tlbikge1xuICAgIHAuX3JlY29uc3RydWN0QWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzKCk7XG4gICAgcC5faW5zZXJ0Q2hhcmFjdGVycyh0b2tlbik7XG4gICAgcC5mcmFtZXNldE9rID0gZmFsc2U7XG59XG5mdW5jdGlvbiBodG1sU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pIHtcbiAgICBpZiAocC5vcGVuRWxlbWVudHMudG1wbENvdW50ID09PSAwKSB7XG4gICAgICAgIHAudHJlZUFkYXB0ZXIuYWRvcHRBdHRyaWJ1dGVzKHAub3BlbkVsZW1lbnRzLml0ZW1zWzBdLCB0b2tlbi5hdHRycyk7XG4gICAgfVxufVxuZnVuY3Rpb24gYm9keVN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKSB7XG4gICAgY29uc3QgYm9keUVsZW1lbnQgPSBwLm9wZW5FbGVtZW50cy50cnlQZWVrUHJvcGVybHlOZXN0ZWRCb2R5RWxlbWVudCgpO1xuICAgIGlmIChib2R5RWxlbWVudCAmJiBwLm9wZW5FbGVtZW50cy50bXBsQ291bnQgPT09IDApIHtcbiAgICAgICAgcC5mcmFtZXNldE9rID0gZmFsc2U7XG4gICAgICAgIHAudHJlZUFkYXB0ZXIuYWRvcHRBdHRyaWJ1dGVzKGJvZHlFbGVtZW50LCB0b2tlbi5hdHRycyk7XG4gICAgfVxufVxuZnVuY3Rpb24gZnJhbWVzZXRTdGFydFRhZ0luQm9keShwLCB0b2tlbikge1xuICAgIGNvbnN0IGJvZHlFbGVtZW50ID0gcC5vcGVuRWxlbWVudHMudHJ5UGVla1Byb3Blcmx5TmVzdGVkQm9keUVsZW1lbnQoKTtcbiAgICBpZiAocC5mcmFtZXNldE9rICYmIGJvZHlFbGVtZW50KSB7XG4gICAgICAgIHAudHJlZUFkYXB0ZXIuZGV0YWNoTm9kZShib2R5RWxlbWVudCk7XG4gICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcEFsbFVwVG9IdG1sRWxlbWVudCgpO1xuICAgICAgICBwLl9pbnNlcnRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTtcbiAgICAgICAgcC5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9GUkFNRVNFVDtcbiAgICB9XG59XG5mdW5jdGlvbiBhZGRyZXNzU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pIHtcbiAgICBpZiAocC5vcGVuRWxlbWVudHMuaGFzSW5CdXR0b25TY29wZSgkLlApKSB7XG4gICAgICAgIHAuX2Nsb3NlUEVsZW1lbnQoKTtcbiAgICB9XG4gICAgcC5faW5zZXJ0RWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7XG59XG5mdW5jdGlvbiBudW1iZXJlZEhlYWRlclN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKSB7XG4gICAgaWYgKHAub3BlbkVsZW1lbnRzLmhhc0luQnV0dG9uU2NvcGUoJC5QKSkge1xuICAgICAgICBwLl9jbG9zZVBFbGVtZW50KCk7XG4gICAgfVxuICAgIGlmIChOVU1CRVJFRF9IRUFERVJTLmhhcyhwLm9wZW5FbGVtZW50cy5jdXJyZW50VGFnSWQpKSB7XG4gICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcCgpO1xuICAgIH1cbiAgICBwLl9pbnNlcnRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTtcbn1cbmZ1bmN0aW9uIHByZVN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKSB7XG4gICAgaWYgKHAub3BlbkVsZW1lbnRzLmhhc0luQnV0dG9uU2NvcGUoJC5QKSkge1xuICAgICAgICBwLl9jbG9zZVBFbGVtZW50KCk7XG4gICAgfVxuICAgIHAuX2luc2VydEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpO1xuICAgIC8vTk9URTogSWYgdGhlIG5leHQgdG9rZW4gaXMgYSBVKzAwMEEgTElORSBGRUVEIChMRikgY2hhcmFjdGVyIHRva2VuLCB0aGVuIGlnbm9yZSB0aGF0IHRva2VuIGFuZCBtb3ZlXG4gICAgLy9vbiB0byB0aGUgbmV4dCBvbmUuIChOZXdsaW5lcyBhdCB0aGUgc3RhcnQgb2YgcHJlIGJsb2NrcyBhcmUgaWdub3JlZCBhcyBhbiBhdXRob3JpbmcgY29udmVuaWVuY2UuKVxuICAgIHAuc2tpcE5leHROZXdMaW5lID0gdHJ1ZTtcbiAgICBwLmZyYW1lc2V0T2sgPSBmYWxzZTtcbn1cbmZ1bmN0aW9uIGZvcm1TdGFydFRhZ0luQm9keShwLCB0b2tlbikge1xuICAgIGNvbnN0IGluVGVtcGxhdGUgPSBwLm9wZW5FbGVtZW50cy50bXBsQ291bnQgPiAwO1xuICAgIGlmICghcC5mb3JtRWxlbWVudCB8fCBpblRlbXBsYXRlKSB7XG4gICAgICAgIGlmIChwLm9wZW5FbGVtZW50cy5oYXNJbkJ1dHRvblNjb3BlKCQuUCkpIHtcbiAgICAgICAgICAgIHAuX2Nsb3NlUEVsZW1lbnQoKTtcbiAgICAgICAgfVxuICAgICAgICBwLl9pbnNlcnRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTtcbiAgICAgICAgaWYgKCFpblRlbXBsYXRlKSB7XG4gICAgICAgICAgICBwLmZvcm1FbGVtZW50ID0gcC5vcGVuRWxlbWVudHMuY3VycmVudDtcbiAgICAgICAgfVxuICAgIH1cbn1cbmZ1bmN0aW9uIGxpc3RJdGVtU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pIHtcbiAgICBwLmZyYW1lc2V0T2sgPSBmYWxzZTtcbiAgICBjb25zdCB0biA9IHRva2VuLnRhZ0lEO1xuICAgIGZvciAobGV0IGkgPSBwLm9wZW5FbGVtZW50cy5zdGFja1RvcDsgaSA+PSAwOyBpLS0pIHtcbiAgICAgICAgY29uc3QgZWxlbWVudElkID0gcC5vcGVuRWxlbWVudHMudGFnSURzW2ldO1xuICAgICAgICBpZiAoKHRuID09PSAkLkxJICYmIGVsZW1lbnRJZCA9PT0gJC5MSSkgfHxcbiAgICAgICAgICAgICgodG4gPT09ICQuREQgfHwgdG4gPT09ICQuRFQpICYmIChlbGVtZW50SWQgPT09ICQuREQgfHwgZWxlbWVudElkID09PSAkLkRUKSkpIHtcbiAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLmdlbmVyYXRlSW1wbGllZEVuZFRhZ3NXaXRoRXhjbHVzaW9uKGVsZW1lbnRJZCk7XG4gICAgICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3BVbnRpbFRhZ05hbWVQb3BwZWQoZWxlbWVudElkKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGlmIChlbGVtZW50SWQgIT09ICQuQUREUkVTUyAmJlxuICAgICAgICAgICAgZWxlbWVudElkICE9PSAkLkRJViAmJlxuICAgICAgICAgICAgZWxlbWVudElkICE9PSAkLlAgJiZcbiAgICAgICAgICAgIHAuX2lzU3BlY2lhbEVsZW1lbnQocC5vcGVuRWxlbWVudHMuaXRlbXNbaV0sIGVsZW1lbnRJZCkpIHtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgfVxuICAgIGlmIChwLm9wZW5FbGVtZW50cy5oYXNJbkJ1dHRvblNjb3BlKCQuUCkpIHtcbiAgICAgICAgcC5fY2xvc2VQRWxlbWVudCgpO1xuICAgIH1cbiAgICBwLl9pbnNlcnRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTtcbn1cbmZ1bmN0aW9uIHBsYWludGV4dFN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKSB7XG4gICAgaWYgKHAub3BlbkVsZW1lbnRzLmhhc0luQnV0dG9uU2NvcGUoJC5QKSkge1xuICAgICAgICBwLl9jbG9zZVBFbGVtZW50KCk7XG4gICAgfVxuICAgIHAuX2luc2VydEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpO1xuICAgIHAudG9rZW5pemVyLnN0YXRlID0gVG9rZW5pemVyTW9kZS5QTEFJTlRFWFQ7XG59XG5mdW5jdGlvbiBidXR0b25TdGFydFRhZ0luQm9keShwLCB0b2tlbikge1xuICAgIGlmIChwLm9wZW5FbGVtZW50cy5oYXNJblNjb3BlKCQuQlVUVE9OKSkge1xuICAgICAgICBwLm9wZW5FbGVtZW50cy5nZW5lcmF0ZUltcGxpZWRFbmRUYWdzKCk7XG4gICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcFVudGlsVGFnTmFtZVBvcHBlZCgkLkJVVFRPTik7XG4gICAgfVxuICAgIHAuX3JlY29uc3RydWN0QWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzKCk7XG4gICAgcC5faW5zZXJ0RWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7XG4gICAgcC5mcmFtZXNldE9rID0gZmFsc2U7XG59XG5mdW5jdGlvbiBhU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pIHtcbiAgICBjb25zdCBhY3RpdmVFbGVtZW50RW50cnkgPSBwLmFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cy5nZXRFbGVtZW50RW50cnlJblNjb3BlV2l0aFRhZ05hbWUoVE4uQSk7XG4gICAgaWYgKGFjdGl2ZUVsZW1lbnRFbnRyeSkge1xuICAgICAgICBjYWxsQWRvcHRpb25BZ2VuY3kocCwgdG9rZW4pO1xuICAgICAgICBwLm9wZW5FbGVtZW50cy5yZW1vdmUoYWN0aXZlRWxlbWVudEVudHJ5LmVsZW1lbnQpO1xuICAgICAgICBwLmFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cy5yZW1vdmVFbnRyeShhY3RpdmVFbGVtZW50RW50cnkpO1xuICAgIH1cbiAgICBwLl9yZWNvbnN0cnVjdEFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cygpO1xuICAgIHAuX2luc2VydEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpO1xuICAgIHAuYWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzLnB1c2hFbGVtZW50KHAub3BlbkVsZW1lbnRzLmN1cnJlbnQsIHRva2VuKTtcbn1cbmZ1bmN0aW9uIGJTdGFydFRhZ0luQm9keShwLCB0b2tlbikge1xuICAgIHAuX3JlY29uc3RydWN0QWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzKCk7XG4gICAgcC5faW5zZXJ0RWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7XG4gICAgcC5hY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMucHVzaEVsZW1lbnQocC5vcGVuRWxlbWVudHMuY3VycmVudCwgdG9rZW4pO1xufVxuZnVuY3Rpb24gbm9iclN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKSB7XG4gICAgcC5fcmVjb25zdHJ1Y3RBY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMoKTtcbiAgICBpZiAocC5vcGVuRWxlbWVudHMuaGFzSW5TY29wZSgkLk5PQlIpKSB7XG4gICAgICAgIGNhbGxBZG9wdGlvbkFnZW5jeShwLCB0b2tlbik7XG4gICAgICAgIHAuX3JlY29uc3RydWN0QWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzKCk7XG4gICAgfVxuICAgIHAuX2luc2VydEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpO1xuICAgIHAuYWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzLnB1c2hFbGVtZW50KHAub3BlbkVsZW1lbnRzLmN1cnJlbnQsIHRva2VuKTtcbn1cbmZ1bmN0aW9uIGFwcGxldFN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKSB7XG4gICAgcC5fcmVjb25zdHJ1Y3RBY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMoKTtcbiAgICBwLl9pbnNlcnRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTtcbiAgICBwLmFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cy5pbnNlcnRNYXJrZXIoKTtcbiAgICBwLmZyYW1lc2V0T2sgPSBmYWxzZTtcbn1cbmZ1bmN0aW9uIHRhYmxlU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pIHtcbiAgICBpZiAocC50cmVlQWRhcHRlci5nZXREb2N1bWVudE1vZGUocC5kb2N1bWVudCkgIT09IERPQ1VNRU5UX01PREUuUVVJUktTICYmIHAub3BlbkVsZW1lbnRzLmhhc0luQnV0dG9uU2NvcGUoJC5QKSkge1xuICAgICAgICBwLl9jbG9zZVBFbGVtZW50KCk7XG4gICAgfVxuICAgIHAuX2luc2VydEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpO1xuICAgIHAuZnJhbWVzZXRPayA9IGZhbHNlO1xuICAgIHAuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuSU5fVEFCTEU7XG59XG5mdW5jdGlvbiBhcmVhU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pIHtcbiAgICBwLl9yZWNvbnN0cnVjdEFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cygpO1xuICAgIHAuX2FwcGVuZEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpO1xuICAgIHAuZnJhbWVzZXRPayA9IGZhbHNlO1xuICAgIHRva2VuLmFja1NlbGZDbG9zaW5nID0gdHJ1ZTtcbn1cbmZ1bmN0aW9uIGlzSGlkZGVuSW5wdXQodG9rZW4pIHtcbiAgICBjb25zdCBpbnB1dFR5cGUgPSBnZXRUb2tlbkF0dHIodG9rZW4sIEFUVFJTLlRZUEUpO1xuICAgIHJldHVybiBpbnB1dFR5cGUgIT0gbnVsbCAmJiBpbnB1dFR5cGUudG9Mb3dlckNhc2UoKSA9PT0gSElEREVOX0lOUFVUX1RZUEU7XG59XG5mdW5jdGlvbiBpbnB1dFN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKSB7XG4gICAgcC5fcmVjb25zdHJ1Y3RBY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMoKTtcbiAgICBwLl9hcHBlbmRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTtcbiAgICBpZiAoIWlzSGlkZGVuSW5wdXQodG9rZW4pKSB7XG4gICAgICAgIHAuZnJhbWVzZXRPayA9IGZhbHNlO1xuICAgIH1cbiAgICB0b2tlbi5hY2tTZWxmQ2xvc2luZyA9IHRydWU7XG59XG5mdW5jdGlvbiBwYXJhbVN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKSB7XG4gICAgcC5fYXBwZW5kRWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7XG4gICAgdG9rZW4uYWNrU2VsZkNsb3NpbmcgPSB0cnVlO1xufVxuZnVuY3Rpb24gaHJTdGFydFRhZ0luQm9keShwLCB0b2tlbikge1xuICAgIGlmIChwLm9wZW5FbGVtZW50cy5oYXNJbkJ1dHRvblNjb3BlKCQuUCkpIHtcbiAgICAgICAgcC5fY2xvc2VQRWxlbWVudCgpO1xuICAgIH1cbiAgICBwLl9hcHBlbmRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTtcbiAgICBwLmZyYW1lc2V0T2sgPSBmYWxzZTtcbiAgICB0b2tlbi5hY2tTZWxmQ2xvc2luZyA9IHRydWU7XG59XG5mdW5jdGlvbiBpbWFnZVN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKSB7XG4gICAgdG9rZW4udGFnTmFtZSA9IFROLklNRztcbiAgICB0b2tlbi50YWdJRCA9ICQuSU1HO1xuICAgIGFyZWFTdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG59XG5mdW5jdGlvbiB0ZXh0YXJlYVN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKSB7XG4gICAgcC5faW5zZXJ0RWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7XG4gICAgLy9OT1RFOiBJZiB0aGUgbmV4dCB0b2tlbiBpcyBhIFUrMDAwQSBMSU5FIEZFRUQgKExGKSBjaGFyYWN0ZXIgdG9rZW4sIHRoZW4gaWdub3JlIHRoYXQgdG9rZW4gYW5kIG1vdmVcbiAgICAvL29uIHRvIHRoZSBuZXh0IG9uZS4gKE5ld2xpbmVzIGF0IHRoZSBzdGFydCBvZiB0ZXh0YXJlYSBlbGVtZW50cyBhcmUgaWdub3JlZCBhcyBhbiBhdXRob3JpbmcgY29udmVuaWVuY2UuKVxuICAgIHAuc2tpcE5leHROZXdMaW5lID0gdHJ1ZTtcbiAgICBwLnRva2VuaXplci5zdGF0ZSA9IFRva2VuaXplck1vZGUuUkNEQVRBO1xuICAgIHAub3JpZ2luYWxJbnNlcnRpb25Nb2RlID0gcC5pbnNlcnRpb25Nb2RlO1xuICAgIHAuZnJhbWVzZXRPayA9IGZhbHNlO1xuICAgIHAuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuVEVYVDtcbn1cbmZ1bmN0aW9uIHhtcFN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKSB7XG4gICAgaWYgKHAub3BlbkVsZW1lbnRzLmhhc0luQnV0dG9uU2NvcGUoJC5QKSkge1xuICAgICAgICBwLl9jbG9zZVBFbGVtZW50KCk7XG4gICAgfVxuICAgIHAuX3JlY29uc3RydWN0QWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzKCk7XG4gICAgcC5mcmFtZXNldE9rID0gZmFsc2U7XG4gICAgcC5fc3dpdGNoVG9UZXh0UGFyc2luZyh0b2tlbiwgVG9rZW5pemVyTW9kZS5SQVdURVhUKTtcbn1cbmZ1bmN0aW9uIGlmcmFtZVN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKSB7XG4gICAgcC5mcmFtZXNldE9rID0gZmFsc2U7XG4gICAgcC5fc3dpdGNoVG9UZXh0UGFyc2luZyh0b2tlbiwgVG9rZW5pemVyTW9kZS5SQVdURVhUKTtcbn1cbi8vTk9URTogaGVyZSB3ZSBhc3N1bWUgdGhhdCB3ZSBhbHdheXMgYWN0IGFzIGEgdXNlciBhZ2VudCB3aXRoIGVuYWJsZWQgcGx1Z2lucy9mcmFtZXMsIHNvIHdlIHBhcnNlXG4vLzxub2VtYmVkPi88bm9mcmFtZXM+IGFzIHJhd3RleHQuXG5mdW5jdGlvbiByYXdUZXh0U3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pIHtcbiAgICBwLl9zd2l0Y2hUb1RleHRQYXJzaW5nKHRva2VuLCBUb2tlbml6ZXJNb2RlLlJBV1RFWFQpO1xufVxuZnVuY3Rpb24gc2VsZWN0U3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pIHtcbiAgICBwLl9yZWNvbnN0cnVjdEFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cygpO1xuICAgIHAuX2luc2VydEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpO1xuICAgIHAuZnJhbWVzZXRPayA9IGZhbHNlO1xuICAgIHAuaW5zZXJ0aW9uTW9kZSA9XG4gICAgICAgIHAuaW5zZXJ0aW9uTW9kZSA9PT0gSW5zZXJ0aW9uTW9kZS5JTl9UQUJMRSB8fFxuICAgICAgICAgICAgcC5pbnNlcnRpb25Nb2RlID09PSBJbnNlcnRpb25Nb2RlLklOX0NBUFRJT04gfHxcbiAgICAgICAgICAgIHAuaW5zZXJ0aW9uTW9kZSA9PT0gSW5zZXJ0aW9uTW9kZS5JTl9UQUJMRV9CT0RZIHx8XG4gICAgICAgICAgICBwLmluc2VydGlvbk1vZGUgPT09IEluc2VydGlvbk1vZGUuSU5fUk9XIHx8XG4gICAgICAgICAgICBwLmluc2VydGlvbk1vZGUgPT09IEluc2VydGlvbk1vZGUuSU5fQ0VMTFxuICAgICAgICAgICAgPyBJbnNlcnRpb25Nb2RlLklOX1NFTEVDVF9JTl9UQUJMRVxuICAgICAgICAgICAgOiBJbnNlcnRpb25Nb2RlLklOX1NFTEVDVDtcbn1cbmZ1bmN0aW9uIG9wdGdyb3VwU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pIHtcbiAgICBpZiAocC5vcGVuRWxlbWVudHMuY3VycmVudFRhZ0lkID09PSAkLk9QVElPTikge1xuICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3AoKTtcbiAgICB9XG4gICAgcC5fcmVjb25zdHJ1Y3RBY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMoKTtcbiAgICBwLl9pbnNlcnRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTtcbn1cbmZ1bmN0aW9uIHJiU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pIHtcbiAgICBpZiAocC5vcGVuRWxlbWVudHMuaGFzSW5TY29wZSgkLlJVQlkpKSB7XG4gICAgICAgIHAub3BlbkVsZW1lbnRzLmdlbmVyYXRlSW1wbGllZEVuZFRhZ3MoKTtcbiAgICB9XG4gICAgcC5faW5zZXJ0RWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7XG59XG5mdW5jdGlvbiBydFN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKSB7XG4gICAgaWYgKHAub3BlbkVsZW1lbnRzLmhhc0luU2NvcGUoJC5SVUJZKSkge1xuICAgICAgICBwLm9wZW5FbGVtZW50cy5nZW5lcmF0ZUltcGxpZWRFbmRUYWdzV2l0aEV4Y2x1c2lvbigkLlJUQyk7XG4gICAgfVxuICAgIHAuX2luc2VydEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpO1xufVxuZnVuY3Rpb24gbWF0aFN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKSB7XG4gICAgcC5fcmVjb25zdHJ1Y3RBY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMoKTtcbiAgICBmb3JlaWduQ29udGVudC5hZGp1c3RUb2tlbk1hdGhNTEF0dHJzKHRva2VuKTtcbiAgICBmb3JlaWduQ29udGVudC5hZGp1c3RUb2tlblhNTEF0dHJzKHRva2VuKTtcbiAgICBpZiAodG9rZW4uc2VsZkNsb3NpbmcpIHtcbiAgICAgICAgcC5fYXBwZW5kRWxlbWVudCh0b2tlbiwgTlMuTUFUSE1MKTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIHAuX2luc2VydEVsZW1lbnQodG9rZW4sIE5TLk1BVEhNTCk7XG4gICAgfVxuICAgIHRva2VuLmFja1NlbGZDbG9zaW5nID0gdHJ1ZTtcbn1cbmZ1bmN0aW9uIHN2Z1N0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKSB7XG4gICAgcC5fcmVjb25zdHJ1Y3RBY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMoKTtcbiAgICBmb3JlaWduQ29udGVudC5hZGp1c3RUb2tlblNWR0F0dHJzKHRva2VuKTtcbiAgICBmb3JlaWduQ29udGVudC5hZGp1c3RUb2tlblhNTEF0dHJzKHRva2VuKTtcbiAgICBpZiAodG9rZW4uc2VsZkNsb3NpbmcpIHtcbiAgICAgICAgcC5fYXBwZW5kRWxlbWVudCh0b2tlbiwgTlMuU1ZHKTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIHAuX2luc2VydEVsZW1lbnQodG9rZW4sIE5TLlNWRyk7XG4gICAgfVxuICAgIHRva2VuLmFja1NlbGZDbG9zaW5nID0gdHJ1ZTtcbn1cbmZ1bmN0aW9uIGdlbmVyaWNTdGFydFRhZ0luQm9keShwLCB0b2tlbikge1xuICAgIHAuX3JlY29uc3RydWN0QWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzKCk7XG4gICAgcC5faW5zZXJ0RWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7XG59XG5mdW5jdGlvbiBzdGFydFRhZ0luQm9keShwLCB0b2tlbikge1xuICAgIHN3aXRjaCAodG9rZW4udGFnSUQpIHtcbiAgICAgICAgY2FzZSAkLkk6XG4gICAgICAgIGNhc2UgJC5TOlxuICAgICAgICBjYXNlICQuQjpcbiAgICAgICAgY2FzZSAkLlU6XG4gICAgICAgIGNhc2UgJC5FTTpcbiAgICAgICAgY2FzZSAkLlRUOlxuICAgICAgICBjYXNlICQuQklHOlxuICAgICAgICBjYXNlICQuQ09ERTpcbiAgICAgICAgY2FzZSAkLkZPTlQ6XG4gICAgICAgIGNhc2UgJC5TTUFMTDpcbiAgICAgICAgY2FzZSAkLlNUUklLRTpcbiAgICAgICAgY2FzZSAkLlNUUk9ORzoge1xuICAgICAgICAgICAgYlN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5BOiB7XG4gICAgICAgICAgICBhU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLkgxOlxuICAgICAgICBjYXNlICQuSDI6XG4gICAgICAgIGNhc2UgJC5IMzpcbiAgICAgICAgY2FzZSAkLkg0OlxuICAgICAgICBjYXNlICQuSDU6XG4gICAgICAgIGNhc2UgJC5INjoge1xuICAgICAgICAgICAgbnVtYmVyZWRIZWFkZXJTdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuUDpcbiAgICAgICAgY2FzZSAkLkRMOlxuICAgICAgICBjYXNlICQuT0w6XG4gICAgICAgIGNhc2UgJC5VTDpcbiAgICAgICAgY2FzZSAkLkRJVjpcbiAgICAgICAgY2FzZSAkLkRJUjpcbiAgICAgICAgY2FzZSAkLk5BVjpcbiAgICAgICAgY2FzZSAkLk1BSU46XG4gICAgICAgIGNhc2UgJC5NRU5VOlxuICAgICAgICBjYXNlICQuQVNJREU6XG4gICAgICAgIGNhc2UgJC5DRU5URVI6XG4gICAgICAgIGNhc2UgJC5GSUdVUkU6XG4gICAgICAgIGNhc2UgJC5GT09URVI6XG4gICAgICAgIGNhc2UgJC5IRUFERVI6XG4gICAgICAgIGNhc2UgJC5IR1JPVVA6XG4gICAgICAgIGNhc2UgJC5ESUFMT0c6XG4gICAgICAgIGNhc2UgJC5ERVRBSUxTOlxuICAgICAgICBjYXNlICQuQUREUkVTUzpcbiAgICAgICAgY2FzZSAkLkFSVElDTEU6XG4gICAgICAgIGNhc2UgJC5TRUFSQ0g6XG4gICAgICAgIGNhc2UgJC5TRUNUSU9OOlxuICAgICAgICBjYXNlICQuU1VNTUFSWTpcbiAgICAgICAgY2FzZSAkLkZJRUxEU0VUOlxuICAgICAgICBjYXNlICQuQkxPQ0tRVU9URTpcbiAgICAgICAgY2FzZSAkLkZJR0NBUFRJT046IHtcbiAgICAgICAgICAgIGFkZHJlc3NTdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuTEk6XG4gICAgICAgIGNhc2UgJC5ERDpcbiAgICAgICAgY2FzZSAkLkRUOiB7XG4gICAgICAgICAgICBsaXN0SXRlbVN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5CUjpcbiAgICAgICAgY2FzZSAkLklNRzpcbiAgICAgICAgY2FzZSAkLldCUjpcbiAgICAgICAgY2FzZSAkLkFSRUE6XG4gICAgICAgIGNhc2UgJC5FTUJFRDpcbiAgICAgICAgY2FzZSAkLktFWUdFTjoge1xuICAgICAgICAgICAgYXJlYVN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5IUjoge1xuICAgICAgICAgICAgaHJTdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuUkI6XG4gICAgICAgIGNhc2UgJC5SVEM6IHtcbiAgICAgICAgICAgIHJiU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLlJUOlxuICAgICAgICBjYXNlICQuUlA6IHtcbiAgICAgICAgICAgIHJ0U3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLlBSRTpcbiAgICAgICAgY2FzZSAkLkxJU1RJTkc6IHtcbiAgICAgICAgICAgIHByZVN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5YTVA6IHtcbiAgICAgICAgICAgIHhtcFN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5TVkc6IHtcbiAgICAgICAgICAgIHN2Z1N0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5IVE1MOiB7XG4gICAgICAgICAgICBodG1sU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLkJBU0U6XG4gICAgICAgIGNhc2UgJC5MSU5LOlxuICAgICAgICBjYXNlICQuTUVUQTpcbiAgICAgICAgY2FzZSAkLlNUWUxFOlxuICAgICAgICBjYXNlICQuVElUTEU6XG4gICAgICAgIGNhc2UgJC5TQ1JJUFQ6XG4gICAgICAgIGNhc2UgJC5CR1NPVU5EOlxuICAgICAgICBjYXNlICQuQkFTRUZPTlQ6XG4gICAgICAgIGNhc2UgJC5URU1QTEFURToge1xuICAgICAgICAgICAgc3RhcnRUYWdJbkhlYWQocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLkJPRFk6IHtcbiAgICAgICAgICAgIGJvZHlTdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuRk9STToge1xuICAgICAgICAgICAgZm9ybVN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5OT0JSOiB7XG4gICAgICAgICAgICBub2JyU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLk1BVEg6IHtcbiAgICAgICAgICAgIG1hdGhTdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuVEFCTEU6IHtcbiAgICAgICAgICAgIHRhYmxlU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLklOUFVUOiB7XG4gICAgICAgICAgICBpbnB1dFN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5QQVJBTTpcbiAgICAgICAgY2FzZSAkLlRSQUNLOlxuICAgICAgICBjYXNlICQuU09VUkNFOiB7XG4gICAgICAgICAgICBwYXJhbVN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5JTUFHRToge1xuICAgICAgICAgICAgaW1hZ2VTdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuQlVUVE9OOiB7XG4gICAgICAgICAgICBidXR0b25TdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuQVBQTEVUOlxuICAgICAgICBjYXNlICQuT0JKRUNUOlxuICAgICAgICBjYXNlICQuTUFSUVVFRToge1xuICAgICAgICAgICAgYXBwbGV0U3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLklGUkFNRToge1xuICAgICAgICAgICAgaWZyYW1lU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLlNFTEVDVDoge1xuICAgICAgICAgICAgc2VsZWN0U3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLk9QVElPTjpcbiAgICAgICAgY2FzZSAkLk9QVEdST1VQOiB7XG4gICAgICAgICAgICBvcHRncm91cFN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5OT0VNQkVEOlxuICAgICAgICBjYXNlICQuTk9GUkFNRVM6IHtcbiAgICAgICAgICAgIHJhd1RleHRTdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuRlJBTUVTRVQ6IHtcbiAgICAgICAgICAgIGZyYW1lc2V0U3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLlRFWFRBUkVBOiB7XG4gICAgICAgICAgICB0ZXh0YXJlYVN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5OT1NDUklQVDoge1xuICAgICAgICAgICAgaWYgKHAub3B0aW9ucy5zY3JpcHRpbmdFbmFibGVkKSB7XG4gICAgICAgICAgICAgICAgcmF3VGV4dFN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIGdlbmVyaWNTdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuUExBSU5URVhUOiB7XG4gICAgICAgICAgICBwbGFpbnRleHRTdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuQ09MOlxuICAgICAgICBjYXNlICQuVEg6XG4gICAgICAgIGNhc2UgJC5URDpcbiAgICAgICAgY2FzZSAkLlRSOlxuICAgICAgICBjYXNlICQuSEVBRDpcbiAgICAgICAgY2FzZSAkLkZSQU1FOlxuICAgICAgICBjYXNlICQuVEJPRFk6XG4gICAgICAgIGNhc2UgJC5URk9PVDpcbiAgICAgICAgY2FzZSAkLlRIRUFEOlxuICAgICAgICBjYXNlICQuQ0FQVElPTjpcbiAgICAgICAgY2FzZSAkLkNPTEdST1VQOiB7XG4gICAgICAgICAgICAvLyBJZ25vcmUgdG9rZW5cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgIGdlbmVyaWNTdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgICAgIH1cbiAgICB9XG59XG5mdW5jdGlvbiBib2R5RW5kVGFnSW5Cb2R5KHAsIHRva2VuKSB7XG4gICAgaWYgKHAub3BlbkVsZW1lbnRzLmhhc0luU2NvcGUoJC5CT0RZKSkge1xuICAgICAgICBwLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLkFGVEVSX0JPRFk7XG4gICAgICAgIC8vTk9URTogPGJvZHk+IGlzIG5ldmVyIHBvcHBlZCBmcm9tIHRoZSBzdGFjaywgc28gd2UgbmVlZCB0byB1cGRhdGVkXG4gICAgICAgIC8vdGhlIGVuZCBsb2NhdGlvbiBleHBsaWNpdGx5LlxuICAgICAgICBpZiAocC5vcHRpb25zLnNvdXJjZUNvZGVMb2NhdGlvbkluZm8pIHtcbiAgICAgICAgICAgIGNvbnN0IGJvZHlFbGVtZW50ID0gcC5vcGVuRWxlbWVudHMudHJ5UGVla1Byb3Blcmx5TmVzdGVkQm9keUVsZW1lbnQoKTtcbiAgICAgICAgICAgIGlmIChib2R5RWxlbWVudCkge1xuICAgICAgICAgICAgICAgIHAuX3NldEVuZExvY2F0aW9uKGJvZHlFbGVtZW50LCB0b2tlbik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5mdW5jdGlvbiBodG1sRW5kVGFnSW5Cb2R5KHAsIHRva2VuKSB7XG4gICAgaWYgKHAub3BlbkVsZW1lbnRzLmhhc0luU2NvcGUoJC5CT0RZKSkge1xuICAgICAgICBwLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLkFGVEVSX0JPRFk7XG4gICAgICAgIGVuZFRhZ0FmdGVyQm9keShwLCB0b2tlbik7XG4gICAgfVxufVxuZnVuY3Rpb24gYWRkcmVzc0VuZFRhZ0luQm9keShwLCB0b2tlbikge1xuICAgIGNvbnN0IHRuID0gdG9rZW4udGFnSUQ7XG4gICAgaWYgKHAub3BlbkVsZW1lbnRzLmhhc0luU2NvcGUodG4pKSB7XG4gICAgICAgIHAub3BlbkVsZW1lbnRzLmdlbmVyYXRlSW1wbGllZEVuZFRhZ3MoKTtcbiAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wVW50aWxUYWdOYW1lUG9wcGVkKHRuKTtcbiAgICB9XG59XG5mdW5jdGlvbiBmb3JtRW5kVGFnSW5Cb2R5KHApIHtcbiAgICBjb25zdCBpblRlbXBsYXRlID0gcC5vcGVuRWxlbWVudHMudG1wbENvdW50ID4gMDtcbiAgICBjb25zdCB7IGZvcm1FbGVtZW50IH0gPSBwO1xuICAgIGlmICghaW5UZW1wbGF0ZSkge1xuICAgICAgICBwLmZvcm1FbGVtZW50ID0gbnVsbDtcbiAgICB9XG4gICAgaWYgKChmb3JtRWxlbWVudCB8fCBpblRlbXBsYXRlKSAmJiBwLm9wZW5FbGVtZW50cy5oYXNJblNjb3BlKCQuRk9STSkpIHtcbiAgICAgICAgcC5vcGVuRWxlbWVudHMuZ2VuZXJhdGVJbXBsaWVkRW5kVGFncygpO1xuICAgICAgICBpZiAoaW5UZW1wbGF0ZSkge1xuICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wVW50aWxUYWdOYW1lUG9wcGVkKCQuRk9STSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoZm9ybUVsZW1lbnQpIHtcbiAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLnJlbW92ZShmb3JtRWxlbWVudCk7XG4gICAgICAgIH1cbiAgICB9XG59XG5mdW5jdGlvbiBwRW5kVGFnSW5Cb2R5KHApIHtcbiAgICBpZiAoIXAub3BlbkVsZW1lbnRzLmhhc0luQnV0dG9uU2NvcGUoJC5QKSkge1xuICAgICAgICBwLl9pbnNlcnRGYWtlRWxlbWVudChUTi5QLCAkLlApO1xuICAgIH1cbiAgICBwLl9jbG9zZVBFbGVtZW50KCk7XG59XG5mdW5jdGlvbiBsaUVuZFRhZ0luQm9keShwKSB7XG4gICAgaWYgKHAub3BlbkVsZW1lbnRzLmhhc0luTGlzdEl0ZW1TY29wZSgkLkxJKSkge1xuICAgICAgICBwLm9wZW5FbGVtZW50cy5nZW5lcmF0ZUltcGxpZWRFbmRUYWdzV2l0aEV4Y2x1c2lvbigkLkxJKTtcbiAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wVW50aWxUYWdOYW1lUG9wcGVkKCQuTEkpO1xuICAgIH1cbn1cbmZ1bmN0aW9uIGRkRW5kVGFnSW5Cb2R5KHAsIHRva2VuKSB7XG4gICAgY29uc3QgdG4gPSB0b2tlbi50YWdJRDtcbiAgICBpZiAocC5vcGVuRWxlbWVudHMuaGFzSW5TY29wZSh0bikpIHtcbiAgICAgICAgcC5vcGVuRWxlbWVudHMuZ2VuZXJhdGVJbXBsaWVkRW5kVGFnc1dpdGhFeGNsdXNpb24odG4pO1xuICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3BVbnRpbFRhZ05hbWVQb3BwZWQodG4pO1xuICAgIH1cbn1cbmZ1bmN0aW9uIG51bWJlcmVkSGVhZGVyRW5kVGFnSW5Cb2R5KHApIHtcbiAgICBpZiAocC5vcGVuRWxlbWVudHMuaGFzTnVtYmVyZWRIZWFkZXJJblNjb3BlKCkpIHtcbiAgICAgICAgcC5vcGVuRWxlbWVudHMuZ2VuZXJhdGVJbXBsaWVkRW5kVGFncygpO1xuICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3BVbnRpbE51bWJlcmVkSGVhZGVyUG9wcGVkKCk7XG4gICAgfVxufVxuZnVuY3Rpb24gYXBwbGV0RW5kVGFnSW5Cb2R5KHAsIHRva2VuKSB7XG4gICAgY29uc3QgdG4gPSB0b2tlbi50YWdJRDtcbiAgICBpZiAocC5vcGVuRWxlbWVudHMuaGFzSW5TY29wZSh0bikpIHtcbiAgICAgICAgcC5vcGVuRWxlbWVudHMuZ2VuZXJhdGVJbXBsaWVkRW5kVGFncygpO1xuICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3BVbnRpbFRhZ05hbWVQb3BwZWQodG4pO1xuICAgICAgICBwLmFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cy5jbGVhclRvTGFzdE1hcmtlcigpO1xuICAgIH1cbn1cbmZ1bmN0aW9uIGJyRW5kVGFnSW5Cb2R5KHApIHtcbiAgICBwLl9yZWNvbnN0cnVjdEFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cygpO1xuICAgIHAuX2luc2VydEZha2VFbGVtZW50KFROLkJSLCAkLkJSKTtcbiAgICBwLm9wZW5FbGVtZW50cy5wb3AoKTtcbiAgICBwLmZyYW1lc2V0T2sgPSBmYWxzZTtcbn1cbmZ1bmN0aW9uIGdlbmVyaWNFbmRUYWdJbkJvZHkocCwgdG9rZW4pIHtcbiAgICBjb25zdCB0biA9IHRva2VuLnRhZ05hbWU7XG4gICAgY29uc3QgdGlkID0gdG9rZW4udGFnSUQ7XG4gICAgZm9yIChsZXQgaSA9IHAub3BlbkVsZW1lbnRzLnN0YWNrVG9wOyBpID4gMDsgaS0tKSB7XG4gICAgICAgIGNvbnN0IGVsZW1lbnQgPSBwLm9wZW5FbGVtZW50cy5pdGVtc1tpXTtcbiAgICAgICAgY29uc3QgZWxlbWVudElkID0gcC5vcGVuRWxlbWVudHMudGFnSURzW2ldO1xuICAgICAgICAvLyBDb21wYXJlIHRoZSB0YWcgbmFtZSBoZXJlLCBhcyB0aGUgdGFnIG1pZ2h0IG5vdCBiZSBhIGtub3duIHRhZyB3aXRoIGFuIElELlxuICAgICAgICBpZiAodGlkID09PSBlbGVtZW50SWQgJiYgKHRpZCAhPT0gJC5VTktOT1dOIHx8IHAudHJlZUFkYXB0ZXIuZ2V0VGFnTmFtZShlbGVtZW50KSA9PT0gdG4pKSB7XG4gICAgICAgICAgICBwLm9wZW5FbGVtZW50cy5nZW5lcmF0ZUltcGxpZWRFbmRUYWdzV2l0aEV4Y2x1c2lvbih0aWQpO1xuICAgICAgICAgICAgaWYgKHAub3BlbkVsZW1lbnRzLnN0YWNrVG9wID49IGkpXG4gICAgICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMuc2hvcnRlblRvTGVuZ3RoKGkpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHAuX2lzU3BlY2lhbEVsZW1lbnQoZWxlbWVudCwgZWxlbWVudElkKSkge1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICB9XG59XG5mdW5jdGlvbiBlbmRUYWdJbkJvZHkocCwgdG9rZW4pIHtcbiAgICBzd2l0Y2ggKHRva2VuLnRhZ0lEKSB7XG4gICAgICAgIGNhc2UgJC5BOlxuICAgICAgICBjYXNlICQuQjpcbiAgICAgICAgY2FzZSAkLkk6XG4gICAgICAgIGNhc2UgJC5TOlxuICAgICAgICBjYXNlICQuVTpcbiAgICAgICAgY2FzZSAkLkVNOlxuICAgICAgICBjYXNlICQuVFQ6XG4gICAgICAgIGNhc2UgJC5CSUc6XG4gICAgICAgIGNhc2UgJC5DT0RFOlxuICAgICAgICBjYXNlICQuRk9OVDpcbiAgICAgICAgY2FzZSAkLk5PQlI6XG4gICAgICAgIGNhc2UgJC5TTUFMTDpcbiAgICAgICAgY2FzZSAkLlNUUklLRTpcbiAgICAgICAgY2FzZSAkLlNUUk9ORzoge1xuICAgICAgICAgICAgY2FsbEFkb3B0aW9uQWdlbmN5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5QOiB7XG4gICAgICAgICAgICBwRW5kVGFnSW5Cb2R5KHApO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLkRMOlxuICAgICAgICBjYXNlICQuVUw6XG4gICAgICAgIGNhc2UgJC5PTDpcbiAgICAgICAgY2FzZSAkLkRJUjpcbiAgICAgICAgY2FzZSAkLkRJVjpcbiAgICAgICAgY2FzZSAkLk5BVjpcbiAgICAgICAgY2FzZSAkLlBSRTpcbiAgICAgICAgY2FzZSAkLk1BSU46XG4gICAgICAgIGNhc2UgJC5NRU5VOlxuICAgICAgICBjYXNlICQuQVNJREU6XG4gICAgICAgIGNhc2UgJC5CVVRUT046XG4gICAgICAgIGNhc2UgJC5DRU5URVI6XG4gICAgICAgIGNhc2UgJC5GSUdVUkU6XG4gICAgICAgIGNhc2UgJC5GT09URVI6XG4gICAgICAgIGNhc2UgJC5IRUFERVI6XG4gICAgICAgIGNhc2UgJC5IR1JPVVA6XG4gICAgICAgIGNhc2UgJC5ESUFMT0c6XG4gICAgICAgIGNhc2UgJC5BRERSRVNTOlxuICAgICAgICBjYXNlICQuQVJUSUNMRTpcbiAgICAgICAgY2FzZSAkLkRFVEFJTFM6XG4gICAgICAgIGNhc2UgJC5TRUFSQ0g6XG4gICAgICAgIGNhc2UgJC5TRUNUSU9OOlxuICAgICAgICBjYXNlICQuU1VNTUFSWTpcbiAgICAgICAgY2FzZSAkLkxJU1RJTkc6XG4gICAgICAgIGNhc2UgJC5GSUVMRFNFVDpcbiAgICAgICAgY2FzZSAkLkJMT0NLUVVPVEU6XG4gICAgICAgIGNhc2UgJC5GSUdDQVBUSU9OOiB7XG4gICAgICAgICAgICBhZGRyZXNzRW5kVGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5MSToge1xuICAgICAgICAgICAgbGlFbmRUYWdJbkJvZHkocCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuREQ6XG4gICAgICAgIGNhc2UgJC5EVDoge1xuICAgICAgICAgICAgZGRFbmRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLkgxOlxuICAgICAgICBjYXNlICQuSDI6XG4gICAgICAgIGNhc2UgJC5IMzpcbiAgICAgICAgY2FzZSAkLkg0OlxuICAgICAgICBjYXNlICQuSDU6XG4gICAgICAgIGNhc2UgJC5INjoge1xuICAgICAgICAgICAgbnVtYmVyZWRIZWFkZXJFbmRUYWdJbkJvZHkocCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuQlI6IHtcbiAgICAgICAgICAgIGJyRW5kVGFnSW5Cb2R5KHApO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLkJPRFk6IHtcbiAgICAgICAgICAgIGJvZHlFbmRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLkhUTUw6IHtcbiAgICAgICAgICAgIGh0bWxFbmRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLkZPUk06IHtcbiAgICAgICAgICAgIGZvcm1FbmRUYWdJbkJvZHkocCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuQVBQTEVUOlxuICAgICAgICBjYXNlICQuT0JKRUNUOlxuICAgICAgICBjYXNlICQuTUFSUVVFRToge1xuICAgICAgICAgICAgYXBwbGV0RW5kVGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5URU1QTEFURToge1xuICAgICAgICAgICAgdGVtcGxhdGVFbmRUYWdJbkhlYWQocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgZ2VuZXJpY0VuZFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgICAgIH1cbiAgICB9XG59XG5mdW5jdGlvbiBlb2ZJbkJvZHkocCwgdG9rZW4pIHtcbiAgICBpZiAocC50bXBsSW5zZXJ0aW9uTW9kZVN0YWNrLmxlbmd0aCA+IDApIHtcbiAgICAgICAgZW9mSW5UZW1wbGF0ZShwLCB0b2tlbik7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICBzdG9wUGFyc2luZyhwLCB0b2tlbik7XG4gICAgfVxufVxuLy8gVGhlIFwidGV4dFwiIGluc2VydGlvbiBtb2RlXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuZnVuY3Rpb24gZW5kVGFnSW5UZXh0KHAsIHRva2VuKSB7XG4gICAgdmFyIF9hO1xuICAgIGlmICh0b2tlbi50YWdJRCA9PT0gJC5TQ1JJUFQpIHtcbiAgICAgICAgKF9hID0gcC5zY3JpcHRIYW5kbGVyKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuY2FsbChwLCBwLm9wZW5FbGVtZW50cy5jdXJyZW50KTtcbiAgICB9XG4gICAgcC5vcGVuRWxlbWVudHMucG9wKCk7XG4gICAgcC5pbnNlcnRpb25Nb2RlID0gcC5vcmlnaW5hbEluc2VydGlvbk1vZGU7XG59XG5mdW5jdGlvbiBlb2ZJblRleHQocCwgdG9rZW4pIHtcbiAgICBwLl9lcnIodG9rZW4sIEVSUi5lb2ZJbkVsZW1lbnRUaGF0Q2FuQ29udGFpbk9ubHlUZXh0KTtcbiAgICBwLm9wZW5FbGVtZW50cy5wb3AoKTtcbiAgICBwLmluc2VydGlvbk1vZGUgPSBwLm9yaWdpbmFsSW5zZXJ0aW9uTW9kZTtcbiAgICBwLm9uRW9mKHRva2VuKTtcbn1cbi8vIFRoZSBcImluIHRhYmxlXCIgaW5zZXJ0aW9uIG1vZGVcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5mdW5jdGlvbiBjaGFyYWN0ZXJJblRhYmxlKHAsIHRva2VuKSB7XG4gICAgaWYgKFRBQkxFX1NUUlVDVFVSRV9UQUdTLmhhcyhwLm9wZW5FbGVtZW50cy5jdXJyZW50VGFnSWQpKSB7XG4gICAgICAgIHAucGVuZGluZ0NoYXJhY3RlclRva2Vucy5sZW5ndGggPSAwO1xuICAgICAgICBwLmhhc05vbldoaXRlc3BhY2VQZW5kaW5nQ2hhcmFjdGVyVG9rZW4gPSBmYWxzZTtcbiAgICAgICAgcC5vcmlnaW5hbEluc2VydGlvbk1vZGUgPSBwLmluc2VydGlvbk1vZGU7XG4gICAgICAgIHAuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuSU5fVEFCTEVfVEVYVDtcbiAgICAgICAgc3dpdGNoICh0b2tlbi50eXBlKSB7XG4gICAgICAgICAgICBjYXNlIFRva2VuVHlwZS5DSEFSQUNURVI6IHtcbiAgICAgICAgICAgICAgICBjaGFyYWN0ZXJJblRhYmxlVGV4dChwLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFRva2VuVHlwZS5XSElURVNQQUNFX0NIQVJBQ1RFUjoge1xuICAgICAgICAgICAgICAgIHdoaXRlc3BhY2VDaGFyYWN0ZXJJblRhYmxlVGV4dChwLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBJZ25vcmUgbnVsbFxuICAgICAgICB9XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICB0b2tlbkluVGFibGUocCwgdG9rZW4pO1xuICAgIH1cbn1cbmZ1bmN0aW9uIGNhcHRpb25TdGFydFRhZ0luVGFibGUocCwgdG9rZW4pIHtcbiAgICBwLm9wZW5FbGVtZW50cy5jbGVhckJhY2tUb1RhYmxlQ29udGV4dCgpO1xuICAgIHAuYWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzLmluc2VydE1hcmtlcigpO1xuICAgIHAuX2luc2VydEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpO1xuICAgIHAuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuSU5fQ0FQVElPTjtcbn1cbmZ1bmN0aW9uIGNvbGdyb3VwU3RhcnRUYWdJblRhYmxlKHAsIHRva2VuKSB7XG4gICAgcC5vcGVuRWxlbWVudHMuY2xlYXJCYWNrVG9UYWJsZUNvbnRleHQoKTtcbiAgICBwLl9pbnNlcnRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTtcbiAgICBwLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLklOX0NPTFVNTl9HUk9VUDtcbn1cbmZ1bmN0aW9uIGNvbFN0YXJ0VGFnSW5UYWJsZShwLCB0b2tlbikge1xuICAgIHAub3BlbkVsZW1lbnRzLmNsZWFyQmFja1RvVGFibGVDb250ZXh0KCk7XG4gICAgcC5faW5zZXJ0RmFrZUVsZW1lbnQoVE4uQ09MR1JPVVAsICQuQ09MR1JPVVApO1xuICAgIHAuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuSU5fQ09MVU1OX0dST1VQO1xuICAgIHN0YXJ0VGFnSW5Db2x1bW5Hcm91cChwLCB0b2tlbik7XG59XG5mdW5jdGlvbiB0Ym9keVN0YXJ0VGFnSW5UYWJsZShwLCB0b2tlbikge1xuICAgIHAub3BlbkVsZW1lbnRzLmNsZWFyQmFja1RvVGFibGVDb250ZXh0KCk7XG4gICAgcC5faW5zZXJ0RWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7XG4gICAgcC5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9UQUJMRV9CT0RZO1xufVxuZnVuY3Rpb24gdGRTdGFydFRhZ0luVGFibGUocCwgdG9rZW4pIHtcbiAgICBwLm9wZW5FbGVtZW50cy5jbGVhckJhY2tUb1RhYmxlQ29udGV4dCgpO1xuICAgIHAuX2luc2VydEZha2VFbGVtZW50KFROLlRCT0RZLCAkLlRCT0RZKTtcbiAgICBwLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLklOX1RBQkxFX0JPRFk7XG4gICAgc3RhcnRUYWdJblRhYmxlQm9keShwLCB0b2tlbik7XG59XG5mdW5jdGlvbiB0YWJsZVN0YXJ0VGFnSW5UYWJsZShwLCB0b2tlbikge1xuICAgIGlmIChwLm9wZW5FbGVtZW50cy5oYXNJblRhYmxlU2NvcGUoJC5UQUJMRSkpIHtcbiAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wVW50aWxUYWdOYW1lUG9wcGVkKCQuVEFCTEUpO1xuICAgICAgICBwLl9yZXNldEluc2VydGlvbk1vZGUoKTtcbiAgICAgICAgcC5fcHJvY2Vzc1N0YXJ0VGFnKHRva2VuKTtcbiAgICB9XG59XG5mdW5jdGlvbiBpbnB1dFN0YXJ0VGFnSW5UYWJsZShwLCB0b2tlbikge1xuICAgIGlmIChpc0hpZGRlbklucHV0KHRva2VuKSkge1xuICAgICAgICBwLl9hcHBlbmRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIHRva2VuSW5UYWJsZShwLCB0b2tlbik7XG4gICAgfVxuICAgIHRva2VuLmFja1NlbGZDbG9zaW5nID0gdHJ1ZTtcbn1cbmZ1bmN0aW9uIGZvcm1TdGFydFRhZ0luVGFibGUocCwgdG9rZW4pIHtcbiAgICBpZiAoIXAuZm9ybUVsZW1lbnQgJiYgcC5vcGVuRWxlbWVudHMudG1wbENvdW50ID09PSAwKSB7XG4gICAgICAgIHAuX2luc2VydEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpO1xuICAgICAgICBwLmZvcm1FbGVtZW50ID0gcC5vcGVuRWxlbWVudHMuY3VycmVudDtcbiAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wKCk7XG4gICAgfVxufVxuZnVuY3Rpb24gc3RhcnRUYWdJblRhYmxlKHAsIHRva2VuKSB7XG4gICAgc3dpdGNoICh0b2tlbi50YWdJRCkge1xuICAgICAgICBjYXNlICQuVEQ6XG4gICAgICAgIGNhc2UgJC5USDpcbiAgICAgICAgY2FzZSAkLlRSOiB7XG4gICAgICAgICAgICB0ZFN0YXJ0VGFnSW5UYWJsZShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuU1RZTEU6XG4gICAgICAgIGNhc2UgJC5TQ1JJUFQ6XG4gICAgICAgIGNhc2UgJC5URU1QTEFURToge1xuICAgICAgICAgICAgc3RhcnRUYWdJbkhlYWQocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLkNPTDoge1xuICAgICAgICAgICAgY29sU3RhcnRUYWdJblRhYmxlKHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5GT1JNOiB7XG4gICAgICAgICAgICBmb3JtU3RhcnRUYWdJblRhYmxlKHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5UQUJMRToge1xuICAgICAgICAgICAgdGFibGVTdGFydFRhZ0luVGFibGUocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLlRCT0RZOlxuICAgICAgICBjYXNlICQuVEZPT1Q6XG4gICAgICAgIGNhc2UgJC5USEVBRDoge1xuICAgICAgICAgICAgdGJvZHlTdGFydFRhZ0luVGFibGUocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLklOUFVUOiB7XG4gICAgICAgICAgICBpbnB1dFN0YXJ0VGFnSW5UYWJsZShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuQ0FQVElPTjoge1xuICAgICAgICAgICAgY2FwdGlvblN0YXJ0VGFnSW5UYWJsZShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuQ09MR1JPVVA6IHtcbiAgICAgICAgICAgIGNvbGdyb3VwU3RhcnRUYWdJblRhYmxlKHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgIHRva2VuSW5UYWJsZShwLCB0b2tlbik7XG4gICAgICAgIH1cbiAgICB9XG59XG5mdW5jdGlvbiBlbmRUYWdJblRhYmxlKHAsIHRva2VuKSB7XG4gICAgc3dpdGNoICh0b2tlbi50YWdJRCkge1xuICAgICAgICBjYXNlICQuVEFCTEU6IHtcbiAgICAgICAgICAgIGlmIChwLm9wZW5FbGVtZW50cy5oYXNJblRhYmxlU2NvcGUoJC5UQUJMRSkpIHtcbiAgICAgICAgICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3BVbnRpbFRhZ05hbWVQb3BwZWQoJC5UQUJMRSk7XG4gICAgICAgICAgICAgICAgcC5fcmVzZXRJbnNlcnRpb25Nb2RlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuVEVNUExBVEU6IHtcbiAgICAgICAgICAgIHRlbXBsYXRlRW5kVGFnSW5IZWFkKHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5CT0RZOlxuICAgICAgICBjYXNlICQuQ0FQVElPTjpcbiAgICAgICAgY2FzZSAkLkNPTDpcbiAgICAgICAgY2FzZSAkLkNPTEdST1VQOlxuICAgICAgICBjYXNlICQuSFRNTDpcbiAgICAgICAgY2FzZSAkLlRCT0RZOlxuICAgICAgICBjYXNlICQuVEQ6XG4gICAgICAgIGNhc2UgJC5URk9PVDpcbiAgICAgICAgY2FzZSAkLlRIOlxuICAgICAgICBjYXNlICQuVEhFQUQ6XG4gICAgICAgIGNhc2UgJC5UUjoge1xuICAgICAgICAgICAgLy8gSWdub3JlIHRva2VuXG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICB0b2tlbkluVGFibGUocCwgdG9rZW4pO1xuICAgICAgICB9XG4gICAgfVxufVxuZnVuY3Rpb24gdG9rZW5JblRhYmxlKHAsIHRva2VuKSB7XG4gICAgY29uc3Qgc2F2ZWRGb3N0ZXJQYXJlbnRpbmdTdGF0ZSA9IHAuZm9zdGVyUGFyZW50aW5nRW5hYmxlZDtcbiAgICBwLmZvc3RlclBhcmVudGluZ0VuYWJsZWQgPSB0cnVlO1xuICAgIC8vIFByb2Nlc3MgdG9rZW4gaW4gYEluIEJvZHlgIG1vZGVcbiAgICBtb2RlSW5Cb2R5KHAsIHRva2VuKTtcbiAgICBwLmZvc3RlclBhcmVudGluZ0VuYWJsZWQgPSBzYXZlZEZvc3RlclBhcmVudGluZ1N0YXRlO1xufVxuLy8gVGhlIFwiaW4gdGFibGUgdGV4dFwiIGluc2VydGlvbiBtb2RlXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuZnVuY3Rpb24gd2hpdGVzcGFjZUNoYXJhY3RlckluVGFibGVUZXh0KHAsIHRva2VuKSB7XG4gICAgcC5wZW5kaW5nQ2hhcmFjdGVyVG9rZW5zLnB1c2godG9rZW4pO1xufVxuZnVuY3Rpb24gY2hhcmFjdGVySW5UYWJsZVRleHQocCwgdG9rZW4pIHtcbiAgICBwLnBlbmRpbmdDaGFyYWN0ZXJUb2tlbnMucHVzaCh0b2tlbik7XG4gICAgcC5oYXNOb25XaGl0ZXNwYWNlUGVuZGluZ0NoYXJhY3RlclRva2VuID0gdHJ1ZTtcbn1cbmZ1bmN0aW9uIHRva2VuSW5UYWJsZVRleHQocCwgdG9rZW4pIHtcbiAgICBsZXQgaSA9IDA7XG4gICAgaWYgKHAuaGFzTm9uV2hpdGVzcGFjZVBlbmRpbmdDaGFyYWN0ZXJUb2tlbikge1xuICAgICAgICBmb3IgKDsgaSA8IHAucGVuZGluZ0NoYXJhY3RlclRva2Vucy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgdG9rZW5JblRhYmxlKHAsIHAucGVuZGluZ0NoYXJhY3RlclRva2Vuc1tpXSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIGZvciAoOyBpIDwgcC5wZW5kaW5nQ2hhcmFjdGVyVG9rZW5zLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBwLl9pbnNlcnRDaGFyYWN0ZXJzKHAucGVuZGluZ0NoYXJhY3RlclRva2Vuc1tpXSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcC5pbnNlcnRpb25Nb2RlID0gcC5vcmlnaW5hbEluc2VydGlvbk1vZGU7XG4gICAgcC5fcHJvY2Vzc1Rva2VuKHRva2VuKTtcbn1cbi8vIFRoZSBcImluIGNhcHRpb25cIiBpbnNlcnRpb24gbW9kZVxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbmNvbnN0IFRBQkxFX1ZPSURfRUxFTUVOVFMgPSBuZXcgU2V0KFskLkNBUFRJT04sICQuQ09MLCAkLkNPTEdST1VQLCAkLlRCT0RZLCAkLlRELCAkLlRGT09ULCAkLlRILCAkLlRIRUFELCAkLlRSXSk7XG5mdW5jdGlvbiBzdGFydFRhZ0luQ2FwdGlvbihwLCB0b2tlbikge1xuICAgIGNvbnN0IHRuID0gdG9rZW4udGFnSUQ7XG4gICAgaWYgKFRBQkxFX1ZPSURfRUxFTUVOVFMuaGFzKHRuKSkge1xuICAgICAgICBpZiAocC5vcGVuRWxlbWVudHMuaGFzSW5UYWJsZVNjb3BlKCQuQ0FQVElPTikpIHtcbiAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLmdlbmVyYXRlSW1wbGllZEVuZFRhZ3MoKTtcbiAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcFVudGlsVGFnTmFtZVBvcHBlZCgkLkNBUFRJT04pO1xuICAgICAgICAgICAgcC5hY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMuY2xlYXJUb0xhc3RNYXJrZXIoKTtcbiAgICAgICAgICAgIHAuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuSU5fVEFCTEU7XG4gICAgICAgICAgICBzdGFydFRhZ0luVGFibGUocCwgdG9rZW4pO1xuICAgICAgICB9XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICBzdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgfVxufVxuZnVuY3Rpb24gZW5kVGFnSW5DYXB0aW9uKHAsIHRva2VuKSB7XG4gICAgY29uc3QgdG4gPSB0b2tlbi50YWdJRDtcbiAgICBzd2l0Y2ggKHRuKSB7XG4gICAgICAgIGNhc2UgJC5DQVBUSU9OOlxuICAgICAgICBjYXNlICQuVEFCTEU6IHtcbiAgICAgICAgICAgIGlmIChwLm9wZW5FbGVtZW50cy5oYXNJblRhYmxlU2NvcGUoJC5DQVBUSU9OKSkge1xuICAgICAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLmdlbmVyYXRlSW1wbGllZEVuZFRhZ3MoKTtcbiAgICAgICAgICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3BVbnRpbFRhZ05hbWVQb3BwZWQoJC5DQVBUSU9OKTtcbiAgICAgICAgICAgICAgICBwLmFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cy5jbGVhclRvTGFzdE1hcmtlcigpO1xuICAgICAgICAgICAgICAgIHAuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuSU5fVEFCTEU7XG4gICAgICAgICAgICAgICAgaWYgKHRuID09PSAkLlRBQkxFKSB7XG4gICAgICAgICAgICAgICAgICAgIGVuZFRhZ0luVGFibGUocCwgdG9rZW4pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5CT0RZOlxuICAgICAgICBjYXNlICQuQ09MOlxuICAgICAgICBjYXNlICQuQ09MR1JPVVA6XG4gICAgICAgIGNhc2UgJC5IVE1MOlxuICAgICAgICBjYXNlICQuVEJPRFk6XG4gICAgICAgIGNhc2UgJC5URDpcbiAgICAgICAgY2FzZSAkLlRGT09UOlxuICAgICAgICBjYXNlICQuVEg6XG4gICAgICAgIGNhc2UgJC5USEVBRDpcbiAgICAgICAgY2FzZSAkLlRSOiB7XG4gICAgICAgICAgICAvLyBJZ25vcmUgdG9rZW5cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgIGVuZFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgICAgIH1cbiAgICB9XG59XG4vLyBUaGUgXCJpbiBjb2x1bW4gZ3JvdXBcIiBpbnNlcnRpb24gbW9kZVxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbmZ1bmN0aW9uIHN0YXJ0VGFnSW5Db2x1bW5Hcm91cChwLCB0b2tlbikge1xuICAgIHN3aXRjaCAodG9rZW4udGFnSUQpIHtcbiAgICAgICAgY2FzZSAkLkhUTUw6IHtcbiAgICAgICAgICAgIHN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5DT0w6IHtcbiAgICAgICAgICAgIHAuX2FwcGVuZEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpO1xuICAgICAgICAgICAgdG9rZW4uYWNrU2VsZkNsb3NpbmcgPSB0cnVlO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLlRFTVBMQVRFOiB7XG4gICAgICAgICAgICBzdGFydFRhZ0luSGVhZChwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICB0b2tlbkluQ29sdW1uR3JvdXAocCwgdG9rZW4pO1xuICAgICAgICB9XG4gICAgfVxufVxuZnVuY3Rpb24gZW5kVGFnSW5Db2x1bW5Hcm91cChwLCB0b2tlbikge1xuICAgIHN3aXRjaCAodG9rZW4udGFnSUQpIHtcbiAgICAgICAgY2FzZSAkLkNPTEdST1VQOiB7XG4gICAgICAgICAgICBpZiAocC5vcGVuRWxlbWVudHMuY3VycmVudFRhZ0lkID09PSAkLkNPTEdST1VQKSB7XG4gICAgICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wKCk7XG4gICAgICAgICAgICAgICAgcC5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9UQUJMRTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5URU1QTEFURToge1xuICAgICAgICAgICAgdGVtcGxhdGVFbmRUYWdJbkhlYWQocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLkNPTDoge1xuICAgICAgICAgICAgLy8gSWdub3JlIHRva2VuXG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICB0b2tlbkluQ29sdW1uR3JvdXAocCwgdG9rZW4pO1xuICAgICAgICB9XG4gICAgfVxufVxuZnVuY3Rpb24gdG9rZW5JbkNvbHVtbkdyb3VwKHAsIHRva2VuKSB7XG4gICAgaWYgKHAub3BlbkVsZW1lbnRzLmN1cnJlbnRUYWdJZCA9PT0gJC5DT0xHUk9VUCkge1xuICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3AoKTtcbiAgICAgICAgcC5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9UQUJMRTtcbiAgICAgICAgcC5fcHJvY2Vzc1Rva2VuKHRva2VuKTtcbiAgICB9XG59XG4vLyBUaGUgXCJpbiB0YWJsZSBib2R5XCIgaW5zZXJ0aW9uIG1vZGVcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5mdW5jdGlvbiBzdGFydFRhZ0luVGFibGVCb2R5KHAsIHRva2VuKSB7XG4gICAgc3dpdGNoICh0b2tlbi50YWdJRCkge1xuICAgICAgICBjYXNlICQuVFI6IHtcbiAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLmNsZWFyQmFja1RvVGFibGVCb2R5Q29udGV4dCgpO1xuICAgICAgICAgICAgcC5faW5zZXJ0RWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7XG4gICAgICAgICAgICBwLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLklOX1JPVztcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5USDpcbiAgICAgICAgY2FzZSAkLlREOiB7XG4gICAgICAgICAgICBwLm9wZW5FbGVtZW50cy5jbGVhckJhY2tUb1RhYmxlQm9keUNvbnRleHQoKTtcbiAgICAgICAgICAgIHAuX2luc2VydEZha2VFbGVtZW50KFROLlRSLCAkLlRSKTtcbiAgICAgICAgICAgIHAuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuSU5fUk9XO1xuICAgICAgICAgICAgc3RhcnRUYWdJblJvdyhwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuQ0FQVElPTjpcbiAgICAgICAgY2FzZSAkLkNPTDpcbiAgICAgICAgY2FzZSAkLkNPTEdST1VQOlxuICAgICAgICBjYXNlICQuVEJPRFk6XG4gICAgICAgIGNhc2UgJC5URk9PVDpcbiAgICAgICAgY2FzZSAkLlRIRUFEOiB7XG4gICAgICAgICAgICBpZiAocC5vcGVuRWxlbWVudHMuaGFzVGFibGVCb2R5Q29udGV4dEluVGFibGVTY29wZSgpKSB7XG4gICAgICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMuY2xlYXJCYWNrVG9UYWJsZUJvZHlDb250ZXh0KCk7XG4gICAgICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wKCk7XG4gICAgICAgICAgICAgICAgcC5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9UQUJMRTtcbiAgICAgICAgICAgICAgICBzdGFydFRhZ0luVGFibGUocCwgdG9rZW4pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgc3RhcnRUYWdJblRhYmxlKHAsIHRva2VuKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbmZ1bmN0aW9uIGVuZFRhZ0luVGFibGVCb2R5KHAsIHRva2VuKSB7XG4gICAgY29uc3QgdG4gPSB0b2tlbi50YWdJRDtcbiAgICBzd2l0Y2ggKHRva2VuLnRhZ0lEKSB7XG4gICAgICAgIGNhc2UgJC5UQk9EWTpcbiAgICAgICAgY2FzZSAkLlRGT09UOlxuICAgICAgICBjYXNlICQuVEhFQUQ6IHtcbiAgICAgICAgICAgIGlmIChwLm9wZW5FbGVtZW50cy5oYXNJblRhYmxlU2NvcGUodG4pKSB7XG4gICAgICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMuY2xlYXJCYWNrVG9UYWJsZUJvZHlDb250ZXh0KCk7XG4gICAgICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wKCk7XG4gICAgICAgICAgICAgICAgcC5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9UQUJMRTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5UQUJMRToge1xuICAgICAgICAgICAgaWYgKHAub3BlbkVsZW1lbnRzLmhhc1RhYmxlQm9keUNvbnRleHRJblRhYmxlU2NvcGUoKSkge1xuICAgICAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLmNsZWFyQmFja1RvVGFibGVCb2R5Q29udGV4dCgpO1xuICAgICAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcCgpO1xuICAgICAgICAgICAgICAgIHAuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuSU5fVEFCTEU7XG4gICAgICAgICAgICAgICAgZW5kVGFnSW5UYWJsZShwLCB0b2tlbik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuQk9EWTpcbiAgICAgICAgY2FzZSAkLkNBUFRJT046XG4gICAgICAgIGNhc2UgJC5DT0w6XG4gICAgICAgIGNhc2UgJC5DT0xHUk9VUDpcbiAgICAgICAgY2FzZSAkLkhUTUw6XG4gICAgICAgIGNhc2UgJC5URDpcbiAgICAgICAgY2FzZSAkLlRIOlxuICAgICAgICBjYXNlICQuVFI6IHtcbiAgICAgICAgICAgIC8vIElnbm9yZSB0b2tlblxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgZW5kVGFnSW5UYWJsZShwLCB0b2tlbik7XG4gICAgICAgIH1cbiAgICB9XG59XG4vLyBUaGUgXCJpbiByb3dcIiBpbnNlcnRpb24gbW9kZVxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbmZ1bmN0aW9uIHN0YXJ0VGFnSW5Sb3cocCwgdG9rZW4pIHtcbiAgICBzd2l0Y2ggKHRva2VuLnRhZ0lEKSB7XG4gICAgICAgIGNhc2UgJC5USDpcbiAgICAgICAgY2FzZSAkLlREOiB7XG4gICAgICAgICAgICBwLm9wZW5FbGVtZW50cy5jbGVhckJhY2tUb1RhYmxlUm93Q29udGV4dCgpO1xuICAgICAgICAgICAgcC5faW5zZXJ0RWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7XG4gICAgICAgICAgICBwLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLklOX0NFTEw7XG4gICAgICAgICAgICBwLmFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cy5pbnNlcnRNYXJrZXIoKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5DQVBUSU9OOlxuICAgICAgICBjYXNlICQuQ09MOlxuICAgICAgICBjYXNlICQuQ09MR1JPVVA6XG4gICAgICAgIGNhc2UgJC5UQk9EWTpcbiAgICAgICAgY2FzZSAkLlRGT09UOlxuICAgICAgICBjYXNlICQuVEhFQUQ6XG4gICAgICAgIGNhc2UgJC5UUjoge1xuICAgICAgICAgICAgaWYgKHAub3BlbkVsZW1lbnRzLmhhc0luVGFibGVTY29wZSgkLlRSKSkge1xuICAgICAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLmNsZWFyQmFja1RvVGFibGVSb3dDb250ZXh0KCk7XG4gICAgICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wKCk7XG4gICAgICAgICAgICAgICAgcC5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9UQUJMRV9CT0RZO1xuICAgICAgICAgICAgICAgIHN0YXJ0VGFnSW5UYWJsZUJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgc3RhcnRUYWdJblRhYmxlKHAsIHRva2VuKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbmZ1bmN0aW9uIGVuZFRhZ0luUm93KHAsIHRva2VuKSB7XG4gICAgc3dpdGNoICh0b2tlbi50YWdJRCkge1xuICAgICAgICBjYXNlICQuVFI6IHtcbiAgICAgICAgICAgIGlmIChwLm9wZW5FbGVtZW50cy5oYXNJblRhYmxlU2NvcGUoJC5UUikpIHtcbiAgICAgICAgICAgICAgICBwLm9wZW5FbGVtZW50cy5jbGVhckJhY2tUb1RhYmxlUm93Q29udGV4dCgpO1xuICAgICAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcCgpO1xuICAgICAgICAgICAgICAgIHAuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuSU5fVEFCTEVfQk9EWTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5UQUJMRToge1xuICAgICAgICAgICAgaWYgKHAub3BlbkVsZW1lbnRzLmhhc0luVGFibGVTY29wZSgkLlRSKSkge1xuICAgICAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLmNsZWFyQmFja1RvVGFibGVSb3dDb250ZXh0KCk7XG4gICAgICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wKCk7XG4gICAgICAgICAgICAgICAgcC5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9UQUJMRV9CT0RZO1xuICAgICAgICAgICAgICAgIGVuZFRhZ0luVGFibGVCb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5UQk9EWTpcbiAgICAgICAgY2FzZSAkLlRGT09UOlxuICAgICAgICBjYXNlICQuVEhFQUQ6IHtcbiAgICAgICAgICAgIGlmIChwLm9wZW5FbGVtZW50cy5oYXNJblRhYmxlU2NvcGUodG9rZW4udGFnSUQpIHx8IHAub3BlbkVsZW1lbnRzLmhhc0luVGFibGVTY29wZSgkLlRSKSkge1xuICAgICAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLmNsZWFyQmFja1RvVGFibGVSb3dDb250ZXh0KCk7XG4gICAgICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wKCk7XG4gICAgICAgICAgICAgICAgcC5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9UQUJMRV9CT0RZO1xuICAgICAgICAgICAgICAgIGVuZFRhZ0luVGFibGVCb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5CT0RZOlxuICAgICAgICBjYXNlICQuQ0FQVElPTjpcbiAgICAgICAgY2FzZSAkLkNPTDpcbiAgICAgICAgY2FzZSAkLkNPTEdST1VQOlxuICAgICAgICBjYXNlICQuSFRNTDpcbiAgICAgICAgY2FzZSAkLlREOlxuICAgICAgICBjYXNlICQuVEg6IHtcbiAgICAgICAgICAgIC8vIElnbm9yZSBlbmQgdGFnXG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICBlbmRUYWdJblRhYmxlKHAsIHRva2VuKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbi8vIFRoZSBcImluIGNlbGxcIiBpbnNlcnRpb24gbW9kZVxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbmZ1bmN0aW9uIHN0YXJ0VGFnSW5DZWxsKHAsIHRva2VuKSB7XG4gICAgY29uc3QgdG4gPSB0b2tlbi50YWdJRDtcbiAgICBpZiAoVEFCTEVfVk9JRF9FTEVNRU5UUy5oYXModG4pKSB7XG4gICAgICAgIGlmIChwLm9wZW5FbGVtZW50cy5oYXNJblRhYmxlU2NvcGUoJC5URCkgfHwgcC5vcGVuRWxlbWVudHMuaGFzSW5UYWJsZVNjb3BlKCQuVEgpKSB7XG4gICAgICAgICAgICBwLl9jbG9zZVRhYmxlQ2VsbCgpO1xuICAgICAgICAgICAgc3RhcnRUYWdJblJvdyhwLCB0b2tlbik7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIHN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICB9XG59XG5mdW5jdGlvbiBlbmRUYWdJbkNlbGwocCwgdG9rZW4pIHtcbiAgICBjb25zdCB0biA9IHRva2VuLnRhZ0lEO1xuICAgIHN3aXRjaCAodG4pIHtcbiAgICAgICAgY2FzZSAkLlREOlxuICAgICAgICBjYXNlICQuVEg6IHtcbiAgICAgICAgICAgIGlmIChwLm9wZW5FbGVtZW50cy5oYXNJblRhYmxlU2NvcGUodG4pKSB7XG4gICAgICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMuZ2VuZXJhdGVJbXBsaWVkRW5kVGFncygpO1xuICAgICAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcFVudGlsVGFnTmFtZVBvcHBlZCh0bik7XG4gICAgICAgICAgICAgICAgcC5hY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMuY2xlYXJUb0xhc3RNYXJrZXIoKTtcbiAgICAgICAgICAgICAgICBwLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLklOX1JPVztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5UQUJMRTpcbiAgICAgICAgY2FzZSAkLlRCT0RZOlxuICAgICAgICBjYXNlICQuVEZPT1Q6XG4gICAgICAgIGNhc2UgJC5USEVBRDpcbiAgICAgICAgY2FzZSAkLlRSOiB7XG4gICAgICAgICAgICBpZiAocC5vcGVuRWxlbWVudHMuaGFzSW5UYWJsZVNjb3BlKHRuKSkge1xuICAgICAgICAgICAgICAgIHAuX2Nsb3NlVGFibGVDZWxsKCk7XG4gICAgICAgICAgICAgICAgZW5kVGFnSW5Sb3cocCwgdG9rZW4pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLkJPRFk6XG4gICAgICAgIGNhc2UgJC5DQVBUSU9OOlxuICAgICAgICBjYXNlICQuQ09MOlxuICAgICAgICBjYXNlICQuQ09MR1JPVVA6XG4gICAgICAgIGNhc2UgJC5IVE1MOiB7XG4gICAgICAgICAgICAvLyBJZ25vcmUgdG9rZW5cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgIGVuZFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgICAgIH1cbiAgICB9XG59XG4vLyBUaGUgXCJpbiBzZWxlY3RcIiBpbnNlcnRpb24gbW9kZVxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbmZ1bmN0aW9uIHN0YXJ0VGFnSW5TZWxlY3QocCwgdG9rZW4pIHtcbiAgICBzd2l0Y2ggKHRva2VuLnRhZ0lEKSB7XG4gICAgICAgIGNhc2UgJC5IVE1MOiB7XG4gICAgICAgICAgICBzdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuT1BUSU9OOiB7XG4gICAgICAgICAgICBpZiAocC5vcGVuRWxlbWVudHMuY3VycmVudFRhZ0lkID09PSAkLk9QVElPTikge1xuICAgICAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcC5faW5zZXJ0RWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuT1BUR1JPVVA6IHtcbiAgICAgICAgICAgIGlmIChwLm9wZW5FbGVtZW50cy5jdXJyZW50VGFnSWQgPT09ICQuT1BUSU9OKSB7XG4gICAgICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAocC5vcGVuRWxlbWVudHMuY3VycmVudFRhZ0lkID09PSAkLk9QVEdST1VQKSB7XG4gICAgICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBwLl9pbnNlcnRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5IUjoge1xuICAgICAgICAgICAgaWYgKHAub3BlbkVsZW1lbnRzLmN1cnJlbnRUYWdJZCA9PT0gJC5PUFRJT04pIHtcbiAgICAgICAgICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3AoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChwLm9wZW5FbGVtZW50cy5jdXJyZW50VGFnSWQgPT09ICQuT1BUR1JPVVApIHtcbiAgICAgICAgICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3AoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHAuX2FwcGVuZEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpO1xuICAgICAgICAgICAgdG9rZW4uYWNrU2VsZkNsb3NpbmcgPSB0cnVlO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLklOUFVUOlxuICAgICAgICBjYXNlICQuS0VZR0VOOlxuICAgICAgICBjYXNlICQuVEVYVEFSRUE6XG4gICAgICAgIGNhc2UgJC5TRUxFQ1Q6IHtcbiAgICAgICAgICAgIGlmIChwLm9wZW5FbGVtZW50cy5oYXNJblNlbGVjdFNjb3BlKCQuU0VMRUNUKSkge1xuICAgICAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcFVudGlsVGFnTmFtZVBvcHBlZCgkLlNFTEVDVCk7XG4gICAgICAgICAgICAgICAgcC5fcmVzZXRJbnNlcnRpb25Nb2RlKCk7XG4gICAgICAgICAgICAgICAgaWYgKHRva2VuLnRhZ0lEICE9PSAkLlNFTEVDVCkge1xuICAgICAgICAgICAgICAgICAgICBwLl9wcm9jZXNzU3RhcnRUYWcodG9rZW4pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5TQ1JJUFQ6XG4gICAgICAgIGNhc2UgJC5URU1QTEFURToge1xuICAgICAgICAgICAgc3RhcnRUYWdJbkhlYWQocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgLy8gRG8gbm90aGluZ1xuICAgIH1cbn1cbmZ1bmN0aW9uIGVuZFRhZ0luU2VsZWN0KHAsIHRva2VuKSB7XG4gICAgc3dpdGNoICh0b2tlbi50YWdJRCkge1xuICAgICAgICBjYXNlICQuT1BUR1JPVVA6IHtcbiAgICAgICAgICAgIGlmIChwLm9wZW5FbGVtZW50cy5zdGFja1RvcCA+IDAgJiZcbiAgICAgICAgICAgICAgICBwLm9wZW5FbGVtZW50cy5jdXJyZW50VGFnSWQgPT09ICQuT1BUSU9OICYmXG4gICAgICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMudGFnSURzW3Aub3BlbkVsZW1lbnRzLnN0YWNrVG9wIC0gMV0gPT09ICQuT1BUR1JPVVApIHtcbiAgICAgICAgICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3AoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChwLm9wZW5FbGVtZW50cy5jdXJyZW50VGFnSWQgPT09ICQuT1BUR1JPVVApIHtcbiAgICAgICAgICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3AoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5PUFRJT046IHtcbiAgICAgICAgICAgIGlmIChwLm9wZW5FbGVtZW50cy5jdXJyZW50VGFnSWQgPT09ICQuT1BUSU9OKSB7XG4gICAgICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuU0VMRUNUOiB7XG4gICAgICAgICAgICBpZiAocC5vcGVuRWxlbWVudHMuaGFzSW5TZWxlY3RTY29wZSgkLlNFTEVDVCkpIHtcbiAgICAgICAgICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3BVbnRpbFRhZ05hbWVQb3BwZWQoJC5TRUxFQ1QpO1xuICAgICAgICAgICAgICAgIHAuX3Jlc2V0SW5zZXJ0aW9uTW9kZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLlRFTVBMQVRFOiB7XG4gICAgICAgICAgICB0ZW1wbGF0ZUVuZFRhZ0luSGVhZChwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAvLyBEbyBub3RoaW5nXG4gICAgfVxufVxuLy8gVGhlIFwiaW4gc2VsZWN0IGluIHRhYmxlXCIgaW5zZXJ0aW9uIG1vZGVcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5mdW5jdGlvbiBzdGFydFRhZ0luU2VsZWN0SW5UYWJsZShwLCB0b2tlbikge1xuICAgIGNvbnN0IHRuID0gdG9rZW4udGFnSUQ7XG4gICAgaWYgKHRuID09PSAkLkNBUFRJT04gfHxcbiAgICAgICAgdG4gPT09ICQuVEFCTEUgfHxcbiAgICAgICAgdG4gPT09ICQuVEJPRFkgfHxcbiAgICAgICAgdG4gPT09ICQuVEZPT1QgfHxcbiAgICAgICAgdG4gPT09ICQuVEhFQUQgfHxcbiAgICAgICAgdG4gPT09ICQuVFIgfHxcbiAgICAgICAgdG4gPT09ICQuVEQgfHxcbiAgICAgICAgdG4gPT09ICQuVEgpIHtcbiAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wVW50aWxUYWdOYW1lUG9wcGVkKCQuU0VMRUNUKTtcbiAgICAgICAgcC5fcmVzZXRJbnNlcnRpb25Nb2RlKCk7XG4gICAgICAgIHAuX3Byb2Nlc3NTdGFydFRhZyh0b2tlbik7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICBzdGFydFRhZ0luU2VsZWN0KHAsIHRva2VuKTtcbiAgICB9XG59XG5mdW5jdGlvbiBlbmRUYWdJblNlbGVjdEluVGFibGUocCwgdG9rZW4pIHtcbiAgICBjb25zdCB0biA9IHRva2VuLnRhZ0lEO1xuICAgIGlmICh0biA9PT0gJC5DQVBUSU9OIHx8XG4gICAgICAgIHRuID09PSAkLlRBQkxFIHx8XG4gICAgICAgIHRuID09PSAkLlRCT0RZIHx8XG4gICAgICAgIHRuID09PSAkLlRGT09UIHx8XG4gICAgICAgIHRuID09PSAkLlRIRUFEIHx8XG4gICAgICAgIHRuID09PSAkLlRSIHx8XG4gICAgICAgIHRuID09PSAkLlREIHx8XG4gICAgICAgIHRuID09PSAkLlRIKSB7XG4gICAgICAgIGlmIChwLm9wZW5FbGVtZW50cy5oYXNJblRhYmxlU2NvcGUodG4pKSB7XG4gICAgICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3BVbnRpbFRhZ05hbWVQb3BwZWQoJC5TRUxFQ1QpO1xuICAgICAgICAgICAgcC5fcmVzZXRJbnNlcnRpb25Nb2RlKCk7XG4gICAgICAgICAgICBwLm9uRW5kVGFnKHRva2VuKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgZW5kVGFnSW5TZWxlY3QocCwgdG9rZW4pO1xuICAgIH1cbn1cbi8vIFRoZSBcImluIHRlbXBsYXRlXCIgaW5zZXJ0aW9uIG1vZGVcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5mdW5jdGlvbiBzdGFydFRhZ0luVGVtcGxhdGUocCwgdG9rZW4pIHtcbiAgICBzd2l0Y2ggKHRva2VuLnRhZ0lEKSB7XG4gICAgICAgIC8vIEZpcnN0LCBoYW5kbGUgdGFncyB0aGF0IGNhbiBzdGFydCB3aXRob3V0IGEgbW9kZSBjaGFuZ2VcbiAgICAgICAgY2FzZSAkLkJBU0U6XG4gICAgICAgIGNhc2UgJC5CQVNFRk9OVDpcbiAgICAgICAgY2FzZSAkLkJHU09VTkQ6XG4gICAgICAgIGNhc2UgJC5MSU5LOlxuICAgICAgICBjYXNlICQuTUVUQTpcbiAgICAgICAgY2FzZSAkLk5PRlJBTUVTOlxuICAgICAgICBjYXNlICQuU0NSSVBUOlxuICAgICAgICBjYXNlICQuU1RZTEU6XG4gICAgICAgIGNhc2UgJC5URU1QTEFURTpcbiAgICAgICAgY2FzZSAkLlRJVExFOiB7XG4gICAgICAgICAgICBzdGFydFRhZ0luSGVhZChwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICAvLyBSZS1wcm9jZXNzIHRoZSB0b2tlbiBpbiB0aGUgYXBwcm9wcmlhdGUgbW9kZVxuICAgICAgICBjYXNlICQuQ0FQVElPTjpcbiAgICAgICAgY2FzZSAkLkNPTEdST1VQOlxuICAgICAgICBjYXNlICQuVEJPRFk6XG4gICAgICAgIGNhc2UgJC5URk9PVDpcbiAgICAgICAgY2FzZSAkLlRIRUFEOiB7XG4gICAgICAgICAgICBwLnRtcGxJbnNlcnRpb25Nb2RlU3RhY2tbMF0gPSBJbnNlcnRpb25Nb2RlLklOX1RBQkxFO1xuICAgICAgICAgICAgcC5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9UQUJMRTtcbiAgICAgICAgICAgIHN0YXJ0VGFnSW5UYWJsZShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuQ09MOiB7XG4gICAgICAgICAgICBwLnRtcGxJbnNlcnRpb25Nb2RlU3RhY2tbMF0gPSBJbnNlcnRpb25Nb2RlLklOX0NPTFVNTl9HUk9VUDtcbiAgICAgICAgICAgIHAuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuSU5fQ09MVU1OX0dST1VQO1xuICAgICAgICAgICAgc3RhcnRUYWdJbkNvbHVtbkdyb3VwKHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5UUjoge1xuICAgICAgICAgICAgcC50bXBsSW5zZXJ0aW9uTW9kZVN0YWNrWzBdID0gSW5zZXJ0aW9uTW9kZS5JTl9UQUJMRV9CT0RZO1xuICAgICAgICAgICAgcC5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9UQUJMRV9CT0RZO1xuICAgICAgICAgICAgc3RhcnRUYWdJblRhYmxlQm9keShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuVEQ6XG4gICAgICAgIGNhc2UgJC5USDoge1xuICAgICAgICAgICAgcC50bXBsSW5zZXJ0aW9uTW9kZVN0YWNrWzBdID0gSW5zZXJ0aW9uTW9kZS5JTl9ST1c7XG4gICAgICAgICAgICBwLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLklOX1JPVztcbiAgICAgICAgICAgIHN0YXJ0VGFnSW5Sb3cocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgcC50bXBsSW5zZXJ0aW9uTW9kZVN0YWNrWzBdID0gSW5zZXJ0aW9uTW9kZS5JTl9CT0RZO1xuICAgICAgICAgICAgcC5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9CT0RZO1xuICAgICAgICAgICAgc3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICB9XG4gICAgfVxufVxuZnVuY3Rpb24gZW5kVGFnSW5UZW1wbGF0ZShwLCB0b2tlbikge1xuICAgIGlmICh0b2tlbi50YWdJRCA9PT0gJC5URU1QTEFURSkge1xuICAgICAgICB0ZW1wbGF0ZUVuZFRhZ0luSGVhZChwLCB0b2tlbik7XG4gICAgfVxufVxuZnVuY3Rpb24gZW9mSW5UZW1wbGF0ZShwLCB0b2tlbikge1xuICAgIGlmIChwLm9wZW5FbGVtZW50cy50bXBsQ291bnQgPiAwKSB7XG4gICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcFVudGlsVGFnTmFtZVBvcHBlZCgkLlRFTVBMQVRFKTtcbiAgICAgICAgcC5hY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMuY2xlYXJUb0xhc3RNYXJrZXIoKTtcbiAgICAgICAgcC50bXBsSW5zZXJ0aW9uTW9kZVN0YWNrLnNoaWZ0KCk7XG4gICAgICAgIHAuX3Jlc2V0SW5zZXJ0aW9uTW9kZSgpO1xuICAgICAgICBwLm9uRW9mKHRva2VuKTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIHN0b3BQYXJzaW5nKHAsIHRva2VuKTtcbiAgICB9XG59XG4vLyBUaGUgXCJhZnRlciBib2R5XCIgaW5zZXJ0aW9uIG1vZGVcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5mdW5jdGlvbiBzdGFydFRhZ0FmdGVyQm9keShwLCB0b2tlbikge1xuICAgIGlmICh0b2tlbi50YWdJRCA9PT0gJC5IVE1MKSB7XG4gICAgICAgIHN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIHRva2VuQWZ0ZXJCb2R5KHAsIHRva2VuKTtcbiAgICB9XG59XG5mdW5jdGlvbiBlbmRUYWdBZnRlckJvZHkocCwgdG9rZW4pIHtcbiAgICB2YXIgX2E7XG4gICAgaWYgKHRva2VuLnRhZ0lEID09PSAkLkhUTUwpIHtcbiAgICAgICAgaWYgKCFwLmZyYWdtZW50Q29udGV4dCkge1xuICAgICAgICAgICAgcC5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5BRlRFUl9BRlRFUl9CT0RZO1xuICAgICAgICB9XG4gICAgICAgIC8vTk9URTogPGh0bWw+IGlzIG5ldmVyIHBvcHBlZCBmcm9tIHRoZSBzdGFjaywgc28gd2UgbmVlZCB0byB1cGRhdGVkXG4gICAgICAgIC8vdGhlIGVuZCBsb2NhdGlvbiBleHBsaWNpdGx5LlxuICAgICAgICBpZiAocC5vcHRpb25zLnNvdXJjZUNvZGVMb2NhdGlvbkluZm8gJiYgcC5vcGVuRWxlbWVudHMudGFnSURzWzBdID09PSAkLkhUTUwpIHtcbiAgICAgICAgICAgIHAuX3NldEVuZExvY2F0aW9uKHAub3BlbkVsZW1lbnRzLml0ZW1zWzBdLCB0b2tlbik7XG4gICAgICAgICAgICAvLyBVcGRhdGUgdGhlIGJvZHkgZWxlbWVudCwgaWYgaXQgZG9lc24ndCBoYXZlIGFuIGVuZCB0YWdcbiAgICAgICAgICAgIGNvbnN0IGJvZHlFbGVtZW50ID0gcC5vcGVuRWxlbWVudHMuaXRlbXNbMV07XG4gICAgICAgICAgICBpZiAoYm9keUVsZW1lbnQgJiYgISgoX2EgPSBwLnRyZWVBZGFwdGVyLmdldE5vZGVTb3VyY2VDb2RlTG9jYXRpb24oYm9keUVsZW1lbnQpKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuZW5kVGFnKSkge1xuICAgICAgICAgICAgICAgIHAuX3NldEVuZExvY2F0aW9uKGJvZHlFbGVtZW50LCB0b2tlbik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIHRva2VuQWZ0ZXJCb2R5KHAsIHRva2VuKTtcbiAgICB9XG59XG5mdW5jdGlvbiB0b2tlbkFmdGVyQm9keShwLCB0b2tlbikge1xuICAgIHAuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuSU5fQk9EWTtcbiAgICBtb2RlSW5Cb2R5KHAsIHRva2VuKTtcbn1cbi8vIFRoZSBcImluIGZyYW1lc2V0XCIgaW5zZXJ0aW9uIG1vZGVcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5mdW5jdGlvbiBzdGFydFRhZ0luRnJhbWVzZXQocCwgdG9rZW4pIHtcbiAgICBzd2l0Y2ggKHRva2VuLnRhZ0lEKSB7XG4gICAgICAgIGNhc2UgJC5IVE1MOiB7XG4gICAgICAgICAgICBzdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuRlJBTUVTRVQ6IHtcbiAgICAgICAgICAgIHAuX2luc2VydEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLkZSQU1FOiB7XG4gICAgICAgICAgICBwLl9hcHBlbmRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTtcbiAgICAgICAgICAgIHRva2VuLmFja1NlbGZDbG9zaW5nID0gdHJ1ZTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5OT0ZSQU1FUzoge1xuICAgICAgICAgICAgc3RhcnRUYWdJbkhlYWQocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgLy8gRG8gbm90aGluZ1xuICAgIH1cbn1cbmZ1bmN0aW9uIGVuZFRhZ0luRnJhbWVzZXQocCwgdG9rZW4pIHtcbiAgICBpZiAodG9rZW4udGFnSUQgPT09ICQuRlJBTUVTRVQgJiYgIXAub3BlbkVsZW1lbnRzLmlzUm9vdEh0bWxFbGVtZW50Q3VycmVudCgpKSB7XG4gICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcCgpO1xuICAgICAgICBpZiAoIXAuZnJhZ21lbnRDb250ZXh0ICYmIHAub3BlbkVsZW1lbnRzLmN1cnJlbnRUYWdJZCAhPT0gJC5GUkFNRVNFVCkge1xuICAgICAgICAgICAgcC5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5BRlRFUl9GUkFNRVNFVDtcbiAgICAgICAgfVxuICAgIH1cbn1cbi8vIFRoZSBcImFmdGVyIGZyYW1lc2V0XCIgaW5zZXJ0aW9uIG1vZGVcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5mdW5jdGlvbiBzdGFydFRhZ0FmdGVyRnJhbWVzZXQocCwgdG9rZW4pIHtcbiAgICBzd2l0Y2ggKHRva2VuLnRhZ0lEKSB7XG4gICAgICAgIGNhc2UgJC5IVE1MOiB7XG4gICAgICAgICAgICBzdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuTk9GUkFNRVM6IHtcbiAgICAgICAgICAgIHN0YXJ0VGFnSW5IZWFkKHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgIC8vIERvIG5vdGhpbmdcbiAgICB9XG59XG5mdW5jdGlvbiBlbmRUYWdBZnRlckZyYW1lc2V0KHAsIHRva2VuKSB7XG4gICAgaWYgKHRva2VuLnRhZ0lEID09PSAkLkhUTUwpIHtcbiAgICAgICAgcC5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5BRlRFUl9BRlRFUl9GUkFNRVNFVDtcbiAgICB9XG59XG4vLyBUaGUgXCJhZnRlciBhZnRlciBib2R5XCIgaW5zZXJ0aW9uIG1vZGVcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5mdW5jdGlvbiBzdGFydFRhZ0FmdGVyQWZ0ZXJCb2R5KHAsIHRva2VuKSB7XG4gICAgaWYgKHRva2VuLnRhZ0lEID09PSAkLkhUTUwpIHtcbiAgICAgICAgc3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgdG9rZW5BZnRlckFmdGVyQm9keShwLCB0b2tlbik7XG4gICAgfVxufVxuZnVuY3Rpb24gdG9rZW5BZnRlckFmdGVyQm9keShwLCB0b2tlbikge1xuICAgIHAuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuSU5fQk9EWTtcbiAgICBtb2RlSW5Cb2R5KHAsIHRva2VuKTtcbn1cbi8vIFRoZSBcImFmdGVyIGFmdGVyIGZyYW1lc2V0XCIgaW5zZXJ0aW9uIG1vZGVcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5mdW5jdGlvbiBzdGFydFRhZ0FmdGVyQWZ0ZXJGcmFtZXNldChwLCB0b2tlbikge1xuICAgIHN3aXRjaCAodG9rZW4udGFnSUQpIHtcbiAgICAgICAgY2FzZSAkLkhUTUw6IHtcbiAgICAgICAgICAgIHN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5OT0ZSQU1FUzoge1xuICAgICAgICAgICAgc3RhcnRUYWdJbkhlYWQocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgLy8gRG8gbm90aGluZ1xuICAgIH1cbn1cbi8vIFRoZSBydWxlcyBmb3IgcGFyc2luZyB0b2tlbnMgaW4gZm9yZWlnbiBjb250ZW50XG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuZnVuY3Rpb24gbnVsbENoYXJhY3RlckluRm9yZWlnbkNvbnRlbnQocCwgdG9rZW4pIHtcbiAgICB0b2tlbi5jaGFycyA9IHVuaWNvZGUuUkVQTEFDRU1FTlRfQ0hBUkFDVEVSO1xuICAgIHAuX2luc2VydENoYXJhY3RlcnModG9rZW4pO1xufVxuZnVuY3Rpb24gY2hhcmFjdGVySW5Gb3JlaWduQ29udGVudChwLCB0b2tlbikge1xuICAgIHAuX2luc2VydENoYXJhY3RlcnModG9rZW4pO1xuICAgIHAuZnJhbWVzZXRPayA9IGZhbHNlO1xufVxuZnVuY3Rpb24gcG9wVW50aWxIdG1sT3JJbnRlZ3JhdGlvblBvaW50KHApIHtcbiAgICB3aGlsZSAocC50cmVlQWRhcHRlci5nZXROYW1lc3BhY2VVUkkocC5vcGVuRWxlbWVudHMuY3VycmVudCkgIT09IE5TLkhUTUwgJiZcbiAgICAgICAgIXAuX2lzSW50ZWdyYXRpb25Qb2ludChwLm9wZW5FbGVtZW50cy5jdXJyZW50VGFnSWQsIHAub3BlbkVsZW1lbnRzLmN1cnJlbnQpKSB7XG4gICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcCgpO1xuICAgIH1cbn1cbmZ1bmN0aW9uIHN0YXJ0VGFnSW5Gb3JlaWduQ29udGVudChwLCB0b2tlbikge1xuICAgIGlmIChmb3JlaWduQ29udGVudC5jYXVzZXNFeGl0KHRva2VuKSkge1xuICAgICAgICBwb3BVbnRpbEh0bWxPckludGVncmF0aW9uUG9pbnQocCk7XG4gICAgICAgIHAuX3N0YXJ0VGFnT3V0c2lkZUZvcmVpZ25Db250ZW50KHRva2VuKTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnQgPSBwLl9nZXRBZGp1c3RlZEN1cnJlbnRFbGVtZW50KCk7XG4gICAgICAgIGNvbnN0IGN1cnJlbnROcyA9IHAudHJlZUFkYXB0ZXIuZ2V0TmFtZXNwYWNlVVJJKGN1cnJlbnQpO1xuICAgICAgICBpZiAoY3VycmVudE5zID09PSBOUy5NQVRITUwpIHtcbiAgICAgICAgICAgIGZvcmVpZ25Db250ZW50LmFkanVzdFRva2VuTWF0aE1MQXR0cnModG9rZW4pO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKGN1cnJlbnROcyA9PT0gTlMuU1ZHKSB7XG4gICAgICAgICAgICBmb3JlaWduQ29udGVudC5hZGp1c3RUb2tlblNWR1RhZ05hbWUodG9rZW4pO1xuICAgICAgICAgICAgZm9yZWlnbkNvbnRlbnQuYWRqdXN0VG9rZW5TVkdBdHRycyh0b2tlbik7XG4gICAgICAgIH1cbiAgICAgICAgZm9yZWlnbkNvbnRlbnQuYWRqdXN0VG9rZW5YTUxBdHRycyh0b2tlbik7XG4gICAgICAgIGlmICh0b2tlbi5zZWxmQ2xvc2luZykge1xuICAgICAgICAgICAgcC5fYXBwZW5kRWxlbWVudCh0b2tlbiwgY3VycmVudE5zKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHAuX2luc2VydEVsZW1lbnQodG9rZW4sIGN1cnJlbnROcyk7XG4gICAgICAgIH1cbiAgICAgICAgdG9rZW4uYWNrU2VsZkNsb3NpbmcgPSB0cnVlO1xuICAgIH1cbn1cbmZ1bmN0aW9uIGVuZFRhZ0luRm9yZWlnbkNvbnRlbnQocCwgdG9rZW4pIHtcbiAgICBpZiAodG9rZW4udGFnSUQgPT09ICQuUCB8fCB0b2tlbi50YWdJRCA9PT0gJC5CUikge1xuICAgICAgICBwb3BVbnRpbEh0bWxPckludGVncmF0aW9uUG9pbnQocCk7XG4gICAgICAgIHAuX2VuZFRhZ091dHNpZGVGb3JlaWduQ29udGVudCh0b2tlbik7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgZm9yIChsZXQgaSA9IHAub3BlbkVsZW1lbnRzLnN0YWNrVG9wOyBpID4gMDsgaS0tKSB7XG4gICAgICAgIGNvbnN0IGVsZW1lbnQgPSBwLm9wZW5FbGVtZW50cy5pdGVtc1tpXTtcbiAgICAgICAgaWYgKHAudHJlZUFkYXB0ZXIuZ2V0TmFtZXNwYWNlVVJJKGVsZW1lbnQpID09PSBOUy5IVE1MKSB7XG4gICAgICAgICAgICBwLl9lbmRUYWdPdXRzaWRlRm9yZWlnbkNvbnRlbnQodG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgdGFnTmFtZSA9IHAudHJlZUFkYXB0ZXIuZ2V0VGFnTmFtZShlbGVtZW50KTtcbiAgICAgICAgaWYgKHRhZ05hbWUudG9Mb3dlckNhc2UoKSA9PT0gdG9rZW4udGFnTmFtZSkge1xuICAgICAgICAgICAgLy9OT1RFOiB1cGRhdGUgdGhlIHRva2VuIHRhZyBuYW1lIGZvciBgX3NldEVuZExvY2F0aW9uYC5cbiAgICAgICAgICAgIHRva2VuLnRhZ05hbWUgPSB0YWdOYW1lO1xuICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMuc2hvcnRlblRvTGVuZ3RoKGkpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCAiaW1wb3J0IHsgVEFHX05BTUVTIGFzICQsIE5TLCBoYXNVbmVzY2FwZWRUZXh0IH0gZnJvbSAnLi4vY29tbW9uL2h0bWwuanMnO1xuaW1wb3J0IHsgZXNjYXBlVGV4dCwgZXNjYXBlQXR0cmlidXRlIH0gZnJvbSAnZW50aXRpZXMvbGliL2VzY2FwZS5qcyc7XG5pbXBvcnQgeyBkZWZhdWx0VHJlZUFkYXB0ZXIgfSBmcm9tICcuLi90cmVlLWFkYXB0ZXJzL2RlZmF1bHQuanMnO1xuLy8gU2V0c1xuY29uc3QgVk9JRF9FTEVNRU5UUyA9IG5ldyBTZXQoW1xuICAgICQuQVJFQSxcbiAgICAkLkJBU0UsXG4gICAgJC5CQVNFRk9OVCxcbiAgICAkLkJHU09VTkQsXG4gICAgJC5CUixcbiAgICAkLkNPTCxcbiAgICAkLkVNQkVELFxuICAgICQuRlJBTUUsXG4gICAgJC5IUixcbiAgICAkLklNRyxcbiAgICAkLklOUFVULFxuICAgICQuS0VZR0VOLFxuICAgICQuTElOSyxcbiAgICAkLk1FVEEsXG4gICAgJC5QQVJBTSxcbiAgICAkLlNPVVJDRSxcbiAgICAkLlRSQUNLLFxuICAgICQuV0JSLFxuXSk7XG5mdW5jdGlvbiBpc1ZvaWRFbGVtZW50KG5vZGUsIG9wdGlvbnMpIHtcbiAgICByZXR1cm4gKG9wdGlvbnMudHJlZUFkYXB0ZXIuaXNFbGVtZW50Tm9kZShub2RlKSAmJlxuICAgICAgICBvcHRpb25zLnRyZWVBZGFwdGVyLmdldE5hbWVzcGFjZVVSSShub2RlKSA9PT0gTlMuSFRNTCAmJlxuICAgICAgICBWT0lEX0VMRU1FTlRTLmhhcyhvcHRpb25zLnRyZWVBZGFwdGVyLmdldFRhZ05hbWUobm9kZSkpKTtcbn1cbmNvbnN0IGRlZmF1bHRPcHRzID0geyB0cmVlQWRhcHRlcjogZGVmYXVsdFRyZWVBZGFwdGVyLCBzY3JpcHRpbmdFbmFibGVkOiB0cnVlIH07XG4vKipcbiAqIFNlcmlhbGl6ZXMgYW4gQVNUIG5vZGUgdG8gYW4gSFRNTCBzdHJpbmcuXG4gKlxuICogQGV4YW1wbGVcbiAqXG4gKiBgYGBqc1xuICogY29uc3QgcGFyc2U1ID0gcmVxdWlyZSgncGFyc2U1Jyk7XG4gKlxuICogY29uc3QgZG9jdW1lbnQgPSBwYXJzZTUucGFyc2UoJzwhRE9DVFlQRSBodG1sPjxodG1sPjxoZWFkPjwvaGVhZD48Ym9keT5IaSB0aGVyZSE8L2JvZHk+PC9odG1sPicpO1xuICpcbiAqIC8vIFNlcmlhbGl6ZXMgYSBkb2N1bWVudC5cbiAqIGNvbnN0IGh0bWwgPSBwYXJzZTUuc2VyaWFsaXplKGRvY3VtZW50KTtcbiAqXG4gKiAvLyBTZXJpYWxpemVzIHRoZSA8aHRtbD4gZWxlbWVudCBjb250ZW50LlxuICogY29uc3Qgc3RyID0gcGFyc2U1LnNlcmlhbGl6ZShkb2N1bWVudC5jaGlsZE5vZGVzWzFdKTtcbiAqXG4gKiBjb25zb2xlLmxvZyhzdHIpOyAvLz4gJzxoZWFkPjwvaGVhZD48Ym9keT5IaSB0aGVyZSE8L2JvZHk+J1xuICogYGBgXG4gKlxuICogQHBhcmFtIG5vZGUgTm9kZSB0byBzZXJpYWxpemUuXG4gKiBAcGFyYW0gb3B0aW9ucyBTZXJpYWxpemF0aW9uIG9wdGlvbnMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzZXJpYWxpemUobm9kZSwgb3B0aW9ucykge1xuICAgIGNvbnN0IG9wdHMgPSB7IC4uLmRlZmF1bHRPcHRzLCAuLi5vcHRpb25zIH07XG4gICAgaWYgKGlzVm9pZEVsZW1lbnQobm9kZSwgb3B0cykpIHtcbiAgICAgICAgcmV0dXJuICcnO1xuICAgIH1cbiAgICByZXR1cm4gc2VyaWFsaXplQ2hpbGROb2Rlcyhub2RlLCBvcHRzKTtcbn1cbi8qKlxuICogU2VyaWFsaXplcyBhbiBBU1QgZWxlbWVudCBub2RlIHRvIGFuIEhUTUwgc3RyaW5nLCBpbmNsdWRpbmcgdGhlIGVsZW1lbnQgbm9kZS5cbiAqXG4gKiBAZXhhbXBsZVxuICpcbiAqIGBgYGpzXG4gKiBjb25zdCBwYXJzZTUgPSByZXF1aXJlKCdwYXJzZTUnKTtcbiAqXG4gKiBjb25zdCBkb2N1bWVudCA9IHBhcnNlNS5wYXJzZUZyYWdtZW50KCc8ZGl2PkhlbGxvLCA8Yj53b3JsZDwvYj4hPC9kaXY+Jyk7XG4gKlxuICogLy8gU2VyaWFsaXplcyB0aGUgPGRpdj4gZWxlbWVudC5cbiAqIGNvbnN0IHN0ciA9IHBhcnNlNS5zZXJpYWxpemVPdXRlcihkb2N1bWVudC5jaGlsZE5vZGVzWzBdKTtcbiAqXG4gKiBjb25zb2xlLmxvZyhzdHIpOyAvLz4gJzxkaXY+SGVsbG8sIDxiPndvcmxkPC9iPiE8L2Rpdj4nXG4gKiBgYGBcbiAqXG4gKiBAcGFyYW0gbm9kZSBOb2RlIHRvIHNlcmlhbGl6ZS5cbiAqIEBwYXJhbSBvcHRpb25zIFNlcmlhbGl6YXRpb24gb3B0aW9ucy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNlcmlhbGl6ZU91dGVyKG5vZGUsIG9wdGlvbnMpIHtcbiAgICBjb25zdCBvcHRzID0geyAuLi5kZWZhdWx0T3B0cywgLi4ub3B0aW9ucyB9O1xuICAgIHJldHVybiBzZXJpYWxpemVOb2RlKG5vZGUsIG9wdHMpO1xufVxuZnVuY3Rpb24gc2VyaWFsaXplQ2hpbGROb2RlcyhwYXJlbnROb2RlLCBvcHRpb25zKSB7XG4gICAgbGV0IGh0bWwgPSAnJztcbiAgICAvLyBHZXQgY29udGFpbmVyIG9mIHRoZSBjaGlsZCBub2Rlc1xuICAgIGNvbnN0IGNvbnRhaW5lciA9IG9wdGlvbnMudHJlZUFkYXB0ZXIuaXNFbGVtZW50Tm9kZShwYXJlbnROb2RlKSAmJlxuICAgICAgICBvcHRpb25zLnRyZWVBZGFwdGVyLmdldFRhZ05hbWUocGFyZW50Tm9kZSkgPT09ICQuVEVNUExBVEUgJiZcbiAgICAgICAgb3B0aW9ucy50cmVlQWRhcHRlci5nZXROYW1lc3BhY2VVUkkocGFyZW50Tm9kZSkgPT09IE5TLkhUTUxcbiAgICAgICAgPyBvcHRpb25zLnRyZWVBZGFwdGVyLmdldFRlbXBsYXRlQ29udGVudChwYXJlbnROb2RlKVxuICAgICAgICA6IHBhcmVudE5vZGU7XG4gICAgY29uc3QgY2hpbGROb2RlcyA9IG9wdGlvbnMudHJlZUFkYXB0ZXIuZ2V0Q2hpbGROb2Rlcyhjb250YWluZXIpO1xuICAgIGlmIChjaGlsZE5vZGVzKSB7XG4gICAgICAgIGZvciAoY29uc3QgY3VycmVudE5vZGUgb2YgY2hpbGROb2Rlcykge1xuICAgICAgICAgICAgaHRtbCArPSBzZXJpYWxpemVOb2RlKGN1cnJlbnROb2RlLCBvcHRpb25zKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gaHRtbDtcbn1cbmZ1bmN0aW9uIHNlcmlhbGl6ZU5vZGUobm9kZSwgb3B0aW9ucykge1xuICAgIGlmIChvcHRpb25zLnRyZWVBZGFwdGVyLmlzRWxlbWVudE5vZGUobm9kZSkpIHtcbiAgICAgICAgcmV0dXJuIHNlcmlhbGl6ZUVsZW1lbnQobm9kZSwgb3B0aW9ucyk7XG4gICAgfVxuICAgIGlmIChvcHRpb25zLnRyZWVBZGFwdGVyLmlzVGV4dE5vZGUobm9kZSkpIHtcbiAgICAgICAgcmV0dXJuIHNlcmlhbGl6ZVRleHROb2RlKG5vZGUsIG9wdGlvbnMpO1xuICAgIH1cbiAgICBpZiAob3B0aW9ucy50cmVlQWRhcHRlci5pc0NvbW1lbnROb2RlKG5vZGUpKSB7XG4gICAgICAgIHJldHVybiBzZXJpYWxpemVDb21tZW50Tm9kZShub2RlLCBvcHRpb25zKTtcbiAgICB9XG4gICAgaWYgKG9wdGlvbnMudHJlZUFkYXB0ZXIuaXNEb2N1bWVudFR5cGVOb2RlKG5vZGUpKSB7XG4gICAgICAgIHJldHVybiBzZXJpYWxpemVEb2N1bWVudFR5cGVOb2RlKG5vZGUsIG9wdGlvbnMpO1xuICAgIH1cbiAgICAvLyBSZXR1cm4gYW4gZW1wdHkgc3RyaW5nIGZvciB1bmtub3duIG5vZGVzXG4gICAgcmV0dXJuICcnO1xufVxuZnVuY3Rpb24gc2VyaWFsaXplRWxlbWVudChub2RlLCBvcHRpb25zKSB7XG4gICAgY29uc3QgdG4gPSBvcHRpb25zLnRyZWVBZGFwdGVyLmdldFRhZ05hbWUobm9kZSk7XG4gICAgcmV0dXJuIGA8JHt0bn0ke3NlcmlhbGl6ZUF0dHJpYnV0ZXMobm9kZSwgb3B0aW9ucyl9PiR7aXNWb2lkRWxlbWVudChub2RlLCBvcHRpb25zKSA/ICcnIDogYCR7c2VyaWFsaXplQ2hpbGROb2Rlcyhub2RlLCBvcHRpb25zKX08LyR7dG59PmB9YDtcbn1cbmZ1bmN0aW9uIHNlcmlhbGl6ZUF0dHJpYnV0ZXMobm9kZSwgeyB0cmVlQWRhcHRlciB9KSB7XG4gICAgbGV0IGh0bWwgPSAnJztcbiAgICBmb3IgKGNvbnN0IGF0dHIgb2YgdHJlZUFkYXB0ZXIuZ2V0QXR0ckxpc3Qobm9kZSkpIHtcbiAgICAgICAgaHRtbCArPSAnICc7XG4gICAgICAgIGlmIChhdHRyLm5hbWVzcGFjZSkge1xuICAgICAgICAgICAgc3dpdGNoIChhdHRyLm5hbWVzcGFjZSkge1xuICAgICAgICAgICAgICAgIGNhc2UgTlMuWE1MOiB7XG4gICAgICAgICAgICAgICAgICAgIGh0bWwgKz0gYHhtbDoke2F0dHIubmFtZX1gO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2FzZSBOUy5YTUxOUzoge1xuICAgICAgICAgICAgICAgICAgICBpZiAoYXR0ci5uYW1lICE9PSAneG1sbnMnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBodG1sICs9ICd4bWxuczonO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGh0bWwgKz0gYXR0ci5uYW1lO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2FzZSBOUy5YTElOSzoge1xuICAgICAgICAgICAgICAgICAgICBodG1sICs9IGB4bGluazoke2F0dHIubmFtZX1gO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgICAgICBodG1sICs9IGAke2F0dHIucHJlZml4fToke2F0dHIubmFtZX1gO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGh0bWwgKz0gYXR0ci5uYW1lO1xuICAgICAgICB9XG4gICAgICAgIGh0bWwgKz0gYD1cIiR7ZXNjYXBlQXR0cmlidXRlKGF0dHIudmFsdWUpfVwiYDtcbiAgICB9XG4gICAgcmV0dXJuIGh0bWw7XG59XG5mdW5jdGlvbiBzZXJpYWxpemVUZXh0Tm9kZShub2RlLCBvcHRpb25zKSB7XG4gICAgY29uc3QgeyB0cmVlQWRhcHRlciB9ID0gb3B0aW9ucztcbiAgICBjb25zdCBjb250ZW50ID0gdHJlZUFkYXB0ZXIuZ2V0VGV4dE5vZGVDb250ZW50KG5vZGUpO1xuICAgIGNvbnN0IHBhcmVudCA9IHRyZWVBZGFwdGVyLmdldFBhcmVudE5vZGUobm9kZSk7XG4gICAgY29uc3QgcGFyZW50VG4gPSBwYXJlbnQgJiYgdHJlZUFkYXB0ZXIuaXNFbGVtZW50Tm9kZShwYXJlbnQpICYmIHRyZWVBZGFwdGVyLmdldFRhZ05hbWUocGFyZW50KTtcbiAgICByZXR1cm4gcGFyZW50VG4gJiZcbiAgICAgICAgdHJlZUFkYXB0ZXIuZ2V0TmFtZXNwYWNlVVJJKHBhcmVudCkgPT09IE5TLkhUTUwgJiZcbiAgICAgICAgaGFzVW5lc2NhcGVkVGV4dChwYXJlbnRUbiwgb3B0aW9ucy5zY3JpcHRpbmdFbmFibGVkKVxuICAgICAgICA/IGNvbnRlbnRcbiAgICAgICAgOiBlc2NhcGVUZXh0KGNvbnRlbnQpO1xufVxuZnVuY3Rpb24gc2VyaWFsaXplQ29tbWVudE5vZGUobm9kZSwgeyB0cmVlQWRhcHRlciB9KSB7XG4gICAgcmV0dXJuIGA8IS0tJHt0cmVlQWRhcHRlci5nZXRDb21tZW50Tm9kZUNvbnRlbnQobm9kZSl9LS0+YDtcbn1cbmZ1bmN0aW9uIHNlcmlhbGl6ZURvY3VtZW50VHlwZU5vZGUobm9kZSwgeyB0cmVlQWRhcHRlciB9KSB7XG4gICAgcmV0dXJuIGA8IURPQ1RZUEUgJHt0cmVlQWRhcHRlci5nZXREb2N1bWVudFR5cGVOb2RlTmFtZShub2RlKX0+YDtcbn1cbiIsICJpbXBvcnQgeyBQYXJzZXIgfSBmcm9tICcuL3BhcnNlci9pbmRleC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0VHJlZUFkYXB0ZXIgfSBmcm9tICcuL3RyZWUtYWRhcHRlcnMvZGVmYXVsdC5qcyc7XG5leHBvcnQgeyAvKiogQGludGVybmFsICovIFBhcnNlciB9IGZyb20gJy4vcGFyc2VyL2luZGV4LmpzJztcbmV4cG9ydCB7IHNlcmlhbGl6ZSwgc2VyaWFsaXplT3V0ZXIgfSBmcm9tICcuL3NlcmlhbGl6ZXIvaW5kZXguanMnO1xuZXhwb3J0IHsgRVJSIGFzIEVycm9yQ29kZXMgfSBmcm9tICcuL2NvbW1vbi9lcnJvci1jb2Rlcy5qcyc7XG4vKiogQGludGVybmFsICovXG5leHBvcnQgKiBhcyBmb3JlaWduQ29udGVudCBmcm9tICcuL2NvbW1vbi9mb3JlaWduLWNvbnRlbnQuanMnO1xuZXhwb3J0ICogYXMgaHRtbCBmcm9tICcuL2NvbW1vbi9odG1sLmpzJztcbmV4cG9ydCAqIGFzIFRva2VuIGZyb20gJy4vY29tbW9uL3Rva2VuLmpzJztcbi8qKiBAaW50ZXJuYWwgKi9cbmV4cG9ydCB7IFRva2VuaXplciwgVG9rZW5pemVyTW9kZSB9IGZyb20gJy4vdG9rZW5pemVyL2luZGV4LmpzJztcbi8vIFNob3J0aGFuZHNcbi8qKlxuICogUGFyc2VzIGFuIEhUTUwgc3RyaW5nLlxuICpcbiAqIEBwYXJhbSBodG1sIElucHV0IEhUTUwgc3RyaW5nLlxuICogQHBhcmFtIG9wdGlvbnMgUGFyc2luZyBvcHRpb25zLlxuICogQHJldHVybnMgRG9jdW1lbnRcbiAqXG4gKiBAZXhhbXBsZVxuICpcbiAqIGBgYGpzXG4gKiBjb25zdCBwYXJzZTUgPSByZXF1aXJlKCdwYXJzZTUnKTtcbiAqXG4gKiBjb25zdCBkb2N1bWVudCA9IHBhcnNlNS5wYXJzZSgnPCFET0NUWVBFIGh0bWw+PGh0bWw+PGhlYWQ+PC9oZWFkPjxib2R5PkhpIHRoZXJlITwvYm9keT48L2h0bWw+Jyk7XG4gKlxuICogY29uc29sZS5sb2coZG9jdW1lbnQuY2hpbGROb2Rlc1sxXS50YWdOYW1lKTsgLy8+ICdodG1sJ1xuICpgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlKGh0bWwsIG9wdGlvbnMpIHtcbiAgICByZXR1cm4gUGFyc2VyLnBhcnNlKGh0bWwsIG9wdGlvbnMpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlRnJhZ21lbnQoZnJhZ21lbnRDb250ZXh0LCBodG1sLCBvcHRpb25zKSB7XG4gICAgaWYgKHR5cGVvZiBmcmFnbWVudENvbnRleHQgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIG9wdGlvbnMgPSBodG1sO1xuICAgICAgICBodG1sID0gZnJhZ21lbnRDb250ZXh0O1xuICAgICAgICBmcmFnbWVudENvbnRleHQgPSBudWxsO1xuICAgIH1cbiAgICBjb25zdCBwYXJzZXIgPSBQYXJzZXIuZ2V0RnJhZ21lbnRQYXJzZXIoZnJhZ21lbnRDb250ZXh0LCBvcHRpb25zKTtcbiAgICBwYXJzZXIudG9rZW5pemVyLndyaXRlKGh0bWwsIHRydWUpO1xuICAgIHJldHVybiBwYXJzZXIuZ2V0RnJhZ21lbnQoKTtcbn1cbiIsICJpbXBvcnQgeyBodG1sIH0gZnJvbSAncGFyc2U1JztcbmltcG9ydCB7IEVsZW1lbnQsIERvY3VtZW50LCBQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIENvbW1lbnQsIFRleHQsIGlzRGlyZWN0aXZlLCBpc1RleHQsIGlzQ29tbWVudCwgaXNUYWcsIH0gZnJvbSAnZG9taGFuZGxlcic7XG5mdW5jdGlvbiBlbnF1b3RlRG9jdHlwZUlkKGlkKSB7XG4gICAgY29uc3QgcXVvdGUgPSBpZC5pbmNsdWRlcygnXCInKSA/IFwiJ1wiIDogJ1wiJztcbiAgICByZXR1cm4gcXVvdGUgKyBpZCArIHF1b3RlO1xufVxuLyoqIEBpbnRlcm5hbCAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNlcmlhbGl6ZURvY3R5cGVDb250ZW50KG5hbWUsIHB1YmxpY0lkLCBzeXN0ZW1JZCkge1xuICAgIGxldCBzdHIgPSAnIURPQ1RZUEUgJztcbiAgICBpZiAobmFtZSkge1xuICAgICAgICBzdHIgKz0gbmFtZTtcbiAgICB9XG4gICAgaWYgKHB1YmxpY0lkKSB7XG4gICAgICAgIHN0ciArPSBgIFBVQkxJQyAke2VucXVvdGVEb2N0eXBlSWQocHVibGljSWQpfWA7XG4gICAgfVxuICAgIGVsc2UgaWYgKHN5c3RlbUlkKSB7XG4gICAgICAgIHN0ciArPSAnIFNZU1RFTSc7XG4gICAgfVxuICAgIGlmIChzeXN0ZW1JZCkge1xuICAgICAgICBzdHIgKz0gYCAke2VucXVvdGVEb2N0eXBlSWQoc3lzdGVtSWQpfWA7XG4gICAgfVxuICAgIHJldHVybiBzdHI7XG59XG5leHBvcnQgY29uc3QgYWRhcHRlciA9IHtcbiAgICAvLyBSZS1leHBvcnRzIGZyb20gZG9taGFuZGxlclxuICAgIGlzQ29tbWVudE5vZGU6IGlzQ29tbWVudCxcbiAgICBpc0VsZW1lbnROb2RlOiBpc1RhZyxcbiAgICBpc1RleHROb2RlOiBpc1RleHQsXG4gICAgLy9Ob2RlIGNvbnN0cnVjdGlvblxuICAgIGNyZWF0ZURvY3VtZW50KCkge1xuICAgICAgICBjb25zdCBub2RlID0gbmV3IERvY3VtZW50KFtdKTtcbiAgICAgICAgbm9kZVsneC1tb2RlJ10gPSBodG1sLkRPQ1VNRU5UX01PREUuTk9fUVVJUktTO1xuICAgICAgICByZXR1cm4gbm9kZTtcbiAgICB9LFxuICAgIGNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKSB7XG4gICAgICAgIHJldHVybiBuZXcgRG9jdW1lbnQoW10pO1xuICAgIH0sXG4gICAgY3JlYXRlRWxlbWVudCh0YWdOYW1lLCBuYW1lc3BhY2VVUkksIGF0dHJzKSB7XG4gICAgICAgIGNvbnN0IGF0dHJpYnMgPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuICAgICAgICBjb25zdCBhdHRyaWJzTmFtZXNwYWNlID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgICAgICAgY29uc3QgYXR0cmlic1ByZWZpeCA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYXR0cnMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGNvbnN0IGF0dHJOYW1lID0gYXR0cnNbaV0ubmFtZTtcbiAgICAgICAgICAgIGF0dHJpYnNbYXR0ck5hbWVdID0gYXR0cnNbaV0udmFsdWU7XG4gICAgICAgICAgICBhdHRyaWJzTmFtZXNwYWNlW2F0dHJOYW1lXSA9IGF0dHJzW2ldLm5hbWVzcGFjZTtcbiAgICAgICAgICAgIGF0dHJpYnNQcmVmaXhbYXR0ck5hbWVdID0gYXR0cnNbaV0ucHJlZml4O1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG5vZGUgPSBuZXcgRWxlbWVudCh0YWdOYW1lLCBhdHRyaWJzLCBbXSk7XG4gICAgICAgIG5vZGUubmFtZXNwYWNlID0gbmFtZXNwYWNlVVJJO1xuICAgICAgICBub2RlWyd4LWF0dHJpYnNOYW1lc3BhY2UnXSA9IGF0dHJpYnNOYW1lc3BhY2U7XG4gICAgICAgIG5vZGVbJ3gtYXR0cmlic1ByZWZpeCddID0gYXR0cmlic1ByZWZpeDtcbiAgICAgICAgcmV0dXJuIG5vZGU7XG4gICAgfSxcbiAgICBjcmVhdGVDb21tZW50Tm9kZShkYXRhKSB7XG4gICAgICAgIHJldHVybiBuZXcgQ29tbWVudChkYXRhKTtcbiAgICB9LFxuICAgIGNyZWF0ZVRleHROb2RlKHZhbHVlKSB7XG4gICAgICAgIHJldHVybiBuZXcgVGV4dCh2YWx1ZSk7XG4gICAgfSxcbiAgICAvL1RyZWUgbXV0YXRpb25cbiAgICBhcHBlbmRDaGlsZChwYXJlbnROb2RlLCBuZXdOb2RlKSB7XG4gICAgICAgIGNvbnN0IHByZXYgPSBwYXJlbnROb2RlLmNoaWxkcmVuW3BhcmVudE5vZGUuY2hpbGRyZW4ubGVuZ3RoIC0gMV07XG4gICAgICAgIGlmIChwcmV2KSB7XG4gICAgICAgICAgICBwcmV2Lm5leHQgPSBuZXdOb2RlO1xuICAgICAgICAgICAgbmV3Tm9kZS5wcmV2ID0gcHJldjtcbiAgICAgICAgfVxuICAgICAgICBwYXJlbnROb2RlLmNoaWxkcmVuLnB1c2gobmV3Tm9kZSk7XG4gICAgICAgIG5ld05vZGUucGFyZW50ID0gcGFyZW50Tm9kZTtcbiAgICB9LFxuICAgIGluc2VydEJlZm9yZShwYXJlbnROb2RlLCBuZXdOb2RlLCByZWZlcmVuY2VOb2RlKSB7XG4gICAgICAgIGNvbnN0IGluc2VydGlvbklkeCA9IHBhcmVudE5vZGUuY2hpbGRyZW4uaW5kZXhPZihyZWZlcmVuY2VOb2RlKTtcbiAgICAgICAgY29uc3QgeyBwcmV2IH0gPSByZWZlcmVuY2VOb2RlO1xuICAgICAgICBpZiAocHJldikge1xuICAgICAgICAgICAgcHJldi5uZXh0ID0gbmV3Tm9kZTtcbiAgICAgICAgICAgIG5ld05vZGUucHJldiA9IHByZXY7XG4gICAgICAgIH1cbiAgICAgICAgcmVmZXJlbmNlTm9kZS5wcmV2ID0gbmV3Tm9kZTtcbiAgICAgICAgbmV3Tm9kZS5uZXh0ID0gcmVmZXJlbmNlTm9kZTtcbiAgICAgICAgcGFyZW50Tm9kZS5jaGlsZHJlbi5zcGxpY2UoaW5zZXJ0aW9uSWR4LCAwLCBuZXdOb2RlKTtcbiAgICAgICAgbmV3Tm9kZS5wYXJlbnQgPSBwYXJlbnROb2RlO1xuICAgIH0sXG4gICAgc2V0VGVtcGxhdGVDb250ZW50KHRlbXBsYXRlRWxlbWVudCwgY29udGVudEVsZW1lbnQpIHtcbiAgICAgICAgYWRhcHRlci5hcHBlbmRDaGlsZCh0ZW1wbGF0ZUVsZW1lbnQsIGNvbnRlbnRFbGVtZW50KTtcbiAgICB9LFxuICAgIGdldFRlbXBsYXRlQ29udGVudCh0ZW1wbGF0ZUVsZW1lbnQpIHtcbiAgICAgICAgcmV0dXJuIHRlbXBsYXRlRWxlbWVudC5jaGlsZHJlblswXTtcbiAgICB9LFxuICAgIHNldERvY3VtZW50VHlwZShkb2N1bWVudCwgbmFtZSwgcHVibGljSWQsIHN5c3RlbUlkKSB7XG4gICAgICAgIGNvbnN0IGRhdGEgPSBzZXJpYWxpemVEb2N0eXBlQ29udGVudChuYW1lLCBwdWJsaWNJZCwgc3lzdGVtSWQpO1xuICAgICAgICBsZXQgZG9jdHlwZU5vZGUgPSBkb2N1bWVudC5jaGlsZHJlbi5maW5kKChub2RlKSA9PiBpc0RpcmVjdGl2ZShub2RlKSAmJiBub2RlLm5hbWUgPT09ICchZG9jdHlwZScpO1xuICAgICAgICBpZiAoZG9jdHlwZU5vZGUpIHtcbiAgICAgICAgICAgIGRvY3R5cGVOb2RlLmRhdGEgPSBkYXRhICE9PSBudWxsICYmIGRhdGEgIT09IHZvaWQgMCA/IGRhdGEgOiBudWxsO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgZG9jdHlwZU5vZGUgPSBuZXcgUHJvY2Vzc2luZ0luc3RydWN0aW9uKCchZG9jdHlwZScsIGRhdGEpO1xuICAgICAgICAgICAgYWRhcHRlci5hcHBlbmRDaGlsZChkb2N1bWVudCwgZG9jdHlwZU5vZGUpO1xuICAgICAgICB9XG4gICAgICAgIGRvY3R5cGVOb2RlWyd4LW5hbWUnXSA9IG5hbWU7XG4gICAgICAgIGRvY3R5cGVOb2RlWyd4LXB1YmxpY0lkJ10gPSBwdWJsaWNJZDtcbiAgICAgICAgZG9jdHlwZU5vZGVbJ3gtc3lzdGVtSWQnXSA9IHN5c3RlbUlkO1xuICAgIH0sXG4gICAgc2V0RG9jdW1lbnRNb2RlKGRvY3VtZW50LCBtb2RlKSB7XG4gICAgICAgIGRvY3VtZW50Wyd4LW1vZGUnXSA9IG1vZGU7XG4gICAgfSxcbiAgICBnZXREb2N1bWVudE1vZGUoZG9jdW1lbnQpIHtcbiAgICAgICAgcmV0dXJuIGRvY3VtZW50Wyd4LW1vZGUnXTtcbiAgICB9LFxuICAgIGRldGFjaE5vZGUobm9kZSkge1xuICAgICAgICBpZiAobm9kZS5wYXJlbnQpIHtcbiAgICAgICAgICAgIGNvbnN0IGlkeCA9IG5vZGUucGFyZW50LmNoaWxkcmVuLmluZGV4T2Yobm9kZSk7XG4gICAgICAgICAgICBjb25zdCB7IHByZXYsIG5leHQgfSA9IG5vZGU7XG4gICAgICAgICAgICBub2RlLnByZXYgPSBudWxsO1xuICAgICAgICAgICAgbm9kZS5uZXh0ID0gbnVsbDtcbiAgICAgICAgICAgIGlmIChwcmV2KSB7XG4gICAgICAgICAgICAgICAgcHJldi5uZXh0ID0gbmV4dDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChuZXh0KSB7XG4gICAgICAgICAgICAgICAgbmV4dC5wcmV2ID0gcHJldjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG5vZGUucGFyZW50LmNoaWxkcmVuLnNwbGljZShpZHgsIDEpO1xuICAgICAgICAgICAgbm9kZS5wYXJlbnQgPSBudWxsO1xuICAgICAgICB9XG4gICAgfSxcbiAgICBpbnNlcnRUZXh0KHBhcmVudE5vZGUsIHRleHQpIHtcbiAgICAgICAgY29uc3QgbGFzdENoaWxkID0gcGFyZW50Tm9kZS5jaGlsZHJlbltwYXJlbnROb2RlLmNoaWxkcmVuLmxlbmd0aCAtIDFdO1xuICAgICAgICBpZiAobGFzdENoaWxkICYmIGlzVGV4dChsYXN0Q2hpbGQpKSB7XG4gICAgICAgICAgICBsYXN0Q2hpbGQuZGF0YSArPSB0ZXh0O1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgYWRhcHRlci5hcHBlbmRDaGlsZChwYXJlbnROb2RlLCBhZGFwdGVyLmNyZWF0ZVRleHROb2RlKHRleHQpKTtcbiAgICAgICAgfVxuICAgIH0sXG4gICAgaW5zZXJ0VGV4dEJlZm9yZShwYXJlbnROb2RlLCB0ZXh0LCByZWZlcmVuY2VOb2RlKSB7XG4gICAgICAgIGNvbnN0IHByZXZOb2RlID0gcGFyZW50Tm9kZS5jaGlsZHJlbltwYXJlbnROb2RlLmNoaWxkcmVuLmluZGV4T2YocmVmZXJlbmNlTm9kZSkgLSAxXTtcbiAgICAgICAgaWYgKHByZXZOb2RlICYmIGlzVGV4dChwcmV2Tm9kZSkpIHtcbiAgICAgICAgICAgIHByZXZOb2RlLmRhdGEgKz0gdGV4dDtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGFkYXB0ZXIuaW5zZXJ0QmVmb3JlKHBhcmVudE5vZGUsIGFkYXB0ZXIuY3JlYXRlVGV4dE5vZGUodGV4dCksIHJlZmVyZW5jZU5vZGUpO1xuICAgICAgICB9XG4gICAgfSxcbiAgICBhZG9wdEF0dHJpYnV0ZXMocmVjaXBpZW50LCBhdHRycykge1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGF0dHJzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBjb25zdCBhdHRyTmFtZSA9IGF0dHJzW2ldLm5hbWU7XG4gICAgICAgICAgICBpZiAocmVjaXBpZW50LmF0dHJpYnNbYXR0ck5hbWVdID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICByZWNpcGllbnQuYXR0cmlic1thdHRyTmFtZV0gPSBhdHRyc1tpXS52YWx1ZTtcbiAgICAgICAgICAgICAgICByZWNpcGllbnRbJ3gtYXR0cmlic05hbWVzcGFjZSddW2F0dHJOYW1lXSA9IGF0dHJzW2ldLm5hbWVzcGFjZTtcbiAgICAgICAgICAgICAgICByZWNpcGllbnRbJ3gtYXR0cmlic1ByZWZpeCddW2F0dHJOYW1lXSA9IGF0dHJzW2ldLnByZWZpeDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0sXG4gICAgLy9UcmVlIHRyYXZlcnNpbmdcbiAgICBnZXRGaXJzdENoaWxkKG5vZGUpIHtcbiAgICAgICAgcmV0dXJuIG5vZGUuY2hpbGRyZW5bMF07XG4gICAgfSxcbiAgICBnZXRDaGlsZE5vZGVzKG5vZGUpIHtcbiAgICAgICAgcmV0dXJuIG5vZGUuY2hpbGRyZW47XG4gICAgfSxcbiAgICBnZXRQYXJlbnROb2RlKG5vZGUpIHtcbiAgICAgICAgcmV0dXJuIG5vZGUucGFyZW50O1xuICAgIH0sXG4gICAgZ2V0QXR0ckxpc3QoZWxlbWVudCkge1xuICAgICAgICByZXR1cm4gZWxlbWVudC5hdHRyaWJ1dGVzO1xuICAgIH0sXG4gICAgLy9Ob2RlIGRhdGFcbiAgICBnZXRUYWdOYW1lKGVsZW1lbnQpIHtcbiAgICAgICAgcmV0dXJuIGVsZW1lbnQubmFtZTtcbiAgICB9LFxuICAgIGdldE5hbWVzcGFjZVVSSShlbGVtZW50KSB7XG4gICAgICAgIHJldHVybiBlbGVtZW50Lm5hbWVzcGFjZTtcbiAgICB9LFxuICAgIGdldFRleHROb2RlQ29udGVudCh0ZXh0Tm9kZSkge1xuICAgICAgICByZXR1cm4gdGV4dE5vZGUuZGF0YTtcbiAgICB9LFxuICAgIGdldENvbW1lbnROb2RlQ29udGVudChjb21tZW50Tm9kZSkge1xuICAgICAgICByZXR1cm4gY29tbWVudE5vZGUuZGF0YTtcbiAgICB9LFxuICAgIGdldERvY3VtZW50VHlwZU5vZGVOYW1lKGRvY3R5cGVOb2RlKSB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgcmV0dXJuIChfYSA9IGRvY3R5cGVOb2RlWyd4LW5hbWUnXSkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogJyc7XG4gICAgfSxcbiAgICBnZXREb2N1bWVudFR5cGVOb2RlUHVibGljSWQoZG9jdHlwZU5vZGUpIHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICByZXR1cm4gKF9hID0gZG9jdHlwZU5vZGVbJ3gtcHVibGljSWQnXSkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogJyc7XG4gICAgfSxcbiAgICBnZXREb2N1bWVudFR5cGVOb2RlU3lzdGVtSWQoZG9jdHlwZU5vZGUpIHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICByZXR1cm4gKF9hID0gZG9jdHlwZU5vZGVbJ3gtc3lzdGVtSWQnXSkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogJyc7XG4gICAgfSxcbiAgICAvL05vZGUgdHlwZXNcbiAgICBpc0RvY3VtZW50VHlwZU5vZGUobm9kZSkge1xuICAgICAgICByZXR1cm4gaXNEaXJlY3RpdmUobm9kZSkgJiYgbm9kZS5uYW1lID09PSAnIWRvY3R5cGUnO1xuICAgIH0sXG4gICAgLy8gU291cmNlIGNvZGUgbG9jYXRpb25cbiAgICBzZXROb2RlU291cmNlQ29kZUxvY2F0aW9uKG5vZGUsIGxvY2F0aW9uKSB7XG4gICAgICAgIGlmIChsb2NhdGlvbikge1xuICAgICAgICAgICAgbm9kZS5zdGFydEluZGV4ID0gbG9jYXRpb24uc3RhcnRPZmZzZXQ7XG4gICAgICAgICAgICBub2RlLmVuZEluZGV4ID0gbG9jYXRpb24uZW5kT2Zmc2V0O1xuICAgICAgICB9XG4gICAgICAgIG5vZGUuc291cmNlQ29kZUxvY2F0aW9uID0gbG9jYXRpb247XG4gICAgfSxcbiAgICBnZXROb2RlU291cmNlQ29kZUxvY2F0aW9uKG5vZGUpIHtcbiAgICAgICAgcmV0dXJuIG5vZGUuc291cmNlQ29kZUxvY2F0aW9uO1xuICAgIH0sXG4gICAgdXBkYXRlTm9kZVNvdXJjZUNvZGVMb2NhdGlvbihub2RlLCBlbmRMb2NhdGlvbikge1xuICAgICAgICBpZiAoZW5kTG9jYXRpb24uZW5kT2Zmc2V0ICE9IG51bGwpXG4gICAgICAgICAgICBub2RlLmVuZEluZGV4ID0gZW5kTG9jYXRpb24uZW5kT2Zmc2V0O1xuICAgICAgICBub2RlLnNvdXJjZUNvZGVMb2NhdGlvbiA9IHtcbiAgICAgICAgICAgIC4uLm5vZGUuc291cmNlQ29kZUxvY2F0aW9uLFxuICAgICAgICAgICAgLi4uZW5kTG9jYXRpb24sXG4gICAgICAgIH07XG4gICAgfSxcbn07XG4iLCAiaW1wb3J0IHtcbiAgdHlwZSBBbnlOb2RlLFxuICB0eXBlIERvY3VtZW50LFxuICB0eXBlIFBhcmVudE5vZGUsXG4gIGlzRG9jdW1lbnQsXG59IGZyb20gJ2RvbWhhbmRsZXInO1xuaW1wb3J0IHsgcGFyc2UgYXMgcGFyc2VEb2N1bWVudCwgcGFyc2VGcmFnbWVudCwgc2VyaWFsaXplT3V0ZXIgfSBmcm9tICdwYXJzZTUnO1xuaW1wb3J0IHsgYWRhcHRlciBhcyBodG1scGFyc2VyMkFkYXB0ZXIgfSBmcm9tICdwYXJzZTUtaHRtbHBhcnNlcjItdHJlZS1hZGFwdGVyJztcbmltcG9ydCB0eXBlIHsgSW50ZXJuYWxPcHRpb25zIH0gZnJvbSAnLi4vb3B0aW9ucy5qcyc7XG5cbi8qKlxuICogUGFyc2UgdGhlIGNvbnRlbnQgd2l0aCBgcGFyc2U1YCBpbiB0aGUgY29udGV4dCBvZiB0aGUgZ2l2ZW4gYFBhcmVudE5vZGVgLlxuICpcbiAqIEBwYXJhbSBjb250ZW50IC0gVGhlIGNvbnRlbnQgdG8gcGFyc2UuXG4gKiBAcGFyYW0gb3B0aW9ucyAtIEEgc2V0IG9mIG9wdGlvbnMgdG8gdXNlIHRvIHBhcnNlLlxuICogQHBhcmFtIGlzRG9jdW1lbnQgLSBXaGV0aGVyIHRvIHBhcnNlIHRoZSBjb250ZW50IGFzIGEgZnVsbCBIVE1MIGRvY3VtZW50LlxuICogQHBhcmFtIGNvbnRleHQgLSBUaGUgY29udGV4dCBpbiB3aGljaCB0byBwYXJzZSB0aGUgY29udGVudC5cbiAqIEByZXR1cm5zIFRoZSBwYXJzZWQgY29udGVudC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlV2l0aFBhcnNlNShcbiAgY29udGVudDogc3RyaW5nLFxuICBvcHRpb25zOiBJbnRlcm5hbE9wdGlvbnMsXG4gIGlzRG9jdW1lbnQ6IGJvb2xlYW4sXG4gIGNvbnRleHQ6IFBhcmVudE5vZGUgfCBudWxsLFxuKTogRG9jdW1lbnQge1xuICBvcHRpb25zLnRyZWVBZGFwdGVyID8/PSBodG1scGFyc2VyMkFkYXB0ZXI7XG5cbiAgaWYgKG9wdGlvbnMuc2NyaXB0aW5nRW5hYmxlZCAhPT0gZmFsc2UpIHtcbiAgICBvcHRpb25zLnNjcmlwdGluZ0VuYWJsZWQgPSB0cnVlO1xuICB9XG5cbiAgcmV0dXJuIGlzRG9jdW1lbnRcbiAgICA/IHBhcnNlRG9jdW1lbnQoY29udGVudCwgb3B0aW9ucylcbiAgICA6IHBhcnNlRnJhZ21lbnQoY29udGV4dCwgY29udGVudCwgb3B0aW9ucyk7XG59XG5cbmNvbnN0IHJlbmRlck9wdHMgPSB7IHRyZWVBZGFwdGVyOiBodG1scGFyc2VyMkFkYXB0ZXIgfTtcblxuLyoqXG4gKiBSZW5kZXJzIHRoZSBnaXZlbiBET00gdHJlZSB3aXRoIGBwYXJzZTVgIGFuZCByZXR1cm5zIHRoZSByZXN1bHQgYXMgYSBzdHJpbmcuXG4gKlxuICogQHBhcmFtIGRvbSAtIFRoZSBET00gdHJlZSB0byByZW5kZXIuXG4gKiBAcmV0dXJucyBUaGUgcmVuZGVyZWQgZG9jdW1lbnQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZW5kZXJXaXRoUGFyc2U1KGRvbTogQW55Tm9kZSB8IEFycmF5TGlrZTxBbnlOb2RlPik6IHN0cmluZyB7XG4gIC8qXG4gICAqIGBkb20tc2VyaWFsaXplcmAgcGFzc2VzIG92ZXIgdGhlIHNwZWNpYWwgXCJyb290XCIgbm9kZSBhbmQgcmVuZGVycyB0aGVcbiAgICogbm9kZSdzIGNoaWxkcmVuIGluIGl0cyBwbGFjZS4gVG8gbWltaWMgdGhpcyBiZWhhdmlvciB3aXRoIGBwYXJzZTVgLCBhblxuICAgKiBlcXVpdmFsZW50IG9wZXJhdGlvbiBtdXN0IGJlIGFwcGxpZWQgdG8gdGhlIGlucHV0IGFycmF5LlxuICAgKi9cbiAgY29uc3Qgbm9kZXMgPSAnbGVuZ3RoJyBpbiBkb20gPyBkb20gOiBbZG9tXTtcbiAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IG5vZGVzLmxlbmd0aDsgaW5kZXggKz0gMSkge1xuICAgIGNvbnN0IG5vZGUgPSBub2Rlc1tpbmRleF07XG4gICAgaWYgKGlzRG9jdW1lbnQobm9kZSkpIHtcbiAgICAgIEFycmF5LnByb3RvdHlwZS5zcGxpY2UuY2FsbChub2RlcywgaW5kZXgsIDEsIC4uLm5vZGUuY2hpbGRyZW4pO1xuICAgIH1cbiAgfVxuXG4gIGxldCByZXN1bHQgPSAnJztcbiAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IG5vZGVzLmxlbmd0aDsgaW5kZXggKz0gMSkge1xuICAgIGNvbnN0IG5vZGUgPSBub2Rlc1tpbmRleF07XG4gICAgcmVzdWx0ICs9IHNlcmlhbGl6ZU91dGVyKG5vZGUsIHJlbmRlck9wdHMpO1xuICB9XG5cbiAgcmV0dXJuIHJlc3VsdDtcbn1cbiIsIG51bGwsIG51bGwsIG51bGwsICJpbXBvcnQgeyB0eXBlIENoZWVyaW9BUEksIGdldExvYWQgfSBmcm9tICcuL2xvYWQuanMnO1xuaW1wb3J0IHsgZ2V0UGFyc2UgfSBmcm9tICcuL3BhcnNlLmpzJztcbmltcG9ydCB7IHJlbmRlcldpdGhQYXJzZTUsIHBhcnNlV2l0aFBhcnNlNSB9IGZyb20gJy4vcGFyc2Vycy9wYXJzZTUtYWRhcHRlci5qcyc7XG5pbXBvcnQgdHlwZSB7IENoZWVyaW9PcHRpb25zIH0gZnJvbSAnLi9vcHRpb25zLmpzJztcbmltcG9ydCByZW5kZXJXaXRoSHRtbHBhcnNlcjIgZnJvbSAnZG9tLXNlcmlhbGl6ZXInO1xuaW1wb3J0IHsgcGFyc2VEb2N1bWVudCBhcyBwYXJzZVdpdGhIdG1scGFyc2VyMiB9IGZyb20gJ2h0bWxwYXJzZXIyJztcbmltcG9ydCB0eXBlIHsgQW55Tm9kZSB9IGZyb20gJ2RvbWhhbmRsZXInO1xuXG5jb25zdCBwYXJzZSA9IGdldFBhcnNlKChjb250ZW50LCBvcHRpb25zLCBpc0RvY3VtZW50LCBjb250ZXh0KSA9PlxuICBvcHRpb25zLl91c2VIdG1sUGFyc2VyMlxuICAgID8gcGFyc2VXaXRoSHRtbHBhcnNlcjIoY29udGVudCwgb3B0aW9ucylcbiAgICA6IHBhcnNlV2l0aFBhcnNlNShjb250ZW50LCBvcHRpb25zLCBpc0RvY3VtZW50LCBjb250ZXh0KSxcbik7XG5cbi8vIER1cGxpY2F0ZSBkb2NzIGR1ZSB0byBodHRwczovL2dpdGh1Yi5jb20vVHlwZVN0cm9uZy90eXBlZG9jL2lzc3Vlcy8xNjE2XG4vKipcbiAqIENyZWF0ZSBhIHF1ZXJ5aW5nIGZ1bmN0aW9uLCBib3VuZCB0byBhIGRvY3VtZW50IGNyZWF0ZWQgZnJvbSB0aGUgcHJvdmlkZWRcbiAqIG1hcmt1cC5cbiAqXG4gKiBOb3RlIHRoYXQgc2ltaWxhciB0byB3ZWIgYnJvd3NlciBjb250ZXh0cywgdGhpcyBvcGVyYXRpb24gbWF5IGludHJvZHVjZVxuICogYDxodG1sPmAsIGA8aGVhZD5gLCBhbmQgYDxib2R5PmAgZWxlbWVudHM7IHNldCBgaXNEb2N1bWVudGAgdG8gYGZhbHNlYCB0b1xuICogc3dpdGNoIHRvIGZyYWdtZW50IG1vZGUgYW5kIGRpc2FibGUgdGhpcy5cbiAqXG4gKiBAY2F0ZWdvcnkgTG9hZGluZ1xuICogQHBhcmFtIGNvbnRlbnQgLSBNYXJrdXAgdG8gYmUgbG9hZGVkLlxuICogQHBhcmFtIG9wdGlvbnMgLSBPcHRpb25zIGZvciB0aGUgY3JlYXRlZCBpbnN0YW5jZS5cbiAqIEBwYXJhbSBpc0RvY3VtZW50IC0gQWxsb3dzIHBhcnNlciB0byBiZSBzd2l0Y2hlZCB0byBmcmFnbWVudCBtb2RlLlxuICogQHJldHVybnMgVGhlIGxvYWRlZCBkb2N1bWVudC5cbiAqIEBzZWUge0BsaW5rIGh0dHBzOi8vY2hlZXJpby5qcy5vcmcjbG9hZGluZ30gZm9yIGFkZGl0aW9uYWwgdXNhZ2UgaW5mb3JtYXRpb24uXG4gKi9cbmV4cG9ydCBjb25zdCBsb2FkOiAoXG4gIGNvbnRlbnQ6IHN0cmluZyB8IEFueU5vZGUgfCBBbnlOb2RlW10gfCBCdWZmZXIsXG4gIG9wdGlvbnM/OiBDaGVlcmlvT3B0aW9ucyB8IG51bGwsXG4gIGlzRG9jdW1lbnQ/OiBib29sZWFuLFxuKSA9PiBDaGVlcmlvQVBJID0gZ2V0TG9hZChwYXJzZSwgKGRvbSwgb3B0aW9ucykgPT5cbiAgb3B0aW9ucy5fdXNlSHRtbFBhcnNlcjJcbiAgICA/IHJlbmRlcldpdGhIdG1scGFyc2VyMihkb20sIG9wdGlvbnMpXG4gICAgOiByZW5kZXJXaXRoUGFyc2U1KGRvbSksXG4pO1xuIiwgImltcG9ydCB7IFdyaXRhYmxlIH0gZnJvbSAnbm9kZTpzdHJlYW0nO1xuaW1wb3J0IHsgUGFyc2VyIH0gZnJvbSAncGFyc2U1Jztcbi8qIGVzbGludC1kaXNhYmxlIHVuaWNvcm4vY29uc2lzdGVudC1mdW5jdGlvbi1zY29waW5nIC0tIFRoZSBydWxlIHNlZW1zIHRvIGJlIGJyb2tlbiBoZXJlLiAqL1xuLyoqXG4gKiBTdHJlYW1pbmcgSFRNTCBwYXJzZXIgd2l0aCBzY3JpcHRpbmcgc3VwcG9ydC5cbiAqIEEgW3dyaXRhYmxlIHN0cmVhbV0oaHR0cHM6Ly9ub2RlanMub3JnL2FwaS9zdHJlYW0uaHRtbCNzdHJlYW1fY2xhc3Nfc3RyZWFtX3dyaXRhYmxlKS5cbiAqXG4gKiBAZXhhbXBsZVxuICpcbiAqIGBgYGpzXG4gKiBjb25zdCBQYXJzZXJTdHJlYW0gPSByZXF1aXJlKCdwYXJzZTUtcGFyc2VyLXN0cmVhbScpO1xuICogY29uc3QgaHR0cCA9IHJlcXVpcmUoJ2h0dHAnKTtcbiAqIGNvbnN0IHsgZmluaXNoZWQgfSA9IHJlcXVpcmUoJ25vZGU6c3RyZWFtJyk7XG4gKlxuICogLy8gRmV0Y2ggdGhlIHBhZ2UgY29udGVudCBhbmQgb2J0YWluIGl0J3MgPGhlYWQ+IG5vZGVcbiAqIGh0dHAuZ2V0KCdodHRwOi8vaW5pa3VsaW4uZ2l0aHViLmlvL3BhcnNlNS8nLCByZXMgPT4ge1xuICogICAgIGNvbnN0IHBhcnNlciA9IG5ldyBQYXJzZXJTdHJlYW0oKTtcbiAqXG4gKiAgICAgZmluaXNoZWQocGFyc2VyLCAoKSA9PiB7XG4gKiAgICAgICAgIGNvbnNvbGUubG9nKHBhcnNlci5kb2N1bWVudC5jaGlsZE5vZGVzWzFdLmNoaWxkTm9kZXNbMF0udGFnTmFtZSk7IC8vPiAnaGVhZCdcbiAqICAgICB9KTtcbiAqXG4gKiAgICAgcmVzLnBpcGUocGFyc2VyKTtcbiAqIH0pO1xuICogYGBgXG4gKlxuICovXG5leHBvcnQgY2xhc3MgUGFyc2VyU3RyZWFtIGV4dGVuZHMgV3JpdGFibGUge1xuICAgIHN0YXRpYyBnZXRGcmFnbWVudFN0cmVhbShmcmFnbWVudENvbnRleHQsIG9wdGlvbnMpIHtcbiAgICAgICAgY29uc3QgcGFyc2VyID0gUGFyc2VyLmdldEZyYWdtZW50UGFyc2VyKGZyYWdtZW50Q29udGV4dCwgb3B0aW9ucyk7XG4gICAgICAgIGNvbnN0IHN0cmVhbSA9IG5ldyBQYXJzZXJTdHJlYW0ob3B0aW9ucywgcGFyc2VyKTtcbiAgICAgICAgcmV0dXJuIHN0cmVhbTtcbiAgICB9XG4gICAgLyoqIFRoZSByZXN1bHRpbmcgZG9jdW1lbnQgbm9kZS4gKi9cbiAgICBnZXQgZG9jdW1lbnQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnBhcnNlci5kb2N1bWVudDtcbiAgICB9XG4gICAgZ2V0RnJhZ21lbnQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnBhcnNlci5nZXRGcmFnbWVudCgpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBAcGFyYW0gb3B0aW9ucyBQYXJzaW5nIG9wdGlvbnMuXG4gICAgICovXG4gICAgY29uc3RydWN0b3Iob3B0aW9ucywgcGFyc2VyID0gbmV3IFBhcnNlcihvcHRpb25zKSkge1xuICAgICAgICBzdXBlcih7IGRlY29kZVN0cmluZ3M6IGZhbHNlIH0pO1xuICAgICAgICB0aGlzLnBhcnNlciA9IHBhcnNlcjtcbiAgICAgICAgdGhpcy5sYXN0Q2h1bmtXcml0dGVuID0gZmFsc2U7XG4gICAgICAgIHRoaXMud3JpdGVDYWxsYmFjayA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5wZW5kaW5nSHRtbEluc2VydGlvbnMgPSBbXTtcbiAgICAgICAgY29uc3QgcmVzdW1lID0gKCkgPT4ge1xuICAgICAgICAgICAgZm9yIChsZXQgaSA9IHRoaXMucGVuZGluZ0h0bWxJbnNlcnRpb25zLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5wYXJzZXIudG9rZW5pemVyLmluc2VydEh0bWxBdEN1cnJlbnRQb3ModGhpcy5wZW5kaW5nSHRtbEluc2VydGlvbnNbaV0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5wZW5kaW5nSHRtbEluc2VydGlvbnMubGVuZ3RoID0gMDtcbiAgICAgICAgICAgIC8vTk9URToga2VlcCBwYXJzaW5nIGlmIHdlIGRvbid0IHdhaXQgZm9yIHRoZSBuZXh0IGlucHV0IGNodW5rXG4gICAgICAgICAgICB0aGlzLnBhcnNlci50b2tlbml6ZXIucmVzdW1lKHRoaXMud3JpdGVDYWxsYmFjayk7XG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IGRvY3VtZW50V3JpdGUgPSAoaHRtbCkgPT4ge1xuICAgICAgICAgICAgaWYgKCF0aGlzLnBhcnNlci5zdG9wcGVkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5wZW5kaW5nSHRtbEluc2VydGlvbnMucHVzaChodG1sKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgICAgY29uc3Qgc2NyaXB0SGFuZGxlciA9IChzY3JpcHRFbGVtZW50KSA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy5saXN0ZW5lckNvdW50KCdzY3JpcHQnKSA+IDApIHtcbiAgICAgICAgICAgICAgICB0aGlzLnBhcnNlci50b2tlbml6ZXIucGF1c2UoKTtcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXQoJ3NjcmlwdCcsIHNjcmlwdEVsZW1lbnQsIGRvY3VtZW50V3JpdGUsIHJlc3VtZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICAgIHRoaXMucGFyc2VyLnNjcmlwdEhhbmRsZXIgPSBzY3JpcHRIYW5kbGVyO1xuICAgIH1cbiAgICAvL1dyaXRhYmxlU3RyZWFtIGltcGxlbWVudGF0aW9uXG4gICAgX3dyaXRlKGNodW5rLCBfZW5jb2RpbmcsIGNhbGxiYWNrKSB7XG4gICAgICAgIGlmICh0eXBlb2YgY2h1bmsgIT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdQYXJzZXIgY2FuIHdvcmsgb25seSB3aXRoIHN0cmluZyBzdHJlYW1zLicpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMud3JpdGVDYWxsYmFjayA9IGNhbGxiYWNrO1xuICAgICAgICB0aGlzLnBhcnNlci50b2tlbml6ZXIud3JpdGUoY2h1bmssIHRoaXMubGFzdENodW5rV3JpdHRlbiwgdGhpcy53cml0ZUNhbGxiYWNrKTtcbiAgICB9XG4gICAgLy8gVE9ETyBbZW5naW5lOm5vZGVAPj0xNl06IER1ZSB0byBpc3N1ZXMgd2l0aCBOb2RlIDwgMTYsIHdlIGFyZSBvdmVycmlkaW5nIGBlbmRgIGluc3RlYWQgb2YgYF9maW5hbGAuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICBlbmQoY2h1bmssIGVuY29kaW5nLCBjYWxsYmFjaykge1xuICAgICAgICB0aGlzLmxhc3RDaHVua1dyaXR0ZW4gPSB0cnVlO1xuICAgICAgICBzdXBlci5lbmQoY2h1bmsgfHwgJycsIGVuY29kaW5nLCBjYWxsYmFjayk7XG4gICAgfVxufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW5kZXguanMubWFwIiwgIi8qIGVzbGludC1kaXNhYmxlIG5vZGUvbm8tZGVwcmVjYXRlZC1hcGkgKi9cblxuJ3VzZSBzdHJpY3QnXG5cbnZhciBidWZmZXIgPSByZXF1aXJlKCdidWZmZXInKVxudmFyIEJ1ZmZlciA9IGJ1ZmZlci5CdWZmZXJcblxudmFyIHNhZmVyID0ge31cblxudmFyIGtleVxuXG5mb3IgKGtleSBpbiBidWZmZXIpIHtcbiAgaWYgKCFidWZmZXIuaGFzT3duUHJvcGVydHkoa2V5KSkgY29udGludWVcbiAgaWYgKGtleSA9PT0gJ1Nsb3dCdWZmZXInIHx8IGtleSA9PT0gJ0J1ZmZlcicpIGNvbnRpbnVlXG4gIHNhZmVyW2tleV0gPSBidWZmZXJba2V5XVxufVxuXG52YXIgU2FmZXIgPSBzYWZlci5CdWZmZXIgPSB7fVxuZm9yIChrZXkgaW4gQnVmZmVyKSB7XG4gIGlmICghQnVmZmVyLmhhc093blByb3BlcnR5KGtleSkpIGNvbnRpbnVlXG4gIGlmIChrZXkgPT09ICdhbGxvY1Vuc2FmZScgfHwga2V5ID09PSAnYWxsb2NVbnNhZmVTbG93JykgY29udGludWVcbiAgU2FmZXJba2V5XSA9IEJ1ZmZlcltrZXldXG59XG5cbnNhZmVyLkJ1ZmZlci5wcm90b3R5cGUgPSBCdWZmZXIucHJvdG90eXBlXG5cbmlmICghU2FmZXIuZnJvbSB8fCBTYWZlci5mcm9tID09PSBVaW50OEFycmF5LmZyb20pIHtcbiAgU2FmZXIuZnJvbSA9IGZ1bmN0aW9uICh2YWx1ZSwgZW5jb2RpbmdPck9mZnNldCwgbGVuZ3RoKSB7XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicpIHtcbiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ1RoZSBcInZhbHVlXCIgYXJndW1lbnQgbXVzdCBub3QgYmUgb2YgdHlwZSBudW1iZXIuIFJlY2VpdmVkIHR5cGUgJyArIHR5cGVvZiB2YWx1ZSlcbiAgICB9XG4gICAgaWYgKHZhbHVlICYmIHR5cGVvZiB2YWx1ZS5sZW5ndGggPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdUaGUgZmlyc3QgYXJndW1lbnQgbXVzdCBiZSBvbmUgb2YgdHlwZSBzdHJpbmcsIEJ1ZmZlciwgQXJyYXlCdWZmZXIsIEFycmF5LCBvciBBcnJheS1saWtlIE9iamVjdC4gUmVjZWl2ZWQgdHlwZSAnICsgdHlwZW9mIHZhbHVlKVxuICAgIH1cbiAgICByZXR1cm4gQnVmZmVyKHZhbHVlLCBlbmNvZGluZ09yT2Zmc2V0LCBsZW5ndGgpXG4gIH1cbn1cblxuaWYgKCFTYWZlci5hbGxvYykge1xuICBTYWZlci5hbGxvYyA9IGZ1bmN0aW9uIChzaXplLCBmaWxsLCBlbmNvZGluZykge1xuICAgIGlmICh0eXBlb2Ygc2l6ZSAhPT0gJ251bWJlcicpIHtcbiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ1RoZSBcInNpemVcIiBhcmd1bWVudCBtdXN0IGJlIG9mIHR5cGUgbnVtYmVyLiBSZWNlaXZlZCB0eXBlICcgKyB0eXBlb2Ygc2l6ZSlcbiAgICB9XG4gICAgaWYgKHNpemUgPCAwIHx8IHNpemUgPj0gMiAqICgxIDw8IDMwKSkge1xuICAgICAgdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ1RoZSB2YWx1ZSBcIicgKyBzaXplICsgJ1wiIGlzIGludmFsaWQgZm9yIG9wdGlvbiBcInNpemVcIicpXG4gICAgfVxuICAgIHZhciBidWYgPSBCdWZmZXIoc2l6ZSlcbiAgICBpZiAoIWZpbGwgfHwgZmlsbC5sZW5ndGggPT09IDApIHtcbiAgICAgIGJ1Zi5maWxsKDApXG4gICAgfSBlbHNlIGlmICh0eXBlb2YgZW5jb2RpbmcgPT09ICdzdHJpbmcnKSB7XG4gICAgICBidWYuZmlsbChmaWxsLCBlbmNvZGluZylcbiAgICB9IGVsc2Uge1xuICAgICAgYnVmLmZpbGwoZmlsbClcbiAgICB9XG4gICAgcmV0dXJuIGJ1ZlxuICB9XG59XG5cbmlmICghc2FmZXIua1N0cmluZ01heExlbmd0aCkge1xuICB0cnkge1xuICAgIHNhZmVyLmtTdHJpbmdNYXhMZW5ndGggPSBwcm9jZXNzLmJpbmRpbmcoJ2J1ZmZlcicpLmtTdHJpbmdNYXhMZW5ndGhcbiAgfSBjYXRjaCAoZSkge1xuICAgIC8vIHdlIGNhbid0IGRldGVybWluZSBrU3RyaW5nTWF4TGVuZ3RoIGluIGVudmlyb25tZW50cyB3aGVyZSBwcm9jZXNzLmJpbmRpbmdcbiAgICAvLyBpcyB1bnN1cHBvcnRlZCwgc28gbGV0J3Mgbm90IHNldCBpdFxuICB9XG59XG5cbmlmICghc2FmZXIuY29uc3RhbnRzKSB7XG4gIHNhZmVyLmNvbnN0YW50cyA9IHtcbiAgICBNQVhfTEVOR1RIOiBzYWZlci5rTWF4TGVuZ3RoXG4gIH1cbiAgaWYgKHNhZmVyLmtTdHJpbmdNYXhMZW5ndGgpIHtcbiAgICBzYWZlci5jb25zdGFudHMuTUFYX1NUUklOR19MRU5HVEggPSBzYWZlci5rU3RyaW5nTWF4TGVuZ3RoXG4gIH1cbn1cblxubW9kdWxlLmV4cG9ydHMgPSBzYWZlclxuIiwgIlwidXNlIHN0cmljdFwiO1xuXG52YXIgQk9NQ2hhciA9ICdcXHVGRUZGJztcblxuZXhwb3J0cy5QcmVwZW5kQk9NID0gUHJlcGVuZEJPTVdyYXBwZXJcbmZ1bmN0aW9uIFByZXBlbmRCT01XcmFwcGVyKGVuY29kZXIsIG9wdGlvbnMpIHtcbiAgICB0aGlzLmVuY29kZXIgPSBlbmNvZGVyO1xuICAgIHRoaXMuYWRkQk9NID0gdHJ1ZTtcbn1cblxuUHJlcGVuZEJPTVdyYXBwZXIucHJvdG90eXBlLndyaXRlID0gZnVuY3Rpb24oc3RyKSB7XG4gICAgaWYgKHRoaXMuYWRkQk9NKSB7XG4gICAgICAgIHN0ciA9IEJPTUNoYXIgKyBzdHI7XG4gICAgICAgIHRoaXMuYWRkQk9NID0gZmFsc2U7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuZW5jb2Rlci53cml0ZShzdHIpO1xufVxuXG5QcmVwZW5kQk9NV3JhcHBlci5wcm90b3R5cGUuZW5kID0gZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMuZW5jb2Rlci5lbmQoKTtcbn1cblxuXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5leHBvcnRzLlN0cmlwQk9NID0gU3RyaXBCT01XcmFwcGVyO1xuZnVuY3Rpb24gU3RyaXBCT01XcmFwcGVyKGRlY29kZXIsIG9wdGlvbnMpIHtcbiAgICB0aGlzLmRlY29kZXIgPSBkZWNvZGVyO1xuICAgIHRoaXMucGFzcyA9IGZhbHNlO1xuICAgIHRoaXMub3B0aW9ucyA9IG9wdGlvbnMgfHwge307XG59XG5cblN0cmlwQk9NV3JhcHBlci5wcm90b3R5cGUud3JpdGUgPSBmdW5jdGlvbihidWYpIHtcbiAgICB2YXIgcmVzID0gdGhpcy5kZWNvZGVyLndyaXRlKGJ1Zik7XG4gICAgaWYgKHRoaXMucGFzcyB8fCAhcmVzKVxuICAgICAgICByZXR1cm4gcmVzO1xuXG4gICAgaWYgKHJlc1swXSA9PT0gQk9NQ2hhcikge1xuICAgICAgICByZXMgPSByZXMuc2xpY2UoMSk7XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5vcHRpb25zLnN0cmlwQk9NID09PSAnZnVuY3Rpb24nKVxuICAgICAgICAgICAgdGhpcy5vcHRpb25zLnN0cmlwQk9NKCk7XG4gICAgfVxuXG4gICAgdGhpcy5wYXNzID0gdHJ1ZTtcbiAgICByZXR1cm4gcmVzO1xufVxuXG5TdHJpcEJPTVdyYXBwZXIucHJvdG90eXBlLmVuZCA9IGZ1bmN0aW9uKCkge1xuICAgIHJldHVybiB0aGlzLmRlY29kZXIuZW5kKCk7XG59XG5cbiIsICJcInVzZSBzdHJpY3RcIjtcbnZhciBCdWZmZXIgPSByZXF1aXJlKFwic2FmZXItYnVmZmVyXCIpLkJ1ZmZlcjtcblxuLy8gRXhwb3J0IE5vZGUuanMgaW50ZXJuYWwgZW5jb2RpbmdzLlxuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgICAvLyBFbmNvZGluZ3NcbiAgICB1dGY4OiAgIHsgdHlwZTogXCJfaW50ZXJuYWxcIiwgYm9tQXdhcmU6IHRydWV9LFxuICAgIGNlc3U4OiAgeyB0eXBlOiBcIl9pbnRlcm5hbFwiLCBib21Bd2FyZTogdHJ1ZX0sXG4gICAgdW5pY29kZTExdXRmODogXCJ1dGY4XCIsXG5cbiAgICB1Y3MyOiAgIHsgdHlwZTogXCJfaW50ZXJuYWxcIiwgYm9tQXdhcmU6IHRydWV9LFxuICAgIHV0ZjE2bGU6IFwidWNzMlwiLFxuXG4gICAgYmluYXJ5OiB7IHR5cGU6IFwiX2ludGVybmFsXCIgfSxcbiAgICBiYXNlNjQ6IHsgdHlwZTogXCJfaW50ZXJuYWxcIiB9LFxuICAgIGhleDogICAgeyB0eXBlOiBcIl9pbnRlcm5hbFwiIH0sXG5cbiAgICAvLyBDb2RlYy5cbiAgICBfaW50ZXJuYWw6IEludGVybmFsQ29kZWMsXG59O1xuXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5mdW5jdGlvbiBJbnRlcm5hbENvZGVjKGNvZGVjT3B0aW9ucywgaWNvbnYpIHtcbiAgICB0aGlzLmVuYyA9IGNvZGVjT3B0aW9ucy5lbmNvZGluZ05hbWU7XG4gICAgdGhpcy5ib21Bd2FyZSA9IGNvZGVjT3B0aW9ucy5ib21Bd2FyZTtcblxuICAgIGlmICh0aGlzLmVuYyA9PT0gXCJiYXNlNjRcIilcbiAgICAgICAgdGhpcy5lbmNvZGVyID0gSW50ZXJuYWxFbmNvZGVyQmFzZTY0O1xuICAgIGVsc2UgaWYgKHRoaXMuZW5jID09PSBcImNlc3U4XCIpIHtcbiAgICAgICAgdGhpcy5lbmMgPSBcInV0ZjhcIjsgLy8gVXNlIHV0ZjggZm9yIGRlY29kaW5nLlxuICAgICAgICB0aGlzLmVuY29kZXIgPSBJbnRlcm5hbEVuY29kZXJDZXN1ODtcblxuICAgICAgICAvLyBBZGQgZGVjb2RlciBmb3IgdmVyc2lvbnMgb2YgTm9kZSBub3Qgc3VwcG9ydGluZyBDRVNVLThcbiAgICAgICAgaWYgKEJ1ZmZlci5mcm9tKCdlZGEwYmRlZGIyYTknLCAnaGV4JykudG9TdHJpbmcoKSAhPT0gJ1x1RDgzRFx1RENBOScpIHtcbiAgICAgICAgICAgIHRoaXMuZGVjb2RlciA9IEludGVybmFsRGVjb2RlckNlc3U4O1xuICAgICAgICAgICAgdGhpcy5kZWZhdWx0Q2hhclVuaWNvZGUgPSBpY29udi5kZWZhdWx0Q2hhclVuaWNvZGU7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkludGVybmFsQ29kZWMucHJvdG90eXBlLmVuY29kZXIgPSBJbnRlcm5hbEVuY29kZXI7XG5JbnRlcm5hbENvZGVjLnByb3RvdHlwZS5kZWNvZGVyID0gSW50ZXJuYWxEZWNvZGVyO1xuXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vLyBXZSB1c2Ugbm9kZS5qcyBpbnRlcm5hbCBkZWNvZGVyLiBJdHMgc2lnbmF0dXJlIGlzIHRoZSBzYW1lIGFzIG91cnMuXG52YXIgU3RyaW5nRGVjb2RlciA9IHJlcXVpcmUoJ3N0cmluZ19kZWNvZGVyJykuU3RyaW5nRGVjb2RlcjtcblxuaWYgKCFTdHJpbmdEZWNvZGVyLnByb3RvdHlwZS5lbmQpIC8vIE5vZGUgdjAuOCBkb2Vzbid0IGhhdmUgdGhpcyBtZXRob2QuXG4gICAgU3RyaW5nRGVjb2Rlci5wcm90b3R5cGUuZW5kID0gZnVuY3Rpb24oKSB7fTtcblxuXG5mdW5jdGlvbiBJbnRlcm5hbERlY29kZXIob3B0aW9ucywgY29kZWMpIHtcbiAgICB0aGlzLmRlY29kZXIgPSBuZXcgU3RyaW5nRGVjb2Rlcihjb2RlYy5lbmMpO1xufVxuXG5JbnRlcm5hbERlY29kZXIucHJvdG90eXBlLndyaXRlID0gZnVuY3Rpb24oYnVmKSB7XG4gICAgaWYgKCFCdWZmZXIuaXNCdWZmZXIoYnVmKSkge1xuICAgICAgICBidWYgPSBCdWZmZXIuZnJvbShidWYpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmRlY29kZXIud3JpdGUoYnVmKTtcbn1cblxuSW50ZXJuYWxEZWNvZGVyLnByb3RvdHlwZS5lbmQgPSBmdW5jdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy5kZWNvZGVyLmVuZCgpO1xufVxuXG5cbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBFbmNvZGVyIGlzIG1vc3RseSB0cml2aWFsXG5cbmZ1bmN0aW9uIEludGVybmFsRW5jb2RlcihvcHRpb25zLCBjb2RlYykge1xuICAgIHRoaXMuZW5jID0gY29kZWMuZW5jO1xufVxuXG5JbnRlcm5hbEVuY29kZXIucHJvdG90eXBlLndyaXRlID0gZnVuY3Rpb24oc3RyKSB7XG4gICAgcmV0dXJuIEJ1ZmZlci5mcm9tKHN0ciwgdGhpcy5lbmMpO1xufVxuXG5JbnRlcm5hbEVuY29kZXIucHJvdG90eXBlLmVuZCA9IGZ1bmN0aW9uKCkge1xufVxuXG5cbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBFeGNlcHQgYmFzZTY0IGVuY29kZXIsIHdoaWNoIG11c3Qga2VlcCBpdHMgc3RhdGUuXG5cbmZ1bmN0aW9uIEludGVybmFsRW5jb2RlckJhc2U2NChvcHRpb25zLCBjb2RlYykge1xuICAgIHRoaXMucHJldlN0ciA9ICcnO1xufVxuXG5JbnRlcm5hbEVuY29kZXJCYXNlNjQucHJvdG90eXBlLndyaXRlID0gZnVuY3Rpb24oc3RyKSB7XG4gICAgc3RyID0gdGhpcy5wcmV2U3RyICsgc3RyO1xuICAgIHZhciBjb21wbGV0ZVF1YWRzID0gc3RyLmxlbmd0aCAtIChzdHIubGVuZ3RoICUgNCk7XG4gICAgdGhpcy5wcmV2U3RyID0gc3RyLnNsaWNlKGNvbXBsZXRlUXVhZHMpO1xuICAgIHN0ciA9IHN0ci5zbGljZSgwLCBjb21wbGV0ZVF1YWRzKTtcblxuICAgIHJldHVybiBCdWZmZXIuZnJvbShzdHIsIFwiYmFzZTY0XCIpO1xufVxuXG5JbnRlcm5hbEVuY29kZXJCYXNlNjQucHJvdG90eXBlLmVuZCA9IGZ1bmN0aW9uKCkge1xuICAgIHJldHVybiBCdWZmZXIuZnJvbSh0aGlzLnByZXZTdHIsIFwiYmFzZTY0XCIpO1xufVxuXG5cbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBDRVNVLTggZW5jb2RlciBpcyBhbHNvIHNwZWNpYWwuXG5cbmZ1bmN0aW9uIEludGVybmFsRW5jb2RlckNlc3U4KG9wdGlvbnMsIGNvZGVjKSB7XG59XG5cbkludGVybmFsRW5jb2RlckNlc3U4LnByb3RvdHlwZS53cml0ZSA9IGZ1bmN0aW9uKHN0cikge1xuICAgIHZhciBidWYgPSBCdWZmZXIuYWxsb2Moc3RyLmxlbmd0aCAqIDMpLCBidWZJZHggPSAwO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc3RyLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIHZhciBjaGFyQ29kZSA9IHN0ci5jaGFyQ29kZUF0KGkpO1xuICAgICAgICAvLyBOYWl2ZSBpbXBsZW1lbnRhdGlvbiwgYnV0IGl0IHdvcmtzIGJlY2F1c2UgQ0VTVS04IGlzIGVzcGVjaWFsbHkgZWFzeVxuICAgICAgICAvLyB0byBjb252ZXJ0IGZyb20gVVRGLTE2ICh3aGljaCBhbGwgSlMgc3RyaW5ncyBhcmUgZW5jb2RlZCBpbikuXG4gICAgICAgIGlmIChjaGFyQ29kZSA8IDB4ODApXG4gICAgICAgICAgICBidWZbYnVmSWR4KytdID0gY2hhckNvZGU7XG4gICAgICAgIGVsc2UgaWYgKGNoYXJDb2RlIDwgMHg4MDApIHtcbiAgICAgICAgICAgIGJ1ZltidWZJZHgrK10gPSAweEMwICsgKGNoYXJDb2RlID4+PiA2KTtcbiAgICAgICAgICAgIGJ1ZltidWZJZHgrK10gPSAweDgwICsgKGNoYXJDb2RlICYgMHgzZik7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7IC8vIGNoYXJDb2RlIHdpbGwgYWx3YXlzIGJlIDwgMHgxMDAwMCBpbiBqYXZhc2NyaXB0LlxuICAgICAgICAgICAgYnVmW2J1ZklkeCsrXSA9IDB4RTAgKyAoY2hhckNvZGUgPj4+IDEyKTtcbiAgICAgICAgICAgIGJ1ZltidWZJZHgrK10gPSAweDgwICsgKChjaGFyQ29kZSA+Pj4gNikgJiAweDNmKTtcbiAgICAgICAgICAgIGJ1ZltidWZJZHgrK10gPSAweDgwICsgKGNoYXJDb2RlICYgMHgzZik7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGJ1Zi5zbGljZSgwLCBidWZJZHgpO1xufVxuXG5JbnRlcm5hbEVuY29kZXJDZXN1OC5wcm90b3R5cGUuZW5kID0gZnVuY3Rpb24oKSB7XG59XG5cbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBDRVNVLTggZGVjb2RlciBpcyBub3QgaW1wbGVtZW50ZWQgaW4gTm9kZSB2NC4wK1xuXG5mdW5jdGlvbiBJbnRlcm5hbERlY29kZXJDZXN1OChvcHRpb25zLCBjb2RlYykge1xuICAgIHRoaXMuYWNjID0gMDtcbiAgICB0aGlzLmNvbnRCeXRlcyA9IDA7XG4gICAgdGhpcy5hY2NCeXRlcyA9IDA7XG4gICAgdGhpcy5kZWZhdWx0Q2hhclVuaWNvZGUgPSBjb2RlYy5kZWZhdWx0Q2hhclVuaWNvZGU7XG59XG5cbkludGVybmFsRGVjb2RlckNlc3U4LnByb3RvdHlwZS53cml0ZSA9IGZ1bmN0aW9uKGJ1Zikge1xuICAgIHZhciBhY2MgPSB0aGlzLmFjYywgY29udEJ5dGVzID0gdGhpcy5jb250Qnl0ZXMsIGFjY0J5dGVzID0gdGhpcy5hY2NCeXRlcywgXG4gICAgICAgIHJlcyA9ICcnO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYnVmLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIHZhciBjdXJCeXRlID0gYnVmW2ldO1xuICAgICAgICBpZiAoKGN1ckJ5dGUgJiAweEMwKSAhPT0gMHg4MCkgeyAvLyBMZWFkaW5nIGJ5dGVcbiAgICAgICAgICAgIGlmIChjb250Qnl0ZXMgPiAwKSB7IC8vIFByZXZpb3VzIGNvZGUgaXMgaW52YWxpZFxuICAgICAgICAgICAgICAgIHJlcyArPSB0aGlzLmRlZmF1bHRDaGFyVW5pY29kZTtcbiAgICAgICAgICAgICAgICBjb250Qnl0ZXMgPSAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoY3VyQnl0ZSA8IDB4ODApIHsgLy8gU2luZ2xlLWJ5dGUgY29kZVxuICAgICAgICAgICAgICAgIHJlcyArPSBTdHJpbmcuZnJvbUNoYXJDb2RlKGN1ckJ5dGUpO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChjdXJCeXRlIDwgMHhFMCkgeyAvLyBUd28tYnl0ZSBjb2RlXG4gICAgICAgICAgICAgICAgYWNjID0gY3VyQnl0ZSAmIDB4MUY7XG4gICAgICAgICAgICAgICAgY29udEJ5dGVzID0gMTsgYWNjQnl0ZXMgPSAxO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChjdXJCeXRlIDwgMHhGMCkgeyAvLyBUaHJlZS1ieXRlIGNvZGVcbiAgICAgICAgICAgICAgICBhY2MgPSBjdXJCeXRlICYgMHgwRjtcbiAgICAgICAgICAgICAgICBjb250Qnl0ZXMgPSAyOyBhY2NCeXRlcyA9IDE7XG4gICAgICAgICAgICB9IGVsc2UgeyAvLyBGb3VyIG9yIG1vcmUgYXJlIG5vdCBzdXBwb3J0ZWQgZm9yIENFU1UtOC5cbiAgICAgICAgICAgICAgICByZXMgKz0gdGhpcy5kZWZhdWx0Q2hhclVuaWNvZGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7IC8vIENvbnRpbnVhdGlvbiBieXRlXG4gICAgICAgICAgICBpZiAoY29udEJ5dGVzID4gMCkgeyAvLyBXZSdyZSB3YWl0aW5nIGZvciBpdC5cbiAgICAgICAgICAgICAgICBhY2MgPSAoYWNjIDw8IDYpIHwgKGN1ckJ5dGUgJiAweDNmKTtcbiAgICAgICAgICAgICAgICBjb250Qnl0ZXMtLTsgYWNjQnl0ZXMrKztcbiAgICAgICAgICAgICAgICBpZiAoY29udEJ5dGVzID09PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIENoZWNrIGZvciBvdmVybG9uZyBlbmNvZGluZywgYnV0IHN1cHBvcnQgTW9kaWZpZWQgVVRGLTggKGVuY29kaW5nIE5VTEwgYXMgQzAgODApXG4gICAgICAgICAgICAgICAgICAgIGlmIChhY2NCeXRlcyA9PT0gMiAmJiBhY2MgPCAweDgwICYmIGFjYyA+IDApXG4gICAgICAgICAgICAgICAgICAgICAgICByZXMgKz0gdGhpcy5kZWZhdWx0Q2hhclVuaWNvZGU7XG4gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKGFjY0J5dGVzID09PSAzICYmIGFjYyA8IDB4ODAwKVxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzICs9IHRoaXMuZGVmYXVsdENoYXJVbmljb2RlO1xuICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBBY3R1YWxseSBhZGQgY2hhcmFjdGVyLlxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzICs9IFN0cmluZy5mcm9tQ2hhckNvZGUoYWNjKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2UgeyAvLyBVbmV4cGVjdGVkIGNvbnRpbnVhdGlvbiBieXRlXG4gICAgICAgICAgICAgICAgcmVzICs9IHRoaXMuZGVmYXVsdENoYXJVbmljb2RlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIHRoaXMuYWNjID0gYWNjOyB0aGlzLmNvbnRCeXRlcyA9IGNvbnRCeXRlczsgdGhpcy5hY2NCeXRlcyA9IGFjY0J5dGVzO1xuICAgIHJldHVybiByZXM7XG59XG5cbkludGVybmFsRGVjb2RlckNlc3U4LnByb3RvdHlwZS5lbmQgPSBmdW5jdGlvbigpIHtcbiAgICB2YXIgcmVzID0gMDtcbiAgICBpZiAodGhpcy5jb250Qnl0ZXMgPiAwKVxuICAgICAgICByZXMgKz0gdGhpcy5kZWZhdWx0Q2hhclVuaWNvZGU7XG4gICAgcmV0dXJuIHJlcztcbn1cbiIsICIndXNlIHN0cmljdCc7XG5cbnZhciBCdWZmZXIgPSByZXF1aXJlKCdzYWZlci1idWZmZXInKS5CdWZmZXI7XG5cbi8vID09IFVURjMyLUxFL0JFIGNvZGVjLiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbmV4cG9ydHMuX3V0ZjMyID0gVXRmMzJDb2RlYztcblxuZnVuY3Rpb24gVXRmMzJDb2RlYyhjb2RlY09wdGlvbnMsIGljb252KSB7XG4gICAgdGhpcy5pY29udiA9IGljb252O1xuICAgIHRoaXMuYm9tQXdhcmUgPSB0cnVlO1xuICAgIHRoaXMuaXNMRSA9IGNvZGVjT3B0aW9ucy5pc0xFO1xufVxuXG5leHBvcnRzLnV0ZjMybGUgPSB7IHR5cGU6ICdfdXRmMzInLCBpc0xFOiB0cnVlIH07XG5leHBvcnRzLnV0ZjMyYmUgPSB7IHR5cGU6ICdfdXRmMzInLCBpc0xFOiBmYWxzZSB9O1xuXG4vLyBBbGlhc2VzXG5leHBvcnRzLnVjczRsZSA9ICd1dGYzMmxlJztcbmV4cG9ydHMudWNzNGJlID0gJ3V0ZjMyYmUnO1xuXG5VdGYzMkNvZGVjLnByb3RvdHlwZS5lbmNvZGVyID0gVXRmMzJFbmNvZGVyO1xuVXRmMzJDb2RlYy5wcm90b3R5cGUuZGVjb2RlciA9IFV0ZjMyRGVjb2RlcjtcblxuLy8gLS0gRW5jb2RpbmdcblxuZnVuY3Rpb24gVXRmMzJFbmNvZGVyKG9wdGlvbnMsIGNvZGVjKSB7XG4gICAgdGhpcy5pc0xFID0gY29kZWMuaXNMRTtcbiAgICB0aGlzLmhpZ2hTdXJyb2dhdGUgPSAwO1xufVxuXG5VdGYzMkVuY29kZXIucHJvdG90eXBlLndyaXRlID0gZnVuY3Rpb24oc3RyKSB7XG4gICAgdmFyIHNyYyA9IEJ1ZmZlci5mcm9tKHN0ciwgJ3VjczInKTtcbiAgICB2YXIgZHN0ID0gQnVmZmVyLmFsbG9jKHNyYy5sZW5ndGggKiAyKTtcbiAgICB2YXIgd3JpdGUzMiA9IHRoaXMuaXNMRSA/IGRzdC53cml0ZVVJbnQzMkxFIDogZHN0LndyaXRlVUludDMyQkU7XG4gICAgdmFyIG9mZnNldCA9IDA7XG5cbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHNyYy5sZW5ndGg7IGkgKz0gMikge1xuICAgICAgICB2YXIgY29kZSA9IHNyYy5yZWFkVUludDE2TEUoaSk7XG4gICAgICAgIHZhciBpc0hpZ2hTdXJyb2dhdGUgPSAoMHhEODAwIDw9IGNvZGUgJiYgY29kZSA8IDB4REMwMCk7XG4gICAgICAgIHZhciBpc0xvd1N1cnJvZ2F0ZSA9ICgweERDMDAgPD0gY29kZSAmJiBjb2RlIDwgMHhFMDAwKTtcblxuICAgICAgICBpZiAodGhpcy5oaWdoU3Vycm9nYXRlKSB7XG4gICAgICAgICAgICBpZiAoaXNIaWdoU3Vycm9nYXRlIHx8ICFpc0xvd1N1cnJvZ2F0ZSkge1xuICAgICAgICAgICAgICAgIC8vIFRoZXJlIHNob3VsZG4ndCBiZSB0d28gaGlnaCBzdXJyb2dhdGVzIGluIGEgcm93LCBub3IgYSBoaWdoIHN1cnJvZ2F0ZSB3aGljaCBpc24ndCBmb2xsb3dlZCBieSBhIGxvd1xuICAgICAgICAgICAgICAgIC8vIHN1cnJvZ2F0ZS4gSWYgdGhpcyBoYXBwZW5zLCBrZWVwIHRoZSBwZW5kaW5nIGhpZ2ggc3Vycm9nYXRlIGFzIGEgc3RhbmQtYWxvbmUgc2VtaS1pbnZhbGlkIGNoYXJhY3RlclxuICAgICAgICAgICAgICAgIC8vICh0ZWNobmljYWxseSB3cm9uZywgYnV0IGV4cGVjdGVkIGJ5IHNvbWUgYXBwbGljYXRpb25zLCBsaWtlIFdpbmRvd3MgZmlsZSBuYW1lcykuXG4gICAgICAgICAgICAgICAgd3JpdGUzMi5jYWxsKGRzdCwgdGhpcy5oaWdoU3Vycm9nYXRlLCBvZmZzZXQpO1xuICAgICAgICAgICAgICAgIG9mZnNldCArPSA0O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgLy8gQ3JlYXRlIDMyLWJpdCB2YWx1ZSBmcm9tIGhpZ2ggYW5kIGxvdyBzdXJyb2dhdGVzO1xuICAgICAgICAgICAgICAgIHZhciBjb2RlcG9pbnQgPSAoKCh0aGlzLmhpZ2hTdXJyb2dhdGUgLSAweEQ4MDApIDw8IDEwKSB8IChjb2RlIC0gMHhEQzAwKSkgKyAweDEwMDAwO1xuXG4gICAgICAgICAgICAgICAgd3JpdGUzMi5jYWxsKGRzdCwgY29kZXBvaW50LCBvZmZzZXQpO1xuICAgICAgICAgICAgICAgIG9mZnNldCArPSA0O1xuICAgICAgICAgICAgICAgIHRoaXMuaGlnaFN1cnJvZ2F0ZSA9IDA7XG5cbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChpc0hpZ2hTdXJyb2dhdGUpXG4gICAgICAgICAgICB0aGlzLmhpZ2hTdXJyb2dhdGUgPSBjb2RlO1xuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIC8vIEV2ZW4gaWYgdGhlIGN1cnJlbnQgY2hhcmFjdGVyIGlzIGEgbG93IHN1cnJvZ2F0ZSwgd2l0aCBubyBwcmV2aW91cyBoaWdoIHN1cnJvZ2F0ZSwgd2UnbGxcbiAgICAgICAgICAgIC8vIGVuY29kZSBpdCBhcyBhIHNlbWktaW52YWxpZCBzdGFuZC1hbG9uZSBjaGFyYWN0ZXIgZm9yIHRoZSBzYW1lIHJlYXNvbnMgZXhwcmVzc2VkIGFib3ZlIGZvclxuICAgICAgICAgICAgLy8gdW5wYWlyZWQgaGlnaCBzdXJyb2dhdGVzLlxuICAgICAgICAgICAgd3JpdGUzMi5jYWxsKGRzdCwgY29kZSwgb2Zmc2V0KTtcbiAgICAgICAgICAgIG9mZnNldCArPSA0O1xuICAgICAgICAgICAgdGhpcy5oaWdoU3Vycm9nYXRlID0gMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGlmIChvZmZzZXQgPCBkc3QubGVuZ3RoKVxuICAgICAgICBkc3QgPSBkc3Quc2xpY2UoMCwgb2Zmc2V0KTtcblxuICAgIHJldHVybiBkc3Q7XG59O1xuXG5VdGYzMkVuY29kZXIucHJvdG90eXBlLmVuZCA9IGZ1bmN0aW9uKCkge1xuICAgIC8vIFRyZWF0IGFueSBsZWZ0b3ZlciBoaWdoIHN1cnJvZ2F0ZSBhcyBhIHNlbWktdmFsaWQgaW5kZXBlbmRlbnQgY2hhcmFjdGVyLlxuICAgIGlmICghdGhpcy5oaWdoU3Vycm9nYXRlKVxuICAgICAgICByZXR1cm47XG5cbiAgICB2YXIgYnVmID0gQnVmZmVyLmFsbG9jKDQpO1xuXG4gICAgaWYgKHRoaXMuaXNMRSlcbiAgICAgICAgYnVmLndyaXRlVUludDMyTEUodGhpcy5oaWdoU3Vycm9nYXRlLCAwKTtcbiAgICBlbHNlXG4gICAgICAgIGJ1Zi53cml0ZVVJbnQzMkJFKHRoaXMuaGlnaFN1cnJvZ2F0ZSwgMCk7XG5cbiAgICB0aGlzLmhpZ2hTdXJyb2dhdGUgPSAwO1xuXG4gICAgcmV0dXJuIGJ1Zjtcbn07XG5cbi8vIC0tIERlY29kaW5nXG5cbmZ1bmN0aW9uIFV0ZjMyRGVjb2RlcihvcHRpb25zLCBjb2RlYykge1xuICAgIHRoaXMuaXNMRSA9IGNvZGVjLmlzTEU7XG4gICAgdGhpcy5iYWRDaGFyID0gY29kZWMuaWNvbnYuZGVmYXVsdENoYXJVbmljb2RlLmNoYXJDb2RlQXQoMCk7XG4gICAgdGhpcy5vdmVyZmxvdyA9IFtdO1xufVxuXG5VdGYzMkRlY29kZXIucHJvdG90eXBlLndyaXRlID0gZnVuY3Rpb24oc3JjKSB7XG4gICAgaWYgKHNyYy5sZW5ndGggPT09IDApXG4gICAgICAgIHJldHVybiAnJztcblxuICAgIHZhciBpID0gMDtcbiAgICB2YXIgY29kZXBvaW50ID0gMDtcbiAgICB2YXIgZHN0ID0gQnVmZmVyLmFsbG9jKHNyYy5sZW5ndGggKyA0KTtcbiAgICB2YXIgb2Zmc2V0ID0gMDtcbiAgICB2YXIgaXNMRSA9IHRoaXMuaXNMRTtcbiAgICB2YXIgb3ZlcmZsb3cgPSB0aGlzLm92ZXJmbG93O1xuICAgIHZhciBiYWRDaGFyID0gdGhpcy5iYWRDaGFyO1xuXG4gICAgaWYgKG92ZXJmbG93Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgZm9yICg7IGkgPCBzcmMubGVuZ3RoICYmIG92ZXJmbG93Lmxlbmd0aCA8IDQ7IGkrKylcbiAgICAgICAgICAgIG92ZXJmbG93LnB1c2goc3JjW2ldKTtcbiAgICAgICAgXG4gICAgICAgIGlmIChvdmVyZmxvdy5sZW5ndGggPT09IDQpIHtcbiAgICAgICAgICAgIC8vIE5PVEU6IGNvZGVwb2ludCBpcyBhIHNpZ25lZCBpbnQzMiBhbmQgY2FuIGJlIG5lZ2F0aXZlLlxuICAgICAgICAgICAgLy8gTk9URTogV2UgY29waWVkIHRoaXMgYmxvY2sgZnJvbSBiZWxvdyB0byBoZWxwIFY4IG9wdGltaXplIGl0IChpdCB3b3JrcyB3aXRoIGFycmF5LCBub3QgYnVmZmVyKS5cbiAgICAgICAgICAgIGlmIChpc0xFKSB7XG4gICAgICAgICAgICAgICAgY29kZXBvaW50ID0gb3ZlcmZsb3dbaV0gfCAob3ZlcmZsb3dbaSsxXSA8PCA4KSB8IChvdmVyZmxvd1tpKzJdIDw8IDE2KSB8IChvdmVyZmxvd1tpKzNdIDw8IDI0KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgY29kZXBvaW50ID0gb3ZlcmZsb3dbaSszXSB8IChvdmVyZmxvd1tpKzJdIDw8IDgpIHwgKG92ZXJmbG93W2krMV0gPDwgMTYpIHwgKG92ZXJmbG93W2ldIDw8IDI0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG92ZXJmbG93Lmxlbmd0aCA9IDA7XG5cbiAgICAgICAgICAgIG9mZnNldCA9IF93cml0ZUNvZGVwb2ludChkc3QsIG9mZnNldCwgY29kZXBvaW50LCBiYWRDaGFyKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIE1haW4gbG9vcC4gU2hvdWxkIGJlIGFzIG9wdGltaXplZCBhcyBwb3NzaWJsZS5cbiAgICBmb3IgKDsgaSA8IHNyYy5sZW5ndGggLSAzOyBpICs9IDQpIHtcbiAgICAgICAgLy8gTk9URTogY29kZXBvaW50IGlzIGEgc2lnbmVkIGludDMyIGFuZCBjYW4gYmUgbmVnYXRpdmUuXG4gICAgICAgIGlmIChpc0xFKSB7XG4gICAgICAgICAgICBjb2RlcG9pbnQgPSBzcmNbaV0gfCAoc3JjW2krMV0gPDwgOCkgfCAoc3JjW2krMl0gPDwgMTYpIHwgKHNyY1tpKzNdIDw8IDI0KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvZGVwb2ludCA9IHNyY1tpKzNdIHwgKHNyY1tpKzJdIDw8IDgpIHwgKHNyY1tpKzFdIDw8IDE2KSB8IChzcmNbaV0gPDwgMjQpO1xuICAgICAgICB9XG4gICAgICAgIG9mZnNldCA9IF93cml0ZUNvZGVwb2ludChkc3QsIG9mZnNldCwgY29kZXBvaW50LCBiYWRDaGFyKTtcbiAgICB9XG5cbiAgICAvLyBLZWVwIG92ZXJmbG93aW5nIGJ5dGVzLlxuICAgIGZvciAoOyBpIDwgc3JjLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIG92ZXJmbG93LnB1c2goc3JjW2ldKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZHN0LnNsaWNlKDAsIG9mZnNldCkudG9TdHJpbmcoJ3VjczInKTtcbn07XG5cbmZ1bmN0aW9uIF93cml0ZUNvZGVwb2ludChkc3QsIG9mZnNldCwgY29kZXBvaW50LCBiYWRDaGFyKSB7XG4gICAgLy8gTk9URTogY29kZXBvaW50IGlzIHNpZ25lZCBpbnQzMiBhbmQgY2FuIGJlIG5lZ2F0aXZlLiBXZSBrZWVwIGl0IHRoYXQgd2F5IHRvIGhlbHAgVjggd2l0aCBvcHRpbWl6YXRpb25zLlxuICAgIGlmIChjb2RlcG9pbnQgPCAwIHx8IGNvZGVwb2ludCA+IDB4MTBGRkZGKSB7XG4gICAgICAgIC8vIE5vdCBhIHZhbGlkIFVuaWNvZGUgY29kZXBvaW50XG4gICAgICAgIGNvZGVwb2ludCA9IGJhZENoYXI7XG4gICAgfSBcblxuICAgIC8vIEVwaGVtZXJhbCBQbGFuZXM6IFdyaXRlIGhpZ2ggc3Vycm9nYXRlLlxuICAgIGlmIChjb2RlcG9pbnQgPj0gMHgxMDAwMCkge1xuICAgICAgICBjb2RlcG9pbnQgLT0gMHgxMDAwMDtcblxuICAgICAgICB2YXIgaGlnaCA9IDB4RDgwMCB8IChjb2RlcG9pbnQgPj4gMTApO1xuICAgICAgICBkc3Rbb2Zmc2V0KytdID0gaGlnaCAmIDB4ZmY7XG4gICAgICAgIGRzdFtvZmZzZXQrK10gPSBoaWdoID4+IDg7XG5cbiAgICAgICAgLy8gTG93IHN1cnJvZ2F0ZSBpcyB3cml0dGVuIGJlbG93LlxuICAgICAgICB2YXIgY29kZXBvaW50ID0gMHhEQzAwIHwgKGNvZGVwb2ludCAmIDB4M0ZGKTtcbiAgICB9XG5cbiAgICAvLyBXcml0ZSBCTVAgY2hhciBvciBsb3cgc3Vycm9nYXRlLlxuICAgIGRzdFtvZmZzZXQrK10gPSBjb2RlcG9pbnQgJiAweGZmO1xuICAgIGRzdFtvZmZzZXQrK10gPSBjb2RlcG9pbnQgPj4gODtcblxuICAgIHJldHVybiBvZmZzZXQ7XG59O1xuXG5VdGYzMkRlY29kZXIucHJvdG90eXBlLmVuZCA9IGZ1bmN0aW9uKCkge1xuICAgIHRoaXMub3ZlcmZsb3cubGVuZ3RoID0gMDtcbn07XG5cbi8vID09IFVURi0zMiBBdXRvIGNvZGVjID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIERlY29kZXIgY2hvb3NlcyBhdXRvbWF0aWNhbGx5IGZyb20gVVRGLTMyTEUgYW5kIFVURi0zMkJFIHVzaW5nIEJPTSBhbmQgc3BhY2UtYmFzZWQgaGV1cmlzdGljLlxuLy8gRGVmYXVsdHMgdG8gVVRGLTMyTEUuIGh0dHA6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvVVRGLTMyXG4vLyBFbmNvZGVyL2RlY29kZXIgZGVmYXVsdCBjYW4gYmUgY2hhbmdlZDogaWNvbnYuZGVjb2RlKGJ1ZiwgJ3V0ZjMyJywge2RlZmF1bHRFbmNvZGluZzogJ3V0Zi0zMmJlJ30pO1xuXG4vLyBFbmNvZGVyIHByZXBlbmRzIEJPTSAod2hpY2ggY2FuIGJlIG92ZXJyaWRkZW4gd2l0aCAoYWRkQk9NOiBmYWxzZX0pLlxuXG5leHBvcnRzLnV0ZjMyID0gVXRmMzJBdXRvQ29kZWM7XG5leHBvcnRzLnVjczQgPSAndXRmMzInO1xuXG5mdW5jdGlvbiBVdGYzMkF1dG9Db2RlYyhvcHRpb25zLCBpY29udikge1xuICAgIHRoaXMuaWNvbnYgPSBpY29udjtcbn1cblxuVXRmMzJBdXRvQ29kZWMucHJvdG90eXBlLmVuY29kZXIgPSBVdGYzMkF1dG9FbmNvZGVyO1xuVXRmMzJBdXRvQ29kZWMucHJvdG90eXBlLmRlY29kZXIgPSBVdGYzMkF1dG9EZWNvZGVyO1xuXG4vLyAtLSBFbmNvZGluZ1xuXG5mdW5jdGlvbiBVdGYzMkF1dG9FbmNvZGVyKG9wdGlvbnMsIGNvZGVjKSB7XG4gICAgb3B0aW9ucyA9IG9wdGlvbnMgfHwge307XG5cbiAgICBpZiAob3B0aW9ucy5hZGRCT00gPT09IHVuZGVmaW5lZClcbiAgICAgICAgb3B0aW9ucy5hZGRCT00gPSB0cnVlO1xuXG4gICAgdGhpcy5lbmNvZGVyID0gY29kZWMuaWNvbnYuZ2V0RW5jb2RlcihvcHRpb25zLmRlZmF1bHRFbmNvZGluZyB8fCAndXRmLTMybGUnLCBvcHRpb25zKTtcbn1cblxuVXRmMzJBdXRvRW5jb2Rlci5wcm90b3R5cGUud3JpdGUgPSBmdW5jdGlvbihzdHIpIHtcbiAgICByZXR1cm4gdGhpcy5lbmNvZGVyLndyaXRlKHN0cik7XG59O1xuXG5VdGYzMkF1dG9FbmNvZGVyLnByb3RvdHlwZS5lbmQgPSBmdW5jdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy5lbmNvZGVyLmVuZCgpO1xufTtcblxuLy8gLS0gRGVjb2RpbmdcblxuZnVuY3Rpb24gVXRmMzJBdXRvRGVjb2RlcihvcHRpb25zLCBjb2RlYykge1xuICAgIHRoaXMuZGVjb2RlciA9IG51bGw7XG4gICAgdGhpcy5pbml0aWFsQnVmcyA9IFtdO1xuICAgIHRoaXMuaW5pdGlhbEJ1ZnNMZW4gPSAwO1xuICAgIHRoaXMub3B0aW9ucyA9IG9wdGlvbnMgfHwge307XG4gICAgdGhpcy5pY29udiA9IGNvZGVjLmljb252O1xufVxuXG5VdGYzMkF1dG9EZWNvZGVyLnByb3RvdHlwZS53cml0ZSA9IGZ1bmN0aW9uKGJ1Zikge1xuICAgIGlmICghdGhpcy5kZWNvZGVyKSB7IFxuICAgICAgICAvLyBDb2RlYyBpcyBub3QgY2hvc2VuIHlldC4gQWNjdW11bGF0ZSBpbml0aWFsIGJ5dGVzLlxuICAgICAgICB0aGlzLmluaXRpYWxCdWZzLnB1c2goYnVmKTtcbiAgICAgICAgdGhpcy5pbml0aWFsQnVmc0xlbiArPSBidWYubGVuZ3RoO1xuXG4gICAgICAgIGlmICh0aGlzLmluaXRpYWxCdWZzTGVuIDwgMzIpIC8vIFdlIG5lZWQgbW9yZSBieXRlcyB0byB1c2Ugc3BhY2UgaGV1cmlzdGljIChzZWUgYmVsb3cpXG4gICAgICAgICAgICByZXR1cm4gJyc7XG5cbiAgICAgICAgLy8gV2UgaGF2ZSBlbm91Z2ggYnl0ZXMgLT4gZGV0ZWN0IGVuZGlhbm5lc3MuXG4gICAgICAgIHZhciBlbmNvZGluZyA9IGRldGVjdEVuY29kaW5nKHRoaXMuaW5pdGlhbEJ1ZnMsIHRoaXMub3B0aW9ucy5kZWZhdWx0RW5jb2RpbmcpO1xuICAgICAgICB0aGlzLmRlY29kZXIgPSB0aGlzLmljb252LmdldERlY29kZXIoZW5jb2RpbmcsIHRoaXMub3B0aW9ucyk7XG5cbiAgICAgICAgdmFyIHJlc1N0ciA9ICcnO1xuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuaW5pdGlhbEJ1ZnMubGVuZ3RoOyBpKyspXG4gICAgICAgICAgICByZXNTdHIgKz0gdGhpcy5kZWNvZGVyLndyaXRlKHRoaXMuaW5pdGlhbEJ1ZnNbaV0pO1xuXG4gICAgICAgIHRoaXMuaW5pdGlhbEJ1ZnMubGVuZ3RoID0gdGhpcy5pbml0aWFsQnVmc0xlbiA9IDA7XG4gICAgICAgIHJldHVybiByZXNTdHI7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuZGVjb2Rlci53cml0ZShidWYpO1xufTtcblxuVXRmMzJBdXRvRGVjb2Rlci5wcm90b3R5cGUuZW5kID0gZnVuY3Rpb24oKSB7XG4gICAgaWYgKCF0aGlzLmRlY29kZXIpIHtcbiAgICAgICAgdmFyIGVuY29kaW5nID0gZGV0ZWN0RW5jb2RpbmcodGhpcy5pbml0aWFsQnVmcywgdGhpcy5vcHRpb25zLmRlZmF1bHRFbmNvZGluZyk7XG4gICAgICAgIHRoaXMuZGVjb2RlciA9IHRoaXMuaWNvbnYuZ2V0RGVjb2RlcihlbmNvZGluZywgdGhpcy5vcHRpb25zKTtcblxuICAgICAgICB2YXIgcmVzU3RyID0gJyc7XG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5pbml0aWFsQnVmcy5sZW5ndGg7IGkrKylcbiAgICAgICAgICAgIHJlc1N0ciArPSB0aGlzLmRlY29kZXIud3JpdGUodGhpcy5pbml0aWFsQnVmc1tpXSk7XG5cbiAgICAgICAgdmFyIHRyYWlsID0gdGhpcy5kZWNvZGVyLmVuZCgpO1xuICAgICAgICBpZiAodHJhaWwpXG4gICAgICAgICAgICByZXNTdHIgKz0gdHJhaWw7XG5cbiAgICAgICAgdGhpcy5pbml0aWFsQnVmcy5sZW5ndGggPSB0aGlzLmluaXRpYWxCdWZzTGVuID0gMDtcbiAgICAgICAgcmV0dXJuIHJlc1N0cjtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5kZWNvZGVyLmVuZCgpO1xufTtcblxuZnVuY3Rpb24gZGV0ZWN0RW5jb2RpbmcoYnVmcywgZGVmYXVsdEVuY29kaW5nKSB7XG4gICAgdmFyIGIgPSBbXTtcbiAgICB2YXIgY2hhcnNQcm9jZXNzZWQgPSAwO1xuICAgIHZhciBpbnZhbGlkTEUgPSAwLCBpbnZhbGlkQkUgPSAwOyAgIC8vIE51bWJlciBvZiBpbnZhbGlkIGNoYXJzIHdoZW4gZGVjb2RlZCBhcyBMRSBvciBCRS5cbiAgICB2YXIgYm1wQ2hhcnNMRSA9IDAsIGJtcENoYXJzQkUgPSAwOyAvLyBOdW1iZXIgb2YgQk1QIGNoYXJzIHdoZW4gZGVjb2RlZCBhcyBMRSBvciBCRS5cblxuICAgIG91dGVyX2xvb3A6XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBidWZzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIHZhciBidWYgPSBidWZzW2ldO1xuICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8IGJ1Zi5sZW5ndGg7IGorKykge1xuICAgICAgICAgICAgYi5wdXNoKGJ1ZltqXSk7XG4gICAgICAgICAgICBpZiAoYi5sZW5ndGggPT09IDQpIHtcbiAgICAgICAgICAgICAgICBpZiAoY2hhcnNQcm9jZXNzZWQgPT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gQ2hlY2sgQk9NIGZpcnN0LlxuICAgICAgICAgICAgICAgICAgICBpZiAoYlswXSA9PT0gMHhGRiAmJiBiWzFdID09PSAweEZFICYmIGJbMl0gPT09IDAgJiYgYlszXSA9PT0gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICd1dGYtMzJsZSc7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKGJbMF0gPT09IDAgJiYgYlsxXSA9PT0gMCAmJiBiWzJdID09PSAweEZFICYmIGJbM10gPT09IDB4RkYpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAndXRmLTMyYmUnO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKGJbMF0gIT09IDAgfHwgYlsxXSA+IDB4MTApIGludmFsaWRCRSsrO1xuICAgICAgICAgICAgICAgIGlmIChiWzNdICE9PSAwIHx8IGJbMl0gPiAweDEwKSBpbnZhbGlkTEUrKztcblxuICAgICAgICAgICAgICAgIGlmIChiWzBdID09PSAwICYmIGJbMV0gPT09IDAgJiYgKGJbMl0gIT09IDAgfHwgYlszXSAhPT0gMCkpIGJtcENoYXJzQkUrKztcbiAgICAgICAgICAgICAgICBpZiAoKGJbMF0gIT09IDAgfHwgYlsxXSAhPT0gMCkgJiYgYlsyXSA9PT0gMCAmJiBiWzNdID09PSAwKSBibXBDaGFyc0xFKys7XG5cbiAgICAgICAgICAgICAgICBiLmxlbmd0aCA9IDA7XG4gICAgICAgICAgICAgICAgY2hhcnNQcm9jZXNzZWQrKztcblxuICAgICAgICAgICAgICAgIGlmIChjaGFyc1Byb2Nlc3NlZCA+PSAxMDApIHtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWsgb3V0ZXJfbG9vcDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBNYWtlIGRlY2lzaW9ucy5cbiAgICBpZiAoYm1wQ2hhcnNCRSAtIGludmFsaWRCRSA+IGJtcENoYXJzTEUgLSBpbnZhbGlkTEUpICByZXR1cm4gJ3V0Zi0zMmJlJztcbiAgICBpZiAoYm1wQ2hhcnNCRSAtIGludmFsaWRCRSA8IGJtcENoYXJzTEUgLSBpbnZhbGlkTEUpICByZXR1cm4gJ3V0Zi0zMmxlJztcblxuICAgIC8vIENvdWxkbid0IGRlY2lkZSAobGlrZWx5IGFsbCB6ZXJvcyBvciBub3QgZW5vdWdoIGRhdGEpLlxuICAgIHJldHVybiBkZWZhdWx0RW5jb2RpbmcgfHwgJ3V0Zi0zMmxlJztcbn1cbiIsICJcInVzZSBzdHJpY3RcIjtcbnZhciBCdWZmZXIgPSByZXF1aXJlKFwic2FmZXItYnVmZmVyXCIpLkJ1ZmZlcjtcblxuLy8gTm90ZTogVVRGMTYtTEUgKG9yIFVDUzIpIGNvZGVjIGlzIE5vZGUuanMgbmF0aXZlLiBTZWUgZW5jb2RpbmdzL2ludGVybmFsLmpzXG5cbi8vID09IFVURjE2LUJFIGNvZGVjLiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbmV4cG9ydHMudXRmMTZiZSA9IFV0ZjE2QkVDb2RlYztcbmZ1bmN0aW9uIFV0ZjE2QkVDb2RlYygpIHtcbn1cblxuVXRmMTZCRUNvZGVjLnByb3RvdHlwZS5lbmNvZGVyID0gVXRmMTZCRUVuY29kZXI7XG5VdGYxNkJFQ29kZWMucHJvdG90eXBlLmRlY29kZXIgPSBVdGYxNkJFRGVjb2RlcjtcblV0ZjE2QkVDb2RlYy5wcm90b3R5cGUuYm9tQXdhcmUgPSB0cnVlO1xuXG5cbi8vIC0tIEVuY29kaW5nXG5cbmZ1bmN0aW9uIFV0ZjE2QkVFbmNvZGVyKCkge1xufVxuXG5VdGYxNkJFRW5jb2Rlci5wcm90b3R5cGUud3JpdGUgPSBmdW5jdGlvbihzdHIpIHtcbiAgICB2YXIgYnVmID0gQnVmZmVyLmZyb20oc3RyLCAndWNzMicpO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYnVmLmxlbmd0aDsgaSArPSAyKSB7XG4gICAgICAgIHZhciB0bXAgPSBidWZbaV07IGJ1ZltpXSA9IGJ1ZltpKzFdOyBidWZbaSsxXSA9IHRtcDtcbiAgICB9XG4gICAgcmV0dXJuIGJ1Zjtcbn1cblxuVXRmMTZCRUVuY29kZXIucHJvdG90eXBlLmVuZCA9IGZ1bmN0aW9uKCkge1xufVxuXG5cbi8vIC0tIERlY29kaW5nXG5cbmZ1bmN0aW9uIFV0ZjE2QkVEZWNvZGVyKCkge1xuICAgIHRoaXMub3ZlcmZsb3dCeXRlID0gLTE7XG59XG5cblV0ZjE2QkVEZWNvZGVyLnByb3RvdHlwZS53cml0ZSA9IGZ1bmN0aW9uKGJ1Zikge1xuICAgIGlmIChidWYubGVuZ3RoID09IDApXG4gICAgICAgIHJldHVybiAnJztcblxuICAgIHZhciBidWYyID0gQnVmZmVyLmFsbG9jKGJ1Zi5sZW5ndGggKyAxKSxcbiAgICAgICAgaSA9IDAsIGogPSAwO1xuXG4gICAgaWYgKHRoaXMub3ZlcmZsb3dCeXRlICE9PSAtMSkge1xuICAgICAgICBidWYyWzBdID0gYnVmWzBdO1xuICAgICAgICBidWYyWzFdID0gdGhpcy5vdmVyZmxvd0J5dGU7XG4gICAgICAgIGkgPSAxOyBqID0gMjtcbiAgICB9XG5cbiAgICBmb3IgKDsgaSA8IGJ1Zi5sZW5ndGgtMTsgaSArPSAyLCBqKz0gMikge1xuICAgICAgICBidWYyW2pdID0gYnVmW2krMV07XG4gICAgICAgIGJ1ZjJbaisxXSA9IGJ1ZltpXTtcbiAgICB9XG5cbiAgICB0aGlzLm92ZXJmbG93Qnl0ZSA9IChpID09IGJ1Zi5sZW5ndGgtMSkgPyBidWZbYnVmLmxlbmd0aC0xXSA6IC0xO1xuXG4gICAgcmV0dXJuIGJ1ZjIuc2xpY2UoMCwgaikudG9TdHJpbmcoJ3VjczInKTtcbn1cblxuVXRmMTZCRURlY29kZXIucHJvdG90eXBlLmVuZCA9IGZ1bmN0aW9uKCkge1xuICAgIHRoaXMub3ZlcmZsb3dCeXRlID0gLTE7XG59XG5cblxuLy8gPT0gVVRGLTE2IGNvZGVjID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIERlY29kZXIgY2hvb3NlcyBhdXRvbWF0aWNhbGx5IGZyb20gVVRGLTE2TEUgYW5kIFVURi0xNkJFIHVzaW5nIEJPTSBhbmQgc3BhY2UtYmFzZWQgaGV1cmlzdGljLlxuLy8gRGVmYXVsdHMgdG8gVVRGLTE2TEUsIGFzIGl0J3MgcHJldmFsZW50IGFuZCBkZWZhdWx0IGluIE5vZGUuXG4vLyBodHRwOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL1VURi0xNiBhbmQgaHR0cDovL2VuY29kaW5nLnNwZWMud2hhdHdnLm9yZy8jdXRmLTE2bGVcbi8vIERlY29kZXIgZGVmYXVsdCBjYW4gYmUgY2hhbmdlZDogaWNvbnYuZGVjb2RlKGJ1ZiwgJ3V0ZjE2Jywge2RlZmF1bHRFbmNvZGluZzogJ3V0Zi0xNmJlJ30pO1xuXG4vLyBFbmNvZGVyIHVzZXMgVVRGLTE2TEUgYW5kIHByZXBlbmRzIEJPTSAod2hpY2ggY2FuIGJlIG92ZXJyaWRkZW4gd2l0aCBhZGRCT006IGZhbHNlKS5cblxuZXhwb3J0cy51dGYxNiA9IFV0ZjE2Q29kZWM7XG5mdW5jdGlvbiBVdGYxNkNvZGVjKGNvZGVjT3B0aW9ucywgaWNvbnYpIHtcbiAgICB0aGlzLmljb252ID0gaWNvbnY7XG59XG5cblV0ZjE2Q29kZWMucHJvdG90eXBlLmVuY29kZXIgPSBVdGYxNkVuY29kZXI7XG5VdGYxNkNvZGVjLnByb3RvdHlwZS5kZWNvZGVyID0gVXRmMTZEZWNvZGVyO1xuXG5cbi8vIC0tIEVuY29kaW5nIChwYXNzLXRocm91Z2gpXG5cbmZ1bmN0aW9uIFV0ZjE2RW5jb2RlcihvcHRpb25zLCBjb2RlYykge1xuICAgIG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9O1xuICAgIGlmIChvcHRpb25zLmFkZEJPTSA9PT0gdW5kZWZpbmVkKVxuICAgICAgICBvcHRpb25zLmFkZEJPTSA9IHRydWU7XG4gICAgdGhpcy5lbmNvZGVyID0gY29kZWMuaWNvbnYuZ2V0RW5jb2RlcigndXRmLTE2bGUnLCBvcHRpb25zKTtcbn1cblxuVXRmMTZFbmNvZGVyLnByb3RvdHlwZS53cml0ZSA9IGZ1bmN0aW9uKHN0cikge1xuICAgIHJldHVybiB0aGlzLmVuY29kZXIud3JpdGUoc3RyKTtcbn1cblxuVXRmMTZFbmNvZGVyLnByb3RvdHlwZS5lbmQgPSBmdW5jdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy5lbmNvZGVyLmVuZCgpO1xufVxuXG5cbi8vIC0tIERlY29kaW5nXG5cbmZ1bmN0aW9uIFV0ZjE2RGVjb2RlcihvcHRpb25zLCBjb2RlYykge1xuICAgIHRoaXMuZGVjb2RlciA9IG51bGw7XG4gICAgdGhpcy5pbml0aWFsQnVmcyA9IFtdO1xuICAgIHRoaXMuaW5pdGlhbEJ1ZnNMZW4gPSAwO1xuXG4gICAgdGhpcy5vcHRpb25zID0gb3B0aW9ucyB8fCB7fTtcbiAgICB0aGlzLmljb252ID0gY29kZWMuaWNvbnY7XG59XG5cblV0ZjE2RGVjb2Rlci5wcm90b3R5cGUud3JpdGUgPSBmdW5jdGlvbihidWYpIHtcbiAgICBpZiAoIXRoaXMuZGVjb2Rlcikge1xuICAgICAgICAvLyBDb2RlYyBpcyBub3QgY2hvc2VuIHlldC4gQWNjdW11bGF0ZSBpbml0aWFsIGJ5dGVzLlxuICAgICAgICB0aGlzLmluaXRpYWxCdWZzLnB1c2goYnVmKTtcbiAgICAgICAgdGhpcy5pbml0aWFsQnVmc0xlbiArPSBidWYubGVuZ3RoO1xuICAgICAgICBcbiAgICAgICAgaWYgKHRoaXMuaW5pdGlhbEJ1ZnNMZW4gPCAxNikgLy8gV2UgbmVlZCBtb3JlIGJ5dGVzIHRvIHVzZSBzcGFjZSBoZXVyaXN0aWMgKHNlZSBiZWxvdylcbiAgICAgICAgICAgIHJldHVybiAnJztcblxuICAgICAgICAvLyBXZSBoYXZlIGVub3VnaCBieXRlcyAtPiBkZXRlY3QgZW5kaWFubmVzcy5cbiAgICAgICAgdmFyIGVuY29kaW5nID0gZGV0ZWN0RW5jb2RpbmcodGhpcy5pbml0aWFsQnVmcywgdGhpcy5vcHRpb25zLmRlZmF1bHRFbmNvZGluZyk7XG4gICAgICAgIHRoaXMuZGVjb2RlciA9IHRoaXMuaWNvbnYuZ2V0RGVjb2RlcihlbmNvZGluZywgdGhpcy5vcHRpb25zKTtcblxuICAgICAgICB2YXIgcmVzU3RyID0gJyc7XG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5pbml0aWFsQnVmcy5sZW5ndGg7IGkrKylcbiAgICAgICAgICAgIHJlc1N0ciArPSB0aGlzLmRlY29kZXIud3JpdGUodGhpcy5pbml0aWFsQnVmc1tpXSk7XG5cbiAgICAgICAgdGhpcy5pbml0aWFsQnVmcy5sZW5ndGggPSB0aGlzLmluaXRpYWxCdWZzTGVuID0gMDtcbiAgICAgICAgcmV0dXJuIHJlc1N0cjtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5kZWNvZGVyLndyaXRlKGJ1Zik7XG59XG5cblV0ZjE2RGVjb2Rlci5wcm90b3R5cGUuZW5kID0gZnVuY3Rpb24oKSB7XG4gICAgaWYgKCF0aGlzLmRlY29kZXIpIHtcbiAgICAgICAgdmFyIGVuY29kaW5nID0gZGV0ZWN0RW5jb2RpbmcodGhpcy5pbml0aWFsQnVmcywgdGhpcy5vcHRpb25zLmRlZmF1bHRFbmNvZGluZyk7XG4gICAgICAgIHRoaXMuZGVjb2RlciA9IHRoaXMuaWNvbnYuZ2V0RGVjb2RlcihlbmNvZGluZywgdGhpcy5vcHRpb25zKTtcblxuICAgICAgICB2YXIgcmVzU3RyID0gJyc7XG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5pbml0aWFsQnVmcy5sZW5ndGg7IGkrKylcbiAgICAgICAgICAgIHJlc1N0ciArPSB0aGlzLmRlY29kZXIud3JpdGUodGhpcy5pbml0aWFsQnVmc1tpXSk7XG5cbiAgICAgICAgdmFyIHRyYWlsID0gdGhpcy5kZWNvZGVyLmVuZCgpO1xuICAgICAgICBpZiAodHJhaWwpXG4gICAgICAgICAgICByZXNTdHIgKz0gdHJhaWw7XG5cbiAgICAgICAgdGhpcy5pbml0aWFsQnVmcy5sZW5ndGggPSB0aGlzLmluaXRpYWxCdWZzTGVuID0gMDtcbiAgICAgICAgcmV0dXJuIHJlc1N0cjtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuZGVjb2Rlci5lbmQoKTtcbn1cblxuZnVuY3Rpb24gZGV0ZWN0RW5jb2RpbmcoYnVmcywgZGVmYXVsdEVuY29kaW5nKSB7XG4gICAgdmFyIGIgPSBbXTtcbiAgICB2YXIgY2hhcnNQcm9jZXNzZWQgPSAwO1xuICAgIHZhciBhc2NpaUNoYXJzTEUgPSAwLCBhc2NpaUNoYXJzQkUgPSAwOyAvLyBOdW1iZXIgb2YgQVNDSUkgY2hhcnMgd2hlbiBkZWNvZGVkIGFzIExFIG9yIEJFLlxuXG4gICAgb3V0ZXJfbG9vcDpcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGJ1ZnMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgdmFyIGJ1ZiA9IGJ1ZnNbaV07XG4gICAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgYnVmLmxlbmd0aDsgaisrKSB7XG4gICAgICAgICAgICBiLnB1c2goYnVmW2pdKTtcbiAgICAgICAgICAgIGlmIChiLmxlbmd0aCA9PT0gMikge1xuICAgICAgICAgICAgICAgIGlmIChjaGFyc1Byb2Nlc3NlZCA9PT0gMCkge1xuICAgICAgICAgICAgICAgICAgICAvLyBDaGVjayBCT00gZmlyc3QuXG4gICAgICAgICAgICAgICAgICAgIGlmIChiWzBdID09PSAweEZGICYmIGJbMV0gPT09IDB4RkUpIHJldHVybiAndXRmLTE2bGUnO1xuICAgICAgICAgICAgICAgICAgICBpZiAoYlswXSA9PT0gMHhGRSAmJiBiWzFdID09PSAweEZGKSByZXR1cm4gJ3V0Zi0xNmJlJztcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAoYlswXSA9PT0gMCAmJiBiWzFdICE9PSAwKSBhc2NpaUNoYXJzQkUrKztcbiAgICAgICAgICAgICAgICBpZiAoYlswXSAhPT0gMCAmJiBiWzFdID09PSAwKSBhc2NpaUNoYXJzTEUrKztcblxuICAgICAgICAgICAgICAgIGIubGVuZ3RoID0gMDtcbiAgICAgICAgICAgICAgICBjaGFyc1Byb2Nlc3NlZCsrO1xuXG4gICAgICAgICAgICAgICAgaWYgKGNoYXJzUHJvY2Vzc2VkID49IDEwMCkge1xuICAgICAgICAgICAgICAgICAgICBicmVhayBvdXRlcl9sb29wO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIE1ha2UgZGVjaXNpb25zLlxuICAgIC8vIE1vc3Qgb2YgdGhlIHRpbWUsIHRoZSBjb250ZW50IGhhcyBBU0NJSSBjaGFycyAoVSswMCoqKSwgYnV0IHRoZSBvcHBvc2l0ZSAoVSsqKjAwKSBpcyB1bmNvbW1vbi5cbiAgICAvLyBTbywgd2UgY291bnQgQVNDSUkgYXMgaWYgaXQgd2FzIExFIG9yIEJFLCBhbmQgZGVjaWRlIGZyb20gdGhhdC5cbiAgICBpZiAoYXNjaWlDaGFyc0JFID4gYXNjaWlDaGFyc0xFKSByZXR1cm4gJ3V0Zi0xNmJlJztcbiAgICBpZiAoYXNjaWlDaGFyc0JFIDwgYXNjaWlDaGFyc0xFKSByZXR1cm4gJ3V0Zi0xNmxlJztcblxuICAgIC8vIENvdWxkbid0IGRlY2lkZSAobGlrZWx5IGFsbCB6ZXJvcyBvciBub3QgZW5vdWdoIGRhdGEpLlxuICAgIHJldHVybiBkZWZhdWx0RW5jb2RpbmcgfHwgJ3V0Zi0xNmxlJztcbn1cblxuXG4iLCAiXCJ1c2Ugc3RyaWN0XCI7XG52YXIgQnVmZmVyID0gcmVxdWlyZShcInNhZmVyLWJ1ZmZlclwiKS5CdWZmZXI7XG5cbi8vIFVURi03IGNvZGVjLCBhY2NvcmRpbmcgdG8gaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzIxNTJcbi8vIFNlZSBhbHNvIGJlbG93IGEgVVRGLTctSU1BUCBjb2RlYywgYWNjb3JkaW5nIHRvIGh0dHA6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzM1MDEjc2VjdGlvbi01LjEuM1xuXG5leHBvcnRzLnV0ZjcgPSBVdGY3Q29kZWM7XG5leHBvcnRzLnVuaWNvZGUxMXV0ZjcgPSAndXRmNyc7IC8vIEFsaWFzIFVOSUNPREUtMS0xLVVURi03XG5mdW5jdGlvbiBVdGY3Q29kZWMoY29kZWNPcHRpb25zLCBpY29udikge1xuICAgIHRoaXMuaWNvbnYgPSBpY29udjtcbn07XG5cblV0ZjdDb2RlYy5wcm90b3R5cGUuZW5jb2RlciA9IFV0ZjdFbmNvZGVyO1xuVXRmN0NvZGVjLnByb3RvdHlwZS5kZWNvZGVyID0gVXRmN0RlY29kZXI7XG5VdGY3Q29kZWMucHJvdG90eXBlLmJvbUF3YXJlID0gdHJ1ZTtcblxuXG4vLyAtLSBFbmNvZGluZ1xuXG52YXIgbm9uRGlyZWN0Q2hhcnMgPSAvW15BLVphLXowLTknXFwoXFwpLC1cXC5cXC86XFw/IFxcblxcclxcdF0rL2c7XG5cbmZ1bmN0aW9uIFV0ZjdFbmNvZGVyKG9wdGlvbnMsIGNvZGVjKSB7XG4gICAgdGhpcy5pY29udiA9IGNvZGVjLmljb252O1xufVxuXG5VdGY3RW5jb2Rlci5wcm90b3R5cGUud3JpdGUgPSBmdW5jdGlvbihzdHIpIHtcbiAgICAvLyBOYWl2ZSBpbXBsZW1lbnRhdGlvbi5cbiAgICAvLyBOb24tZGlyZWN0IGNoYXJzIGFyZSBlbmNvZGVkIGFzIFwiKzxiYXNlNjQ+LVwiOyBzaW5nbGUgXCIrXCIgY2hhciBpcyBlbmNvZGVkIGFzIFwiKy1cIi5cbiAgICByZXR1cm4gQnVmZmVyLmZyb20oc3RyLnJlcGxhY2Uobm9uRGlyZWN0Q2hhcnMsIGZ1bmN0aW9uKGNodW5rKSB7XG4gICAgICAgIHJldHVybiBcIitcIiArIChjaHVuayA9PT0gJysnID8gJycgOiBcbiAgICAgICAgICAgIHRoaXMuaWNvbnYuZW5jb2RlKGNodW5rLCAndXRmMTYtYmUnKS50b1N0cmluZygnYmFzZTY0JykucmVwbGFjZSgvPSskLywgJycpKSBcbiAgICAgICAgICAgICsgXCItXCI7XG4gICAgfS5iaW5kKHRoaXMpKSk7XG59XG5cblV0ZjdFbmNvZGVyLnByb3RvdHlwZS5lbmQgPSBmdW5jdGlvbigpIHtcbn1cblxuXG4vLyAtLSBEZWNvZGluZ1xuXG5mdW5jdGlvbiBVdGY3RGVjb2RlcihvcHRpb25zLCBjb2RlYykge1xuICAgIHRoaXMuaWNvbnYgPSBjb2RlYy5pY29udjtcbiAgICB0aGlzLmluQmFzZTY0ID0gZmFsc2U7XG4gICAgdGhpcy5iYXNlNjRBY2N1bSA9ICcnO1xufVxuXG52YXIgYmFzZTY0UmVnZXggPSAvW0EtWmEtejAtOVxcLytdLztcbnZhciBiYXNlNjRDaGFycyA9IFtdO1xuZm9yICh2YXIgaSA9IDA7IGkgPCAyNTY7IGkrKylcbiAgICBiYXNlNjRDaGFyc1tpXSA9IGJhc2U2NFJlZ2V4LnRlc3QoU3RyaW5nLmZyb21DaGFyQ29kZShpKSk7XG5cbnZhciBwbHVzQ2hhciA9ICcrJy5jaGFyQ29kZUF0KDApLCBcbiAgICBtaW51c0NoYXIgPSAnLScuY2hhckNvZGVBdCgwKSxcbiAgICBhbmRDaGFyID0gJyYnLmNoYXJDb2RlQXQoMCk7XG5cblV0ZjdEZWNvZGVyLnByb3RvdHlwZS53cml0ZSA9IGZ1bmN0aW9uKGJ1Zikge1xuICAgIHZhciByZXMgPSBcIlwiLCBsYXN0SSA9IDAsXG4gICAgICAgIGluQmFzZTY0ID0gdGhpcy5pbkJhc2U2NCxcbiAgICAgICAgYmFzZTY0QWNjdW0gPSB0aGlzLmJhc2U2NEFjY3VtO1xuXG4gICAgLy8gVGhlIGRlY29kZXIgaXMgbW9yZSBpbnZvbHZlZCBhcyB3ZSBtdXN0IGhhbmRsZSBjaHVua3MgaW4gc3RyZWFtLlxuXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBidWYubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgaWYgKCFpbkJhc2U2NCkgeyAvLyBXZSdyZSBpbiBkaXJlY3QgbW9kZS5cbiAgICAgICAgICAgIC8vIFdyaXRlIGRpcmVjdCBjaGFycyB1bnRpbCAnKydcbiAgICAgICAgICAgIGlmIChidWZbaV0gPT0gcGx1c0NoYXIpIHtcbiAgICAgICAgICAgICAgICByZXMgKz0gdGhpcy5pY29udi5kZWNvZGUoYnVmLnNsaWNlKGxhc3RJLCBpKSwgXCJhc2NpaVwiKTsgLy8gV3JpdGUgZGlyZWN0IGNoYXJzLlxuICAgICAgICAgICAgICAgIGxhc3RJID0gaSsxO1xuICAgICAgICAgICAgICAgIGluQmFzZTY0ID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHsgLy8gV2UgZGVjb2RlIGJhc2U2NC5cbiAgICAgICAgICAgIGlmICghYmFzZTY0Q2hhcnNbYnVmW2ldXSkgeyAvLyBCYXNlNjQgZW5kZWQuXG4gICAgICAgICAgICAgICAgaWYgKGkgPT0gbGFzdEkgJiYgYnVmW2ldID09IG1pbnVzQ2hhcikgey8vIFwiKy1cIiAtPiBcIitcIlxuICAgICAgICAgICAgICAgICAgICByZXMgKz0gXCIrXCI7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIGI2NHN0ciA9IGJhc2U2NEFjY3VtICsgdGhpcy5pY29udi5kZWNvZGUoYnVmLnNsaWNlKGxhc3RJLCBpKSwgXCJhc2NpaVwiKTtcbiAgICAgICAgICAgICAgICAgICAgcmVzICs9IHRoaXMuaWNvbnYuZGVjb2RlKEJ1ZmZlci5mcm9tKGI2NHN0ciwgJ2Jhc2U2NCcpLCBcInV0ZjE2LWJlXCIpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmIChidWZbaV0gIT0gbWludXNDaGFyKSAvLyBNaW51cyBpcyBhYnNvcmJlZCBhZnRlciBiYXNlNjQuXG4gICAgICAgICAgICAgICAgICAgIGktLTtcblxuICAgICAgICAgICAgICAgIGxhc3RJID0gaSsxO1xuICAgICAgICAgICAgICAgIGluQmFzZTY0ID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgYmFzZTY0QWNjdW0gPSAnJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGlmICghaW5CYXNlNjQpIHtcbiAgICAgICAgcmVzICs9IHRoaXMuaWNvbnYuZGVjb2RlKGJ1Zi5zbGljZShsYXN0SSksIFwiYXNjaWlcIik7IC8vIFdyaXRlIGRpcmVjdCBjaGFycy5cbiAgICB9IGVsc2Uge1xuICAgICAgICB2YXIgYjY0c3RyID0gYmFzZTY0QWNjdW0gKyB0aGlzLmljb252LmRlY29kZShidWYuc2xpY2UobGFzdEkpLCBcImFzY2lpXCIpO1xuXG4gICAgICAgIHZhciBjYW5CZURlY29kZWQgPSBiNjRzdHIubGVuZ3RoIC0gKGI2NHN0ci5sZW5ndGggJSA4KTsgLy8gTWluaW1hbCBjaHVuazogMiBxdWFkcyAtPiAyeDMgYnl0ZXMgLT4gMyBjaGFycy5cbiAgICAgICAgYmFzZTY0QWNjdW0gPSBiNjRzdHIuc2xpY2UoY2FuQmVEZWNvZGVkKTsgLy8gVGhlIHJlc3Qgd2lsbCBiZSBkZWNvZGVkIGluIGZ1dHVyZS5cbiAgICAgICAgYjY0c3RyID0gYjY0c3RyLnNsaWNlKDAsIGNhbkJlRGVjb2RlZCk7XG5cbiAgICAgICAgcmVzICs9IHRoaXMuaWNvbnYuZGVjb2RlKEJ1ZmZlci5mcm9tKGI2NHN0ciwgJ2Jhc2U2NCcpLCBcInV0ZjE2LWJlXCIpO1xuICAgIH1cblxuICAgIHRoaXMuaW5CYXNlNjQgPSBpbkJhc2U2NDtcbiAgICB0aGlzLmJhc2U2NEFjY3VtID0gYmFzZTY0QWNjdW07XG5cbiAgICByZXR1cm4gcmVzO1xufVxuXG5VdGY3RGVjb2Rlci5wcm90b3R5cGUuZW5kID0gZnVuY3Rpb24oKSB7XG4gICAgdmFyIHJlcyA9IFwiXCI7XG4gICAgaWYgKHRoaXMuaW5CYXNlNjQgJiYgdGhpcy5iYXNlNjRBY2N1bS5sZW5ndGggPiAwKVxuICAgICAgICByZXMgPSB0aGlzLmljb252LmRlY29kZShCdWZmZXIuZnJvbSh0aGlzLmJhc2U2NEFjY3VtLCAnYmFzZTY0JyksIFwidXRmMTYtYmVcIik7XG5cbiAgICB0aGlzLmluQmFzZTY0ID0gZmFsc2U7XG4gICAgdGhpcy5iYXNlNjRBY2N1bSA9ICcnO1xuICAgIHJldHVybiByZXM7XG59XG5cblxuLy8gVVRGLTctSU1BUCBjb2RlYy5cbi8vIFJGQzM1MDEgU2VjLiA1LjEuMyBNb2RpZmllZCBVVEYtNyAoaHR0cDovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjMzUwMSNzZWN0aW9uLTUuMS4zKVxuLy8gRGlmZmVyZW5jZXM6XG4vLyAgKiBCYXNlNjQgcGFydCBpcyBzdGFydGVkIGJ5IFwiJlwiIGluc3RlYWQgb2YgXCIrXCJcbi8vICAqIERpcmVjdCBjaGFyYWN0ZXJzIGFyZSAweDIwLTB4N0UsIGV4Y2VwdCBcIiZcIiAoMHgyNilcbi8vICAqIEluIEJhc2U2NCwgXCIsXCIgaXMgdXNlZCBpbnN0ZWFkIG9mIFwiL1wiXG4vLyAgKiBCYXNlNjQgbXVzdCBub3QgYmUgdXNlZCB0byByZXByZXNlbnQgZGlyZWN0IGNoYXJhY3RlcnMuXG4vLyAgKiBObyBpbXBsaWNpdCBzaGlmdCBiYWNrIGZyb20gQmFzZTY0IChzaG91bGQgYWx3YXlzIGVuZCB3aXRoICctJylcbi8vICAqIFN0cmluZyBtdXN0IGVuZCBpbiBub24tc2hpZnRlZCBwb3NpdGlvbi5cbi8vICAqIFwiLSZcIiB3aGlsZSBpbiBiYXNlNjQgaXMgbm90IGFsbG93ZWQuXG5cblxuZXhwb3J0cy51dGY3aW1hcCA9IFV0ZjdJTUFQQ29kZWM7XG5mdW5jdGlvbiBVdGY3SU1BUENvZGVjKGNvZGVjT3B0aW9ucywgaWNvbnYpIHtcbiAgICB0aGlzLmljb252ID0gaWNvbnY7XG59O1xuXG5VdGY3SU1BUENvZGVjLnByb3RvdHlwZS5lbmNvZGVyID0gVXRmN0lNQVBFbmNvZGVyO1xuVXRmN0lNQVBDb2RlYy5wcm90b3R5cGUuZGVjb2RlciA9IFV0ZjdJTUFQRGVjb2RlcjtcblV0ZjdJTUFQQ29kZWMucHJvdG90eXBlLmJvbUF3YXJlID0gdHJ1ZTtcblxuXG4vLyAtLSBFbmNvZGluZ1xuXG5mdW5jdGlvbiBVdGY3SU1BUEVuY29kZXIob3B0aW9ucywgY29kZWMpIHtcbiAgICB0aGlzLmljb252ID0gY29kZWMuaWNvbnY7XG4gICAgdGhpcy5pbkJhc2U2NCA9IGZhbHNlO1xuICAgIHRoaXMuYmFzZTY0QWNjdW0gPSBCdWZmZXIuYWxsb2MoNik7XG4gICAgdGhpcy5iYXNlNjRBY2N1bUlkeCA9IDA7XG59XG5cblV0ZjdJTUFQRW5jb2Rlci5wcm90b3R5cGUud3JpdGUgPSBmdW5jdGlvbihzdHIpIHtcbiAgICB2YXIgaW5CYXNlNjQgPSB0aGlzLmluQmFzZTY0LFxuICAgICAgICBiYXNlNjRBY2N1bSA9IHRoaXMuYmFzZTY0QWNjdW0sXG4gICAgICAgIGJhc2U2NEFjY3VtSWR4ID0gdGhpcy5iYXNlNjRBY2N1bUlkeCxcbiAgICAgICAgYnVmID0gQnVmZmVyLmFsbG9jKHN0ci5sZW5ndGgqNSArIDEwKSwgYnVmSWR4ID0gMDtcblxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc3RyLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIHZhciB1Q2hhciA9IHN0ci5jaGFyQ29kZUF0KGkpO1xuICAgICAgICBpZiAoMHgyMCA8PSB1Q2hhciAmJiB1Q2hhciA8PSAweDdFKSB7IC8vIERpcmVjdCBjaGFyYWN0ZXIgb3IgJyYnLlxuICAgICAgICAgICAgaWYgKGluQmFzZTY0KSB7XG4gICAgICAgICAgICAgICAgaWYgKGJhc2U2NEFjY3VtSWR4ID4gMCkge1xuICAgICAgICAgICAgICAgICAgICBidWZJZHggKz0gYnVmLndyaXRlKGJhc2U2NEFjY3VtLnNsaWNlKDAsIGJhc2U2NEFjY3VtSWR4KS50b1N0cmluZygnYmFzZTY0JykucmVwbGFjZSgvXFwvL2csICcsJykucmVwbGFjZSgvPSskLywgJycpLCBidWZJZHgpO1xuICAgICAgICAgICAgICAgICAgICBiYXNlNjRBY2N1bUlkeCA9IDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgYnVmW2J1ZklkeCsrXSA9IG1pbnVzQ2hhcjsgLy8gV3JpdGUgJy0nLCB0aGVuIGdvIHRvIGRpcmVjdCBtb2RlLlxuICAgICAgICAgICAgICAgIGluQmFzZTY0ID0gZmFsc2U7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICghaW5CYXNlNjQpIHtcbiAgICAgICAgICAgICAgICBidWZbYnVmSWR4KytdID0gdUNoYXI7IC8vIFdyaXRlIGRpcmVjdCBjaGFyYWN0ZXJcblxuICAgICAgICAgICAgICAgIGlmICh1Q2hhciA9PT0gYW5kQ2hhcikgIC8vIEFtcGVyc2FuZCAtPiAnJi0nXG4gICAgICAgICAgICAgICAgICAgIGJ1ZltidWZJZHgrK10gPSBtaW51c0NoYXI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfSBlbHNlIHsgLy8gTm9uLWRpcmVjdCBjaGFyYWN0ZXJcbiAgICAgICAgICAgIGlmICghaW5CYXNlNjQpIHtcbiAgICAgICAgICAgICAgICBidWZbYnVmSWR4KytdID0gYW5kQ2hhcjsgLy8gV3JpdGUgJyYnLCB0aGVuIGdvIHRvIGJhc2U2NCBtb2RlLlxuICAgICAgICAgICAgICAgIGluQmFzZTY0ID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChpbkJhc2U2NCkge1xuICAgICAgICAgICAgICAgIGJhc2U2NEFjY3VtW2Jhc2U2NEFjY3VtSWR4KytdID0gdUNoYXIgPj4gODtcbiAgICAgICAgICAgICAgICBiYXNlNjRBY2N1bVtiYXNlNjRBY2N1bUlkeCsrXSA9IHVDaGFyICYgMHhGRjtcblxuICAgICAgICAgICAgICAgIGlmIChiYXNlNjRBY2N1bUlkeCA9PSBiYXNlNjRBY2N1bS5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgYnVmSWR4ICs9IGJ1Zi53cml0ZShiYXNlNjRBY2N1bS50b1N0cmluZygnYmFzZTY0JykucmVwbGFjZSgvXFwvL2csICcsJyksIGJ1ZklkeCk7XG4gICAgICAgICAgICAgICAgICAgIGJhc2U2NEFjY3VtSWR4ID0gMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLmluQmFzZTY0ID0gaW5CYXNlNjQ7XG4gICAgdGhpcy5iYXNlNjRBY2N1bUlkeCA9IGJhc2U2NEFjY3VtSWR4O1xuXG4gICAgcmV0dXJuIGJ1Zi5zbGljZSgwLCBidWZJZHgpO1xufVxuXG5VdGY3SU1BUEVuY29kZXIucHJvdG90eXBlLmVuZCA9IGZ1bmN0aW9uKCkge1xuICAgIHZhciBidWYgPSBCdWZmZXIuYWxsb2MoMTApLCBidWZJZHggPSAwO1xuICAgIGlmICh0aGlzLmluQmFzZTY0KSB7XG4gICAgICAgIGlmICh0aGlzLmJhc2U2NEFjY3VtSWR4ID4gMCkge1xuICAgICAgICAgICAgYnVmSWR4ICs9IGJ1Zi53cml0ZSh0aGlzLmJhc2U2NEFjY3VtLnNsaWNlKDAsIHRoaXMuYmFzZTY0QWNjdW1JZHgpLnRvU3RyaW5nKCdiYXNlNjQnKS5yZXBsYWNlKC9cXC8vZywgJywnKS5yZXBsYWNlKC89KyQvLCAnJyksIGJ1ZklkeCk7XG4gICAgICAgICAgICB0aGlzLmJhc2U2NEFjY3VtSWR4ID0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgIGJ1ZltidWZJZHgrK10gPSBtaW51c0NoYXI7IC8vIFdyaXRlICctJywgdGhlbiBnbyB0byBkaXJlY3QgbW9kZS5cbiAgICAgICAgdGhpcy5pbkJhc2U2NCA9IGZhbHNlO1xuICAgIH1cblxuICAgIHJldHVybiBidWYuc2xpY2UoMCwgYnVmSWR4KTtcbn1cblxuXG4vLyAtLSBEZWNvZGluZ1xuXG5mdW5jdGlvbiBVdGY3SU1BUERlY29kZXIob3B0aW9ucywgY29kZWMpIHtcbiAgICB0aGlzLmljb252ID0gY29kZWMuaWNvbnY7XG4gICAgdGhpcy5pbkJhc2U2NCA9IGZhbHNlO1xuICAgIHRoaXMuYmFzZTY0QWNjdW0gPSAnJztcbn1cblxudmFyIGJhc2U2NElNQVBDaGFycyA9IGJhc2U2NENoYXJzLnNsaWNlKCk7XG5iYXNlNjRJTUFQQ2hhcnNbJywnLmNoYXJDb2RlQXQoMCldID0gdHJ1ZTtcblxuVXRmN0lNQVBEZWNvZGVyLnByb3RvdHlwZS53cml0ZSA9IGZ1bmN0aW9uKGJ1Zikge1xuICAgIHZhciByZXMgPSBcIlwiLCBsYXN0SSA9IDAsXG4gICAgICAgIGluQmFzZTY0ID0gdGhpcy5pbkJhc2U2NCxcbiAgICAgICAgYmFzZTY0QWNjdW0gPSB0aGlzLmJhc2U2NEFjY3VtO1xuXG4gICAgLy8gVGhlIGRlY29kZXIgaXMgbW9yZSBpbnZvbHZlZCBhcyB3ZSBtdXN0IGhhbmRsZSBjaHVua3MgaW4gc3RyZWFtLlxuICAgIC8vIEl0IGlzIGZvcmdpdmluZywgY2xvc2VyIHRvIHN0YW5kYXJkIFVURi03IChmb3IgZXhhbXBsZSwgJy0nIGlzIG9wdGlvbmFsIGF0IHRoZSBlbmQpLlxuXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBidWYubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgaWYgKCFpbkJhc2U2NCkgeyAvLyBXZSdyZSBpbiBkaXJlY3QgbW9kZS5cbiAgICAgICAgICAgIC8vIFdyaXRlIGRpcmVjdCBjaGFycyB1bnRpbCAnJidcbiAgICAgICAgICAgIGlmIChidWZbaV0gPT0gYW5kQ2hhcikge1xuICAgICAgICAgICAgICAgIHJlcyArPSB0aGlzLmljb252LmRlY29kZShidWYuc2xpY2UobGFzdEksIGkpLCBcImFzY2lpXCIpOyAvLyBXcml0ZSBkaXJlY3QgY2hhcnMuXG4gICAgICAgICAgICAgICAgbGFzdEkgPSBpKzE7XG4gICAgICAgICAgICAgICAgaW5CYXNlNjQgPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgeyAvLyBXZSBkZWNvZGUgYmFzZTY0LlxuICAgICAgICAgICAgaWYgKCFiYXNlNjRJTUFQQ2hhcnNbYnVmW2ldXSkgeyAvLyBCYXNlNjQgZW5kZWQuXG4gICAgICAgICAgICAgICAgaWYgKGkgPT0gbGFzdEkgJiYgYnVmW2ldID09IG1pbnVzQ2hhcikgeyAvLyBcIiYtXCIgLT4gXCImXCJcbiAgICAgICAgICAgICAgICAgICAgcmVzICs9IFwiJlwiO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBiNjRzdHIgPSBiYXNlNjRBY2N1bSArIHRoaXMuaWNvbnYuZGVjb2RlKGJ1Zi5zbGljZShsYXN0SSwgaSksIFwiYXNjaWlcIikucmVwbGFjZSgvLC9nLCAnLycpO1xuICAgICAgICAgICAgICAgICAgICByZXMgKz0gdGhpcy5pY29udi5kZWNvZGUoQnVmZmVyLmZyb20oYjY0c3RyLCAnYmFzZTY0JyksIFwidXRmMTYtYmVcIik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKGJ1ZltpXSAhPSBtaW51c0NoYXIpIC8vIE1pbnVzIG1heSBiZSBhYnNvcmJlZCBhZnRlciBiYXNlNjQuXG4gICAgICAgICAgICAgICAgICAgIGktLTtcblxuICAgICAgICAgICAgICAgIGxhc3RJID0gaSsxO1xuICAgICAgICAgICAgICAgIGluQmFzZTY0ID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgYmFzZTY0QWNjdW0gPSAnJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGlmICghaW5CYXNlNjQpIHtcbiAgICAgICAgcmVzICs9IHRoaXMuaWNvbnYuZGVjb2RlKGJ1Zi5zbGljZShsYXN0SSksIFwiYXNjaWlcIik7IC8vIFdyaXRlIGRpcmVjdCBjaGFycy5cbiAgICB9IGVsc2Uge1xuICAgICAgICB2YXIgYjY0c3RyID0gYmFzZTY0QWNjdW0gKyB0aGlzLmljb252LmRlY29kZShidWYuc2xpY2UobGFzdEkpLCBcImFzY2lpXCIpLnJlcGxhY2UoLywvZywgJy8nKTtcblxuICAgICAgICB2YXIgY2FuQmVEZWNvZGVkID0gYjY0c3RyLmxlbmd0aCAtIChiNjRzdHIubGVuZ3RoICUgOCk7IC8vIE1pbmltYWwgY2h1bms6IDIgcXVhZHMgLT4gMngzIGJ5dGVzIC0+IDMgY2hhcnMuXG4gICAgICAgIGJhc2U2NEFjY3VtID0gYjY0c3RyLnNsaWNlKGNhbkJlRGVjb2RlZCk7IC8vIFRoZSByZXN0IHdpbGwgYmUgZGVjb2RlZCBpbiBmdXR1cmUuXG4gICAgICAgIGI2NHN0ciA9IGI2NHN0ci5zbGljZSgwLCBjYW5CZURlY29kZWQpO1xuXG4gICAgICAgIHJlcyArPSB0aGlzLmljb252LmRlY29kZShCdWZmZXIuZnJvbShiNjRzdHIsICdiYXNlNjQnKSwgXCJ1dGYxNi1iZVwiKTtcbiAgICB9XG5cbiAgICB0aGlzLmluQmFzZTY0ID0gaW5CYXNlNjQ7XG4gICAgdGhpcy5iYXNlNjRBY2N1bSA9IGJhc2U2NEFjY3VtO1xuXG4gICAgcmV0dXJuIHJlcztcbn1cblxuVXRmN0lNQVBEZWNvZGVyLnByb3RvdHlwZS5lbmQgPSBmdW5jdGlvbigpIHtcbiAgICB2YXIgcmVzID0gXCJcIjtcbiAgICBpZiAodGhpcy5pbkJhc2U2NCAmJiB0aGlzLmJhc2U2NEFjY3VtLmxlbmd0aCA+IDApXG4gICAgICAgIHJlcyA9IHRoaXMuaWNvbnYuZGVjb2RlKEJ1ZmZlci5mcm9tKHRoaXMuYmFzZTY0QWNjdW0sICdiYXNlNjQnKSwgXCJ1dGYxNi1iZVwiKTtcblxuICAgIHRoaXMuaW5CYXNlNjQgPSBmYWxzZTtcbiAgICB0aGlzLmJhc2U2NEFjY3VtID0gJyc7XG4gICAgcmV0dXJuIHJlcztcbn1cblxuXG4iLCAiXCJ1c2Ugc3RyaWN0XCI7XG52YXIgQnVmZmVyID0gcmVxdWlyZShcInNhZmVyLWJ1ZmZlclwiKS5CdWZmZXI7XG5cbi8vIFNpbmdsZS1ieXRlIGNvZGVjLiBOZWVkcyBhICdjaGFycycgc3RyaW5nIHBhcmFtZXRlciB0aGF0IGNvbnRhaW5zIDI1NiBvciAxMjggY2hhcnMgdGhhdFxuLy8gY29ycmVzcG9uZCB0byBlbmNvZGVkIGJ5dGVzIChpZiAxMjggLSB0aGVuIGxvd2VyIGhhbGYgaXMgQVNDSUkpLiBcblxuZXhwb3J0cy5fc2JjcyA9IFNCQ1NDb2RlYztcbmZ1bmN0aW9uIFNCQ1NDb2RlYyhjb2RlY09wdGlvbnMsIGljb252KSB7XG4gICAgaWYgKCFjb2RlY09wdGlvbnMpXG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIlNCQ1MgY29kZWMgaXMgY2FsbGVkIHdpdGhvdXQgdGhlIGRhdGEuXCIpXG4gICAgXG4gICAgLy8gUHJlcGFyZSBjaGFyIGJ1ZmZlciBmb3IgZGVjb2RpbmcuXG4gICAgaWYgKCFjb2RlY09wdGlvbnMuY2hhcnMgfHwgKGNvZGVjT3B0aW9ucy5jaGFycy5sZW5ndGggIT09IDEyOCAmJiBjb2RlY09wdGlvbnMuY2hhcnMubGVuZ3RoICE9PSAyNTYpKVxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJFbmNvZGluZyAnXCIrY29kZWNPcHRpb25zLnR5cGUrXCInIGhhcyBpbmNvcnJlY3QgJ2NoYXJzJyAobXVzdCBiZSBvZiBsZW4gMTI4IG9yIDI1NilcIik7XG4gICAgXG4gICAgaWYgKGNvZGVjT3B0aW9ucy5jaGFycy5sZW5ndGggPT09IDEyOCkge1xuICAgICAgICB2YXIgYXNjaWlTdHJpbmcgPSBcIlwiO1xuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEyODsgaSsrKVxuICAgICAgICAgICAgYXNjaWlTdHJpbmcgKz0gU3RyaW5nLmZyb21DaGFyQ29kZShpKTtcbiAgICAgICAgY29kZWNPcHRpb25zLmNoYXJzID0gYXNjaWlTdHJpbmcgKyBjb2RlY09wdGlvbnMuY2hhcnM7XG4gICAgfVxuXG4gICAgdGhpcy5kZWNvZGVCdWYgPSBCdWZmZXIuZnJvbShjb2RlY09wdGlvbnMuY2hhcnMsICd1Y3MyJyk7XG4gICAgXG4gICAgLy8gRW5jb2RpbmcgYnVmZmVyLlxuICAgIHZhciBlbmNvZGVCdWYgPSBCdWZmZXIuYWxsb2MoNjU1MzYsIGljb252LmRlZmF1bHRDaGFyU2luZ2xlQnl0ZS5jaGFyQ29kZUF0KDApKTtcblxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY29kZWNPcHRpb25zLmNoYXJzLmxlbmd0aDsgaSsrKVxuICAgICAgICBlbmNvZGVCdWZbY29kZWNPcHRpb25zLmNoYXJzLmNoYXJDb2RlQXQoaSldID0gaTtcblxuICAgIHRoaXMuZW5jb2RlQnVmID0gZW5jb2RlQnVmO1xufVxuXG5TQkNTQ29kZWMucHJvdG90eXBlLmVuY29kZXIgPSBTQkNTRW5jb2RlcjtcblNCQ1NDb2RlYy5wcm90b3R5cGUuZGVjb2RlciA9IFNCQ1NEZWNvZGVyO1xuXG5cbmZ1bmN0aW9uIFNCQ1NFbmNvZGVyKG9wdGlvbnMsIGNvZGVjKSB7XG4gICAgdGhpcy5lbmNvZGVCdWYgPSBjb2RlYy5lbmNvZGVCdWY7XG59XG5cblNCQ1NFbmNvZGVyLnByb3RvdHlwZS53cml0ZSA9IGZ1bmN0aW9uKHN0cikge1xuICAgIHZhciBidWYgPSBCdWZmZXIuYWxsb2Moc3RyLmxlbmd0aCk7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzdHIubGVuZ3RoOyBpKyspXG4gICAgICAgIGJ1ZltpXSA9IHRoaXMuZW5jb2RlQnVmW3N0ci5jaGFyQ29kZUF0KGkpXTtcbiAgICBcbiAgICByZXR1cm4gYnVmO1xufVxuXG5TQkNTRW5jb2Rlci5wcm90b3R5cGUuZW5kID0gZnVuY3Rpb24oKSB7XG59XG5cblxuZnVuY3Rpb24gU0JDU0RlY29kZXIob3B0aW9ucywgY29kZWMpIHtcbiAgICB0aGlzLmRlY29kZUJ1ZiA9IGNvZGVjLmRlY29kZUJ1Zjtcbn1cblxuU0JDU0RlY29kZXIucHJvdG90eXBlLndyaXRlID0gZnVuY3Rpb24oYnVmKSB7XG4gICAgLy8gU3RyaW5ncyBhcmUgaW1tdXRhYmxlIGluIEpTIC0+IHdlIHVzZSB1Y3MyIGJ1ZmZlciB0byBzcGVlZCB1cCBjb21wdXRhdGlvbnMuXG4gICAgdmFyIGRlY29kZUJ1ZiA9IHRoaXMuZGVjb2RlQnVmO1xuICAgIHZhciBuZXdCdWYgPSBCdWZmZXIuYWxsb2MoYnVmLmxlbmd0aCoyKTtcbiAgICB2YXIgaWR4MSA9IDAsIGlkeDIgPSAwO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYnVmLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGlkeDEgPSBidWZbaV0qMjsgaWR4MiA9IGkqMjtcbiAgICAgICAgbmV3QnVmW2lkeDJdID0gZGVjb2RlQnVmW2lkeDFdO1xuICAgICAgICBuZXdCdWZbaWR4MisxXSA9IGRlY29kZUJ1ZltpZHgxKzFdO1xuICAgIH1cbiAgICByZXR1cm4gbmV3QnVmLnRvU3RyaW5nKCd1Y3MyJyk7XG59XG5cblNCQ1NEZWNvZGVyLnByb3RvdHlwZS5lbmQgPSBmdW5jdGlvbigpIHtcbn1cbiIsICJcInVzZSBzdHJpY3RcIjtcblxuLy8gTWFudWFsbHkgYWRkZWQgZGF0YSB0byBiZSB1c2VkIGJ5IHNiY3MgY29kZWMgaW4gYWRkaXRpb24gdG8gZ2VuZXJhdGVkIG9uZS5cblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgLy8gTm90IHN1cHBvcnRlZCBieSBpY29udiwgbm90IHN1cmUgd2h5LlxuICAgIFwiMTAwMjlcIjogXCJtYWNjZW50ZXVyb1wiLFxuICAgIFwibWFjY2VudGV1cm9cIjoge1xuICAgICAgICBcInR5cGVcIjogXCJfc2Jjc1wiLFxuICAgICAgICBcImNoYXJzXCI6IFwiXHUwMEM0XHUwMTAwXHUwMTAxXHUwMEM5XHUwMTA0XHUwMEQ2XHUwMERDXHUwMEUxXHUwMTA1XHUwMTBDXHUwMEU0XHUwMTBEXHUwMTA2XHUwMTA3XHUwMEU5XHUwMTc5XHUwMTdBXHUwMTBFXHUwMEVEXHUwMTBGXHUwMTEyXHUwMTEzXHUwMTE2XHUwMEYzXHUwMTE3XHUwMEY0XHUwMEY2XHUwMEY1XHUwMEZBXHUwMTFBXHUwMTFCXHUwMEZDXHUyMDIwXHUwMEIwXHUwMTE4XHUwMEEzXHUwMEE3XHUyMDIyXHUwMEI2XHUwMERGXHUwMEFFXHUwMEE5XHUyMTIyXHUwMTE5XHUwMEE4XHUyMjYwXHUwMTIzXHUwMTJFXHUwMTJGXHUwMTJBXHUyMjY0XHUyMjY1XHUwMTJCXHUwMTM2XHUyMjAyXHUyMjExXHUwMTQyXHUwMTNCXHUwMTNDXHUwMTNEXHUwMTNFXHUwMTM5XHUwMTNBXHUwMTQ1XHUwMTQ2XHUwMTQzXHUwMEFDXHUyMjFBXHUwMTQ0XHUwMTQ3XHUyMjA2XHUwMEFCXHUwMEJCXHUyMDI2XHUwMEEwXHUwMTQ4XHUwMTUwXHUwMEQ1XHUwMTUxXHUwMTRDXHUyMDEzXHUyMDE0XHUyMDFDXHUyMDFEXHUyMDE4XHUyMDE5XHUwMEY3XHUyNUNBXHUwMTREXHUwMTU0XHUwMTU1XHUwMTU4XHUyMDM5XHUyMDNBXHUwMTU5XHUwMTU2XHUwMTU3XHUwMTYwXHUyMDFBXHUyMDFFXHUwMTYxXHUwMTVBXHUwMTVCXHUwMEMxXHUwMTY0XHUwMTY1XHUwMENEXHUwMTdEXHUwMTdFXHUwMTZBXHUwMEQzXHUwMEQ0XHUwMTZCXHUwMTZFXHUwMERBXHUwMTZGXHUwMTcwXHUwMTcxXHUwMTcyXHUwMTczXHUwMEREXHUwMEZEXHUwMTM3XHUwMTdCXHUwMTQxXHUwMTdDXHUwMTIyXHUwMkM3XCJcbiAgICB9LFxuXG4gICAgXCI4MDhcIjogXCJjcDgwOFwiLFxuICAgIFwiaWJtODA4XCI6IFwiY3A4MDhcIixcbiAgICBcImNwODA4XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwiX3NiY3NcIixcbiAgICAgICAgXCJjaGFyc1wiOiBcIlx1MDQxMFx1MDQxMVx1MDQxMlx1MDQxM1x1MDQxNFx1MDQxNVx1MDQxNlx1MDQxN1x1MDQxOFx1MDQxOVx1MDQxQVx1MDQxQlx1MDQxQ1x1MDQxRFx1MDQxRVx1MDQxRlx1MDQyMFx1MDQyMVx1MDQyMlx1MDQyM1x1MDQyNFx1MDQyNVx1MDQyNlx1MDQyN1x1MDQyOFx1MDQyOVx1MDQyQVx1MDQyQlx1MDQyQ1x1MDQyRFx1MDQyRVx1MDQyRlx1MDQzMFx1MDQzMVx1MDQzMlx1MDQzM1x1MDQzNFx1MDQzNVx1MDQzNlx1MDQzN1x1MDQzOFx1MDQzOVx1MDQzQVx1MDQzQlx1MDQzQ1x1MDQzRFx1MDQzRVx1MDQzRlx1MjU5MVx1MjU5Mlx1MjU5M1x1MjUwMlx1MjUyNFx1MjU2MVx1MjU2Mlx1MjU1Nlx1MjU1NVx1MjU2M1x1MjU1MVx1MjU1N1x1MjU1RFx1MjU1Q1x1MjU1Qlx1MjUxMFx1MjUxNFx1MjUzNFx1MjUyQ1x1MjUxQ1x1MjUwMFx1MjUzQ1x1MjU1RVx1MjU1Rlx1MjU1QVx1MjU1NFx1MjU2OVx1MjU2Nlx1MjU2MFx1MjU1MFx1MjU2Q1x1MjU2N1x1MjU2OFx1MjU2NFx1MjU2NVx1MjU1OVx1MjU1OFx1MjU1Mlx1MjU1M1x1MjU2Qlx1MjU2QVx1MjUxOFx1MjUwQ1x1MjU4OFx1MjU4NFx1MjU4Q1x1MjU5MFx1MjU4MFx1MDQ0MFx1MDQ0MVx1MDQ0Mlx1MDQ0M1x1MDQ0NFx1MDQ0NVx1MDQ0Nlx1MDQ0N1x1MDQ0OFx1MDQ0OVx1MDQ0QVx1MDQ0Qlx1MDQ0Q1x1MDQ0RFx1MDQ0RVx1MDQ0Rlx1MDQwMVx1MDQ1MVx1MDQwNFx1MDQ1NFx1MDQwN1x1MDQ1N1x1MDQwRVx1MDQ1RVx1MDBCMFx1MjIxOVx1MDBCN1x1MjIxQVx1MjExNlx1MjBBQ1x1MjVBMFx1MDBBMFwiXG4gICAgfSxcblxuICAgIFwibWlrXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwiX3NiY3NcIixcbiAgICAgICAgXCJjaGFyc1wiOiBcIlx1MDQxMFx1MDQxMVx1MDQxMlx1MDQxM1x1MDQxNFx1MDQxNVx1MDQxNlx1MDQxN1x1MDQxOFx1MDQxOVx1MDQxQVx1MDQxQlx1MDQxQ1x1MDQxRFx1MDQxRVx1MDQxRlx1MDQyMFx1MDQyMVx1MDQyMlx1MDQyM1x1MDQyNFx1MDQyNVx1MDQyNlx1MDQyN1x1MDQyOFx1MDQyOVx1MDQyQVx1MDQyQlx1MDQyQ1x1MDQyRFx1MDQyRVx1MDQyRlx1MDQzMFx1MDQzMVx1MDQzMlx1MDQzM1x1MDQzNFx1MDQzNVx1MDQzNlx1MDQzN1x1MDQzOFx1MDQzOVx1MDQzQVx1MDQzQlx1MDQzQ1x1MDQzRFx1MDQzRVx1MDQzRlx1MDQ0MFx1MDQ0MVx1MDQ0Mlx1MDQ0M1x1MDQ0NFx1MDQ0NVx1MDQ0Nlx1MDQ0N1x1MDQ0OFx1MDQ0OVx1MDQ0QVx1MDQ0Qlx1MDQ0Q1x1MDQ0RFx1MDQ0RVx1MDQ0Rlx1MjUxNFx1MjUzNFx1MjUyQ1x1MjUxQ1x1MjUwMFx1MjUzQ1x1MjU2M1x1MjU1MVx1MjU1QVx1MjU1NFx1MjU2OVx1MjU2Nlx1MjU2MFx1MjU1MFx1MjU2Q1x1MjUxMFx1MjU5MVx1MjU5Mlx1MjU5M1x1MjUwMlx1MjUyNFx1MjExNlx1MDBBN1x1MjU1N1x1MjU1RFx1MjUxOFx1MjUwQ1x1MjU4OFx1MjU4NFx1MjU4Q1x1MjU5MFx1MjU4MFx1MDNCMVx1MDBERlx1MDM5M1x1MDNDMFx1MDNBM1x1MDNDM1x1MDBCNVx1MDNDNFx1MDNBNlx1MDM5OFx1MDNBOVx1MDNCNFx1MjIxRVx1MDNDNlx1MDNCNVx1MjIyOVx1MjI2MVx1MDBCMVx1MjI2NVx1MjI2NFx1MjMyMFx1MjMyMVx1MDBGN1x1MjI0OFx1MDBCMFx1MjIxOVx1MDBCN1x1MjIxQVx1MjA3Rlx1MDBCMlx1MjVBMFx1MDBBMFwiXG4gICAgfSxcblxuICAgIFwiY3A3MjBcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJfc2Jjc1wiLFxuICAgICAgICBcImNoYXJzXCI6IFwiXFx4ODBcXHg4MVx1MDBFOVx1MDBFMlxceDg0XHUwMEUwXFx4ODZcdTAwRTdcdTAwRUFcdTAwRUJcdTAwRThcdTAwRUZcdTAwRUVcXHg4ZFxceDhlXFx4OGZcXHg5MFxcdTA2NTFcXHUwNjUyXHUwMEY0XHUwMEE0XHUwNjQwXHUwMEZCXHUwMEY5XHUwNjIxXHUwNjIyXHUwNjIzXHUwNjI0XHUwMEEzXHUwNjI1XHUwNjI2XHUwNjI3XHUwNjI4XHUwNjI5XHUwNjJBXHUwNjJCXHUwNjJDXHUwNjJEXHUwNjJFXHUwNjJGXHUwNjMwXHUwNjMxXHUwNjMyXHUwNjMzXHUwNjM0XHUwNjM1XHUwMEFCXHUwMEJCXHUyNTkxXHUyNTkyXHUyNTkzXHUyNTAyXHUyNTI0XHUyNTYxXHUyNTYyXHUyNTU2XHUyNTU1XHUyNTYzXHUyNTUxXHUyNTU3XHUyNTVEXHUyNTVDXHUyNTVCXHUyNTEwXHUyNTE0XHUyNTM0XHUyNTJDXHUyNTFDXHUyNTAwXHUyNTNDXHUyNTVFXHUyNTVGXHUyNTVBXHUyNTU0XHUyNTY5XHUyNTY2XHUyNTYwXHUyNTUwXHUyNTZDXHUyNTY3XHUyNTY4XHUyNTY0XHUyNTY1XHUyNTU5XHUyNTU4XHUyNTUyXHUyNTUzXHUyNTZCXHUyNTZBXHUyNTE4XHUyNTBDXHUyNTg4XHUyNTg0XHUyNThDXHUyNTkwXHUyNTgwXHUwNjM2XHUwNjM3XHUwNjM4XHUwNjM5XHUwNjNBXHUwNjQxXHUwMEI1XHUwNjQyXHUwNjQzXHUwNjQ0XHUwNjQ1XHUwNjQ2XHUwNjQ3XHUwNjQ4XHUwNjQ5XHUwNjRBXHUyMjYxXFx1MDY0YlxcdTA2NGNcXHUwNjRkXFx1MDY0ZVxcdTA2NGZcXHUwNjUwXHUyMjQ4XHUwMEIwXHUyMjE5XHUwMEI3XHUyMjFBXHUyMDdGXHUwMEIyXHUyNUEwXFx1MDBhMFwiXG4gICAgfSxcblxuICAgIC8vIEFsaWFzZXMgb2YgZ2VuZXJhdGVkIGVuY29kaW5ncy5cbiAgICBcImFzY2lpOGJpdFwiOiBcImFzY2lpXCIsXG4gICAgXCJ1c2FzY2lpXCI6IFwiYXNjaWlcIixcbiAgICBcImFuc2l4MzRcIjogXCJhc2NpaVwiLFxuICAgIFwiYW5zaXgzNDE5NjhcIjogXCJhc2NpaVwiLFxuICAgIFwiYW5zaXgzNDE5ODZcIjogXCJhc2NpaVwiLFxuICAgIFwiY3Nhc2NpaVwiOiBcImFzY2lpXCIsXG4gICAgXCJjcDM2N1wiOiBcImFzY2lpXCIsXG4gICAgXCJpYm0zNjdcIjogXCJhc2NpaVwiLFxuICAgIFwiaXNvaXI2XCI6IFwiYXNjaWlcIixcbiAgICBcImlzbzY0NnVzXCI6IFwiYXNjaWlcIixcbiAgICBcImlzbzY0NmlydlwiOiBcImFzY2lpXCIsXG4gICAgXCJ1c1wiOiBcImFzY2lpXCIsXG5cbiAgICBcImxhdGluMVwiOiBcImlzbzg4NTkxXCIsXG4gICAgXCJsYXRpbjJcIjogXCJpc284ODU5MlwiLFxuICAgIFwibGF0aW4zXCI6IFwiaXNvODg1OTNcIixcbiAgICBcImxhdGluNFwiOiBcImlzbzg4NTk0XCIsXG4gICAgXCJsYXRpbjVcIjogXCJpc284ODU5OVwiLFxuICAgIFwibGF0aW42XCI6IFwiaXNvODg1OTEwXCIsXG4gICAgXCJsYXRpbjdcIjogXCJpc284ODU5MTNcIixcbiAgICBcImxhdGluOFwiOiBcImlzbzg4NTkxNFwiLFxuICAgIFwibGF0aW45XCI6IFwiaXNvODg1OTE1XCIsXG4gICAgXCJsYXRpbjEwXCI6IFwiaXNvODg1OTE2XCIsXG5cbiAgICBcImNzaXNvbGF0aW4xXCI6IFwiaXNvODg1OTFcIixcbiAgICBcImNzaXNvbGF0aW4yXCI6IFwiaXNvODg1OTJcIixcbiAgICBcImNzaXNvbGF0aW4zXCI6IFwiaXNvODg1OTNcIixcbiAgICBcImNzaXNvbGF0aW40XCI6IFwiaXNvODg1OTRcIixcbiAgICBcImNzaXNvbGF0aW5jeXJpbGxpY1wiOiBcImlzbzg4NTk1XCIsXG4gICAgXCJjc2lzb2xhdGluYXJhYmljXCI6IFwiaXNvODg1OTZcIixcbiAgICBcImNzaXNvbGF0aW5ncmVla1wiIDogXCJpc284ODU5N1wiLFxuICAgIFwiY3Npc29sYXRpbmhlYnJld1wiOiBcImlzbzg4NTk4XCIsXG4gICAgXCJjc2lzb2xhdGluNVwiOiBcImlzbzg4NTk5XCIsXG4gICAgXCJjc2lzb2xhdGluNlwiOiBcImlzbzg4NTkxMFwiLFxuXG4gICAgXCJsMVwiOiBcImlzbzg4NTkxXCIsXG4gICAgXCJsMlwiOiBcImlzbzg4NTkyXCIsXG4gICAgXCJsM1wiOiBcImlzbzg4NTkzXCIsXG4gICAgXCJsNFwiOiBcImlzbzg4NTk0XCIsXG4gICAgXCJsNVwiOiBcImlzbzg4NTk5XCIsXG4gICAgXCJsNlwiOiBcImlzbzg4NTkxMFwiLFxuICAgIFwibDdcIjogXCJpc284ODU5MTNcIixcbiAgICBcImw4XCI6IFwiaXNvODg1OTE0XCIsXG4gICAgXCJsOVwiOiBcImlzbzg4NTkxNVwiLFxuICAgIFwibDEwXCI6IFwiaXNvODg1OTE2XCIsXG5cbiAgICBcImlzb2lyMTRcIjogXCJpc282NDZqcFwiLFxuICAgIFwiaXNvaXI1N1wiOiBcImlzbzY0NmNuXCIsXG4gICAgXCJpc29pcjEwMFwiOiBcImlzbzg4NTkxXCIsXG4gICAgXCJpc29pcjEwMVwiOiBcImlzbzg4NTkyXCIsXG4gICAgXCJpc29pcjEwOVwiOiBcImlzbzg4NTkzXCIsXG4gICAgXCJpc29pcjExMFwiOiBcImlzbzg4NTk0XCIsXG4gICAgXCJpc29pcjE0NFwiOiBcImlzbzg4NTk1XCIsXG4gICAgXCJpc29pcjEyN1wiOiBcImlzbzg4NTk2XCIsXG4gICAgXCJpc29pcjEyNlwiOiBcImlzbzg4NTk3XCIsXG4gICAgXCJpc29pcjEzOFwiOiBcImlzbzg4NTk4XCIsXG4gICAgXCJpc29pcjE0OFwiOiBcImlzbzg4NTk5XCIsXG4gICAgXCJpc29pcjE1N1wiOiBcImlzbzg4NTkxMFwiLFxuICAgIFwiaXNvaXIxNjZcIjogXCJ0aXM2MjBcIixcbiAgICBcImlzb2lyMTc5XCI6IFwiaXNvODg1OTEzXCIsXG4gICAgXCJpc29pcjE5OVwiOiBcImlzbzg4NTkxNFwiLFxuICAgIFwiaXNvaXIyMDNcIjogXCJpc284ODU5MTVcIixcbiAgICBcImlzb2lyMjI2XCI6IFwiaXNvODg1OTE2XCIsXG5cbiAgICBcImNwODE5XCI6IFwiaXNvODg1OTFcIixcbiAgICBcImlibTgxOVwiOiBcImlzbzg4NTkxXCIsXG5cbiAgICBcImN5cmlsbGljXCI6IFwiaXNvODg1OTVcIixcblxuICAgIFwiYXJhYmljXCI6IFwiaXNvODg1OTZcIixcbiAgICBcImFyYWJpYzhcIjogXCJpc284ODU5NlwiLFxuICAgIFwiZWNtYTExNFwiOiBcImlzbzg4NTk2XCIsXG4gICAgXCJhc21vNzA4XCI6IFwiaXNvODg1OTZcIixcblxuICAgIFwiZ3JlZWtcIiA6IFwiaXNvODg1OTdcIixcbiAgICBcImdyZWVrOFwiIDogXCJpc284ODU5N1wiLFxuICAgIFwiZWNtYTExOFwiIDogXCJpc284ODU5N1wiLFxuICAgIFwiZWxvdDkyOFwiIDogXCJpc284ODU5N1wiLFxuXG4gICAgXCJoZWJyZXdcIjogXCJpc284ODU5OFwiLFxuICAgIFwiaGVicmV3OFwiOiBcImlzbzg4NTk4XCIsXG5cbiAgICBcInR1cmtpc2hcIjogXCJpc284ODU5OVwiLFxuICAgIFwidHVya2lzaDhcIjogXCJpc284ODU5OVwiLFxuXG4gICAgXCJ0aGFpXCI6IFwiaXNvODg1OTExXCIsXG4gICAgXCJ0aGFpOFwiOiBcImlzbzg4NTkxMVwiLFxuXG4gICAgXCJjZWx0aWNcIjogXCJpc284ODU5MTRcIixcbiAgICBcImNlbHRpYzhcIjogXCJpc284ODU5MTRcIixcbiAgICBcImlzb2NlbHRpY1wiOiBcImlzbzg4NTkxNFwiLFxuXG4gICAgXCJ0aXM2MjAwXCI6IFwidGlzNjIwXCIsXG4gICAgXCJ0aXM2MjAyNTI5MVwiOiBcInRpczYyMFwiLFxuICAgIFwidGlzNjIwMjUzMzBcIjogXCJ0aXM2MjBcIixcblxuICAgIFwiMTAwMDBcIjogXCJtYWNyb21hblwiLFxuICAgIFwiMTAwMDZcIjogXCJtYWNncmVla1wiLFxuICAgIFwiMTAwMDdcIjogXCJtYWNjeXJpbGxpY1wiLFxuICAgIFwiMTAwNzlcIjogXCJtYWNpY2VsYW5kXCIsXG4gICAgXCIxMDA4MVwiOiBcIm1hY3R1cmtpc2hcIixcblxuICAgIFwiY3NwYzhjb2RlcGFnZTQzN1wiOiBcImNwNDM3XCIsXG4gICAgXCJjc3BjNzc1YmFsdGljXCI6IFwiY3A3NzVcIixcbiAgICBcImNzcGM4NTBtdWx0aWxpbmd1YWxcIjogXCJjcDg1MFwiLFxuICAgIFwiY3NwY3A4NTJcIjogXCJjcDg1MlwiLFxuICAgIFwiY3NwYzg2MmxhdGluaGVicmV3XCI6IFwiY3A4NjJcIixcbiAgICBcImNwZ3JcIjogXCJjcDg2OVwiLFxuXG4gICAgXCJtc2VlXCI6IFwiY3AxMjUwXCIsXG4gICAgXCJtc2N5cmxcIjogXCJjcDEyNTFcIixcbiAgICBcIm1zYW5zaVwiOiBcImNwMTI1MlwiLFxuICAgIFwibXNncmVla1wiOiBcImNwMTI1M1wiLFxuICAgIFwibXN0dXJrXCI6IFwiY3AxMjU0XCIsXG4gICAgXCJtc2hlYnJcIjogXCJjcDEyNTVcIixcbiAgICBcIm1zYXJhYlwiOiBcImNwMTI1NlwiLFxuICAgIFwid2luYmFsdHJpbVwiOiBcImNwMTI1N1wiLFxuXG4gICAgXCJjcDIwODY2XCI6IFwia29pOHJcIixcbiAgICBcIjIwODY2XCI6IFwia29pOHJcIixcbiAgICBcImlibTg3OFwiOiBcImtvaThyXCIsXG4gICAgXCJjc2tvaThyXCI6IFwia29pOHJcIixcblxuICAgIFwiY3AyMTg2NlwiOiBcImtvaTh1XCIsXG4gICAgXCIyMTg2NlwiOiBcImtvaTh1XCIsXG4gICAgXCJpYm0xMTY4XCI6IFwia29pOHVcIixcblxuICAgIFwic3RyazEwNDgyMDAyXCI6IFwicmsxMDQ4XCIsXG5cbiAgICBcInRjdm41NzEyXCI6IFwidGN2blwiLFxuICAgIFwidGN2bjU3MTIxXCI6IFwidGN2blwiLFxuXG4gICAgXCJnYjE5ODg4MFwiOiBcImlzbzY0NmNuXCIsXG4gICAgXCJjblwiOiBcImlzbzY0NmNuXCIsXG5cbiAgICBcImNzaXNvMTRqaXNjNjIyMHJvXCI6IFwiaXNvNjQ2anBcIixcbiAgICBcImppc2M2MjIwMTk2OXJvXCI6IFwiaXNvNjQ2anBcIixcbiAgICBcImpwXCI6IFwiaXNvNjQ2anBcIixcblxuICAgIFwiY3NocHJvbWFuOFwiOiBcImhwcm9tYW44XCIsXG4gICAgXCJyOFwiOiBcImhwcm9tYW44XCIsXG4gICAgXCJyb21hbjhcIjogXCJocHJvbWFuOFwiLFxuICAgIFwieHJvbWFuOFwiOiBcImhwcm9tYW44XCIsXG4gICAgXCJpYm0xMDUxXCI6IFwiaHByb21hbjhcIixcblxuICAgIFwibWFjXCI6IFwibWFjaW50b3NoXCIsXG4gICAgXCJjc21hY2ludG9zaFwiOiBcIm1hY2ludG9zaFwiLFxufTtcblxuIiwgIlwidXNlIHN0cmljdFwiO1xuXG4vLyBHZW5lcmF0ZWQgZGF0YSBmb3Igc2JjcyBjb2RlYy4gRG9uJ3QgZWRpdCBtYW51YWxseS4gUmVnZW5lcmF0ZSB1c2luZyBnZW5lcmF0aW9uL2dlbi1zYmNzLmpzIHNjcmlwdC5cbm1vZHVsZS5leHBvcnRzID0ge1xuICBcIjQzN1wiOiBcImNwNDM3XCIsXG4gIFwiNzM3XCI6IFwiY3A3MzdcIixcbiAgXCI3NzVcIjogXCJjcDc3NVwiLFxuICBcIjg1MFwiOiBcImNwODUwXCIsXG4gIFwiODUyXCI6IFwiY3A4NTJcIixcbiAgXCI4NTVcIjogXCJjcDg1NVwiLFxuICBcIjg1NlwiOiBcImNwODU2XCIsXG4gIFwiODU3XCI6IFwiY3A4NTdcIixcbiAgXCI4NThcIjogXCJjcDg1OFwiLFxuICBcIjg2MFwiOiBcImNwODYwXCIsXG4gIFwiODYxXCI6IFwiY3A4NjFcIixcbiAgXCI4NjJcIjogXCJjcDg2MlwiLFxuICBcIjg2M1wiOiBcImNwODYzXCIsXG4gIFwiODY0XCI6IFwiY3A4NjRcIixcbiAgXCI4NjVcIjogXCJjcDg2NVwiLFxuICBcIjg2NlwiOiBcImNwODY2XCIsXG4gIFwiODY5XCI6IFwiY3A4NjlcIixcbiAgXCI4NzRcIjogXCJ3aW5kb3dzODc0XCIsXG4gIFwiOTIyXCI6IFwiY3A5MjJcIixcbiAgXCIxMDQ2XCI6IFwiY3AxMDQ2XCIsXG4gIFwiMTEyNFwiOiBcImNwMTEyNFwiLFxuICBcIjExMjVcIjogXCJjcDExMjVcIixcbiAgXCIxMTI5XCI6IFwiY3AxMTI5XCIsXG4gIFwiMTEzM1wiOiBcImNwMTEzM1wiLFxuICBcIjExNjFcIjogXCJjcDExNjFcIixcbiAgXCIxMTYyXCI6IFwiY3AxMTYyXCIsXG4gIFwiMTE2M1wiOiBcImNwMTE2M1wiLFxuICBcIjEyNTBcIjogXCJ3aW5kb3dzMTI1MFwiLFxuICBcIjEyNTFcIjogXCJ3aW5kb3dzMTI1MVwiLFxuICBcIjEyNTJcIjogXCJ3aW5kb3dzMTI1MlwiLFxuICBcIjEyNTNcIjogXCJ3aW5kb3dzMTI1M1wiLFxuICBcIjEyNTRcIjogXCJ3aW5kb3dzMTI1NFwiLFxuICBcIjEyNTVcIjogXCJ3aW5kb3dzMTI1NVwiLFxuICBcIjEyNTZcIjogXCJ3aW5kb3dzMTI1NlwiLFxuICBcIjEyNTdcIjogXCJ3aW5kb3dzMTI1N1wiLFxuICBcIjEyNThcIjogXCJ3aW5kb3dzMTI1OFwiLFxuICBcIjI4NTkxXCI6IFwiaXNvODg1OTFcIixcbiAgXCIyODU5MlwiOiBcImlzbzg4NTkyXCIsXG4gIFwiMjg1OTNcIjogXCJpc284ODU5M1wiLFxuICBcIjI4NTk0XCI6IFwiaXNvODg1OTRcIixcbiAgXCIyODU5NVwiOiBcImlzbzg4NTk1XCIsXG4gIFwiMjg1OTZcIjogXCJpc284ODU5NlwiLFxuICBcIjI4NTk3XCI6IFwiaXNvODg1OTdcIixcbiAgXCIyODU5OFwiOiBcImlzbzg4NTk4XCIsXG4gIFwiMjg1OTlcIjogXCJpc284ODU5OVwiLFxuICBcIjI4NjAwXCI6IFwiaXNvODg1OTEwXCIsXG4gIFwiMjg2MDFcIjogXCJpc284ODU5MTFcIixcbiAgXCIyODYwM1wiOiBcImlzbzg4NTkxM1wiLFxuICBcIjI4NjA0XCI6IFwiaXNvODg1OTE0XCIsXG4gIFwiMjg2MDVcIjogXCJpc284ODU5MTVcIixcbiAgXCIyODYwNlwiOiBcImlzbzg4NTkxNlwiLFxuICBcIndpbmRvd3M4NzRcIjoge1xuICAgIFwidHlwZVwiOiBcIl9zYmNzXCIsXG4gICAgXCJjaGFyc1wiOiBcIlx1MjBBQ1x1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1MjAyNlx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1MjAxOFx1MjAxOVx1MjAxQ1x1MjAxRFx1MjAyMlx1MjAxM1x1MjAxNFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1MDBBMFx1MEUwMVx1MEUwMlx1MEUwM1x1MEUwNFx1MEUwNVx1MEUwNlx1MEUwN1x1MEUwOFx1MEUwOVx1MEUwQVx1MEUwQlx1MEUwQ1x1MEUwRFx1MEUwRVx1MEUwRlx1MEUxMFx1MEUxMVx1MEUxMlx1MEUxM1x1MEUxNFx1MEUxNVx1MEUxNlx1MEUxN1x1MEUxOFx1MEUxOVx1MEUxQVx1MEUxQlx1MEUxQ1x1MEUxRFx1MEUxRVx1MEUxRlx1MEUyMFx1MEUyMVx1MEUyMlx1MEUyM1x1MEUyNFx1MEUyNVx1MEUyNlx1MEUyN1x1MEUyOFx1MEUyOVx1MEUyQVx1MEUyQlx1MEUyQ1x1MEUyRFx1MEUyRVx1MEUyRlx1MEUzMFx1MEUzMVx1MEUzMlx1MEUzM1x1MEUzNFx1MEUzNVx1MEUzNlx1MEUzN1x1MEUzOFx1MEUzOVx1MEUzQVx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1MEUzRlx1MEU0MFx1MEU0MVx1MEU0Mlx1MEU0M1x1MEU0NFx1MEU0NVx1MEU0Nlx1MEU0N1x1MEU0OFx1MEU0OVx1MEU0QVx1MEU0Qlx1MEU0Q1x1MEU0RFx1MEU0RVx1MEU0Rlx1MEU1MFx1MEU1MVx1MEU1Mlx1MEU1M1x1MEU1NFx1MEU1NVx1MEU1Nlx1MEU1N1x1MEU1OFx1MEU1OVx1MEU1QVx1MEU1Qlx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFwiXG4gIH0sXG4gIFwid2luODc0XCI6IFwid2luZG93czg3NFwiLFxuICBcImNwODc0XCI6IFwid2luZG93czg3NFwiLFxuICBcIndpbmRvd3MxMjUwXCI6IHtcbiAgICBcInR5cGVcIjogXCJfc2Jjc1wiLFxuICAgIFwiY2hhcnNcIjogXCJcdTIwQUNcdUZGRkRcdTIwMUFcdUZGRkRcdTIwMUVcdTIwMjZcdTIwMjBcdTIwMjFcdUZGRkRcdTIwMzBcdTAxNjBcdTIwMzlcdTAxNUFcdTAxNjRcdTAxN0RcdTAxNzlcdUZGRkRcdTIwMThcdTIwMTlcdTIwMUNcdTIwMURcdTIwMjJcdTIwMTNcdTIwMTRcdUZGRkRcdTIxMjJcdTAxNjFcdTIwM0FcdTAxNUJcdTAxNjVcdTAxN0VcdTAxN0FcdTAwQTBcdTAyQzdcdTAyRDhcdTAxNDFcdTAwQTRcdTAxMDRcdTAwQTZcdTAwQTdcdTAwQThcdTAwQTlcdTAxNUVcdTAwQUJcdTAwQUNcdTAwQURcdTAwQUVcdTAxN0JcdTAwQjBcdTAwQjFcdTAyREJcdTAxNDJcdTAwQjRcdTAwQjVcdTAwQjZcdTAwQjdcdTAwQjhcdTAxMDVcdTAxNUZcdTAwQkJcdTAxM0RcdTAyRERcdTAxM0VcdTAxN0NcdTAxNTRcdTAwQzFcdTAwQzJcdTAxMDJcdTAwQzRcdTAxMzlcdTAxMDZcdTAwQzdcdTAxMENcdTAwQzlcdTAxMThcdTAwQ0JcdTAxMUFcdTAwQ0RcdTAwQ0VcdTAxMEVcdTAxMTBcdTAxNDNcdTAxNDdcdTAwRDNcdTAwRDRcdTAxNTBcdTAwRDZcdTAwRDdcdTAxNThcdTAxNkVcdTAwREFcdTAxNzBcdTAwRENcdTAwRERcdTAxNjJcdTAwREZcdTAxNTVcdTAwRTFcdTAwRTJcdTAxMDNcdTAwRTRcdTAxM0FcdTAxMDdcdTAwRTdcdTAxMERcdTAwRTlcdTAxMTlcdTAwRUJcdTAxMUJcdTAwRURcdTAwRUVcdTAxMEZcdTAxMTFcdTAxNDRcdTAxNDhcdTAwRjNcdTAwRjRcdTAxNTFcdTAwRjZcdTAwRjdcdTAxNTlcdTAxNkZcdTAwRkFcdTAxNzFcdTAwRkNcdTAwRkRcdTAxNjNcdTAyRDlcIlxuICB9LFxuICBcIndpbjEyNTBcIjogXCJ3aW5kb3dzMTI1MFwiLFxuICBcImNwMTI1MFwiOiBcIndpbmRvd3MxMjUwXCIsXG4gIFwid2luZG93czEyNTFcIjoge1xuICAgIFwidHlwZVwiOiBcIl9zYmNzXCIsXG4gICAgXCJjaGFyc1wiOiBcIlx1MDQwMlx1MDQwM1x1MjAxQVx1MDQ1M1x1MjAxRVx1MjAyNlx1MjAyMFx1MjAyMVx1MjBBQ1x1MjAzMFx1MDQwOVx1MjAzOVx1MDQwQVx1MDQwQ1x1MDQwQlx1MDQwRlx1MDQ1Mlx1MjAxOFx1MjAxOVx1MjAxQ1x1MjAxRFx1MjAyMlx1MjAxM1x1MjAxNFx1RkZGRFx1MjEyMlx1MDQ1OVx1MjAzQVx1MDQ1QVx1MDQ1Q1x1MDQ1Qlx1MDQ1Rlx1MDBBMFx1MDQwRVx1MDQ1RVx1MDQwOFx1MDBBNFx1MDQ5MFx1MDBBNlx1MDBBN1x1MDQwMVx1MDBBOVx1MDQwNFx1MDBBQlx1MDBBQ1x1MDBBRFx1MDBBRVx1MDQwN1x1MDBCMFx1MDBCMVx1MDQwNlx1MDQ1Nlx1MDQ5MVx1MDBCNVx1MDBCNlx1MDBCN1x1MDQ1MVx1MjExNlx1MDQ1NFx1MDBCQlx1MDQ1OFx1MDQwNVx1MDQ1NVx1MDQ1N1x1MDQxMFx1MDQxMVx1MDQxMlx1MDQxM1x1MDQxNFx1MDQxNVx1MDQxNlx1MDQxN1x1MDQxOFx1MDQxOVx1MDQxQVx1MDQxQlx1MDQxQ1x1MDQxRFx1MDQxRVx1MDQxRlx1MDQyMFx1MDQyMVx1MDQyMlx1MDQyM1x1MDQyNFx1MDQyNVx1MDQyNlx1MDQyN1x1MDQyOFx1MDQyOVx1MDQyQVx1MDQyQlx1MDQyQ1x1MDQyRFx1MDQyRVx1MDQyRlx1MDQzMFx1MDQzMVx1MDQzMlx1MDQzM1x1MDQzNFx1MDQzNVx1MDQzNlx1MDQzN1x1MDQzOFx1MDQzOVx1MDQzQVx1MDQzQlx1MDQzQ1x1MDQzRFx1MDQzRVx1MDQzRlx1MDQ0MFx1MDQ0MVx1MDQ0Mlx1MDQ0M1x1MDQ0NFx1MDQ0NVx1MDQ0Nlx1MDQ0N1x1MDQ0OFx1MDQ0OVx1MDQ0QVx1MDQ0Qlx1MDQ0Q1x1MDQ0RFx1MDQ0RVx1MDQ0RlwiXG4gIH0sXG4gIFwid2luMTI1MVwiOiBcIndpbmRvd3MxMjUxXCIsXG4gIFwiY3AxMjUxXCI6IFwid2luZG93czEyNTFcIixcbiAgXCJ3aW5kb3dzMTI1MlwiOiB7XG4gICAgXCJ0eXBlXCI6IFwiX3NiY3NcIixcbiAgICBcImNoYXJzXCI6IFwiXHUyMEFDXHVGRkZEXHUyMDFBXHUwMTkyXHUyMDFFXHUyMDI2XHUyMDIwXHUyMDIxXHUwMkM2XHUyMDMwXHUwMTYwXHUyMDM5XHUwMTUyXHVGRkZEXHUwMTdEXHVGRkZEXHVGRkZEXHUyMDE4XHUyMDE5XHUyMDFDXHUyMDFEXHUyMDIyXHUyMDEzXHUyMDE0XHUwMkRDXHUyMTIyXHUwMTYxXHUyMDNBXHUwMTUzXHVGRkZEXHUwMTdFXHUwMTc4XHUwMEEwXHUwMEExXHUwMEEyXHUwMEEzXHUwMEE0XHUwMEE1XHUwMEE2XHUwMEE3XHUwMEE4XHUwMEE5XHUwMEFBXHUwMEFCXHUwMEFDXHUwMEFEXHUwMEFFXHUwMEFGXHUwMEIwXHUwMEIxXHUwMEIyXHUwMEIzXHUwMEI0XHUwMEI1XHUwMEI2XHUwMEI3XHUwMEI4XHUwMEI5XHUwMEJBXHUwMEJCXHUwMEJDXHUwMEJEXHUwMEJFXHUwMEJGXHUwMEMwXHUwMEMxXHUwMEMyXHUwMEMzXHUwMEM0XHUwMEM1XHUwMEM2XHUwMEM3XHUwMEM4XHUwMEM5XHUwMENBXHUwMENCXHUwMENDXHUwMENEXHUwMENFXHUwMENGXHUwMEQwXHUwMEQxXHUwMEQyXHUwMEQzXHUwMEQ0XHUwMEQ1XHUwMEQ2XHUwMEQ3XHUwMEQ4XHUwMEQ5XHUwMERBXHUwMERCXHUwMERDXHUwMEREXHUwMERFXHUwMERGXHUwMEUwXHUwMEUxXHUwMEUyXHUwMEUzXHUwMEU0XHUwMEU1XHUwMEU2XHUwMEU3XHUwMEU4XHUwMEU5XHUwMEVBXHUwMEVCXHUwMEVDXHUwMEVEXHUwMEVFXHUwMEVGXHUwMEYwXHUwMEYxXHUwMEYyXHUwMEYzXHUwMEY0XHUwMEY1XHUwMEY2XHUwMEY3XHUwMEY4XHUwMEY5XHUwMEZBXHUwMEZCXHUwMEZDXHUwMEZEXHUwMEZFXHUwMEZGXCJcbiAgfSxcbiAgXCJ3aW4xMjUyXCI6IFwid2luZG93czEyNTJcIixcbiAgXCJjcDEyNTJcIjogXCJ3aW5kb3dzMTI1MlwiLFxuICBcIndpbmRvd3MxMjUzXCI6IHtcbiAgICBcInR5cGVcIjogXCJfc2Jjc1wiLFxuICAgIFwiY2hhcnNcIjogXCJcdTIwQUNcdUZGRkRcdTIwMUFcdTAxOTJcdTIwMUVcdTIwMjZcdTIwMjBcdTIwMjFcdUZGRkRcdTIwMzBcdUZGRkRcdTIwMzlcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdTIwMThcdTIwMTlcdTIwMUNcdTIwMURcdTIwMjJcdTIwMTNcdTIwMTRcdUZGRkRcdTIxMjJcdUZGRkRcdTIwM0FcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdTAwQTBcdTAzODVcdTAzODZcdTAwQTNcdTAwQTRcdTAwQTVcdTAwQTZcdTAwQTdcdTAwQThcdTAwQTlcdUZGRkRcdTAwQUJcdTAwQUNcdTAwQURcdTAwQUVcdTIwMTVcdTAwQjBcdTAwQjFcdTAwQjJcdTAwQjNcdTAzODRcdTAwQjVcdTAwQjZcdTAwQjdcdTAzODhcdTAzODlcdTAzOEFcdTAwQkJcdTAzOENcdTAwQkRcdTAzOEVcdTAzOEZcdTAzOTBcdTAzOTFcdTAzOTJcdTAzOTNcdTAzOTRcdTAzOTVcdTAzOTZcdTAzOTdcdTAzOThcdTAzOTlcdTAzOUFcdTAzOUJcdTAzOUNcdTAzOURcdTAzOUVcdTAzOUZcdTAzQTBcdTAzQTFcdUZGRkRcdTAzQTNcdTAzQTRcdTAzQTVcdTAzQTZcdTAzQTdcdTAzQThcdTAzQTlcdTAzQUFcdTAzQUJcdTAzQUNcdTAzQURcdTAzQUVcdTAzQUZcdTAzQjBcdTAzQjFcdTAzQjJcdTAzQjNcdTAzQjRcdTAzQjVcdTAzQjZcdTAzQjdcdTAzQjhcdTAzQjlcdTAzQkFcdTAzQkJcdTAzQkNcdTAzQkRcdTAzQkVcdTAzQkZcdTAzQzBcdTAzQzFcdTAzQzJcdTAzQzNcdTAzQzRcdTAzQzVcdTAzQzZcdTAzQzdcdTAzQzhcdTAzQzlcdTAzQ0FcdTAzQ0JcdTAzQ0NcdTAzQ0RcdTAzQ0VcdUZGRkRcIlxuICB9LFxuICBcIndpbjEyNTNcIjogXCJ3aW5kb3dzMTI1M1wiLFxuICBcImNwMTI1M1wiOiBcIndpbmRvd3MxMjUzXCIsXG4gIFwid2luZG93czEyNTRcIjoge1xuICAgIFwidHlwZVwiOiBcIl9zYmNzXCIsXG4gICAgXCJjaGFyc1wiOiBcIlx1MjBBQ1x1RkZGRFx1MjAxQVx1MDE5Mlx1MjAxRVx1MjAyNlx1MjAyMFx1MjAyMVx1MDJDNlx1MjAzMFx1MDE2MFx1MjAzOVx1MDE1Mlx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1MjAxOFx1MjAxOVx1MjAxQ1x1MjAxRFx1MjAyMlx1MjAxM1x1MjAxNFx1MDJEQ1x1MjEyMlx1MDE2MVx1MjAzQVx1MDE1M1x1RkZGRFx1RkZGRFx1MDE3OFx1MDBBMFx1MDBBMVx1MDBBMlx1MDBBM1x1MDBBNFx1MDBBNVx1MDBBNlx1MDBBN1x1MDBBOFx1MDBBOVx1MDBBQVx1MDBBQlx1MDBBQ1x1MDBBRFx1MDBBRVx1MDBBRlx1MDBCMFx1MDBCMVx1MDBCMlx1MDBCM1x1MDBCNFx1MDBCNVx1MDBCNlx1MDBCN1x1MDBCOFx1MDBCOVx1MDBCQVx1MDBCQlx1MDBCQ1x1MDBCRFx1MDBCRVx1MDBCRlx1MDBDMFx1MDBDMVx1MDBDMlx1MDBDM1x1MDBDNFx1MDBDNVx1MDBDNlx1MDBDN1x1MDBDOFx1MDBDOVx1MDBDQVx1MDBDQlx1MDBDQ1x1MDBDRFx1MDBDRVx1MDBDRlx1MDExRVx1MDBEMVx1MDBEMlx1MDBEM1x1MDBENFx1MDBENVx1MDBENlx1MDBEN1x1MDBEOFx1MDBEOVx1MDBEQVx1MDBEQlx1MDBEQ1x1MDEzMFx1MDE1RVx1MDBERlx1MDBFMFx1MDBFMVx1MDBFMlx1MDBFM1x1MDBFNFx1MDBFNVx1MDBFNlx1MDBFN1x1MDBFOFx1MDBFOVx1MDBFQVx1MDBFQlx1MDBFQ1x1MDBFRFx1MDBFRVx1MDBFRlx1MDExRlx1MDBGMVx1MDBGMlx1MDBGM1x1MDBGNFx1MDBGNVx1MDBGNlx1MDBGN1x1MDBGOFx1MDBGOVx1MDBGQVx1MDBGQlx1MDBGQ1x1MDEzMVx1MDE1Rlx1MDBGRlwiXG4gIH0sXG4gIFwid2luMTI1NFwiOiBcIndpbmRvd3MxMjU0XCIsXG4gIFwiY3AxMjU0XCI6IFwid2luZG93czEyNTRcIixcbiAgXCJ3aW5kb3dzMTI1NVwiOiB7XG4gICAgXCJ0eXBlXCI6IFwiX3NiY3NcIixcbiAgICBcImNoYXJzXCI6IFwiXHUyMEFDXHVGRkZEXHUyMDFBXHUwMTkyXHUyMDFFXHUyMDI2XHUyMDIwXHUyMDIxXHUwMkM2XHUyMDMwXHVGRkZEXHUyMDM5XHVGRkZEXHVGRkZEXHVGRkZEXHVGRkZEXHVGRkZEXHUyMDE4XHUyMDE5XHUyMDFDXHUyMDFEXHUyMDIyXHUyMDEzXHUyMDE0XHUwMkRDXHUyMTIyXHVGRkZEXHUyMDNBXHVGRkZEXHVGRkZEXHVGRkZEXHVGRkZEXHUwMEEwXHUwMEExXHUwMEEyXHUwMEEzXHUyMEFBXHUwMEE1XHUwMEE2XHUwMEE3XHUwMEE4XHUwMEE5XHUwMEQ3XHUwMEFCXHUwMEFDXHUwMEFEXHUwMEFFXHUwMEFGXHUwMEIwXHUwMEIxXHUwMEIyXHUwMEIzXHUwMEI0XHUwMEI1XHUwMEI2XHUwMEI3XHUwMEI4XHUwMEI5XHUwMEY3XHUwMEJCXHUwMEJDXHUwMEJEXHUwMEJFXHUwMEJGXHUwNUIwXHUwNUIxXHUwNUIyXHUwNUIzXHUwNUI0XHUwNUI1XHUwNUI2XHUwNUI3XHUwNUI4XHUwNUI5XHUwNUJBXHUwNUJCXHUwNUJDXHUwNUJEXHUwNUJFXHUwNUJGXHUwNUMwXHUwNUMxXHUwNUMyXHUwNUMzXHUwNUYwXHUwNUYxXHUwNUYyXHUwNUYzXHUwNUY0XHVGRkZEXHVGRkZEXHVGRkZEXHVGRkZEXHVGRkZEXHVGRkZEXHVGRkZEXHUwNUQwXHUwNUQxXHUwNUQyXHUwNUQzXHUwNUQ0XHUwNUQ1XHUwNUQ2XHUwNUQ3XHUwNUQ4XHUwNUQ5XHUwNURBXHUwNURCXHUwNURDXHUwNUREXHUwNURFXHUwNURGXHUwNUUwXHUwNUUxXHUwNUUyXHUwNUUzXHUwNUU0XHUwNUU1XHUwNUU2XHUwNUU3XHUwNUU4XHUwNUU5XHUwNUVBXHVGRkZEXHVGRkZEXHUyMDBFXHUyMDBGXHVGRkZEXCJcbiAgfSxcbiAgXCJ3aW4xMjU1XCI6IFwid2luZG93czEyNTVcIixcbiAgXCJjcDEyNTVcIjogXCJ3aW5kb3dzMTI1NVwiLFxuICBcIndpbmRvd3MxMjU2XCI6IHtcbiAgICBcInR5cGVcIjogXCJfc2Jjc1wiLFxuICAgIFwiY2hhcnNcIjogXCJcdTIwQUNcdTA2N0VcdTIwMUFcdTAxOTJcdTIwMUVcdTIwMjZcdTIwMjBcdTIwMjFcdTAyQzZcdTIwMzBcdTA2NzlcdTIwMzlcdTAxNTJcdTA2ODZcdTA2OThcdTA2ODhcdTA2QUZcdTIwMThcdTIwMTlcdTIwMUNcdTIwMURcdTIwMjJcdTIwMTNcdTIwMTRcdTA2QTlcdTIxMjJcdTA2OTFcdTIwM0FcdTAxNTNcdTIwMENcdTIwMERcdTA2QkFcdTAwQTBcdTA2MENcdTAwQTJcdTAwQTNcdTAwQTRcdTAwQTVcdTAwQTZcdTAwQTdcdTAwQThcdTAwQTlcdTA2QkVcdTAwQUJcdTAwQUNcdTAwQURcdTAwQUVcdTAwQUZcdTAwQjBcdTAwQjFcdTAwQjJcdTAwQjNcdTAwQjRcdTAwQjVcdTAwQjZcdTAwQjdcdTAwQjhcdTAwQjlcdTA2MUJcdTAwQkJcdTAwQkNcdTAwQkRcdTAwQkVcdTA2MUZcdTA2QzFcdTA2MjFcdTA2MjJcdTA2MjNcdTA2MjRcdTA2MjVcdTA2MjZcdTA2MjdcdTA2MjhcdTA2MjlcdTA2MkFcdTA2MkJcdTA2MkNcdTA2MkRcdTA2MkVcdTA2MkZcdTA2MzBcdTA2MzFcdTA2MzJcdTA2MzNcdTA2MzRcdTA2MzVcdTA2MzZcdTAwRDdcdTA2MzdcdTA2MzhcdTA2MzlcdTA2M0FcdTA2NDBcdTA2NDFcdTA2NDJcdTA2NDNcdTAwRTBcdTA2NDRcdTAwRTJcdTA2NDVcdTA2NDZcdTA2NDdcdTA2NDhcdTAwRTdcdTAwRThcdTAwRTlcdTAwRUFcdTAwRUJcdTA2NDlcdTA2NEFcdTAwRUVcdTAwRUZcdTA2NEJcdTA2NENcdTA2NERcdTA2NEVcdTAwRjRcdTA2NEZcdTA2NTBcdTAwRjdcdTA2NTFcdTAwRjlcdTA2NTJcdTAwRkJcdTAwRkNcdTIwMEVcdTIwMEZcdTA2RDJcIlxuICB9LFxuICBcIndpbjEyNTZcIjogXCJ3aW5kb3dzMTI1NlwiLFxuICBcImNwMTI1NlwiOiBcIndpbmRvd3MxMjU2XCIsXG4gIFwid2luZG93czEyNTdcIjoge1xuICAgIFwidHlwZVwiOiBcIl9zYmNzXCIsXG4gICAgXCJjaGFyc1wiOiBcIlx1MjBBQ1x1RkZGRFx1MjAxQVx1RkZGRFx1MjAxRVx1MjAyNlx1MjAyMFx1MjAyMVx1RkZGRFx1MjAzMFx1RkZGRFx1MjAzOVx1RkZGRFx1MDBBOFx1MDJDN1x1MDBCOFx1RkZGRFx1MjAxOFx1MjAxOVx1MjAxQ1x1MjAxRFx1MjAyMlx1MjAxM1x1MjAxNFx1RkZGRFx1MjEyMlx1RkZGRFx1MjAzQVx1RkZGRFx1MDBBRlx1MDJEQlx1RkZGRFx1MDBBMFx1RkZGRFx1MDBBMlx1MDBBM1x1MDBBNFx1RkZGRFx1MDBBNlx1MDBBN1x1MDBEOFx1MDBBOVx1MDE1Nlx1MDBBQlx1MDBBQ1x1MDBBRFx1MDBBRVx1MDBDNlx1MDBCMFx1MDBCMVx1MDBCMlx1MDBCM1x1MDBCNFx1MDBCNVx1MDBCNlx1MDBCN1x1MDBGOFx1MDBCOVx1MDE1N1x1MDBCQlx1MDBCQ1x1MDBCRFx1MDBCRVx1MDBFNlx1MDEwNFx1MDEyRVx1MDEwMFx1MDEwNlx1MDBDNFx1MDBDNVx1MDExOFx1MDExMlx1MDEwQ1x1MDBDOVx1MDE3OVx1MDExNlx1MDEyMlx1MDEzNlx1MDEyQVx1MDEzQlx1MDE2MFx1MDE0M1x1MDE0NVx1MDBEM1x1MDE0Q1x1MDBENVx1MDBENlx1MDBEN1x1MDE3Mlx1MDE0MVx1MDE1QVx1MDE2QVx1MDBEQ1x1MDE3Qlx1MDE3RFx1MDBERlx1MDEwNVx1MDEyRlx1MDEwMVx1MDEwN1x1MDBFNFx1MDBFNVx1MDExOVx1MDExM1x1MDEwRFx1MDBFOVx1MDE3QVx1MDExN1x1MDEyM1x1MDEzN1x1MDEyQlx1MDEzQ1x1MDE2MVx1MDE0NFx1MDE0Nlx1MDBGM1x1MDE0RFx1MDBGNVx1MDBGNlx1MDBGN1x1MDE3M1x1MDE0Mlx1MDE1Qlx1MDE2Qlx1MDBGQ1x1MDE3Q1x1MDE3RVx1MDJEOVwiXG4gIH0sXG4gIFwid2luMTI1N1wiOiBcIndpbmRvd3MxMjU3XCIsXG4gIFwiY3AxMjU3XCI6IFwid2luZG93czEyNTdcIixcbiAgXCJ3aW5kb3dzMTI1OFwiOiB7XG4gICAgXCJ0eXBlXCI6IFwiX3NiY3NcIixcbiAgICBcImNoYXJzXCI6IFwiXHUyMEFDXHVGRkZEXHUyMDFBXHUwMTkyXHUyMDFFXHUyMDI2XHUyMDIwXHUyMDIxXHUwMkM2XHUyMDMwXHVGRkZEXHUyMDM5XHUwMTUyXHVGRkZEXHVGRkZEXHVGRkZEXHVGRkZEXHUyMDE4XHUyMDE5XHUyMDFDXHUyMDFEXHUyMDIyXHUyMDEzXHUyMDE0XHUwMkRDXHUyMTIyXHVGRkZEXHUyMDNBXHUwMTUzXHVGRkZEXHVGRkZEXHUwMTc4XHUwMEEwXHUwMEExXHUwMEEyXHUwMEEzXHUwMEE0XHUwMEE1XHUwMEE2XHUwMEE3XHUwMEE4XHUwMEE5XHUwMEFBXHUwMEFCXHUwMEFDXHUwMEFEXHUwMEFFXHUwMEFGXHUwMEIwXHUwMEIxXHUwMEIyXHUwMEIzXHUwMEI0XHUwMEI1XHUwMEI2XHUwMEI3XHUwMEI4XHUwMEI5XHUwMEJBXHUwMEJCXHUwMEJDXHUwMEJEXHUwMEJFXHUwMEJGXHUwMEMwXHUwMEMxXHUwMEMyXHUwMTAyXHUwMEM0XHUwMEM1XHUwMEM2XHUwMEM3XHUwMEM4XHUwMEM5XHUwMENBXHUwMENCXHUwMzAwXHUwMENEXHUwMENFXHUwMENGXHUwMTEwXHUwMEQxXHUwMzA5XHUwMEQzXHUwMEQ0XHUwMUEwXHUwMEQ2XHUwMEQ3XHUwMEQ4XHUwMEQ5XHUwMERBXHUwMERCXHUwMERDXHUwMUFGXHUwMzAzXHUwMERGXHUwMEUwXHUwMEUxXHUwMEUyXHUwMTAzXHUwMEU0XHUwMEU1XHUwMEU2XHUwMEU3XHUwMEU4XHUwMEU5XHUwMEVBXHUwMEVCXHUwMzAxXHUwMEVEXHUwMEVFXHUwMEVGXHUwMTExXHUwMEYxXHUwMzIzXHUwMEYzXHUwMEY0XHUwMUExXHUwMEY2XHUwMEY3XHUwMEY4XHUwMEY5XHUwMEZBXHUwMEZCXHUwMEZDXHUwMUIwXHUyMEFCXHUwMEZGXCJcbiAgfSxcbiAgXCJ3aW4xMjU4XCI6IFwid2luZG93czEyNThcIixcbiAgXCJjcDEyNThcIjogXCJ3aW5kb3dzMTI1OFwiLFxuICBcImlzbzg4NTkxXCI6IHtcbiAgICBcInR5cGVcIjogXCJfc2Jjc1wiLFxuICAgIFwiY2hhcnNcIjogXCJcdTAwODBcdTAwODFcdTAwODJcdTAwODNcdTAwODRcdTAwODVcdTAwODZcdTAwODdcdTAwODhcdTAwODlcdTAwOEFcdTAwOEJcdTAwOENcdTAwOERcdTAwOEVcdTAwOEZcdTAwOTBcdTAwOTFcdTAwOTJcdTAwOTNcdTAwOTRcdTAwOTVcdTAwOTZcdTAwOTdcdTAwOThcdTAwOTlcdTAwOUFcdTAwOUJcdTAwOUNcdTAwOURcdTAwOUVcdTAwOUZcdTAwQTBcdTAwQTFcdTAwQTJcdTAwQTNcdTAwQTRcdTAwQTVcdTAwQTZcdTAwQTdcdTAwQThcdTAwQTlcdTAwQUFcdTAwQUJcdTAwQUNcdTAwQURcdTAwQUVcdTAwQUZcdTAwQjBcdTAwQjFcdTAwQjJcdTAwQjNcdTAwQjRcdTAwQjVcdTAwQjZcdTAwQjdcdTAwQjhcdTAwQjlcdTAwQkFcdTAwQkJcdTAwQkNcdTAwQkRcdTAwQkVcdTAwQkZcdTAwQzBcdTAwQzFcdTAwQzJcdTAwQzNcdTAwQzRcdTAwQzVcdTAwQzZcdTAwQzdcdTAwQzhcdTAwQzlcdTAwQ0FcdTAwQ0JcdTAwQ0NcdTAwQ0RcdTAwQ0VcdTAwQ0ZcdTAwRDBcdTAwRDFcdTAwRDJcdTAwRDNcdTAwRDRcdTAwRDVcdTAwRDZcdTAwRDdcdTAwRDhcdTAwRDlcdTAwREFcdTAwREJcdTAwRENcdTAwRERcdTAwREVcdTAwREZcdTAwRTBcdTAwRTFcdTAwRTJcdTAwRTNcdTAwRTRcdTAwRTVcdTAwRTZcdTAwRTdcdTAwRThcdTAwRTlcdTAwRUFcdTAwRUJcdTAwRUNcdTAwRURcdTAwRUVcdTAwRUZcdTAwRjBcdTAwRjFcdTAwRjJcdTAwRjNcdTAwRjRcdTAwRjVcdTAwRjZcdTAwRjdcdTAwRjhcdTAwRjlcdTAwRkFcdTAwRkJcdTAwRkNcdTAwRkRcdTAwRkVcdTAwRkZcIlxuICB9LFxuICBcImNwMjg1OTFcIjogXCJpc284ODU5MVwiLFxuICBcImlzbzg4NTkyXCI6IHtcbiAgICBcInR5cGVcIjogXCJfc2Jjc1wiLFxuICAgIFwiY2hhcnNcIjogXCJcdTAwODBcdTAwODFcdTAwODJcdTAwODNcdTAwODRcdTAwODVcdTAwODZcdTAwODdcdTAwODhcdTAwODlcdTAwOEFcdTAwOEJcdTAwOENcdTAwOERcdTAwOEVcdTAwOEZcdTAwOTBcdTAwOTFcdTAwOTJcdTAwOTNcdTAwOTRcdTAwOTVcdTAwOTZcdTAwOTdcdTAwOThcdTAwOTlcdTAwOUFcdTAwOUJcdTAwOUNcdTAwOURcdTAwOUVcdTAwOUZcdTAwQTBcdTAxMDRcdTAyRDhcdTAxNDFcdTAwQTRcdTAxM0RcdTAxNUFcdTAwQTdcdTAwQThcdTAxNjBcdTAxNUVcdTAxNjRcdTAxNzlcdTAwQURcdTAxN0RcdTAxN0JcdTAwQjBcdTAxMDVcdTAyREJcdTAxNDJcdTAwQjRcdTAxM0VcdTAxNUJcdTAyQzdcdTAwQjhcdTAxNjFcdTAxNUZcdTAxNjVcdTAxN0FcdTAyRERcdTAxN0VcdTAxN0NcdTAxNTRcdTAwQzFcdTAwQzJcdTAxMDJcdTAwQzRcdTAxMzlcdTAxMDZcdTAwQzdcdTAxMENcdTAwQzlcdTAxMThcdTAwQ0JcdTAxMUFcdTAwQ0RcdTAwQ0VcdTAxMEVcdTAxMTBcdTAxNDNcdTAxNDdcdTAwRDNcdTAwRDRcdTAxNTBcdTAwRDZcdTAwRDdcdTAxNThcdTAxNkVcdTAwREFcdTAxNzBcdTAwRENcdTAwRERcdTAxNjJcdTAwREZcdTAxNTVcdTAwRTFcdTAwRTJcdTAxMDNcdTAwRTRcdTAxM0FcdTAxMDdcdTAwRTdcdTAxMERcdTAwRTlcdTAxMTlcdTAwRUJcdTAxMUJcdTAwRURcdTAwRUVcdTAxMEZcdTAxMTFcdTAxNDRcdTAxNDhcdTAwRjNcdTAwRjRcdTAxNTFcdTAwRjZcdTAwRjdcdTAxNTlcdTAxNkZcdTAwRkFcdTAxNzFcdTAwRkNcdTAwRkRcdTAxNjNcdTAyRDlcIlxuICB9LFxuICBcImNwMjg1OTJcIjogXCJpc284ODU5MlwiLFxuICBcImlzbzg4NTkzXCI6IHtcbiAgICBcInR5cGVcIjogXCJfc2Jjc1wiLFxuICAgIFwiY2hhcnNcIjogXCJcdTAwODBcdTAwODFcdTAwODJcdTAwODNcdTAwODRcdTAwODVcdTAwODZcdTAwODdcdTAwODhcdTAwODlcdTAwOEFcdTAwOEJcdTAwOENcdTAwOERcdTAwOEVcdTAwOEZcdTAwOTBcdTAwOTFcdTAwOTJcdTAwOTNcdTAwOTRcdTAwOTVcdTAwOTZcdTAwOTdcdTAwOThcdTAwOTlcdTAwOUFcdTAwOUJcdTAwOUNcdTAwOURcdTAwOUVcdTAwOUZcdTAwQTBcdTAxMjZcdTAyRDhcdTAwQTNcdTAwQTRcdUZGRkRcdTAxMjRcdTAwQTdcdTAwQThcdTAxMzBcdTAxNUVcdTAxMUVcdTAxMzRcdTAwQURcdUZGRkRcdTAxN0JcdTAwQjBcdTAxMjdcdTAwQjJcdTAwQjNcdTAwQjRcdTAwQjVcdTAxMjVcdTAwQjdcdTAwQjhcdTAxMzFcdTAxNUZcdTAxMUZcdTAxMzVcdTAwQkRcdUZGRkRcdTAxN0NcdTAwQzBcdTAwQzFcdTAwQzJcdUZGRkRcdTAwQzRcdTAxMEFcdTAxMDhcdTAwQzdcdTAwQzhcdTAwQzlcdTAwQ0FcdTAwQ0JcdTAwQ0NcdTAwQ0RcdTAwQ0VcdTAwQ0ZcdUZGRkRcdTAwRDFcdTAwRDJcdTAwRDNcdTAwRDRcdTAxMjBcdTAwRDZcdTAwRDdcdTAxMUNcdTAwRDlcdTAwREFcdTAwREJcdTAwRENcdTAxNkNcdTAxNUNcdTAwREZcdTAwRTBcdTAwRTFcdTAwRTJcdUZGRkRcdTAwRTRcdTAxMEJcdTAxMDlcdTAwRTdcdTAwRThcdTAwRTlcdTAwRUFcdTAwRUJcdTAwRUNcdTAwRURcdTAwRUVcdTAwRUZcdUZGRkRcdTAwRjFcdTAwRjJcdTAwRjNcdTAwRjRcdTAxMjFcdTAwRjZcdTAwRjdcdTAxMURcdTAwRjlcdTAwRkFcdTAwRkJcdTAwRkNcdTAxNkRcdTAxNURcdTAyRDlcIlxuICB9LFxuICBcImNwMjg1OTNcIjogXCJpc284ODU5M1wiLFxuICBcImlzbzg4NTk0XCI6IHtcbiAgICBcInR5cGVcIjogXCJfc2Jjc1wiLFxuICAgIFwiY2hhcnNcIjogXCJcdTAwODBcdTAwODFcdTAwODJcdTAwODNcdTAwODRcdTAwODVcdTAwODZcdTAwODdcdTAwODhcdTAwODlcdTAwOEFcdTAwOEJcdTAwOENcdTAwOERcdTAwOEVcdTAwOEZcdTAwOTBcdTAwOTFcdTAwOTJcdTAwOTNcdTAwOTRcdTAwOTVcdTAwOTZcdTAwOTdcdTAwOThcdTAwOTlcdTAwOUFcdTAwOUJcdTAwOUNcdTAwOURcdTAwOUVcdTAwOUZcdTAwQTBcdTAxMDRcdTAxMzhcdTAxNTZcdTAwQTRcdTAxMjhcdTAxM0JcdTAwQTdcdTAwQThcdTAxNjBcdTAxMTJcdTAxMjJcdTAxNjZcdTAwQURcdTAxN0RcdTAwQUZcdTAwQjBcdTAxMDVcdTAyREJcdTAxNTdcdTAwQjRcdTAxMjlcdTAxM0NcdTAyQzdcdTAwQjhcdTAxNjFcdTAxMTNcdTAxMjNcdTAxNjdcdTAxNEFcdTAxN0VcdTAxNEJcdTAxMDBcdTAwQzFcdTAwQzJcdTAwQzNcdTAwQzRcdTAwQzVcdTAwQzZcdTAxMkVcdTAxMENcdTAwQzlcdTAxMThcdTAwQ0JcdTAxMTZcdTAwQ0RcdTAwQ0VcdTAxMkFcdTAxMTBcdTAxNDVcdTAxNENcdTAxMzZcdTAwRDRcdTAwRDVcdTAwRDZcdTAwRDdcdTAwRDhcdTAxNzJcdTAwREFcdTAwREJcdTAwRENcdTAxNjhcdTAxNkFcdTAwREZcdTAxMDFcdTAwRTFcdTAwRTJcdTAwRTNcdTAwRTRcdTAwRTVcdTAwRTZcdTAxMkZcdTAxMERcdTAwRTlcdTAxMTlcdTAwRUJcdTAxMTdcdTAwRURcdTAwRUVcdTAxMkJcdTAxMTFcdTAxNDZcdTAxNERcdTAxMzdcdTAwRjRcdTAwRjVcdTAwRjZcdTAwRjdcdTAwRjhcdTAxNzNcdTAwRkFcdTAwRkJcdTAwRkNcdTAxNjlcdTAxNkJcdTAyRDlcIlxuICB9LFxuICBcImNwMjg1OTRcIjogXCJpc284ODU5NFwiLFxuICBcImlzbzg4NTk1XCI6IHtcbiAgICBcInR5cGVcIjogXCJfc2Jjc1wiLFxuICAgIFwiY2hhcnNcIjogXCJcdTAwODBcdTAwODFcdTAwODJcdTAwODNcdTAwODRcdTAwODVcdTAwODZcdTAwODdcdTAwODhcdTAwODlcdTAwOEFcdTAwOEJcdTAwOENcdTAwOERcdTAwOEVcdTAwOEZcdTAwOTBcdTAwOTFcdTAwOTJcdTAwOTNcdTAwOTRcdTAwOTVcdTAwOTZcdTAwOTdcdTAwOThcdTAwOTlcdTAwOUFcdTAwOUJcdTAwOUNcdTAwOURcdTAwOUVcdTAwOUZcdTAwQTBcdTA0MDFcdTA0MDJcdTA0MDNcdTA0MDRcdTA0MDVcdTA0MDZcdTA0MDdcdTA0MDhcdTA0MDlcdTA0MEFcdTA0MEJcdTA0MENcdTAwQURcdTA0MEVcdTA0MEZcdTA0MTBcdTA0MTFcdTA0MTJcdTA0MTNcdTA0MTRcdTA0MTVcdTA0MTZcdTA0MTdcdTA0MThcdTA0MTlcdTA0MUFcdTA0MUJcdTA0MUNcdTA0MURcdTA0MUVcdTA0MUZcdTA0MjBcdTA0MjFcdTA0MjJcdTA0MjNcdTA0MjRcdTA0MjVcdTA0MjZcdTA0MjdcdTA0MjhcdTA0MjlcdTA0MkFcdTA0MkJcdTA0MkNcdTA0MkRcdTA0MkVcdTA0MkZcdTA0MzBcdTA0MzFcdTA0MzJcdTA0MzNcdTA0MzRcdTA0MzVcdTA0MzZcdTA0MzdcdTA0MzhcdTA0MzlcdTA0M0FcdTA0M0JcdTA0M0NcdTA0M0RcdTA0M0VcdTA0M0ZcdTA0NDBcdTA0NDFcdTA0NDJcdTA0NDNcdTA0NDRcdTA0NDVcdTA0NDZcdTA0NDdcdTA0NDhcdTA0NDlcdTA0NEFcdTA0NEJcdTA0NENcdTA0NERcdTA0NEVcdTA0NEZcdTIxMTZcdTA0NTFcdTA0NTJcdTA0NTNcdTA0NTRcdTA0NTVcdTA0NTZcdTA0NTdcdTA0NThcdTA0NTlcdTA0NUFcdTA0NUJcdTA0NUNcdTAwQTdcdTA0NUVcdTA0NUZcIlxuICB9LFxuICBcImNwMjg1OTVcIjogXCJpc284ODU5NVwiLFxuICBcImlzbzg4NTk2XCI6IHtcbiAgICBcInR5cGVcIjogXCJfc2Jjc1wiLFxuICAgIFwiY2hhcnNcIjogXCJcdTAwODBcdTAwODFcdTAwODJcdTAwODNcdTAwODRcdTAwODVcdTAwODZcdTAwODdcdTAwODhcdTAwODlcdTAwOEFcdTAwOEJcdTAwOENcdTAwOERcdTAwOEVcdTAwOEZcdTAwOTBcdTAwOTFcdTAwOTJcdTAwOTNcdTAwOTRcdTAwOTVcdTAwOTZcdTAwOTdcdTAwOThcdTAwOTlcdTAwOUFcdTAwOUJcdTAwOUNcdTAwOURcdTAwOUVcdTAwOUZcdTAwQTBcdUZGRkRcdUZGRkRcdUZGRkRcdTAwQTRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdTA2MENcdTAwQURcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdTA2MUJcdUZGRkRcdUZGRkRcdUZGRkRcdTA2MUZcdUZGRkRcdTA2MjFcdTA2MjJcdTA2MjNcdTA2MjRcdTA2MjVcdTA2MjZcdTA2MjdcdTA2MjhcdTA2MjlcdTA2MkFcdTA2MkJcdTA2MkNcdTA2MkRcdTA2MkVcdTA2MkZcdTA2MzBcdTA2MzFcdTA2MzJcdTA2MzNcdTA2MzRcdTA2MzVcdTA2MzZcdTA2MzdcdTA2MzhcdTA2MzlcdTA2M0FcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdTA2NDBcdTA2NDFcdTA2NDJcdTA2NDNcdTA2NDRcdTA2NDVcdTA2NDZcdTA2NDdcdTA2NDhcdTA2NDlcdTA2NEFcdTA2NEJcdTA2NENcdTA2NERcdTA2NEVcdTA2NEZcdTA2NTBcdTA2NTFcdTA2NTJcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcIlxuICB9LFxuICBcImNwMjg1OTZcIjogXCJpc284ODU5NlwiLFxuICBcImlzbzg4NTk3XCI6IHtcbiAgICBcInR5cGVcIjogXCJfc2Jjc1wiLFxuICAgIFwiY2hhcnNcIjogXCJcdTAwODBcdTAwODFcdTAwODJcdTAwODNcdTAwODRcdTAwODVcdTAwODZcdTAwODdcdTAwODhcdTAwODlcdTAwOEFcdTAwOEJcdTAwOENcdTAwOERcdTAwOEVcdTAwOEZcdTAwOTBcdTAwOTFcdTAwOTJcdTAwOTNcdTAwOTRcdTAwOTVcdTAwOTZcdTAwOTdcdTAwOThcdTAwOTlcdTAwOUFcdTAwOUJcdTAwOUNcdTAwOURcdTAwOUVcdTAwOUZcdTAwQTBcdTIwMThcdTIwMTlcdTAwQTNcdTIwQUNcdTIwQUZcdTAwQTZcdTAwQTdcdTAwQThcdTAwQTlcdTAzN0FcdTAwQUJcdTAwQUNcdTAwQURcdUZGRkRcdTIwMTVcdTAwQjBcdTAwQjFcdTAwQjJcdTAwQjNcdTAzODRcdTAzODVcdTAzODZcdTAwQjdcdTAzODhcdTAzODlcdTAzOEFcdTAwQkJcdTAzOENcdTAwQkRcdTAzOEVcdTAzOEZcdTAzOTBcdTAzOTFcdTAzOTJcdTAzOTNcdTAzOTRcdTAzOTVcdTAzOTZcdTAzOTdcdTAzOThcdTAzOTlcdTAzOUFcdTAzOUJcdTAzOUNcdTAzOURcdTAzOUVcdTAzOUZcdTAzQTBcdTAzQTFcdUZGRkRcdTAzQTNcdTAzQTRcdTAzQTVcdTAzQTZcdTAzQTdcdTAzQThcdTAzQTlcdTAzQUFcdTAzQUJcdTAzQUNcdTAzQURcdTAzQUVcdTAzQUZcdTAzQjBcdTAzQjFcdTAzQjJcdTAzQjNcdTAzQjRcdTAzQjVcdTAzQjZcdTAzQjdcdTAzQjhcdTAzQjlcdTAzQkFcdTAzQkJcdTAzQkNcdTAzQkRcdTAzQkVcdTAzQkZcdTAzQzBcdTAzQzFcdTAzQzJcdTAzQzNcdTAzQzRcdTAzQzVcdTAzQzZcdTAzQzdcdTAzQzhcdTAzQzlcdTAzQ0FcdTAzQ0JcdTAzQ0NcdTAzQ0RcdTAzQ0VcdUZGRkRcIlxuICB9LFxuICBcImNwMjg1OTdcIjogXCJpc284ODU5N1wiLFxuICBcImlzbzg4NTk4XCI6IHtcbiAgICBcInR5cGVcIjogXCJfc2Jjc1wiLFxuICAgIFwiY2hhcnNcIjogXCJcdTAwODBcdTAwODFcdTAwODJcdTAwODNcdTAwODRcdTAwODVcdTAwODZcdTAwODdcdTAwODhcdTAwODlcdTAwOEFcdTAwOEJcdTAwOENcdTAwOERcdTAwOEVcdTAwOEZcdTAwOTBcdTAwOTFcdTAwOTJcdTAwOTNcdTAwOTRcdTAwOTVcdTAwOTZcdTAwOTdcdTAwOThcdTAwOTlcdTAwOUFcdTAwOUJcdTAwOUNcdTAwOURcdTAwOUVcdTAwOUZcdTAwQTBcdUZGRkRcdTAwQTJcdTAwQTNcdTAwQTRcdTAwQTVcdTAwQTZcdTAwQTdcdTAwQThcdTAwQTlcdTAwRDdcdTAwQUJcdTAwQUNcdTAwQURcdTAwQUVcdTAwQUZcdTAwQjBcdTAwQjFcdTAwQjJcdTAwQjNcdTAwQjRcdTAwQjVcdTAwQjZcdTAwQjdcdTAwQjhcdTAwQjlcdTAwRjdcdTAwQkJcdTAwQkNcdTAwQkRcdTAwQkVcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdTIwMTdcdTA1RDBcdTA1RDFcdTA1RDJcdTA1RDNcdTA1RDRcdTA1RDVcdTA1RDZcdTA1RDdcdTA1RDhcdTA1RDlcdTA1REFcdTA1REJcdTA1RENcdTA1RERcdTA1REVcdTA1REZcdTA1RTBcdTA1RTFcdTA1RTJcdTA1RTNcdTA1RTRcdTA1RTVcdTA1RTZcdTA1RTdcdTA1RThcdTA1RTlcdTA1RUFcdUZGRkRcdUZGRkRcdTIwMEVcdTIwMEZcdUZGRkRcIlxuICB9LFxuICBcImNwMjg1OThcIjogXCJpc284ODU5OFwiLFxuICBcImlzbzg4NTk5XCI6IHtcbiAgICBcInR5cGVcIjogXCJfc2Jjc1wiLFxuICAgIFwiY2hhcnNcIjogXCJcdTAwODBcdTAwODFcdTAwODJcdTAwODNcdTAwODRcdTAwODVcdTAwODZcdTAwODdcdTAwODhcdTAwODlcdTAwOEFcdTAwOEJcdTAwOENcdTAwOERcdTAwOEVcdTAwOEZcdTAwOTBcdTAwOTFcdTAwOTJcdTAwOTNcdTAwOTRcdTAwOTVcdTAwOTZcdTAwOTdcdTAwOThcdTAwOTlcdTAwOUFcdTAwOUJcdTAwOUNcdTAwOURcdTAwOUVcdTAwOUZcdTAwQTBcdTAwQTFcdTAwQTJcdTAwQTNcdTAwQTRcdTAwQTVcdTAwQTZcdTAwQTdcdTAwQThcdTAwQTlcdTAwQUFcdTAwQUJcdTAwQUNcdTAwQURcdTAwQUVcdTAwQUZcdTAwQjBcdTAwQjFcdTAwQjJcdTAwQjNcdTAwQjRcdTAwQjVcdTAwQjZcdTAwQjdcdTAwQjhcdTAwQjlcdTAwQkFcdTAwQkJcdTAwQkNcdTAwQkRcdTAwQkVcdTAwQkZcdTAwQzBcdTAwQzFcdTAwQzJcdTAwQzNcdTAwQzRcdTAwQzVcdTAwQzZcdTAwQzdcdTAwQzhcdTAwQzlcdTAwQ0FcdTAwQ0JcdTAwQ0NcdTAwQ0RcdTAwQ0VcdTAwQ0ZcdTAxMUVcdTAwRDFcdTAwRDJcdTAwRDNcdTAwRDRcdTAwRDVcdTAwRDZcdTAwRDdcdTAwRDhcdTAwRDlcdTAwREFcdTAwREJcdTAwRENcdTAxMzBcdTAxNUVcdTAwREZcdTAwRTBcdTAwRTFcdTAwRTJcdTAwRTNcdTAwRTRcdTAwRTVcdTAwRTZcdTAwRTdcdTAwRThcdTAwRTlcdTAwRUFcdTAwRUJcdTAwRUNcdTAwRURcdTAwRUVcdTAwRUZcdTAxMUZcdTAwRjFcdTAwRjJcdTAwRjNcdTAwRjRcdTAwRjVcdTAwRjZcdTAwRjdcdTAwRjhcdTAwRjlcdTAwRkFcdTAwRkJcdTAwRkNcdTAxMzFcdTAxNUZcdTAwRkZcIlxuICB9LFxuICBcImNwMjg1OTlcIjogXCJpc284ODU5OVwiLFxuICBcImlzbzg4NTkxMFwiOiB7XG4gICAgXCJ0eXBlXCI6IFwiX3NiY3NcIixcbiAgICBcImNoYXJzXCI6IFwiXHUwMDgwXHUwMDgxXHUwMDgyXHUwMDgzXHUwMDg0XHUwMDg1XHUwMDg2XHUwMDg3XHUwMDg4XHUwMDg5XHUwMDhBXHUwMDhCXHUwMDhDXHUwMDhEXHUwMDhFXHUwMDhGXHUwMDkwXHUwMDkxXHUwMDkyXHUwMDkzXHUwMDk0XHUwMDk1XHUwMDk2XHUwMDk3XHUwMDk4XHUwMDk5XHUwMDlBXHUwMDlCXHUwMDlDXHUwMDlEXHUwMDlFXHUwMDlGXHUwMEEwXHUwMTA0XHUwMTEyXHUwMTIyXHUwMTJBXHUwMTI4XHUwMTM2XHUwMEE3XHUwMTNCXHUwMTEwXHUwMTYwXHUwMTY2XHUwMTdEXHUwMEFEXHUwMTZBXHUwMTRBXHUwMEIwXHUwMTA1XHUwMTEzXHUwMTIzXHUwMTJCXHUwMTI5XHUwMTM3XHUwMEI3XHUwMTNDXHUwMTExXHUwMTYxXHUwMTY3XHUwMTdFXHUyMDE1XHUwMTZCXHUwMTRCXHUwMTAwXHUwMEMxXHUwMEMyXHUwMEMzXHUwMEM0XHUwMEM1XHUwMEM2XHUwMTJFXHUwMTBDXHUwMEM5XHUwMTE4XHUwMENCXHUwMTE2XHUwMENEXHUwMENFXHUwMENGXHUwMEQwXHUwMTQ1XHUwMTRDXHUwMEQzXHUwMEQ0XHUwMEQ1XHUwMEQ2XHUwMTY4XHUwMEQ4XHUwMTcyXHUwMERBXHUwMERCXHUwMERDXHUwMEREXHUwMERFXHUwMERGXHUwMTAxXHUwMEUxXHUwMEUyXHUwMEUzXHUwMEU0XHUwMEU1XHUwMEU2XHUwMTJGXHUwMTBEXHUwMEU5XHUwMTE5XHUwMEVCXHUwMTE3XHUwMEVEXHUwMEVFXHUwMEVGXHUwMEYwXHUwMTQ2XHUwMTREXHUwMEYzXHUwMEY0XHUwMEY1XHUwMEY2XHUwMTY5XHUwMEY4XHUwMTczXHUwMEZBXHUwMEZCXHUwMEZDXHUwMEZEXHUwMEZFXHUwMTM4XCJcbiAgfSxcbiAgXCJjcDI4NjAwXCI6IFwiaXNvODg1OTEwXCIsXG4gIFwiaXNvODg1OTExXCI6IHtcbiAgICBcInR5cGVcIjogXCJfc2Jjc1wiLFxuICAgIFwiY2hhcnNcIjogXCJcdTAwODBcdTAwODFcdTAwODJcdTAwODNcdTAwODRcdTAwODVcdTAwODZcdTAwODdcdTAwODhcdTAwODlcdTAwOEFcdTAwOEJcdTAwOENcdTAwOERcdTAwOEVcdTAwOEZcdTAwOTBcdTAwOTFcdTAwOTJcdTAwOTNcdTAwOTRcdTAwOTVcdTAwOTZcdTAwOTdcdTAwOThcdTAwOTlcdTAwOUFcdTAwOUJcdTAwOUNcdTAwOURcdTAwOUVcdTAwOUZcdTAwQTBcdTBFMDFcdTBFMDJcdTBFMDNcdTBFMDRcdTBFMDVcdTBFMDZcdTBFMDdcdTBFMDhcdTBFMDlcdTBFMEFcdTBFMEJcdTBFMENcdTBFMERcdTBFMEVcdTBFMEZcdTBFMTBcdTBFMTFcdTBFMTJcdTBFMTNcdTBFMTRcdTBFMTVcdTBFMTZcdTBFMTdcdTBFMThcdTBFMTlcdTBFMUFcdTBFMUJcdTBFMUNcdTBFMURcdTBFMUVcdTBFMUZcdTBFMjBcdTBFMjFcdTBFMjJcdTBFMjNcdTBFMjRcdTBFMjVcdTBFMjZcdTBFMjdcdTBFMjhcdTBFMjlcdTBFMkFcdTBFMkJcdTBFMkNcdTBFMkRcdTBFMkVcdTBFMkZcdTBFMzBcdTBFMzFcdTBFMzJcdTBFMzNcdTBFMzRcdTBFMzVcdTBFMzZcdTBFMzdcdTBFMzhcdTBFMzlcdTBFM0FcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdTBFM0ZcdTBFNDBcdTBFNDFcdTBFNDJcdTBFNDNcdTBFNDRcdTBFNDVcdTBFNDZcdTBFNDdcdTBFNDhcdTBFNDlcdTBFNEFcdTBFNEJcdTBFNENcdTBFNERcdTBFNEVcdTBFNEZcdTBFNTBcdTBFNTFcdTBFNTJcdTBFNTNcdTBFNTRcdTBFNTVcdTBFNTZcdTBFNTdcdTBFNThcdTBFNTlcdTBFNUFcdTBFNUJcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcIlxuICB9LFxuICBcImNwMjg2MDFcIjogXCJpc284ODU5MTFcIixcbiAgXCJpc284ODU5MTNcIjoge1xuICAgIFwidHlwZVwiOiBcIl9zYmNzXCIsXG4gICAgXCJjaGFyc1wiOiBcIlx1MDA4MFx1MDA4MVx1MDA4Mlx1MDA4M1x1MDA4NFx1MDA4NVx1MDA4Nlx1MDA4N1x1MDA4OFx1MDA4OVx1MDA4QVx1MDA4Qlx1MDA4Q1x1MDA4RFx1MDA4RVx1MDA4Rlx1MDA5MFx1MDA5MVx1MDA5Mlx1MDA5M1x1MDA5NFx1MDA5NVx1MDA5Nlx1MDA5N1x1MDA5OFx1MDA5OVx1MDA5QVx1MDA5Qlx1MDA5Q1x1MDA5RFx1MDA5RVx1MDA5Rlx1MDBBMFx1MjAxRFx1MDBBMlx1MDBBM1x1MDBBNFx1MjAxRVx1MDBBNlx1MDBBN1x1MDBEOFx1MDBBOVx1MDE1Nlx1MDBBQlx1MDBBQ1x1MDBBRFx1MDBBRVx1MDBDNlx1MDBCMFx1MDBCMVx1MDBCMlx1MDBCM1x1MjAxQ1x1MDBCNVx1MDBCNlx1MDBCN1x1MDBGOFx1MDBCOVx1MDE1N1x1MDBCQlx1MDBCQ1x1MDBCRFx1MDBCRVx1MDBFNlx1MDEwNFx1MDEyRVx1MDEwMFx1MDEwNlx1MDBDNFx1MDBDNVx1MDExOFx1MDExMlx1MDEwQ1x1MDBDOVx1MDE3OVx1MDExNlx1MDEyMlx1MDEzNlx1MDEyQVx1MDEzQlx1MDE2MFx1MDE0M1x1MDE0NVx1MDBEM1x1MDE0Q1x1MDBENVx1MDBENlx1MDBEN1x1MDE3Mlx1MDE0MVx1MDE1QVx1MDE2QVx1MDBEQ1x1MDE3Qlx1MDE3RFx1MDBERlx1MDEwNVx1MDEyRlx1MDEwMVx1MDEwN1x1MDBFNFx1MDBFNVx1MDExOVx1MDExM1x1MDEwRFx1MDBFOVx1MDE3QVx1MDExN1x1MDEyM1x1MDEzN1x1MDEyQlx1MDEzQ1x1MDE2MVx1MDE0NFx1MDE0Nlx1MDBGM1x1MDE0RFx1MDBGNVx1MDBGNlx1MDBGN1x1MDE3M1x1MDE0Mlx1MDE1Qlx1MDE2Qlx1MDBGQ1x1MDE3Q1x1MDE3RVx1MjAxOVwiXG4gIH0sXG4gIFwiY3AyODYwM1wiOiBcImlzbzg4NTkxM1wiLFxuICBcImlzbzg4NTkxNFwiOiB7XG4gICAgXCJ0eXBlXCI6IFwiX3NiY3NcIixcbiAgICBcImNoYXJzXCI6IFwiXHUwMDgwXHUwMDgxXHUwMDgyXHUwMDgzXHUwMDg0XHUwMDg1XHUwMDg2XHUwMDg3XHUwMDg4XHUwMDg5XHUwMDhBXHUwMDhCXHUwMDhDXHUwMDhEXHUwMDhFXHUwMDhGXHUwMDkwXHUwMDkxXHUwMDkyXHUwMDkzXHUwMDk0XHUwMDk1XHUwMDk2XHUwMDk3XHUwMDk4XHUwMDk5XHUwMDlBXHUwMDlCXHUwMDlDXHUwMDlEXHUwMDlFXHUwMDlGXHUwMEEwXHUxRTAyXHUxRTAzXHUwMEEzXHUwMTBBXHUwMTBCXHUxRTBBXHUwMEE3XHUxRTgwXHUwMEE5XHUxRTgyXHUxRTBCXHUxRUYyXHUwMEFEXHUwMEFFXHUwMTc4XHUxRTFFXHUxRTFGXHUwMTIwXHUwMTIxXHUxRTQwXHUxRTQxXHUwMEI2XHUxRTU2XHUxRTgxXHUxRTU3XHUxRTgzXHUxRTYwXHUxRUYzXHUxRTg0XHUxRTg1XHUxRTYxXHUwMEMwXHUwMEMxXHUwMEMyXHUwMEMzXHUwMEM0XHUwMEM1XHUwMEM2XHUwMEM3XHUwMEM4XHUwMEM5XHUwMENBXHUwMENCXHUwMENDXHUwMENEXHUwMENFXHUwMENGXHUwMTc0XHUwMEQxXHUwMEQyXHUwMEQzXHUwMEQ0XHUwMEQ1XHUwMEQ2XHUxRTZBXHUwMEQ4XHUwMEQ5XHUwMERBXHUwMERCXHUwMERDXHUwMEREXHUwMTc2XHUwMERGXHUwMEUwXHUwMEUxXHUwMEUyXHUwMEUzXHUwMEU0XHUwMEU1XHUwMEU2XHUwMEU3XHUwMEU4XHUwMEU5XHUwMEVBXHUwMEVCXHUwMEVDXHUwMEVEXHUwMEVFXHUwMEVGXHUwMTc1XHUwMEYxXHUwMEYyXHUwMEYzXHUwMEY0XHUwMEY1XHUwMEY2XHUxRTZCXHUwMEY4XHUwMEY5XHUwMEZBXHUwMEZCXHUwMEZDXHUwMEZEXHUwMTc3XHUwMEZGXCJcbiAgfSxcbiAgXCJjcDI4NjA0XCI6IFwiaXNvODg1OTE0XCIsXG4gIFwiaXNvODg1OTE1XCI6IHtcbiAgICBcInR5cGVcIjogXCJfc2Jjc1wiLFxuICAgIFwiY2hhcnNcIjogXCJcdTAwODBcdTAwODFcdTAwODJcdTAwODNcdTAwODRcdTAwODVcdTAwODZcdTAwODdcdTAwODhcdTAwODlcdTAwOEFcdTAwOEJcdTAwOENcdTAwOERcdTAwOEVcdTAwOEZcdTAwOTBcdTAwOTFcdTAwOTJcdTAwOTNcdTAwOTRcdTAwOTVcdTAwOTZcdTAwOTdcdTAwOThcdTAwOTlcdTAwOUFcdTAwOUJcdTAwOUNcdTAwOURcdTAwOUVcdTAwOUZcdTAwQTBcdTAwQTFcdTAwQTJcdTAwQTNcdTIwQUNcdTAwQTVcdTAxNjBcdTAwQTdcdTAxNjFcdTAwQTlcdTAwQUFcdTAwQUJcdTAwQUNcdTAwQURcdTAwQUVcdTAwQUZcdTAwQjBcdTAwQjFcdTAwQjJcdTAwQjNcdTAxN0RcdTAwQjVcdTAwQjZcdTAwQjdcdTAxN0VcdTAwQjlcdTAwQkFcdTAwQkJcdTAxNTJcdTAxNTNcdTAxNzhcdTAwQkZcdTAwQzBcdTAwQzFcdTAwQzJcdTAwQzNcdTAwQzRcdTAwQzVcdTAwQzZcdTAwQzdcdTAwQzhcdTAwQzlcdTAwQ0FcdTAwQ0JcdTAwQ0NcdTAwQ0RcdTAwQ0VcdTAwQ0ZcdTAwRDBcdTAwRDFcdTAwRDJcdTAwRDNcdTAwRDRcdTAwRDVcdTAwRDZcdTAwRDdcdTAwRDhcdTAwRDlcdTAwREFcdTAwREJcdTAwRENcdTAwRERcdTAwREVcdTAwREZcdTAwRTBcdTAwRTFcdTAwRTJcdTAwRTNcdTAwRTRcdTAwRTVcdTAwRTZcdTAwRTdcdTAwRThcdTAwRTlcdTAwRUFcdTAwRUJcdTAwRUNcdTAwRURcdTAwRUVcdTAwRUZcdTAwRjBcdTAwRjFcdTAwRjJcdTAwRjNcdTAwRjRcdTAwRjVcdTAwRjZcdTAwRjdcdTAwRjhcdTAwRjlcdTAwRkFcdTAwRkJcdTAwRkNcdTAwRkRcdTAwRkVcdTAwRkZcIlxuICB9LFxuICBcImNwMjg2MDVcIjogXCJpc284ODU5MTVcIixcbiAgXCJpc284ODU5MTZcIjoge1xuICAgIFwidHlwZVwiOiBcIl9zYmNzXCIsXG4gICAgXCJjaGFyc1wiOiBcIlx1MDA4MFx1MDA4MVx1MDA4Mlx1MDA4M1x1MDA4NFx1MDA4NVx1MDA4Nlx1MDA4N1x1MDA4OFx1MDA4OVx1MDA4QVx1MDA4Qlx1MDA4Q1x1MDA4RFx1MDA4RVx1MDA4Rlx1MDA5MFx1MDA5MVx1MDA5Mlx1MDA5M1x1MDA5NFx1MDA5NVx1MDA5Nlx1MDA5N1x1MDA5OFx1MDA5OVx1MDA5QVx1MDA5Qlx1MDA5Q1x1MDA5RFx1MDA5RVx1MDA5Rlx1MDBBMFx1MDEwNFx1MDEwNVx1MDE0MVx1MjBBQ1x1MjAxRVx1MDE2MFx1MDBBN1x1MDE2MVx1MDBBOVx1MDIxOFx1MDBBQlx1MDE3OVx1MDBBRFx1MDE3QVx1MDE3Qlx1MDBCMFx1MDBCMVx1MDEwQ1x1MDE0Mlx1MDE3RFx1MjAxRFx1MDBCNlx1MDBCN1x1MDE3RVx1MDEwRFx1MDIxOVx1MDBCQlx1MDE1Mlx1MDE1M1x1MDE3OFx1MDE3Q1x1MDBDMFx1MDBDMVx1MDBDMlx1MDEwMlx1MDBDNFx1MDEwNlx1MDBDNlx1MDBDN1x1MDBDOFx1MDBDOVx1MDBDQVx1MDBDQlx1MDBDQ1x1MDBDRFx1MDBDRVx1MDBDRlx1MDExMFx1MDE0M1x1MDBEMlx1MDBEM1x1MDBENFx1MDE1MFx1MDBENlx1MDE1QVx1MDE3MFx1MDBEOVx1MDBEQVx1MDBEQlx1MDBEQ1x1MDExOFx1MDIxQVx1MDBERlx1MDBFMFx1MDBFMVx1MDBFMlx1MDEwM1x1MDBFNFx1MDEwN1x1MDBFNlx1MDBFN1x1MDBFOFx1MDBFOVx1MDBFQVx1MDBFQlx1MDBFQ1x1MDBFRFx1MDBFRVx1MDBFRlx1MDExMVx1MDE0NFx1MDBGMlx1MDBGM1x1MDBGNFx1MDE1MVx1MDBGNlx1MDE1Qlx1MDE3MVx1MDBGOVx1MDBGQVx1MDBGQlx1MDBGQ1x1MDExOVx1MDIxQlx1MDBGRlwiXG4gIH0sXG4gIFwiY3AyODYwNlwiOiBcImlzbzg4NTkxNlwiLFxuICBcImNwNDM3XCI6IHtcbiAgICBcInR5cGVcIjogXCJfc2Jjc1wiLFxuICAgIFwiY2hhcnNcIjogXCJcdTAwQzdcdTAwRkNcdTAwRTlcdTAwRTJcdTAwRTRcdTAwRTBcdTAwRTVcdTAwRTdcdTAwRUFcdTAwRUJcdTAwRThcdTAwRUZcdTAwRUVcdTAwRUNcdTAwQzRcdTAwQzVcdTAwQzlcdTAwRTZcdTAwQzZcdTAwRjRcdTAwRjZcdTAwRjJcdTAwRkJcdTAwRjlcdTAwRkZcdTAwRDZcdTAwRENcdTAwQTJcdTAwQTNcdTAwQTVcdTIwQTdcdTAxOTJcdTAwRTFcdTAwRURcdTAwRjNcdTAwRkFcdTAwRjFcdTAwRDFcdTAwQUFcdTAwQkFcdTAwQkZcdTIzMTBcdTAwQUNcdTAwQkRcdTAwQkNcdTAwQTFcdTAwQUJcdTAwQkJcdTI1OTFcdTI1OTJcdTI1OTNcdTI1MDJcdTI1MjRcdTI1NjFcdTI1NjJcdTI1NTZcdTI1NTVcdTI1NjNcdTI1NTFcdTI1NTdcdTI1NURcdTI1NUNcdTI1NUJcdTI1MTBcdTI1MTRcdTI1MzRcdTI1MkNcdTI1MUNcdTI1MDBcdTI1M0NcdTI1NUVcdTI1NUZcdTI1NUFcdTI1NTRcdTI1NjlcdTI1NjZcdTI1NjBcdTI1NTBcdTI1NkNcdTI1NjdcdTI1NjhcdTI1NjRcdTI1NjVcdTI1NTlcdTI1NThcdTI1NTJcdTI1NTNcdTI1NkJcdTI1NkFcdTI1MThcdTI1MENcdTI1ODhcdTI1ODRcdTI1OENcdTI1OTBcdTI1ODBcdTAzQjFcdTAwREZcdTAzOTNcdTAzQzBcdTAzQTNcdTAzQzNcdTAwQjVcdTAzQzRcdTAzQTZcdTAzOThcdTAzQTlcdTAzQjRcdTIyMUVcdTAzQzZcdTAzQjVcdTIyMjlcdTIyNjFcdTAwQjFcdTIyNjVcdTIyNjRcdTIzMjBcdTIzMjFcdTAwRjdcdTIyNDhcdTAwQjBcdTIyMTlcdTAwQjdcdTIyMUFcdTIwN0ZcdTAwQjJcdTI1QTBcdTAwQTBcIlxuICB9LFxuICBcImlibTQzN1wiOiBcImNwNDM3XCIsXG4gIFwiY3NpYm00MzdcIjogXCJjcDQzN1wiLFxuICBcImNwNzM3XCI6IHtcbiAgICBcInR5cGVcIjogXCJfc2Jjc1wiLFxuICAgIFwiY2hhcnNcIjogXCJcdTAzOTFcdTAzOTJcdTAzOTNcdTAzOTRcdTAzOTVcdTAzOTZcdTAzOTdcdTAzOThcdTAzOTlcdTAzOUFcdTAzOUJcdTAzOUNcdTAzOURcdTAzOUVcdTAzOUZcdTAzQTBcdTAzQTFcdTAzQTNcdTAzQTRcdTAzQTVcdTAzQTZcdTAzQTdcdTAzQThcdTAzQTlcdTAzQjFcdTAzQjJcdTAzQjNcdTAzQjRcdTAzQjVcdTAzQjZcdTAzQjdcdTAzQjhcdTAzQjlcdTAzQkFcdTAzQkJcdTAzQkNcdTAzQkRcdTAzQkVcdTAzQkZcdTAzQzBcdTAzQzFcdTAzQzNcdTAzQzJcdTAzQzRcdTAzQzVcdTAzQzZcdTAzQzdcdTAzQzhcdTI1OTFcdTI1OTJcdTI1OTNcdTI1MDJcdTI1MjRcdTI1NjFcdTI1NjJcdTI1NTZcdTI1NTVcdTI1NjNcdTI1NTFcdTI1NTdcdTI1NURcdTI1NUNcdTI1NUJcdTI1MTBcdTI1MTRcdTI1MzRcdTI1MkNcdTI1MUNcdTI1MDBcdTI1M0NcdTI1NUVcdTI1NUZcdTI1NUFcdTI1NTRcdTI1NjlcdTI1NjZcdTI1NjBcdTI1NTBcdTI1NkNcdTI1NjdcdTI1NjhcdTI1NjRcdTI1NjVcdTI1NTlcdTI1NThcdTI1NTJcdTI1NTNcdTI1NkJcdTI1NkFcdTI1MThcdTI1MENcdTI1ODhcdTI1ODRcdTI1OENcdTI1OTBcdTI1ODBcdTAzQzlcdTAzQUNcdTAzQURcdTAzQUVcdTAzQ0FcdTAzQUZcdTAzQ0NcdTAzQ0RcdTAzQ0JcdTAzQ0VcdTAzODZcdTAzODhcdTAzODlcdTAzOEFcdTAzOENcdTAzOEVcdTAzOEZcdTAwQjFcdTIyNjVcdTIyNjRcdTAzQUFcdTAzQUJcdTAwRjdcdTIyNDhcdTAwQjBcdTIyMTlcdTAwQjdcdTIyMUFcdTIwN0ZcdTAwQjJcdTI1QTBcdTAwQTBcIlxuICB9LFxuICBcImlibTczN1wiOiBcImNwNzM3XCIsXG4gIFwiY3NpYm03MzdcIjogXCJjcDczN1wiLFxuICBcImNwNzc1XCI6IHtcbiAgICBcInR5cGVcIjogXCJfc2Jjc1wiLFxuICAgIFwiY2hhcnNcIjogXCJcdTAxMDZcdTAwRkNcdTAwRTlcdTAxMDFcdTAwRTRcdTAxMjNcdTAwRTVcdTAxMDdcdTAxNDJcdTAxMTNcdTAxNTZcdTAxNTdcdTAxMkJcdTAxNzlcdTAwQzRcdTAwQzVcdTAwQzlcdTAwRTZcdTAwQzZcdTAxNERcdTAwRjZcdTAxMjJcdTAwQTJcdTAxNUFcdTAxNUJcdTAwRDZcdTAwRENcdTAwRjhcdTAwQTNcdTAwRDhcdTAwRDdcdTAwQTRcdTAxMDBcdTAxMkFcdTAwRjNcdTAxN0JcdTAxN0NcdTAxN0FcdTIwMURcdTAwQTZcdTAwQTlcdTAwQUVcdTAwQUNcdTAwQkRcdTAwQkNcdTAxNDFcdTAwQUJcdTAwQkJcdTI1OTFcdTI1OTJcdTI1OTNcdTI1MDJcdTI1MjRcdTAxMDRcdTAxMENcdTAxMThcdTAxMTZcdTI1NjNcdTI1NTFcdTI1NTdcdTI1NURcdTAxMkVcdTAxNjBcdTI1MTBcdTI1MTRcdTI1MzRcdTI1MkNcdTI1MUNcdTI1MDBcdTI1M0NcdTAxNzJcdTAxNkFcdTI1NUFcdTI1NTRcdTI1NjlcdTI1NjZcdTI1NjBcdTI1NTBcdTI1NkNcdTAxN0RcdTAxMDVcdTAxMERcdTAxMTlcdTAxMTdcdTAxMkZcdTAxNjFcdTAxNzNcdTAxNkJcdTAxN0VcdTI1MThcdTI1MENcdTI1ODhcdTI1ODRcdTI1OENcdTI1OTBcdTI1ODBcdTAwRDNcdTAwREZcdTAxNENcdTAxNDNcdTAwRjVcdTAwRDVcdTAwQjVcdTAxNDRcdTAxMzZcdTAxMzdcdTAxM0JcdTAxM0NcdTAxNDZcdTAxMTJcdTAxNDVcdTIwMTlcdTAwQURcdTAwQjFcdTIwMUNcdTAwQkVcdTAwQjZcdTAwQTdcdTAwRjdcdTIwMUVcdTAwQjBcdTIyMTlcdTAwQjdcdTAwQjlcdTAwQjNcdTAwQjJcdTI1QTBcdTAwQTBcIlxuICB9LFxuICBcImlibTc3NVwiOiBcImNwNzc1XCIsXG4gIFwiY3NpYm03NzVcIjogXCJjcDc3NVwiLFxuICBcImNwODUwXCI6IHtcbiAgICBcInR5cGVcIjogXCJfc2Jjc1wiLFxuICAgIFwiY2hhcnNcIjogXCJcdTAwQzdcdTAwRkNcdTAwRTlcdTAwRTJcdTAwRTRcdTAwRTBcdTAwRTVcdTAwRTdcdTAwRUFcdTAwRUJcdTAwRThcdTAwRUZcdTAwRUVcdTAwRUNcdTAwQzRcdTAwQzVcdTAwQzlcdTAwRTZcdTAwQzZcdTAwRjRcdTAwRjZcdTAwRjJcdTAwRkJcdTAwRjlcdTAwRkZcdTAwRDZcdTAwRENcdTAwRjhcdTAwQTNcdTAwRDhcdTAwRDdcdTAxOTJcdTAwRTFcdTAwRURcdTAwRjNcdTAwRkFcdTAwRjFcdTAwRDFcdTAwQUFcdTAwQkFcdTAwQkZcdTAwQUVcdTAwQUNcdTAwQkRcdTAwQkNcdTAwQTFcdTAwQUJcdTAwQkJcdTI1OTFcdTI1OTJcdTI1OTNcdTI1MDJcdTI1MjRcdTAwQzFcdTAwQzJcdTAwQzBcdTAwQTlcdTI1NjNcdTI1NTFcdTI1NTdcdTI1NURcdTAwQTJcdTAwQTVcdTI1MTBcdTI1MTRcdTI1MzRcdTI1MkNcdTI1MUNcdTI1MDBcdTI1M0NcdTAwRTNcdTAwQzNcdTI1NUFcdTI1NTRcdTI1NjlcdTI1NjZcdTI1NjBcdTI1NTBcdTI1NkNcdTAwQTRcdTAwRjBcdTAwRDBcdTAwQ0FcdTAwQ0JcdTAwQzhcdTAxMzFcdTAwQ0RcdTAwQ0VcdTAwQ0ZcdTI1MThcdTI1MENcdTI1ODhcdTI1ODRcdTAwQTZcdTAwQ0NcdTI1ODBcdTAwRDNcdTAwREZcdTAwRDRcdTAwRDJcdTAwRjVcdTAwRDVcdTAwQjVcdTAwRkVcdTAwREVcdTAwREFcdTAwREJcdTAwRDlcdTAwRkRcdTAwRERcdTAwQUZcdTAwQjRcdTAwQURcdTAwQjFcdTIwMTdcdTAwQkVcdTAwQjZcdTAwQTdcdTAwRjdcdTAwQjhcdTAwQjBcdTAwQThcdTAwQjdcdTAwQjlcdTAwQjNcdTAwQjJcdTI1QTBcdTAwQTBcIlxuICB9LFxuICBcImlibTg1MFwiOiBcImNwODUwXCIsXG4gIFwiY3NpYm04NTBcIjogXCJjcDg1MFwiLFxuICBcImNwODUyXCI6IHtcbiAgICBcInR5cGVcIjogXCJfc2Jjc1wiLFxuICAgIFwiY2hhcnNcIjogXCJcdTAwQzdcdTAwRkNcdTAwRTlcdTAwRTJcdTAwRTRcdTAxNkZcdTAxMDdcdTAwRTdcdTAxNDJcdTAwRUJcdTAxNTBcdTAxNTFcdTAwRUVcdTAxNzlcdTAwQzRcdTAxMDZcdTAwQzlcdTAxMzlcdTAxM0FcdTAwRjRcdTAwRjZcdTAxM0RcdTAxM0VcdTAxNUFcdTAxNUJcdTAwRDZcdTAwRENcdTAxNjRcdTAxNjVcdTAxNDFcdTAwRDdcdTAxMERcdTAwRTFcdTAwRURcdTAwRjNcdTAwRkFcdTAxMDRcdTAxMDVcdTAxN0RcdTAxN0VcdTAxMThcdTAxMTlcdTAwQUNcdTAxN0FcdTAxMENcdTAxNUZcdTAwQUJcdTAwQkJcdTI1OTFcdTI1OTJcdTI1OTNcdTI1MDJcdTI1MjRcdTAwQzFcdTAwQzJcdTAxMUFcdTAxNUVcdTI1NjNcdTI1NTFcdTI1NTdcdTI1NURcdTAxN0JcdTAxN0NcdTI1MTBcdTI1MTRcdTI1MzRcdTI1MkNcdTI1MUNcdTI1MDBcdTI1M0NcdTAxMDJcdTAxMDNcdTI1NUFcdTI1NTRcdTI1NjlcdTI1NjZcdTI1NjBcdTI1NTBcdTI1NkNcdTAwQTRcdTAxMTFcdTAxMTBcdTAxMEVcdTAwQ0JcdTAxMEZcdTAxNDdcdTAwQ0RcdTAwQ0VcdTAxMUJcdTI1MThcdTI1MENcdTI1ODhcdTI1ODRcdTAxNjJcdTAxNkVcdTI1ODBcdTAwRDNcdTAwREZcdTAwRDRcdTAxNDNcdTAxNDRcdTAxNDhcdTAxNjBcdTAxNjFcdTAxNTRcdTAwREFcdTAxNTVcdTAxNzBcdTAwRkRcdTAwRERcdTAxNjNcdTAwQjRcdTAwQURcdTAyRERcdTAyREJcdTAyQzdcdTAyRDhcdTAwQTdcdTAwRjdcdTAwQjhcdTAwQjBcdTAwQThcdTAyRDlcdTAxNzFcdTAxNThcdTAxNTlcdTI1QTBcdTAwQTBcIlxuICB9LFxuICBcImlibTg1MlwiOiBcImNwODUyXCIsXG4gIFwiY3NpYm04NTJcIjogXCJjcDg1MlwiLFxuICBcImNwODU1XCI6IHtcbiAgICBcInR5cGVcIjogXCJfc2Jjc1wiLFxuICAgIFwiY2hhcnNcIjogXCJcdTA0NTJcdTA0MDJcdTA0NTNcdTA0MDNcdTA0NTFcdTA0MDFcdTA0NTRcdTA0MDRcdTA0NTVcdTA0MDVcdTA0NTZcdTA0MDZcdTA0NTdcdTA0MDdcdTA0NThcdTA0MDhcdTA0NTlcdTA0MDlcdTA0NUFcdTA0MEFcdTA0NUJcdTA0MEJcdTA0NUNcdTA0MENcdTA0NUVcdTA0MEVcdTA0NUZcdTA0MEZcdTA0NEVcdTA0MkVcdTA0NEFcdTA0MkFcdTA0MzBcdTA0MTBcdTA0MzFcdTA0MTFcdTA0NDZcdTA0MjZcdTA0MzRcdTA0MTRcdTA0MzVcdTA0MTVcdTA0NDRcdTA0MjRcdTA0MzNcdTA0MTNcdTAwQUJcdTAwQkJcdTI1OTFcdTI1OTJcdTI1OTNcdTI1MDJcdTI1MjRcdTA0NDVcdTA0MjVcdTA0MzhcdTA0MThcdTI1NjNcdTI1NTFcdTI1NTdcdTI1NURcdTA0MzlcdTA0MTlcdTI1MTBcdTI1MTRcdTI1MzRcdTI1MkNcdTI1MUNcdTI1MDBcdTI1M0NcdTA0M0FcdTA0MUFcdTI1NUFcdTI1NTRcdTI1NjlcdTI1NjZcdTI1NjBcdTI1NTBcdTI1NkNcdTAwQTRcdTA0M0JcdTA0MUJcdTA0M0NcdTA0MUNcdTA0M0RcdTA0MURcdTA0M0VcdTA0MUVcdTA0M0ZcdTI1MThcdTI1MENcdTI1ODhcdTI1ODRcdTA0MUZcdTA0NEZcdTI1ODBcdTA0MkZcdTA0NDBcdTA0MjBcdTA0NDFcdTA0MjFcdTA0NDJcdTA0MjJcdTA0NDNcdTA0MjNcdTA0MzZcdTA0MTZcdTA0MzJcdTA0MTJcdTA0NENcdTA0MkNcdTIxMTZcdTAwQURcdTA0NEJcdTA0MkJcdTA0MzdcdTA0MTdcdTA0NDhcdTA0MjhcdTA0NERcdTA0MkRcdTA0NDlcdTA0MjlcdTA0NDdcdTA0MjdcdTAwQTdcdTI1QTBcdTAwQTBcIlxuICB9LFxuICBcImlibTg1NVwiOiBcImNwODU1XCIsXG4gIFwiY3NpYm04NTVcIjogXCJjcDg1NVwiLFxuICBcImNwODU2XCI6IHtcbiAgICBcInR5cGVcIjogXCJfc2Jjc1wiLFxuICAgIFwiY2hhcnNcIjogXCJcdTA1RDBcdTA1RDFcdTA1RDJcdTA1RDNcdTA1RDRcdTA1RDVcdTA1RDZcdTA1RDdcdTA1RDhcdTA1RDlcdTA1REFcdTA1REJcdTA1RENcdTA1RERcdTA1REVcdTA1REZcdTA1RTBcdTA1RTFcdTA1RTJcdTA1RTNcdTA1RTRcdTA1RTVcdTA1RTZcdTA1RTdcdTA1RThcdTA1RTlcdTA1RUFcdUZGRkRcdTAwQTNcdUZGRkRcdTAwRDdcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdTAwQUVcdTAwQUNcdTAwQkRcdTAwQkNcdUZGRkRcdTAwQUJcdTAwQkJcdTI1OTFcdTI1OTJcdTI1OTNcdTI1MDJcdTI1MjRcdUZGRkRcdUZGRkRcdUZGRkRcdTAwQTlcdTI1NjNcdTI1NTFcdTI1NTdcdTI1NURcdTAwQTJcdTAwQTVcdTI1MTBcdTI1MTRcdTI1MzRcdTI1MkNcdTI1MUNcdTI1MDBcdTI1M0NcdUZGRkRcdUZGRkRcdTI1NUFcdTI1NTRcdTI1NjlcdTI1NjZcdTI1NjBcdTI1NTBcdTI1NkNcdTAwQTRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdTI1MThcdTI1MENcdTI1ODhcdTI1ODRcdTAwQTZcdUZGRkRcdTI1ODBcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdTAwQjVcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdTAwQUZcdTAwQjRcdTAwQURcdTAwQjFcdTIwMTdcdTAwQkVcdTAwQjZcdTAwQTdcdTAwRjdcdTAwQjhcdTAwQjBcdTAwQThcdTAwQjdcdTAwQjlcdTAwQjNcdTAwQjJcdTI1QTBcdTAwQTBcIlxuICB9LFxuICBcImlibTg1NlwiOiBcImNwODU2XCIsXG4gIFwiY3NpYm04NTZcIjogXCJjcDg1NlwiLFxuICBcImNwODU3XCI6IHtcbiAgICBcInR5cGVcIjogXCJfc2Jjc1wiLFxuICAgIFwiY2hhcnNcIjogXCJcdTAwQzdcdTAwRkNcdTAwRTlcdTAwRTJcdTAwRTRcdTAwRTBcdTAwRTVcdTAwRTdcdTAwRUFcdTAwRUJcdTAwRThcdTAwRUZcdTAwRUVcdTAxMzFcdTAwQzRcdTAwQzVcdTAwQzlcdTAwRTZcdTAwQzZcdTAwRjRcdTAwRjZcdTAwRjJcdTAwRkJcdTAwRjlcdTAxMzBcdTAwRDZcdTAwRENcdTAwRjhcdTAwQTNcdTAwRDhcdTAxNUVcdTAxNUZcdTAwRTFcdTAwRURcdTAwRjNcdTAwRkFcdTAwRjFcdTAwRDFcdTAxMUVcdTAxMUZcdTAwQkZcdTAwQUVcdTAwQUNcdTAwQkRcdTAwQkNcdTAwQTFcdTAwQUJcdTAwQkJcdTI1OTFcdTI1OTJcdTI1OTNcdTI1MDJcdTI1MjRcdTAwQzFcdTAwQzJcdTAwQzBcdTAwQTlcdTI1NjNcdTI1NTFcdTI1NTdcdTI1NURcdTAwQTJcdTAwQTVcdTI1MTBcdTI1MTRcdTI1MzRcdTI1MkNcdTI1MUNcdTI1MDBcdTI1M0NcdTAwRTNcdTAwQzNcdTI1NUFcdTI1NTRcdTI1NjlcdTI1NjZcdTI1NjBcdTI1NTBcdTI1NkNcdTAwQTRcdTAwQkFcdTAwQUFcdTAwQ0FcdTAwQ0JcdTAwQzhcdUZGRkRcdTAwQ0RcdTAwQ0VcdTAwQ0ZcdTI1MThcdTI1MENcdTI1ODhcdTI1ODRcdTAwQTZcdTAwQ0NcdTI1ODBcdTAwRDNcdTAwREZcdTAwRDRcdTAwRDJcdTAwRjVcdTAwRDVcdTAwQjVcdUZGRkRcdTAwRDdcdTAwREFcdTAwREJcdTAwRDlcdTAwRUNcdTAwRkZcdTAwQUZcdTAwQjRcdTAwQURcdTAwQjFcdUZGRkRcdTAwQkVcdTAwQjZcdTAwQTdcdTAwRjdcdTAwQjhcdTAwQjBcdTAwQThcdTAwQjdcdTAwQjlcdTAwQjNcdTAwQjJcdTI1QTBcdTAwQTBcIlxuICB9LFxuICBcImlibTg1N1wiOiBcImNwODU3XCIsXG4gIFwiY3NpYm04NTdcIjogXCJjcDg1N1wiLFxuICBcImNwODU4XCI6IHtcbiAgICBcInR5cGVcIjogXCJfc2Jjc1wiLFxuICAgIFwiY2hhcnNcIjogXCJcdTAwQzdcdTAwRkNcdTAwRTlcdTAwRTJcdTAwRTRcdTAwRTBcdTAwRTVcdTAwRTdcdTAwRUFcdTAwRUJcdTAwRThcdTAwRUZcdTAwRUVcdTAwRUNcdTAwQzRcdTAwQzVcdTAwQzlcdTAwRTZcdTAwQzZcdTAwRjRcdTAwRjZcdTAwRjJcdTAwRkJcdTAwRjlcdTAwRkZcdTAwRDZcdTAwRENcdTAwRjhcdTAwQTNcdTAwRDhcdTAwRDdcdTAxOTJcdTAwRTFcdTAwRURcdTAwRjNcdTAwRkFcdTAwRjFcdTAwRDFcdTAwQUFcdTAwQkFcdTAwQkZcdTAwQUVcdTAwQUNcdTAwQkRcdTAwQkNcdTAwQTFcdTAwQUJcdTAwQkJcdTI1OTFcdTI1OTJcdTI1OTNcdTI1MDJcdTI1MjRcdTAwQzFcdTAwQzJcdTAwQzBcdTAwQTlcdTI1NjNcdTI1NTFcdTI1NTdcdTI1NURcdTAwQTJcdTAwQTVcdTI1MTBcdTI1MTRcdTI1MzRcdTI1MkNcdTI1MUNcdTI1MDBcdTI1M0NcdTAwRTNcdTAwQzNcdTI1NUFcdTI1NTRcdTI1NjlcdTI1NjZcdTI1NjBcdTI1NTBcdTI1NkNcdTAwQTRcdTAwRjBcdTAwRDBcdTAwQ0FcdTAwQ0JcdTAwQzhcdTIwQUNcdTAwQ0RcdTAwQ0VcdTAwQ0ZcdTI1MThcdTI1MENcdTI1ODhcdTI1ODRcdTAwQTZcdTAwQ0NcdTI1ODBcdTAwRDNcdTAwREZcdTAwRDRcdTAwRDJcdTAwRjVcdTAwRDVcdTAwQjVcdTAwRkVcdTAwREVcdTAwREFcdTAwREJcdTAwRDlcdTAwRkRcdTAwRERcdTAwQUZcdTAwQjRcdTAwQURcdTAwQjFcdTIwMTdcdTAwQkVcdTAwQjZcdTAwQTdcdTAwRjdcdTAwQjhcdTAwQjBcdTAwQThcdTAwQjdcdTAwQjlcdTAwQjNcdTAwQjJcdTI1QTBcdTAwQTBcIlxuICB9LFxuICBcImlibTg1OFwiOiBcImNwODU4XCIsXG4gIFwiY3NpYm04NThcIjogXCJjcDg1OFwiLFxuICBcImNwODYwXCI6IHtcbiAgICBcInR5cGVcIjogXCJfc2Jjc1wiLFxuICAgIFwiY2hhcnNcIjogXCJcdTAwQzdcdTAwRkNcdTAwRTlcdTAwRTJcdTAwRTNcdTAwRTBcdTAwQzFcdTAwRTdcdTAwRUFcdTAwQ0FcdTAwRThcdTAwQ0RcdTAwRDRcdTAwRUNcdTAwQzNcdTAwQzJcdTAwQzlcdTAwQzBcdTAwQzhcdTAwRjRcdTAwRjVcdTAwRjJcdTAwREFcdTAwRjlcdTAwQ0NcdTAwRDVcdTAwRENcdTAwQTJcdTAwQTNcdTAwRDlcdTIwQTdcdTAwRDNcdTAwRTFcdTAwRURcdTAwRjNcdTAwRkFcdTAwRjFcdTAwRDFcdTAwQUFcdTAwQkFcdTAwQkZcdTAwRDJcdTAwQUNcdTAwQkRcdTAwQkNcdTAwQTFcdTAwQUJcdTAwQkJcdTI1OTFcdTI1OTJcdTI1OTNcdTI1MDJcdTI1MjRcdTI1NjFcdTI1NjJcdTI1NTZcdTI1NTVcdTI1NjNcdTI1NTFcdTI1NTdcdTI1NURcdTI1NUNcdTI1NUJcdTI1MTBcdTI1MTRcdTI1MzRcdTI1MkNcdTI1MUNcdTI1MDBcdTI1M0NcdTI1NUVcdTI1NUZcdTI1NUFcdTI1NTRcdTI1NjlcdTI1NjZcdTI1NjBcdTI1NTBcdTI1NkNcdTI1NjdcdTI1NjhcdTI1NjRcdTI1NjVcdTI1NTlcdTI1NThcdTI1NTJcdTI1NTNcdTI1NkJcdTI1NkFcdTI1MThcdTI1MENcdTI1ODhcdTI1ODRcdTI1OENcdTI1OTBcdTI1ODBcdTAzQjFcdTAwREZcdTAzOTNcdTAzQzBcdTAzQTNcdTAzQzNcdTAwQjVcdTAzQzRcdTAzQTZcdTAzOThcdTAzQTlcdTAzQjRcdTIyMUVcdTAzQzZcdTAzQjVcdTIyMjlcdTIyNjFcdTAwQjFcdTIyNjVcdTIyNjRcdTIzMjBcdTIzMjFcdTAwRjdcdTIyNDhcdTAwQjBcdTIyMTlcdTAwQjdcdTIyMUFcdTIwN0ZcdTAwQjJcdTI1QTBcdTAwQTBcIlxuICB9LFxuICBcImlibTg2MFwiOiBcImNwODYwXCIsXG4gIFwiY3NpYm04NjBcIjogXCJjcDg2MFwiLFxuICBcImNwODYxXCI6IHtcbiAgICBcInR5cGVcIjogXCJfc2Jjc1wiLFxuICAgIFwiY2hhcnNcIjogXCJcdTAwQzdcdTAwRkNcdTAwRTlcdTAwRTJcdTAwRTRcdTAwRTBcdTAwRTVcdTAwRTdcdTAwRUFcdTAwRUJcdTAwRThcdTAwRDBcdTAwRjBcdTAwREVcdTAwQzRcdTAwQzVcdTAwQzlcdTAwRTZcdTAwQzZcdTAwRjRcdTAwRjZcdTAwRkVcdTAwRkJcdTAwRERcdTAwRkRcdTAwRDZcdTAwRENcdTAwRjhcdTAwQTNcdTAwRDhcdTIwQTdcdTAxOTJcdTAwRTFcdTAwRURcdTAwRjNcdTAwRkFcdTAwQzFcdTAwQ0RcdTAwRDNcdTAwREFcdTAwQkZcdTIzMTBcdTAwQUNcdTAwQkRcdTAwQkNcdTAwQTFcdTAwQUJcdTAwQkJcdTI1OTFcdTI1OTJcdTI1OTNcdTI1MDJcdTI1MjRcdTI1NjFcdTI1NjJcdTI1NTZcdTI1NTVcdTI1NjNcdTI1NTFcdTI1NTdcdTI1NURcdTI1NUNcdTI1NUJcdTI1MTBcdTI1MTRcdTI1MzRcdTI1MkNcdTI1MUNcdTI1MDBcdTI1M0NcdTI1NUVcdTI1NUZcdTI1NUFcdTI1NTRcdTI1NjlcdTI1NjZcdTI1NjBcdTI1NTBcdTI1NkNcdTI1NjdcdTI1NjhcdTI1NjRcdTI1NjVcdTI1NTlcdTI1NThcdTI1NTJcdTI1NTNcdTI1NkJcdTI1NkFcdTI1MThcdTI1MENcdTI1ODhcdTI1ODRcdTI1OENcdTI1OTBcdTI1ODBcdTAzQjFcdTAwREZcdTAzOTNcdTAzQzBcdTAzQTNcdTAzQzNcdTAwQjVcdTAzQzRcdTAzQTZcdTAzOThcdTAzQTlcdTAzQjRcdTIyMUVcdTAzQzZcdTAzQjVcdTIyMjlcdTIyNjFcdTAwQjFcdTIyNjVcdTIyNjRcdTIzMjBcdTIzMjFcdTAwRjdcdTIyNDhcdTAwQjBcdTIyMTlcdTAwQjdcdTIyMUFcdTIwN0ZcdTAwQjJcdTI1QTBcdTAwQTBcIlxuICB9LFxuICBcImlibTg2MVwiOiBcImNwODYxXCIsXG4gIFwiY3NpYm04NjFcIjogXCJjcDg2MVwiLFxuICBcImNwODYyXCI6IHtcbiAgICBcInR5cGVcIjogXCJfc2Jjc1wiLFxuICAgIFwiY2hhcnNcIjogXCJcdTA1RDBcdTA1RDFcdTA1RDJcdTA1RDNcdTA1RDRcdTA1RDVcdTA1RDZcdTA1RDdcdTA1RDhcdTA1RDlcdTA1REFcdTA1REJcdTA1RENcdTA1RERcdTA1REVcdTA1REZcdTA1RTBcdTA1RTFcdTA1RTJcdTA1RTNcdTA1RTRcdTA1RTVcdTA1RTZcdTA1RTdcdTA1RThcdTA1RTlcdTA1RUFcdTAwQTJcdTAwQTNcdTAwQTVcdTIwQTdcdTAxOTJcdTAwRTFcdTAwRURcdTAwRjNcdTAwRkFcdTAwRjFcdTAwRDFcdTAwQUFcdTAwQkFcdTAwQkZcdTIzMTBcdTAwQUNcdTAwQkRcdTAwQkNcdTAwQTFcdTAwQUJcdTAwQkJcdTI1OTFcdTI1OTJcdTI1OTNcdTI1MDJcdTI1MjRcdTI1NjFcdTI1NjJcdTI1NTZcdTI1NTVcdTI1NjNcdTI1NTFcdTI1NTdcdTI1NURcdTI1NUNcdTI1NUJcdTI1MTBcdTI1MTRcdTI1MzRcdTI1MkNcdTI1MUNcdTI1MDBcdTI1M0NcdTI1NUVcdTI1NUZcdTI1NUFcdTI1NTRcdTI1NjlcdTI1NjZcdTI1NjBcdTI1NTBcdTI1NkNcdTI1NjdcdTI1NjhcdTI1NjRcdTI1NjVcdTI1NTlcdTI1NThcdTI1NTJcdTI1NTNcdTI1NkJcdTI1NkFcdTI1MThcdTI1MENcdTI1ODhcdTI1ODRcdTI1OENcdTI1OTBcdTI1ODBcdTAzQjFcdTAwREZcdTAzOTNcdTAzQzBcdTAzQTNcdTAzQzNcdTAwQjVcdTAzQzRcdTAzQTZcdTAzOThcdTAzQTlcdTAzQjRcdTIyMUVcdTAzQzZcdTAzQjVcdTIyMjlcdTIyNjFcdTAwQjFcdTIyNjVcdTIyNjRcdTIzMjBcdTIzMjFcdTAwRjdcdTIyNDhcdTAwQjBcdTIyMTlcdTAwQjdcdTIyMUFcdTIwN0ZcdTAwQjJcdTI1QTBcdTAwQTBcIlxuICB9LFxuICBcImlibTg2MlwiOiBcImNwODYyXCIsXG4gIFwiY3NpYm04NjJcIjogXCJjcDg2MlwiLFxuICBcImNwODYzXCI6IHtcbiAgICBcInR5cGVcIjogXCJfc2Jjc1wiLFxuICAgIFwiY2hhcnNcIjogXCJcdTAwQzdcdTAwRkNcdTAwRTlcdTAwRTJcdTAwQzJcdTAwRTBcdTAwQjZcdTAwRTdcdTAwRUFcdTAwRUJcdTAwRThcdTAwRUZcdTAwRUVcdTIwMTdcdTAwQzBcdTAwQTdcdTAwQzlcdTAwQzhcdTAwQ0FcdTAwRjRcdTAwQ0JcdTAwQ0ZcdTAwRkJcdTAwRjlcdTAwQTRcdTAwRDRcdTAwRENcdTAwQTJcdTAwQTNcdTAwRDlcdTAwREJcdTAxOTJcdTAwQTZcdTAwQjRcdTAwRjNcdTAwRkFcdTAwQThcdTAwQjhcdTAwQjNcdTAwQUZcdTAwQ0VcdTIzMTBcdTAwQUNcdTAwQkRcdTAwQkNcdTAwQkVcdTAwQUJcdTAwQkJcdTI1OTFcdTI1OTJcdTI1OTNcdTI1MDJcdTI1MjRcdTI1NjFcdTI1NjJcdTI1NTZcdTI1NTVcdTI1NjNcdTI1NTFcdTI1NTdcdTI1NURcdTI1NUNcdTI1NUJcdTI1MTBcdTI1MTRcdTI1MzRcdTI1MkNcdTI1MUNcdTI1MDBcdTI1M0NcdTI1NUVcdTI1NUZcdTI1NUFcdTI1NTRcdTI1NjlcdTI1NjZcdTI1NjBcdTI1NTBcdTI1NkNcdTI1NjdcdTI1NjhcdTI1NjRcdTI1NjVcdTI1NTlcdTI1NThcdTI1NTJcdTI1NTNcdTI1NkJcdTI1NkFcdTI1MThcdTI1MENcdTI1ODhcdTI1ODRcdTI1OENcdTI1OTBcdTI1ODBcdTAzQjFcdTAwREZcdTAzOTNcdTAzQzBcdTAzQTNcdTAzQzNcdTAwQjVcdTAzQzRcdTAzQTZcdTAzOThcdTAzQTlcdTAzQjRcdTIyMUVcdTAzQzZcdTAzQjVcdTIyMjlcdTIyNjFcdTAwQjFcdTIyNjVcdTIyNjRcdTIzMjBcdTIzMjFcdTAwRjdcdTIyNDhcdTAwQjBcdTIyMTlcdTAwQjdcdTIyMUFcdTIwN0ZcdTAwQjJcdTI1QTBcdTAwQTBcIlxuICB9LFxuICBcImlibTg2M1wiOiBcImNwODYzXCIsXG4gIFwiY3NpYm04NjNcIjogXCJjcDg2M1wiLFxuICBcImNwODY0XCI6IHtcbiAgICBcInR5cGVcIjogXCJfc2Jjc1wiLFxuICAgIFwiY2hhcnNcIjogXCJcXHUwMDAwXFx1MDAwMVxcdTAwMDJcXHUwMDAzXFx1MDAwNFxcdTAwMDVcXHUwMDA2XFx1MDAwN1xcYlxcdFxcblxcdTAwMGJcXGZcXHJcXHUwMDBlXFx1MDAwZlxcdTAwMTBcXHUwMDExXFx1MDAxMlxcdTAwMTNcXHUwMDE0XFx1MDAxNVxcdTAwMTZcXHUwMDE3XFx1MDAxOFxcdTAwMTlcXHUwMDFhXFx1MDAxYlxcdTAwMWNcXHUwMDFkXFx1MDAxZVxcdTAwMWYgIVxcXCIjJFx1MDY2QSYnKCkqKywtLi8wMTIzNDU2Nzg5Ojs8PT4/QEFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaW1xcXFxdXl9gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXp7fH1+XHUwMDdGXHUwMEIwXHUwMEI3XHUyMjE5XHUyMjFBXHUyNTkyXHUyNTAwXHUyNTAyXHUyNTNDXHUyNTI0XHUyNTJDXHUyNTFDXHUyNTM0XHUyNTEwXHUyNTBDXHUyNTE0XHUyNTE4XHUwM0IyXHUyMjFFXHUwM0M2XHUwMEIxXHUwMEJEXHUwMEJDXHUyMjQ4XHUwMEFCXHUwMEJCXHVGRUY3XHVGRUY4XHVGRkZEXHVGRkZEXHVGRUZCXHVGRUZDXHVGRkZEXHUwMEEwXHUwMEFEXHVGRTgyXHUwMEEzXHUwMEE0XHVGRTg0XHVGRkZEXHVGRkZEXHVGRThFXHVGRThGXHVGRTk1XHVGRTk5XHUwNjBDXHVGRTlEXHVGRUExXHVGRUE1XHUwNjYwXHUwNjYxXHUwNjYyXHUwNjYzXHUwNjY0XHUwNjY1XHUwNjY2XHUwNjY3XHUwNjY4XHUwNjY5XHVGRUQxXHUwNjFCXHVGRUIxXHVGRUI1XHVGRUI5XHUwNjFGXHUwMEEyXHVGRTgwXHVGRTgxXHVGRTgzXHVGRTg1XHVGRUNBXHVGRThCXHVGRThEXHVGRTkxXHVGRTkzXHVGRTk3XHVGRTlCXHVGRTlGXHVGRUEzXHVGRUE3XHVGRUE5XHVGRUFCXHVGRUFEXHVGRUFGXHVGRUIzXHVGRUI3XHVGRUJCXHVGRUJGXHVGRUMxXHVGRUM1XHVGRUNCXHVGRUNGXHUwMEE2XHUwMEFDXHUwMEY3XHUwMEQ3XHVGRUM5XHUwNjQwXHVGRUQzXHVGRUQ3XHVGRURCXHVGRURGXHVGRUUzXHVGRUU3XHVGRUVCXHVGRUVEXHVGRUVGXHVGRUYzXHVGRUJEXHVGRUNDXHVGRUNFXHVGRUNEXHVGRUUxXHVGRTdEXHUwNjUxXHVGRUU1XHVGRUU5XHVGRUVDXHVGRUYwXHVGRUYyXHVGRUQwXHVGRUQ1XHVGRUY1XHVGRUY2XHVGRUREXHVGRUQ5XHVGRUYxXHUyNUEwXHVGRkZEXCJcbiAgfSxcbiAgXCJpYm04NjRcIjogXCJjcDg2NFwiLFxuICBcImNzaWJtODY0XCI6IFwiY3A4NjRcIixcbiAgXCJjcDg2NVwiOiB7XG4gICAgXCJ0eXBlXCI6IFwiX3NiY3NcIixcbiAgICBcImNoYXJzXCI6IFwiXHUwMEM3XHUwMEZDXHUwMEU5XHUwMEUyXHUwMEU0XHUwMEUwXHUwMEU1XHUwMEU3XHUwMEVBXHUwMEVCXHUwMEU4XHUwMEVGXHUwMEVFXHUwMEVDXHUwMEM0XHUwMEM1XHUwMEM5XHUwMEU2XHUwMEM2XHUwMEY0XHUwMEY2XHUwMEYyXHUwMEZCXHUwMEY5XHUwMEZGXHUwMEQ2XHUwMERDXHUwMEY4XHUwMEEzXHUwMEQ4XHUyMEE3XHUwMTkyXHUwMEUxXHUwMEVEXHUwMEYzXHUwMEZBXHUwMEYxXHUwMEQxXHUwMEFBXHUwMEJBXHUwMEJGXHUyMzEwXHUwMEFDXHUwMEJEXHUwMEJDXHUwMEExXHUwMEFCXHUwMEE0XHUyNTkxXHUyNTkyXHUyNTkzXHUyNTAyXHUyNTI0XHUyNTYxXHUyNTYyXHUyNTU2XHUyNTU1XHUyNTYzXHUyNTUxXHUyNTU3XHUyNTVEXHUyNTVDXHUyNTVCXHUyNTEwXHUyNTE0XHUyNTM0XHUyNTJDXHUyNTFDXHUyNTAwXHUyNTNDXHUyNTVFXHUyNTVGXHUyNTVBXHUyNTU0XHUyNTY5XHUyNTY2XHUyNTYwXHUyNTUwXHUyNTZDXHUyNTY3XHUyNTY4XHUyNTY0XHUyNTY1XHUyNTU5XHUyNTU4XHUyNTUyXHUyNTUzXHUyNTZCXHUyNTZBXHUyNTE4XHUyNTBDXHUyNTg4XHUyNTg0XHUyNThDXHUyNTkwXHUyNTgwXHUwM0IxXHUwMERGXHUwMzkzXHUwM0MwXHUwM0EzXHUwM0MzXHUwMEI1XHUwM0M0XHUwM0E2XHUwMzk4XHUwM0E5XHUwM0I0XHUyMjFFXHUwM0M2XHUwM0I1XHUyMjI5XHUyMjYxXHUwMEIxXHUyMjY1XHUyMjY0XHUyMzIwXHUyMzIxXHUwMEY3XHUyMjQ4XHUwMEIwXHUyMjE5XHUwMEI3XHUyMjFBXHUyMDdGXHUwMEIyXHUyNUEwXHUwMEEwXCJcbiAgfSxcbiAgXCJpYm04NjVcIjogXCJjcDg2NVwiLFxuICBcImNzaWJtODY1XCI6IFwiY3A4NjVcIixcbiAgXCJjcDg2NlwiOiB7XG4gICAgXCJ0eXBlXCI6IFwiX3NiY3NcIixcbiAgICBcImNoYXJzXCI6IFwiXHUwNDEwXHUwNDExXHUwNDEyXHUwNDEzXHUwNDE0XHUwNDE1XHUwNDE2XHUwNDE3XHUwNDE4XHUwNDE5XHUwNDFBXHUwNDFCXHUwNDFDXHUwNDFEXHUwNDFFXHUwNDFGXHUwNDIwXHUwNDIxXHUwNDIyXHUwNDIzXHUwNDI0XHUwNDI1XHUwNDI2XHUwNDI3XHUwNDI4XHUwNDI5XHUwNDJBXHUwNDJCXHUwNDJDXHUwNDJEXHUwNDJFXHUwNDJGXHUwNDMwXHUwNDMxXHUwNDMyXHUwNDMzXHUwNDM0XHUwNDM1XHUwNDM2XHUwNDM3XHUwNDM4XHUwNDM5XHUwNDNBXHUwNDNCXHUwNDNDXHUwNDNEXHUwNDNFXHUwNDNGXHUyNTkxXHUyNTkyXHUyNTkzXHUyNTAyXHUyNTI0XHUyNTYxXHUyNTYyXHUyNTU2XHUyNTU1XHUyNTYzXHUyNTUxXHUyNTU3XHUyNTVEXHUyNTVDXHUyNTVCXHUyNTEwXHUyNTE0XHUyNTM0XHUyNTJDXHUyNTFDXHUyNTAwXHUyNTNDXHUyNTVFXHUyNTVGXHUyNTVBXHUyNTU0XHUyNTY5XHUyNTY2XHUyNTYwXHUyNTUwXHUyNTZDXHUyNTY3XHUyNTY4XHUyNTY0XHUyNTY1XHUyNTU5XHUyNTU4XHUyNTUyXHUyNTUzXHUyNTZCXHUyNTZBXHUyNTE4XHUyNTBDXHUyNTg4XHUyNTg0XHUyNThDXHUyNTkwXHUyNTgwXHUwNDQwXHUwNDQxXHUwNDQyXHUwNDQzXHUwNDQ0XHUwNDQ1XHUwNDQ2XHUwNDQ3XHUwNDQ4XHUwNDQ5XHUwNDRBXHUwNDRCXHUwNDRDXHUwNDREXHUwNDRFXHUwNDRGXHUwNDAxXHUwNDUxXHUwNDA0XHUwNDU0XHUwNDA3XHUwNDU3XHUwNDBFXHUwNDVFXHUwMEIwXHUyMjE5XHUwMEI3XHUyMjFBXHUyMTE2XHUwMEE0XHUyNUEwXHUwMEEwXCJcbiAgfSxcbiAgXCJpYm04NjZcIjogXCJjcDg2NlwiLFxuICBcImNzaWJtODY2XCI6IFwiY3A4NjZcIixcbiAgXCJjcDg2OVwiOiB7XG4gICAgXCJ0eXBlXCI6IFwiX3NiY3NcIixcbiAgICBcImNoYXJzXCI6IFwiXHVGRkZEXHVGRkZEXHVGRkZEXHVGRkZEXHVGRkZEXHVGRkZEXHUwMzg2XHVGRkZEXHUwMEI3XHUwMEFDXHUwMEE2XHUyMDE4XHUyMDE5XHUwMzg4XHUyMDE1XHUwMzg5XHUwMzhBXHUwM0FBXHUwMzhDXHVGRkZEXHVGRkZEXHUwMzhFXHUwM0FCXHUwMEE5XHUwMzhGXHUwMEIyXHUwMEIzXHUwM0FDXHUwMEEzXHUwM0FEXHUwM0FFXHUwM0FGXHUwM0NBXHUwMzkwXHUwM0NDXHUwM0NEXHUwMzkxXHUwMzkyXHUwMzkzXHUwMzk0XHUwMzk1XHUwMzk2XHUwMzk3XHUwMEJEXHUwMzk4XHUwMzk5XHUwMEFCXHUwMEJCXHUyNTkxXHUyNTkyXHUyNTkzXHUyNTAyXHUyNTI0XHUwMzlBXHUwMzlCXHUwMzlDXHUwMzlEXHUyNTYzXHUyNTUxXHUyNTU3XHUyNTVEXHUwMzlFXHUwMzlGXHUyNTEwXHUyNTE0XHUyNTM0XHUyNTJDXHUyNTFDXHUyNTAwXHUyNTNDXHUwM0EwXHUwM0ExXHUyNTVBXHUyNTU0XHUyNTY5XHUyNTY2XHUyNTYwXHUyNTUwXHUyNTZDXHUwM0EzXHUwM0E0XHUwM0E1XHUwM0E2XHUwM0E3XHUwM0E4XHUwM0E5XHUwM0IxXHUwM0IyXHUwM0IzXHUyNTE4XHUyNTBDXHUyNTg4XHUyNTg0XHUwM0I0XHUwM0I1XHUyNTgwXHUwM0I2XHUwM0I3XHUwM0I4XHUwM0I5XHUwM0JBXHUwM0JCXHUwM0JDXHUwM0JEXHUwM0JFXHUwM0JGXHUwM0MwXHUwM0MxXHUwM0MzXHUwM0MyXHUwM0M0XHUwMzg0XHUwMEFEXHUwMEIxXHUwM0M1XHUwM0M2XHUwM0M3XHUwMEE3XHUwM0M4XHUwMzg1XHUwMEIwXHUwMEE4XHUwM0M5XHUwM0NCXHUwM0IwXHUwM0NFXHUyNUEwXHUwMEEwXCJcbiAgfSxcbiAgXCJpYm04NjlcIjogXCJjcDg2OVwiLFxuICBcImNzaWJtODY5XCI6IFwiY3A4NjlcIixcbiAgXCJjcDkyMlwiOiB7XG4gICAgXCJ0eXBlXCI6IFwiX3NiY3NcIixcbiAgICBcImNoYXJzXCI6IFwiXHUwMDgwXHUwMDgxXHUwMDgyXHUwMDgzXHUwMDg0XHUwMDg1XHUwMDg2XHUwMDg3XHUwMDg4XHUwMDg5XHUwMDhBXHUwMDhCXHUwMDhDXHUwMDhEXHUwMDhFXHUwMDhGXHUwMDkwXHUwMDkxXHUwMDkyXHUwMDkzXHUwMDk0XHUwMDk1XHUwMDk2XHUwMDk3XHUwMDk4XHUwMDk5XHUwMDlBXHUwMDlCXHUwMDlDXHUwMDlEXHUwMDlFXHUwMDlGXHUwMEEwXHUwMEExXHUwMEEyXHUwMEEzXHUwMEE0XHUwMEE1XHUwMEE2XHUwMEE3XHUwMEE4XHUwMEE5XHUwMEFBXHUwMEFCXHUwMEFDXHUwMEFEXHUwMEFFXHUyMDNFXHUwMEIwXHUwMEIxXHUwMEIyXHUwMEIzXHUwMEI0XHUwMEI1XHUwMEI2XHUwMEI3XHUwMEI4XHUwMEI5XHUwMEJBXHUwMEJCXHUwMEJDXHUwMEJEXHUwMEJFXHUwMEJGXHUwMEMwXHUwMEMxXHUwMEMyXHUwMEMzXHUwMEM0XHUwMEM1XHUwMEM2XHUwMEM3XHUwMEM4XHUwMEM5XHUwMENBXHUwMENCXHUwMENDXHUwMENEXHUwMENFXHUwMENGXHUwMTYwXHUwMEQxXHUwMEQyXHUwMEQzXHUwMEQ0XHUwMEQ1XHUwMEQ2XHUwMEQ3XHUwMEQ4XHUwMEQ5XHUwMERBXHUwMERCXHUwMERDXHUwMEREXHUwMTdEXHUwMERGXHUwMEUwXHUwMEUxXHUwMEUyXHUwMEUzXHUwMEU0XHUwMEU1XHUwMEU2XHUwMEU3XHUwMEU4XHUwMEU5XHUwMEVBXHUwMEVCXHUwMEVDXHUwMEVEXHUwMEVFXHUwMEVGXHUwMTYxXHUwMEYxXHUwMEYyXHUwMEYzXHUwMEY0XHUwMEY1XHUwMEY2XHUwMEY3XHUwMEY4XHUwMEY5XHUwMEZBXHUwMEZCXHUwMEZDXHUwMEZEXHUwMTdFXHUwMEZGXCJcbiAgfSxcbiAgXCJpYm05MjJcIjogXCJjcDkyMlwiLFxuICBcImNzaWJtOTIyXCI6IFwiY3A5MjJcIixcbiAgXCJjcDEwNDZcIjoge1xuICAgIFwidHlwZVwiOiBcIl9zYmNzXCIsXG4gICAgXCJjaGFyc1wiOiBcIlx1RkU4OFx1MDBEN1x1MDBGN1x1RjhGNlx1RjhGNVx1RjhGNFx1RjhGN1x1RkU3MVx1MDA4OFx1MjVBMFx1MjUwMlx1MjUwMFx1MjUxMFx1MjUwQ1x1MjUxNFx1MjUxOFx1RkU3OVx1RkU3Qlx1RkU3RFx1RkU3Rlx1RkU3N1x1RkU4QVx1RkVGMFx1RkVGM1x1RkVGMlx1RkVDRVx1RkVDRlx1RkVEMFx1RkVGNlx1RkVGOFx1RkVGQVx1RkVGQ1x1MDBBMFx1RjhGQVx1RjhGOVx1RjhGOFx1MDBBNFx1RjhGQlx1RkU4Qlx1RkU5MVx1RkU5N1x1RkU5Qlx1RkU5Rlx1RkVBM1x1MDYwQ1x1MDBBRFx1RkVBN1x1RkVCM1x1MDY2MFx1MDY2MVx1MDY2Mlx1MDY2M1x1MDY2NFx1MDY2NVx1MDY2Nlx1MDY2N1x1MDY2OFx1MDY2OVx1RkVCN1x1MDYxQlx1RkVCQlx1RkVCRlx1RkVDQVx1MDYxRlx1RkVDQlx1MDYyMVx1MDYyMlx1MDYyM1x1MDYyNFx1MDYyNVx1MDYyNlx1MDYyN1x1MDYyOFx1MDYyOVx1MDYyQVx1MDYyQlx1MDYyQ1x1MDYyRFx1MDYyRVx1MDYyRlx1MDYzMFx1MDYzMVx1MDYzMlx1MDYzM1x1MDYzNFx1MDYzNVx1MDYzNlx1MDYzN1x1RkVDN1x1MDYzOVx1MDYzQVx1RkVDQ1x1RkU4Mlx1RkU4NFx1RkU4RVx1RkVEM1x1MDY0MFx1MDY0MVx1MDY0Mlx1MDY0M1x1MDY0NFx1MDY0NVx1MDY0Nlx1MDY0N1x1MDY0OFx1MDY0OVx1MDY0QVx1MDY0Qlx1MDY0Q1x1MDY0RFx1MDY0RVx1MDY0Rlx1MDY1MFx1MDY1MVx1MDY1Mlx1RkVEN1x1RkVEQlx1RkVERlx1RjhGQ1x1RkVGNVx1RkVGN1x1RkVGOVx1RkVGQlx1RkVFM1x1RkVFN1x1RkVFQ1x1RkVFOVx1RkZGRFwiXG4gIH0sXG4gIFwiaWJtMTA0NlwiOiBcImNwMTA0NlwiLFxuICBcImNzaWJtMTA0NlwiOiBcImNwMTA0NlwiLFxuICBcImNwMTEyNFwiOiB7XG4gICAgXCJ0eXBlXCI6IFwiX3NiY3NcIixcbiAgICBcImNoYXJzXCI6IFwiXHUwMDgwXHUwMDgxXHUwMDgyXHUwMDgzXHUwMDg0XHUwMDg1XHUwMDg2XHUwMDg3XHUwMDg4XHUwMDg5XHUwMDhBXHUwMDhCXHUwMDhDXHUwMDhEXHUwMDhFXHUwMDhGXHUwMDkwXHUwMDkxXHUwMDkyXHUwMDkzXHUwMDk0XHUwMDk1XHUwMDk2XHUwMDk3XHUwMDk4XHUwMDk5XHUwMDlBXHUwMDlCXHUwMDlDXHUwMDlEXHUwMDlFXHUwMDlGXHUwMEEwXHUwNDAxXHUwNDAyXHUwNDkwXHUwNDA0XHUwNDA1XHUwNDA2XHUwNDA3XHUwNDA4XHUwNDA5XHUwNDBBXHUwNDBCXHUwNDBDXHUwMEFEXHUwNDBFXHUwNDBGXHUwNDEwXHUwNDExXHUwNDEyXHUwNDEzXHUwNDE0XHUwNDE1XHUwNDE2XHUwNDE3XHUwNDE4XHUwNDE5XHUwNDFBXHUwNDFCXHUwNDFDXHUwNDFEXHUwNDFFXHUwNDFGXHUwNDIwXHUwNDIxXHUwNDIyXHUwNDIzXHUwNDI0XHUwNDI1XHUwNDI2XHUwNDI3XHUwNDI4XHUwNDI5XHUwNDJBXHUwNDJCXHUwNDJDXHUwNDJEXHUwNDJFXHUwNDJGXHUwNDMwXHUwNDMxXHUwNDMyXHUwNDMzXHUwNDM0XHUwNDM1XHUwNDM2XHUwNDM3XHUwNDM4XHUwNDM5XHUwNDNBXHUwNDNCXHUwNDNDXHUwNDNEXHUwNDNFXHUwNDNGXHUwNDQwXHUwNDQxXHUwNDQyXHUwNDQzXHUwNDQ0XHUwNDQ1XHUwNDQ2XHUwNDQ3XHUwNDQ4XHUwNDQ5XHUwNDRBXHUwNDRCXHUwNDRDXHUwNDREXHUwNDRFXHUwNDRGXHUyMTE2XHUwNDUxXHUwNDUyXHUwNDkxXHUwNDU0XHUwNDU1XHUwNDU2XHUwNDU3XHUwNDU4XHUwNDU5XHUwNDVBXHUwNDVCXHUwNDVDXHUwMEE3XHUwNDVFXHUwNDVGXCJcbiAgfSxcbiAgXCJpYm0xMTI0XCI6IFwiY3AxMTI0XCIsXG4gIFwiY3NpYm0xMTI0XCI6IFwiY3AxMTI0XCIsXG4gIFwiY3AxMTI1XCI6IHtcbiAgICBcInR5cGVcIjogXCJfc2Jjc1wiLFxuICAgIFwiY2hhcnNcIjogXCJcdTA0MTBcdTA0MTFcdTA0MTJcdTA0MTNcdTA0MTRcdTA0MTVcdTA0MTZcdTA0MTdcdTA0MThcdTA0MTlcdTA0MUFcdTA0MUJcdTA0MUNcdTA0MURcdTA0MUVcdTA0MUZcdTA0MjBcdTA0MjFcdTA0MjJcdTA0MjNcdTA0MjRcdTA0MjVcdTA0MjZcdTA0MjdcdTA0MjhcdTA0MjlcdTA0MkFcdTA0MkJcdTA0MkNcdTA0MkRcdTA0MkVcdTA0MkZcdTA0MzBcdTA0MzFcdTA0MzJcdTA0MzNcdTA0MzRcdTA0MzVcdTA0MzZcdTA0MzdcdTA0MzhcdTA0MzlcdTA0M0FcdTA0M0JcdTA0M0NcdTA0M0RcdTA0M0VcdTA0M0ZcdTI1OTFcdTI1OTJcdTI1OTNcdTI1MDJcdTI1MjRcdTI1NjFcdTI1NjJcdTI1NTZcdTI1NTVcdTI1NjNcdTI1NTFcdTI1NTdcdTI1NURcdTI1NUNcdTI1NUJcdTI1MTBcdTI1MTRcdTI1MzRcdTI1MkNcdTI1MUNcdTI1MDBcdTI1M0NcdTI1NUVcdTI1NUZcdTI1NUFcdTI1NTRcdTI1NjlcdTI1NjZcdTI1NjBcdTI1NTBcdTI1NkNcdTI1NjdcdTI1NjhcdTI1NjRcdTI1NjVcdTI1NTlcdTI1NThcdTI1NTJcdTI1NTNcdTI1NkJcdTI1NkFcdTI1MThcdTI1MENcdTI1ODhcdTI1ODRcdTI1OENcdTI1OTBcdTI1ODBcdTA0NDBcdTA0NDFcdTA0NDJcdTA0NDNcdTA0NDRcdTA0NDVcdTA0NDZcdTA0NDdcdTA0NDhcdTA0NDlcdTA0NEFcdTA0NEJcdTA0NENcdTA0NERcdTA0NEVcdTA0NEZcdTA0MDFcdTA0NTFcdTA0OTBcdTA0OTFcdTA0MDRcdTA0NTRcdTA0MDZcdTA0NTZcdTA0MDdcdTA0NTdcdTAwQjdcdTIyMUFcdTIxMTZcdTAwQTRcdTI1QTBcdTAwQTBcIlxuICB9LFxuICBcImlibTExMjVcIjogXCJjcDExMjVcIixcbiAgXCJjc2libTExMjVcIjogXCJjcDExMjVcIixcbiAgXCJjcDExMjlcIjoge1xuICAgIFwidHlwZVwiOiBcIl9zYmNzXCIsXG4gICAgXCJjaGFyc1wiOiBcIlx1MDA4MFx1MDA4MVx1MDA4Mlx1MDA4M1x1MDA4NFx1MDA4NVx1MDA4Nlx1MDA4N1x1MDA4OFx1MDA4OVx1MDA4QVx1MDA4Qlx1MDA4Q1x1MDA4RFx1MDA4RVx1MDA4Rlx1MDA5MFx1MDA5MVx1MDA5Mlx1MDA5M1x1MDA5NFx1MDA5NVx1MDA5Nlx1MDA5N1x1MDA5OFx1MDA5OVx1MDA5QVx1MDA5Qlx1MDA5Q1x1MDA5RFx1MDA5RVx1MDA5Rlx1MDBBMFx1MDBBMVx1MDBBMlx1MDBBM1x1MDBBNFx1MDBBNVx1MDBBNlx1MDBBN1x1MDE1M1x1MDBBOVx1MDBBQVx1MDBBQlx1MDBBQ1x1MDBBRFx1MDBBRVx1MDBBRlx1MDBCMFx1MDBCMVx1MDBCMlx1MDBCM1x1MDE3OFx1MDBCNVx1MDBCNlx1MDBCN1x1MDE1Mlx1MDBCOVx1MDBCQVx1MDBCQlx1MDBCQ1x1MDBCRFx1MDBCRVx1MDBCRlx1MDBDMFx1MDBDMVx1MDBDMlx1MDEwMlx1MDBDNFx1MDBDNVx1MDBDNlx1MDBDN1x1MDBDOFx1MDBDOVx1MDBDQVx1MDBDQlx1MDMwMFx1MDBDRFx1MDBDRVx1MDBDRlx1MDExMFx1MDBEMVx1MDMwOVx1MDBEM1x1MDBENFx1MDFBMFx1MDBENlx1MDBEN1x1MDBEOFx1MDBEOVx1MDBEQVx1MDBEQlx1MDBEQ1x1MDFBRlx1MDMwM1x1MDBERlx1MDBFMFx1MDBFMVx1MDBFMlx1MDEwM1x1MDBFNFx1MDBFNVx1MDBFNlx1MDBFN1x1MDBFOFx1MDBFOVx1MDBFQVx1MDBFQlx1MDMwMVx1MDBFRFx1MDBFRVx1MDBFRlx1MDExMVx1MDBGMVx1MDMyM1x1MDBGM1x1MDBGNFx1MDFBMVx1MDBGNlx1MDBGN1x1MDBGOFx1MDBGOVx1MDBGQVx1MDBGQlx1MDBGQ1x1MDFCMFx1MjBBQlx1MDBGRlwiXG4gIH0sXG4gIFwiaWJtMTEyOVwiOiBcImNwMTEyOVwiLFxuICBcImNzaWJtMTEyOVwiOiBcImNwMTEyOVwiLFxuICBcImNwMTEzM1wiOiB7XG4gICAgXCJ0eXBlXCI6IFwiX3NiY3NcIixcbiAgICBcImNoYXJzXCI6IFwiXHUwMDgwXHUwMDgxXHUwMDgyXHUwMDgzXHUwMDg0XHUwMDg1XHUwMDg2XHUwMDg3XHUwMDg4XHUwMDg5XHUwMDhBXHUwMDhCXHUwMDhDXHUwMDhEXHUwMDhFXHUwMDhGXHUwMDkwXHUwMDkxXHUwMDkyXHUwMDkzXHUwMDk0XHUwMDk1XHUwMDk2XHUwMDk3XHUwMDk4XHUwMDk5XHUwMDlBXHUwMDlCXHUwMDlDXHUwMDlEXHUwMDlFXHUwMDlGXHUwMEEwXHUwRTgxXHUwRTgyXHUwRTg0XHUwRTg3XHUwRTg4XHUwRUFBXHUwRThBXHUwRThEXHUwRTk0XHUwRTk1XHUwRTk2XHUwRTk3XHUwRTk5XHUwRTlBXHUwRTlCXHUwRTlDXHUwRTlEXHUwRTlFXHUwRTlGXHUwRUExXHUwRUEyXHUwRUEzXHUwRUE1XHUwRUE3XHUwRUFCXHUwRUFEXHUwRUFFXHVGRkZEXHVGRkZEXHVGRkZEXHUwRUFGXHUwRUIwXHUwRUIyXHUwRUIzXHUwRUI0XHUwRUI1XHUwRUI2XHUwRUI3XHUwRUI4XHUwRUI5XHUwRUJDXHUwRUIxXHUwRUJCXHUwRUJEXHVGRkZEXHVGRkZEXHVGRkZEXHUwRUMwXHUwRUMxXHUwRUMyXHUwRUMzXHUwRUM0XHUwRUM4XHUwRUM5XHUwRUNBXHUwRUNCXHUwRUNDXHUwRUNEXHUwRUM2XHVGRkZEXHUwRURDXHUwRUREXHUyMEFEXHVGRkZEXHVGRkZEXHVGRkZEXHVGRkZEXHVGRkZEXHVGRkZEXHVGRkZEXHVGRkZEXHVGRkZEXHVGRkZEXHVGRkZEXHVGRkZEXHVGRkZEXHVGRkZEXHVGRkZEXHVGRkZEXHUwRUQwXHUwRUQxXHUwRUQyXHUwRUQzXHUwRUQ0XHUwRUQ1XHUwRUQ2XHUwRUQ3XHUwRUQ4XHUwRUQ5XHVGRkZEXHVGRkZEXHUwMEEyXHUwMEFDXHUwMEE2XHVGRkZEXCJcbiAgfSxcbiAgXCJpYm0xMTMzXCI6IFwiY3AxMTMzXCIsXG4gIFwiY3NpYm0xMTMzXCI6IFwiY3AxMTMzXCIsXG4gIFwiY3AxMTYxXCI6IHtcbiAgICBcInR5cGVcIjogXCJfc2Jjc1wiLFxuICAgIFwiY2hhcnNcIjogXCJcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdTBFNDhcdTBFMDFcdTBFMDJcdTBFMDNcdTBFMDRcdTBFMDVcdTBFMDZcdTBFMDdcdTBFMDhcdTBFMDlcdTBFMEFcdTBFMEJcdTBFMENcdTBFMERcdTBFMEVcdTBFMEZcdTBFMTBcdTBFMTFcdTBFMTJcdTBFMTNcdTBFMTRcdTBFMTVcdTBFMTZcdTBFMTdcdTBFMThcdTBFMTlcdTBFMUFcdTBFMUJcdTBFMUNcdTBFMURcdTBFMUVcdTBFMUZcdTBFMjBcdTBFMjFcdTBFMjJcdTBFMjNcdTBFMjRcdTBFMjVcdTBFMjZcdTBFMjdcdTBFMjhcdTBFMjlcdTBFMkFcdTBFMkJcdTBFMkNcdTBFMkRcdTBFMkVcdTBFMkZcdTBFMzBcdTBFMzFcdTBFMzJcdTBFMzNcdTBFMzRcdTBFMzVcdTBFMzZcdTBFMzdcdTBFMzhcdTBFMzlcdTBFM0FcdTBFNDlcdTBFNEFcdTBFNEJcdTIwQUNcdTBFM0ZcdTBFNDBcdTBFNDFcdTBFNDJcdTBFNDNcdTBFNDRcdTBFNDVcdTBFNDZcdTBFNDdcdTBFNDhcdTBFNDlcdTBFNEFcdTBFNEJcdTBFNENcdTBFNERcdTBFNEVcdTBFNEZcdTBFNTBcdTBFNTFcdTBFNTJcdTBFNTNcdTBFNTRcdTBFNTVcdTBFNTZcdTBFNTdcdTBFNThcdTBFNTlcdTBFNUFcdTBFNUJcdTAwQTJcdTAwQUNcdTAwQTZcdTAwQTBcIlxuICB9LFxuICBcImlibTExNjFcIjogXCJjcDExNjFcIixcbiAgXCJjc2libTExNjFcIjogXCJjcDExNjFcIixcbiAgXCJjcDExNjJcIjoge1xuICAgIFwidHlwZVwiOiBcIl9zYmNzXCIsXG4gICAgXCJjaGFyc1wiOiBcIlx1MjBBQ1x1MDA4MVx1MDA4Mlx1MDA4M1x1MDA4NFx1MjAyNlx1MDA4Nlx1MDA4N1x1MDA4OFx1MDA4OVx1MDA4QVx1MDA4Qlx1MDA4Q1x1MDA4RFx1MDA4RVx1MDA4Rlx1MDA5MFx1MjAxOFx1MjAxOVx1MjAxQ1x1MjAxRFx1MjAyMlx1MjAxM1x1MjAxNFx1MDA5OFx1MDA5OVx1MDA5QVx1MDA5Qlx1MDA5Q1x1MDA5RFx1MDA5RVx1MDA5Rlx1MDBBMFx1MEUwMVx1MEUwMlx1MEUwM1x1MEUwNFx1MEUwNVx1MEUwNlx1MEUwN1x1MEUwOFx1MEUwOVx1MEUwQVx1MEUwQlx1MEUwQ1x1MEUwRFx1MEUwRVx1MEUwRlx1MEUxMFx1MEUxMVx1MEUxMlx1MEUxM1x1MEUxNFx1MEUxNVx1MEUxNlx1MEUxN1x1MEUxOFx1MEUxOVx1MEUxQVx1MEUxQlx1MEUxQ1x1MEUxRFx1MEUxRVx1MEUxRlx1MEUyMFx1MEUyMVx1MEUyMlx1MEUyM1x1MEUyNFx1MEUyNVx1MEUyNlx1MEUyN1x1MEUyOFx1MEUyOVx1MEUyQVx1MEUyQlx1MEUyQ1x1MEUyRFx1MEUyRVx1MEUyRlx1MEUzMFx1MEUzMVx1MEUzMlx1MEUzM1x1MEUzNFx1MEUzNVx1MEUzNlx1MEUzN1x1MEUzOFx1MEUzOVx1MEUzQVx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1MEUzRlx1MEU0MFx1MEU0MVx1MEU0Mlx1MEU0M1x1MEU0NFx1MEU0NVx1MEU0Nlx1MEU0N1x1MEU0OFx1MEU0OVx1MEU0QVx1MEU0Qlx1MEU0Q1x1MEU0RFx1MEU0RVx1MEU0Rlx1MEU1MFx1MEU1MVx1MEU1Mlx1MEU1M1x1MEU1NFx1MEU1NVx1MEU1Nlx1MEU1N1x1MEU1OFx1MEU1OVx1MEU1QVx1MEU1Qlx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFwiXG4gIH0sXG4gIFwiaWJtMTE2MlwiOiBcImNwMTE2MlwiLFxuICBcImNzaWJtMTE2MlwiOiBcImNwMTE2MlwiLFxuICBcImNwMTE2M1wiOiB7XG4gICAgXCJ0eXBlXCI6IFwiX3NiY3NcIixcbiAgICBcImNoYXJzXCI6IFwiXHUwMDgwXHUwMDgxXHUwMDgyXHUwMDgzXHUwMDg0XHUwMDg1XHUwMDg2XHUwMDg3XHUwMDg4XHUwMDg5XHUwMDhBXHUwMDhCXHUwMDhDXHUwMDhEXHUwMDhFXHUwMDhGXHUwMDkwXHUwMDkxXHUwMDkyXHUwMDkzXHUwMDk0XHUwMDk1XHUwMDk2XHUwMDk3XHUwMDk4XHUwMDk5XHUwMDlBXHUwMDlCXHUwMDlDXHUwMDlEXHUwMDlFXHUwMDlGXHUwMEEwXHUwMEExXHUwMEEyXHUwMEEzXHUyMEFDXHUwMEE1XHUwMEE2XHUwMEE3XHUwMTUzXHUwMEE5XHUwMEFBXHUwMEFCXHUwMEFDXHUwMEFEXHUwMEFFXHUwMEFGXHUwMEIwXHUwMEIxXHUwMEIyXHUwMEIzXHUwMTc4XHUwMEI1XHUwMEI2XHUwMEI3XHUwMTUyXHUwMEI5XHUwMEJBXHUwMEJCXHUwMEJDXHUwMEJEXHUwMEJFXHUwMEJGXHUwMEMwXHUwMEMxXHUwMEMyXHUwMTAyXHUwMEM0XHUwMEM1XHUwMEM2XHUwMEM3XHUwMEM4XHUwMEM5XHUwMENBXHUwMENCXHUwMzAwXHUwMENEXHUwMENFXHUwMENGXHUwMTEwXHUwMEQxXHUwMzA5XHUwMEQzXHUwMEQ0XHUwMUEwXHUwMEQ2XHUwMEQ3XHUwMEQ4XHUwMEQ5XHUwMERBXHUwMERCXHUwMERDXHUwMUFGXHUwMzAzXHUwMERGXHUwMEUwXHUwMEUxXHUwMEUyXHUwMTAzXHUwMEU0XHUwMEU1XHUwMEU2XHUwMEU3XHUwMEU4XHUwMEU5XHUwMEVBXHUwMEVCXHUwMzAxXHUwMEVEXHUwMEVFXHUwMEVGXHUwMTExXHUwMEYxXHUwMzIzXHUwMEYzXHUwMEY0XHUwMUExXHUwMEY2XHUwMEY3XHUwMEY4XHUwMEY5XHUwMEZBXHUwMEZCXHUwMEZDXHUwMUIwXHUyMEFCXHUwMEZGXCJcbiAgfSxcbiAgXCJpYm0xMTYzXCI6IFwiY3AxMTYzXCIsXG4gIFwiY3NpYm0xMTYzXCI6IFwiY3AxMTYzXCIsXG4gIFwibWFjY3JvYXRpYW5cIjoge1xuICAgIFwidHlwZVwiOiBcIl9zYmNzXCIsXG4gICAgXCJjaGFyc1wiOiBcIlx1MDBDNFx1MDBDNVx1MDBDN1x1MDBDOVx1MDBEMVx1MDBENlx1MDBEQ1x1MDBFMVx1MDBFMFx1MDBFMlx1MDBFNFx1MDBFM1x1MDBFNVx1MDBFN1x1MDBFOVx1MDBFOFx1MDBFQVx1MDBFQlx1MDBFRFx1MDBFQ1x1MDBFRVx1MDBFRlx1MDBGMVx1MDBGM1x1MDBGMlx1MDBGNFx1MDBGNlx1MDBGNVx1MDBGQVx1MDBGOVx1MDBGQlx1MDBGQ1x1MjAyMFx1MDBCMFx1MDBBMlx1MDBBM1x1MDBBN1x1MjAyMlx1MDBCNlx1MDBERlx1MDBBRVx1MDE2MFx1MjEyMlx1MDBCNFx1MDBBOFx1MjI2MFx1MDE3RFx1MDBEOFx1MjIxRVx1MDBCMVx1MjI2NFx1MjI2NVx1MjIwNlx1MDBCNVx1MjIwMlx1MjIxMVx1MjIwRlx1MDE2MVx1MjIyQlx1MDBBQVx1MDBCQVx1MjEyNlx1MDE3RVx1MDBGOFx1MDBCRlx1MDBBMVx1MDBBQ1x1MjIxQVx1MDE5Mlx1MjI0OFx1MDEwNlx1MDBBQlx1MDEwQ1x1MjAyNlx1MDBBMFx1MDBDMFx1MDBDM1x1MDBENVx1MDE1Mlx1MDE1M1x1MDExMFx1MjAxNFx1MjAxQ1x1MjAxRFx1MjAxOFx1MjAxOVx1MDBGN1x1MjVDQVx1RkZGRFx1MDBBOVx1MjA0NFx1MDBBNFx1MjAzOVx1MjAzQVx1MDBDNlx1MDBCQlx1MjAxM1x1MDBCN1x1MjAxQVx1MjAxRVx1MjAzMFx1MDBDMlx1MDEwN1x1MDBDMVx1MDEwRFx1MDBDOFx1MDBDRFx1MDBDRVx1MDBDRlx1MDBDQ1x1MDBEM1x1MDBENFx1MDExMVx1MDBEMlx1MDBEQVx1MDBEQlx1MDBEOVx1MDEzMVx1MDJDNlx1MDJEQ1x1MDBBRlx1MDNDMFx1MDBDQlx1MDJEQVx1MDBCOFx1MDBDQVx1MDBFNlx1MDJDN1wiXG4gIH0sXG4gIFwibWFjY3lyaWxsaWNcIjoge1xuICAgIFwidHlwZVwiOiBcIl9zYmNzXCIsXG4gICAgXCJjaGFyc1wiOiBcIlx1MDQxMFx1MDQxMVx1MDQxMlx1MDQxM1x1MDQxNFx1MDQxNVx1MDQxNlx1MDQxN1x1MDQxOFx1MDQxOVx1MDQxQVx1MDQxQlx1MDQxQ1x1MDQxRFx1MDQxRVx1MDQxRlx1MDQyMFx1MDQyMVx1MDQyMlx1MDQyM1x1MDQyNFx1MDQyNVx1MDQyNlx1MDQyN1x1MDQyOFx1MDQyOVx1MDQyQVx1MDQyQlx1MDQyQ1x1MDQyRFx1MDQyRVx1MDQyRlx1MjAyMFx1MDBCMFx1MDBBMlx1MDBBM1x1MDBBN1x1MjAyMlx1MDBCNlx1MDQwNlx1MDBBRVx1MDBBOVx1MjEyMlx1MDQwMlx1MDQ1Mlx1MjI2MFx1MDQwM1x1MDQ1M1x1MjIxRVx1MDBCMVx1MjI2NFx1MjI2NVx1MDQ1Nlx1MDBCNVx1MjIwMlx1MDQwOFx1MDQwNFx1MDQ1NFx1MDQwN1x1MDQ1N1x1MDQwOVx1MDQ1OVx1MDQwQVx1MDQ1QVx1MDQ1OFx1MDQwNVx1MDBBQ1x1MjIxQVx1MDE5Mlx1MjI0OFx1MjIwNlx1MDBBQlx1MDBCQlx1MjAyNlx1MDBBMFx1MDQwQlx1MDQ1Qlx1MDQwQ1x1MDQ1Q1x1MDQ1NVx1MjAxM1x1MjAxNFx1MjAxQ1x1MjAxRFx1MjAxOFx1MjAxOVx1MDBGN1x1MjAxRVx1MDQwRVx1MDQ1RVx1MDQwRlx1MDQ1Rlx1MjExNlx1MDQwMVx1MDQ1MVx1MDQ0Rlx1MDQzMFx1MDQzMVx1MDQzMlx1MDQzM1x1MDQzNFx1MDQzNVx1MDQzNlx1MDQzN1x1MDQzOFx1MDQzOVx1MDQzQVx1MDQzQlx1MDQzQ1x1MDQzRFx1MDQzRVx1MDQzRlx1MDQ0MFx1MDQ0MVx1MDQ0Mlx1MDQ0M1x1MDQ0NFx1MDQ0NVx1MDQ0Nlx1MDQ0N1x1MDQ0OFx1MDQ0OVx1MDQ0QVx1MDQ0Qlx1MDQ0Q1x1MDQ0RFx1MDQ0RVx1MDBBNFwiXG4gIH0sXG4gIFwibWFjZ3JlZWtcIjoge1xuICAgIFwidHlwZVwiOiBcIl9zYmNzXCIsXG4gICAgXCJjaGFyc1wiOiBcIlx1MDBDNFx1MDBCOVx1MDBCMlx1MDBDOVx1MDBCM1x1MDBENlx1MDBEQ1x1MDM4NVx1MDBFMFx1MDBFMlx1MDBFNFx1MDM4NFx1MDBBOFx1MDBFN1x1MDBFOVx1MDBFOFx1MDBFQVx1MDBFQlx1MDBBM1x1MjEyMlx1MDBFRVx1MDBFRlx1MjAyMlx1MDBCRFx1MjAzMFx1MDBGNFx1MDBGNlx1MDBBNlx1MDBBRFx1MDBGOVx1MDBGQlx1MDBGQ1x1MjAyMFx1MDM5M1x1MDM5NFx1MDM5OFx1MDM5Qlx1MDM5RVx1MDNBMFx1MDBERlx1MDBBRVx1MDBBOVx1MDNBM1x1MDNBQVx1MDBBN1x1MjI2MFx1MDBCMFx1MDM4N1x1MDM5MVx1MDBCMVx1MjI2NFx1MjI2NVx1MDBBNVx1MDM5Mlx1MDM5NVx1MDM5Nlx1MDM5N1x1MDM5OVx1MDM5QVx1MDM5Q1x1MDNBNlx1MDNBQlx1MDNBOFx1MDNBOVx1MDNBQ1x1MDM5RFx1MDBBQ1x1MDM5Rlx1MDNBMVx1MjI0OFx1MDNBNFx1MDBBQlx1MDBCQlx1MjAyNlx1MDBBMFx1MDNBNVx1MDNBN1x1MDM4Nlx1MDM4OFx1MDE1M1x1MjAxM1x1MjAxNVx1MjAxQ1x1MjAxRFx1MjAxOFx1MjAxOVx1MDBGN1x1MDM4OVx1MDM4QVx1MDM4Q1x1MDM4RVx1MDNBRFx1MDNBRVx1MDNBRlx1MDNDQ1x1MDM4Rlx1MDNDRFx1MDNCMVx1MDNCMlx1MDNDOFx1MDNCNFx1MDNCNVx1MDNDNlx1MDNCM1x1MDNCN1x1MDNCOVx1MDNCRVx1MDNCQVx1MDNCQlx1MDNCQ1x1MDNCRFx1MDNCRlx1MDNDMFx1MDNDRVx1MDNDMVx1MDNDM1x1MDNDNFx1MDNCOFx1MDNDOVx1MDNDMlx1MDNDN1x1MDNDNVx1MDNCNlx1MDNDQVx1MDNDQlx1MDM5MFx1MDNCMFx1RkZGRFwiXG4gIH0sXG4gIFwibWFjaWNlbGFuZFwiOiB7XG4gICAgXCJ0eXBlXCI6IFwiX3NiY3NcIixcbiAgICBcImNoYXJzXCI6IFwiXHUwMEM0XHUwMEM1XHUwMEM3XHUwMEM5XHUwMEQxXHUwMEQ2XHUwMERDXHUwMEUxXHUwMEUwXHUwMEUyXHUwMEU0XHUwMEUzXHUwMEU1XHUwMEU3XHUwMEU5XHUwMEU4XHUwMEVBXHUwMEVCXHUwMEVEXHUwMEVDXHUwMEVFXHUwMEVGXHUwMEYxXHUwMEYzXHUwMEYyXHUwMEY0XHUwMEY2XHUwMEY1XHUwMEZBXHUwMEY5XHUwMEZCXHUwMEZDXHUwMEREXHUwMEIwXHUwMEEyXHUwMEEzXHUwMEE3XHUyMDIyXHUwMEI2XHUwMERGXHUwMEFFXHUwMEE5XHUyMTIyXHUwMEI0XHUwMEE4XHUyMjYwXHUwMEM2XHUwMEQ4XHUyMjFFXHUwMEIxXHUyMjY0XHUyMjY1XHUwMEE1XHUwMEI1XHUyMjAyXHUyMjExXHUyMjBGXHUwM0MwXHUyMjJCXHUwMEFBXHUwMEJBXHUyMTI2XHUwMEU2XHUwMEY4XHUwMEJGXHUwMEExXHUwMEFDXHUyMjFBXHUwMTkyXHUyMjQ4XHUyMjA2XHUwMEFCXHUwMEJCXHUyMDI2XHUwMEEwXHUwMEMwXHUwMEMzXHUwMEQ1XHUwMTUyXHUwMTUzXHUyMDEzXHUyMDE0XHUyMDFDXHUyMDFEXHUyMDE4XHUyMDE5XHUwMEY3XHUyNUNBXHUwMEZGXHUwMTc4XHUyMDQ0XHUwMEE0XHUwMEQwXHUwMEYwXHUwMERFXHUwMEZFXHUwMEZEXHUwMEI3XHUyMDFBXHUyMDFFXHUyMDMwXHUwMEMyXHUwMENBXHUwMEMxXHUwMENCXHUwMEM4XHUwMENEXHUwMENFXHUwMENGXHUwMENDXHUwMEQzXHUwMEQ0XHVGRkZEXHUwMEQyXHUwMERBXHUwMERCXHUwMEQ5XHUwMTMxXHUwMkM2XHUwMkRDXHUwMEFGXHUwMkQ4XHUwMkQ5XHUwMkRBXHUwMEI4XHUwMkREXHUwMkRCXHUwMkM3XCJcbiAgfSxcbiAgXCJtYWNyb21hblwiOiB7XG4gICAgXCJ0eXBlXCI6IFwiX3NiY3NcIixcbiAgICBcImNoYXJzXCI6IFwiXHUwMEM0XHUwMEM1XHUwMEM3XHUwMEM5XHUwMEQxXHUwMEQ2XHUwMERDXHUwMEUxXHUwMEUwXHUwMEUyXHUwMEU0XHUwMEUzXHUwMEU1XHUwMEU3XHUwMEU5XHUwMEU4XHUwMEVBXHUwMEVCXHUwMEVEXHUwMEVDXHUwMEVFXHUwMEVGXHUwMEYxXHUwMEYzXHUwMEYyXHUwMEY0XHUwMEY2XHUwMEY1XHUwMEZBXHUwMEY5XHUwMEZCXHUwMEZDXHUyMDIwXHUwMEIwXHUwMEEyXHUwMEEzXHUwMEE3XHUyMDIyXHUwMEI2XHUwMERGXHUwMEFFXHUwMEE5XHUyMTIyXHUwMEI0XHUwMEE4XHUyMjYwXHUwMEM2XHUwMEQ4XHUyMjFFXHUwMEIxXHUyMjY0XHUyMjY1XHUwMEE1XHUwMEI1XHUyMjAyXHUyMjExXHUyMjBGXHUwM0MwXHUyMjJCXHUwMEFBXHUwMEJBXHUyMTI2XHUwMEU2XHUwMEY4XHUwMEJGXHUwMEExXHUwMEFDXHUyMjFBXHUwMTkyXHUyMjQ4XHUyMjA2XHUwMEFCXHUwMEJCXHUyMDI2XHUwMEEwXHUwMEMwXHUwMEMzXHUwMEQ1XHUwMTUyXHUwMTUzXHUyMDEzXHUyMDE0XHUyMDFDXHUyMDFEXHUyMDE4XHUyMDE5XHUwMEY3XHUyNUNBXHUwMEZGXHUwMTc4XHUyMDQ0XHUwMEE0XHUyMDM5XHUyMDNBXHVGQjAxXHVGQjAyXHUyMDIxXHUwMEI3XHUyMDFBXHUyMDFFXHUyMDMwXHUwMEMyXHUwMENBXHUwMEMxXHUwMENCXHUwMEM4XHUwMENEXHUwMENFXHUwMENGXHUwMENDXHUwMEQzXHUwMEQ0XHVGRkZEXHUwMEQyXHUwMERBXHUwMERCXHUwMEQ5XHUwMTMxXHUwMkM2XHUwMkRDXHUwMEFGXHUwMkQ4XHUwMkQ5XHUwMkRBXHUwMEI4XHUwMkREXHUwMkRCXHUwMkM3XCJcbiAgfSxcbiAgXCJtYWNyb21hbmlhXCI6IHtcbiAgICBcInR5cGVcIjogXCJfc2Jjc1wiLFxuICAgIFwiY2hhcnNcIjogXCJcdTAwQzRcdTAwQzVcdTAwQzdcdTAwQzlcdTAwRDFcdTAwRDZcdTAwRENcdTAwRTFcdTAwRTBcdTAwRTJcdTAwRTRcdTAwRTNcdTAwRTVcdTAwRTdcdTAwRTlcdTAwRThcdTAwRUFcdTAwRUJcdTAwRURcdTAwRUNcdTAwRUVcdTAwRUZcdTAwRjFcdTAwRjNcdTAwRjJcdTAwRjRcdTAwRjZcdTAwRjVcdTAwRkFcdTAwRjlcdTAwRkJcdTAwRkNcdTIwMjBcdTAwQjBcdTAwQTJcdTAwQTNcdTAwQTdcdTIwMjJcdTAwQjZcdTAwREZcdTAwQUVcdTAwQTlcdTIxMjJcdTAwQjRcdTAwQThcdTIyNjBcdTAxMDJcdTAxNUVcdTIyMUVcdTAwQjFcdTIyNjRcdTIyNjVcdTAwQTVcdTAwQjVcdTIyMDJcdTIyMTFcdTIyMEZcdTAzQzBcdTIyMkJcdTAwQUFcdTAwQkFcdTIxMjZcdTAxMDNcdTAxNUZcdTAwQkZcdTAwQTFcdTAwQUNcdTIyMUFcdTAxOTJcdTIyNDhcdTIyMDZcdTAwQUJcdTAwQkJcdTIwMjZcdTAwQTBcdTAwQzBcdTAwQzNcdTAwRDVcdTAxNTJcdTAxNTNcdTIwMTNcdTIwMTRcdTIwMUNcdTIwMURcdTIwMThcdTIwMTlcdTAwRjdcdTI1Q0FcdTAwRkZcdTAxNzhcdTIwNDRcdTAwQTRcdTIwMzlcdTIwM0FcdTAxNjJcdTAxNjNcdTIwMjFcdTAwQjdcdTIwMUFcdTIwMUVcdTIwMzBcdTAwQzJcdTAwQ0FcdTAwQzFcdTAwQ0JcdTAwQzhcdTAwQ0RcdTAwQ0VcdTAwQ0ZcdTAwQ0NcdTAwRDNcdTAwRDRcdUZGRkRcdTAwRDJcdTAwREFcdTAwREJcdTAwRDlcdTAxMzFcdTAyQzZcdTAyRENcdTAwQUZcdTAyRDhcdTAyRDlcdTAyREFcdTAwQjhcdTAyRERcdTAyREJcdTAyQzdcIlxuICB9LFxuICBcIm1hY3RoYWlcIjoge1xuICAgIFwidHlwZVwiOiBcIl9zYmNzXCIsXG4gICAgXCJjaGFyc1wiOiBcIlx1MDBBQlx1MDBCQlx1MjAyNlx1Rjg4Q1x1Rjg4Rlx1Rjg5Mlx1Rjg5NVx1Rjg5OFx1Rjg4Qlx1Rjg4RVx1Rjg5MVx1Rjg5NFx1Rjg5N1x1MjAxQ1x1MjAxRFx1Rjg5OVx1RkZGRFx1MjAyMlx1Rjg4NFx1Rjg4OVx1Rjg4NVx1Rjg4Nlx1Rjg4N1x1Rjg4OFx1Rjg4QVx1Rjg4RFx1Rjg5MFx1Rjg5M1x1Rjg5Nlx1MjAxOFx1MjAxOVx1RkZGRFx1MDBBMFx1MEUwMVx1MEUwMlx1MEUwM1x1MEUwNFx1MEUwNVx1MEUwNlx1MEUwN1x1MEUwOFx1MEUwOVx1MEUwQVx1MEUwQlx1MEUwQ1x1MEUwRFx1MEUwRVx1MEUwRlx1MEUxMFx1MEUxMVx1MEUxMlx1MEUxM1x1MEUxNFx1MEUxNVx1MEUxNlx1MEUxN1x1MEUxOFx1MEUxOVx1MEUxQVx1MEUxQlx1MEUxQ1x1MEUxRFx1MEUxRVx1MEUxRlx1MEUyMFx1MEUyMVx1MEUyMlx1MEUyM1x1MEUyNFx1MEUyNVx1MEUyNlx1MEUyN1x1MEUyOFx1MEUyOVx1MEUyQVx1MEUyQlx1MEUyQ1x1MEUyRFx1MEUyRVx1MEUyRlx1MEUzMFx1MEUzMVx1MEUzMlx1MEUzM1x1MEUzNFx1MEUzNVx1MEUzNlx1MEUzN1x1MEUzOFx1MEUzOVx1MEUzQVx1RkVGRlx1MjAwQlx1MjAxM1x1MjAxNFx1MEUzRlx1MEU0MFx1MEU0MVx1MEU0Mlx1MEU0M1x1MEU0NFx1MEU0NVx1MEU0Nlx1MEU0N1x1MEU0OFx1MEU0OVx1MEU0QVx1MEU0Qlx1MEU0Q1x1MEU0RFx1MjEyMlx1MEU0Rlx1MEU1MFx1MEU1MVx1MEU1Mlx1MEU1M1x1MEU1NFx1MEU1NVx1MEU1Nlx1MEU1N1x1MEU1OFx1MEU1OVx1MDBBRVx1MDBBOVx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFwiXG4gIH0sXG4gIFwibWFjdHVya2lzaFwiOiB7XG4gICAgXCJ0eXBlXCI6IFwiX3NiY3NcIixcbiAgICBcImNoYXJzXCI6IFwiXHUwMEM0XHUwMEM1XHUwMEM3XHUwMEM5XHUwMEQxXHUwMEQ2XHUwMERDXHUwMEUxXHUwMEUwXHUwMEUyXHUwMEU0XHUwMEUzXHUwMEU1XHUwMEU3XHUwMEU5XHUwMEU4XHUwMEVBXHUwMEVCXHUwMEVEXHUwMEVDXHUwMEVFXHUwMEVGXHUwMEYxXHUwMEYzXHUwMEYyXHUwMEY0XHUwMEY2XHUwMEY1XHUwMEZBXHUwMEY5XHUwMEZCXHUwMEZDXHUyMDIwXHUwMEIwXHUwMEEyXHUwMEEzXHUwMEE3XHUyMDIyXHUwMEI2XHUwMERGXHUwMEFFXHUwMEE5XHUyMTIyXHUwMEI0XHUwMEE4XHUyMjYwXHUwMEM2XHUwMEQ4XHUyMjFFXHUwMEIxXHUyMjY0XHUyMjY1XHUwMEE1XHUwMEI1XHUyMjAyXHUyMjExXHUyMjBGXHUwM0MwXHUyMjJCXHUwMEFBXHUwMEJBXHUyMTI2XHUwMEU2XHUwMEY4XHUwMEJGXHUwMEExXHUwMEFDXHUyMjFBXHUwMTkyXHUyMjQ4XHUyMjA2XHUwMEFCXHUwMEJCXHUyMDI2XHUwMEEwXHUwMEMwXHUwMEMzXHUwMEQ1XHUwMTUyXHUwMTUzXHUyMDEzXHUyMDE0XHUyMDFDXHUyMDFEXHUyMDE4XHUyMDE5XHUwMEY3XHUyNUNBXHUwMEZGXHUwMTc4XHUwMTFFXHUwMTFGXHUwMTMwXHUwMTMxXHUwMTVFXHUwMTVGXHUyMDIxXHUwMEI3XHUyMDFBXHUyMDFFXHUyMDMwXHUwMEMyXHUwMENBXHUwMEMxXHUwMENCXHUwMEM4XHUwMENEXHUwMENFXHUwMENGXHUwMENDXHUwMEQzXHUwMEQ0XHVGRkZEXHUwMEQyXHUwMERBXHUwMERCXHUwMEQ5XHVGRkZEXHUwMkM2XHUwMkRDXHUwMEFGXHUwMkQ4XHUwMkQ5XHUwMkRBXHUwMEI4XHUwMkREXHUwMkRCXHUwMkM3XCJcbiAgfSxcbiAgXCJtYWN1a3JhaW5lXCI6IHtcbiAgICBcInR5cGVcIjogXCJfc2Jjc1wiLFxuICAgIFwiY2hhcnNcIjogXCJcdTA0MTBcdTA0MTFcdTA0MTJcdTA0MTNcdTA0MTRcdTA0MTVcdTA0MTZcdTA0MTdcdTA0MThcdTA0MTlcdTA0MUFcdTA0MUJcdTA0MUNcdTA0MURcdTA0MUVcdTA0MUZcdTA0MjBcdTA0MjFcdTA0MjJcdTA0MjNcdTA0MjRcdTA0MjVcdTA0MjZcdTA0MjdcdTA0MjhcdTA0MjlcdTA0MkFcdTA0MkJcdTA0MkNcdTA0MkRcdTA0MkVcdTA0MkZcdTIwMjBcdTAwQjBcdTA0OTBcdTAwQTNcdTAwQTdcdTIwMjJcdTAwQjZcdTA0MDZcdTAwQUVcdTAwQTlcdTIxMjJcdTA0MDJcdTA0NTJcdTIyNjBcdTA0MDNcdTA0NTNcdTIyMUVcdTAwQjFcdTIyNjRcdTIyNjVcdTA0NTZcdTAwQjVcdTA0OTFcdTA0MDhcdTA0MDRcdTA0NTRcdTA0MDdcdTA0NTdcdTA0MDlcdTA0NTlcdTA0MEFcdTA0NUFcdTA0NThcdTA0MDVcdTAwQUNcdTIyMUFcdTAxOTJcdTIyNDhcdTIyMDZcdTAwQUJcdTAwQkJcdTIwMjZcdTAwQTBcdTA0MEJcdTA0NUJcdTA0MENcdTA0NUNcdTA0NTVcdTIwMTNcdTIwMTRcdTIwMUNcdTIwMURcdTIwMThcdTIwMTlcdTAwRjdcdTIwMUVcdTA0MEVcdTA0NUVcdTA0MEZcdTA0NUZcdTIxMTZcdTA0MDFcdTA0NTFcdTA0NEZcdTA0MzBcdTA0MzFcdTA0MzJcdTA0MzNcdTA0MzRcdTA0MzVcdTA0MzZcdTA0MzdcdTA0MzhcdTA0MzlcdTA0M0FcdTA0M0JcdTA0M0NcdTA0M0RcdTA0M0VcdTA0M0ZcdTA0NDBcdTA0NDFcdTA0NDJcdTA0NDNcdTA0NDRcdTA0NDVcdTA0NDZcdTA0NDdcdTA0NDhcdTA0NDlcdTA0NEFcdTA0NEJcdTA0NENcdTA0NERcdTA0NEVcdTAwQTRcIlxuICB9LFxuICBcImtvaThyXCI6IHtcbiAgICBcInR5cGVcIjogXCJfc2Jjc1wiLFxuICAgIFwiY2hhcnNcIjogXCJcdTI1MDBcdTI1MDJcdTI1MENcdTI1MTBcdTI1MTRcdTI1MThcdTI1MUNcdTI1MjRcdTI1MkNcdTI1MzRcdTI1M0NcdTI1ODBcdTI1ODRcdTI1ODhcdTI1OENcdTI1OTBcdTI1OTFcdTI1OTJcdTI1OTNcdTIzMjBcdTI1QTBcdTIyMTlcdTIyMUFcdTIyNDhcdTIyNjRcdTIyNjVcdTAwQTBcdTIzMjFcdTAwQjBcdTAwQjJcdTAwQjdcdTAwRjdcdTI1NTBcdTI1NTFcdTI1NTJcdTA0NTFcdTI1NTNcdTI1NTRcdTI1NTVcdTI1NTZcdTI1NTdcdTI1NThcdTI1NTlcdTI1NUFcdTI1NUJcdTI1NUNcdTI1NURcdTI1NUVcdTI1NUZcdTI1NjBcdTI1NjFcdTA0MDFcdTI1NjJcdTI1NjNcdTI1NjRcdTI1NjVcdTI1NjZcdTI1NjdcdTI1NjhcdTI1NjlcdTI1NkFcdTI1NkJcdTI1NkNcdTAwQTlcdTA0NEVcdTA0MzBcdTA0MzFcdTA0NDZcdTA0MzRcdTA0MzVcdTA0NDRcdTA0MzNcdTA0NDVcdTA0MzhcdTA0MzlcdTA0M0FcdTA0M0JcdTA0M0NcdTA0M0RcdTA0M0VcdTA0M0ZcdTA0NEZcdTA0NDBcdTA0NDFcdTA0NDJcdTA0NDNcdTA0MzZcdTA0MzJcdTA0NENcdTA0NEJcdTA0MzdcdTA0NDhcdTA0NERcdTA0NDlcdTA0NDdcdTA0NEFcdTA0MkVcdTA0MTBcdTA0MTFcdTA0MjZcdTA0MTRcdTA0MTVcdTA0MjRcdTA0MTNcdTA0MjVcdTA0MThcdTA0MTlcdTA0MUFcdTA0MUJcdTA0MUNcdTA0MURcdTA0MUVcdTA0MUZcdTA0MkZcdTA0MjBcdTA0MjFcdTA0MjJcdTA0MjNcdTA0MTZcdTA0MTJcdTA0MkNcdTA0MkJcdTA0MTdcdTA0MjhcdTA0MkRcdTA0MjlcdTA0MjdcdTA0MkFcIlxuICB9LFxuICBcImtvaTh1XCI6IHtcbiAgICBcInR5cGVcIjogXCJfc2Jjc1wiLFxuICAgIFwiY2hhcnNcIjogXCJcdTI1MDBcdTI1MDJcdTI1MENcdTI1MTBcdTI1MTRcdTI1MThcdTI1MUNcdTI1MjRcdTI1MkNcdTI1MzRcdTI1M0NcdTI1ODBcdTI1ODRcdTI1ODhcdTI1OENcdTI1OTBcdTI1OTFcdTI1OTJcdTI1OTNcdTIzMjBcdTI1QTBcdTIyMTlcdTIyMUFcdTIyNDhcdTIyNjRcdTIyNjVcdTAwQTBcdTIzMjFcdTAwQjBcdTAwQjJcdTAwQjdcdTAwRjdcdTI1NTBcdTI1NTFcdTI1NTJcdTA0NTFcdTA0NTRcdTI1NTRcdTA0NTZcdTA0NTdcdTI1NTdcdTI1NThcdTI1NTlcdTI1NUFcdTI1NUJcdTA0OTFcdTI1NURcdTI1NUVcdTI1NUZcdTI1NjBcdTI1NjFcdTA0MDFcdTA0MDRcdTI1NjNcdTA0MDZcdTA0MDdcdTI1NjZcdTI1NjdcdTI1NjhcdTI1NjlcdTI1NkFcdTA0OTBcdTI1NkNcdTAwQTlcdTA0NEVcdTA0MzBcdTA0MzFcdTA0NDZcdTA0MzRcdTA0MzVcdTA0NDRcdTA0MzNcdTA0NDVcdTA0MzhcdTA0MzlcdTA0M0FcdTA0M0JcdTA0M0NcdTA0M0RcdTA0M0VcdTA0M0ZcdTA0NEZcdTA0NDBcdTA0NDFcdTA0NDJcdTA0NDNcdTA0MzZcdTA0MzJcdTA0NENcdTA0NEJcdTA0MzdcdTA0NDhcdTA0NERcdTA0NDlcdTA0NDdcdTA0NEFcdTA0MkVcdTA0MTBcdTA0MTFcdTA0MjZcdTA0MTRcdTA0MTVcdTA0MjRcdTA0MTNcdTA0MjVcdTA0MThcdTA0MTlcdTA0MUFcdTA0MUJcdTA0MUNcdTA0MURcdTA0MUVcdTA0MUZcdTA0MkZcdTA0MjBcdTA0MjFcdTA0MjJcdTA0MjNcdTA0MTZcdTA0MTJcdTA0MkNcdTA0MkJcdTA0MTdcdTA0MjhcdTA0MkRcdTA0MjlcdTA0MjdcdTA0MkFcIlxuICB9LFxuICBcImtvaThydVwiOiB7XG4gICAgXCJ0eXBlXCI6IFwiX3NiY3NcIixcbiAgICBcImNoYXJzXCI6IFwiXHUyNTAwXHUyNTAyXHUyNTBDXHUyNTEwXHUyNTE0XHUyNTE4XHUyNTFDXHUyNTI0XHUyNTJDXHUyNTM0XHUyNTNDXHUyNTgwXHUyNTg0XHUyNTg4XHUyNThDXHUyNTkwXHUyNTkxXHUyNTkyXHUyNTkzXHUyMzIwXHUyNUEwXHUyMjE5XHUyMjFBXHUyMjQ4XHUyMjY0XHUyMjY1XHUwMEEwXHUyMzIxXHUwMEIwXHUwMEIyXHUwMEI3XHUwMEY3XHUyNTUwXHUyNTUxXHUyNTUyXHUwNDUxXHUwNDU0XHUyNTU0XHUwNDU2XHUwNDU3XHUyNTU3XHUyNTU4XHUyNTU5XHUyNTVBXHUyNTVCXHUwNDkxXHUwNDVFXHUyNTVFXHUyNTVGXHUyNTYwXHUyNTYxXHUwNDAxXHUwNDA0XHUyNTYzXHUwNDA2XHUwNDA3XHUyNTY2XHUyNTY3XHUyNTY4XHUyNTY5XHUyNTZBXHUwNDkwXHUwNDBFXHUwMEE5XHUwNDRFXHUwNDMwXHUwNDMxXHUwNDQ2XHUwNDM0XHUwNDM1XHUwNDQ0XHUwNDMzXHUwNDQ1XHUwNDM4XHUwNDM5XHUwNDNBXHUwNDNCXHUwNDNDXHUwNDNEXHUwNDNFXHUwNDNGXHUwNDRGXHUwNDQwXHUwNDQxXHUwNDQyXHUwNDQzXHUwNDM2XHUwNDMyXHUwNDRDXHUwNDRCXHUwNDM3XHUwNDQ4XHUwNDREXHUwNDQ5XHUwNDQ3XHUwNDRBXHUwNDJFXHUwNDEwXHUwNDExXHUwNDI2XHUwNDE0XHUwNDE1XHUwNDI0XHUwNDEzXHUwNDI1XHUwNDE4XHUwNDE5XHUwNDFBXHUwNDFCXHUwNDFDXHUwNDFEXHUwNDFFXHUwNDFGXHUwNDJGXHUwNDIwXHUwNDIxXHUwNDIyXHUwNDIzXHUwNDE2XHUwNDEyXHUwNDJDXHUwNDJCXHUwNDE3XHUwNDI4XHUwNDJEXHUwNDI5XHUwNDI3XHUwNDJBXCJcbiAgfSxcbiAgXCJrb2k4dFwiOiB7XG4gICAgXCJ0eXBlXCI6IFwiX3NiY3NcIixcbiAgICBcImNoYXJzXCI6IFwiXHUwNDlCXHUwNDkzXHUyMDFBXHUwNDkyXHUyMDFFXHUyMDI2XHUyMDIwXHUyMDIxXHVGRkZEXHUyMDMwXHUwNEIzXHUyMDM5XHUwNEIyXHUwNEI3XHUwNEI2XHVGRkZEXHUwNDlBXHUyMDE4XHUyMDE5XHUyMDFDXHUyMDFEXHUyMDIyXHUyMDEzXHUyMDE0XHVGRkZEXHUyMTIyXHVGRkZEXHUyMDNBXHVGRkZEXHVGRkZEXHVGRkZEXHVGRkZEXHVGRkZEXHUwNEVGXHUwNEVFXHUwNDUxXHUwMEE0XHUwNEUzXHUwMEE2XHUwMEE3XHVGRkZEXHVGRkZEXHVGRkZEXHUwMEFCXHUwMEFDXHUwMEFEXHUwMEFFXHVGRkZEXHUwMEIwXHUwMEIxXHUwMEIyXHUwNDAxXHVGRkZEXHUwNEUyXHUwMEI2XHUwMEI3XHVGRkZEXHUyMTE2XHVGRkZEXHUwMEJCXHVGRkZEXHVGRkZEXHVGRkZEXHUwMEE5XHUwNDRFXHUwNDMwXHUwNDMxXHUwNDQ2XHUwNDM0XHUwNDM1XHUwNDQ0XHUwNDMzXHUwNDQ1XHUwNDM4XHUwNDM5XHUwNDNBXHUwNDNCXHUwNDNDXHUwNDNEXHUwNDNFXHUwNDNGXHUwNDRGXHUwNDQwXHUwNDQxXHUwNDQyXHUwNDQzXHUwNDM2XHUwNDMyXHUwNDRDXHUwNDRCXHUwNDM3XHUwNDQ4XHUwNDREXHUwNDQ5XHUwNDQ3XHUwNDRBXHUwNDJFXHUwNDEwXHUwNDExXHUwNDI2XHUwNDE0XHUwNDE1XHUwNDI0XHUwNDEzXHUwNDI1XHUwNDE4XHUwNDE5XHUwNDFBXHUwNDFCXHUwNDFDXHUwNDFEXHUwNDFFXHUwNDFGXHUwNDJGXHUwNDIwXHUwNDIxXHUwNDIyXHUwNDIzXHUwNDE2XHUwNDEyXHUwNDJDXHUwNDJCXHUwNDE3XHUwNDI4XHUwNDJEXHUwNDI5XHUwNDI3XHUwNDJBXCJcbiAgfSxcbiAgXCJhcm1zY2lpOFwiOiB7XG4gICAgXCJ0eXBlXCI6IFwiX3NiY3NcIixcbiAgICBcImNoYXJzXCI6IFwiXHUwMDgwXHUwMDgxXHUwMDgyXHUwMDgzXHUwMDg0XHUwMDg1XHUwMDg2XHUwMDg3XHUwMDg4XHUwMDg5XHUwMDhBXHUwMDhCXHUwMDhDXHUwMDhEXHUwMDhFXHUwMDhGXHUwMDkwXHUwMDkxXHUwMDkyXHUwMDkzXHUwMDk0XHUwMDk1XHUwMDk2XHUwMDk3XHUwMDk4XHUwMDk5XHUwMDlBXHUwMDlCXHUwMDlDXHUwMDlEXHUwMDlFXHUwMDlGXHUwMEEwXHVGRkZEXHUwNTg3XHUwNTg5KShcdTAwQkJcdTAwQUJcdTIwMTQuXHUwNTVELC1cdTA1OEFcdTIwMjZcdTA1NUNcdTA1NUJcdTA1NUVcdTA1MzFcdTA1NjFcdTA1MzJcdTA1NjJcdTA1MzNcdTA1NjNcdTA1MzRcdTA1NjRcdTA1MzVcdTA1NjVcdTA1MzZcdTA1NjZcdTA1MzdcdTA1NjdcdTA1MzhcdTA1NjhcdTA1MzlcdTA1NjlcdTA1M0FcdTA1NkFcdTA1M0JcdTA1NkJcdTA1M0NcdTA1NkNcdTA1M0RcdTA1NkRcdTA1M0VcdTA1NkVcdTA1M0ZcdTA1NkZcdTA1NDBcdTA1NzBcdTA1NDFcdTA1NzFcdTA1NDJcdTA1NzJcdTA1NDNcdTA1NzNcdTA1NDRcdTA1NzRcdTA1NDVcdTA1NzVcdTA1NDZcdTA1NzZcdTA1NDdcdTA1NzdcdTA1NDhcdTA1NzhcdTA1NDlcdTA1NzlcdTA1NEFcdTA1N0FcdTA1NEJcdTA1N0JcdTA1NENcdTA1N0NcdTA1NERcdTA1N0RcdTA1NEVcdTA1N0VcdTA1NEZcdTA1N0ZcdTA1NTBcdTA1ODBcdTA1NTFcdTA1ODFcdTA1NTJcdTA1ODJcdTA1NTNcdTA1ODNcdTA1NTRcdTA1ODRcdTA1NTVcdTA1ODVcdTA1NTZcdTA1ODZcdTA1NUFcdUZGRkRcIlxuICB9LFxuICBcInJrMTA0OFwiOiB7XG4gICAgXCJ0eXBlXCI6IFwiX3NiY3NcIixcbiAgICBcImNoYXJzXCI6IFwiXHUwNDAyXHUwNDAzXHUyMDFBXHUwNDUzXHUyMDFFXHUyMDI2XHUyMDIwXHUyMDIxXHUyMEFDXHUyMDMwXHUwNDA5XHUyMDM5XHUwNDBBXHUwNDlBXHUwNEJBXHUwNDBGXHUwNDUyXHUyMDE4XHUyMDE5XHUyMDFDXHUyMDFEXHUyMDIyXHUyMDEzXHUyMDE0XHVGRkZEXHUyMTIyXHUwNDU5XHUyMDNBXHUwNDVBXHUwNDlCXHUwNEJCXHUwNDVGXHUwMEEwXHUwNEIwXHUwNEIxXHUwNEQ4XHUwMEE0XHUwNEU4XHUwMEE2XHUwMEE3XHUwNDAxXHUwMEE5XHUwNDkyXHUwMEFCXHUwMEFDXHUwMEFEXHUwMEFFXHUwNEFFXHUwMEIwXHUwMEIxXHUwNDA2XHUwNDU2XHUwNEU5XHUwMEI1XHUwMEI2XHUwMEI3XHUwNDUxXHUyMTE2XHUwNDkzXHUwMEJCXHUwNEQ5XHUwNEEyXHUwNEEzXHUwNEFGXHUwNDEwXHUwNDExXHUwNDEyXHUwNDEzXHUwNDE0XHUwNDE1XHUwNDE2XHUwNDE3XHUwNDE4XHUwNDE5XHUwNDFBXHUwNDFCXHUwNDFDXHUwNDFEXHUwNDFFXHUwNDFGXHUwNDIwXHUwNDIxXHUwNDIyXHUwNDIzXHUwNDI0XHUwNDI1XHUwNDI2XHUwNDI3XHUwNDI4XHUwNDI5XHUwNDJBXHUwNDJCXHUwNDJDXHUwNDJEXHUwNDJFXHUwNDJGXHUwNDMwXHUwNDMxXHUwNDMyXHUwNDMzXHUwNDM0XHUwNDM1XHUwNDM2XHUwNDM3XHUwNDM4XHUwNDM5XHUwNDNBXHUwNDNCXHUwNDNDXHUwNDNEXHUwNDNFXHUwNDNGXHUwNDQwXHUwNDQxXHUwNDQyXHUwNDQzXHUwNDQ0XHUwNDQ1XHUwNDQ2XHUwNDQ3XHUwNDQ4XHUwNDQ5XHUwNDRBXHUwNDRCXHUwNDRDXHUwNDREXHUwNDRFXHUwNDRGXCJcbiAgfSxcbiAgXCJ0Y3ZuXCI6IHtcbiAgICBcInR5cGVcIjogXCJfc2Jjc1wiLFxuICAgIFwiY2hhcnNcIjogXCJcXHUwMDAwXHUwMERBXHUxRUU0XFx1MDAwM1x1MUVFQVx1MUVFQ1x1MUVFRVxcdTAwMDdcXGJcXHRcXG5cXHUwMDBiXFxmXFxyXFx1MDAwZVxcdTAwMGZcXHUwMDEwXHUxRUU4XHUxRUYwXHUxRUYyXHUxRUY2XHUxRUY4XHUwMEREXHUxRUY0XFx1MDAxOFxcdTAwMTlcXHUwMDFhXFx1MDAxYlxcdTAwMWNcXHUwMDFkXFx1MDAxZVxcdTAwMWYgIVxcXCIjJCUmJygpKissLS4vMDEyMzQ1Njc4OTo7PD0+P0BBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWltcXFxcXV5fYGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6e3x9flx1MDA3Rlx1MDBDMFx1MUVBMlx1MDBDM1x1MDBDMVx1MUVBMFx1MUVCNlx1MUVBQ1x1MDBDOFx1MUVCQVx1MUVCQ1x1MDBDOVx1MUVCOFx1MUVDNlx1MDBDQ1x1MUVDOFx1MDEyOFx1MDBDRFx1MUVDQVx1MDBEMlx1MUVDRVx1MDBENVx1MDBEM1x1MUVDQ1x1MUVEOFx1MUVEQ1x1MUVERVx1MUVFMFx1MUVEQVx1MUVFMlx1MDBEOVx1MUVFNlx1MDE2OFx1MDBBMFx1MDEwMlx1MDBDMlx1MDBDQVx1MDBENFx1MDFBMFx1MDFBRlx1MDExMFx1MDEwM1x1MDBFMlx1MDBFQVx1MDBGNFx1MDFBMVx1MDFCMFx1MDExMVx1MUVCMFx1MDMwMFx1MDMwOVx1MDMwM1x1MDMwMVx1MDMyM1x1MDBFMFx1MUVBM1x1MDBFM1x1MDBFMVx1MUVBMVx1MUVCMlx1MUVCMVx1MUVCM1x1MUVCNVx1MUVBRlx1MUVCNFx1MUVBRVx1MUVBNlx1MUVBOFx1MUVBQVx1MUVBNFx1MUVDMFx1MUVCN1x1MUVBN1x1MUVBOVx1MUVBQlx1MUVBNVx1MUVBRFx1MDBFOFx1MUVDMlx1MUVCQlx1MUVCRFx1MDBFOVx1MUVCOVx1MUVDMVx1MUVDM1x1MUVDNVx1MUVCRlx1MUVDN1x1MDBFQ1x1MUVDOVx1MUVDNFx1MUVCRVx1MUVEMlx1MDEyOVx1MDBFRFx1MUVDQlx1MDBGMlx1MUVENFx1MUVDRlx1MDBGNVx1MDBGM1x1MUVDRFx1MUVEM1x1MUVENVx1MUVEN1x1MUVEMVx1MUVEOVx1MUVERFx1MUVERlx1MUVFMVx1MUVEQlx1MUVFM1x1MDBGOVx1MUVENlx1MUVFN1x1MDE2OVx1MDBGQVx1MUVFNVx1MUVFQlx1MUVFRFx1MUVFRlx1MUVFOVx1MUVGMVx1MUVGM1x1MUVGN1x1MUVGOVx1MDBGRFx1MUVGNVx1MUVEMFwiXG4gIH0sXG4gIFwiZ2VvcmdpYW5hY2FkZW15XCI6IHtcbiAgICBcInR5cGVcIjogXCJfc2Jjc1wiLFxuICAgIFwiY2hhcnNcIjogXCJcdTAwODBcdTAwODFcdTIwMUFcdTAxOTJcdTIwMUVcdTIwMjZcdTIwMjBcdTIwMjFcdTAyQzZcdTIwMzBcdTAxNjBcdTIwMzlcdTAxNTJcdTAwOERcdTAwOEVcdTAwOEZcdTAwOTBcdTIwMThcdTIwMTlcdTIwMUNcdTIwMURcdTIwMjJcdTIwMTNcdTIwMTRcdTAyRENcdTIxMjJcdTAxNjFcdTIwM0FcdTAxNTNcdTAwOURcdTAwOUVcdTAxNzhcdTAwQTBcdTAwQTFcdTAwQTJcdTAwQTNcdTAwQTRcdTAwQTVcdTAwQTZcdTAwQTdcdTAwQThcdTAwQTlcdTAwQUFcdTAwQUJcdTAwQUNcdTAwQURcdTAwQUVcdTAwQUZcdTAwQjBcdTAwQjFcdTAwQjJcdTAwQjNcdTAwQjRcdTAwQjVcdTAwQjZcdTAwQjdcdTAwQjhcdTAwQjlcdTAwQkFcdTAwQkJcdTAwQkNcdTAwQkRcdTAwQkVcdTAwQkZcdTEwRDBcdTEwRDFcdTEwRDJcdTEwRDNcdTEwRDRcdTEwRDVcdTEwRDZcdTEwRDdcdTEwRDhcdTEwRDlcdTEwREFcdTEwREJcdTEwRENcdTEwRERcdTEwREVcdTEwREZcdTEwRTBcdTEwRTFcdTEwRTJcdTEwRTNcdTEwRTRcdTEwRTVcdTEwRTZcdTEwRTdcdTEwRThcdTEwRTlcdTEwRUFcdTEwRUJcdTEwRUNcdTEwRURcdTEwRUVcdTEwRUZcdTEwRjBcdTEwRjFcdTEwRjJcdTEwRjNcdTEwRjRcdTEwRjVcdTEwRjZcdTAwRTdcdTAwRThcdTAwRTlcdTAwRUFcdTAwRUJcdTAwRUNcdTAwRURcdTAwRUVcdTAwRUZcdTAwRjBcdTAwRjFcdTAwRjJcdTAwRjNcdTAwRjRcdTAwRjVcdTAwRjZcdTAwRjdcdTAwRjhcdTAwRjlcdTAwRkFcdTAwRkJcdTAwRkNcdTAwRkRcdTAwRkVcdTAwRkZcIlxuICB9LFxuICBcImdlb3JnaWFucHNcIjoge1xuICAgIFwidHlwZVwiOiBcIl9zYmNzXCIsXG4gICAgXCJjaGFyc1wiOiBcIlx1MDA4MFx1MDA4MVx1MjAxQVx1MDE5Mlx1MjAxRVx1MjAyNlx1MjAyMFx1MjAyMVx1MDJDNlx1MjAzMFx1MDE2MFx1MjAzOVx1MDE1Mlx1MDA4RFx1MDA4RVx1MDA4Rlx1MDA5MFx1MjAxOFx1MjAxOVx1MjAxQ1x1MjAxRFx1MjAyMlx1MjAxM1x1MjAxNFx1MDJEQ1x1MjEyMlx1MDE2MVx1MjAzQVx1MDE1M1x1MDA5RFx1MDA5RVx1MDE3OFx1MDBBMFx1MDBBMVx1MDBBMlx1MDBBM1x1MDBBNFx1MDBBNVx1MDBBNlx1MDBBN1x1MDBBOFx1MDBBOVx1MDBBQVx1MDBBQlx1MDBBQ1x1MDBBRFx1MDBBRVx1MDBBRlx1MDBCMFx1MDBCMVx1MDBCMlx1MDBCM1x1MDBCNFx1MDBCNVx1MDBCNlx1MDBCN1x1MDBCOFx1MDBCOVx1MDBCQVx1MDBCQlx1MDBCQ1x1MDBCRFx1MDBCRVx1MDBCRlx1MTBEMFx1MTBEMVx1MTBEMlx1MTBEM1x1MTBENFx1MTBENVx1MTBENlx1MTBGMVx1MTBEN1x1MTBEOFx1MTBEOVx1MTBEQVx1MTBEQlx1MTBEQ1x1MTBGMlx1MTBERFx1MTBERVx1MTBERlx1MTBFMFx1MTBFMVx1MTBFMlx1MTBGM1x1MTBFM1x1MTBFNFx1MTBFNVx1MTBFNlx1MTBFN1x1MTBFOFx1MTBFOVx1MTBFQVx1MTBFQlx1MTBFQ1x1MTBFRFx1MTBFRVx1MTBGNFx1MTBFRlx1MTBGMFx1MTBGNVx1MDBFNlx1MDBFN1x1MDBFOFx1MDBFOVx1MDBFQVx1MDBFQlx1MDBFQ1x1MDBFRFx1MDBFRVx1MDBFRlx1MDBGMFx1MDBGMVx1MDBGMlx1MDBGM1x1MDBGNFx1MDBGNVx1MDBGNlx1MDBGN1x1MDBGOFx1MDBGOVx1MDBGQVx1MDBGQlx1MDBGQ1x1MDBGRFx1MDBGRVx1MDBGRlwiXG4gIH0sXG4gIFwicHQxNTRcIjoge1xuICAgIFwidHlwZVwiOiBcIl9zYmNzXCIsXG4gICAgXCJjaGFyc1wiOiBcIlx1MDQ5Nlx1MDQ5Mlx1MDRFRVx1MDQ5M1x1MjAxRVx1MjAyNlx1MDRCNlx1MDRBRVx1MDRCMlx1MDRBRlx1MDRBMFx1MDRFMlx1MDRBMlx1MDQ5QVx1MDRCQVx1MDRCOFx1MDQ5N1x1MjAxOFx1MjAxOVx1MjAxQ1x1MjAxRFx1MjAyMlx1MjAxM1x1MjAxNFx1MDRCM1x1MDRCN1x1MDRBMVx1MDRFM1x1MDRBM1x1MDQ5Qlx1MDRCQlx1MDRCOVx1MDBBMFx1MDQwRVx1MDQ1RVx1MDQwOFx1MDRFOFx1MDQ5OFx1MDRCMFx1MDBBN1x1MDQwMVx1MDBBOVx1MDREOFx1MDBBQlx1MDBBQ1x1MDRFRlx1MDBBRVx1MDQ5Q1x1MDBCMFx1MDRCMVx1MDQwNlx1MDQ1Nlx1MDQ5OVx1MDRFOVx1MDBCNlx1MDBCN1x1MDQ1MVx1MjExNlx1MDREOVx1MDBCQlx1MDQ1OFx1MDRBQVx1MDRBQlx1MDQ5RFx1MDQxMFx1MDQxMVx1MDQxMlx1MDQxM1x1MDQxNFx1MDQxNVx1MDQxNlx1MDQxN1x1MDQxOFx1MDQxOVx1MDQxQVx1MDQxQlx1MDQxQ1x1MDQxRFx1MDQxRVx1MDQxRlx1MDQyMFx1MDQyMVx1MDQyMlx1MDQyM1x1MDQyNFx1MDQyNVx1MDQyNlx1MDQyN1x1MDQyOFx1MDQyOVx1MDQyQVx1MDQyQlx1MDQyQ1x1MDQyRFx1MDQyRVx1MDQyRlx1MDQzMFx1MDQzMVx1MDQzMlx1MDQzM1x1MDQzNFx1MDQzNVx1MDQzNlx1MDQzN1x1MDQzOFx1MDQzOVx1MDQzQVx1MDQzQlx1MDQzQ1x1MDQzRFx1MDQzRVx1MDQzRlx1MDQ0MFx1MDQ0MVx1MDQ0Mlx1MDQ0M1x1MDQ0NFx1MDQ0NVx1MDQ0Nlx1MDQ0N1x1MDQ0OFx1MDQ0OVx1MDQ0QVx1MDQ0Qlx1MDQ0Q1x1MDQ0RFx1MDQ0RVx1MDQ0RlwiXG4gIH0sXG4gIFwidmlzY2lpXCI6IHtcbiAgICBcInR5cGVcIjogXCJfc2Jjc1wiLFxuICAgIFwiY2hhcnNcIjogXCJcXHUwMDAwXFx1MDAwMVx1MUVCMlxcdTAwMDNcXHUwMDA0XHUxRUI0XHUxRUFBXFx1MDAwN1xcYlxcdFxcblxcdTAwMGJcXGZcXHJcXHUwMDBlXFx1MDAwZlxcdTAwMTBcXHUwMDExXFx1MDAxMlxcdTAwMTNcdTFFRjZcXHUwMDE1XFx1MDAxNlxcdTAwMTdcXHUwMDE4XHUxRUY4XFx1MDAxYVxcdTAwMWJcXHUwMDFjXFx1MDAxZFx1MUVGNFxcdTAwMWYgIVxcXCIjJCUmJygpKissLS4vMDEyMzQ1Njc4OTo7PD0+P0BBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWltcXFxcXV5fYGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6e3x9flx1MDA3Rlx1MUVBMFx1MUVBRVx1MUVCMFx1MUVCNlx1MUVBNFx1MUVBNlx1MUVBOFx1MUVBQ1x1MUVCQ1x1MUVCOFx1MUVCRVx1MUVDMFx1MUVDMlx1MUVDNFx1MUVDNlx1MUVEMFx1MUVEMlx1MUVENFx1MUVENlx1MUVEOFx1MUVFMlx1MUVEQVx1MUVEQ1x1MUVERVx1MUVDQVx1MUVDRVx1MUVDQ1x1MUVDOFx1MUVFNlx1MDE2OFx1MUVFNFx1MUVGMlx1MDBENVx1MUVBRlx1MUVCMVx1MUVCN1x1MUVBNVx1MUVBN1x1MUVBOVx1MUVBRFx1MUVCRFx1MUVCOVx1MUVCRlx1MUVDMVx1MUVDM1x1MUVDNVx1MUVDN1x1MUVEMVx1MUVEM1x1MUVENVx1MUVEN1x1MUVFMFx1MDFBMFx1MUVEOVx1MUVERFx1MUVERlx1MUVDQlx1MUVGMFx1MUVFOFx1MUVFQVx1MUVFQ1x1MDFBMVx1MUVEQlx1MDFBRlx1MDBDMFx1MDBDMVx1MDBDMlx1MDBDM1x1MUVBMlx1MDEwMlx1MUVCM1x1MUVCNVx1MDBDOFx1MDBDOVx1MDBDQVx1MUVCQVx1MDBDQ1x1MDBDRFx1MDEyOFx1MUVGM1x1MDExMFx1MUVFOVx1MDBEMlx1MDBEM1x1MDBENFx1MUVBMVx1MUVGN1x1MUVFQlx1MUVFRFx1MDBEOVx1MDBEQVx1MUVGOVx1MUVGNVx1MDBERFx1MUVFMVx1MDFCMFx1MDBFMFx1MDBFMVx1MDBFMlx1MDBFM1x1MUVBM1x1MDEwM1x1MUVFRlx1MUVBQlx1MDBFOFx1MDBFOVx1MDBFQVx1MUVCQlx1MDBFQ1x1MDBFRFx1MDEyOVx1MUVDOVx1MDExMVx1MUVGMVx1MDBGMlx1MDBGM1x1MDBGNFx1MDBGNVx1MUVDRlx1MUVDRFx1MUVFNVx1MDBGOVx1MDBGQVx1MDE2OVx1MUVFN1x1MDBGRFx1MUVFM1x1MUVFRVwiXG4gIH0sXG4gIFwiaXNvNjQ2Y25cIjoge1xuICAgIFwidHlwZVwiOiBcIl9zYmNzXCIsXG4gICAgXCJjaGFyc1wiOiBcIlxcdTAwMDBcXHUwMDAxXFx1MDAwMlxcdTAwMDNcXHUwMDA0XFx1MDAwNVxcdTAwMDZcXHUwMDA3XFxiXFx0XFxuXFx1MDAwYlxcZlxcclxcdTAwMGVcXHUwMDBmXFx1MDAxMFxcdTAwMTFcXHUwMDEyXFx1MDAxM1xcdTAwMTRcXHUwMDE1XFx1MDAxNlxcdTAwMTdcXHUwMDE4XFx1MDAxOVxcdTAwMWFcXHUwMDFiXFx1MDAxY1xcdTAwMWRcXHUwMDFlXFx1MDAxZiAhXFxcIiNcdTAwQTUlJicoKSorLC0uLzAxMjM0NTY3ODk6Ozw9Pj9AQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpbXFxcXF1eX2BhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ent8fVx1MjAzRVx1MDA3Rlx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFwiXG4gIH0sXG4gIFwiaXNvNjQ2anBcIjoge1xuICAgIFwidHlwZVwiOiBcIl9zYmNzXCIsXG4gICAgXCJjaGFyc1wiOiBcIlxcdTAwMDBcXHUwMDAxXFx1MDAwMlxcdTAwMDNcXHUwMDA0XFx1MDAwNVxcdTAwMDZcXHUwMDA3XFxiXFx0XFxuXFx1MDAwYlxcZlxcclxcdTAwMGVcXHUwMDBmXFx1MDAxMFxcdTAwMTFcXHUwMDEyXFx1MDAxM1xcdTAwMTRcXHUwMDE1XFx1MDAxNlxcdTAwMTdcXHUwMDE4XFx1MDAxOVxcdTAwMWFcXHUwMDFiXFx1MDAxY1xcdTAwMWRcXHUwMDFlXFx1MDAxZiAhXFxcIiMkJSYnKCkqKywtLi8wMTIzNDU2Nzg5Ojs8PT4/QEFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaW1x1MDBBNV1eX2BhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ent8fVx1MjAzRVx1MDA3Rlx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFx1RkZGRFwiXG4gIH0sXG4gIFwiaHByb21hbjhcIjoge1xuICAgIFwidHlwZVwiOiBcIl9zYmNzXCIsXG4gICAgXCJjaGFyc1wiOiBcIlx1MDA4MFx1MDA4MVx1MDA4Mlx1MDA4M1x1MDA4NFx1MDA4NVx1MDA4Nlx1MDA4N1x1MDA4OFx1MDA4OVx1MDA4QVx1MDA4Qlx1MDA4Q1x1MDA4RFx1MDA4RVx1MDA4Rlx1MDA5MFx1MDA5MVx1MDA5Mlx1MDA5M1x1MDA5NFx1MDA5NVx1MDA5Nlx1MDA5N1x1MDA5OFx1MDA5OVx1MDA5QVx1MDA5Qlx1MDA5Q1x1MDA5RFx1MDA5RVx1MDA5Rlx1MDBBMFx1MDBDMFx1MDBDMlx1MDBDOFx1MDBDQVx1MDBDQlx1MDBDRVx1MDBDRlx1MDBCNFx1MDJDQlx1MDJDNlx1MDBBOFx1MDJEQ1x1MDBEOVx1MDBEQlx1MjBBNFx1MDBBRlx1MDBERFx1MDBGRFx1MDBCMFx1MDBDN1x1MDBFN1x1MDBEMVx1MDBGMVx1MDBBMVx1MDBCRlx1MDBBNFx1MDBBM1x1MDBBNVx1MDBBN1x1MDE5Mlx1MDBBMlx1MDBFMlx1MDBFQVx1MDBGNFx1MDBGQlx1MDBFMVx1MDBFOVx1MDBGM1x1MDBGQVx1MDBFMFx1MDBFOFx1MDBGMlx1MDBGOVx1MDBFNFx1MDBFQlx1MDBGNlx1MDBGQ1x1MDBDNVx1MDBFRVx1MDBEOFx1MDBDNlx1MDBFNVx1MDBFRFx1MDBGOFx1MDBFNlx1MDBDNFx1MDBFQ1x1MDBENlx1MDBEQ1x1MDBDOVx1MDBFRlx1MDBERlx1MDBENFx1MDBDMVx1MDBDM1x1MDBFM1x1MDBEMFx1MDBGMFx1MDBDRFx1MDBDQ1x1MDBEM1x1MDBEMlx1MDBENVx1MDBGNVx1MDE2MFx1MDE2MVx1MDBEQVx1MDE3OFx1MDBGRlx1MDBERVx1MDBGRVx1MDBCN1x1MDBCNVx1MDBCNlx1MDBCRVx1MjAxNFx1MDBCQ1x1MDBCRFx1MDBBQVx1MDBCQVx1MDBBQlx1MjVBMFx1MDBCQlx1MDBCMVx1RkZGRFwiXG4gIH0sXG4gIFwibWFjaW50b3NoXCI6IHtcbiAgICBcInR5cGVcIjogXCJfc2Jjc1wiLFxuICAgIFwiY2hhcnNcIjogXCJcdTAwQzRcdTAwQzVcdTAwQzdcdTAwQzlcdTAwRDFcdTAwRDZcdTAwRENcdTAwRTFcdTAwRTBcdTAwRTJcdTAwRTRcdTAwRTNcdTAwRTVcdTAwRTdcdTAwRTlcdTAwRThcdTAwRUFcdTAwRUJcdTAwRURcdTAwRUNcdTAwRUVcdTAwRUZcdTAwRjFcdTAwRjNcdTAwRjJcdTAwRjRcdTAwRjZcdTAwRjVcdTAwRkFcdTAwRjlcdTAwRkJcdTAwRkNcdTIwMjBcdTAwQjBcdTAwQTJcdTAwQTNcdTAwQTdcdTIwMjJcdTAwQjZcdTAwREZcdTAwQUVcdTAwQTlcdTIxMjJcdTAwQjRcdTAwQThcdTIyNjBcdTAwQzZcdTAwRDhcdTIyMUVcdTAwQjFcdTIyNjRcdTIyNjVcdTAwQTVcdTAwQjVcdTIyMDJcdTIyMTFcdTIyMEZcdTAzQzBcdTIyMkJcdTAwQUFcdTAwQkFcdTIxMjZcdTAwRTZcdTAwRjhcdTAwQkZcdTAwQTFcdTAwQUNcdTIyMUFcdTAxOTJcdTIyNDhcdTIyMDZcdTAwQUJcdTAwQkJcdTIwMjZcdTAwQTBcdTAwQzBcdTAwQzNcdTAwRDVcdTAxNTJcdTAxNTNcdTIwMTNcdTIwMTRcdTIwMUNcdTIwMURcdTIwMThcdTIwMTlcdTAwRjdcdTI1Q0FcdTAwRkZcdTAxNzhcdTIwNDRcdTAwQTRcdTIwMzlcdTIwM0FcdUZCMDFcdUZCMDJcdTIwMjFcdTAwQjdcdTIwMUFcdTIwMUVcdTIwMzBcdTAwQzJcdTAwQ0FcdTAwQzFcdTAwQ0JcdTAwQzhcdTAwQ0RcdTAwQ0VcdTAwQ0ZcdTAwQ0NcdTAwRDNcdTAwRDRcdUZGRkRcdTAwRDJcdTAwREFcdTAwREJcdTAwRDlcdTAxMzFcdTAyQzZcdTAyRENcdTAwQUZcdTAyRDhcdTAyRDlcdTAyREFcdTAwQjhcdTAyRERcdTAyREJcdTAyQzdcIlxuICB9LFxuICBcImFzY2lpXCI6IHtcbiAgICBcInR5cGVcIjogXCJfc2Jjc1wiLFxuICAgIFwiY2hhcnNcIjogXCJcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcdUZGRkRcIlxuICB9LFxuICBcInRpczYyMFwiOiB7XG4gICAgXCJ0eXBlXCI6IFwiX3NiY3NcIixcbiAgICBcImNoYXJzXCI6IFwiXHVGRkZEXHVGRkZEXHVGRkZEXHVGRkZEXHVGRkZEXHVGRkZEXHVGRkZEXHVGRkZEXHVGRkZEXHVGRkZEXHVGRkZEXHVGRkZEXHVGRkZEXHVGRkZEXHVGRkZEXHVGRkZEXHVGRkZEXHVGRkZEXHVGRkZEXHVGRkZEXHVGRkZEXHVGRkZEXHVGRkZEXHVGRkZEXHVGRkZEXHVGRkZEXHVGRkZEXHVGRkZEXHVGRkZEXHVGRkZEXHVGRkZEXHVGRkZEXHVGRkZEXHUwRTAxXHUwRTAyXHUwRTAzXHUwRTA0XHUwRTA1XHUwRTA2XHUwRTA3XHUwRTA4XHUwRTA5XHUwRTBBXHUwRTBCXHUwRTBDXHUwRTBEXHUwRTBFXHUwRTBGXHUwRTEwXHUwRTExXHUwRTEyXHUwRTEzXHUwRTE0XHUwRTE1XHUwRTE2XHUwRTE3XHUwRTE4XHUwRTE5XHUwRTFBXHUwRTFCXHUwRTFDXHUwRTFEXHUwRTFFXHUwRTFGXHUwRTIwXHUwRTIxXHUwRTIyXHUwRTIzXHUwRTI0XHUwRTI1XHUwRTI2XHUwRTI3XHUwRTI4XHUwRTI5XHUwRTJBXHUwRTJCXHUwRTJDXHUwRTJEXHUwRTJFXHUwRTJGXHUwRTMwXHUwRTMxXHUwRTMyXHUwRTMzXHUwRTM0XHUwRTM1XHUwRTM2XHUwRTM3XHUwRTM4XHUwRTM5XHUwRTNBXHVGRkZEXHVGRkZEXHVGRkZEXHVGRkZEXHUwRTNGXHUwRTQwXHUwRTQxXHUwRTQyXHUwRTQzXHUwRTQ0XHUwRTQ1XHUwRTQ2XHUwRTQ3XHUwRTQ4XHUwRTQ5XHUwRTRBXHUwRTRCXHUwRTRDXHUwRTREXHUwRTRFXHUwRTRGXHUwRTUwXHUwRTUxXHUwRTUyXHUwRTUzXHUwRTU0XHUwRTU1XHUwRTU2XHUwRTU3XHUwRTU4XHUwRTU5XHUwRTVBXHUwRTVCXHVGRkZEXHVGRkZEXHVGRkZEXHVGRkZEXCJcbiAgfVxufSIsICJcInVzZSBzdHJpY3RcIjtcbnZhciBCdWZmZXIgPSByZXF1aXJlKFwic2FmZXItYnVmZmVyXCIpLkJ1ZmZlcjtcblxuLy8gTXVsdGlieXRlIGNvZGVjLiBJbiB0aGlzIHNjaGVtZSwgYSBjaGFyYWN0ZXIgaXMgcmVwcmVzZW50ZWQgYnkgMSBvciBtb3JlIGJ5dGVzLlxuLy8gT3VyIGNvZGVjIHN1cHBvcnRzIFVURi0xNiBzdXJyb2dhdGVzLCBleHRlbnNpb25zIGZvciBHQjE4MDMwIGFuZCB1bmljb2RlIHNlcXVlbmNlcy5cbi8vIFRvIHNhdmUgbWVtb3J5IGFuZCBsb2FkaW5nIHRpbWUsIHdlIHJlYWQgdGFibGUgZmlsZXMgb25seSB3aGVuIHJlcXVlc3RlZC5cblxuZXhwb3J0cy5fZGJjcyA9IERCQ1NDb2RlYztcblxudmFyIFVOQVNTSUdORUQgPSAtMSxcbiAgICBHQjE4MDMwX0NPREUgPSAtMixcbiAgICBTRVFfU1RBUlQgID0gLTEwLFxuICAgIE5PREVfU1RBUlQgPSAtMTAwMCxcbiAgICBVTkFTU0lHTkVEX05PREUgPSBuZXcgQXJyYXkoMHgxMDApLFxuICAgIERFRl9DSEFSID0gLTE7XG5cbmZvciAodmFyIGkgPSAwOyBpIDwgMHgxMDA7IGkrKylcbiAgICBVTkFTU0lHTkVEX05PREVbaV0gPSBVTkFTU0lHTkVEO1xuXG5cbi8vIENsYXNzIERCQ1NDb2RlYyByZWFkcyBhbmQgaW5pdGlhbGl6ZXMgbWFwcGluZyB0YWJsZXMuXG5mdW5jdGlvbiBEQkNTQ29kZWMoY29kZWNPcHRpb25zLCBpY29udikge1xuICAgIHRoaXMuZW5jb2RpbmdOYW1lID0gY29kZWNPcHRpb25zLmVuY29kaW5nTmFtZTtcbiAgICBpZiAoIWNvZGVjT3B0aW9ucylcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiREJDUyBjb2RlYyBpcyBjYWxsZWQgd2l0aG91dCB0aGUgZGF0YS5cIilcbiAgICBpZiAoIWNvZGVjT3B0aW9ucy50YWJsZSlcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiRW5jb2RpbmcgJ1wiICsgdGhpcy5lbmNvZGluZ05hbWUgKyBcIicgaGFzIG5vIGRhdGEuXCIpO1xuXG4gICAgLy8gTG9hZCB0YWJsZXMuXG4gICAgdmFyIG1hcHBpbmdUYWJsZSA9IGNvZGVjT3B0aW9ucy50YWJsZSgpO1xuXG5cbiAgICAvLyBEZWNvZGUgdGFibGVzOiBNQkNTIC0+IFVuaWNvZGUuXG5cbiAgICAvLyBkZWNvZGVUYWJsZXMgaXMgYSB0cmllLCBlbmNvZGVkIGFzIGFuIGFycmF5IG9mIGFycmF5cyBvZiBpbnRlZ2Vycy4gSW50ZXJuYWwgYXJyYXlzIGFyZSB0cmllIG5vZGVzIGFuZCBhbGwgaGF2ZSBsZW4gPSAyNTYuXG4gICAgLy8gVHJpZSByb290IGlzIGRlY29kZVRhYmxlc1swXS5cbiAgICAvLyBWYWx1ZXM6ID49ICAwIC0+IHVuaWNvZGUgY2hhcmFjdGVyIGNvZGUuIGNhbiBiZSA+IDB4RkZGRlxuICAgIC8vICAgICAgICAgPT0gVU5BU1NJR05FRCAtPiB1bmtub3duL3VuYXNzaWduZWQgc2VxdWVuY2UuXG4gICAgLy8gICAgICAgICA9PSBHQjE4MDMwX0NPREUgLT4gdGhpcyBpcyB0aGUgZW5kIG9mIGEgR0IxODAzMCA0LWJ5dGUgc2VxdWVuY2UuXG4gICAgLy8gICAgICAgICA8PSBOT0RFX1NUQVJUIC0+IGluZGV4IG9mIHRoZSBuZXh0IG5vZGUgaW4gb3VyIHRyaWUgdG8gcHJvY2VzcyBuZXh0IGJ5dGUuXG4gICAgLy8gICAgICAgICA8PSBTRVFfU1RBUlQgIC0+IGluZGV4IG9mIHRoZSBzdGFydCBvZiBhIGNoYXJhY3RlciBjb2RlIHNlcXVlbmNlLCBpbiBkZWNvZGVUYWJsZVNlcS5cbiAgICB0aGlzLmRlY29kZVRhYmxlcyA9IFtdO1xuICAgIHRoaXMuZGVjb2RlVGFibGVzWzBdID0gVU5BU1NJR05FRF9OT0RFLnNsaWNlKDApOyAvLyBDcmVhdGUgcm9vdCBub2RlLlxuXG4gICAgLy8gU29tZXRpbWVzIGEgTUJDUyBjaGFyIGNvcnJlc3BvbmRzIHRvIGEgc2VxdWVuY2Ugb2YgdW5pY29kZSBjaGFycy4gV2Ugc3RvcmUgdGhlbSBhcyBhcnJheXMgb2YgaW50ZWdlcnMgaGVyZS4gXG4gICAgdGhpcy5kZWNvZGVUYWJsZVNlcSA9IFtdO1xuXG4gICAgLy8gQWN0dWFsIG1hcHBpbmcgdGFibGVzIGNvbnNpc3Qgb2YgY2h1bmtzLiBVc2UgdGhlbSB0byBmaWxsIHVwIGRlY29kZSB0YWJsZXMuXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBtYXBwaW5nVGFibGUubGVuZ3RoOyBpKyspXG4gICAgICAgIHRoaXMuX2FkZERlY29kZUNodW5rKG1hcHBpbmdUYWJsZVtpXSk7XG5cbiAgICAvLyBMb2FkICYgY3JlYXRlIEdCMTgwMzAgdGFibGVzIHdoZW4gbmVlZGVkLlxuICAgIGlmICh0eXBlb2YgY29kZWNPcHRpb25zLmdiMTgwMzAgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgdGhpcy5nYjE4MDMwID0gY29kZWNPcHRpb25zLmdiMTgwMzAoKTsgLy8gTG9hZCBHQjE4MDMwIHJhbmdlcy5cblxuICAgICAgICAvLyBBZGQgR0IxODAzMCBjb21tb24gZGVjb2RlIG5vZGVzLlxuICAgICAgICB2YXIgY29tbW9uVGhpcmRCeXRlTm9kZUlkeCA9IHRoaXMuZGVjb2RlVGFibGVzLmxlbmd0aDtcbiAgICAgICAgdGhpcy5kZWNvZGVUYWJsZXMucHVzaChVTkFTU0lHTkVEX05PREUuc2xpY2UoMCkpO1xuXG4gICAgICAgIHZhciBjb21tb25Gb3VydGhCeXRlTm9kZUlkeCA9IHRoaXMuZGVjb2RlVGFibGVzLmxlbmd0aDtcbiAgICAgICAgdGhpcy5kZWNvZGVUYWJsZXMucHVzaChVTkFTU0lHTkVEX05PREUuc2xpY2UoMCkpO1xuXG4gICAgICAgIC8vIEZpbGwgb3V0IHRoZSB0cmVlXG4gICAgICAgIHZhciBmaXJzdEJ5dGVOb2RlID0gdGhpcy5kZWNvZGVUYWJsZXNbMF07XG4gICAgICAgIGZvciAodmFyIGkgPSAweDgxOyBpIDw9IDB4RkU7IGkrKykge1xuICAgICAgICAgICAgdmFyIHNlY29uZEJ5dGVOb2RlID0gdGhpcy5kZWNvZGVUYWJsZXNbTk9ERV9TVEFSVCAtIGZpcnN0Qnl0ZU5vZGVbaV1dO1xuICAgICAgICAgICAgZm9yICh2YXIgaiA9IDB4MzA7IGogPD0gMHgzOTsgaisrKSB7XG4gICAgICAgICAgICAgICAgaWYgKHNlY29uZEJ5dGVOb2RlW2pdID09PSBVTkFTU0lHTkVEKSB7XG4gICAgICAgICAgICAgICAgICAgIHNlY29uZEJ5dGVOb2RlW2pdID0gTk9ERV9TVEFSVCAtIGNvbW1vblRoaXJkQnl0ZU5vZGVJZHg7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChzZWNvbmRCeXRlTm9kZVtqXSA+IE5PREVfU1RBUlQpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiZ2IxODAzMCBkZWNvZGUgdGFibGVzIGNvbmZsaWN0IGF0IGJ5dGUgMlwiKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB2YXIgdGhpcmRCeXRlTm9kZSA9IHRoaXMuZGVjb2RlVGFibGVzW05PREVfU1RBUlQgLSBzZWNvbmRCeXRlTm9kZVtqXV07XG4gICAgICAgICAgICAgICAgZm9yICh2YXIgayA9IDB4ODE7IGsgPD0gMHhGRTsgaysrKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlyZEJ5dGVOb2RlW2tdID09PSBVTkFTU0lHTkVEKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlyZEJ5dGVOb2RlW2tdID0gTk9ERV9TVEFSVCAtIGNvbW1vbkZvdXJ0aEJ5dGVOb2RlSWR4O1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXJkQnl0ZU5vZGVba10gPT09IE5PREVfU1RBUlQgLSBjb21tb25Gb3VydGhCeXRlTm9kZUlkeCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcmRCeXRlTm9kZVtrXSA+IE5PREVfU1RBUlQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcImdiMTgwMzAgZGVjb2RlIHRhYmxlcyBjb25mbGljdCBhdCBieXRlIDNcIik7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICB2YXIgZm91cnRoQnl0ZU5vZGUgPSB0aGlzLmRlY29kZVRhYmxlc1tOT0RFX1NUQVJUIC0gdGhpcmRCeXRlTm9kZVtrXV07XG4gICAgICAgICAgICAgICAgICAgIGZvciAodmFyIGwgPSAweDMwOyBsIDw9IDB4Mzk7IGwrKykge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGZvdXJ0aEJ5dGVOb2RlW2xdID09PSBVTkFTU0lHTkVEKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvdXJ0aEJ5dGVOb2RlW2xdID0gR0IxODAzMF9DT0RFO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5kZWZhdWx0Q2hhclVuaWNvZGUgPSBpY29udi5kZWZhdWx0Q2hhclVuaWNvZGU7XG5cbiAgICBcbiAgICAvLyBFbmNvZGUgdGFibGVzOiBVbmljb2RlIC0+IERCQ1MuXG5cbiAgICAvLyBgZW5jb2RlVGFibGVgIGlzIGFycmF5IG1hcHBpbmcgZnJvbSB1bmljb2RlIGNoYXIgdG8gZW5jb2RlZCBjaGFyLiBBbGwgaXRzIHZhbHVlcyBhcmUgaW50ZWdlcnMgZm9yIHBlcmZvcm1hbmNlLlxuICAgIC8vIEJlY2F1c2UgaXQgY2FuIGJlIHNwYXJzZSwgaXQgaXMgcmVwcmVzZW50ZWQgYXMgYXJyYXkgb2YgYnVja2V0cyBieSAyNTYgY2hhcnMgZWFjaC4gQnVja2V0IGNhbiBiZSBudWxsLlxuICAgIC8vIFZhbHVlczogPj0gIDAgLT4gaXQgaXMgYSBub3JtYWwgY2hhci4gV3JpdGUgdGhlIHZhbHVlIChpZiA8PTI1NiB0aGVuIDEgYnl0ZSwgaWYgPD02NTUzNiB0aGVuIDIgYnl0ZXMsIGV0Yy4pLlxuICAgIC8vICAgICAgICAgPT0gVU5BU1NJR05FRCAtPiBubyBjb252ZXJzaW9uIGZvdW5kLiBPdXRwdXQgYSBkZWZhdWx0IGNoYXIuXG4gICAgLy8gICAgICAgICA8PSBTRVFfU1RBUlQgIC0+IGl0J3MgYW4gaW5kZXggaW4gZW5jb2RlVGFibGVTZXEsIHNlZSBiZWxvdy4gVGhlIGNoYXJhY3RlciBzdGFydHMgYSBzZXF1ZW5jZS5cbiAgICB0aGlzLmVuY29kZVRhYmxlID0gW107XG4gICAgXG4gICAgLy8gYGVuY29kZVRhYmxlU2VxYCBpcyB1c2VkIHdoZW4gYSBzZXF1ZW5jZSBvZiB1bmljb2RlIGNoYXJhY3RlcnMgaXMgZW5jb2RlZCBhcyBhIHNpbmdsZSBjb2RlLiBXZSB1c2UgYSB0cmVlIG9mXG4gICAgLy8gb2JqZWN0cyB3aGVyZSBrZXlzIGNvcnJlc3BvbmQgdG8gY2hhcmFjdGVycyBpbiBzZXF1ZW5jZSBhbmQgbGVhZnMgYXJlIHRoZSBlbmNvZGVkIGRiY3MgdmFsdWVzLiBBIHNwZWNpYWwgREVGX0NIQVIga2V5XG4gICAgLy8gbWVhbnMgZW5kIG9mIHNlcXVlbmNlIChuZWVkZWQgd2hlbiBvbmUgc2VxdWVuY2UgaXMgYSBzdHJpY3Qgc3Vic2VxdWVuY2Ugb2YgYW5vdGhlcikuXG4gICAgLy8gT2JqZWN0cyBhcmUga2VwdCBzZXBhcmF0ZWx5IGZyb20gZW5jb2RlVGFibGUgdG8gaW5jcmVhc2UgcGVyZm9ybWFuY2UuXG4gICAgdGhpcy5lbmNvZGVUYWJsZVNlcSA9IFtdO1xuXG4gICAgLy8gU29tZSBjaGFycyBjYW4gYmUgZGVjb2RlZCwgYnV0IG5lZWQgbm90IGJlIGVuY29kZWQuXG4gICAgdmFyIHNraXBFbmNvZGVDaGFycyA9IHt9O1xuICAgIGlmIChjb2RlY09wdGlvbnMuZW5jb2RlU2tpcFZhbHMpXG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY29kZWNPcHRpb25zLmVuY29kZVNraXBWYWxzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICB2YXIgdmFsID0gY29kZWNPcHRpb25zLmVuY29kZVNraXBWYWxzW2ldO1xuICAgICAgICAgICAgaWYgKHR5cGVvZiB2YWwgPT09ICdudW1iZXInKVxuICAgICAgICAgICAgICAgIHNraXBFbmNvZGVDaGFyc1t2YWxdID0gdHJ1ZTtcbiAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICBmb3IgKHZhciBqID0gdmFsLmZyb207IGogPD0gdmFsLnRvOyBqKyspXG4gICAgICAgICAgICAgICAgICAgIHNraXBFbmNvZGVDaGFyc1tqXSA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgLy8gVXNlIGRlY29kZSB0cmllIHRvIHJlY3Vyc2l2ZWx5IGZpbGwgb3V0IGVuY29kZSB0YWJsZXMuXG4gICAgdGhpcy5fZmlsbEVuY29kZVRhYmxlKDAsIDAsIHNraXBFbmNvZGVDaGFycyk7XG5cbiAgICAvLyBBZGQgbW9yZSBlbmNvZGluZyBwYWlycyB3aGVuIG5lZWRlZC5cbiAgICBpZiAoY29kZWNPcHRpb25zLmVuY29kZUFkZCkge1xuICAgICAgICBmb3IgKHZhciB1Q2hhciBpbiBjb2RlY09wdGlvbnMuZW5jb2RlQWRkKVxuICAgICAgICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChjb2RlY09wdGlvbnMuZW5jb2RlQWRkLCB1Q2hhcikpXG4gICAgICAgICAgICAgICAgdGhpcy5fc2V0RW5jb2RlQ2hhcih1Q2hhci5jaGFyQ29kZUF0KDApLCBjb2RlY09wdGlvbnMuZW5jb2RlQWRkW3VDaGFyXSk7XG4gICAgfVxuXG4gICAgdGhpcy5kZWZDaGFyU0IgID0gdGhpcy5lbmNvZGVUYWJsZVswXVtpY29udi5kZWZhdWx0Q2hhclNpbmdsZUJ5dGUuY2hhckNvZGVBdCgwKV07XG4gICAgaWYgKHRoaXMuZGVmQ2hhclNCID09PSBVTkFTU0lHTkVEKSB0aGlzLmRlZkNoYXJTQiA9IHRoaXMuZW5jb2RlVGFibGVbMF1bJz8nXTtcbiAgICBpZiAodGhpcy5kZWZDaGFyU0IgPT09IFVOQVNTSUdORUQpIHRoaXMuZGVmQ2hhclNCID0gXCI/XCIuY2hhckNvZGVBdCgwKTtcbn1cblxuREJDU0NvZGVjLnByb3RvdHlwZS5lbmNvZGVyID0gREJDU0VuY29kZXI7XG5EQkNTQ29kZWMucHJvdG90eXBlLmRlY29kZXIgPSBEQkNTRGVjb2RlcjtcblxuLy8gRGVjb2RlciBoZWxwZXJzXG5EQkNTQ29kZWMucHJvdG90eXBlLl9nZXREZWNvZGVUcmllTm9kZSA9IGZ1bmN0aW9uKGFkZHIpIHtcbiAgICB2YXIgYnl0ZXMgPSBbXTtcbiAgICBmb3IgKDsgYWRkciA+IDA7IGFkZHIgPj4+PSA4KVxuICAgICAgICBieXRlcy5wdXNoKGFkZHIgJiAweEZGKTtcbiAgICBpZiAoYnl0ZXMubGVuZ3RoID09IDApXG4gICAgICAgIGJ5dGVzLnB1c2goMCk7XG5cbiAgICB2YXIgbm9kZSA9IHRoaXMuZGVjb2RlVGFibGVzWzBdO1xuICAgIGZvciAodmFyIGkgPSBieXRlcy5sZW5ndGgtMTsgaSA+IDA7IGktLSkgeyAvLyBUcmF2ZXJzZSBub2RlcyBkZWVwZXIgaW50byB0aGUgdHJpZS5cbiAgICAgICAgdmFyIHZhbCA9IG5vZGVbYnl0ZXNbaV1dO1xuXG4gICAgICAgIGlmICh2YWwgPT0gVU5BU1NJR05FRCkgeyAvLyBDcmVhdGUgbmV3IG5vZGUuXG4gICAgICAgICAgICBub2RlW2J5dGVzW2ldXSA9IE5PREVfU1RBUlQgLSB0aGlzLmRlY29kZVRhYmxlcy5sZW5ndGg7XG4gICAgICAgICAgICB0aGlzLmRlY29kZVRhYmxlcy5wdXNoKG5vZGUgPSBVTkFTU0lHTkVEX05PREUuc2xpY2UoMCkpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKHZhbCA8PSBOT0RFX1NUQVJUKSB7IC8vIEV4aXN0aW5nIG5vZGUuXG4gICAgICAgICAgICBub2RlID0gdGhpcy5kZWNvZGVUYWJsZXNbTk9ERV9TVEFSVCAtIHZhbF07XG4gICAgICAgIH1cbiAgICAgICAgZWxzZVxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiT3ZlcndyaXRlIGJ5dGUgaW4gXCIgKyB0aGlzLmVuY29kaW5nTmFtZSArIFwiLCBhZGRyOiBcIiArIGFkZHIudG9TdHJpbmcoMTYpKTtcbiAgICB9XG4gICAgcmV0dXJuIG5vZGU7XG59XG5cblxuREJDU0NvZGVjLnByb3RvdHlwZS5fYWRkRGVjb2RlQ2h1bmsgPSBmdW5jdGlvbihjaHVuaykge1xuICAgIC8vIEZpcnN0IGVsZW1lbnQgb2YgY2h1bmsgaXMgdGhlIGhleCBtYmNzIGNvZGUgd2hlcmUgd2Ugc3RhcnQuXG4gICAgdmFyIGN1ckFkZHIgPSBwYXJzZUludChjaHVua1swXSwgMTYpO1xuXG4gICAgLy8gQ2hvb3NlIHRoZSBkZWNvZGluZyBub2RlIHdoZXJlIHdlJ2xsIHdyaXRlIG91ciBjaGFycy5cbiAgICB2YXIgd3JpdGVUYWJsZSA9IHRoaXMuX2dldERlY29kZVRyaWVOb2RlKGN1ckFkZHIpO1xuICAgIGN1ckFkZHIgPSBjdXJBZGRyICYgMHhGRjtcblxuICAgIC8vIFdyaXRlIGFsbCBvdGhlciBlbGVtZW50cyBvZiB0aGUgY2h1bmsgdG8gdGhlIHRhYmxlLlxuICAgIGZvciAodmFyIGsgPSAxOyBrIDwgY2h1bmsubGVuZ3RoOyBrKyspIHtcbiAgICAgICAgdmFyIHBhcnQgPSBjaHVua1trXTtcbiAgICAgICAgaWYgKHR5cGVvZiBwYXJ0ID09PSBcInN0cmluZ1wiKSB7IC8vIFN0cmluZywgd3JpdGUgYXMtaXMuXG4gICAgICAgICAgICBmb3IgKHZhciBsID0gMDsgbCA8IHBhcnQubGVuZ3RoOykge1xuICAgICAgICAgICAgICAgIHZhciBjb2RlID0gcGFydC5jaGFyQ29kZUF0KGwrKyk7XG4gICAgICAgICAgICAgICAgaWYgKDB4RDgwMCA8PSBjb2RlICYmIGNvZGUgPCAweERDMDApIHsgLy8gRGVjb2RlIHN1cnJvZ2F0ZVxuICAgICAgICAgICAgICAgICAgICB2YXIgY29kZVRyYWlsID0gcGFydC5jaGFyQ29kZUF0KGwrKyk7XG4gICAgICAgICAgICAgICAgICAgIGlmICgweERDMDAgPD0gY29kZVRyYWlsICYmIGNvZGVUcmFpbCA8IDB4RTAwMClcbiAgICAgICAgICAgICAgICAgICAgICAgIHdyaXRlVGFibGVbY3VyQWRkcisrXSA9IDB4MTAwMDAgKyAoY29kZSAtIDB4RDgwMCkgKiAweDQwMCArIChjb2RlVHJhaWwgLSAweERDMDApO1xuICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJJbmNvcnJlY3Qgc3Vycm9nYXRlIHBhaXIgaW4gXCIgICsgdGhpcy5lbmNvZGluZ05hbWUgKyBcIiBhdCBjaHVuayBcIiArIGNodW5rWzBdKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAoMHgwRkYwIDwgY29kZSAmJiBjb2RlIDw9IDB4MEZGRikgeyAvLyBDaGFyYWN0ZXIgc2VxdWVuY2UgKG91ciBvd24gZW5jb2RpbmcgdXNlZClcbiAgICAgICAgICAgICAgICAgICAgdmFyIGxlbiA9IDB4RkZGIC0gY29kZSArIDI7XG4gICAgICAgICAgICAgICAgICAgIHZhciBzZXEgPSBbXTtcbiAgICAgICAgICAgICAgICAgICAgZm9yICh2YXIgbSA9IDA7IG0gPCBsZW47IG0rKylcbiAgICAgICAgICAgICAgICAgICAgICAgIHNlcS5wdXNoKHBhcnQuY2hhckNvZGVBdChsKyspKTsgLy8gU2ltcGxlIHZhcmlhdGlvbjogZG9uJ3Qgc3VwcG9ydCBzdXJyb2dhdGVzIG9yIHN1YnNlcXVlbmNlcyBpbiBzZXEuXG5cbiAgICAgICAgICAgICAgICAgICAgd3JpdGVUYWJsZVtjdXJBZGRyKytdID0gU0VRX1NUQVJUIC0gdGhpcy5kZWNvZGVUYWJsZVNlcS5sZW5ndGg7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGVjb2RlVGFibGVTZXEucHVzaChzZXEpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgIHdyaXRlVGFibGVbY3VyQWRkcisrXSA9IGNvZGU7IC8vIEJhc2ljIGNoYXJcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBcbiAgICAgICAgZWxzZSBpZiAodHlwZW9mIHBhcnQgPT09IFwibnVtYmVyXCIpIHsgLy8gSW50ZWdlciwgbWVhbmluZyBpbmNyZWFzaW5nIHNlcXVlbmNlIHN0YXJ0aW5nIHdpdGggcHJldiBjaGFyYWN0ZXIuXG4gICAgICAgICAgICB2YXIgY2hhckNvZGUgPSB3cml0ZVRhYmxlW2N1ckFkZHIgLSAxXSArIDE7XG4gICAgICAgICAgICBmb3IgKHZhciBsID0gMDsgbCA8IHBhcnQ7IGwrKylcbiAgICAgICAgICAgICAgICB3cml0ZVRhYmxlW2N1ckFkZHIrK10gPSBjaGFyQ29kZSsrO1xuICAgICAgICB9XG4gICAgICAgIGVsc2VcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkluY29ycmVjdCB0eXBlICdcIiArIHR5cGVvZiBwYXJ0ICsgXCInIGdpdmVuIGluIFwiICArIHRoaXMuZW5jb2RpbmdOYW1lICsgXCIgYXQgY2h1bmsgXCIgKyBjaHVua1swXSk7XG4gICAgfVxuICAgIGlmIChjdXJBZGRyID4gMHhGRilcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiSW5jb3JyZWN0IGNodW5rIGluIFwiICArIHRoaXMuZW5jb2RpbmdOYW1lICsgXCIgYXQgYWRkciBcIiArIGNodW5rWzBdICsgXCI6IHRvbyBsb25nXCIgKyBjdXJBZGRyKTtcbn1cblxuLy8gRW5jb2RlciBoZWxwZXJzXG5EQkNTQ29kZWMucHJvdG90eXBlLl9nZXRFbmNvZGVCdWNrZXQgPSBmdW5jdGlvbih1Q29kZSkge1xuICAgIHZhciBoaWdoID0gdUNvZGUgPj4gODsgLy8gVGhpcyBjb3VsZCBiZSA+IDB4RkYgYmVjYXVzZSBvZiBhc3RyYWwgY2hhcmFjdGVycy5cbiAgICBpZiAodGhpcy5lbmNvZGVUYWJsZVtoaWdoXSA9PT0gdW5kZWZpbmVkKVxuICAgICAgICB0aGlzLmVuY29kZVRhYmxlW2hpZ2hdID0gVU5BU1NJR05FRF9OT0RFLnNsaWNlKDApOyAvLyBDcmVhdGUgYnVja2V0IG9uIGRlbWFuZC5cbiAgICByZXR1cm4gdGhpcy5lbmNvZGVUYWJsZVtoaWdoXTtcbn1cblxuREJDU0NvZGVjLnByb3RvdHlwZS5fc2V0RW5jb2RlQ2hhciA9IGZ1bmN0aW9uKHVDb2RlLCBkYmNzQ29kZSkge1xuICAgIHZhciBidWNrZXQgPSB0aGlzLl9nZXRFbmNvZGVCdWNrZXQodUNvZGUpO1xuICAgIHZhciBsb3cgPSB1Q29kZSAmIDB4RkY7XG4gICAgaWYgKGJ1Y2tldFtsb3ddIDw9IFNFUV9TVEFSVClcbiAgICAgICAgdGhpcy5lbmNvZGVUYWJsZVNlcVtTRVFfU1RBUlQtYnVja2V0W2xvd11dW0RFRl9DSEFSXSA9IGRiY3NDb2RlOyAvLyBUaGVyZSdzIGFscmVhZHkgYSBzZXF1ZW5jZSwgc2V0IGEgc2luZ2xlLWNoYXIgc3Vic2VxdWVuY2Ugb2YgaXQuXG4gICAgZWxzZSBpZiAoYnVja2V0W2xvd10gPT0gVU5BU1NJR05FRClcbiAgICAgICAgYnVja2V0W2xvd10gPSBkYmNzQ29kZTtcbn1cblxuREJDU0NvZGVjLnByb3RvdHlwZS5fc2V0RW5jb2RlU2VxdWVuY2UgPSBmdW5jdGlvbihzZXEsIGRiY3NDb2RlKSB7XG4gICAgXG4gICAgLy8gR2V0IHRoZSByb290IG9mIGNoYXJhY3RlciB0cmVlIGFjY29yZGluZyB0byBmaXJzdCBjaGFyYWN0ZXIgb2YgdGhlIHNlcXVlbmNlLlxuICAgIHZhciB1Q29kZSA9IHNlcVswXTtcbiAgICB2YXIgYnVja2V0ID0gdGhpcy5fZ2V0RW5jb2RlQnVja2V0KHVDb2RlKTtcbiAgICB2YXIgbG93ID0gdUNvZGUgJiAweEZGO1xuXG4gICAgdmFyIG5vZGU7XG4gICAgaWYgKGJ1Y2tldFtsb3ddIDw9IFNFUV9TVEFSVCkge1xuICAgICAgICAvLyBUaGVyZSdzIGFscmVhZHkgYSBzZXF1ZW5jZSB3aXRoICAtIHVzZSBpdC5cbiAgICAgICAgbm9kZSA9IHRoaXMuZW5jb2RlVGFibGVTZXFbU0VRX1NUQVJULWJ1Y2tldFtsb3ddXTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIC8vIFRoZXJlIHdhcyBubyBzZXF1ZW5jZSBvYmplY3QgLSBhbGxvY2F0ZSBhIG5ldyBvbmUuXG4gICAgICAgIG5vZGUgPSB7fTtcbiAgICAgICAgaWYgKGJ1Y2tldFtsb3ddICE9PSBVTkFTU0lHTkVEKSBub2RlW0RFRl9DSEFSXSA9IGJ1Y2tldFtsb3ddOyAvLyBJZiBhIGNoYXIgd2FzIHNldCBiZWZvcmUgLSBtYWtlIGl0IGEgc2luZ2xlLWNoYXIgc3Vic2VxdWVuY2UuXG4gICAgICAgIGJ1Y2tldFtsb3ddID0gU0VRX1NUQVJUIC0gdGhpcy5lbmNvZGVUYWJsZVNlcS5sZW5ndGg7XG4gICAgICAgIHRoaXMuZW5jb2RlVGFibGVTZXEucHVzaChub2RlKTtcbiAgICB9XG5cbiAgICAvLyBUcmF2ZXJzZSB0aGUgY2hhcmFjdGVyIHRyZWUsIGFsbG9jYXRpbmcgbmV3IG5vZGVzIGFzIG5lZWRlZC5cbiAgICBmb3IgKHZhciBqID0gMTsgaiA8IHNlcS5sZW5ndGgtMTsgaisrKSB7XG4gICAgICAgIHZhciBvbGRWYWwgPSBub2RlW3VDb2RlXTtcbiAgICAgICAgaWYgKHR5cGVvZiBvbGRWYWwgPT09ICdvYmplY3QnKVxuICAgICAgICAgICAgbm9kZSA9IG9sZFZhbDtcbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBub2RlID0gbm9kZVt1Q29kZV0gPSB7fVxuICAgICAgICAgICAgaWYgKG9sZFZhbCAhPT0gdW5kZWZpbmVkKVxuICAgICAgICAgICAgICAgIG5vZGVbREVGX0NIQVJdID0gb2xkVmFsXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBTZXQgdGhlIGxlYWYgdG8gZ2l2ZW4gZGJjc0NvZGUuXG4gICAgdUNvZGUgPSBzZXFbc2VxLmxlbmd0aC0xXTtcbiAgICBub2RlW3VDb2RlXSA9IGRiY3NDb2RlO1xufVxuXG5EQkNTQ29kZWMucHJvdG90eXBlLl9maWxsRW5jb2RlVGFibGUgPSBmdW5jdGlvbihub2RlSWR4LCBwcmVmaXgsIHNraXBFbmNvZGVDaGFycykge1xuICAgIHZhciBub2RlID0gdGhpcy5kZWNvZGVUYWJsZXNbbm9kZUlkeF07XG4gICAgdmFyIGhhc1ZhbHVlcyA9IGZhbHNlO1xuICAgIHZhciBzdWJOb2RlRW1wdHkgPSB7fTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IDB4MTAwOyBpKyspIHtcbiAgICAgICAgdmFyIHVDb2RlID0gbm9kZVtpXTtcbiAgICAgICAgdmFyIG1iQ29kZSA9IHByZWZpeCArIGk7XG4gICAgICAgIGlmIChza2lwRW5jb2RlQ2hhcnNbbWJDb2RlXSlcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuXG4gICAgICAgIGlmICh1Q29kZSA+PSAwKSB7XG4gICAgICAgICAgICB0aGlzLl9zZXRFbmNvZGVDaGFyKHVDb2RlLCBtYkNvZGUpO1xuICAgICAgICAgICAgaGFzVmFsdWVzID0gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIGlmICh1Q29kZSA8PSBOT0RFX1NUQVJUKSB7XG4gICAgICAgICAgICB2YXIgc3ViTm9kZUlkeCA9IE5PREVfU1RBUlQgLSB1Q29kZTtcbiAgICAgICAgICAgIGlmICghc3ViTm9kZUVtcHR5W3N1Yk5vZGVJZHhdKSB7ICAvLyBTa2lwIGVtcHR5IHN1YnRyZWVzICh0aGV5IGFyZSB0b28gbGFyZ2UgaW4gZ2IxODAzMCkuXG4gICAgICAgICAgICAgICAgdmFyIG5ld1ByZWZpeCA9IChtYkNvZGUgPDwgOCkgPj4+IDA7ICAvLyBOT1RFOiAnPj4+IDAnIGtlZXBzIDMyLWJpdCBudW0gcG9zaXRpdmUuXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuX2ZpbGxFbmNvZGVUYWJsZShzdWJOb2RlSWR4LCBuZXdQcmVmaXgsIHNraXBFbmNvZGVDaGFycykpXG4gICAgICAgICAgICAgICAgICAgIGhhc1ZhbHVlcyA9IHRydWU7XG4gICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICBzdWJOb2RlRW1wdHlbc3ViTm9kZUlkeF0gPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKHVDb2RlIDw9IFNFUV9TVEFSVCkge1xuICAgICAgICAgICAgdGhpcy5fc2V0RW5jb2RlU2VxdWVuY2UodGhpcy5kZWNvZGVUYWJsZVNlcVtTRVFfU1RBUlQgLSB1Q29kZV0sIG1iQ29kZSk7XG4gICAgICAgICAgICBoYXNWYWx1ZXMgPSB0cnVlO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBoYXNWYWx1ZXM7XG59XG5cblxuXG4vLyA9PSBFbmNvZGVyID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5mdW5jdGlvbiBEQkNTRW5jb2RlcihvcHRpb25zLCBjb2RlYykge1xuICAgIC8vIEVuY29kZXIgc3RhdGVcbiAgICB0aGlzLmxlYWRTdXJyb2dhdGUgPSAtMTtcbiAgICB0aGlzLnNlcU9iaiA9IHVuZGVmaW5lZDtcbiAgICBcbiAgICAvLyBTdGF0aWMgZGF0YVxuICAgIHRoaXMuZW5jb2RlVGFibGUgPSBjb2RlYy5lbmNvZGVUYWJsZTtcbiAgICB0aGlzLmVuY29kZVRhYmxlU2VxID0gY29kZWMuZW5jb2RlVGFibGVTZXE7XG4gICAgdGhpcy5kZWZhdWx0Q2hhclNpbmdsZUJ5dGUgPSBjb2RlYy5kZWZDaGFyU0I7XG4gICAgdGhpcy5nYjE4MDMwID0gY29kZWMuZ2IxODAzMDtcbn1cblxuREJDU0VuY29kZXIucHJvdG90eXBlLndyaXRlID0gZnVuY3Rpb24oc3RyKSB7XG4gICAgdmFyIG5ld0J1ZiA9IEJ1ZmZlci5hbGxvYyhzdHIubGVuZ3RoICogKHRoaXMuZ2IxODAzMCA/IDQgOiAzKSksXG4gICAgICAgIGxlYWRTdXJyb2dhdGUgPSB0aGlzLmxlYWRTdXJyb2dhdGUsXG4gICAgICAgIHNlcU9iaiA9IHRoaXMuc2VxT2JqLCBuZXh0Q2hhciA9IC0xLFxuICAgICAgICBpID0gMCwgaiA9IDA7XG5cbiAgICB3aGlsZSAodHJ1ZSkge1xuICAgICAgICAvLyAwLiBHZXQgbmV4dCBjaGFyYWN0ZXIuXG4gICAgICAgIGlmIChuZXh0Q2hhciA9PT0gLTEpIHtcbiAgICAgICAgICAgIGlmIChpID09IHN0ci5sZW5ndGgpIGJyZWFrO1xuICAgICAgICAgICAgdmFyIHVDb2RlID0gc3RyLmNoYXJDb2RlQXQoaSsrKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHZhciB1Q29kZSA9IG5leHRDaGFyO1xuICAgICAgICAgICAgbmV4dENoYXIgPSAtMTsgICAgXG4gICAgICAgIH1cblxuICAgICAgICAvLyAxLiBIYW5kbGUgc3Vycm9nYXRlcy5cbiAgICAgICAgaWYgKDB4RDgwMCA8PSB1Q29kZSAmJiB1Q29kZSA8IDB4RTAwMCkgeyAvLyBDaGFyIGlzIG9uZSBvZiBzdXJyb2dhdGVzLlxuICAgICAgICAgICAgaWYgKHVDb2RlIDwgMHhEQzAwKSB7IC8vIFdlJ3ZlIGdvdCBsZWFkIHN1cnJvZ2F0ZS5cbiAgICAgICAgICAgICAgICBpZiAobGVhZFN1cnJvZ2F0ZSA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgbGVhZFN1cnJvZ2F0ZSA9IHVDb2RlO1xuICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBsZWFkU3Vycm9nYXRlID0gdUNvZGU7XG4gICAgICAgICAgICAgICAgICAgIC8vIERvdWJsZSBsZWFkIHN1cnJvZ2F0ZSBmb3VuZC5cbiAgICAgICAgICAgICAgICAgICAgdUNvZGUgPSBVTkFTU0lHTkVEO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7IC8vIFdlJ3ZlIGdvdCB0cmFpbCBzdXJyb2dhdGUuXG4gICAgICAgICAgICAgICAgaWYgKGxlYWRTdXJyb2dhdGUgIT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIHVDb2RlID0gMHgxMDAwMCArIChsZWFkU3Vycm9nYXRlIC0gMHhEODAwKSAqIDB4NDAwICsgKHVDb2RlIC0gMHhEQzAwKTtcbiAgICAgICAgICAgICAgICAgICAgbGVhZFN1cnJvZ2F0ZSA9IC0xO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIEluY29tcGxldGUgc3Vycm9nYXRlIHBhaXIgLSBvbmx5IHRyYWlsIHN1cnJvZ2F0ZSBmb3VuZC5cbiAgICAgICAgICAgICAgICAgICAgdUNvZGUgPSBVTkFTU0lHTkVEO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChsZWFkU3Vycm9nYXRlICE9PSAtMSkge1xuICAgICAgICAgICAgLy8gSW5jb21wbGV0ZSBzdXJyb2dhdGUgcGFpciAtIG9ubHkgbGVhZCBzdXJyb2dhdGUgZm91bmQuXG4gICAgICAgICAgICBuZXh0Q2hhciA9IHVDb2RlOyB1Q29kZSA9IFVOQVNTSUdORUQ7IC8vIFdyaXRlIGFuIGVycm9yLCB0aGVuIGN1cnJlbnQgY2hhci5cbiAgICAgICAgICAgIGxlYWRTdXJyb2dhdGUgPSAtMTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIDIuIENvbnZlcnQgdUNvZGUgY2hhcmFjdGVyLlxuICAgICAgICB2YXIgZGJjc0NvZGUgPSBVTkFTU0lHTkVEO1xuICAgICAgICBpZiAoc2VxT2JqICE9PSB1bmRlZmluZWQgJiYgdUNvZGUgIT0gVU5BU1NJR05FRCkgeyAvLyBXZSBhcmUgaW4gdGhlIG1pZGRsZSBvZiB0aGUgc2VxdWVuY2VcbiAgICAgICAgICAgIHZhciByZXNDb2RlID0gc2VxT2JqW3VDb2RlXTtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgcmVzQ29kZSA9PT0gJ29iamVjdCcpIHsgLy8gU2VxdWVuY2UgY29udGludWVzLlxuICAgICAgICAgICAgICAgIHNlcU9iaiA9IHJlc0NvZGU7XG4gICAgICAgICAgICAgICAgY29udGludWU7XG5cbiAgICAgICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIHJlc0NvZGUgPT0gJ251bWJlcicpIHsgLy8gU2VxdWVuY2UgZmluaXNoZWQuIFdyaXRlIGl0LlxuICAgICAgICAgICAgICAgIGRiY3NDb2RlID0gcmVzQ29kZTtcblxuICAgICAgICAgICAgfSBlbHNlIGlmIChyZXNDb2RlID09IHVuZGVmaW5lZCkgeyAvLyBDdXJyZW50IGNoYXJhY3RlciBpcyBub3QgcGFydCBvZiB0aGUgc2VxdWVuY2UuXG5cbiAgICAgICAgICAgICAgICAvLyBUcnkgZGVmYXVsdCBjaGFyYWN0ZXIgZm9yIHRoaXMgc2VxdWVuY2VcbiAgICAgICAgICAgICAgICByZXNDb2RlID0gc2VxT2JqW0RFRl9DSEFSXTtcbiAgICAgICAgICAgICAgICBpZiAocmVzQ29kZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgICAgIGRiY3NDb2RlID0gcmVzQ29kZTsgLy8gRm91bmQuIFdyaXRlIGl0LlxuICAgICAgICAgICAgICAgICAgICBuZXh0Q2hhciA9IHVDb2RlOyAvLyBDdXJyZW50IGNoYXJhY3RlciB3aWxsIGJlIHdyaXR0ZW4gdG9vIGluIHRoZSBuZXh0IGl0ZXJhdGlvbi5cblxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIFRPRE86IFdoYXQgaWYgd2UgaGF2ZSBubyBkZWZhdWx0PyAocmVzQ29kZSA9PSB1bmRlZmluZWQpXG4gICAgICAgICAgICAgICAgICAgIC8vIFRoZW4sIHdlIHNob3VsZCB3cml0ZSBmaXJzdCBjaGFyIG9mIHRoZSBzZXF1ZW5jZSBhcy1pcyBhbmQgdHJ5IHRoZSByZXN0IHJlY3Vyc2l2ZWx5LlxuICAgICAgICAgICAgICAgICAgICAvLyBEaWRuJ3QgZG8gaXQgZm9yIG5vdyBiZWNhdXNlIG5vIGVuY29kaW5nIGhhcyB0aGlzIHNpdHVhdGlvbiB5ZXQuXG4gICAgICAgICAgICAgICAgICAgIC8vIEN1cnJlbnRseSwganVzdCBza2lwIHRoZSBzZXF1ZW5jZSBhbmQgd3JpdGUgY3VycmVudCBjaGFyLlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHNlcU9iaiA9IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmICh1Q29kZSA+PSAwKSB7ICAvLyBSZWd1bGFyIGNoYXJhY3RlclxuICAgICAgICAgICAgdmFyIHN1YnRhYmxlID0gdGhpcy5lbmNvZGVUYWJsZVt1Q29kZSA+PiA4XTtcbiAgICAgICAgICAgIGlmIChzdWJ0YWJsZSAhPT0gdW5kZWZpbmVkKVxuICAgICAgICAgICAgICAgIGRiY3NDb2RlID0gc3VidGFibGVbdUNvZGUgJiAweEZGXTtcbiAgICAgICAgICAgIFxuICAgICAgICAgICAgaWYgKGRiY3NDb2RlIDw9IFNFUV9TVEFSVCkgeyAvLyBTZXF1ZW5jZSBzdGFydFxuICAgICAgICAgICAgICAgIHNlcU9iaiA9IHRoaXMuZW5jb2RlVGFibGVTZXFbU0VRX1NUQVJULWRiY3NDb2RlXTtcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKGRiY3NDb2RlID09IFVOQVNTSUdORUQgJiYgdGhpcy5nYjE4MDMwKSB7XG4gICAgICAgICAgICAgICAgLy8gVXNlIEdCMTgwMzAgYWxnb3JpdGhtIHRvIGZpbmQgY2hhcmFjdGVyKHMpIHRvIHdyaXRlLlxuICAgICAgICAgICAgICAgIHZhciBpZHggPSBmaW5kSWR4KHRoaXMuZ2IxODAzMC51Q2hhcnMsIHVDb2RlKTtcbiAgICAgICAgICAgICAgICBpZiAoaWR4ICE9IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBkYmNzQ29kZSA9IHRoaXMuZ2IxODAzMC5nYkNoYXJzW2lkeF0gKyAodUNvZGUgLSB0aGlzLmdiMTgwMzAudUNoYXJzW2lkeF0pO1xuICAgICAgICAgICAgICAgICAgICBuZXdCdWZbaisrXSA9IDB4ODEgKyBNYXRoLmZsb29yKGRiY3NDb2RlIC8gMTI2MDApOyBkYmNzQ29kZSA9IGRiY3NDb2RlICUgMTI2MDA7XG4gICAgICAgICAgICAgICAgICAgIG5ld0J1ZltqKytdID0gMHgzMCArIE1hdGguZmxvb3IoZGJjc0NvZGUgLyAxMjYwKTsgZGJjc0NvZGUgPSBkYmNzQ29kZSAlIDEyNjA7XG4gICAgICAgICAgICAgICAgICAgIG5ld0J1ZltqKytdID0gMHg4MSArIE1hdGguZmxvb3IoZGJjc0NvZGUgLyAxMCk7IGRiY3NDb2RlID0gZGJjc0NvZGUgJSAxMDtcbiAgICAgICAgICAgICAgICAgICAgbmV3QnVmW2orK10gPSAweDMwICsgZGJjc0NvZGU7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIDMuIFdyaXRlIGRiY3NDb2RlIGNoYXJhY3Rlci5cbiAgICAgICAgaWYgKGRiY3NDb2RlID09PSBVTkFTU0lHTkVEKVxuICAgICAgICAgICAgZGJjc0NvZGUgPSB0aGlzLmRlZmF1bHRDaGFyU2luZ2xlQnl0ZTtcbiAgICAgICAgXG4gICAgICAgIGlmIChkYmNzQ29kZSA8IDB4MTAwKSB7XG4gICAgICAgICAgICBuZXdCdWZbaisrXSA9IGRiY3NDb2RlO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKGRiY3NDb2RlIDwgMHgxMDAwMCkge1xuICAgICAgICAgICAgbmV3QnVmW2orK10gPSBkYmNzQ29kZSA+PiA4OyAgIC8vIGhpZ2ggYnl0ZVxuICAgICAgICAgICAgbmV3QnVmW2orK10gPSBkYmNzQ29kZSAmIDB4RkY7IC8vIGxvdyBieXRlXG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoZGJjc0NvZGUgPCAweDEwMDAwMDApIHtcbiAgICAgICAgICAgIG5ld0J1ZltqKytdID0gZGJjc0NvZGUgPj4gMTY7XG4gICAgICAgICAgICBuZXdCdWZbaisrXSA9IChkYmNzQ29kZSA+PiA4KSAmIDB4RkY7XG4gICAgICAgICAgICBuZXdCdWZbaisrXSA9IGRiY3NDb2RlICYgMHhGRjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIG5ld0J1ZltqKytdID0gZGJjc0NvZGUgPj4+IDI0O1xuICAgICAgICAgICAgbmV3QnVmW2orK10gPSAoZGJjc0NvZGUgPj4+IDE2KSAmIDB4RkY7XG4gICAgICAgICAgICBuZXdCdWZbaisrXSA9IChkYmNzQ29kZSA+Pj4gOCkgJiAweEZGO1xuICAgICAgICAgICAgbmV3QnVmW2orK10gPSBkYmNzQ29kZSAmIDB4RkY7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLnNlcU9iaiA9IHNlcU9iajtcbiAgICB0aGlzLmxlYWRTdXJyb2dhdGUgPSBsZWFkU3Vycm9nYXRlO1xuICAgIHJldHVybiBuZXdCdWYuc2xpY2UoMCwgaik7XG59XG5cbkRCQ1NFbmNvZGVyLnByb3RvdHlwZS5lbmQgPSBmdW5jdGlvbigpIHtcbiAgICBpZiAodGhpcy5sZWFkU3Vycm9nYXRlID09PSAtMSAmJiB0aGlzLnNlcU9iaiA9PT0gdW5kZWZpbmVkKVxuICAgICAgICByZXR1cm47IC8vIEFsbCBjbGVhbi4gTW9zdCBvZnRlbiBjYXNlLlxuXG4gICAgdmFyIG5ld0J1ZiA9IEJ1ZmZlci5hbGxvYygxMCksIGogPSAwO1xuXG4gICAgaWYgKHRoaXMuc2VxT2JqKSB7IC8vIFdlJ3JlIGluIHRoZSBzZXF1ZW5jZS5cbiAgICAgICAgdmFyIGRiY3NDb2RlID0gdGhpcy5zZXFPYmpbREVGX0NIQVJdO1xuICAgICAgICBpZiAoZGJjc0NvZGUgIT09IHVuZGVmaW5lZCkgeyAvLyBXcml0ZSBiZWdpbm5pbmcgb2YgdGhlIHNlcXVlbmNlLlxuICAgICAgICAgICAgaWYgKGRiY3NDb2RlIDwgMHgxMDApIHtcbiAgICAgICAgICAgICAgICBuZXdCdWZbaisrXSA9IGRiY3NDb2RlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgbmV3QnVmW2orK10gPSBkYmNzQ29kZSA+PiA4OyAgIC8vIGhpZ2ggYnl0ZVxuICAgICAgICAgICAgICAgIG5ld0J1ZltqKytdID0gZGJjc0NvZGUgJiAweEZGOyAvLyBsb3cgYnl0ZVxuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gU2VlIHRvZG8gYWJvdmUuXG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zZXFPYmogPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMubGVhZFN1cnJvZ2F0ZSAhPT0gLTEpIHtcbiAgICAgICAgLy8gSW5jb21wbGV0ZSBzdXJyb2dhdGUgcGFpciAtIG9ubHkgbGVhZCBzdXJyb2dhdGUgZm91bmQuXG4gICAgICAgIG5ld0J1ZltqKytdID0gdGhpcy5kZWZhdWx0Q2hhclNpbmdsZUJ5dGU7XG4gICAgICAgIHRoaXMubGVhZFN1cnJvZ2F0ZSA9IC0xO1xuICAgIH1cbiAgICBcbiAgICByZXR1cm4gbmV3QnVmLnNsaWNlKDAsIGopO1xufVxuXG4vLyBFeHBvcnQgZm9yIHRlc3RpbmdcbkRCQ1NFbmNvZGVyLnByb3RvdHlwZS5maW5kSWR4ID0gZmluZElkeDtcblxuXG4vLyA9PSBEZWNvZGVyID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5mdW5jdGlvbiBEQkNTRGVjb2RlcihvcHRpb25zLCBjb2RlYykge1xuICAgIC8vIERlY29kZXIgc3RhdGVcbiAgICB0aGlzLm5vZGVJZHggPSAwO1xuICAgIHRoaXMucHJldkJ5dGVzID0gW107XG5cbiAgICAvLyBTdGF0aWMgZGF0YVxuICAgIHRoaXMuZGVjb2RlVGFibGVzID0gY29kZWMuZGVjb2RlVGFibGVzO1xuICAgIHRoaXMuZGVjb2RlVGFibGVTZXEgPSBjb2RlYy5kZWNvZGVUYWJsZVNlcTtcbiAgICB0aGlzLmRlZmF1bHRDaGFyVW5pY29kZSA9IGNvZGVjLmRlZmF1bHRDaGFyVW5pY29kZTtcbiAgICB0aGlzLmdiMTgwMzAgPSBjb2RlYy5nYjE4MDMwO1xufVxuXG5EQkNTRGVjb2Rlci5wcm90b3R5cGUud3JpdGUgPSBmdW5jdGlvbihidWYpIHtcbiAgICB2YXIgbmV3QnVmID0gQnVmZmVyLmFsbG9jKGJ1Zi5sZW5ndGgqMiksXG4gICAgICAgIG5vZGVJZHggPSB0aGlzLm5vZGVJZHgsIFxuICAgICAgICBwcmV2Qnl0ZXMgPSB0aGlzLnByZXZCeXRlcywgcHJldk9mZnNldCA9IHRoaXMucHJldkJ5dGVzLmxlbmd0aCxcbiAgICAgICAgc2VxU3RhcnQgPSAtdGhpcy5wcmV2Qnl0ZXMubGVuZ3RoLCAvLyBpZHggb2YgdGhlIHN0YXJ0IG9mIGN1cnJlbnQgcGFyc2VkIHNlcXVlbmNlLlxuICAgICAgICB1Q29kZTtcblxuICAgIGZvciAodmFyIGkgPSAwLCBqID0gMDsgaSA8IGJ1Zi5sZW5ndGg7IGkrKykge1xuICAgICAgICB2YXIgY3VyQnl0ZSA9IChpID49IDApID8gYnVmW2ldIDogcHJldkJ5dGVzW2kgKyBwcmV2T2Zmc2V0XTtcblxuICAgICAgICAvLyBMb29rdXAgaW4gY3VycmVudCB0cmllIG5vZGUuXG4gICAgICAgIHZhciB1Q29kZSA9IHRoaXMuZGVjb2RlVGFibGVzW25vZGVJZHhdW2N1ckJ5dGVdO1xuXG4gICAgICAgIGlmICh1Q29kZSA+PSAwKSB7IFxuICAgICAgICAgICAgLy8gTm9ybWFsIGNoYXJhY3RlciwganVzdCB1c2UgaXQuXG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAodUNvZGUgPT09IFVOQVNTSUdORUQpIHsgLy8gVW5rbm93biBjaGFyLlxuICAgICAgICAgICAgLy8gVE9ETzogQ2FsbGJhY2sgd2l0aCBzZXEuXG4gICAgICAgICAgICB1Q29kZSA9IHRoaXMuZGVmYXVsdENoYXJVbmljb2RlLmNoYXJDb2RlQXQoMCk7XG4gICAgICAgICAgICBpID0gc2VxU3RhcnQ7IC8vIFNraXAgb25lIGJ5dGUgKCdpJyB3aWxsIGJlIGluY3JlbWVudGVkIGJ5IHRoZSBmb3IgbG9vcCkgYW5kIHRyeSB0byBwYXJzZSBhZ2Fpbi5cbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmICh1Q29kZSA9PT0gR0IxODAzMF9DT0RFKSB7XG4gICAgICAgICAgICBpZiAoaSA+PSAzKSB7XG4gICAgICAgICAgICAgICAgdmFyIHB0ciA9IChidWZbaS0zXS0weDgxKSoxMjYwMCArIChidWZbaS0yXS0weDMwKSoxMjYwICsgKGJ1ZltpLTFdLTB4ODEpKjEwICsgKGN1ckJ5dGUtMHgzMCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHZhciBwdHIgPSAocHJldkJ5dGVzW2ktMytwcmV2T2Zmc2V0XS0weDgxKSoxMjYwMCArIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAoKChpLTIgPj0gMCkgPyBidWZbaS0yXSA6IHByZXZCeXRlc1tpLTIrcHJldk9mZnNldF0pLTB4MzApKjEyNjAgKyBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKCgoaS0xID49IDApID8gYnVmW2ktMV0gOiBwcmV2Qnl0ZXNbaS0xK3ByZXZPZmZzZXRdKS0weDgxKSoxMCArIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAoY3VyQnl0ZS0weDMwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHZhciBpZHggPSBmaW5kSWR4KHRoaXMuZ2IxODAzMC5nYkNoYXJzLCBwdHIpO1xuICAgICAgICAgICAgdUNvZGUgPSB0aGlzLmdiMTgwMzAudUNoYXJzW2lkeF0gKyBwdHIgLSB0aGlzLmdiMTgwMzAuZ2JDaGFyc1tpZHhdO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKHVDb2RlIDw9IE5PREVfU1RBUlQpIHsgLy8gR28gdG8gbmV4dCB0cmllIG5vZGUuXG4gICAgICAgICAgICBub2RlSWR4ID0gTk9ERV9TVEFSVCAtIHVDb2RlO1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAodUNvZGUgPD0gU0VRX1NUQVJUKSB7IC8vIE91dHB1dCBhIHNlcXVlbmNlIG9mIGNoYXJzLlxuICAgICAgICAgICAgdmFyIHNlcSA9IHRoaXMuZGVjb2RlVGFibGVTZXFbU0VRX1NUQVJUIC0gdUNvZGVdO1xuICAgICAgICAgICAgZm9yICh2YXIgayA9IDA7IGsgPCBzZXEubGVuZ3RoIC0gMTsgaysrKSB7XG4gICAgICAgICAgICAgICAgdUNvZGUgPSBzZXFba107XG4gICAgICAgICAgICAgICAgbmV3QnVmW2orK10gPSB1Q29kZSAmIDB4RkY7XG4gICAgICAgICAgICAgICAgbmV3QnVmW2orK10gPSB1Q29kZSA+PiA4O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdUNvZGUgPSBzZXFbc2VxLmxlbmd0aC0xXTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJpY29udi1saXRlIGludGVybmFsIGVycm9yOiBpbnZhbGlkIGRlY29kaW5nIHRhYmxlIHZhbHVlIFwiICsgdUNvZGUgKyBcIiBhdCBcIiArIG5vZGVJZHggKyBcIi9cIiArIGN1ckJ5dGUpO1xuXG4gICAgICAgIC8vIFdyaXRlIHRoZSBjaGFyYWN0ZXIgdG8gYnVmZmVyLCBoYW5kbGluZyBoaWdoZXIgcGxhbmVzIHVzaW5nIHN1cnJvZ2F0ZSBwYWlyLlxuICAgICAgICBpZiAodUNvZGUgPj0gMHgxMDAwMCkgeyBcbiAgICAgICAgICAgIHVDb2RlIC09IDB4MTAwMDA7XG4gICAgICAgICAgICB2YXIgdUNvZGVMZWFkID0gMHhEODAwIHwgKHVDb2RlID4+IDEwKTtcbiAgICAgICAgICAgIG5ld0J1ZltqKytdID0gdUNvZGVMZWFkICYgMHhGRjtcbiAgICAgICAgICAgIG5ld0J1ZltqKytdID0gdUNvZGVMZWFkID4+IDg7XG5cbiAgICAgICAgICAgIHVDb2RlID0gMHhEQzAwIHwgKHVDb2RlICYgMHgzRkYpO1xuICAgICAgICB9XG4gICAgICAgIG5ld0J1ZltqKytdID0gdUNvZGUgJiAweEZGO1xuICAgICAgICBuZXdCdWZbaisrXSA9IHVDb2RlID4+IDg7XG5cbiAgICAgICAgLy8gUmVzZXQgdHJpZSBub2RlLlxuICAgICAgICBub2RlSWR4ID0gMDsgc2VxU3RhcnQgPSBpKzE7XG4gICAgfVxuXG4gICAgdGhpcy5ub2RlSWR4ID0gbm9kZUlkeDtcbiAgICB0aGlzLnByZXZCeXRlcyA9IChzZXFTdGFydCA+PSAwKVxuICAgICAgICA/IEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGJ1Ziwgc2VxU3RhcnQpXG4gICAgICAgIDogcHJldkJ5dGVzLnNsaWNlKHNlcVN0YXJ0ICsgcHJldk9mZnNldCkuY29uY2F0KEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGJ1ZikpO1xuXG4gICAgcmV0dXJuIG5ld0J1Zi5zbGljZSgwLCBqKS50b1N0cmluZygndWNzMicpO1xufVxuXG5EQkNTRGVjb2Rlci5wcm90b3R5cGUuZW5kID0gZnVuY3Rpb24oKSB7XG4gICAgdmFyIHJldCA9ICcnO1xuXG4gICAgLy8gVHJ5IHRvIHBhcnNlIGFsbCByZW1haW5pbmcgY2hhcnMuXG4gICAgd2hpbGUgKHRoaXMucHJldkJ5dGVzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgLy8gU2tpcCAxIGNoYXJhY3RlciBpbiB0aGUgYnVmZmVyLlxuICAgICAgICByZXQgKz0gdGhpcy5kZWZhdWx0Q2hhclVuaWNvZGU7XG4gICAgICAgIHZhciBieXRlc0FyciA9IHRoaXMucHJldkJ5dGVzLnNsaWNlKDEpO1xuXG4gICAgICAgIC8vIFBhcnNlIHJlbWFpbmluZyBhcyB1c3VhbC5cbiAgICAgICAgdGhpcy5wcmV2Qnl0ZXMgPSBbXTtcbiAgICAgICAgdGhpcy5ub2RlSWR4ID0gMDtcbiAgICAgICAgaWYgKGJ5dGVzQXJyLmxlbmd0aCA+IDApXG4gICAgICAgICAgICByZXQgKz0gdGhpcy53cml0ZShieXRlc0Fycik7XG4gICAgfVxuXG4gICAgdGhpcy5wcmV2Qnl0ZXMgPSBbXTtcbiAgICB0aGlzLm5vZGVJZHggPSAwO1xuICAgIHJldHVybiByZXQ7XG59XG5cbi8vIEJpbmFyeSBzZWFyY2ggZm9yIEdCMTgwMzAuIFJldHVybnMgbGFyZ2VzdCBpIHN1Y2ggdGhhdCB0YWJsZVtpXSA8PSB2YWwuXG5mdW5jdGlvbiBmaW5kSWR4KHRhYmxlLCB2YWwpIHtcbiAgICBpZiAodGFibGVbMF0gPiB2YWwpXG4gICAgICAgIHJldHVybiAtMTtcblxuICAgIHZhciBsID0gMCwgciA9IHRhYmxlLmxlbmd0aDtcbiAgICB3aGlsZSAobCA8IHItMSkgeyAvLyBhbHdheXMgdGFibGVbbF0gPD0gdmFsIDwgdGFibGVbcl1cbiAgICAgICAgdmFyIG1pZCA9IGwgKyAoKHItbCsxKSA+PiAxKTtcbiAgICAgICAgaWYgKHRhYmxlW21pZF0gPD0gdmFsKVxuICAgICAgICAgICAgbCA9IG1pZDtcbiAgICAgICAgZWxzZVxuICAgICAgICAgICAgciA9IG1pZDtcbiAgICB9XG4gICAgcmV0dXJuIGw7XG59XG5cbiIsICJbXG5bXCIwXCIsXCJcXHUwMDAwXCIsMTI4XSxcbltcImExXCIsXCJcdUZGNjFcIiw2Ml0sXG5bXCI4MTQwXCIsXCJcdTMwMDBcdTMwMDFcdTMwMDJcdUZGMENcdUZGMEVcdTMwRkJcdUZGMUFcdUZGMUJcdUZGMUZcdUZGMDFcdTMwOUJcdTMwOUNcdTAwQjRcdUZGNDBcdTAwQThcdUZGM0VcdUZGRTNcdUZGM0ZcdTMwRkRcdTMwRkVcdTMwOURcdTMwOUVcdTMwMDNcdTRFRERcdTMwMDVcdTMwMDZcdTMwMDdcdTMwRkNcdTIwMTVcdTIwMTBcdUZGMEZcdUZGM0NcdUZGNUVcdTIyMjVcdUZGNUNcdTIwMjZcdTIwMjVcdTIwMThcdTIwMTlcdTIwMUNcdTIwMURcdUZGMDhcdUZGMDlcdTMwMTRcdTMwMTVcdUZGM0JcdUZGM0RcdUZGNUJcdUZGNURcdTMwMDhcIiw5LFwiXHVGRjBCXHVGRjBEXHUwMEIxXHUwMEQ3XCJdLFxuW1wiODE4MFwiLFwiXHUwMEY3XHVGRjFEXHUyMjYwXHVGRjFDXHVGRjFFXHUyMjY2XHUyMjY3XHUyMjFFXHUyMjM0XHUyNjQyXHUyNjQwXHUwMEIwXHUyMDMyXHUyMDMzXHUyMTAzXHVGRkU1XHVGRjA0XHVGRkUwXHVGRkUxXHVGRjA1XHVGRjAzXHVGRjA2XHVGRjBBXHVGRjIwXHUwMEE3XHUyNjA2XHUyNjA1XHUyNUNCXHUyNUNGXHUyNUNFXHUyNUM3XHUyNUM2XHUyNUExXHUyNUEwXHUyNUIzXHUyNUIyXHUyNUJEXHUyNUJDXHUyMDNCXHUzMDEyXHUyMTkyXHUyMTkwXHUyMTkxXHUyMTkzXHUzMDEzXCJdLFxuW1wiODFiOFwiLFwiXHUyMjA4XHUyMjBCXHUyMjg2XHUyMjg3XHUyMjgyXHUyMjgzXHUyMjJBXHUyMjI5XCJdLFxuW1wiODFjOFwiLFwiXHUyMjI3XHUyMjI4XHVGRkUyXHUyMUQyXHUyMUQ0XHUyMjAwXHUyMjAzXCJdLFxuW1wiODFkYVwiLFwiXHUyMjIwXHUyMkE1XHUyMzEyXHUyMjAyXHUyMjA3XHUyMjYxXHUyMjUyXHUyMjZBXHUyMjZCXHUyMjFBXHUyMjNEXHUyMjFEXHUyMjM1XHUyMjJCXHUyMjJDXCJdLFxuW1wiODFmMFwiLFwiXHUyMTJCXHUyMDMwXHUyNjZGXHUyNjZEXHUyNjZBXHUyMDIwXHUyMDIxXHUwMEI2XCJdLFxuW1wiODFmY1wiLFwiXHUyNUVGXCJdLFxuW1wiODI0ZlwiLFwiXHVGRjEwXCIsOV0sXG5bXCI4MjYwXCIsXCJcdUZGMjFcIiwyNV0sXG5bXCI4MjgxXCIsXCJcdUZGNDFcIiwyNV0sXG5bXCI4MjlmXCIsXCJcdTMwNDFcIiw4Ml0sXG5bXCI4MzQwXCIsXCJcdTMwQTFcIiw2Ml0sXG5bXCI4MzgwXCIsXCJcdTMwRTBcIiwyMl0sXG5bXCI4MzlmXCIsXCJcdTAzOTFcIiwxNixcIlx1MDNBM1wiLDZdLFxuW1wiODNiZlwiLFwiXHUwM0IxXCIsMTYsXCJcdTAzQzNcIiw2XSxcbltcIjg0NDBcIixcIlx1MDQxMFwiLDUsXCJcdTA0MDFcdTA0MTZcIiwyNV0sXG5bXCI4NDcwXCIsXCJcdTA0MzBcIiw1LFwiXHUwNDUxXHUwNDM2XCIsN10sXG5bXCI4NDgwXCIsXCJcdTA0M0VcIiwxN10sXG5bXCI4NDlmXCIsXCJcdTI1MDBcdTI1MDJcdTI1MENcdTI1MTBcdTI1MThcdTI1MTRcdTI1MUNcdTI1MkNcdTI1MjRcdTI1MzRcdTI1M0NcdTI1MDFcdTI1MDNcdTI1MEZcdTI1MTNcdTI1MUJcdTI1MTdcdTI1MjNcdTI1MzNcdTI1MkJcdTI1M0JcdTI1NEJcdTI1MjBcdTI1MkZcdTI1MjhcdTI1MzdcdTI1M0ZcdTI1MURcdTI1MzBcdTI1MjVcdTI1MzhcdTI1NDJcIl0sXG5bXCI4NzQwXCIsXCJcdTI0NjBcIiwxOSxcIlx1MjE2MFwiLDldLFxuW1wiODc1ZlwiLFwiXHUzMzQ5XHUzMzE0XHUzMzIyXHUzMzREXHUzMzE4XHUzMzI3XHUzMzAzXHUzMzM2XHUzMzUxXHUzMzU3XHUzMzBEXHUzMzI2XHUzMzIzXHUzMzJCXHUzMzRBXHUzMzNCXHUzMzlDXHUzMzlEXHUzMzlFXHUzMzhFXHUzMzhGXHUzM0M0XHUzM0ExXCJdLFxuW1wiODc3ZVwiLFwiXHUzMzdCXCJdLFxuW1wiODc4MFwiLFwiXHUzMDFEXHUzMDFGXHUyMTE2XHUzM0NEXHUyMTIxXHUzMkE0XCIsNCxcIlx1MzIzMVx1MzIzMlx1MzIzOVx1MzM3RVx1MzM3RFx1MzM3Q1x1MjI1Mlx1MjI2MVx1MjIyQlx1MjIyRVx1MjIxMVx1MjIxQVx1MjJBNVx1MjIyMFx1MjIxRlx1MjJCRlx1MjIzNVx1MjIyOVx1MjIyQVwiXSxcbltcIjg4OWZcIixcIlx1NEU5Q1x1NTUxNlx1NUEwM1x1OTYzRlx1NTRDMFx1NjExQlx1NjMyOFx1NTlGNlx1OTAyMlx1ODQ3NVx1ODMxQ1x1N0E1MFx1NjBBQVx1NjNFMVx1NkUyNVx1NjVFRFx1ODQ2Nlx1ODJBNlx1OUJGNVx1Njg5M1x1NTcyN1x1NjVBMVx1NjI3MVx1NUI5Qlx1NTlEMFx1ODY3Qlx1OThGNFx1N0Q2Mlx1N0RCRVx1OUI4RVx1NjIxNlx1N0M5Rlx1ODhCN1x1NUI4OVx1NUVCNVx1NjMwOVx1NjY5N1x1Njg0OFx1OTVDN1x1OTc4RFx1Njc0Rlx1NEVFNVx1NEYwQVx1NEY0RFx1NEY5RFx1NTA0OVx1NTZGMlx1NTkzN1x1NTlENFx1NUEwMVx1NUMwOVx1NjBERlx1NjEwRlx1NjE3MFx1NjYxM1x1NjkwNVx1NzBCQVx1NzU0Rlx1NzU3MFx1NzlGQlx1N0RBRFx1N0RFRlx1ODBDM1x1ODQwRVx1ODg2M1x1OEIwMlx1OTA1NVx1OTA3QVx1NTMzQlx1NEU5NVx1NEVBNVx1NTdERlx1ODBCMlx1OTBDMVx1NzhFRlx1NEUwMFx1NThGMVx1NkVBMlx1OTAzOFx1N0EzMlx1ODMyOFx1ODI4Qlx1OUMyRlx1NTE0MVx1NTM3MFx1NTRCRFx1NTRFMVx1NTZFMFx1NTlGQlx1NUYxNVx1OThGMlx1NkRFQlx1ODBFNFx1ODUyRFwiXSxcbltcIjg5NDBcIixcIlx1OTY2Mlx1OTY3MFx1OTZBMFx1OTdGQlx1NTQwQlx1NTNGM1x1NUI4N1x1NzBDRlx1N0ZCRFx1OEZDMlx1OTZFOFx1NTM2Rlx1OUQ1Q1x1N0FCQVx1NEUxMVx1Nzg5M1x1ODFGQ1x1NkUyNlx1NTYxOFx1NTUwNFx1NkIxRFx1ODUxQVx1OUMzQlx1NTlFNVx1NTNBOVx1NkQ2Nlx1NzREQ1x1OTU4Rlx1NTY0Mlx1NEU5MVx1OTA0Qlx1OTZGMlx1ODM0Rlx1OTkwQ1x1NTNFMVx1NTVCNlx1NUIzMFx1NUY3MVx1NjYyMFx1NjZGM1x1NjgwNFx1NkMzOFx1NkNGM1x1NkQyOVx1NzQ1Qlx1NzZDOFx1N0E0RVx1OTgzNFx1ODJGMVx1ODg1Qlx1OEE2MFx1OTJFRFx1NkRCMlx1NzVBQlx1NzZDQVx1OTlDNVx1NjBBNlx1OEIwMVx1OEQ4QVx1OTVCMlx1Njk4RVx1NTNBRFx1NTE4NlwiXSxcbltcIjg5ODBcIixcIlx1NTcxMlx1NTgzMFx1NTk0NFx1NUJCNFx1NUVGNlx1NjAyOFx1NjNBOVx1NjNGNFx1NkNCRlx1NkYxNFx1NzA4RVx1NzExNFx1NzE1OVx1NzFENVx1NzMzRlx1N0UwMVx1ODI3Nlx1ODJEMVx1ODU5N1x1OTA2MFx1OTI1Qlx1OUQxQlx1NTg2OVx1NjVCQ1x1NkM1QVx1NzUyNVx1NTFGOVx1NTkyRVx1NTk2NVx1NUY4MFx1NUZEQ1x1NjJCQ1x1NjVGQVx1NkEyQVx1NkIyN1x1NkJCNFx1NzM4Qlx1N0ZDMVx1ODk1Nlx1OUQyQ1x1OUQwRVx1OUVDNFx1NUNBMVx1NkM5Nlx1ODM3Qlx1NTEwNFx1NUM0Qlx1NjFCNlx1ODFDNlx1Njg3Nlx1NzI2MVx1NEU1OVx1NEZGQVx1NTM3OFx1NjA2OVx1NkUyOVx1N0E0Rlx1OTdGM1x1NEUwQlx1NTMxNlx1NEVFRVx1NEY1NVx1NEYzRFx1NEZBMVx1NEY3M1x1NTJBMFx1NTNFRlx1NTYwOVx1NTkwRlx1NUFDMVx1NUJCNlx1NUJFMVx1NzlEMVx1NjY4N1x1Njc5Q1x1NjdCNlx1NkI0Q1x1NkNCM1x1NzA2Qlx1NzNDMlx1Nzk4RFx1NzlCRVx1N0EzQ1x1N0I4N1x1ODJCMVx1ODJEQlx1ODMwNFx1ODM3N1x1ODNFRlx1ODNEM1x1ODc2Nlx1OEFCMlx1NTYyOVx1OENBOFx1OEZFNlx1OTA0RVx1OTcxRVx1ODY4QVx1NEZDNFx1NUNFOFx1NjIxMVx1NzI1OVx1NzUzQlx1ODFFNVx1ODJCRFx1ODZGRVx1OENDMFx1OTZDNVx1OTkxM1x1OTlENVx1NEVDQlx1NEYxQVx1ODlFM1x1NTZERVx1NTg0QVx1NThDQVx1NUVGQlx1NUZFQlx1NjAyQVx1NjA5NFx1NjA2Mlx1NjFEMFx1NjIxMlx1NjJEMFx1NjUzOVwiXSxcbltcIjhhNDBcIixcIlx1OUI0MVx1NjY2Nlx1NjhCMFx1NkQ3N1x1NzA3MFx1NzU0Q1x1NzY4Nlx1N0Q3NVx1ODJBNVx1ODdGOVx1OTU4Qlx1OTY4RVx1OEM5RFx1NTFGMVx1NTJCRVx1NTkxNlx1NTRCM1x1NUJCM1x1NUQxNlx1NjE2OFx1Njk4Mlx1NkRBRlx1Nzg4RFx1ODRDQlx1ODg1N1x1OEE3Mlx1OTNBN1x1OUFCOFx1NkQ2Q1x1OTlBOFx1ODZEOVx1NTdBM1x1NjdGRlx1ODZDRVx1OTIwRVx1NTI4M1x1NTY4N1x1NTQwNFx1NUVEM1x1NjJFMVx1NjRCOVx1NjgzQ1x1NjgzOFx1NkJCQlx1NzM3Mlx1NzhCQVx1N0E2Qlx1ODk5QVx1ODlEMlx1OEQ2Qlx1OEYwM1x1OTBFRFx1OTVBM1x1OTY5NFx1OTc2OVx1NUI2Nlx1NUNCM1x1Njk3RFx1OTg0RFx1OTg0RVx1NjM5Qlx1N0IyMFx1NkEyQlwiXSxcbltcIjhhODBcIixcIlx1NkE3Rlx1NjhCNlx1OUMwRFx1NkY1Rlx1NTI3Mlx1NTU5RFx1NjA3MFx1NjJFQ1x1NkQzQlx1NkUwN1x1NkVEMVx1ODQ1Qlx1ODkxMFx1OEY0NFx1NEUxNFx1OUMzOVx1NTNGNlx1NjkxQlx1NkEzQVx1OTc4NFx1NjgyQVx1NTE1Q1x1N0FDM1x1ODRCMlx1OTFEQ1x1OTM4Q1x1NTY1Qlx1OUQyOFx1NjgyMlx1ODMwNVx1ODQzMVx1N0NBNVx1NTIwOFx1ODJDNVx1NzRFNlx1NEU3RVx1NEY4M1x1NTFBMFx1NUJEMlx1NTIwQVx1NTJEOFx1NTJFN1x1NURGQlx1NTU5QVx1NTgyQVx1NTlFNlx1NUI4Q1x1NUI5OFx1NUJEQlx1NUU3Mlx1NUU3OVx1NjBBM1x1NjExRlx1NjE2M1x1NjFCRVx1NjNEQlx1NjU2Mlx1NjdEMVx1Njg1M1x1NjhGQVx1NkIzRVx1NkI1M1x1NkM1N1x1NkYyMlx1NkY5N1x1NkY0NVx1NzRCMFx1NzUxOFx1NzZFM1x1NzcwQlx1N0FGRlx1N0JBMVx1N0MyMVx1N0RFOVx1N0YzNlx1N0ZGMFx1ODA5RFx1ODI2Nlx1ODM5RVx1ODlCM1x1OEFDQ1x1OENBQlx1OTA4NFx1OTQ1MVx1OTU5M1x1OTU5MVx1OTVBMlx1OTY2NVx1OTdEM1x1OTkyOFx1ODIxOFx1NEUzOFx1NTQyQlx1NUNCOFx1NURDQ1x1NzNBOVx1NzY0Q1x1NzczQ1x1NUNBOVx1N0ZFQlx1OEQwQlx1OTZDMVx1OTgxMVx1OTg1NFx1OTg1OFx1NEYwMVx1NEYwRVx1NTM3MVx1NTU5Q1x1NTY2OFx1NTdGQVx1NTk0N1x1NUIwOVx1NUJDNFx1NUM5MFx1NUUwQ1x1NUU3RVx1NUZDQ1x1NjNFRVx1NjczQVx1NjVEN1x1NjVFMlx1NjcxRlx1NjhDQlx1NjhDNFwiXSxcbltcIjhiNDBcIixcIlx1NkE1Rlx1NUUzMFx1NkJDNVx1NkMxN1x1NkM3RFx1NzU3Rlx1Nzk0OFx1NUI2M1x1N0EwMFx1N0QwMFx1NUZCRFx1ODk4Rlx1OEExOFx1OENCNFx1OEQ3N1x1OEVDQ1x1OEYxRFx1OThFMlx1OUEwRVx1OUIzQ1x1NEU4MFx1NTA3RFx1NTEwMFx1NTk5M1x1NUI5Q1x1NjIyRlx1NjI4MFx1NjRFQ1x1NkIzQVx1NzJBMFx1NzU5MVx1Nzk0N1x1N0ZBOVx1ODdGQlx1OEFCQ1x1OEI3MFx1NjNBQ1x1ODNDQVx1OTdBMFx1NTQwOVx1NTQwM1x1NTVBQlx1Njg1NFx1NkE1OFx1OEE3MFx1NzgyN1x1Njc3NVx1OUVDRFx1NTM3NFx1NUJBMlx1ODExQVx1ODY1MFx1OTAwNlx1NEUxOFx1NEU0NVx1NEVDN1x1NEYxMVx1NTNDQVx1NTQzOFx1NUJBRVx1NUYxM1x1NjAyNVx1NjU1MVwiXSxcbltcIjhiODBcIixcIlx1NjczRFx1NkM0Mlx1NkM3Mlx1NkNFM1x1NzA3OFx1NzQwM1x1N0E3Nlx1N0FBRVx1N0IwOFx1N0QxQVx1N0NGRVx1N0Q2Nlx1NjVFN1x1NzI1Qlx1NTNCQlx1NUM0NVx1NURFOFx1NjJEMlx1NjJFMFx1NjMxOVx1NkUyMFx1ODY1QVx1OEEzMVx1OERERFx1OTJGOFx1NkYwMVx1NzlBNlx1OUI1QVx1NEVBOFx1NEVBQlx1NEVBQ1x1NEY5Qlx1NEZBMFx1NTBEMVx1NTE0N1x1N0FGNlx1NTE3MVx1NTFGNlx1NTM1NFx1NTMyMVx1NTM3Rlx1NTNFQlx1NTVBQ1x1NTg4M1x1NUNFMVx1NUYzN1x1NUY0QVx1NjAyRlx1NjA1MFx1NjA2RFx1NjMxRlx1NjU1OVx1NkE0Qlx1NkNDMVx1NzJDMlx1NzJFRFx1NzdFRlx1ODBGOFx1ODEwNVx1ODIwOFx1ODU0RVx1OTBGN1x1OTNFMVx1OTdGRlx1OTk1N1x1OUE1QVx1NEVGMFx1NTFERFx1NUMyRFx1NjY4MVx1Njk2RFx1NUM0MFx1NjZGMlx1Njk3NVx1NzM4OVx1Njg1MFx1N0M4MVx1NTBDNVx1NTJFNFx1NTc0N1x1NURGRVx1OTMyNlx1NjVBNFx1NkIyM1x1NkIzRFx1NzQzNFx1Nzk4MVx1NzlCRFx1N0I0Qlx1N0RDQVx1ODJCOVx1ODNDQ1x1ODg3Rlx1ODk1Rlx1OEIzOVx1OEZEMVx1OTFEMVx1NTQxRlx1OTI4MFx1NEU1RFx1NTAzNlx1NTNFNVx1NTMzQVx1NzJEN1x1NzM5Nlx1NzdFOVx1ODJFNlx1OEVBRlx1OTlDNlx1OTlDOFx1OTlEMlx1NTE3N1x1NjExQVx1ODY1RVx1NTVCMFx1N0E3QVx1NTA3Nlx1NUJEM1x1OTA0N1x1OTY4NVx1NEUzMlx1NkFEQlx1OTFFN1x1NUM1MVx1NUM0OFwiXSxcbltcIjhjNDBcIixcIlx1NjM5OFx1N0E5Rlx1NkM5M1x1OTc3NFx1OEY2MVx1N0FBQVx1NzE4QVx1OTY4OFx1N0M4Mlx1NjgxN1x1N0U3MFx1Njg1MVx1OTM2Q1x1NTJGMlx1NTQxQlx1ODVBQlx1OEExM1x1N0ZBNFx1OEVDRFx1OTBFMVx1NTM2Nlx1ODg4OFx1Nzk0MVx1NEZDMlx1NTBCRVx1NTIxMVx1NTE0NFx1NTU1M1x1NTcyRFx1NzNFQVx1NTc4Qlx1NTk1MVx1NUY2Mlx1NUY4NFx1NjA3NVx1NjE3Nlx1NjE2N1x1NjFBOVx1NjNCMlx1NjQzQVx1NjU2Q1x1NjY2Rlx1Njg0Mlx1NkUxM1x1NzU2Nlx1N0EzRFx1N0NGQlx1N0Q0Q1x1N0Q5OVx1N0U0Qlx1N0Y2Qlx1ODMwRVx1ODM0QVx1ODZDRFx1OEEwOFx1OEE2M1x1OEI2Nlx1OEVGRFx1OTgxQVx1OUQ4Rlx1ODJCOFx1OEZDRVx1OUJFOFwiXSxcbltcIjhjODBcIixcIlx1NTI4N1x1NjIxRlx1NjQ4M1x1NkZDMFx1OTY5OVx1Njg0MVx1NTA5MVx1NkIyMFx1NkM3QVx1NkY1NFx1N0E3NFx1N0Q1MFx1ODg0MFx1OEEyM1x1NjcwOFx1NEVGNlx1NTAzOVx1NTAyNlx1NTA2NVx1NTE3Q1x1NTIzOFx1NTI2M1x1NTVBN1x1NTcwRlx1NTgwNVx1NUFDQ1x1NUVGQVx1NjFCMlx1NjFGOFx1NjJGM1x1NjM3Mlx1NjkxQ1x1NkEyOVx1NzI3RFx1NzJBQ1x1NzMyRVx1NzgxNFx1Nzg2Rlx1N0Q3OVx1NzcwQ1x1ODBBOVx1ODk4Qlx1OEIxOVx1OENFMlx1OEVEMlx1OTA2M1x1OTM3NVx1OTY3QVx1OTg1NVx1OUExM1x1OUU3OFx1NTE0M1x1NTM5Rlx1NTNCM1x1NUU3Qlx1NUYyNlx1NkUxQlx1NkU5MFx1NzM4NFx1NzNGRVx1N0Q0M1x1ODIzN1x1OEEwMFx1OEFGQVx1OTY1MFx1NEU0RVx1NTAwQlx1NTNFNFx1NTQ3Q1x1NTZGQVx1NTlEMVx1NUI2NFx1NURGMVx1NUVBQlx1NUYyN1x1NjIzOFx1NjU0NVx1NjdBRlx1NkU1Nlx1NzJEMFx1N0NDQVx1ODhCNFx1ODBBMVx1ODBFMVx1ODNGMFx1ODY0RVx1OEE4N1x1OERFOFx1OTIzN1x1OTZDN1x1OTg2N1x1OUYxM1x1NEU5NFx1NEU5Mlx1NEYwRFx1NTM0OFx1NTQ0OVx1NTQzRVx1NUEyRlx1NUY4Q1x1NUZBMVx1NjA5Rlx1NjhBN1x1NkE4RVx1NzQ1QVx1Nzg4MVx1OEE5RVx1OEFBNFx1OEI3N1x1OTE5MFx1NEU1RVx1OUJDOVx1NEVBNFx1NEY3Q1x1NEZBRlx1NTAxOVx1NTAxNlx1NTE0OVx1NTE2Q1x1NTI5Rlx1NTJCOVx1NTJGRVx1NTM5QVx1NTNFM1x1NTQxMVwiXSxcbltcIjhkNDBcIixcIlx1NTQwRVx1NTU4OVx1NTc1MVx1NTdBMlx1NTk3RFx1NUI1NFx1NUI1RFx1NUI4Rlx1NURFNVx1NURFN1x1NURGN1x1NUU3OFx1NUU4M1x1NUU5QVx1NUVCN1x1NUYxOFx1NjA1Mlx1NjE0Q1x1NjI5N1x1NjJEOFx1NjNBN1x1NjUzQlx1NjYwMlx1NjY0M1x1NjZGNFx1Njc2RFx1NjgyMVx1Njg5N1x1NjlDQlx1NkM1Rlx1NkQyQVx1NkQ2OVx1NkUyRlx1NkU5RFx1NzUzMlx1NzY4N1x1Nzg2Q1x1N0EzRlx1N0NFMFx1N0QwNVx1N0QxOFx1N0Q1RVx1N0RCMVx1ODAxNVx1ODAwM1x1ODBBRlx1ODBCMVx1ODE1NFx1ODE4Rlx1ODIyQVx1ODM1Mlx1ODg0Q1x1ODg2MVx1OEIxQlx1OENBMlx1OENGQ1x1OTBDQVx1OTE3NVx1OTI3MVx1NzgzRlx1OTJGQ1x1OTVBNFx1OTY0RFwiXSxcbltcIjhkODBcIixcIlx1OTgwNVx1OTk5OVx1OUFEOFx1OUQzQlx1NTI1Qlx1NTJBQlx1NTNGN1x1NTQwOFx1NThENVx1NjJGN1x1NkZFMFx1OEM2QVx1OEY1Rlx1OUVCOVx1NTE0Qlx1NTIzQlx1NTQ0QVx1NTZGRFx1N0E0MFx1OTE3N1x1OUQ2MFx1OUVEMlx1NzM0NFx1NkYwOVx1ODE3MFx1NzUxMVx1NUZGRFx1NjBEQVx1OUFBOFx1NzJEQlx1OEZCQ1x1NkI2NFx1OTgwM1x1NEVDQVx1NTZGMFx1NTc2NFx1NThCRVx1NUE1QVx1NjA2OFx1NjFDN1x1NjYwRlx1NjYwNlx1NjgzOVx1NjhCMVx1NkRGN1x1NzVENVx1N0QzQVx1ODI2RVx1OUI0Mlx1NEU5Qlx1NEY1MFx1NTNDOVx1NTUwNlx1NUQ2Rlx1NURFNlx1NURFRVx1NjdGQlx1NkM5OVx1NzQ3M1x1NzgwMlx1OEE1MFx1OTM5Nlx1ODhERlx1NTc1MFx1NUVBN1x1NjMyQlx1NTBCNVx1NTBBQ1x1NTE4RFx1NjcwMFx1NTRDOVx1NTg1RVx1NTlCQlx1NUJCMFx1NUY2OVx1NjI0RFx1NjNBMVx1NjgzRFx1NkI3M1x1NkUwOFx1NzA3RFx1OTFDN1x1NzI4MFx1NzgxNVx1NzgyNlx1Nzk2RFx1NjU4RVx1N0QzMFx1ODNEQ1x1ODhDMVx1OEYwOVx1OTY5Qlx1NTI2NFx1NTcyOFx1Njc1MFx1N0Y2QVx1OENBMVx1NTFCNFx1NTc0Mlx1OTYyQVx1NTgzQVx1Njk4QVx1ODBCNFx1NTRCMlx1NUQwRVx1NTdGQ1x1Nzg5NVx1OURGQVx1NEY1Q1x1NTI0QVx1NTQ4Qlx1NjQzRVx1NjYyOFx1NjcxNFx1NjdGNVx1N0E4NFx1N0I1Nlx1N0QyMlx1OTMyRlx1Njg1Q1x1OUJBRFx1N0IzOVx1NTMxOVx1NTE4QVx1NTIzN1wiXSxcbltcIjhlNDBcIixcIlx1NUJERlx1NjJGNlx1NjRBRVx1NjRFNlx1NjcyRFx1NkJCQVx1ODVBOVx1OTZEMVx1NzY5MFx1OUJENlx1NjM0Q1x1OTMwNlx1OUJBQlx1NzZCRlx1NjY1Mlx1NEUwOVx1NTA5OFx1NTNDMlx1NUM3MVx1NjBFOFx1NjQ5Mlx1NjU2M1x1Njg1Rlx1NzFFNlx1NzNDQVx1NzUyM1x1N0I5N1x1N0U4Mlx1ODY5NVx1OEI4M1x1OENEQlx1OTE3OFx1OTkxMFx1NjVBQ1x1NjZBQlx1NkI4Qlx1NEVENVx1NEVENFx1NEYzQVx1NEY3Rlx1NTIzQVx1NTNGOFx1NTNGMlx1NTVFM1x1NTZEQlx1NThFQlx1NTlDQlx1NTlDOVx1NTlGRlx1NUI1MFx1NUM0RFx1NUUwMlx1NUUyQlx1NUZEN1x1NjAxRFx1NjMwN1x1NjUyRlx1NUI1Q1x1NjVBRlx1NjVCRFx1NjVFOFx1Njc5RFx1NkI2MlwiXSxcbltcIjhlODBcIixcIlx1NkI3Qlx1NkMwRlx1NzM0NVx1Nzk0OVx1NzlDMVx1N0NGOFx1N0QxOVx1N0QyQlx1ODBBMlx1ODEwMlx1ODFGM1x1ODk5Nlx1OEE1RVx1OEE2OVx1OEE2Nlx1OEE4Q1x1OEFFRVx1OENDN1x1OENEQ1x1OTZDQ1x1OThGQ1x1NkI2Rlx1NEU4Qlx1NEYzQ1x1NEY4RFx1NTE1MFx1NUI1N1x1NUJGQVx1NjE0OFx1NjMwMVx1NjY0Mlx1NkIyMVx1NkVDQlx1NkNCQlx1NzIzRVx1NzRCRFx1NzVENFx1NzhDMVx1NzkzQVx1ODAwQ1x1ODAzM1x1ODFFQVx1ODQ5NFx1OEY5RVx1NkM1MFx1OUU3Rlx1NUYwRlx1OEI1OFx1OUQyQlx1N0FGQVx1OEVGOFx1NUI4RFx1OTZFQlx1NEUwM1x1NTNGMVx1NTdGN1x1NTkzMVx1NUFDOVx1NUJBNFx1NjA4OVx1NkU3Rlx1NkYwNlx1NzVCRVx1OENFQVx1NUI5Rlx1ODUwMFx1N0JFMFx1NTA3Mlx1NjdGNFx1ODI5RFx1NUM2MVx1ODU0QVx1N0UxRVx1ODIwRVx1NTE5OVx1NUMwNFx1NjM2OFx1OEQ2Nlx1NjU5Q1x1NzE2RVx1NzkzRVx1N0QxN1x1ODAwNVx1OEIxRFx1OEVDQVx1OTA2RVx1ODZDN1x1OTBBQVx1NTAxRlx1NTJGQVx1NUMzQVx1Njc1M1x1NzA3Q1x1NzIzNVx1OTE0Q1x1OTFDOFx1OTMyQlx1ODJFNVx1NUJDMlx1NUYzMVx1NjBGOVx1NEUzQlx1NTNENlx1NUI4OFx1NjI0Qlx1NjczMVx1NkI4QVx1NzJFOVx1NzNFMFx1N0EyRVx1ODE2Qlx1OERBM1x1OTE1Mlx1OTk5Nlx1NTExMlx1NTNEN1x1NTQ2QVx1NUJGRlx1NjM4OFx1NkEzOVx1N0RBQ1x1OTcwMFx1NTZEQVx1NTNDRVx1NTQ2OFwiXSxcbltcIjhmNDBcIixcIlx1NUI5N1x1NUMzMVx1NURERVx1NEZFRVx1NjEwMVx1NjJGRVx1NkQzMlx1NzlDMFx1NzlDQlx1N0Q0Mlx1N0U0RFx1N0ZEMlx1ODFFRFx1ODIxRlx1ODQ5MFx1ODg0Nlx1ODk3Mlx1OEI5MFx1OEU3NFx1OEYyRlx1OTAzMVx1OTE0Qlx1OTE2Q1x1OTZDNlx1OTE5Q1x1NEVDMFx1NEY0Rlx1NTE0NVx1NTM0MVx1NUY5M1x1NjIwRVx1NjdENFx1NkM0MVx1NkUwQlx1NzM2M1x1N0UyNlx1OTFDRFx1OTI4M1x1NTNENFx1NTkxOVx1NUJCRlx1NkREMVx1Nzk1RFx1N0UyRVx1N0M5Qlx1NTg3RVx1NzE5Rlx1NTFGQVx1ODg1M1x1OEZGMFx1NEZDQVx1NUNGQlx1NjYyNVx1NzdBQ1x1N0FFM1x1ODIxQ1x1OTlGRlx1NTFDNlx1NUZBQVx1NjVFQ1x1Njk2Rlx1NkI4OVx1NkRGM1wiXSxcbltcIjhmODBcIixcIlx1NkU5Nlx1NkY2NFx1NzZGRVx1N0QxNFx1NURFMVx1OTA3NVx1OTE4N1x1OTgwNlx1NTFFNlx1NTIxRFx1NjI0MFx1NjY5MVx1NjZEOVx1NkUxQVx1NUVCNlx1N0REMlx1N0Y3Mlx1NjZGOFx1ODVBRlx1ODVGN1x1OEFGOFx1NTJBOVx1NTNEOVx1NTk3M1x1NUU4Rlx1NUY5MFx1NjA1NVx1OTJFNFx1OTY2NFx1NTBCN1x1NTExRlx1NTJERFx1NTMyMFx1NTM0N1x1NTNFQ1x1NTRFOFx1NTU0Nlx1NTUzMVx1NTYxN1x1NTk2OFx1NTlCRVx1NUEzQ1x1NUJCNVx1NUMwNlx1NUMwRlx1NUMxMVx1NUMxQVx1NUU4NFx1NUU4QVx1NUVFMFx1NUY3MFx1NjI3Rlx1NjI4NFx1NjJEQlx1NjM4Q1x1NjM3N1x1NjYwN1x1NjYwQ1x1NjYyRFx1NjY3Nlx1Njc3RVx1NjhBMlx1NkExRlx1NkEzNVx1NkNCQ1x1NkQ4OFx1NkUwOVx1NkU1OFx1NzEzQ1x1NzEyNlx1NzE2N1x1NzVDN1x1NzcwMVx1Nzg1RFx1NzkwMVx1Nzk2NVx1NzlGMFx1N0FFMFx1N0IxMVx1N0NBN1x1N0QzOVx1ODA5Nlx1ODNENlx1ODQ4Qlx1ODU0OVx1ODg1RFx1ODhGM1x1OEExRlx1OEEzQ1x1OEE1NFx1OEE3M1x1OEM2MVx1OENERVx1OTFBNFx1OTI2Nlx1OTM3RVx1OTQxOFx1OTY5Q1x1OTc5OFx1NEUwQVx1NEUwOFx1NEUxRVx1NEU1N1x1NTE5N1x1NTI3MFx1NTdDRVx1NTgzNFx1NThDQ1x1NUIyMlx1NUUzOFx1NjBDNVx1NjRGRVx1Njc2MVx1Njc1Nlx1NkQ0NFx1NzJCNlx1NzU3M1x1N0E2M1x1ODRCOFx1OEI3Mlx1OTFCOFx1OTMyMFx1NTYzMVx1NTdGNFx1OThGRVwiXSxcbltcIjkwNDBcIixcIlx1NjJFRFx1NjkwRFx1NkI5Nlx1NzFFRFx1N0U1NFx1ODA3N1x1ODI3Mlx1ODlFNlx1OThERlx1ODc1NVx1OEZCMVx1NUMzQlx1NEYzOFx1NEZFMVx1NEZCNVx1NTUwN1x1NUEyMFx1NUJERFx1NUJFOVx1NUZDM1x1NjE0RVx1NjMyRlx1NjVCMFx1NjY0Qlx1NjhFRVx1Njk5Qlx1NkQ3OFx1NkRGMVx1NzUzM1x1NzVCOVx1NzcxRlx1Nzk1RVx1NzlFNlx1N0QzM1x1ODFFM1x1ODJBRlx1ODVBQVx1ODlBQVx1OEEzQVx1OEVBQlx1OEY5Qlx1OTAzMlx1OTFERFx1OTcwN1x1NEVCQVx1NEVDMVx1NTIwM1x1NTg3NVx1NThFQ1x1NUMwQlx1NzUxQVx1NUMzRFx1ODE0RVx1OEEwQVx1OEZDNVx1OTY2M1x1OTc2RFx1N0IyNVx1OEFDRlx1OTgwOFx1OTE2Mlx1NTZGM1x1NTNBOFwiXSxcbltcIjkwODBcIixcIlx1OTAxN1x1NTQzOVx1NTc4Mlx1NUUyNVx1NjNBOFx1NkMzNFx1NzA4QVx1Nzc2MVx1N0M4Qlx1N0ZFMFx1ODg3MFx1OTA0Mlx1OTE1NFx1OTMxMFx1OTMxOFx1OTY4Rlx1NzQ1RVx1OUFDNFx1NUQwN1x1NUQ2OVx1NjU3MFx1NjdBMlx1OERBOFx1OTZEQlx1NjM2RVx1Njc0OVx1NjkxOVx1ODNDNVx1OTgxN1x1OTZDMFx1ODhGRVx1NkY4NFx1NjQ3QVx1NUJGOFx1NEUxNlx1NzAyQ1x1NzU1RFx1NjYyRlx1NTFDNFx1NTIzNlx1NTJFMlx1NTlEM1x1NUY4MVx1NjAyN1x1NjIxMFx1NjUzRlx1NjU3NFx1NjYxRlx1NjY3NFx1NjhGMlx1NjgxNlx1NkI2M1x1NkUwNVx1NzI3Mlx1NzUxRlx1NzZEQlx1N0NCRVx1ODA1Nlx1NThGMFx1ODhGRFx1ODk3Rlx1OEFBMFx1OEE5M1x1OEFDQlx1OTAxRFx1OTE5Mlx1OTc1Mlx1OTc1OVx1NjU4OVx1N0EwRVx1ODEwNlx1OTZCQlx1NUUyRFx1NjBEQ1x1NjIxQVx1NjVBNVx1NjYxNFx1Njc5MFx1NzdGM1x1N0E0RFx1N0M0RFx1N0UzRVx1ODEwQVx1OENBQ1x1OEQ2NFx1OERFMVx1OEU1Rlx1NzhBOVx1NTIwN1x1NjJEOVx1NjNBNVx1NjQ0Mlx1NjI5OFx1OEEyRFx1N0E4M1x1N0JDMFx1OEFBQ1x1OTZFQVx1N0Q3Nlx1ODIwQ1x1ODc0OVx1NEVEOVx1NTE0OFx1NTM0M1x1NTM2MFx1NUJBM1x1NUMwMlx1NUMxNlx1NURERFx1NjIyNlx1NjI0N1x1NjRCMFx1NjgxM1x1NjgzNFx1NkNDOVx1NkQ0NVx1NkQxN1x1NjdEM1x1NkY1Q1x1NzE0RVx1NzE3RFx1NjVDQlx1N0E3Rlx1N0JBRFx1N0REQVwiXSxcbltcIjkxNDBcIixcIlx1N0U0QVx1N0ZBOFx1ODE3QVx1ODIxQlx1ODIzOVx1ODVBNlx1OEE2RVx1OENDRVx1OERGNVx1OTA3OFx1OTA3N1x1OTJBRFx1OTI5MVx1OTU4M1x1OUJBRVx1NTI0RFx1NTU4NFx1NkYzOFx1NzEzNlx1NTE2OFx1Nzk4NVx1N0U1NVx1ODFCM1x1N0NDRVx1NTY0Q1x1NTg1MVx1NUNBOFx1NjNBQVx1NjZGRVx1NjZGRFx1Njk1QVx1NzJEOVx1NzU4Rlx1NzU4RVx1NzkwRVx1Nzk1Nlx1NzlERlx1N0M5N1x1N0QyMFx1N0Q0NFx1ODYwN1x1OEEzNFx1OTYzQlx1OTA2MVx1OUYyMFx1NTBFN1x1NTI3NVx1NTNDQ1x1NTNFMlx1NTAwOVx1NTVBQVx1NThFRVx1NTk0Rlx1NzIzRFx1NUI4Qlx1NUM2NFx1NTMxRFx1NjBFM1x1NjBGM1x1NjM1Q1x1NjM4M1x1NjMzRlx1NjNCQlwiXSxcbltcIjkxODBcIixcIlx1NjRDRFx1NjVFOVx1NjZGOVx1NURFM1x1NjlDRFx1NjlGRFx1NkYxNVx1NzFFNVx1NEU4OVx1NzVFOVx1NzZGOFx1N0E5M1x1N0NERlx1N0RDRlx1N0Q5Q1x1ODA2MVx1ODM0OVx1ODM1OFx1ODQ2Q1x1ODRCQ1x1ODVGQlx1ODhDNVx1OEQ3MFx1OTAwMVx1OTA2RFx1OTM5N1x1OTcxQ1x1OUExMlx1NTBDRlx1NTg5N1x1NjE4RVx1ODFEM1x1ODUzNVx1OEQwOFx1OTAyMFx1NEZDM1x1NTA3NFx1NTI0N1x1NTM3M1x1NjA2Rlx1NjM0OVx1Njc1Rlx1NkUyQ1x1OERCM1x1OTAxRlx1NEZEN1x1NUM1RVx1OENDQVx1NjVDRlx1N0Q5QVx1NTM1Mlx1ODg5Nlx1NTE3Nlx1NjNDM1x1NUI1OFx1NUI2Qlx1NUMwQVx1NjQwRFx1Njc1MVx1OTA1Q1x1NEVENlx1NTkxQVx1NTkyQVx1NkM3MFx1OEE1MVx1NTUzRVx1NTgxNVx1NTlBNVx1NjBGMFx1NjI1M1x1NjdDMVx1ODIzNVx1Njk1NVx1OTY0MFx1OTlDNFx1OUEyOFx1NEY1M1x1NTgwNlx1NUJGRVx1ODAxMFx1NUNCMVx1NUUyRlx1NUY4NVx1NjAyMFx1NjE0Qlx1NjIzNFx1NjZGRlx1NkNGMFx1NkVERVx1ODBDRVx1ODE3Rlx1ODJENFx1ODg4Qlx1OENCOFx1OTAwMFx1OTAyRVx1OTY4QVx1OUVEQlx1OUJEQlx1NEVFM1x1NTNGMFx1NTkyN1x1N0IyQ1x1OTE4RFx1OTg0Q1x1OURGOVx1NkVERFx1NzAyN1x1NTM1M1x1NTU0NFx1NUI4NVx1NjI1OFx1NjI5RVx1NjJEM1x1NkNBMlx1NkZFRlx1NzQyMlx1OEExN1x1OTQzOFx1NkZDMVx1OEFGRVx1ODMzOFx1NTFFN1x1ODZGOFx1NTNFQVwiXSxcbltcIjkyNDBcIixcIlx1NTNFOVx1NEY0Nlx1OTA1NFx1OEZCMFx1NTk2QVx1ODEzMVx1NURGRFx1N0FFQVx1OEZCRlx1NjhEQVx1OEMzN1x1NzJGOFx1OUM0OFx1NkEzRFx1OEFCMFx1NEUzOVx1NTM1OFx1NTYwNlx1NTc2Nlx1NjJDNVx1NjNBMlx1NjVFNlx1NkI0RVx1NkRFMVx1NkU1Qlx1NzBBRFx1NzdFRFx1N0FFRlx1N0JBQVx1N0RCQlx1ODAzRFx1ODBDNlx1ODZDQlx1OEE5NVx1OTM1Qlx1NTZFM1x1NThDN1x1NUYzRVx1NjVBRFx1NjY5Nlx1NkE4MFx1NkJCNVx1NzUzN1x1OEFDN1x1NTAyNFx1NzdFNVx1NTczMFx1NUYxQlx1NjA2NVx1NjY3QVx1NkM2MFx1NzVGNFx1N0ExQVx1N0Y2RVx1ODFGNFx1ODcxOFx1OTA0NVx1OTlCM1x1N0JDOVx1NzU1Q1x1N0FGOVx1N0I1MVx1ODRDNFwiXSxcbltcIjkyODBcIixcIlx1OTAxMFx1NzlFOVx1N0E5Mlx1ODMzNlx1NUFFMVx1Nzc0MFx1NEUyRFx1NEVGMlx1NUI5OVx1NUZFMFx1NjJCRFx1NjYzQ1x1NjdGMVx1NkNFOFx1ODY2Qlx1ODg3N1x1OEEzQlx1OTE0RVx1OTJGM1x1OTlEMFx1NkExN1x1NzAyNlx1NzMyQVx1ODJFN1x1ODQ1N1x1OENBRlx1NEUwMVx1NTE0Nlx1NTFDQlx1NTU4Qlx1NUJGNVx1NUUxNlx1NUUzM1x1NUU4MVx1NUYxNFx1NUYzNVx1NUY2Qlx1NUZCNFx1NjFGMlx1NjMxMVx1NjZBMlx1NjcxRFx1NkY2RVx1NzI1Mlx1NzUzQVx1NzczQVx1ODA3NFx1ODEzOVx1ODE3OFx1ODc3Nlx1OEFCRlx1OEFEQ1x1OEQ4NVx1OERGM1x1OTI5QVx1OTU3N1x1OTgwMlx1OUNFNVx1NTJDNVx1NjM1N1x1NzZGNFx1NjcxNVx1NkM4OFx1NzNDRFx1OENDM1x1OTNBRVx1OTY3M1x1NkQyNVx1NTg5Q1x1NjkwRVx1NjlDQ1x1OEZGRFx1OTM5QVx1NzVEQlx1OTAxQVx1NTg1QVx1NjgwMlx1NjNCNFx1NjlGQlx1NEY0M1x1NkYyQ1x1NjdEOFx1OEZCQlx1ODUyNlx1N0RCNFx1OTM1NFx1NjkzRlx1NkY3MFx1NTc2QVx1NThGN1x1NUIyQ1x1N0QyQ1x1NzIyQVx1NTQwQVx1OTFFM1x1OURCNFx1NEVBRFx1NEY0RVx1NTA1Q1x1NTA3NVx1NTI0M1x1OEM5RVx1NTQ0OFx1NTgyNFx1NUI5QVx1NUUxRFx1NUU5NVx1NUVBRFx1NUVGN1x1NUYxRlx1NjA4Q1x1NjJCNVx1NjMzQVx1NjNEMFx1NjhBRlx1NkM0MFx1Nzg4N1x1Nzk4RVx1N0EwQlx1N0RFMFx1ODI0N1x1OEEwMlx1OEFFNlx1OEU0NFx1OTAxM1wiXSxcbltcIjkzNDBcIixcIlx1OTBCOFx1OTEyRFx1OTFEOFx1OUYwRVx1NkNFNVx1NjQ1OFx1NjRFMlx1NjU3NVx1NkVGNFx1NzY4NFx1N0IxQlx1OTA2OVx1OTNEMVx1NkVCQVx1NTRGMlx1NUZCOVx1NjRBNFx1OEY0RFx1OEZFRFx1OTI0NFx1NTE3OFx1NTg2Qlx1NTkyOVx1NUM1NVx1NUU5N1x1NkRGQlx1N0U4Rlx1NzUxQ1x1OENCQ1x1OEVFMlx1OTg1Qlx1NzBCOVx1NEYxRFx1NkJCRlx1NkZCMVx1NzUzMFx1OTZGQlx1NTE0RVx1NTQxMFx1NTgzNVx1NTg1N1x1NTlBQ1x1NUM2MFx1NUY5Mlx1NjU5N1x1Njc1Q1x1NkUyMVx1NzY3Qlx1ODNERlx1OENFRFx1OTAxNFx1OTBGRFx1OTM0RFx1NzgyNVx1NzgzQVx1NTJBQVx1NUVBNlx1NTcxRlx1NTk3NFx1NjAxMlx1NTAxMlx1NTE1QVx1NTFBQ1wiXSxcbltcIjkzODBcIixcIlx1NTFDRFx1NTIwMFx1NTUxMFx1NTg1NFx1NTg1OFx1NTk1N1x1NUI5NVx1NUNGNlx1NUQ4Qlx1NjBCQ1x1NjI5NVx1NjQyRFx1Njc3MVx1Njg0M1x1NjhCQ1x1NjhERlx1NzZEN1x1NkREOFx1NkU2Rlx1NkQ5Qlx1NzA2Rlx1NzFDOFx1NUY1M1x1NzVEOFx1Nzk3N1x1N0I0OVx1N0I1NFx1N0I1Mlx1N0NENlx1N0Q3MVx1NTIzMFx1ODQ2M1x1ODU2OVx1ODVFNFx1OEEwRVx1OEIwNFx1OEM0Nlx1OEUwRlx1OTAwM1x1OTAwRlx1OTQxOVx1OTY3Nlx1OTgyRFx1OUEzMFx1OTVEOFx1NTBDRFx1NTJENVx1NTQwQ1x1NTgwMlx1NUMwRVx1NjFBN1x1NjQ5RVx1NkQxRVx1NzdCM1x1N0FFNVx1ODBGNFx1ODQwNFx1OTA1M1x1OTI4NVx1NUNFMFx1OUQwN1x1NTMzRlx1NUY5N1x1NUZCM1x1NkQ5Q1x1NzI3OVx1Nzc2M1x1NzlCRlx1N0JFNFx1NkJEMlx1NzJFQ1x1OEFBRFx1NjgwM1x1NkE2MVx1NTFGOFx1N0E4MVx1NjkzNFx1NUM0QVx1OUNGNlx1ODJFQlx1NUJDNVx1OTE0OVx1NzAxRVx1NTY3OFx1NUM2Rlx1NjBDN1x1NjU2Nlx1NkM4Q1x1OEM1QVx1OTA0MVx1OTgxM1x1NTQ1MVx1NjZDN1x1OTIwRFx1NTk0OFx1OTBBM1x1NTE4NVx1NEU0RFx1NTFFQVx1ODU5OVx1OEIwRVx1NzA1OFx1NjM3QVx1OTM0Qlx1Njk2Mlx1OTlCNFx1N0UwNFx1NzU3N1x1NTM1N1x1Njk2MFx1OEVERlx1OTZFM1x1NkM1RFx1NEU4Q1x1NUMzQ1x1NUYxMFx1OEZFOVx1NTMwMlx1OENEMVx1ODA4OVx1ODY3OVx1NUVGRlx1NjVFNVx1NEU3M1x1NTE2NVwiXSxcbltcIjk0NDBcIixcIlx1NTk4Mlx1NUMzRlx1OTdFRVx1NEVGQlx1NTk4QVx1NUZDRFx1OEE4RFx1NkZFMVx1NzlCMFx1Nzk2Mlx1NUJFN1x1ODQ3MVx1NzMyQlx1NzFCMVx1NUU3NFx1NUZGNVx1NjM3Qlx1NjQ5QVx1NzFDM1x1N0M5OFx1NEU0M1x1NUVGQ1x1NEU0Qlx1NTdEQ1x1NTZBMlx1NjBBOVx1NkZDM1x1N0QwRFx1ODBGRFx1ODEzM1x1ODFCRlx1OEZCMlx1ODk5N1x1ODZBNFx1NURGNFx1NjI4QVx1NjRBRFx1ODk4N1x1Njc3N1x1NkNFMlx1NkQzRVx1NzQzNlx1NzgzNFx1NUE0Nlx1N0Y3NVx1ODJBRFx1OTlBQ1x1NEZGM1x1NUVDM1x1NjJERFx1NjM5Mlx1NjU1N1x1Njc2Rlx1NzZDM1x1NzI0Q1x1ODBDQ1x1ODBCQVx1OEYyOVx1OTE0RFx1NTAwRFx1NTdGOVx1NUE5Mlx1Njg4NVwiXSxcbltcIjk0ODBcIixcIlx1Njk3M1x1NzE2NFx1NzJGRFx1OENCN1x1NThGMlx1OENFMFx1OTY2QVx1OTAxOVx1ODc3Rlx1NzlFNFx1NzdFN1x1ODQyOVx1NEYyRlx1NTI2NVx1NTM1QVx1NjJDRFx1NjdDRlx1NkNDQVx1NzY3RFx1N0I5NFx1N0M5NVx1ODIzNlx1ODU4NFx1OEZFQlx1NjZERFx1NkYyMFx1NzIwNlx1N0UxQlx1ODNBQlx1OTlDMVx1OUVBNlx1NTFGRFx1N0JCMVx1Nzg3Mlx1N0JCOFx1ODA4N1x1N0I0OFx1NkFFOFx1NUU2MVx1ODA4Q1x1NzU1MVx1NzU2MFx1NTE2Qlx1OTI2Mlx1NkU4Q1x1NzY3QVx1OTE5N1x1OUFFQVx1NEYxMFx1N0Y3MFx1NjI5Q1x1N0I0Rlx1OTVBNVx1OUNFOVx1NTY3QVx1NTg1OVx1ODZFNFx1OTZCQ1x1NEYzNFx1NTIyNFx1NTM0QVx1NTNDRFx1NTNEQlx1NUUwNlx1NjQyQ1x1NjU5MVx1Njc3Rlx1NkMzRVx1NkM0RVx1NzI0OFx1NzJBRlx1NzNFRFx1NzU1NFx1N0U0MVx1ODIyQ1x1ODVFOVx1OENBOVx1N0JDNFx1OTFDNlx1NzE2OVx1OTgxMlx1OThFRlx1NjMzRFx1NjY2OVx1NzU2QVx1NzZFNFx1NzhEMFx1ODU0M1x1ODZFRVx1NTMyQVx1NTM1MVx1NTQyNlx1NTk4M1x1NUU4N1x1NUY3Q1x1NjBCMlx1NjI0OVx1NjI3OVx1NjJBQlx1NjU5MFx1NkJENFx1NkNDQ1x1NzVCMlx1NzZBRVx1Nzg5MVx1NzlEOFx1N0RDQlx1N0Y3N1x1ODBBNVx1ODhBQlx1OEFCOVx1OENCQlx1OTA3Rlx1OTc1RVx1OThEQlx1NkEwQlx1N0MzOFx1NTA5OVx1NUMzRVx1NUZBRVx1Njc4N1x1NkJEOFx1NzQzNVx1NzcwOVx1N0Y4RVwiXSxcbltcIjk1NDBcIixcIlx1OUYzQlx1NjdDQVx1N0ExN1x1NTMzOVx1NzU4Qlx1OUFFRFx1NUY2Nlx1ODE5RFx1ODNGMVx1ODA5OFx1NUYzQ1x1NUZDNVx1NzU2Mlx1N0I0Nlx1OTAzQ1x1Njg2N1x1NTlFQlx1NUE5Qlx1N0QxMFx1NzY3RVx1OEIyQ1x1NEZGNVx1NUY2QVx1NkExOVx1NkMzN1x1NkYwMlx1NzRFMlx1Nzk2OFx1ODg2OFx1OEE1NVx1OEM3OVx1NUVERlx1NjNDRlx1NzVDNVx1NzlEMlx1ODJEN1x1OTMyOFx1OTJGMlx1ODQ5Q1x1ODZFRFx1OUMyRFx1NTRDMVx1NUY2Q1x1NjU4Q1x1NkQ1Q1x1NzAxNVx1OENBN1x1OENEM1x1OTgzQlx1NjU0Rlx1NzRGNlx1NEUwRFx1NEVEOFx1NTdFMFx1NTkyQlx1NUE2Nlx1NUJDQ1x1NTFBOFx1NUUwM1x1NUU5Q1x1NjAxNlx1NjI3Nlx1NjU3N1wiXSxcbltcIjk1ODBcIixcIlx1NjVBN1x1NjY2RVx1NkQ2RVx1NzIzNlx1N0IyNlx1ODE1MFx1ODE5QVx1ODI5OVx1OEI1Q1x1OENBMFx1OENFNlx1OEQ3NFx1OTYxQ1x1OTY0NFx1NEZBRVx1NjRBQlx1NkI2Nlx1ODIxRVx1ODQ2MVx1ODU2QVx1OTBFOFx1NUMwMVx1Njk1M1x1OThBOFx1ODQ3QVx1ODU1N1x1NEYwRlx1NTI2Rlx1NUZBOVx1NUU0NVx1NjcwRFx1Nzk4Rlx1ODE3OVx1ODkwN1x1ODk4Nlx1NkRGNVx1NUYxN1x1NjI1NVx1NkNCOFx1NEVDRlx1NzI2OVx1OUI5Mlx1NTIwNlx1NTQzQlx1NTY3NFx1NThCM1x1NjFBNFx1NjI2RVx1NzExQVx1NTk2RVx1N0M4OVx1N0NERVx1N0QxQlx1OTZGMFx1NjU4N1x1ODA1RVx1NEUxOVx1NEY3NVx1NTE3NVx1NTg0MFx1NUU2M1x1NUU3M1x1NUYwQVx1NjdDNFx1NEUyNlx1ODUzRFx1OTU4OVx1OTY1Qlx1N0M3M1x1OTgwMVx1NTBGQlx1NThDMVx1NzY1Nlx1NzhBN1x1NTIyNVx1NzdBNVx1ODUxMVx1N0I4Nlx1NTA0Rlx1NTkwOVx1NzI0N1x1N0JDN1x1N0RFOFx1OEZCQVx1OEZENFx1OTA0RFx1NEZCRlx1NTJDOVx1NUEyOVx1NUYwMVx1OTdBRFx1NEZERFx1ODIxN1x1OTJFQVx1NTcwM1x1NjM1NVx1NkI2OVx1NzUyQlx1ODhEQ1x1OEYxNFx1N0E0Mlx1NTJERlx1NTg5M1x1NjE1NVx1NjIwQVx1NjZBRVx1NkJDRFx1N0MzRlx1ODNFOVx1NTAyM1x1NEZGOFx1NTMwNVx1NTQ0Nlx1NTgzMVx1NTk0OVx1NUI5RFx1NUNGMFx1NUNFRlx1NUQyOVx1NUU5Nlx1NjJCMVx1NjM2N1x1NjUzRVx1NjVCOVx1NjcwQlwiXSxcbltcIjk2NDBcIixcIlx1NkNENVx1NkNFMVx1NzBGOVx1NzgzMlx1N0UyQlx1ODBERVx1ODJCM1x1ODQwQ1x1ODRFQ1x1ODcwMlx1ODkxMlx1OEEyQVx1OEM0QVx1OTBBNlx1OTJEMlx1OThGRFx1OUNGM1x1OUQ2Q1x1NEU0Rlx1NEVBMVx1NTA4RFx1NTI1Nlx1NTc0QVx1NTlBOFx1NUUzRFx1NUZEOFx1NUZEOVx1NjIzRlx1NjZCNFx1NjcxQlx1NjdEMFx1NjhEMlx1NTE5Mlx1N0QyMVx1ODBBQVx1ODFBOFx1OEIwMFx1OEM4Q1x1OENCRlx1OTI3RVx1OTYzMlx1NTQyMFx1OTgyQ1x1NTMxN1x1NTBENVx1NTM1Q1x1NThBOFx1NjRCMlx1NjczNFx1NzI2N1x1Nzc2Nlx1N0E0Nlx1OTFFNlx1NTJDM1x1NkNBMVx1NkI4Nlx1NTgwMFx1NUU0Q1x1NTk1NFx1NjcyQ1x1N0ZGQlx1NTFFMVx1NzZDNlwiXSxcbltcIjk2ODBcIixcIlx1NjQ2OVx1NzhFOFx1OUI1NFx1OUVCQlx1NTdDQlx1NTlCOVx1NjYyN1x1Njc5QVx1NkJDRVx1NTRFOVx1NjlEOVx1NUU1NVx1ODE5Q1x1Njc5NVx1OUJBQVx1NjdGRVx1OUM1Mlx1Njg1RFx1NEVBNlx1NEZFM1x1NTNDOFx1NjJCOVx1NjcyQlx1NkNBQlx1OEZDNFx1NEZBRFx1N0U2RFx1OUVCRlx1NEUwN1x1NjE2Mlx1NkU4MFx1NkYyQlx1ODUxM1x1NTQ3M1x1NjcyQVx1OUI0NVx1NURGM1x1N0I5NVx1NUNBQ1x1NUJDNlx1ODcxQ1x1NkU0QVx1ODREMVx1N0ExNFx1ODEwOFx1NTk5OVx1N0M4RFx1NkMxMVx1NzcyMFx1NTJEOVx1NTkyMlx1NzEyMVx1NzI1Rlx1NzdEQlx1OTcyN1x1OUQ2MVx1NjkwQlx1NUE3Rlx1NUExOFx1NTFBNVx1NTQwRFx1NTQ3RFx1NjYwRVx1NzZERlx1OEZGN1x1OTI5OFx1OUNGNFx1NTlFQVx1NzI1RFx1NkVDNVx1NTE0RFx1NjhDOVx1N0RCRlx1N0RFQ1x1OTc2Mlx1OUVCQVx1NjQ3OFx1NkEyMVx1ODMwMlx1NTk4NFx1NUI1Rlx1NkJEQlx1NzMxQlx1NzZGMlx1N0RCMlx1ODAxN1x1ODQ5OVx1NTEzMlx1NjcyOFx1OUVEOVx1NzZFRVx1Njc2Mlx1NTJGRlx1OTkwNVx1NUMyNFx1NjIzQlx1N0M3RVx1OENCMFx1NTU0Rlx1NjBCNlx1N0QwQlx1OTU4MFx1NTMwMVx1NEU1Rlx1NTFCNlx1NTkxQ1x1NzIzQVx1ODAzNlx1OTFDRVx1NUYyNVx1NzdFMlx1NTM4NFx1NUY3OVx1N0QwNFx1ODVBQ1x1OEEzM1x1OEU4RFx1OTc1Nlx1NjdGM1x1ODVBRVx1OTQ1M1x1NjEwOVx1NjEwOFx1NkNCOVx1NzY1MlwiXSxcbltcIjk3NDBcIixcIlx1OEFFRFx1OEYzOFx1NTUyRlx1NEY1MVx1NTEyQVx1NTJDN1x1NTNDQlx1NUJBNVx1NUU3RFx1NjBBMFx1NjE4Mlx1NjNENlx1NjcwOVx1NjdEQVx1NkU2N1x1NkQ4Q1x1NzMzNlx1NzMzN1x1NzUzMVx1Nzk1MFx1ODhENVx1OEE5OFx1OTA0QVx1OTA5MVx1OTBGNVx1OTZDNFx1ODc4RFx1NTkxNVx1NEU4OFx1NEY1OVx1NEUwRVx1OEE4OVx1OEYzRlx1OTgxMFx1NTBBRFx1NUU3Q1x1NTk5Nlx1NUJCOVx1NUVCOFx1NjNEQVx1NjNGQVx1NjRDMVx1NjZEQ1x1Njk0QVx1NjlEOFx1NkQwQlx1NkVCNlx1NzE5NFx1NzUyOFx1N0FBRlx1N0Y4QVx1ODAwMFx1ODQ0OVx1ODRDOVx1ODk4MVx1OEIyMVx1OEUwQVx1OTA2NVx1OTY3RFx1OTkwQVx1NjE3RVx1NjI5MVx1NkIzMlwiXSxcbltcIjk3ODBcIixcIlx1NkM4M1x1NkQ3NFx1N0ZDQ1x1N0ZGQ1x1NkRDMFx1N0Y4NVx1ODdCQVx1ODhGOFx1Njc2NVx1ODNCMVx1OTgzQ1x1OTZGN1x1NkQxQlx1N0Q2MVx1ODQzRFx1OTE2QVx1NEU3MVx1NTM3NVx1NUQ1MFx1NkIwNFx1NkZFQlx1ODVDRFx1ODYyRFx1ODlBN1x1NTIyOVx1NTQwRlx1NUM2NVx1Njc0RVx1NjhBOFx1NzQwNlx1NzQ4M1x1NzVFMlx1ODhDRlx1ODhFMVx1OTFDQ1x1OTZFMlx1OTY3OFx1NUY4Qlx1NzM4N1x1N0FDQlx1ODQ0RVx1NjNBMFx1NzU2NVx1NTI4OVx1NkQ0MVx1NkU5Q1x1NzQwOVx1NzU1OVx1Nzg2Qlx1N0M5Mlx1OTY4Nlx1N0FEQ1x1OUY4RFx1NEZCNlx1NjE2RVx1NjVDNVx1ODY1Q1x1NEU4Nlx1NEVBRVx1NTBEQVx1NEUyMVx1NTFDQ1x1NUJFRVx1NjU5OVx1Njg4MVx1NkRCQ1x1NzMxRlx1NzY0Mlx1NzdBRFx1N0ExQ1x1N0NFN1x1ODI2Rlx1OEFEMlx1OTA3Q1x1OTFDRlx1OTY3NVx1OTgxOFx1NTI5Qlx1N0REMVx1NTAyQlx1NTM5OFx1Njc5N1x1NkRDQlx1NzFEMFx1NzQzM1x1ODFFOFx1OEYyQVx1OTZBM1x1OUM1N1x1OUU5Rlx1NzQ2MFx1NTg0MVx1NkQ5OVx1N0QyRlx1OTg1RVx1NEVFNFx1NEYzNlx1NEY4Qlx1NTFCN1x1NTJCMVx1NURCQVx1NjAxQ1x1NzNCMlx1NzkzQ1x1ODJEM1x1OTIzNFx1OTZCN1x1OTZGNlx1OTcwQVx1OUU5N1x1OUY2Mlx1NjZBNlx1NkI3NFx1NTIxN1x1NTJBM1x1NzBDOFx1ODhDMlx1NUVDOVx1NjA0Qlx1NjE5MFx1NkYyM1x1NzE0OVx1N0MzRVx1N0RGNFx1ODA2RlwiXSxcbltcIjk4NDBcIixcIlx1ODRFRVx1OTAyM1x1OTMyQ1x1NTQ0Mlx1OUI2Rlx1NkFEM1x1NzA4OVx1OENDMlx1OERFRlx1OTczMlx1NTJCNFx1NUE0MVx1NUVDQVx1NUYwNFx1NjcxN1x1Njk3Q1x1Njk5NFx1NkQ2QVx1NkYwRlx1NzI2Mlx1NzJGQ1x1N0JFRFx1ODAwMVx1ODA3RVx1ODc0Qlx1OTBDRVx1NTE2RFx1OUU5M1x1Nzk4NFx1ODA4Qlx1OTMzMlx1OEFENlx1NTAyRFx1NTQ4Q1x1OEE3MVx1NkI2QVx1OENDNFx1ODEwN1x1NjBEMVx1NjdBMFx1OURGMlx1NEU5OVx1NEU5OFx1OUMxMFx1OEE2Qlx1ODVDMVx1ODU2OFx1NjkwMFx1NkU3RVx1Nzg5N1x1ODE1NVwiXSxcbltcIjk4OWZcIixcIlx1NUYwQ1x1NEUxMFx1NEUxNVx1NEUyQVx1NEUzMVx1NEUzNlx1NEUzQ1x1NEUzRlx1NEU0Mlx1NEU1Nlx1NEU1OFx1NEU4Mlx1NEU4NVx1OEM2Qlx1NEU4QVx1ODIxMlx1NUYwRFx1NEU4RVx1NEU5RVx1NEU5Rlx1NEVBMFx1NEVBMlx1NEVCMFx1NEVCM1x1NEVCNlx1NEVDRVx1NEVDRFx1NEVDNFx1NEVDNlx1NEVDMlx1NEVEN1x1NEVERVx1NEVFRFx1NEVERlx1NEVGN1x1NEYwOVx1NEY1QVx1NEYzMFx1NEY1Qlx1NEY1RFx1NEY1N1x1NEY0N1x1NEY3Nlx1NEY4OFx1NEY4Rlx1NEY5OFx1NEY3Qlx1NEY2OVx1NEY3MFx1NEY5MVx1NEY2Rlx1NEY4Nlx1NEY5Nlx1NTExOFx1NEZENFx1NEZERlx1NEZDRVx1NEZEOFx1NEZEQlx1NEZEMVx1NEZEQVx1NEZEMFx1NEZFNFx1NEZFNVx1NTAxQVx1NTAyOFx1NTAxNFx1NTAyQVx1NTAyNVx1NTAwNVx1NEYxQ1x1NEZGNlx1NTAyMVx1NTAyOVx1NTAyQ1x1NEZGRVx1NEZFRlx1NTAxMVx1NTAwNlx1NTA0M1x1NTA0N1x1NjcwM1x1NTA1NVx1NTA1MFx1NTA0OFx1NTA1QVx1NTA1Nlx1NTA2Q1x1NTA3OFx1NTA4MFx1NTA5QVx1NTA4NVx1NTBCNFx1NTBCMlwiXSxcbltcIjk5NDBcIixcIlx1NTBDOVx1NTBDQVx1NTBCM1x1NTBDMlx1NTBENlx1NTBERVx1NTBFNVx1NTBFRFx1NTBFM1x1NTBFRVx1NTBGOVx1NTBGNVx1NTEwOVx1NTEwMVx1NTEwMlx1NTExNlx1NTExNVx1NTExNFx1NTExQVx1NTEyMVx1NTEzQVx1NTEzN1x1NTEzQ1x1NTEzQlx1NTEzRlx1NTE0MFx1NTE1Mlx1NTE0Q1x1NTE1NFx1NTE2Mlx1N0FGOFx1NTE2OVx1NTE2QVx1NTE2RVx1NTE4MFx1NTE4Mlx1NTZEOFx1NTE4Q1x1NTE4OVx1NTE4Rlx1NTE5MVx1NTE5M1x1NTE5NVx1NTE5Nlx1NTFBNFx1NTFBNlx1NTFBMlx1NTFBOVx1NTFBQVx1NTFBQlx1NTFCM1x1NTFCMVx1NTFCMlx1NTFCMFx1NTFCNVx1NTFCRFx1NTFDNVx1NTFDOVx1NTFEQlx1NTFFMFx1ODY1NVx1NTFFOVx1NTFFRFwiXSxcbltcIjk5ODBcIixcIlx1NTFGMFx1NTFGNVx1NTFGRVx1NTIwNFx1NTIwQlx1NTIxNFx1NTIwRVx1NTIyN1x1NTIyQVx1NTIyRVx1NTIzM1x1NTIzOVx1NTI0Rlx1NTI0NFx1NTI0Qlx1NTI0Q1x1NTI1RVx1NTI1NFx1NTI2QVx1NTI3NFx1NTI2OVx1NTI3M1x1NTI3Rlx1NTI3RFx1NTI4RFx1NTI5NFx1NTI5Mlx1NTI3MVx1NTI4OFx1NTI5MVx1OEZBOFx1OEZBN1x1NTJBQ1x1NTJBRFx1NTJCQ1x1NTJCNVx1NTJDMVx1NTJDRFx1NTJEN1x1NTJERVx1NTJFM1x1NTJFNlx1OThFRFx1NTJFMFx1NTJGM1x1NTJGNVx1NTJGOFx1NTJGOVx1NTMwNlx1NTMwOFx1NzUzOFx1NTMwRFx1NTMxMFx1NTMwRlx1NTMxNVx1NTMxQVx1NTMyM1x1NTMyRlx1NTMzMVx1NTMzM1x1NTMzOFx1NTM0MFx1NTM0Nlx1NTM0NVx1NEUxN1x1NTM0OVx1NTM0RFx1NTFENlx1NTM1RVx1NTM2OVx1NTM2RVx1NTkxOFx1NTM3Qlx1NTM3N1x1NTM4Mlx1NTM5Nlx1NTNBMFx1NTNBNlx1NTNBNVx1NTNBRVx1NTNCMFx1NTNCNlx1NTNDM1x1N0MxMlx1OTZEOVx1NTNERlx1NjZGQ1x1NzFFRVx1NTNFRVx1NTNFOFx1NTNFRFx1NTNGQVx1NTQwMVx1NTQzRFx1NTQ0MFx1NTQyQ1x1NTQyRFx1NTQzQ1x1NTQyRVx1NTQzNlx1NTQyOVx1NTQxRFx1NTQ0RVx1NTQ4Rlx1NTQ3NVx1NTQ4RVx1NTQ1Rlx1NTQ3MVx1NTQ3N1x1NTQ3MFx1NTQ5Mlx1NTQ3Qlx1NTQ4MFx1NTQ3Nlx1NTQ4NFx1NTQ5MFx1NTQ4Nlx1NTRDN1x1NTRBMlx1NTRCOFx1NTRBNVx1NTRBQ1x1NTRDNFx1NTRDOFx1NTRBOFwiXSxcbltcIjlhNDBcIixcIlx1NTRBQlx1NTRDMlx1NTRBNFx1NTRCRVx1NTRCQ1x1NTREOFx1NTRFNVx1NTRFNlx1NTUwRlx1NTUxNFx1NTRGRFx1NTRFRVx1NTRFRFx1NTRGQVx1NTRFMlx1NTUzOVx1NTU0MFx1NTU2M1x1NTU0Q1x1NTUyRVx1NTU1Q1x1NTU0NVx1NTU1Nlx1NTU1N1x1NTUzOFx1NTUzM1x1NTU1RFx1NTU5OVx1NTU4MFx1NTRBRlx1NTU4QVx1NTU5Rlx1NTU3Qlx1NTU3RVx1NTU5OFx1NTU5RVx1NTVBRVx1NTU3Q1x1NTU4M1x1NTVBOVx1NTU4N1x1NTVBOFx1NTVEQVx1NTVDNVx1NTVERlx1NTVDNFx1NTVEQ1x1NTVFNFx1NTVENFx1NTYxNFx1NTVGN1x1NTYxNlx1NTVGRVx1NTVGRFx1NTYxQlx1NTVGOVx1NTY0RVx1NTY1MFx1NzFERlx1NTYzNFx1NTYzNlx1NTYzMlx1NTYzOFwiXSxcbltcIjlhODBcIixcIlx1NTY2Qlx1NTY2NFx1NTYyRlx1NTY2Q1x1NTY2QVx1NTY4Nlx1NTY4MFx1NTY4QVx1NTZBMFx1NTY5NFx1NTY4Rlx1NTZBNVx1NTZBRVx1NTZCNlx1NTZCNFx1NTZDMlx1NTZCQ1x1NTZDMVx1NTZDM1x1NTZDMFx1NTZDOFx1NTZDRVx1NTZEMVx1NTZEM1x1NTZEN1x1NTZFRVx1NTZGOVx1NTcwMFx1NTZGRlx1NTcwNFx1NTcwOVx1NTcwOFx1NTcwQlx1NTcwRFx1NTcxM1x1NTcxOFx1NTcxNlx1NTVDN1x1NTcxQ1x1NTcyNlx1NTczN1x1NTczOFx1NTc0RVx1NTczQlx1NTc0MFx1NTc0Rlx1NTc2OVx1NTdDMFx1NTc4OFx1NTc2MVx1NTc3Rlx1NTc4OVx1NTc5M1x1NTdBMFx1NTdCM1x1NTdBNFx1NTdBQVx1NTdCMFx1NTdDM1x1NTdDNlx1NTdENFx1NTdEMlx1NTdEM1x1NTgwQVx1NTdENlx1NTdFM1x1NTgwQlx1NTgxOVx1NTgxRFx1NTg3Mlx1NTgyMVx1NTg2Mlx1NTg0Qlx1NTg3MFx1NkJDMFx1NTg1Mlx1NTgzRFx1NTg3OVx1NTg4NVx1NThCOVx1NTg5Rlx1NThBQlx1NThCQVx1NThERVx1NThCQlx1NThCOFx1NThBRVx1NThDNVx1NThEM1x1NThEMVx1NThEN1x1NThEOVx1NThEOFx1NThFNVx1NThEQ1x1NThFNFx1NThERlx1NThFRlx1NThGQVx1NThGOVx1NThGQlx1NThGQ1x1NThGRFx1NTkwMlx1NTkwQVx1NTkxMFx1NTkxQlx1NjhBNlx1NTkyNVx1NTkyQ1x1NTkyRFx1NTkzMlx1NTkzOFx1NTkzRVx1N0FEMlx1NTk1NVx1NTk1MFx1NTk0RVx1NTk1QVx1NTk1OFx1NTk2Mlx1NTk2MFx1NTk2N1x1NTk2Q1x1NTk2OVwiXSxcbltcIjliNDBcIixcIlx1NTk3OFx1NTk4MVx1NTk5RFx1NEY1RVx1NEZBQlx1NTlBM1x1NTlCMlx1NTlDNlx1NTlFOFx1NTlEQ1x1NTk4RFx1NTlEOVx1NTlEQVx1NUEyNVx1NUExRlx1NUExMVx1NUExQ1x1NUEwOVx1NUExQVx1NUE0MFx1NUE2Q1x1NUE0OVx1NUEzNVx1NUEzNlx1NUE2Mlx1NUE2QVx1NUE5QVx1NUFCQ1x1NUFCRVx1NUFDQlx1NUFDMlx1NUFCRFx1NUFFM1x1NUFEN1x1NUFFNlx1NUFFOVx1NUFENlx1NUFGQVx1NUFGQlx1NUIwQ1x1NUIwQlx1NUIxNlx1NUIzMlx1NUFEMFx1NUIyQVx1NUIzNlx1NUIzRVx1NUI0M1x1NUI0NVx1NUI0MFx1NUI1MVx1NUI1NVx1NUI1QVx1NUI1Qlx1NUI2NVx1NUI2OVx1NUI3MFx1NUI3M1x1NUI3NVx1NUI3OFx1NjU4OFx1NUI3QVx1NUI4MFwiXSxcbltcIjliODBcIixcIlx1NUI4M1x1NUJBNlx1NUJCOFx1NUJDM1x1NUJDN1x1NUJDOVx1NUJENFx1NUJEMFx1NUJFNFx1NUJFNlx1NUJFMlx1NUJERVx1NUJFNVx1NUJFQlx1NUJGMFx1NUJGNlx1NUJGM1x1NUMwNVx1NUMwN1x1NUMwOFx1NUMwRFx1NUMxM1x1NUMyMFx1NUMyMlx1NUMyOFx1NUMzOFx1NUMzOVx1NUM0MVx1NUM0Nlx1NUM0RVx1NUM1M1x1NUM1MFx1NUM0Rlx1NUI3MVx1NUM2Q1x1NUM2RVx1NEU2Mlx1NUM3Nlx1NUM3OVx1NUM4Q1x1NUM5MVx1NUM5NFx1NTk5Qlx1NUNBQlx1NUNCQlx1NUNCNlx1NUNCQ1x1NUNCN1x1NUNDNVx1NUNCRVx1NUNDN1x1NUNEOVx1NUNFOVx1NUNGRFx1NUNGQVx1NUNFRFx1NUQ4Q1x1NUNFQVx1NUQwQlx1NUQxNVx1NUQxN1x1NUQ1Q1x1NUQxRlx1NUQxQlx1NUQxMVx1NUQxNFx1NUQyMlx1NUQxQVx1NUQxOVx1NUQxOFx1NUQ0Q1x1NUQ1Mlx1NUQ0RVx1NUQ0Qlx1NUQ2Q1x1NUQ3M1x1NUQ3Nlx1NUQ4N1x1NUQ4NFx1NUQ4Mlx1NURBMlx1NUQ5RFx1NURBQ1x1NURBRVx1NURCRFx1NUQ5MFx1NURCN1x1NURCQ1x1NURDOVx1NURDRFx1NUREM1x1NUREMlx1NURENlx1NUREQlx1NURFQlx1NURGMlx1NURGNVx1NUUwQlx1NUUxQVx1NUUxOVx1NUUxMVx1NUUxQlx1NUUzNlx1NUUzN1x1NUU0NFx1NUU0M1x1NUU0MFx1NUU0RVx1NUU1N1x1NUU1NFx1NUU1Rlx1NUU2Mlx1NUU2NFx1NUU0N1x1NUU3NVx1NUU3Nlx1NUU3QVx1OUVCQ1x1NUU3Rlx1NUVBMFx1NUVDMVx1NUVDMlx1NUVDOFx1NUVEMFx1NUVDRlwiXSxcbltcIjljNDBcIixcIlx1NUVENlx1NUVFM1x1NUVERFx1NUVEQVx1NUVEQlx1NUVFMlx1NUVFMVx1NUVFOFx1NUVFOVx1NUVFQ1x1NUVGMVx1NUVGM1x1NUVGMFx1NUVGNFx1NUVGOFx1NUVGRVx1NUYwM1x1NUYwOVx1NUY1RFx1NUY1Q1x1NUYwQlx1NUYxMVx1NUYxNlx1NUYyOVx1NUYyRFx1NUYzOFx1NUY0MVx1NUY0OFx1NUY0Q1x1NUY0RVx1NUYyRlx1NUY1MVx1NUY1Nlx1NUY1N1x1NUY1OVx1NUY2MVx1NUY2RFx1NUY3M1x1NUY3N1x1NUY4M1x1NUY4Mlx1NUY3Rlx1NUY4QVx1NUY4OFx1NUY5MVx1NUY4N1x1NUY5RVx1NUY5OVx1NUY5OFx1NUZBMFx1NUZBOFx1NUZBRFx1NUZCQ1x1NUZENlx1NUZGQlx1NUZFNFx1NUZGOFx1NUZGMVx1NUZERFx1NjBCM1x1NUZGRlx1NjAyMVx1NjA2MFwiXSxcbltcIjljODBcIixcIlx1NjAxOVx1NjAxMFx1NjAyOVx1NjAwRVx1NjAzMVx1NjAxQlx1NjAxNVx1NjAyQlx1NjAyNlx1NjAwRlx1NjAzQVx1NjA1QVx1NjA0MVx1NjA2QVx1NjA3N1x1NjA1Rlx1NjA0QVx1NjA0Nlx1NjA0RFx1NjA2M1x1NjA0M1x1NjA2NFx1NjA0Mlx1NjA2Q1x1NjA2Qlx1NjA1OVx1NjA4MVx1NjA4RFx1NjBFN1x1NjA4M1x1NjA5QVx1NjA4NFx1NjA5Qlx1NjA5Nlx1NjA5N1x1NjA5Mlx1NjBBN1x1NjA4Qlx1NjBFMVx1NjBCOFx1NjBFMFx1NjBEM1x1NjBCNFx1NUZGMFx1NjBCRFx1NjBDNlx1NjBCNVx1NjBEOFx1NjE0RFx1NjExNVx1NjEwNlx1NjBGNlx1NjBGN1x1NjEwMFx1NjBGNFx1NjBGQVx1NjEwM1x1NjEyMVx1NjBGQlx1NjBGMVx1NjEwRFx1NjEwRVx1NjE0N1x1NjEzRVx1NjEyOFx1NjEyN1x1NjE0QVx1NjEzRlx1NjEzQ1x1NjEyQ1x1NjEzNFx1NjEzRFx1NjE0Mlx1NjE0NFx1NjE3M1x1NjE3N1x1NjE1OFx1NjE1OVx1NjE1QVx1NjE2Qlx1NjE3NFx1NjE2Rlx1NjE2NVx1NjE3MVx1NjE1Rlx1NjE1RFx1NjE1M1x1NjE3NVx1NjE5OVx1NjE5Nlx1NjE4N1x1NjFBQ1x1NjE5NFx1NjE5QVx1NjE4QVx1NjE5MVx1NjFBQlx1NjFBRVx1NjFDQ1x1NjFDQVx1NjFDOVx1NjFGN1x1NjFDOFx1NjFDM1x1NjFDNlx1NjFCQVx1NjFDQlx1N0Y3OVx1NjFDRFx1NjFFNlx1NjFFM1x1NjFGNlx1NjFGQVx1NjFGNFx1NjFGRlx1NjFGRFx1NjFGQ1x1NjFGRVx1NjIwMFx1NjIwOFx1NjIwOVx1NjIwRFx1NjIwQ1x1NjIxNFx1NjIxQlwiXSxcbltcIjlkNDBcIixcIlx1NjIxRVx1NjIyMVx1NjIyQVx1NjIyRVx1NjIzMFx1NjIzMlx1NjIzM1x1NjI0MVx1NjI0RVx1NjI1RVx1NjI2M1x1NjI1Qlx1NjI2MFx1NjI2OFx1NjI3Q1x1NjI4Mlx1NjI4OVx1NjI3RVx1NjI5Mlx1NjI5M1x1NjI5Nlx1NjJENFx1NjI4M1x1NjI5NFx1NjJEN1x1NjJEMVx1NjJCQlx1NjJDRlx1NjJGRlx1NjJDNlx1NjRENFx1NjJDOFx1NjJEQ1x1NjJDQ1x1NjJDQVx1NjJDMlx1NjJDN1x1NjI5Qlx1NjJDOVx1NjMwQ1x1NjJFRVx1NjJGMVx1NjMyN1x1NjMwMlx1NjMwOFx1NjJFRlx1NjJGNVx1NjM1MFx1NjMzRVx1NjM0RFx1NjQxQ1x1NjM0Rlx1NjM5Nlx1NjM4RVx1NjM4MFx1NjNBQlx1NjM3Nlx1NjNBM1x1NjM4Rlx1NjM4OVx1NjM5Rlx1NjNCNVx1NjM2QlwiXSxcbltcIjlkODBcIixcIlx1NjM2OVx1NjNCRVx1NjNFOVx1NjNDMFx1NjNDNlx1NjNFM1x1NjNDOVx1NjNEMlx1NjNGNlx1NjNDNFx1NjQxNlx1NjQzNFx1NjQwNlx1NjQxM1x1NjQyNlx1NjQzNlx1NjUxRFx1NjQxN1x1NjQyOFx1NjQwRlx1NjQ2N1x1NjQ2Rlx1NjQ3Nlx1NjQ0RVx1NjUyQVx1NjQ5NVx1NjQ5M1x1NjRBNVx1NjRBOVx1NjQ4OFx1NjRCQ1x1NjREQVx1NjREMlx1NjRDNVx1NjRDN1x1NjRCQlx1NjREOFx1NjRDMlx1NjRGMVx1NjRFN1x1ODIwOVx1NjRFMFx1NjRFMVx1NjJBQ1x1NjRFM1x1NjRFRlx1NjUyQ1x1NjRGNlx1NjRGNFx1NjRGMlx1NjRGQVx1NjUwMFx1NjRGRFx1NjUxOFx1NjUxQ1x1NjUwNVx1NjUyNFx1NjUyM1x1NjUyQlx1NjUzNFx1NjUzNVx1NjUzN1x1NjUzNlx1NjUzOFx1NzU0Qlx1NjU0OFx1NjU1Nlx1NjU1NVx1NjU0RFx1NjU1OFx1NjU1RVx1NjU1RFx1NjU3Mlx1NjU3OFx1NjU4Mlx1NjU4M1x1OEI4QVx1NjU5Qlx1NjU5Rlx1NjVBQlx1NjVCN1x1NjVDM1x1NjVDNlx1NjVDMVx1NjVDNFx1NjVDQ1x1NjVEMlx1NjVEQlx1NjVEOVx1NjVFMFx1NjVFMVx1NjVGMVx1Njc3Mlx1NjYwQVx1NjYwM1x1NjVGQlx1Njc3M1x1NjYzNVx1NjYzNlx1NjYzNFx1NjYxQ1x1NjY0Rlx1NjY0NFx1NjY0OVx1NjY0MVx1NjY1RVx1NjY1RFx1NjY2NFx1NjY2N1x1NjY2OFx1NjY1Rlx1NjY2Mlx1NjY3MFx1NjY4M1x1NjY4OFx1NjY4RVx1NjY4OVx1NjY4NFx1NjY5OFx1NjY5RFx1NjZDMVx1NjZCOVx1NjZDOVx1NjZCRVx1NjZCQ1wiXSxcbltcIjllNDBcIixcIlx1NjZDNFx1NjZCOFx1NjZENlx1NjZEQVx1NjZFMFx1NjYzRlx1NjZFNlx1NjZFOVx1NjZGMFx1NjZGNVx1NjZGN1x1NjcwRlx1NjcxNlx1NjcxRVx1NjcyNlx1NjcyN1x1OTczOFx1NjcyRVx1NjczRlx1NjczNlx1Njc0MVx1NjczOFx1NjczN1x1Njc0Nlx1Njc1RVx1Njc2MFx1Njc1OVx1Njc2M1x1Njc2NFx1Njc4OVx1Njc3MFx1NjdBOVx1Njc3Q1x1Njc2QVx1Njc4Q1x1Njc4Qlx1NjdBNlx1NjdBMVx1Njc4NVx1NjdCN1x1NjdFRlx1NjdCNFx1NjdFQ1x1NjdCM1x1NjdFOVx1NjdCOFx1NjdFNFx1NjdERVx1NjdERFx1NjdFMlx1NjdFRVx1NjdCOVx1NjdDRVx1NjdDNlx1NjdFN1x1NkE5Q1x1NjgxRVx1Njg0Nlx1NjgyOVx1Njg0MFx1Njg0RFx1NjgzMlx1Njg0RVwiXSxcbltcIjllODBcIixcIlx1NjhCM1x1NjgyQlx1Njg1OVx1Njg2M1x1Njg3N1x1Njg3Rlx1Njg5Rlx1Njg4Rlx1NjhBRFx1Njg5NFx1Njg5RFx1Njg5Qlx1Njg4M1x1NkFBRVx1NjhCOVx1Njg3NFx1NjhCNVx1NjhBMFx1NjhCQVx1NjkwRlx1Njg4RFx1Njg3RVx1NjkwMVx1NjhDQVx1NjkwOFx1NjhEOFx1NjkyMlx1NjkyNlx1NjhFMVx1NjkwQ1x1NjhDRFx1NjhENFx1NjhFN1x1NjhENVx1NjkzNlx1NjkxMlx1NjkwNFx1NjhEN1x1NjhFM1x1NjkyNVx1NjhGOVx1NjhFMFx1NjhFRlx1NjkyOFx1NjkyQVx1NjkxQVx1NjkyM1x1NjkyMVx1NjhDNlx1Njk3OVx1Njk3N1x1Njk1Q1x1Njk3OFx1Njk2Qlx1Njk1NFx1Njk3RVx1Njk2RVx1NjkzOVx1Njk3NFx1NjkzRFx1Njk1OVx1NjkzMFx1Njk2MVx1Njk1RVx1Njk1RFx1Njk4MVx1Njk2QVx1NjlCMlx1NjlBRVx1NjlEMFx1NjlCRlx1NjlDMVx1NjlEM1x1NjlCRVx1NjlDRVx1NUJFOFx1NjlDQVx1NjlERFx1NjlCQlx1NjlDM1x1NjlBN1x1NkEyRVx1Njk5MVx1NjlBMFx1Njk5Q1x1Njk5NVx1NjlCNFx1NjlERVx1NjlFOFx1NkEwMlx1NkExQlx1NjlGRlx1NkIwQVx1NjlGOVx1NjlGMlx1NjlFN1x1NkEwNVx1NjlCMVx1NkExRVx1NjlFRFx1NkExNFx1NjlFQlx1NkEwQVx1NkExMlx1NkFDMVx1NkEyM1x1NkExM1x1NkE0NFx1NkEwQ1x1NkE3Mlx1NkEzNlx1NkE3OFx1NkE0N1x1NkE2Mlx1NkE1OVx1NkE2Nlx1NkE0OFx1NkEzOFx1NkEyMlx1NkE5MFx1NkE4RFx1NkFBMFx1NkE4NFx1NkFBMlx1NkFBM1wiXSxcbltcIjlmNDBcIixcIlx1NkE5N1x1ODYxN1x1NkFCQlx1NkFDM1x1NkFDMlx1NkFCOFx1NkFCM1x1NkFBQ1x1NkFERVx1NkFEMVx1NkFERlx1NkFBQVx1NkFEQVx1NkFFQVx1NkFGQlx1NkIwNVx1ODYxNlx1NkFGQVx1NkIxMlx1NkIxNlx1OUIzMVx1NkIxRlx1NkIzOFx1NkIzN1x1NzZEQ1x1NkIzOVx1OThFRVx1NkI0N1x1NkI0M1x1NkI0OVx1NkI1MFx1NkI1OVx1NkI1NFx1NkI1Qlx1NkI1Rlx1NkI2MVx1NkI3OFx1NkI3OVx1NkI3Rlx1NkI4MFx1NkI4NFx1NkI4M1x1NkI4RFx1NkI5OFx1NkI5NVx1NkI5RVx1NkJBNFx1NkJBQVx1NkJBQlx1NkJBRlx1NkJCMlx1NkJCMVx1NkJCM1x1NkJCN1x1NkJCQ1x1NkJDNlx1NkJDQlx1NkJEM1x1NkJERlx1NkJFQ1x1NkJFQlx1NkJGM1x1NkJFRlwiXSxcbltcIjlmODBcIixcIlx1OUVCRVx1NkMwOFx1NkMxM1x1NkMxNFx1NkMxQlx1NkMyNFx1NkMyM1x1NkM1RVx1NkM1NVx1NkM2Mlx1NkM2QVx1NkM4Mlx1NkM4RFx1NkM5QVx1NkM4MVx1NkM5Qlx1NkM3RVx1NkM2OFx1NkM3M1x1NkM5Mlx1NkM5MFx1NkNDNFx1NkNGMVx1NkNEM1x1NkNCRFx1NkNEN1x1NkNDNVx1NkNERFx1NkNBRVx1NkNCMVx1NkNCRVx1NkNCQVx1NkNEQlx1NkNFRlx1NkNEOVx1NkNFQVx1NkQxRlx1ODg0RFx1NkQzNlx1NkQyQlx1NkQzRFx1NkQzOFx1NkQxOVx1NkQzNVx1NkQzM1x1NkQxMlx1NkQwQ1x1NkQ2M1x1NkQ5M1x1NkQ2NFx1NkQ1QVx1NkQ3OVx1NkQ1OVx1NkQ4RVx1NkQ5NVx1NkZFNFx1NkQ4NVx1NkRGOVx1NkUxNVx1NkUwQVx1NkRCNVx1NkRDN1x1NkRFNlx1NkRCOFx1NkRDNlx1NkRFQ1x1NkRERVx1NkRDQ1x1NkRFOFx1NkREMlx1NkRDNVx1NkRGQVx1NkREOVx1NkRFNFx1NkRENVx1NkRFQVx1NkRFRVx1NkUyRFx1NkU2RVx1NkUyRVx1NkUxOVx1NkU3Mlx1NkU1Rlx1NkUzRVx1NkUyM1x1NkU2Qlx1NkUyQlx1NkU3Nlx1NkU0RFx1NkUxRlx1NkU0M1x1NkUzQVx1NkU0RVx1NkUyNFx1NkVGRlx1NkUxRFx1NkUzOFx1NkU4Mlx1NkVBQVx1NkU5OFx1NkVDOVx1NkVCN1x1NkVEM1x1NkVCRFx1NkVBRlx1NkVDNFx1NkVCMlx1NkVENFx1NkVENVx1NkU4Rlx1NkVBNVx1NkVDMlx1NkU5Rlx1NkY0MVx1NkYxMVx1NzA0Q1x1NkVFQ1x1NkVGOFx1NkVGRVx1NkYzRlx1NkVGMlx1NkYzMVx1NkVFRlx1NkYzMlx1NkVDQ1wiXSxcbltcImUwNDBcIixcIlx1NkYzRVx1NkYxM1x1NkVGN1x1NkY4Nlx1NkY3QVx1NkY3OFx1NkY4MVx1NkY4MFx1NkY2Rlx1NkY1Qlx1NkZGM1x1NkY2RFx1NkY4Mlx1NkY3Q1x1NkY1OFx1NkY4RVx1NkY5MVx1NkZDMlx1NkY2Nlx1NkZCM1x1NkZBM1x1NkZBMVx1NkZBNFx1NkZCOVx1NkZDNlx1NkZBQVx1NkZERlx1NkZENVx1NkZFQ1x1NkZENFx1NkZEOFx1NkZGMVx1NkZFRVx1NkZEQlx1NzAwOVx1NzAwQlx1NkZGQVx1NzAxMVx1NzAwMVx1NzAwRlx1NkZGRVx1NzAxQlx1NzAxQVx1NkY3NFx1NzAxRFx1NzAxOFx1NzAxRlx1NzAzMFx1NzAzRVx1NzAzMlx1NzA1MVx1NzA2M1x1NzA5OVx1NzA5Mlx1NzBBRlx1NzBGMVx1NzBBQ1x1NzBCOFx1NzBCM1x1NzBBRVx1NzBERlx1NzBDQlx1NzBERFwiXSxcbltcImUwODBcIixcIlx1NzBEOVx1NzEwOVx1NzBGRFx1NzExQ1x1NzExOVx1NzE2NVx1NzE1NVx1NzE4OFx1NzE2Nlx1NzE2Mlx1NzE0Q1x1NzE1Nlx1NzE2Q1x1NzE4Rlx1NzFGQlx1NzE4NFx1NzE5NVx1NzFBOFx1NzFBQ1x1NzFEN1x1NzFCOVx1NzFCRVx1NzFEMlx1NzFDOVx1NzFENFx1NzFDRVx1NzFFMFx1NzFFQ1x1NzFFN1x1NzFGNVx1NzFGQ1x1NzFGOVx1NzFGRlx1NzIwRFx1NzIxMFx1NzIxQlx1NzIyOFx1NzIyRFx1NzIyQ1x1NzIzMFx1NzIzMlx1NzIzQlx1NzIzQ1x1NzIzRlx1NzI0MFx1NzI0Nlx1NzI0Qlx1NzI1OFx1NzI3NFx1NzI3RVx1NzI4Mlx1NzI4MVx1NzI4N1x1NzI5Mlx1NzI5Nlx1NzJBMlx1NzJBN1x1NzJCOVx1NzJCMlx1NzJDM1x1NzJDNlx1NzJDNFx1NzJDRVx1NzJEMlx1NzJFMlx1NzJFMFx1NzJFMVx1NzJGOVx1NzJGN1x1NTAwRlx1NzMxN1x1NzMwQVx1NzMxQ1x1NzMxNlx1NzMxRFx1NzMzNFx1NzMyRlx1NzMyOVx1NzMyNVx1NzMzRVx1NzM0RVx1NzM0Rlx1OUVEOFx1NzM1N1x1NzM2QVx1NzM2OFx1NzM3MFx1NzM3OFx1NzM3NVx1NzM3Qlx1NzM3QVx1NzNDOFx1NzNCM1x1NzNDRVx1NzNCQlx1NzNDMFx1NzNFNVx1NzNFRVx1NzNERVx1NzRBMlx1NzQwNVx1NzQ2Rlx1NzQyNVx1NzNGOFx1NzQzMlx1NzQzQVx1NzQ1NVx1NzQzRlx1NzQ1Rlx1NzQ1OVx1NzQ0MVx1NzQ1Q1x1NzQ2OVx1NzQ3MFx1NzQ2M1x1NzQ2QVx1NzQ3Nlx1NzQ3RVx1NzQ4Qlx1NzQ5RVx1NzRBN1x1NzRDQVx1NzRDRlx1NzRENFx1NzNGMVwiXSxcbltcImUxNDBcIixcIlx1NzRFMFx1NzRFM1x1NzRFN1x1NzRFOVx1NzRFRVx1NzRGMlx1NzRGMFx1NzRGMVx1NzRGOFx1NzRGN1x1NzUwNFx1NzUwM1x1NzUwNVx1NzUwQ1x1NzUwRVx1NzUwRFx1NzUxNVx1NzUxM1x1NzUxRVx1NzUyNlx1NzUyQ1x1NzUzQ1x1NzU0NFx1NzU0RFx1NzU0QVx1NzU0OVx1NzU1Qlx1NzU0Nlx1NzU1QVx1NzU2OVx1NzU2NFx1NzU2N1x1NzU2Qlx1NzU2RFx1NzU3OFx1NzU3Nlx1NzU4Nlx1NzU4N1x1NzU3NFx1NzU4QVx1NzU4OVx1NzU4Mlx1NzU5NFx1NzU5QVx1NzU5RFx1NzVBNVx1NzVBM1x1NzVDMlx1NzVCM1x1NzVDM1x1NzVCNVx1NzVCRFx1NzVCOFx1NzVCQ1x1NzVCMVx1NzVDRFx1NzVDQVx1NzVEMlx1NzVEOVx1NzVFM1x1NzVERVx1NzVGRVx1NzVGRlwiXSxcbltcImUxODBcIixcIlx1NzVGQ1x1NzYwMVx1NzVGMFx1NzVGQVx1NzVGMlx1NzVGM1x1NzYwQlx1NzYwRFx1NzYwOVx1NzYxRlx1NzYyN1x1NzYyMFx1NzYyMVx1NzYyMlx1NzYyNFx1NzYzNFx1NzYzMFx1NzYzQlx1NzY0N1x1NzY0OFx1NzY0Nlx1NzY1Q1x1NzY1OFx1NzY2MVx1NzY2Mlx1NzY2OFx1NzY2OVx1NzY2QVx1NzY2N1x1NzY2Q1x1NzY3MFx1NzY3Mlx1NzY3Nlx1NzY3OFx1NzY3Q1x1NzY4MFx1NzY4M1x1NzY4OFx1NzY4Qlx1NzY4RVx1NzY5Nlx1NzY5M1x1NzY5OVx1NzY5QVx1NzZCMFx1NzZCNFx1NzZCOFx1NzZCOVx1NzZCQVx1NzZDMlx1NzZDRFx1NzZENlx1NzZEMlx1NzZERVx1NzZFMVx1NzZFNVx1NzZFN1x1NzZFQVx1ODYyRlx1NzZGQlx1NzcwOFx1NzcwN1x1NzcwNFx1NzcyOVx1NzcyNFx1NzcxRVx1NzcyNVx1NzcyNlx1NzcxQlx1NzczN1x1NzczOFx1Nzc0N1x1Nzc1QVx1Nzc2OFx1Nzc2Qlx1Nzc1Qlx1Nzc2NVx1Nzc3Rlx1Nzc3RVx1Nzc3OVx1Nzc4RVx1Nzc4Qlx1Nzc5MVx1NzdBMFx1Nzc5RVx1NzdCMFx1NzdCNlx1NzdCOVx1NzdCRlx1NzdCQ1x1NzdCRFx1NzdCQlx1NzdDN1x1NzdDRFx1NzdEN1x1NzdEQVx1NzdEQ1x1NzdFM1x1NzdFRVx1NzdGQ1x1NzgwQ1x1NzgxMlx1NzkyNlx1NzgyMFx1NzkyQVx1Nzg0NVx1Nzg4RVx1Nzg3NFx1Nzg4Nlx1Nzg3Q1x1Nzg5QVx1Nzg4Q1x1NzhBM1x1NzhCNVx1NzhBQVx1NzhBRlx1NzhEMVx1NzhDNlx1NzhDQlx1NzhENFx1NzhCRVx1NzhCQ1x1NzhDNVx1NzhDQVx1NzhFQ1wiXSxcbltcImUyNDBcIixcIlx1NzhFN1x1NzhEQVx1NzhGRFx1NzhGNFx1NzkwN1x1NzkxMlx1NzkxMVx1NzkxOVx1NzkyQ1x1NzkyQlx1Nzk0MFx1Nzk2MFx1Nzk1N1x1Nzk1Rlx1Nzk1QVx1Nzk1NVx1Nzk1M1x1Nzk3QVx1Nzk3Rlx1Nzk4QVx1Nzk5RFx1NzlBN1x1OUY0Qlx1NzlBQVx1NzlBRVx1NzlCM1x1NzlCOVx1NzlCQVx1NzlDOVx1NzlENVx1NzlFN1x1NzlFQ1x1NzlFMVx1NzlFM1x1N0EwOFx1N0EwRFx1N0ExOFx1N0ExOVx1N0EyMFx1N0ExRlx1Nzk4MFx1N0EzMVx1N0EzQlx1N0EzRVx1N0EzN1x1N0E0M1x1N0E1N1x1N0E0OVx1N0E2MVx1N0E2Mlx1N0E2OVx1OUY5RFx1N0E3MFx1N0E3OVx1N0E3RFx1N0E4OFx1N0E5N1x1N0E5NVx1N0E5OFx1N0E5Nlx1N0FBOVx1N0FDOFx1N0FCMFwiXSxcbltcImUyODBcIixcIlx1N0FCNlx1N0FDNVx1N0FDNFx1N0FCRlx1OTA4M1x1N0FDN1x1N0FDQVx1N0FDRFx1N0FDRlx1N0FENVx1N0FEM1x1N0FEOVx1N0FEQVx1N0FERFx1N0FFMVx1N0FFMlx1N0FFNlx1N0FFRFx1N0FGMFx1N0IwMlx1N0IwRlx1N0IwQVx1N0IwNlx1N0IzM1x1N0IxOFx1N0IxOVx1N0IxRVx1N0IzNVx1N0IyOFx1N0IzNlx1N0I1MFx1N0I3QVx1N0IwNFx1N0I0RFx1N0IwQlx1N0I0Q1x1N0I0NVx1N0I3NVx1N0I2NVx1N0I3NFx1N0I2N1x1N0I3MFx1N0I3MVx1N0I2Q1x1N0I2RVx1N0I5RFx1N0I5OFx1N0I5Rlx1N0I4RFx1N0I5Q1x1N0I5QVx1N0I4Qlx1N0I5Mlx1N0I4Rlx1N0I1RFx1N0I5OVx1N0JDQlx1N0JDMVx1N0JDQ1x1N0JDRlx1N0JCNFx1N0JDNlx1N0JERFx1N0JFOVx1N0MxMVx1N0MxNFx1N0JFNlx1N0JFNVx1N0M2MFx1N0MwMFx1N0MwN1x1N0MxM1x1N0JGM1x1N0JGN1x1N0MxN1x1N0MwRFx1N0JGNlx1N0MyM1x1N0MyN1x1N0MyQVx1N0MxRlx1N0MzN1x1N0MyQlx1N0MzRFx1N0M0Q1x1N0M0M1x1N0M1NFx1N0M0Rlx1N0M0MFx1N0M1MFx1N0M1OFx1N0M1Rlx1N0M2NFx1N0M1Nlx1N0M2NVx1N0M2Q1x1N0M3NVx1N0M4M1x1N0M5MFx1N0NBNFx1N0NBRFx1N0NBMlx1N0NBQlx1N0NBMVx1N0NBOFx1N0NCM1x1N0NCMlx1N0NCMVx1N0NBRVx1N0NCOVx1N0NCRFx1N0NDMFx1N0NDNVx1N0NDMlx1N0NEOFx1N0NEMlx1N0NEQ1x1N0NFMlx1OUIzQlx1N0NFRlx1N0NGMlx1N0NGNFx1N0NGNlx1N0NGQVx1N0QwNlwiXSxcbltcImUzNDBcIixcIlx1N0QwMlx1N0QxQ1x1N0QxNVx1N0QwQVx1N0Q0NVx1N0Q0Qlx1N0QyRVx1N0QzMlx1N0QzRlx1N0QzNVx1N0Q0Nlx1N0Q3M1x1N0Q1Nlx1N0Q0RVx1N0Q3Mlx1N0Q2OFx1N0Q2RVx1N0Q0Rlx1N0Q2M1x1N0Q5M1x1N0Q4OVx1N0Q1Qlx1N0Q4Rlx1N0Q3RFx1N0Q5Qlx1N0RCQVx1N0RBRVx1N0RBM1x1N0RCNVx1N0RDN1x1N0RCRFx1N0RBQlx1N0UzRFx1N0RBMlx1N0RBRlx1N0REQ1x1N0RCOFx1N0Q5Rlx1N0RCMFx1N0REOFx1N0RERFx1N0RFNFx1N0RERVx1N0RGQlx1N0RGMlx1N0RFMVx1N0UwNVx1N0UwQVx1N0UyM1x1N0UyMVx1N0UxMlx1N0UzMVx1N0UxRlx1N0UwOVx1N0UwQlx1N0UyMlx1N0U0Nlx1N0U2Nlx1N0UzQlx1N0UzNVx1N0UzOVx1N0U0M1x1N0UzN1wiXSxcbltcImUzODBcIixcIlx1N0UzMlx1N0UzQVx1N0U2N1x1N0U1RFx1N0U1Nlx1N0U1RVx1N0U1OVx1N0U1QVx1N0U3OVx1N0U2QVx1N0U2OVx1N0U3Q1x1N0U3Qlx1N0U4M1x1N0RENVx1N0U3RFx1OEZBRVx1N0U3Rlx1N0U4OFx1N0U4OVx1N0U4Q1x1N0U5Mlx1N0U5MFx1N0U5M1x1N0U5NFx1N0U5Nlx1N0U4RVx1N0U5Qlx1N0U5Q1x1N0YzOFx1N0YzQVx1N0Y0NVx1N0Y0Q1x1N0Y0RFx1N0Y0RVx1N0Y1MFx1N0Y1MVx1N0Y1NVx1N0Y1NFx1N0Y1OFx1N0Y1Rlx1N0Y2MFx1N0Y2OFx1N0Y2OVx1N0Y2N1x1N0Y3OFx1N0Y4Mlx1N0Y4Nlx1N0Y4M1x1N0Y4OFx1N0Y4N1x1N0Y4Q1x1N0Y5NFx1N0Y5RVx1N0Y5RFx1N0Y5QVx1N0ZBM1x1N0ZBRlx1N0ZCMlx1N0ZCOVx1N0ZBRVx1N0ZCNlx1N0ZCOFx1OEI3MVx1N0ZDNVx1N0ZDNlx1N0ZDQVx1N0ZENVx1N0ZENFx1N0ZFMVx1N0ZFNlx1N0ZFOVx1N0ZGM1x1N0ZGOVx1OThEQ1x1ODAwNlx1ODAwNFx1ODAwQlx1ODAxMlx1ODAxOFx1ODAxOVx1ODAxQ1x1ODAyMVx1ODAyOFx1ODAzRlx1ODAzQlx1ODA0QVx1ODA0Nlx1ODA1Mlx1ODA1OFx1ODA1QVx1ODA1Rlx1ODA2Mlx1ODA2OFx1ODA3M1x1ODA3Mlx1ODA3MFx1ODA3Nlx1ODA3OVx1ODA3RFx1ODA3Rlx1ODA4NFx1ODA4Nlx1ODA4NVx1ODA5Qlx1ODA5M1x1ODA5QVx1ODBBRFx1NTE5MFx1ODBBQ1x1ODBEQlx1ODBFNVx1ODBEOVx1ODBERFx1ODBDNFx1ODBEQVx1ODBENlx1ODEwOVx1ODBFRlx1ODBGMVx1ODExQlx1ODEyOVx1ODEyM1x1ODEyRlx1ODE0QlwiXSxcbltcImU0NDBcIixcIlx1OTY4Qlx1ODE0Nlx1ODEzRVx1ODE1M1x1ODE1MVx1ODBGQ1x1ODE3MVx1ODE2RVx1ODE2NVx1ODE2Nlx1ODE3NFx1ODE4M1x1ODE4OFx1ODE4QVx1ODE4MFx1ODE4Mlx1ODFBMFx1ODE5NVx1ODFBNFx1ODFBM1x1ODE1Rlx1ODE5M1x1ODFBOVx1ODFCMFx1ODFCNVx1ODFCRVx1ODFCOFx1ODFCRFx1ODFDMFx1ODFDMlx1ODFCQVx1ODFDOVx1ODFDRFx1ODFEMVx1ODFEOVx1ODFEOFx1ODFDOFx1ODFEQVx1ODFERlx1ODFFMFx1ODFFN1x1ODFGQVx1ODFGQlx1ODFGRVx1ODIwMVx1ODIwMlx1ODIwNVx1ODIwN1x1ODIwQVx1ODIwRFx1ODIxMFx1ODIxNlx1ODIyOVx1ODIyQlx1ODIzOFx1ODIzM1x1ODI0MFx1ODI1OVx1ODI1OFx1ODI1RFx1ODI1QVx1ODI1Rlx1ODI2NFwiXSxcbltcImU0ODBcIixcIlx1ODI2Mlx1ODI2OFx1ODI2QVx1ODI2Qlx1ODIyRVx1ODI3MVx1ODI3N1x1ODI3OFx1ODI3RVx1ODI4RFx1ODI5Mlx1ODJBQlx1ODI5Rlx1ODJCQlx1ODJBQ1x1ODJFMVx1ODJFM1x1ODJERlx1ODJEMlx1ODJGNFx1ODJGM1x1ODJGQVx1ODM5M1x1ODMwM1x1ODJGQlx1ODJGOVx1ODJERVx1ODMwNlx1ODJEQ1x1ODMwOVx1ODJEOVx1ODMzNVx1ODMzNFx1ODMxNlx1ODMzMlx1ODMzMVx1ODM0MFx1ODMzOVx1ODM1MFx1ODM0NVx1ODMyRlx1ODMyQlx1ODMxN1x1ODMxOFx1ODM4NVx1ODM5QVx1ODNBQVx1ODM5Rlx1ODNBMlx1ODM5Nlx1ODMyM1x1ODM4RVx1ODM4N1x1ODM4QVx1ODM3Q1x1ODNCNVx1ODM3M1x1ODM3NVx1ODNBMFx1ODM4OVx1ODNBOFx1ODNGNFx1ODQxM1x1ODNFQlx1ODNDRVx1ODNGRFx1ODQwM1x1ODNEOFx1ODQwQlx1ODNDMVx1ODNGN1x1ODQwN1x1ODNFMFx1ODNGMlx1ODQwRFx1ODQyMlx1ODQyMFx1ODNCRFx1ODQzOFx1ODUwNlx1ODNGQlx1ODQ2RFx1ODQyQVx1ODQzQ1x1ODU1QVx1ODQ4NFx1ODQ3N1x1ODQ2Qlx1ODRBRFx1ODQ2RVx1ODQ4Mlx1ODQ2OVx1ODQ0Nlx1ODQyQ1x1ODQ2Rlx1ODQ3OVx1ODQzNVx1ODRDQVx1ODQ2Mlx1ODRCOVx1ODRCRlx1ODQ5Rlx1ODREOVx1ODRDRFx1ODRCQlx1ODREQVx1ODREMFx1ODRDMVx1ODRDNlx1ODRENlx1ODRBMVx1ODUyMVx1ODRGRlx1ODRGNFx1ODUxN1x1ODUxOFx1ODUyQ1x1ODUxRlx1ODUxNVx1ODUxNFx1ODRGQ1x1ODU0MFx1ODU2M1x1ODU1OFx1ODU0OFwiXSxcbltcImU1NDBcIixcIlx1ODU0MVx1ODYwMlx1ODU0Qlx1ODU1NVx1ODU4MFx1ODVBNFx1ODU4OFx1ODU5MVx1ODU4QVx1ODVBOFx1ODU2RFx1ODU5NFx1ODU5Qlx1ODVFQVx1ODU4N1x1ODU5Q1x1ODU3N1x1ODU3RVx1ODU5MFx1ODVDOVx1ODVCQVx1ODVDRlx1ODVCOVx1ODVEMFx1ODVENVx1ODVERFx1ODVFNVx1ODVEQ1x1ODVGOVx1ODYwQVx1ODYxM1x1ODYwQlx1ODVGRVx1ODVGQVx1ODYwNlx1ODYyMlx1ODYxQVx1ODYzMFx1ODYzRlx1ODY0RFx1NEU1NVx1ODY1NFx1ODY1Rlx1ODY2N1x1ODY3MVx1ODY5M1x1ODZBM1x1ODZBOVx1ODZBQVx1ODY4Qlx1ODY4Q1x1ODZCNlx1ODZBRlx1ODZDNFx1ODZDNlx1ODZCMFx1ODZDOVx1ODgyM1x1ODZBQlx1ODZENFx1ODZERVx1ODZFOVx1ODZFQ1wiXSxcbltcImU1ODBcIixcIlx1ODZERlx1ODZEQlx1ODZFRlx1ODcxMlx1ODcwNlx1ODcwOFx1ODcwMFx1ODcwM1x1ODZGQlx1ODcxMVx1ODcwOVx1ODcwRFx1ODZGOVx1ODcwQVx1ODczNFx1ODczRlx1ODczN1x1ODczQlx1ODcyNVx1ODcyOVx1ODcxQVx1ODc2MFx1ODc1Rlx1ODc3OFx1ODc0Q1x1ODc0RVx1ODc3NFx1ODc1N1x1ODc2OFx1ODc2RVx1ODc1OVx1ODc1M1x1ODc2M1x1ODc2QVx1ODgwNVx1ODdBMlx1ODc5Rlx1ODc4Mlx1ODdBRlx1ODdDQlx1ODdCRFx1ODdDMFx1ODdEMFx1OTZENlx1ODdBQlx1ODdDNFx1ODdCM1x1ODdDN1x1ODdDNlx1ODdCQlx1ODdFRlx1ODdGMlx1ODdFMFx1ODgwRlx1ODgwRFx1ODdGRVx1ODdGNlx1ODdGN1x1ODgwRVx1ODdEMlx1ODgxMVx1ODgxNlx1ODgxNVx1ODgyMlx1ODgyMVx1ODgzMVx1ODgzNlx1ODgzOVx1ODgyN1x1ODgzQlx1ODg0NFx1ODg0Mlx1ODg1Mlx1ODg1OVx1ODg1RVx1ODg2Mlx1ODg2Qlx1ODg4MVx1ODg3RVx1ODg5RVx1ODg3NVx1ODg3RFx1ODhCNVx1ODg3Mlx1ODg4Mlx1ODg5N1x1ODg5Mlx1ODhBRVx1ODg5OVx1ODhBMlx1ODg4RFx1ODhBNFx1ODhCMFx1ODhCRlx1ODhCMVx1ODhDM1x1ODhDNFx1ODhENFx1ODhEOFx1ODhEOVx1ODhERFx1ODhGOVx1ODkwMlx1ODhGQ1x1ODhGNFx1ODhFOFx1ODhGMlx1ODkwNFx1ODkwQ1x1ODkwQVx1ODkxM1x1ODk0M1x1ODkxRVx1ODkyNVx1ODkyQVx1ODkyQlx1ODk0MVx1ODk0NFx1ODkzQlx1ODkzNlx1ODkzOFx1ODk0Q1x1ODkxRFx1ODk2MFx1ODk1RVwiXSxcbltcImU2NDBcIixcIlx1ODk2Nlx1ODk2NFx1ODk2RFx1ODk2QVx1ODk2Rlx1ODk3NFx1ODk3N1x1ODk3RVx1ODk4M1x1ODk4OFx1ODk4QVx1ODk5M1x1ODk5OFx1ODlBMVx1ODlBOVx1ODlBNlx1ODlBQ1x1ODlBRlx1ODlCMlx1ODlCQVx1ODlCRFx1ODlCRlx1ODlDMFx1ODlEQVx1ODlEQ1x1ODlERFx1ODlFN1x1ODlGNFx1ODlGOFx1OEEwM1x1OEExNlx1OEExMFx1OEEwQ1x1OEExQlx1OEExRFx1OEEyNVx1OEEzNlx1OEE0MVx1OEE1Qlx1OEE1Mlx1OEE0Nlx1OEE0OFx1OEE3Q1x1OEE2RFx1OEE2Q1x1OEE2Mlx1OEE4NVx1OEE4Mlx1OEE4NFx1OEFBOFx1OEFBMVx1OEE5MVx1OEFBNVx1OEFBNlx1OEE5QVx1OEFBM1x1OEFDNFx1OEFDRFx1OEFDMlx1OEFEQVx1OEFFQlx1OEFGM1x1OEFFN1wiXSxcbltcImU2ODBcIixcIlx1OEFFNFx1OEFGMVx1OEIxNFx1OEFFMFx1OEFFMlx1OEFGN1x1OEFERVx1OEFEQlx1OEIwQ1x1OEIwN1x1OEIxQVx1OEFFMVx1OEIxNlx1OEIxMFx1OEIxN1x1OEIyMFx1OEIzM1x1OTdBQlx1OEIyNlx1OEIyQlx1OEIzRVx1OEIyOFx1OEI0MVx1OEI0Q1x1OEI0Rlx1OEI0RVx1OEI0OVx1OEI1Nlx1OEI1Qlx1OEI1QVx1OEI2Qlx1OEI1Rlx1OEI2Q1x1OEI2Rlx1OEI3NFx1OEI3RFx1OEI4MFx1OEI4Q1x1OEI4RVx1OEI5Mlx1OEI5M1x1OEI5Nlx1OEI5OVx1OEI5QVx1OEMzQVx1OEM0MVx1OEMzRlx1OEM0OFx1OEM0Q1x1OEM0RVx1OEM1MFx1OEM1NVx1OEM2Mlx1OEM2Q1x1OEM3OFx1OEM3QVx1OEM4Mlx1OEM4OVx1OEM4NVx1OEM4QVx1OEM4RFx1OEM4RVx1OEM5NFx1OEM3Q1x1OEM5OFx1NjIxRFx1OENBRFx1OENBQVx1OENCRFx1OENCMlx1OENCM1x1OENBRVx1OENCNlx1OENDOFx1OENDMVx1OENFNFx1OENFM1x1OENEQVx1OENGRFx1OENGQVx1OENGQlx1OEQwNFx1OEQwNVx1OEQwQVx1OEQwN1x1OEQwRlx1OEQwRFx1OEQxMFx1OUY0RVx1OEQxM1x1OENDRFx1OEQxNFx1OEQxNlx1OEQ2N1x1OEQ2RFx1OEQ3MVx1OEQ3M1x1OEQ4MVx1OEQ5OVx1OERDMlx1OERCRVx1OERCQVx1OERDRlx1OEREQVx1OERENlx1OERDQ1x1OEREQlx1OERDQlx1OERFQVx1OERFQlx1OERERlx1OERFM1x1OERGQ1x1OEUwOFx1OEUwOVx1OERGRlx1OEUxRFx1OEUxRVx1OEUxMFx1OEUxRlx1OEU0Mlx1OEUzNVx1OEUzMFx1OEUzNFx1OEU0QVwiXSxcbltcImU3NDBcIixcIlx1OEU0N1x1OEU0OVx1OEU0Q1x1OEU1MFx1OEU0OFx1OEU1OVx1OEU2NFx1OEU2MFx1OEUyQVx1OEU2M1x1OEU1NVx1OEU3Nlx1OEU3Mlx1OEU3Q1x1OEU4MVx1OEU4N1x1OEU4NVx1OEU4NFx1OEU4Qlx1OEU4QVx1OEU5M1x1OEU5MVx1OEU5NFx1OEU5OVx1OEVBQVx1OEVBMVx1OEVBQ1x1OEVCMFx1OEVDNlx1OEVCMVx1OEVCRVx1OEVDNVx1OEVDOFx1OEVDQlx1OEVEQlx1OEVFM1x1OEVGQ1x1OEVGQlx1OEVFQlx1OEVGRVx1OEYwQVx1OEYwNVx1OEYxNVx1OEYxMlx1OEYxOVx1OEYxM1x1OEYxQ1x1OEYxRlx1OEYxQlx1OEYwQ1x1OEYyNlx1OEYzM1x1OEYzQlx1OEYzOVx1OEY0NVx1OEY0Mlx1OEYzRVx1OEY0Q1x1OEY0OVx1OEY0Nlx1OEY0RVx1OEY1N1x1OEY1Q1wiXSxcbltcImU3ODBcIixcIlx1OEY2Mlx1OEY2M1x1OEY2NFx1OEY5Q1x1OEY5Rlx1OEZBM1x1OEZBRFx1OEZBRlx1OEZCN1x1OEZEQVx1OEZFNVx1OEZFMlx1OEZFQVx1OEZFRlx1OTA4N1x1OEZGNFx1OTAwNVx1OEZGOVx1OEZGQVx1OTAxMVx1OTAxNVx1OTAyMVx1OTAwRFx1OTAxRVx1OTAxNlx1OTAwQlx1OTAyN1x1OTAzNlx1OTAzNVx1OTAzOVx1OEZGOFx1OTA0Rlx1OTA1MFx1OTA1MVx1OTA1Mlx1OTAwRVx1OTA0OVx1OTAzRVx1OTA1Nlx1OTA1OFx1OTA1RVx1OTA2OFx1OTA2Rlx1OTA3Nlx1OTZBOFx1OTA3Mlx1OTA4Mlx1OTA3RFx1OTA4MVx1OTA4MFx1OTA4QVx1OTA4OVx1OTA4Rlx1OTBBOFx1OTBBRlx1OTBCMVx1OTBCNVx1OTBFMlx1OTBFNFx1NjI0OFx1OTBEQlx1OTEwMlx1OTExMlx1OTExOVx1OTEzMlx1OTEzMFx1OTE0QVx1OTE1Nlx1OTE1OFx1OTE2M1x1OTE2NVx1OTE2OVx1OTE3M1x1OTE3Mlx1OTE4Qlx1OTE4OVx1OTE4Mlx1OTFBMlx1OTFBQlx1OTFBRlx1OTFBQVx1OTFCNVx1OTFCNFx1OTFCQVx1OTFDMFx1OTFDMVx1OTFDOVx1OTFDQlx1OTFEMFx1OTFENlx1OTFERlx1OTFFMVx1OTFEQlx1OTFGQ1x1OTFGNVx1OTFGNlx1OTIxRVx1OTFGRlx1OTIxNFx1OTIyQ1x1OTIxNVx1OTIxMVx1OTI1RVx1OTI1N1x1OTI0NVx1OTI0OVx1OTI2NFx1OTI0OFx1OTI5NVx1OTIzRlx1OTI0Qlx1OTI1MFx1OTI5Q1x1OTI5Nlx1OTI5M1x1OTI5Qlx1OTI1QVx1OTJDRlx1OTJCOVx1OTJCN1x1OTJFOVx1OTMwRlx1OTJGQVx1OTM0NFx1OTMyRVwiXSxcbltcImU4NDBcIixcIlx1OTMxOVx1OTMyMlx1OTMxQVx1OTMyM1x1OTMzQVx1OTMzNVx1OTMzQlx1OTM1Q1x1OTM2MFx1OTM3Q1x1OTM2RVx1OTM1Nlx1OTNCMFx1OTNBQ1x1OTNBRFx1OTM5NFx1OTNCOVx1OTNENlx1OTNEN1x1OTNFOFx1OTNFNVx1OTNEOFx1OTNDM1x1OTNERFx1OTNEMFx1OTNDOFx1OTNFNFx1OTQxQVx1OTQxNFx1OTQxM1x1OTQwM1x1OTQwN1x1OTQxMFx1OTQzNlx1OTQyQlx1OTQzNVx1OTQyMVx1OTQzQVx1OTQ0MVx1OTQ1Mlx1OTQ0NFx1OTQ1Qlx1OTQ2MFx1OTQ2Mlx1OTQ1RVx1OTQ2QVx1OTIyOVx1OTQ3MFx1OTQ3NVx1OTQ3N1x1OTQ3RFx1OTQ1QVx1OTQ3Q1x1OTQ3RVx1OTQ4MVx1OTQ3Rlx1OTU4Mlx1OTU4N1x1OTU4QVx1OTU5NFx1OTU5Nlx1OTU5OFx1OTU5OVwiXSxcbltcImU4ODBcIixcIlx1OTVBMFx1OTVBOFx1OTVBN1x1OTVBRFx1OTVCQ1x1OTVCQlx1OTVCOVx1OTVCRVx1OTVDQVx1NkZGNlx1OTVDM1x1OTVDRFx1OTVDQ1x1OTVENVx1OTVENFx1OTVENlx1OTVEQ1x1OTVFMVx1OTVFNVx1OTVFMlx1OTYyMVx1OTYyOFx1OTYyRVx1OTYyRlx1OTY0Mlx1OTY0Q1x1OTY0Rlx1OTY0Qlx1OTY3N1x1OTY1Q1x1OTY1RVx1OTY1RFx1OTY1Rlx1OTY2Nlx1OTY3Mlx1OTY2Q1x1OTY4RFx1OTY5OFx1OTY5NVx1OTY5N1x1OTZBQVx1OTZBN1x1OTZCMVx1OTZCMlx1OTZCMFx1OTZCNFx1OTZCNlx1OTZCOFx1OTZCOVx1OTZDRVx1OTZDQlx1OTZDOVx1OTZDRFx1ODk0RFx1OTZEQ1x1OTcwRFx1OTZENVx1OTZGOVx1OTcwNFx1OTcwNlx1OTcwOFx1OTcxM1x1OTcwRVx1OTcxMVx1OTcwRlx1OTcxNlx1OTcxOVx1OTcyNFx1OTcyQVx1OTczMFx1OTczOVx1OTczRFx1OTczRVx1OTc0NFx1OTc0Nlx1OTc0OFx1OTc0Mlx1OTc0OVx1OTc1Q1x1OTc2MFx1OTc2NFx1OTc2Nlx1OTc2OFx1NTJEMlx1OTc2Qlx1OTc3MVx1OTc3OVx1OTc4NVx1OTc3Q1x1OTc4MVx1OTc3QVx1OTc4Nlx1OTc4Qlx1OTc4Rlx1OTc5MFx1OTc5Q1x1OTdBOFx1OTdBNlx1OTdBM1x1OTdCM1x1OTdCNFx1OTdDM1x1OTdDNlx1OTdDOFx1OTdDQlx1OTdEQ1x1OTdFRFx1OUY0Rlx1OTdGMlx1N0FERlx1OTdGNlx1OTdGNVx1OTgwRlx1OTgwQ1x1OTgzOFx1OTgyNFx1OTgyMVx1OTgzN1x1OTgzRFx1OTg0Nlx1OTg0Rlx1OTg0Qlx1OTg2Qlx1OTg2Rlx1OTg3MFwiXSxcbltcImU5NDBcIixcIlx1OTg3MVx1OTg3NFx1OTg3M1x1OThBQVx1OThBRlx1OThCMVx1OThCNlx1OThDNFx1OThDM1x1OThDNlx1OThFOVx1OThFQlx1OTkwM1x1OTkwOVx1OTkxMlx1OTkxNFx1OTkxOFx1OTkyMVx1OTkxRFx1OTkxRVx1OTkyNFx1OTkyMFx1OTkyQ1x1OTkyRVx1OTkzRFx1OTkzRVx1OTk0Mlx1OTk0OVx1OTk0NVx1OTk1MFx1OTk0Qlx1OTk1MVx1OTk1Mlx1OTk0Q1x1OTk1NVx1OTk5N1x1OTk5OFx1OTlBNVx1OTlBRFx1OTlBRVx1OTlCQ1x1OTlERlx1OTlEQlx1OTlERFx1OTlEOFx1OTlEMVx1OTlFRFx1OTlFRVx1OTlGMVx1OTlGMlx1OTlGQlx1OTlGOFx1OUEwMVx1OUEwRlx1OUEwNVx1OTlFMlx1OUExOVx1OUEyQlx1OUEzN1x1OUE0NVx1OUE0Mlx1OUE0MFx1OUE0M1wiXSxcbltcImU5ODBcIixcIlx1OUEzRVx1OUE1NVx1OUE0RFx1OUE1Qlx1OUE1N1x1OUE1Rlx1OUE2Mlx1OUE2NVx1OUE2NFx1OUE2OVx1OUE2Qlx1OUE2QVx1OUFBRFx1OUFCMFx1OUFCQ1x1OUFDMFx1OUFDRlx1OUFEMVx1OUFEM1x1OUFENFx1OUFERVx1OUFERlx1OUFFMlx1OUFFM1x1OUFFNlx1OUFFRlx1OUFFQlx1OUFFRVx1OUFGNFx1OUFGMVx1OUFGN1x1OUFGQlx1OUIwNlx1OUIxOFx1OUIxQVx1OUIxRlx1OUIyMlx1OUIyM1x1OUIyNVx1OUIyN1x1OUIyOFx1OUIyOVx1OUIyQVx1OUIyRVx1OUIyRlx1OUIzMlx1OUI0NFx1OUI0M1x1OUI0Rlx1OUI0RFx1OUI0RVx1OUI1MVx1OUI1OFx1OUI3NFx1OUI5M1x1OUI4M1x1OUI5MVx1OUI5Nlx1OUI5N1x1OUI5Rlx1OUJBMFx1OUJBOFx1OUJCNFx1OUJDMFx1OUJDQVx1OUJCOVx1OUJDNlx1OUJDRlx1OUJEMVx1OUJEMlx1OUJFM1x1OUJFMlx1OUJFNFx1OUJENFx1OUJFMVx1OUMzQVx1OUJGMlx1OUJGMVx1OUJGMFx1OUMxNVx1OUMxNFx1OUMwOVx1OUMxM1x1OUMwQ1x1OUMwNlx1OUMwOFx1OUMxMlx1OUMwQVx1OUMwNFx1OUMyRVx1OUMxQlx1OUMyNVx1OUMyNFx1OUMyMVx1OUMzMFx1OUM0N1x1OUMzMlx1OUM0Nlx1OUMzRVx1OUM1QVx1OUM2MFx1OUM2N1x1OUM3Nlx1OUM3OFx1OUNFN1x1OUNFQ1x1OUNGMFx1OUQwOVx1OUQwOFx1OUNFQlx1OUQwM1x1OUQwNlx1OUQyQVx1OUQyNlx1OURBRlx1OUQyM1x1OUQxRlx1OUQ0NFx1OUQxNVx1OUQxMlx1OUQ0MVx1OUQzRlx1OUQzRVx1OUQ0Nlx1OUQ0OFwiXSxcbltcImVhNDBcIixcIlx1OUQ1RFx1OUQ1RVx1OUQ2NFx1OUQ1MVx1OUQ1MFx1OUQ1OVx1OUQ3Mlx1OUQ4OVx1OUQ4N1x1OURBQlx1OUQ2Rlx1OUQ3QVx1OUQ5QVx1OURBNFx1OURBOVx1OURCMlx1OURDNFx1OURDMVx1OURCQlx1OURCOFx1OURCQVx1OURDNlx1OURDRlx1OURDMlx1OUREOVx1OUREM1x1OURGOFx1OURFNlx1OURFRFx1OURFRlx1OURGRFx1OUUxQVx1OUUxQlx1OUUxRVx1OUU3NVx1OUU3OVx1OUU3RFx1OUU4MVx1OUU4OFx1OUU4Qlx1OUU4Q1x1OUU5Mlx1OUU5NVx1OUU5MVx1OUU5RFx1OUVBNVx1OUVBOVx1OUVCOFx1OUVBQVx1OUVBRFx1OTc2MVx1OUVDQ1x1OUVDRVx1OUVDRlx1OUVEMFx1OUVENFx1OUVEQ1x1OUVERVx1OUVERFx1OUVFMFx1OUVFNVx1OUVFOFx1OUVFRlwiXSxcbltcImVhODBcIixcIlx1OUVGNFx1OUVGNlx1OUVGN1x1OUVGOVx1OUVGQlx1OUVGQ1x1OUVGRFx1OUYwN1x1OUYwOFx1NzZCN1x1OUYxNVx1OUYyMVx1OUYyQ1x1OUYzRVx1OUY0QVx1OUY1Mlx1OUY1NFx1OUY2M1x1OUY1Rlx1OUY2MFx1OUY2MVx1OUY2Nlx1OUY2N1x1OUY2Q1x1OUY2QVx1OUY3N1x1OUY3Mlx1OUY3Nlx1OUY5NVx1OUY5Q1x1OUZBMFx1NTgyRlx1NjlDN1x1OTA1OVx1NzQ2NFx1NTFEQ1x1NzE5OVwiXSxcbltcImVkNDBcIixcIlx1N0U4QVx1ODkxQ1x1OTM0OFx1OTI4OFx1ODREQ1x1NEZDOVx1NzBCQlx1NjYzMVx1NjhDOFx1OTJGOVx1NjZGQlx1NUY0NVx1NEUyOFx1NEVFMVx1NEVGQ1x1NEYwMFx1NEYwM1x1NEYzOVx1NEY1Nlx1NEY5Mlx1NEY4QVx1NEY5QVx1NEY5NFx1NEZDRFx1NTA0MFx1NTAyMlx1NEZGRlx1NTAxRVx1NTA0Nlx1NTA3MFx1NTA0Mlx1NTA5NFx1NTBGNFx1NTBEOFx1NTE0QVx1NTE2NFx1NTE5RFx1NTFCRVx1NTFFQ1x1NTIxNVx1NTI5Q1x1NTJBNlx1NTJDMFx1NTJEQlx1NTMwMFx1NTMwN1x1NTMyNFx1NTM3Mlx1NTM5M1x1NTNCMlx1NTNERFx1RkEwRVx1NTQ5Q1x1NTQ4QVx1NTRBOVx1NTRGRlx1NTU4Nlx1NTc1OVx1NTc2NVx1NTdBQ1x1NTdDOFx1NTdDN1x1RkEwRlwiXSxcbltcImVkODBcIixcIlx1RkExMFx1NTg5RVx1NThCMlx1NTkwQlx1NTk1M1x1NTk1Qlx1NTk1RFx1NTk2M1x1NTlBNFx1NTlCQVx1NUI1Nlx1NUJDMFx1NzUyRlx1NUJEOFx1NUJFQ1x1NUMxRVx1NUNBNlx1NUNCQVx1NUNGNVx1NUQyN1x1NUQ1M1x1RkExMVx1NUQ0Mlx1NUQ2RFx1NURCOFx1NURCOVx1NUREMFx1NUYyMVx1NUYzNFx1NUY2N1x1NUZCN1x1NUZERVx1NjA1RFx1NjA4NVx1NjA4QVx1NjBERVx1NjBENVx1NjEyMFx1NjBGMlx1NjExMVx1NjEzN1x1NjEzMFx1NjE5OFx1NjIxM1x1NjJBNlx1NjNGNVx1NjQ2MFx1NjQ5RFx1NjRDRVx1NjU0RVx1NjYwMFx1NjYxNVx1NjYzQlx1NjYwOVx1NjYyRVx1NjYxRVx1NjYyNFx1NjY2NVx1NjY1N1x1NjY1OVx1RkExMlx1NjY3M1x1NjY5OVx1NjZBMFx1NjZCMlx1NjZCRlx1NjZGQVx1NjcwRVx1RjkyOVx1Njc2Nlx1NjdCQlx1Njg1Mlx1NjdDMFx1NjgwMVx1Njg0NFx1NjhDRlx1RkExM1x1Njk2OFx1RkExNFx1Njk5OFx1NjlFMlx1NkEzMFx1NkE2Qlx1NkE0Nlx1NkE3M1x1NkE3RVx1NkFFMlx1NkFFNFx1NkJENlx1NkMzRlx1NkM1Q1x1NkM4Nlx1NkM2Rlx1NkNEQVx1NkQwNFx1NkQ4N1x1NkQ2Rlx1NkQ5Nlx1NkRBQ1x1NkRDRlx1NkRGOFx1NkRGMlx1NkRGQ1x1NkUzOVx1NkU1Q1x1NkUyN1x1NkUzQ1x1NkVCRlx1NkY4OFx1NkZCNVx1NkZGNVx1NzAwNVx1NzAwN1x1NzAyOFx1NzA4NVx1NzBBQlx1NzEwRlx1NzEwNFx1NzE1Q1x1NzE0Nlx1NzE0N1x1RkExNVx1NzFDMVx1NzFGRVx1NzJCMVwiXSxcbltcImVlNDBcIixcIlx1NzJCRVx1NzMyNFx1RkExNlx1NzM3N1x1NzNCRFx1NzNDOVx1NzNENlx1NzNFM1x1NzNEMlx1NzQwN1x1NzNGNVx1NzQyNlx1NzQyQVx1NzQyOVx1NzQyRVx1NzQ2Mlx1NzQ4OVx1NzQ5Rlx1NzUwMVx1NzU2Rlx1NzY4Mlx1NzY5Q1x1NzY5RVx1NzY5Qlx1NzZBNlx1RkExN1x1Nzc0Nlx1NTJBRlx1NzgyMVx1Nzg0RVx1Nzg2NFx1Nzg3QVx1NzkzMFx1RkExOFx1RkExOVx1RkExQVx1Nzk5NFx1RkExQlx1Nzk5Qlx1N0FEMVx1N0FFN1x1RkExQ1x1N0FFQlx1N0I5RVx1RkExRFx1N0Q0OFx1N0Q1Q1x1N0RCN1x1N0RBMFx1N0RENlx1N0U1Mlx1N0Y0N1x1N0ZBMVx1RkExRVx1ODMwMVx1ODM2Mlx1ODM3Rlx1ODNDN1x1ODNGNlx1ODQ0OFx1ODRCNFx1ODU1M1x1ODU1OVwiXSxcbltcImVlODBcIixcIlx1ODU2Qlx1RkExRlx1ODVCMFx1RkEyMFx1RkEyMVx1ODgwN1x1ODhGNVx1OEExMlx1OEEzN1x1OEE3OVx1OEFBN1x1OEFCRVx1OEFERlx1RkEyMlx1OEFGNlx1OEI1M1x1OEI3Rlx1OENGMFx1OENGNFx1OEQxMlx1OEQ3Nlx1RkEyM1x1OEVDRlx1RkEyNFx1RkEyNVx1OTA2N1x1OTBERVx1RkEyNlx1OTExNVx1OTEyN1x1OTFEQVx1OTFEN1x1OTFERVx1OTFFRFx1OTFFRVx1OTFFNFx1OTFFNVx1OTIwNlx1OTIxMFx1OTIwQVx1OTIzQVx1OTI0MFx1OTIzQ1x1OTI0RVx1OTI1OVx1OTI1MVx1OTIzOVx1OTI2N1x1OTJBN1x1OTI3N1x1OTI3OFx1OTJFN1x1OTJEN1x1OTJEOVx1OTJEMFx1RkEyN1x1OTJENVx1OTJFMFx1OTJEM1x1OTMyNVx1OTMyMVx1OTJGQlx1RkEyOFx1OTMxRVx1OTJGRlx1OTMxRFx1OTMwMlx1OTM3MFx1OTM1N1x1OTNBNFx1OTNDNlx1OTNERVx1OTNGOFx1OTQzMVx1OTQ0NVx1OTQ0OFx1OTU5Mlx1RjlEQ1x1RkEyOVx1OTY5RFx1OTZBRlx1OTczM1x1OTczQlx1OTc0M1x1OTc0RFx1OTc0Rlx1OTc1MVx1OTc1NVx1OTg1N1x1OTg2NVx1RkEyQVx1RkEyQlx1OTkyN1x1RkEyQ1x1OTk5RVx1OUE0RVx1OUFEOVx1OUFEQ1x1OUI3NVx1OUI3Mlx1OUI4Rlx1OUJCMVx1OUJCQlx1OUMwMFx1OUQ3MFx1OUQ2Qlx1RkEyRFx1OUUxOVx1OUVEMVwiXSxcbltcImVlZWZcIixcIlx1MjE3MFwiLDksXCJcdUZGRTJcdUZGRTRcdUZGMDdcdUZGMDJcIl0sXG5bXCJmMDQwXCIsXCJcdUUwMDBcIiw2Ml0sXG5bXCJmMDgwXCIsXCJcdUUwM0ZcIiwxMjRdLFxuW1wiZjE0MFwiLFwiXHVFMEJDXCIsNjJdLFxuW1wiZjE4MFwiLFwiXHVFMEZCXCIsMTI0XSxcbltcImYyNDBcIixcIlx1RTE3OFwiLDYyXSxcbltcImYyODBcIixcIlx1RTFCN1wiLDEyNF0sXG5bXCJmMzQwXCIsXCJcdUUyMzRcIiw2Ml0sXG5bXCJmMzgwXCIsXCJcdUUyNzNcIiwxMjRdLFxuW1wiZjQ0MFwiLFwiXHVFMkYwXCIsNjJdLFxuW1wiZjQ4MFwiLFwiXHVFMzJGXCIsMTI0XSxcbltcImY1NDBcIixcIlx1RTNBQ1wiLDYyXSxcbltcImY1ODBcIixcIlx1RTNFQlwiLDEyNF0sXG5bXCJmNjQwXCIsXCJcdUU0NjhcIiw2Ml0sXG5bXCJmNjgwXCIsXCJcdUU0QTdcIiwxMjRdLFxuW1wiZjc0MFwiLFwiXHVFNTI0XCIsNjJdLFxuW1wiZjc4MFwiLFwiXHVFNTYzXCIsMTI0XSxcbltcImY4NDBcIixcIlx1RTVFMFwiLDYyXSxcbltcImY4ODBcIixcIlx1RTYxRlwiLDEyNF0sXG5bXCJmOTQwXCIsXCJcdUU2OUNcIl0sXG5bXCJmYTQwXCIsXCJcdTIxNzBcIiw5LFwiXHUyMTYwXCIsOSxcIlx1RkZFMlx1RkZFNFx1RkYwN1x1RkYwMlx1MzIzMVx1MjExNlx1MjEyMVx1MjIzNVx1N0U4QVx1ODkxQ1x1OTM0OFx1OTI4OFx1ODREQ1x1NEZDOVx1NzBCQlx1NjYzMVx1NjhDOFx1OTJGOVx1NjZGQlx1NUY0NVx1NEUyOFx1NEVFMVx1NEVGQ1x1NEYwMFx1NEYwM1x1NEYzOVx1NEY1Nlx1NEY5Mlx1NEY4QVx1NEY5QVx1NEY5NFx1NEZDRFx1NTA0MFx1NTAyMlx1NEZGRlx1NTAxRVx1NTA0Nlx1NTA3MFx1NTA0Mlx1NTA5NFx1NTBGNFx1NTBEOFx1NTE0QVwiXSxcbltcImZhODBcIixcIlx1NTE2NFx1NTE5RFx1NTFCRVx1NTFFQ1x1NTIxNVx1NTI5Q1x1NTJBNlx1NTJDMFx1NTJEQlx1NTMwMFx1NTMwN1x1NTMyNFx1NTM3Mlx1NTM5M1x1NTNCMlx1NTNERFx1RkEwRVx1NTQ5Q1x1NTQ4QVx1NTRBOVx1NTRGRlx1NTU4Nlx1NTc1OVx1NTc2NVx1NTdBQ1x1NTdDOFx1NTdDN1x1RkEwRlx1RkExMFx1NTg5RVx1NThCMlx1NTkwQlx1NTk1M1x1NTk1Qlx1NTk1RFx1NTk2M1x1NTlBNFx1NTlCQVx1NUI1Nlx1NUJDMFx1NzUyRlx1NUJEOFx1NUJFQ1x1NUMxRVx1NUNBNlx1NUNCQVx1NUNGNVx1NUQyN1x1NUQ1M1x1RkExMVx1NUQ0Mlx1NUQ2RFx1NURCOFx1NURCOVx1NUREMFx1NUYyMVx1NUYzNFx1NUY2N1x1NUZCN1x1NUZERVx1NjA1RFx1NjA4NVx1NjA4QVx1NjBERVx1NjBENVx1NjEyMFx1NjBGMlx1NjExMVx1NjEzN1x1NjEzMFx1NjE5OFx1NjIxM1x1NjJBNlx1NjNGNVx1NjQ2MFx1NjQ5RFx1NjRDRVx1NjU0RVx1NjYwMFx1NjYxNVx1NjYzQlx1NjYwOVx1NjYyRVx1NjYxRVx1NjYyNFx1NjY2NVx1NjY1N1x1NjY1OVx1RkExMlx1NjY3M1x1NjY5OVx1NjZBMFx1NjZCMlx1NjZCRlx1NjZGQVx1NjcwRVx1RjkyOVx1Njc2Nlx1NjdCQlx1Njg1Mlx1NjdDMFx1NjgwMVx1Njg0NFx1NjhDRlx1RkExM1x1Njk2OFx1RkExNFx1Njk5OFx1NjlFMlx1NkEzMFx1NkE2Qlx1NkE0Nlx1NkE3M1x1NkE3RVx1NkFFMlx1NkFFNFx1NkJENlx1NkMzRlx1NkM1Q1x1NkM4Nlx1NkM2Rlx1NkNEQVx1NkQwNFx1NkQ4N1x1NkQ2RlwiXSxcbltcImZiNDBcIixcIlx1NkQ5Nlx1NkRBQ1x1NkRDRlx1NkRGOFx1NkRGMlx1NkRGQ1x1NkUzOVx1NkU1Q1x1NkUyN1x1NkUzQ1x1NkVCRlx1NkY4OFx1NkZCNVx1NkZGNVx1NzAwNVx1NzAwN1x1NzAyOFx1NzA4NVx1NzBBQlx1NzEwRlx1NzEwNFx1NzE1Q1x1NzE0Nlx1NzE0N1x1RkExNVx1NzFDMVx1NzFGRVx1NzJCMVx1NzJCRVx1NzMyNFx1RkExNlx1NzM3N1x1NzNCRFx1NzNDOVx1NzNENlx1NzNFM1x1NzNEMlx1NzQwN1x1NzNGNVx1NzQyNlx1NzQyQVx1NzQyOVx1NzQyRVx1NzQ2Mlx1NzQ4OVx1NzQ5Rlx1NzUwMVx1NzU2Rlx1NzY4Mlx1NzY5Q1x1NzY5RVx1NzY5Qlx1NzZBNlx1RkExN1x1Nzc0Nlx1NTJBRlx1NzgyMVx1Nzg0RVx1Nzg2NFx1Nzg3QVx1NzkzMFx1RkExOFx1RkExOVwiXSxcbltcImZiODBcIixcIlx1RkExQVx1Nzk5NFx1RkExQlx1Nzk5Qlx1N0FEMVx1N0FFN1x1RkExQ1x1N0FFQlx1N0I5RVx1RkExRFx1N0Q0OFx1N0Q1Q1x1N0RCN1x1N0RBMFx1N0RENlx1N0U1Mlx1N0Y0N1x1N0ZBMVx1RkExRVx1ODMwMVx1ODM2Mlx1ODM3Rlx1ODNDN1x1ODNGNlx1ODQ0OFx1ODRCNFx1ODU1M1x1ODU1OVx1ODU2Qlx1RkExRlx1ODVCMFx1RkEyMFx1RkEyMVx1ODgwN1x1ODhGNVx1OEExMlx1OEEzN1x1OEE3OVx1OEFBN1x1OEFCRVx1OEFERlx1RkEyMlx1OEFGNlx1OEI1M1x1OEI3Rlx1OENGMFx1OENGNFx1OEQxMlx1OEQ3Nlx1RkEyM1x1OEVDRlx1RkEyNFx1RkEyNVx1OTA2N1x1OTBERVx1RkEyNlx1OTExNVx1OTEyN1x1OTFEQVx1OTFEN1x1OTFERVx1OTFFRFx1OTFFRVx1OTFFNFx1OTFFNVx1OTIwNlx1OTIxMFx1OTIwQVx1OTIzQVx1OTI0MFx1OTIzQ1x1OTI0RVx1OTI1OVx1OTI1MVx1OTIzOVx1OTI2N1x1OTJBN1x1OTI3N1x1OTI3OFx1OTJFN1x1OTJEN1x1OTJEOVx1OTJEMFx1RkEyN1x1OTJENVx1OTJFMFx1OTJEM1x1OTMyNVx1OTMyMVx1OTJGQlx1RkEyOFx1OTMxRVx1OTJGRlx1OTMxRFx1OTMwMlx1OTM3MFx1OTM1N1x1OTNBNFx1OTNDNlx1OTNERVx1OTNGOFx1OTQzMVx1OTQ0NVx1OTQ0OFx1OTU5Mlx1RjlEQ1x1RkEyOVx1OTY5RFx1OTZBRlx1OTczM1x1OTczQlx1OTc0M1x1OTc0RFx1OTc0Rlx1OTc1MVx1OTc1NVx1OTg1N1x1OTg2NVx1RkEyQVx1RkEyQlx1OTkyN1x1RkEyQ1x1OTk5RVx1OUE0RVx1OUFEOVwiXSxcbltcImZjNDBcIixcIlx1OUFEQ1x1OUI3NVx1OUI3Mlx1OUI4Rlx1OUJCMVx1OUJCQlx1OUMwMFx1OUQ3MFx1OUQ2Qlx1RkEyRFx1OUUxOVx1OUVEMVwiXVxuXVxuIiwgIltcbltcIjBcIixcIlxcdTAwMDBcIiwxMjddLFxuW1wiOGVhMVwiLFwiXHVGRjYxXCIsNjJdLFxuW1wiYTFhMVwiLFwiXHUzMDAwXHUzMDAxXHUzMDAyXHVGRjBDXHVGRjBFXHUzMEZCXHVGRjFBXHVGRjFCXHVGRjFGXHVGRjAxXHUzMDlCXHUzMDlDXHUwMEI0XHVGRjQwXHUwMEE4XHVGRjNFXHVGRkUzXHVGRjNGXHUzMEZEXHUzMEZFXHUzMDlEXHUzMDlFXHUzMDAzXHU0RUREXHUzMDA1XHUzMDA2XHUzMDA3XHUzMEZDXHUyMDE1XHUyMDEwXHVGRjBGXHVGRjNDXHVGRjVFXHUyMjI1XHVGRjVDXHUyMDI2XHUyMDI1XHUyMDE4XHUyMDE5XHUyMDFDXHUyMDFEXHVGRjA4XHVGRjA5XHUzMDE0XHUzMDE1XHVGRjNCXHVGRjNEXHVGRjVCXHVGRjVEXHUzMDA4XCIsOSxcIlx1RkYwQlx1RkYwRFx1MDBCMVx1MDBEN1x1MDBGN1x1RkYxRFx1MjI2MFx1RkYxQ1x1RkYxRVx1MjI2Nlx1MjI2N1x1MjIxRVx1MjIzNFx1MjY0Mlx1MjY0MFx1MDBCMFx1MjAzMlx1MjAzM1x1MjEwM1x1RkZFNVx1RkYwNFx1RkZFMFx1RkZFMVx1RkYwNVx1RkYwM1x1RkYwNlx1RkYwQVx1RkYyMFx1MDBBN1x1MjYwNlx1MjYwNVx1MjVDQlx1MjVDRlx1MjVDRVx1MjVDN1wiXSxcbltcImEyYTFcIixcIlx1MjVDNlx1MjVBMVx1MjVBMFx1MjVCM1x1MjVCMlx1MjVCRFx1MjVCQ1x1MjAzQlx1MzAxMlx1MjE5Mlx1MjE5MFx1MjE5MVx1MjE5M1x1MzAxM1wiXSxcbltcImEyYmFcIixcIlx1MjIwOFx1MjIwQlx1MjI4Nlx1MjI4N1x1MjI4Mlx1MjI4M1x1MjIyQVx1MjIyOVwiXSxcbltcImEyY2FcIixcIlx1MjIyN1x1MjIyOFx1RkZFMlx1MjFEMlx1MjFENFx1MjIwMFx1MjIwM1wiXSxcbltcImEyZGNcIixcIlx1MjIyMFx1MjJBNVx1MjMxMlx1MjIwMlx1MjIwN1x1MjI2MVx1MjI1Mlx1MjI2QVx1MjI2Qlx1MjIxQVx1MjIzRFx1MjIxRFx1MjIzNVx1MjIyQlx1MjIyQ1wiXSxcbltcImEyZjJcIixcIlx1MjEyQlx1MjAzMFx1MjY2Rlx1MjY2RFx1MjY2QVx1MjAyMFx1MjAyMVx1MDBCNlwiXSxcbltcImEyZmVcIixcIlx1MjVFRlwiXSxcbltcImEzYjBcIixcIlx1RkYxMFwiLDldLFxuW1wiYTNjMVwiLFwiXHVGRjIxXCIsMjVdLFxuW1wiYTNlMVwiLFwiXHVGRjQxXCIsMjVdLFxuW1wiYTRhMVwiLFwiXHUzMDQxXCIsODJdLFxuW1wiYTVhMVwiLFwiXHUzMEExXCIsODVdLFxuW1wiYTZhMVwiLFwiXHUwMzkxXCIsMTYsXCJcdTAzQTNcIiw2XSxcbltcImE2YzFcIixcIlx1MDNCMVwiLDE2LFwiXHUwM0MzXCIsNl0sXG5bXCJhN2ExXCIsXCJcdTA0MTBcIiw1LFwiXHUwNDAxXHUwNDE2XCIsMjVdLFxuW1wiYTdkMVwiLFwiXHUwNDMwXCIsNSxcIlx1MDQ1MVx1MDQzNlwiLDI1XSxcbltcImE4YTFcIixcIlx1MjUwMFx1MjUwMlx1MjUwQ1x1MjUxMFx1MjUxOFx1MjUxNFx1MjUxQ1x1MjUyQ1x1MjUyNFx1MjUzNFx1MjUzQ1x1MjUwMVx1MjUwM1x1MjUwRlx1MjUxM1x1MjUxQlx1MjUxN1x1MjUyM1x1MjUzM1x1MjUyQlx1MjUzQlx1MjU0Qlx1MjUyMFx1MjUyRlx1MjUyOFx1MjUzN1x1MjUzRlx1MjUxRFx1MjUzMFx1MjUyNVx1MjUzOFx1MjU0MlwiXSxcbltcImFkYTFcIixcIlx1MjQ2MFwiLDE5LFwiXHUyMTYwXCIsOV0sXG5bXCJhZGMwXCIsXCJcdTMzNDlcdTMzMTRcdTMzMjJcdTMzNERcdTMzMThcdTMzMjdcdTMzMDNcdTMzMzZcdTMzNTFcdTMzNTdcdTMzMERcdTMzMjZcdTMzMjNcdTMzMkJcdTMzNEFcdTMzM0JcdTMzOUNcdTMzOURcdTMzOUVcdTMzOEVcdTMzOEZcdTMzQzRcdTMzQTFcIl0sXG5bXCJhZGRmXCIsXCJcdTMzN0JcdTMwMURcdTMwMUZcdTIxMTZcdTMzQ0RcdTIxMjFcdTMyQTRcIiw0LFwiXHUzMjMxXHUzMjMyXHUzMjM5XHUzMzdFXHUzMzdEXHUzMzdDXHUyMjUyXHUyMjYxXHUyMjJCXHUyMjJFXHUyMjExXHUyMjFBXHUyMkE1XHUyMjIwXHUyMjFGXHUyMkJGXHUyMjM1XHUyMjI5XHUyMjJBXCJdLFxuW1wiYjBhMVwiLFwiXHU0RTlDXHU1NTE2XHU1QTAzXHU5NjNGXHU1NEMwXHU2MTFCXHU2MzI4XHU1OUY2XHU5MDIyXHU4NDc1XHU4MzFDXHU3QTUwXHU2MEFBXHU2M0UxXHU2RTI1XHU2NUVEXHU4NDY2XHU4MkE2XHU5QkY1XHU2ODkzXHU1NzI3XHU2NUExXHU2MjcxXHU1QjlCXHU1OUQwXHU4NjdCXHU5OEY0XHU3RDYyXHU3REJFXHU5QjhFXHU2MjE2XHU3QzlGXHU4OEI3XHU1Qjg5XHU1RUI1XHU2MzA5XHU2Njk3XHU2ODQ4XHU5NUM3XHU5NzhEXHU2NzRGXHU0RUU1XHU0RjBBXHU0RjREXHU0RjlEXHU1MDQ5XHU1NkYyXHU1OTM3XHU1OUQ0XHU1QTAxXHU1QzA5XHU2MERGXHU2MTBGXHU2MTcwXHU2NjEzXHU2OTA1XHU3MEJBXHU3NTRGXHU3NTcwXHU3OUZCXHU3REFEXHU3REVGXHU4MEMzXHU4NDBFXHU4ODYzXHU4QjAyXHU5MDU1XHU5MDdBXHU1MzNCXHU0RTk1XHU0RUE1XHU1N0RGXHU4MEIyXHU5MEMxXHU3OEVGXHU0RTAwXHU1OEYxXHU2RUEyXHU5MDM4XHU3QTMyXHU4MzI4XHU4MjhCXHU5QzJGXHU1MTQxXHU1MzcwXHU1NEJEXHU1NEUxXHU1NkUwXHU1OUZCXHU1RjE1XHU5OEYyXHU2REVCXHU4MEU0XHU4NTJEXCJdLFxuW1wiYjFhMVwiLFwiXHU5NjYyXHU5NjcwXHU5NkEwXHU5N0ZCXHU1NDBCXHU1M0YzXHU1Qjg3XHU3MENGXHU3RkJEXHU4RkMyXHU5NkU4XHU1MzZGXHU5RDVDXHU3QUJBXHU0RTExXHU3ODkzXHU4MUZDXHU2RTI2XHU1NjE4XHU1NTA0XHU2QjFEXHU4NTFBXHU5QzNCXHU1OUU1XHU1M0E5XHU2RDY2XHU3NERDXHU5NThGXHU1NjQyXHU0RTkxXHU5MDRCXHU5NkYyXHU4MzRGXHU5OTBDXHU1M0UxXHU1NUI2XHU1QjMwXHU1RjcxXHU2NjIwXHU2NkYzXHU2ODA0XHU2QzM4XHU2Q0YzXHU2RDI5XHU3NDVCXHU3NkM4XHU3QTRFXHU5ODM0XHU4MkYxXHU4ODVCXHU4QTYwXHU5MkVEXHU2REIyXHU3NUFCXHU3NkNBXHU5OUM1XHU2MEE2XHU4QjAxXHU4RDhBXHU5NUIyXHU2OThFXHU1M0FEXHU1MTg2XHU1NzEyXHU1ODMwXHU1OTQ0XHU1QkI0XHU1RUY2XHU2MDI4XHU2M0E5XHU2M0Y0XHU2Q0JGXHU2RjE0XHU3MDhFXHU3MTE0XHU3MTU5XHU3MUQ1XHU3MzNGXHU3RTAxXHU4Mjc2XHU4MkQxXHU4NTk3XHU5MDYwXHU5MjVCXHU5RDFCXHU1ODY5XHU2NUJDXHU2QzVBXHU3NTI1XHU1MUY5XHU1OTJFXHU1OTY1XHU1RjgwXHU1RkRDXCJdLFxuW1wiYjJhMVwiLFwiXHU2MkJDXHU2NUZBXHU2QTJBXHU2QjI3XHU2QkI0XHU3MzhCXHU3RkMxXHU4OTU2XHU5RDJDXHU5RDBFXHU5RUM0XHU1Q0ExXHU2Qzk2XHU4MzdCXHU1MTA0XHU1QzRCXHU2MUI2XHU4MUM2XHU2ODc2XHU3MjYxXHU0RTU5XHU0RkZBXHU1Mzc4XHU2MDY5XHU2RTI5XHU3QTRGXHU5N0YzXHU0RTBCXHU1MzE2XHU0RUVFXHU0RjU1XHU0RjNEXHU0RkExXHU0RjczXHU1MkEwXHU1M0VGXHU1NjA5XHU1OTBGXHU1QUMxXHU1QkI2XHU1QkUxXHU3OUQxXHU2Njg3XHU2NzlDXHU2N0I2XHU2QjRDXHU2Q0IzXHU3MDZCXHU3M0MyXHU3OThEXHU3OUJFXHU3QTNDXHU3Qjg3XHU4MkIxXHU4MkRCXHU4MzA0XHU4Mzc3XHU4M0VGXHU4M0QzXHU4NzY2XHU4QUIyXHU1NjI5XHU4Q0E4XHU4RkU2XHU5MDRFXHU5NzFFXHU4NjhBXHU0RkM0XHU1Q0U4XHU2MjExXHU3MjU5XHU3NTNCXHU4MUU1XHU4MkJEXHU4NkZFXHU4Q0MwXHU5NkM1XHU5OTEzXHU5OUQ1XHU0RUNCXHU0RjFBXHU4OUUzXHU1NkRFXHU1ODRBXHU1OENBXHU1RUZCXHU1RkVCXHU2MDJBXHU2MDk0XHU2MDYyXHU2MUQwXHU2MjEyXHU2MkQwXHU2NTM5XCJdLFxuW1wiYjNhMVwiLFwiXHU5QjQxXHU2NjY2XHU2OEIwXHU2RDc3XHU3MDcwXHU3NTRDXHU3Njg2XHU3RDc1XHU4MkE1XHU4N0Y5XHU5NThCXHU5NjhFXHU4QzlEXHU1MUYxXHU1MkJFXHU1OTE2XHU1NEIzXHU1QkIzXHU1RDE2XHU2MTY4XHU2OTgyXHU2REFGXHU3ODhEXHU4NENCXHU4ODU3XHU4QTcyXHU5M0E3XHU5QUI4XHU2RDZDXHU5OUE4XHU4NkQ5XHU1N0EzXHU2N0ZGXHU4NkNFXHU5MjBFXHU1MjgzXHU1Njg3XHU1NDA0XHU1RUQzXHU2MkUxXHU2NEI5XHU2ODNDXHU2ODM4XHU2QkJCXHU3MzcyXHU3OEJBXHU3QTZCXHU4OTlBXHU4OUQyXHU4RDZCXHU4RjAzXHU5MEVEXHU5NUEzXHU5Njk0XHU5NzY5XHU1QjY2XHU1Q0IzXHU2OTdEXHU5ODREXHU5ODRFXHU2MzlCXHU3QjIwXHU2QTJCXHU2QTdGXHU2OEI2XHU5QzBEXHU2RjVGXHU1MjcyXHU1NTlEXHU2MDcwXHU2MkVDXHU2RDNCXHU2RTA3XHU2RUQxXHU4NDVCXHU4OTEwXHU4RjQ0XHU0RTE0XHU5QzM5XHU1M0Y2XHU2OTFCXHU2QTNBXHU5Nzg0XHU2ODJBXHU1MTVDXHU3QUMzXHU4NEIyXHU5MURDXHU5MzhDXHU1NjVCXHU5RDI4XHU2ODIyXHU4MzA1XHU4NDMxXCJdLFxuW1wiYjRhMVwiLFwiXHU3Q0E1XHU1MjA4XHU4MkM1XHU3NEU2XHU0RTdFXHU0RjgzXHU1MUEwXHU1QkQyXHU1MjBBXHU1MkQ4XHU1MkU3XHU1REZCXHU1NTlBXHU1ODJBXHU1OUU2XHU1QjhDXHU1Qjk4XHU1QkRCXHU1RTcyXHU1RTc5XHU2MEEzXHU2MTFGXHU2MTYzXHU2MUJFXHU2M0RCXHU2NTYyXHU2N0QxXHU2ODUzXHU2OEZBXHU2QjNFXHU2QjUzXHU2QzU3XHU2RjIyXHU2Rjk3XHU2RjQ1XHU3NEIwXHU3NTE4XHU3NkUzXHU3NzBCXHU3QUZGXHU3QkExXHU3QzIxXHU3REU5XHU3RjM2XHU3RkYwXHU4MDlEXHU4MjY2XHU4MzlFXHU4OUIzXHU4QUNDXHU4Q0FCXHU5MDg0XHU5NDUxXHU5NTkzXHU5NTkxXHU5NUEyXHU5NjY1XHU5N0QzXHU5OTI4XHU4MjE4XHU0RTM4XHU1NDJCXHU1Q0I4XHU1RENDXHU3M0E5XHU3NjRDXHU3NzNDXHU1Q0E5XHU3RkVCXHU4RDBCXHU5NkMxXHU5ODExXHU5ODU0XHU5ODU4XHU0RjAxXHU0RjBFXHU1MzcxXHU1NTlDXHU1NjY4XHU1N0ZBXHU1OTQ3XHU1QjA5XHU1QkM0XHU1QzkwXHU1RTBDXHU1RTdFXHU1RkNDXHU2M0VFXHU2NzNBXHU2NUQ3XHU2NUUyXHU2NzFGXHU2OENCXHU2OEM0XCJdLFxuW1wiYjVhMVwiLFwiXHU2QTVGXHU1RTMwXHU2QkM1XHU2QzE3XHU2QzdEXHU3NTdGXHU3OTQ4XHU1QjYzXHU3QTAwXHU3RDAwXHU1RkJEXHU4OThGXHU4QTE4XHU4Q0I0XHU4RDc3XHU4RUNDXHU4RjFEXHU5OEUyXHU5QTBFXHU5QjNDXHU0RTgwXHU1MDdEXHU1MTAwXHU1OTkzXHU1QjlDXHU2MjJGXHU2MjgwXHU2NEVDXHU2QjNBXHU3MkEwXHU3NTkxXHU3OTQ3XHU3RkE5XHU4N0ZCXHU4QUJDXHU4QjcwXHU2M0FDXHU4M0NBXHU5N0EwXHU1NDA5XHU1NDAzXHU1NUFCXHU2ODU0XHU2QTU4XHU4QTcwXHU3ODI3XHU2Nzc1XHU5RUNEXHU1Mzc0XHU1QkEyXHU4MTFBXHU4NjUwXHU5MDA2XHU0RTE4XHU0RTQ1XHU0RUM3XHU0RjExXHU1M0NBXHU1NDM4XHU1QkFFXHU1RjEzXHU2MDI1XHU2NTUxXHU2NzNEXHU2QzQyXHU2QzcyXHU2Q0UzXHU3MDc4XHU3NDAzXHU3QTc2XHU3QUFFXHU3QjA4XHU3RDFBXHU3Q0ZFXHU3RDY2XHU2NUU3XHU3MjVCXHU1M0JCXHU1QzQ1XHU1REU4XHU2MkQyXHU2MkUwXHU2MzE5XHU2RTIwXHU4NjVBXHU4QTMxXHU4REREXHU5MkY4XHU2RjAxXHU3OUE2XHU5QjVBXHU0RUE4XHU0RUFCXHU0RUFDXCJdLFxuW1wiYjZhMVwiLFwiXHU0RjlCXHU0RkEwXHU1MEQxXHU1MTQ3XHU3QUY2XHU1MTcxXHU1MUY2XHU1MzU0XHU1MzIxXHU1MzdGXHU1M0VCXHU1NUFDXHU1ODgzXHU1Q0UxXHU1RjM3XHU1RjRBXHU2MDJGXHU2MDUwXHU2MDZEXHU2MzFGXHU2NTU5XHU2QTRCXHU2Q0MxXHU3MkMyXHU3MkVEXHU3N0VGXHU4MEY4XHU4MTA1XHU4MjA4XHU4NTRFXHU5MEY3XHU5M0UxXHU5N0ZGXHU5OTU3XHU5QTVBXHU0RUYwXHU1MUREXHU1QzJEXHU2NjgxXHU2OTZEXHU1QzQwXHU2NkYyXHU2OTc1XHU3Mzg5XHU2ODUwXHU3QzgxXHU1MEM1XHU1MkU0XHU1NzQ3XHU1REZFXHU5MzI2XHU2NUE0XHU2QjIzXHU2QjNEXHU3NDM0XHU3OTgxXHU3OUJEXHU3QjRCXHU3RENBXHU4MkI5XHU4M0NDXHU4ODdGXHU4OTVGXHU4QjM5XHU4RkQxXHU5MUQxXHU1NDFGXHU5MjgwXHU0RTVEXHU1MDM2XHU1M0U1XHU1MzNBXHU3MkQ3XHU3Mzk2XHU3N0U5XHU4MkU2XHU4RUFGXHU5OUM2XHU5OUM4XHU5OUQyXHU1MTc3XHU2MTFBXHU4NjVFXHU1NUIwXHU3QTdBXHU1MDc2XHU1QkQzXHU5MDQ3XHU5Njg1XHU0RTMyXHU2QURCXHU5MUU3XHU1QzUxXHU1QzQ4XCJdLFxuW1wiYjdhMVwiLFwiXHU2Mzk4XHU3QTlGXHU2QzkzXHU5Nzc0XHU4RjYxXHU3QUFBXHU3MThBXHU5Njg4XHU3QzgyXHU2ODE3XHU3RTcwXHU2ODUxXHU5MzZDXHU1MkYyXHU1NDFCXHU4NUFCXHU4QTEzXHU3RkE0XHU4RUNEXHU5MEUxXHU1MzY2XHU4ODg4XHU3OTQxXHU0RkMyXHU1MEJFXHU1MjExXHU1MTQ0XHU1NTUzXHU1NzJEXHU3M0VBXHU1NzhCXHU1OTUxXHU1RjYyXHU1Rjg0XHU2MDc1XHU2MTc2XHU2MTY3XHU2MUE5XHU2M0IyXHU2NDNBXHU2NTZDXHU2NjZGXHU2ODQyXHU2RTEzXHU3NTY2XHU3QTNEXHU3Q0ZCXHU3RDRDXHU3RDk5XHU3RTRCXHU3RjZCXHU4MzBFXHU4MzRBXHU4NkNEXHU4QTA4XHU4QTYzXHU4QjY2XHU4RUZEXHU5ODFBXHU5RDhGXHU4MkI4XHU4RkNFXHU5QkU4XHU1Mjg3XHU2MjFGXHU2NDgzXHU2RkMwXHU5Njk5XHU2ODQxXHU1MDkxXHU2QjIwXHU2QzdBXHU2RjU0XHU3QTc0XHU3RDUwXHU4ODQwXHU4QTIzXHU2NzA4XHU0RUY2XHU1MDM5XHU1MDI2XHU1MDY1XHU1MTdDXHU1MjM4XHU1MjYzXHU1NUE3XHU1NzBGXHU1ODA1XHU1QUNDXHU1RUZBXHU2MUIyXHU2MUY4XHU2MkYzXHU2MzcyXCJdLFxuW1wiYjhhMVwiLFwiXHU2OTFDXHU2QTI5XHU3MjdEXHU3MkFDXHU3MzJFXHU3ODE0XHU3ODZGXHU3RDc5XHU3NzBDXHU4MEE5XHU4OThCXHU4QjE5XHU4Q0UyXHU4RUQyXHU5MDYzXHU5Mzc1XHU5NjdBXHU5ODU1XHU5QTEzXHU5RTc4XHU1MTQzXHU1MzlGXHU1M0IzXHU1RTdCXHU1RjI2XHU2RTFCXHU2RTkwXHU3Mzg0XHU3M0ZFXHU3RDQzXHU4MjM3XHU4QTAwXHU4QUZBXHU5NjUwXHU0RTRFXHU1MDBCXHU1M0U0XHU1NDdDXHU1NkZBXHU1OUQxXHU1QjY0XHU1REYxXHU1RUFCXHU1RjI3XHU2MjM4XHU2NTQ1XHU2N0FGXHU2RTU2XHU3MkQwXHU3Q0NBXHU4OEI0XHU4MEExXHU4MEUxXHU4M0YwXHU4NjRFXHU4QTg3XHU4REU4XHU5MjM3XHU5NkM3XHU5ODY3XHU5RjEzXHU0RTk0XHU0RTkyXHU0RjBEXHU1MzQ4XHU1NDQ5XHU1NDNFXHU1QTJGXHU1RjhDXHU1RkExXHU2MDlGXHU2OEE3XHU2QThFXHU3NDVBXHU3ODgxXHU4QTlFXHU4QUE0XHU4Qjc3XHU5MTkwXHU0RTVFXHU5QkM5XHU0RUE0XHU0RjdDXHU0RkFGXHU1MDE5XHU1MDE2XHU1MTQ5XHU1MTZDXHU1MjlGXHU1MkI5XHU1MkZFXHU1MzlBXHU1M0UzXHU1NDExXCJdLFxuW1wiYjlhMVwiLFwiXHU1NDBFXHU1NTg5XHU1NzUxXHU1N0EyXHU1OTdEXHU1QjU0XHU1QjVEXHU1QjhGXHU1REU1XHU1REU3XHU1REY3XHU1RTc4XHU1RTgzXHU1RTlBXHU1RUI3XHU1RjE4XHU2MDUyXHU2MTRDXHU2Mjk3XHU2MkQ4XHU2M0E3XHU2NTNCXHU2NjAyXHU2NjQzXHU2NkY0XHU2NzZEXHU2ODIxXHU2ODk3XHU2OUNCXHU2QzVGXHU2RDJBXHU2RDY5XHU2RTJGXHU2RTlEXHU3NTMyXHU3Njg3XHU3ODZDXHU3QTNGXHU3Q0UwXHU3RDA1XHU3RDE4XHU3RDVFXHU3REIxXHU4MDE1XHU4MDAzXHU4MEFGXHU4MEIxXHU4MTU0XHU4MThGXHU4MjJBXHU4MzUyXHU4ODRDXHU4ODYxXHU4QjFCXHU4Q0EyXHU4Q0ZDXHU5MENBXHU5MTc1XHU5MjcxXHU3ODNGXHU5MkZDXHU5NUE0XHU5NjREXHU5ODA1XHU5OTk5XHU5QUQ4XHU5RDNCXHU1MjVCXHU1MkFCXHU1M0Y3XHU1NDA4XHU1OEQ1XHU2MkY3XHU2RkUwXHU4QzZBXHU4RjVGXHU5RUI5XHU1MTRCXHU1MjNCXHU1NDRBXHU1NkZEXHU3QTQwXHU5MTc3XHU5RDYwXHU5RUQyXHU3MzQ0XHU2RjA5XHU4MTcwXHU3NTExXHU1RkZEXHU2MERBXHU5QUE4XHU3MkRCXHU4RkJDXCJdLFxuW1wiYmFhMVwiLFwiXHU2QjY0XHU5ODAzXHU0RUNBXHU1NkYwXHU1NzY0XHU1OEJFXHU1QTVBXHU2MDY4XHU2MUM3XHU2NjBGXHU2NjA2XHU2ODM5XHU2OEIxXHU2REY3XHU3NUQ1XHU3RDNBXHU4MjZFXHU5QjQyXHU0RTlCXHU0RjUwXHU1M0M5XHU1NTA2XHU1RDZGXHU1REU2XHU1REVFXHU2N0ZCXHU2Qzk5XHU3NDczXHU3ODAyXHU4QTUwXHU5Mzk2XHU4OERGXHU1NzUwXHU1RUE3XHU2MzJCXHU1MEI1XHU1MEFDXHU1MThEXHU2NzAwXHU1NEM5XHU1ODVFXHU1OUJCXHU1QkIwXHU1RjY5XHU2MjREXHU2M0ExXHU2ODNEXHU2QjczXHU2RTA4XHU3MDdEXHU5MUM3XHU3MjgwXHU3ODE1XHU3ODI2XHU3OTZEXHU2NThFXHU3RDMwXHU4M0RDXHU4OEMxXHU4RjA5XHU5NjlCXHU1MjY0XHU1NzI4XHU2NzUwXHU3RjZBXHU4Q0ExXHU1MUI0XHU1NzQyXHU5NjJBXHU1ODNBXHU2OThBXHU4MEI0XHU1NEIyXHU1RDBFXHU1N0ZDXHU3ODk1XHU5REZBXHU0RjVDXHU1MjRBXHU1NDhCXHU2NDNFXHU2NjI4XHU2NzE0XHU2N0Y1XHU3QTg0XHU3QjU2XHU3RDIyXHU5MzJGXHU2ODVDXHU5QkFEXHU3QjM5XHU1MzE5XHU1MThBXHU1MjM3XCJdLFxuW1wiYmJhMVwiLFwiXHU1QkRGXHU2MkY2XHU2NEFFXHU2NEU2XHU2NzJEXHU2QkJBXHU4NUE5XHU5NkQxXHU3NjkwXHU5QkQ2XHU2MzRDXHU5MzA2XHU5QkFCXHU3NkJGXHU2NjUyXHU0RTA5XHU1MDk4XHU1M0MyXHU1QzcxXHU2MEU4XHU2NDkyXHU2NTYzXHU2ODVGXHU3MUU2XHU3M0NBXHU3NTIzXHU3Qjk3XHU3RTgyXHU4Njk1XHU4QjgzXHU4Q0RCXHU5MTc4XHU5OTEwXHU2NUFDXHU2NkFCXHU2QjhCXHU0RUQ1XHU0RUQ0XHU0RjNBXHU0RjdGXHU1MjNBXHU1M0Y4XHU1M0YyXHU1NUUzXHU1NkRCXHU1OEVCXHU1OUNCXHU1OUM5XHU1OUZGXHU1QjUwXHU1QzREXHU1RTAyXHU1RTJCXHU1RkQ3XHU2MDFEXHU2MzA3XHU2NTJGXHU1QjVDXHU2NUFGXHU2NUJEXHU2NUU4XHU2NzlEXHU2QjYyXHU2QjdCXHU2QzBGXHU3MzQ1XHU3OTQ5XHU3OUMxXHU3Q0Y4XHU3RDE5XHU3RDJCXHU4MEEyXHU4MTAyXHU4MUYzXHU4OTk2XHU4QTVFXHU4QTY5XHU4QTY2XHU4QThDXHU4QUVFXHU4Q0M3XHU4Q0RDXHU5NkNDXHU5OEZDXHU2QjZGXHU0RThCXHU0RjNDXHU0RjhEXHU1MTUwXHU1QjU3XHU1QkZBXHU2MTQ4XHU2MzAxXHU2NjQyXCJdLFxuW1wiYmNhMVwiLFwiXHU2QjIxXHU2RUNCXHU2Q0JCXHU3MjNFXHU3NEJEXHU3NUQ0XHU3OEMxXHU3OTNBXHU4MDBDXHU4MDMzXHU4MUVBXHU4NDk0XHU4RjlFXHU2QzUwXHU5RTdGXHU1RjBGXHU4QjU4XHU5RDJCXHU3QUZBXHU4RUY4XHU1QjhEXHU5NkVCXHU0RTAzXHU1M0YxXHU1N0Y3XHU1OTMxXHU1QUM5XHU1QkE0XHU2MDg5XHU2RTdGXHU2RjA2XHU3NUJFXHU4Q0VBXHU1QjlGXHU4NTAwXHU3QkUwXHU1MDcyXHU2N0Y0XHU4MjlEXHU1QzYxXHU4NTRBXHU3RTFFXHU4MjBFXHU1MTk5XHU1QzA0XHU2MzY4XHU4RDY2XHU2NTlDXHU3MTZFXHU3OTNFXHU3RDE3XHU4MDA1XHU4QjFEXHU4RUNBXHU5MDZFXHU4NkM3XHU5MEFBXHU1MDFGXHU1MkZBXHU1QzNBXHU2NzUzXHU3MDdDXHU3MjM1XHU5MTRDXHU5MUM4XHU5MzJCXHU4MkU1XHU1QkMyXHU1RjMxXHU2MEY5XHU0RTNCXHU1M0Q2XHU1Qjg4XHU2MjRCXHU2NzMxXHU2QjhBXHU3MkU5XHU3M0UwXHU3QTJFXHU4MTZCXHU4REEzXHU5MTUyXHU5OTk2XHU1MTEyXHU1M0Q3XHU1NDZBXHU1QkZGXHU2Mzg4XHU2QTM5XHU3REFDXHU5NzAwXHU1NkRBXHU1M0NFXHU1NDY4XCJdLFxuW1wiYmRhMVwiLFwiXHU1Qjk3XHU1QzMxXHU1RERFXHU0RkVFXHU2MTAxXHU2MkZFXHU2RDMyXHU3OUMwXHU3OUNCXHU3RDQyXHU3RTREXHU3RkQyXHU4MUVEXHU4MjFGXHU4NDkwXHU4ODQ2XHU4OTcyXHU4QjkwXHU4RTc0XHU4RjJGXHU5MDMxXHU5MTRCXHU5MTZDXHU5NkM2XHU5MTlDXHU0RUMwXHU0RjRGXHU1MTQ1XHU1MzQxXHU1RjkzXHU2MjBFXHU2N0Q0XHU2QzQxXHU2RTBCXHU3MzYzXHU3RTI2XHU5MUNEXHU5MjgzXHU1M0Q0XHU1OTE5XHU1QkJGXHU2REQxXHU3OTVEXHU3RTJFXHU3QzlCXHU1ODdFXHU3MTlGXHU1MUZBXHU4ODUzXHU4RkYwXHU0RkNBXHU1Q0ZCXHU2NjI1XHU3N0FDXHU3QUUzXHU4MjFDXHU5OUZGXHU1MUM2XHU1RkFBXHU2NUVDXHU2OTZGXHU2Qjg5XHU2REYzXHU2RTk2XHU2RjY0XHU3NkZFXHU3RDE0XHU1REUxXHU5MDc1XHU5MTg3XHU5ODA2XHU1MUU2XHU1MjFEXHU2MjQwXHU2NjkxXHU2NkQ5XHU2RTFBXHU1RUI2XHU3REQyXHU3RjcyXHU2NkY4XHU4NUFGXHU4NUY3XHU4QUY4XHU1MkE5XHU1M0Q5XHU1OTczXHU1RThGXHU1RjkwXHU2MDU1XHU5MkU0XHU5NjY0XHU1MEI3XHU1MTFGXCJdLFxuW1wiYmVhMVwiLFwiXHU1MkREXHU1MzIwXHU1MzQ3XHU1M0VDXHU1NEU4XHU1NTQ2XHU1NTMxXHU1NjE3XHU1OTY4XHU1OUJFXHU1QTNDXHU1QkI1XHU1QzA2XHU1QzBGXHU1QzExXHU1QzFBXHU1RTg0XHU1RThBXHU1RUUwXHU1RjcwXHU2MjdGXHU2Mjg0XHU2MkRCXHU2MzhDXHU2Mzc3XHU2NjA3XHU2NjBDXHU2NjJEXHU2Njc2XHU2NzdFXHU2OEEyXHU2QTFGXHU2QTM1XHU2Q0JDXHU2RDg4XHU2RTA5XHU2RTU4XHU3MTNDXHU3MTI2XHU3MTY3XHU3NUM3XHU3NzAxXHU3ODVEXHU3OTAxXHU3OTY1XHU3OUYwXHU3QUUwXHU3QjExXHU3Q0E3XHU3RDM5XHU4MDk2XHU4M0Q2XHU4NDhCXHU4NTQ5XHU4ODVEXHU4OEYzXHU4QTFGXHU4QTNDXHU4QTU0XHU4QTczXHU4QzYxXHU4Q0RFXHU5MUE0XHU5MjY2XHU5MzdFXHU5NDE4XHU5NjlDXHU5Nzk4XHU0RTBBXHU0RTA4XHU0RTFFXHU0RTU3XHU1MTk3XHU1MjcwXHU1N0NFXHU1ODM0XHU1OENDXHU1QjIyXHU1RTM4XHU2MEM1XHU2NEZFXHU2NzYxXHU2NzU2XHU2RDQ0XHU3MkI2XHU3NTczXHU3QTYzXHU4NEI4XHU4QjcyXHU5MUI4XHU5MzIwXHU1NjMxXHU1N0Y0XHU5OEZFXCJdLFxuW1wiYmZhMVwiLFwiXHU2MkVEXHU2OTBEXHU2Qjk2XHU3MUVEXHU3RTU0XHU4MDc3XHU4MjcyXHU4OUU2XHU5OERGXHU4NzU1XHU4RkIxXHU1QzNCXHU0RjM4XHU0RkUxXHU0RkI1XHU1NTA3XHU1QTIwXHU1QkREXHU1QkU5XHU1RkMzXHU2MTRFXHU2MzJGXHU2NUIwXHU2NjRCXHU2OEVFXHU2OTlCXHU2RDc4XHU2REYxXHU3NTMzXHU3NUI5XHU3NzFGXHU3OTVFXHU3OUU2XHU3RDMzXHU4MUUzXHU4MkFGXHU4NUFBXHU4OUFBXHU4QTNBXHU4RUFCXHU4RjlCXHU5MDMyXHU5MUREXHU5NzA3XHU0RUJBXHU0RUMxXHU1MjAzXHU1ODc1XHU1OEVDXHU1QzBCXHU3NTFBXHU1QzNEXHU4MTRFXHU4QTBBXHU4RkM1XHU5NjYzXHU5NzZEXHU3QjI1XHU4QUNGXHU5ODA4XHU5MTYyXHU1NkYzXHU1M0E4XHU5MDE3XHU1NDM5XHU1NzgyXHU1RTI1XHU2M0E4XHU2QzM0XHU3MDhBXHU3NzYxXHU3QzhCXHU3RkUwXHU4ODcwXHU5MDQyXHU5MTU0XHU5MzEwXHU5MzE4XHU5NjhGXHU3NDVFXHU5QUM0XHU1RDA3XHU1RDY5XHU2NTcwXHU2N0EyXHU4REE4XHU5NkRCXHU2MzZFXHU2NzQ5XHU2OTE5XHU4M0M1XHU5ODE3XHU5NkMwXHU4OEZFXCJdLFxuW1wiYzBhMVwiLFwiXHU2Rjg0XHU2NDdBXHU1QkY4XHU0RTE2XHU3MDJDXHU3NTVEXHU2NjJGXHU1MUM0XHU1MjM2XHU1MkUyXHU1OUQzXHU1RjgxXHU2MDI3XHU2MjEwXHU2NTNGXHU2NTc0XHU2NjFGXHU2Njc0XHU2OEYyXHU2ODE2XHU2QjYzXHU2RTA1XHU3MjcyXHU3NTFGXHU3NkRCXHU3Q0JFXHU4MDU2XHU1OEYwXHU4OEZEXHU4OTdGXHU4QUEwXHU4QTkzXHU4QUNCXHU5MDFEXHU5MTkyXHU5NzUyXHU5NzU5XHU2NTg5XHU3QTBFXHU4MTA2XHU5NkJCXHU1RTJEXHU2MERDXHU2MjFBXHU2NUE1XHU2NjE0XHU2NzkwXHU3N0YzXHU3QTREXHU3QzREXHU3RTNFXHU4MTBBXHU4Q0FDXHU4RDY0XHU4REUxXHU4RTVGXHU3OEE5XHU1MjA3XHU2MkQ5XHU2M0E1XHU2NDQyXHU2Mjk4XHU4QTJEXHU3QTgzXHU3QkMwXHU4QUFDXHU5NkVBXHU3RDc2XHU4MjBDXHU4NzQ5XHU0RUQ5XHU1MTQ4XHU1MzQzXHU1MzYwXHU1QkEzXHU1QzAyXHU1QzE2XHU1REREXHU2MjI2XHU2MjQ3XHU2NEIwXHU2ODEzXHU2ODM0XHU2Q0M5XHU2RDQ1XHU2RDE3XHU2N0QzXHU2RjVDXHU3MTRFXHU3MTdEXHU2NUNCXHU3QTdGXHU3QkFEXHU3RERBXCJdLFxuW1wiYzFhMVwiLFwiXHU3RTRBXHU3RkE4XHU4MTdBXHU4MjFCXHU4MjM5XHU4NUE2XHU4QTZFXHU4Q0NFXHU4REY1XHU5MDc4XHU5MDc3XHU5MkFEXHU5MjkxXHU5NTgzXHU5QkFFXHU1MjREXHU1NTg0XHU2RjM4XHU3MTM2XHU1MTY4XHU3OTg1XHU3RTU1XHU4MUIzXHU3Q0NFXHU1NjRDXHU1ODUxXHU1Q0E4XHU2M0FBXHU2NkZFXHU2NkZEXHU2OTVBXHU3MkQ5XHU3NThGXHU3NThFXHU3OTBFXHU3OTU2XHU3OURGXHU3Qzk3XHU3RDIwXHU3RDQ0XHU4NjA3XHU4QTM0XHU5NjNCXHU5MDYxXHU5RjIwXHU1MEU3XHU1Mjc1XHU1M0NDXHU1M0UyXHU1MDA5XHU1NUFBXHU1OEVFXHU1OTRGXHU3MjNEXHU1QjhCXHU1QzY0XHU1MzFEXHU2MEUzXHU2MEYzXHU2MzVDXHU2MzgzXHU2MzNGXHU2M0JCXHU2NENEXHU2NUU5XHU2NkY5XHU1REUzXHU2OUNEXHU2OUZEXHU2RjE1XHU3MUU1XHU0RTg5XHU3NUU5XHU3NkY4XHU3QTkzXHU3Q0RGXHU3RENGXHU3RDlDXHU4MDYxXHU4MzQ5XHU4MzU4XHU4NDZDXHU4NEJDXHU4NUZCXHU4OEM1XHU4RDcwXHU5MDAxXHU5MDZEXHU5Mzk3XHU5NzFDXHU5QTEyXHU1MENGXHU1ODk3XHU2MThFXCJdLFxuW1wiYzJhMVwiLFwiXHU4MUQzXHU4NTM1XHU4RDA4XHU5MDIwXHU0RkMzXHU1MDc0XHU1MjQ3XHU1MzczXHU2MDZGXHU2MzQ5XHU2NzVGXHU2RTJDXHU4REIzXHU5MDFGXHU0RkQ3XHU1QzVFXHU4Q0NBXHU2NUNGXHU3RDlBXHU1MzUyXHU4ODk2XHU1MTc2XHU2M0MzXHU1QjU4XHU1QjZCXHU1QzBBXHU2NDBEXHU2NzUxXHU5MDVDXHU0RUQ2XHU1OTFBXHU1OTJBXHU2QzcwXHU4QTUxXHU1NTNFXHU1ODE1XHU1OUE1XHU2MEYwXHU2MjUzXHU2N0MxXHU4MjM1XHU2OTU1XHU5NjQwXHU5OUM0XHU5QTI4XHU0RjUzXHU1ODA2XHU1QkZFXHU4MDEwXHU1Q0IxXHU1RTJGXHU1Rjg1XHU2MDIwXHU2MTRCXHU2MjM0XHU2NkZGXHU2Q0YwXHU2RURFXHU4MENFXHU4MTdGXHU4MkQ0XHU4ODhCXHU4Q0I4XHU5MDAwXHU5MDJFXHU5NjhBXHU5RURCXHU5QkRCXHU0RUUzXHU1M0YwXHU1OTI3XHU3QjJDXHU5MThEXHU5ODRDXHU5REY5XHU2RUREXHU3MDI3XHU1MzUzXHU1NTQ0XHU1Qjg1XHU2MjU4XHU2MjlFXHU2MkQzXHU2Q0EyXHU2RkVGXHU3NDIyXHU4QTE3XHU5NDM4XHU2RkMxXHU4QUZFXHU4MzM4XHU1MUU3XHU4NkY4XHU1M0VBXCJdLFxuW1wiYzNhMVwiLFwiXHU1M0U5XHU0RjQ2XHU5MDU0XHU4RkIwXHU1OTZBXHU4MTMxXHU1REZEXHU3QUVBXHU4RkJGXHU2OERBXHU4QzM3XHU3MkY4XHU5QzQ4XHU2QTNEXHU4QUIwXHU0RTM5XHU1MzU4XHU1NjA2XHU1NzY2XHU2MkM1XHU2M0EyXHU2NUU2XHU2QjRFXHU2REUxXHU2RTVCXHU3MEFEXHU3N0VEXHU3QUVGXHU3QkFBXHU3REJCXHU4MDNEXHU4MEM2XHU4NkNCXHU4QTk1XHU5MzVCXHU1NkUzXHU1OEM3XHU1RjNFXHU2NUFEXHU2Njk2XHU2QTgwXHU2QkI1XHU3NTM3XHU4QUM3XHU1MDI0XHU3N0U1XHU1NzMwXHU1RjFCXHU2MDY1XHU2NjdBXHU2QzYwXHU3NUY0XHU3QTFBXHU3RjZFXHU4MUY0XHU4NzE4XHU5MDQ1XHU5OUIzXHU3QkM5XHU3NTVDXHU3QUY5XHU3QjUxXHU4NEM0XHU5MDEwXHU3OUU5XHU3QTkyXHU4MzM2XHU1QUUxXHU3NzQwXHU0RTJEXHU0RUYyXHU1Qjk5XHU1RkUwXHU2MkJEXHU2NjNDXHU2N0YxXHU2Q0U4XHU4NjZCXHU4ODc3XHU4QTNCXHU5MTRFXHU5MkYzXHU5OUQwXHU2QTE3XHU3MDI2XHU3MzJBXHU4MkU3XHU4NDU3XHU4Q0FGXHU0RTAxXHU1MTQ2XHU1MUNCXHU1NThCXHU1QkY1XCJdLFxuW1wiYzRhMVwiLFwiXHU1RTE2XHU1RTMzXHU1RTgxXHU1RjE0XHU1RjM1XHU1RjZCXHU1RkI0XHU2MUYyXHU2MzExXHU2NkEyXHU2NzFEXHU2RjZFXHU3MjUyXHU3NTNBXHU3NzNBXHU4MDc0XHU4MTM5XHU4MTc4XHU4Nzc2XHU4QUJGXHU4QURDXHU4RDg1XHU4REYzXHU5MjlBXHU5NTc3XHU5ODAyXHU5Q0U1XHU1MkM1XHU2MzU3XHU3NkY0XHU2NzE1XHU2Qzg4XHU3M0NEXHU4Q0MzXHU5M0FFXHU5NjczXHU2RDI1XHU1ODlDXHU2OTBFXHU2OUNDXHU4RkZEXHU5MzlBXHU3NURCXHU5MDFBXHU1ODVBXHU2ODAyXHU2M0I0XHU2OUZCXHU0RjQzXHU2RjJDXHU2N0Q4XHU4RkJCXHU4NTI2XHU3REI0XHU5MzU0XHU2OTNGXHU2RjcwXHU1NzZBXHU1OEY3XHU1QjJDXHU3RDJDXHU3MjJBXHU1NDBBXHU5MUUzXHU5REI0XHU0RUFEXHU0RjRFXHU1MDVDXHU1MDc1XHU1MjQzXHU4QzlFXHU1NDQ4XHU1ODI0XHU1QjlBXHU1RTFEXHU1RTk1XHU1RUFEXHU1RUY3XHU1RjFGXHU2MDhDXHU2MkI1XHU2MzNBXHU2M0QwXHU2OEFGXHU2QzQwXHU3ODg3XHU3OThFXHU3QTBCXHU3REUwXHU4MjQ3XHU4QTAyXHU4QUU2XHU4RTQ0XHU5MDEzXCJdLFxuW1wiYzVhMVwiLFwiXHU5MEI4XHU5MTJEXHU5MUQ4XHU5RjBFXHU2Q0U1XHU2NDU4XHU2NEUyXHU2NTc1XHU2RUY0XHU3Njg0XHU3QjFCXHU5MDY5XHU5M0QxXHU2RUJBXHU1NEYyXHU1RkI5XHU2NEE0XHU4RjREXHU4RkVEXHU5MjQ0XHU1MTc4XHU1ODZCXHU1OTI5XHU1QzU1XHU1RTk3XHU2REZCXHU3RThGXHU3NTFDXHU4Q0JDXHU4RUUyXHU5ODVCXHU3MEI5XHU0RjFEXHU2QkJGXHU2RkIxXHU3NTMwXHU5NkZCXHU1MTRFXHU1NDEwXHU1ODM1XHU1ODU3XHU1OUFDXHU1QzYwXHU1RjkyXHU2NTk3XHU2NzVDXHU2RTIxXHU3NjdCXHU4M0RGXHU4Q0VEXHU5MDE0XHU5MEZEXHU5MzREXHU3ODI1XHU3ODNBXHU1MkFBXHU1RUE2XHU1NzFGXHU1OTc0XHU2MDEyXHU1MDEyXHU1MTVBXHU1MUFDXHU1MUNEXHU1MjAwXHU1NTEwXHU1ODU0XHU1ODU4XHU1OTU3XHU1Qjk1XHU1Q0Y2XHU1RDhCXHU2MEJDXHU2Mjk1XHU2NDJEXHU2NzcxXHU2ODQzXHU2OEJDXHU2OERGXHU3NkQ3XHU2REQ4XHU2RTZGXHU2RDlCXHU3MDZGXHU3MUM4XHU1RjUzXHU3NUQ4XHU3OTc3XHU3QjQ5XHU3QjU0XHU3QjUyXHU3Q0Q2XHU3RDcxXHU1MjMwXCJdLFxuW1wiYzZhMVwiLFwiXHU4NDYzXHU4NTY5XHU4NUU0XHU4QTBFXHU4QjA0XHU4QzQ2XHU4RTBGXHU5MDAzXHU5MDBGXHU5NDE5XHU5Njc2XHU5ODJEXHU5QTMwXHU5NUQ4XHU1MENEXHU1MkQ1XHU1NDBDXHU1ODAyXHU1QzBFXHU2MUE3XHU2NDlFXHU2RDFFXHU3N0IzXHU3QUU1XHU4MEY0XHU4NDA0XHU5MDUzXHU5Mjg1XHU1Q0UwXHU5RDA3XHU1MzNGXHU1Rjk3XHU1RkIzXHU2RDlDXHU3Mjc5XHU3NzYzXHU3OUJGXHU3QkU0XHU2QkQyXHU3MkVDXHU4QUFEXHU2ODAzXHU2QTYxXHU1MUY4XHU3QTgxXHU2OTM0XHU1QzRBXHU5Q0Y2XHU4MkVCXHU1QkM1XHU5MTQ5XHU3MDFFXHU1Njc4XHU1QzZGXHU2MEM3XHU2NTY2XHU2QzhDXHU4QzVBXHU5MDQxXHU5ODEzXHU1NDUxXHU2NkM3XHU5MjBEXHU1OTQ4XHU5MEEzXHU1MTg1XHU0RTREXHU1MUVBXHU4NTk5XHU4QjBFXHU3MDU4XHU2MzdBXHU5MzRCXHU2OTYyXHU5OUI0XHU3RTA0XHU3NTc3XHU1MzU3XHU2OTYwXHU4RURGXHU5NkUzXHU2QzVEXHU0RThDXHU1QzNDXHU1RjEwXHU4RkU5XHU1MzAyXHU4Q0QxXHU4MDg5XHU4Njc5XHU1RUZGXHU2NUU1XHU0RTczXHU1MTY1XCJdLFxuW1wiYzdhMVwiLFwiXHU1OTgyXHU1QzNGXHU5N0VFXHU0RUZCXHU1OThBXHU1RkNEXHU4QThEXHU2RkUxXHU3OUIwXHU3OTYyXHU1QkU3XHU4NDcxXHU3MzJCXHU3MUIxXHU1RTc0XHU1RkY1XHU2MzdCXHU2NDlBXHU3MUMzXHU3Qzk4XHU0RTQzXHU1RUZDXHU0RTRCXHU1N0RDXHU1NkEyXHU2MEE5XHU2RkMzXHU3RDBEXHU4MEZEXHU4MTMzXHU4MUJGXHU4RkIyXHU4OTk3XHU4NkE0XHU1REY0XHU2MjhBXHU2NEFEXHU4OTg3XHU2Nzc3XHU2Q0UyXHU2RDNFXHU3NDM2XHU3ODM0XHU1QTQ2XHU3Rjc1XHU4MkFEXHU5OUFDXHU0RkYzXHU1RUMzXHU2MkREXHU2MzkyXHU2NTU3XHU2NzZGXHU3NkMzXHU3MjRDXHU4MENDXHU4MEJBXHU4RjI5XHU5MTREXHU1MDBEXHU1N0Y5XHU1QTkyXHU2ODg1XHU2OTczXHU3MTY0XHU3MkZEXHU4Q0I3XHU1OEYyXHU4Q0UwXHU5NjZBXHU5MDE5XHU4NzdGXHU3OUU0XHU3N0U3XHU4NDI5XHU0RjJGXHU1MjY1XHU1MzVBXHU2MkNEXHU2N0NGXHU2Q0NBXHU3NjdEXHU3Qjk0XHU3Qzk1XHU4MjM2XHU4NTg0XHU4RkVCXHU2NkREXHU2RjIwXHU3MjA2XHU3RTFCXHU4M0FCXHU5OUMxXHU5RUE2XCJdLFxuW1wiYzhhMVwiLFwiXHU1MUZEXHU3QkIxXHU3ODcyXHU3QkI4XHU4MDg3XHU3QjQ4XHU2QUU4XHU1RTYxXHU4MDhDXHU3NTUxXHU3NTYwXHU1MTZCXHU5MjYyXHU2RThDXHU3NjdBXHU5MTk3XHU5QUVBXHU0RjEwXHU3RjcwXHU2MjlDXHU3QjRGXHU5NUE1XHU5Q0U5XHU1NjdBXHU1ODU5XHU4NkU0XHU5NkJDXHU0RjM0XHU1MjI0XHU1MzRBXHU1M0NEXHU1M0RCXHU1RTA2XHU2NDJDXHU2NTkxXHU2NzdGXHU2QzNFXHU2QzRFXHU3MjQ4XHU3MkFGXHU3M0VEXHU3NTU0XHU3RTQxXHU4MjJDXHU4NUU5XHU4Q0E5XHU3QkM0XHU5MUM2XHU3MTY5XHU5ODEyXHU5OEVGXHU2MzNEXHU2NjY5XHU3NTZBXHU3NkU0XHU3OEQwXHU4NTQzXHU4NkVFXHU1MzJBXHU1MzUxXHU1NDI2XHU1OTgzXHU1RTg3XHU1RjdDXHU2MEIyXHU2MjQ5XHU2Mjc5XHU2MkFCXHU2NTkwXHU2QkQ0XHU2Q0NDXHU3NUIyXHU3NkFFXHU3ODkxXHU3OUQ4XHU3RENCXHU3Rjc3XHU4MEE1XHU4OEFCXHU4QUI5XHU4Q0JCXHU5MDdGXHU5NzVFXHU5OERCXHU2QTBCXHU3QzM4XHU1MDk5XHU1QzNFXHU1RkFFXHU2Nzg3XHU2QkQ4XHU3NDM1XHU3NzA5XHU3RjhFXCJdLFxuW1wiYzlhMVwiLFwiXHU5RjNCXHU2N0NBXHU3QTE3XHU1MzM5XHU3NThCXHU5QUVEXHU1RjY2XHU4MTlEXHU4M0YxXHU4MDk4XHU1RjNDXHU1RkM1XHU3NTYyXHU3QjQ2XHU5MDNDXHU2ODY3XHU1OUVCXHU1QTlCXHU3RDEwXHU3NjdFXHU4QjJDXHU0RkY1XHU1RjZBXHU2QTE5XHU2QzM3XHU2RjAyXHU3NEUyXHU3OTY4XHU4ODY4XHU4QTU1XHU4Qzc5XHU1RURGXHU2M0NGXHU3NUM1XHU3OUQyXHU4MkQ3XHU5MzI4XHU5MkYyXHU4NDlDXHU4NkVEXHU5QzJEXHU1NEMxXHU1RjZDXHU2NThDXHU2RDVDXHU3MDE1XHU4Q0E3XHU4Q0QzXHU5ODNCXHU2NTRGXHU3NEY2XHU0RTBEXHU0RUQ4XHU1N0UwXHU1OTJCXHU1QTY2XHU1QkNDXHU1MUE4XHU1RTAzXHU1RTlDXHU2MDE2XHU2Mjc2XHU2NTc3XHU2NUE3XHU2NjZFXHU2RDZFXHU3MjM2XHU3QjI2XHU4MTUwXHU4MTlBXHU4Mjk5XHU4QjVDXHU4Q0EwXHU4Q0U2XHU4RDc0XHU5NjFDXHU5NjQ0XHU0RkFFXHU2NEFCXHU2QjY2XHU4MjFFXHU4NDYxXHU4NTZBXHU5MEU4XHU1QzAxXHU2OTUzXHU5OEE4XHU4NDdBXHU4NTU3XHU0RjBGXHU1MjZGXHU1RkE5XHU1RTQ1XHU2NzBEXCJdLFxuW1wiY2FhMVwiLFwiXHU3OThGXHU4MTc5XHU4OTA3XHU4OTg2XHU2REY1XHU1RjE3XHU2MjU1XHU2Q0I4XHU0RUNGXHU3MjY5XHU5QjkyXHU1MjA2XHU1NDNCXHU1Njc0XHU1OEIzXHU2MUE0XHU2MjZFXHU3MTFBXHU1OTZFXHU3Qzg5XHU3Q0RFXHU3RDFCXHU5NkYwXHU2NTg3XHU4MDVFXHU0RTE5XHU0Rjc1XHU1MTc1XHU1ODQwXHU1RTYzXHU1RTczXHU1RjBBXHU2N0M0XHU0RTI2XHU4NTNEXHU5NTg5XHU5NjVCXHU3QzczXHU5ODAxXHU1MEZCXHU1OEMxXHU3NjU2XHU3OEE3XHU1MjI1XHU3N0E1XHU4NTExXHU3Qjg2XHU1MDRGXHU1OTA5XHU3MjQ3XHU3QkM3XHU3REU4XHU4RkJBXHU4RkQ0XHU5MDREXHU0RkJGXHU1MkM5XHU1QTI5XHU1RjAxXHU5N0FEXHU0RkREXHU4MjE3XHU5MkVBXHU1NzAzXHU2MzU1XHU2QjY5XHU3NTJCXHU4OERDXHU4RjE0XHU3QTQyXHU1MkRGXHU1ODkzXHU2MTU1XHU2MjBBXHU2NkFFXHU2QkNEXHU3QzNGXHU4M0U5XHU1MDIzXHU0RkY4XHU1MzA1XHU1NDQ2XHU1ODMxXHU1OTQ5XHU1QjlEXHU1Q0YwXHU1Q0VGXHU1RDI5XHU1RTk2XHU2MkIxXHU2MzY3XHU2NTNFXHU2NUI5XHU2NzBCXCJdLFxuW1wiY2JhMVwiLFwiXHU2Q0Q1XHU2Q0UxXHU3MEY5XHU3ODMyXHU3RTJCXHU4MERFXHU4MkIzXHU4NDBDXHU4NEVDXHU4NzAyXHU4OTEyXHU4QTJBXHU4QzRBXHU5MEE2XHU5MkQyXHU5OEZEXHU5Q0YzXHU5RDZDXHU0RTRGXHU0RUExXHU1MDhEXHU1MjU2XHU1NzRBXHU1OUE4XHU1RTNEXHU1RkQ4XHU1RkQ5XHU2MjNGXHU2NkI0XHU2NzFCXHU2N0QwXHU2OEQyXHU1MTkyXHU3RDIxXHU4MEFBXHU4MUE4XHU4QjAwXHU4QzhDXHU4Q0JGXHU5MjdFXHU5NjMyXHU1NDIwXHU5ODJDXHU1MzE3XHU1MEQ1XHU1MzVDXHU1OEE4XHU2NEIyXHU2NzM0XHU3MjY3XHU3NzY2XHU3QTQ2XHU5MUU2XHU1MkMzXHU2Q0ExXHU2Qjg2XHU1ODAwXHU1RTRDXHU1OTU0XHU2NzJDXHU3RkZCXHU1MUUxXHU3NkM2XHU2NDY5XHU3OEU4XHU5QjU0XHU5RUJCXHU1N0NCXHU1OUI5XHU2NjI3XHU2NzlBXHU2QkNFXHU1NEU5XHU2OUQ5XHU1RTU1XHU4MTlDXHU2Nzk1XHU5QkFBXHU2N0ZFXHU5QzUyXHU2ODVEXHU0RUE2XHU0RkUzXHU1M0M4XHU2MkI5XHU2NzJCXHU2Q0FCXHU4RkM0XHU0RkFEXHU3RTZEXHU5RUJGXHU0RTA3XHU2MTYyXHU2RTgwXCJdLFxuW1wiY2NhMVwiLFwiXHU2RjJCXHU4NTEzXHU1NDczXHU2NzJBXHU5QjQ1XHU1REYzXHU3Qjk1XHU1Q0FDXHU1QkM2XHU4NzFDXHU2RTRBXHU4NEQxXHU3QTE0XHU4MTA4XHU1OTk5XHU3QzhEXHU2QzExXHU3NzIwXHU1MkQ5XHU1OTIyXHU3MTIxXHU3MjVGXHU3N0RCXHU5NzI3XHU5RDYxXHU2OTBCXHU1QTdGXHU1QTE4XHU1MUE1XHU1NDBEXHU1NDdEXHU2NjBFXHU3NkRGXHU4RkY3XHU5Mjk4XHU5Q0Y0XHU1OUVBXHU3MjVEXHU2RUM1XHU1MTREXHU2OEM5XHU3REJGXHU3REVDXHU5NzYyXHU5RUJBXHU2NDc4XHU2QTIxXHU4MzAyXHU1OTg0XHU1QjVGXHU2QkRCXHU3MzFCXHU3NkYyXHU3REIyXHU4MDE3XHU4NDk5XHU1MTMyXHU2NzI4XHU5RUQ5XHU3NkVFXHU2NzYyXHU1MkZGXHU5OTA1XHU1QzI0XHU2MjNCXHU3QzdFXHU4Q0IwXHU1NTRGXHU2MEI2XHU3RDBCXHU5NTgwXHU1MzAxXHU0RTVGXHU1MUI2XHU1OTFDXHU3MjNBXHU4MDM2XHU5MUNFXHU1RjI1XHU3N0UyXHU1Mzg0XHU1Rjc5XHU3RDA0XHU4NUFDXHU4QTMzXHU4RThEXHU5NzU2XHU2N0YzXHU4NUFFXHU5NDUzXHU2MTA5XHU2MTA4XHU2Q0I5XHU3NjUyXCJdLFxuW1wiY2RhMVwiLFwiXHU4QUVEXHU4RjM4XHU1NTJGXHU0RjUxXHU1MTJBXHU1MkM3XHU1M0NCXHU1QkE1XHU1RTdEXHU2MEEwXHU2MTgyXHU2M0Q2XHU2NzA5XHU2N0RBXHU2RTY3XHU2RDhDXHU3MzM2XHU3MzM3XHU3NTMxXHU3OTUwXHU4OEQ1XHU4QTk4XHU5MDRBXHU5MDkxXHU5MEY1XHU5NkM0XHU4NzhEXHU1OTE1XHU0RTg4XHU0RjU5XHU0RTBFXHU4QTg5XHU4RjNGXHU5ODEwXHU1MEFEXHU1RTdDXHU1OTk2XHU1QkI5XHU1RUI4XHU2M0RBXHU2M0ZBXHU2NEMxXHU2NkRDXHU2OTRBXHU2OUQ4XHU2RDBCXHU2RUI2XHU3MTk0XHU3NTI4XHU3QUFGXHU3RjhBXHU4MDAwXHU4NDQ5XHU4NEM5XHU4OTgxXHU4QjIxXHU4RTBBXHU5MDY1XHU5NjdEXHU5OTBBXHU2MTdFXHU2MjkxXHU2QjMyXHU2QzgzXHU2RDc0XHU3RkNDXHU3RkZDXHU2REMwXHU3Rjg1XHU4N0JBXHU4OEY4XHU2NzY1XHU4M0IxXHU5ODNDXHU5NkY3XHU2RDFCXHU3RDYxXHU4NDNEXHU5MTZBXHU0RTcxXHU1Mzc1XHU1RDUwXHU2QjA0XHU2RkVCXHU4NUNEXHU4NjJEXHU4OUE3XHU1MjI5XHU1NDBGXHU1QzY1XHU2NzRFXHU2OEE4XHU3NDA2XHU3NDgzXCJdLFxuW1wiY2VhMVwiLFwiXHU3NUUyXHU4OENGXHU4OEUxXHU5MUNDXHU5NkUyXHU5Njc4XHU1RjhCXHU3Mzg3XHU3QUNCXHU4NDRFXHU2M0EwXHU3NTY1XHU1Mjg5XHU2RDQxXHU2RTlDXHU3NDA5XHU3NTU5XHU3ODZCXHU3QzkyXHU5Njg2XHU3QURDXHU5RjhEXHU0RkI2XHU2MTZFXHU2NUM1XHU4NjVDXHU0RTg2XHU0RUFFXHU1MERBXHU0RTIxXHU1MUNDXHU1QkVFXHU2NTk5XHU2ODgxXHU2REJDXHU3MzFGXHU3NjQyXHU3N0FEXHU3QTFDXHU3Q0U3XHU4MjZGXHU4QUQyXHU5MDdDXHU5MUNGXHU5Njc1XHU5ODE4XHU1MjlCXHU3REQxXHU1MDJCXHU1Mzk4XHU2Nzk3XHU2RENCXHU3MUQwXHU3NDMzXHU4MUU4XHU4RjJBXHU5NkEzXHU5QzU3XHU5RTlGXHU3NDYwXHU1ODQxXHU2RDk5XHU3RDJGXHU5ODVFXHU0RUU0XHU0RjM2XHU0RjhCXHU1MUI3XHU1MkIxXHU1REJBXHU2MDFDXHU3M0IyXHU3OTNDXHU4MkQzXHU5MjM0XHU5NkI3XHU5NkY2XHU5NzBBXHU5RTk3XHU5RjYyXHU2NkE2XHU2Qjc0XHU1MjE3XHU1MkEzXHU3MEM4XHU4OEMyXHU1RUM5XHU2MDRCXHU2MTkwXHU2RjIzXHU3MTQ5XHU3QzNFXHU3REY0XHU4MDZGXCJdLFxuW1wiY2ZhMVwiLFwiXHU4NEVFXHU5MDIzXHU5MzJDXHU1NDQyXHU5QjZGXHU2QUQzXHU3MDg5XHU4Q0MyXHU4REVGXHU5NzMyXHU1MkI0XHU1QTQxXHU1RUNBXHU1RjA0XHU2NzE3XHU2OTdDXHU2OTk0XHU2RDZBXHU2RjBGXHU3MjYyXHU3MkZDXHU3QkVEXHU4MDAxXHU4MDdFXHU4NzRCXHU5MENFXHU1MTZEXHU5RTkzXHU3OTg0XHU4MDhCXHU5MzMyXHU4QUQ2XHU1MDJEXHU1NDhDXHU4QTcxXHU2QjZBXHU4Q0M0XHU4MTA3XHU2MEQxXHU2N0EwXHU5REYyXHU0RTk5XHU0RTk4XHU5QzEwXHU4QTZCXHU4NUMxXHU4NTY4XHU2OTAwXHU2RTdFXHU3ODk3XHU4MTU1XCJdLFxuW1wiZDBhMVwiLFwiXHU1RjBDXHU0RTEwXHU0RTE1XHU0RTJBXHU0RTMxXHU0RTM2XHU0RTNDXHU0RTNGXHU0RTQyXHU0RTU2XHU0RTU4XHU0RTgyXHU0RTg1XHU4QzZCXHU0RThBXHU4MjEyXHU1RjBEXHU0RThFXHU0RTlFXHU0RTlGXHU0RUEwXHU0RUEyXHU0RUIwXHU0RUIzXHU0RUI2XHU0RUNFXHU0RUNEXHU0RUM0XHU0RUM2XHU0RUMyXHU0RUQ3XHU0RURFXHU0RUVEXHU0RURGXHU0RUY3XHU0RjA5XHU0RjVBXHU0RjMwXHU0RjVCXHU0RjVEXHU0RjU3XHU0RjQ3XHU0Rjc2XHU0Rjg4XHU0RjhGXHU0Rjk4XHU0RjdCXHU0RjY5XHU0RjcwXHU0RjkxXHU0RjZGXHU0Rjg2XHU0Rjk2XHU1MTE4XHU0RkQ0XHU0RkRGXHU0RkNFXHU0RkQ4XHU0RkRCXHU0RkQxXHU0RkRBXHU0RkQwXHU0RkU0XHU0RkU1XHU1MDFBXHU1MDI4XHU1MDE0XHU1MDJBXHU1MDI1XHU1MDA1XHU0RjFDXHU0RkY2XHU1MDIxXHU1MDI5XHU1MDJDXHU0RkZFXHU0RkVGXHU1MDExXHU1MDA2XHU1MDQzXHU1MDQ3XHU2NzAzXHU1MDU1XHU1MDUwXHU1MDQ4XHU1MDVBXHU1MDU2XHU1MDZDXHU1MDc4XHU1MDgwXHU1MDlBXHU1MDg1XHU1MEI0XHU1MEIyXCJdLFxuW1wiZDFhMVwiLFwiXHU1MEM5XHU1MENBXHU1MEIzXHU1MEMyXHU1MEQ2XHU1MERFXHU1MEU1XHU1MEVEXHU1MEUzXHU1MEVFXHU1MEY5XHU1MEY1XHU1MTA5XHU1MTAxXHU1MTAyXHU1MTE2XHU1MTE1XHU1MTE0XHU1MTFBXHU1MTIxXHU1MTNBXHU1MTM3XHU1MTNDXHU1MTNCXHU1MTNGXHU1MTQwXHU1MTUyXHU1MTRDXHU1MTU0XHU1MTYyXHU3QUY4XHU1MTY5XHU1MTZBXHU1MTZFXHU1MTgwXHU1MTgyXHU1NkQ4XHU1MThDXHU1MTg5XHU1MThGXHU1MTkxXHU1MTkzXHU1MTk1XHU1MTk2XHU1MUE0XHU1MUE2XHU1MUEyXHU1MUE5XHU1MUFBXHU1MUFCXHU1MUIzXHU1MUIxXHU1MUIyXHU1MUIwXHU1MUI1XHU1MUJEXHU1MUM1XHU1MUM5XHU1MURCXHU1MUUwXHU4NjU1XHU1MUU5XHU1MUVEXHU1MUYwXHU1MUY1XHU1MUZFXHU1MjA0XHU1MjBCXHU1MjE0XHU1MjBFXHU1MjI3XHU1MjJBXHU1MjJFXHU1MjMzXHU1MjM5XHU1MjRGXHU1MjQ0XHU1MjRCXHU1MjRDXHU1MjVFXHU1MjU0XHU1MjZBXHU1Mjc0XHU1MjY5XHU1MjczXHU1MjdGXHU1MjdEXHU1MjhEXHU1Mjk0XHU1MjkyXHU1MjcxXHU1Mjg4XHU1MjkxXHU4RkE4XCJdLFxuW1wiZDJhMVwiLFwiXHU4RkE3XHU1MkFDXHU1MkFEXHU1MkJDXHU1MkI1XHU1MkMxXHU1MkNEXHU1MkQ3XHU1MkRFXHU1MkUzXHU1MkU2XHU5OEVEXHU1MkUwXHU1MkYzXHU1MkY1XHU1MkY4XHU1MkY5XHU1MzA2XHU1MzA4XHU3NTM4XHU1MzBEXHU1MzEwXHU1MzBGXHU1MzE1XHU1MzFBXHU1MzIzXHU1MzJGXHU1MzMxXHU1MzMzXHU1MzM4XHU1MzQwXHU1MzQ2XHU1MzQ1XHU0RTE3XHU1MzQ5XHU1MzREXHU1MUQ2XHU1MzVFXHU1MzY5XHU1MzZFXHU1OTE4XHU1MzdCXHU1Mzc3XHU1MzgyXHU1Mzk2XHU1M0EwXHU1M0E2XHU1M0E1XHU1M0FFXHU1M0IwXHU1M0I2XHU1M0MzXHU3QzEyXHU5NkQ5XHU1M0RGXHU2NkZDXHU3MUVFXHU1M0VFXHU1M0U4XHU1M0VEXHU1M0ZBXHU1NDAxXHU1NDNEXHU1NDQwXHU1NDJDXHU1NDJEXHU1NDNDXHU1NDJFXHU1NDM2XHU1NDI5XHU1NDFEXHU1NDRFXHU1NDhGXHU1NDc1XHU1NDhFXHU1NDVGXHU1NDcxXHU1NDc3XHU1NDcwXHU1NDkyXHU1NDdCXHU1NDgwXHU1NDc2XHU1NDg0XHU1NDkwXHU1NDg2XHU1NEM3XHU1NEEyXHU1NEI4XHU1NEE1XHU1NEFDXHU1NEM0XHU1NEM4XHU1NEE4XCJdLFxuW1wiZDNhMVwiLFwiXHU1NEFCXHU1NEMyXHU1NEE0XHU1NEJFXHU1NEJDXHU1NEQ4XHU1NEU1XHU1NEU2XHU1NTBGXHU1NTE0XHU1NEZEXHU1NEVFXHU1NEVEXHU1NEZBXHU1NEUyXHU1NTM5XHU1NTQwXHU1NTYzXHU1NTRDXHU1NTJFXHU1NTVDXHU1NTQ1XHU1NTU2XHU1NTU3XHU1NTM4XHU1NTMzXHU1NTVEXHU1NTk5XHU1NTgwXHU1NEFGXHU1NThBXHU1NTlGXHU1NTdCXHU1NTdFXHU1NTk4XHU1NTlFXHU1NUFFXHU1NTdDXHU1NTgzXHU1NUE5XHU1NTg3XHU1NUE4XHU1NURBXHU1NUM1XHU1NURGXHU1NUM0XHU1NURDXHU1NUU0XHU1NUQ0XHU1NjE0XHU1NUY3XHU1NjE2XHU1NUZFXHU1NUZEXHU1NjFCXHU1NUY5XHU1NjRFXHU1NjUwXHU3MURGXHU1NjM0XHU1NjM2XHU1NjMyXHU1NjM4XHU1NjZCXHU1NjY0XHU1NjJGXHU1NjZDXHU1NjZBXHU1Njg2XHU1NjgwXHU1NjhBXHU1NkEwXHU1Njk0XHU1NjhGXHU1NkE1XHU1NkFFXHU1NkI2XHU1NkI0XHU1NkMyXHU1NkJDXHU1NkMxXHU1NkMzXHU1NkMwXHU1NkM4XHU1NkNFXHU1NkQxXHU1NkQzXHU1NkQ3XHU1NkVFXHU1NkY5XHU1NzAwXHU1NkZGXHU1NzA0XHU1NzA5XCJdLFxuW1wiZDRhMVwiLFwiXHU1NzA4XHU1NzBCXHU1NzBEXHU1NzEzXHU1NzE4XHU1NzE2XHU1NUM3XHU1NzFDXHU1NzI2XHU1NzM3XHU1NzM4XHU1NzRFXHU1NzNCXHU1NzQwXHU1NzRGXHU1NzY5XHU1N0MwXHU1Nzg4XHU1NzYxXHU1NzdGXHU1Nzg5XHU1NzkzXHU1N0EwXHU1N0IzXHU1N0E0XHU1N0FBXHU1N0IwXHU1N0MzXHU1N0M2XHU1N0Q0XHU1N0QyXHU1N0QzXHU1ODBBXHU1N0Q2XHU1N0UzXHU1ODBCXHU1ODE5XHU1ODFEXHU1ODcyXHU1ODIxXHU1ODYyXHU1ODRCXHU1ODcwXHU2QkMwXHU1ODUyXHU1ODNEXHU1ODc5XHU1ODg1XHU1OEI5XHU1ODlGXHU1OEFCXHU1OEJBXHU1OERFXHU1OEJCXHU1OEI4XHU1OEFFXHU1OEM1XHU1OEQzXHU1OEQxXHU1OEQ3XHU1OEQ5XHU1OEQ4XHU1OEU1XHU1OERDXHU1OEU0XHU1OERGXHU1OEVGXHU1OEZBXHU1OEY5XHU1OEZCXHU1OEZDXHU1OEZEXHU1OTAyXHU1OTBBXHU1OTEwXHU1OTFCXHU2OEE2XHU1OTI1XHU1OTJDXHU1OTJEXHU1OTMyXHU1OTM4XHU1OTNFXHU3QUQyXHU1OTU1XHU1OTUwXHU1OTRFXHU1OTVBXHU1OTU4XHU1OTYyXHU1OTYwXHU1OTY3XHU1OTZDXHU1OTY5XCJdLFxuW1wiZDVhMVwiLFwiXHU1OTc4XHU1OTgxXHU1OTlEXHU0RjVFXHU0RkFCXHU1OUEzXHU1OUIyXHU1OUM2XHU1OUU4XHU1OURDXHU1OThEXHU1OUQ5XHU1OURBXHU1QTI1XHU1QTFGXHU1QTExXHU1QTFDXHU1QTA5XHU1QTFBXHU1QTQwXHU1QTZDXHU1QTQ5XHU1QTM1XHU1QTM2XHU1QTYyXHU1QTZBXHU1QTlBXHU1QUJDXHU1QUJFXHU1QUNCXHU1QUMyXHU1QUJEXHU1QUUzXHU1QUQ3XHU1QUU2XHU1QUU5XHU1QUQ2XHU1QUZBXHU1QUZCXHU1QjBDXHU1QjBCXHU1QjE2XHU1QjMyXHU1QUQwXHU1QjJBXHU1QjM2XHU1QjNFXHU1QjQzXHU1QjQ1XHU1QjQwXHU1QjUxXHU1QjU1XHU1QjVBXHU1QjVCXHU1QjY1XHU1QjY5XHU1QjcwXHU1QjczXHU1Qjc1XHU1Qjc4XHU2NTg4XHU1QjdBXHU1QjgwXHU1QjgzXHU1QkE2XHU1QkI4XHU1QkMzXHU1QkM3XHU1QkM5XHU1QkQ0XHU1QkQwXHU1QkU0XHU1QkU2XHU1QkUyXHU1QkRFXHU1QkU1XHU1QkVCXHU1QkYwXHU1QkY2XHU1QkYzXHU1QzA1XHU1QzA3XHU1QzA4XHU1QzBEXHU1QzEzXHU1QzIwXHU1QzIyXHU1QzI4XHU1QzM4XHU1QzM5XHU1QzQxXHU1QzQ2XHU1QzRFXHU1QzUzXCJdLFxuW1wiZDZhMVwiLFwiXHU1QzUwXHU1QzRGXHU1QjcxXHU1QzZDXHU1QzZFXHU0RTYyXHU1Qzc2XHU1Qzc5XHU1QzhDXHU1QzkxXHU1Qzk0XHU1OTlCXHU1Q0FCXHU1Q0JCXHU1Q0I2XHU1Q0JDXHU1Q0I3XHU1Q0M1XHU1Q0JFXHU1Q0M3XHU1Q0Q5XHU1Q0U5XHU1Q0ZEXHU1Q0ZBXHU1Q0VEXHU1RDhDXHU1Q0VBXHU1RDBCXHU1RDE1XHU1RDE3XHU1RDVDXHU1RDFGXHU1RDFCXHU1RDExXHU1RDE0XHU1RDIyXHU1RDFBXHU1RDE5XHU1RDE4XHU1RDRDXHU1RDUyXHU1RDRFXHU1RDRCXHU1RDZDXHU1RDczXHU1RDc2XHU1RDg3XHU1RDg0XHU1RDgyXHU1REEyXHU1RDlEXHU1REFDXHU1REFFXHU1REJEXHU1RDkwXHU1REI3XHU1REJDXHU1REM5XHU1RENEXHU1REQzXHU1REQyXHU1REQ2XHU1RERCXHU1REVCXHU1REYyXHU1REY1XHU1RTBCXHU1RTFBXHU1RTE5XHU1RTExXHU1RTFCXHU1RTM2XHU1RTM3XHU1RTQ0XHU1RTQzXHU1RTQwXHU1RTRFXHU1RTU3XHU1RTU0XHU1RTVGXHU1RTYyXHU1RTY0XHU1RTQ3XHU1RTc1XHU1RTc2XHU1RTdBXHU5RUJDXHU1RTdGXHU1RUEwXHU1RUMxXHU1RUMyXHU1RUM4XHU1RUQwXHU1RUNGXCJdLFxuW1wiZDdhMVwiLFwiXHU1RUQ2XHU1RUUzXHU1RUREXHU1RURBXHU1RURCXHU1RUUyXHU1RUUxXHU1RUU4XHU1RUU5XHU1RUVDXHU1RUYxXHU1RUYzXHU1RUYwXHU1RUY0XHU1RUY4XHU1RUZFXHU1RjAzXHU1RjA5XHU1RjVEXHU1RjVDXHU1RjBCXHU1RjExXHU1RjE2XHU1RjI5XHU1RjJEXHU1RjM4XHU1RjQxXHU1RjQ4XHU1RjRDXHU1RjRFXHU1RjJGXHU1RjUxXHU1RjU2XHU1RjU3XHU1RjU5XHU1RjYxXHU1RjZEXHU1RjczXHU1Rjc3XHU1RjgzXHU1RjgyXHU1RjdGXHU1RjhBXHU1Rjg4XHU1RjkxXHU1Rjg3XHU1RjlFXHU1Rjk5XHU1Rjk4XHU1RkEwXHU1RkE4XHU1RkFEXHU1RkJDXHU1RkQ2XHU1RkZCXHU1RkU0XHU1RkY4XHU1RkYxXHU1RkREXHU2MEIzXHU1RkZGXHU2MDIxXHU2MDYwXHU2MDE5XHU2MDEwXHU2MDI5XHU2MDBFXHU2MDMxXHU2MDFCXHU2MDE1XHU2MDJCXHU2MDI2XHU2MDBGXHU2MDNBXHU2MDVBXHU2MDQxXHU2MDZBXHU2MDc3XHU2MDVGXHU2MDRBXHU2MDQ2XHU2MDREXHU2MDYzXHU2MDQzXHU2MDY0XHU2MDQyXHU2MDZDXHU2MDZCXHU2MDU5XHU2MDgxXHU2MDhEXHU2MEU3XHU2MDgzXHU2MDlBXCJdLFxuW1wiZDhhMVwiLFwiXHU2MDg0XHU2MDlCXHU2MDk2XHU2MDk3XHU2MDkyXHU2MEE3XHU2MDhCXHU2MEUxXHU2MEI4XHU2MEUwXHU2MEQzXHU2MEI0XHU1RkYwXHU2MEJEXHU2MEM2XHU2MEI1XHU2MEQ4XHU2MTREXHU2MTE1XHU2MTA2XHU2MEY2XHU2MEY3XHU2MTAwXHU2MEY0XHU2MEZBXHU2MTAzXHU2MTIxXHU2MEZCXHU2MEYxXHU2MTBEXHU2MTBFXHU2MTQ3XHU2MTNFXHU2MTI4XHU2MTI3XHU2MTRBXHU2MTNGXHU2MTNDXHU2MTJDXHU2MTM0XHU2MTNEXHU2MTQyXHU2MTQ0XHU2MTczXHU2MTc3XHU2MTU4XHU2MTU5XHU2MTVBXHU2MTZCXHU2MTc0XHU2MTZGXHU2MTY1XHU2MTcxXHU2MTVGXHU2MTVEXHU2MTUzXHU2MTc1XHU2MTk5XHU2MTk2XHU2MTg3XHU2MUFDXHU2MTk0XHU2MTlBXHU2MThBXHU2MTkxXHU2MUFCXHU2MUFFXHU2MUNDXHU2MUNBXHU2MUM5XHU2MUY3XHU2MUM4XHU2MUMzXHU2MUM2XHU2MUJBXHU2MUNCXHU3Rjc5XHU2MUNEXHU2MUU2XHU2MUUzXHU2MUY2XHU2MUZBXHU2MUY0XHU2MUZGXHU2MUZEXHU2MUZDXHU2MUZFXHU2MjAwXHU2MjA4XHU2MjA5XHU2MjBEXHU2MjBDXHU2MjE0XHU2MjFCXCJdLFxuW1wiZDlhMVwiLFwiXHU2MjFFXHU2MjIxXHU2MjJBXHU2MjJFXHU2MjMwXHU2MjMyXHU2MjMzXHU2MjQxXHU2MjRFXHU2MjVFXHU2MjYzXHU2MjVCXHU2MjYwXHU2MjY4XHU2MjdDXHU2MjgyXHU2Mjg5XHU2MjdFXHU2MjkyXHU2MjkzXHU2Mjk2XHU2MkQ0XHU2MjgzXHU2Mjk0XHU2MkQ3XHU2MkQxXHU2MkJCXHU2MkNGXHU2MkZGXHU2MkM2XHU2NEQ0XHU2MkM4XHU2MkRDXHU2MkNDXHU2MkNBXHU2MkMyXHU2MkM3XHU2MjlCXHU2MkM5XHU2MzBDXHU2MkVFXHU2MkYxXHU2MzI3XHU2MzAyXHU2MzA4XHU2MkVGXHU2MkY1XHU2MzUwXHU2MzNFXHU2MzREXHU2NDFDXHU2MzRGXHU2Mzk2XHU2MzhFXHU2MzgwXHU2M0FCXHU2Mzc2XHU2M0EzXHU2MzhGXHU2Mzg5XHU2MzlGXHU2M0I1XHU2MzZCXHU2MzY5XHU2M0JFXHU2M0U5XHU2M0MwXHU2M0M2XHU2M0UzXHU2M0M5XHU2M0QyXHU2M0Y2XHU2M0M0XHU2NDE2XHU2NDM0XHU2NDA2XHU2NDEzXHU2NDI2XHU2NDM2XHU2NTFEXHU2NDE3XHU2NDI4XHU2NDBGXHU2NDY3XHU2NDZGXHU2NDc2XHU2NDRFXHU2NTJBXHU2NDk1XHU2NDkzXHU2NEE1XHU2NEE5XHU2NDg4XHU2NEJDXCJdLFxuW1wiZGFhMVwiLFwiXHU2NERBXHU2NEQyXHU2NEM1XHU2NEM3XHU2NEJCXHU2NEQ4XHU2NEMyXHU2NEYxXHU2NEU3XHU4MjA5XHU2NEUwXHU2NEUxXHU2MkFDXHU2NEUzXHU2NEVGXHU2NTJDXHU2NEY2XHU2NEY0XHU2NEYyXHU2NEZBXHU2NTAwXHU2NEZEXHU2NTE4XHU2NTFDXHU2NTA1XHU2NTI0XHU2NTIzXHU2NTJCXHU2NTM0XHU2NTM1XHU2NTM3XHU2NTM2XHU2NTM4XHU3NTRCXHU2NTQ4XHU2NTU2XHU2NTU1XHU2NTREXHU2NTU4XHU2NTVFXHU2NTVEXHU2NTcyXHU2NTc4XHU2NTgyXHU2NTgzXHU4QjhBXHU2NTlCXHU2NTlGXHU2NUFCXHU2NUI3XHU2NUMzXHU2NUM2XHU2NUMxXHU2NUM0XHU2NUNDXHU2NUQyXHU2NURCXHU2NUQ5XHU2NUUwXHU2NUUxXHU2NUYxXHU2NzcyXHU2NjBBXHU2NjAzXHU2NUZCXHU2NzczXHU2NjM1XHU2NjM2XHU2NjM0XHU2NjFDXHU2NjRGXHU2NjQ0XHU2NjQ5XHU2NjQxXHU2NjVFXHU2NjVEXHU2NjY0XHU2NjY3XHU2NjY4XHU2NjVGXHU2NjYyXHU2NjcwXHU2NjgzXHU2Njg4XHU2NjhFXHU2Njg5XHU2Njg0XHU2Njk4XHU2NjlEXHU2NkMxXHU2NkI5XHU2NkM5XHU2NkJFXHU2NkJDXCJdLFxuW1wiZGJhMVwiLFwiXHU2NkM0XHU2NkI4XHU2NkQ2XHU2NkRBXHU2NkUwXHU2NjNGXHU2NkU2XHU2NkU5XHU2NkYwXHU2NkY1XHU2NkY3XHU2NzBGXHU2NzE2XHU2NzFFXHU2NzI2XHU2NzI3XHU5NzM4XHU2NzJFXHU2NzNGXHU2NzM2XHU2NzQxXHU2NzM4XHU2NzM3XHU2NzQ2XHU2NzVFXHU2NzYwXHU2NzU5XHU2NzYzXHU2NzY0XHU2Nzg5XHU2NzcwXHU2N0E5XHU2NzdDXHU2NzZBXHU2NzhDXHU2NzhCXHU2N0E2XHU2N0ExXHU2Nzg1XHU2N0I3XHU2N0VGXHU2N0I0XHU2N0VDXHU2N0IzXHU2N0U5XHU2N0I4XHU2N0U0XHU2N0RFXHU2N0REXHU2N0UyXHU2N0VFXHU2N0I5XHU2N0NFXHU2N0M2XHU2N0U3XHU2QTlDXHU2ODFFXHU2ODQ2XHU2ODI5XHU2ODQwXHU2ODREXHU2ODMyXHU2ODRFXHU2OEIzXHU2ODJCXHU2ODU5XHU2ODYzXHU2ODc3XHU2ODdGXHU2ODlGXHU2ODhGXHU2OEFEXHU2ODk0XHU2ODlEXHU2ODlCXHU2ODgzXHU2QUFFXHU2OEI5XHU2ODc0XHU2OEI1XHU2OEEwXHU2OEJBXHU2OTBGXHU2ODhEXHU2ODdFXHU2OTAxXHU2OENBXHU2OTA4XHU2OEQ4XHU2OTIyXHU2OTI2XHU2OEUxXHU2OTBDXHU2OENEXCJdLFxuW1wiZGNhMVwiLFwiXHU2OEQ0XHU2OEU3XHU2OEQ1XHU2OTM2XHU2OTEyXHU2OTA0XHU2OEQ3XHU2OEUzXHU2OTI1XHU2OEY5XHU2OEUwXHU2OEVGXHU2OTI4XHU2OTJBXHU2OTFBXHU2OTIzXHU2OTIxXHU2OEM2XHU2OTc5XHU2OTc3XHU2OTVDXHU2OTc4XHU2OTZCXHU2OTU0XHU2OTdFXHU2OTZFXHU2OTM5XHU2OTc0XHU2OTNEXHU2OTU5XHU2OTMwXHU2OTYxXHU2OTVFXHU2OTVEXHU2OTgxXHU2OTZBXHU2OUIyXHU2OUFFXHU2OUQwXHU2OUJGXHU2OUMxXHU2OUQzXHU2OUJFXHU2OUNFXHU1QkU4XHU2OUNBXHU2OUREXHU2OUJCXHU2OUMzXHU2OUE3XHU2QTJFXHU2OTkxXHU2OUEwXHU2OTlDXHU2OTk1XHU2OUI0XHU2OURFXHU2OUU4XHU2QTAyXHU2QTFCXHU2OUZGXHU2QjBBXHU2OUY5XHU2OUYyXHU2OUU3XHU2QTA1XHU2OUIxXHU2QTFFXHU2OUVEXHU2QTE0XHU2OUVCXHU2QTBBXHU2QTEyXHU2QUMxXHU2QTIzXHU2QTEzXHU2QTQ0XHU2QTBDXHU2QTcyXHU2QTM2XHU2QTc4XHU2QTQ3XHU2QTYyXHU2QTU5XHU2QTY2XHU2QTQ4XHU2QTM4XHU2QTIyXHU2QTkwXHU2QThEXHU2QUEwXHU2QTg0XHU2QUEyXHU2QUEzXCJdLFxuW1wiZGRhMVwiLFwiXHU2QTk3XHU4NjE3XHU2QUJCXHU2QUMzXHU2QUMyXHU2QUI4XHU2QUIzXHU2QUFDXHU2QURFXHU2QUQxXHU2QURGXHU2QUFBXHU2QURBXHU2QUVBXHU2QUZCXHU2QjA1XHU4NjE2XHU2QUZBXHU2QjEyXHU2QjE2XHU5QjMxXHU2QjFGXHU2QjM4XHU2QjM3XHU3NkRDXHU2QjM5XHU5OEVFXHU2QjQ3XHU2QjQzXHU2QjQ5XHU2QjUwXHU2QjU5XHU2QjU0XHU2QjVCXHU2QjVGXHU2QjYxXHU2Qjc4XHU2Qjc5XHU2QjdGXHU2QjgwXHU2Qjg0XHU2QjgzXHU2QjhEXHU2Qjk4XHU2Qjk1XHU2QjlFXHU2QkE0XHU2QkFBXHU2QkFCXHU2QkFGXHU2QkIyXHU2QkIxXHU2QkIzXHU2QkI3XHU2QkJDXHU2QkM2XHU2QkNCXHU2QkQzXHU2QkRGXHU2QkVDXHU2QkVCXHU2QkYzXHU2QkVGXHU5RUJFXHU2QzA4XHU2QzEzXHU2QzE0XHU2QzFCXHU2QzI0XHU2QzIzXHU2QzVFXHU2QzU1XHU2QzYyXHU2QzZBXHU2QzgyXHU2QzhEXHU2QzlBXHU2QzgxXHU2QzlCXHU2QzdFXHU2QzY4XHU2QzczXHU2QzkyXHU2QzkwXHU2Q0M0XHU2Q0YxXHU2Q0QzXHU2Q0JEXHU2Q0Q3XHU2Q0M1XHU2Q0REXHU2Q0FFXHU2Q0IxXHU2Q0JFXCJdLFxuW1wiZGVhMVwiLFwiXHU2Q0JBXHU2Q0RCXHU2Q0VGXHU2Q0Q5XHU2Q0VBXHU2RDFGXHU4ODREXHU2RDM2XHU2RDJCXHU2RDNEXHU2RDM4XHU2RDE5XHU2RDM1XHU2RDMzXHU2RDEyXHU2RDBDXHU2RDYzXHU2RDkzXHU2RDY0XHU2RDVBXHU2RDc5XHU2RDU5XHU2RDhFXHU2RDk1XHU2RkU0XHU2RDg1XHU2REY5XHU2RTE1XHU2RTBBXHU2REI1XHU2REM3XHU2REU2XHU2REI4XHU2REM2XHU2REVDXHU2RERFXHU2RENDXHU2REU4XHU2REQyXHU2REM1XHU2REZBXHU2REQ5XHU2REU0XHU2REQ1XHU2REVBXHU2REVFXHU2RTJEXHU2RTZFXHU2RTJFXHU2RTE5XHU2RTcyXHU2RTVGXHU2RTNFXHU2RTIzXHU2RTZCXHU2RTJCXHU2RTc2XHU2RTREXHU2RTFGXHU2RTQzXHU2RTNBXHU2RTRFXHU2RTI0XHU2RUZGXHU2RTFEXHU2RTM4XHU2RTgyXHU2RUFBXHU2RTk4XHU2RUM5XHU2RUI3XHU2RUQzXHU2RUJEXHU2RUFGXHU2RUM0XHU2RUIyXHU2RUQ0XHU2RUQ1XHU2RThGXHU2RUE1XHU2RUMyXHU2RTlGXHU2RjQxXHU2RjExXHU3MDRDXHU2RUVDXHU2RUY4XHU2RUZFXHU2RjNGXHU2RUYyXHU2RjMxXHU2RUVGXHU2RjMyXHU2RUNDXCJdLFxuW1wiZGZhMVwiLFwiXHU2RjNFXHU2RjEzXHU2RUY3XHU2Rjg2XHU2RjdBXHU2Rjc4XHU2RjgxXHU2RjgwXHU2RjZGXHU2RjVCXHU2RkYzXHU2RjZEXHU2RjgyXHU2RjdDXHU2RjU4XHU2RjhFXHU2RjkxXHU2RkMyXHU2RjY2XHU2RkIzXHU2RkEzXHU2RkExXHU2RkE0XHU2RkI5XHU2RkM2XHU2RkFBXHU2RkRGXHU2RkQ1XHU2RkVDXHU2RkQ0XHU2RkQ4XHU2RkYxXHU2RkVFXHU2RkRCXHU3MDA5XHU3MDBCXHU2RkZBXHU3MDExXHU3MDAxXHU3MDBGXHU2RkZFXHU3MDFCXHU3MDFBXHU2Rjc0XHU3MDFEXHU3MDE4XHU3MDFGXHU3MDMwXHU3MDNFXHU3MDMyXHU3MDUxXHU3MDYzXHU3MDk5XHU3MDkyXHU3MEFGXHU3MEYxXHU3MEFDXHU3MEI4XHU3MEIzXHU3MEFFXHU3MERGXHU3MENCXHU3MEREXHU3MEQ5XHU3MTA5XHU3MEZEXHU3MTFDXHU3MTE5XHU3MTY1XHU3MTU1XHU3MTg4XHU3MTY2XHU3MTYyXHU3MTRDXHU3MTU2XHU3MTZDXHU3MThGXHU3MUZCXHU3MTg0XHU3MTk1XHU3MUE4XHU3MUFDXHU3MUQ3XHU3MUI5XHU3MUJFXHU3MUQyXHU3MUM5XHU3MUQ0XHU3MUNFXHU3MUUwXHU3MUVDXHU3MUU3XHU3MUY1XHU3MUZDXCJdLFxuW1wiZTBhMVwiLFwiXHU3MUY5XHU3MUZGXHU3MjBEXHU3MjEwXHU3MjFCXHU3MjI4XHU3MjJEXHU3MjJDXHU3MjMwXHU3MjMyXHU3MjNCXHU3MjNDXHU3MjNGXHU3MjQwXHU3MjQ2XHU3MjRCXHU3MjU4XHU3Mjc0XHU3MjdFXHU3MjgyXHU3MjgxXHU3Mjg3XHU3MjkyXHU3Mjk2XHU3MkEyXHU3MkE3XHU3MkI5XHU3MkIyXHU3MkMzXHU3MkM2XHU3MkM0XHU3MkNFXHU3MkQyXHU3MkUyXHU3MkUwXHU3MkUxXHU3MkY5XHU3MkY3XHU1MDBGXHU3MzE3XHU3MzBBXHU3MzFDXHU3MzE2XHU3MzFEXHU3MzM0XHU3MzJGXHU3MzI5XHU3MzI1XHU3MzNFXHU3MzRFXHU3MzRGXHU5RUQ4XHU3MzU3XHU3MzZBXHU3MzY4XHU3MzcwXHU3Mzc4XHU3Mzc1XHU3MzdCXHU3MzdBXHU3M0M4XHU3M0IzXHU3M0NFXHU3M0JCXHU3M0MwXHU3M0U1XHU3M0VFXHU3M0RFXHU3NEEyXHU3NDA1XHU3NDZGXHU3NDI1XHU3M0Y4XHU3NDMyXHU3NDNBXHU3NDU1XHU3NDNGXHU3NDVGXHU3NDU5XHU3NDQxXHU3NDVDXHU3NDY5XHU3NDcwXHU3NDYzXHU3NDZBXHU3NDc2XHU3NDdFXHU3NDhCXHU3NDlFXHU3NEE3XHU3NENBXHU3NENGXHU3NEQ0XHU3M0YxXCJdLFxuW1wiZTFhMVwiLFwiXHU3NEUwXHU3NEUzXHU3NEU3XHU3NEU5XHU3NEVFXHU3NEYyXHU3NEYwXHU3NEYxXHU3NEY4XHU3NEY3XHU3NTA0XHU3NTAzXHU3NTA1XHU3NTBDXHU3NTBFXHU3NTBEXHU3NTE1XHU3NTEzXHU3NTFFXHU3NTI2XHU3NTJDXHU3NTNDXHU3NTQ0XHU3NTREXHU3NTRBXHU3NTQ5XHU3NTVCXHU3NTQ2XHU3NTVBXHU3NTY5XHU3NTY0XHU3NTY3XHU3NTZCXHU3NTZEXHU3NTc4XHU3NTc2XHU3NTg2XHU3NTg3XHU3NTc0XHU3NThBXHU3NTg5XHU3NTgyXHU3NTk0XHU3NTlBXHU3NTlEXHU3NUE1XHU3NUEzXHU3NUMyXHU3NUIzXHU3NUMzXHU3NUI1XHU3NUJEXHU3NUI4XHU3NUJDXHU3NUIxXHU3NUNEXHU3NUNBXHU3NUQyXHU3NUQ5XHU3NUUzXHU3NURFXHU3NUZFXHU3NUZGXHU3NUZDXHU3NjAxXHU3NUYwXHU3NUZBXHU3NUYyXHU3NUYzXHU3NjBCXHU3NjBEXHU3NjA5XHU3NjFGXHU3NjI3XHU3NjIwXHU3NjIxXHU3NjIyXHU3NjI0XHU3NjM0XHU3NjMwXHU3NjNCXHU3NjQ3XHU3NjQ4XHU3NjQ2XHU3NjVDXHU3NjU4XHU3NjYxXHU3NjYyXHU3NjY4XHU3NjY5XHU3NjZBXHU3NjY3XHU3NjZDXHU3NjcwXCJdLFxuW1wiZTJhMVwiLFwiXHU3NjcyXHU3Njc2XHU3Njc4XHU3NjdDXHU3NjgwXHU3NjgzXHU3Njg4XHU3NjhCXHU3NjhFXHU3Njk2XHU3NjkzXHU3Njk5XHU3NjlBXHU3NkIwXHU3NkI0XHU3NkI4XHU3NkI5XHU3NkJBXHU3NkMyXHU3NkNEXHU3NkQ2XHU3NkQyXHU3NkRFXHU3NkUxXHU3NkU1XHU3NkU3XHU3NkVBXHU4NjJGXHU3NkZCXHU3NzA4XHU3NzA3XHU3NzA0XHU3NzI5XHU3NzI0XHU3NzFFXHU3NzI1XHU3NzI2XHU3NzFCXHU3NzM3XHU3NzM4XHU3NzQ3XHU3NzVBXHU3NzY4XHU3NzZCXHU3NzVCXHU3NzY1XHU3NzdGXHU3NzdFXHU3Nzc5XHU3NzhFXHU3NzhCXHU3NzkxXHU3N0EwXHU3NzlFXHU3N0IwXHU3N0I2XHU3N0I5XHU3N0JGXHU3N0JDXHU3N0JEXHU3N0JCXHU3N0M3XHU3N0NEXHU3N0Q3XHU3N0RBXHU3N0RDXHU3N0UzXHU3N0VFXHU3N0ZDXHU3ODBDXHU3ODEyXHU3OTI2XHU3ODIwXHU3OTJBXHU3ODQ1XHU3ODhFXHU3ODc0XHU3ODg2XHU3ODdDXHU3ODlBXHU3ODhDXHU3OEEzXHU3OEI1XHU3OEFBXHU3OEFGXHU3OEQxXHU3OEM2XHU3OENCXHU3OEQ0XHU3OEJFXHU3OEJDXHU3OEM1XHU3OENBXHU3OEVDXCJdLFxuW1wiZTNhMVwiLFwiXHU3OEU3XHU3OERBXHU3OEZEXHU3OEY0XHU3OTA3XHU3OTEyXHU3OTExXHU3OTE5XHU3OTJDXHU3OTJCXHU3OTQwXHU3OTYwXHU3OTU3XHU3OTVGXHU3OTVBXHU3OTU1XHU3OTUzXHU3OTdBXHU3OTdGXHU3OThBXHU3OTlEXHU3OUE3XHU5RjRCXHU3OUFBXHU3OUFFXHU3OUIzXHU3OUI5XHU3OUJBXHU3OUM5XHU3OUQ1XHU3OUU3XHU3OUVDXHU3OUUxXHU3OUUzXHU3QTA4XHU3QTBEXHU3QTE4XHU3QTE5XHU3QTIwXHU3QTFGXHU3OTgwXHU3QTMxXHU3QTNCXHU3QTNFXHU3QTM3XHU3QTQzXHU3QTU3XHU3QTQ5XHU3QTYxXHU3QTYyXHU3QTY5XHU5RjlEXHU3QTcwXHU3QTc5XHU3QTdEXHU3QTg4XHU3QTk3XHU3QTk1XHU3QTk4XHU3QTk2XHU3QUE5XHU3QUM4XHU3QUIwXHU3QUI2XHU3QUM1XHU3QUM0XHU3QUJGXHU5MDgzXHU3QUM3XHU3QUNBXHU3QUNEXHU3QUNGXHU3QUQ1XHU3QUQzXHU3QUQ5XHU3QURBXHU3QUREXHU3QUUxXHU3QUUyXHU3QUU2XHU3QUVEXHU3QUYwXHU3QjAyXHU3QjBGXHU3QjBBXHU3QjA2XHU3QjMzXHU3QjE4XHU3QjE5XHU3QjFFXHU3QjM1XHU3QjI4XHU3QjM2XHU3QjUwXCJdLFxuW1wiZTRhMVwiLFwiXHU3QjdBXHU3QjA0XHU3QjREXHU3QjBCXHU3QjRDXHU3QjQ1XHU3Qjc1XHU3QjY1XHU3Qjc0XHU3QjY3XHU3QjcwXHU3QjcxXHU3QjZDXHU3QjZFXHU3QjlEXHU3Qjk4XHU3QjlGXHU3QjhEXHU3QjlDXHU3QjlBXHU3QjhCXHU3QjkyXHU3QjhGXHU3QjVEXHU3Qjk5XHU3QkNCXHU3QkMxXHU3QkNDXHU3QkNGXHU3QkI0XHU3QkM2XHU3QkREXHU3QkU5XHU3QzExXHU3QzE0XHU3QkU2XHU3QkU1XHU3QzYwXHU3QzAwXHU3QzA3XHU3QzEzXHU3QkYzXHU3QkY3XHU3QzE3XHU3QzBEXHU3QkY2XHU3QzIzXHU3QzI3XHU3QzJBXHU3QzFGXHU3QzM3XHU3QzJCXHU3QzNEXHU3QzRDXHU3QzQzXHU3QzU0XHU3QzRGXHU3QzQwXHU3QzUwXHU3QzU4XHU3QzVGXHU3QzY0XHU3QzU2XHU3QzY1XHU3QzZDXHU3Qzc1XHU3QzgzXHU3QzkwXHU3Q0E0XHU3Q0FEXHU3Q0EyXHU3Q0FCXHU3Q0ExXHU3Q0E4XHU3Q0IzXHU3Q0IyXHU3Q0IxXHU3Q0FFXHU3Q0I5XHU3Q0JEXHU3Q0MwXHU3Q0M1XHU3Q0MyXHU3Q0Q4XHU3Q0QyXHU3Q0RDXHU3Q0UyXHU5QjNCXHU3Q0VGXHU3Q0YyXHU3Q0Y0XHU3Q0Y2XHU3Q0ZBXHU3RDA2XCJdLFxuW1wiZTVhMVwiLFwiXHU3RDAyXHU3RDFDXHU3RDE1XHU3RDBBXHU3RDQ1XHU3RDRCXHU3RDJFXHU3RDMyXHU3RDNGXHU3RDM1XHU3RDQ2XHU3RDczXHU3RDU2XHU3RDRFXHU3RDcyXHU3RDY4XHU3RDZFXHU3RDRGXHU3RDYzXHU3RDkzXHU3RDg5XHU3RDVCXHU3RDhGXHU3RDdEXHU3RDlCXHU3REJBXHU3REFFXHU3REEzXHU3REI1XHU3REM3XHU3REJEXHU3REFCXHU3RTNEXHU3REEyXHU3REFGXHU3RERDXHU3REI4XHU3RDlGXHU3REIwXHU3REQ4XHU3REREXHU3REU0XHU3RERFXHU3REZCXHU3REYyXHU3REUxXHU3RTA1XHU3RTBBXHU3RTIzXHU3RTIxXHU3RTEyXHU3RTMxXHU3RTFGXHU3RTA5XHU3RTBCXHU3RTIyXHU3RTQ2XHU3RTY2XHU3RTNCXHU3RTM1XHU3RTM5XHU3RTQzXHU3RTM3XHU3RTMyXHU3RTNBXHU3RTY3XHU3RTVEXHU3RTU2XHU3RTVFXHU3RTU5XHU3RTVBXHU3RTc5XHU3RTZBXHU3RTY5XHU3RTdDXHU3RTdCXHU3RTgzXHU3REQ1XHU3RTdEXHU4RkFFXHU3RTdGXHU3RTg4XHU3RTg5XHU3RThDXHU3RTkyXHU3RTkwXHU3RTkzXHU3RTk0XHU3RTk2XHU3RThFXHU3RTlCXHU3RTlDXHU3RjM4XHU3RjNBXCJdLFxuW1wiZTZhMVwiLFwiXHU3RjQ1XHU3RjRDXHU3RjREXHU3RjRFXHU3RjUwXHU3RjUxXHU3RjU1XHU3RjU0XHU3RjU4XHU3RjVGXHU3RjYwXHU3RjY4XHU3RjY5XHU3RjY3XHU3Rjc4XHU3RjgyXHU3Rjg2XHU3RjgzXHU3Rjg4XHU3Rjg3XHU3RjhDXHU3Rjk0XHU3RjlFXHU3RjlEXHU3RjlBXHU3RkEzXHU3RkFGXHU3RkIyXHU3RkI5XHU3RkFFXHU3RkI2XHU3RkI4XHU4QjcxXHU3RkM1XHU3RkM2XHU3RkNBXHU3RkQ1XHU3RkQ0XHU3RkUxXHU3RkU2XHU3RkU5XHU3RkYzXHU3RkY5XHU5OERDXHU4MDA2XHU4MDA0XHU4MDBCXHU4MDEyXHU4MDE4XHU4MDE5XHU4MDFDXHU4MDIxXHU4MDI4XHU4MDNGXHU4MDNCXHU4MDRBXHU4MDQ2XHU4MDUyXHU4MDU4XHU4MDVBXHU4MDVGXHU4MDYyXHU4MDY4XHU4MDczXHU4MDcyXHU4MDcwXHU4MDc2XHU4MDc5XHU4MDdEXHU4MDdGXHU4MDg0XHU4MDg2XHU4MDg1XHU4MDlCXHU4MDkzXHU4MDlBXHU4MEFEXHU1MTkwXHU4MEFDXHU4MERCXHU4MEU1XHU4MEQ5XHU4MEREXHU4MEM0XHU4MERBXHU4MEQ2XHU4MTA5XHU4MEVGXHU4MEYxXHU4MTFCXHU4MTI5XHU4MTIzXHU4MTJGXHU4MTRCXCJdLFxuW1wiZTdhMVwiLFwiXHU5NjhCXHU4MTQ2XHU4MTNFXHU4MTUzXHU4MTUxXHU4MEZDXHU4MTcxXHU4MTZFXHU4MTY1XHU4MTY2XHU4MTc0XHU4MTgzXHU4MTg4XHU4MThBXHU4MTgwXHU4MTgyXHU4MUEwXHU4MTk1XHU4MUE0XHU4MUEzXHU4MTVGXHU4MTkzXHU4MUE5XHU4MUIwXHU4MUI1XHU4MUJFXHU4MUI4XHU4MUJEXHU4MUMwXHU4MUMyXHU4MUJBXHU4MUM5XHU4MUNEXHU4MUQxXHU4MUQ5XHU4MUQ4XHU4MUM4XHU4MURBXHU4MURGXHU4MUUwXHU4MUU3XHU4MUZBXHU4MUZCXHU4MUZFXHU4MjAxXHU4MjAyXHU4MjA1XHU4MjA3XHU4MjBBXHU4MjBEXHU4MjEwXHU4MjE2XHU4MjI5XHU4MjJCXHU4MjM4XHU4MjMzXHU4MjQwXHU4MjU5XHU4MjU4XHU4MjVEXHU4MjVBXHU4MjVGXHU4MjY0XHU4MjYyXHU4MjY4XHU4MjZBXHU4MjZCXHU4MjJFXHU4MjcxXHU4Mjc3XHU4Mjc4XHU4MjdFXHU4MjhEXHU4MjkyXHU4MkFCXHU4MjlGXHU4MkJCXHU4MkFDXHU4MkUxXHU4MkUzXHU4MkRGXHU4MkQyXHU4MkY0XHU4MkYzXHU4MkZBXHU4MzkzXHU4MzAzXHU4MkZCXHU4MkY5XHU4MkRFXHU4MzA2XHU4MkRDXHU4MzA5XHU4MkQ5XCJdLFxuW1wiZThhMVwiLFwiXHU4MzM1XHU4MzM0XHU4MzE2XHU4MzMyXHU4MzMxXHU4MzQwXHU4MzM5XHU4MzUwXHU4MzQ1XHU4MzJGXHU4MzJCXHU4MzE3XHU4MzE4XHU4Mzg1XHU4MzlBXHU4M0FBXHU4MzlGXHU4M0EyXHU4Mzk2XHU4MzIzXHU4MzhFXHU4Mzg3XHU4MzhBXHU4MzdDXHU4M0I1XHU4MzczXHU4Mzc1XHU4M0EwXHU4Mzg5XHU4M0E4XHU4M0Y0XHU4NDEzXHU4M0VCXHU4M0NFXHU4M0ZEXHU4NDAzXHU4M0Q4XHU4NDBCXHU4M0MxXHU4M0Y3XHU4NDA3XHU4M0UwXHU4M0YyXHU4NDBEXHU4NDIyXHU4NDIwXHU4M0JEXHU4NDM4XHU4NTA2XHU4M0ZCXHU4NDZEXHU4NDJBXHU4NDNDXHU4NTVBXHU4NDg0XHU4NDc3XHU4NDZCXHU4NEFEXHU4NDZFXHU4NDgyXHU4NDY5XHU4NDQ2XHU4NDJDXHU4NDZGXHU4NDc5XHU4NDM1XHU4NENBXHU4NDYyXHU4NEI5XHU4NEJGXHU4NDlGXHU4NEQ5XHU4NENEXHU4NEJCXHU4NERBXHU4NEQwXHU4NEMxXHU4NEM2XHU4NEQ2XHU4NEExXHU4NTIxXHU4NEZGXHU4NEY0XHU4NTE3XHU4NTE4XHU4NTJDXHU4NTFGXHU4NTE1XHU4NTE0XHU4NEZDXHU4NTQwXHU4NTYzXHU4NTU4XHU4NTQ4XCJdLFxuW1wiZTlhMVwiLFwiXHU4NTQxXHU4NjAyXHU4NTRCXHU4NTU1XHU4NTgwXHU4NUE0XHU4NTg4XHU4NTkxXHU4NThBXHU4NUE4XHU4NTZEXHU4NTk0XHU4NTlCXHU4NUVBXHU4NTg3XHU4NTlDXHU4NTc3XHU4NTdFXHU4NTkwXHU4NUM5XHU4NUJBXHU4NUNGXHU4NUI5XHU4NUQwXHU4NUQ1XHU4NUREXHU4NUU1XHU4NURDXHU4NUY5XHU4NjBBXHU4NjEzXHU4NjBCXHU4NUZFXHU4NUZBXHU4NjA2XHU4NjIyXHU4NjFBXHU4NjMwXHU4NjNGXHU4NjREXHU0RTU1XHU4NjU0XHU4NjVGXHU4NjY3XHU4NjcxXHU4NjkzXHU4NkEzXHU4NkE5XHU4NkFBXHU4NjhCXHU4NjhDXHU4NkI2XHU4NkFGXHU4NkM0XHU4NkM2XHU4NkIwXHU4NkM5XHU4ODIzXHU4NkFCXHU4NkQ0XHU4NkRFXHU4NkU5XHU4NkVDXHU4NkRGXHU4NkRCXHU4NkVGXHU4NzEyXHU4NzA2XHU4NzA4XHU4NzAwXHU4NzAzXHU4NkZCXHU4NzExXHU4NzA5XHU4NzBEXHU4NkY5XHU4NzBBXHU4NzM0XHU4NzNGXHU4NzM3XHU4NzNCXHU4NzI1XHU4NzI5XHU4NzFBXHU4NzYwXHU4NzVGXHU4Nzc4XHU4NzRDXHU4NzRFXHU4Nzc0XHU4NzU3XHU4NzY4XHU4NzZFXHU4NzU5XCJdLFxuW1wiZWFhMVwiLFwiXHU4NzUzXHU4NzYzXHU4NzZBXHU4ODA1XHU4N0EyXHU4NzlGXHU4NzgyXHU4N0FGXHU4N0NCXHU4N0JEXHU4N0MwXHU4N0QwXHU5NkQ2XHU4N0FCXHU4N0M0XHU4N0IzXHU4N0M3XHU4N0M2XHU4N0JCXHU4N0VGXHU4N0YyXHU4N0UwXHU4ODBGXHU4ODBEXHU4N0ZFXHU4N0Y2XHU4N0Y3XHU4ODBFXHU4N0QyXHU4ODExXHU4ODE2XHU4ODE1XHU4ODIyXHU4ODIxXHU4ODMxXHU4ODM2XHU4ODM5XHU4ODI3XHU4ODNCXHU4ODQ0XHU4ODQyXHU4ODUyXHU4ODU5XHU4ODVFXHU4ODYyXHU4ODZCXHU4ODgxXHU4ODdFXHU4ODlFXHU4ODc1XHU4ODdEXHU4OEI1XHU4ODcyXHU4ODgyXHU4ODk3XHU4ODkyXHU4OEFFXHU4ODk5XHU4OEEyXHU4ODhEXHU4OEE0XHU4OEIwXHU4OEJGXHU4OEIxXHU4OEMzXHU4OEM0XHU4OEQ0XHU4OEQ4XHU4OEQ5XHU4OEREXHU4OEY5XHU4OTAyXHU4OEZDXHU4OEY0XHU4OEU4XHU4OEYyXHU4OTA0XHU4OTBDXHU4OTBBXHU4OTEzXHU4OTQzXHU4OTFFXHU4OTI1XHU4OTJBXHU4OTJCXHU4OTQxXHU4OTQ0XHU4OTNCXHU4OTM2XHU4OTM4XHU4OTRDXHU4OTFEXHU4OTYwXHU4OTVFXCJdLFxuW1wiZWJhMVwiLFwiXHU4OTY2XHU4OTY0XHU4OTZEXHU4OTZBXHU4OTZGXHU4OTc0XHU4OTc3XHU4OTdFXHU4OTgzXHU4OTg4XHU4OThBXHU4OTkzXHU4OTk4XHU4OUExXHU4OUE5XHU4OUE2XHU4OUFDXHU4OUFGXHU4OUIyXHU4OUJBXHU4OUJEXHU4OUJGXHU4OUMwXHU4OURBXHU4OURDXHU4OUREXHU4OUU3XHU4OUY0XHU4OUY4XHU4QTAzXHU4QTE2XHU4QTEwXHU4QTBDXHU4QTFCXHU4QTFEXHU4QTI1XHU4QTM2XHU4QTQxXHU4QTVCXHU4QTUyXHU4QTQ2XHU4QTQ4XHU4QTdDXHU4QTZEXHU4QTZDXHU4QTYyXHU4QTg1XHU4QTgyXHU4QTg0XHU4QUE4XHU4QUExXHU4QTkxXHU4QUE1XHU4QUE2XHU4QTlBXHU4QUEzXHU4QUM0XHU4QUNEXHU4QUMyXHU4QURBXHU4QUVCXHU4QUYzXHU4QUU3XHU4QUU0XHU4QUYxXHU4QjE0XHU4QUUwXHU4QUUyXHU4QUY3XHU4QURFXHU4QURCXHU4QjBDXHU4QjA3XHU4QjFBXHU4QUUxXHU4QjE2XHU4QjEwXHU4QjE3XHU4QjIwXHU4QjMzXHU5N0FCXHU4QjI2XHU4QjJCXHU4QjNFXHU4QjI4XHU4QjQxXHU4QjRDXHU4QjRGXHU4QjRFXHU4QjQ5XHU4QjU2XHU4QjVCXHU4QjVBXHU4QjZCXCJdLFxuW1wiZWNhMVwiLFwiXHU4QjVGXHU4QjZDXHU4QjZGXHU4Qjc0XHU4QjdEXHU4QjgwXHU4QjhDXHU4QjhFXHU4QjkyXHU4QjkzXHU4Qjk2XHU4Qjk5XHU4QjlBXHU4QzNBXHU4QzQxXHU4QzNGXHU4QzQ4XHU4QzRDXHU4QzRFXHU4QzUwXHU4QzU1XHU4QzYyXHU4QzZDXHU4Qzc4XHU4QzdBXHU4QzgyXHU4Qzg5XHU4Qzg1XHU4QzhBXHU4QzhEXHU4QzhFXHU4Qzk0XHU4QzdDXHU4Qzk4XHU2MjFEXHU4Q0FEXHU4Q0FBXHU4Q0JEXHU4Q0IyXHU4Q0IzXHU4Q0FFXHU4Q0I2XHU4Q0M4XHU4Q0MxXHU4Q0U0XHU4Q0UzXHU4Q0RBXHU4Q0ZEXHU4Q0ZBXHU4Q0ZCXHU4RDA0XHU4RDA1XHU4RDBBXHU4RDA3XHU4RDBGXHU4RDBEXHU4RDEwXHU5RjRFXHU4RDEzXHU4Q0NEXHU4RDE0XHU4RDE2XHU4RDY3XHU4RDZEXHU4RDcxXHU4RDczXHU4RDgxXHU4RDk5XHU4REMyXHU4REJFXHU4REJBXHU4RENGXHU4RERBXHU4REQ2XHU4RENDXHU4RERCXHU4RENCXHU4REVBXHU4REVCXHU4RERGXHU4REUzXHU4REZDXHU4RTA4XHU4RTA5XHU4REZGXHU4RTFEXHU4RTFFXHU4RTEwXHU4RTFGXHU4RTQyXHU4RTM1XHU4RTMwXHU4RTM0XHU4RTRBXCJdLFxuW1wiZWRhMVwiLFwiXHU4RTQ3XHU4RTQ5XHU4RTRDXHU4RTUwXHU4RTQ4XHU4RTU5XHU4RTY0XHU4RTYwXHU4RTJBXHU4RTYzXHU4RTU1XHU4RTc2XHU4RTcyXHU4RTdDXHU4RTgxXHU4RTg3XHU4RTg1XHU4RTg0XHU4RThCXHU4RThBXHU4RTkzXHU4RTkxXHU4RTk0XHU4RTk5XHU4RUFBXHU4RUExXHU4RUFDXHU4RUIwXHU4RUM2XHU4RUIxXHU4RUJFXHU4RUM1XHU4RUM4XHU4RUNCXHU4RURCXHU4RUUzXHU4RUZDXHU4RUZCXHU4RUVCXHU4RUZFXHU4RjBBXHU4RjA1XHU4RjE1XHU4RjEyXHU4RjE5XHU4RjEzXHU4RjFDXHU4RjFGXHU4RjFCXHU4RjBDXHU4RjI2XHU4RjMzXHU4RjNCXHU4RjM5XHU4RjQ1XHU4RjQyXHU4RjNFXHU4RjRDXHU4RjQ5XHU4RjQ2XHU4RjRFXHU4RjU3XHU4RjVDXHU4RjYyXHU4RjYzXHU4RjY0XHU4RjlDXHU4RjlGXHU4RkEzXHU4RkFEXHU4RkFGXHU4RkI3XHU4RkRBXHU4RkU1XHU4RkUyXHU4RkVBXHU4RkVGXHU5MDg3XHU4RkY0XHU5MDA1XHU4RkY5XHU4RkZBXHU5MDExXHU5MDE1XHU5MDIxXHU5MDBEXHU5MDFFXHU5MDE2XHU5MDBCXHU5MDI3XHU5MDM2XHU5MDM1XHU5MDM5XHU4RkY4XCJdLFxuW1wiZWVhMVwiLFwiXHU5MDRGXHU5MDUwXHU5MDUxXHU5MDUyXHU5MDBFXHU5MDQ5XHU5MDNFXHU5MDU2XHU5MDU4XHU5MDVFXHU5MDY4XHU5MDZGXHU5MDc2XHU5NkE4XHU5MDcyXHU5MDgyXHU5MDdEXHU5MDgxXHU5MDgwXHU5MDhBXHU5MDg5XHU5MDhGXHU5MEE4XHU5MEFGXHU5MEIxXHU5MEI1XHU5MEUyXHU5MEU0XHU2MjQ4XHU5MERCXHU5MTAyXHU5MTEyXHU5MTE5XHU5MTMyXHU5MTMwXHU5MTRBXHU5MTU2XHU5MTU4XHU5MTYzXHU5MTY1XHU5MTY5XHU5MTczXHU5MTcyXHU5MThCXHU5MTg5XHU5MTgyXHU5MUEyXHU5MUFCXHU5MUFGXHU5MUFBXHU5MUI1XHU5MUI0XHU5MUJBXHU5MUMwXHU5MUMxXHU5MUM5XHU5MUNCXHU5MUQwXHU5MUQ2XHU5MURGXHU5MUUxXHU5MURCXHU5MUZDXHU5MUY1XHU5MUY2XHU5MjFFXHU5MUZGXHU5MjE0XHU5MjJDXHU5MjE1XHU5MjExXHU5MjVFXHU5MjU3XHU5MjQ1XHU5MjQ5XHU5MjY0XHU5MjQ4XHU5Mjk1XHU5MjNGXHU5MjRCXHU5MjUwXHU5MjlDXHU5Mjk2XHU5MjkzXHU5MjlCXHU5MjVBXHU5MkNGXHU5MkI5XHU5MkI3XHU5MkU5XHU5MzBGXHU5MkZBXHU5MzQ0XHU5MzJFXCJdLFxuW1wiZWZhMVwiLFwiXHU5MzE5XHU5MzIyXHU5MzFBXHU5MzIzXHU5MzNBXHU5MzM1XHU5MzNCXHU5MzVDXHU5MzYwXHU5MzdDXHU5MzZFXHU5MzU2XHU5M0IwXHU5M0FDXHU5M0FEXHU5Mzk0XHU5M0I5XHU5M0Q2XHU5M0Q3XHU5M0U4XHU5M0U1XHU5M0Q4XHU5M0MzXHU5M0REXHU5M0QwXHU5M0M4XHU5M0U0XHU5NDFBXHU5NDE0XHU5NDEzXHU5NDAzXHU5NDA3XHU5NDEwXHU5NDM2XHU5NDJCXHU5NDM1XHU5NDIxXHU5NDNBXHU5NDQxXHU5NDUyXHU5NDQ0XHU5NDVCXHU5NDYwXHU5NDYyXHU5NDVFXHU5NDZBXHU5MjI5XHU5NDcwXHU5NDc1XHU5NDc3XHU5NDdEXHU5NDVBXHU5NDdDXHU5NDdFXHU5NDgxXHU5NDdGXHU5NTgyXHU5NTg3XHU5NThBXHU5NTk0XHU5NTk2XHU5NTk4XHU5NTk5XHU5NUEwXHU5NUE4XHU5NUE3XHU5NUFEXHU5NUJDXHU5NUJCXHU5NUI5XHU5NUJFXHU5NUNBXHU2RkY2XHU5NUMzXHU5NUNEXHU5NUNDXHU5NUQ1XHU5NUQ0XHU5NUQ2XHU5NURDXHU5NUUxXHU5NUU1XHU5NUUyXHU5NjIxXHU5NjI4XHU5NjJFXHU5NjJGXHU5NjQyXHU5NjRDXHU5NjRGXHU5NjRCXHU5Njc3XHU5NjVDXHU5NjVFXCJdLFxuW1wiZjBhMVwiLFwiXHU5NjVEXHU5NjVGXHU5NjY2XHU5NjcyXHU5NjZDXHU5NjhEXHU5Njk4XHU5Njk1XHU5Njk3XHU5NkFBXHU5NkE3XHU5NkIxXHU5NkIyXHU5NkIwXHU5NkI0XHU5NkI2XHU5NkI4XHU5NkI5XHU5NkNFXHU5NkNCXHU5NkM5XHU5NkNEXHU4OTREXHU5NkRDXHU5NzBEXHU5NkQ1XHU5NkY5XHU5NzA0XHU5NzA2XHU5NzA4XHU5NzEzXHU5NzBFXHU5NzExXHU5NzBGXHU5NzE2XHU5NzE5XHU5NzI0XHU5NzJBXHU5NzMwXHU5NzM5XHU5NzNEXHU5NzNFXHU5NzQ0XHU5NzQ2XHU5NzQ4XHU5NzQyXHU5NzQ5XHU5NzVDXHU5NzYwXHU5NzY0XHU5NzY2XHU5NzY4XHU1MkQyXHU5NzZCXHU5NzcxXHU5Nzc5XHU5Nzg1XHU5NzdDXHU5NzgxXHU5NzdBXHU5Nzg2XHU5NzhCXHU5NzhGXHU5NzkwXHU5NzlDXHU5N0E4XHU5N0E2XHU5N0EzXHU5N0IzXHU5N0I0XHU5N0MzXHU5N0M2XHU5N0M4XHU5N0NCXHU5N0RDXHU5N0VEXHU5RjRGXHU5N0YyXHU3QURGXHU5N0Y2XHU5N0Y1XHU5ODBGXHU5ODBDXHU5ODM4XHU5ODI0XHU5ODIxXHU5ODM3XHU5ODNEXHU5ODQ2XHU5ODRGXHU5ODRCXHU5ODZCXHU5ODZGXHU5ODcwXCJdLFxuW1wiZjFhMVwiLFwiXHU5ODcxXHU5ODc0XHU5ODczXHU5OEFBXHU5OEFGXHU5OEIxXHU5OEI2XHU5OEM0XHU5OEMzXHU5OEM2XHU5OEU5XHU5OEVCXHU5OTAzXHU5OTA5XHU5OTEyXHU5OTE0XHU5OTE4XHU5OTIxXHU5OTFEXHU5OTFFXHU5OTI0XHU5OTIwXHU5OTJDXHU5OTJFXHU5OTNEXHU5OTNFXHU5OTQyXHU5OTQ5XHU5OTQ1XHU5OTUwXHU5OTRCXHU5OTUxXHU5OTUyXHU5OTRDXHU5OTU1XHU5OTk3XHU5OTk4XHU5OUE1XHU5OUFEXHU5OUFFXHU5OUJDXHU5OURGXHU5OURCXHU5OUREXHU5OUQ4XHU5OUQxXHU5OUVEXHU5OUVFXHU5OUYxXHU5OUYyXHU5OUZCXHU5OUY4XHU5QTAxXHU5QTBGXHU5QTA1XHU5OUUyXHU5QTE5XHU5QTJCXHU5QTM3XHU5QTQ1XHU5QTQyXHU5QTQwXHU5QTQzXHU5QTNFXHU5QTU1XHU5QTREXHU5QTVCXHU5QTU3XHU5QTVGXHU5QTYyXHU5QTY1XHU5QTY0XHU5QTY5XHU5QTZCXHU5QTZBXHU5QUFEXHU5QUIwXHU5QUJDXHU5QUMwXHU5QUNGXHU5QUQxXHU5QUQzXHU5QUQ0XHU5QURFXHU5QURGXHU5QUUyXHU5QUUzXHU5QUU2XHU5QUVGXHU5QUVCXHU5QUVFXHU5QUY0XHU5QUYxXHU5QUY3XCJdLFxuW1wiZjJhMVwiLFwiXHU5QUZCXHU5QjA2XHU5QjE4XHU5QjFBXHU5QjFGXHU5QjIyXHU5QjIzXHU5QjI1XHU5QjI3XHU5QjI4XHU5QjI5XHU5QjJBXHU5QjJFXHU5QjJGXHU5QjMyXHU5QjQ0XHU5QjQzXHU5QjRGXHU5QjREXHU5QjRFXHU5QjUxXHU5QjU4XHU5Qjc0XHU5QjkzXHU5QjgzXHU5QjkxXHU5Qjk2XHU5Qjk3XHU5QjlGXHU5QkEwXHU5QkE4XHU5QkI0XHU5QkMwXHU5QkNBXHU5QkI5XHU5QkM2XHU5QkNGXHU5QkQxXHU5QkQyXHU5QkUzXHU5QkUyXHU5QkU0XHU5QkQ0XHU5QkUxXHU5QzNBXHU5QkYyXHU5QkYxXHU5QkYwXHU5QzE1XHU5QzE0XHU5QzA5XHU5QzEzXHU5QzBDXHU5QzA2XHU5QzA4XHU5QzEyXHU5QzBBXHU5QzA0XHU5QzJFXHU5QzFCXHU5QzI1XHU5QzI0XHU5QzIxXHU5QzMwXHU5QzQ3XHU5QzMyXHU5QzQ2XHU5QzNFXHU5QzVBXHU5QzYwXHU5QzY3XHU5Qzc2XHU5Qzc4XHU5Q0U3XHU5Q0VDXHU5Q0YwXHU5RDA5XHU5RDA4XHU5Q0VCXHU5RDAzXHU5RDA2XHU5RDJBXHU5RDI2XHU5REFGXHU5RDIzXHU5RDFGXHU5RDQ0XHU5RDE1XHU5RDEyXHU5RDQxXHU5RDNGXHU5RDNFXHU5RDQ2XHU5RDQ4XCJdLFxuW1wiZjNhMVwiLFwiXHU5RDVEXHU5RDVFXHU5RDY0XHU5RDUxXHU5RDUwXHU5RDU5XHU5RDcyXHU5RDg5XHU5RDg3XHU5REFCXHU5RDZGXHU5RDdBXHU5RDlBXHU5REE0XHU5REE5XHU5REIyXHU5REM0XHU5REMxXHU5REJCXHU5REI4XHU5REJBXHU5REM2XHU5RENGXHU5REMyXHU5REQ5XHU5REQzXHU5REY4XHU5REU2XHU5REVEXHU5REVGXHU5REZEXHU5RTFBXHU5RTFCXHU5RTFFXHU5RTc1XHU5RTc5XHU5RTdEXHU5RTgxXHU5RTg4XHU5RThCXHU5RThDXHU5RTkyXHU5RTk1XHU5RTkxXHU5RTlEXHU5RUE1XHU5RUE5XHU5RUI4XHU5RUFBXHU5RUFEXHU5NzYxXHU5RUNDXHU5RUNFXHU5RUNGXHU5RUQwXHU5RUQ0XHU5RURDXHU5RURFXHU5RUREXHU5RUUwXHU5RUU1XHU5RUU4XHU5RUVGXHU5RUY0XHU5RUY2XHU5RUY3XHU5RUY5XHU5RUZCXHU5RUZDXHU5RUZEXHU5RjA3XHU5RjA4XHU3NkI3XHU5RjE1XHU5RjIxXHU5RjJDXHU5RjNFXHU5RjRBXHU5RjUyXHU5RjU0XHU5RjYzXHU5RjVGXHU5RjYwXHU5RjYxXHU5RjY2XHU5RjY3XHU5RjZDXHU5RjZBXHU5Rjc3XHU5RjcyXHU5Rjc2XHU5Rjk1XHU5RjlDXHU5RkEwXCJdLFxuW1wiZjRhMVwiLFwiXHU1ODJGXHU2OUM3XHU5MDU5XHU3NDY0XHU1MURDXHU3MTk5XCJdLFxuW1wiZjlhMVwiLFwiXHU3RThBXHU4OTFDXHU5MzQ4XHU5Mjg4XHU4NERDXHU0RkM5XHU3MEJCXHU2NjMxXHU2OEM4XHU5MkY5XHU2NkZCXHU1RjQ1XHU0RTI4XHU0RUUxXHU0RUZDXHU0RjAwXHU0RjAzXHU0RjM5XHU0RjU2XHU0RjkyXHU0RjhBXHU0RjlBXHU0Rjk0XHU0RkNEXHU1MDQwXHU1MDIyXHU0RkZGXHU1MDFFXHU1MDQ2XHU1MDcwXHU1MDQyXHU1MDk0XHU1MEY0XHU1MEQ4XHU1MTRBXHU1MTY0XHU1MTlEXHU1MUJFXHU1MUVDXHU1MjE1XHU1MjlDXHU1MkE2XHU1MkMwXHU1MkRCXHU1MzAwXHU1MzA3XHU1MzI0XHU1MzcyXHU1MzkzXHU1M0IyXHU1M0REXHVGQTBFXHU1NDlDXHU1NDhBXHU1NEE5XHU1NEZGXHU1NTg2XHU1NzU5XHU1NzY1XHU1N0FDXHU1N0M4XHU1N0M3XHVGQTBGXHVGQTEwXHU1ODlFXHU1OEIyXHU1OTBCXHU1OTUzXHU1OTVCXHU1OTVEXHU1OTYzXHU1OUE0XHU1OUJBXHU1QjU2XHU1QkMwXHU3NTJGXHU1QkQ4XHU1QkVDXHU1QzFFXHU1Q0E2XHU1Q0JBXHU1Q0Y1XHU1RDI3XHU1RDUzXHVGQTExXHU1RDQyXHU1RDZEXHU1REI4XHU1REI5XHU1REQwXHU1RjIxXHU1RjM0XHU1RjY3XHU1RkI3XCJdLFxuW1wiZmFhMVwiLFwiXHU1RkRFXHU2MDVEXHU2MDg1XHU2MDhBXHU2MERFXHU2MEQ1XHU2MTIwXHU2MEYyXHU2MTExXHU2MTM3XHU2MTMwXHU2MTk4XHU2MjEzXHU2MkE2XHU2M0Y1XHU2NDYwXHU2NDlEXHU2NENFXHU2NTRFXHU2NjAwXHU2NjE1XHU2NjNCXHU2NjA5XHU2NjJFXHU2NjFFXHU2NjI0XHU2NjY1XHU2NjU3XHU2NjU5XHVGQTEyXHU2NjczXHU2Njk5XHU2NkEwXHU2NkIyXHU2NkJGXHU2NkZBXHU2NzBFXHVGOTI5XHU2NzY2XHU2N0JCXHU2ODUyXHU2N0MwXHU2ODAxXHU2ODQ0XHU2OENGXHVGQTEzXHU2OTY4XHVGQTE0XHU2OTk4XHU2OUUyXHU2QTMwXHU2QTZCXHU2QTQ2XHU2QTczXHU2QTdFXHU2QUUyXHU2QUU0XHU2QkQ2XHU2QzNGXHU2QzVDXHU2Qzg2XHU2QzZGXHU2Q0RBXHU2RDA0XHU2RDg3XHU2RDZGXHU2RDk2XHU2REFDXHU2RENGXHU2REY4XHU2REYyXHU2REZDXHU2RTM5XHU2RTVDXHU2RTI3XHU2RTNDXHU2RUJGXHU2Rjg4XHU2RkI1XHU2RkY1XHU3MDA1XHU3MDA3XHU3MDI4XHU3MDg1XHU3MEFCXHU3MTBGXHU3MTA0XHU3MTVDXHU3MTQ2XHU3MTQ3XHVGQTE1XHU3MUMxXHU3MUZFXHU3MkIxXCJdLFxuW1wiZmJhMVwiLFwiXHU3MkJFXHU3MzI0XHVGQTE2XHU3Mzc3XHU3M0JEXHU3M0M5XHU3M0Q2XHU3M0UzXHU3M0QyXHU3NDA3XHU3M0Y1XHU3NDI2XHU3NDJBXHU3NDI5XHU3NDJFXHU3NDYyXHU3NDg5XHU3NDlGXHU3NTAxXHU3NTZGXHU3NjgyXHU3NjlDXHU3NjlFXHU3NjlCXHU3NkE2XHVGQTE3XHU3NzQ2XHU1MkFGXHU3ODIxXHU3ODRFXHU3ODY0XHU3ODdBXHU3OTMwXHVGQTE4XHVGQTE5XHVGQTFBXHU3OTk0XHVGQTFCXHU3OTlCXHU3QUQxXHU3QUU3XHVGQTFDXHU3QUVCXHU3QjlFXHVGQTFEXHU3RDQ4XHU3RDVDXHU3REI3XHU3REEwXHU3REQ2XHU3RTUyXHU3RjQ3XHU3RkExXHVGQTFFXHU4MzAxXHU4MzYyXHU4MzdGXHU4M0M3XHU4M0Y2XHU4NDQ4XHU4NEI0XHU4NTUzXHU4NTU5XHU4NTZCXHVGQTFGXHU4NUIwXHVGQTIwXHVGQTIxXHU4ODA3XHU4OEY1XHU4QTEyXHU4QTM3XHU4QTc5XHU4QUE3XHU4QUJFXHU4QURGXHVGQTIyXHU4QUY2XHU4QjUzXHU4QjdGXHU4Q0YwXHU4Q0Y0XHU4RDEyXHU4RDc2XHVGQTIzXHU4RUNGXHVGQTI0XHVGQTI1XHU5MDY3XHU5MERFXHVGQTI2XHU5MTE1XHU5MTI3XHU5MURBXCJdLFxuW1wiZmNhMVwiLFwiXHU5MUQ3XHU5MURFXHU5MUVEXHU5MUVFXHU5MUU0XHU5MUU1XHU5MjA2XHU5MjEwXHU5MjBBXHU5MjNBXHU5MjQwXHU5MjNDXHU5MjRFXHU5MjU5XHU5MjUxXHU5MjM5XHU5MjY3XHU5MkE3XHU5Mjc3XHU5Mjc4XHU5MkU3XHU5MkQ3XHU5MkQ5XHU5MkQwXHVGQTI3XHU5MkQ1XHU5MkUwXHU5MkQzXHU5MzI1XHU5MzIxXHU5MkZCXHVGQTI4XHU5MzFFXHU5MkZGXHU5MzFEXHU5MzAyXHU5MzcwXHU5MzU3XHU5M0E0XHU5M0M2XHU5M0RFXHU5M0Y4XHU5NDMxXHU5NDQ1XHU5NDQ4XHU5NTkyXHVGOURDXHVGQTI5XHU5NjlEXHU5NkFGXHU5NzMzXHU5NzNCXHU5NzQzXHU5NzREXHU5NzRGXHU5NzUxXHU5NzU1XHU5ODU3XHU5ODY1XHVGQTJBXHVGQTJCXHU5OTI3XHVGQTJDXHU5OTlFXHU5QTRFXHU5QUQ5XHU5QURDXHU5Qjc1XHU5QjcyXHU5QjhGXHU5QkIxXHU5QkJCXHU5QzAwXHU5RDcwXHU5RDZCXHVGQTJEXHU5RTE5XHU5RUQxXCJdLFxuW1wiZmNmMVwiLFwiXHUyMTcwXCIsOSxcIlx1RkZFMlx1RkZFNFx1RkYwN1x1RkYwMlwiXSxcbltcIjhmYTJhZlwiLFwiXHUwMkQ4XHUwMkM3XHUwMEI4XHUwMkQ5XHUwMkREXHUwMEFGXHUwMkRCXHUwMkRBXHVGRjVFXHUwMzg0XHUwMzg1XCJdLFxuW1wiOGZhMmMyXCIsXCJcdTAwQTFcdTAwQTZcdTAwQkZcIl0sXG5bXCI4ZmEyZWJcIixcIlx1MDBCQVx1MDBBQVx1MDBBOVx1MDBBRVx1MjEyMlx1MDBBNFx1MjExNlwiXSxcbltcIjhmYTZlMVwiLFwiXHUwMzg2XHUwMzg4XHUwMzg5XHUwMzhBXHUwM0FBXCJdLFxuW1wiOGZhNmU3XCIsXCJcdTAzOENcIl0sXG5bXCI4ZmE2ZTlcIixcIlx1MDM4RVx1MDNBQlwiXSxcbltcIjhmYTZlY1wiLFwiXHUwMzhGXCJdLFxuW1wiOGZhNmYxXCIsXCJcdTAzQUNcdTAzQURcdTAzQUVcdTAzQUZcdTAzQ0FcdTAzOTBcdTAzQ0NcdTAzQzJcdTAzQ0RcdTAzQ0JcdTAzQjBcdTAzQ0VcIl0sXG5bXCI4ZmE3YzJcIixcIlx1MDQwMlwiLDEwLFwiXHUwNDBFXHUwNDBGXCJdLFxuW1wiOGZhN2YyXCIsXCJcdTA0NTJcIiwxMCxcIlx1MDQ1RVx1MDQ1RlwiXSxcbltcIjhmYTlhMVwiLFwiXHUwMEM2XHUwMTEwXCJdLFxuW1wiOGZhOWE0XCIsXCJcdTAxMjZcIl0sXG5bXCI4ZmE5YTZcIixcIlx1MDEzMlwiXSxcbltcIjhmYTlhOFwiLFwiXHUwMTQxXHUwMTNGXCJdLFxuW1wiOGZhOWFiXCIsXCJcdTAxNEFcdTAwRDhcdTAxNTJcIl0sXG5bXCI4ZmE5YWZcIixcIlx1MDE2Nlx1MDBERVwiXSxcbltcIjhmYTljMVwiLFwiXHUwMEU2XHUwMTExXHUwMEYwXHUwMTI3XHUwMTMxXHUwMTMzXHUwMTM4XHUwMTQyXHUwMTQwXHUwMTQ5XHUwMTRCXHUwMEY4XHUwMTUzXHUwMERGXHUwMTY3XHUwMEZFXCJdLFxuW1wiOGZhYWExXCIsXCJcdTAwQzFcdTAwQzBcdTAwQzRcdTAwQzJcdTAxMDJcdTAxQ0RcdTAxMDBcdTAxMDRcdTAwQzVcdTAwQzNcdTAxMDZcdTAxMDhcdTAxMENcdTAwQzdcdTAxMEFcdTAxMEVcdTAwQzlcdTAwQzhcdTAwQ0JcdTAwQ0FcdTAxMUFcdTAxMTZcdTAxMTJcdTAxMThcIl0sXG5bXCI4ZmFhYmFcIixcIlx1MDExQ1x1MDExRVx1MDEyMlx1MDEyMFx1MDEyNFx1MDBDRFx1MDBDQ1x1MDBDRlx1MDBDRVx1MDFDRlx1MDEzMFx1MDEyQVx1MDEyRVx1MDEyOFx1MDEzNFx1MDEzNlx1MDEzOVx1MDEzRFx1MDEzQlx1MDE0M1x1MDE0N1x1MDE0NVx1MDBEMVx1MDBEM1x1MDBEMlx1MDBENlx1MDBENFx1MDFEMVx1MDE1MFx1MDE0Q1x1MDBENVx1MDE1NFx1MDE1OFx1MDE1Nlx1MDE1QVx1MDE1Q1x1MDE2MFx1MDE1RVx1MDE2NFx1MDE2Mlx1MDBEQVx1MDBEOVx1MDBEQ1x1MDBEQlx1MDE2Q1x1MDFEM1x1MDE3MFx1MDE2QVx1MDE3Mlx1MDE2RVx1MDE2OFx1MDFEN1x1MDFEQlx1MDFEOVx1MDFENVx1MDE3NFx1MDBERFx1MDE3OFx1MDE3Nlx1MDE3OVx1MDE3RFx1MDE3QlwiXSxcbltcIjhmYWJhMVwiLFwiXHUwMEUxXHUwMEUwXHUwMEU0XHUwMEUyXHUwMTAzXHUwMUNFXHUwMTAxXHUwMTA1XHUwMEU1XHUwMEUzXHUwMTA3XHUwMTA5XHUwMTBEXHUwMEU3XHUwMTBCXHUwMTBGXHUwMEU5XHUwMEU4XHUwMEVCXHUwMEVBXHUwMTFCXHUwMTE3XHUwMTEzXHUwMTE5XHUwMUY1XHUwMTFEXHUwMTFGXCJdLFxuW1wiOGZhYmJkXCIsXCJcdTAxMjFcdTAxMjVcdTAwRURcdTAwRUNcdTAwRUZcdTAwRUVcdTAxRDBcIl0sXG5bXCI4ZmFiYzVcIixcIlx1MDEyQlx1MDEyRlx1MDEyOVx1MDEzNVx1MDEzN1x1MDEzQVx1MDEzRVx1MDEzQ1x1MDE0NFx1MDE0OFx1MDE0Nlx1MDBGMVx1MDBGM1x1MDBGMlx1MDBGNlx1MDBGNFx1MDFEMlx1MDE1MVx1MDE0RFx1MDBGNVx1MDE1NVx1MDE1OVx1MDE1N1x1MDE1Qlx1MDE1RFx1MDE2MVx1MDE1Rlx1MDE2NVx1MDE2M1x1MDBGQVx1MDBGOVx1MDBGQ1x1MDBGQlx1MDE2RFx1MDFENFx1MDE3MVx1MDE2Qlx1MDE3M1x1MDE2Rlx1MDE2OVx1MDFEOFx1MDFEQ1x1MDFEQVx1MDFENlx1MDE3NVx1MDBGRFx1MDBGRlx1MDE3N1x1MDE3QVx1MDE3RVx1MDE3Q1wiXSxcbltcIjhmYjBhMVwiLFwiXHU0RTAyXHU0RTA0XHU0RTA1XHU0RTBDXHU0RTEyXHU0RTFGXHU0RTIzXHU0RTI0XHU0RTI4XHU0RTJCXHU0RTJFXHU0RTJGXHU0RTMwXHU0RTM1XHU0RTQwXHU0RTQxXHU0RTQ0XHU0RTQ3XHU0RTUxXHU0RTVBXHU0RTVDXHU0RTYzXHU0RTY4XHU0RTY5XHU0RTc0XHU0RTc1XHU0RTc5XHU0RTdGXHU0RThEXHU0RTk2XHU0RTk3XHU0RTlEXHU0RUFGXHU0RUI5XHU0RUMzXHU0RUQwXHU0RURBXHU0RURCXHU0RUUwXHU0RUUxXHU0RUUyXHU0RUU4XHU0RUVGXHU0RUYxXHU0RUYzXHU0RUY1XHU0RUZEXHU0RUZFXHU0RUZGXHU0RjAwXHU0RjAyXHU0RjAzXHU0RjA4XHU0RjBCXHU0RjBDXHU0RjEyXHU0RjE1XHU0RjE2XHU0RjE3XHU0RjE5XHU0RjJFXHU0RjMxXHU0RjYwXHU0RjMzXHU0RjM1XHU0RjM3XHU0RjM5XHU0RjNCXHU0RjNFXHU0RjQwXHU0RjQyXHU0RjQ4XHU0RjQ5XHU0RjRCXHU0RjRDXHU0RjUyXHU0RjU0XHU0RjU2XHU0RjU4XHU0RjVGXHU0RjYzXHU0RjZBXHU0RjZDXHU0RjZFXHU0RjcxXHU0Rjc3XHU0Rjc4XHU0Rjc5XHU0RjdBXHU0RjdEXHU0RjdFXHU0RjgxXHU0RjgyXHU0Rjg0XCJdLFxuW1wiOGZiMWExXCIsXCJcdTRGODVcdTRGODlcdTRGOEFcdTRGOENcdTRGOEVcdTRGOTBcdTRGOTJcdTRGOTNcdTRGOTRcdTRGOTdcdTRGOTlcdTRGOUFcdTRGOUVcdTRGOUZcdTRGQjJcdTRGQjdcdTRGQjlcdTRGQkJcdTRGQkNcdTRGQkRcdTRGQkVcdTRGQzBcdTRGQzFcdTRGQzVcdTRGQzZcdTRGQzhcdTRGQzlcdTRGQ0JcdTRGQ0NcdTRGQ0RcdTRGQ0ZcdTRGRDJcdTRGRENcdTRGRTBcdTRGRTJcdTRGRjBcdTRGRjJcdTRGRkNcdTRGRkRcdTRGRkZcdTUwMDBcdTUwMDFcdTUwMDRcdTUwMDdcdTUwMEFcdTUwMENcdTUwMEVcdTUwMTBcdTUwMTNcdTUwMTdcdTUwMThcdTUwMUJcdTUwMUNcdTUwMURcdTUwMUVcdTUwMjJcdTUwMjdcdTUwMkVcdTUwMzBcdTUwMzJcdTUwMzNcdTUwMzVcdTUwNDBcdTUwNDFcdTUwNDJcdTUwNDVcdTUwNDZcdTUwNEFcdTUwNENcdTUwNEVcdTUwNTFcdTUwNTJcdTUwNTNcdTUwNTdcdTUwNTlcdTUwNUZcdTUwNjBcdTUwNjJcdTUwNjNcdTUwNjZcdTUwNjdcdTUwNkFcdTUwNkRcdTUwNzBcdTUwNzFcdTUwM0JcdTUwODFcdTUwODNcdTUwODRcdTUwODZcdTUwOEFcdTUwOEVcdTUwOEZcdTUwOTBcIl0sXG5bXCI4ZmIyYTFcIixcIlx1NTA5Mlx1NTA5M1x1NTA5NFx1NTA5Nlx1NTA5Qlx1NTA5Q1x1NTA5RVwiLDQsXCJcdTUwQUFcdTUwQUZcdTUwQjBcdTUwQjlcdTUwQkFcdTUwQkRcdTUwQzBcdTUwQzNcdTUwQzRcdTUwQzdcdTUwQ0NcdTUwQ0VcdTUwRDBcdTUwRDNcdTUwRDRcdTUwRDhcdTUwRENcdTUwRERcdTUwREZcdTUwRTJcdTUwRTRcdTUwRTZcdTUwRThcdTUwRTlcdTUwRUZcdTUwRjFcdTUwRjZcdTUwRkFcdTUwRkVcdTUxMDNcdTUxMDZcdTUxMDdcdTUxMDhcdTUxMEJcdTUxMENcdTUxMERcdTUxMEVcdTUwRjJcdTUxMTBcdTUxMTdcdTUxMTlcdTUxMUJcdTUxMUNcdTUxMURcdTUxMUVcdTUxMjNcdTUxMjdcdTUxMjhcdTUxMkNcdTUxMkRcdTUxMkZcdTUxMzFcdTUxMzNcdTUxMzRcdTUxMzVcdTUxMzhcdTUxMzlcdTUxNDJcdTUxNEFcdTUxNEZcdTUxNTNcdTUxNTVcdTUxNTdcdTUxNThcdTUxNUZcdTUxNjRcdTUxNjZcdTUxN0VcdTUxODNcdTUxODRcdTUxOEJcdTUxOEVcdTUxOThcdTUxOURcdTUxQTFcdTUxQTNcdTUxQURcdTUxQjhcdTUxQkFcdTUxQkNcdTUxQkVcdTUxQkZcdTUxQzJcIl0sXG5bXCI4ZmIzYTFcIixcIlx1NTFDOFx1NTFDRlx1NTFEMVx1NTFEMlx1NTFEM1x1NTFENVx1NTFEOFx1NTFERVx1NTFFMlx1NTFFNVx1NTFFRVx1NTFGMlx1NTFGM1x1NTFGNFx1NTFGN1x1NTIwMVx1NTIwMlx1NTIwNVx1NTIxMlx1NTIxM1x1NTIxNVx1NTIxNlx1NTIxOFx1NTIyMlx1NTIyOFx1NTIzMVx1NTIzMlx1NTIzNVx1NTIzQ1x1NTI0NVx1NTI0OVx1NTI1NVx1NTI1N1x1NTI1OFx1NTI1QVx1NTI1Q1x1NTI1Rlx1NTI2MFx1NTI2MVx1NTI2Nlx1NTI2RVx1NTI3N1x1NTI3OFx1NTI3OVx1NTI4MFx1NTI4Mlx1NTI4NVx1NTI4QVx1NTI4Q1x1NTI5M1x1NTI5NVx1NTI5Nlx1NTI5N1x1NTI5OFx1NTI5QVx1NTI5Q1x1NTJBNFx1NTJBNVx1NTJBNlx1NTJBN1x1NTJBRlx1NTJCMFx1NTJCNlx1NTJCN1x1NTJCOFx1NTJCQVx1NTJCQlx1NTJCRFx1NTJDMFx1NTJDNFx1NTJDNlx1NTJDOFx1NTJDQ1x1NTJDRlx1NTJEMVx1NTJENFx1NTJENlx1NTJEQlx1NTJEQ1x1NTJFMVx1NTJFNVx1NTJFOFx1NTJFOVx1NTJFQVx1NTJFQ1x1NTJGMFx1NTJGMVx1NTJGNFx1NTJGNlx1NTJGN1x1NTMwMFx1NTMwM1x1NTMwQVx1NTMwQlwiXSxcbltcIjhmYjRhMVwiLFwiXHU1MzBDXHU1MzExXHU1MzEzXHU1MzE4XHU1MzFCXHU1MzFDXHU1MzFFXHU1MzFGXHU1MzI1XHU1MzI3XHU1MzI4XHU1MzI5XHU1MzJCXHU1MzJDXHU1MzJEXHU1MzMwXHU1MzMyXHU1MzM1XHU1MzNDXHU1MzNEXHU1MzNFXHU1MzQyXHU1MzRDXHU1MzRCXHU1MzU5XHU1MzVCXHU1MzYxXHU1MzYzXHU1MzY1XHU1MzZDXHU1MzZEXHU1MzcyXHU1Mzc5XHU1MzdFXHU1MzgzXHU1Mzg3XHU1Mzg4XHU1MzhFXHU1MzkzXHU1Mzk0XHU1Mzk5XHU1MzlEXHU1M0ExXHU1M0E0XHU1M0FBXHU1M0FCXHU1M0FGXHU1M0IyXHU1M0I0XHU1M0I1XHU1M0I3XHU1M0I4XHU1M0JBXHU1M0JEXHU1M0MwXHU1M0M1XHU1M0NGXHU1M0QyXHU1M0QzXHU1M0Q1XHU1M0RBXHU1M0REXHU1M0RFXHU1M0UwXHU1M0U2XHU1M0U3XHU1M0Y1XHU1NDAyXHU1NDEzXHU1NDFBXHU1NDIxXHU1NDI3XHU1NDI4XHU1NDJBXHU1NDJGXHU1NDMxXHU1NDM0XHU1NDM1XHU1NDQzXHU1NDQ0XHU1NDQ3XHU1NDREXHU1NDRGXHU1NDVFXHU1NDYyXHU1NDY0XHU1NDY2XHU1NDY3XHU1NDY5XHU1NDZCXHU1NDZEXHU1NDZFXHU1NDc0XHU1NDdGXCJdLFxuW1wiOGZiNWExXCIsXCJcdTU0ODFcdTU0ODNcdTU0ODVcdTU0ODhcdTU0ODlcdTU0OERcdTU0OTFcdTU0OTVcdTU0OTZcdTU0OUNcdTU0OUZcdTU0QTFcdTU0QTZcdTU0QTdcdTU0QTlcdTU0QUFcdTU0QURcdTU0QUVcdTU0QjFcdTU0QjdcdTU0QjlcdTU0QkFcdTU0QkJcdTU0QkZcdTU0QzZcdTU0Q0FcdTU0Q0RcdTU0Q0VcdTU0RTBcdTU0RUFcdTU0RUNcdTU0RUZcdTU0RjZcdTU0RkNcdTU0RkVcdTU0RkZcdTU1MDBcdTU1MDFcdTU1MDVcdTU1MDhcdTU1MDlcdTU1MENcdTU1MERcdTU1MEVcdTU1MTVcdTU1MkFcdTU1MkJcdTU1MzJcdTU1MzVcdTU1MzZcdTU1M0JcdTU1M0NcdTU1M0RcdTU1NDFcdTU1NDdcdTU1NDlcdTU1NEFcdTU1NERcdTU1NTBcdTU1NTFcdTU1NThcdTU1NUFcdTU1NUJcdTU1NUVcdTU1NjBcdTU1NjFcdTU1NjRcdTU1NjZcdTU1N0ZcdTU1ODFcdTU1ODJcdTU1ODZcdTU1ODhcdTU1OEVcdTU1OEZcdTU1OTFcdTU1OTJcdTU1OTNcdTU1OTRcdTU1OTdcdTU1QTNcdTU1QTRcdTU1QURcdTU1QjJcdTU1QkZcdTU1QzFcdTU1QzNcdTU1QzZcdTU1QzlcdTU1Q0JcdTU1Q0NcdTU1Q0VcdTU1RDFcdTU1RDJcIl0sXG5bXCI4ZmI2YTFcIixcIlx1NTVEM1x1NTVEN1x1NTVEOFx1NTVEQlx1NTVERVx1NTVFMlx1NTVFOVx1NTVGNlx1NTVGRlx1NTYwNVx1NTYwOFx1NTYwQVx1NTYwRFwiLDUsXCJcdTU2MTlcdTU2MkNcdTU2MzBcdTU2MzNcdTU2MzVcdTU2MzdcdTU2MzlcdTU2M0JcdTU2M0NcdTU2M0RcdTU2M0ZcdTU2NDBcdTU2NDFcdTU2NDNcdTU2NDRcdTU2NDZcdTU2NDlcdTU2NEJcdTU2NERcdTU2NEZcdTU2NTRcdTU2NUVcdTU2NjBcdTU2NjFcdTU2NjJcdTU2NjNcdTU2NjZcdTU2NjlcdTU2NkRcdTU2NkZcdTU2NzFcdTU2NzJcdTU2NzVcdTU2ODRcdTU2ODVcdTU2ODhcdTU2OEJcdTU2OENcdTU2OTVcdTU2OTlcdTU2OUFcdTU2OURcdTU2OUVcdTU2OUZcdTU2QTZcdTU2QTdcdTU2QThcdTU2QTlcdTU2QUJcdTU2QUNcdTU2QURcdTU2QjFcdTU2QjNcdTU2QjdcdTU2QkVcdTU2QzVcdTU2QzlcdTU2Q0FcdTU2Q0JcdTU2Q0ZcdTU2RDBcdTU2Q0NcdTU2Q0RcdTU2RDlcdTU2RENcdTU2RERcdTU2REZcdTU2RTFcdTU2RTRcIiw0LFwiXHU1NkYxXHU1NkVCXHU1NkVEXCJdLFxuW1wiOGZiN2ExXCIsXCJcdTU2RjZcdTU2RjdcdTU3MDFcdTU3MDJcdTU3MDdcdTU3MEFcdTU3MENcdTU3MTFcdTU3MTVcdTU3MUFcdTU3MUJcdTU3MURcdTU3MjBcdTU3MjJcdTU3MjNcdTU3MjRcdTU3MjVcdTU3MjlcdTU3MkFcdTU3MkNcdTU3MkVcdTU3MkZcdTU3MzNcdTU3MzRcdTU3M0RcdTU3M0VcdTU3M0ZcdTU3NDVcdTU3NDZcdTU3NENcdTU3NERcdTU3NTJcdTU3NjJcdTU3NjVcdTU3NjdcdTU3NjhcdTU3NkJcdTU3NkRcIiw0LFwiXHU1NzczXHU1Nzc0XHU1Nzc1XHU1Nzc3XHU1Nzc5XHU1NzdBXHU1NzdCXHU1NzdDXHU1NzdFXHU1NzgxXHU1NzgzXHU1NzhDXHU1Nzk0XHU1Nzk3XHU1Nzk5XHU1NzlBXHU1NzlDXHU1NzlEXHU1NzlFXHU1NzlGXHU1N0ExXHU1Nzk1XHU1N0E3XHU1N0E4XHU1N0E5XHU1N0FDXHU1N0I4XHU1N0JEXHU1N0M3XHU1N0M4XHU1N0NDXHU1N0NGXHU1N0Q1XHU1N0REXHU1N0RFXHU1N0U0XHU1N0U2XHU1N0U3XHU1N0U5XHU1N0VEXHU1N0YwXHU1N0Y1XHU1N0Y2XHU1N0Y4XHU1N0ZEXHU1N0ZFXHU1N0ZGXHU1ODAzXHU1ODA0XHU1ODA4XHU1ODA5XHU1N0UxXCJdLFxuW1wiOGZiOGExXCIsXCJcdTU4MENcdTU4MERcdTU4MUJcdTU4MUVcdTU4MUZcdTU4MjBcdTU4MjZcdTU4MjdcdTU4MkRcdTU4MzJcdTU4MzlcdTU4M0ZcdTU4NDlcdTU4NENcdTU4NERcdTU4NEZcdTU4NTBcdTU4NTVcdTU4NUZcdTU4NjFcdTU4NjRcdTU4NjdcdTU4NjhcdTU4NzhcdTU4N0NcdTU4N0ZcdTU4ODBcdTU4ODFcdTU4ODdcdTU4ODhcdTU4ODlcdTU4OEFcdTU4OENcdTU4OERcdTU4OEZcdTU4OTBcdTU4OTRcdTU4OTZcdTU4OURcdTU4QTBcdTU4QTFcdTU4QTJcdTU4QTZcdTU4QTlcdTU4QjFcdTU4QjJcdTU4QzRcdTU4QkNcdTU4QzJcdTU4QzhcdTU4Q0RcdTU4Q0VcdTU4RDBcdTU4RDJcdTU4RDRcdTU4RDZcdTU4REFcdTU4RERcdTU4RTFcdTU4RTJcdTU4RTlcdTU4RjNcdTU5MDVcdTU5MDZcdTU5MEJcdTU5MENcdTU5MTJcdTU5MTNcdTU5MTRcdTg2NDFcdTU5MURcdTU5MjFcdTU5MjNcdTU5MjRcdTU5MjhcdTU5MkZcdTU5MzBcdTU5MzNcdTU5MzVcdTU5MzZcdTU5M0ZcdTU5NDNcdTU5NDZcdTU5NTJcdTU5NTNcdTU5NTlcdTU5NUJcdTU5NURcdTU5NUVcdTU5NUZcdTU5NjFcdTU5NjNcdTU5NkJcdTU5NkRcIl0sXG5bXCI4ZmI5YTFcIixcIlx1NTk2Rlx1NTk3Mlx1NTk3NVx1NTk3Nlx1NTk3OVx1NTk3Qlx1NTk3Q1x1NTk4Qlx1NTk4Q1x1NTk4RVx1NTk5Mlx1NTk5NVx1NTk5N1x1NTk5Rlx1NTlBNFx1NTlBN1x1NTlBRFx1NTlBRVx1NTlBRlx1NTlCMFx1NTlCM1x1NTlCN1x1NTlCQVx1NTlCQ1x1NTlDMVx1NTlDM1x1NTlDNFx1NTlDOFx1NTlDQVx1NTlDRFx1NTlEMlx1NTlERFx1NTlERVx1NTlERlx1NTlFM1x1NTlFNFx1NTlFN1x1NTlFRVx1NTlFRlx1NTlGMVx1NTlGMlx1NTlGNFx1NTlGN1x1NUEwMFx1NUEwNFx1NUEwQ1x1NUEwRFx1NUEwRVx1NUExMlx1NUExM1x1NUExRVx1NUEyM1x1NUEyNFx1NUEyN1x1NUEyOFx1NUEyQVx1NUEyRFx1NUEzMFx1NUE0NFx1NUE0NVx1NUE0N1x1NUE0OFx1NUE0Q1x1NUE1MFx1NUE1NVx1NUE1RVx1NUE2M1x1NUE2NVx1NUE2N1x1NUE2RFx1NUE3N1x1NUE3QVx1NUE3Qlx1NUE3RVx1NUE4Qlx1NUE5MFx1NUE5M1x1NUE5Nlx1NUE5OVx1NUE5Q1x1NUE5RVx1NUE5Rlx1NUFBMFx1NUFBMlx1NUFBN1x1NUFBQ1x1NUFCMVx1NUFCMlx1NUFCM1x1NUFCNVx1NUFCOFx1NUFCQVx1NUFCQlx1NUFCRlwiXSxcbltcIjhmYmFhMVwiLFwiXHU1QUM0XHU1QUM2XHU1QUM4XHU1QUNGXHU1QURBXHU1QURDXHU1QUUwXHU1QUU1XHU1QUVBXHU1QUVFXHU1QUY1XHU1QUY2XHU1QUZEXHU1QjAwXHU1QjAxXHU1QjA4XHU1QjE3XHU1QjM0XHU1QjE5XHU1QjFCXHU1QjFEXHU1QjIxXHU1QjI1XHU1QjJEXHU1QjM4XHU1QjQxXHU1QjRCXHU1QjRDXHU1QjUyXHU1QjU2XHU1QjVFXHU1QjY4XHU1QjZFXHU1QjZGXHU1QjdDXHU1QjdEXHU1QjdFXHU1QjdGXHU1QjgxXHU1Qjg0XHU1Qjg2XHU1QjhBXHU1QjhFXHU1QjkwXHU1QjkxXHU1QjkzXHU1Qjk0XHU1Qjk2XHU1QkE4XHU1QkE5XHU1QkFDXHU1QkFEXHU1QkFGXHU1QkIxXHU1QkIyXHU1QkI3XHU1QkJBXHU1QkJDXHU1QkMwXHU1QkMxXHU1QkNEXHU1QkNGXHU1QkQ2XCIsNCxcIlx1NUJFMFx1NUJFRlx1NUJGMVx1NUJGNFx1NUJGRFx1NUMwQ1x1NUMxN1x1NUMxRVx1NUMxRlx1NUMyM1x1NUMyNlx1NUMyOVx1NUMyQlx1NUMyQ1x1NUMyRVx1NUMzMFx1NUMzMlx1NUMzNVx1NUMzNlx1NUM1OVx1NUM1QVx1NUM1Q1x1NUM2Mlx1NUM2M1x1NUM2N1x1NUM2OFx1NUM2OVwiXSxcbltcIjhmYmJhMVwiLFwiXHU1QzZEXHU1QzcwXHU1Qzc0XHU1Qzc1XHU1QzdBXHU1QzdCXHU1QzdDXHU1QzdEXHU1Qzg3XHU1Qzg4XHU1QzhBXHU1QzhGXHU1QzkyXHU1QzlEXHU1QzlGXHU1Q0EwXHU1Q0EyXHU1Q0EzXHU1Q0E2XHU1Q0FBXHU1Q0IyXHU1Q0I0XHU1Q0I1XHU1Q0JBXHU1Q0M5XHU1Q0NCXHU1Q0QyXHU1Q0REXHU1Q0Q3XHU1Q0VFXHU1Q0YxXHU1Q0YyXHU1Q0Y0XHU1RDAxXHU1RDA2XHU1RDBEXHU1RDEyXHU1RDJCXHU1RDIzXHU1RDI0XHU1RDI2XHU1RDI3XHU1RDMxXHU1RDM0XHU1RDM5XHU1RDNEXHU1RDNGXHU1RDQyXHU1RDQzXHU1RDQ2XHU1RDQ4XHU1RDU1XHU1RDUxXHU1RDU5XHU1RDRBXHU1RDVGXHU1RDYwXHU1RDYxXHU1RDYyXHU1RDY0XHU1RDZBXHU1RDZEXHU1RDcwXHU1RDc5XHU1RDdBXHU1RDdFXHU1RDdGXHU1RDgxXHU1RDgzXHU1RDg4XHU1RDhBXHU1RDkyXHU1RDkzXHU1RDk0XHU1RDk1XHU1RDk5XHU1RDlCXHU1RDlGXHU1REEwXHU1REE3XHU1REFCXHU1REIwXHU1REI0XHU1REI4XHU1REI5XHU1REMzXHU1REM3XHU1RENCXHU1REQwXHU1RENFXHU1REQ4XHU1REQ5XHU1REUwXHU1REU0XCJdLFxuW1wiOGZiY2ExXCIsXCJcdTVERTlcdTVERjhcdTVERjlcdTVFMDBcdTVFMDdcdTVFMERcdTVFMTJcdTVFMTRcdTVFMTVcdTVFMThcdTVFMUZcdTVFMjBcdTVFMkVcdTVFMjhcdTVFMzJcdTVFMzVcdTVFM0VcdTVFNEJcdTVFNTBcdTVFNDlcdTVFNTFcdTVFNTZcdTVFNThcdTVFNUJcdTVFNUNcdTVFNUVcdTVFNjhcdTVFNkFcIiw0LFwiXHU1RTcwXHU1RTgwXHU1RThCXHU1RThFXHU1RUEyXHU1RUE0XHU1RUE1XHU1RUE4XHU1RUFBXHU1RUFDXHU1RUIxXHU1RUIzXHU1RUJEXHU1RUJFXHU1RUJGXHU1RUM2XHU1RUNDXHU1RUNCXHU1RUNFXHU1RUQxXHU1RUQyXHU1RUQ0XHU1RUQ1XHU1RURDXHU1RURFXHU1RUU1XHU1RUVCXHU1RjAyXHU1RjA2XHU1RjA3XHU1RjA4XHU1RjBFXHU1RjE5XHU1RjFDXHU1RjFEXHU1RjIxXHU1RjIyXHU1RjIzXHU1RjI0XHU1RjI4XHU1RjJCXHU1RjJDXHU1RjJFXHU1RjMwXHU1RjM0XHU1RjM2XHU1RjNCXHU1RjNEXHU1RjNGXHU1RjQwXHU1RjQ0XHU1RjQ1XHU1RjQ3XHU1RjREXHU1RjUwXHU1RjU0XHU1RjU4XHU1RjVCXHU1RjYwXHU1RjYzXHU1RjY0XHU1RjY3XCJdLFxuW1wiOGZiZGExXCIsXCJcdTVGNkZcdTVGNzJcdTVGNzRcdTVGNzVcdTVGNzhcdTVGN0FcdTVGN0RcdTVGN0VcdTVGODlcdTVGOERcdTVGOEZcdTVGOTZcdTVGOUNcdTVGOURcdTVGQTJcdTVGQTdcdTVGQUJcdTVGQTRcdTVGQUNcdTVGQUZcdTVGQjBcdTVGQjFcdTVGQjhcdTVGQzRcdTVGQzdcdTVGQzhcdTVGQzlcdTVGQ0JcdTVGRDBcIiw0LFwiXHU1RkRFXHU1RkUxXHU1RkUyXHU1RkU4XHU1RkU5XHU1RkVBXHU1RkVDXHU1RkVEXHU1RkVFXHU1RkVGXHU1RkYyXHU1RkYzXHU1RkY2XHU1RkZBXHU1RkZDXHU2MDA3XHU2MDBBXHU2MDBEXHU2MDEzXHU2MDE0XHU2MDE3XHU2MDE4XHU2MDFBXHU2MDFGXHU2MDI0XHU2MDJEXHU2MDMzXHU2MDM1XHU2MDQwXHU2MDQ3XHU2MDQ4XHU2MDQ5XHU2MDRDXHU2MDUxXHU2MDU0XHU2MDU2XHU2MDU3XHU2MDVEXHU2MDYxXHU2MDY3XHU2MDcxXHU2MDdFXHU2MDdGXHU2MDgyXHU2MDg2XHU2MDg4XHU2MDhBXHU2MDhFXHU2MDkxXHU2MDkzXHU2MDk1XHU2MDk4XHU2MDlEXHU2MDlFXHU2MEEyXHU2MEE0XHU2MEE1XHU2MEE4XHU2MEIwXHU2MEIxXHU2MEI3XCJdLFxuW1wiOGZiZWExXCIsXCJcdTYwQkJcdTYwQkVcdTYwQzJcdTYwQzRcdTYwQzhcdTYwQzlcdTYwQ0FcdTYwQ0JcdTYwQ0VcdTYwQ0ZcdTYwRDRcdTYwRDVcdTYwRDlcdTYwREJcdTYwRERcdTYwREVcdTYwRTJcdTYwRTVcdTYwRjJcdTYwRjVcdTYwRjhcdTYwRkNcdTYwRkRcdTYxMDJcdTYxMDdcdTYxMEFcdTYxMENcdTYxMTBcIiw0LFwiXHU2MTE2XHU2MTE3XHU2MTE5XHU2MTFDXHU2MTFFXHU2MTIyXHU2MTJBXHU2MTJCXHU2MTMwXHU2MTMxXHU2MTM1XHU2MTM2XHU2MTM3XHU2MTM5XHU2MTQxXHU2MTQ1XHU2MTQ2XHU2MTQ5XHU2MTVFXHU2MTYwXHU2MTZDXHU2MTcyXHU2MTc4XHU2MTdCXHU2MTdDXHU2MTdGXHU2MTgwXHU2MTgxXHU2MTgzXHU2MTg0XHU2MThCXHU2MThEXHU2MTkyXHU2MTkzXHU2MTk3XHU2MTk4XHU2MTlDXHU2MTlEXHU2MTlGXHU2MUEwXHU2MUE1XHU2MUE4XHU2MUFBXHU2MUFEXHU2MUI4XHU2MUI5XHU2MUJDXHU2MUMwXHU2MUMxXHU2MUMyXHU2MUNFXHU2MUNGXHU2MUQ1XHU2MURDXHU2MUREXHU2MURFXHU2MURGXHU2MUUxXHU2MUUyXHU2MUU3XHU2MUU5XHU2MUU1XCJdLFxuW1wiOGZiZmExXCIsXCJcdTYxRUNcdTYxRURcdTYxRUZcdTYyMDFcdTYyMDNcdTYyMDRcdTYyMDdcdTYyMTNcdTYyMTVcdTYyMUNcdTYyMjBcdTYyMjJcdTYyMjNcdTYyMjdcdTYyMjlcdTYyMkJcdTYyMzlcdTYyM0RcdTYyNDJcdTYyNDNcdTYyNDRcdTYyNDZcdTYyNENcdTYyNTBcdTYyNTFcdTYyNTJcdTYyNTRcdTYyNTZcdTYyNUFcdTYyNUNcdTYyNjRcdTYyNkRcdTYyNkZcdTYyNzNcdTYyN0FcdTYyN0RcdTYyOERcdTYyOEVcdTYyOEZcdTYyOTBcdTYyQTZcdTYyQThcdTYyQjNcdTYyQjZcdTYyQjdcdTYyQkFcdTYyQkVcdTYyQkZcdTYyQzRcdTYyQ0VcdTYyRDVcdTYyRDZcdTYyREFcdTYyRUFcdTYyRjJcdTYyRjRcdTYyRkNcdTYyRkRcdTYzMDNcdTYzMDRcdTYzMEFcdTYzMEJcdTYzMERcdTYzMTBcdTYzMTNcdTYzMTZcdTYzMThcdTYzMjlcdTYzMkFcdTYzMkRcdTYzMzVcdTYzMzZcdTYzMzlcdTYzM0NcdTYzNDFcdTYzNDJcdTYzNDNcdTYzNDRcdTYzNDZcdTYzNEFcdTYzNEJcdTYzNEVcdTYzNTJcdTYzNTNcdTYzNTRcdTYzNThcdTYzNUJcdTYzNjVcdTYzNjZcdTYzNkNcdTYzNkRcdTYzNzFcdTYzNzRcdTYzNzVcIl0sXG5bXCI4ZmMwYTFcIixcIlx1NjM3OFx1NjM3Q1x1NjM3RFx1NjM3Rlx1NjM4Mlx1NjM4NFx1NjM4N1x1NjM4QVx1NjM5MFx1NjM5NFx1NjM5NVx1NjM5OVx1NjM5QVx1NjM5RVx1NjNBNFx1NjNBNlx1NjNBRFx1NjNBRVx1NjNBRlx1NjNCRFx1NjNDMVx1NjNDNVx1NjNDOFx1NjNDRVx1NjNEMVx1NjNEM1x1NjNENFx1NjNENVx1NjNEQ1x1NjNFMFx1NjNFNVx1NjNFQVx1NjNFQ1x1NjNGMlx1NjNGM1x1NjNGNVx1NjNGOFx1NjNGOVx1NjQwOVx1NjQwQVx1NjQxMFx1NjQxMlx1NjQxNFx1NjQxOFx1NjQxRVx1NjQyMFx1NjQyMlx1NjQyNFx1NjQyNVx1NjQyOVx1NjQyQVx1NjQyRlx1NjQzMFx1NjQzNVx1NjQzRFx1NjQzRlx1NjQ0Qlx1NjQ0Rlx1NjQ1MVx1NjQ1Mlx1NjQ1M1x1NjQ1NFx1NjQ1QVx1NjQ1Qlx1NjQ1Q1x1NjQ1RFx1NjQ1Rlx1NjQ2MFx1NjQ2MVx1NjQ2M1x1NjQ2RFx1NjQ3M1x1NjQ3NFx1NjQ3Qlx1NjQ3RFx1NjQ4NVx1NjQ4N1x1NjQ4Rlx1NjQ5MFx1NjQ5MVx1NjQ5OFx1NjQ5OVx1NjQ5Qlx1NjQ5RFx1NjQ5Rlx1NjRBMVx1NjRBM1x1NjRBNlx1NjRBOFx1NjRBQ1x1NjRCM1x1NjRCRFx1NjRCRVx1NjRCRlwiXSxcbltcIjhmYzFhMVwiLFwiXHU2NEM0XHU2NEM5XHU2NENBXHU2NENCXHU2NENDXHU2NENFXHU2NEQwXHU2NEQxXHU2NEQ1XHU2NEQ3XHU2NEU0XHU2NEU1XHU2NEU5XHU2NEVBXHU2NEVEXHU2NEYwXHU2NEY1XHU2NEY3XHU2NEZCXHU2NEZGXHU2NTAxXHU2NTA0XHU2NTA4XHU2NTA5XHU2NTBBXHU2NTBGXHU2NTEzXHU2NTE0XHU2NTE2XHU2NTE5XHU2NTFCXHU2NTFFXHU2NTFGXHU2NTIyXHU2NTI2XHU2NTI5XHU2NTJFXHU2NTMxXHU2NTNBXHU2NTNDXHU2NTNEXHU2NTQzXHU2NTQ3XHU2NTQ5XHU2NTUwXHU2NTUyXHU2NTU0XHU2NTVGXHU2NTYwXHU2NTY3XHU2NTZCXHU2NTdBXHU2NTdEXHU2NTgxXHU2NTg1XHU2NThBXHU2NTkyXHU2NTk1XHU2NTk4XHU2NTlEXHU2NUEwXHU2NUEzXHU2NUE2XHU2NUFFXHU2NUIyXHU2NUIzXHU2NUI0XHU2NUJGXHU2NUMyXHU2NUM4XHU2NUM5XHU2NUNFXHU2NUQwXHU2NUQ0XHU2NUQ2XHU2NUQ4XHU2NURGXHU2NUYwXHU2NUYyXHU2NUY0XHU2NUY1XHU2NUY5XHU2NUZFXHU2NUZGXHU2NjAwXHU2NjA0XHU2NjA4XHU2NjA5XHU2NjBEXHU2NjExXHU2NjEyXHU2NjE1XHU2NjE2XHU2NjFEXCJdLFxuW1wiOGZjMmExXCIsXCJcdTY2MUVcdTY2MjFcdTY2MjJcdTY2MjNcdTY2MjRcdTY2MjZcdTY2MjlcdTY2MkFcdTY2MkJcdTY2MkNcdTY2MkVcdTY2MzBcdTY2MzFcdTY2MzNcdTY2MzlcdTY2MzdcdTY2NDBcdTY2NDVcdTY2NDZcdTY2NEFcdTY2NENcdTY2NTFcdTY2NEVcdTY2NTdcdTY2NThcdTY2NTlcdTY2NUJcdTY2NUNcdTY2NjBcdTY2NjFcdTY2RkJcdTY2NkFcdTY2NkJcdTY2NkNcdTY2N0VcdTY2NzNcdTY2NzVcdTY2N0ZcdTY2NzdcdTY2NzhcdTY2NzlcdTY2N0JcdTY2ODBcdTY2N0NcdTY2OEJcdTY2OENcdTY2OERcdTY2OTBcdTY2OTJcdTY2OTlcdTY2OUFcdTY2OUJcdTY2OUNcdTY2OUZcdTY2QTBcdTY2QTRcdTY2QURcdTY2QjFcdTY2QjJcdTY2QjVcdTY2QkJcdTY2QkZcdTY2QzBcdTY2QzJcdTY2QzNcdTY2QzhcdTY2Q0NcdTY2Q0VcdTY2Q0ZcdTY2RDRcdTY2REJcdTY2REZcdTY2RThcdTY2RUJcdTY2RUNcdTY2RUVcdTY2RkFcdTY3MDVcdTY3MDdcdTY3MEVcdTY3MTNcdTY3MTlcdTY3MUNcdTY3MjBcdTY3MjJcdTY3MzNcdTY3M0VcdTY3NDVcdTY3NDdcdTY3NDhcdTY3NENcdTY3NTRcdTY3NTVcdTY3NURcIl0sXG5bXCI4ZmMzYTFcIixcIlx1Njc2Nlx1Njc2Q1x1Njc2RVx1Njc3NFx1Njc3Nlx1Njc3Qlx1Njc4MVx1Njc4NFx1Njc4RVx1Njc4Rlx1Njc5MVx1Njc5M1x1Njc5Nlx1Njc5OFx1Njc5OVx1Njc5Qlx1NjdCMFx1NjdCMVx1NjdCMlx1NjdCNVx1NjdCQlx1NjdCQ1x1NjdCRFx1NjdGOVx1NjdDMFx1NjdDMlx1NjdDM1x1NjdDNVx1NjdDOFx1NjdDOVx1NjdEMlx1NjdEN1x1NjdEOVx1NjdEQ1x1NjdFMVx1NjdFNlx1NjdGMFx1NjdGMlx1NjdGNlx1NjdGN1x1Njg1Mlx1NjgxNFx1NjgxOVx1NjgxRFx1NjgxRlx1NjgyOFx1NjgyN1x1NjgyQ1x1NjgyRFx1NjgyRlx1NjgzMFx1NjgzMVx1NjgzM1x1NjgzQlx1NjgzRlx1Njg0NFx1Njg0NVx1Njg0QVx1Njg0Q1x1Njg1NVx1Njg1N1x1Njg1OFx1Njg1Qlx1Njg2Qlx1Njg2RVwiLDQsXCJcdTY4NzVcdTY4NzlcdTY4N0FcdTY4N0JcdTY4N0NcdTY4ODJcdTY4ODRcdTY4ODZcdTY4ODhcdTY4OTZcdTY4OThcdTY4OUFcdTY4OUNcdTY4QTFcdTY4QTNcdTY4QTVcdTY4QTlcdTY4QUFcdTY4QUVcdTY4QjJcdTY4QkJcdTY4QzVcdTY4QzhcdTY4Q0NcdTY4Q0ZcIl0sXG5bXCI4ZmM0YTFcIixcIlx1NjhEMFx1NjhEMVx1NjhEM1x1NjhENlx1NjhEOVx1NjhEQ1x1NjhERFx1NjhFNVx1NjhFOFx1NjhFQVx1NjhFQlx1NjhFQ1x1NjhFRFx1NjhGMFx1NjhGMVx1NjhGNVx1NjhGNlx1NjhGQlx1NjhGQ1x1NjhGRFx1NjkwNlx1NjkwOVx1NjkwQVx1NjkxMFx1NjkxMVx1NjkxM1x1NjkxNlx1NjkxN1x1NjkzMVx1NjkzM1x1NjkzNVx1NjkzOFx1NjkzQlx1Njk0Mlx1Njk0NVx1Njk0OVx1Njk0RVx1Njk1N1x1Njk1Qlx1Njk2M1x1Njk2NFx1Njk2NVx1Njk2Nlx1Njk2OFx1Njk2OVx1Njk2Q1x1Njk3MFx1Njk3MVx1Njk3Mlx1Njk3QVx1Njk3Qlx1Njk3Rlx1Njk4MFx1Njk4RFx1Njk5Mlx1Njk5Nlx1Njk5OFx1NjlBMVx1NjlBNVx1NjlBNlx1NjlBOFx1NjlBQlx1NjlBRFx1NjlBRlx1NjlCN1x1NjlCOFx1NjlCQVx1NjlCQ1x1NjlDNVx1NjlDOFx1NjlEMVx1NjlENlx1NjlEN1x1NjlFMlx1NjlFNVx1NjlFRVx1NjlFRlx1NjlGMVx1NjlGM1x1NjlGNVx1NjlGRVx1NkEwMFx1NkEwMVx1NkEwM1x1NkEwRlx1NkExMVx1NkExNVx1NkExQVx1NkExRFx1NkEyMFx1NkEyNFx1NkEyOFx1NkEzMFx1NkEzMlwiXSxcbltcIjhmYzVhMVwiLFwiXHU2QTM0XHU2QTM3XHU2QTNCXHU2QTNFXHU2QTNGXHU2QTQ1XHU2QTQ2XHU2QTQ5XHU2QTRBXHU2QTRFXHU2QTUwXHU2QTUxXHU2QTUyXHU2QTU1XHU2QTU2XHU2QTVCXHU2QTY0XHU2QTY3XHU2QTZBXHU2QTcxXHU2QTczXHU2QTdFXHU2QTgxXHU2QTgzXHU2QTg2XHU2QTg3XHU2QTg5XHU2QThCXHU2QTkxXHU2QTlCXHU2QTlEXHU2QTlFXHU2QTlGXHU2QUE1XHU2QUFCXHU2QUFGXHU2QUIwXHU2QUIxXHU2QUI0XHU2QUJEXHU2QUJFXHU2QUJGXHU2QUM2XHU2QUM5XHU2QUM4XHU2QUNDXHU2QUQwXHU2QUQ0XHU2QUQ1XHU2QUQ2XHU2QURDXHU2QUREXHU2QUU0XHU2QUU3XHU2QUVDXHU2QUYwXHU2QUYxXHU2QUYyXHU2QUZDXHU2QUZEXHU2QjAyXHU2QjAzXHU2QjA2XHU2QjA3XHU2QjA5XHU2QjBGXHU2QjEwXHU2QjExXHU2QjE3XHU2QjFCXHU2QjFFXHU2QjI0XHU2QjI4XHU2QjJCXHU2QjJDXHU2QjJGXHU2QjM1XHU2QjM2XHU2QjNCXHU2QjNGXHU2QjQ2XHU2QjRBXHU2QjREXHU2QjUyXHU2QjU2XHU2QjU4XHU2QjVEXHU2QjYwXHU2QjY3XHU2QjZCXHU2QjZFXHU2QjcwXHU2Qjc1XHU2QjdEXCJdLFxuW1wiOGZjNmExXCIsXCJcdTZCN0VcdTZCODJcdTZCODVcdTZCOTdcdTZCOUJcdTZCOUZcdTZCQTBcdTZCQTJcdTZCQTNcdTZCQThcdTZCQTlcdTZCQUNcdTZCQURcdTZCQUVcdTZCQjBcdTZCQjhcdTZCQjlcdTZCQkRcdTZCQkVcdTZCQzNcdTZCQzRcdTZCQzlcdTZCQ0NcdTZCRDZcdTZCREFcdTZCRTFcdTZCRTNcdTZCRTZcdTZCRTdcdTZCRUVcdTZCRjFcdTZCRjdcdTZCRjlcdTZCRkZcdTZDMDJcdTZDMDRcdTZDMDVcdTZDMDlcdTZDMERcdTZDMEVcdTZDMTBcdTZDMTJcdTZDMTlcdTZDMUZcdTZDMjZcdTZDMjdcdTZDMjhcdTZDMkNcdTZDMkVcdTZDMzNcdTZDMzVcdTZDMzZcdTZDM0FcdTZDM0JcdTZDM0ZcdTZDNEFcdTZDNEJcdTZDNERcdTZDNEZcdTZDNTJcdTZDNTRcdTZDNTlcdTZDNUJcdTZDNUNcdTZDNkJcdTZDNkRcdTZDNkZcdTZDNzRcdTZDNzZcdTZDNzhcdTZDNzlcdTZDN0JcdTZDODVcdTZDODZcdTZDODdcdTZDODlcdTZDOTRcdTZDOTVcdTZDOTdcdTZDOThcdTZDOUNcdTZDOUZcdTZDQjBcdTZDQjJcdTZDQjRcdTZDQzJcdTZDQzZcdTZDQ0RcdTZDQ0ZcdTZDRDBcdTZDRDFcdTZDRDJcdTZDRDRcdTZDRDZcIl0sXG5bXCI4ZmM3YTFcIixcIlx1NkNEQVx1NkNEQ1x1NkNFMFx1NkNFN1x1NkNFOVx1NkNFQlx1NkNFQ1x1NkNFRVx1NkNGMlx1NkNGNFx1NkQwNFx1NkQwN1x1NkQwQVx1NkQwRVx1NkQwRlx1NkQxMVx1NkQxM1x1NkQxQVx1NkQyNlx1NkQyN1x1NkQyOFx1NkM2N1x1NkQyRVx1NkQyRlx1NkQzMVx1NkQzOVx1NkQzQ1x1NkQzRlx1NkQ1N1x1NkQ1RVx1NkQ1Rlx1NkQ2MVx1NkQ2NVx1NkQ2N1x1NkQ2Rlx1NkQ3MFx1NkQ3Q1x1NkQ4Mlx1NkQ4N1x1NkQ5MVx1NkQ5Mlx1NkQ5NFx1NkQ5Nlx1NkQ5N1x1NkQ5OFx1NkRBQVx1NkRBQ1x1NkRCNFx1NkRCN1x1NkRCOVx1NkRCRFx1NkRCRlx1NkRDNFx1NkRDOFx1NkRDQVx1NkRDRVx1NkRDRlx1NkRENlx1NkREQlx1NkRERFx1NkRERlx1NkRFMFx1NkRFMlx1NkRFNVx1NkRFOVx1NkRFRlx1NkRGMFx1NkRGNFx1NkRGNlx1NkRGQ1x1NkUwMFx1NkUwNFx1NkUxRVx1NkUyMlx1NkUyN1x1NkUzMlx1NkUzNlx1NkUzOVx1NkUzQlx1NkUzQ1x1NkU0NFx1NkU0NVx1NkU0OFx1NkU0OVx1NkU0Qlx1NkU0Rlx1NkU1MVx1NkU1Mlx1NkU1M1x1NkU1NFx1NkU1N1x1NkU1Q1x1NkU1RFx1NkU1RVwiXSxcbltcIjhmYzhhMVwiLFwiXHU2RTYyXHU2RTYzXHU2RTY4XHU2RTczXHU2RTdCXHU2RTdEXHU2RThEXHU2RTkzXHU2RTk5XHU2RUEwXHU2RUE3XHU2RUFEXHU2RUFFXHU2RUIxXHU2RUIzXHU2RUJCXHU2RUJGXHU2RUMwXHU2RUMxXHU2RUMzXHU2RUM3XHU2RUM4XHU2RUNBXHU2RUNEXHU2RUNFXHU2RUNGXHU2RUVCXHU2RUVEXHU2RUVFXHU2RUY5XHU2RUZCXHU2RUZEXHU2RjA0XHU2RjA4XHU2RjBBXHU2RjBDXHU2RjBEXHU2RjE2XHU2RjE4XHU2RjFBXHU2RjFCXHU2RjI2XHU2RjI5XHU2RjJBXHU2RjJGXHU2RjMwXHU2RjMzXHU2RjM2XHU2RjNCXHU2RjNDXHU2RjJEXHU2RjRGXHU2RjUxXHU2RjUyXHU2RjUzXHU2RjU3XHU2RjU5XHU2RjVBXHU2RjVEXHU2RjVFXHU2RjYxXHU2RjYyXHU2RjY4XHU2RjZDXHU2RjdEXHU2RjdFXHU2RjgzXHU2Rjg3XHU2Rjg4XHU2RjhCXHU2RjhDXHU2RjhEXHU2RjkwXHU2RjkyXHU2RjkzXHU2Rjk0XHU2Rjk2XHU2RjlBXHU2RjlGXHU2RkEwXHU2RkE1XHU2RkE2XHU2RkE3XHU2RkE4XHU2RkFFXHU2RkFGXHU2RkIwXHU2RkI1XHU2RkI2XHU2RkJDXHU2RkM1XHU2RkM3XHU2RkM4XHU2RkNBXCJdLFxuW1wiOGZjOWExXCIsXCJcdTZGREFcdTZGREVcdTZGRThcdTZGRTlcdTZGRjBcdTZGRjVcdTZGRjlcdTZGRkNcdTZGRkRcdTcwMDBcdTcwMDVcdTcwMDZcdTcwMDdcdTcwMERcdTcwMTdcdTcwMjBcdTcwMjNcdTcwMkZcdTcwMzRcdTcwMzdcdTcwMzlcdTcwM0NcdTcwNDNcdTcwNDRcdTcwNDhcdTcwNDlcdTcwNEFcdTcwNEJcdTcwNTRcdTcwNTVcdTcwNURcdTcwNUVcdTcwNEVcdTcwNjRcdTcwNjVcdTcwNkNcdTcwNkVcdTcwNzVcdTcwNzZcdTcwN0VcdTcwODFcdTcwODVcdTcwODZcdTcwOTRcIiw0LFwiXHU3MDlCXHU3MEE0XHU3MEFCXHU3MEIwXHU3MEIxXHU3MEI0XHU3MEI3XHU3MENBXHU3MEQxXHU3MEQzXHU3MEQ0XHU3MEQ1XHU3MEQ2XHU3MEQ4XHU3MERDXHU3MEU0XHU3MEZBXHU3MTAzXCIsNCxcIlx1NzEwQlx1NzEwQ1x1NzEwRlx1NzExRVx1NzEyMFx1NzEyQlx1NzEyRFx1NzEyRlx1NzEzMFx1NzEzMVx1NzEzOFx1NzE0MVx1NzE0NVx1NzE0Nlx1NzE0N1x1NzE0QVx1NzE0Qlx1NzE1MFx1NzE1Mlx1NzE1N1x1NzE1QVx1NzE1Q1x1NzE1RVx1NzE2MFwiXSxcbltcIjhmY2FhMVwiLFwiXHU3MTY4XHU3MTc5XHU3MTgwXHU3MTg1XHU3MTg3XHU3MThDXHU3MTkyXHU3MTlBXHU3MTlCXHU3MUEwXHU3MUEyXHU3MUFGXHU3MUIwXHU3MUIyXHU3MUIzXHU3MUJBXHU3MUJGXHU3MUMwXHU3MUMxXHU3MUM0XHU3MUNCXHU3MUNDXHU3MUQzXHU3MUQ2XHU3MUQ5XHU3MURBXHU3MURDXHU3MUY4XHU3MUZFXHU3MjAwXHU3MjA3XHU3MjA4XHU3MjA5XHU3MjEzXHU3MjE3XHU3MjFBXHU3MjFEXHU3MjFGXHU3MjI0XHU3MjJCXHU3MjJGXHU3MjM0XHU3MjM4XHU3MjM5XHU3MjQxXHU3MjQyXHU3MjQzXHU3MjQ1XHU3MjRFXHU3MjRGXHU3MjUwXHU3MjUzXHU3MjU1XHU3MjU2XHU3MjVBXHU3MjVDXHU3MjVFXHU3MjYwXHU3MjYzXHU3MjY4XHU3MjZCXHU3MjZFXHU3MjZGXHU3MjcxXHU3Mjc3XHU3Mjc4XHU3MjdCXHU3MjdDXHU3MjdGXHU3Mjg0XHU3Mjg5XHU3MjhEXHU3MjhFXHU3MjkzXHU3MjlCXHU3MkE4XHU3MkFEXHU3MkFFXHU3MkIxXHU3MkI0XHU3MkJFXHU3MkMxXHU3MkM3XHU3MkM5XHU3MkNDXHU3MkQ1XHU3MkQ2XHU3MkQ4XHU3MkRGXHU3MkU1XHU3MkYzXHU3MkY0XHU3MkZBXHU3MkZCXCJdLFxuW1wiOGZjYmExXCIsXCJcdTcyRkVcdTczMDJcdTczMDRcdTczMDVcdTczMDdcdTczMEJcdTczMERcdTczMTJcdTczMTNcdTczMThcdTczMTlcdTczMUVcdTczMjJcdTczMjRcdTczMjdcdTczMjhcdTczMkNcdTczMzFcdTczMzJcdTczMzVcdTczM0FcdTczM0JcdTczM0RcdTczNDNcdTczNERcdTczNTBcdTczNTJcdTczNTZcdTczNThcdTczNURcdTczNUVcdTczNUZcdTczNjBcdTczNjZcdTczNjdcdTczNjlcdTczNkJcdTczNkNcdTczNkVcdTczNkZcdTczNzFcdTczNzdcdTczNzlcdTczN0NcdTczODBcdTczODFcdTczODNcdTczODVcdTczODZcdTczOEVcdTczOTBcdTczOTNcdTczOTVcdTczOTdcdTczOThcdTczOUNcdTczOUVcdTczOUZcdTczQTBcdTczQTJcdTczQTVcdTczQTZcdTczQUFcdTczQUJcdTczQURcdTczQjVcdTczQjdcdTczQjlcdTczQkNcdTczQkRcdTczQkZcdTczQzVcdTczQzZcdTczQzlcdTczQ0JcdTczQ0NcdTczQ0ZcdTczRDJcdTczRDNcdTczRDZcdTczRDlcdTczRERcdTczRTFcdTczRTNcdTczRTZcdTczRTdcdTczRTlcdTczRjRcdTczRjVcdTczRjdcdTczRjlcdTczRkFcdTczRkJcdTczRkRcIl0sXG5bXCI4ZmNjYTFcIixcIlx1NzNGRlx1NzQwMFx1NzQwMVx1NzQwNFx1NzQwN1x1NzQwQVx1NzQxMVx1NzQxQVx1NzQxQlx1NzQyNFx1NzQyNlx1NzQyOFwiLDksXCJcdTc0MzlcdTc0NDBcdTc0NDNcdTc0NDRcdTc0NDZcdTc0NDdcdTc0NEJcdTc0NERcdTc0NTFcdTc0NTJcdTc0NTdcdTc0NURcdTc0NjJcdTc0NjZcdTc0NjdcdTc0NjhcdTc0NkJcdTc0NkRcdTc0NkVcdTc0NzFcdTc0NzJcdTc0ODBcdTc0ODFcdTc0ODVcdTc0ODZcdTc0ODdcdTc0ODlcdTc0OEZcdTc0OTBcdTc0OTFcdTc0OTJcdTc0OThcdTc0OTlcdTc0OUFcdTc0OUNcdTc0OUZcdTc0QTBcdTc0QTFcdTc0QTNcdTc0QTZcdTc0QThcdTc0QTlcdTc0QUFcdTc0QUJcdTc0QUVcdTc0QUZcdTc0QjFcdTc0QjJcdTc0QjVcdTc0QjlcdTc0QkJcdTc0QkZcdTc0QzhcdTc0QzlcdTc0Q0NcdTc0RDBcdTc0RDNcdTc0RDhcdTc0REFcdTc0REJcdTc0REVcdTc0REZcdTc0RTRcdTc0RThcdTc0RUFcdTc0RUJcdTc0RUZcdTc0RjRcdTc0RkFcdTc0RkJcdTc0RkNcdTc0RkZcdTc1MDZcIl0sXG5bXCI4ZmNkYTFcIixcIlx1NzUxMlx1NzUxNlx1NzUxN1x1NzUyMFx1NzUyMVx1NzUyNFx1NzUyN1x1NzUyOVx1NzUyQVx1NzUyRlx1NzUzNlx1NzUzOVx1NzUzRFx1NzUzRVx1NzUzRlx1NzU0MFx1NzU0M1x1NzU0N1x1NzU0OFx1NzU0RVx1NzU1MFx1NzU1Mlx1NzU1N1x1NzU1RVx1NzU1Rlx1NzU2MVx1NzU2Rlx1NzU3MVx1NzU3OVwiLDUsXCJcdTc1ODFcdTc1ODVcdTc1OTBcdTc1OTJcdTc1OTNcdTc1OTVcdTc1OTlcdTc1OUNcdTc1QTJcdTc1QTRcdTc1QjRcdTc1QkFcdTc1QkZcdTc1QzBcdTc1QzFcdTc1QzRcdTc1QzZcdTc1Q0NcdTc1Q0VcdTc1Q0ZcdTc1RDdcdTc1RENcdTc1REZcdTc1RTBcdTc1RTFcdTc1RTRcdTc1RTdcdTc1RUNcdTc1RUVcdTc1RUZcdTc1RjFcdTc1RjlcdTc2MDBcdTc2MDJcdTc2MDNcdTc2MDRcdTc2MDdcdTc2MDhcdTc2MEFcdTc2MENcdTc2MEZcdTc2MTJcdTc2MTNcdTc2MTVcdTc2MTZcdTc2MTlcdTc2MUJcdTc2MUNcdTc2MURcdTc2MUVcdTc2MjNcdTc2MjVcdTc2MjZcdTc2MjlcdTc2MkRcdTc2MzJcdTc2MzNcdTc2MzVcdTc2MzhcdTc2MzlcIl0sXG5bXCI4ZmNlYTFcIixcIlx1NzYzQVx1NzYzQ1x1NzY0QVx1NzY0MFx1NzY0MVx1NzY0M1x1NzY0NFx1NzY0NVx1NzY0OVx1NzY0Qlx1NzY1NVx1NzY1OVx1NzY1Rlx1NzY2NFx1NzY2NVx1NzY2RFx1NzY2RVx1NzY2Rlx1NzY3MVx1NzY3NFx1NzY4MVx1NzY4NVx1NzY4Q1x1NzY4RFx1NzY5NVx1NzY5Qlx1NzY5Q1x1NzY5RFx1NzY5Rlx1NzZBMFx1NzZBMlwiLDYsXCJcdTc2QUFcdTc2QURcdTc2QkRcdTc2QzFcdTc2QzVcdTc2QzlcdTc2Q0JcdTc2Q0NcdTc2Q0VcdTc2RDRcdTc2RDlcdTc2RTBcdTc2RTZcdTc2RThcdTc2RUNcdTc2RjBcdTc2RjFcdTc2RjZcdTc2RjlcdTc2RkNcdTc3MDBcdTc3MDZcdTc3MEFcdTc3MEVcdTc3MTJcdTc3MTRcdTc3MTVcdTc3MTdcdTc3MTlcdTc3MUFcdTc3MUNcdTc3MjJcdTc3MjhcdTc3MkRcdTc3MkVcdTc3MkZcdTc3MzRcdTc3MzVcdTc3MzZcdTc3MzlcdTc3M0RcdTc3M0VcdTc3NDJcdTc3NDVcdTc3NDZcdTc3NEFcdTc3NERcdTc3NEVcdTc3NEZcdTc3NTJcdTc3NTZcdTc3NTdcdTc3NUNcdTc3NUVcdTc3NUZcdTc3NjBcdTc3NjJcIl0sXG5bXCI4ZmNmYTFcIixcIlx1Nzc2NFx1Nzc2N1x1Nzc2QVx1Nzc2Q1x1Nzc3MFx1Nzc3Mlx1Nzc3M1x1Nzc3NFx1Nzc3QVx1Nzc3RFx1Nzc4MFx1Nzc4NFx1Nzc4Q1x1Nzc4RFx1Nzc5NFx1Nzc5NVx1Nzc5Nlx1Nzc5QVx1Nzc5Rlx1NzdBMlx1NzdBN1x1NzdBQVx1NzdBRVx1NzdBRlx1NzdCMVx1NzdCNVx1NzdCRVx1NzdDM1x1NzdDOVx1NzdEMVx1NzdEMlx1NzdENVx1NzdEOVx1NzdERVx1NzdERlx1NzdFMFx1NzdFNFx1NzdFNlx1NzdFQVx1NzdFQ1x1NzdGMFx1NzdGMVx1NzdGNFx1NzdGOFx1NzdGQlx1NzgwNVx1NzgwNlx1NzgwOVx1NzgwRFx1NzgwRVx1NzgxMVx1NzgxRFx1NzgyMVx1NzgyMlx1NzgyM1x1NzgyRFx1NzgyRVx1NzgzMFx1NzgzNVx1NzgzN1x1Nzg0M1x1Nzg0NFx1Nzg0N1x1Nzg0OFx1Nzg0Q1x1Nzg0RVx1Nzg1Mlx1Nzg1Q1x1Nzg1RVx1Nzg2MFx1Nzg2MVx1Nzg2M1x1Nzg2NFx1Nzg2OFx1Nzg2QVx1Nzg2RVx1Nzg3QVx1Nzg3RVx1Nzg4QVx1Nzg4Rlx1Nzg5NFx1Nzg5OFx1NzhBMVx1Nzg5RFx1Nzg5RVx1Nzg5Rlx1NzhBNFx1NzhBOFx1NzhBQ1x1NzhBRFx1NzhCMFx1NzhCMVx1NzhCMlx1NzhCM1wiXSxcbltcIjhmZDBhMVwiLFwiXHU3OEJCXHU3OEJEXHU3OEJGXHU3OEM3XHU3OEM4XHU3OEM5XHU3OENDXHU3OENFXHU3OEQyXHU3OEQzXHU3OEQ1XHU3OEQ2XHU3OEU0XHU3OERCXHU3OERGXHU3OEUwXHU3OEUxXHU3OEU2XHU3OEVBXHU3OEYyXHU3OEYzXHU3OTAwXHU3OEY2XHU3OEY3XHU3OEZBXHU3OEZCXHU3OEZGXHU3OTA2XHU3OTBDXHU3OTEwXHU3OTFBXHU3OTFDXHU3OTFFXHU3OTFGXHU3OTIwXHU3OTI1XHU3OTI3XHU3OTI5XHU3OTJEXHU3OTMxXHU3OTM0XHU3OTM1XHU3OTNCXHU3OTNEXHU3OTNGXHU3OTQ0XHU3OTQ1XHU3OTQ2XHU3OTRBXHU3OTRCXHU3OTRGXHU3OTUxXHU3OTU0XHU3OTU4XHU3OTVCXHU3OTVDXHU3OTY3XHU3OTY5XHU3OTZCXHU3OTcyXHU3OTc5XHU3OTdCXHU3OTdDXHU3OTdFXHU3OThCXHU3OThDXHU3OTkxXHU3OTkzXHU3OTk0XHU3OTk1XHU3OTk2XHU3OTk4XHU3OTlCXHU3OTlDXHU3OUExXHU3OUE4XHU3OUE5XHU3OUFCXHU3OUFGXHU3OUIxXHU3OUI0XHU3OUI4XHU3OUJCXHU3OUMyXHU3OUM0XHU3OUM3XHU3OUM4XHU3OUNBXHU3OUNGXHU3OUQ0XHU3OUQ2XHU3OURBXHU3OUREXHU3OURFXCJdLFxuW1wiOGZkMWExXCIsXCJcdTc5RTBcdTc5RTJcdTc5RTVcdTc5RUFcdTc5RUJcdTc5RURcdTc5RjFcdTc5RjhcdTc5RkNcdTdBMDJcdTdBMDNcdTdBMDdcdTdBMDlcdTdBMEFcdTdBMENcdTdBMTFcdTdBMTVcdTdBMUJcdTdBMUVcdTdBMjFcdTdBMjdcdTdBMkJcdTdBMkRcdTdBMkZcdTdBMzBcdTdBMzRcdTdBMzVcdTdBMzhcdTdBMzlcdTdBM0FcdTdBNDRcdTdBNDVcdTdBNDdcdTdBNDhcdTdBNENcdTdBNTVcdTdBNTZcdTdBNTlcdTdBNUNcdTdBNURcdTdBNUZcdTdBNjBcdTdBNjVcdTdBNjdcdTdBNkFcdTdBNkRcdTdBNzVcdTdBNzhcdTdBN0VcdTdBODBcdTdBODJcdTdBODVcdTdBODZcdTdBOEFcdTdBOEJcdTdBOTBcdTdBOTFcdTdBOTRcdTdBOUVcdTdBQTBcdTdBQTNcdTdBQUNcdTdBQjNcdTdBQjVcdTdBQjlcdTdBQkJcdTdBQkNcdTdBQzZcdTdBQzlcdTdBQ0NcdTdBQ0VcdTdBRDFcdTdBREJcdTdBRThcdTdBRTlcdTdBRUJcdTdBRUNcdTdBRjFcdTdBRjRcdTdBRkJcdTdBRkRcdTdBRkVcdTdCMDdcdTdCMTRcdTdCMUZcdTdCMjNcdTdCMjdcdTdCMjlcdTdCMkFcdTdCMkJcdTdCMkRcdTdCMkVcdTdCMkZcdTdCMzBcIl0sXG5bXCI4ZmQyYTFcIixcIlx1N0IzMVx1N0IzNFx1N0IzRFx1N0IzRlx1N0I0MFx1N0I0MVx1N0I0N1x1N0I0RVx1N0I1NVx1N0I2MFx1N0I2NFx1N0I2Nlx1N0I2OVx1N0I2QVx1N0I2RFx1N0I2Rlx1N0I3Mlx1N0I3M1x1N0I3N1x1N0I4NFx1N0I4OVx1N0I4RVx1N0I5MFx1N0I5MVx1N0I5Nlx1N0I5Qlx1N0I5RVx1N0JBMFx1N0JBNVx1N0JBQ1x1N0JBRlx1N0JCMFx1N0JCMlx1N0JCNVx1N0JCNlx1N0JCQVx1N0JCQlx1N0JCQ1x1N0JCRFx1N0JDMlx1N0JDNVx1N0JDOFx1N0JDQVx1N0JENFx1N0JENlx1N0JEN1x1N0JEOVx1N0JEQVx1N0JEQlx1N0JFOFx1N0JFQVx1N0JGMlx1N0JGNFx1N0JGNVx1N0JGOFx1N0JGOVx1N0JGQVx1N0JGQ1x1N0JGRVx1N0MwMVx1N0MwMlx1N0MwM1x1N0MwNFx1N0MwNlx1N0MwOVx1N0MwQlx1N0MwQ1x1N0MwRVx1N0MwRlx1N0MxOVx1N0MxQlx1N0MyMFx1N0MyNVx1N0MyNlx1N0MyOFx1N0MyQ1x1N0MzMVx1N0MzM1x1N0MzNFx1N0MzNlx1N0MzOVx1N0MzQVx1N0M0Nlx1N0M0QVx1N0M1NVx1N0M1MVx1N0M1Mlx1N0M1M1x1N0M1OVwiLDVdLFxuW1wiOGZkM2ExXCIsXCJcdTdDNjFcdTdDNjNcdTdDNjdcdTdDNjlcdTdDNkRcdTdDNkVcdTdDNzBcdTdDNzJcdTdDNzlcdTdDN0NcdTdDN0RcdTdDODZcdTdDODdcdTdDOEZcdTdDOTRcdTdDOUVcdTdDQTBcdTdDQTZcdTdDQjBcdTdDQjZcdTdDQjdcdTdDQkFcdTdDQkJcdTdDQkNcdTdDQkZcdTdDQzRcdTdDQzdcdTdDQzhcdTdDQzlcdTdDQ0RcdTdDQ0ZcdTdDRDNcdTdDRDRcdTdDRDVcdTdDRDdcdTdDRDlcdTdDREFcdTdDRERcdTdDRTZcdTdDRTlcdTdDRUJcdTdDRjVcdTdEMDNcdTdEMDdcdTdEMDhcdTdEMDlcdTdEMEZcdTdEMTFcdTdEMTJcdTdEMTNcdTdEMTZcdTdEMURcdTdEMUVcdTdEMjNcdTdEMjZcdTdEMkFcdTdEMkRcdTdEMzFcdTdEM0NcdTdEM0RcdTdEM0VcdTdENDBcdTdENDFcdTdENDdcdTdENDhcdTdENERcdTdENTFcdTdENTNcdTdENTdcdTdENTlcdTdENUFcdTdENUNcdTdENURcdTdENjVcdTdENjdcdTdENkFcdTdENzBcdTdENzhcdTdEN0FcdTdEN0JcdTdEN0ZcdTdEODFcdTdEODJcdTdEODNcdTdEODVcdTdEODZcdTdEODhcdTdEOEJcdTdEOENcdTdEOERcdTdEOTFcdTdEOTZcdTdEOTdcdTdEOURcIl0sXG5bXCI4ZmQ0YTFcIixcIlx1N0Q5RVx1N0RBNlx1N0RBN1x1N0RBQVx1N0RCM1x1N0RCNlx1N0RCN1x1N0RCOVx1N0RDMlwiLDQsXCJcdTdEQ0NcdTdEQ0RcdTdEQ0VcdTdERDdcdTdERDlcdTdFMDBcdTdERTJcdTdERTVcdTdERTZcdTdERUFcdTdERUJcdTdERURcdTdERjFcdTdERjVcdTdERjZcdTdERjlcdTdERkFcdTdFMDhcdTdFMTBcdTdFMTFcdTdFMTVcdTdFMTdcdTdFMUNcdTdFMURcdTdFMjBcdTdFMjdcdTdFMjhcdTdFMkNcdTdFMkRcdTdFMkZcdTdFMzNcdTdFMzZcdTdFM0ZcdTdFNDRcdTdFNDVcdTdFNDdcdTdFNEVcdTdFNTBcdTdFNTJcdTdFNThcdTdFNUZcdTdFNjFcdTdFNjJcdTdFNjVcdTdFNkJcdTdFNkVcdTdFNkZcdTdFNzNcdTdFNzhcdTdFN0VcdTdFODFcdTdFODZcdTdFODdcdTdFOEFcdTdFOERcdTdFOTFcdTdFOTVcdTdFOThcdTdFOUFcdTdFOURcdTdFOUVcdTdGM0NcdTdGM0JcdTdGM0RcdTdGM0VcdTdGM0ZcdTdGNDNcdTdGNDRcdTdGNDdcdTdGNEZcdTdGNTJcdTdGNTNcdTdGNUJcdTdGNUNcdTdGNURcdTdGNjFcdTdGNjNcdTdGNjRcdTdGNjVcdTdGNjZcdTdGNkRcIl0sXG5bXCI4ZmQ1YTFcIixcIlx1N0Y3MVx1N0Y3RFx1N0Y3RVx1N0Y3Rlx1N0Y4MFx1N0Y4Qlx1N0Y4RFx1N0Y4Rlx1N0Y5MFx1N0Y5MVx1N0Y5Nlx1N0Y5N1x1N0Y5Q1x1N0ZBMVx1N0ZBMlx1N0ZBNlx1N0ZBQVx1N0ZBRFx1N0ZCNFx1N0ZCQ1x1N0ZCRlx1N0ZDMFx1N0ZDM1x1N0ZDOFx1N0ZDRVx1N0ZDRlx1N0ZEQlx1N0ZERlx1N0ZFM1x1N0ZFNVx1N0ZFOFx1N0ZFQ1x1N0ZFRVx1N0ZFRlx1N0ZGMlx1N0ZGQVx1N0ZGRFx1N0ZGRVx1N0ZGRlx1ODAwN1x1ODAwOFx1ODAwQVx1ODAwRFx1ODAwRVx1ODAwRlx1ODAxMVx1ODAxM1x1ODAxNFx1ODAxNlx1ODAxRFx1ODAxRVx1ODAxRlx1ODAyMFx1ODAyNFx1ODAyNlx1ODAyQ1x1ODAyRVx1ODAzMFx1ODAzNFx1ODAzNVx1ODAzN1x1ODAzOVx1ODAzQVx1ODAzQ1x1ODAzRVx1ODA0MFx1ODA0NFx1ODA2MFx1ODA2NFx1ODA2Nlx1ODA2RFx1ODA3MVx1ODA3NVx1ODA4MVx1ODA4OFx1ODA4RVx1ODA5Q1x1ODA5RVx1ODBBNlx1ODBBN1x1ODBBQlx1ODBCOFx1ODBCOVx1ODBDOFx1ODBDRFx1ODBDRlx1ODBEMlx1ODBENFx1ODBENVx1ODBEN1x1ODBEOFx1ODBFMFx1ODBFRFx1ODBFRVwiXSxcbltcIjhmZDZhMVwiLFwiXHU4MEYwXHU4MEYyXHU4MEYzXHU4MEY2XHU4MEY5XHU4MEZBXHU4MEZFXHU4MTAzXHU4MTBCXHU4MTE2XHU4MTE3XHU4MTE4XHU4MTFDXHU4MTFFXHU4MTIwXHU4MTI0XHU4MTI3XHU4MTJDXHU4MTMwXHU4MTM1XHU4MTNBXHU4MTNDXHU4MTQ1XHU4MTQ3XHU4MTRBXHU4MTRDXHU4MTUyXHU4MTU3XHU4MTYwXHU4MTYxXHU4MTY3XHU4MTY4XHU4MTY5XHU4MTZEXHU4MTZGXHU4MTc3XHU4MTgxXHU4MTkwXHU4MTg0XHU4MTg1XHU4MTg2XHU4MThCXHU4MThFXHU4MTk2XHU4MTk4XHU4MTlCXHU4MTlFXHU4MUEyXHU4MUFFXHU4MUIyXHU4MUI0XHU4MUJCXHU4MUNCXHU4MUMzXHU4MUM1XHU4MUNBXHU4MUNFXHU4MUNGXHU4MUQ1XHU4MUQ3XHU4MURCXHU4MUREXHU4MURFXHU4MUUxXHU4MUU0XHU4MUVCXHU4MUVDXHU4MUYwXHU4MUYxXHU4MUYyXHU4MUY1XHU4MUY2XHU4MUY4XHU4MUY5XHU4MUZEXHU4MUZGXHU4MjAwXHU4MjAzXHU4MjBGXHU4MjEzXHU4MjE0XHU4MjE5XHU4MjFBXHU4MjFEXHU4MjIxXHU4MjIyXHU4MjI4XHU4MjMyXHU4MjM0XHU4MjNBXHU4MjQzXHU4MjQ0XHU4MjQ1XHU4MjQ2XCJdLFxuW1wiOGZkN2ExXCIsXCJcdTgyNEJcdTgyNEVcdTgyNEZcdTgyNTFcdTgyNTZcdTgyNUNcdTgyNjBcdTgyNjNcdTgyNjdcdTgyNkRcdTgyNzRcdTgyN0JcdTgyN0RcdTgyN0ZcdTgyODBcdTgyODFcdTgyODNcdTgyODRcdTgyODdcdTgyODlcdTgyOEFcdTgyOEVcdTgyOTFcdTgyOTRcdTgyOTZcdTgyOThcdTgyOUFcdTgyOUJcdTgyQTBcdTgyQTFcdTgyQTNcdTgyQTRcdTgyQTdcdTgyQThcdTgyQTlcdTgyQUFcdTgyQUVcdTgyQjBcdTgyQjJcdTgyQjRcdTgyQjdcdTgyQkFcdTgyQkNcdTgyQkVcdTgyQkZcdTgyQzZcdTgyRDBcdTgyRDVcdTgyREFcdTgyRTBcdTgyRTJcdTgyRTRcdTgyRThcdTgyRUFcdTgyRURcdTgyRUZcdTgyRjZcdTgyRjdcdTgyRkRcdTgyRkVcdTgzMDBcdTgzMDFcdTgzMDdcdTgzMDhcdTgzMEFcdTgzMEJcdTgzNTRcdTgzMUJcdTgzMURcdTgzMUVcdTgzMUZcdTgzMjFcdTgzMjJcdTgzMkNcdTgzMkRcdTgzMkVcdTgzMzBcdTgzMzNcdTgzMzdcdTgzM0FcdTgzM0NcdTgzM0RcdTgzNDJcdTgzNDNcdTgzNDRcdTgzNDdcdTgzNERcdTgzNEVcdTgzNTFcdTgzNTVcdTgzNTZcdTgzNTdcdTgzNzBcdTgzNzhcIl0sXG5bXCI4ZmQ4YTFcIixcIlx1ODM3RFx1ODM3Rlx1ODM4MFx1ODM4Mlx1ODM4NFx1ODM4Nlx1ODM4RFx1ODM5Mlx1ODM5NFx1ODM5NVx1ODM5OFx1ODM5OVx1ODM5Qlx1ODM5Q1x1ODM5RFx1ODNBNlx1ODNBN1x1ODNBOVx1ODNBQ1x1ODNCRVx1ODNCRlx1ODNDMFx1ODNDN1x1ODNDOVx1ODNDRlx1ODNEMFx1ODNEMVx1ODNENFx1ODNERFx1ODM1M1x1ODNFOFx1ODNFQVx1ODNGNlx1ODNGOFx1ODNGOVx1ODNGQ1x1ODQwMVx1ODQwNlx1ODQwQVx1ODQwRlx1ODQxMVx1ODQxNVx1ODQxOVx1ODNBRFx1ODQyRlx1ODQzOVx1ODQ0NVx1ODQ0N1x1ODQ0OFx1ODQ0QVx1ODQ0RFx1ODQ0Rlx1ODQ1MVx1ODQ1Mlx1ODQ1Nlx1ODQ1OFx1ODQ1OVx1ODQ1QVx1ODQ1Q1x1ODQ2MFx1ODQ2NFx1ODQ2NVx1ODQ2N1x1ODQ2QVx1ODQ3MFx1ODQ3M1x1ODQ3NFx1ODQ3Nlx1ODQ3OFx1ODQ3Q1x1ODQ3RFx1ODQ4MVx1ODQ4NVx1ODQ5Mlx1ODQ5M1x1ODQ5NVx1ODQ5RVx1ODRBNlx1ODRBOFx1ODRBOVx1ODRBQVx1ODRBRlx1ODRCMVx1ODRCNFx1ODRCQVx1ODRCRFx1ODRCRVx1ODRDMFx1ODRDMlx1ODRDN1x1ODRDOFx1ODRDQ1x1ODRDRlx1ODREM1wiXSxcbltcIjhmZDlhMVwiLFwiXHU4NERDXHU4NEU3XHU4NEVBXHU4NEVGXHU4NEYwXHU4NEYxXHU4NEYyXHU4NEY3XHU4NTMyXHU4NEZBXHU4NEZCXHU4NEZEXHU4NTAyXHU4NTAzXHU4NTA3XHU4NTBDXHU4NTBFXHU4NTEwXHU4NTFDXHU4NTFFXHU4NTIyXHU4NTIzXHU4NTI0XHU4NTI1XHU4NTI3XHU4NTJBXHU4NTJCXHU4NTJGXHU4NTMzXHU4NTM0XHU4NTM2XHU4NTNGXHU4NTQ2XHU4NTRGXCIsNCxcIlx1ODU1Nlx1ODU1OVx1ODU1Q1wiLDYsXCJcdTg1NjRcdTg1NkJcdTg1NkZcdTg1NzlcdTg1N0FcdTg1N0JcdTg1N0RcdTg1N0ZcdTg1ODFcdTg1ODVcdTg1ODZcdTg1ODlcdTg1OEJcdTg1OENcdTg1OEZcdTg1OTNcdTg1OThcdTg1OURcdTg1OUZcdTg1QTBcdTg1QTJcdTg1QTVcdTg1QTdcdTg1QjRcdTg1QjZcdTg1QjdcdTg1QjhcdTg1QkNcdTg1QkRcdTg1QkVcdTg1QkZcdTg1QzJcdTg1QzdcdTg1Q0FcdTg1Q0JcdTg1Q0VcdTg1QURcdTg1RDhcdTg1REFcdTg1REZcdTg1RTBcdTg1RTZcdTg1RThcdTg1RURcdTg1RjNcdTg1RjZcdTg1RkNcIl0sXG5bXCI4ZmRhYTFcIixcIlx1ODVGRlx1ODYwMFx1ODYwNFx1ODYwNVx1ODYwRFx1ODYwRVx1ODYxMFx1ODYxMVx1ODYxMlx1ODYxOFx1ODYxOVx1ODYxQlx1ODYxRVx1ODYyMVx1ODYyN1x1ODYyOVx1ODYzNlx1ODYzOFx1ODYzQVx1ODYzQ1x1ODYzRFx1ODY0MFx1ODY0Mlx1ODY0Nlx1ODY1Mlx1ODY1M1x1ODY1Nlx1ODY1N1x1ODY1OFx1ODY1OVx1ODY1RFx1ODY2MFwiLDQsXCJcdTg2NjlcdTg2NkNcdTg2NkZcdTg2NzVcdTg2NzZcdTg2NzdcdTg2N0FcdTg2OERcdTg2OTFcdTg2OTZcdTg2OThcdTg2OUFcdTg2OUNcdTg2QTFcdTg2QTZcdTg2QTdcdTg2QThcdTg2QURcdTg2QjFcdTg2QjNcdTg2QjRcdTg2QjVcdTg2QjdcdTg2QjhcdTg2QjlcdTg2QkZcdTg2QzBcdTg2QzFcdTg2QzNcdTg2QzVcdTg2RDFcdTg2RDJcdTg2RDVcdTg2RDdcdTg2REFcdTg2RENcdTg2RTBcdTg2RTNcdTg2RTVcdTg2RTdcdTg2ODhcdTg2RkFcdTg2RkNcdTg2RkRcdTg3MDRcdTg3MDVcdTg3MDdcdTg3MEJcdTg3MEVcdTg3MEZcdTg3MTBcdTg3MTNcdTg3MTRcdTg3MTlcdTg3MUVcdTg3MUZcdTg3MjFcdTg3MjNcIl0sXG5bXCI4ZmRiYTFcIixcIlx1ODcyOFx1ODcyRVx1ODcyRlx1ODczMVx1ODczMlx1ODczOVx1ODczQVx1ODczQ1x1ODczRFx1ODczRVx1ODc0MFx1ODc0M1x1ODc0NVx1ODc0RFx1ODc1OFx1ODc1RFx1ODc2MVx1ODc2NFx1ODc2NVx1ODc2Rlx1ODc3MVx1ODc3Mlx1ODc3Qlx1ODc4M1wiLDYsXCJcdTg3OEJcdTg3OENcdTg3OTBcdTg3OTNcdTg3OTVcdTg3OTdcdTg3OThcdTg3OTlcdTg3OUVcdTg3QTBcdTg3QTNcdTg3QTdcdTg3QUNcdTg3QURcdTg3QUVcdTg3QjFcdTg3QjVcdTg3QkVcdTg3QkZcdTg3QzFcdTg3QzhcdTg3QzlcdTg3Q0FcdTg3Q0VcdTg3RDVcdTg3RDZcdTg3RDlcdTg3REFcdTg3RENcdTg3REZcdTg3RTJcdTg3RTNcdTg3RTRcdTg3RUFcdTg3RUJcdTg3RURcdTg3RjFcdTg3RjNcdTg3RjhcdTg3RkFcdTg3RkZcdTg4MDFcdTg4MDNcdTg4MDZcdTg4MDlcdTg4MEFcdTg4MEJcdTg4MTBcdTg4MTlcdTg4MTJcdTg4MTNcdTg4MTRcdTg4MThcdTg4MUFcdTg4MUJcdTg4MUNcdTg4MUVcdTg4MUZcdTg4MjhcdTg4MkRcdTg4MkVcdTg4MzBcdTg4MzJcdTg4MzVcIl0sXG5bXCI4ZmRjYTFcIixcIlx1ODgzQVx1ODgzQ1x1ODg0MVx1ODg0M1x1ODg0NVx1ODg0OFx1ODg0OVx1ODg0QVx1ODg0Qlx1ODg0RVx1ODg1MVx1ODg1NVx1ODg1Nlx1ODg1OFx1ODg1QVx1ODg1Q1x1ODg1Rlx1ODg2MFx1ODg2NFx1ODg2OVx1ODg3MVx1ODg3OVx1ODg3Qlx1ODg4MFx1ODg5OFx1ODg5QVx1ODg5Qlx1ODg5Q1x1ODg5Rlx1ODhBMFx1ODhBOFx1ODhBQVx1ODhCQVx1ODhCRFx1ODhCRVx1ODhDMFx1ODhDQVwiLDQsXCJcdTg4RDFcdTg4RDJcdTg4RDNcdTg4REJcdTg4REVcdTg4RTdcdTg4RUZcdTg4RjBcdTg4RjFcdTg4RjVcdTg4RjdcdTg5MDFcdTg5MDZcdTg5MERcdTg5MEVcdTg5MEZcdTg5MTVcdTg5MTZcdTg5MThcdTg5MTlcdTg5MUFcdTg5MUNcdTg5MjBcdTg5MjZcdTg5MjdcdTg5MjhcdTg5MzBcdTg5MzFcdTg5MzJcdTg5MzVcdTg5MzlcdTg5M0FcdTg5M0VcdTg5NDBcdTg5NDJcdTg5NDVcdTg5NDZcdTg5NDlcdTg5NEZcdTg5NTJcdTg5NTdcdTg5NUFcdTg5NUJcdTg5NUNcdTg5NjFcdTg5NjJcdTg5NjNcdTg5NkJcdTg5NkVcdTg5NzBcdTg5NzNcdTg5NzVcdTg5N0FcIl0sXG5bXCI4ZmRkYTFcIixcIlx1ODk3Qlx1ODk3Q1x1ODk3RFx1ODk4OVx1ODk4RFx1ODk5MFx1ODk5NFx1ODk5NVx1ODk5Qlx1ODk5Q1x1ODk5Rlx1ODlBMFx1ODlBNVx1ODlCMFx1ODlCNFx1ODlCNVx1ODlCNlx1ODlCN1x1ODlCQ1x1ODlENFwiLDQsXCJcdTg5RTVcdTg5RTlcdTg5RUJcdTg5RURcdTg5RjFcdTg5RjNcdTg5RjZcdTg5RjlcdTg5RkRcdTg5RkZcdThBMDRcdThBMDVcdThBMDdcdThBMEZcdThBMTFcdThBMTJcdThBMTRcdThBMTVcdThBMUVcdThBMjBcdThBMjJcdThBMjRcdThBMjZcdThBMkJcdThBMkNcdThBMkZcdThBMzVcdThBMzdcdThBM0RcdThBM0VcdThBNDBcdThBNDNcdThBNDVcdThBNDdcdThBNDlcdThBNERcdThBNEVcdThBNTNcdThBNTZcdThBNTdcdThBNThcdThBNUNcdThBNURcdThBNjFcdThBNjVcdThBNjdcdThBNzVcdThBNzZcdThBNzdcdThBNzlcdThBN0FcdThBN0JcdThBN0VcdThBN0ZcdThBODBcdThBODNcdThBODZcdThBOEJcdThBOEZcdThBOTBcdThBOTJcdThBOTZcdThBOTdcdThBOTlcdThBOUZcdThBQTdcdThBQTlcdThBQUVcdThBQUZcdThBQjNcIl0sXG5bXCI4ZmRlYTFcIixcIlx1OEFCNlx1OEFCN1x1OEFCQlx1OEFCRVx1OEFDM1x1OEFDNlx1OEFDOFx1OEFDOVx1OEFDQVx1OEFEMVx1OEFEM1x1OEFENFx1OEFENVx1OEFEN1x1OEFERFx1OEFERlx1OEFFQ1x1OEFGMFx1OEFGNFx1OEFGNVx1OEFGNlx1OEFGQ1x1OEFGRlx1OEIwNVx1OEIwNlx1OEIwQlx1OEIxMVx1OEIxQ1x1OEIxRVx1OEIxRlx1OEIwQVx1OEIyRFx1OEIzMFx1OEIzN1x1OEIzQ1x1OEI0MlwiLDQsXCJcdThCNDhcdThCNTJcdThCNTNcdThCNTRcdThCNTlcdThCNERcdThCNUVcdThCNjNcdThCNkRcdThCNzZcdThCNzhcdThCNzlcdThCN0NcdThCN0VcdThCODFcdThCODRcdThCODVcdThCOEJcdThCOERcdThCOEZcdThCOTRcdThCOTVcdThCOUNcdThCOUVcdThCOUZcdThDMzhcdThDMzlcdThDM0RcdThDM0VcdThDNDVcdThDNDdcdThDNDlcdThDNEJcdThDNEZcdThDNTFcdThDNTNcdThDNTRcdThDNTdcdThDNThcdThDNUJcdThDNURcdThDNTlcdThDNjNcdThDNjRcdThDNjZcdThDNjhcdThDNjlcdThDNkRcdThDNzNcdThDNzVcdThDNzZcdThDN0JcdThDN0VcdThDODZcIl0sXG5bXCI4ZmRmYTFcIixcIlx1OEM4N1x1OEM4Qlx1OEM5MFx1OEM5Mlx1OEM5M1x1OEM5OVx1OEM5Qlx1OEM5Q1x1OENBNFx1OENCOVx1OENCQVx1OENDNVx1OENDNlx1OENDOVx1OENDQlx1OENDRlx1OENENlx1OENENVx1OENEOVx1OENERFx1OENFMVx1OENFOFx1OENFQ1x1OENFRlx1OENGMFx1OENGMlx1OENGNVx1OENGN1x1OENGOFx1OENGRVx1OENGRlx1OEQwMVx1OEQwM1x1OEQwOVx1OEQxMlx1OEQxN1x1OEQxQlx1OEQ2NVx1OEQ2OVx1OEQ2Q1x1OEQ2RVx1OEQ3Rlx1OEQ4Mlx1OEQ4NFx1OEQ4OFx1OEQ4RFx1OEQ5MFx1OEQ5MVx1OEQ5NVx1OEQ5RVx1OEQ5Rlx1OERBMFx1OERBNlx1OERBQlx1OERBQ1x1OERBRlx1OERCMlx1OERCNVx1OERCN1x1OERCOVx1OERCQlx1OERDMFx1OERDNVx1OERDNlx1OERDN1x1OERDOFx1OERDQVx1OERDRVx1OEREMVx1OERENFx1OERENVx1OEREN1x1OEREOVx1OERFNFx1OERFNVx1OERFN1x1OERFQ1x1OERGMFx1OERCQ1x1OERGMVx1OERGMlx1OERGNFx1OERGRFx1OEUwMVx1OEUwNFx1OEUwNVx1OEUwNlx1OEUwQlx1OEUxMVx1OEUxNFx1OEUxNlx1OEUyMFx1OEUyMVx1OEUyMlwiXSxcbltcIjhmZTBhMVwiLFwiXHU4RTIzXHU4RTI2XHU4RTI3XHU4RTMxXHU4RTMzXHU4RTM2XHU4RTM3XHU4RTM4XHU4RTM5XHU4RTNEXHU4RTQwXHU4RTQxXHU4RTRCXHU4RTREXHU4RTRFXHU4RTRGXHU4RTU0XHU4RTVCXHU4RTVDXHU4RTVEXHU4RTVFXHU4RTYxXHU4RTYyXHU4RTY5XHU4RTZDXHU4RTZEXHU4RTZGXHU4RTcwXHU4RTcxXHU4RTc5XHU4RTdBXHU4RTdCXHU4RTgyXHU4RTgzXHU4RTg5XHU4RTkwXHU4RTkyXHU4RTk1XHU4RTlBXHU4RTlCXHU4RTlEXHU4RTlFXHU4RUEyXHU4RUE3XHU4RUE5XHU4RUFEXHU4RUFFXHU4RUIzXHU4RUI1XHU4RUJBXHU4RUJCXHU4RUMwXHU4RUMxXHU4RUMzXHU4RUM0XHU4RUM3XHU4RUNGXHU4RUQxXHU4RUQ0XHU4RURDXHU4RUU4XHU4RUVFXHU4RUYwXHU4RUYxXHU4RUY3XHU4RUY5XHU4RUZBXHU4RUVEXHU4RjAwXHU4RjAyXHU4RjA3XHU4RjA4XHU4RjBGXHU4RjEwXHU4RjE2XHU4RjE3XHU4RjE4XHU4RjFFXHU4RjIwXHU4RjIxXHU4RjIzXHU4RjI1XHU4RjI3XHU4RjI4XHU4RjJDXHU4RjJEXHU4RjJFXHU4RjM0XHU4RjM1XHU4RjM2XHU4RjM3XHU4RjNBXHU4RjQwXHU4RjQxXCJdLFxuW1wiOGZlMWExXCIsXCJcdThGNDNcdThGNDdcdThGNEZcdThGNTFcIiw0LFwiXHU4RjU4XHU4RjVEXHU4RjVFXHU4RjY1XHU4RjlEXHU4RkEwXHU4RkExXHU4RkE0XHU4RkE1XHU4RkE2XHU4RkI1XHU4RkI2XHU4RkI4XHU4RkJFXHU4RkMwXHU4RkMxXHU4RkM2XHU4RkNBXHU4RkNCXHU4RkNEXHU4RkQwXHU4RkQyXHU4RkQzXHU4RkQ1XHU4RkUwXHU4RkUzXHU4RkU0XHU4RkU4XHU4RkVFXHU4RkYxXHU4RkY1XHU4RkY2XHU4RkZCXHU4RkZFXHU5MDAyXHU5MDA0XHU5MDA4XHU5MDBDXHU5MDE4XHU5MDFCXHU5MDI4XHU5MDI5XHU5MDJGXHU5MDJBXHU5MDJDXHU5MDJEXHU5MDMzXHU5MDM0XHU5MDM3XHU5MDNGXHU5MDQzXHU5MDQ0XHU5MDRDXHU5MDVCXHU5MDVEXHU5MDYyXHU5MDY2XHU5MDY3XHU5MDZDXHU5MDcwXHU5MDc0XHU5MDc5XHU5MDg1XHU5MDg4XHU5MDhCXHU5MDhDXHU5MDhFXHU5MDkwXHU5MDk1XHU5MDk3XHU5MDk4XHU5MDk5XHU5MDlCXHU5MEEwXHU5MEExXHU5MEEyXHU5MEE1XHU5MEIwXHU5MEIyXHU5MEIzXHU5MEI0XHU5MEI2XHU5MEJEXHU5MENDXHU5MEJFXHU5MEMzXCJdLFxuW1wiOGZlMmExXCIsXCJcdTkwQzRcdTkwQzVcdTkwQzdcdTkwQzhcdTkwRDVcdTkwRDdcdTkwRDhcdTkwRDlcdTkwRENcdTkwRERcdTkwREZcdTkwRTVcdTkwRDJcdTkwRjZcdTkwRUJcdTkwRUZcdTkwRjBcdTkwRjRcdTkwRkVcdTkwRkZcdTkxMDBcdTkxMDRcdTkxMDVcdTkxMDZcdTkxMDhcdTkxMERcdTkxMTBcdTkxMTRcdTkxMTZcdTkxMTdcdTkxMThcdTkxMUFcdTkxMUNcdTkxMUVcdTkxMjBcdTkxMjVcdTkxMjJcdTkxMjNcdTkxMjdcdTkxMjlcdTkxMkVcdTkxMkZcdTkxMzFcdTkxMzRcdTkxMzZcdTkxMzdcdTkxMzlcdTkxM0FcdTkxM0NcdTkxM0RcdTkxNDNcdTkxNDdcdTkxNDhcdTkxNEZcdTkxNTNcdTkxNTdcdTkxNTlcdTkxNUFcdTkxNUJcdTkxNjFcdTkxNjRcdTkxNjdcdTkxNkRcdTkxNzRcdTkxNzlcdTkxN0FcdTkxN0JcdTkxODFcdTkxODNcdTkxODVcdTkxODZcdTkxOEFcdTkxOEVcdTkxOTFcdTkxOTNcdTkxOTRcdTkxOTVcdTkxOThcdTkxOUVcdTkxQTFcdTkxQTZcdTkxQThcdTkxQUNcdTkxQURcdTkxQUVcdTkxQjBcdTkxQjFcdTkxQjJcdTkxQjNcdTkxQjZcdTkxQkJcdTkxQkNcdTkxQkRcdTkxQkZcIl0sXG5bXCI4ZmUzYTFcIixcIlx1OTFDMlx1OTFDM1x1OTFDNVx1OTFEM1x1OTFENFx1OTFEN1x1OTFEOVx1OTFEQVx1OTFERVx1OTFFNFx1OTFFNVx1OTFFOVx1OTFFQVx1OTFFQ1wiLDUsXCJcdTkxRjdcdTkxRjlcdTkxRkJcdTkxRkRcdTkyMDBcdTkyMDFcdTkyMDRcdTkyMDVcdTkyMDZcdTkyMDdcdTkyMDlcdTkyMEFcdTkyMENcdTkyMTBcdTkyMTJcdTkyMTNcdTkyMTZcdTkyMThcdTkyMUNcdTkyMURcdTkyMjNcdTkyMjRcdTkyMjVcdTkyMjZcdTkyMjhcdTkyMkVcdTkyMkZcdTkyMzBcdTkyMzNcdTkyMzVcdTkyMzZcdTkyMzhcdTkyMzlcdTkyM0FcdTkyM0NcdTkyM0VcdTkyNDBcdTkyNDJcdTkyNDNcdTkyNDZcdTkyNDdcdTkyNEFcdTkyNERcdTkyNEVcdTkyNEZcdTkyNTFcdTkyNThcdTkyNTlcdTkyNUNcdTkyNURcdTkyNjBcdTkyNjFcdTkyNjVcdTkyNjdcdTkyNjhcdTkyNjlcdTkyNkVcdTkyNkZcdTkyNzBcdTkyNzVcIiw0LFwiXHU5MjdCXHU5MjdDXHU5MjdEXHU5MjdGXHU5Mjg4XHU5Mjg5XHU5MjhBXHU5MjhEXHU5MjhFXHU5MjkyXHU5Mjk3XCJdLFxuW1wiOGZlNGExXCIsXCJcdTkyOTlcdTkyOUZcdTkyQTBcdTkyQTRcdTkyQTVcdTkyQTdcdTkyQThcdTkyQUJcdTkyQUZcdTkyQjJcdTkyQjZcdTkyQjhcdTkyQkFcdTkyQkJcdTkyQkNcdTkyQkRcdTkyQkZcIiw0LFwiXHU5MkM1XHU5MkM2XHU5MkM3XHU5MkM4XHU5MkNCXHU5MkNDXHU5MkNEXHU5MkNFXHU5MkQwXHU5MkQzXHU5MkQ1XHU5MkQ3XHU5MkQ4XHU5MkQ5XHU5MkRDXHU5MkREXHU5MkRGXHU5MkUwXHU5MkUxXHU5MkUzXHU5MkU1XHU5MkU3XHU5MkU4XHU5MkVDXHU5MkVFXHU5MkYwXHU5MkY5XHU5MkZCXHU5MkZGXHU5MzAwXHU5MzAyXHU5MzA4XHU5MzBEXHU5MzExXHU5MzE0XHU5MzE1XHU5MzFDXHU5MzFEXHU5MzFFXHU5MzFGXHU5MzIxXHU5MzI0XHU5MzI1XHU5MzI3XHU5MzI5XHU5MzJBXHU5MzMzXHU5MzM0XHU5MzM2XHU5MzM3XHU5MzQ3XHU5MzQ4XHU5MzQ5XHU5MzUwXHU5MzUxXHU5MzUyXHU5MzU1XHU5MzU3XHU5MzU4XHU5MzVBXHU5MzVFXHU5MzY0XHU5MzY1XHU5MzY3XHU5MzY5XHU5MzZBXHU5MzZEXHU5MzZGXHU5MzcwXHU5MzcxXHU5MzczXHU5Mzc0XHU5Mzc2XCJdLFxuW1wiOGZlNWExXCIsXCJcdTkzN0FcdTkzN0RcdTkzN0ZcdTkzODBcdTkzODFcdTkzODJcdTkzODhcdTkzOEFcdTkzOEJcdTkzOERcdTkzOEZcdTkzOTJcdTkzOTVcdTkzOThcdTkzOUJcdTkzOUVcdTkzQTFcdTkzQTNcdTkzQTRcdTkzQTZcdTkzQThcdTkzQUJcdTkzQjRcdTkzQjVcdTkzQjZcdTkzQkFcdTkzQTlcdTkzQzFcdTkzQzRcdTkzQzVcdTkzQzZcdTkzQzdcdTkzQzlcIiw0LFwiXHU5M0QzXHU5M0Q5XHU5M0RDXHU5M0RFXHU5M0RGXHU5M0UyXHU5M0U2XHU5M0U3XHU5M0Y5XHU5M0Y3XHU5M0Y4XHU5M0ZBXHU5M0ZCXHU5M0ZEXHU5NDAxXHU5NDAyXHU5NDA0XHU5NDA4XHU5NDA5XHU5NDBEXHU5NDBFXHU5NDBGXHU5NDE1XHU5NDE2XHU5NDE3XHU5NDFGXHU5NDJFXHU5NDJGXHU5NDMxXHU5NDMyXHU5NDMzXHU5NDM0XHU5NDNCXHU5NDNGXHU5NDNEXHU5NDQzXHU5NDQ1XHU5NDQ4XHU5NDRBXHU5NDRDXHU5NDU1XHU5NDU5XHU5NDVDXHU5NDVGXHU5NDYxXHU5NDYzXHU5NDY4XHU5NDZCXHU5NDZEXHU5NDZFXHU5NDZGXHU5NDcxXHU5NDcyXHU5NDg0XHU5NDgzXHU5NTc4XHU5NTc5XCJdLFxuW1wiOGZlNmExXCIsXCJcdTk1N0VcdTk1ODRcdTk1ODhcdTk1OENcdTk1OERcdTk1OEVcdTk1OURcdTk1OUVcdTk1OUZcdTk1QTFcdTk1QTZcdTk1QTlcdTk1QUJcdTk1QUNcdTk1QjRcdTk1QjZcdTk1QkFcdTk1QkRcdTk1QkZcdTk1QzZcdTk1QzhcdTk1QzlcdTk1Q0JcdTk1RDBcdTk1RDFcdTk1RDJcdTk1RDNcdTk1RDlcdTk1REFcdTk1RERcdTk1REVcdTk1REZcdTk1RTBcdTk1RTRcdTk1RTZcdTk2MURcdTk2MUVcdTk2MjJcdTk2MjRcdTk2MjVcdTk2MjZcdTk2MkNcdTk2MzFcdTk2MzNcdTk2MzdcdTk2MzhcdTk2MzlcdTk2M0FcdTk2M0NcdTk2M0RcdTk2NDFcdTk2NTJcdTk2NTRcdTk2NTZcdTk2NTdcdTk2NThcdTk2NjFcdTk2NkVcdTk2NzRcdTk2N0JcdTk2N0NcdTk2N0VcdTk2N0ZcdTk2ODFcdTk2ODJcdTk2ODNcdTk2ODRcdTk2ODlcdTk2OTFcdTk2OTZcdTk2OUFcdTk2OURcdTk2OUZcdTk2QTRcdTk2QTVcdTk2QTZcdTk2QTlcdTk2QUVcdTk2QUZcdTk2QjNcdTk2QkFcdTk2Q0FcdTk2RDJcdTVEQjJcdTk2RDhcdTk2REFcdTk2RERcdTk2REVcdTk2REZcdTk2RTlcdTk2RUZcdTk2RjFcdTk2RkFcdTk3MDJcIl0sXG5bXCI4ZmU3YTFcIixcIlx1OTcwM1x1OTcwNVx1OTcwOVx1OTcxQVx1OTcxQlx1OTcxRFx1OTcyMVx1OTcyMlx1OTcyM1x1OTcyOFx1OTczMVx1OTczM1x1OTc0MVx1OTc0M1x1OTc0QVx1OTc0RVx1OTc0Rlx1OTc1NVx1OTc1N1x1OTc1OFx1OTc1QVx1OTc1Qlx1OTc2M1x1OTc2N1x1OTc2QVx1OTc2RVx1OTc3M1x1OTc3Nlx1OTc3N1x1OTc3OFx1OTc3Qlx1OTc3RFx1OTc3Rlx1OTc4MFx1OTc4OVx1OTc5NVx1OTc5Nlx1OTc5N1x1OTc5OVx1OTc5QVx1OTc5RVx1OTc5Rlx1OTdBMlx1OTdBQ1x1OTdBRVx1OTdCMVx1OTdCMlx1OTdCNVx1OTdCNlx1OTdCOFx1OTdCOVx1OTdCQVx1OTdCQ1x1OTdCRVx1OTdCRlx1OTdDMVx1OTdDNFx1OTdDNVx1OTdDN1x1OTdDOVx1OTdDQVx1OTdDQ1x1OTdDRFx1OTdDRVx1OTdEMFx1OTdEMVx1OTdENFx1OTdEN1x1OTdEOFx1OTdEOVx1OTdERFx1OTdERVx1OTdFMFx1OTdEQlx1OTdFMVx1OTdFNFx1OTdFRlx1OTdGMVx1OTdGNFx1OTdGN1x1OTdGOFx1OTdGQVx1OTgwN1x1OTgwQVx1OTgxOVx1OTgwRFx1OTgwRVx1OTgxNFx1OTgxNlx1OTgxQ1x1OTgxRVx1OTgyMFx1OTgyM1x1OTgyNlwiXSxcbltcIjhmZThhMVwiLFwiXHU5ODJCXHU5ODJFXHU5ODJGXHU5ODMwXHU5ODMyXHU5ODMzXHU5ODM1XHU5ODI1XHU5ODNFXHU5ODQ0XHU5ODQ3XHU5ODRBXHU5ODUxXHU5ODUyXHU5ODUzXHU5ODU2XHU5ODU3XHU5ODU5XHU5ODVBXHU5ODYyXHU5ODYzXHU5ODY1XHU5ODY2XHU5ODZBXHU5ODZDXHU5OEFCXHU5OEFEXHU5OEFFXHU5OEIwXHU5OEI0XHU5OEI3XHU5OEI4XHU5OEJBXHU5OEJCXHU5OEJGXHU5OEMyXHU5OEM1XHU5OEM4XHU5OENDXHU5OEUxXHU5OEUzXHU5OEU1XHU5OEU2XHU5OEU3XHU5OEVBXHU5OEYzXHU5OEY2XHU5OTAyXHU5OTA3XHU5OTA4XHU5OTExXHU5OTE1XHU5OTE2XHU5OTE3XHU5OTFBXHU5OTFCXHU5OTFDXHU5OTFGXHU5OTIyXHU5OTI2XHU5OTI3XHU5OTJCXHU5OTMxXCIsNCxcIlx1OTkzOVx1OTkzQVx1OTkzQlx1OTkzQ1x1OTk0MFx1OTk0MVx1OTk0Nlx1OTk0N1x1OTk0OFx1OTk0RFx1OTk0RVx1OTk1NFx1OTk1OFx1OTk1OVx1OTk1Qlx1OTk1Q1x1OTk1RVx1OTk1Rlx1OTk2MFx1OTk5Qlx1OTk5RFx1OTk5Rlx1OTlBNlx1OTlCMFx1OTlCMVx1OTlCMlx1OTlCNVwiXSxcbltcIjhmZTlhMVwiLFwiXHU5OUI5XHU5OUJBXHU5OUJEXHU5OUJGXHU5OUMzXHU5OUM5XHU5OUQzXHU5OUQ0XHU5OUQ5XHU5OURBXHU5OURDXHU5OURFXHU5OUU3XHU5OUVBXHU5OUVCXHU5OUVDXHU5OUYwXHU5OUY0XHU5OUY1XHU5OUY5XHU5OUZEXHU5OUZFXHU5QTAyXHU5QTAzXHU5QTA0XHU5QTBCXHU5QTBDXHU5QTEwXHU5QTExXHU5QTE2XHU5QTFFXHU5QTIwXHU5QTIyXHU5QTIzXHU5QTI0XHU5QTI3XHU5QTJEXHU5QTJFXHU5QTMzXHU5QTM1XHU5QTM2XHU5QTM4XHU5QTQ3XHU5QTQxXHU5QTQ0XHU5QTRBXHU5QTRCXHU5QTRDXHU5QTRFXHU5QTUxXHU5QTU0XHU5QTU2XHU5QTVEXHU5QUFBXHU5QUFDXHU5QUFFXHU5QUFGXHU5QUIyXHU5QUI0XHU5QUI1XHU5QUI2XHU5QUI5XHU5QUJCXHU5QUJFXHU5QUJGXHU5QUMxXHU5QUMzXHU5QUM2XHU5QUM4XHU5QUNFXHU5QUQwXHU5QUQyXHU5QUQ1XHU5QUQ2XHU5QUQ3XHU5QURCXHU5QURDXHU5QUUwXHU5QUU0XHU5QUU1XHU5QUU3XHU5QUU5XHU5QUVDXHU5QUYyXHU5QUYzXHU5QUY1XHU5QUY5XHU5QUZBXHU5QUZEXHU5QUZGXCIsNF0sXG5bXCI4ZmVhYTFcIixcIlx1OUIwNFx1OUIwNVx1OUIwOFx1OUIwOVx1OUIwQlx1OUIwQ1x1OUIwRFx1OUIwRVx1OUIxMFx1OUIxMlx1OUIxNlx1OUIxOVx1OUIxQlx1OUIxQ1x1OUIyMFx1OUIyNlx1OUIyQlx1OUIyRFx1OUIzM1x1OUIzNFx1OUIzNVx1OUIzN1x1OUIzOVx1OUIzQVx1OUIzRFx1OUI0OFx1OUI0Qlx1OUI0Q1x1OUI1NVx1OUI1Nlx1OUI1N1x1OUI1Qlx1OUI1RVx1OUI2MVx1OUI2M1x1OUI2NVx1OUI2Nlx1OUI2OFx1OUI2QVwiLDQsXCJcdTlCNzNcdTlCNzVcdTlCNzdcdTlCNzhcdTlCNzlcdTlCN0ZcdTlCODBcdTlCODRcdTlCODVcdTlCODZcdTlCODdcdTlCODlcdTlCOEFcdTlCOEJcdTlCOERcdTlCOEZcdTlCOTBcdTlCOTRcdTlCOUFcdTlCOURcdTlCOUVcdTlCQTZcdTlCQTdcdTlCQTlcdTlCQUNcdTlCQjBcdTlCQjFcdTlCQjJcdTlCQjdcdTlCQjhcdTlCQkJcdTlCQkNcdTlCQkVcdTlCQkZcdTlCQzFcdTlCQzdcdTlCQzhcdTlCQ0VcdTlCRDBcdTlCRDdcdTlCRDhcdTlCRERcdTlCREZcdTlCRTVcdTlCRTdcdTlCRUFcdTlCRUJcdTlCRUZcdTlCRjNcdTlCRjdcdTlCRjhcIl0sXG5bXCI4ZmViYTFcIixcIlx1OUJGOVx1OUJGQVx1OUJGRFx1OUJGRlx1OUMwMFx1OUMwMlx1OUMwQlx1OUMwRlx1OUMxMVx1OUMxNlx1OUMxOFx1OUMxOVx1OUMxQVx1OUMxQ1x1OUMxRVx1OUMyMlx1OUMyM1x1OUMyNlwiLDQsXCJcdTlDMzFcdTlDMzVcdTlDMzZcdTlDMzdcdTlDM0RcdTlDNDFcdTlDNDNcdTlDNDRcdTlDNDVcdTlDNDlcdTlDNEFcdTlDNEVcdTlDNEZcdTlDNTBcdTlDNTNcdTlDNTRcdTlDNTZcdTlDNThcdTlDNUJcdTlDNURcdTlDNUVcdTlDNUZcdTlDNjNcdTlDNjlcdTlDNkFcdTlDNUNcdTlDNkJcdTlDNjhcdTlDNkVcdTlDNzBcdTlDNzJcdTlDNzVcdTlDNzdcdTlDN0JcdTlDRTZcdTlDRjJcdTlDRjdcdTlDRjlcdTlEMEJcdTlEMDJcdTlEMTFcdTlEMTdcdTlEMThcdTlEMUNcdTlEMURcdTlEMUVcdTlEMkZcdTlEMzBcdTlEMzJcdTlEMzNcdTlEMzRcdTlEM0FcdTlEM0NcdTlENDVcdTlEM0RcdTlENDJcdTlENDNcdTlENDdcdTlENEFcdTlENTNcdTlENTRcdTlENUZcdTlENjNcdTlENjJcdTlENjVcdTlENjlcdTlENkFcdTlENkJcdTlENzBcdTlENzZcdTlENzdcdTlEN0JcIl0sXG5bXCI4ZmVjYTFcIixcIlx1OUQ3Q1x1OUQ3RVx1OUQ4M1x1OUQ4NFx1OUQ4Nlx1OUQ4QVx1OUQ4RFx1OUQ4RVx1OUQ5Mlx1OUQ5M1x1OUQ5NVx1OUQ5Nlx1OUQ5N1x1OUQ5OFx1OURBMVx1OURBQVx1OURBQ1x1OURBRVx1OURCMVx1OURCNVx1OURCOVx1OURCQ1x1OURCRlx1OURDM1x1OURDN1x1OURDOVx1OURDQVx1OURENFx1OURENVx1OURENlx1OUREN1x1OUREQVx1OURERVx1OURERlx1OURFMFx1OURFNVx1OURFN1x1OURFOVx1OURFQlx1OURFRVx1OURGMFx1OURGM1x1OURGNFx1OURGRVx1OUUwQVx1OUUwMlx1OUUwN1x1OUUwRVx1OUUxMFx1OUUxMVx1OUUxMlx1OUUxNVx1OUUxNlx1OUUxOVx1OUUxQ1x1OUUxRFx1OUU3QVx1OUU3Qlx1OUU3Q1x1OUU4MFx1OUU4Mlx1OUU4M1x1OUU4NFx1OUU4NVx1OUU4N1x1OUU4RVx1OUU4Rlx1OUU5Nlx1OUU5OFx1OUU5Qlx1OUU5RVx1OUVBNFx1OUVBOFx1OUVBQ1x1OUVBRVx1OUVBRlx1OUVCMFx1OUVCM1x1OUVCNFx1OUVCNVx1OUVDNlx1OUVDOFx1OUVDQlx1OUVENVx1OUVERlx1OUVFNFx1OUVFN1x1OUVFQ1x1OUVFRFx1OUVFRVx1OUVGMFx1OUVGMVx1OUVGMlx1OUVGNVwiXSxcbltcIjhmZWRhMVwiLFwiXHU5RUY4XHU5RUZGXHU5RjAyXHU5RjAzXHU5RjA5XHU5RjBGXHU5RjEwXHU5RjExXHU5RjEyXHU5RjE0XHU5RjE2XHU5RjE3XHU5RjE5XHU5RjFBXHU5RjFCXHU5RjFGXHU5RjIyXHU5RjI2XHU5RjJBXHU5RjJCXHU5RjJGXHU5RjMxXHU5RjMyXHU5RjM0XHU5RjM3XHU5RjM5XHU5RjNBXHU5RjNDXHU5RjNEXHU5RjNGXHU5RjQxXHU5RjQzXCIsNCxcIlx1OUY1M1x1OUY1NVx1OUY1Nlx1OUY1N1x1OUY1OFx1OUY1QVx1OUY1RFx1OUY1RVx1OUY2OFx1OUY2OVx1OUY2RFwiLDQsXCJcdTlGNzNcdTlGNzVcdTlGN0FcdTlGN0RcdTlGOEZcdTlGOTBcdTlGOTFcdTlGOTJcdTlGOTRcdTlGOTZcdTlGOTdcdTlGOUVcdTlGQTFcdTlGQTJcdTlGQTNcdTlGQTVcIl1cbl1cbiIsICJbXG5bXCIwXCIsXCJcXHUwMDAwXCIsMTI3LFwiXHUyMEFDXCJdLFxuW1wiODE0MFwiLFwiXHU0RTAyXHU0RTA0XHU0RTA1XHU0RTA2XHU0RTBGXHU0RTEyXHU0RTE3XHU0RTFGXHU0RTIwXHU0RTIxXHU0RTIzXHU0RTI2XHU0RTI5XHU0RTJFXHU0RTJGXHU0RTMxXHU0RTMzXHU0RTM1XHU0RTM3XHU0RTNDXHU0RTQwXHU0RTQxXHU0RTQyXHU0RTQ0XHU0RTQ2XHU0RTRBXHU0RTUxXHU0RTU1XHU0RTU3XHU0RTVBXHU0RTVCXHU0RTYyXHU0RTYzXHU0RTY0XHU0RTY1XHU0RTY3XHU0RTY4XHU0RTZBXCIsNSxcIlx1NEU3Mlx1NEU3NFwiLDksXCJcdTRFN0ZcIiw2LFwiXHU0RTg3XHU0RThBXCJdLFxuW1wiODE4MFwiLFwiXHU0RTkwXHU0RTk2XHU0RTk3XHU0RTk5XHU0RTlDXHU0RTlEXHU0RTlFXHU0RUEzXHU0RUFBXHU0RUFGXHU0RUIwXHU0RUIxXHU0RUI0XHU0RUI2XHU0RUI3XHU0RUI4XHU0RUI5XHU0RUJDXHU0RUJEXHU0RUJFXHU0RUM4XHU0RUNDXHU0RUNGXHU0RUQwXHU0RUQyXHU0RURBXHU0RURCXHU0RURDXHU0RUUwXHU0RUUyXHU0RUU2XHU0RUU3XHU0RUU5XHU0RUVEXHU0RUVFXHU0RUVGXHU0RUYxXHU0RUY0XHU0RUY4XHU0RUY5XHU0RUZBXHU0RUZDXHU0RUZFXHU0RjAwXHU0RjAyXCIsNixcIlx1NEYwQlx1NEYwQ1x1NEYxMlwiLDQsXCJcdTRGMUNcdTRGMURcdTRGMjFcdTRGMjNcdTRGMjhcdTRGMjlcdTRGMkNcdTRGMkRcdTRGMkVcdTRGMzFcdTRGMzNcdTRGMzVcdTRGMzdcdTRGMzlcdTRGM0JcdTRGM0VcIiw0LFwiXHU0RjQ0XHU0RjQ1XHU0RjQ3XCIsNSxcIlx1NEY1Mlx1NEY1NFx1NEY1Nlx1NEY2MVx1NEY2Mlx1NEY2Nlx1NEY2OFx1NEY2QVx1NEY2Qlx1NEY2RFx1NEY2RVx1NEY3MVx1NEY3Mlx1NEY3NVx1NEY3N1x1NEY3OFx1NEY3OVx1NEY3QVx1NEY3RFx1NEY4MFx1NEY4MVx1NEY4Mlx1NEY4NVx1NEY4Nlx1NEY4N1x1NEY4QVx1NEY4Q1x1NEY4RVx1NEY5MFx1NEY5Mlx1NEY5M1x1NEY5NVx1NEY5Nlx1NEY5OFx1NEY5OVx1NEY5QVx1NEY5Q1x1NEY5RVx1NEY5Rlx1NEZBMVx1NEZBMlwiXSxcbltcIjgyNDBcIixcIlx1NEZBNFx1NEZBQlx1NEZBRFx1NEZCMFwiLDQsXCJcdTRGQjZcIiw4LFwiXHU0RkMwXHU0RkMxXHU0RkMyXHU0RkM2XHU0RkM3XHU0RkM4XHU0RkM5XHU0RkNCXHU0RkNDXHU0RkNEXHU0RkQyXCIsNCxcIlx1NEZEOVx1NEZEQlx1NEZFMFx1NEZFMlx1NEZFNFx1NEZFNVx1NEZFN1x1NEZFQlx1NEZFQ1x1NEZGMFx1NEZGMlx1NEZGNFx1NEZGNVx1NEZGNlx1NEZGN1x1NEZGOVx1NEZGQlx1NEZGQ1x1NEZGRFx1NEZGRlwiLDExXSxcbltcIjgyODBcIixcIlx1NTAwQlx1NTAwRVx1NTAxMFx1NTAxMVx1NTAxM1x1NTAxNVx1NTAxNlx1NTAxN1x1NTAxQlx1NTAxRFx1NTAxRVx1NTAyMFx1NTAyMlx1NTAyM1x1NTAyNFx1NTAyN1x1NTAyQlx1NTAyRlwiLDEwLFwiXHU1MDNCXHU1MDNEXHU1MDNGXHU1MDQwXHU1MDQxXHU1MDQyXHU1MDQ0XHU1MDQ1XHU1MDQ2XHU1MDQ5XHU1MDRBXHU1MDRCXHU1MDREXHU1MDUwXCIsNCxcIlx1NTA1Nlx1NTA1N1x1NTA1OFx1NTA1OVx1NTA1Qlx1NTA1RFwiLDcsXCJcdTUwNjZcIiw1LFwiXHU1MDZEXCIsOCxcIlx1NTA3OFx1NTA3OVx1NTA3QVx1NTA3Q1x1NTA3RFx1NTA4MVx1NTA4Mlx1NTA4M1x1NTA4NFx1NTA4Nlx1NTA4N1x1NTA4OVx1NTA4QVx1NTA4Qlx1NTA4Q1x1NTA4RVwiLDIwLFwiXHU1MEE0XHU1MEE2XHU1MEFBXHU1MEFCXHU1MEFEXCIsNCxcIlx1NTBCM1wiLDYsXCJcdTUwQkNcIl0sXG5bXCI4MzQwXCIsXCJcdTUwQkRcIiwxNyxcIlx1NTBEMFwiLDUsXCJcdTUwRDdcdTUwRDhcdTUwRDlcdTUwREJcIiwxMCxcIlx1NTBFOFx1NTBFOVx1NTBFQVx1NTBFQlx1NTBFRlx1NTBGMFx1NTBGMVx1NTBGMlx1NTBGNFx1NTBGNlwiLDQsXCJcdTUwRkNcIiw5LFwiXHU1MTA4XCJdLFxuW1wiODM4MFwiLFwiXHU1MTA5XHU1MTBBXHU1MTBDXCIsNSxcIlx1NTExM1wiLDEzLFwiXHU1MTIyXCIsMjgsXCJcdTUxNDJcdTUxNDdcdTUxNEFcdTUxNENcdTUxNEVcdTUxNEZcdTUxNTBcdTUxNTJcdTUxNTNcdTUxNTdcdTUxNThcdTUxNTlcdTUxNUJcdTUxNURcIiw0LFwiXHU1MTYzXHU1MTY0XHU1MTY2XHU1MTY3XHU1MTY5XHU1MTZBXHU1MTZGXHU1MTcyXHU1MTdBXHU1MTdFXHU1MTdGXHU1MTgzXHU1MTg0XHU1MTg2XHU1MTg3XHU1MThBXHU1MThCXHU1MThFXHU1MThGXHU1MTkwXHU1MTkxXHU1MTkzXHU1MTk0XHU1MTk4XHU1MTlBXHU1MTlEXHU1MTlFXHU1MTlGXHU1MUExXHU1MUEzXHU1MUE2XCIsNCxcIlx1NTFBRFx1NTFBRVx1NTFCNFx1NTFCOFx1NTFCOVx1NTFCQVx1NTFCRVx1NTFCRlx1NTFDMVx1NTFDMlx1NTFDM1x1NTFDNVx1NTFDOFx1NTFDQVx1NTFDRFx1NTFDRVx1NTFEMFx1NTFEMlwiLDVdLFxuW1wiODQ0MFwiLFwiXHU1MUQ4XHU1MUQ5XHU1MURBXHU1MURDXHU1MURFXHU1MURGXHU1MUUyXHU1MUUzXHU1MUU1XCIsNSxcIlx1NTFFQ1x1NTFFRVx1NTFGMVx1NTFGMlx1NTFGNFx1NTFGN1x1NTFGRVx1NTIwNFx1NTIwNVx1NTIwOVx1NTIwQlx1NTIwQ1x1NTIwRlx1NTIxMFx1NTIxM1x1NTIxNFx1NTIxNVx1NTIxQ1x1NTIxRVx1NTIxRlx1NTIyMVx1NTIyMlx1NTIyM1x1NTIyNVx1NTIyNlx1NTIyN1x1NTIyQVx1NTIyQ1x1NTIyRlx1NTIzMVx1NTIzMlx1NTIzNFx1NTIzNVx1NTIzQ1x1NTIzRVx1NTI0NFwiLDUsXCJcdTUyNEJcdTUyNEVcdTUyNEZcdTUyNTJcdTUyNTNcdTUyNTVcdTUyNTdcdTUyNThcIl0sXG5bXCI4NDgwXCIsXCJcdTUyNTlcdTUyNUFcdTUyNUJcdTUyNURcdTUyNUZcdTUyNjBcdTUyNjJcdTUyNjNcdTUyNjRcdTUyNjZcdTUyNjhcdTUyNkJcdTUyNkNcdTUyNkRcdTUyNkVcdTUyNzBcdTUyNzFcdTUyNzNcIiw5LFwiXHU1MjdFXHU1MjgwXHU1MjgzXCIsNCxcIlx1NTI4OVwiLDYsXCJcdTUyOTFcdTUyOTJcdTUyOTRcIiw2LFwiXHU1MjlDXHU1MkE0XHU1MkE1XHU1MkE2XHU1MkE3XHU1MkFFXHU1MkFGXHU1MkIwXHU1MkI0XCIsOSxcIlx1NTJDMFx1NTJDMVx1NTJDMlx1NTJDNFx1NTJDNVx1NTJDNlx1NTJDOFx1NTJDQVx1NTJDQ1x1NTJDRFx1NTJDRVx1NTJDRlx1NTJEMVx1NTJEM1x1NTJENFx1NTJENVx1NTJEN1x1NTJEOVwiLDUsXCJcdTUyRTBcdTUyRTFcdTUyRTJcdTUyRTNcdTUyRTVcIiwxMCxcIlx1NTJGMVwiLDcsXCJcdTUyRkJcdTUyRkNcdTUyRkRcdTUzMDFcdTUzMDJcdTUzMDNcdTUzMDRcdTUzMDdcdTUzMDlcdTUzMEFcdTUzMEJcdTUzMENcdTUzMEVcIl0sXG5bXCI4NTQwXCIsXCJcdTUzMTFcdTUzMTJcdTUzMTNcdTUzMTRcdTUzMThcdTUzMUJcdTUzMUNcdTUzMUVcdTUzMUZcdTUzMjJcdTUzMjRcdTUzMjVcdTUzMjdcdTUzMjhcdTUzMjlcdTUzMkJcdTUzMkNcdTUzMkRcdTUzMkZcIiw5LFwiXHU1MzNDXHU1MzNEXHU1MzQwXHU1MzQyXHU1MzQ0XHU1MzQ2XHU1MzRCXHU1MzRDXHU1MzREXHU1MzUwXHU1MzU0XHU1MzU4XHU1MzU5XHU1MzVCXHU1MzVEXHU1MzY1XHU1MzY4XHU1MzZBXHU1MzZDXHU1MzZEXHU1MzcyXHU1Mzc2XHU1Mzc5XHU1MzdCXHU1MzdDXHU1MzdEXHU1MzdFXHU1MzgwXHU1MzgxXHU1MzgzXHU1Mzg3XHU1Mzg4XHU1MzhBXHU1MzhFXHU1MzhGXCJdLFxuW1wiODU4MFwiLFwiXHU1MzkwXCIsNCxcIlx1NTM5Nlx1NTM5N1x1NTM5OVx1NTM5Qlx1NTM5Q1x1NTM5RVx1NTNBMFx1NTNBMVx1NTNBNFx1NTNBN1x1NTNBQVx1NTNBQlx1NTNBQ1x1NTNBRFx1NTNBRlwiLDYsXCJcdTUzQjdcdTUzQjhcdTUzQjlcdTUzQkFcdTUzQkNcdTUzQkRcdTUzQkVcdTUzQzBcdTUzQzNcIiw0LFwiXHU1M0NFXHU1M0NGXHU1M0QwXHU1M0QyXHU1M0QzXHU1M0Q1XHU1M0RBXHU1M0RDXHU1M0REXHU1M0RFXHU1M0UxXHU1M0UyXHU1M0U3XHU1M0Y0XHU1M0ZBXHU1M0ZFXHU1M0ZGXHU1NDAwXHU1NDAyXHU1NDA1XHU1NDA3XHU1NDBCXHU1NDE0XHU1NDE4XHU1NDE5XHU1NDFBXHU1NDFDXHU1NDIyXHU1NDI0XHU1NDI1XHU1NDJBXHU1NDMwXHU1NDMzXHU1NDM2XHU1NDM3XHU1NDNBXHU1NDNEXHU1NDNGXHU1NDQxXHU1NDQyXHU1NDQ0XHU1NDQ1XHU1NDQ3XHU1NDQ5XHU1NDRDXHU1NDREXHU1NDRFXHU1NDRGXHU1NDUxXHU1NDVBXHU1NDVEXCIsNCxcIlx1NTQ2M1x1NTQ2NVx1NTQ2N1x1NTQ2OVwiLDcsXCJcdTU0NzRcdTU0NzlcdTU0N0FcdTU0N0VcdTU0N0ZcdTU0ODFcdTU0ODNcdTU0ODVcdTU0ODdcdTU0ODhcdTU0ODlcdTU0OEFcdTU0OERcdTU0OTFcdTU0OTNcdTU0OTdcdTU0OThcdTU0OUNcdTU0OUVcdTU0OUZcdTU0QTBcdTU0QTFcIl0sXG5bXCI4NjQwXCIsXCJcdTU0QTJcdTU0QTVcdTU0QUVcdTU0QjBcdTU0QjJcdTU0QjVcdTU0QjZcdTU0QjdcdTU0QjlcdTU0QkFcdTU0QkNcdTU0QkVcdTU0QzNcdTU0QzVcdTU0Q0FcdTU0Q0JcdTU0RDZcdTU0RDhcdTU0REJcdTU0RTBcIiw0LFwiXHU1NEVCXHU1NEVDXHU1NEVGXHU1NEYwXHU1NEYxXHU1NEY0XCIsNSxcIlx1NTRGQlx1NTRGRVx1NTUwMFx1NTUwMlx1NTUwM1x1NTUwNFx1NTUwNVx1NTUwOFx1NTUwQVwiLDQsXCJcdTU1MTJcdTU1MTNcdTU1MTVcIiw1LFwiXHU1NTFDXHU1NTFEXHU1NTFFXHU1NTFGXHU1NTIxXHU1NTI1XHU1NTI2XCJdLFxuW1wiODY4MFwiLFwiXHU1NTI4XHU1NTI5XHU1NTJCXHU1NTJEXHU1NTMyXHU1NTM0XHU1NTM1XHU1NTM2XHU1NTM4XHU1NTM5XHU1NTNBXHU1NTNCXHU1NTNEXHU1NTQwXHU1NTQyXHU1NTQ1XHU1NTQ3XHU1NTQ4XHU1NTRCXCIsNCxcIlx1NTU1MVx1NTU1Mlx1NTU1M1x1NTU1NFx1NTU1N1wiLDQsXCJcdTU1NURcdTU1NUVcdTU1NUZcdTU1NjBcdTU1NjJcdTU1NjNcdTU1NjhcdTU1NjlcdTU1NkJcdTU1NkZcIiw1LFwiXHU1NTc5XHU1NTdBXHU1NTdEXHU1NTdGXHU1NTg1XHU1NTg2XHU1NThDXHU1NThEXHU1NThFXHU1NTkwXHU1NTkyXHU1NTkzXHU1NTk1XHU1NTk2XHU1NTk3XHU1NTlBXHU1NTlCXHU1NTlFXHU1NUEwXCIsNixcIlx1NTVBOFwiLDgsXCJcdTU1QjJcdTU1QjRcdTU1QjZcdTU1QjhcdTU1QkFcdTU1QkNcdTU1QkZcIiw0LFwiXHU1NUM2XHU1NUM3XHU1NUM4XHU1NUNBXHU1NUNCXHU1NUNFXHU1NUNGXHU1NUQwXHU1NUQ1XHU1NUQ3XCIsNCxcIlx1NTVERVx1NTVFMFx1NTVFMlx1NTVFN1x1NTVFOVx1NTVFRFx1NTVFRVx1NTVGMFx1NTVGMVx1NTVGNFx1NTVGNlx1NTVGOFwiLDQsXCJcdTU1RkZcdTU2MDJcdTU2MDNcdTU2MDRcdTU2MDVcIl0sXG5bXCI4NzQwXCIsXCJcdTU2MDZcdTU2MDdcdTU2MEFcdTU2MEJcdTU2MERcdTU2MTBcIiw3LFwiXHU1NjE5XHU1NjFBXHU1NjFDXHU1NjFEXHU1NjIwXHU1NjIxXHU1NjIyXHU1NjI1XHU1NjI2XHU1NjI4XHU1NjI5XHU1NjJBXHU1NjJCXHU1NjJFXHU1NjJGXHU1NjMwXHU1NjMzXHU1NjM1XHU1NjM3XHU1NjM4XHU1NjNBXHU1NjNDXHU1NjNEXHU1NjNFXHU1NjQwXCIsMTEsXCJcdTU2NEZcIiw0LFwiXHU1NjU1XHU1NjU2XHU1NjVBXHU1NjVCXHU1NjVEXCIsNF0sXG5bXCI4NzgwXCIsXCJcdTU2NjNcdTU2NjVcdTU2NjZcdTU2NjdcdTU2NkRcdTU2NkVcdTU2NkZcdTU2NzBcdTU2NzJcdTU2NzNcdTU2NzRcdTU2NzVcdTU2NzdcdTU2NzhcdTU2NzlcdTU2N0FcdTU2N0RcIiw3LFwiXHU1Njg3XCIsNixcIlx1NTY5MFx1NTY5MVx1NTY5Mlx1NTY5NFwiLDE0LFwiXHU1NkE0XCIsMTAsXCJcdTU2QjBcIiw2LFwiXHU1NkI4XHU1NkI5XHU1NkJBXHU1NkJCXHU1NkJEXCIsMTIsXCJcdTU2Q0JcIiw4LFwiXHU1NkQ1XHU1NkQ2XHU1NkQ4XHU1NkQ5XHU1NkRDXHU1NkUzXHU1NkU1XCIsNSxcIlx1NTZFQ1x1NTZFRVx1NTZFRlx1NTZGMlx1NTZGM1x1NTZGNlx1NTZGN1x1NTZGOFx1NTZGQlx1NTZGQ1x1NTcwMFx1NTcwMVx1NTcwMlx1NTcwNVx1NTcwN1x1NTcwQlwiLDZdLFxuW1wiODg0MFwiLFwiXHU1NzEyXCIsOSxcIlx1NTcxRFx1NTcxRVx1NTcyMFx1NTcyMVx1NTcyMlx1NTcyNFx1NTcyNVx1NTcyNlx1NTcyN1x1NTcyQlx1NTczMVx1NTczMlx1NTczNFwiLDQsXCJcdTU3M0NcdTU3M0RcdTU3M0ZcdTU3NDFcdTU3NDNcdTU3NDRcdTU3NDVcdTU3NDZcdTU3NDhcdTU3NDlcdTU3NEJcdTU3NTJcIiw0LFwiXHU1NzU4XHU1NzU5XHU1NzYyXHU1NzYzXHU1NzY1XHU1NzY3XHU1NzZDXHU1NzZFXHU1NzcwXHU1NzcxXHU1NzcyXHU1Nzc0XHU1Nzc1XHU1Nzc4XHU1Nzc5XHU1NzdBXHU1NzdEXHU1NzdFXHU1NzdGXHU1NzgwXCJdLFxuW1wiODg4MFwiLFwiXHU1NzgxXHU1Nzg3XHU1Nzg4XHU1Nzg5XHU1NzhBXHU1NzhEXCIsNCxcIlx1NTc5NFwiLDYsXCJcdTU3OUNcdTU3OURcdTU3OUVcdTU3OUZcdTU3QTVcdTU3QThcdTU3QUFcdTU3QUNcdTU3QUZcdTU3QjBcdTU3QjFcdTU3QjNcdTU3QjVcdTU3QjZcdTU3QjdcdTU3QjlcIiw4LFwiXHU1N0M0XCIsNixcIlx1NTdDQ1x1NTdDRFx1NTdEMFx1NTdEMVx1NTdEM1x1NTdENlx1NTdEN1x1NTdEQlx1NTdEQ1x1NTdERVx1NTdFMVx1NTdFMlx1NTdFM1x1NTdFNVwiLDcsXCJcdTU3RUVcdTU3RjBcdTU3RjFcdTU3RjJcdTU3RjNcdTU3RjVcdTU3RjZcdTU3RjdcdTU3RkJcdTU3RkNcdTU3RkVcdTU3RkZcdTU4MDFcdTU4MDNcdTU4MDRcdTU4MDVcdTU4MDhcdTU4MDlcdTU4MEFcdTU4MENcdTU4MEVcdTU4MEZcdTU4MTBcdTU4MTJcdTU4MTNcdTU4MTRcdTU4MTZcdTU4MTdcdTU4MThcdTU4MUFcdTU4MUJcdTU4MUNcdTU4MURcdTU4MUZcdTU4MjJcdTU4MjNcdTU4MjVcIiw0LFwiXHU1ODJCXCIsNCxcIlx1NTgzMVx1NTgzMlx1NTgzM1x1NTgzNFx1NTgzNlwiLDddLFxuW1wiODk0MFwiLFwiXHU1ODNFXCIsNSxcIlx1NTg0NVwiLDYsXCJcdTU4NEVcdTU4NEZcdTU4NTBcdTU4NTJcdTU4NTNcdTU4NTVcdTU4NTZcdTU4NTdcdTU4NTlcIiw0LFwiXHU1ODVGXCIsNSxcIlx1NTg2NlwiLDQsXCJcdTU4NkRcIiwxNixcIlx1NTg3Rlx1NTg4Mlx1NTg4NFx1NTg4Nlx1NTg4N1x1NTg4OFx1NTg4QVx1NTg4Qlx1NTg4Q1wiXSxcbltcIjg5ODBcIixcIlx1NTg4RFwiLDQsXCJcdTU4OTRcIiw0LFwiXHU1ODlCXHU1ODlDXHU1ODlEXHU1OEEwXCIsNyxcIlx1NThBQVwiLDE3LFwiXHU1OEJEXHU1OEJFXHU1OEJGXHU1OEMwXHU1OEMyXHU1OEMzXHU1OEM0XHU1OEM2XCIsMTAsXCJcdTU4RDJcdTU4RDNcdTU4RDRcdTU4RDZcIiwxMyxcIlx1NThFNVwiLDUsXCJcdTU4RURcdTU4RUZcdTU4RjFcdTU4RjJcdTU4RjRcdTU4RjVcdTU4RjdcdTU4RjhcdTU4RkFcIiw3LFwiXHU1OTAzXHU1OTA1XHU1OTA2XHU1OTA4XCIsNCxcIlx1NTkwRVx1NTkxMFx1NTkxMVx1NTkxMlx1NTkxM1x1NTkxN1x1NTkxOFx1NTkxQlx1NTkxRFx1NTkxRVx1NTkyMFx1NTkyMVx1NTkyMlx1NTkyM1x1NTkyNlx1NTkyOFx1NTkyQ1x1NTkzMFx1NTkzMlx1NTkzM1x1NTkzNVx1NTkzNlx1NTkzQlwiXSxcbltcIjhhNDBcIixcIlx1NTkzRFx1NTkzRVx1NTkzRlx1NTk0MFx1NTk0M1x1NTk0NVx1NTk0Nlx1NTk0QVx1NTk0Q1x1NTk0RFx1NTk1MFx1NTk1Mlx1NTk1M1x1NTk1OVx1NTk1QlwiLDQsXCJcdTU5NjFcdTU5NjNcdTU5NjRcdTU5NjZcIiwxMixcIlx1NTk3NVx1NTk3N1x1NTk3QVx1NTk3Qlx1NTk3Q1x1NTk3RVx1NTk3Rlx1NTk4MFx1NTk4NVx1NTk4OVx1NTk4Qlx1NTk4Q1x1NTk4RVx1NTk4Rlx1NTk5MFx1NTk5MVx1NTk5NFx1NTk5NVx1NTk5OFx1NTk5QVx1NTk5Qlx1NTk5Q1x1NTk5RFx1NTk5Rlx1NTlBMFx1NTlBMVx1NTlBMlx1NTlBNlwiXSxcbltcIjhhODBcIixcIlx1NTlBN1x1NTlBQ1x1NTlBRFx1NTlCMFx1NTlCMVx1NTlCM1wiLDUsXCJcdTU5QkFcdTU5QkNcdTU5QkRcdTU5QkZcIiw2LFwiXHU1OUM3XHU1OUM4XHU1OUM5XHU1OUNDXHU1OUNEXHU1OUNFXHU1OUNGXHU1OUQ1XHU1OUQ2XHU1OUQ5XHU1OURCXHU1OURFXCIsNCxcIlx1NTlFNFx1NTlFNlx1NTlFN1x1NTlFOVx1NTlFQVx1NTlFQlx1NTlFRFwiLDExLFwiXHU1OUZBXHU1OUZDXHU1OUZEXHU1OUZFXHU1QTAwXHU1QTAyXHU1QTBBXHU1QTBCXHU1QTBEXHU1QTBFXHU1QTBGXHU1QTEwXHU1QTEyXHU1QTE0XHU1QTE1XHU1QTE2XHU1QTE3XHU1QTE5XHU1QTFBXHU1QTFCXHU1QTFEXHU1QTFFXHU1QTIxXHU1QTIyXHU1QTI0XHU1QTI2XHU1QTI3XHU1QTI4XHU1QTJBXCIsNixcIlx1NUEzM1x1NUEzNVx1NUEzN1wiLDQsXCJcdTVBM0RcdTVBM0VcdTVBM0ZcdTVBNDFcIiw0LFwiXHU1QTQ3XHU1QTQ4XHU1QTRCXCIsOSxcIlx1NUE1Nlx1NUE1N1x1NUE1OFx1NUE1OVx1NUE1QlwiLDVdLFxuW1wiOGI0MFwiLFwiXHU1QTYxXHU1QTYzXHU1QTY0XHU1QTY1XHU1QTY2XHU1QTY4XHU1QTY5XHU1QTZCXCIsOCxcIlx1NUE3OFx1NUE3OVx1NUE3Qlx1NUE3Q1x1NUE3RFx1NUE3RVx1NUE4MFwiLDE3LFwiXHU1QTkzXCIsNixcIlx1NUE5Q1wiLDEzLFwiXHU1QUFCXHU1QUFDXCJdLFxuW1wiOGI4MFwiLFwiXHU1QUFEXCIsNCxcIlx1NUFCNFx1NUFCNlx1NUFCN1x1NUFCOVwiLDQsXCJcdTVBQkZcdTVBQzBcdTVBQzNcIiw1LFwiXHU1QUNBXHU1QUNCXHU1QUNEXCIsNCxcIlx1NUFEM1x1NUFENVx1NUFEN1x1NUFEOVx1NUFEQVx1NUFEQlx1NUFERFx1NUFERVx1NUFERlx1NUFFMlx1NUFFNFx1NUFFNVx1NUFFN1x1NUFFOFx1NUFFQVx1NUFFQ1wiLDQsXCJcdTVBRjJcIiwyMixcIlx1NUIwQVwiLDExLFwiXHU1QjE4XCIsMjUsXCJcdTVCMzNcdTVCMzVcdTVCMzZcdTVCMzhcIiw3LFwiXHU1QjQxXCIsNl0sXG5bXCI4YzQwXCIsXCJcdTVCNDhcIiw3LFwiXHU1QjUyXHU1QjU2XHU1QjVFXHU1QjYwXHU1QjYxXHU1QjY3XHU1QjY4XHU1QjZCXHU1QjZEXHU1QjZFXHU1QjZGXHU1QjcyXHU1Qjc0XHU1Qjc2XHU1Qjc3XHU1Qjc4XHU1Qjc5XHU1QjdCXHU1QjdDXHU1QjdFXHU1QjdGXHU1QjgyXHU1Qjg2XHU1QjhBXHU1QjhEXHU1QjhFXHU1QjkwXHU1QjkxXHU1QjkyXHU1Qjk0XHU1Qjk2XHU1QjlGXHU1QkE3XHU1QkE4XHU1QkE5XHU1QkFDXHU1QkFEXHU1QkFFXHU1QkFGXHU1QkIxXHU1QkIyXHU1QkI3XHU1QkJBXHU1QkJCXHU1QkJDXHU1QkMwXHU1QkMxXHU1QkMzXHU1QkM4XHU1QkM5XHU1QkNBXHU1QkNCXHU1QkNEXHU1QkNFXHU1QkNGXCJdLFxuW1wiOGM4MFwiLFwiXHU1QkQxXHU1QkQ0XCIsOCxcIlx1NUJFMFx1NUJFMlx1NUJFM1x1NUJFNlx1NUJFN1x1NUJFOVwiLDQsXCJcdTVCRUZcdTVCRjFcIiw2LFwiXHU1QkZEXHU1QkZFXHU1QzAwXHU1QzAyXHU1QzAzXHU1QzA1XHU1QzA3XHU1QzA4XHU1QzBCXHU1QzBDXHU1QzBEXHU1QzBFXHU1QzEwXHU1QzEyXHU1QzEzXHU1QzE3XHU1QzE5XHU1QzFCXHU1QzFFXHU1QzFGXHU1QzIwXHU1QzIxXHU1QzIzXHU1QzI2XHU1QzI4XHU1QzI5XHU1QzJBXHU1QzJCXHU1QzJEXHU1QzJFXHU1QzJGXHU1QzMwXHU1QzMyXHU1QzMzXHU1QzM1XHU1QzM2XHU1QzM3XHU1QzQzXHU1QzQ0XHU1QzQ2XHU1QzQ3XHU1QzRDXHU1QzREXHU1QzUyXHU1QzUzXHU1QzU0XHU1QzU2XHU1QzU3XHU1QzU4XHU1QzVBXHU1QzVCXHU1QzVDXHU1QzVEXHU1QzVGXHU1QzYyXHU1QzY0XHU1QzY3XCIsNixcIlx1NUM3MFx1NUM3MlwiLDYsXCJcdTVDN0JcdTVDN0NcdTVDN0RcdTVDN0VcdTVDODBcdTVDODNcIiw0LFwiXHU1Qzg5XHU1QzhBXHU1QzhCXHU1QzhFXHU1QzhGXHU1QzkyXHU1QzkzXHU1Qzk1XHU1QzlEXCIsNCxcIlx1NUNBNFwiLDRdLFxuW1wiOGQ0MFwiLFwiXHU1Q0FBXHU1Q0FFXHU1Q0FGXHU1Q0IwXHU1Q0IyXHU1Q0I0XHU1Q0I2XHU1Q0I5XHU1Q0JBXHU1Q0JCXHU1Q0JDXHU1Q0JFXHU1Q0MwXHU1Q0MyXHU1Q0MzXHU1Q0M1XCIsNSxcIlx1NUNDQ1wiLDUsXCJcdTVDRDNcIiw1LFwiXHU1Q0RBXCIsNixcIlx1NUNFMlx1NUNFM1x1NUNFN1x1NUNFOVx1NUNFQlx1NUNFQ1x1NUNFRVx1NUNFRlx1NUNGMVwiLDksXCJcdTVDRkNcIiw0XSxcbltcIjhkODBcIixcIlx1NUQwMVx1NUQwNFx1NUQwNVx1NUQwOFwiLDUsXCJcdTVEMEZcIiw0LFwiXHU1RDE1XHU1RDE3XHU1RDE4XHU1RDE5XHU1RDFBXHU1RDFDXHU1RDFEXHU1RDFGXCIsNCxcIlx1NUQyNVx1NUQyOFx1NUQyQVx1NUQyQlx1NUQyQ1x1NUQyRlwiLDQsXCJcdTVEMzVcIiw3LFwiXHU1RDNGXCIsNyxcIlx1NUQ0OFx1NUQ0OVx1NUQ0RFwiLDEwLFwiXHU1RDU5XHU1RDVBXHU1RDVDXHU1RDVFXCIsMTAsXCJcdTVENkFcdTVENkRcdTVENkVcdTVENzBcdTVENzFcdTVENzJcdTVENzNcdTVENzVcIiwxMixcIlx1NUQ4M1wiLDIxLFwiXHU1RDlBXHU1RDlCXHU1RDlDXHU1RDlFXHU1RDlGXHU1REEwXCJdLFxuW1wiOGU0MFwiLFwiXHU1REExXCIsMjEsXCJcdTVEQjhcIiwxMixcIlx1NURDNlwiLDYsXCJcdTVEQ0VcIiwxMixcIlx1NUREQ1x1NURERlx1NURFMFx1NURFM1x1NURFNFx1NURFQVx1NURFQ1x1NURFRFwiXSxcbltcIjhlODBcIixcIlx1NURGMFx1NURGNVx1NURGNlx1NURGOFwiLDQsXCJcdTVERkZcdTVFMDBcdTVFMDRcdTVFMDdcdTVFMDlcdTVFMEFcdTVFMEJcdTVFMERcdTVFMEVcdTVFMTJcdTVFMTNcdTVFMTdcdTVFMUVcIiw3LFwiXHU1RTI4XCIsNCxcIlx1NUUyRlx1NUUzMFx1NUUzMlwiLDQsXCJcdTVFMzlcdTVFM0FcdTVFM0VcdTVFM0ZcdTVFNDBcdTVFNDFcdTVFNDNcdTVFNDZcIiw1LFwiXHU1RTREXCIsNixcIlx1NUU1NlwiLDQsXCJcdTVFNUNcdTVFNURcdTVFNUZcdTVFNjBcdTVFNjNcIiwxNCxcIlx1NUU3NVx1NUU3N1x1NUU3OVx1NUU3RVx1NUU4MVx1NUU4Mlx1NUU4M1x1NUU4NVx1NUU4OFx1NUU4OVx1NUU4Q1x1NUU4RFx1NUU4RVx1NUU5Mlx1NUU5OFx1NUU5Qlx1NUU5RFx1NUVBMVx1NUVBMlx1NUVBM1x1NUVBNFx1NUVBOFwiLDQsXCJcdTVFQUVcIiw0LFwiXHU1RUI0XHU1RUJBXHU1RUJCXHU1RUJDXHU1RUJEXHU1RUJGXCIsNl0sXG5bXCI4ZjQwXCIsXCJcdTVFQzZcdTVFQzdcdTVFQzhcdTVFQ0JcIiw1LFwiXHU1RUQ0XHU1RUQ1XHU1RUQ3XHU1RUQ4XHU1RUQ5XHU1RURBXHU1RURDXCIsMTEsXCJcdTVFRTlcdTVFRUJcIiw4LFwiXHU1RUY1XHU1RUY4XHU1RUY5XHU1RUZCXHU1RUZDXHU1RUZEXHU1RjA1XHU1RjA2XHU1RjA3XHU1RjA5XHU1RjBDXHU1RjBEXHU1RjBFXHU1RjEwXHU1RjEyXHU1RjE0XHU1RjE2XHU1RjE5XHU1RjFBXHU1RjFDXHU1RjFEXHU1RjFFXHU1RjIxXHU1RjIyXHU1RjIzXHU1RjI0XCJdLFxuW1wiOGY4MFwiLFwiXHU1RjI4XHU1RjJCXHU1RjJDXHU1RjJFXHU1RjMwXHU1RjMyXCIsNixcIlx1NUYzQlx1NUYzRFx1NUYzRVx1NUYzRlx1NUY0MVwiLDE0LFwiXHU1RjUxXHU1RjU0XHU1RjU5XHU1RjVBXHU1RjVCXHU1RjVDXHU1RjVFXHU1RjVGXHU1RjYwXHU1RjYzXHU1RjY1XHU1RjY3XHU1RjY4XHU1RjZCXHU1RjZFXHU1RjZGXHU1RjcyXHU1Rjc0XHU1Rjc1XHU1Rjc2XHU1Rjc4XHU1RjdBXHU1RjdEXHU1RjdFXHU1RjdGXHU1RjgzXHU1Rjg2XHU1RjhEXHU1RjhFXHU1RjhGXHU1RjkxXHU1RjkzXHU1Rjk0XHU1Rjk2XHU1RjlBXHU1RjlCXHU1RjlEXHU1RjlFXHU1RjlGXHU1RkEwXHU1RkEyXCIsNSxcIlx1NUZBOVx1NUZBQlx1NUZBQ1x1NUZBRlwiLDUsXCJcdTVGQjZcdTVGQjhcdTVGQjlcdTVGQkFcdTVGQkJcdTVGQkVcIiw0LFwiXHU1RkM3XHU1RkM4XHU1RkNBXHU1RkNCXHU1RkNFXHU1RkQzXHU1RkQ0XHU1RkQ1XHU1RkRBXHU1RkRCXHU1RkRDXHU1RkRFXHU1RkRGXHU1RkUyXHU1RkUzXHU1RkU1XHU1RkU2XHU1RkU4XHU1RkU5XHU1RkVDXHU1RkVGXHU1RkYwXHU1RkYyXHU1RkYzXHU1RkY0XHU1RkY2XHU1RkY3XHU1RkY5XHU1RkZBXHU1RkZDXHU2MDA3XCJdLFxuW1wiOTA0MFwiLFwiXHU2MDA4XHU2MDA5XHU2MDBCXHU2MDBDXHU2MDEwXHU2MDExXHU2MDEzXHU2MDE3XHU2MDE4XHU2MDFBXHU2MDFFXHU2MDFGXHU2MDIyXHU2MDIzXHU2MDI0XHU2MDJDXHU2MDJEXHU2MDJFXHU2MDMwXCIsNCxcIlx1NjAzNlwiLDQsXCJcdTYwM0RcdTYwM0VcdTYwNDBcdTYwNDRcIiw2LFwiXHU2MDRDXHU2MDRFXHU2MDRGXHU2MDUxXHU2MDUzXHU2MDU0XHU2MDU2XHU2MDU3XHU2MDU4XHU2MDVCXHU2MDVDXHU2MDVFXHU2MDVGXHU2MDYwXHU2MDYxXHU2MDY1XHU2MDY2XHU2MDZFXHU2MDcxXHU2MDcyXHU2MDc0XHU2MDc1XHU2MDc3XHU2MDdFXHU2MDgwXCJdLFxuW1wiOTA4MFwiLFwiXHU2MDgxXHU2MDgyXHU2MDg1XHU2MDg2XHU2MDg3XHU2MDg4XHU2MDhBXHU2MDhCXHU2MDhFXHU2MDhGXHU2MDkwXHU2MDkxXHU2MDkzXHU2MDk1XHU2MDk3XHU2MDk4XHU2MDk5XHU2MDlDXHU2MDlFXHU2MEExXHU2MEEyXHU2MEE0XHU2MEE1XHU2MEE3XHU2MEE5XHU2MEFBXHU2MEFFXHU2MEIwXHU2MEIzXHU2MEI1XHU2MEI2XHU2MEI3XHU2MEI5XHU2MEJBXHU2MEJEXCIsNyxcIlx1NjBDN1x1NjBDOFx1NjBDOVx1NjBDQ1wiLDQsXCJcdTYwRDJcdTYwRDNcdTYwRDRcdTYwRDZcdTYwRDdcdTYwRDlcdTYwREJcdTYwREVcdTYwRTFcIiw0LFwiXHU2MEVBXHU2MEYxXHU2MEYyXHU2MEY1XHU2MEY3XHU2MEY4XHU2MEZCXCIsNCxcIlx1NjEwMlx1NjEwM1x1NjEwNFx1NjEwNVx1NjEwN1x1NjEwQVx1NjEwQlx1NjEwQ1x1NjExMFwiLDQsXCJcdTYxMTZcdTYxMTdcdTYxMThcdTYxMTlcdTYxMUJcdTYxMUNcdTYxMURcdTYxMUVcdTYxMjFcdTYxMjJcdTYxMjVcdTYxMjhcdTYxMjlcdTYxMkFcdTYxMkNcIiwxOCxcIlx1NjE0MFwiLDZdLFxuW1wiOTE0MFwiLFwiXHU2MTQ3XHU2MTQ5XHU2MTRCXHU2MTREXHU2MTRGXHU2MTUwXHU2MTUyXHU2MTUzXHU2MTU0XHU2MTU2XCIsNixcIlx1NjE1RVx1NjE1Rlx1NjE2MFx1NjE2MVx1NjE2M1x1NjE2NFx1NjE2NVx1NjE2Nlx1NjE2OVwiLDYsXCJcdTYxNzFcdTYxNzJcdTYxNzNcdTYxNzRcdTYxNzZcdTYxNzhcIiwxOCxcIlx1NjE4Q1x1NjE4RFx1NjE4RlwiLDQsXCJcdTYxOTVcIl0sXG5bXCI5MTgwXCIsXCJcdTYxOTZcIiw2LFwiXHU2MTlFXCIsOCxcIlx1NjFBQVx1NjFBQlx1NjFBRFwiLDksXCJcdTYxQjhcIiw1LFwiXHU2MUJGXHU2MUMwXHU2MUMxXHU2MUMzXCIsNCxcIlx1NjFDOVx1NjFDQ1wiLDQsXCJcdTYxRDNcdTYxRDVcIiwxNixcIlx1NjFFN1wiLDEzLFwiXHU2MUY2XCIsOCxcIlx1NjIwMFwiLDUsXCJcdTYyMDdcdTYyMDlcdTYyMTNcdTYyMTRcdTYyMTlcdTYyMUNcdTYyMURcdTYyMUVcdTYyMjBcdTYyMjNcdTYyMjZcdTYyMjdcdTYyMjhcdTYyMjlcdTYyMkJcdTYyMkRcdTYyMkZcdTYyMzBcdTYyMzFcdTYyMzJcdTYyMzVcdTYyMzZcdTYyMzhcIiw0LFwiXHU2MjQyXHU2MjQ0XHU2MjQ1XHU2MjQ2XHU2MjRBXCJdLFxuW1wiOTI0MFwiLFwiXHU2MjRGXHU2MjUwXHU2MjU1XHU2MjU2XHU2MjU3XHU2MjU5XHU2MjVBXHU2MjVDXCIsNixcIlx1NjI2NFx1NjI2NVx1NjI2OFx1NjI3MVx1NjI3Mlx1NjI3NFx1NjI3NVx1NjI3N1x1NjI3OFx1NjI3QVx1NjI3Qlx1NjI3RFx1NjI4MVx1NjI4Mlx1NjI4M1x1NjI4NVx1NjI4Nlx1NjI4N1x1NjI4OFx1NjI4QlwiLDUsXCJcdTYyOTRcdTYyOTlcdTYyOUNcdTYyOURcdTYyOUVcdTYyQTNcdTYyQTZcdTYyQTdcdTYyQTlcdTYyQUFcdTYyQURcdTYyQUVcdTYyQUZcdTYyQjBcdTYyQjJcdTYyQjNcdTYyQjRcdTYyQjZcdTYyQjdcdTYyQjhcdTYyQkFcdTYyQkVcdTYyQzBcdTYyQzFcIl0sXG5bXCI5MjgwXCIsXCJcdTYyQzNcdTYyQ0JcdTYyQ0ZcdTYyRDFcdTYyRDVcdTYyRERcdTYyREVcdTYyRTBcdTYyRTFcdTYyRTRcdTYyRUFcdTYyRUJcdTYyRjBcdTYyRjJcdTYyRjVcdTYyRjhcdTYyRjlcdTYyRkFcdTYyRkJcdTYzMDBcdTYzMDNcdTYzMDRcdTYzMDVcdTYzMDZcdTYzMEFcdTYzMEJcdTYzMENcdTYzMERcdTYzMEZcdTYzMTBcdTYzMTJcdTYzMTNcdTYzMTRcdTYzMTVcdTYzMTdcdTYzMThcdTYzMTlcdTYzMUNcdTYzMjZcdTYzMjdcdTYzMjlcdTYzMkNcdTYzMkRcdTYzMkVcdTYzMzBcdTYzMzFcdTYzMzNcIiw1LFwiXHU2MzNCXHU2MzNDXHU2MzNFXHU2MzNGXHU2MzQwXHU2MzQxXHU2MzQ0XHU2MzQ3XHU2MzQ4XHU2MzRBXHU2MzUxXHU2MzUyXHU2MzUzXHU2MzU0XHU2MzU2XCIsNyxcIlx1NjM2MFx1NjM2NFx1NjM2NVx1NjM2Nlx1NjM2OFx1NjM2QVx1NjM2Qlx1NjM2Q1x1NjM2Rlx1NjM3MFx1NjM3Mlx1NjM3M1x1NjM3NFx1NjM3NVx1NjM3OFx1NjM3OVx1NjM3Q1x1NjM3RFx1NjM3RVx1NjM3Rlx1NjM4MVx1NjM4M1x1NjM4NFx1NjM4NVx1NjM4Nlx1NjM4Qlx1NjM4RFx1NjM5MVx1NjM5M1x1NjM5NFx1NjM5NVx1NjM5N1x1NjM5OVwiLDYsXCJcdTYzQTFcdTYzQTRcdTYzQTZcdTYzQUJcdTYzQUZcdTYzQjFcdTYzQjJcdTYzQjVcdTYzQjZcdTYzQjlcdTYzQkJcdTYzQkRcdTYzQkZcdTYzQzBcIl0sXG5bXCI5MzQwXCIsXCJcdTYzQzFcdTYzQzJcdTYzQzNcdTYzQzVcdTYzQzdcdTYzQzhcdTYzQ0FcdTYzQ0JcdTYzQ0NcdTYzRDFcdTYzRDNcdTYzRDRcdTYzRDVcdTYzRDdcIiw2LFwiXHU2M0RGXHU2M0UyXHU2M0U0XCIsNCxcIlx1NjNFQlx1NjNFQ1x1NjNFRVx1NjNFRlx1NjNGMFx1NjNGMVx1NjNGM1x1NjNGNVx1NjNGN1x1NjNGOVx1NjNGQVx1NjNGQlx1NjNGQ1x1NjNGRVx1NjQwM1x1NjQwNFx1NjQwNlwiLDQsXCJcdTY0MERcdTY0MEVcdTY0MTFcdTY0MTJcdTY0MTVcIiw1LFwiXHU2NDFEXHU2NDFGXHU2NDIyXHU2NDIzXHU2NDI0XCJdLFxuW1wiOTM4MFwiLFwiXHU2NDI1XHU2NDI3XHU2NDI4XHU2NDI5XHU2NDJCXHU2NDJFXCIsNSxcIlx1NjQzNVwiLDQsXCJcdTY0M0JcdTY0M0NcdTY0M0VcdTY0NDBcdTY0NDJcdTY0NDNcdTY0NDlcdTY0NEJcIiw2LFwiXHU2NDUzXHU2NDU1XHU2NDU2XHU2NDU3XHU2NDU5XCIsNCxcIlx1NjQ1RlwiLDcsXCJcdTY0NjhcdTY0NkFcdTY0NkJcdTY0NkNcdTY0NkVcIiw5LFwiXHU2NDdCXCIsNixcIlx1NjQ4M1x1NjQ4Nlx1NjQ4OFwiLDgsXCJcdTY0OTNcdTY0OTRcdTY0OTdcdTY0OThcdTY0OUFcdTY0OUJcdTY0OUNcdTY0OURcdTY0OUZcIiw0LFwiXHU2NEE1XHU2NEE2XHU2NEE3XHU2NEE4XHU2NEFBXHU2NEFCXHU2NEFGXHU2NEIxXHU2NEIyXHU2NEIzXHU2NEI0XHU2NEI2XHU2NEI5XHU2NEJCXHU2NEJEXHU2NEJFXHU2NEJGXHU2NEMxXHU2NEMzXHU2NEM0XHU2NEM2XCIsNixcIlx1NjRDRlx1NjREMVx1NjREM1x1NjRENFx1NjRENVx1NjRENlx1NjREOVx1NjREQVwiXSxcbltcIjk0NDBcIixcIlx1NjREQlx1NjREQ1x1NjRERFx1NjRERlx1NjRFMFx1NjRFMVx1NjRFM1x1NjRFNVx1NjRFN1wiLDI0LFwiXHU2NTAxXCIsNyxcIlx1NjUwQVwiLDcsXCJcdTY1MTNcIiw0LFwiXHU2NTE5XCIsOF0sXG5bXCI5NDgwXCIsXCJcdTY1MjJcdTY1MjNcdTY1MjRcdTY1MjZcIiw0LFwiXHU2NTJDXHU2NTJEXHU2NTMwXHU2NTMxXHU2NTMyXHU2NTMzXHU2NTM3XHU2NTNBXHU2NTNDXHU2NTNEXHU2NTQwXCIsNCxcIlx1NjU0Nlx1NjU0N1x1NjU0QVx1NjU0Qlx1NjU0RFx1NjU0RVx1NjU1MFx1NjU1Mlx1NjU1M1x1NjU1NFx1NjU1N1x1NjU1OFx1NjU1QVx1NjU1Q1x1NjU1Rlx1NjU2MFx1NjU2MVx1NjU2NFx1NjU2NVx1NjU2N1x1NjU2OFx1NjU2OVx1NjU2QVx1NjU2RFx1NjU2RVx1NjU2Rlx1NjU3MVx1NjU3M1x1NjU3NVx1NjU3Nlx1NjU3OFwiLDE0LFwiXHU2NTg4XHU2NTg5XHU2NThBXHU2NThEXHU2NThFXHU2NThGXHU2NTkyXHU2NTk0XHU2NTk1XHU2NTk2XHU2NTk4XHU2NTlBXHU2NTlEXHU2NTlFXHU2NUEwXHU2NUEyXHU2NUEzXHU2NUE2XHU2NUE4XHU2NUFBXHU2NUFDXHU2NUFFXHU2NUIxXCIsNyxcIlx1NjVCQVx1NjVCQlx1NjVCRVx1NjVCRlx1NjVDMFx1NjVDMlx1NjVDN1x1NjVDOFx1NjVDOVx1NjVDQVx1NjVDRFx1NjVEMFx1NjVEMVx1NjVEM1x1NjVENFx1NjVENVx1NjVEOFwiLDcsXCJcdTY1RTFcdTY1RTNcdTY1RTRcdTY1RUFcdTY1RUJcIl0sXG5bXCI5NTQwXCIsXCJcdTY1RjJcdTY1RjNcdTY1RjRcdTY1RjVcdTY1RjhcdTY1RjlcdTY1RkJcIiw0LFwiXHU2NjAxXHU2NjA0XHU2NjA1XHU2NjA3XHU2NjA4XHU2NjA5XHU2NjBCXHU2NjBEXHU2NjEwXHU2NjExXHU2NjEyXHU2NjE2XHU2NjE3XHU2NjE4XHU2NjFBXHU2NjFCXHU2NjFDXHU2NjFFXHU2NjIxXHU2NjIyXHU2NjIzXHU2NjI0XHU2NjI2XHU2NjI5XHU2NjJBXHU2NjJCXHU2NjJDXHU2NjJFXHU2NjMwXHU2NjMyXHU2NjMzXHU2NjM3XCIsNCxcIlx1NjYzRFx1NjYzRlx1NjY0MFx1NjY0Mlx1NjY0NFwiLDYsXCJcdTY2NERcdTY2NEVcdTY2NTBcdTY2NTFcdTY2NThcIl0sXG5bXCI5NTgwXCIsXCJcdTY2NTlcdTY2NUJcdTY2NUNcdTY2NURcdTY2NUVcdTY2NjBcdTY2NjJcdTY2NjNcdTY2NjVcdTY2NjdcdTY2NjlcIiw0LFwiXHU2NjcxXHU2NjcyXHU2NjczXHU2Njc1XHU2Njc4XHU2Njc5XHU2NjdCXHU2NjdDXHU2NjdEXHU2NjdGXHU2NjgwXHU2NjgxXHU2NjgzXHU2Njg1XHU2Njg2XHU2Njg4XHU2Njg5XHU2NjhBXHU2NjhCXHU2NjhEXHU2NjhFXHU2NjhGXHU2NjkwXHU2NjkyXHU2NjkzXHU2Njk0XHU2Njk1XHU2Njk4XCIsNCxcIlx1NjY5RVwiLDgsXCJcdTY2QTlcIiw0LFwiXHU2NkFGXCIsNCxcIlx1NjZCNVx1NjZCNlx1NjZCN1x1NjZCOFx1NjZCQVx1NjZCQlx1NjZCQ1x1NjZCRFx1NjZCRlwiLDI1LFwiXHU2NkRBXHU2NkRFXCIsNyxcIlx1NjZFN1x1NjZFOFx1NjZFQVwiLDUsXCJcdTY2RjFcdTY2RjVcdTY2RjZcdTY2RjhcdTY2RkFcdTY2RkJcdTY2RkRcdTY3MDFcdTY3MDJcdTY3MDNcIl0sXG5bXCI5NjQwXCIsXCJcdTY3MDRcdTY3MDVcdTY3MDZcdTY3MDdcdTY3MENcdTY3MEVcdTY3MEZcdTY3MTFcdTY3MTJcdTY3MTNcdTY3MTZcdTY3MThcdTY3MTlcdTY3MUFcdTY3MUNcdTY3MUVcdTY3MjBcIiw1LFwiXHU2NzI3XHU2NzI5XHU2NzJFXHU2NzMwXHU2NzMyXHU2NzMzXHU2NzM2XHU2NzM3XHU2NzM4XHU2NzM5XHU2NzNCXHU2NzNDXHU2NzNFXHU2NzNGXHU2NzQxXHU2NzQ0XHU2NzQ1XHU2NzQ3XHU2NzRBXHU2NzRCXHU2NzREXHU2NzUyXHU2NzU0XHU2NzU1XHU2NzU3XCIsNCxcIlx1Njc1RFx1Njc2Mlx1Njc2M1x1Njc2NFx1Njc2Nlx1Njc2N1x1Njc2Qlx1Njc2Q1x1Njc2RVx1Njc3MVx1Njc3NFx1Njc3NlwiXSxcbltcIjk2ODBcIixcIlx1Njc3OFx1Njc3OVx1Njc3QVx1Njc3Qlx1Njc3RFx1Njc4MFx1Njc4Mlx1Njc4M1x1Njc4NVx1Njc4Nlx1Njc4OFx1Njc4QVx1Njc4Q1x1Njc4RFx1Njc4RVx1Njc4Rlx1Njc5MVx1Njc5Mlx1Njc5M1x1Njc5NFx1Njc5Nlx1Njc5OVx1Njc5Qlx1Njc5Rlx1NjdBMFx1NjdBMVx1NjdBNFx1NjdBNlx1NjdBOVx1NjdBQ1x1NjdBRVx1NjdCMVx1NjdCMlx1NjdCNFx1NjdCOVwiLDcsXCJcdTY3QzJcdTY3QzVcIiw5LFwiXHU2N0Q1XHU2N0Q2XHU2N0Q3XHU2N0RCXHU2N0RGXHU2N0UxXHU2N0UzXHU2N0U0XHU2N0U2XHU2N0U3XHU2N0U4XHU2N0VBXHU2N0VCXHU2N0VEXHU2N0VFXHU2N0YyXHU2N0Y1XCIsNyxcIlx1NjdGRVx1NjgwMVx1NjgwMlx1NjgwM1x1NjgwNFx1NjgwNlx1NjgwRFx1NjgxMFx1NjgxMlx1NjgxNFx1NjgxNVx1NjgxOFwiLDQsXCJcdTY4MUVcdTY4MUZcdTY4MjBcdTY4MjJcIiw2LFwiXHU2ODJCXCIsNixcIlx1NjgzNFx1NjgzNVx1NjgzNlx1NjgzQVx1NjgzQlx1NjgzRlx1Njg0N1x1Njg0Qlx1Njg0RFx1Njg0Rlx1Njg1Mlx1Njg1NlwiLDVdLFxuW1wiOTc0MFwiLFwiXHU2ODVDXHU2ODVEXHU2ODVFXHU2ODVGXHU2ODZBXHU2ODZDXCIsNyxcIlx1Njg3NVx1Njg3OFwiLDgsXCJcdTY4ODJcdTY4ODRcdTY4ODdcIiw3LFwiXHU2ODkwXHU2ODkxXHU2ODkyXHU2ODk0XHU2ODk1XHU2ODk2XHU2ODk4XCIsOSxcIlx1NjhBM1x1NjhBNFx1NjhBNVx1NjhBOVx1NjhBQVx1NjhBQlx1NjhBQ1x1NjhBRVx1NjhCMVx1NjhCMlx1NjhCNFx1NjhCNlx1NjhCN1x1NjhCOFwiXSxcbltcIjk3ODBcIixcIlx1NjhCOVwiLDYsXCJcdTY4QzFcdTY4QzNcIiw1LFwiXHU2OENBXHU2OENDXHU2OENFXHU2OENGXHU2OEQwXHU2OEQxXHU2OEQzXHU2OEQ0XHU2OEQ2XHU2OEQ3XHU2OEQ5XHU2OERCXCIsNCxcIlx1NjhFMVx1NjhFMlx1NjhFNFwiLDksXCJcdTY4RUZcdTY4RjJcdTY4RjNcdTY4RjRcdTY4RjZcdTY4RjdcdTY4RjhcdTY4RkJcdTY4RkRcdTY4RkVcdTY4RkZcdTY5MDBcdTY5MDJcdTY5MDNcdTY5MDRcdTY5MDZcIiw0LFwiXHU2OTBDXHU2OTBGXHU2OTExXHU2OTEzXCIsMTEsXCJcdTY5MjFcdTY5MjJcdTY5MjNcdTY5MjVcIiw3LFwiXHU2OTJFXHU2OTJGXHU2OTMxXHU2OTMyXHU2OTMzXHU2OTM1XHU2OTM2XHU2OTM3XHU2OTM4XHU2OTNBXHU2OTNCXHU2OTNDXHU2OTNFXHU2OTQwXHU2OTQxXHU2OTQzXCIsMTYsXCJcdTY5NTVcdTY5NTZcdTY5NThcdTY5NTlcdTY5NUJcdTY5NUNcdTY5NUZcIl0sXG5bXCI5ODQwXCIsXCJcdTY5NjFcdTY5NjJcdTY5NjRcdTY5NjVcdTY5NjdcdTY5NjhcdTY5NjlcdTY5NkFcdTY5NkNcdTY5NkRcdTY5NkZcdTY5NzBcdTY5NzJcIiw0LFwiXHU2OTdBXHU2OTdCXHU2OTdEXHU2OTdFXHU2OTdGXHU2OTgxXHU2OTgzXHU2OTg1XHU2OThBXHU2OThCXHU2OThDXHU2OThFXCIsNSxcIlx1Njk5Nlx1Njk5N1x1Njk5OVx1Njk5QVx1Njk5RFwiLDksXCJcdTY5QTlcdTY5QUFcdTY5QUNcdTY5QUVcdTY5QUZcdTY5QjBcdTY5QjJcdTY5QjNcdTY5QjVcdTY5QjZcdTY5QjhcdTY5QjlcdTY5QkFcdTY5QkNcdTY5QkRcIl0sXG5bXCI5ODgwXCIsXCJcdTY5QkVcdTY5QkZcdTY5QzBcdTY5QzJcIiw3LFwiXHU2OUNCXHU2OUNEXHU2OUNGXHU2OUQxXHU2OUQyXHU2OUQzXHU2OUQ1XCIsNSxcIlx1NjlEQ1x1NjlERFx1NjlERVx1NjlFMVwiLDExLFwiXHU2OUVFXHU2OUVGXHU2OUYwXHU2OUYxXHU2OUYzXCIsOSxcIlx1NjlGRVx1NkEwMFwiLDksXCJcdTZBMEJcIiwxMSxcIlx1NkExOVwiLDUsXCJcdTZBMjBcdTZBMjJcIiw1LFwiXHU2QTI5XHU2QTJCXHU2QTJDXHU2QTJEXHU2QTJFXHU2QTMwXHU2QTMyXHU2QTMzXHU2QTM0XHU2QTM2XCIsNixcIlx1NkEzRlwiLDQsXCJcdTZBNDVcdTZBNDZcdTZBNDhcIiw3LFwiXHU2QTUxXCIsNixcIlx1NkE1QVwiXSxcbltcIjk5NDBcIixcIlx1NkE1Q1wiLDQsXCJcdTZBNjJcdTZBNjNcdTZBNjRcdTZBNjZcIiwxMCxcIlx1NkE3MlwiLDYsXCJcdTZBN0FcdTZBN0JcdTZBN0RcdTZBN0VcdTZBN0ZcdTZBODFcdTZBODJcdTZBODNcdTZBODVcIiw4LFwiXHU2QThGXHU2QTkyXCIsNCxcIlx1NkE5OFwiLDcsXCJcdTZBQTFcIiw1XSxcbltcIjk5ODBcIixcIlx1NkFBN1x1NkFBOFx1NkFBQVx1NkFBRFwiLDExNCxcIlx1NkIyNVx1NkIyNlx1NkIyOFwiLDZdLFxuW1wiOWE0MFwiLFwiXHU2QjJGXHU2QjMwXHU2QjMxXHU2QjMzXHU2QjM0XHU2QjM1XHU2QjM2XHU2QjM4XHU2QjNCXHU2QjNDXHU2QjNEXHU2QjNGXHU2QjQwXHU2QjQxXHU2QjQyXHU2QjQ0XHU2QjQ1XHU2QjQ4XHU2QjRBXHU2QjRCXHU2QjREXCIsMTEsXCJcdTZCNUFcIiw3LFwiXHU2QjY4XHU2QjY5XHU2QjZCXCIsMTMsXCJcdTZCN0FcdTZCN0RcdTZCN0VcdTZCN0ZcdTZCODBcdTZCODVcdTZCODhcIl0sXG5bXCI5YTgwXCIsXCJcdTZCOENcdTZCOEVcdTZCOEZcdTZCOTBcdTZCOTFcdTZCOTRcdTZCOTVcdTZCOTdcdTZCOThcdTZCOTlcdTZCOUNcIiw0LFwiXHU2QkEyXCIsNyxcIlx1NkJBQlwiLDcsXCJcdTZCQjZcdTZCQjhcIiw2LFwiXHU2QkMwXHU2QkMzXHU2QkM0XHU2QkM2XCIsNCxcIlx1NkJDQ1x1NkJDRVx1NkJEMFx1NkJEMVx1NkJEOFx1NkJEQVx1NkJEQ1wiLDQsXCJcdTZCRTJcIiw3LFwiXHU2QkVDXHU2QkVEXHU2QkVFXHU2QkYwXHU2QkYxXHU2QkYyXHU2QkY0XHU2QkY2XHU2QkY3XHU2QkY4XHU2QkZBXHU2QkZCXHU2QkZDXHU2QkZFXCIsNixcIlx1NkMwOFwiLDQsXCJcdTZDMEVcdTZDMTJcdTZDMTdcdTZDMUNcdTZDMURcdTZDMUVcdTZDMjBcdTZDMjNcdTZDMjVcdTZDMkJcdTZDMkNcdTZDMkRcdTZDMzFcdTZDMzNcdTZDMzZcdTZDMzdcdTZDMzlcdTZDM0FcdTZDM0JcdTZDM0NcdTZDM0VcdTZDM0ZcdTZDNDNcdTZDNDRcdTZDNDVcdTZDNDhcdTZDNEJcIiw0LFwiXHU2QzUxXHU2QzUyXHU2QzUzXHU2QzU2XHU2QzU4XCJdLFxuW1wiOWI0MFwiLFwiXHU2QzU5XHU2QzVBXHU2QzYyXHU2QzYzXHU2QzY1XHU2QzY2XHU2QzY3XHU2QzZCXCIsNCxcIlx1NkM3MVx1NkM3M1x1NkM3NVx1NkM3N1x1NkM3OFx1NkM3QVx1NkM3Qlx1NkM3Q1x1NkM3Rlx1NkM4MFx1NkM4NFx1NkM4N1x1NkM4QVx1NkM4Qlx1NkM4RFx1NkM4RVx1NkM5MVx1NkM5Mlx1NkM5NVx1NkM5Nlx1NkM5N1x1NkM5OFx1NkM5QVx1NkM5Q1x1NkM5RFx1NkM5RVx1NkNBMFx1NkNBMlx1NkNBOFx1NkNBQ1x1NkNBRlx1NkNCMFx1NkNCNFx1NkNCNVx1NkNCNlx1NkNCN1x1NkNCQVx1NkNDMFx1NkNDMVx1NkNDMlx1NkNDM1x1NkNDNlx1NkNDN1x1NkNDOFx1NkNDQlx1NkNDRFx1NkNDRVx1NkNDRlx1NkNEMVx1NkNEMlx1NkNEOFwiXSxcbltcIjliODBcIixcIlx1NkNEOVx1NkNEQVx1NkNEQ1x1NkNERFx1NkNERlx1NkNFNFx1NkNFNlx1NkNFN1x1NkNFOVx1NkNFQ1x1NkNFRFx1NkNGMlx1NkNGNFx1NkNGOVx1NkNGRlx1NkQwMFx1NkQwMlx1NkQwM1x1NkQwNVx1NkQwNlx1NkQwOFx1NkQwOVx1NkQwQVx1NkQwRFx1NkQwRlx1NkQxMFx1NkQxMVx1NkQxM1x1NkQxNFx1NkQxNVx1NkQxNlx1NkQxOFx1NkQxQ1x1NkQxRFx1NkQxRlwiLDUsXCJcdTZEMjZcdTZEMjhcdTZEMjlcdTZEMkNcdTZEMkRcdTZEMkZcdTZEMzBcdTZEMzRcdTZEMzZcdTZEMzdcdTZEMzhcdTZEM0FcdTZEM0ZcdTZENDBcdTZENDJcdTZENDRcdTZENDlcdTZENENcdTZENTBcdTZENTVcdTZENTZcdTZENTdcdTZENThcdTZENUJcdTZENURcdTZENUZcdTZENjFcdTZENjJcdTZENjRcdTZENjVcdTZENjdcdTZENjhcdTZENkJcdTZENkNcdTZENkRcdTZENzBcdTZENzFcdTZENzJcdTZENzNcdTZENzVcdTZENzZcdTZENzlcdTZEN0FcdTZEN0JcdTZEN0RcIiw0LFwiXHU2RDgzXHU2RDg0XHU2RDg2XHU2RDg3XHU2RDhBXHU2RDhCXHU2RDhEXHU2RDhGXHU2RDkwXHU2RDkyXHU2RDk2XCIsNCxcIlx1NkQ5Q1x1NkRBMlx1NkRBNVx1NkRBQ1x1NkRBRFx1NkRCMFx1NkRCMVx1NkRCM1x1NkRCNFx1NkRCNlx1NkRCN1x1NkRCOVwiLDUsXCJcdTZEQzFcdTZEQzJcdTZEQzNcdTZEQzhcdTZEQzlcdTZEQ0FcIl0sXG5bXCI5YzQwXCIsXCJcdTZEQ0RcdTZEQ0VcdTZEQ0ZcdTZERDBcdTZERDJcdTZERDNcdTZERDRcdTZERDVcdTZERDdcdTZEREFcdTZEREJcdTZERENcdTZEREZcdTZERTJcdTZERTNcdTZERTVcdTZERTdcdTZERThcdTZERTlcdTZERUFcdTZERURcdTZERUZcdTZERjBcdTZERjJcdTZERjRcdTZERjVcdTZERjZcdTZERjhcdTZERkFcdTZERkRcIiw3LFwiXHU2RTA2XHU2RTA3XHU2RTA4XHU2RTA5XHU2RTBCXHU2RTBGXHU2RTEyXHU2RTEzXHU2RTE1XHU2RTE4XHU2RTE5XHU2RTFCXHU2RTFDXHU2RTFFXHU2RTFGXHU2RTIyXHU2RTI2XHU2RTI3XHU2RTI4XHU2RTJBXHU2RTJDXHU2RTJFXHU2RTMwXHU2RTMxXHU2RTMzXHU2RTM1XCJdLFxuW1wiOWM4MFwiLFwiXHU2RTM2XHU2RTM3XHU2RTM5XHU2RTNCXCIsNyxcIlx1NkU0NVwiLDcsXCJcdTZFNEZcdTZFNTBcdTZFNTFcdTZFNTJcdTZFNTVcdTZFNTdcdTZFNTlcdTZFNUFcdTZFNUNcdTZFNURcdTZFNUVcdTZFNjBcIiwxMCxcIlx1NkU2Q1x1NkU2RFx1NkU2RlwiLDE0LFwiXHU2RTgwXHU2RTgxXHU2RTgyXHU2RTg0XHU2RTg3XHU2RTg4XHU2RThBXCIsNCxcIlx1NkU5MVwiLDYsXCJcdTZFOTlcdTZFOUFcdTZFOUJcdTZFOURcdTZFOUVcdTZFQTBcdTZFQTFcdTZFQTNcdTZFQTRcdTZFQTZcdTZFQThcdTZFQTlcdTZFQUJcdTZFQUNcdTZFQURcdTZFQUVcdTZFQjBcdTZFQjNcdTZFQjVcdTZFQjhcdTZFQjlcdTZFQkNcdTZFQkVcdTZFQkZcdTZFQzBcdTZFQzNcdTZFQzRcdTZFQzVcdTZFQzZcdTZFQzhcdTZFQzlcdTZFQ0FcdTZFQ0NcdTZFQ0RcdTZFQ0VcdTZFRDBcdTZFRDJcdTZFRDZcdTZFRDhcdTZFRDlcdTZFREJcdTZFRENcdTZFRERcdTZFRTNcdTZFRTdcdTZFRUFcIiw1XSxcbltcIjlkNDBcIixcIlx1NkVGMFx1NkVGMVx1NkVGMlx1NkVGM1x1NkVGNVx1NkVGNlx1NkVGN1x1NkVGOFx1NkVGQVwiLDcsXCJcdTZGMDNcdTZGMDRcdTZGMDVcdTZGMDdcdTZGMDhcdTZGMEFcIiw0LFwiXHU2RjEwXHU2RjExXHU2RjEyXHU2RjE2XCIsOSxcIlx1NkYyMVx1NkYyMlx1NkYyM1x1NkYyNVx1NkYyNlx1NkYyN1x1NkYyOFx1NkYyQ1x1NkYyRVx1NkYzMFx1NkYzMlx1NkYzNFx1NkYzNVx1NkYzN1wiLDYsXCJcdTZGM0ZcdTZGNDBcdTZGNDFcdTZGNDJcIl0sXG5bXCI5ZDgwXCIsXCJcdTZGNDNcdTZGNDRcdTZGNDVcdTZGNDhcdTZGNDlcdTZGNEFcdTZGNENcdTZGNEVcIiw5LFwiXHU2RjU5XHU2RjVBXHU2RjVCXHU2RjVEXHU2RjVGXHU2RjYwXHU2RjYxXHU2RjYzXHU2RjY0XHU2RjY1XHU2RjY3XCIsNSxcIlx1NkY2Rlx1NkY3MFx1NkY3MVx1NkY3M1x1NkY3NVx1NkY3Nlx1NkY3N1x1NkY3OVx1NkY3Qlx1NkY3RFwiLDYsXCJcdTZGODVcdTZGODZcdTZGODdcdTZGOEFcdTZGOEJcdTZGOEZcIiwxMixcIlx1NkY5RFx1NkY5RVx1NkY5Rlx1NkZBMFx1NkZBMlwiLDQsXCJcdTZGQThcIiwxMCxcIlx1NkZCNFx1NkZCNVx1NkZCN1x1NkZCOFx1NkZCQVwiLDUsXCJcdTZGQzFcdTZGQzNcIiw1LFwiXHU2RkNBXCIsNixcIlx1NkZEM1wiLDEwLFwiXHU2RkRGXHU2RkUyXHU2RkUzXHU2RkU0XHU2RkU1XCJdLFxuW1wiOWU0MFwiLFwiXHU2RkU2XCIsNyxcIlx1NkZGMFwiLDMyLFwiXHU3MDEyXCIsNyxcIlx1NzAxQ1wiLDYsXCJcdTcwMjRcIiw2XSxcbltcIjllODBcIixcIlx1NzAyQlwiLDksXCJcdTcwMzZcdTcwMzdcdTcwMzhcdTcwM0FcIiwxNyxcIlx1NzA0RFx1NzA0RVx1NzA1MFwiLDEzLFwiXHU3MDVGXCIsMTEsXCJcdTcwNkVcdTcwNzFcdTcwNzJcdTcwNzNcdTcwNzRcdTcwNzdcdTcwNzlcdTcwN0FcdTcwN0JcdTcwN0RcdTcwODFcdTcwODJcdTcwODNcdTcwODRcdTcwODZcdTcwODdcdTcwODhcdTcwOEJcdTcwOENcdTcwOERcdTcwOEZcdTcwOTBcdTcwOTFcdTcwOTNcdTcwOTdcdTcwOThcdTcwOUFcdTcwOUJcdTcwOUVcIiwxMixcIlx1NzBCMFx1NzBCMlx1NzBCNFx1NzBCNVx1NzBCNlx1NzBCQVx1NzBCRVx1NzBCRlx1NzBDNFx1NzBDNVx1NzBDNlx1NzBDN1x1NzBDOVx1NzBDQlwiLDEyLFwiXHU3MERBXCJdLFxuW1wiOWY0MFwiLFwiXHU3MERDXHU3MEREXHU3MERFXHU3MEUwXHU3MEUxXHU3MEUyXHU3MEUzXHU3MEU1XHU3MEVBXHU3MEVFXHU3MEYwXCIsNixcIlx1NzBGOFx1NzBGQVx1NzBGQlx1NzBGQ1x1NzBGRVwiLDEwLFwiXHU3MTBCXCIsNCxcIlx1NzExMVx1NzExMlx1NzExNFx1NzExN1x1NzExQlwiLDEwLFwiXHU3MTI3XCIsNyxcIlx1NzEzMlx1NzEzM1x1NzEzNFwiXSxcbltcIjlmODBcIixcIlx1NzEzNVx1NzEzN1wiLDEzLFwiXHU3MTQ2XHU3MTQ3XHU3MTQ4XHU3MTQ5XHU3MTRCXHU3MTREXHU3MTRGXCIsMTIsXCJcdTcxNURcdTcxNUZcIiw0LFwiXHU3MTY1XHU3MTY5XCIsNCxcIlx1NzE2Rlx1NzE3MFx1NzE3MVx1NzE3NFx1NzE3NVx1NzE3Nlx1NzE3N1x1NzE3OVx1NzE3Qlx1NzE3Q1x1NzE3RVwiLDUsXCJcdTcxODVcIiw0LFwiXHU3MThCXHU3MThDXHU3MThEXHU3MThFXHU3MTkwXHU3MTkxXHU3MTkyXHU3MTkzXHU3MTk1XHU3MTk2XHU3MTk3XHU3MTlBXCIsNCxcIlx1NzFBMVwiLDYsXCJcdTcxQTlcdTcxQUFcdTcxQUJcdTcxQURcIiw1LFwiXHU3MUI0XHU3MUI2XHU3MUI3XHU3MUI4XHU3MUJBXCIsOCxcIlx1NzFDNFwiLDksXCJcdTcxQ0ZcIiw0XSxcbltcImEwNDBcIixcIlx1NzFENlwiLDksXCJcdTcxRTFcdTcxRTJcdTcxRTNcdTcxRTRcdTcxRTZcdTcxRThcIiw1LFwiXHU3MUVGXCIsOSxcIlx1NzFGQVwiLDExLFwiXHU3MjA3XCIsMTldLFxuW1wiYTA4MFwiLFwiXHU3MjFCXHU3MjFDXHU3MjFFXCIsOSxcIlx1NzIyOVx1NzIyQlx1NzIyRFx1NzIyRVx1NzIyRlx1NzIzMlx1NzIzM1x1NzIzNFx1NzIzQVx1NzIzQ1x1NzIzRVx1NzI0MFwiLDYsXCJcdTcyNDlcdTcyNEFcdTcyNEJcdTcyNEVcdTcyNEZcdTcyNTBcdTcyNTFcdTcyNTNcdTcyNTRcdTcyNTVcdTcyNTdcdTcyNThcdTcyNUFcdTcyNUNcdTcyNUVcdTcyNjBcdTcyNjNcdTcyNjRcdTcyNjVcdTcyNjhcdTcyNkFcdTcyNkJcdTcyNkNcdTcyNkRcdTcyNzBcdTcyNzFcdTcyNzNcdTcyNzRcdTcyNzZcdTcyNzdcdTcyNzhcdTcyN0JcdTcyN0NcdTcyN0RcdTcyODJcdTcyODNcdTcyODVcIiw0LFwiXHU3MjhDXHU3MjhFXHU3MjkwXHU3MjkxXHU3MjkzXCIsMTEsXCJcdTcyQTBcIiwxMSxcIlx1NzJBRVx1NzJCMVx1NzJCMlx1NzJCM1x1NzJCNVx1NzJCQVwiLDYsXCJcdTcyQzVcdTcyQzZcdTcyQzdcdTcyQzlcdTcyQ0FcdTcyQ0JcdTcyQ0NcdTcyQ0ZcdTcyRDFcdTcyRDNcdTcyRDRcdTcyRDVcdTcyRDZcdTcyRDhcdTcyREFcdTcyREJcIl0sXG5bXCJhMWExXCIsXCJcdTMwMDBcdTMwMDFcdTMwMDJcdTAwQjdcdTAyQzlcdTAyQzdcdTAwQThcdTMwMDNcdTMwMDVcdTIwMTRcdUZGNUVcdTIwMTZcdTIwMjZcdTIwMThcdTIwMTlcdTIwMUNcdTIwMURcdTMwMTRcdTMwMTVcdTMwMDhcIiw3LFwiXHUzMDE2XHUzMDE3XHUzMDEwXHUzMDExXHUwMEIxXHUwMEQ3XHUwMEY3XHUyMjM2XHUyMjI3XHUyMjI4XHUyMjExXHUyMjBGXHUyMjJBXHUyMjI5XHUyMjA4XHUyMjM3XHUyMjFBXHUyMkE1XHUyMjI1XHUyMjIwXHUyMzEyXHUyMjk5XHUyMjJCXHUyMjJFXHUyMjYxXHUyMjRDXHUyMjQ4XHUyMjNEXHUyMjFEXHUyMjYwXHUyMjZFXHUyMjZGXHUyMjY0XHUyMjY1XHUyMjFFXHUyMjM1XHUyMjM0XHUyNjQyXHUyNjQwXHUwMEIwXHUyMDMyXHUyMDMzXHUyMTAzXHVGRjA0XHUwMEE0XHVGRkUwXHVGRkUxXHUyMDMwXHUwMEE3XHUyMTE2XHUyNjA2XHUyNjA1XHUyNUNCXHUyNUNGXHUyNUNFXHUyNUM3XHUyNUM2XHUyNUExXHUyNUEwXHUyNUIzXHUyNUIyXHUyMDNCXHUyMTkyXHUyMTkwXHUyMTkxXHUyMTkzXHUzMDEzXCJdLFxuW1wiYTJhMVwiLFwiXHUyMTcwXCIsOV0sXG5bXCJhMmIxXCIsXCJcdTI0ODhcIiwxOSxcIlx1MjQ3NFwiLDE5LFwiXHUyNDYwXCIsOV0sXG5bXCJhMmU1XCIsXCJcdTMyMjBcIiw5XSxcbltcImEyZjFcIixcIlx1MjE2MFwiLDExXSxcbltcImEzYTFcIixcIlx1RkYwMVx1RkYwMlx1RkYwM1x1RkZFNVx1RkYwNVwiLDg4LFwiXHVGRkUzXCJdLFxuW1wiYTRhMVwiLFwiXHUzMDQxXCIsODJdLFxuW1wiYTVhMVwiLFwiXHUzMEExXCIsODVdLFxuW1wiYTZhMVwiLFwiXHUwMzkxXCIsMTYsXCJcdTAzQTNcIiw2XSxcbltcImE2YzFcIixcIlx1MDNCMVwiLDE2LFwiXHUwM0MzXCIsNl0sXG5bXCJhNmUwXCIsXCJcdUZFMzVcdUZFMzZcdUZFMzlcdUZFM0FcdUZFM0ZcdUZFNDBcdUZFM0RcdUZFM0VcdUZFNDFcdUZFNDJcdUZFNDNcdUZFNDRcIl0sXG5bXCJhNmVlXCIsXCJcdUZFM0JcdUZFM0NcdUZFMzdcdUZFMzhcdUZFMzFcIl0sXG5bXCJhNmY0XCIsXCJcdUZFMzNcdUZFMzRcIl0sXG5bXCJhN2ExXCIsXCJcdTA0MTBcIiw1LFwiXHUwNDAxXHUwNDE2XCIsMjVdLFxuW1wiYTdkMVwiLFwiXHUwNDMwXCIsNSxcIlx1MDQ1MVx1MDQzNlwiLDI1XSxcbltcImE4NDBcIixcIlx1MDJDQVx1MDJDQlx1MDJEOVx1MjAxM1x1MjAxNVx1MjAyNVx1MjAzNVx1MjEwNVx1MjEwOVx1MjE5Nlx1MjE5N1x1MjE5OFx1MjE5OVx1MjIxNVx1MjIxRlx1MjIyM1x1MjI1Mlx1MjI2Nlx1MjI2N1x1MjJCRlx1MjU1MFwiLDM1LFwiXHUyNTgxXCIsNl0sXG5bXCJhODgwXCIsXCJcdTI1ODhcIiw3LFwiXHUyNTkzXHUyNTk0XHUyNTk1XHUyNUJDXHUyNUJEXHUyNUUyXHUyNUUzXHUyNUU0XHUyNUU1XHUyNjA5XHUyMjk1XHUzMDEyXHUzMDFEXHUzMDFFXCJdLFxuW1wiYThhMVwiLFwiXHUwMTAxXHUwMEUxXHUwMUNFXHUwMEUwXHUwMTEzXHUwMEU5XHUwMTFCXHUwMEU4XHUwMTJCXHUwMEVEXHUwMUQwXHUwMEVDXHUwMTREXHUwMEYzXHUwMUQyXHUwMEYyXHUwMTZCXHUwMEZBXHUwMUQ0XHUwMEY5XHUwMUQ2XHUwMUQ4XHUwMURBXHUwMURDXHUwMEZDXHUwMEVBXHUwMjUxXCJdLFxuW1wiYThiZFwiLFwiXHUwMTQ0XHUwMTQ4XCJdLFxuW1wiYThjMFwiLFwiXHUwMjYxXCJdLFxuW1wiYThjNVwiLFwiXHUzMTA1XCIsMzZdLFxuW1wiYTk0MFwiLFwiXHUzMDIxXCIsOCxcIlx1MzJBM1x1MzM4RVx1MzM4Rlx1MzM5Q1x1MzM5RFx1MzM5RVx1MzNBMVx1MzNDNFx1MzNDRVx1MzNEMVx1MzNEMlx1MzNENVx1RkUzMFx1RkZFMlx1RkZFNFwiXSxcbltcImE5NTlcIixcIlx1MjEyMVx1MzIzMVwiXSxcbltcImE5NWNcIixcIlx1MjAxMFwiXSxcbltcImE5NjBcIixcIlx1MzBGQ1x1MzA5Qlx1MzA5Q1x1MzBGRFx1MzBGRVx1MzAwNlx1MzA5RFx1MzA5RVx1RkU0OVwiLDksXCJcdUZFNTRcdUZFNTVcdUZFNTZcdUZFNTdcdUZFNTlcIiw4XSxcbltcImE5ODBcIixcIlx1RkU2MlwiLDQsXCJcdUZFNjhcdUZFNjlcdUZFNkFcdUZFNkJcIl0sXG5bXCJhOTk2XCIsXCJcdTMwMDdcIl0sXG5bXCJhOWE0XCIsXCJcdTI1MDBcIiw3NV0sXG5bXCJhYTQwXCIsXCJcdTcyRENcdTcyRERcdTcyREZcdTcyRTJcIiw1LFwiXHU3MkVBXHU3MkVCXHU3MkY1XHU3MkY2XHU3MkY5XHU3MkZEXHU3MkZFXHU3MkZGXHU3MzAwXHU3MzAyXHU3MzA0XCIsNSxcIlx1NzMwQlx1NzMwQ1x1NzMwRFx1NzMwRlx1NzMxMFx1NzMxMVx1NzMxMlx1NzMxNFx1NzMxOFx1NzMxOVx1NzMxQVx1NzMxRlx1NzMyMFx1NzMyM1x1NzMyNFx1NzMyNlx1NzMyN1x1NzMyOFx1NzMyRFx1NzMyRlx1NzMzMFx1NzMzMlx1NzMzM1x1NzMzNVx1NzMzNlx1NzMzQVx1NzMzQlx1NzMzQ1x1NzMzRFx1NzM0MFwiLDhdLFxuW1wiYWE4MFwiLFwiXHU3MzQ5XHU3MzRBXHU3MzRCXHU3MzRDXHU3MzRFXHU3MzRGXHU3MzUxXHU3MzUzXHU3MzU0XHU3MzU1XHU3MzU2XHU3MzU4XCIsNyxcIlx1NzM2MVwiLDEwLFwiXHU3MzZFXHU3MzcwXHU3MzcxXCJdLFxuW1wiYWI0MFwiLFwiXHU3MzcyXCIsMTEsXCJcdTczN0ZcIiw0LFwiXHU3Mzg1XHU3Mzg2XHU3Mzg4XHU3MzhBXHU3MzhDXHU3MzhEXHU3MzhGXHU3MzkwXHU3MzkyXHU3MzkzXHU3Mzk0XHU3Mzk1XHU3Mzk3XHU3Mzk4XHU3Mzk5XHU3MzlBXHU3MzlDXHU3MzlEXHU3MzlFXHU3M0EwXHU3M0ExXHU3M0EzXCIsNSxcIlx1NzNBQVx1NzNBQ1x1NzNBRFx1NzNCMVx1NzNCNFx1NzNCNVx1NzNCNlx1NzNCOFx1NzNCOVx1NzNCQ1x1NzNCRFx1NzNCRVx1NzNCRlx1NzNDMVx1NzNDM1wiLDRdLFxuW1wiYWI4MFwiLFwiXHU3M0NCXHU3M0NDXHU3M0NFXHU3M0QyXCIsNixcIlx1NzNEQVx1NzNEQlx1NzNEQ1x1NzNERFx1NzNERlx1NzNFMVx1NzNFMlx1NzNFM1x1NzNFNFx1NzNFNlx1NzNFOFx1NzNFQVx1NzNFQlx1NzNFQ1x1NzNFRVx1NzNFRlx1NzNGMFx1NzNGMVx1NzNGM1wiLDRdLFxuW1wiYWM0MFwiLFwiXHU3M0Y4XCIsMTAsXCJcdTc0MDRcdTc0MDdcdTc0MDhcdTc0MEJcdTc0MENcdTc0MERcdTc0MEVcdTc0MTFcIiw4LFwiXHU3NDFDXCIsNSxcIlx1NzQyM1x1NzQyNFx1NzQyN1x1NzQyOVx1NzQyQlx1NzQyRFx1NzQyRlx1NzQzMVx1NzQzMlx1NzQzN1wiLDQsXCJcdTc0M0RcdTc0M0VcdTc0M0ZcdTc0NDBcdTc0NDJcIiwxMV0sXG5bXCJhYzgwXCIsXCJcdTc0NEVcIiw2LFwiXHU3NDU2XHU3NDU4XHU3NDVEXHU3NDYwXCIsMTIsXCJcdTc0NkVcdTc0NkZcdTc0NzFcIiw0LFwiXHU3NDc4XHU3NDc5XHU3NDdBXCJdLFxuW1wiYWQ0MFwiLFwiXHU3NDdCXHU3NDdDXHU3NDdEXHU3NDdGXHU3NDgyXHU3NDg0XHU3NDg1XHU3NDg2XHU3NDg4XHU3NDg5XHU3NDhBXHU3NDhDXHU3NDhEXHU3NDhGXHU3NDkxXCIsMTAsXCJcdTc0OURcdTc0OUZcIiw3LFwiXHU3NEFBXCIsMTUsXCJcdTc0QkJcIiwxMl0sXG5bXCJhZDgwXCIsXCJcdTc0QzhcIiw5LFwiXHU3NEQzXCIsOCxcIlx1NzRERFx1NzRERlx1NzRFMVx1NzRFNVx1NzRFN1wiLDYsXCJcdTc0RjBcdTc0RjFcdTc0RjJcIl0sXG5bXCJhZTQwXCIsXCJcdTc0RjNcdTc0RjVcdTc0RjhcIiw2LFwiXHU3NTAwXHU3NTAxXHU3NTAyXHU3NTAzXHU3NTA1XCIsNyxcIlx1NzUwRVx1NzUxMFx1NzUxMlx1NzUxNFx1NzUxNVx1NzUxNlx1NzUxN1x1NzUxQlx1NzUxRFx1NzUxRVx1NzUyMFwiLDQsXCJcdTc1MjZcdTc1MjdcdTc1MkFcdTc1MkVcdTc1MzRcdTc1MzZcdTc1MzlcdTc1M0NcdTc1M0RcdTc1M0ZcdTc1NDFcdTc1NDJcdTc1NDNcdTc1NDRcdTc1NDZcdTc1NDdcdTc1NDlcdTc1NEFcdTc1NERcdTc1NTBcdTc1NTFcdTc1NTJcdTc1NTNcdTc1NTVcdTc1NTZcdTc1NTdcdTc1NThcIl0sXG5bXCJhZTgwXCIsXCJcdTc1NURcIiw3LFwiXHU3NTY3XHU3NTY4XHU3NTY5XHU3NTZCXCIsNixcIlx1NzU3M1x1NzU3NVx1NzU3Nlx1NzU3N1x1NzU3QVwiLDQsXCJcdTc1ODBcdTc1ODFcdTc1ODJcdTc1ODRcdTc1ODVcdTc1ODdcIl0sXG5bXCJhZjQwXCIsXCJcdTc1ODhcdTc1ODlcdTc1OEFcdTc1OENcdTc1OERcdTc1OEVcdTc1OTBcdTc1OTNcdTc1OTVcdTc1OThcdTc1OUJcdTc1OUNcdTc1OUVcdTc1QTJcdTc1QTZcIiw0LFwiXHU3NUFEXHU3NUI2XHU3NUI3XHU3NUJBXHU3NUJCXHU3NUJGXHU3NUMwXHU3NUMxXHU3NUM2XHU3NUNCXHU3NUNDXHU3NUNFXHU3NUNGXHU3NUQwXHU3NUQxXHU3NUQzXHU3NUQ3XHU3NUQ5XHU3NURBXHU3NURDXHU3NUREXHU3NURGXHU3NUUwXHU3NUUxXHU3NUU1XHU3NUU5XHU3NUVDXHU3NUVEXHU3NUVFXHU3NUVGXHU3NUYyXHU3NUYzXHU3NUY1XHU3NUY2XHU3NUY3XHU3NUY4XHU3NUZBXHU3NUZCXHU3NUZEXHU3NUZFXHU3NjAyXHU3NjA0XHU3NjA2XHU3NjA3XCJdLFxuW1wiYWY4MFwiLFwiXHU3NjA4XHU3NjA5XHU3NjBCXHU3NjBEXHU3NjBFXHU3NjBGXHU3NjExXHU3NjEyXHU3NjEzXHU3NjE0XHU3NjE2XHU3NjFBXHU3NjFDXHU3NjFEXHU3NjFFXHU3NjIxXHU3NjIzXHU3NjI3XHU3NjI4XHU3NjJDXHU3NjJFXHU3NjJGXHU3NjMxXHU3NjMyXHU3NjM2XHU3NjM3XHU3NjM5XHU3NjNBXHU3NjNCXHU3NjNEXHU3NjQxXHU3NjQyXHU3NjQ0XCJdLFxuW1wiYjA0MFwiLFwiXHU3NjQ1XCIsNixcIlx1NzY0RVwiLDUsXCJcdTc2NTVcdTc2NTdcIiw0LFwiXHU3NjVEXHU3NjVGXHU3NjYwXHU3NjYxXHU3NjYyXHU3NjY0XCIsNixcIlx1NzY2Q1x1NzY2RFx1NzY2RVx1NzY3MFwiLDcsXCJcdTc2NzlcdTc2N0FcdTc2N0NcdTc2N0ZcdTc2ODBcdTc2ODFcdTc2ODNcdTc2ODVcdTc2ODlcdTc2OEFcdTc2OENcdTc2OERcdTc2OEZcdTc2OTBcdTc2OTJcdTc2OTRcdTc2OTVcdTc2OTdcdTc2OThcdTc2OUFcdTc2OUJcIl0sXG5bXCJiMDgwXCIsXCJcdTc2OUNcIiw3LFwiXHU3NkE1XCIsOCxcIlx1NzZBRlx1NzZCMFx1NzZCM1x1NzZCNVwiLDksXCJcdTc2QzBcdTc2QzFcdTc2QzNcdTU1NEFcdTk2M0ZcdTU3QzNcdTYzMjhcdTU0Q0VcdTU1MDlcdTU0QzBcdTc2OTFcdTc2NENcdTg1M0NcdTc3RUVcdTgyN0VcdTc4OERcdTcyMzFcdTk2OThcdTk3OERcdTZDMjhcdTVCODlcdTRGRkFcdTYzMDlcdTY2OTdcdTVDQjhcdTgwRkFcdTY4NDhcdTgwQUVcdTY2MDJcdTc2Q0VcdTUxRjlcdTY1NTZcdTcxQUNcdTdGRjFcdTg4ODRcdTUwQjJcdTU5NjVcdTYxQ0FcdTZGQjNcdTgyQURcdTYzNENcdTYyNTJcdTUzRURcdTU0MjdcdTdCMDZcdTUxNkJcdTc1QTRcdTVERjRcdTYyRDRcdThEQ0JcdTk3NzZcdTYyOEFcdTgwMTlcdTU3NURcdTk3MzhcdTdGNjJcdTcyMzhcdTc2N0RcdTY3Q0ZcdTc2N0VcdTY0NDZcdTRGNzBcdThEMjVcdTYyRENcdTdBMTdcdTY1OTFcdTczRURcdTY0MkNcdTYyNzNcdTgyMkNcdTk4ODFcdTY3N0ZcdTcyNDhcdTYyNkVcdTYyQ0NcdTRGMzRcdTc0RTNcdTUzNEFcdTUyOUVcdTdFQ0FcdTkwQTZcdTVFMkVcdTY4ODZcdTY5OUNcdTgxODBcdTdFRDFcdTY4RDJcdTc4QzVcdTg2OENcdTk1NTFcdTUwOERcdThDMjRcdTgyREVcdTgwREVcdTUzMDVcdTg5MTJcdTUyNjVcIl0sXG5bXCJiMTQwXCIsXCJcdTc2QzRcdTc2QzdcdTc2QzlcdTc2Q0JcdTc2Q0NcdTc2RDNcdTc2RDVcdTc2RDlcdTc2REFcdTc2RENcdTc2RERcdTc2REVcdTc2RTBcIiw0LFwiXHU3NkU2XCIsNyxcIlx1NzZGMFx1NzZGM1x1NzZGNVx1NzZGNlx1NzZGN1x1NzZGQVx1NzZGQlx1NzZGRFx1NzZGRlx1NzcwMFx1NzcwMlx1NzcwM1x1NzcwNVx1NzcwNlx1NzcwQVx1NzcwQ1x1NzcwRVwiLDEwLFwiXHU3NzFCXHU3NzFDXHU3NzFEXHU3NzFFXHU3NzIxXHU3NzIzXHU3NzI0XHU3NzI1XHU3NzI3XHU3NzJBXHU3NzJCXCJdLFxuW1wiYjE4MFwiLFwiXHU3NzJDXHU3NzJFXHU3NzMwXCIsNCxcIlx1NzczOVx1NzczQlx1NzczRFx1NzczRVx1NzczRlx1Nzc0Mlx1Nzc0NFx1Nzc0NVx1Nzc0Nlx1Nzc0OFwiLDcsXCJcdTc3NTJcIiw3LFwiXHU3NzVDXHU4NTg0XHU5NkY5XHU0RkREXHU1ODIxXHU5OTcxXHU1QjlEXHU2MkIxXHU2MkE1XHU2NkI0XHU4Qzc5XHU5QzhEXHU3MjA2XHU2NzZGXHU3ODkxXHU2MEIyXHU1MzUxXHU1MzE3XHU4Rjg4XHU4MENDXHU4RDFEXHU5NEExXHU1MDBEXHU3MkM4XHU1OTA3XHU2MEVCXHU3MTE5XHU4OEFCXHU1OTU0XHU4MkVGXHU2NzJDXHU3QjI4XHU1RDI5XHU3RUY3XHU3NTJEXHU2Q0Y1XHU4RTY2XHU4RkY4XHU5MDNDXHU5RjNCXHU2QkQ0XHU5MTE5XHU3QjE0XHU1RjdDXHU3OEE3XHU4NEQ2XHU4NTNEXHU2QkQ1XHU2QkQ5XHU2QkQ2XHU1RTAxXHU1RTg3XHU3NUY5XHU5NUVEXHU2NTVEXHU1RjBBXHU1RkM1XHU4RjlGXHU1OEMxXHU4MUMyXHU5MDdGXHU5NjVCXHU5N0FEXHU4RkI5XHU3RjE2XHU4RDJDXHU2MjQxXHU0RkJGXHU1M0Q4XHU1MzVFXHU4RkE4XHU4RkE5XHU4RkFCXHU5MDREXHU2ODA3XHU1RjZBXHU4MTk4XHU4ODY4XHU5Q0Q2XHU2MThCXHU1MjJCXHU3NjJBXHU1RjZDXHU2NThDXHU2RkQyXHU2RUU4XHU1QkJFXHU2NDQ4XHU1MTc1XHU1MUIwXHU2N0M0XHU0RTE5XHU3OUM5XHU5OTdDXHU3MEIzXCJdLFxuW1wiYjI0MFwiLFwiXHU3NzVEXHU3NzVFXHU3NzVGXHU3NzYwXHU3NzY0XHU3NzY3XHU3NzY5XHU3NzZBXHU3NzZEXCIsMTEsXCJcdTc3N0FcdTc3N0JcdTc3N0NcdTc3ODFcdTc3ODJcdTc3ODNcdTc3ODZcIiw1LFwiXHU3NzhGXHU3NzkwXHU3NzkzXCIsMTEsXCJcdTc3QTFcdTc3QTNcdTc3QTRcdTc3QTZcdTc3QThcdTc3QUJcdTc3QURcdTc3QUVcdTc3QUZcdTc3QjFcdTc3QjJcdTc3QjRcdTc3QjZcIiw0XSxcbltcImIyODBcIixcIlx1NzdCQ1x1NzdCRVx1NzdDMFwiLDEyLFwiXHU3N0NFXCIsOCxcIlx1NzdEOFx1NzdEOVx1NzdEQVx1NzdERFwiLDQsXCJcdTc3RTRcdTc1QzVcdTVFNzZcdTczQkJcdTgzRTBcdTY0QURcdTYyRThcdTk0QjVcdTZDRTJcdTUzNUFcdTUyQzNcdTY0MEZcdTk0QzJcdTdCOTRcdTRGMkZcdTVFMUJcdTgyMzZcdTgxMTZcdTgxOEFcdTZFMjRcdTZDQ0FcdTlBNzNcdTYzNTVcdTUzNUNcdTU0RkFcdTg4NjVcdTU3RTBcdTRFMERcdTVFMDNcdTZCNjVcdTdDM0ZcdTkwRThcdTYwMTZcdTY0RTZcdTczMUNcdTg4QzFcdTY3NTBcdTYyNERcdThEMjJcdTc3NkNcdThFMjlcdTkxQzdcdTVGNjlcdTgzRENcdTg1MjFcdTk5MTBcdTUzQzJcdTg2OTVcdTZCOEJcdTYwRURcdTYwRThcdTcwN0ZcdTgyQ0RcdTgyMzFcdTRFRDNcdTZDQTdcdTg1Q0ZcdTY0Q0RcdTdDRDlcdTY5RkRcdTY2RjlcdTgzNDlcdTUzOTVcdTdCNTZcdTRGQTdcdTUxOENcdTZENEJcdTVDNDJcdThFNkRcdTYzRDJcdTUzQzlcdTgzMkNcdTgzMzZcdTY3RTVcdTc4QjRcdTY0M0RcdTVCREZcdTVDOTRcdTVERUVcdThCRTdcdTYyQzZcdTY3RjRcdThDN0FcdTY0MDBcdTYzQkFcdTg3NDlcdTk5OEJcdThDMTdcdTdGMjBcdTk0RjJcdTRFQTdcdTk2MTBcdTk4QTRcdTY2MENcdTczMTZcIl0sXG5bXCJiMzQwXCIsXCJcdTc3RTZcdTc3RThcdTc3RUFcdTc3RUZcdTc3RjBcdTc3RjFcdTc3RjJcdTc3RjRcdTc3RjVcdTc3RjdcdTc3RjlcdTc3RkFcdTc3RkJcdTc3RkNcdTc4MDNcIiw1LFwiXHU3ODBBXHU3ODBCXHU3ODBFXHU3ODBGXHU3ODEwXHU3ODEzXHU3ODE1XHU3ODE5XHU3ODFCXHU3ODFFXHU3ODIwXHU3ODIxXHU3ODIyXHU3ODI0XHU3ODI4XHU3ODJBXHU3ODJCXHU3ODJFXHU3ODJGXHU3ODMxXHU3ODMyXHU3ODMzXHU3ODM1XHU3ODM2XHU3ODNEXHU3ODNGXHU3ODQxXHU3ODQyXHU3ODQzXHU3ODQ0XHU3ODQ2XHU3ODQ4XHU3ODQ5XHU3ODRBXHU3ODRCXHU3ODREXHU3ODRGXHU3ODUxXHU3ODUzXHU3ODU0XHU3ODU4XHU3ODU5XHU3ODVBXCJdLFxuW1wiYjM4MFwiLFwiXHU3ODVCXHU3ODVDXHU3ODVFXCIsMTEsXCJcdTc4NkZcIiw3LFwiXHU3ODc4XHU3ODc5XHU3ODdBXHU3ODdCXHU3ODdEXCIsNixcIlx1NTczQVx1NUMxRFx1NUUzOFx1OTU3Rlx1NTA3Rlx1ODBBMFx1NTM4Mlx1NjU1RVx1NzU0NVx1NTUzMVx1NTAyMVx1OEQ4NVx1NjI4NFx1OTQ5RVx1NjcxRFx1NTYzMlx1NkY2RVx1NURFMlx1NTQzNVx1NzA5Mlx1OEY2Nlx1NjI2Rlx1NjRBNFx1NjNBM1x1NUY3Qlx1NkY4OFx1OTBGNFx1ODFFM1x1OEZCMFx1NUMxOFx1NjY2OFx1NUZGMVx1NkM4OVx1OTY0OFx1OEQ4MVx1ODg2Q1x1NjQ5MVx1NzlGMFx1NTdDRVx1NkE1OVx1NjIxMFx1NTQ0OFx1NEU1OFx1N0EwQlx1NjBFOVx1NkY4NFx1OEJEQVx1NjI3Rlx1OTAxRVx1OUE4Qlx1NzlFNFx1NTQwM1x1NzVGNFx1NjMwMVx1NTMxOVx1NkM2MFx1OEZERlx1NUYxQlx1OUE3MFx1ODAzQlx1OUY3Rlx1NEY4OFx1NUMzQVx1OEQ2NFx1N0ZDNVx1NjVBNVx1NzBCRFx1NTE0NVx1NTFCMlx1ODY2Qlx1NUQwN1x1NUJBMFx1NjJCRFx1OTE2Q1x1NzU3NFx1OEUwQ1x1N0EyMFx1NjEwMVx1N0I3OVx1NEVDN1x1N0VGOFx1Nzc4NVx1NEUxMVx1ODFFRFx1NTIxRFx1NTFGQVx1NkE3MVx1NTNBOFx1OEU4N1x1OTUwNFx1OTZDRlx1NkVDMVx1OTY2NFx1Njk1QVwiXSxcbltcImI0NDBcIixcIlx1Nzg4NFx1Nzg4NVx1Nzg4Nlx1Nzg4OFx1Nzg4QVx1Nzg4Qlx1Nzg4Rlx1Nzg5MFx1Nzg5Mlx1Nzg5NFx1Nzg5NVx1Nzg5Nlx1Nzg5OVx1Nzg5RFx1Nzg5RVx1NzhBMFx1NzhBMlx1NzhBNFx1NzhBNlx1NzhBOFwiLDcsXCJcdTc4QjVcdTc4QjZcdTc4QjdcdTc4QjhcdTc4QkFcdTc4QkJcdTc4QkNcdTc4QkRcdTc4QkZcdTc4QzBcdTc4QzJcdTc4QzNcdTc4QzRcdTc4QzZcdTc4QzdcdTc4QzhcdTc4Q0NcdTc4Q0RcdTc4Q0VcdTc4Q0ZcdTc4RDFcdTc4RDJcdTc4RDNcdTc4RDZcdTc4RDdcdTc4RDhcdTc4REFcIiw5XSxcbltcImI0ODBcIixcIlx1NzhFNFx1NzhFNVx1NzhFNlx1NzhFN1x1NzhFOVx1NzhFQVx1NzhFQlx1NzhFRFwiLDQsXCJcdTc4RjNcdTc4RjVcdTc4RjZcdTc4RjhcdTc4RjlcdTc4RkJcIiw1LFwiXHU3OTAyXHU3OTAzXHU3OTA0XHU3OTA2XCIsNixcIlx1Nzg0MFx1NTBBOFx1NzdEN1x1NjQxMFx1ODlFNlx1NTkwNFx1NjNFM1x1NURERFx1N0E3Rlx1NjkzRFx1NEYyMFx1ODIzOVx1NTU5OFx1NEUzMlx1NzVBRVx1N0E5N1x1NUU2Mlx1NUU4QVx1OTVFRlx1NTIxQlx1NTQzOVx1NzA4QVx1NjM3Nlx1OTUyNFx1NTc4Mlx1NjYyNVx1NjkzRlx1OTE4N1x1NTUwN1x1NkRGM1x1N0VBRlx1ODgyMlx1NjIzM1x1N0VGMFx1NzVCNVx1ODMyOFx1NzhDMVx1OTZDQ1x1OEY5RVx1NjE0OFx1NzRGN1x1OEJDRFx1NkI2NFx1NTIzQVx1OEQ1MFx1NkIyMVx1ODA2QVx1ODQ3MVx1NTZGMVx1NTMwNlx1NEVDRVx1NEUxQlx1NTFEMVx1N0M5N1x1OTE4Qlx1N0MwN1x1NEZDM1x1OEU3Rlx1N0JFMVx1N0E5Q1x1NjQ2N1x1NUQxNFx1NTBBQ1x1ODEwNlx1NzYwMVx1N0NCOVx1NkRFQ1x1N0ZFMFx1Njc1MVx1NUI1OFx1NUJGOFx1NzhDQlx1NjRBRVx1NjQxM1x1NjNBQVx1NjMyQlx1OTUxOVx1NjQyRFx1OEZCRVx1N0I1NFx1NzYyOVx1NjI1M1x1NTkyN1x1NTQ0Nlx1NkI3OVx1NTBBM1x1NjIzNFx1NUUyNlx1NkI4Nlx1NEVFM1x1OEQzN1x1ODg4Qlx1NUY4NVx1OTAyRVwiXSxcbltcImI1NDBcIixcIlx1NzkwRFwiLDUsXCJcdTc5MTRcIiw5LFwiXHU3OTFGXCIsNCxcIlx1NzkyNVwiLDE0LFwiXHU3OTM1XCIsNCxcIlx1NzkzRFx1NzkzRlx1Nzk0Mlx1Nzk0M1x1Nzk0NFx1Nzk0NVx1Nzk0N1x1Nzk0QVwiLDgsXCJcdTc5NTRcdTc5NTVcdTc5NThcdTc5NTlcdTc5NjFcdTc5NjNcIl0sXG5bXCJiNTgwXCIsXCJcdTc5NjRcdTc5NjZcdTc5NjlcdTc5NkFcdTc5NkJcdTc5NkNcdTc5NkVcdTc5NzBcIiw2LFwiXHU3OTc5XHU3OTdCXCIsNCxcIlx1Nzk4Mlx1Nzk4M1x1Nzk4Nlx1Nzk4N1x1Nzk4OFx1Nzk4OVx1Nzk4Qlx1Nzk4Q1x1Nzk4RFx1Nzk4RVx1Nzk5MFx1Nzk5MVx1Nzk5Mlx1NjAyMFx1ODAzRFx1NjJDNVx1NEUzOVx1NTM1NVx1OTBGOFx1NjNCOFx1ODBDNlx1NjVFNlx1NkMyRVx1NEY0Nlx1NjBFRVx1NkRFMVx1OEJERVx1NUYzOVx1ODZDQlx1NUY1M1x1NjMyMVx1NTE1QVx1ODM2MVx1Njg2M1x1NTIwMFx1NjM2M1x1OEU0OFx1NTAxMlx1NUM5Qlx1Nzk3N1x1NUJGQ1x1NTIzMFx1N0EzQlx1NjBCQ1x1OTA1M1x1NzZEN1x1NUZCN1x1NUY5N1x1NzY4NFx1OEU2Q1x1NzA2Rlx1NzY3Qlx1N0I0OVx1NzdBQVx1NTFGM1x1OTA5M1x1NTgyNFx1NEY0RVx1NkVGNFx1OEZFQVx1NjU0Q1x1N0IxQlx1NzJDNFx1NkRBNFx1N0ZERlx1NUFFMVx1NjJCNVx1NUU5NVx1NTczMFx1ODQ4Mlx1N0IyQ1x1NUUxRFx1NUYxRlx1OTAxMlx1N0YxNFx1OThBMFx1NjM4Mlx1NkVDN1x1Nzg5OFx1NzBCOVx1NTE3OFx1OTc1Qlx1NTdBQlx1NzUzNVx1NEY0M1x1NzUzOFx1NUU5N1x1NjBFNlx1NTk2MFx1NkRDMFx1NkJCRlx1Nzg4OVx1NTNGQ1x1OTZENVx1NTFDQlx1NTIwMVx1NjM4OVx1NTQwQVx1OTQ5M1x1OEMwM1x1OERDQ1x1NzIzOVx1Nzg5Rlx1ODc3Nlx1OEZFRFx1OEMwRFx1NTNFMFwiXSxcbltcImI2NDBcIixcIlx1Nzk5M1wiLDYsXCJcdTc5OUJcIiwxMSxcIlx1NzlBOFwiLDEwLFwiXHU3OUI0XCIsNCxcIlx1NzlCQ1x1NzlCRlx1NzlDMlx1NzlDNFx1NzlDNVx1NzlDN1x1NzlDOFx1NzlDQVx1NzlDQ1x1NzlDRVx1NzlDRlx1NzlEMFx1NzlEM1x1NzlENFx1NzlENlx1NzlEN1x1NzlEOVwiLDUsXCJcdTc5RTBcdTc5RTFcdTc5RTJcdTc5RTVcdTc5RThcdTc5RUFcIl0sXG5bXCJiNjgwXCIsXCJcdTc5RUNcdTc5RUVcdTc5RjFcIiw2LFwiXHU3OUY5XHU3OUZBXHU3OUZDXHU3OUZFXHU3OUZGXHU3QTAxXHU3QTA0XHU3QTA1XHU3QTA3XHU3QTA4XHU3QTA5XHU3QTBBXHU3QTBDXHU3QTBGXCIsNCxcIlx1N0ExNVx1N0ExNlx1N0ExOFx1N0ExOVx1N0ExQlx1N0ExQ1x1NEUwMVx1NzZFRlx1NTNFRVx1OTQ4OVx1OTg3Nlx1OUYwRVx1OTUyRFx1NUI5QVx1OEJBMlx1NEUyMlx1NEUxQ1x1NTFBQ1x1ODQ2M1x1NjFDMlx1NTJBOFx1NjgwQlx1NEY5N1x1NjA2Qlx1NTFCQlx1NkQxRVx1NTE1Q1x1NjI5Nlx1NjU5N1x1OTY2MVx1OEM0Nlx1OTAxN1x1NzVEOFx1OTBGRFx1Nzc2M1x1NkJEMlx1NzI4QVx1NzJFQ1x1OEJGQlx1NTgzNVx1Nzc3OVx1OEQ0Q1x1Njc1Q1x1OTU0MFx1ODA5QVx1NUVBNlx1NkUyMVx1NTk5Mlx1N0FFRlx1NzdFRFx1OTUzQlx1NkJCNVx1NjVBRFx1N0YwRVx1NTgwNlx1NTE1MVx1OTYxRlx1NUJGOVx1NThBOVx1NTQyOFx1OEU3Mlx1NjU2Nlx1OTg3Rlx1NTZFNFx1OTQ5RFx1NzZGRVx1OTA0MVx1NjM4N1x1NTRDNlx1NTkxQVx1NTkzQVx1NTc5Qlx1OEVCMlx1NjczNVx1OERGQVx1ODIzNVx1NTI0MVx1NjBGMFx1NTgxNVx1ODZGRVx1NUNFOFx1OUU0NVx1NEZDNFx1OTg5RFx1OEJCOVx1NUEyNVx1NjA3Nlx1NTM4NFx1NjI3Q1x1OTA0Rlx1OTEwMlx1OTk3Rlx1NjA2OVx1ODAwQ1x1NTEzRlx1ODAzM1x1NUMxNFx1OTk3NVx1NkQzMVx1NEU4Q1wiXSxcbltcImI3NDBcIixcIlx1N0ExRFx1N0ExRlx1N0EyMVx1N0EyMlx1N0EyNFwiLDE0LFwiXHU3QTM0XHU3QTM1XHU3QTM2XHU3QTM4XHU3QTNBXHU3QTNFXHU3QTQwXCIsNSxcIlx1N0E0N1wiLDksXCJcdTdBNTJcIiw0LFwiXHU3QTU4XCIsMTZdLFxuW1wiYjc4MFwiLFwiXHU3QTY5XCIsNixcIlx1N0E3MVx1N0E3Mlx1N0E3M1x1N0E3NVx1N0E3Qlx1N0E3Q1x1N0E3RFx1N0E3RVx1N0E4Mlx1N0E4NVx1N0E4N1x1N0E4OVx1N0E4QVx1N0E4Qlx1N0E4Q1x1N0E4RVx1N0E4Rlx1N0E5MFx1N0E5M1x1N0E5NFx1N0E5OVx1N0E5QVx1N0E5Qlx1N0E5RVx1N0FBMVx1N0FBMlx1OEQzMFx1NTNEMVx1N0Y1QVx1N0I0Rlx1NEYxMFx1NEU0Rlx1OTYwMFx1NkNENVx1NzNEMFx1ODVFOVx1NUUwNlx1NzU2QVx1N0ZGQlx1NkEwQVx1NzdGRVx1OTQ5Mlx1N0U0MVx1NTFFMVx1NzBFNlx1NTNDRFx1OEZENFx1ODMwM1x1OEQyOVx1NzJBRlx1OTk2RFx1NkNEQlx1NTc0QVx1ODJCM1x1NjVCOVx1ODBBQVx1NjIzRlx1OTYzMlx1NTlBOFx1NEVGRlx1OEJCRlx1N0VCQVx1NjUzRVx1ODNGMlx1OTc1RVx1NTU2MVx1OThERVx1ODBBNVx1NTMyQVx1OEJGRFx1NTQyMFx1ODBCQVx1NUU5Rlx1NkNCOFx1OEQzOVx1ODJBQ1x1OTE1QVx1NTQyOVx1NkMxQlx1NTIwNlx1N0VCN1x1NTc1Rlx1NzExQVx1NkM3RVx1N0M4OVx1NTk0Qlx1NEVGRFx1NUZGRlx1NjEyNFx1N0NBQVx1NEUzMFx1NUMwMVx1NjdBQlx1ODcwMlx1NUNGMFx1OTUwQlx1OThDRVx1NzVBRlx1NzBGRFx1OTAyMlx1NTFBRlx1N0YxRFx1OEJCRFx1NTk0OVx1NTFFNFx1NEY1Qlx1NTQyNlx1NTkyQlx1NjU3N1x1ODBBNFx1NUI3NVx1NjI3Nlx1NjJDMlx1OEY5MFx1NUU0NVx1NkMxRlx1N0IyNlx1NEYwRlx1NEZEOFx1NjcwRFwiXSxcbltcImI4NDBcIixcIlx1N0FBM1x1N0FBNFx1N0FBN1x1N0FBOVx1N0FBQVx1N0FBQlx1N0FBRVwiLDQsXCJcdTdBQjRcIiwxMCxcIlx1N0FDMFwiLDEwLFwiXHU3QUNDXCIsOSxcIlx1N0FEN1x1N0FEOFx1N0FEQVx1N0FEQlx1N0FEQ1x1N0FERFx1N0FFMVx1N0FFMlx1N0FFNFx1N0FFN1wiLDUsXCJcdTdBRUVcdTdBRjBcdTdBRjFcdTdBRjJcdTdBRjNcIl0sXG5bXCJiODgwXCIsXCJcdTdBRjRcIiw0LFwiXHU3QUZCXHU3QUZDXHU3QUZFXHU3QjAwXHU3QjAxXHU3QjAyXHU3QjA1XHU3QjA3XHU3QjA5XHU3QjBDXHU3QjBEXHU3QjBFXHU3QjEwXHU3QjEyXHU3QjEzXHU3QjE2XHU3QjE3XHU3QjE4XHU3QjFBXHU3QjFDXHU3QjFEXHU3QjFGXHU3QjIxXHU3QjIyXHU3QjIzXHU3QjI3XHU3QjI5XHU3QjJEXHU2RDZFXHU2REFBXHU3OThGXHU4OEIxXHU1RjE3XHU3NTJCXHU2MjlBXHU4Rjg1XHU0RkVGXHU5MURDXHU2NUE3XHU4MTJGXHU4MTUxXHU1RTlDXHU4MTUwXHU4RDc0XHU1MjZGXHU4OTg2XHU4RDRCXHU1OTBEXHU1MDg1XHU0RUQ4XHU5NjFDXHU3MjM2XHU4MTc5XHU4RDFGXHU1QkNDXHU4QkEzXHU5NjQ0XHU1OTg3XHU3RjFBXHU1NDkwXHU1Njc2XHU1NjBFXHU4QkU1XHU2NTM5XHU2OTgyXHU5NDk5XHU3NkQ2XHU2RTg5XHU1RTcyXHU3NTE4XHU2NzQ2XHU2N0QxXHU3QUZGXHU4MDlEXHU4RDc2XHU2MTFGXHU3OUM2XHU2NTYyXHU4RDYzXHU1MTg4XHU1MjFBXHU5NEEyXHU3RjM4XHU4MDlCXHU3RUIyXHU1Qzk3XHU2RTJGXHU2NzYwXHU3QkQ5XHU3NjhCXHU5QUQ4XHU4MThGXHU3Rjk0XHU3Q0Q1XHU2NDFFXHU5NTUwXHU3QTNGXHU1NDRBXHU1NEU1XHU2QjRDXHU2NDAxXHU2MjA4XHU5RTNEXHU4MEYzXHU3NTk5XHU1MjcyXHU5NzY5XHU4NDVCXHU2ODNDXHU4NkU0XHU5NjAxXHU5Njk0XHU5NEVDXHU0RTJBXHU1NDA0XHU3RUQ5XHU2ODM5XHU4RERGXHU4MDE1XHU2NkY0XHU1RTlBXHU3RkI5XCJdLFxuW1wiYjk0MFwiLFwiXHU3QjJGXHU3QjMwXHU3QjMyXHU3QjM0XHU3QjM1XHU3QjM2XHU3QjM3XHU3QjM5XHU3QjNCXHU3QjNEXHU3QjNGXCIsNSxcIlx1N0I0Nlx1N0I0OFx1N0I0QVx1N0I0RFx1N0I0RVx1N0I1M1x1N0I1NVx1N0I1N1x1N0I1OVx1N0I1Q1x1N0I1RVx1N0I1Rlx1N0I2MVx1N0I2M1wiLDEwLFwiXHU3QjZGXHU3QjcwXHU3QjczXHU3Qjc0XHU3Qjc2XHU3Qjc4XHU3QjdBXHU3QjdDXHU3QjdEXHU3QjdGXHU3QjgxXHU3QjgyXHU3QjgzXHU3Qjg0XHU3Qjg2XCIsNixcIlx1N0I4RVx1N0I4RlwiXSxcbltcImI5ODBcIixcIlx1N0I5MVx1N0I5Mlx1N0I5M1x1N0I5Nlx1N0I5OFx1N0I5OVx1N0I5QVx1N0I5Qlx1N0I5RVx1N0I5Rlx1N0JBMFx1N0JBM1x1N0JBNFx1N0JBNVx1N0JBRVx1N0JBRlx1N0JCMFx1N0JCMlx1N0JCM1x1N0JCNVx1N0JCNlx1N0JCN1x1N0JCOVwiLDcsXCJcdTdCQzJcdTdCQzNcdTdCQzRcdTU3QzJcdTgwM0ZcdTY4OTdcdTVERTVcdTY1M0JcdTUyOUZcdTYwNkRcdTlGOUFcdTRGOUJcdThFQUNcdTUxNkNcdTVCQUJcdTVGMTNcdTVERTlcdTZDNUVcdTYyRjFcdThEMjFcdTUxNzFcdTk0QTlcdTUyRkVcdTZDOUZcdTgyREZcdTcyRDdcdTU3QTJcdTY3ODRcdThEMkRcdTU5MUZcdThGOUNcdTgzQzdcdTU0OTVcdTdCOERcdTRGMzBcdTZDQkRcdTVCNjRcdTU5RDFcdTlGMTNcdTUzRTRcdTg2Q0FcdTlBQThcdThDMzdcdTgwQTFcdTY1NDVcdTk4N0VcdTU2RkFcdTk2QzdcdTUyMkVcdTc0RENcdTUyNTBcdTVCRTFcdTYzMDJcdTg5MDJcdTRFNTZcdTYyRDBcdTYwMkFcdTY4RkFcdTUxNzNcdTVCOThcdTUxQTBcdTg5QzJcdTdCQTFcdTk5ODZcdTdGNTBcdTYwRUZcdTcwNENcdThEMkZcdTUxNDlcdTVFN0ZcdTkwMUJcdTc0NzBcdTg5QzRcdTU3MkRcdTc4NDVcdTVGNTJcdTlGOUZcdTk1RkFcdThGNjhcdTlCM0NcdThCRTFcdTc2NzhcdTY4NDJcdTY3RENcdThERUFcdThEMzVcdTUyM0RcdThGOEFcdTZFREFcdTY4Q0RcdTk1MDVcdTkwRURcdTU2RkRcdTY3OUNcdTg4RjlcdThGQzdcdTU0QzhcIl0sXG5bXCJiYTQwXCIsXCJcdTdCQzVcdTdCQzhcdTdCQzlcdTdCQ0FcdTdCQ0JcdTdCQ0RcdTdCQ0VcdTdCQ0ZcdTdCRDBcdTdCRDJcdTdCRDRcIiw0LFwiXHU3QkRCXHU3QkRDXHU3QkRFXHU3QkRGXHU3QkUwXHU3QkUyXHU3QkUzXHU3QkU0XHU3QkU3XHU3QkU4XHU3QkU5XHU3QkVCXHU3QkVDXHU3QkVEXHU3QkVGXHU3QkYwXHU3QkYyXCIsNCxcIlx1N0JGOFx1N0JGOVx1N0JGQVx1N0JGQlx1N0JGRFx1N0JGRlwiLDcsXCJcdTdDMDhcdTdDMDlcdTdDMEFcdTdDMERcdTdDMEVcdTdDMTBcIiw1LFwiXHU3QzE3XHU3QzE4XHU3QzE5XCJdLFxuW1wiYmE4MFwiLFwiXHU3QzFBXCIsNCxcIlx1N0MyMFwiLDUsXCJcdTdDMjhcdTdDMjlcdTdDMkJcIiwxMixcIlx1N0MzOVwiLDUsXCJcdTdDNDJcdTlBQjhcdTVCNjlcdTZENzdcdTZDMjZcdTRFQTVcdTVCQjNcdTlBODdcdTkxNjNcdTYxQThcdTkwQUZcdTk3RTlcdTU0MkJcdTZEQjVcdTVCRDJcdTUxRkRcdTU1OEFcdTdGNTVcdTdGRjBcdTY0QkNcdTYzNERcdTY1RjFcdTYxQkVcdTYwOERcdTcxMEFcdTZDNTdcdTZDNDlcdTU5MkZcdTY3NkRcdTgyMkFcdTU4RDVcdTU2OEVcdThDNkFcdTZCRUJcdTkwRERcdTU5N0RcdTgwMTdcdTUzRjdcdTZENjlcdTU0NzVcdTU1OURcdTgzNzdcdTgzQ0ZcdTY4MzhcdTc5QkVcdTU0OENcdTRGNTVcdTU0MDhcdTc2RDJcdThDODlcdTk2MDJcdTZDQjNcdTZEQjhcdThENkJcdTg5MTBcdTlFNjRcdThEM0FcdTU2M0ZcdTlFRDFcdTc1RDVcdTVGODhcdTcyRTBcdTYwNjhcdTU0RkNcdTRFQThcdTZBMkFcdTg4NjFcdTYwNTJcdThGNzBcdTU0QzRcdTcwRDhcdTg2NzlcdTlFM0ZcdTZEMkFcdTVCOEZcdTVGMThcdTdFQTJcdTU1ODlcdTRGQUZcdTczMzRcdTU0M0NcdTUzOUFcdTUwMTlcdTU0MEVcdTU0N0NcdTRFNEVcdTVGRkRcdTc0NUFcdTU4RjZcdTg0NkJcdTgwRTFcdTg3NzRcdTcyRDBcdTdDQ0FcdTZFNTZcIl0sXG5bXCJiYjQwXCIsXCJcdTdDNDNcIiw5LFwiXHU3QzRFXCIsMzYsXCJcdTdDNzVcIiw1LFwiXHU3QzdFXCIsOV0sXG5bXCJiYjgwXCIsXCJcdTdDODhcdTdDOEFcIiw2LFwiXHU3QzkzXHU3Qzk0XHU3Qzk2XHU3Qzk5XHU3QzlBXHU3QzlCXHU3Q0EwXHU3Q0ExXHU3Q0EzXHU3Q0E2XHU3Q0E3XHU3Q0E4XHU3Q0E5XHU3Q0FCXHU3Q0FDXHU3Q0FEXHU3Q0FGXHU3Q0IwXHU3Q0I0XCIsNCxcIlx1N0NCQVx1N0NCQlx1NUYyN1x1ODY0RVx1NTUyQ1x1NjJBNFx1NEU5Mlx1NkNBQVx1NjIzN1x1ODJCMVx1NTREN1x1NTM0RVx1NzMzRVx1NkVEMVx1NzUzQlx1NTIxMlx1NTMxNlx1OEJERFx1NjlEMFx1NUY4QVx1NjAwMFx1NkRFRVx1NTc0Rlx1NkIyMlx1NzNBRlx1Njg1M1x1OEZEOFx1N0YxM1x1NjM2Mlx1NjBBM1x1NTUyNFx1NzVFQVx1OEM2Mlx1NzExNVx1NkRBM1x1NUJBNlx1NUU3Qlx1ODM1Mlx1NjE0Q1x1OUVDNFx1NzhGQVx1ODc1N1x1N0MyN1x1NzY4N1x1NTFGMFx1NjBGNlx1NzE0Q1x1NjY0M1x1NUU0Q1x1NjA0RFx1OEMwRVx1NzA3MFx1NjMyNVx1OEY4OVx1NUZCRFx1NjA2Mlx1ODZENFx1NTZERVx1NkJDMVx1NjA5NFx1NjE2N1x1NTM0OVx1NjBFMFx1NjY2Nlx1OEQzRlx1NzlGRFx1NEYxQVx1NzBFOVx1NkM0N1x1OEJCM1x1OEJGMlx1N0VEOFx1ODM2NFx1NjYwRlx1NUE1QVx1OUI0Mlx1NkQ1MVx1NkRGN1x1OEM0MVx1NkQzQlx1NEYxOVx1NzA2Qlx1ODNCN1x1NjIxNlx1NjBEMVx1OTcwRFx1OEQyN1x1Nzk3OFx1NTFGQlx1NTczRVx1NTdGQVx1NjczQVx1NzU3OFx1N0EzRFx1NzlFRlx1N0I5NVwiXSxcbltcImJjNDBcIixcIlx1N0NCRlx1N0NDMFx1N0NDMlx1N0NDM1x1N0NDNFx1N0NDNlx1N0NDOVx1N0NDQlx1N0NDRVwiLDYsXCJcdTdDRDhcdTdDREFcdTdDREJcdTdDRERcdTdDREVcdTdDRTFcIiw2LFwiXHU3Q0U5XCIsNSxcIlx1N0NGMFwiLDcsXCJcdTdDRjlcdTdDRkFcdTdDRkNcIiwxMyxcIlx1N0QwQlwiLDVdLFxuW1wiYmM4MFwiLFwiXHU3RDExXCIsMTQsXCJcdTdEMjFcdTdEMjNcdTdEMjRcdTdEMjVcdTdEMjZcdTdEMjhcdTdEMjlcdTdEMkFcdTdEMkNcdTdEMkRcdTdEMkVcdTdEMzBcIiw2LFwiXHU4MDhDXHU5OTY1XHU4RkY5XHU2RkMwXHU4QkE1XHU5RTIxXHU1OUVDXHU3RUU5XHU3RjA5XHU1NDA5XHU2NzgxXHU2OEQ4XHU4RjkxXHU3QzREXHU5NkM2XHU1M0NBXHU2MDI1XHU3NUJFXHU2QzcyXHU1MzczXHU1QUM5XHU3RUE3XHU2MzI0XHU1MUUwXHU4MTBBXHU1REYxXHU4NERGXHU2MjgwXHU1MTgwXHU1QjYzXHU0RjBFXHU3OTZEXHU1MjQyXHU2MEI4XHU2RDRFXHU1QkM0XHU1QkMyXHU4QkExXHU4QkIwXHU2NUUyXHU1RkNDXHU5NjQ1XHU1OTkzXHU3RUU3XHU3RUFBXHU1NjA5XHU2N0I3XHU1OTM5XHU0RjczXHU1QkI2XHU1MkEwXHU4MzVBXHU5ODhBXHU4RDNFXHU3NTMyXHU5NEJFXHU1MDQ3XHU3QTNDXHU0RUY3XHU2N0I2XHU5QTdFXHU1QUMxXHU2QjdDXHU3NkQxXHU1NzVBXHU1QzE2XHU3QjNBXHU5NUY0XHU3MTRFXHU1MTdDXHU4MEE5XHU4MjcwXHU1OTc4XHU3RjA0XHU4MzI3XHU2OEMwXHU2N0VDXHU3OEIxXHU3ODc3XHU2MkUzXHU2MzYxXHU3QjgwXHU0RkVEXHU1MjZBXHU1MUNGXHU4MzUwXHU2OURCXHU5Mjc0XHU4REY1XHU4RDMxXHU4OUMxXHU5NTJFXHU3QkFEXHU0RUY2XCJdLFxuW1wiYmQ0MFwiLFwiXHU3RDM3XCIsNTQsXCJcdTdENkZcIiw3XSxcbltcImJkODBcIixcIlx1N0Q3OFwiLDMyLFwiXHU1MDY1XHU4MjMwXHU1MjUxXHU5OTZGXHU2RTEwXHU2RTg1XHU2REE3XHU1RUZBXHU1MEY1XHU1OURDXHU1QzA2XHU2RDQ2XHU2QzVGXHU3NTg2XHU4NDhCXHU2ODY4XHU1OTU2XHU4QkIyXHU1MzIwXHU5MTcxXHU5NjREXHU4NTQ5XHU2OTEyXHU3OTAxXHU3MTI2XHU4MEY2XHU0RUE0XHU5MENBXHU2RDQ3XHU5QTg0XHU1QTA3XHU1NkJDXHU2NDA1XHU5NEYwXHU3N0VCXHU0RkE1XHU4MTFBXHU3MkUxXHU4OUQyXHU5OTdBXHU3RjM0XHU3RURFXHU1MjdGXHU2NTU5XHU5MTc1XHU4RjdGXHU4RjgzXHU1M0VCXHU3QTk2XHU2M0VEXHU2M0E1XHU3Njg2XHU3OUY4XHU4ODU3XHU5NjM2XHU2MjJBXHU1MkFCXHU4MjgyXHU2ODU0XHU2NzcwXHU2Mzc3XHU3NzZCXHU3QUVEXHU2RDAxXHU3RUQzXHU4OUUzXHU1OUQwXHU2MjEyXHU4NUM5XHU4MkE1XHU3NTRDXHU1MDFGXHU0RUNCXHU3NUE1XHU4QkVCXHU1QzRBXHU1REZFXHU3QjRCXHU2NUE0XHU5MUQxXHU0RUNBXHU2RDI1XHU4OTVGXHU3RDI3XHU5NTI2XHU0RUM1XHU4QzI4XHU4RkRCXHU5NzczXHU2NjRCXHU3OTgxXHU4RkQxXHU3MEVDXHU2RDc4XCJdLFxuW1wiYmU0MFwiLFwiXHU3RDk5XCIsMTIsXCJcdTdEQTdcIiw2LFwiXHU3REFGXCIsNDJdLFxuW1wiYmU4MFwiLFwiXHU3RERBXCIsMzIsXCJcdTVDM0RcdTUyQjJcdTgzNDZcdTUxNjJcdTgzMEVcdTc3NUJcdTY2NzZcdTlDQjhcdTRFQUNcdTYwQ0FcdTdDQkVcdTdDQjNcdTdFQ0ZcdTRFOTVcdThCNjZcdTY2NkZcdTk4ODhcdTk3NTlcdTU4ODNcdTY1NkNcdTk1NUNcdTVGODRcdTc1QzlcdTk3NTZcdTdBREZcdTdBREVcdTUxQzBcdTcwQUZcdTdBOThcdTYzRUFcdTdBNzZcdTdFQTBcdTczOTZcdTk3RURcdTRFNDVcdTcwNzhcdTRFNURcdTkxNTJcdTUzQTlcdTY1NTFcdTY1RTdcdTgxRkNcdTgyMDVcdTU0OEVcdTVDMzFcdTc1OUFcdTk3QTBcdTYyRDhcdTcyRDlcdTc1QkRcdTVDNDVcdTlBNzlcdTgzQ0FcdTVDNDBcdTU0ODBcdTc3RTlcdTRFM0VcdTZDQUVcdTgwNUFcdTYyRDJcdTYzNkVcdTVERThcdTUxNzdcdThERERcdThFMUVcdTk1MkZcdTRGRjFcdTUzRTVcdTYwRTdcdTcwQUNcdTUyNjdcdTYzNTBcdTlFNDNcdTVBMUZcdTUwMjZcdTc3MzdcdTUzNzdcdTdFRTJcdTY0ODVcdTY1MkJcdTYyODlcdTYzOThcdTUwMTRcdTcyMzVcdTg5QzlcdTUxQjNcdThCQzBcdTdFRERcdTU3NDdcdTgzQ0NcdTk0QTdcdTUxOUJcdTU0MUJcdTVDRkJcIl0sXG5bXCJiZjQwXCIsXCJcdTdERkJcIiw2Ml0sXG5bXCJiZjgwXCIsXCJcdTdFM0FcdTdFM0NcIiw0LFwiXHU3RTQyXCIsNCxcIlx1N0U0OFwiLDIxLFwiXHU0RkNBXHU3QUUzXHU2RDVBXHU5MEUxXHU5QThGXHU1NTgwXHU1NDk2XHU1MzYxXHU1NEFGXHU1RjAwXHU2M0U5XHU2OTc3XHU1MUVGXHU2MTY4XHU1MjBBXHU1ODJBXHU1MkQ4XHU1NzRFXHU3ODBEXHU3NzBCXHU1RUI3XHU2MTc3XHU3Q0UwXHU2MjVCXHU2Mjk3XHU0RUEyXHU3MDk1XHU4MDAzXHU2MkY3XHU3MEU0XHU5NzYwXHU1Nzc3XHU4MkRCXHU2N0VGXHU2OEY1XHU3OEQ1XHU5ODk3XHU3OUQxXHU1OEYzXHU1NEIzXHU1M0VGXHU2RTM0XHU1MTRCXHU1MjNCXHU1QkEyXHU4QkZFXHU4MEFGXHU1NTQzXHU1N0E2XHU2MDczXHU1NzUxXHU1NDJEXHU3QTdBXHU2MDUwXHU1QjU0XHU2M0E3XHU2MkEwXHU1M0UzXHU2MjYzXHU1QkM3XHU2N0FGXHU1NEVEXHU3QTlGXHU4MkU2XHU5MTc3XHU1RTkzXHU4OEU0XHU1OTM4XHU1N0FFXHU2MzBFXHU4REU4XHU4MEVGXHU1NzU3XHU3Qjc3XHU0RkE5XHU1RkVCXHU1QkJEXHU2QjNFXHU1MzIxXHU3QjUwXHU3MkMyXHU2ODQ2XHU3N0ZGXHU3NzM2XHU2NUY3XHU1MUI1XHU0RThGXHU3NkQ0XHU1Q0JGXHU3QUE1XHU4NDc1XHU1OTRFXHU5QjQxXHU1MDgwXCJdLFxuW1wiYzA0MFwiLFwiXHU3RTVFXCIsMzUsXCJcdTdFODNcIiwyMyxcIlx1N0U5Q1x1N0U5RFx1N0U5RVwiXSxcbltcImMwODBcIixcIlx1N0VBRVx1N0VCNFx1N0VCQlx1N0VCQ1x1N0VENlx1N0VFNFx1N0VFQ1x1N0VGOVx1N0YwQVx1N0YxMFx1N0YxRVx1N0YzN1x1N0YzOVx1N0YzQlwiLDYsXCJcdTdGNDNcdTdGNDZcIiw5LFwiXHU3RjUyXHU3RjUzXHU5OTg4XHU2MTI3XHU2RTgzXHU1NzY0XHU2NjA2XHU2MzQ2XHU1NkYwXHU2MkVDXHU2MjY5XHU1RUQzXHU5NjE0XHU1NzgzXHU2MkM5XHU1NTg3XHU4NzIxXHU4MTRBXHU4RkEzXHU1NTY2XHU4M0IxXHU2NzY1XHU4RDU2XHU4NEREXHU1QTZBXHU2ODBGXHU2MkU2XHU3QkVFXHU5NjExXHU1MTcwXHU2RjlDXHU4QzMwXHU2M0ZEXHU4OUM4XHU2MUQyXHU3RjA2XHU3MEMyXHU2RUU1XHU3NDA1XHU2OTk0XHU3MkZDXHU1RUNBXHU5MENFXHU2NzE3XHU2RDZBXHU2MzVFXHU1MkIzXHU3MjYyXHU4MDAxXHU0RjZDXHU1OUU1XHU5MTZBXHU3MEQ5XHU2RDlEXHU1MkQyXHU0RTUwXHU5NkY3XHU5NTZEXHU4NTdFXHU3OENBXHU3RDJGXHU1MTIxXHU1NzkyXHU2NEMyXHU4MDhCXHU3QzdCXHU2Q0VBXHU2OEYxXHU2OTVFXHU1MUI3XHU1Mzk4XHU2OEE4XHU3MjgxXHU5RUNFXHU3QkYxXHU3MkY4XHU3OUJCXHU2RjEzXHU3NDA2XHU2NzRFXHU5MUNDXHU5Q0E0XHU3OTNDXHU4Mzg5XHU4MzU0XHU1NDBGXHU2ODE3XHU0RTNEXHU1Mzg5XHU1MkIxXHU3ODNFXHU1Mzg2XHU1MjI5XHU1MDg4XHU0RjhCXHU0RkQwXCJdLFxuW1wiYzE0MFwiLFwiXHU3RjU2XHU3RjU5XHU3RjVCXHU3RjVDXHU3RjVEXHU3RjVFXHU3RjYwXHU3RjYzXCIsNCxcIlx1N0Y2Qlx1N0Y2Q1x1N0Y2RFx1N0Y2Rlx1N0Y3MFx1N0Y3M1x1N0Y3NVx1N0Y3Nlx1N0Y3N1x1N0Y3OFx1N0Y3QVx1N0Y3Qlx1N0Y3Q1x1N0Y3RFx1N0Y3Rlx1N0Y4MFx1N0Y4MlwiLDcsXCJcdTdGOEJcdTdGOERcdTdGOEZcIiw0LFwiXHU3Rjk1XCIsNCxcIlx1N0Y5Qlx1N0Y5Q1x1N0ZBMFx1N0ZBMlx1N0ZBM1x1N0ZBNVx1N0ZBNlx1N0ZBOFwiLDYsXCJcdTdGQjFcIl0sXG5bXCJjMTgwXCIsXCJcdTdGQjNcIiw0LFwiXHU3RkJBXHU3RkJCXHU3RkJFXHU3RkMwXHU3RkMyXHU3RkMzXHU3RkM0XHU3RkM2XHU3RkM3XHU3RkM4XHU3RkM5XHU3RkNCXHU3RkNEXHU3RkNGXCIsNCxcIlx1N0ZENlx1N0ZEN1x1N0ZEOVwiLDUsXCJcdTdGRTJcdTdGRTNcdTc1RTJcdTdBQ0JcdTdDOTJcdTZDQTVcdTk2QjZcdTUyOUJcdTc0ODNcdTU0RTlcdTRGRTlcdTgwNTRcdTgzQjJcdThGREVcdTk1NzBcdTVFQzlcdTYwMUNcdTZEOUZcdTVFMThcdTY1NUJcdTgxMzhcdTk0RkVcdTYwNEJcdTcwQkNcdTdFQzNcdTdDQUVcdTUxQzlcdTY4ODFcdTdDQjFcdTgyNkZcdTRFMjRcdThGODZcdTkxQ0ZcdTY2N0VcdTRFQUVcdThDMDVcdTY0QTlcdTgwNEFcdTUwREFcdTc1OTdcdTcxQ0VcdTVCRTVcdThGQkRcdTZGNjZcdTRFODZcdTY0ODJcdTk1NjNcdTVFRDZcdTY1OTlcdTUyMTdcdTg4QzJcdTcwQzhcdTUyQTNcdTczMEVcdTc0MzNcdTY3OTdcdTc4RjdcdTk3MTZcdTRFMzRcdTkwQkJcdTlDREVcdTZEQ0JcdTUxREJcdThENDFcdTU0MURcdTYyQ0VcdTczQjJcdTgzRjFcdTk2RjZcdTlGODRcdTk0QzNcdTRGMzZcdTdGOUFcdTUxQ0NcdTcwNzVcdTk2NzVcdTVDQURcdTk4ODZcdTUzRTZcdTRFRTRcdTZFOUNcdTc0MDlcdTY5QjRcdTc4NkJcdTk5OEZcdTc1NTlcdTUyMThcdTc2MjRcdTZENDFcdTY3RjNcdTUxNkRcdTlGOTlcdTgwNEJcdTU0OTlcdTdCM0NcdTdBQkZcIl0sXG5bXCJjMjQwXCIsXCJcdTdGRTRcdTdGRTdcdTdGRThcdTdGRUFcdTdGRUJcdTdGRUNcdTdGRURcdTdGRUZcdTdGRjJcdTdGRjRcIiw2LFwiXHU3RkZEXHU3RkZFXHU3RkZGXHU4MDAyXHU4MDA3XHU4MDA4XHU4MDA5XHU4MDBBXHU4MDBFXHU4MDBGXHU4MDExXHU4MDEzXHU4MDFBXHU4MDFCXHU4MDFEXHU4MDFFXHU4MDFGXHU4MDIxXHU4MDIzXHU4MDI0XHU4MDJCXCIsNSxcIlx1ODAzMlx1ODAzNFx1ODAzOVx1ODAzQVx1ODAzQ1x1ODAzRVx1ODA0MFx1ODA0MVx1ODA0NFx1ODA0NVx1ODA0N1x1ODA0OFx1ODA0OVx1ODA0RVx1ODA0Rlx1ODA1MFx1ODA1MVx1ODA1M1x1ODA1NVx1ODA1Nlx1ODA1N1wiXSxcbltcImMyODBcIixcIlx1ODA1OVx1ODA1QlwiLDEzLFwiXHU4MDZCXCIsNSxcIlx1ODA3MlwiLDExLFwiXHU5Njg2XHU1Nzg0XHU2MkUyXHU5NjQ3XHU2OTdDXHU1QTA0XHU2NDAyXHU3QkQzXHU2RjBGXHU5NjRCXHU4MkE2XHU1MzYyXHU5ODg1XHU1RTkwXHU3MDg5XHU2M0IzXHU1MzY0XHU4NjRGXHU5QzgxXHU5RTkzXHU3ODhDXHU5NzMyXHU4REVGXHU4RDQyXHU5RTdGXHU2RjVFXHU3OTg0XHU1RjU1XHU5NjQ2XHU2MjJFXHU5QTc0XHU1NDE1XHU5NEREXHU0RkEzXHU2NUM1XHU1QzY1XHU1QzYxXHU3RjE1XHU4NjUxXHU2QzJGXHU1RjhCXHU3Mzg3XHU2RUU0XHU3RUZGXHU1Q0U2XHU2MzFCXHU1QjZBXHU2RUU2XHU1Mzc1XHU0RTcxXHU2M0EwXHU3NTY1XHU2MkExXHU4RjZFXHU0RjI2XHU0RUQxXHU2Q0E2XHU3RUI2XHU4QkJBXHU4NDFEXHU4N0JBXHU3RjU3XHU5MDNCXHU5NTIzXHU3QkE5XHU5QUExXHU4OEY4XHU4NDNEXHU2RDFCXHU5QTg2XHU3RURDXHU1OTg4XHU5RUJCXHU3MzlCXHU3ODAxXHU4NjgyXHU5QTZDXHU5QTgyXHU1NjFCXHU1NDE3XHU1N0NCXHU0RTcwXHU5RUE2XHU1MzU2XHU4RkM4XHU4MTA5XHU3NzkyXHU5OTkyXHU4NkVFXHU2RUUxXHU4NTEzXHU2NkZDXHU2MTYyXHU2RjJCXCJdLFxuW1wiYzM0MFwiLFwiXHU4MDdFXHU4MDgxXHU4MDgyXHU4MDg1XHU4MDg4XHU4MDhBXHU4MDhEXCIsNSxcIlx1ODA5NFx1ODA5NVx1ODA5N1x1ODA5OVx1ODA5RVx1ODBBM1x1ODBBNlx1ODBBN1x1ODBBOFx1ODBBQ1x1ODBCMFx1ODBCM1x1ODBCNVx1ODBCNlx1ODBCOFx1ODBCOVx1ODBCQlx1ODBDNVx1ODBDN1wiLDQsXCJcdTgwQ0ZcIiw2LFwiXHU4MEQ4XHU4MERGXHU4MEUwXHU4MEUyXHU4MEUzXHU4MEU2XHU4MEVFXHU4MEY1XHU4MEY3XHU4MEY5XHU4MEZCXHU4MEZFXHU4MEZGXHU4MTAwXHU4MTAxXHU4MTAzXHU4MTA0XHU4MTA1XHU4MTA3XHU4MTA4XHU4MTBCXCJdLFxuW1wiYzM4MFwiLFwiXHU4MTBDXHU4MTE1XHU4MTE3XHU4MTE5XHU4MTFCXHU4MTFDXHU4MTFEXHU4MTFGXCIsMTIsXCJcdTgxMkRcdTgxMkVcdTgxMzBcdTgxMzNcdTgxMzRcdTgxMzVcdTgxMzdcdTgxMzlcIiw0LFwiXHU4MTNGXHU4QzI5XHU4MjkyXHU4MzJCXHU3NkYyXHU2QzEzXHU1RkQ5XHU4M0JEXHU3MzJCXHU4MzA1XHU5NTFBXHU2QkRCXHU3N0RCXHU5NEM2XHU1MzZGXHU4MzAyXHU1MTkyXHU1RTNEXHU4QzhDXHU4RDM4XHU0RTQ4XHU3M0FCXHU2NzlBXHU2ODg1XHU5MTc2XHU5NzA5XHU3MTY0XHU2Q0ExXHU3NzA5XHU1QTkyXHU5NTQxXHU2QkNGXHU3RjhFXHU2NjI3XHU1QkQwXHU1OUI5XHU1QTlBXHU5NUU4XHU5NUY3XHU0RUVDXHU4NDBDXHU4NDk5XHU2QUFDXHU3NkRGXHU5NTMwXHU3MzFCXHU2OEE2XHU1QjVGXHU3NzJGXHU5MTlBXHU5NzYxXHU3Q0RDXHU4RkY3XHU4QzFDXHU1RjI1XHU3QzczXHU3OUQ4XHU4OUM1XHU2Q0NDXHU4NzFDXHU1QkM2XHU1RTQyXHU2OEM5XHU3NzIwXHU3RUY1XHU1MTk1XHU1MTREXHU1MkM5XHU1QTI5XHU3RjA1XHU5NzYyXHU4MkQ3XHU2M0NGXHU3Nzg0XHU4NUQwXHU3OUQyXHU2RTNBXHU1RTk5XHU1OTk5XHU4NTExXHU3MDZEXHU2QzExXHU2MkJGXHU3NkJGXHU2NTRGXHU2MEFGXHU5NUZEXHU2NjBFXHU4NzlGXHU5RTIzXHU5NEVEXHU1NDBEXHU1NDdEXHU4QzJDXHU2NDc4XCJdLFxuW1wiYzQ0MFwiLFwiXHU4MTQwXCIsNSxcIlx1ODE0N1x1ODE0OVx1ODE0RFx1ODE0RVx1ODE0Rlx1ODE1Mlx1ODE1Nlx1ODE1N1x1ODE1OFx1ODE1QlwiLDQsXCJcdTgxNjFcdTgxNjJcdTgxNjNcdTgxNjRcdTgxNjZcdTgxNjhcdTgxNkFcdTgxNkJcdTgxNkNcdTgxNkZcdTgxNzJcdTgxNzNcdTgxNzVcdTgxNzZcdTgxNzdcdTgxNzhcdTgxODFcdTgxODNcIiw0LFwiXHU4MTg5XHU4MThCXHU4MThDXHU4MThEXHU4MThFXHU4MTkwXHU4MTkyXCIsNSxcIlx1ODE5OVx1ODE5QVx1ODE5RVwiLDQsXCJcdTgxQTRcdTgxQTVcIl0sXG5bXCJjNDgwXCIsXCJcdTgxQTdcdTgxQTlcdTgxQUJcIiw3LFwiXHU4MUI0XCIsNSxcIlx1ODFCQ1x1ODFCRFx1ODFCRVx1ODFCRlx1ODFDNFx1ODFDNVx1ODFDN1x1ODFDOFx1ODFDOVx1ODFDQlx1ODFDRFwiLDYsXCJcdTY0NzlcdTg2MTFcdTZBMjFcdTgxOUNcdTc4RThcdTY0NjlcdTlCNTRcdTYyQjlcdTY3MkJcdTgzQUJcdTU4QThcdTlFRDhcdTZDQUJcdTZGMjBcdTVCREVcdTk2NENcdThDMEJcdTcyNUZcdTY3RDBcdTYyQzdcdTcyNjFcdTRFQTlcdTU5QzZcdTZCQ0RcdTU4OTNcdTY2QUVcdTVFNTVcdTUyREZcdTYxNTVcdTY3MjhcdTc2RUVcdTc3NjZcdTcyNjdcdTdBNDZcdTYyRkZcdTU0RUFcdTU0NTBcdTk0QTBcdTkwQTNcdTVBMUNcdTdFQjNcdTZDMTZcdTRFNDNcdTU5NzZcdTgwMTBcdTU5NDhcdTUzNTdcdTc1MzdcdTk2QkVcdTU2Q0FcdTYzMjBcdTgxMTFcdTYwN0NcdTk1RjlcdTZERDZcdTU0NjJcdTk5ODFcdTUxODVcdTVBRTlcdTgwRkRcdTU5QUVcdTk3MTNcdTUwMkFcdTZDRTVcdTVDM0NcdTYyREZcdTRGNjBcdTUzM0ZcdTgxN0JcdTkwMDZcdTZFQkFcdTg1MkJcdTYyQzhcdTVFNzRcdTc4QkVcdTY0QjVcdTYzN0JcdTVGRjVcdTVBMThcdTkxN0ZcdTlFMUZcdTVDM0ZcdTYzNEZcdTgwNDJcdTVCN0RcdTU1NkVcdTk1NEFcdTk1NERcdTZEODVcdTYwQThcdTY3RTBcdTcyREVcdTUxRERcdTVCODFcIl0sXG5bXCJjNTQwXCIsXCJcdTgxRDRcIiwxNCxcIlx1ODFFNFx1ODFFNVx1ODFFNlx1ODFFOFx1ODFFOVx1ODFFQlx1ODFFRVwiLDQsXCJcdTgxRjVcIiw1LFwiXHU4MUZEXHU4MUZGXHU4MjAzXHU4MjA3XCIsNCxcIlx1ODIwRVx1ODIwRlx1ODIxMVx1ODIxM1x1ODIxNVwiLDUsXCJcdTgyMURcdTgyMjBcdTgyMjRcdTgyMjVcdTgyMjZcdTgyMjdcdTgyMjlcdTgyMkVcdTgyMzJcdTgyM0FcdTgyM0NcdTgyM0RcdTgyM0ZcIl0sXG5bXCJjNTgwXCIsXCJcdTgyNDBcdTgyNDFcdTgyNDJcdTgyNDNcdTgyNDVcdTgyNDZcdTgyNDhcdTgyNEFcdTgyNENcdTgyNERcdTgyNEVcdTgyNTBcIiw3LFwiXHU4MjU5XHU4MjVCXHU4MjVDXHU4MjVEXHU4MjVFXHU4MjYwXCIsNyxcIlx1ODI2OVx1NjJFN1x1NkNERVx1NzI1Qlx1NjI2RFx1OTRBRVx1N0VCRFx1ODExM1x1NkQ1M1x1NTE5Q1x1NUYwNFx1NTk3NFx1NTJBQVx1NjAxMlx1NTk3M1x1NjY5Nlx1ODY1MFx1NzU5Rlx1NjMyQVx1NjFFNlx1N0NFRlx1OEJGQVx1NTRFNlx1NkIyN1x1OUUyNVx1NkJCNFx1ODVENVx1NTQ1NVx1NTA3Nlx1NkNBNFx1NTU2QVx1OERCNFx1NzIyQ1x1NUUxNVx1NjAxNVx1NzQzNlx1NjJDRFx1NjM5Mlx1NzI0Q1x1NUY5OFx1NkU0M1x1NkQzRVx1NjUwMFx1NkY1OFx1NzZEOFx1NzhEMFx1NzZGQ1x1NzU1NFx1NTIyNFx1NTNEQlx1NEU1M1x1NUU5RVx1NjVDMVx1ODAyQVx1ODBENlx1NjI5Qlx1NTQ4Nlx1NTIyOFx1NzBBRVx1ODg4RFx1OEREMVx1NkNFMVx1NTQ3OFx1ODBEQVx1NTdGOVx1ODhGNFx1OEQ1NFx1OTY2QVx1OTE0RFx1NEY2OVx1NkM5Qlx1NTVCN1x1NzZDNlx1NzgzMFx1NjJBOFx1NzBGOVx1NkY4RVx1NUY2RFx1ODRFQ1x1NjhEQVx1Nzg3Q1x1N0JGN1x1ODFBOFx1NjcwQlx1OUU0Rlx1NjM2N1x1NzhCMFx1NTc2Rlx1NzgxMlx1OTczOVx1NjI3OVx1NjJBQlx1NTI4OFx1NzQzNVx1NkJEN1wiXSxcbltcImM2NDBcIixcIlx1ODI2QVx1ODI2Qlx1ODI2Q1x1ODI2RFx1ODI3MVx1ODI3NVx1ODI3Nlx1ODI3N1x1ODI3OFx1ODI3Qlx1ODI3Q1x1ODI4MFx1ODI4MVx1ODI4M1x1ODI4NVx1ODI4Nlx1ODI4N1x1ODI4OVx1ODI4Q1x1ODI5MFx1ODI5M1x1ODI5NFx1ODI5NVx1ODI5Nlx1ODI5QVx1ODI5Qlx1ODI5RVx1ODJBMFx1ODJBMlx1ODJBM1x1ODJBN1x1ODJCMlx1ODJCNVx1ODJCNlx1ODJCQVx1ODJCQlx1ODJCQ1x1ODJCRlx1ODJDMFx1ODJDMlx1ODJDM1x1ODJDNVx1ODJDNlx1ODJDOVx1ODJEMFx1ODJENlx1ODJEOVx1ODJEQVx1ODJERFx1ODJFMlx1ODJFN1x1ODJFOFx1ODJFOVx1ODJFQVx1ODJFQ1x1ODJFRFx1ODJFRVx1ODJGMFx1ODJGMlx1ODJGM1x1ODJGNVx1ODJGNlx1ODJGOFwiXSxcbltcImM2ODBcIixcIlx1ODJGQVx1ODJGQ1wiLDQsXCJcdTgzMEFcdTgzMEJcdTgzMERcdTgzMTBcdTgzMTJcdTgzMTNcdTgzMTZcdTgzMThcdTgzMTlcdTgzMURcIiw5LFwiXHU4MzI5XHU4MzJBXHU4MzJFXHU4MzMwXHU4MzMyXHU4MzM3XHU4MzNCXHU4MzNEXHU1NTY0XHU4MTNFXHU3NUIyXHU3NkFFXHU1MzM5XHU3NURFXHU1MEZCXHU1QzQxXHU4QjZDXHU3QkM3XHU1MDRGXHU3MjQ3XHU5QTk3XHU5OEQ4XHU2RjAyXHU3NEUyXHU3OTY4XHU2NDg3XHU3N0E1XHU2MkZDXHU5ODkxXHU4RDJCXHU1NEMxXHU4MDU4XHU0RTUyXHU1NzZBXHU4MkY5XHU4NDBEXHU1RTczXHU1MUVEXHU3NEY2XHU4QkM0XHU1QzRGXHU1NzYxXHU2Q0ZDXHU5ODg3XHU1QTQ2XHU3ODM0XHU5QjQ0XHU4RkVCXHU3Qzk1XHU1MjU2XHU2MjUxXHU5NEZBXHU0RUM2XHU4Mzg2XHU4NDYxXHU4M0U5XHU4NEIyXHU1N0Q0XHU2NzM0XHU1NzAzXHU2NjZFXHU2RDY2XHU4QzMxXHU2NkREXHU3MDExXHU2NzFGXHU2QjNBXHU2ODE2XHU2MjFBXHU1OUJCXHU0RTAzXHU1MUM0XHU2RjA2XHU2N0QyXHU2QzhGXHU1MTc2XHU2OENCXHU1OTQ3XHU2QjY3XHU3NTY2XHU1RDBFXHU4MTEwXHU5RjUwXHU2NUQ3XHU3OTQ4XHU3OTQxXHU5QTkxXHU4RDc3XHU1QzgyXHU0RTVFXHU0RjAxXHU1NDJGXHU1OTUxXHU3ODBDXHU1NjY4XHU2QzE0XHU4RkM0XHU1RjAzXHU2QzdEXHU2Q0UzXHU4QkFCXHU2MzkwXCJdLFxuW1wiYzc0MFwiLFwiXHU4MzNFXHU4MzNGXHU4MzQxXHU4MzQyXHU4MzQ0XHU4MzQ1XHU4MzQ4XHU4MzRBXCIsNCxcIlx1ODM1M1x1ODM1NVwiLDQsXCJcdTgzNURcdTgzNjJcdTgzNzBcIiw2LFwiXHU4Mzc5XHU4MzdBXHU4MzdFXCIsNixcIlx1ODM4N1x1ODM4OFx1ODM4QVx1ODM4Qlx1ODM4Q1x1ODM4RFx1ODM4Rlx1ODM5MFx1ODM5MVx1ODM5NFx1ODM5NVx1ODM5Nlx1ODM5N1x1ODM5OVx1ODM5QVx1ODM5RFx1ODM5Rlx1ODNBMVwiLDYsXCJcdTgzQUNcdTgzQURcdTgzQUVcIl0sXG5bXCJjNzgwXCIsXCJcdTgzQUZcdTgzQjVcdTgzQkJcdTgzQkVcdTgzQkZcdTgzQzJcdTgzQzNcdTgzQzRcdTgzQzZcdTgzQzhcdTgzQzlcdTgzQ0JcdTgzQ0RcdTgzQ0VcdTgzRDBcdTgzRDFcdTgzRDJcdTgzRDNcdTgzRDVcdTgzRDdcdTgzRDlcdTgzREFcdTgzREJcdTgzREVcdTgzRTJcdTgzRTNcdTgzRTRcdTgzRTZcdTgzRTdcdTgzRThcdTgzRUJcdTgzRUNcdTgzRURcdTYwNzBcdTZEM0RcdTcyNzVcdTYyNjZcdTk0OEVcdTk0QzVcdTUzNDNcdThGQzFcdTdCN0VcdTRFREZcdThDMjZcdTRFN0VcdTlFRDRcdTk0QjFcdTk0QjNcdTUyNERcdTZGNUNcdTkwNjNcdTZENDVcdThDMzRcdTU4MTFcdTVENENcdTZCMjBcdTZCNDlcdTY3QUFcdTU0NUJcdTgxNTRcdTdGOENcdTU4OTlcdTg1MzdcdTVGM0FcdTYyQTJcdTZBNDdcdTk1MzlcdTY1NzJcdTYwODRcdTY4NjVcdTc3QTdcdTRFNTRcdTRGQThcdTVERTdcdTk3OThcdTY0QUNcdTdGRDhcdTVDRURcdTRGQ0ZcdTdBOERcdTUyMDdcdTgzMDRcdTRFMTRcdTYwMkZcdTdBODNcdTk0QTZcdTRGQjVcdTRFQjJcdTc5RTZcdTc0MzRcdTUyRTRcdTgyQjlcdTY0RDJcdTc5QkRcdTVCRERcdTZDODFcdTk3NTJcdThGN0JcdTZDMjJcdTUwM0VcdTUzN0ZcdTZFMDVcdTY0Q0VcdTY2NzRcdTZDMzBcdTYwQzVcdTk4NzdcdThCRjdcdTVFODZcdTc0M0NcdTdBNzdcdTc5Q0JcdTRFMThcdTkwQjFcdTc0MDNcdTZDNDJcdTU2REFcdTkxNEJcdTZDQzVcdThEOEJcdTUzM0FcdTg2QzZcdTY2RjJcdThFQUZcdTVDNDhcdTlBNzFcdTZFMjBcIl0sXG5bXCJjODQwXCIsXCJcdTgzRUVcdTgzRUZcdTgzRjNcIiw0LFwiXHU4M0ZBXHU4M0ZCXHU4M0ZDXHU4M0ZFXHU4M0ZGXHU4NDAwXHU4NDAyXHU4NDA1XHU4NDA3XHU4NDA4XHU4NDA5XHU4NDBBXHU4NDEwXHU4NDEyXCIsNSxcIlx1ODQxOVx1ODQxQVx1ODQxQlx1ODQxRVwiLDUsXCJcdTg0MjlcIiw3LFwiXHU4NDMyXCIsNSxcIlx1ODQzOVx1ODQzQVx1ODQzQlx1ODQzRVwiLDcsXCJcdTg0NDdcdTg0NDhcdTg0NDlcIl0sXG5bXCJjODgwXCIsXCJcdTg0NEFcIiw2LFwiXHU4NDUyXCIsNCxcIlx1ODQ1OFx1ODQ1RFx1ODQ1RVx1ODQ1Rlx1ODQ2MFx1ODQ2Mlx1ODQ2NFwiLDQsXCJcdTg0NkFcdTg0NkVcdTg0NkZcdTg0NzBcdTg0NzJcdTg0NzRcdTg0NzdcdTg0NzlcdTg0N0JcdTg0N0NcdTUzRDZcdTVBMzZcdTlGOEJcdThEQTNcdTUzQkJcdTU3MDhcdTk4QTdcdTY3NDNcdTkxOUJcdTZDQzlcdTUxNjhcdTc1Q0FcdTYyRjNcdTcyQUNcdTUyMzhcdTUyOURcdTdGM0FcdTcwOTRcdTc2MzhcdTUzNzRcdTlFNEFcdTY5QjdcdTc4NkVcdTk2QzBcdTg4RDlcdTdGQTRcdTcxMzZcdTcxQzNcdTUxODlcdTY3RDNcdTc0RTRcdTU4RTRcdTY1MThcdTU2QjdcdThCQTlcdTk5NzZcdTYyNzBcdTdFRDVcdTYwRjlcdTcwRURcdTU4RUNcdTRFQzFcdTRFQkFcdTVGQ0RcdTk3RTdcdTRFRkJcdThCQTRcdTUyMDNcdTU5OEFcdTdFQUJcdTYyNTRcdTRFQ0RcdTY1RTVcdTYyMEVcdTgzMzhcdTg0QzlcdTgzNjNcdTg3OERcdTcxOTRcdTZFQjZcdTVCQjlcdTdFRDJcdTUxOTdcdTYzQzlcdTY3RDRcdTgwODlcdTgzMzlcdTg4MTVcdTUxMTJcdTVCN0FcdTU5ODJcdThGQjFcdTRFNzNcdTZDNURcdTUxNjVcdTg5MjVcdThGNkZcdTk2MkVcdTg1NEFcdTc0NUVcdTk1MTBcdTk1RjBcdTZEQTZcdTgyRTVcdTVGMzFcdTY0OTJcdTZEMTJcdTg0MjhcdTgxNkVcdTlDQzNcdTU4NUVcdThENUJcdTRFMDlcdTUzQzFcIl0sXG5bXCJjOTQwXCIsXCJcdTg0N0RcIiw0LFwiXHU4NDgzXHU4NDg0XHU4NDg1XHU4NDg2XHU4NDhBXHU4NDhEXHU4NDhGXCIsNyxcIlx1ODQ5OFx1ODQ5QVx1ODQ5Qlx1ODQ5RFx1ODQ5RVx1ODQ5Rlx1ODRBMFx1ODRBMlwiLDEyLFwiXHU4NEIwXHU4NEIxXHU4NEIzXHU4NEI1XHU4NEI2XHU4NEI3XHU4NEJCXHU4NEJDXHU4NEJFXHU4NEMwXHU4NEMyXHU4NEMzXHU4NEM1XHU4NEM2XHU4NEM3XHU4NEM4XHU4NENCXHU4NENDXHU4NENFXHU4NENGXHU4NEQyXHU4NEQ0XHU4NEQ1XHU4NEQ3XCJdLFxuW1wiYzk4MFwiLFwiXHU4NEQ4XCIsNCxcIlx1ODRERVx1ODRFMVx1ODRFMlx1ODRFNFx1ODRFN1wiLDQsXCJcdTg0RURcdTg0RUVcdTg0RUZcdTg0RjFcIiwxMCxcIlx1ODRGRFx1ODRGRVx1ODUwMFx1ODUwMVx1ODUwMlx1NEYxRVx1NjU2M1x1Njg1MVx1NTVEM1x1NEUyN1x1NjQxNFx1OUE5QVx1NjI2Qlx1NUFDMlx1NzQ1Rlx1ODI3Mlx1NkRBOVx1NjhFRVx1NTBFN1x1ODM4RVx1NzgwMlx1Njc0MFx1NTIzOVx1NkM5OVx1N0VCMVx1NTBCQlx1NTU2NVx1NzE1RVx1N0I1Qlx1NjY1Mlx1NzNDQVx1ODJFQlx1Njc0OVx1NUM3MVx1NTIyMFx1NzE3RFx1ODg2Qlx1OTVFQVx1OTY1NVx1NjRDNVx1OEQ2MVx1ODFCM1x1NTU4NFx1NkM1NVx1NjI0N1x1N0YyRVx1NTg5Mlx1NEYyNFx1NTU0Nlx1OEQ0Rlx1NjY0Q1x1NEUwQVx1NUMxQVx1ODhGM1x1NjhBMlx1NjM0RVx1N0EwRFx1NzBFN1x1ODI4RFx1NTJGQVx1OTdGNlx1NUMxMVx1NTRFOFx1OTBCNVx1N0VDRFx1NTk2Mlx1OEQ0QVx1ODZDN1x1ODIwQ1x1ODIwRFx1OEQ2Nlx1NjQ0NFx1NUMwNFx1NjE1MVx1NkQ4OVx1NzkzRVx1OEJCRVx1NzgzN1x1NzUzM1x1NTQ3Qlx1NEYzOFx1OEVBQlx1NkRGMVx1NUEyMFx1N0VDNVx1Nzk1RVx1NkM4OFx1NUJBMVx1NUE3Nlx1NzUxQVx1ODBCRVx1NjE0RVx1NkUxN1x1NThGMFx1NzUxRlx1NzUyNVx1NzI3Mlx1NTM0N1x1N0VGM1wiXSxcbltcImNhNDBcIixcIlx1ODUwM1wiLDgsXCJcdTg1MERcdTg1MEVcdTg1MEZcdTg1MTBcdTg1MTJcdTg1MTRcdTg1MTVcdTg1MTZcdTg1MThcdTg1MTlcdTg1MUJcdTg1MUNcdTg1MURcdTg1MUVcdTg1MjBcdTg1MjJcIiw4LFwiXHU4NTJEXCIsOSxcIlx1ODUzRVwiLDQsXCJcdTg1NDRcdTg1NDVcdTg1NDZcdTg1NDdcdTg1NEJcIiwxMF0sXG5bXCJjYTgwXCIsXCJcdTg1NTdcdTg1NThcdTg1NUFcdTg1NUJcdTg1NUNcdTg1NURcdTg1NUZcIiw0LFwiXHU4NTY1XHU4NTY2XHU4NTY3XHU4NTY5XCIsOCxcIlx1ODU3M1x1ODU3NVx1ODU3Nlx1ODU3N1x1ODU3OFx1ODU3Q1x1ODU3RFx1ODU3Rlx1ODU4MFx1ODU4MVx1NzcwMVx1NzZEQlx1NTI2OVx1ODBEQ1x1NTcyM1x1NUUwOFx1NTkzMVx1NzJFRVx1NjVCRFx1NkU3Rlx1OEJEN1x1NUMzOFx1ODY3MVx1NTM0MVx1NzdGM1x1NjJGRVx1NjVGNlx1NEVDMFx1OThERlx1ODY4MFx1NUI5RVx1OEJDNlx1NTNGMlx1NzdFMlx1NEY3Rlx1NUM0RVx1OUE3Nlx1NTlDQlx1NUYwRlx1NzkzQVx1NThFQlx1NEUxNlx1NjdGRlx1NEU4Qlx1NjJFRFx1OEE5M1x1OTAxRFx1NTJCRlx1NjYyRlx1NTVEQ1x1NTY2Q1x1OTAwMlx1NEVENVx1NEY4RFx1OTFDQVx1OTk3MFx1NkMwRlx1NUUwMlx1NjA0M1x1NUJBNFx1ODlDNlx1OEJENVx1NjUzNlx1NjI0Qlx1OTk5Nlx1NUI4OFx1NUJGRlx1NjM4OFx1NTUyRVx1NTNEN1x1NzYyNlx1NTE3RFx1ODUyQ1x1NjdBMlx1NjhCM1x1NkI4QVx1NjI5Mlx1OEY5M1x1NTNENFx1ODIxMlx1NkREMVx1NzU4Rlx1NEU2Nlx1OEQ0RVx1NUI3MFx1NzE5Rlx1ODVBRlx1NjY5MVx1NjZEOVx1N0Y3Mlx1ODcwMFx1OUVDRFx1OUYyMFx1NUM1RVx1NjcyRlx1OEZGMFx1NjgxMVx1Njc1Rlx1NjIwRFx1N0FENlx1NTg4NVx1NUVCNlx1NjU3MFx1NkYzMVwiXSxcbltcImNiNDBcIixcIlx1ODU4Mlx1ODU4M1x1ODU4Nlx1ODU4OFwiLDYsXCJcdTg1OTBcIiwxMCxcIlx1ODU5RFwiLDYsXCJcdTg1QTVcdTg1QTZcdTg1QTdcdTg1QTlcdTg1QUJcdTg1QUNcdTg1QURcdTg1QjFcIiw1LFwiXHU4NUI4XHU4NUJBXCIsNixcIlx1ODVDMlwiLDYsXCJcdTg1Q0FcIiw0LFwiXHU4NUQxXHU4NUQyXCJdLFxuW1wiY2I4MFwiLFwiXHU4NUQ0XHU4NUQ2XCIsNSxcIlx1ODVERFwiLDYsXCJcdTg1RTVcdTg1RTZcdTg1RTdcdTg1RThcdTg1RUFcIiwxNCxcIlx1NjA1NVx1NTIzN1x1ODAwRFx1NjQ1NFx1ODg3MFx1NzUyOVx1NUUwNVx1NjgxM1x1NjJGNFx1OTcxQ1x1NTNDQ1x1NzIzRFx1OEMwMVx1NkMzNFx1Nzc2MVx1N0EwRVx1NTQyRVx1NzdBQ1x1OTg3QVx1ODIxQ1x1OEJGNFx1Nzg1NVx1NjcxNFx1NzBDMVx1NjVBRlx1NjQ5NVx1NTYzNlx1NjAxRFx1NzlDMVx1NTNGOFx1NEUxRFx1NkI3Qlx1ODA4Nlx1NUJGQVx1NTVFM1x1NTZEQlx1NEYzQVx1NEYzQ1x1OTk3Mlx1NURGM1x1Njc3RVx1ODAzOFx1NjAwMlx1OTg4Mlx1OTAwMVx1NUI4Qlx1OEJCQ1x1OEJGNVx1NjQxQ1x1ODI1OFx1NjRERVx1NTVGRFx1ODJDRlx1OTE2NVx1NEZEN1x1N0QyMFx1OTAxRlx1N0M5Rlx1NTBGM1x1NTg1MVx1NkVBRlx1NUJCRlx1OEJDOVx1ODA4M1x1OTE3OFx1ODQ5Q1x1N0I5N1x1ODY3RFx1OTY4Qlx1OTY4Rlx1N0VFNVx1OUFEM1x1Nzg4RVx1NUM4MVx1N0E1N1x1OTA0Mlx1OTZBN1x1Nzk1Rlx1NUI1OVx1NjM1Rlx1N0IwQlx1ODREMVx1NjhBRFx1NTUwNlx1N0YyOVx1NzQxMFx1N0QyMlx1OTUwMVx1NjI0MFx1NTg0Q1x1NEVENlx1NUI4M1x1NTk3OVx1NTg1NFwiXSxcbltcImNjNDBcIixcIlx1ODVGOVx1ODVGQVx1ODVGQ1x1ODVGRFx1ODVGRVx1ODYwMFwiLDQsXCJcdTg2MDZcIiwxMCxcIlx1ODYxMlx1ODYxM1x1ODYxNFx1ODYxNVx1ODYxN1wiLDE1LFwiXHU4NjI4XHU4NjJBXCIsMTMsXCJcdTg2MzlcdTg2M0FcdTg2M0JcdTg2M0RcdTg2M0VcdTg2M0ZcdTg2NDBcIl0sXG5bXCJjYzgwXCIsXCJcdTg2NDFcIiwxMSxcIlx1ODY1Mlx1ODY1M1x1ODY1NVwiLDQsXCJcdTg2NUJcdTg2NUNcdTg2NURcdTg2NUZcdTg2NjBcdTg2NjFcdTg2NjNcIiw3LFwiXHU3MzZEXHU2MzFFXHU4RTRCXHU4RTBGXHU4MENFXHU4MkQ0XHU2MkFDXHU1M0YwXHU2Q0YwXHU5MTVFXHU1OTJBXHU2MDAxXHU2QzcwXHU1NzREXHU2NDRBXHU4RDJBXHU3NjJCXHU2RUU5XHU1NzVCXHU2QTgwXHU3NUYwXHU2RjZEXHU4QzJEXHU4QzA4XHU1NzY2XHU2QkVGXHU4ODkyXHU3OEIzXHU2M0EyXHU1M0Y5XHU3MEFEXHU2QzY0XHU1ODU4XHU2NDJBXHU1ODAyXHU2OEUwXHU4MTlCXHU1NTEwXHU3Q0Q2XHU1MDE4XHU4RUJBXHU2RENDXHU4RDlGXHU3MEVCXHU2MzhGXHU2RDlCXHU2RUQ0XHU3RUU2XHU4NDA0XHU2ODQzXHU5MDAzXHU2REQ4XHU5Njc2XHU4QkE4XHU1OTU3XHU3Mjc5XHU4NUU0XHU4MTdFXHU3NUJDXHU4QThBXHU2OEFGXHU1MjU0XHU4RTIyXHU5NTExXHU2M0QwXHU5ODk4XHU4RTQ0XHU1NTdDXHU0RjUzXHU2NkZGXHU1NjhGXHU2MEQ1XHU2RDk1XHU1MjQzXHU1QzQ5XHU1OTI5XHU2REZCXHU1ODZCXHU3NTMwXHU3NTFDXHU2MDZDXHU4MjE0XHU4MTQ2XHU2MzExXHU2NzYxXHU4RkUyXHU3NzNBXHU4REYzXHU4RDM0XHU5NEMxXHU1RTE2XHU1Mzg1XHU1NDJDXHU3MEMzXCJdLFxuW1wiY2Q0MFwiLFwiXHU4NjZEXHU4NjZGXHU4NjcwXHU4NjcyXCIsNixcIlx1ODY4M1wiLDYsXCJcdTg2OEVcIiw0LFwiXHU4Njk0XHU4Njk2XCIsNSxcIlx1ODY5RVwiLDQsXCJcdTg2QTVcdTg2QTZcdTg2QUJcdTg2QURcdTg2QUVcdTg2QjJcdTg2QjNcdTg2QjdcdTg2QjhcdTg2QjlcdTg2QkJcIiw0LFwiXHU4NkMxXHU4NkMyXHU4NkMzXHU4NkM1XHU4NkM4XHU4NkNDXHU4NkNEXHU4NkQyXHU4NkQzXHU4NkQ1XHU4NkQ2XHU4NkQ3XHU4NkRBXHU4NkRDXCJdLFxuW1wiY2Q4MFwiLFwiXHU4NkREXHU4NkUwXHU4NkUxXHU4NkUyXHU4NkUzXHU4NkU1XHU4NkU2XHU4NkU3XHU4NkU4XHU4NkVBXHU4NkVCXHU4NkVDXHU4NkVGXHU4NkY1XHU4NkY2XHU4NkY3XHU4NkZBXHU4NkZCXHU4NkZDXHU4NkZEXHU4NkZGXHU4NzAxXHU4NzA0XHU4NzA1XHU4NzA2XHU4NzBCXHU4NzBDXHU4NzBFXHU4NzBGXHU4NzEwXHU4NzExXHU4NzE0XHU4NzE2XHU2QzQwXHU1RUY3XHU1MDVDXHU0RUFEXHU1RUFEXHU2MzNBXHU4MjQ3XHU5MDFBXHU2ODUwXHU5MTZFXHU3N0IzXHU1NDBDXHU5NERDXHU1RjY0XHU3QUU1XHU2ODc2XHU2MzQ1XHU3QjUyXHU3RURGXHU3NURCXHU1MDc3XHU2Mjk1XHU1OTM0XHU5MDBGXHU1MUY4XHU3OUMzXHU3QTgxXHU1NkZFXHU1RjkyXHU5MDE0XHU2RDgyXHU1QzYwXHU1NzFGXHU1NDEwXHU1MTU0XHU2RTREXHU1NkUyXHU2M0E4XHU5ODkzXHU4MTdGXHU4NzE1XHU4OTJBXHU5MDAwXHU1NDFFXHU1QzZGXHU4MUMwXHU2MkQ2XHU2MjU4XHU4MTMxXHU5RTM1XHU5NjQwXHU5QTZFXHU5QTdDXHU2OTJEXHU1OUE1XHU2MkQzXHU1NTNFXHU2MzE2XHU1NEM3XHU4NkQ5XHU2RDNDXHU1QTAzXHU3NEU2XHU4ODlDXHU2QjZBXHU1OTE2XHU4QzRDXHU1RjJGXHU2RTdFXHU3M0E5XHU5ODdEXHU0RTM4XHU3MEY3XHU1QjhDXHU3ODk3XHU2MzNEXHU2NjVBXHU3Njk2XHU2MENCXHU1QjlCXHU1QTQ5XHU0RTA3XHU4MTU1XHU2QzZBXHU3MzhCXHU0RUExXHU2Nzg5XHU3RjUxXHU1RjgwXHU2NUZBXHU2NzFCXHU1RkQ4XHU1OTg0XHU1QTAxXCJdLFxuW1wiY2U0MFwiLFwiXHU4NzE5XHU4NzFCXHU4NzFEXHU4NzFGXHU4NzIwXHU4NzI0XHU4NzI2XHU4NzI3XHU4NzI4XHU4NzJBXHU4NzJCXHU4NzJDXHU4NzJEXHU4NzJGXHU4NzMwXHU4NzMyXHU4NzMzXHU4NzM1XHU4NzM2XHU4NzM4XHU4NzM5XHU4NzNBXHU4NzNDXHU4NzNEXHU4NzQwXCIsNixcIlx1ODc0QVx1ODc0Qlx1ODc0RFx1ODc0Rlx1ODc1MFx1ODc1MVx1ODc1Mlx1ODc1NFx1ODc1NVx1ODc1Nlx1ODc1OFx1ODc1QVwiLDUsXCJcdTg3NjFcdTg3NjJcdTg3NjZcIiw3LFwiXHU4NzZGXHU4NzcxXHU4NzcyXHU4NzczXHU4Nzc1XCJdLFxuW1wiY2U4MFwiLFwiXHU4Nzc3XHU4Nzc4XHU4Nzc5XHU4NzdBXHU4NzdGXHU4NzgwXHU4NzgxXHU4Nzg0XHU4Nzg2XHU4Nzg3XHU4Nzg5XHU4NzhBXHU4NzhDXHU4NzhFXCIsNCxcIlx1ODc5NFx1ODc5NVx1ODc5Nlx1ODc5OFwiLDYsXCJcdTg3QTBcIiw0LFwiXHU1RENEXHU1RkFFXHU1MzcxXHU5N0U2XHU4RkREXHU2ODQ1XHU1NkY0XHU1NTJGXHU2MERGXHU0RTNBXHU2RjREXHU3RUY0XHU4MkM3XHU4NDBFXHU1OUQ0XHU0RjFGXHU0RjJBXHU1QzNFXHU3RUFDXHU2NzJBXHU4NTFBXHU1NDczXHU3NTRGXHU4MEMzXHU1NTgyXHU5QjRGXHU0RjREXHU2RTJEXHU4QzEzXHU1QzA5XHU2MTcwXHU1MzZCXHU3NjFGXHU2RTI5XHU4NjhBXHU2NTg3XHU5NUZCXHU3RUI5XHU1NDNCXHU3QTMzXHU3RDBBXHU5NUVFXHU1NUUxXHU3RkMxXHU3NEVFXHU2MzFEXHU4NzE3XHU2REExXHU3QTlEXHU2MjExXHU2NUExXHU1MzY3XHU2M0UxXHU2QzgzXHU1REVCXHU1NDVDXHU5NEE4XHU0RTRDXHU2QzYxXHU4QkVDXHU1QzRCXHU2NUUwXHU4MjlDXHU2OEE3XHU1NDNFXHU1NDM0XHU2QkNCXHU2QjY2XHU0RTk0XHU2MzQyXHU1MzQ4XHU4MjFFXHU0RjBEXHU0RkFFXHU1NzVFXHU2MjBBXHU5NkZFXHU2NjY0XHU3MjY5XHU1MkZGXHU1MkExXHU2MDlGXHU4QkVGXHU2NjE0XHU3MTk5XHU2NzkwXHU4OTdGXHU3ODUyXHU3N0ZEXHU2NjcwXHU1NjNCXHU1NDM4XHU5NTIxXHU3MjdBXCJdLFxuW1wiY2Y0MFwiLFwiXHU4N0E1XHU4N0E2XHU4N0E3XHU4N0E5XHU4N0FBXHU4N0FFXHU4N0IwXHU4N0IxXHU4N0IyXHU4N0I0XHU4N0I2XHU4N0I3XHU4N0I4XHU4N0I5XHU4N0JCXHU4N0JDXHU4N0JFXHU4N0JGXHU4N0MxXCIsNCxcIlx1ODdDN1x1ODdDOFx1ODdDOVx1ODdDQ1wiLDQsXCJcdTg3RDRcIiw2LFwiXHU4N0RDXHU4N0REXHU4N0RFXHU4N0RGXHU4N0UxXHU4N0UyXHU4N0UzXHU4N0U0XHU4N0U2XHU4N0U3XHU4N0U4XHU4N0U5XHU4N0VCXHU4N0VDXHU4N0VEXHU4N0VGXCIsOV0sXG5bXCJjZjgwXCIsXCJcdTg3RkFcdTg3RkJcdTg3RkNcdTg3RkRcdTg3RkZcdTg4MDBcdTg4MDFcdTg4MDJcdTg4MDRcIiw1LFwiXHU4ODBCXCIsNyxcIlx1ODgxNFx1ODgxN1x1ODgxOFx1ODgxOVx1ODgxQVx1ODgxQ1wiLDQsXCJcdTg4MjNcdTdBMDBcdTYwNkZcdTVFMENcdTYwODlcdTgxOURcdTU5MTVcdTYwRENcdTcxODRcdTcwRUZcdTZFQUFcdTZDNTBcdTcyODBcdTZBODRcdTg4QURcdTVFMkRcdTRFNjBcdTVBQjNcdTU1OUNcdTk0RTNcdTZEMTdcdTdDRkJcdTk2OTlcdTYyMEZcdTdFQzZcdTc3OEVcdTg2N0VcdTUzMjNcdTk3MUVcdThGOTZcdTY2ODdcdTVDRTFcdTRGQTBcdTcyRURcdTRFMEJcdTUzQTZcdTU5MEZcdTU0MTNcdTYzODBcdTk1MjhcdTUxNDhcdTRFRDlcdTlDOUNcdTdFQTRcdTU0QjhcdThEMjRcdTg4NTRcdTgyMzdcdTk1RjJcdTZEOEVcdTVGMjZcdTVBQ0NcdTY2M0VcdTk2NjlcdTczQjBcdTczMkVcdTUzQkZcdTgxN0FcdTk5ODVcdTdGQTFcdTVCQUFcdTk2NzdcdTk2NTBcdTdFQkZcdTc2RjhcdTUzQTJcdTk1NzZcdTk5OTlcdTdCQjFcdTg5NDRcdTZFNThcdTRFNjFcdTdGRDRcdTc5NjVcdThCRTZcdTYwRjNcdTU0Q0RcdTRFQUJcdTk4NzlcdTVERjdcdTZBNjFcdTUwQ0ZcdTU0MTFcdThDNjFcdTg0MjdcdTc4NURcdTk3MDRcdTUyNEFcdTU0RUVcdTU2QTNcdTk1MDBcdTZEODhcdTVCQjVcdTZEQzZcdTY2NTNcIl0sXG5bXCJkMDQwXCIsXCJcdTg4MjRcIiwxMyxcIlx1ODgzM1wiLDUsXCJcdTg4M0FcdTg4M0JcdTg4M0RcdTg4M0VcdTg4M0ZcdTg4NDFcdTg4NDJcdTg4NDNcdTg4NDZcIiw1LFwiXHU4ODRFXCIsNSxcIlx1ODg1NVx1ODg1Nlx1ODg1OFx1ODg1QVwiLDYsXCJcdTg4NjZcdTg4NjdcdTg4NkFcdTg4NkRcdTg4NkZcdTg4NzFcdTg4NzNcdTg4NzRcdTg4NzVcdTg4NzZcdTg4NzhcdTg4NzlcdTg4N0FcIl0sXG5bXCJkMDgwXCIsXCJcdTg4N0JcdTg4N0NcdTg4ODBcdTg4ODNcdTg4ODZcdTg4ODdcdTg4ODlcdTg4OEFcdTg4OENcdTg4OEVcdTg4OEZcdTg4OTBcdTg4OTFcdTg4OTNcdTg4OTRcdTg4OTVcdTg4OTdcIiw0LFwiXHU4ODlEXCIsNCxcIlx1ODhBM1x1ODhBNVwiLDUsXCJcdTVDMEZcdTVCNURcdTY4MjFcdTgwOTZcdTU1NzhcdTdCMTFcdTY1NDhcdTY5NTRcdTRFOUJcdTZCNDdcdTg3NEVcdTk3OEJcdTUzNEZcdTYzMUZcdTY0M0FcdTkwQUFcdTY1OUNcdTgwQzFcdThDMTBcdTUxOTlcdTY4QjBcdTUzNzhcdTg3RjlcdTYxQzhcdTZDQzRcdTZDRkJcdThDMjJcdTVDNTFcdTg1QUFcdTgyQUZcdTk1MENcdTZCMjNcdThGOUJcdTY1QjBcdTVGRkJcdTVGQzNcdTRGRTFcdTg4NDVcdTY2MUZcdTgxNjVcdTczMjlcdTYwRkFcdTUxNzRcdTUyMTFcdTU3OEJcdTVGNjJcdTkwQTJcdTg4NENcdTkxOTJcdTVFNzhcdTY3NEZcdTYwMjdcdTU5RDNcdTUxNDRcdTUxRjZcdTgwRjhcdTUzMDhcdTZDNzlcdTk2QzRcdTcxOEFcdTRGMTFcdTRGRUVcdTdGOUVcdTY3M0RcdTU1QzVcdTk1MDhcdTc5QzBcdTg4OTZcdTdFRTNcdTU4OUZcdTYyMENcdTk3MDBcdTg2NUFcdTU2MThcdTk4N0JcdTVGOTBcdThCQjhcdTg0QzRcdTkxNTdcdTUzRDlcdTY1RURcdTVFOEZcdTc1NUNcdTYwNjRcdTdENkVcdTVBN0ZcdTdFRUFcdTdFRURcdThGNjlcdTU1QTdcdTVCQTNcdTYwQUNcdTY1Q0JcdTczODRcIl0sXG5bXCJkMTQwXCIsXCJcdTg4QUNcdTg4QUVcdTg4QUZcdTg4QjBcdTg4QjJcIiw0LFwiXHU4OEI4XHU4OEI5XHU4OEJBXHU4OEJCXHU4OEJEXHU4OEJFXHU4OEJGXHU4OEMwXHU4OEMzXHU4OEM0XHU4OEM3XHU4OEM4XHU4OENBXHU4OENCXHU4OENDXHU4OENEXHU4OENGXHU4OEQwXHU4OEQxXHU4OEQzXHU4OEQ2XHU4OEQ3XHU4OERBXCIsNCxcIlx1ODhFMFx1ODhFMVx1ODhFNlx1ODhFN1x1ODhFOVwiLDYsXCJcdTg4RjJcdTg4RjVcdTg4RjZcdTg4RjdcdTg4RkFcdTg4RkJcdTg4RkRcdTg4RkZcdTg5MDBcdTg5MDFcdTg5MDNcIiw1XSxcbltcImQxODBcIixcIlx1ODkwOVx1ODkwQlwiLDQsXCJcdTg5MTFcdTg5MTRcIiw0LFwiXHU4OTFDXCIsNCxcIlx1ODkyMlx1ODkyM1x1ODkyNFx1ODkyNlx1ODkyN1x1ODkyOFx1ODkyOVx1ODkyQ1x1ODkyRFx1ODkyRVx1ODkyRlx1ODkzMVx1ODkzMlx1ODkzM1x1ODkzNVx1ODkzN1x1OTAwOVx1NzY2M1x1NzcyOVx1N0VEQVx1OTc3NFx1ODU5Qlx1NUI2Nlx1N0E3NFx1OTZFQVx1ODg0MFx1NTJDQlx1NzE4Rlx1NUZBQVx1NjVFQ1x1OEJFMlx1NUJGQlx1OUE2Rlx1NURFMVx1NkI4OVx1NkM1Qlx1OEJBRFx1OEJBRlx1OTAwQVx1OEZDNVx1NTM4Qlx1NjJCQ1x1OUUyNlx1OUUyRFx1NTQ0MFx1NEUyQlx1ODJCRFx1NzI1OVx1ODY5Q1x1NUQxNlx1ODg1OVx1NkRBRlx1OTZDNVx1NTREMVx1NEU5QVx1OEJCNlx1NzEwOVx1NTRCRFx1OTYwOVx1NzBERlx1NkRGOVx1NzZEMFx1NEUyNVx1NzgxNFx1ODcxMlx1NUNBOVx1NUVGNlx1OEEwMFx1OTg5Q1x1OTYwRVx1NzA4RVx1NkNCRlx1NTk0NFx1NjNBOVx1NzczQ1x1ODg0RFx1NkYxNFx1ODI3M1x1NTgzMFx1NzFENVx1NTM4Q1x1NzgxQVx1OTZDMVx1NTUwMVx1NUY2Nlx1NzEzMFx1NUJCNFx1OEMxQVx1OUE4Q1x1NkI4M1x1NTkyRVx1OUUyRlx1NzlFN1x1Njc2OFx1NjI2Q1x1NEY2Rlx1NzVBMVx1N0Y4QVx1NkQwQlx1OTYzM1x1NkMyN1x1NEVGMFx1NzVEMlx1NTE3Qlx1NjgzN1x1NkYzRVx1OTA4MFx1ODE3MFx1NTk5Nlx1NzQ3NlwiXSxcbltcImQyNDBcIixcIlx1ODkzOFwiLDgsXCJcdTg5NDJcdTg5NDNcdTg5NDVcIiwyNCxcIlx1ODk2MFwiLDUsXCJcdTg5NjdcIiwxOSxcIlx1ODk3Q1wiXSxcbltcImQyODBcIixcIlx1ODk3RFx1ODk3RVx1ODk4MFx1ODk4Mlx1ODk4NFx1ODk4NVx1ODk4N1wiLDI2LFwiXHU2NDQ3XHU1QzI3XHU5MDY1XHU3QTkxXHU4QzIzXHU1OURBXHU1NEFDXHU4MjAwXHU4MzZGXHU4OTgxXHU4MDAwXHU2OTMwXHU1NjRFXHU4MDM2XHU3MjM3XHU5MUNFXHU1MUI2XHU0RTVGXHU5ODc1XHU2Mzk2XHU0RTFBXHU1M0Y2XHU2NkYzXHU4MTRCXHU1OTFDXHU2REIyXHU0RTAwXHU1OEY5XHU1MzNCXHU2M0Q2XHU5NEYxXHU0RjlEXHU0RjBBXHU4ODYzXHU5ODkwXHU1OTM3XHU5MDU3XHU3OUZCXHU0RUVBXHU4MEYwXHU3NTkxXHU2QzgyXHU1QjlDXHU1OUU4XHU1RjVEXHU2OTA1XHU4NjgxXHU1MDFBXHU1REYyXHU0RTU5XHU3N0UzXHU0RUU1XHU4MjdBXHU2MjkxXHU2NjEzXHU5MDkxXHU1Qzc5XHU0RUJGXHU1Rjc5XHU4MUM2XHU5MDM4XHU4MDg0XHU3NUFCXHU0RUE2XHU4OEQ0XHU2MTBGXHU2QkM1XHU1RkM2XHU0RTQ5XHU3NkNBXHU2RUEyXHU4QkUzXHU4QkFFXHU4QzBBXHU4QkQxXHU1RjAyXHU3RkZDXHU3RkNDXHU3RUNFXHU4MzM1XHU4MzZCXHU1NkUwXHU2QkI3XHU5N0YzXHU5NjM0XHU1OUZCXHU1NDFGXHU5NEY2XHU2REVCXHU1QkM1XHU5OTZFXHU1QzM5XHU1RjE1XHU5NjkwXCJdLFxuW1wiZDM0MFwiLFwiXHU4OUEyXCIsMzAsXCJcdTg5QzNcdTg5Q0RcdTg5RDNcdTg5RDRcdTg5RDVcdTg5RDdcdTg5RDhcdTg5RDlcdTg5REJcdTg5RERcdTg5REZcdTg5RTBcdTg5RTFcdTg5RTJcdTg5RTRcdTg5RTdcdTg5RThcdTg5RTlcdTg5RUFcdTg5RUNcdTg5RURcdTg5RUVcdTg5RjBcdTg5RjFcdTg5RjJcdTg5RjRcIiw2XSxcbltcImQzODBcIixcIlx1ODlGQlwiLDQsXCJcdThBMDFcIiw1LFwiXHU4QTA4XCIsMjEsXCJcdTUzNzBcdTgyRjFcdTZBMzFcdTVBNzRcdTlFNzBcdTVFOTRcdTdGMjhcdTgzQjlcdTg0MjRcdTg0MjVcdTgzNjdcdTg3NDdcdThGQ0VcdThENjJcdTc2QzhcdTVGNzFcdTk4OTZcdTc4NkNcdTY2MjBcdTU0REZcdTYyRTVcdTRGNjNcdTgxQzNcdTc1QzhcdTVFQjhcdTk2Q0RcdThFMEFcdTg2RjlcdTU0OEZcdTZDRjNcdTZEOENcdTZDMzhcdTYwN0ZcdTUyQzdcdTc1MjhcdTVFN0RcdTRGMThcdTYwQTBcdTVGRTdcdTVDMjRcdTc1MzFcdTkwQUVcdTk0QzBcdTcyQjlcdTZDQjlcdTZFMzhcdTkxNDlcdTY3MDlcdTUzQ0JcdTUzRjNcdTRGNTFcdTkxQzlcdThCRjFcdTUzQzhcdTVFN0NcdThGQzJcdTZERTRcdTRFOEVcdTc2QzJcdTY5ODZcdTg2NUVcdTYxMUFcdTgyMDZcdTRGNTlcdTRGREVcdTkwM0VcdTlDN0NcdTYxMDlcdTZFMURcdTZFMTRcdTk2ODVcdTRFODhcdTVBMzFcdTk2RThcdTRFMEVcdTVDN0ZcdTc5QjlcdTVCODdcdThCRURcdTdGQkRcdTczODlcdTU3REZcdTgyOEJcdTkwQzFcdTU0MDFcdTkwNDdcdTU1QkJcdTVDRUFcdTVGQTFcdTYxMDhcdTZCMzJcdTcyRjFcdTgwQjJcdThBODlcIl0sXG5bXCJkNDQwXCIsXCJcdThBMUVcIiwzMSxcIlx1OEEzRlwiLDgsXCJcdThBNDlcIiwyMV0sXG5bXCJkNDgwXCIsXCJcdThBNUZcIiwyNSxcIlx1OEE3QVwiLDYsXCJcdTZENzRcdTVCRDNcdTg4RDVcdTk4ODRcdThDNkJcdTlBNkRcdTlFMzNcdTZFMEFcdTUxQTRcdTUxNDNcdTU3QTNcdTg4ODFcdTUzOUZcdTYzRjRcdThGOTVcdTU2RURcdTU0NThcdTU3MDZcdTczM0ZcdTZFOTBcdTdGMThcdThGRENcdTgyRDFcdTYxM0ZcdTYwMjhcdTk2NjJcdTY2RjBcdTdFQTZcdThEOEFcdThEQzNcdTk0QTVcdTVDQjNcdTdDQTRcdTY3MDhcdTYwQTZcdTk2MDVcdTgwMThcdTRFOTFcdTkwRTdcdTUzMDBcdTk2NjhcdTUxNDFcdThGRDBcdTg1NzRcdTkxNURcdTY2NTVcdTk3RjVcdTVCNTVcdTUzMURcdTc4MzhcdTY3NDJcdTY4M0RcdTU0QzlcdTcwN0VcdTVCQjBcdThGN0RcdTUxOERcdTU3MjhcdTU0QjFcdTY1MTJcdTY2ODJcdThENUVcdThENDNcdTgxMEZcdTg0NkNcdTkwNkRcdTdDREZcdTUxRkZcdTg1RkJcdTY3QTNcdTY1RTlcdTZGQTFcdTg2QTRcdThFODFcdTU2NkFcdTkwMjBcdTc2ODJcdTcwNzZcdTcxRTVcdThEMjNcdTYyRTlcdTUyMTlcdTZDRkRcdThEM0NcdTYwMEVcdTU4OUVcdTYxOEVcdTY2RkVcdThENjBcdTYyNEVcdTU1QjNcdTZFMjNcdTY3MkRcdThGNjdcIl0sXG5bXCJkNTQwXCIsXCJcdThBODFcIiw3LFwiXHU4QThCXCIsNyxcIlx1OEE5NFwiLDQ2XSxcbltcImQ1ODBcIixcIlx1OEFDM1wiLDMyLFwiXHU5NEUxXHU5NUY4XHU3NzI4XHU2ODA1XHU2OUE4XHU1NDhCXHU0RTREXHU3MEI4XHU4QkM4XHU2NDU4XHU2NThCXHU1Qjg1XHU3QTg0XHU1MDNBXHU1QkU4XHU3N0JCXHU2QkUxXHU4QTc5XHU3Qzk4XHU2Q0JFXHU3NkNGXHU2NUE5XHU4Rjk3XHU1RDJEXHU1QzU1XHU4NjM4XHU2ODA4XHU1MzYwXHU2MjE4XHU3QUQ5XHU2RTVCXHU3RUZEXHU2QTFGXHU3QUUwXHU1RjcwXHU2RjMzXHU1RjIwXHU2MzhDXHU2REE4XHU2NzU2XHU0RTA4XHU1RTEwXHU4RDI2XHU0RUQ3XHU4MEMwXHU3NjM0XHU5NjlDXHU2MkRCXHU2NjJEXHU2MjdFXHU2Q0JDXHU4RDc1XHU3MTY3XHU3RjY5XHU1MTQ2XHU4MDg3XHU1M0VDXHU5MDZFXHU2Mjk4XHU1NEYyXHU4NkYwXHU4Rjk5XHU4MDA1XHU5NTE3XHU4NTE3XHU4RkQ5XHU2RDU5XHU3M0NEXHU2NTlGXHU3NzFGXHU3NTA0XHU3ODI3XHU4MUZCXHU4RDFFXHU5NDg4XHU0RkE2XHU2Nzk1XHU3NUI5XHU4QkNBXHU5NzA3XHU2MzJGXHU5NTQ3XHU5NjM1XHU4NEI4XHU2MzIzXHU3NzQxXHU1RjgxXHU3MkYwXHU0RTg5XHU2MDE0XHU2NTc0XHU2MkVGXHU2QjYzXHU2NTNGXCJdLFxuW1wiZDY0MFwiLFwiXHU4QUU0XCIsMzQsXCJcdThCMDhcIiwyN10sXG5bXCJkNjgwXCIsXCJcdThCMjRcdThCMjVcdThCMjdcIiwzMCxcIlx1NUUyN1x1NzVDN1x1OTBEMVx1OEJDMVx1ODI5RFx1Njc5RFx1NjUyRlx1NTQzMVx1ODcxOFx1NzdFNVx1ODBBMlx1ODEwMlx1NkM0MVx1NEU0Qlx1N0VDN1x1ODA0Q1x1NzZGNFx1NjkwRFx1NkI5Nlx1NjI2N1x1NTAzQ1x1NEY4NFx1NTc0MFx1NjMwN1x1NkI2Mlx1OERCRVx1NTNFQVx1NjVFOFx1N0VCOFx1NUZEN1x1NjMxQVx1NjNCN1x1ODFGM1x1ODFGNFx1N0Y2RVx1NUUxQ1x1NUNEOVx1NTIzNlx1NjY3QVx1NzlFOVx1N0ExQVx1OEQyOFx1NzA5OVx1NzVENFx1NkVERVx1NkNCQlx1N0E5Mlx1NEUyRFx1NzZDNVx1NUZFMFx1OTQ5Rlx1ODg3N1x1N0VDOFx1NzlDRFx1ODBCRlx1OTFDRFx1NEVGMlx1NEYxN1x1ODIxRlx1NTQ2OFx1NURERVx1NkQzMlx1OEJDQ1x1N0NBNVx1OEY3NFx1ODA5OFx1NUUxQVx1NTQ5Mlx1NzZCMVx1NUI5OVx1NjYzQ1x1OUFBNFx1NzNFMFx1NjgyQVx1ODZEQlx1NjczMVx1NzMyQVx1OEJGOFx1OEJEQlx1OTAxMFx1N0FGOVx1NzBEQlx1NzE2RVx1NjJDNFx1NzdBOVx1NTYzMVx1NEUzQlx1ODQ1N1x1NjdGMVx1NTJBOVx1ODZDMFx1OEQyRVx1OTRGOFx1N0I1MVwiXSxcbltcImQ3NDBcIixcIlx1OEI0NlwiLDMxLFwiXHU4QjY3XCIsNCxcIlx1OEI2RFwiLDI1XSxcbltcImQ3ODBcIixcIlx1OEI4N1wiLDI0LFwiXHU4QkFDXHU4QkIxXHU4QkJCXHU4QkM3XHU4QkQwXHU4QkVBXHU4QzA5XHU4QzFFXHU0RjRGXHU2Q0U4XHU3OTVEXHU5QTdCXHU2MjkzXHU3MjJBXHU2MkZEXHU0RTEzXHU3ODE2XHU4RjZDXHU2NEIwXHU4RDVBXHU3QkM2XHU2ODY5XHU1RTg0XHU4OEM1XHU1OTg2XHU2NDlFXHU1OEVFXHU3MkI2XHU2OTBFXHU5NTI1XHU4RkZEXHU4RDU4XHU1NzYwXHU3RjAwXHU4QzA2XHU1MUM2XHU2MzQ5XHU2MkQ5XHU1MzUzXHU2ODRDXHU3NDIyXHU4MzAxXHU5MTRDXHU1NTQ0XHU3NzQwXHU3MDdDXHU2RDRBXHU1MTc5XHU1NEE4XHU4RDQ0XHU1OUZGXHU2RUNCXHU2REM0XHU1QjVDXHU3RDJCXHU0RUQ0XHU3QzdEXHU2RUQzXHU1QjUwXHU4MUVBXHU2RTBEXHU1QjU3XHU5QjAzXHU2OEQ1XHU4RTJBXHU1Qjk3XHU3RUZDXHU2MDNCXHU3RUI1XHU5MEI5XHU4RDcwXHU1OTRGXHU2M0NEXHU3OURGXHU4REIzXHU1MzUyXHU2NUNGXHU3OTU2XHU4QkM1XHU5NjNCXHU3RUM0XHU5NEJCXHU3RTgyXHU1NjM0XHU5MTg5XHU2NzAwXHU3RjZBXHU1QzBBXHU5MDc1XHU2NjI4XHU1REU2XHU0RjUwXHU2N0RFXHU1MDVBXHU0RjVDXHU1NzUwXHU1RUE3XCJdLFxuW1wiZDg0MFwiLFwiXHU4QzM4XCIsOCxcIlx1OEM0Mlx1OEM0M1x1OEM0NFx1OEM0NVx1OEM0OFx1OEM0QVx1OEM0Qlx1OEM0RFwiLDcsXCJcdThDNTZcdThDNTdcdThDNThcdThDNTlcdThDNUJcIiw1LFwiXHU4QzYzXCIsNixcIlx1OEM2Q1wiLDYsXCJcdThDNzRcdThDNzVcdThDNzZcdThDNzdcdThDN0JcIiw2LFwiXHU4QzgzXHU4Qzg0XHU4Qzg2XHU4Qzg3XCJdLFxuW1wiZDg4MFwiLFwiXHU4Qzg4XHU4QzhCXHU4QzhEXCIsNixcIlx1OEM5NVx1OEM5Nlx1OEM5N1x1OEM5OVwiLDIwLFwiXHU0RThEXHU0RTBDXHU1MTQwXHU0RTEwXHU1RUZGXHU1MzQ1XHU0RTE1XHU0RTk4XHU0RTFFXHU5QjMyXHU1QjZDXHU1NjY5XHU0RTI4XHU3OUJBXHU0RTNGXHU1MzE1XHU0RTQ3XHU1OTJEXHU3MjNCXHU1MzZFXHU2QzEwXHU1NkRGXHU4MEU0XHU5OTk3XHU2QkQzXHU3NzdFXHU5RjE3XHU0RTM2XHU0RTlGXHU5RjEwXHU0RTVDXHU0RTY5XHU0RTkzXHU4Mjg4XHU1QjVCXHU1NTZDXHU1NjBGXHU0RUM0XHU1MzhEXHU1MzlEXHU1M0EzXHU1M0E1XHU1M0FFXHU5NzY1XHU4RDVEXHU1MzFBXHU1M0Y1XHU1MzI2XHU1MzJFXHU1MzNFXHU4RDVDXHU1MzY2XHU1MzYzXHU1MjAyXHU1MjA4XHU1MjBFXHU1MjJEXHU1MjMzXHU1MjNGXHU1MjQwXHU1MjRDXHU1MjVFXHU1MjYxXHU1MjVDXHU4NEFGXHU1MjdEXHU1MjgyXHU1MjgxXHU1MjkwXHU1MjkzXHU1MTgyXHU3RjU0XHU0RUJCXHU0RUMzXHU0RUM5XHU0RUMyXHU0RUU4XHU0RUUxXHU0RUVCXHU0RURFXHU0RjFCXHU0RUYzXHU0RjIyXHU0RjY0XHU0RUY1XHU0RjI1XHU0RjI3XHU0RjA5XHU0RjJCXHU0RjVFXHU0RjY3XHU2NTM4XHU0RjVBXHU0RjVEXCJdLFxuW1wiZDk0MFwiLFwiXHU4Q0FFXCIsNjJdLFxuW1wiZDk4MFwiLFwiXHU4Q0VEXCIsMzIsXCJcdTRGNUZcdTRGNTdcdTRGMzJcdTRGM0RcdTRGNzZcdTRGNzRcdTRGOTFcdTRGODlcdTRGODNcdTRGOEZcdTRGN0VcdTRGN0JcdTRGQUFcdTRGN0NcdTRGQUNcdTRGOTRcdTRGRTZcdTRGRThcdTRGRUFcdTRGQzVcdTRGREFcdTRGRTNcdTRGRENcdTRGRDFcdTRGREZcdTRGRjhcdTUwMjlcdTUwNENcdTRGRjNcdTUwMkNcdTUwMEZcdTUwMkVcdTUwMkRcdTRGRkVcdTUwMUNcdTUwMENcdTUwMjVcdTUwMjhcdTUwN0VcdTUwNDNcdTUwNTVcdTUwNDhcdTUwNEVcdTUwNkNcdTUwN0JcdTUwQTVcdTUwQTdcdTUwQTlcdTUwQkFcdTUwRDZcdTUxMDZcdTUwRURcdTUwRUNcdTUwRTZcdTUwRUVcdTUxMDdcdTUxMEJcdTRFRERcdTZDM0RcdTRGNThcdTRGNjVcdTRGQ0VcdTlGQTBcdTZDNDZcdTdDNzRcdTUxNkVcdTVERkRcdTlFQzlcdTk5OThcdTUxODFcdTU5MTRcdTUyRjlcdTUzMERcdThBMDdcdTUzMTBcdTUxRUJcdTU5MTlcdTUxNTVcdTRFQTBcdTUxNTZcdTRFQjNcdTg4NkVcdTg4QTRcdTRFQjVcdTgxMTRcdTg4RDJcdTc5ODBcdTVCMzRcdTg4MDNcdTdGQjhcdTUxQUJcdTUxQjFcdTUxQkRcdTUxQkNcIl0sXG5bXCJkYTQwXCIsXCJcdThEMEVcIiwxNCxcIlx1OEQyMFx1OEQ1MVx1OEQ1Mlx1OEQ1N1x1OEQ1Rlx1OEQ2NVx1OEQ2OFx1OEQ2OVx1OEQ2QVx1OEQ2Q1x1OEQ2RVx1OEQ2Rlx1OEQ3MVx1OEQ3Mlx1OEQ3OFwiLDgsXCJcdThEODJcdThEODNcdThEODZcdThEODdcdThEODhcdThEODlcdThEOENcIiw0LFwiXHU4RDkyXHU4RDkzXHU4RDk1XCIsOSxcIlx1OERBMFx1OERBMVwiXSxcbltcImRhODBcIixcIlx1OERBMlx1OERBNFwiLDEyLFwiXHU4REIyXHU4REI2XHU4REI3XHU4REI5XHU4REJCXHU4REJEXHU4REMwXHU4REMxXHU4REMyXHU4REM1XHU4REM3XHU4REM4XHU4REM5XHU4RENBXHU4RENEXHU4REQwXHU4REQyXHU4REQzXHU4REQ0XHU1MUM3XHU1MTk2XHU1MUEyXHU1MUE1XHU4QkEwXHU4QkE2XHU4QkE3XHU4QkFBXHU4QkI0XHU4QkI1XHU4QkI3XHU4QkMyXHU4QkMzXHU4QkNCXHU4QkNGXHU4QkNFXHU4QkQyXHU4QkQzXHU4QkQ0XHU4QkQ2XHU4QkQ4XHU4QkQ5XHU4QkRDXHU4QkRGXHU4QkUwXHU4QkU0XHU4QkU4XHU4QkU5XHU4QkVFXHU4QkYwXHU4QkYzXHU4QkY2XHU4QkY5XHU4QkZDXHU4QkZGXHU4QzAwXHU4QzAyXHU4QzA0XHU4QzA3XHU4QzBDXHU4QzBGXHU4QzExXHU4QzEyXHU4QzE0XHU4QzE1XHU4QzE2XHU4QzE5XHU4QzFCXHU4QzE4XHU4QzFEXHU4QzFGXHU4QzIwXHU4QzIxXHU4QzI1XHU4QzI3XHU4QzJBXHU4QzJCXHU4QzJFXHU4QzJGXHU4QzMyXHU4QzMzXHU4QzM1XHU4QzM2XHU1MzY5XHU1MzdBXHU5NjFEXHU5NjIyXHU5NjIxXHU5NjMxXHU5NjJBXHU5NjNEXHU5NjNDXHU5NjQyXHU5NjQ5XHU5NjU0XHU5NjVGXHU5NjY3XHU5NjZDXHU5NjcyXHU5Njc0XHU5Njg4XHU5NjhEXHU5Njk3XHU5NkIwXHU5MDk3XHU5MDlCXHU5MDlEXHU5MDk5XHU5MEFDXHU5MEExXHU5MEI0XHU5MEIzXHU5MEI2XHU5MEJBXCJdLFxuW1wiZGI0MFwiLFwiXHU4REQ1XHU4REQ4XHU4REQ5XHU4RERDXHU4REUwXHU4REUxXHU4REUyXHU4REU1XHU4REU2XHU4REU3XHU4REU5XHU4REVEXHU4REVFXHU4REYwXHU4REYxXHU4REYyXHU4REY0XHU4REY2XHU4REZDXHU4REZFXCIsNixcIlx1OEUwNlx1OEUwN1x1OEUwOFx1OEUwQlx1OEUwRFx1OEUwRVx1OEUxMFx1OEUxMVx1OEUxMlx1OEUxM1x1OEUxNVwiLDcsXCJcdThFMjBcdThFMjFcdThFMjRcIiw0LFwiXHU4RTJCXHU4RTJEXHU4RTMwXHU4RTMyXHU4RTMzXHU4RTM0XHU4RTM2XHU4RTM3XHU4RTM4XHU4RTNCXHU4RTNDXHU4RTNFXCJdLFxuW1wiZGI4MFwiLFwiXHU4RTNGXHU4RTQzXHU4RTQ1XHU4RTQ2XHU4RTRDXCIsNCxcIlx1OEU1M1wiLDUsXCJcdThFNUFcIiwxMSxcIlx1OEU2N1x1OEU2OFx1OEU2QVx1OEU2Qlx1OEU2RVx1OEU3MVx1OTBCOFx1OTBCMFx1OTBDRlx1OTBDNVx1OTBCRVx1OTBEMFx1OTBDNFx1OTBDN1x1OTBEM1x1OTBFNlx1OTBFMlx1OTBEQ1x1OTBEN1x1OTBEQlx1OTBFQlx1OTBFRlx1OTBGRVx1OTEwNFx1OTEyMlx1OTExRVx1OTEyM1x1OTEzMVx1OTEyRlx1OTEzOVx1OTE0M1x1OTE0Nlx1NTIwRFx1NTk0Mlx1NTJBMlx1NTJBQ1x1NTJBRFx1NTJCRVx1NTRGRlx1NTJEMFx1NTJENlx1NTJGMFx1NTNERlx1NzFFRVx1NzdDRFx1NUVGNFx1NTFGNVx1NTFGQ1x1OUIyRlx1NTNCNlx1NUYwMVx1NzU1QVx1NURFRlx1NTc0Q1x1NTdBOVx1NTdBMVx1NTg3RVx1NThCQ1x1NThDNVx1NThEMVx1NTcyOVx1NTcyQ1x1NTcyQVx1NTczM1x1NTczOVx1NTcyRVx1NTcyRlx1NTc1Q1x1NTczQlx1NTc0Mlx1NTc2OVx1NTc4NVx1NTc2Qlx1NTc4Nlx1NTc3Q1x1NTc3Qlx1NTc2OFx1NTc2RFx1NTc3Nlx1NTc3M1x1NTdBRFx1NTdBNFx1NTc4Q1x1NTdCMlx1NTdDRlx1NTdBN1x1NTdCNFx1NTc5M1x1NTdBMFx1NTdENVx1NTdEOFx1NTdEQVx1NTdEOVx1NTdEMlx1NTdCOFx1NTdGNFx1NTdFRlx1NTdGOFx1NTdFNFx1NTdERFwiXSxcbltcImRjNDBcIixcIlx1OEU3M1x1OEU3NVx1OEU3N1wiLDQsXCJcdThFN0RcdThFN0VcdThFODBcdThFODJcdThFODNcdThFODRcdThFODZcdThFODhcIiw2LFwiXHU4RTkxXHU4RTkyXHU4RTkzXHU4RTk1XCIsNixcIlx1OEU5RFx1OEU5RlwiLDExLFwiXHU4RUFEXHU4RUFFXHU4RUIwXHU4RUIxXHU4RUIzXCIsNixcIlx1OEVCQlwiLDddLFxuW1wiZGM4MFwiLFwiXHU4RUMzXCIsMTAsXCJcdThFQ0ZcIiwyMSxcIlx1NTgwQlx1NTgwRFx1NTdGRFx1NTdFRFx1NTgwMFx1NTgxRVx1NTgxOVx1NTg0NFx1NTgyMFx1NTg2NVx1NTg2Q1x1NTg4MVx1NTg4OVx1NTg5QVx1NTg4MFx1OTlBOFx1OUYxOVx1NjFGRlx1ODI3OVx1ODI3RFx1ODI3Rlx1ODI4Rlx1ODI4QVx1ODJBOFx1ODI4NFx1ODI4RVx1ODI5MVx1ODI5N1x1ODI5OVx1ODJBQlx1ODJCOFx1ODJCRVx1ODJCMFx1ODJDOFx1ODJDQVx1ODJFM1x1ODI5OFx1ODJCN1x1ODJBRVx1ODJDQlx1ODJDQ1x1ODJDMVx1ODJBOVx1ODJCNFx1ODJBMVx1ODJBQVx1ODI5Rlx1ODJDNFx1ODJDRVx1ODJBNFx1ODJFMVx1ODMwOVx1ODJGN1x1ODJFNFx1ODMwRlx1ODMwN1x1ODJEQ1x1ODJGNFx1ODJEMlx1ODJEOFx1ODMwQ1x1ODJGQlx1ODJEM1x1ODMxMVx1ODMxQVx1ODMwNlx1ODMxNFx1ODMxNVx1ODJFMFx1ODJENVx1ODMxQ1x1ODM1MVx1ODM1Qlx1ODM1Q1x1ODMwOFx1ODM5Mlx1ODMzQ1x1ODMzNFx1ODMzMVx1ODM5Qlx1ODM1RVx1ODMyRlx1ODM0Rlx1ODM0N1x1ODM0M1x1ODM1Rlx1ODM0MFx1ODMxN1x1ODM2MFx1ODMyRFx1ODMzQVx1ODMzM1x1ODM2Nlx1ODM2NVwiXSxcbltcImRkNDBcIixcIlx1OEVFNVwiLDYyXSxcbltcImRkODBcIixcIlx1OEYyNFwiLDMyLFwiXHU4MzY4XHU4MzFCXHU4MzY5XHU4MzZDXHU4MzZBXHU4MzZEXHU4MzZFXHU4M0IwXHU4Mzc4XHU4M0IzXHU4M0I0XHU4M0EwXHU4M0FBXHU4MzkzXHU4MzlDXHU4Mzg1XHU4MzdDXHU4M0I2XHU4M0E5XHU4MzdEXHU4M0I4XHU4MzdCXHU4Mzk4XHU4MzlFXHU4M0E4XHU4M0JBXHU4M0JDXHU4M0MxXHU4NDAxXHU4M0U1XHU4M0Q4XHU1ODA3XHU4NDE4XHU4NDBCXHU4M0REXHU4M0ZEXHU4M0Q2XHU4NDFDXHU4NDM4XHU4NDExXHU4NDA2XHU4M0Q0XHU4M0RGXHU4NDBGXHU4NDAzXHU4M0Y4XHU4M0Y5XHU4M0VBXHU4M0M1XHU4M0MwXHU4NDI2XHU4M0YwXHU4M0UxXHU4NDVDXHU4NDUxXHU4NDVBXHU4NDU5XHU4NDczXHU4NDg3XHU4NDg4XHU4NDdBXHU4NDg5XHU4NDc4XHU4NDNDXHU4NDQ2XHU4NDY5XHU4NDc2XHU4NDhDXHU4NDhFXHU4NDMxXHU4NDZEXHU4NEMxXHU4NENEXHU4NEQwXHU4NEU2XHU4NEJEXHU4NEQzXHU4NENBXHU4NEJGXHU4NEJBXHU4NEUwXHU4NEExXHU4NEI5XHU4NEI0XHU4NDk3XHU4NEU1XHU4NEUzXHU4NTBDXHU3NTBEXHU4NTM4XHU4NEYwXHU4NTM5XHU4NTFGXHU4NTNBXCJdLFxuW1wiZGU0MFwiLFwiXHU4RjQ1XCIsMzIsXCJcdThGNkFcdThGODBcdThGOENcdThGOTJcdThGOURcdThGQTBcdThGQTFcdThGQTJcdThGQTRcdThGQTVcdThGQTZcdThGQTdcdThGQUFcdThGQUNcdThGQURcdThGQUVcdThGQUZcdThGQjJcdThGQjNcdThGQjRcdThGQjVcdThGQjdcdThGQjhcdThGQkFcdThGQkJcdThGQkNcdThGQkZcdThGQzBcdThGQzNcdThGQzZcIl0sXG5bXCJkZTgwXCIsXCJcdThGQzlcIiw0LFwiXHU4RkNGXHU4RkQyXHU4RkQ2XHU4RkQ3XHU4RkRBXHU4RkUwXHU4RkUxXHU4RkUzXHU4RkU3XHU4RkVDXHU4RkVGXHU4RkYxXHU4RkYyXHU4RkY0XHU4RkY1XHU4RkY2XHU4RkZBXHU4RkZCXHU4RkZDXHU4RkZFXHU4RkZGXHU5MDA3XHU5MDA4XHU5MDBDXHU5MDBFXHU5MDEzXHU5MDE1XHU5MDE4XHU4NTU2XHU4NTNCXHU4NEZGXHU4NEZDXHU4NTU5XHU4NTQ4XHU4NTY4XHU4NTY0XHU4NTVFXHU4NTdBXHU3N0EyXHU4NTQzXHU4NTcyXHU4NTdCXHU4NUE0XHU4NUE4XHU4NTg3XHU4NThGXHU4NTc5XHU4NUFFXHU4NTlDXHU4NTg1XHU4NUI5XHU4NUI3XHU4NUIwXHU4NUQzXHU4NUMxXHU4NURDXHU4NUZGXHU4NjI3XHU4NjA1XHU4NjI5XHU4NjE2XHU4NjNDXHU1RUZFXHU1RjA4XHU1OTNDXHU1OTQxXHU4MDM3XHU1OTU1XHU1OTVBXHU1OTU4XHU1MzBGXHU1QzIyXHU1QzI1XHU1QzJDXHU1QzM0XHU2MjRDXHU2MjZBXHU2MjlGXHU2MkJCXHU2MkNBXHU2MkRBXHU2MkQ3XHU2MkVFXHU2MzIyXHU2MkY2XHU2MzM5XHU2MzRCXHU2MzQzXHU2M0FEXHU2M0Y2XHU2MzcxXHU2MzdBXHU2MzhFXHU2M0I0XHU2MzZEXHU2M0FDXHU2MzhBXHU2MzY5XHU2M0FFXHU2M0JDXHU2M0YyXHU2M0Y4XHU2M0UwXHU2M0ZGXHU2M0M0XHU2M0RFXHU2M0NFXHU2NDUyXHU2M0M2XHU2M0JFXHU2NDQ1XHU2NDQxXHU2NDBCXHU2NDFCXHU2NDIwXHU2NDBDXHU2NDI2XHU2NDIxXHU2NDVFXHU2NDg0XHU2NDZEXHU2NDk2XCJdLFxuW1wiZGY0MFwiLFwiXHU5MDE5XHU5MDFDXHU5MDIzXHU5MDI0XHU5MDI1XHU5MDI3XCIsNSxcIlx1OTAzMFwiLDQsXCJcdTkwMzdcdTkwMzlcdTkwM0FcdTkwM0RcdTkwM0ZcdTkwNDBcdTkwNDNcdTkwNDVcdTkwNDZcdTkwNDhcIiw0LFwiXHU5MDRFXHU5MDU0XHU5MDU1XHU5MDU2XHU5MDU5XHU5MDVBXHU5MDVDXCIsNSxcIlx1OTA2NFx1OTA2Nlx1OTA2N1x1OTA2OVx1OTA2QVx1OTA2Qlx1OTA2Q1x1OTA2RlwiLDQsXCJcdTkwNzZcIiw2LFwiXHU5MDdFXHU5MDgxXCJdLFxuW1wiZGY4MFwiLFwiXHU5MDg0XHU5MDg1XHU5MDg2XHU5MDg3XHU5MDg5XHU5MDhBXHU5MDhDXCIsNCxcIlx1OTA5Mlx1OTA5NFx1OTA5Nlx1OTA5OFx1OTA5QVx1OTA5Q1x1OTA5RVx1OTA5Rlx1OTBBMFx1OTBBNFx1OTBBNVx1OTBBN1x1OTBBOFx1OTBBOVx1OTBBQlx1OTBBRFx1OTBCMlx1OTBCN1x1OTBCQ1x1OTBCRFx1OTBCRlx1OTBDMFx1NjQ3QVx1NjRCN1x1NjRCOFx1NjQ5OVx1NjRCQVx1NjRDMFx1NjREMFx1NjREN1x1NjRFNFx1NjRFMlx1NjUwOVx1NjUyNVx1NjUyRVx1NUYwQlx1NUZEMlx1NzUxOVx1NUYxMVx1NTM1Rlx1NTNGMVx1NTNGRFx1NTNFOVx1NTNFOFx1NTNGQlx1NTQxMlx1NTQxNlx1NTQwNlx1NTQ0Qlx1NTQ1Mlx1NTQ1M1x1NTQ1NFx1NTQ1Nlx1NTQ0M1x1NTQyMVx1NTQ1N1x1NTQ1OVx1NTQyM1x1NTQzMlx1NTQ4Mlx1NTQ5NFx1NTQ3N1x1NTQ3MVx1NTQ2NFx1NTQ5QVx1NTQ5Qlx1NTQ4NFx1NTQ3Nlx1NTQ2Nlx1NTQ5RFx1NTREMFx1NTRBRFx1NTRDMlx1NTRCNFx1NTREMlx1NTRBN1x1NTRBNlx1NTREM1x1NTRENFx1NTQ3Mlx1NTRBM1x1NTRENVx1NTRCQlx1NTRCRlx1NTRDQ1x1NTREOVx1NTREQVx1NTREQ1x1NTRBOVx1NTRBQVx1NTRBNFx1NTRERFx1NTRDRlx1NTRERVx1NTUxQlx1NTRFN1x1NTUyMFx1NTRGRFx1NTUxNFx1NTRGM1x1NTUyMlx1NTUyM1x1NTUwRlx1NTUxMVx1NTUyN1x1NTUyQVx1NTU2N1x1NTU4Rlx1NTVCNVx1NTU0OVx1NTU2RFx1NTU0MVx1NTU1NVx1NTUzRlx1NTU1MFx1NTUzQ1wiXSxcbltcImUwNDBcIixcIlx1OTBDMlx1OTBDM1x1OTBDNlx1OTBDOFx1OTBDOVx1OTBDQlx1OTBDQ1x1OTBDRFx1OTBEMlx1OTBENFx1OTBENVx1OTBENlx1OTBEOFx1OTBEOVx1OTBEQVx1OTBERVx1OTBERlx1OTBFMFx1OTBFM1x1OTBFNFx1OTBFNVx1OTBFOVx1OTBFQVx1OTBFQ1x1OTBFRVx1OTBGMFx1OTBGMVx1OTBGMlx1OTBGM1x1OTBGNVx1OTBGNlx1OTBGN1x1OTBGOVx1OTBGQVx1OTBGQlx1OTBGQ1x1OTBGRlx1OTEwMFx1OTEwMVx1OTEwM1x1OTEwNVwiLDE5LFwiXHU5MTFBXHU5MTFCXHU5MTFDXCJdLFxuW1wiZTA4MFwiLFwiXHU5MTFEXHU5MTFGXHU5MTIwXHU5MTIxXHU5MTI0XCIsMTAsXCJcdTkxMzBcdTkxMzJcIiw2LFwiXHU5MTNBXCIsOCxcIlx1OTE0NFx1NTUzN1x1NTU1Nlx1NTU3NVx1NTU3Nlx1NTU3N1x1NTUzM1x1NTUzMFx1NTU1Q1x1NTU4Qlx1NTVEMlx1NTU4M1x1NTVCMVx1NTVCOVx1NTU4OFx1NTU4MVx1NTU5Rlx1NTU3RVx1NTVENlx1NTU5MVx1NTU3Qlx1NTVERlx1NTVCRFx1NTVCRVx1NTU5NFx1NTU5OVx1NTVFQVx1NTVGN1x1NTVDOVx1NTYxRlx1NTVEMVx1NTVFQlx1NTVFQ1x1NTVENFx1NTVFNlx1NTVERFx1NTVDNFx1NTVFRlx1NTVFNVx1NTVGMlx1NTVGM1x1NTVDQ1x1NTVDRFx1NTVFOFx1NTVGNVx1NTVFNFx1OEY5NFx1NTYxRVx1NTYwOFx1NTYwQ1x1NTYwMVx1NTYyNFx1NTYyM1x1NTVGRVx1NTYwMFx1NTYyN1x1NTYyRFx1NTY1OFx1NTYzOVx1NTY1N1x1NTYyQ1x1NTY0RFx1NTY2Mlx1NTY1OVx1NTY1Q1x1NTY0Q1x1NTY1NFx1NTY4Nlx1NTY2NFx1NTY3MVx1NTY2Qlx1NTY3Qlx1NTY3Q1x1NTY4NVx1NTY5M1x1NTZBRlx1NTZENFx1NTZEN1x1NTZERFx1NTZFMVx1NTZGNVx1NTZFQlx1NTZGOVx1NTZGRlx1NTcwNFx1NTcwQVx1NTcwOVx1NTcxQ1x1NUUwRlx1NUUxOVx1NUUxNFx1NUUxMVx1NUUzMVx1NUUzQlx1NUUzQ1wiXSxcbltcImUxNDBcIixcIlx1OTE0NVx1OTE0N1x1OTE0OFx1OTE1MVx1OTE1M1x1OTE1NFx1OTE1NVx1OTE1Nlx1OTE1OFx1OTE1OVx1OTE1Qlx1OTE1Q1x1OTE1Rlx1OTE2MFx1OTE2Nlx1OTE2N1x1OTE2OFx1OTE2Qlx1OTE2RFx1OTE3M1x1OTE3QVx1OTE3Qlx1OTE3Q1x1OTE4MFwiLDQsXCJcdTkxODZcdTkxODhcdTkxOEFcdTkxOEVcdTkxOEZcdTkxOTNcIiw2LFwiXHU5MTlDXCIsNSxcIlx1OTFBNFwiLDUsXCJcdTkxQUJcdTkxQUNcdTkxQjBcdTkxQjFcdTkxQjJcdTkxQjNcdTkxQjZcdTkxQjdcdTkxQjhcdTkxQjlcdTkxQkJcIl0sXG5bXCJlMTgwXCIsXCJcdTkxQkNcIiwxMCxcIlx1OTFDOFx1OTFDQlx1OTFEMFx1OTFEMlwiLDksXCJcdTkxRERcIiw4LFwiXHU1RTM3XHU1RTQ0XHU1RTU0XHU1RTVCXHU1RTVFXHU1RTYxXHU1QzhDXHU1QzdBXHU1QzhEXHU1QzkwXHU1Qzk2XHU1Qzg4XHU1Qzk4XHU1Qzk5XHU1QzkxXHU1QzlBXHU1QzlDXHU1Q0I1XHU1Q0EyXHU1Q0JEXHU1Q0FDXHU1Q0FCXHU1Q0IxXHU1Q0EzXHU1Q0MxXHU1Q0I3XHU1Q0M0XHU1Q0QyXHU1Q0U0XHU1Q0NCXHU1Q0U1XHU1RDAyXHU1RDAzXHU1RDI3XHU1RDI2XHU1RDJFXHU1RDI0XHU1RDFFXHU1RDA2XHU1RDFCXHU1RDU4XHU1RDNFXHU1RDM0XHU1RDNEXHU1RDZDXHU1RDVCXHU1RDZGXHU1RDVEXHU1RDZCXHU1RDRCXHU1RDRBXHU1RDY5XHU1RDc0XHU1RDgyXHU1RDk5XHU1RDlEXHU4QzczXHU1REI3XHU1REM1XHU1RjczXHU1Rjc3XHU1RjgyXHU1Rjg3XHU1Rjg5XHU1RjhDXHU1Rjk1XHU1Rjk5XHU1RjlDXHU1RkE4XHU1RkFEXHU1RkI1XHU1RkJDXHU4ODYyXHU1RjYxXHU3MkFEXHU3MkIwXHU3MkI0XHU3MkI3XHU3MkI4XHU3MkMzXHU3MkMxXHU3MkNFXHU3MkNEXHU3MkQyXHU3MkU4XHU3MkVGXHU3MkU5XHU3MkYyXHU3MkY0XHU3MkY3XHU3MzAxXHU3MkYzXHU3MzAzXHU3MkZBXCJdLFxuW1wiZTI0MFwiLFwiXHU5MUU2XCIsNjJdLFxuW1wiZTI4MFwiLFwiXHU5MjI1XCIsMzIsXCJcdTcyRkJcdTczMTdcdTczMTNcdTczMjFcdTczMEFcdTczMUVcdTczMURcdTczMTVcdTczMjJcdTczMzlcdTczMjVcdTczMkNcdTczMzhcdTczMzFcdTczNTBcdTczNERcdTczNTdcdTczNjBcdTczNkNcdTczNkZcdTczN0VcdTgyMUJcdTU5MjVcdTk4RTdcdTU5MjRcdTU5MDJcdTk5NjNcdTk5NjdcIiw1LFwiXHU5OTc0XHU5OTc3XHU5OTdEXHU5OTgwXHU5OTg0XHU5OTg3XHU5OThBXHU5OThEXHU5OTkwXHU5OTkxXHU5OTkzXHU5OTk0XHU5OTk1XHU1RTgwXHU1RTkxXHU1RThCXHU1RTk2XHU1RUE1XHU1RUEwXHU1RUI5XHU1RUI1XHU1RUJFXHU1RUIzXHU4RDUzXHU1RUQyXHU1RUQxXHU1RURCXHU1RUU4XHU1RUVBXHU4MUJBXHU1RkM0XHU1RkM5XHU1RkQ2XHU1RkNGXHU2MDAzXHU1RkVFXHU2MDA0XHU1RkUxXHU1RkU0XHU1RkZFXHU2MDA1XHU2MDA2XHU1RkVBXHU1RkVEXHU1RkY4XHU2MDE5XHU2MDM1XHU2MDI2XHU2MDFCXHU2MDBGXHU2MDBEXHU2MDI5XHU2MDJCXHU2MDBBXHU2MDNGXHU2MDIxXHU2MDc4XHU2MDc5XHU2MDdCXHU2MDdBXHU2MDQyXCJdLFxuW1wiZTM0MFwiLFwiXHU5MjQ2XCIsNDUsXCJcdTkyNzVcIiwxNl0sXG5bXCJlMzgwXCIsXCJcdTkyODZcIiw3LFwiXHU5MjhGXCIsMjQsXCJcdTYwNkFcdTYwN0RcdTYwOTZcdTYwOUFcdTYwQURcdTYwOURcdTYwODNcdTYwOTJcdTYwOENcdTYwOUJcdTYwRUNcdTYwQkJcdTYwQjFcdTYwRERcdTYwRDhcdTYwQzZcdTYwREFcdTYwQjRcdTYxMjBcdTYxMjZcdTYxMTVcdTYxMjNcdTYwRjRcdTYxMDBcdTYxMEVcdTYxMkJcdTYxNEFcdTYxNzVcdTYxQUNcdTYxOTRcdTYxQTdcdTYxQjdcdTYxRDRcdTYxRjVcdTVGRERcdTk2QjNcdTk1RTlcdTk1RUJcdTk1RjFcdTk1RjNcdTk1RjVcdTk1RjZcdTk1RkNcdTk1RkVcdTk2MDNcdTk2MDRcdTk2MDZcdTk2MDhcdTk2MEFcdTk2MEJcdTk2MENcdTk2MERcdTk2MEZcdTk2MTJcdTk2MTVcdTk2MTZcdTk2MTdcdTk2MTlcdTk2MUFcdTRFMkNcdTcyM0ZcdTYyMTVcdTZDMzVcdTZDNTRcdTZDNUNcdTZDNEFcdTZDQTNcdTZDODVcdTZDOTBcdTZDOTRcdTZDOENcdTZDNjhcdTZDNjlcdTZDNzRcdTZDNzZcdTZDODZcdTZDQTlcdTZDRDBcdTZDRDRcdTZDQURcdTZDRjdcdTZDRjhcdTZDRjFcdTZDRDdcdTZDQjJcdTZDRTBcdTZDRDZcdTZDRkFcdTZDRUJcdTZDRUVcdTZDQjFcdTZDRDNcdTZDRUZcdTZDRkVcIl0sXG5bXCJlNDQwXCIsXCJcdTkyQThcIiw1LFwiXHU5MkFGXCIsMjQsXCJcdTkyQzlcIiwzMV0sXG5bXCJlNDgwXCIsXCJcdTkyRTlcIiwzMixcIlx1NkQzOVx1NkQyN1x1NkQwQ1x1NkQ0M1x1NkQ0OFx1NkQwN1x1NkQwNFx1NkQxOVx1NkQwRVx1NkQyQlx1NkQ0RFx1NkQyRVx1NkQzNVx1NkQxQVx1NkQ0Rlx1NkQ1Mlx1NkQ1NFx1NkQzM1x1NkQ5MVx1NkQ2Rlx1NkQ5RVx1NkRBMFx1NkQ1RVx1NkQ5M1x1NkQ5NFx1NkQ1Q1x1NkQ2MFx1NkQ3Q1x1NkQ2M1x1NkUxQVx1NkRDN1x1NkRDNVx1NkRERVx1NkUwRVx1NkRCRlx1NkRFMFx1NkUxMVx1NkRFNlx1NkRERFx1NkREOVx1NkUxNlx1NkRBQlx1NkUwQ1x1NkRBRVx1NkUyQlx1NkU2RVx1NkU0RVx1NkU2Qlx1NkVCMlx1NkU1Rlx1NkU4Nlx1NkU1M1x1NkU1NFx1NkUzMlx1NkUyNVx1NkU0NFx1NkVERlx1NkVCMVx1NkU5OFx1NkVFMFx1NkYyRFx1NkVFMlx1NkVBNVx1NkVBN1x1NkVCRFx1NkVCQlx1NkVCN1x1NkVEN1x1NkVCNFx1NkVDRlx1NkU4Rlx1NkVDMlx1NkU5Rlx1NkY2Mlx1NkY0Nlx1NkY0N1x1NkYyNFx1NkYxNVx1NkVGOVx1NkYyRlx1NkYzNlx1NkY0Qlx1NkY3NFx1NkYyQVx1NkYwOVx1NkYyOVx1NkY4OVx1NkY4RFx1NkY4Q1x1NkY3OFx1NkY3Mlx1NkY3Q1x1NkY3QVx1NkZEMVwiXSxcbltcImU1NDBcIixcIlx1OTMwQVwiLDUxLFwiXHU5MzNGXCIsMTBdLFxuW1wiZTU4MFwiLFwiXHU5MzRBXCIsMzEsXCJcdTkzNkJcdTZGQzlcdTZGQTdcdTZGQjlcdTZGQjZcdTZGQzJcdTZGRTFcdTZGRUVcdTZGREVcdTZGRTBcdTZGRUZcdTcwMUFcdTcwMjNcdTcwMUJcdTcwMzlcdTcwMzVcdTcwNEZcdTcwNUVcdTVCODBcdTVCODRcdTVCOTVcdTVCOTNcdTVCQTVcdTVCQjhcdTc1MkZcdTlBOUVcdTY0MzRcdTVCRTRcdTVCRUVcdTg5MzBcdTVCRjBcdThFNDdcdThCMDdcdThGQjZcdThGRDNcdThGRDVcdThGRTVcdThGRUVcdThGRTRcdThGRTlcdThGRTZcdThGRjNcdThGRThcdTkwMDVcdTkwMDRcdTkwMEJcdTkwMjZcdTkwMTFcdTkwMERcdTkwMTZcdTkwMjFcdTkwMzVcdTkwMzZcdTkwMkRcdTkwMkZcdTkwNDRcdTkwNTFcdTkwNTJcdTkwNTBcdTkwNjhcdTkwNThcdTkwNjJcdTkwNUJcdTY2QjlcdTkwNzRcdTkwN0RcdTkwODJcdTkwODhcdTkwODNcdTkwOEJcdTVGNTBcdTVGNTdcdTVGNTZcdTVGNThcdTVDM0JcdTU0QUJcdTVDNTBcdTVDNTlcdTVCNzFcdTVDNjNcdTVDNjZcdTdGQkNcdTVGMkFcdTVGMjlcdTVGMkRcdTgyNzRcdTVGM0NcdTlCM0JcdTVDNkVcdTU5ODFcdTU5ODNcdTU5OERcdTU5QTlcdTU5QUFcdTU5QTNcIl0sXG5bXCJlNjQwXCIsXCJcdTkzNkNcIiwzNCxcIlx1OTM5MFwiLDI3XSxcbltcImU2ODBcIixcIlx1OTNBQ1wiLDI5LFwiXHU5M0NCXHU5M0NDXHU5M0NEXHU1OTk3XHU1OUNBXHU1OUFCXHU1OTlFXHU1OUE0XHU1OUQyXHU1OUIyXHU1OUFGXHU1OUQ3XHU1OUJFXHU1QTA1XHU1QTA2XHU1OUREXHU1QTA4XHU1OUUzXHU1OUQ4XHU1OUY5XHU1QTBDXHU1QTA5XHU1QTMyXHU1QTM0XHU1QTExXHU1QTIzXHU1QTEzXHU1QTQwXHU1QTY3XHU1QTRBXHU1QTU1XHU1QTNDXHU1QTYyXHU1QTc1XHU4MEVDXHU1QUFBXHU1QTlCXHU1QTc3XHU1QTdBXHU1QUJFXHU1QUVCXHU1QUIyXHU1QUQyXHU1QUQ0XHU1QUI4XHU1QUUwXHU1QUUzXHU1QUYxXHU1QUQ2XHU1QUU2XHU1QUQ4XHU1QURDXHU1QjA5XHU1QjE3XHU1QjE2XHU1QjMyXHU1QjM3XHU1QjQwXHU1QzE1XHU1QzFDXHU1QjVBXHU1QjY1XHU1QjczXHU1QjUxXHU1QjUzXHU1QjYyXHU5QTc1XHU5QTc3XHU5QTc4XHU5QTdBXHU5QTdGXHU5QTdEXHU5QTgwXHU5QTgxXHU5QTg1XHU5QTg4XHU5QThBXHU5QTkwXHU5QTkyXHU5QTkzXHU5QTk2XHU5QTk4XHU5QTlCXHU5QTlDXHU5QTlEXHU5QTlGXHU5QUEwXHU5QUEyXHU5QUEzXHU5QUE1XHU5QUE3XHU3RTlGXHU3RUExXHU3RUEzXHU3RUE1XHU3RUE4XHU3RUE5XCJdLFxuW1wiZTc0MFwiLFwiXHU5M0NFXCIsNyxcIlx1OTNEN1wiLDU0XSxcbltcImU3ODBcIixcIlx1OTQwRVwiLDMyLFwiXHU3RUFEXHU3RUIwXHU3RUJFXHU3RUMwXHU3RUMxXHU3RUMyXHU3RUM5XHU3RUNCXHU3RUNDXHU3RUQwXHU3RUQ0XHU3RUQ3XHU3RURCXHU3RUUwXHU3RUUxXHU3RUU4XHU3RUVCXHU3RUVFXHU3RUVGXHU3RUYxXHU3RUYyXHU3RjBEXHU3RUY2XHU3RUZBXHU3RUZCXHU3RUZFXHU3RjAxXHU3RjAyXHU3RjAzXHU3RjA3XHU3RjA4XHU3RjBCXHU3RjBDXHU3RjBGXHU3RjExXHU3RjEyXHU3RjE3XHU3RjE5XHU3RjFDXHU3RjFCXHU3RjFGXHU3RjIxXCIsNixcIlx1N0YyQVx1N0YyQlx1N0YyQ1x1N0YyRFx1N0YyRlwiLDQsXCJcdTdGMzVcdTVFN0FcdTc1N0ZcdTVEREJcdTc1M0VcdTkwOTVcdTczOEVcdTczOTFcdTczQUVcdTczQTJcdTczOUZcdTczQ0ZcdTczQzJcdTczRDFcdTczQjdcdTczQjNcdTczQzBcdTczQzlcdTczQzhcdTczRTVcdTczRDlcdTk4N0NcdTc0MEFcdTczRTlcdTczRTdcdTczREVcdTczQkFcdTczRjJcdTc0MEZcdTc0MkFcdTc0NUJcdTc0MjZcdTc0MjVcdTc0MjhcdTc0MzBcdTc0MkVcdTc0MkNcIl0sXG5bXCJlODQwXCIsXCJcdTk0MkZcIiwxNCxcIlx1OTQzRlwiLDQzLFwiXHU5NDZDXHU5NDZEXHU5NDZFXHU5NDZGXCJdLFxuW1wiZTg4MFwiLFwiXHU5NDcwXCIsMjAsXCJcdTk0OTFcdTk0OTZcdTk0OThcdTk0QzdcdTk0Q0ZcdTk0RDNcdTk0RDRcdTk0REFcdTk0RTZcdTk0RkJcdTk1MUNcdTk1MjBcdTc0MUJcdTc0MUFcdTc0NDFcdTc0NUNcdTc0NTdcdTc0NTVcdTc0NTlcdTc0NzdcdTc0NkRcdTc0N0VcdTc0OUNcdTc0OEVcdTc0ODBcdTc0ODFcdTc0ODdcdTc0OEJcdTc0OUVcdTc0QThcdTc0QTlcdTc0OTBcdTc0QTdcdTc0RDJcdTc0QkFcdTk3RUFcdTk3RUJcdTk3RUNcdTY3NENcdTY3NTNcdTY3NUVcdTY3NDhcdTY3NjlcdTY3QTVcdTY3ODdcdTY3NkFcdTY3NzNcdTY3OThcdTY3QTdcdTY3NzVcdTY3QThcdTY3OUVcdTY3QURcdTY3OEJcdTY3NzdcdTY3N0NcdTY3RjBcdTY4MDlcdTY3RDhcdTY4MEFcdTY3RTlcdTY3QjBcdTY4MENcdTY3RDlcdTY3QjVcdTY3REFcdTY3QjNcdTY3RERcdTY4MDBcdTY3QzNcdTY3QjhcdTY3RTJcdTY4MEVcdTY3QzFcdTY3RkRcdTY4MzJcdTY4MzNcdTY4NjBcdTY4NjFcdTY4NEVcdTY4NjJcdTY4NDRcdTY4NjRcdTY4ODNcdTY4MURcdTY4NTVcdTY4NjZcdTY4NDFcdTY4NjdcdTY4NDBcdTY4M0VcdTY4NEFcdTY4NDlcdTY4MjlcdTY4QjVcdTY4OEZcdTY4NzRcdTY4NzdcdTY4OTNcdTY4NkJcdTY4QzJcdTY5NkVcdTY4RkNcdTY5MUZcdTY5MjBcdTY4RjlcIl0sXG5bXCJlOTQwXCIsXCJcdTk1MjdcdTk1MzNcdTk1M0RcdTk1NDNcdTk1NDhcdTk1NEJcdTk1NTVcdTk1NUFcdTk1NjBcdTk1NkVcdTk1NzRcdTk1NzVcdTk1NzdcIiw3LFwiXHU5NTgwXCIsNDJdLFxuW1wiZTk4MFwiLFwiXHU5NUFCXCIsMzIsXCJcdTY5MjRcdTY4RjBcdTY5MEJcdTY5MDFcdTY5NTdcdTY4RTNcdTY5MTBcdTY5NzFcdTY5MzlcdTY5NjBcdTY5NDJcdTY5NURcdTY5ODRcdTY5NkJcdTY5ODBcdTY5OThcdTY5NzhcdTY5MzRcdTY5Q0NcdTY5ODdcdTY5ODhcdTY5Q0VcdTY5ODlcdTY5NjZcdTY5NjNcdTY5NzlcdTY5OUJcdTY5QTdcdTY5QkJcdTY5QUJcdTY5QURcdTY5RDRcdTY5QjFcdTY5QzFcdTY5Q0FcdTY5REZcdTY5OTVcdTY5RTBcdTY5OERcdTY5RkZcdTZBMkZcdTY5RURcdTZBMTdcdTZBMThcdTZBNjVcdTY5RjJcdTZBNDRcdTZBM0VcdTZBQTBcdTZBNTBcdTZBNUJcdTZBMzVcdTZBOEVcdTZBNzlcdTZBM0RcdTZBMjhcdTZBNThcdTZBN0NcdTZBOTFcdTZBOTBcdTZBQTlcdTZBOTdcdTZBQUJcdTczMzdcdTczNTJcdTZCODFcdTZCODJcdTZCODdcdTZCODRcdTZCOTJcdTZCOTNcdTZCOERcdTZCOUFcdTZCOUJcdTZCQTFcdTZCQUFcdThGNkJcdThGNkRcdThGNzFcdThGNzJcdThGNzNcdThGNzVcdThGNzZcdThGNzhcdThGNzdcdThGNzlcdThGN0FcdThGN0NcdThGN0VcdThGODFcdThGODJcdThGODRcdThGODdcdThGOEJcIl0sXG5bXCJlYTQwXCIsXCJcdTk1Q0NcIiwyNyxcIlx1OTVFQ1x1OTVGRlx1OTYwN1x1OTYxM1x1OTYxOFx1OTYxQlx1OTYxRVx1OTYyMFx1OTYyM1wiLDYsXCJcdTk2MkJcdTk2MkNcdTk2MkRcdTk2MkZcdTk2MzBcdTk2MzdcdTk2MzhcdTk2MzlcdTk2M0FcdTk2M0VcdTk2NDFcdTk2NDNcdTk2NEFcdTk2NEVcdTk2NEZcdTk2NTFcdTk2NTJcdTk2NTNcdTk2NTZcdTk2NTdcIl0sXG5bXCJlYTgwXCIsXCJcdTk2NThcdTk2NTlcdTk2NUFcdTk2NUNcdTk2NURcdTk2NUVcdTk2NjBcdTk2NjNcdTk2NjVcdTk2NjZcdTk2NkJcdTk2NkRcIiw0LFwiXHU5NjczXHU5Njc4XCIsMTIsXCJcdTk2ODdcdTk2ODlcdTk2OEFcdThGOERcdThGOEVcdThGOEZcdThGOThcdThGOUFcdThFQ0VcdTYyMEJcdTYyMTdcdTYyMUJcdTYyMUZcdTYyMjJcdTYyMjFcdTYyMjVcdTYyMjRcdTYyMkNcdTgxRTdcdTc0RUZcdTc0RjRcdTc0RkZcdTc1MEZcdTc1MTFcdTc1MTNcdTY1MzRcdTY1RUVcdTY1RUZcdTY1RjBcdTY2MEFcdTY2MTlcdTY3NzJcdTY2MDNcdTY2MTVcdTY2MDBcdTcwODVcdTY2RjdcdTY2MURcdTY2MzRcdTY2MzFcdTY2MzZcdTY2MzVcdTgwMDZcdTY2NUZcdTY2NTRcdTY2NDFcdTY2NEZcdTY2NTZcdTY2NjFcdTY2NTdcdTY2NzdcdTY2ODRcdTY2OENcdTY2QTdcdTY2OURcdTY2QkVcdTY2REJcdTY2RENcdTY2RTZcdTY2RTlcdThEMzJcdThEMzNcdThEMzZcdThEM0JcdThEM0RcdThENDBcdThENDVcdThENDZcdThENDhcdThENDlcdThENDdcdThENERcdThENTVcdThENTlcdTg5QzdcdTg5Q0FcdTg5Q0JcdTg5Q0NcdTg5Q0VcdTg5Q0ZcdTg5RDBcdTg5RDFcdTcyNkVcdTcyOUZcdTcyNURcdTcyNjZcdTcyNkZcdTcyN0VcdTcyN0ZcdTcyODRcdTcyOEJcdTcyOERcdTcyOEZcdTcyOTJcdTYzMDhcdTYzMzJcdTYzQjBcIl0sXG5bXCJlYjQwXCIsXCJcdTk2OENcdTk2OEVcdTk2OTFcdTk2OTJcdTk2OTNcdTk2OTVcdTk2OTZcdTk2OUFcdTk2OUJcdTk2OURcIiw5LFwiXHU5NkE4XCIsNyxcIlx1OTZCMVx1OTZCMlx1OTZCNFx1OTZCNVx1OTZCN1x1OTZCOFx1OTZCQVx1OTZCQlx1OTZCRlx1OTZDMlx1OTZDM1x1OTZDOFx1OTZDQVx1OTZDQlx1OTZEMFx1OTZEMVx1OTZEM1x1OTZENFx1OTZENlwiLDksXCJcdTk2RTFcIiw2LFwiXHU5NkVCXCJdLFxuW1wiZWI4MFwiLFwiXHU5NkVDXHU5NkVEXHU5NkVFXHU5NkYwXHU5NkYxXHU5NkYyXHU5NkY0XHU5NkY1XHU5NkY4XHU5NkZBXHU5NkZCXHU5NkZDXHU5NkZEXHU5NkZGXHU5NzAyXHU5NzAzXHU5NzA1XHU5NzBBXHU5NzBCXHU5NzBDXHU5NzEwXHU5NzExXHU5NzEyXHU5NzE0XHU5NzE1XHU5NzE3XCIsNCxcIlx1OTcxRFx1OTcxRlx1OTcyMFx1NjQzRlx1NjREOFx1ODAwNFx1NkJFQVx1NkJGM1x1NkJGRFx1NkJGNVx1NkJGOVx1NkMwNVx1NkMwN1x1NkMwNlx1NkMwRFx1NkMxNVx1NkMxOFx1NkMxOVx1NkMxQVx1NkMyMVx1NkMyOVx1NkMyNFx1NkMyQVx1NkMzMlx1NjUzNVx1NjU1NVx1NjU2Qlx1NzI0RFx1NzI1Mlx1NzI1Nlx1NzIzMFx1ODY2Mlx1NTIxNlx1ODA5Rlx1ODA5Q1x1ODA5M1x1ODBCQ1x1NjcwQVx1ODBCRFx1ODBCMVx1ODBBQlx1ODBBRFx1ODBCNFx1ODBCN1x1ODBFN1x1ODBFOFx1ODBFOVx1ODBFQVx1ODBEQlx1ODBDMlx1ODBDNFx1ODBEOVx1ODBDRFx1ODBEN1x1NjcxMFx1ODBERFx1ODBFQlx1ODBGMVx1ODBGNFx1ODBFRFx1ODEwRFx1ODEwRVx1ODBGMlx1ODBGQ1x1NjcxNVx1ODExMlx1OEM1QVx1ODEzNlx1ODExRVx1ODEyQ1x1ODExOFx1ODEzMlx1ODE0OFx1ODE0Q1x1ODE1M1x1ODE3NFx1ODE1OVx1ODE1QVx1ODE3MVx1ODE2MFx1ODE2OVx1ODE3Q1x1ODE3RFx1ODE2RFx1ODE2N1x1NTg0RFx1NUFCNVx1ODE4OFx1ODE4Mlx1ODE5MVx1NkVENVx1ODFBM1x1ODFBQVx1ODFDQ1x1NjcyNlx1ODFDQVx1ODFCQlwiXSxcbltcImVjNDBcIixcIlx1OTcyMVwiLDgsXCJcdTk3MkJcdTk3MkNcdTk3MkVcdTk3MkZcdTk3MzFcdTk3MzNcIiw0LFwiXHU5NzNBXHU5NzNCXHU5NzNDXHU5NzNEXHU5NzNGXCIsMTgsXCJcdTk3NTRcdTk3NTVcdTk3NTdcdTk3NThcdTk3NUFcdTk3NUNcdTk3NURcdTk3NUZcdTk3NjNcdTk3NjRcdTk3NjZcdTk3NjdcdTk3NjhcdTk3NkFcIiw3XSxcbltcImVjODBcIixcIlx1OTc3Mlx1OTc3NVx1OTc3N1wiLDQsXCJcdTk3N0RcIiw3LFwiXHU5Nzg2XCIsNCxcIlx1OTc4Q1x1OTc4RVx1OTc4Rlx1OTc5MFx1OTc5M1x1OTc5NVx1OTc5Nlx1OTc5N1x1OTc5OVwiLDQsXCJcdTgxQzFcdTgxQTZcdTZCMjRcdTZCMzdcdTZCMzlcdTZCNDNcdTZCNDZcdTZCNTlcdTk4RDFcdTk4RDJcdTk4RDNcdTk4RDVcdTk4RDlcdTk4REFcdTZCQjNcdTVGNDBcdTZCQzJcdTg5RjNcdTY1OTBcdTlGNTFcdTY1OTNcdTY1QkNcdTY1QzZcdTY1QzRcdTY1QzNcdTY1Q0NcdTY1Q0VcdTY1RDJcdTY1RDZcdTcwODBcdTcwOUNcdTcwOTZcdTcwOURcdTcwQkJcdTcwQzBcdTcwQjdcdTcwQUJcdTcwQjFcdTcwRThcdTcwQ0FcdTcxMTBcdTcxMTNcdTcxMTZcdTcxMkZcdTcxMzFcdTcxNzNcdTcxNUNcdTcxNjhcdTcxNDVcdTcxNzJcdTcxNEFcdTcxNzhcdTcxN0FcdTcxOThcdTcxQjNcdTcxQjVcdTcxQThcdTcxQTBcdTcxRTBcdTcxRDRcdTcxRTdcdTcxRjlcdTcyMURcdTcyMjhcdTcwNkNcdTcxMThcdTcxNjZcdTcxQjlcdTYyM0VcdTYyM0RcdTYyNDNcdTYyNDhcdTYyNDlcdTc5M0JcdTc5NDBcdTc5NDZcdTc5NDlcdTc5NUJcdTc5NUNcdTc5NTNcdTc5NUFcdTc5NjJcdTc5NTdcdTc5NjBcdTc5NkZcdTc5NjdcdTc5N0FcdTc5ODVcdTc5OEFcdTc5OUFcdTc5QTdcdTc5QjNcdTVGRDFcdTVGRDBcIl0sXG5bXCJlZDQwXCIsXCJcdTk3OUVcdTk3OUZcdTk3QTFcdTk3QTJcdTk3QTRcIiw2LFwiXHU5N0FDXHU5N0FFXHU5N0IwXHU5N0IxXHU5N0IzXHU5N0I1XCIsNDZdLFxuW1wiZWQ4MFwiLFwiXHU5N0U0XHU5N0U1XHU5N0U4XHU5N0VFXCIsNCxcIlx1OTdGNFx1OTdGN1wiLDIzLFwiXHU2MDNDXHU2MDVEXHU2MDVBXHU2MDY3XHU2MDQxXHU2MDU5XHU2MDYzXHU2MEFCXHU2MTA2XHU2MTBEXHU2MTVEXHU2MUE5XHU2MTlEXHU2MUNCXHU2MUQxXHU2MjA2XHU4MDgwXHU4MDdGXHU2QzkzXHU2Q0Y2XHU2REZDXHU3N0Y2XHU3N0Y4XHU3ODAwXHU3ODA5XHU3ODE3XHU3ODE4XHU3ODExXHU2NUFCXHU3ODJEXHU3ODFDXHU3ODFEXHU3ODM5XHU3ODNBXHU3ODNCXHU3ODFGXHU3ODNDXHU3ODI1XHU3ODJDXHU3ODIzXHU3ODI5XHU3ODRFXHU3ODZEXHU3ODU2XHU3ODU3XHU3ODI2XHU3ODUwXHU3ODQ3XHU3ODRDXHU3ODZBXHU3ODlCXHU3ODkzXHU3ODlBXHU3ODg3XHU3ODlDXHU3OEExXHU3OEEzXHU3OEIyXHU3OEI5XHU3OEE1XHU3OEQ0XHU3OEQ5XHU3OEM5XHU3OEVDXHU3OEYyXHU3OTA1XHU3OEY0XHU3OTEzXHU3OTI0XHU3OTFFXHU3OTM0XHU5RjlCXHU5RUY5XHU5RUZCXHU5RUZDXHU3NkYxXHU3NzA0XHU3NzBEXHU3NkY5XHU3NzA3XHU3NzA4XHU3NzFBXHU3NzIyXHU3NzE5XHU3NzJEXHU3NzI2XHU3NzM1XHU3NzM4XHU3NzUwXHU3NzUxXHU3NzQ3XHU3NzQzXHU3NzVBXHU3NzY4XCJdLFxuW1wiZWU0MFwiLFwiXHU5ODBGXCIsNjJdLFxuW1wiZWU4MFwiLFwiXHU5ODRFXCIsMzIsXCJcdTc3NjJcdTc3NjVcdTc3N0ZcdTc3OERcdTc3N0RcdTc3ODBcdTc3OENcdTc3OTFcdTc3OUZcdTc3QTBcdTc3QjBcdTc3QjVcdTc3QkRcdTc1M0FcdTc1NDBcdTc1NEVcdTc1NEJcdTc1NDhcdTc1NUJcdTc1NzJcdTc1NzlcdTc1ODNcdTdGNThcdTdGNjFcdTdGNUZcdThBNDhcdTdGNjhcdTdGNzRcdTdGNzFcdTdGNzlcdTdGODFcdTdGN0VcdTc2Q0RcdTc2RTVcdTg4MzJcdTk0ODVcdTk0ODZcdTk0ODdcdTk0OEJcdTk0OEFcdTk0OENcdTk0OERcdTk0OEZcdTk0OTBcdTk0OTRcdTk0OTdcdTk0OTVcdTk0OUFcdTk0OUJcdTk0OUNcdTk0QTNcdTk0QTRcdTk0QUJcdTk0QUFcdTk0QURcdTk0QUNcdTk0QUZcdTk0QjBcdTk0QjJcdTk0QjRcdTk0QjZcIiw0LFwiXHU5NEJDXHU5NEJEXHU5NEJGXHU5NEM0XHU5NEM4XCIsNixcIlx1OTREMFx1OTREMVx1OTREMlx1OTRENVx1OTRENlx1OTREN1x1OTREOVx1OTREOFx1OTREQlx1OTRERVx1OTRERlx1OTRFMFx1OTRFMlx1OTRFNFx1OTRFNVx1OTRFN1x1OTRFOFx1OTRFQVwiXSxcbltcImVmNDBcIixcIlx1OTg2RlwiLDUsXCJcdTk4OEJcdTk4OEVcdTk4OTJcdTk4OTVcdTk4OTlcdTk4QTNcdTk4QThcIiwzNyxcIlx1OThDRlx1OThEMFx1OThENFx1OThENlx1OThEN1x1OThEQlx1OThEQ1x1OThERFx1OThFMFwiLDRdLFxuW1wiZWY4MFwiLFwiXHU5OEU1XHU5OEU2XHU5OEU5XCIsMzAsXCJcdTk0RTlcdTk0RUJcdTk0RUVcdTk0RUZcdTk0RjNcdTk0RjRcdTk0RjVcdTk0RjdcdTk0RjlcdTk0RkNcdTk0RkRcdTk0RkZcdTk1MDNcdTk1MDJcdTk1MDZcdTk1MDdcdTk1MDlcdTk1MEFcdTk1MERcdTk1MEVcdTk1MEZcdTk1MTJcIiw0LFwiXHU5NTE4XHU5NTFCXHU5NTFEXHU5NTFFXHU5NTFGXHU5NTIyXHU5NTJBXHU5NTJCXHU5NTI5XHU5NTJDXHU5NTMxXHU5NTMyXHU5NTM0XHU5NTM2XHU5NTM3XHU5NTM4XHU5NTNDXHU5NTNFXHU5NTNGXHU5NTQyXHU5NTM1XHU5NTQ0XHU5NTQ1XHU5NTQ2XHU5NTQ5XHU5NTRDXHU5NTRFXHU5NTRGXHU5NTUyXHU5NTUzXHU5NTU0XHU5NTU2XHU5NTU3XHU5NTU4XHU5NTU5XHU5NTVCXHU5NTVFXHU5NTVGXHU5NTVEXHU5NTYxXHU5NTYyXHU5NTY0XCIsOCxcIlx1OTU2Rlx1OTU3MVx1OTU3Mlx1OTU3M1x1OTUzQVx1NzdFN1x1NzdFQ1x1OTZDOVx1NzlENVx1NzlFRFx1NzlFM1x1NzlFQlx1N0EwNlx1NUQ0N1x1N0EwM1x1N0EwMlx1N0ExRVx1N0ExNFwiXSxcbltcImYwNDBcIixcIlx1OTkwOFwiLDQsXCJcdTk5MEVcdTk5MEZcdTk5MTFcIiwyOCxcIlx1OTkyRlwiLDI2XSxcbltcImYwODBcIixcIlx1OTk0QVwiLDksXCJcdTk5NTZcIiwxMixcIlx1OTk2NFx1OTk2Nlx1OTk3M1x1OTk3OFx1OTk3OVx1OTk3Qlx1OTk3RVx1OTk4Mlx1OTk4M1x1OTk4OVx1N0EzOVx1N0EzN1x1N0E1MVx1OUVDRlx1OTlBNVx1N0E3MFx1NzY4OFx1NzY4RVx1NzY5M1x1NzY5OVx1NzZBNFx1NzRERVx1NzRFMFx1NzUyQ1x1OUUyMFx1OUUyMlx1OUUyOFwiLDQsXCJcdTlFMzJcdTlFMzFcdTlFMzZcdTlFMzhcdTlFMzdcdTlFMzlcdTlFM0FcdTlFM0VcdTlFNDFcdTlFNDJcdTlFNDRcdTlFNDZcdTlFNDdcdTlFNDhcdTlFNDlcdTlFNEJcdTlFNENcdTlFNEVcdTlFNTFcdTlFNTVcdTlFNTdcdTlFNUFcdTlFNUJcdTlFNUNcdTlFNUVcdTlFNjNcdTlFNjZcIiw2LFwiXHU5RTcxXHU5RTZEXHU5RTczXHU3NTkyXHU3NTk0XHU3NTk2XHU3NUEwXHU3NTlEXHU3NUFDXHU3NUEzXHU3NUIzXHU3NUI0XHU3NUI4XHU3NUM0XHU3NUIxXHU3NUIwXHU3NUMzXHU3NUMyXHU3NUQ2XHU3NUNEXHU3NUUzXHU3NUU4XHU3NUU2XHU3NUU0XHU3NUVCXHU3NUU3XHU3NjAzXHU3NUYxXHU3NUZDXHU3NUZGXHU3NjEwXHU3NjAwXHU3NjA1XHU3NjBDXHU3NjE3XHU3NjBBXHU3NjI1XHU3NjE4XHU3NjE1XHU3NjE5XCJdLFxuW1wiZjE0MFwiLFwiXHU5OThDXHU5OThFXHU5OTlBXCIsMTAsXCJcdTk5QTZcdTk5QTdcdTk5QTlcIiw0N10sXG5bXCJmMTgwXCIsXCJcdTk5RDlcIiwzMixcIlx1NzYxQlx1NzYzQ1x1NzYyMlx1NzYyMFx1NzY0MFx1NzYyRFx1NzYzMFx1NzYzRlx1NzYzNVx1NzY0M1x1NzYzRVx1NzYzM1x1NzY0RFx1NzY1RVx1NzY1NFx1NzY1Q1x1NzY1Nlx1NzY2Qlx1NzY2Rlx1N0ZDQVx1N0FFNlx1N0E3OFx1N0E3OVx1N0E4MFx1N0E4Nlx1N0E4OFx1N0E5NVx1N0FBNlx1N0FBMFx1N0FBQ1x1N0FBOFx1N0FBRFx1N0FCM1x1ODg2NFx1ODg2OVx1ODg3Mlx1ODg3RFx1ODg3Rlx1ODg4Mlx1ODhBMlx1ODhDNlx1ODhCN1x1ODhCQ1x1ODhDOVx1ODhFMlx1ODhDRVx1ODhFM1x1ODhFNVx1ODhGMVx1ODkxQVx1ODhGQ1x1ODhFOFx1ODhGRVx1ODhGMFx1ODkyMVx1ODkxOVx1ODkxM1x1ODkxQlx1ODkwQVx1ODkzNFx1ODkyQlx1ODkzNlx1ODk0MVx1ODk2Nlx1ODk3Qlx1NzU4Qlx1ODBFNVx1NzZCMlx1NzZCNFx1NzdEQ1x1ODAxMlx1ODAxNFx1ODAxNlx1ODAxQ1x1ODAyMFx1ODAyMlx1ODAyNVx1ODAyNlx1ODAyN1x1ODAyOVx1ODAyOFx1ODAzMVx1ODAwQlx1ODAzNVx1ODA0M1x1ODA0Nlx1ODA0RFx1ODA1Mlx1ODA2OVx1ODA3MVx1ODk4M1x1OTg3OFx1OTg4MFx1OTg4M1wiXSxcbltcImYyNDBcIixcIlx1OTlGQVwiLDYyXSxcbltcImYyODBcIixcIlx1OUEzOVwiLDMyLFwiXHU5ODg5XHU5ODhDXHU5ODhEXHU5ODhGXHU5ODk0XHU5ODlBXHU5ODlCXHU5ODlFXHU5ODlGXHU5OEExXHU5OEEyXHU5OEE1XHU5OEE2XHU4NjREXHU4NjU0XHU4NjZDXHU4NjZFXHU4NjdGXHU4NjdBXHU4NjdDXHU4NjdCXHU4NkE4XHU4NjhEXHU4NjhCXHU4NkFDXHU4NjlEXHU4NkE3XHU4NkEzXHU4NkFBXHU4NjkzXHU4NkE5XHU4NkI2XHU4NkM0XHU4NkI1XHU4NkNFXHU4NkIwXHU4NkJBXHU4NkIxXHU4NkFGXHU4NkM5XHU4NkNGXHU4NkI0XHU4NkU5XHU4NkYxXHU4NkYyXHU4NkVEXHU4NkYzXHU4NkQwXHU4NzEzXHU4NkRFXHU4NkY0XHU4NkRGXHU4NkQ4XHU4NkQxXHU4NzAzXHU4NzA3XHU4NkY4XHU4NzA4XHU4NzBBXHU4NzBEXHU4NzA5XHU4NzIzXHU4NzNCXHU4NzFFXHU4NzI1XHU4NzJFXHU4NzFBXHU4NzNFXHU4NzQ4XHU4NzM0XHU4NzMxXHU4NzI5XHU4NzM3XHU4NzNGXHU4NzgyXHU4NzIyXHU4NzdEXHU4NzdFXHU4NzdCXHU4NzYwXHU4NzcwXHU4NzRDXHU4NzZFXHU4NzhCXHU4NzUzXHU4NzYzXHU4NzdDXHU4NzY0XHU4NzU5XHU4NzY1XHU4NzkzXHU4N0FGXHU4N0E4XHU4N0QyXCJdLFxuW1wiZjM0MFwiLFwiXHU5QTVBXCIsMTcsXCJcdTlBNzJcdTlBODNcdTlBODlcdTlBOERcdTlBOEVcdTlBOTRcdTlBOTVcdTlBOTlcdTlBQTZcdTlBQTlcIiw2LFwiXHU5QUIyXHU5QUIzXHU5QUI0XHU5QUI1XHU5QUI5XHU5QUJCXHU5QUJEXHU5QUJFXHU5QUJGXHU5QUMzXHU5QUM0XHU5QUM2XCIsNCxcIlx1OUFDRFx1OUFDRVx1OUFDRlx1OUFEMFx1OUFEMlx1OUFENFx1OUFENVx1OUFENlx1OUFEN1x1OUFEOVx1OUFEQVx1OUFEQlx1OUFEQ1wiXSxcbltcImYzODBcIixcIlx1OUFERFx1OUFERVx1OUFFMFx1OUFFMlx1OUFFM1x1OUFFNFx1OUFFNVx1OUFFN1x1OUFFOFx1OUFFOVx1OUFFQVx1OUFFQ1x1OUFFRVx1OUFGMFwiLDgsXCJcdTlBRkFcdTlBRkNcIiw2LFwiXHU5QjA0XHU5QjA1XHU5QjA2XHU4N0M2XHU4Nzg4XHU4Nzg1XHU4N0FEXHU4Nzk3XHU4NzgzXHU4N0FCXHU4N0U1XHU4N0FDXHU4N0I1XHU4N0IzXHU4N0NCXHU4N0QzXHU4N0JEXHU4N0QxXHU4N0MwXHU4N0NBXHU4N0RCXHU4N0VBXHU4N0UwXHU4N0VFXHU4ODE2XHU4ODEzXHU4N0ZFXHU4ODBBXHU4ODFCXHU4ODIxXHU4ODM5XHU4ODNDXHU3RjM2XHU3RjQyXHU3RjQ0XHU3RjQ1XHU4MjEwXHU3QUZBXHU3QUZEXHU3QjA4XHU3QjAzXHU3QjA0XHU3QjE1XHU3QjBBXHU3QjJCXHU3QjBGXHU3QjQ3XHU3QjM4XHU3QjJBXHU3QjE5XHU3QjJFXHU3QjMxXHU3QjIwXHU3QjI1XHU3QjI0XHU3QjMzXHU3QjNFXHU3QjFFXHU3QjU4XHU3QjVBXHU3QjQ1XHU3Qjc1XHU3QjRDXHU3QjVEXHU3QjYwXHU3QjZFXHU3QjdCXHU3QjYyXHU3QjcyXHU3QjcxXHU3QjkwXHU3QkE2XHU3QkE3XHU3QkI4XHU3QkFDXHU3QjlEXHU3QkE4XHU3Qjg1XHU3QkFBXHU3QjlDXHU3QkEyXHU3QkFCXHU3QkI0XHU3QkQxXHU3QkMxXHU3QkNDXHU3QkREXHU3QkRBXHU3QkU1XHU3QkU2XHU3QkVBXHU3QzBDXHU3QkZFXHU3QkZDXHU3QzBGXHU3QzE2XHU3QzBCXCJdLFxuW1wiZjQ0MFwiLFwiXHU5QjA3XHU5QjA5XCIsNSxcIlx1OUIxMFx1OUIxMVx1OUIxMlx1OUIxNFwiLDEwLFwiXHU5QjIwXHU5QjIxXHU5QjIyXHU5QjI0XCIsMTAsXCJcdTlCMzBcdTlCMzFcdTlCMzNcIiw3LFwiXHU5QjNEXHU5QjNFXHU5QjNGXHU5QjQwXHU5QjQ2XHU5QjRBXHU5QjRCXHU5QjRDXHU5QjRFXHU5QjUwXHU5QjUyXHU5QjUzXHU5QjU1XCIsNV0sXG5bXCJmNDgwXCIsXCJcdTlCNUJcIiwzMixcIlx1N0MxRlx1N0MyQVx1N0MyNlx1N0MzOFx1N0M0MVx1N0M0MFx1ODFGRVx1ODIwMVx1ODIwMlx1ODIwNFx1ODFFQ1x1ODg0NFx1ODIyMVx1ODIyMlx1ODIyM1x1ODIyRFx1ODIyRlx1ODIyOFx1ODIyQlx1ODIzOFx1ODIzQlx1ODIzM1x1ODIzNFx1ODIzRVx1ODI0NFx1ODI0OVx1ODI0Qlx1ODI0Rlx1ODI1QVx1ODI1Rlx1ODI2OFx1ODg3RVx1ODg4NVx1ODg4OFx1ODhEOFx1ODhERlx1ODk1RVx1N0Y5RFx1N0Y5Rlx1N0ZBN1x1N0ZBRlx1N0ZCMFx1N0ZCMlx1N0M3Q1x1NjU0OVx1N0M5MVx1N0M5RFx1N0M5Q1x1N0M5RVx1N0NBMlx1N0NCMlx1N0NCQ1x1N0NCRFx1N0NDMVx1N0NDN1x1N0NDQ1x1N0NDRFx1N0NDOFx1N0NDNVx1N0NEN1x1N0NFOFx1ODI2RVx1NjZBOFx1N0ZCRlx1N0ZDRVx1N0ZENVx1N0ZFNVx1N0ZFMVx1N0ZFNlx1N0ZFOVx1N0ZFRVx1N0ZGM1x1N0NGOFx1N0Q3N1x1N0RBNlx1N0RBRVx1N0U0N1x1N0U5Qlx1OUVCOFx1OUVCNFx1OEQ3M1x1OEQ4NFx1OEQ5NFx1OEQ5MVx1OERCMVx1OEQ2N1x1OEQ2RFx1OEM0N1x1OEM0OVx1OTE0QVx1OTE1MFx1OTE0RVx1OTE0Rlx1OTE2NFwiXSxcbltcImY1NDBcIixcIlx1OUI3Q1wiLDYyXSxcbltcImY1ODBcIixcIlx1OUJCQlwiLDMyLFwiXHU5MTYyXHU5MTYxXHU5MTcwXHU5MTY5XHU5MTZGXHU5MTdEXHU5MTdFXHU5MTcyXHU5MTc0XHU5MTc5XHU5MThDXHU5MTg1XHU5MTkwXHU5MThEXHU5MTkxXHU5MUEyXHU5MUEzXHU5MUFBXHU5MUFEXHU5MUFFXHU5MUFGXHU5MUI1XHU5MUI0XHU5MUJBXHU4QzU1XHU5RTdFXHU4REI4XHU4REVCXHU4RTA1XHU4RTU5XHU4RTY5XHU4REI1XHU4REJGXHU4REJDXHU4REJBXHU4REM0XHU4REQ2XHU4REQ3XHU4RERBXHU4RERFXHU4RENFXHU4RENGXHU4RERCXHU4REM2XHU4REVDXHU4REY3XHU4REY4XHU4REUzXHU4REY5XHU4REZCXHU4REU0XHU4RTA5XHU4REZEXHU4RTE0XHU4RTFEXHU4RTFGXHU4RTJDXHU4RTJFXHU4RTIzXHU4RTJGXHU4RTNBXHU4RTQwXHU4RTM5XHU4RTM1XHU4RTNEXHU4RTMxXHU4RTQ5XHU4RTQxXHU4RTQyXHU4RTUxXHU4RTUyXHU4RTRBXHU4RTcwXHU4RTc2XHU4RTdDXHU4RTZGXHU4RTc0XHU4RTg1XHU4RThGXHU4RTk0XHU4RTkwXHU4RTlDXHU4RTlFXHU4Qzc4XHU4QzgyXHU4QzhBXHU4Qzg1XHU4Qzk4XHU4Qzk0XHU2NTlCXHU4OUQ2XHU4OURFXHU4OURBXHU4OURDXCJdLFxuW1wiZjY0MFwiLFwiXHU5QkRDXCIsNjJdLFxuW1wiZjY4MFwiLFwiXHU5QzFCXCIsMzIsXCJcdTg5RTVcdTg5RUJcdTg5RUZcdThBM0VcdThCMjZcdTk3NTNcdTk2RTlcdTk2RjNcdTk2RUZcdTk3MDZcdTk3MDFcdTk3MDhcdTk3MEZcdTk3MEVcdTk3MkFcdTk3MkRcdTk3MzBcdTk3M0VcdTlGODBcdTlGODNcdTlGODVcIiw1LFwiXHU5RjhDXHU5RUZFXHU5RjBCXHU5RjBEXHU5NkI5XHU5NkJDXHU5NkJEXHU5NkNFXHU5NkQyXHU3N0JGXHU5NkUwXHU5MjhFXHU5MkFFXHU5MkM4XHU5MzNFXHU5MzZBXHU5M0NBXHU5MzhGXHU5NDNFXHU5NDZCXHU5QzdGXHU5QzgyXHU5Qzg1XHU5Qzg2XHU5Qzg3XHU5Qzg4XHU3QTIzXHU5QzhCXHU5QzhFXHU5QzkwXHU5QzkxXHU5QzkyXHU5Qzk0XHU5Qzk1XHU5QzlBXHU5QzlCXHU5QzlFXCIsNSxcIlx1OUNBNVwiLDQsXCJcdTlDQUJcdTlDQURcdTlDQUVcdTlDQjBcIiw3LFwiXHU5Q0JBXHU5Q0JCXHU5Q0JDXHU5Q0JEXHU5Q0M0XHU5Q0M1XHU5Q0M2XHU5Q0M3XHU5Q0NBXHU5Q0NCXCJdLFxuW1wiZjc0MFwiLFwiXHU5QzNDXCIsNjJdLFxuW1wiZjc4MFwiLFwiXHU5QzdCXHU5QzdEXHU5QzdFXHU5QzgwXHU5QzgzXHU5Qzg0XHU5Qzg5XHU5QzhBXHU5QzhDXHU5QzhGXHU5QzkzXHU5Qzk2XHU5Qzk3XHU5Qzk4XHU5Qzk5XHU5QzlEXHU5Q0FBXHU5Q0FDXHU5Q0FGXHU5Q0I5XHU5Q0JFXCIsNCxcIlx1OUNDOFx1OUNDOVx1OUNEMVx1OUNEMlx1OUNEQVx1OUNEQlx1OUNFMFx1OUNFMVx1OUNDQ1wiLDQsXCJcdTlDRDNcdTlDRDRcdTlDRDVcdTlDRDdcdTlDRDhcdTlDRDlcdTlDRENcdTlDRERcdTlDREZcdTlDRTJcdTk3N0NcdTk3ODVcdTk3OTFcdTk3OTJcdTk3OTRcdTk3QUZcdTk3QUJcdTk3QTNcdTk3QjJcdTk3QjRcdTlBQjFcdTlBQjBcdTlBQjdcdTlFNThcdTlBQjZcdTlBQkFcdTlBQkNcdTlBQzFcdTlBQzBcdTlBQzVcdTlBQzJcdTlBQ0JcdTlBQ0NcdTlBRDFcdTlCNDVcdTlCNDNcdTlCNDdcdTlCNDlcdTlCNDhcdTlCNERcdTlCNTFcdTk4RThcdTk5MERcdTk5MkVcdTk5NTVcdTk5NTRcdTlBREZcdTlBRTFcdTlBRTZcdTlBRUZcdTlBRUJcdTlBRkJcdTlBRURcdTlBRjlcdTlCMDhcdTlCMEZcdTlCMTNcdTlCMUZcdTlCMjNcdTlFQkRcdTlFQkVcdTdFM0JcdTlFODJcdTlFODdcdTlFODhcdTlFOEJcdTlFOTJcdTkzRDZcdTlFOURcdTlFOUZcdTlFREJcdTlFRENcdTlFRERcdTlFRTBcdTlFREZcdTlFRTJcdTlFRTlcdTlFRTdcdTlFRTVcdTlFRUFcdTlFRUZcdTlGMjJcdTlGMkNcdTlGMkZcdTlGMzlcdTlGMzdcdTlGM0RcdTlGM0VcdTlGNDRcIl0sXG5bXCJmODQwXCIsXCJcdTlDRTNcIiw2Ml0sXG5bXCJmODgwXCIsXCJcdTlEMjJcIiwzMl0sXG5bXCJmOTQwXCIsXCJcdTlENDNcIiw2Ml0sXG5bXCJmOTgwXCIsXCJcdTlEODJcIiwzMl0sXG5bXCJmYTQwXCIsXCJcdTlEQTNcIiw2Ml0sXG5bXCJmYTgwXCIsXCJcdTlERTJcIiwzMl0sXG5bXCJmYjQwXCIsXCJcdTlFMDNcIiwyNyxcIlx1OUUyNFx1OUUyN1x1OUUyRVx1OUUzMFx1OUUzNFx1OUUzQlx1OUUzQ1x1OUU0MFx1OUU0RFx1OUU1MFx1OUU1Mlx1OUU1M1x1OUU1NFx1OUU1Nlx1OUU1OVx1OUU1RFx1OUU1Rlx1OUU2MFx1OUU2MVx1OUU2Mlx1OUU2NVx1OUU2RVx1OUU2Rlx1OUU3Mlx1OUU3NFwiLDksXCJcdTlFODBcIl0sXG5bXCJmYjgwXCIsXCJcdTlFODFcdTlFODNcdTlFODRcdTlFODVcdTlFODZcdTlFODlcdTlFOEFcdTlFOENcIiw1LFwiXHU5RTk0XCIsOCxcIlx1OUU5RVx1OUVBMFwiLDUsXCJcdTlFQTdcdTlFQThcdTlFQTlcdTlFQUFcIl0sXG5bXCJmYzQwXCIsXCJcdTlFQUJcIiw4LFwiXHU5RUI1XHU5RUI2XHU5RUI3XHU5RUI5XHU5RUJBXHU5RUJDXHU5RUJGXCIsNCxcIlx1OUVDNVx1OUVDNlx1OUVDN1x1OUVDOFx1OUVDQVx1OUVDQlx1OUVDQ1x1OUVEMFx1OUVEMlx1OUVEM1x1OUVENVx1OUVENlx1OUVEN1x1OUVEOVx1OUVEQVx1OUVERVx1OUVFMVx1OUVFM1x1OUVFNFx1OUVFNlx1OUVFOFx1OUVFQlx1OUVFQ1x1OUVFRFx1OUVFRVx1OUVGMFwiLDgsXCJcdTlFRkFcdTlFRkRcdTlFRkZcIiw2XSxcbltcImZjODBcIixcIlx1OUYwNlwiLDQsXCJcdTlGMENcdTlGMEZcdTlGMTFcdTlGMTJcdTlGMTRcdTlGMTVcdTlGMTZcdTlGMThcdTlGMUFcIiw1LFwiXHU5RjIxXHU5RjIzXCIsOCxcIlx1OUYyRFx1OUYyRVx1OUYzMFx1OUYzMVwiXSxcbltcImZkNDBcIixcIlx1OUYzMlwiLDQsXCJcdTlGMzhcdTlGM0FcdTlGM0NcdTlGM0ZcIiw0LFwiXHU5RjQ1XCIsMTAsXCJcdTlGNTJcIiwzOF0sXG5bXCJmZDgwXCIsXCJcdTlGNzlcIiw1LFwiXHU5RjgxXHU5RjgyXHU5RjhEXCIsMTEsXCJcdTlGOUNcdTlGOURcdTlGOUVcdTlGQTFcIiw0LFwiXHVGOTJDXHVGOTc5XHVGOTk1XHVGOUU3XHVGOUYxXCJdLFxuW1wiZmU0MFwiLFwiXHVGQTBDXHVGQTBEXHVGQTBFXHVGQTBGXHVGQTExXHVGQTEzXHVGQTE0XHVGQTE4XHVGQTFGXHVGQTIwXHVGQTIxXHVGQTIzXHVGQTI0XHVGQTI3XHVGQTI4XHVGQTI5XCJdXG5dXG4iLCAiW1xuW1wiYTE0MFwiLFwiXHVFNEM2XCIsNjJdLFxuW1wiYTE4MFwiLFwiXHVFNTA1XCIsMzJdLFxuW1wiYTI0MFwiLFwiXHVFNTI2XCIsNjJdLFxuW1wiYTI4MFwiLFwiXHVFNTY1XCIsMzJdLFxuW1wiYTJhYlwiLFwiXHVFNzY2XCIsNV0sXG5bXCJhMmUzXCIsXCJcdTIwQUNcdUU3NkRcIl0sXG5bXCJhMmVmXCIsXCJcdUU3NkVcdUU3NkZcIl0sXG5bXCJhMmZkXCIsXCJcdUU3NzBcdUU3NzFcIl0sXG5bXCJhMzQwXCIsXCJcdUU1ODZcIiw2Ml0sXG5bXCJhMzgwXCIsXCJcdUU1QzVcIiwzMSxcIlx1MzAwMFwiXSxcbltcImE0NDBcIixcIlx1RTVFNlwiLDYyXSxcbltcImE0ODBcIixcIlx1RTYyNVwiLDMyXSxcbltcImE0ZjRcIixcIlx1RTc3MlwiLDEwXSxcbltcImE1NDBcIixcIlx1RTY0NlwiLDYyXSxcbltcImE1ODBcIixcIlx1RTY4NVwiLDMyXSxcbltcImE1ZjdcIixcIlx1RTc3RFwiLDddLFxuW1wiYTY0MFwiLFwiXHVFNkE2XCIsNjJdLFxuW1wiYTY4MFwiLFwiXHVFNkU1XCIsMzJdLFxuW1wiYTZiOVwiLFwiXHVFNzg1XCIsN10sXG5bXCJhNmQ5XCIsXCJcdUU3OERcIiw2XSxcbltcImE2ZWNcIixcIlx1RTc5NFx1RTc5NVwiXSxcbltcImE2ZjNcIixcIlx1RTc5NlwiXSxcbltcImE2ZjZcIixcIlx1RTc5N1wiLDhdLFxuW1wiYTc0MFwiLFwiXHVFNzA2XCIsNjJdLFxuW1wiYTc4MFwiLFwiXHVFNzQ1XCIsMzJdLFxuW1wiYTdjMlwiLFwiXHVFN0EwXCIsMTRdLFxuW1wiYTdmMlwiLFwiXHVFN0FGXCIsMTJdLFxuW1wiYTg5NlwiLFwiXHVFN0JDXCIsMTBdLFxuW1wiYThiY1wiLFwiXHUxRTNGXCJdLFxuW1wiYThiZlwiLFwiXHUwMUY5XCJdLFxuW1wiYThjMVwiLFwiXHVFN0M5XHVFN0NBXHVFN0NCXHVFN0NDXCJdLFxuW1wiYThlYVwiLFwiXHVFN0NEXCIsMjBdLFxuW1wiYTk1OFwiLFwiXHVFN0UyXCJdLFxuW1wiYTk1YlwiLFwiXHVFN0UzXCJdLFxuW1wiYTk1ZFwiLFwiXHVFN0U0XHVFN0U1XHVFN0U2XCJdLFxuW1wiYTk4OVwiLFwiXHUzMDNFXHUyRkYwXCIsMTFdLFxuW1wiYTk5N1wiLFwiXHVFN0Y0XCIsMTJdLFxuW1wiYTlmMFwiLFwiXHVFODAxXCIsMTRdLFxuW1wiYWFhMVwiLFwiXHVFMDAwXCIsOTNdLFxuW1wiYWJhMVwiLFwiXHVFMDVFXCIsOTNdLFxuW1wiYWNhMVwiLFwiXHVFMEJDXCIsOTNdLFxuW1wiYWRhMVwiLFwiXHVFMTFBXCIsOTNdLFxuW1wiYWVhMVwiLFwiXHVFMTc4XCIsOTNdLFxuW1wiYWZhMVwiLFwiXHVFMUQ2XCIsOTNdLFxuW1wiZDdmYVwiLFwiXHVFODEwXCIsNF0sXG5bXCJmOGExXCIsXCJcdUUyMzRcIiw5M10sXG5bXCJmOWExXCIsXCJcdUUyOTJcIiw5M10sXG5bXCJmYWExXCIsXCJcdUUyRjBcIiw5M10sXG5bXCJmYmExXCIsXCJcdUUzNEVcIiw5M10sXG5bXCJmY2ExXCIsXCJcdUUzQUNcIiw5M10sXG5bXCJmZGExXCIsXCJcdUU0MEFcIiw5M10sXG5bXCJmZTUwXCIsXCJcdTJFODFcdUU4MTZcdUU4MTdcdUU4MThcdTJFODRcdTM0NzNcdTM0NDdcdTJFODhcdTJFOEJcdUU4MUVcdTM1OUVcdTM2MUFcdTM2MEVcdTJFOENcdTJFOTdcdTM5NkVcdTM5MThcdUU4MjZcdTM5Q0ZcdTM5REZcdTNBNzNcdTM5RDBcdUU4MkJcdUU4MkNcdTNCNEVcdTNDNkVcdTNDRTBcdTJFQTdcdUU4MzFcdUU4MzJcdTJFQUFcdTQwNTZcdTQxNUZcdTJFQUVcdTQzMzdcdTJFQjNcdTJFQjZcdTJFQjdcdUU4M0JcdTQzQjFcdTQzQUNcdTJFQkJcdTQzRERcdTQ0RDZcdTQ2NjFcdTQ2NENcdUU4NDNcIl0sXG5bXCJmZTgwXCIsXCJcdTQ3MjNcdTQ3MjlcdTQ3N0NcdTQ3OERcdTJFQ0FcdTQ5NDdcdTQ5N0FcdTQ5N0RcdTQ5ODJcdTQ5ODNcdTQ5ODVcdTQ5ODZcdTQ5OUZcdTQ5OUJcdTQ5QjdcdTQ5QjZcdUU4NTRcdUU4NTVcdTRDQTNcdTRDOUZcdTRDQTBcdTRDQTFcdTRDNzdcdTRDQTJcdTREMTNcIiw2LFwiXHU0REFFXHVFODY0XHVFNDY4XCIsOTNdLFxuW1wiODEzNWY0MzdcIixcIlx1RTdDN1wiXVxuXVxuIiwgIntcInVDaGFyc1wiOlsxMjgsMTY1LDE2OSwxNzgsMTg0LDIxNiwyMjYsMjM1LDIzOCwyNDQsMjQ4LDI1MSwyNTMsMjU4LDI3NiwyODQsMzAwLDMyNSwzMjksMzM0LDM2NCw0NjMsNDY1LDQ2Nyw0NjksNDcxLDQ3Myw0NzUsNDc3LDUwNiw1OTQsNjEwLDcxMiw3MTYsNzMwLDkzMCw5MzgsOTYyLDk3MCwxMDI2LDExMDQsMTEwNiw4MjA5LDgyMTUsODIxOCw4MjIyLDgyMzEsODI0MSw4MjQ0LDgyNDYsODI1Miw4MzY1LDg0NTIsODQ1NCw4NDU4LDg0NzEsODQ4Miw4NTU2LDg1NzAsODU5Niw4NjAyLDg3MTMsODcyMCw4NzIyLDg3MjYsODczMSw4NzM3LDg3NDAsODc0Miw4NzQ4LDg3NTEsODc2MCw4NzY2LDg3NzcsODc4MSw4Nzg3LDg4MDIsODgwOCw4ODE2LDg4NTQsODg1OCw4ODcwLDg4OTYsODk3OSw5MzIyLDkzNzIsOTU0OCw5NTg4LDk2MTYsOTYyMiw5NjM0LDk2NTIsOTY2Miw5NjcyLDk2NzYsOTY4MCw5NzAyLDk3MzUsOTczOCw5NzkzLDk3OTUsMTE5MDYsMTE5MDksMTE5MTMsMTE5MTcsMTE5MjgsMTE5NDQsMTE5NDcsMTE5NTEsMTE5NTYsMTE5NjAsMTE5NjQsMTE5NzksMTIyODQsMTIyOTIsMTIzMTIsMTIzMTksMTIzMzAsMTIzNTEsMTI0MzYsMTI0NDcsMTI1MzUsMTI1NDMsMTI1ODYsMTI4NDIsMTI4NTAsMTI5NjQsMTMyMDAsMTMyMTUsMTMyMTgsMTMyNTMsMTMyNjMsMTMyNjcsMTMyNzAsMTMzODQsMTM0MjgsMTM3MjcsMTM4MzksMTM4NTEsMTQ2MTcsMTQ3MDMsMTQ4MDEsMTQ4MTYsMTQ5NjQsMTUxODMsMTU0NzEsMTU1ODUsMTY0NzEsMTY3MzYsMTcyMDgsMTczMjUsMTczMzAsMTczNzQsMTc2MjMsMTc5OTcsMTgwMTgsMTgyMTIsMTgyMTgsMTgzMDEsMTgzMTgsMTg3NjAsMTg4MTEsMTg4MTQsMTg4MjAsMTg4MjMsMTg4NDQsMTg4NDgsMTg4NzIsMTk1NzYsMTk2MjAsMTk3MzgsMTk4ODcsNDA4NzAsNTkyNDQsNTkzMzYsNTkzNjcsNTk0MTMsNTk0MTcsNTk0MjMsNTk0MzEsNTk0MzcsNTk0NDMsNTk0NTIsNTk0NjAsNTk0NzgsNTk0OTMsNjM3ODksNjM4NjYsNjM4OTQsNjM5NzYsNjM5ODYsNjQwMTYsNjQwMTgsNjQwMjEsNjQwMjUsNjQwMzQsNjQwMzcsNjQwNDIsNjUwNzQsNjUwOTMsNjUxMDcsNjUxMTIsNjUxMjcsNjUxMzIsNjUzNzUsNjU1MTAsNjU1MzZdLFwiZ2JDaGFyc1wiOlswLDM2LDM4LDQ1LDUwLDgxLDg5LDk1LDk2LDEwMCwxMDMsMTA0LDEwNSwxMDksMTI2LDEzMywxNDgsMTcyLDE3NSwxNzksMjA4LDMwNiwzMDcsMzA4LDMwOSwzMTAsMzExLDMxMiwzMTMsMzQxLDQyOCw0NDMsNTQ0LDU0NSw1NTgsNzQxLDc0Miw3NDksNzUwLDgwNSw4MTksODIwLDc5MjIsNzkyNCw3OTI1LDc5MjcsNzkzNCw3OTQzLDc5NDQsNzk0NSw3OTUwLDgwNjIsODE0OCw4MTQ5LDgxNTIsODE2NCw4MTc0LDgyMzYsODI0MCw4MjYyLDgyNjQsODM3NCw4MzgwLDgzODEsODM4NCw4Mzg4LDgzOTAsODM5Miw4MzkzLDgzOTQsODM5Niw4NDAxLDg0MDYsODQxNiw4NDE5LDg0MjQsODQzNyw4NDM5LDg0NDUsODQ4Miw4NDg1LDg0OTYsODUyMSw4NjAzLDg5MzYsODk0Niw5MDQ2LDkwNTAsOTA2Myw5MDY2LDkwNzYsOTA5Miw5MTAwLDkxMDgsOTExMSw5MTEzLDkxMzEsOTE2Miw5MTY0LDkyMTgsOTIxOSwxMTMyOSwxMTMzMSwxMTMzNCwxMTMzNiwxMTM0NiwxMTM2MSwxMTM2MywxMTM2NiwxMTM3MCwxMTM3MiwxMTM3NSwxMTM4OSwxMTY4MiwxMTY4NiwxMTY4NywxMTY5MiwxMTY5NCwxMTcxNCwxMTcxNiwxMTcyMywxMTcyNSwxMTczMCwxMTczNiwxMTk4MiwxMTk4OSwxMjEwMiwxMjMzNiwxMjM0OCwxMjM1MCwxMjM4NCwxMjM5MywxMjM5NSwxMjM5NywxMjUxMCwxMjU1MywxMjg1MSwxMjk2MiwxMjk3MywxMzczOCwxMzgyMywxMzkxOSwxMzkzMywxNDA4MCwxNDI5OCwxNDU4NSwxNDY5OCwxNTU4MywxNTg0NywxNjMxOCwxNjQzNCwxNjQzOCwxNjQ4MSwxNjcyOSwxNzEwMiwxNzEyMiwxNzMxNSwxNzMyMCwxNzQwMiwxNzQxOCwxNzg1OSwxNzkwOSwxNzkxMSwxNzkxNSwxNzkxNiwxNzkzNiwxNzkzOSwxNzk2MSwxODY2NCwxODcwMywxODgxNCwxODk2MiwxOTA0MywzMzQ2OSwzMzQ3MCwzMzQ3MSwzMzQ4NCwzMzQ4NSwzMzQ5MCwzMzQ5NywzMzUwMSwzMzUwNSwzMzUxMywzMzUyMCwzMzUzNiwzMzU1MCwzNzg0NSwzNzkyMSwzNzk0OCwzODAyOSwzODAzOCwzODA2NCwzODA2NSwzODA2NiwzODA2OSwzODA3NSwzODA3NiwzODA3OCwzOTEwOCwzOTEwOSwzOTExMywzOTExNCwzOTExNSwzOTExNiwzOTI2NSwzOTM5NCwxODkwMDBdfSIsICJbXG5bXCIwXCIsXCJcXHUwMDAwXCIsMTI3XSxcbltcIjgxNDFcIixcIlx1QUMwMlx1QUMwM1x1QUMwNVx1QUMwNlx1QUMwQlwiLDQsXCJcdUFDMThcdUFDMUVcdUFDMUZcdUFDMjFcdUFDMjJcdUFDMjNcdUFDMjVcIiw2LFwiXHVBQzJFXHVBQzMyXHVBQzMzXHVBQzM0XCJdLFxuW1wiODE2MVwiLFwiXHVBQzM1XHVBQzM2XHVBQzM3XHVBQzNBXHVBQzNCXHVBQzNEXHVBQzNFXHVBQzNGXHVBQzQxXCIsOSxcIlx1QUM0Q1x1QUM0RVwiLDUsXCJcdUFDNTVcIl0sXG5bXCI4MTgxXCIsXCJcdUFDNTZcdUFDNTdcdUFDNTlcdUFDNUFcdUFDNUJcdUFDNURcIiwxOCxcIlx1QUM3Mlx1QUM3M1x1QUM3NVx1QUM3Nlx1QUM3OVx1QUM3QlwiLDQsXCJcdUFDODJcdUFDODdcdUFDODhcdUFDOERcdUFDOEVcdUFDOEZcdUFDOTFcdUFDOTJcdUFDOTNcdUFDOTVcIiw2LFwiXHVBQzlFXHVBQ0EyXCIsNSxcIlx1QUNBQlx1QUNBRFx1QUNBRVx1QUNCMVwiLDYsXCJcdUFDQkFcdUFDQkVcdUFDQkZcdUFDQzBcdUFDQzJcdUFDQzNcdUFDQzVcdUFDQzZcdUFDQzdcdUFDQzlcdUFDQ0FcdUFDQ0JcdUFDQ0RcIiw3LFwiXHVBQ0Q2XHVBQ0Q4XCIsNyxcIlx1QUNFMlx1QUNFM1x1QUNFNVx1QUNFNlx1QUNFOVx1QUNFQlx1QUNFRFx1QUNFRVx1QUNGMlx1QUNGNFx1QUNGN1wiLDQsXCJcdUFDRkVcdUFDRkZcdUFEMDFcdUFEMDJcdUFEMDNcdUFEMDVcdUFEMDdcIiw0LFwiXHVBRDBFXHVBRDEwXHVBRDEyXHVBRDEzXCJdLFxuW1wiODI0MVwiLFwiXHVBRDE0XHVBRDE1XHVBRDE2XHVBRDE3XHVBRDE5XHVBRDFBXHVBRDFCXHVBRDFEXHVBRDFFXHVBRDFGXHVBRDIxXCIsNyxcIlx1QUQyQVx1QUQyQlx1QUQyRVwiLDVdLFxuW1wiODI2MVwiLFwiXHVBRDM2XHVBRDM3XHVBRDM5XHVBRDNBXHVBRDNCXHVBRDNEXCIsNixcIlx1QUQ0Nlx1QUQ0OFx1QUQ0QVwiLDUsXCJcdUFENTFcdUFENTJcdUFENTNcdUFENTVcdUFENTZcdUFENTdcIl0sXG5bXCI4MjgxXCIsXCJcdUFENTlcIiw3LFwiXHVBRDYyXHVBRDY0XCIsNyxcIlx1QUQ2RVx1QUQ2Rlx1QUQ3MVx1QUQ3Mlx1QUQ3N1x1QUQ3OFx1QUQ3OVx1QUQ3QVx1QUQ3RVx1QUQ4MFx1QUQ4M1wiLDQsXCJcdUFEOEFcdUFEOEJcdUFEOERcdUFEOEVcdUFEOEZcdUFEOTFcIiwxMCxcIlx1QUQ5RVwiLDUsXCJcdUFEQTVcIiwxNyxcIlx1QURCOFwiLDcsXCJcdUFEQzJcdUFEQzNcdUFEQzVcdUFEQzZcdUFEQzdcdUFEQzlcIiw2LFwiXHVBREQyXHVBREQ0XCIsNyxcIlx1QURERFx1QURERVx1QURERlx1QURFMVx1QURFMlx1QURFM1x1QURFNVwiLDE4XSxcbltcIjgzNDFcIixcIlx1QURGQVx1QURGQlx1QURGRFx1QURGRVx1QUUwMlwiLDUsXCJcdUFFMEFcdUFFMENcdUFFMEVcIiw1LFwiXHVBRTE1XCIsN10sXG5bXCI4MzYxXCIsXCJcdUFFMURcIiwxOCxcIlx1QUUzMlx1QUUzM1x1QUUzNVx1QUUzNlx1QUUzOVx1QUUzQlx1QUUzQ1wiXSxcbltcIjgzODFcIixcIlx1QUUzRFx1QUUzRVx1QUUzRlx1QUU0Mlx1QUU0NFx1QUU0N1x1QUU0OFx1QUU0OVx1QUU0Qlx1QUU0Rlx1QUU1MVx1QUU1Mlx1QUU1M1x1QUU1NVx1QUU1N1wiLDQsXCJcdUFFNUVcdUFFNjJcdUFFNjNcdUFFNjRcdUFFNjZcdUFFNjdcdUFFNkFcdUFFNkJcdUFFNkRcdUFFNkVcdUFFNkZcdUFFNzFcIiw2LFwiXHVBRTdBXHVBRTdFXCIsNSxcIlx1QUU4NlwiLDUsXCJcdUFFOERcIiw0NixcIlx1QUVCRlx1QUVDMVx1QUVDMlx1QUVDM1x1QUVDNVwiLDYsXCJcdUFFQ0VcdUFFRDJcIiw1LFwiXHVBRURBXHVBRURCXHVBRUREXCIsOF0sXG5bXCI4NDQxXCIsXCJcdUFFRTZcdUFFRTdcdUFFRTlcdUFFRUFcdUFFRUNcdUFFRUVcIiw1LFwiXHVBRUY1XHVBRUY2XHVBRUY3XHVBRUY5XHVBRUZBXHVBRUZCXHVBRUZEXCIsOF0sXG5bXCI4NDYxXCIsXCJcdUFGMDZcdUFGMDlcdUFGMEFcdUFGMEJcdUFGMENcdUFGMEVcdUFGMEZcdUFGMTFcIiwxOF0sXG5bXCI4NDgxXCIsXCJcdUFGMjRcIiw3LFwiXHVBRjJFXHVBRjJGXHVBRjMxXHVBRjMzXHVBRjM1XCIsNixcIlx1QUYzRVx1QUY0MFx1QUY0NFx1QUY0NVx1QUY0Nlx1QUY0N1x1QUY0QVwiLDUsXCJcdUFGNTFcIiwxMCxcIlx1QUY1RVwiLDUsXCJcdUFGNjZcIiwxOCxcIlx1QUY3QVwiLDUsXCJcdUFGODFcdUFGODJcdUFGODNcdUFGODVcdUFGODZcdUFGODdcdUFGODlcIiw2LFwiXHVBRjkyXHVBRjkzXHVBRjk0XHVBRjk2XCIsNSxcIlx1QUY5RFwiLDI2LFwiXHVBRkJBXHVBRkJCXHVBRkJEXHVBRkJFXCJdLFxuW1wiODU0MVwiLFwiXHVBRkJGXHVBRkMxXCIsNSxcIlx1QUZDQVx1QUZDQ1x1QUZDRlwiLDQsXCJcdUFGRDVcIiw2LFwiXHVBRkREXCIsNF0sXG5bXCI4NTYxXCIsXCJcdUFGRTJcIiw1LFwiXHVBRkVBXCIsNSxcIlx1QUZGMlx1QUZGM1x1QUZGNVx1QUZGNlx1QUZGN1x1QUZGOVwiLDYsXCJcdUIwMDJcdUIwMDNcIl0sXG5bXCI4NTgxXCIsXCJcdUIwMDVcIiw2LFwiXHVCMDBEXHVCMDBFXHVCMDBGXHVCMDExXHVCMDEyXHVCMDEzXHVCMDE1XCIsNixcIlx1QjAxRVwiLDksXCJcdUIwMjlcIiwyNixcIlx1QjA0Nlx1QjA0N1x1QjA0OVx1QjA0Qlx1QjA0RFx1QjA0Rlx1QjA1MFx1QjA1MVx1QjA1Mlx1QjA1Nlx1QjA1OFx1QjA1QVx1QjA1Qlx1QjA1Q1x1QjA1RVwiLDI5LFwiXHVCMDdFXHVCMDdGXHVCMDgxXHVCMDgyXHVCMDgzXHVCMDg1XCIsNixcIlx1QjA4RVx1QjA5MFx1QjA5MlwiLDUsXCJcdUIwOUJcdUIwOURcdUIwOUVcdUIwQTNcdUIwQTRcIl0sXG5bXCI4NjQxXCIsXCJcdUIwQTVcdUIwQTZcdUIwQTdcdUIwQUFcdUIwQjBcdUIwQjJcdUIwQjZcdUIwQjdcdUIwQjlcdUIwQkFcdUIwQkJcdUIwQkRcIiw2LFwiXHVCMEM2XHVCMENBXCIsNSxcIlx1QjBEMlwiXSxcbltcIjg2NjFcIixcIlx1QjBEM1x1QjBENVx1QjBENlx1QjBEN1x1QjBEOVwiLDYsXCJcdUIwRTFcdUIwRTJcdUIwRTNcdUIwRTRcdUIwRTZcIiwxMF0sXG5bXCI4NjgxXCIsXCJcdUIwRjFcIiwyMixcIlx1QjEwQVx1QjEwRFx1QjEwRVx1QjEwRlx1QjExMVx1QjExNFx1QjExNVx1QjExNlx1QjExN1x1QjExQVx1QjExRVwiLDQsXCJcdUIxMjZcdUIxMjdcdUIxMjlcdUIxMkFcdUIxMkJcdUIxMkRcIiw2LFwiXHVCMTM2XHVCMTNBXCIsNSxcIlx1QjE0Mlx1QjE0M1x1QjE0NVx1QjE0Nlx1QjE0N1x1QjE0OVwiLDYsXCJcdUIxNTJcdUIxNTNcdUIxNTZcdUIxNTdcdUIxNTlcdUIxNUFcdUIxNUJcdUIxNURcdUIxNUVcdUIxNUZcdUIxNjFcIiwyMixcIlx1QjE3QVx1QjE3Qlx1QjE3RFx1QjE3RVx1QjE3Rlx1QjE4MVx1QjE4M1wiLDQsXCJcdUIxOEFcdUIxOENcdUIxOEVcdUIxOEZcdUIxOTBcdUIxOTFcdUIxOTVcdUIxOTZcdUIxOTdcdUIxOTlcdUIxOUFcdUIxOUJcdUIxOURcIl0sXG5bXCI4NzQxXCIsXCJcdUIxOUVcIiw5LFwiXHVCMUE5XCIsMTVdLFxuW1wiODc2MVwiLFwiXHVCMUI5XCIsMTgsXCJcdUIxQ0RcdUIxQ0VcdUIxQ0ZcdUIxRDFcdUIxRDJcdUIxRDNcdUIxRDVcIl0sXG5bXCI4NzgxXCIsXCJcdUIxRDZcIiw1LFwiXHVCMURFXHVCMUUwXCIsNyxcIlx1QjFFQVx1QjFFQlx1QjFFRFx1QjFFRVx1QjFFRlx1QjFGMVwiLDcsXCJcdUIxRkFcdUIxRkNcdUIxRkVcIiw1LFwiXHVCMjA2XHVCMjA3XHVCMjA5XHVCMjBBXHVCMjBEXCIsNixcIlx1QjIxNlx1QjIxOFx1QjIxQVwiLDUsXCJcdUIyMjFcIiwxOCxcIlx1QjIzNVwiLDYsXCJcdUIyM0RcIiwyNixcIlx1QjI1OVx1QjI1QVx1QjI1Qlx1QjI1RFx1QjI1RVx1QjI1Rlx1QjI2MVwiLDYsXCJcdUIyNkFcIiw0XSxcbltcIjg4NDFcIixcIlx1QjI2RlwiLDQsXCJcdUIyNzZcIiw1LFwiXHVCMjdEXCIsNixcIlx1QjI4Nlx1QjI4N1x1QjI4OFx1QjI4QVwiLDRdLFxuW1wiODg2MVwiLFwiXHVCMjhGXHVCMjkyXHVCMjkzXHVCMjk1XHVCMjk2XHVCMjk3XHVCMjlCXCIsNCxcIlx1QjJBMlx1QjJBNFx1QjJBN1x1QjJBOFx1QjJBOVx1QjJBQlx1QjJBRFx1QjJBRVx1QjJBRlx1QjJCMVx1QjJCMlx1QjJCM1x1QjJCNVx1QjJCNlx1QjJCN1wiXSxcbltcIjg4ODFcIixcIlx1QjJCOFwiLDE1LFwiXHVCMkNBXHVCMkNCXHVCMkNEXHVCMkNFXHVCMkNGXHVCMkQxXHVCMkQzXCIsNCxcIlx1QjJEQVx1QjJEQ1x1QjJERVx1QjJERlx1QjJFMFx1QjJFMVx1QjJFM1x1QjJFN1x1QjJFOVx1QjJFQVx1QjJGMFx1QjJGMVx1QjJGMlx1QjJGNlx1QjJGQ1x1QjJGRFx1QjJGRVx1QjMwMlx1QjMwM1x1QjMwNVx1QjMwNlx1QjMwN1x1QjMwOVwiLDYsXCJcdUIzMTJcdUIzMTZcIiw1LFwiXHVCMzFEXCIsNTQsXCJcdUIzNTdcdUIzNTlcdUIzNUFcdUIzNURcdUIzNjBcdUIzNjFcdUIzNjJcdUIzNjNcIl0sXG5bXCI4OTQxXCIsXCJcdUIzNjZcdUIzNjhcdUIzNkFcdUIzNkNcdUIzNkRcdUIzNkZcdUIzNzJcdUIzNzNcdUIzNzVcdUIzNzZcdUIzNzdcdUIzNzlcIiw2LFwiXHVCMzgyXHVCMzg2XCIsNSxcIlx1QjM4RFwiXSxcbltcIjg5NjFcIixcIlx1QjM4RVx1QjM4Rlx1QjM5MVx1QjM5Mlx1QjM5M1x1QjM5NVwiLDEwLFwiXHVCM0EyXCIsNSxcIlx1QjNBOVx1QjNBQVx1QjNBQlx1QjNBRFwiXSxcbltcIjg5ODFcIixcIlx1QjNBRVwiLDIxLFwiXHVCM0M2XHVCM0M3XHVCM0M5XHVCM0NBXHVCM0NEXHVCM0NGXHVCM0QxXHVCM0QyXHVCM0QzXHVCM0Q2XHVCM0Q4XHVCM0RBXHVCM0RDXHVCM0RFXHVCM0RGXHVCM0UxXHVCM0UyXHVCM0UzXHVCM0U1XHVCM0U2XHVCM0U3XHVCM0U5XCIsMTgsXCJcdUIzRkRcIiwxOCxcIlx1QjQxMVwiLDYsXCJcdUI0MTlcdUI0MUFcdUI0MUJcdUI0MURcdUI0MUVcdUI0MUZcdUI0MjFcIiw2LFwiXHVCNDJBXHVCNDJDXCIsNyxcIlx1QjQzNVwiLDE1XSxcbltcIjhhNDFcIixcIlx1QjQ0NVwiLDEwLFwiXHVCNDUyXHVCNDUzXHVCNDU1XHVCNDU2XHVCNDU3XHVCNDU5XCIsNixcIlx1QjQ2Mlx1QjQ2NFx1QjQ2NlwiXSxcbltcIjhhNjFcIixcIlx1QjQ2N1wiLDQsXCJcdUI0NkRcIiwxOCxcIlx1QjQ4MVx1QjQ4MlwiXSxcbltcIjhhODFcIixcIlx1QjQ4M1wiLDQsXCJcdUI0ODlcIiwxOSxcIlx1QjQ5RVwiLDUsXCJcdUI0QTVcdUI0QTZcdUI0QTdcdUI0QTlcdUI0QUFcdUI0QUJcdUI0QURcIiw3LFwiXHVCNEI2XHVCNEI4XHVCNEJBXCIsNSxcIlx1QjRDMVx1QjRDMlx1QjRDM1x1QjRDNVx1QjRDNlx1QjRDN1x1QjRDOVwiLDYsXCJcdUI0RDFcdUI0RDJcdUI0RDNcdUI0RDRcdUI0RDZcIiw1LFwiXHVCNERFXHVCNERGXHVCNEUxXHVCNEUyXHVCNEU1XHVCNEU3XCIsNCxcIlx1QjRFRVx1QjRGMFx1QjRGMlwiLDUsXCJcdUI0RjlcIiwyNixcIlx1QjUxNlx1QjUxN1x1QjUxOVx1QjUxQVx1QjUxRFwiXSxcbltcIjhiNDFcIixcIlx1QjUxRVwiLDUsXCJcdUI1MjZcdUI1MkJcIiw0LFwiXHVCNTMyXHVCNTMzXHVCNTM1XHVCNTM2XHVCNTM3XHVCNTM5XCIsNixcIlx1QjU0Mlx1QjU0NlwiXSxcbltcIjhiNjFcIixcIlx1QjU0N1x1QjU0OFx1QjU0OVx1QjU0QVx1QjU0RVx1QjU0Rlx1QjU1MVx1QjU1Mlx1QjU1M1x1QjU1NVwiLDYsXCJcdUI1NUVcdUI1NjJcIiw4XSxcbltcIjhiODFcIixcIlx1QjU2QlwiLDUyLFwiXHVCNUEyXHVCNUEzXHVCNUE1XHVCNUE2XHVCNUE3XHVCNUE5XHVCNUFDXHVCNUFEXHVCNUFFXHVCNUFGXHVCNUIyXHVCNUI2XCIsNCxcIlx1QjVCRVx1QjVCRlx1QjVDMVx1QjVDMlx1QjVDM1x1QjVDNVwiLDYsXCJcdUI1Q0VcdUI1RDJcIiw1LFwiXHVCNUQ5XCIsMTgsXCJcdUI1RURcIiwxOF0sXG5bXCI4YzQxXCIsXCJcdUI2MDBcIiwxNSxcIlx1QjYxMlx1QjYxM1x1QjYxNVx1QjYxNlx1QjYxN1x1QjYxOVwiLDRdLFxuW1wiOGM2MVwiLFwiXHVCNjFFXCIsNixcIlx1QjYyNlwiLDUsXCJcdUI2MkRcIiw2LFwiXHVCNjM1XCIsNV0sXG5bXCI4YzgxXCIsXCJcdUI2M0JcIiwxMixcIlx1QjY0OVwiLDI2LFwiXHVCNjY1XHVCNjY2XHVCNjY3XHVCNjY5XCIsNTAsXCJcdUI2OUVcdUI2OUZcdUI2QTFcdUI2QTJcdUI2QTNcdUI2QTVcIiw1LFwiXHVCNkFEXHVCNkFFXHVCNkFGXHVCNkIwXHVCNkIyXCIsMTZdLFxuW1wiOGQ0MVwiLFwiXHVCNkMzXCIsMTYsXCJcdUI2RDVcIiw4XSxcbltcIjhkNjFcIixcIlx1QjZERVwiLDE3LFwiXHVCNkYxXHVCNkYyXHVCNkYzXHVCNkY1XHVCNkY2XHVCNkY3XHVCNkY5XHVCNkZBXCJdLFxuW1wiOGQ4MVwiLFwiXHVCNkZCXCIsNCxcIlx1QjcwMlx1QjcwM1x1QjcwNFx1QjcwNlwiLDMzLFwiXHVCNzJBXHVCNzJCXHVCNzJEXHVCNzJFXHVCNzMxXCIsNixcIlx1QjczQVx1QjczQ1wiLDcsXCJcdUI3NDVcdUI3NDZcdUI3NDdcdUI3NDlcdUI3NEFcdUI3NEJcdUI3NERcIiw2LFwiXHVCNzU2XCIsOSxcIlx1Qjc2MVx1Qjc2Mlx1Qjc2M1x1Qjc2NVx1Qjc2Nlx1Qjc2N1x1Qjc2OVwiLDYsXCJcdUI3NzJcdUI3NzRcdUI3NzZcIiw1LFwiXHVCNzdFXHVCNzdGXHVCNzgxXHVCNzgyXHVCNzgzXHVCNzg1XCIsNixcIlx1Qjc4RVx1Qjc5M1x1Qjc5NFx1Qjc5NVx1Qjc5QVx1Qjc5Qlx1Qjc5RFx1Qjc5RVwiXSxcbltcIjhlNDFcIixcIlx1Qjc5Rlx1QjdBMVwiLDYsXCJcdUI3QUFcdUI3QUVcIiw1LFwiXHVCN0I2XHVCN0I3XHVCN0I5XCIsOF0sXG5bXCI4ZTYxXCIsXCJcdUI3QzJcIiw0LFwiXHVCN0M4XHVCN0NBXCIsMTldLFxuW1wiOGU4MVwiLFwiXHVCN0RFXCIsMTMsXCJcdUI3RUVcdUI3RUZcdUI3RjFcdUI3RjJcdUI3RjNcdUI3RjVcIiw2LFwiXHVCN0ZFXHVCODAyXCIsNCxcIlx1QjgwQVx1QjgwQlx1QjgwRFx1QjgwRVx1QjgwRlx1QjgxMVwiLDYsXCJcdUI4MUFcdUI4MUNcdUI4MUVcIiw1LFwiXHVCODI2XHVCODI3XHVCODI5XHVCODJBXHVCODJCXHVCODJEXCIsNixcIlx1QjgzNlx1QjgzQVwiLDUsXCJcdUI4NDFcdUI4NDJcdUI4NDNcdUI4NDVcIiwxMSxcIlx1Qjg1Mlx1Qjg1NFwiLDcsXCJcdUI4NUVcdUI4NUZcdUI4NjFcdUI4NjJcdUI4NjNcdUI4NjVcIiw2LFwiXHVCODZFXHVCODcwXHVCODcyXCIsNSxcIlx1Qjg3OVx1Qjg3QVx1Qjg3Qlx1Qjg3RFwiLDddLFxuW1wiOGY0MVwiLFwiXHVCODg1XCIsNyxcIlx1Qjg4RVwiLDE3XSxcbltcIjhmNjFcIixcIlx1QjhBMFwiLDcsXCJcdUI4QTlcIiw2LFwiXHVCOEIxXHVCOEIyXHVCOEIzXHVCOEI1XHVCOEI2XHVCOEI3XHVCOEI5XCIsNF0sXG5bXCI4ZjgxXCIsXCJcdUI4QkVcdUI4QkZcdUI4QzJcdUI4QzRcdUI4QzZcIiw1LFwiXHVCOENEXHVCOENFXHVCOENGXHVCOEQxXHVCOEQyXHVCOEQzXHVCOEQ1XCIsNyxcIlx1QjhERVx1QjhFMFx1QjhFMlwiLDUsXCJcdUI4RUFcdUI4RUJcdUI4RURcdUI4RUVcdUI4RUZcdUI4RjFcIiw2LFwiXHVCOEZBXHVCOEZDXHVCOEZFXCIsNSxcIlx1QjkwNVwiLDE4LFwiXHVCOTE5XCIsNixcIlx1QjkyMVwiLDI2LFwiXHVCOTNFXHVCOTNGXHVCOTQxXHVCOTQyXHVCOTQzXHVCOTQ1XCIsNixcIlx1Qjk0RFx1Qjk0RVx1Qjk1MFx1Qjk1MlwiLDVdLFxuW1wiOTA0MVwiLFwiXHVCOTVBXHVCOTVCXHVCOTVEXHVCOTVFXHVCOTVGXHVCOTYxXCIsNixcIlx1Qjk2QVx1Qjk2Q1x1Qjk2RVwiLDUsXCJcdUI5NzZcdUI5NzdcdUI5NzlcdUI5N0FcdUI5N0JcdUI5N0RcIl0sXG5bXCI5MDYxXCIsXCJcdUI5N0VcIiw1LFwiXHVCOTg2XHVCOTg4XHVCOThCXHVCOThDXHVCOThGXCIsMTVdLFxuW1wiOTA4MVwiLFwiXHVCOTlGXCIsMTIsXCJcdUI5QUVcdUI5QUZcdUI5QjFcdUI5QjJcdUI5QjNcdUI5QjVcIiw2LFwiXHVCOUJFXHVCOUMwXHVCOUMyXCIsNSxcIlx1QjlDQVx1QjlDQlx1QjlDRFx1QjlEM1wiLDQsXCJcdUI5REFcdUI5RENcdUI5REZcdUI5RTBcdUI5RTJcdUI5RTZcdUI5RTdcdUI5RTlcdUI5RUFcdUI5RUJcdUI5RURcIiw2LFwiXHVCOUY2XHVCOUZCXCIsNCxcIlx1QkEwMlwiLDUsXCJcdUJBMDlcIiwxMSxcIlx1QkExNlwiLDMzLFwiXHVCQTNBXHVCQTNCXHVCQTNEXHVCQTNFXHVCQTNGXHVCQTQxXHVCQTQzXHVCQTQ0XHVCQTQ1XHVCQTQ2XCJdLFxuW1wiOTE0MVwiLFwiXHVCQTQ3XHVCQTRBXHVCQTRDXHVCQTRGXHVCQTUwXHVCQTUxXHVCQTUyXHVCQTU2XHVCQTU3XHVCQTU5XHVCQTVBXHVCQTVCXHVCQTVEXCIsNixcIlx1QkE2Nlx1QkE2QVwiLDVdLFxuW1wiOTE2MVwiLFwiXHVCQTcyXHVCQTczXHVCQTc1XHVCQTc2XHVCQTc3XHVCQTc5XCIsOSxcIlx1QkE4Nlx1QkE4OFx1QkE4OVx1QkE4QVx1QkE4Qlx1QkE4RFwiLDVdLFxuW1wiOTE4MVwiLFwiXHVCQTkzXCIsMjAsXCJcdUJBQUFcdUJBQURcdUJBQUVcdUJBQUZcdUJBQjFcdUJBQjNcIiw0LFwiXHVCQUJBXHVCQUJDXHVCQUJFXCIsNSxcIlx1QkFDNVx1QkFDNlx1QkFDN1x1QkFDOVwiLDE0LFwiXHVCQURBXCIsMzMsXCJcdUJBRkRcdUJBRkVcdUJBRkZcdUJCMDFcdUJCMDJcdUJCMDNcdUJCMDVcIiw3LFwiXHVCQjBFXHVCQjEwXHVCQjEyXCIsNSxcIlx1QkIxOVx1QkIxQVx1QkIxQlx1QkIxRFx1QkIxRVx1QkIxRlx1QkIyMVwiLDZdLFxuW1wiOTI0MVwiLFwiXHVCQjI4XHVCQjJBXHVCQjJDXCIsNyxcIlx1QkIzN1x1QkIzOVx1QkIzQVx1QkIzRlwiLDQsXCJcdUJCNDZcdUJCNDhcdUJCNEFcdUJCNEJcdUJCNENcdUJCNEVcdUJCNTFcdUJCNTJcIl0sXG5bXCI5MjYxXCIsXCJcdUJCNTNcdUJCNTVcdUJCNTZcdUJCNTdcdUJCNTlcIiw3LFwiXHVCQjYyXHVCQjY0XCIsNyxcIlx1QkI2RFwiLDRdLFxuW1wiOTI4MVwiLFwiXHVCQjcyXCIsMjEsXCJcdUJCODlcdUJCOEFcdUJCOEJcdUJCOERcdUJCOEVcdUJCOEZcdUJCOTFcIiwxOCxcIlx1QkJBNVx1QkJBNlx1QkJBN1x1QkJBOVx1QkJBQVx1QkJBQlx1QkJBRFwiLDYsXCJcdUJCQjVcdUJCQjZcdUJCQjhcIiw3LFwiXHVCQkMxXHVCQkMyXHVCQkMzXHVCQkM1XHVCQkM2XHVCQkM3XHVCQkM5XCIsNixcIlx1QkJEMVx1QkJEMlx1QkJENFwiLDM1LFwiXHVCQkZBXHVCQkZCXHVCQkZEXHVCQkZFXHVCQzAxXCJdLFxuW1wiOTM0MVwiLFwiXHVCQzAzXCIsNCxcIlx1QkMwQVx1QkMwRVx1QkMxMFx1QkMxMlx1QkMxM1x1QkMxOVx1QkMxQVx1QkMyMFx1QkMyMVx1QkMyMlx1QkMyM1x1QkMyNlx1QkMyOFx1QkMyQVx1QkMyQlx1QkMyQ1x1QkMyRVx1QkMyRlx1QkMzMlx1QkMzM1x1QkMzNVwiXSxcbltcIjkzNjFcIixcIlx1QkMzNlx1QkMzN1x1QkMzOVwiLDYsXCJcdUJDNDJcdUJDNDZcdUJDNDdcdUJDNDhcdUJDNEFcdUJDNEJcdUJDNEVcdUJDNEZcdUJDNTFcIiw4XSxcbltcIjkzODFcIixcIlx1QkM1QVx1QkM1Qlx1QkM1Q1x1QkM1RVwiLDM3LFwiXHVCQzg2XHVCQzg3XHVCQzg5XHVCQzhBXHVCQzhEXHVCQzhGXCIsNCxcIlx1QkM5Nlx1QkM5OFx1QkM5QlwiLDQsXCJcdUJDQTJcdUJDQTNcdUJDQTVcdUJDQTZcdUJDQTlcIiw2LFwiXHVCQ0IyXHVCQ0I2XCIsNSxcIlx1QkNCRVx1QkNCRlx1QkNDMVx1QkNDMlx1QkNDM1x1QkNDNVwiLDcsXCJcdUJDQ0VcdUJDRDJcdUJDRDNcdUJDRDRcdUJDRDZcdUJDRDdcdUJDRDlcdUJDREFcdUJDREJcdUJDRERcIiwyMixcIlx1QkNGN1x1QkNGOVx1QkNGQVx1QkNGQlx1QkNGRFwiXSxcbltcIjk0NDFcIixcIlx1QkNGRVwiLDUsXCJcdUJEMDZcdUJEMDhcdUJEMEFcIiw1LFwiXHVCRDExXHVCRDEyXHVCRDEzXHVCRDE1XCIsOF0sXG5bXCI5NDYxXCIsXCJcdUJEMUVcIiw1LFwiXHVCRDI1XCIsNixcIlx1QkQyRFwiLDEyXSxcbltcIjk0ODFcIixcIlx1QkQzQVwiLDUsXCJcdUJENDFcIiw2LFwiXHVCRDRBXHVCRDRCXHVCRDREXHVCRDRFXHVCRDRGXHVCRDUxXCIsNixcIlx1QkQ1QVwiLDksXCJcdUJENjVcdUJENjZcdUJENjdcdUJENjlcIiwyMixcIlx1QkQ4Mlx1QkQ4M1x1QkQ4NVx1QkQ4Nlx1QkQ4QlwiLDQsXCJcdUJEOTJcdUJEOTRcdUJEOTZcdUJEOTdcdUJEOThcdUJEOUJcdUJEOURcIiw2LFwiXHVCREE1XCIsMTAsXCJcdUJEQjFcIiw2LFwiXHVCREI5XCIsMjRdLFxuW1wiOTU0MVwiLFwiXHVCREQyXHVCREQzXHVCREQ2XHVCREQ3XHVCREQ5XHVCRERBXHVCRERCXHVCREREXCIsMTEsXCJcdUJERUFcIiw1LFwiXHVCREYxXCJdLFxuW1wiOTU2MVwiLFwiXHVCREYyXHVCREYzXHVCREY1XHVCREY2XHVCREY3XHVCREY5XCIsNixcIlx1QkUwMVx1QkUwMlx1QkUwNFx1QkUwNlwiLDUsXCJcdUJFMEVcdUJFMEZcdUJFMTFcdUJFMTJcdUJFMTNcIl0sXG5bXCI5NTgxXCIsXCJcdUJFMTVcIiw2LFwiXHVCRTFFXHVCRTIwXCIsMzUsXCJcdUJFNDZcdUJFNDdcdUJFNDlcdUJFNEFcdUJFNEJcdUJFNERcdUJFNEZcIiw0LFwiXHVCRTU2XHVCRTU4XHVCRTVDXHVCRTVEXHVCRTVFXHVCRTVGXHVCRTYyXHVCRTYzXHVCRTY1XHVCRTY2XHVCRTY3XHVCRTY5XHVCRTZCXCIsNCxcIlx1QkU3Mlx1QkU3NlwiLDQsXCJcdUJFN0VcdUJFN0ZcdUJFODFcdUJFODJcdUJFODNcdUJFODVcIiw2LFwiXHVCRThFXHVCRTkyXCIsNSxcIlx1QkU5QVwiLDEzLFwiXHVCRUE5XCIsMTRdLFxuW1wiOTY0MVwiLFwiXHVCRUI4XCIsMjMsXCJcdUJFRDJcdUJFRDNcIl0sXG5bXCI5NjYxXCIsXCJcdUJFRDVcdUJFRDZcdUJFRDlcIiw2LFwiXHVCRUUxXHVCRUUyXHVCRUU2XCIsNSxcIlx1QkVFRFwiLDhdLFxuW1wiOTY4MVwiLFwiXHVCRUY2XCIsMTAsXCJcdUJGMDJcIiw1LFwiXHVCRjBBXCIsMTMsXCJcdUJGMUFcdUJGMUVcIiwzMyxcIlx1QkY0Mlx1QkY0M1x1QkY0NVx1QkY0Nlx1QkY0N1x1QkY0OVwiLDYsXCJcdUJGNTJcdUJGNTNcdUJGNTRcdUJGNTZcIiw0NF0sXG5bXCI5NzQxXCIsXCJcdUJGODNcIiwxNixcIlx1QkY5NVwiLDhdLFxuW1wiOTc2MVwiLFwiXHVCRjlFXCIsMTcsXCJcdUJGQjFcIiw3XSxcbltcIjk3ODFcIixcIlx1QkZCOVwiLDExLFwiXHVCRkM2XCIsNSxcIlx1QkZDRVx1QkZDRlx1QkZEMVx1QkZEMlx1QkZEM1x1QkZENVwiLDYsXCJcdUJGRERcdUJGREVcdUJGRTBcdUJGRTJcIiw4OSxcIlx1QzAzRFx1QzAzRVx1QzAzRlwiXSxcbltcIjk4NDFcIixcIlx1QzA0MFwiLDE2LFwiXHVDMDUyXCIsNSxcIlx1QzA1OVx1QzA1QVx1QzA1QlwiXSxcbltcIjk4NjFcIixcIlx1QzA1RFx1QzA1RVx1QzA1Rlx1QzA2MVwiLDYsXCJcdUMwNkFcIiwxNV0sXG5bXCI5ODgxXCIsXCJcdUMwN0FcIiwyMSxcIlx1QzA5Mlx1QzA5M1x1QzA5NVx1QzA5Nlx1QzA5N1x1QzA5OVwiLDYsXCJcdUMwQTJcdUMwQTRcdUMwQTZcIiw1LFwiXHVDMEFFXHVDMEIxXHVDMEIyXHVDMEI3XCIsNCxcIlx1QzBCRVx1QzBDMlx1QzBDM1x1QzBDNFx1QzBDNlx1QzBDN1x1QzBDQVx1QzBDQlx1QzBDRFx1QzBDRVx1QzBDRlx1QzBEMVwiLDYsXCJcdUMwREFcdUMwREVcIiw1LFwiXHVDMEU2XHVDMEU3XHVDMEU5XHVDMEVBXHVDMEVCXHVDMEVEXCIsNixcIlx1QzBGNlx1QzBGOFx1QzBGQVwiLDUsXCJcdUMxMDFcdUMxMDJcdUMxMDNcdUMxMDVcdUMxMDZcdUMxMDdcdUMxMDlcIiw2LFwiXHVDMTExXHVDMTEyXHVDMTEzXHVDMTE0XHVDMTE2XCIsNSxcIlx1QzEyMVx1QzEyMlx1QzEyNVx1QzEyOFx1QzEyOVx1QzEyQVx1QzEyQlx1QzEyRVwiXSxcbltcIjk5NDFcIixcIlx1QzEzMlx1QzEzM1x1QzEzNFx1QzEzNVx1QzEzN1x1QzEzQVx1QzEzQlx1QzEzRFx1QzEzRVx1QzEzRlx1QzE0MVwiLDYsXCJcdUMxNEFcdUMxNEVcIiw1LFwiXHVDMTU2XHVDMTU3XCJdLFxuW1wiOTk2MVwiLFwiXHVDMTU5XHVDMTVBXHVDMTVCXHVDMTVEXCIsNixcIlx1QzE2Nlx1QzE2QVwiLDUsXCJcdUMxNzFcdUMxNzJcdUMxNzNcdUMxNzVcdUMxNzZcdUMxNzdcdUMxNzlcdUMxN0FcdUMxN0JcIl0sXG5bXCI5OTgxXCIsXCJcdUMxN0NcIiw4LFwiXHVDMTg2XCIsNSxcIlx1QzE4Rlx1QzE5MVx1QzE5Mlx1QzE5M1x1QzE5NVx1QzE5N1wiLDQsXCJcdUMxOUVcdUMxQTBcdUMxQTJcdUMxQTNcdUMxQTRcdUMxQTZcdUMxQTdcdUMxQUFcdUMxQUJcdUMxQURcdUMxQUVcdUMxQUZcdUMxQjFcIiwxMSxcIlx1QzFCRVwiLDUsXCJcdUMxQzVcdUMxQzZcdUMxQzdcdUMxQzlcdUMxQ0FcdUMxQ0JcdUMxQ0RcIiw2LFwiXHVDMUQ1XHVDMUQ2XHVDMUQ5XCIsNixcIlx1QzFFMVx1QzFFMlx1QzFFM1x1QzFFNVx1QzFFNlx1QzFFN1x1QzFFOVwiLDYsXCJcdUMxRjJcdUMxRjRcIiw3LFwiXHVDMUZFXHVDMUZGXHVDMjAxXHVDMjAyXHVDMjAzXHVDMjA1XCIsNixcIlx1QzIwRVx1QzIxMFx1QzIxMlwiLDUsXCJcdUMyMUFcdUMyMUJcdUMyMURcdUMyMUVcdUMyMjFcdUMyMjJcdUMyMjNcIl0sXG5bXCI5YTQxXCIsXCJcdUMyMjRcdUMyMjVcdUMyMjZcdUMyMjdcdUMyMkFcdUMyMkNcdUMyMkVcdUMyMzBcdUMyMzNcdUMyMzVcIiwxNl0sXG5bXCI5YTYxXCIsXCJcdUMyNDZcdUMyNDdcdUMyNDlcIiw2LFwiXHVDMjUyXHVDMjUzXHVDMjU1XHVDMjU2XHVDMjU3XHVDMjU5XCIsNixcIlx1QzI2MVx1QzI2Mlx1QzI2M1x1QzI2NFx1QzI2NlwiXSxcbltcIjlhODFcIixcIlx1QzI2N1wiLDQsXCJcdUMyNkVcdUMyNkZcdUMyNzFcdUMyNzJcdUMyNzNcdUMyNzVcIiw2LFwiXHVDMjdFXHVDMjgwXHVDMjgyXCIsNSxcIlx1QzI4QVwiLDUsXCJcdUMyOTFcIiw2LFwiXHVDMjk5XHVDMjlBXHVDMjlDXHVDMjlFXCIsNSxcIlx1QzJBNlx1QzJBN1x1QzJBOVx1QzJBQVx1QzJBQlx1QzJBRVwiLDUsXCJcdUMyQjZcdUMyQjhcdUMyQkFcIiwzMyxcIlx1QzJERVx1QzJERlx1QzJFMVx1QzJFMlx1QzJFNVwiLDUsXCJcdUMyRUVcdUMyRjBcdUMyRjJcdUMyRjNcdUMyRjRcdUMyRjVcdUMyRjdcdUMyRkFcdUMyRkRcdUMyRkVcdUMyRkZcdUMzMDFcIiw2LFwiXHVDMzBBXHVDMzBCXHVDMzBFXHVDMzBGXCJdLFxuW1wiOWI0MVwiLFwiXHVDMzEwXHVDMzExXHVDMzEyXHVDMzE2XHVDMzE3XHVDMzE5XHVDMzFBXHVDMzFCXHVDMzFEXCIsNixcIlx1QzMyNlx1QzMyN1x1QzMyQVwiLDhdLFxuW1wiOWI2MVwiLFwiXHVDMzMzXCIsMTcsXCJcdUMzNDZcIiw3XSxcbltcIjliODFcIixcIlx1QzM0RVwiLDI1LFwiXHVDMzZBXHVDMzZCXHVDMzZEXHVDMzZFXHVDMzZGXHVDMzcxXHVDMzczXCIsNCxcIlx1QzM3QVx1QzM3Qlx1QzM3RVwiLDUsXCJcdUMzODVcdUMzODZcdUMzODdcdUMzODlcdUMzOEFcdUMzOEJcdUMzOERcIiw1MCxcIlx1QzNDMVwiLDIyLFwiXHVDM0RBXCJdLFxuW1wiOWM0MVwiLFwiXHVDM0RCXHVDM0REXHVDM0RFXHVDM0UxXHVDM0UzXCIsNCxcIlx1QzNFQVx1QzNFQlx1QzNFQ1x1QzNFRVwiLDUsXCJcdUMzRjZcdUMzRjdcdUMzRjlcIiw1XSxcbltcIjljNjFcIixcIlx1QzNGRlwiLDgsXCJcdUM0MDlcIiw2LFwiXHVDNDExXCIsOV0sXG5bXCI5YzgxXCIsXCJcdUM0MUJcIiw4LFwiXHVDNDI1XCIsNixcIlx1QzQyRFx1QzQyRVx1QzQyRlx1QzQzMVx1QzQzMlx1QzQzM1x1QzQzNVwiLDYsXCJcdUM0M0VcIiw5LFwiXHVDNDQ5XCIsMjYsXCJcdUM0NjZcdUM0NjdcdUM0NjlcdUM0NkFcdUM0NkJcdUM0NkRcIiw2LFwiXHVDNDc2XHVDNDc3XHVDNDc4XHVDNDdBXCIsNSxcIlx1QzQ4MVwiLDE4LFwiXHVDNDk1XCIsNixcIlx1QzQ5RFwiLDEyXSxcbltcIjlkNDFcIixcIlx1QzRBQVwiLDEzLFwiXHVDNEI5XHVDNEJBXHVDNEJCXHVDNEJEXCIsOF0sXG5bXCI5ZDYxXCIsXCJcdUM0QzZcIiwyNV0sXG5bXCI5ZDgxXCIsXCJcdUM0RTBcIiw4LFwiXHVDNEVBXCIsNSxcIlx1QzRGMlx1QzRGM1x1QzRGNVx1QzRGNlx1QzRGN1x1QzRGOVx1QzRGQlx1QzRGQ1x1QzRGRFx1QzRGRVx1QzUwMlwiLDksXCJcdUM1MERcdUM1MEVcdUM1MEZcdUM1MTFcdUM1MTJcdUM1MTNcdUM1MTVcIiw2LFwiXHVDNTFEXCIsMTAsXCJcdUM1MkFcdUM1MkJcdUM1MkRcdUM1MkVcdUM1MkZcdUM1MzFcIiw2LFwiXHVDNTNBXHVDNTNDXHVDNTNFXCIsNSxcIlx1QzU0Nlx1QzU0N1x1QzU0Qlx1QzU0Rlx1QzU1MFx1QzU1MVx1QzU1Mlx1QzU1Nlx1QzU1QVx1QzU1Qlx1QzU1Q1x1QzU1Rlx1QzU2Mlx1QzU2M1x1QzU2NVx1QzU2Nlx1QzU2N1x1QzU2OVwiLDYsXCJcdUM1NzJcdUM1NzZcIiw1LFwiXHVDNTdFXHVDNTdGXHVDNTgxXHVDNTgyXHVDNTgzXHVDNTg1XHVDNTg2XHVDNTg4XHVDNTg5XHVDNThBXHVDNThCXHVDNThFXHVDNTkwXHVDNTkyXHVDNTkzXHVDNTk0XCJdLFxuW1wiOWU0MVwiLFwiXHVDNTk2XHVDNTk5XHVDNTlBXHVDNTlCXHVDNTlEXHVDNTlFXHVDNTlGXHVDNUExXCIsNyxcIlx1QzVBQVwiLDksXCJcdUM1QjZcIl0sXG5bXCI5ZTYxXCIsXCJcdUM1QjdcdUM1QkFcdUM1QkZcIiw0LFwiXHVDNUNCXHVDNUNEXHVDNUNGXHVDNUQyXHVDNUQzXHVDNUQ1XHVDNUQ2XHVDNUQ3XHVDNUQ5XCIsNixcIlx1QzVFMlx1QzVFNFx1QzVFNlx1QzVFN1wiXSxcbltcIjllODFcIixcIlx1QzVFOFx1QzVFOVx1QzVFQVx1QzVFQlx1QzVFRlx1QzVGMVx1QzVGMlx1QzVGM1x1QzVGNVx1QzVGOFx1QzVGOVx1QzVGQVx1QzVGQlx1QzYwMlx1QzYwM1x1QzYwNFx1QzYwOVx1QzYwQVx1QzYwQlx1QzYwRFx1QzYwRVx1QzYwRlx1QzYxMVwiLDYsXCJcdUM2MUFcdUM2MURcIiw2LFwiXHVDNjI2XHVDNjI3XHVDNjI5XHVDNjJBXHVDNjJCXHVDNjJGXHVDNjMxXHVDNjMyXHVDNjM2XHVDNjM4XHVDNjNBXHVDNjNDXHVDNjNEXHVDNjNFXHVDNjNGXHVDNjQyXHVDNjQzXHVDNjQ1XHVDNjQ2XHVDNjQ3XHVDNjQ5XCIsNixcIlx1QzY1Mlx1QzY1NlwiLDUsXCJcdUM2NUVcdUM2NUZcdUM2NjFcIiwxMCxcIlx1QzY2RFx1QzY2RVx1QzY3MFx1QzY3MlwiLDUsXCJcdUM2N0FcdUM2N0JcdUM2N0RcdUM2N0VcdUM2N0ZcdUM2ODFcIiw2LFwiXHVDNjhBXHVDNjhDXHVDNjhFXCIsNSxcIlx1QzY5Nlx1QzY5N1x1QzY5OVx1QzY5QVx1QzY5Qlx1QzY5RFwiLDYsXCJcdUM2QTZcIl0sXG5bXCI5ZjQxXCIsXCJcdUM2QThcdUM2QUFcIiw1LFwiXHVDNkIyXHVDNkIzXHVDNkI1XHVDNkI2XHVDNkI3XHVDNkJCXCIsNCxcIlx1QzZDMlx1QzZDNFx1QzZDNlwiLDUsXCJcdUM2Q0VcIl0sXG5bXCI5ZjYxXCIsXCJcdUM2Q0ZcdUM2RDFcdUM2RDJcdUM2RDNcdUM2RDVcIiw2LFwiXHVDNkRFXHVDNkRGXHVDNkUyXCIsNSxcIlx1QzZFQVx1QzZFQlx1QzZFRFx1QzZFRVx1QzZFRlx1QzZGMVx1QzZGMlwiXSxcbltcIjlmODFcIixcIlx1QzZGM1wiLDQsXCJcdUM2RkFcdUM2RkJcdUM2RkNcdUM2RkVcIiw1LFwiXHVDNzA2XHVDNzA3XHVDNzA5XHVDNzBBXHVDNzBCXHVDNzBEXCIsNixcIlx1QzcxNlx1QzcxOFx1QzcxQVwiLDUsXCJcdUM3MjJcdUM3MjNcdUM3MjVcdUM3MjZcdUM3MjdcdUM3MjlcIiw2LFwiXHVDNzMyXHVDNzM0XHVDNzM2XHVDNzM4XHVDNzM5XHVDNzNBXHVDNzNCXHVDNzNFXHVDNzNGXHVDNzQxXHVDNzQyXHVDNzQzXHVDNzQ1XCIsNCxcIlx1Qzc0Qlx1Qzc0RVx1Qzc1MFx1Qzc1OVx1Qzc1QVx1Qzc1Qlx1Qzc1RFx1Qzc1RVx1Qzc1Rlx1Qzc2MVwiLDYsXCJcdUM3NjlcdUM3NkFcdUM3NkNcIiw3LFwiXHVDNzc2XHVDNzc3XHVDNzc5XHVDNzdBXHVDNzdCXHVDNzdGXHVDNzgwXHVDNzgxXHVDNzgyXHVDNzg2XHVDNzhCXHVDNzhDXHVDNzhEXHVDNzhGXHVDNzkyXHVDNzkzXHVDNzk1XHVDNzk5XHVDNzlCXCIsNCxcIlx1QzdBMlx1QzdBN1wiLDQsXCJcdUM3QUVcdUM3QUZcdUM3QjFcdUM3QjJcdUM3QjNcdUM3QjVcdUM3QjZcdUM3QjdcIl0sXG5bXCJhMDQxXCIsXCJcdUM3QjhcdUM3QjlcdUM3QkFcdUM3QkJcdUM3QkVcdUM3QzJcIiw1LFwiXHVDN0NBXHVDN0NCXHVDN0NEXHVDN0NGXHVDN0QxXCIsNixcIlx1QzdEOVx1QzdEQVx1QzdEQlx1QzdEQ1wiXSxcbltcImEwNjFcIixcIlx1QzdERVwiLDUsXCJcdUM3RTVcdUM3RTZcdUM3RTdcdUM3RTlcdUM3RUFcdUM3RUJcdUM3RURcIiwxM10sXG5bXCJhMDgxXCIsXCJcdUM3RkJcIiw0LFwiXHVDODAyXHVDODAzXHVDODA1XHVDODA2XHVDODA3XHVDODA5XHVDODBCXCIsNCxcIlx1QzgxMlx1QzgxNFx1QzgxN1wiLDQsXCJcdUM4MUVcdUM4MUZcdUM4MjFcdUM4MjJcdUM4MjNcdUM4MjVcIiw2LFwiXHVDODJFXHVDODMwXHVDODMyXCIsNSxcIlx1QzgzOVx1QzgzQVx1QzgzQlx1QzgzRFx1QzgzRVx1QzgzRlx1Qzg0MVwiLDYsXCJcdUM4NEFcdUM4NEJcdUM4NEVcIiw1LFwiXHVDODU1XCIsMjYsXCJcdUM4NzJcdUM4NzNcdUM4NzVcdUM4NzZcdUM4NzdcdUM4NzlcdUM4N0JcIiw0LFwiXHVDODgyXHVDODg0XHVDODg4XHVDODg5XHVDODhBXHVDODhFXCIsNSxcIlx1Qzg5NVwiLDcsXCJcdUM4OUVcdUM4QTBcdUM4QTJcdUM4QTNcdUM4QTRcIl0sXG5bXCJhMTQxXCIsXCJcdUM4QTVcdUM4QTZcdUM4QTdcdUM4QTlcIiwxOCxcIlx1QzhCRVx1QzhCRlx1QzhDMFx1QzhDMVwiXSxcbltcImExNjFcIixcIlx1QzhDMlx1QzhDM1x1QzhDNVx1QzhDNlx1QzhDN1x1QzhDOVx1QzhDQVx1QzhDQlx1QzhDRFwiLDYsXCJcdUM4RDZcdUM4RDhcdUM4REFcIiw1LFwiXHVDOEUyXHVDOEUzXHVDOEU1XCJdLFxuW1wiYTE4MVwiLFwiXHVDOEU2XCIsMTQsXCJcdUM4RjZcIiw1LFwiXHVDOEZFXHVDOEZGXHVDOTAxXHVDOTAyXHVDOTAzXHVDOTA3XCIsNCxcIlx1QzkwRVx1MzAwMFx1MzAwMVx1MzAwMlx1MDBCN1x1MjAyNVx1MjAyNlx1MDBBOFx1MzAwM1x1MDBBRFx1MjAxNVx1MjIyNVx1RkYzQ1x1MjIzQ1x1MjAxOFx1MjAxOVx1MjAxQ1x1MjAxRFx1MzAxNFx1MzAxNVx1MzAwOFwiLDksXCJcdTAwQjFcdTAwRDdcdTAwRjdcdTIyNjBcdTIyNjRcdTIyNjVcdTIyMUVcdTIyMzRcdTAwQjBcdTIwMzJcdTIwMzNcdTIxMDNcdTIxMkJcdUZGRTBcdUZGRTFcdUZGRTVcdTI2NDJcdTI2NDBcdTIyMjBcdTIyQTVcdTIzMTJcdTIyMDJcdTIyMDdcdTIyNjFcdTIyNTJcdTAwQTdcdTIwM0JcdTI2MDZcdTI2MDVcdTI1Q0JcdTI1Q0ZcdTI1Q0VcdTI1QzdcdTI1QzZcdTI1QTFcdTI1QTBcdTI1QjNcdTI1QjJcdTI1QkRcdTI1QkNcdTIxOTJcdTIxOTBcdTIxOTFcdTIxOTNcdTIxOTRcdTMwMTNcdTIyNkFcdTIyNkJcdTIyMUFcdTIyM0RcdTIyMURcdTIyMzVcdTIyMkJcdTIyMkNcdTIyMDhcdTIyMEJcdTIyODZcdTIyODdcdTIyODJcdTIyODNcdTIyMkFcdTIyMjlcdTIyMjdcdTIyMjhcdUZGRTJcIl0sXG5bXCJhMjQxXCIsXCJcdUM5MTBcdUM5MTJcIiw1LFwiXHVDOTE5XCIsMThdLFxuW1wiYTI2MVwiLFwiXHVDOTJEXCIsNixcIlx1QzkzNVwiLDE4XSxcbltcImEyODFcIixcIlx1Qzk0OFwiLDcsXCJcdUM5NTJcdUM5NTNcdUM5NTVcdUM5NTZcdUM5NTdcdUM5NTlcIiw2LFwiXHVDOTYyXHVDOTY0XCIsNyxcIlx1Qzk2RFx1Qzk2RVx1Qzk2Rlx1MjFEMlx1MjFENFx1MjIwMFx1MjIwM1x1MDBCNFx1RkY1RVx1MDJDN1x1MDJEOFx1MDJERFx1MDJEQVx1MDJEOVx1MDBCOFx1MDJEQlx1MDBBMVx1MDBCRlx1MDJEMFx1MjIyRVx1MjIxMVx1MjIwRlx1MDBBNFx1MjEwOVx1MjAzMFx1MjVDMVx1MjVDMFx1MjVCN1x1MjVCNlx1MjY2NFx1MjY2MFx1MjY2MVx1MjY2NVx1MjY2N1x1MjY2M1x1MjI5OVx1MjVDOFx1MjVBM1x1MjVEMFx1MjVEMVx1MjU5Mlx1MjVBNFx1MjVBNVx1MjVBOFx1MjVBN1x1MjVBNlx1MjVBOVx1MjY2OFx1MjYwRlx1MjYwRVx1MjYxQ1x1MjYxRVx1MDBCNlx1MjAyMFx1MjAyMVx1MjE5NVx1MjE5N1x1MjE5OVx1MjE5Nlx1MjE5OFx1MjY2RFx1MjY2OVx1MjY2QVx1MjY2Q1x1MzI3Rlx1MzIxQ1x1MjExNlx1MzNDN1x1MjEyMlx1MzNDMlx1MzNEOFx1MjEyMVx1MjBBQ1x1MDBBRVwiXSxcbltcImEzNDFcIixcIlx1Qzk3MVx1Qzk3Mlx1Qzk3M1x1Qzk3NVwiLDYsXCJcdUM5N0RcIiwxMCxcIlx1Qzk4QVx1Qzk4Qlx1Qzk4RFx1Qzk4RVx1Qzk4RlwiXSxcbltcImEzNjFcIixcIlx1Qzk5MVwiLDYsXCJcdUM5OUFcdUM5OUNcdUM5OUVcIiwxNl0sXG5bXCJhMzgxXCIsXCJcdUM5QUZcIiwxNixcIlx1QzlDMlx1QzlDM1x1QzlDNVx1QzlDNlx1QzlDOVx1QzlDQlwiLDQsXCJcdUM5RDJcdUM5RDRcdUM5RDdcdUM5RDhcdUM5REJcdUZGMDFcIiw1OCxcIlx1RkZFNlx1RkYzRFwiLDMyLFwiXHVGRkUzXCJdLFxuW1wiYTQ0MVwiLFwiXHVDOURFXHVDOURGXHVDOUUxXHVDOUUzXHVDOUU1XHVDOUU2XHVDOUU4XHVDOUU5XHVDOUVBXHVDOUVCXHVDOUVFXHVDOUYyXCIsNSxcIlx1QzlGQVx1QzlGQlx1QzlGRFx1QzlGRVx1QzlGRlx1Q0EwMVx1Q0EwMlx1Q0EwM1x1Q0EwNFwiXSxcbltcImE0NjFcIixcIlx1Q0EwNVx1Q0EwNlx1Q0EwN1x1Q0EwQVx1Q0EwRVwiLDUsXCJcdUNBMTVcdUNBMTZcdUNBMTdcdUNBMTlcIiwxMl0sXG5bXCJhNDgxXCIsXCJcdUNBMjZcdUNBMjdcdUNBMjhcdUNBMkFcIiwyOCxcIlx1MzEzMVwiLDkzXSxcbltcImE1NDFcIixcIlx1Q0E0N1wiLDQsXCJcdUNBNEVcdUNBNEZcdUNBNTFcdUNBNTJcdUNBNTNcdUNBNTVcIiw2LFwiXHVDQTVFXHVDQTYyXCIsNSxcIlx1Q0E2OVx1Q0E2QVwiXSxcbltcImE1NjFcIixcIlx1Q0E2QlwiLDE3LFwiXHVDQTdFXCIsNSxcIlx1Q0E4NVx1Q0E4NlwiXSxcbltcImE1ODFcIixcIlx1Q0E4N1wiLDE2LFwiXHVDQTk5XCIsMTQsXCJcdTIxNzBcIiw5XSxcbltcImE1YjBcIixcIlx1MjE2MFwiLDldLFxuW1wiYTVjMVwiLFwiXHUwMzkxXCIsMTYsXCJcdTAzQTNcIiw2XSxcbltcImE1ZTFcIixcIlx1MDNCMVwiLDE2LFwiXHUwM0MzXCIsNl0sXG5bXCJhNjQxXCIsXCJcdUNBQThcIiwxOSxcIlx1Q0FCRVx1Q0FCRlx1Q0FDMVx1Q0FDMlx1Q0FDM1x1Q0FDNVwiXSxcbltcImE2NjFcIixcIlx1Q0FDNlwiLDUsXCJcdUNBQ0VcdUNBRDBcdUNBRDJcdUNBRDRcdUNBRDVcdUNBRDZcdUNBRDdcdUNBREFcIiw1LFwiXHVDQUUxXCIsNl0sXG5bXCJhNjgxXCIsXCJcdUNBRThcdUNBRTlcdUNBRUFcdUNBRUJcdUNBRURcIiw2LFwiXHVDQUY1XCIsMTgsXCJcdUNCMDlcdUNCMEFcdTI1MDBcdTI1MDJcdTI1MENcdTI1MTBcdTI1MThcdTI1MTRcdTI1MUNcdTI1MkNcdTI1MjRcdTI1MzRcdTI1M0NcdTI1MDFcdTI1MDNcdTI1MEZcdTI1MTNcdTI1MUJcdTI1MTdcdTI1MjNcdTI1MzNcdTI1MkJcdTI1M0JcdTI1NEJcdTI1MjBcdTI1MkZcdTI1MjhcdTI1MzdcdTI1M0ZcdTI1MURcdTI1MzBcdTI1MjVcdTI1MzhcdTI1NDJcdTI1MTJcdTI1MTFcdTI1MUFcdTI1MTlcdTI1MTZcdTI1MTVcdTI1MEVcdTI1MERcdTI1MUVcdTI1MUZcdTI1MjFcdTI1MjJcdTI1MjZcdTI1MjdcdTI1MjlcdTI1MkFcdTI1MkRcdTI1MkVcdTI1MzFcdTI1MzJcdTI1MzVcdTI1MzZcdTI1MzlcdTI1M0FcdTI1M0RcdTI1M0VcdTI1NDBcdTI1NDFcdTI1NDNcIiw3XSxcbltcImE3NDFcIixcIlx1Q0IwQlwiLDQsXCJcdUNCMTFcdUNCMTJcdUNCMTNcdUNCMTVcdUNCMTZcdUNCMTdcdUNCMTlcIiw2LFwiXHVDQjIyXCIsN10sXG5bXCJhNzYxXCIsXCJcdUNCMkFcIiwyMixcIlx1Q0I0Mlx1Q0I0M1x1Q0I0NFwiXSxcbltcImE3ODFcIixcIlx1Q0I0NVx1Q0I0Nlx1Q0I0N1x1Q0I0QVx1Q0I0Qlx1Q0I0RFx1Q0I0RVx1Q0I0Rlx1Q0I1MVwiLDYsXCJcdUNCNUFcdUNCNUJcdUNCNUNcdUNCNUVcIiw1LFwiXHVDQjY1XCIsNyxcIlx1MzM5NVx1MzM5Nlx1MzM5N1x1MjExM1x1MzM5OFx1MzNDNFx1MzNBM1x1MzNBNFx1MzNBNVx1MzNBNlx1MzM5OVwiLDksXCJcdTMzQ0FcdTMzOERcdTMzOEVcdTMzOEZcdTMzQ0ZcdTMzODhcdTMzODlcdTMzQzhcdTMzQTdcdTMzQThcdTMzQjBcIiw5LFwiXHUzMzgwXCIsNCxcIlx1MzNCQVwiLDUsXCJcdTMzOTBcIiw0LFwiXHUyMTI2XHUzM0MwXHUzM0MxXHUzMzhBXHUzMzhCXHUzMzhDXHUzM0Q2XHUzM0M1XHUzM0FEXHUzM0FFXHUzM0FGXHUzM0RCXHUzM0E5XHUzM0FBXHUzM0FCXHUzM0FDXHUzM0REXHUzM0QwXHUzM0QzXHUzM0MzXHUzM0M5XHUzM0RDXHUzM0M2XCJdLFxuW1wiYTg0MVwiLFwiXHVDQjZEXCIsMTAsXCJcdUNCN0FcIiwxNF0sXG5bXCJhODYxXCIsXCJcdUNCODlcIiwxOCxcIlx1Q0I5RFwiLDZdLFxuW1wiYTg4MVwiLFwiXHVDQkE0XCIsMTksXCJcdUNCQjlcIiwxMSxcIlx1MDBDNlx1MDBEMFx1MDBBQVx1MDEyNlwiXSxcbltcImE4YTZcIixcIlx1MDEzMlwiXSxcbltcImE4YThcIixcIlx1MDEzRlx1MDE0MVx1MDBEOFx1MDE1Mlx1MDBCQVx1MDBERVx1MDE2Nlx1MDE0QVwiXSxcbltcImE4YjFcIixcIlx1MzI2MFwiLDI3LFwiXHUyNEQwXCIsMjUsXCJcdTI0NjBcIiwxNCxcIlx1MDBCRFx1MjE1M1x1MjE1NFx1MDBCQ1x1MDBCRVx1MjE1Qlx1MjE1Q1x1MjE1RFx1MjE1RVwiXSxcbltcImE5NDFcIixcIlx1Q0JDNVwiLDE0LFwiXHVDQkQ1XCIsMTBdLFxuW1wiYTk2MVwiLFwiXHVDQkUwXHVDQkUxXHVDQkUyXHVDQkUzXHVDQkU1XHVDQkU2XHVDQkU4XHVDQkVBXCIsMThdLFxuW1wiYTk4MVwiLFwiXHVDQkZEXCIsMTQsXCJcdUNDMEVcdUNDMEZcdUNDMTFcdUNDMTJcdUNDMTNcdUNDMTVcIiw2LFwiXHVDQzFFXHVDQzFGXHVDQzIwXHVDQzIzXHVDQzI0XHUwMEU2XHUwMTExXHUwMEYwXHUwMTI3XHUwMTMxXHUwMTMzXHUwMTM4XHUwMTQwXHUwMTQyXHUwMEY4XHUwMTUzXHUwMERGXHUwMEZFXHUwMTY3XHUwMTRCXHUwMTQ5XHUzMjAwXCIsMjcsXCJcdTI0OUNcIiwyNSxcIlx1MjQ3NFwiLDE0LFwiXHUwMEI5XHUwMEIyXHUwMEIzXHUyMDc0XHUyMDdGXHUyMDgxXHUyMDgyXHUyMDgzXHUyMDg0XCJdLFxuW1wiYWE0MVwiLFwiXHVDQzI1XHVDQzI2XHVDQzJBXHVDQzJCXHVDQzJEXHVDQzJGXHVDQzMxXCIsNixcIlx1Q0MzQVx1Q0MzRlwiLDQsXCJcdUNDNDZcdUNDNDdcdUNDNDlcdUNDNEFcdUNDNEJcdUNDNERcdUNDNEVcIl0sXG5bXCJhYTYxXCIsXCJcdUNDNEZcIiw0LFwiXHVDQzU2XHVDQzVBXCIsNSxcIlx1Q0M2MVx1Q0M2Mlx1Q0M2M1x1Q0M2NVx1Q0M2N1x1Q0M2OVwiLDYsXCJcdUNDNzFcdUNDNzJcIl0sXG5bXCJhYTgxXCIsXCJcdUNDNzNcdUNDNzRcdUNDNzZcIiwyOSxcIlx1MzA0MVwiLDgyXSxcbltcImFiNDFcIixcIlx1Q0M5NFx1Q0M5NVx1Q0M5Nlx1Q0M5N1x1Q0M5QVx1Q0M5Qlx1Q0M5RFx1Q0M5RVx1Q0M5Rlx1Q0NBMVwiLDYsXCJcdUNDQUFcdUNDQUVcIiw1LFwiXHVDQ0I2XHVDQ0I3XHVDQ0I5XCJdLFxuW1wiYWI2MVwiLFwiXHVDQ0JBXHVDQ0JCXHVDQ0JEXCIsNixcIlx1Q0NDNlx1Q0NDOFx1Q0NDQVwiLDUsXCJcdUNDRDFcdUNDRDJcdUNDRDNcdUNDRDVcIiw1XSxcbltcImFiODFcIixcIlx1Q0NEQlwiLDgsXCJcdUNDRTVcIiw2LFwiXHVDQ0VEXHVDQ0VFXHVDQ0VGXHVDQ0YxXCIsMTIsXCJcdTMwQTFcIiw4NV0sXG5bXCJhYzQxXCIsXCJcdUNDRkVcdUNDRkZcdUNEMDBcdUNEMDJcIiw1LFwiXHVDRDBBXHVDRDBCXHVDRDBEXHVDRDBFXHVDRDBGXHVDRDExXCIsNixcIlx1Q0QxQVx1Q0QxQ1x1Q0QxRVx1Q0QxRlx1Q0QyMFwiXSxcbltcImFjNjFcIixcIlx1Q0QyMVx1Q0QyMlx1Q0QyM1x1Q0QyNVx1Q0QyNlx1Q0QyN1x1Q0QyOVx1Q0QyQVx1Q0QyQlx1Q0QyRFwiLDExLFwiXHVDRDNBXCIsNF0sXG5bXCJhYzgxXCIsXCJcdUNEM0ZcIiwyOCxcIlx1Q0Q1RFx1Q0Q1RVx1Q0Q1Rlx1MDQxMFwiLDUsXCJcdTA0MDFcdTA0MTZcIiwyNV0sXG5bXCJhY2QxXCIsXCJcdTA0MzBcIiw1LFwiXHUwNDUxXHUwNDM2XCIsMjVdLFxuW1wiYWQ0MVwiLFwiXHVDRDYxXHVDRDYyXHVDRDYzXHVDRDY1XCIsNixcIlx1Q0Q2RVx1Q0Q3MFx1Q0Q3MlwiLDUsXCJcdUNENzlcIiw3XSxcbltcImFkNjFcIixcIlx1Q0Q4MVwiLDYsXCJcdUNEODlcIiwxMCxcIlx1Q0Q5Nlx1Q0Q5N1x1Q0Q5OVx1Q0Q5QVx1Q0Q5Qlx1Q0Q5RFx1Q0Q5RVx1Q0Q5RlwiXSxcbltcImFkODFcIixcIlx1Q0RBMFx1Q0RBMVx1Q0RBMlx1Q0RBM1x1Q0RBNlx1Q0RBOFx1Q0RBQVwiLDUsXCJcdUNEQjFcIiwxOCxcIlx1Q0RDNVwiXSxcbltcImFlNDFcIixcIlx1Q0RDNlwiLDUsXCJcdUNEQ0RcdUNEQ0VcdUNEQ0ZcdUNERDFcIiwxNl0sXG5bXCJhZTYxXCIsXCJcdUNERTJcIiw1LFwiXHVDREU5XHVDREVBXHVDREVCXHVDREVEXHVDREVFXHVDREVGXHVDREYxXCIsNixcIlx1Q0RGQVx1Q0RGQ1x1Q0RGRVwiLDRdLFxuW1wiYWU4MVwiLFwiXHVDRTAzXHVDRTA1XHVDRTA2XHVDRTA3XHVDRTA5XHVDRTBBXHVDRTBCXHVDRTBEXCIsNixcIlx1Q0UxNVx1Q0UxNlx1Q0UxN1x1Q0UxOFx1Q0UxQVwiLDUsXCJcdUNFMjJcdUNFMjNcdUNFMjVcdUNFMjZcdUNFMjdcdUNFMjlcdUNFMkFcdUNFMkJcIl0sXG5bXCJhZjQxXCIsXCJcdUNFMkNcdUNFMkRcdUNFMkVcdUNFMkZcdUNFMzJcdUNFMzRcdUNFMzZcIiwxOV0sXG5bXCJhZjYxXCIsXCJcdUNFNEFcIiwxMyxcIlx1Q0U1QVx1Q0U1Qlx1Q0U1RFx1Q0U1RVx1Q0U2MlwiLDUsXCJcdUNFNkFcdUNFNkNcIl0sXG5bXCJhZjgxXCIsXCJcdUNFNkVcIiw1LFwiXHVDRTc2XHVDRTc3XHVDRTc5XHVDRTdBXHVDRTdCXHVDRTdEXCIsNixcIlx1Q0U4Nlx1Q0U4OFx1Q0U4QVwiLDUsXCJcdUNFOTJcdUNFOTNcdUNFOTVcdUNFOTZcdUNFOTdcdUNFOTlcIl0sXG5bXCJiMDQxXCIsXCJcdUNFOUFcIiw1LFwiXHVDRUEyXHVDRUE2XCIsNSxcIlx1Q0VBRVwiLDEyXSxcbltcImIwNjFcIixcIlx1Q0VCQlwiLDUsXCJcdUNFQzJcIiwxOV0sXG5bXCJiMDgxXCIsXCJcdUNFRDZcIiwxMyxcIlx1Q0VFNlx1Q0VFN1x1Q0VFOVx1Q0VFQVx1Q0VFRFwiLDYsXCJcdUNFRjZcdUNFRkFcIiw1LFwiXHVBQzAwXHVBQzAxXHVBQzA0XHVBQzA3XHVBQzA4XHVBQzA5XHVBQzBBXHVBQzEwXCIsNyxcIlx1QUMxOVwiLDQsXCJcdUFDMjBcdUFDMjRcdUFDMkNcdUFDMkRcdUFDMkZcdUFDMzBcdUFDMzFcdUFDMzhcdUFDMzlcdUFDM0NcdUFDNDBcdUFDNEJcdUFDNERcdUFDNTRcdUFDNThcdUFDNUNcdUFDNzBcdUFDNzFcdUFDNzRcdUFDNzdcdUFDNzhcdUFDN0FcdUFDODBcdUFDODFcdUFDODNcdUFDODRcdUFDODVcdUFDODZcdUFDODlcdUFDOEFcdUFDOEJcdUFDOENcdUFDOTBcdUFDOTRcdUFDOUNcdUFDOURcdUFDOUZcdUFDQTBcdUFDQTFcdUFDQThcdUFDQTlcdUFDQUFcdUFDQUNcdUFDQUZcdUFDQjBcdUFDQjhcdUFDQjlcdUFDQkJcdUFDQkNcdUFDQkRcdUFDQzFcdUFDQzRcdUFDQzhcdUFDQ0NcdUFDRDVcdUFDRDdcdUFDRTBcdUFDRTFcdUFDRTRcdUFDRTdcdUFDRThcdUFDRUFcdUFDRUNcdUFDRUZcdUFDRjBcdUFDRjFcdUFDRjNcdUFDRjVcdUFDRjZcdUFDRkNcdUFDRkRcdUFEMDBcdUFEMDRcdUFEMDZcIl0sXG5bXCJiMTQxXCIsXCJcdUNGMDJcdUNGMDNcdUNGMDVcdUNGMDZcdUNGMDdcdUNGMDlcIiw2LFwiXHVDRjEyXHVDRjE0XHVDRjE2XCIsNSxcIlx1Q0YxRFx1Q0YxRVx1Q0YxRlx1Q0YyMVx1Q0YyMlx1Q0YyM1wiXSxcbltcImIxNjFcIixcIlx1Q0YyNVwiLDYsXCJcdUNGMkVcdUNGMzJcIiw1LFwiXHVDRjM5XCIsMTFdLFxuW1wiYjE4MVwiLFwiXHVDRjQ1XCIsMTQsXCJcdUNGNTZcdUNGNTdcdUNGNTlcdUNGNUFcdUNGNUJcdUNGNURcIiw2LFwiXHVDRjY2XHVDRjY4XHVDRjZBXHVDRjZCXHVDRjZDXHVBRDBDXHVBRDBEXHVBRDBGXHVBRDExXHVBRDE4XHVBRDFDXHVBRDIwXHVBRDI5XHVBRDJDXHVBRDJEXHVBRDM0XHVBRDM1XHVBRDM4XHVBRDNDXHVBRDQ0XHVBRDQ1XHVBRDQ3XHVBRDQ5XHVBRDUwXHVBRDU0XHVBRDU4XHVBRDYxXHVBRDYzXHVBRDZDXHVBRDZEXHVBRDcwXHVBRDczXHVBRDc0XHVBRDc1XHVBRDc2XHVBRDdCXHVBRDdDXHVBRDdEXHVBRDdGXHVBRDgxXHVBRDgyXHVBRDg4XHVBRDg5XHVBRDhDXHVBRDkwXHVBRDlDXHVBRDlEXHVBREE0XHVBREI3XHVBREMwXHVBREMxXHVBREM0XHVBREM4XHVBREQwXHVBREQxXHVBREQzXHVBRERDXHVBREUwXHVBREU0XHVBREY4XHVBREY5XHVBREZDXHVBREZGXHVBRTAwXHVBRTAxXHVBRTA4XHVBRTA5XHVBRTBCXHVBRTBEXHVBRTE0XHVBRTMwXHVBRTMxXHVBRTM0XHVBRTM3XHVBRTM4XHVBRTNBXHVBRTQwXHVBRTQxXHVBRTQzXHVBRTQ1XHVBRTQ2XHVBRTRBXHVBRTRDXHVBRTREXHVBRTRFXHVBRTUwXHVBRTU0XHVBRTU2XHVBRTVDXHVBRTVEXHVBRTVGXHVBRTYwXHVBRTYxXHVBRTY1XHVBRTY4XHVBRTY5XHVBRTZDXHVBRTcwXHVBRTc4XCJdLFxuW1wiYjI0MVwiLFwiXHVDRjZEXHVDRjZFXHVDRjZGXHVDRjcyXHVDRjczXHVDRjc1XHVDRjc2XHVDRjc3XHVDRjc5XCIsNixcIlx1Q0Y4MVx1Q0Y4Mlx1Q0Y4M1x1Q0Y4NFx1Q0Y4NlwiLDUsXCJcdUNGOERcIl0sXG5bXCJiMjYxXCIsXCJcdUNGOEVcIiwxOCxcIlx1Q0ZBMlwiLDUsXCJcdUNGQTlcIl0sXG5bXCJiMjgxXCIsXCJcdUNGQUFcIiw1LFwiXHVDRkIxXCIsMTgsXCJcdUNGQzVcIiw2LFwiXHVBRTc5XHVBRTdCXHVBRTdDXHVBRTdEXHVBRTg0XHVBRTg1XHVBRThDXHVBRUJDXHVBRUJEXHVBRUJFXHVBRUMwXHVBRUM0XHVBRUNDXHVBRUNEXHVBRUNGXHVBRUQwXHVBRUQxXHVBRUQ4XHVBRUQ5XHVBRURDXHVBRUU4XHVBRUVCXHVBRUVEXHVBRUY0XHVBRUY4XHVBRUZDXHVBRjA3XHVBRjA4XHVBRjBEXHVBRjEwXHVBRjJDXHVBRjJEXHVBRjMwXHVBRjMyXHVBRjM0XHVBRjNDXHVBRjNEXHVBRjNGXHVBRjQxXHVBRjQyXHVBRjQzXHVBRjQ4XHVBRjQ5XHVBRjUwXHVBRjVDXHVBRjVEXHVBRjY0XHVBRjY1XHVBRjc5XHVBRjgwXHVBRjg0XHVBRjg4XHVBRjkwXHVBRjkxXHVBRjk1XHVBRjlDXHVBRkI4XHVBRkI5XHVBRkJDXHVBRkMwXHVBRkM3XHVBRkM4XHVBRkM5XHVBRkNCXHVBRkNEXHVBRkNFXHVBRkQ0XHVBRkRDXHVBRkU4XHVBRkU5XHVBRkYwXHVBRkYxXHVBRkY0XHVBRkY4XHVCMDAwXHVCMDAxXHVCMDA0XHVCMDBDXHVCMDEwXHVCMDE0XHVCMDFDXHVCMDFEXHVCMDI4XHVCMDQ0XHVCMDQ1XHVCMDQ4XHVCMDRBXHVCMDRDXHVCMDRFXHVCMDUzXHVCMDU0XHVCMDU1XHVCMDU3XHVCMDU5XCJdLFxuW1wiYjM0MVwiLFwiXHVDRkNDXCIsMTksXCJcdUNGRTJcdUNGRTNcdUNGRTVcdUNGRTZcdUNGRTdcdUNGRTlcIl0sXG5bXCJiMzYxXCIsXCJcdUNGRUFcIiw1LFwiXHVDRkYyXHVDRkY0XHVDRkY2XCIsNSxcIlx1Q0ZGRFx1Q0ZGRVx1Q0ZGRlx1RDAwMVx1RDAwMlx1RDAwM1x1RDAwNVwiLDVdLFxuW1wiYjM4MVwiLFwiXHVEMDBCXCIsNSxcIlx1RDAxMlwiLDUsXCJcdUQwMTlcIiwxOSxcIlx1QjA1RFx1QjA3Q1x1QjA3RFx1QjA4MFx1QjA4NFx1QjA4Q1x1QjA4RFx1QjA4Rlx1QjA5MVx1QjA5OFx1QjA5OVx1QjA5QVx1QjA5Q1x1QjA5Rlx1QjBBMFx1QjBBMVx1QjBBMlx1QjBBOFx1QjBBOVx1QjBBQlwiLDQsXCJcdUIwQjFcdUIwQjNcdUIwQjRcdUIwQjVcdUIwQjhcdUIwQkNcdUIwQzRcdUIwQzVcdUIwQzdcdUIwQzhcdUIwQzlcdUIwRDBcdUIwRDFcdUIwRDRcdUIwRDhcdUIwRTBcdUIwRTVcdUIxMDhcdUIxMDlcdUIxMEJcdUIxMENcdUIxMTBcdUIxMTJcdUIxMTNcdUIxMThcdUIxMTlcdUIxMUJcdUIxMUNcdUIxMURcdUIxMjNcdUIxMjRcdUIxMjVcdUIxMjhcdUIxMkNcdUIxMzRcdUIxMzVcdUIxMzdcdUIxMzhcdUIxMzlcdUIxNDBcdUIxNDFcdUIxNDRcdUIxNDhcdUIxNTBcdUIxNTFcdUIxNTRcdUIxNTVcdUIxNThcdUIxNUNcdUIxNjBcdUIxNzhcdUIxNzlcdUIxN0NcdUIxODBcdUIxODJcdUIxODhcdUIxODlcdUIxOEJcdUIxOERcdUIxOTJcdUIxOTNcdUIxOTRcdUIxOThcdUIxOUNcdUIxQThcdUIxQ0NcdUIxRDBcdUIxRDRcdUIxRENcdUIxRERcIl0sXG5bXCJiNDQxXCIsXCJcdUQwMkVcIiw1LFwiXHVEMDM2XHVEMDM3XHVEMDM5XHVEMDNBXHVEMDNCXHVEMDNEXCIsNixcIlx1RDA0Nlx1RDA0OFx1RDA0QVwiLDVdLFxuW1wiYjQ2MVwiLFwiXHVEMDUxXHVEMDUyXHVEMDUzXHVEMDU1XHVEMDU2XHVEMDU3XHVEMDU5XCIsNixcIlx1RDA2MVwiLDEwLFwiXHVEMDZFXHVEMDZGXCJdLFxuW1wiYjQ4MVwiLFwiXHVEMDcxXHVEMDcyXHVEMDczXHVEMDc1XCIsNixcIlx1RDA3RVx1RDA3Rlx1RDA4MFx1RDA4MlwiLDE4LFwiXHVCMURGXHVCMUU4XHVCMUU5XHVCMUVDXHVCMUYwXHVCMUY5XHVCMUZCXHVCMUZEXHVCMjA0XHVCMjA1XHVCMjA4XHVCMjBCXHVCMjBDXHVCMjE0XHVCMjE1XHVCMjE3XHVCMjE5XHVCMjIwXHVCMjM0XHVCMjNDXHVCMjU4XHVCMjVDXHVCMjYwXHVCMjY4XHVCMjY5XHVCMjc0XHVCMjc1XHVCMjdDXHVCMjg0XHVCMjg1XHVCMjg5XHVCMjkwXHVCMjkxXHVCMjk0XHVCMjk4XHVCMjk5XHVCMjlBXHVCMkEwXHVCMkExXHVCMkEzXHVCMkE1XHVCMkE2XHVCMkFBXHVCMkFDXHVCMkIwXHVCMkI0XHVCMkM4XHVCMkM5XHVCMkNDXHVCMkQwXHVCMkQyXHVCMkQ4XHVCMkQ5XHVCMkRCXHVCMkREXHVCMkUyXHVCMkU0XHVCMkU1XHVCMkU2XHVCMkU4XHVCMkVCXCIsNCxcIlx1QjJGM1x1QjJGNFx1QjJGNVx1QjJGN1wiLDQsXCJcdUIyRkZcdUIzMDBcdUIzMDFcdUIzMDRcdUIzMDhcdUIzMTBcdUIzMTFcdUIzMTNcdUIzMTRcdUIzMTVcdUIzMUNcdUIzNTRcdUIzNTVcdUIzNTZcdUIzNThcdUIzNUJcdUIzNUNcdUIzNUVcdUIzNUZcdUIzNjRcdUIzNjVcIl0sXG5bXCJiNTQxXCIsXCJcdUQwOTVcIiwxNCxcIlx1RDBBNlx1RDBBN1x1RDBBOVx1RDBBQVx1RDBBQlx1RDBBRFwiLDVdLFxuW1wiYjU2MVwiLFwiXHVEMEIzXHVEMEI2XHVEMEI4XHVEMEJBXCIsNSxcIlx1RDBDMlx1RDBDM1x1RDBDNVx1RDBDNlx1RDBDN1x1RDBDQVwiLDUsXCJcdUQwRDJcdUQwRDZcIiw0XSxcbltcImI1ODFcIixcIlx1RDBEQlx1RDBERVx1RDBERlx1RDBFMVx1RDBFMlx1RDBFM1x1RDBFNVwiLDYsXCJcdUQwRUVcdUQwRjJcIiw1LFwiXHVEMEY5XCIsMTEsXCJcdUIzNjdcdUIzNjlcdUIzNkJcdUIzNkVcdUIzNzBcdUIzNzFcdUIzNzRcdUIzNzhcdUIzODBcdUIzODFcdUIzODNcdUIzODRcdUIzODVcdUIzOENcdUIzOTBcdUIzOTRcdUIzQTBcdUIzQTFcdUIzQThcdUIzQUNcdUIzQzRcdUIzQzVcdUIzQzhcdUIzQ0JcdUIzQ0NcdUIzQ0VcdUIzRDBcdUIzRDRcdUIzRDVcdUIzRDdcdUIzRDlcdUIzREJcdUIzRERcdUIzRTBcdUIzRTRcdUIzRThcdUIzRkNcdUI0MTBcdUI0MThcdUI0MUNcdUI0MjBcdUI0MjhcdUI0MjlcdUI0MkJcdUI0MzRcdUI0NTBcdUI0NTFcdUI0NTRcdUI0NThcdUI0NjBcdUI0NjFcdUI0NjNcdUI0NjVcdUI0NkNcdUI0ODBcdUI0ODhcdUI0OURcdUI0QTRcdUI0QThcdUI0QUNcdUI0QjVcdUI0QjdcdUI0QjlcdUI0QzBcdUI0QzRcdUI0QzhcdUI0RDBcdUI0RDVcdUI0RENcdUI0RERcdUI0RTBcdUI0RTNcdUI0RTRcdUI0RTZcdUI0RUNcdUI0RURcdUI0RUZcdUI0RjFcdUI0RjhcdUI1MTRcdUI1MTVcdUI1MThcdUI1MUJcdUI1MUNcdUI1MjRcdUI1MjVcdUI1MjdcdUI1MjhcdUI1MjlcdUI1MkFcdUI1MzBcdUI1MzFcdUI1MzRcdUI1MzhcIl0sXG5bXCJiNjQxXCIsXCJcdUQxMDVcIiw3LFwiXHVEMTBFXCIsMTddLFxuW1wiYjY2MVwiLFwiXHVEMTIwXCIsMTUsXCJcdUQxMzJcdUQxMzNcdUQxMzVcdUQxMzZcdUQxMzdcdUQxMzlcdUQxM0JcdUQxM0NcdUQxM0RcdUQxM0VcIl0sXG5bXCJiNjgxXCIsXCJcdUQxM0ZcdUQxNDJcdUQxNDZcIiw1LFwiXHVEMTRFXHVEMTRGXHVEMTUxXHVEMTUyXHVEMTUzXHVEMTU1XCIsNixcIlx1RDE1RVx1RDE2MFx1RDE2MlwiLDUsXCJcdUQxNjlcdUQxNkFcdUQxNkJcdUQxNkRcdUI1NDBcdUI1NDFcdUI1NDNcdUI1NDRcdUI1NDVcdUI1NEJcdUI1NENcdUI1NERcdUI1NTBcdUI1NTRcdUI1NUNcdUI1NURcdUI1NUZcdUI1NjBcdUI1NjFcdUI1QTBcdUI1QTFcdUI1QTRcdUI1QThcdUI1QUFcdUI1QUJcdUI1QjBcdUI1QjFcdUI1QjNcdUI1QjRcdUI1QjVcdUI1QkJcdUI1QkNcdUI1QkRcdUI1QzBcdUI1QzRcdUI1Q0NcdUI1Q0RcdUI1Q0ZcdUI1RDBcdUI1RDFcdUI1RDhcdUI1RUNcdUI2MTBcdUI2MTFcdUI2MTRcdUI2MThcdUI2MjVcdUI2MkNcdUI2MzRcdUI2NDhcdUI2NjRcdUI2NjhcdUI2OUNcdUI2OURcdUI2QTBcdUI2QTRcdUI2QUJcdUI2QUNcdUI2QjFcdUI2RDRcdUI2RjBcdUI2RjRcdUI2RjhcdUI3MDBcdUI3MDFcdUI3MDVcdUI3MjhcdUI3MjlcdUI3MkNcdUI3MkZcdUI3MzBcdUI3MzhcdUI3MzlcdUI3M0JcdUI3NDRcdUI3NDhcdUI3NENcdUI3NTRcdUI3NTVcdUI3NjBcdUI3NjRcdUI3NjhcdUI3NzBcdUI3NzFcdUI3NzNcdUI3NzVcdUI3N0NcdUI3N0RcdUI3ODBcdUI3ODRcdUI3OENcdUI3OERcdUI3OEZcdUI3OTBcdUI3OTFcdUI3OTJcdUI3OTZcdUI3OTdcIl0sXG5bXCJiNzQxXCIsXCJcdUQxNkVcIiwxMyxcIlx1RDE3RFwiLDYsXCJcdUQxODVcdUQxODZcdUQxODdcdUQxODlcdUQxOEFcIl0sXG5bXCJiNzYxXCIsXCJcdUQxOEJcIiwyMCxcIlx1RDFBMlx1RDFBM1x1RDFBNVx1RDFBNlx1RDFBN1wiXSxcbltcImI3ODFcIixcIlx1RDFBOVwiLDYsXCJcdUQxQjJcdUQxQjRcdUQxQjZcdUQxQjdcdUQxQjhcdUQxQjlcdUQxQkJcdUQxQkRcdUQxQkVcdUQxQkZcdUQxQzFcIiwxNCxcIlx1Qjc5OFx1Qjc5OVx1Qjc5Q1x1QjdBMFx1QjdBOFx1QjdBOVx1QjdBQlx1QjdBQ1x1QjdBRFx1QjdCNFx1QjdCNVx1QjdCOFx1QjdDN1x1QjdDOVx1QjdFQ1x1QjdFRFx1QjdGMFx1QjdGNFx1QjdGQ1x1QjdGRFx1QjdGRlx1QjgwMFx1QjgwMVx1QjgwN1x1QjgwOFx1QjgwOVx1QjgwQ1x1QjgxMFx1QjgxOFx1QjgxOVx1QjgxQlx1QjgxRFx1QjgyNFx1QjgyNVx1QjgyOFx1QjgyQ1x1QjgzNFx1QjgzNVx1QjgzN1x1QjgzOFx1QjgzOVx1Qjg0MFx1Qjg0NFx1Qjg1MVx1Qjg1M1x1Qjg1Q1x1Qjg1RFx1Qjg2MFx1Qjg2NFx1Qjg2Q1x1Qjg2RFx1Qjg2Rlx1Qjg3MVx1Qjg3OFx1Qjg3Q1x1Qjg4RFx1QjhBOFx1QjhCMFx1QjhCNFx1QjhCOFx1QjhDMFx1QjhDMVx1QjhDM1x1QjhDNVx1QjhDQ1x1QjhEMFx1QjhENFx1QjhERFx1QjhERlx1QjhFMVx1QjhFOFx1QjhFOVx1QjhFQ1x1QjhGMFx1QjhGOFx1QjhGOVx1QjhGQlx1QjhGRFx1QjkwNFx1QjkxOFx1QjkyMFx1QjkzQ1x1QjkzRFx1Qjk0MFx1Qjk0NFx1Qjk0Q1x1Qjk0Rlx1Qjk1MVx1Qjk1OFx1Qjk1OVx1Qjk1Q1x1Qjk2MFx1Qjk2OFx1Qjk2OVwiXSxcbltcImI4NDFcIixcIlx1RDFEMFwiLDcsXCJcdUQxRDlcIiwxN10sXG5bXCJiODYxXCIsXCJcdUQxRUJcIiw4LFwiXHVEMUY1XHVEMUY2XHVEMUY3XHVEMUY5XCIsMTNdLFxuW1wiYjg4MVwiLFwiXHVEMjA4XHVEMjBBXCIsNSxcIlx1RDIxMVwiLDI0LFwiXHVCOTZCXHVCOTZEXHVCOTc0XHVCOTc1XHVCOTc4XHVCOTdDXHVCOTg0XHVCOTg1XHVCOTg3XHVCOTg5XHVCOThBXHVCOThEXHVCOThFXHVCOUFDXHVCOUFEXHVCOUIwXHVCOUI0XHVCOUJDXHVCOUJEXHVCOUJGXHVCOUMxXHVCOUM4XHVCOUM5XHVCOUNDXHVCOUNFXCIsNCxcIlx1QjlEOFx1QjlEOVx1QjlEQlx1QjlERFx1QjlERVx1QjlFMVx1QjlFM1x1QjlFNFx1QjlFNVx1QjlFOFx1QjlFQ1x1QjlGNFx1QjlGNVx1QjlGN1x1QjlGOFx1QjlGOVx1QjlGQVx1QkEwMFx1QkEwMVx1QkEwOFx1QkExNVx1QkEzOFx1QkEzOVx1QkEzQ1x1QkE0MFx1QkE0Mlx1QkE0OFx1QkE0OVx1QkE0Qlx1QkE0RFx1QkE0RVx1QkE1M1x1QkE1NFx1QkE1NVx1QkE1OFx1QkE1Q1x1QkE2NFx1QkE2NVx1QkE2N1x1QkE2OFx1QkE2OVx1QkE3MFx1QkE3MVx1QkE3NFx1QkE3OFx1QkE4M1x1QkE4NFx1QkE4NVx1QkE4N1x1QkE4Q1x1QkFBOFx1QkFBOVx1QkFBQlx1QkFBQ1x1QkFCMFx1QkFCMlx1QkFCOFx1QkFCOVx1QkFCQlx1QkFCRFx1QkFDNFx1QkFDOFx1QkFEOFx1QkFEOVx1QkFGQ1wiXSxcbltcImI5NDFcIixcIlx1RDIyQVx1RDIyQlx1RDIyRVx1RDIyRlx1RDIzMVx1RDIzMlx1RDIzM1x1RDIzNVwiLDYsXCJcdUQyM0VcdUQyNDBcdUQyNDJcIiw1LFwiXHVEMjQ5XHVEMjRBXHVEMjRCXHVEMjRDXCJdLFxuW1wiYjk2MVwiLFwiXHVEMjREXCIsMTQsXCJcdUQyNURcIiw2LFwiXHVEMjY1XHVEMjY2XHVEMjY3XHVEMjY4XCJdLFxuW1wiYjk4MVwiLFwiXHVEMjY5XCIsMjIsXCJcdUQyODJcdUQyODNcdUQyODVcdUQyODZcdUQyODdcdUQyODlcdUQyOEFcdUQyOEJcdUQyOENcdUJCMDBcdUJCMDRcdUJCMERcdUJCMEZcdUJCMTFcdUJCMThcdUJCMUNcdUJCMjBcdUJCMjlcdUJCMkJcdUJCMzRcdUJCMzVcdUJCMzZcdUJCMzhcdUJCM0JcdUJCM0NcdUJCM0RcdUJCM0VcdUJCNDRcdUJCNDVcdUJCNDdcdUJCNDlcdUJCNERcdUJCNEZcdUJCNTBcdUJCNTRcdUJCNThcdUJCNjFcdUJCNjNcdUJCNkNcdUJCODhcdUJCOENcdUJCOTBcdUJCQTRcdUJCQThcdUJCQUNcdUJCQjRcdUJCQjdcdUJCQzBcdUJCQzRcdUJCQzhcdUJCRDBcdUJCRDNcdUJCRjhcdUJCRjlcdUJCRkNcdUJCRkZcdUJDMDBcdUJDMDJcdUJDMDhcdUJDMDlcdUJDMEJcdUJDMENcdUJDMERcdUJDMEZcdUJDMTFcdUJDMTRcIiw0LFwiXHVCQzFCXCIsNCxcIlx1QkMyNFx1QkMyNVx1QkMyN1x1QkMyOVx1QkMyRFx1QkMzMFx1QkMzMVx1QkMzNFx1QkMzOFx1QkM0MFx1QkM0MVx1QkM0M1x1QkM0NFx1QkM0NVx1QkM0OVx1QkM0Q1x1QkM0RFx1QkM1MFx1QkM1RFx1QkM4NFx1QkM4NVx1QkM4OFx1QkM4Qlx1QkM4Q1x1QkM4RVx1QkM5NFx1QkM5NVx1QkM5N1wiXSxcbltcImJhNDFcIixcIlx1RDI4RFx1RDI4RVx1RDI4Rlx1RDI5Mlx1RDI5M1x1RDI5NFx1RDI5NlwiLDUsXCJcdUQyOURcdUQyOUVcdUQyOUZcdUQyQTFcdUQyQTJcdUQyQTNcdUQyQTVcIiw2LFwiXHVEMkFEXCJdLFxuW1wiYmE2MVwiLFwiXHVEMkFFXHVEMkFGXHVEMkIwXHVEMkIyXCIsNSxcIlx1RDJCQVx1RDJCQlx1RDJCRFx1RDJCRVx1RDJDMVx1RDJDM1wiLDQsXCJcdUQyQ0FcdUQyQ0NcIiw1XSxcbltcImJhODFcIixcIlx1RDJEMlx1RDJEM1x1RDJENVx1RDJENlx1RDJEN1x1RDJEOVx1RDJEQVx1RDJEQlx1RDJERFwiLDYsXCJcdUQyRTZcIiw5LFwiXHVEMkYyXHVEMkYzXHVEMkY1XHVEMkY2XHVEMkY3XHVEMkY5XHVEMkZBXHVCQzk5XHVCQzlBXHVCQ0EwXHVCQ0ExXHVCQ0E0XHVCQ0E3XHVCQ0E4XHVCQ0IwXHVCQ0IxXHVCQ0IzXHVCQ0I0XHVCQ0I1XHVCQ0JDXHVCQ0JEXHVCQ0MwXHVCQ0M0XHVCQ0NEXHVCQ0NGXHVCQ0QwXHVCQ0QxXHVCQ0Q1XHVCQ0Q4XHVCQ0RDXHVCQ0Y0XHVCQ0Y1XHVCQ0Y2XHVCQ0Y4XHVCQ0ZDXHVCRDA0XHVCRDA1XHVCRDA3XHVCRDA5XHVCRDEwXHVCRDE0XHVCRDI0XHVCRDJDXHVCRDQwXHVCRDQ4XHVCRDQ5XHVCRDRDXHVCRDUwXHVCRDU4XHVCRDU5XHVCRDY0XHVCRDY4XHVCRDgwXHVCRDgxXHVCRDg0XHVCRDg3XHVCRDg4XHVCRDg5XHVCRDhBXHVCRDkwXHVCRDkxXHVCRDkzXHVCRDk1XHVCRDk5XHVCRDlBXHVCRDlDXHVCREE0XHVCREIwXHVCREI4XHVCREQ0XHVCREQ1XHVCREQ4XHVCRERDXHVCREU5XHVCREYwXHVCREY0XHVCREY4XHVCRTAwXHVCRTAzXHVCRTA1XHVCRTBDXHVCRTBEXHVCRTEwXHVCRTE0XHVCRTFDXHVCRTFEXHVCRTFGXHVCRTQ0XHVCRTQ1XHVCRTQ4XHVCRTRDXHVCRTRFXHVCRTU0XHVCRTU1XHVCRTU3XHVCRTU5XHVCRTVBXHVCRTVCXHVCRTYwXHVCRTYxXHVCRTY0XCJdLFxuW1wiYmI0MVwiLFwiXHVEMkZCXCIsNCxcIlx1RDMwMlx1RDMwNFx1RDMwNlwiLDUsXCJcdUQzMEZcdUQzMTFcdUQzMTJcdUQzMTNcdUQzMTVcdUQzMTdcIiw0LFwiXHVEMzFFXHVEMzIyXHVEMzIzXCJdLFxuW1wiYmI2MVwiLFwiXHVEMzI0XHVEMzI2XHVEMzI3XHVEMzJBXHVEMzJCXHVEMzJEXHVEMzJFXHVEMzJGXHVEMzMxXCIsNixcIlx1RDMzQVx1RDMzRVwiLDUsXCJcdUQzNDZcdUQzNDdcdUQzNDhcdUQzNDlcIl0sXG5bXCJiYjgxXCIsXCJcdUQzNEFcIiwzMSxcIlx1QkU2OFx1QkU2QVx1QkU3MFx1QkU3MVx1QkU3M1x1QkU3NFx1QkU3NVx1QkU3Qlx1QkU3Q1x1QkU3RFx1QkU4MFx1QkU4NFx1QkU4Q1x1QkU4RFx1QkU4Rlx1QkU5MFx1QkU5MVx1QkU5OFx1QkU5OVx1QkVBOFx1QkVEMFx1QkVEMVx1QkVENFx1QkVEN1x1QkVEOFx1QkVFMFx1QkVFM1x1QkVFNFx1QkVFNVx1QkVFQ1x1QkYwMVx1QkYwOFx1QkYwOVx1QkYxOFx1QkYxOVx1QkYxQlx1QkYxQ1x1QkYxRFx1QkY0MFx1QkY0MVx1QkY0NFx1QkY0OFx1QkY1MFx1QkY1MVx1QkY1NVx1QkY5NFx1QkZCMFx1QkZDNVx1QkZDQ1x1QkZDRFx1QkZEMFx1QkZENFx1QkZEQ1x1QkZERlx1QkZFMVx1QzAzQ1x1QzA1MVx1QzA1OFx1QzA1Q1x1QzA2MFx1QzA2OFx1QzA2OVx1QzA5MFx1QzA5MVx1QzA5NFx1QzA5OFx1QzBBMFx1QzBBMVx1QzBBM1x1QzBBNVx1QzBBQ1x1QzBBRFx1QzBBRlx1QzBCMFx1QzBCM1x1QzBCNFx1QzBCNVx1QzBCNlx1QzBCQ1x1QzBCRFx1QzBCRlx1QzBDMFx1QzBDMVx1QzBDNVx1QzBDOFx1QzBDOVx1QzBDQ1x1QzBEMFx1QzBEOFx1QzBEOVx1QzBEQlx1QzBEQ1x1QzBERFx1QzBFNFwiXSxcbltcImJjNDFcIixcIlx1RDM2QVwiLDE3LFwiXHVEMzdFXHVEMzdGXHVEMzgxXHVEMzgyXHVEMzgzXHVEMzg1XHVEMzg2XHVEMzg3XCJdLFxuW1wiYmM2MVwiLFwiXHVEMzg4XHVEMzg5XHVEMzhBXHVEMzhCXHVEMzhFXHVEMzkyXCIsNSxcIlx1RDM5QVx1RDM5Qlx1RDM5RFx1RDM5RVx1RDM5Rlx1RDNBMVwiLDYsXCJcdUQzQUFcdUQzQUNcdUQzQUVcIl0sXG5bXCJiYzgxXCIsXCJcdUQzQUZcIiw0LFwiXHVEM0I1XHVEM0I2XHVEM0I3XHVEM0I5XHVEM0JBXHVEM0JCXHVEM0JEXCIsNixcIlx1RDNDNlx1RDNDN1x1RDNDQVwiLDUsXCJcdUQzRDFcIiw1LFwiXHVDMEU1XHVDMEU4XHVDMEVDXHVDMEY0XHVDMEY1XHVDMEY3XHVDMEY5XHVDMTAwXHVDMTA0XHVDMTA4XHVDMTEwXHVDMTE1XHVDMTFDXCIsNCxcIlx1QzEyM1x1QzEyNFx1QzEyNlx1QzEyN1x1QzEyQ1x1QzEyRFx1QzEyRlx1QzEzMFx1QzEzMVx1QzEzNlx1QzEzOFx1QzEzOVx1QzEzQ1x1QzE0MFx1QzE0OFx1QzE0OVx1QzE0Qlx1QzE0Q1x1QzE0RFx1QzE1NFx1QzE1NVx1QzE1OFx1QzE1Q1x1QzE2NFx1QzE2NVx1QzE2N1x1QzE2OFx1QzE2OVx1QzE3MFx1QzE3NFx1QzE3OFx1QzE4NVx1QzE4Q1x1QzE4RFx1QzE4RVx1QzE5MFx1QzE5NFx1QzE5Nlx1QzE5Q1x1QzE5RFx1QzE5Rlx1QzFBMVx1QzFBNVx1QzFBOFx1QzFBOVx1QzFBQ1x1QzFCMFx1QzFCRFx1QzFDNFx1QzFDOFx1QzFDQ1x1QzFENFx1QzFEN1x1QzFEOFx1QzFFMFx1QzFFNFx1QzFFOFx1QzFGMFx1QzFGMVx1QzFGM1x1QzFGQ1x1QzFGRFx1QzIwMFx1QzIwNFx1QzIwQ1x1QzIwRFx1QzIwRlx1QzIxMVx1QzIxOFx1QzIxOVx1QzIxQ1x1QzIxRlx1QzIyMFx1QzIyOFx1QzIyOVx1QzIyQlx1QzIyRFwiXSxcbltcImJkNDFcIixcIlx1RDNEN1x1RDNEOVwiLDcsXCJcdUQzRTJcdUQzRTRcIiw3LFwiXHVEM0VFXHVEM0VGXHVEM0YxXHVEM0YyXHVEM0YzXHVEM0Y1XHVEM0Y2XHVEM0Y3XCJdLFxuW1wiYmQ2MVwiLFwiXHVEM0Y4XHVEM0Y5XHVEM0ZBXHVEM0ZCXHVEM0ZFXHVENDAwXHVENDAyXCIsNSxcIlx1RDQwOVwiLDEzXSxcbltcImJkODFcIixcIlx1RDQxN1wiLDUsXCJcdUQ0MUVcIiwyNSxcIlx1QzIyRlx1QzIzMVx1QzIzMlx1QzIzNFx1QzI0OFx1QzI1MFx1QzI1MVx1QzI1NFx1QzI1OFx1QzI2MFx1QzI2NVx1QzI2Q1x1QzI2RFx1QzI3MFx1QzI3NFx1QzI3Q1x1QzI3RFx1QzI3Rlx1QzI4MVx1QzI4OFx1QzI4OVx1QzI5MFx1QzI5OFx1QzI5Qlx1QzI5RFx1QzJBNFx1QzJBNVx1QzJBOFx1QzJBQ1x1QzJBRFx1QzJCNFx1QzJCNVx1QzJCN1x1QzJCOVx1QzJEQ1x1QzJERFx1QzJFMFx1QzJFM1x1QzJFNFx1QzJFQlx1QzJFQ1x1QzJFRFx1QzJFRlx1QzJGMVx1QzJGNlx1QzJGOFx1QzJGOVx1QzJGQlx1QzJGQ1x1QzMwMFx1QzMwOFx1QzMwOVx1QzMwQ1x1QzMwRFx1QzMxM1x1QzMxNFx1QzMxNVx1QzMxOFx1QzMxQ1x1QzMyNFx1QzMyNVx1QzMyOFx1QzMyOVx1QzM0NVx1QzM2OFx1QzM2OVx1QzM2Q1x1QzM3MFx1QzM3Mlx1QzM3OFx1QzM3OVx1QzM3Q1x1QzM3RFx1QzM4NFx1QzM4OFx1QzM4Q1x1QzNDMFx1QzNEOFx1QzNEOVx1QzNEQ1x1QzNERlx1QzNFMFx1QzNFMlx1QzNFOFx1QzNFOVx1QzNFRFx1QzNGNFx1QzNGNVx1QzNGOFx1QzQwOFx1QzQxMFx1QzQyNFx1QzQyQ1x1QzQzMFwiXSxcbltcImJlNDFcIixcIlx1RDQzOFwiLDcsXCJcdUQ0NDFcdUQ0NDJcdUQ0NDNcdUQ0NDVcIiwxNF0sXG5bXCJiZTYxXCIsXCJcdUQ0NTRcIiw3LFwiXHVENDVEXHVENDVFXHVENDVGXHVENDYxXHVENDYyXHVENDYzXHVENDY1XCIsNyxcIlx1RDQ2RVx1RDQ3MFx1RDQ3MVx1RDQ3MlwiXSxcbltcImJlODFcIixcIlx1RDQ3M1wiLDQsXCJcdUQ0N0FcdUQ0N0JcdUQ0N0RcdUQ0N0VcdUQ0ODFcdUQ0ODNcIiw0LFwiXHVENDhBXHVENDhDXHVENDhFXCIsNSxcIlx1RDQ5NVwiLDgsXCJcdUM0MzRcdUM0M0NcdUM0M0RcdUM0NDhcdUM0NjRcdUM0NjVcdUM0NjhcdUM0NkNcdUM0NzRcdUM0NzVcdUM0NzlcdUM0ODBcdUM0OTRcdUM0OUNcdUM0QjhcdUM0QkNcdUM0RTlcdUM0RjBcdUM0RjFcdUM0RjRcdUM0RjhcdUM0RkFcdUM0RkZcdUM1MDBcdUM1MDFcdUM1MENcdUM1MTBcdUM1MTRcdUM1MUNcdUM1MjhcdUM1MjlcdUM1MkNcdUM1MzBcdUM1MzhcdUM1MzlcdUM1M0JcdUM1M0RcdUM1NDRcdUM1NDVcdUM1NDhcdUM1NDlcdUM1NEFcdUM1NENcdUM1NERcdUM1NEVcdUM1NTNcdUM1NTRcdUM1NTVcdUM1NTdcdUM1NThcdUM1NTlcdUM1NURcdUM1NUVcdUM1NjBcdUM1NjFcdUM1NjRcdUM1NjhcdUM1NzBcdUM1NzFcdUM1NzNcdUM1NzRcdUM1NzVcdUM1N0NcdUM1N0RcdUM1ODBcdUM1ODRcdUM1ODdcdUM1OENcdUM1OERcdUM1OEZcdUM1OTFcdUM1OTVcdUM1OTdcdUM1OThcdUM1OUNcdUM1QTBcdUM1QTlcdUM1QjRcdUM1QjVcdUM1QjhcdUM1QjlcdUM1QkJcdUM1QkNcdUM1QkRcdUM1QkVcdUM1QzRcIiw2LFwiXHVDNUNDXHVDNUNFXCJdLFxuW1wiYmY0MVwiLFwiXHVENDlFXCIsMTAsXCJcdUQ0QUFcIiwxNF0sXG5bXCJiZjYxXCIsXCJcdUQ0QjlcIiwxOCxcIlx1RDRDRFx1RDRDRVx1RDRDRlx1RDREMVx1RDREMlx1RDREM1x1RDRENVwiXSxcbltcImJmODFcIixcIlx1RDRENlwiLDUsXCJcdUQ0RERcdUQ0REVcdUQ0RTBcIiw3LFwiXHVENEU5XHVENEVBXHVENEVCXHVENEVEXHVENEVFXHVENEVGXHVENEYxXCIsNixcIlx1RDRGOVx1RDRGQVx1RDRGQ1x1QzVEMFx1QzVEMVx1QzVENFx1QzVEOFx1QzVFMFx1QzVFMVx1QzVFM1x1QzVFNVx1QzVFQ1x1QzVFRFx1QzVFRVx1QzVGMFx1QzVGNFx1QzVGNlx1QzVGN1x1QzVGQ1wiLDUsXCJcdUM2MDVcdUM2MDZcdUM2MDdcdUM2MDhcdUM2MENcdUM2MTBcdUM2MThcdUM2MTlcdUM2MUJcdUM2MUNcdUM2MjRcdUM2MjVcdUM2MjhcdUM2MkNcdUM2MkRcdUM2MkVcdUM2MzBcdUM2MzNcdUM2MzRcdUM2MzVcdUM2MzdcdUM2MzlcdUM2M0JcdUM2NDBcdUM2NDFcdUM2NDRcdUM2NDhcdUM2NTBcdUM2NTFcdUM2NTNcdUM2NTRcdUM2NTVcdUM2NUNcdUM2NURcdUM2NjBcdUM2NkNcdUM2NkZcdUM2NzFcdUM2NzhcdUM2NzlcdUM2N0NcdUM2ODBcdUM2ODhcdUM2ODlcdUM2OEJcdUM2OERcdUM2OTRcdUM2OTVcdUM2OThcdUM2OUNcdUM2QTRcdUM2QTVcdUM2QTdcdUM2QTlcdUM2QjBcdUM2QjFcdUM2QjRcdUM2QjhcdUM2QjlcdUM2QkFcdUM2QzBcdUM2QzFcdUM2QzNcdUM2QzVcdUM2Q0NcdUM2Q0RcdUM2RDBcdUM2RDRcdUM2RENcdUM2RERcdUM2RTBcdUM2RTFcdUM2RThcIl0sXG5bXCJjMDQxXCIsXCJcdUQ0RkVcIiw1LFwiXHVENTA1XHVENTA2XHVENTA3XHVENTA5XHVENTBBXHVENTBCXHVENTBEXCIsNixcIlx1RDUxNlx1RDUxOFwiLDVdLFxuW1wiYzA2MVwiLFwiXHVENTFFXCIsMjVdLFxuW1wiYzA4MVwiLFwiXHVENTM4XHVENTM5XHVENTNBXHVENTNCXHVENTNFXHVENTNGXHVENTQxXHVENTQyXHVENTQzXHVENTQ1XCIsNixcIlx1RDU0RVx1RDU1MFx1RDU1MlwiLDUsXCJcdUQ1NUFcdUQ1NUJcdUQ1NURcdUQ1NUVcdUQ1NUZcdUQ1NjFcdUQ1NjJcdUQ1NjNcdUM2RTlcdUM2RUNcdUM2RjBcdUM2RjhcdUM2RjlcdUM2RkRcdUM3MDRcdUM3MDVcdUM3MDhcdUM3MENcdUM3MTRcdUM3MTVcdUM3MTdcdUM3MTlcdUM3MjBcdUM3MjFcdUM3MjRcdUM3MjhcdUM3MzBcdUM3MzFcdUM3MzNcdUM3MzVcdUM3MzdcdUM3M0NcdUM3M0RcdUM3NDBcdUM3NDRcdUM3NEFcdUM3NENcdUM3NERcdUM3NEZcdUM3NTFcIiw3LFwiXHVDNzVDXHVDNzYwXHVDNzY4XHVDNzZCXHVDNzc0XHVDNzc1XHVDNzc4XHVDNzdDXHVDNzdEXHVDNzdFXHVDNzgzXHVDNzg0XHVDNzg1XHVDNzg3XHVDNzg4XHVDNzg5XHVDNzhBXHVDNzhFXHVDNzkwXHVDNzkxXHVDNzk0XHVDNzk2XHVDNzk3XHVDNzk4XHVDNzlBXHVDN0EwXHVDN0ExXHVDN0EzXHVDN0E0XHVDN0E1XHVDN0E2XHVDN0FDXHVDN0FEXHVDN0IwXHVDN0I0XHVDN0JDXHVDN0JEXHVDN0JGXHVDN0MwXHVDN0MxXHVDN0M4XHVDN0M5XHVDN0NDXHVDN0NFXHVDN0QwXHVDN0Q4XHVDN0REXHVDN0U0XHVDN0U4XHVDN0VDXHVDODAwXHVDODAxXHVDODA0XHVDODA4XHVDODBBXCJdLFxuW1wiYzE0MVwiLFwiXHVENTY0XHVENTY2XHVENTY3XHVENTZBXHVENTZDXHVENTZFXCIsNSxcIlx1RDU3Nlx1RDU3N1x1RDU3OVx1RDU3QVx1RDU3Qlx1RDU3RFwiLDYsXCJcdUQ1ODZcdUQ1OEFcdUQ1OEJcIl0sXG5bXCJjMTYxXCIsXCJcdUQ1OENcdUQ1OERcdUQ1OEVcdUQ1OEZcdUQ1OTFcIiwxOSxcIlx1RDVBNlx1RDVBN1wiXSxcbltcImMxODFcIixcIlx1RDVBOFwiLDMxLFwiXHVDODEwXHVDODExXHVDODEzXHVDODE1XHVDODE2XHVDODFDXHVDODFEXHVDODIwXHVDODI0XHVDODJDXHVDODJEXHVDODJGXHVDODMxXHVDODM4XHVDODNDXHVDODQwXHVDODQ4XHVDODQ5XHVDODRDXHVDODREXHVDODU0XHVDODcwXHVDODcxXHVDODc0XHVDODc4XHVDODdBXHVDODgwXHVDODgxXHVDODgzXHVDODg1XHVDODg2XHVDODg3XHVDODhCXHVDODhDXHVDODhEXHVDODk0XHVDODlEXHVDODlGXHVDOEExXHVDOEE4XHVDOEJDXHVDOEJEXHVDOEM0XHVDOEM4XHVDOENDXHVDOEQ0XHVDOEQ1XHVDOEQ3XHVDOEQ5XHVDOEUwXHVDOEUxXHVDOEU0XHVDOEY1XHVDOEZDXHVDOEZEXHVDOTAwXHVDOTA0XHVDOTA1XHVDOTA2XHVDOTBDXHVDOTBEXHVDOTBGXHVDOTExXHVDOTE4XHVDOTJDXHVDOTM0XHVDOTUwXHVDOTUxXHVDOTU0XHVDOTU4XHVDOTYwXHVDOTYxXHVDOTYzXHVDOTZDXHVDOTcwXHVDOTc0XHVDOTdDXHVDOTg4XHVDOTg5XHVDOThDXHVDOTkwXHVDOTk4XHVDOTk5XHVDOTlCXHVDOTlEXHVDOUMwXHVDOUMxXHVDOUM0XHVDOUM3XHVDOUM4XHVDOUNBXHVDOUQwXHVDOUQxXHVDOUQzXCJdLFxuW1wiYzI0MVwiLFwiXHVENUNBXHVENUNCXHVENUNEXHVENUNFXHVENUNGXHVENUQxXHVENUQzXCIsNCxcIlx1RDVEQVx1RDVEQ1x1RDVERVwiLDUsXCJcdUQ1RTZcdUQ1RTdcdUQ1RTlcdUQ1RUFcdUQ1RUJcdUQ1RURcdUQ1RUVcIl0sXG5bXCJjMjYxXCIsXCJcdUQ1RUZcIiw0LFwiXHVENUY2XHVENUY4XHVENUZBXCIsNSxcIlx1RDYwMlx1RDYwM1x1RDYwNVx1RDYwNlx1RDYwN1x1RDYwOVwiLDYsXCJcdUQ2MTJcIl0sXG5bXCJjMjgxXCIsXCJcdUQ2MTZcIiw1LFwiXHVENjFEXHVENjFFXHVENjFGXHVENjIxXHVENjIyXHVENjIzXHVENjI1XCIsNyxcIlx1RDYyRVwiLDksXCJcdUQ2M0FcdUQ2M0JcdUM5RDVcdUM5RDZcdUM5RDlcdUM5REFcdUM5RENcdUM5RERcdUM5RTBcdUM5RTJcdUM5RTRcdUM5RTdcdUM5RUNcdUM5RURcdUM5RUZcdUM5RjBcdUM5RjFcdUM5RjhcdUM5RjlcdUM5RkNcdUNBMDBcdUNBMDhcdUNBMDlcdUNBMEJcdUNBMENcdUNBMERcdUNBMTRcdUNBMThcdUNBMjlcdUNBNENcdUNBNERcdUNBNTBcdUNBNTRcdUNBNUNcdUNBNURcdUNBNUZcdUNBNjBcdUNBNjFcdUNBNjhcdUNBN0RcdUNBODRcdUNBOThcdUNBQkNcdUNBQkRcdUNBQzBcdUNBQzRcdUNBQ0NcdUNBQ0RcdUNBQ0ZcdUNBRDFcdUNBRDNcdUNBRDhcdUNBRDlcdUNBRTBcdUNBRUNcdUNBRjRcdUNCMDhcdUNCMTBcdUNCMTRcdUNCMThcdUNCMjBcdUNCMjFcdUNCNDFcdUNCNDhcdUNCNDlcdUNCNENcdUNCNTBcdUNCNThcdUNCNTlcdUNCNURcdUNCNjRcdUNCNzhcdUNCNzlcdUNCOUNcdUNCQjhcdUNCRDRcdUNCRTRcdUNCRTdcdUNCRTlcdUNDMENcdUNDMERcdUNDMTBcdUNDMTRcdUNDMUNcdUNDMURcdUNDMjFcdUNDMjJcdUNDMjdcdUNDMjhcdUNDMjlcdUNDMkNcdUNDMkVcdUNDMzBcdUNDMzhcdUNDMzlcdUNDM0JcIl0sXG5bXCJjMzQxXCIsXCJcdUQ2M0RcdUQ2M0VcdUQ2M0ZcdUQ2NDFcdUQ2NDJcdUQ2NDNcdUQ2NDRcdUQ2NDZcdUQ2NDdcdUQ2NEFcdUQ2NENcdUQ2NEVcdUQ2NEZcdUQ2NTBcdUQ2NTJcdUQ2NTNcdUQ2NTZcdUQ2NTdcdUQ2NTlcdUQ2NUFcdUQ2NUJcdUQ2NURcIiw0XSxcbltcImMzNjFcIixcIlx1RDY2MlwiLDQsXCJcdUQ2NjhcdUQ2NkFcIiw1LFwiXHVENjcyXHVENjczXHVENjc1XCIsMTFdLFxuW1wiYzM4MVwiLFwiXHVENjgxXHVENjgyXHVENjg0XHVENjg2XCIsNSxcIlx1RDY4RVx1RDY4Rlx1RDY5MVx1RDY5Mlx1RDY5M1x1RDY5NVwiLDcsXCJcdUQ2OUVcdUQ2QTBcdUQ2QTJcIiw1LFwiXHVENkE5XHVENkFBXHVDQzNDXHVDQzNEXHVDQzNFXHVDQzQ0XHVDQzQ1XHVDQzQ4XHVDQzRDXHVDQzU0XHVDQzU1XHVDQzU3XHVDQzU4XHVDQzU5XHVDQzYwXHVDQzY0XHVDQzY2XHVDQzY4XHVDQzcwXHVDQzc1XHVDQzk4XHVDQzk5XHVDQzlDXHVDQ0EwXHVDQ0E4XHVDQ0E5XHVDQ0FCXHVDQ0FDXHVDQ0FEXHVDQ0I0XHVDQ0I1XHVDQ0I4XHVDQ0JDXHVDQ0M0XHVDQ0M1XHVDQ0M3XHVDQ0M5XHVDQ0QwXHVDQ0Q0XHVDQ0U0XHVDQ0VDXHVDQ0YwXHVDRDAxXHVDRDA4XHVDRDA5XHVDRDBDXHVDRDEwXHVDRDE4XHVDRDE5XHVDRDFCXHVDRDFEXHVDRDI0XHVDRDI4XHVDRDJDXHVDRDM5XHVDRDVDXHVDRDYwXHVDRDY0XHVDRDZDXHVDRDZEXHVDRDZGXHVDRDcxXHVDRDc4XHVDRDg4XHVDRDk0XHVDRDk1XHVDRDk4XHVDRDlDXHVDREE0XHVDREE1XHVDREE3XHVDREE5XHVDREIwXHVDREM0XHVDRENDXHVDREQwXHVDREU4XHVDREVDXHVDREYwXHVDREY4XHVDREY5XHVDREZCXHVDREZEXHVDRTA0XHVDRTA4XHVDRTBDXHVDRTE0XHVDRTE5XHVDRTIwXHVDRTIxXHVDRTI0XHVDRTI4XHVDRTMwXHVDRTMxXHVDRTMzXHVDRTM1XCJdLFxuW1wiYzQ0MVwiLFwiXHVENkFCXHVENkFEXHVENkFFXHVENkFGXHVENkIxXCIsNyxcIlx1RDZCQVx1RDZCQ1wiLDcsXCJcdUQ2QzZcdUQ2QzdcdUQ2QzlcdUQ2Q0FcdUQ2Q0JcIl0sXG5bXCJjNDYxXCIsXCJcdUQ2Q0RcdUQ2Q0VcdUQ2Q0ZcdUQ2RDBcdUQ2RDJcdUQ2RDNcdUQ2RDVcdUQ2RDZcdUQ2RDhcdUQ2REFcIiw1LFwiXHVENkUxXHVENkUyXHVENkUzXHVENkU1XHVENkU2XHVENkU3XHVENkU5XCIsNF0sXG5bXCJjNDgxXCIsXCJcdUQ2RUVcdUQ2RUZcdUQ2RjFcdUQ2RjJcdUQ2RjNcdUQ2RjRcdUQ2RjZcIiw1LFwiXHVENkZFXHVENkZGXHVENzAxXHVENzAyXHVENzAzXHVENzA1XCIsMTEsXCJcdUQ3MTJcdUQ3MTNcdUQ3MTRcdUNFNThcdUNFNTlcdUNFNUNcdUNFNUZcdUNFNjBcdUNFNjFcdUNFNjhcdUNFNjlcdUNFNkJcdUNFNkRcdUNFNzRcdUNFNzVcdUNFNzhcdUNFN0NcdUNFODRcdUNFODVcdUNFODdcdUNFODlcdUNFOTBcdUNFOTFcdUNFOTRcdUNFOThcdUNFQTBcdUNFQTFcdUNFQTNcdUNFQTRcdUNFQTVcdUNFQUNcdUNFQURcdUNFQzFcdUNFRTRcdUNFRTVcdUNFRThcdUNFRUJcdUNFRUNcdUNFRjRcdUNFRjVcdUNFRjdcdUNFRjhcdUNFRjlcdUNGMDBcdUNGMDFcdUNGMDRcdUNGMDhcdUNGMTBcdUNGMTFcdUNGMTNcdUNGMTVcdUNGMUNcdUNGMjBcdUNGMjRcdUNGMkNcdUNGMkRcdUNGMkZcdUNGMzBcdUNGMzFcdUNGMzhcdUNGNTRcdUNGNTVcdUNGNThcdUNGNUNcdUNGNjRcdUNGNjVcdUNGNjdcdUNGNjlcdUNGNzBcdUNGNzFcdUNGNzRcdUNGNzhcdUNGODBcdUNGODVcdUNGOENcdUNGQTFcdUNGQThcdUNGQjBcdUNGQzRcdUNGRTBcdUNGRTFcdUNGRTRcdUNGRThcdUNGRjBcdUNGRjFcdUNGRjNcdUNGRjVcdUNGRkNcdUQwMDBcdUQwMDRcdUQwMTFcdUQwMThcdUQwMkRcdUQwMzRcdUQwMzVcdUQwMzhcdUQwM0NcIl0sXG5bXCJjNTQxXCIsXCJcdUQ3MTVcdUQ3MTZcdUQ3MTdcdUQ3MUFcdUQ3MUJcdUQ3MURcdUQ3MUVcdUQ3MUZcdUQ3MjFcIiw2LFwiXHVENzJBXHVENzJDXHVENzJFXCIsNSxcIlx1RDczNlx1RDczN1x1RDczOVwiXSxcbltcImM1NjFcIixcIlx1RDczQVx1RDczQlx1RDczRFwiLDYsXCJcdUQ3NDVcdUQ3NDZcdUQ3NDhcdUQ3NEFcIiw1LFwiXHVENzUyXHVENzUzXHVENzU1XHVENzVBXCIsNF0sXG5bXCJjNTgxXCIsXCJcdUQ3NUZcdUQ3NjJcdUQ3NjRcdUQ3NjZcdUQ3NjdcdUQ3NjhcdUQ3NkFcdUQ3NkJcdUQ3NkRcdUQ3NkVcdUQ3NkZcdUQ3NzFcdUQ3NzJcdUQ3NzNcdUQ3NzVcIiw2LFwiXHVENzdFXHVENzdGXHVENzgwXHVENzgyXCIsNSxcIlx1RDc4QVx1RDc4Qlx1RDA0NFx1RDA0NVx1RDA0N1x1RDA0OVx1RDA1MFx1RDA1NFx1RDA1OFx1RDA2MFx1RDA2Q1x1RDA2RFx1RDA3MFx1RDA3NFx1RDA3Q1x1RDA3RFx1RDA4MVx1RDBBNFx1RDBBNVx1RDBBOFx1RDBBQ1x1RDBCNFx1RDBCNVx1RDBCN1x1RDBCOVx1RDBDMFx1RDBDMVx1RDBDNFx1RDBDOFx1RDBDOVx1RDBEMFx1RDBEMVx1RDBEM1x1RDBENFx1RDBENVx1RDBEQ1x1RDBERFx1RDBFMFx1RDBFNFx1RDBFQ1x1RDBFRFx1RDBFRlx1RDBGMFx1RDBGMVx1RDBGOFx1RDEwRFx1RDEzMFx1RDEzMVx1RDEzNFx1RDEzOFx1RDEzQVx1RDE0MFx1RDE0MVx1RDE0M1x1RDE0NFx1RDE0NVx1RDE0Q1x1RDE0RFx1RDE1MFx1RDE1NFx1RDE1Q1x1RDE1RFx1RDE1Rlx1RDE2MVx1RDE2OFx1RDE2Q1x1RDE3Q1x1RDE4NFx1RDE4OFx1RDFBMFx1RDFBMVx1RDFBNFx1RDFBOFx1RDFCMFx1RDFCMVx1RDFCM1x1RDFCNVx1RDFCQVx1RDFCQ1x1RDFDMFx1RDFEOFx1RDFGNFx1RDFGOFx1RDIwN1x1RDIwOVx1RDIxMFx1RDIyQ1x1RDIyRFx1RDIzMFx1RDIzNFx1RDIzQ1x1RDIzRFx1RDIzRlx1RDI0MVx1RDI0OFx1RDI1Q1wiXSxcbltcImM2NDFcIixcIlx1RDc4RFx1RDc4RVx1RDc4Rlx1RDc5MVwiLDYsXCJcdUQ3OUFcdUQ3OUNcdUQ3OUVcIiw1XSxcbltcImM2YTFcIixcIlx1RDI2NFx1RDI4MFx1RDI4MVx1RDI4NFx1RDI4OFx1RDI5MFx1RDI5MVx1RDI5NVx1RDI5Q1x1RDJBMFx1RDJBNFx1RDJBQ1x1RDJCMVx1RDJCOFx1RDJCOVx1RDJCQ1x1RDJCRlx1RDJDMFx1RDJDMlx1RDJDOFx1RDJDOVx1RDJDQlx1RDJENFx1RDJEOFx1RDJEQ1x1RDJFNFx1RDJFNVx1RDJGMFx1RDJGMVx1RDJGNFx1RDJGOFx1RDMwMFx1RDMwMVx1RDMwM1x1RDMwNVx1RDMwQ1x1RDMwRFx1RDMwRVx1RDMxMFx1RDMxNFx1RDMxNlx1RDMxQ1x1RDMxRFx1RDMxRlx1RDMyMFx1RDMyMVx1RDMyNVx1RDMyOFx1RDMyOVx1RDMyQ1x1RDMzMFx1RDMzOFx1RDMzOVx1RDMzQlx1RDMzQ1x1RDMzRFx1RDM0NFx1RDM0NVx1RDM3Q1x1RDM3RFx1RDM4MFx1RDM4NFx1RDM4Q1x1RDM4RFx1RDM4Rlx1RDM5MFx1RDM5MVx1RDM5OFx1RDM5OVx1RDM5Q1x1RDNBMFx1RDNBOFx1RDNBOVx1RDNBQlx1RDNBRFx1RDNCNFx1RDNCOFx1RDNCQ1x1RDNDNFx1RDNDNVx1RDNDOFx1RDNDOVx1RDNEMFx1RDNEOFx1RDNFMVx1RDNFM1x1RDNFQ1x1RDNFRFx1RDNGMFx1RDNGNFx1RDNGQ1x1RDNGRFx1RDNGRlx1RDQwMVwiXSxcbltcImM3YTFcIixcIlx1RDQwOFx1RDQxRFx1RDQ0MFx1RDQ0NFx1RDQ1Q1x1RDQ2MFx1RDQ2NFx1RDQ2RFx1RDQ2Rlx1RDQ3OFx1RDQ3OVx1RDQ3Q1x1RDQ3Rlx1RDQ4MFx1RDQ4Mlx1RDQ4OFx1RDQ4OVx1RDQ4Qlx1RDQ4RFx1RDQ5NFx1RDRBOVx1RDRDQ1x1RDREMFx1RDRENFx1RDREQ1x1RDRERlx1RDRFOFx1RDRFQ1x1RDRGMFx1RDRGOFx1RDRGQlx1RDRGRFx1RDUwNFx1RDUwOFx1RDUwQ1x1RDUxNFx1RDUxNVx1RDUxN1x1RDUzQ1x1RDUzRFx1RDU0MFx1RDU0NFx1RDU0Q1x1RDU0RFx1RDU0Rlx1RDU1MVx1RDU1OFx1RDU1OVx1RDU1Q1x1RDU2MFx1RDU2NVx1RDU2OFx1RDU2OVx1RDU2Qlx1RDU2RFx1RDU3NFx1RDU3NVx1RDU3OFx1RDU3Q1x1RDU4NFx1RDU4NVx1RDU4N1x1RDU4OFx1RDU4OVx1RDU5MFx1RDVBNVx1RDVDOFx1RDVDOVx1RDVDQ1x1RDVEMFx1RDVEMlx1RDVEOFx1RDVEOVx1RDVEQlx1RDVERFx1RDVFNFx1RDVFNVx1RDVFOFx1RDVFQ1x1RDVGNFx1RDVGNVx1RDVGN1x1RDVGOVx1RDYwMFx1RDYwMVx1RDYwNFx1RDYwOFx1RDYxMFx1RDYxMVx1RDYxM1x1RDYxNFx1RDYxNVx1RDYxQ1x1RDYyMFwiXSxcbltcImM4YTFcIixcIlx1RDYyNFx1RDYyRFx1RDYzOFx1RDYzOVx1RDYzQ1x1RDY0MFx1RDY0NVx1RDY0OFx1RDY0OVx1RDY0Qlx1RDY0RFx1RDY1MVx1RDY1NFx1RDY1NVx1RDY1OFx1RDY1Q1x1RDY2N1x1RDY2OVx1RDY3MFx1RDY3MVx1RDY3NFx1RDY4M1x1RDY4NVx1RDY4Q1x1RDY4RFx1RDY5MFx1RDY5NFx1RDY5RFx1RDY5Rlx1RDZBMVx1RDZBOFx1RDZBQ1x1RDZCMFx1RDZCOVx1RDZCQlx1RDZDNFx1RDZDNVx1RDZDOFx1RDZDQ1x1RDZEMVx1RDZENFx1RDZEN1x1RDZEOVx1RDZFMFx1RDZFNFx1RDZFOFx1RDZGMFx1RDZGNVx1RDZGQ1x1RDZGRFx1RDcwMFx1RDcwNFx1RDcxMVx1RDcxOFx1RDcxOVx1RDcxQ1x1RDcyMFx1RDcyOFx1RDcyOVx1RDcyQlx1RDcyRFx1RDczNFx1RDczNVx1RDczOFx1RDczQ1x1RDc0NFx1RDc0N1x1RDc0OVx1RDc1MFx1RDc1MVx1RDc1NFx1RDc1Nlx1RDc1N1x1RDc1OFx1RDc1OVx1RDc2MFx1RDc2MVx1RDc2M1x1RDc2NVx1RDc2OVx1RDc2Q1x1RDc3MFx1RDc3NFx1RDc3Q1x1RDc3RFx1RDc4MVx1RDc4OFx1RDc4OVx1RDc4Q1x1RDc5MFx1RDc5OFx1RDc5OVx1RDc5Qlx1RDc5RFwiXSxcbltcImNhYTFcIixcIlx1NEYzRFx1NEY3M1x1NTA0N1x1NTBGOVx1NTJBMFx1NTNFRlx1NTQ3NVx1NTRFNVx1NTYwOVx1NUFDMVx1NUJCNlx1NjY4N1x1NjdCNlx1NjdCN1x1NjdFRlx1NkI0Q1x1NzNDMlx1NzVDMlx1N0EzQ1x1ODJEQlx1ODMwNFx1ODg1N1x1ODg4OFx1OEEzNlx1OENDOFx1OERDRlx1OEVGQlx1OEZFNlx1OTlENVx1NTIzQlx1NTM3NFx1NTQwNFx1NjA2QVx1NjE2NFx1NkJCQ1x1NzNDRlx1ODExQVx1ODlCQVx1ODlEMlx1OTVBM1x1NEY4M1x1NTIwQVx1NThCRVx1NTk3OFx1NTlFNlx1NUU3Mlx1NUU3OVx1NjFDN1x1NjNDMFx1Njc0Nlx1NjdFQ1x1Njg3Rlx1NkY5N1x1NzY0RVx1NzcwQlx1NzhGNVx1N0EwOFx1N0FGRlx1N0MyMVx1ODA5RFx1ODI2RVx1ODI3MVx1OEFFQlx1OTU5M1x1NEU2Qlx1NTU5RFx1NjZGN1x1NkUzNFx1NzhBM1x1N0FFRFx1ODQ1Qlx1ODkxMFx1ODc0RVx1OTdBOFx1NTJEOFx1NTc0RVx1NTgyQVx1NUQ0Q1x1NjExRlx1NjFCRVx1NjIyMVx1NjU2Mlx1NjdEMVx1NkE0NFx1NkUxQlx1NzUxOFx1NzVCM1x1NzZFM1x1NzdCMFx1N0QzQVx1OTBBRlx1OTQ1MVx1OTQ1Mlx1OUY5NVwiXSxcbltcImNiYTFcIixcIlx1NTMyM1x1NUNBQ1x1NzUzMlx1ODBEQlx1OTI0MFx1OTU5OFx1NTI1Qlx1NTgwOFx1NTlEQ1x1NUNBMVx1NUQxN1x1NUVCN1x1NUYzQVx1NUY0QVx1NjE3N1x1NkM1Rlx1NzU3QVx1NzU4Nlx1N0NFMFx1N0Q3M1x1N0RCMVx1N0Y4Q1x1ODE1NFx1ODIyMVx1ODU5MVx1ODk0MVx1OEIxQlx1OTJGQ1x1OTY0RFx1OUM0N1x1NEVDQlx1NEVGN1x1NTAwQlx1NTFGMVx1NTg0Rlx1NjEzN1x1NjEzRVx1NjE2OFx1NjUzOVx1NjlFQVx1NkYxMVx1NzVBNVx1NzY4Nlx1NzZENlx1N0I4N1x1ODJBNVx1ODRDQlx1RjkwMFx1OTNBN1x1OTU4Qlx1NTU4MFx1NUJBMlx1NTc1MVx1RjkwMVx1N0NCM1x1N0ZCOVx1OTFCNVx1NTAyOFx1NTNCQlx1NUM0NVx1NURFOFx1NjJEMlx1NjM2RVx1NjREQVx1NjRFN1x1NkUyMFx1NzBBQ1x1Nzk1Qlx1OERERFx1OEUxRVx1RjkwMlx1OTA3RFx1OTI0NVx1OTJGOFx1NEU3RVx1NEVGNlx1NTA2NVx1NURGRVx1NUVGQVx1NjEwNlx1Njk1N1x1ODE3MVx1ODY1NFx1OEU0N1x1OTM3NVx1OUEyQlx1NEU1RVx1NTA5MVx1Njc3MFx1Njg0MFx1NTEwOVx1NTI4RFx1NTI5Mlx1NkFBMlwiXSxcbltcImNjYTFcIixcIlx1NzdCQ1x1OTIxMFx1OUVENFx1NTJBQlx1NjAyRlx1OEZGMlx1NTA0OFx1NjFBOVx1NjNFRFx1NjRDQVx1NjgzQ1x1NkE4NFx1NkZDMFx1ODE4OFx1ODlBMVx1OTY5NFx1NTgwNVx1NzI3RFx1NzJBQ1x1NzUwNFx1N0Q3OVx1N0U2RFx1ODBBOVx1ODk4Qlx1OEI3NFx1OTA2M1x1OUQ1MVx1NjI4OVx1NkM3QVx1NkY1NFx1N0Q1MFx1N0YzQVx1OEEyM1x1NTE3Q1x1NjE0QVx1N0I5RFx1OEIxOVx1OTI1N1x1OTM4Q1x1NEVBQ1x1NEZEM1x1NTAxRVx1NTBCRVx1NTEwNlx1NTJDMVx1NTJDRFx1NTM3Rlx1NTc3MFx1NTg4M1x1NUU5QVx1NUY5MVx1NjE3Nlx1NjFBQ1x1NjRDRVx1NjU2Q1x1NjY2Rlx1NjZCQlx1NjZGNFx1Njg5N1x1NkQ4N1x1NzA4NVx1NzBGMVx1NzQ5Rlx1NzRBNVx1NzRDQVx1NzVEOVx1Nzg2Q1x1NzhFQ1x1N0FERlx1N0FGNlx1N0Q0NVx1N0Q5M1x1ODAxNVx1ODAzRlx1ODExQlx1ODM5Nlx1OEI2Nlx1OEYxNVx1OTAxNVx1OTNFMVx1OTgwM1x1OTgzOFx1OUE1QVx1OUJFOFx1NEZDMlx1NTU1M1x1NTgzQVx1NTk1MVx1NUI2M1x1NUM0Nlx1NjBCOFx1NjIxMlx1Njg0Mlx1NjhCMFwiXSxcbltcImNkYTFcIixcIlx1NjhFOFx1NkVBQVx1NzU0Q1x1NzY3OFx1NzhDRVx1N0EzRFx1N0NGQlx1N0U2Qlx1N0U3Q1x1OEEwOFx1OEFBMVx1OEMzRlx1OTY4RVx1OURDNFx1NTNFNFx1NTNFOVx1NTQ0QVx1NTQ3MVx1NTZGQVx1NTlEMVx1NUI2NFx1NUMzQlx1NUVBQlx1NjJGN1x1NjUzN1x1NjU0NVx1NjU3Mlx1NjZBMFx1NjdBRlx1NjlDMVx1NkNCRFx1NzVGQ1x1NzY5MFx1Nzc3RVx1N0EzRlx1N0Y5NFx1ODAwM1x1ODBBMVx1ODE4Rlx1ODJFNlx1ODJGRFx1ODNGMFx1ODVDMVx1ODgzMVx1ODhCNFx1OEFBNVx1RjkwM1x1OEY5Q1x1OTMyRVx1OTZDN1x1OTg2N1x1OUFEOFx1OUYxM1x1NTRFRFx1NjU5Qlx1NjZGMlx1Njg4Rlx1N0E0MFx1OEMzN1x1OUQ2MFx1NTZGMFx1NTc2NFx1NUQxMVx1NjYwNlx1NjhCMVx1NjhDRFx1NkVGRVx1NzQyOFx1ODg5RVx1OUJFNFx1NkM2OFx1RjkwNFx1OUFBOFx1NEY5Qlx1NTE2Q1x1NTE3MVx1NTI5Rlx1NUI1NFx1NURFNVx1NjA1MFx1NjA2RFx1NjJGMVx1NjNBN1x1NjUzQlx1NzNEOVx1N0E3QVx1ODZBM1x1OENBMlx1OTc4Rlx1NEUzMlx1NUJFMVx1NjIwOFx1Njc5Q1x1NzREQ1wiXSxcbltcImNlYTFcIixcIlx1NzlEMVx1ODNEM1x1OEE4N1x1OEFCMlx1OERFOFx1OTA0RVx1OTM0Qlx1OTg0Nlx1NUVEM1x1NjlFOFx1ODVGRlx1OTBFRFx1RjkwNVx1NTFBMFx1NUI5OFx1NUJFQ1x1NjE2M1x1NjhGQVx1NkIzRVx1NzA0Q1x1NzQyRlx1NzREOFx1N0JBMVx1N0Y1MFx1ODNDNVx1ODlDMFx1OENBQlx1OTVEQ1x1OTkyOFx1NTIyRVx1NjA1RFx1NjJFQ1x1OTAwMlx1NEY4QVx1NTE0OVx1NTMyMVx1NThEOVx1NUVFM1x1NjZFMFx1NkQzOFx1NzA5QVx1NzJDMlx1NzNENlx1N0I1MFx1ODBGMVx1OTQ1Qlx1NTM2Nlx1NjM5Qlx1N0Y2Qlx1NEU1Nlx1NTA4MFx1NTg0QVx1NThERVx1NjAyQVx1NjEyN1x1NjJEMFx1NjlEMFx1OUI0MVx1NUI4Rlx1N0QxOFx1ODBCMVx1OEY1Rlx1NEVBNFx1NTBEMVx1NTRBQ1x1NTVBQ1x1NUIwQ1x1NURBMFx1NURFN1x1NjUyQVx1NjU0RVx1NjgyMVx1NkE0Qlx1NzJFMVx1NzY4RVx1NzdFRlx1N0Q1RVx1N0ZGOVx1ODFBMFx1ODU0RVx1ODZERlx1OEYwM1x1OEY0RVx1OTBDQVx1OTkwM1x1OUE1NVx1OUJBQlx1NEUxOFx1NEU0NVx1NEU1RFx1NEVDN1x1NEZGMVx1NTE3N1x1NTJGRVwiXSxcbltcImNmYTFcIixcIlx1NTM0MFx1NTNFM1x1NTNFNVx1NTQ4RVx1NTYxNFx1NTc3NVx1NTdBMlx1NUJDN1x1NUQ4N1x1NUVEMFx1NjFGQ1x1NjJEOFx1NjU1MVx1NjdCOFx1NjdFOVx1NjlDQlx1NkI1MFx1NkJDNlx1NkJFQ1x1NkM0Mlx1NkU5RFx1NzA3OFx1NzJEN1x1NzM5Nlx1NzQwM1x1NzdCRlx1NzdFOVx1N0E3Nlx1N0Q3Rlx1ODAwOVx1ODFGQ1x1ODIwNVx1ODIwQVx1ODJERlx1ODg2Mlx1OEIzM1x1OENGQ1x1OEVDMFx1OTAxMVx1OTBCMVx1OTI2NFx1OTJCNlx1OTlEMlx1OUE0NVx1OUNFOVx1OUREN1x1OUY5Q1x1NTcwQlx1NUM0MFx1ODNDQVx1OTdBMFx1OTdBQlx1OUVCNFx1NTQxQlx1N0E5OFx1N0ZBNFx1ODhEOVx1OEVDRFx1OTBFMVx1NTgwMFx1NUM0OFx1NjM5OFx1N0E5Rlx1NUJBRVx1NUYxM1x1N0E3OVx1N0FBRVx1ODI4RVx1OEVBQ1x1NTAyNlx1NTIzOFx1NTJGOFx1NTM3N1x1NTcwOFx1NjJGM1x1NjM3Mlx1NkIwQVx1NkRDM1x1NzczN1x1NTNBNVx1NzM1N1x1ODU2OFx1OEU3Nlx1OTVENVx1NjczQVx1NkFDM1x1NkY3MFx1OEE2RFx1OEVDQ1x1OTk0Qlx1RjkwNlx1NjY3N1x1NkI3OFx1OENCNFwiXSxcbltcImQwYTFcIixcIlx1OUIzQ1x1RjkwN1x1NTNFQlx1NTcyRFx1NTk0RVx1NjNDNlx1NjlGQlx1NzNFQVx1Nzg0NVx1N0FCQVx1N0FDNVx1N0NGRVx1ODQ3NVx1ODk4Rlx1OEQ3M1x1OTAzNVx1OTVBOFx1NTJGQlx1NTc0N1x1NzU0N1x1N0I2MFx1ODNDQ1x1OTIxRVx1RjkwOFx1NkE1OFx1NTE0Qlx1NTI0Qlx1NTI4N1x1NjIxRlx1NjhEOFx1Njk3NVx1OTY5OVx1NTBDNVx1NTJBNFx1NTJFNFx1NjFDM1x1NjVBNFx1NjgzOVx1NjlGRlx1NzQ3RVx1N0I0Qlx1ODJCOVx1ODNFQlx1ODlCMlx1OEIzOVx1OEZEMVx1OTk0OVx1RjkwOVx1NEVDQVx1NTk5N1x1NjREMlx1NjYxMVx1NkE4RVx1NzQzNFx1Nzk4MVx1NzlCRFx1ODJBOVx1ODg3RVx1ODg3Rlx1ODk1Rlx1RjkwQVx1OTMyNlx1NEYwQlx1NTNDQVx1NjAyNVx1NjI3MVx1NkM3Mlx1N0QxQVx1N0Q2Nlx1NEU5OFx1NTE2Mlx1NzdEQ1x1ODBBRlx1NEYwMVx1NEYwRVx1NTE3Nlx1NTE4MFx1NTVEQ1x1NTY2OFx1NTczQlx1NTdGQVx1NTdGQ1x1NTkxNFx1NTk0N1x1NTk5M1x1NUJDNFx1NUM5MFx1NUQwRVx1NURGMVx1NUU3RVx1NUZDQ1x1NjI4MFx1NjVEN1x1NjVFM1wiXSxcbltcImQxYTFcIixcIlx1NjcxRVx1NjcxRlx1Njc1RVx1NjhDQlx1NjhDNFx1NkE1Rlx1NkIzQVx1NkMyM1x1NkM3RFx1NkM4Mlx1NkRDN1x1NzM5OFx1NzQyNlx1NzQyQVx1NzQ4Mlx1NzRBM1x1NzU3OFx1NzU3Rlx1Nzg4MVx1NzhFRlx1Nzk0MVx1Nzk0N1x1Nzk0OFx1Nzk3QVx1N0I5NVx1N0QwMFx1N0RCQVx1N0Y4OFx1ODAwNlx1ODAyRFx1ODA4Q1x1OEExOFx1OEI0Rlx1OEM0OFx1OEQ3N1x1OTMyMVx1OTMyNFx1OThFMlx1OTk1MVx1OUEwRVx1OUEwRlx1OUE2NVx1OUU5Mlx1N0RDQVx1NEY3Nlx1NTQwOVx1NjJFRVx1Njg1NFx1OTFEMVx1NTVBQlx1NTEzQVx1RjkwQlx1RjkwQ1x1NUExQ1x1NjFFNlx1RjkwRFx1NjJDRlx1NjJGRlx1RjkwRVwiLDUsXCJcdTkwQTNcdUY5MTRcIiw0LFwiXHU4QUZFXHVGOTE5XHVGOTFBXHVGOTFCXHVGOTFDXHU2Njk2XHVGOTFEXHU3MTU2XHVGOTFFXHVGOTFGXHU5NkUzXHVGOTIwXHU2MzRGXHU2MzdBXHU1MzU3XHVGOTIxXHU2NzhGXHU2OTYwXHU2RTczXHVGOTIyXHU3NTM3XHVGOTIzXHVGOTI0XHVGOTI1XCJdLFxuW1wiZDJhMVwiLFwiXHU3RDBEXHVGOTI2XHVGOTI3XHU4ODcyXHU1NkNBXHU1QTE4XHVGOTI4XCIsNCxcIlx1NEU0M1x1RjkyRFx1NTE2N1x1NTk0OFx1NjdGMFx1ODAxMFx1RjkyRVx1NTk3M1x1NUU3NFx1NjQ5QVx1NzlDQVx1NUZGNVx1NjA2Q1x1NjJDOFx1NjM3Qlx1NUJFN1x1NUJEN1x1NTJBQVx1RjkyRlx1NTk3NFx1NUYyOVx1NjAxMlx1RjkzMFx1RjkzMVx1RjkzMlx1NzQ1OVx1RjkzM1wiLDUsXCJcdTk5RDFcdUY5MzlcIiwxMCxcIlx1NkZDM1x1Rjk0NFx1Rjk0NVx1ODFCRlx1OEZCMlx1NjBGMVx1Rjk0Nlx1Rjk0N1x1ODE2Nlx1Rjk0OFx1Rjk0OVx1NUMzRlx1Rjk0QVwiLDcsXCJcdTVBRTlcdThBMjVcdTY3N0JcdTdEMTBcdUY5NTJcIiw1LFwiXHU4MEZEXHVGOTU4XHVGOTU5XHU1QzNDXHU2Q0U1XHU1MzNGXHU2RUJBXHU1OTFBXHU4MzM2XCJdLFxuW1wiZDNhMVwiLFwiXHU0RTM5XHU0RUI2XHU0RjQ2XHU1NUFFXHU1NzE4XHU1OEM3XHU1RjU2XHU2NUI3XHU2NUU2XHU2QTgwXHU2QkI1XHU2RTREXHU3N0VEXHU3QUVGXHU3QzFFXHU3RERFXHU4NkNCXHU4ODkyXHU5MTMyXHU5MzVCXHU2NEJCXHU2RkJFXHU3MzdBXHU3NUI4XHU5MDU0XHU1NTU2XHU1NzREXHU2MUJBXHU2NEQ0XHU2NkM3XHU2REUxXHU2RTVCXHU2RjZEXHU2RkI5XHU3NUYwXHU4MDQzXHU4MUJEXHU4NTQxXHU4OTgzXHU4QUM3XHU4QjVBXHU5MzFGXHU2QzkzXHU3NTUzXHU3QjU0XHU4RTBGXHU5MDVEXHU1NTEwXHU1ODAyXHU1ODU4XHU1RTYyXHU2MjA3XHU2NDlFXHU2OEUwXHU3NTc2XHU3Q0Q2XHU4N0IzXHU5RUU4XHU0RUUzXHU1Nzg4XHU1NzZFXHU1OTI3XHU1QzBEXHU1Q0IxXHU1RTM2XHU1Rjg1XHU2MjM0XHU2NEUxXHU3M0IzXHU4MUZBXHU4ODhCXHU4Q0I4XHU5NjhBXHU5RURCXHU1Qjg1XHU1RkI3XHU2MEIzXHU1MDEyXHU1MjAwXHU1MjMwXHU1NzE2XHU1ODM1XHU1ODU3XHU1QzBFXHU1QzYwXHU1Q0Y2XHU1RDhCXHU1RUE2XHU1RjkyXHU2MEJDXHU2MzExXHU2Mzg5XHU2NDE3XHU2ODQzXCJdLFxuW1wiZDRhMVwiLFwiXHU2OEY5XHU2QUMyXHU2REQ4XHU2RTIxXHU2RUQ0XHU2RkU0XHU3MUZFXHU3NkRDXHU3Nzc5XHU3OUIxXHU3QTNCXHU4NDA0XHU4OUE5XHU4Q0VEXHU4REYzXHU4RTQ4XHU5MDAzXHU5MDE0XHU5MDUzXHU5MEZEXHU5MzREXHU5Njc2XHU5N0RDXHU2QkQyXHU3MDA2XHU3MjU4XHU3MkEyXHU3MzY4XHU3NzYzXHU3OUJGXHU3QkU0XHU3RTlCXHU4QjgwXHU1OEE5XHU2MEM3XHU2NTY2XHU2NUZEXHU2NkJFXHU2QzhDXHU3MTFFXHU3MUM5XHU4QzVBXHU5ODEzXHU0RTZEXHU3QTgxXHU0RUREXHU1MUFDXHU1MUNEXHU1MkQ1XHU1NDBDXHU2MUE3XHU2NzcxXHU2ODUwXHU2OERGXHU2RDFFXHU2RjdDXHU3NUJDXHU3N0IzXHU3QUU1XHU4MEY0XHU4NDYzXHU5Mjg1XHU1MTVDXHU2NTk3XHU2NzVDXHU2NzkzXHU3NUQ4XHU3QUM3XHU4MzczXHVGOTVBXHU4QzQ2XHU5MDE3XHU5ODJEXHU1QzZGXHU4MUMwXHU4MjlBXHU5MDQxXHU5MDZGXHU5MjBEXHU1Rjk3XHU1RDlEXHU2QTU5XHU3MUM4XHU3NjdCXHU3QjQ5XHU4NUU0XHU4QjA0XHU5MTI3XHU5QTMwXHU1NTg3XHU2MUY2XHVGOTVCXHU3NjY5XHU3Rjg1XCJdLFxuW1wiZDVhMVwiLFwiXHU4NjNGXHU4N0JBXHU4OEY4XHU5MDhGXHVGOTVDXHU2RDFCXHU3MEQ5XHU3M0RFXHU3RDYxXHU4NDNEXHVGOTVEXHU5MTZBXHU5OUYxXHVGOTVFXHU0RTgyXHU1Mzc1XHU2QjA0XHU2QjEyXHU3MDNFXHU3MjFCXHU4NjJEXHU5RTFFXHU1MjRDXHU4RkEzXHU1RDUwXHU2NEU1XHU2NTJDXHU2QjE2XHU2RkVCXHU3QzQzXHU3RTlDXHU4NUNEXHU4OTY0XHU4OUJEXHU2MkM5XHU4MUQ4XHU4ODFGXHU1RUNBXHU2NzE3XHU2RDZBXHU3MkZDXHU3NDA1XHU3NDZGXHU4NzgyXHU5MERFXHU0Rjg2XHU1RDBEXHU1RkEwXHU4NDBBXHU1MUI3XHU2M0EwXHU3NTY1XHU0RUFFXHU1MDA2XHU1MTY5XHU1MUM5XHU2ODgxXHU2QTExXHU3Q0FFXHU3Q0IxXHU3Q0U3XHU4MjZGXHU4QUQyXHU4RjFCXHU5MUNGXHU0RkI2XHU1MTM3XHU1MkY1XHU1NDQyXHU1RUVDXHU2MTZFXHU2MjNFXHU2NUM1XHU2QURBXHU2RkZFXHU3OTJBXHU4NURDXHU4ODIzXHU5NUFEXHU5QTYyXHU5QTZBXHU5RTk3XHU5RUNFXHU1MjlCXHU2NkM2XHU2Qjc3XHU3MDFEXHU3OTJCXHU4RjYyXHU5NzQyXHU2MTkwXHU2MjAwXHU2NTIzXHU2RjIzXCJdLFxuW1wiZDZhMVwiLFwiXHU3MTQ5XHU3NDg5XHU3REY0XHU4MDZGXHU4NEVFXHU4RjI2XHU5MDIzXHU5MzRBXHU1MUJEXHU1MjE3XHU1MkEzXHU2RDBDXHU3MEM4XHU4OEMyXHU1RUM5XHU2NTgyXHU2QkFFXHU2RkMyXHU3QzNFXHU3Mzc1XHU0RUU0XHU0RjM2XHU1NkY5XHVGOTVGXHU1Q0JBXHU1REJBXHU2MDFDXHU3M0IyXHU3QjJEXHU3RjlBXHU3RkNFXHU4MDQ2XHU5MDFFXHU5MjM0XHU5NkY2XHU5NzQ4XHU5ODE4XHU5RjYxXHU0RjhCXHU2RkE3XHU3OUFFXHU5MUI0XHU5NkI3XHU1MkRFXHVGOTYwXHU2NDg4XHU2NEM0XHU2QUQzXHU2RjVFXHU3MDE4XHU3MjEwXHU3NkU3XHU4MDAxXHU4NjA2XHU4NjVDXHU4REVGXHU4RjA1XHU5NzMyXHU5QjZGXHU5REZBXHU5RTc1XHU3ODhDXHU3OTdGXHU3REEwXHU4M0M5XHU5MzA0XHU5RTdGXHU5RTkzXHU4QUQ2XHU1OERGXHU1RjA0XHU2NzI3XHU3MDI3XHU3NENGXHU3QzYwXHU4MDdFXHU1MTIxXHU3MDI4XHU3MjYyXHU3OENBXHU4Q0MyXHU4Q0RBXHU4Q0Y0XHU5NkY3XHU0RTg2XHU1MERBXHU1QkVFXHU1RUQ2XHU2NTk5XHU3MUNFXHU3NjQyXHU3N0FEXHU4MDRBXHU4NEZDXCJdLFxuW1wiZDdhMVwiLFwiXHU5MDdDXHU5QjI3XHU5RjhEXHU1OEQ4XHU1QTQxXHU1QzYyXHU2QTEzXHU2RERBXHU2RjBGXHU3NjNCXHU3RDJGXHU3RTM3XHU4NTFFXHU4OTM4XHU5M0U0XHU5NjRCXHU1Mjg5XHU2NUQyXHU2N0YzXHU2OUI0XHU2RDQxXHU2RTlDXHU3MDBGXHU3NDA5XHU3NDYwXHU3NTU5XHU3NjI0XHU3ODZCXHU4QjJDXHU5ODVFXHU1MTZEXHU2MjJFXHU5Njc4XHU0Rjk2XHU1MDJCXHU1RDE5XHU2REVBXHU3REI4XHU4RjJBXHU1RjhCXHU2MTQ0XHU2ODE3XHVGOTYxXHU5Njg2XHU1MkQyXHU4MDhCXHU1MURDXHU1MUNDXHU2OTVFXHU3QTFDXHU3REJFXHU4M0YxXHU5Njc1XHU0RkRBXHU1MjI5XHU1Mzk4XHU1NDBGXHU1NTBFXHU1QzY1XHU2MEE3XHU2NzRFXHU2OEE4XHU2RDZDXHU3MjgxXHU3MkY4XHU3NDA2XHU3NDgzXHVGOTYyXHU3NUUyXHU3QzZDXHU3Rjc5XHU3RkI4XHU4Mzg5XHU4OENGXHU4OEUxXHU5MUNDXHU5MUQwXHU5NkUyXHU5QkM5XHU1NDFEXHU2RjdFXHU3MUQwXHU3NDk4XHU4NUZBXHU4RUFBXHU5NkEzXHU5QzU3XHU5RTlGXHU2Nzk3XHU2RENCXHU3NDMzXHU4MUU4XHU5NzE2XHU3ODJDXCJdLFxuW1wiZDhhMVwiLFwiXHU3QUNCXHU3QjIwXHU3QzkyXHU2NDY5XHU3NDZBXHU3NUYyXHU3OEJDXHU3OEU4XHU5OUFDXHU5QjU0XHU5RUJCXHU1QkRFXHU1RTU1XHU2RjIwXHU4MTlDXHU4M0FCXHU5MDg4XHU0RTA3XHU1MzREXHU1QTI5XHU1REQyXHU1RjRFXHU2MTYyXHU2MzNEXHU2NjY5XHU2NkZDXHU2RUZGXHU2RjJCXHU3MDYzXHU3NzlFXHU4NDJDXHU4NTEzXHU4ODNCXHU4RjEzXHU5OTQ1XHU5QzNCXHU1NTFDXHU2MkI5XHU2NzJCXHU2Q0FCXHU4MzA5XHU4OTZBXHU5NzdBXHU0RUExXHU1OTg0XHU1RkQ4XHU1RkQ5XHU2NzFCXHU3REIyXHU3RjU0XHU4MjkyXHU4MzJCXHU4M0JEXHU4RjFFXHU5MDk5XHU1N0NCXHU1OUI5XHU1QTkyXHU1QkQwXHU2NjI3XHU2NzlBXHU2ODg1XHU2QkNGXHU3MTY0XHU3Rjc1XHU4Q0I3XHU4Q0UzXHU5MDgxXHU5QjQ1XHU4MTA4XHU4QzhBXHU5NjRDXHU5QTQwXHU5RUE1XHU1QjVGXHU2QzEzXHU3MzFCXHU3NkYyXHU3NkRGXHU4NDBDXHU1MUFBXHU4OTkzXHU1MTREXHU1MTk1XHU1MkM5XHU2OEM5XHU2Qzk0XHU3NzA0XHU3NzIwXHU3REJGXHU3REVDXHU5NzYyXHU5RUI1XHU2RUM1XCJdLFxuW1wiZDlhMVwiLFwiXHU4NTExXHU1MUE1XHU1NDBEXHU1NDdEXHU2NjBFXHU2NjlEXHU2OTI3XHU2RTlGXHU3NkJGXHU3NzkxXHU4MzE3XHU4NEMyXHU4NzlGXHU5MTY5XHU5Mjk4XHU5Q0Y0XHU4ODgyXHU0RkFFXHU1MTkyXHU1MkRGXHU1OUM2XHU1RTNEXHU2MTU1XHU2NDc4XHU2NDc5XHU2NkFFXHU2N0QwXHU2QTIxXHU2QkNEXHU2QkRCXHU3MjVGXHU3MjYxXHU3NDQxXHU3NzM4XHU3N0RCXHU4MDE3XHU4MkJDXHU4MzA1XHU4QjAwXHU4QjI4XHU4QzhDXHU2NzI4XHU2QzkwXHU3MjY3XHU3NkVFXHU3NzY2XHU3QTQ2XHU5REE5XHU2QjdGXHU2QzkyXHU1OTIyXHU2NzI2XHU4NDk5XHU1MzZGXHU1ODkzXHU1OTk5XHU1RURGXHU2M0NGXHU2NjM0XHU2NzczXHU2RTNBXHU3MzJCXHU3QUQ3XHU4MkQ3XHU5MzI4XHU1MkQ5XHU1REVCXHU2MUFFXHU2MUNCXHU2MjBBXHU2MkM3XHU2NEFCXHU2NUUwXHU2OTU5XHU2QjY2XHU2QkNCXHU3MTIxXHU3M0Y3XHU3NTVEXHU3RTQ2XHU4MjFFXHU4MzAyXHU4NTZBXHU4QUEzXHU4Q0JGXHU5NzI3XHU5RDYxXHU1OEE4XHU5RUQ4XHU1MDExXHU1MjBFXHU1NDNCXHU1NTRGXHU2NTg3XCJdLFxuW1wiZGFhMVwiLFwiXHU2Qzc2XHU3RDBBXHU3RDBCXHU4MDVFXHU4NjhBXHU5NTgwXHU5NkVGXHU1MkZGXHU2Qzk1XHU3MjY5XHU1NDczXHU1QTlBXHU1QzNFXHU1RDRCXHU1RjRDXHU1RkFFXHU2NzJBXHU2OEI2XHU2OTYzXHU2RTNDXHU2RTQ0XHU3NzA5XHU3QzczXHU3RjhFXHU4NTg3XHU4QjBFXHU4RkY3XHU5NzYxXHU5RUY0XHU1Q0I3XHU2MEI2XHU2MTBEXHU2MUFCXHU2NTRGXHU2NUZCXHU2NUZDXHU2QzExXHU2Q0VGXHU3MzlGXHU3M0M5XHU3REUxXHU5NTk0XHU1QkM2XHU4NzFDXHU4QjEwXHU1MjVEXHU1MzVBXHU2MkNEXHU2NDBGXHU2NEIyXHU2NzM0XHU2QTM4XHU2Q0NBXHU3M0MwXHU3NDlFXHU3Qjk0XHU3Qzk1XHU3RTFCXHU4MThBXHU4MjM2XHU4NTg0XHU4RkVCXHU5NkY5XHU5OUMxXHU0RjM0XHU1MzRBXHU1M0NEXHU1M0RCXHU2MkNDXHU2NDJDXHU2NTAwXHU2NTkxXHU2OUMzXHU2Q0VFXHU2RjU4XHU3M0VEXHU3NTU0XHU3NjIyXHU3NkU0XHU3NkZDXHU3OEQwXHU3OEZCXHU3OTJDXHU3RDQ2XHU4MjJDXHU4N0UwXHU4RkQ0XHU5ODEyXHU5OEVGXHU1MkMzXHU2MkQ0XHU2NEE1XHU2RTI0XHU2RjUxXCJdLFxuW1wiZGJhMVwiLFwiXHU3NjdDXHU4RENCXHU5MUIxXHU5MjYyXHU5QUVFXHU5QjQzXHU1MDIzXHU1MDhEXHU1NzRBXHU1OUE4XHU1QzI4XHU1RTQ3XHU1Rjc3XHU2MjNGXHU2NTNFXHU2NUI5XHU2NUMxXHU2NjA5XHU2NzhCXHU2OTlDXHU2RUMyXHU3OEM1XHU3RDIxXHU4MEFBXHU4MTgwXHU4MjJCXHU4MkIzXHU4NEExXHU4NjhDXHU4QTJBXHU4QjE3XHU5MEE2XHU5NjMyXHU5RjkwXHU1MDBEXHU0RkYzXHVGOTYzXHU1N0Y5XHU1Rjk4XHU2MkRDXHU2MzkyXHU2NzZGXHU2RTQzXHU3MTE5XHU3NkMzXHU4MENDXHU4MERBXHU4OEY0XHU4OEY1XHU4OTE5XHU4Q0UwXHU4RjI5XHU5MTREXHU5NjZBXHU0RjJGXHU0RjcwXHU1RTFCXHU2N0NGXHU2ODIyXHU3NjdEXHU3NjdFXHU5QjQ0XHU1RTYxXHU2QTBBXHU3MTY5XHU3MUQ0XHU3NTZBXHVGOTY0XHU3RTQxXHU4NTQzXHU4NUU5XHU5OERDXHU0RjEwXHU3QjRGXHU3RjcwXHU5NUE1XHU1MUUxXHU1RTA2XHU2OEI1XHU2QzNFXHU2QzRFXHU2Q0RCXHU3MkFGXHU3QkM0XHU4MzAzXHU2Q0Q1XHU3NDNBXHU1MEZCXHU1Mjg4XHU1OEMxXHU2NEQ4XHU2QTk3XHU3NEE3XHU3NjU2XCJdLFxuW1wiZGNhMVwiLFwiXHU3OEE3XHU4NjE3XHU5NUUyXHU5NzM5XHVGOTY1XHU1MzVFXHU1RjAxXHU4QjhBXHU4RkE4XHU4RkFGXHU5MDhBXHU1MjI1XHU3N0E1XHU5QzQ5XHU5RjA4XHU0RTE5XHU1MDAyXHU1MTc1XHU1QzVCXHU1RTc3XHU2NjFFXHU2NjNBXHU2N0M0XHU2OEM1XHU3MEIzXHU3NTAxXHU3NUM1XHU3OUM5XHU3QUREXHU4RjI3XHU5OTIwXHU5QTA4XHU0RkREXHU1ODIxXHU1ODMxXHU1QkY2XHU2NjZFXHU2QjY1XHU2RDExXHU2RTdBXHU2RjdEXHU3M0U0XHU3NTJCXHU4M0U5XHU4OERDXHU4OTEzXHU4QjVDXHU4RjE0XHU0RjBGXHU1MEQ1XHU1MzEwXHU1MzVDXHU1QjkzXHU1RkE5XHU2NzBEXHU3OThGXHU4MTc5XHU4MzJGXHU4NTE0XHU4OTA3XHU4OTg2XHU4RjM5XHU4RjNCXHU5OUE1XHU5QzEyXHU2NzJDXHU0RTc2XHU0RkY4XHU1OTQ5XHU1QzAxXHU1Q0VGXHU1Q0YwXHU2MzY3XHU2OEQyXHU3MEZEXHU3MUEyXHU3NDJCXHU3RTJCXHU4NEVDXHU4NzAyXHU5MDIyXHU5MkQyXHU5Q0YzXHU0RTBEXHU0RUQ4XHU0RkVGXHU1MDg1XHU1MjU2XHU1MjZGXHU1NDI2XHU1NDkwXHU1N0UwXHU1OTJCXHU1QTY2XCJdLFxuW1wiZGRhMVwiLFwiXHU1QjVBXHU1Qjc1XHU1QkNDXHU1RTlDXHVGOTY2XHU2Mjc2XHU2NTc3XHU2NUE3XHU2RDZFXHU2RUE1XHU3MjM2XHU3QjI2XHU3QzNGXHU3RjM2XHU4MTUwXHU4MTUxXHU4MTlBXHU4MjQwXHU4Mjk5XHU4M0E5XHU4QTAzXHU4Q0EwXHU4Q0U2XHU4Q0ZCXHU4RDc0XHU4REJBXHU5MEU4XHU5MURDXHU5NjFDXHU5NjQ0XHU5OUQ5XHU5Q0U3XHU1MzE3XHU1MjA2XHU1NDI5XHU1Njc0XHU1OEIzXHU1OTU0XHU1OTZFXHU1RkZGXHU2MUE0XHU2MjZFXHU2NjEwXHU2QzdFXHU3MTFBXHU3NkM2XHU3Qzg5XHU3Q0RFXHU3RDFCXHU4MkFDXHU4Q0MxXHU5NkYwXHVGOTY3XHU0RjVCXHU1RjE3XHU1RjdGXHU2MkMyXHU1RDI5XHU2NzBCXHU2OERBXHU3ODdDXHU3RTQzXHU5RDZDXHU0RTE1XHU1MDk5XHU1MzE1XHU1MzJBXHU1MzUxXHU1OTgzXHU1QTYyXHU1RTg3XHU2MEIyXHU2MThBXHU2MjQ5XHU2Mjc5XHU2NTkwXHU2Nzg3XHU2OUE3XHU2QkQ0XHU2QkQ2XHU2QkQ3XHU2QkQ4XHU2Q0I4XHVGOTY4XHU3NDM1XHU3NUZBXHU3ODEyXHU3ODkxXHU3OUQ1XHU3OUQ4XHU3QzgzXHU3RENCXHU3RkUxXHU4MEE1XCJdLFxuW1wiZGVhMVwiLFwiXHU4MTNFXHU4MUMyXHU4M0YyXHU4NzFBXHU4OEU4XHU4QUI5XHU4QjZDXHU4Q0JCXHU5MTE5XHU5NzVFXHU5OERCXHU5RjNCXHU1NkFDXHU1QjJBXHU1RjZDXHU2NThDXHU2QUIzXHU2QkFGXHU2RDVDXHU2RkYxXHU3MDE1XHU3MjVEXHU3M0FEXHU4Q0E3XHU4Q0QzXHU5ODNCXHU2MTkxXHU2QzM3XHU4MDU4XHU5QTAxXHU0RTREXHU0RThCXHU0RTlCXHU0RUQ1XHU0RjNBXHU0RjNDXHU0RjdGXHU0RkRGXHU1MEZGXHU1M0YyXHU1M0Y4XHU1NTA2XHU1NUUzXHU1NkRCXHU1OEVCXHU1OTYyXHU1QTExXHU1QkVCXHU1QkZBXHU1QzA0XHU1REYzXHU1RTJCXHU1Rjk5XHU2MDFEXHU2MzY4XHU2NTlDXHU2NUFGXHU2N0Y2XHU2N0ZCXHU2OEFEXHU2QjdCXHU2Qzk5XHU2Q0Q3XHU2RTIzXHU3MDA5XHU3MzQ1XHU3ODAyXHU3OTNFXHU3OTQwXHU3OTYwXHU3OUMxXHU3QkU5XHU3RDE3XHU3RDcyXHU4MDg2XHU4MjBEXHU4MzhFXHU4NEQxXHU4NkM3XHU4OERGXHU4QTUwXHU4QTVFXHU4QjFEXHU4Q0RDXHU4RDY2XHU4RkFEXHU5MEFBXHU5OEZDXHU5OURGXHU5RTlEXHU1MjRBXHVGOTY5XHU2NzE0XHVGOTZBXCJdLFxuW1wiZGZhMVwiLFwiXHU1MDk4XHU1MjJBXHU1QzcxXHU2NTYzXHU2QzU1XHU3M0NBXHU3NTIzXHU3NTlEXHU3Qjk3XHU4NDlDXHU5MTc4XHU5NzMwXHU0RTc3XHU2NDkyXHU2QkJBXHU3MTVFXHU4NUE5XHU0RTA5XHVGOTZCXHU2NzQ5XHU2OEVFXHU2RTE3XHU4MjlGXHU4NTE4XHU4ODZCXHU2M0Y3XHU2RjgxXHU5MjEyXHU5OEFGXHU0RTBBXHU1MEI3XHU1MENGXHU1MTFGXHU1NTQ2XHU1NUFBXHU1NjE3XHU1QjQwXHU1QzE5XHU1Q0UwXHU1RTM4XHU1RThBXHU1RUEwXHU1RUMyXHU2MEYzXHU2ODUxXHU2QTYxXHU2RTU4XHU3MjNEXHU3MjQwXHU3MkMwXHU3NkY4XHU3OTY1XHU3QkIxXHU3RkQ0XHU4OEYzXHU4OUY0XHU4QTczXHU4QzYxXHU4Q0RFXHU5NzFDXHU1ODVFXHU3NEJEXHU4Q0ZEXHU1NUM3XHVGOTZDXHU3QTYxXHU3RDIyXHU4MjcyXHU3MjcyXHU3NTFGXHU3NTI1XHVGOTZEXHU3QjE5XHU1ODg1XHU1OEZCXHU1REJDXHU1RThGXHU1RUI2XHU1RjkwXHU2MDU1XHU2MjkyXHU2MzdGXHU2NTREXHU2NjkxXHU2NkQ5XHU2NkY4XHU2ODE2XHU2OEYyXHU3MjgwXHU3NDVFXHU3QjZFXHU3RDZFXHU3REQ2XHU3RjcyXCJdLFxuW1wiZTBhMVwiLFwiXHU4MEU1XHU4MjEyXHU4NUFGXHU4OTdGXHU4QTkzXHU5MDFEXHU5MkU0XHU5RUNEXHU5RjIwXHU1OTE1XHU1OTZEXHU1RTJEXHU2MERDXHU2NjE0XHU2NjczXHU2NzkwXHU2QzUwXHU2REM1XHU2RjVGXHU3N0YzXHU3OEE5XHU4NEM2XHU5MUNCXHU5MzJCXHU0RUQ5XHU1MENBXHU1MTQ4XHU1NTg0XHU1QjBCXHU1QkEzXHU2MjQ3XHU2NTdFXHU2NUNCXHU2RTMyXHU3MTdEXHU3NDAxXHU3NDQ0XHU3NDg3XHU3NEJGXHU3NjZDXHU3OUFBXHU3RERBXHU3RTU1XHU3RkE4XHU4MTdBXHU4MUIzXHU4MjM5XHU4NjFBXHU4N0VDXHU4QTc1XHU4REUzXHU5MDc4XHU5MjkxXHU5NDI1XHU5OTREXHU5QkFFXHU1MzY4XHU1QzUxXHU2OTU0XHU2Q0M0XHU2RDI5XHU2RTJCXHU4MjBDXHU4NTlCXHU4OTNCXHU4QTJEXHU4QUFBXHU5NkVBXHU5RjY3XHU1MjYxXHU2NkI5XHU2QkIyXHU3RTk2XHU4N0ZFXHU4RDBEXHU5NTgzXHU5NjVEXHU2NTFEXHU2RDg5XHU3MUVFXHVGOTZFXHU1N0NFXHU1OUQzXHU1QkFDXHU2MDI3XHU2MEZBXHU2MjEwXHU2NjFGXHU2NjVGXHU3MzI5XHU3M0Y5XHU3NkRCXHU3NzAxXHU3QjZDXCJdLFxuW1wiZTFhMVwiLFwiXHU4MDU2XHU4MDcyXHU4MTY1XHU4QUEwXHU5MTkyXHU0RTE2XHU1MkUyXHU2QjcyXHU2RDE3XHU3QTA1XHU3QjM5XHU3RDMwXHVGOTZGXHU4Q0IwXHU1M0VDXHU1NjJGXHU1ODUxXHU1QkI1XHU1QzBGXHU1QzExXHU1REUyXHU2MjQwXHU2MzgzXHU2NDE0XHU2NjJEXHU2OEIzXHU2Q0JDXHU2RDg4XHU2RUFGXHU3MDFGXHU3MEE0XHU3MUQyXHU3NTI2XHU3NThGXHU3NThFXHU3NjE5XHU3QjExXHU3QkUwXHU3QzJCXHU3RDIwXHU3RDM5XHU4NTJDXHU4NTZEXHU4NjA3XHU4QTM0XHU5MDBEXHU5MDYxXHU5MEI1XHU5MkI3XHU5N0Y2XHU5QTM3XHU0RkQ3XHU1QzZDXHU2NzVGXHU2RDkxXHU3QzlGXHU3RThDXHU4QjE2XHU4RDE2XHU5MDFGXHU1QjZCXHU1REZEXHU2NDBEXHU4NEMwXHU5MDVDXHU5OEUxXHU3Mzg3XHU1QjhCXHU2MDlBXHU2NzdFXHU2RERFXHU4QTFGXHU4QUE2XHU5MDAxXHU5ODBDXHU1MjM3XHVGOTcwXHU3MDUxXHU3ODhFXHU5Mzk2XHU4ODcwXHU5MUQ3XHU0RkVFXHU1M0Q3XHU1NUZEXHU1NkRBXHU1NzgyXHU1OEZEXHU1QUMyXHU1Qjg4XHU1Q0FCXHU1Q0MwXHU1RTI1XHU2MTAxXCJdLFxuW1wiZTJhMVwiLFwiXHU2MjBEXHU2MjRCXHU2Mzg4XHU2NDFDXHU2NTM2XHU2NTc4XHU2QTM5XHU2QjhBXHU2QzM0XHU2RDE5XHU2RjMxXHU3MUU3XHU3MkU5XHU3Mzc4XHU3NDA3XHU3NEIyXHU3NjI2XHU3NzYxXHU3OUMwXHU3QTU3XHU3QUVBXHU3Q0I5XHU3RDhGXHU3REFDXHU3RTYxXHU3RjlFXHU4MTI5XHU4MzMxXHU4NDkwXHU4NERBXHU4NUVBXHU4ODk2XHU4QUIwXHU4QjkwXHU4RjM4XHU5MDQyXHU5MDgzXHU5MTZDXHU5Mjk2XHU5MkI5XHU5NjhCXHU5NkE3XHU5NkE4XHU5NkQ2XHU5NzAwXHU5ODA4XHU5OTk2XHU5QUQzXHU5QjFBXHU1M0Q0XHU1ODdFXHU1OTE5XHU1QjcwXHU1QkJGXHU2REQxXHU2RjVBXHU3MTlGXHU3NDIxXHU3NEI5XHU4MDg1XHU4M0ZEXHU1REUxXHU1Rjg3XHU1RkFBXHU2MDQyXHU2NUVDXHU2ODEyXHU2OTZGXHU2QTUzXHU2Qjg5XHU2RDM1XHU2REYzXHU3M0UzXHU3NkZFXHU3N0FDXHU3QjREXHU3RDE0XHU4MTIzXHU4MjFDXHU4MzQwXHU4NEY0XHU4NTYzXHU4QTYyXHU4QUM0XHU5MTg3XHU5MzFFXHU5ODA2XHU5OUI0XHU2MjBDXHU4ODUzXHU4RkYwXHU5MjY1XHU1RDA3XHU1RDI3XCJdLFxuW1wiZTNhMVwiLFwiXHU1RDY5XHU3NDVGXHU4MTlEXHU4NzY4XHU2RkQ1XHU2MkZFXHU3RkQyXHU4OTM2XHU4OTcyXHU0RTFFXHU0RTU4XHU1MEU3XHU1MkREXHU1MzQ3XHU2MjdGXHU2NjA3XHU3RTY5XHU4ODA1XHU5NjVFXHU0RjhEXHU1MzE5XHU1NjM2XHU1OUNCXHU1QUE0XHU1QzM4XHU1QzRFXHU1QzREXHU1RTAyXHU1RjExXHU2MDQzXHU2NUJEXHU2NjJGXHU2NjQyXHU2N0JFXHU2N0Y0XHU3MzFDXHU3N0UyXHU3OTNBXHU3RkM1XHU4NDk0XHU4NENEXHU4OTk2XHU4QTY2XHU4QTY5XHU4QUUxXHU4QzU1XHU4QzdBXHU1N0Y0XHU1QkQ0XHU1RjBGXHU2MDZGXHU2MkVEXHU2OTBEXHU2Qjk2XHU2RTVDXHU3MTg0XHU3QkQyXHU4NzU1XHU4QjU4XHU4RUZFXHU5OERGXHU5OEZFXHU0RjM4XHU0RjgxXHU0RkUxXHU1NDdCXHU1QTIwXHU1QkI4XHU2MTNDXHU2NUIwXHU2NjY4XHU3MUZDXHU3NTMzXHU3OTVFXHU3RDMzXHU4MTRFXHU4MUUzXHU4Mzk4XHU4NUFBXHU4NUNFXHU4NzAzXHU4QTBBXHU4RUFCXHU4RjlCXHVGOTcxXHU4RkM1XHU1OTMxXHU1QkE0XHU1QkU2XHU2MDg5XHU1QkU5XHU1QzBCXHU1RkMzXHU2QzgxXCJdLFxuW1wiZTRhMVwiLFwiXHVGOTcyXHU2REYxXHU3MDBCXHU3NTFBXHU4MkFGXHU4QUY2XHU0RUMwXHU1MzQxXHVGOTczXHU5NkQ5XHU2QzBGXHU0RTlFXHU0RkM0XHU1MTUyXHU1NTVFXHU1QTI1XHU1Q0U4XHU2MjExXHU3MjU5XHU4MkJEXHU4M0FBXHU4NkZFXHU4ODU5XHU4QTFEXHU5NjNGXHU5NkM1XHU5OTEzXHU5RDA5XHU5RDVEXHU1ODBBXHU1Q0IzXHU1REJEXHU1RTQ0XHU2MEUxXHU2MTE1XHU2M0UxXHU2QTAyXHU2RTI1XHU5MTAyXHU5MzU0XHU5ODRFXHU5QzEwXHU5Rjc3XHU1Qjg5XHU1Q0I4XHU2MzA5XHU2NjRGXHU2ODQ4XHU3NzNDXHU5NkMxXHU5NzhEXHU5ODU0XHU5QjlGXHU2NUExXHU4QjAxXHU4RUNCXHU5NUJDXHU1NTM1XHU1Q0E5XHU1REQ2XHU1RUI1XHU2Njk3XHU3NjRDXHU4M0Y0XHU5NUM3XHU1OEQzXHU2MkJDXHU3MkNFXHU5RDI4XHU0RUYwXHU1OTJFXHU2MDBGXHU2NjNCXHU2QjgzXHU3OUU3XHU5RDI2XHU1MzkzXHU1NEMwXHU1N0MzXHU1RDE2XHU2MTFCXHU2NkQ2XHU2REFGXHU3ODhEXHU4MjdFXHU5Njk4XHU5NzQ0XHU1Mzg0XHU2MjdDXHU2Mzk2XHU2REIyXHU3RTBBXHU4MTRCXHU5ODREXCJdLFxuW1wiZTVhMVwiLFwiXHU2QUZCXHU3RjRDXHU5REFGXHU5RTFBXHU0RTVGXHU1MDNCXHU1MUI2XHU1OTFDXHU2MEY5XHU2M0Y2XHU2OTMwXHU3MjNBXHU4MDM2XHVGOTc0XHU5MUNFXHU1RjMxXHVGOTc1XHVGOTc2XHU3RDA0XHU4MkU1XHU4NDZGXHU4NEJCXHU4NUU1XHU4RThEXHVGOTc3XHU0RjZGXHVGOTc4XHVGOTc5XHU1OEU0XHU1QjQzXHU2MDU5XHU2M0RBXHU2NTE4XHU2NTZEXHU2Njk4XHVGOTdBXHU2OTRBXHU2QTIzXHU2RDBCXHU3MDAxXHU3MTZDXHU3NUQyXHU3NjBEXHU3OUIzXHU3QTcwXHVGOTdCXHU3RjhBXHVGOTdDXHU4OTQ0XHVGOTdEXHU4QjkzXHU5MUMwXHU5NjdEXHVGOTdFXHU5OTBBXHU1NzA0XHU1RkExXHU2NUJDXHU2RjAxXHU3NjAwXHU3OUE2XHU4QTlFXHU5OUFEXHU5QjVBXHU5RjZDXHU1MTA0XHU2MUI2XHU2MjkxXHU2QThEXHU4MUM2XHU1MDQzXHU1ODMwXHU1RjY2XHU3MTA5XHU4QTAwXHU4QUZBXHU1QjdDXHU4NjE2XHU0RkZBXHU1MTNDXHU1NkI0XHU1OTQ0XHU2M0E5XHU2REY5XHU1REFBXHU2OTZEXHU1MTg2XHU0RTg4XHU0RjU5XHVGOTdGXHVGOTgwXHVGOTgxXHU1OTgyXHVGOTgyXCJdLFxuW1wiZTZhMVwiLFwiXHVGOTgzXHU2QjVGXHU2QzVEXHVGOTg0XHU3NEI1XHU3OTE2XHVGOTg1XHU4MjA3XHU4MjQ1XHU4MzM5XHU4RjNGXHU4RjVEXHVGOTg2XHU5OTE4XHVGOTg3XHVGOTg4XHVGOTg5XHU0RUE2XHVGOThBXHU1N0RGXHU1Rjc5XHU2NjEzXHVGOThCXHVGOThDXHU3NUFCXHU3RTc5XHU4QjZGXHVGOThEXHU5MDA2XHU5QTVCXHU1NkE1XHU1ODI3XHU1OUY4XHU1QTFGXHU1QkI0XHVGOThFXHU1RUY2XHVGOThGXHVGOTkwXHU2MzUwXHU2MzNCXHVGOTkxXHU2OTNEXHU2Qzg3XHU2Q0JGXHU2RDhFXHU2RDkzXHU2REY1XHU2RjE0XHVGOTkyXHU3MERGXHU3MTM2XHU3MTU5XHVGOTkzXHU3MUMzXHU3MUQ1XHVGOTk0XHU3ODRGXHU3ODZGXHVGOTk1XHU3Qjc1XHU3REUzXHVGOTk2XHU3RTJGXHVGOTk3XHU4ODREXHU4RURGXHVGOTk4XHVGOTk5XHVGOTlBXHU5MjVCXHVGOTlCXHU5Q0Y2XHVGOTlDXHVGOTlEXHVGOTlFXHU2MDg1XHU2RDg1XHVGOTlGXHU3MUIxXHVGOUEwXHVGOUExXHU5NUIxXHU1M0FEXHVGOUEyXHVGOUEzXHVGOUE0XHU2N0QzXHVGOUE1XHU3MDhFXHU3MTMwXHU3NDMwXHU4Mjc2XHU4MkQyXCJdLFxuW1wiZTdhMVwiLFwiXHVGOUE2XHU5NUJCXHU5QUU1XHU5RTdEXHU2NkM0XHVGOUE3XHU3MUMxXHU4NDQ5XHVGOUE4XHVGOUE5XHU1ODRCXHVGOUFBXHVGOUFCXHU1REI4XHU1RjcxXHVGOUFDXHU2NjIwXHU2NjhFXHU2OTc5XHU2OUFFXHU2QzM4XHU2Q0YzXHU2RTM2XHU2RjQxXHU2RkRBXHU3MDFCXHU3MDJGXHU3MTUwXHU3MURGXHU3MzcwXHVGOUFEXHU3NDVCXHVGOUFFXHU3NEQ0XHU3NkM4XHU3QTRFXHU3RTkzXHVGOUFGXHVGOUIwXHU4MkYxXHU4QTYwXHU4RkNFXHVGOUIxXHU5MzQ4XHVGOUIyXHU5NzE5XHVGOUIzXHVGOUI0XHU0RTQyXHU1MDJBXHVGOUI1XHU1MjA4XHU1M0UxXHU2NkYzXHU2QzZEXHU2RkNBXHU3MzBBXHU3NzdGXHU3QTYyXHU4MkFFXHU4NUREXHU4NjAyXHVGOUI2XHU4OEQ0XHU4QTYzXHU4QjdEXHU4QzZCXHVGOUI3XHU5MkIzXHVGOUI4XHU5NzEzXHU5ODEwXHU0RTk0XHU0RjBEXHU0RkM5XHU1MEIyXHU1MzQ4XHU1NDNFXHU1NDMzXHU1NURBXHU1ODYyXHU1OEJBXHU1OTY3XHU1QTFCXHU1QkU0XHU2MDlGXHVGOUI5XHU2MUNBXHU2NTU2XHU2NUZGXHU2NjY0XHU2OEE3XHU2QzVBXHU2RkIzXCJdLFxuW1wiZThhMVwiLFwiXHU3MENGXHU3MUFDXHU3MzUyXHU3QjdEXHU4NzA4XHU4QUE0XHU5QzMyXHU5RjA3XHU1QzRCXHU2QzgzXHU3MzQ0XHU3Mzg5XHU5MjNBXHU2RUFCXHU3NDY1XHU3NjFGXHU3QTY5XHU3RTE1XHU4NjBBXHU1MTQwXHU1OEM1XHU2NEMxXHU3NEVFXHU3NTE1XHU3NjcwXHU3RkMxXHU5MDk1XHU5NkNEXHU5OTU0XHU2RTI2XHU3NEU2XHU3QUE5XHU3QUFBXHU4MUU1XHU4NkQ5XHU4Nzc4XHU4QTFCXHU1QTQ5XHU1QjhDXHU1QjlCXHU2OEExXHU2OTAwXHU2RDYzXHU3M0E5XHU3NDEzXHU3NDJDXHU3ODk3XHU3REU5XHU3RkVCXHU4MTE4XHU4MTU1XHU4MzlFXHU4QzRDXHU5NjJFXHU5ODExXHU2NkYwXHU1RjgwXHU2NUZBXHU2Nzg5XHU2QzZBXHU3MzhCXHU1MDJEXHU1QTAzXHU2QjZBXHU3N0VFXHU1OTE2XHU1RDZDXHU1RENEXHU3MzI1XHU3NTRGXHVGOUJBXHVGOUJCXHU1MEU1XHU1MUY5XHU1ODJGXHU1OTJEXHU1OTk2XHU1OURBXHU1QkU1XHVGOUJDXHVGOUJEXHU1REEyXHU2MkQ3XHU2NDE2XHU2NDkzXHU2NEZFXHVGOUJFXHU2NkRDXHVGOUJGXHU2QTQ4XHVGOUMwXHU3MUZGXHU3NDY0XHVGOUMxXCJdLFxuW1wiZTlhMVwiLFwiXHU3QTg4XHU3QUFGXHU3RTQ3XHU3RTVFXHU4MDAwXHU4MTcwXHVGOUMyXHU4N0VGXHU4OTgxXHU4QjIwXHU5MDU5XHVGOUMzXHU5MDgwXHU5OTUyXHU2MTdFXHU2QjMyXHU2RDc0XHU3RTFGXHU4OTI1XHU4RkIxXHU0RkQxXHU1MEFEXHU1MTk3XHU1MkM3XHU1N0M3XHU1ODg5XHU1QkI5XHU1RUI4XHU2MTQyXHU2OTk1XHU2RDhDXHU2RTY3XHU2RUI2XHU3MTk0XHU3NDYyXHU3NTI4XHU3NTJDXHU4MDczXHU4MzM4XHU4NEM5XHU4RTBBXHU5Mzk0XHU5M0RFXHVGOUM0XHU0RThFXHU0RjUxXHU1MDc2XHU1MTJBXHU1M0M4XHU1M0NCXHU1M0YzXHU1Qjg3XHU1QkQzXHU1QzI0XHU2MTFBXHU2MTgyXHU2NUY0XHU3MjVCXHU3Mzk3XHU3NDQwXHU3NkMyXHU3OTUwXHU3OTkxXHU3OUI5XHU3RDA2XHU3RkJEXHU4MjhCXHU4NUQ1XHU4NjVFXHU4RkMyXHU5MDQ3XHU5MEY1XHU5MUVBXHU5Njg1XHU5NkU4XHU5NkU5XHU1MkQ2XHU1RjY3XHU2NUVEXHU2NjMxXHU2ODJGXHU3MTVDXHU3QTM2XHU5MEMxXHU5ODBBXHU0RTkxXHVGOUM1XHU2QTUyXHU2QjlFXHU2RjkwXHU3MTg5XHU4MDE4XHU4MkI4XHU4NTUzXCJdLFxuW1wiZWFhMVwiLFwiXHU5MDRCXHU5Njk1XHU5NkYyXHU5N0ZCXHU4NTFBXHU5QjMxXHU0RTkwXHU3MThBXHU5NkM0XHU1MTQzXHU1MzlGXHU1NEUxXHU1NzEzXHU1NzEyXHU1N0EzXHU1QTlCXHU1QUM0XHU1QkMzXHU2MDI4XHU2MTNGXHU2M0Y0XHU2Qzg1XHU2RDM5XHU2RTcyXHU2RTkwXHU3MjMwXHU3MzNGXHU3NDU3XHU4MkQxXHU4ODgxXHU4RjQ1XHU5MDYwXHVGOUM2XHU5NjYyXHU5ODU4XHU5RDFCXHU2NzA4XHU4RDhBXHU5MjVFXHU0RjREXHU1MDQ5XHU1MERFXHU1MzcxXHU1NzBEXHU1OUQ0XHU1QTAxXHU1QzA5XHU2MTcwXHU2NjkwXHU2RTJEXHU3MjMyXHU3NDRCXHU3REVGXHU4MEMzXHU4NDBFXHU4NDY2XHU4NTNGXHU4NzVGXHU4ODVCXHU4OTE4XHU4QjAyXHU5MDU1XHU5N0NCXHU5QjRGXHU0RTczXHU0RjkxXHU1MTEyXHU1MTZBXHVGOUM3XHU1NTJGXHU1NUE5XHU1QjdBXHU1QkE1XHU1RTdDXHU1RTdEXHU1RUJFXHU2MEEwXHU2MERGXHU2MTA4XHU2MTA5XHU2M0M0XHU2NTM4XHU2NzA5XHVGOUM4XHU2N0Q0XHU2N0RBXHVGOUM5XHU2OTYxXHU2OTYyXHU2Q0I5XHU2RDI3XHVGOUNBXHU2RTM4XHVGOUNCXCJdLFxuW1wiZWJhMVwiLFwiXHU2RkUxXHU3MzM2XHU3MzM3XHVGOUNDXHU3NDVDXHU3NTMxXHVGOUNEXHU3NjUyXHVGOUNFXHVGOUNGXHU3REFEXHU4MUZFXHU4NDM4XHU4OEQ1XHU4QTk4XHU4QURCXHU4QUVEXHU4RTMwXHU4RTQyXHU5MDRBXHU5MDNFXHU5MDdBXHU5MTQ5XHU5MUM5XHU5MzZFXHVGOUQwXHVGOUQxXHU1ODA5XHVGOUQyXHU2QkQzXHU4MDg5XHU4MEIyXHVGOUQzXHVGOUQ0XHU1MTQxXHU1OTZCXHU1QzM5XHVGOUQ1XHVGOUQ2XHU2RjY0XHU3M0E3XHU4MEU0XHU4RDA3XHVGOUQ3XHU5MjE3XHU5NThGXHVGOUQ4XHVGOUQ5XHVGOURBXHVGOURCXHU4MDdGXHU2MjBFXHU3MDFDXHU3RDY4XHU4NzhEXHVGOURDXHU1N0EwXHU2MDY5XHU2MTQ3XHU2QkI3XHU4QUJFXHU5MjgwXHU5NkIxXHU0RTU5XHU1NDFGXHU2REVCXHU4NTJEXHU5NjcwXHU5N0YzXHU5OEVFXHU2M0Q2XHU2Q0UzXHU5MDkxXHU1MUREXHU2MUM5XHU4MUJBXHU5REY5XHU0RjlEXHU1MDFBXHU1MTAwXHU1QjlDXHU2MTBGXHU2MUZGXHU2NEVDXHU2OTA1XHU2QkM1XHU3NTkxXHU3N0UzXHU3RkE5XHU4MjY0XHU4NThGXHU4N0ZCXHU4ODYzXHU4QUJDXCJdLFxuW1wiZWNhMVwiLFwiXHU4QjcwXHU5MUFCXHU0RThDXHU0RUU1XHU0RjBBXHVGOUREXHVGOURFXHU1OTM3XHU1OUU4XHVGOURGXHU1REYyXHU1RjFCXHU1RjVCXHU2MDIxXHVGOUUwXHVGOUUxXHVGOUUyXHVGOUUzXHU3MjNFXHU3M0U1XHVGOUU0XHU3NTcwXHU3NUNEXHVGOUU1XHU3OUZCXHVGOUU2XHU4MDBDXHU4MDMzXHU4MDg0XHU4MkUxXHU4MzUxXHVGOUU3XHVGOUU4XHU4Q0JEXHU4Q0IzXHU5MDg3XHVGOUU5XHVGOUVBXHU5OEY0XHU5OTBDXHVGOUVCXHVGOUVDXHU3MDM3XHU3NkNBXHU3RkNBXHU3RkNDXHU3RkZDXHU4QjFBXHU0RUJBXHU0RUMxXHU1MjAzXHU1MzcwXHVGOUVEXHU1NEJEXHU1NkUwXHU1OUZCXHU1QkM1XHU1RjE1XHU1RkNEXHU2RTZFXHVGOUVFXHVGOUVGXHU3RDZBXHU4MzM1XHVGOUYwXHU4NjkzXHU4QThEXHVGOUYxXHU5NzZEXHU5Nzc3XHVGOUYyXHVGOUYzXHU0RTAwXHU0RjVBXHU0RjdFXHU1OEY5XHU2NUU1XHU2RUEyXHU5MDM4XHU5M0IwXHU5OUI5XHU0RUZCXHU1OEVDXHU1OThBXHU1OUQ5XHU2MDQxXHVGOUY0XHVGOUY1XHU3QTE0XHVGOUY2XHU4MzRGXHU4Q0MzXHU1MTY1XHU1MzQ0XCJdLFxuW1wiZWRhMVwiLFwiXHVGOUY3XHVGOUY4XHVGOUY5XHU0RUNEXHU1MjY5XHU1QjU1XHU4MkJGXHU0RUQ0XHU1MjNBXHU1NEE4XHU1OUM5XHU1OUZGXHU1QjUwXHU1QjU3XHU1QjVDXHU2MDYzXHU2MTQ4XHU2RUNCXHU3MDk5XHU3MTZFXHU3Mzg2XHU3NEY3XHU3NUI1XHU3OEMxXHU3RDJCXHU4MDA1XHU4MUVBXHU4MzI4XHU4NTE3XHU4NUM5XHU4QUVFXHU4Q0M3XHU5NkNDXHU0RjVDXHU1MkZBXHU1NkJDXHU2NUFCXHU2NjI4XHU3MDdDXHU3MEI4XHU3MjM1XHU3REJEXHU4MjhEXHU5MTRDXHU5NkMwXHU5RDcyXHU1QjcxXHU2OEU3XHU2Qjk4XHU2RjdBXHU3NkRFXHU1QzkxXHU2NkFCXHU2RjVCXHU3QkI0XHU3QzJBXHU4ODM2XHU5NkRDXHU0RTA4XHU0RUQ3XHU1MzIwXHU1ODM0XHU1OEJCXHU1OEVGXHU1OTZDXHU1QzA3XHU1RTMzXHU1RTg0XHU1RjM1XHU2MzhDXHU2NkIyXHU2NzU2XHU2QTFGXHU2QUEzXHU2QjBDXHU2RjNGXHU3MjQ2XHVGOUZBXHU3MzUwXHU3NDhCXHU3QUUwXHU3Q0E3XHU4MTc4XHU4MURGXHU4MUU3XHU4MzhBXHU4NDZDXHU4NTIzXHU4NTk0XHU4NUNGXHU4OEREXHU4RDEzXHU5MUFDXHU5NTc3XCJdLFxuW1wiZWVhMVwiLFwiXHU5NjlDXHU1MThEXHU1NEM5XHU1NzI4XHU1QkIwXHU2MjREXHU2NzUwXHU2ODNEXHU2ODkzXHU2RTNEXHU2RUQzXHU3MDdEXHU3RTIxXHU4OEMxXHU4Q0ExXHU4RjA5XHU5RjRCXHU5RjRFXHU3MjJEXHU3QjhGXHU4QUNEXHU5MzFBXHU0RjQ3XHU0RjRFXHU1MTMyXHU1NDgwXHU1OUQwXHU1RTk1XHU2MkI1XHU2Nzc1XHU2OTZFXHU2QTE3XHU2Q0FFXHU2RTFBXHU3MkQ5XHU3MzJBXHU3NUJEXHU3QkI4XHU3RDM1XHU4MkU3XHU4M0Y5XHU4NDU3XHU4NUY3XHU4QTVCXHU4Q0FGXHU4RTg3XHU5MDE5XHU5MEI4XHU5NkNFXHU5RjVGXHU1MkUzXHU1NDBBXHU1QUUxXHU1QkMyXHU2NDU4XHU2NTc1XHU2RUY0XHU3MkM0XHVGOUZCXHU3Njg0XHU3QTREXHU3QjFCXHU3QzREXHU3RTNFXHU3RkRGXHU4MzdCXHU4QjJCXHU4Q0NBXHU4RDY0XHU4REUxXHU4RTVGXHU4RkVBXHU4RkY5XHU5MDY5XHU5M0QxXHU0RjQzXHU0RjdBXHU1MEIzXHU1MTY4XHU1MTc4XHU1MjREXHU1MjZBXHU1ODYxXHU1ODdDXHU1OTYwXHU1QzA4XHU1QzU1XHU1RURCXHU2MDlCXHU2MjMwXHU2ODEzXHU2QkJGXHU2QzA4XHU2RkIxXCJdLFxuW1wiZWZhMVwiLFwiXHU3MTRFXHU3NDIwXHU3NTMwXHU3NTM4XHU3NTUxXHU3NjcyXHU3QjRDXHU3QjhCXHU3QkFEXHU3QkM2XHU3RThGXHU4QTZFXHU4RjNFXHU4RjQ5XHU5MjNGXHU5MjkzXHU5MzIyXHU5NDJCXHU5NkZCXHU5ODVBXHU5ODZCXHU5OTFFXHU1MjA3XHU2MjJBXHU2Mjk4XHU2RDU5XHU3NjY0XHU3QUNBXHU3QkMwXHU3RDc2XHU1MzYwXHU1Q0JFXHU1RTk3XHU2RjM4XHU3MEI5XHU3Qzk4XHU5NzExXHU5QjhFXHU5RURFXHU2M0E1XHU2NDdBXHU4Nzc2XHU0RTAxXHU0RTk1XHU0RUFEXHU1MDVDXHU1MDc1XHU1NDQ4XHU1OUMzXHU1QjlBXHU1RTQwXHU1RUFEXHU1RUY3XHU1RjgxXHU2MEM1XHU2MzNBXHU2NTNGXHU2NTc0XHU2NUNDXHU2Njc2XHU2Njc4XHU2N0ZFXHU2OTY4XHU2QTg5XHU2QjYzXHU2QzQwXHU2REMwXHU2REU4XHU2RTFGXHU2RTVFXHU3MDFFXHU3MEExXHU3MzhFXHU3M0ZEXHU3NTNBXHU3NzVCXHU3ODg3XHU3OThFXHU3QTBCXHU3QTdEXHU3Q0JFXHU3RDhFXHU4MjQ3XHU4QTAyXHU4QUVBXHU4QzlFXHU5MTJEXHU5MTRBXHU5MUQ4XHU5MjY2XHU5MkNDXHU5MzIwXHU5NzA2XHU5NzU2XCJdLFxuW1wiZjBhMVwiLFwiXHU5NzVDXHU5ODAyXHU5RjBFXHU1MjM2XHU1MjkxXHU1NTdDXHU1ODI0XHU1RTFEXHU1RjFGXHU2MDhDXHU2M0QwXHU2OEFGXHU2RkRGXHU3OTZEXHU3QjJDXHU4MUNEXHU4NUJBXHU4OEZEXHU4QUY4XHU4RTQ0XHU5MThEXHU5NjY0XHU5NjlCXHU5NzNEXHU5ODRDXHU5RjRBXHU0RkNFXHU1MTQ2XHU1MUNCXHU1MkE5XHU1NjMyXHU1RjE0XHU1RjZCXHU2M0FBXHU2NENEXHU2NUU5XHU2NjQxXHU2NkZBXHU2NkY5XHU2NzFEXHU2ODlEXHU2OEQ3XHU2OUZEXHU2RjE1XHU2RjZFXHU3MTY3XHU3MUU1XHU3MjJBXHU3NEFBXHU3NzNBXHU3OTU2XHU3OTVBXHU3OURGXHU3QTIwXHU3QTk1XHU3Qzk3XHU3Q0RGXHU3RDQ0XHU3RTcwXHU4MDg3XHU4NUZCXHU4NkE0XHU4QTU0XHU4QUJGXHU4RDk5XHU4RTgxXHU5MDIwXHU5MDZEXHU5MUUzXHU5NjNCXHU5NkQ1XHU5Q0U1XHU2NUNGXHU3QzA3XHU4REIzXHU5M0MzXHU1QjU4XHU1QzBBXHU1MzUyXHU2MkQ5XHU3MzFEXHU1MDI3XHU1Qjk3XHU1RjlFXHU2MEIwXHU2MTZCXHU2OEQ1XHU2REQ5XHU3NDJFXHU3QTJFXHU3RDQyXHU3RDlDXHU3RTMxXHU4MTZCXCJdLFxuW1wiZjFhMVwiLFwiXHU4RTJBXHU4RTM1XHU5MzdFXHU5NDE4XHU0RjUwXHU1NzUwXHU1REU2XHU1RUE3XHU2MzJCXHU3RjZBXHU0RTNCXHU0RjRGXHU0RjhGXHU1MDVBXHU1OUREXHU4MEM0XHU1NDZBXHU1NDY4XHU1NUZFXHU1OTRGXHU1Qjk5XHU1RERFXHU1RURBXHU2NjVEXHU2NzMxXHU2N0YxXHU2ODJBXHU2Q0U4XHU2RDMyXHU2RTRBXHU2RjhEXHU3MEI3XHU3M0UwXHU3NTg3XHU3QzRDXHU3RDAyXHU3RDJDXHU3REEyXHU4MjFGXHU4NkRCXHU4QTNCXHU4QTg1XHU4RDcwXHU4RThBXHU4RjMzXHU5MDMxXHU5MTRFXHU5MTUyXHU5NDQ0XHU5OUQwXHU3QUY5XHU3Q0E1XHU0RkNBXHU1MTAxXHU1MUM2XHU1N0M4XHU1QkVGXHU1Q0ZCXHU2NjU5XHU2QTNEXHU2RDVBXHU2RTk2XHU2RkVDXHU3MTBDXHU3NTZGXHU3QUUzXHU4ODIyXHU5MDIxXHU5MDc1XHU5NkNCXHU5OUZGXHU4MzAxXHU0RTJEXHU0RUYyXHU4ODQ2XHU5MUNEXHU1MzdEXHU2QURCXHU2OTZCXHU2QzQxXHU4NDdBXHU1ODlFXHU2MThFXHU2NkZFXHU2MkVGXHU3MEREXHU3NTExXHU3NUM3XHU3RTUyXHU4NEI4XHU4QjQ5XHU4RDA4XHU0RTRCXHU1M0VBXCJdLFxuW1wiZjJhMVwiLFwiXHU1NEFCXHU1NzMwXHU1NzQwXHU1RkQ3XHU2MzAxXHU2MzA3XHU2NDZGXHU2NTJGXHU2NUU4XHU2NjdBXHU2NzlEXHU2N0IzXHU2QjYyXHU2QzYwXHU2QzlBXHU2RjJDXHU3N0U1XHU3ODI1XHU3OTQ5XHU3OTU3XHU3RDE5XHU4MEEyXHU4MTAyXHU4MUYzXHU4MjlEXHU4MkI3XHU4NzE4XHU4QThDXHVGOUZDXHU4RDA0XHU4REJFXHU5MDcyXHU3NkY0XHU3QTE5XHU3QTM3XHU3RTU0XHU4MDc3XHU1NTA3XHU1NUQ0XHU1ODc1XHU2MzJGXHU2NDIyXHU2NjQ5XHU2NjRCXHU2ODZEXHU2OTlCXHU2Qjg0XHU2RDI1XHU2RUIxXHU3M0NEXHU3NDY4XHU3NEExXHU3NTVCXHU3NUI5XHU3NkUxXHU3NzFFXHU3NzhCXHU3OUU2XHU3RTA5XHU3RTFEXHU4MUZCXHU4NTJGXHU4ODk3XHU4QTNBXHU4Q0QxXHU4RUVCXHU4RkIwXHU5MDMyXHU5M0FEXHU5NjYzXHU5NjczXHU5NzA3XHU0Rjg0XHU1M0YxXHU1OUVBXHU1QUM5XHU1RTE5XHU2ODRFXHU3NEM2XHU3NUJFXHU3OUU5XHU3QTkyXHU4MUEzXHU4NkVEXHU4Q0VBXHU4RENDXHU4RkVEXHU2NTlGXHU2NzE1XHVGOUZEXHU1N0Y3XHU2RjU3XHU3REREXHU4RjJGXCJdLFxuW1wiZjNhMVwiLFwiXHU5M0Y2XHU5NkM2XHU1RkI1XHU2MUYyXHU2Rjg0XHU0RTE0XHU0Rjk4XHU1MDFGXHU1M0M5XHU1NURGXHU1RDZGXHU1REVFXHU2QjIxXHU2QjY0XHU3OENCXHU3QjlBXHVGOUZFXHU4RTQ5XHU4RUNBXHU5MDZFXHU2MzQ5XHU2NDNFXHU3NzQwXHU3QTg0XHU5MzJGXHU5NDdGXHU5RjZBXHU2NEIwXHU2RkFGXHU3MUU2XHU3NEE4XHU3NERBXHU3QUM0XHU3QzEyXHU3RTgyXHU3Q0IyXHU3RTk4XHU4QjlBXHU4RDBBXHU5NDdEXHU5OTEwXHU5OTRDXHU1MjM5XHU1QkRGXHU2NEU2XHU2NzJEXHU3RDJFXHU1MEVEXHU1M0MzXHU1ODc5XHU2MTU4XHU2MTU5XHU2MUZBXHU2NUFDXHU3QUQ5XHU4QjkyXHU4Qjk2XHU1MDA5XHU1MDIxXHU1Mjc1XHU1NTMxXHU1QTNDXHU1RUUwXHU1RjcwXHU2MTM0XHU2NTVFXHU2NjBDXHU2NjM2XHU2NkEyXHU2OUNEXHU2RUM0XHU2RjMyXHU3MzE2XHU3NjIxXHU3QTkzXHU4MTM5XHU4MjU5XHU4M0Q2XHU4NEJDXHU1MEI1XHU1N0YwXHU1QkMwXHU1QkU4XHU1RjY5XHU2M0ExXHU3ODI2XHU3REI1XHU4M0RDXHU4NTIxXHU5MUM3XHU5MUY1XHU1MThBXHU2N0Y1XHU3QjU2XCJdLFxuW1wiZjRhMVwiLFwiXHU4Q0FDXHU1MUM0XHU1OUJCXHU2MEJEXHU4NjU1XHU1MDFDXHVGOUZGXHU1MjU0XHU1QzNBXHU2MTdEXHU2MjFBXHU2MkQzXHU2NEYyXHU2NUE1XHU2RUNDXHU3NjIwXHU4MTBBXHU4RTYwXHU5NjVGXHU5NkJCXHU0RURGXHU1MzQzXHU1NTk4XHU1OTI5XHU1REREXHU2NEM1XHU2Q0M5XHU2REZBXHU3Mzk0XHU3QTdGXHU4MjFCXHU4NUE2XHU4Q0U0XHU4RTEwXHU5MDc3XHU5MUU3XHU5NUUxXHU5NjIxXHU5N0M2XHU1MUY4XHU1NEYyXHU1NTg2XHU1RkI5XHU2NEE0XHU2Rjg4XHU3REI0XHU4RjFGXHU4RjREXHU5NDM1XHU1MEM5XHU1QzE2XHU2Q0JFXHU2REZCXHU3NTFCXHU3N0JCXHU3QzNEXHU3QzY0XHU4QTc5XHU4QUMyXHU1ODFFXHU1OUJFXHU1RTE2XHU2Mzc3XHU3MjUyXHU3NThBXHU3NzZCXHU4QURDXHU4Q0JDXHU4RjEyXHU1RUYzXHU2Njc0XHU2REY4XHU4MDdEXHU4M0MxXHU4QUNCXHU5NzUxXHU5QkQ2XHVGQTAwXHU1MjQzXHU2NkZGXHU2RDk1XHU2RUVGXHU3REUwXHU4QUU2XHU5MDJFXHU5MDVFXHU5QUQ0XHU1MjFEXHU1MjdGXHU1NEU4XHU2MTk0XHU2Mjg0XHU2MkRCXHU2OEEyXCJdLFxuW1wiZjVhMVwiLFwiXHU2OTEyXHU2OTVBXHU2QTM1XHU3MDkyXHU3MTI2XHU3ODVEXHU3OTAxXHU3OTBFXHU3OUQyXHU3QTBEXHU4MDk2XHU4Mjc4XHU4MkQ1XHU4MzQ5XHU4NTQ5XHU4QzgyXHU4RDg1XHU5MTYyXHU5MThCXHU5MUFFXHU0RkMzXHU1NkQxXHU3MUVEXHU3N0Q3XHU4NzAwXHU4OUY4XHU1QkY4XHU1RkQ2XHU2NzUxXHU5MEE4XHU1M0UyXHU1ODVBXHU1QkY1XHU2MEE0XHU2MTgxXHU2NDYwXHU3RTNEXHU4MDcwXHU4NTI1XHU5MjgzXHU2NEFFXHU1MEFDXHU1RDE0XHU2NzAwXHU1ODlDXHU2MkJEXHU2M0E4XHU2OTBFXHU2OTc4XHU2QTFFXHU2RTZCXHU3NkJBXHU3OUNCXHU4MkJCXHU4NDI5XHU4QUNGXHU4REE4XHU4RkZEXHU5MTEyXHU5MTRCXHU5MTlDXHU5MzEwXHU5MzE4XHU5MzlBXHU5NkRCXHU5QTM2XHU5QzBEXHU0RTExXHU3NTVDXHU3OTVEXHU3QUZBXHU3QjUxXHU3QkM5XHU3RTJFXHU4NEM0XHU4RTU5XHU4RTc0XHU4RUY4XHU5MDEwXHU2NjI1XHU2OTNGXHU3NDQzXHU1MUZBXHU2NzJFXHU5RURDXHU1MTQ1XHU1RkUwXHU2Qzk2XHU4N0YyXHU4ODVEXHU4ODc3XHU2MEI0XHU4MUI1XHU4NDAzXCJdLFxuW1wiZjZhMVwiLFwiXHU4RDA1XHU1M0Q2XHU1NDM5XHU1NjM0XHU1QTM2XHU1QzMxXHU3MDhBXHU3RkUwXHU4MDVBXHU4MTA2XHU4MUVEXHU4REEzXHU5MTg5XHU5QTVGXHU5REYyXHU1MDc0XHU0RUM0XHU1M0EwXHU2MEZCXHU2RTJDXHU1QzY0XHU0Rjg4XHU1MDI0XHU1NUU0XHU1Q0Q5XHU1RTVGXHU2MDY1XHU2ODk0XHU2Q0JCXHU2REM0XHU3MUJFXHU3NUQ0XHU3NUY0XHU3NjYxXHU3QTFBXHU3QTQ5XHU3REM3XHU3REZCXHU3RjZFXHU4MUY0XHU4NkE5XHU4RjFDXHU5NkM5XHU5OUIzXHU5RjUyXHU1MjQ3XHU1MkM1XHU5OEVEXHU4OUFBXHU0RTAzXHU2N0QyXHU2RjA2XHU0RkI1XHU1QkUyXHU2Nzk1XHU2Qzg4XHU2RDc4XHU3NDFCXHU3ODI3XHU5MUREXHU5MzdDXHU4N0M0XHU3OUU0XHU3QTMxXHU1RkVCXHU0RUQ2XHU1NEE0XHU1NTNFXHU1OEFFXHU1OUE1XHU2MEYwXHU2MjUzXHU2MkQ2XHU2NzM2XHU2OTU1XHU4MjM1XHU5NjQwXHU5OUIxXHU5OUREXHU1MDJDXHU1MzUzXHU1NTQ0XHU1NzdDXHVGQTAxXHU2MjU4XHVGQTAyXHU2NEUyXHU2NjZCXHU2N0REXHU2RkMxXHU2RkVGXHU3NDIyXHU3NDM4XHU4QTE3XCJdLFxuW1wiZjdhMVwiLFwiXHU5NDM4XHU1NDUxXHU1NjA2XHU1NzY2XHU1RjQ4XHU2MTlBXHU2QjRFXHU3MDU4XHU3MEFEXHU3REJCXHU4QTk1XHU1OTZBXHU4MTJCXHU2M0EyXHU3NzA4XHU4MDNEXHU4Q0FBXHU1ODU0XHU2NDJEXHU2OUJCXHU1Qjk1XHU1RTExXHU2RTZGXHVGQTAzXHU4NTY5XHU1MTRDXHU1M0YwXHU1OTJBXHU2MDIwXHU2MTRCXHU2Qjg2XHU2QzcwXHU2Q0YwXHU3QjFFXHU4MENFXHU4MkQ0XHU4REM2XHU5MEIwXHU5OEIxXHVGQTA0XHU2NEM3XHU2RkE0XHU2NDkxXHU2NTA0XHU1MTRFXHU1NDEwXHU1NzFGXHU4QTBFXHU2MTVGXHU2ODc2XHVGQTA1XHU3NURCXHU3QjUyXHU3RDcxXHU5MDFBXHU1ODA2XHU2OUNDXHU4MTdGXHU4OTJBXHU5MDAwXHU5ODM5XHU1MDc4XHU1OTU3XHU1OUFDXHU2Mjk1XHU5MDBGXHU5QjJBXHU2MTVEXHU3Mjc5XHU5NUQ2XHU1NzYxXHU1QTQ2XHU1REY0XHU2MjhBXHU2NEFEXHU2NEZBXHU2Nzc3XHU2Q0UyXHU2RDNFXHU3MjJDXHU3NDM2XHU3ODM0XHU3Rjc3XHU4MkFEXHU4RERCXHU5ODE3XHU1MjI0XHU1NzQyXHU2NzdGXHU3MjQ4XHU3NEUzXHU4Q0E5XHU4RkE2XHU5MjExXCJdLFxuW1wiZjhhMVwiLFwiXHU5NjJBXHU1MTZCXHU1M0VEXHU2MzRDXHU0RjY5XHU1NTA0XHU2MDk2XHU2NTU3XHU2QzlCXHU2RDdGXHU3MjRDXHU3MkZEXHU3QTE3XHU4OTg3XHU4QzlEXHU1RjZEXHU2RjhFXHU3MEY5XHU4MUE4XHU2MTBFXHU0RkJGXHU1MDRGXHU2MjQxXHU3MjQ3XHU3QkM3XHU3REU4XHU3RkU5XHU5MDREXHU5N0FEXHU5QTE5XHU4Q0I2XHU1NzZBXHU1RTczXHU2N0IwXHU4NDBEXHU4QTU1XHU1NDIwXHU1QjE2XHU1RTYzXHU1RUUyXHU1RjBBXHU2NTgzXHU4MEJBXHU4NTNEXHU5NTg5XHU5NjVCXHU0RjQ4XHU1MzA1XHU1MzBEXHU1MzBGXHU1NDg2XHU1NEZBXHU1NzAzXHU1RTAzXHU2MDE2XHU2MjlCXHU2MkIxXHU2MzU1XHVGQTA2XHU2Q0UxXHU2RDY2XHU3NUIxXHU3ODMyXHU4MERFXHU4MTJGXHU4MkRFXHU4NDYxXHU4NEIyXHU4ODhEXHU4OTEyXHU5MDBCXHU5MkVBXHU5OEZEXHU5QjkxXHU1RTQ1XHU2NkI0XHU2NkREXHU3MDExXHU3MjA2XHVGQTA3XHU0RkY1XHU1MjdEXHU1RjZBXHU2MTUzXHU2NzUzXHU2QTE5XHU2RjAyXHU3NEUyXHU3OTY4XHU4ODY4XHU4Qzc5XHU5OEM3XHU5OEM0XHU5QTQzXCJdLFxuW1wiZjlhMVwiLFwiXHU1NEMxXHU3QTFGXHU2OTUzXHU4QUY3XHU4QzRBXHU5OEE4XHU5OUFFXHU1RjdDXHU2MkFCXHU3NUIyXHU3NkFFXHU4OEFCXHU5MDdGXHU5NjQyXHU1MzM5XHU1RjNDXHU1RkM1XHU2Q0NDXHU3M0NDXHU3NTYyXHU3NThCXHU3QjQ2XHU4MkZFXHU5OTlEXHU0RTRGXHU5MDNDXHU0RTBCXHU0RjU1XHU1M0E2XHU1OTBGXHU1RUM4XHU2NjMwXHU2Q0IzXHU3NDU1XHU4Mzc3XHU4NzY2XHU4Q0MwXHU5MDUwXHU5NzFFXHU5QzE1XHU1OEQxXHU1Qjc4XHU4NjUwXHU4QjE0XHU5REI0XHU1QkQyXHU2MDY4XHU2MDhEXHU2NUYxXHU2QzU3XHU2RjIyXHU2RkEzXHU3MDFBXHU3RjU1XHU3RkYwXHU5NTkxXHU5NTkyXHU5NjUwXHU5N0QzXHU1MjcyXHU4RjQ0XHU1MUZEXHU1NDJCXHU1NEI4XHU1NTYzXHU1NThBXHU2QUJCXHU2REI1XHU3REQ4XHU4MjY2XHU5MjlDXHU5Njc3XHU5RTc5XHU1NDA4XHU1NEM4XHU3NkQyXHU4NkU0XHU5NUE0XHU5NUQ0XHU5NjVDXHU0RUEyXHU0RjA5XHU1OUVFXHU1QUU2XHU1REY3XHU2MDUyXHU2Mjk3XHU2NzZEXHU2ODQxXHU2Qzg2XHU2RTJGXHU3RjM4XHU4MDlCXHU4MjJBXCJdLFxuW1wiZmFhMVwiLFwiXHVGQTA4XHVGQTA5XHU5ODA1XHU0RUE1XHU1MDU1XHU1NEIzXHU1NzkzXHU1OTVBXHU1QjY5XHU1QkIzXHU2MUM4XHU2OTc3XHU2RDc3XHU3MDIzXHU4N0Y5XHU4OUUzXHU4QTcyXHU4QUU3XHU5MDgyXHU5OUVEXHU5QUI4XHU1MkJFXHU2ODM4XHU1MDE2XHU1RTc4XHU2NzRGXHU4MzQ3XHU4ODRDXHU0RUFCXHU1NDExXHU1NkFFXHU3M0U2XHU5MTE1XHU5N0ZGXHU5OTA5XHU5OTU3XHU5OTk5XHU1NjUzXHU1ODlGXHU4NjVCXHU4QTMxXHU2MUIyXHU2QUY2XHU3MzdCXHU4RUQyXHU2QjQ3XHU5NkFBXHU5QTU3XHU1OTU1XHU3MjAwXHU4RDZCXHU5NzY5XHU0RkQ0XHU1Q0Y0XHU1RjI2XHU2MUY4XHU2NjVCXHU2Q0VCXHU3MEFCXHU3Mzg0XHU3M0I5XHU3M0ZFXHU3NzI5XHU3NzREXHU3RDQzXHU3RDYyXHU3RTIzXHU4MjM3XHU4ODUyXHVGQTBBXHU4Q0UyXHU5MjQ5XHU5ODZGXHU1QjUxXHU3QTc0XHU4ODQwXHU5ODAxXHU1QUNDXHU0RkUwXHU1MzU0XHU1OTNFXHU1Q0ZEXHU2MzNFXHU2RDc5XHU3MkY5XHU4MTA1XHU4MTA3XHU4M0EyXHU5MkNGXHU5ODMwXHU0RUE4XHU1MTQ0XHU1MjExXHU1NzhCXCJdLFxuW1wiZmJhMVwiLFwiXHU1RjYyXHU2Q0MyXHU2RUNFXHU3MDA1XHU3MDUwXHU3MEFGXHU3MTkyXHU3M0U5XHU3NDY5XHU4MzRBXHU4N0EyXHU4ODYxXHU5MDA4XHU5MEEyXHU5M0EzXHU5OUE4XHU1MTZFXHU1RjU3XHU2MEUwXHU2MTY3XHU2NkIzXHU4NTU5XHU4RTRBXHU5MUFGXHU5NzhCXHU0RTRFXHU0RTkyXHU1NDdDXHU1OEQ1XHU1OEZBXHU1OTdEXHU1Q0I1XHU1RjI3XHU2MjM2XHU2MjQ4XHU2NjBBXHU2NjY3XHU2QkVCXHU2RDY5XHU2RENGXHU2RTU2XHU2RUY4XHU2Rjk0XHU2RkUwXHU2RkU5XHU3MDVEXHU3MkQwXHU3NDI1XHU3NDVBXHU3NEUwXHU3NjkzXHU3OTVDXHU3Q0NBXHU3RTFFXHU4MEUxXHU4MkE2XHU4NDZCXHU4NEJGXHU4NjRFXHU4NjVGXHU4Nzc0XHU4Qjc3XHU4QzZBXHU5M0FDXHU5ODAwXHU5ODY1XHU2MEQxXHU2MjE2XHU5MTc3XHU1QTVBXHU2NjBGXHU2REY3XHU2RTNFXHU3NDNGXHU5QjQyXHU1RkZEXHU2MERBXHU3QjBGXHU1NEM0XHU1RjE4XHU2QzVFXHU2Q0QzXHU2RDJBXHU3MEQ4XHU3RDA1XHU4Njc5XHU4QTBDXHU5RDNCXHU1MzE2XHU1NDhDXHU1QjA1XHU2QTNBXHU3MDZCXHU3NTc1XCJdLFxuW1wiZmNhMVwiLFwiXHU3OThEXHU3OUJFXHU4MkIxXHU4M0VGXHU4QTcxXHU4QjQxXHU4Q0E4XHU5Nzc0XHVGQTBCXHU2NEY0XHU2NTJCXHU3OEJBXHU3OEJCXHU3QTZCXHU0RTM4XHU1NTlBXHU1OTUwXHU1QkE2XHU1RTdCXHU2MEEzXHU2M0RCXHU2QjYxXHU2NjY1XHU2ODUzXHU2RTE5XHU3MTY1XHU3NEIwXHU3RDA4XHU5MDg0XHU5QTY5XHU5QzI1XHU2RDNCXHU2RUQxXHU3MzNFXHU4QzQxXHU5NUNBXHU1MUYwXHU1RTRDXHU1RkE4XHU2MDREXHU2MEY2XHU2MTMwXHU2MTRDXHU2NjQzXHU2NjQ0XHU2OUE1XHU2Q0MxXHU2RTVGXHU2RUM5XHU2RjYyXHU3MTRDXHU3NDlDXHU3Njg3XHU3QkMxXHU3QzI3XHU4MzUyXHU4NzU3XHU5MDUxXHU5NjhEXHU5RUMzXHU1MzJGXHU1NkRFXHU1RUZCXHU1RjhBXHU2MDYyXHU2MDk0XHU2MUY3XHU2NjY2XHU2NzAzXHU2QTlDXHU2REVFXHU2RkFFXHU3MDcwXHU3MzZBXHU3RTZBXHU4MUJFXHU4MzM0XHU4NkQ0XHU4QUE4XHU4Q0M0XHU1MjgzXHU3MzcyXHU1Qjk2XHU2QTZCXHU5NDA0XHU1NEVFXHU1Njg2XHU1QjVEXHU2NTQ4XHU2NTg1XHU2NkM5XHU2ODlGXHU2RDhEXHU2REM2XCJdLFxuW1wiZmRhMVwiLFwiXHU3MjNCXHU4MEI0XHU5MTc1XHU5QTREXHU0RkFGXHU1MDE5XHU1MzlBXHU1NDBFXHU1NDNDXHU1NTg5XHU1NUM1XHU1RTNGXHU1RjhDXHU2NzNEXHU3MTY2XHU3M0REXHU5MDA1XHU1MkRCXHU1MkYzXHU1ODY0XHU1OENFXHU3MTA0XHU3MThGXHU3MUZCXHU4NUIwXHU4QTEzXHU2Njg4XHU4NUE4XHU1NUE3XHU2Njg0XHU3MTRBXHU4NDMxXHU1MzQ5XHU1NTk5XHU2QkMxXHU1RjU5XHU1RkJEXHU2M0VFXHU2Njg5XHU3MTQ3XHU4QUYxXHU4RjFEXHU5RUJFXHU0RjExXHU2NDNBXHU3MENCXHU3NTY2XHU4NjY3XHU2MDY0XHU4QjRFXHU5REY4XHU1MTQ3XHU1MUY2XHU1MzA4XHU2RDM2XHU4MEY4XHU5RUQxXHU2NjE1XHU2QjIzXHU3MDk4XHU3NUQ1XHU1NDAzXHU1Qzc5XHU3RDA3XHU4QTE2XHU2QjIwXHU2QjNEXHU2QjQ2XHU1NDM4XHU2MDcwXHU2RDNEXHU3RkQ1XHU4MjA4XHU1MEQ2XHU1MURFXHU1NTlDXHU1NjZCXHU1NkNEXHU1OUVDXHU1QjA5XHU1RTBDXHU2MTk5XHU2MTk4XHU2MjMxXHU2NjVFXHU2NkU2XHU3MTk5XHU3MUI5XHU3MUJBXHU3MkE3XHU3OUE3XHU3QTAwXHU3RkIyXHU4QTcwXCJdXG5dXG4iLCAiW1xuW1wiMFwiLFwiXFx1MDAwMFwiLDEyN10sXG5bXCJhMTQwXCIsXCJcdTMwMDBcdUZGMENcdTMwMDFcdTMwMDJcdUZGMEVcdTIwMjdcdUZGMUJcdUZGMUFcdUZGMUZcdUZGMDFcdUZFMzBcdTIwMjZcdTIwMjVcdUZFNTBcdUZFNTFcdUZFNTJcdTAwQjdcdUZFNTRcdUZFNTVcdUZFNTZcdUZFNTdcdUZGNUNcdTIwMTNcdUZFMzFcdTIwMTRcdUZFMzNcdTI1NzRcdUZFMzRcdUZFNEZcdUZGMDhcdUZGMDlcdUZFMzVcdUZFMzZcdUZGNUJcdUZGNURcdUZFMzdcdUZFMzhcdTMwMTRcdTMwMTVcdUZFMzlcdUZFM0FcdTMwMTBcdTMwMTFcdUZFM0JcdUZFM0NcdTMwMEFcdTMwMEJcdUZFM0RcdUZFM0VcdTMwMDhcdTMwMDlcdUZFM0ZcdUZFNDBcdTMwMENcdTMwMERcdUZFNDFcdUZFNDJcdTMwMEVcdTMwMEZcdUZFNDNcdUZFNDRcdUZFNTlcdUZFNUFcIl0sXG5bXCJhMWExXCIsXCJcdUZFNUJcdUZFNUNcdUZFNURcdUZFNUVcdTIwMThcdTIwMTlcdTIwMUNcdTIwMURcdTMwMURcdTMwMUVcdTIwMzVcdTIwMzJcdUZGMDNcdUZGMDZcdUZGMEFcdTIwM0JcdTAwQTdcdTMwMDNcdTI1Q0JcdTI1Q0ZcdTI1QjNcdTI1QjJcdTI1Q0VcdTI2MDZcdTI2MDVcdTI1QzdcdTI1QzZcdTI1QTFcdTI1QTBcdTI1QkRcdTI1QkNcdTMyQTNcdTIxMDVcdTAwQUZcdUZGRTNcdUZGM0ZcdTAyQ0RcdUZFNDlcdUZFNEFcdUZFNERcdUZFNEVcdUZFNEJcdUZFNENcdUZFNUZcdUZFNjBcdUZFNjFcdUZGMEJcdUZGMERcdTAwRDdcdTAwRjdcdTAwQjFcdTIyMUFcdUZGMUNcdUZGMUVcdUZGMURcdTIyNjZcdTIyNjdcdTIyNjBcdTIyMUVcdTIyNTJcdTIyNjFcdUZFNjJcIiw0LFwiXHVGRjVFXHUyMjI5XHUyMjJBXHUyMkE1XHUyMjIwXHUyMjFGXHUyMkJGXHUzM0QyXHUzM0QxXHUyMjJCXHUyMjJFXHUyMjM1XHUyMjM0XHUyNjQwXHUyNjQyXHUyMjk1XHUyMjk5XHUyMTkxXHUyMTkzXHUyMTkwXHUyMTkyXHUyMTk2XHUyMTk3XHUyMTk5XHUyMTk4XHUyMjI1XHUyMjIzXHVGRjBGXCJdLFxuW1wiYTI0MFwiLFwiXHVGRjNDXHUyMjE1XHVGRTY4XHVGRjA0XHVGRkU1XHUzMDEyXHVGRkUwXHVGRkUxXHVGRjA1XHVGRjIwXHUyMTAzXHUyMTA5XHVGRTY5XHVGRTZBXHVGRTZCXHUzM0Q1XHUzMzlDXHUzMzlEXHUzMzlFXHUzM0NFXHUzM0ExXHUzMzhFXHUzMzhGXHUzM0M0XHUwMEIwXHU1MTU5XHU1MTVCXHU1MTVFXHU1MTVEXHU1MTYxXHU1MTYzXHU1NUU3XHU3NEU5XHU3Q0NFXHUyNTgxXCIsNyxcIlx1MjU4Rlx1MjU4RVx1MjU4RFx1MjU4Q1x1MjU4Qlx1MjU4QVx1MjU4OVx1MjUzQ1x1MjUzNFx1MjUyQ1x1MjUyNFx1MjUxQ1x1MjU5NFx1MjUwMFx1MjUwMlx1MjU5NVx1MjUwQ1x1MjUxMFx1MjUxNFx1MjUxOFx1MjU2RFwiXSxcbltcImEyYTFcIixcIlx1MjU2RVx1MjU3MFx1MjU2Rlx1MjU1MFx1MjU1RVx1MjU2QVx1MjU2MVx1MjVFMlx1MjVFM1x1MjVFNVx1MjVFNFx1MjU3MVx1MjU3Mlx1MjU3M1x1RkYxMFwiLDksXCJcdTIxNjBcIiw5LFwiXHUzMDIxXCIsOCxcIlx1NTM0MVx1NTM0NFx1NTM0NVx1RkYyMVwiLDI1LFwiXHVGRjQxXCIsMjFdLFxuW1wiYTM0MFwiLFwiXHVGRjU3XHVGRjU4XHVGRjU5XHVGRjVBXHUwMzkxXCIsMTYsXCJcdTAzQTNcIiw2LFwiXHUwM0IxXCIsMTYsXCJcdTAzQzNcIiw2LFwiXHUzMTA1XCIsMTBdLFxuW1wiYTNhMVwiLFwiXHUzMTEwXCIsMjUsXCJcdTAyRDlcdTAyQzlcdTAyQ0FcdTAyQzdcdTAyQ0JcIl0sXG5bXCJhM2UxXCIsXCJcdTIwQUNcIl0sXG5bXCJhNDQwXCIsXCJcdTRFMDBcdTRFNTlcdTRFMDFcdTRFMDNcdTRFNDNcdTRFNURcdTRFODZcdTRFOENcdTRFQkFcdTUxM0ZcdTUxNjVcdTUxNkJcdTUxRTBcdTUyMDBcdTUyMDFcdTUyOUJcdTUzMTVcdTUzNDFcdTUzNUNcdTUzQzhcdTRFMDlcdTRFMEJcdTRFMDhcdTRFMEFcdTRFMkJcdTRFMzhcdTUxRTFcdTRFNDVcdTRFNDhcdTRFNUZcdTRFNUVcdTRFOEVcdTRFQTFcdTUxNDBcdTUyMDNcdTUyRkFcdTUzNDNcdTUzQzlcdTUzRTNcdTU3MUZcdTU4RUJcdTU5MTVcdTU5MjdcdTU5NzNcdTVCNTBcdTVCNTFcdTVCNTNcdTVCRjhcdTVDMEZcdTVDMjJcdTVDMzhcdTVDNzFcdTVERERcdTVERTVcdTVERjFcdTVERjJcdTVERjNcdTVERkVcdTVFNzJcdTVFRkVcdTVGMEJcdTVGMTNcdTYyNERcIl0sXG5bXCJhNGExXCIsXCJcdTRFMTFcdTRFMTBcdTRFMERcdTRFMkRcdTRFMzBcdTRFMzlcdTRFNEJcdTVDMzlcdTRFODhcdTRFOTFcdTRFOTVcdTRFOTJcdTRFOTRcdTRFQTJcdTRFQzFcdTRFQzBcdTRFQzNcdTRFQzZcdTRFQzdcdTRFQ0RcdTRFQ0FcdTRFQ0JcdTRFQzRcdTUxNDNcdTUxNDFcdTUxNjdcdTUxNkRcdTUxNkVcdTUxNkNcdTUxOTdcdTUxRjZcdTUyMDZcdTUyMDdcdTUyMDhcdTUyRkJcdTUyRkVcdTUyRkZcdTUzMTZcdTUzMzlcdTUzNDhcdTUzNDdcdTUzNDVcdTUzNUVcdTUzODRcdTUzQ0JcdTUzQ0FcdTUzQ0RcdTU4RUNcdTU5MjlcdTU5MkJcdTU5MkFcdTU5MkRcdTVCNTRcdTVDMTFcdTVDMjRcdTVDM0FcdTVDNkZcdTVERjRcdTVFN0JcdTVFRkZcdTVGMTRcdTVGMTVcdTVGQzNcdTYyMDhcdTYyMzZcdTYyNEJcdTYyNEVcdTY1MkZcdTY1ODdcdTY1OTdcdTY1QTRcdTY1QjlcdTY1RTVcdTY2RjBcdTY3MDhcdTY3MjhcdTZCMjBcdTZCNjJcdTZCNzlcdTZCQ0JcdTZCRDRcdTZCREJcdTZDMEZcdTZDMzRcdTcwNkJcdTcyMkFcdTcyMzZcdTcyM0JcdTcyNDdcdTcyNTlcdTcyNUJcdTcyQUNcdTczOEJcdTRFMTlcIl0sXG5bXCJhNTQwXCIsXCJcdTRFMTZcdTRFMTVcdTRFMTRcdTRFMThcdTRFM0JcdTRFNERcdTRFNEZcdTRFNEVcdTRFRTVcdTRFRDhcdTRFRDRcdTRFRDVcdTRFRDZcdTRFRDdcdTRFRTNcdTRFRTRcdTRFRDlcdTRFREVcdTUxNDVcdTUxNDRcdTUxODlcdTUxOEFcdTUxQUNcdTUxRjlcdTUxRkFcdTUxRjhcdTUyMEFcdTUyQTBcdTUyOUZcdTUzMDVcdTUzMDZcdTUzMTdcdTUzMURcdTRFREZcdTUzNEFcdTUzNDlcdTUzNjFcdTUzNjBcdTUzNkZcdTUzNkVcdTUzQkJcdTUzRUZcdTUzRTRcdTUzRjNcdTUzRUNcdTUzRUVcdTUzRTlcdTUzRThcdTUzRkNcdTUzRjhcdTUzRjVcdTUzRUJcdTUzRTZcdTUzRUFcdTUzRjJcdTUzRjFcdTUzRjBcdTUzRTVcdTUzRURcdTUzRkJcdTU2REJcdTU2REFcdTU5MTZcIl0sXG5bXCJhNWExXCIsXCJcdTU5MkVcdTU5MzFcdTU5NzRcdTU5NzZcdTVCNTVcdTVCODNcdTVDM0NcdTVERThcdTVERTdcdTVERTZcdTVFMDJcdTVFMDNcdTVFNzNcdTVFN0NcdTVGMDFcdTVGMThcdTVGMTdcdTVGQzVcdTYyMEFcdTYyNTNcdTYyNTRcdTYyNTJcdTYyNTFcdTY1QTVcdTY1RTZcdTY3MkVcdTY3MkNcdTY3MkFcdTY3MkJcdTY3MkRcdTZCNjNcdTZCQ0RcdTZDMTFcdTZDMTBcdTZDMzhcdTZDNDFcdTZDNDBcdTZDM0VcdTcyQUZcdTczODRcdTczODlcdTc0RENcdTc0RTZcdTc1MThcdTc1MUZcdTc1MjhcdTc1MjlcdTc1MzBcdTc1MzFcdTc1MzJcdTc1MzNcdTc1OEJcdTc2N0RcdTc2QUVcdTc2QkZcdTc2RUVcdTc3REJcdTc3RTJcdTc3RjNcdTc5M0FcdTc5QkVcdTdBNzRcdTdBQ0JcdTRFMUVcdTRFMUZcdTRFNTJcdTRFNTNcdTRFNjlcdTRFOTlcdTRFQTRcdTRFQTZcdTRFQTVcdTRFRkZcdTRGMDlcdTRGMTlcdTRGMEFcdTRGMTVcdTRGMERcdTRGMTBcdTRGMTFcdTRGMEZcdTRFRjJcdTRFRjZcdTRFRkJcdTRFRjBcdTRFRjNcdTRFRkRcdTRGMDFcdTRGMEJcdTUxNDlcdTUxNDdcdTUxNDZcdTUxNDhcdTUxNjhcIl0sXG5bXCJhNjQwXCIsXCJcdTUxNzFcdTUxOERcdTUxQjBcdTUyMTdcdTUyMTFcdTUyMTJcdTUyMEVcdTUyMTZcdTUyQTNcdTUzMDhcdTUzMjFcdTUzMjBcdTUzNzBcdTUzNzFcdTU0MDlcdTU0MEZcdTU0MENcdTU0MEFcdTU0MTBcdTU0MDFcdTU0MEJcdTU0MDRcdTU0MTFcdTU0MERcdTU0MDhcdTU0MDNcdTU0MEVcdTU0MDZcdTU0MTJcdTU2RTBcdTU2REVcdTU2RERcdTU3MzNcdTU3MzBcdTU3MjhcdTU3MkRcdTU3MkNcdTU3MkZcdTU3MjlcdTU5MTlcdTU5MUFcdTU5MzdcdTU5MzhcdTU5ODRcdTU5NzhcdTU5ODNcdTU5N0RcdTU5NzlcdTU5ODJcdTU5ODFcdTVCNTdcdTVCNThcdTVCODdcdTVCODhcdTVCODVcdTVCODlcdTVCRkFcdTVDMTZcdTVDNzlcdTVEREVcdTVFMDZcdTVFNzZcdTVFNzRcIl0sXG5bXCJhNmExXCIsXCJcdTVGMEZcdTVGMUJcdTVGRDlcdTVGRDZcdTYyMEVcdTYyMENcdTYyMERcdTYyMTBcdTYyNjNcdTYyNUJcdTYyNThcdTY1MzZcdTY1RTlcdTY1RThcdTY1RUNcdTY1RURcdTY2RjJcdTY2RjNcdTY3MDlcdTY3M0RcdTY3MzRcdTY3MzFcdTY3MzVcdTZCMjFcdTZCNjRcdTZCN0JcdTZDMTZcdTZDNURcdTZDNTdcdTZDNTlcdTZDNUZcdTZDNjBcdTZDNTBcdTZDNTVcdTZDNjFcdTZDNUJcdTZDNERcdTZDNEVcdTcwNzBcdTcyNUZcdTcyNURcdTc2N0VcdTdBRjlcdTdDNzNcdTdDRjhcdTdGMzZcdTdGOEFcdTdGQkRcdTgwMDFcdTgwMDNcdTgwMENcdTgwMTJcdTgwMzNcdTgwN0ZcdTgwODlcdTgwOEJcdTgwOENcdTgxRTNcdTgxRUFcdTgxRjNcdTgxRkNcdTgyMENcdTgyMUJcdTgyMUZcdTgyNkVcdTgyNzJcdTgyN0VcdTg2NkJcdTg4NDBcdTg4NENcdTg4NjNcdTg5N0ZcdTk2MjFcdTRFMzJcdTRFQThcdTRGNERcdTRGNEZcdTRGNDdcdTRGNTdcdTRGNUVcdTRGMzRcdTRGNUJcdTRGNTVcdTRGMzBcdTRGNTBcdTRGNTFcdTRGM0RcdTRGM0FcdTRGMzhcdTRGNDNcdTRGNTRcdTRGM0NcdTRGNDZcdTRGNjNcIl0sXG5bXCJhNzQwXCIsXCJcdTRGNUNcdTRGNjBcdTRGMkZcdTRGNEVcdTRGMzZcdTRGNTlcdTRGNURcdTRGNDhcdTRGNUFcdTUxNENcdTUxNEJcdTUxNERcdTUxNzVcdTUxQjZcdTUxQjdcdTUyMjVcdTUyMjRcdTUyMjlcdTUyMkFcdTUyMjhcdTUyQUJcdTUyQTlcdTUyQUFcdTUyQUNcdTUzMjNcdTUzNzNcdTUzNzVcdTU0MURcdTU0MkRcdTU0MUVcdTU0M0VcdTU0MjZcdTU0NEVcdTU0MjdcdTU0NDZcdTU0NDNcdTU0MzNcdTU0NDhcdTU0NDJcdTU0MUJcdTU0MjlcdTU0NEFcdTU0MzlcdTU0M0JcdTU0MzhcdTU0MkVcdTU0MzVcdTU0MzZcdTU0MjBcdTU0M0NcdTU0NDBcdTU0MzFcdTU0MkJcdTU0MUZcdTU0MkNcdTU2RUFcdTU2RjBcdTU2RTRcdTU2RUJcdTU3NEFcdTU3NTFcdTU3NDBcdTU3NERcIl0sXG5bXCJhN2ExXCIsXCJcdTU3NDdcdTU3NEVcdTU3M0VcdTU3NTBcdTU3NEZcdTU3M0JcdTU4RUZcdTU5M0VcdTU5OURcdTU5OTJcdTU5QThcdTU5OUVcdTU5QTNcdTU5OTlcdTU5OTZcdTU5OERcdTU5QTRcdTU5OTNcdTU5OEFcdTU5QTVcdTVCNURcdTVCNUNcdTVCNUFcdTVCNUJcdTVCOENcdTVCOEJcdTVCOEZcdTVDMkNcdTVDNDBcdTVDNDFcdTVDM0ZcdTVDM0VcdTVDOTBcdTVDOTFcdTVDOTRcdTVDOENcdTVERUJcdTVFMENcdTVFOEZcdTVFODdcdTVFOEFcdTVFRjdcdTVGMDRcdTVGMUZcdTVGNjRcdTVGNjJcdTVGNzdcdTVGNzlcdTVGRDhcdTVGQ0NcdTVGRDdcdTVGQ0RcdTVGRjFcdTVGRUJcdTVGRjhcdTVGRUFcdTYyMTJcdTYyMTFcdTYyODRcdTYyOTdcdTYyOTZcdTYyODBcdTYyNzZcdTYyODlcdTYyNkRcdTYyOEFcdTYyN0NcdTYyN0VcdTYyNzlcdTYyNzNcdTYyOTJcdTYyNkZcdTYyOThcdTYyNkVcdTYyOTVcdTYyOTNcdTYyOTFcdTYyODZcdTY1MzlcdTY1M0JcdTY1MzhcdTY1RjFcdTY2RjRcdTY3NUZcdTY3NEVcdTY3NEZcdTY3NTBcdTY3NTFcdTY3NUNcdTY3NTZcdTY3NUVcdTY3NDlcdTY3NDZcdTY3NjBcIl0sXG5bXCJhODQwXCIsXCJcdTY3NTNcdTY3NTdcdTZCNjVcdTZCQ0ZcdTZDNDJcdTZDNUVcdTZDOTlcdTZDODFcdTZDODhcdTZDODlcdTZDODVcdTZDOUJcdTZDNkFcdTZDN0FcdTZDOTBcdTZDNzBcdTZDOENcdTZDNjhcdTZDOTZcdTZDOTJcdTZDN0RcdTZDODNcdTZDNzJcdTZDN0VcdTZDNzRcdTZDODZcdTZDNzZcdTZDOERcdTZDOTRcdTZDOThcdTZDODJcdTcwNzZcdTcwN0NcdTcwN0RcdTcwNzhcdTcyNjJcdTcyNjFcdTcyNjBcdTcyQzRcdTcyQzJcdTczOTZcdTc1MkNcdTc1MkJcdTc1MzdcdTc1MzhcdTc2ODJcdTc2RUZcdTc3RTNcdTc5QzFcdTc5QzBcdTc5QkZcdTdBNzZcdTdDRkJcdTdGNTVcdTgwOTZcdTgwOTNcdTgwOURcdTgwOThcdTgwOUJcdTgwOUFcdTgwQjJcdTgyNkZcdTgyOTJcIl0sXG5bXCJhOGExXCIsXCJcdTgyOEJcdTgyOERcdTg5OEJcdTg5RDJcdThBMDBcdThDMzdcdThDNDZcdThDNTVcdThDOURcdThENjRcdThENzBcdThEQjNcdThFQUJcdThFQ0FcdThGOUJcdThGQjBcdThGQzJcdThGQzZcdThGQzVcdThGQzRcdTVERTFcdTkwOTFcdTkwQTJcdTkwQUFcdTkwQTZcdTkwQTNcdTkxNDlcdTkxQzZcdTkxQ0NcdTk2MzJcdTk2MkVcdTk2MzFcdTk2MkFcdTk2MkNcdTRFMjZcdTRFNTZcdTRFNzNcdTRFOEJcdTRFOUJcdTRFOUVcdTRFQUJcdTRFQUNcdTRGNkZcdTRGOURcdTRGOERcdTRGNzNcdTRGN0ZcdTRGNkNcdTRGOUJcdTRGOEJcdTRGODZcdTRGODNcdTRGNzBcdTRGNzVcdTRGODhcdTRGNjlcdTRGN0JcdTRGOTZcdTRGN0VcdTRGOEZcdTRGOTFcdTRGN0FcdTUxNTRcdTUxNTJcdTUxNTVcdTUxNjlcdTUxNzdcdTUxNzZcdTUxNzhcdTUxQkRcdTUxRkRcdTUyM0JcdTUyMzhcdTUyMzdcdTUyM0FcdTUyMzBcdTUyMkVcdTUyMzZcdTUyNDFcdTUyQkVcdTUyQkJcdTUzNTJcdTUzNTRcdTUzNTNcdTUzNTFcdTUzNjZcdTUzNzdcdTUzNzhcdTUzNzlcdTUzRDZcdTUzRDRcdTUzRDdcdTU0NzNcdTU0NzVcIl0sXG5bXCJhOTQwXCIsXCJcdTU0OTZcdTU0NzhcdTU0OTVcdTU0ODBcdTU0N0JcdTU0NzdcdTU0ODRcdTU0OTJcdTU0ODZcdTU0N0NcdTU0OTBcdTU0NzFcdTU0NzZcdTU0OENcdTU0OUFcdTU0NjJcdTU0NjhcdTU0OEJcdTU0N0RcdTU0OEVcdTU2RkFcdTU3ODNcdTU3NzdcdTU3NkFcdTU3NjlcdTU3NjFcdTU3NjZcdTU3NjRcdTU3N0NcdTU5MUNcdTU5NDlcdTU5NDdcdTU5NDhcdTU5NDRcdTU5NTRcdTU5QkVcdTU5QkJcdTU5RDRcdTU5QjlcdTU5QUVcdTU5RDFcdTU5QzZcdTU5RDBcdTU5Q0RcdTU5Q0JcdTU5RDNcdTU5Q0FcdTU5QUZcdTU5QjNcdTU5RDJcdTU5QzVcdTVCNUZcdTVCNjRcdTVCNjNcdTVCOTdcdTVCOUFcdTVCOThcdTVCOUNcdTVCOTlcdTVCOUJcdTVDMUFcdTVDNDhcdTVDNDVcIl0sXG5bXCJhOWExXCIsXCJcdTVDNDZcdTVDQjdcdTVDQTFcdTVDQjhcdTVDQTlcdTVDQUJcdTVDQjFcdTVDQjNcdTVFMThcdTVFMUFcdTVFMTZcdTVFMTVcdTVFMUJcdTVFMTFcdTVFNzhcdTVFOUFcdTVFOTdcdTVFOUNcdTVFOTVcdTVFOTZcdTVFRjZcdTVGMjZcdTVGMjdcdTVGMjlcdTVGODBcdTVGODFcdTVGN0ZcdTVGN0NcdTVGRERcdTVGRTBcdTVGRkRcdTVGRjVcdTVGRkZcdTYwMEZcdTYwMTRcdTYwMkZcdTYwMzVcdTYwMTZcdTYwMkFcdTYwMTVcdTYwMjFcdTYwMjdcdTYwMjlcdTYwMkJcdTYwMUJcdTYyMTZcdTYyMTVcdTYyM0ZcdTYyM0VcdTYyNDBcdTYyN0ZcdTYyQzlcdTYyQ0NcdTYyQzRcdTYyQkZcdTYyQzJcdTYyQjlcdTYyRDJcdTYyREJcdTYyQUJcdTYyRDNcdTYyRDRcdTYyQ0JcdTYyQzhcdTYyQThcdTYyQkRcdTYyQkNcdTYyRDBcdTYyRDlcdTYyQzdcdTYyQ0RcdTYyQjVcdTYyREFcdTYyQjFcdTYyRDhcdTYyRDZcdTYyRDdcdTYyQzZcdTYyQUNcdTYyQ0VcdTY1M0VcdTY1QTdcdTY1QkNcdTY1RkFcdTY2MTRcdTY2MTNcdTY2MENcdTY2MDZcdTY2MDJcdTY2MEVcdTY2MDBcdTY2MEZcdTY2MTVcdTY2MEFcIl0sXG5bXCJhYTQwXCIsXCJcdTY2MDdcdTY3MERcdTY3MEJcdTY3NkRcdTY3OEJcdTY3OTVcdTY3NzFcdTY3OUNcdTY3NzNcdTY3NzdcdTY3ODdcdTY3OURcdTY3OTdcdTY3NkZcdTY3NzBcdTY3N0ZcdTY3ODlcdTY3N0VcdTY3OTBcdTY3NzVcdTY3OUFcdTY3OTNcdTY3N0NcdTY3NkFcdTY3NzJcdTZCMjNcdTZCNjZcdTZCNjdcdTZCN0ZcdTZDMTNcdTZDMUJcdTZDRTNcdTZDRThcdTZDRjNcdTZDQjFcdTZDQ0NcdTZDRTVcdTZDQjNcdTZDQkRcdTZDQkVcdTZDQkNcdTZDRTJcdTZDQUJcdTZDRDVcdTZDRDNcdTZDQjhcdTZDQzRcdTZDQjlcdTZDQzFcdTZDQUVcdTZDRDdcdTZDQzVcdTZDRjFcdTZDQkZcdTZDQkJcdTZDRTFcdTZDREJcdTZDQ0FcdTZDQUNcdTZDRUZcdTZDRENcdTZDRDZcdTZDRTBcIl0sXG5bXCJhYWExXCIsXCJcdTcwOTVcdTcwOEVcdTcwOTJcdTcwOEFcdTcwOTlcdTcyMkNcdTcyMkRcdTcyMzhcdTcyNDhcdTcyNjdcdTcyNjlcdTcyQzBcdTcyQ0VcdTcyRDlcdTcyRDdcdTcyRDBcdTczQTlcdTczQThcdTczOUZcdTczQUJcdTczQTVcdTc1M0RcdTc1OURcdTc1OTlcdTc1OUFcdTc2ODRcdTc2QzJcdTc2RjJcdTc2RjRcdTc3RTVcdTc3RkRcdTc5M0VcdTc5NDBcdTc5NDFcdTc5QzlcdTc5QzhcdTdBN0FcdTdBNzlcdTdBRkFcdTdDRkVcdTdGNTRcdTdGOENcdTdGOEJcdTgwMDVcdTgwQkFcdTgwQTVcdTgwQTJcdTgwQjFcdTgwQTFcdTgwQUJcdTgwQTlcdTgwQjRcdTgwQUFcdTgwQUZcdTgxRTVcdTgxRkVcdTgyMERcdTgyQjNcdTgyOURcdTgyOTlcdTgyQURcdTgyQkRcdTgyOUZcdTgyQjlcdTgyQjFcdTgyQUNcdTgyQTVcdTgyQUZcdTgyQjhcdTgyQTNcdTgyQjBcdTgyQkVcdTgyQjdcdTg2NEVcdTg2NzFcdTUyMURcdTg4NjhcdThFQ0JcdThGQ0VcdThGRDRcdThGRDFcdTkwQjVcdTkwQjhcdTkwQjFcdTkwQjZcdTkxQzdcdTkxRDFcdTk1NzdcdTk1ODBcdTk2MUNcdTk2NDBcdTk2M0ZcdTk2M0JcdTk2NDRcIl0sXG5bXCJhYjQwXCIsXCJcdTk2NDJcdTk2QjlcdTk2RThcdTk3NTJcdTk3NUVcdTRFOUZcdTRFQURcdTRFQUVcdTRGRTFcdTRGQjVcdTRGQUZcdTRGQkZcdTRGRTBcdTRGRDFcdTRGQ0ZcdTRGRERcdTRGQzNcdTRGQjZcdTRGRDhcdTRGREZcdTRGQ0FcdTRGRDdcdTRGQUVcdTRGRDBcdTRGQzRcdTRGQzJcdTRGREFcdTRGQ0VcdTRGREVcdTRGQjdcdTUxNTdcdTUxOTJcdTUxOTFcdTUxQTBcdTUyNEVcdTUyNDNcdTUyNEFcdTUyNERcdTUyNENcdTUyNEJcdTUyNDdcdTUyQzdcdTUyQzlcdTUyQzNcdTUyQzFcdTUzMERcdTUzNTdcdTUzN0JcdTUzOUFcdTUzREJcdTU0QUNcdTU0QzBcdTU0QThcdTU0Q0VcdTU0QzlcdTU0QjhcdTU0QTZcdTU0QjNcdTU0QzdcdTU0QzJcdTU0QkRcdTU0QUFcdTU0QzFcIl0sXG5bXCJhYmExXCIsXCJcdTU0QzRcdTU0QzhcdTU0QUZcdTU0QUJcdTU0QjFcdTU0QkJcdTU0QTlcdTU0QTdcdTU0QkZcdTU2RkZcdTU3ODJcdTU3OEJcdTU3QTBcdTU3QTNcdTU3QTJcdTU3Q0VcdTU3QUVcdTU3OTNcdTU5NTVcdTU5NTFcdTU5NEZcdTU5NEVcdTU5NTBcdTU5RENcdTU5RDhcdTU5RkZcdTU5RTNcdTU5RThcdTVBMDNcdTU5RTVcdTU5RUFcdTU5REFcdTU5RTZcdTVBMDFcdTU5RkJcdTVCNjlcdTVCQTNcdTVCQTZcdTVCQTRcdTVCQTJcdTVCQTVcdTVDMDFcdTVDNEVcdTVDNEZcdTVDNERcdTVDNEJcdTVDRDlcdTVDRDJcdTVERjdcdTVFMURcdTVFMjVcdTVFMUZcdTVFN0RcdTVFQTBcdTVFQTZcdTVFRkFcdTVGMDhcdTVGMkRcdTVGNjVcdTVGODhcdTVGODVcdTVGOEFcdTVGOEJcdTVGODdcdTVGOENcdTVGODlcdTYwMTJcdTYwMURcdTYwMjBcdTYwMjVcdTYwMEVcdTYwMjhcdTYwNERcdTYwNzBcdTYwNjhcdTYwNjJcdTYwNDZcdTYwNDNcdTYwNkNcdTYwNkJcdTYwNkFcdTYwNjRcdTYyNDFcdTYyRENcdTYzMTZcdTYzMDlcdTYyRkNcdTYyRURcdTYzMDFcdTYyRUVcdTYyRkRcdTYzMDdcdTYyRjFcdTYyRjdcIl0sXG5bXCJhYzQwXCIsXCJcdTYyRUZcdTYyRUNcdTYyRkVcdTYyRjRcdTYzMTFcdTYzMDJcdTY1M0ZcdTY1NDVcdTY1QUJcdTY1QkRcdTY1RTJcdTY2MjVcdTY2MkRcdTY2MjBcdTY2MjdcdTY2MkZcdTY2MUZcdTY2MjhcdTY2MzFcdTY2MjRcdTY2RjdcdTY3RkZcdTY3RDNcdTY3RjFcdTY3RDRcdTY3RDBcdTY3RUNcdTY3QjZcdTY3QUZcdTY3RjVcdTY3RTlcdTY3RUZcdTY3QzRcdTY3RDFcdTY3QjRcdTY3REFcdTY3RTVcdTY3QjhcdTY3Q0ZcdTY3REVcdTY3RjNcdTY3QjBcdTY3RDlcdTY3RTJcdTY3RERcdTY3RDJcdTZCNkFcdTZCODNcdTZCODZcdTZCQjVcdTZCRDJcdTZCRDdcdTZDMUZcdTZDQzlcdTZEMEJcdTZEMzJcdTZEMkFcdTZENDFcdTZEMjVcdTZEMENcdTZEMzFcdTZEMUVcdTZEMTdcIl0sXG5bXCJhY2ExXCIsXCJcdTZEM0JcdTZEM0RcdTZEM0VcdTZEMzZcdTZEMUJcdTZDRjVcdTZEMzlcdTZEMjdcdTZEMzhcdTZEMjlcdTZEMkVcdTZEMzVcdTZEMEVcdTZEMkJcdTcwQUJcdTcwQkFcdTcwQjNcdTcwQUNcdTcwQUZcdTcwQURcdTcwQjhcdTcwQUVcdTcwQTRcdTcyMzBcdTcyNzJcdTcyNkZcdTcyNzRcdTcyRTlcdTcyRTBcdTcyRTFcdTczQjdcdTczQ0FcdTczQkJcdTczQjJcdTczQ0RcdTczQzBcdTczQjNcdTc1MUFcdTc1MkRcdTc1NEZcdTc1NENcdTc1NEVcdTc1NEJcdTc1QUJcdTc1QTRcdTc1QTVcdTc1QTJcdTc1QTNcdTc2NzhcdTc2ODZcdTc2ODdcdTc2ODhcdTc2QzhcdTc2QzZcdTc2QzNcdTc2QzVcdTc3MDFcdTc2RjlcdTc2RjhcdTc3MDlcdTc3MEJcdTc2RkVcdTc2RkNcdTc3MDdcdTc3RENcdTc4MDJcdTc4MTRcdTc4MENcdTc4MERcdTc5NDZcdTc5NDlcdTc5NDhcdTc5NDdcdTc5QjlcdTc5QkFcdTc5RDFcdTc5RDJcdTc5Q0JcdTdBN0ZcdTdBODFcdTdBRkZcdTdBRkRcdTdDN0RcdTdEMDJcdTdEMDVcdTdEMDBcdTdEMDlcdTdEMDdcdTdEMDRcdTdEMDZcdTdGMzhcdTdGOEVcdTdGQkZcdTgwMDRcIl0sXG5bXCJhZDQwXCIsXCJcdTgwMTBcdTgwMERcdTgwMTFcdTgwMzZcdTgwRDZcdTgwRTVcdTgwREFcdTgwQzNcdTgwQzRcdTgwQ0NcdTgwRTFcdTgwREJcdTgwQ0VcdTgwREVcdTgwRTRcdTgwRERcdTgxRjRcdTgyMjJcdTgyRTdcdTgzMDNcdTgzMDVcdTgyRTNcdTgyREJcdTgyRTZcdTgzMDRcdTgyRTVcdTgzMDJcdTgzMDlcdTgyRDJcdTgyRDdcdTgyRjFcdTgzMDFcdTgyRENcdTgyRDRcdTgyRDFcdTgyREVcdTgyRDNcdTgyREZcdTgyRUZcdTgzMDZcdTg2NTBcdTg2NzlcdTg2N0JcdTg2N0FcdTg4NERcdTg4NkJcdTg5ODFcdTg5RDRcdThBMDhcdThBMDJcdThBMDNcdThDOUVcdThDQTBcdThENzRcdThENzNcdThEQjRcdThFQ0RcdThFQ0NcdThGRjBcdThGRTZcdThGRTJcdThGRUFcdThGRTVcIl0sXG5bXCJhZGExXCIsXCJcdThGRURcdThGRUJcdThGRTRcdThGRThcdTkwQ0FcdTkwQ0VcdTkwQzFcdTkwQzNcdTkxNEJcdTkxNEFcdTkxQ0RcdTk1ODJcdTk2NTBcdTk2NEJcdTk2NENcdTk2NERcdTk3NjJcdTk3NjlcdTk3Q0JcdTk3RURcdTk3RjNcdTk4MDFcdTk4QThcdTk4REJcdTk4REZcdTk5OTZcdTk5OTlcdTRFNThcdTRFQjNcdTUwMENcdTUwMERcdTUwMjNcdTRGRUZcdTUwMjZcdTUwMjVcdTRGRjhcdTUwMjlcdTUwMTZcdTUwMDZcdTUwM0NcdTUwMUZcdTUwMUFcdTUwMTJcdTUwMTFcdTRGRkFcdTUwMDBcdTUwMTRcdTUwMjhcdTRGRjFcdTUwMjFcdTUwMEJcdTUwMTlcdTUwMThcdTRGRjNcdTRGRUVcdTUwMkRcdTUwMkFcdTRGRkVcdTUwMkJcdTUwMDlcdTUxN0NcdTUxQTRcdTUxQTVcdTUxQTJcdTUxQ0RcdTUxQ0NcdTUxQzZcdTUxQ0JcdTUyNTZcdTUyNUNcdTUyNTRcdTUyNUJcdTUyNURcdTUzMkFcdTUzN0ZcdTUzOUZcdTUzOURcdTUzREZcdTU0RThcdTU1MTBcdTU1MDFcdTU1MzdcdTU0RkNcdTU0RTVcdTU0RjJcdTU1MDZcdTU0RkFcdTU1MTRcdTU0RTlcdTU0RURcdTU0RTFcdTU1MDlcdTU0RUVcdTU0RUFcIl0sXG5bXCJhZTQwXCIsXCJcdTU0RTZcdTU1MjdcdTU1MDdcdTU0RkRcdTU1MEZcdTU3MDNcdTU3MDRcdTU3QzJcdTU3RDRcdTU3Q0JcdTU3QzNcdTU4MDlcdTU5MEZcdTU5NTdcdTU5NThcdTU5NUFcdTVBMTFcdTVBMThcdTVBMUNcdTVBMUZcdTVBMUJcdTVBMTNcdTU5RUNcdTVBMjBcdTVBMjNcdTVBMjlcdTVBMjVcdTVBMENcdTVBMDlcdTVCNkJcdTVDNThcdTVCQjBcdTVCQjNcdTVCQjZcdTVCQjRcdTVCQUVcdTVCQjVcdTVCQjlcdTVCQjhcdTVDMDRcdTVDNTFcdTVDNTVcdTVDNTBcdTVDRURcdTVDRkRcdTVDRkJcdTVDRUFcdTVDRThcdTVDRjBcdTVDRjZcdTVEMDFcdTVDRjRcdTVERUVcdTVFMkRcdTVFMkJcdTVFQUJcdTVFQURcdTVFQTdcdTVGMzFcdTVGOTJcdTVGOTFcdTVGOTBcdTYwNTlcIl0sXG5bXCJhZWExXCIsXCJcdTYwNjNcdTYwNjVcdTYwNTBcdTYwNTVcdTYwNkRcdTYwNjlcdTYwNkZcdTYwODRcdTYwOUZcdTYwOUFcdTYwOERcdTYwOTRcdTYwOENcdTYwODVcdTYwOTZcdTYyNDdcdTYyRjNcdTYzMDhcdTYyRkZcdTYzNEVcdTYzM0VcdTYzMkZcdTYzNTVcdTYzNDJcdTYzNDZcdTYzNEZcdTYzNDlcdTYzM0FcdTYzNTBcdTYzM0RcdTYzMkFcdTYzMkJcdTYzMjhcdTYzNERcdTYzNENcdTY1NDhcdTY1NDlcdTY1OTlcdTY1QzFcdTY1QzVcdTY2NDJcdTY2NDlcdTY2NEZcdTY2NDNcdTY2NTJcdTY2NENcdTY2NDVcdTY2NDFcdTY2RjhcdTY3MTRcdTY3MTVcdTY3MTdcdTY4MjFcdTY4MzhcdTY4NDhcdTY4NDZcdTY4NTNcdTY4MzlcdTY4NDJcdTY4NTRcdTY4MjlcdTY4QjNcdTY4MTdcdTY4NENcdTY4NTFcdTY4M0RcdTY3RjRcdTY4NTBcdTY4NDBcdTY4M0NcdTY4NDNcdTY4MkFcdTY4NDVcdTY4MTNcdTY4MThcdTY4NDFcdTZCOEFcdTZCODlcdTZCQjdcdTZDMjNcdTZDMjdcdTZDMjhcdTZDMjZcdTZDMjRcdTZDRjBcdTZENkFcdTZEOTVcdTZEODhcdTZEODdcdTZENjZcdTZENzhcdTZENzdcdTZENTlcdTZEOTNcIl0sXG5bXCJhZjQwXCIsXCJcdTZENkNcdTZEODlcdTZENkVcdTZENUFcdTZENzRcdTZENjlcdTZEOENcdTZEOEFcdTZENzlcdTZEODVcdTZENjVcdTZEOTRcdTcwQ0FcdTcwRDhcdTcwRTRcdTcwRDlcdTcwQzhcdTcwQ0ZcdTcyMzlcdTcyNzlcdTcyRkNcdTcyRjlcdTcyRkRcdTcyRjhcdTcyRjdcdTczODZcdTczRURcdTc0MDlcdTczRUVcdTczRTBcdTczRUFcdTczREVcdTc1NTRcdTc1NURcdTc1NUNcdTc1NUFcdTc1NTlcdTc1QkVcdTc1QzVcdTc1QzdcdTc1QjJcdTc1QjNcdTc1QkRcdTc1QkNcdTc1QjlcdTc1QzJcdTc1QjhcdTc2OEJcdTc2QjBcdTc2Q0FcdTc2Q0RcdTc2Q0VcdTc3MjlcdTc3MUZcdTc3MjBcdTc3MjhcdTc3RTlcdTc4MzBcdTc4MjdcdTc4MzhcdTc4MURcdTc4MzRcdTc4MzdcIl0sXG5bXCJhZmExXCIsXCJcdTc4MjVcdTc4MkRcdTc4MjBcdTc4MUZcdTc4MzJcdTc5NTVcdTc5NTBcdTc5NjBcdTc5NUZcdTc5NTZcdTc5NUVcdTc5NURcdTc5NTdcdTc5NUFcdTc5RTRcdTc5RTNcdTc5RTdcdTc5REZcdTc5RTZcdTc5RTlcdTc5RDhcdTdBODRcdTdBODhcdTdBRDlcdTdCMDZcdTdCMTFcdTdDODlcdTdEMjFcdTdEMTdcdTdEMEJcdTdEMEFcdTdEMjBcdTdEMjJcdTdEMTRcdTdEMTBcdTdEMTVcdTdEMUFcdTdEMUNcdTdEMERcdTdEMTlcdTdEMUJcdTdGM0FcdTdGNUZcdTdGOTRcdTdGQzVcdTdGQzFcdTgwMDZcdTgwMThcdTgwMTVcdTgwMTlcdTgwMTdcdTgwM0RcdTgwM0ZcdTgwRjFcdTgxMDJcdTgwRjBcdTgxMDVcdTgwRURcdTgwRjRcdTgxMDZcdTgwRjhcdTgwRjNcdTgxMDhcdTgwRkRcdTgxMEFcdTgwRkNcdTgwRUZcdTgxRURcdTgxRUNcdTgyMDBcdTgyMTBcdTgyMkFcdTgyMkJcdTgyMjhcdTgyMkNcdTgyQkJcdTgzMkJcdTgzNTJcdTgzNTRcdTgzNEFcdTgzMzhcdTgzNTBcdTgzNDlcdTgzMzVcdTgzMzRcdTgzNEZcdTgzMzJcdTgzMzlcdTgzMzZcdTgzMTdcdTgzNDBcdTgzMzFcdTgzMjhcdTgzNDNcIl0sXG5bXCJiMDQwXCIsXCJcdTg2NTRcdTg2OEFcdTg2QUFcdTg2OTNcdTg2QTRcdTg2QTlcdTg2OENcdTg2QTNcdTg2OUNcdTg4NzBcdTg4NzdcdTg4ODFcdTg4ODJcdTg4N0RcdTg4NzlcdThBMThcdThBMTBcdThBMEVcdThBMENcdThBMTVcdThBMEFcdThBMTdcdThBMTNcdThBMTZcdThBMEZcdThBMTFcdThDNDhcdThDN0FcdThDNzlcdThDQTFcdThDQTJcdThENzdcdThFQUNcdThFRDJcdThFRDRcdThFQ0ZcdThGQjFcdTkwMDFcdTkwMDZcdThGRjdcdTkwMDBcdThGRkFcdThGRjRcdTkwMDNcdThGRkRcdTkwMDVcdThGRjhcdTkwOTVcdTkwRTFcdTkwRERcdTkwRTJcdTkxNTJcdTkxNERcdTkxNENcdTkxRDhcdTkxRERcdTkxRDdcdTkxRENcdTkxRDlcdTk1ODNcdTk2NjJcdTk2NjNcdTk2NjFcIl0sXG5bXCJiMGExXCIsXCJcdTk2NUJcdTk2NURcdTk2NjRcdTk2NThcdTk2NUVcdTk2QkJcdTk4RTJcdTk5QUNcdTlBQThcdTlBRDhcdTlCMjVcdTlCMzJcdTlCM0NcdTRFN0VcdTUwN0FcdTUwN0RcdTUwNUNcdTUwNDdcdTUwNDNcdTUwNENcdTUwNUFcdTUwNDlcdTUwNjVcdTUwNzZcdTUwNEVcdTUwNTVcdTUwNzVcdTUwNzRcdTUwNzdcdTUwNEZcdTUwMEZcdTUwNkZcdTUwNkRcdTUxNUNcdTUxOTVcdTUxRjBcdTUyNkFcdTUyNkZcdTUyRDJcdTUyRDlcdTUyRDhcdTUyRDVcdTUzMTBcdTUzMEZcdTUzMTlcdTUzM0ZcdTUzNDBcdTUzM0VcdTUzQzNcdTY2RkNcdTU1NDZcdTU1NkFcdTU1NjZcdTU1NDRcdTU1NUVcdTU1NjFcdTU1NDNcdTU1NEFcdTU1MzFcdTU1NTZcdTU1NEZcdTU1NTVcdTU1MkZcdTU1NjRcdTU1MzhcdTU1MkVcdTU1NUNcdTU1MkNcdTU1NjNcdTU1MzNcdTU1NDFcdTU1NTdcdTU3MDhcdTU3MEJcdTU3MDlcdTU3REZcdTU4MDVcdTU4MEFcdTU4MDZcdTU3RTBcdTU3RTRcdTU3RkFcdTU4MDJcdTU4MzVcdTU3RjdcdTU3RjlcdTU5MjBcdTU5NjJcdTVBMzZcdTVBNDFcdTVBNDlcdTVBNjZcdTVBNkFcdTVBNDBcIl0sXG5bXCJiMTQwXCIsXCJcdTVBM0NcdTVBNjJcdTVBNUFcdTVBNDZcdTVBNEFcdTVCNzBcdTVCQzdcdTVCQzVcdTVCQzRcdTVCQzJcdTVCQkZcdTVCQzZcdTVDMDlcdTVDMDhcdTVDMDdcdTVDNjBcdTVDNUNcdTVDNURcdTVEMDdcdTVEMDZcdTVEMEVcdTVEMUJcdTVEMTZcdTVEMjJcdTVEMTFcdTVEMjlcdTVEMTRcdTVEMTlcdTVEMjRcdTVEMjdcdTVEMTdcdTVERTJcdTVFMzhcdTVFMzZcdTVFMzNcdTVFMzdcdTVFQjdcdTVFQjhcdTVFQjZcdTVFQjVcdTVFQkVcdTVGMzVcdTVGMzdcdTVGNTdcdTVGNkNcdTVGNjlcdTVGNkJcdTVGOTdcdTVGOTlcdTVGOUVcdTVGOThcdTVGQTFcdTVGQTBcdTVGOUNcdTYwN0ZcdTYwQTNcdTYwODlcdTYwQTBcdTYwQThcdTYwQ0JcdTYwQjRcdTYwRTZcdTYwQkRcIl0sXG5bXCJiMWExXCIsXCJcdTYwQzVcdTYwQkJcdTYwQjVcdTYwRENcdTYwQkNcdTYwRDhcdTYwRDVcdTYwQzZcdTYwREZcdTYwQjhcdTYwREFcdTYwQzdcdTYyMUFcdTYyMUJcdTYyNDhcdTYzQTBcdTYzQTdcdTYzNzJcdTYzOTZcdTYzQTJcdTYzQTVcdTYzNzdcdTYzNjdcdTYzOThcdTYzQUFcdTYzNzFcdTYzQTlcdTYzODlcdTYzODNcdTYzOUJcdTYzNkJcdTYzQThcdTYzODRcdTYzODhcdTYzOTlcdTYzQTFcdTYzQUNcdTYzOTJcdTYzOEZcdTYzODBcdTYzN0JcdTYzNjlcdTYzNjhcdTYzN0FcdTY1NURcdTY1NTZcdTY1NTFcdTY1NTlcdTY1NTdcdTU1NUZcdTY1NEZcdTY1NThcdTY1NTVcdTY1NTRcdTY1OUNcdTY1OUJcdTY1QUNcdTY1Q0ZcdTY1Q0JcdTY1Q0NcdTY1Q0VcdTY2NURcdTY2NUFcdTY2NjRcdTY2NjhcdTY2NjZcdTY2NUVcdTY2RjlcdTUyRDdcdTY3MUJcdTY4ODFcdTY4QUZcdTY4QTJcdTY4OTNcdTY4QjVcdTY4N0ZcdTY4NzZcdTY4QjFcdTY4QTdcdTY4OTdcdTY4QjBcdTY4ODNcdTY4QzRcdTY4QURcdTY4ODZcdTY4ODVcdTY4OTRcdTY4OURcdTY4QThcdTY4OUZcdTY4QTFcdTY4ODJcdTZCMzJcdTZCQkFcIl0sXG5bXCJiMjQwXCIsXCJcdTZCRUJcdTZCRUNcdTZDMkJcdTZEOEVcdTZEQkNcdTZERjNcdTZERDlcdTZEQjJcdTZERTFcdTZEQ0NcdTZERTRcdTZERkJcdTZERkFcdTZFMDVcdTZEQzdcdTZEQ0JcdTZEQUZcdTZERDFcdTZEQUVcdTZEREVcdTZERjlcdTZEQjhcdTZERjdcdTZERjVcdTZEQzVcdTZERDJcdTZFMUFcdTZEQjVcdTZEREFcdTZERUJcdTZERDhcdTZERUFcdTZERjFcdTZERUVcdTZERThcdTZEQzZcdTZEQzRcdTZEQUFcdTZERUNcdTZEQkZcdTZERTZcdTcwRjlcdTcxMDlcdTcxMEFcdTcwRkRcdTcwRUZcdTcyM0RcdTcyN0RcdTcyODFcdTczMUNcdTczMUJcdTczMTZcdTczMTNcdTczMTlcdTczODdcdTc0MDVcdTc0MEFcdTc0MDNcdTc0MDZcdTczRkVcdTc0MERcdTc0RTBcdTc0RjZcIl0sXG5bXCJiMmExXCIsXCJcdTc0RjdcdTc1MUNcdTc1MjJcdTc1NjVcdTc1NjZcdTc1NjJcdTc1NzBcdTc1OEZcdTc1RDRcdTc1RDVcdTc1QjVcdTc1Q0FcdTc1Q0RcdTc2OEVcdTc2RDRcdTc2RDJcdTc2REJcdTc3MzdcdTc3M0VcdTc3M0NcdTc3MzZcdTc3MzhcdTc3M0FcdTc4NkJcdTc4NDNcdTc4NEVcdTc5NjVcdTc5NjhcdTc5NkRcdTc5RkJcdTdBOTJcdTdBOTVcdTdCMjBcdTdCMjhcdTdCMUJcdTdCMkNcdTdCMjZcdTdCMTlcdTdCMUVcdTdCMkVcdTdDOTJcdTdDOTdcdTdDOTVcdTdENDZcdTdENDNcdTdENzFcdTdEMkVcdTdEMzlcdTdEM0NcdTdENDBcdTdEMzBcdTdEMzNcdTdENDRcdTdEMkZcdTdENDJcdTdEMzJcdTdEMzFcdTdGM0RcdTdGOUVcdTdGOUFcdTdGQ0NcdTdGQ0VcdTdGRDJcdTgwMUNcdTgwNEFcdTgwNDZcdTgxMkZcdTgxMTZcdTgxMjNcdTgxMkJcdTgxMjlcdTgxMzBcdTgxMjRcdTgyMDJcdTgyMzVcdTgyMzdcdTgyMzZcdTgyMzlcdTgzOEVcdTgzOUVcdTgzOThcdTgzNzhcdTgzQTJcdTgzOTZcdTgzQkRcdTgzQUJcdTgzOTJcdTgzOEFcdTgzOTNcdTgzODlcdTgzQTBcdTgzNzdcdTgzN0JcdTgzN0NcIl0sXG5bXCJiMzQwXCIsXCJcdTgzODZcdTgzQTdcdTg2NTVcdTVGNkFcdTg2QzdcdTg2QzBcdTg2QjZcdTg2QzRcdTg2QjVcdTg2QzZcdTg2Q0JcdTg2QjFcdTg2QUZcdTg2QzlcdTg4NTNcdTg4OUVcdTg4ODhcdTg4QUJcdTg4OTJcdTg4OTZcdTg4OERcdTg4OEJcdTg5OTNcdTg5OEZcdThBMkFcdThBMURcdThBMjNcdThBMjVcdThBMzFcdThBMkRcdThBMUZcdThBMUJcdThBMjJcdThDNDlcdThDNUFcdThDQTlcdThDQUNcdThDQUJcdThDQThcdThDQUFcdThDQTdcdThENjdcdThENjZcdThEQkVcdThEQkFcdThFREJcdThFREZcdTkwMTlcdTkwMERcdTkwMUFcdTkwMTdcdTkwMjNcdTkwMUZcdTkwMURcdTkwMTBcdTkwMTVcdTkwMUVcdTkwMjBcdTkwMEZcdTkwMjJcdTkwMTZcdTkwMUJcdTkwMTRcIl0sXG5bXCJiM2ExXCIsXCJcdTkwRThcdTkwRURcdTkwRkRcdTkxNTdcdTkxQ0VcdTkxRjVcdTkxRTZcdTkxRTNcdTkxRTdcdTkxRURcdTkxRTlcdTk1ODlcdTk2NkFcdTk2NzVcdTk2NzNcdTk2NzhcdTk2NzBcdTk2NzRcdTk2NzZcdTk2NzdcdTk2NkNcdTk2QzBcdTk2RUFcdTk2RTlcdTdBRTBcdTdBREZcdTk4MDJcdTk4MDNcdTlCNUFcdTlDRTVcdTlFNzVcdTlFN0ZcdTlFQTVcdTlFQkJcdTUwQTJcdTUwOERcdTUwODVcdTUwOTlcdTUwOTFcdTUwODBcdTUwOTZcdTUwOThcdTUwOUFcdTY3MDBcdTUxRjFcdTUyNzJcdTUyNzRcdTUyNzVcdTUyNjlcdTUyREVcdTUyRERcdTUyREJcdTUzNUFcdTUzQTVcdTU1N0JcdTU1ODBcdTU1QTdcdTU1N0NcdTU1OEFcdTU1OURcdTU1OThcdTU1ODJcdTU1OUNcdTU1QUFcdTU1OTRcdTU1ODdcdTU1OEJcdTU1ODNcdTU1QjNcdTU1QUVcdTU1OUZcdTU1M0VcdTU1QjJcdTU1OUFcdTU1QkJcdTU1QUNcdTU1QjFcdTU1N0VcdTU1ODlcdTU1QUJcdTU1OTlcdTU3MERcdTU4MkZcdTU4MkFcdTU4MzRcdTU4MjRcdTU4MzBcdTU4MzFcdTU4MjFcdTU4MURcdTU4MjBcdTU4RjlcdTU4RkFcdTU5NjBcIl0sXG5bXCJiNDQwXCIsXCJcdTVBNzdcdTVBOUFcdTVBN0ZcdTVBOTJcdTVBOUJcdTVBQTdcdTVCNzNcdTVCNzFcdTVCRDJcdTVCQ0NcdTVCRDNcdTVCRDBcdTVDMEFcdTVDMEJcdTVDMzFcdTVENENcdTVENTBcdTVEMzRcdTVENDdcdTVERkRcdTVFNDVcdTVFM0RcdTVFNDBcdTVFNDNcdTVFN0VcdTVFQ0FcdTVFQzFcdTVFQzJcdTVFQzRcdTVGM0NcdTVGNkRcdTVGQTlcdTVGQUFcdTVGQThcdTYwRDFcdTYwRTFcdTYwQjJcdTYwQjZcdTYwRTBcdTYxMUNcdTYxMjNcdTYwRkFcdTYxMTVcdTYwRjBcdTYwRkJcdTYwRjRcdTYxNjhcdTYwRjFcdTYxMEVcdTYwRjZcdTYxMDlcdTYxMDBcdTYxMTJcdTYyMUZcdTYyNDlcdTYzQTNcdTYzOENcdTYzQ0ZcdTYzQzBcdTYzRTlcdTYzQzlcdTYzQzZcdTYzQ0RcIl0sXG5bXCJiNGExXCIsXCJcdTYzRDJcdTYzRTNcdTYzRDBcdTYzRTFcdTYzRDZcdTYzRURcdTYzRUVcdTYzNzZcdTYzRjRcdTYzRUFcdTYzREJcdTY0NTJcdTYzREFcdTYzRjlcdTY1NUVcdTY1NjZcdTY1NjJcdTY1NjNcdTY1OTFcdTY1OTBcdTY1QUZcdTY2NkVcdTY2NzBcdTY2NzRcdTY2NzZcdTY2NkZcdTY2OTFcdTY2N0FcdTY2N0VcdTY2NzdcdTY2RkVcdTY2RkZcdTY3MUZcdTY3MURcdTY4RkFcdTY4RDVcdTY4RTBcdTY4RDhcdTY4RDdcdTY5MDVcdTY4REZcdTY4RjVcdTY4RUVcdTY4RTdcdTY4RjlcdTY4RDJcdTY4RjJcdTY4RTNcdTY4Q0JcdTY4Q0RcdTY5MERcdTY5MTJcdTY5MEVcdTY4QzlcdTY4REFcdTY5NkVcdTY4RkJcdTZCM0VcdTZCM0FcdTZCM0RcdTZCOThcdTZCOTZcdTZCQkNcdTZCRUZcdTZDMkVcdTZDMkZcdTZDMkNcdTZFMkZcdTZFMzhcdTZFNTRcdTZFMjFcdTZFMzJcdTZFNjdcdTZFNEFcdTZFMjBcdTZFMjVcdTZFMjNcdTZFMUJcdTZFNUJcdTZFNThcdTZFMjRcdTZFNTZcdTZFNkVcdTZFMkRcdTZFMjZcdTZFNkZcdTZFMzRcdTZFNERcdTZFM0FcdTZFMkNcdTZFNDNcdTZFMURcdTZFM0VcdTZFQ0JcIl0sXG5bXCJiNTQwXCIsXCJcdTZFODlcdTZFMTlcdTZFNEVcdTZFNjNcdTZFNDRcdTZFNzJcdTZFNjlcdTZFNUZcdTcxMTlcdTcxMUFcdTcxMjZcdTcxMzBcdTcxMjFcdTcxMzZcdTcxNkVcdTcxMUNcdTcyNENcdTcyODRcdTcyODBcdTczMzZcdTczMjVcdTczMzRcdTczMjlcdTc0M0FcdTc0MkFcdTc0MzNcdTc0MjJcdTc0MjVcdTc0MzVcdTc0MzZcdTc0MzRcdTc0MkZcdTc0MUJcdTc0MjZcdTc0MjhcdTc1MjVcdTc1MjZcdTc1NkJcdTc1NkFcdTc1RTJcdTc1REJcdTc1RTNcdTc1RDlcdTc1RDhcdTc1REVcdTc1RTBcdTc2N0JcdTc2N0NcdTc2OTZcdTc2OTNcdTc2QjRcdTc2RENcdTc3NEZcdTc3RURcdTc4NURcdTc4NkNcdTc4NkZcdTdBMERcdTdBMDhcdTdBMEJcdTdBMDVcdTdBMDBcdTdBOThcIl0sXG5bXCJiNWExXCIsXCJcdTdBOTdcdTdBOTZcdTdBRTVcdTdBRTNcdTdCNDlcdTdCNTZcdTdCNDZcdTdCNTBcdTdCNTJcdTdCNTRcdTdCNERcdTdCNEJcdTdCNEZcdTdCNTFcdTdDOUZcdTdDQTVcdTdENUVcdTdENTBcdTdENjhcdTdENTVcdTdEMkJcdTdENkVcdTdENzJcdTdENjFcdTdENjZcdTdENjJcdTdENzBcdTdENzNcdTU1ODRcdTdGRDRcdTdGRDVcdTgwMEJcdTgwNTJcdTgwODVcdTgxNTVcdTgxNTRcdTgxNEJcdTgxNTFcdTgxNEVcdTgxMzlcdTgxNDZcdTgxM0VcdTgxNENcdTgxNTNcdTgxNzRcdTgyMTJcdTgyMUNcdTgzRTlcdTg0MDNcdTgzRjhcdTg0MERcdTgzRTBcdTgzQzVcdTg0MEJcdTgzQzFcdTgzRUZcdTgzRjFcdTgzRjRcdTg0NTdcdTg0MEFcdTgzRjBcdTg0MENcdTgzQ0NcdTgzRkRcdTgzRjJcdTgzQ0FcdTg0MzhcdTg0MEVcdTg0MDRcdTgzRENcdTg0MDdcdTgzRDRcdTgzREZcdTg2NUJcdTg2REZcdTg2RDlcdTg2RURcdTg2RDRcdTg2REJcdTg2RTRcdTg2RDBcdTg2REVcdTg4NTdcdTg4QzFcdTg4QzJcdTg4QjFcdTg5ODNcdTg5OTZcdThBM0JcdThBNjBcdThBNTVcdThBNUVcdThBM0NcdThBNDFcIl0sXG5bXCJiNjQwXCIsXCJcdThBNTRcdThBNUJcdThBNTBcdThBNDZcdThBMzRcdThBM0FcdThBMzZcdThBNTZcdThDNjFcdThDODJcdThDQUZcdThDQkNcdThDQjNcdThDQkRcdThDQzFcdThDQkJcdThDQzBcdThDQjRcdThDQjdcdThDQjZcdThDQkZcdThDQjhcdThEOEFcdThEODVcdThEODFcdThEQ0VcdThERERcdThEQ0JcdThEREFcdThERDFcdThEQ0NcdThEREJcdThEQzZcdThFRkJcdThFRjhcdThFRkNcdThGOUNcdTkwMkVcdTkwMzVcdTkwMzFcdTkwMzhcdTkwMzJcdTkwMzZcdTkxMDJcdTkwRjVcdTkxMDlcdTkwRkVcdTkxNjNcdTkxNjVcdTkxQ0ZcdTkyMTRcdTkyMTVcdTkyMjNcdTkyMDlcdTkyMUVcdTkyMERcdTkyMTBcdTkyMDdcdTkyMTFcdTk1OTRcdTk1OEZcdTk1OEJcdTk1OTFcIl0sXG5bXCJiNmExXCIsXCJcdTk1OTNcdTk1OTJcdTk1OEVcdTk2OEFcdTk2OEVcdTk2OEJcdTk2N0RcdTk2ODVcdTk2ODZcdTk2OERcdTk2NzJcdTk2ODRcdTk2QzFcdTk2QzVcdTk2QzRcdTk2QzZcdTk2QzdcdTk2RUZcdTk2RjJcdTk3Q0NcdTk4MDVcdTk4MDZcdTk4MDhcdTk4RTdcdTk4RUFcdTk4RUZcdTk4RTlcdTk4RjJcdTk4RURcdTk5QUVcdTk5QURcdTlFQzNcdTlFQ0RcdTlFRDFcdTRFODJcdTUwQURcdTUwQjVcdTUwQjJcdTUwQjNcdTUwQzVcdTUwQkVcdTUwQUNcdTUwQjdcdTUwQkJcdTUwQUZcdTUwQzdcdTUyN0ZcdTUyNzdcdTUyN0RcdTUyREZcdTUyRTZcdTUyRTRcdTUyRTJcdTUyRTNcdTUzMkZcdTU1REZcdTU1RThcdTU1RDNcdTU1RTZcdTU1Q0VcdTU1RENcdTU1QzdcdTU1RDFcdTU1RTNcdTU1RTRcdTU1RUZcdTU1REFcdTU1RTFcdTU1QzVcdTU1QzZcdTU1RTVcdTU1QzlcdTU3MTJcdTU3MTNcdTU4NUVcdTU4NTFcdTU4NThcdTU4NTdcdTU4NUFcdTU4NTRcdTU4NkJcdTU4NENcdTU4NkRcdTU4NEFcdTU4NjJcdTU4NTJcdTU4NEJcdTU5NjdcdTVBQzFcdTVBQzlcdTVBQ0NcdTVBQkVcdTVBQkRcdTVBQkNcIl0sXG5bXCJiNzQwXCIsXCJcdTVBQjNcdTVBQzJcdTVBQjJcdTVENjlcdTVENkZcdTVFNENcdTVFNzlcdTVFQzlcdTVFQzhcdTVGMTJcdTVGNTlcdTVGQUNcdTVGQUVcdTYxMUFcdTYxMEZcdTYxNDhcdTYxMUZcdTYwRjNcdTYxMUJcdTYwRjlcdTYxMDFcdTYxMDhcdTYxNEVcdTYxNENcdTYxNDRcdTYxNERcdTYxM0VcdTYxMzRcdTYxMjdcdTYxMERcdTYxMDZcdTYxMzdcdTYyMjFcdTYyMjJcdTY0MTNcdTY0M0VcdTY0MUVcdTY0MkFcdTY0MkRcdTY0M0RcdTY0MkNcdTY0MEZcdTY0MUNcdTY0MTRcdTY0MERcdTY0MzZcdTY0MTZcdTY0MTdcdTY0MDZcdTY1NkNcdTY1OUZcdTY1QjBcdTY2OTdcdTY2ODlcdTY2ODdcdTY2ODhcdTY2OTZcdTY2ODRcdTY2OThcdTY2OERcdTY3MDNcdTY5OTRcdTY5NkRcIl0sXG5bXCJiN2ExXCIsXCJcdTY5NUFcdTY5NzdcdTY5NjBcdTY5NTRcdTY5NzVcdTY5MzBcdTY5ODJcdTY5NEFcdTY5NjhcdTY5NkJcdTY5NUVcdTY5NTNcdTY5NzlcdTY5ODZcdTY5NURcdTY5NjNcdTY5NUJcdTZCNDdcdTZCNzJcdTZCQzBcdTZCQkZcdTZCRDNcdTZCRkRcdTZFQTJcdTZFQUZcdTZFRDNcdTZFQjZcdTZFQzJcdTZFOTBcdTZFOURcdTZFQzdcdTZFQzVcdTZFQTVcdTZFOThcdTZFQkNcdTZFQkFcdTZFQUJcdTZFRDFcdTZFOTZcdTZFOUNcdTZFQzRcdTZFRDRcdTZFQUFcdTZFQTdcdTZFQjRcdTcxNEVcdTcxNTlcdTcxNjlcdTcxNjRcdTcxNDlcdTcxNjdcdTcxNUNcdTcxNkNcdTcxNjZcdTcxNENcdTcxNjVcdTcxNUVcdTcxNDZcdTcxNjhcdTcxNTZcdTcyM0FcdTcyNTJcdTczMzdcdTczNDVcdTczM0ZcdTczM0VcdTc0NkZcdTc0NUFcdTc0NTVcdTc0NUZcdTc0NUVcdTc0NDFcdTc0M0ZcdTc0NTlcdTc0NUJcdTc0NUNcdTc1NzZcdTc1NzhcdTc2MDBcdTc1RjBcdTc2MDFcdTc1RjJcdTc1RjFcdTc1RkFcdTc1RkZcdTc1RjRcdTc1RjNcdTc2REVcdTc2REZcdTc3NUJcdTc3NkJcdTc3NjZcdTc3NUVcdTc3NjNcIl0sXG5bXCJiODQwXCIsXCJcdTc3NzlcdTc3NkFcdTc3NkNcdTc3NUNcdTc3NjVcdTc3NjhcdTc3NjJcdTc3RUVcdTc4OEVcdTc4QjBcdTc4OTdcdTc4OThcdTc4OENcdTc4ODlcdTc4N0NcdTc4OTFcdTc4OTNcdTc4N0ZcdTc5N0FcdTc5N0ZcdTc5ODFcdTg0MkNcdTc5QkRcdTdBMUNcdTdBMUFcdTdBMjBcdTdBMTRcdTdBMUZcdTdBMUVcdTdBOUZcdTdBQTBcdTdCNzdcdTdCQzBcdTdCNjBcdTdCNkVcdTdCNjdcdTdDQjFcdTdDQjNcdTdDQjVcdTdEOTNcdTdENzlcdTdEOTFcdTdEODFcdTdEOEZcdTdENUJcdTdGNkVcdTdGNjlcdTdGNkFcdTdGNzJcdTdGQTlcdTdGQThcdTdGQTRcdTgwNTZcdTgwNThcdTgwODZcdTgwODRcdTgxNzFcdTgxNzBcdTgxNzhcdTgxNjVcdTgxNkVcdTgxNzNcdTgxNkJcIl0sXG5bXCJiOGExXCIsXCJcdTgxNzlcdTgxN0FcdTgxNjZcdTgyMDVcdTgyNDdcdTg0ODJcdTg0NzdcdTg0M0RcdTg0MzFcdTg0NzVcdTg0NjZcdTg0NkJcdTg0NDlcdTg0NkNcdTg0NUJcdTg0M0NcdTg0MzVcdTg0NjFcdTg0NjNcdTg0NjlcdTg0NkRcdTg0NDZcdTg2NUVcdTg2NUNcdTg2NUZcdTg2RjlcdTg3MTNcdTg3MDhcdTg3MDdcdTg3MDBcdTg2RkVcdTg2RkJcdTg3MDJcdTg3MDNcdTg3MDZcdTg3MEFcdTg4NTlcdTg4REZcdTg4RDRcdTg4RDlcdTg4RENcdTg4RDhcdTg4RERcdTg4RTFcdTg4Q0FcdTg4RDVcdTg4RDJcdTg5OUNcdTg5RTNcdThBNkJcdThBNzJcdThBNzNcdThBNjZcdThBNjlcdThBNzBcdThBODdcdThBN0NcdThBNjNcdThBQTBcdThBNzFcdThBODVcdThBNkRcdThBNjJcdThBNkVcdThBNkNcdThBNzlcdThBN0JcdThBM0VcdThBNjhcdThDNjJcdThDOEFcdThDODlcdThDQ0FcdThDQzdcdThDQzhcdThDQzRcdThDQjJcdThDQzNcdThDQzJcdThDQzVcdThERTFcdThEREZcdThERThcdThERUZcdThERjNcdThERkFcdThERUFcdThERTRcdThERTZcdThFQjJcdThGMDNcdThGMDlcdThFRkVcdThGMEFcIl0sXG5bXCJiOTQwXCIsXCJcdThGOUZcdThGQjJcdTkwNEJcdTkwNEFcdTkwNTNcdTkwNDJcdTkwNTRcdTkwM0NcdTkwNTVcdTkwNTBcdTkwNDdcdTkwNEZcdTkwNEVcdTkwNERcdTkwNTFcdTkwM0VcdTkwNDFcdTkxMTJcdTkxMTdcdTkxNkNcdTkxNkFcdTkxNjlcdTkxQzlcdTkyMzdcdTkyNTdcdTkyMzhcdTkyM0RcdTkyNDBcdTkyM0VcdTkyNUJcdTkyNEJcdTkyNjRcdTkyNTFcdTkyMzRcdTkyNDlcdTkyNERcdTkyNDVcdTkyMzlcdTkyM0ZcdTkyNUFcdTk1OThcdTk2OThcdTk2OTRcdTk2OTVcdTk2Q0RcdTk2Q0JcdTk2QzlcdTk2Q0FcdTk2RjdcdTk2RkJcdTk2RjlcdTk2RjZcdTk3NTZcdTk3NzRcdTk3NzZcdTk4MTBcdTk4MTFcdTk4MTNcdTk4MEFcdTk4MTJcdTk4MENcdTk4RkNcdTk4RjRcIl0sXG5bXCJiOWExXCIsXCJcdTk4RkRcdTk4RkVcdTk5QjNcdTk5QjFcdTk5QjRcdTlBRTFcdTlDRTlcdTlFODJcdTlGMEVcdTlGMTNcdTlGMjBcdTUwRTdcdTUwRUVcdTUwRTVcdTUwRDZcdTUwRURcdTUwREFcdTUwRDVcdTUwQ0ZcdTUwRDFcdTUwRjFcdTUwQ0VcdTUwRTlcdTUxNjJcdTUxRjNcdTUyODNcdTUyODJcdTUzMzFcdTUzQURcdTU1RkVcdTU2MDBcdTU2MUJcdTU2MTdcdTU1RkRcdTU2MTRcdTU2MDZcdTU2MDlcdTU2MERcdTU2MEVcdTU1RjdcdTU2MTZcdTU2MUZcdTU2MDhcdTU2MTBcdTU1RjZcdTU3MThcdTU3MTZcdTU4NzVcdTU4N0VcdTU4ODNcdTU4OTNcdTU4OEFcdTU4NzlcdTU4ODVcdTU4N0RcdTU4RkRcdTU5MjVcdTU5MjJcdTU5MjRcdTU5NkFcdTU5NjlcdTVBRTFcdTVBRTZcdTVBRTlcdTVBRDdcdTVBRDZcdTVBRDhcdTVBRTNcdTVCNzVcdTVCREVcdTVCRTdcdTVCRTFcdTVCRTVcdTVCRTZcdTVCRThcdTVCRTJcdTVCRTRcdTVCREZcdTVDMERcdTVDNjJcdTVEODRcdTVEODdcdTVFNUJcdTVFNjNcdTVFNTVcdTVFNTdcdTVFNTRcdTVFRDNcdTVFRDZcdTVGMEFcdTVGNDZcdTVGNzBcdTVGQjlcdTYxNDdcIl0sXG5bXCJiYTQwXCIsXCJcdTYxM0ZcdTYxNEJcdTYxNzdcdTYxNjJcdTYxNjNcdTYxNUZcdTYxNUFcdTYxNThcdTYxNzVcdTYyMkFcdTY0ODdcdTY0NThcdTY0NTRcdTY0QTRcdTY0NzhcdTY0NUZcdTY0N0FcdTY0NTFcdTY0NjdcdTY0MzRcdTY0NkRcdTY0N0JcdTY1NzJcdTY1QTFcdTY1RDdcdTY1RDZcdTY2QTJcdTY2QThcdTY2OURcdTY5OUNcdTY5QThcdTY5OTVcdTY5QzFcdTY5QUVcdTY5RDNcdTY5Q0JcdTY5OUJcdTY5QjdcdTY5QkJcdTY5QUJcdTY5QjRcdTY5RDBcdTY5Q0RcdTY5QURcdTY5Q0NcdTY5QTZcdTY5QzNcdTY5QTNcdTZCNDlcdTZCNENcdTZDMzNcdTZGMzNcdTZGMTRcdTZFRkVcdTZGMTNcdTZFRjRcdTZGMjlcdTZGM0VcdTZGMjBcdTZGMkNcdTZGMEZcdTZGMDJcdTZGMjJcIl0sXG5bXCJiYWExXCIsXCJcdTZFRkZcdTZFRUZcdTZGMDZcdTZGMzFcdTZGMzhcdTZGMzJcdTZGMjNcdTZGMTVcdTZGMkJcdTZGMkZcdTZGODhcdTZGMkFcdTZFRUNcdTZGMDFcdTZFRjJcdTZFQ0NcdTZFRjdcdTcxOTRcdTcxOTlcdTcxN0RcdTcxOEFcdTcxODRcdTcxOTJcdTcyM0VcdTcyOTJcdTcyOTZcdTczNDRcdTczNTBcdTc0NjRcdTc0NjNcdTc0NkFcdTc0NzBcdTc0NkRcdTc1MDRcdTc1OTFcdTc2MjdcdTc2MERcdTc2MEJcdTc2MDlcdTc2MTNcdTc2RTFcdTc2RTNcdTc3ODRcdTc3N0RcdTc3N0ZcdTc3NjFcdTc4QzFcdTc4OUZcdTc4QTdcdTc4QjNcdTc4QTlcdTc4QTNcdTc5OEVcdTc5OEZcdTc5OERcdTdBMkVcdTdBMzFcdTdBQUFcdTdBQTlcdTdBRURcdTdBRUZcdTdCQTFcdTdCOTVcdTdCOEJcdTdCNzVcdTdCOTdcdTdCOURcdTdCOTRcdTdCOEZcdTdCQjhcdTdCODdcdTdCODRcdTdDQjlcdTdDQkRcdTdDQkVcdTdEQkJcdTdEQjBcdTdEOUNcdTdEQkRcdTdEQkVcdTdEQTBcdTdEQ0FcdTdEQjRcdTdEQjJcdTdEQjFcdTdEQkFcdTdEQTJcdTdEQkZcdTdEQjVcdTdEQjhcdTdEQURcdTdERDJcdTdEQzdcdTdEQUNcIl0sXG5bXCJiYjQwXCIsXCJcdTdGNzBcdTdGRTBcdTdGRTFcdTdGREZcdTgwNUVcdTgwNUFcdTgwODdcdTgxNTBcdTgxODBcdTgxOEZcdTgxODhcdTgxOEFcdTgxN0ZcdTgxODJcdTgxRTdcdTgxRkFcdTgyMDdcdTgyMTRcdTgyMUVcdTgyNEJcdTg0QzlcdTg0QkZcdTg0QzZcdTg0QzRcdTg0OTlcdTg0OUVcdTg0QjJcdTg0OUNcdTg0Q0JcdTg0QjhcdTg0QzBcdTg0RDNcdTg0OTBcdTg0QkNcdTg0RDFcdTg0Q0FcdTg3M0ZcdTg3MUNcdTg3M0JcdTg3MjJcdTg3MjVcdTg3MzRcdTg3MThcdTg3NTVcdTg3MzdcdTg3MjlcdTg4RjNcdTg5MDJcdTg4RjRcdTg4RjlcdTg4RjhcdTg4RkRcdTg4RThcdTg5MUFcdTg4RUZcdThBQTZcdThBOENcdThBOUVcdThBQTNcdThBOERcdThBQTFcdThBOTNcdThBQTRcIl0sXG5bXCJiYmExXCIsXCJcdThBQUFcdThBQTVcdThBQThcdThBOThcdThBOTFcdThBOUFcdThBQTdcdThDNkFcdThDOERcdThDOENcdThDRDNcdThDRDFcdThDRDJcdThENkJcdThEOTlcdThEOTVcdThERkNcdThGMTRcdThGMTJcdThGMTVcdThGMTNcdThGQTNcdTkwNjBcdTkwNThcdTkwNUNcdTkwNjNcdTkwNTlcdTkwNUVcdTkwNjJcdTkwNURcdTkwNUJcdTkxMTlcdTkxMThcdTkxMUVcdTkxNzVcdTkxNzhcdTkxNzdcdTkxNzRcdTkyNzhcdTkyODBcdTkyODVcdTkyOThcdTkyOTZcdTkyN0JcdTkyOTNcdTkyOUNcdTkyQThcdTkyN0NcdTkyOTFcdTk1QTFcdTk1QThcdTk1QTlcdTk1QTNcdTk1QTVcdTk1QTRcdTk2OTlcdTk2OUNcdTk2OUJcdTk2Q0NcdTk2RDJcdTk3MDBcdTk3N0NcdTk3ODVcdTk3RjZcdTk4MTdcdTk4MThcdTk4QUZcdTk4QjFcdTk5MDNcdTk5MDVcdTk5MENcdTk5MDlcdTk5QzFcdTlBQUZcdTlBQjBcdTlBRTZcdTlCNDFcdTlCNDJcdTlDRjRcdTlDRjZcdTlDRjNcdTlFQkNcdTlGM0JcdTlGNEFcdTUxMDRcdTUxMDBcdTUwRkJcdTUwRjVcdTUwRjlcdTUxMDJcdTUxMDhcdTUxMDlcdTUxMDVcdTUxRENcIl0sXG5bXCJiYzQwXCIsXCJcdTUyODdcdTUyODhcdTUyODlcdTUyOERcdTUyOEFcdTUyRjBcdTUzQjJcdTU2MkVcdTU2M0JcdTU2MzlcdTU2MzJcdTU2M0ZcdTU2MzRcdTU2MjlcdTU2NTNcdTU2NEVcdTU2NTdcdTU2NzRcdTU2MzZcdTU2MkZcdTU2MzBcdTU4ODBcdTU4OUZcdTU4OUVcdTU4QjNcdTU4OUNcdTU4QUVcdTU4QTlcdTU4QTZcdTU5NkRcdTVCMDlcdTVBRkJcdTVCMEJcdTVBRjVcdTVCMENcdTVCMDhcdTVCRUVcdTVCRUNcdTVCRTlcdTVCRUJcdTVDNjRcdTVDNjVcdTVEOURcdTVEOTRcdTVFNjJcdTVFNUZcdTVFNjFcdTVFRTJcdTVFREFcdTVFREZcdTVFRERcdTVFRTNcdTVFRTBcdTVGNDhcdTVGNzFcdTVGQjdcdTVGQjVcdTYxNzZcdTYxNjdcdTYxNkVcdTYxNURcdTYxNTVcdTYxODJcIl0sXG5bXCJiY2ExXCIsXCJcdTYxN0NcdTYxNzBcdTYxNkJcdTYxN0VcdTYxQTdcdTYxOTBcdTYxQUJcdTYxOEVcdTYxQUNcdTYxOUFcdTYxQTRcdTYxOTRcdTYxQUVcdTYyMkVcdTY0NjlcdTY0NkZcdTY0NzlcdTY0OUVcdTY0QjJcdTY0ODhcdTY0OTBcdTY0QjBcdTY0QTVcdTY0OTNcdTY0OTVcdTY0QTlcdTY0OTJcdTY0QUVcdTY0QURcdTY0QUJcdTY0OUFcdTY0QUNcdTY0OTlcdTY0QTJcdTY0QjNcdTY1NzVcdTY1NzdcdTY1NzhcdTY2QUVcdTY2QUJcdTY2QjRcdTY2QjFcdTZBMjNcdTZBMUZcdTY5RThcdTZBMDFcdTZBMUVcdTZBMTlcdTY5RkRcdTZBMjFcdTZBMTNcdTZBMEFcdTY5RjNcdTZBMDJcdTZBMDVcdTY5RURcdTZBMTFcdTZCNTBcdTZCNEVcdTZCQTRcdTZCQzVcdTZCQzZcdTZGM0ZcdTZGN0NcdTZGODRcdTZGNTFcdTZGNjZcdTZGNTRcdTZGODZcdTZGNkRcdTZGNUJcdTZGNzhcdTZGNkVcdTZGOEVcdTZGN0FcdTZGNzBcdTZGNjRcdTZGOTdcdTZGNThcdTZFRDVcdTZGNkZcdTZGNjBcdTZGNUZcdTcxOUZcdTcxQUNcdTcxQjFcdTcxQThcdTcyNTZcdTcyOUJcdTczNEVcdTczNTdcdTc0NjlcdTc0OEJcdTc0ODNcIl0sXG5bXCJiZDQwXCIsXCJcdTc0N0VcdTc0ODBcdTc1N0ZcdTc2MjBcdTc2MjlcdTc2MUZcdTc2MjRcdTc2MjZcdTc2MjFcdTc2MjJcdTc2OUFcdTc2QkFcdTc2RTRcdTc3OEVcdTc3ODdcdTc3OENcdTc3OTFcdTc3OEJcdTc4Q0JcdTc4QzVcdTc4QkFcdTc4Q0FcdTc4QkVcdTc4RDVcdTc4QkNcdTc4RDBcdTdBM0ZcdTdBM0NcdTdBNDBcdTdBM0RcdTdBMzdcdTdBM0JcdTdBQUZcdTdBQUVcdTdCQURcdTdCQjFcdTdCQzRcdTdCQjRcdTdCQzZcdTdCQzdcdTdCQzFcdTdCQTBcdTdCQ0NcdTdDQ0FcdTdERTBcdTdERjRcdTdERUZcdTdERkJcdTdERDhcdTdERUNcdTdERERcdTdERThcdTdERTNcdTdEREFcdTdEREVcdTdERTlcdTdEOUVcdTdERDlcdTdERjJcdTdERjlcdTdGNzVcdTdGNzdcdTdGQUZcIl0sXG5bXCJiZGExXCIsXCJcdTdGRTlcdTgwMjZcdTgxOUJcdTgxOUNcdTgxOURcdTgxQTBcdTgxOUFcdTgxOThcdTg1MTdcdTg1M0RcdTg1MUFcdTg0RUVcdTg1MkNcdTg1MkRcdTg1MTNcdTg1MTFcdTg1MjNcdTg1MjFcdTg1MTRcdTg0RUNcdTg1MjVcdTg0RkZcdTg1MDZcdTg3ODJcdTg3NzRcdTg3NzZcdTg3NjBcdTg3NjZcdTg3NzhcdTg3NjhcdTg3NTlcdTg3NTdcdTg3NENcdTg3NTNcdTg4NUJcdTg4NURcdTg5MTBcdTg5MDdcdTg5MTJcdTg5MTNcdTg5MTVcdTg5MEFcdThBQkNcdThBRDJcdThBQzdcdThBQzRcdThBOTVcdThBQ0JcdThBRjhcdThBQjJcdThBQzlcdThBQzJcdThBQkZcdThBQjBcdThBRDZcdThBQ0RcdThBQjZcdThBQjlcdThBREJcdThDNENcdThDNEVcdThDNkNcdThDRTBcdThDREVcdThDRTZcdThDRTRcdThDRUNcdThDRURcdThDRTJcdThDRTNcdThDRENcdThDRUFcdThDRTFcdThENkRcdThEOUZcdThEQTNcdThFMkJcdThFMTBcdThFMURcdThFMjJcdThFMEZcdThFMjlcdThFMUZcdThFMjFcdThFMUVcdThFQkFcdThGMURcdThGMUJcdThGMUZcdThGMjlcdThGMjZcdThGMkFcdThGMUNcdThGMUVcIl0sXG5bXCJiZTQwXCIsXCJcdThGMjVcdTkwNjlcdTkwNkVcdTkwNjhcdTkwNkRcdTkwNzdcdTkxMzBcdTkxMkRcdTkxMjdcdTkxMzFcdTkxODdcdTkxODlcdTkxOEJcdTkxODNcdTkyQzVcdTkyQkJcdTkyQjdcdTkyRUFcdTkyQUNcdTkyRTRcdTkyQzFcdTkyQjNcdTkyQkNcdTkyRDJcdTkyQzdcdTkyRjBcdTkyQjJcdTk1QURcdTk1QjFcdTk3MDRcdTk3MDZcdTk3MDdcdTk3MDlcdTk3NjBcdTk3OERcdTk3OEJcdTk3OEZcdTk4MjFcdTk4MkJcdTk4MUNcdTk4QjNcdTk5MEFcdTk5MTNcdTk5MTJcdTk5MThcdTk5RERcdTk5RDBcdTk5REZcdTk5REJcdTk5RDFcdTk5RDVcdTk5RDJcdTk5RDlcdTlBQjdcdTlBRUVcdTlBRUZcdTlCMjdcdTlCNDVcdTlCNDRcdTlCNzdcdTlCNkZcdTlEMDZcdTlEMDlcIl0sXG5bXCJiZWExXCIsXCJcdTlEMDNcdTlFQTlcdTlFQkVcdTlFQ0VcdTU4QThcdTlGNTJcdTUxMTJcdTUxMThcdTUxMTRcdTUxMTBcdTUxMTVcdTUxODBcdTUxQUFcdTUxRERcdTUyOTFcdTUyOTNcdTUyRjNcdTU2NTlcdTU2NkJcdTU2NzlcdTU2NjlcdTU2NjRcdTU2NzhcdTU2NkFcdTU2NjhcdTU2NjVcdTU2NzFcdTU2NkZcdTU2NkNcdTU2NjJcdTU2NzZcdTU4QzFcdTU4QkVcdTU4QzdcdTU4QzVcdTU5NkVcdTVCMURcdTVCMzRcdTVCNzhcdTVCRjBcdTVDMEVcdTVGNEFcdTYxQjJcdTYxOTFcdTYxQTlcdTYxOEFcdTYxQ0RcdTYxQjZcdTYxQkVcdTYxQ0FcdTYxQzhcdTYyMzBcdTY0QzVcdTY0QzFcdTY0Q0JcdTY0QkJcdTY0QkNcdTY0REFcdTY0QzRcdTY0QzdcdTY0QzJcdTY0Q0RcdTY0QkZcdTY0RDJcdTY0RDRcdTY0QkVcdTY1NzRcdTY2QzZcdTY2QzlcdTY2QjlcdTY2QzRcdTY2QzdcdTY2QjhcdTZBM0RcdTZBMzhcdTZBM0FcdTZBNTlcdTZBNkJcdTZBNThcdTZBMzlcdTZBNDRcdTZBNjJcdTZBNjFcdTZBNEJcdTZBNDdcdTZBMzVcdTZBNUZcdTZBNDhcdTZCNTlcdTZCNzdcdTZDMDVcdTZGQzJcdTZGQjFcdTZGQTFcIl0sXG5bXCJiZjQwXCIsXCJcdTZGQzNcdTZGQTRcdTZGQzFcdTZGQTdcdTZGQjNcdTZGQzBcdTZGQjlcdTZGQjZcdTZGQTZcdTZGQTBcdTZGQjRcdTcxQkVcdTcxQzlcdTcxRDBcdTcxRDJcdTcxQzhcdTcxRDVcdTcxQjlcdTcxQ0VcdTcxRDlcdTcxRENcdTcxQzNcdTcxQzRcdTczNjhcdTc0OUNcdTc0QTNcdTc0OThcdTc0OUZcdTc0OUVcdTc0RTJcdTc1MENcdTc1MERcdTc2MzRcdTc2MzhcdTc2M0FcdTc2RTdcdTc2RTVcdTc3QTBcdTc3OUVcdTc3OUZcdTc3QTVcdTc4RThcdTc4REFcdTc4RUNcdTc4RTdcdTc5QTZcdTdBNERcdTdBNEVcdTdBNDZcdTdBNENcdTdBNEJcdTdBQkFcdTdCRDlcdTdDMTFcdTdCQzlcdTdCRTRcdTdCREJcdTdCRTFcdTdCRTlcdTdCRTZcdTdDRDVcdTdDRDZcdTdFMEFcIl0sXG5bXCJiZmExXCIsXCJcdTdFMTFcdTdFMDhcdTdFMUJcdTdFMjNcdTdFMUVcdTdFMURcdTdFMDlcdTdFMTBcdTdGNzlcdTdGQjJcdTdGRjBcdTdGRjFcdTdGRUVcdTgwMjhcdTgxQjNcdTgxQTlcdTgxQThcdTgxRkJcdTgyMDhcdTgyNThcdTgyNTlcdTg1NEFcdTg1NTlcdTg1NDhcdTg1NjhcdTg1NjlcdTg1NDNcdTg1NDlcdTg1NkRcdTg1NkFcdTg1NUVcdTg3ODNcdTg3OUZcdTg3OUVcdTg3QTJcdTg3OERcdTg4NjFcdTg5MkFcdTg5MzJcdTg5MjVcdTg5MkJcdTg5MjFcdTg5QUFcdTg5QTZcdThBRTZcdThBRkFcdThBRUJcdThBRjFcdThCMDBcdThBRENcdThBRTdcdThBRUVcdThBRkVcdThCMDFcdThCMDJcdThBRjdcdThBRURcdThBRjNcdThBRjZcdThBRkNcdThDNkJcdThDNkRcdThDOTNcdThDRjRcdThFNDRcdThFMzFcdThFMzRcdThFNDJcdThFMzlcdThFMzVcdThGM0JcdThGMkZcdThGMzhcdThGMzNcdThGQThcdThGQTZcdTkwNzVcdTkwNzRcdTkwNzhcdTkwNzJcdTkwN0NcdTkwN0FcdTkxMzRcdTkxOTJcdTkzMjBcdTkzMzZcdTkyRjhcdTkzMzNcdTkzMkZcdTkzMjJcdTkyRkNcdTkzMkJcdTkzMDRcdTkzMUFcIl0sXG5bXCJjMDQwXCIsXCJcdTkzMTBcdTkzMjZcdTkzMjFcdTkzMTVcdTkzMkVcdTkzMTlcdTk1QkJcdTk2QTdcdTk2QThcdTk2QUFcdTk2RDVcdTk3MEVcdTk3MTFcdTk3MTZcdTk3MERcdTk3MTNcdTk3MEZcdTk3NUJcdTk3NUNcdTk3NjZcdTk3OThcdTk4MzBcdTk4MzhcdTk4M0JcdTk4MzdcdTk4MkRcdTk4MzlcdTk4MjRcdTk5MTBcdTk5MjhcdTk5MUVcdTk5MUJcdTk5MjFcdTk5MUFcdTk5RURcdTk5RTJcdTk5RjFcdTlBQjhcdTlBQkNcdTlBRkJcdTlBRURcdTlCMjhcdTlCOTFcdTlEMTVcdTlEMjNcdTlEMjZcdTlEMjhcdTlEMTJcdTlEMUJcdTlFRDhcdTlFRDRcdTlGOERcdTlGOUNcdTUxMkFcdTUxMUZcdTUxMjFcdTUxMzJcdTUyRjVcdTU2OEVcdTU2ODBcdTU2OTBcdTU2ODVcdTU2ODdcIl0sXG5bXCJjMGExXCIsXCJcdTU2OEZcdTU4RDVcdTU4RDNcdTU4RDFcdTU4Q0VcdTVCMzBcdTVCMkFcdTVCMjRcdTVCN0FcdTVDMzdcdTVDNjhcdTVEQkNcdTVEQkFcdTVEQkRcdTVEQjhcdTVFNkJcdTVGNENcdTVGQkRcdTYxQzlcdTYxQzJcdTYxQzdcdTYxRTZcdTYxQ0JcdTYyMzJcdTYyMzRcdTY0Q0VcdTY0Q0FcdTY0RDhcdTY0RTBcdTY0RjBcdTY0RTZcdTY0RUNcdTY0RjFcdTY0RTJcdTY0RURcdTY1ODJcdTY1ODNcdTY2RDlcdTY2RDZcdTZBODBcdTZBOTRcdTZBODRcdTZBQTJcdTZBOUNcdTZBREJcdTZBQTNcdTZBN0VcdTZBOTdcdTZBOTBcdTZBQTBcdTZCNUNcdTZCQUVcdTZCREFcdTZDMDhcdTZGRDhcdTZGRjFcdTZGREZcdTZGRTBcdTZGREJcdTZGRTRcdTZGRUJcdTZGRUZcdTZGODBcdTZGRUNcdTZGRTFcdTZGRTlcdTZGRDVcdTZGRUVcdTZGRjBcdTcxRTdcdTcxREZcdTcxRUVcdTcxRTZcdTcxRTVcdTcxRURcdTcxRUNcdTcxRjRcdTcxRTBcdTcyMzVcdTcyNDZcdTczNzBcdTczNzJcdTc0QTlcdTc0QjBcdTc0QTZcdTc0QThcdTc2NDZcdTc2NDJcdTc2NENcdTc2RUFcdTc3QjNcdTc3QUFcdTc3QjBcdTc3QUNcIl0sXG5bXCJjMTQwXCIsXCJcdTc3QTdcdTc3QURcdTc3RUZcdTc4RjdcdTc4RkFcdTc4RjRcdTc4RUZcdTc5MDFcdTc5QTdcdTc5QUFcdTdBNTdcdTdBQkZcdTdDMDdcdTdDMERcdTdCRkVcdTdCRjdcdTdDMENcdTdCRTBcdTdDRTBcdTdDRENcdTdDREVcdTdDRTJcdTdDREZcdTdDRDlcdTdDRERcdTdFMkVcdTdFM0VcdTdFNDZcdTdFMzdcdTdFMzJcdTdFNDNcdTdFMkJcdTdFM0RcdTdFMzFcdTdFNDVcdTdFNDFcdTdFMzRcdTdFMzlcdTdFNDhcdTdFMzVcdTdFM0ZcdTdFMkZcdTdGNDRcdTdGRjNcdTdGRkNcdTgwNzFcdTgwNzJcdTgwNzBcdTgwNkZcdTgwNzNcdTgxQzZcdTgxQzNcdTgxQkFcdTgxQzJcdTgxQzBcdTgxQkZcdTgxQkRcdTgxQzlcdTgxQkVcdTgxRThcdTgyMDlcdTgyNzFcdTg1QUFcIl0sXG5bXCJjMWExXCIsXCJcdTg1ODRcdTg1N0VcdTg1OUNcdTg1OTFcdTg1OTRcdTg1QUZcdTg1OUJcdTg1ODdcdTg1QThcdTg1OEFcdTg2NjdcdTg3QzBcdTg3RDFcdTg3QjNcdTg3RDJcdTg3QzZcdTg3QUJcdTg3QkJcdTg3QkFcdTg3QzhcdTg3Q0JcdTg5M0JcdTg5MzZcdTg5NDRcdTg5MzhcdTg5M0RcdTg5QUNcdThCMEVcdThCMTdcdThCMTlcdThCMUJcdThCMEFcdThCMjBcdThCMURcdThCMDRcdThCMTBcdThDNDFcdThDM0ZcdThDNzNcdThDRkFcdThDRkRcdThDRkNcdThDRjhcdThDRkJcdThEQThcdThFNDlcdThFNEJcdThFNDhcdThFNEFcdThGNDRcdThGM0VcdThGNDJcdThGNDVcdThGM0ZcdTkwN0ZcdTkwN0RcdTkwODRcdTkwODFcdTkwODJcdTkwODBcdTkxMzlcdTkxQTNcdTkxOUVcdTkxOUNcdTkzNERcdTkzODJcdTkzMjhcdTkzNzVcdTkzNEFcdTkzNjVcdTkzNEJcdTkzMThcdTkzN0VcdTkzNkNcdTkzNUJcdTkzNzBcdTkzNUFcdTkzNTRcdTk1Q0FcdTk1Q0JcdTk1Q0NcdTk1QzhcdTk1QzZcdTk2QjFcdTk2QjhcdTk2RDZcdTk3MUNcdTk3MUVcdTk3QTBcdTk3RDNcdTk4NDZcdTk4QjZcdTk5MzVcdTlBMDFcIl0sXG5bXCJjMjQwXCIsXCJcdTk5RkZcdTlCQUVcdTlCQUJcdTlCQUFcdTlCQURcdTlEM0JcdTlEM0ZcdTlFOEJcdTlFQ0ZcdTlFREVcdTlFRENcdTlFRERcdTlFREJcdTlGM0VcdTlGNEJcdTUzRTJcdTU2OTVcdTU2QUVcdTU4RDlcdTU4RDhcdTVCMzhcdTVGNURcdTYxRTNcdTYyMzNcdTY0RjRcdTY0RjJcdTY0RkVcdTY1MDZcdTY0RkFcdTY0RkJcdTY0RjdcdTY1QjdcdTY2RENcdTY3MjZcdTZBQjNcdTZBQUNcdTZBQzNcdTZBQkJcdTZBQjhcdTZBQzJcdTZBQUVcdTZBQUZcdTZCNUZcdTZCNzhcdTZCQUZcdTcwMDlcdTcwMEJcdTZGRkVcdTcwMDZcdTZGRkFcdTcwMTFcdTcwMEZcdTcxRkJcdTcxRkNcdTcxRkVcdTcxRjhcdTczNzdcdTczNzVcdTc0QTdcdTc0QkZcdTc1MTVcdTc2NTZcdTc2NThcIl0sXG5bXCJjMmExXCIsXCJcdTc2NTJcdTc3QkRcdTc3QkZcdTc3QkJcdTc3QkNcdTc5MEVcdTc5QUVcdTdBNjFcdTdBNjJcdTdBNjBcdTdBQzRcdTdBQzVcdTdDMkJcdTdDMjdcdTdDMkFcdTdDMUVcdTdDMjNcdTdDMjFcdTdDRTdcdTdFNTRcdTdFNTVcdTdFNUVcdTdFNUFcdTdFNjFcdTdFNTJcdTdFNTlcdTdGNDhcdTdGRjlcdTdGRkJcdTgwNzdcdTgwNzZcdTgxQ0RcdTgxQ0ZcdTgyMEFcdTg1Q0ZcdTg1QTlcdTg1Q0RcdTg1RDBcdTg1QzlcdTg1QjBcdTg1QkFcdTg1QjlcdTg1QTZcdTg3RUZcdTg3RUNcdTg3RjJcdTg3RTBcdTg5ODZcdTg5QjJcdTg5RjRcdThCMjhcdThCMzlcdThCMkNcdThCMkJcdThDNTBcdThEMDVcdThFNTlcdThFNjNcdThFNjZcdThFNjRcdThFNUZcdThFNTVcdThFQzBcdThGNDlcdThGNERcdTkwODdcdTkwODNcdTkwODhcdTkxQUJcdTkxQUNcdTkxRDBcdTkzOTRcdTkzOEFcdTkzOTZcdTkzQTJcdTkzQjNcdTkzQUVcdTkzQUNcdTkzQjBcdTkzOThcdTkzOUFcdTkzOTdcdTk1RDRcdTk1RDZcdTk1RDBcdTk1RDVcdTk2RTJcdTk2RENcdTk2RDlcdTk2REJcdTk2REVcdTk3MjRcdTk3QTNcdTk3QTZcIl0sXG5bXCJjMzQwXCIsXCJcdTk3QURcdTk3RjlcdTk4NERcdTk4NEZcdTk4NENcdTk4NEVcdTk4NTNcdTk4QkFcdTk5M0VcdTk5M0ZcdTk5M0RcdTk5MkVcdTk5QTVcdTlBMEVcdTlBQzFcdTlCMDNcdTlCMDZcdTlCNEZcdTlCNEVcdTlCNERcdTlCQ0FcdTlCQzlcdTlCRkRcdTlCQzhcdTlCQzBcdTlENTFcdTlENURcdTlENjBcdTlFRTBcdTlGMTVcdTlGMkNcdTUxMzNcdTU2QTVcdTU4REVcdTU4REZcdTU4RTJcdTVCRjVcdTlGOTBcdTVFRUNcdTYxRjJcdTYxRjdcdTYxRjZcdTYxRjVcdTY1MDBcdTY1MEZcdTY2RTBcdTY2RERcdTZBRTVcdTZBRERcdTZBREFcdTZBRDNcdTcwMUJcdTcwMUZcdTcwMjhcdTcwMUFcdTcwMURcdTcwMTVcdTcwMThcdTcyMDZcdTcyMERcdTcyNThcdTcyQTJcdTczNzhcIl0sXG5bXCJjM2ExXCIsXCJcdTczN0FcdTc0QkRcdTc0Q0FcdTc0RTNcdTc1ODdcdTc1ODZcdTc2NUZcdTc2NjFcdTc3QzdcdTc5MTlcdTc5QjFcdTdBNkJcdTdBNjlcdTdDM0VcdTdDM0ZcdTdDMzhcdTdDM0RcdTdDMzdcdTdDNDBcdTdFNkJcdTdFNkRcdTdFNzlcdTdFNjlcdTdFNkFcdTdGODVcdTdFNzNcdTdGQjZcdTdGQjlcdTdGQjhcdTgxRDhcdTg1RTlcdTg1RERcdTg1RUFcdTg1RDVcdTg1RTRcdTg1RTVcdTg1RjdcdTg3RkJcdTg4MDVcdTg4MERcdTg3RjlcdTg3RkVcdTg5NjBcdTg5NUZcdTg5NTZcdTg5NUVcdThCNDFcdThCNUNcdThCNThcdThCNDlcdThCNUFcdThCNEVcdThCNEZcdThCNDZcdThCNTlcdThEMDhcdThEMEFcdThFN0NcdThFNzJcdThFODdcdThFNzZcdThFNkNcdThFN0FcdThFNzRcdThGNTRcdThGNEVcdThGQURcdTkwOEFcdTkwOEJcdTkxQjFcdTkxQUVcdTkzRTFcdTkzRDFcdTkzREZcdTkzQzNcdTkzQzhcdTkzRENcdTkzRERcdTkzRDZcdTkzRTJcdTkzQ0RcdTkzRDhcdTkzRTRcdTkzRDdcdTkzRThcdTk1RENcdTk2QjRcdTk2RTNcdTk3MkFcdTk3MjdcdTk3NjFcdTk3RENcdTk3RkJcdTk4NUVcIl0sXG5bXCJjNDQwXCIsXCJcdTk4NThcdTk4NUJcdTk4QkNcdTk5NDVcdTk5NDlcdTlBMTZcdTlBMTlcdTlCMERcdTlCRThcdTlCRTdcdTlCRDZcdTlCREJcdTlEODlcdTlENjFcdTlENzJcdTlENkFcdTlENkNcdTlFOTJcdTlFOTdcdTlFOTNcdTlFQjRcdTUyRjhcdTU2QThcdTU2QjdcdTU2QjZcdTU2QjRcdTU2QkNcdTU4RTRcdTVCNDBcdTVCNDNcdTVCN0RcdTVCRjZcdTVEQzlcdTYxRjhcdTYxRkFcdTY1MThcdTY1MTRcdTY1MTlcdTY2RTZcdTY3MjdcdTZBRUNcdTcwM0VcdTcwMzBcdTcwMzJcdTcyMTBcdTczN0JcdTc0Q0ZcdTc2NjJcdTc2NjVcdTc5MjZcdTc5MkFcdTc5MkNcdTc5MkJcdTdBQzdcdTdBRjZcdTdDNENcdTdDNDNcdTdDNERcdTdDRUZcdTdDRjBcdThGQUVcdTdFN0RcdTdFN0NcIl0sXG5bXCJjNGExXCIsXCJcdTdFODJcdTdGNENcdTgwMDBcdTgxREFcdTgyNjZcdTg1RkJcdTg1RjlcdTg2MTFcdTg1RkFcdTg2MDZcdTg2MEJcdTg2MDdcdTg2MEFcdTg4MTRcdTg4MTVcdTg5NjRcdTg5QkFcdTg5RjhcdThCNzBcdThCNkNcdThCNjZcdThCNkZcdThCNUZcdThCNkJcdThEMEZcdThEMERcdThFODlcdThFODFcdThFODVcdThFODJcdTkxQjRcdTkxQ0JcdTk0MThcdTk0MDNcdTkzRkRcdTk1RTFcdTk3MzBcdTk4QzRcdTk5NTJcdTk5NTFcdTk5QThcdTlBMkJcdTlBMzBcdTlBMzdcdTlBMzVcdTlDMTNcdTlDMERcdTlFNzlcdTlFQjVcdTlFRThcdTlGMkZcdTlGNUZcdTlGNjNcdTlGNjFcdTUxMzdcdTUxMzhcdTU2QzFcdTU2QzBcdTU2QzJcdTU5MTRcdTVDNkNcdTVEQ0RcdTYxRkNcdTYxRkVcdTY1MURcdTY1MUNcdTY1OTVcdTY2RTlcdTZBRkJcdTZCMDRcdTZBRkFcdTZCQjJcdTcwNENcdTcyMUJcdTcyQTdcdTc0RDZcdTc0RDRcdTc2NjlcdTc3RDNcdTdDNTBcdTdFOEZcdTdFOENcdTdGQkNcdTg2MTdcdTg2MkRcdTg2MUFcdTg4MjNcdTg4MjJcdTg4MjFcdTg4MUZcdTg5NkFcdTg5NkNcdTg5QkRcdThCNzRcIl0sXG5bXCJjNTQwXCIsXCJcdThCNzdcdThCN0RcdThEMTNcdThFOEFcdThFOERcdThFOEJcdThGNUZcdThGQUZcdTkxQkFcdTk0MkVcdTk0MzNcdTk0MzVcdTk0M0FcdTk0MzhcdTk0MzJcdTk0MkJcdTk1RTJcdTk3MzhcdTk3MzlcdTk3MzJcdTk3RkZcdTk4NjdcdTk4NjVcdTk5NTdcdTlBNDVcdTlBNDNcdTlBNDBcdTlBM0VcdTlBQ0ZcdTlCNTRcdTlCNTFcdTlDMkRcdTlDMjVcdTlEQUZcdTlEQjRcdTlEQzJcdTlEQjhcdTlFOURcdTlFRUZcdTlGMTlcdTlGNUNcdTlGNjZcdTlGNjdcdTUxM0NcdTUxM0JcdTU2QzhcdTU2Q0FcdTU2QzlcdTVCN0ZcdTVERDRcdTVERDJcdTVGNEVcdTYxRkZcdTY1MjRcdTZCMEFcdTZCNjFcdTcwNTFcdTcwNThcdTczODBcdTc0RTRcdTc1OEFcdTc2NkVcdTc2NkNcIl0sXG5bXCJjNWExXCIsXCJcdTc5QjNcdTdDNjBcdTdDNUZcdTgwN0VcdTgwN0RcdTgxREZcdTg5NzJcdTg5NkZcdTg5RkNcdThCODBcdThEMTZcdThEMTdcdThFOTFcdThFOTNcdThGNjFcdTkxNDhcdTk0NDRcdTk0NTFcdTk0NTJcdTk3M0RcdTk3M0VcdTk3QzNcdTk3QzFcdTk4NkJcdTk5NTVcdTlBNTVcdTlBNERcdTlBRDJcdTlCMUFcdTlDNDlcdTlDMzFcdTlDM0VcdTlDM0JcdTlERDNcdTlERDdcdTlGMzRcdTlGNkNcdTlGNkFcdTlGOTRcdTU2Q0NcdTVERDZcdTYyMDBcdTY1MjNcdTY1MkJcdTY1MkFcdTY2RUNcdTZCMTBcdTc0REFcdTdBQ0FcdTdDNjRcdTdDNjNcdTdDNjVcdTdFOTNcdTdFOTZcdTdFOTRcdTgxRTJcdTg2MzhcdTg2M0ZcdTg4MzFcdThCOEFcdTkwOTBcdTkwOEZcdTk0NjNcdTk0NjBcdTk0NjRcdTk3NjhcdTk4NkZcdTk5NUNcdTlBNUFcdTlBNUJcdTlBNTdcdTlBRDNcdTlBRDRcdTlBRDFcdTlDNTRcdTlDNTdcdTlDNTZcdTlERTVcdTlFOUZcdTlFRjRcdTU2RDFcdTU4RTlcdTY1MkNcdTcwNUVcdTc2NzFcdTc2NzJcdTc3RDdcdTdGNTBcdTdGODhcdTg4MzZcdTg4MzlcdTg4NjJcdThCOTNcdThCOTJcIl0sXG5bXCJjNjQwXCIsXCJcdThCOTZcdTgyNzdcdThEMUJcdTkxQzBcdTk0NkFcdTk3NDJcdTk3NDhcdTk3NDRcdTk3QzZcdTk4NzBcdTlBNUZcdTlCMjJcdTlCNThcdTlDNUZcdTlERjlcdTlERkFcdTlFN0NcdTlFN0RcdTlGMDdcdTlGNzdcdTlGNzJcdTVFRjNcdTZCMTZcdTcwNjNcdTdDNkNcdTdDNkVcdTg4M0JcdTg5QzBcdThFQTFcdTkxQzFcdTk0NzJcdTk0NzBcdTk4NzFcdTk5NUVcdTlBRDZcdTlCMjNcdTlFQ0NcdTcwNjRcdTc3REFcdThCOUFcdTk0NzdcdTk3QzlcdTlBNjJcdTlBNjVcdTdFOUNcdThCOUNcdThFQUFcdTkxQzVcdTk0N0RcdTk0N0VcdTk0N0NcdTlDNzdcdTlDNzhcdTlFRjdcdThDNTRcdTk0N0ZcdTlFMUFcdTcyMjhcdTlBNkFcdTlCMzFcdTlFMUJcdTlFMUVcdTdDNzJcIl0sXG5bXCJjOTQwXCIsXCJcdTRFNDJcdTRFNUNcdTUxRjVcdTUzMUFcdTUzODJcdTRFMDdcdTRFMENcdTRFNDdcdTRFOERcdTU2RDdcdUZBMENcdTVDNkVcdTVGNzNcdTRFMEZcdTUxODdcdTRFMEVcdTRFMkVcdTRFOTNcdTRFQzJcdTRFQzlcdTRFQzhcdTUxOThcdTUyRkNcdTUzNkNcdTUzQjlcdTU3MjBcdTU5MDNcdTU5MkNcdTVDMTBcdTVERkZcdTY1RTFcdTZCQjNcdTZCQ0NcdTZDMTRcdTcyM0ZcdTRFMzFcdTRFM0NcdTRFRThcdTRFRENcdTRFRTlcdTRFRTFcdTRFRERcdTRFREFcdTUyMENcdTUzMUNcdTUzNENcdTU3MjJcdTU3MjNcdTU5MTdcdTU5MkZcdTVCODFcdTVCODRcdTVDMTJcdTVDM0JcdTVDNzRcdTVDNzNcdTVFMDRcdTVFODBcdTVFODJcdTVGQzlcdTYyMDlcdTYyNTBcdTZDMTVcIl0sXG5bXCJjOWExXCIsXCJcdTZDMzZcdTZDNDNcdTZDM0ZcdTZDM0JcdTcyQUVcdTcyQjBcdTczOEFcdTc5QjhcdTgwOEFcdTk2MUVcdTRGMEVcdTRGMThcdTRGMkNcdTRFRjVcdTRGMTRcdTRFRjFcdTRGMDBcdTRFRjdcdTRGMDhcdTRGMURcdTRGMDJcdTRGMDVcdTRGMjJcdTRGMTNcdTRGMDRcdTRFRjRcdTRGMTJcdTUxQjFcdTUyMTNcdTUyMDlcdTUyMTBcdTUyQTZcdTUzMjJcdTUzMUZcdTUzNERcdTUzOEFcdTU0MDdcdTU2RTFcdTU2REZcdTU3MkVcdTU3MkFcdTU3MzRcdTU5M0NcdTU5ODBcdTU5N0NcdTU5ODVcdTU5N0JcdTU5N0VcdTU5NzdcdTU5N0ZcdTVCNTZcdTVDMTVcdTVDMjVcdTVDN0NcdTVDN0FcdTVDN0JcdTVDN0VcdTVEREZcdTVFNzVcdTVFODRcdTVGMDJcdTVGMUFcdTVGNzRcdTVGRDVcdTVGRDRcdTVGQ0ZcdTYyNUNcdTYyNUVcdTYyNjRcdTYyNjFcdTYyNjZcdTYyNjJcdTYyNTlcdTYyNjBcdTYyNUFcdTYyNjVcdTY1RUZcdTY1RUVcdTY3M0VcdTY3MzlcdTY3MzhcdTY3M0JcdTY3M0FcdTY3M0ZcdTY3M0NcdTY3MzNcdTZDMThcdTZDNDZcdTZDNTJcdTZDNUNcdTZDNEZcdTZDNEFcdTZDNTRcdTZDNEJcIl0sXG5bXCJjYTQwXCIsXCJcdTZDNENcdTcwNzFcdTcyNUVcdTcyQjRcdTcyQjVcdTczOEVcdTc1MkFcdTc2N0ZcdTdBNzVcdTdGNTFcdTgyNzhcdTgyN0NcdTgyODBcdTgyN0RcdTgyN0ZcdTg2NERcdTg5N0VcdTkwOTlcdTkwOTdcdTkwOThcdTkwOUJcdTkwOTRcdTk2MjJcdTk2MjRcdTk2MjBcdTk2MjNcdTRGNTZcdTRGM0JcdTRGNjJcdTRGNDlcdTRGNTNcdTRGNjRcdTRGM0VcdTRGNjdcdTRGNTJcdTRGNUZcdTRGNDFcdTRGNThcdTRGMkRcdTRGMzNcdTRGM0ZcdTRGNjFcdTUxOEZcdTUxQjlcdTUyMUNcdTUyMUVcdTUyMjFcdTUyQURcdTUyQUVcdTUzMDlcdTUzNjNcdTUzNzJcdTUzOEVcdTUzOEZcdTU0MzBcdTU0MzdcdTU0MkFcdTU0NTRcdTU0NDVcdTU0MTlcdTU0MUNcdTU0MjVcdTU0MThcIl0sXG5bXCJjYWExXCIsXCJcdTU0M0RcdTU0NEZcdTU0NDFcdTU0MjhcdTU0MjRcdTU0NDdcdTU2RUVcdTU2RTdcdTU2RTVcdTU3NDFcdTU3NDVcdTU3NENcdTU3NDlcdTU3NEJcdTU3NTJcdTU5MDZcdTU5NDBcdTU5QTZcdTU5OThcdTU5QTBcdTU5OTdcdTU5OEVcdTU5QTJcdTU5OTBcdTU5OEZcdTU5QTdcdTU5QTFcdTVCOEVcdTVCOTJcdTVDMjhcdTVDMkFcdTVDOERcdTVDOEZcdTVDODhcdTVDOEJcdTVDODlcdTVDOTJcdTVDOEFcdTVDODZcdTVDOTNcdTVDOTVcdTVERTBcdTVFMEFcdTVFMEVcdTVFOEJcdTVFODlcdTVFOENcdTVFODhcdTVFOERcdTVGMDVcdTVGMURcdTVGNzhcdTVGNzZcdTVGRDJcdTVGRDFcdTVGRDBcdTVGRURcdTVGRThcdTVGRUVcdTVGRjNcdTVGRTFcdTVGRTRcdTVGRTNcdTVGRkFcdTVGRUZcdTVGRjdcdTVGRkJcdTYwMDBcdTVGRjRcdTYyM0FcdTYyODNcdTYyOENcdTYyOEVcdTYyOEZcdTYyOTRcdTYyODdcdTYyNzFcdTYyN0JcdTYyN0FcdTYyNzBcdTYyODFcdTYyODhcdTYyNzdcdTYyN0RcdTYyNzJcdTYyNzRcdTY1MzdcdTY1RjBcdTY1RjRcdTY1RjNcdTY1RjJcdTY1RjVcdTY3NDVcdTY3NDdcIl0sXG5bXCJjYjQwXCIsXCJcdTY3NTlcdTY3NTVcdTY3NENcdTY3NDhcdTY3NURcdTY3NERcdTY3NUFcdTY3NEJcdTZCRDBcdTZDMTlcdTZDMUFcdTZDNzhcdTZDNjdcdTZDNkJcdTZDODRcdTZDOEJcdTZDOEZcdTZDNzFcdTZDNkZcdTZDNjlcdTZDOUFcdTZDNkRcdTZDODdcdTZDOTVcdTZDOUNcdTZDNjZcdTZDNzNcdTZDNjVcdTZDN0JcdTZDOEVcdTcwNzRcdTcwN0FcdTcyNjNcdTcyQkZcdTcyQkRcdTcyQzNcdTcyQzZcdTcyQzFcdTcyQkFcdTcyQzVcdTczOTVcdTczOTdcdTczOTNcdTczOTRcdTczOTJcdTc1M0FcdTc1MzlcdTc1OTRcdTc1OTVcdTc2ODFcdTc5M0RcdTgwMzRcdTgwOTVcdTgwOTlcdTgwOTBcdTgwOTJcdTgwOUNcdTgyOTBcdTgyOEZcdTgyODVcdTgyOEVcdTgyOTFcdTgyOTNcIl0sXG5bXCJjYmExXCIsXCJcdTgyOEFcdTgyODNcdTgyODRcdThDNzhcdThGQzlcdThGQkZcdTkwOUZcdTkwQTFcdTkwQTVcdTkwOUVcdTkwQTdcdTkwQTBcdTk2MzBcdTk2MjhcdTk2MkZcdTk2MkRcdTRFMzNcdTRGOThcdTRGN0NcdTRGODVcdTRGN0RcdTRGODBcdTRGODdcdTRGNzZcdTRGNzRcdTRGODlcdTRGODRcdTRGNzdcdTRGNENcdTRGOTdcdTRGNkFcdTRGOUFcdTRGNzlcdTRGODFcdTRGNzhcdTRGOTBcdTRGOUNcdTRGOTRcdTRGOUVcdTRGOTJcdTRGODJcdTRGOTVcdTRGNkJcdTRGNkVcdTUxOUVcdTUxQkNcdTUxQkVcdTUyMzVcdTUyMzJcdTUyMzNcdTUyNDZcdTUyMzFcdTUyQkNcdTUzMEFcdTUzMEJcdTUzM0NcdTUzOTJcdTUzOTRcdTU0ODdcdTU0N0ZcdTU0ODFcdTU0OTFcdTU0ODJcdTU0ODhcdTU0NkJcdTU0N0FcdTU0N0VcdTU0NjVcdTU0NkNcdTU0NzRcdTU0NjZcdTU0OERcdTU0NkZcdTU0NjFcdTU0NjBcdTU0OThcdTU0NjNcdTU0NjdcdTU0NjRcdTU2RjdcdTU2RjlcdTU3NkZcdTU3NzJcdTU3NkRcdTU3NkJcdTU3NzFcdTU3NzBcdTU3NzZcdTU3ODBcdTU3NzVcdTU3N0JcdTU3NzNcdTU3NzRcdTU3NjJcIl0sXG5bXCJjYzQwXCIsXCJcdTU3NjhcdTU3N0RcdTU5MENcdTU5NDVcdTU5QjVcdTU5QkFcdTU5Q0ZcdTU5Q0VcdTU5QjJcdTU5Q0NcdTU5QzFcdTU5QjZcdTU5QkNcdTU5QzNcdTU5RDZcdTU5QjFcdTU5QkRcdTU5QzBcdTU5QzhcdTU5QjRcdTU5QzdcdTVCNjJcdTVCNjVcdTVCOTNcdTVCOTVcdTVDNDRcdTVDNDdcdTVDQUVcdTVDQTRcdTVDQTBcdTVDQjVcdTVDQUZcdTVDQThcdTVDQUNcdTVDOUZcdTVDQTNcdTVDQURcdTVDQTJcdTVDQUFcdTVDQTdcdTVDOURcdTVDQTVcdTVDQjZcdTVDQjBcdTVDQTZcdTVFMTdcdTVFMTRcdTVFMTlcdTVGMjhcdTVGMjJcdTVGMjNcdTVGMjRcdTVGNTRcdTVGODJcdTVGN0VcdTVGN0RcdTVGREVcdTVGRTVcdTYwMkRcdTYwMjZcdTYwMTlcdTYwMzJcdTYwMEJcIl0sXG5bXCJjY2ExXCIsXCJcdTYwMzRcdTYwMEFcdTYwMTdcdTYwMzNcdTYwMUFcdTYwMUVcdTYwMkNcdTYwMjJcdTYwMERcdTYwMTBcdTYwMkVcdTYwMTNcdTYwMTFcdTYwMENcdTYwMDlcdTYwMUNcdTYyMTRcdTYyM0RcdTYyQURcdTYyQjRcdTYyRDFcdTYyQkVcdTYyQUFcdTYyQjZcdTYyQ0FcdTYyQUVcdTYyQjNcdTYyQUZcdTYyQkJcdTYyQTlcdTYyQjBcdTYyQjhcdTY1M0RcdTY1QThcdTY1QkJcdTY2MDlcdTY1RkNcdTY2MDRcdTY2MTJcdTY2MDhcdTY1RkJcdTY2MDNcdTY2MEJcdTY2MERcdTY2MDVcdTY1RkRcdTY2MTFcdTY2MTBcdTY2RjZcdTY3MEFcdTY3ODVcdTY3NkNcdTY3OEVcdTY3OTJcdTY3NzZcdTY3N0JcdTY3OThcdTY3ODZcdTY3ODRcdTY3NzRcdTY3OERcdTY3OENcdTY3N0FcdTY3OUZcdTY3OTFcdTY3OTlcdTY3ODNcdTY3N0RcdTY3ODFcdTY3NzhcdTY3NzlcdTY3OTRcdTZCMjVcdTZCODBcdTZCN0VcdTZCREVcdTZDMURcdTZDOTNcdTZDRUNcdTZDRUJcdTZDRUVcdTZDRDlcdTZDQjZcdTZDRDRcdTZDQURcdTZDRTdcdTZDQjdcdTZDRDBcdTZDQzJcdTZDQkFcdTZDQzNcdTZDQzZcdTZDRURcdTZDRjJcIl0sXG5bXCJjZDQwXCIsXCJcdTZDRDJcdTZDRERcdTZDQjRcdTZDOEFcdTZDOURcdTZDODBcdTZDREVcdTZDQzBcdTZEMzBcdTZDQ0RcdTZDQzdcdTZDQjBcdTZDRjlcdTZDQ0ZcdTZDRTlcdTZDRDFcdTcwOTRcdTcwOThcdTcwODVcdTcwOTNcdTcwODZcdTcwODRcdTcwOTFcdTcwOTZcdTcwODJcdTcwOUFcdTcwODNcdTcyNkFcdTcyRDZcdTcyQ0JcdTcyRDhcdTcyQzlcdTcyRENcdTcyRDJcdTcyRDRcdTcyREFcdTcyQ0NcdTcyRDFcdTczQTRcdTczQTFcdTczQURcdTczQTZcdTczQTJcdTczQTBcdTczQUNcdTczOURcdTc0RERcdTc0RThcdTc1M0ZcdTc1NDBcdTc1M0VcdTc1OENcdTc1OThcdTc2QUZcdTc2RjNcdTc2RjFcdTc2RjBcdTc2RjVcdTc3RjhcdTc3RkNcdTc3RjlcdTc3RkJcdTc3RkFcIl0sXG5bXCJjZGExXCIsXCJcdTc3RjdcdTc5NDJcdTc5M0ZcdTc5QzVcdTdBNzhcdTdBN0JcdTdBRkJcdTdDNzVcdTdDRkRcdTgwMzVcdTgwOEZcdTgwQUVcdTgwQTNcdTgwQjhcdTgwQjVcdTgwQURcdTgyMjBcdTgyQTBcdTgyQzBcdTgyQUJcdTgyOUFcdTgyOThcdTgyOUJcdTgyQjVcdTgyQTdcdTgyQUVcdTgyQkNcdTgyOUVcdTgyQkFcdTgyQjRcdTgyQThcdTgyQTFcdTgyQTlcdTgyQzJcdTgyQTRcdTgyQzNcdTgyQjZcdTgyQTJcdTg2NzBcdTg2NkZcdTg2NkRcdTg2NkVcdThDNTZcdThGRDJcdThGQ0JcdThGRDNcdThGQ0RcdThGRDZcdThGRDVcdThGRDdcdTkwQjJcdTkwQjRcdTkwQUZcdTkwQjNcdTkwQjBcdTk2MzlcdTk2M0RcdTk2M0NcdTk2M0FcdTk2NDNcdTRGQ0RcdTRGQzVcdTRGRDNcdTRGQjJcdTRGQzlcdTRGQ0JcdTRGQzFcdTRGRDRcdTRGRENcdTRGRDlcdTRGQkJcdTRGQjNcdTRGREJcdTRGQzdcdTRGRDZcdTRGQkFcdTRGQzBcdTRGQjlcdTRGRUNcdTUyNDRcdTUyNDlcdTUyQzBcdTUyQzJcdTUzM0RcdTUzN0NcdTUzOTdcdTUzOTZcdTUzOTlcdTUzOThcdTU0QkFcdTU0QTFcdTU0QURcdTU0QTVcdTU0Q0ZcIl0sXG5bXCJjZTQwXCIsXCJcdTU0QzNcdTgzMERcdTU0QjdcdTU0QUVcdTU0RDZcdTU0QjZcdTU0QzVcdTU0QzZcdTU0QTBcdTU0NzBcdTU0QkNcdTU0QTJcdTU0QkVcdTU0NzJcdTU0REVcdTU0QjBcdTU3QjVcdTU3OUVcdTU3OUZcdTU3QTRcdTU3OENcdTU3OTdcdTU3OURcdTU3OUJcdTU3OTRcdTU3OThcdTU3OEZcdTU3OTlcdTU3QTVcdTU3OUFcdTU3OTVcdTU4RjRcdTU5MERcdTU5NTNcdTU5RTFcdTU5REVcdTU5RUVcdTVBMDBcdTU5RjFcdTU5RERcdTU5RkFcdTU5RkRcdTU5RkNcdTU5RjZcdTU5RTRcdTU5RjJcdTU5RjdcdTU5REJcdTU5RTlcdTU5RjNcdTU5RjVcdTU5RTBcdTU5RkVcdTU5RjRcdTU5RURcdTVCQThcdTVDNENcdTVDRDBcdTVDRDhcdTVDQ0NcdTVDRDdcdTVDQ0JcdTVDREJcIl0sXG5bXCJjZWExXCIsXCJcdTVDREVcdTVDREFcdTVDQzlcdTVDQzdcdTVDQ0FcdTVDRDZcdTVDRDNcdTVDRDRcdTVDQ0ZcdTVDQzhcdTVDQzZcdTVDQ0VcdTVDREZcdTVDRjhcdTVERjlcdTVFMjFcdTVFMjJcdTVFMjNcdTVFMjBcdTVFMjRcdTVFQjBcdTVFQTRcdTVFQTJcdTVFOUJcdTVFQTNcdTVFQTVcdTVGMDdcdTVGMkVcdTVGNTZcdTVGODZcdTYwMzdcdTYwMzlcdTYwNTRcdTYwNzJcdTYwNUVcdTYwNDVcdTYwNTNcdTYwNDdcdTYwNDlcdTYwNUJcdTYwNENcdTYwNDBcdTYwNDJcdTYwNUZcdTYwMjRcdTYwNDRcdTYwNThcdTYwNjZcdTYwNkVcdTYyNDJcdTYyNDNcdTYyQ0ZcdTYzMERcdTYzMEJcdTYyRjVcdTYzMEVcdTYzMDNcdTYyRUJcdTYyRjlcdTYzMEZcdTYzMENcdTYyRjhcdTYyRjZcdTYzMDBcdTYzMTNcdTYzMTRcdTYyRkFcdTYzMTVcdTYyRkJcdTYyRjBcdTY1NDFcdTY1NDNcdTY1QUFcdTY1QkZcdTY2MzZcdTY2MjFcdTY2MzJcdTY2MzVcdTY2MUNcdTY2MjZcdTY2MjJcdTY2MzNcdTY2MkJcdTY2M0FcdTY2MURcdTY2MzRcdTY2MzlcdTY2MkVcdTY3MEZcdTY3MTBcdTY3QzFcdTY3RjJcdTY3QzhcdTY3QkFcIl0sXG5bXCJjZjQwXCIsXCJcdTY3RENcdTY3QkJcdTY3RjhcdTY3RDhcdTY3QzBcdTY3QjdcdTY3QzVcdTY3RUJcdTY3RTRcdTY3REZcdTY3QjVcdTY3Q0RcdTY3QjNcdTY3RjdcdTY3RjZcdTY3RUVcdTY3RTNcdTY3QzJcdTY3QjlcdTY3Q0VcdTY3RTdcdTY3RjBcdTY3QjJcdTY3RkNcdTY3QzZcdTY3RURcdTY3Q0NcdTY3QUVcdTY3RTZcdTY3REJcdTY3RkFcdTY3QzlcdTY3Q0FcdTY3QzNcdTY3RUFcdTY3Q0JcdTZCMjhcdTZCODJcdTZCODRcdTZCQjZcdTZCRDZcdTZCRDhcdTZCRTBcdTZDMjBcdTZDMjFcdTZEMjhcdTZEMzRcdTZEMkRcdTZEMUZcdTZEM0NcdTZEM0ZcdTZEMTJcdTZEMEFcdTZDREFcdTZEMzNcdTZEMDRcdTZEMTlcdTZEM0FcdTZEMUFcdTZEMTFcdTZEMDBcdTZEMURcdTZENDJcIl0sXG5bXCJjZmExXCIsXCJcdTZEMDFcdTZEMThcdTZEMzdcdTZEMDNcdTZEMEZcdTZENDBcdTZEMDdcdTZEMjBcdTZEMkNcdTZEMDhcdTZEMjJcdTZEMDlcdTZEMTBcdTcwQjdcdTcwOUZcdTcwQkVcdTcwQjFcdTcwQjBcdTcwQTFcdTcwQjRcdTcwQjVcdTcwQTlcdTcyNDFcdTcyNDlcdTcyNEFcdTcyNkNcdTcyNzBcdTcyNzNcdTcyNkVcdTcyQ0FcdTcyRTRcdTcyRThcdTcyRUJcdTcyREZcdTcyRUFcdTcyRTZcdTcyRTNcdTczODVcdTczQ0NcdTczQzJcdTczQzhcdTczQzVcdTczQjlcdTczQjZcdTczQjVcdTczQjRcdTczRUJcdTczQkZcdTczQzdcdTczQkVcdTczQzNcdTczQzZcdTczQjhcdTczQ0JcdTc0RUNcdTc0RUVcdTc1MkVcdTc1NDdcdTc1NDhcdTc1QTdcdTc1QUFcdTc2NzlcdTc2QzRcdTc3MDhcdTc3MDNcdTc3MDRcdTc3MDVcdTc3MEFcdTc2RjdcdTc2RkJcdTc2RkFcdTc3RTdcdTc3RThcdTc4MDZcdTc4MTFcdTc4MTJcdTc4MDVcdTc4MTBcdTc4MEZcdTc4MEVcdTc4MDlcdTc4MDNcdTc4MTNcdTc5NEFcdTc5NENcdTc5NEJcdTc5NDVcdTc5NDRcdTc5RDVcdTc5Q0RcdTc5Q0ZcdTc5RDZcdTc5Q0VcdTdBODBcIl0sXG5bXCJkMDQwXCIsXCJcdTdBN0VcdTdBRDFcdTdCMDBcdTdCMDFcdTdDN0FcdTdDNzhcdTdDNzlcdTdDN0ZcdTdDODBcdTdDODFcdTdEMDNcdTdEMDhcdTdEMDFcdTdGNThcdTdGOTFcdTdGOERcdTdGQkVcdTgwMDdcdTgwMEVcdTgwMEZcdTgwMTRcdTgwMzdcdTgwRDhcdTgwQzdcdTgwRTBcdTgwRDFcdTgwQzhcdTgwQzJcdTgwRDBcdTgwQzVcdTgwRTNcdTgwRDlcdTgwRENcdTgwQ0FcdTgwRDVcdTgwQzlcdTgwQ0ZcdTgwRDdcdTgwRTZcdTgwQ0RcdTgxRkZcdTgyMjFcdTgyOTRcdTgyRDlcdTgyRkVcdTgyRjlcdTgzMDdcdTgyRThcdTgzMDBcdTgyRDVcdTgzM0FcdTgyRUJcdTgyRDZcdTgyRjRcdTgyRUNcdTgyRTFcdTgyRjJcdTgyRjVcdTgzMENcdTgyRkJcdTgyRjZcdTgyRjBcdTgyRUFcIl0sXG5bXCJkMGExXCIsXCJcdTgyRTRcdTgyRTBcdTgyRkFcdTgyRjNcdTgyRURcdTg2NzdcdTg2NzRcdTg2N0NcdTg2NzNcdTg4NDFcdTg4NEVcdTg4NjdcdTg4NkFcdTg4NjlcdTg5RDNcdThBMDRcdThBMDdcdThENzJcdThGRTNcdThGRTFcdThGRUVcdThGRTBcdTkwRjFcdTkwQkRcdTkwQkZcdTkwRDVcdTkwQzVcdTkwQkVcdTkwQzdcdTkwQ0JcdTkwQzhcdTkxRDRcdTkxRDNcdTk2NTRcdTk2NEZcdTk2NTFcdTk2NTNcdTk2NEFcdTk2NEVcdTUwMUVcdTUwMDVcdTUwMDdcdTUwMTNcdTUwMjJcdTUwMzBcdTUwMUJcdTRGRjVcdTRGRjRcdTUwMzNcdTUwMzdcdTUwMkNcdTRGRjZcdTRGRjdcdTUwMTdcdTUwMUNcdTUwMjBcdTUwMjdcdTUwMzVcdTUwMkZcdTUwMzFcdTUwMEVcdTUxNUFcdTUxOTRcdTUxOTNcdTUxQ0FcdTUxQzRcdTUxQzVcdTUxQzhcdTUxQ0VcdTUyNjFcdTUyNUFcdTUyNTJcdTUyNUVcdTUyNUZcdTUyNTVcdTUyNjJcdTUyQ0RcdTUzMEVcdTUzOUVcdTU1MjZcdTU0RTJcdTU1MTdcdTU1MTJcdTU0RTdcdTU0RjNcdTU0RTRcdTU1MUFcdTU0RkZcdTU1MDRcdTU1MDhcdTU0RUJcdTU1MTFcdTU1MDVcdTU0RjFcIl0sXG5bXCJkMTQwXCIsXCJcdTU1MEFcdTU0RkJcdTU0RjdcdTU0RjhcdTU0RTBcdTU1MEVcdTU1MDNcdTU1MEJcdTU3MDFcdTU3MDJcdTU3Q0NcdTU4MzJcdTU3RDVcdTU3RDJcdTU3QkFcdTU3QzZcdTU3QkRcdTU3QkNcdTU3QjhcdTU3QjZcdTU3QkZcdTU3QzdcdTU3RDBcdTU3QjlcdTU3QzFcdTU5MEVcdTU5NEFcdTVBMTlcdTVBMTZcdTVBMkRcdTVBMkVcdTVBMTVcdTVBMEZcdTVBMTdcdTVBMEFcdTVBMUVcdTVBMzNcdTVCNkNcdTVCQTdcdTVCQURcdTVCQUNcdTVDMDNcdTVDNTZcdTVDNTRcdTVDRUNcdTVDRkZcdTVDRUVcdTVDRjFcdTVDRjdcdTVEMDBcdTVDRjlcdTVFMjlcdTVFMjhcdTVFQThcdTVFQUVcdTVFQUFcdTVFQUNcdTVGMzNcdTVGMzBcdTVGNjdcdTYwNURcdTYwNUFcdTYwNjdcIl0sXG5bXCJkMWExXCIsXCJcdTYwNDFcdTYwQTJcdTYwODhcdTYwODBcdTYwOTJcdTYwODFcdTYwOURcdTYwODNcdTYwOTVcdTYwOUJcdTYwOTdcdTYwODdcdTYwOUNcdTYwOEVcdTYyMTlcdTYyNDZcdTYyRjJcdTYzMTBcdTYzNTZcdTYzMkNcdTYzNDRcdTYzNDVcdTYzMzZcdTYzNDNcdTYzRTRcdTYzMzlcdTYzNEJcdTYzNEFcdTYzM0NcdTYzMjlcdTYzNDFcdTYzMzRcdTYzNThcdTYzNTRcdTYzNTlcdTYzMkRcdTYzNDdcdTYzMzNcdTYzNUFcdTYzNTFcdTYzMzhcdTYzNTdcdTYzNDBcdTYzNDhcdTY1NEFcdTY1NDZcdTY1QzZcdTY1QzNcdTY1QzRcdTY1QzJcdTY2NEFcdTY2NUZcdTY2NDdcdTY2NTFcdTY3MTJcdTY3MTNcdTY4MUZcdTY4MUFcdTY4NDlcdTY4MzJcdTY4MzNcdTY4M0JcdTY4NEJcdTY4NEZcdTY4MTZcdTY4MzFcdTY4MUNcdTY4MzVcdTY4MkJcdTY4MkRcdTY4MkZcdTY4NEVcdTY4NDRcdTY4MzRcdTY4MURcdTY4MTJcdTY4MTRcdTY4MjZcdTY4MjhcdTY4MkVcdTY4NERcdTY4M0FcdTY4MjVcdTY4MjBcdTZCMkNcdTZCMkZcdTZCMkRcdTZCMzFcdTZCMzRcdTZCNkRcdTgwODJcdTZCODhcdTZCRTZcdTZCRTRcIl0sXG5bXCJkMjQwXCIsXCJcdTZCRThcdTZCRTNcdTZCRTJcdTZCRTdcdTZDMjVcdTZEN0FcdTZENjNcdTZENjRcdTZENzZcdTZEMERcdTZENjFcdTZEOTJcdTZENThcdTZENjJcdTZENkRcdTZENkZcdTZEOTFcdTZEOERcdTZERUZcdTZEN0ZcdTZEODZcdTZENUVcdTZENjdcdTZENjBcdTZEOTdcdTZENzBcdTZEN0NcdTZENUZcdTZEODJcdTZEOThcdTZEMkZcdTZENjhcdTZEOEJcdTZEN0VcdTZEODBcdTZEODRcdTZEMTZcdTZEODNcdTZEN0JcdTZEN0RcdTZENzVcdTZEOTBcdTcwRENcdTcwRDNcdTcwRDFcdTcwRERcdTcwQ0JcdTdGMzlcdTcwRTJcdTcwRDdcdTcwRDJcdTcwREVcdTcwRTBcdTcwRDRcdTcwQ0RcdTcwQzVcdTcwQzZcdTcwQzdcdTcwREFcdTcwQ0VcdTcwRTFcdTcyNDJcdTcyNzhcIl0sXG5bXCJkMmExXCIsXCJcdTcyNzdcdTcyNzZcdTczMDBcdTcyRkFcdTcyRjRcdTcyRkVcdTcyRjZcdTcyRjNcdTcyRkJcdTczMDFcdTczRDNcdTczRDlcdTczRTVcdTczRDZcdTczQkNcdTczRTdcdTczRTNcdTczRTlcdTczRENcdTczRDJcdTczREJcdTczRDRcdTczRERcdTczREFcdTczRDdcdTczRDhcdTczRThcdTc0REVcdTc0REZcdTc0RjRcdTc0RjVcdTc1MjFcdTc1NUJcdTc1NUZcdTc1QjBcdTc1QzFcdTc1QkJcdTc1QzRcdTc1QzBcdTc1QkZcdTc1QjZcdTc1QkFcdTc2OEFcdTc2QzlcdTc3MURcdTc3MUJcdTc3MTBcdTc3MTNcdTc3MTJcdTc3MjNcdTc3MTFcdTc3MTVcdTc3MTlcdTc3MUFcdTc3MjJcdTc3MjdcdTc4MjNcdTc4MkNcdTc4MjJcdTc4MzVcdTc4MkZcdTc4MjhcdTc4MkVcdTc4MkJcdTc4MjFcdTc4MjlcdTc4MzNcdTc4MkFcdTc4MzFcdTc5NTRcdTc5NUJcdTc5NEZcdTc5NUNcdTc5NTNcdTc5NTJcdTc5NTFcdTc5RUJcdTc5RUNcdTc5RTBcdTc5RUVcdTc5RURcdTc5RUFcdTc5RENcdTc5REVcdTc5RERcdTdBODZcdTdBODlcdTdBODVcdTdBOEJcdTdBOENcdTdBOEFcdTdBODdcdTdBRDhcdTdCMTBcIl0sXG5bXCJkMzQwXCIsXCJcdTdCMDRcdTdCMTNcdTdCMDVcdTdCMEZcdTdCMDhcdTdCMEFcdTdCMEVcdTdCMDlcdTdCMTJcdTdDODRcdTdDOTFcdTdDOEFcdTdDOENcdTdDODhcdTdDOERcdTdDODVcdTdEMUVcdTdEMURcdTdEMTFcdTdEMEVcdTdEMThcdTdEMTZcdTdEMTNcdTdEMUZcdTdEMTJcdTdEMEZcdTdEMENcdTdGNUNcdTdGNjFcdTdGNUVcdTdGNjBcdTdGNURcdTdGNUJcdTdGOTZcdTdGOTJcdTdGQzNcdTdGQzJcdTdGQzBcdTgwMTZcdTgwM0VcdTgwMzlcdTgwRkFcdTgwRjJcdTgwRjlcdTgwRjVcdTgxMDFcdTgwRkJcdTgxMDBcdTgyMDFcdTgyMkZcdTgyMjVcdTgzMzNcdTgzMkRcdTgzNDRcdTgzMTlcdTgzNTFcdTgzMjVcdTgzNTZcdTgzM0ZcdTgzNDFcdTgzMjZcdTgzMUNcdTgzMjJcIl0sXG5bXCJkM2ExXCIsXCJcdTgzNDJcdTgzNEVcdTgzMUJcdTgzMkFcdTgzMDhcdTgzM0NcdTgzNERcdTgzMTZcdTgzMjRcdTgzMjBcdTgzMzdcdTgzMkZcdTgzMjlcdTgzNDdcdTgzNDVcdTgzNENcdTgzNTNcdTgzMUVcdTgzMkNcdTgzNEJcdTgzMjdcdTgzNDhcdTg2NTNcdTg2NTJcdTg2QTJcdTg2QThcdTg2OTZcdTg2OERcdTg2OTFcdTg2OUVcdTg2ODdcdTg2OTdcdTg2ODZcdTg2OEJcdTg2OUFcdTg2ODVcdTg2QTVcdTg2OTlcdTg2QTFcdTg2QTdcdTg2OTVcdTg2OThcdTg2OEVcdTg2OURcdTg2OTBcdTg2OTRcdTg4NDNcdTg4NDRcdTg4NkRcdTg4NzVcdTg4NzZcdTg4NzJcdTg4ODBcdTg4NzFcdTg4N0ZcdTg4NkZcdTg4ODNcdTg4N0VcdTg4NzRcdTg4N0NcdThBMTJcdThDNDdcdThDNTdcdThDN0JcdThDQTRcdThDQTNcdThENzZcdThENzhcdThEQjVcdThEQjdcdThEQjZcdThFRDFcdThFRDNcdThGRkVcdThGRjVcdTkwMDJcdThGRkZcdThGRkJcdTkwMDRcdThGRkNcdThGRjZcdTkwRDZcdTkwRTBcdTkwRDlcdTkwREFcdTkwRTNcdTkwREZcdTkwRTVcdTkwRDhcdTkwREJcdTkwRDdcdTkwRENcdTkwRTRcdTkxNTBcIl0sXG5bXCJkNDQwXCIsXCJcdTkxNEVcdTkxNEZcdTkxRDVcdTkxRTJcdTkxREFcdTk2NUNcdTk2NUZcdTk2QkNcdTk4RTNcdTlBREZcdTlCMkZcdTRFN0ZcdTUwNzBcdTUwNkFcdTUwNjFcdTUwNUVcdTUwNjBcdTUwNTNcdTUwNEJcdTUwNURcdTUwNzJcdTUwNDhcdTUwNERcdTUwNDFcdTUwNUJcdTUwNEFcdTUwNjJcdTUwMTVcdTUwNDVcdTUwNUZcdTUwNjlcdTUwNkJcdTUwNjNcdTUwNjRcdTUwNDZcdTUwNDBcdTUwNkVcdTUwNzNcdTUwNTdcdTUwNTFcdTUxRDBcdTUyNkJcdTUyNkRcdTUyNkNcdTUyNkVcdTUyRDZcdTUyRDNcdTUzMkRcdTUzOUNcdTU1NzVcdTU1NzZcdTU1M0NcdTU1NERcdTU1NTBcdTU1MzRcdTU1MkFcdTU1NTFcdTU1NjJcdTU1MzZcdTU1MzVcdTU1MzBcdTU1NTJcdTU1NDVcIl0sXG5bXCJkNGExXCIsXCJcdTU1MENcdTU1MzJcdTU1NjVcdTU1NEVcdTU1MzlcdTU1NDhcdTU1MkRcdTU1M0JcdTU1NDBcdTU1NEJcdTU3MEFcdTU3MDdcdTU3RkJcdTU4MTRcdTU3RTJcdTU3RjZcdTU3RENcdTU3RjRcdTU4MDBcdTU3RURcdTU3RkRcdTU4MDhcdTU3RjhcdTU4MEJcdTU3RjNcdTU3Q0ZcdTU4MDdcdTU3RUVcdTU3RTNcdTU3RjJcdTU3RTVcdTU3RUNcdTU3RTFcdTU4MEVcdTU3RkNcdTU4MTBcdTU3RTdcdTU4MDFcdTU4MENcdTU3RjFcdTU3RTlcdTU3RjBcdTU4MERcdTU4MDRcdTU5NUNcdTVBNjBcdTVBNThcdTVBNTVcdTVBNjdcdTVBNUVcdTVBMzhcdTVBMzVcdTVBNkRcdTVBNTBcdTVBNUZcdTVBNjVcdTVBNkNcdTVBNTNcdTVBNjRcdTVBNTdcdTVBNDNcdTVBNURcdTVBNTJcdTVBNDRcdTVBNUJcdTVBNDhcdTVBOEVcdTVBM0VcdTVBNERcdTVBMzlcdTVBNENcdTVBNzBcdTVBNjlcdTVBNDdcdTVBNTFcdTVBNTZcdTVBNDJcdTVBNUNcdTVCNzJcdTVCNkVcdTVCQzFcdTVCQzBcdTVDNTlcdTVEMUVcdTVEMEJcdTVEMURcdTVEMUFcdTVEMjBcdTVEMENcdTVEMjhcdTVEMERcdTVEMjZcdTVEMjVcdTVEMEZcIl0sXG5bXCJkNTQwXCIsXCJcdTVEMzBcdTVEMTJcdTVEMjNcdTVEMUZcdTVEMkVcdTVFM0VcdTVFMzRcdTVFQjFcdTVFQjRcdTVFQjlcdTVFQjJcdTVFQjNcdTVGMzZcdTVGMzhcdTVGOUJcdTVGOTZcdTVGOUZcdTYwOEFcdTYwOTBcdTYwODZcdTYwQkVcdTYwQjBcdTYwQkFcdTYwRDNcdTYwRDRcdTYwQ0ZcdTYwRTRcdTYwRDlcdTYwRERcdTYwQzhcdTYwQjFcdTYwREJcdTYwQjdcdTYwQ0FcdTYwQkZcdTYwQzNcdTYwQ0RcdTYwQzBcdTYzMzJcdTYzNjVcdTYzOEFcdTYzODJcdTYzN0RcdTYzQkRcdTYzOUVcdTYzQURcdTYzOURcdTYzOTdcdTYzQUJcdTYzOEVcdTYzNkZcdTYzODdcdTYzOTBcdTYzNkVcdTYzQUZcdTYzNzVcdTYzOUNcdTYzNkRcdTYzQUVcdTYzN0NcdTYzQTRcdTYzM0JcdTYzOUZcIl0sXG5bXCJkNWExXCIsXCJcdTYzNzhcdTYzODVcdTYzODFcdTYzOTFcdTYzOERcdTYzNzBcdTY1NTNcdTY1Q0RcdTY2NjVcdTY2NjFcdTY2NUJcdTY2NTlcdTY2NUNcdTY2NjJcdTY3MThcdTY4NzlcdTY4ODdcdTY4OTBcdTY4OUNcdTY4NkRcdTY4NkVcdTY4QUVcdTY4QUJcdTY5NTZcdTY4NkZcdTY4QTNcdTY4QUNcdTY4QTlcdTY4NzVcdTY4NzRcdTY4QjJcdTY4OEZcdTY4NzdcdTY4OTJcdTY4N0NcdTY4NkJcdTY4NzJcdTY4QUFcdTY4ODBcdTY4NzFcdTY4N0VcdTY4OUJcdTY4OTZcdTY4OEJcdTY4QTBcdTY4ODlcdTY4QTRcdTY4NzhcdTY4N0JcdTY4OTFcdTY4OENcdTY4OEFcdTY4N0RcdTZCMzZcdTZCMzNcdTZCMzdcdTZCMzhcdTZCOTFcdTZCOEZcdTZCOERcdTZCOEVcdTZCOENcdTZDMkFcdTZEQzBcdTZEQUJcdTZEQjRcdTZEQjNcdTZFNzRcdTZEQUNcdTZERTlcdTZERTJcdTZEQjdcdTZERjZcdTZERDRcdTZFMDBcdTZEQzhcdTZERTBcdTZEREZcdTZERDZcdTZEQkVcdTZERTVcdTZERENcdTZERERcdTZEREJcdTZERjRcdTZEQ0FcdTZEQkRcdTZERURcdTZERjBcdTZEQkFcdTZERDVcdTZEQzJcdTZEQ0ZcdTZEQzlcIl0sXG5bXCJkNjQwXCIsXCJcdTZERDBcdTZERjJcdTZERDNcdTZERkRcdTZERDdcdTZEQ0RcdTZERTNcdTZEQkJcdTcwRkFcdTcxMERcdTcwRjdcdTcxMTdcdTcwRjRcdTcxMENcdTcwRjBcdTcxMDRcdTcwRjNcdTcxMTBcdTcwRkNcdTcwRkZcdTcxMDZcdTcxMTNcdTcxMDBcdTcwRjhcdTcwRjZcdTcxMEJcdTcxMDJcdTcxMEVcdTcyN0VcdTcyN0JcdTcyN0NcdTcyN0ZcdTczMURcdTczMTdcdTczMDdcdTczMTFcdTczMThcdTczMEFcdTczMDhcdTcyRkZcdTczMEZcdTczMUVcdTczODhcdTczRjZcdTczRjhcdTczRjVcdTc0MDRcdTc0MDFcdTczRkRcdTc0MDdcdTc0MDBcdTczRkFcdTczRkNcdTczRkZcdTc0MENcdTc0MEJcdTczRjRcdTc0MDhcdTc1NjRcdTc1NjNcdTc1Q0VcdTc1RDJcdTc1Q0ZcIl0sXG5bXCJkNmExXCIsXCJcdTc1Q0JcdTc1Q0NcdTc1RDFcdTc1RDBcdTc2OEZcdTc2ODlcdTc2RDNcdTc3MzlcdTc3MkZcdTc3MkRcdTc3MzFcdTc3MzJcdTc3MzRcdTc3MzNcdTc3M0RcdTc3MjVcdTc3M0JcdTc3MzVcdTc4NDhcdTc4NTJcdTc4NDlcdTc4NERcdTc4NEFcdTc4NENcdTc4MjZcdTc4NDVcdTc4NTBcdTc5NjRcdTc5NjdcdTc5NjlcdTc5NkFcdTc5NjNcdTc5NkJcdTc5NjFcdTc5QkJcdTc5RkFcdTc5RjhcdTc5RjZcdTc5RjdcdTdBOEZcdTdBOTRcdTdBOTBcdTdCMzVcdTdCNDdcdTdCMzRcdTdCMjVcdTdCMzBcdTdCMjJcdTdCMjRcdTdCMzNcdTdCMThcdTdCMkFcdTdCMURcdTdCMzFcdTdCMkJcdTdCMkRcdTdCMkZcdTdCMzJcdTdCMzhcdTdCMUFcdTdCMjNcdTdDOTRcdTdDOThcdTdDOTZcdTdDQTNcdTdEMzVcdTdEM0RcdTdEMzhcdTdEMzZcdTdEM0FcdTdENDVcdTdEMkNcdTdEMjlcdTdENDFcdTdENDdcdTdEM0VcdTdEM0ZcdTdENEFcdTdEM0JcdTdEMjhcdTdGNjNcdTdGOTVcdTdGOUNcdTdGOURcdTdGOUJcdTdGQ0FcdTdGQ0JcdTdGQ0RcdTdGRDBcdTdGRDFcdTdGQzdcdTdGQ0ZcdTdGQzlcdTgwMUZcIl0sXG5bXCJkNzQwXCIsXCJcdTgwMUVcdTgwMUJcdTgwNDdcdTgwNDNcdTgwNDhcdTgxMThcdTgxMjVcdTgxMTlcdTgxMUJcdTgxMkRcdTgxMUZcdTgxMkNcdTgxMUVcdTgxMjFcdTgxMTVcdTgxMjdcdTgxMURcdTgxMjJcdTgyMTFcdTgyMzhcdTgyMzNcdTgyM0FcdTgyMzRcdTgyMzJcdTgyNzRcdTgzOTBcdTgzQTNcdTgzQThcdTgzOERcdTgzN0FcdTgzNzNcdTgzQTRcdTgzNzRcdTgzOEZcdTgzODFcdTgzOTVcdTgzOTlcdTgzNzVcdTgzOTRcdTgzQTlcdTgzN0RcdTgzODNcdTgzOENcdTgzOURcdTgzOUJcdTgzQUFcdTgzOEJcdTgzN0VcdTgzQTVcdTgzQUZcdTgzODhcdTgzOTdcdTgzQjBcdTgzN0ZcdTgzQTZcdTgzODdcdTgzQUVcdTgzNzZcdTgzOUFcdTg2NTlcdTg2NTZcdTg2QkZcdTg2QjdcIl0sXG5bXCJkN2ExXCIsXCJcdTg2QzJcdTg2QzFcdTg2QzVcdTg2QkFcdTg2QjBcdTg2QzhcdTg2QjlcdTg2QjNcdTg2QjhcdTg2Q0NcdTg2QjRcdTg2QkJcdTg2QkNcdTg2QzNcdTg2QkRcdTg2QkVcdTg4NTJcdTg4ODlcdTg4OTVcdTg4QThcdTg4QTJcdTg4QUFcdTg4OUFcdTg4OTFcdTg4QTFcdTg4OUZcdTg4OThcdTg4QTdcdTg4OTlcdTg4OUJcdTg4OTdcdTg4QTRcdTg4QUNcdTg4OENcdTg4OTNcdTg4OEVcdTg5ODJcdTg5RDZcdTg5RDlcdTg5RDVcdThBMzBcdThBMjdcdThBMkNcdThBMUVcdThDMzlcdThDM0JcdThDNUNcdThDNURcdThDN0RcdThDQTVcdThEN0RcdThEN0JcdThENzlcdThEQkNcdThEQzJcdThEQjlcdThEQkZcdThEQzFcdThFRDhcdThFREVcdThFRERcdThFRENcdThFRDdcdThFRTBcdThFRTFcdTkwMjRcdTkwMEJcdTkwMTFcdTkwMUNcdTkwMENcdTkwMjFcdTkwRUZcdTkwRUFcdTkwRjBcdTkwRjRcdTkwRjJcdTkwRjNcdTkwRDRcdTkwRUJcdTkwRUNcdTkwRTlcdTkxNTZcdTkxNThcdTkxNUFcdTkxNTNcdTkxNTVcdTkxRUNcdTkxRjRcdTkxRjFcdTkxRjNcdTkxRjhcdTkxRTRcdTkxRjlcdTkxRUFcIl0sXG5bXCJkODQwXCIsXCJcdTkxRUJcdTkxRjdcdTkxRThcdTkxRUVcdTk1N0FcdTk1ODZcdTk1ODhcdTk2N0NcdTk2NkRcdTk2NkJcdTk2NzFcdTk2NkZcdTk2QkZcdTk3NkFcdTk4MDRcdTk4RTVcdTk5OTdcdTUwOUJcdTUwOTVcdTUwOTRcdTUwOUVcdTUwOEJcdTUwQTNcdTUwODNcdTUwOENcdTUwOEVcdTUwOURcdTUwNjhcdTUwOUNcdTUwOTJcdTUwODJcdTUwODdcdTUxNUZcdTUxRDRcdTUzMTJcdTUzMTFcdTUzQTRcdTUzQTdcdTU1OTFcdTU1QThcdTU1QTVcdTU1QURcdTU1NzdcdTU2NDVcdTU1QTJcdTU1OTNcdTU1ODhcdTU1OEZcdTU1QjVcdTU1ODFcdTU1QTNcdTU1OTJcdTU1QTRcdTU1N0RcdTU1OENcdTU1QTZcdTU1N0ZcdTU1OTVcdTU1QTFcdTU1OEVcdTU3MENcdTU4MjlcdTU4MzdcIl0sXG5bXCJkOGExXCIsXCJcdTU4MTlcdTU4MUVcdTU4MjdcdTU4MjNcdTU4MjhcdTU3RjVcdTU4NDhcdTU4MjVcdTU4MUNcdTU4MUJcdTU4MzNcdTU4M0ZcdTU4MzZcdTU4MkVcdTU4MzlcdTU4MzhcdTU4MkRcdTU4MkNcdTU4M0JcdTU5NjFcdTVBQUZcdTVBOTRcdTVBOUZcdTVBN0FcdTVBQTJcdTVBOUVcdTVBNzhcdTVBQTZcdTVBN0NcdTVBQTVcdTVBQUNcdTVBOTVcdTVBQUVcdTVBMzdcdTVBODRcdTVBOEFcdTVBOTdcdTVBODNcdTVBOEJcdTVBQTlcdTVBN0JcdTVBN0RcdTVBOENcdTVBOUNcdTVBOEZcdTVBOTNcdTVBOURcdTVCRUFcdTVCQ0RcdTVCQ0JcdTVCRDRcdTVCRDFcdTVCQ0FcdTVCQ0VcdTVDMENcdTVDMzBcdTVEMzdcdTVENDNcdTVENkJcdTVENDFcdTVENEJcdTVEM0ZcdTVEMzVcdTVENTFcdTVENEVcdTVENTVcdTVEMzNcdTVEM0FcdTVENTJcdTVEM0RcdTVEMzFcdTVENTlcdTVENDJcdTVEMzlcdTVENDlcdTVEMzhcdTVEM0NcdTVEMzJcdTVEMzZcdTVENDBcdTVENDVcdTVFNDRcdTVFNDFcdTVGNThcdTVGQTZcdTVGQTVcdTVGQUJcdTYwQzlcdTYwQjlcdTYwQ0NcdTYwRTJcdTYwQ0VcdTYwQzRcdTYxMTRcIl0sXG5bXCJkOTQwXCIsXCJcdTYwRjJcdTYxMEFcdTYxMTZcdTYxMDVcdTYwRjVcdTYxMTNcdTYwRjhcdTYwRkNcdTYwRkVcdTYwQzFcdTYxMDNcdTYxMThcdTYxMURcdTYxMTBcdTYwRkZcdTYxMDRcdTYxMEJcdTYyNEFcdTYzOTRcdTYzQjFcdTYzQjBcdTYzQ0VcdTYzRTVcdTYzRThcdTYzRUZcdTYzQzNcdTY0OURcdTYzRjNcdTYzQ0FcdTYzRTBcdTYzRjZcdTYzRDVcdTYzRjJcdTYzRjVcdTY0NjFcdTYzREZcdTYzQkVcdTYzRERcdTYzRENcdTYzQzRcdTYzRDhcdTYzRDNcdTYzQzJcdTYzQzdcdTYzQ0NcdTYzQ0JcdTYzQzhcdTYzRjBcdTYzRDdcdTYzRDlcdTY1MzJcdTY1NjdcdTY1NkFcdTY1NjRcdTY1NUNcdTY1NjhcdTY1NjVcdTY1OENcdTY1OURcdTY1OUVcdTY1QUVcdTY1RDBcdTY1RDJcIl0sXG5bXCJkOWExXCIsXCJcdTY2N0NcdTY2NkNcdTY2N0JcdTY2ODBcdTY2NzFcdTY2NzlcdTY2NkFcdTY2NzJcdTY3MDFcdTY5MENcdTY4RDNcdTY5MDRcdTY4RENcdTY5MkFcdTY4RUNcdTY4RUFcdTY4RjFcdTY5MEZcdTY4RDZcdTY4RjdcdTY4RUJcdTY4RTRcdTY4RjZcdTY5MTNcdTY5MTBcdTY4RjNcdTY4RTFcdTY5MDdcdTY4Q0NcdTY5MDhcdTY5NzBcdTY4QjRcdTY5MTFcdTY4RUZcdTY4QzZcdTY5MTRcdTY4RjhcdTY4RDBcdTY4RkRcdTY4RkNcdTY4RThcdTY5MEJcdTY5MEFcdTY5MTdcdTY4Q0VcdTY4QzhcdTY4RERcdTY4REVcdTY4RTZcdTY4RjRcdTY4RDFcdTY5MDZcdTY4RDRcdTY4RTlcdTY5MTVcdTY5MjVcdTY4QzdcdTZCMzlcdTZCM0JcdTZCM0ZcdTZCM0NcdTZCOTRcdTZCOTdcdTZCOTlcdTZCOTVcdTZCQkRcdTZCRjBcdTZCRjJcdTZCRjNcdTZDMzBcdTZERkNcdTZFNDZcdTZFNDdcdTZFMUZcdTZFNDlcdTZFODhcdTZFM0NcdTZFM0RcdTZFNDVcdTZFNjJcdTZFMkJcdTZFM0ZcdTZFNDFcdTZFNURcdTZFNzNcdTZFMUNcdTZFMzNcdTZFNEJcdTZFNDBcdTZFNTFcdTZFM0JcdTZFMDNcdTZFMkVcdTZFNUVcIl0sXG5bXCJkYTQwXCIsXCJcdTZFNjhcdTZFNUNcdTZFNjFcdTZFMzFcdTZFMjhcdTZFNjBcdTZFNzFcdTZFNkJcdTZFMzlcdTZFMjJcdTZFMzBcdTZFNTNcdTZFNjVcdTZFMjdcdTZFNzhcdTZFNjRcdTZFNzdcdTZFNTVcdTZFNzlcdTZFNTJcdTZFNjZcdTZFMzVcdTZFMzZcdTZFNUFcdTcxMjBcdTcxMUVcdTcxMkZcdTcwRkJcdTcxMkVcdTcxMzFcdTcxMjNcdTcxMjVcdTcxMjJcdTcxMzJcdTcxMUZcdTcxMjhcdTcxM0FcdTcxMUJcdTcyNEJcdTcyNUFcdTcyODhcdTcyODlcdTcyODZcdTcyODVcdTcyOEJcdTczMTJcdTczMEJcdTczMzBcdTczMjJcdTczMzFcdTczMzNcdTczMjdcdTczMzJcdTczMkRcdTczMjZcdTczMjNcdTczMzVcdTczMENcdTc0MkVcdTc0MkNcdTc0MzBcdTc0MkJcdTc0MTZcIl0sXG5bXCJkYWExXCIsXCJcdTc0MUFcdTc0MjFcdTc0MkRcdTc0MzFcdTc0MjRcdTc0MjNcdTc0MURcdTc0MjlcdTc0MjBcdTc0MzJcdTc0RkJcdTc1MkZcdTc1NkZcdTc1NkNcdTc1RTdcdTc1REFcdTc1RTFcdTc1RTZcdTc1RERcdTc1REZcdTc1RTRcdTc1RDdcdTc2OTVcdTc2OTJcdTc2REFcdTc3NDZcdTc3NDdcdTc3NDRcdTc3NERcdTc3NDVcdTc3NEFcdTc3NEVcdTc3NEJcdTc3NENcdTc3REVcdTc3RUNcdTc4NjBcdTc4NjRcdTc4NjVcdTc4NUNcdTc4NkRcdTc4NzFcdTc4NkFcdTc4NkVcdTc4NzBcdTc4NjlcdTc4NjhcdTc4NUVcdTc4NjJcdTc5NzRcdTc5NzNcdTc5NzJcdTc5NzBcdTdBMDJcdTdBMEFcdTdBMDNcdTdBMENcdTdBMDRcdTdBOTlcdTdBRTZcdTdBRTRcdTdCNEFcdTdCM0JcdTdCNDRcdTdCNDhcdTdCNENcdTdCNEVcdTdCNDBcdTdCNThcdTdCNDVcdTdDQTJcdTdDOUVcdTdDQThcdTdDQTFcdTdENThcdTdENkZcdTdENjNcdTdENTNcdTdENTZcdTdENjdcdTdENkFcdTdENEZcdTdENkRcdTdENUNcdTdENkJcdTdENTJcdTdENTRcdTdENjlcdTdENTFcdTdENUZcdTdENEVcdTdGM0VcdTdGM0ZcdTdGNjVcIl0sXG5bXCJkYjQwXCIsXCJcdTdGNjZcdTdGQTJcdTdGQTBcdTdGQTFcdTdGRDdcdTgwNTFcdTgwNEZcdTgwNTBcdTgwRkVcdTgwRDRcdTgxNDNcdTgxNEFcdTgxNTJcdTgxNEZcdTgxNDdcdTgxM0RcdTgxNERcdTgxM0FcdTgxRTZcdTgxRUVcdTgxRjdcdTgxRjhcdTgxRjlcdTgyMDRcdTgyM0NcdTgyM0RcdTgyM0ZcdTgyNzVcdTgzM0JcdTgzQ0ZcdTgzRjlcdTg0MjNcdTgzQzBcdTgzRThcdTg0MTJcdTgzRTdcdTgzRTRcdTgzRkNcdTgzRjZcdTg0MTBcdTgzQzZcdTgzQzhcdTgzRUJcdTgzRTNcdTgzQkZcdTg0MDFcdTgzRERcdTgzRTVcdTgzRDhcdTgzRkZcdTgzRTFcdTgzQ0JcdTgzQ0VcdTgzRDZcdTgzRjVcdTgzQzlcdTg0MDlcdTg0MEZcdTgzREVcdTg0MTFcdTg0MDZcdTgzQzJcdTgzRjNcIl0sXG5bXCJkYmExXCIsXCJcdTgzRDVcdTgzRkFcdTgzQzdcdTgzRDFcdTgzRUFcdTg0MTNcdTgzQzNcdTgzRUNcdTgzRUVcdTgzQzRcdTgzRkJcdTgzRDdcdTgzRTJcdTg0MUJcdTgzREJcdTgzRkVcdTg2RDhcdTg2RTJcdTg2RTZcdTg2RDNcdTg2RTNcdTg2REFcdTg2RUFcdTg2RERcdTg2RUJcdTg2RENcdTg2RUNcdTg2RTlcdTg2RDdcdTg2RThcdTg2RDFcdTg4NDhcdTg4NTZcdTg4NTVcdTg4QkFcdTg4RDdcdTg4QjlcdTg4QjhcdTg4QzBcdTg4QkVcdTg4QjZcdTg4QkNcdTg4QjdcdTg4QkRcdTg4QjJcdTg5MDFcdTg4QzlcdTg5OTVcdTg5OThcdTg5OTdcdTg5RERcdTg5REFcdTg5REJcdThBNEVcdThBNERcdThBMzlcdThBNTlcdThBNDBcdThBNTdcdThBNThcdThBNDRcdThBNDVcdThBNTJcdThBNDhcdThBNTFcdThBNEFcdThBNENcdThBNEZcdThDNUZcdThDODFcdThDODBcdThDQkFcdThDQkVcdThDQjBcdThDQjlcdThDQjVcdThEODRcdThEODBcdThEODlcdThERDhcdThERDNcdThEQ0RcdThEQzdcdThERDZcdThERENcdThEQ0ZcdThERDVcdThERDlcdThEQzhcdThERDdcdThEQzVcdThFRUZcdThFRjdcdThFRkFcIl0sXG5bXCJkYzQwXCIsXCJcdThFRjlcdThFRTZcdThFRUVcdThFRTVcdThFRjVcdThFRTdcdThFRThcdThFRjZcdThFRUJcdThFRjFcdThFRUNcdThFRjRcdThFRTlcdTkwMkRcdTkwMzRcdTkwMkZcdTkxMDZcdTkxMkNcdTkxMDRcdTkwRkZcdTkwRkNcdTkxMDhcdTkwRjlcdTkwRkJcdTkxMDFcdTkxMDBcdTkxMDdcdTkxMDVcdTkxMDNcdTkxNjFcdTkxNjRcdTkxNUZcdTkxNjJcdTkxNjBcdTkyMDFcdTkyMEFcdTkyMjVcdTkyMDNcdTkyMUFcdTkyMjZcdTkyMEZcdTkyMENcdTkyMDBcdTkyMTJcdTkxRkZcdTkxRkRcdTkyMDZcdTkyMDRcdTkyMjdcdTkyMDJcdTkyMUNcdTkyMjRcdTkyMTlcdTkyMTdcdTkyMDVcdTkyMTZcdTk1N0JcdTk1OERcdTk1OENcdTk1OTBcdTk2ODdcdTk2N0VcdTk2ODhcIl0sXG5bXCJkY2ExXCIsXCJcdTk2ODlcdTk2ODNcdTk2ODBcdTk2QzJcdTk2QzhcdTk2QzNcdTk2RjFcdTk2RjBcdTk3NkNcdTk3NzBcdTk3NkVcdTk4MDdcdTk4QTlcdTk4RUJcdTlDRTZcdTlFRjlcdTRFODNcdTRFODRcdTRFQjZcdTUwQkRcdTUwQkZcdTUwQzZcdTUwQUVcdTUwQzRcdTUwQ0FcdTUwQjRcdTUwQzhcdTUwQzJcdTUwQjBcdTUwQzFcdTUwQkFcdTUwQjFcdTUwQ0JcdTUwQzlcdTUwQjZcdTUwQjhcdTUxRDdcdTUyN0FcdTUyNzhcdTUyN0JcdTUyN0NcdTU1QzNcdTU1REJcdTU1Q0NcdTU1RDBcdTU1Q0JcdTU1Q0FcdTU1RERcdTU1QzBcdTU1RDRcdTU1QzRcdTU1RTlcdTU1QkZcdTU1RDJcdTU1OERcdTU1Q0ZcdTU1RDVcdTU1RTJcdTU1RDZcdTU1QzhcdTU1RjJcdTU1Q0RcdTU1RDlcdTU1QzJcdTU3MTRcdTU4NTNcdTU4NjhcdTU4NjRcdTU4NEZcdTU4NERcdTU4NDlcdTU4NkZcdTU4NTVcdTU4NEVcdTU4NURcdTU4NTlcdTU4NjVcdTU4NUJcdTU4M0RcdTU4NjNcdTU4NzFcdTU4RkNcdTVBQzdcdTVBQzRcdTVBQ0JcdTVBQkFcdTVBQjhcdTVBQjFcdTVBQjVcdTVBQjBcdTVBQkZcdTVBQzhcdTVBQkJcdTVBQzZcIl0sXG5bXCJkZDQwXCIsXCJcdTVBQjdcdTVBQzBcdTVBQ0FcdTVBQjRcdTVBQjZcdTVBQ0RcdTVBQjlcdTVBOTBcdTVCRDZcdTVCRDhcdTVCRDlcdTVDMUZcdTVDMzNcdTVENzFcdTVENjNcdTVENEFcdTVENjVcdTVENzJcdTVENkNcdTVENUVcdTVENjhcdTVENjdcdTVENjJcdTVERjBcdTVFNEZcdTVFNEVcdTVFNEFcdTVFNERcdTVFNEJcdTVFQzVcdTVFQ0NcdTVFQzZcdTVFQ0JcdTVFQzdcdTVGNDBcdTVGQUZcdTVGQURcdTYwRjdcdTYxNDlcdTYxNEFcdTYxMkJcdTYxNDVcdTYxMzZcdTYxMzJcdTYxMkVcdTYxNDZcdTYxMkZcdTYxNEZcdTYxMjlcdTYxNDBcdTYyMjBcdTkxNjhcdTYyMjNcdTYyMjVcdTYyMjRcdTYzQzVcdTYzRjFcdTYzRUJcdTY0MTBcdTY0MTJcdTY0MDlcdTY0MjBcdTY0MjRcIl0sXG5bXCJkZGExXCIsXCJcdTY0MzNcdTY0NDNcdTY0MUZcdTY0MTVcdTY0MThcdTY0MzlcdTY0MzdcdTY0MjJcdTY0MjNcdTY0MENcdTY0MjZcdTY0MzBcdTY0MjhcdTY0NDFcdTY0MzVcdTY0MkZcdTY0MEFcdTY0MUFcdTY0NDBcdTY0MjVcdTY0MjdcdTY0MEJcdTYzRTdcdTY0MUJcdTY0MkVcdTY0MjFcdTY0MEVcdTY1NkZcdTY1OTJcdTY1RDNcdTY2ODZcdTY2OENcdTY2OTVcdTY2OTBcdTY2OEJcdTY2OEFcdTY2OTlcdTY2OTRcdTY2NzhcdTY3MjBcdTY5NjZcdTY5NUZcdTY5MzhcdTY5NEVcdTY5NjJcdTY5NzFcdTY5M0ZcdTY5NDVcdTY5NkFcdTY5MzlcdTY5NDJcdTY5NTdcdTY5NTlcdTY5N0FcdTY5NDhcdTY5NDlcdTY5MzVcdTY5NkNcdTY5MzNcdTY5M0RcdTY5NjVcdTY4RjBcdTY5NzhcdTY5MzRcdTY5NjlcdTY5NDBcdTY5NkZcdTY5NDRcdTY5NzZcdTY5NThcdTY5NDFcdTY5NzRcdTY5NENcdTY5M0JcdTY5NEJcdTY5MzdcdTY5NUNcdTY5NEZcdTY5NTFcdTY5MzJcdTY5NTJcdTY5MkZcdTY5N0JcdTY5M0NcdTZCNDZcdTZCNDVcdTZCNDNcdTZCNDJcdTZCNDhcdTZCNDFcdTZCOUJcdUZBMERcdTZCRkJcdTZCRkNcIl0sXG5bXCJkZTQwXCIsXCJcdTZCRjlcdTZCRjdcdTZCRjhcdTZFOUJcdTZFRDZcdTZFQzhcdTZFOEZcdTZFQzBcdTZFOUZcdTZFOTNcdTZFOTRcdTZFQTBcdTZFQjFcdTZFQjlcdTZFQzZcdTZFRDJcdTZFQkRcdTZFQzFcdTZFOUVcdTZFQzlcdTZFQjdcdTZFQjBcdTZFQ0RcdTZFQTZcdTZFQ0ZcdTZFQjJcdTZFQkVcdTZFQzNcdTZFRENcdTZFRDhcdTZFOTlcdTZFOTJcdTZFOEVcdTZFOERcdTZFQTRcdTZFQTFcdTZFQkZcdTZFQjNcdTZFRDBcdTZFQ0FcdTZFOTdcdTZFQUVcdTZFQTNcdTcxNDdcdTcxNTRcdTcxNTJcdTcxNjNcdTcxNjBcdTcxNDFcdTcxNURcdTcxNjJcdTcxNzJcdTcxNzhcdTcxNkFcdTcxNjFcdTcxNDJcdTcxNThcdTcxNDNcdTcxNEJcdTcxNzBcdTcxNUZcdTcxNTBcdTcxNTNcIl0sXG5bXCJkZWExXCIsXCJcdTcxNDRcdTcxNERcdTcxNUFcdTcyNEZcdTcyOERcdTcyOENcdTcyOTFcdTcyOTBcdTcyOEVcdTczM0NcdTczNDJcdTczM0JcdTczM0FcdTczNDBcdTczNEFcdTczNDlcdTc0NDRcdTc0NEFcdTc0NEJcdTc0NTJcdTc0NTFcdTc0NTdcdTc0NDBcdTc0NEZcdTc0NTBcdTc0NEVcdTc0NDJcdTc0NDZcdTc0NERcdTc0NTRcdTc0RTFcdTc0RkZcdTc0RkVcdTc0RkRcdTc1MURcdTc1NzlcdTc1NzdcdTY5ODNcdTc1RUZcdTc2MEZcdTc2MDNcdTc1RjdcdTc1RkVcdTc1RkNcdTc1RjlcdTc1RjhcdTc2MTBcdTc1RkJcdTc1RjZcdTc1RURcdTc1RjVcdTc1RkRcdTc2OTlcdTc2QjVcdTc2RERcdTc3NTVcdTc3NUZcdTc3NjBcdTc3NTJcdTc3NTZcdTc3NUFcdTc3NjlcdTc3NjdcdTc3NTRcdTc3NTlcdTc3NkRcdTc3RTBcdTc4ODdcdTc4OUFcdTc4OTRcdTc4OEZcdTc4ODRcdTc4OTVcdTc4ODVcdTc4ODZcdTc4QTFcdTc4ODNcdTc4NzlcdTc4OTlcdTc4ODBcdTc4OTZcdTc4N0JcdTc5N0NcdTc5ODJcdTc5N0RcdTc5NzlcdTdBMTFcdTdBMThcdTdBMTlcdTdBMTJcdTdBMTdcdTdBMTVcdTdBMjJcdTdBMTNcIl0sXG5bXCJkZjQwXCIsXCJcdTdBMUJcdTdBMTBcdTdBQTNcdTdBQTJcdTdBOUVcdTdBRUJcdTdCNjZcdTdCNjRcdTdCNkRcdTdCNzRcdTdCNjlcdTdCNzJcdTdCNjVcdTdCNzNcdTdCNzFcdTdCNzBcdTdCNjFcdTdCNzhcdTdCNzZcdTdCNjNcdTdDQjJcdTdDQjRcdTdDQUZcdTdEODhcdTdEODZcdTdEODBcdTdEOERcdTdEN0ZcdTdEODVcdTdEN0FcdTdEOEVcdTdEN0JcdTdEODNcdTdEN0NcdTdEOENcdTdEOTRcdTdEODRcdTdEN0RcdTdEOTJcdTdGNkRcdTdGNkJcdTdGNjdcdTdGNjhcdTdGNkNcdTdGQTZcdTdGQTVcdTdGQTdcdTdGREJcdTdGRENcdTgwMjFcdTgxNjRcdTgxNjBcdTgxNzdcdTgxNUNcdTgxNjlcdTgxNUJcdTgxNjJcdTgxNzJcdTY3MjFcdTgxNUVcdTgxNzZcdTgxNjdcdTgxNkZcIl0sXG5bXCJkZmExXCIsXCJcdTgxNDRcdTgxNjFcdTgyMURcdTgyNDlcdTgyNDRcdTgyNDBcdTgyNDJcdTgyNDVcdTg0RjFcdTg0M0ZcdTg0NTZcdTg0NzZcdTg0NzlcdTg0OEZcdTg0OERcdTg0NjVcdTg0NTFcdTg0NDBcdTg0ODZcdTg0NjdcdTg0MzBcdTg0NERcdTg0N0RcdTg0NUFcdTg0NTlcdTg0NzRcdTg0NzNcdTg0NURcdTg1MDdcdTg0NUVcdTg0MzdcdTg0M0FcdTg0MzRcdTg0N0FcdTg0NDNcdTg0NzhcdTg0MzJcdTg0NDVcdTg0MjlcdTgzRDlcdTg0NEJcdTg0MkZcdTg0NDJcdTg0MkRcdTg0NUZcdTg0NzBcdTg0MzlcdTg0NEVcdTg0NENcdTg0NTJcdTg0NkZcdTg0QzVcdTg0OEVcdTg0M0JcdTg0NDdcdTg0MzZcdTg0MzNcdTg0NjhcdTg0N0VcdTg0NDRcdTg0MkJcdTg0NjBcdTg0NTRcdTg0NkVcdTg0NTBcdTg3MEJcdTg3MDRcdTg2RjdcdTg3MENcdTg2RkFcdTg2RDZcdTg2RjVcdTg3NERcdTg2RjhcdTg3MEVcdTg3MDlcdTg3MDFcdTg2RjZcdTg3MERcdTg3MDVcdTg4RDZcdTg4Q0JcdTg4Q0RcdTg4Q0VcdTg4REVcdTg4REJcdTg4REFcdTg4Q0NcdTg4RDBcdTg5ODVcdTg5OUJcdTg5REZcdTg5RTVcdTg5RTRcIl0sXG5bXCJlMDQwXCIsXCJcdTg5RTFcdTg5RTBcdTg5RTJcdTg5RENcdTg5RTZcdThBNzZcdThBODZcdThBN0ZcdThBNjFcdThBM0ZcdThBNzdcdThBODJcdThBODRcdThBNzVcdThBODNcdThBODFcdThBNzRcdThBN0FcdThDM0NcdThDNEJcdThDNEFcdThDNjVcdThDNjRcdThDNjZcdThDODZcdThDODRcdThDODVcdThDQ0NcdThENjhcdThENjlcdThEOTFcdThEOENcdThEOEVcdThEOEZcdThEOERcdThEOTNcdThEOTRcdThEOTBcdThEOTJcdThERjBcdThERTBcdThERUNcdThERjFcdThERUVcdThERDBcdThERTlcdThERTNcdThERTJcdThERTdcdThERjJcdThERUJcdThERjRcdThGMDZcdThFRkZcdThGMDFcdThGMDBcdThGMDVcdThGMDdcdThGMDhcdThGMDJcdThGMEJcdTkwNTJcdTkwM0ZcIl0sXG5bXCJlMGExXCIsXCJcdTkwNDRcdTkwNDlcdTkwM0RcdTkxMTBcdTkxMERcdTkxMEZcdTkxMTFcdTkxMTZcdTkxMTRcdTkxMEJcdTkxMEVcdTkxNkVcdTkxNkZcdTkyNDhcdTkyNTJcdTkyMzBcdTkyM0FcdTkyNjZcdTkyMzNcdTkyNjVcdTkyNUVcdTkyODNcdTkyMkVcdTkyNEFcdTkyNDZcdTkyNkRcdTkyNkNcdTkyNEZcdTkyNjBcdTkyNjdcdTkyNkZcdTkyMzZcdTkyNjFcdTkyNzBcdTkyMzFcdTkyNTRcdTkyNjNcdTkyNTBcdTkyNzJcdTkyNEVcdTkyNTNcdTkyNENcdTkyNTZcdTkyMzJcdTk1OUZcdTk1OUNcdTk1OUVcdTk1OUJcdTk2OTJcdTk2OTNcdTk2OTFcdTk2OTdcdTk2Q0VcdTk2RkFcdTk2RkRcdTk2RjhcdTk2RjVcdTk3NzNcdTk3NzdcdTk3NzhcdTk3NzJcdTk4MEZcdTk4MERcdTk4MEVcdTk4QUNcdTk4RjZcdTk4RjlcdTk5QUZcdTk5QjJcdTk5QjBcdTk5QjVcdTlBQURcdTlBQUJcdTlCNUJcdTlDRUFcdTlDRURcdTlDRTdcdTlFODBcdTlFRkRcdTUwRTZcdTUwRDRcdTUwRDdcdTUwRThcdTUwRjNcdTUwREJcdTUwRUFcdTUwRERcdTUwRTRcdTUwRDNcdTUwRUNcdTUwRjBcdTUwRUZcdTUwRTNcdTUwRTBcIl0sXG5bXCJlMTQwXCIsXCJcdTUxRDhcdTUyODBcdTUyODFcdTUyRTlcdTUyRUJcdTUzMzBcdTUzQUNcdTU2MjdcdTU2MTVcdTU2MENcdTU2MTJcdTU1RkNcdTU2MEZcdTU2MUNcdTU2MDFcdTU2MTNcdTU2MDJcdTU1RkFcdTU2MURcdTU2MDRcdTU1RkZcdTU1RjlcdTU4ODlcdTU4N0NcdTU4OTBcdTU4OThcdTU4ODZcdTU4ODFcdTU4N0ZcdTU4NzRcdTU4OEJcdTU4N0FcdTU4ODdcdTU4OTFcdTU4OEVcdTU4NzZcdTU4ODJcdTU4ODhcdTU4N0JcdTU4OTRcdTU4OEZcdTU4RkVcdTU5NkJcdTVBRENcdTVBRUVcdTVBRTVcdTVBRDVcdTVBRUFcdTVBREFcdTVBRURcdTVBRUJcdTVBRjNcdTVBRTJcdTVBRTBcdTVBREJcdTVBRUNcdTVBREVcdTVBRERcdTVBRDlcdTVBRThcdTVBREZcdTVCNzdcdTVCRTBcIl0sXG5bXCJlMWExXCIsXCJcdTVCRTNcdTVDNjNcdTVEODJcdTVEODBcdTVEN0RcdTVEODZcdTVEN0FcdTVEODFcdTVENzdcdTVEOEFcdTVEODlcdTVEODhcdTVEN0VcdTVEN0NcdTVEOERcdTVENzlcdTVEN0ZcdTVFNThcdTVFNTlcdTVFNTNcdTVFRDhcdTVFRDFcdTVFRDdcdTVFQ0VcdTVFRENcdTVFRDVcdTVFRDlcdTVFRDJcdTVFRDRcdTVGNDRcdTVGNDNcdTVGNkZcdTVGQjZcdTYxMkNcdTYxMjhcdTYxNDFcdTYxNUVcdTYxNzFcdTYxNzNcdTYxNTJcdTYxNTNcdTYxNzJcdTYxNkNcdTYxODBcdTYxNzRcdTYxNTRcdTYxN0FcdTYxNUJcdTYxNjVcdTYxM0JcdTYxNkFcdTYxNjFcdTYxNTZcdTYyMjlcdTYyMjdcdTYyMkJcdTY0MkJcdTY0NERcdTY0NUJcdTY0NURcdTY0NzRcdTY0NzZcdTY0NzJcdTY0NzNcdTY0N0RcdTY0NzVcdTY0NjZcdTY0QTZcdTY0NEVcdTY0ODJcdTY0NUVcdTY0NUNcdTY0NEJcdTY0NTNcdTY0NjBcdTY0NTBcdTY0N0ZcdTY0M0ZcdTY0NkNcdTY0NkJcdTY0NTlcdTY0NjVcdTY0NzdcdTY1NzNcdTY1QTBcdTY2QTFcdTY2QTBcdTY2OUZcdTY3MDVcdTY3MDRcdTY3MjJcdTY5QjFcdTY5QjZcdTY5QzlcIl0sXG5bXCJlMjQwXCIsXCJcdTY5QTBcdTY5Q0VcdTY5OTZcdTY5QjBcdTY5QUNcdTY5QkNcdTY5OTFcdTY5OTlcdTY5OEVcdTY5QTdcdTY5OERcdTY5QTlcdTY5QkVcdTY5QUZcdTY5QkZcdTY5QzRcdTY5QkRcdTY5QTRcdTY5RDRcdTY5QjlcdTY5Q0FcdTY5OUFcdTY5Q0ZcdTY5QjNcdTY5OTNcdTY5QUFcdTY5QTFcdTY5OUVcdTY5RDlcdTY5OTdcdTY5OTBcdTY5QzJcdTY5QjVcdTY5QTVcdTY5QzZcdTZCNEFcdTZCNERcdTZCNEJcdTZCOUVcdTZCOUZcdTZCQTBcdTZCQzNcdTZCQzRcdTZCRkVcdTZFQ0VcdTZFRjVcdTZFRjFcdTZGMDNcdTZGMjVcdTZFRjhcdTZGMzdcdTZFRkJcdTZGMkVcdTZGMDlcdTZGNEVcdTZGMTlcdTZGMUFcdTZGMjdcdTZGMThcdTZGM0JcdTZGMTJcdTZFRURcdTZGMEFcIl0sXG5bXCJlMmExXCIsXCJcdTZGMzZcdTZGNzNcdTZFRjlcdTZFRUVcdTZGMkRcdTZGNDBcdTZGMzBcdTZGM0NcdTZGMzVcdTZFRUJcdTZGMDdcdTZGMEVcdTZGNDNcdTZGMDVcdTZFRkRcdTZFRjZcdTZGMzlcdTZGMUNcdTZFRkNcdTZGM0FcdTZGMUZcdTZGMERcdTZGMUVcdTZGMDhcdTZGMjFcdTcxODdcdTcxOTBcdTcxODlcdTcxODBcdTcxODVcdTcxODJcdTcxOEZcdTcxN0JcdTcxODZcdTcxODFcdTcxOTdcdTcyNDRcdTcyNTNcdTcyOTdcdTcyOTVcdTcyOTNcdTczNDNcdTczNERcdTczNTFcdTczNENcdTc0NjJcdTc0NzNcdTc0NzFcdTc0NzVcdTc0NzJcdTc0NjdcdTc0NkVcdTc1MDBcdTc1MDJcdTc1MDNcdTc1N0RcdTc1OTBcdTc2MTZcdTc2MDhcdTc2MENcdTc2MTVcdTc2MTFcdTc2MEFcdTc2MTRcdTc2QjhcdTc3ODFcdTc3N0NcdTc3ODVcdTc3ODJcdTc3NkVcdTc3ODBcdTc3NkZcdTc3N0VcdTc3ODNcdTc4QjJcdTc4QUFcdTc4QjRcdTc4QURcdTc4QThcdTc4N0VcdTc4QUJcdTc4OUVcdTc4QTVcdTc4QTBcdTc4QUNcdTc4QTJcdTc4QTRcdTc5OThcdTc5OEFcdTc5OEJcdTc5OTZcdTc5OTVcdTc5OTRcdTc5OTNcIl0sXG5bXCJlMzQwXCIsXCJcdTc5OTdcdTc5ODhcdTc5OTJcdTc5OTBcdTdBMkJcdTdBNEFcdTdBMzBcdTdBMkZcdTdBMjhcdTdBMjZcdTdBQThcdTdBQUJcdTdBQUNcdTdBRUVcdTdCODhcdTdCOUNcdTdCOEFcdTdCOTFcdTdCOTBcdTdCOTZcdTdCOERcdTdCOENcdTdCOUJcdTdCOEVcdTdCODVcdTdCOThcdTUyODRcdTdCOTlcdTdCQTRcdTdCODJcdTdDQkJcdTdDQkZcdTdDQkNcdTdDQkFcdTdEQTdcdTdEQjdcdTdEQzJcdTdEQTNcdTdEQUFcdTdEQzFcdTdEQzBcdTdEQzVcdTdEOURcdTdEQ0VcdTdEQzRcdTdEQzZcdTdEQ0JcdTdEQ0NcdTdEQUZcdTdEQjlcdTdEOTZcdTdEQkNcdTdEOUZcdTdEQTZcdTdEQUVcdTdEQTlcdTdEQTFcdTdEQzlcdTdGNzNcdTdGRTJcdTdGRTNcdTdGRTVcdTdGREVcIl0sXG5bXCJlM2ExXCIsXCJcdTgwMjRcdTgwNURcdTgwNUNcdTgxODlcdTgxODZcdTgxODNcdTgxODdcdTgxOERcdTgxOENcdTgxOEJcdTgyMTVcdTg0OTdcdTg0QTRcdTg0QTFcdTg0OUZcdTg0QkFcdTg0Q0VcdTg0QzJcdTg0QUNcdTg0QUVcdTg0QUJcdTg0QjlcdTg0QjRcdTg0QzFcdTg0Q0RcdTg0QUFcdTg0OUFcdTg0QjFcdTg0RDBcdTg0OURcdTg0QTdcdTg0QkJcdTg0QTJcdTg0OTRcdTg0QzdcdTg0Q0NcdTg0OUJcdTg0QTlcdTg0QUZcdTg0QThcdTg0RDZcdTg0OThcdTg0QjZcdTg0Q0ZcdTg0QTBcdTg0RDdcdTg0RDRcdTg0RDJcdTg0REJcdTg0QjBcdTg0OTFcdTg2NjFcdTg3MzNcdTg3MjNcdTg3MjhcdTg3NkJcdTg3NDBcdTg3MkVcdTg3MUVcdTg3MjFcdTg3MTlcdTg3MUJcdTg3NDNcdTg3MkNcdTg3NDFcdTg3M0VcdTg3NDZcdTg3MjBcdTg3MzJcdTg3MkFcdTg3MkRcdTg3M0NcdTg3MTJcdTg3M0FcdTg3MzFcdTg3MzVcdTg3NDJcdTg3MjZcdTg3MjdcdTg3MzhcdTg3MjRcdTg3MUFcdTg3MzBcdTg3MTFcdTg4RjdcdTg4RTdcdTg4RjFcdTg4RjJcdTg4RkFcdTg4RkVcdTg4RUVcdTg4RkNcdTg4RjZcdTg4RkJcIl0sXG5bXCJlNDQwXCIsXCJcdTg4RjBcdTg4RUNcdTg4RUJcdTg5OURcdTg5QTFcdTg5OUZcdTg5OUVcdTg5RTlcdTg5RUJcdTg5RThcdThBQUJcdThBOTlcdThBOEJcdThBOTJcdThBOEZcdThBOTZcdThDM0RcdThDNjhcdThDNjlcdThDRDVcdThDQ0ZcdThDRDdcdThEOTZcdThFMDlcdThFMDJcdThERkZcdThFMERcdThERkRcdThFMEFcdThFMDNcdThFMDdcdThFMDZcdThFMDVcdThERkVcdThFMDBcdThFMDRcdThGMTBcdThGMTFcdThGMEVcdThGMERcdTkxMjNcdTkxMUNcdTkxMjBcdTkxMjJcdTkxMUZcdTkxMURcdTkxMUFcdTkxMjRcdTkxMjFcdTkxMUJcdTkxN0FcdTkxNzJcdTkxNzlcdTkxNzNcdTkyQTVcdTkyQTRcdTkyNzZcdTkyOUJcdTkyN0FcdTkyQTBcdTkyOTRcdTkyQUFcdTkyOERcIl0sXG5bXCJlNGExXCIsXCJcdTkyQTZcdTkyOUFcdTkyQUJcdTkyNzlcdTkyOTdcdTkyN0ZcdTkyQTNcdTkyRUVcdTkyOEVcdTkyODJcdTkyOTVcdTkyQTJcdTkyN0RcdTkyODhcdTkyQTFcdTkyOEFcdTkyODZcdTkyOENcdTkyOTlcdTkyQTdcdTkyN0VcdTkyODdcdTkyQTlcdTkyOURcdTkyOEJcdTkyMkRcdTk2OUVcdTk2QTFcdTk2RkZcdTk3NThcdTk3N0RcdTk3N0FcdTk3N0VcdTk3ODNcdTk3ODBcdTk3ODJcdTk3N0JcdTk3ODRcdTk3ODFcdTk3N0ZcdTk3Q0VcdTk3Q0RcdTk4MTZcdTk4QURcdTk4QUVcdTk5MDJcdTk5MDBcdTk5MDdcdTk5OURcdTk5OUNcdTk5QzNcdTk5QjlcdTk5QkJcdTk5QkFcdTk5QzJcdTk5QkRcdTk5QzdcdTlBQjFcdTlBRTNcdTlBRTdcdTlCM0VcdTlCM0ZcdTlCNjBcdTlCNjFcdTlCNUZcdTlDRjFcdTlDRjJcdTlDRjVcdTlFQTdcdTUwRkZcdTUxMDNcdTUxMzBcdTUwRjhcdTUxMDZcdTUxMDdcdTUwRjZcdTUwRkVcdTUxMEJcdTUxMENcdTUwRkRcdTUxMEFcdTUyOEJcdTUyOENcdTUyRjFcdTUyRUZcdTU2NDhcdTU2NDJcdTU2NENcdTU2MzVcdTU2NDFcdTU2NEFcdTU2NDlcdTU2NDZcdTU2NThcIl0sXG5bXCJlNTQwXCIsXCJcdTU2NUFcdTU2NDBcdTU2MzNcdTU2M0RcdTU2MkNcdTU2M0VcdTU2MzhcdTU2MkFcdTU2M0FcdTU3MUFcdTU4QUJcdTU4OURcdTU4QjFcdTU4QTBcdTU4QTNcdTU4QUZcdTU4QUNcdTU4QTVcdTU4QTFcdTU4RkZcdTVBRkZcdTVBRjRcdTVBRkRcdTVBRjdcdTVBRjZcdTVCMDNcdTVBRjhcdTVCMDJcdTVBRjlcdTVCMDFcdTVCMDdcdTVCMDVcdTVCMEZcdTVDNjdcdTVEOTlcdTVEOTdcdTVEOUZcdTVEOTJcdTVEQTJcdTVEOTNcdTVEOTVcdTVEQTBcdTVEOUNcdTVEQTFcdTVEOUFcdTVEOUVcdTVFNjlcdTVFNURcdTVFNjBcdTVFNUNcdTdERjNcdTVFREJcdTVFREVcdTVFRTFcdTVGNDlcdTVGQjJcdTYxOEJcdTYxODNcdTYxNzlcdTYxQjFcdTYxQjBcdTYxQTJcdTYxODlcIl0sXG5bXCJlNWExXCIsXCJcdTYxOUJcdTYxOTNcdTYxQUZcdTYxQURcdTYxOUZcdTYxOTJcdTYxQUFcdTYxQTFcdTYxOERcdTYxNjZcdTYxQjNcdTYyMkRcdTY0NkVcdTY0NzBcdTY0OTZcdTY0QTBcdTY0ODVcdTY0OTdcdTY0OUNcdTY0OEZcdTY0OEJcdTY0OEFcdTY0OENcdTY0QTNcdTY0OUZcdTY0NjhcdTY0QjFcdTY0OThcdTY1NzZcdTY1N0FcdTY1NzlcdTY1N0JcdTY1QjJcdTY1QjNcdTY2QjVcdTY2QjBcdTY2QTlcdTY2QjJcdTY2QjdcdTY2QUFcdTY2QUZcdTZBMDBcdTZBMDZcdTZBMTdcdTY5RTVcdTY5RjhcdTZBMTVcdTY5RjFcdTY5RTRcdTZBMjBcdTY5RkZcdTY5RUNcdTY5RTJcdTZBMUJcdTZBMURcdTY5RkVcdTZBMjdcdTY5RjJcdTY5RUVcdTZBMTRcdTY5RjdcdTY5RTdcdTZBNDBcdTZBMDhcdTY5RTZcdTY5RkJcdTZBMERcdTY5RkNcdTY5RUJcdTZBMDlcdTZBMDRcdTZBMThcdTZBMjVcdTZBMEZcdTY5RjZcdTZBMjZcdTZBMDdcdTY5RjRcdTZBMTZcdTZCNTFcdTZCQTVcdTZCQTNcdTZCQTJcdTZCQTZcdTZDMDFcdTZDMDBcdTZCRkZcdTZDMDJcdTZGNDFcdTZGMjZcdTZGN0VcdTZGODdcdTZGQzZcdTZGOTJcIl0sXG5bXCJlNjQwXCIsXCJcdTZGOERcdTZGODlcdTZGOENcdTZGNjJcdTZGNEZcdTZGODVcdTZGNUFcdTZGOTZcdTZGNzZcdTZGNkNcdTZGODJcdTZGNTVcdTZGNzJcdTZGNTJcdTZGNTBcdTZGNTdcdTZGOTRcdTZGOTNcdTZGNURcdTZGMDBcdTZGNjFcdTZGNkJcdTZGN0RcdTZGNjdcdTZGOTBcdTZGNTNcdTZGOEJcdTZGNjlcdTZGN0ZcdTZGOTVcdTZGNjNcdTZGNzdcdTZGNkFcdTZGN0JcdTcxQjJcdTcxQUZcdTcxOUJcdTcxQjBcdTcxQTBcdTcxOUFcdTcxQTlcdTcxQjVcdTcxOURcdTcxQTVcdTcxOUVcdTcxQTRcdTcxQTFcdTcxQUFcdTcxOUNcdTcxQTdcdTcxQjNcdTcyOThcdTcyOUFcdTczNThcdTczNTJcdTczNUVcdTczNUZcdTczNjBcdTczNURcdTczNUJcdTczNjFcdTczNUFcdTczNTlcIl0sXG5bXCJlNmExXCIsXCJcdTczNjJcdTc0ODdcdTc0ODlcdTc0OEFcdTc0ODZcdTc0ODFcdTc0N0RcdTc0ODVcdTc0ODhcdTc0N0NcdTc0NzlcdTc1MDhcdTc1MDdcdTc1N0VcdTc2MjVcdTc2MUVcdTc2MTlcdTc2MURcdTc2MUNcdTc2MjNcdTc2MUFcdTc2MjhcdTc2MUJcdTc2OUNcdTc2OURcdTc2OUVcdTc2OUJcdTc3OERcdTc3OEZcdTc3ODlcdTc3ODhcdTc4Q0RcdTc4QkJcdTc4Q0ZcdTc4Q0NcdTc4RDFcdTc4Q0VcdTc4RDRcdTc4QzhcdTc4QzNcdTc4QzRcdTc4QzlcdTc5OUFcdTc5QTFcdTc5QTBcdTc5OUNcdTc5QTJcdTc5OUJcdTZCNzZcdTdBMzlcdTdBQjJcdTdBQjRcdTdBQjNcdTdCQjdcdTdCQ0JcdTdCQkVcdTdCQUNcdTdCQ0VcdTdCQUZcdTdCQjlcdTdCQ0FcdTdCQjVcdTdDQzVcdTdDQzhcdTdDQ0NcdTdDQ0JcdTdERjdcdTdEREJcdTdERUFcdTdERTdcdTdERDdcdTdERTFcdTdFMDNcdTdERkFcdTdERTZcdTdERjZcdTdERjFcdTdERjBcdTdERUVcdTdEREZcdTdGNzZcdTdGQUNcdTdGQjBcdTdGQURcdTdGRURcdTdGRUJcdTdGRUFcdTdGRUNcdTdGRTZcdTdGRThcdTgwNjRcdTgwNjdcdTgxQTNcdTgxOUZcIl0sXG5bXCJlNzQwXCIsXCJcdTgxOUVcdTgxOTVcdTgxQTJcdTgxOTlcdTgxOTdcdTgyMTZcdTgyNEZcdTgyNTNcdTgyNTJcdTgyNTBcdTgyNEVcdTgyNTFcdTg1MjRcdTg1M0JcdTg1MEZcdTg1MDBcdTg1MjlcdTg1MEVcdTg1MDlcdTg1MERcdTg1MUZcdTg1MEFcdTg1MjdcdTg1MUNcdTg0RkJcdTg1MkJcdTg0RkFcdTg1MDhcdTg1MENcdTg0RjRcdTg1MkFcdTg0RjJcdTg1MTVcdTg0RjdcdTg0RUJcdTg0RjNcdTg0RkNcdTg1MTJcdTg0RUFcdTg0RTlcdTg1MTZcdTg0RkVcdTg1MjhcdTg1MURcdTg1MkVcdTg1MDJcdTg0RkRcdTg1MUVcdTg0RjZcdTg1MzFcdTg1MjZcdTg0RTdcdTg0RThcdTg0RjBcdTg0RUZcdTg0RjlcdTg1MThcdTg1MjBcdTg1MzBcdTg1MEJcdTg1MTlcdTg1MkZcdTg2NjJcIl0sXG5bXCJlN2ExXCIsXCJcdTg3NTZcdTg3NjNcdTg3NjRcdTg3NzdcdTg3RTFcdTg3NzNcdTg3NThcdTg3NTRcdTg3NUJcdTg3NTJcdTg3NjFcdTg3NUFcdTg3NTFcdTg3NUVcdTg3NkRcdTg3NkFcdTg3NTBcdTg3NEVcdTg3NUZcdTg3NURcdTg3NkZcdTg3NkNcdTg3N0FcdTg3NkVcdTg3NUNcdTg3NjVcdTg3NEZcdTg3N0JcdTg3NzVcdTg3NjJcdTg3NjdcdTg3NjlcdTg4NUFcdTg5MDVcdTg5MENcdTg5MTRcdTg5MEJcdTg5MTdcdTg5MThcdTg5MTlcdTg5MDZcdTg5MTZcdTg5MTFcdTg5MEVcdTg5MDlcdTg5QTJcdTg5QTRcdTg5QTNcdTg5RURcdTg5RjBcdTg5RUNcdThBQ0ZcdThBQzZcdThBQjhcdThBRDNcdThBRDFcdThBRDRcdThBRDVcdThBQkJcdThBRDdcdThBQkVcdThBQzBcdThBQzVcdThBRDhcdThBQzNcdThBQkFcdThBQkRcdThBRDlcdThDM0VcdThDNERcdThDOEZcdThDRTVcdThDREZcdThDRDlcdThDRThcdThDREFcdThDRERcdThDRTdcdThEQTBcdThEOUNcdThEQTFcdThEOUJcdThFMjBcdThFMjNcdThFMjVcdThFMjRcdThFMkVcdThFMTVcdThFMUJcdThFMTZcdThFMTFcdThFMTlcdThFMjZcdThFMjdcIl0sXG5bXCJlODQwXCIsXCJcdThFMTRcdThFMTJcdThFMThcdThFMTNcdThFMUNcdThFMTdcdThFMUFcdThGMkNcdThGMjRcdThGMThcdThGMUFcdThGMjBcdThGMjNcdThGMTZcdThGMTdcdTkwNzNcdTkwNzBcdTkwNkZcdTkwNjdcdTkwNkJcdTkxMkZcdTkxMkJcdTkxMjlcdTkxMkFcdTkxMzJcdTkxMjZcdTkxMkVcdTkxODVcdTkxODZcdTkxOEFcdTkxODFcdTkxODJcdTkxODRcdTkxODBcdTkyRDBcdTkyQzNcdTkyQzRcdTkyQzBcdTkyRDlcdTkyQjZcdTkyQ0ZcdTkyRjFcdTkyREZcdTkyRDhcdTkyRTlcdTkyRDdcdTkyRERcdTkyQ0NcdTkyRUZcdTkyQzJcdTkyRThcdTkyQ0FcdTkyQzhcdTkyQ0VcdTkyRTZcdTkyQ0RcdTkyRDVcdTkyQzlcdTkyRTBcdTkyREVcdTkyRTdcdTkyRDFcdTkyRDNcIl0sXG5bXCJlOGExXCIsXCJcdTkyQjVcdTkyRTFcdTkyQzZcdTkyQjRcdTk1N0NcdTk1QUNcdTk1QUJcdTk1QUVcdTk1QjBcdTk2QTRcdTk2QTJcdTk2RDNcdTk3MDVcdTk3MDhcdTk3MDJcdTk3NUFcdTk3OEFcdTk3OEVcdTk3ODhcdTk3RDBcdTk3Q0ZcdTk4MUVcdTk4MURcdTk4MjZcdTk4MjlcdTk4MjhcdTk4MjBcdTk4MUJcdTk4MjdcdTk4QjJcdTk5MDhcdTk4RkFcdTk5MTFcdTk5MTRcdTk5MTZcdTk5MTdcdTk5MTVcdTk5RENcdTk5Q0RcdTk5Q0ZcdTk5RDNcdTk5RDRcdTk5Q0VcdTk5QzlcdTk5RDZcdTk5RDhcdTk5Q0JcdTk5RDdcdTk5Q0NcdTlBQjNcdTlBRUNcdTlBRUJcdTlBRjNcdTlBRjJcdTlBRjFcdTlCNDZcdTlCNDNcdTlCNjdcdTlCNzRcdTlCNzFcdTlCNjZcdTlCNzZcdTlCNzVcdTlCNzBcdTlCNjhcdTlCNjRcdTlCNkNcdTlDRkNcdTlDRkFcdTlDRkRcdTlDRkZcdTlDRjdcdTlEMDdcdTlEMDBcdTlDRjlcdTlDRkJcdTlEMDhcdTlEMDVcdTlEMDRcdTlFODNcdTlFRDNcdTlGMEZcdTlGMTBcdTUxMUNcdTUxMTNcdTUxMTdcdTUxMUFcdTUxMTFcdTUxREVcdTUzMzRcdTUzRTFcdTU2NzBcdTU2NjBcdTU2NkVcIl0sXG5bXCJlOTQwXCIsXCJcdTU2NzNcdTU2NjZcdTU2NjNcdTU2NkRcdTU2NzJcdTU2NUVcdTU2NzdcdTU3MUNcdTU3MUJcdTU4QzhcdTU4QkRcdTU4QzlcdTU4QkZcdTU4QkFcdTU4QzJcdTU4QkNcdTU4QzZcdTVCMTdcdTVCMTlcdTVCMUJcdTVCMjFcdTVCMTRcdTVCMTNcdTVCMTBcdTVCMTZcdTVCMjhcdTVCMUFcdTVCMjBcdTVCMUVcdTVCRUZcdTVEQUNcdTVEQjFcdTVEQTlcdTVEQTdcdTVEQjVcdTVEQjBcdTVEQUVcdTVEQUFcdTVEQThcdTVEQjJcdTVEQURcdTVEQUZcdTVEQjRcdTVFNjdcdTVFNjhcdTVFNjZcdTVFNkZcdTVFRTlcdTVFRTdcdTVFRTZcdTVFRThcdTVFRTVcdTVGNEJcdTVGQkNcdTYxOURcdTYxQThcdTYxOTZcdTYxQzVcdTYxQjRcdTYxQzZcdTYxQzFcdTYxQ0NcdTYxQkFcIl0sXG5bXCJlOWExXCIsXCJcdTYxQkZcdTYxQjhcdTYxOENcdTY0RDdcdTY0RDZcdTY0RDBcdTY0Q0ZcdTY0QzlcdTY0QkRcdTY0ODlcdTY0QzNcdTY0REJcdTY0RjNcdTY0RDlcdTY1MzNcdTY1N0ZcdTY1N0NcdTY1QTJcdTY2QzhcdTY2QkVcdTY2QzBcdTY2Q0FcdTY2Q0JcdTY2Q0ZcdTY2QkRcdTY2QkJcdTY2QkFcdTY2Q0NcdTY3MjNcdTZBMzRcdTZBNjZcdTZBNDlcdTZBNjdcdTZBMzJcdTZBNjhcdTZBM0VcdTZBNURcdTZBNkRcdTZBNzZcdTZBNUJcdTZBNTFcdTZBMjhcdTZBNUFcdTZBM0JcdTZBM0ZcdTZBNDFcdTZBNkFcdTZBNjRcdTZBNTBcdTZBNEZcdTZBNTRcdTZBNkZcdTZBNjlcdTZBNjBcdTZBM0NcdTZBNUVcdTZBNTZcdTZBNTVcdTZBNERcdTZBNEVcdTZBNDZcdTZCNTVcdTZCNTRcdTZCNTZcdTZCQTdcdTZCQUFcdTZCQUJcdTZCQzhcdTZCQzdcdTZDMDRcdTZDMDNcdTZDMDZcdTZGQURcdTZGQ0JcdTZGQTNcdTZGQzdcdTZGQkNcdTZGQ0VcdTZGQzhcdTZGNUVcdTZGQzRcdTZGQkRcdTZGOUVcdTZGQ0FcdTZGQThcdTcwMDRcdTZGQTVcdTZGQUVcdTZGQkFcdTZGQUNcdTZGQUFcdTZGQ0ZcdTZGQkZcdTZGQjhcIl0sXG5bXCJlYTQwXCIsXCJcdTZGQTJcdTZGQzlcdTZGQUJcdTZGQ0RcdTZGQUZcdTZGQjJcdTZGQjBcdTcxQzVcdTcxQzJcdTcxQkZcdTcxQjhcdTcxRDZcdTcxQzBcdTcxQzFcdTcxQ0JcdTcxRDRcdTcxQ0FcdTcxQzdcdTcxQ0ZcdTcxQkRcdTcxRDhcdTcxQkNcdTcxQzZcdTcxREFcdTcxREJcdTcyOURcdTcyOUVcdTczNjlcdTczNjZcdTczNjdcdTczNkNcdTczNjVcdTczNkJcdTczNkFcdTc0N0ZcdTc0OUFcdTc0QTBcdTc0OTRcdTc0OTJcdTc0OTVcdTc0QTFcdTc1MEJcdTc1ODBcdTc2MkZcdTc2MkRcdTc2MzFcdTc2M0RcdTc2MzNcdTc2M0NcdTc2MzVcdTc2MzJcdTc2MzBcdTc2QkJcdTc2RTZcdTc3OUFcdTc3OURcdTc3QTFcdTc3OUNcdTc3OUJcdTc3QTJcdTc3QTNcdTc3OTVcdTc3OTlcIl0sXG5bXCJlYWExXCIsXCJcdTc3OTdcdTc4RERcdTc4RTlcdTc4RTVcdTc4RUFcdTc4REVcdTc4RTNcdTc4REJcdTc4RTFcdTc4RTJcdTc4RURcdTc4REZcdTc4RTBcdTc5QTRcdTdBNDRcdTdBNDhcdTdBNDdcdTdBQjZcdTdBQjhcdTdBQjVcdTdBQjFcdTdBQjdcdTdCREVcdTdCRTNcdTdCRTdcdTdCRERcdTdCRDVcdTdCRTVcdTdCREFcdTdCRThcdTdCRjlcdTdCRDRcdTdCRUFcdTdCRTJcdTdCRENcdTdCRUJcdTdCRDhcdTdCREZcdTdDRDJcdTdDRDRcdTdDRDdcdTdDRDBcdTdDRDFcdTdFMTJcdTdFMjFcdTdFMTdcdTdFMENcdTdFMUZcdTdFMjBcdTdFMTNcdTdFMEVcdTdFMUNcdTdFMTVcdTdFMUFcdTdFMjJcdTdFMEJcdTdFMEZcdTdFMTZcdTdFMERcdTdFMTRcdTdFMjVcdTdFMjRcdTdGNDNcdTdGN0JcdTdGN0NcdTdGN0FcdTdGQjFcdTdGRUZcdTgwMkFcdTgwMjlcdTgwNkNcdTgxQjFcdTgxQTZcdTgxQUVcdTgxQjlcdTgxQjVcdTgxQUJcdTgxQjBcdTgxQUNcdTgxQjRcdTgxQjJcdTgxQjdcdTgxQTdcdTgxRjJcdTgyNTVcdTgyNTZcdTgyNTdcdTg1NTZcdTg1NDVcdTg1NkJcdTg1NERcdTg1NTNcdTg1NjFcdTg1NThcIl0sXG5bXCJlYjQwXCIsXCJcdTg1NDBcdTg1NDZcdTg1NjRcdTg1NDFcdTg1NjJcdTg1NDRcdTg1NTFcdTg1NDdcdTg1NjNcdTg1M0VcdTg1NUJcdTg1NzFcdTg1NEVcdTg1NkVcdTg1NzVcdTg1NTVcdTg1NjdcdTg1NjBcdTg1OENcdTg1NjZcdTg1NURcdTg1NTRcdTg1NjVcdTg1NkNcdTg2NjNcdTg2NjVcdTg2NjRcdTg3OUJcdTg3OEZcdTg3OTdcdTg3OTNcdTg3OTJcdTg3ODhcdTg3ODFcdTg3OTZcdTg3OThcdTg3NzlcdTg3ODdcdTg3QTNcdTg3ODVcdTg3OTBcdTg3OTFcdTg3OURcdTg3ODRcdTg3OTRcdTg3OUNcdTg3OUFcdTg3ODlcdTg5MUVcdTg5MjZcdTg5MzBcdTg5MkRcdTg5MkVcdTg5MjdcdTg5MzFcdTg5MjJcdTg5MjlcdTg5MjNcdTg5MkZcdTg5MkNcdTg5MUZcdTg5RjFcdThBRTBcIl0sXG5bXCJlYmExXCIsXCJcdThBRTJcdThBRjJcdThBRjRcdThBRjVcdThBRERcdThCMTRcdThBRTRcdThBREZcdThBRjBcdThBQzhcdThBREVcdThBRTFcdThBRThcdThBRkZcdThBRUZcdThBRkJcdThDOTFcdThDOTJcdThDOTBcdThDRjVcdThDRUVcdThDRjFcdThDRjBcdThDRjNcdThENkNcdThENkVcdThEQTVcdThEQTdcdThFMzNcdThFM0VcdThFMzhcdThFNDBcdThFNDVcdThFMzZcdThFM0NcdThFM0RcdThFNDFcdThFMzBcdThFM0ZcdThFQkRcdThGMzZcdThGMkVcdThGMzVcdThGMzJcdThGMzlcdThGMzdcdThGMzRcdTkwNzZcdTkwNzlcdTkwN0JcdTkwODZcdTkwRkFcdTkxMzNcdTkxMzVcdTkxMzZcdTkxOTNcdTkxOTBcdTkxOTFcdTkxOERcdTkxOEZcdTkzMjdcdTkzMUVcdTkzMDhcdTkzMUZcdTkzMDZcdTkzMEZcdTkzN0FcdTkzMzhcdTkzM0NcdTkzMUJcdTkzMjNcdTkzMTJcdTkzMDFcdTkzNDZcdTkzMkRcdTkzMEVcdTkzMERcdTkyQ0JcdTkzMURcdTkyRkFcdTkzMjVcdTkzMTNcdTkyRjlcdTkyRjdcdTkzMzRcdTkzMDJcdTkzMjRcdTkyRkZcdTkzMjlcdTkzMzlcdTkzMzVcdTkzMkFcdTkzMTRcdTkzMENcIl0sXG5bXCJlYzQwXCIsXCJcdTkzMEJcdTkyRkVcdTkzMDlcdTkzMDBcdTkyRkJcdTkzMTZcdTk1QkNcdTk1Q0RcdTk1QkVcdTk1QjlcdTk1QkFcdTk1QjZcdTk1QkZcdTk1QjVcdTk1QkRcdTk2QTlcdTk2RDRcdTk3MEJcdTk3MTJcdTk3MTBcdTk3OTlcdTk3OTdcdTk3OTRcdTk3RjBcdTk3RjhcdTk4MzVcdTk4MkZcdTk4MzJcdTk5MjRcdTk5MUZcdTk5MjdcdTk5MjlcdTk5OUVcdTk5RUVcdTk5RUNcdTk5RTVcdTk5RTRcdTk5RjBcdTk5RTNcdTk5RUFcdTk5RTlcdTk5RTdcdTlBQjlcdTlBQkZcdTlBQjRcdTlBQkJcdTlBRjZcdTlBRkFcdTlBRjlcdTlBRjdcdTlCMzNcdTlCODBcdTlCODVcdTlCODdcdTlCN0NcdTlCN0VcdTlCN0JcdTlCODJcdTlCOTNcdTlCOTJcdTlCOTBcdTlCN0FcdTlCOTVcIl0sXG5bXCJlY2ExXCIsXCJcdTlCN0RcdTlCODhcdTlEMjVcdTlEMTdcdTlEMjBcdTlEMUVcdTlEMTRcdTlEMjlcdTlEMURcdTlEMThcdTlEMjJcdTlEMTBcdTlEMTlcdTlEMUZcdTlFODhcdTlFODZcdTlFODdcdTlFQUVcdTlFQURcdTlFRDVcdTlFRDZcdTlFRkFcdTlGMTJcdTlGM0RcdTUxMjZcdTUxMjVcdTUxMjJcdTUxMjRcdTUxMjBcdTUxMjlcdTUyRjRcdTU2OTNcdTU2OENcdTU2OERcdTU2ODZcdTU2ODRcdTU2ODNcdTU2N0VcdTU2ODJcdTU2N0ZcdTU2ODFcdTU4RDZcdTU4RDRcdTU4Q0ZcdTU4RDJcdTVCMkRcdTVCMjVcdTVCMzJcdTVCMjNcdTVCMkNcdTVCMjdcdTVCMjZcdTVCMkZcdTVCMkVcdTVCN0JcdTVCRjFcdTVCRjJcdTVEQjdcdTVFNkNcdTVFNkFcdTVGQkVcdTVGQkJcdTYxQzNcdTYxQjVcdTYxQkNcdTYxRTdcdTYxRTBcdTYxRTVcdTYxRTRcdTYxRThcdTYxREVcdTY0RUZcdTY0RTlcdTY0RTNcdTY0RUJcdTY0RTRcdTY0RThcdTY1ODFcdTY1ODBcdTY1QjZcdTY1REFcdTY2RDJcdTZBOERcdTZBOTZcdTZBODFcdTZBQTVcdTZBODlcdTZBOUZcdTZBOUJcdTZBQTFcdTZBOUVcdTZBODdcdTZBOTNcdTZBOEVcIl0sXG5bXCJlZDQwXCIsXCJcdTZBOTVcdTZBODNcdTZBQThcdTZBQTRcdTZBOTFcdTZBN0ZcdTZBQTZcdTZBOUFcdTZBODVcdTZBOENcdTZBOTJcdTZCNUJcdTZCQURcdTZDMDlcdTZGQ0NcdTZGQTlcdTZGRjRcdTZGRDRcdTZGRTNcdTZGRENcdTZGRURcdTZGRTdcdTZGRTZcdTZGREVcdTZGRjJcdTZGRERcdTZGRTJcdTZGRThcdTcxRTFcdTcxRjFcdTcxRThcdTcxRjJcdTcxRTRcdTcxRjBcdTcxRTJcdTczNzNcdTczNkVcdTczNkZcdTc0OTdcdTc0QjJcdTc0QUJcdTc0OTBcdTc0QUFcdTc0QURcdTc0QjFcdTc0QTVcdTc0QUZcdTc1MTBcdTc1MTFcdTc1MTJcdTc1MEZcdTc1ODRcdTc2NDNcdTc2NDhcdTc2NDlcdTc2NDdcdTc2QTRcdTc2RTlcdTc3QjVcdTc3QUJcdTc3QjJcdTc3QjdcdTc3QjZcIl0sXG5bXCJlZGExXCIsXCJcdTc3QjRcdTc3QjFcdTc3QThcdTc3RjBcdTc4RjNcdTc4RkRcdTc5MDJcdTc4RkJcdTc4RkNcdTc4RjJcdTc5MDVcdTc4RjlcdTc4RkVcdTc5MDRcdTc5QUJcdTc5QThcdTdBNUNcdTdBNUJcdTdBNTZcdTdBNThcdTdBNTRcdTdBNUFcdTdBQkVcdTdBQzBcdTdBQzFcdTdDMDVcdTdDMEZcdTdCRjJcdTdDMDBcdTdCRkZcdTdCRkJcdTdDMEVcdTdCRjRcdTdDMEJcdTdCRjNcdTdDMDJcdTdDMDlcdTdDMDNcdTdDMDFcdTdCRjhcdTdCRkRcdTdDMDZcdTdCRjBcdTdCRjFcdTdDMTBcdTdDMEFcdTdDRThcdTdFMkRcdTdFM0NcdTdFNDJcdTdFMzNcdTk4NDhcdTdFMzhcdTdFMkFcdTdFNDlcdTdFNDBcdTdFNDdcdTdFMjlcdTdFNENcdTdFMzBcdTdFM0JcdTdFMzZcdTdFNDRcdTdFM0FcdTdGNDVcdTdGN0ZcdTdGN0VcdTdGN0RcdTdGRjRcdTdGRjJcdTgwMkNcdTgxQkJcdTgxQzRcdTgxQ0NcdTgxQ0FcdTgxQzVcdTgxQzdcdTgxQkNcdTgxRTlcdTgyNUJcdTgyNUFcdTgyNUNcdTg1ODNcdTg1ODBcdTg1OEZcdTg1QTdcdTg1OTVcdTg1QTBcdTg1OEJcdTg1QTNcdTg1N0JcdTg1QTRcdTg1OUFcdTg1OUVcIl0sXG5bXCJlZTQwXCIsXCJcdTg1NzdcdTg1N0NcdTg1ODlcdTg1QTFcdTg1N0FcdTg1NzhcdTg1NTdcdTg1OEVcdTg1OTZcdTg1ODZcdTg1OERcdTg1OTlcdTg1OURcdTg1ODFcdTg1QTJcdTg1ODJcdTg1ODhcdTg1ODVcdTg1NzlcdTg1NzZcdTg1OThcdTg1OTBcdTg1OUZcdTg2NjhcdTg3QkVcdTg3QUFcdTg3QURcdTg3QzVcdTg3QjBcdTg3QUNcdTg3QjlcdTg3QjVcdTg3QkNcdTg3QUVcdTg3QzlcdTg3QzNcdTg3QzJcdTg3Q0NcdTg3QjdcdTg3QUZcdTg3QzRcdTg3Q0FcdTg3QjRcdTg3QjZcdTg3QkZcdTg3QjhcdTg3QkRcdTg3REVcdTg3QjJcdTg5MzVcdTg5MzNcdTg5M0NcdTg5M0VcdTg5NDFcdTg5NTJcdTg5MzdcdTg5NDJcdTg5QURcdTg5QUZcdTg5QUVcdTg5RjJcdTg5RjNcdThCMUVcIl0sXG5bXCJlZWExXCIsXCJcdThCMThcdThCMTZcdThCMTFcdThCMDVcdThCMEJcdThCMjJcdThCMEZcdThCMTJcdThCMTVcdThCMDdcdThCMERcdThCMDhcdThCMDZcdThCMUNcdThCMTNcdThCMUFcdThDNEZcdThDNzBcdThDNzJcdThDNzFcdThDNkZcdThDOTVcdThDOTRcdThDRjlcdThENkZcdThFNEVcdThFNERcdThFNTNcdThFNTBcdThFNENcdThFNDdcdThGNDNcdThGNDBcdTkwODVcdTkwN0VcdTkxMzhcdTkxOUFcdTkxQTJcdTkxOUJcdTkxOTlcdTkxOUZcdTkxQTFcdTkxOURcdTkxQTBcdTkzQTFcdTkzODNcdTkzQUZcdTkzNjRcdTkzNTZcdTkzNDdcdTkzN0NcdTkzNThcdTkzNUNcdTkzNzZcdTkzNDlcdTkzNTBcdTkzNTFcdTkzNjBcdTkzNkRcdTkzOEZcdTkzNENcdTkzNkFcdTkzNzlcdTkzNTdcdTkzNTVcdTkzNTJcdTkzNEZcdTkzNzFcdTkzNzdcdTkzN0JcdTkzNjFcdTkzNUVcdTkzNjNcdTkzNjdcdTkzODBcdTkzNEVcdTkzNTlcdTk1QzdcdTk1QzBcdTk1QzlcdTk1QzNcdTk1QzVcdTk1QjdcdTk2QUVcdTk2QjBcdTk2QUNcdTk3MjBcdTk3MUZcdTk3MThcdTk3MURcdTk3MTlcdTk3OUFcdTk3QTFcdTk3OUNcIl0sXG5bXCJlZjQwXCIsXCJcdTk3OUVcdTk3OURcdTk3RDVcdTk3RDRcdTk3RjFcdTk4NDFcdTk4NDRcdTk4NEFcdTk4NDlcdTk4NDVcdTk4NDNcdTk5MjVcdTk5MkJcdTk5MkNcdTk5MkFcdTk5MzNcdTk5MzJcdTk5MkZcdTk5MkRcdTk5MzFcdTk5MzBcdTk5OThcdTk5QTNcdTk5QTFcdTlBMDJcdTk5RkFcdTk5RjRcdTk5RjdcdTk5RjlcdTk5RjhcdTk5RjZcdTk5RkJcdTk5RkRcdTk5RkVcdTk5RkNcdTlBMDNcdTlBQkVcdTlBRkVcdTlBRkRcdTlCMDFcdTlBRkNcdTlCNDhcdTlCOUFcdTlCQThcdTlCOUVcdTlCOUJcdTlCQTZcdTlCQTFcdTlCQTVcdTlCQTRcdTlCODZcdTlCQTJcdTlCQTBcdTlCQUZcdTlEMzNcdTlENDFcdTlENjdcdTlEMzZcdTlEMkVcdTlEMkZcdTlEMzFcdTlEMzhcdTlEMzBcIl0sXG5bXCJlZmExXCIsXCJcdTlENDVcdTlENDJcdTlENDNcdTlEM0VcdTlEMzdcdTlENDBcdTlEM0RcdTdGRjVcdTlEMkRcdTlFOEFcdTlFODlcdTlFOERcdTlFQjBcdTlFQzhcdTlFREFcdTlFRkJcdTlFRkZcdTlGMjRcdTlGMjNcdTlGMjJcdTlGNTRcdTlGQTBcdTUxMzFcdTUxMkRcdTUxMkVcdTU2OThcdTU2OUNcdTU2OTdcdTU2OUFcdTU2OURcdTU2OTlcdTU5NzBcdTVCM0NcdTVDNjlcdTVDNkFcdTVEQzBcdTVFNkRcdTVFNkVcdTYxRDhcdTYxREZcdTYxRURcdTYxRUVcdTYxRjFcdTYxRUFcdTYxRjBcdTYxRUJcdTYxRDZcdTYxRTlcdTY0RkZcdTY1MDRcdTY0RkRcdTY0RjhcdTY1MDFcdTY1MDNcdTY0RkNcdTY1OTRcdTY1REJcdTY2REFcdTY2REJcdTY2RDhcdTZBQzVcdTZBQjlcdTZBQkRcdTZBRTFcdTZBQzZcdTZBQkFcdTZBQjZcdTZBQjdcdTZBQzdcdTZBQjRcdTZBQURcdTZCNUVcdTZCQzlcdTZDMEJcdTcwMDdcdTcwMENcdTcwMERcdTcwMDFcdTcwMDVcdTcwMTRcdTcwMEVcdTZGRkZcdTcwMDBcdTZGRkJcdTcwMjZcdTZGRkNcdTZGRjdcdTcwMEFcdTcyMDFcdTcxRkZcdTcxRjlcdTcyMDNcdTcxRkRcdTczNzZcIl0sXG5bXCJmMDQwXCIsXCJcdTc0QjhcdTc0QzBcdTc0QjVcdTc0QzFcdTc0QkVcdTc0QjZcdTc0QkJcdTc0QzJcdTc1MTRcdTc1MTNcdTc2NUNcdTc2NjRcdTc2NTlcdTc2NTBcdTc2NTNcdTc2NTdcdTc2NUFcdTc2QTZcdTc2QkRcdTc2RUNcdTc3QzJcdTc3QkFcdTc4RkZcdTc5MENcdTc5MTNcdTc5MTRcdTc5MDlcdTc5MTBcdTc5MTJcdTc5MTFcdTc5QURcdTc5QUNcdTdBNUZcdTdDMUNcdTdDMjlcdTdDMTlcdTdDMjBcdTdDMUZcdTdDMkRcdTdDMURcdTdDMjZcdTdDMjhcdTdDMjJcdTdDMjVcdTdDMzBcdTdFNUNcdTdFNTBcdTdFNTZcdTdFNjNcdTdFNThcdTdFNjJcdTdFNUZcdTdFNTFcdTdFNjBcdTdFNTdcdTdFNTNcdTdGQjVcdTdGQjNcdTdGRjdcdTdGRjhcdTgwNzVcdTgxRDFcdTgxRDJcIl0sXG5bXCJmMGExXCIsXCJcdTgxRDBcdTgyNUZcdTgyNUVcdTg1QjRcdTg1QzZcdTg1QzBcdTg1QzNcdTg1QzJcdTg1QjNcdTg1QjVcdTg1QkRcdTg1QzdcdTg1QzRcdTg1QkZcdTg1Q0JcdTg1Q0VcdTg1QzhcdTg1QzVcdTg1QjFcdTg1QjZcdTg1RDJcdTg2MjRcdTg1QjhcdTg1QjdcdTg1QkVcdTg2NjlcdTg3RTdcdTg3RTZcdTg3RTJcdTg3REJcdTg3RUJcdTg3RUFcdTg3RTVcdTg3REZcdTg3RjNcdTg3RTRcdTg3RDRcdTg3RENcdTg3RDNcdTg3RURcdTg3RDhcdTg3RTNcdTg3QTRcdTg3RDdcdTg3RDlcdTg4MDFcdTg3RjRcdTg3RThcdTg3RERcdTg5NTNcdTg5NEJcdTg5NEZcdTg5NENcdTg5NDZcdTg5NTBcdTg5NTFcdTg5NDlcdThCMkFcdThCMjdcdThCMjNcdThCMzNcdThCMzBcdThCMzVcdThCNDdcdThCMkZcdThCM0NcdThCM0VcdThCMzFcdThCMjVcdThCMzdcdThCMjZcdThCMzZcdThCMkVcdThCMjRcdThCM0JcdThCM0RcdThCM0FcdThDNDJcdThDNzVcdThDOTlcdThDOThcdThDOTdcdThDRkVcdThEMDRcdThEMDJcdThEMDBcdThFNUNcdThFNjJcdThFNjBcdThFNTdcdThFNTZcdThFNUVcdThFNjVcdThFNjdcIl0sXG5bXCJmMTQwXCIsXCJcdThFNUJcdThFNUFcdThFNjFcdThFNURcdThFNjlcdThFNTRcdThGNDZcdThGNDdcdThGNDhcdThGNEJcdTkxMjhcdTkxM0FcdTkxM0JcdTkxM0VcdTkxQThcdTkxQTVcdTkxQTdcdTkxQUZcdTkxQUFcdTkzQjVcdTkzOENcdTkzOTJcdTkzQjdcdTkzOUJcdTkzOURcdTkzODlcdTkzQTdcdTkzOEVcdTkzQUFcdTkzOUVcdTkzQTZcdTkzOTVcdTkzODhcdTkzOTlcdTkzOUZcdTkzOERcdTkzQjFcdTkzOTFcdTkzQjJcdTkzQTRcdTkzQThcdTkzQjRcdTkzQTNcdTkzQTVcdTk1RDJcdTk1RDNcdTk1RDFcdTk2QjNcdTk2RDdcdTk2REFcdTVEQzJcdTk2REZcdTk2RDhcdTk2RERcdTk3MjNcdTk3MjJcdTk3MjVcdTk3QUNcdTk3QUVcdTk3QThcdTk3QUJcdTk3QTRcdTk3QUFcIl0sXG5bXCJmMWExXCIsXCJcdTk3QTJcdTk3QTVcdTk3RDdcdTk3RDlcdTk3RDZcdTk3RDhcdTk3RkFcdTk4NTBcdTk4NTFcdTk4NTJcdTk4QjhcdTk5NDFcdTk5M0NcdTk5M0FcdTlBMEZcdTlBMEJcdTlBMDlcdTlBMERcdTlBMDRcdTlBMTFcdTlBMEFcdTlBMDVcdTlBMDdcdTlBMDZcdTlBQzBcdTlBRENcdTlCMDhcdTlCMDRcdTlCMDVcdTlCMjlcdTlCMzVcdTlCNEFcdTlCNENcdTlCNEJcdTlCQzdcdTlCQzZcdTlCQzNcdTlCQkZcdTlCQzFcdTlCQjVcdTlCQjhcdTlCRDNcdTlCQjZcdTlCQzRcdTlCQjlcdTlCQkRcdTlENUNcdTlENTNcdTlENEZcdTlENEFcdTlENUJcdTlENEJcdTlENTlcdTlENTZcdTlENENcdTlENTdcdTlENTJcdTlENTRcdTlENUZcdTlENThcdTlENUFcdTlFOEVcdTlFOENcdTlFREZcdTlGMDFcdTlGMDBcdTlGMTZcdTlGMjVcdTlGMkJcdTlGMkFcdTlGMjlcdTlGMjhcdTlGNENcdTlGNTVcdTUxMzRcdTUxMzVcdTUyOTZcdTUyRjdcdTUzQjRcdTU2QUJcdTU2QURcdTU2QTZcdTU2QTdcdTU2QUFcdTU2QUNcdTU4REFcdTU4RERcdTU4REJcdTU5MTJcdTVCM0RcdTVCM0VcdTVCM0ZcdTVEQzNcdTVFNzBcIl0sXG5bXCJmMjQwXCIsXCJcdTVGQkZcdTYxRkJcdTY1MDdcdTY1MTBcdTY1MERcdTY1MDlcdTY1MENcdTY1MEVcdTY1ODRcdTY1REVcdTY1RERcdTY2REVcdTZBRTdcdTZBRTBcdTZBQ0NcdTZBRDFcdTZBRDlcdTZBQ0JcdTZBREZcdTZBRENcdTZBRDBcdTZBRUJcdTZBQ0ZcdTZBQ0RcdTZBREVcdTZCNjBcdTZCQjBcdTZDMENcdTcwMTlcdTcwMjdcdTcwMjBcdTcwMTZcdTcwMkJcdTcwMjFcdTcwMjJcdTcwMjNcdTcwMjlcdTcwMTdcdTcwMjRcdTcwMUNcdTcwMkFcdTcyMENcdTcyMEFcdTcyMDdcdTcyMDJcdTcyMDVcdTcyQTVcdTcyQTZcdTcyQTRcdTcyQTNcdTcyQTFcdTc0Q0JcdTc0QzVcdTc0QjdcdTc0QzNcdTc1MTZcdTc2NjBcdTc3QzlcdTc3Q0FcdTc3QzRcdTc3RjFcdTc5MURcdTc5MUJcIl0sXG5bXCJmMmExXCIsXCJcdTc5MjFcdTc5MUNcdTc5MTdcdTc5MUVcdTc5QjBcdTdBNjdcdTdBNjhcdTdDMzNcdTdDM0NcdTdDMzlcdTdDMkNcdTdDM0JcdTdDRUNcdTdDRUFcdTdFNzZcdTdFNzVcdTdFNzhcdTdFNzBcdTdFNzdcdTdFNkZcdTdFN0FcdTdFNzJcdTdFNzRcdTdFNjhcdTdGNEJcdTdGNEFcdTdGODNcdTdGODZcdTdGQjdcdTdGRkRcdTdGRkVcdTgwNzhcdTgxRDdcdTgxRDVcdTgyNjRcdTgyNjFcdTgyNjNcdTg1RUJcdTg1RjFcdTg1RURcdTg1RDlcdTg1RTFcdTg1RThcdTg1REFcdTg1RDdcdTg1RUNcdTg1RjJcdTg1RjhcdTg1RDhcdTg1REZcdTg1RTNcdTg1RENcdTg1RDFcdTg1RjBcdTg1RTZcdTg1RUZcdTg1REVcdTg1RTJcdTg4MDBcdTg3RkFcdTg4MDNcdTg3RjZcdTg3RjdcdTg4MDlcdTg4MENcdTg4MEJcdTg4MDZcdTg3RkNcdTg4MDhcdTg3RkZcdTg4MEFcdTg4MDJcdTg5NjJcdTg5NUFcdTg5NUJcdTg5NTdcdTg5NjFcdTg5NUNcdTg5NThcdTg5NURcdTg5NTlcdTg5ODhcdTg5QjdcdTg5QjZcdTg5RjZcdThCNTBcdThCNDhcdThCNEFcdThCNDBcdThCNTNcdThCNTZcdThCNTRcdThCNEJcdThCNTVcIl0sXG5bXCJmMzQwXCIsXCJcdThCNTFcdThCNDJcdThCNTJcdThCNTdcdThDNDNcdThDNzdcdThDNzZcdThDOUFcdThEMDZcdThEMDdcdThEMDlcdThEQUNcdThEQUFcdThEQURcdThEQUJcdThFNkRcdThFNzhcdThFNzNcdThFNkFcdThFNkZcdThFN0JcdThFQzJcdThGNTJcdThGNTFcdThGNEZcdThGNTBcdThGNTNcdThGQjRcdTkxNDBcdTkxM0ZcdTkxQjBcdTkxQURcdTkzREVcdTkzQzdcdTkzQ0ZcdTkzQzJcdTkzREFcdTkzRDBcdTkzRjlcdTkzRUNcdTkzQ0NcdTkzRDlcdTkzQTlcdTkzRTZcdTkzQ0FcdTkzRDRcdTkzRUVcdTkzRTNcdTkzRDVcdTkzQzRcdTkzQ0VcdTkzQzBcdTkzRDJcdTkzRTdcdTk1N0RcdTk1REFcdTk1REJcdTk2RTFcdTk3MjlcdTk3MkJcdTk3MkNcdTk3MjhcdTk3MjZcIl0sXG5bXCJmM2ExXCIsXCJcdTk3QjNcdTk3QjdcdTk3QjZcdTk3RERcdTk3REVcdTk3REZcdTk4NUNcdTk4NTlcdTk4NURcdTk4NTdcdTk4QkZcdTk4QkRcdTk4QkJcdTk4QkVcdTk5NDhcdTk5NDdcdTk5NDNcdTk5QTZcdTk5QTdcdTlBMUFcdTlBMTVcdTlBMjVcdTlBMURcdTlBMjRcdTlBMUJcdTlBMjJcdTlBMjBcdTlBMjdcdTlBMjNcdTlBMUVcdTlBMUNcdTlBMTRcdTlBQzJcdTlCMEJcdTlCMEFcdTlCMEVcdTlCMENcdTlCMzdcdTlCRUFcdTlCRUJcdTlCRTBcdTlCREVcdTlCRTRcdTlCRTZcdTlCRTJcdTlCRjBcdTlCRDRcdTlCRDdcdTlCRUNcdTlCRENcdTlCRDlcdTlCRTVcdTlCRDVcdTlCRTFcdTlCREFcdTlENzdcdTlEODFcdTlEOEFcdTlEODRcdTlEODhcdTlENzFcdTlEODBcdTlENzhcdTlEODZcdTlEOEJcdTlEOENcdTlEN0RcdTlENkJcdTlENzRcdTlENzVcdTlENzBcdTlENjlcdTlEODVcdTlENzNcdTlEN0JcdTlEODJcdTlENkZcdTlENzlcdTlEN0ZcdTlEODdcdTlENjhcdTlFOTRcdTlFOTFcdTlFQzBcdTlFRkNcdTlGMkRcdTlGNDBcdTlGNDFcdTlGNERcdTlGNTZcdTlGNTdcdTlGNThcdTUzMzdcdTU2QjJcIl0sXG5bXCJmNDQwXCIsXCJcdTU2QjVcdTU2QjNcdTU4RTNcdTVCNDVcdTVEQzZcdTVEQzdcdTVFRUVcdTVFRUZcdTVGQzBcdTVGQzFcdTYxRjlcdTY1MTdcdTY1MTZcdTY1MTVcdTY1MTNcdTY1REZcdTY2RThcdTY2RTNcdTY2RTRcdTZBRjNcdTZBRjBcdTZBRUFcdTZBRThcdTZBRjlcdTZBRjFcdTZBRUVcdTZBRUZcdTcwM0NcdTcwMzVcdTcwMkZcdTcwMzdcdTcwMzRcdTcwMzFcdTcwNDJcdTcwMzhcdTcwM0ZcdTcwM0FcdTcwMzlcdTcwNDBcdTcwM0JcdTcwMzNcdTcwNDFcdTcyMTNcdTcyMTRcdTcyQThcdTczN0RcdTczN0NcdTc0QkFcdTc2QUJcdTc2QUFcdTc2QkVcdTc2RURcdTc3Q0NcdTc3Q0VcdTc3Q0ZcdTc3Q0RcdTc3RjJcdTc5MjVcdTc5MjNcdTc5MjdcdTc5MjhcdTc5MjRcdTc5MjlcIl0sXG5bXCJmNGExXCIsXCJcdTc5QjJcdTdBNkVcdTdBNkNcdTdBNkRcdTdBRjdcdTdDNDlcdTdDNDhcdTdDNEFcdTdDNDdcdTdDNDVcdTdDRUVcdTdFN0JcdTdFN0VcdTdFODFcdTdFODBcdTdGQkFcdTdGRkZcdTgwNzlcdTgxREJcdTgxRDlcdTgyMEJcdTgyNjhcdTgyNjlcdTg2MjJcdTg1RkZcdTg2MDFcdTg1RkVcdTg2MUJcdTg2MDBcdTg1RjZcdTg2MDRcdTg2MDlcdTg2MDVcdTg2MENcdTg1RkRcdTg4MTlcdTg4MTBcdTg4MTFcdTg4MTdcdTg4MTNcdTg4MTZcdTg5NjNcdTg5NjZcdTg5QjlcdTg5RjdcdThCNjBcdThCNkFcdThCNURcdThCNjhcdThCNjNcdThCNjVcdThCNjdcdThCNkRcdThEQUVcdThFODZcdThFODhcdThFODRcdThGNTlcdThGNTZcdThGNTdcdThGNTVcdThGNThcdThGNUFcdTkwOERcdTkxNDNcdTkxNDFcdTkxQjdcdTkxQjVcdTkxQjJcdTkxQjNcdTk0MEJcdTk0MTNcdTkzRkJcdTk0MjBcdTk0MEZcdTk0MTRcdTkzRkVcdTk0MTVcdTk0MTBcdTk0MjhcdTk0MTlcdTk0MERcdTkzRjVcdTk0MDBcdTkzRjdcdTk0MDdcdTk0MEVcdTk0MTZcdTk0MTJcdTkzRkFcdTk0MDlcdTkzRjhcdTk0MEFcdTkzRkZcIl0sXG5bXCJmNTQwXCIsXCJcdTkzRkNcdTk0MENcdTkzRjZcdTk0MTFcdTk0MDZcdTk1REVcdTk1RTBcdTk1REZcdTk3MkVcdTk3MkZcdTk3QjlcdTk3QkJcdTk3RkRcdTk3RkVcdTk4NjBcdTk4NjJcdTk4NjNcdTk4NUZcdTk4QzFcdTk4QzJcdTk5NTBcdTk5NEVcdTk5NTlcdTk5NENcdTk5NEJcdTk5NTNcdTlBMzJcdTlBMzRcdTlBMzFcdTlBMkNcdTlBMkFcdTlBMzZcdTlBMjlcdTlBMkVcdTlBMzhcdTlBMkRcdTlBQzdcdTlBQ0FcdTlBQzZcdTlCMTBcdTlCMTJcdTlCMTFcdTlDMEJcdTlDMDhcdTlCRjdcdTlDMDVcdTlDMTJcdTlCRjhcdTlDNDBcdTlDMDdcdTlDMEVcdTlDMDZcdTlDMTdcdTlDMTRcdTlDMDlcdTlEOUZcdTlEOTlcdTlEQTRcdTlEOURcdTlEOTJcdTlEOThcdTlEOTBcdTlEOUJcIl0sXG5bXCJmNWExXCIsXCJcdTlEQTBcdTlEOTRcdTlEOUNcdTlEQUFcdTlEOTdcdTlEQTFcdTlEOUFcdTlEQTJcdTlEQThcdTlEOUVcdTlEQTNcdTlEQkZcdTlEQTlcdTlEOTZcdTlEQTZcdTlEQTdcdTlFOTlcdTlFOUJcdTlFOUFcdTlFRTVcdTlFRTRcdTlFRTdcdTlFRTZcdTlGMzBcdTlGMkVcdTlGNUJcdTlGNjBcdTlGNUVcdTlGNURcdTlGNTlcdTlGOTFcdTUxM0FcdTUxMzlcdTUyOThcdTUyOTdcdTU2QzNcdTU2QkRcdTU2QkVcdTVCNDhcdTVCNDdcdTVEQ0JcdTVEQ0ZcdTVFRjFcdTYxRkRcdTY1MUJcdTZCMDJcdTZBRkNcdTZCMDNcdTZBRjhcdTZCMDBcdTcwNDNcdTcwNDRcdTcwNEFcdTcwNDhcdTcwNDlcdTcwNDVcdTcwNDZcdTcyMURcdTcyMUFcdTcyMTlcdTczN0VcdTc1MTdcdTc2NkFcdTc3RDBcdTc5MkRcdTc5MzFcdTc5MkZcdTdDNTRcdTdDNTNcdTdDRjJcdTdFOEFcdTdFODdcdTdFODhcdTdFOEJcdTdFODZcdTdFOERcdTdGNERcdTdGQkJcdTgwMzBcdTgxRERcdTg2MThcdTg2MkFcdTg2MjZcdTg2MUZcdTg2MjNcdTg2MUNcdTg2MTlcdTg2MjdcdTg2MkVcdTg2MjFcdTg2MjBcdTg2MjlcdTg2MUVcdTg2MjVcIl0sXG5bXCJmNjQwXCIsXCJcdTg4MjlcdTg4MURcdTg4MUJcdTg4MjBcdTg4MjRcdTg4MUNcdTg4MkJcdTg4NEFcdTg5NkRcdTg5NjlcdTg5NkVcdTg5NkJcdTg5RkFcdThCNzlcdThCNzhcdThCNDVcdThCN0FcdThCN0JcdThEMTBcdThEMTRcdThEQUZcdThFOEVcdThFOENcdThGNUVcdThGNUJcdThGNURcdTkxNDZcdTkxNDRcdTkxNDVcdTkxQjlcdTk0M0ZcdTk0M0JcdTk0MzZcdTk0MjlcdTk0M0RcdTk0M0NcdTk0MzBcdTk0MzlcdTk0MkFcdTk0MzdcdTk0MkNcdTk0NDBcdTk0MzFcdTk1RTVcdTk1RTRcdTk1RTNcdTk3MzVcdTk3M0FcdTk3QkZcdTk3RTFcdTk4NjRcdTk4QzlcdTk4QzZcdTk4QzBcdTk5NThcdTk5NTZcdTlBMzlcdTlBM0RcdTlBNDZcdTlBNDRcdTlBNDJcdTlBNDFcdTlBM0FcIl0sXG5bXCJmNmExXCIsXCJcdTlBM0ZcdTlBQ0RcdTlCMTVcdTlCMTdcdTlCMThcdTlCMTZcdTlCM0FcdTlCNTJcdTlDMkJcdTlDMURcdTlDMUNcdTlDMkNcdTlDMjNcdTlDMjhcdTlDMjlcdTlDMjRcdTlDMjFcdTlEQjdcdTlEQjZcdTlEQkNcdTlEQzFcdTlEQzdcdTlEQ0FcdTlEQ0ZcdTlEQkVcdTlEQzVcdTlEQzNcdTlEQkJcdTlEQjVcdTlEQ0VcdTlEQjlcdTlEQkFcdTlEQUNcdTlEQzhcdTlEQjFcdTlEQURcdTlEQ0NcdTlEQjNcdTlEQ0RcdTlEQjJcdTlFN0FcdTlFOUNcdTlFRUJcdTlFRUVcdTlFRURcdTlGMUJcdTlGMThcdTlGMUFcdTlGMzFcdTlGNEVcdTlGNjVcdTlGNjRcdTlGOTJcdTRFQjlcdTU2QzZcdTU2QzVcdTU2Q0JcdTU5NzFcdTVCNEJcdTVCNENcdTVERDVcdTVERDFcdTVFRjJcdTY1MjFcdTY1MjBcdTY1MjZcdTY1MjJcdTZCMEJcdTZCMDhcdTZCMDlcdTZDMERcdTcwNTVcdTcwNTZcdTcwNTdcdTcwNTJcdTcyMUVcdTcyMUZcdTcyQTlcdTczN0ZcdTc0RDhcdTc0RDVcdTc0RDlcdTc0RDdcdTc2NkRcdTc2QURcdTc5MzVcdTc5QjRcdTdBNzBcdTdBNzFcdTdDNTdcdTdDNUNcdTdDNTlcdTdDNUJcdTdDNUFcIl0sXG5bXCJmNzQwXCIsXCJcdTdDRjRcdTdDRjFcdTdFOTFcdTdGNEZcdTdGODdcdTgxREVcdTgyNkJcdTg2MzRcdTg2MzVcdTg2MzNcdTg2MkNcdTg2MzJcdTg2MzZcdTg4MkNcdTg4MjhcdTg4MjZcdTg4MkFcdTg4MjVcdTg5NzFcdTg5QkZcdTg5QkVcdTg5RkJcdThCN0VcdThCODRcdThCODJcdThCODZcdThCODVcdThCN0ZcdThEMTVcdThFOTVcdThFOTRcdThFOUFcdThFOTJcdThFOTBcdThFOTZcdThFOTdcdThGNjBcdThGNjJcdTkxNDdcdTk0NENcdTk0NTBcdTk0NEFcdTk0NEJcdTk0NEZcdTk0NDdcdTk0NDVcdTk0NDhcdTk0NDlcdTk0NDZcdTk3M0ZcdTk3RTNcdTk4NkFcdTk4NjlcdTk4Q0JcdTk5NTRcdTk5NUJcdTlBNEVcdTlBNTNcdTlBNTRcdTlBNENcdTlBNEZcdTlBNDhcdTlBNEFcIl0sXG5bXCJmN2ExXCIsXCJcdTlBNDlcdTlBNTJcdTlBNTBcdTlBRDBcdTlCMTlcdTlCMkJcdTlCM0JcdTlCNTZcdTlCNTVcdTlDNDZcdTlDNDhcdTlDM0ZcdTlDNDRcdTlDMzlcdTlDMzNcdTlDNDFcdTlDM0NcdTlDMzdcdTlDMzRcdTlDMzJcdTlDM0RcdTlDMzZcdTlEREJcdTlERDJcdTlEREVcdTlEREFcdTlEQ0JcdTlERDBcdTlERENcdTlERDFcdTlEREZcdTlERTlcdTlERDlcdTlERDhcdTlERDZcdTlERjVcdTlERDVcdTlERERcdTlFQjZcdTlFRjBcdTlGMzVcdTlGMzNcdTlGMzJcdTlGNDJcdTlGNkJcdTlGOTVcdTlGQTJcdTUxM0RcdTUyOTlcdTU4RThcdTU4RTdcdTU5NzJcdTVCNERcdTVERDhcdTg4MkZcdTVGNEZcdTYyMDFcdTYyMDNcdTYyMDRcdTY1MjlcdTY1MjVcdTY1OTZcdTY2RUJcdTZCMTFcdTZCMTJcdTZCMEZcdTZCQ0FcdTcwNUJcdTcwNUFcdTcyMjJcdTczODJcdTczODFcdTczODNcdTc2NzBcdTc3RDRcdTdDNjdcdTdDNjZcdTdFOTVcdTgyNkNcdTg2M0FcdTg2NDBcdTg2MzlcdTg2M0NcdTg2MzFcdTg2M0JcdTg2M0VcdTg4MzBcdTg4MzJcdTg4MkVcdTg4MzNcdTg5NzZcdTg5NzRcdTg5NzNcdTg5RkVcIl0sXG5bXCJmODQwXCIsXCJcdThCOENcdThCOEVcdThCOEJcdThCODhcdThDNDVcdThEMTlcdThFOThcdThGNjRcdThGNjNcdTkxQkNcdTk0NjJcdTk0NTVcdTk0NURcdTk0NTdcdTk0NUVcdTk3QzRcdTk3QzVcdTk4MDBcdTlBNTZcdTlBNTlcdTlCMUVcdTlCMUZcdTlCMjBcdTlDNTJcdTlDNThcdTlDNTBcdTlDNEFcdTlDNERcdTlDNEJcdTlDNTVcdTlDNTlcdTlDNENcdTlDNEVcdTlERkJcdTlERjdcdTlERUZcdTlERTNcdTlERUJcdTlERjhcdTlERTRcdTlERjZcdTlERTFcdTlERUVcdTlERTZcdTlERjJcdTlERjBcdTlERTJcdTlERUNcdTlERjRcdTlERjNcdTlERThcdTlERURcdTlFQzJcdTlFRDBcdTlFRjJcdTlFRjNcdTlGMDZcdTlGMUNcdTlGMzhcdTlGMzdcdTlGMzZcdTlGNDNcdTlGNEZcIl0sXG5bXCJmOGExXCIsXCJcdTlGNzFcdTlGNzBcdTlGNkVcdTlGNkZcdTU2RDNcdTU2Q0RcdTVCNEVcdTVDNkRcdTY1MkRcdTY2RURcdTY2RUVcdTZCMTNcdTcwNUZcdTcwNjFcdTcwNURcdTcwNjBcdTcyMjNcdTc0REJcdTc0RTVcdTc3RDVcdTc5MzhcdTc5QjdcdTc5QjZcdTdDNkFcdTdFOTdcdTdGODlcdTgyNkRcdTg2NDNcdTg4MzhcdTg4MzdcdTg4MzVcdTg4NEJcdThCOTRcdThCOTVcdThFOUVcdThFOUZcdThFQTBcdThFOURcdTkxQkVcdTkxQkRcdTkxQzJcdTk0NkJcdTk0NjhcdTk0NjlcdTk2RTVcdTk3NDZcdTk3NDNcdTk3NDdcdTk3QzdcdTk3RTVcdTlBNUVcdTlBRDVcdTlCNTlcdTlDNjNcdTlDNjdcdTlDNjZcdTlDNjJcdTlDNUVcdTlDNjBcdTlFMDJcdTlERkVcdTlFMDdcdTlFMDNcdTlFMDZcdTlFMDVcdTlFMDBcdTlFMDFcdTlFMDlcdTlERkZcdTlERkRcdTlFMDRcdTlFQTBcdTlGMUVcdTlGNDZcdTlGNzRcdTlGNzVcdTlGNzZcdTU2RDRcdTY1MkVcdTY1QjhcdTZCMThcdTZCMTlcdTZCMTdcdTZCMUFcdTcwNjJcdTcyMjZcdTcyQUFcdTc3RDhcdTc3RDlcdTc5MzlcdTdDNjlcdTdDNkJcdTdDRjZcdTdFOUFcIl0sXG5bXCJmOTQwXCIsXCJcdTdFOThcdTdFOUJcdTdFOTlcdTgxRTBcdTgxRTFcdTg2NDZcdTg2NDdcdTg2NDhcdTg5NzlcdTg5N0FcdTg5N0NcdTg5N0JcdTg5RkZcdThCOThcdThCOTlcdThFQTVcdThFQTRcdThFQTNcdTk0NkVcdTk0NkRcdTk0NkZcdTk0NzFcdTk0NzNcdTk3NDlcdTk4NzJcdTk5NUZcdTlDNjhcdTlDNkVcdTlDNkRcdTlFMEJcdTlFMERcdTlFMTBcdTlFMEZcdTlFMTJcdTlFMTFcdTlFQTFcdTlFRjVcdTlGMDlcdTlGNDdcdTlGNzhcdTlGN0JcdTlGN0FcdTlGNzlcdTU3MUVcdTcwNjZcdTdDNkZcdTg4M0NcdThEQjJcdThFQTZcdTkxQzNcdTk0NzRcdTk0NzhcdTk0NzZcdTk0NzVcdTlBNjBcdTlDNzRcdTlDNzNcdTlDNzFcdTlDNzVcdTlFMTRcdTlFMTNcdTlFRjZcdTlGMEFcIl0sXG5bXCJmOWExXCIsXCJcdTlGQTRcdTcwNjhcdTcwNjVcdTdDRjdcdTg2NkFcdTg4M0VcdTg4M0RcdTg4M0ZcdThCOUVcdThDOUNcdThFQTlcdThFQzlcdTk3NEJcdTk4NzNcdTk4NzRcdTk4Q0NcdTk5NjFcdTk5QUJcdTlBNjRcdTlBNjZcdTlBNjdcdTlCMjRcdTlFMTVcdTlFMTdcdTlGNDhcdTYyMDdcdTZCMUVcdTcyMjdcdTg2NENcdThFQThcdTk0ODJcdTk0ODBcdTk0ODFcdTlBNjlcdTlBNjhcdTlCMkVcdTlFMTlcdTcyMjlcdTg2NEJcdThCOUZcdTk0ODNcdTlDNzlcdTlFQjdcdTc2NzVcdTlBNkJcdTlDN0FcdTlFMURcdTcwNjlcdTcwNkFcdTlFQTRcdTlGN0VcdTlGNDlcdTlGOThcdTc4ODFcdTkyQjlcdTg4Q0ZcdTU4QkJcdTYwNTJcdTdDQTdcdTVBRkFcdTI1NTRcdTI1NjZcdTI1NTdcdTI1NjBcdTI1NkNcdTI1NjNcdTI1NUFcdTI1NjlcdTI1NURcdTI1NTJcdTI1NjRcdTI1NTVcdTI1NUVcdTI1NkFcdTI1NjFcdTI1NThcdTI1NjdcdTI1NUJcdTI1NTNcdTI1NjVcdTI1NTZcdTI1NUZcdTI1NkJcdTI1NjJcdTI1NTlcdTI1NjhcdTI1NUNcdTI1NTFcdTI1NTBcdTI1NkRcdTI1NkVcdTI1NzBcdTI1NkZcdTI1OTNcIl1cbl1cbiIsICJbXG5bXCI4NzQwXCIsXCJcdTQzRjBcdTRDMzJcdTQ2MDNcdTQ1QTZcdTQ1NzhcdUQ4NUNcdURFNjdcdTRENzdcdTQ1QjNcdUQ4NUZcdURDQjFcdTRDRTJcdUQ4NUZcdURDQzVcdTNCOTVcdTQ3MzZcdTQ3NDRcdTRDNDdcdTRDNDBcdUQ4NTBcdURFQkZcdUQ4NERcdURFMTdcdUQ4NUNcdURGNTJcdUQ4NUJcdURFOEJcdUQ4NUNcdURDRDJcdTRDNTdcdUQ4NjhcdURGNTFcdTQ3NEZcdTQ1REFcdTRDODVcdUQ4NUZcdURDNkNcdTREMDdcdTRBQTRcdTQ2QTFcdUQ4NUFcdURGMjNcdTcyMjVcdUQ4NTZcdURFNTRcdUQ4NDZcdURFNjNcdUQ4NEZcdURFMDZcdUQ4NEZcdURGNjFcdTY2NERcdTU2RkJcIl0sXG5bXCI4NzY3XCIsXCJcdTdEOTVcdTU5MURcdUQ4NjJcdURGQjlcdTNERjRcdTk3MzRcdUQ4NUVcdURGRUZcdTVCREJcdUQ4NDdcdURENUVcdTVBQTRcdTM2MjVcdUQ4NjdcdURFQjBcdTVBRDFcdTVCQjdcdTVDRkNcdTY3NkVcdTg1OTNcdUQ4NjZcdURENDVcdTc0NjFcdTc0OURcdTM4NzVcdUQ4NDdcdURENTNcdUQ4NERcdURFOUVcdUQ4NThcdURDMjFcdTNFRUNcIl0sXG5bXCI4N2ExXCIsXCJcdUQ4NTZcdURDREVcdTNBRjVcdTdBRkNcdTlGOTdcdUQ4NTBcdURENjFcdUQ4NjJcdUREMERcdUQ4NENcdURERUFcdUQ4NDJcdURFOEFcdUQ4NENcdURFNUVcdTQzMEFcdTg0ODRcdTlGOTZcdTk0MkZcdTQ5MzBcdTg2MTNcdTU4OTZcdTk3NEFcdTkyMThcdTc5RDBcdTdBMzJcdTY2NjBcdTZBMjlcdTg4OURcdTc0NENcdTdCQzVcdTY3ODJcdTdBMkNcdTUyNEZcdTkwNDZcdTM0RTZcdTczQzRcdUQ4NTdcdUREQjlcdTc0QzZcdTlGQzdcdTU3QjNcdTQ5MkZcdTU0NENcdTQxMzFcdUQ4NERcdURFOEVcdTU4MThcdTdBNzJcdUQ4NUVcdURGNjVcdThCOEZcdTQ2QUVcdUQ4NUJcdURFODhcdTQxODFcdUQ4NTdcdUREOTlcdTdCQUVcdUQ4NDlcdURDQkNcdTlGQzhcdUQ4NDlcdURDQzFcdUQ4NDlcdURDQzlcdUQ4NDlcdURDQ0NcdTlGQzlcdTg1MDRcdUQ4NERcdUREQkJcdTQwQjRcdTlGQ0FcdTQ0RTFcdUQ4NkJcdURERkZcdTYyQzFcdTcwNkVcdTlGQ0JcIl0sXG5bXCI4ODQwXCIsXCJcdTMxQzBcIiw0LFwiXHVEODQwXHVERDBDXHUzMUM1XHVEODQwXHVEQ0QxXHVEODQwXHVEQ0NEXHUzMUM2XHUzMUM3XHVEODQwXHVEQ0NCXHVEODQ3XHVERkU4XHUzMUM4XHVEODQwXHVEQ0NBXHUzMUM5XHUzMUNBXHUzMUNCXHUzMUNDXHVEODQwXHVERDBFXHUzMUNEXHUzMUNFXHUwMTAwXHUwMEMxXHUwMUNEXHUwMEMwXHUwMTEyXHUwMEM5XHUwMTFBXHUwMEM4XHUwMTRDXHUwMEQzXHUwMUQxXHUwMEQyXHUwRkZGXHUwMENBXHUwMzA0XHUxRUJFXHUwRkZGXHUwMENBXHUwMzBDXHUxRUMwXHUwMENBXHUwMTAxXHUwMEUxXHUwMUNFXHUwMEUwXHUwMjUxXHUwMTEzXHUwMEU5XHUwMTFCXHUwMEU4XHUwMTJCXHUwMEVEXHUwMUQwXHUwMEVDXHUwMTREXHUwMEYzXHUwMUQyXHUwMEYyXHUwMTZCXHUwMEZBXHUwMUQ0XHUwMEY5XHUwMUQ2XHUwMUQ4XHUwMURBXCJdLFxuW1wiODhhMVwiLFwiXHUwMURDXHUwMEZDXHUwRkZGXHUwMEVBXHUwMzA0XHUxRUJGXHUwRkZGXHUwMEVBXHUwMzBDXHUxRUMxXHUwMEVBXHUwMjYxXHUyM0RBXHUyM0RCXCJdLFxuW1wiODk0MFwiLFwiXHVEODY4XHVERkE5XHVEODQ0XHVERDQ1XCJdLFxuW1wiODk0M1wiLFwiXHU2NTBBXCJdLFxuW1wiODk0NlwiLFwiXHU0RTNEXHU2RUREXHU5RDRFXHU5MURGXCJdLFxuW1wiODk0Y1wiLFwiXHVEODVEXHVERjM1XHU2NDkxXHU0RjFBXHU0RjI4XHU0RkE4XHU1MTU2XHU1MTc0XHU1MTlDXHU1MUU0XHU1MkExXHU1MkE4XHU1MzNCXHU1MzRFXHU1M0QxXHU1M0Q4XHU1NkUyXHU1OEYwXHU1OTA0XHU1OTA3XHU1OTMyXHU1OTM0XHU1QjY2XHU1QjlFXHU1QjlGXHU1QzlBXHU1RTg2XHU2MDNCXHU2NTg5XHU2N0ZFXHU2ODA0XHU2ODY1XHU2RDRFXHU3MEJDXHU3NTM1XHU3RUE0XHU3RUFDXHU3RUJBXHU3RUM3XHU3RUNGXHU3RURGXHU3RjA2XHU3RjM3XHU4MjdBXHU4MkNGXHU4MzZGXHU4OUM2XHU4QkJFXHU4QkUyXHU4RjY2XHU4RjY3XHU4RjZFXCJdLFxuW1wiODlhMVwiLFwiXHU3NDExXHU3Q0ZDXHU3RENEXHU2OTQ2XHU3QUM5XHU1MjI3XCJdLFxuW1wiODlhYlwiLFwiXHU5MThDXHU3OEI4XHU5MTVFXHU4MEJDXCJdLFxuW1wiODliMFwiLFwiXHU4RDBCXHU4MEY2XHVEODQyXHVEREU3XCJdLFxuW1wiODliNVwiLFwiXHU4MDlGXHU5RUM3XHU0Q0NEXHU5REM5XHU5RTBDXHU0QzNFXHVEODY3XHVEREY2XHVEODVDXHVEQzBFXHU5RTBBXHVEODY4XHVERDMzXHUzNUMxXCJdLFxuW1wiODljMVwiLFwiXHU2RTlBXHU4MjNFXHU3NTE5XCJdLFxuW1wiODljNVwiLFwiXHU0OTExXHU5QTZDXHU5QThGXHU5Rjk5XHU3OTg3XHVEODYxXHVEQzZDXHVEODQ3XHVERENBXHVEODQxXHVEREQwXHVEODRBXHVERUU2XHU0RTI0XHU0RTgxXHU0RTgwXHU0RTg3XHU0RUJGXHU0RUVCXHU0RjM3XHUzNDRDXHU0RkJEXHUzRTQ4XHU1MDAzXHU1MDg4XHUzNDdEXHUzNDkzXHUzNEE1XHU1MTg2XHU1OTA1XHU1MURCXHU1MUZDXHU1MjA1XHU0RTg5XHU1Mjc5XHU1MjkwXHU1MzI3XHUzNUM3XHU1M0E5XHUzNTUxXHU1M0IwXHUzNTUzXHU1M0MyXHU1NDIzXHUzNTZEXHUzNTcyXHUzNjgxXHU1NDkzXHU1NEEzXHU1NEI0XHU1NEI5XHU1NEQwXHU1NEVGXHU1NTE4XHU1NTIzXHU1NTI4XHUzNTk4XHU1NTNGXHUzNUE1XHUzNUJGXHU1NUQ3XHUzNUM1XCJdLFxuW1wiOGE0MFwiLFwiXHVEODVGXHVERDg0XHU1NTI1XCJdLFxuW1wiOGE0M1wiLFwiXHVEODQzXHVEQzQyXHVEODQzXHVERDE1XHVEODU0XHVERDJCXHU1NTkwXHVEODRCXHVEQ0M2XHUzOUVDXHVEODQwXHVERjQxXHU4RTQ2XHVEODUzXHVEREI4XHVEODY1XHVEQ0U1XHU0MDUzXHVEODYwXHVEQ0JFXHU3NzdBXHVEODRCXHVEQzM4XHUzQTM0XHU0N0Q1XHVEODYwXHVERDVEXHVEODVBXHVEREYyXHVEODUzXHVEREVBXHU2NEREXHVEODQzXHVERDdDXHVEODQzXHVERkI0XHVEODQzXHVEQ0Q1XHVEODQ0XHVEQ0Y0XHU2NDhEXHU4RTdFXHVEODQzXHVERTk2XHVEODQzXHVEQzBCXHVEODQzXHVERjY0XHVEODRCXHVEQ0E5XHVEODYwXHVERTU2XHVEODUxXHVEQ0QzXCJdLFxuW1wiOGE2NFwiLFwiXHVEODQzXHVERDQ2XHVEODY2XHVERTREXHVEODYwXHVEQ0U5XHU0N0Y0XHVEODUzXHVERUE3XHVEODRCXHVEQ0MyXHU5QUIyXHUzQTY3XHVEODY1XHVEREY0XHUzRkVEXHUzNTA2XHVEODU0XHVERUM3XHVEODY1XHVERkQ0XHVEODVFXHVEQ0M4XHVEODRCXHVERDQ0XHU5RDZFXHU5ODE1XCJdLFxuW1wiOGE3NlwiLFwiXHU0M0Q5XHVEODU4XHVEQ0E1XHU2NEI0XHU1NEUzXHVEODRCXHVERDRDXHVEODRBXHVERkNBXHVEODQ0XHVEQzc3XHUzOUZCXHVEODQ0XHVEQzZGXCJdLFxuW1wiOGFhMVwiLFwiXHVEODU5XHVERURBXHVEODU5XHVERjE2XHVEODVFXHVEREEwXHU2NEVBXHVEODU0XHVEQzUyXHVEODQzXHVEQzQzXHU4RTY4XHVEODQ4XHVEREExXHVEODYyXHVERjRDXHVEODQxXHVERjMxXCJdLFxuW1wiOGFhY1wiLFwiXHU0ODBCXHVEODQwXHVEREE5XHUzRkZBXHU1ODczXHVEODRCXHVERDhEXCJdLFxuW1wiOGFiMlwiLFwiXHVEODUxXHVEREM4XHVEODQxXHVEQ0ZDXHVEODU4XHVEQzk3XHVEODQzXHVERjRDXHVEODQzXHVERDk2XHU1NTc5XHU0MEJCXHU0M0JBXCJdLFxuW1wiOGFiYlwiLFwiXHU0QUI0XHVEODRBXHVERTY2XHVEODQ0XHVEQzlEXHU4MUFBXHU5OEY1XHVEODQzXHVERDlDXHU2Mzc5XHUzOUZFXHVEODQ5XHVERjc1XHU4REMwXHU1NkExXHU2NDdDXHUzRTQzXCJdLFxuW1wiOGFjOVwiLFwiXHVEODY5XHVERTAxXHVEODQzXHVERTA5XHVEODRBXHVERUNGXHVEODRCXHVEQ0M5XCJdLFxuW1wiOGFjZVwiLFwiXHVEODQ0XHVEQ0M4XHVEODRFXHVEREMyXHUzOTkyXHUzQTA2XHVEODYwXHVERTlCXHUzNTc4XHVEODU3XHVERTQ5XHVEODQ4XHVEQ0M3XHU1NjUyXHVEODQzXHVERjMxXHVEODRCXHVEQ0IyXHVEODY1XHVERjIwXHUzNEJDXHU2QzNEXHVEODUzXHVERTNCXCJdLFxuW1wiOGFkZlwiLFwiXHVEODVEXHVERDc0XHVEODRCXHVERThCXHVEODQ4XHVERTA4XHVEODY5XHVERTVCXHVEODYzXHVEQ0NEXHVEODQzXHVERTdBXHVEODQzXHVEQzM0XHVEODVBXHVEQzFDXHU3RjkzXHVEODQ0XHVEQ0NGXHVEODRBXHVEQzAzXHVEODRBXHVERDM5XHUzNUZCXHVEODU0XHVEREUzXHVEODQzXHVERThDXHVEODQzXHVERjhEXHVEODQzXHVERUFBXHUzRjkzXHVEODQzXHVERjMwXHVEODQzXHVERDQ3XHVEODQ0XHVERDRGXHVEODQzXHVERTRDXCJdLFxuW1wiOGFmNlwiLFwiXHVEODQzXHVERUFCXHVEODQyXHVERkE5XHVEODQzXHVERDQ4XHVEODQ0XHVEQ0MwXHVEODQ0XHVERDNEXHUzRkY5XHVEODQ5XHVERTk2XHU2NDMyXHVEODQzXHVERkFEXCJdLFxuW1wiOGI0MFwiLFwiXHVEODRDXHVERkY0XHVEODVEXHVERTM5XHVEODRBXHVERkNFXHVEODQzXHVERDdFXHVEODQzXHVERDdGXHVEODRCXHVEQzUxXHVEODRCXHVEQzU1XHUzQTE4XHVEODQzXHVERTk4XHVEODQ0XHVEQ0M3XHVEODQzXHVERjJFXHVEODY5XHVERTMyXHVEODVBXHVERjUwXHVEODYzXHVEQ0QyXHVEODYzXHVERDk5XHVEODYzXHVEQ0NBXHU5NUFBXHU1NENDXHU4MkM0XHU1NUI5XCJdLFxuW1wiOGI1NVwiLFwiXHVEODY3XHVERUMzXHU5QzI2XHU5QUI2XHVEODVEXHVERjVFXHVEODRCXHVEREVFXHU3MTQwXHU4MTZEXHU4MEVDXHU1QzFDXHVEODU5XHVERDcyXHU4MTM0XHUzNzk3XHU1MzVGXHVEODYwXHVEQ0JEXHU5MUI2XHVEODQzXHVERUZBXHVEODQzXHVERTBGXHVEODQzXHVERTc3XHVEODQzXHVERUZCXHUzNUREXHVEODUzXHVEREVCXHUzNjA5XHVEODQzXHVEQ0Q2XHU1NkFGXHVEODQ5XHVERkI1XHVEODQ0XHVEQ0M5XHVEODQzXHVERTEwXHVEODQzXHVERTc4XHVEODQ0XHVEQzc4XHVEODQ0XHVERDQ4XHVEODYwXHVERTA3XHVEODQ1XHVEQzU1XHVEODQzXHVERTc5XHVEODUzXHVERTUwXHVEODRCXHVEREE0XHU1QTU0XHVEODQ0XHVEQzFEXHVEODQ0XHVEQzFFXHVEODQ0XHVEQ0Y1XHVEODQ0XHVEQ0Y2XHU1NzlDXHVEODQzXHVERTExXCJdLFxuW1wiOGJhMVwiLFwiXHVEODVEXHVERTk0XHVEODYwXHVERUNEXHVEODQzXHVERkI1XHVEODQzXHVERTdCXHVEODU0XHVERDdFXHUzNzAzXHVEODQzXHVERkI2XHVEODQ0XHVERDgwXHVEODU0XHVERUQ4XHVEODY4XHVERUJEXHVEODUyXHVERERBXHVEODQ2XHVEQzNBXHVEODUwXHVERDc3XHVEODYwXHVERTdDXHU1ODk5XHU1MjY4XHUzNjFBXHVEODU1XHVERjNEXHU3QkIyXHU1QjY4XHU0ODAwXHU0QjJDXHU5RjI3XHU0OUU3XHU5QzFGXHU5QjhEXHVEODU2XHVERjc0XHVEODRDXHVERDNEXHU1NUZCXHUzNUYyXHU1Njg5XHU0RTI4XHU1OTAyXHVEODQ2XHVERkMxXHVEODdFXHVEQzc4XHU5NzUxXHVEODQwXHVEQzg2XHU0RTVCXHU0RUJCXHUzNTNFXHU1QzIzXHU1RjUxXHU1RkM0XHUzOEZBXHU2MjRDXHU2NTM1XHU2QjdBXHU2QzM1XHU2QzNBXHU3MDZDXHU3MjJCXHU0RTJDXHU3MkFEXHVEODUyXHVEQ0U5XHU3RjUyXHU3OTNCXHU3Q0Y5XHU3RjUzXHVEODU4XHVERTZBXHUzNEMxXCJdLFxuW1wiOGJkZVwiLFwiXHVEODU4XHVERjRCXHU4MDAyXHU4MDgwXHVEODU5XHVERTEyXHVEODVBXHVERDUxXHU1MzVEXHU4ODY0XHU4OUMxXHVEODVFXHVEQ0IyXHU4QkEwXHU4RDFEXHU5NDg1XHU5NTc4XHU5NTdGXHU5NUU4XHVEODYzXHVERTBGXHU5N0U2XHU5ODc1XHU5OENFXHU5OERFXHU5OTYzXHVEODY2XHVEQzEwXHU5QzdDXHU5RTFGXHU5RUM0XHU2QjZGXHVGOTA3XHU0RTM3XHVEODQwXHVEQzg3XHU5NjFEXHU2MjM3XHU5NEEyXCJdLFxuW1wiOGM0MFwiLFwiXHU1MDNCXHU2REZFXHVEODY3XHVEQzczXHU5RkE2XHUzREM5XHU4ODhGXHVEODUwXHVERDRFXHU3MDc3XHU1Q0Y1XHU0QjIwXHVEODU0XHVERENEXHUzNTU5XHVEODU3XHVERDMwXHU2MTIyXHVEODYyXHVERTMyXHU4RkE3XHU5MUY2XHU3MTkxXHU2NzE5XHU3M0JBXHVEODRDXHVERTgxXHVEODY4XHVERDA3XHUzQzhCXHVEODQ2XHVERDgwXHU0QjEwXHU3OEU0XHU3NDAyXHU1MUFFXHVEODYxXHVERjBGXHU0MDA5XHU2QTYzXHVEODY4XHVERUJBXHU0MjIzXHU4NjBGXHVEODQyXHVERTZGXHU3QTJBXHVEODY2XHVERDQ3XHVEODYyXHVERUVBXHU5NzU1XHU3MDREXHU1MzI0XHVEODQ4XHVEQzdFXHU5M0Y0XHU3NkQ5XHVEODYyXHVEREUzXHU5RkE3XHU3N0REXHU0RUEzXHU0RkYwXHU1MEJDXHU0RTJGXHU0RjE3XHU5RkE4XHU1NDM0XHU3RDhCXHU1ODkyXHU1OEQwXHVEODQ3XHVEREI2XHU1RTkyXHU1RTk5XHU1RkMyXHVEODQ5XHVERjEyXHU2NThCXCJdLFxuW1wiOGNhMVwiLFwiXHVEODRDXHVERkY5XHU2OTE5XHU2QTQzXHVEODRGXHVEQzYzXHU2Q0ZGXCJdLFxuW1wiOGNhN1wiLFwiXHU3MjAwXHVEODUxXHVERDA1XHU3MzhDXHUzRURCXHVEODUyXHVERTEzXHU1QjE1XHU3NEI5XHU4QjgzXHVEODU3XHVEQ0E0XHVEODU1XHVERTk1XHU3QTkzXHU3QkVDXHU3Q0MzXHU3RTZDXHU4MkY4XHU4NTk3XHU5RkE5XHU4ODkwXHU5RkFBXHU4RUI5XHU5RkFCXHU4RkNGXHU4NTVGXHU5OUUwXHU5MjIxXHU5RkFDXHVEODYzXHVEREI5XHVEODQ1XHVEQzNGXHU0MDcxXHU0MkEyXHU1QTFBXCJdLFxuW1wiOGNjOVwiLFwiXHU5ODY4XHU2NzZCXHU0Mjc2XHU1NzNEXCJdLFxuW1wiOGNjZVwiLFwiXHU4NUQ2XHVEODUyXHVERDdCXHU4MkJGXHVEODVDXHVERDBEXHU0QzgxXHVEODVCXHVERDc0XHU1RDdCXHVEODVBXHVERjE1XHVEODVCXHVERkJFXHU5RkFEXHU5RkFFXHU1Qjk2XHU5RkFGXHU2NkU3XHU3RTVCXHU2RTU3XHU3OUNBXHUzRDg4XHU0NEMzXHVEODRDXHVERTU2XHVEODQ5XHVERjk2XHU0MzlBXHU0NTM2XCJdLFxuW1wiOGNlNlwiLFwiXHU1Q0Q1XHVEODRFXHVERjFBXHU4QUY5XHU1Qzc4XHUzRDEyXHVEODREXHVERDUxXHU1RDc4XHU5RkIyXHU3MTU3XHU0NTU4XHVEODUwXHVEQ0VDXHVEODQ3XHVERTIzXHU0Qzc3XHUzOTc4XHUzNDRBXHVEODQwXHVEREE0XHVEODVCXHVEQzQxXHU4QUNDXHU0RkI0XHVEODQwXHVERTM5XHU1OUJGXHU4MTZDXHU5ODU2XHVEODY2XHVEQ0ZBXHU1RjNCXCJdLFxuW1wiOGQ0MFwiLFwiXHVEODQyXHVERjlGXCJdLFxuW1wiOGQ0MlwiLFwiXHVEODQ4XHVEREMxXHVEODYyXHVERDZEXHU0MTAyXHU0NkJCXHVEODY0XHVEQzc5XHUzRjA3XHU5RkIzXHVEODY4XHVEREI1XHU0MEY4XHUzN0Q2XHU0NkY3XHVEODVCXHVEQzQ2XHU0MTdDXHVEODYxXHVERUIyXHVEODVDXHVERkZGXHU0NTZEXHUzOEQ0XHVEODU1XHVEQzlBXHU0NTYxXHU0NTFCXHU0RDg5XHU0QzdCXHU0RDc2XHU0NUVBXHUzRkM4XHVEODUyXHVERjBGXHUzNjYxXHU0NERFXHU0NEJEXHU0MUVEXHU1RDNFXHU1RDQ4XHU1RDU2XHUzREZDXHUzODBGXHU1REE0XHU1REI5XHUzODIwXHUzODM4XHU1RTQyXHU1RUJEXHU1RjI1XHU1RjgzXHUzOTA4XHUzOTE0XHUzOTNGXHUzOTREXHU2MEQ3XHU2MTNEXHU1Q0U1XHUzOTg5XHU2MUI3XHU2MUI5XHU2MUNGXHUzOUI4XHU2MjJDXHU2MjkwXHU2MkU1XHU2MzE4XHUzOUY4XHU1NkIxXCJdLFxuW1wiOGRhMVwiLFwiXHUzQTAzXHU2M0UyXHU2M0ZCXHU2NDA3XHU2NDVBXHUzQTRCXHU2NEMwXHU1RDE1XHU1NjIxXHU5RjlGXHUzQTk3XHU2NTg2XHUzQUJEXHU2NUZGXHU2NjUzXHUzQUYyXHU2NjkyXHUzQjIyXHU2NzE2XHUzQjQyXHU2N0E0XHU2ODAwXHUzQjU4XHU2ODRBXHU2ODg0XHUzQjcyXHUzQjcxXHUzQjdCXHU2OTA5XHU2OTQzXHU3MjVDXHU2OTY0XHU2OTlGXHU2OTg1XHUzQkJDXHU2OUQ2XHUzQkREXHU2QTY1XHU2QTc0XHU2QTcxXHU2QTgyXHUzQkVDXHU2QTk5XHUzQkYyXHU2QUFCXHU2QUI1XHU2QUQ0XHU2QUY2XHU2QjgxXHU2QkMxXHU2QkVBXHU2Qzc1XHU2Q0FBXHUzQ0NCXHU2RDAyXHU2RDA2XHU2RDI2XHU2RDgxXHUzQ0VGXHU2REE0XHU2REIxXHU2RTE1XHU2RTE4XHU2RTI5XHU2RTg2XHVEODYyXHVEREMwXHU2RUJCXHU2RUUyXHU2RURBXHU5RjdGXHU2RUU4XHU2RUU5XHU2RjI0XHU2RjM0XHUzRDQ2XHVEODRGXHVERjQxXHU2RjgxXHU2RkJFXHUzRDZBXHUzRDc1XHU3MUI3XHU1Qzk5XHUzRDhBXHU3MDJDXHUzRDkxXHU3MDUwXHU3MDU0XHU3MDZGXHU3MDdGXHU3MDg5XHVEODQwXHVERjI1XHU0M0MxXHUzNUYxXHVEODQzXHVERUQ4XCJdLFxuW1wiOGU0MFwiLFwiXHVEODRGXHVERUQ3XHU1N0JFXHVEODVCXHVERUQzXHU3MTNFXHVEODU1XHVERkUwXHUzNjRFXHU2OUEyXHVEODYyXHVERkU5XHU1Qjc0XHU3QTQ5XHVEODU2XHVEQ0UxXHVEODY1XHVEQ0Q5XHU3QTY1XHU3QTdEXHVEODU2XHVEREFDXHU3QUJCXHU3QUIwXHU3QUMyXHU3QUMzXHU3MUQxXHVEODU5XHVEQzhEXHU0MUNBXHU3QURBXHU3QUREXHU3QUVBXHU0MUVGXHU1NEIyXHVEODU3XHVEQzAxXHU3QjBCXHU3QjU1XHU3QjI5XHVEODU0XHVERjBFXHVEODU3XHVEQ0ZFXHU3QkEyXHU3QjZGXHU4MzlDXHVEODU2XHVERkI0XHVEODVCXHVEQzdGXHU3QkQwXHU4NDIxXHU3QjkyXHU3QkI4XHVEODU3XHVERDIwXHUzREFEXHVEODU3XHVEQzY1XHU4NDkyXHU3QkZBXHU3QzA2XHU3QzM1XHVEODU3XHVEQ0MxXHU3QzQ0XHU3QzgzXHVEODUyXHVEQzgyXHU3Q0E2XHU2NjdEXHVEODUxXHVERDc4XHU3Q0M5XHU3Q0M3XHU3Q0U2XHU3Qzc0XHU3Q0YzXHU3Q0Y1XHU3Q0NFXCJdLFxuW1wiOGVhMVwiLFwiXHU3RTY3XHU0NTFEXHVEODVCXHVERTQ0XHU3RDVEXHVEODVCXHVERUQ2XHU3NDhEXHU3RDg5XHU3REFCXHU3MTM1XHU3REIzXHU3REQyXHVEODUwXHVEQzU3XHVEODU4XHVEQzI5XHU3REU0XHUzRDEzXHU3REY1XHVEODQ1XHVERkY5XHU3REU1XHVEODYwXHVERjZEXHU3RTFEXHVEODU4XHVERDIxXHVEODU4XHVERDVBXHU3RTZFXHU3RTkyXHU0MzJCXHU5NDZDXHU3RTI3XHU3RjQwXHU3RjQxXHU3RjQ3XHU3OTM2XHVEODU4XHVERUQwXHU5OUUxXHU3Rjk3XHVEODU4XHVERjUxXHU3RkEzXHVEODQ1XHVERTYxXHVEODQwXHVEQzY4XHU0NTVDXHVEODREXHVERjY2XHU0NTAzXHVEODYwXHVERjNBXHU3RkZBXHVEODU5XHVEQzg5XHU4MDA1XHU4MDA4XHU4MDFEXHU4MDI4XHU4MDJGXHVEODY4XHVEQzg3XHVEODVCXHVEQ0MzXHU4MDNCXHU4MDNDXHU4MDYxXHVEODQ5XHVERjE0XHU0OTg5XHVEODU5XHVERTI2XHVEODRGXHVEREUzXHVEODU5XHVERUU4XHU2NzI1XHU4MEE3XHVEODYyXHVERTQ4XHU4MTA3XHU4MTFBXHU1OEIwXHVEODQ5XHVERUY2XHU2QzdGXHVEODU5XHVEQzk4XHVEODUzXHVERkI4XHU2NEU3XHVEODQ1XHVEQzhBXHU4MjE4XHVEODQ2XHVEQzVFXHU2QTUzXHVEODUyXHVERTY1XHVEODUyXHVERTk1XHU0NDdBXHU4MjI5XHVEODQyXHVERjBEXHVEODVBXHVERTUyXHVEODRGXHVERDdFXHU0RkY5XHVEODQ1XHVEQ0ZEXHU4NEUyXHU4MzYyXHVEODVBXHVERjBBXHVEODUyXHVEREE3XHVEODREXHVERDMwXHVEODQ1XHVERjczXHVEODRGXHVEREY4XHU4MkFBXHU2OTFCXHVEODdFXHVERDk0XHU0MURCXCJdLFxuW1wiOGY0MFwiLFwiXHU4NTRCXHU4MkQwXHU4MzFBXHVEODQzXHVERTE2XHVEODQ1XHVERkI0XHUzNkMxXHVEODRDXHVERDdEXHVEODREXHVERDVBXHU4MjdCXHU4MkUyXHU4MzE4XHVEODRGXHVERThCXHVEODVCXHVEREEzXHVEODVBXHVERjA1XHVEODVBXHVERjk3XHVEODREXHVERENFXHUzREJGXHU4MzFEXHU1NUVDXHU4Mzg1XHU0NTBCXHVEODVCXHVEREE1XHU4M0FDXHU4M0MxXHU4M0QzXHUzNDdFXHVEODVCXHVERUQ0XHU2QTU3XHU4NTVBXHUzNDk2XHVEODVCXHVERTQyXHVEODRCXHVERUVGXHU4NDU4XHVEODU2XHVERkU0XHU4NDcxXHUzREQzXHU0NEU0XHU2QUE3XHU4NDRBXHVEODRGXHVEQ0I1XHU3OTU4XHU4NEE4XHVEODVBXHVERjk2XHVEODVCXHVERTc3XHVEODVCXHVERTQzXHU4NERFXHU4NDBGXHU4MzkxXHU0NEEwXHU4NDkzXHU4NEU0XHVEODU3XHVEQzkxXHU0MjQwXHVEODU3XHVEQ0MwXHU0NTQzXHU4NTM0XHU1QUYyXHVEODVCXHVERTk5XHU0NTI3XHU4NTczXHU0NTE2XHU2N0JGXHU4NjE2XCJdLFxuW1wiOGZhMVwiLFwiXHVEODYxXHVERTI1XHVEODYxXHVERTNCXHU4NUMxXHVEODVDXHVEQzg4XHU4NjAyXHVEODQ1XHVERDgyXHVEODVDXHVEQ0NEXHVEODdFXHVEREIyXHU0NTZBXHU4NjI4XHUzNjQ4XHVEODQ2XHVEQ0EyXHU1M0Y3XHVEODVDXHVERjlBXHU4NjdFXHU4NzcxXHVEODY4XHVEQ0Y4XHU4N0VFXHVEODRCXHVEQzI3XHU4N0IxXHU4N0RBXHU4ODBGXHU1NjYxXHU4NjZDXHU2ODU2XHU0NjBGXHU4ODQ1XHU4ODQ2XHVEODVEXHVEREUwXHVEODRGXHVEREI5XHVEODVEXHVEREU0XHU4ODVFXHU4ODlDXHU0NjVCXHU4OEI0XHU4OEI1XHU2M0MxXHU4OEM1XHU3Nzc3XHVEODVEXHVERjBGXHU4OTg3XHU4OThBXHU4OUE2XHU4OUE5XHU4OUE3XHU4OUJDXHVEODYyXHVERTI1XHU4OUU3XHVEODVFXHVERDI0XHVEODVFXHVERUJEXHU4QTlDXHU3NzkzXHU5MUZFXHU4QTkwXHVEODVFXHVERTU5XHU3QUU5XHVEODVFXHVERjNBXHVEODRGXHVERjhGXHU0NzEzXHVEODVFXHVERjM4XHU3MTdDXHU4QjBDXHU4QjFGXHVEODU1XHVEQzMwXHVEODU1XHVERDY1XHU4QjNGXHU4QjRDXHU4QjREXHU4QUE5XHVEODUyXHVERTdBXHU4QjkwXHU4QjlCXHU4QUFGXHVEODQ1XHVERURGXHU0NjE1XHU4ODRGXHU4QzlCXHVEODVGXHVERDU0XHVEODVGXHVERDhGXHVEODdFXHVEREQ0XHUzNzI1XHVEODVGXHVERDUzXHU4Q0Q2XHVEODVGXHVERDk4XHVEODVGXHVEREJEXHU4RDEyXHU4RDAzXHVEODQ2XHVERDEwXHU4Q0RCXHU3MDVDXHU4RDExXHVEODUzXHVEQ0M5XHUzRUQwXHU4RDc3XCJdLFxuW1wiOTA0MFwiLFwiXHU4REE5XHVEODYwXHVEQzAyXHVEODQ0XHVEQzE0XHVEODUyXHVERDhBXHUzQjdDXHVEODYwXHVEREJDXHVEODVDXHVERDBDXHU3QUU3XHU4RUFEXHU4RUI2XHU4RUMzXHU5MkQ0XHU4RjE5XHU4RjJEXHVEODYwXHVERjY1XHVEODYxXHVEQzEyXHU4RkE1XHU5MzAzXHVEODY4XHVERTlGXHVEODQyXHVERTUwXHU4RkIzXHU0OTJBXHVEODYyXHVERERFXHVEODYxXHVERDNEXHVEODRGXHVEREJCXHU1RUY4XHVEODRDXHVERTYyXHU4RkY5XHVEODY4XHVEQzE0XHVEODYxXHVERUJDXHVEODYxXHVERDAxXHVEODQ4XHVERjI1XHUzOTgwXHVEODVCXHVERUQ3XHU5MDM3XHVEODYxXHVERDNDXHVEODVFXHVERUJFXHU5MDYxXHVEODYxXHVERDZDXHVEODYxXHVERTBCXHU5MEE4XHVEODYxXHVERjEzXHU5MEM0XHVEODYxXHVERUU2XHU5MEFFXHU5MEZEXHU5MTY3XHUzQUYwXHU5MUE5XHU5MUM0XHU3Q0FDXHVEODYyXHVERDMzXHVEODQ3XHVERTg5XHU5MjBFXHU2QzlGXHU5MjQxXHU5MjYyXHVEODU1XHVEREI5XHU5MkI5XHVEODYyXHVERUM2XHVEODRGXHVEQzlCXHVEODYyXHVERjBDXHVEODU1XHVERERCXCJdLFxuW1wiOTBhMVwiLFwiXHVEODQzXHVERDMxXHU5MzJDXHU5MzZCXHVEODYyXHVERUUxXHVEODYyXHVERkVCXHU3MDhGXHU1QUMzXHVEODYyXHVERUUyXHVEODYyXHVERUU1XHU0OTY1XHU5MjQ0XHVEODYyXHVERkVDXHVEODYzXHVEQzM5XHVEODYyXHVERkZGXHU5MzczXHU5NDVCXHU4RUJDXHU5NTg1XHU5NUE2XHU5NDI2XHU5NUEwXHU2RkY2XHU0MkI5XHVEODQ5XHVERTdBXHVEODYxXHVERUQ4XHVEODQ0XHVERTdDXHVEODRGXHVERTJFXHU0OURGXHU2QzFDXHU5NjdCXHU5Njk2XHU0MTZDXHU5NkEzXHVEODVCXHVERUQ1XHU2MURBXHU5NkI2XHU3OEY1XHVEODYyXHVERUUwXHU5NkJEXHU1M0NDXHU0OUExXHVEODVCXHVEQ0I4XHVEODQwXHVERTc0XHVEODU5XHVEQzEwXHVEODY0XHVEQ0FGXHVEODY0XHVEQ0U1XHVEODUyXHVERUQxXHVEODQ2XHVERDE1XHVEODRDXHVERjBBXHU5NzMxXHU4NjQyXHU5NzM2XHU0QTBGXHU0NTNEXHU0NTg1XHVEODUyXHVERUU5XHU3MDc1XHU1QjQxXHU5NzFCXHU5NzVDXHVEODY0XHVEREQ1XHU5NzU3XHU1QjRBXHVEODY0XHVEREVCXHU5NzVGXHU5NDI1XHU1MEQwXHVEODRDXHVEQ0I3XHVEODRDXHVEQ0JDXHU5Nzg5XHU5NzlGXHU5N0IxXHU5N0JFXHU5N0MwXHU5N0QyXHU5N0UwXHVEODU1XHVEQzZDXHU5N0VFXHU3NDFDXHVEODY1XHVEQzMzXHU5N0ZGXHU5N0Y1XHVEODY1XHVEQzFEXHVEODVFXHVERDdBXHU0QUQxXHU5ODM0XHU5ODMzXHU5ODRCXHU5ODY2XHUzQjBFXHVEODVDXHVERDc1XHUzRDUxXHVEODQxXHVERTMwXHVEODUwXHVERDVDXCJdLFxuW1wiOTE0MFwiLFwiXHVEODU1XHVERjA2XHU5OENBXHU5OEI3XHU5OEM4XHU5OEM3XHU0QUZGXHVEODVCXHVERDI3XHVEODQ1XHVERUQzXHU1NUIwXHU5OEUxXHU5OEU2XHU5OEVDXHU5Mzc4XHU5OTM5XHVEODUyXHVERTI5XHU0QjcyXHVEODY2XHVEQzU3XHVEODY2XHVERDA1XHU5OUY1XHU5QTBDXHU5QTNCXHU5QTEwXHU5QTU4XHVEODU1XHVERjI1XHUzNkM0XHVEODY0XHVEQ0IxXHVEODY2XHVERkQ1XHU5QUUwXHU5QUUyXHVEODY2XHVERjA1XHU5QUY0XHU0QzBFXHU5QjE0XHU5QjJEXHVEODYxXHVERTAwXHU1MDM0XHU5QjM0XHVEODVBXHVEREE4XHUzOEMzXHVEODRDXHVEQzdEXHU5QjUwXHU5QjQwXHVEODY3XHVERDNFXHU1QTQ1XHVEODQ2XHVEQzYzXHU5QjhFXHVEODUwXHVERTRCXHU5QzAyXHU5QkZGXHU5QzBDXHVEODY3XHVERTY4XHU5REQ0XHVEODY3XHVERkI3XHVEODY4XHVERDkyXHVEODY4XHVEREFCXHVEODY4XHVEQ0UxXHVEODY4XHVERDIzXHVEODY4XHVERERGXHU5RDdFXHU5RDgzXHVEODY4XHVERDM0XHU5RTBFXHU2ODg4XCJdLFxuW1wiOTFhMVwiLFwiXHU5REM0XHVEODQ4XHVERDVCXHVEODY4XHVERDkzXHVEODY4XHVERTIwXHVEODQ2XHVERDNCXHVEODY4XHVERTMzXHU5RDM5XHVEODY4XHVEQ0I5XHVEODY4XHVERUI0XHU5RTkwXHU5RTk1XHU5RTlFXHU5RUEyXHU0RDM0XHU5RUFBXHU5RUFGXHVEODUwXHVERjY0XHU5RUMxXHUzQjYwXHUzOUU1XHUzRDFEXHU0RjMyXHUzN0JFXHVEODYzXHVEQzJCXHU5RjAyXHU5RjA4XHU0Qjk2XHU5NDI0XHVEODVCXHVEREEyXHU5RjE3XHU5RjE2XHU5RjM5XHU1NjlGXHU1NjhBXHU5RjQ1XHU5OUI4XHVEODY0XHVEQzhCXHU5N0YyXHU4NDdGXHU5RjYyXHU5RjY5XHU3QURDXHU5RjhFXHU3MjE2XHU0QkJFXHVEODUyXHVERDc1XHVEODUyXHVEREJCXHU3MTc3XHVEODUyXHVEREY4XHVEODUwXHVERjQ4XHVEODUyXHVERTUxXHU3MzlFXHVEODYyXHVERkRBXHVEODQ2XHVEQ0ZBXHU3OTlGXHVEODYyXHVERDdFXHVEODYzXHVERTM2XHU5MzY5XHU5M0YzXHVEODYyXHVERTQ0XHU5MkVDXHU5MzgxXHU5M0NCXHVEODYyXHVERDZDXHVEODUxXHVEQ0I5XHU3MjE3XHUzRUVCXHU3NzcyXHU3QTQzXHU3MEQwXHVEODUxXHVEQzczXHVEODUwXHVERkY4XHU3MTdFXHVEODQ1XHVERkVGXHU3MEEzXHVEODQ2XHVEQ0JFXHVEODREXHVERDk5XHUzRUM3XHVEODQ2XHVEQzg1XHVEODU1XHVEQzJGXHVEODQ1XHVERkY4XHUzNzIyXHVEODQ1XHVERUZCXHVEODQ2XHVEQzM5XHUzNkUxXHVEODQ1XHVERjc0XHVEODQ2XHVEQ0QxXHVEODU3XHVERjRCXHUzNzIzXHVEODQ1XHVERUMwXHU1NzVCXHVEODUyXHVERTI1XHVEODQ0XHVERkZFXHVEODQ0XHVERUE4XCJdLFxuW1wiOTI0MFwiLFwiXHVEODQ0XHVERkM2XHVEODQ1XHVEQ0I2XHU4NTAzXHVEODREXHVERUE2XHU4NTAzXHU4NDU1XHVEODUyXHVERDk0XHVEODVDXHVERDY1XHVEODRGXHVERTMxXHVEODU1XHVERDVDXHVEODRGXHVERUZCXHVEODVDXHVEQzUyXHU0NEY0XHVEODREXHVERUVFXHVEODY2XHVERDlEXHVEODVCXHVERjI2XHU2N0Y5XHUzNzMzXHUzQzE1XHUzREU3XHU1ODZDXHVEODQ2XHVERDIyXHU2ODEwXHU0MDU3XHVEODREXHVERjNGXHVEODUwXHVEQ0UxXHVEODUwXHVEQzhCXHVEODUwXHVERDBGXHVEODVCXHVEQzIxXHU1NENCXHU1NjlFXHVEODU5XHVERUIxXHU1NjkyXHVEODQzXHVERkRGXHVEODQyXHVERkE4XHVEODQzXHVERTBEXHU5M0M2XHVEODYyXHVERjEzXHU5MzlDXHU0RUY4XHU1MTJCXHUzODE5XHVEODUxXHVEQzM2XHU0RUJDXHVEODQxXHVEQzY1XHVEODQwXHVERjdGXHU0RjRCXHU0RjhBXHVEODU1XHVERTUxXHU1QTY4XHVEODQwXHVEREFCXHVEODQwXHVERkNCXHUzOTk5XHVEODQwXHVERjBBXHVEODQxXHVEQzE0XHUzNDM1XHU0RjI5XHVEODQwXHVERUMwXHVEODYzXHVERUIzXHVEODQwXHVERTc1XHU4QURBXHVEODQwXHVERTBDXHU0RTk4XCJdLFxuW1wiOTJhMVwiLFwiXHU1MENEXHU1MTBEXHU0RkEyXHU0RjAzXHVEODUyXHVERTBFXHVEODRGXHVERThBXHU0RjQyXHU1MDJFXHU1MDZDXHU1MDgxXHU0RkNDXHU0RkU1XHU1MDU4XHU1MEZDXHU1MTU5XHU1MTVCXHU1MTVEXHU1MTVFXHU2RTc2XHVEODREXHVERDk1XHVEODRGXHVERTM5XHVEODRGXHVERUJGXHU2RDcyXHVEODQ2XHVEQzg0XHVEODRGXHVERTg5XHU1MUE4XHU1MUMzXHVEODQxXHVEREUwXHU0NEREXHVEODQxXHVEQ0EzXHVEODQxXHVEQzkyXHVEODQxXHVEQzkxXHU4RDdBXHVEODYyXHVERTlDXHVEODQxXHVERjBFXHU1MjU5XHU1MkE0XHVEODQyXHVEQzczXHU1MkUxXHU5MzZFXHU0NjdBXHU3MThDXHVEODUwXHVERjhDXHVEODQzXHVEQzIwXHVEODUyXHVEREFDXHVEODQ0XHVEQ0U0XHU2OUQxXHVEODQzXHVERTFEXHU3NDc5XHUzRURFXHU3NDk5XHU3NDE0XHU3NDU2XHU3Mzk4XHU0QjhFXHVEODUyXHVERUJDXHVEODUwXHVEQzhEXHU1M0QwXHUzNTg0XHU3MjBGXHVEODUwXHVEQ0M5XHU1NUI0XHVEODQwXHVERjQ1XHU1NENEXHVEODQyXHVERkM2XHU1NzFEXHU5MjVEXHU5NkY0XHU5MzY2XHU1N0REXHU1NzhEXHU1NzdGXHUzNjNFXHU1OENCXHU1QTk5XHVEODYyXHVERTQ2XHVEODQ1XHVERUZBXHVEODQ1XHVERjZGXHVEODQ1XHVERjEwXHU1QTJDXHU1OUI4XHU5MjhGXHU1QTdFXHU1QUNGXHU1QTEyXHVEODU2XHVERDQ2XHVEODQ2XHVEREYzXHVEODQ2XHVEQzYxXHVEODUwXHVERTk1XHUzNkY1XHU2RDA1XHU3NDQzXHU1QTIxXHVEODU3XHVERTgzXCJdLFxuW1wiOTM0MFwiLFwiXHU1QTgxXHVEODYyXHVERkQ3XHVEODQxXHVEQzEzXHU5M0UwXHU3NDhDXHVEODQ0XHVERjAzXHU3MTA1XHU0OTcyXHU5NDA4XHVEODYyXHVEREZCXHU5M0JEXHUzN0EwXHU1QzFFXHU1QzlFXHU1RTVFXHU1RTQ4XHVEODQ2XHVERDk2XHVEODQ2XHVERDdDXHVEODRFXHVERUVFXHU1RUNEXHU1QjRGXHVEODQ2XHVERDAzXHVEODQ2XHVERDA0XHUzNzAxXHVEODQ2XHVEQ0EwXHUzNkREXHVEODQ1XHVERUZFXHUzNkQzXHU4MTJBXHVEODYyXHVERTQ3XHVEODQ3XHVEREJBXHVEODREXHVEQzcyXHVEODYyXHVEREE4XHU1RjBDXHU1RjBFXHVEODQ2XHVERDI3XHVEODQ1XHVERkFCXHU1QTZCXHVEODQ1XHVERjNCXHU1QjQ0XHU4NjE0XHVEODVEXHVEREZEXHU4ODYwXHU2MDdFXHVEODRBXHVEQzYwXHVEODQ5XHVERTJCXHU1RkRCXHUzRUI4XHVEODQ5XHVEREFGXHVEODQ5XHVEREJFXHVEODY0XHVEQzg4XHVEODVCXHVERjczXHU2MUMwXHVEODQwXHVEQzNFXHVEODQwXHVEQzQ2XHVEODQ5XHVERTFCXHU2MTk5XHU2MTk4XHU2MDc1XHVEODRCXHVEQzlCXHVEODRCXHVERDA3XHVEODUxXHVERUQ0XHVEODY0XHVERDREXCJdLFxuW1wiOTNhMVwiLFwiXHU2NDcxXHVEODUxXHVERTY1XHVEODRBXHVERjZBXHUzQTI5XHVEODRBXHVERjIyXHVEODREXHVEQzUwXHVEODY2XHVEQ0VBXHVEODRCXHVERTc4XHU2MzM3XHVEODY5XHVEQzVCXHU2NEI2XHU2MzMxXHU2M0QxXHVEODUyXHVEREUzXHVEODRCXHVERDY3XHU2MkE0XHVEODRCXHVEQ0ExXHU2NDNCXHU2NTZCXHU2OTcyXHUzQkY0XHVEODRDXHVEQzhFXHVEODRDXHVERUFEXHVEODUyXHVERDg5XHVEODRDXHVERUFCXHU1NTBEXHVEODRDXHVERUUwXHVEODQ2XHVEQ0Q5XHVEODY1XHVEQzNGXHU2NkNFXHVEODRDXHVERTg5XHVEODRDXHVEREIzXHUzQUUwXHU0MTkwXHVEODU1XHVERDg0XHVEODYyXHVERjIyXHVEODU1XHVERDhGXHVEODQ1XHVERUZDXHVEODU1XHVERDVCXHVEODU1XHVEQzI1XHU3OEVFXHVEODRDXHVERDAzXHVEODQ2XHVEQzJBXHVEODRDXHVERTM0XHUzNDY0XHVEODRDXHVERTBGXHVEODRDXHVERDgyXHVEODUwXHVERUM5XHU2NjhFXHVEODVCXHVERDI0XHU2NjZCXHU0QjkzXHU2NjMwXHVEODVFXHVEQzcwXHVEODQ3XHVEREVCXHU2NjYzXHVEODRDXHVERUQyXHVEODRDXHVERUUxXHU2NjFFXHVEODU2XHVEQzcyXHUzOEQxXHVEODRFXHVEQzNBXHVEODREXHVERkJDXHUzQjk5XHVEODREXHVERkEyXHVEODRDXHVERkZFXHU3NEQwXHUzQjk2XHU2NzhGXHVEODUxXHVERTJBXHU2OEI2XHU2ODFFXHUzQkM0XHU2QUJFXHUzODYzXHVEODREXHVERkQ1XHVEODUxXHVEQzg3XHU2QTMzXHU2QTUyXHU2QUM5XHU2QjA1XHVEODQ2XHVERDEyXHU2NTExXHU2ODk4XHU2QTRDXHUzQkQ3XHU2QTdBXHU2QjU3XHVEODRGXHVERkMwXHVEODRGXHVEQzlBXHU5M0EwXHU5MkYyXHVEODYyXHVERkVBXHVEODYyXHVERUNCXCJdLFxuW1wiOTQ0MFwiLFwiXHU5Mjg5XHVEODYwXHVEQzFFXHVEODYyXHVERERDXHU5NDY3XHU2REE1XHU2RjBCXHVEODUyXHVEREVDXHU2RDY3XHVEODRGXHVERjdGXHUzRDhGXHU2RTA0XHVEODUwXHVEQzNDXHU1QTNEXHU2RTBBXHU1ODQ3XHU2RDI0XHU3ODQyXHU3MTNCXHVEODUwXHVERjFBXHVEODUwXHVERTc2XHU3MEYxXHU3MjUwXHU3Mjg3XHU3Mjk0XHVEODUxXHVERjhGXHVEODUxXHVERjI1XHU1MTc5XHVEODUyXHVERUE0XHVEODQxXHVEREVCXHU3NDdBXHVEODRGXHVERUY4XHVEODREXHVERTVGXHVEODUyXHVERTRBXHVEODUyXHVERDE3XHVEODU3XHVERkUxXHUzRjA2XHUzRUIxXHVEODUyXHVERURGXHVEODYzXHVEQzIzXHVEODRGXHVERjM1XHU2MEE3XHUzRUYzXHU3NENDXHU3NDNDXHU5Mzg3XHU3NDM3XHU0NDlGXHVEODVCXHVEREVBXHU0NTUxXHU3NTgzXHUzRjYzXHVEODUzXHVEQ0Q5XHVEODUzXHVERDA2XHUzRjU4XHU3NTU1XHU3NjczXHVEODY5XHVEREM2XHUzQjE5XHU3NDY4XHVEODYyXHVERUNDXHVEODUyXHVEREFCXHVEODUyXHVERDhFXHUzQUZCXCJdLFxuW1wiOTRhMVwiLFwiXHUzRENEXHVEODUyXHVERTRFXHUzRUZGXHVEODUyXHVEREM1XHVEODUyXHVEQ0YzXHU5MUZBXHU1NzMyXHU5MzQyXHVEODYyXHVERUUzXHVEODQ2XHVEQzY0XHU1MERGXHVEODU0XHVERTIxXHVEODU0XHVEREU3XHU3Nzc4XHVEODRDXHVERTMyXHU3NzBFXHU3NzBGXHU3NzdCXHVEODUxXHVERTk3XHVEODREXHVERjgxXHUzQTVFXHVEODUyXHVEQ0YwXHU3NDM4XHU3NDlCXHUzRUJGXHVEODUyXHVERUJBXHVEODUyXHVERUM3XHU0MEM4XHVEODUyXHVERTk2XHVEODU4XHVEREFFXHU5MzA3XHVEODU1XHVERDgxXHU3ODFFXHU3ODhEXHU3ODg4XHU3OEQyXHU3M0QwXHU3OTU5XHVEODVEXHVERjQxXHVEODU1XHVERUUzXHU0MTBFXHU3OTlCXHU4NDk2XHU3OUE1XHU2QTJEXHVEODRGXHVERUZBXHU3QTNBXHU3OUY0XHU0MTZFXHVEODQ1XHVERUU2XHU0MTMyXHU5MjM1XHU3OUYxXHVEODQzXHVERDRDXHVEODUyXHVERDhDXHVEODQwXHVERTk5XHVEODRGXHVEREJBXHVEODQ1XHVERjZFXHUzNTk3XHU1NTZCXHUzNTcwXHUzNkFBXHVEODQwXHVEREQ0XHVEODQzXHVEQzBEXHU3QUUyXHU1QTU5XHVEODQ5XHVERUY1XHVEODU2XHVERUFGXHVEODU2XHVERTlDXHU1QTBEXHVEODQwXHVERTVCXHU3OEYwXHU1QTJBXHVEODU2XHVERkM2XHU3QUZFXHU0MUY5XHU3QzVEXHU3QzZEXHU0MjExXHVEODU2XHVERkIzXHVEODU3XHVERUJDXHVEODU3XHVERUE2XHU3Q0NEXHVEODUyXHVEREY5XHVEODQ1XHVERkIwXHU3QzhFXHU3QzdDXHU3Q0FFXHU2QUIyXHU3RERDXHU3RTA3XHU3REQzXHU3RjRFXHVEODU4XHVERTYxXCJdLFxuW1wiOTU0MFwiLFwiXHVEODU4XHVERDVDXHVEODVFXHVERjQ4XHU3RDk3XHVEODU3XHVERTgyXHU0MjZBXHVEODVBXHVERjc1XHVEODQyXHVERDE2XHU2N0Q2XHVEODQwXHVEQzRFXHVEODREXHVERENGXHU1N0M0XHVEODU5XHVEQzEyXHVEODU4XHVERkY4XHVEODUyXHVERDYyXHU3RkREXHU3QjI3XHVEODQyXHVEQzJDXHVEODU2XHVERUU5XHVEODU3XHVERDQzXHU3QjBDXHVEODU3XHVERTBFXHU5OUU2XHU4NjQ1XHU5QTYzXHU2QTFDXHVEODREXHVEQzNGXHUzOUUyXHVEODUyXHVEREY3XHVEODU5XHVEREFEXHU5QTFGXHVEODU5XHVEREEwXHU4NDgwXHVEODVDXHVERDI3XHVEODVCXHVEQ0QxXHU0NEVBXHU4MTM3XHU0NDAyXHU4MEM2XHU4MTA5XHU4MTQyXHVEODU5XHVERkI0XHU5OEMzXHVEODVBXHVERTQyXHU4MjYyXHU4MjY1XHVEODVBXHVERTUxXHU4NDUzXHVEODVCXHVEREE3XHU4NjEwXHVEODVDXHVERTFCXHU1QTg2XHU0MTdGXHVEODQ2XHVEQzQwXHU1QjJCXHVEODQ2XHVEQ0ExXHU1QUU0XHVEODQ2XHVEQ0Q4XHU4NkEwXHVEODdFXHVEREJDXHVEODRGXHVERDhGXHU4ODJEXHVEODVEXHVEQzIyXHU1QTAyXCJdLFxuW1wiOTVhMVwiLFwiXHU4ODZFXHU0RjQ1XHU4ODg3XHU4OEJGXHU4OEU2XHU4OTY1XHU4OTREXHVEODU1XHVERTgzXHU4OTU0XHVEODVEXHVERjg1XHVEODVEXHVERjg0XHVEODYyXHVERkY1XHVEODYyXHVERkQ5XHVEODYyXHVERjlDXHVEODYyXHVEREY5XHUzRUFEXHU4NEEzXHU0NkY1XHU0NkNGXHUzN0YyXHU4QTNEXHU4QTFDXHVEODY1XHVEQzQ4XHU1RjREXHU5MjJCXHVEODUwXHVERTg0XHU2NUQ0XHU3MTI5XHU3MEM0XHVEODQ2XHVEQzQ1XHU5RDZEXHU4QzlGXHU4Q0U5XHVEODVGXHVERERDXHU1OTlBXHU3N0MzXHU1OUYwXHU0MzZFXHUzNkQ0XHU4RTJBXHU4RUE3XHVEODUzXHVEQzA5XHU4RjMwXHU4RjRBXHU0MkY0XHU2QzU4XHU2RkJCXHVEODQ4XHVERjIxXHU0ODlCXHU2Rjc5XHU2RThCXHVEODQ1XHVERkRBXHU5QkU5XHUzNkI1XHVEODUyXHVERDJGXHU5MEJCXHU5MDk3XHU1NTcxXHU0OTA2XHU5MUJCXHU5NDA0XHVEODYyXHVERTRCXHU0MDYyXHVEODYyXHVERUZDXHU5NDI3XHVEODYzXHVEQzFEXHVEODYzXHVEQzNCXHU4NEU1XHU4QTJCXHU5NTk5XHU5NUE3XHU5NTk3XHU5NTk2XHVEODYzXHVERDM0XHU3NDQ1XHUzRUMyXHVEODUyXHVEQ0ZGXHVEODUyXHVERTQyXHVEODUwXHVERkVBXHUzRUU3XHVEODRDXHVERTI1XHU5NjhGXHVEODYzXHVERUU3XHVEODYzXHVERTY2XHVEODYzXHVERTY1XHUzRUNDXHVEODUyXHVEREVEXHVEODUyXHVERTc4XHVEODRGXHVERkVFXHU3NDEyXHU3NDZCXHUzRUZDXHU5NzQxXHVEODY0XHVEQ0IwXCJdLFxuW1wiOTY0MFwiLFwiXHU2ODQ3XHU0QTFEXHVEODY0XHVEQzkzXHVEODU1XHVERkRGXHU5NzVEXHU5MzY4XHVEODYyXHVERDg5XHVEODYzXHVEQzI2XHVEODYyXHVERjJGXHVEODU4XHVERkJFXHU5MkJBXHU1QjExXHU4QjY5XHU0OTNDXHU3M0Y5XHVEODUwXHVERTFCXHU5NzlCXHU5NzcxXHU5OTM4XHVEODQzXHVERjI2XHU1REMxXHVEODYyXHVERkM1XHVEODUyXHVERUIyXHU5ODFGXHVEODY1XHVEQ0RBXHU5MkY2XHVEODY1XHVEREQ3XHU5MUU1XHU0NEMwXHVEODYyXHVERjUwXHVEODUyXHVERTY3XHVEODYyXHVERjY0XHU5OERDXHVEODYyXHVERTQ1XHUzRjAwXHU5MjJBXHU0OTI1XHU4NDE0XHU5OTNCXHU5OTREXHVEODVFXHVERjA2XHUzREZEXHU5OTlCXHU0QjZGXHU5OUFBXHU5QTVDXHVEODYyXHVERjY1XHVEODU2XHVEQ0M4XHU2QThGXHU5QTIxXHU1QUZFXHU5QTJGXHVEODY2XHVEQ0YxXHU0QjkwXHVEODY2XHVERDQ4XHU5OUJDXHU0QkJEXHU0Qjk3XHU5MzdEXHU1ODcyXHVEODQ0XHVERjAyXHU1ODIyXHVEODUyXHVEREI4XCJdLFxuW1wiOTZhMVwiLFwiXHVEODQ1XHVEQ0U4XHU3ODQ0XHVEODQ5XHVERjFGXHVEODRGXHVEREI4XHU2OEM1XHUzRDdEXHU5NDU4XHUzOTI3XHU2MTUwXHVEODQ5XHVERjgxXHVEODRBXHVERDZCXHU2MTA3XHU5QzRGXHU5QzUzXHU5QzdCXHU5QzM1XHU5QzEwXHU5QjdGXHU5QkNGXHVEODY3XHVERTJEXHU5QjlGXHVEODY4XHVEREY1XHVEODY4XHVEQ0ZFXHU5RDIxXHU0Q0FFXHVEODUwXHVERDA0XHU5RTE4XHU0Q0IwXHU5RDBDXHVEODY4XHVEREI0XHVEODY4XHVEQ0VEXHVEODY4XHVEQ0YzXHVEODY2XHVERDJGXHU5REE1XHU4NEJEXHVEODVCXHVERTEyXHVEODVCXHVERkRGXHVEODVBXHVERjgyXHU4NUZDXHU0NTMzXHVEODVCXHVEREE0XHVEODVCXHVERTg0XHVEODVCXHVEREYwXHU4NDIwXHU4NUVFXHVEODVCXHVERTAwXHVEODREXHVERkQ3XHVEODU4XHVEQzY0XHU3OUUyXHVEODREXHVERDlDXHVEODREXHVERTQwXHU0OTJEXHVEODUyXHVERERFXHUzRDYyXHU5M0RCXHU5MkJFXHU5MzQ4XHVEODQwXHVERUJGXHU3OEI5XHU5Mjc3XHU5NDREXHU0RkU0XHUzNDQwXHU5MDY0XHVEODU1XHVERDVEXHU3ODNEXHU3ODU0XHU3OEI2XHU3ODRCXHVEODQ1XHVERjU3XHVEODRDXHVEREM5XHVEODUyXHVERDQxXHUzNjlBXHU0RjcyXHU2RkRBXHU2RkQ5XHU3MDFFXHU3MDFFXHU1NDE0XHVEODUwXHVEREI1XHU1N0JCXHU1OEYzXHU1NzhBXHU5RDE2XHU1N0Q3XHU3MTM0XHUzNEFGXHVEODUwXHVEREFDXHU3MUVCXHVEODVCXHVEQzQwXHVEODUzXHVERjk3XHU1QjI4XHVEODQ1XHVERkI1XHVEODYyXHVERTQ5XCJdLFxuW1wiOTc0MFwiLFwiXHU2MTBDXHU1QUNFXHU1QTBCXHU0MkJDXHVEODUxXHVEQzg4XHUzNzJDXHU0QjdCXHVEODYyXHVEREZDXHU5M0JCXHU5M0I4XHVEODQ2XHVEQ0Q2XHVEODQzXHVERjFEXHU4NDcyXHVEODVCXHVEQ0MwXHVEODQ1XHVEQzEzXHVEODUwXHVERUZBXHVEODRCXHVEQzI2XHVEODUwXHVERkMxXHU1OTk0XHVEODRGXHVEREI3XHVEODU5XHVERjQxXHU3REE4XHVEODU4XHVERDVCXHVEODU4XHVEQ0E0XHVEODUyXHVEREI5XHVEODUyXHVERDhCXHVEODYyXHVEREZBXHU5MkU1XHU3M0UyXHUzRUU5XHU3NEI0XHVEODYyXHVERjYzXHVEODQ2XHVEQzlGXHUzRUUxXHVEODUyXHVERUIzXHU2QUQ4XHU3M0YzXHU3M0ZCXHUzRUQ2XHVEODUyXHVERTNFXHVEODUyXHVERTk0XHVEODQ1XHVERkQ5XHVEODUyXHVERTY2XHVEODQwXHVERkE3XHVEODQ1XHVEQzI0XHVEODUyXHVEREU1XHU3NDQ4XHVEODUyXHVERDE2XHU3MEE1XHVEODUyXHVERDc2XHU5Mjg0XHU3M0U2XHU5MzVGXHVEODQxXHVEQ0ZFXHU5MzMxXHVEODYyXHVERUNFXHVEODYyXHVERTE2XHU5Mzg2XHVEODYyXHVERkU3XHVEODU1XHVEREQ1XHU0OTM1XHVEODYyXHVERTgyXHU3MTZCXCJdLFxuW1wiOTdhMVwiLFwiXHVEODUyXHVERDQzXHVEODQzXHVEQ0ZGXHU1NkE0XHVEODQxXHVERTFBXHVEODQyXHVERkVCXHVEODQzXHVEQ0I4XHU1NTAyXHU3OUM0XHVEODQ1XHVERkZBXHU3REZFXHVEODQ1XHVERUMyXHVEODUyXHVERTUwXHVEODQ2XHVEQzUyXHU0NTJFXHU5NDAxXHUzNzBBXHVEODYyXHVERUMwXHVEODUyXHVEREFEXHU1OUIwXHVEODQ2XHVEQ0JGXHVEODQ2XHVEQzgzXHVEODVEXHVEQzg0XHU1QUExXHUzNkUyXHVEODRGXHVERDVCXHUzNkIwXHU5MjVGXHU1QTc5XHVEODYyXHVERTgxXHVEODQ2XHVEQzYyXHU5Mzc0XHUzQ0NEXHVEODQyXHVERUI0XHU0QTk2XHUzOThBXHU1MEY0XHUzRDY5XHUzRDRDXHVEODQ0XHVERjlDXHU3MTc1XHU0MkZCXHVEODYwXHVERTE4XHU2RTBGXHVEODY0XHVEQ0U0XHU0NEVCXHU2RDU3XHVEODVGXHVERTRGXHU3MDY3XHU2Q0FGXHUzQ0Q2XHVEODRGXHVERkVEXHVEODRGXHVERTJEXHU2RTAyXHU2RjBDXHUzRDZGXHVEODQwXHVERkY1XHU3NTUxXHUzNkJDXHUzNEM4XHU0NjgwXHUzRURBXHU0ODcxXHU1OUM0XHU5MjZFXHU0OTNFXHU4RjQxXHVEODYzXHVEQzFDXHVEODVBXHVERkMwXHU1ODEyXHU1N0M4XHUzNkQ2XHVEODQ1XHVEQzUyXHU3MEZFXHVEODUwXHVERjYyXHVEODUyXHVERTcxXHVEODRCXHVERkUzXHVEODQ0XHVERUIwXHVEODQ4XHVERkJEXHU2OEI5XHU2OTY3XHVEODQ0XHVERjk4XHVEODREXHVEQ0U1XHVEODVFXHVERkY0XHVEODREXHVERURGXHVEODYyXHVERTgzXHVEODREXHVERkQ2XHVEODRDXHVERkZBXHVEODUzXHVEQzlGXHU2QTFBXHVEODREXHVERUFEXHVEODVCXHVEQ0I3XHU4NDNFXHU0NERGXHU0NENFXCJdLFxuW1wiOTg0MFwiLFwiXHVEODVCXHVERDI2XHVEODVCXHVERDUxXHVEODVCXHVEQzgyXHVEODVCXHVERkRFXHU2RjE3XHVEODVDXHVERDA5XHU4MzNEXHVEODQ1XHVERjNBXHU4M0VEXHVEODVCXHVEQzgwXHVEODVDXHVEQzUzXHVEODQ1XHVERkRCXHU1OTg5XHU1QTgyXHVEODQ1XHVERkIzXHU1QTYxXHU1QTcxXHVEODQ2XHVERDA1XHVEODUwXHVEREZDXHUzNzJEXHU1OUVGXHVEODQ1XHVERjNDXHUzNkM3XHU3MThFXHU5MzkwXHU2NjlBXHVEODUwXHVERUE1XHU1QTZFXHU1QTJCXHVEODUwXHVERTkzXHU2QTJCXHVEODRGXHVERUY5XHVEODVEXHVERjM2XHVEODUxXHVEQzVCXHVEODUwXHVERUNBXHU3MTFEXHVEODUwXHVERTU5XHVEODYyXHVEREUxXHU0RkIwXHVEODVCXHVERDI4XHU1Q0MyXHVEODUxXHVEQ0NFXHVEODVGXHVERTREXHVEODUwXHVERkJEXHU2QTBDXHVEODUwXHVERTU2XHVEODQ0XHVERjA0XHU3MEE2XHU3MTMzXHVEODUwXHVERkU5XHUzREE1XHU2Q0RGXHVEODdFXHVEQzI1XHVEODUyXHVERTRGXHU3RTY1XHU1OUVCXHU1RDJGXHUzREYzXHU1RjVDXHVEODUyXHVERTVEXHVEODQ1XHVERkRGXHU3REE0XHU4NDI2XCJdLFxuW1wiOThhMVwiLFwiXHU1NDg1XHVEODRFXHVERUZBXHVEODRDXHVERjAwXHVEODQwXHVERTE0XHU1NzdFXHVEODQyXHVEQ0Q1XHVEODQxXHVERTE5XHUzRkU1XHVEODQ3XHVERjlFXHVEODY4XHVERUI2XHU3MDAzXHVEODY0XHVERDVCXHU1RDcwXHU3MzhGXHU3Q0QzXHVEODYyXHVERTU5XHVEODY1XHVEQzIwXHU0RkM4XHU3RkU3XHU3MkNEXHU3MzEwXHVEODVFXHVERUY0XHU3MzM4XHU3MzM5XHVEODU1XHVERUY2XHU3MzQxXHU3MzQ4XHUzRUE5XHVEODVFXHVERjE4XHU5MDZDXHU3MUY1XHVEODUyXHVEQ0YyXHU3M0UxXHU4MUY2XHUzRUNBXHU3NzBDXHUzRUQxXHU2Q0EyXHU1NkZEXHU3NDE5XHU3NDFFXHU3NDFGXHUzRUUyXHUzRUYwXHUzRUY0XHUzRUZBXHU3NEQzXHUzRjBFXHUzRjUzXHU3NTQyXHU3NTZEXHU3NTcyXHU3NThEXHUzRjdDXHU3NUM4XHU3NURDXHUzRkMwXHU3NjREXHUzRkQ3XHU3Njc0XHUzRkRDXHU3NjdBXHVEODUzXHVERjVDXHU3MTg4XHU1NjIzXHU4OTgwXHU1ODY5XHU0MDFEXHU3NzQzXHU0MDM5XHU2NzYxXHU0MDQ1XHUzNURCXHU3Nzk4XHU0MDZBXHU0MDZGXHU1QzVFXHU3N0JFXHU3N0NCXHU1OEYyXHU3ODE4XHU3MEI5XHU3ODFDXHU0MEE4XHU3ODM5XHU3ODQ3XHU3ODUxXHU3ODY2XHU4NDQ4XHVEODU1XHVERDM1XHU3OTMzXHU2ODAzXHU3OTMyXHU0MTAzXCJdLFxuW1wiOTk0MFwiLFwiXHU0MTA5XHU3OTkxXHU3OTk5XHU4RkJCXHU3QTA2XHU4RkJDXHU0MTY3XHU3QTkxXHU0MUIyXHU3QUJDXHU4Mjc5XHU0MUM0XHU3QUNGXHU3QURCXHU0MUNGXHU0RTIxXHU3QjYyXHU3QjZDXHU3QjdCXHU3QzEyXHU3QzFCXHU0MjYwXHU0MjdBXHU3QzdCXHU3QzlDXHU0MjhDXHU3Q0I4XHU0Mjk0XHU3Q0VEXHU4RjkzXHU3MEMwXHVEODQzXHVEQ0NGXHU3RENGXHU3REQ0XHU3REQwXHU3REZEXHU3RkFFXHU3RkI0XHU3MjlGXHU0Mzk3XHU4MDIwXHU4MDI1XHU3QjM5XHU4MDJFXHU4MDMxXHU4MDU0XHUzRENDXHU1N0I0XHU3MEEwXHU4MEI3XHU4MEU5XHU0M0VEXHU4MTBDXHU3MzJBXHU4MTBFXHU4MTEyXHU3NTYwXHU4MTE0XHU0NDAxXHUzQjM5XHU4MTU2XHU4MTU5XHU4MTVBXCJdLFxuW1wiOTlhMVwiLFwiXHU0NDEzXHU1ODNBXHU4MTdDXHU4MTg0XHU0NDI1XHU4MTkzXHU0NDJEXHU4MUE1XHU1N0VGXHU4MUMxXHU4MUU0XHU4MjU0XHU0NDhGXHU4MkE2XHU4Mjc2XHU4MkNBXHU4MkQ4XHU4MkZGXHU0NEIwXHU4MzU3XHU5NjY5XHU2OThBXHU4NDA1XHU3MEY1XHU4NDY0XHU2MEUzXHU4NDg4XHU0NTA0XHU4NEJFXHU4NEUxXHU4NEY4XHU4NTEwXHU4NTM4XHU4NTUyXHU0NTNCXHU4NTZGXHU4NTcwXHU4NUUwXHU0NTc3XHU4NjcyXHU4NjkyXHU4NkIyXHU4NkVGXHU5NjQ1XHU4NzhCXHU0NjA2XHU0NjE3XHU4OEFFXHU4OEZGXHU4OTI0XHU4OTQ3XHU4OTkxXHVEODVFXHVERDY3XHU4QTI5XHU4QTM4XHU4QTk0XHU4QUI0XHU4QzUxXHU4Q0Q0XHU4Q0YyXHU4RDFDXHU0Nzk4XHU1ODVGXHU4REMzXHU0N0VEXHU0RUVFXHU4RTNBXHU1NUQ4XHU1NzU0XHU4RTcxXHU1NUY1XHU4RUIwXHU0ODM3XHU4RUNFXHU4RUUyXHU4RUU0XHU4RUVEXHU4RUYyXHU4RkI3XHU4RkMxXHU4RkNBXHU4RkNDXHU5MDMzXHU5OUM0XHU0OEFEXHU5OEUwXHU5MjEzXHU0OTFFXHU5MjI4XHU5MjU4XHU5MjZCXHU5MkIxXHU5MkFFXHU5MkJGXCJdLFxuW1wiOWE0MFwiLFwiXHU5MkUzXHU5MkVCXHU5MkYzXHU5MkY0XHU5MkZEXHU5MzQzXHU5Mzg0XHU5M0FEXHU0OTQ1XHU0OTUxXHU5RUJGXHU5NDE3XHU1MzAxXHU5NDFEXHU5NDJEXHU5NDNFXHU0OTZBXHU5NDU0XHU5NDc5XHU5NTJEXHU5NUEyXHU0OUE3XHU5NUY0XHU5NjMzXHU0OUU1XHU2N0EwXHU0QTI0XHU5NzQwXHU0QTM1XHU5N0IyXHU5N0MyXHU1NjU0XHU0QUU0XHU2MEU4XHU5OEI5XHU0QjE5XHU5OEYxXHU1ODQ0XHU5OTBFXHU5OTE5XHU1MUI0XHU5OTFDXHU5OTM3XHU5OTQyXHU5OTVEXHU5OTYyXHU0QjcwXHU5OUM1XHU0QjlEXHU5QTNDXHU5QjBGXHU3QTgzXHU5QjY5XHU5QjgxXHU5QkREXHU5QkYxXHU5QkY0XHU0QzZEXHU5QzIwXHUzNzZGXHVEODQ2XHVERkMyXHU5RDQ5XHU5QzNBXCJdLFxuW1wiOWFhMVwiLFwiXHU5RUZFXHU1NjUwXHU5RDkzXHU5REJEXHU5REMwXHU5REZDXHU5NEY2XHU4RkI2XHU5RTdCXHU5RUFDXHU5RUIxXHU5RUJEXHU5RUM2XHU5NERDXHU5RUUyXHU5RUYxXHU5RUY4XHU3QUM4XHU5RjQ0XHVEODQwXHVEQzk0XHVEODQwXHVERUI3XHVEODQwXHVERkEwXHU2OTFBXHU5NEMzXHU1OUFDXHVEODQxXHVEQ0Q3XHU1ODQwXHU5NEMxXHUzN0I5XHVEODQxXHVEREQ1XHVEODQxXHVERTE1XHVEODQxXHVERTc2XHVEODQ1XHVERUJBXHU1NzU3XHU3MTczXHVEODQyXHVERUMyXHVEODQyXHVERUNEXHVEODQyXHVERkJGXHU1NDZBXHVEODdFXHVEQzNCXHVEODQyXHVERkNCXHU1NDlFXHVEODQyXHVERkZCXHVEODQzXHVEQzNCXHVEODQzXHVEQzUzXHVEODQzXHVEQzY1XHVEODQzXHVEQzdDXHU2MEU3XHVEODQzXHVEQzhEXHU1NjdBXHVEODQzXHVEQ0I1XHVEODQzXHVEQ0REXHVEODQzXHVEQ0VEXHVEODQzXHVERDZGXHVEODQzXHVEREIyXHVEODQzXHVEREM4XHU2OTU1XHU5QzJGXHU4N0E1XHVEODQzXHVERTA0XHVEODQzXHVERTBFXHVEODQzXHVERUQ3XHVEODQzXHVERjkwXHVEODQzXHVERjJEXHVEODQzXHVERTczXHU1QzIwXHVEODQzXHVERkJDXHU1RTBCXHVEODQ0XHVEQzVDXHVEODQ0XHVEQzRGXHVEODQ0XHVEQzc2XHU2NzFFXHVEODQ0XHVEQzdCXHVEODQ0XHVEQzg4XHVEODQ0XHVEQzk2XHUzNjQ3XHVEODQ0XHVEQ0JGXHVEODQ0XHVEQ0QzXHVEODQ0XHVERDJGXHVEODQ0XHVERDNCXHU1MzY0XHU4NEFEXHVEODQ0XHVERUUzXHVEODQ0XHVERjc1XHVEODQ0XHVERjM2XHU4QjgxXHVEODQ1XHVERDc3XHVEODQ1XHVERTE5XHVEODQ1XHVERkMzXHVEODQ1XHVERkM3XHU0RTc4XHU3MEJCXHVEODQ2XHVEQzJEXHVEODQ2XHVERDZBXCJdLFxuW1wiOWI0MFwiLFwiXHVEODQ2XHVERTJEXHVEODQ2XHVERTQ1XHVEODQ3XHVEQzJBXHVEODQ3XHVEQzcwXHVEODQ3XHVEQ0FDXHVEODQ3XHVERUM4XHU2MkMzXHVEODQ3XHVERUQ1XHVEODQ3XHVERjE1XHU3MTk4XHU2ODU1XHVEODQ4XHVEQzQ1XHU2OUU5XHUzNkM4XHVEODQ4XHVERTdDXHVEODQ4XHVERkQ3XHVEODQ4XHVERkZBXHVEODQ5XHVERjJBXHVEODRBXHVEQzcxXHVEODRBXHVERDRGXHU4MkZEXHVEODRBXHVERDY3XHVEODRBXHVERDkzXHVEODRBXHVERUQ1XHU4OUE1XHVEODRBXHVERUU4XHU4RkEwXHVEODRBXHVERjBFXHU5N0I4XHVEODRBXHVERjNGXHU5ODQ3XHU5QUJEXHVEODRCXHVEQzRDXCJdLFxuW1wiOWI2MlwiLFwiXHVEODRCXHVEQzg4XHVEODRCXHVEQ0I3XHVEODU2XHVERkU4XHVEODRCXHVERDA4XHVEODRCXHVERDEyXHVEODRCXHVEREI3XHVEODRCXHVERDk1XHVEODRCXHVERTQyXHVEODRCXHVERjc0XHVEODRCXHVERkNDXHVEODRDXHVEQzMzXHVEODRDXHVEQzY2XHVEODRDXHVERjFGXHVEODRDXHVERkRFXHU1RkIxXHU2NjQ4XHU2NkJGXHVEODVFXHVERTc5XHVEODREXHVERDY3XHVEODREXHVEREYzXHU3MjAxXHVEODUyXHVEREJBXHU3N0Q3XHVEODREXHVERTFBXHVEODREXHVERjE2XHU3RTg3XHVEODQwXHVERjQ2XHU1OEI1XHU2NzBFXCJdLFxuW1wiOWJhMVwiLFwiXHU2OTE4XHVEODRFXHVERUE3XHVEODVEXHVERTU3XHVEODU3XHVERkUyXHVEODRGXHVERTExXHVEODRGXHVERUI5XHVEODVEXHVEREZFXHVEODQ4XHVEQzlBXHU0OEQwXHU0QUI4XHVEODUwXHVERDE5XHVEODYyXHVERTlBXHVEODUwXHVERUVFXHVEODUwXHVERjBEXHVEODUwXHVEQzNCXHVEODUwXHVERjM0XHVEODUwXHVERjk2XHVEODUyXHVERTQ1XHVEODQxXHVERENBXHU1MUQyXHVEODQxXHVERTExXHU1OTlGXHVEODQ3XHVERUE4XHUzQkJFXHVEODRGXHVEQ0ZGXHVEODUxXHVEQzA0XHVEODUxXHVEQ0Q2XHU1Nzg4XHVEODUxXHVERTc0XHUzOTlCXHVEODUxXHVERjJGXHVEODYxXHVEREU4XHVEODY2XHVEREM5XHUzNzYyXHVEODQ4XHVEREMzXHU4QjVFXHVEODYyXHVERjRFXHU5OUQ2XHVEODUyXHVEQzEyXHVEODUyXHVEQ0ZCXHVEODUyXHVERTE1XHU3MjA5XHVEODUyXHVERUMwXHVEODQzXHVEQzc4XHU1OTY1XHVEODUzXHVERUE1XHVEODUzXHVERjg2XHVEODQxXHVERjc5XHU4RURBXHVEODU0XHVEQzJDXHU1MjhGXHU1NzNGXHU3MTcxXHVEODU0XHVERTk5XHVEODU1XHVEQzE5XHVEODRGXHVERjRBXHVEODUyXHVERUE3XHU1NUJDXHVEODU1XHVEQzQ2XHVEODU1XHVEQzZFXHVEODVBXHVERjUyXHU5MUQ0XHUzNDczXHVEODU1XHVERDNGXHVEODVEXHVERTMyXHVEODU1XHVERDVFXHU0NzE4XHVEODU1XHVERDYyXHVEODU1XHVERDY2XHVEODU1XHVERkM3XHVEODUyXHVERDNGXHVEODU2XHVEQzVEXHU1MDY2XHUzNEZCXHVEODRDXHVERkNDXHU2MERFXHVEODU2XHVERDAzXHU0NzdDXHVEODYyXHVERDQ4XHVEODU2XHVERUFFXHVEODU2XHVERjg5XHVEODU3XHVEQzA2XHVEODQ3XHVERDkwXHU1N0ExXHU3MTUxXHU2RkI2XHVEODU4XHVERDAyXHVEODVGXHVEQzEyXHU5MDU2XHVEODU4XHVEREIyXHVEODUzXHVERjlBXHU4QjYyXHVEODU5XHVEQzAyXHVEODU5XHVEQzRBXCJdLFxuW1wiOWM0MFwiLFwiXHU1RDVCXHVEODVBXHVERkY3XHU4RjM2XHVEODU5XHVEQzg0XHVEODQ2XHVERDFDXHU4QUVBXHVEODUyXHVEREY2XHVEODU5XHVEQzg4XHVEODRGXHVERkVGXHVEODU5XHVERDEyXHU0QkMwXHVEODU5XHVEREJGXHVEODU5XHVERUI1XHVEODQ5XHVERjFCXHU5NDY1XHVEODU1XHVERkUxXHU2MTk1XHU1QTI3XHVEODdFXHVEQ0NEXHU0RkJCXHU1NkI5XHVEODUxXHVERDIxXHVEODU5XHVERUZDXHU0RTZBXHVEODUyXHVERDM0XHU5NjU2XHU2RDhGXHVEODVCXHVEQ0JEXHUzNjE4XHU4OTc3XHVEODU5XHVERjk5XHVEODVBXHVEQzZFXHVEODU5XHVEQzExXHVEODVBXHVEQzVFXHU3MURGXHVEODVBXHVEQ0M3XHU3QjQyXHVEODY0XHVEQ0MwXHVEODQyXHVERTExXHVEODVBXHVERDI2XHU5MTA0XHVEODVBXHVERDM5XHU3QTQ1XHU5REYwXHVEODVBXHVEREZBXHU5QTI2XHVEODVBXHVERTJEXHUzNjVGXHVEODU5XHVEQzY5XHVEODQwXHVEQzIxXHU3OTgzXHVEODVBXHVERTM0XHVEODVBXHVERjVCXHU1RDJDXHVEODREXHVERDE5XHU4M0NGXHVEODVBXHVERjlEXHU0NkQwXHVEODVCXHVEQ0E0XHU3NTNCXHU4ODY1XHVEODVCXHVEREFFXHU1OEI2XCJdLFxuW1wiOWNhMVwiLFwiXHUzNzFDXHVEODQ5XHVERDhEXHVEODVDXHVEQzRCXHVEODVDXHVERENEXHUzQzU0XHVEODVDXHVERTgwXHVEODVDXHVERTg1XHU5MjgxXHVEODQ4XHVERDdBXHVEODVDXHVERThCXHU5MzMwXHVEODVDXHVERUU2XHVEODUyXHVEREQwXHU2QzM5XHU5NDlGXHVEODVEXHVEQzUwXHVEODQzXHVERUY4XHU4ODI3XHU4OEY1XHVEODRBXHVERDI2XHVEODYxXHVEQzczXHVEODQ1XHVERkIxXHU2RUI4XHVEODUyXHVERTJBXHVEODQ2XHVEQzIwXHUzOUE0XHUzNkI5XHU1QzEwXHU3OUUzXHU0NTNGXHU2NkI2XHVEODY3XHVEQ0FEXHVEODY2XHVEQ0E0XHU4OTQzXHVEODVEXHVERkNDXHVEODVFXHVEQzU4XHU1NkQ2XHU0MERGXHVEODQ1XHVERTBBXHUzOUExXHVEODREXHVERjJGXHVEODYwXHVEQ0U4XHVEODQ0XHVERkM1XHU3MUFEXHU4MzY2XHVEODVFXHVEREREXHVEODY0XHVEREE4XHU1QTY3XHU0Q0I3XHVEODVDXHVEQ0FGXHVEODYyXHVEREFCXHVEODVFXHVEREZEXHVEODVFXHVERTBBXHVEODVFXHVERjBCXHVEODVGXHVERDY2XHVEODUwXHVERDdBXHU3QjQzXHU3OTdFXHVEODYwXHVEQzA5XHU2RkI1XHVEODY4XHVERURGXHU2QTAzXHVEODYwXHVERjE4XHU1M0EyXHVEODVCXHVERTA3XHU5M0JGXHU2ODM2XHU5NzVEXHVEODYwXHVERDZGXHVEODYwXHVEQzIzXHVEODVBXHVEREI1XHVEODQ0XHVERkVEXHVEODRDXHVERTJGXHVEODYwXHVEQzQ4XHU1RDg1XHVEODYzXHVEQzMwXHVEODYwXHVEQzgzXHU1NzE1XHU5ODIzXHVEODYyXHVERDQ5XHU1REFCXHVEODUyXHVERDg4XHU2NUJFXHU2OUQ1XHU1M0QyXHVEODUyXHVERUE1XHVEODRGXHVERjgxXHUzQzExXHU2NzM2XHVEODYwXHVEQzkwXHVEODYwXHVEQ0Y0XHVEODYwXHVERDJFXHVEODQ3XHVERkExXHVEODYwXHVERDRGXCJdLFxuW1wiOWQ0MFwiLFwiXHVEODYwXHVERDg5XHVEODYwXHVEREFGXHVEODYwXHVERTFBXHVEODYwXHVERjA2XHVEODYwXHVERjJGXHVEODYwXHVERjhBXHUzNUNBXHVEODYxXHVEQzY4XHVEODYxXHVERUFBXHU0OEZBXHU2M0U2XHVEODYyXHVERDU2XHU3ODA4XHU5MjU1XHVEODYyXHVEREI4XHU0M0YyXHVEODYyXHVEREU3XHU0M0RGXHVEODYyXHVEREU4XHVEODYyXHVERjQ2XHVEODYyXHVERkQ0XHU1OUY4XHVEODYzXHVEQzA5XHU4RjBCXHVEODYzXHVERkM1XHVEODY0XHVEQ0VDXHU3QjUxXHVEODY0XHVERDEwXHVEODY0XHVERDNDXHUzREY3XHVEODY0XHVERDVFXHVEODUyXHVERUNBXHU4RkQwXHU3MjhGXHU1NjhCXHVEODY1XHVEQ0U3XHVEODY1XHVEREU5XHVEODY1XHVEREIwXHVEODY1XHVEREI4XHVEODY1XHVERjMyXHVEODY2XHVEQ0QxXHVEODY2XHVERDQ5XHVEODY2XHVERDZBXHVEODY2XHVEREMzXHVEODY2XHVERTI4XHVEODY2XHVERjBFXHVEODY3XHVERDVBXHVEODY3XHVERDlCXHU3RTlGXHVEODY3XHVERUY4XHVEODY3XHVERjIzXHU0Q0E0XHU5NTQ3XHVEODY4XHVERTkzXHU3MUEyXHVEODY4XHVERUZGXHU0RDkxXHU5MDEyXHVEODY5XHVERENCXHU0RDlDXHVEODQzXHVEQzlDXHU4RkJFXHU1NUMxXCJdLFxuW1wiOWRhMVwiLFwiXHU4RkJBXHVEODQ5XHVEQ0IwXHU4RkI5XHVEODUyXHVERTkzXHU0NTA5XHU3RTdGXHU2RjU2XHU2QUIxXHU0RUVBXHUzNEU0XHVEODYyXHVERjJDXHVEODVFXHVEQzlEXHUzNzNBXHU4RTgwXHVEODQ1XHVERkY1XHVEODYwXHVEQzI0XHVEODYyXHVERjZDXHVEODYyXHVERjk5XHVEODVFXHVERTNFXHVEODU5XHVERUFGXHUzREVCXHVEODVEXHVERTU1XHVEODRGXHVEQ0I3XHVEODU1XHVERTM1XHVEODU2XHVERDU2XHU0RTlBXHVEODU3XHVERTgxXHVEODU4XHVERTU4XHU1NkJGXHVEODQzXHVERTZEXHU4RTBFXHU1QjZEXHVEODRGXHVERTg4XHVEODUzXHVEQzlFXHU2M0RFXHU2MkQwXHVEODQ1XHVERkY2XHVEODQ2XHVEQzdCXHU2NTMwXHU1NjJEXHVEODU3XHVEQzRBXHU1NDFBXHVEODU0XHVERjExXHUzREM2XHVEODY3XHVERDk4XHU0QzdEXHU1NjIyXHU1NjFFXHU3RjQ5XHVEODU3XHVERUQ4XHU1OTc1XHVEODRGXHVERDQwXHU4NzcwXHU0RTFDXHVEODQzXHVERkVBXHVEODQzXHVERDQ5XHVEODREXHVERUJBXHU4MTE3XHU5RDVFXHU4RDE4XHU3NjNCXHU5QzQ1XHU3NjRFXHU3N0I5XHU5MzQ1XHU1NDMyXHU4MTQ4XHU4MkY3XHU1NjI1XHU4MTMyXHU4NDE4XHU4MEJEXHU1NUVBXHU3OTYyXHU1NjQzXHU1NDE2XHVEODQzXHVERTlEXHUzNUNFXHU1NjA1XHU1NUYxXHU2NkYxXHVEODYwXHVERUUyXHUzNjJEXHU3NTM0XHU1NUYwXHU1NUJBXHU1NDk3XHU1NTcyXHVEODQzXHVEQzQxXHVEODQzXHVEQzk2XHU1RUQwXHVEODU0XHVERDQ4XHVEODQzXHVERTc2XHVEODRCXHVEQzYyXCJdLFxuW1wiOWU0MFwiLFwiXHVEODQzXHVERUEyXHU5RUFCXHU3RDVBXHU1NURFXHVEODQ0XHVEQzc1XHU2MjlEXHU5NzZEXHU1NDk0XHU4Q0NEXHU3MUY2XHU5MTc2XHU2M0ZDXHU2M0I5XHU2M0ZFXHU1NTY5XHVEODRBXHVERjQzXHU5QzcyXHVEODRCXHVERUIzXHU1MTlBXHUzNERGXHVEODQzXHVEREE3XHU1MUE3XHU1NDREXHU1NTFFXHU1NTEzXHU3NjY2XHU4RTJEXHVEODVBXHVEQzhBXHU3NUIxXHU4MEI2XHU4ODA0XHU4Nzg2XHU4OEM3XHU4MUI2XHU4NDFDXHVEODQ0XHVEQ0MxXHU0NEVDXHU3MzA0XHVEODUxXHVERjA2XHU1QjkwXHU4MzBCXHVEODVBXHVEQzkzXHU1NjdCXHVEODQ5XHVERUY0XHVEODVGXHVERDJGXHVEODUwXHVEREEzXHVEODVGXHVERDczXHVEODVCXHVERUQwXHVEODVDXHVERUI2XHU5MTcwXHVEODQ0XHVEREQ5XHU5MjA4XHVEODRGXHVEQ0ZDXHVEODY5XHVERUE5XHVEODQzXHVERUFDXHVEODQzXHVERUY5XHU3MjY2XHVEODQ3XHVEQ0EyXHU0NzRFXHVEODUzXHVERkMyXHVEODVGXHVERkY5XHVEODQzXHVERkVCXHU0MEZBXCJdLFxuW1wiOWVhMVwiLFwiXHU5QzVEXHU2NTFGXHVEODRCXHVEREEwXHU0OEYzXHVEODUxXHVERkUwXHVEODY3XHVERDdDXHVEODQzXHVERkVDXHVEODQzXHVERTBBXHU2MDYyXHVEODVEXHVEREEzXHVEODQzXHVERkVEXCJdLFxuW1wiOWVhZFwiLFwiXHVEODU4XHVEQzQ4XHVEODQ0XHVERDg3XHU3MUEzXHU3RThFXHU5RDUwXHU0RTFBXHU0RTA0XHUzNTc3XHU1QjBEXHU2Q0IyXHU1MzY3XHUzNkFDXHUzOURDXHU1MzdEXHUzNkE1XHVEODUxXHVERTE4XHU1ODlBXHVEODUyXHVERjZFXHU4MjJEXHU1NDRCXHU1N0FBXHVEODU2XHVERTk1XHVEODQyXHVERDc5XCJdLFxuW1wiOWVjNVwiLFwiXHUzQTUyXHVEODQ5XHVEQzY1XHU3Mzc0XHVEODY3XHVERUFDXHU0RDA5XHU5QkVEXHVEODRGXHVEQ0ZFXHVEODY3XHVERjMwXHU0QzVCXHVEODUzXHVERkE5XHVEODY1XHVERDlFXHVEODY3XHVERkRFXHU4NDVDXHVEODRGXHVEREI2XHVEODVDXHVERUIyXHVEODU5XHVERkIzXHVEODREXHVERjIwXHU2MzJFXHU3RDI1XHVEODRGXHVERUY3XHVEODRGXHVERTJDXHUzQTJBXHU5MDA4XHU1MkNDXHUzRTc0XHUzNjdBXHU0NUU5XHVEODQxXHVEQzhFXHU3NjQwXHU1QUYwXHVEODQzXHVERUI2XHU3ODdBXHVEODVGXHVERjJFXHU1OEE3XHU0MEJGXHU1NjdDXHU5QjhCXHU1RDc0XHU3NjU0XHVEODY5XHVEQzM0XHU5RTg1XHU0Q0UxXHU3NUY5XHUzN0ZCXHU2MTE5XHVEODRDXHVEQ0RBXHVEODUwXHVERkYyXCJdLFxuW1wiOWVmNVwiLFwiXHU1NjVEXHVEODQ0XHVERUE5XHU1N0E3XHVEODUyXHVERDYzXHVEODY3XHVERTA2XHU1MjM0XHVEODVDXHVEQ0FFXHUzNUFEXHU2QzRBXHU5RDdDXCJdLFxuW1wiOWY0MFwiLFwiXHU3QzU2XHU5QjM5XHU1N0RFXHVEODQ1XHVERjZDXHU1QzUzXHU2NEQzXHVEODY1XHVEQ0QwXHVEODU4XHVERjM1XHVEODVDXHVERDY0XHU4NkFEXHVEODQzXHVERDI4XHVEODVCXHVERDIyXHVEODUyXHVERUUyXHVEODQzXHVERDcxXCJdLFxuW1wiOWY0ZlwiLFwiXHU1MUZFXHVEODQ3XHVERjBGXHU1RDhFXHU5NzAzXHVEODQ3XHVEREQxXHU5RTgxXHU5MDRDXHU3QjFGXHU5QjAyXHU1Q0QxXHU3QkEzXHU2MjY4XHU2MzM1XHU5QUZGXHU3QkNGXHU5QjJBXHU3QzdFXHU5QjJFXHU3QzQyXHU3Qzg2XHU5QzE1XHU3QkZDXHU5QjA5XHU5RjE3XHU5QzFCXHVEODUyXHVERDNFXHU5RjVBXHU1NTczXHU1QkMzXHU0RkZEXHU5RTk4XHU0RkYyXHU1MjYwXHUzRTA2XHU1MkQxXHU1NzY3XHU1MDU2XHU1OUI3XHU1RTEyXHU5N0M4XHU5REFCXHU4RjVDXHU1NDY5XHU5N0I0XHU5OTQwXHU5N0JBXHU1MzJDXHU2MTMwXCJdLFxuW1wiOWZhMVwiLFwiXHU2OTJDXHU1M0RBXHU5QzBBXHU5RDAyXHU0QzNCXHU5NjQxXHU2OTgwXHU1MEE2XHU3NTQ2XHVEODQ1XHVERjZEXHU5OURBXHU1MjczXCJdLFxuW1wiOWZhZVwiLFwiXHU5MTU5XHU5NjgxXHU5MTVDXCJdLFxuW1wiOWZiMlwiLFwiXHU5MTUxXHVEODYzXHVERTk3XHU2MzdGXHVEODVCXHVERDIzXHU2QUNBXHU1NjExXHU5MThFXHU3NTdBXHU2Mjg1XHVEODQwXHVERkZDXHU3MzRGXHU3QzcwXHVEODU3XHVEQzIxXHVEODRGXHVEQ0ZEXCJdLFxuW1wiOWZjMVwiLFwiXHVEODUyXHVERDE5XHU3NkQ2XHU5QjlEXHU0RTJBXHVEODQzXHVEQ0Q0XHU4M0JFXHU4ODQyXCJdLFxuW1wiOWZjOVwiLFwiXHU1QzRBXHU2OUMwXHU1MEVEXHU1NzdBXHU1MjFGXHU1REY1XHU0RUNFXHU2QzMxXHVEODQwXHVEREYyXHU0RjM5XHU1NDlDXHU1NERBXHU1MjlBXHU4RDgyXHUzNUZFXHU1RjBDXHUzNUYzXCJdLFxuW1wiOWZkYlwiLFwiXHU2QjUyXHU5MTdDXHU5RkE1XHU5Qjk3XHU5ODJFXHU5OEI0XHU5QUJBXHU5RUE4XHU5RTg0XHU3MTdBXHU3QjE0XCJdLFxuW1wiOWZlN1wiLFwiXHU2QkZBXHU4ODE4XHU3Rjc4XCJdLFxuW1wiOWZlYlwiLFwiXHU1NjIwXHVEODY5XHVERTRBXHU4RTc3XHU5RjUzXCJdLFxuW1wiOWZmMFwiLFwiXHU4REQ0XHU4RTRGXHU5RTFDXHU4RTAxXHU2MjgyXHVEODYwXHVERjdEXHU4RTI4XHU4RTc1XHU3QUQzXHVEODUyXHVERTc3XHU3QTNFXHU3OEQ4XHU2Q0VBXHU4QTY3XHU3NjA3XCJdLFxuW1wiYTA0MFwiLFwiXHVEODYyXHVERTVBXHU5RjI2XHU2Q0NFXHU4N0Q2XHU3NUMzXHVEODY4XHVERUIyXHU3ODUzXHVEODdFXHVEQzQwXHU4RDBDXHU3MkUyXHU3MzcxXHU4QjJEXHU3MzAyXHU3NEYxXHU4Q0VCXHVEODUyXHVERUJCXHU4NjJGXHU1RkJBXHU4OEEwXHU0NEI3XCJdLFxuW1wiYTA1NVwiLFwiXHVEODQ2XHVEQzNCXHVEODVCXHVERTA1XCJdLFxuW1wiYTA1OFwiLFwiXHU4QTdFXHVEODQ5XHVERDFCXCJdLFxuW1wiYTA1YlwiLFwiXHU2MEZEXHU3NjY3XHU5QUQ3XHU5RDQ0XHU5MzZFXHU5QjhGXHU4N0Y1XCJdLFxuW1wiYTA2M1wiLFwiXHU4ODBGXHU4Q0Y3XHU3MzJDXHU5NzIxXHU5QkIwXHUzNUQ2XHU3MkIyXHU0QzA3XHU3QzUxXHU5OTRBXHVEODU4XHVERDU5XHU2MTU5XHU0QzA0XHU5RTk2XHU2MTdEXCJdLFxuW1wiYTA3M1wiLFwiXHU1NzVGXHU2MTZGXHU2MkE2XHU2MjM5XHU2MkNFXHUzQTVDXHU2MUUyXHU1M0FBXHVEODRDXHVERkY1XHU2MzY0XHU2ODAyXHUzNUQyXCJdLFxuW1wiYTBhMVwiLFwiXHU1RDU3XHVEODYyXHVERkMyXHU4RkRBXHVEODYzXHVERTM5XCJdLFxuW1wiYTBhNlwiLFwiXHU1MEQ5XHVEODQ3XHVERDQ2XHU3OTA2XHU1MzMyXHU5NjM4XHVEODQzXHVERjNCXHU0MDY1XCJdLFxuW1wiYTBhZVwiLFwiXHU3N0ZFXCJdLFxuW1wiYTBiMFwiLFwiXHU3Q0MyXHVEODU3XHVERjFBXHU3Q0RBXHU3QTJEXHU4MDY2XHU4MDYzXHU3RDREXHU3NTA1XHU3NEYyXHU4OTk0XHU4MjFBXHU2NzBDXHU4MDYyXHVEODVEXHVEQzg2XHU4MDVCXHU3NEYwXHU4MTAzXHU3NzI0XHU4OTg5XHVEODU5XHVERkNDXHU3NTUzXHVEODVCXHVERUQxXHU4N0E5XHU4N0NFXHU4MUM4XHU4NzhDXHU4QTQ5XHU4Q0FEXHU4QjQzXHU3NzJCXHU3NEY4XHU4NERBXHUzNjM1XHU2OUIyXHU4REE2XCJdLFxuW1wiYTBkNFwiLFwiXHU4OUE5XHU3NDY4XHU2REI5XHU4N0MxXHVEODUwXHVEQzExXHU3NEU3XHUzRERCXHU3MTc2XHU2MEE0XHU2MTlDXHUzQ0QxXHU3MTYyXHU2MDc3XCJdLFxuW1wiYTBlMlwiLFwiXHU3RjcxXHVEODYyXHVERjJEXHU3MjUwXHU2MEU5XHU0QjdFXHU1MjIwXHUzQzE4XHVEODRGXHVEQ0M3XHVEODU3XHVERUQ3XHVEODVEXHVERTU2XHVEODU1XHVERDMxXHVEODQ2XHVERDQ0XHVEODQ0XHVERUZFXHVEODY2XHVERDAzXHVEODVCXHVERERDXHVEODVDXHVEQ0FEXHU1Q0MxXHVEODU4XHVEREFEXHVEODYyXHVERTBGXHVEODREXHVERTc3XHVEODQwXHVEQ0VFXHVEODVBXHVEQzQ2XHVEODUzXHVERjBFXHU0NTYyXHU1QjFGXHVEODU4XHVERjRDXHU5RjUwXHU5RUE2XHVEODU4XHVERTZCXCJdLFxuW1wiYTNjMFwiLFwiXHUyNDAwXCIsMzEsXCJcdTI0MjFcIl0sXG5bXCJjNmExXCIsXCJcdTI0NjBcIiw5LFwiXHUyNDc0XCIsOSxcIlx1MjE3MFwiLDksXCJcdTRFMzZcdTRFM0ZcdTRFODVcdTRFQTBcdTUxODJcdTUxOTZcdTUxQUJcdTUyRjlcdTUzMzhcdTUzNjlcdTUzQjZcdTU5MEFcdTVCODBcdTVEREJcdTJGMzNcdTVFN0ZcdTVFRjRcdTVGNTBcdTVGNjFcdTY1MzRcdTY1RTBcdTc1OTJcdTc2NzZcdThGQjVcdTk2QjZcdTAwQThcdTAyQzZcdTMwRkRcdTMwRkVcdTMwOURcdTMwOUVcdTMwMDNcdTRFRERcdTMwMDVcdTMwMDZcdTMwMDdcdTMwRkNcdUZGM0JcdUZGM0RcdTI3M0RcdTMwNDFcIiwyM10sXG5bXCJjNzQwXCIsXCJcdTMwNTlcIiw1OCxcIlx1MzBBMVx1MzBBMlx1MzBBM1x1MzBBNFwiXSxcbltcImM3YTFcIixcIlx1MzBBNVwiLDgxLFwiXHUwNDEwXCIsNSxcIlx1MDQwMVx1MDQxNlwiLDRdLFxuW1wiYzg0MFwiLFwiXHUwNDFCXCIsMjYsXCJcdTA0NTFcdTA0MzZcIiwyNSxcIlx1MjFFN1x1MjFCOFx1MjFCOVx1MzFDRlx1RDg0MFx1RENDQ1x1NEU1QVx1RDg0MFx1REM4QVx1NTIwMlx1NDQ5MVwiXSxcbltcImM4YTFcIixcIlx1OUZCMFx1NTE4OFx1OUZCMVx1RDg1RFx1REUwN1wiXSxcbltcImM4Y2RcIixcIlx1RkZFMlx1RkZFNFx1RkYwN1x1RkYwMlx1MzIzMVx1MjExNlx1MjEyMVx1MzA5Qlx1MzA5Q1x1MkU4MFx1MkU4NFx1MkU4Nlx1MkU4N1x1MkU4OFx1MkU4QVx1MkU4Q1x1MkU4RFx1MkU5NVx1MkU5Q1x1MkU5RFx1MkVBNVx1MkVBN1x1MkVBQVx1MkVBQ1x1MkVBRVx1MkVCNlx1MkVCQ1x1MkVCRVx1MkVDNlx1MkVDQVx1MkVDQ1x1MkVDRFx1MkVDRlx1MkVENlx1MkVEN1x1MkVERVx1MkVFM1wiXSxcbltcImM4ZjVcIixcIlx1MDI4M1x1MDI1MFx1MDI1Qlx1MDI1NFx1MDI3NVx1MDE1M1x1MDBGOFx1MDE0Qlx1MDI4QVx1MDI2QVwiXSxcbltcImY5ZmVcIixcIlx1RkZFRFwiXSxcbltcImZhNDBcIixcIlx1RDg0MVx1REQ0N1x1OTJEQlx1RDg0MVx1RERERlx1RDg0Rlx1REZDNVx1ODU0Q1x1NDJCNVx1NzNFRlx1NTFCNVx1MzY0OVx1RDg1Mlx1REQ0Mlx1RDg2Mlx1RERFNFx1OTM0NFx1RDg0Nlx1REREQlx1ODJFRVx1RDg0Rlx1RENDOFx1NzgzQ1x1Njc0NFx1NjJERlx1RDg1Mlx1REQzM1x1RDg2Mlx1RERBQVx1RDg0MFx1REVBMFx1RDg1QVx1REZCM1x1RDg0NFx1REYwNVx1NEZBQlx1RDg0OVx1RENFRFx1NTAwOFx1RDg1Qlx1REQyOVx1RDg1RVx1REU4NFx1RDg0RFx1REUwMFx1RDg1Mlx1REVCMVx1RDg0OVx1REQxM1x1NTAyOVx1RDg0MFx1REY3RVx1NUZBNFx1RDg0MFx1REY4MFx1RDg0MFx1REY0N1x1NkVEQlx1RDg0MVx1REMxRlx1NTA3RFx1NTEwMVx1MzQ3QVx1NTEwRVx1OTg2Q1x1Mzc0M1x1ODQxNlx1RDg1Mlx1RERBNFx1RDg0MVx1REM4N1x1NTE2MFx1RDg0Q1x1REZCNFx1NTE2QVx1RDg0Mlx1REZGRlx1RDg0OFx1RENGQ1x1RDg0MFx1REVFNVx1RDg0OVx1REQzMFx1RDg0MVx1REQ4RVx1RDg0Q1x1REUzM1x1RDg0Nlx1REQ4M1x1NUI4Mlx1ODc3RFx1RDg0MVx1RERCM1x1RDg0Rlx1REM5OVx1NTFCMlx1NTFCOFwiXSxcbltcImZhYTFcIixcIlx1OUQzNFx1NTFDOVx1NTFDRlx1NTFEMVx1M0NEQ1x1NTFEM1x1RDg1Mlx1REVBNlx1NTFCM1x1NTFFMlx1NTM0Mlx1NTFFRFx1ODNDRFx1NjkzRVx1RDg0RFx1REYyRFx1NUY3Qlx1NTIwQlx1NTIyNlx1NTIzQ1x1NTJCNVx1NTI1N1x1NTI5NFx1NTJCOVx1NTJDNVx1N0MxNVx1ODU0Mlx1NTJFMFx1ODYwRFx1RDg1QVx1REYxM1x1NTMwNVx1RDg2Mlx1REVERVx1NTU0OVx1NkVEOVx1RDg0Rlx1REY4MFx1RDg0Mlx1REQ1NFx1RDg0Rlx1REZFQ1x1NTMzM1x1NTM0NFx1RDg0Mlx1REZFMlx1NkNDQlx1RDg0NVx1REYyNlx1NjgxQlx1NzNENVx1NjA0QVx1M0VBQVx1MzhDQ1x1RDg0NVx1REVFOFx1NzFERFx1NDRBMlx1NTM2RFx1NTM3NFx1RDg2MVx1REVBQlx1NTM3RVx1NTM3Rlx1RDg0NVx1REQ5Nlx1RDg0NVx1REUxM1x1NzdFNlx1NTM5M1x1RDg2Mlx1REU5Qlx1NTNBMFx1NTNBQlx1NTNBRVx1NzNBN1x1RDg1NVx1REY3Mlx1M0Y1OVx1NzM5Q1x1NTNDMVx1NTNDNVx1NkM0OVx1NEU0OVx1NTdGRVx1NTNEOVx1M0FBQlx1RDg0Mlx1REY4Rlx1NTNFMFx1RDg0Rlx1REZFQlx1RDg0Qlx1RERBM1x1NTNGNlx1RDg0M1x1REM3N1x1NTQxM1x1NzA3OVx1NTUyQlx1NjY1N1x1NkQ1Qlx1NTQ2RFx1RDg1QVx1REY1M1x1RDg0M1x1REQ3NFx1NTU1RFx1NTQ4Rlx1NTRBNFx1NDdBNlx1RDg0NVx1REYwRFx1RDg0M1x1REVERFx1M0RCNFx1RDg0M1x1REQ0RFwiXSxcbltcImZiNDBcIixcIlx1RDg2Mlx1RERCQ1x1RDg0OVx1REU5OFx1NTU0N1x1NENFRFx1NTQyRlx1NzQxN1x1NTU4Nlx1NTVBOVx1NTYwNVx1RDg0Nlx1RENEN1x1RDg1MFx1REMzQVx1NDU1Mlx1RDg1MVx1REMzNVx1NjZCM1x1RDg0NFx1RENCNFx1NTYzN1x1NjZDRFx1RDg0Q1x1REU4QVx1NjZBNFx1NjZBRFx1NTY0RFx1NTY0Rlx1NzhGMVx1NTZGMVx1OTc4N1x1NTNGRVx1NTcwMFx1NTZFRlx1NTZFRFx1RDg2Mlx1REY2Nlx1MzYyM1x1RDg0NFx1REU0Rlx1NTc0Nlx1RDg1MFx1RERBNVx1NkM2RVx1NzA4Qlx1NTc0Mlx1MzZCMVx1RDg1Qlx1REM3RVx1NTdFNlx1RDg0NVx1REMxNlx1NTgwM1x1RDg0NVx1REM1NFx1RDg1MFx1REY2M1x1NTgyNlx1RDg1Mlx1REZGNVx1NTg1Q1x1NThBQVx1MzU2MVx1NThFMFx1NThEQ1x1RDg0NFx1REUzQ1x1NThGQlx1NUJGRlx1NTc0M1x1RDg2OFx1REQ1MFx1RDg1MFx1REU3OFx1OTNEM1x1MzVBMVx1NTkxRlx1NjhBNlx1MzZDM1x1NkU1OVwiXSxcbltcImZiYTFcIixcIlx1RDg0NVx1REUzRVx1NUEyNFx1NTU1M1x1RDg0NVx1REU5Mlx1ODUwNVx1NTlDOVx1RDg0M1x1REQ0RVx1RDg1Qlx1REM4MVx1RDg1Qlx1REQyQVx1RDg0NVx1REZEQ1x1NTlEOVx1RDg0NVx1REZGQlx1RDg0NVx1REZCMlx1RDg1Qlx1RERBNlx1NkQ3MVx1RDg0Nlx1REMyOFx1RDg0NVx1REVENVx1NTlGOVx1RDg1Qlx1REU0NVx1NUFBQlx1NUE2M1x1MzZFNlx1RDg1Mlx1RERBOVx1NUE3N1x1MzcwOFx1NUE5Nlx1NzQ2NVx1NUFEM1x1RDg1Qlx1REZBMVx1RDg0OVx1REQ1NFx1M0Q4NVx1RDg0Nlx1REQxMVx1MzczMlx1RDg0NVx1REVCOFx1NUU4M1x1NTJEMFx1NUI3Nlx1NjU4OFx1NUI3Q1x1RDg1RVx1REUwRVx1NDAwNFx1NDg1RFx1RDg0MFx1REUwNFx1NUJENVx1NjE2MFx1RDg0Nlx1REUzNFx1RDg1Nlx1RERDQ1x1RDg0MVx1RERBNVx1NUJGM1x1NUI5RFx1NEQxMFx1NUMwNVx1RDg0Nlx1REY0NFx1NUMxM1x1NzNDRVx1NUMxNFx1RDg0N1x1RENBNVx1RDg1QVx1REYyOFx1NUM0OVx1NDhERFx1NUM4NVx1NUNFOVx1NUNFRlx1NUQ4Qlx1RDg0N1x1RERGOVx1RDg0N1x1REUzN1x1NUQxMFx1NUQxOFx1NUQ0Nlx1RDg0N1x1REVBNFx1NUNCQVx1NUREN1x1ODJGQ1x1MzgyRFx1RDg1Mlx1REQwMVx1RDg0OFx1REM0OVx1RDg0OFx1REQ3M1x1ODI4N1x1MzgzNlx1M0JDMlx1NUUyRVx1NkE4QVx1NUU3NVx1NUU3QVx1RDg1MVx1RENCQ1x1RDg0M1x1RENEM1x1NTNBNlx1NEVCN1x1NUVEMFx1NTNBOFx1RDg0NVx1REY3MVx1NUUwOVx1NUVGNFx1RDg2MVx1REM4MlwiXSxcbltcImZjNDBcIixcIlx1NUVGOVx1NUVGQlx1MzhBMFx1NUVGQ1x1NjgzRVx1OTQxQlx1NUYwRFx1RDg0MFx1RERDMVx1RDg3RVx1REM5NFx1M0FERVx1NDhBRVx1RDg0NFx1REYzQVx1NUYzQVx1RDg1QVx1REM4OFx1RDg0OFx1REZEMFx1NUY1OFx1RDg0OVx1REM3MVx1NUY2M1x1OTdCRFx1RDg1Qlx1REU2RVx1NUY3Mlx1OTM0MFx1RDg2Mlx1REUzNlx1NUZBN1x1NURCNlx1M0Q1Rlx1RDg1NFx1REU1MFx1RDg0N1x1REY2QVx1RDg1Q1x1RENGOFx1RDg0OVx1REU2OFx1OTFENlx1RDg0MFx1REU5RVx1RDg2Mlx1REUyOVx1NjAzMVx1NjY4NVx1RDg0Nlx1REM3N1x1Mzk2M1x1M0RDN1x1MzYzOVx1NTc5MFx1RDg0OVx1REZCNFx1Nzk3MVx1M0U0MFx1NjA5RVx1NjBBNFx1NjBCM1x1RDg1Mlx1REQ4Mlx1RDg1Mlx1REQ4Rlx1RDg1RVx1REU1M1x1NzRBNFx1NTBFMVx1NUFBMFx1NjE2NFx1ODQyNFx1NjE0Mlx1RDg3RVx1RENBNlx1RDg1Qlx1REVEMlx1NjE4MVx1NTFGNFx1RDg0MVx1REU1Nlx1NjE4N1x1NUJBQVx1RDg0Rlx1REZCN1wiXSxcbltcImZjYTFcIixcIlx1RDg0QVx1REM1Rlx1NjFEM1x1RDg2Mlx1REY5RFx1RDg2Nlx1REQ1RFx1NjFEMFx1MzkzMlx1RDg0QVx1REQ4MFx1RDg0QVx1RENDMVx1NjAyM1x1NjE1Q1x1NjUxRVx1NjM4Qlx1RDg0MFx1REQxOFx1NjJDNVx1RDg0NVx1REY3MFx1NjJENVx1RDg0Qlx1REUwRFx1NjM2Q1x1RDg1Mlx1RERERlx1M0ExN1x1NjQzOFx1NjNGOFx1RDg0NFx1REY4RVx1RDg0NVx1REZGQ1x1NjQ5MFx1NkY4QVx1RDg0Qlx1REUzNlx1OTgxNFx1RDg1MFx1REM4Q1x1RDg1NVx1REYxRFx1NjRFMVx1NjRFNVx1OTQ3Qlx1M0E2Nlx1NjQzQVx1M0E1N1x1NjU0RFx1NkYxNlx1RDg1Mlx1REUyOFx1RDg1Mlx1REUyM1x1NjU4NVx1NjU2RFx1NjU1Rlx1RDg0Q1x1REM3RVx1NjVCNVx1RDg1Mlx1REQ0MFx1NEIzN1x1NjVEMVx1NDBEOFx1RDg0Nlx1REMyOVx1NjVFMFx1NjVFM1x1NUZERlx1RDg0RFx1REMwMFx1NjYxOFx1RDg0Q1x1RERGN1x1RDg0Q1x1RERGOFx1NjY0NFx1RDg0Q1x1RERBNFx1RDg0Q1x1RERBNVx1NjY0Qlx1RDg0M1x1REU3NVx1NjY2N1x1RDg1NFx1RERFNlx1NjY3M1x1NjY3NFx1RDg0N1x1REUzRFx1RDg0Q1x1REUzMVx1RDg2MVx1RERGNFx1RDg0Q1x1RERDOFx1RDg1NFx1REYxM1x1NzdDNVx1RDg0QVx1RENGN1x1OTlBNFx1NjcwMlx1RDg1MFx1REY5Q1x1RDg1Mlx1REUyMVx1M0IyQlx1NjlGQVx1RDg0RFx1REZDMlx1Njc1RVx1Njc2N1x1Njc2Mlx1RDg1MFx1RERDRFx1RDg2NFx1RENFRFx1NjdEN1x1NDRFOVx1NjgyMlx1NkU1MFx1OTIzQ1x1NjgwMVx1RDg0Q1x1REZFNlx1RDg1Qlx1RERBMFx1Njg1RFwiXSxcbltcImZkNDBcIixcIlx1RDg0RFx1REM2Rlx1NjlFMVx1NkEwQlx1RDg2Mlx1REVERlx1Njk3M1x1NjhDM1x1RDg0RFx1RERDRFx1NjkwMVx1NjkwMFx1M0QzMlx1M0EwMVx1RDg0RFx1REUzQ1x1M0I4MFx1NjdBQ1x1Njk2MVx1RDg2Mlx1REU0QVx1NDJGQ1x1NjkzNlx1Njk5OFx1M0JBMVx1RDg0MFx1REZDOVx1ODM2M1x1NTA5MFx1NjlGOVx1RDg0RFx1REU1OVx1RDg0OFx1REQyQVx1NkE0NVx1RDg0RFx1REYwM1x1NkE5RFx1M0JGM1x1NjdCMVx1NkFDOFx1RDg2NFx1REQ5Q1x1M0MwRFx1NkIxRFx1RDg0Mlx1REQyM1x1NjBERVx1NkIzNVx1NkI3NFx1RDg0OVx1REZDRFx1NkVCNVx1RDg0RVx1REVEQlx1RDg0MFx1REZCNVx1RDg0Nlx1REQ1OFx1Mzc0MFx1NTQyMVx1RDg0RVx1REY1QVx1NkJFMVx1RDg0Rlx1REVGQ1x1NkJEQ1x1NkMzN1x1RDg0OVx1REM4Qlx1RDg1Mlx1RENGMVx1RDg1QVx1REY1MVx1NkM1QVx1ODIyNlx1NkM3OVx1RDg0Rlx1RERCQ1x1NDRDNVx1RDg0Rlx1RERCRFx1RDg1MFx1RERBNFx1RDg1Mlx1REQwQ1x1RDg1Mlx1REQwMFwiXSxcbltcImZkYTFcIixcIlx1RDg0Rlx1RENDOVx1MzZFNVx1M0NFQlx1RDg0M1x1REQzMlx1OUI4M1x1RDg0Q1x1RERGOVx1RDg0OVx1REM5MVx1N0Y4Rlx1NjgzN1x1RDg1Qlx1REQyNVx1RDg1Qlx1RERBMVx1RDg1Qlx1RERFQlx1NkQ5Nlx1NkQ1Q1x1NkU3Q1x1NkYwNFx1RDg1Mlx1REQ3Rlx1RDg1MFx1REM4NVx1RDg1Qlx1REU3Mlx1ODUzM1x1RDg1Qlx1REY3NFx1NTFDN1x1NkM5Q1x1NkUxRFx1ODQyRVx1RDg2Mlx1REYyMVx1NkUyRlx1RDg0Rlx1REUyRlx1NzQ1M1x1RDg0Rlx1REY4Mlx1NzlDQ1x1NkU0Rlx1NUE5MVx1RDg0Q1x1REM0Qlx1NkZGOFx1MzcwRFx1NkY5RFx1RDg0Rlx1REUzMFx1NkVGQVx1RDg0NVx1REM5N1x1RDg1MFx1REMzRFx1NDU1NVx1OTNGMFx1NkY0NFx1NkY1Q1x1M0Q0RVx1NkY3NFx1RDg2NFx1REQ3MFx1M0QzQlx1NkY5Rlx1RDg1MFx1REQ0NFx1NkZEM1x1RDg1MFx1REM5MVx1RDg1MFx1REQ1NVx1RDg1MFx1REMzOVx1RDg0Rlx1REZGMFx1RDg0Rlx1REZCNFx1RDg1MFx1REQzRlx1NTFERlx1RDg1MFx1REQ1Nlx1RDg1MFx1REQ1N1x1RDg1MFx1REQ0MFx1RDg1OFx1RERERFx1NzA0Qlx1NzA3RVx1NzBBN1x1NzA4MVx1NzBDQ1x1NzBENVx1NzBENlx1NzBERlx1NDEwNFx1M0RFOFx1NzFCNFx1NzE5Nlx1RDg1MFx1REU3N1x1NzEyQlx1NzE0NVx1NUE4OFx1NzE0QVx1NzE2RVx1NUM5Q1x1RDg1MFx1REY2NVx1NzE0Rlx1OTM2Mlx1RDg1MFx1REVDMVx1NzEyQ1x1RDg1MVx1REM1QVx1RDg1Mlx1REUyN1x1RDg1Mlx1REUyMlx1NzFCQVx1RDg2Mlx1REZFOFx1NzBCRFx1NzIwRVwiXSxcbltcImZlNDBcIixcIlx1OTQ0Mlx1NzIxNVx1NTkxMVx1OTQ0M1x1NzIyNFx1OTM0MVx1RDg1NVx1REUwNVx1NzIyRVx1NzI0MFx1RDg1Mlx1REQ3NFx1NjhCRFx1NzI1NVx1NzI1N1x1M0U1NVx1RDg0Q1x1REM0NFx1NjgwRFx1NkYzRFx1NzI4Mlx1NzMyQVx1NzMyQlx1RDg1Mlx1REMyM1x1RDg2Mlx1REMyQlx1NDhFRFx1RDg2Mlx1REMwNFx1NzMyOFx1NzMyRVx1NzNDRlx1NzNBQVx1RDg0M1x1REMzQVx1RDg1QVx1REUyRVx1NzNDOVx1NzQ0OVx1RDg1MFx1RERFMlx1RDg0NVx1REVFN1x1RDg1Mlx1REUyNFx1NjYyM1x1MzZDNVx1RDg1Mlx1RERCN1x1RDg1Mlx1REQ4RFx1RDg1Mlx1RERGQlx1NzNGN1x1NzQxNVx1NjkwM1x1RDg1Mlx1REUyNlx1NzQzOVx1RDg0MVx1RERDM1x1M0VEN1x1NzQ1Q1x1RDg0QVx1RENBRFx1NzQ2MFx1RDg2M1x1REVCMlx1NzQ0N1x1NzNFNFx1NzQ3Nlx1ODNCOVx1NzQ2Q1x1MzczMFx1NzQ3NFx1OTNGMVx1NkEyQ1x1NzQ4Mlx1NDk1M1x1RDg1Mlx1REU4Q1wiXSxcbltcImZlYTFcIixcIlx1RDg1MFx1REQ1Rlx1RDg1Mlx1REU3OVx1RDg2Mlx1REY4Rlx1NUI0Nlx1RDg2M1x1REMwM1x1RDg0Nlx1REM5RVx1NzRDOFx1RDg0Nlx1REQ4OFx1NzUwRVx1NzRFOVx1NzUxRVx1RDg2M1x1REVEOVx1RDg0Nlx1REU0Qlx1NUJEN1x1RDg2M1x1REVBQ1x1OTM4NVx1NzU0RFx1NzU0QVx1NzU2N1x1NzU2RVx1RDg1M1x1REY4Mlx1M0YwNFx1RDg1M1x1REQxM1x1NzU4RVx1NzQ1RFx1NzU5RVx1NzVCNFx1NzYwMlx1NzYyQ1x1NzY1MVx1NzY0Rlx1NzY2Rlx1NzY3Nlx1RDg1OFx1REZGNVx1NzY5MFx1ODFFRlx1MzdGOFx1RDg1QVx1REQxMVx1RDg1QVx1REQwRVx1NzZBMVx1NzZBNVx1NzZCN1x1NzZDQ1x1RDg1Qlx1REY5Rlx1ODQ2Mlx1RDg1NFx1REM5RFx1RDg1NFx1REQ3RFx1RDg0N1x1REUxQ1x1NzcxRVx1NzcyNlx1Nzc0MFx1NjRBRlx1RDg1NFx1REUyMFx1Nzc1OFx1RDg0Q1x1REVBQ1x1NzdBRlx1RDg2Mlx1REQ2NFx1RDg2Mlx1REQ2OFx1RDg0NVx1REVDMVx1NzdGNFx1NzgwOVx1RDg0NFx1REY3Nlx1RDg1Mlx1REUxMlx1NjhDQVx1NzhBRlx1NzhDN1x1NzhEM1x1OTZBNVx1NzkyRVx1RDg1NVx1RERFMFx1NzhEN1x1NzkzNFx1NzhCMVx1RDg1RFx1REUwQ1x1OEZCOFx1ODg4NFx1RDg2Mlx1REYyQlx1RDg1OFx1REM4M1x1RDg0OVx1REUxQ1x1Nzk4Nlx1ODkwMFx1NjkwMlx1Nzk4MFx1RDg1Nlx1REM1N1x1Nzk5RFx1RDg1RVx1REYzOVx1NzkzQ1x1NzlBOVx1NkUyQVx1RDg1Q1x1REQyNlx1M0VBOFx1NzlDNlx1RDg2NFx1REQwRFx1NzlENFwiXVxuXVxuIiwgIlwidXNlIHN0cmljdFwiO1xuXG4vLyBEZXNjcmlwdGlvbiBvZiBzdXBwb3J0ZWQgZG91YmxlIGJ5dGUgZW5jb2RpbmdzIGFuZCBhbGlhc2VzLlxuLy8gVGFibGVzIGFyZSBub3QgcmVxdWlyZSgpLWQgdW50aWwgdGhleSBhcmUgbmVlZGVkIHRvIHNwZWVkIHVwIGxpYnJhcnkgbG9hZC5cbi8vIHJlcXVpcmUoKS1zIGFyZSBkaXJlY3QgdG8gc3VwcG9ydCBCcm93c2VyaWZ5LlxuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBcbiAgICAvLyA9PSBKYXBhbmVzZS9TaGlmdEpJUyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICAgLy8gQWxsIGphcGFuZXNlIGVuY29kaW5ncyBhcmUgYmFzZWQgb24gSklTIFggc2V0IG9mIHN0YW5kYXJkczpcbiAgICAvLyBKSVMgWCAwMjAxIC0gU2luZ2xlLWJ5dGUgZW5jb2Rpbmcgb2YgQVNDSUkgKyBcdTAwQTUgKyBLYW5hIGNoYXJzIGF0IDB4QTEtMHhERi5cbiAgICAvLyBKSVMgWCAwMjA4IC0gTWFpbiBzZXQgb2YgNjg3OSBjaGFyYWN0ZXJzLCBwbGFjZWQgaW4gOTR4OTQgcGxhbmUsIHRvIGJlIGVuY29kZWQgYnkgMiBieXRlcy4gXG4gICAgLy8gICAgICAgICAgICAgIEhhcyBzZXZlcmFsIHZhcmlhdGlvbnMgaW4gMTk3OCwgMTk4MywgMTk5MCBhbmQgMTk5Ny5cbiAgICAvLyBKSVMgWCAwMjEyIC0gU3VwcGxlbWVudGFyeSBwbGFuZSBvZiA2MDY3IGNoYXJzIGluIDk0eDk0IHBsYW5lLiAxOTkwLiBFZmZlY3RpdmVseSBkZWFkLlxuICAgIC8vIEpJUyBYIDAyMTMgLSBFeHRlbnNpb24gYW5kIG1vZGVybiByZXBsYWNlbWVudCBvZiAwMjA4IGFuZCAwMjEyLiBUb3RhbCBjaGFyczogMTEyMzMuXG4gICAgLy8gICAgICAgICAgICAgIDIgcGxhbmVzLCBmaXJzdCBpcyBzdXBlcnNldCBvZiAwMjA4LCBzZWNvbmQgLSByZXZpc2VkIDAyMTIuXG4gICAgLy8gICAgICAgICAgICAgIEludHJvZHVjZWQgaW4gMjAwMCwgcmV2aXNlZCAyMDA0LiBTb21lIGNoYXJhY3RlcnMgYXJlIGluIFVuaWNvZGUgUGxhbmUgMiAoMHgyeHh4eClcblxuICAgIC8vIEJ5dGUgZW5jb2RpbmdzIGFyZTpcbiAgICAvLyAgKiBTaGlmdF9KSVM6IENvbXBhdGlibGUgd2l0aCAwMjAxLCB1c2VzIG5vdCBkZWZpbmVkIGNoYXJzIGluIHRvcCBoYWxmIGFzIGxlYWQgYnl0ZXMgZm9yIGRvdWJsZS1ieXRlXG4gICAgLy8gICAgICAgICAgICAgICBlbmNvZGluZyBvZiAwMjA4LiBMZWFkIGJ5dGUgcmFuZ2VzOiAweDgxLTB4OUYsIDB4RTAtMHhFRjsgVHJhaWwgYnl0ZSByYW5nZXM6IDB4NDAtMHg3RSwgMHg4MC0weDlFLCAweDlGLTB4RkMuXG4gICAgLy8gICAgICAgICAgICAgICBXaW5kb3dzIENQOTMyIGlzIGEgc3VwZXJzZXQgb2YgU2hpZnRfSklTLiBTb21lIGNvbXBhbmllcyBhZGRlZCBtb3JlIGNoYXJzLCBub3RhYmx5IEtEREkuXG4gICAgLy8gICogRVVDLUpQOiAgICBVcCB0byAzIGJ5dGVzIHBlciBjaGFyYWN0ZXIuIFVzZWQgbW9zdGx5IG9uICpuaXhlcy5cbiAgICAvLyAgICAgICAgICAgICAgIDB4MDAtMHg3RiAgICAgICAtIGxvd2VyIHBhcnQgb2YgMDIwMVxuICAgIC8vICAgICAgICAgICAgICAgMHg4RSwgMHhBMS0weERGIC0gdXBwZXIgcGFydCBvZiAwMjAxXG4gICAgLy8gICAgICAgICAgICAgICAoMHhBMS0weEZFKXgyICAgLSAwMjA4IHBsYW5lICg5NHg5NCkuXG4gICAgLy8gICAgICAgICAgICAgICAweDhGLCAoMHhBMS0weEZFKXgyIC0gMDIxMiBwbGFuZSAoOTR4OTQpLlxuICAgIC8vICAqIEpJUyBYIDIwODogNy1iaXQsIGRpcmVjdCBlbmNvZGluZyBvZiAwMjA4LiBCeXRlIHJhbmdlczogMHgyMS0weDdFICg5NCB2YWx1ZXMpLiBVbmNvbW1vbi5cbiAgICAvLyAgICAgICAgICAgICAgIFVzZWQgYXMtaXMgaW4gSVNPMjAyMiBmYW1pbHkuXG4gICAgLy8gICogSVNPMjAyMi1KUDogU3RhdGVmdWwgZW5jb2RpbmcsIHdpdGggZXNjYXBlIHNlcXVlbmNlcyB0byBzd2l0Y2ggYmV0d2VlbiBBU0NJSSwgXG4gICAgLy8gICAgICAgICAgICAgICAgMDIwMS0xOTc2IFJvbWFuLCAwMjA4LTE5NzgsIDAyMDgtMTk4My5cbiAgICAvLyAgKiBJU08yMDIyLUpQLTE6IEFkZHMgZXNjIHNlcSBmb3IgMDIxMi0xOTkwLlxuICAgIC8vICAqIElTTzIwMjItSlAtMjogQWRkcyBlc2Mgc2VxIGZvciBHQjIzMTMtMTk4MCwgS1NYMTAwMS0xOTkyLCBJU084ODU5LTEsIElTTzg4NTktNy5cbiAgICAvLyAgKiBJU08yMDIyLUpQLTM6IEFkZHMgZXNjIHNlcSBmb3IgMDIwMS0xOTc2IEthbmEgc2V0LCAwMjEzLTIwMDAgUGxhbmVzIDEsIDIuXG4gICAgLy8gICogSVNPMjAyMi1KUC0yMDA0OiBBZGRzIDAyMTMtMjAwNCBQbGFuZSAxLlxuICAgIC8vXG4gICAgLy8gQWZ0ZXIgSklTIFggMDIxMyBhcHBlYXJlZCwgU2hpZnRfSklTLTIwMDQsIEVVQy1KSVNYMDIxMyBhbmQgSVNPMjAyMi1KUC0yMDA0IGZvbGxvd2VkLCB3aXRoIGp1c3QgY2hhbmdpbmcgdGhlIHBsYW5lcy5cbiAgICAvL1xuICAgIC8vIE92ZXJhbGwsIGl0IHNlZW1zIHRoYXQgaXQncyBhIG1lc3MgOiggaHR0cDovL3d3dzgucGxhbGEub3IuanAvdGt1Ym90YTEvdW5pY29kZS1zeW1ib2xzLW1hcDIuaHRtbFxuXG4gICAgJ3NoaWZ0amlzJzoge1xuICAgICAgICB0eXBlOiAnX2RiY3MnLFxuICAgICAgICB0YWJsZTogZnVuY3Rpb24oKSB7IHJldHVybiByZXF1aXJlKCcuL3RhYmxlcy9zaGlmdGppcy5qc29uJykgfSxcbiAgICAgICAgZW5jb2RlQWRkOiB7J1xcdTAwYTUnOiAweDVDLCAnXFx1MjAzRSc6IDB4N0V9LFxuICAgICAgICBlbmNvZGVTa2lwVmFsczogW3tmcm9tOiAweEVENDAsIHRvOiAweEY5NDB9XSxcbiAgICB9LFxuICAgICdjc3NoaWZ0amlzJzogJ3NoaWZ0amlzJyxcbiAgICAnbXNrYW5qaSc6ICdzaGlmdGppcycsXG4gICAgJ3NqaXMnOiAnc2hpZnRqaXMnLFxuICAgICd3aW5kb3dzMzFqJzogJ3NoaWZ0amlzJyxcbiAgICAnbXMzMWonOiAnc2hpZnRqaXMnLFxuICAgICd4c2ppcyc6ICdzaGlmdGppcycsXG4gICAgJ3dpbmRvd3M5MzInOiAnc2hpZnRqaXMnLFxuICAgICdtczkzMic6ICdzaGlmdGppcycsXG4gICAgJzkzMic6ICdzaGlmdGppcycsXG4gICAgJ2NwOTMyJzogJ3NoaWZ0amlzJyxcblxuICAgICdldWNqcCc6IHtcbiAgICAgICAgdHlwZTogJ19kYmNzJyxcbiAgICAgICAgdGFibGU6IGZ1bmN0aW9uKCkgeyByZXR1cm4gcmVxdWlyZSgnLi90YWJsZXMvZXVjanAuanNvbicpIH0sXG4gICAgICAgIGVuY29kZUFkZDogeydcXHUwMGE1JzogMHg1QywgJ1xcdTIwM0UnOiAweDdFfSxcbiAgICB9LFxuXG4gICAgLy8gVE9ETzogS0RESSBleHRlbnNpb24gdG8gU2hpZnRfSklTXG4gICAgLy8gVE9ETzogSUJNIENDU0lEIDk0MiA9IENQOTMyLCBidXQgRjAtRjkgY3VzdG9tIGNoYXJzIGFuZCBvdGhlciBjaGFyIGNoYW5nZXMuXG4gICAgLy8gVE9ETzogSUJNIENDU0lEIDk0MyA9IFNoaWZ0X0pJUyA9IENQOTMyIHdpdGggb3JpZ2luYWwgU2hpZnRfSklTIGxvd2VyIDEyOCBjaGFycy5cblxuXG4gICAgLy8gPT0gQ2hpbmVzZS9HQksgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgIC8vIGh0dHA6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvR0JLXG4gICAgLy8gV2UgbW9zdGx5IGltcGxlbWVudCBXM0MgcmVjb21tZW5kYXRpb246IGh0dHBzOi8vd3d3LnczLm9yZy9UUi9lbmNvZGluZy8jZ2JrLWVuY29kZXJcblxuICAgIC8vIE9sZGVzdCBHQjIzMTIgKDE5ODEsIH43NjAwIGNoYXJzKSBpcyBhIHN1YnNldCBvZiBDUDkzNlxuICAgICdnYjIzMTInOiAnY3A5MzYnLFxuICAgICdnYjIzMTI4MCc6ICdjcDkzNicsXG4gICAgJ2diMjMxMjE5ODAnOiAnY3A5MzYnLFxuICAgICdjc2diMjMxMic6ICdjcDkzNicsXG4gICAgJ2NzaXNvNThnYjIzMTI4MCc6ICdjcDkzNicsXG4gICAgJ2V1Y2NuJzogJ2NwOTM2JyxcblxuICAgIC8vIE1pY3Jvc29mdCdzIENQOTM2IGlzIGEgc3Vic2V0IGFuZCBhcHByb3hpbWF0aW9uIG9mIEdCSy5cbiAgICAnd2luZG93czkzNic6ICdjcDkzNicsXG4gICAgJ21zOTM2JzogJ2NwOTM2JyxcbiAgICAnOTM2JzogJ2NwOTM2JyxcbiAgICAnY3A5MzYnOiB7XG4gICAgICAgIHR5cGU6ICdfZGJjcycsXG4gICAgICAgIHRhYmxlOiBmdW5jdGlvbigpIHsgcmV0dXJuIHJlcXVpcmUoJy4vdGFibGVzL2NwOTM2Lmpzb24nKSB9LFxuICAgIH0sXG5cbiAgICAvLyBHQksgKH4yMjAwMCBjaGFycykgaXMgYW4gZXh0ZW5zaW9uIG9mIENQOTM2IHRoYXQgYWRkZWQgdXNlci1tYXBwZWQgY2hhcnMgYW5kIHNvbWUgb3RoZXIuXG4gICAgJ2diayc6IHtcbiAgICAgICAgdHlwZTogJ19kYmNzJyxcbiAgICAgICAgdGFibGU6IGZ1bmN0aW9uKCkgeyByZXR1cm4gcmVxdWlyZSgnLi90YWJsZXMvY3A5MzYuanNvbicpLmNvbmNhdChyZXF1aXJlKCcuL3RhYmxlcy9nYmstYWRkZWQuanNvbicpKSB9LFxuICAgIH0sXG4gICAgJ3hnYmsnOiAnZ2JrJyxcbiAgICAnaXNvaXI1OCc6ICdnYmsnLFxuXG4gICAgLy8gR0IxODAzMCBpcyBhbiBhbGdvcml0aG1pYyBleHRlbnNpb24gb2YgR0JLLlxuICAgIC8vIE1haW4gc291cmNlOiBodHRwczovL3d3dy53My5vcmcvVFIvZW5jb2RpbmcvI2diay1lbmNvZGVyXG4gICAgLy8gaHR0cDovL2ljdS1wcm9qZWN0Lm9yZy9kb2NzL3BhcGVycy9nYjE4MDMwLmh0bWxcbiAgICAvLyBodHRwOi8vc291cmNlLmljdS1wcm9qZWN0Lm9yZy9yZXBvcy9pY3UvZGF0YS90cnVuay9jaGFyc2V0L2RhdGEveG1sL2diLTE4MDMwLTIwMDAueG1sXG4gICAgLy8gaHR0cDovL3d3dy5raG5nYWkuY29tL2NoaW5lc2UvY2hhcm1hcC90YmxnYmsucGhwP3BhZ2U9MFxuICAgICdnYjE4MDMwJzoge1xuICAgICAgICB0eXBlOiAnX2RiY3MnLFxuICAgICAgICB0YWJsZTogZnVuY3Rpb24oKSB7IHJldHVybiByZXF1aXJlKCcuL3RhYmxlcy9jcDkzNi5qc29uJykuY29uY2F0KHJlcXVpcmUoJy4vdGFibGVzL2diay1hZGRlZC5qc29uJykpIH0sXG4gICAgICAgIGdiMTgwMzA6IGZ1bmN0aW9uKCkgeyByZXR1cm4gcmVxdWlyZSgnLi90YWJsZXMvZ2IxODAzMC1yYW5nZXMuanNvbicpIH0sXG4gICAgICAgIGVuY29kZVNraXBWYWxzOiBbMHg4MF0sXG4gICAgICAgIGVuY29kZUFkZDogeydcdTIwQUMnOiAweEEyRTN9LFxuICAgIH0sXG5cbiAgICAnY2hpbmVzZSc6ICdnYjE4MDMwJyxcblxuXG4gICAgLy8gPT0gS29yZWFuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgIC8vIEVVQy1LUiwgS1NfQ181NjAxIGFuZCBLUyBYIDEwMDEgYXJlIGV4YWN0bHkgdGhlIHNhbWUuXG4gICAgJ3dpbmRvd3M5NDknOiAnY3A5NDknLFxuICAgICdtczk0OSc6ICdjcDk0OScsXG4gICAgJzk0OSc6ICdjcDk0OScsXG4gICAgJ2NwOTQ5Jzoge1xuICAgICAgICB0eXBlOiAnX2RiY3MnLFxuICAgICAgICB0YWJsZTogZnVuY3Rpb24oKSB7IHJldHVybiByZXF1aXJlKCcuL3RhYmxlcy9jcDk0OS5qc29uJykgfSxcbiAgICB9LFxuXG4gICAgJ2NzZXVja3InOiAnY3A5NDknLFxuICAgICdjc2tzYzU2MDExOTg3JzogJ2NwOTQ5JyxcbiAgICAnZXVja3InOiAnY3A5NDknLFxuICAgICdpc29pcjE0OSc6ICdjcDk0OScsXG4gICAgJ2tvcmVhbic6ICdjcDk0OScsXG4gICAgJ2tzYzU2MDExOTg3JzogJ2NwOTQ5JyxcbiAgICAna3NjNTYwMTE5ODknOiAnY3A5NDknLFxuICAgICdrc2M1NjAxJzogJ2NwOTQ5JyxcblxuXG4gICAgLy8gPT0gQmlnNS9UYWl3YW4vSG9uZyBLb25nID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgIC8vIFRoZXJlIGFyZSBsb3RzIG9mIHRhYmxlcyBmb3IgQmlnNSBhbmQgY3A5NTAuIFBsZWFzZSBzZWUgdGhlIGZvbGxvd2luZyBsaW5rcyBmb3IgaGlzdG9yeTpcbiAgICAvLyBodHRwOi8vbW96dHcub3JnL2RvY3MvYmlnNS8gIGh0dHA6Ly93d3cuaGFpYmxlLmRlL2JydW5vL2NoYXJzZXRzL2NvbnZlcnNpb24tdGFibGVzL0JpZzUuaHRtbFxuICAgIC8vIFZhcmlhdGlvbnMsIGluIHJvdWdobHkgbnVtYmVyIG9mIGRlZmluZWQgY2hhcnM6XG4gICAgLy8gICogV2luZG93cyBDUCA5NTA6IE1pY3Jvc29mdCB2YXJpYW50IG9mIEJpZzUuIENhbm9uaWNhbDogaHR0cDovL3d3dy51bmljb2RlLm9yZy9QdWJsaWMvTUFQUElOR1MvVkVORE9SUy9NSUNTRlQvV0lORE9XUy9DUDk1MC5UWFRcbiAgICAvLyAgKiBXaW5kb3dzIENQIDk1MTogTWljcm9zb2Z0IHZhcmlhbnQgb2YgQmlnNS1IS1NDUy0yMDAxLiBTZWVtcyB0byBiZSBuZXZlciBwdWJsaWMuIGh0dHA6Ly9tZS5hYmVsY2hldW5nLm9yZy9hcnRpY2xlcy9yZXNlYXJjaC93aGF0LWlzLWNwOTUxL1xuICAgIC8vICAqIEJpZzUtMjAwMyAoVGFpd2FuIHN0YW5kYXJkKSBhbG1vc3Qgc3VwZXJzZXQgb2YgY3A5NTAuXG4gICAgLy8gICogVW5pY29kZS1hdC1vbiAoVUFPKSAvIE1vemlsbGEgMS44LiBGYWxsaW5nIG91dCBvZiB1c2Ugb24gdGhlIFdlYi4gTm90IHN1cHBvcnRlZCBieSBvdGhlciBicm93c2Vycy5cbiAgICAvLyAgKiBCaWc1LUhLU0NTICgtMjAwMSwgLTIwMDQsIC0yMDA4KS4gSG9uZyBLb25nIHN0YW5kYXJkLiBcbiAgICAvLyAgICBtYW55IHVuaWNvZGUgY29kZSBwb2ludHMgbW92ZWQgZnJvbSBQVUEgdG8gU3VwcGxlbWVudGFyeSBwbGFuZSAoVSsyWFhYWCkgb3ZlciB0aGUgeWVhcnMuXG4gICAgLy8gICAgUGx1cywgaXQgaGFzIDQgY29tYmluaW5nIHNlcXVlbmNlcy5cbiAgICAvLyAgICBTZWVtcyB0aGF0IE1vemlsbGEgcmVmdXNlZCB0byBzdXBwb3J0IGl0IGZvciAxMCB5cnMuIGh0dHBzOi8vYnVnemlsbGEubW96aWxsYS5vcmcvc2hvd19idWcuY2dpP2lkPTE2MjQzMSBodHRwczovL2J1Z3ppbGxhLm1vemlsbGEub3JnL3Nob3dfYnVnLmNnaT9pZD0zMTAyOTlcbiAgICAvLyAgICBiZWNhdXNlIGJpZzUtaGtzY3MgaXMgdGhlIG9ubHkgZW5jb2RpbmcgdG8gaW5jbHVkZSBhc3RyYWwgY2hhcmFjdGVycyBpbiBub24tYWxnb3JpdGhtaWMgd2F5LlxuICAgIC8vICAgIEltcGxlbWVudGF0aW9ucyBhcmUgbm90IGNvbnNpc3RlbnQgd2l0aGluIGJyb3dzZXJzOyBzb21ldGltZXMgbGFiZWxlZCBhcyBqdXN0IGJpZzUuXG4gICAgLy8gICAgTVMgSW50ZXJuZXQgRXhwbG9yZXIgc3dpdGNoZXMgZnJvbSBiaWc1IHRvIGJpZzUtaGtzY3Mgd2hlbiBhIHBhdGNoIGFwcGxpZWQuXG4gICAgLy8gICAgR3JlYXQgZGlzY3Vzc2lvbiAmIHJlY2FwIG9mIHdoYXQncyBnb2luZyBvbiBodHRwczovL2J1Z3ppbGxhLm1vemlsbGEub3JnL3Nob3dfYnVnLmNnaT9pZD05MTI0NzAjYzMxXG4gICAgLy8gICAgSW4gdGhlIGVuY29kZXIsIGl0IG1pZ2h0IG1ha2Ugc2Vuc2UgdG8gc3VwcG9ydCBlbmNvZGluZyBvbGQgUFVBIG1hcHBpbmdzIHRvIEJpZzUgYnl0ZXMgc2VxLXMuXG4gICAgLy8gICAgT2ZmaWNpYWwgc3BlYzogaHR0cDovL3d3dy5vZ2Npby5nb3YuaGsvZW4vYnVzaW5lc3MvdGVjaF9wcm9tb3Rpb24vY2NsaS90ZXJtcy9kb2MvMjAwM2NtcF8yMDA4LnR4dFxuICAgIC8vICAgICAgICAgICAgICAgICAgIGh0dHA6Ly93d3cub2djaW8uZ292LmhrL3RjL2J1c2luZXNzL3RlY2hfcHJvbW90aW9uL2NjbGkvdGVybXMvZG9jL2hrc2NzLTIwMDgtYmlnNS1pc28udHh0XG4gICAgLy8gXG4gICAgLy8gQ3VycmVudCB1bmRlcnN0YW5kaW5nIG9mIGhvdyB0byBkZWFsIHdpdGggQmlnNSgtSEtTQ1MpIGlzIGluIHRoZSBFbmNvZGluZyBTdGFuZGFyZCwgaHR0cDovL2VuY29kaW5nLnNwZWMud2hhdHdnLm9yZy8jYmlnNS1lbmNvZGVyXG4gICAgLy8gVW5pY29kZSBtYXBwaW5nIChodHRwOi8vd3d3LnVuaWNvZGUub3JnL1B1YmxpYy9NQVBQSU5HUy9PQlNPTEVURS9FQVNUQVNJQS9PVEhFUi9CSUc1LlRYVCkgaXMgc2FpZCB0byBiZSB3cm9uZy5cblxuICAgICd3aW5kb3dzOTUwJzogJ2NwOTUwJyxcbiAgICAnbXM5NTAnOiAnY3A5NTAnLFxuICAgICc5NTAnOiAnY3A5NTAnLFxuICAgICdjcDk1MCc6IHtcbiAgICAgICAgdHlwZTogJ19kYmNzJyxcbiAgICAgICAgdGFibGU6IGZ1bmN0aW9uKCkgeyByZXR1cm4gcmVxdWlyZSgnLi90YWJsZXMvY3A5NTAuanNvbicpIH0sXG4gICAgfSxcblxuICAgIC8vIEJpZzUgaGFzIG1hbnkgdmFyaWF0aW9ucyBhbmQgaXMgYW4gZXh0ZW5zaW9uIG9mIGNwOTUwLiBXZSB1c2UgRW5jb2RpbmcgU3RhbmRhcmQncyBhcyBhIGNvbnNlbnN1cy5cbiAgICAnYmlnNSc6ICdiaWc1aGtzY3MnLFxuICAgICdiaWc1aGtzY3MnOiB7XG4gICAgICAgIHR5cGU6ICdfZGJjcycsXG4gICAgICAgIHRhYmxlOiBmdW5jdGlvbigpIHsgcmV0dXJuIHJlcXVpcmUoJy4vdGFibGVzL2NwOTUwLmpzb24nKS5jb25jYXQocmVxdWlyZSgnLi90YWJsZXMvYmlnNS1hZGRlZC5qc29uJykpIH0sXG4gICAgICAgIGVuY29kZVNraXBWYWxzOiBbXG4gICAgICAgICAgICAvLyBBbHRob3VnaCBFbmNvZGluZyBTdGFuZGFyZCBzYXlzIHdlIHNob3VsZCBhdm9pZCBlbmNvZGluZyB0byBIS1NDUyBhcmVhIChTZWUgU3RlcCAxIG9mXG4gICAgICAgICAgICAvLyBodHRwczovL2VuY29kaW5nLnNwZWMud2hhdHdnLm9yZy8jaW5kZXgtYmlnNS1wb2ludGVyKSwgd2Ugc3RpbGwgZG8gaXQgdG8gaW5jcmVhc2UgY29tcGF0aWJpbGl0eSB3aXRoIElDVS5cbiAgICAgICAgICAgIC8vIEJ1dCBpZiBhIHNpbmdsZSB1bmljb2RlIHBvaW50IGNhbiBiZSBlbmNvZGVkIGJvdGggYXMgSEtTQ1MgYW5kIHJlZ3VsYXIgQmlnNSwgd2UgcHJlZmVyIHRoZSBsYXR0ZXIuXG4gICAgICAgICAgICAweDhlNjksIDB4OGU2ZiwgMHg4ZTdlLCAweDhlYWIsIDB4OGViNCwgMHg4ZWNkLCAweDhlZDAsIDB4OGY1NywgMHg4ZjY5LCAweDhmNmUsIDB4OGZjYiwgMHg4ZmZlLFxuICAgICAgICAgICAgMHg5MDZkLCAweDkwN2EsIDB4OTBjNCwgMHg5MGRjLCAweDkwZjEsIDB4OTFiZiwgMHg5MmFmLCAweDkyYjAsIDB4OTJiMSwgMHg5MmIyLCAweDkyZDEsIDB4OTQ0NywgMHg5NGNhLFxuICAgICAgICAgICAgMHg5NWQ5LCAweDk2ZmMsIDB4OTk3NSwgMHg5Yjc2LCAweDliNzgsIDB4OWI3YiwgMHg5YmM2LCAweDliZGUsIDB4OWJlYywgMHg5YmY2LCAweDljNDIsIDB4OWM1MywgMHg5YzYyLFxuICAgICAgICAgICAgMHg5YzY4LCAweDljNmIsIDB4OWM3NywgMHg5Y2JjLCAweDljYmQsIDB4OWNkMCwgMHg5ZDU3LCAweDlkNWEsIDB4OWRjNCwgMHg5ZGVmLCAweDlkZmIsIDB4OWVhOSwgMHg5ZWVmLFxuICAgICAgICAgICAgMHg5ZWZkLCAweDlmNjAsIDB4OWZjYiwgMHhhMDc3LCAweGEwZGMsIDB4YTBkZiwgMHg4ZmNjLCAweDkyYzgsIDB4OTY0NCwgMHg5NmVkLFxuXG4gICAgICAgICAgICAvLyBTdGVwIDIgb2YgaHR0cHM6Ly9lbmNvZGluZy5zcGVjLndoYXR3Zy5vcmcvI2luZGV4LWJpZzUtcG9pbnRlcjogVXNlIGxhc3QgcG9pbnRlciBmb3IgVSsyNTUwLCBVKzI1NUUsIFUrMjU2MSwgVSsyNTZBLCBVKzUzNDEsIG9yIFUrNTM0NVxuICAgICAgICAgICAgMHhhMmE0LCAweGEyYTUsIDB4YTJhNywgMHhhMmE2LCAweGEyY2MsIDB4YTJjZSxcbiAgICAgICAgXSxcbiAgICB9LFxuXG4gICAgJ2NuYmlnNSc6ICdiaWc1aGtzY3MnLFxuICAgICdjc2JpZzUnOiAnYmlnNWhrc2NzJyxcbiAgICAneHhiaWc1JzogJ2JpZzVoa3NjcycsXG59O1xuIiwgIlwidXNlIHN0cmljdFwiO1xuXG4vLyBVcGRhdGUgdGhpcyBhcnJheSBpZiB5b3UgYWRkL3JlbmFtZS9yZW1vdmUgZmlsZXMgaW4gdGhpcyBkaXJlY3RvcnkuXG4vLyBXZSBzdXBwb3J0IEJyb3dzZXJpZnkgYnkgc2tpcHBpbmcgYXV0b21hdGljIG1vZHVsZSBkaXNjb3ZlcnkgYW5kIHJlcXVpcmluZyBtb2R1bGVzIGRpcmVjdGx5LlxudmFyIG1vZHVsZXMgPSBbXG4gICAgcmVxdWlyZShcIi4vaW50ZXJuYWxcIiksXG4gICAgcmVxdWlyZShcIi4vdXRmMzJcIiksXG4gICAgcmVxdWlyZShcIi4vdXRmMTZcIiksXG4gICAgcmVxdWlyZShcIi4vdXRmN1wiKSxcbiAgICByZXF1aXJlKFwiLi9zYmNzLWNvZGVjXCIpLFxuICAgIHJlcXVpcmUoXCIuL3NiY3MtZGF0YVwiKSxcbiAgICByZXF1aXJlKFwiLi9zYmNzLWRhdGEtZ2VuZXJhdGVkXCIpLFxuICAgIHJlcXVpcmUoXCIuL2RiY3MtY29kZWNcIiksXG4gICAgcmVxdWlyZShcIi4vZGJjcy1kYXRhXCIpLFxuXTtcblxuLy8gUHV0IGFsbCBlbmNvZGluZy9hbGlhcy9jb2RlYyBkZWZpbml0aW9ucyB0byBzaW5nbGUgb2JqZWN0IGFuZCBleHBvcnQgaXQuXG5mb3IgKHZhciBpID0gMDsgaSA8IG1vZHVsZXMubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIgbW9kdWxlID0gbW9kdWxlc1tpXTtcbiAgICBmb3IgKHZhciBlbmMgaW4gbW9kdWxlKVxuICAgICAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG1vZHVsZSwgZW5jKSlcbiAgICAgICAgICAgIGV4cG9ydHNbZW5jXSA9IG1vZHVsZVtlbmNdO1xufVxuIiwgIlwidXNlIHN0cmljdFwiO1xuXG52YXIgQnVmZmVyID0gcmVxdWlyZShcInNhZmVyLWJ1ZmZlclwiKS5CdWZmZXI7XG5cbi8vIE5PVEU6IER1ZSB0byAnc3RyZWFtJyBtb2R1bGUgYmVpbmcgcHJldHR5IGxhcmdlICh+MTAwS2IsIHNpZ25pZmljYW50IGluIGJyb3dzZXIgZW52aXJvbm1lbnRzKSwgXG4vLyB3ZSBvcHQgdG8gZGVwZW5kZW5jeS1pbmplY3QgaXQgaW5zdGVhZCBvZiBjcmVhdGluZyBhIGhhcmQgZGVwZW5kZW5jeS5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24oc3RyZWFtX21vZHVsZSkge1xuICAgIHZhciBUcmFuc2Zvcm0gPSBzdHJlYW1fbW9kdWxlLlRyYW5zZm9ybTtcblxuICAgIC8vID09IEVuY29kZXIgc3RyZWFtID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuICAgIGZ1bmN0aW9uIEljb252TGl0ZUVuY29kZXJTdHJlYW0oY29udiwgb3B0aW9ucykge1xuICAgICAgICB0aGlzLmNvbnYgPSBjb252O1xuICAgICAgICBvcHRpb25zID0gb3B0aW9ucyB8fCB7fTtcbiAgICAgICAgb3B0aW9ucy5kZWNvZGVTdHJpbmdzID0gZmFsc2U7IC8vIFdlIGFjY2VwdCBvbmx5IHN0cmluZ3MsIHNvIHdlIGRvbid0IG5lZWQgdG8gZGVjb2RlIHRoZW0uXG4gICAgICAgIFRyYW5zZm9ybS5jYWxsKHRoaXMsIG9wdGlvbnMpO1xuICAgIH1cblxuICAgIEljb252TGl0ZUVuY29kZXJTdHJlYW0ucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShUcmFuc2Zvcm0ucHJvdG90eXBlLCB7XG4gICAgICAgIGNvbnN0cnVjdG9yOiB7IHZhbHVlOiBJY29udkxpdGVFbmNvZGVyU3RyZWFtIH1cbiAgICB9KTtcblxuICAgIEljb252TGl0ZUVuY29kZXJTdHJlYW0ucHJvdG90eXBlLl90cmFuc2Zvcm0gPSBmdW5jdGlvbihjaHVuaywgZW5jb2RpbmcsIGRvbmUpIHtcbiAgICAgICAgaWYgKHR5cGVvZiBjaHVuayAhPSAnc3RyaW5nJylcbiAgICAgICAgICAgIHJldHVybiBkb25lKG5ldyBFcnJvcihcIkljb252IGVuY29kaW5nIHN0cmVhbSBuZWVkcyBzdHJpbmdzIGFzIGl0cyBpbnB1dC5cIikpO1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgdmFyIHJlcyA9IHRoaXMuY29udi53cml0ZShjaHVuayk7XG4gICAgICAgICAgICBpZiAocmVzICYmIHJlcy5sZW5ndGgpIHRoaXMucHVzaChyZXMpO1xuICAgICAgICAgICAgZG9uZSgpO1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlKSB7XG4gICAgICAgICAgICBkb25lKGUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgSWNvbnZMaXRlRW5jb2RlclN0cmVhbS5wcm90b3R5cGUuX2ZsdXNoID0gZnVuY3Rpb24oZG9uZSkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgdmFyIHJlcyA9IHRoaXMuY29udi5lbmQoKTtcbiAgICAgICAgICAgIGlmIChyZXMgJiYgcmVzLmxlbmd0aCkgdGhpcy5wdXNoKHJlcyk7XG4gICAgICAgICAgICBkb25lKCk7XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIGRvbmUoZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBJY29udkxpdGVFbmNvZGVyU3RyZWFtLnByb3RvdHlwZS5jb2xsZWN0ID0gZnVuY3Rpb24oY2IpIHtcbiAgICAgICAgdmFyIGNodW5rcyA9IFtdO1xuICAgICAgICB0aGlzLm9uKCdlcnJvcicsIGNiKTtcbiAgICAgICAgdGhpcy5vbignZGF0YScsIGZ1bmN0aW9uKGNodW5rKSB7IGNodW5rcy5wdXNoKGNodW5rKTsgfSk7XG4gICAgICAgIHRoaXMub24oJ2VuZCcsIGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgY2IobnVsbCwgQnVmZmVyLmNvbmNhdChjaHVua3MpKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuXG4gICAgLy8gPT0gRGVjb2RlciBzdHJlYW0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gICAgZnVuY3Rpb24gSWNvbnZMaXRlRGVjb2RlclN0cmVhbShjb252LCBvcHRpb25zKSB7XG4gICAgICAgIHRoaXMuY29udiA9IGNvbnY7XG4gICAgICAgIG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9O1xuICAgICAgICBvcHRpb25zLmVuY29kaW5nID0gdGhpcy5lbmNvZGluZyA9ICd1dGY4JzsgLy8gV2Ugb3V0cHV0IHN0cmluZ3MuXG4gICAgICAgIFRyYW5zZm9ybS5jYWxsKHRoaXMsIG9wdGlvbnMpO1xuICAgIH1cblxuICAgIEljb252TGl0ZURlY29kZXJTdHJlYW0ucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShUcmFuc2Zvcm0ucHJvdG90eXBlLCB7XG4gICAgICAgIGNvbnN0cnVjdG9yOiB7IHZhbHVlOiBJY29udkxpdGVEZWNvZGVyU3RyZWFtIH1cbiAgICB9KTtcblxuICAgIEljb252TGl0ZURlY29kZXJTdHJlYW0ucHJvdG90eXBlLl90cmFuc2Zvcm0gPSBmdW5jdGlvbihjaHVuaywgZW5jb2RpbmcsIGRvbmUpIHtcbiAgICAgICAgaWYgKCFCdWZmZXIuaXNCdWZmZXIoY2h1bmspICYmICEoY2h1bmsgaW5zdGFuY2VvZiBVaW50OEFycmF5KSlcbiAgICAgICAgICAgIHJldHVybiBkb25lKG5ldyBFcnJvcihcIkljb252IGRlY29kaW5nIHN0cmVhbSBuZWVkcyBidWZmZXJzIGFzIGl0cyBpbnB1dC5cIikpO1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgdmFyIHJlcyA9IHRoaXMuY29udi53cml0ZShjaHVuayk7XG4gICAgICAgICAgICBpZiAocmVzICYmIHJlcy5sZW5ndGgpIHRoaXMucHVzaChyZXMsIHRoaXMuZW5jb2RpbmcpO1xuICAgICAgICAgICAgZG9uZSgpO1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlKSB7XG4gICAgICAgICAgICBkb25lKGUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgSWNvbnZMaXRlRGVjb2RlclN0cmVhbS5wcm90b3R5cGUuX2ZsdXNoID0gZnVuY3Rpb24oZG9uZSkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgdmFyIHJlcyA9IHRoaXMuY29udi5lbmQoKTtcbiAgICAgICAgICAgIGlmIChyZXMgJiYgcmVzLmxlbmd0aCkgdGhpcy5wdXNoKHJlcywgdGhpcy5lbmNvZGluZyk7ICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgZG9uZSgpO1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlKSB7XG4gICAgICAgICAgICBkb25lKGUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgSWNvbnZMaXRlRGVjb2RlclN0cmVhbS5wcm90b3R5cGUuY29sbGVjdCA9IGZ1bmN0aW9uKGNiKSB7XG4gICAgICAgIHZhciByZXMgPSAnJztcbiAgICAgICAgdGhpcy5vbignZXJyb3InLCBjYik7XG4gICAgICAgIHRoaXMub24oJ2RhdGEnLCBmdW5jdGlvbihjaHVuaykgeyByZXMgKz0gY2h1bms7IH0pO1xuICAgICAgICB0aGlzLm9uKCdlbmQnLCBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIGNiKG51bGwsIHJlcyk7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgICBJY29udkxpdGVFbmNvZGVyU3RyZWFtOiBJY29udkxpdGVFbmNvZGVyU3RyZWFtLFxuICAgICAgICBJY29udkxpdGVEZWNvZGVyU3RyZWFtOiBJY29udkxpdGVEZWNvZGVyU3RyZWFtLFxuICAgIH07XG59O1xuIiwgIlwidXNlIHN0cmljdFwiO1xuXG52YXIgQnVmZmVyID0gcmVxdWlyZShcInNhZmVyLWJ1ZmZlclwiKS5CdWZmZXI7XG5cbnZhciBib21IYW5kbGluZyA9IHJlcXVpcmUoXCIuL2JvbS1oYW5kbGluZ1wiKSxcbiAgICBpY29udiA9IG1vZHVsZS5leHBvcnRzO1xuXG4vLyBBbGwgY29kZWNzIGFuZCBhbGlhc2VzIGFyZSBrZXB0IGhlcmUsIGtleWVkIGJ5IGVuY29kaW5nIG5hbWUvYWxpYXMuXG4vLyBUaGV5IGFyZSBsYXp5IGxvYWRlZCBpbiBgaWNvbnYuZ2V0Q29kZWNgIGZyb20gYGVuY29kaW5ncy9pbmRleC5qc2AuXG5pY29udi5lbmNvZGluZ3MgPSBudWxsO1xuXG4vLyBDaGFyYWN0ZXJzIGVtaXR0ZWQgaW4gY2FzZSBvZiBlcnJvci5cbmljb252LmRlZmF1bHRDaGFyVW5pY29kZSA9ICdcdUZGRkQnO1xuaWNvbnYuZGVmYXVsdENoYXJTaW5nbGVCeXRlID0gJz8nO1xuXG4vLyBQdWJsaWMgQVBJLlxuaWNvbnYuZW5jb2RlID0gZnVuY3Rpb24gZW5jb2RlKHN0ciwgZW5jb2RpbmcsIG9wdGlvbnMpIHtcbiAgICBzdHIgPSBcIlwiICsgKHN0ciB8fCBcIlwiKTsgLy8gRW5zdXJlIHN0cmluZy5cblxuICAgIHZhciBlbmNvZGVyID0gaWNvbnYuZ2V0RW5jb2RlcihlbmNvZGluZywgb3B0aW9ucyk7XG5cbiAgICB2YXIgcmVzID0gZW5jb2Rlci53cml0ZShzdHIpO1xuICAgIHZhciB0cmFpbCA9IGVuY29kZXIuZW5kKCk7XG4gICAgXG4gICAgcmV0dXJuICh0cmFpbCAmJiB0cmFpbC5sZW5ndGggPiAwKSA/IEJ1ZmZlci5jb25jYXQoW3JlcywgdHJhaWxdKSA6IHJlcztcbn1cblxuaWNvbnYuZGVjb2RlID0gZnVuY3Rpb24gZGVjb2RlKGJ1ZiwgZW5jb2RpbmcsIG9wdGlvbnMpIHtcbiAgICBpZiAodHlwZW9mIGJ1ZiA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgaWYgKCFpY29udi5za2lwRGVjb2RlV2FybmluZykge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcignSWNvbnYtbGl0ZSB3YXJuaW5nOiBkZWNvZGUoKS1pbmcgc3RyaW5ncyBpcyBkZXByZWNhdGVkLiBSZWZlciB0byBodHRwczovL2dpdGh1Yi5jb20vYXNodHVjaGtpbi9pY29udi1saXRlL3dpa2kvVXNlLUJ1ZmZlcnMtd2hlbi1kZWNvZGluZycpO1xuICAgICAgICAgICAgaWNvbnYuc2tpcERlY29kZVdhcm5pbmcgPSB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgYnVmID0gQnVmZmVyLmZyb20oXCJcIiArIChidWYgfHwgXCJcIiksIFwiYmluYXJ5XCIpOyAvLyBFbnN1cmUgYnVmZmVyLlxuICAgIH1cblxuICAgIHZhciBkZWNvZGVyID0gaWNvbnYuZ2V0RGVjb2RlcihlbmNvZGluZywgb3B0aW9ucyk7XG5cbiAgICB2YXIgcmVzID0gZGVjb2Rlci53cml0ZShidWYpO1xuICAgIHZhciB0cmFpbCA9IGRlY29kZXIuZW5kKCk7XG5cbiAgICByZXR1cm4gdHJhaWwgPyAocmVzICsgdHJhaWwpIDogcmVzO1xufVxuXG5pY29udi5lbmNvZGluZ0V4aXN0cyA9IGZ1bmN0aW9uIGVuY29kaW5nRXhpc3RzKGVuYykge1xuICAgIHRyeSB7XG4gICAgICAgIGljb252LmdldENvZGVjKGVuYyk7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbn1cblxuLy8gTGVnYWN5IGFsaWFzZXMgdG8gY29udmVydCBmdW5jdGlvbnNcbmljb252LnRvRW5jb2RpbmcgPSBpY29udi5lbmNvZGU7XG5pY29udi5mcm9tRW5jb2RpbmcgPSBpY29udi5kZWNvZGU7XG5cbi8vIFNlYXJjaCBmb3IgYSBjb2RlYyBpbiBpY29udi5lbmNvZGluZ3MuIENhY2hlIGNvZGVjIGRhdGEgaW4gaWNvbnYuX2NvZGVjRGF0YUNhY2hlLlxuaWNvbnYuX2NvZGVjRGF0YUNhY2hlID0ge307XG5pY29udi5nZXRDb2RlYyA9IGZ1bmN0aW9uIGdldENvZGVjKGVuY29kaW5nKSB7XG4gICAgaWYgKCFpY29udi5lbmNvZGluZ3MpXG4gICAgICAgIGljb252LmVuY29kaW5ncyA9IHJlcXVpcmUoXCIuLi9lbmNvZGluZ3NcIik7IC8vIExhenkgbG9hZCBhbGwgZW5jb2RpbmcgZGVmaW5pdGlvbnMuXG4gICAgXG4gICAgLy8gQ2Fub25pY2FsaXplIGVuY29kaW5nIG5hbWU6IHN0cmlwIGFsbCBub24tYWxwaGFudW1lcmljIGNoYXJzIGFuZCBhcHBlbmRlZCB5ZWFyLlxuICAgIHZhciBlbmMgPSBpY29udi5fY2Fub25pY2FsaXplRW5jb2RpbmcoZW5jb2RpbmcpO1xuXG4gICAgLy8gVHJhdmVyc2UgaWNvbnYuZW5jb2RpbmdzIHRvIGZpbmQgYWN0dWFsIGNvZGVjLlxuICAgIHZhciBjb2RlY09wdGlvbnMgPSB7fTtcbiAgICB3aGlsZSAodHJ1ZSkge1xuICAgICAgICB2YXIgY29kZWMgPSBpY29udi5fY29kZWNEYXRhQ2FjaGVbZW5jXTtcbiAgICAgICAgaWYgKGNvZGVjKVxuICAgICAgICAgICAgcmV0dXJuIGNvZGVjO1xuXG4gICAgICAgIHZhciBjb2RlY0RlZiA9IGljb252LmVuY29kaW5nc1tlbmNdO1xuXG4gICAgICAgIHN3aXRjaCAodHlwZW9mIGNvZGVjRGVmKSB7XG4gICAgICAgICAgICBjYXNlIFwic3RyaW5nXCI6IC8vIERpcmVjdCBhbGlhcyB0byBvdGhlciBlbmNvZGluZy5cbiAgICAgICAgICAgICAgICBlbmMgPSBjb2RlY0RlZjtcbiAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgY2FzZSBcIm9iamVjdFwiOiAvLyBBbGlhcyB3aXRoIG9wdGlvbnMuIENhbiBiZSBsYXllcmVkLlxuICAgICAgICAgICAgICAgIGZvciAodmFyIGtleSBpbiBjb2RlY0RlZilcbiAgICAgICAgICAgICAgICAgICAgY29kZWNPcHRpb25zW2tleV0gPSBjb2RlY0RlZltrZXldO1xuXG4gICAgICAgICAgICAgICAgaWYgKCFjb2RlY09wdGlvbnMuZW5jb2RpbmdOYW1lKVxuICAgICAgICAgICAgICAgICAgICBjb2RlY09wdGlvbnMuZW5jb2RpbmdOYW1lID0gZW5jO1xuICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgIGVuYyA9IGNvZGVjRGVmLnR5cGU7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgIGNhc2UgXCJmdW5jdGlvblwiOiAvLyBDb2RlYyBpdHNlbGYuXG4gICAgICAgICAgICAgICAgaWYgKCFjb2RlY09wdGlvbnMuZW5jb2RpbmdOYW1lKVxuICAgICAgICAgICAgICAgICAgICBjb2RlY09wdGlvbnMuZW5jb2RpbmdOYW1lID0gZW5jO1xuXG4gICAgICAgICAgICAgICAgLy8gVGhlIGNvZGVjIGZ1bmN0aW9uIG11c3QgbG9hZCBhbGwgdGFibGVzIGFuZCByZXR1cm4gb2JqZWN0IHdpdGggLmVuY29kZXIgYW5kIC5kZWNvZGVyIG1ldGhvZHMuXG4gICAgICAgICAgICAgICAgLy8gSXQnbGwgYmUgY2FsbGVkIG9ubHkgb25jZSAoZm9yIGVhY2ggZGlmZmVyZW50IG9wdGlvbnMgb2JqZWN0KS5cbiAgICAgICAgICAgICAgICBjb2RlYyA9IG5ldyBjb2RlY0RlZihjb2RlY09wdGlvbnMsIGljb252KTtcblxuICAgICAgICAgICAgICAgIGljb252Ll9jb2RlY0RhdGFDYWNoZVtjb2RlY09wdGlvbnMuZW5jb2RpbmdOYW1lXSA9IGNvZGVjOyAvLyBTYXZlIGl0IHRvIGJlIHJldXNlZCBsYXRlci5cbiAgICAgICAgICAgICAgICByZXR1cm4gY29kZWM7XG5cbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiRW5jb2Rpbmcgbm90IHJlY29nbml6ZWQ6ICdcIiArIGVuY29kaW5nICsgXCInIChzZWFyY2hlZCBhczogJ1wiK2VuYytcIicpXCIpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5pY29udi5fY2Fub25pY2FsaXplRW5jb2RpbmcgPSBmdW5jdGlvbihlbmNvZGluZykge1xuICAgIC8vIENhbm9uaWNhbGl6ZSBlbmNvZGluZyBuYW1lOiBzdHJpcCBhbGwgbm9uLWFscGhhbnVtZXJpYyBjaGFycyBhbmQgYXBwZW5kZWQgeWVhci5cbiAgICByZXR1cm4gKCcnK2VuY29kaW5nKS50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoLzpcXGR7NH0kfFteMC05YS16XS9nLCBcIlwiKTtcbn1cblxuaWNvbnYuZ2V0RW5jb2RlciA9IGZ1bmN0aW9uIGdldEVuY29kZXIoZW5jb2RpbmcsIG9wdGlvbnMpIHtcbiAgICB2YXIgY29kZWMgPSBpY29udi5nZXRDb2RlYyhlbmNvZGluZyksXG4gICAgICAgIGVuY29kZXIgPSBuZXcgY29kZWMuZW5jb2RlcihvcHRpb25zLCBjb2RlYyk7XG5cbiAgICBpZiAoY29kZWMuYm9tQXdhcmUgJiYgb3B0aW9ucyAmJiBvcHRpb25zLmFkZEJPTSlcbiAgICAgICAgZW5jb2RlciA9IG5ldyBib21IYW5kbGluZy5QcmVwZW5kQk9NKGVuY29kZXIsIG9wdGlvbnMpO1xuXG4gICAgcmV0dXJuIGVuY29kZXI7XG59XG5cbmljb252LmdldERlY29kZXIgPSBmdW5jdGlvbiBnZXREZWNvZGVyKGVuY29kaW5nLCBvcHRpb25zKSB7XG4gICAgdmFyIGNvZGVjID0gaWNvbnYuZ2V0Q29kZWMoZW5jb2RpbmcpLFxuICAgICAgICBkZWNvZGVyID0gbmV3IGNvZGVjLmRlY29kZXIob3B0aW9ucywgY29kZWMpO1xuXG4gICAgaWYgKGNvZGVjLmJvbUF3YXJlICYmICEob3B0aW9ucyAmJiBvcHRpb25zLnN0cmlwQk9NID09PSBmYWxzZSkpXG4gICAgICAgIGRlY29kZXIgPSBuZXcgYm9tSGFuZGxpbmcuU3RyaXBCT00oZGVjb2Rlciwgb3B0aW9ucyk7XG5cbiAgICByZXR1cm4gZGVjb2Rlcjtcbn1cblxuLy8gU3RyZWFtaW5nIEFQSVxuLy8gTk9URTogU3RyZWFtaW5nIEFQSSBuYXR1cmFsbHkgZGVwZW5kcyBvbiAnc3RyZWFtJyBtb2R1bGUgZnJvbSBOb2RlLmpzLiBVbmZvcnR1bmF0ZWx5IGluIGJyb3dzZXIgZW52aXJvbm1lbnRzIHRoaXMgbW9kdWxlIGNhbiBhZGRcbi8vIHVwIHRvIDEwMEtiIHRvIHRoZSBvdXRwdXQgYnVuZGxlLiBUbyBhdm9pZCB1bm5lY2Vzc2FyeSBjb2RlIGJsb2F0LCB3ZSBkb24ndCBlbmFibGUgU3RyZWFtaW5nIEFQSSBpbiBicm93c2VyIGJ5IGRlZmF1bHQuXG4vLyBJZiB5b3Ugd291bGQgbGlrZSB0byBlbmFibGUgaXQgZXhwbGljaXRseSwgcGxlYXNlIGFkZCB0aGUgZm9sbG93aW5nIGNvZGUgdG8geW91ciBhcHA6XG4vLyA+IGljb252LmVuYWJsZVN0cmVhbWluZ0FQSShyZXF1aXJlKCdzdHJlYW0nKSk7XG5pY29udi5lbmFibGVTdHJlYW1pbmdBUEkgPSBmdW5jdGlvbiBlbmFibGVTdHJlYW1pbmdBUEkoc3RyZWFtX21vZHVsZSkge1xuICAgIGlmIChpY29udi5zdXBwb3J0c1N0cmVhbXMpXG4gICAgICAgIHJldHVybjtcblxuICAgIC8vIERlcGVuZGVuY3ktaW5qZWN0IHN0cmVhbSBtb2R1bGUgdG8gY3JlYXRlIEljb252TGl0ZSBzdHJlYW0gY2xhc3Nlcy5cbiAgICB2YXIgc3RyZWFtcyA9IHJlcXVpcmUoXCIuL3N0cmVhbXNcIikoc3RyZWFtX21vZHVsZSk7XG5cbiAgICAvLyBOb3QgcHVibGljIEFQSSB5ZXQsIGJ1dCBleHBvc2UgdGhlIHN0cmVhbSBjbGFzc2VzLlxuICAgIGljb252Lkljb252TGl0ZUVuY29kZXJTdHJlYW0gPSBzdHJlYW1zLkljb252TGl0ZUVuY29kZXJTdHJlYW07XG4gICAgaWNvbnYuSWNvbnZMaXRlRGVjb2RlclN0cmVhbSA9IHN0cmVhbXMuSWNvbnZMaXRlRGVjb2RlclN0cmVhbTtcblxuICAgIC8vIFN0cmVhbWluZyBBUEkuXG4gICAgaWNvbnYuZW5jb2RlU3RyZWFtID0gZnVuY3Rpb24gZW5jb2RlU3RyZWFtKGVuY29kaW5nLCBvcHRpb25zKSB7XG4gICAgICAgIHJldHVybiBuZXcgaWNvbnYuSWNvbnZMaXRlRW5jb2RlclN0cmVhbShpY29udi5nZXRFbmNvZGVyKGVuY29kaW5nLCBvcHRpb25zKSwgb3B0aW9ucyk7XG4gICAgfVxuXG4gICAgaWNvbnYuZGVjb2RlU3RyZWFtID0gZnVuY3Rpb24gZGVjb2RlU3RyZWFtKGVuY29kaW5nLCBvcHRpb25zKSB7XG4gICAgICAgIHJldHVybiBuZXcgaWNvbnYuSWNvbnZMaXRlRGVjb2RlclN0cmVhbShpY29udi5nZXREZWNvZGVyKGVuY29kaW5nLCBvcHRpb25zKSwgb3B0aW9ucyk7XG4gICAgfVxuXG4gICAgaWNvbnYuc3VwcG9ydHNTdHJlYW1zID0gdHJ1ZTtcbn1cblxuLy8gRW5hYmxlIFN0cmVhbWluZyBBUEkgYXV0b21hdGljYWxseSBpZiAnc3RyZWFtJyBtb2R1bGUgaXMgYXZhaWxhYmxlIGFuZCBub24tZW1wdHkgKHRoZSBtYWpvcml0eSBvZiBlbnZpcm9ubWVudHMpLlxudmFyIHN0cmVhbV9tb2R1bGU7XG50cnkge1xuICAgIHN0cmVhbV9tb2R1bGUgPSByZXF1aXJlKFwic3RyZWFtXCIpO1xufSBjYXRjaCAoZSkge31cblxuaWYgKHN0cmVhbV9tb2R1bGUgJiYgc3RyZWFtX21vZHVsZS5UcmFuc2Zvcm0pIHtcbiAgICBpY29udi5lbmFibGVTdHJlYW1pbmdBUEkoc3RyZWFtX21vZHVsZSk7XG5cbn0gZWxzZSB7XG4gICAgLy8gSW4gcmFyZSBjYXNlcyB3aGVyZSAnc3RyZWFtJyBtb2R1bGUgaXMgbm90IGF2YWlsYWJsZSBieSBkZWZhdWx0LCB0aHJvdyBhIGhlbHBmdWwgZXhjZXB0aW9uLlxuICAgIGljb252LmVuY29kZVN0cmVhbSA9IGljb252LmRlY29kZVN0cmVhbSA9IGZ1bmN0aW9uKCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJpY29udi1saXRlIFN0cmVhbWluZyBBUEkgaXMgbm90IGVuYWJsZWQuIFVzZSBpY29udi5lbmFibGVTdHJlYW1pbmdBUEkocmVxdWlyZSgnc3RyZWFtJykpOyB0byBlbmFibGUgaXQuXCIpO1xuICAgIH07XG59XG5cbmlmIChcIlx1MDEwMFwiICE9IFwiXFx1MDEwMFwiKSB7XG4gICAgY29uc29sZS5lcnJvcihcImljb252LWxpdGUgd2FybmluZzoganMgZmlsZXMgdXNlIG5vbi11dGY4IGVuY29kaW5nLiBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2FzaHR1Y2hraW4vaWNvbnYtbGl0ZS93aWtpL0phdmFzY3JpcHQtc291cmNlLWZpbGUtZW5jb2RpbmdzIGZvciBtb3JlIGluZm8uXCIpO1xufVxuIiwgIltcbiAgXCJVVEYtOFwiLFxuICBcIklCTTg2NlwiLFxuICBcIklTTy04ODU5LTJcIixcbiAgXCJJU08tODg1OS0zXCIsXG4gIFwiSVNPLTg4NTktNFwiLFxuICBcIklTTy04ODU5LTVcIixcbiAgXCJJU08tODg1OS02XCIsXG4gIFwiSVNPLTg4NTktN1wiLFxuICBcIklTTy04ODU5LThcIixcbiAgXCJJU08tODg1OS0xMFwiLFxuICBcIklTTy04ODU5LTEzXCIsXG4gIFwiSVNPLTg4NTktMTRcIixcbiAgXCJJU08tODg1OS0xNVwiLFxuICBcIklTTy04ODU5LTE2XCIsXG4gIFwiS09JOC1SXCIsXG4gIFwiS09JOC1VXCIsXG4gIFwibWFjaW50b3NoXCIsXG4gIFwid2luZG93cy04NzRcIixcbiAgXCJ3aW5kb3dzLTEyNTBcIixcbiAgXCJ3aW5kb3dzLTEyNTFcIixcbiAgXCJ3aW5kb3dzLTEyNTJcIixcbiAgXCJ3aW5kb3dzLTEyNTNcIixcbiAgXCJ3aW5kb3dzLTEyNTRcIixcbiAgXCJ3aW5kb3dzLTEyNTVcIixcbiAgXCJ3aW5kb3dzLTEyNTZcIixcbiAgXCJ3aW5kb3dzLTEyNTdcIixcbiAgXCJ3aW5kb3dzLTEyNThcIixcbiAgXCJHQktcIixcbiAgXCJnYjE4MDMwXCIsXG4gIFwiQmlnNVwiLFxuICBcIkVVQy1KUFwiLFxuICBcIlNoaWZ0X0pJU1wiLFxuICBcIkVVQy1LUlwiLFxuICBcIlVURi0xNkJFXCIsXG4gIFwiVVRGLTE2TEVcIixcbiAgXCJ4LXVzZXItZGVmaW5lZFwiXG5dIiwgIntcbiAgXCI4NjZcIjogXCJJQk04NjZcIixcbiAgXCJ1bmljb2RlLTEtMS11dGYtOFwiOiBcIlVURi04XCIsXG4gIFwidW5pY29kZTExdXRmOFwiOiBcIlVURi04XCIsXG4gIFwidW5pY29kZTIwdXRmOFwiOiBcIlVURi04XCIsXG4gIFwidXRmLThcIjogXCJVVEYtOFwiLFxuICBcInV0ZjhcIjogXCJVVEYtOFwiLFxuICBcIngtdW5pY29kZTIwdXRmOFwiOiBcIlVURi04XCIsXG4gIFwiY3A4NjZcIjogXCJJQk04NjZcIixcbiAgXCJjc2libTg2NlwiOiBcIklCTTg2NlwiLFxuICBcImlibTg2NlwiOiBcIklCTTg2NlwiLFxuICBcImNzaXNvbGF0aW4yXCI6IFwiSVNPLTg4NTktMlwiLFxuICBcImlzby04ODU5LTJcIjogXCJJU08tODg1OS0yXCIsXG4gIFwiaXNvLWlyLTEwMVwiOiBcIklTTy04ODU5LTJcIixcbiAgXCJpc284ODU5LTJcIjogXCJJU08tODg1OS0yXCIsXG4gIFwiaXNvODg1OTJcIjogXCJJU08tODg1OS0yXCIsXG4gIFwiaXNvXzg4NTktMlwiOiBcIklTTy04ODU5LTJcIixcbiAgXCJpc29fODg1OS0yOjE5ODdcIjogXCJJU08tODg1OS0yXCIsXG4gIFwibDJcIjogXCJJU08tODg1OS0yXCIsXG4gIFwibGF0aW4yXCI6IFwiSVNPLTg4NTktMlwiLFxuICBcImNzaXNvbGF0aW4zXCI6IFwiSVNPLTg4NTktM1wiLFxuICBcImlzby04ODU5LTNcIjogXCJJU08tODg1OS0zXCIsXG4gIFwiaXNvLWlyLTEwOVwiOiBcIklTTy04ODU5LTNcIixcbiAgXCJpc284ODU5LTNcIjogXCJJU08tODg1OS0zXCIsXG4gIFwiaXNvODg1OTNcIjogXCJJU08tODg1OS0zXCIsXG4gIFwiaXNvXzg4NTktM1wiOiBcIklTTy04ODU5LTNcIixcbiAgXCJpc29fODg1OS0zOjE5ODhcIjogXCJJU08tODg1OS0zXCIsXG4gIFwibDNcIjogXCJJU08tODg1OS0zXCIsXG4gIFwibGF0aW4zXCI6IFwiSVNPLTg4NTktM1wiLFxuICBcImNzaXNvbGF0aW40XCI6IFwiSVNPLTg4NTktNFwiLFxuICBcImlzby04ODU5LTRcIjogXCJJU08tODg1OS00XCIsXG4gIFwiaXNvLWlyLTExMFwiOiBcIklTTy04ODU5LTRcIixcbiAgXCJpc284ODU5LTRcIjogXCJJU08tODg1OS00XCIsXG4gIFwiaXNvODg1OTRcIjogXCJJU08tODg1OS00XCIsXG4gIFwiaXNvXzg4NTktNFwiOiBcIklTTy04ODU5LTRcIixcbiAgXCJpc29fODg1OS00OjE5ODhcIjogXCJJU08tODg1OS00XCIsXG4gIFwibDRcIjogXCJJU08tODg1OS00XCIsXG4gIFwibGF0aW40XCI6IFwiSVNPLTg4NTktNFwiLFxuICBcImNzaXNvbGF0aW5jeXJpbGxpY1wiOiBcIklTTy04ODU5LTVcIixcbiAgXCJjeXJpbGxpY1wiOiBcIklTTy04ODU5LTVcIixcbiAgXCJpc28tODg1OS01XCI6IFwiSVNPLTg4NTktNVwiLFxuICBcImlzby1pci0xNDRcIjogXCJJU08tODg1OS01XCIsXG4gIFwiaXNvODg1OS01XCI6IFwiSVNPLTg4NTktNVwiLFxuICBcImlzbzg4NTk1XCI6IFwiSVNPLTg4NTktNVwiLFxuICBcImlzb184ODU5LTVcIjogXCJJU08tODg1OS01XCIsXG4gIFwiaXNvXzg4NTktNToxOTg4XCI6IFwiSVNPLTg4NTktNVwiLFxuICBcImFyYWJpY1wiOiBcIklTTy04ODU5LTZcIixcbiAgXCJhc21vLTcwOFwiOiBcIklTTy04ODU5LTZcIixcbiAgXCJjc2lzbzg4NTk2ZVwiOiBcIklTTy04ODU5LTZcIixcbiAgXCJjc2lzbzg4NTk2aVwiOiBcIklTTy04ODU5LTZcIixcbiAgXCJjc2lzb2xhdGluYXJhYmljXCI6IFwiSVNPLTg4NTktNlwiLFxuICBcImVjbWEtMTE0XCI6IFwiSVNPLTg4NTktNlwiLFxuICBcImlzby04ODU5LTZcIjogXCJJU08tODg1OS02XCIsXG4gIFwiaXNvLTg4NTktNi1lXCI6IFwiSVNPLTg4NTktNlwiLFxuICBcImlzby04ODU5LTYtaVwiOiBcIklTTy04ODU5LTZcIixcbiAgXCJpc28taXItMTI3XCI6IFwiSVNPLTg4NTktNlwiLFxuICBcImlzbzg4NTktNlwiOiBcIklTTy04ODU5LTZcIixcbiAgXCJpc284ODU5NlwiOiBcIklTTy04ODU5LTZcIixcbiAgXCJpc29fODg1OS02XCI6IFwiSVNPLTg4NTktNlwiLFxuICBcImlzb184ODU5LTY6MTk4N1wiOiBcIklTTy04ODU5LTZcIixcbiAgXCJjc2lzb2xhdGluZ3JlZWtcIjogXCJJU08tODg1OS03XCIsXG4gIFwiZWNtYS0xMThcIjogXCJJU08tODg1OS03XCIsXG4gIFwiZWxvdF85MjhcIjogXCJJU08tODg1OS03XCIsXG4gIFwiZ3JlZWtcIjogXCJJU08tODg1OS03XCIsXG4gIFwiZ3JlZWs4XCI6IFwiSVNPLTg4NTktN1wiLFxuICBcImlzby04ODU5LTdcIjogXCJJU08tODg1OS03XCIsXG4gIFwiaXNvLWlyLTEyNlwiOiBcIklTTy04ODU5LTdcIixcbiAgXCJpc284ODU5LTdcIjogXCJJU08tODg1OS03XCIsXG4gIFwiaXNvODg1OTdcIjogXCJJU08tODg1OS03XCIsXG4gIFwiaXNvXzg4NTktN1wiOiBcIklTTy04ODU5LTdcIixcbiAgXCJpc29fODg1OS03OjE5ODdcIjogXCJJU08tODg1OS03XCIsXG4gIFwic3VuX2V1X2dyZWVrXCI6IFwiSVNPLTg4NTktN1wiLFxuICBcImNzaXNvODg1OThlXCI6IFwiSVNPLTg4NTktOFwiLFxuICBcImNzaXNvbGF0aW5oZWJyZXdcIjogXCJJU08tODg1OS04XCIsXG4gIFwiaGVicmV3XCI6IFwiSVNPLTg4NTktOFwiLFxuICBcImlzby04ODU5LThcIjogXCJJU08tODg1OS04XCIsXG4gIFwiaXNvLTg4NTktOC1lXCI6IFwiSVNPLTg4NTktOFwiLFxuICBcImlzby1pci0xMzhcIjogXCJJU08tODg1OS04XCIsXG4gIFwiaXNvODg1OS04XCI6IFwiSVNPLTg4NTktOFwiLFxuICBcImlzbzg4NTk4XCI6IFwiSVNPLTg4NTktOFwiLFxuICBcImlzb184ODU5LThcIjogXCJJU08tODg1OS04XCIsXG4gIFwiaXNvXzg4NTktODoxOTg4XCI6IFwiSVNPLTg4NTktOFwiLFxuICBcInZpc3VhbFwiOiBcIklTTy04ODU5LThcIixcbiAgXCJjc2lzb2xhdGluNlwiOiBcIklTTy04ODU5LTEwXCIsXG4gIFwiaXNvLTg4NTktMTBcIjogXCJJU08tODg1OS0xMFwiLFxuICBcImlzby1pci0xNTdcIjogXCJJU08tODg1OS0xMFwiLFxuICBcImlzbzg4NTktMTBcIjogXCJJU08tODg1OS0xMFwiLFxuICBcImlzbzg4NTkxMFwiOiBcIklTTy04ODU5LTEwXCIsXG4gIFwibDZcIjogXCJJU08tODg1OS0xMFwiLFxuICBcImxhdGluNlwiOiBcIklTTy04ODU5LTEwXCIsXG4gIFwiaXNvLTg4NTktMTNcIjogXCJJU08tODg1OS0xM1wiLFxuICBcImlzbzg4NTktMTNcIjogXCJJU08tODg1OS0xM1wiLFxuICBcImlzbzg4NTkxM1wiOiBcIklTTy04ODU5LTEzXCIsXG4gIFwiaXNvLTg4NTktMTRcIjogXCJJU08tODg1OS0xNFwiLFxuICBcImlzbzg4NTktMTRcIjogXCJJU08tODg1OS0xNFwiLFxuICBcImlzbzg4NTkxNFwiOiBcIklTTy04ODU5LTE0XCIsXG4gIFwiY3Npc29sYXRpbjlcIjogXCJJU08tODg1OS0xNVwiLFxuICBcImlzby04ODU5LTE1XCI6IFwiSVNPLTg4NTktMTVcIixcbiAgXCJpc284ODU5LTE1XCI6IFwiSVNPLTg4NTktMTVcIixcbiAgXCJpc284ODU5MTVcIjogXCJJU08tODg1OS0xNVwiLFxuICBcImlzb184ODU5LTE1XCI6IFwiSVNPLTg4NTktMTVcIixcbiAgXCJsOVwiOiBcIklTTy04ODU5LTE1XCIsXG4gIFwiaXNvLTg4NTktMTZcIjogXCJJU08tODg1OS0xNlwiLFxuICBcImNza29pOHJcIjogXCJLT0k4LVJcIixcbiAgXCJrb2lcIjogXCJLT0k4LVJcIixcbiAgXCJrb2k4XCI6IFwiS09JOC1SXCIsXG4gIFwia29pOC1yXCI6IFwiS09JOC1SXCIsXG4gIFwia29pOF9yXCI6IFwiS09JOC1SXCIsXG4gIFwia29pOC1ydVwiOiBcIktPSTgtVVwiLFxuICBcImtvaTgtdVwiOiBcIktPSTgtVVwiLFxuICBcImNzbWFjaW50b3NoXCI6IFwibWFjaW50b3NoXCIsXG4gIFwibWFjXCI6IFwibWFjaW50b3NoXCIsXG4gIFwibWFjaW50b3NoXCI6IFwibWFjaW50b3NoXCIsXG4gIFwieC1tYWMtcm9tYW5cIjogXCJtYWNpbnRvc2hcIixcbiAgXCJkb3MtODc0XCI6IFwid2luZG93cy04NzRcIixcbiAgXCJpc28tODg1OS0xMVwiOiBcIndpbmRvd3MtODc0XCIsXG4gIFwiaXNvODg1OS0xMVwiOiBcIndpbmRvd3MtODc0XCIsXG4gIFwiaXNvODg1OTExXCI6IFwid2luZG93cy04NzRcIixcbiAgXCJ0aXMtNjIwXCI6IFwid2luZG93cy04NzRcIixcbiAgXCJ3aW5kb3dzLTg3NFwiOiBcIndpbmRvd3MtODc0XCIsXG4gIFwiY3AxMjUwXCI6IFwid2luZG93cy0xMjUwXCIsXG4gIFwid2luZG93cy0xMjUwXCI6IFwid2luZG93cy0xMjUwXCIsXG4gIFwieC1jcDEyNTBcIjogXCJ3aW5kb3dzLTEyNTBcIixcbiAgXCJjcDEyNTFcIjogXCJ3aW5kb3dzLTEyNTFcIixcbiAgXCJ3aW5kb3dzLTEyNTFcIjogXCJ3aW5kb3dzLTEyNTFcIixcbiAgXCJ4LWNwMTI1MVwiOiBcIndpbmRvd3MtMTI1MVwiLFxuICBcImFuc2lfeDMuNC0xOTY4XCI6IFwid2luZG93cy0xMjUyXCIsXG4gIFwiYXNjaWlcIjogXCJ3aW5kb3dzLTEyNTJcIixcbiAgXCJjcDEyNTJcIjogXCJ3aW5kb3dzLTEyNTJcIixcbiAgXCJjcDgxOVwiOiBcIndpbmRvd3MtMTI1MlwiLFxuICBcImNzaXNvbGF0aW4xXCI6IFwid2luZG93cy0xMjUyXCIsXG4gIFwiaWJtODE5XCI6IFwid2luZG93cy0xMjUyXCIsXG4gIFwiaXNvLTg4NTktMVwiOiBcIndpbmRvd3MtMTI1MlwiLFxuICBcImlzby1pci0xMDBcIjogXCJ3aW5kb3dzLTEyNTJcIixcbiAgXCJpc284ODU5LTFcIjogXCJ3aW5kb3dzLTEyNTJcIixcbiAgXCJpc284ODU5MVwiOiBcIndpbmRvd3MtMTI1MlwiLFxuICBcImlzb184ODU5LTFcIjogXCJ3aW5kb3dzLTEyNTJcIixcbiAgXCJpc29fODg1OS0xOjE5ODdcIjogXCJ3aW5kb3dzLTEyNTJcIixcbiAgXCJsMVwiOiBcIndpbmRvd3MtMTI1MlwiLFxuICBcImxhdGluMVwiOiBcIndpbmRvd3MtMTI1MlwiLFxuICBcInVzLWFzY2lpXCI6IFwid2luZG93cy0xMjUyXCIsXG4gIFwid2luZG93cy0xMjUyXCI6IFwid2luZG93cy0xMjUyXCIsXG4gIFwieC1jcDEyNTJcIjogXCJ3aW5kb3dzLTEyNTJcIixcbiAgXCJjcDEyNTNcIjogXCJ3aW5kb3dzLTEyNTNcIixcbiAgXCJ3aW5kb3dzLTEyNTNcIjogXCJ3aW5kb3dzLTEyNTNcIixcbiAgXCJ4LWNwMTI1M1wiOiBcIndpbmRvd3MtMTI1M1wiLFxuICBcImNwMTI1NFwiOiBcIndpbmRvd3MtMTI1NFwiLFxuICBcImNzaXNvbGF0aW41XCI6IFwid2luZG93cy0xMjU0XCIsXG4gIFwiaXNvLTg4NTktOVwiOiBcIndpbmRvd3MtMTI1NFwiLFxuICBcImlzby1pci0xNDhcIjogXCJ3aW5kb3dzLTEyNTRcIixcbiAgXCJpc284ODU5LTlcIjogXCJ3aW5kb3dzLTEyNTRcIixcbiAgXCJpc284ODU5OVwiOiBcIndpbmRvd3MtMTI1NFwiLFxuICBcImlzb184ODU5LTlcIjogXCJ3aW5kb3dzLTEyNTRcIixcbiAgXCJpc29fODg1OS05OjE5ODlcIjogXCJ3aW5kb3dzLTEyNTRcIixcbiAgXCJsNVwiOiBcIndpbmRvd3MtMTI1NFwiLFxuICBcImxhdGluNVwiOiBcIndpbmRvd3MtMTI1NFwiLFxuICBcIndpbmRvd3MtMTI1NFwiOiBcIndpbmRvd3MtMTI1NFwiLFxuICBcIngtY3AxMjU0XCI6IFwid2luZG93cy0xMjU0XCIsXG4gIFwiY3AxMjU1XCI6IFwid2luZG93cy0xMjU1XCIsXG4gIFwid2luZG93cy0xMjU1XCI6IFwid2luZG93cy0xMjU1XCIsXG4gIFwieC1jcDEyNTVcIjogXCJ3aW5kb3dzLTEyNTVcIixcbiAgXCJjcDEyNTZcIjogXCJ3aW5kb3dzLTEyNTZcIixcbiAgXCJ3aW5kb3dzLTEyNTZcIjogXCJ3aW5kb3dzLTEyNTZcIixcbiAgXCJ4LWNwMTI1NlwiOiBcIndpbmRvd3MtMTI1NlwiLFxuICBcImNwMTI1N1wiOiBcIndpbmRvd3MtMTI1N1wiLFxuICBcIndpbmRvd3MtMTI1N1wiOiBcIndpbmRvd3MtMTI1N1wiLFxuICBcIngtY3AxMjU3XCI6IFwid2luZG93cy0xMjU3XCIsXG4gIFwiY3AxMjU4XCI6IFwid2luZG93cy0xMjU4XCIsXG4gIFwid2luZG93cy0xMjU4XCI6IFwid2luZG93cy0xMjU4XCIsXG4gIFwieC1jcDEyNThcIjogXCJ3aW5kb3dzLTEyNThcIixcbiAgXCJjaGluZXNlXCI6IFwiR0JLXCIsXG4gIFwiY3NnYjIzMTJcIjogXCJHQktcIixcbiAgXCJjc2lzbzU4Z2IyMzEyODBcIjogXCJHQktcIixcbiAgXCJnYjIzMTJcIjogXCJHQktcIixcbiAgXCJnYl8yMzEyXCI6IFwiR0JLXCIsXG4gIFwiZ2JfMjMxMi04MFwiOiBcIkdCS1wiLFxuICBcImdia1wiOiBcIkdCS1wiLFxuICBcImlzby1pci01OFwiOiBcIkdCS1wiLFxuICBcIngtZ2JrXCI6IFwiR0JLXCIsXG4gIFwiZ2IxODAzMFwiOiBcImdiMTgwMzBcIixcbiAgXCJiaWc1XCI6IFwiQmlnNVwiLFxuICBcImJpZzUtaGtzY3NcIjogXCJCaWc1XCIsXG4gIFwiY24tYmlnNVwiOiBcIkJpZzVcIixcbiAgXCJjc2JpZzVcIjogXCJCaWc1XCIsXG4gIFwieC14LWJpZzVcIjogXCJCaWc1XCIsXG4gIFwiY3NldWNwa2RmbXRqYXBhbmVzZVwiOiBcIkVVQy1KUFwiLFxuICBcImV1Yy1qcFwiOiBcIkVVQy1KUFwiLFxuICBcIngtZXVjLWpwXCI6IFwiRVVDLUpQXCIsXG4gIFwiY3NzaGlmdGppc1wiOiBcIlNoaWZ0X0pJU1wiLFxuICBcIm1zOTMyXCI6IFwiU2hpZnRfSklTXCIsXG4gIFwibXNfa2FuamlcIjogXCJTaGlmdF9KSVNcIixcbiAgXCJzaGlmdC1qaXNcIjogXCJTaGlmdF9KSVNcIixcbiAgXCJzaGlmdF9qaXNcIjogXCJTaGlmdF9KSVNcIixcbiAgXCJzamlzXCI6IFwiU2hpZnRfSklTXCIsXG4gIFwid2luZG93cy0zMWpcIjogXCJTaGlmdF9KSVNcIixcbiAgXCJ4LXNqaXNcIjogXCJTaGlmdF9KSVNcIixcbiAgXCJjc2V1Y2tyXCI6IFwiRVVDLUtSXCIsXG4gIFwiY3Nrc2M1NjAxMTk4N1wiOiBcIkVVQy1LUlwiLFxuICBcImV1Yy1rclwiOiBcIkVVQy1LUlwiLFxuICBcImlzby1pci0xNDlcIjogXCJFVUMtS1JcIixcbiAgXCJrb3JlYW5cIjogXCJFVUMtS1JcIixcbiAgXCJrc19jXzU2MDEtMTk4N1wiOiBcIkVVQy1LUlwiLFxuICBcImtzX2NfNTYwMS0xOTg5XCI6IFwiRVVDLUtSXCIsXG4gIFwia3NjNTYwMVwiOiBcIkVVQy1LUlwiLFxuICBcImtzY181NjAxXCI6IFwiRVVDLUtSXCIsXG4gIFwid2luZG93cy05NDlcIjogXCJFVUMtS1JcIixcbiAgXCJ1bmljb2RlZmZmZVwiOiBcIlVURi0xNkJFXCIsXG4gIFwidXRmLTE2YmVcIjogXCJVVEYtMTZCRVwiLFxuICBcImNzdW5pY29kZVwiOiBcIlVURi0xNkxFXCIsXG4gIFwiaXNvLTEwNjQ2LXVjcy0yXCI6IFwiVVRGLTE2TEVcIixcbiAgXCJ1Y3MtMlwiOiBcIlVURi0xNkxFXCIsXG4gIFwidW5pY29kZVwiOiBcIlVURi0xNkxFXCIsXG4gIFwidW5pY29kZWZlZmZcIjogXCJVVEYtMTZMRVwiLFxuICBcInV0Zi0xNlwiOiBcIlVURi0xNkxFXCIsXG4gIFwidXRmLTE2bGVcIjogXCJVVEYtMTZMRVwiLFxuICBcIngtdXNlci1kZWZpbmVkXCI6IFwieC11c2VyLWRlZmluZWRcIlxufSIsICJcInVzZSBzdHJpY3RcIjtcbmNvbnN0IGljb252TGl0ZSA9IHJlcXVpcmUoXCJpY29udi1saXRlXCIpO1xuY29uc3Qgc3VwcG9ydGVkTmFtZXMgPSByZXF1aXJlKFwiLi9zdXBwb3J0ZWQtbmFtZXMuanNvblwiKTtcbmNvbnN0IGxhYmVsc1RvTmFtZXMgPSByZXF1aXJlKFwiLi9sYWJlbHMtdG8tbmFtZXMuanNvblwiKTtcblxuY29uc3Qgc3VwcG9ydGVkTmFtZXNTZXQgPSBuZXcgU2V0KHN1cHBvcnRlZE5hbWVzKTtcblxuLy8gaHR0cHM6Ly9lbmNvZGluZy5zcGVjLndoYXR3Zy5vcmcvI2NvbmNlcHQtZW5jb2RpbmctZ2V0XG5leHBvcnRzLmxhYmVsVG9OYW1lID0gbGFiZWwgPT4ge1xuICBsYWJlbCA9IFN0cmluZyhsYWJlbCkudHJpbSgpLnRvTG93ZXJDYXNlKCk7XG5cbiAgcmV0dXJuIGxhYmVsc1RvTmFtZXNbbGFiZWxdIHx8IG51bGw7XG59O1xuXG4vLyBodHRwczovL2VuY29kaW5nLnNwZWMud2hhdHdnLm9yZy8jZGVjb2RlXG5leHBvcnRzLmRlY29kZSA9ICh1aW50OEFycmF5LCBmYWxsYmFja0VuY29kaW5nTmFtZSkgPT4ge1xuICBsZXQgZW5jb2RpbmcgPSBmYWxsYmFja0VuY29kaW5nTmFtZTtcbiAgaWYgKCFleHBvcnRzLmlzU3VwcG9ydGVkKGVuY29kaW5nKSkge1xuICAgIHRocm93IG5ldyBSYW5nZUVycm9yKGBcIiR7ZW5jb2Rpbmd9XCIgaXMgbm90IGEgc3VwcG9ydGVkIGVuY29kaW5nIG5hbWVgKTtcbiAgfVxuXG4gIGNvbnN0IGJvbUVuY29kaW5nID0gZXhwb3J0cy5nZXRCT01FbmNvZGluZyh1aW50OEFycmF5KTtcbiAgaWYgKGJvbUVuY29kaW5nICE9PSBudWxsKSB7XG4gICAgZW5jb2RpbmcgPSBib21FbmNvZGluZztcbiAgICAvLyBpY29udi1saXRlIHdpbGwgc3RyaXAgQk9NcyBmb3IgdXMsIHNvIG5vIG5lZWQgdG8gZG8gdGhlIGV4dHJhIGJ5dGUgcmVtb3ZhbCB0aGF0IHRoZSBzcGVjIGRvZXMuXG4gICAgLy8gTm90ZSB0aGF0IHdlIHdvbid0IGVuZCB1cCBpbiB0aGUgeC11c2VyLWRlZmluZWQgY2FzZSB3aGVuIHRoZXJlJ3MgYSBib21FbmNvZGluZy5cbiAgfVxuXG4gIGlmIChlbmNvZGluZyA9PT0gXCJ4LXVzZXItZGVmaW5lZFwiKSB7XG4gICAgLy8gaHR0cHM6Ly9lbmNvZGluZy5zcGVjLndoYXR3Zy5vcmcvI3gtdXNlci1kZWZpbmVkLWRlY29kZXJcbiAgICBsZXQgcmVzdWx0ID0gXCJcIjtcbiAgICBmb3IgKGNvbnN0IGJ5dGUgb2YgdWludDhBcnJheSkge1xuICAgICAgaWYgKGJ5dGUgPD0gMHg3Rikge1xuICAgICAgICByZXN1bHQgKz0gU3RyaW5nLmZyb21Db2RlUG9pbnQoYnl0ZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXN1bHQgKz0gU3RyaW5nLmZyb21Db2RlUG9pbnQoMHhGNzgwICsgYnl0ZSAtIDB4ODApO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgcmV0dXJuIGljb252TGl0ZS5kZWNvZGUodWludDhBcnJheSwgZW5jb2RpbmcpO1xufTtcblxuLy8gaHR0cHM6Ly9naXRodWIuY29tL3doYXR3Zy9odG1sL2lzc3Vlcy8xOTEwI2lzc3VlY29tbWVudC0yNTQwMTczNjlcbmV4cG9ydHMuZ2V0Qk9NRW5jb2RpbmcgPSB1aW50OEFycmF5ID0+IHtcbiAgaWYgKHVpbnQ4QXJyYXlbMF0gPT09IDB4RkUgJiYgdWludDhBcnJheVsxXSA9PT0gMHhGRikge1xuICAgIHJldHVybiBcIlVURi0xNkJFXCI7XG4gIH0gZWxzZSBpZiAodWludDhBcnJheVswXSA9PT0gMHhGRiAmJiB1aW50OEFycmF5WzFdID09PSAweEZFKSB7XG4gICAgcmV0dXJuIFwiVVRGLTE2TEVcIjtcbiAgfSBlbHNlIGlmICh1aW50OEFycmF5WzBdID09PSAweEVGICYmIHVpbnQ4QXJyYXlbMV0gPT09IDB4QkIgJiYgdWludDhBcnJheVsyXSA9PT0gMHhCRikge1xuICAgIHJldHVybiBcIlVURi04XCI7XG4gIH1cblxuICByZXR1cm4gbnVsbDtcbn07XG5cbmV4cG9ydHMuaXNTdXBwb3J0ZWQgPSBuYW1lID0+IHtcbiAgcmV0dXJuIHN1cHBvcnRlZE5hbWVzU2V0LmhhcyhTdHJpbmcobmFtZSkpO1xufTtcbiIsIG51bGwsIG51bGwsICJtb2R1bGUuZXhwb3J0cyA9IHtcbiAga0Nsb3NlOiBTeW1ib2woJ2Nsb3NlJyksXG4gIGtEZXN0cm95OiBTeW1ib2woJ2Rlc3Ryb3knKSxcbiAga0Rpc3BhdGNoOiBTeW1ib2woJ2Rpc3BhdGNoJyksXG4gIGtVcmw6IFN5bWJvbCgndXJsJyksXG4gIGtXcml0aW5nOiBTeW1ib2woJ3dyaXRpbmcnKSxcbiAga1Jlc3VtaW5nOiBTeW1ib2woJ3Jlc3VtaW5nJyksXG4gIGtRdWV1ZTogU3ltYm9sKCdxdWV1ZScpLFxuICBrQ29ubmVjdDogU3ltYm9sKCdjb25uZWN0JyksXG4gIGtDb25uZWN0aW5nOiBTeW1ib2woJ2Nvbm5lY3RpbmcnKSxcbiAga0tlZXBBbGl2ZURlZmF1bHRUaW1lb3V0OiBTeW1ib2woJ2RlZmF1bHQga2VlcCBhbGl2ZSB0aW1lb3V0JyksXG4gIGtLZWVwQWxpdmVNYXhUaW1lb3V0OiBTeW1ib2woJ21heCBrZWVwIGFsaXZlIHRpbWVvdXQnKSxcbiAga0tlZXBBbGl2ZVRpbWVvdXRUaHJlc2hvbGQ6IFN5bWJvbCgna2VlcCBhbGl2ZSB0aW1lb3V0IHRocmVzaG9sZCcpLFxuICBrS2VlcEFsaXZlVGltZW91dFZhbHVlOiBTeW1ib2woJ2tlZXAgYWxpdmUgdGltZW91dCcpLFxuICBrS2VlcEFsaXZlOiBTeW1ib2woJ2tlZXAgYWxpdmUnKSxcbiAga0hlYWRlcnNUaW1lb3V0OiBTeW1ib2woJ2hlYWRlcnMgdGltZW91dCcpLFxuICBrQm9keVRpbWVvdXQ6IFN5bWJvbCgnYm9keSB0aW1lb3V0JyksXG4gIGtTZXJ2ZXJOYW1lOiBTeW1ib2woJ3NlcnZlciBuYW1lJyksXG4gIGtMb2NhbEFkZHJlc3M6IFN5bWJvbCgnbG9jYWwgYWRkcmVzcycpLFxuICBrSG9zdDogU3ltYm9sKCdob3N0JyksXG4gIGtOb1JlZjogU3ltYm9sKCdubyByZWYnKSxcbiAga0JvZHlVc2VkOiBTeW1ib2woJ3VzZWQnKSxcbiAga0JvZHk6IFN5bWJvbCgnYWJzdHJhY3RlZCByZXF1ZXN0IGJvZHknKSxcbiAga1J1bm5pbmc6IFN5bWJvbCgncnVubmluZycpLFxuICBrQmxvY2tpbmc6IFN5bWJvbCgnYmxvY2tpbmcnKSxcbiAga1BlbmRpbmc6IFN5bWJvbCgncGVuZGluZycpLFxuICBrU2l6ZTogU3ltYm9sKCdzaXplJyksXG4gIGtCdXN5OiBTeW1ib2woJ2J1c3knKSxcbiAga1F1ZXVlZDogU3ltYm9sKCdxdWV1ZWQnKSxcbiAga0ZyZWU6IFN5bWJvbCgnZnJlZScpLFxuICBrQ29ubmVjdGVkOiBTeW1ib2woJ2Nvbm5lY3RlZCcpLFxuICBrQ2xvc2VkOiBTeW1ib2woJ2Nsb3NlZCcpLFxuICBrTmVlZERyYWluOiBTeW1ib2woJ25lZWQgZHJhaW4nKSxcbiAga1Jlc2V0OiBTeW1ib2woJ3Jlc2V0JyksXG4gIGtEZXN0cm95ZWQ6IFN5bWJvbC5mb3IoJ25vZGVqcy5zdHJlYW0uZGVzdHJveWVkJyksXG4gIGtSZXN1bWU6IFN5bWJvbCgncmVzdW1lJyksXG4gIGtPbkVycm9yOiBTeW1ib2woJ29uIGVycm9yJyksXG4gIGtNYXhIZWFkZXJzU2l6ZTogU3ltYm9sKCdtYXggaGVhZGVycyBzaXplJyksXG4gIGtSdW5uaW5nSWR4OiBTeW1ib2woJ3J1bm5pbmcgaW5kZXgnKSxcbiAga1BlbmRpbmdJZHg6IFN5bWJvbCgncGVuZGluZyBpbmRleCcpLFxuICBrRXJyb3I6IFN5bWJvbCgnZXJyb3InKSxcbiAga0NsaWVudHM6IFN5bWJvbCgnY2xpZW50cycpLFxuICBrQ2xpZW50OiBTeW1ib2woJ2NsaWVudCcpLFxuICBrUGFyc2VyOiBTeW1ib2woJ3BhcnNlcicpLFxuICBrT25EZXN0cm95ZWQ6IFN5bWJvbCgnZGVzdHJveSBjYWxsYmFja3MnKSxcbiAga1BpcGVsaW5pbmc6IFN5bWJvbCgncGlwZWxpbmluZycpLFxuICBrU29ja2V0OiBTeW1ib2woJ3NvY2tldCcpLFxuICBrSG9zdEhlYWRlcjogU3ltYm9sKCdob3N0IGhlYWRlcicpLFxuICBrQ29ubmVjdG9yOiBTeW1ib2woJ2Nvbm5lY3RvcicpLFxuICBrU3RyaWN0Q29udGVudExlbmd0aDogU3ltYm9sKCdzdHJpY3QgY29udGVudCBsZW5ndGgnKSxcbiAga01heFJlZGlyZWN0aW9uczogU3ltYm9sKCdtYXhSZWRpcmVjdGlvbnMnKSxcbiAga01heFJlcXVlc3RzOiBTeW1ib2woJ21heFJlcXVlc3RzUGVyQ2xpZW50JyksXG4gIGtQcm94eTogU3ltYm9sKCdwcm94eSBhZ2VudCBvcHRpb25zJyksXG4gIGtDb3VudGVyOiBTeW1ib2woJ3NvY2tldCByZXF1ZXN0IGNvdW50ZXInKSxcbiAga0ludGVyY2VwdG9yczogU3ltYm9sKCdkaXNwYXRjaCBpbnRlcmNlcHRvcnMnKSxcbiAga01heFJlc3BvbnNlU2l6ZTogU3ltYm9sKCdtYXggcmVzcG9uc2Ugc2l6ZScpLFxuICBrSFRUUDJTZXNzaW9uOiBTeW1ib2woJ2h0dHAyU2Vzc2lvbicpLFxuICBrSFRUUDJTZXNzaW9uU3RhdGU6IFN5bWJvbCgnaHR0cDJTZXNzaW9uIHN0YXRlJyksXG4gIGtSZXRyeUhhbmRsZXJEZWZhdWx0UmV0cnk6IFN5bWJvbCgncmV0cnkgYWdlbnQgZGVmYXVsdCByZXRyeScpLFxuICBrQ29uc3RydWN0OiBTeW1ib2woJ2NvbnN0cnVjdGFibGUnKSxcbiAga0xpc3RlbmVyczogU3ltYm9sKCdsaXN0ZW5lcnMnKSxcbiAga0hUVFBDb250ZXh0OiBTeW1ib2woJ2h0dHAgY29udGV4dCcpLFxuICBrTWF4Q29uY3VycmVudFN0cmVhbXM6IFN5bWJvbCgnbWF4IGNvbmN1cnJlbnQgc3RyZWFtcycpLFxuICBrTm9Qcm94eUFnZW50OiBTeW1ib2woJ25vIHByb3h5IGFnZW50JyksXG4gIGtIdHRwUHJveHlBZ2VudDogU3ltYm9sKCdodHRwIHByb3h5IGFnZW50JyksXG4gIGtIdHRwc1Byb3h5QWdlbnQ6IFN5bWJvbCgnaHR0cHMgcHJveHkgYWdlbnQnKVxufVxuIiwgIid1c2Ugc3RyaWN0J1xuXG5jbGFzcyBVbmRpY2lFcnJvciBleHRlbmRzIEVycm9yIHtcbiAgY29uc3RydWN0b3IgKG1lc3NhZ2UpIHtcbiAgICBzdXBlcihtZXNzYWdlKVxuICAgIHRoaXMubmFtZSA9ICdVbmRpY2lFcnJvcidcbiAgICB0aGlzLmNvZGUgPSAnVU5EX0VSUidcbiAgfVxufVxuXG5jbGFzcyBDb25uZWN0VGltZW91dEVycm9yIGV4dGVuZHMgVW5kaWNpRXJyb3Ige1xuICBjb25zdHJ1Y3RvciAobWVzc2FnZSkge1xuICAgIHN1cGVyKG1lc3NhZ2UpXG4gICAgdGhpcy5uYW1lID0gJ0Nvbm5lY3RUaW1lb3V0RXJyb3InXG4gICAgdGhpcy5tZXNzYWdlID0gbWVzc2FnZSB8fCAnQ29ubmVjdCBUaW1lb3V0IEVycm9yJ1xuICAgIHRoaXMuY29kZSA9ICdVTkRfRVJSX0NPTk5FQ1RfVElNRU9VVCdcbiAgfVxufVxuXG5jbGFzcyBIZWFkZXJzVGltZW91dEVycm9yIGV4dGVuZHMgVW5kaWNpRXJyb3Ige1xuICBjb25zdHJ1Y3RvciAobWVzc2FnZSkge1xuICAgIHN1cGVyKG1lc3NhZ2UpXG4gICAgdGhpcy5uYW1lID0gJ0hlYWRlcnNUaW1lb3V0RXJyb3InXG4gICAgdGhpcy5tZXNzYWdlID0gbWVzc2FnZSB8fCAnSGVhZGVycyBUaW1lb3V0IEVycm9yJ1xuICAgIHRoaXMuY29kZSA9ICdVTkRfRVJSX0hFQURFUlNfVElNRU9VVCdcbiAgfVxufVxuXG5jbGFzcyBIZWFkZXJzT3ZlcmZsb3dFcnJvciBleHRlbmRzIFVuZGljaUVycm9yIHtcbiAgY29uc3RydWN0b3IgKG1lc3NhZ2UpIHtcbiAgICBzdXBlcihtZXNzYWdlKVxuICAgIHRoaXMubmFtZSA9ICdIZWFkZXJzT3ZlcmZsb3dFcnJvcidcbiAgICB0aGlzLm1lc3NhZ2UgPSBtZXNzYWdlIHx8ICdIZWFkZXJzIE92ZXJmbG93IEVycm9yJ1xuICAgIHRoaXMuY29kZSA9ICdVTkRfRVJSX0hFQURFUlNfT1ZFUkZMT1cnXG4gIH1cbn1cblxuY2xhc3MgQm9keVRpbWVvdXRFcnJvciBleHRlbmRzIFVuZGljaUVycm9yIHtcbiAgY29uc3RydWN0b3IgKG1lc3NhZ2UpIHtcbiAgICBzdXBlcihtZXNzYWdlKVxuICAgIHRoaXMubmFtZSA9ICdCb2R5VGltZW91dEVycm9yJ1xuICAgIHRoaXMubWVzc2FnZSA9IG1lc3NhZ2UgfHwgJ0JvZHkgVGltZW91dCBFcnJvcidcbiAgICB0aGlzLmNvZGUgPSAnVU5EX0VSUl9CT0RZX1RJTUVPVVQnXG4gIH1cbn1cblxuY2xhc3MgUmVzcG9uc2VTdGF0dXNDb2RlRXJyb3IgZXh0ZW5kcyBVbmRpY2lFcnJvciB7XG4gIGNvbnN0cnVjdG9yIChtZXNzYWdlLCBzdGF0dXNDb2RlLCBoZWFkZXJzLCBib2R5KSB7XG4gICAgc3VwZXIobWVzc2FnZSlcbiAgICB0aGlzLm5hbWUgPSAnUmVzcG9uc2VTdGF0dXNDb2RlRXJyb3InXG4gICAgdGhpcy5tZXNzYWdlID0gbWVzc2FnZSB8fCAnUmVzcG9uc2UgU3RhdHVzIENvZGUgRXJyb3InXG4gICAgdGhpcy5jb2RlID0gJ1VORF9FUlJfUkVTUE9OU0VfU1RBVFVTX0NPREUnXG4gICAgdGhpcy5ib2R5ID0gYm9keVxuICAgIHRoaXMuc3RhdHVzID0gc3RhdHVzQ29kZVxuICAgIHRoaXMuc3RhdHVzQ29kZSA9IHN0YXR1c0NvZGVcbiAgICB0aGlzLmhlYWRlcnMgPSBoZWFkZXJzXG4gIH1cbn1cblxuY2xhc3MgSW52YWxpZEFyZ3VtZW50RXJyb3IgZXh0ZW5kcyBVbmRpY2lFcnJvciB7XG4gIGNvbnN0cnVjdG9yIChtZXNzYWdlKSB7XG4gICAgc3VwZXIobWVzc2FnZSlcbiAgICB0aGlzLm5hbWUgPSAnSW52YWxpZEFyZ3VtZW50RXJyb3InXG4gICAgdGhpcy5tZXNzYWdlID0gbWVzc2FnZSB8fCAnSW52YWxpZCBBcmd1bWVudCBFcnJvcidcbiAgICB0aGlzLmNvZGUgPSAnVU5EX0VSUl9JTlZBTElEX0FSRydcbiAgfVxufVxuXG5jbGFzcyBJbnZhbGlkUmV0dXJuVmFsdWVFcnJvciBleHRlbmRzIFVuZGljaUVycm9yIHtcbiAgY29uc3RydWN0b3IgKG1lc3NhZ2UpIHtcbiAgICBzdXBlcihtZXNzYWdlKVxuICAgIHRoaXMubmFtZSA9ICdJbnZhbGlkUmV0dXJuVmFsdWVFcnJvcidcbiAgICB0aGlzLm1lc3NhZ2UgPSBtZXNzYWdlIHx8ICdJbnZhbGlkIFJldHVybiBWYWx1ZSBFcnJvcidcbiAgICB0aGlzLmNvZGUgPSAnVU5EX0VSUl9JTlZBTElEX1JFVFVSTl9WQUxVRSdcbiAgfVxufVxuXG5jbGFzcyBBYm9ydEVycm9yIGV4dGVuZHMgVW5kaWNpRXJyb3Ige1xuICBjb25zdHJ1Y3RvciAobWVzc2FnZSkge1xuICAgIHN1cGVyKG1lc3NhZ2UpXG4gICAgdGhpcy5uYW1lID0gJ0Fib3J0RXJyb3InXG4gICAgdGhpcy5tZXNzYWdlID0gbWVzc2FnZSB8fCAnVGhlIG9wZXJhdGlvbiB3YXMgYWJvcnRlZCdcbiAgfVxufVxuXG5jbGFzcyBSZXF1ZXN0QWJvcnRlZEVycm9yIGV4dGVuZHMgQWJvcnRFcnJvciB7XG4gIGNvbnN0cnVjdG9yIChtZXNzYWdlKSB7XG4gICAgc3VwZXIobWVzc2FnZSlcbiAgICB0aGlzLm5hbWUgPSAnQWJvcnRFcnJvcidcbiAgICB0aGlzLm1lc3NhZ2UgPSBtZXNzYWdlIHx8ICdSZXF1ZXN0IGFib3J0ZWQnXG4gICAgdGhpcy5jb2RlID0gJ1VORF9FUlJfQUJPUlRFRCdcbiAgfVxufVxuXG5jbGFzcyBJbmZvcm1hdGlvbmFsRXJyb3IgZXh0ZW5kcyBVbmRpY2lFcnJvciB7XG4gIGNvbnN0cnVjdG9yIChtZXNzYWdlKSB7XG4gICAgc3VwZXIobWVzc2FnZSlcbiAgICB0aGlzLm5hbWUgPSAnSW5mb3JtYXRpb25hbEVycm9yJ1xuICAgIHRoaXMubWVzc2FnZSA9IG1lc3NhZ2UgfHwgJ1JlcXVlc3QgaW5mb3JtYXRpb24nXG4gICAgdGhpcy5jb2RlID0gJ1VORF9FUlJfSU5GTydcbiAgfVxufVxuXG5jbGFzcyBSZXF1ZXN0Q29udGVudExlbmd0aE1pc21hdGNoRXJyb3IgZXh0ZW5kcyBVbmRpY2lFcnJvciB7XG4gIGNvbnN0cnVjdG9yIChtZXNzYWdlKSB7XG4gICAgc3VwZXIobWVzc2FnZSlcbiAgICB0aGlzLm5hbWUgPSAnUmVxdWVzdENvbnRlbnRMZW5ndGhNaXNtYXRjaEVycm9yJ1xuICAgIHRoaXMubWVzc2FnZSA9IG1lc3NhZ2UgfHwgJ1JlcXVlc3QgYm9keSBsZW5ndGggZG9lcyBub3QgbWF0Y2ggY29udGVudC1sZW5ndGggaGVhZGVyJ1xuICAgIHRoaXMuY29kZSA9ICdVTkRfRVJSX1JFUV9DT05URU5UX0xFTkdUSF9NSVNNQVRDSCdcbiAgfVxufVxuXG5jbGFzcyBSZXNwb25zZUNvbnRlbnRMZW5ndGhNaXNtYXRjaEVycm9yIGV4dGVuZHMgVW5kaWNpRXJyb3Ige1xuICBjb25zdHJ1Y3RvciAobWVzc2FnZSkge1xuICAgIHN1cGVyKG1lc3NhZ2UpXG4gICAgdGhpcy5uYW1lID0gJ1Jlc3BvbnNlQ29udGVudExlbmd0aE1pc21hdGNoRXJyb3InXG4gICAgdGhpcy5tZXNzYWdlID0gbWVzc2FnZSB8fCAnUmVzcG9uc2UgYm9keSBsZW5ndGggZG9lcyBub3QgbWF0Y2ggY29udGVudC1sZW5ndGggaGVhZGVyJ1xuICAgIHRoaXMuY29kZSA9ICdVTkRfRVJSX1JFU19DT05URU5UX0xFTkdUSF9NSVNNQVRDSCdcbiAgfVxufVxuXG5jbGFzcyBDbGllbnREZXN0cm95ZWRFcnJvciBleHRlbmRzIFVuZGljaUVycm9yIHtcbiAgY29uc3RydWN0b3IgKG1lc3NhZ2UpIHtcbiAgICBzdXBlcihtZXNzYWdlKVxuICAgIHRoaXMubmFtZSA9ICdDbGllbnREZXN0cm95ZWRFcnJvcidcbiAgICB0aGlzLm1lc3NhZ2UgPSBtZXNzYWdlIHx8ICdUaGUgY2xpZW50IGlzIGRlc3Ryb3llZCdcbiAgICB0aGlzLmNvZGUgPSAnVU5EX0VSUl9ERVNUUk9ZRUQnXG4gIH1cbn1cblxuY2xhc3MgQ2xpZW50Q2xvc2VkRXJyb3IgZXh0ZW5kcyBVbmRpY2lFcnJvciB7XG4gIGNvbnN0cnVjdG9yIChtZXNzYWdlKSB7XG4gICAgc3VwZXIobWVzc2FnZSlcbiAgICB0aGlzLm5hbWUgPSAnQ2xpZW50Q2xvc2VkRXJyb3InXG4gICAgdGhpcy5tZXNzYWdlID0gbWVzc2FnZSB8fCAnVGhlIGNsaWVudCBpcyBjbG9zZWQnXG4gICAgdGhpcy5jb2RlID0gJ1VORF9FUlJfQ0xPU0VEJ1xuICB9XG59XG5cbmNsYXNzIFNvY2tldEVycm9yIGV4dGVuZHMgVW5kaWNpRXJyb3Ige1xuICBjb25zdHJ1Y3RvciAobWVzc2FnZSwgc29ja2V0KSB7XG4gICAgc3VwZXIobWVzc2FnZSlcbiAgICB0aGlzLm5hbWUgPSAnU29ja2V0RXJyb3InXG4gICAgdGhpcy5tZXNzYWdlID0gbWVzc2FnZSB8fCAnU29ja2V0IGVycm9yJ1xuICAgIHRoaXMuY29kZSA9ICdVTkRfRVJSX1NPQ0tFVCdcbiAgICB0aGlzLnNvY2tldCA9IHNvY2tldFxuICB9XG59XG5cbmNsYXNzIE5vdFN1cHBvcnRlZEVycm9yIGV4dGVuZHMgVW5kaWNpRXJyb3Ige1xuICBjb25zdHJ1Y3RvciAobWVzc2FnZSkge1xuICAgIHN1cGVyKG1lc3NhZ2UpXG4gICAgdGhpcy5uYW1lID0gJ05vdFN1cHBvcnRlZEVycm9yJ1xuICAgIHRoaXMubWVzc2FnZSA9IG1lc3NhZ2UgfHwgJ05vdCBzdXBwb3J0ZWQgZXJyb3InXG4gICAgdGhpcy5jb2RlID0gJ1VORF9FUlJfTk9UX1NVUFBPUlRFRCdcbiAgfVxufVxuXG5jbGFzcyBCYWxhbmNlZFBvb2xNaXNzaW5nVXBzdHJlYW1FcnJvciBleHRlbmRzIFVuZGljaUVycm9yIHtcbiAgY29uc3RydWN0b3IgKG1lc3NhZ2UpIHtcbiAgICBzdXBlcihtZXNzYWdlKVxuICAgIHRoaXMubmFtZSA9ICdNaXNzaW5nVXBzdHJlYW1FcnJvcidcbiAgICB0aGlzLm1lc3NhZ2UgPSBtZXNzYWdlIHx8ICdObyB1cHN0cmVhbSBoYXMgYmVlbiBhZGRlZCB0byB0aGUgQmFsYW5jZWRQb29sJ1xuICAgIHRoaXMuY29kZSA9ICdVTkRfRVJSX0JQTF9NSVNTSU5HX1VQU1RSRUFNJ1xuICB9XG59XG5cbmNsYXNzIEhUVFBQYXJzZXJFcnJvciBleHRlbmRzIEVycm9yIHtcbiAgY29uc3RydWN0b3IgKG1lc3NhZ2UsIGNvZGUsIGRhdGEpIHtcbiAgICBzdXBlcihtZXNzYWdlKVxuICAgIHRoaXMubmFtZSA9ICdIVFRQUGFyc2VyRXJyb3InXG4gICAgdGhpcy5jb2RlID0gY29kZSA/IGBIUEVfJHtjb2RlfWAgOiB1bmRlZmluZWRcbiAgICB0aGlzLmRhdGEgPSBkYXRhID8gZGF0YS50b1N0cmluZygpIDogdW5kZWZpbmVkXG4gIH1cbn1cblxuY2xhc3MgUmVzcG9uc2VFeGNlZWRlZE1heFNpemVFcnJvciBleHRlbmRzIFVuZGljaUVycm9yIHtcbiAgY29uc3RydWN0b3IgKG1lc3NhZ2UpIHtcbiAgICBzdXBlcihtZXNzYWdlKVxuICAgIHRoaXMubmFtZSA9ICdSZXNwb25zZUV4Y2VlZGVkTWF4U2l6ZUVycm9yJ1xuICAgIHRoaXMubWVzc2FnZSA9IG1lc3NhZ2UgfHwgJ1Jlc3BvbnNlIGNvbnRlbnQgZXhjZWVkZWQgbWF4IHNpemUnXG4gICAgdGhpcy5jb2RlID0gJ1VORF9FUlJfUkVTX0VYQ0VFREVEX01BWF9TSVpFJ1xuICB9XG59XG5cbmNsYXNzIFJlcXVlc3RSZXRyeUVycm9yIGV4dGVuZHMgVW5kaWNpRXJyb3Ige1xuICBjb25zdHJ1Y3RvciAobWVzc2FnZSwgY29kZSwgeyBoZWFkZXJzLCBkYXRhIH0pIHtcbiAgICBzdXBlcihtZXNzYWdlKVxuICAgIHRoaXMubmFtZSA9ICdSZXF1ZXN0UmV0cnlFcnJvcidcbiAgICB0aGlzLm1lc3NhZ2UgPSBtZXNzYWdlIHx8ICdSZXF1ZXN0IHJldHJ5IGVycm9yJ1xuICAgIHRoaXMuY29kZSA9ICdVTkRfRVJSX1JFUV9SRVRSWSdcbiAgICB0aGlzLnN0YXR1c0NvZGUgPSBjb2RlXG4gICAgdGhpcy5kYXRhID0gZGF0YVxuICAgIHRoaXMuaGVhZGVycyA9IGhlYWRlcnNcbiAgfVxufVxuXG5jbGFzcyBSZXNwb25zZUVycm9yIGV4dGVuZHMgVW5kaWNpRXJyb3Ige1xuICBjb25zdHJ1Y3RvciAobWVzc2FnZSwgY29kZSwgeyBoZWFkZXJzLCBkYXRhIH0pIHtcbiAgICBzdXBlcihtZXNzYWdlKVxuICAgIHRoaXMubmFtZSA9ICdSZXNwb25zZUVycm9yJ1xuICAgIHRoaXMubWVzc2FnZSA9IG1lc3NhZ2UgfHwgJ1Jlc3BvbnNlIGVycm9yJ1xuICAgIHRoaXMuY29kZSA9ICdVTkRfRVJSX1JFU1BPTlNFJ1xuICAgIHRoaXMuc3RhdHVzQ29kZSA9IGNvZGVcbiAgICB0aGlzLmRhdGEgPSBkYXRhXG4gICAgdGhpcy5oZWFkZXJzID0gaGVhZGVyc1xuICB9XG59XG5cbmNsYXNzIFNlY3VyZVByb3h5Q29ubmVjdGlvbkVycm9yIGV4dGVuZHMgVW5kaWNpRXJyb3Ige1xuICBjb25zdHJ1Y3RvciAoY2F1c2UsIG1lc3NhZ2UsIG9wdGlvbnMpIHtcbiAgICBzdXBlcihtZXNzYWdlLCB7IGNhdXNlLCAuLi4ob3B0aW9ucyA/PyB7fSkgfSlcbiAgICB0aGlzLm5hbWUgPSAnU2VjdXJlUHJveHlDb25uZWN0aW9uRXJyb3InXG4gICAgdGhpcy5tZXNzYWdlID0gbWVzc2FnZSB8fCAnU2VjdXJlIFByb3h5IENvbm5lY3Rpb24gZmFpbGVkJ1xuICAgIHRoaXMuY29kZSA9ICdVTkRfRVJSX1BSWF9UTFMnXG4gICAgdGhpcy5jYXVzZSA9IGNhdXNlXG4gIH1cbn1cblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gIEFib3J0RXJyb3IsXG4gIEhUVFBQYXJzZXJFcnJvcixcbiAgVW5kaWNpRXJyb3IsXG4gIEhlYWRlcnNUaW1lb3V0RXJyb3IsXG4gIEhlYWRlcnNPdmVyZmxvd0Vycm9yLFxuICBCb2R5VGltZW91dEVycm9yLFxuICBSZXF1ZXN0Q29udGVudExlbmd0aE1pc21hdGNoRXJyb3IsXG4gIENvbm5lY3RUaW1lb3V0RXJyb3IsXG4gIFJlc3BvbnNlU3RhdHVzQ29kZUVycm9yLFxuICBJbnZhbGlkQXJndW1lbnRFcnJvcixcbiAgSW52YWxpZFJldHVyblZhbHVlRXJyb3IsXG4gIFJlcXVlc3RBYm9ydGVkRXJyb3IsXG4gIENsaWVudERlc3Ryb3llZEVycm9yLFxuICBDbGllbnRDbG9zZWRFcnJvcixcbiAgSW5mb3JtYXRpb25hbEVycm9yLFxuICBTb2NrZXRFcnJvcixcbiAgTm90U3VwcG9ydGVkRXJyb3IsXG4gIFJlc3BvbnNlQ29udGVudExlbmd0aE1pc21hdGNoRXJyb3IsXG4gIEJhbGFuY2VkUG9vbE1pc3NpbmdVcHN0cmVhbUVycm9yLFxuICBSZXNwb25zZUV4Y2VlZGVkTWF4U2l6ZUVycm9yLFxuICBSZXF1ZXN0UmV0cnlFcnJvcixcbiAgUmVzcG9uc2VFcnJvcixcbiAgU2VjdXJlUHJveHlDb25uZWN0aW9uRXJyb3Jcbn1cbiIsICIndXNlIHN0cmljdCdcblxuLyoqIEB0eXBlIHtSZWNvcmQ8c3RyaW5nLCBzdHJpbmcgfCB1bmRlZmluZWQ+fSAqL1xuY29uc3QgaGVhZGVyTmFtZUxvd2VyQ2FzZWRSZWNvcmQgPSB7fVxuXG4vLyBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9kb2NzL1dlYi9IVFRQL0hlYWRlcnNcbmNvbnN0IHdlbGxrbm93bkhlYWRlck5hbWVzID0gW1xuICAnQWNjZXB0JyxcbiAgJ0FjY2VwdC1FbmNvZGluZycsXG4gICdBY2NlcHQtTGFuZ3VhZ2UnLFxuICAnQWNjZXB0LVJhbmdlcycsXG4gICdBY2Nlc3MtQ29udHJvbC1BbGxvdy1DcmVkZW50aWFscycsXG4gICdBY2Nlc3MtQ29udHJvbC1BbGxvdy1IZWFkZXJzJyxcbiAgJ0FjY2Vzcy1Db250cm9sLUFsbG93LU1ldGhvZHMnLFxuICAnQWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2luJyxcbiAgJ0FjY2Vzcy1Db250cm9sLUV4cG9zZS1IZWFkZXJzJyxcbiAgJ0FjY2Vzcy1Db250cm9sLU1heC1BZ2UnLFxuICAnQWNjZXNzLUNvbnRyb2wtUmVxdWVzdC1IZWFkZXJzJyxcbiAgJ0FjY2Vzcy1Db250cm9sLVJlcXVlc3QtTWV0aG9kJyxcbiAgJ0FnZScsXG4gICdBbGxvdycsXG4gICdBbHQtU3ZjJyxcbiAgJ0FsdC1Vc2VkJyxcbiAgJ0F1dGhvcml6YXRpb24nLFxuICAnQ2FjaGUtQ29udHJvbCcsXG4gICdDbGVhci1TaXRlLURhdGEnLFxuICAnQ29ubmVjdGlvbicsXG4gICdDb250ZW50LURpc3Bvc2l0aW9uJyxcbiAgJ0NvbnRlbnQtRW5jb2RpbmcnLFxuICAnQ29udGVudC1MYW5ndWFnZScsXG4gICdDb250ZW50LUxlbmd0aCcsXG4gICdDb250ZW50LUxvY2F0aW9uJyxcbiAgJ0NvbnRlbnQtUmFuZ2UnLFxuICAnQ29udGVudC1TZWN1cml0eS1Qb2xpY3knLFxuICAnQ29udGVudC1TZWN1cml0eS1Qb2xpY3ktUmVwb3J0LU9ubHknLFxuICAnQ29udGVudC1UeXBlJyxcbiAgJ0Nvb2tpZScsXG4gICdDcm9zcy1PcmlnaW4tRW1iZWRkZXItUG9saWN5JyxcbiAgJ0Nyb3NzLU9yaWdpbi1PcGVuZXItUG9saWN5JyxcbiAgJ0Nyb3NzLU9yaWdpbi1SZXNvdXJjZS1Qb2xpY3knLFxuICAnRGF0ZScsXG4gICdEZXZpY2UtTWVtb3J5JyxcbiAgJ0Rvd25saW5rJyxcbiAgJ0VDVCcsXG4gICdFVGFnJyxcbiAgJ0V4cGVjdCcsXG4gICdFeHBlY3QtQ1QnLFxuICAnRXhwaXJlcycsXG4gICdGb3J3YXJkZWQnLFxuICAnRnJvbScsXG4gICdIb3N0JyxcbiAgJ0lmLU1hdGNoJyxcbiAgJ0lmLU1vZGlmaWVkLVNpbmNlJyxcbiAgJ0lmLU5vbmUtTWF0Y2gnLFxuICAnSWYtUmFuZ2UnLFxuICAnSWYtVW5tb2RpZmllZC1TaW5jZScsXG4gICdLZWVwLUFsaXZlJyxcbiAgJ0xhc3QtTW9kaWZpZWQnLFxuICAnTGluaycsXG4gICdMb2NhdGlvbicsXG4gICdNYXgtRm9yd2FyZHMnLFxuICAnT3JpZ2luJyxcbiAgJ1Blcm1pc3Npb25zLVBvbGljeScsXG4gICdQcmFnbWEnLFxuICAnUHJveHktQXV0aGVudGljYXRlJyxcbiAgJ1Byb3h5LUF1dGhvcml6YXRpb24nLFxuICAnUlRUJyxcbiAgJ1JhbmdlJyxcbiAgJ1JlZmVyZXInLFxuICAnUmVmZXJyZXItUG9saWN5JyxcbiAgJ1JlZnJlc2gnLFxuICAnUmV0cnktQWZ0ZXInLFxuICAnU2VjLVdlYlNvY2tldC1BY2NlcHQnLFxuICAnU2VjLVdlYlNvY2tldC1FeHRlbnNpb25zJyxcbiAgJ1NlYy1XZWJTb2NrZXQtS2V5JyxcbiAgJ1NlYy1XZWJTb2NrZXQtUHJvdG9jb2wnLFxuICAnU2VjLVdlYlNvY2tldC1WZXJzaW9uJyxcbiAgJ1NlcnZlcicsXG4gICdTZXJ2ZXItVGltaW5nJyxcbiAgJ1NlcnZpY2UtV29ya2VyLUFsbG93ZWQnLFxuICAnU2VydmljZS1Xb3JrZXItTmF2aWdhdGlvbi1QcmVsb2FkJyxcbiAgJ1NldC1Db29raWUnLFxuICAnU291cmNlTWFwJyxcbiAgJ1N0cmljdC1UcmFuc3BvcnQtU2VjdXJpdHknLFxuICAnU3VwcG9ydHMtTG9hZGluZy1Nb2RlJyxcbiAgJ1RFJyxcbiAgJ1RpbWluZy1BbGxvdy1PcmlnaW4nLFxuICAnVHJhaWxlcicsXG4gICdUcmFuc2Zlci1FbmNvZGluZycsXG4gICdVcGdyYWRlJyxcbiAgJ1VwZ3JhZGUtSW5zZWN1cmUtUmVxdWVzdHMnLFxuICAnVXNlci1BZ2VudCcsXG4gICdWYXJ5JyxcbiAgJ1ZpYScsXG4gICdXV1ctQXV0aGVudGljYXRlJyxcbiAgJ1gtQ29udGVudC1UeXBlLU9wdGlvbnMnLFxuICAnWC1ETlMtUHJlZmV0Y2gtQ29udHJvbCcsXG4gICdYLUZyYW1lLU9wdGlvbnMnLFxuICAnWC1QZXJtaXR0ZWQtQ3Jvc3MtRG9tYWluLVBvbGljaWVzJyxcbiAgJ1gtUG93ZXJlZC1CeScsXG4gICdYLVJlcXVlc3RlZC1XaXRoJyxcbiAgJ1gtWFNTLVByb3RlY3Rpb24nXG5dXG5cbmZvciAobGV0IGkgPSAwOyBpIDwgd2VsbGtub3duSGVhZGVyTmFtZXMubGVuZ3RoOyArK2kpIHtcbiAgY29uc3Qga2V5ID0gd2VsbGtub3duSGVhZGVyTmFtZXNbaV1cbiAgY29uc3QgbG93ZXJDYXNlZEtleSA9IGtleS50b0xvd2VyQ2FzZSgpXG4gIGhlYWRlck5hbWVMb3dlckNhc2VkUmVjb3JkW2tleV0gPSBoZWFkZXJOYW1lTG93ZXJDYXNlZFJlY29yZFtsb3dlckNhc2VkS2V5XSA9XG4gICAgbG93ZXJDYXNlZEtleVxufVxuXG4vLyBOb3RlOiBvYmplY3QgcHJvdG90eXBlcyBzaG91bGQgbm90IGJlIGFibGUgdG8gYmUgcmVmZXJlbmNlZC4gZS5nLiBgT2JqZWN0I2hhc093blByb3BlcnR5YC5cbk9iamVjdC5zZXRQcm90b3R5cGVPZihoZWFkZXJOYW1lTG93ZXJDYXNlZFJlY29yZCwgbnVsbClcblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gIHdlbGxrbm93bkhlYWRlck5hbWVzLFxuICBoZWFkZXJOYW1lTG93ZXJDYXNlZFJlY29yZFxufVxuIiwgIid1c2Ugc3RyaWN0J1xuXG5jb25zdCB7XG4gIHdlbGxrbm93bkhlYWRlck5hbWVzLFxuICBoZWFkZXJOYW1lTG93ZXJDYXNlZFJlY29yZFxufSA9IHJlcXVpcmUoJy4vY29uc3RhbnRzJylcblxuY2xhc3MgVHN0Tm9kZSB7XG4gIC8qKiBAdHlwZSB7YW55fSAqL1xuICB2YWx1ZSA9IG51bGxcbiAgLyoqIEB0eXBlIHtudWxsIHwgVHN0Tm9kZX0gKi9cbiAgbGVmdCA9IG51bGxcbiAgLyoqIEB0eXBlIHtudWxsIHwgVHN0Tm9kZX0gKi9cbiAgbWlkZGxlID0gbnVsbFxuICAvKiogQHR5cGUge251bGwgfCBUc3ROb2RlfSAqL1xuICByaWdodCA9IG51bGxcbiAgLyoqIEB0eXBlIHtudW1iZXJ9ICovXG4gIGNvZGVcbiAgLyoqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBrZXlcbiAgICogQHBhcmFtIHthbnl9IHZhbHVlXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBpbmRleFxuICAgKi9cbiAgY29uc3RydWN0b3IgKGtleSwgdmFsdWUsIGluZGV4KSB7XG4gICAgaWYgKGluZGV4ID09PSB1bmRlZmluZWQgfHwgaW5kZXggPj0ga2V5Lmxlbmd0aCkge1xuICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignVW5yZWFjaGFibGUnKVxuICAgIH1cbiAgICBjb25zdCBjb2RlID0gdGhpcy5jb2RlID0ga2V5LmNoYXJDb2RlQXQoaW5kZXgpXG4gICAgLy8gY2hlY2sgY29kZSBpcyBhc2NpaSBzdHJpbmdcbiAgICBpZiAoY29kZSA+IDB4N0YpIHtcbiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ2tleSBtdXN0IGJlIGFzY2lpIHN0cmluZycpXG4gICAgfVxuICAgIGlmIChrZXkubGVuZ3RoICE9PSArK2luZGV4KSB7XG4gICAgICB0aGlzLm1pZGRsZSA9IG5ldyBUc3ROb2RlKGtleSwgdmFsdWUsIGluZGV4KVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnZhbHVlID0gdmFsdWVcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHtzdHJpbmd9IGtleVxuICAgKiBAcGFyYW0ge2FueX0gdmFsdWVcbiAgICovXG4gIGFkZCAoa2V5LCB2YWx1ZSkge1xuICAgIGNvbnN0IGxlbmd0aCA9IGtleS5sZW5ndGhcbiAgICBpZiAobGVuZ3RoID09PSAwKSB7XG4gICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdVbnJlYWNoYWJsZScpXG4gICAgfVxuICAgIGxldCBpbmRleCA9IDBcbiAgICBsZXQgbm9kZSA9IHRoaXNcbiAgICB3aGlsZSAodHJ1ZSkge1xuICAgICAgY29uc3QgY29kZSA9IGtleS5jaGFyQ29kZUF0KGluZGV4KVxuICAgICAgLy8gY2hlY2sgY29kZSBpcyBhc2NpaSBzdHJpbmdcbiAgICAgIGlmIChjb2RlID4gMHg3Rikge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdrZXkgbXVzdCBiZSBhc2NpaSBzdHJpbmcnKVxuICAgICAgfVxuICAgICAgaWYgKG5vZGUuY29kZSA9PT0gY29kZSkge1xuICAgICAgICBpZiAobGVuZ3RoID09PSArK2luZGV4KSB7XG4gICAgICAgICAgbm9kZS52YWx1ZSA9IHZhbHVlXG4gICAgICAgICAgYnJlYWtcbiAgICAgICAgfSBlbHNlIGlmIChub2RlLm1pZGRsZSAhPT0gbnVsbCkge1xuICAgICAgICAgIG5vZGUgPSBub2RlLm1pZGRsZVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIG5vZGUubWlkZGxlID0gbmV3IFRzdE5vZGUoa2V5LCB2YWx1ZSwgaW5kZXgpXG4gICAgICAgICAgYnJlYWtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmIChub2RlLmNvZGUgPCBjb2RlKSB7XG4gICAgICAgIGlmIChub2RlLmxlZnQgIT09IG51bGwpIHtcbiAgICAgICAgICBub2RlID0gbm9kZS5sZWZ0XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgbm9kZS5sZWZ0ID0gbmV3IFRzdE5vZGUoa2V5LCB2YWx1ZSwgaW5kZXgpXG4gICAgICAgICAgYnJlYWtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmIChub2RlLnJpZ2h0ICE9PSBudWxsKSB7XG4gICAgICAgIG5vZGUgPSBub2RlLnJpZ2h0XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBub2RlLnJpZ2h0ID0gbmV3IFRzdE5vZGUoa2V5LCB2YWx1ZSwgaW5kZXgpXG4gICAgICAgIGJyZWFrXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7VWludDhBcnJheX0ga2V5XG4gICAqIEByZXR1cm4ge1RzdE5vZGUgfCBudWxsfVxuICAgKi9cbiAgc2VhcmNoIChrZXkpIHtcbiAgICBjb25zdCBrZXlsZW5ndGggPSBrZXkubGVuZ3RoXG4gICAgbGV0IGluZGV4ID0gMFxuICAgIGxldCBub2RlID0gdGhpc1xuICAgIHdoaWxlIChub2RlICE9PSBudWxsICYmIGluZGV4IDwga2V5bGVuZ3RoKSB7XG4gICAgICBsZXQgY29kZSA9IGtleVtpbmRleF1cbiAgICAgIC8vIEEtWlxuICAgICAgLy8gRmlyc3QgY2hlY2sgaWYgaXQgaXMgYmlnZ2VyIHRoYW4gMHg1YS5cbiAgICAgIC8vIExvd2VyY2FzZSBsZXR0ZXJzIGhhdmUgaGlnaGVyIGNoYXIgY29kZXMgdGhhbiB1cHBlcmNhc2Ugb25lcy5cbiAgICAgIC8vIEFsc28gd2UgYXNzdW1lIHRoYXQgaGVhZGVycyB3aWxsIG1vc3RseSBjb250YWluIGxvd2VyY2FzZSBjaGFyYWN0ZXJzLlxuICAgICAgaWYgKGNvZGUgPD0gMHg1YSAmJiBjb2RlID49IDB4NDEpIHtcbiAgICAgICAgLy8gTG93ZXJjYXNlIGZvciB1cHBlcmNhc2UuXG4gICAgICAgIGNvZGUgfD0gMzJcbiAgICAgIH1cbiAgICAgIHdoaWxlIChub2RlICE9PSBudWxsKSB7XG4gICAgICAgIGlmIChjb2RlID09PSBub2RlLmNvZGUpIHtcbiAgICAgICAgICBpZiAoa2V5bGVuZ3RoID09PSArK2luZGV4KSB7XG4gICAgICAgICAgICAvLyBSZXR1cm5zIE5vZGUgc2luY2UgaXQgaXMgdGhlIGxhc3Qga2V5LlxuICAgICAgICAgICAgcmV0dXJuIG5vZGVcbiAgICAgICAgICB9XG4gICAgICAgICAgbm9kZSA9IG5vZGUubWlkZGxlXG4gICAgICAgICAgYnJlYWtcbiAgICAgICAgfVxuICAgICAgICBub2RlID0gbm9kZS5jb2RlIDwgY29kZSA/IG5vZGUubGVmdCA6IG5vZGUucmlnaHRcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG51bGxcbiAgfVxufVxuXG5jbGFzcyBUZXJuYXJ5U2VhcmNoVHJlZSB7XG4gIC8qKiBAdHlwZSB7VHN0Tm9kZSB8IG51bGx9ICovXG4gIG5vZGUgPSBudWxsXG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBrZXlcbiAgICogQHBhcmFtIHthbnl9IHZhbHVlXG4gICAqICovXG4gIGluc2VydCAoa2V5LCB2YWx1ZSkge1xuICAgIGlmICh0aGlzLm5vZGUgPT09IG51bGwpIHtcbiAgICAgIHRoaXMubm9kZSA9IG5ldyBUc3ROb2RlKGtleSwgdmFsdWUsIDApXG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubm9kZS5hZGQoa2V5LCB2YWx1ZSlcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHtVaW50OEFycmF5fSBrZXlcbiAgICogQHJldHVybiB7YW55fVxuICAgKi9cbiAgbG9va3VwIChrZXkpIHtcbiAgICByZXR1cm4gdGhpcy5ub2RlPy5zZWFyY2goa2V5KT8udmFsdWUgPz8gbnVsbFxuICB9XG59XG5cbmNvbnN0IHRyZWUgPSBuZXcgVGVybmFyeVNlYXJjaFRyZWUoKVxuXG5mb3IgKGxldCBpID0gMDsgaSA8IHdlbGxrbm93bkhlYWRlck5hbWVzLmxlbmd0aDsgKytpKSB7XG4gIGNvbnN0IGtleSA9IGhlYWRlck5hbWVMb3dlckNhc2VkUmVjb3JkW3dlbGxrbm93bkhlYWRlck5hbWVzW2ldXVxuICB0cmVlLmluc2VydChrZXksIGtleSlcbn1cblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gIFRlcm5hcnlTZWFyY2hUcmVlLFxuICB0cmVlXG59XG4iLCAiJ3VzZSBzdHJpY3QnXG5cbmNvbnN0IGFzc2VydCA9IHJlcXVpcmUoJ25vZGU6YXNzZXJ0JylcbmNvbnN0IHsga0Rlc3Ryb3llZCwga0JvZHlVc2VkLCBrTGlzdGVuZXJzLCBrQm9keSB9ID0gcmVxdWlyZSgnLi9zeW1ib2xzJylcbmNvbnN0IHsgSW5jb21pbmdNZXNzYWdlIH0gPSByZXF1aXJlKCdub2RlOmh0dHAnKVxuY29uc3Qgc3RyZWFtID0gcmVxdWlyZSgnbm9kZTpzdHJlYW0nKVxuY29uc3QgbmV0ID0gcmVxdWlyZSgnbm9kZTpuZXQnKVxuY29uc3QgeyBCbG9iIH0gPSByZXF1aXJlKCdub2RlOmJ1ZmZlcicpXG5jb25zdCBub2RlVXRpbCA9IHJlcXVpcmUoJ25vZGU6dXRpbCcpXG5jb25zdCB7IHN0cmluZ2lmeSB9ID0gcmVxdWlyZSgnbm9kZTpxdWVyeXN0cmluZycpXG5jb25zdCB7IEV2ZW50RW1pdHRlcjogRUUgfSA9IHJlcXVpcmUoJ25vZGU6ZXZlbnRzJylcbmNvbnN0IHsgSW52YWxpZEFyZ3VtZW50RXJyb3IgfSA9IHJlcXVpcmUoJy4vZXJyb3JzJylcbmNvbnN0IHsgaGVhZGVyTmFtZUxvd2VyQ2FzZWRSZWNvcmQgfSA9IHJlcXVpcmUoJy4vY29uc3RhbnRzJylcbmNvbnN0IHsgdHJlZSB9ID0gcmVxdWlyZSgnLi90cmVlJylcblxuY29uc3QgW25vZGVNYWpvciwgbm9kZU1pbm9yXSA9IHByb2Nlc3MudmVyc2lvbnMubm9kZS5zcGxpdCgnLicpLm1hcCh2ID0+IE51bWJlcih2KSlcblxuY2xhc3MgQm9keUFzeW5jSXRlcmFibGUge1xuICBjb25zdHJ1Y3RvciAoYm9keSkge1xuICAgIHRoaXNba0JvZHldID0gYm9keVxuICAgIHRoaXNba0JvZHlVc2VkXSA9IGZhbHNlXG4gIH1cblxuICBhc3luYyAqIFtTeW1ib2wuYXN5bmNJdGVyYXRvcl0gKCkge1xuICAgIGFzc2VydCghdGhpc1trQm9keVVzZWRdLCAnZGlzdHVyYmVkJylcbiAgICB0aGlzW2tCb2R5VXNlZF0gPSB0cnVlXG4gICAgeWllbGQgKiB0aGlzW2tCb2R5XVxuICB9XG59XG5cbmZ1bmN0aW9uIHdyYXBSZXF1ZXN0Qm9keSAoYm9keSkge1xuICBpZiAoaXNTdHJlYW0oYm9keSkpIHtcbiAgICAvLyBUT0RPIChmaXgpOiBQcm92aWRlIHNvbWUgd2F5IGZvciB0aGUgdXNlciB0byBjYWNoZSB0aGUgZmlsZSB0byBlLmcuIC90bXBcbiAgICAvLyBzbyB0aGF0IGl0IGNhbiBiZSBkaXNwYXRjaGVkIGFnYWluP1xuICAgIC8vIFRPRE8gKGZpeCk6IERvIHdlIG5lZWQgMTAwLWV4cGVjdCBzdXBwb3J0IHRvIHByb3ZpZGUgYSB3YXkgdG8gZG8gdGhpcyBwcm9wZXJseT9cbiAgICBpZiAoYm9keUxlbmd0aChib2R5KSA9PT0gMCkge1xuICAgICAgYm9keVxuICAgICAgICAub24oJ2RhdGEnLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgYXNzZXJ0KGZhbHNlKVxuICAgICAgICB9KVxuICAgIH1cblxuICAgIGlmICh0eXBlb2YgYm9keS5yZWFkYWJsZURpZFJlYWQgIT09ICdib29sZWFuJykge1xuICAgICAgYm9keVtrQm9keVVzZWRdID0gZmFsc2VcbiAgICAgIEVFLnByb3RvdHlwZS5vbi5jYWxsKGJvZHksICdkYXRhJywgZnVuY3Rpb24gKCkge1xuICAgICAgICB0aGlzW2tCb2R5VXNlZF0gPSB0cnVlXG4gICAgICB9KVxuICAgIH1cblxuICAgIHJldHVybiBib2R5XG4gIH0gZWxzZSBpZiAoYm9keSAmJiB0eXBlb2YgYm9keS5waXBlVG8gPT09ICdmdW5jdGlvbicpIHtcbiAgICAvLyBUT0RPIChmaXgpOiBXZSBjYW4ndCBhY2Nlc3MgUmVhZGFibGVTdHJlYW0gaW50ZXJuYWwgc3RhdGVcbiAgICAvLyB0byBkZXRlcm1pbmUgd2hldGhlciBvciBub3QgaXQgaGFzIGJlZW4gZGlzdHVyYmVkLiBUaGlzIGlzIGp1c3RcbiAgICAvLyBhIHdvcmthcm91bmQuXG4gICAgcmV0dXJuIG5ldyBCb2R5QXN5bmNJdGVyYWJsZShib2R5KVxuICB9IGVsc2UgaWYgKFxuICAgIGJvZHkgJiZcbiAgICB0eXBlb2YgYm9keSAhPT0gJ3N0cmluZycgJiZcbiAgICAhQXJyYXlCdWZmZXIuaXNWaWV3KGJvZHkpICYmXG4gICAgaXNJdGVyYWJsZShib2R5KVxuICApIHtcbiAgICAvLyBUT0RPOiBTaG91bGQgd2UgYWxsb3cgcmUtdXNpbmcgaXRlcmFibGUgaWYgIXRoaXMub3B0cy5pZGVtcG90ZW50XG4gICAgLy8gb3IgdGhyb3VnaCBzb21lIG90aGVyIGZsYWc/XG4gICAgcmV0dXJuIG5ldyBCb2R5QXN5bmNJdGVyYWJsZShib2R5KVxuICB9IGVsc2Uge1xuICAgIHJldHVybiBib2R5XG4gIH1cbn1cblxuZnVuY3Rpb24gbm9wICgpIHt9XG5cbmZ1bmN0aW9uIGlzU3RyZWFtIChvYmopIHtcbiAgcmV0dXJuIG9iaiAmJiB0eXBlb2Ygb2JqID09PSAnb2JqZWN0JyAmJiB0eXBlb2Ygb2JqLnBpcGUgPT09ICdmdW5jdGlvbicgJiYgdHlwZW9mIG9iai5vbiA9PT0gJ2Z1bmN0aW9uJ1xufVxuXG4vLyBiYXNlZCBvbiBodHRwczovL2dpdGh1Yi5jb20vbm9kZS1mZXRjaC9mZXRjaC1ibG9iL2Jsb2IvOGFiNTg3ZDM0MDgwZGU5NDE0MGI1NGYwNzE2ODQ1MWU3ZDBiNjU1ZS9pbmRleC5qcyNMMjI5LUwyNDEgKE1JVCBMaWNlbnNlKVxuZnVuY3Rpb24gaXNCbG9iTGlrZSAob2JqZWN0KSB7XG4gIGlmIChvYmplY3QgPT09IG51bGwpIHtcbiAgICByZXR1cm4gZmFsc2VcbiAgfSBlbHNlIGlmIChvYmplY3QgaW5zdGFuY2VvZiBCbG9iKSB7XG4gICAgcmV0dXJuIHRydWVcbiAgfSBlbHNlIGlmICh0eXBlb2Ygb2JqZWN0ICE9PSAnb2JqZWN0Jykge1xuICAgIHJldHVybiBmYWxzZVxuICB9IGVsc2Uge1xuICAgIGNvbnN0IHNUYWcgPSBvYmplY3RbU3ltYm9sLnRvU3RyaW5nVGFnXVxuXG4gICAgcmV0dXJuIChzVGFnID09PSAnQmxvYicgfHwgc1RhZyA9PT0gJ0ZpbGUnKSAmJiAoXG4gICAgICAoJ3N0cmVhbScgaW4gb2JqZWN0ICYmIHR5cGVvZiBvYmplY3Quc3RyZWFtID09PSAnZnVuY3Rpb24nKSB8fFxuICAgICAgKCdhcnJheUJ1ZmZlcicgaW4gb2JqZWN0ICYmIHR5cGVvZiBvYmplY3QuYXJyYXlCdWZmZXIgPT09ICdmdW5jdGlvbicpXG4gICAgKVxuICB9XG59XG5cbmZ1bmN0aW9uIGJ1aWxkVVJMICh1cmwsIHF1ZXJ5UGFyYW1zKSB7XG4gIGlmICh1cmwuaW5jbHVkZXMoJz8nKSB8fCB1cmwuaW5jbHVkZXMoJyMnKSkge1xuICAgIHRocm93IG5ldyBFcnJvcignUXVlcnkgcGFyYW1zIGNhbm5vdCBiZSBwYXNzZWQgd2hlbiB1cmwgYWxyZWFkeSBjb250YWlucyBcIj9cIiBvciBcIiNcIi4nKVxuICB9XG5cbiAgY29uc3Qgc3RyaW5naWZpZWQgPSBzdHJpbmdpZnkocXVlcnlQYXJhbXMpXG5cbiAgaWYgKHN0cmluZ2lmaWVkKSB7XG4gICAgdXJsICs9ICc/JyArIHN0cmluZ2lmaWVkXG4gIH1cblxuICByZXR1cm4gdXJsXG59XG5cbmZ1bmN0aW9uIGlzVmFsaWRQb3J0IChwb3J0KSB7XG4gIGNvbnN0IHZhbHVlID0gcGFyc2VJbnQocG9ydCwgMTApXG4gIHJldHVybiAoXG4gICAgdmFsdWUgPT09IE51bWJlcihwb3J0KSAmJlxuICAgIHZhbHVlID49IDAgJiZcbiAgICB2YWx1ZSA8PSA2NTUzNVxuICApXG59XG5cbmZ1bmN0aW9uIGlzSHR0cE9ySHR0cHNQcmVmaXhlZCAodmFsdWUpIHtcbiAgcmV0dXJuIChcbiAgICB2YWx1ZSAhPSBudWxsICYmXG4gICAgdmFsdWVbMF0gPT09ICdoJyAmJlxuICAgIHZhbHVlWzFdID09PSAndCcgJiZcbiAgICB2YWx1ZVsyXSA9PT0gJ3QnICYmXG4gICAgdmFsdWVbM10gPT09ICdwJyAmJlxuICAgIChcbiAgICAgIHZhbHVlWzRdID09PSAnOicgfHxcbiAgICAgIChcbiAgICAgICAgdmFsdWVbNF0gPT09ICdzJyAmJlxuICAgICAgICB2YWx1ZVs1XSA9PT0gJzonXG4gICAgICApXG4gICAgKVxuICApXG59XG5cbmZ1bmN0aW9uIHBhcnNlVVJMICh1cmwpIHtcbiAgaWYgKHR5cGVvZiB1cmwgPT09ICdzdHJpbmcnKSB7XG4gICAgdXJsID0gbmV3IFVSTCh1cmwpXG5cbiAgICBpZiAoIWlzSHR0cE9ySHR0cHNQcmVmaXhlZCh1cmwub3JpZ2luIHx8IHVybC5wcm90b2NvbCkpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRFcnJvcignSW52YWxpZCBVUkwgcHJvdG9jb2w6IHRoZSBVUkwgbXVzdCBzdGFydCB3aXRoIGBodHRwOmAgb3IgYGh0dHBzOmAuJylcbiAgICB9XG5cbiAgICByZXR1cm4gdXJsXG4gIH1cblxuICBpZiAoIXVybCB8fCB0eXBlb2YgdXJsICE9PSAnb2JqZWN0Jykge1xuICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRFcnJvcignSW52YWxpZCBVUkw6IFRoZSBVUkwgYXJndW1lbnQgbXVzdCBiZSBhIG5vbi1udWxsIG9iamVjdC4nKVxuICB9XG5cbiAgaWYgKCEodXJsIGluc3RhbmNlb2YgVVJMKSkge1xuICAgIGlmICh1cmwucG9ydCAhPSBudWxsICYmIHVybC5wb3J0ICE9PSAnJyAmJiBpc1ZhbGlkUG9ydCh1cmwucG9ydCkgPT09IGZhbHNlKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50RXJyb3IoJ0ludmFsaWQgVVJMOiBwb3J0IG11c3QgYmUgYSB2YWxpZCBpbnRlZ2VyIG9yIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIGFuIGludGVnZXIuJylcbiAgICB9XG5cbiAgICBpZiAodXJsLnBhdGggIT0gbnVsbCAmJiB0eXBlb2YgdXJsLnBhdGggIT09ICdzdHJpbmcnKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50RXJyb3IoJ0ludmFsaWQgVVJMIHBhdGg6IHRoZSBwYXRoIG11c3QgYmUgYSBzdHJpbmcgb3IgbnVsbC91bmRlZmluZWQuJylcbiAgICB9XG5cbiAgICBpZiAodXJsLnBhdGhuYW1lICE9IG51bGwgJiYgdHlwZW9mIHVybC5wYXRobmFtZSAhPT0gJ3N0cmluZycpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRFcnJvcignSW52YWxpZCBVUkwgcGF0aG5hbWU6IHRoZSBwYXRobmFtZSBtdXN0IGJlIGEgc3RyaW5nIG9yIG51bGwvdW5kZWZpbmVkLicpXG4gICAgfVxuXG4gICAgaWYgKHVybC5ob3N0bmFtZSAhPSBudWxsICYmIHR5cGVvZiB1cmwuaG9zdG5hbWUgIT09ICdzdHJpbmcnKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50RXJyb3IoJ0ludmFsaWQgVVJMIGhvc3RuYW1lOiB0aGUgaG9zdG5hbWUgbXVzdCBiZSBhIHN0cmluZyBvciBudWxsL3VuZGVmaW5lZC4nKVxuICAgIH1cblxuICAgIGlmICh1cmwub3JpZ2luICE9IG51bGwgJiYgdHlwZW9mIHVybC5vcmlnaW4gIT09ICdzdHJpbmcnKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50RXJyb3IoJ0ludmFsaWQgVVJMIG9yaWdpbjogdGhlIG9yaWdpbiBtdXN0IGJlIGEgc3RyaW5nIG9yIG51bGwvdW5kZWZpbmVkLicpXG4gICAgfVxuXG4gICAgaWYgKCFpc0h0dHBPckh0dHBzUHJlZml4ZWQodXJsLm9yaWdpbiB8fCB1cmwucHJvdG9jb2wpKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50RXJyb3IoJ0ludmFsaWQgVVJMIHByb3RvY29sOiB0aGUgVVJMIG11c3Qgc3RhcnQgd2l0aCBgaHR0cDpgIG9yIGBodHRwczpgLicpXG4gICAgfVxuXG4gICAgY29uc3QgcG9ydCA9IHVybC5wb3J0ICE9IG51bGxcbiAgICAgID8gdXJsLnBvcnRcbiAgICAgIDogKHVybC5wcm90b2NvbCA9PT0gJ2h0dHBzOicgPyA0NDMgOiA4MClcbiAgICBsZXQgb3JpZ2luID0gdXJsLm9yaWdpbiAhPSBudWxsXG4gICAgICA/IHVybC5vcmlnaW5cbiAgICAgIDogYCR7dXJsLnByb3RvY29sIHx8ICcnfS8vJHt1cmwuaG9zdG5hbWUgfHwgJyd9OiR7cG9ydH1gXG4gICAgbGV0IHBhdGggPSB1cmwucGF0aCAhPSBudWxsXG4gICAgICA/IHVybC5wYXRoXG4gICAgICA6IGAke3VybC5wYXRobmFtZSB8fCAnJ30ke3VybC5zZWFyY2ggfHwgJyd9YFxuXG4gICAgaWYgKG9yaWdpbltvcmlnaW4ubGVuZ3RoIC0gMV0gPT09ICcvJykge1xuICAgICAgb3JpZ2luID0gb3JpZ2luLnNsaWNlKDAsIG9yaWdpbi5sZW5ndGggLSAxKVxuICAgIH1cblxuICAgIGlmIChwYXRoICYmIHBhdGhbMF0gIT09ICcvJykge1xuICAgICAgcGF0aCA9IGAvJHtwYXRofWBcbiAgICB9XG4gICAgLy8gbmV3IFVSTChwYXRoLCBvcmlnaW4pIGlzIHVuc2FmZSB3aGVuIGBwYXRoYCBjb250YWlucyBhbiBhYnNvbHV0ZSBVUkxcbiAgICAvLyBGcm9tIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0FQSS9VUkwvVVJMOlxuICAgIC8vIElmIGZpcnN0IHBhcmFtZXRlciBpcyBhIHJlbGF0aXZlIFVSTCwgc2Vjb25kIHBhcmFtIGlzIHJlcXVpcmVkLCBhbmQgd2lsbCBiZSB1c2VkIGFzIHRoZSBiYXNlIFVSTC5cbiAgICAvLyBJZiBmaXJzdCBwYXJhbWV0ZXIgaXMgYW4gYWJzb2x1dGUgVVJMLCBhIGdpdmVuIHNlY29uZCBwYXJhbSB3aWxsIGJlIGlnbm9yZWQuXG4gICAgcmV0dXJuIG5ldyBVUkwoYCR7b3JpZ2lufSR7cGF0aH1gKVxuICB9XG5cbiAgaWYgKCFpc0h0dHBPckh0dHBzUHJlZml4ZWQodXJsLm9yaWdpbiB8fCB1cmwucHJvdG9jb2wpKSB7XG4gICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudEVycm9yKCdJbnZhbGlkIFVSTCBwcm90b2NvbDogdGhlIFVSTCBtdXN0IHN0YXJ0IHdpdGggYGh0dHA6YCBvciBgaHR0cHM6YC4nKVxuICB9XG5cbiAgcmV0dXJuIHVybFxufVxuXG5mdW5jdGlvbiBwYXJzZU9yaWdpbiAodXJsKSB7XG4gIHVybCA9IHBhcnNlVVJMKHVybClcblxuICBpZiAodXJsLnBhdGhuYW1lICE9PSAnLycgfHwgdXJsLnNlYXJjaCB8fCB1cmwuaGFzaCkge1xuICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRFcnJvcignaW52YWxpZCB1cmwnKVxuICB9XG5cbiAgcmV0dXJuIHVybFxufVxuXG5mdW5jdGlvbiBnZXRIb3N0bmFtZSAoaG9zdCkge1xuICBpZiAoaG9zdFswXSA9PT0gJ1snKSB7XG4gICAgY29uc3QgaWR4ID0gaG9zdC5pbmRleE9mKCddJylcblxuICAgIGFzc2VydChpZHggIT09IC0xKVxuICAgIHJldHVybiBob3N0LnN1YnN0cmluZygxLCBpZHgpXG4gIH1cblxuICBjb25zdCBpZHggPSBob3N0LmluZGV4T2YoJzonKVxuICBpZiAoaWR4ID09PSAtMSkgcmV0dXJuIGhvc3RcblxuICByZXR1cm4gaG9zdC5zdWJzdHJpbmcoMCwgaWR4KVxufVxuXG4vLyBJUCBhZGRyZXNzZXMgYXJlIG5vdCB2YWxpZCBzZXJ2ZXIgbmFtZXMgcGVyIFJGQzYwNjZcbi8vID4gQ3VycmVudGx5LCB0aGUgb25seSBzZXJ2ZXIgbmFtZXMgc3VwcG9ydGVkIGFyZSBETlMgaG9zdG5hbWVzXG5mdW5jdGlvbiBnZXRTZXJ2ZXJOYW1lIChob3N0KSB7XG4gIGlmICghaG9zdCkge1xuICAgIHJldHVybiBudWxsXG4gIH1cblxuICBhc3NlcnQodHlwZW9mIGhvc3QgPT09ICdzdHJpbmcnKVxuXG4gIGNvbnN0IHNlcnZlcm5hbWUgPSBnZXRIb3N0bmFtZShob3N0KVxuICBpZiAobmV0LmlzSVAoc2VydmVybmFtZSkpIHtcbiAgICByZXR1cm4gJydcbiAgfVxuXG4gIHJldHVybiBzZXJ2ZXJuYW1lXG59XG5cbmZ1bmN0aW9uIGRlZXBDbG9uZSAob2JqKSB7XG4gIHJldHVybiBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KG9iaikpXG59XG5cbmZ1bmN0aW9uIGlzQXN5bmNJdGVyYWJsZSAob2JqKSB7XG4gIHJldHVybiAhIShvYmogIT0gbnVsbCAmJiB0eXBlb2Ygb2JqW1N5bWJvbC5hc3luY0l0ZXJhdG9yXSA9PT0gJ2Z1bmN0aW9uJylcbn1cblxuZnVuY3Rpb24gaXNJdGVyYWJsZSAob2JqKSB7XG4gIHJldHVybiAhIShvYmogIT0gbnVsbCAmJiAodHlwZW9mIG9ialtTeW1ib2wuaXRlcmF0b3JdID09PSAnZnVuY3Rpb24nIHx8IHR5cGVvZiBvYmpbU3ltYm9sLmFzeW5jSXRlcmF0b3JdID09PSAnZnVuY3Rpb24nKSlcbn1cblxuZnVuY3Rpb24gYm9keUxlbmd0aCAoYm9keSkge1xuICBpZiAoYm9keSA9PSBudWxsKSB7XG4gICAgcmV0dXJuIDBcbiAgfSBlbHNlIGlmIChpc1N0cmVhbShib2R5KSkge1xuICAgIGNvbnN0IHN0YXRlID0gYm9keS5fcmVhZGFibGVTdGF0ZVxuICAgIHJldHVybiBzdGF0ZSAmJiBzdGF0ZS5vYmplY3RNb2RlID09PSBmYWxzZSAmJiBzdGF0ZS5lbmRlZCA9PT0gdHJ1ZSAmJiBOdW1iZXIuaXNGaW5pdGUoc3RhdGUubGVuZ3RoKVxuICAgICAgPyBzdGF0ZS5sZW5ndGhcbiAgICAgIDogbnVsbFxuICB9IGVsc2UgaWYgKGlzQmxvYkxpa2UoYm9keSkpIHtcbiAgICByZXR1cm4gYm9keS5zaXplICE9IG51bGwgPyBib2R5LnNpemUgOiBudWxsXG4gIH0gZWxzZSBpZiAoaXNCdWZmZXIoYm9keSkpIHtcbiAgICByZXR1cm4gYm9keS5ieXRlTGVuZ3RoXG4gIH1cblxuICByZXR1cm4gbnVsbFxufVxuXG5mdW5jdGlvbiBpc0Rlc3Ryb3llZCAoYm9keSkge1xuICByZXR1cm4gYm9keSAmJiAhIShib2R5LmRlc3Ryb3llZCB8fCBib2R5W2tEZXN0cm95ZWRdIHx8IChzdHJlYW0uaXNEZXN0cm95ZWQ/Lihib2R5KSkpXG59XG5cbmZ1bmN0aW9uIGRlc3Ryb3kgKHN0cmVhbSwgZXJyKSB7XG4gIGlmIChzdHJlYW0gPT0gbnVsbCB8fCAhaXNTdHJlYW0oc3RyZWFtKSB8fCBpc0Rlc3Ryb3llZChzdHJlYW0pKSB7XG4gICAgcmV0dXJuXG4gIH1cblxuICBpZiAodHlwZW9mIHN0cmVhbS5kZXN0cm95ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgaWYgKE9iamVjdC5nZXRQcm90b3R5cGVPZihzdHJlYW0pLmNvbnN0cnVjdG9yID09PSBJbmNvbWluZ01lc3NhZ2UpIHtcbiAgICAgIC8vIFNlZTogaHR0cHM6Ly9naXRodWIuY29tL25vZGVqcy9ub2RlL3B1bGwvMzg1MDUvZmlsZXNcbiAgICAgIHN0cmVhbS5zb2NrZXQgPSBudWxsXG4gICAgfVxuXG4gICAgc3RyZWFtLmRlc3Ryb3koZXJyKVxuICB9IGVsc2UgaWYgKGVycikge1xuICAgIHF1ZXVlTWljcm90YXNrKCgpID0+IHtcbiAgICAgIHN0cmVhbS5lbWl0KCdlcnJvcicsIGVycilcbiAgICB9KVxuICB9XG5cbiAgaWYgKHN0cmVhbS5kZXN0cm95ZWQgIT09IHRydWUpIHtcbiAgICBzdHJlYW1ba0Rlc3Ryb3llZF0gPSB0cnVlXG4gIH1cbn1cblxuY29uc3QgS0VFUEFMSVZFX1RJTUVPVVRfRVhQUiA9IC90aW1lb3V0PShcXGQrKS9cbmZ1bmN0aW9uIHBhcnNlS2VlcEFsaXZlVGltZW91dCAodmFsKSB7XG4gIGNvbnN0IG0gPSB2YWwudG9TdHJpbmcoKS5tYXRjaChLRUVQQUxJVkVfVElNRU9VVF9FWFBSKVxuICByZXR1cm4gbSA/IHBhcnNlSW50KG1bMV0sIDEwKSAqIDEwMDAgOiBudWxsXG59XG5cbi8qKlxuICogUmV0cmlldmVzIGEgaGVhZGVyIG5hbWUgYW5kIHJldHVybnMgaXRzIGxvd2VyY2FzZSB2YWx1ZS5cbiAqIEBwYXJhbSB7c3RyaW5nIHwgQnVmZmVyfSB2YWx1ZSBIZWFkZXIgbmFtZVxuICogQHJldHVybnMge3N0cmluZ31cbiAqL1xuZnVuY3Rpb24gaGVhZGVyTmFtZVRvU3RyaW5nICh2YWx1ZSkge1xuICByZXR1cm4gdHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJ1xuICAgID8gaGVhZGVyTmFtZUxvd2VyQ2FzZWRSZWNvcmRbdmFsdWVdID8/IHZhbHVlLnRvTG93ZXJDYXNlKClcbiAgICA6IHRyZWUubG9va3VwKHZhbHVlKSA/PyB2YWx1ZS50b1N0cmluZygnbGF0aW4xJykudG9Mb3dlckNhc2UoKVxufVxuXG4vKipcbiAqIFJlY2VpdmUgdGhlIGJ1ZmZlciBhcyBhIHN0cmluZyBhbmQgcmV0dXJuIGl0cyBsb3dlcmNhc2UgdmFsdWUuXG4gKiBAcGFyYW0ge0J1ZmZlcn0gdmFsdWUgSGVhZGVyIG5hbWVcbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKi9cbmZ1bmN0aW9uIGJ1ZmZlclRvTG93ZXJDYXNlZEhlYWRlck5hbWUgKHZhbHVlKSB7XG4gIHJldHVybiB0cmVlLmxvb2t1cCh2YWx1ZSkgPz8gdmFsdWUudG9TdHJpbmcoJ2xhdGluMScpLnRvTG93ZXJDYXNlKClcbn1cblxuLyoqXG4gKiBAcGFyYW0ge1JlY29yZDxzdHJpbmcsIHN0cmluZyB8IHN0cmluZ1tdPiB8IChCdWZmZXIgfCBzdHJpbmcgfCAoQnVmZmVyIHwgc3RyaW5nKVtdKVtdfSBoZWFkZXJzXG4gKiBAcGFyYW0ge1JlY29yZDxzdHJpbmcsIHN0cmluZyB8IHN0cmluZ1tdPn0gW29ial1cbiAqIEByZXR1cm5zIHtSZWNvcmQ8c3RyaW5nLCBzdHJpbmcgfCBzdHJpbmdbXT59XG4gKi9cbmZ1bmN0aW9uIHBhcnNlSGVhZGVycyAoaGVhZGVycywgb2JqKSB7XG4gIGlmIChvYmogPT09IHVuZGVmaW5lZCkgb2JqID0ge31cbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBoZWFkZXJzLmxlbmd0aDsgaSArPSAyKSB7XG4gICAgY29uc3Qga2V5ID0gaGVhZGVyTmFtZVRvU3RyaW5nKGhlYWRlcnNbaV0pXG4gICAgbGV0IHZhbCA9IG9ialtrZXldXG5cbiAgICBpZiAodmFsKSB7XG4gICAgICBpZiAodHlwZW9mIHZhbCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgdmFsID0gW3ZhbF1cbiAgICAgICAgb2JqW2tleV0gPSB2YWxcbiAgICAgIH1cbiAgICAgIHZhbC5wdXNoKGhlYWRlcnNbaSArIDFdLnRvU3RyaW5nKCd1dGY4JykpXG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IGhlYWRlcnNWYWx1ZSA9IGhlYWRlcnNbaSArIDFdXG4gICAgICBpZiAodHlwZW9mIGhlYWRlcnNWYWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgb2JqW2tleV0gPSBoZWFkZXJzVmFsdWVcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG9ialtrZXldID0gQXJyYXkuaXNBcnJheShoZWFkZXJzVmFsdWUpID8gaGVhZGVyc1ZhbHVlLm1hcCh4ID0+IHgudG9TdHJpbmcoJ3V0ZjgnKSkgOiBoZWFkZXJzVmFsdWUudG9TdHJpbmcoJ3V0ZjgnKVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIFNlZSBodHRwczovL2dpdGh1Yi5jb20vbm9kZWpzL25vZGUvcHVsbC80NjUyOFxuICBpZiAoJ2NvbnRlbnQtbGVuZ3RoJyBpbiBvYmogJiYgJ2NvbnRlbnQtZGlzcG9zaXRpb24nIGluIG9iaikge1xuICAgIG9ialsnY29udGVudC1kaXNwb3NpdGlvbiddID0gQnVmZmVyLmZyb20ob2JqWydjb250ZW50LWRpc3Bvc2l0aW9uJ10pLnRvU3RyaW5nKCdsYXRpbjEnKVxuICB9XG5cbiAgcmV0dXJuIG9ialxufVxuXG5mdW5jdGlvbiBwYXJzZVJhd0hlYWRlcnMgKGhlYWRlcnMpIHtcbiAgY29uc3QgbGVuID0gaGVhZGVycy5sZW5ndGhcbiAgY29uc3QgcmV0ID0gbmV3IEFycmF5KGxlbilcblxuICBsZXQgaGFzQ29udGVudExlbmd0aCA9IGZhbHNlXG4gIGxldCBjb250ZW50RGlzcG9zaXRpb25JZHggPSAtMVxuICBsZXQga2V5XG4gIGxldCB2YWxcbiAgbGV0IGtMZW4gPSAwXG5cbiAgZm9yIChsZXQgbiA9IDA7IG4gPCBoZWFkZXJzLmxlbmd0aDsgbiArPSAyKSB7XG4gICAga2V5ID0gaGVhZGVyc1tuXVxuICAgIHZhbCA9IGhlYWRlcnNbbiArIDFdXG5cbiAgICB0eXBlb2Yga2V5ICE9PSAnc3RyaW5nJyAmJiAoa2V5ID0ga2V5LnRvU3RyaW5nKCkpXG4gICAgdHlwZW9mIHZhbCAhPT0gJ3N0cmluZycgJiYgKHZhbCA9IHZhbC50b1N0cmluZygndXRmOCcpKVxuXG4gICAga0xlbiA9IGtleS5sZW5ndGhcbiAgICBpZiAoa0xlbiA9PT0gMTQgJiYga2V5WzddID09PSAnLScgJiYgKGtleSA9PT0gJ2NvbnRlbnQtbGVuZ3RoJyB8fCBrZXkudG9Mb3dlckNhc2UoKSA9PT0gJ2NvbnRlbnQtbGVuZ3RoJykpIHtcbiAgICAgIGhhc0NvbnRlbnRMZW5ndGggPSB0cnVlXG4gICAgfSBlbHNlIGlmIChrTGVuID09PSAxOSAmJiBrZXlbN10gPT09ICctJyAmJiAoa2V5ID09PSAnY29udGVudC1kaXNwb3NpdGlvbicgfHwga2V5LnRvTG93ZXJDYXNlKCkgPT09ICdjb250ZW50LWRpc3Bvc2l0aW9uJykpIHtcbiAgICAgIGNvbnRlbnREaXNwb3NpdGlvbklkeCA9IG4gKyAxXG4gICAgfVxuICAgIHJldFtuXSA9IGtleVxuICAgIHJldFtuICsgMV0gPSB2YWxcbiAgfVxuXG4gIC8vIFNlZSBodHRwczovL2dpdGh1Yi5jb20vbm9kZWpzL25vZGUvcHVsbC80NjUyOFxuICBpZiAoaGFzQ29udGVudExlbmd0aCAmJiBjb250ZW50RGlzcG9zaXRpb25JZHggIT09IC0xKSB7XG4gICAgcmV0W2NvbnRlbnREaXNwb3NpdGlvbklkeF0gPSBCdWZmZXIuZnJvbShyZXRbY29udGVudERpc3Bvc2l0aW9uSWR4XSkudG9TdHJpbmcoJ2xhdGluMScpXG4gIH1cblxuICByZXR1cm4gcmV0XG59XG5cbmZ1bmN0aW9uIGlzQnVmZmVyIChidWZmZXIpIHtcbiAgLy8gU2VlLCBodHRwczovL2dpdGh1Yi5jb20vbWNvbGxpbmEvdW5kaWNpL3B1bGwvMzE5XG4gIHJldHVybiBidWZmZXIgaW5zdGFuY2VvZiBVaW50OEFycmF5IHx8IEJ1ZmZlci5pc0J1ZmZlcihidWZmZXIpXG59XG5cbmZ1bmN0aW9uIHZhbGlkYXRlSGFuZGxlciAoaGFuZGxlciwgbWV0aG9kLCB1cGdyYWRlKSB7XG4gIGlmICghaGFuZGxlciB8fCB0eXBlb2YgaGFuZGxlciAhPT0gJ29iamVjdCcpIHtcbiAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50RXJyb3IoJ2hhbmRsZXIgbXVzdCBiZSBhbiBvYmplY3QnKVxuICB9XG5cbiAgaWYgKHR5cGVvZiBoYW5kbGVyLm9uQ29ubmVjdCAhPT0gJ2Z1bmN0aW9uJykge1xuICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRFcnJvcignaW52YWxpZCBvbkNvbm5lY3QgbWV0aG9kJylcbiAgfVxuXG4gIGlmICh0eXBlb2YgaGFuZGxlci5vbkVycm9yICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudEVycm9yKCdpbnZhbGlkIG9uRXJyb3IgbWV0aG9kJylcbiAgfVxuXG4gIGlmICh0eXBlb2YgaGFuZGxlci5vbkJvZHlTZW50ICE9PSAnZnVuY3Rpb24nICYmIGhhbmRsZXIub25Cb2R5U2VudCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudEVycm9yKCdpbnZhbGlkIG9uQm9keVNlbnQgbWV0aG9kJylcbiAgfVxuXG4gIGlmICh1cGdyYWRlIHx8IG1ldGhvZCA9PT0gJ0NPTk5FQ1QnKSB7XG4gICAgaWYgKHR5cGVvZiBoYW5kbGVyLm9uVXBncmFkZSAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudEVycm9yKCdpbnZhbGlkIG9uVXBncmFkZSBtZXRob2QnKVxuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBpZiAodHlwZW9mIGhhbmRsZXIub25IZWFkZXJzICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50RXJyb3IoJ2ludmFsaWQgb25IZWFkZXJzIG1ldGhvZCcpXG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBoYW5kbGVyLm9uRGF0YSAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudEVycm9yKCdpbnZhbGlkIG9uRGF0YSBtZXRob2QnKVxuICAgIH1cblxuICAgIGlmICh0eXBlb2YgaGFuZGxlci5vbkNvbXBsZXRlICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50RXJyb3IoJ2ludmFsaWQgb25Db21wbGV0ZSBtZXRob2QnKVxuICAgIH1cbiAgfVxufVxuXG4vLyBBIGJvZHkgaXMgZGlzdHVyYmVkIGlmIGl0IGhhcyBiZWVuIHJlYWQgZnJvbSBhbmQgaXQgY2Fubm90XG4vLyBiZSByZS11c2VkIHdpdGhvdXQgbG9zaW5nIHN0YXRlIG9yIGRhdGEuXG5mdW5jdGlvbiBpc0Rpc3R1cmJlZCAoYm9keSkge1xuICAvLyBUT0RPIChmaXgpOiBXaHkgaXMgYm9keVtrQm9keVVzZWRdIG5lZWRlZD9cbiAgcmV0dXJuICEhKGJvZHkgJiYgKHN0cmVhbS5pc0Rpc3R1cmJlZChib2R5KSB8fCBib2R5W2tCb2R5VXNlZF0pKVxufVxuXG5mdW5jdGlvbiBpc0Vycm9yZWQgKGJvZHkpIHtcbiAgcmV0dXJuICEhKGJvZHkgJiYgc3RyZWFtLmlzRXJyb3JlZChib2R5KSlcbn1cblxuZnVuY3Rpb24gaXNSZWFkYWJsZSAoYm9keSkge1xuICByZXR1cm4gISEoYm9keSAmJiBzdHJlYW0uaXNSZWFkYWJsZShib2R5KSlcbn1cblxuZnVuY3Rpb24gZ2V0U29ja2V0SW5mbyAoc29ja2V0KSB7XG4gIHJldHVybiB7XG4gICAgbG9jYWxBZGRyZXNzOiBzb2NrZXQubG9jYWxBZGRyZXNzLFxuICAgIGxvY2FsUG9ydDogc29ja2V0LmxvY2FsUG9ydCxcbiAgICByZW1vdGVBZGRyZXNzOiBzb2NrZXQucmVtb3RlQWRkcmVzcyxcbiAgICByZW1vdGVQb3J0OiBzb2NrZXQucmVtb3RlUG9ydCxcbiAgICByZW1vdGVGYW1pbHk6IHNvY2tldC5yZW1vdGVGYW1pbHksXG4gICAgdGltZW91dDogc29ja2V0LnRpbWVvdXQsXG4gICAgYnl0ZXNXcml0dGVuOiBzb2NrZXQuYnl0ZXNXcml0dGVuLFxuICAgIGJ5dGVzUmVhZDogc29ja2V0LmJ5dGVzUmVhZFxuICB9XG59XG5cbi8qKiBAdHlwZSB7Z2xvYmFsVGhpc1snUmVhZGFibGVTdHJlYW0nXX0gKi9cbmZ1bmN0aW9uIFJlYWRhYmxlU3RyZWFtRnJvbSAoaXRlcmFibGUpIHtcbiAgLy8gV2UgY2Fubm90IHVzZSBSZWFkYWJsZVN0cmVhbS5mcm9tIGhlcmUgYmVjYXVzZSBpdCBkb2VzIG5vdCByZXR1cm4gYSBieXRlIHN0cmVhbS5cblxuICBsZXQgaXRlcmF0b3JcbiAgcmV0dXJuIG5ldyBSZWFkYWJsZVN0cmVhbShcbiAgICB7XG4gICAgICBhc3luYyBzdGFydCAoKSB7XG4gICAgICAgIGl0ZXJhdG9yID0gaXRlcmFibGVbU3ltYm9sLmFzeW5jSXRlcmF0b3JdKClcbiAgICAgIH0sXG4gICAgICBhc3luYyBwdWxsIChjb250cm9sbGVyKSB7XG4gICAgICAgIGNvbnN0IHsgZG9uZSwgdmFsdWUgfSA9IGF3YWl0IGl0ZXJhdG9yLm5leHQoKVxuICAgICAgICBpZiAoZG9uZSkge1xuICAgICAgICAgIHF1ZXVlTWljcm90YXNrKCgpID0+IHtcbiAgICAgICAgICAgIGNvbnRyb2xsZXIuY2xvc2UoKVxuICAgICAgICAgICAgY29udHJvbGxlci5ieW9iUmVxdWVzdD8ucmVzcG9uZCgwKVxuICAgICAgICAgIH0pXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29uc3QgYnVmID0gQnVmZmVyLmlzQnVmZmVyKHZhbHVlKSA/IHZhbHVlIDogQnVmZmVyLmZyb20odmFsdWUpXG4gICAgICAgICAgaWYgKGJ1Zi5ieXRlTGVuZ3RoKSB7XG4gICAgICAgICAgICBjb250cm9sbGVyLmVucXVldWUobmV3IFVpbnQ4QXJyYXkoYnVmKSlcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGNvbnRyb2xsZXIuZGVzaXJlZFNpemUgPiAwXG4gICAgICB9LFxuICAgICAgYXN5bmMgY2FuY2VsIChyZWFzb24pIHtcbiAgICAgICAgYXdhaXQgaXRlcmF0b3IucmV0dXJuKClcbiAgICAgIH0sXG4gICAgICB0eXBlOiAnYnl0ZXMnXG4gICAgfVxuICApXG59XG5cbi8vIFRoZSBjaHVuayBzaG91bGQgYmUgYSBGb3JtRGF0YSBpbnN0YW5jZSBhbmQgY29udGFpbnNcbi8vIGFsbCB0aGUgcmVxdWlyZWQgbWV0aG9kcy5cbmZ1bmN0aW9uIGlzRm9ybURhdGFMaWtlIChvYmplY3QpIHtcbiAgcmV0dXJuIChcbiAgICBvYmplY3QgJiZcbiAgICB0eXBlb2Ygb2JqZWN0ID09PSAnb2JqZWN0JyAmJlxuICAgIHR5cGVvZiBvYmplY3QuYXBwZW5kID09PSAnZnVuY3Rpb24nICYmXG4gICAgdHlwZW9mIG9iamVjdC5kZWxldGUgPT09ICdmdW5jdGlvbicgJiZcbiAgICB0eXBlb2Ygb2JqZWN0LmdldCA9PT0gJ2Z1bmN0aW9uJyAmJlxuICAgIHR5cGVvZiBvYmplY3QuZ2V0QWxsID09PSAnZnVuY3Rpb24nICYmXG4gICAgdHlwZW9mIG9iamVjdC5oYXMgPT09ICdmdW5jdGlvbicgJiZcbiAgICB0eXBlb2Ygb2JqZWN0LnNldCA9PT0gJ2Z1bmN0aW9uJyAmJlxuICAgIG9iamVjdFtTeW1ib2wudG9TdHJpbmdUYWddID09PSAnRm9ybURhdGEnXG4gIClcbn1cblxuZnVuY3Rpb24gYWRkQWJvcnRMaXN0ZW5lciAoc2lnbmFsLCBsaXN0ZW5lcikge1xuICBpZiAoJ2FkZEV2ZW50TGlzdGVuZXInIGluIHNpZ25hbCkge1xuICAgIHNpZ25hbC5hZGRFdmVudExpc3RlbmVyKCdhYm9ydCcsIGxpc3RlbmVyLCB7IG9uY2U6IHRydWUgfSlcbiAgICByZXR1cm4gKCkgPT4gc2lnbmFsLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2Fib3J0JywgbGlzdGVuZXIpXG4gIH1cbiAgc2lnbmFsLmFkZExpc3RlbmVyKCdhYm9ydCcsIGxpc3RlbmVyKVxuICByZXR1cm4gKCkgPT4gc2lnbmFsLnJlbW92ZUxpc3RlbmVyKCdhYm9ydCcsIGxpc3RlbmVyKVxufVxuXG5jb25zdCBoYXNUb1dlbGxGb3JtZWQgPSB0eXBlb2YgU3RyaW5nLnByb3RvdHlwZS50b1dlbGxGb3JtZWQgPT09ICdmdW5jdGlvbidcbmNvbnN0IGhhc0lzV2VsbEZvcm1lZCA9IHR5cGVvZiBTdHJpbmcucHJvdG90eXBlLmlzV2VsbEZvcm1lZCA9PT0gJ2Z1bmN0aW9uJ1xuXG4vKipcbiAqIEBwYXJhbSB7c3RyaW5nfSB2YWxcbiAqL1xuZnVuY3Rpb24gdG9VU1ZTdHJpbmcgKHZhbCkge1xuICByZXR1cm4gaGFzVG9XZWxsRm9ybWVkID8gYCR7dmFsfWAudG9XZWxsRm9ybWVkKCkgOiBub2RlVXRpbC50b1VTVlN0cmluZyh2YWwpXG59XG5cbi8qKlxuICogQHBhcmFtIHtzdHJpbmd9IHZhbFxuICovXG4vLyBUT0RPOiBtb3ZlIHRoaXMgdG8gd2ViaWRsXG5mdW5jdGlvbiBpc1VTVlN0cmluZyAodmFsKSB7XG4gIHJldHVybiBoYXNJc1dlbGxGb3JtZWQgPyBgJHt2YWx9YC5pc1dlbGxGb3JtZWQoKSA6IHRvVVNWU3RyaW5nKHZhbCkgPT09IGAke3ZhbH1gXG59XG5cbi8qKlxuICogQHNlZSBodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjNzIzMCNzZWN0aW9uLTMuMi42XG4gKiBAcGFyYW0ge251bWJlcn0gY1xuICovXG5mdW5jdGlvbiBpc1Rva2VuQ2hhckNvZGUgKGMpIHtcbiAgc3dpdGNoIChjKSB7XG4gICAgY2FzZSAweDIyOlxuICAgIGNhc2UgMHgyODpcbiAgICBjYXNlIDB4Mjk6XG4gICAgY2FzZSAweDJjOlxuICAgIGNhc2UgMHgyZjpcbiAgICBjYXNlIDB4M2E6XG4gICAgY2FzZSAweDNiOlxuICAgIGNhc2UgMHgzYzpcbiAgICBjYXNlIDB4M2Q6XG4gICAgY2FzZSAweDNlOlxuICAgIGNhc2UgMHgzZjpcbiAgICBjYXNlIDB4NDA6XG4gICAgY2FzZSAweDViOlxuICAgIGNhc2UgMHg1YzpcbiAgICBjYXNlIDB4NWQ6XG4gICAgY2FzZSAweDdiOlxuICAgIGNhc2UgMHg3ZDpcbiAgICAgIC8vIERRVU9URSBhbmQgXCIoKSwvOjs8PT4/QFtcXF17fVwiXG4gICAgICByZXR1cm4gZmFsc2VcbiAgICBkZWZhdWx0OlxuICAgICAgLy8gVkNIQVIgJXgyMS03RVxuICAgICAgcmV0dXJuIGMgPj0gMHgyMSAmJiBjIDw9IDB4N2VcbiAgfVxufVxuXG4vKipcbiAqIEBwYXJhbSB7c3RyaW5nfSBjaGFyYWN0ZXJzXG4gKi9cbmZ1bmN0aW9uIGlzVmFsaWRIVFRQVG9rZW4gKGNoYXJhY3RlcnMpIHtcbiAgaWYgKGNoYXJhY3RlcnMubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBjaGFyYWN0ZXJzLmxlbmd0aDsgKytpKSB7XG4gICAgaWYgKCFpc1Rva2VuQ2hhckNvZGUoY2hhcmFjdGVycy5jaGFyQ29kZUF0KGkpKSkge1xuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfVxuICB9XG4gIHJldHVybiB0cnVlXG59XG5cbi8vIGhlYWRlckNoYXJSZWdleCBoYXZlIGJlZW4gbGlmdGVkIGZyb21cbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9ub2RlanMvbm9kZS9ibG9iL21haW4vbGliL19odHRwX2NvbW1vbi5qc1xuXG4vKipcbiAqIE1hdGNoZXMgaWYgdmFsIGNvbnRhaW5zIGFuIGludmFsaWQgZmllbGQtdmNoYXJcbiAqICBmaWVsZC12YWx1ZSAgICA9ICooIGZpZWxkLWNvbnRlbnQgLyBvYnMtZm9sZCApXG4gKiAgZmllbGQtY29udGVudCAgPSBmaWVsZC12Y2hhciBbIDEqKCBTUCAvIEhUQUIgKSBmaWVsZC12Y2hhciBdXG4gKiAgZmllbGQtdmNoYXIgICAgPSBWQ0hBUiAvIG9icy10ZXh0XG4gKi9cbmNvbnN0IGhlYWRlckNoYXJSZWdleCA9IC9bXlxcdFxceDIwLVxceDdlXFx4ODAtXFx4ZmZdL1xuXG4vKipcbiAqIEBwYXJhbSB7c3RyaW5nfSBjaGFyYWN0ZXJzXG4gKi9cbmZ1bmN0aW9uIGlzVmFsaWRIZWFkZXJWYWx1ZSAoY2hhcmFjdGVycykge1xuICByZXR1cm4gIWhlYWRlckNoYXJSZWdleC50ZXN0KGNoYXJhY3RlcnMpXG59XG5cbi8vIFBhcnNlZCBhY2NvcmRpbmdseSB0byBSRkMgOTExMFxuLy8gaHR0cHM6Ly93d3cucmZjLWVkaXRvci5vcmcvcmZjL3JmYzkxMTAjZmllbGQuY29udGVudC1yYW5nZVxuZnVuY3Rpb24gcGFyc2VSYW5nZUhlYWRlciAocmFuZ2UpIHtcbiAgaWYgKHJhbmdlID09IG51bGwgfHwgcmFuZ2UgPT09ICcnKSByZXR1cm4geyBzdGFydDogMCwgZW5kOiBudWxsLCBzaXplOiBudWxsIH1cblxuICBjb25zdCBtID0gcmFuZ2UgPyByYW5nZS5tYXRjaCgvXmJ5dGVzIChcXGQrKS0oXFxkKylcXC8oXFxkKyk/JC8pIDogbnVsbFxuICByZXR1cm4gbVxuICAgID8ge1xuICAgICAgICBzdGFydDogcGFyc2VJbnQobVsxXSksXG4gICAgICAgIGVuZDogbVsyXSA/IHBhcnNlSW50KG1bMl0pIDogbnVsbCxcbiAgICAgICAgc2l6ZTogbVszXSA/IHBhcnNlSW50KG1bM10pIDogbnVsbFxuICAgICAgfVxuICAgIDogbnVsbFxufVxuXG5mdW5jdGlvbiBhZGRMaXN0ZW5lciAob2JqLCBuYW1lLCBsaXN0ZW5lcikge1xuICBjb25zdCBsaXN0ZW5lcnMgPSAob2JqW2tMaXN0ZW5lcnNdID8/PSBbXSlcbiAgbGlzdGVuZXJzLnB1c2goW25hbWUsIGxpc3RlbmVyXSlcbiAgb2JqLm9uKG5hbWUsIGxpc3RlbmVyKVxuICByZXR1cm4gb2JqXG59XG5cbmZ1bmN0aW9uIHJlbW92ZUFsbExpc3RlbmVycyAob2JqKSB7XG4gIGZvciAoY29uc3QgW25hbWUsIGxpc3RlbmVyXSBvZiBvYmpba0xpc3RlbmVyc10gPz8gW10pIHtcbiAgICBvYmoucmVtb3ZlTGlzdGVuZXIobmFtZSwgbGlzdGVuZXIpXG4gIH1cbiAgb2JqW2tMaXN0ZW5lcnNdID0gbnVsbFxufVxuXG5mdW5jdGlvbiBlcnJvclJlcXVlc3QgKGNsaWVudCwgcmVxdWVzdCwgZXJyKSB7XG4gIHRyeSB7XG4gICAgcmVxdWVzdC5vbkVycm9yKGVycilcbiAgICBhc3NlcnQocmVxdWVzdC5hYm9ydGVkKVxuICB9IGNhdGNoIChlcnIpIHtcbiAgICBjbGllbnQuZW1pdCgnZXJyb3InLCBlcnIpXG4gIH1cbn1cblxuY29uc3Qga0VudW1lcmFibGVQcm9wZXJ0eSA9IE9iamVjdC5jcmVhdGUobnVsbClcbmtFbnVtZXJhYmxlUHJvcGVydHkuZW51bWVyYWJsZSA9IHRydWVcblxuY29uc3Qgbm9ybWFsaXplZE1ldGhvZFJlY29yZHNCYXNlID0ge1xuICBkZWxldGU6ICdERUxFVEUnLFxuICBERUxFVEU6ICdERUxFVEUnLFxuICBnZXQ6ICdHRVQnLFxuICBHRVQ6ICdHRVQnLFxuICBoZWFkOiAnSEVBRCcsXG4gIEhFQUQ6ICdIRUFEJyxcbiAgb3B0aW9uczogJ09QVElPTlMnLFxuICBPUFRJT05TOiAnT1BUSU9OUycsXG4gIHBvc3Q6ICdQT1NUJyxcbiAgUE9TVDogJ1BPU1QnLFxuICBwdXQ6ICdQVVQnLFxuICBQVVQ6ICdQVVQnXG59XG5cbmNvbnN0IG5vcm1hbGl6ZWRNZXRob2RSZWNvcmRzID0ge1xuICAuLi5ub3JtYWxpemVkTWV0aG9kUmVjb3Jkc0Jhc2UsXG4gIHBhdGNoOiAncGF0Y2gnLFxuICBQQVRDSDogJ1BBVENIJ1xufVxuXG4vLyBOb3RlOiBvYmplY3QgcHJvdG90eXBlcyBzaG91bGQgbm90IGJlIGFibGUgdG8gYmUgcmVmZXJlbmNlZC4gZS5nLiBgT2JqZWN0I2hhc093blByb3BlcnR5YC5cbk9iamVjdC5zZXRQcm90b3R5cGVPZihub3JtYWxpemVkTWV0aG9kUmVjb3Jkc0Jhc2UsIG51bGwpXG5PYmplY3Quc2V0UHJvdG90eXBlT2Yobm9ybWFsaXplZE1ldGhvZFJlY29yZHMsIG51bGwpXG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICBrRW51bWVyYWJsZVByb3BlcnR5LFxuICBub3AsXG4gIGlzRGlzdHVyYmVkLFxuICBpc0Vycm9yZWQsXG4gIGlzUmVhZGFibGUsXG4gIHRvVVNWU3RyaW5nLFxuICBpc1VTVlN0cmluZyxcbiAgaXNCbG9iTGlrZSxcbiAgcGFyc2VPcmlnaW4sXG4gIHBhcnNlVVJMLFxuICBnZXRTZXJ2ZXJOYW1lLFxuICBpc1N0cmVhbSxcbiAgaXNJdGVyYWJsZSxcbiAgaXNBc3luY0l0ZXJhYmxlLFxuICBpc0Rlc3Ryb3llZCxcbiAgaGVhZGVyTmFtZVRvU3RyaW5nLFxuICBidWZmZXJUb0xvd2VyQ2FzZWRIZWFkZXJOYW1lLFxuICBhZGRMaXN0ZW5lcixcbiAgcmVtb3ZlQWxsTGlzdGVuZXJzLFxuICBlcnJvclJlcXVlc3QsXG4gIHBhcnNlUmF3SGVhZGVycyxcbiAgcGFyc2VIZWFkZXJzLFxuICBwYXJzZUtlZXBBbGl2ZVRpbWVvdXQsXG4gIGRlc3Ryb3ksXG4gIGJvZHlMZW5ndGgsXG4gIGRlZXBDbG9uZSxcbiAgUmVhZGFibGVTdHJlYW1Gcm9tLFxuICBpc0J1ZmZlcixcbiAgdmFsaWRhdGVIYW5kbGVyLFxuICBnZXRTb2NrZXRJbmZvLFxuICBpc0Zvcm1EYXRhTGlrZSxcbiAgYnVpbGRVUkwsXG4gIGFkZEFib3J0TGlzdGVuZXIsXG4gIGlzVmFsaWRIVFRQVG9rZW4sXG4gIGlzVmFsaWRIZWFkZXJWYWx1ZSxcbiAgaXNUb2tlbkNoYXJDb2RlLFxuICBwYXJzZVJhbmdlSGVhZGVyLFxuICBub3JtYWxpemVkTWV0aG9kUmVjb3Jkc0Jhc2UsXG4gIG5vcm1hbGl6ZWRNZXRob2RSZWNvcmRzLFxuICBpc1ZhbGlkUG9ydCxcbiAgaXNIdHRwT3JIdHRwc1ByZWZpeGVkLFxuICBub2RlTWFqb3IsXG4gIG5vZGVNaW5vcixcbiAgc2FmZUhUVFBNZXRob2RzOiBbJ0dFVCcsICdIRUFEJywgJ09QVElPTlMnLCAnVFJBQ0UnXSxcbiAgd3JhcFJlcXVlc3RCb2R5XG59XG4iLCAiJ3VzZSBzdHJpY3QnXG5jb25zdCBkaWFnbm9zdGljc0NoYW5uZWwgPSByZXF1aXJlKCdub2RlOmRpYWdub3N0aWNzX2NoYW5uZWwnKVxuY29uc3QgdXRpbCA9IHJlcXVpcmUoJ25vZGU6dXRpbCcpXG5cbmNvbnN0IHVuZGljaURlYnVnTG9nID0gdXRpbC5kZWJ1Z2xvZygndW5kaWNpJylcbmNvbnN0IGZldGNoRGVidWdsb2cgPSB1dGlsLmRlYnVnbG9nKCdmZXRjaCcpXG5jb25zdCB3ZWJzb2NrZXREZWJ1Z2xvZyA9IHV0aWwuZGVidWdsb2coJ3dlYnNvY2tldCcpXG5sZXQgaXNDbGllbnRTZXQgPSBmYWxzZVxuY29uc3QgY2hhbm5lbHMgPSB7XG4gIC8vIENsaWVudFxuICBiZWZvcmVDb25uZWN0OiBkaWFnbm9zdGljc0NoYW5uZWwuY2hhbm5lbCgndW5kaWNpOmNsaWVudDpiZWZvcmVDb25uZWN0JyksXG4gIGNvbm5lY3RlZDogZGlhZ25vc3RpY3NDaGFubmVsLmNoYW5uZWwoJ3VuZGljaTpjbGllbnQ6Y29ubmVjdGVkJyksXG4gIGNvbm5lY3RFcnJvcjogZGlhZ25vc3RpY3NDaGFubmVsLmNoYW5uZWwoJ3VuZGljaTpjbGllbnQ6Y29ubmVjdEVycm9yJyksXG4gIHNlbmRIZWFkZXJzOiBkaWFnbm9zdGljc0NoYW5uZWwuY2hhbm5lbCgndW5kaWNpOmNsaWVudDpzZW5kSGVhZGVycycpLFxuICAvLyBSZXF1ZXN0XG4gIGNyZWF0ZTogZGlhZ25vc3RpY3NDaGFubmVsLmNoYW5uZWwoJ3VuZGljaTpyZXF1ZXN0OmNyZWF0ZScpLFxuICBib2R5U2VudDogZGlhZ25vc3RpY3NDaGFubmVsLmNoYW5uZWwoJ3VuZGljaTpyZXF1ZXN0OmJvZHlTZW50JyksXG4gIGhlYWRlcnM6IGRpYWdub3N0aWNzQ2hhbm5lbC5jaGFubmVsKCd1bmRpY2k6cmVxdWVzdDpoZWFkZXJzJyksXG4gIHRyYWlsZXJzOiBkaWFnbm9zdGljc0NoYW5uZWwuY2hhbm5lbCgndW5kaWNpOnJlcXVlc3Q6dHJhaWxlcnMnKSxcbiAgZXJyb3I6IGRpYWdub3N0aWNzQ2hhbm5lbC5jaGFubmVsKCd1bmRpY2k6cmVxdWVzdDplcnJvcicpLFxuICAvLyBXZWJTb2NrZXRcbiAgb3BlbjogZGlhZ25vc3RpY3NDaGFubmVsLmNoYW5uZWwoJ3VuZGljaTp3ZWJzb2NrZXQ6b3BlbicpLFxuICBjbG9zZTogZGlhZ25vc3RpY3NDaGFubmVsLmNoYW5uZWwoJ3VuZGljaTp3ZWJzb2NrZXQ6Y2xvc2UnKSxcbiAgc29ja2V0RXJyb3I6IGRpYWdub3N0aWNzQ2hhbm5lbC5jaGFubmVsKCd1bmRpY2k6d2Vic29ja2V0OnNvY2tldF9lcnJvcicpLFxuICBwaW5nOiBkaWFnbm9zdGljc0NoYW5uZWwuY2hhbm5lbCgndW5kaWNpOndlYnNvY2tldDpwaW5nJyksXG4gIHBvbmc6IGRpYWdub3N0aWNzQ2hhbm5lbC5jaGFubmVsKCd1bmRpY2k6d2Vic29ja2V0OnBvbmcnKVxufVxuXG5pZiAodW5kaWNpRGVidWdMb2cuZW5hYmxlZCB8fCBmZXRjaERlYnVnbG9nLmVuYWJsZWQpIHtcbiAgY29uc3QgZGVidWdsb2cgPSBmZXRjaERlYnVnbG9nLmVuYWJsZWQgPyBmZXRjaERlYnVnbG9nIDogdW5kaWNpRGVidWdMb2dcblxuICAvLyBUcmFjayBhbGwgQ2xpZW50IGV2ZW50c1xuICBkaWFnbm9zdGljc0NoYW5uZWwuY2hhbm5lbCgndW5kaWNpOmNsaWVudDpiZWZvcmVDb25uZWN0Jykuc3Vic2NyaWJlKGV2dCA9PiB7XG4gICAgY29uc3Qge1xuICAgICAgY29ubmVjdFBhcmFtczogeyB2ZXJzaW9uLCBwcm90b2NvbCwgcG9ydCwgaG9zdCB9XG4gICAgfSA9IGV2dFxuICAgIGRlYnVnbG9nKFxuICAgICAgJ2Nvbm5lY3RpbmcgdG8gJXMgdXNpbmcgJXMlcycsXG4gICAgICBgJHtob3N0fSR7cG9ydCA/IGA6JHtwb3J0fWAgOiAnJ31gLFxuICAgICAgcHJvdG9jb2wsXG4gICAgICB2ZXJzaW9uXG4gICAgKVxuICB9KVxuXG4gIGRpYWdub3N0aWNzQ2hhbm5lbC5jaGFubmVsKCd1bmRpY2k6Y2xpZW50OmNvbm5lY3RlZCcpLnN1YnNjcmliZShldnQgPT4ge1xuICAgIGNvbnN0IHtcbiAgICAgIGNvbm5lY3RQYXJhbXM6IHsgdmVyc2lvbiwgcHJvdG9jb2wsIHBvcnQsIGhvc3QgfVxuICAgIH0gPSBldnRcbiAgICBkZWJ1Z2xvZyhcbiAgICAgICdjb25uZWN0ZWQgdG8gJXMgdXNpbmcgJXMlcycsXG4gICAgICBgJHtob3N0fSR7cG9ydCA/IGA6JHtwb3J0fWAgOiAnJ31gLFxuICAgICAgcHJvdG9jb2wsXG4gICAgICB2ZXJzaW9uXG4gICAgKVxuICB9KVxuXG4gIGRpYWdub3N0aWNzQ2hhbm5lbC5jaGFubmVsKCd1bmRpY2k6Y2xpZW50OmNvbm5lY3RFcnJvcicpLnN1YnNjcmliZShldnQgPT4ge1xuICAgIGNvbnN0IHtcbiAgICAgIGNvbm5lY3RQYXJhbXM6IHsgdmVyc2lvbiwgcHJvdG9jb2wsIHBvcnQsIGhvc3QgfSxcbiAgICAgIGVycm9yXG4gICAgfSA9IGV2dFxuICAgIGRlYnVnbG9nKFxuICAgICAgJ2Nvbm5lY3Rpb24gdG8gJXMgdXNpbmcgJXMlcyBlcnJvcmVkIC0gJXMnLFxuICAgICAgYCR7aG9zdH0ke3BvcnQgPyBgOiR7cG9ydH1gIDogJyd9YCxcbiAgICAgIHByb3RvY29sLFxuICAgICAgdmVyc2lvbixcbiAgICAgIGVycm9yLm1lc3NhZ2VcbiAgICApXG4gIH0pXG5cbiAgZGlhZ25vc3RpY3NDaGFubmVsLmNoYW5uZWwoJ3VuZGljaTpjbGllbnQ6c2VuZEhlYWRlcnMnKS5zdWJzY3JpYmUoZXZ0ID0+IHtcbiAgICBjb25zdCB7XG4gICAgICByZXF1ZXN0OiB7IG1ldGhvZCwgcGF0aCwgb3JpZ2luIH1cbiAgICB9ID0gZXZ0XG4gICAgZGVidWdsb2coJ3NlbmRpbmcgcmVxdWVzdCB0byAlcyAlcy8lcycsIG1ldGhvZCwgb3JpZ2luLCBwYXRoKVxuICB9KVxuXG4gIC8vIFRyYWNrIFJlcXVlc3QgZXZlbnRzXG4gIGRpYWdub3N0aWNzQ2hhbm5lbC5jaGFubmVsKCd1bmRpY2k6cmVxdWVzdDpoZWFkZXJzJykuc3Vic2NyaWJlKGV2dCA9PiB7XG4gICAgY29uc3Qge1xuICAgICAgcmVxdWVzdDogeyBtZXRob2QsIHBhdGgsIG9yaWdpbiB9LFxuICAgICAgcmVzcG9uc2U6IHsgc3RhdHVzQ29kZSB9XG4gICAgfSA9IGV2dFxuICAgIGRlYnVnbG9nKFxuICAgICAgJ3JlY2VpdmVkIHJlc3BvbnNlIHRvICVzICVzLyVzIC0gSFRUUCAlZCcsXG4gICAgICBtZXRob2QsXG4gICAgICBvcmlnaW4sXG4gICAgICBwYXRoLFxuICAgICAgc3RhdHVzQ29kZVxuICAgIClcbiAgfSlcblxuICBkaWFnbm9zdGljc0NoYW5uZWwuY2hhbm5lbCgndW5kaWNpOnJlcXVlc3Q6dHJhaWxlcnMnKS5zdWJzY3JpYmUoZXZ0ID0+IHtcbiAgICBjb25zdCB7XG4gICAgICByZXF1ZXN0OiB7IG1ldGhvZCwgcGF0aCwgb3JpZ2luIH1cbiAgICB9ID0gZXZ0XG4gICAgZGVidWdsb2coJ3RyYWlsZXJzIHJlY2VpdmVkIGZyb20gJXMgJXMvJXMnLCBtZXRob2QsIG9yaWdpbiwgcGF0aClcbiAgfSlcblxuICBkaWFnbm9zdGljc0NoYW5uZWwuY2hhbm5lbCgndW5kaWNpOnJlcXVlc3Q6ZXJyb3InKS5zdWJzY3JpYmUoZXZ0ID0+IHtcbiAgICBjb25zdCB7XG4gICAgICByZXF1ZXN0OiB7IG1ldGhvZCwgcGF0aCwgb3JpZ2luIH0sXG4gICAgICBlcnJvclxuICAgIH0gPSBldnRcbiAgICBkZWJ1Z2xvZyhcbiAgICAgICdyZXF1ZXN0IHRvICVzICVzLyVzIGVycm9yZWQgLSAlcycsXG4gICAgICBtZXRob2QsXG4gICAgICBvcmlnaW4sXG4gICAgICBwYXRoLFxuICAgICAgZXJyb3IubWVzc2FnZVxuICAgIClcbiAgfSlcblxuICBpc0NsaWVudFNldCA9IHRydWVcbn1cblxuaWYgKHdlYnNvY2tldERlYnVnbG9nLmVuYWJsZWQpIHtcbiAgaWYgKCFpc0NsaWVudFNldCkge1xuICAgIGNvbnN0IGRlYnVnbG9nID0gdW5kaWNpRGVidWdMb2cuZW5hYmxlZCA/IHVuZGljaURlYnVnTG9nIDogd2Vic29ja2V0RGVidWdsb2dcbiAgICBkaWFnbm9zdGljc0NoYW5uZWwuY2hhbm5lbCgndW5kaWNpOmNsaWVudDpiZWZvcmVDb25uZWN0Jykuc3Vic2NyaWJlKGV2dCA9PiB7XG4gICAgICBjb25zdCB7XG4gICAgICAgIGNvbm5lY3RQYXJhbXM6IHsgdmVyc2lvbiwgcHJvdG9jb2wsIHBvcnQsIGhvc3QgfVxuICAgICAgfSA9IGV2dFxuICAgICAgZGVidWdsb2coXG4gICAgICAgICdjb25uZWN0aW5nIHRvICVzJXMgdXNpbmcgJXMlcycsXG4gICAgICAgIGhvc3QsXG4gICAgICAgIHBvcnQgPyBgOiR7cG9ydH1gIDogJycsXG4gICAgICAgIHByb3RvY29sLFxuICAgICAgICB2ZXJzaW9uXG4gICAgICApXG4gICAgfSlcblxuICAgIGRpYWdub3N0aWNzQ2hhbm5lbC5jaGFubmVsKCd1bmRpY2k6Y2xpZW50OmNvbm5lY3RlZCcpLnN1YnNjcmliZShldnQgPT4ge1xuICAgICAgY29uc3Qge1xuICAgICAgICBjb25uZWN0UGFyYW1zOiB7IHZlcnNpb24sIHByb3RvY29sLCBwb3J0LCBob3N0IH1cbiAgICAgIH0gPSBldnRcbiAgICAgIGRlYnVnbG9nKFxuICAgICAgICAnY29ubmVjdGVkIHRvICVzJXMgdXNpbmcgJXMlcycsXG4gICAgICAgIGhvc3QsXG4gICAgICAgIHBvcnQgPyBgOiR7cG9ydH1gIDogJycsXG4gICAgICAgIHByb3RvY29sLFxuICAgICAgICB2ZXJzaW9uXG4gICAgICApXG4gICAgfSlcblxuICAgIGRpYWdub3N0aWNzQ2hhbm5lbC5jaGFubmVsKCd1bmRpY2k6Y2xpZW50OmNvbm5lY3RFcnJvcicpLnN1YnNjcmliZShldnQgPT4ge1xuICAgICAgY29uc3Qge1xuICAgICAgICBjb25uZWN0UGFyYW1zOiB7IHZlcnNpb24sIHByb3RvY29sLCBwb3J0LCBob3N0IH0sXG4gICAgICAgIGVycm9yXG4gICAgICB9ID0gZXZ0XG4gICAgICBkZWJ1Z2xvZyhcbiAgICAgICAgJ2Nvbm5lY3Rpb24gdG8gJXMlcyB1c2luZyAlcyVzIGVycm9yZWQgLSAlcycsXG4gICAgICAgIGhvc3QsXG4gICAgICAgIHBvcnQgPyBgOiR7cG9ydH1gIDogJycsXG4gICAgICAgIHByb3RvY29sLFxuICAgICAgICB2ZXJzaW9uLFxuICAgICAgICBlcnJvci5tZXNzYWdlXG4gICAgICApXG4gICAgfSlcblxuICAgIGRpYWdub3N0aWNzQ2hhbm5lbC5jaGFubmVsKCd1bmRpY2k6Y2xpZW50OnNlbmRIZWFkZXJzJykuc3Vic2NyaWJlKGV2dCA9PiB7XG4gICAgICBjb25zdCB7XG4gICAgICAgIHJlcXVlc3Q6IHsgbWV0aG9kLCBwYXRoLCBvcmlnaW4gfVxuICAgICAgfSA9IGV2dFxuICAgICAgZGVidWdsb2coJ3NlbmRpbmcgcmVxdWVzdCB0byAlcyAlcy8lcycsIG1ldGhvZCwgb3JpZ2luLCBwYXRoKVxuICAgIH0pXG4gIH1cblxuICAvLyBUcmFjayBhbGwgV2ViU29ja2V0IGV2ZW50c1xuICBkaWFnbm9zdGljc0NoYW5uZWwuY2hhbm5lbCgndW5kaWNpOndlYnNvY2tldDpvcGVuJykuc3Vic2NyaWJlKGV2dCA9PiB7XG4gICAgY29uc3Qge1xuICAgICAgYWRkcmVzczogeyBhZGRyZXNzLCBwb3J0IH1cbiAgICB9ID0gZXZ0XG4gICAgd2Vic29ja2V0RGVidWdsb2coJ2Nvbm5lY3Rpb24gb3BlbmVkICVzJXMnLCBhZGRyZXNzLCBwb3J0ID8gYDoke3BvcnR9YCA6ICcnKVxuICB9KVxuXG4gIGRpYWdub3N0aWNzQ2hhbm5lbC5jaGFubmVsKCd1bmRpY2k6d2Vic29ja2V0OmNsb3NlJykuc3Vic2NyaWJlKGV2dCA9PiB7XG4gICAgY29uc3QgeyB3ZWJzb2NrZXQsIGNvZGUsIHJlYXNvbiB9ID0gZXZ0XG4gICAgd2Vic29ja2V0RGVidWdsb2coXG4gICAgICAnY2xvc2VkIGNvbm5lY3Rpb24gdG8gJXMgLSAlcyAlcycsXG4gICAgICB3ZWJzb2NrZXQudXJsLFxuICAgICAgY29kZSxcbiAgICAgIHJlYXNvblxuICAgIClcbiAgfSlcblxuICBkaWFnbm9zdGljc0NoYW5uZWwuY2hhbm5lbCgndW5kaWNpOndlYnNvY2tldDpzb2NrZXRfZXJyb3InKS5zdWJzY3JpYmUoZXJyID0+IHtcbiAgICB3ZWJzb2NrZXREZWJ1Z2xvZygnY29ubmVjdGlvbiBlcnJvcmVkIC0gJXMnLCBlcnIubWVzc2FnZSlcbiAgfSlcblxuICBkaWFnbm9zdGljc0NoYW5uZWwuY2hhbm5lbCgndW5kaWNpOndlYnNvY2tldDpwaW5nJykuc3Vic2NyaWJlKGV2dCA9PiB7XG4gICAgd2Vic29ja2V0RGVidWdsb2coJ3BpbmcgcmVjZWl2ZWQnKVxuICB9KVxuXG4gIGRpYWdub3N0aWNzQ2hhbm5lbC5jaGFubmVsKCd1bmRpY2k6d2Vic29ja2V0OnBvbmcnKS5zdWJzY3JpYmUoZXZ0ID0+IHtcbiAgICB3ZWJzb2NrZXREZWJ1Z2xvZygncG9uZyByZWNlaXZlZCcpXG4gIH0pXG59XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICBjaGFubmVsc1xufVxuIiwgIid1c2Ugc3RyaWN0J1xuXG5jb25zdCB7XG4gIEludmFsaWRBcmd1bWVudEVycm9yLFxuICBOb3RTdXBwb3J0ZWRFcnJvclxufSA9IHJlcXVpcmUoJy4vZXJyb3JzJylcbmNvbnN0IGFzc2VydCA9IHJlcXVpcmUoJ25vZGU6YXNzZXJ0JylcbmNvbnN0IHtcbiAgaXNWYWxpZEhUVFBUb2tlbixcbiAgaXNWYWxpZEhlYWRlclZhbHVlLFxuICBpc1N0cmVhbSxcbiAgZGVzdHJveSxcbiAgaXNCdWZmZXIsXG4gIGlzRm9ybURhdGFMaWtlLFxuICBpc0l0ZXJhYmxlLFxuICBpc0Jsb2JMaWtlLFxuICBidWlsZFVSTCxcbiAgdmFsaWRhdGVIYW5kbGVyLFxuICBnZXRTZXJ2ZXJOYW1lLFxuICBub3JtYWxpemVkTWV0aG9kUmVjb3Jkc1xufSA9IHJlcXVpcmUoJy4vdXRpbCcpXG5jb25zdCB7IGNoYW5uZWxzIH0gPSByZXF1aXJlKCcuL2RpYWdub3N0aWNzLmpzJylcbmNvbnN0IHsgaGVhZGVyTmFtZUxvd2VyQ2FzZWRSZWNvcmQgfSA9IHJlcXVpcmUoJy4vY29uc3RhbnRzJylcblxuLy8gVmVyaWZpZXMgdGhhdCBhIGdpdmVuIHBhdGggaXMgdmFsaWQgZG9lcyBub3QgY29udGFpbiBjb250cm9sIGNoYXJzIFxceDAwIHRvIFxceDIwXG5jb25zdCBpbnZhbGlkUGF0aFJlZ2V4ID0gL1teXFx1MDAyMS1cXHUwMGZmXS9cblxuY29uc3Qga0hhbmRsZXIgPSBTeW1ib2woJ2hhbmRsZXInKVxuXG5jbGFzcyBSZXF1ZXN0IHtcbiAgY29uc3RydWN0b3IgKG9yaWdpbiwge1xuICAgIHBhdGgsXG4gICAgbWV0aG9kLFxuICAgIGJvZHksXG4gICAgaGVhZGVycyxcbiAgICBxdWVyeSxcbiAgICBpZGVtcG90ZW50LFxuICAgIGJsb2NraW5nLFxuICAgIHVwZ3JhZGUsXG4gICAgaGVhZGVyc1RpbWVvdXQsXG4gICAgYm9keVRpbWVvdXQsXG4gICAgcmVzZXQsXG4gICAgdGhyb3dPbkVycm9yLFxuICAgIGV4cGVjdENvbnRpbnVlLFxuICAgIHNlcnZlcm5hbWVcbiAgfSwgaGFuZGxlcikge1xuICAgIGlmICh0eXBlb2YgcGF0aCAhPT0gJ3N0cmluZycpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRFcnJvcigncGF0aCBtdXN0IGJlIGEgc3RyaW5nJylcbiAgICB9IGVsc2UgaWYgKFxuICAgICAgcGF0aFswXSAhPT0gJy8nICYmXG4gICAgICAhKHBhdGguc3RhcnRzV2l0aCgnaHR0cDovLycpIHx8IHBhdGguc3RhcnRzV2l0aCgnaHR0cHM6Ly8nKSkgJiZcbiAgICAgIG1ldGhvZCAhPT0gJ0NPTk5FQ1QnXG4gICAgKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50RXJyb3IoJ3BhdGggbXVzdCBiZSBhbiBhYnNvbHV0ZSBVUkwgb3Igc3RhcnQgd2l0aCBhIHNsYXNoJylcbiAgICB9IGVsc2UgaWYgKGludmFsaWRQYXRoUmVnZXgudGVzdChwYXRoKSkge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudEVycm9yKCdpbnZhbGlkIHJlcXVlc3QgcGF0aCcpXG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBtZXRob2QgIT09ICdzdHJpbmcnKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50RXJyb3IoJ21ldGhvZCBtdXN0IGJlIGEgc3RyaW5nJylcbiAgICB9IGVsc2UgaWYgKG5vcm1hbGl6ZWRNZXRob2RSZWNvcmRzW21ldGhvZF0gPT09IHVuZGVmaW5lZCAmJiAhaXNWYWxpZEhUVFBUb2tlbihtZXRob2QpKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50RXJyb3IoJ2ludmFsaWQgcmVxdWVzdCBtZXRob2QnKVxuICAgIH1cblxuICAgIGlmICh1cGdyYWRlICYmIHR5cGVvZiB1cGdyYWRlICE9PSAnc3RyaW5nJykge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudEVycm9yKCd1cGdyYWRlIG11c3QgYmUgYSBzdHJpbmcnKVxuICAgIH1cblxuICAgIGlmIChoZWFkZXJzVGltZW91dCAhPSBudWxsICYmICghTnVtYmVyLmlzRmluaXRlKGhlYWRlcnNUaW1lb3V0KSB8fCBoZWFkZXJzVGltZW91dCA8IDApKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50RXJyb3IoJ2ludmFsaWQgaGVhZGVyc1RpbWVvdXQnKVxuICAgIH1cblxuICAgIGlmIChib2R5VGltZW91dCAhPSBudWxsICYmICghTnVtYmVyLmlzRmluaXRlKGJvZHlUaW1lb3V0KSB8fCBib2R5VGltZW91dCA8IDApKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50RXJyb3IoJ2ludmFsaWQgYm9keVRpbWVvdXQnKVxuICAgIH1cblxuICAgIGlmIChyZXNldCAhPSBudWxsICYmIHR5cGVvZiByZXNldCAhPT0gJ2Jvb2xlYW4nKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50RXJyb3IoJ2ludmFsaWQgcmVzZXQnKVxuICAgIH1cblxuICAgIGlmIChleHBlY3RDb250aW51ZSAhPSBudWxsICYmIHR5cGVvZiBleHBlY3RDb250aW51ZSAhPT0gJ2Jvb2xlYW4nKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50RXJyb3IoJ2ludmFsaWQgZXhwZWN0Q29udGludWUnKVxuICAgIH1cblxuICAgIHRoaXMuaGVhZGVyc1RpbWVvdXQgPSBoZWFkZXJzVGltZW91dFxuXG4gICAgdGhpcy5ib2R5VGltZW91dCA9IGJvZHlUaW1lb3V0XG5cbiAgICB0aGlzLnRocm93T25FcnJvciA9IHRocm93T25FcnJvciA9PT0gdHJ1ZVxuXG4gICAgdGhpcy5tZXRob2QgPSBtZXRob2RcblxuICAgIHRoaXMuYWJvcnQgPSBudWxsXG5cbiAgICBpZiAoYm9keSA9PSBudWxsKSB7XG4gICAgICB0aGlzLmJvZHkgPSBudWxsXG4gICAgfSBlbHNlIGlmIChpc1N0cmVhbShib2R5KSkge1xuICAgICAgdGhpcy5ib2R5ID0gYm9keVxuXG4gICAgICBjb25zdCByU3RhdGUgPSB0aGlzLmJvZHkuX3JlYWRhYmxlU3RhdGVcbiAgICAgIGlmICghclN0YXRlIHx8ICFyU3RhdGUuYXV0b0Rlc3Ryb3kpIHtcbiAgICAgICAgdGhpcy5lbmRIYW5kbGVyID0gZnVuY3Rpb24gYXV0b0Rlc3Ryb3kgKCkge1xuICAgICAgICAgIGRlc3Ryb3kodGhpcylcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmJvZHkub24oJ2VuZCcsIHRoaXMuZW5kSGFuZGxlcilcbiAgICAgIH1cblxuICAgICAgdGhpcy5lcnJvckhhbmRsZXIgPSBlcnIgPT4ge1xuICAgICAgICBpZiAodGhpcy5hYm9ydCkge1xuICAgICAgICAgIHRoaXMuYWJvcnQoZXJyKVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuZXJyb3IgPSBlcnJcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgdGhpcy5ib2R5Lm9uKCdlcnJvcicsIHRoaXMuZXJyb3JIYW5kbGVyKVxuICAgIH0gZWxzZSBpZiAoaXNCdWZmZXIoYm9keSkpIHtcbiAgICAgIHRoaXMuYm9keSA9IGJvZHkuYnl0ZUxlbmd0aCA/IGJvZHkgOiBudWxsXG4gICAgfSBlbHNlIGlmIChBcnJheUJ1ZmZlci5pc1ZpZXcoYm9keSkpIHtcbiAgICAgIHRoaXMuYm9keSA9IGJvZHkuYnVmZmVyLmJ5dGVMZW5ndGggPyBCdWZmZXIuZnJvbShib2R5LmJ1ZmZlciwgYm9keS5ieXRlT2Zmc2V0LCBib2R5LmJ5dGVMZW5ndGgpIDogbnVsbFxuICAgIH0gZWxzZSBpZiAoYm9keSBpbnN0YW5jZW9mIEFycmF5QnVmZmVyKSB7XG4gICAgICB0aGlzLmJvZHkgPSBib2R5LmJ5dGVMZW5ndGggPyBCdWZmZXIuZnJvbShib2R5KSA6IG51bGxcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiBib2R5ID09PSAnc3RyaW5nJykge1xuICAgICAgdGhpcy5ib2R5ID0gYm9keS5sZW5ndGggPyBCdWZmZXIuZnJvbShib2R5KSA6IG51bGxcbiAgICB9IGVsc2UgaWYgKGlzRm9ybURhdGFMaWtlKGJvZHkpIHx8IGlzSXRlcmFibGUoYm9keSkgfHwgaXNCbG9iTGlrZShib2R5KSkge1xuICAgICAgdGhpcy5ib2R5ID0gYm9keVxuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50RXJyb3IoJ2JvZHkgbXVzdCBiZSBhIHN0cmluZywgYSBCdWZmZXIsIGEgUmVhZGFibGUgc3RyZWFtLCBhbiBpdGVyYWJsZSwgb3IgYW4gYXN5bmMgaXRlcmFibGUnKVxuICAgIH1cblxuICAgIHRoaXMuY29tcGxldGVkID0gZmFsc2VcblxuICAgIHRoaXMuYWJvcnRlZCA9IGZhbHNlXG5cbiAgICB0aGlzLnVwZ3JhZGUgPSB1cGdyYWRlIHx8IG51bGxcblxuICAgIHRoaXMucGF0aCA9IHF1ZXJ5ID8gYnVpbGRVUkwocGF0aCwgcXVlcnkpIDogcGF0aFxuXG4gICAgdGhpcy5vcmlnaW4gPSBvcmlnaW5cblxuICAgIHRoaXMuaWRlbXBvdGVudCA9IGlkZW1wb3RlbnQgPT0gbnVsbFxuICAgICAgPyBtZXRob2QgPT09ICdIRUFEJyB8fCBtZXRob2QgPT09ICdHRVQnXG4gICAgICA6IGlkZW1wb3RlbnRcblxuICAgIHRoaXMuYmxvY2tpbmcgPSBibG9ja2luZyA9PSBudWxsID8gZmFsc2UgOiBibG9ja2luZ1xuXG4gICAgdGhpcy5yZXNldCA9IHJlc2V0ID09IG51bGwgPyBudWxsIDogcmVzZXRcblxuICAgIHRoaXMuaG9zdCA9IG51bGxcblxuICAgIHRoaXMuY29udGVudExlbmd0aCA9IG51bGxcblxuICAgIHRoaXMuY29udGVudFR5cGUgPSBudWxsXG5cbiAgICB0aGlzLmhlYWRlcnMgPSBbXVxuXG4gICAgLy8gT25seSBmb3IgSDJcbiAgICB0aGlzLmV4cGVjdENvbnRpbnVlID0gZXhwZWN0Q29udGludWUgIT0gbnVsbCA/IGV4cGVjdENvbnRpbnVlIDogZmFsc2VcblxuICAgIGlmIChBcnJheS5pc0FycmF5KGhlYWRlcnMpKSB7XG4gICAgICBpZiAoaGVhZGVycy5sZW5ndGggJSAyICE9PSAwKSB7XG4gICAgICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRFcnJvcignaGVhZGVycyBhcnJheSBtdXN0IGJlIGV2ZW4nKVxuICAgICAgfVxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBoZWFkZXJzLmxlbmd0aDsgaSArPSAyKSB7XG4gICAgICAgIHByb2Nlc3NIZWFkZXIodGhpcywgaGVhZGVyc1tpXSwgaGVhZGVyc1tpICsgMV0pXG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChoZWFkZXJzICYmIHR5cGVvZiBoZWFkZXJzID09PSAnb2JqZWN0Jykge1xuICAgICAgaWYgKGhlYWRlcnNbU3ltYm9sLml0ZXJhdG9yXSkge1xuICAgICAgICBmb3IgKGNvbnN0IGhlYWRlciBvZiBoZWFkZXJzKSB7XG4gICAgICAgICAgaWYgKCFBcnJheS5pc0FycmF5KGhlYWRlcikgfHwgaGVhZGVyLmxlbmd0aCAhPT0gMikge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudEVycm9yKCdoZWFkZXJzIG11c3QgYmUgaW4ga2V5LXZhbHVlIHBhaXIgZm9ybWF0JylcbiAgICAgICAgICB9XG4gICAgICAgICAgcHJvY2Vzc0hlYWRlcih0aGlzLCBoZWFkZXJbMF0sIGhlYWRlclsxXSlcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKGhlYWRlcnMpXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwga2V5cy5sZW5ndGg7ICsraSkge1xuICAgICAgICAgIHByb2Nlc3NIZWFkZXIodGhpcywga2V5c1tpXSwgaGVhZGVyc1trZXlzW2ldXSlcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoaGVhZGVycyAhPSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50RXJyb3IoJ2hlYWRlcnMgbXVzdCBiZSBhbiBvYmplY3Qgb3IgYW4gYXJyYXknKVxuICAgIH1cblxuICAgIHZhbGlkYXRlSGFuZGxlcihoYW5kbGVyLCBtZXRob2QsIHVwZ3JhZGUpXG5cbiAgICB0aGlzLnNlcnZlcm5hbWUgPSBzZXJ2ZXJuYW1lIHx8IGdldFNlcnZlck5hbWUodGhpcy5ob3N0KVxuXG4gICAgdGhpc1trSGFuZGxlcl0gPSBoYW5kbGVyXG5cbiAgICBpZiAoY2hhbm5lbHMuY3JlYXRlLmhhc1N1YnNjcmliZXJzKSB7XG4gICAgICBjaGFubmVscy5jcmVhdGUucHVibGlzaCh7IHJlcXVlc3Q6IHRoaXMgfSlcbiAgICB9XG4gIH1cblxuICBvbkJvZHlTZW50IChjaHVuaykge1xuICAgIGlmICh0aGlzW2tIYW5kbGVyXS5vbkJvZHlTZW50KSB7XG4gICAgICB0cnkge1xuICAgICAgICByZXR1cm4gdGhpc1trSGFuZGxlcl0ub25Cb2R5U2VudChjaHVuaylcbiAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICB0aGlzLmFib3J0KGVycilcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBvblJlcXVlc3RTZW50ICgpIHtcbiAgICBpZiAoY2hhbm5lbHMuYm9keVNlbnQuaGFzU3Vic2NyaWJlcnMpIHtcbiAgICAgIGNoYW5uZWxzLmJvZHlTZW50LnB1Ymxpc2goeyByZXF1ZXN0OiB0aGlzIH0pXG4gICAgfVxuXG4gICAgaWYgKHRoaXNba0hhbmRsZXJdLm9uUmVxdWVzdFNlbnQpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHJldHVybiB0aGlzW2tIYW5kbGVyXS5vblJlcXVlc3RTZW50KClcbiAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICB0aGlzLmFib3J0KGVycilcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBvbkNvbm5lY3QgKGFib3J0KSB7XG4gICAgYXNzZXJ0KCF0aGlzLmFib3J0ZWQpXG4gICAgYXNzZXJ0KCF0aGlzLmNvbXBsZXRlZClcblxuICAgIGlmICh0aGlzLmVycm9yKSB7XG4gICAgICBhYm9ydCh0aGlzLmVycm9yKVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmFib3J0ID0gYWJvcnRcbiAgICAgIHJldHVybiB0aGlzW2tIYW5kbGVyXS5vbkNvbm5lY3QoYWJvcnQpXG4gICAgfVxuICB9XG5cbiAgb25SZXNwb25zZVN0YXJ0ZWQgKCkge1xuICAgIHJldHVybiB0aGlzW2tIYW5kbGVyXS5vblJlc3BvbnNlU3RhcnRlZD8uKClcbiAgfVxuXG4gIG9uSGVhZGVycyAoc3RhdHVzQ29kZSwgaGVhZGVycywgcmVzdW1lLCBzdGF0dXNUZXh0KSB7XG4gICAgYXNzZXJ0KCF0aGlzLmFib3J0ZWQpXG4gICAgYXNzZXJ0KCF0aGlzLmNvbXBsZXRlZClcblxuICAgIGlmIChjaGFubmVscy5oZWFkZXJzLmhhc1N1YnNjcmliZXJzKSB7XG4gICAgICBjaGFubmVscy5oZWFkZXJzLnB1Ymxpc2goeyByZXF1ZXN0OiB0aGlzLCByZXNwb25zZTogeyBzdGF0dXNDb2RlLCBoZWFkZXJzLCBzdGF0dXNUZXh0IH0gfSlcbiAgICB9XG5cbiAgICB0cnkge1xuICAgICAgcmV0dXJuIHRoaXNba0hhbmRsZXJdLm9uSGVhZGVycyhzdGF0dXNDb2RlLCBoZWFkZXJzLCByZXN1bWUsIHN0YXR1c1RleHQpXG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICB0aGlzLmFib3J0KGVycilcbiAgICB9XG4gIH1cblxuICBvbkRhdGEgKGNodW5rKSB7XG4gICAgYXNzZXJ0KCF0aGlzLmFib3J0ZWQpXG4gICAgYXNzZXJ0KCF0aGlzLmNvbXBsZXRlZClcblxuICAgIHRyeSB7XG4gICAgICByZXR1cm4gdGhpc1trSGFuZGxlcl0ub25EYXRhKGNodW5rKVxuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgdGhpcy5hYm9ydChlcnIpXG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9XG4gIH1cblxuICBvblVwZ3JhZGUgKHN0YXR1c0NvZGUsIGhlYWRlcnMsIHNvY2tldCkge1xuICAgIGFzc2VydCghdGhpcy5hYm9ydGVkKVxuICAgIGFzc2VydCghdGhpcy5jb21wbGV0ZWQpXG5cbiAgICByZXR1cm4gdGhpc1trSGFuZGxlcl0ub25VcGdyYWRlKHN0YXR1c0NvZGUsIGhlYWRlcnMsIHNvY2tldClcbiAgfVxuXG4gIG9uQ29tcGxldGUgKHRyYWlsZXJzKSB7XG4gICAgdGhpcy5vbkZpbmFsbHkoKVxuXG4gICAgYXNzZXJ0KCF0aGlzLmFib3J0ZWQpXG5cbiAgICB0aGlzLmNvbXBsZXRlZCA9IHRydWVcbiAgICBpZiAoY2hhbm5lbHMudHJhaWxlcnMuaGFzU3Vic2NyaWJlcnMpIHtcbiAgICAgIGNoYW5uZWxzLnRyYWlsZXJzLnB1Ymxpc2goeyByZXF1ZXN0OiB0aGlzLCB0cmFpbGVycyB9KVxuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICByZXR1cm4gdGhpc1trSGFuZGxlcl0ub25Db21wbGV0ZSh0cmFpbGVycylcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIC8vIFRPRE8gKGZpeCk6IFRoaXMgbWlnaHQgYmUgYSBiYWQgaWRlYT9cbiAgICAgIHRoaXMub25FcnJvcihlcnIpXG4gICAgfVxuICB9XG5cbiAgb25FcnJvciAoZXJyb3IpIHtcbiAgICB0aGlzLm9uRmluYWxseSgpXG5cbiAgICBpZiAoY2hhbm5lbHMuZXJyb3IuaGFzU3Vic2NyaWJlcnMpIHtcbiAgICAgIGNoYW5uZWxzLmVycm9yLnB1Ymxpc2goeyByZXF1ZXN0OiB0aGlzLCBlcnJvciB9KVxuICAgIH1cblxuICAgIGlmICh0aGlzLmFib3J0ZWQpIHtcbiAgICAgIHJldHVyblxuICAgIH1cbiAgICB0aGlzLmFib3J0ZWQgPSB0cnVlXG5cbiAgICByZXR1cm4gdGhpc1trSGFuZGxlcl0ub25FcnJvcihlcnJvcilcbiAgfVxuXG4gIG9uRmluYWxseSAoKSB7XG4gICAgaWYgKHRoaXMuZXJyb3JIYW5kbGVyKSB7XG4gICAgICB0aGlzLmJvZHkub2ZmKCdlcnJvcicsIHRoaXMuZXJyb3JIYW5kbGVyKVxuICAgICAgdGhpcy5lcnJvckhhbmRsZXIgPSBudWxsXG4gICAgfVxuXG4gICAgaWYgKHRoaXMuZW5kSGFuZGxlcikge1xuICAgICAgdGhpcy5ib2R5Lm9mZignZW5kJywgdGhpcy5lbmRIYW5kbGVyKVxuICAgICAgdGhpcy5lbmRIYW5kbGVyID0gbnVsbFxuICAgIH1cbiAgfVxuXG4gIGFkZEhlYWRlciAoa2V5LCB2YWx1ZSkge1xuICAgIHByb2Nlc3NIZWFkZXIodGhpcywga2V5LCB2YWx1ZSlcbiAgICByZXR1cm4gdGhpc1xuICB9XG59XG5cbmZ1bmN0aW9uIHByb2Nlc3NIZWFkZXIgKHJlcXVlc3QsIGtleSwgdmFsKSB7XG4gIGlmICh2YWwgJiYgKHR5cGVvZiB2YWwgPT09ICdvYmplY3QnICYmICFBcnJheS5pc0FycmF5KHZhbCkpKSB7XG4gICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudEVycm9yKGBpbnZhbGlkICR7a2V5fSBoZWFkZXJgKVxuICB9IGVsc2UgaWYgKHZhbCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuXG4gIH1cblxuICBsZXQgaGVhZGVyTmFtZSA9IGhlYWRlck5hbWVMb3dlckNhc2VkUmVjb3JkW2tleV1cblxuICBpZiAoaGVhZGVyTmFtZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgaGVhZGVyTmFtZSA9IGtleS50b0xvd2VyQ2FzZSgpXG4gICAgaWYgKGhlYWRlck5hbWVMb3dlckNhc2VkUmVjb3JkW2hlYWRlck5hbWVdID09PSB1bmRlZmluZWQgJiYgIWlzVmFsaWRIVFRQVG9rZW4oaGVhZGVyTmFtZSkpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRFcnJvcignaW52YWxpZCBoZWFkZXIga2V5JylcbiAgICB9XG4gIH1cblxuICBpZiAoQXJyYXkuaXNBcnJheSh2YWwpKSB7XG4gICAgY29uc3QgYXJyID0gW11cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHZhbC5sZW5ndGg7IGkrKykge1xuICAgICAgaWYgKHR5cGVvZiB2YWxbaV0gPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIGlmICghaXNWYWxpZEhlYWRlclZhbHVlKHZhbFtpXSkpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50RXJyb3IoYGludmFsaWQgJHtrZXl9IGhlYWRlcmApXG4gICAgICAgIH1cbiAgICAgICAgYXJyLnB1c2godmFsW2ldKVxuICAgICAgfSBlbHNlIGlmICh2YWxbaV0gPT09IG51bGwpIHtcbiAgICAgICAgYXJyLnB1c2goJycpXG4gICAgICB9IGVsc2UgaWYgKHR5cGVvZiB2YWxbaV0gPT09ICdvYmplY3QnKSB7XG4gICAgICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRFcnJvcihgaW52YWxpZCAke2tleX0gaGVhZGVyYClcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGFyci5wdXNoKGAke3ZhbFtpXX1gKVxuICAgICAgfVxuICAgIH1cbiAgICB2YWwgPSBhcnJcbiAgfSBlbHNlIGlmICh0eXBlb2YgdmFsID09PSAnc3RyaW5nJykge1xuICAgIGlmICghaXNWYWxpZEhlYWRlclZhbHVlKHZhbCkpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRFcnJvcihgaW52YWxpZCAke2tleX0gaGVhZGVyYClcbiAgICB9XG4gIH0gZWxzZSBpZiAodmFsID09PSBudWxsKSB7XG4gICAgdmFsID0gJydcbiAgfSBlbHNlIHtcbiAgICB2YWwgPSBgJHt2YWx9YFxuICB9XG5cbiAgaWYgKHJlcXVlc3QuaG9zdCA9PT0gbnVsbCAmJiBoZWFkZXJOYW1lID09PSAnaG9zdCcpIHtcbiAgICBpZiAodHlwZW9mIHZhbCAhPT0gJ3N0cmluZycpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRFcnJvcignaW52YWxpZCBob3N0IGhlYWRlcicpXG4gICAgfVxuICAgIC8vIENvbnN1bWVkIGJ5IENsaWVudFxuICAgIHJlcXVlc3QuaG9zdCA9IHZhbFxuICB9IGVsc2UgaWYgKHJlcXVlc3QuY29udGVudExlbmd0aCA9PT0gbnVsbCAmJiBoZWFkZXJOYW1lID09PSAnY29udGVudC1sZW5ndGgnKSB7XG4gICAgcmVxdWVzdC5jb250ZW50TGVuZ3RoID0gcGFyc2VJbnQodmFsLCAxMClcbiAgICBpZiAoIU51bWJlci5pc0Zpbml0ZShyZXF1ZXN0LmNvbnRlbnRMZW5ndGgpKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50RXJyb3IoJ2ludmFsaWQgY29udGVudC1sZW5ndGggaGVhZGVyJylcbiAgICB9XG4gIH0gZWxzZSBpZiAocmVxdWVzdC5jb250ZW50VHlwZSA9PT0gbnVsbCAmJiBoZWFkZXJOYW1lID09PSAnY29udGVudC10eXBlJykge1xuICAgIHJlcXVlc3QuY29udGVudFR5cGUgPSB2YWxcbiAgICByZXF1ZXN0LmhlYWRlcnMucHVzaChrZXksIHZhbClcbiAgfSBlbHNlIGlmIChoZWFkZXJOYW1lID09PSAndHJhbnNmZXItZW5jb2RpbmcnIHx8IGhlYWRlck5hbWUgPT09ICdrZWVwLWFsaXZlJyB8fCBoZWFkZXJOYW1lID09PSAndXBncmFkZScpIHtcbiAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50RXJyb3IoYGludmFsaWQgJHtoZWFkZXJOYW1lfSBoZWFkZXJgKVxuICB9IGVsc2UgaWYgKGhlYWRlck5hbWUgPT09ICdjb25uZWN0aW9uJykge1xuICAgIGNvbnN0IHZhbHVlID0gdHlwZW9mIHZhbCA9PT0gJ3N0cmluZycgPyB2YWwudG9Mb3dlckNhc2UoKSA6IG51bGxcbiAgICBpZiAodmFsdWUgIT09ICdjbG9zZScgJiYgdmFsdWUgIT09ICdrZWVwLWFsaXZlJykge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudEVycm9yKCdpbnZhbGlkIGNvbm5lY3Rpb24gaGVhZGVyJylcbiAgICB9XG5cbiAgICBpZiAodmFsdWUgPT09ICdjbG9zZScpIHtcbiAgICAgIHJlcXVlc3QucmVzZXQgPSB0cnVlXG4gICAgfVxuICB9IGVsc2UgaWYgKGhlYWRlck5hbWUgPT09ICdleHBlY3QnKSB7XG4gICAgdGhyb3cgbmV3IE5vdFN1cHBvcnRlZEVycm9yKCdleHBlY3QgaGVhZGVyIG5vdCBzdXBwb3J0ZWQnKVxuICB9IGVsc2Uge1xuICAgIHJlcXVlc3QuaGVhZGVycy5wdXNoKGtleSwgdmFsKVxuICB9XG59XG5cbm1vZHVsZS5leHBvcnRzID0gUmVxdWVzdFxuIiwgIid1c2Ugc3RyaWN0J1xuY29uc3QgRXZlbnRFbWl0dGVyID0gcmVxdWlyZSgnbm9kZTpldmVudHMnKVxuXG5jbGFzcyBEaXNwYXRjaGVyIGV4dGVuZHMgRXZlbnRFbWl0dGVyIHtcbiAgZGlzcGF0Y2ggKCkge1xuICAgIHRocm93IG5ldyBFcnJvcignbm90IGltcGxlbWVudGVkJylcbiAgfVxuXG4gIGNsb3NlICgpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ25vdCBpbXBsZW1lbnRlZCcpXG4gIH1cblxuICBkZXN0cm95ICgpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ25vdCBpbXBsZW1lbnRlZCcpXG4gIH1cblxuICBjb21wb3NlICguLi5hcmdzKSB7XG4gICAgLy8gU28gd2UgaGFuZGxlIFtpbnRlcmNlcHRvcjEsIGludGVyY2VwdG9yMl0gb3IgaW50ZXJjZXB0b3IxLCBpbnRlcmNlcHRvcjIsIC4uLlxuICAgIGNvbnN0IGludGVyY2VwdG9ycyA9IEFycmF5LmlzQXJyYXkoYXJnc1swXSkgPyBhcmdzWzBdIDogYXJnc1xuICAgIGxldCBkaXNwYXRjaCA9IHRoaXMuZGlzcGF0Y2guYmluZCh0aGlzKVxuXG4gICAgZm9yIChjb25zdCBpbnRlcmNlcHRvciBvZiBpbnRlcmNlcHRvcnMpIHtcbiAgICAgIGlmIChpbnRlcmNlcHRvciA9PSBudWxsKSB7XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG5cbiAgICAgIGlmICh0eXBlb2YgaW50ZXJjZXB0b3IgIT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihgaW52YWxpZCBpbnRlcmNlcHRvciwgZXhwZWN0ZWQgZnVuY3Rpb24gcmVjZWl2ZWQgJHt0eXBlb2YgaW50ZXJjZXB0b3J9YClcbiAgICAgIH1cblxuICAgICAgZGlzcGF0Y2ggPSBpbnRlcmNlcHRvcihkaXNwYXRjaClcblxuICAgICAgaWYgKGRpc3BhdGNoID09IG51bGwgfHwgdHlwZW9mIGRpc3BhdGNoICE9PSAnZnVuY3Rpb24nIHx8IGRpc3BhdGNoLmxlbmd0aCAhPT0gMikge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdpbnZhbGlkIGludGVyY2VwdG9yJylcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IENvbXBvc2VkRGlzcGF0Y2hlcih0aGlzLCBkaXNwYXRjaClcbiAgfVxufVxuXG5jbGFzcyBDb21wb3NlZERpc3BhdGNoZXIgZXh0ZW5kcyBEaXNwYXRjaGVyIHtcbiAgI2Rpc3BhdGNoZXIgPSBudWxsXG4gICNkaXNwYXRjaCA9IG51bGxcblxuICBjb25zdHJ1Y3RvciAoZGlzcGF0Y2hlciwgZGlzcGF0Y2gpIHtcbiAgICBzdXBlcigpXG4gICAgdGhpcy4jZGlzcGF0Y2hlciA9IGRpc3BhdGNoZXJcbiAgICB0aGlzLiNkaXNwYXRjaCA9IGRpc3BhdGNoXG4gIH1cblxuICBkaXNwYXRjaCAoLi4uYXJncykge1xuICAgIHRoaXMuI2Rpc3BhdGNoKC4uLmFyZ3MpXG4gIH1cblxuICBjbG9zZSAoLi4uYXJncykge1xuICAgIHJldHVybiB0aGlzLiNkaXNwYXRjaGVyLmNsb3NlKC4uLmFyZ3MpXG4gIH1cblxuICBkZXN0cm95ICguLi5hcmdzKSB7XG4gICAgcmV0dXJuIHRoaXMuI2Rpc3BhdGNoZXIuZGVzdHJveSguLi5hcmdzKVxuICB9XG59XG5cbm1vZHVsZS5leHBvcnRzID0gRGlzcGF0Y2hlclxuIiwgIid1c2Ugc3RyaWN0J1xuXG5jb25zdCBEaXNwYXRjaGVyID0gcmVxdWlyZSgnLi9kaXNwYXRjaGVyJylcbmNvbnN0IHtcbiAgQ2xpZW50RGVzdHJveWVkRXJyb3IsXG4gIENsaWVudENsb3NlZEVycm9yLFxuICBJbnZhbGlkQXJndW1lbnRFcnJvclxufSA9IHJlcXVpcmUoJy4uL2NvcmUvZXJyb3JzJylcbmNvbnN0IHsga0Rlc3Ryb3ksIGtDbG9zZSwga0Nsb3NlZCwga0Rlc3Ryb3llZCwga0Rpc3BhdGNoLCBrSW50ZXJjZXB0b3JzIH0gPSByZXF1aXJlKCcuLi9jb3JlL3N5bWJvbHMnKVxuXG5jb25zdCBrT25EZXN0cm95ZWQgPSBTeW1ib2woJ29uRGVzdHJveWVkJylcbmNvbnN0IGtPbkNsb3NlZCA9IFN5bWJvbCgnb25DbG9zZWQnKVxuY29uc3Qga0ludGVyY2VwdGVkRGlzcGF0Y2ggPSBTeW1ib2woJ0ludGVyY2VwdGVkIERpc3BhdGNoJylcblxuY2xhc3MgRGlzcGF0Y2hlckJhc2UgZXh0ZW5kcyBEaXNwYXRjaGVyIHtcbiAgY29uc3RydWN0b3IgKCkge1xuICAgIHN1cGVyKClcblxuICAgIHRoaXNba0Rlc3Ryb3llZF0gPSBmYWxzZVxuICAgIHRoaXNba09uRGVzdHJveWVkXSA9IG51bGxcbiAgICB0aGlzW2tDbG9zZWRdID0gZmFsc2VcbiAgICB0aGlzW2tPbkNsb3NlZF0gPSBbXVxuICB9XG5cbiAgZ2V0IGRlc3Ryb3llZCAoKSB7XG4gICAgcmV0dXJuIHRoaXNba0Rlc3Ryb3llZF1cbiAgfVxuXG4gIGdldCBjbG9zZWQgKCkge1xuICAgIHJldHVybiB0aGlzW2tDbG9zZWRdXG4gIH1cblxuICBnZXQgaW50ZXJjZXB0b3JzICgpIHtcbiAgICByZXR1cm4gdGhpc1trSW50ZXJjZXB0b3JzXVxuICB9XG5cbiAgc2V0IGludGVyY2VwdG9ycyAobmV3SW50ZXJjZXB0b3JzKSB7XG4gICAgaWYgKG5ld0ludGVyY2VwdG9ycykge1xuICAgICAgZm9yIChsZXQgaSA9IG5ld0ludGVyY2VwdG9ycy5sZW5ndGggLSAxOyBpID49IDA7IGktLSkge1xuICAgICAgICBjb25zdCBpbnRlcmNlcHRvciA9IHRoaXNba0ludGVyY2VwdG9yc11baV1cbiAgICAgICAgaWYgKHR5cGVvZiBpbnRlcmNlcHRvciAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRFcnJvcignaW50ZXJjZXB0b3IgbXVzdCBiZSBhbiBmdW5jdGlvbicpXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzW2tJbnRlcmNlcHRvcnNdID0gbmV3SW50ZXJjZXB0b3JzXG4gIH1cblxuICBjbG9zZSAoY2FsbGJhY2spIHtcbiAgICBpZiAoY2FsbGJhY2sgPT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgdGhpcy5jbG9zZSgoZXJyLCBkYXRhKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIGVyciA/IHJlamVjdChlcnIpIDogcmVzb2x2ZShkYXRhKVxuICAgICAgICB9KVxuICAgICAgfSlcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIGNhbGxiYWNrICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50RXJyb3IoJ2ludmFsaWQgY2FsbGJhY2snKVxuICAgIH1cblxuICAgIGlmICh0aGlzW2tEZXN0cm95ZWRdKSB7XG4gICAgICBxdWV1ZU1pY3JvdGFzaygoKSA9PiBjYWxsYmFjayhuZXcgQ2xpZW50RGVzdHJveWVkRXJyb3IoKSwgbnVsbCkpXG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBpZiAodGhpc1trQ2xvc2VkXSkge1xuICAgICAgaWYgKHRoaXNba09uQ2xvc2VkXSkge1xuICAgICAgICB0aGlzW2tPbkNsb3NlZF0ucHVzaChjYWxsYmFjaylcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHF1ZXVlTWljcm90YXNrKCgpID0+IGNhbGxiYWNrKG51bGwsIG51bGwpKVxuICAgICAgfVxuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgdGhpc1trQ2xvc2VkXSA9IHRydWVcbiAgICB0aGlzW2tPbkNsb3NlZF0ucHVzaChjYWxsYmFjaylcblxuICAgIGNvbnN0IG9uQ2xvc2VkID0gKCkgPT4ge1xuICAgICAgY29uc3QgY2FsbGJhY2tzID0gdGhpc1trT25DbG9zZWRdXG4gICAgICB0aGlzW2tPbkNsb3NlZF0gPSBudWxsXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNhbGxiYWNrcy5sZW5ndGg7IGkrKykge1xuICAgICAgICBjYWxsYmFja3NbaV0obnVsbCwgbnVsbClcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBTaG91bGQgbm90IGVycm9yLlxuICAgIHRoaXNba0Nsb3NlXSgpXG4gICAgICAudGhlbigoKSA9PiB0aGlzLmRlc3Ryb3koKSlcbiAgICAgIC50aGVuKCgpID0+IHtcbiAgICAgICAgcXVldWVNaWNyb3Rhc2sob25DbG9zZWQpXG4gICAgICB9KVxuICB9XG5cbiAgZGVzdHJveSAoZXJyLCBjYWxsYmFjaykge1xuICAgIGlmICh0eXBlb2YgZXJyID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBjYWxsYmFjayA9IGVyclxuICAgICAgZXJyID0gbnVsbFxuICAgIH1cblxuICAgIGlmIChjYWxsYmFjayA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICB0aGlzLmRlc3Ryb3koZXJyLCAoZXJyLCBkYXRhKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIGVyciA/IC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0OiBzaG91bGQgbmV2ZXIgZXJyb3IgKi8gcmVqZWN0KGVycikgOiByZXNvbHZlKGRhdGEpXG4gICAgICAgIH0pXG4gICAgICB9KVxuICAgIH1cblxuICAgIGlmICh0eXBlb2YgY2FsbGJhY2sgIT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRFcnJvcignaW52YWxpZCBjYWxsYmFjaycpXG4gICAgfVxuXG4gICAgaWYgKHRoaXNba0Rlc3Ryb3llZF0pIHtcbiAgICAgIGlmICh0aGlzW2tPbkRlc3Ryb3llZF0pIHtcbiAgICAgICAgdGhpc1trT25EZXN0cm95ZWRdLnB1c2goY2FsbGJhY2spXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBxdWV1ZU1pY3JvdGFzaygoKSA9PiBjYWxsYmFjayhudWxsLCBudWxsKSlcbiAgICAgIH1cbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGlmICghZXJyKSB7XG4gICAgICBlcnIgPSBuZXcgQ2xpZW50RGVzdHJveWVkRXJyb3IoKVxuICAgIH1cblxuICAgIHRoaXNba0Rlc3Ryb3llZF0gPSB0cnVlXG4gICAgdGhpc1trT25EZXN0cm95ZWRdID0gdGhpc1trT25EZXN0cm95ZWRdIHx8IFtdXG4gICAgdGhpc1trT25EZXN0cm95ZWRdLnB1c2goY2FsbGJhY2spXG5cbiAgICBjb25zdCBvbkRlc3Ryb3llZCA9ICgpID0+IHtcbiAgICAgIGNvbnN0IGNhbGxiYWNrcyA9IHRoaXNba09uRGVzdHJveWVkXVxuICAgICAgdGhpc1trT25EZXN0cm95ZWRdID0gbnVsbFxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjYWxsYmFja3MubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgY2FsbGJhY2tzW2ldKG51bGwsIG51bGwpXG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gU2hvdWxkIG5vdCBlcnJvci5cbiAgICB0aGlzW2tEZXN0cm95XShlcnIpLnRoZW4oKCkgPT4ge1xuICAgICAgcXVldWVNaWNyb3Rhc2sob25EZXN0cm95ZWQpXG4gICAgfSlcbiAgfVxuXG4gIFtrSW50ZXJjZXB0ZWREaXNwYXRjaF0gKG9wdHMsIGhhbmRsZXIpIHtcbiAgICBpZiAoIXRoaXNba0ludGVyY2VwdG9yc10gfHwgdGhpc1trSW50ZXJjZXB0b3JzXS5sZW5ndGggPT09IDApIHtcbiAgICAgIHRoaXNba0ludGVyY2VwdGVkRGlzcGF0Y2hdID0gdGhpc1trRGlzcGF0Y2hdXG4gICAgICByZXR1cm4gdGhpc1trRGlzcGF0Y2hdKG9wdHMsIGhhbmRsZXIpXG4gICAgfVxuXG4gICAgbGV0IGRpc3BhdGNoID0gdGhpc1trRGlzcGF0Y2hdLmJpbmQodGhpcylcbiAgICBmb3IgKGxldCBpID0gdGhpc1trSW50ZXJjZXB0b3JzXS5sZW5ndGggLSAxOyBpID49IDA7IGktLSkge1xuICAgICAgZGlzcGF0Y2ggPSB0aGlzW2tJbnRlcmNlcHRvcnNdW2ldKGRpc3BhdGNoKVxuICAgIH1cbiAgICB0aGlzW2tJbnRlcmNlcHRlZERpc3BhdGNoXSA9IGRpc3BhdGNoXG4gICAgcmV0dXJuIGRpc3BhdGNoKG9wdHMsIGhhbmRsZXIpXG4gIH1cblxuICBkaXNwYXRjaCAob3B0cywgaGFuZGxlcikge1xuICAgIGlmICghaGFuZGxlciB8fCB0eXBlb2YgaGFuZGxlciAhPT0gJ29iamVjdCcpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRFcnJvcignaGFuZGxlciBtdXN0IGJlIGFuIG9iamVjdCcpXG4gICAgfVxuXG4gICAgdHJ5IHtcbiAgICAgIGlmICghb3B0cyB8fCB0eXBlb2Ygb3B0cyAhPT0gJ29iamVjdCcpIHtcbiAgICAgICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudEVycm9yKCdvcHRzIG11c3QgYmUgYW4gb2JqZWN0LicpXG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzW2tEZXN0cm95ZWRdIHx8IHRoaXNba09uRGVzdHJveWVkXSkge1xuICAgICAgICB0aHJvdyBuZXcgQ2xpZW50RGVzdHJveWVkRXJyb3IoKVxuICAgICAgfVxuXG4gICAgICBpZiAodGhpc1trQ2xvc2VkXSkge1xuICAgICAgICB0aHJvdyBuZXcgQ2xpZW50Q2xvc2VkRXJyb3IoKVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gdGhpc1trSW50ZXJjZXB0ZWREaXNwYXRjaF0ob3B0cywgaGFuZGxlcilcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGlmICh0eXBlb2YgaGFuZGxlci5vbkVycm9yICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRFcnJvcignaW52YWxpZCBvbkVycm9yIG1ldGhvZCcpXG4gICAgICB9XG5cbiAgICAgIGhhbmRsZXIub25FcnJvcihlcnIpXG5cbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH1cbiAgfVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IERpc3BhdGNoZXJCYXNlXG4iLCAiJ3VzZSBzdHJpY3QnXG5cbi8qKlxuICogVGhpcyBtb2R1bGUgb2ZmZXJzIGFuIG9wdGltaXplZCB0aW1lciBpbXBsZW1lbnRhdGlvbiBkZXNpZ25lZCBmb3Igc2NlbmFyaW9zXG4gKiB3aGVyZSBoaWdoIHByZWNpc2lvbiBpcyBub3QgY3JpdGljYWwuXG4gKlxuICogVGhlIHRpbWVyIGFjaGlldmVzIGZhc3RlciBwZXJmb3JtYW5jZSBieSB1c2luZyBhIGxvdy1yZXNvbHV0aW9uIGFwcHJvYWNoLFxuICogd2l0aCBhbiBhY2N1cmFjeSB0YXJnZXQgb2Ygd2l0aGluIDUwMG1zLiBUaGlzIG1ha2VzIGl0IHBhcnRpY3VsYXJseSB1c2VmdWxcbiAqIGZvciB0aW1lcnMgd2l0aCBkZWxheXMgb2YgMSBzZWNvbmQgb3IgbW9yZSwgd2hlcmUgZXhhY3QgdGltaW5nIGlzIGxlc3NcbiAqIGNydWNpYWwuXG4gKlxuICogSXQncyBpbXBvcnRhbnQgdG8gbm90ZSB0aGF0IE5vZGUuanMgdGltZXJzIGFyZSBpbmhlcmVudGx5IGltcHJlY2lzZSwgYXNcbiAqIGRlbGF5cyBjYW4gb2NjdXIgZHVlIHRvIHRoZSBldmVudCBsb29wIGJlaW5nIGJsb2NrZWQgYnkgb3RoZXIgb3BlcmF0aW9ucy5cbiAqIENvbnNlcXVlbnRseSwgdGltZXJzIG1heSB0cmlnZ2VyIGxhdGVyIHRoYW4gdGhlaXIgc2NoZWR1bGVkIHRpbWUuXG4gKi9cblxuLyoqXG4gKiBUaGUgZmFzdE5vdyB2YXJpYWJsZSBjb250YWlucyB0aGUgaW50ZXJuYWwgZmFzdCB0aW1lciBjbG9jayB2YWx1ZS5cbiAqXG4gKiBAdHlwZSB7bnVtYmVyfVxuICovXG5sZXQgZmFzdE5vdyA9IDBcblxuLyoqXG4gKiBSRVNPTFVUSU9OX01TIHJlcHJlc2VudHMgdGhlIHRhcmdldCByZXNvbHV0aW9uIHRpbWUgaW4gbWlsbGlzZWNvbmRzLlxuICpcbiAqIEB0eXBlIHtudW1iZXJ9XG4gKiBAZGVmYXVsdCAxMDAwXG4gKi9cbmNvbnN0IFJFU09MVVRJT05fTVMgPSAxZTNcblxuLyoqXG4gKiBUSUNLX01TIGRlZmluZXMgdGhlIGRlc2lyZWQgaW50ZXJ2YWwgaW4gbWlsbGlzZWNvbmRzIGJldHdlZW4gZWFjaCB0aWNrLlxuICogVGhlIHRhcmdldCB2YWx1ZSBpcyBzZXQgdG8gaGFsZiB0aGUgcmVzb2x1dGlvbiB0aW1lLCBtaW51cyAxIG1zLCB0byBhY2NvdW50XG4gKiBmb3IgcG90ZW50aWFsIGV2ZW50IGxvb3Agb3ZlcmhlYWQuXG4gKlxuICogQHR5cGUge251bWJlcn1cbiAqIEBkZWZhdWx0IDQ5OVxuICovXG5jb25zdCBUSUNLX01TID0gKFJFU09MVVRJT05fTVMgPj4gMSkgLSAxXG5cbi8qKlxuICogZmFzdE5vd1RpbWVvdXQgaXMgYSBOb2RlLmpzIHRpbWVyIHVzZWQgdG8gbWFuYWdlIGFuZCBwcm9jZXNzXG4gKiB0aGUgRmFzdFRpbWVycyBzdG9yZWQgaW4gdGhlIGBmYXN0VGltZXJzYCBhcnJheS5cbiAqXG4gKiBAdHlwZSB7Tm9kZUpTLlRpbWVvdXR9XG4gKi9cbmxldCBmYXN0Tm93VGltZW91dFxuXG4vKipcbiAqIFRoZSBrRmFzdFRpbWVyIHN5bWJvbCBpcyB1c2VkIHRvIGlkZW50aWZ5IEZhc3RUaW1lciBpbnN0YW5jZXMuXG4gKlxuICogQHR5cGUge1N5bWJvbH1cbiAqL1xuY29uc3Qga0Zhc3RUaW1lciA9IFN5bWJvbCgna0Zhc3RUaW1lcicpXG5cbi8qKlxuICogVGhlIGZhc3RUaW1lcnMgYXJyYXkgY29udGFpbnMgYWxsIGFjdGl2ZSBGYXN0VGltZXJzLlxuICpcbiAqIEB0eXBlIHtGYXN0VGltZXJbXX1cbiAqL1xuY29uc3QgZmFzdFRpbWVycyA9IFtdXG5cbi8qKlxuICogVGhlc2UgY29uc3RhbnRzIHJlcHJlc2VudCB0aGUgdmFyaW91cyBzdGF0ZXMgb2YgYSBGYXN0VGltZXIuXG4gKi9cblxuLyoqXG4gKiBUaGUgYE5PVF9JTl9MSVNUYCBjb25zdGFudCBpbmRpY2F0ZXMgdGhhdCB0aGUgRmFzdFRpbWVyIGlzIG5vdCBpbmNsdWRlZFxuICogaW4gdGhlIGBmYXN0VGltZXJzYCBhcnJheS4gVGltZXJzIHdpdGggdGhpcyBzdGF0dXMgd2lsbCBub3QgYmUgcHJvY2Vzc2VkXG4gKiBkdXJpbmcgdGhlIG5leHQgdGljayBieSB0aGUgYG9uVGlja2AgZnVuY3Rpb24uXG4gKlxuICogQSBGYXN0VGltZXIgY2FuIGJlIHJlLWFkZGVkIHRvIHRoZSBgZmFzdFRpbWVyc2AgYXJyYXkgYnkgaW52b2tpbmcgdGhlXG4gKiBgcmVmcmVzaGAgbWV0aG9kIG9uIHRoZSBGYXN0VGltZXIgaW5zdGFuY2UuXG4gKlxuICogQHR5cGUgey0yfVxuICovXG5jb25zdCBOT1RfSU5fTElTVCA9IC0yXG5cbi8qKlxuICogVGhlIGBUT19CRV9DTEVBUkVEYCBjb25zdGFudCBpbmRpY2F0ZXMgdGhhdCB0aGUgRmFzdFRpbWVyIGlzIHNjaGVkdWxlZFxuICogZm9yIHJlbW92YWwgZnJvbSB0aGUgYGZhc3RUaW1lcnNgIGFycmF5LiBBIEZhc3RUaW1lciBpbiB0aGlzIHN0YXRlIHdpbGxcbiAqIGJlIHJlbW92ZWQgaW4gdGhlIG5leHQgdGljayBieSB0aGUgYG9uVGlja2AgZnVuY3Rpb24gYW5kIHdpbGwgbm8gbG9uZ2VyXG4gKiBiZSBwcm9jZXNzZWQuXG4gKlxuICogVGhpcyBzdGF0dXMgaXMgYWxzbyBzZXQgd2hlbiB0aGUgYGNsZWFyYCBtZXRob2QgaXMgY2FsbGVkIG9uIHRoZSBGYXN0VGltZXIgaW5zdGFuY2UuXG4gKlxuICogQHR5cGUgey0xfVxuICovXG5jb25zdCBUT19CRV9DTEVBUkVEID0gLTFcblxuLyoqXG4gKiBUaGUgYFBFTkRJTkdgIGNvbnN0YW50IHNpZ25pZmllcyB0aGF0IHRoZSBGYXN0VGltZXIgaXMgYXdhaXRpbmcgcHJvY2Vzc2luZ1xuICogaW4gdGhlIG5leHQgdGljayBieSB0aGUgYG9uVGlja2AgZnVuY3Rpb24uIFRpbWVycyB3aXRoIHRoaXMgc3RhdHVzIHdpbGwgaGF2ZVxuICogdGhlaXIgYF9pZGxlU3RhcnRgIHZhbHVlIHNldCBhbmQgdGhlaXIgc3RhdHVzIHVwZGF0ZWQgdG8gYEFDVElWRWAgaW4gdGhlIG5leHQgdGljay5cbiAqXG4gKiBAdHlwZSB7MH1cbiAqL1xuY29uc3QgUEVORElORyA9IDBcblxuLyoqXG4gKiBUaGUgYEFDVElWRWAgY29uc3RhbnQgaW5kaWNhdGVzIHRoYXQgdGhlIEZhc3RUaW1lciBpcyBhY3RpdmUgYW5kIHdhaXRpbmdcbiAqIGZvciBpdHMgdGltZXIgdG8gZXhwaXJlLiBEdXJpbmcgdGhlIG5leHQgdGljaywgdGhlIGBvblRpY2tgIGZ1bmN0aW9uIHdpbGxcbiAqIGNoZWNrIGlmIHRoZSB0aW1lciBoYXMgZXhwaXJlZCwgYW5kIGlmIHNvLCBpdCB3aWxsIGV4ZWN1dGUgdGhlIGFzc29jaWF0ZWQgY2FsbGJhY2suXG4gKlxuICogQHR5cGUgezF9XG4gKi9cbmNvbnN0IEFDVElWRSA9IDFcblxuLyoqXG4gKiBUaGUgb25UaWNrIGZ1bmN0aW9uIHByb2Nlc3NlcyB0aGUgZmFzdFRpbWVycyBhcnJheS5cbiAqXG4gKiBAcmV0dXJucyB7dm9pZH1cbiAqL1xuZnVuY3Rpb24gb25UaWNrICgpIHtcbiAgLyoqXG4gICAqIEluY3JlbWVudCB0aGUgZmFzdE5vdyB2YWx1ZSBieSB0aGUgVElDS19NUyB2YWx1ZSwgZGVzcGl0ZSB0aGUgYWN0dWFsIHRpbWVcbiAgICogdGhhdCBoYXMgcGFzc2VkIHNpbmNlIHRoZSBsYXN0IHRpY2suIFRoaXMgYXBwcm9hY2ggZW5zdXJlcyBpbmRlcGVuZGVuY2VcbiAgICogZnJvbSB0aGUgc3lzdGVtIGNsb2NrIGFuZCBkZWxheXMgY2F1c2VkIGJ5IGEgYmxvY2tlZCBldmVudCBsb29wLlxuICAgKlxuICAgKiBAdHlwZSB7bnVtYmVyfVxuICAgKi9cbiAgZmFzdE5vdyArPSBUSUNLX01TXG5cbiAgLyoqXG4gICAqIFRoZSBgaWR4YCB2YXJpYWJsZSBpcyB1c2VkIHRvIGl0ZXJhdGUgb3ZlciB0aGUgYGZhc3RUaW1lcnNgIGFycmF5LlxuICAgKiBFeHBpcmVkIHRpbWVycyBhcmUgcmVtb3ZlZCBieSByZXBsYWNpbmcgdGhlbSB3aXRoIHRoZSBsYXN0IGVsZW1lbnQgaW4gdGhlIGFycmF5LlxuICAgKiBDb25zZXF1ZW50bHksIGBpZHhgIGlzIG9ubHkgaW5jcmVtZW50ZWQgd2hlbiB0aGUgY3VycmVudCBlbGVtZW50IGlzIG5vdCByZW1vdmVkLlxuICAgKlxuICAgKiBAdHlwZSB7bnVtYmVyfVxuICAgKi9cbiAgbGV0IGlkeCA9IDBcblxuICAvKipcbiAgICogVGhlIGxlbiB2YXJpYWJsZSB3aWxsIGNvbnRhaW4gdGhlIGxlbmd0aCBvZiB0aGUgZmFzdFRpbWVycyBhcnJheVxuICAgKiBhbmQgd2lsbCBiZSBkZWNyZW1lbnRlZCB3aGVuIGEgRmFzdFRpbWVyIHNob3VsZCBiZSByZW1vdmVkIGZyb20gdGhlXG4gICAqIGZhc3RUaW1lcnMgYXJyYXkuXG4gICAqXG4gICAqIEB0eXBlIHtudW1iZXJ9XG4gICAqL1xuICBsZXQgbGVuID0gZmFzdFRpbWVycy5sZW5ndGhcblxuICB3aGlsZSAoaWR4IDwgbGVuKSB7XG4gICAgLyoqXG4gICAgICogQHR5cGUge0Zhc3RUaW1lcn1cbiAgICAgKi9cbiAgICBjb25zdCB0aW1lciA9IGZhc3RUaW1lcnNbaWR4XVxuXG4gICAgLy8gSWYgdGhlIHRpbWVyIGlzIGluIHRoZSBBQ1RJVkUgc3RhdGUgYW5kIHRoZSB0aW1lciBoYXMgZXhwaXJlZCwgaXQgd2lsbFxuICAgIC8vIGJlIHByb2Nlc3NlZCBpbiB0aGUgbmV4dCB0aWNrLlxuICAgIGlmICh0aW1lci5fc3RhdGUgPT09IFBFTkRJTkcpIHtcbiAgICAgIC8vIFNldCB0aGUgX2lkbGVTdGFydCB2YWx1ZSB0byB0aGUgZmFzdE5vdyB2YWx1ZSBtaW51cyB0aGUgVElDS19NUyB2YWx1ZVxuICAgICAgLy8gdG8gYWNjb3VudCBmb3IgdGhlIHRpbWUgdGhlIHRpbWVyIHdhcyBpbiB0aGUgUEVORElORyBzdGF0ZS5cbiAgICAgIHRpbWVyLl9pZGxlU3RhcnQgPSBmYXN0Tm93IC0gVElDS19NU1xuICAgICAgdGltZXIuX3N0YXRlID0gQUNUSVZFXG4gICAgfSBlbHNlIGlmIChcbiAgICAgIHRpbWVyLl9zdGF0ZSA9PT0gQUNUSVZFICYmXG4gICAgICBmYXN0Tm93ID49IHRpbWVyLl9pZGxlU3RhcnQgKyB0aW1lci5faWRsZVRpbWVvdXRcbiAgICApIHtcbiAgICAgIHRpbWVyLl9zdGF0ZSA9IFRPX0JFX0NMRUFSRURcbiAgICAgIHRpbWVyLl9pZGxlU3RhcnQgPSAtMVxuICAgICAgdGltZXIuX29uVGltZW91dCh0aW1lci5fdGltZXJBcmcpXG4gICAgfVxuXG4gICAgaWYgKHRpbWVyLl9zdGF0ZSA9PT0gVE9fQkVfQ0xFQVJFRCkge1xuICAgICAgdGltZXIuX3N0YXRlID0gTk9UX0lOX0xJU1RcblxuICAgICAgLy8gTW92ZSB0aGUgbGFzdCBlbGVtZW50IHRvIHRoZSBjdXJyZW50IGluZGV4IGFuZCBkZWNyZW1lbnQgbGVuIGlmIGl0IGlzXG4gICAgICAvLyBub3QgdGhlIG9ubHkgZWxlbWVudCBpbiB0aGUgYXJyYXkuXG4gICAgICBpZiAoLS1sZW4gIT09IDApIHtcbiAgICAgICAgZmFzdFRpbWVyc1tpZHhdID0gZmFzdFRpbWVyc1tsZW5dXG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgICsraWR4XG4gICAgfVxuICB9XG5cbiAgLy8gU2V0IHRoZSBsZW5ndGggb2YgdGhlIGZhc3RUaW1lcnMgYXJyYXkgdG8gdGhlIG5ldyBsZW5ndGggYW5kIHRodXNcbiAgLy8gcmVtb3ZpbmcgdGhlIGV4Y2VzcyBGYXN0VGltZXJzIGVsZW1lbnRzIGZyb20gdGhlIGFycmF5LlxuICBmYXN0VGltZXJzLmxlbmd0aCA9IGxlblxuXG4gIC8vIElmIHRoZXJlIGFyZSBzdGlsbCBhY3RpdmUgRmFzdFRpbWVycyBpbiB0aGUgYXJyYXksIHJlZnJlc2ggdGhlIFRpbWVyLlxuICAvLyBJZiB0aGVyZSBhcmUgbm8gYWN0aXZlIEZhc3RUaW1lcnMsIHRoZSB0aW1lciB3aWxsIGJlIHJlZnJlc2hlZCBhZ2FpblxuICAvLyB3aGVuIGEgbmV3IEZhc3RUaW1lciBpcyBpbnN0YW50aWF0ZWQuXG4gIGlmIChmYXN0VGltZXJzLmxlbmd0aCAhPT0gMCkge1xuICAgIHJlZnJlc2hUaW1lb3V0KClcbiAgfVxufVxuXG5mdW5jdGlvbiByZWZyZXNoVGltZW91dCAoKSB7XG4gIC8vIElmIHRoZSBmYXN0Tm93VGltZW91dCBpcyBhbHJlYWR5IHNldCwgcmVmcmVzaCBpdC5cbiAgaWYgKGZhc3ROb3dUaW1lb3V0KSB7XG4gICAgZmFzdE5vd1RpbWVvdXQucmVmcmVzaCgpXG4gIC8vIGZhc3ROb3dUaW1lb3V0IGlzIG5vdCBpbnN0YW50aWF0ZWQgeWV0LCBjcmVhdGUgYSBuZXcgVGltZXIuXG4gIH0gZWxzZSB7XG4gICAgY2xlYXJUaW1lb3V0KGZhc3ROb3dUaW1lb3V0KVxuICAgIGZhc3ROb3dUaW1lb3V0ID0gc2V0VGltZW91dChvblRpY2ssIFRJQ0tfTVMpXG5cbiAgICAvLyBJZiB0aGUgVGltZXIgaGFzIGFuIHVucmVmIG1ldGhvZCwgY2FsbCBpdCB0byBhbGxvdyB0aGUgcHJvY2VzcyB0byBleGl0IGlmXG4gICAgLy8gdGhlcmUgYXJlIG5vIG90aGVyIGFjdGl2ZSBoYW5kbGVzLlxuICAgIGlmIChmYXN0Tm93VGltZW91dC51bnJlZikge1xuICAgICAgZmFzdE5vd1RpbWVvdXQudW5yZWYoKVxuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIFRoZSBgRmFzdFRpbWVyYCBjbGFzcyBpcyBhIGRhdGEgc3RydWN0dXJlIGRlc2lnbmVkIHRvIHN0b3JlIGFuZCBtYW5hZ2VcbiAqIHRpbWVyIGluZm9ybWF0aW9uLlxuICovXG5jbGFzcyBGYXN0VGltZXIge1xuICBba0Zhc3RUaW1lcl0gPSB0cnVlXG5cbiAgLyoqXG4gICAqIFRoZSBzdGF0ZSBvZiB0aGUgdGltZXIsIHdoaWNoIGNhbiBiZSBvbmUgb2YgdGhlIGZvbGxvd2luZzpcbiAgICogLSBOT1RfSU5fTElTVCAoLTIpXG4gICAqIC0gVE9fQkVfQ0xFQVJFRCAoLTEpXG4gICAqIC0gUEVORElORyAoMClcbiAgICogLSBBQ1RJVkUgKDEpXG4gICAqXG4gICAqIEB0eXBlIHstMnwtMXwwfDF9XG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBfc3RhdGUgPSBOT1RfSU5fTElTVFxuXG4gIC8qKlxuICAgKiBUaGUgbnVtYmVyIG9mIG1pbGxpc2Vjb25kcyB0byB3YWl0IGJlZm9yZSBjYWxsaW5nIHRoZSBjYWxsYmFjay5cbiAgICpcbiAgICogQHR5cGUge251bWJlcn1cbiAgICogQHByaXZhdGVcbiAgICovXG4gIF9pZGxlVGltZW91dCA9IC0xXG5cbiAgLyoqXG4gICAqIFRoZSB0aW1lIGluIG1pbGxpc2Vjb25kcyB3aGVuIHRoZSB0aW1lciB3YXMgc3RhcnRlZC4gVGhpcyB2YWx1ZSBpcyB1c2VkIHRvXG4gICAqIGNhbGN1bGF0ZSB3aGVuIHRoZSB0aW1lciBzaG91bGQgZXhwaXJlLlxuICAgKlxuICAgKiBAdHlwZSB7bnVtYmVyfVxuICAgKiBAZGVmYXVsdCAtMVxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgX2lkbGVTdGFydCA9IC0xXG5cbiAgLyoqXG4gICAqIFRoZSBmdW5jdGlvbiB0byBiZSBleGVjdXRlZCB3aGVuIHRoZSB0aW1lciBleHBpcmVzLlxuICAgKiBAdHlwZSB7RnVuY3Rpb259XG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBfb25UaW1lb3V0XG5cbiAgLyoqXG4gICAqIFRoZSBhcmd1bWVudCB0byBiZSBwYXNzZWQgdG8gdGhlIGNhbGxiYWNrIHdoZW4gdGhlIHRpbWVyIGV4cGlyZXMuXG4gICAqXG4gICAqIEB0eXBlIHsqfVxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgX3RpbWVyQXJnXG5cbiAgLyoqXG4gICAqIEBjb25zdHJ1Y3RvclxuICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBjYWxsYmFjayBBIGZ1bmN0aW9uIHRvIGJlIGV4ZWN1dGVkIGFmdGVyIHRoZSB0aW1lclxuICAgKiBleHBpcmVzLlxuICAgKiBAcGFyYW0ge251bWJlcn0gZGVsYXkgVGhlIHRpbWUsIGluIG1pbGxpc2Vjb25kcyB0aGF0IHRoZSB0aW1lciBzaG91bGQgd2FpdFxuICAgKiBiZWZvcmUgdGhlIHNwZWNpZmllZCBmdW5jdGlvbiBvciBjb2RlIGlzIGV4ZWN1dGVkLlxuICAgKiBAcGFyYW0geyp9IGFyZ1xuICAgKi9cbiAgY29uc3RydWN0b3IgKGNhbGxiYWNrLCBkZWxheSwgYXJnKSB7XG4gICAgdGhpcy5fb25UaW1lb3V0ID0gY2FsbGJhY2tcbiAgICB0aGlzLl9pZGxlVGltZW91dCA9IGRlbGF5XG4gICAgdGhpcy5fdGltZXJBcmcgPSBhcmdcblxuICAgIHRoaXMucmVmcmVzaCgpXG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgdGltZXIncyBzdGFydCB0aW1lIHRvIHRoZSBjdXJyZW50IHRpbWUsIGFuZCByZXNjaGVkdWxlcyB0aGUgdGltZXJcbiAgICogdG8gY2FsbCBpdHMgY2FsbGJhY2sgYXQgdGhlIHByZXZpb3VzbHkgc3BlY2lmaWVkIGR1cmF0aW9uIGFkanVzdGVkIHRvIHRoZVxuICAgKiBjdXJyZW50IHRpbWUuXG4gICAqIFVzaW5nIHRoaXMgb24gYSB0aW1lciB0aGF0IGhhcyBhbHJlYWR5IGNhbGxlZCBpdHMgY2FsbGJhY2sgd2lsbCByZWFjdGl2YXRlXG4gICAqIHRoZSB0aW1lci5cbiAgICpcbiAgICogQHJldHVybnMge3ZvaWR9XG4gICAqL1xuICByZWZyZXNoICgpIHtcbiAgICAvLyBJbiB0aGUgc3BlY2lhbCBjYXNlIHRoYXQgdGhlIHRpbWVyIGlzIG5vdCBpbiB0aGUgbGlzdCBvZiBhY3RpdmUgdGltZXJzLFxuICAgIC8vIGFkZCBpdCBiYWNrIHRvIHRoZSBhcnJheSB0byBiZSBwcm9jZXNzZWQgaW4gdGhlIG5leHQgdGljayBieSB0aGUgb25UaWNrXG4gICAgLy8gZnVuY3Rpb24uXG4gICAgaWYgKHRoaXMuX3N0YXRlID09PSBOT1RfSU5fTElTVCkge1xuICAgICAgZmFzdFRpbWVycy5wdXNoKHRoaXMpXG4gICAgfVxuXG4gICAgLy8gSWYgdGhlIHRpbWVyIGlzIHRoZSBvbmx5IGFjdGl2ZSB0aW1lciwgcmVmcmVzaCB0aGUgZmFzdE5vd1RpbWVvdXQgZm9yXG4gICAgLy8gYmV0dGVyIHJlc29sdXRpb24uXG4gICAgaWYgKCFmYXN0Tm93VGltZW91dCB8fCBmYXN0VGltZXJzLmxlbmd0aCA9PT0gMSkge1xuICAgICAgcmVmcmVzaFRpbWVvdXQoKVxuICAgIH1cblxuICAgIC8vIFNldHRpbmcgdGhlIHN0YXRlIHRvIFBFTkRJTkcgd2lsbCBjYXVzZSB0aGUgdGltZXIgdG8gYmUgcmVzZXQgaW4gdGhlXG4gICAgLy8gbmV4dCB0aWNrIGJ5IHRoZSBvblRpY2sgZnVuY3Rpb24uXG4gICAgdGhpcy5fc3RhdGUgPSBQRU5ESU5HXG4gIH1cblxuICAvKipcbiAgICogVGhlIGBjbGVhcmAgbWV0aG9kIGNhbmNlbHMgdGhlIHRpbWVyLCBwcmV2ZW50aW5nIGl0IGZyb20gZXhlY3V0aW5nLlxuICAgKlxuICAgKiBAcmV0dXJucyB7dm9pZH1cbiAgICogQHByaXZhdGVcbiAgICovXG4gIGNsZWFyICgpIHtcbiAgICAvLyBTZXQgdGhlIHN0YXRlIHRvIFRPX0JFX0NMRUFSRUQgdG8gbWFyayB0aGUgdGltZXIgZm9yIHJlbW92YWwgaW4gdGhlIG5leHRcbiAgICAvLyB0aWNrIGJ5IHRoZSBvblRpY2sgZnVuY3Rpb24uXG4gICAgdGhpcy5fc3RhdGUgPSBUT19CRV9DTEVBUkVEXG5cbiAgICAvLyBSZXNldCB0aGUgX2lkbGVTdGFydCB2YWx1ZSB0byAtMSB0byBpbmRpY2F0ZSB0aGF0IHRoZSB0aW1lciBpcyBubyBsb25nZXJcbiAgICAvLyBhY3RpdmUuXG4gICAgdGhpcy5faWRsZVN0YXJ0ID0gLTFcbiAgfVxufVxuXG4vKipcbiAqIFRoaXMgbW9kdWxlIGV4cG9ydHMgYSBzZXRUaW1lb3V0IGFuZCBjbGVhclRpbWVvdXQgZnVuY3Rpb24gdGhhdCBjYW4gYmVcbiAqIHVzZWQgYXMgYSBkcm9wLWluIHJlcGxhY2VtZW50IGZvciB0aGUgbmF0aXZlIGZ1bmN0aW9ucy5cbiAqL1xubW9kdWxlLmV4cG9ydHMgPSB7XG4gIC8qKlxuICAgKiBUaGUgc2V0VGltZW91dCgpIG1ldGhvZCBzZXRzIGEgdGltZXIgd2hpY2ggZXhlY3V0ZXMgYSBmdW5jdGlvbiBvbmNlIHRoZVxuICAgKiB0aW1lciBleHBpcmVzLlxuICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBjYWxsYmFjayBBIGZ1bmN0aW9uIHRvIGJlIGV4ZWN1dGVkIGFmdGVyIHRoZSB0aW1lclxuICAgKiBleHBpcmVzLlxuICAgKiBAcGFyYW0ge251bWJlcn0gZGVsYXkgVGhlIHRpbWUsIGluIG1pbGxpc2Vjb25kcyB0aGF0IHRoZSB0aW1lciBzaG91bGRcbiAgICogd2FpdCBiZWZvcmUgdGhlIHNwZWNpZmllZCBmdW5jdGlvbiBvciBjb2RlIGlzIGV4ZWN1dGVkLlxuICAgKiBAcGFyYW0geyp9IFthcmddIEFuIG9wdGlvbmFsIGFyZ3VtZW50IHRvIGJlIHBhc3NlZCB0byB0aGUgY2FsbGJhY2sgZnVuY3Rpb25cbiAgICogd2hlbiB0aGUgdGltZXIgZXhwaXJlcy5cbiAgICogQHJldHVybnMge05vZGVKUy5UaW1lb3V0fEZhc3RUaW1lcn1cbiAgICovXG4gIHNldFRpbWVvdXQgKGNhbGxiYWNrLCBkZWxheSwgYXJnKSB7XG4gICAgLy8gSWYgdGhlIGRlbGF5IGlzIGxlc3MgdGhhbiBvciBlcXVhbCB0byB0aGUgUkVTT0xVVElPTl9NUyB2YWx1ZSByZXR1cm4gYVxuICAgIC8vIG5hdGl2ZSBOb2RlLmpzIFRpbWVyIGluc3RhbmNlLlxuICAgIHJldHVybiBkZWxheSA8PSBSRVNPTFVUSU9OX01TXG4gICAgICA/IHNldFRpbWVvdXQoY2FsbGJhY2ssIGRlbGF5LCBhcmcpXG4gICAgICA6IG5ldyBGYXN0VGltZXIoY2FsbGJhY2ssIGRlbGF5LCBhcmcpXG4gIH0sXG4gIC8qKlxuICAgKiBUaGUgY2xlYXJUaW1lb3V0IG1ldGhvZCBjYW5jZWxzIGFuIGluc3RhbnRpYXRlZCBUaW1lciBwcmV2aW91c2x5IGNyZWF0ZWRcbiAgICogYnkgY2FsbGluZyBzZXRUaW1lb3V0LlxuICAgKlxuICAgKiBAcGFyYW0ge05vZGVKUy5UaW1lb3V0fEZhc3RUaW1lcn0gdGltZW91dFxuICAgKi9cbiAgY2xlYXJUaW1lb3V0ICh0aW1lb3V0KSB7XG4gICAgLy8gSWYgdGhlIHRpbWVvdXQgaXMgYSBGYXN0VGltZXIsIGNhbGwgaXRzIG93biBjbGVhciBtZXRob2QuXG4gICAgaWYgKHRpbWVvdXRba0Zhc3RUaW1lcl0pIHtcbiAgICAgIC8qKlxuICAgICAgICogQHR5cGUge0Zhc3RUaW1lcn1cbiAgICAgICAqL1xuICAgICAgdGltZW91dC5jbGVhcigpXG4gICAgICAvLyBPdGhlcndpc2UgaXQgaXMgYW4gaW5zdGFuY2Ugb2YgYSBuYXRpdmUgTm9kZUpTLlRpbWVvdXQsIHNvIGNhbGwgdGhlXG4gICAgICAvLyBOb2RlLmpzIG5hdGl2ZSBjbGVhclRpbWVvdXQgZnVuY3Rpb24uXG4gICAgfSBlbHNlIHtcbiAgICAgIGNsZWFyVGltZW91dCh0aW1lb3V0KVxuICAgIH1cbiAgfSxcbiAgLyoqXG4gICAqIFRoZSBzZXRGYXN0VGltZW91dCgpIG1ldGhvZCBzZXRzIGEgZmFzdFRpbWVyIHdoaWNoIGV4ZWN1dGVzIGEgZnVuY3Rpb24gb25jZVxuICAgKiB0aGUgdGltZXIgZXhwaXJlcy5cbiAgICogQHBhcmFtIHtGdW5jdGlvbn0gY2FsbGJhY2sgQSBmdW5jdGlvbiB0byBiZSBleGVjdXRlZCBhZnRlciB0aGUgdGltZXJcbiAgICogZXhwaXJlcy5cbiAgICogQHBhcmFtIHtudW1iZXJ9IGRlbGF5IFRoZSB0aW1lLCBpbiBtaWxsaXNlY29uZHMgdGhhdCB0aGUgdGltZXIgc2hvdWxkXG4gICAqIHdhaXQgYmVmb3JlIHRoZSBzcGVjaWZpZWQgZnVuY3Rpb24gb3IgY29kZSBpcyBleGVjdXRlZC5cbiAgICogQHBhcmFtIHsqfSBbYXJnXSBBbiBvcHRpb25hbCBhcmd1bWVudCB0byBiZSBwYXNzZWQgdG8gdGhlIGNhbGxiYWNrIGZ1bmN0aW9uXG4gICAqIHdoZW4gdGhlIHRpbWVyIGV4cGlyZXMuXG4gICAqIEByZXR1cm5zIHtGYXN0VGltZXJ9XG4gICAqL1xuICBzZXRGYXN0VGltZW91dCAoY2FsbGJhY2ssIGRlbGF5LCBhcmcpIHtcbiAgICByZXR1cm4gbmV3IEZhc3RUaW1lcihjYWxsYmFjaywgZGVsYXksIGFyZylcbiAgfSxcbiAgLyoqXG4gICAqIFRoZSBjbGVhclRpbWVvdXQgbWV0aG9kIGNhbmNlbHMgYW4gaW5zdGFudGlhdGVkIEZhc3RUaW1lciBwcmV2aW91c2x5XG4gICAqIGNyZWF0ZWQgYnkgY2FsbGluZyBzZXRGYXN0VGltZW91dC5cbiAgICpcbiAgICogQHBhcmFtIHtGYXN0VGltZXJ9IHRpbWVvdXRcbiAgICovXG4gIGNsZWFyRmFzdFRpbWVvdXQgKHRpbWVvdXQpIHtcbiAgICB0aW1lb3V0LmNsZWFyKClcbiAgfSxcbiAgLyoqXG4gICAqIFRoZSBub3cgbWV0aG9kIHJldHVybnMgdGhlIHZhbHVlIG9mIHRoZSBpbnRlcm5hbCBmYXN0IHRpbWVyIGNsb2NrLlxuICAgKlxuICAgKiBAcmV0dXJucyB7bnVtYmVyfVxuICAgKi9cbiAgbm93ICgpIHtcbiAgICByZXR1cm4gZmFzdE5vd1xuICB9LFxuICAvKipcbiAgICogVHJpZ2dlciB0aGUgb25UaWNrIGZ1bmN0aW9uIHRvIHByb2Nlc3MgdGhlIGZhc3RUaW1lcnMgYXJyYXkuXG4gICAqIEV4cG9ydGVkIGZvciB0ZXN0aW5nIHB1cnBvc2VzIG9ubHkuXG4gICAqIE1hcmtpbmcgYXMgZGVwcmVjYXRlZCB0byBkaXNjb3VyYWdlIGFueSB1c2Ugb3V0c2lkZSBvZiB0ZXN0aW5nLlxuICAgKiBAZGVwcmVjYXRlZFxuICAgKiBAcGFyYW0ge251bWJlcn0gW2RlbGF5PTBdIFRoZSBkZWxheSBpbiBtaWxsaXNlY29uZHMgdG8gYWRkIHRvIHRoZSBub3cgdmFsdWUuXG4gICAqL1xuICB0aWNrIChkZWxheSA9IDApIHtcbiAgICBmYXN0Tm93ICs9IGRlbGF5IC0gUkVTT0xVVElPTl9NUyArIDFcbiAgICBvblRpY2soKVxuICAgIG9uVGljaygpXG4gIH0sXG4gIC8qKlxuICAgKiBSZXNldCBGYXN0VGltZXJzLlxuICAgKiBFeHBvcnRlZCBmb3IgdGVzdGluZyBwdXJwb3NlcyBvbmx5LlxuICAgKiBNYXJraW5nIGFzIGRlcHJlY2F0ZWQgdG8gZGlzY291cmFnZSBhbnkgdXNlIG91dHNpZGUgb2YgdGVzdGluZy5cbiAgICogQGRlcHJlY2F0ZWRcbiAgICovXG4gIHJlc2V0ICgpIHtcbiAgICBmYXN0Tm93ID0gMFxuICAgIGZhc3RUaW1lcnMubGVuZ3RoID0gMFxuICAgIGNsZWFyVGltZW91dChmYXN0Tm93VGltZW91dClcbiAgICBmYXN0Tm93VGltZW91dCA9IG51bGxcbiAgfSxcbiAgLyoqXG4gICAqIEV4cG9ydGluZyBmb3IgdGVzdGluZyBwdXJwb3NlcyBvbmx5LlxuICAgKiBNYXJraW5nIGFzIGRlcHJlY2F0ZWQgdG8gZGlzY291cmFnZSBhbnkgdXNlIG91dHNpZGUgb2YgdGVzdGluZy5cbiAgICogQGRlcHJlY2F0ZWRcbiAgICovXG4gIGtGYXN0VGltZXJcbn1cbiIsICIndXNlIHN0cmljdCdcblxuY29uc3QgbmV0ID0gcmVxdWlyZSgnbm9kZTpuZXQnKVxuY29uc3QgYXNzZXJ0ID0gcmVxdWlyZSgnbm9kZTphc3NlcnQnKVxuY29uc3QgdXRpbCA9IHJlcXVpcmUoJy4vdXRpbCcpXG5jb25zdCB7IEludmFsaWRBcmd1bWVudEVycm9yLCBDb25uZWN0VGltZW91dEVycm9yIH0gPSByZXF1aXJlKCcuL2Vycm9ycycpXG5jb25zdCB0aW1lcnMgPSByZXF1aXJlKCcuLi91dGlsL3RpbWVycycpXG5cbmZ1bmN0aW9uIG5vb3AgKCkge31cblxubGV0IHRscyAvLyBpbmNsdWRlIHRscyBjb25kaXRpb25hbGx5IHNpbmNlIGl0IGlzIG5vdCBhbHdheXMgYXZhaWxhYmxlXG5cbi8vIFRPRE86IHNlc3Npb24gcmUtdXNlIGRvZXMgbm90IHdhaXQgZm9yIHRoZSBmaXJzdFxuLy8gY29ubmVjdGlvbiB0byByZXNvbHZlIHRoZSBzZXNzaW9uIGFuZCBtaWdodCB0aGVyZWZvcmVcbi8vIHJlc29sdmUgdGhlIHNhbWUgc2VydmVybmFtZSBtdWx0aXBsZSB0aW1lcyBldmVuIHdoZW5cbi8vIHJlLXVzZSBpcyBlbmFibGVkLlxuXG5sZXQgU2Vzc2lvbkNhY2hlXG4vLyBGSVhNRTogcmVtb3ZlIHdvcmthcm91bmQgd2hlbiB0aGUgTm9kZSBidWcgaXMgZml4ZWRcbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9ub2RlanMvbm9kZS9pc3N1ZXMvNDkzNDQjaXNzdWVjb21tZW50LTE3NDE3NzYzMDhcbmlmIChnbG9iYWwuRmluYWxpemF0aW9uUmVnaXN0cnkgJiYgIShwcm9jZXNzLmVudi5OT0RFX1Y4X0NPVkVSQUdFIHx8IHByb2Nlc3MuZW52LlVORElDSV9OT19GRykpIHtcbiAgU2Vzc2lvbkNhY2hlID0gY2xhc3MgV2Vha1Nlc3Npb25DYWNoZSB7XG4gICAgY29uc3RydWN0b3IgKG1heENhY2hlZFNlc3Npb25zKSB7XG4gICAgICB0aGlzLl9tYXhDYWNoZWRTZXNzaW9ucyA9IG1heENhY2hlZFNlc3Npb25zXG4gICAgICB0aGlzLl9zZXNzaW9uQ2FjaGUgPSBuZXcgTWFwKClcbiAgICAgIHRoaXMuX3Nlc3Npb25SZWdpc3RyeSA9IG5ldyBnbG9iYWwuRmluYWxpemF0aW9uUmVnaXN0cnkoKGtleSkgPT4ge1xuICAgICAgICBpZiAodGhpcy5fc2Vzc2lvbkNhY2hlLnNpemUgPCB0aGlzLl9tYXhDYWNoZWRTZXNzaW9ucykge1xuICAgICAgICAgIHJldHVyblxuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcmVmID0gdGhpcy5fc2Vzc2lvbkNhY2hlLmdldChrZXkpXG4gICAgICAgIGlmIChyZWYgIT09IHVuZGVmaW5lZCAmJiByZWYuZGVyZWYoKSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgdGhpcy5fc2Vzc2lvbkNhY2hlLmRlbGV0ZShrZXkpXG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgfVxuXG4gICAgZ2V0IChzZXNzaW9uS2V5KSB7XG4gICAgICBjb25zdCByZWYgPSB0aGlzLl9zZXNzaW9uQ2FjaGUuZ2V0KHNlc3Npb25LZXkpXG4gICAgICByZXR1cm4gcmVmID8gcmVmLmRlcmVmKCkgOiBudWxsXG4gICAgfVxuXG4gICAgc2V0IChzZXNzaW9uS2V5LCBzZXNzaW9uKSB7XG4gICAgICBpZiAodGhpcy5fbWF4Q2FjaGVkU2Vzc2lvbnMgPT09IDApIHtcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIHRoaXMuX3Nlc3Npb25DYWNoZS5zZXQoc2Vzc2lvbktleSwgbmV3IFdlYWtSZWYoc2Vzc2lvbikpXG4gICAgICB0aGlzLl9zZXNzaW9uUmVnaXN0cnkucmVnaXN0ZXIoc2Vzc2lvbiwgc2Vzc2lvbktleSlcbiAgICB9XG4gIH1cbn0gZWxzZSB7XG4gIFNlc3Npb25DYWNoZSA9IGNsYXNzIFNpbXBsZVNlc3Npb25DYWNoZSB7XG4gICAgY29uc3RydWN0b3IgKG1heENhY2hlZFNlc3Npb25zKSB7XG4gICAgICB0aGlzLl9tYXhDYWNoZWRTZXNzaW9ucyA9IG1heENhY2hlZFNlc3Npb25zXG4gICAgICB0aGlzLl9zZXNzaW9uQ2FjaGUgPSBuZXcgTWFwKClcbiAgICB9XG5cbiAgICBnZXQgKHNlc3Npb25LZXkpIHtcbiAgICAgIHJldHVybiB0aGlzLl9zZXNzaW9uQ2FjaGUuZ2V0KHNlc3Npb25LZXkpXG4gICAgfVxuXG4gICAgc2V0IChzZXNzaW9uS2V5LCBzZXNzaW9uKSB7XG4gICAgICBpZiAodGhpcy5fbWF4Q2FjaGVkU2Vzc2lvbnMgPT09IDApIHtcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLl9zZXNzaW9uQ2FjaGUuc2l6ZSA+PSB0aGlzLl9tYXhDYWNoZWRTZXNzaW9ucykge1xuICAgICAgICAvLyByZW1vdmUgdGhlIG9sZGVzdCBzZXNzaW9uXG4gICAgICAgIGNvbnN0IHsgdmFsdWU6IG9sZGVzdEtleSB9ID0gdGhpcy5fc2Vzc2lvbkNhY2hlLmtleXMoKS5uZXh0KClcbiAgICAgICAgdGhpcy5fc2Vzc2lvbkNhY2hlLmRlbGV0ZShvbGRlc3RLZXkpXG4gICAgICB9XG5cbiAgICAgIHRoaXMuX3Nlc3Npb25DYWNoZS5zZXQoc2Vzc2lvbktleSwgc2Vzc2lvbilcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gYnVpbGRDb25uZWN0b3IgKHsgYWxsb3dIMiwgbWF4Q2FjaGVkU2Vzc2lvbnMsIHNvY2tldFBhdGgsIHRpbWVvdXQsIHNlc3Npb246IGN1c3RvbVNlc3Npb24sIC4uLm9wdHMgfSkge1xuICBpZiAobWF4Q2FjaGVkU2Vzc2lvbnMgIT0gbnVsbCAmJiAoIU51bWJlci5pc0ludGVnZXIobWF4Q2FjaGVkU2Vzc2lvbnMpIHx8IG1heENhY2hlZFNlc3Npb25zIDwgMCkpIHtcbiAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50RXJyb3IoJ21heENhY2hlZFNlc3Npb25zIG11c3QgYmUgYSBwb3NpdGl2ZSBpbnRlZ2VyIG9yIHplcm8nKVxuICB9XG5cbiAgY29uc3Qgb3B0aW9ucyA9IHsgcGF0aDogc29ja2V0UGF0aCwgLi4ub3B0cyB9XG4gIGNvbnN0IHNlc3Npb25DYWNoZSA9IG5ldyBTZXNzaW9uQ2FjaGUobWF4Q2FjaGVkU2Vzc2lvbnMgPT0gbnVsbCA/IDEwMCA6IG1heENhY2hlZFNlc3Npb25zKVxuICB0aW1lb3V0ID0gdGltZW91dCA9PSBudWxsID8gMTBlMyA6IHRpbWVvdXRcbiAgYWxsb3dIMiA9IGFsbG93SDIgIT0gbnVsbCA/IGFsbG93SDIgOiBmYWxzZVxuICByZXR1cm4gZnVuY3Rpb24gY29ubmVjdCAoeyBob3N0bmFtZSwgaG9zdCwgcHJvdG9jb2wsIHBvcnQsIHNlcnZlcm5hbWUsIGxvY2FsQWRkcmVzcywgaHR0cFNvY2tldCB9LCBjYWxsYmFjaykge1xuICAgIGxldCBzb2NrZXRcbiAgICBpZiAocHJvdG9jb2wgPT09ICdodHRwczonKSB7XG4gICAgICBpZiAoIXRscykge1xuICAgICAgICB0bHMgPSByZXF1aXJlKCdub2RlOnRscycpXG4gICAgICB9XG4gICAgICBzZXJ2ZXJuYW1lID0gc2VydmVybmFtZSB8fCBvcHRpb25zLnNlcnZlcm5hbWUgfHwgdXRpbC5nZXRTZXJ2ZXJOYW1lKGhvc3QpIHx8IG51bGxcblxuICAgICAgY29uc3Qgc2Vzc2lvbktleSA9IHNlcnZlcm5hbWUgfHwgaG9zdG5hbWVcbiAgICAgIGFzc2VydChzZXNzaW9uS2V5KVxuXG4gICAgICBjb25zdCBzZXNzaW9uID0gY3VzdG9tU2Vzc2lvbiB8fCBzZXNzaW9uQ2FjaGUuZ2V0KHNlc3Npb25LZXkpIHx8IG51bGxcblxuICAgICAgcG9ydCA9IHBvcnQgfHwgNDQzXG5cbiAgICAgIHNvY2tldCA9IHRscy5jb25uZWN0KHtcbiAgICAgICAgaGlnaFdhdGVyTWFyazogMTYzODQsIC8vIFRMUyBpbiBub2RlIGNhbid0IGhhdmUgYmlnZ2VyIEhXTSBhbnl3YXkuLi5cbiAgICAgICAgLi4ub3B0aW9ucyxcbiAgICAgICAgc2VydmVybmFtZSxcbiAgICAgICAgc2Vzc2lvbixcbiAgICAgICAgbG9jYWxBZGRyZXNzLFxuICAgICAgICAvLyBUT0RPKEhUVFAvMik6IEFkZCBzdXBwb3J0IGZvciBoMmNcbiAgICAgICAgQUxQTlByb3RvY29sczogYWxsb3dIMiA/IFsnaHR0cC8xLjEnLCAnaDInXSA6IFsnaHR0cC8xLjEnXSxcbiAgICAgICAgc29ja2V0OiBodHRwU29ja2V0LCAvLyB1cGdyYWRlIHNvY2tldCBjb25uZWN0aW9uXG4gICAgICAgIHBvcnQsXG4gICAgICAgIGhvc3Q6IGhvc3RuYW1lXG4gICAgICB9KVxuXG4gICAgICBzb2NrZXRcbiAgICAgICAgLm9uKCdzZXNzaW9uJywgZnVuY3Rpb24gKHNlc3Npb24pIHtcbiAgICAgICAgICAvLyBUT0RPIChmaXgpOiBDYW4gYSBzZXNzaW9uIGJlY29tZSBpbnZhbGlkIG9uY2UgZXN0YWJsaXNoZWQ/IERvbid0IHRoaW5rIHNvP1xuICAgICAgICAgIHNlc3Npb25DYWNoZS5zZXQoc2Vzc2lvbktleSwgc2Vzc2lvbilcbiAgICAgICAgfSlcbiAgICB9IGVsc2Uge1xuICAgICAgYXNzZXJ0KCFodHRwU29ja2V0LCAnaHR0cFNvY2tldCBjYW4gb25seSBiZSBzZW50IG9uIFRMUyB1cGRhdGUnKVxuXG4gICAgICBwb3J0ID0gcG9ydCB8fCA4MFxuXG4gICAgICBzb2NrZXQgPSBuZXQuY29ubmVjdCh7XG4gICAgICAgIGhpZ2hXYXRlck1hcms6IDY0ICogMTAyNCwgLy8gU2FtZSBhcyBub2RlanMgZnMgc3RyZWFtcy5cbiAgICAgICAgLi4ub3B0aW9ucyxcbiAgICAgICAgbG9jYWxBZGRyZXNzLFxuICAgICAgICBwb3J0LFxuICAgICAgICBob3N0OiBob3N0bmFtZVxuICAgICAgfSlcbiAgICB9XG5cbiAgICAvLyBTZXQgVENQIGtlZXAgYWxpdmUgb3B0aW9ucyBvbiB0aGUgc29ja2V0IGhlcmUgaW5zdGVhZCBvZiBpbiBjb25uZWN0KCkgZm9yIHRoZSBjYXNlIG9mIGFzc2lnbmluZyB0aGUgc29ja2V0XG4gICAgaWYgKG9wdGlvbnMua2VlcEFsaXZlID09IG51bGwgfHwgb3B0aW9ucy5rZWVwQWxpdmUpIHtcbiAgICAgIGNvbnN0IGtlZXBBbGl2ZUluaXRpYWxEZWxheSA9IG9wdGlvbnMua2VlcEFsaXZlSW5pdGlhbERlbGF5ID09PSB1bmRlZmluZWQgPyA2MGUzIDogb3B0aW9ucy5rZWVwQWxpdmVJbml0aWFsRGVsYXlcbiAgICAgIHNvY2tldC5zZXRLZWVwQWxpdmUodHJ1ZSwga2VlcEFsaXZlSW5pdGlhbERlbGF5KVxuICAgIH1cblxuICAgIGNvbnN0IGNsZWFyQ29ubmVjdFRpbWVvdXQgPSBzZXR1cENvbm5lY3RUaW1lb3V0KG5ldyBXZWFrUmVmKHNvY2tldCksIHsgdGltZW91dCwgaG9zdG5hbWUsIHBvcnQgfSlcblxuICAgIHNvY2tldFxuICAgICAgLnNldE5vRGVsYXkodHJ1ZSlcbiAgICAgIC5vbmNlKHByb3RvY29sID09PSAnaHR0cHM6JyA/ICdzZWN1cmVDb25uZWN0JyA6ICdjb25uZWN0JywgZnVuY3Rpb24gKCkge1xuICAgICAgICBxdWV1ZU1pY3JvdGFzayhjbGVhckNvbm5lY3RUaW1lb3V0KVxuXG4gICAgICAgIGlmIChjYWxsYmFjaykge1xuICAgICAgICAgIGNvbnN0IGNiID0gY2FsbGJhY2tcbiAgICAgICAgICBjYWxsYmFjayA9IG51bGxcbiAgICAgICAgICBjYihudWxsLCB0aGlzKVxuICAgICAgICB9XG4gICAgICB9KVxuICAgICAgLm9uKCdlcnJvcicsIGZ1bmN0aW9uIChlcnIpIHtcbiAgICAgICAgcXVldWVNaWNyb3Rhc2soY2xlYXJDb25uZWN0VGltZW91dClcblxuICAgICAgICBpZiAoY2FsbGJhY2spIHtcbiAgICAgICAgICBjb25zdCBjYiA9IGNhbGxiYWNrXG4gICAgICAgICAgY2FsbGJhY2sgPSBudWxsXG4gICAgICAgICAgY2IoZXJyKVxuICAgICAgICB9XG4gICAgICB9KVxuXG4gICAgcmV0dXJuIHNvY2tldFxuICB9XG59XG5cbi8qKlxuICogQHBhcmFtIHtXZWFrUmVmPG5ldC5Tb2NrZXQ+fSBzb2NrZXRXZWFrUmVmXG4gKiBAcGFyYW0ge29iamVjdH0gb3B0c1xuICogQHBhcmFtIHtudW1iZXJ9IG9wdHMudGltZW91dFxuICogQHBhcmFtIHtzdHJpbmd9IG9wdHMuaG9zdG5hbWVcbiAqIEBwYXJhbSB7bnVtYmVyfSBvcHRzLnBvcnRcbiAqIEByZXR1cm5zIHsoKSA9PiB2b2lkfVxuICovXG5jb25zdCBzZXR1cENvbm5lY3RUaW1lb3V0ID0gcHJvY2Vzcy5wbGF0Zm9ybSA9PT0gJ3dpbjMyJ1xuICA/IChzb2NrZXRXZWFrUmVmLCBvcHRzKSA9PiB7XG4gICAgICBpZiAoIW9wdHMudGltZW91dCkge1xuICAgICAgICByZXR1cm4gbm9vcFxuICAgICAgfVxuXG4gICAgICBsZXQgczEgPSBudWxsXG4gICAgICBsZXQgczIgPSBudWxsXG4gICAgICBjb25zdCBmYXN0VGltZXIgPSB0aW1lcnMuc2V0RmFzdFRpbWVvdXQoKCkgPT4ge1xuICAgICAgLy8gc2V0SW1tZWRpYXRlIGlzIGFkZGVkIHRvIG1ha2Ugc3VyZSB0aGF0IHdlIHByaW9yaXRpemUgc29ja2V0IGVycm9yIGV2ZW50cyBvdmVyIHRpbWVvdXRzXG4gICAgICAgIHMxID0gc2V0SW1tZWRpYXRlKCgpID0+IHtcbiAgICAgICAgLy8gV2luZG93cyBuZWVkcyBhbiBleHRyYSBzZXRJbW1lZGlhdGUgcHJvYmFibHkgZHVlIHRvIGltcGxlbWVudGF0aW9uIGRpZmZlcmVuY2VzIGluIHRoZSBzb2NrZXQgbG9naWNcbiAgICAgICAgICBzMiA9IHNldEltbWVkaWF0ZSgoKSA9PiBvbkNvbm5lY3RUaW1lb3V0KHNvY2tldFdlYWtSZWYuZGVyZWYoKSwgb3B0cykpXG4gICAgICAgIH0pXG4gICAgICB9LCBvcHRzLnRpbWVvdXQpXG4gICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICB0aW1lcnMuY2xlYXJGYXN0VGltZW91dChmYXN0VGltZXIpXG4gICAgICAgIGNsZWFySW1tZWRpYXRlKHMxKVxuICAgICAgICBjbGVhckltbWVkaWF0ZShzMilcbiAgICAgIH1cbiAgICB9XG4gIDogKHNvY2tldFdlYWtSZWYsIG9wdHMpID0+IHtcbiAgICAgIGlmICghb3B0cy50aW1lb3V0KSB7XG4gICAgICAgIHJldHVybiBub29wXG4gICAgICB9XG5cbiAgICAgIGxldCBzMSA9IG51bGxcbiAgICAgIGNvbnN0IGZhc3RUaW1lciA9IHRpbWVycy5zZXRGYXN0VGltZW91dCgoKSA9PiB7XG4gICAgICAvLyBzZXRJbW1lZGlhdGUgaXMgYWRkZWQgdG8gbWFrZSBzdXJlIHRoYXQgd2UgcHJpb3JpdGl6ZSBzb2NrZXQgZXJyb3IgZXZlbnRzIG92ZXIgdGltZW91dHNcbiAgICAgICAgczEgPSBzZXRJbW1lZGlhdGUoKCkgPT4ge1xuICAgICAgICAgIG9uQ29ubmVjdFRpbWVvdXQoc29ja2V0V2Vha1JlZi5kZXJlZigpLCBvcHRzKVxuICAgICAgICB9KVxuICAgICAgfSwgb3B0cy50aW1lb3V0KVxuICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgdGltZXJzLmNsZWFyRmFzdFRpbWVvdXQoZmFzdFRpbWVyKVxuICAgICAgICBjbGVhckltbWVkaWF0ZShzMSlcbiAgICAgIH1cbiAgICB9XG5cbi8qKlxuICogQHBhcmFtIHtuZXQuU29ja2V0fSBzb2NrZXRcbiAqIEBwYXJhbSB7b2JqZWN0fSBvcHRzXG4gKiBAcGFyYW0ge251bWJlcn0gb3B0cy50aW1lb3V0XG4gKiBAcGFyYW0ge3N0cmluZ30gb3B0cy5ob3N0bmFtZVxuICogQHBhcmFtIHtudW1iZXJ9IG9wdHMucG9ydFxuICovXG5mdW5jdGlvbiBvbkNvbm5lY3RUaW1lb3V0IChzb2NrZXQsIG9wdHMpIHtcbiAgLy8gVGhlIHNvY2tldCBjb3VsZCBiZSBhbHJlYWR5IGdhcmJhZ2UgY29sbGVjdGVkXG4gIGlmIChzb2NrZXQgPT0gbnVsbCkge1xuICAgIHJldHVyblxuICB9XG5cbiAgbGV0IG1lc3NhZ2UgPSAnQ29ubmVjdCBUaW1lb3V0IEVycm9yJ1xuICBpZiAoQXJyYXkuaXNBcnJheShzb2NrZXQuYXV0b1NlbGVjdEZhbWlseUF0dGVtcHRlZEFkZHJlc3NlcykpIHtcbiAgICBtZXNzYWdlICs9IGAgKGF0dGVtcHRlZCBhZGRyZXNzZXM6ICR7c29ja2V0LmF1dG9TZWxlY3RGYW1pbHlBdHRlbXB0ZWRBZGRyZXNzZXMuam9pbignLCAnKX0sYFxuICB9IGVsc2Uge1xuICAgIG1lc3NhZ2UgKz0gYCAoYXR0ZW1wdGVkIGFkZHJlc3M6ICR7b3B0cy5ob3N0bmFtZX06JHtvcHRzLnBvcnR9LGBcbiAgfVxuXG4gIG1lc3NhZ2UgKz0gYCB0aW1lb3V0OiAke29wdHMudGltZW91dH1tcylgXG5cbiAgdXRpbC5kZXN0cm95KHNvY2tldCwgbmV3IENvbm5lY3RUaW1lb3V0RXJyb3IobWVzc2FnZSkpXG59XG5cbm1vZHVsZS5leHBvcnRzID0gYnVpbGRDb25uZWN0b3JcbiIsICJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuZW51bVRvTWFwID0gdm9pZCAwO1xuZnVuY3Rpb24gZW51bVRvTWFwKG9iaikge1xuICAgIGNvbnN0IHJlcyA9IHt9O1xuICAgIE9iamVjdC5rZXlzKG9iaikuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gb2JqW2tleV07XG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInKSB7XG4gICAgICAgICAgICByZXNba2V5XSA9IHZhbHVlO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIHJlcztcbn1cbmV4cG9ydHMuZW51bVRvTWFwID0gZW51bVRvTWFwO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9dXRpbHMuanMubWFwIiwgIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5TUEVDSUFMX0hFQURFUlMgPSBleHBvcnRzLkhFQURFUl9TVEFURSA9IGV4cG9ydHMuTUlOT1IgPSBleHBvcnRzLk1BSk9SID0gZXhwb3J0cy5DT05ORUNUSU9OX1RPS0VOX0NIQVJTID0gZXhwb3J0cy5IRUFERVJfQ0hBUlMgPSBleHBvcnRzLlRPS0VOID0gZXhwb3J0cy5TVFJJQ1RfVE9LRU4gPSBleHBvcnRzLkhFWCA9IGV4cG9ydHMuVVJMX0NIQVIgPSBleHBvcnRzLlNUUklDVF9VUkxfQ0hBUiA9IGV4cG9ydHMuVVNFUklORk9fQ0hBUlMgPSBleHBvcnRzLk1BUksgPSBleHBvcnRzLkFMUEhBTlVNID0gZXhwb3J0cy5OVU0gPSBleHBvcnRzLkhFWF9NQVAgPSBleHBvcnRzLk5VTV9NQVAgPSBleHBvcnRzLkFMUEhBID0gZXhwb3J0cy5GSU5JU0ggPSBleHBvcnRzLkhfTUVUSE9EX01BUCA9IGV4cG9ydHMuTUVUSE9EX01BUCA9IGV4cG9ydHMuTUVUSE9EU19SVFNQID0gZXhwb3J0cy5NRVRIT0RTX0lDRSA9IGV4cG9ydHMuTUVUSE9EU19IVFRQID0gZXhwb3J0cy5NRVRIT0RTID0gZXhwb3J0cy5MRU5JRU5UX0ZMQUdTID0gZXhwb3J0cy5GTEFHUyA9IGV4cG9ydHMuVFlQRSA9IGV4cG9ydHMuRVJST1IgPSB2b2lkIDA7XG5jb25zdCB1dGlsc18xID0gcmVxdWlyZShcIi4vdXRpbHNcIik7XG4vLyBDIGhlYWRlcnNcbnZhciBFUlJPUjtcbihmdW5jdGlvbiAoRVJST1IpIHtcbiAgICBFUlJPUltFUlJPUltcIk9LXCJdID0gMF0gPSBcIk9LXCI7XG4gICAgRVJST1JbRVJST1JbXCJJTlRFUk5BTFwiXSA9IDFdID0gXCJJTlRFUk5BTFwiO1xuICAgIEVSUk9SW0VSUk9SW1wiU1RSSUNUXCJdID0gMl0gPSBcIlNUUklDVFwiO1xuICAgIEVSUk9SW0VSUk9SW1wiTEZfRVhQRUNURURcIl0gPSAzXSA9IFwiTEZfRVhQRUNURURcIjtcbiAgICBFUlJPUltFUlJPUltcIlVORVhQRUNURURfQ09OVEVOVF9MRU5HVEhcIl0gPSA0XSA9IFwiVU5FWFBFQ1RFRF9DT05URU5UX0xFTkdUSFwiO1xuICAgIEVSUk9SW0VSUk9SW1wiQ0xPU0VEX0NPTk5FQ1RJT05cIl0gPSA1XSA9IFwiQ0xPU0VEX0NPTk5FQ1RJT05cIjtcbiAgICBFUlJPUltFUlJPUltcIklOVkFMSURfTUVUSE9EXCJdID0gNl0gPSBcIklOVkFMSURfTUVUSE9EXCI7XG4gICAgRVJST1JbRVJST1JbXCJJTlZBTElEX1VSTFwiXSA9IDddID0gXCJJTlZBTElEX1VSTFwiO1xuICAgIEVSUk9SW0VSUk9SW1wiSU5WQUxJRF9DT05TVEFOVFwiXSA9IDhdID0gXCJJTlZBTElEX0NPTlNUQU5UXCI7XG4gICAgRVJST1JbRVJST1JbXCJJTlZBTElEX1ZFUlNJT05cIl0gPSA5XSA9IFwiSU5WQUxJRF9WRVJTSU9OXCI7XG4gICAgRVJST1JbRVJST1JbXCJJTlZBTElEX0hFQURFUl9UT0tFTlwiXSA9IDEwXSA9IFwiSU5WQUxJRF9IRUFERVJfVE9LRU5cIjtcbiAgICBFUlJPUltFUlJPUltcIklOVkFMSURfQ09OVEVOVF9MRU5HVEhcIl0gPSAxMV0gPSBcIklOVkFMSURfQ09OVEVOVF9MRU5HVEhcIjtcbiAgICBFUlJPUltFUlJPUltcIklOVkFMSURfQ0hVTktfU0laRVwiXSA9IDEyXSA9IFwiSU5WQUxJRF9DSFVOS19TSVpFXCI7XG4gICAgRVJST1JbRVJST1JbXCJJTlZBTElEX1NUQVRVU1wiXSA9IDEzXSA9IFwiSU5WQUxJRF9TVEFUVVNcIjtcbiAgICBFUlJPUltFUlJPUltcIklOVkFMSURfRU9GX1NUQVRFXCJdID0gMTRdID0gXCJJTlZBTElEX0VPRl9TVEFURVwiO1xuICAgIEVSUk9SW0VSUk9SW1wiSU5WQUxJRF9UUkFOU0ZFUl9FTkNPRElOR1wiXSA9IDE1XSA9IFwiSU5WQUxJRF9UUkFOU0ZFUl9FTkNPRElOR1wiO1xuICAgIEVSUk9SW0VSUk9SW1wiQ0JfTUVTU0FHRV9CRUdJTlwiXSA9IDE2XSA9IFwiQ0JfTUVTU0FHRV9CRUdJTlwiO1xuICAgIEVSUk9SW0VSUk9SW1wiQ0JfSEVBREVSU19DT01QTEVURVwiXSA9IDE3XSA9IFwiQ0JfSEVBREVSU19DT01QTEVURVwiO1xuICAgIEVSUk9SW0VSUk9SW1wiQ0JfTUVTU0FHRV9DT01QTEVURVwiXSA9IDE4XSA9IFwiQ0JfTUVTU0FHRV9DT01QTEVURVwiO1xuICAgIEVSUk9SW0VSUk9SW1wiQ0JfQ0hVTktfSEVBREVSXCJdID0gMTldID0gXCJDQl9DSFVOS19IRUFERVJcIjtcbiAgICBFUlJPUltFUlJPUltcIkNCX0NIVU5LX0NPTVBMRVRFXCJdID0gMjBdID0gXCJDQl9DSFVOS19DT01QTEVURVwiO1xuICAgIEVSUk9SW0VSUk9SW1wiUEFVU0VEXCJdID0gMjFdID0gXCJQQVVTRURcIjtcbiAgICBFUlJPUltFUlJPUltcIlBBVVNFRF9VUEdSQURFXCJdID0gMjJdID0gXCJQQVVTRURfVVBHUkFERVwiO1xuICAgIEVSUk9SW0VSUk9SW1wiUEFVU0VEX0gyX1VQR1JBREVcIl0gPSAyM10gPSBcIlBBVVNFRF9IMl9VUEdSQURFXCI7XG4gICAgRVJST1JbRVJST1JbXCJVU0VSXCJdID0gMjRdID0gXCJVU0VSXCI7XG59KShFUlJPUiA9IGV4cG9ydHMuRVJST1IgfHwgKGV4cG9ydHMuRVJST1IgPSB7fSkpO1xudmFyIFRZUEU7XG4oZnVuY3Rpb24gKFRZUEUpIHtcbiAgICBUWVBFW1RZUEVbXCJCT1RIXCJdID0gMF0gPSBcIkJPVEhcIjtcbiAgICBUWVBFW1RZUEVbXCJSRVFVRVNUXCJdID0gMV0gPSBcIlJFUVVFU1RcIjtcbiAgICBUWVBFW1RZUEVbXCJSRVNQT05TRVwiXSA9IDJdID0gXCJSRVNQT05TRVwiO1xufSkoVFlQRSA9IGV4cG9ydHMuVFlQRSB8fCAoZXhwb3J0cy5UWVBFID0ge30pKTtcbnZhciBGTEFHUztcbihmdW5jdGlvbiAoRkxBR1MpIHtcbiAgICBGTEFHU1tGTEFHU1tcIkNPTk5FQ1RJT05fS0VFUF9BTElWRVwiXSA9IDFdID0gXCJDT05ORUNUSU9OX0tFRVBfQUxJVkVcIjtcbiAgICBGTEFHU1tGTEFHU1tcIkNPTk5FQ1RJT05fQ0xPU0VcIl0gPSAyXSA9IFwiQ09OTkVDVElPTl9DTE9TRVwiO1xuICAgIEZMQUdTW0ZMQUdTW1wiQ09OTkVDVElPTl9VUEdSQURFXCJdID0gNF0gPSBcIkNPTk5FQ1RJT05fVVBHUkFERVwiO1xuICAgIEZMQUdTW0ZMQUdTW1wiQ0hVTktFRFwiXSA9IDhdID0gXCJDSFVOS0VEXCI7XG4gICAgRkxBR1NbRkxBR1NbXCJVUEdSQURFXCJdID0gMTZdID0gXCJVUEdSQURFXCI7XG4gICAgRkxBR1NbRkxBR1NbXCJDT05URU5UX0xFTkdUSFwiXSA9IDMyXSA9IFwiQ09OVEVOVF9MRU5HVEhcIjtcbiAgICBGTEFHU1tGTEFHU1tcIlNLSVBCT0RZXCJdID0gNjRdID0gXCJTS0lQQk9EWVwiO1xuICAgIEZMQUdTW0ZMQUdTW1wiVFJBSUxJTkdcIl0gPSAxMjhdID0gXCJUUkFJTElOR1wiO1xuICAgIC8vIDEgPDwgOCBpcyB1bnVzZWRcbiAgICBGTEFHU1tGTEFHU1tcIlRSQU5TRkVSX0VOQ09ESU5HXCJdID0gNTEyXSA9IFwiVFJBTlNGRVJfRU5DT0RJTkdcIjtcbn0pKEZMQUdTID0gZXhwb3J0cy5GTEFHUyB8fCAoZXhwb3J0cy5GTEFHUyA9IHt9KSk7XG52YXIgTEVOSUVOVF9GTEFHUztcbihmdW5jdGlvbiAoTEVOSUVOVF9GTEFHUykge1xuICAgIExFTklFTlRfRkxBR1NbTEVOSUVOVF9GTEFHU1tcIkhFQURFUlNcIl0gPSAxXSA9IFwiSEVBREVSU1wiO1xuICAgIExFTklFTlRfRkxBR1NbTEVOSUVOVF9GTEFHU1tcIkNIVU5LRURfTEVOR1RIXCJdID0gMl0gPSBcIkNIVU5LRURfTEVOR1RIXCI7XG4gICAgTEVOSUVOVF9GTEFHU1tMRU5JRU5UX0ZMQUdTW1wiS0VFUF9BTElWRVwiXSA9IDRdID0gXCJLRUVQX0FMSVZFXCI7XG59KShMRU5JRU5UX0ZMQUdTID0gZXhwb3J0cy5MRU5JRU5UX0ZMQUdTIHx8IChleHBvcnRzLkxFTklFTlRfRkxBR1MgPSB7fSkpO1xudmFyIE1FVEhPRFM7XG4oZnVuY3Rpb24gKE1FVEhPRFMpIHtcbiAgICBNRVRIT0RTW01FVEhPRFNbXCJERUxFVEVcIl0gPSAwXSA9IFwiREVMRVRFXCI7XG4gICAgTUVUSE9EU1tNRVRIT0RTW1wiR0VUXCJdID0gMV0gPSBcIkdFVFwiO1xuICAgIE1FVEhPRFNbTUVUSE9EU1tcIkhFQURcIl0gPSAyXSA9IFwiSEVBRFwiO1xuICAgIE1FVEhPRFNbTUVUSE9EU1tcIlBPU1RcIl0gPSAzXSA9IFwiUE9TVFwiO1xuICAgIE1FVEhPRFNbTUVUSE9EU1tcIlBVVFwiXSA9IDRdID0gXCJQVVRcIjtcbiAgICAvKiBwYXRob2xvZ2ljYWwgKi9cbiAgICBNRVRIT0RTW01FVEhPRFNbXCJDT05ORUNUXCJdID0gNV0gPSBcIkNPTk5FQ1RcIjtcbiAgICBNRVRIT0RTW01FVEhPRFNbXCJPUFRJT05TXCJdID0gNl0gPSBcIk9QVElPTlNcIjtcbiAgICBNRVRIT0RTW01FVEhPRFNbXCJUUkFDRVwiXSA9IDddID0gXCJUUkFDRVwiO1xuICAgIC8qIFdlYkRBViAqL1xuICAgIE1FVEhPRFNbTUVUSE9EU1tcIkNPUFlcIl0gPSA4XSA9IFwiQ09QWVwiO1xuICAgIE1FVEhPRFNbTUVUSE9EU1tcIkxPQ0tcIl0gPSA5XSA9IFwiTE9DS1wiO1xuICAgIE1FVEhPRFNbTUVUSE9EU1tcIk1LQ09MXCJdID0gMTBdID0gXCJNS0NPTFwiO1xuICAgIE1FVEhPRFNbTUVUSE9EU1tcIk1PVkVcIl0gPSAxMV0gPSBcIk1PVkVcIjtcbiAgICBNRVRIT0RTW01FVEhPRFNbXCJQUk9QRklORFwiXSA9IDEyXSA9IFwiUFJPUEZJTkRcIjtcbiAgICBNRVRIT0RTW01FVEhPRFNbXCJQUk9QUEFUQ0hcIl0gPSAxM10gPSBcIlBST1BQQVRDSFwiO1xuICAgIE1FVEhPRFNbTUVUSE9EU1tcIlNFQVJDSFwiXSA9IDE0XSA9IFwiU0VBUkNIXCI7XG4gICAgTUVUSE9EU1tNRVRIT0RTW1wiVU5MT0NLXCJdID0gMTVdID0gXCJVTkxPQ0tcIjtcbiAgICBNRVRIT0RTW01FVEhPRFNbXCJCSU5EXCJdID0gMTZdID0gXCJCSU5EXCI7XG4gICAgTUVUSE9EU1tNRVRIT0RTW1wiUkVCSU5EXCJdID0gMTddID0gXCJSRUJJTkRcIjtcbiAgICBNRVRIT0RTW01FVEhPRFNbXCJVTkJJTkRcIl0gPSAxOF0gPSBcIlVOQklORFwiO1xuICAgIE1FVEhPRFNbTUVUSE9EU1tcIkFDTFwiXSA9IDE5XSA9IFwiQUNMXCI7XG4gICAgLyogc3VidmVyc2lvbiAqL1xuICAgIE1FVEhPRFNbTUVUSE9EU1tcIlJFUE9SVFwiXSA9IDIwXSA9IFwiUkVQT1JUXCI7XG4gICAgTUVUSE9EU1tNRVRIT0RTW1wiTUtBQ1RJVklUWVwiXSA9IDIxXSA9IFwiTUtBQ1RJVklUWVwiO1xuICAgIE1FVEhPRFNbTUVUSE9EU1tcIkNIRUNLT1VUXCJdID0gMjJdID0gXCJDSEVDS09VVFwiO1xuICAgIE1FVEhPRFNbTUVUSE9EU1tcIk1FUkdFXCJdID0gMjNdID0gXCJNRVJHRVwiO1xuICAgIC8qIHVwbnAgKi9cbiAgICBNRVRIT0RTW01FVEhPRFNbXCJNLVNFQVJDSFwiXSA9IDI0XSA9IFwiTS1TRUFSQ0hcIjtcbiAgICBNRVRIT0RTW01FVEhPRFNbXCJOT1RJRllcIl0gPSAyNV0gPSBcIk5PVElGWVwiO1xuICAgIE1FVEhPRFNbTUVUSE9EU1tcIlNVQlNDUklCRVwiXSA9IDI2XSA9IFwiU1VCU0NSSUJFXCI7XG4gICAgTUVUSE9EU1tNRVRIT0RTW1wiVU5TVUJTQ1JJQkVcIl0gPSAyN10gPSBcIlVOU1VCU0NSSUJFXCI7XG4gICAgLyogUkZDLTU3ODkgKi9cbiAgICBNRVRIT0RTW01FVEhPRFNbXCJQQVRDSFwiXSA9IDI4XSA9IFwiUEFUQ0hcIjtcbiAgICBNRVRIT0RTW01FVEhPRFNbXCJQVVJHRVwiXSA9IDI5XSA9IFwiUFVSR0VcIjtcbiAgICAvKiBDYWxEQVYgKi9cbiAgICBNRVRIT0RTW01FVEhPRFNbXCJNS0NBTEVOREFSXCJdID0gMzBdID0gXCJNS0NBTEVOREFSXCI7XG4gICAgLyogUkZDLTIwNjgsIHNlY3Rpb24gMTkuNi4xLjIgKi9cbiAgICBNRVRIT0RTW01FVEhPRFNbXCJMSU5LXCJdID0gMzFdID0gXCJMSU5LXCI7XG4gICAgTUVUSE9EU1tNRVRIT0RTW1wiVU5MSU5LXCJdID0gMzJdID0gXCJVTkxJTktcIjtcbiAgICAvKiBpY2VjYXN0ICovXG4gICAgTUVUSE9EU1tNRVRIT0RTW1wiU09VUkNFXCJdID0gMzNdID0gXCJTT1VSQ0VcIjtcbiAgICAvKiBSRkMtNzU0MCwgc2VjdGlvbiAxMS42ICovXG4gICAgTUVUSE9EU1tNRVRIT0RTW1wiUFJJXCJdID0gMzRdID0gXCJQUklcIjtcbiAgICAvKiBSRkMtMjMyNiBSVFNQICovXG4gICAgTUVUSE9EU1tNRVRIT0RTW1wiREVTQ1JJQkVcIl0gPSAzNV0gPSBcIkRFU0NSSUJFXCI7XG4gICAgTUVUSE9EU1tNRVRIT0RTW1wiQU5OT1VOQ0VcIl0gPSAzNl0gPSBcIkFOTk9VTkNFXCI7XG4gICAgTUVUSE9EU1tNRVRIT0RTW1wiU0VUVVBcIl0gPSAzN10gPSBcIlNFVFVQXCI7XG4gICAgTUVUSE9EU1tNRVRIT0RTW1wiUExBWVwiXSA9IDM4XSA9IFwiUExBWVwiO1xuICAgIE1FVEhPRFNbTUVUSE9EU1tcIlBBVVNFXCJdID0gMzldID0gXCJQQVVTRVwiO1xuICAgIE1FVEhPRFNbTUVUSE9EU1tcIlRFQVJET1dOXCJdID0gNDBdID0gXCJURUFSRE9XTlwiO1xuICAgIE1FVEhPRFNbTUVUSE9EU1tcIkdFVF9QQVJBTUVURVJcIl0gPSA0MV0gPSBcIkdFVF9QQVJBTUVURVJcIjtcbiAgICBNRVRIT0RTW01FVEhPRFNbXCJTRVRfUEFSQU1FVEVSXCJdID0gNDJdID0gXCJTRVRfUEFSQU1FVEVSXCI7XG4gICAgTUVUSE9EU1tNRVRIT0RTW1wiUkVESVJFQ1RcIl0gPSA0M10gPSBcIlJFRElSRUNUXCI7XG4gICAgTUVUSE9EU1tNRVRIT0RTW1wiUkVDT1JEXCJdID0gNDRdID0gXCJSRUNPUkRcIjtcbiAgICAvKiBSQU9QICovXG4gICAgTUVUSE9EU1tNRVRIT0RTW1wiRkxVU0hcIl0gPSA0NV0gPSBcIkZMVVNIXCI7XG59KShNRVRIT0RTID0gZXhwb3J0cy5NRVRIT0RTIHx8IChleHBvcnRzLk1FVEhPRFMgPSB7fSkpO1xuZXhwb3J0cy5NRVRIT0RTX0hUVFAgPSBbXG4gICAgTUVUSE9EUy5ERUxFVEUsXG4gICAgTUVUSE9EUy5HRVQsXG4gICAgTUVUSE9EUy5IRUFELFxuICAgIE1FVEhPRFMuUE9TVCxcbiAgICBNRVRIT0RTLlBVVCxcbiAgICBNRVRIT0RTLkNPTk5FQ1QsXG4gICAgTUVUSE9EUy5PUFRJT05TLFxuICAgIE1FVEhPRFMuVFJBQ0UsXG4gICAgTUVUSE9EUy5DT1BZLFxuICAgIE1FVEhPRFMuTE9DSyxcbiAgICBNRVRIT0RTLk1LQ09MLFxuICAgIE1FVEhPRFMuTU9WRSxcbiAgICBNRVRIT0RTLlBST1BGSU5ELFxuICAgIE1FVEhPRFMuUFJPUFBBVENILFxuICAgIE1FVEhPRFMuU0VBUkNILFxuICAgIE1FVEhPRFMuVU5MT0NLLFxuICAgIE1FVEhPRFMuQklORCxcbiAgICBNRVRIT0RTLlJFQklORCxcbiAgICBNRVRIT0RTLlVOQklORCxcbiAgICBNRVRIT0RTLkFDTCxcbiAgICBNRVRIT0RTLlJFUE9SVCxcbiAgICBNRVRIT0RTLk1LQUNUSVZJVFksXG4gICAgTUVUSE9EUy5DSEVDS09VVCxcbiAgICBNRVRIT0RTLk1FUkdFLFxuICAgIE1FVEhPRFNbJ00tU0VBUkNIJ10sXG4gICAgTUVUSE9EUy5OT1RJRlksXG4gICAgTUVUSE9EUy5TVUJTQ1JJQkUsXG4gICAgTUVUSE9EUy5VTlNVQlNDUklCRSxcbiAgICBNRVRIT0RTLlBBVENILFxuICAgIE1FVEhPRFMuUFVSR0UsXG4gICAgTUVUSE9EUy5NS0NBTEVOREFSLFxuICAgIE1FVEhPRFMuTElOSyxcbiAgICBNRVRIT0RTLlVOTElOSyxcbiAgICBNRVRIT0RTLlBSSSxcbiAgICAvLyBUT0RPKGluZHV0bnkpOiBzaG91bGQgd2UgYWxsb3cgaXQgd2l0aCBIVFRQP1xuICAgIE1FVEhPRFMuU09VUkNFLFxuXTtcbmV4cG9ydHMuTUVUSE9EU19JQ0UgPSBbXG4gICAgTUVUSE9EUy5TT1VSQ0UsXG5dO1xuZXhwb3J0cy5NRVRIT0RTX1JUU1AgPSBbXG4gICAgTUVUSE9EUy5PUFRJT05TLFxuICAgIE1FVEhPRFMuREVTQ1JJQkUsXG4gICAgTUVUSE9EUy5BTk5PVU5DRSxcbiAgICBNRVRIT0RTLlNFVFVQLFxuICAgIE1FVEhPRFMuUExBWSxcbiAgICBNRVRIT0RTLlBBVVNFLFxuICAgIE1FVEhPRFMuVEVBUkRPV04sXG4gICAgTUVUSE9EUy5HRVRfUEFSQU1FVEVSLFxuICAgIE1FVEhPRFMuU0VUX1BBUkFNRVRFUixcbiAgICBNRVRIT0RTLlJFRElSRUNULFxuICAgIE1FVEhPRFMuUkVDT1JELFxuICAgIE1FVEhPRFMuRkxVU0gsXG4gICAgLy8gRm9yIEFpclBsYXlcbiAgICBNRVRIT0RTLkdFVCxcbiAgICBNRVRIT0RTLlBPU1QsXG5dO1xuZXhwb3J0cy5NRVRIT0RfTUFQID0gdXRpbHNfMS5lbnVtVG9NYXAoTUVUSE9EUyk7XG5leHBvcnRzLkhfTUVUSE9EX01BUCA9IHt9O1xuT2JqZWN0LmtleXMoZXhwb3J0cy5NRVRIT0RfTUFQKS5mb3JFYWNoKChrZXkpID0+IHtcbiAgICBpZiAoL15ILy50ZXN0KGtleSkpIHtcbiAgICAgICAgZXhwb3J0cy5IX01FVEhPRF9NQVBba2V5XSA9IGV4cG9ydHMuTUVUSE9EX01BUFtrZXldO1xuICAgIH1cbn0pO1xudmFyIEZJTklTSDtcbihmdW5jdGlvbiAoRklOSVNIKSB7XG4gICAgRklOSVNIW0ZJTklTSFtcIlNBRkVcIl0gPSAwXSA9IFwiU0FGRVwiO1xuICAgIEZJTklTSFtGSU5JU0hbXCJTQUZFX1dJVEhfQ0JcIl0gPSAxXSA9IFwiU0FGRV9XSVRIX0NCXCI7XG4gICAgRklOSVNIW0ZJTklTSFtcIlVOU0FGRVwiXSA9IDJdID0gXCJVTlNBRkVcIjtcbn0pKEZJTklTSCA9IGV4cG9ydHMuRklOSVNIIHx8IChleHBvcnRzLkZJTklTSCA9IHt9KSk7XG5leHBvcnRzLkFMUEhBID0gW107XG5mb3IgKGxldCBpID0gJ0EnLmNoYXJDb2RlQXQoMCk7IGkgPD0gJ1onLmNoYXJDb2RlQXQoMCk7IGkrKykge1xuICAgIC8vIFVwcGVyIGNhc2VcbiAgICBleHBvcnRzLkFMUEhBLnB1c2goU3RyaW5nLmZyb21DaGFyQ29kZShpKSk7XG4gICAgLy8gTG93ZXIgY2FzZVxuICAgIGV4cG9ydHMuQUxQSEEucHVzaChTdHJpbmcuZnJvbUNoYXJDb2RlKGkgKyAweDIwKSk7XG59XG5leHBvcnRzLk5VTV9NQVAgPSB7XG4gICAgMDogMCwgMTogMSwgMjogMiwgMzogMywgNDogNCxcbiAgICA1OiA1LCA2OiA2LCA3OiA3LCA4OiA4LCA5OiA5LFxufTtcbmV4cG9ydHMuSEVYX01BUCA9IHtcbiAgICAwOiAwLCAxOiAxLCAyOiAyLCAzOiAzLCA0OiA0LFxuICAgIDU6IDUsIDY6IDYsIDc6IDcsIDg6IDgsIDk6IDksXG4gICAgQTogMFhBLCBCOiAwWEIsIEM6IDBYQywgRDogMFhELCBFOiAwWEUsIEY6IDBYRixcbiAgICBhOiAweGEsIGI6IDB4YiwgYzogMHhjLCBkOiAweGQsIGU6IDB4ZSwgZjogMHhmLFxufTtcbmV4cG9ydHMuTlVNID0gW1xuICAgICcwJywgJzEnLCAnMicsICczJywgJzQnLCAnNScsICc2JywgJzcnLCAnOCcsICc5Jyxcbl07XG5leHBvcnRzLkFMUEhBTlVNID0gZXhwb3J0cy5BTFBIQS5jb25jYXQoZXhwb3J0cy5OVU0pO1xuZXhwb3J0cy5NQVJLID0gWyctJywgJ18nLCAnLicsICchJywgJ34nLCAnKicsICdcXCcnLCAnKCcsICcpJ107XG5leHBvcnRzLlVTRVJJTkZPX0NIQVJTID0gZXhwb3J0cy5BTFBIQU5VTVxuICAgIC5jb25jYXQoZXhwb3J0cy5NQVJLKVxuICAgIC5jb25jYXQoWyclJywgJzsnLCAnOicsICcmJywgJz0nLCAnKycsICckJywgJywnXSk7XG4vLyBUT0RPKGluZHV0bnkpOiB1c2UgUkZDXG5leHBvcnRzLlNUUklDVF9VUkxfQ0hBUiA9IFtcbiAgICAnIScsICdcIicsICckJywgJyUnLCAnJicsICdcXCcnLFxuICAgICcoJywgJyknLCAnKicsICcrJywgJywnLCAnLScsICcuJywgJy8nLFxuICAgICc6JywgJzsnLCAnPCcsICc9JywgJz4nLFxuICAgICdAJywgJ1snLCAnXFxcXCcsICddJywgJ14nLCAnXycsXG4gICAgJ2AnLFxuICAgICd7JywgJ3wnLCAnfScsICd+Jyxcbl0uY29uY2F0KGV4cG9ydHMuQUxQSEFOVU0pO1xuZXhwb3J0cy5VUkxfQ0hBUiA9IGV4cG9ydHMuU1RSSUNUX1VSTF9DSEFSXG4gICAgLmNvbmNhdChbJ1xcdCcsICdcXGYnXSk7XG4vLyBBbGwgY2hhcmFjdGVycyB3aXRoIDB4ODAgYml0IHNldCB0byAxXG5mb3IgKGxldCBpID0gMHg4MDsgaSA8PSAweGZmOyBpKyspIHtcbiAgICBleHBvcnRzLlVSTF9DSEFSLnB1c2goaSk7XG59XG5leHBvcnRzLkhFWCA9IGV4cG9ydHMuTlVNLmNvbmNhdChbJ2EnLCAnYicsICdjJywgJ2QnLCAnZScsICdmJywgJ0EnLCAnQicsICdDJywgJ0QnLCAnRScsICdGJ10pO1xuLyogVG9rZW5zIGFzIGRlZmluZWQgYnkgcmZjIDI2MTYuIEFsc28gbG93ZXJjYXNlcyB0aGVtLlxuICogICAgICAgIHRva2VuICAgICAgID0gMSo8YW55IENIQVIgZXhjZXB0IENUTHMgb3Igc2VwYXJhdG9ycz5cbiAqICAgICBzZXBhcmF0b3JzICAgICA9IFwiKFwiIHwgXCIpXCIgfCBcIjxcIiB8IFwiPlwiIHwgXCJAXCJcbiAqICAgICAgICAgICAgICAgICAgICB8IFwiLFwiIHwgXCI7XCIgfCBcIjpcIiB8IFwiXFxcIiB8IDxcIj5cbiAqICAgICAgICAgICAgICAgICAgICB8IFwiL1wiIHwgXCJbXCIgfCBcIl1cIiB8IFwiP1wiIHwgXCI9XCJcbiAqICAgICAgICAgICAgICAgICAgICB8IFwie1wiIHwgXCJ9XCIgfCBTUCB8IEhUXG4gKi9cbmV4cG9ydHMuU1RSSUNUX1RPS0VOID0gW1xuICAgICchJywgJyMnLCAnJCcsICclJywgJyYnLCAnXFwnJyxcbiAgICAnKicsICcrJywgJy0nLCAnLicsXG4gICAgJ14nLCAnXycsICdgJyxcbiAgICAnfCcsICd+Jyxcbl0uY29uY2F0KGV4cG9ydHMuQUxQSEFOVU0pO1xuZXhwb3J0cy5UT0tFTiA9IGV4cG9ydHMuU1RSSUNUX1RPS0VOLmNvbmNhdChbJyAnXSk7XG4vKlxuICogVmVyaWZ5IHRoYXQgYSBjaGFyIGlzIGEgdmFsaWQgdmlzaWJsZSAocHJpbnRhYmxlKSBVUy1BU0NJSVxuICogY2hhcmFjdGVyIG9yICV4ODAtRkZcbiAqL1xuZXhwb3J0cy5IRUFERVJfQ0hBUlMgPSBbJ1xcdCddO1xuZm9yIChsZXQgaSA9IDMyOyBpIDw9IDI1NTsgaSsrKSB7XG4gICAgaWYgKGkgIT09IDEyNykge1xuICAgICAgICBleHBvcnRzLkhFQURFUl9DSEFSUy5wdXNoKGkpO1xuICAgIH1cbn1cbi8vICcsJyA9IFxceDQ0XG5leHBvcnRzLkNPTk5FQ1RJT05fVE9LRU5fQ0hBUlMgPSBleHBvcnRzLkhFQURFUl9DSEFSUy5maWx0ZXIoKGMpID0+IGMgIT09IDQ0KTtcbmV4cG9ydHMuTUFKT1IgPSBleHBvcnRzLk5VTV9NQVA7XG5leHBvcnRzLk1JTk9SID0gZXhwb3J0cy5NQUpPUjtcbnZhciBIRUFERVJfU1RBVEU7XG4oZnVuY3Rpb24gKEhFQURFUl9TVEFURSkge1xuICAgIEhFQURFUl9TVEFURVtIRUFERVJfU1RBVEVbXCJHRU5FUkFMXCJdID0gMF0gPSBcIkdFTkVSQUxcIjtcbiAgICBIRUFERVJfU1RBVEVbSEVBREVSX1NUQVRFW1wiQ09OTkVDVElPTlwiXSA9IDFdID0gXCJDT05ORUNUSU9OXCI7XG4gICAgSEVBREVSX1NUQVRFW0hFQURFUl9TVEFURVtcIkNPTlRFTlRfTEVOR1RIXCJdID0gMl0gPSBcIkNPTlRFTlRfTEVOR1RIXCI7XG4gICAgSEVBREVSX1NUQVRFW0hFQURFUl9TVEFURVtcIlRSQU5TRkVSX0VOQ09ESU5HXCJdID0gM10gPSBcIlRSQU5TRkVSX0VOQ09ESU5HXCI7XG4gICAgSEVBREVSX1NUQVRFW0hFQURFUl9TVEFURVtcIlVQR1JBREVcIl0gPSA0XSA9IFwiVVBHUkFERVwiO1xuICAgIEhFQURFUl9TVEFURVtIRUFERVJfU1RBVEVbXCJDT05ORUNUSU9OX0tFRVBfQUxJVkVcIl0gPSA1XSA9IFwiQ09OTkVDVElPTl9LRUVQX0FMSVZFXCI7XG4gICAgSEVBREVSX1NUQVRFW0hFQURFUl9TVEFURVtcIkNPTk5FQ1RJT05fQ0xPU0VcIl0gPSA2XSA9IFwiQ09OTkVDVElPTl9DTE9TRVwiO1xuICAgIEhFQURFUl9TVEFURVtIRUFERVJfU1RBVEVbXCJDT05ORUNUSU9OX1VQR1JBREVcIl0gPSA3XSA9IFwiQ09OTkVDVElPTl9VUEdSQURFXCI7XG4gICAgSEVBREVSX1NUQVRFW0hFQURFUl9TVEFURVtcIlRSQU5TRkVSX0VOQ09ESU5HX0NIVU5LRURcIl0gPSA4XSA9IFwiVFJBTlNGRVJfRU5DT0RJTkdfQ0hVTktFRFwiO1xufSkoSEVBREVSX1NUQVRFID0gZXhwb3J0cy5IRUFERVJfU1RBVEUgfHwgKGV4cG9ydHMuSEVBREVSX1NUQVRFID0ge30pKTtcbmV4cG9ydHMuU1BFQ0lBTF9IRUFERVJTID0ge1xuICAgICdjb25uZWN0aW9uJzogSEVBREVSX1NUQVRFLkNPTk5FQ1RJT04sXG4gICAgJ2NvbnRlbnQtbGVuZ3RoJzogSEVBREVSX1NUQVRFLkNPTlRFTlRfTEVOR1RILFxuICAgICdwcm94eS1jb25uZWN0aW9uJzogSEVBREVSX1NUQVRFLkNPTk5FQ1RJT04sXG4gICAgJ3RyYW5zZmVyLWVuY29kaW5nJzogSEVBREVSX1NUQVRFLlRSQU5TRkVSX0VOQ09ESU5HLFxuICAgICd1cGdyYWRlJzogSEVBREVSX1NUQVRFLlVQR1JBREUsXG59O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Y29uc3RhbnRzLmpzLm1hcCIsICIndXNlIHN0cmljdCdcblxuY29uc3QgeyBCdWZmZXIgfSA9IHJlcXVpcmUoJ25vZGU6YnVmZmVyJylcblxubW9kdWxlLmV4cG9ydHMgPSBCdWZmZXIuZnJvbSgnQUdGemJRRUFBQUFCSndkZ0FYOEJmMkFEZjM5L0FYOWdBWDhBWUFKL2Z3QmdCSDkvZjM4QmYyQUFBR0FEZjM5L0FBTExBUWdEWlc1MkdIZGhjMjFmYjI1ZmFHVmhaR1Z5YzE5amIyMXdiR1YwWlFBRUEyVnVkaFYzWVhOdFgyOXVYMjFsYzNOaFoyVmZZbVZuYVc0QUFBTmxibllMZDJGemJWOXZibDkxY213QUFRTmxibllPZDJGemJWOXZibDl6ZEdGMGRYTUFBUU5sYm5ZVWQyRnpiVjl2Ymw5b1pXRmtaWEpmWm1sbGJHUUFBUU5sYm5ZVWQyRnpiVjl2Ymw5b1pXRmtaWEpmZG1Gc2RXVUFBUU5sYm5ZTWQyRnpiVjl2Ymw5aWIyUjVBQUVEWlc1MkdIZGhjMjFmYjI1ZmJXVnpjMkZuWlY5amIyMXdiR1YwWlFBQUF5MHNCUVlBQUFJQUFBQUFBQUFDQVFJQUFnSUNBQUFEQUFBQUFBTURBd01CQVFFQkFRRUJBUUVBQUFJQUFBQUVCUUZ3QVJJU0JRTUJBQUlHQ0FGL0FVR0ExQVFMQjlFRklnWnRaVzF2Y25rQ0FBdGZhVzVwZEdsaGJHbDZaUUFJR1Y5ZmFXNWthWEpsWTNSZlpuVnVZM1JwYjI1ZmRHRmliR1VCQUF0c2JHaDBkSEJmYVc1cGRBQUpHR3hzYUhSMGNGOXphRzkxYkdSZmEyVmxjRjloYkdsMlpRQXZER3hzYUhSMGNGOWhiR3h2WXdBTEJtMWhiR3h2WXdBeEMyeHNhSFIwY0Y5bWNtVmxBQXdFWm5KbFpRQU1EMnhzYUhSMGNGOW5aWFJmZEhsd1pRQU5GV3hzYUhSMGNGOW5aWFJmYUhSMGNGOXRZV3B2Y2dBT0ZXeHNhSFIwY0Y5blpYUmZhSFIwY0Y5dGFXNXZjZ0FQRVd4c2FIUjBjRjluWlhSZmJXVjBhRzlrQUJBV2JHeG9kSFJ3WDJkbGRGOXpkR0YwZFhOZlkyOWtaUUFSRW14c2FIUjBjRjluWlhSZmRYQm5jbUZrWlFBU0RHeHNhSFIwY0Y5eVpYTmxkQUFURG14c2FIUjBjRjlsZUdWamRYUmxBQlFVYkd4b2RIUndYM05sZEhScGJtZHpYMmx1YVhRQUZRMXNiR2gwZEhCZlptbHVhWE5vQUJZTWJHeG9kSFJ3WDNCaGRYTmxBQmNOYkd4b2RIUndYM0psYzNWdFpRQVlHMnhzYUhSMGNGOXlaWE4xYldWZllXWjBaWEpmZFhCbmNtRmtaUUFaRUd4c2FIUjBjRjluWlhSZlpYSnlibThBR2hkc2JHaDBkSEJmWjJWMFgyVnljbTl5WDNKbFlYTnZiZ0FiRjJ4c2FIUjBjRjl6WlhSZlpYSnliM0pmY21WaGMyOXVBQndVYkd4b2RIUndYMmRsZEY5bGNuSnZjbDl3YjNNQUhSRnNiR2gwZEhCZlpYSnlibTlmYm1GdFpRQWVFbXhzYUhSMGNGOXRaWFJvYjJSZmJtRnRaUUFmRW14c2FIUjBjRjl6ZEdGMGRYTmZibUZ0WlFBZ0dteHNhSFIwY0Y5elpYUmZiR1Z1YVdWdWRGOW9aV0ZrWlhKekFDRWhiR3hvZEhSd1gzTmxkRjlzWlc1cFpXNTBYMk5vZFc1clpXUmZiR1Z1WjNSb0FDSWRiR3hvZEhSd1gzTmxkRjlzWlc1cFpXNTBYMnRsWlhCZllXeHBkbVVBSXlSc2JHaDBkSEJmYzJWMFgyeGxibWxsYm5SZmRISmhibk5tWlhKZlpXNWpiMlJwYm1jQUpCaHNiR2gwZEhCZmJXVnpjMkZuWlY5dVpXVmtjMTlsYjJZQUxna1hBUUJCQVFzUkFRSURCQVVLQmdjckxTd3FLU2dsSnlZSzA3TUNMQllBUVlqUUFDZ0NBQVJBQUF0QmlOQUFRUUUyQWdBTEZBQWdBQkF3SUFBZ0FqWUNPQ0FBSUFFNkFDZ0xGQUFnQUNBQUx3RXlJQUF0QUM0Z0FCQXZFQUFMSGdFQmYwSEFBQkF5SWdFUU1DQUJRWUFJTmdJNElBRWdBRG9BS0NBQkM0OE1BUWQvQWtBZ0FFVU5BQ0FBUVFocklnRWdBRUVFYXlnQ0FDSUFRWGh4SWdScUlRVUNRQ0FBUVFGeERRQWdBRUVEY1VVTkFTQUJJQUVvQWdBaUFHc2lBVUdjMEFBb0FnQkpEUUVnQUNBRWFpRUVBa0FDUUVHZzBBQW9BZ0FnQVVjRVFDQUFRZjhCVFFSQUlBQkJBM1loQXlBQktBSUlJZ0FnQVNnQ0RDSUNSZ1JBUVl6UUFFR00wQUFvQWdCQmZpQURkM0UyQWdBTUJRc2dBaUFBTmdJSUlBQWdBallDREF3RUN5QUJLQUlZSVFZZ0FTQUJLQUlNSWdCSEJFQWdBQ0FCS0FJSUlnSTJBZ2dnQWlBQU5nSU1EQU1MSUFGQkZHb2lBeWdDQUNJQ1JRUkFJQUVvQWhBaUFrVU5BaUFCUVJCcUlRTUxBMEFnQXlFSElBSWlBRUVVYWlJREtBSUFJZ0lOQUNBQVFSQnFJUU1nQUNnQ0VDSUNEUUFMSUFkQkFEWUNBQXdDQ3lBRktBSUVJZ0JCQTNGQkEwY05BaUFGSUFCQmZuRTJBZ1JCbE5BQUlBUTJBZ0FnQlNBRU5nSUFJQUVnQkVFQmNqWUNCQXdEQzBFQUlRQUxJQVpGRFFBQ1FDQUJLQUljSWdKQkFuUkJ2TklBYWlJREtBSUFJQUZHQkVBZ0F5QUFOZ0lBSUFBTkFVR1EwQUJCa05BQUtBSUFRWDRnQW5keE5nSUFEQUlMSUFaQkVFRVVJQVlvQWhBZ0FVWWJhaUFBTmdJQUlBQkZEUUVMSUFBZ0JqWUNHQ0FCS0FJUUlnSUVRQ0FBSUFJMkFoQWdBaUFBTmdJWUN5QUJRUlJxS0FJQUlnSkZEUUFnQUVFVWFpQUNOZ0lBSUFJZ0FEWUNHQXNnQVNBRlR3MEFJQVVvQWdRaUFFRUJjVVVOQUFKQUFrQUNRQUpBSUFCQkFuRkZCRUJCcE5BQUtBSUFJQVZHQkVCQnBOQUFJQUUyQWdCQm1OQUFRWmpRQUNnQ0FDQUVhaUlBTmdJQUlBRWdBRUVCY2pZQ0JDQUJRYURRQUNnQ0FFY05Ca0dVMEFCQkFEWUNBRUdnMEFCQkFEWUNBQXdHQzBHZzBBQW9BZ0FnQlVZRVFFR2cwQUFnQVRZQ0FFR1UwQUJCbE5BQUtBSUFJQVJxSWdBMkFnQWdBU0FBUVFGeU5nSUVJQUFnQVdvZ0FEWUNBQXdHQ3lBQVFYaHhJQVJxSVFRZ0FFSC9BVTBFUUNBQVFRTjJJUU1nQlNnQ0NDSUFJQVVvQWd3aUFrWUVRRUdNMEFCQmpOQUFLQUlBUVg0Z0EzZHhOZ0lBREFVTElBSWdBRFlDQ0NBQUlBSTJBZ3dNQkFzZ0JTZ0NHQ0VHSUFVZ0JTZ0NEQ0lBUndSQVFaelFBQ2dDQUJvZ0FDQUZLQUlJSWdJMkFnZ2dBaUFBTmdJTURBTUxJQVZCRkdvaUF5Z0NBQ0lDUlFSQUlBVW9BaEFpQWtVTkFpQUZRUkJxSVFNTEEwQWdBeUVISUFJaUFFRVVhaUlES0FJQUlnSU5BQ0FBUVJCcUlRTWdBQ2dDRUNJQ0RRQUxJQWRCQURZQ0FBd0NDeUFGSUFCQmZuRTJBZ1FnQVNBRWFpQUVOZ0lBSUFFZ0JFRUJjallDQkF3REMwRUFJUUFMSUFaRkRRQUNRQ0FGS0FJY0lnSkJBblJCdk5JQWFpSURLQUlBSUFWR0JFQWdBeUFBTmdJQUlBQU5BVUdRMEFCQmtOQUFLQUlBUVg0Z0FuZHhOZ0lBREFJTElBWkJFRUVVSUFZb0FoQWdCVVliYWlBQU5nSUFJQUJGRFFFTElBQWdCallDR0NBRktBSVFJZ0lFUUNBQUlBSTJBaEFnQWlBQU5nSVlDeUFGUVJScUtBSUFJZ0pGRFFBZ0FFRVVhaUFDTmdJQUlBSWdBRFlDR0FzZ0FTQUVhaUFFTmdJQUlBRWdCRUVCY2pZQ0JDQUJRYURRQUNnQ0FFY05BRUdVMEFBZ0JEWUNBQXdCQ3lBRVFmOEJUUVJBSUFSQmVIRkJ0TkFBYWlFQUFuOUJqTkFBS0FJQUlnSkJBU0FFUVFOMmRDSURjVVVFUUVHTTBBQWdBaUFEY2pZQ0FDQUFEQUVMSUFBb0FnZ0xJZ0lnQVRZQ0RDQUFJQUUyQWdnZ0FTQUFOZ0lNSUFFZ0FqWUNDQXdCQzBFZklRSWdCRUgvLy84SFRRUkFJQVJCSmlBRVFRaDJaeUlBYTNaQkFYRWdBRUVCZEd0QlBtb2hBZ3NnQVNBQ05nSWNJQUZDQURjQ0VDQUNRUUowUWJ6U0FHb2hBQUpBUVpEUUFDZ0NBQ0lEUVFFZ0FuUWlCM0ZGQkVBZ0FDQUJOZ0lBUVpEUUFDQURJQWR5TmdJQUlBRWdBRFlDR0NBQklBRTJBZ2dnQVNBQk5nSU1EQUVMSUFSQkdTQUNRUUYyYTBFQUlBSkJIMGNiZENFQ0lBQW9BZ0FoQUFKQUEwQWdBQ0lES0FJRVFYaHhJQVJHRFFFZ0FrRWRkaUVBSUFKQkFYUWhBaUFESUFCQkJIRnFRUkJxSWdjb0FnQWlBQTBBQ3lBSElBRTJBZ0FnQVNBRE5nSVlJQUVnQVRZQ0RDQUJJQUUyQWdnTUFRc2dBeWdDQ0NJQUlBRTJBZ3dnQXlBQk5nSUlJQUZCQURZQ0dDQUJJQU0yQWd3Z0FTQUFOZ0lJQzBHczBBQkJyTkFBS0FJQVFRRnJJZ0JCZnlBQUd6WUNBQXNMQndBZ0FDMEFLQXNIQUNBQUxRQXFDd2NBSUFBdEFDc0xCd0FnQUMwQUtRc0hBQ0FBTHdFeUN3Y0FJQUF0QUM0TFFBRUVmeUFBS0FJWUlRRWdBQzBBTFNFQ0lBQXRBQ2doQXlBQUtBSTRJUVFnQUJBd0lBQWdCRFlDT0NBQUlBTTZBQ2dnQUNBQ09nQXRJQUFnQVRZQ0dBdTc0Z0VDQjM4RGZpQUJJQUpxSVFRQ1FDQUFJZ0lvQWd3aUFBMEFJQUlvQWdRRVFDQUNJQUUyQWdRTEl3QkJFR3NpQ0NRQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDZndKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUlBSW9BaHdpQTBFQmF3N2RBZG9CQWRrQkFnTUVCUVlIQ0FrS0N3d05EdGdCRHhEWEFSRVMxZ0VURkJVV0Z4Z1pHaHZnQWQ4QkhCMGUxUUVmSUNFaUl5UWwxQUVtSnlncEtpc3Mwd0hTQVMwdTBRSFFBUzh3TVRJek5EVTJOemc1T2pzOFBUNC9RRUZDUTBSRlJ0c0JSMGhKU3M4QnpnRkx6UUZNekFGTlRrOVFVVkpUVkZWV1YxaFpXbHRjWFY1ZllHRmlZMlJsWm1kb2FXcHJiRzF1YjNCeGNuTjBkWFozZUhsNmUzeDlmbitBQVlFQmdnR0RBWVFCaFFHR0FZY0JpQUdKQVlvQml3R01BWTBCamdHUEFaQUJrUUdTQVpNQmxBR1ZBWllCbHdHWUFaa0JtZ0diQVp3Qm5RR2VBWjhCb0FHaEFhSUJvd0drQWFVQnBnR25BYWdCcVFHcUFhc0JyQUd0QWE0QnJ3R3dBYkVCc2dHekFiUUJ0UUcyQWJjQnl3SEtBYmdCeVFHNUFjZ0J1Z0c3QWJ3QnZRRytBYjhCd0FIQkFjSUJ3d0hFQWNVQnhnRUEzQUVMUVFBTXhnRUxRUTRNeFFFTFFRME14QUVMUVE4TXd3RUxRUkFNd2dFTFFSTU13UUVMUVJRTXdBRUxRUlVNdndFTFFSWU12Z0VMUVJnTXZRRUxRUmtNdkFFTFFSb011d0VMUVJzTXVnRUxRUndNdVFFTFFSME11QUVMUVFnTXR3RUxRUjRNdGdFTFFTQU10UUVMUVI4TXRBRUxRUWNNc3dFTFFTRU1zZ0VMUVNJTXNRRUxRU01Nc0FFTFFTUU1yd0VMUVJJTXJnRUxRUkVNclFFTFFTVU1yQUVMUVNZTXF3RUxRU2NNcWdFTFFTZ01xUUVMUWNNQkRLZ0JDMEVxREtjQkMwRXJES1lCQzBFc0RLVUJDMEV0REtRQkMwRXVES01CQzBFdkRLSUJDMEhFQVF5aEFRdEJNQXlnQVF0Qk5BeWZBUXRCREF5ZUFRdEJNUXlkQVF0Qk1neWNBUXRCTXd5YkFRdEJPUXlhQVF0Qk5ReVpBUXRCeFFFTW1BRUxRUXNNbHdFTFFUb01sZ0VMUVRZTWxRRUxRUW9NbEFFTFFUY01rd0VMUVRnTWtnRUxRVHdNa1FFTFFUc01rQUVMUVQwTWp3RUxRUWtNamdFTFFTa01qUUVMUVQ0TWpBRUxRVDhNaXdFTFFjQUFESW9CQzBIQkFBeUpBUXRCd2dBTWlBRUxRY01BREljQkMwSEVBQXlHQVF0QnhRQU1oUUVMUWNZQURJUUJDMEVYRElNQkMwSEhBQXlDQVF0QnlBQU1nUUVMUWNrQURJQUJDMEhLQUF4L0MwSExBQXgrQzBITkFBeDlDMEhNQUF4OEMwSE9BQXg3QzBIUEFBeDZDMEhRQUF4NUMwSFJBQXg0QzBIU0FBeDNDMEhUQUF4MkMwSFVBQXgxQzBIV0FBeDBDMEhWQUF4ekMwRUdESElMUWRjQURIRUxRUVVNY0F0QjJBQU1id3RCQkF4dUMwSFpBQXh0QzBIYUFBeHNDMEhiQUF4ckMwSGNBQXhxQzBFRERHa0xRZDBBREdnTFFkNEFER2NMUWQ4QURHWUxRZUVBREdVTFFlQUFER1FMUWVJQURHTUxRZU1BREdJTFFRSU1ZUXRCNUFBTVlBdEI1UUFNWHd0QjVnQU1YZ3RCNXdBTVhRdEI2QUFNWEF0QjZRQU1Xd3RCNmdBTVdndEI2d0FNV1F0QjdBQU1XQXRCN1FBTVZ3dEI3Z0FNVmd0Qjd3QU1WUXRCOEFBTVZBdEI4UUFNVXd0QjhnQU1VZ3RCOHdBTVVRdEI5QUFNVUF0QjlRQU1Ud3RCOWdBTVRndEI5d0FNVFF0QitBQU1UQXRCK1FBTVN3dEIrZ0FNU2d0Qit3QU1TUXRCL0FBTVNBdEIvUUFNUnd0Qi9nQU1SZ3RCL3dBTVJRdEJnQUVNUkF0QmdRRU1Rd3RCZ2dFTVFndEJnd0VNUVF0QmhBRU1RQXRCaFFFTVB3dEJoZ0VNUGd0Qmh3RU1QUXRCaUFFTVBBdEJpUUVNT3d0QmlnRU1PZ3RCaXdFTU9RdEJqQUVNT0F0QmpRRU1Od3RCamdFTU5ndEJqd0VNTlF0QmtBRU1OQXRCa1FFTU13dEJrZ0VNTWd0Qmt3RU1NUXRCbEFFTU1BdEJsUUVNTHd0QmxnRU1MZ3RCbHdFTUxRdEJtQUVNTEF0Qm1RRU1Ld3RCbWdFTUtndEJtd0VNS1F0Qm5BRU1LQXRCblFFTUp3dEJuZ0VNSmd0Qm53RU1KUXRCb0FFTUpBdEJvUUVNSXd0Qm9nRU1JZ3RCb3dFTUlRdEJwQUVNSUF0QnBRRU1Id3RCcGdFTUhndEJwd0VNSFF0QnFBRU1IQXRCcVFFTUd3dEJxZ0VNR2d0QnF3RU1HUXRCckFFTUdBdEJyUUVNRnd0QnJnRU1GZ3RCQVF3VkMwR3ZBUXdVQzBHd0FRd1RDMEd4QVF3U0MwR3pBUXdSQzBHeUFRd1FDMEcwQVF3UEMwRzFBUXdPQzBHMkFRd05DMEczQVF3TUMwRzRBUXdMQzBHNUFRd0tDMEc2QVF3SkMwRzdBUXdJQzBIR0FRd0hDMEc4QVF3R0MwRzlBUXdGQzBHK0FRd0VDMEcvQVF3REMwSEFBUXdDQzBIQ0FRd0JDMEhCQVFzaEF3TkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFJQUlDZndKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUovQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FnQWdKL0FrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDZndKQUFrQUNmd0pBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDZndKQUFrQUNRQUpBQW44Q1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FDQUREc1lCQUFFQ0F3UUZCZ2NJQ1FvTERBME9EeEFSRWhNVUZSWVhHQmthR3h3ZEh5QWhJeVVtS0NvckxDOHdNVEl6TkRVMk56azZPenc5bEFOQVFrUkZSa2xMVGs5UVVWSlRWRlZXV0ZwYlhGMWVYMkJoWW1Oa1pXWm5hR3BzYjNCeGMzVjJlSGw2ZTN4L2dBR0JBWUlCZ3dHRUFZVUJoZ0dIQVlnQmlRR0tBWXNCakFHTkFZNEJqd0dRQVpFQmtnR1RBWlFCbFFHV0FaY0JtQUdaQVpvQm13R2NBWjBCbmdHZkFhQUJvUUdpQWFNQnBBR2xBYVlCcHdHb0Fha0JxZ0dyQWF3QnJRR3VBYThCc0FHeEFiSUJzd0cwQWJVQnRnRzNBYmdCdVFHNkFic0J2QUc5QWI0QnZ3SEFBY0VCd2dIREFjUUJ4UUhHQWNjQnlBSEpBY3NCekFITkFjNEJ6d0dLQTRrRGlBT0hBNFFEZ3dPQUEvc0MrZ0w1QXZnQzl3TDBBdk1DOGdMTEFzRUNzQUxaQVFzZ0FTQUVSdzN3QWtIZEFTRURETE1EQ3lBQklBUkhEY2dCUWNNQklRTU1zZ01MSUFFZ0JFY05lMEgzQUNFRERMRURDeUFCSUFSSERYQkI3d0FoQXd5d0F3c2dBU0FFUncxcFFlb0FJUU1NcndNTElBRWdCRWNOWlVIb0FDRURESzREQ3lBQklBUkhEV0pCNWdBaEF3eXRBd3NnQVNBRVJ3MGFRUmdoQXd5c0F3c2dBU0FFUncwVlFSSWhBd3lyQXdzZ0FTQUVSdzFDUWNVQUlRTU1xZ01MSUFFZ0JFY05ORUUvSVFNTXFRTUxJQUVnQkVjTk1rRThJUU1NcUFNTElBRWdCRWNOSzBFeElRTU1wd01MSUFJdEFDNUJBVVlObndNTXdRSUxRUUFoQUFKQUFrQUNRQ0FDTFFBcVJRMEFJQUl0QUN0RkRRQWdBaThCTUNJRFFRSnhSUTBCREFJTElBSXZBVEFpQTBFQmNVVU5BUXRCQVNFQUlBSXRBQ2hCQVVZTkFDQUNMd0V5SWdWQjVBQnJRZVFBU1EwQUlBVkJ6QUZHRFFBZ0JVR3dBa1lOQUNBRFFjQUFjUTBBUVFBaEFDQURRWWdFY1VHQUJFWU5BQ0FEUVNoeFFRQkhJUUFMSUFKQkFEc0JNQ0FDUVFBNkFDOGdBRVVOM3dJZ0FrSUFOd01nRE9BQ0MwRUFJUUFDUUNBQ0tBSTRJZ05GRFFBZ0F5Z0NMQ0lEUlEwQUlBSWdBeEVBQUNFQUN5QUFSUTNNQVNBQVFSVkhEZDBDSUFKQkJEWUNIQ0FDSUFFMkFoUWdBa0d3R0RZQ0VDQUNRUlUyQWd4QkFDRURES1FEQ3lBQklBUkdCRUJCQmlFRERLUURDeUFCUVFGcUlRRkJBQ0VBQWtBZ0FpZ0NPQ0lEUlEwQUlBTW9BbFFpQTBVTkFDQUNJQU1SQUFBaEFBc2dBQTNaQWd3Y0N5QUNRZ0EzQXlCQkVpRURESWtEQ3lBQklBUkhEUlpCSFNFRERLRURDeUFCSUFSSEJFQWdBVUVCYWlFQlFSQWhBd3lJQXd0QkJ5RURES0FEQ3lBQ0lBSXBBeUFpQ2lBRUlBRnJyU0lMZlNJTVFnQWdDaUFNV2hzM0F5QWdDaUFMV0EzVUFrRUlJUU1NbndNTElBRWdCRWNFUUNBQ1FRazJBZ2dnQWlBQk5nSUVRUlFoQXd5R0F3dEJDU0VEREo0REN5QUNLUU1nUWdCU0RjY0JJQUlnQWk4Qk1FR0FBWEk3QVRBTVFnc2dBU0FFUncwL1FkQUFJUU1NbkFNTElBRWdCRVlFUUVFTElRTU1uQU1MSUFGQkFXb2hBVUVBSVFBQ1FDQUNLQUk0SWdORkRRQWdBeWdDVUNJRFJRMEFJQUlnQXhFQUFDRUFDeUFBRGM4Q0RNWUJDMEVBSVFBQ1FDQUNLQUk0SWdORkRRQWdBeWdDU0NJRFJRMEFJQUlnQXhFQUFDRUFDeUFBUlEzR0FTQUFRUlZIRGMwQ0lBSkJDellDSENBQ0lBRTJBaFFnQWtHQ0dUWUNFQ0FDUVJVMkFneEJBQ0VEREpvREMwRUFJUUFDUUNBQ0tBSTRJZ05GRFFBZ0F5Z0NTQ0lEUlEwQUlBSWdBeEVBQUNFQUN5QUFSUTBNSUFCQkZVY055Z0lnQWtFYU5nSWNJQUlnQVRZQ0ZDQUNRWUlaTmdJUUlBSkJGVFlDREVFQUlRTU1tUU1MUVFBaEFBSkFJQUlvQWpnaUEwVU5BQ0FES0FKTUlnTkZEUUFnQWlBREVRQUFJUUFMSUFCRkRjUUJJQUJCRlVjTnh3SWdBa0VMTmdJY0lBSWdBVFlDRkNBQ1FaRVhOZ0lRSUFKQkZUWUNERUVBSVFNTW1BTUxJQUVnQkVZRVFFRVBJUU1NbUFNTElBRXRBQUFpQUVFN1JnMEhJQUJCRFVjTnhBSWdBVUVCYWlFQkRNTUJDMEVBSVFBQ1FDQUNLQUk0SWdORkRRQWdBeWdDVENJRFJRMEFJQUlnQXhFQUFDRUFDeUFBUlEzREFTQUFRUlZIRGNJQ0lBSkJEellDSENBQ0lBRTJBaFFnQWtHUkZ6WUNFQ0FDUVJVMkFneEJBQ0VEREpZREN3TkFJQUV0QUFCQjhEVnFMUUFBSWdCQkFVY0VRQ0FBUVFKSERjRUNJQUlvQWdRaEFFRUFJUU1nQWtFQU5nSUVJQUlnQUNBQlFRRnFJZ0VRTFNJQURjSUNETVVCQ3lBRUlBRkJBV29pQVVjTkFBdEJFaUVEREpVREMwRUFJUUFDUUNBQ0tBSTRJZ05GRFFBZ0F5Z0NUQ0lEUlEwQUlBSWdBeEVBQUNFQUN5QUFSUTNGQVNBQVFSVkhEYjBDSUFKQkd6WUNIQ0FDSUFFMkFoUWdBa0dSRnpZQ0VDQUNRUlUyQWd4QkFDRURESlFEQ3lBQklBUkdCRUJCRmlFRERKUURDeUFDUVFvMkFnZ2dBaUFCTmdJRVFRQWhBQUpBSUFJb0FqZ2lBMFVOQUNBREtBSklJZ05GRFFBZ0FpQURFUUFBSVFBTElBQkZEY0lCSUFCQkZVY051UUlnQWtFVk5nSWNJQUlnQVRZQ0ZDQUNRWUlaTmdJUUlBSkJGVFlDREVFQUlRTU1rd01MSUFFZ0JFY0VRQU5BSUFFdEFBQkI4RGRxTFFBQUlnQkJBa2NFUUFKQUlBQkJBV3NPQk1RQ3ZRSUF2Z0s5QWdzZ0FVRUJhaUVCUVFnaEF3ejhBZ3NnQkNBQlFRRnFJZ0ZIRFFBTFFSVWhBd3lUQXd0QkZTRURESklEQ3dOQUlBRXRBQUJCOERscUxRQUFJZ0JCQWtjRVFDQUFRUUZyRGdURkFyY0N3d0s0QXJjQ0N5QUVJQUZCQVdvaUFVY05BQXRCR0NFRERKRURDeUFCSUFSSEJFQWdBa0VMTmdJSUlBSWdBVFlDQkVFSElRTU0rQUlMUVJraEF3eVFBd3NnQVVFQmFpRUJEQUlMSUFFZ0JFWUVRRUVhSVFNTWp3TUxBa0FnQVMwQUFFRU5hdzRVdFFHL0FiOEJ2d0cvQWI4QnZ3Ry9BYjhCdndHL0FiOEJ2d0cvQWI4QnZ3Ry9BYjhCdndFQXZ3RUxRUUFoQXlBQ1FRQTJBaHdnQWtHdkN6WUNFQ0FDUVFJMkFnd2dBaUFCUVFGcU5nSVVESTREQ3lBQklBUkdCRUJCR3lFRERJNERDeUFCTFFBQUlnQkJPMGNFUUNBQVFRMUhEYkVDSUFGQkFXb2hBUXk2QVFzZ0FVRUJhaUVCQzBFaUlRTU04d0lMSUFFZ0JFWUVRRUVjSVFNTWpBTUxRZ0FoQ2dKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQWdBUzBBQUVFd2F3NDN3UUxBQWdBQkFnTUVCUVlIMEFIUUFkQUIwQUhRQWRBQjBBRUlDUW9MREEzUUFkQUIwQUhRQWRBQjBBSFFBZEFCMEFIUUFkQUIwQUhRQWRBQjBBSFFBZEFCMEFIUUFkQUIwQUhRQWRBQjBBSFFBZEFCRGc4UUVSSVQwQUVMUWdJaENnekFBZ3RDQXlFS0RMOENDMElFSVFvTXZnSUxRZ1VoQ2d5OUFndENCaUVLREx3Q0MwSUhJUW9NdXdJTFFnZ2hDZ3k2QWd0Q0NTRUtETGtDQzBJS0lRb011QUlMUWdzaENneTNBZ3RDRENFS0RMWUNDMElOSVFvTXRRSUxRZzRoQ2d5MEFndENEeUVLRExNQ0MwSUtJUW9Nc2dJTFFnc2hDZ3l4QWd0Q0RDRUtETEFDQzBJTklRb01yd0lMUWc0aENneXVBZ3RDRHlFS0RLMENDMElBSVFvQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFJQUV0QUFCQk1Hc09OOEFDdndJQUFRSURCQVVHQjc0Q3ZnSytBcjRDdmdLK0FyNENDQWtLQ3d3TnZnSytBcjRDdmdLK0FyNEN2Z0srQXI0Q3ZnSytBcjRDdmdLK0FyNEN2Z0srQXI0Q3ZnSytBcjRDdmdLK0FyNEN2Z0srQWc0UEVCRVNFNzRDQzBJQ0lRb012d0lMUWdNaENneStBZ3RDQkNFS0RMMENDMElGSVFvTXZBSUxRZ1loQ2d5N0FndENCeUVLRExvQ0MwSUlJUW9NdVFJTFFna2hDZ3k0QWd0Q0NpRUtETGNDQzBJTElRb010Z0lMUWd3aENneTFBZ3RDRFNFS0RMUUNDMElPSVFvTXN3SUxRZzhoQ2d5eUFndENDaUVLRExFQ0MwSUxJUW9Nc0FJTFFnd2hDZ3l2QWd0Q0RTRUtESzRDQzBJT0lRb01yUUlMUWc4aENneXNBZ3NnQWlBQ0tRTWdJZ29nQkNBQmE2MGlDMzBpREVJQUlBb2dERm9iTndNZ0lBb2dDMWdOcHdKQkh5RURESWtEQ3lBQklBUkhCRUFnQWtFSk5nSUlJQUlnQVRZQ0JFRWxJUU1NOEFJTFFTQWhBd3lJQXd0QkFTRUZJQUl2QVRBaUEwRUljVVVFUUNBQ0tRTWdRZ0JTSVFVTEFrQWdBaTBBTGdSQVFRRWhBQ0FDTFFBcFFRVkdEUUVnQTBIQUFIRkZJQVZ4UlEwQkMwRUFJUUFnQTBIQUFIRU5BRUVDSVFBZ0EwRUljUTBBSUFOQmdBUnhCRUFDUUNBQ0xRQW9RUUZIRFFBZ0FpMEFMVUVLY1EwQVFRVWhBQXdDQzBFRUlRQU1BUXNnQTBFZ2NVVUVRQUpBSUFJdEFDaEJBVVlOQUNBQ0x3RXlJZ0JCNUFCclFlUUFTUTBBSUFCQnpBRkdEUUFnQUVHd0FrWU5BRUVFSVFBZ0EwRW9jVVVOQWlBRFFZZ0VjVUdBQkVZTkFndEJBQ0VBREFFTFFRQkJBeUFDS1FNZ1VCc2hBQXNnQUVFQmF3NEZ2Z0lBc0FFQnBBS2hBZ3RCRVNFRERPMENDeUFDUVFFNkFDOE1oQU1MSUFFZ0JFY05uUUpCSkNFRERJUURDeUFCSUFSSERSeEJ4Z0FoQXd5REF3dEJBQ0VBQWtBZ0FpZ0NPQ0lEUlEwQUlBTW9Ba1FpQTBVTkFDQUNJQU1SQUFBaEFBc2dBRVVOSnlBQVFSVkhEWmdDSUFKQjBBQTJBaHdnQWlBQk5nSVVJQUpCa1JnMkFoQWdBa0VWTmdJTVFRQWhBd3lDQXdzZ0FTQUVSZ1JBUVNnaEF3eUNBd3RCQUNFRElBSkJBRFlDQkNBQ1FRdzJBZ2dnQWlBQklBRVFLaUlBUlEyVUFpQUNRU2MyQWh3Z0FpQUJOZ0lVSUFJZ0FEWUNEQXlCQXdzZ0FTQUVSZ1JBUVNraEF3eUJBd3NnQVMwQUFDSUFRU0JHRFJNZ0FFRUpSdzJWQWlBQlFRRnFJUUVNRkFzZ0FTQUVSd1JBSUFGQkFXb2hBUXdXQzBFcUlRTU0vd0lMSUFFZ0JFWUVRRUVySVFNTS93SUxJQUV0QUFBaUFFRUpSeUFBUVNCSGNRMlFBaUFDTFFBc1FRaEhEZDBDSUFKQkFEb0FMQXpkQWdzZ0FTQUVSZ1JBUVN3aEF3eitBZ3NnQVMwQUFFRUtSdzJPQWlBQlFRRnFJUUVNc0FFTElBRWdCRWNOaWdKQkx5RUREUHdDQ3dOQUlBRXRBQUFpQUVFZ1J3UkFJQUJCQ21zT0JJUUNpQUtJQW9RQ2hnSUxJQVFnQVVFQmFpSUJSdzBBQzBFeElRTU0rd0lMUVRJaEF5QUJJQVJHRGZvQ0lBSW9BZ0FpQUNBRUlBRnJhaUVISUFFZ0FHdEJBMm9oQmdKQUEwQWdBRUh3TzJvdEFBQWdBUzBBQUNJRlFTQnlJQVVnQlVIQkFHdEIvd0Z4UVJwSkcwSC9BWEZIRFFFZ0FFRURSZ1JBUVFZaEFRemlBZ3NnQUVFQmFpRUFJQVFnQVVFQmFpSUJSdzBBQ3lBQ0lBYzJBZ0FNK3dJTElBSkJBRFlDQUF5R0FndEJNeUVESUFRZ0FTSUFSZzM1QWlBRUlBRnJJQUlvQWdBaUFXb2hCeUFBSUFGclFRaHFJUVlDUUFOQUlBRkI5RHRxTFFBQUlBQXRBQUFpQlVFZ2NpQUZJQVZCd1FCclFmOEJjVUVhU1J0Qi93RnhSdzBCSUFGQkNFWUVRRUVGSVFFTTRRSUxJQUZCQVdvaEFTQUVJQUJCQVdvaUFFY05BQXNnQWlBSE5nSUFEUG9DQ3lBQ1FRQTJBZ0FnQUNFQkRJVUNDMEUwSVFNZ0JDQUJJZ0JHRGZnQ0lBUWdBV3NnQWlnQ0FDSUJhaUVISUFBZ0FXdEJCV29oQmdKQUEwQWdBVUhRd2dCcUxRQUFJQUF0QUFBaUJVRWdjaUFGSUFWQndRQnJRZjhCY1VFYVNSdEIvd0Z4UncwQklBRkJCVVlFUUVFSElRRU00QUlMSUFGQkFXb2hBU0FFSUFCQkFXb2lBRWNOQUFzZ0FpQUhOZ0lBRFBrQ0N5QUNRUUEyQWdBZ0FDRUJESVFDQ3lBQklBUkhCRUFEUUNBQkxRQUFRWUErYWkwQUFDSUFRUUZIQkVBZ0FFRUNSZzBKRElFQ0N5QUVJQUZCQVdvaUFVY05BQXRCTUNFRERQZ0NDMEV3SVFNTTl3SUxJQUVnQkVjRVFBTkFJQUV0QUFBaUFFRWdSd1JBSUFCQkNtc09CUDhCL2dIK0FmOEIvZ0VMSUFRZ0FVRUJhaUlCUncwQUMwRTRJUU1NOXdJTFFUZ2hBd3oyQWdzRFFDQUJMUUFBSWdCQklFY2dBRUVKUjNFTjlnRWdCQ0FCUVFGcUlnRkhEUUFMUVR3aEF3ejFBZ3NEUUNBQkxRQUFJZ0JCSUVjRVFBSkFJQUJCQ21zT0JQa0JCQVQ1QVFBTElBQkJMRVlOOVFFTUF3c2dCQ0FCUVFGcUlnRkhEUUFMUVQ4aEF3ejBBZ3RCd0FBaEF5QUJJQVJHRGZNQ0lBSW9BZ0FpQUNBRUlBRnJhaUVGSUFFZ0FHdEJCbW9oQmdKQUEwQWdBRUdBUUdzdEFBQWdBUzBBQUVFZ2NrY05BU0FBUVFaR0Rkc0NJQUJCQVdvaEFDQUVJQUZCQVdvaUFVY05BQXNnQWlBRk5nSUFEUFFDQ3lBQ1FRQTJBZ0FMUVRZaEF3elpBZ3NnQVNBRVJnUkFRY0VBSVFNTThnSUxJQUpCRERZQ0NDQUNJQUUyQWdRZ0FpMEFMRUVCYXc0RSt3SHVBZXdCNndIVUFnc2dBVUVCYWlFQkRQb0JDeUFCSUFSSEJFQURRQUpBSUFFdEFBQWlBRUVnY2lBQUlBQkJ3UUJyUWY4QmNVRWFTUnRCL3dGeElnQkJDVVlOQUNBQVFTQkdEUUFDUUFKQUFrQUNRQ0FBUWVNQWF3NFRBQU1EQXdNREF3TUJBd01EQXdNREF3TURBZ01MSUFGQkFXb2hBVUV4SVFNTTNBSUxJQUZCQVdvaEFVRXlJUU1NMndJTElBRkJBV29oQVVFeklRTU0yZ0lMRFA0QkN5QUVJQUZCQVdvaUFVY05BQXRCTlNFRERQQUNDMEUxSVFNTTd3SUxJQUVnQkVjRVFBTkFJQUV0QUFCQmdEeHFMUUFBUVFGSERmY0JJQVFnQVVFQmFpSUJSdzBBQzBFOUlRTU03d0lMUVQwaEF3enVBZ3RCQUNFQUFrQWdBaWdDT0NJRFJRMEFJQU1vQWtBaUEwVU5BQ0FDSUFNUkFBQWhBQXNnQUVVTkFTQUFRUlZIRGVZQklBSkJ3Z0EyQWh3Z0FpQUJOZ0lVSUFKQjR4ZzJBaEFnQWtFVk5nSU1RUUFoQXd6dEFnc2dBVUVCYWlFQkMwRThJUU1NMGdJTElBRWdCRVlFUUVIQ0FDRURET3NDQ3dKQUEwQUNRQ0FCTFFBQVFRbHJEaGdBQXN3Q3pBTFJBc3dDekFMTUFzd0N6QUxNQXN3Q3pBTE1Bc3dDekFMTUFzd0N6QUxNQXN3Q3pBTE1BZ0RNQWdzZ0JDQUJRUUZxSWdGSERRQUxRY0lBSVFNTTZ3SUxJQUZCQVdvaEFTQUNMUUF0UVFGeFJRMytBUXRCTENFREROQUNDeUFCSUFSSERkNEJRY1FBSVFNTTZBSUxBMEFnQVMwQUFFR1F3QUJxTFFBQVFRRkhEWndCSUFRZ0FVRUJhaUlCUncwQUMwSEZBQ0VERE9jQ0N5QUJMUUFBSWdCQklFWU4vZ0VnQUVFNlJ3M0FBaUFDS0FJRUlRQkJBQ0VESUFKQkFEWUNCQ0FDSUFBZ0FSQXBJZ0FOM2dFTTNRRUxRY2NBSVFNZ0JDQUJJZ0JHRGVVQ0lBUWdBV3NnQWlnQ0FDSUJhaUVISUFBZ0FXdEJCV29oQmdOQUlBRkJrTUlBYWkwQUFDQUFMUUFBSWdWQklISWdCU0FGUWNFQWEwSC9BWEZCR2trYlFmOEJjVWNOdndJZ0FVRUZSZzNDQWlBQlFRRnFJUUVnQkNBQVFRRnFJZ0JIRFFBTElBSWdCellDQUF6bEFndEJ5QUFoQXlBRUlBRWlBRVlONUFJZ0JDQUJheUFDS0FJQUlnRnFJUWNnQUNBQmEwRUphaUVHQTBBZ0FVR1d3Z0JxTFFBQUlBQXRBQUFpQlVFZ2NpQUZJQVZCd1FCclFmOEJjVUVhU1J0Qi93RnhSdzIrQWtFQ0lBRkJDVVlOd2dJYUlBRkJBV29oQVNBRUlBQkJBV29pQUVjTkFBc2dBaUFITmdJQURPUUNDeUFCSUFSR0JFQkJ5UUFoQXd6a0Fnc0NRQUpBSUFFdEFBQWlBRUVnY2lBQUlBQkJ3UUJyUWY4QmNVRWFTUnRCL3dGeFFlNEFhdzRIQUw4Q3Z3Sy9BcjhDdndJQnZ3SUxJQUZCQVdvaEFVRStJUU1NeXdJTElBRkJBV29oQVVFL0lRTU15Z0lMUWNvQUlRTWdCQ0FCSWdCR0RlSUNJQVFnQVdzZ0FpZ0NBQ0lCYWlFR0lBQWdBV3RCQVdvaEJ3TkFJQUZCb01JQWFpMEFBQ0FBTFFBQUlnVkJJSElnQlNBRlFjRUFhMEgvQVhGQkdra2JRZjhCY1VjTnZBSWdBVUVCUmcyK0FpQUJRUUZxSVFFZ0JDQUFRUUZxSWdCSERRQUxJQUlnQmpZQ0FBemlBZ3RCeXdBaEF5QUVJQUVpQUVZTjRRSWdCQ0FCYXlBQ0tBSUFJZ0ZxSVFjZ0FDQUJhMEVPYWlFR0EwQWdBVUdpd2dCcUxRQUFJQUF0QUFBaUJVRWdjaUFGSUFWQndRQnJRZjhCY1VFYVNSdEIvd0Z4UncyN0FpQUJRUTVHRGI0Q0lBRkJBV29oQVNBRUlBQkJBV29pQUVjTkFBc2dBaUFITmdJQURPRUNDMEhNQUNFRElBUWdBU0lBUmczZ0FpQUVJQUZySUFJb0FnQWlBV29oQnlBQUlBRnJRUTlxSVFZRFFDQUJRY0RDQUdvdEFBQWdBQzBBQUNJRlFTQnlJQVVnQlVIQkFHdEIvd0Z4UVJwSkcwSC9BWEZIRGJvQ1FRTWdBVUVQUmcyK0Fob2dBVUVCYWlFQklBUWdBRUVCYWlJQVJ3MEFDeUFDSUFjMkFnQU00QUlMUWMwQUlRTWdCQ0FCSWdCR0RkOENJQVFnQVdzZ0FpZ0NBQ0lCYWlFSElBQWdBV3RCQldvaEJnTkFJQUZCME1JQWFpMEFBQ0FBTFFBQUlnVkJJSElnQlNBRlFjRUFhMEgvQVhGQkdra2JRZjhCY1VjTnVRSkJCQ0FCUVFWR0RiMENHaUFCUVFGcUlRRWdCQ0FBUVFGcUlnQkhEUUFMSUFJZ0J6WUNBQXpmQWdzZ0FTQUVSZ1JBUWM0QUlRTU0zd0lMQWtBQ1FBSkFBa0FnQVMwQUFDSUFRU0J5SUFBZ0FFSEJBR3RCL3dGeFFScEpHMEgvQVhGQjR3QnJEaE1BdkFLOEFyd0N2QUs4QXJ3Q3ZBSzhBcndDdkFLOEFyd0NBYndDdkFLOEFnSUR2QUlMSUFGQkFXb2hBVUhCQUNFRERNZ0NDeUFCUVFGcUlRRkJ3Z0FoQXd6SEFnc2dBVUVCYWlFQlFjTUFJUU1NeGdJTElBRkJBV29oQVVIRUFDRURETVVDQ3lBQklBUkhCRUFnQWtFTk5nSUlJQUlnQVRZQ0JFSEZBQ0VERE1VQ0MwSFBBQ0VERE4wQ0N3SkFBa0FnQVMwQUFFRUthdzRFQVpBQmtBRUFrQUVMSUFGQkFXb2hBUXRCS0NFRERNTUNDeUFCSUFSR0JFQkIwUUFoQXd6Y0Fnc2dBUzBBQUVFZ1J3MEFJQUZCQVdvaEFTQUNMUUF0UVFGeFJRM1FBUXRCRnlFRERNRUNDeUFCSUFSSERjc0JRZElBSVFNTTJRSUxRZE1BSVFNZ0FTQUVSZzNZQWlBQ0tBSUFJZ0FnQkNBQmEyb2hCaUFCSUFCclFRRnFJUVVEUUNBQkxRQUFJQUJCMXNJQWFpMEFBRWNOeHdFZ0FFRUJSZzNLQVNBQVFRRnFJUUFnQkNBQlFRRnFJZ0ZIRFFBTElBSWdCallDQUF6WUFnc2dBU0FFUmdSQVFkVUFJUU1NMkFJTElBRXRBQUJCQ2tjTndnRWdBVUVCYWlFQkRNb0JDeUFCSUFSR0JFQkIxZ0FoQXd6WEFnc0NRQUpBSUFFdEFBQkJDbXNPQkFEREFjTUJBY01CQ3lBQlFRRnFJUUVNeWdFTElBRkJBV29oQVVIS0FDRURETDBDQzBFQUlRQUNRQ0FDS0FJNElnTkZEUUFnQXlnQ1BDSURSUTBBSUFJZ0F4RUFBQ0VBQ3lBQURiOEJRYzBBSVFNTXZBSUxJQUl0QUNsQklrWU56d0lNaVFFTElBUWdBU0lGUmdSQVFkc0FJUU1NMUFJTFFRQWhBRUVCSVFGQkFTRUdRUUFoQXdKQUFuOENRQUpBQWtBQ1FBSkFBa0FDUUNBRkxRQUFRVEJyRGdyRkFjUUJBQUVDQXdRRkJnakRBUXRCQWd3R0MwRUREQVVMUVFRTUJBdEJCUXdEQzBFR0RBSUxRUWNNQVF0QkNBc2hBMEVBSVFGQkFDRUdETDBCQzBFSklRTkJBU0VBUVFBaEFVRUFJUVlNdkFFTElBRWdCRVlFUUVIZEFDRURETk1DQ3lBQkxRQUFRUzVIRGJnQklBRkJBV29oQVF5SUFRc2dBU0FFUncyMkFVSGZBQ0VERE5FQ0N5QUJJQVJIQkVBZ0FrRU9OZ0lJSUFJZ0FUWUNCRUhRQUNFRERMZ0NDMEhnQUNFREROQUNDMEhoQUNFRElBRWdCRVlOendJZ0FpZ0NBQ0lBSUFRZ0FXdHFJUVVnQVNBQWEwRURhaUVHQTBBZ0FTMEFBQ0FBUWVMQ0FHb3RBQUJIRGJFQklBQkJBMFlOc3dFZ0FFRUJhaUVBSUFRZ0FVRUJhaUlCUncwQUN5QUNJQVUyQWdBTXp3SUxRZUlBSVFNZ0FTQUVSZzNPQWlBQ0tBSUFJZ0FnQkNBQmEyb2hCU0FCSUFCclFRSnFJUVlEUUNBQkxRQUFJQUJCNXNJQWFpMEFBRWNOc0FFZ0FFRUNSZzJ2QVNBQVFRRnFJUUFnQkNBQlFRRnFJZ0ZIRFFBTElBSWdCVFlDQUF6T0FndEI0d0FoQXlBQklBUkdEYzBDSUFJb0FnQWlBQ0FFSUFGcmFpRUZJQUVnQUd0QkEyb2hCZ05BSUFFdEFBQWdBRUhwd2dCcUxRQUFSdzJ2QVNBQVFRTkdEYTBCSUFCQkFXb2hBQ0FFSUFGQkFXb2lBVWNOQUFzZ0FpQUZOZ0lBRE0wQ0N5QUJJQVJHQkVCQjVRQWhBd3pOQWdzZ0FVRUJhaUVCUVFBaEFBSkFJQUlvQWpnaUEwVU5BQ0FES0FJd0lnTkZEUUFnQWlBREVRQUFJUUFMSUFBTnFnRkIxZ0FoQXd5ekFnc2dBU0FFUndSQUEwQWdBUzBBQUNJQVFTQkhCRUFDUUFKQUFrQWdBRUhJQUdzT0N3QUJzd0d6QWJNQnN3R3pBYk1Cc3dHekFRS3pBUXNnQVVFQmFpRUJRZElBSVFNTXR3SUxJQUZCQVdvaEFVSFRBQ0VERExZQ0N5QUJRUUZxSVFGQjFBQWhBd3kxQWdzZ0JDQUJRUUZxSWdGSERRQUxRZVFBSVFNTXpBSUxRZVFBSVFNTXl3SUxBMEFnQVMwQUFFSHd3Z0JxTFFBQUlnQkJBVWNFUUNBQVFRSnJEZ09uQWFZQnBRR2tBUXNnQkNBQlFRRnFJZ0ZIRFFBTFFlWUFJUU1NeWdJTElBRkJBV29nQVNBRVJ3MENHa0huQUNFRERNa0NDd05BSUFFdEFBQkI4TVFBYWkwQUFDSUFRUUZIQkVBQ1FDQUFRUUpyRGdTaUFhRUJvQUVBbndFTFFkY0FJUU1Nc1FJTElBUWdBVUVCYWlJQlJ3MEFDMEhvQUNFRERNZ0NDeUFCSUFSR0JFQkI2UUFoQXd6SUFnc0NRQ0FCTFFBQUlnQkJDbXNPR3JjQm13R2JBYlFCbXdHYkFac0Jtd0diQVpzQm13R2JBWnNCbXdHYkFac0Jtd0diQVpzQm13R2JBWnNCcEFHYkFac0JBSmtCQ3lBQlFRRnFDeUVCUVFZaEF3eXRBZ3NEUUNBQkxRQUFRZkRHQUdvdEFBQkJBVWNOZlNBRUlBRkJBV29pQVVjTkFBdEI2Z0FoQXd6RkFnc2dBVUVCYWlBQklBUkhEUUlhUWVzQUlRTU14QUlMSUFFZ0JFWUVRRUhzQUNFRERNUUNDeUFCUVFGcURBRUxJQUVnQkVZRVFFSHRBQ0VERE1NQ0N5QUJRUUZxQ3lFQlFRUWhBd3lvQWdzZ0FTQUVSZ1JBUWU0QUlRTU13UUlMQWtBQ1FBSkFJQUV0QUFCQjhNZ0FhaTBBQUVFQmF3NEhrQUdQQVk0QkFId0JBbzBCQ3lBQlFRRnFJUUVNQ3dzZ0FVRUJhZ3lUQVF0QkFDRURJQUpCQURZQ0hDQUNRWnNTTmdJUUlBSkJCellDRENBQ0lBRkJBV28yQWhRTXdBSUxBa0FEUUNBQkxRQUFRZkRJQUdvdEFBQWlBRUVFUndSQUFrQUNRQ0FBUVFGckRnZVVBWk1Ca2dHTkFRQUVBWTBCQzBIYUFDRURES29DQ3lBQlFRRnFJUUZCM0FBaEF3eXBBZ3NnQkNBQlFRRnFJZ0ZIRFFBTFFlOEFJUU1Nd0FJTElBRkJBV29Na1FFTElBUWdBU0lBUmdSQVFmQUFJUU1NdndJTElBQXRBQUJCTDBjTkFTQUFRUUZxSVFFTUJ3c2dCQ0FCSWdCR0JFQkI4UUFoQXd5K0Fnc2dBQzBBQUNJQlFTOUdCRUFnQUVFQmFpRUJRZDBBSVFNTXBRSUxJQUZCQ21zaUEwRVdTdzBBSUFBaEFVRUJJQU4wUVltQWdBSnhEZmtCQzBFQUlRTWdBa0VBTmdJY0lBSWdBRFlDRkNBQ1FZd2NOZ0lRSUFKQkJ6WUNEQXk4QWdzZ0FTQUVSd1JBSUFGQkFXb2hBVUhlQUNFRERLTUNDMEh5QUNFRERMc0NDeUFCSUFSR0JFQkI5QUFoQXd5N0Fnc0NRQ0FCTFFBQVFmRE1BR290QUFCQkFXc09BL2NCY3dDQ0FRdEI0UUFoQXd5aEFnc2dBU0FFUndSQUEwQWdBUzBBQUVId3lnQnFMUUFBSWdCQkEwY0VRQUpBSUFCQkFXc09BdmtCQUlVQkMwSGZBQ0VEREtNQ0N5QUVJQUZCQVdvaUFVY05BQXRCOHdBaEF3eTZBZ3RCOHdBaEF3eTVBZ3NnQVNBRVJ3UkFJQUpCRHpZQ0NDQUNJQUUyQWdSQjRBQWhBd3lnQWd0QjlRQWhBd3k0QWdzZ0FTQUVSZ1JBUWZZQUlRTU11QUlMSUFKQkR6WUNDQ0FDSUFFMkFnUUxRUU1oQXd5ZEFnc0RRQ0FCTFFBQVFTQkhEWTRDSUFRZ0FVRUJhaUlCUncwQUMwSDNBQ0VERExVQ0N5QUJJQVJHQkVCQitBQWhBd3kxQWdzZ0FTMEFBRUVnUncxNklBRkJBV29oQVF4YkMwRUFJUUFDUUNBQ0tBSTRJZ05GRFFBZ0F5Z0NPQ0lEUlEwQUlBSWdBeEVBQUNFQUN5QUFEWGdNZ0FJTElBRWdCRVlFUUVINkFDRURETE1DQ3lBQkxRQUFRY3dBUncxMElBRkJBV29oQVVFVERIWUxRZnNBSVFNZ0FTQUVSZzJ4QWlBQ0tBSUFJZ0FnQkNBQmEyb2hCU0FCSUFCclFRVnFJUVlEUUNBQkxRQUFJQUJCOE00QWFpMEFBRWNOY3lBQVFRVkdEWFVnQUVFQmFpRUFJQVFnQVVFQmFpSUJSdzBBQ3lBQ0lBVTJBZ0FNc1FJTElBRWdCRVlFUUVIOEFDRURETEVDQ3dKQUFrQWdBUzBBQUVIREFHc09EQUIwZEhSMGRIUjBkSFIwQVhRTElBRkJBV29oQVVIbUFDRURESmdDQ3lBQlFRRnFJUUZCNXdBaEF3eVhBZ3RCL1FBaEF5QUJJQVJHRGE4Q0lBSW9BZ0FpQUNBRUlBRnJhaUVGSUFFZ0FHdEJBbW9oQmdKQUEwQWdBUzBBQUNBQVFlM1BBR290QUFCSERYSWdBRUVDUmcwQklBQkJBV29oQUNBRUlBRkJBV29pQVVjTkFBc2dBaUFGTmdJQURMQUNDeUFDUVFBMkFnQWdCa0VCYWlFQlFSQU1jd3RCL2dBaEF5QUJJQVJHRGE0Q0lBSW9BZ0FpQUNBRUlBRnJhaUVGSUFFZ0FHdEJCV29oQmdKQUEwQWdBUzBBQUNBQVFmYk9BR290QUFCSERYRWdBRUVGUmcwQklBQkJBV29oQUNBRUlBRkJBV29pQVVjTkFBc2dBaUFGTmdJQURLOENDeUFDUVFBMkFnQWdCa0VCYWlFQlFSWU1jZ3RCL3dBaEF5QUJJQVJHRGEwQ0lBSW9BZ0FpQUNBRUlBRnJhaUVGSUFFZ0FHdEJBMm9oQmdKQUEwQWdBUzBBQUNBQVFmek9BR290QUFCSERYQWdBRUVEUmcwQklBQkJBV29oQUNBRUlBRkJBV29pQVVjTkFBc2dBaUFGTmdJQURLNENDeUFDUVFBMkFnQWdCa0VCYWlFQlFRVU1jUXNnQVNBRVJnUkFRWUFCSVFNTXJRSUxJQUV0QUFCQjJRQkhEVzRnQVVFQmFpRUJRUWdNY0FzZ0FTQUVSZ1JBUVlFQklRTU1yQUlMQWtBQ1FDQUJMUUFBUWM0QWF3NERBRzhCYndzZ0FVRUJhaUVCUWVzQUlRTU1rd0lMSUFGQkFXb2hBVUhzQUNFRERKSUNDeUFCSUFSR0JFQkJnZ0VoQXd5ckFnc0NRQUpBSUFFdEFBQkJ5QUJyRGdnQWJtNXVibTV1QVc0TElBRkJBV29oQVVIcUFDRURESklDQ3lBQlFRRnFJUUZCN1FBaEF3eVJBZ3RCZ3dFaEF5QUJJQVJHRGFrQ0lBSW9BZ0FpQUNBRUlBRnJhaUVGSUFFZ0FHdEJBbW9oQmdKQUEwQWdBUzBBQUNBQVFZRFBBR290QUFCSERXd2dBRUVDUmcwQklBQkJBV29oQUNBRUlBRkJBV29pQVVjTkFBc2dBaUFGTmdJQURLb0NDeUFDUVFBMkFnQWdCa0VCYWlFQlFRQU1iUXRCaEFFaEF5QUJJQVJHRGFnQ0lBSW9BZ0FpQUNBRUlBRnJhaUVGSUFFZ0FHdEJCR29oQmdKQUEwQWdBUzBBQUNBQVFZUFBBR290QUFCSERXc2dBRUVFUmcwQklBQkJBV29oQUNBRUlBRkJBV29pQVVjTkFBc2dBaUFGTmdJQURLa0NDeUFDUVFBMkFnQWdCa0VCYWlFQlFTTU1iQXNnQVNBRVJnUkFRWVVCSVFNTXFBSUxBa0FDUUNBQkxRQUFRY3dBYXc0SUFHdHJhMnRyYXdGckN5QUJRUUZxSVFGQjd3QWhBd3lQQWdzZ0FVRUJhaUVCUWZBQUlRTU1qZ0lMSUFFZ0JFWUVRRUdHQVNFRERLY0NDeUFCTFFBQVFjVUFSdzFvSUFGQkFXb2hBUXhnQzBHSEFTRURJQUVnQkVZTnBRSWdBaWdDQUNJQUlBUWdBV3RxSVFVZ0FTQUFhMEVEYWlFR0FrQURRQ0FCTFFBQUlBQkJpTThBYWkwQUFFY05hQ0FBUVFOR0RRRWdBRUVCYWlFQUlBUWdBVUVCYWlJQlJ3MEFDeUFDSUFVMkFnQU1wZ0lMSUFKQkFEWUNBQ0FHUVFGcUlRRkJMUXhwQzBHSUFTRURJQUVnQkVZTnBBSWdBaWdDQUNJQUlBUWdBV3RxSVFVZ0FTQUFhMEVJYWlFR0FrQURRQ0FCTFFBQUlBQkIwTThBYWkwQUFFY05aeUFBUVFoR0RRRWdBRUVCYWlFQUlBUWdBVUVCYWlJQlJ3MEFDeUFDSUFVMkFnQU1wUUlMSUFKQkFEWUNBQ0FHUVFGcUlRRkJLUXhvQ3lBQklBUkdCRUJCaVFFaEF3eWtBZ3RCQVNBQkxRQUFRZDhBUncxbkdpQUJRUUZxSVFFTVhndEJpZ0VoQXlBQklBUkdEYUlDSUFJb0FnQWlBQ0FFSUFGcmFpRUZJQUVnQUd0QkFXb2hCZ05BSUFFdEFBQWdBRUdNendCcUxRQUFSdzFrSUFCQkFVWU4rZ0VnQUVFQmFpRUFJQVFnQVVFQmFpSUJSdzBBQ3lBQ0lBVTJBZ0FNb2dJTFFZc0JJUU1nQVNBRVJnMmhBaUFDS0FJQUlnQWdCQ0FCYTJvaEJTQUJJQUJyUVFKcUlRWUNRQU5BSUFFdEFBQWdBRUdPendCcUxRQUFSdzFrSUFCQkFrWU5BU0FBUVFGcUlRQWdCQ0FCUVFGcUlnRkhEUUFMSUFJZ0JUWUNBQXlpQWdzZ0FrRUFOZ0lBSUFaQkFXb2hBVUVDREdVTFFZd0JJUU1nQVNBRVJnMmdBaUFDS0FJQUlnQWdCQ0FCYTJvaEJTQUJJQUJyUVFGcUlRWUNRQU5BSUFFdEFBQWdBRUh3endCcUxRQUFSdzFqSUFCQkFVWU5BU0FBUVFGcUlRQWdCQ0FCUVFGcUlnRkhEUUFMSUFJZ0JUWUNBQXloQWdzZ0FrRUFOZ0lBSUFaQkFXb2hBVUVmREdRTFFZMEJJUU1nQVNBRVJnMmZBaUFDS0FJQUlnQWdCQ0FCYTJvaEJTQUJJQUJyUVFGcUlRWUNRQU5BSUFFdEFBQWdBRUh5endCcUxRQUFSdzFpSUFCQkFVWU5BU0FBUVFGcUlRQWdCQ0FCUVFGcUlnRkhEUUFMSUFJZ0JUWUNBQXlnQWdzZ0FrRUFOZ0lBSUFaQkFXb2hBVUVKREdNTElBRWdCRVlFUUVHT0FTRURESjhDQ3dKQUFrQWdBUzBBQUVISkFHc09Cd0JpWW1KaVlnRmlDeUFCUVFGcUlRRkIrQUFoQXd5R0Fnc2dBVUVCYWlFQlFma0FJUU1NaFFJTFFZOEJJUU1nQVNBRVJnMmRBaUFDS0FJQUlnQWdCQ0FCYTJvaEJTQUJJQUJyUVFWcUlRWUNRQU5BSUFFdEFBQWdBRUdSendCcUxRQUFSdzFnSUFCQkJVWU5BU0FBUVFGcUlRQWdCQ0FCUVFGcUlnRkhEUUFMSUFJZ0JUWUNBQXllQWdzZ0FrRUFOZ0lBSUFaQkFXb2hBVUVZREdFTFFaQUJJUU1nQVNBRVJnMmNBaUFDS0FJQUlnQWdCQ0FCYTJvaEJTQUJJQUJyUVFKcUlRWUNRQU5BSUFFdEFBQWdBRUdYendCcUxRQUFSdzFmSUFCQkFrWU5BU0FBUVFGcUlRQWdCQ0FCUVFGcUlnRkhEUUFMSUFJZ0JUWUNBQXlkQWdzZ0FrRUFOZ0lBSUFaQkFXb2hBVUVYREdBTFFaRUJJUU1nQVNBRVJnMmJBaUFDS0FJQUlnQWdCQ0FCYTJvaEJTQUJJQUJyUVFacUlRWUNRQU5BSUFFdEFBQWdBRUdhendCcUxRQUFSdzFlSUFCQkJrWU5BU0FBUVFGcUlRQWdCQ0FCUVFGcUlnRkhEUUFMSUFJZ0JUWUNBQXljQWdzZ0FrRUFOZ0lBSUFaQkFXb2hBVUVWREY4TFFaSUJJUU1nQVNBRVJnMmFBaUFDS0FJQUlnQWdCQ0FCYTJvaEJTQUJJQUJyUVFWcUlRWUNRQU5BSUFFdEFBQWdBRUdoendCcUxRQUFSdzFkSUFCQkJVWU5BU0FBUVFGcUlRQWdCQ0FCUVFGcUlnRkhEUUFMSUFJZ0JUWUNBQXliQWdzZ0FrRUFOZ0lBSUFaQkFXb2hBVUVlREY0TElBRWdCRVlFUUVHVEFTRURESm9DQ3lBQkxRQUFRY3dBUncxYklBRkJBV29oQVVFS0RGMExJQUVnQkVZRVFFR1VBU0VEREprQ0N3SkFBa0FnQVMwQUFFSEJBR3NPRHdCY1hGeGNYRnhjWEZ4Y1hGeGNBVndMSUFGQkFXb2hBVUgrQUNFRERJQUNDeUFCUVFGcUlRRkIvd0FoQXd6L0FRc2dBU0FFUmdSQVFaVUJJUU1NbUFJTEFrQUNRQ0FCTFFBQVFjRUFhdzREQUZzQld3c2dBVUVCYWlFQlFmMEFJUU1NL3dFTElBRkJBV29oQVVHQUFTRUREUDRCQzBHV0FTRURJQUVnQkVZTmxnSWdBaWdDQUNJQUlBUWdBV3RxSVFVZ0FTQUFhMEVCYWlFR0FrQURRQ0FCTFFBQUlBQkJwODhBYWkwQUFFY05XU0FBUVFGR0RRRWdBRUVCYWlFQUlBUWdBVUVCYWlJQlJ3MEFDeUFDSUFVMkFnQU1sd0lMSUFKQkFEWUNBQ0FHUVFGcUlRRkJDd3hhQ3lBQklBUkdCRUJCbHdFaEF3eVdBZ3NDUUFKQUFrQUNRQ0FCTFFBQVFTMXJEaU1BVzF0YlcxdGJXMXRiVzF0YlcxdGJXMXRiVzF0Ylcxc0JXMXRiVzFzQ1cxdGJBMXNMSUFGQkFXb2hBVUg3QUNFRERQOEJDeUFCUVFGcUlRRkIvQUFoQXd6K0FRc2dBVUVCYWlFQlFZRUJJUU1NL1FFTElBRkJBV29oQVVHQ0FTRUREUHdCQzBHWUFTRURJQUVnQkVZTmxBSWdBaWdDQUNJQUlBUWdBV3RxSVFVZ0FTQUFhMEVFYWlFR0FrQURRQ0FCTFFBQUlBQkJxYzhBYWkwQUFFY05WeUFBUVFSR0RRRWdBRUVCYWlFQUlBUWdBVUVCYWlJQlJ3MEFDeUFDSUFVMkFnQU1sUUlMSUFKQkFEWUNBQ0FHUVFGcUlRRkJHUXhZQzBHWkFTRURJQUVnQkVZTmt3SWdBaWdDQUNJQUlBUWdBV3RxSVFVZ0FTQUFhMEVGYWlFR0FrQURRQ0FCTFFBQUlBQkJyczhBYWkwQUFFY05WaUFBUVFWR0RRRWdBRUVCYWlFQUlBUWdBVUVCYWlJQlJ3MEFDeUFDSUFVMkFnQU1sQUlMSUFKQkFEWUNBQ0FHUVFGcUlRRkJCZ3hYQzBHYUFTRURJQUVnQkVZTmtnSWdBaWdDQUNJQUlBUWdBV3RxSVFVZ0FTQUFhMEVCYWlFR0FrQURRQ0FCTFFBQUlBQkJ0TThBYWkwQUFFY05WU0FBUVFGR0RRRWdBRUVCYWlFQUlBUWdBVUVCYWlJQlJ3MEFDeUFDSUFVMkFnQU1rd0lMSUFKQkFEWUNBQ0FHUVFGcUlRRkJIQXhXQzBHYkFTRURJQUVnQkVZTmtRSWdBaWdDQUNJQUlBUWdBV3RxSVFVZ0FTQUFhMEVCYWlFR0FrQURRQ0FCTFFBQUlBQkJ0czhBYWkwQUFFY05WQ0FBUVFGR0RRRWdBRUVCYWlFQUlBUWdBVUVCYWlJQlJ3MEFDeUFDSUFVMkFnQU1rZ0lMSUFKQkFEWUNBQ0FHUVFGcUlRRkJKd3hWQ3lBQklBUkdCRUJCbkFFaEF3eVJBZ3NDUUFKQUlBRXRBQUJCMUFCckRnSUFBVlFMSUFGQkFXb2hBVUdHQVNFRERQZ0JDeUFCUVFGcUlRRkJod0VoQXd6M0FRdEJuUUVoQXlBQklBUkdEWThDSUFJb0FnQWlBQ0FFSUFGcmFpRUZJQUVnQUd0QkFXb2hCZ0pBQTBBZ0FTMEFBQ0FBUWJqUEFHb3RBQUJIRFZJZ0FFRUJSZzBCSUFCQkFXb2hBQ0FFSUFGQkFXb2lBVWNOQUFzZ0FpQUZOZ0lBREpBQ0N5QUNRUUEyQWdBZ0JrRUJhaUVCUVNZTVV3dEJuZ0VoQXlBQklBUkdEWTRDSUFJb0FnQWlBQ0FFSUFGcmFpRUZJQUVnQUd0QkFXb2hCZ0pBQTBBZ0FTMEFBQ0FBUWJyUEFHb3RBQUJIRFZFZ0FFRUJSZzBCSUFCQkFXb2hBQ0FFSUFGQkFXb2lBVWNOQUFzZ0FpQUZOZ0lBREk4Q0N5QUNRUUEyQWdBZ0JrRUJhaUVCUVFNTVVndEJud0VoQXlBQklBUkdEWTBDSUFJb0FnQWlBQ0FFSUFGcmFpRUZJQUVnQUd0QkFtb2hCZ0pBQTBBZ0FTMEFBQ0FBUWUzUEFHb3RBQUJIRFZBZ0FFRUNSZzBCSUFCQkFXb2hBQ0FFSUFGQkFXb2lBVWNOQUFzZ0FpQUZOZ0lBREk0Q0N5QUNRUUEyQWdBZ0JrRUJhaUVCUVF3TVVRdEJvQUVoQXlBQklBUkdEWXdDSUFJb0FnQWlBQ0FFSUFGcmFpRUZJQUVnQUd0QkEyb2hCZ0pBQTBBZ0FTMEFBQ0FBUWJ6UEFHb3RBQUJIRFU4Z0FFRURSZzBCSUFCQkFXb2hBQ0FFSUFGQkFXb2lBVWNOQUFzZ0FpQUZOZ0lBREkwQ0N5QUNRUUEyQWdBZ0JrRUJhaUVCUVEwTVVBc2dBU0FFUmdSQVFhRUJJUU1NakFJTEFrQUNRQ0FCTFFBQVFjWUFhdzRMQUU5UFQwOVBUMDlQVHdGUEN5QUJRUUZxSVFGQml3RWhBd3p6QVFzZ0FVRUJhaUVCUVl3QklRTU04Z0VMSUFFZ0JFWUVRRUdpQVNFRERJc0NDeUFCTFFBQVFkQUFSdzFNSUFGQkFXb2hBUXhHQ3lBQklBUkdCRUJCb3dFaEF3eUtBZ3NDUUFKQUlBRXRBQUJCeVFCckRnY0JUVTFOVFUwQVRRc2dBVUVCYWlFQlFZNEJJUU1NOFFFTElBRkJBV29oQVVFaURFMExRYVFCSVFNZ0FTQUVSZzJJQWlBQ0tBSUFJZ0FnQkNBQmEyb2hCU0FCSUFCclFRRnFJUVlDUUFOQUlBRXRBQUFnQUVIQXp3QnFMUUFBUncxTElBQkJBVVlOQVNBQVFRRnFJUUFnQkNBQlFRRnFJZ0ZIRFFBTElBSWdCVFlDQUF5SkFnc2dBa0VBTmdJQUlBWkJBV29oQVVFZERFd0xJQUVnQkVZRVFFR2xBU0VERElnQ0N3SkFBa0FnQVMwQUFFSFNBR3NPQXdCTEFVc0xJQUZCQVdvaEFVR1FBU0VERE84QkN5QUJRUUZxSVFGQkJBeExDeUFCSUFSR0JFQkJwZ0VoQXd5SEFnc0NRQUpBQWtBQ1FBSkFJQUV0QUFCQndRQnJEaFVBVFUxTlRVMU5UVTFOVFFGTlRRSk5UUU5OVFFSTkN5QUJRUUZxSVFGQmlBRWhBd3p4QVFzZ0FVRUJhaUVCUVlrQklRTU04QUVMSUFGQkFXb2hBVUdLQVNFRERPOEJDeUFCUVFGcUlRRkJqd0VoQXd6dUFRc2dBVUVCYWlFQlFaRUJJUU1NN1FFTFFhY0JJUU1nQVNBRVJnMkZBaUFDS0FJQUlnQWdCQ0FCYTJvaEJTQUJJQUJyUVFKcUlRWUNRQU5BSUFFdEFBQWdBRUh0endCcUxRQUFSdzFJSUFCQkFrWU5BU0FBUVFGcUlRQWdCQ0FCUVFGcUlnRkhEUUFMSUFJZ0JUWUNBQXlHQWdzZ0FrRUFOZ0lBSUFaQkFXb2hBVUVSREVrTFFhZ0JJUU1nQVNBRVJnMkVBaUFDS0FJQUlnQWdCQ0FCYTJvaEJTQUJJQUJyUVFKcUlRWUNRQU5BSUFFdEFBQWdBRUhDendCcUxRQUFSdzFISUFCQkFrWU5BU0FBUVFGcUlRQWdCQ0FCUVFGcUlnRkhEUUFMSUFJZ0JUWUNBQXlGQWdzZ0FrRUFOZ0lBSUFaQkFXb2hBVUVzREVnTFFha0JJUU1nQVNBRVJnMkRBaUFDS0FJQUlnQWdCQ0FCYTJvaEJTQUJJQUJyUVFScUlRWUNRQU5BSUFFdEFBQWdBRUhGendCcUxRQUFSdzFHSUFCQkJFWU5BU0FBUVFGcUlRQWdCQ0FCUVFGcUlnRkhEUUFMSUFJZ0JUWUNBQXlFQWdzZ0FrRUFOZ0lBSUFaQkFXb2hBVUVyREVjTFFhb0JJUU1nQVNBRVJnMkNBaUFDS0FJQUlnQWdCQ0FCYTJvaEJTQUJJQUJyUVFKcUlRWUNRQU5BSUFFdEFBQWdBRUhLendCcUxRQUFSdzFGSUFCQkFrWU5BU0FBUVFGcUlRQWdCQ0FCUVFGcUlnRkhEUUFMSUFJZ0JUWUNBQXlEQWdzZ0FrRUFOZ0lBSUFaQkFXb2hBVUVVREVZTElBRWdCRVlFUUVHckFTRURESUlDQ3dKQUFrQUNRQUpBSUFFdEFBQkJ3Z0JyRGc4QUFRSkhSMGRIUjBkSFIwZEhSd05IQ3lBQlFRRnFJUUZCa3dFaEF3enJBUXNnQVVFQmFpRUJRWlFCSVFNTTZnRUxJQUZCQVdvaEFVR1ZBU0VERE9rQkN5QUJRUUZxSVFGQmxnRWhBd3pvQVFzZ0FTQUVSZ1JBUWF3QklRTU1nUUlMSUFFdEFBQkJ4UUJIRFVJZ0FVRUJhaUVCREQwTFFhMEJJUU1nQVNBRVJnMy9BU0FDS0FJQUlnQWdCQ0FCYTJvaEJTQUJJQUJyUVFKcUlRWUNRQU5BSUFFdEFBQWdBRUhOendCcUxRQUFSdzFDSUFCQkFrWU5BU0FBUVFGcUlRQWdCQ0FCUVFGcUlnRkhEUUFMSUFJZ0JUWUNBQXlBQWdzZ0FrRUFOZ0lBSUFaQkFXb2hBVUVPREVNTElBRWdCRVlFUUVHdUFTRUREUDhCQ3lBQkxRQUFRZEFBUncxQUlBRkJBV29oQVVFbERFSUxRYThCSVFNZ0FTQUVSZzM5QVNBQ0tBSUFJZ0FnQkNBQmEyb2hCU0FCSUFCclFRaHFJUVlDUUFOQUlBRXRBQUFnQUVIUXp3QnFMUUFBUncxQUlBQkJDRVlOQVNBQVFRRnFJUUFnQkNBQlFRRnFJZ0ZIRFFBTElBSWdCVFlDQUF6K0FRc2dBa0VBTmdJQUlBWkJBV29oQVVFcURFRUxJQUVnQkVZRVFFR3dBU0VERFAwQkN3SkFBa0FnQVMwQUFFSFZBR3NPQ3dCQVFFQkFRRUJBUUVBQlFBc2dBVUVCYWlFQlFab0JJUU1NNUFFTElBRkJBV29oQVVHYkFTRURET01CQ3lBQklBUkdCRUJCc1FFaEF3ejhBUXNDUUFKQUlBRXRBQUJCd1FCckRoUUFQejgvUHo4L1B6OC9QejgvUHo4L1B6OC9BVDhMSUFGQkFXb2hBVUdaQVNFRERPTUJDeUFCUVFGcUlRRkJuQUVoQXd6aUFRdEJzZ0VoQXlBQklBUkdEZm9CSUFJb0FnQWlBQ0FFSUFGcmFpRUZJQUVnQUd0QkEyb2hCZ0pBQTBBZ0FTMEFBQ0FBUWRuUEFHb3RBQUJIRFQwZ0FFRURSZzBCSUFCQkFXb2hBQ0FFSUFGQkFXb2lBVWNOQUFzZ0FpQUZOZ0lBRFBzQkN5QUNRUUEyQWdBZ0JrRUJhaUVCUVNFTVBndEJzd0VoQXlBQklBUkdEZmtCSUFJb0FnQWlBQ0FFSUFGcmFpRUZJQUVnQUd0QkJtb2hCZ0pBQTBBZ0FTMEFBQ0FBUWQzUEFHb3RBQUJIRFR3Z0FFRUdSZzBCSUFCQkFXb2hBQ0FFSUFGQkFXb2lBVWNOQUFzZ0FpQUZOZ0lBRFBvQkN5QUNRUUEyQWdBZ0JrRUJhaUVCUVJvTVBRc2dBU0FFUmdSQVFiUUJJUU1NK1FFTEFrQUNRQUpBSUFFdEFBQkJ4UUJyRGhFQVBUMDlQVDA5UFQwOUFUMDlQVDA5QWowTElBRkJBV29oQVVHZEFTRURET0VCQ3lBQlFRRnFJUUZCbmdFaEF3emdBUXNnQVVFQmFpRUJRWjhCSVFNTTN3RUxRYlVCSVFNZ0FTQUVSZzMzQVNBQ0tBSUFJZ0FnQkNBQmEyb2hCU0FCSUFCclFRVnFJUVlDUUFOQUlBRXRBQUFnQUVIa3p3QnFMUUFBUncwNklBQkJCVVlOQVNBQVFRRnFJUUFnQkNBQlFRRnFJZ0ZIRFFBTElBSWdCVFlDQUF6NEFRc2dBa0VBTmdJQUlBWkJBV29oQVVFb0REc0xRYllCSVFNZ0FTQUVSZzMyQVNBQ0tBSUFJZ0FnQkNBQmEyb2hCU0FCSUFCclFRSnFJUVlDUUFOQUlBRXRBQUFnQUVIcXp3QnFMUUFBUncwNUlBQkJBa1lOQVNBQVFRRnFJUUFnQkNBQlFRRnFJZ0ZIRFFBTElBSWdCVFlDQUF6M0FRc2dBa0VBTmdJQUlBWkJBV29oQVVFSEREb0xJQUVnQkVZRVFFRzNBU0VERFBZQkN3SkFBa0FnQVMwQUFFSEZBR3NPRGdBNU9UazVPVGs1T1RrNU9Ua0JPUXNnQVVFQmFpRUJRYUVCSVFNTTNRRUxJQUZCQVdvaEFVR2lBU0VERE53QkMwRzRBU0VESUFFZ0JFWU45QUVnQWlnQ0FDSUFJQVFnQVd0cUlRVWdBU0FBYTBFQ2FpRUdBa0FEUUNBQkxRQUFJQUJCN2M4QWFpMEFBRWNOTnlBQVFRSkdEUUVnQUVFQmFpRUFJQVFnQVVFQmFpSUJSdzBBQ3lBQ0lBVTJBZ0FNOVFFTElBSkJBRFlDQUNBR1FRRnFJUUZCRWd3NEMwRzVBU0VESUFFZ0JFWU44d0VnQWlnQ0FDSUFJQVFnQVd0cUlRVWdBU0FBYTBFQmFpRUdBa0FEUUNBQkxRQUFJQUJCOE04QWFpMEFBRWNOTmlBQVFRRkdEUUVnQUVFQmFpRUFJQVFnQVVFQmFpSUJSdzBBQ3lBQ0lBVTJBZ0FNOUFFTElBSkJBRFlDQUNBR1FRRnFJUUZCSUF3M0MwRzZBU0VESUFFZ0JFWU44Z0VnQWlnQ0FDSUFJQVFnQVd0cUlRVWdBU0FBYTBFQmFpRUdBa0FEUUNBQkxRQUFJQUJCOHM4QWFpMEFBRWNOTlNBQVFRRkdEUUVnQUVFQmFpRUFJQVFnQVVFQmFpSUJSdzBBQ3lBQ0lBVTJBZ0FNOHdFTElBSkJBRFlDQUNBR1FRRnFJUUZCRHd3MkN5QUJJQVJHQkVCQnV3RWhBd3p5QVFzQ1FBSkFJQUV0QUFCQnlRQnJEZ2NBTlRVMU5UVUJOUXNnQVVFQmFpRUJRYVVCSVFNTTJRRUxJQUZCQVdvaEFVR21BU0VERE5nQkMwRzhBU0VESUFFZ0JFWU44QUVnQWlnQ0FDSUFJQVFnQVd0cUlRVWdBU0FBYTBFSGFpRUdBa0FEUUNBQkxRQUFJQUJCOU04QWFpMEFBRWNOTXlBQVFRZEdEUUVnQUVFQmFpRUFJQVFnQVVFQmFpSUJSdzBBQ3lBQ0lBVTJBZ0FNOFFFTElBSkJBRFlDQUNBR1FRRnFJUUZCR3d3MEN5QUJJQVJHQkVCQnZRRWhBd3p3QVFzQ1FBSkFBa0FnQVMwQUFFSENBR3NPRWdBME5EUTBORFEwTkRRQk5EUTBORFEwQWpRTElBRkJBV29oQVVHa0FTRURETmdCQ3lBQlFRRnFJUUZCcHdFaEF3elhBUXNnQVVFQmFpRUJRYWdCSVFNTTFnRUxJQUVnQkVZRVFFRytBU0VERE84QkN5QUJMUUFBUWM0QVJ3MHdJQUZCQVdvaEFRd3NDeUFCSUFSR0JFQkJ2d0VoQXd6dUFRc0NRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUNBQkxRQUFRY0VBYXc0VkFBRUNBejhFQlFZL1B6OEhDQWtLQ3o4TURRNFBQd3NnQVVFQmFpRUJRZWdBSVFNTTR3RUxJQUZCQVdvaEFVSHBBQ0VERE9JQkN5QUJRUUZxSVFGQjdnQWhBd3poQVFzZ0FVRUJhaUVCUWZJQUlRTU00QUVMSUFGQkFXb2hBVUh6QUNFREROOEJDeUFCUVFGcUlRRkI5Z0FoQXd6ZUFRc2dBVUVCYWlFQlFmY0FJUU1NM1FFTElBRkJBV29oQVVINkFDRURETndCQ3lBQlFRRnFJUUZCZ3dFaEF3emJBUXNnQVVFQmFpRUJRWVFCSVFNTTJnRUxJQUZCQVdvaEFVR0ZBU0VERE5rQkN5QUJRUUZxSVFGQmtnRWhBd3pZQVFzZ0FVRUJhaUVCUVpnQklRTU0xd0VMSUFGQkFXb2hBVUdnQVNFREROWUJDeUFCUVFGcUlRRkJvd0VoQXd6VkFRc2dBVUVCYWlFQlFhb0JJUU1NMUFFTElBRWdCRWNFUUNBQ1FSQTJBZ2dnQWlBQk5nSUVRYXNCSVFNTTFBRUxRY0FCSVFNTTdBRUxRUUFoQUFKQUlBSW9BamdpQTBVTkFDQURLQUkwSWdORkRRQWdBaUFERVFBQUlRQUxJQUJGRFY0Z0FFRVZSdzBISUFKQjBRQTJBaHdnQWlBQk5nSVVJQUpCc0JjMkFoQWdBa0VWTmdJTVFRQWhBd3pyQVFzZ0FVRUJhaUFCSUFSSERRZ2FRY0lCSVFNTTZnRUxBMEFDUUNBQkxRQUFRUXByRGdRSUFBQUxBQXNnQkNBQlFRRnFJZ0ZIRFFBTFFjTUJJUU1NNlFFTElBRWdCRWNFUUNBQ1FSRTJBZ2dnQWlBQk5nSUVRUUVoQXd6UUFRdEJ4QUVoQXd6b0FRc2dBU0FFUmdSQVFjVUJJUU1NNkFFTEFrQUNRQ0FCTFFBQVFRcHJEZ1FCS0NnQUtBc2dBVUVCYWd3SkN5QUJRUUZxREFVTElBRWdCRVlFUUVIR0FTRURET2NCQ3dKQUFrQWdBUzBBQUVFS2F3NFhBUXNMQVFzTEN3c0xDd3NMQ3dzTEN3c0xDd3NMQ3dBTEN5QUJRUUZxSVFFTFFiQUJJUU1NelFFTElBRWdCRVlFUUVISUFTRURET1lCQ3lBQkxRQUFRU0JIRFFrZ0FrRUFPd0V5SUFGQkFXb2hBVUd6QVNFRERNd0JDd05BSUFFaEFBSkFJQUVnQkVjRVFDQUJMUUFBUVRCclFmOEJjU0lEUVFwSkRRRU1Kd3RCeHdFaEF3em1BUXNDUUNBQ0x3RXlJZ0ZCbVROTERRQWdBaUFCUVFwc0lnVTdBVElnQlVIKy93TnhJQU5CLy84RGMwc05BQ0FBUVFGcUlRRWdBaUFESUFWcUlnTTdBVElnQTBILy93TnhRZWdIU1EwQkN3dEJBQ0VESUFKQkFEWUNIQ0FDUWNFSk5nSVFJQUpCRFRZQ0RDQUNJQUJCQVdvMkFoUU01QUVMSUFKQkFEWUNIQ0FDSUFFMkFoUWdBa0h3RERZQ0VDQUNRUnMyQWd4QkFDRURET01CQ3lBQ0tBSUVJUUFnQWtFQU5nSUVJQUlnQUNBQkVDWWlBQTBCSUFGQkFXb0xJUUZCclFFaEF3eklBUXNnQWtIQkFUWUNIQ0FDSUFBMkFnd2dBaUFCUVFGcU5nSVVRUUFoQXd6Z0FRc2dBaWdDQkNFQUlBSkJBRFlDQkNBQ0lBQWdBUkFtSWdBTkFTQUJRUUZxQ3lFQlFhNEJJUU1NeFFFTElBSkJ3Z0UyQWh3Z0FpQUFOZ0lNSUFJZ0FVRUJhallDRkVFQUlRTU0zUUVMSUFKQkFEWUNIQ0FDSUFFMkFoUWdBa0dYQ3pZQ0VDQUNRUTAyQWd4QkFDRURETndCQ3lBQ1FRQTJBaHdnQWlBQk5nSVVJQUpCNHhBMkFoQWdBa0VKTmdJTVFRQWhBd3piQVFzZ0FrRUNPZ0FvREt3QkMwRUFJUU1nQWtFQU5nSWNJQUpCcndzMkFoQWdBa0VDTmdJTUlBSWdBVUVCYWpZQ0ZBelpBUXRCQWlFRERMOEJDMEVOSVFNTXZnRUxRU1loQXd5OUFRdEJGU0VEREx3QkMwRVdJUU1NdXdFTFFSZ2hBd3k2QVF0QkhDRURETGtCQzBFZElRTU11QUVMUVNBaEF3eTNBUXRCSVNFRERMWUJDMEVqSVFNTXRRRUxRY1lBSVFNTXRBRUxRUzRoQXd5ekFRdEJQU0VERExJQkMwSExBQ0VERExFQkMwSE9BQ0VERExBQkMwSFlBQ0VEREs4QkMwSFpBQ0VEREs0QkMwSGJBQ0VEREswQkMwSHhBQ0VEREt3QkMwSDBBQ0VEREtzQkMwR05BU0VEREtvQkMwR1hBU0VEREtrQkMwR3BBU0VEREtnQkMwR3ZBU0VEREtjQkMwR3hBU0VEREtZQkN5QUNRUUEyQWdBTFFRQWhBeUFDUVFBMkFod2dBaUFCTmdJVUlBSkI4UnMyQWhBZ0FrRUdOZ0lNREwwQkN5QUNRUUEyQWdBZ0JrRUJhaUVCUVNRTE9nQXBJQUlvQWdRaEFDQUNRUUEyQWdRZ0FpQUFJQUVRSnlJQVJRUkFRZVVBSVFNTW93RUxJQUpCK1FBMkFod2dBaUFCTmdJVUlBSWdBRFlDREVFQUlRTU11d0VMSUFCQkZVY0VRQ0FDUVFBMkFod2dBaUFCTmdJVUlBSkJ6QTQyQWhBZ0FrRWdOZ0lNUVFBaEF3eTdBUXNnQWtINEFEWUNIQ0FDSUFFMkFoUWdBa0hLR0RZQ0VDQUNRUlUyQWd4QkFDRURETG9CQ3lBQ1FRQTJBaHdnQWlBQk5nSVVJQUpCamhzMkFoQWdBa0VHTmdJTVFRQWhBd3k1QVFzZ0FrRUFOZ0ljSUFJZ0FUWUNGQ0FDUWY0Uk5nSVFJQUpCQnpZQ0RFRUFJUU1NdUFFTElBSkJBRFlDSENBQ0lBRTJBaFFnQWtHTUhEWUNFQ0FDUVFjMkFneEJBQ0VERExjQkN5QUNRUUEyQWh3Z0FpQUJOZ0lVSUFKQnd3ODJBaEFnQWtFSE5nSU1RUUFoQXd5MkFRc2dBa0VBTmdJY0lBSWdBVFlDRkNBQ1FjTVBOZ0lRSUFKQkJ6WUNERUVBSVFNTXRRRUxJQUlvQWdRaEFDQUNRUUEyQWdRZ0FpQUFJQUVRSlNJQVJRMFJJQUpCNVFBMkFod2dBaUFCTmdJVUlBSWdBRFlDREVFQUlRTU10QUVMSUFJb0FnUWhBQ0FDUVFBMkFnUWdBaUFBSUFFUUpTSUFSUTBnSUFKQjB3QTJBaHdnQWlBQk5nSVVJQUlnQURZQ0RFRUFJUU1Nc3dFTElBSW9BZ1FoQUNBQ1FRQTJBZ1FnQWlBQUlBRVFKU0lBUlEwaUlBSkIwZ0EyQWh3Z0FpQUJOZ0lVSUFJZ0FEWUNERUVBSVFNTXNnRUxJQUlvQWdRaEFDQUNRUUEyQWdRZ0FpQUFJQUVRSlNJQVJRME9JQUpCNVFBMkFod2dBaUFCTmdJVUlBSWdBRFlDREVFQUlRTU1zUUVMSUFJb0FnUWhBQ0FDUVFBMkFnUWdBaUFBSUFFUUpTSUFSUTBkSUFKQjB3QTJBaHdnQWlBQk5nSVVJQUlnQURZQ0RFRUFJUU1Nc0FFTElBSW9BZ1FoQUNBQ1FRQTJBZ1FnQWlBQUlBRVFKU0lBUlEwZklBSkIwZ0EyQWh3Z0FpQUJOZ0lVSUFJZ0FEWUNERUVBSVFNTXJ3RUxJQUJCUDBjTkFTQUJRUUZxQ3lFQlFRVWhBd3lVQVF0QkFDRURJQUpCQURZQ0hDQUNJQUUyQWhRZ0FrSDlFallDRUNBQ1FRYzJBZ3dNckFFTElBSkJBRFlDSENBQ0lBRTJBaFFnQWtIY0NEWUNFQ0FDUVFjMkFneEJBQ0VEREtzQkN5QUNLQUlFSVFBZ0FrRUFOZ0lFSUFJZ0FDQUJFQ1VpQUVVTkJ5QUNRZVVBTmdJY0lBSWdBVFlDRkNBQ0lBQTJBZ3hCQUNFRERLb0JDeUFDS0FJRUlRQWdBa0VBTmdJRUlBSWdBQ0FCRUNVaUFFVU5GaUFDUWRNQU5nSWNJQUlnQVRZQ0ZDQUNJQUEyQWd4QkFDRURES2tCQ3lBQ0tBSUVJUUFnQWtFQU5nSUVJQUlnQUNBQkVDVWlBRVVOR0NBQ1FkSUFOZ0ljSUFJZ0FUWUNGQ0FDSUFBMkFneEJBQ0VEREtnQkN5QUNRUUEyQWh3Z0FpQUJOZ0lVSUFKQnhnbzJBaEFnQWtFSE5nSU1RUUFoQXd5bkFRc2dBaWdDQkNFQUlBSkJBRFlDQkNBQ0lBQWdBUkFsSWdCRkRRTWdBa0hsQURZQ0hDQUNJQUUyQWhRZ0FpQUFOZ0lNUVFBaEF3eW1BUXNnQWlnQ0JDRUFJQUpCQURZQ0JDQUNJQUFnQVJBbElnQkZEUklnQWtIVEFEWUNIQ0FDSUFFMkFoUWdBaUFBTmdJTVFRQWhBd3lsQVFzZ0FpZ0NCQ0VBSUFKQkFEWUNCQ0FDSUFBZ0FSQWxJZ0JGRFJRZ0FrSFNBRFlDSENBQ0lBRTJBaFFnQWlBQU5nSU1RUUFoQXd5a0FRc2dBaWdDQkNFQUlBSkJBRFlDQkNBQ0lBQWdBUkFsSWdCRkRRQWdBa0hsQURZQ0hDQUNJQUUyQWhRZ0FpQUFOZ0lNUVFBaEF3eWpBUXRCMVFBaEF3eUpBUXNnQUVFVlJ3UkFJQUpCQURZQ0hDQUNJQUUyQWhRZ0FrRzVEVFlDRUNBQ1FSbzJBZ3hCQUNFRERLSUJDeUFDUWVRQU5nSWNJQUlnQVRZQ0ZDQUNRZU1YTmdJUUlBSkJGVFlDREVFQUlRTU1vUUVMSUFKQkFEWUNBQ0FHUVFGcUlRRWdBaTBBS1NJQVFTTnJRUXRKRFFRQ1FDQUFRUVpMRFFCQkFTQUFkRUhLQUhGRkRRQU1CUXRCQUNFRElBSkJBRFlDSENBQ0lBRTJBaFFnQWtIM0NUWUNFQ0FDUVFnMkFnd01vQUVMSUFKQkFEWUNBQ0FHUVFGcUlRRWdBaTBBS1VFaFJnMERJQUpCQURZQ0hDQUNJQUUyQWhRZ0FrR2JDallDRUNBQ1FRZzJBZ3hCQUNFRERKOEJDeUFDUVFBMkFnQUxRUUFoQXlBQ1FRQTJBaHdnQWlBQk5nSVVJQUpCa0RNMkFoQWdBa0VJTmdJTURKMEJDeUFDUVFBMkFnQWdCa0VCYWlFQklBSXRBQ2xCSTBrTkFDQUNRUUEyQWh3Z0FpQUJOZ0lVSUFKQjB3azJBaEFnQWtFSU5nSU1RUUFoQXd5Y0FRdEIwUUFoQXd5Q0FRc2dBUzBBQUVFd2F5SUFRZjhCY1VFS1NRUkFJQUlnQURvQUtpQUJRUUZxSVFGQnp3QWhBd3lDQVFzZ0FpZ0NCQ0VBSUFKQkFEWUNCQ0FDSUFBZ0FSQW9JZ0JGRFlZQklBSkIzZ0EyQWh3Z0FpQUJOZ0lVSUFJZ0FEWUNERUVBSVFNTW1nRUxJQUlvQWdRaEFDQUNRUUEyQWdRZ0FpQUFJQUVRS0NJQVJRMkdBU0FDUWR3QU5nSWNJQUlnQVRZQ0ZDQUNJQUEyQWd4QkFDRURESmtCQ3lBQ0tBSUVJUUFnQWtFQU5nSUVJQUlnQUNBRkVDZ2lBRVVFUUNBRklRRU1od0VMSUFKQjJnQTJBaHdnQWlBRk5nSVVJQUlnQURZQ0RBeVlBUXRCQUNFQlFRRWhBd3NnQWlBRE9nQXJJQVZCQVdvaEF3SkFBa0FDUUNBQ0xRQXRRUkJ4RFFBQ1FBSkFBa0FnQWkwQUtnNERBUUFDQkFzZ0JrVU5Bd3dDQ3lBQURRRU1BZ3NnQVVVTkFRc2dBaWdDQkNFQUlBSkJBRFlDQkNBQ0lBQWdBeEFvSWdCRkJFQWdBeUVCREFJTElBSkIyQUEyQWh3Z0FpQUROZ0lVSUFJZ0FEWUNERUVBSVFNTW1BRUxJQUlvQWdRaEFDQUNRUUEyQWdRZ0FpQUFJQU1RS0NJQVJRUkFJQU1oQVF5SEFRc2dBa0haQURZQ0hDQUNJQU0yQWhRZ0FpQUFOZ0lNUVFBaEF3eVhBUXRCekFBaEF3eDlDeUFBUVJWSEJFQWdBa0VBTmdJY0lBSWdBVFlDRkNBQ1FaUU5OZ0lRSUFKQklUWUNERUVBSVFNTWxnRUxJQUpCMXdBMkFod2dBaUFCTmdJVUlBSkJ5UmMyQWhBZ0FrRVZOZ0lNUVFBaEF3eVZBUXRCQUNFRElBSkJBRFlDSENBQ0lBRTJBaFFnQWtHQUVUWUNFQ0FDUVFrMkFnd01sQUVMSUFJb0FnUWhBQ0FDUVFBMkFnUWdBaUFBSUFFUUpTSUFSUTBBSUFKQjB3QTJBaHdnQWlBQk5nSVVJQUlnQURZQ0RFRUFJUU1Na3dFTFFja0FJUU1NZVFzZ0FrRUFOZ0ljSUFJZ0FUWUNGQ0FDUWNFb05nSVFJQUpCQnpZQ0RDQUNRUUEyQWdCQkFDRURESkVCQ3lBQ0tBSUVJUUJCQUNFRElBSkJBRFlDQkNBQ0lBQWdBUkFsSWdCRkRRQWdBa0hTQURZQ0hDQUNJQUUyQWhRZ0FpQUFOZ0lNREpBQkMwSElBQ0VEREhZTElBSkJBRFlDQUNBRklRRUxJQUpCZ0JJN0FTb2dBVUVCYWlFQlFRQWhBQUpBSUFJb0FqZ2lBMFVOQUNBREtBSXdJZ05GRFFBZ0FpQURFUUFBSVFBTElBQU5BUXRCeHdBaEF3eHpDeUFBUVJWR0JFQWdBa0hSQURZQ0hDQUNJQUUyQWhRZ0FrSGpGellDRUNBQ1FSVTJBZ3hCQUNFRERJd0JDMEVBSVFNZ0FrRUFOZ0ljSUFJZ0FUWUNGQ0FDUWJrTk5nSVFJQUpCR2pZQ0RBeUxBUXRCQUNFRElBSkJBRFlDSENBQ0lBRTJBaFFnQWtHZ0dUWUNFQ0FDUVI0MkFnd01pZ0VMSUFFdEFBQkJPa1lFUUNBQ0tBSUVJUUJCQUNFRElBSkJBRFlDQkNBQ0lBQWdBUkFwSWdCRkRRRWdBa0hEQURZQ0hDQUNJQUEyQWd3Z0FpQUJRUUZxTmdJVURJb0JDMEVBSVFNZ0FrRUFOZ0ljSUFJZ0FUWUNGQ0FDUWJFUk5nSVFJQUpCQ2pZQ0RBeUpBUXNnQVVFQmFpRUJRVHNoQXd4dkN5QUNRY01BTmdJY0lBSWdBRFlDRENBQ0lBRkJBV28yQWhRTWh3RUxRUUFoQXlBQ1FRQTJBaHdnQWlBQk5nSVVJQUpCOEE0MkFoQWdBa0VjTmdJTURJWUJDeUFDSUFJdkFUQkJFSEk3QVRBTVpnc0NRQ0FDTHdFd0lnQkJDSEZGRFFBZ0FpMEFLRUVCUncwQUlBSXRBQzFCQ0hGRkRRTUxJQUlnQUVIMyt3TnhRWUFFY2pzQk1Bd0VDeUFCSUFSSEJFQUNRQU5BSUFFdEFBQkJNR3NpQUVIL0FYRkJDazhFUUVFMUlRTU1iZ3NnQWlrRElDSUtRcG16NXN5WnMrYk1HVllOQVNBQ0lBcENDbjRpQ2pjRElDQUtJQUN0UXY4Qmd5SUxRbitGVmcwQklBSWdDaUFMZkRjRElDQUVJQUZCQVdvaUFVY05BQXRCT1NFRERJVUJDeUFDS0FJRUlRQkJBQ0VESUFKQkFEWUNCQ0FDSUFBZ0FVRUJhaUlCRUNvaUFBME1ESGNMUVRraEF3eURBUXNnQWkwQU1FRWdjUTBHUWNVQklRTU1hUXRCQUNFRElBSkJBRFlDQkNBQ0lBRWdBUkFxSWdCRkRRUWdBa0U2TmdJY0lBSWdBRFlDRENBQ0lBRkJBV28yQWhRTWdRRUxJQUl0QUNoQkFVY05BQ0FDTFFBdFFRaHhSUTBCQzBFM0lRTU1aZ3NnQWlnQ0JDRUFRUUFoQXlBQ1FRQTJBZ1FnQWlBQUlBRVFLaUlBQkVBZ0FrRTdOZ0ljSUFJZ0FEWUNEQ0FDSUFGQkFXbzJBaFFNZndzZ0FVRUJhaUVCREc0TElBSkJDRG9BTEF3RUN5QUJRUUZxSVFFTWJRdEJBQ0VESUFKQkFEWUNIQ0FDSUFFMkFoUWdBa0hrRWpZQ0VDQUNRUVEyQWd3TWV3c2dBaWdDQkNFQVFRQWhBeUFDUVFBMkFnUWdBaUFBSUFFUUtpSUFSUTFzSUFKQk56WUNIQ0FDSUFFMkFoUWdBaUFBTmdJTURIb0xJQUlnQWk4Qk1FRWdjanNCTUF0Qk1DRURERjhMSUFKQk5qWUNIQ0FDSUFFMkFoUWdBaUFBTmdJTURIY0xJQUJCTEVjTkFTQUJRUUZxSVFCQkFTRUJBa0FDUUFKQUFrQUNRQ0FDTFFBc1FRVnJEZ1FEQVFJRUFBc2dBQ0VCREFRTFFRSWhBUXdCQzBFRUlRRUxJQUpCQVRvQUxDQUNJQUl2QVRBZ0FYSTdBVEFnQUNFQkRBRUxJQUlnQWk4Qk1FRUljanNCTUNBQUlRRUxRVGtoQXd4Y0N5QUNRUUE2QUN3TFFUUWhBd3hhQ3lBQklBUkdCRUJCTFNFRERITUxBa0FDUUFOQUFrQWdBUzBBQUVFS2F3NEVBZ0FBQXdBTElBUWdBVUVCYWlJQlJ3MEFDMEV0SVFNTWRBc2dBaWdDQkNFQVFRQWhBeUFDUVFBMkFnUWdBaUFBSUFFUUtpSUFSUTBDSUFKQkxEWUNIQ0FDSUFFMkFoUWdBaUFBTmdJTURITUxJQUlvQWdRaEFFRUFJUU1nQWtFQU5nSUVJQUlnQUNBQkVDb2lBRVVFUUNBQlFRRnFJUUVNQWdzZ0FrRXNOZ0ljSUFJZ0FEWUNEQ0FDSUFGQkFXbzJBaFFNY2dzZ0FTMEFBRUVOUmdSQUlBSW9BZ1FoQUVFQUlRTWdBa0VBTmdJRUlBSWdBQ0FCRUNvaUFFVUVRQ0FCUVFGcUlRRU1BZ3NnQWtFc05nSWNJQUlnQURZQ0RDQUNJQUZCQVdvMkFoUU1jZ3NnQWkwQUxVRUJjUVJBUWNRQklRTU1XUXNnQWlnQ0JDRUFRUUFoQXlBQ1FRQTJBZ1FnQWlBQUlBRVFLaUlBRFFFTVpRdEJMeUVEREZjTElBSkJMallDSENBQ0lBRTJBaFFnQWlBQU5nSU1ERzhMUVFBaEF5QUNRUUEyQWh3Z0FpQUJOZ0lVSUFKQjhCUTJBaEFnQWtFRE5nSU1ERzRMUVFFaEF3SkFBa0FDUUFKQUlBSXRBQ3hCQldzT0JBTUJBZ0FFQ3lBQ0lBSXZBVEJCQ0hJN0FUQU1Bd3RCQWlFRERBRUxRUVFoQXdzZ0FrRUJPZ0FzSUFJZ0FpOEJNQ0FEY2pzQk1BdEJLaUVEREZNTFFRQWhBeUFDUVFBMkFod2dBaUFCTmdJVUlBSkI0UTgyQWhBZ0FrRUtOZ0lNREdzTFFRRWhBd0pBQWtBQ1FBSkFBa0FDUUNBQ0xRQXNRUUpyRGdjRkJBUURBUUlBQkFzZ0FpQUNMd0V3UVFoeU93RXdEQU1MUVFJaEF3d0JDMEVFSVFNTElBSkJBVG9BTENBQ0lBSXZBVEFnQTNJN0FUQUxRU3NoQXd4U0MwRUFJUU1nQWtFQU5nSWNJQUlnQVRZQ0ZDQUNRYXNTTmdJUUlBSkJDellDREF4cUMwRUFJUU1nQWtFQU5nSWNJQUlnQVRZQ0ZDQUNRZjBOTmdJUUlBSkJIVFlDREF4cEN5QUJJQVJIQkVBRFFDQUJMUUFBUVNCSERVZ2dCQ0FCUVFGcUlnRkhEUUFMUVNVaEF3eHBDMEVsSVFNTWFBc2dBaTBBTFVFQmNRUkFRY01CSVFNTVR3c2dBaWdDQkNFQVFRQWhBeUFDUVFBMkFnUWdBaUFBSUFFUUtTSUFCRUFnQWtFbU5nSWNJQUlnQURZQ0RDQUNJQUZCQVdvMkFoUU1hQXNnQVVFQmFpRUJERndMSUFGQkFXb2hBU0FDTHdFd0lnQkJnQUZ4QkVCQkFDRUFBa0FnQWlnQ09DSURSUTBBSUFNb0FsUWlBMFVOQUNBQ0lBTVJBQUFoQUFzZ0FFVU5CaUFBUVJWSERSOGdBa0VGTmdJY0lBSWdBVFlDRkNBQ1Fma1hOZ0lRSUFKQkZUWUNERUVBSVFNTVp3c0NRQ0FBUWFBRWNVR2dCRWNOQUNBQ0xRQXRRUUp4RFFCQkFDRURJQUpCQURZQ0hDQUNJQUUyQWhRZ0FrR1dFellDRUNBQ1FRUTJBZ3dNWndzZ0FnSi9JQUl2QVRCQkZIRkJGRVlFUUVFQklBSXRBQ2hCQVVZTkFSb2dBaThCTWtIbEFFWU1BUXNnQWkwQUtVRUZSZ3M2QUM1QkFDRUFBa0FnQWlnQ09DSURSUTBBSUFNb0FpUWlBMFVOQUNBQ0lBTVJBQUFoQUFzQ1FBSkFBa0FDUUFKQUlBQU9GZ0lCQUFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFNRUN5QUNRUUU2QUM0TElBSWdBaThCTUVIQUFISTdBVEFMUVNjaEF3eFBDeUFDUVNNMkFod2dBaUFCTmdJVUlBSkJwUlkyQWhBZ0FrRVZOZ0lNUVFBaEF3eG5DMEVBSVFNZ0FrRUFOZ0ljSUFJZ0FUWUNGQ0FDUWRVTE5nSVFJQUpCRVRZQ0RBeG1DMEVBSVFBQ1FDQUNLQUk0SWdORkRRQWdBeWdDTENJRFJRMEFJQUlnQXhFQUFDRUFDeUFBRFFFTFFRNGhBd3hMQ3lBQVFSVkdCRUFnQWtFQ05nSWNJQUlnQVRZQ0ZDQUNRYkFZTmdJUUlBSkJGVFlDREVFQUlRTU1aQXRCQUNFRElBSkJBRFlDSENBQ0lBRTJBaFFnQWtHbkRqWUNFQ0FDUVJJMkFnd01Zd3RCQUNFRElBSkJBRFlDSENBQ0lBRTJBaFFnQWtHcUhEWUNFQ0FDUVE4MkFnd01ZZ3NnQWlnQ0JDRUFRUUFoQXlBQ1FRQTJBZ1FnQWlBQUlBRWdDcWRxSWdFUUt5SUFSUTBBSUFKQkJUWUNIQ0FDSUFFMkFoUWdBaUFBTmdJTURHRUxRUThoQXd4SEMwRUFJUU1nQWtFQU5nSWNJQUlnQVRZQ0ZDQUNRYzBUTmdJUUlBSkJERFlDREF4ZkMwSUJJUW9MSUFGQkFXb2hBUUpBSUFJcEF5QWlDMEwvLy8vLy8vLy8vdzlZQkVBZ0FpQUxRZ1NHSUFxRU53TWdEQUVMUVFBaEF5QUNRUUEyQWh3Z0FpQUJOZ0lVSUFKQnJRazJBaEFnQWtFTU5nSU1ERjRMUVNRaEF3eEVDMEVBSVFNZ0FrRUFOZ0ljSUFJZ0FUWUNGQ0FDUWMwVE5nSVFJQUpCRERZQ0RBeGNDeUFDS0FJRUlRQkJBQ0VESUFKQkFEWUNCQ0FDSUFBZ0FSQXNJZ0JGQkVBZ0FVRUJhaUVCREZJTElBSkJGellDSENBQ0lBQTJBZ3dnQWlBQlFRRnFOZ0lVREZzTElBSW9BZ1FoQUVFQUlRTWdBa0VBTmdJRUFrQWdBaUFBSUFFUUxDSUFSUVJBSUFGQkFXb2hBUXdCQ3lBQ1FSWTJBaHdnQWlBQU5nSU1JQUlnQVVFQmFqWUNGQXhiQzBFZklRTU1RUXRCQUNFRElBSkJBRFlDSENBQ0lBRTJBaFFnQWtHYUR6WUNFQ0FDUVNJMkFnd01XUXNnQWlnQ0JDRUFRUUFoQXlBQ1FRQTJBZ1FnQWlBQUlBRVFMU0lBUlFSQUlBRkJBV29oQVF4UUN5QUNRUlEyQWh3Z0FpQUFOZ0lNSUFJZ0FVRUJhallDRkF4WUN5QUNLQUlFSVFCQkFDRURJQUpCQURZQ0JBSkFJQUlnQUNBQkVDMGlBRVVFUUNBQlFRRnFJUUVNQVFzZ0FrRVROZ0ljSUFJZ0FEWUNEQ0FDSUFGQkFXbzJBaFFNV0F0QkhpRURERDRMUVFBaEF5QUNRUUEyQWh3Z0FpQUJOZ0lVSUFKQnhndzJBaEFnQWtFak5nSU1ERllMSUFJb0FnUWhBRUVBSVFNZ0FrRUFOZ0lFSUFJZ0FDQUJFQzBpQUVVRVFDQUJRUUZxSVFFTVRnc2dBa0VSTmdJY0lBSWdBRFlDRENBQ0lBRkJBV28yQWhRTVZRc2dBa0VRTmdJY0lBSWdBVFlDRkNBQ0lBQTJBZ3dNVkF0QkFDRURJQUpCQURZQ0hDQUNJQUUyQWhRZ0FrSEdERFlDRUNBQ1FTTTJBZ3dNVXd0QkFDRURJQUpCQURZQ0hDQUNJQUUyQWhRZ0FrSEFGVFlDRUNBQ1FRSTJBZ3dNVWdzZ0FpZ0NCQ0VBUVFBaEF5QUNRUUEyQWdRQ1FDQUNJQUFnQVJBdElnQkZCRUFnQVVFQmFpRUJEQUVMSUFKQkRqWUNIQ0FDSUFBMkFnd2dBaUFCUVFGcU5nSVVERklMUVJzaEF3dzRDMEVBSVFNZ0FrRUFOZ0ljSUFJZ0FUWUNGQ0FDUWNZTU5nSVFJQUpCSXpZQ0RBeFFDeUFDS0FJRUlRQkJBQ0VESUFKQkFEWUNCQUpBSUFJZ0FDQUJFQ3dpQUVVRVFDQUJRUUZxSVFFTUFRc2dBa0VOTmdJY0lBSWdBRFlDRENBQ0lBRkJBV28yQWhRTVVBdEJHaUVERERZTFFRQWhBeUFDUVFBMkFod2dBaUFCTmdJVUlBSkJtZzgyQWhBZ0FrRWlOZ0lNREU0TElBSW9BZ1FoQUVFQUlRTWdBa0VBTmdJRUFrQWdBaUFBSUFFUUxDSUFSUVJBSUFGQkFXb2hBUXdCQ3lBQ1FRdzJBaHdnQWlBQU5nSU1JQUlnQVVFQmFqWUNGQXhPQzBFWklRTU1OQXRCQUNFRElBSkJBRFlDSENBQ0lBRTJBaFFnQWtHYUR6WUNFQ0FDUVNJMkFnd01UQXNnQUVFVlJ3UkFRUUFoQXlBQ1FRQTJBaHdnQWlBQk5nSVVJQUpCZ3d3MkFoQWdBa0VUTmdJTURFd0xJQUpCQ2pZQ0hDQUNJQUUyQWhRZ0FrSGtGallDRUNBQ1FSVTJBZ3hCQUNFRERFc0xJQUlvQWdRaEFFRUFJUU1nQWtFQU5nSUVJQUlnQUNBQklBcW5haUlCRUNzaUFBUkFJQUpCQnpZQ0hDQUNJQUUyQWhRZ0FpQUFOZ0lNREVzTFFSTWhBd3d4Q3lBQVFSVkhCRUJCQUNFRElBSkJBRFlDSENBQ0lBRTJBaFFnQWtIYURUWUNFQ0FDUVJRMkFnd01TZ3NnQWtFZU5nSWNJQUlnQVRZQ0ZDQUNRZmtYTmdJUUlBSkJGVFlDREVFQUlRTU1TUXRCQUNFQUFrQWdBaWdDT0NJRFJRMEFJQU1vQWl3aUEwVU5BQ0FDSUFNUkFBQWhBQXNnQUVVTlFTQUFRUlZHQkVBZ0FrRUROZ0ljSUFJZ0FUWUNGQ0FDUWJBWU5nSVFJQUpCRlRZQ0RFRUFJUU1NU1F0QkFDRURJQUpCQURZQ0hDQUNJQUUyQWhRZ0FrR25EallDRUNBQ1FSSTJBZ3dNU0F0QkFDRURJQUpCQURZQ0hDQUNJQUUyQWhRZ0FrSGFEVFlDRUNBQ1FSUTJBZ3dNUnd0QkFDRURJQUpCQURZQ0hDQUNJQUUyQWhRZ0FrR25EallDRUNBQ1FSSTJBZ3dNUmdzZ0FrRUFPZ0F2SUFJdEFDMUJCSEZGRFQ4TElBSkJBRG9BTHlBQ1FRRTZBRFJCQUNFRERDc0xRUUFoQXlBQ1FRQTJBaHdnQWtIa0VUWUNFQ0FDUVFjMkFnd2dBaUFCUVFGcU5nSVVERU1MQWtBRFFBSkFJQUV0QUFCQkNtc09CQUFDQWdBQ0N5QUVJQUZCQVdvaUFVY05BQXRCM1FFaEF3eERDd0pBQWtBZ0FpMEFORUVCUncwQVFRQWhBQUpBSUFJb0FqZ2lBMFVOQUNBREtBSllJZ05GRFFBZ0FpQURFUUFBSVFBTElBQkZEUUFnQUVFVlJ3MEJJQUpCM0FFMkFod2dBaUFCTmdJVUlBSkIxUlkyQWhBZ0FrRVZOZ0lNUVFBaEF3eEVDMEhCQVNFRERDb0xJQUpCQURZQ0hDQUNJQUUyQWhRZ0FrSHBDellDRUNBQ1FSODJBZ3hCQUNFRERFSUxBa0FDUUNBQ0xRQW9RUUZyRGdJRUFRQUxRY0FCSVFNTUtRdEJ1UUVoQXd3b0N5QUNRUUk2QUM5QkFDRUFBa0FnQWlnQ09DSURSUTBBSUFNb0FnQWlBMFVOQUNBQ0lBTVJBQUFoQUFzZ0FFVUVRRUhDQVNFRERDZ0xJQUJCRlVjRVFDQUNRUUEyQWh3Z0FpQUJOZ0lVSUFKQnBBdzJBaEFnQWtFUU5nSU1RUUFoQXd4QkN5QUNRZHNCTmdJY0lBSWdBVFlDRkNBQ1Fmb1dOZ0lRSUFKQkZUWUNERUVBSVFNTVFBc2dBU0FFUmdSQVFkb0JJUU1NUUFzZ0FTMEFBRUhJQUVZTkFTQUNRUUU2QUNnTFFhd0JJUU1NSlF0QnZ3RWhBd3drQ3lBQklBUkhCRUFnQWtFUU5nSUlJQUlnQVRZQ0JFRytBU0VERENRTFFka0JJUU1NUEFzZ0FTQUVSZ1JBUWRnQklRTU1QQXNnQVMwQUFFSElBRWNOQkNBQlFRRnFJUUZCdlFFaEF3d2lDeUFCSUFSR0JFQkIxd0VoQXd3N0N3SkFBa0FnQVMwQUFFSEZBR3NPRUFBRkJRVUZCUVVGQlFVRkJRVUZCUUVGQ3lBQlFRRnFJUUZCdXdFaEF3d2lDeUFCUVFGcUlRRkJ2QUVoQXd3aEMwSFdBU0VESUFFZ0JFWU5PU0FDS0FJQUlnQWdCQ0FCYTJvaEJTQUJJQUJyUVFKcUlRWUNRQU5BSUFFdEFBQWdBRUdEMEFCcUxRQUFSdzBESUFCQkFrWU5BU0FBUVFGcUlRQWdCQ0FCUVFGcUlnRkhEUUFMSUFJZ0JUWUNBQXc2Q3lBQ0tBSUVJUUFnQWtJQU53TUFJQUlnQUNBR1FRRnFJZ0VRSnlJQVJRUkFRY1lCSVFNTUlRc2dBa0hWQVRZQ0hDQUNJQUUyQWhRZ0FpQUFOZ0lNUVFBaEF3dzVDMEhVQVNFRElBRWdCRVlOT0NBQ0tBSUFJZ0FnQkNBQmEyb2hCU0FCSUFCclFRRnFJUVlDUUFOQUlBRXRBQUFnQUVHQjBBQnFMUUFBUncwQ0lBQkJBVVlOQVNBQVFRRnFJUUFnQkNBQlFRRnFJZ0ZIRFFBTElBSWdCVFlDQUF3NUN5QUNRWUVFT3dFb0lBSW9BZ1FoQUNBQ1FnQTNBd0FnQWlBQUlBWkJBV29pQVJBbklnQU5Bd3dDQ3lBQ1FRQTJBZ0FMUVFBaEF5QUNRUUEyQWh3Z0FpQUJOZ0lVSUFKQjJCczJBaEFnQWtFSU5nSU1ERFlMUWJvQklRTU1IQXNnQWtIVEFUWUNIQ0FDSUFFMkFoUWdBaUFBTmdJTVFRQWhBd3cwQzBFQUlRQUNRQ0FDS0FJNElnTkZEUUFnQXlnQ09DSURSUTBBSUFJZ0F4RUFBQ0VBQ3lBQVJRMEFJQUJCRlVZTkFTQUNRUUEyQWh3Z0FpQUJOZ0lVSUFKQnpBNDJBaEFnQWtFZ05nSU1RUUFoQXd3ekMwSGtBQ0VEREJrTElBSkIrQUEyQWh3Z0FpQUJOZ0lVSUFKQnloZzJBaEFnQWtFVk5nSU1RUUFoQXd3eEMwSFNBU0VESUFRZ0FTSUFSZzB3SUFRZ0FXc2dBaWdDQUNJQmFpRUZJQUFnQVd0QkJHb2hCZ0pBQTBBZ0FDMEFBQ0FCUWZ6UEFHb3RBQUJIRFFFZ0FVRUVSZzBESUFGQkFXb2hBU0FFSUFCQkFXb2lBRWNOQUFzZ0FpQUZOZ0lBRERFTElBSkJBRFlDSENBQ0lBQTJBaFFnQWtHUU16WUNFQ0FDUVFnMkFnd2dBa0VBTmdJQVFRQWhBd3d3Q3lBQklBUkhCRUFnQWtFT05nSUlJQUlnQVRZQ0JFRzNBU0VEREJjTFFkRUJJUU1NTHdzZ0FrRUFOZ0lBSUFaQkFXb2hBUXRCdUFFaEF3d1VDeUFCSUFSR0JFQkIwQUVoQXd3dEN5QUJMUUFBUVRCcklnQkIvd0Z4UVFwSkJFQWdBaUFBT2dBcUlBRkJBV29oQVVHMkFTRUREQlFMSUFJb0FnUWhBQ0FDUVFBMkFnUWdBaUFBSUFFUUtDSUFSUTBVSUFKQnp3RTJBaHdnQWlBQk5nSVVJQUlnQURZQ0RFRUFJUU1NTEFzZ0FTQUVSZ1JBUWM0QklRTU1MQXNDUUNBQkxRQUFRUzVHQkVBZ0FVRUJhaUVCREFFTElBSW9BZ1FoQUNBQ1FRQTJBZ1FnQWlBQUlBRVFLQ0lBUlEwVklBSkJ6UUUyQWh3Z0FpQUJOZ0lVSUFJZ0FEWUNERUVBSVFNTUxBdEJ0UUVoQXd3U0N5QUVJQUVpQlVZRVFFSE1BU0VERENzTFFRQWhBRUVCSVFGQkFTRUdRUUFoQXdKQUFrQUNRQUpBQWtBQ2Z3SkFBa0FDUUFKQUFrQUNRQUpBSUFVdEFBQkJNR3NPQ2dvSkFBRUNBd1FGQmdnTEMwRUNEQVlMUVFNTUJRdEJCQXdFQzBFRkRBTUxRUVlNQWd0QkJ3d0JDMEVJQ3lFRFFRQWhBVUVBSVFZTUFndEJDU0VEUVFFaEFFRUFJUUZCQUNFR0RBRUxRUUFoQVVFQklRTUxJQUlnQXpvQUt5QUZRUUZxSVFNQ1FBSkFJQUl0QUMxQkVIRU5BQUpBQWtBQ1FDQUNMUUFxRGdNQkFBSUVDeUFHUlEwRERBSUxJQUFOQVF3Q0N5QUJSUTBCQ3lBQ0tBSUVJUUFnQWtFQU5nSUVJQUlnQUNBREVDZ2lBRVVFUUNBRElRRU1Bd3NnQWtISkFUWUNIQ0FDSUFNMkFoUWdBaUFBTmdJTVFRQWhBd3d0Q3lBQ0tBSUVJUUFnQWtFQU5nSUVJQUlnQUNBREVDZ2lBRVVFUUNBRElRRU1HQXNnQWtIS0FUWUNIQ0FDSUFNMkFoUWdBaUFBTmdJTVFRQWhBd3dzQ3lBQ0tBSUVJUUFnQWtFQU5nSUVJQUlnQUNBRkVDZ2lBRVVFUUNBRklRRU1GZ3NnQWtITEFUWUNIQ0FDSUFVMkFoUWdBaUFBTmdJTURDc0xRYlFCSVFNTUVRdEJBQ0VBQWtBZ0FpZ0NPQ0lEUlEwQUlBTW9BandpQTBVTkFDQUNJQU1SQUFBaEFBc0NRQ0FBQkVBZ0FFRVZSZzBCSUFKQkFEWUNIQ0FDSUFFMkFoUWdBa0dVRFRZQ0VDQUNRU0UyQWd4QkFDRUREQ3NMUWJJQklRTU1FUXNnQWtISUFUWUNIQ0FDSUFFMkFoUWdBa0hKRnpZQ0VDQUNRUlUyQWd4QkFDRUREQ2tMSUFKQkFEWUNBQ0FHUVFGcUlRRkI5UUFoQXd3UEN5QUNMUUFwUVFWR0JFQkI0d0FoQXd3UEMwSGlBQ0VEREE0TElBQWhBU0FDUVFBMkFnQUxJQUpCQURvQUxFRUpJUU1NREFzZ0FrRUFOZ0lBSUFkQkFXb2hBVUhBQUNFRERBc0xRUUVMT2dBc0lBSkJBRFlDQUNBR1FRRnFJUUVMUVNraEF3d0lDMEU0SVFNTUJ3c0NRQ0FCSUFSSEJFQURRQ0FCTFFBQVFZQSthaTBBQUNJQVFRRkhCRUFnQUVFQ1J3MERJQUZCQVdvaEFRd0ZDeUFFSUFGQkFXb2lBVWNOQUF0QlBpRUREQ0VMUVQ0aEF3d2dDd3NnQWtFQU9nQXNEQUVMUVFzaEF3d0VDMEU2SVFNTUF3c2dBVUVCYWlFQlFTMGhBd3dDQ3lBQ0lBRTZBQ3dnQWtFQU5nSUFJQVpCQVdvaEFVRU1JUU1NQVFzZ0FrRUFOZ0lBSUFaQkFXb2hBVUVLSVFNTUFBc0FDMEVBSVFNZ0FrRUFOZ0ljSUFJZ0FUWUNGQ0FDUWMwUU5nSVFJQUpCQ1RZQ0RBd1hDMEVBSVFNZ0FrRUFOZ0ljSUFJZ0FUWUNGQ0FDUWVrS05nSVFJQUpCQ1RZQ0RBd1dDMEVBSVFNZ0FrRUFOZ0ljSUFJZ0FUWUNGQ0FDUWJjUU5nSVFJQUpCQ1RZQ0RBd1ZDMEVBSVFNZ0FrRUFOZ0ljSUFJZ0FUWUNGQ0FDUVp3Uk5nSVFJQUpCQ1RZQ0RBd1VDMEVBSVFNZ0FrRUFOZ0ljSUFJZ0FUWUNGQ0FDUWMwUU5nSVFJQUpCQ1RZQ0RBd1RDMEVBSVFNZ0FrRUFOZ0ljSUFJZ0FUWUNGQ0FDUWVrS05nSVFJQUpCQ1RZQ0RBd1NDMEVBSVFNZ0FrRUFOZ0ljSUFJZ0FUWUNGQ0FDUWJjUU5nSVFJQUpCQ1RZQ0RBd1JDMEVBSVFNZ0FrRUFOZ0ljSUFJZ0FUWUNGQ0FDUVp3Uk5nSVFJQUpCQ1RZQ0RBd1FDMEVBSVFNZ0FrRUFOZ0ljSUFJZ0FUWUNGQ0FDUVpjVk5nSVFJQUpCRHpZQ0RBd1BDMEVBSVFNZ0FrRUFOZ0ljSUFJZ0FUWUNGQ0FDUVpjVk5nSVFJQUpCRHpZQ0RBd09DMEVBSVFNZ0FrRUFOZ0ljSUFJZ0FUWUNGQ0FDUWNBU05nSVFJQUpCQ3pZQ0RBd05DMEVBSVFNZ0FrRUFOZ0ljSUFJZ0FUWUNGQ0FDUVpVSk5nSVFJQUpCQ3pZQ0RBd01DMEVBSVFNZ0FrRUFOZ0ljSUFJZ0FUWUNGQ0FDUWVFUE5nSVFJQUpCQ2pZQ0RBd0xDMEVBSVFNZ0FrRUFOZ0ljSUFJZ0FUWUNGQ0FDUWZzUE5nSVFJQUpCQ2pZQ0RBd0tDMEVBSVFNZ0FrRUFOZ0ljSUFJZ0FUWUNGQ0FDUWZFWk5nSVFJQUpCQWpZQ0RBd0pDMEVBSVFNZ0FrRUFOZ0ljSUFJZ0FUWUNGQ0FDUWNRVU5nSVFJQUpCQWpZQ0RBd0lDMEVBSVFNZ0FrRUFOZ0ljSUFJZ0FUWUNGQ0FDUWZJVk5nSVFJQUpCQWpZQ0RBd0hDeUFDUVFJMkFod2dBaUFCTmdJVUlBSkJuQm8yQWhBZ0FrRVdOZ0lNUVFBaEF3d0dDMEVCSVFNTUJRdEIxQUFoQXlBQklBUkdEUVFnQ0VFSWFpRUpJQUlvQWdBaEJRSkFBa0FnQVNBRVJ3UkFJQVZCMk1JQWFpRUhJQVFnQldvZ0FXc2hBQ0FGUVg5elFRcHFJZ1VnQVdvaEJnTkFJQUV0QUFBZ0J5MEFBRWNFUUVFQ0lRY01Bd3NnQlVVRVFFRUFJUWNnQmlFQkRBTUxJQVZCQVdzaEJTQUhRUUZxSVFjZ0JDQUJRUUZxSWdGSERRQUxJQUFoQlNBRUlRRUxJQWxCQVRZQ0FDQUNJQVUyQWdBTUFRc2dBa0VBTmdJQUlBa2dCellDQUFzZ0NTQUJOZ0lFSUFnb0Fnd2hBQ0FJS0FJSURnTUJCQUlBQ3dBTElBSkJBRFlDSENBQ1FiVWFOZ0lRSUFKQkZ6WUNEQ0FDSUFCQkFXbzJBaFJCQUNFRERBSUxJQUpCQURZQ0hDQUNJQUEyQWhRZ0FrSEtHallDRUNBQ1FRazJBZ3hCQUNFRERBRUxJQUVnQkVZRVFFRWlJUU1NQVFzZ0FrRUpOZ0lJSUFJZ0FUWUNCRUVoSVFNTElBaEJFR29rQUNBRFJRUkFJQUlvQWd3aEFBd0JDeUFDSUFNMkFoeEJBQ0VBSUFJb0FnUWlBVVVOQUNBQ0lBRWdCQ0FDS0FJSUVRRUFJZ0ZGRFFBZ0FpQUVOZ0lVSUFJZ0FUWUNEQ0FCSVFBTElBQUx2Z0lCQW44Z0FFRUFPZ0FBSUFCQjNBQnFJZ0ZCQVd0QkFEb0FBQ0FBUVFBNkFBSWdBRUVBT2dBQklBRkJBMnRCQURvQUFDQUJRUUpyUVFBNkFBQWdBRUVBT2dBRElBRkJCR3RCQURvQUFFRUFJQUJyUVFOeElnRWdBR29pQUVFQU5nSUFRZHdBSUFGclFYeHhJZ0lnQUdvaUFVRUVhMEVBTmdJQUFrQWdBa0VKU1EwQUlBQkJBRFlDQ0NBQVFRQTJBZ1FnQVVFSWEwRUFOZ0lBSUFGQkRHdEJBRFlDQUNBQ1FSbEpEUUFnQUVFQU5nSVlJQUJCQURZQ0ZDQUFRUUEyQWhBZ0FFRUFOZ0lNSUFGQkVHdEJBRFlDQUNBQlFSUnJRUUEyQWdBZ0FVRVlhMEVBTmdJQUlBRkJIR3RCQURZQ0FDQUNJQUJCQkhGQkdISWlBbXNpQVVFZ1NRMEFJQUFnQW1vaEFBTkFJQUJDQURjREdDQUFRZ0EzQXhBZ0FFSUFOd01JSUFCQ0FEY0RBQ0FBUVNCcUlRQWdBVUVnYXlJQlFSOUxEUUFMQ3d0V0FRRi9Ba0FnQUNnQ0RBMEFBa0FDUUFKQUFrQWdBQzBBTHc0REFRQURBZ3NnQUNnQ09DSUJSUTBBSUFFb0Fpd2lBVVVOQUNBQUlBRVJBQUFpQVEwREMwRUFEd3NBQ3lBQVFjTVdOZ0lRUVE0aEFRc2dBUXNhQUNBQUtBSU1SUVJBSUFCQjBSczJBaEFnQUVFVk5nSU1Dd3NVQUNBQUtBSU1RUlZHQkVBZ0FFRUFOZ0lNQ3dzVUFDQUFLQUlNUVJaR0JFQWdBRUVBTmdJTUN3c0hBQ0FBS0FJTUN3Y0FJQUFvQWhBTENRQWdBQ0FCTmdJUUN3Y0FJQUFvQWhRTEZ3QWdBRUVrVHdSQUFBc2dBRUVDZEVHZ00yb29BZ0FMRndBZ0FFRXVUd1JBQUFzZ0FFRUNkRUd3Tkdvb0FnQUx2d2tCQVg5QjZ5Z2hBUUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBSUFCQjVBQnJEdlFEWTJJQUFXRmhZV0ZoWVFJREJBVmhZV0ZoWVdGaFlXRmhZV0ZoWVdGaFlXRmhZV0ZoWVdGaFlXRmhZV0ZoWVdGaFlXRmhZV0ZoWVdGaFlXRmhZV0ZoWVdGaFlXRmhZV0ZoWVdGaFlXRmhZV0ZoWVdGaFlXRmhZV0ZoWVdGaFlXRmhZV0ZoQmdjSUNRb0xEQTBPRDJGaFlXRmhFR0ZoWVdGaFlXRmhZV0ZoRVdGaFlXRmhZV0ZoWVdGaFlXRmhZV0ZoWVdGaFlXRmhZV0ZoWVdGaFlXRmhZV0ZoWVdGaFlXRmhZV0ZoWVdGaFlXRmhZV0ZoWVdGaFlXRmhZV0ZoWVdGaFlXRmhZV0ZoWVJJVEZCVVdGeGdaR2h0aFlXRmhZV0ZoWVdGaFlXRmhZV0ZoWVdGaFlXRmhZV0ZoWVdGaFlXRmhZV0ZoWVdGaFlXRmhZV0ZoWVdGaFlXRmhZV0ZoWVdGaFlXRmhZV0ZoWVdGaFlXRmhZV0ZoWVdGaFlXRmhZV0ZoWVdGaFlXRmhZV0ZoWVdGaEhCMGVIeUFoSWlNa0pTWW5LQ2txS3l3dExpOHdNVEl6TkRVMllUYzRPVHBoWVdGaFlXRmhZVHRoWVdFOFlXRmhZVDArUDJGaFlXRmhZV0ZoUUdGaFFXRmhZV0ZoWVdGaFlXRmhZV0ZoWVdGaFlXRmhZV0ZoWVdGaFlXRmhZVUpEUkVWR1IwaEpTa3RNVFU1UFVGRlNVMkZoWVdGaFlXRmhWRlZXVjFoWldsdGhYRjFoWVdGaFlXRmhZV0ZoWVdGaFlXRmhZV0ZoWVdGaFlXRmhZV0ZoWVdGZVlXRmhZV0ZoWVdGaFlXRmhZV0ZoWVdGaFlXRmhZV0ZoWVdGaFlXRmhZV0ZoWVdGaFgyQmhDMEhoSnc4TFFhUWhEd3RCeXl3UEMwSCtNUThMUWNBa0R3dEJxeVFQQzBHTktBOExRZUltRHd0QmdEQVBDMEc1THc4TFFkY2tEd3RCN3g4UEMwSGhIdzhMUWZvZkR3dEI4aUFQQzBHb0x3OExRYTR5RHd0QmlEQVBDMEhzSnc4TFFZSWlEd3RCamgwUEMwSFFMZzhMUWNvakR3dEJ4VElQQzBIZkhBOExRZEljRHd0QnhDQVBDMEhYSUE4TFFhSWZEd3RCN1M0UEMwR3JNQThMUWRRbER3dEJ6QzRQQzBINkxnOExRZndyRHd0QjBqQVBDMEh4SFE4TFFic2dEd3RCOXlzUEMwR1FNUThMUWRjeER3dEJvaTBQQzBIVUp3OExRZUFyRHd0Qm55d1BDMEhyTVE4TFFkVWZEd3RCeWpFUEMwSGVKUThMUWRRZUR3dEI5QndQQzBHbk1nOExRYkVkRHd0Qm9CMFBDMEc1TVE4TFFid3dEd3RCa2lFUEMwR3pKZzhMUWVrc0R3dEJyQjRQQzBIVUt3OExRZmNtRHd0QmdDWVBDMEd3SVE4TFFmNGVEd3RCalNNUEMwR0pMUThMUWZjaUR3dEJvREVQQzBHdUh3OExRY1lsRHd0QjZCNFBDMEdUSWc4TFFjSXZEd3RCd3gwUEMwR0xMQThMUWVFZER3dEJqUzhQQzBIcUlROExRYlF0RHd0QjBpOFBDMEhmTWc4TFFkSXlEd3RCOERBUEMwR3BJZzhMUWZrakR3dEJtUjRQQzBHMUxBOExRWnN3RHd0QmtqSVBDMEcyS3c4TFFjSWlEd3RCK0RJUEMwR2VKUThMUWRBaUR3dEJ1aDRQQzBHQkhnOExBQXRCMWlFaEFRc2dBUXNXQUNBQUlBQXRBQzFCL2dGeElBRkJBRWR5T2dBdEN4a0FJQUFnQUMwQUxVSDlBWEVnQVVFQVIwRUJkSEk2QUMwTEdRQWdBQ0FBTFFBdFFmc0JjU0FCUVFCSFFRSjBjam9BTFFzWkFDQUFJQUF0QUMxQjl3RnhJQUZCQUVkQkEzUnlPZ0F0Q3o0QkFuOENRQ0FBS0FJNElnTkZEUUFnQXlnQ0JDSURSUTBBSUFBZ0FTQUNJQUZySUFNUkFRQWlCRUYvUncwQUlBQkJ4aEUyQWhCQkdDRUVDeUFFQ3o0QkFuOENRQ0FBS0FJNElnTkZEUUFnQXlnQ0NDSURSUTBBSUFBZ0FTQUNJQUZySUFNUkFRQWlCRUYvUncwQUlBQkI5Z28yQWhCQkdDRUVDeUFFQ3o0QkFuOENRQ0FBS0FJNElnTkZEUUFnQXlnQ0RDSURSUTBBSUFBZ0FTQUNJQUZySUFNUkFRQWlCRUYvUncwQUlBQkI3Um8yQWhCQkdDRUVDeUFFQ3o0QkFuOENRQ0FBS0FJNElnTkZEUUFnQXlnQ0VDSURSUTBBSUFBZ0FTQUNJQUZySUFNUkFRQWlCRUYvUncwQUlBQkJsUkEyQWhCQkdDRUVDeUFFQ3o0QkFuOENRQ0FBS0FJNElnTkZEUUFnQXlnQ0ZDSURSUTBBSUFBZ0FTQUNJQUZySUFNUkFRQWlCRUYvUncwQUlBQkJxaHMyQWhCQkdDRUVDeUFFQ3o0QkFuOENRQ0FBS0FJNElnTkZEUUFnQXlnQ0dDSURSUTBBSUFBZ0FTQUNJQUZySUFNUkFRQWlCRUYvUncwQUlBQkI3Uk0yQWhCQkdDRUVDeUFFQ3o0QkFuOENRQ0FBS0FJNElnTkZEUUFnQXlnQ0tDSURSUTBBSUFBZ0FTQUNJQUZySUFNUkFRQWlCRUYvUncwQUlBQkI5Z2cyQWhCQkdDRUVDeUFFQ3o0QkFuOENRQ0FBS0FJNElnTkZEUUFnQXlnQ0hDSURSUTBBSUFBZ0FTQUNJQUZySUFNUkFRQWlCRUYvUncwQUlBQkJ3aGsyQWhCQkdDRUVDeUFFQ3o0QkFuOENRQ0FBS0FJNElnTkZEUUFnQXlnQ0lDSURSUTBBSUFBZ0FTQUNJQUZySUFNUkFRQWlCRUYvUncwQUlBQkJsQlEyQWhCQkdDRUVDeUFFQzFrQkFuOENRQ0FBTFFBb1FRRkdEUUFnQUM4Qk1pSUJRZVFBYTBIa0FFa05BQ0FCUWN3QlJnMEFJQUZCc0FKR0RRQWdBQzhCTUNJQVFjQUFjUTBBUVFFaEFpQUFRWWdFY1VHQUJFWU5BQ0FBUVNoeFJTRUNDeUFDQzR3QkFRSi9Ba0FDUUFKQUlBQXRBQ3BGRFFBZ0FDMEFLMFVOQUNBQUx3RXdJZ0ZCQW5GRkRRRU1BZ3NnQUM4Qk1DSUJRUUZ4UlEwQkMwRUJJUUlnQUMwQUtFRUJSZzBBSUFBdkFUSWlBRUhrQUd0QjVBQkpEUUFnQUVITUFVWU5BQ0FBUWJBQ1JnMEFJQUZCd0FCeERRQkJBQ0VDSUFGQmlBUnhRWUFFUmcwQUlBRkJLSEZCQUVjaEFnc2dBZ3RYQUNBQVFSaHFRZ0EzQXdBZ0FFSUFOd01BSUFCQk9HcENBRGNEQUNBQVFUQnFRZ0EzQXdBZ0FFRW9ha0lBTndNQUlBQkJJR3BDQURjREFDQUFRUkJxUWdBM0F3QWdBRUVJYWtJQU53TUFJQUJCM1FFMkFod0xCZ0FnQUJBeUM1b3RBUXQvSXdCQkVHc2lDaVFBUWFUUUFDZ0NBQ0lKUlFSQVFlVFRBQ2dDQUNJRlJRUkFRZkRUQUVKL053SUFRZWpUQUVLQWdJU0FnSURBQURjQ0FFSGswd0FnQ2tFSWFrRndjVUhZcXRXcUJYTWlCVFlDQUVINDB3QkJBRFlDQUVISTB3QkJBRFlDQUF0QnpOTUFRWURVQkRZQ0FFR2MwQUJCZ05RRU5nSUFRYkRRQUNBRk5nSUFRYXpRQUVGL05nSUFRZERUQUVHQXJBTTJBZ0FEUUNBQlFjalFBR29nQVVHODBBQnFJZ0kyQWdBZ0FpQUJRYlRRQUdvaUF6WUNBQ0FCUWNEUUFHb2dBellDQUNBQlFkRFFBR29nQVVIRTBBQnFJZ00yQWdBZ0F5QUNOZ0lBSUFGQjJOQUFhaUFCUWN6UUFHb2lBallDQUNBQ0lBTTJBZ0FnQVVIVTBBQnFJQUkyQWdBZ0FVRWdhaUlCUVlBQ1J3MEFDMEdNMUFSQndhc0ROZ0lBUWFqUUFFSDAwd0FvQWdBMkFnQkJtTkFBUWNDckF6WUNBRUdrMEFCQmlOUUVOZ0lBUWN6L0IwRTROZ0lBUVlqVUJDRUpDd0pBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUlBQkI3QUZOQkVCQmpOQUFLQUlBSWdaQkVDQUFRUk5xUVhCeElBQkJDMGtiSWdSQkEzWWlBSFlpQVVFRGNRUkFBa0FnQVVFQmNTQUFja0VCY3lJQ1FRTjBJZ0JCdE5BQWFpSUJJQUJCdk5BQWFpZ0NBQ0lBS0FJSUlnTkdCRUJCak5BQUlBWkJmaUFDZDNFMkFnQU1BUXNnQVNBRE5nSUlJQU1nQVRZQ0RBc2dBRUVJYWlFQklBQWdBa0VEZENJQ1FRTnlOZ0lFSUFBZ0Ftb2lBQ0FBS0FJRVFRRnlOZ0lFREJFTFFaVFFBQ2dDQUNJSUlBUlBEUUVnQVFSQUFrQkJBaUFBZENJQ1FRQWdBbXR5SUFFZ0FIUnhhQ0lBUVFOMElnSkJ0TkFBYWlJQklBSkJ2TkFBYWlnQ0FDSUNLQUlJSWdOR0JFQkJqTkFBSUFaQmZpQUFkM0VpQmpZQ0FBd0JDeUFCSUFNMkFnZ2dBeUFCTmdJTUN5QUNJQVJCQTNJMkFnUWdBRUVEZENJQUlBUnJJUVVnQUNBQ2FpQUZOZ0lBSUFJZ0JHb2lCQ0FGUVFGeU5nSUVJQWdFUUNBSVFYaHhRYlRRQUdvaEFFR2cwQUFvQWdBaEF3Si9RUUVnQ0VFRGRuUWlBU0FHY1VVRVFFR00wQUFnQVNBR2NqWUNBQ0FBREFFTElBQW9BZ2dMSWdFZ0F6WUNEQ0FBSUFNMkFnZ2dBeUFBTmdJTUlBTWdBVFlDQ0FzZ0FrRUlhaUVCUWFEUUFDQUVOZ0lBUVpUUUFDQUZOZ0lBREJFTFFaRFFBQ2dDQUNJTFJRMEJJQXRvUVFKMFFielNBR29vQWdBaUFDZ0NCRUY0Y1NBRWF5RUZJQUFoQWdOQUFrQWdBaWdDRUNJQlJRUkFJQUpCRkdvb0FnQWlBVVVOQVFzZ0FTZ0NCRUY0Y1NBRWF5SURJQVZKSVFJZ0F5QUZJQUliSVFVZ0FTQUFJQUliSVFBZ0FTRUNEQUVMQ3lBQUtBSVlJUWtnQUNnQ0RDSURJQUJIQkVCQm5OQUFLQUlBR2lBRElBQW9BZ2dpQVRZQ0NDQUJJQU0yQWd3TUVBc2dBRUVVYWlJQ0tBSUFJZ0ZGQkVBZ0FDZ0NFQ0lCUlEwRElBQkJFR29oQWdzRFFDQUNJUWNnQVNJRFFSUnFJZ0lvQWdBaUFRMEFJQU5CRUdvaEFpQURLQUlRSWdFTkFBc2dCMEVBTmdJQURBOExRWDhoQkNBQVFiOS9TdzBBSUFCQkUyb2lBVUZ3Y1NFRVFaRFFBQ2dDQUNJSVJRMEFRUUFnQkdzaEJRSkFBa0FDUUFKL1FRQWdCRUdBQWtrTkFCcEJIeUFFUWYvLy93ZExEUUFhSUFSQkppQUJRUWgyWnlJQWEzWkJBWEVnQUVFQmRHdEJQbW9MSWdaQkFuUkJ2TklBYWlnQ0FDSUNSUVJBUVFBaEFVRUFJUU1NQVF0QkFDRUJJQVJCR1NBR1FRRjJhMEVBSUFaQkgwY2JkQ0VBUVFBaEF3TkFBa0FnQWlnQ0JFRjRjU0FFYXlJSElBVlBEUUFnQWlFRElBY2lCUTBBUVFBaEJTQUNJUUVNQXdzZ0FTQUNRUlJxS0FJQUlnY2dCeUFDSUFCQkhYWkJCSEZxUVJCcUtBSUFJZ0pHR3lBQklBY2JJUUVnQUVFQmRDRUFJQUlOQUFzTElBRWdBM0pGQkVCQkFDRURRUUlnQm5RaUFFRUFJQUJyY2lBSWNTSUFSUTBESUFCb1FRSjBRYnpTQUdvb0FnQWhBUXNnQVVVTkFRc0RRQ0FCS0FJRVFYaHhJQVJySWdJZ0JVa2hBQ0FDSUFVZ0FCc2hCU0FCSUFNZ0FCc2hBeUFCS0FJUUlnQUVmeUFBQlNBQlFSUnFLQUlBQ3lJQkRRQUxDeUFEUlEwQUlBVkJsTkFBS0FJQUlBUnJUdzBBSUFNb0FoZ2hCeUFESUFNb0Fnd2lBRWNFUUVHYzBBQW9BZ0FhSUFBZ0F5Z0NDQ0lCTmdJSUlBRWdBRFlDREF3T0N5QURRUlJxSWdJb0FnQWlBVVVFUUNBREtBSVFJZ0ZGRFFNZ0EwRVFhaUVDQ3dOQUlBSWhCaUFCSWdCQkZHb2lBaWdDQUNJQkRRQWdBRUVRYWlFQ0lBQW9BaEFpQVEwQUN5QUdRUUEyQWdBTURRdEJsTkFBS0FJQUlnTWdCRThFUUVHZzBBQW9BZ0FoQVFKQUlBTWdCR3NpQWtFUVR3UkFJQUVnQkdvaUFDQUNRUUZ5TmdJRUlBRWdBMm9nQWpZQ0FDQUJJQVJCQTNJMkFnUU1BUXNnQVNBRFFRTnlOZ0lFSUFFZ0Eyb2lBQ0FBS0FJRVFRRnlOZ0lFUVFBaEFFRUFJUUlMUVpUUUFDQUNOZ0lBUWFEUUFDQUFOZ0lBSUFGQkNHb2hBUXdQQzBHWTBBQW9BZ0FpQXlBRVN3UkFJQVFnQ1dvaUFDQURJQVJySWdGQkFYSTJBZ1JCcE5BQUlBQTJBZ0JCbU5BQUlBRTJBZ0FnQ1NBRVFRTnlOZ0lFSUFsQkNHb2hBUXdQQzBFQUlRRWdCQUovUWVUVEFDZ0NBQVJBUWV6VEFDZ0NBQXdCQzBIdzB3QkNmemNDQUVIbzB3QkNnSUNFZ0lDQXdBQTNBZ0JCNU5NQUlBcEJER3BCY0hGQjJLclZxZ1Z6TmdJQVFmalRBRUVBTmdJQVFjalRBRUVBTmdJQVFZQ0FCQXNpQUNBRVFjY0FhaUlGYWlJR1FRQWdBR3NpQjNFaUFrOEVRRUg4MHdCQk1EWUNBQXdQQ3dKQVFjVFRBQ2dDQUNJQlJRMEFRYnpUQUNnQ0FDSUlJQUpxSVFBZ0FDQUJUU0FBSUFoTGNRMEFRUUFoQVVIODB3QkJNRFlDQUF3UEMwSEkwd0F0QUFCQkJIRU5CQUpBQWtBZ0NRUkFRY3pUQUNFQkEwQWdBU2dDQUNJQUlBbE5CRUFnQUNBQktBSUVhaUFKU3cwREN5QUJLQUlJSWdFTkFBc0xRUUFRTXlJQVFYOUdEUVVnQWlFR1FlalRBQ2dDQUNJQlFRRnJJZ01nQUhFRVFDQUNJQUJySUFBZ0EycEJBQ0FCYTNGcUlRWUxJQVFnQms4TkJTQUdRZjcvLy84SFN3MEZRY1RUQUNnQ0FDSURCRUJCdk5NQUtBSUFJZ2NnQm1vaEFTQUJJQWRORFFZZ0FTQURTdzBHQ3lBR0VETWlBU0FBUncwQkRBY0xJQVlnQTJzZ0IzRWlCa0grLy8vL0Iwc05CQ0FHRURNaEFDQUFJQUVvQWdBZ0FTZ0NCR3BHRFFNZ0FDRUJDd0pBSUFZZ0JFSElBR3BQRFFBZ0FVRi9SZzBBUWV6VEFDZ0NBQ0lBSUFVZ0JtdHFRUUFnQUd0eElnQkIvdi8vL3dkTEJFQWdBU0VBREFjTElBQVFNMEYvUndSQUlBQWdCbW9oQmlBQklRQU1Cd3RCQUNBR2F4QXpHZ3dFQ3lBQklnQkJmMGNOQlF3REMwRUFJUU1NREF0QkFDRUFEQW9MSUFCQmYwY05BZ3RCeU5NQVFjalRBQ2dDQUVFRWNqWUNBQXNnQWtIKy8vLy9CMHNOQVNBQ0VETWhBRUVBRURNaEFTQUFRWDlHRFFFZ0FVRi9SZzBCSUFBZ0FVOE5BU0FCSUFCcklnWWdCRUU0YWswTkFRdEJ2Tk1BUWJ6VEFDZ0NBQ0FHYWlJQk5nSUFRY0RUQUNnQ0FDQUJTUVJBUWNEVEFDQUJOZ0lBQ3dKQUFrQUNRRUdrMEFBb0FnQWlBZ1JBUWN6VEFDRUJBMEFnQUNBQktBSUFJZ01nQVNnQ0JDSUZha1lOQWlBQktBSUlJZ0VOQUFzTUFndEJuTkFBS0FJQUlnRkJBRWNnQUNBQlQzRkZCRUJCbk5BQUlBQTJBZ0FMUVFBaEFVSFEwd0FnQmpZQ0FFSE0wd0FnQURZQ0FFR3MwQUJCZnpZQ0FFR3cwQUJCNU5NQUtBSUFOZ0lBUWRqVEFFRUFOZ0lBQTBBZ0FVSEkwQUJxSUFGQnZOQUFhaUlDTmdJQUlBSWdBVUcwMEFCcUlnTTJBZ0FnQVVIQTBBQnFJQU0yQWdBZ0FVSFEwQUJxSUFGQnhOQUFhaUlETmdJQUlBTWdBallDQUNBQlFkalFBR29nQVVITTBBQnFJZ0kyQWdBZ0FpQUROZ0lBSUFGQjFOQUFhaUFDTmdJQUlBRkJJR29pQVVHQUFrY05BQXRCZUNBQWEwRVBjU0lCSUFCcUlnSWdCa0U0YXlJRElBRnJJZ0ZCQVhJMkFnUkJxTkFBUWZUVEFDZ0NBRFlDQUVHWTBBQWdBVFlDQUVHazBBQWdBallDQUNBQUlBTnFRVGcyQWdRTUFnc2dBQ0FDVFEwQUlBSWdBMGtOQUNBQktBSU1RUWh4RFFCQmVDQUNhMEVQY1NJQUlBSnFJZ05CbU5BQUtBSUFJQVpxSWdjZ0FHc2lBRUVCY2pZQ0JDQUJJQVVnQm1vMkFnUkJxTkFBUWZUVEFDZ0NBRFlDQUVHWTBBQWdBRFlDQUVHazBBQWdBellDQUNBQ0lBZHFRVGcyQWdRTUFRc2dBRUdjMEFBb0FnQkpCRUJCbk5BQUlBQTJBZ0FMSUFBZ0Jtb2hBMEhNMHdBaEFRSkFBa0FDUUFOQUlBTWdBU2dDQUVjRVFDQUJLQUlJSWdFTkFRd0NDd3NnQVMwQURFRUljVVVOQVF0QnpOTUFJUUVEUUNBQktBSUFJZ01nQWswRVFDQURJQUVvQWdScUlnVWdBa3NOQXdzZ0FTZ0NDQ0VCREFBTEFBc2dBU0FBTmdJQUlBRWdBU2dDQkNBR2FqWUNCQ0FBUVhnZ0FHdEJEM0ZxSWdrZ0JFRURjallDQkNBRFFYZ2dBMnRCRDNGcUlnWWdCQ0FKYWlJRWF5RUJJQUlnQmtZRVFFR2swQUFnQkRZQ0FFR1kwQUJCbU5BQUtBSUFJQUZxSWdBMkFnQWdCQ0FBUVFGeU5nSUVEQWdMUWFEUUFDZ0NBQ0FHUmdSQVFhRFFBQ0FFTmdJQVFaVFFBRUdVMEFBb0FnQWdBV29pQURZQ0FDQUVJQUJCQVhJMkFnUWdBQ0FFYWlBQU5nSUFEQWdMSUFZb0FnUWlCVUVEY1VFQlJ3MEdJQVZCZUhFaENDQUZRZjhCVFFSQUlBVkJBM1loQXlBR0tBSUlJZ0FnQmlnQ0RDSUNSZ1JBUVl6UUFFR00wQUFvQWdCQmZpQURkM0UyQWdBTUJ3c2dBaUFBTmdJSUlBQWdBallDREF3R0N5QUdLQUlZSVFjZ0JpQUdLQUlNSWdCSEJFQWdBQ0FHS0FJSUlnSTJBZ2dnQWlBQU5nSU1EQVVMSUFaQkZHb2lBaWdDQUNJRlJRUkFJQVlvQWhBaUJVVU5CQ0FHUVJCcUlRSUxBMEFnQWlFRElBVWlBRUVVYWlJQ0tBSUFJZ1VOQUNBQVFSQnFJUUlnQUNnQ0VDSUZEUUFMSUFOQkFEWUNBQXdFQzBGNElBQnJRUTl4SWdFZ0FHb2lCeUFHUVRocklnTWdBV3NpQVVFQmNqWUNCQ0FBSUFOcVFUZzJBZ1FnQWlBRlFUY2dCV3RCRDNGcVFUOXJJZ01nQXlBQ1FSQnFTUnNpQTBFak5nSUVRYWpRQUVIMDB3QW9BZ0EyQWdCQm1OQUFJQUUyQWdCQnBOQUFJQWMyQWdBZ0EwRVFha0hVMHdBcEFnQTNBZ0FnQTBITTB3QXBBZ0EzQWdoQjFOTUFJQU5CQ0dvMkFnQkIwTk1BSUFZMkFnQkJ6Tk1BSUFBMkFnQkIyTk1BUVFBMkFnQWdBMEVrYWlFQkEwQWdBVUVITmdJQUlBVWdBVUVFYWlJQlN3MEFDeUFDSUFOR0RRQWdBeUFES0FJRVFYNXhOZ0lFSUFNZ0F5QUNheUlGTmdJQUlBSWdCVUVCY2pZQ0JDQUZRZjhCVFFSQUlBVkJlSEZCdE5BQWFpRUFBbjlCak5BQUtBSUFJZ0ZCQVNBRlFRTjJkQ0lEY1VVRVFFR00wQUFnQVNBRGNqWUNBQ0FBREFFTElBQW9BZ2dMSWdFZ0FqWUNEQ0FBSUFJMkFnZ2dBaUFBTmdJTUlBSWdBVFlDQ0F3QkMwRWZJUUVnQlVILy8vOEhUUVJBSUFWQkppQUZRUWgyWnlJQWEzWkJBWEVnQUVFQmRHdEJQbW9oQVFzZ0FpQUJOZ0ljSUFKQ0FEY0NFQ0FCUVFKMFFielNBR29oQUVHUTBBQW9BZ0FpQTBFQklBRjBJZ1p4UlFSQUlBQWdBallDQUVHUTBBQWdBeUFHY2pZQ0FDQUNJQUEyQWhnZ0FpQUNOZ0lJSUFJZ0FqWUNEQXdCQ3lBRlFSa2dBVUVCZG10QkFDQUJRUjlIRzNRaEFTQUFLQUlBSVFNQ1FBTkFJQU1pQUNnQ0JFRjRjU0FGUmcwQklBRkJIWFloQXlBQlFRRjBJUUVnQUNBRFFRUnhha0VRYWlJR0tBSUFJZ01OQUFzZ0JpQUNOZ0lBSUFJZ0FEWUNHQ0FDSUFJMkFnd2dBaUFDTmdJSURBRUxJQUFvQWdnaUFTQUNOZ0lNSUFBZ0FqWUNDQ0FDUVFBMkFoZ2dBaUFBTmdJTUlBSWdBVFlDQ0F0Qm1OQUFLQUlBSWdFZ0JFME5BRUdrMEFBb0FnQWlBQ0FFYWlJQ0lBRWdCR3NpQVVFQmNqWUNCRUdZMEFBZ0FUWUNBRUdrMEFBZ0FqWUNBQ0FBSUFSQkEzSTJBZ1FnQUVFSWFpRUJEQWdMUVFBaEFVSDgwd0JCTURZQ0FBd0hDMEVBSVFBTElBZEZEUUFDUUNBR0tBSWNJZ0pCQW5SQnZOSUFhaUlES0FJQUlBWkdCRUFnQXlBQU5nSUFJQUFOQVVHUTBBQkJrTkFBS0FJQVFYNGdBbmR4TmdJQURBSUxJQWRCRUVFVUlBY29BaEFnQmtZYmFpQUFOZ0lBSUFCRkRRRUxJQUFnQnpZQ0dDQUdLQUlRSWdJRVFDQUFJQUkyQWhBZ0FpQUFOZ0lZQ3lBR1FSUnFLQUlBSWdKRkRRQWdBRUVVYWlBQ05nSUFJQUlnQURZQ0dBc2dBU0FJYWlFQklBWWdDR29pQmlnQ0JDRUZDeUFHSUFWQmZuRTJBZ1FnQVNBRWFpQUJOZ0lBSUFRZ0FVRUJjallDQkNBQlFmOEJUUVJBSUFGQmVIRkJ0TkFBYWlFQUFuOUJqTkFBS0FJQUlnSkJBU0FCUVFOMmRDSUJjVVVFUUVHTTBBQWdBU0FDY2pZQ0FDQUFEQUVMSUFBb0FnZ0xJZ0VnQkRZQ0RDQUFJQVEyQWdnZ0JDQUFOZ0lNSUFRZ0FUWUNDQXdCQzBFZklRVWdBVUgvLy84SFRRUkFJQUZCSmlBQlFRaDJaeUlBYTNaQkFYRWdBRUVCZEd0QlBtb2hCUXNnQkNBRk5nSWNJQVJDQURjQ0VDQUZRUUowUWJ6U0FHb2hBRUdRMEFBb0FnQWlBa0VCSUFWMElnTnhSUVJBSUFBZ0JEWUNBRUdRMEFBZ0FpQURjallDQUNBRUlBQTJBaGdnQkNBRU5nSUlJQVFnQkRZQ0RBd0JDeUFCUVJrZ0JVRUJkbXRCQUNBRlFSOUhHM1FoQlNBQUtBSUFJUUFDUUFOQUlBQWlBaWdDQkVGNGNTQUJSZzBCSUFWQkhYWWhBQ0FGUVFGMElRVWdBaUFBUVFSeGFrRVFhaUlES0FJQUlnQU5BQXNnQXlBRU5nSUFJQVFnQWpZQ0dDQUVJQVEyQWd3Z0JDQUVOZ0lJREFFTElBSW9BZ2dpQUNBRU5nSU1JQUlnQkRZQ0NDQUVRUUEyQWhnZ0JDQUNOZ0lNSUFRZ0FEWUNDQXNnQ1VFSWFpRUJEQUlMQWtBZ0IwVU5BQUpBSUFNb0Fod2lBVUVDZEVHODBnQnFJZ0lvQWdBZ0EwWUVRQ0FDSUFBMkFnQWdBQTBCUVpEUUFDQUlRWDRnQVhkeElnZzJBZ0FNQWdzZ0IwRVFRUlFnQnlnQ0VDQURSaHRxSUFBMkFnQWdBRVVOQVFzZ0FDQUhOZ0lZSUFNb0FoQWlBUVJBSUFBZ0FUWUNFQ0FCSUFBMkFoZ0xJQU5CRkdvb0FnQWlBVVVOQUNBQVFSUnFJQUUyQWdBZ0FTQUFOZ0lZQ3dKQUlBVkJEMDBFUUNBRElBUWdCV29pQUVFRGNqWUNCQ0FBSUFOcUlnQWdBQ2dDQkVFQmNqWUNCQXdCQ3lBRElBUnFJZ0lnQlVFQmNqWUNCQ0FESUFSQkEzSTJBZ1FnQWlBRmFpQUZOZ0lBSUFWQi93Rk5CRUFnQlVGNGNVRzAwQUJxSVFBQ2YwR00wQUFvQWdBaUFVRUJJQVZCQTNaMElnVnhSUVJBUVl6UUFDQUJJQVZ5TmdJQUlBQU1BUXNnQUNnQ0NBc2lBU0FDTmdJTUlBQWdBallDQ0NBQ0lBQTJBZ3dnQWlBQk5nSUlEQUVMUVI4aEFTQUZRZi8vL3dkTkJFQWdCVUVtSUFWQkNIWm5JZ0JyZGtFQmNTQUFRUUYwYTBFK2FpRUJDeUFDSUFFMkFod2dBa0lBTndJUUlBRkJBblJCdk5JQWFpRUFRUUVnQVhRaUJDQUljVVVFUUNBQUlBSTJBZ0JCa05BQUlBUWdDSEkyQWdBZ0FpQUFOZ0lZSUFJZ0FqWUNDQ0FDSUFJMkFnd01BUXNnQlVFWklBRkJBWFpyUVFBZ0FVRWZSeHQwSVFFZ0FDZ0NBQ0VFQWtBRFFDQUVJZ0FvQWdSQmVIRWdCVVlOQVNBQlFSMTJJUVFnQVVFQmRDRUJJQUFnQkVFRWNXcEJFR29pQmlnQ0FDSUVEUUFMSUFZZ0FqWUNBQ0FDSUFBMkFoZ2dBaUFDTmdJTUlBSWdBallDQ0F3QkN5QUFLQUlJSWdFZ0FqWUNEQ0FBSUFJMkFnZ2dBa0VBTmdJWUlBSWdBRFlDRENBQ0lBRTJBZ2dMSUFOQkNHb2hBUXdCQ3dKQUlBbEZEUUFDUUNBQUtBSWNJZ0ZCQW5SQnZOSUFhaUlDS0FJQUlBQkdCRUFnQWlBRE5nSUFJQU1OQVVHUTBBQWdDMEYrSUFGM2NUWUNBQXdDQ3lBSlFSQkJGQ0FKS0FJUUlBQkdHMm9nQXpZQ0FDQURSUTBCQ3lBRElBazJBaGdnQUNnQ0VDSUJCRUFnQXlBQk5nSVFJQUVnQXpZQ0dBc2dBRUVVYWlnQ0FDSUJSUTBBSUFOQkZHb2dBVFlDQUNBQklBTTJBaGdMQWtBZ0JVRVBUUVJBSUFBZ0JDQUZhaUlCUVFOeU5nSUVJQUFnQVdvaUFTQUJLQUlFUVFGeU5nSUVEQUVMSUFBZ0JHb2lCeUFGUVFGeU5nSUVJQUFnQkVFRGNqWUNCQ0FGSUFkcUlBVTJBZ0FnQ0FSQUlBaEJlSEZCdE5BQWFpRUJRYURRQUNnQ0FDRURBbjlCQVNBSVFRTjJkQ0lDSUFaeFJRUkFRWXpRQUNBQ0lBWnlOZ0lBSUFFTUFRc2dBU2dDQ0FzaUFpQUROZ0lNSUFFZ0F6WUNDQ0FESUFFMkFnd2dBeUFDTmdJSUMwR2cwQUFnQnpZQ0FFR1UwQUFnQlRZQ0FBc2dBRUVJYWlFQkN5QUtRUkJxSkFBZ0FRdERBQ0FBUlFSQVB3QkJFSFFQQ3dKQUlBQkIvLzhEY1EwQUlBQkJBRWdOQUNBQVFSQjJRQUFpQUVGL1JnUkFRZnpUQUVFd05nSUFRWDhQQ3lBQVFSQjBEd3NBQ3d2Y1B5SUFRWUFJQ3drQkFBQUFBZ0FBQUFNQVFaUUlDd1VFQUFBQUJRQkJwQWdMQ1FZQUFBQUhBQUFBQ0FCQjNBZ0xpaTFKYm5aaGJHbGtJR05vWVhJZ2FXNGdkWEpzSUhGMVpYSjVBRk53WVc0Z1kyRnNiR0poWTJzZ1pYSnliM0lnYVc0Z2IyNWZZbTlrZVFCRGIyNTBaVzUwTFV4bGJtZDBhQ0J2ZG1WeVpteHZkd0JEYUhWdWF5QnphWHBsSUc5MlpYSm1iRzkzQUZKbGMzQnZibk5sSUc5MlpYSm1iRzkzQUVsdWRtRnNhV1FnYldWMGFHOWtJR1p2Y2lCSVZGUlFMM2d1ZUNCeVpYRjFaWE4wQUVsdWRtRnNhV1FnYldWMGFHOWtJR1p2Y2lCU1ZGTlFMM2d1ZUNCeVpYRjFaWE4wQUVWNGNHVmpkR1ZrSUZOUFZWSkRSU0J0WlhSb2IyUWdabTl5SUVsRFJTOTRMbmdnY21WeGRXVnpkQUJKYm5aaGJHbGtJR05vWVhJZ2FXNGdkWEpzSUdaeVlXZHRaVzUwSUhOMFlYSjBBRVY0Y0dWamRHVmtJR1J2ZEFCVGNHRnVJR05oYkd4aVlXTnJJR1Z5Y205eUlHbHVJRzl1WDNOMFlYUjFjd0JKYm5aaGJHbGtJSEpsYzNCdmJuTmxJSE4wWVhSMWN3QkpiblpoYkdsa0lHTm9ZWEpoWTNSbGNpQnBiaUJqYUhWdWF5QmxlSFJsYm5OcGIyNXpBRlZ6WlhJZ1kyRnNiR0poWTJzZ1pYSnliM0lBWUc5dVgzSmxjMlYwWUNCallXeHNZbUZqYXlCbGNuSnZjZ0JnYjI1ZlkyaDFibXRmYUdWaFpHVnlZQ0JqWVd4c1ltRmpheUJsY25KdmNnQmdiMjVmYldWemMyRm5aVjlpWldkcGJtQWdZMkZzYkdKaFkyc2daWEp5YjNJQVlHOXVYMk5vZFc1clgyVjRkR1Z1YzJsdmJsOTJZV3gxWldBZ1kyRnNiR0poWTJzZ1pYSnliM0lBWUc5dVgzTjBZWFIxYzE5amIyMXdiR1YwWldBZ1kyRnNiR0poWTJzZ1pYSnliM0lBWUc5dVgzWmxjbk5wYjI1ZlkyOXRjR3hsZEdWZ0lHTmhiR3hpWVdOcklHVnljbTl5QUdCdmJsOTFjbXhmWTI5dGNHeGxkR1ZnSUdOaGJHeGlZV05ySUdWeWNtOXlBR0J2Ymw5amFIVnVhMTlqYjIxd2JHVjBaV0FnWTJGc2JHSmhZMnNnWlhKeWIzSUFZRzl1WDJobFlXUmxjbDkyWVd4MVpWOWpiMjF3YkdWMFpXQWdZMkZzYkdKaFkyc2daWEp5YjNJQVlHOXVYMjFsYzNOaFoyVmZZMjl0Y0d4bGRHVmdJR05oYkd4aVlXTnJJR1Z5Y205eUFHQnZibDl0WlhSb2IyUmZZMjl0Y0d4bGRHVmdJR05oYkd4aVlXTnJJR1Z5Y205eUFHQnZibDlvWldGa1pYSmZabWxsYkdSZlkyOXRjR3hsZEdWZ0lHTmhiR3hpWVdOcklHVnljbTl5QUdCdmJsOWphSFZ1YTE5bGVIUmxibk5wYjI1ZmJtRnRaV0FnWTJGc2JHSmhZMnNnWlhKeWIzSUFWVzVsZUhCbFkzUmxaQ0JqYUdGeUlHbHVJSFZ5YkNCelpYSjJaWElBU1c1MllXeHBaQ0JvWldGa1pYSWdkbUZzZFdVZ1kyaGhjZ0JKYm5aaGJHbGtJR2hsWVdSbGNpQm1hV1ZzWkNCamFHRnlBRk53WVc0Z1kyRnNiR0poWTJzZ1pYSnliM0lnYVc0Z2IyNWZkbVZ5YzJsdmJnQkpiblpoYkdsa0lHMXBibTl5SUhabGNuTnBiMjRBU1c1MllXeHBaQ0J0WVdwdmNpQjJaWEp6YVc5dUFFVjRjR1ZqZEdWa0lITndZV05sSUdGbWRHVnlJSFpsY25OcGIyNEFSWGh3WldOMFpXUWdRMUpNUmlCaFpuUmxjaUIyWlhKemFXOXVBRWx1ZG1Gc2FXUWdTRlJVVUNCMlpYSnphVzl1QUVsdWRtRnNhV1FnYUdWaFpHVnlJSFJ2YTJWdUFGTndZVzRnWTJGc2JHSmhZMnNnWlhKeWIzSWdhVzRnYjI1ZmRYSnNBRWx1ZG1Gc2FXUWdZMmhoY21GamRHVnljeUJwYmlCMWNtd0FWVzVsZUhCbFkzUmxaQ0J6ZEdGeWRDQmphR0Z5SUdsdUlIVnliQUJFYjNWaWJHVWdRQ0JwYmlCMWNtd0FSVzF3ZEhrZ1EyOXVkR1Z1ZEMxTVpXNW5kR2dBU1c1MllXeHBaQ0JqYUdGeVlXTjBaWElnYVc0Z1EyOXVkR1Z1ZEMxTVpXNW5kR2dBUkhWd2JHbGpZWFJsSUVOdmJuUmxiblF0VEdWdVozUm9BRWx1ZG1Gc2FXUWdZMmhoY2lCcGJpQjFjbXdnY0dGMGFBQkRiMjUwWlc1MExVeGxibWQwYUNCallXNG5kQ0JpWlNCd2NtVnpaVzUwSUhkcGRHZ2dWSEpoYm5ObVpYSXRSVzVqYjJScGJtY0FTVzUyWVd4cFpDQmphR0Z5WVdOMFpYSWdhVzRnWTJoMWJtc2djMmw2WlFCVGNHRnVJR05oYkd4aVlXTnJJR1Z5Y205eUlHbHVJRzl1WDJobFlXUmxjbDkyWVd4MVpRQlRjR0Z1SUdOaGJHeGlZV05ySUdWeWNtOXlJR2x1SUc5dVgyTm9kVzVyWDJWNGRHVnVjMmx2Ymw5MllXeDFaUUJKYm5aaGJHbGtJR05vWVhKaFkzUmxjaUJwYmlCamFIVnVheUJsZUhSbGJuTnBiMjV6SUhaaGJIVmxBRTFwYzNOcGJtY2daWGh3WldOMFpXUWdURVlnWVdaMFpYSWdhR1ZoWkdWeUlIWmhiSFZsQUVsdWRtRnNhV1FnWUZSeVlXNXpabVZ5TFVWdVkyOWthVzVuWUNCb1pXRmtaWElnZG1Gc2RXVUFTVzUyWVd4cFpDQmphR0Z5WVdOMFpYSWdhVzRnWTJoMWJtc2daWGgwWlc1emFXOXVjeUJ4ZFc5MFpTQjJZV3gxWlFCSmJuWmhiR2xrSUdOb1lYSmhZM1JsY2lCcGJpQmphSFZ1YXlCbGVIUmxibk5wYjI1eklIRjFiM1JsWkNCMllXeDFaUUJRWVhWelpXUWdZbmtnYjI1ZmFHVmhaR1Z5YzE5amIyMXdiR1YwWlFCSmJuWmhiR2xrSUVWUFJpQnpkR0YwWlFCdmJsOXlaWE5sZENCd1lYVnpaUUJ2Ymw5amFIVnVhMTlvWldGa1pYSWdjR0YxYzJVQWIyNWZiV1Z6YzJGblpWOWlaV2RwYmlCd1lYVnpaUUJ2Ymw5amFIVnVhMTlsZUhSbGJuTnBiMjVmZG1Gc2RXVWdjR0YxYzJVQWIyNWZjM1JoZEhWelgyTnZiWEJzWlhSbElIQmhkWE5sQUc5dVgzWmxjbk5wYjI1ZlkyOXRjR3hsZEdVZ2NHRjFjMlVBYjI1ZmRYSnNYMk52YlhCc1pYUmxJSEJoZFhObEFHOXVYMk5vZFc1clgyTnZiWEJzWlhSbElIQmhkWE5sQUc5dVgyaGxZV1JsY2w5MllXeDFaVjlqYjIxd2JHVjBaU0J3WVhWelpRQnZibDl0WlhOellXZGxYMk52YlhCc1pYUmxJSEJoZFhObEFHOXVYMjFsZEdodlpGOWpiMjF3YkdWMFpTQndZWFZ6WlFCdmJsOW9aV0ZrWlhKZlptbGxiR1JmWTI5dGNHeGxkR1VnY0dGMWMyVUFiMjVmWTJoMWJtdGZaWGgwWlc1emFXOXVYMjVoYldVZ2NHRjFjMlVBVlc1bGVIQmxZM1JsWkNCemNHRmpaU0JoWm5SbGNpQnpkR0Z5ZENCc2FXNWxBRk53WVc0Z1kyRnNiR0poWTJzZ1pYSnliM0lnYVc0Z2IyNWZZMmgxYm10ZlpYaDBaVzV6YVc5dVgyNWhiV1VBU1c1MllXeHBaQ0JqYUdGeVlXTjBaWElnYVc0Z1kyaDFibXNnWlhoMFpXNXphVzl1Y3lCdVlXMWxBRkJoZFhObElHOXVJRU5QVGs1RlExUXZWWEJuY21Ga1pRQlFZWFZ6WlNCdmJpQlFVa2t2VlhCbmNtRmtaUUJGZUhCbFkzUmxaQ0JJVkZSUUx6SWdRMjl1Ym1WamRHbHZiaUJRY21WbVlXTmxBRk53WVc0Z1kyRnNiR0poWTJzZ1pYSnliM0lnYVc0Z2IyNWZiV1YwYUc5a0FFVjRjR1ZqZEdWa0lITndZV05sSUdGbWRHVnlJRzFsZEdodlpBQlRjR0Z1SUdOaGJHeGlZV05ySUdWeWNtOXlJR2x1SUc5dVgyaGxZV1JsY2w5bWFXVnNaQUJRWVhWelpXUUFTVzUyWVd4cFpDQjNiM0prSUdWdVkyOTFiblJsY21Wa0FFbHVkbUZzYVdRZ2JXVjBhRzlrSUdWdVkyOTFiblJsY21Wa0FGVnVaWGh3WldOMFpXUWdZMmhoY2lCcGJpQjFjbXdnYzJOb1pXMWhBRkpsY1hWbGMzUWdhR0Z6SUdsdWRtRnNhV1FnWUZSeVlXNXpabVZ5TFVWdVkyOWthVzVuWUFCVFYwbFVRMGhmVUZKUFdGa0FWVk5GWDFCU1QxaFpBRTFMUVVOVVNWWkpWRmtBVlU1UVVrOURSVk5UUVVKTVJWOUZUbFJKVkZrQVEwOVFXUUJOVDFaRlJGOVFSVkpOUVU1RlRsUk1XUUJVVDA5ZlJVRlNURmtBVGs5VVNVWlpBRVpCU1V4RlJGOUVSVkJGVGtSRlRrTlpBRUpCUkY5SFFWUkZWMEZaQUZCTVFWa0FVRlZVQUVOSVJVTkxUMVZVQUVkQlZFVlhRVmxmVkVsTlJVOVZWQUJTUlZGVlJWTlVYMVJKVFVWUFZWUUFUa1ZVVjA5U1MxOURUMDVPUlVOVVgxUkpUVVZQVlZRQVEwOU9Ua1ZEVkVsUFRsOVVTVTFGVDFWVUFFeFBSMGxPWDFSSlRVVlBWVlFBVGtWVVYwOVNTMTlTUlVGRVgxUkpUVVZQVlZRQVVFOVRWQUJOU1ZORVNWSkZRMVJGUkY5U1JWRlZSVk5VQUVOTVNVVk9WRjlEVEU5VFJVUmZVa1ZSVlVWVFZBQkRURWxGVGxSZlEweFBVMFZFWDB4UFFVUmZRa0ZNUVU1RFJVUmZVa1ZSVlVWVFZBQkNRVVJmVWtWUlZVVlRWQUJJVkZSUVgxSkZVVlZGVTFSZlUwVk9WRjlVVDE5SVZGUlFVMTlRVDFKVUFGSkZVRTlTVkFCSlRWOUJYMVJGUVZCUFZBQlNSVk5GVkY5RFQwNVVSVTVVQUU1UFgwTlBUbFJGVGxRQVVFRlNWRWxCVEY5RFQwNVVSVTVVQUVoUVJWOUpUbFpCVEVsRVgwTlBUbE5VUVU1VUFFaFFSVjlEUWw5U1JWTkZWQUJIUlZRQVNGQkZYMU5VVWtsRFZBQkRUMDVHVEVsRFZBQlVSVTFRVDFKQlVsbGZVa1ZFU1ZKRlExUUFVRVZTVFVGT1JVNVVYMUpGUkVsU1JVTlVBRU5QVGs1RlExUUFUVlZNVkVsZlUxUkJWRlZUQUVoUVJWOUpUbFpCVEVsRVgxTlVRVlJWVXdCVVQwOWZUVUZPV1Y5U1JWRlZSVk5VVXdCRlFWSk1XVjlJU1U1VVV3QlZUa0ZXUVVsTVFVSk1SVjlHVDFKZlRFVkhRVXhmVWtWQlUwOU9Vd0JQVUZSSlQwNVRBRk5YU1ZSRFNFbE9SMTlRVWs5VVQwTlBURk1BVmtGU1NVRk9WRjlCVEZOUFgwNUZSMDlVU1VGVVJWTUFUVlZNVkVsUVRFVmZRMGhQU1VORlV3QkpUbFJGVWs1QlRGOVRSVkpXUlZKZlJWSlNUMUlBVjBWQ1gxTkZVbFpGVWw5VlRrdE9UMWRPWDBWU1VrOVNBRkpCU1V4SFZVNWZSVkpTVDFJQVNVUkZUbFJKVkZsZlVGSlBWa2xFUlZKZlFWVlVTRVZPVkVsRFFWUkpUMDVmUlZKU1QxSUFVMU5NWDBORlVsUkpSa2xEUVZSRlgwVlNVazlTQUVsT1ZrRk1TVVJmV0Y5R1QxSlhRVkpFUlVSZlJrOVNBRk5GVkY5UVFWSkJUVVZVUlZJQVIwVlVYMUJCVWtGTlJWUkZVZ0JJVUVWZlZWTkZVZ0JUUlVWZlQxUklSVklBU0ZCRlgwTkNYME5JVlU1TFgwaEZRVVJGVWdCTlMwTkJURVZPUkVGU0FGTkZWRlZRQUZkRlFsOVRSVkpXUlZKZlNWTmZSRTlYVGdCVVJVRlNSRTlYVGdCSVVFVmZRMHhQVTBWRVgwTlBUazVGUTFSSlQwNEFTRVZWVWtsVFZFbERYMFZZVUVsU1FWUkpUMDRBUkVsVFEwOU9Ua1ZEVkVWRVgwOVFSVkpCVkVsUFRnQk9UMDVmUVZWVVNFOVNTVlJCVkVsV1JWOUpUa1pQVWsxQlZFbFBUZ0JJVUVWZlNVNVdRVXhKUkY5V1JWSlRTVTlPQUVoUVJWOURRbDlOUlZOVFFVZEZYMEpGUjBsT0FGTkpWRVZmU1ZOZlJsSlBXa1ZPQUVoUVJWOUpUbFpCVEVsRVgwaEZRVVJGVWw5VVQwdEZUZ0JKVGxaQlRFbEVYMVJQUzBWT0FFWlBVa0pKUkVSRlRnQkZUa2hCVGtORlgxbFBWVkpmUTBGTVRRQklVRVZmU1U1V1FVeEpSRjlWVWt3QVFreFBRMHRGUkY5Q1dWOVFRVkpGVGxSQlRGOURUMDVVVWs5TUFFMUxRMDlNQUVGRFRBQklVRVZmU1U1VVJWSk9RVXdBVWtWUlZVVlRWRjlJUlVGRVJWSmZSa2xGVEVSVFgxUlBUMTlNUVZKSFJWOVZUazlHUmtsRFNVRk1BRWhRUlY5UFN3QlZUa3hKVGtzQVZVNU1UME5MQUZCU1NRQlNSVlJTV1Y5WFNWUklBRWhRUlY5SlRsWkJURWxFWDBOUFRsUkZUbFJmVEVWT1IxUklBRWhRUlY5VlRrVllVRVZEVkVWRVgwTlBUbFJGVGxSZlRFVk9SMVJJQUVaTVZWTklBRkJTVDFCUVFWUkRTQUJOTFZORlFWSkRTQUJWVWtsZlZFOVBYMHhQVGtjQVVGSlBRMFZUVTBsT1J3Qk5TVk5EUlV4TVFVNUZUMVZUWDFCRlVsTkpVMVJGVGxSZlYwRlNUa2xPUndCTlNWTkRSVXhNUVU1RlQxVlRYMWRCVWs1SlRrY0FTRkJGWDBsT1ZrRk1TVVJmVkZKQlRsTkdSVkpmUlU1RFQwUkpUa2NBUlhod1pXTjBaV1FnUTFKTVJnQklVRVZmU1U1V1FVeEpSRjlEU0ZWT1MxOVRTVnBGQUUxUFZrVUFRMDlPVkVsT1ZVVUFTRkJGWDBOQ1gxTlVRVlJWVTE5RFQwMVFURVZVUlFCSVVFVmZRMEpmU0VWQlJFVlNVMTlEVDAxUVRFVlVSUUJJVUVWZlEwSmZWa1ZTVTBsUFRsOURUMDFRVEVWVVJRQklVRVZmUTBKZlZWSk1YME5QVFZCTVJWUkZBRWhRUlY5RFFsOURTRlZPUzE5RFQwMVFURVZVUlFCSVVFVmZRMEpmU0VWQlJFVlNYMVpCVEZWRlgwTlBUVkJNUlZSRkFFaFFSVjlEUWw5RFNGVk9TMTlGV0ZSRlRsTkpUMDVmVmtGTVZVVmZRMDlOVUV4RlZFVUFTRkJGWDBOQ1gwTklWVTVMWDBWWVZFVk9VMGxQVGw5T1FVMUZYME5QVFZCTVJWUkZBRWhRUlY5RFFsOU5SVk5UUVVkRlgwTlBUVkJNUlZSRkFFaFFSVjlEUWw5TlJWUklUMFJmUTA5TlVFeEZWRVVBU0ZCRlgwTkNYMGhGUVVSRlVsOUdTVVZNUkY5RFQwMVFURVZVUlFCRVJVeEZWRVVBU0ZCRlgwbE9Wa0ZNU1VSZlJVOUdYMU5VUVZSRkFFbE9Wa0ZNU1VSZlUxTk1YME5GVWxSSlJrbERRVlJGQUZCQlZWTkZBRTVQWDFKRlUxQlBUbE5GQUZWT1UxVlFVRTlTVkVWRVgwMUZSRWxCWDFSWlVFVUFSMDlPUlFCT1QxUmZRVU5EUlZCVVFVSk1SUUJUUlZKV1NVTkZYMVZPUVZaQlNVeEJRa3hGQUZKQlRrZEZYMDVQVkY5VFFWUkpVMFpKUVVKTVJRQlBVa2xIU1U1ZlNWTmZWVTVTUlVGRFNFRkNURVVBVWtWVFVFOU9VMFZmU1ZOZlUxUkJURVVBVUZWU1IwVUFUVVZTUjBVQVVrVlJWVVZUVkY5SVJVRkVSVkpmUmtsRlRFUlRYMVJQVDE5TVFWSkhSUUJTUlZGVlJWTlVYMGhGUVVSRlVsOVVUMDlmVEVGU1IwVUFVRUZaVEU5QlJGOVVUMDlmVEVGU1IwVUFTVTVUVlVaR1NVTkpSVTVVWDFOVVQxSkJSMFVBU0ZCRlgxQkJWVk5GUkY5VlVFZFNRVVJGQUVoUVJWOVFRVlZUUlVSZlNESmZWVkJIVWtGRVJRQlRUMVZTUTBVQVFVNU9UMVZPUTBVQVZGSkJRMFVBU0ZCRlgxVk9SVmhRUlVOVVJVUmZVMUJCUTBVQVJFVlRRMUpKUWtVQVZVNVRWVUpUUTFKSlFrVUFVa1ZEVDFKRUFFaFFSVjlKVGxaQlRFbEVYMDFGVkVoUFJBQk9UMVJmUms5VlRrUUFVRkpQVUVaSlRrUUFWVTVDU1U1RUFGSkZRa2xPUkFCVlRrRlZWRWhQVWtsYVJVUUFUVVZVU0U5RVgwNVBWRjlCVEV4UFYwVkVBRWhVVkZCZlZrVlNVMGxQVGw5T1QxUmZVMVZRVUU5U1ZFVkVBRUZNVWtWQlJGbGZVa1ZRVDFKVVJVUUFRVU5EUlZCVVJVUUFUazlVWDBsTlVFeEZUVVZPVkVWRUFFeFBUMUJmUkVWVVJVTlVSVVFBU0ZCRlgwTlNYMFZZVUVWRFZFVkVBRWhRUlY5TVJsOUZXRkJGUTFSRlJBQkRVa1ZCVkVWRUFFbE5YMVZUUlVRQVNGQkZYMUJCVlZORlJBQlVTVTFGVDFWVVgwOURRMVZTUlVRQVVFRlpUVVZPVkY5U1JWRlZTVkpGUkFCUVVrVkRUMDVFU1ZSSlQwNWZVa1ZSVlVsU1JVUUFVRkpQV0ZsZlFWVlVTRVZPVkVsRFFWUkpUMDVmVWtWUlZVbFNSVVFBVGtWVVYwOVNTMTlCVlZSSVJVNVVTVU5CVkVsUFRsOVNSVkZWU1ZKRlJBQk1SVTVIVkVoZlVrVlJWVWxTUlVRQVUxTk1YME5GVWxSSlJrbERRVlJGWDFKRlVWVkpVa1ZFQUZWUVIxSkJSRVZmVWtWUlZVbFNSVVFBVUVGSFJWOUZXRkJKVWtWRUFGQlNSVU5QVGtSSlZFbFBUbDlHUVVsTVJVUUFSVmhRUlVOVVFWUkpUMDVmUmtGSlRFVkVBRkpGVmtGTVNVUkJWRWxQVGw5R1FVbE1SVVFBVTFOTVgwaEJUa1JUU0VGTFJWOUdRVWxNUlVRQVRFOURTMFZFQUZSU1FVNVRSazlTVFVGVVNVOU9YMEZRVUV4SlJVUUFUazlVWDAxUFJFbEdTVVZFQUU1UFZGOUZXRlJGVGtSRlJBQkNRVTVFVjBsRVZFaGZURWxOU1ZSZlJWaERSVVZFUlVRQVUwbFVSVjlKVTE5UFZrVlNURTlCUkVWRUFFaEZRVVFBUlhod1pXTjBaV1FnU0ZSVVVDOEFBRjRUQUFBbUV3QUFNQkFBQVBBWEFBQ2RFd0FBRlJJQUFEa1hBQUR3RWdBQUNoQUFBSFVTQUFDdEVnQUFnaE1BQUU4VUFBQi9FQUFBb0JVQUFDTVVBQUNKRWdBQWl4UUFBRTBWQUFEVUVRQUF6eFFBQUJBWUFBREpGZ0FBM0JZQUFNRVJBQURnRndBQXV4UUFBSFFVQUFCOEZRQUE1UlFBQUFnWEFBQWZFQUFBWlJVQUFLTVVBQUFvRlFBQUFoVUFBSmtWQUFBc0VBQUFpeGtBQUU4UEFBRFVEZ0FBYWhBQUFNNFFBQUFDRndBQWlRNEFBRzRUQUFBY0V3QUFaaFFBQUZZWEFBREJFd0FBelJNQUFHd1RBQUJvRndBQVpoY0FBRjhYQUFBaUV3QUF6ZzhBQUdrT0FBRFlEZ0FBWXhZQUFNc1RBQUNxRGdBQUtCY0FBQ1lYQUFERkV3QUFYUllBQU9nUkFBQm5Fd0FBWlJNQUFQSVdBQUJ6RXdBQUhSY0FBUGtXQUFEekVRQUF6dzRBQU00VkFBQU1FZ0FBc3hFQUFLVVJBQUJoRUFBQU1oY0FBTHNUQUVINU5Rc0JBUUJCa0RZTDRBRUJBUUlCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQUFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRQkIvVGNMQVFFQVFaRTRDMTRDQXdJQ0FnSUNBQUFDQWdBQ0FnQUNBZ0lDQWdJQ0FnSUNBQVFBQUFBQUFBSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FBQUFBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBQWdBQ0FFSDlPUXNCQVFCQmtUb0xYZ0lBQWdJQ0FnSUFBQUlDQUFJQ0FBSUNBZ0lDQWdJQ0FnSUFBd0FFQUFBQUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQUFBQUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0FDQUFJQVFmQTdDdzFzYjNObFpXVndMV0ZzYVhabEFFR0pQQXNCQVFCQm9Ed0w0QUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRQUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUJCaVQ0TEFRRUFRYUErQytjQkFRRUJBUUVCQVFFQkFRRUJBZ0VCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVBQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFGamFIVnVhMlZrQUVHd3dBQUxYd0VCQUFFQkFRRUJBQUFCQVFBQkFRQUJBUUVCQVFFQkFRRUJBQUFBQUFBQUFBRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFBQUFBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVBQVFBQkFFR1F3Z0FMSVdWamRHbHZibVZ1ZEMxc1pXNW5kR2h2Ym5KdmVIa3RZMjl1Ym1WamRHbHZiZ0JCd01JQUN5MXlZVzV6Wm1WeUxXVnVZMjlrYVc1bmNHZHlZV1JsRFFvTkNnMEtVMDBOQ2cwS1ZGUlFMME5GTDFSVFVDOEFRZm5DQUFzRkFRSUFBUU1BUVpEREFBdmdBUVFCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFBRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBRUg1eEFBTEJRRUNBQUVEQUVHUXhRQUw0QUVFQVFFRkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRQUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUJCK2NZQUN3UUJBQUFCQUVHUnh3QUwzd0VCQVFBQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQUFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFBRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBRUg2eUFBTEJBRUFBQUlBUVpESkFBdGZBd1FBQUFRRUJBUUVCQVFFQkFRRUJRUUVCQVFFQkFRRUJBUUVCQUFFQUFZSEJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUFBUUFCQUFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQUFBQUFRQVFmcktBQXNFQVFBQUFRQkJrTXNBQ3dFQkFFR3F5d0FMUVFJQUFBQUFBQUFEQXdNREF3TURBd01EQXdNREF3TURBd01EQXdNREF3TURBd0FBQUFBQUFBTURBd01EQXdNREF3TURBd01EQXdNREF3TURBd01EQXdNREFFSDZ6QUFMQkFFQUFBRUFRWkROQUFzQkFRQkJtczBBQ3dZQ0FBQUFBQUlBUWJITkFBczZBd01EQXdNREF3TURBd01EQXdNREF3TURBd01EQXdNREF3TUFBQUFBQUFBREF3TURBd01EQXdNREF3TURBd01EQXdNREF3TURBd01EQXdCQjhNNEFDNVlCVGs5VlRrTkZSVU5MVDFWVVRrVkRWRVZVUlVOU1NVSkZURlZUU0VWVVJVRkVVMFZCVWtOSVVrZEZRMVJKVmtsVVdVeEZUa1JCVWxaRlQxUkpSbGxRVkVsUFRsTkRTRk5GUVZsVFZFRlVRMGhIUlU5U1JFbFNSVU5VVDFKVVVrTklVRUZTUVUxRlZFVlNWVkpEUlVKVFExSkpRa1ZCVWtSUFYwNUJRMFZKVGtST1MwTkxWVUpUUTFKSlFrVklWRlJRTDBGRVZGQXYnLCAnYmFzZTY0JylcbiIsICIndXNlIHN0cmljdCdcblxuY29uc3QgeyBCdWZmZXIgfSA9IHJlcXVpcmUoJ25vZGU6YnVmZmVyJylcblxubW9kdWxlLmV4cG9ydHMgPSBCdWZmZXIuZnJvbSgnQUdGemJRRUFBQUFCSndkZ0FYOEJmMkFEZjM5L0FYOWdBWDhBWUFKL2Z3QmdCSDkvZjM4QmYyQUFBR0FEZjM5L0FBTExBUWdEWlc1MkdIZGhjMjFmYjI1ZmFHVmhaR1Z5YzE5amIyMXdiR1YwWlFBRUEyVnVkaFYzWVhOdFgyOXVYMjFsYzNOaFoyVmZZbVZuYVc0QUFBTmxibllMZDJGemJWOXZibDkxY213QUFRTmxibllPZDJGemJWOXZibDl6ZEdGMGRYTUFBUU5sYm5ZVWQyRnpiVjl2Ymw5b1pXRmtaWEpmWm1sbGJHUUFBUU5sYm5ZVWQyRnpiVjl2Ymw5b1pXRmtaWEpmZG1Gc2RXVUFBUU5sYm5ZTWQyRnpiVjl2Ymw5aWIyUjVBQUVEWlc1MkdIZGhjMjFmYjI1ZmJXVnpjMkZuWlY5amIyMXdiR1YwWlFBQUF5MHNCUVlBQUFJQUFBQUFBQUFDQVFJQUFnSUNBQUFEQUFBQUFBTURBd01CQVFFQkFRRUJBUUVBQUFJQUFBQUVCUUZ3QVJJU0JRTUJBQUlHQ0FGL0FVR0ExQVFMQjlFRklnWnRaVzF2Y25rQ0FBdGZhVzVwZEdsaGJHbDZaUUFJR1Y5ZmFXNWthWEpsWTNSZlpuVnVZM1JwYjI1ZmRHRmliR1VCQUF0c2JHaDBkSEJmYVc1cGRBQUpHR3hzYUhSMGNGOXphRzkxYkdSZmEyVmxjRjloYkdsMlpRQXZER3hzYUhSMGNGOWhiR3h2WXdBTEJtMWhiR3h2WXdBeEMyeHNhSFIwY0Y5bWNtVmxBQXdFWm5KbFpRQU1EMnhzYUhSMGNGOW5aWFJmZEhsd1pRQU5GV3hzYUhSMGNGOW5aWFJmYUhSMGNGOXRZV3B2Y2dBT0ZXeHNhSFIwY0Y5blpYUmZhSFIwY0Y5dGFXNXZjZ0FQRVd4c2FIUjBjRjluWlhSZmJXVjBhRzlrQUJBV2JHeG9kSFJ3WDJkbGRGOXpkR0YwZFhOZlkyOWtaUUFSRW14c2FIUjBjRjluWlhSZmRYQm5jbUZrWlFBU0RHeHNhSFIwY0Y5eVpYTmxkQUFURG14c2FIUjBjRjlsZUdWamRYUmxBQlFVYkd4b2RIUndYM05sZEhScGJtZHpYMmx1YVhRQUZRMXNiR2gwZEhCZlptbHVhWE5vQUJZTWJHeG9kSFJ3WDNCaGRYTmxBQmNOYkd4b2RIUndYM0psYzNWdFpRQVlHMnhzYUhSMGNGOXlaWE4xYldWZllXWjBaWEpmZFhCbmNtRmtaUUFaRUd4c2FIUjBjRjluWlhSZlpYSnlibThBR2hkc2JHaDBkSEJmWjJWMFgyVnljbTl5WDNKbFlYTnZiZ0FiRjJ4c2FIUjBjRjl6WlhSZlpYSnliM0pmY21WaGMyOXVBQndVYkd4b2RIUndYMmRsZEY5bGNuSnZjbDl3YjNNQUhSRnNiR2gwZEhCZlpYSnlibTlmYm1GdFpRQWVFbXhzYUhSMGNGOXRaWFJvYjJSZmJtRnRaUUFmRW14c2FIUjBjRjl6ZEdGMGRYTmZibUZ0WlFBZ0dteHNhSFIwY0Y5elpYUmZiR1Z1YVdWdWRGOW9aV0ZrWlhKekFDRWhiR3hvZEhSd1gzTmxkRjlzWlc1cFpXNTBYMk5vZFc1clpXUmZiR1Z1WjNSb0FDSWRiR3hvZEhSd1gzTmxkRjlzWlc1cFpXNTBYMnRsWlhCZllXeHBkbVVBSXlSc2JHaDBkSEJmYzJWMFgyeGxibWxsYm5SZmRISmhibk5tWlhKZlpXNWpiMlJwYm1jQUpCaHNiR2gwZEhCZmJXVnpjMkZuWlY5dVpXVmtjMTlsYjJZQUxna1hBUUJCQVFzUkFRSURCQVVLQmdjckxTd3FLU2dsSnlZSzc3TUNMQllBUVlqUUFDZ0NBQVJBQUF0QmlOQUFRUUUyQWdBTEZBQWdBQkF3SUFBZ0FqWUNPQ0FBSUFFNkFDZ0xGQUFnQUNBQUx3RXlJQUF0QUM0Z0FCQXZFQUFMSGdFQmYwSEFBQkF5SWdFUU1DQUJRWUFJTmdJNElBRWdBRG9BS0NBQkM0OE1BUWQvQWtBZ0FFVU5BQ0FBUVFocklnRWdBRUVFYXlnQ0FDSUFRWGh4SWdScUlRVUNRQ0FBUVFGeERRQWdBRUVEY1VVTkFTQUJJQUVvQWdBaUFHc2lBVUdjMEFBb0FnQkpEUUVnQUNBRWFpRUVBa0FDUUVHZzBBQW9BZ0FnQVVjRVFDQUFRZjhCVFFSQUlBQkJBM1loQXlBQktBSUlJZ0FnQVNnQ0RDSUNSZ1JBUVl6UUFFR00wQUFvQWdCQmZpQURkM0UyQWdBTUJRc2dBaUFBTmdJSUlBQWdBallDREF3RUN5QUJLQUlZSVFZZ0FTQUJLQUlNSWdCSEJFQWdBQ0FCS0FJSUlnSTJBZ2dnQWlBQU5nSU1EQU1MSUFGQkZHb2lBeWdDQUNJQ1JRUkFJQUVvQWhBaUFrVU5BaUFCUVJCcUlRTUxBMEFnQXlFSElBSWlBRUVVYWlJREtBSUFJZ0lOQUNBQVFSQnFJUU1nQUNnQ0VDSUNEUUFMSUFkQkFEWUNBQXdDQ3lBRktBSUVJZ0JCQTNGQkEwY05BaUFGSUFCQmZuRTJBZ1JCbE5BQUlBUTJBZ0FnQlNBRU5nSUFJQUVnQkVFQmNqWUNCQXdEQzBFQUlRQUxJQVpGRFFBQ1FDQUJLQUljSWdKQkFuUkJ2TklBYWlJREtBSUFJQUZHQkVBZ0F5QUFOZ0lBSUFBTkFVR1EwQUJCa05BQUtBSUFRWDRnQW5keE5nSUFEQUlMSUFaQkVFRVVJQVlvQWhBZ0FVWWJhaUFBTmdJQUlBQkZEUUVMSUFBZ0JqWUNHQ0FCS0FJUUlnSUVRQ0FBSUFJMkFoQWdBaUFBTmdJWUN5QUJRUlJxS0FJQUlnSkZEUUFnQUVFVWFpQUNOZ0lBSUFJZ0FEWUNHQXNnQVNBRlR3MEFJQVVvQWdRaUFFRUJjVVVOQUFKQUFrQUNRQUpBSUFCQkFuRkZCRUJCcE5BQUtBSUFJQVZHQkVCQnBOQUFJQUUyQWdCQm1OQUFRWmpRQUNnQ0FDQUVhaUlBTmdJQUlBRWdBRUVCY2pZQ0JDQUJRYURRQUNnQ0FFY05Ca0dVMEFCQkFEWUNBRUdnMEFCQkFEWUNBQXdHQzBHZzBBQW9BZ0FnQlVZRVFFR2cwQUFnQVRZQ0FFR1UwQUJCbE5BQUtBSUFJQVJxSWdBMkFnQWdBU0FBUVFGeU5nSUVJQUFnQVdvZ0FEWUNBQXdHQ3lBQVFYaHhJQVJxSVFRZ0FFSC9BVTBFUUNBQVFRTjJJUU1nQlNnQ0NDSUFJQVVvQWd3aUFrWUVRRUdNMEFCQmpOQUFLQUlBUVg0Z0EzZHhOZ0lBREFVTElBSWdBRFlDQ0NBQUlBSTJBZ3dNQkFzZ0JTZ0NHQ0VHSUFVZ0JTZ0NEQ0lBUndSQVFaelFBQ2dDQUJvZ0FDQUZLQUlJSWdJMkFnZ2dBaUFBTmdJTURBTUxJQVZCRkdvaUF5Z0NBQ0lDUlFSQUlBVW9BaEFpQWtVTkFpQUZRUkJxSVFNTEEwQWdBeUVISUFJaUFFRVVhaUlES0FJQUlnSU5BQ0FBUVJCcUlRTWdBQ2dDRUNJQ0RRQUxJQWRCQURZQ0FBd0NDeUFGSUFCQmZuRTJBZ1FnQVNBRWFpQUVOZ0lBSUFFZ0JFRUJjallDQkF3REMwRUFJUUFMSUFaRkRRQUNRQ0FGS0FJY0lnSkJBblJCdk5JQWFpSURLQUlBSUFWR0JFQWdBeUFBTmdJQUlBQU5BVUdRMEFCQmtOQUFLQUlBUVg0Z0FuZHhOZ0lBREFJTElBWkJFRUVVSUFZb0FoQWdCVVliYWlBQU5nSUFJQUJGRFFFTElBQWdCallDR0NBRktBSVFJZ0lFUUNBQUlBSTJBaEFnQWlBQU5nSVlDeUFGUVJScUtBSUFJZ0pGRFFBZ0FFRVVhaUFDTmdJQUlBSWdBRFlDR0FzZ0FTQUVhaUFFTmdJQUlBRWdCRUVCY2pZQ0JDQUJRYURRQUNnQ0FFY05BRUdVMEFBZ0JEWUNBQXdCQ3lBRVFmOEJUUVJBSUFSQmVIRkJ0TkFBYWlFQUFuOUJqTkFBS0FJQUlnSkJBU0FFUVFOMmRDSURjVVVFUUVHTTBBQWdBaUFEY2pZQ0FDQUFEQUVMSUFBb0FnZ0xJZ0lnQVRZQ0RDQUFJQUUyQWdnZ0FTQUFOZ0lNSUFFZ0FqWUNDQXdCQzBFZklRSWdCRUgvLy84SFRRUkFJQVJCSmlBRVFRaDJaeUlBYTNaQkFYRWdBRUVCZEd0QlBtb2hBZ3NnQVNBQ05nSWNJQUZDQURjQ0VDQUNRUUowUWJ6U0FHb2hBQUpBUVpEUUFDZ0NBQ0lEUVFFZ0FuUWlCM0ZGQkVBZ0FDQUJOZ0lBUVpEUUFDQURJQWR5TmdJQUlBRWdBRFlDR0NBQklBRTJBZ2dnQVNBQk5nSU1EQUVMSUFSQkdTQUNRUUYyYTBFQUlBSkJIMGNiZENFQ0lBQW9BZ0FoQUFKQUEwQWdBQ0lES0FJRVFYaHhJQVJHRFFFZ0FrRWRkaUVBSUFKQkFYUWhBaUFESUFCQkJIRnFRUkJxSWdjb0FnQWlBQTBBQ3lBSElBRTJBZ0FnQVNBRE5nSVlJQUVnQVRZQ0RDQUJJQUUyQWdnTUFRc2dBeWdDQ0NJQUlBRTJBZ3dnQXlBQk5nSUlJQUZCQURZQ0dDQUJJQU0yQWd3Z0FTQUFOZ0lJQzBHczBBQkJyTkFBS0FJQVFRRnJJZ0JCZnlBQUd6WUNBQXNMQndBZ0FDMEFLQXNIQUNBQUxRQXFDd2NBSUFBdEFDc0xCd0FnQUMwQUtRc0hBQ0FBTHdFeUN3Y0FJQUF0QUM0TFFBRUVmeUFBS0FJWUlRRWdBQzBBTFNFQ0lBQXRBQ2doQXlBQUtBSTRJUVFnQUJBd0lBQWdCRFlDT0NBQUlBTTZBQ2dnQUNBQ09nQXRJQUFnQVRZQ0dBdTc0Z0VDQjM4RGZpQUJJQUpxSVFRQ1FDQUFJZ0lvQWd3aUFBMEFJQUlvQWdRRVFDQUNJQUUyQWdRTEl3QkJFR3NpQ0NRQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDZndKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUlBSW9BaHdpQTBFQmF3N2RBZG9CQWRrQkFnTUVCUVlIQ0FrS0N3d05EdGdCRHhEWEFSRVMxZ0VURkJVV0Z4Z1pHaHZnQWQ4QkhCMGUxUUVmSUNFaUl5UWwxQUVtSnlncEtpc3Mwd0hTQVMwdTBRSFFBUzh3TVRJek5EVTJOemc1T2pzOFBUNC9RRUZDUTBSRlJ0c0JSMGhKU3M4QnpnRkx6UUZNekFGTlRrOVFVVkpUVkZWV1YxaFpXbHRjWFY1ZllHRmlZMlJsWm1kb2FXcHJiRzF1YjNCeGNuTjBkWFozZUhsNmUzeDlmbitBQVlFQmdnR0RBWVFCaFFHR0FZY0JpQUdKQVlvQml3R01BWTBCamdHUEFaQUJrUUdTQVpNQmxBR1ZBWllCbHdHWUFaa0JtZ0diQVp3Qm5RR2VBWjhCb0FHaEFhSUJvd0drQWFVQnBnR25BYWdCcVFHcUFhc0JyQUd0QWE0QnJ3R3dBYkVCc2dHekFiUUJ0UUcyQWJjQnl3SEtBYmdCeVFHNUFjZ0J1Z0c3QWJ3QnZRRytBYjhCd0FIQkFjSUJ3d0hFQWNVQnhnRUEzQUVMUVFBTXhnRUxRUTRNeFFFTFFRME14QUVMUVE4TXd3RUxRUkFNd2dFTFFSTU13UUVMUVJRTXdBRUxRUlVNdndFTFFSWU12Z0VMUVJnTXZRRUxRUmtNdkFFTFFSb011d0VMUVJzTXVnRUxRUndNdVFFTFFSME11QUVMUVFnTXR3RUxRUjRNdGdFTFFTQU10UUVMUVI4TXRBRUxRUWNNc3dFTFFTRU1zZ0VMUVNJTXNRRUxRU01Nc0FFTFFTUU1yd0VMUVJJTXJnRUxRUkVNclFFTFFTVU1yQUVMUVNZTXF3RUxRU2NNcWdFTFFTZ01xUUVMUWNNQkRLZ0JDMEVxREtjQkMwRXJES1lCQzBFc0RLVUJDMEV0REtRQkMwRXVES01CQzBFdkRLSUJDMEhFQVF5aEFRdEJNQXlnQVF0Qk5BeWZBUXRCREF5ZUFRdEJNUXlkQVF0Qk1neWNBUXRCTXd5YkFRdEJPUXlhQVF0Qk5ReVpBUXRCeFFFTW1BRUxRUXNNbHdFTFFUb01sZ0VMUVRZTWxRRUxRUW9NbEFFTFFUY01rd0VMUVRnTWtnRUxRVHdNa1FFTFFUc01rQUVMUVQwTWp3RUxRUWtNamdFTFFTa01qUUVMUVQ0TWpBRUxRVDhNaXdFTFFjQUFESW9CQzBIQkFBeUpBUXRCd2dBTWlBRUxRY01BREljQkMwSEVBQXlHQVF0QnhRQU1oUUVMUWNZQURJUUJDMEVYRElNQkMwSEhBQXlDQVF0QnlBQU1nUUVMUWNrQURJQUJDMEhLQUF4L0MwSExBQXgrQzBITkFBeDlDMEhNQUF4OEMwSE9BQXg3QzBIUEFBeDZDMEhRQUF4NUMwSFJBQXg0QzBIU0FBeDNDMEhUQUF4MkMwSFVBQXgxQzBIV0FBeDBDMEhWQUF4ekMwRUdESElMUWRjQURIRUxRUVVNY0F0QjJBQU1id3RCQkF4dUMwSFpBQXh0QzBIYUFBeHNDMEhiQUF4ckMwSGNBQXhxQzBFRERHa0xRZDBBREdnTFFkNEFER2NMUWQ4QURHWUxRZUVBREdVTFFlQUFER1FMUWVJQURHTUxRZU1BREdJTFFRSU1ZUXRCNUFBTVlBdEI1UUFNWHd0QjVnQU1YZ3RCNXdBTVhRdEI2QUFNWEF0QjZRQU1Xd3RCNmdBTVdndEI2d0FNV1F0QjdBQU1XQXRCN1FBTVZ3dEI3Z0FNVmd0Qjd3QU1WUXRCOEFBTVZBdEI4UUFNVXd0QjhnQU1VZ3RCOHdBTVVRdEI5QUFNVUF0QjlRQU1Ud3RCOWdBTVRndEI5d0FNVFF0QitBQU1UQXRCK1FBTVN3dEIrZ0FNU2d0Qit3QU1TUXRCL0FBTVNBdEIvUUFNUnd0Qi9nQU1SZ3RCL3dBTVJRdEJnQUVNUkF0QmdRRU1Rd3RCZ2dFTVFndEJnd0VNUVF0QmhBRU1RQXRCaFFFTVB3dEJoZ0VNUGd0Qmh3RU1QUXRCaUFFTVBBdEJpUUVNT3d0QmlnRU1PZ3RCaXdFTU9RdEJqQUVNT0F0QmpRRU1Od3RCamdFTU5ndEJqd0VNTlF0QmtBRU1OQXRCa1FFTU13dEJrZ0VNTWd0Qmt3RU1NUXRCbEFFTU1BdEJsUUVNTHd0QmxnRU1MZ3RCbHdFTUxRdEJtQUVNTEF0Qm1RRU1Ld3RCbWdFTUtndEJtd0VNS1F0Qm5BRU1LQXRCblFFTUp3dEJuZ0VNSmd0Qm53RU1KUXRCb0FFTUpBdEJvUUVNSXd0Qm9nRU1JZ3RCb3dFTUlRdEJwQUVNSUF0QnBRRU1Id3RCcGdFTUhndEJwd0VNSFF0QnFBRU1IQXRCcVFFTUd3dEJxZ0VNR2d0QnF3RU1HUXRCckFFTUdBdEJyUUVNRnd0QnJnRU1GZ3RCQVF3VkMwR3ZBUXdVQzBHd0FRd1RDMEd4QVF3U0MwR3pBUXdSQzBHeUFRd1FDMEcwQVF3UEMwRzFBUXdPQzBHMkFRd05DMEczQVF3TUMwRzRBUXdMQzBHNUFRd0tDMEc2QVF3SkMwRzdBUXdJQzBIR0FRd0hDMEc4QVF3R0MwRzlBUXdGQzBHK0FRd0VDMEcvQVF3REMwSEFBUXdDQzBIQ0FRd0JDMEhCQVFzaEF3TkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFJQUlDZndKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUovQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FnQWdKL0FrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDZndKQUFrQUNmd0pBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDZndKQUFrQUNRQUpBQW44Q1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FDQUREc1lCQUFFQ0F3UUZCZ2NJQ1FvTERBME9EeEFSRWhNVUZSWVhHQmthR3h3ZEh5QWhJeVVtS0NvckxDOHdNVEl6TkRVMk56azZPenc5bEFOQVFrUkZSa2xMVGs5UVVWSlRWRlZXV0ZwYlhGMWVYMkJoWW1Oa1pXWm5hR3BzYjNCeGMzVjJlSGw2ZTN4L2dBR0JBWUlCZ3dHRUFZVUJoZ0dIQVlnQmlRR0tBWXNCakFHTkFZNEJqd0dRQVpFQmtnR1RBWlFCbFFHV0FaY0JtQUdaQVpvQm13R2NBWjBCbmdHZkFhQUJvUUdpQWFNQnBBR2xBYVlCcHdHb0Fha0JxZ0dyQWF3QnJRR3VBYThCc0FHeEFiSUJzd0cwQWJVQnRnRzNBYmdCdVFHNkFic0J2QUc5QWI0QnZ3SEFBY0VCd2dIREFjUUJ4UUhHQWNjQnlBSEpBY3NCekFITkFjNEJ6d0dLQTRrRGlBT0hBNFFEZ3dPQUEvc0MrZ0w1QXZnQzl3TDBBdk1DOGdMTEFzRUNzQUxaQVFzZ0FTQUVSdzN3QWtIZEFTRURETE1EQ3lBQklBUkhEY2dCUWNNQklRTU1zZ01MSUFFZ0JFY05lMEgzQUNFRERMRURDeUFCSUFSSERYQkI3d0FoQXd5d0F3c2dBU0FFUncxcFFlb0FJUU1NcndNTElBRWdCRWNOWlVIb0FDRURESzREQ3lBQklBUkhEV0pCNWdBaEF3eXRBd3NnQVNBRVJ3MGFRUmdoQXd5c0F3c2dBU0FFUncwVlFSSWhBd3lyQXdzZ0FTQUVSdzFDUWNVQUlRTU1xZ01MSUFFZ0JFY05ORUUvSVFNTXFRTUxJQUVnQkVjTk1rRThJUU1NcUFNTElBRWdCRWNOSzBFeElRTU1wd01MSUFJdEFDNUJBVVlObndNTXdRSUxRUUFoQUFKQUFrQUNRQ0FDTFFBcVJRMEFJQUl0QUN0RkRRQWdBaThCTUNJRFFRSnhSUTBCREFJTElBSXZBVEFpQTBFQmNVVU5BUXRCQVNFQUlBSXRBQ2hCQVVZTkFDQUNMd0V5SWdWQjVBQnJRZVFBU1EwQUlBVkJ6QUZHRFFBZ0JVR3dBa1lOQUNBRFFjQUFjUTBBUVFBaEFDQURRWWdFY1VHQUJFWU5BQ0FEUVNoeFFRQkhJUUFMSUFKQkFEc0JNQ0FDUVFBNkFDOGdBRVVOM3dJZ0FrSUFOd01nRE9BQ0MwRUFJUUFDUUNBQ0tBSTRJZ05GRFFBZ0F5Z0NMQ0lEUlEwQUlBSWdBeEVBQUNFQUN5QUFSUTNNQVNBQVFSVkhEZDBDSUFKQkJEWUNIQ0FDSUFFMkFoUWdBa0d3R0RZQ0VDQUNRUlUyQWd4QkFDRURES1FEQ3lBQklBUkdCRUJCQmlFRERLUURDeUFCUVFGcUlRRkJBQ0VBQWtBZ0FpZ0NPQ0lEUlEwQUlBTW9BbFFpQTBVTkFDQUNJQU1SQUFBaEFBc2dBQTNaQWd3Y0N5QUNRZ0EzQXlCQkVpRURESWtEQ3lBQklBUkhEUlpCSFNFRERLRURDeUFCSUFSSEJFQWdBVUVCYWlFQlFSQWhBd3lJQXd0QkJ5RURES0FEQ3lBQ0lBSXBBeUFpQ2lBRUlBRnJyU0lMZlNJTVFnQWdDaUFNV2hzM0F5QWdDaUFMV0EzVUFrRUlJUU1NbndNTElBRWdCRWNFUUNBQ1FRazJBZ2dnQWlBQk5nSUVRUlFoQXd5R0F3dEJDU0VEREo0REN5QUNLUU1nUWdCU0RjY0JJQUlnQWk4Qk1FR0FBWEk3QVRBTVFnc2dBU0FFUncwL1FkQUFJUU1NbkFNTElBRWdCRVlFUUVFTElRTU1uQU1MSUFGQkFXb2hBVUVBSVFBQ1FDQUNLQUk0SWdORkRRQWdBeWdDVUNJRFJRMEFJQUlnQXhFQUFDRUFDeUFBRGM4Q0RNWUJDMEVBSVFBQ1FDQUNLQUk0SWdORkRRQWdBeWdDU0NJRFJRMEFJQUlnQXhFQUFDRUFDeUFBUlEzR0FTQUFRUlZIRGMwQ0lBSkJDellDSENBQ0lBRTJBaFFnQWtHQ0dUWUNFQ0FDUVJVMkFneEJBQ0VEREpvREMwRUFJUUFDUUNBQ0tBSTRJZ05GRFFBZ0F5Z0NTQ0lEUlEwQUlBSWdBeEVBQUNFQUN5QUFSUTBNSUFCQkZVY055Z0lnQWtFYU5nSWNJQUlnQVRZQ0ZDQUNRWUlaTmdJUUlBSkJGVFlDREVFQUlRTU1tUU1MUVFBaEFBSkFJQUlvQWpnaUEwVU5BQ0FES0FKTUlnTkZEUUFnQWlBREVRQUFJUUFMSUFCRkRjUUJJQUJCRlVjTnh3SWdBa0VMTmdJY0lBSWdBVFlDRkNBQ1FaRVhOZ0lRSUFKQkZUWUNERUVBSVFNTW1BTUxJQUVnQkVZRVFFRVBJUU1NbUFNTElBRXRBQUFpQUVFN1JnMEhJQUJCRFVjTnhBSWdBVUVCYWlFQkRNTUJDMEVBSVFBQ1FDQUNLQUk0SWdORkRRQWdBeWdDVENJRFJRMEFJQUlnQXhFQUFDRUFDeUFBUlEzREFTQUFRUlZIRGNJQ0lBSkJEellDSENBQ0lBRTJBaFFnQWtHUkZ6WUNFQ0FDUVJVMkFneEJBQ0VEREpZREN3TkFJQUV0QUFCQjhEVnFMUUFBSWdCQkFVY0VRQ0FBUVFKSERjRUNJQUlvQWdRaEFFRUFJUU1nQWtFQU5nSUVJQUlnQUNBQlFRRnFJZ0VRTFNJQURjSUNETVVCQ3lBRUlBRkJBV29pQVVjTkFBdEJFaUVEREpVREMwRUFJUUFDUUNBQ0tBSTRJZ05GRFFBZ0F5Z0NUQ0lEUlEwQUlBSWdBeEVBQUNFQUN5QUFSUTNGQVNBQVFSVkhEYjBDSUFKQkd6WUNIQ0FDSUFFMkFoUWdBa0dSRnpZQ0VDQUNRUlUyQWd4QkFDRURESlFEQ3lBQklBUkdCRUJCRmlFRERKUURDeUFDUVFvMkFnZ2dBaUFCTmdJRVFRQWhBQUpBSUFJb0FqZ2lBMFVOQUNBREtBSklJZ05GRFFBZ0FpQURFUUFBSVFBTElBQkZEY0lCSUFCQkZVY051UUlnQWtFVk5nSWNJQUlnQVRZQ0ZDQUNRWUlaTmdJUUlBSkJGVFlDREVFQUlRTU1rd01MSUFFZ0JFY0VRQU5BSUFFdEFBQkI4RGRxTFFBQUlnQkJBa2NFUUFKQUlBQkJBV3NPQk1RQ3ZRSUF2Z0s5QWdzZ0FVRUJhaUVCUVFnaEF3ejhBZ3NnQkNBQlFRRnFJZ0ZIRFFBTFFSVWhBd3lUQXd0QkZTRURESklEQ3dOQUlBRXRBQUJCOERscUxRQUFJZ0JCQWtjRVFDQUFRUUZyRGdURkFyY0N3d0s0QXJjQ0N5QUVJQUZCQVdvaUFVY05BQXRCR0NFRERKRURDeUFCSUFSSEJFQWdBa0VMTmdJSUlBSWdBVFlDQkVFSElRTU0rQUlMUVJraEF3eVFBd3NnQVVFQmFpRUJEQUlMSUFFZ0JFWUVRRUVhSVFNTWp3TUxBa0FnQVMwQUFFRU5hdzRVdFFHL0FiOEJ2d0cvQWI4QnZ3Ry9BYjhCdndHL0FiOEJ2d0cvQWI4QnZ3Ry9BYjhCdndFQXZ3RUxRUUFoQXlBQ1FRQTJBaHdnQWtHdkN6WUNFQ0FDUVFJMkFnd2dBaUFCUVFGcU5nSVVESTREQ3lBQklBUkdCRUJCR3lFRERJNERDeUFCTFFBQUlnQkJPMGNFUUNBQVFRMUhEYkVDSUFGQkFXb2hBUXk2QVFzZ0FVRUJhaUVCQzBFaUlRTU04d0lMSUFFZ0JFWUVRRUVjSVFNTWpBTUxRZ0FoQ2dKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQWdBUzBBQUVFd2F3NDN3UUxBQWdBQkFnTUVCUVlIMEFIUUFkQUIwQUhRQWRBQjBBRUlDUW9MREEzUUFkQUIwQUhRQWRBQjBBSFFBZEFCMEFIUUFkQUIwQUhRQWRBQjBBSFFBZEFCMEFIUUFkQUIwQUhRQWRBQjBBSFFBZEFCRGc4UUVSSVQwQUVMUWdJaENnekFBZ3RDQXlFS0RMOENDMElFSVFvTXZnSUxRZ1VoQ2d5OUFndENCaUVLREx3Q0MwSUhJUW9NdXdJTFFnZ2hDZ3k2QWd0Q0NTRUtETGtDQzBJS0lRb011QUlMUWdzaENneTNBZ3RDRENFS0RMWUNDMElOSVFvTXRRSUxRZzRoQ2d5MEFndENEeUVLRExNQ0MwSUtJUW9Nc2dJTFFnc2hDZ3l4QWd0Q0RDRUtETEFDQzBJTklRb01yd0lMUWc0aENneXVBZ3RDRHlFS0RLMENDMElBSVFvQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFJQUV0QUFCQk1Hc09OOEFDdndJQUFRSURCQVVHQjc0Q3ZnSytBcjRDdmdLK0FyNENDQWtLQ3d3TnZnSytBcjRDdmdLK0FyNEN2Z0srQXI0Q3ZnSytBcjRDdmdLK0FyNEN2Z0srQXI0Q3ZnSytBcjRDdmdLK0FyNEN2Z0srQWc0UEVCRVNFNzRDQzBJQ0lRb012d0lMUWdNaENneStBZ3RDQkNFS0RMMENDMElGSVFvTXZBSUxRZ1loQ2d5N0FndENCeUVLRExvQ0MwSUlJUW9NdVFJTFFna2hDZ3k0QWd0Q0NpRUtETGNDQzBJTElRb010Z0lMUWd3aENneTFBZ3RDRFNFS0RMUUNDMElPSVFvTXN3SUxRZzhoQ2d5eUFndENDaUVLRExFQ0MwSUxJUW9Nc0FJTFFnd2hDZ3l2QWd0Q0RTRUtESzRDQzBJT0lRb01yUUlMUWc4aENneXNBZ3NnQWlBQ0tRTWdJZ29nQkNBQmE2MGlDMzBpREVJQUlBb2dERm9iTndNZ0lBb2dDMWdOcHdKQkh5RURESWtEQ3lBQklBUkhCRUFnQWtFSk5nSUlJQUlnQVRZQ0JFRWxJUU1NOEFJTFFTQWhBd3lJQXd0QkFTRUZJQUl2QVRBaUEwRUljVVVFUUNBQ0tRTWdRZ0JTSVFVTEFrQWdBaTBBTGdSQVFRRWhBQ0FDTFFBcFFRVkdEUUVnQTBIQUFIRkZJQVZ4UlEwQkMwRUFJUUFnQTBIQUFIRU5BRUVDSVFBZ0EwRUljUTBBSUFOQmdBUnhCRUFDUUNBQ0xRQW9RUUZIRFFBZ0FpMEFMVUVLY1EwQVFRVWhBQXdDQzBFRUlRQU1BUXNnQTBFZ2NVVUVRQUpBSUFJdEFDaEJBVVlOQUNBQ0x3RXlJZ0JCNUFCclFlUUFTUTBBSUFCQnpBRkdEUUFnQUVHd0FrWU5BRUVFSVFBZ0EwRW9jVVVOQWlBRFFZZ0VjVUdBQkVZTkFndEJBQ0VBREFFTFFRQkJBeUFDS1FNZ1VCc2hBQXNnQUVFQmF3NEZ2Z0lBc0FFQnBBS2hBZ3RCRVNFRERPMENDeUFDUVFFNkFDOE1oQU1MSUFFZ0JFY05uUUpCSkNFRERJUURDeUFCSUFSSERSeEJ4Z0FoQXd5REF3dEJBQ0VBQWtBZ0FpZ0NPQ0lEUlEwQUlBTW9Ba1FpQTBVTkFDQUNJQU1SQUFBaEFBc2dBRVVOSnlBQVFSVkhEWmdDSUFKQjBBQTJBaHdnQWlBQk5nSVVJQUpCa1JnMkFoQWdBa0VWTmdJTVFRQWhBd3lDQXdzZ0FTQUVSZ1JBUVNnaEF3eUNBd3RCQUNFRElBSkJBRFlDQkNBQ1FRdzJBZ2dnQWlBQklBRVFLaUlBUlEyVUFpQUNRU2MyQWh3Z0FpQUJOZ0lVSUFJZ0FEWUNEQXlCQXdzZ0FTQUVSZ1JBUVNraEF3eUJBd3NnQVMwQUFDSUFRU0JHRFJNZ0FFRUpSdzJWQWlBQlFRRnFJUUVNRkFzZ0FTQUVSd1JBSUFGQkFXb2hBUXdXQzBFcUlRTU0vd0lMSUFFZ0JFWUVRRUVySVFNTS93SUxJQUV0QUFBaUFFRUpSeUFBUVNCSGNRMlFBaUFDTFFBc1FRaEhEZDBDSUFKQkFEb0FMQXpkQWdzZ0FTQUVSZ1JBUVN3aEF3eitBZ3NnQVMwQUFFRUtSdzJPQWlBQlFRRnFJUUVNc0FFTElBRWdCRWNOaWdKQkx5RUREUHdDQ3dOQUlBRXRBQUFpQUVFZ1J3UkFJQUJCQ21zT0JJUUNpQUtJQW9RQ2hnSUxJQVFnQVVFQmFpSUJSdzBBQzBFeElRTU0rd0lMUVRJaEF5QUJJQVJHRGZvQ0lBSW9BZ0FpQUNBRUlBRnJhaUVISUFFZ0FHdEJBMm9oQmdKQUEwQWdBRUh3TzJvdEFBQWdBUzBBQUNJRlFTQnlJQVVnQlVIQkFHdEIvd0Z4UVJwSkcwSC9BWEZIRFFFZ0FFRURSZ1JBUVFZaEFRemlBZ3NnQUVFQmFpRUFJQVFnQVVFQmFpSUJSdzBBQ3lBQ0lBYzJBZ0FNK3dJTElBSkJBRFlDQUF5R0FndEJNeUVESUFRZ0FTSUFSZzM1QWlBRUlBRnJJQUlvQWdBaUFXb2hCeUFBSUFGclFRaHFJUVlDUUFOQUlBRkI5RHRxTFFBQUlBQXRBQUFpQlVFZ2NpQUZJQVZCd1FCclFmOEJjVUVhU1J0Qi93RnhSdzBCSUFGQkNFWUVRRUVGSVFFTTRRSUxJQUZCQVdvaEFTQUVJQUJCQVdvaUFFY05BQXNnQWlBSE5nSUFEUG9DQ3lBQ1FRQTJBZ0FnQUNFQkRJVUNDMEUwSVFNZ0JDQUJJZ0JHRGZnQ0lBUWdBV3NnQWlnQ0FDSUJhaUVISUFBZ0FXdEJCV29oQmdKQUEwQWdBVUhRd2dCcUxRQUFJQUF0QUFBaUJVRWdjaUFGSUFWQndRQnJRZjhCY1VFYVNSdEIvd0Z4UncwQklBRkJCVVlFUUVFSElRRU00QUlMSUFGQkFXb2hBU0FFSUFCQkFXb2lBRWNOQUFzZ0FpQUhOZ0lBRFBrQ0N5QUNRUUEyQWdBZ0FDRUJESVFDQ3lBQklBUkhCRUFEUUNBQkxRQUFRWUErYWkwQUFDSUFRUUZIQkVBZ0FFRUNSZzBKRElFQ0N5QUVJQUZCQVdvaUFVY05BQXRCTUNFRERQZ0NDMEV3SVFNTTl3SUxJQUVnQkVjRVFBTkFJQUV0QUFBaUFFRWdSd1JBSUFCQkNtc09CUDhCL2dIK0FmOEIvZ0VMSUFRZ0FVRUJhaUlCUncwQUMwRTRJUU1NOXdJTFFUZ2hBd3oyQWdzRFFDQUJMUUFBSWdCQklFY2dBRUVKUjNFTjlnRWdCQ0FCUVFGcUlnRkhEUUFMUVR3aEF3ejFBZ3NEUUNBQkxRQUFJZ0JCSUVjRVFBSkFJQUJCQ21zT0JQa0JCQVQ1QVFBTElBQkJMRVlOOVFFTUF3c2dCQ0FCUVFGcUlnRkhEUUFMUVQ4aEF3ejBBZ3RCd0FBaEF5QUJJQVJHRGZNQ0lBSW9BZ0FpQUNBRUlBRnJhaUVGSUFFZ0FHdEJCbW9oQmdKQUEwQWdBRUdBUUdzdEFBQWdBUzBBQUVFZ2NrY05BU0FBUVFaR0Rkc0NJQUJCQVdvaEFDQUVJQUZCQVdvaUFVY05BQXNnQWlBRk5nSUFEUFFDQ3lBQ1FRQTJBZ0FMUVRZaEF3elpBZ3NnQVNBRVJnUkFRY0VBSVFNTThnSUxJQUpCRERZQ0NDQUNJQUUyQWdRZ0FpMEFMRUVCYXc0RSt3SHVBZXdCNndIVUFnc2dBVUVCYWlFQkRQb0JDeUFCSUFSSEJFQURRQUpBSUFFdEFBQWlBRUVnY2lBQUlBQkJ3UUJyUWY4QmNVRWFTUnRCL3dGeElnQkJDVVlOQUNBQVFTQkdEUUFDUUFKQUFrQUNRQ0FBUWVNQWF3NFRBQU1EQXdNREF3TUJBd01EQXdNREF3TURBZ01MSUFGQkFXb2hBVUV4SVFNTTNBSUxJQUZCQVdvaEFVRXlJUU1NMndJTElBRkJBV29oQVVFeklRTU0yZ0lMRFA0QkN5QUVJQUZCQVdvaUFVY05BQXRCTlNFRERQQUNDMEUxSVFNTTd3SUxJQUVnQkVjRVFBTkFJQUV0QUFCQmdEeHFMUUFBUVFGSERmY0JJQVFnQVVFQmFpSUJSdzBBQzBFOUlRTU03d0lMUVQwaEF3enVBZ3RCQUNFQUFrQWdBaWdDT0NJRFJRMEFJQU1vQWtBaUEwVU5BQ0FDSUFNUkFBQWhBQXNnQUVVTkFTQUFRUlZIRGVZQklBSkJ3Z0EyQWh3Z0FpQUJOZ0lVSUFKQjR4ZzJBaEFnQWtFVk5nSU1RUUFoQXd6dEFnc2dBVUVCYWlFQkMwRThJUU1NMGdJTElBRWdCRVlFUUVIQ0FDRURET3NDQ3dKQUEwQUNRQ0FCTFFBQVFRbHJEaGdBQXN3Q3pBTFJBc3dDekFMTUFzd0N6QUxNQXN3Q3pBTE1Bc3dDekFMTUFzd0N6QUxNQXN3Q3pBTE1BZ0RNQWdzZ0JDQUJRUUZxSWdGSERRQUxRY0lBSVFNTTZ3SUxJQUZCQVdvaEFTQUNMUUF0UVFGeFJRMytBUXRCTENFREROQUNDeUFCSUFSSERkNEJRY1FBSVFNTTZBSUxBMEFnQVMwQUFFR1F3QUJxTFFBQVFRRkhEWndCSUFRZ0FVRUJhaUlCUncwQUMwSEZBQ0VERE9jQ0N5QUJMUUFBSWdCQklFWU4vZ0VnQUVFNlJ3M0FBaUFDS0FJRUlRQkJBQ0VESUFKQkFEWUNCQ0FDSUFBZ0FSQXBJZ0FOM2dFTTNRRUxRY2NBSVFNZ0JDQUJJZ0JHRGVVQ0lBUWdBV3NnQWlnQ0FDSUJhaUVISUFBZ0FXdEJCV29oQmdOQUlBRkJrTUlBYWkwQUFDQUFMUUFBSWdWQklISWdCU0FGUWNFQWEwSC9BWEZCR2trYlFmOEJjVWNOdndJZ0FVRUZSZzNDQWlBQlFRRnFJUUVnQkNBQVFRRnFJZ0JIRFFBTElBSWdCellDQUF6bEFndEJ5QUFoQXlBRUlBRWlBRVlONUFJZ0JDQUJheUFDS0FJQUlnRnFJUWNnQUNBQmEwRUphaUVHQTBBZ0FVR1d3Z0JxTFFBQUlBQXRBQUFpQlVFZ2NpQUZJQVZCd1FCclFmOEJjVUVhU1J0Qi93RnhSdzIrQWtFQ0lBRkJDVVlOd2dJYUlBRkJBV29oQVNBRUlBQkJBV29pQUVjTkFBc2dBaUFITmdJQURPUUNDeUFCSUFSR0JFQkJ5UUFoQXd6a0Fnc0NRQUpBSUFFdEFBQWlBRUVnY2lBQUlBQkJ3UUJyUWY4QmNVRWFTUnRCL3dGeFFlNEFhdzRIQUw4Q3Z3Sy9BcjhDdndJQnZ3SUxJQUZCQVdvaEFVRStJUU1NeXdJTElBRkJBV29oQVVFL0lRTU15Z0lMUWNvQUlRTWdCQ0FCSWdCR0RlSUNJQVFnQVdzZ0FpZ0NBQ0lCYWlFR0lBQWdBV3RCQVdvaEJ3TkFJQUZCb01JQWFpMEFBQ0FBTFFBQUlnVkJJSElnQlNBRlFjRUFhMEgvQVhGQkdra2JRZjhCY1VjTnZBSWdBVUVCUmcyK0FpQUJRUUZxSVFFZ0JDQUFRUUZxSWdCSERRQUxJQUlnQmpZQ0FBemlBZ3RCeXdBaEF5QUVJQUVpQUVZTjRRSWdCQ0FCYXlBQ0tBSUFJZ0ZxSVFjZ0FDQUJhMEVPYWlFR0EwQWdBVUdpd2dCcUxRQUFJQUF0QUFBaUJVRWdjaUFGSUFWQndRQnJRZjhCY1VFYVNSdEIvd0Z4UncyN0FpQUJRUTVHRGI0Q0lBRkJBV29oQVNBRUlBQkJBV29pQUVjTkFBc2dBaUFITmdJQURPRUNDMEhNQUNFRElBUWdBU0lBUmczZ0FpQUVJQUZySUFJb0FnQWlBV29oQnlBQUlBRnJRUTlxSVFZRFFDQUJRY0RDQUdvdEFBQWdBQzBBQUNJRlFTQnlJQVVnQlVIQkFHdEIvd0Z4UVJwSkcwSC9BWEZIRGJvQ1FRTWdBVUVQUmcyK0Fob2dBVUVCYWlFQklBUWdBRUVCYWlJQVJ3MEFDeUFDSUFjMkFnQU00QUlMUWMwQUlRTWdCQ0FCSWdCR0RkOENJQVFnQVdzZ0FpZ0NBQ0lCYWlFSElBQWdBV3RCQldvaEJnTkFJQUZCME1JQWFpMEFBQ0FBTFFBQUlnVkJJSElnQlNBRlFjRUFhMEgvQVhGQkdra2JRZjhCY1VjTnVRSkJCQ0FCUVFWR0RiMENHaUFCUVFGcUlRRWdCQ0FBUVFGcUlnQkhEUUFMSUFJZ0J6WUNBQXpmQWdzZ0FTQUVSZ1JBUWM0QUlRTU0zd0lMQWtBQ1FBSkFBa0FnQVMwQUFDSUFRU0J5SUFBZ0FFSEJBR3RCL3dGeFFScEpHMEgvQVhGQjR3QnJEaE1BdkFLOEFyd0N2QUs4QXJ3Q3ZBSzhBcndDdkFLOEFyd0NBYndDdkFLOEFnSUR2QUlMSUFGQkFXb2hBVUhCQUNFRERNZ0NDeUFCUVFGcUlRRkJ3Z0FoQXd6SEFnc2dBVUVCYWlFQlFjTUFJUU1NeGdJTElBRkJBV29oQVVIRUFDRURETVVDQ3lBQklBUkhCRUFnQWtFTk5nSUlJQUlnQVRZQ0JFSEZBQ0VERE1VQ0MwSFBBQ0VERE4wQ0N3SkFBa0FnQVMwQUFFRUthdzRFQVpBQmtBRUFrQUVMSUFGQkFXb2hBUXRCS0NFRERNTUNDeUFCSUFSR0JFQkIwUUFoQXd6Y0Fnc2dBUzBBQUVFZ1J3MEFJQUZCQVdvaEFTQUNMUUF0UVFGeFJRM1FBUXRCRnlFRERNRUNDeUFCSUFSSERjc0JRZElBSVFNTTJRSUxRZE1BSVFNZ0FTQUVSZzNZQWlBQ0tBSUFJZ0FnQkNBQmEyb2hCaUFCSUFCclFRRnFJUVVEUUNBQkxRQUFJQUJCMXNJQWFpMEFBRWNOeHdFZ0FFRUJSZzNLQVNBQVFRRnFJUUFnQkNBQlFRRnFJZ0ZIRFFBTElBSWdCallDQUF6WUFnc2dBU0FFUmdSQVFkVUFJUU1NMkFJTElBRXRBQUJCQ2tjTndnRWdBVUVCYWlFQkRNb0JDeUFCSUFSR0JFQkIxZ0FoQXd6WEFnc0NRQUpBSUFFdEFBQkJDbXNPQkFEREFjTUJBY01CQ3lBQlFRRnFJUUVNeWdFTElBRkJBV29oQVVIS0FDRURETDBDQzBFQUlRQUNRQ0FDS0FJNElnTkZEUUFnQXlnQ1BDSURSUTBBSUFJZ0F4RUFBQ0VBQ3lBQURiOEJRYzBBSVFNTXZBSUxJQUl0QUNsQklrWU56d0lNaVFFTElBUWdBU0lGUmdSQVFkc0FJUU1NMUFJTFFRQWhBRUVCSVFGQkFTRUdRUUFoQXdKQUFuOENRQUpBQWtBQ1FBSkFBa0FDUUNBRkxRQUFRVEJyRGdyRkFjUUJBQUVDQXdRRkJnakRBUXRCQWd3R0MwRUREQVVMUVFRTUJBdEJCUXdEQzBFR0RBSUxRUWNNQVF0QkNBc2hBMEVBSVFGQkFDRUdETDBCQzBFSklRTkJBU0VBUVFBaEFVRUFJUVlNdkFFTElBRWdCRVlFUUVIZEFDRURETk1DQ3lBQkxRQUFRUzVIRGJnQklBRkJBV29oQVF5SUFRc2dBU0FFUncyMkFVSGZBQ0VERE5FQ0N5QUJJQVJIQkVBZ0FrRU9OZ0lJSUFJZ0FUWUNCRUhRQUNFRERMZ0NDMEhnQUNFREROQUNDMEhoQUNFRElBRWdCRVlOendJZ0FpZ0NBQ0lBSUFRZ0FXdHFJUVVnQVNBQWEwRURhaUVHQTBBZ0FTMEFBQ0FBUWVMQ0FHb3RBQUJIRGJFQklBQkJBMFlOc3dFZ0FFRUJhaUVBSUFRZ0FVRUJhaUlCUncwQUN5QUNJQVUyQWdBTXp3SUxRZUlBSVFNZ0FTQUVSZzNPQWlBQ0tBSUFJZ0FnQkNBQmEyb2hCU0FCSUFCclFRSnFJUVlEUUNBQkxRQUFJQUJCNXNJQWFpMEFBRWNOc0FFZ0FFRUNSZzJ2QVNBQVFRRnFJUUFnQkNBQlFRRnFJZ0ZIRFFBTElBSWdCVFlDQUF6T0FndEI0d0FoQXlBQklBUkdEYzBDSUFJb0FnQWlBQ0FFSUFGcmFpRUZJQUVnQUd0QkEyb2hCZ05BSUFFdEFBQWdBRUhwd2dCcUxRQUFSdzJ2QVNBQVFRTkdEYTBCSUFCQkFXb2hBQ0FFSUFGQkFXb2lBVWNOQUFzZ0FpQUZOZ0lBRE0wQ0N5QUJJQVJHQkVCQjVRQWhBd3pOQWdzZ0FVRUJhaUVCUVFBaEFBSkFJQUlvQWpnaUEwVU5BQ0FES0FJd0lnTkZEUUFnQWlBREVRQUFJUUFMSUFBTnFnRkIxZ0FoQXd5ekFnc2dBU0FFUndSQUEwQWdBUzBBQUNJQVFTQkhCRUFDUUFKQUFrQWdBRUhJQUdzT0N3QUJzd0d6QWJNQnN3R3pBYk1Cc3dHekFRS3pBUXNnQVVFQmFpRUJRZElBSVFNTXR3SUxJQUZCQVdvaEFVSFRBQ0VERExZQ0N5QUJRUUZxSVFGQjFBQWhBd3kxQWdzZ0JDQUJRUUZxSWdGSERRQUxRZVFBSVFNTXpBSUxRZVFBSVFNTXl3SUxBMEFnQVMwQUFFSHd3Z0JxTFFBQUlnQkJBVWNFUUNBQVFRSnJEZ09uQWFZQnBRR2tBUXNnQkNBQlFRRnFJZ0ZIRFFBTFFlWUFJUU1NeWdJTElBRkJBV29nQVNBRVJ3MENHa0huQUNFRERNa0NDd05BSUFFdEFBQkI4TVFBYWkwQUFDSUFRUUZIQkVBQ1FDQUFRUUpyRGdTaUFhRUJvQUVBbndFTFFkY0FJUU1Nc1FJTElBUWdBVUVCYWlJQlJ3MEFDMEhvQUNFRERNZ0NDeUFCSUFSR0JFQkI2UUFoQXd6SUFnc0NRQ0FCTFFBQUlnQkJDbXNPR3JjQm13R2JBYlFCbXdHYkFac0Jtd0diQVpzQm13R2JBWnNCbXdHYkFac0Jtd0diQVpzQm13R2JBWnNCcEFHYkFac0JBSmtCQ3lBQlFRRnFDeUVCUVFZaEF3eXRBZ3NEUUNBQkxRQUFRZkRHQUdvdEFBQkJBVWNOZlNBRUlBRkJBV29pQVVjTkFBdEI2Z0FoQXd6RkFnc2dBVUVCYWlBQklBUkhEUUlhUWVzQUlRTU14QUlMSUFFZ0JFWUVRRUhzQUNFRERNUUNDeUFCUVFGcURBRUxJQUVnQkVZRVFFSHRBQ0VERE1NQ0N5QUJRUUZxQ3lFQlFRUWhBd3lvQWdzZ0FTQUVSZ1JBUWU0QUlRTU13UUlMQWtBQ1FBSkFJQUV0QUFCQjhNZ0FhaTBBQUVFQmF3NEhrQUdQQVk0QkFId0JBbzBCQ3lBQlFRRnFJUUVNQ3dzZ0FVRUJhZ3lUQVF0QkFDRURJQUpCQURZQ0hDQUNRWnNTTmdJUUlBSkJCellDRENBQ0lBRkJBV28yQWhRTXdBSUxBa0FEUUNBQkxRQUFRZkRJQUdvdEFBQWlBRUVFUndSQUFrQUNRQ0FBUVFGckRnZVVBWk1Ca2dHTkFRQUVBWTBCQzBIYUFDRURES29DQ3lBQlFRRnFJUUZCM0FBaEF3eXBBZ3NnQkNBQlFRRnFJZ0ZIRFFBTFFlOEFJUU1Nd0FJTElBRkJBV29Na1FFTElBUWdBU0lBUmdSQVFmQUFJUU1NdndJTElBQXRBQUJCTDBjTkFTQUFRUUZxSVFFTUJ3c2dCQ0FCSWdCR0JFQkI4UUFoQXd5K0Fnc2dBQzBBQUNJQlFTOUdCRUFnQUVFQmFpRUJRZDBBSVFNTXBRSUxJQUZCQ21zaUEwRVdTdzBBSUFBaEFVRUJJQU4wUVltQWdBSnhEZmtCQzBFQUlRTWdBa0VBTmdJY0lBSWdBRFlDRkNBQ1FZd2NOZ0lRSUFKQkJ6WUNEQXk4QWdzZ0FTQUVSd1JBSUFGQkFXb2hBVUhlQUNFRERLTUNDMEh5QUNFRERMc0NDeUFCSUFSR0JFQkI5QUFoQXd5N0Fnc0NRQ0FCTFFBQVFmRE1BR290QUFCQkFXc09BL2NCY3dDQ0FRdEI0UUFoQXd5aEFnc2dBU0FFUndSQUEwQWdBUzBBQUVId3lnQnFMUUFBSWdCQkEwY0VRQUpBSUFCQkFXc09BdmtCQUlVQkMwSGZBQ0VEREtNQ0N5QUVJQUZCQVdvaUFVY05BQXRCOHdBaEF3eTZBZ3RCOHdBaEF3eTVBZ3NnQVNBRVJ3UkFJQUpCRHpZQ0NDQUNJQUUyQWdSQjRBQWhBd3lnQWd0QjlRQWhBd3k0QWdzZ0FTQUVSZ1JBUWZZQUlRTU11QUlMSUFKQkR6WUNDQ0FDSUFFMkFnUUxRUU1oQXd5ZEFnc0RRQ0FCTFFBQVFTQkhEWTRDSUFRZ0FVRUJhaUlCUncwQUMwSDNBQ0VERExVQ0N5QUJJQVJHQkVCQitBQWhBd3kxQWdzZ0FTMEFBRUVnUncxNklBRkJBV29oQVF4YkMwRUFJUUFDUUNBQ0tBSTRJZ05GRFFBZ0F5Z0NPQ0lEUlEwQUlBSWdBeEVBQUNFQUN5QUFEWGdNZ0FJTElBRWdCRVlFUUVINkFDRURETE1DQ3lBQkxRQUFRY3dBUncxMElBRkJBV29oQVVFVERIWUxRZnNBSVFNZ0FTQUVSZzJ4QWlBQ0tBSUFJZ0FnQkNBQmEyb2hCU0FCSUFCclFRVnFJUVlEUUNBQkxRQUFJQUJCOE00QWFpMEFBRWNOY3lBQVFRVkdEWFVnQUVFQmFpRUFJQVFnQVVFQmFpSUJSdzBBQ3lBQ0lBVTJBZ0FNc1FJTElBRWdCRVlFUUVIOEFDRURETEVDQ3dKQUFrQWdBUzBBQUVIREFHc09EQUIwZEhSMGRIUjBkSFIwQVhRTElBRkJBV29oQVVIbUFDRURESmdDQ3lBQlFRRnFJUUZCNXdBaEF3eVhBZ3RCL1FBaEF5QUJJQVJHRGE4Q0lBSW9BZ0FpQUNBRUlBRnJhaUVGSUFFZ0FHdEJBbW9oQmdKQUEwQWdBUzBBQUNBQVFlM1BBR290QUFCSERYSWdBRUVDUmcwQklBQkJBV29oQUNBRUlBRkJBV29pQVVjTkFBc2dBaUFGTmdJQURMQUNDeUFDUVFBMkFnQWdCa0VCYWlFQlFSQU1jd3RCL2dBaEF5QUJJQVJHRGE0Q0lBSW9BZ0FpQUNBRUlBRnJhaUVGSUFFZ0FHdEJCV29oQmdKQUEwQWdBUzBBQUNBQVFmYk9BR290QUFCSERYRWdBRUVGUmcwQklBQkJBV29oQUNBRUlBRkJBV29pQVVjTkFBc2dBaUFGTmdJQURLOENDeUFDUVFBMkFnQWdCa0VCYWlFQlFSWU1jZ3RCL3dBaEF5QUJJQVJHRGEwQ0lBSW9BZ0FpQUNBRUlBRnJhaUVGSUFFZ0FHdEJBMm9oQmdKQUEwQWdBUzBBQUNBQVFmek9BR290QUFCSERYQWdBRUVEUmcwQklBQkJBV29oQUNBRUlBRkJBV29pQVVjTkFBc2dBaUFGTmdJQURLNENDeUFDUVFBMkFnQWdCa0VCYWlFQlFRVU1jUXNnQVNBRVJnUkFRWUFCSVFNTXJRSUxJQUV0QUFCQjJRQkhEVzRnQVVFQmFpRUJRUWdNY0FzZ0FTQUVSZ1JBUVlFQklRTU1yQUlMQWtBQ1FDQUJMUUFBUWM0QWF3NERBRzhCYndzZ0FVRUJhaUVCUWVzQUlRTU1rd0lMSUFGQkFXb2hBVUhzQUNFRERKSUNDeUFCSUFSR0JFQkJnZ0VoQXd5ckFnc0NRQUpBSUFFdEFBQkJ5QUJyRGdnQWJtNXVibTV1QVc0TElBRkJBV29oQVVIcUFDRURESklDQ3lBQlFRRnFJUUZCN1FBaEF3eVJBZ3RCZ3dFaEF5QUJJQVJHRGFrQ0lBSW9BZ0FpQUNBRUlBRnJhaUVGSUFFZ0FHdEJBbW9oQmdKQUEwQWdBUzBBQUNBQVFZRFBBR290QUFCSERXd2dBRUVDUmcwQklBQkJBV29oQUNBRUlBRkJBV29pQVVjTkFBc2dBaUFGTmdJQURLb0NDeUFDUVFBMkFnQWdCa0VCYWlFQlFRQU1iUXRCaEFFaEF5QUJJQVJHRGFnQ0lBSW9BZ0FpQUNBRUlBRnJhaUVGSUFFZ0FHdEJCR29oQmdKQUEwQWdBUzBBQUNBQVFZUFBBR290QUFCSERXc2dBRUVFUmcwQklBQkJBV29oQUNBRUlBRkJBV29pQVVjTkFBc2dBaUFGTmdJQURLa0NDeUFDUVFBMkFnQWdCa0VCYWlFQlFTTU1iQXNnQVNBRVJnUkFRWVVCSVFNTXFBSUxBa0FDUUNBQkxRQUFRY3dBYXc0SUFHdHJhMnRyYXdGckN5QUJRUUZxSVFGQjd3QWhBd3lQQWdzZ0FVRUJhaUVCUWZBQUlRTU1qZ0lMSUFFZ0JFWUVRRUdHQVNFRERLY0NDeUFCTFFBQVFjVUFSdzFvSUFGQkFXb2hBUXhnQzBHSEFTRURJQUVnQkVZTnBRSWdBaWdDQUNJQUlBUWdBV3RxSVFVZ0FTQUFhMEVEYWlFR0FrQURRQ0FCTFFBQUlBQkJpTThBYWkwQUFFY05hQ0FBUVFOR0RRRWdBRUVCYWlFQUlBUWdBVUVCYWlJQlJ3MEFDeUFDSUFVMkFnQU1wZ0lMSUFKQkFEWUNBQ0FHUVFGcUlRRkJMUXhwQzBHSUFTRURJQUVnQkVZTnBBSWdBaWdDQUNJQUlBUWdBV3RxSVFVZ0FTQUFhMEVJYWlFR0FrQURRQ0FCTFFBQUlBQkIwTThBYWkwQUFFY05aeUFBUVFoR0RRRWdBRUVCYWlFQUlBUWdBVUVCYWlJQlJ3MEFDeUFDSUFVMkFnQU1wUUlMSUFKQkFEWUNBQ0FHUVFGcUlRRkJLUXhvQ3lBQklBUkdCRUJCaVFFaEF3eWtBZ3RCQVNBQkxRQUFRZDhBUncxbkdpQUJRUUZxSVFFTVhndEJpZ0VoQXlBQklBUkdEYUlDSUFJb0FnQWlBQ0FFSUFGcmFpRUZJQUVnQUd0QkFXb2hCZ05BSUFFdEFBQWdBRUdNendCcUxRQUFSdzFrSUFCQkFVWU4rZ0VnQUVFQmFpRUFJQVFnQVVFQmFpSUJSdzBBQ3lBQ0lBVTJBZ0FNb2dJTFFZc0JJUU1nQVNBRVJnMmhBaUFDS0FJQUlnQWdCQ0FCYTJvaEJTQUJJQUJyUVFKcUlRWUNRQU5BSUFFdEFBQWdBRUdPendCcUxRQUFSdzFrSUFCQkFrWU5BU0FBUVFGcUlRQWdCQ0FCUVFGcUlnRkhEUUFMSUFJZ0JUWUNBQXlpQWdzZ0FrRUFOZ0lBSUFaQkFXb2hBVUVDREdVTFFZd0JJUU1nQVNBRVJnMmdBaUFDS0FJQUlnQWdCQ0FCYTJvaEJTQUJJQUJyUVFGcUlRWUNRQU5BSUFFdEFBQWdBRUh3endCcUxRQUFSdzFqSUFCQkFVWU5BU0FBUVFGcUlRQWdCQ0FCUVFGcUlnRkhEUUFMSUFJZ0JUWUNBQXloQWdzZ0FrRUFOZ0lBSUFaQkFXb2hBVUVmREdRTFFZMEJJUU1nQVNBRVJnMmZBaUFDS0FJQUlnQWdCQ0FCYTJvaEJTQUJJQUJyUVFGcUlRWUNRQU5BSUFFdEFBQWdBRUh5endCcUxRQUFSdzFpSUFCQkFVWU5BU0FBUVFGcUlRQWdCQ0FCUVFGcUlnRkhEUUFMSUFJZ0JUWUNBQXlnQWdzZ0FrRUFOZ0lBSUFaQkFXb2hBVUVKREdNTElBRWdCRVlFUUVHT0FTRURESjhDQ3dKQUFrQWdBUzBBQUVISkFHc09Cd0JpWW1KaVlnRmlDeUFCUVFGcUlRRkIrQUFoQXd5R0Fnc2dBVUVCYWlFQlFma0FJUU1NaFFJTFFZOEJJUU1nQVNBRVJnMmRBaUFDS0FJQUlnQWdCQ0FCYTJvaEJTQUJJQUJyUVFWcUlRWUNRQU5BSUFFdEFBQWdBRUdSendCcUxRQUFSdzFnSUFCQkJVWU5BU0FBUVFGcUlRQWdCQ0FCUVFGcUlnRkhEUUFMSUFJZ0JUWUNBQXllQWdzZ0FrRUFOZ0lBSUFaQkFXb2hBVUVZREdFTFFaQUJJUU1nQVNBRVJnMmNBaUFDS0FJQUlnQWdCQ0FCYTJvaEJTQUJJQUJyUVFKcUlRWUNRQU5BSUFFdEFBQWdBRUdYendCcUxRQUFSdzFmSUFCQkFrWU5BU0FBUVFGcUlRQWdCQ0FCUVFGcUlnRkhEUUFMSUFJZ0JUWUNBQXlkQWdzZ0FrRUFOZ0lBSUFaQkFXb2hBVUVYREdBTFFaRUJJUU1nQVNBRVJnMmJBaUFDS0FJQUlnQWdCQ0FCYTJvaEJTQUJJQUJyUVFacUlRWUNRQU5BSUFFdEFBQWdBRUdhendCcUxRQUFSdzFlSUFCQkJrWU5BU0FBUVFGcUlRQWdCQ0FCUVFGcUlnRkhEUUFMSUFJZ0JUWUNBQXljQWdzZ0FrRUFOZ0lBSUFaQkFXb2hBVUVWREY4TFFaSUJJUU1nQVNBRVJnMmFBaUFDS0FJQUlnQWdCQ0FCYTJvaEJTQUJJQUJyUVFWcUlRWUNRQU5BSUFFdEFBQWdBRUdoendCcUxRQUFSdzFkSUFCQkJVWU5BU0FBUVFGcUlRQWdCQ0FCUVFGcUlnRkhEUUFMSUFJZ0JUWUNBQXliQWdzZ0FrRUFOZ0lBSUFaQkFXb2hBVUVlREY0TElBRWdCRVlFUUVHVEFTRURESm9DQ3lBQkxRQUFRY3dBUncxYklBRkJBV29oQVVFS0RGMExJQUVnQkVZRVFFR1VBU0VEREprQ0N3SkFBa0FnQVMwQUFFSEJBR3NPRHdCY1hGeGNYRnhjWEZ4Y1hGeGNBVndMSUFGQkFXb2hBVUgrQUNFRERJQUNDeUFCUVFGcUlRRkIvd0FoQXd6L0FRc2dBU0FFUmdSQVFaVUJJUU1NbUFJTEFrQUNRQ0FCTFFBQVFjRUFhdzREQUZzQld3c2dBVUVCYWlFQlFmMEFJUU1NL3dFTElBRkJBV29oQVVHQUFTRUREUDRCQzBHV0FTRURJQUVnQkVZTmxnSWdBaWdDQUNJQUlBUWdBV3RxSVFVZ0FTQUFhMEVCYWlFR0FrQURRQ0FCTFFBQUlBQkJwODhBYWkwQUFFY05XU0FBUVFGR0RRRWdBRUVCYWlFQUlBUWdBVUVCYWlJQlJ3MEFDeUFDSUFVMkFnQU1sd0lMSUFKQkFEWUNBQ0FHUVFGcUlRRkJDd3hhQ3lBQklBUkdCRUJCbHdFaEF3eVdBZ3NDUUFKQUFrQUNRQ0FCTFFBQVFTMXJEaU1BVzF0YlcxdGJXMXRiVzF0YlcxdGJXMXRiVzF0Ylcxc0JXMXRiVzFzQ1cxdGJBMXNMSUFGQkFXb2hBVUg3QUNFRERQOEJDeUFCUVFGcUlRRkIvQUFoQXd6K0FRc2dBVUVCYWlFQlFZRUJJUU1NL1FFTElBRkJBV29oQVVHQ0FTRUREUHdCQzBHWUFTRURJQUVnQkVZTmxBSWdBaWdDQUNJQUlBUWdBV3RxSVFVZ0FTQUFhMEVFYWlFR0FrQURRQ0FCTFFBQUlBQkJxYzhBYWkwQUFFY05WeUFBUVFSR0RRRWdBRUVCYWlFQUlBUWdBVUVCYWlJQlJ3MEFDeUFDSUFVMkFnQU1sUUlMSUFKQkFEWUNBQ0FHUVFGcUlRRkJHUXhZQzBHWkFTRURJQUVnQkVZTmt3SWdBaWdDQUNJQUlBUWdBV3RxSVFVZ0FTQUFhMEVGYWlFR0FrQURRQ0FCTFFBQUlBQkJyczhBYWkwQUFFY05WaUFBUVFWR0RRRWdBRUVCYWlFQUlBUWdBVUVCYWlJQlJ3MEFDeUFDSUFVMkFnQU1sQUlMSUFKQkFEWUNBQ0FHUVFGcUlRRkJCZ3hYQzBHYUFTRURJQUVnQkVZTmtnSWdBaWdDQUNJQUlBUWdBV3RxSVFVZ0FTQUFhMEVCYWlFR0FrQURRQ0FCTFFBQUlBQkJ0TThBYWkwQUFFY05WU0FBUVFGR0RRRWdBRUVCYWlFQUlBUWdBVUVCYWlJQlJ3MEFDeUFDSUFVMkFnQU1rd0lMSUFKQkFEWUNBQ0FHUVFGcUlRRkJIQXhXQzBHYkFTRURJQUVnQkVZTmtRSWdBaWdDQUNJQUlBUWdBV3RxSVFVZ0FTQUFhMEVCYWlFR0FrQURRQ0FCTFFBQUlBQkJ0czhBYWkwQUFFY05WQ0FBUVFGR0RRRWdBRUVCYWlFQUlBUWdBVUVCYWlJQlJ3MEFDeUFDSUFVMkFnQU1rZ0lMSUFKQkFEWUNBQ0FHUVFGcUlRRkJKd3hWQ3lBQklBUkdCRUJCbkFFaEF3eVJBZ3NDUUFKQUlBRXRBQUJCMUFCckRnSUFBVlFMSUFGQkFXb2hBVUdHQVNFRERQZ0JDeUFCUVFGcUlRRkJod0VoQXd6M0FRdEJuUUVoQXlBQklBUkdEWThDSUFJb0FnQWlBQ0FFSUFGcmFpRUZJQUVnQUd0QkFXb2hCZ0pBQTBBZ0FTMEFBQ0FBUWJqUEFHb3RBQUJIRFZJZ0FFRUJSZzBCSUFCQkFXb2hBQ0FFSUFGQkFXb2lBVWNOQUFzZ0FpQUZOZ0lBREpBQ0N5QUNRUUEyQWdBZ0JrRUJhaUVCUVNZTVV3dEJuZ0VoQXlBQklBUkdEWTRDSUFJb0FnQWlBQ0FFSUFGcmFpRUZJQUVnQUd0QkFXb2hCZ0pBQTBBZ0FTMEFBQ0FBUWJyUEFHb3RBQUJIRFZFZ0FFRUJSZzBCSUFCQkFXb2hBQ0FFSUFGQkFXb2lBVWNOQUFzZ0FpQUZOZ0lBREk4Q0N5QUNRUUEyQWdBZ0JrRUJhaUVCUVFNTVVndEJud0VoQXlBQklBUkdEWTBDSUFJb0FnQWlBQ0FFSUFGcmFpRUZJQUVnQUd0QkFtb2hCZ0pBQTBBZ0FTMEFBQ0FBUWUzUEFHb3RBQUJIRFZBZ0FFRUNSZzBCSUFCQkFXb2hBQ0FFSUFGQkFXb2lBVWNOQUFzZ0FpQUZOZ0lBREk0Q0N5QUNRUUEyQWdBZ0JrRUJhaUVCUVF3TVVRdEJvQUVoQXlBQklBUkdEWXdDSUFJb0FnQWlBQ0FFSUFGcmFpRUZJQUVnQUd0QkEyb2hCZ0pBQTBBZ0FTMEFBQ0FBUWJ6UEFHb3RBQUJIRFU4Z0FFRURSZzBCSUFCQkFXb2hBQ0FFSUFGQkFXb2lBVWNOQUFzZ0FpQUZOZ0lBREkwQ0N5QUNRUUEyQWdBZ0JrRUJhaUVCUVEwTVVBc2dBU0FFUmdSQVFhRUJJUU1NakFJTEFrQUNRQ0FCTFFBQVFjWUFhdzRMQUU5UFQwOVBUMDlQVHdGUEN5QUJRUUZxSVFGQml3RWhBd3p6QVFzZ0FVRUJhaUVCUVl3QklRTU04Z0VMSUFFZ0JFWUVRRUdpQVNFRERJc0NDeUFCTFFBQVFkQUFSdzFNSUFGQkFXb2hBUXhHQ3lBQklBUkdCRUJCb3dFaEF3eUtBZ3NDUUFKQUlBRXRBQUJCeVFCckRnY0JUVTFOVFUwQVRRc2dBVUVCYWlFQlFZNEJJUU1NOFFFTElBRkJBV29oQVVFaURFMExRYVFCSVFNZ0FTQUVSZzJJQWlBQ0tBSUFJZ0FnQkNBQmEyb2hCU0FCSUFCclFRRnFJUVlDUUFOQUlBRXRBQUFnQUVIQXp3QnFMUUFBUncxTElBQkJBVVlOQVNBQVFRRnFJUUFnQkNBQlFRRnFJZ0ZIRFFBTElBSWdCVFlDQUF5SkFnc2dBa0VBTmdJQUlBWkJBV29oQVVFZERFd0xJQUVnQkVZRVFFR2xBU0VERElnQ0N3SkFBa0FnQVMwQUFFSFNBR3NPQXdCTEFVc0xJQUZCQVdvaEFVR1FBU0VERE84QkN5QUJRUUZxSVFGQkJBeExDeUFCSUFSR0JFQkJwZ0VoQXd5SEFnc0NRQUpBQWtBQ1FBSkFJQUV0QUFCQndRQnJEaFVBVFUxTlRVMU5UVTFOVFFGTlRRSk5UUU5OVFFSTkN5QUJRUUZxSVFGQmlBRWhBd3p4QVFzZ0FVRUJhaUVCUVlrQklRTU04QUVMSUFGQkFXb2hBVUdLQVNFRERPOEJDeUFCUVFGcUlRRkJqd0VoQXd6dUFRc2dBVUVCYWlFQlFaRUJJUU1NN1FFTFFhY0JJUU1nQVNBRVJnMkZBaUFDS0FJQUlnQWdCQ0FCYTJvaEJTQUJJQUJyUVFKcUlRWUNRQU5BSUFFdEFBQWdBRUh0endCcUxRQUFSdzFJSUFCQkFrWU5BU0FBUVFGcUlRQWdCQ0FCUVFGcUlnRkhEUUFMSUFJZ0JUWUNBQXlHQWdzZ0FrRUFOZ0lBSUFaQkFXb2hBVUVSREVrTFFhZ0JJUU1nQVNBRVJnMkVBaUFDS0FJQUlnQWdCQ0FCYTJvaEJTQUJJQUJyUVFKcUlRWUNRQU5BSUFFdEFBQWdBRUhDendCcUxRQUFSdzFISUFCQkFrWU5BU0FBUVFGcUlRQWdCQ0FCUVFGcUlnRkhEUUFMSUFJZ0JUWUNBQXlGQWdzZ0FrRUFOZ0lBSUFaQkFXb2hBVUVzREVnTFFha0JJUU1nQVNBRVJnMkRBaUFDS0FJQUlnQWdCQ0FCYTJvaEJTQUJJQUJyUVFScUlRWUNRQU5BSUFFdEFBQWdBRUhGendCcUxRQUFSdzFHSUFCQkJFWU5BU0FBUVFGcUlRQWdCQ0FCUVFGcUlnRkhEUUFMSUFJZ0JUWUNBQXlFQWdzZ0FrRUFOZ0lBSUFaQkFXb2hBVUVyREVjTFFhb0JJUU1nQVNBRVJnMkNBaUFDS0FJQUlnQWdCQ0FCYTJvaEJTQUJJQUJyUVFKcUlRWUNRQU5BSUFFdEFBQWdBRUhLendCcUxRQUFSdzFGSUFCQkFrWU5BU0FBUVFGcUlRQWdCQ0FCUVFGcUlnRkhEUUFMSUFJZ0JUWUNBQXlEQWdzZ0FrRUFOZ0lBSUFaQkFXb2hBVUVVREVZTElBRWdCRVlFUUVHckFTRURESUlDQ3dKQUFrQUNRQUpBSUFFdEFBQkJ3Z0JyRGc4QUFRSkhSMGRIUjBkSFIwZEhSd05IQ3lBQlFRRnFJUUZCa3dFaEF3enJBUXNnQVVFQmFpRUJRWlFCSVFNTTZnRUxJQUZCQVdvaEFVR1ZBU0VERE9rQkN5QUJRUUZxSVFGQmxnRWhBd3pvQVFzZ0FTQUVSZ1JBUWF3QklRTU1nUUlMSUFFdEFBQkJ4UUJIRFVJZ0FVRUJhaUVCREQwTFFhMEJJUU1nQVNBRVJnMy9BU0FDS0FJQUlnQWdCQ0FCYTJvaEJTQUJJQUJyUVFKcUlRWUNRQU5BSUFFdEFBQWdBRUhOendCcUxRQUFSdzFDSUFCQkFrWU5BU0FBUVFGcUlRQWdCQ0FCUVFGcUlnRkhEUUFMSUFJZ0JUWUNBQXlBQWdzZ0FrRUFOZ0lBSUFaQkFXb2hBVUVPREVNTElBRWdCRVlFUUVHdUFTRUREUDhCQ3lBQkxRQUFRZEFBUncxQUlBRkJBV29oQVVFbERFSUxRYThCSVFNZ0FTQUVSZzM5QVNBQ0tBSUFJZ0FnQkNBQmEyb2hCU0FCSUFCclFRaHFJUVlDUUFOQUlBRXRBQUFnQUVIUXp3QnFMUUFBUncxQUlBQkJDRVlOQVNBQVFRRnFJUUFnQkNBQlFRRnFJZ0ZIRFFBTElBSWdCVFlDQUF6K0FRc2dBa0VBTmdJQUlBWkJBV29oQVVFcURFRUxJQUVnQkVZRVFFR3dBU0VERFAwQkN3SkFBa0FnQVMwQUFFSFZBR3NPQ3dCQVFFQkFRRUJBUUVBQlFBc2dBVUVCYWlFQlFab0JJUU1NNUFFTElBRkJBV29oQVVHYkFTRURET01CQ3lBQklBUkdCRUJCc1FFaEF3ejhBUXNDUUFKQUlBRXRBQUJCd1FCckRoUUFQejgvUHo4L1B6OC9QejgvUHo4L1B6OC9BVDhMSUFGQkFXb2hBVUdaQVNFRERPTUJDeUFCUVFGcUlRRkJuQUVoQXd6aUFRdEJzZ0VoQXlBQklBUkdEZm9CSUFJb0FnQWlBQ0FFSUFGcmFpRUZJQUVnQUd0QkEyb2hCZ0pBQTBBZ0FTMEFBQ0FBUWRuUEFHb3RBQUJIRFQwZ0FFRURSZzBCSUFCQkFXb2hBQ0FFSUFGQkFXb2lBVWNOQUFzZ0FpQUZOZ0lBRFBzQkN5QUNRUUEyQWdBZ0JrRUJhaUVCUVNFTVBndEJzd0VoQXlBQklBUkdEZmtCSUFJb0FnQWlBQ0FFSUFGcmFpRUZJQUVnQUd0QkJtb2hCZ0pBQTBBZ0FTMEFBQ0FBUWQzUEFHb3RBQUJIRFR3Z0FFRUdSZzBCSUFCQkFXb2hBQ0FFSUFGQkFXb2lBVWNOQUFzZ0FpQUZOZ0lBRFBvQkN5QUNRUUEyQWdBZ0JrRUJhaUVCUVJvTVBRc2dBU0FFUmdSQVFiUUJJUU1NK1FFTEFrQUNRQUpBSUFFdEFBQkJ4UUJyRGhFQVBUMDlQVDA5UFQwOUFUMDlQVDA5QWowTElBRkJBV29oQVVHZEFTRURET0VCQ3lBQlFRRnFJUUZCbmdFaEF3emdBUXNnQVVFQmFpRUJRWjhCSVFNTTN3RUxRYlVCSVFNZ0FTQUVSZzMzQVNBQ0tBSUFJZ0FnQkNBQmEyb2hCU0FCSUFCclFRVnFJUVlDUUFOQUlBRXRBQUFnQUVIa3p3QnFMUUFBUncwNklBQkJCVVlOQVNBQVFRRnFJUUFnQkNBQlFRRnFJZ0ZIRFFBTElBSWdCVFlDQUF6NEFRc2dBa0VBTmdJQUlBWkJBV29oQVVFb0REc0xRYllCSVFNZ0FTQUVSZzMyQVNBQ0tBSUFJZ0FnQkNBQmEyb2hCU0FCSUFCclFRSnFJUVlDUUFOQUlBRXRBQUFnQUVIcXp3QnFMUUFBUncwNUlBQkJBa1lOQVNBQVFRRnFJUUFnQkNBQlFRRnFJZ0ZIRFFBTElBSWdCVFlDQUF6M0FRc2dBa0VBTmdJQUlBWkJBV29oQVVFSEREb0xJQUVnQkVZRVFFRzNBU0VERFBZQkN3SkFBa0FnQVMwQUFFSEZBR3NPRGdBNU9UazVPVGs1T1RrNU9Ua0JPUXNnQVVFQmFpRUJRYUVCSVFNTTNRRUxJQUZCQVdvaEFVR2lBU0VERE53QkMwRzRBU0VESUFFZ0JFWU45QUVnQWlnQ0FDSUFJQVFnQVd0cUlRVWdBU0FBYTBFQ2FpRUdBa0FEUUNBQkxRQUFJQUJCN2M4QWFpMEFBRWNOTnlBQVFRSkdEUUVnQUVFQmFpRUFJQVFnQVVFQmFpSUJSdzBBQ3lBQ0lBVTJBZ0FNOVFFTElBSkJBRFlDQUNBR1FRRnFJUUZCRWd3NEMwRzVBU0VESUFFZ0JFWU44d0VnQWlnQ0FDSUFJQVFnQVd0cUlRVWdBU0FBYTBFQmFpRUdBa0FEUUNBQkxRQUFJQUJCOE04QWFpMEFBRWNOTmlBQVFRRkdEUUVnQUVFQmFpRUFJQVFnQVVFQmFpSUJSdzBBQ3lBQ0lBVTJBZ0FNOUFFTElBSkJBRFlDQUNBR1FRRnFJUUZCSUF3M0MwRzZBU0VESUFFZ0JFWU44Z0VnQWlnQ0FDSUFJQVFnQVd0cUlRVWdBU0FBYTBFQmFpRUdBa0FEUUNBQkxRQUFJQUJCOHM4QWFpMEFBRWNOTlNBQVFRRkdEUUVnQUVFQmFpRUFJQVFnQVVFQmFpSUJSdzBBQ3lBQ0lBVTJBZ0FNOHdFTElBSkJBRFlDQUNBR1FRRnFJUUZCRHd3MkN5QUJJQVJHQkVCQnV3RWhBd3p5QVFzQ1FBSkFJQUV0QUFCQnlRQnJEZ2NBTlRVMU5UVUJOUXNnQVVFQmFpRUJRYVVCSVFNTTJRRUxJQUZCQVdvaEFVR21BU0VERE5nQkMwRzhBU0VESUFFZ0JFWU44QUVnQWlnQ0FDSUFJQVFnQVd0cUlRVWdBU0FBYTBFSGFpRUdBa0FEUUNBQkxRQUFJQUJCOU04QWFpMEFBRWNOTXlBQVFRZEdEUUVnQUVFQmFpRUFJQVFnQVVFQmFpSUJSdzBBQ3lBQ0lBVTJBZ0FNOFFFTElBSkJBRFlDQUNBR1FRRnFJUUZCR3d3MEN5QUJJQVJHQkVCQnZRRWhBd3p3QVFzQ1FBSkFBa0FnQVMwQUFFSENBR3NPRWdBME5EUTBORFEwTkRRQk5EUTBORFEwQWpRTElBRkJBV29oQVVHa0FTRURETmdCQ3lBQlFRRnFJUUZCcHdFaEF3elhBUXNnQVVFQmFpRUJRYWdCSVFNTTFnRUxJQUVnQkVZRVFFRytBU0VERE84QkN5QUJMUUFBUWM0QVJ3MHdJQUZCQVdvaEFRd3NDeUFCSUFSR0JFQkJ2d0VoQXd6dUFRc0NRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUNBQkxRQUFRY0VBYXc0VkFBRUNBejhFQlFZL1B6OEhDQWtLQ3o4TURRNFBQd3NnQVVFQmFpRUJRZWdBSVFNTTR3RUxJQUZCQVdvaEFVSHBBQ0VERE9JQkN5QUJRUUZxSVFGQjdnQWhBd3poQVFzZ0FVRUJhaUVCUWZJQUlRTU00QUVMSUFGQkFXb2hBVUh6QUNFREROOEJDeUFCUVFGcUlRRkI5Z0FoQXd6ZUFRc2dBVUVCYWlFQlFmY0FJUU1NM1FFTElBRkJBV29oQVVINkFDRURETndCQ3lBQlFRRnFJUUZCZ3dFaEF3emJBUXNnQVVFQmFpRUJRWVFCSVFNTTJnRUxJQUZCQVdvaEFVR0ZBU0VERE5rQkN5QUJRUUZxSVFGQmtnRWhBd3pZQVFzZ0FVRUJhaUVCUVpnQklRTU0xd0VMSUFGQkFXb2hBVUdnQVNFREROWUJDeUFCUVFGcUlRRkJvd0VoQXd6VkFRc2dBVUVCYWlFQlFhb0JJUU1NMUFFTElBRWdCRWNFUUNBQ1FSQTJBZ2dnQWlBQk5nSUVRYXNCSVFNTTFBRUxRY0FCSVFNTTdBRUxRUUFoQUFKQUlBSW9BamdpQTBVTkFDQURLQUkwSWdORkRRQWdBaUFERVFBQUlRQUxJQUJGRFY0Z0FFRVZSdzBISUFKQjBRQTJBaHdnQWlBQk5nSVVJQUpCc0JjMkFoQWdBa0VWTmdJTVFRQWhBd3pyQVFzZ0FVRUJhaUFCSUFSSERRZ2FRY0lCSVFNTTZnRUxBMEFDUUNBQkxRQUFRUXByRGdRSUFBQUxBQXNnQkNBQlFRRnFJZ0ZIRFFBTFFjTUJJUU1NNlFFTElBRWdCRWNFUUNBQ1FSRTJBZ2dnQWlBQk5nSUVRUUVoQXd6UUFRdEJ4QUVoQXd6b0FRc2dBU0FFUmdSQVFjVUJJUU1NNkFFTEFrQUNRQ0FCTFFBQVFRcHJEZ1FCS0NnQUtBc2dBVUVCYWd3SkN5QUJRUUZxREFVTElBRWdCRVlFUUVIR0FTRURET2NCQ3dKQUFrQWdBUzBBQUVFS2F3NFhBUXNMQVFzTEN3c0xDd3NMQ3dzTEN3c0xDd3NMQ3dBTEN5QUJRUUZxSVFFTFFiQUJJUU1NelFFTElBRWdCRVlFUUVISUFTRURET1lCQ3lBQkxRQUFRU0JIRFFrZ0FrRUFPd0V5SUFGQkFXb2hBVUd6QVNFRERNd0JDd05BSUFFaEFBSkFJQUVnQkVjRVFDQUJMUUFBUVRCclFmOEJjU0lEUVFwSkRRRU1Kd3RCeHdFaEF3em1BUXNDUUNBQ0x3RXlJZ0ZCbVROTERRQWdBaUFCUVFwc0lnVTdBVElnQlVIKy93TnhJQU5CLy84RGMwc05BQ0FBUVFGcUlRRWdBaUFESUFWcUlnTTdBVElnQTBILy93TnhRZWdIU1EwQkN3dEJBQ0VESUFKQkFEWUNIQ0FDUWNFSk5nSVFJQUpCRFRZQ0RDQUNJQUJCQVdvMkFoUU01QUVMSUFKQkFEWUNIQ0FDSUFFMkFoUWdBa0h3RERZQ0VDQUNRUnMyQWd4QkFDRURET01CQ3lBQ0tBSUVJUUFnQWtFQU5nSUVJQUlnQUNBQkVDWWlBQTBCSUFGQkFXb0xJUUZCclFFaEF3eklBUXNnQWtIQkFUWUNIQ0FDSUFBMkFnd2dBaUFCUVFGcU5nSVVRUUFoQXd6Z0FRc2dBaWdDQkNFQUlBSkJBRFlDQkNBQ0lBQWdBUkFtSWdBTkFTQUJRUUZxQ3lFQlFhNEJJUU1NeFFFTElBSkJ3Z0UyQWh3Z0FpQUFOZ0lNSUFJZ0FVRUJhallDRkVFQUlRTU0zUUVMSUFKQkFEWUNIQ0FDSUFFMkFoUWdBa0dYQ3pZQ0VDQUNRUTAyQWd4QkFDRURETndCQ3lBQ1FRQTJBaHdnQWlBQk5nSVVJQUpCNHhBMkFoQWdBa0VKTmdJTVFRQWhBd3piQVFzZ0FrRUNPZ0FvREt3QkMwRUFJUU1nQWtFQU5nSWNJQUpCcndzMkFoQWdBa0VDTmdJTUlBSWdBVUVCYWpZQ0ZBelpBUXRCQWlFRERMOEJDMEVOSVFNTXZnRUxRU1loQXd5OUFRdEJGU0VEREx3QkMwRVdJUU1NdXdFTFFSZ2hBd3k2QVF0QkhDRURETGtCQzBFZElRTU11QUVMUVNBaEF3eTNBUXRCSVNFRERMWUJDMEVqSVFNTXRRRUxRY1lBSVFNTXRBRUxRUzRoQXd5ekFRdEJQU0VERExJQkMwSExBQ0VERExFQkMwSE9BQ0VERExBQkMwSFlBQ0VEREs4QkMwSFpBQ0VEREs0QkMwSGJBQ0VEREswQkMwSHhBQ0VEREt3QkMwSDBBQ0VEREtzQkMwR05BU0VEREtvQkMwR1hBU0VEREtrQkMwR3BBU0VEREtnQkMwR3ZBU0VEREtjQkMwR3hBU0VEREtZQkN5QUNRUUEyQWdBTFFRQWhBeUFDUVFBMkFod2dBaUFCTmdJVUlBSkI4UnMyQWhBZ0FrRUdOZ0lNREwwQkN5QUNRUUEyQWdBZ0JrRUJhaUVCUVNRTE9nQXBJQUlvQWdRaEFDQUNRUUEyQWdRZ0FpQUFJQUVRSnlJQVJRUkFRZVVBSVFNTW93RUxJQUpCK1FBMkFod2dBaUFCTmdJVUlBSWdBRFlDREVFQUlRTU11d0VMSUFCQkZVY0VRQ0FDUVFBMkFod2dBaUFCTmdJVUlBSkJ6QTQyQWhBZ0FrRWdOZ0lNUVFBaEF3eTdBUXNnQWtINEFEWUNIQ0FDSUFFMkFoUWdBa0hLR0RZQ0VDQUNRUlUyQWd4QkFDRURETG9CQ3lBQ1FRQTJBaHdnQWlBQk5nSVVJQUpCamhzMkFoQWdBa0VHTmdJTVFRQWhBd3k1QVFzZ0FrRUFOZ0ljSUFJZ0FUWUNGQ0FDUWY0Uk5nSVFJQUpCQnpZQ0RFRUFJUU1NdUFFTElBSkJBRFlDSENBQ0lBRTJBaFFnQWtHTUhEWUNFQ0FDUVFjMkFneEJBQ0VERExjQkN5QUNRUUEyQWh3Z0FpQUJOZ0lVSUFKQnd3ODJBaEFnQWtFSE5nSU1RUUFoQXd5MkFRc2dBa0VBTmdJY0lBSWdBVFlDRkNBQ1FjTVBOZ0lRSUFKQkJ6WUNERUVBSVFNTXRRRUxJQUlvQWdRaEFDQUNRUUEyQWdRZ0FpQUFJQUVRSlNJQVJRMFJJQUpCNVFBMkFod2dBaUFCTmdJVUlBSWdBRFlDREVFQUlRTU10QUVMSUFJb0FnUWhBQ0FDUVFBMkFnUWdBaUFBSUFFUUpTSUFSUTBnSUFKQjB3QTJBaHdnQWlBQk5nSVVJQUlnQURZQ0RFRUFJUU1Nc3dFTElBSW9BZ1FoQUNBQ1FRQTJBZ1FnQWlBQUlBRVFKU0lBUlEwaUlBSkIwZ0EyQWh3Z0FpQUJOZ0lVSUFJZ0FEWUNERUVBSVFNTXNnRUxJQUlvQWdRaEFDQUNRUUEyQWdRZ0FpQUFJQUVRSlNJQVJRME9JQUpCNVFBMkFod2dBaUFCTmdJVUlBSWdBRFlDREVFQUlRTU1zUUVMSUFJb0FnUWhBQ0FDUVFBMkFnUWdBaUFBSUFFUUpTSUFSUTBkSUFKQjB3QTJBaHdnQWlBQk5nSVVJQUlnQURZQ0RFRUFJUU1Nc0FFTElBSW9BZ1FoQUNBQ1FRQTJBZ1FnQWlBQUlBRVFKU0lBUlEwZklBSkIwZ0EyQWh3Z0FpQUJOZ0lVSUFJZ0FEWUNERUVBSVFNTXJ3RUxJQUJCUDBjTkFTQUJRUUZxQ3lFQlFRVWhBd3lVQVF0QkFDRURJQUpCQURZQ0hDQUNJQUUyQWhRZ0FrSDlFallDRUNBQ1FRYzJBZ3dNckFFTElBSkJBRFlDSENBQ0lBRTJBaFFnQWtIY0NEWUNFQ0FDUVFjMkFneEJBQ0VEREtzQkN5QUNLQUlFSVFBZ0FrRUFOZ0lFSUFJZ0FDQUJFQ1VpQUVVTkJ5QUNRZVVBTmdJY0lBSWdBVFlDRkNBQ0lBQTJBZ3hCQUNFRERLb0JDeUFDS0FJRUlRQWdBa0VBTmdJRUlBSWdBQ0FCRUNVaUFFVU5GaUFDUWRNQU5nSWNJQUlnQVRZQ0ZDQUNJQUEyQWd4QkFDRURES2tCQ3lBQ0tBSUVJUUFnQWtFQU5nSUVJQUlnQUNBQkVDVWlBRVVOR0NBQ1FkSUFOZ0ljSUFJZ0FUWUNGQ0FDSUFBMkFneEJBQ0VEREtnQkN5QUNRUUEyQWh3Z0FpQUJOZ0lVSUFKQnhnbzJBaEFnQWtFSE5nSU1RUUFoQXd5bkFRc2dBaWdDQkNFQUlBSkJBRFlDQkNBQ0lBQWdBUkFsSWdCRkRRTWdBa0hsQURZQ0hDQUNJQUUyQWhRZ0FpQUFOZ0lNUVFBaEF3eW1BUXNnQWlnQ0JDRUFJQUpCQURZQ0JDQUNJQUFnQVJBbElnQkZEUklnQWtIVEFEWUNIQ0FDSUFFMkFoUWdBaUFBTmdJTVFRQWhBd3lsQVFzZ0FpZ0NCQ0VBSUFKQkFEWUNCQ0FDSUFBZ0FSQWxJZ0JGRFJRZ0FrSFNBRFlDSENBQ0lBRTJBaFFnQWlBQU5nSU1RUUFoQXd5a0FRc2dBaWdDQkNFQUlBSkJBRFlDQkNBQ0lBQWdBUkFsSWdCRkRRQWdBa0hsQURZQ0hDQUNJQUUyQWhRZ0FpQUFOZ0lNUVFBaEF3eWpBUXRCMVFBaEF3eUpBUXNnQUVFVlJ3UkFJQUpCQURZQ0hDQUNJQUUyQWhRZ0FrRzVEVFlDRUNBQ1FSbzJBZ3hCQUNFRERLSUJDeUFDUWVRQU5nSWNJQUlnQVRZQ0ZDQUNRZU1YTmdJUUlBSkJGVFlDREVFQUlRTU1vUUVMSUFKQkFEWUNBQ0FHUVFGcUlRRWdBaTBBS1NJQVFTTnJRUXRKRFFRQ1FDQUFRUVpMRFFCQkFTQUFkRUhLQUhGRkRRQU1CUXRCQUNFRElBSkJBRFlDSENBQ0lBRTJBaFFnQWtIM0NUWUNFQ0FDUVFnMkFnd01vQUVMSUFKQkFEWUNBQ0FHUVFGcUlRRWdBaTBBS1VFaFJnMERJQUpCQURZQ0hDQUNJQUUyQWhRZ0FrR2JDallDRUNBQ1FRZzJBZ3hCQUNFRERKOEJDeUFDUVFBMkFnQUxRUUFoQXlBQ1FRQTJBaHdnQWlBQk5nSVVJQUpCa0RNMkFoQWdBa0VJTmdJTURKMEJDeUFDUVFBMkFnQWdCa0VCYWlFQklBSXRBQ2xCSTBrTkFDQUNRUUEyQWh3Z0FpQUJOZ0lVSUFKQjB3azJBaEFnQWtFSU5nSU1RUUFoQXd5Y0FRdEIwUUFoQXd5Q0FRc2dBUzBBQUVFd2F5SUFRZjhCY1VFS1NRUkFJQUlnQURvQUtpQUJRUUZxSVFGQnp3QWhBd3lDQVFzZ0FpZ0NCQ0VBSUFKQkFEWUNCQ0FDSUFBZ0FSQW9JZ0JGRFlZQklBSkIzZ0EyQWh3Z0FpQUJOZ0lVSUFJZ0FEWUNERUVBSVFNTW1nRUxJQUlvQWdRaEFDQUNRUUEyQWdRZ0FpQUFJQUVRS0NJQVJRMkdBU0FDUWR3QU5nSWNJQUlnQVRZQ0ZDQUNJQUEyQWd4QkFDRURESmtCQ3lBQ0tBSUVJUUFnQWtFQU5nSUVJQUlnQUNBRkVDZ2lBRVVFUUNBRklRRU1od0VMSUFKQjJnQTJBaHdnQWlBRk5nSVVJQUlnQURZQ0RBeVlBUXRCQUNFQlFRRWhBd3NnQWlBRE9nQXJJQVZCQVdvaEF3SkFBa0FDUUNBQ0xRQXRRUkJ4RFFBQ1FBSkFBa0FnQWkwQUtnNERBUUFDQkFzZ0JrVU5Bd3dDQ3lBQURRRU1BZ3NnQVVVTkFRc2dBaWdDQkNFQUlBSkJBRFlDQkNBQ0lBQWdBeEFvSWdCRkJFQWdBeUVCREFJTElBSkIyQUEyQWh3Z0FpQUROZ0lVSUFJZ0FEWUNERUVBSVFNTW1BRUxJQUlvQWdRaEFDQUNRUUEyQWdRZ0FpQUFJQU1RS0NJQVJRUkFJQU1oQVF5SEFRc2dBa0haQURZQ0hDQUNJQU0yQWhRZ0FpQUFOZ0lNUVFBaEF3eVhBUXRCekFBaEF3eDlDeUFBUVJWSEJFQWdBa0VBTmdJY0lBSWdBVFlDRkNBQ1FaUU5OZ0lRSUFKQklUWUNERUVBSVFNTWxnRUxJQUpCMXdBMkFod2dBaUFCTmdJVUlBSkJ5UmMyQWhBZ0FrRVZOZ0lNUVFBaEF3eVZBUXRCQUNFRElBSkJBRFlDSENBQ0lBRTJBaFFnQWtHQUVUWUNFQ0FDUVFrMkFnd01sQUVMSUFJb0FnUWhBQ0FDUVFBMkFnUWdBaUFBSUFFUUpTSUFSUTBBSUFKQjB3QTJBaHdnQWlBQk5nSVVJQUlnQURZQ0RFRUFJUU1Na3dFTFFja0FJUU1NZVFzZ0FrRUFOZ0ljSUFJZ0FUWUNGQ0FDUWNFb05nSVFJQUpCQnpZQ0RDQUNRUUEyQWdCQkFDRURESkVCQ3lBQ0tBSUVJUUJCQUNFRElBSkJBRFlDQkNBQ0lBQWdBUkFsSWdCRkRRQWdBa0hTQURZQ0hDQUNJQUUyQWhRZ0FpQUFOZ0lNREpBQkMwSElBQ0VEREhZTElBSkJBRFlDQUNBRklRRUxJQUpCZ0JJN0FTb2dBVUVCYWlFQlFRQWhBQUpBSUFJb0FqZ2lBMFVOQUNBREtBSXdJZ05GRFFBZ0FpQURFUUFBSVFBTElBQU5BUXRCeHdBaEF3eHpDeUFBUVJWR0JFQWdBa0hSQURZQ0hDQUNJQUUyQWhRZ0FrSGpGellDRUNBQ1FSVTJBZ3hCQUNFRERJd0JDMEVBSVFNZ0FrRUFOZ0ljSUFJZ0FUWUNGQ0FDUWJrTk5nSVFJQUpCR2pZQ0RBeUxBUXRCQUNFRElBSkJBRFlDSENBQ0lBRTJBaFFnQWtHZ0dUWUNFQ0FDUVI0MkFnd01pZ0VMSUFFdEFBQkJPa1lFUUNBQ0tBSUVJUUJCQUNFRElBSkJBRFlDQkNBQ0lBQWdBUkFwSWdCRkRRRWdBa0hEQURZQ0hDQUNJQUEyQWd3Z0FpQUJRUUZxTmdJVURJb0JDMEVBSVFNZ0FrRUFOZ0ljSUFJZ0FUWUNGQ0FDUWJFUk5nSVFJQUpCQ2pZQ0RBeUpBUXNnQVVFQmFpRUJRVHNoQXd4dkN5QUNRY01BTmdJY0lBSWdBRFlDRENBQ0lBRkJBV28yQWhRTWh3RUxRUUFoQXlBQ1FRQTJBaHdnQWlBQk5nSVVJQUpCOEE0MkFoQWdBa0VjTmdJTURJWUJDeUFDSUFJdkFUQkJFSEk3QVRBTVpnc0NRQ0FDTHdFd0lnQkJDSEZGRFFBZ0FpMEFLRUVCUncwQUlBSXRBQzFCQ0hGRkRRTUxJQUlnQUVIMyt3TnhRWUFFY2pzQk1Bd0VDeUFCSUFSSEJFQUNRQU5BSUFFdEFBQkJNR3NpQUVIL0FYRkJDazhFUUVFMUlRTU1iZ3NnQWlrRElDSUtRcG16NXN5WnMrYk1HVllOQVNBQ0lBcENDbjRpQ2pjRElDQUtJQUN0UXY4Qmd5SUxRbitGVmcwQklBSWdDaUFMZkRjRElDQUVJQUZCQVdvaUFVY05BQXRCT1NFRERJVUJDeUFDS0FJRUlRQkJBQ0VESUFKQkFEWUNCQ0FDSUFBZ0FVRUJhaUlCRUNvaUFBME1ESGNMUVRraEF3eURBUXNnQWkwQU1FRWdjUTBHUWNVQklRTU1hUXRCQUNFRElBSkJBRFlDQkNBQ0lBRWdBUkFxSWdCRkRRUWdBa0U2TmdJY0lBSWdBRFlDRENBQ0lBRkJBV28yQWhRTWdRRUxJQUl0QUNoQkFVY05BQ0FDTFFBdFFRaHhSUTBCQzBFM0lRTU1aZ3NnQWlnQ0JDRUFRUUFoQXlBQ1FRQTJBZ1FnQWlBQUlBRVFLaUlBQkVBZ0FrRTdOZ0ljSUFJZ0FEWUNEQ0FDSUFGQkFXbzJBaFFNZndzZ0FVRUJhaUVCREc0TElBSkJDRG9BTEF3RUN5QUJRUUZxSVFFTWJRdEJBQ0VESUFKQkFEWUNIQ0FDSUFFMkFoUWdBa0hrRWpZQ0VDQUNRUVEyQWd3TWV3c2dBaWdDQkNFQVFRQWhBeUFDUVFBMkFnUWdBaUFBSUFFUUtpSUFSUTFzSUFKQk56WUNIQ0FDSUFFMkFoUWdBaUFBTmdJTURIb0xJQUlnQWk4Qk1FRWdjanNCTUF0Qk1DRURERjhMSUFKQk5qWUNIQ0FDSUFFMkFoUWdBaUFBTmdJTURIY0xJQUJCTEVjTkFTQUJRUUZxSVFCQkFTRUJBa0FDUUFKQUFrQUNRQ0FDTFFBc1FRVnJEZ1FEQVFJRUFBc2dBQ0VCREFRTFFRSWhBUXdCQzBFRUlRRUxJQUpCQVRvQUxDQUNJQUl2QVRBZ0FYSTdBVEFnQUNFQkRBRUxJQUlnQWk4Qk1FRUljanNCTUNBQUlRRUxRVGtoQXd4Y0N5QUNRUUE2QUN3TFFUUWhBd3hhQ3lBQklBUkdCRUJCTFNFRERITUxBa0FDUUFOQUFrQWdBUzBBQUVFS2F3NEVBZ0FBQXdBTElBUWdBVUVCYWlJQlJ3MEFDMEV0SVFNTWRBc2dBaWdDQkNFQVFRQWhBeUFDUVFBMkFnUWdBaUFBSUFFUUtpSUFSUTBDSUFKQkxEWUNIQ0FDSUFFMkFoUWdBaUFBTmdJTURITUxJQUlvQWdRaEFFRUFJUU1nQWtFQU5nSUVJQUlnQUNBQkVDb2lBRVVFUUNBQlFRRnFJUUVNQWdzZ0FrRXNOZ0ljSUFJZ0FEWUNEQ0FDSUFGQkFXbzJBaFFNY2dzZ0FTMEFBRUVOUmdSQUlBSW9BZ1FoQUVFQUlRTWdBa0VBTmdJRUlBSWdBQ0FCRUNvaUFFVUVRQ0FCUVFGcUlRRU1BZ3NnQWtFc05nSWNJQUlnQURZQ0RDQUNJQUZCQVdvMkFoUU1jZ3NnQWkwQUxVRUJjUVJBUWNRQklRTU1XUXNnQWlnQ0JDRUFRUUFoQXlBQ1FRQTJBZ1FnQWlBQUlBRVFLaUlBRFFFTVpRdEJMeUVEREZjTElBSkJMallDSENBQ0lBRTJBaFFnQWlBQU5nSU1ERzhMUVFBaEF5QUNRUUEyQWh3Z0FpQUJOZ0lVSUFKQjhCUTJBaEFnQWtFRE5nSU1ERzRMUVFFaEF3SkFBa0FDUUFKQUlBSXRBQ3hCQldzT0JBTUJBZ0FFQ3lBQ0lBSXZBVEJCQ0hJN0FUQU1Bd3RCQWlFRERBRUxRUVFoQXdzZ0FrRUJPZ0FzSUFJZ0FpOEJNQ0FEY2pzQk1BdEJLaUVEREZNTFFRQWhBeUFDUVFBMkFod2dBaUFCTmdJVUlBSkI0UTgyQWhBZ0FrRUtOZ0lNREdzTFFRRWhBd0pBQWtBQ1FBSkFBa0FDUUNBQ0xRQXNRUUpyRGdjRkJBUURBUUlBQkFzZ0FpQUNMd0V3UVFoeU93RXdEQU1MUVFJaEF3d0JDMEVFSVFNTElBSkJBVG9BTENBQ0lBSXZBVEFnQTNJN0FUQUxRU3NoQXd4U0MwRUFJUU1nQWtFQU5nSWNJQUlnQVRZQ0ZDQUNRYXNTTmdJUUlBSkJDellDREF4cUMwRUFJUU1nQWtFQU5nSWNJQUlnQVRZQ0ZDQUNRZjBOTmdJUUlBSkJIVFlDREF4cEN5QUJJQVJIQkVBRFFDQUJMUUFBUVNCSERVZ2dCQ0FCUVFGcUlnRkhEUUFMUVNVaEF3eHBDMEVsSVFNTWFBc2dBaTBBTFVFQmNRUkFRY01CSVFNTVR3c2dBaWdDQkNFQVFRQWhBeUFDUVFBMkFnUWdBaUFBSUFFUUtTSUFCRUFnQWtFbU5nSWNJQUlnQURZQ0RDQUNJQUZCQVdvMkFoUU1hQXNnQVVFQmFpRUJERndMSUFGQkFXb2hBU0FDTHdFd0lnQkJnQUZ4QkVCQkFDRUFBa0FnQWlnQ09DSURSUTBBSUFNb0FsUWlBMFVOQUNBQ0lBTVJBQUFoQUFzZ0FFVU5CaUFBUVJWSERSOGdBa0VGTmdJY0lBSWdBVFlDRkNBQ1Fma1hOZ0lRSUFKQkZUWUNERUVBSVFNTVp3c0NRQ0FBUWFBRWNVR2dCRWNOQUNBQ0xRQXRRUUp4RFFCQkFDRURJQUpCQURZQ0hDQUNJQUUyQWhRZ0FrR1dFellDRUNBQ1FRUTJBZ3dNWndzZ0FnSi9JQUl2QVRCQkZIRkJGRVlFUUVFQklBSXRBQ2hCQVVZTkFSb2dBaThCTWtIbEFFWU1BUXNnQWkwQUtVRUZSZ3M2QUM1QkFDRUFBa0FnQWlnQ09DSURSUTBBSUFNb0FpUWlBMFVOQUNBQ0lBTVJBQUFoQUFzQ1FBSkFBa0FDUUFKQUlBQU9GZ0lCQUFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFNRUN5QUNRUUU2QUM0TElBSWdBaThCTUVIQUFISTdBVEFMUVNjaEF3eFBDeUFDUVNNMkFod2dBaUFCTmdJVUlBSkJwUlkyQWhBZ0FrRVZOZ0lNUVFBaEF3eG5DMEVBSVFNZ0FrRUFOZ0ljSUFJZ0FUWUNGQ0FDUWRVTE5nSVFJQUpCRVRZQ0RBeG1DMEVBSVFBQ1FDQUNLQUk0SWdORkRRQWdBeWdDTENJRFJRMEFJQUlnQXhFQUFDRUFDeUFBRFFFTFFRNGhBd3hMQ3lBQVFSVkdCRUFnQWtFQ05nSWNJQUlnQVRZQ0ZDQUNRYkFZTmdJUUlBSkJGVFlDREVFQUlRTU1aQXRCQUNFRElBSkJBRFlDSENBQ0lBRTJBaFFnQWtHbkRqWUNFQ0FDUVJJMkFnd01Zd3RCQUNFRElBSkJBRFlDSENBQ0lBRTJBaFFnQWtHcUhEWUNFQ0FDUVE4MkFnd01ZZ3NnQWlnQ0JDRUFRUUFoQXlBQ1FRQTJBZ1FnQWlBQUlBRWdDcWRxSWdFUUt5SUFSUTBBSUFKQkJUWUNIQ0FDSUFFMkFoUWdBaUFBTmdJTURHRUxRUThoQXd4SEMwRUFJUU1nQWtFQU5nSWNJQUlnQVRZQ0ZDQUNRYzBUTmdJUUlBSkJERFlDREF4ZkMwSUJJUW9MSUFGQkFXb2hBUUpBSUFJcEF5QWlDMEwvLy8vLy8vLy8vdzlZQkVBZ0FpQUxRZ1NHSUFxRU53TWdEQUVMUVFBaEF5QUNRUUEyQWh3Z0FpQUJOZ0lVSUFKQnJRazJBaEFnQWtFTU5nSU1ERjRMUVNRaEF3eEVDMEVBSVFNZ0FrRUFOZ0ljSUFJZ0FUWUNGQ0FDUWMwVE5nSVFJQUpCRERZQ0RBeGNDeUFDS0FJRUlRQkJBQ0VESUFKQkFEWUNCQ0FDSUFBZ0FSQXNJZ0JGQkVBZ0FVRUJhaUVCREZJTElBSkJGellDSENBQ0lBQTJBZ3dnQWlBQlFRRnFOZ0lVREZzTElBSW9BZ1FoQUVFQUlRTWdBa0VBTmdJRUFrQWdBaUFBSUFFUUxDSUFSUVJBSUFGQkFXb2hBUXdCQ3lBQ1FSWTJBaHdnQWlBQU5nSU1JQUlnQVVFQmFqWUNGQXhiQzBFZklRTU1RUXRCQUNFRElBSkJBRFlDSENBQ0lBRTJBaFFnQWtHYUR6WUNFQ0FDUVNJMkFnd01XUXNnQWlnQ0JDRUFRUUFoQXlBQ1FRQTJBZ1FnQWlBQUlBRVFMU0lBUlFSQUlBRkJBV29oQVF4UUN5QUNRUlEyQWh3Z0FpQUFOZ0lNSUFJZ0FVRUJhallDRkF4WUN5QUNLQUlFSVFCQkFDRURJQUpCQURZQ0JBSkFJQUlnQUNBQkVDMGlBRVVFUUNBQlFRRnFJUUVNQVFzZ0FrRVROZ0ljSUFJZ0FEWUNEQ0FDSUFGQkFXbzJBaFFNV0F0QkhpRURERDRMUVFBaEF5QUNRUUEyQWh3Z0FpQUJOZ0lVSUFKQnhndzJBaEFnQWtFak5nSU1ERllMSUFJb0FnUWhBRUVBSVFNZ0FrRUFOZ0lFSUFJZ0FDQUJFQzBpQUVVRVFDQUJRUUZxSVFFTVRnc2dBa0VSTmdJY0lBSWdBRFlDRENBQ0lBRkJBV28yQWhRTVZRc2dBa0VRTmdJY0lBSWdBVFlDRkNBQ0lBQTJBZ3dNVkF0QkFDRURJQUpCQURZQ0hDQUNJQUUyQWhRZ0FrSEdERFlDRUNBQ1FTTTJBZ3dNVXd0QkFDRURJQUpCQURZQ0hDQUNJQUUyQWhRZ0FrSEFGVFlDRUNBQ1FRSTJBZ3dNVWdzZ0FpZ0NCQ0VBUVFBaEF5QUNRUUEyQWdRQ1FDQUNJQUFnQVJBdElnQkZCRUFnQVVFQmFpRUJEQUVMSUFKQkRqWUNIQ0FDSUFBMkFnd2dBaUFCUVFGcU5nSVVERklMUVJzaEF3dzRDMEVBSVFNZ0FrRUFOZ0ljSUFJZ0FUWUNGQ0FDUWNZTU5nSVFJQUpCSXpZQ0RBeFFDeUFDS0FJRUlRQkJBQ0VESUFKQkFEWUNCQUpBSUFJZ0FDQUJFQ3dpQUVVRVFDQUJRUUZxSVFFTUFRc2dBa0VOTmdJY0lBSWdBRFlDRENBQ0lBRkJBV28yQWhRTVVBdEJHaUVERERZTFFRQWhBeUFDUVFBMkFod2dBaUFCTmdJVUlBSkJtZzgyQWhBZ0FrRWlOZ0lNREU0TElBSW9BZ1FoQUVFQUlRTWdBa0VBTmdJRUFrQWdBaUFBSUFFUUxDSUFSUVJBSUFGQkFXb2hBUXdCQ3lBQ1FRdzJBaHdnQWlBQU5nSU1JQUlnQVVFQmFqWUNGQXhPQzBFWklRTU1OQXRCQUNFRElBSkJBRFlDSENBQ0lBRTJBaFFnQWtHYUR6WUNFQ0FDUVNJMkFnd01UQXNnQUVFVlJ3UkFRUUFoQXlBQ1FRQTJBaHdnQWlBQk5nSVVJQUpCZ3d3MkFoQWdBa0VUTmdJTURFd0xJQUpCQ2pZQ0hDQUNJQUUyQWhRZ0FrSGtGallDRUNBQ1FSVTJBZ3hCQUNFRERFc0xJQUlvQWdRaEFFRUFJUU1nQWtFQU5nSUVJQUlnQUNBQklBcW5haUlCRUNzaUFBUkFJQUpCQnpZQ0hDQUNJQUUyQWhRZ0FpQUFOZ0lNREVzTFFSTWhBd3d4Q3lBQVFSVkhCRUJCQUNFRElBSkJBRFlDSENBQ0lBRTJBaFFnQWtIYURUWUNFQ0FDUVJRMkFnd01TZ3NnQWtFZU5nSWNJQUlnQVRZQ0ZDQUNRZmtYTmdJUUlBSkJGVFlDREVFQUlRTU1TUXRCQUNFQUFrQWdBaWdDT0NJRFJRMEFJQU1vQWl3aUEwVU5BQ0FDSUFNUkFBQWhBQXNnQUVVTlFTQUFRUlZHQkVBZ0FrRUROZ0ljSUFJZ0FUWUNGQ0FDUWJBWU5nSVFJQUpCRlRZQ0RFRUFJUU1NU1F0QkFDRURJQUpCQURZQ0hDQUNJQUUyQWhRZ0FrR25EallDRUNBQ1FSSTJBZ3dNU0F0QkFDRURJQUpCQURZQ0hDQUNJQUUyQWhRZ0FrSGFEVFlDRUNBQ1FSUTJBZ3dNUnd0QkFDRURJQUpCQURZQ0hDQUNJQUUyQWhRZ0FrR25EallDRUNBQ1FSSTJBZ3dNUmdzZ0FrRUFPZ0F2SUFJdEFDMUJCSEZGRFQ4TElBSkJBRG9BTHlBQ1FRRTZBRFJCQUNFRERDc0xRUUFoQXlBQ1FRQTJBaHdnQWtIa0VUWUNFQ0FDUVFjMkFnd2dBaUFCUVFGcU5nSVVERU1MQWtBRFFBSkFJQUV0QUFCQkNtc09CQUFDQWdBQ0N5QUVJQUZCQVdvaUFVY05BQXRCM1FFaEF3eERDd0pBQWtBZ0FpMEFORUVCUncwQVFRQWhBQUpBSUFJb0FqZ2lBMFVOQUNBREtBSllJZ05GRFFBZ0FpQURFUUFBSVFBTElBQkZEUUFnQUVFVlJ3MEJJQUpCM0FFMkFod2dBaUFCTmdJVUlBSkIxUlkyQWhBZ0FrRVZOZ0lNUVFBaEF3eEVDMEhCQVNFRERDb0xJQUpCQURZQ0hDQUNJQUUyQWhRZ0FrSHBDellDRUNBQ1FSODJBZ3hCQUNFRERFSUxBa0FDUUNBQ0xRQW9RUUZyRGdJRUFRQUxRY0FCSVFNTUtRdEJ1UUVoQXd3b0N5QUNRUUk2QUM5QkFDRUFBa0FnQWlnQ09DSURSUTBBSUFNb0FnQWlBMFVOQUNBQ0lBTVJBQUFoQUFzZ0FFVUVRRUhDQVNFRERDZ0xJQUJCRlVjRVFDQUNRUUEyQWh3Z0FpQUJOZ0lVSUFKQnBBdzJBaEFnQWtFUU5nSU1RUUFoQXd4QkN5QUNRZHNCTmdJY0lBSWdBVFlDRkNBQ1Fmb1dOZ0lRSUFKQkZUWUNERUVBSVFNTVFBc2dBU0FFUmdSQVFkb0JJUU1NUUFzZ0FTMEFBRUhJQUVZTkFTQUNRUUU2QUNnTFFhd0JJUU1NSlF0QnZ3RWhBd3drQ3lBQklBUkhCRUFnQWtFUU5nSUlJQUlnQVRZQ0JFRytBU0VERENRTFFka0JJUU1NUEFzZ0FTQUVSZ1JBUWRnQklRTU1QQXNnQVMwQUFFSElBRWNOQkNBQlFRRnFJUUZCdlFFaEF3d2lDeUFCSUFSR0JFQkIxd0VoQXd3N0N3SkFBa0FnQVMwQUFFSEZBR3NPRUFBRkJRVUZCUVVGQlFVRkJRVUZCUUVGQ3lBQlFRRnFJUUZCdXdFaEF3d2lDeUFCUVFGcUlRRkJ2QUVoQXd3aEMwSFdBU0VESUFFZ0JFWU5PU0FDS0FJQUlnQWdCQ0FCYTJvaEJTQUJJQUJyUVFKcUlRWUNRQU5BSUFFdEFBQWdBRUdEMEFCcUxRQUFSdzBESUFCQkFrWU5BU0FBUVFGcUlRQWdCQ0FCUVFGcUlnRkhEUUFMSUFJZ0JUWUNBQXc2Q3lBQ0tBSUVJUUFnQWtJQU53TUFJQUlnQUNBR1FRRnFJZ0VRSnlJQVJRUkFRY1lCSVFNTUlRc2dBa0hWQVRZQ0hDQUNJQUUyQWhRZ0FpQUFOZ0lNUVFBaEF3dzVDMEhVQVNFRElBRWdCRVlOT0NBQ0tBSUFJZ0FnQkNBQmEyb2hCU0FCSUFCclFRRnFJUVlDUUFOQUlBRXRBQUFnQUVHQjBBQnFMUUFBUncwQ0lBQkJBVVlOQVNBQVFRRnFJUUFnQkNBQlFRRnFJZ0ZIRFFBTElBSWdCVFlDQUF3NUN5QUNRWUVFT3dFb0lBSW9BZ1FoQUNBQ1FnQTNBd0FnQWlBQUlBWkJBV29pQVJBbklnQU5Bd3dDQ3lBQ1FRQTJBZ0FMUVFBaEF5QUNRUUEyQWh3Z0FpQUJOZ0lVSUFKQjJCczJBaEFnQWtFSU5nSU1ERFlMUWJvQklRTU1IQXNnQWtIVEFUWUNIQ0FDSUFFMkFoUWdBaUFBTmdJTVFRQWhBd3cwQzBFQUlRQUNRQ0FDS0FJNElnTkZEUUFnQXlnQ09DSURSUTBBSUFJZ0F4RUFBQ0VBQ3lBQVJRMEFJQUJCRlVZTkFTQUNRUUEyQWh3Z0FpQUJOZ0lVSUFKQnpBNDJBaEFnQWtFZ05nSU1RUUFoQXd3ekMwSGtBQ0VEREJrTElBSkIrQUEyQWh3Z0FpQUJOZ0lVSUFKQnloZzJBaEFnQWtFVk5nSU1RUUFoQXd3eEMwSFNBU0VESUFRZ0FTSUFSZzB3SUFRZ0FXc2dBaWdDQUNJQmFpRUZJQUFnQVd0QkJHb2hCZ0pBQTBBZ0FDMEFBQ0FCUWZ6UEFHb3RBQUJIRFFFZ0FVRUVSZzBESUFGQkFXb2hBU0FFSUFCQkFXb2lBRWNOQUFzZ0FpQUZOZ0lBRERFTElBSkJBRFlDSENBQ0lBQTJBaFFnQWtHUU16WUNFQ0FDUVFnMkFnd2dBa0VBTmdJQVFRQWhBd3d3Q3lBQklBUkhCRUFnQWtFT05nSUlJQUlnQVRZQ0JFRzNBU0VEREJjTFFkRUJJUU1NTHdzZ0FrRUFOZ0lBSUFaQkFXb2hBUXRCdUFFaEF3d1VDeUFCSUFSR0JFQkIwQUVoQXd3dEN5QUJMUUFBUVRCcklnQkIvd0Z4UVFwSkJFQWdBaUFBT2dBcUlBRkJBV29oQVVHMkFTRUREQlFMSUFJb0FnUWhBQ0FDUVFBMkFnUWdBaUFBSUFFUUtDSUFSUTBVSUFKQnp3RTJBaHdnQWlBQk5nSVVJQUlnQURZQ0RFRUFJUU1NTEFzZ0FTQUVSZ1JBUWM0QklRTU1MQXNDUUNBQkxRQUFRUzVHQkVBZ0FVRUJhaUVCREFFTElBSW9BZ1FoQUNBQ1FRQTJBZ1FnQWlBQUlBRVFLQ0lBUlEwVklBSkJ6UUUyQWh3Z0FpQUJOZ0lVSUFJZ0FEWUNERUVBSVFNTUxBdEJ0UUVoQXd3U0N5QUVJQUVpQlVZRVFFSE1BU0VERENzTFFRQWhBRUVCSVFGQkFTRUdRUUFoQXdKQUFrQUNRQUpBQWtBQ2Z3SkFBa0FDUUFKQUFrQUNRQUpBSUFVdEFBQkJNR3NPQ2dvSkFBRUNBd1FGQmdnTEMwRUNEQVlMUVFNTUJRdEJCQXdFQzBFRkRBTUxRUVlNQWd0QkJ3d0JDMEVJQ3lFRFFRQWhBVUVBSVFZTUFndEJDU0VEUVFFaEFFRUFJUUZCQUNFR0RBRUxRUUFoQVVFQklRTUxJQUlnQXpvQUt5QUZRUUZxSVFNQ1FBSkFJQUl0QUMxQkVIRU5BQUpBQWtBQ1FDQUNMUUFxRGdNQkFBSUVDeUFHUlEwRERBSUxJQUFOQVF3Q0N5QUJSUTBCQ3lBQ0tBSUVJUUFnQWtFQU5nSUVJQUlnQUNBREVDZ2lBRVVFUUNBRElRRU1Bd3NnQWtISkFUWUNIQ0FDSUFNMkFoUWdBaUFBTmdJTVFRQWhBd3d0Q3lBQ0tBSUVJUUFnQWtFQU5nSUVJQUlnQUNBREVDZ2lBRVVFUUNBRElRRU1HQXNnQWtIS0FUWUNIQ0FDSUFNMkFoUWdBaUFBTmdJTVFRQWhBd3dzQ3lBQ0tBSUVJUUFnQWtFQU5nSUVJQUlnQUNBRkVDZ2lBRVVFUUNBRklRRU1GZ3NnQWtITEFUWUNIQ0FDSUFVMkFoUWdBaUFBTmdJTURDc0xRYlFCSVFNTUVRdEJBQ0VBQWtBZ0FpZ0NPQ0lEUlEwQUlBTW9BandpQTBVTkFDQUNJQU1SQUFBaEFBc0NRQ0FBQkVBZ0FFRVZSZzBCSUFKQkFEWUNIQ0FDSUFFMkFoUWdBa0dVRFRZQ0VDQUNRU0UyQWd4QkFDRUREQ3NMUWJJQklRTU1FUXNnQWtISUFUWUNIQ0FDSUFFMkFoUWdBa0hKRnpZQ0VDQUNRUlUyQWd4QkFDRUREQ2tMSUFKQkFEWUNBQ0FHUVFGcUlRRkI5UUFoQXd3UEN5QUNMUUFwUVFWR0JFQkI0d0FoQXd3UEMwSGlBQ0VEREE0TElBQWhBU0FDUVFBMkFnQUxJQUpCQURvQUxFRUpJUU1NREFzZ0FrRUFOZ0lBSUFkQkFXb2hBVUhBQUNFRERBc0xRUUVMT2dBc0lBSkJBRFlDQUNBR1FRRnFJUUVMUVNraEF3d0lDMEU0SVFNTUJ3c0NRQ0FCSUFSSEJFQURRQ0FCTFFBQVFZQSthaTBBQUNJQVFRRkhCRUFnQUVFQ1J3MERJQUZCQVdvaEFRd0ZDeUFFSUFGQkFXb2lBVWNOQUF0QlBpRUREQ0VMUVQ0aEF3d2dDd3NnQWtFQU9nQXNEQUVMUVFzaEF3d0VDMEU2SVFNTUF3c2dBVUVCYWlFQlFTMGhBd3dDQ3lBQ0lBRTZBQ3dnQWtFQU5nSUFJQVpCQVdvaEFVRU1JUU1NQVFzZ0FrRUFOZ0lBSUFaQkFXb2hBVUVLSVFNTUFBc0FDMEVBSVFNZ0FrRUFOZ0ljSUFJZ0FUWUNGQ0FDUWMwUU5nSVFJQUpCQ1RZQ0RBd1hDMEVBSVFNZ0FrRUFOZ0ljSUFJZ0FUWUNGQ0FDUWVrS05nSVFJQUpCQ1RZQ0RBd1dDMEVBSVFNZ0FrRUFOZ0ljSUFJZ0FUWUNGQ0FDUWJjUU5nSVFJQUpCQ1RZQ0RBd1ZDMEVBSVFNZ0FrRUFOZ0ljSUFJZ0FUWUNGQ0FDUVp3Uk5nSVFJQUpCQ1RZQ0RBd1VDMEVBSVFNZ0FrRUFOZ0ljSUFJZ0FUWUNGQ0FDUWMwUU5nSVFJQUpCQ1RZQ0RBd1RDMEVBSVFNZ0FrRUFOZ0ljSUFJZ0FUWUNGQ0FDUWVrS05nSVFJQUpCQ1RZQ0RBd1NDMEVBSVFNZ0FrRUFOZ0ljSUFJZ0FUWUNGQ0FDUWJjUU5nSVFJQUpCQ1RZQ0RBd1JDMEVBSVFNZ0FrRUFOZ0ljSUFJZ0FUWUNGQ0FDUVp3Uk5nSVFJQUpCQ1RZQ0RBd1FDMEVBSVFNZ0FrRUFOZ0ljSUFJZ0FUWUNGQ0FDUVpjVk5nSVFJQUpCRHpZQ0RBd1BDMEVBSVFNZ0FrRUFOZ0ljSUFJZ0FUWUNGQ0FDUVpjVk5nSVFJQUpCRHpZQ0RBd09DMEVBSVFNZ0FrRUFOZ0ljSUFJZ0FUWUNGQ0FDUWNBU05nSVFJQUpCQ3pZQ0RBd05DMEVBSVFNZ0FrRUFOZ0ljSUFJZ0FUWUNGQ0FDUVpVSk5nSVFJQUpCQ3pZQ0RBd01DMEVBSVFNZ0FrRUFOZ0ljSUFJZ0FUWUNGQ0FDUWVFUE5nSVFJQUpCQ2pZQ0RBd0xDMEVBSVFNZ0FrRUFOZ0ljSUFJZ0FUWUNGQ0FDUWZzUE5nSVFJQUpCQ2pZQ0RBd0tDMEVBSVFNZ0FrRUFOZ0ljSUFJZ0FUWUNGQ0FDUWZFWk5nSVFJQUpCQWpZQ0RBd0pDMEVBSVFNZ0FrRUFOZ0ljSUFJZ0FUWUNGQ0FDUWNRVU5nSVFJQUpCQWpZQ0RBd0lDMEVBSVFNZ0FrRUFOZ0ljSUFJZ0FUWUNGQ0FDUWZJVk5nSVFJQUpCQWpZQ0RBd0hDeUFDUVFJMkFod2dBaUFCTmdJVUlBSkJuQm8yQWhBZ0FrRVdOZ0lNUVFBaEF3d0dDMEVCSVFNTUJRdEIxQUFoQXlBQklBUkdEUVFnQ0VFSWFpRUpJQUlvQWdBaEJRSkFBa0FnQVNBRVJ3UkFJQVZCMk1JQWFpRUhJQVFnQldvZ0FXc2hBQ0FGUVg5elFRcHFJZ1VnQVdvaEJnTkFJQUV0QUFBZ0J5MEFBRWNFUUVFQ0lRY01Bd3NnQlVVRVFFRUFJUWNnQmlFQkRBTUxJQVZCQVdzaEJTQUhRUUZxSVFjZ0JDQUJRUUZxSWdGSERRQUxJQUFoQlNBRUlRRUxJQWxCQVRZQ0FDQUNJQVUyQWdBTUFRc2dBa0VBTmdJQUlBa2dCellDQUFzZ0NTQUJOZ0lFSUFnb0Fnd2hBQ0FJS0FJSURnTUJCQUlBQ3dBTElBSkJBRFlDSENBQ1FiVWFOZ0lRSUFKQkZ6WUNEQ0FDSUFCQkFXbzJBaFJCQUNFRERBSUxJQUpCQURZQ0hDQUNJQUEyQWhRZ0FrSEtHallDRUNBQ1FRazJBZ3hCQUNFRERBRUxJQUVnQkVZRVFFRWlJUU1NQVFzZ0FrRUpOZ0lJSUFJZ0FUWUNCRUVoSVFNTElBaEJFR29rQUNBRFJRUkFJQUlvQWd3aEFBd0JDeUFDSUFNMkFoeEJBQ0VBSUFJb0FnUWlBVVVOQUNBQ0lBRWdCQ0FDS0FJSUVRRUFJZ0ZGRFFBZ0FpQUVOZ0lVSUFJZ0FUWUNEQ0FCSVFBTElBQUx2Z0lCQW44Z0FFRUFPZ0FBSUFCQjNBQnFJZ0ZCQVd0QkFEb0FBQ0FBUVFBNkFBSWdBRUVBT2dBQklBRkJBMnRCQURvQUFDQUJRUUpyUVFBNkFBQWdBRUVBT2dBRElBRkJCR3RCQURvQUFFRUFJQUJyUVFOeElnRWdBR29pQUVFQU5nSUFRZHdBSUFGclFYeHhJZ0lnQUdvaUFVRUVhMEVBTmdJQUFrQWdBa0VKU1EwQUlBQkJBRFlDQ0NBQVFRQTJBZ1FnQVVFSWEwRUFOZ0lBSUFGQkRHdEJBRFlDQUNBQ1FSbEpEUUFnQUVFQU5nSVlJQUJCQURZQ0ZDQUFRUUEyQWhBZ0FFRUFOZ0lNSUFGQkVHdEJBRFlDQUNBQlFSUnJRUUEyQWdBZ0FVRVlhMEVBTmdJQUlBRkJIR3RCQURZQ0FDQUNJQUJCQkhGQkdISWlBbXNpQVVFZ1NRMEFJQUFnQW1vaEFBTkFJQUJDQURjREdDQUFRZ0EzQXhBZ0FFSUFOd01JSUFCQ0FEY0RBQ0FBUVNCcUlRQWdBVUVnYXlJQlFSOUxEUUFMQ3d0V0FRRi9Ba0FnQUNnQ0RBMEFBa0FDUUFKQUFrQWdBQzBBTHc0REFRQURBZ3NnQUNnQ09DSUJSUTBBSUFFb0Fpd2lBVVVOQUNBQUlBRVJBQUFpQVEwREMwRUFEd3NBQ3lBQVFjTVdOZ0lRUVE0aEFRc2dBUXNhQUNBQUtBSU1SUVJBSUFCQjBSczJBaEFnQUVFVk5nSU1Dd3NVQUNBQUtBSU1RUlZHQkVBZ0FFRUFOZ0lNQ3dzVUFDQUFLQUlNUVJaR0JFQWdBRUVBTmdJTUN3c0hBQ0FBS0FJTUN3Y0FJQUFvQWhBTENRQWdBQ0FCTmdJUUN3Y0FJQUFvQWhRTEZ3QWdBRUVrVHdSQUFBc2dBRUVDZEVHZ00yb29BZ0FMRndBZ0FFRXVUd1JBQUFzZ0FFRUNkRUd3Tkdvb0FnQUx2d2tCQVg5QjZ5Z2hBUUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBSUFCQjVBQnJEdlFEWTJJQUFXRmhZV0ZoWVFJREJBVmhZV0ZoWVdGaFlXRmhZV0ZoWVdGaFlXRmhZV0ZoWVdGaFlXRmhZV0ZoWVdGaFlXRmhZV0ZoWVdGaFlXRmhZV0ZoWVdGaFlXRmhZV0ZoWVdGaFlXRmhZV0ZoWVdGaFlXRmhZV0ZoWVdGaFlXRmhZV0ZoQmdjSUNRb0xEQTBPRDJGaFlXRmhFR0ZoWVdGaFlXRmhZV0ZoRVdGaFlXRmhZV0ZoWVdGaFlXRmhZV0ZoWVdGaFlXRmhZV0ZoWVdGaFlXRmhZV0ZoWVdGaFlXRmhZV0ZoWVdGaFlXRmhZV0ZoWVdGaFlXRmhZV0ZoWVdGaFlXRmhZV0ZoWVJJVEZCVVdGeGdaR2h0aFlXRmhZV0ZoWVdGaFlXRmhZV0ZoWVdGaFlXRmhZV0ZoWVdGaFlXRmhZV0ZoWVdGaFlXRmhZV0ZoWVdGaFlXRmhZV0ZoWVdGaFlXRmhZV0ZoWVdGaFlXRmhZV0ZoWVdGaFlXRmhZV0ZoWVdGaFlXRmhZV0ZoWVdGaEhCMGVIeUFoSWlNa0pTWW5LQ2txS3l3dExpOHdNVEl6TkRVMllUYzRPVHBoWVdGaFlXRmhZVHRoWVdFOFlXRmhZVDArUDJGaFlXRmhZV0ZoUUdGaFFXRmhZV0ZoWVdGaFlXRmhZV0ZoWVdGaFlXRmhZV0ZoWVdGaFlXRmhZVUpEUkVWR1IwaEpTa3RNVFU1UFVGRlNVMkZoWVdGaFlXRmhWRlZXVjFoWldsdGhYRjFoWVdGaFlXRmhZV0ZoWVdGaFlXRmhZV0ZoWVdGaFlXRmhZV0ZoWVdGZVlXRmhZV0ZoWVdGaFlXRmhZV0ZoWVdGaFlXRmhZV0ZoWVdGaFlXRmhZV0ZoWVdGaFgyQmhDMEhoSnc4TFFhUWhEd3RCeXl3UEMwSCtNUThMUWNBa0R3dEJxeVFQQzBHTktBOExRZUltRHd0QmdEQVBDMEc1THc4TFFkY2tEd3RCN3g4UEMwSGhIdzhMUWZvZkR3dEI4aUFQQzBHb0x3OExRYTR5RHd0QmlEQVBDMEhzSnc4TFFZSWlEd3RCamgwUEMwSFFMZzhMUWNvakR3dEJ4VElQQzBIZkhBOExRZEljRHd0QnhDQVBDMEhYSUE4TFFhSWZEd3RCN1M0UEMwR3JNQThMUWRRbER3dEJ6QzRQQzBINkxnOExRZndyRHd0QjBqQVBDMEh4SFE4TFFic2dEd3RCOXlzUEMwR1FNUThMUWRjeER3dEJvaTBQQzBIVUp3OExRZUFyRHd0Qm55d1BDMEhyTVE4TFFkVWZEd3RCeWpFUEMwSGVKUThMUWRRZUR3dEI5QndQQzBHbk1nOExRYkVkRHd0Qm9CMFBDMEc1TVE4TFFid3dEd3RCa2lFUEMwR3pKZzhMUWVrc0R3dEJyQjRQQzBIVUt3OExRZmNtRHd0QmdDWVBDMEd3SVE4TFFmNGVEd3RCalNNUEMwR0pMUThMUWZjaUR3dEJvREVQQzBHdUh3OExRY1lsRHd0QjZCNFBDMEdUSWc4TFFjSXZEd3RCd3gwUEMwR0xMQThMUWVFZER3dEJqUzhQQzBIcUlROExRYlF0RHd0QjBpOFBDMEhmTWc4TFFkSXlEd3RCOERBUEMwR3BJZzhMUWZrakR3dEJtUjRQQzBHMUxBOExRWnN3RHd0QmtqSVBDMEcyS3c4TFFjSWlEd3RCK0RJUEMwR2VKUThMUWRBaUR3dEJ1aDRQQzBHQkhnOExBQXRCMWlFaEFRc2dBUXNXQUNBQUlBQXRBQzFCL2dGeElBRkJBRWR5T2dBdEN4a0FJQUFnQUMwQUxVSDlBWEVnQVVFQVIwRUJkSEk2QUMwTEdRQWdBQ0FBTFFBdFFmc0JjU0FCUVFCSFFRSjBjam9BTFFzWkFDQUFJQUF0QUMxQjl3RnhJQUZCQUVkQkEzUnlPZ0F0Q3o0QkFuOENRQ0FBS0FJNElnTkZEUUFnQXlnQ0JDSURSUTBBSUFBZ0FTQUNJQUZySUFNUkFRQWlCRUYvUncwQUlBQkJ4aEUyQWhCQkdDRUVDeUFFQ3o0QkFuOENRQ0FBS0FJNElnTkZEUUFnQXlnQ0NDSURSUTBBSUFBZ0FTQUNJQUZySUFNUkFRQWlCRUYvUncwQUlBQkI5Z28yQWhCQkdDRUVDeUFFQ3o0QkFuOENRQ0FBS0FJNElnTkZEUUFnQXlnQ0RDSURSUTBBSUFBZ0FTQUNJQUZySUFNUkFRQWlCRUYvUncwQUlBQkI3Um8yQWhCQkdDRUVDeUFFQ3o0QkFuOENRQ0FBS0FJNElnTkZEUUFnQXlnQ0VDSURSUTBBSUFBZ0FTQUNJQUZySUFNUkFRQWlCRUYvUncwQUlBQkJsUkEyQWhCQkdDRUVDeUFFQ3o0QkFuOENRQ0FBS0FJNElnTkZEUUFnQXlnQ0ZDSURSUTBBSUFBZ0FTQUNJQUZySUFNUkFRQWlCRUYvUncwQUlBQkJxaHMyQWhCQkdDRUVDeUFFQ3o0QkFuOENRQ0FBS0FJNElnTkZEUUFnQXlnQ0dDSURSUTBBSUFBZ0FTQUNJQUZySUFNUkFRQWlCRUYvUncwQUlBQkI3Uk0yQWhCQkdDRUVDeUFFQ3o0QkFuOENRQ0FBS0FJNElnTkZEUUFnQXlnQ0tDSURSUTBBSUFBZ0FTQUNJQUZySUFNUkFRQWlCRUYvUncwQUlBQkI5Z2cyQWhCQkdDRUVDeUFFQ3o0QkFuOENRQ0FBS0FJNElnTkZEUUFnQXlnQ0hDSURSUTBBSUFBZ0FTQUNJQUZySUFNUkFRQWlCRUYvUncwQUlBQkJ3aGsyQWhCQkdDRUVDeUFFQ3o0QkFuOENRQ0FBS0FJNElnTkZEUUFnQXlnQ0lDSURSUTBBSUFBZ0FTQUNJQUZySUFNUkFRQWlCRUYvUncwQUlBQkJsQlEyQWhCQkdDRUVDeUFFQzFrQkFuOENRQ0FBTFFBb1FRRkdEUUFnQUM4Qk1pSUJRZVFBYTBIa0FFa05BQ0FCUWN3QlJnMEFJQUZCc0FKR0RRQWdBQzhCTUNJQVFjQUFjUTBBUVFFaEFpQUFRWWdFY1VHQUJFWU5BQ0FBUVNoeFJTRUNDeUFDQzR3QkFRSi9Ba0FDUUFKQUlBQXRBQ3BGRFFBZ0FDMEFLMFVOQUNBQUx3RXdJZ0ZCQW5GRkRRRU1BZ3NnQUM4Qk1DSUJRUUZ4UlEwQkMwRUJJUUlnQUMwQUtFRUJSZzBBSUFBdkFUSWlBRUhrQUd0QjVBQkpEUUFnQUVITUFVWU5BQ0FBUWJBQ1JnMEFJQUZCd0FCeERRQkJBQ0VDSUFGQmlBUnhRWUFFUmcwQUlBRkJLSEZCQUVjaEFnc2dBZ3R6QUNBQVFSQnEvUXdBQUFBQUFBQUFBQUFBQUFBQUFBQUEvUXNEQUNBQS9Rd0FBQUFBQUFBQUFBQUFBQUFBQUFBQS9Rc0RBQ0FBUVRCcS9Rd0FBQUFBQUFBQUFBQUFBQUFBQUFBQS9Rc0RBQ0FBUVNCcS9Rd0FBQUFBQUFBQUFBQUFBQUFBQUFBQS9Rc0RBQ0FBUWQwQk5nSWNDd1lBSUFBUU1ndWFMUUVMZnlNQVFSQnJJZ29rQUVHazBBQW9BZ0FpQ1VVRVFFSGswd0FvQWdBaUJVVUVRRUh3MHdCQ2Z6Y0NBRUhvMHdCQ2dJQ0VnSUNBd0FBM0FnQkI1Tk1BSUFwQkNHcEJjSEZCMktyVnFnVnpJZ1UyQWdCQitOTUFRUUEyQWdCQnlOTUFRUUEyQWdBTFFjelRBRUdBMUFRMkFnQkJuTkFBUVlEVUJEWUNBRUd3MEFBZ0JUWUNBRUdzMEFCQmZ6WUNBRUhRMHdCQmdLd0ROZ0lBQTBBZ0FVSEkwQUJxSUFGQnZOQUFhaUlDTmdJQUlBSWdBVUcwMEFCcUlnTTJBZ0FnQVVIQTBBQnFJQU0yQWdBZ0FVSFEwQUJxSUFGQnhOQUFhaUlETmdJQUlBTWdBallDQUNBQlFkalFBR29nQVVITTBBQnFJZ0kyQWdBZ0FpQUROZ0lBSUFGQjFOQUFhaUFDTmdJQUlBRkJJR29pQVVHQUFrY05BQXRCak5RRVFjR3JBellDQUVHbzBBQkI5Tk1BS0FJQU5nSUFRWmpRQUVIQXF3TTJBZ0JCcE5BQVFZalVCRFlDQUVITS93ZEJPRFlDQUVHSTFBUWhDUXNDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FDQUFRZXdCVFFSQVFZelFBQ2dDQUNJR1FSQWdBRUVUYWtGd2NTQUFRUXRKR3lJRVFRTjJJZ0IySWdGQkEzRUVRQUpBSUFGQkFYRWdBSEpCQVhNaUFrRURkQ0lBUWJUUUFHb2lBU0FBUWJ6UUFHb29BZ0FpQUNnQ0NDSURSZ1JBUVl6UUFDQUdRWDRnQW5keE5nSUFEQUVMSUFFZ0F6WUNDQ0FESUFFMkFnd0xJQUJCQ0dvaEFTQUFJQUpCQTNRaUFrRURjallDQkNBQUlBSnFJZ0FnQUNnQ0JFRUJjallDQkF3UkMwR1UwQUFvQWdBaUNDQUVUdzBCSUFFRVFBSkFRUUlnQUhRaUFrRUFJQUpyY2lBQklBQjBjV2dpQUVFRGRDSUNRYlRRQUdvaUFTQUNRYnpRQUdvb0FnQWlBaWdDQ0NJRFJnUkFRWXpRQUNBR1FYNGdBSGR4SWdZMkFnQU1BUXNnQVNBRE5nSUlJQU1nQVRZQ0RBc2dBaUFFUVFOeU5nSUVJQUJCQTNRaUFDQUVheUVGSUFBZ0Ftb2dCVFlDQUNBQ0lBUnFJZ1FnQlVFQmNqWUNCQ0FJQkVBZ0NFRjRjVUcwMEFCcUlRQkJvTkFBS0FJQUlRTUNmMEVCSUFoQkEzWjBJZ0VnQm5GRkJFQkJqTkFBSUFFZ0JuSTJBZ0FnQUF3QkN5QUFLQUlJQ3lJQklBTTJBZ3dnQUNBRE5nSUlJQU1nQURZQ0RDQURJQUUyQWdnTElBSkJDR29oQVVHZzBBQWdCRFlDQUVHVTBBQWdCVFlDQUF3UkMwR1EwQUFvQWdBaUMwVU5BU0FMYUVFQ2RFRzgwZ0JxS0FJQUlnQW9BZ1JCZUhFZ0JHc2hCU0FBSVFJRFFBSkFJQUlvQWhBaUFVVUVRQ0FDUVJScUtBSUFJZ0ZGRFFFTElBRW9BZ1JCZUhFZ0JHc2lBeUFGU1NFQ0lBTWdCU0FDR3lFRklBRWdBQ0FDR3lFQUlBRWhBZ3dCQ3dzZ0FDZ0NHQ0VKSUFBb0Fnd2lBeUFBUndSQVFaelFBQ2dDQUJvZ0F5QUFLQUlJSWdFMkFnZ2dBU0FETmdJTURCQUxJQUJCRkdvaUFpZ0NBQ0lCUlFSQUlBQW9BaEFpQVVVTkF5QUFRUkJxSVFJTEEwQWdBaUVISUFFaUEwRVVhaUlDS0FJQUlnRU5BQ0FEUVJCcUlRSWdBeWdDRUNJQkRRQUxJQWRCQURZQ0FBd1BDMEYvSVFRZ0FFRy9mMHNOQUNBQVFSTnFJZ0ZCY0hFaEJFR1EwQUFvQWdBaUNFVU5BRUVBSUFScklRVUNRQUpBQWtBQ2YwRUFJQVJCZ0FKSkRRQWFRUjhnQkVILy8vOEhTdzBBR2lBRVFTWWdBVUVJZG1jaUFHdDJRUUZ4SUFCQkFYUnJRVDVxQ3lJR1FRSjBRYnpTQUdvb0FnQWlBa1VFUUVFQUlRRkJBQ0VEREFFTFFRQWhBU0FFUVJrZ0JrRUJkbXRCQUNBR1FSOUhHM1FoQUVFQUlRTURRQUpBSUFJb0FnUkJlSEVnQkdzaUJ5QUZUdzBBSUFJaEF5QUhJZ1VOQUVFQUlRVWdBaUVCREFNTElBRWdBa0VVYWlnQ0FDSUhJQWNnQWlBQVFSMTJRUVJ4YWtFUWFpZ0NBQ0lDUmhzZ0FTQUhHeUVCSUFCQkFYUWhBQ0FDRFFBTEN5QUJJQU55UlFSQVFRQWhBMEVDSUFaMElnQkJBQ0FBYTNJZ0NIRWlBRVVOQXlBQWFFRUNkRUc4MGdCcUtBSUFJUUVMSUFGRkRRRUxBMEFnQVNnQ0JFRjRjU0FFYXlJQ0lBVkpJUUFnQWlBRklBQWJJUVVnQVNBRElBQWJJUU1nQVNnQ0VDSUFCSDhnQUFVZ0FVRVVhaWdDQUFzaUFRMEFDd3NnQTBVTkFDQUZRWlRRQUNnQ0FDQUVhMDhOQUNBREtBSVlJUWNnQXlBREtBSU1JZ0JIQkVCQm5OQUFLQUlBR2lBQUlBTW9BZ2dpQVRZQ0NDQUJJQUEyQWd3TURnc2dBMEVVYWlJQ0tBSUFJZ0ZGQkVBZ0F5Z0NFQ0lCUlEwRElBTkJFR29oQWdzRFFDQUNJUVlnQVNJQVFSUnFJZ0lvQWdBaUFRMEFJQUJCRUdvaEFpQUFLQUlRSWdFTkFBc2dCa0VBTmdJQURBMExRWlRRQUNnQ0FDSURJQVJQQkVCQm9OQUFLQUlBSVFFQ1FDQURJQVJySWdKQkVFOEVRQ0FCSUFScUlnQWdBa0VCY2pZQ0JDQUJJQU5xSUFJMkFnQWdBU0FFUVFOeU5nSUVEQUVMSUFFZ0EwRURjallDQkNBQklBTnFJZ0FnQUNnQ0JFRUJjallDQkVFQUlRQkJBQ0VDQzBHVTBBQWdBallDQUVHZzBBQWdBRFlDQUNBQlFRaHFJUUVNRHd0Qm1OQUFLQUlBSWdNZ0JFc0VRQ0FFSUFscUlnQWdBeUFFYXlJQlFRRnlOZ0lFUWFUUUFDQUFOZ0lBUVpqUUFDQUJOZ0lBSUFrZ0JFRURjallDQkNBSlFRaHFJUUVNRHd0QkFDRUJJQVFDZjBIazB3QW9BZ0FFUUVIczB3QW9BZ0FNQVF0QjhOTUFRbjgzQWdCQjZOTUFRb0NBaElDQWdNQUFOd0lBUWVUVEFDQUtRUXhxUVhCeFFkaXExYW9GY3pZQ0FFSDQwd0JCQURZQ0FFSEkwd0JCQURZQ0FFR0FnQVFMSWdBZ0JFSEhBR29pQldvaUJrRUFJQUJySWdkeElnSlBCRUJCL05NQVFUQTJBZ0FNRHdzQ1FFSEUwd0FvQWdBaUFVVU5BRUc4MHdBb0FnQWlDQ0FDYWlFQUlBQWdBVTBnQUNBSVMzRU5BRUVBSVFGQi9OTUFRVEEyQWdBTUR3dEJ5Tk1BTFFBQVFRUnhEUVFDUUFKQUlBa0VRRUhNMHdBaEFRTkFJQUVvQWdBaUFDQUpUUVJBSUFBZ0FTZ0NCR29nQ1VzTkF3c2dBU2dDQ0NJQkRRQUxDMEVBRURNaUFFRi9SZzBGSUFJaEJrSG8wd0FvQWdBaUFVRUJheUlESUFCeEJFQWdBaUFBYXlBQUlBTnFRUUFnQVd0eGFpRUdDeUFFSUFaUERRVWdCa0grLy8vL0Iwc05CVUhFMHdBb0FnQWlBd1JBUWJ6VEFDZ0NBQ0lISUFacUlRRWdBU0FIVFEwR0lBRWdBMHNOQmdzZ0JoQXpJZ0VnQUVjTkFRd0hDeUFHSUFOcklBZHhJZ1pCL3YvLy93ZExEUVFnQmhBeklRQWdBQ0FCS0FJQUlBRW9BZ1JxUmcwRElBQWhBUXNDUUNBR0lBUkJ5QUJxVHcwQUlBRkJmMFlOQUVIczB3QW9BZ0FpQUNBRklBWnJha0VBSUFCcmNTSUFRZjcvLy84SFN3UkFJQUVoQUF3SEN5QUFFRE5CZjBjRVFDQUFJQVpxSVFZZ0FTRUFEQWNMUVFBZ0Jtc1FNeG9NQkFzZ0FTSUFRWDlIRFFVTUF3dEJBQ0VEREF3TFFRQWhBQXdLQ3lBQVFYOUhEUUlMUWNqVEFFSEkwd0FvQWdCQkJISTJBZ0FMSUFKQi92Ly8vd2RMRFFFZ0FoQXpJUUJCQUJBeklRRWdBRUYvUmcwQklBRkJmMFlOQVNBQUlBRlBEUUVnQVNBQWF5SUdJQVJCT0dwTkRRRUxRYnpUQUVHODB3QW9BZ0FnQm1vaUFUWUNBRUhBMHdBb0FnQWdBVWtFUUVIQTB3QWdBVFlDQUFzQ1FBSkFBa0JCcE5BQUtBSUFJZ0lFUUVITTB3QWhBUU5BSUFBZ0FTZ0NBQ0lESUFFb0FnUWlCV3BHRFFJZ0FTZ0NDQ0lCRFFBTERBSUxRWnpRQUNnQ0FDSUJRUUJISUFBZ0FVOXhSUVJBUVp6UUFDQUFOZ0lBQzBFQUlRRkIwTk1BSUFZMkFnQkJ6Tk1BSUFBMkFnQkJyTkFBUVg4MkFnQkJzTkFBUWVUVEFDZ0NBRFlDQUVIWTB3QkJBRFlDQUFOQUlBRkJ5TkFBYWlBQlFielFBR29pQWpZQ0FDQUNJQUZCdE5BQWFpSUROZ0lBSUFGQndOQUFhaUFETmdJQUlBRkIwTkFBYWlBQlFjVFFBR29pQXpZQ0FDQURJQUkyQWdBZ0FVSFkwQUJxSUFGQnpOQUFhaUlDTmdJQUlBSWdBellDQUNBQlFkVFFBR29nQWpZQ0FDQUJRU0JxSWdGQmdBSkhEUUFMUVhnZ0FHdEJEM0VpQVNBQWFpSUNJQVpCT0dzaUF5QUJheUlCUVFGeU5nSUVRYWpRQUVIMDB3QW9BZ0EyQWdCQm1OQUFJQUUyQWdCQnBOQUFJQUkyQWdBZ0FDQURha0U0TmdJRURBSUxJQUFnQWswTkFDQUNJQU5KRFFBZ0FTZ0NERUVJY1EwQVFYZ2dBbXRCRDNFaUFDQUNhaUlEUVpqUUFDZ0NBQ0FHYWlJSElBQnJJZ0JCQVhJMkFnUWdBU0FGSUFacU5nSUVRYWpRQUVIMDB3QW9BZ0EyQWdCQm1OQUFJQUEyQWdCQnBOQUFJQU0yQWdBZ0FpQUhha0U0TmdJRURBRUxJQUJCbk5BQUtBSUFTUVJBUVp6UUFDQUFOZ0lBQ3lBQUlBWnFJUU5Cek5NQUlRRUNRQUpBQWtBRFFDQURJQUVvQWdCSEJFQWdBU2dDQ0NJQkRRRU1BZ3NMSUFFdEFBeEJDSEZGRFFFTFFjelRBQ0VCQTBBZ0FTZ0NBQ0lESUFKTkJFQWdBeUFCS0FJRWFpSUZJQUpMRFFNTElBRW9BZ2doQVF3QUN3QUxJQUVnQURZQ0FDQUJJQUVvQWdRZ0JtbzJBZ1FnQUVGNElBQnJRUTl4YWlJSklBUkJBM0kyQWdRZ0EwRjRJQU5yUVE5eGFpSUdJQVFnQ1dvaUJHc2hBU0FDSUFaR0JFQkJwTkFBSUFRMkFnQkJtTkFBUVpqUUFDZ0NBQ0FCYWlJQU5nSUFJQVFnQUVFQmNqWUNCQXdJQzBHZzBBQW9BZ0FnQmtZRVFFR2cwQUFnQkRZQ0FFR1UwQUJCbE5BQUtBSUFJQUZxSWdBMkFnQWdCQ0FBUVFGeU5nSUVJQUFnQkdvZ0FEWUNBQXdJQ3lBR0tBSUVJZ1ZCQTNGQkFVY05CaUFGUVhoeElRZ2dCVUgvQVUwRVFDQUZRUU4ySVFNZ0JpZ0NDQ0lBSUFZb0Fnd2lBa1lFUUVHTTBBQkJqTkFBS0FJQVFYNGdBM2R4TmdJQURBY0xJQUlnQURZQ0NDQUFJQUkyQWd3TUJnc2dCaWdDR0NFSElBWWdCaWdDRENJQVJ3UkFJQUFnQmlnQ0NDSUNOZ0lJSUFJZ0FEWUNEQXdGQ3lBR1FSUnFJZ0lvQWdBaUJVVUVRQ0FHS0FJUUlnVkZEUVFnQmtFUWFpRUNDd05BSUFJaEF5QUZJZ0JCRkdvaUFpZ0NBQ0lGRFFBZ0FFRVFhaUVDSUFBb0FoQWlCUTBBQ3lBRFFRQTJBZ0FNQkF0QmVDQUFhMEVQY1NJQklBQnFJZ2NnQmtFNGF5SURJQUZySWdGQkFYSTJBZ1FnQUNBRGFrRTROZ0lFSUFJZ0JVRTNJQVZyUVE5eGFrRS9heUlESUFNZ0FrRVFha2tiSWdOQkl6WUNCRUdvMEFCQjlOTUFLQUlBTmdJQVFaalFBQ0FCTmdJQVFhVFFBQ0FITmdJQUlBTkJFR3BCMU5NQUtRSUFOd0lBSUFOQnpOTUFLUUlBTndJSVFkVFRBQ0FEUVFocU5nSUFRZERUQUNBR05nSUFRY3pUQUNBQU5nSUFRZGpUQUVFQU5nSUFJQU5CSkdvaEFRTkFJQUZCQnpZQ0FDQUZJQUZCQkdvaUFVc05BQXNnQWlBRFJnMEFJQU1nQXlnQ0JFRitjVFlDQkNBRElBTWdBbXNpQlRZQ0FDQUNJQVZCQVhJMkFnUWdCVUgvQVUwRVFDQUZRWGh4UWJUUUFHb2hBQUovUVl6UUFDZ0NBQ0lCUVFFZ0JVRURkblFpQTNGRkJFQkJqTkFBSUFFZ0EzSTJBZ0FnQUF3QkN5QUFLQUlJQ3lJQklBSTJBZ3dnQUNBQ05nSUlJQUlnQURZQ0RDQUNJQUUyQWdnTUFRdEJIeUVCSUFWQi8vLy9CMDBFUUNBRlFTWWdCVUVJZG1jaUFHdDJRUUZ4SUFCQkFYUnJRVDVxSVFFTElBSWdBVFlDSENBQ1FnQTNBaEFnQVVFQ2RFRzgwZ0JxSVFCQmtOQUFLQUlBSWdOQkFTQUJkQ0lHY1VVRVFDQUFJQUkyQWdCQmtOQUFJQU1nQm5JMkFnQWdBaUFBTmdJWUlBSWdBallDQ0NBQ0lBSTJBZ3dNQVFzZ0JVRVpJQUZCQVhaclFRQWdBVUVmUnh0MElRRWdBQ2dDQUNFREFrQURRQ0FESWdBb0FnUkJlSEVnQlVZTkFTQUJRUjEySVFNZ0FVRUJkQ0VCSUFBZ0EwRUVjV3BCRUdvaUJpZ0NBQ0lERFFBTElBWWdBallDQUNBQ0lBQTJBaGdnQWlBQ05nSU1JQUlnQWpZQ0NBd0JDeUFBS0FJSUlnRWdBallDRENBQUlBSTJBZ2dnQWtFQU5nSVlJQUlnQURZQ0RDQUNJQUUyQWdnTFFaalFBQ2dDQUNJQklBUk5EUUJCcE5BQUtBSUFJZ0FnQkdvaUFpQUJJQVJySWdGQkFYSTJBZ1JCbU5BQUlBRTJBZ0JCcE5BQUlBSTJBZ0FnQUNBRVFRTnlOZ0lFSUFCQkNHb2hBUXdJQzBFQUlRRkIvTk1BUVRBMkFnQU1Cd3RCQUNFQUN5QUhSUTBBQWtBZ0JpZ0NIQ0lDUVFKMFFielNBR29pQXlnQ0FDQUdSZ1JBSUFNZ0FEWUNBQ0FBRFFGQmtOQUFRWkRRQUNnQ0FFRitJQUozY1RZQ0FBd0NDeUFIUVJCQkZDQUhLQUlRSUFaR0cyb2dBRFlDQUNBQVJRMEJDeUFBSUFjMkFoZ2dCaWdDRUNJQ0JFQWdBQ0FDTmdJUUlBSWdBRFlDR0FzZ0JrRVVhaWdDQUNJQ1JRMEFJQUJCRkdvZ0FqWUNBQ0FDSUFBMkFoZ0xJQUVnQ0dvaEFTQUdJQWhxSWdZb0FnUWhCUXNnQmlBRlFYNXhOZ0lFSUFFZ0JHb2dBVFlDQUNBRUlBRkJBWEkyQWdRZ0FVSC9BVTBFUUNBQlFYaHhRYlRRQUdvaEFBSi9RWXpRQUNnQ0FDSUNRUUVnQVVFRGRuUWlBWEZGQkVCQmpOQUFJQUVnQW5JMkFnQWdBQXdCQ3lBQUtBSUlDeUlCSUFRMkFnd2dBQ0FFTmdJSUlBUWdBRFlDRENBRUlBRTJBZ2dNQVF0Qkh5RUZJQUZCLy8vL0IwMEVRQ0FCUVNZZ0FVRUlkbWNpQUd0MlFRRnhJQUJCQVhSclFUNXFJUVVMSUFRZ0JUWUNIQ0FFUWdBM0FoQWdCVUVDZEVHODBnQnFJUUJCa05BQUtBSUFJZ0pCQVNBRmRDSURjVVVFUUNBQUlBUTJBZ0JCa05BQUlBSWdBM0kyQWdBZ0JDQUFOZ0lZSUFRZ0JEWUNDQ0FFSUFRMkFnd01BUXNnQVVFWklBVkJBWFpyUVFBZ0JVRWZSeHQwSVFVZ0FDZ0NBQ0VBQWtBRFFDQUFJZ0lvQWdSQmVIRWdBVVlOQVNBRlFSMTJJUUFnQlVFQmRDRUZJQUlnQUVFRWNXcEJFR29pQXlnQ0FDSUFEUUFMSUFNZ0JEWUNBQ0FFSUFJMkFoZ2dCQ0FFTmdJTUlBUWdCRFlDQ0F3QkN5QUNLQUlJSWdBZ0JEWUNEQ0FDSUFRMkFnZ2dCRUVBTmdJWUlBUWdBallDRENBRUlBQTJBZ2dMSUFsQkNHb2hBUXdDQ3dKQUlBZEZEUUFDUUNBREtBSWNJZ0ZCQW5SQnZOSUFhaUlDS0FJQUlBTkdCRUFnQWlBQU5nSUFJQUFOQVVHUTBBQWdDRUYrSUFGM2NTSUlOZ0lBREFJTElBZEJFRUVVSUFjb0FoQWdBMFliYWlBQU5nSUFJQUJGRFFFTElBQWdCellDR0NBREtBSVFJZ0VFUUNBQUlBRTJBaEFnQVNBQU5nSVlDeUFEUVJScUtBSUFJZ0ZGRFFBZ0FFRVVhaUFCTmdJQUlBRWdBRFlDR0FzQ1FDQUZRUTlOQkVBZ0F5QUVJQVZxSWdCQkEzSTJBZ1FnQUNBRGFpSUFJQUFvQWdSQkFYSTJBZ1FNQVFzZ0F5QUVhaUlDSUFWQkFYSTJBZ1FnQXlBRVFRTnlOZ0lFSUFJZ0JXb2dCVFlDQUNBRlFmOEJUUVJBSUFWQmVIRkJ0TkFBYWlFQUFuOUJqTkFBS0FJQUlnRkJBU0FGUVFOMmRDSUZjVVVFUUVHTTBBQWdBU0FGY2pZQ0FDQUFEQUVMSUFBb0FnZ0xJZ0VnQWpZQ0RDQUFJQUkyQWdnZ0FpQUFOZ0lNSUFJZ0FUWUNDQXdCQzBFZklRRWdCVUgvLy84SFRRUkFJQVZCSmlBRlFRaDJaeUlBYTNaQkFYRWdBRUVCZEd0QlBtb2hBUXNnQWlBQk5nSWNJQUpDQURjQ0VDQUJRUUowUWJ6U0FHb2hBRUVCSUFGMElnUWdDSEZGQkVBZ0FDQUNOZ0lBUVpEUUFDQUVJQWh5TmdJQUlBSWdBRFlDR0NBQ0lBSTJBZ2dnQWlBQ05nSU1EQUVMSUFWQkdTQUJRUUYyYTBFQUlBRkJIMGNiZENFQklBQW9BZ0FoQkFKQUEwQWdCQ0lBS0FJRVFYaHhJQVZHRFFFZ0FVRWRkaUVFSUFGQkFYUWhBU0FBSUFSQkJIRnFRUkJxSWdZb0FnQWlCQTBBQ3lBR0lBSTJBZ0FnQWlBQU5nSVlJQUlnQWpZQ0RDQUNJQUkyQWdnTUFRc2dBQ2dDQ0NJQklBSTJBZ3dnQUNBQ05nSUlJQUpCQURZQ0dDQUNJQUEyQWd3Z0FpQUJOZ0lJQ3lBRFFRaHFJUUVNQVFzQ1FDQUpSUTBBQWtBZ0FDZ0NIQ0lCUVFKMFFielNBR29pQWlnQ0FDQUFSZ1JBSUFJZ0F6WUNBQ0FERFFGQmtOQUFJQXRCZmlBQmQzRTJBZ0FNQWdzZ0NVRVFRUlFnQ1NnQ0VDQUFSaHRxSUFNMkFnQWdBMFVOQVFzZ0F5QUpOZ0lZSUFBb0FoQWlBUVJBSUFNZ0FUWUNFQ0FCSUFNMkFoZ0xJQUJCRkdvb0FnQWlBVVVOQUNBRFFSUnFJQUUyQWdBZ0FTQUROZ0lZQ3dKQUlBVkJEMDBFUUNBQUlBUWdCV29pQVVFRGNqWUNCQ0FBSUFGcUlnRWdBU2dDQkVFQmNqWUNCQXdCQ3lBQUlBUnFJZ2NnQlVFQmNqWUNCQ0FBSUFSQkEzSTJBZ1FnQlNBSGFpQUZOZ0lBSUFnRVFDQUlRWGh4UWJUUUFHb2hBVUdnMEFBb0FnQWhBd0ovUVFFZ0NFRURkblFpQWlBR2NVVUVRRUdNMEFBZ0FpQUdjallDQUNBQkRBRUxJQUVvQWdnTElnSWdBellDRENBQklBTTJBZ2dnQXlBQk5nSU1JQU1nQWpZQ0NBdEJvTkFBSUFjMkFnQkJsTkFBSUFVMkFnQUxJQUJCQ0dvaEFRc2dDa0VRYWlRQUlBRUxRd0FnQUVVRVFEOEFRUkIwRHdzQ1FDQUFRZi8vQTNFTkFDQUFRUUJJRFFBZ0FFRVFka0FBSWdCQmYwWUVRRUg4MHdCQk1EWUNBRUYvRHdzZ0FFRVFkQThMQUFzTDNEOGlBRUdBQ0FzSkFRQUFBQUlBQUFBREFFR1VDQXNGQkFBQUFBVUFRYVFJQ3drR0FBQUFCd0FBQUFnQVFkd0lDNG90U1c1MllXeHBaQ0JqYUdGeUlHbHVJSFZ5YkNCeGRXVnllUUJUY0dGdUlHTmhiR3hpWVdOcklHVnljbTl5SUdsdUlHOXVYMkp2WkhrQVEyOXVkR1Z1ZEMxTVpXNW5kR2dnYjNabGNtWnNiM2NBUTJoMWJtc2djMmw2WlNCdmRtVnlabXh2ZHdCU1pYTndiMjV6WlNCdmRtVnlabXh2ZHdCSmJuWmhiR2xrSUcxbGRHaHZaQ0JtYjNJZ1NGUlVVQzk0TG5nZ2NtVnhkV1Z6ZEFCSmJuWmhiR2xrSUcxbGRHaHZaQ0JtYjNJZ1VsUlRVQzk0TG5nZ2NtVnhkV1Z6ZEFCRmVIQmxZM1JsWkNCVFQxVlNRMFVnYldWMGFHOWtJR1p2Y2lCSlEwVXZlQzU0SUhKbGNYVmxjM1FBU1c1MllXeHBaQ0JqYUdGeUlHbHVJSFZ5YkNCbWNtRm5iV1Z1ZENCemRHRnlkQUJGZUhCbFkzUmxaQ0JrYjNRQVUzQmhiaUJqWVd4c1ltRmpheUJsY25KdmNpQnBiaUJ2Ymw5emRHRjBkWE1BU1c1MllXeHBaQ0J5WlhOd2IyNXpaU0J6ZEdGMGRYTUFTVzUyWVd4cFpDQmphR0Z5WVdOMFpYSWdhVzRnWTJoMWJtc2daWGgwWlc1emFXOXVjd0JWYzJWeUlHTmhiR3hpWVdOcklHVnljbTl5QUdCdmJsOXlaWE5sZEdBZ1kyRnNiR0poWTJzZ1pYSnliM0lBWUc5dVgyTm9kVzVyWDJobFlXUmxjbUFnWTJGc2JHSmhZMnNnWlhKeWIzSUFZRzl1WDIxbGMzTmhaMlZmWW1WbmFXNWdJR05oYkd4aVlXTnJJR1Z5Y205eUFHQnZibDlqYUhWdWExOWxlSFJsYm5OcGIyNWZkbUZzZFdWZ0lHTmhiR3hpWVdOcklHVnljbTl5QUdCdmJsOXpkR0YwZFhOZlkyOXRjR3hsZEdWZ0lHTmhiR3hpWVdOcklHVnljbTl5QUdCdmJsOTJaWEp6YVc5dVgyTnZiWEJzWlhSbFlDQmpZV3hzWW1GamF5Qmxjbkp2Y2dCZ2IyNWZkWEpzWDJOdmJYQnNaWFJsWUNCallXeHNZbUZqYXlCbGNuSnZjZ0JnYjI1ZlkyaDFibXRmWTI5dGNHeGxkR1ZnSUdOaGJHeGlZV05ySUdWeWNtOXlBR0J2Ymw5b1pXRmtaWEpmZG1Gc2RXVmZZMjl0Y0d4bGRHVmdJR05oYkd4aVlXTnJJR1Z5Y205eUFHQnZibDl0WlhOellXZGxYMk52YlhCc1pYUmxZQ0JqWVd4c1ltRmpheUJsY25KdmNnQmdiMjVmYldWMGFHOWtYMk52YlhCc1pYUmxZQ0JqWVd4c1ltRmpheUJsY25KdmNnQmdiMjVmYUdWaFpHVnlYMlpwWld4a1gyTnZiWEJzWlhSbFlDQmpZV3hzWW1GamF5Qmxjbkp2Y2dCZ2IyNWZZMmgxYm10ZlpYaDBaVzV6YVc5dVgyNWhiV1ZnSUdOaGJHeGlZV05ySUdWeWNtOXlBRlZ1Wlhod1pXTjBaV1FnWTJoaGNpQnBiaUIxY213Z2MyVnlkbVZ5QUVsdWRtRnNhV1FnYUdWaFpHVnlJSFpoYkhWbElHTm9ZWElBU1c1MllXeHBaQ0JvWldGa1pYSWdabWxsYkdRZ1kyaGhjZ0JUY0dGdUlHTmhiR3hpWVdOcklHVnljbTl5SUdsdUlHOXVYM1psY25OcGIyNEFTVzUyWVd4cFpDQnRhVzV2Y2lCMlpYSnphVzl1QUVsdWRtRnNhV1FnYldGcWIzSWdkbVZ5YzJsdmJnQkZlSEJsWTNSbFpDQnpjR0ZqWlNCaFpuUmxjaUIyWlhKemFXOXVBRVY0Y0dWamRHVmtJRU5TVEVZZ1lXWjBaWElnZG1WeWMybHZiZ0JKYm5aaGJHbGtJRWhVVkZBZ2RtVnljMmx2YmdCSmJuWmhiR2xrSUdobFlXUmxjaUIwYjJ0bGJnQlRjR0Z1SUdOaGJHeGlZV05ySUdWeWNtOXlJR2x1SUc5dVgzVnliQUJKYm5aaGJHbGtJR05vWVhKaFkzUmxjbk1nYVc0Z2RYSnNBRlZ1Wlhod1pXTjBaV1FnYzNSaGNuUWdZMmhoY2lCcGJpQjFjbXdBUkc5MVlteGxJRUFnYVc0Z2RYSnNBRVZ0Y0hSNUlFTnZiblJsYm5RdFRHVnVaM1JvQUVsdWRtRnNhV1FnWTJoaGNtRmpkR1Z5SUdsdUlFTnZiblJsYm5RdFRHVnVaM1JvQUVSMWNHeHBZMkYwWlNCRGIyNTBaVzUwTFV4bGJtZDBhQUJKYm5aaGJHbGtJR05vWVhJZ2FXNGdkWEpzSUhCaGRHZ0FRMjl1ZEdWdWRDMU1aVzVuZEdnZ1kyRnVKM1FnWW1VZ2NISmxjMlZ1ZENCM2FYUm9JRlJ5WVc1elptVnlMVVZ1WTI5a2FXNW5BRWx1ZG1Gc2FXUWdZMmhoY21GamRHVnlJR2x1SUdOb2RXNXJJSE5wZW1VQVUzQmhiaUJqWVd4c1ltRmpheUJsY25KdmNpQnBiaUJ2Ymw5b1pXRmtaWEpmZG1Gc2RXVUFVM0JoYmlCallXeHNZbUZqYXlCbGNuSnZjaUJwYmlCdmJsOWphSFZ1YTE5bGVIUmxibk5wYjI1ZmRtRnNkV1VBU1c1MllXeHBaQ0JqYUdGeVlXTjBaWElnYVc0Z1kyaDFibXNnWlhoMFpXNXphVzl1Y3lCMllXeDFaUUJOYVhOemFXNW5JR1Y0Y0dWamRHVmtJRXhHSUdGbWRHVnlJR2hsWVdSbGNpQjJZV3gxWlFCSmJuWmhiR2xrSUdCVWNtRnVjMlpsY2kxRmJtTnZaR2x1WjJBZ2FHVmhaR1Z5SUhaaGJIVmxBRWx1ZG1Gc2FXUWdZMmhoY21GamRHVnlJR2x1SUdOb2RXNXJJR1Y0ZEdWdWMybHZibk1nY1hWdmRHVWdkbUZzZFdVQVNXNTJZV3hwWkNCamFHRnlZV04wWlhJZ2FXNGdZMmgxYm1zZ1pYaDBaVzV6YVc5dWN5QnhkVzkwWldRZ2RtRnNkV1VBVUdGMWMyVmtJR0o1SUc5dVgyaGxZV1JsY25OZlkyOXRjR3hsZEdVQVNXNTJZV3hwWkNCRlQwWWdjM1JoZEdVQWIyNWZjbVZ6WlhRZ2NHRjFjMlVBYjI1ZlkyaDFibXRmYUdWaFpHVnlJSEJoZFhObEFHOXVYMjFsYzNOaFoyVmZZbVZuYVc0Z2NHRjFjMlVBYjI1ZlkyaDFibXRmWlhoMFpXNXphVzl1WDNaaGJIVmxJSEJoZFhObEFHOXVYM04wWVhSMWMxOWpiMjF3YkdWMFpTQndZWFZ6WlFCdmJsOTJaWEp6YVc5dVgyTnZiWEJzWlhSbElIQmhkWE5sQUc5dVgzVnliRjlqYjIxd2JHVjBaU0J3WVhWelpRQnZibDlqYUhWdWExOWpiMjF3YkdWMFpTQndZWFZ6WlFCdmJsOW9aV0ZrWlhKZmRtRnNkV1ZmWTI5dGNHeGxkR1VnY0dGMWMyVUFiMjVmYldWemMyRm5aVjlqYjIxd2JHVjBaU0J3WVhWelpRQnZibDl0WlhSb2IyUmZZMjl0Y0d4bGRHVWdjR0YxYzJVQWIyNWZhR1ZoWkdWeVgyWnBaV3hrWDJOdmJYQnNaWFJsSUhCaGRYTmxBRzl1WDJOb2RXNXJYMlY0ZEdWdWMybHZibDl1WVcxbElIQmhkWE5sQUZWdVpYaHdaV04wWldRZ2MzQmhZMlVnWVdaMFpYSWdjM1JoY25RZ2JHbHVaUUJUY0dGdUlHTmhiR3hpWVdOcklHVnljbTl5SUdsdUlHOXVYMk5vZFc1clgyVjRkR1Z1YzJsdmJsOXVZVzFsQUVsdWRtRnNhV1FnWTJoaGNtRmpkR1Z5SUdsdUlHTm9kVzVySUdWNGRHVnVjMmx2Ym5NZ2JtRnRaUUJRWVhWelpTQnZiaUJEVDA1T1JVTlVMMVZ3WjNKaFpHVUFVR0YxYzJVZ2IyNGdVRkpKTDFWd1ozSmhaR1VBUlhod1pXTjBaV1FnU0ZSVVVDOHlJRU52Ym01bFkzUnBiMjRnVUhKbFptRmpaUUJUY0dGdUlHTmhiR3hpWVdOcklHVnljbTl5SUdsdUlHOXVYMjFsZEdodlpBQkZlSEJsWTNSbFpDQnpjR0ZqWlNCaFpuUmxjaUJ0WlhSb2IyUUFVM0JoYmlCallXeHNZbUZqYXlCbGNuSnZjaUJwYmlCdmJsOW9aV0ZrWlhKZlptbGxiR1FBVUdGMWMyVmtBRWx1ZG1Gc2FXUWdkMjl5WkNCbGJtTnZkVzUwWlhKbFpBQkpiblpoYkdsa0lHMWxkR2h2WkNCbGJtTnZkVzUwWlhKbFpBQlZibVY0Y0dWamRHVmtJR05vWVhJZ2FXNGdkWEpzSUhOamFHVnRZUUJTWlhGMVpYTjBJR2hoY3lCcGJuWmhiR2xrSUdCVWNtRnVjMlpsY2kxRmJtTnZaR2x1WjJBQVUxZEpWRU5JWDFCU1QxaFpBRlZUUlY5UVVrOVlXUUJOUzBGRFZFbFdTVlJaQUZWT1VGSlBRMFZUVTBGQ1RFVmZSVTVVU1ZSWkFFTlBVRmtBVFU5V1JVUmZVRVZTVFVGT1JVNVVURmtBVkU5UFgwVkJVa3haQUU1UFZFbEdXUUJHUVVsTVJVUmZSRVZRUlU1RVJVNURXUUJDUVVSZlIwRlVSVmRCV1FCUVRFRlpBRkJWVkFCRFNFVkRTMDlWVkFCSFFWUkZWMEZaWDFSSlRVVlBWVlFBVWtWUlZVVlRWRjlVU1UxRlQxVlVBRTVGVkZkUFVrdGZRMDlPVGtWRFZGOVVTVTFGVDFWVUFFTlBUazVGUTFSSlQwNWZWRWxOUlU5VlZBQk1UMGRKVGw5VVNVMUZUMVZVQUU1RlZGZFBVa3RmVWtWQlJGOVVTVTFGVDFWVUFGQlBVMVFBVFVsVFJFbFNSVU5VUlVSZlVrVlJWVVZUVkFCRFRFbEZUbFJmUTB4UFUwVkVYMUpGVVZWRlUxUUFRMHhKUlU1VVgwTk1UMU5GUkY5TVQwRkVYMEpCVEVGT1EwVkVYMUpGVVZWRlUxUUFRa0ZFWDFKRlVWVkZVMVFBU0ZSVVVGOVNSVkZWUlZOVVgxTkZUbFJmVkU5ZlNGUlVVRk5mVUU5U1ZBQlNSVkJQVWxRQVNVMWZRVjlVUlVGUVQxUUFVa1ZUUlZSZlEwOU9WRVZPVkFCT1QxOURUMDVVUlU1VUFGQkJVbFJKUVV4ZlEwOU9WRVZPVkFCSVVFVmZTVTVXUVV4SlJGOURUMDVUVkVGT1ZBQklVRVZmUTBKZlVrVlRSVlFBUjBWVUFFaFFSVjlUVkZKSlExUUFRMDlPUmt4SlExUUFWRVZOVUU5U1FWSlpYMUpGUkVsU1JVTlVBRkJGVWsxQlRrVk9WRjlTUlVSSlVrVkRWQUJEVDA1T1JVTlVBRTFWVEZSSlgxTlVRVlJWVXdCSVVFVmZTVTVXUVV4SlJGOVRWRUZVVlZNQVZFOVBYMDFCVGxsZlVrVlJWVVZUVkZNQVJVRlNURmxmU0VsT1ZGTUFWVTVCVmtGSlRFRkNURVZmUms5U1gweEZSMEZNWDFKRlFWTlBUbE1BVDFCVVNVOU9Vd0JUVjBsVVEwaEpUa2RmVUZKUFZFOURUMHhUQUZaQlVrbEJUbFJmUVV4VFQxOU9SVWRQVkVsQlZFVlRBRTFWVEZSSlVFeEZYME5JVDBsRFJWTUFTVTVVUlZKT1FVeGZVMFZTVmtWU1gwVlNVazlTQUZkRlFsOVRSVkpXUlZKZlZVNUxUazlYVGw5RlVsSlBVZ0JTUVVsTVIxVk9YMFZTVWs5U0FFbEVSVTVVU1ZSWlgxQlNUMVpKUkVWU1gwRlZWRWhGVGxSSlEwRlVTVTlPWDBWU1VrOVNBRk5UVEY5RFJWSlVTVVpKUTBGVVJWOUZVbEpQVWdCSlRsWkJURWxFWDFoZlJrOVNWMEZTUkVWRVgwWlBVZ0JUUlZSZlVFRlNRVTFGVkVWU0FFZEZWRjlRUVZKQlRVVlVSVklBU0ZCRlgxVlRSVklBVTBWRlgwOVVTRVZTQUVoUVJWOURRbDlEU0ZWT1MxOUlSVUZFUlZJQVRVdERRVXhGVGtSQlVnQlRSVlJWVUFCWFJVSmZVMFZTVmtWU1gwbFRYMFJQVjA0QVZFVkJVa1JQVjA0QVNGQkZYME5NVDFORlJGOURUMDVPUlVOVVNVOU9BRWhGVlZKSlUxUkpRMTlGV0ZCSlVrRlVTVTlPQUVSSlUwTlBUazVGUTFSRlJGOVBVRVZTUVZSSlQwNEFUazlPWDBGVlZFaFBVa2xVUVZSSlZrVmZTVTVHVDFKTlFWUkpUMDRBU0ZCRlgwbE9Wa0ZNU1VSZlZrVlNVMGxQVGdCSVVFVmZRMEpmVFVWVFUwRkhSVjlDUlVkSlRnQlRTVlJGWDBsVFgwWlNUMXBGVGdCSVVFVmZTVTVXUVV4SlJGOUlSVUZFUlZKZlZFOUxSVTRBU1U1V1FVeEpSRjlVVDB0RlRnQkdUMUpDU1VSRVJVNEFSVTVJUVU1RFJWOVpUMVZTWDBOQlRFMEFTRkJGWDBsT1ZrRk1TVVJmVlZKTUFFSk1UME5MUlVSZlFsbGZVRUZTUlU1VVFVeGZRMDlPVkZKUFRBQk5TME5QVEFCQlEwd0FTRkJGWDBsT1ZFVlNUa0ZNQUZKRlVWVkZVMVJmU0VWQlJFVlNYMFpKUlV4RVUxOVVUMDlmVEVGU1IwVmZWVTVQUmtaSlEwbEJUQUJJVUVWZlQwc0FWVTVNU1U1TEFGVk9URTlEU3dCUVVra0FVa1ZVVWxsZlYwbFVTQUJJVUVWZlNVNVdRVXhKUkY5RFQwNVVSVTVVWDB4RlRrZFVTQUJJVUVWZlZVNUZXRkJGUTFSRlJGOURUMDVVUlU1VVgweEZUa2RVU0FCR1RGVlRTQUJRVWs5UVVFRlVRMGdBVFMxVFJVRlNRMGdBVlZKSlgxUlBUMTlNVDA1SEFGQlNUME5GVTFOSlRrY0FUVWxUUTBWTVRFRk9SVTlWVTE5UVJWSlRTVk5VUlU1VVgxZEJVazVKVGtjQVRVbFRRMFZNVEVGT1JVOVZVMTlYUVZKT1NVNUhBRWhRUlY5SlRsWkJURWxFWDFSU1FVNVRSa1ZTWDBWT1EwOUVTVTVIQUVWNGNHVmpkR1ZrSUVOU1RFWUFTRkJGWDBsT1ZrRk1TVVJmUTBoVlRrdGZVMGxhUlFCTlQxWkZBRU5QVGxSSlRsVkZBRWhRUlY5RFFsOVRWRUZVVlZOZlEwOU5VRXhGVkVVQVNGQkZYME5DWDBoRlFVUkZVbE5mUTA5TlVFeEZWRVVBU0ZCRlgwTkNYMVpGVWxOSlQwNWZRMDlOVUV4RlZFVUFTRkJGWDBOQ1gxVlNURjlEVDAxUVRFVlVSUUJJVUVWZlEwSmZRMGhWVGt0ZlEwOU5VRXhGVkVVQVNGQkZYME5DWDBoRlFVUkZVbDlXUVV4VlJWOURUMDFRVEVWVVJRQklVRVZmUTBKZlEwaFZUa3RmUlZoVVJVNVRTVTlPWDFaQlRGVkZYME5QVFZCTVJWUkZBRWhRUlY5RFFsOURTRlZPUzE5RldGUkZUbE5KVDA1ZlRrRk5SVjlEVDAxUVRFVlVSUUJJVUVWZlEwSmZUVVZUVTBGSFJWOURUMDFRVEVWVVJRQklVRVZmUTBKZlRVVlVTRTlFWDBOUFRWQk1SVlJGQUVoUVJWOURRbDlJUlVGRVJWSmZSa2xGVEVSZlEwOU5VRXhGVkVVQVJFVk1SVlJGQUVoUVJWOUpUbFpCVEVsRVgwVlBSbDlUVkVGVVJRQkpUbFpCVEVsRVgxTlRURjlEUlZKVVNVWkpRMEZVUlFCUVFWVlRSUUJPVDE5U1JWTlFUMDVUUlFCVlRsTlZVRkJQVWxSRlJGOU5SVVJKUVY5VVdWQkZBRWRQVGtVQVRrOVVYMEZEUTBWUVZFRkNURVVBVTBWU1ZrbERSVjlWVGtGV1FVbE1RVUpNUlFCU1FVNUhSVjlPVDFSZlUwRlVTVk5HU1VGQ1RFVUFUMUpKUjBsT1gwbFRYMVZPVWtWQlEwaEJRa3hGQUZKRlUxQlBUbE5GWDBsVFgxTlVRVXhGQUZCVlVrZEZBRTFGVWtkRkFGSkZVVlZGVTFSZlNFVkJSRVZTWDBaSlJVeEVVMTlVVDA5ZlRFRlNSMFVBVWtWUlZVVlRWRjlJUlVGRVJWSmZWRTlQWDB4QlVrZEZBRkJCV1V4UFFVUmZWRTlQWDB4QlVrZEZBRWxPVTFWR1JrbERTVVZPVkY5VFZFOVNRVWRGQUVoUVJWOVFRVlZUUlVSZlZWQkhVa0ZFUlFCSVVFVmZVRUZWVTBWRVgwZ3lYMVZRUjFKQlJFVUFVMDlWVWtORkFFRk9UazlWVGtORkFGUlNRVU5GQUVoUVJWOVZUa1ZZVUVWRFZFVkVYMU5RUVVORkFFUkZVME5TU1VKRkFGVk9VMVZDVTBOU1NVSkZBRkpGUTA5U1JBQklVRVZmU1U1V1FVeEpSRjlOUlZSSVQwUUFUazlVWDBaUFZVNUVBRkJTVDFCR1NVNUVBRlZPUWtsT1JBQlNSVUpKVGtRQVZVNUJWVlJJVDFKSldrVkVBRTFGVkVoUFJGOU9UMVJmUVV4TVQxZEZSQUJJVkZSUVgxWkZVbE5KVDA1ZlRrOVVYMU5WVUZCUFVsUkZSQUJCVEZKRlFVUlpYMUpGVUU5U1ZFVkVBRUZEUTBWUVZFVkVBRTVQVkY5SlRWQk1SVTFGVGxSRlJBQk1UMDlRWDBSRlZFVkRWRVZFQUVoUVJWOURVbDlGV0ZCRlExUkZSQUJJVUVWZlRFWmZSVmhRUlVOVVJVUUFRMUpGUVZSRlJBQkpUVjlWVTBWRUFFaFFSVjlRUVZWVFJVUUFWRWxOUlU5VlZGOVBRME5WVWtWRUFGQkJXVTFGVGxSZlVrVlJWVWxTUlVRQVVGSkZRMDlPUkVsVVNVOU9YMUpGVVZWSlVrVkVBRkJTVDFoWlgwRlZWRWhGVGxSSlEwRlVTVTlPWDFKRlVWVkpVa1ZFQUU1RlZGZFBVa3RmUVZWVVNFVk9WRWxEUVZSSlQwNWZVa1ZSVlVsU1JVUUFURVZPUjFSSVgxSkZVVlZKVWtWRUFGTlRURjlEUlZKVVNVWkpRMEZVUlY5U1JWRlZTVkpGUkFCVlVFZFNRVVJGWDFKRlVWVkpVa1ZFQUZCQlIwVmZSVmhRU1ZKRlJBQlFVa1ZEVDA1RVNWUkpUMDVmUmtGSlRFVkVBRVZZVUVWRFZFRlVTVTlPWDBaQlNVeEZSQUJTUlZaQlRFbEVRVlJKVDA1ZlJrRkpURVZFQUZOVFRGOUlRVTVFVTBoQlMwVmZSa0ZKVEVWRUFFeFBRMHRGUkFCVVVrRk9VMFpQVWsxQlZFbFBUbDlCVUZCTVNVVkVBRTVQVkY5TlQwUkpSa2xGUkFCT1QxUmZSVmhVUlU1RVJVUUFRa0ZPUkZkSlJGUklYMHhKVFVsVVgwVllRMFZGUkVWRUFGTkpWRVZmU1ZOZlQxWkZVa3hQUVVSRlJBQklSVUZFQUVWNGNHVmpkR1ZrSUVoVVZGQXZBQUJlRXdBQUpoTUFBREFRQUFEd0Z3QUFuUk1BQUJVU0FBQTVGd0FBOEJJQUFBb1FBQUIxRWdBQXJSSUFBSUlUQUFCUEZBQUFmeEFBQUtBVkFBQWpGQUFBaVJJQUFJc1VBQUJORlFBQTFCRUFBTThVQUFBUUdBQUF5UllBQU53V0FBREJFUUFBNEJjQUFMc1VBQUIwRkFBQWZCVUFBT1VVQUFBSUZ3QUFIeEFBQUdVVkFBQ2pGQUFBS0JVQUFBSVZBQUNaRlFBQUxCQUFBSXNaQUFCUER3QUExQTRBQUdvUUFBRE9FQUFBQWhjQUFJa09BQUJ1RXdBQUhCTUFBR1lVQUFCV0Z3QUF3Uk1BQU0wVEFBQnNFd0FBYUJjQUFHWVhBQUJmRndBQUloTUFBTTRQQUFCcERnQUEyQTRBQUdNV0FBRExFd0FBcWc0QUFDZ1hBQUFtRndBQXhSTUFBRjBXQUFEb0VRQUFaeE1BQUdVVEFBRHlGZ0FBY3hNQUFCMFhBQUQ1RmdBQTh4RUFBTThPQUFET0ZRQUFEQklBQUxNUkFBQ2xFUUFBWVJBQUFESVhBQUM3RXdCQitUVUxBUUVBUVpBMkMrQUJBUUVDQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFBRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUFRZjAzQ3dFQkFFR1JPQXRlQWdNQ0FnSUNBZ0FBQWdJQUFnSUFBZ0lDQWdJQ0FnSUNBZ0FFQUFBQUFBQUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQUFBQUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUFJQUFnQkIvVGtMQVFFQVFaRTZDMTRDQUFJQ0FnSUNBQUFDQWdBQ0FnQUNBZ0lDQWdJQ0FnSUNBQU1BQkFBQUFBSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FBQUFBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBQWdBQ0FFSHdPd3NOYkc5elpXVmxjQzFoYkdsMlpRQkJpVHdMQVFFQVFhQThDK0FCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUFBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVBUVlrK0N3RUJBRUdnUGd2bkFRRUJBUUVCQVFFQkFRRUJBUUlCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQUFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQlkyaDFibXRsWkFCQnNNQUFDMThCQVFBQkFRRUJBUUFBQVFFQUFRRUFBUUVCQVFFQkFRRUJBUUFBQUFBQUFBQUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRQUFBQUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQUFFQUFRQkJrTUlBQ3lGbFkzUnBiMjVsYm5RdGJHVnVaM1JvYjI1eWIzaDVMV052Ym01bFkzUnBiMjRBUWNEQ0FBc3RjbUZ1YzJabGNpMWxibU52WkdsdVozQm5jbUZrWlEwS0RRb05DbE5ORFFvTkNsUlVVQzlEUlM5VVUxQXZBRUg1d2dBTEJRRUNBQUVEQUVHUXd3QUw0QUVFQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRQUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUJCK2NRQUN3VUJBZ0FCQXdCQmtNVUFDK0FCQkFFQkJRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUFBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVBUWZuR0FBc0VBUUFBQVFCQmtjY0FDOThCQVFFQUFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFBRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRQUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUJCK3NnQUN3UUJBQUFDQUVHUXlRQUxYd01FQUFBRUJBUUVCQVFFQkFRRUJBVUVCQVFFQkFRRUJBUUVCQVFBQkFBR0J3UUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBQUVBQVFBQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFBQUFBRUFFSDZ5Z0FMQkFFQUFBRUFRWkRMQUFzQkFRQkJxc3NBQzBFQ0FBQUFBQUFBQXdNREF3TURBd01EQXdNREF3TURBd01EQXdNREF3TURBd01BQUFBQUFBQURBd01EQXdNREF3TURBd01EQXdNREF3TURBd01EQXdNREF3QkIrc3dBQ3dRQkFBQUJBRUdRelFBTEFRRUFRWnJOQUFzR0FnQUFBQUFDQUVHeHpRQUxPZ01EQXdNREF3TURBd01EQXdNREF3TURBd01EQXdNREF3TURBQUFBQUFBQUF3TURBd01EQXdNREF3TURBd01EQXdNREF3TURBd01EQXdNQVFmRE9BQXVXQVU1UFZVNURSVVZEUzA5VlZFNUZRMVJGVkVWRFVrbENSVXhWVTBoRlZFVkJSRk5GUVZKRFNGSkhSVU5VU1ZaSlZGbE1SVTVFUVZKV1JVOVVTVVpaVUZSSlQwNVRRMGhUUlVGWlUxUkJWRU5JUjBWUFVrUkpVa1ZEVkU5U1ZGSkRTRkJCVWtGTlJWUkZVbFZTUTBWQ1UwTlNTVUpGUVZKRVQxZE9RVU5GU1U1RVRrdERTMVZDVTBOU1NVSkZTRlJVVUM5QlJGUlFMdz09JywgJ2Jhc2U2NCcpXG4iLCAiJ3VzZSBzdHJpY3QnXG5cbmNvbnN0IGNvcnNTYWZlTGlzdGVkTWV0aG9kcyA9IC8qKiBAdHlwZSB7Y29uc3R9ICovIChbJ0dFVCcsICdIRUFEJywgJ1BPU1QnXSlcbmNvbnN0IGNvcnNTYWZlTGlzdGVkTWV0aG9kc1NldCA9IG5ldyBTZXQoY29yc1NhZmVMaXN0ZWRNZXRob2RzKVxuXG5jb25zdCBudWxsQm9keVN0YXR1cyA9IC8qKiBAdHlwZSB7Y29uc3R9ICovIChbMTAxLCAyMDQsIDIwNSwgMzA0XSlcblxuY29uc3QgcmVkaXJlY3RTdGF0dXMgPSAvKiogQHR5cGUge2NvbnN0fSAqLyAoWzMwMSwgMzAyLCAzMDMsIDMwNywgMzA4XSlcbmNvbnN0IHJlZGlyZWN0U3RhdHVzU2V0ID0gbmV3IFNldChyZWRpcmVjdFN0YXR1cylcblxuLyoqXG4gKiBAc2VlIGh0dHBzOi8vZmV0Y2guc3BlYy53aGF0d2cub3JnLyNibG9jay1iYWQtcG9ydFxuICovXG5jb25zdCBiYWRQb3J0cyA9IC8qKiBAdHlwZSB7Y29uc3R9ICovIChbXG4gICcxJywgJzcnLCAnOScsICcxMScsICcxMycsICcxNScsICcxNycsICcxOScsICcyMCcsICcyMScsICcyMicsICcyMycsICcyNScsICczNycsICc0MicsICc0MycsICc1MycsICc2OScsICc3NycsICc3OScsXG4gICc4NycsICc5NScsICcxMDEnLCAnMTAyJywgJzEwMycsICcxMDQnLCAnMTA5JywgJzExMCcsICcxMTEnLCAnMTEzJywgJzExNScsICcxMTcnLCAnMTE5JywgJzEyMycsICcxMzUnLCAnMTM3JyxcbiAgJzEzOScsICcxNDMnLCAnMTYxJywgJzE3OScsICczODknLCAnNDI3JywgJzQ2NScsICc1MTInLCAnNTEzJywgJzUxNCcsICc1MTUnLCAnNTI2JywgJzUzMCcsICc1MzEnLCAnNTMyJyxcbiAgJzU0MCcsICc1NDgnLCAnNTU0JywgJzU1NicsICc1NjMnLCAnNTg3JywgJzYwMScsICc2MzYnLCAnOTg5JywgJzk5MCcsICc5OTMnLCAnOTk1JywgJzE3MTknLCAnMTcyMCcsICcxNzIzJyxcbiAgJzIwNDknLCAnMzY1OScsICc0MDQ1JywgJzQxOTAnLCAnNTA2MCcsICc1MDYxJywgJzYwMDAnLCAnNjU2NicsICc2NjY1JywgJzY2NjYnLCAnNjY2NycsICc2NjY4JywgJzY2NjknLCAnNjY3OScsXG4gICc2Njk3JywgJzEwMDgwJ1xuXSlcbmNvbnN0IGJhZFBvcnRzU2V0ID0gbmV3IFNldChiYWRQb3J0cylcblxuLyoqXG4gKiBAc2VlIGh0dHBzOi8vdzNjLmdpdGh1Yi5pby93ZWJhcHBzZWMtcmVmZXJyZXItcG9saWN5LyNyZWZlcnJlci1wb2xpY2llc1xuICovXG5jb25zdCByZWZlcnJlclBvbGljeSA9IC8qKiBAdHlwZSB7Y29uc3R9ICovIChbXG4gICcnLFxuICAnbm8tcmVmZXJyZXInLFxuICAnbm8tcmVmZXJyZXItd2hlbi1kb3duZ3JhZGUnLFxuICAnc2FtZS1vcmlnaW4nLFxuICAnb3JpZ2luJyxcbiAgJ3N0cmljdC1vcmlnaW4nLFxuICAnb3JpZ2luLXdoZW4tY3Jvc3Mtb3JpZ2luJyxcbiAgJ3N0cmljdC1vcmlnaW4td2hlbi1jcm9zcy1vcmlnaW4nLFxuICAndW5zYWZlLXVybCdcbl0pXG5jb25zdCByZWZlcnJlclBvbGljeVNldCA9IG5ldyBTZXQocmVmZXJyZXJQb2xpY3kpXG5cbmNvbnN0IHJlcXVlc3RSZWRpcmVjdCA9IC8qKiBAdHlwZSB7Y29uc3R9ICovIChbJ2ZvbGxvdycsICdtYW51YWwnLCAnZXJyb3InXSlcblxuY29uc3Qgc2FmZU1ldGhvZHMgPSAvKiogQHR5cGUge2NvbnN0fSAqLyAoWydHRVQnLCAnSEVBRCcsICdPUFRJT05TJywgJ1RSQUNFJ10pXG5jb25zdCBzYWZlTWV0aG9kc1NldCA9IG5ldyBTZXQoc2FmZU1ldGhvZHMpXG5cbmNvbnN0IHJlcXVlc3RNb2RlID0gLyoqIEB0eXBlIHtjb25zdH0gKi8gKFsnbmF2aWdhdGUnLCAnc2FtZS1vcmlnaW4nLCAnbm8tY29ycycsICdjb3JzJ10pXG5cbmNvbnN0IHJlcXVlc3RDcmVkZW50aWFscyA9IC8qKiBAdHlwZSB7Y29uc3R9ICovIChbJ29taXQnLCAnc2FtZS1vcmlnaW4nLCAnaW5jbHVkZSddKVxuXG5jb25zdCByZXF1ZXN0Q2FjaGUgPSAvKiogQHR5cGUge2NvbnN0fSAqLyAoW1xuICAnZGVmYXVsdCcsXG4gICduby1zdG9yZScsXG4gICdyZWxvYWQnLFxuICAnbm8tY2FjaGUnLFxuICAnZm9yY2UtY2FjaGUnLFxuICAnb25seS1pZi1jYWNoZWQnXG5dKVxuXG4vKipcbiAqIEBzZWUgaHR0cHM6Ly9mZXRjaC5zcGVjLndoYXR3Zy5vcmcvI3JlcXVlc3QtYm9keS1oZWFkZXItbmFtZVxuICovXG5jb25zdCByZXF1ZXN0Qm9keUhlYWRlciA9IC8qKiBAdHlwZSB7Y29uc3R9ICovIChbXG4gICdjb250ZW50LWVuY29kaW5nJyxcbiAgJ2NvbnRlbnQtbGFuZ3VhZ2UnLFxuICAnY29udGVudC1sb2NhdGlvbicsXG4gICdjb250ZW50LXR5cGUnLFxuICAvLyBTZWUgaHR0cHM6Ly9naXRodWIuY29tL25vZGVqcy91bmRpY2kvaXNzdWVzLzIwMjFcbiAgLy8gJ0NvbnRlbnQtTGVuZ3RoJyBpcyBhIGZvcmJpZGRlbiBoZWFkZXIgbmFtZSwgd2hpY2ggaXMgdHlwaWNhbGx5XG4gIC8vIHJlbW92ZWQgaW4gdGhlIEhlYWRlcnMgaW1wbGVtZW50YXRpb24uIEhvd2V2ZXIsIHVuZGljaSBkb2Vzbid0XG4gIC8vIGZpbHRlciBvdXQgaGVhZGVycywgc28gd2UgYWRkIGl0IGhlcmUuXG4gICdjb250ZW50LWxlbmd0aCdcbl0pXG5cbi8qKlxuICogQHNlZSBodHRwczovL2ZldGNoLnNwZWMud2hhdHdnLm9yZy8jZW51bWRlZi1yZXF1ZXN0ZHVwbGV4XG4gKi9cbmNvbnN0IHJlcXVlc3REdXBsZXggPSAvKiogQHR5cGUge2NvbnN0fSAqLyAoW1xuICAnaGFsZidcbl0pXG5cbi8qKlxuICogQHNlZSBodHRwOi8vZmV0Y2guc3BlYy53aGF0d2cub3JnLyNmb3JiaWRkZW4tbWV0aG9kXG4gKi9cbmNvbnN0IGZvcmJpZGRlbk1ldGhvZHMgPSAvKiogQHR5cGUge2NvbnN0fSAqLyAoWydDT05ORUNUJywgJ1RSQUNFJywgJ1RSQUNLJ10pXG5jb25zdCBmb3JiaWRkZW5NZXRob2RzU2V0ID0gbmV3IFNldChmb3JiaWRkZW5NZXRob2RzKVxuXG5jb25zdCBzdWJyZXNvdXJjZSA9IC8qKiBAdHlwZSB7Y29uc3R9ICovIChbXG4gICdhdWRpbycsXG4gICdhdWRpb3dvcmtsZXQnLFxuICAnZm9udCcsXG4gICdpbWFnZScsXG4gICdtYW5pZmVzdCcsXG4gICdwYWludHdvcmtsZXQnLFxuICAnc2NyaXB0JyxcbiAgJ3N0eWxlJyxcbiAgJ3RyYWNrJyxcbiAgJ3ZpZGVvJyxcbiAgJ3hzbHQnLFxuICAnJ1xuXSlcbmNvbnN0IHN1YnJlc291cmNlU2V0ID0gbmV3IFNldChzdWJyZXNvdXJjZSlcblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gIHN1YnJlc291cmNlLFxuICBmb3JiaWRkZW5NZXRob2RzLFxuICByZXF1ZXN0Qm9keUhlYWRlcixcbiAgcmVmZXJyZXJQb2xpY3ksXG4gIHJlcXVlc3RSZWRpcmVjdCxcbiAgcmVxdWVzdE1vZGUsXG4gIHJlcXVlc3RDcmVkZW50aWFscyxcbiAgcmVxdWVzdENhY2hlLFxuICByZWRpcmVjdFN0YXR1cyxcbiAgY29yc1NhZmVMaXN0ZWRNZXRob2RzLFxuICBudWxsQm9keVN0YXR1cyxcbiAgc2FmZU1ldGhvZHMsXG4gIGJhZFBvcnRzLFxuICByZXF1ZXN0RHVwbGV4LFxuICBzdWJyZXNvdXJjZVNldCxcbiAgYmFkUG9ydHNTZXQsXG4gIHJlZGlyZWN0U3RhdHVzU2V0LFxuICBjb3JzU2FmZUxpc3RlZE1ldGhvZHNTZXQsXG4gIHNhZmVNZXRob2RzU2V0LFxuICBmb3JiaWRkZW5NZXRob2RzU2V0LFxuICByZWZlcnJlclBvbGljeVNldFxufVxuIiwgIid1c2Ugc3RyaWN0J1xuXG4vLyBJbiBjYXNlIG9mIGJyZWFraW5nIGNoYW5nZXMsIGluY3JlYXNlIHRoZSB2ZXJzaW9uXG4vLyBudW1iZXIgdG8gYXZvaWQgY29uZmxpY3RzLlxuY29uc3QgZ2xvYmFsT3JpZ2luID0gU3ltYm9sLmZvcigndW5kaWNpLmdsb2JhbE9yaWdpbi4xJylcblxuZnVuY3Rpb24gZ2V0R2xvYmFsT3JpZ2luICgpIHtcbiAgcmV0dXJuIGdsb2JhbFRoaXNbZ2xvYmFsT3JpZ2luXVxufVxuXG5mdW5jdGlvbiBzZXRHbG9iYWxPcmlnaW4gKG5ld09yaWdpbikge1xuICBpZiAobmV3T3JpZ2luID09PSB1bmRlZmluZWQpIHtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZ2xvYmFsVGhpcywgZ2xvYmFsT3JpZ2luLCB7XG4gICAgICB2YWx1ZTogdW5kZWZpbmVkLFxuICAgICAgd3JpdGFibGU6IHRydWUsXG4gICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgIGNvbmZpZ3VyYWJsZTogZmFsc2VcbiAgICB9KVxuXG4gICAgcmV0dXJuXG4gIH1cblxuICBjb25zdCBwYXJzZWRVUkwgPSBuZXcgVVJMKG5ld09yaWdpbilcblxuICBpZiAocGFyc2VkVVJMLnByb3RvY29sICE9PSAnaHR0cDonICYmIHBhcnNlZFVSTC5wcm90b2NvbCAhPT0gJ2h0dHBzOicpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKGBPbmx5IGh0dHAgJiBodHRwcyB1cmxzIGFyZSBhbGxvd2VkLCByZWNlaXZlZCAke3BhcnNlZFVSTC5wcm90b2NvbH1gKVxuICB9XG5cbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGdsb2JhbFRoaXMsIGdsb2JhbE9yaWdpbiwge1xuICAgIHZhbHVlOiBwYXJzZWRVUkwsXG4gICAgd3JpdGFibGU6IHRydWUsXG4gICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgY29uZmlndXJhYmxlOiBmYWxzZVxuICB9KVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgZ2V0R2xvYmFsT3JpZ2luLFxuICBzZXRHbG9iYWxPcmlnaW5cbn1cbiIsICIndXNlIHN0cmljdCdcblxuY29uc3QgYXNzZXJ0ID0gcmVxdWlyZSgnbm9kZTphc3NlcnQnKVxuXG5jb25zdCBlbmNvZGVyID0gbmV3IFRleHRFbmNvZGVyKClcblxuLyoqXG4gKiBAc2VlIGh0dHBzOi8vbWltZXNuaWZmLnNwZWMud2hhdHdnLm9yZy8jaHR0cC10b2tlbi1jb2RlLXBvaW50XG4gKi9cbmNvbnN0IEhUVFBfVE9LRU5fQ09ERVBPSU5UUyA9IC9eWyEjJCUmJyorXFwtLl5ffH5BLVphLXowLTldKyQvXG5jb25zdCBIVFRQX1dISVRFU1BBQ0VfUkVHRVggPSAvW1xcdTAwMEFcXHUwMDBEXFx1MDAwOVxcdTAwMjBdLyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lXG5jb25zdCBBU0NJSV9XSElURVNQQUNFX1JFUExBQ0VfUkVHRVggPSAvW1xcdTAwMDlcXHUwMDBBXFx1MDAwQ1xcdTAwMERcXHUwMDIwXS9nIC8vIGVzbGludC1kaXNhYmxlLWxpbmVcbi8qKlxuICogQHNlZSBodHRwczovL21pbWVzbmlmZi5zcGVjLndoYXR3Zy5vcmcvI2h0dHAtcXVvdGVkLXN0cmluZy10b2tlbi1jb2RlLXBvaW50XG4gKi9cbmNvbnN0IEhUVFBfUVVPVEVEX1NUUklOR19UT0tFTlMgPSAvXltcXHUwMDA5XFx1MDAyMC1cXHUwMDdFXFx1MDA4MC1cXHUwMEZGXSskLyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lXG5cbi8vIGh0dHBzOi8vZmV0Y2guc3BlYy53aGF0d2cub3JnLyNkYXRhLXVybC1wcm9jZXNzb3Jcbi8qKiBAcGFyYW0ge1VSTH0gZGF0YVVSTCAqL1xuZnVuY3Rpb24gZGF0YVVSTFByb2Nlc3NvciAoZGF0YVVSTCkge1xuICAvLyAxLiBBc3NlcnQ6IGRhdGFVUkxcdTIwMTlzIHNjaGVtZSBpcyBcImRhdGFcIi5cbiAgYXNzZXJ0KGRhdGFVUkwucHJvdG9jb2wgPT09ICdkYXRhOicpXG5cbiAgLy8gMi4gTGV0IGlucHV0IGJlIHRoZSByZXN1bHQgb2YgcnVubmluZyB0aGUgVVJMXG4gIC8vIHNlcmlhbGl6ZXIgb24gZGF0YVVSTCB3aXRoIGV4Y2x1ZGUgZnJhZ21lbnRcbiAgLy8gc2V0IHRvIHRydWUuXG4gIGxldCBpbnB1dCA9IFVSTFNlcmlhbGl6ZXIoZGF0YVVSTCwgdHJ1ZSlcblxuICAvLyAzLiBSZW1vdmUgdGhlIGxlYWRpbmcgXCJkYXRhOlwiIHN0cmluZyBmcm9tIGlucHV0LlxuICBpbnB1dCA9IGlucHV0LnNsaWNlKDUpXG5cbiAgLy8gNC4gTGV0IHBvc2l0aW9uIHBvaW50IGF0IHRoZSBzdGFydCBvZiBpbnB1dC5cbiAgY29uc3QgcG9zaXRpb24gPSB7IHBvc2l0aW9uOiAwIH1cblxuICAvLyA1LiBMZXQgbWltZVR5cGUgYmUgdGhlIHJlc3VsdCBvZiBjb2xsZWN0aW5nIGFcbiAgLy8gc2VxdWVuY2Ugb2YgY29kZSBwb2ludHMgdGhhdCBhcmUgbm90IGVxdWFsXG4gIC8vIHRvIFUrMDAyQyAoLCksIGdpdmVuIHBvc2l0aW9uLlxuICBsZXQgbWltZVR5cGUgPSBjb2xsZWN0QVNlcXVlbmNlT2ZDb2RlUG9pbnRzRmFzdChcbiAgICAnLCcsXG4gICAgaW5wdXQsXG4gICAgcG9zaXRpb25cbiAgKVxuXG4gIC8vIDYuIFN0cmlwIGxlYWRpbmcgYW5kIHRyYWlsaW5nIEFTQ0lJIHdoaXRlc3BhY2VcbiAgLy8gZnJvbSBtaW1lVHlwZS5cbiAgLy8gVW5kaWNpIGltcGxlbWVudGF0aW9uIG5vdGU6IHdlIG5lZWQgdG8gc3RvcmUgdGhlXG4gIC8vIGxlbmd0aCBiZWNhdXNlIGlmIHRoZSBtaW1ldHlwZSBoYXMgc3BhY2VzIHJlbW92ZWQsXG4gIC8vIHRoZSB3cm9uZyBhbW91bnQgd2lsbCBiZSBzbGljZWQgZnJvbSB0aGUgaW5wdXQgaW5cbiAgLy8gc3RlcCAjOVxuICBjb25zdCBtaW1lVHlwZUxlbmd0aCA9IG1pbWVUeXBlLmxlbmd0aFxuICBtaW1lVHlwZSA9IHJlbW92ZUFTQ0lJV2hpdGVzcGFjZShtaW1lVHlwZSwgdHJ1ZSwgdHJ1ZSlcblxuICAvLyA3LiBJZiBwb3NpdGlvbiBpcyBwYXN0IHRoZSBlbmQgb2YgaW5wdXQsIHRoZW5cbiAgLy8gcmV0dXJuIGZhaWx1cmVcbiAgaWYgKHBvc2l0aW9uLnBvc2l0aW9uID49IGlucHV0Lmxlbmd0aCkge1xuICAgIHJldHVybiAnZmFpbHVyZSdcbiAgfVxuXG4gIC8vIDguIEFkdmFuY2UgcG9zaXRpb24gYnkgMS5cbiAgcG9zaXRpb24ucG9zaXRpb24rK1xuXG4gIC8vIDkuIExldCBlbmNvZGVkQm9keSBiZSB0aGUgcmVtYWluZGVyIG9mIGlucHV0LlxuICBjb25zdCBlbmNvZGVkQm9keSA9IGlucHV0LnNsaWNlKG1pbWVUeXBlTGVuZ3RoICsgMSlcblxuICAvLyAxMC4gTGV0IGJvZHkgYmUgdGhlIHBlcmNlbnQtZGVjb2Rpbmcgb2YgZW5jb2RlZEJvZHkuXG4gIGxldCBib2R5ID0gc3RyaW5nUGVyY2VudERlY29kZShlbmNvZGVkQm9keSlcblxuICAvLyAxMS4gSWYgbWltZVR5cGUgZW5kcyB3aXRoIFUrMDAzQiAoOyksIGZvbGxvd2VkIGJ5XG4gIC8vIHplcm8gb3IgbW9yZSBVKzAwMjAgU1BBQ0UsIGZvbGxvd2VkIGJ5IGFuIEFTQ0lJXG4gIC8vIGNhc2UtaW5zZW5zaXRpdmUgbWF0Y2ggZm9yIFwiYmFzZTY0XCIsIHRoZW46XG4gIGlmICgvOyhcXHUwMDIwKXswLH1iYXNlNjQkL2kudGVzdChtaW1lVHlwZSkpIHtcbiAgICAvLyAxLiBMZXQgc3RyaW5nQm9keSBiZSB0aGUgaXNvbW9ycGhpYyBkZWNvZGUgb2YgYm9keS5cbiAgICBjb25zdCBzdHJpbmdCb2R5ID0gaXNvbW9ycGhpY0RlY29kZShib2R5KVxuXG4gICAgLy8gMi4gU2V0IGJvZHkgdG8gdGhlIGZvcmdpdmluZy1iYXNlNjQgZGVjb2RlIG9mXG4gICAgLy8gc3RyaW5nQm9keS5cbiAgICBib2R5ID0gZm9yZ2l2aW5nQmFzZTY0KHN0cmluZ0JvZHkpXG5cbiAgICAvLyAzLiBJZiBib2R5IGlzIGZhaWx1cmUsIHRoZW4gcmV0dXJuIGZhaWx1cmUuXG4gICAgaWYgKGJvZHkgPT09ICdmYWlsdXJlJykge1xuICAgICAgcmV0dXJuICdmYWlsdXJlJ1xuICAgIH1cblxuICAgIC8vIDQuIFJlbW92ZSB0aGUgbGFzdCA2IGNvZGUgcG9pbnRzIGZyb20gbWltZVR5cGUuXG4gICAgbWltZVR5cGUgPSBtaW1lVHlwZS5zbGljZSgwLCAtNilcblxuICAgIC8vIDUuIFJlbW92ZSB0cmFpbGluZyBVKzAwMjAgU1BBQ0UgY29kZSBwb2ludHMgZnJvbSBtaW1lVHlwZSxcbiAgICAvLyBpZiBhbnkuXG4gICAgbWltZVR5cGUgPSBtaW1lVHlwZS5yZXBsYWNlKC8oXFx1MDAyMCkrJC8sICcnKVxuXG4gICAgLy8gNi4gUmVtb3ZlIHRoZSBsYXN0IFUrMDAzQiAoOykgY29kZSBwb2ludCBmcm9tIG1pbWVUeXBlLlxuICAgIG1pbWVUeXBlID0gbWltZVR5cGUuc2xpY2UoMCwgLTEpXG4gIH1cblxuICAvLyAxMi4gSWYgbWltZVR5cGUgc3RhcnRzIHdpdGggVSswMDNCICg7KSwgdGhlbiBwcmVwZW5kXG4gIC8vIFwidGV4dC9wbGFpblwiIHRvIG1pbWVUeXBlLlxuICBpZiAobWltZVR5cGUuc3RhcnRzV2l0aCgnOycpKSB7XG4gICAgbWltZVR5cGUgPSAndGV4dC9wbGFpbicgKyBtaW1lVHlwZVxuICB9XG5cbiAgLy8gMTMuIExldCBtaW1lVHlwZVJlY29yZCBiZSB0aGUgcmVzdWx0IG9mIHBhcnNpbmdcbiAgLy8gbWltZVR5cGUuXG4gIGxldCBtaW1lVHlwZVJlY29yZCA9IHBhcnNlTUlNRVR5cGUobWltZVR5cGUpXG5cbiAgLy8gMTQuIElmIG1pbWVUeXBlUmVjb3JkIGlzIGZhaWx1cmUsIHRoZW4gc2V0XG4gIC8vIG1pbWVUeXBlUmVjb3JkIHRvIHRleHQvcGxhaW47Y2hhcnNldD1VUy1BU0NJSS5cbiAgaWYgKG1pbWVUeXBlUmVjb3JkID09PSAnZmFpbHVyZScpIHtcbiAgICBtaW1lVHlwZVJlY29yZCA9IHBhcnNlTUlNRVR5cGUoJ3RleHQvcGxhaW47Y2hhcnNldD1VUy1BU0NJSScpXG4gIH1cblxuICAvLyAxNS4gUmV0dXJuIGEgbmV3IGRhdGE6IFVSTCBzdHJ1Y3Qgd2hvc2UgTUlNRVxuICAvLyB0eXBlIGlzIG1pbWVUeXBlUmVjb3JkIGFuZCBib2R5IGlzIGJvZHkuXG4gIC8vIGh0dHBzOi8vZmV0Y2guc3BlYy53aGF0d2cub3JnLyNkYXRhLXVybC1zdHJ1Y3RcbiAgcmV0dXJuIHsgbWltZVR5cGU6IG1pbWVUeXBlUmVjb3JkLCBib2R5IH1cbn1cblxuLy8gaHR0cHM6Ly91cmwuc3BlYy53aGF0d2cub3JnLyNjb25jZXB0LXVybC1zZXJpYWxpemVyXG4vKipcbiAqIEBwYXJhbSB7VVJMfSB1cmxcbiAqIEBwYXJhbSB7Ym9vbGVhbn0gZXhjbHVkZUZyYWdtZW50XG4gKi9cbmZ1bmN0aW9uIFVSTFNlcmlhbGl6ZXIgKHVybCwgZXhjbHVkZUZyYWdtZW50ID0gZmFsc2UpIHtcbiAgaWYgKCFleGNsdWRlRnJhZ21lbnQpIHtcbiAgICByZXR1cm4gdXJsLmhyZWZcbiAgfVxuXG4gIGNvbnN0IGhyZWYgPSB1cmwuaHJlZlxuICBjb25zdCBoYXNoTGVuZ3RoID0gdXJsLmhhc2gubGVuZ3RoXG5cbiAgY29uc3Qgc2VyaWFsaXplZCA9IGhhc2hMZW5ndGggPT09IDAgPyBocmVmIDogaHJlZi5zdWJzdHJpbmcoMCwgaHJlZi5sZW5ndGggLSBoYXNoTGVuZ3RoKVxuXG4gIGlmICghaGFzaExlbmd0aCAmJiBocmVmLmVuZHNXaXRoKCcjJykpIHtcbiAgICByZXR1cm4gc2VyaWFsaXplZC5zbGljZSgwLCAtMSlcbiAgfVxuXG4gIHJldHVybiBzZXJpYWxpemVkXG59XG5cbi8vIGh0dHBzOi8vaW5mcmEuc3BlYy53aGF0d2cub3JnLyNjb2xsZWN0LWEtc2VxdWVuY2Utb2YtY29kZS1wb2ludHNcbi8qKlxuICogQHBhcmFtIHsoY2hhcjogc3RyaW5nKSA9PiBib29sZWFufSBjb25kaXRpb25cbiAqIEBwYXJhbSB7c3RyaW5nfSBpbnB1dFxuICogQHBhcmFtIHt7IHBvc2l0aW9uOiBudW1iZXIgfX0gcG9zaXRpb25cbiAqL1xuZnVuY3Rpb24gY29sbGVjdEFTZXF1ZW5jZU9mQ29kZVBvaW50cyAoY29uZGl0aW9uLCBpbnB1dCwgcG9zaXRpb24pIHtcbiAgLy8gMS4gTGV0IHJlc3VsdCBiZSB0aGUgZW1wdHkgc3RyaW5nLlxuICBsZXQgcmVzdWx0ID0gJydcblxuICAvLyAyLiBXaGlsZSBwb3NpdGlvbiBkb2Vzblx1MjAxOXQgcG9pbnQgcGFzdCB0aGUgZW5kIG9mIGlucHV0IGFuZCB0aGVcbiAgLy8gY29kZSBwb2ludCBhdCBwb3NpdGlvbiB3aXRoaW4gaW5wdXQgbWVldHMgdGhlIGNvbmRpdGlvbiBjb25kaXRpb246XG4gIHdoaWxlIChwb3NpdGlvbi5wb3NpdGlvbiA8IGlucHV0Lmxlbmd0aCAmJiBjb25kaXRpb24oaW5wdXRbcG9zaXRpb24ucG9zaXRpb25dKSkge1xuICAgIC8vIDEuIEFwcGVuZCB0aGF0IGNvZGUgcG9pbnQgdG8gdGhlIGVuZCBvZiByZXN1bHQuXG4gICAgcmVzdWx0ICs9IGlucHV0W3Bvc2l0aW9uLnBvc2l0aW9uXVxuXG4gICAgLy8gMi4gQWR2YW5jZSBwb3NpdGlvbiBieSAxLlxuICAgIHBvc2l0aW9uLnBvc2l0aW9uKytcbiAgfVxuXG4gIC8vIDMuIFJldHVybiByZXN1bHQuXG4gIHJldHVybiByZXN1bHRcbn1cblxuLyoqXG4gKiBBIGZhc3RlciBjb2xsZWN0QVNlcXVlbmNlT2ZDb2RlUG9pbnRzIHRoYXQgb25seSB3b3JrcyB3aGVuIGNvbXBhcmluZyBhIHNpbmdsZSBjaGFyYWN0ZXIuXG4gKiBAcGFyYW0ge3N0cmluZ30gY2hhclxuICogQHBhcmFtIHtzdHJpbmd9IGlucHV0XG4gKiBAcGFyYW0ge3sgcG9zaXRpb246IG51bWJlciB9fSBwb3NpdGlvblxuICovXG5mdW5jdGlvbiBjb2xsZWN0QVNlcXVlbmNlT2ZDb2RlUG9pbnRzRmFzdCAoY2hhciwgaW5wdXQsIHBvc2l0aW9uKSB7XG4gIGNvbnN0IGlkeCA9IGlucHV0LmluZGV4T2YoY2hhciwgcG9zaXRpb24ucG9zaXRpb24pXG4gIGNvbnN0IHN0YXJ0ID0gcG9zaXRpb24ucG9zaXRpb25cblxuICBpZiAoaWR4ID09PSAtMSkge1xuICAgIHBvc2l0aW9uLnBvc2l0aW9uID0gaW5wdXQubGVuZ3RoXG4gICAgcmV0dXJuIGlucHV0LnNsaWNlKHN0YXJ0KVxuICB9XG5cbiAgcG9zaXRpb24ucG9zaXRpb24gPSBpZHhcbiAgcmV0dXJuIGlucHV0LnNsaWNlKHN0YXJ0LCBwb3NpdGlvbi5wb3NpdGlvbilcbn1cblxuLy8gaHR0cHM6Ly91cmwuc3BlYy53aGF0d2cub3JnLyNzdHJpbmctcGVyY2VudC1kZWNvZGVcbi8qKiBAcGFyYW0ge3N0cmluZ30gaW5wdXQgKi9cbmZ1bmN0aW9uIHN0cmluZ1BlcmNlbnREZWNvZGUgKGlucHV0KSB7XG4gIC8vIDEuIExldCBieXRlcyBiZSB0aGUgVVRGLTggZW5jb2Rpbmcgb2YgaW5wdXQuXG4gIGNvbnN0IGJ5dGVzID0gZW5jb2Rlci5lbmNvZGUoaW5wdXQpXG5cbiAgLy8gMi4gUmV0dXJuIHRoZSBwZXJjZW50LWRlY29kaW5nIG9mIGJ5dGVzLlxuICByZXR1cm4gcGVyY2VudERlY29kZShieXRlcylcbn1cblxuLyoqXG4gKiBAcGFyYW0ge251bWJlcn0gYnl0ZVxuICovXG5mdW5jdGlvbiBpc0hleENoYXJCeXRlIChieXRlKSB7XG4gIC8vIDAtOSBBLUYgYS1mXG4gIHJldHVybiAoYnl0ZSA+PSAweDMwICYmIGJ5dGUgPD0gMHgzOSkgfHwgKGJ5dGUgPj0gMHg0MSAmJiBieXRlIDw9IDB4NDYpIHx8IChieXRlID49IDB4NjEgJiYgYnl0ZSA8PSAweDY2KVxufVxuXG4vKipcbiAqIEBwYXJhbSB7bnVtYmVyfSBieXRlXG4gKi9cbmZ1bmN0aW9uIGhleEJ5dGVUb051bWJlciAoYnl0ZSkge1xuICByZXR1cm4gKFxuICAgIC8vIDAtOVxuICAgIGJ5dGUgPj0gMHgzMCAmJiBieXRlIDw9IDB4MzlcbiAgICAgID8gKGJ5dGUgLSA0OClcbiAgICAvLyBDb252ZXJ0IHRvIHVwcGVyY2FzZVxuICAgIC8vICgoYnl0ZSAmIDB4REYpIC0gNjUpICsgMTBcbiAgICAgIDogKChieXRlICYgMHhERikgLSA1NSlcbiAgKVxufVxuXG4vLyBodHRwczovL3VybC5zcGVjLndoYXR3Zy5vcmcvI3BlcmNlbnQtZGVjb2RlXG4vKiogQHBhcmFtIHtVaW50OEFycmF5fSBpbnB1dCAqL1xuZnVuY3Rpb24gcGVyY2VudERlY29kZSAoaW5wdXQpIHtcbiAgY29uc3QgbGVuZ3RoID0gaW5wdXQubGVuZ3RoXG4gIC8vIDEuIExldCBvdXRwdXQgYmUgYW4gZW1wdHkgYnl0ZSBzZXF1ZW5jZS5cbiAgLyoqIEB0eXBlIHtVaW50OEFycmF5fSAqL1xuICBjb25zdCBvdXRwdXQgPSBuZXcgVWludDhBcnJheShsZW5ndGgpXG4gIGxldCBqID0gMFxuICAvLyAyLiBGb3IgZWFjaCBieXRlIGJ5dGUgaW4gaW5wdXQ6XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgbGVuZ3RoOyArK2kpIHtcbiAgICBjb25zdCBieXRlID0gaW5wdXRbaV1cblxuICAgIC8vIDEuIElmIGJ5dGUgaXMgbm90IDB4MjUgKCUpLCB0aGVuIGFwcGVuZCBieXRlIHRvIG91dHB1dC5cbiAgICBpZiAoYnl0ZSAhPT0gMHgyNSkge1xuICAgICAgb3V0cHV0W2orK10gPSBieXRlXG5cbiAgICAvLyAyLiBPdGhlcndpc2UsIGlmIGJ5dGUgaXMgMHgyNSAoJSkgYW5kIHRoZSBuZXh0IHR3byBieXRlc1xuICAgIC8vIGFmdGVyIGJ5dGUgaW4gaW5wdXQgYXJlIG5vdCBpbiB0aGUgcmFuZ2VzXG4gICAgLy8gMHgzMCAoMCkgdG8gMHgzOSAoOSksIDB4NDEgKEEpIHRvIDB4NDYgKEYpLFxuICAgIC8vIGFuZCAweDYxIChhKSB0byAweDY2IChmKSwgYWxsIGluY2x1c2l2ZSwgYXBwZW5kIGJ5dGVcbiAgICAvLyB0byBvdXRwdXQuXG4gICAgfSBlbHNlIGlmIChcbiAgICAgIGJ5dGUgPT09IDB4MjUgJiZcbiAgICAgICEoaXNIZXhDaGFyQnl0ZShpbnB1dFtpICsgMV0pICYmIGlzSGV4Q2hhckJ5dGUoaW5wdXRbaSArIDJdKSlcbiAgICApIHtcbiAgICAgIG91dHB1dFtqKytdID0gMHgyNVxuXG4gICAgLy8gMy4gT3RoZXJ3aXNlOlxuICAgIH0gZWxzZSB7XG4gICAgICAvLyAxLiBMZXQgYnl0ZVBvaW50IGJlIHRoZSB0d28gYnl0ZXMgYWZ0ZXIgYnl0ZSBpbiBpbnB1dCxcbiAgICAgIC8vIGRlY29kZWQsIGFuZCB0aGVuIGludGVycHJldGVkIGFzIGhleGFkZWNpbWFsIG51bWJlci5cbiAgICAgIC8vIDIuIEFwcGVuZCBhIGJ5dGUgd2hvc2UgdmFsdWUgaXMgYnl0ZVBvaW50IHRvIG91dHB1dC5cbiAgICAgIG91dHB1dFtqKytdID0gKGhleEJ5dGVUb051bWJlcihpbnB1dFtpICsgMV0pIDw8IDQpIHwgaGV4Qnl0ZVRvTnVtYmVyKGlucHV0W2kgKyAyXSlcblxuICAgICAgLy8gMy4gU2tpcCB0aGUgbmV4dCB0d28gYnl0ZXMgaW4gaW5wdXQuXG4gICAgICBpICs9IDJcbiAgICB9XG4gIH1cblxuICAvLyAzLiBSZXR1cm4gb3V0cHV0LlxuICByZXR1cm4gbGVuZ3RoID09PSBqID8gb3V0cHV0IDogb3V0cHV0LnN1YmFycmF5KDAsIGopXG59XG5cbi8vIGh0dHBzOi8vbWltZXNuaWZmLnNwZWMud2hhdHdnLm9yZy8jcGFyc2UtYS1taW1lLXR5cGVcbi8qKiBAcGFyYW0ge3N0cmluZ30gaW5wdXQgKi9cbmZ1bmN0aW9uIHBhcnNlTUlNRVR5cGUgKGlucHV0KSB7XG4gIC8vIDEuIFJlbW92ZSBhbnkgbGVhZGluZyBhbmQgdHJhaWxpbmcgSFRUUCB3aGl0ZXNwYWNlXG4gIC8vIGZyb20gaW5wdXQuXG4gIGlucHV0ID0gcmVtb3ZlSFRUUFdoaXRlc3BhY2UoaW5wdXQsIHRydWUsIHRydWUpXG5cbiAgLy8gMi4gTGV0IHBvc2l0aW9uIGJlIGEgcG9zaXRpb24gdmFyaWFibGUgZm9yIGlucHV0LFxuICAvLyBpbml0aWFsbHkgcG9pbnRpbmcgYXQgdGhlIHN0YXJ0IG9mIGlucHV0LlxuICBjb25zdCBwb3NpdGlvbiA9IHsgcG9zaXRpb246IDAgfVxuXG4gIC8vIDMuIExldCB0eXBlIGJlIHRoZSByZXN1bHQgb2YgY29sbGVjdGluZyBhIHNlcXVlbmNlXG4gIC8vIG9mIGNvZGUgcG9pbnRzIHRoYXQgYXJlIG5vdCBVKzAwMkYgKC8pIGZyb21cbiAgLy8gaW5wdXQsIGdpdmVuIHBvc2l0aW9uLlxuICBjb25zdCB0eXBlID0gY29sbGVjdEFTZXF1ZW5jZU9mQ29kZVBvaW50c0Zhc3QoXG4gICAgJy8nLFxuICAgIGlucHV0LFxuICAgIHBvc2l0aW9uXG4gIClcblxuICAvLyA0LiBJZiB0eXBlIGlzIHRoZSBlbXB0eSBzdHJpbmcgb3IgZG9lcyBub3Qgc29sZWx5XG4gIC8vIGNvbnRhaW4gSFRUUCB0b2tlbiBjb2RlIHBvaW50cywgdGhlbiByZXR1cm4gZmFpbHVyZS5cbiAgLy8gaHR0cHM6Ly9taW1lc25pZmYuc3BlYy53aGF0d2cub3JnLyNodHRwLXRva2VuLWNvZGUtcG9pbnRcbiAgaWYgKHR5cGUubGVuZ3RoID09PSAwIHx8ICFIVFRQX1RPS0VOX0NPREVQT0lOVFMudGVzdCh0eXBlKSkge1xuICAgIHJldHVybiAnZmFpbHVyZSdcbiAgfVxuXG4gIC8vIDUuIElmIHBvc2l0aW9uIGlzIHBhc3QgdGhlIGVuZCBvZiBpbnB1dCwgdGhlbiByZXR1cm5cbiAgLy8gZmFpbHVyZVxuICBpZiAocG9zaXRpb24ucG9zaXRpb24gPiBpbnB1dC5sZW5ndGgpIHtcbiAgICByZXR1cm4gJ2ZhaWx1cmUnXG4gIH1cblxuICAvLyA2LiBBZHZhbmNlIHBvc2l0aW9uIGJ5IDEuIChUaGlzIHNraXBzIHBhc3QgVSswMDJGICgvKS4pXG4gIHBvc2l0aW9uLnBvc2l0aW9uKytcblxuICAvLyA3LiBMZXQgc3VidHlwZSBiZSB0aGUgcmVzdWx0IG9mIGNvbGxlY3RpbmcgYSBzZXF1ZW5jZSBvZlxuICAvLyBjb2RlIHBvaW50cyB0aGF0IGFyZSBub3QgVSswMDNCICg7KSBmcm9tIGlucHV0LCBnaXZlblxuICAvLyBwb3NpdGlvbi5cbiAgbGV0IHN1YnR5cGUgPSBjb2xsZWN0QVNlcXVlbmNlT2ZDb2RlUG9pbnRzRmFzdChcbiAgICAnOycsXG4gICAgaW5wdXQsXG4gICAgcG9zaXRpb25cbiAgKVxuXG4gIC8vIDguIFJlbW92ZSBhbnkgdHJhaWxpbmcgSFRUUCB3aGl0ZXNwYWNlIGZyb20gc3VidHlwZS5cbiAgc3VidHlwZSA9IHJlbW92ZUhUVFBXaGl0ZXNwYWNlKHN1YnR5cGUsIGZhbHNlLCB0cnVlKVxuXG4gIC8vIDkuIElmIHN1YnR5cGUgaXMgdGhlIGVtcHR5IHN0cmluZyBvciBkb2VzIG5vdCBzb2xlbHlcbiAgLy8gY29udGFpbiBIVFRQIHRva2VuIGNvZGUgcG9pbnRzLCB0aGVuIHJldHVybiBmYWlsdXJlLlxuICBpZiAoc3VidHlwZS5sZW5ndGggPT09IDAgfHwgIUhUVFBfVE9LRU5fQ09ERVBPSU5UUy50ZXN0KHN1YnR5cGUpKSB7XG4gICAgcmV0dXJuICdmYWlsdXJlJ1xuICB9XG5cbiAgY29uc3QgdHlwZUxvd2VyY2FzZSA9IHR5cGUudG9Mb3dlckNhc2UoKVxuICBjb25zdCBzdWJ0eXBlTG93ZXJjYXNlID0gc3VidHlwZS50b0xvd2VyQ2FzZSgpXG5cbiAgLy8gMTAuIExldCBtaW1lVHlwZSBiZSBhIG5ldyBNSU1FIHR5cGUgcmVjb3JkIHdob3NlIHR5cGVcbiAgLy8gaXMgdHlwZSwgaW4gQVNDSUkgbG93ZXJjYXNlLCBhbmQgc3VidHlwZSBpcyBzdWJ0eXBlLFxuICAvLyBpbiBBU0NJSSBsb3dlcmNhc2UuXG4gIC8vIGh0dHBzOi8vbWltZXNuaWZmLnNwZWMud2hhdHdnLm9yZy8jbWltZS10eXBlXG4gIGNvbnN0IG1pbWVUeXBlID0ge1xuICAgIHR5cGU6IHR5cGVMb3dlcmNhc2UsXG4gICAgc3VidHlwZTogc3VidHlwZUxvd2VyY2FzZSxcbiAgICAvKiogQHR5cGUge01hcDxzdHJpbmcsIHN0cmluZz59ICovXG4gICAgcGFyYW1ldGVyczogbmV3IE1hcCgpLFxuICAgIC8vIGh0dHBzOi8vbWltZXNuaWZmLnNwZWMud2hhdHdnLm9yZy8jbWltZS10eXBlLWVzc2VuY2VcbiAgICBlc3NlbmNlOiBgJHt0eXBlTG93ZXJjYXNlfS8ke3N1YnR5cGVMb3dlcmNhc2V9YFxuICB9XG5cbiAgLy8gMTEuIFdoaWxlIHBvc2l0aW9uIGlzIG5vdCBwYXN0IHRoZSBlbmQgb2YgaW5wdXQ6XG4gIHdoaWxlIChwb3NpdGlvbi5wb3NpdGlvbiA8IGlucHV0Lmxlbmd0aCkge1xuICAgIC8vIDEuIEFkdmFuY2UgcG9zaXRpb24gYnkgMS4gKFRoaXMgc2tpcHMgcGFzdCBVKzAwM0IgKDspLilcbiAgICBwb3NpdGlvbi5wb3NpdGlvbisrXG5cbiAgICAvLyAyLiBDb2xsZWN0IGEgc2VxdWVuY2Ugb2YgY29kZSBwb2ludHMgdGhhdCBhcmUgSFRUUFxuICAgIC8vIHdoaXRlc3BhY2UgZnJvbSBpbnB1dCBnaXZlbiBwb3NpdGlvbi5cbiAgICBjb2xsZWN0QVNlcXVlbmNlT2ZDb2RlUG9pbnRzKFxuICAgICAgLy8gaHR0cHM6Ly9mZXRjaC5zcGVjLndoYXR3Zy5vcmcvI2h0dHAtd2hpdGVzcGFjZVxuICAgICAgY2hhciA9PiBIVFRQX1dISVRFU1BBQ0VfUkVHRVgudGVzdChjaGFyKSxcbiAgICAgIGlucHV0LFxuICAgICAgcG9zaXRpb25cbiAgICApXG5cbiAgICAvLyAzLiBMZXQgcGFyYW1ldGVyTmFtZSBiZSB0aGUgcmVzdWx0IG9mIGNvbGxlY3RpbmcgYVxuICAgIC8vIHNlcXVlbmNlIG9mIGNvZGUgcG9pbnRzIHRoYXQgYXJlIG5vdCBVKzAwM0IgKDspXG4gICAgLy8gb3IgVSswMDNEICg9KSBmcm9tIGlucHV0LCBnaXZlbiBwb3NpdGlvbi5cbiAgICBsZXQgcGFyYW1ldGVyTmFtZSA9IGNvbGxlY3RBU2VxdWVuY2VPZkNvZGVQb2ludHMoXG4gICAgICAoY2hhcikgPT4gY2hhciAhPT0gJzsnICYmIGNoYXIgIT09ICc9JyxcbiAgICAgIGlucHV0LFxuICAgICAgcG9zaXRpb25cbiAgICApXG5cbiAgICAvLyA0LiBTZXQgcGFyYW1ldGVyTmFtZSB0byBwYXJhbWV0ZXJOYW1lLCBpbiBBU0NJSVxuICAgIC8vIGxvd2VyY2FzZS5cbiAgICBwYXJhbWV0ZXJOYW1lID0gcGFyYW1ldGVyTmFtZS50b0xvd2VyQ2FzZSgpXG5cbiAgICAvLyA1LiBJZiBwb3NpdGlvbiBpcyBub3QgcGFzdCB0aGUgZW5kIG9mIGlucHV0LCB0aGVuOlxuICAgIGlmIChwb3NpdGlvbi5wb3NpdGlvbiA8IGlucHV0Lmxlbmd0aCkge1xuICAgICAgLy8gMS4gSWYgdGhlIGNvZGUgcG9pbnQgYXQgcG9zaXRpb24gd2l0aGluIGlucHV0IGlzXG4gICAgICAvLyBVKzAwM0IgKDspLCB0aGVuIGNvbnRpbnVlLlxuICAgICAgaWYgKGlucHV0W3Bvc2l0aW9uLnBvc2l0aW9uXSA9PT0gJzsnKSB7XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG5cbiAgICAgIC8vIDIuIEFkdmFuY2UgcG9zaXRpb24gYnkgMS4gKFRoaXMgc2tpcHMgcGFzdCBVKzAwM0QgKD0pLilcbiAgICAgIHBvc2l0aW9uLnBvc2l0aW9uKytcbiAgICB9XG5cbiAgICAvLyA2LiBJZiBwb3NpdGlvbiBpcyBwYXN0IHRoZSBlbmQgb2YgaW5wdXQsIHRoZW4gYnJlYWsuXG4gICAgaWYgKHBvc2l0aW9uLnBvc2l0aW9uID4gaW5wdXQubGVuZ3RoKSB7XG4gICAgICBicmVha1xuICAgIH1cblxuICAgIC8vIDcuIExldCBwYXJhbWV0ZXJWYWx1ZSBiZSBudWxsLlxuICAgIGxldCBwYXJhbWV0ZXJWYWx1ZSA9IG51bGxcblxuICAgIC8vIDguIElmIHRoZSBjb2RlIHBvaW50IGF0IHBvc2l0aW9uIHdpdGhpbiBpbnB1dCBpc1xuICAgIC8vIFUrMDAyMiAoXCIpLCB0aGVuOlxuICAgIGlmIChpbnB1dFtwb3NpdGlvbi5wb3NpdGlvbl0gPT09ICdcIicpIHtcbiAgICAgIC8vIDEuIFNldCBwYXJhbWV0ZXJWYWx1ZSB0byB0aGUgcmVzdWx0IG9mIGNvbGxlY3RpbmdcbiAgICAgIC8vIGFuIEhUVFAgcXVvdGVkIHN0cmluZyBmcm9tIGlucHV0LCBnaXZlbiBwb3NpdGlvblxuICAgICAgLy8gYW5kIHRoZSBleHRyYWN0LXZhbHVlIGZsYWcuXG4gICAgICBwYXJhbWV0ZXJWYWx1ZSA9IGNvbGxlY3RBbkhUVFBRdW90ZWRTdHJpbmcoaW5wdXQsIHBvc2l0aW9uLCB0cnVlKVxuXG4gICAgICAvLyAyLiBDb2xsZWN0IGEgc2VxdWVuY2Ugb2YgY29kZSBwb2ludHMgdGhhdCBhcmUgbm90XG4gICAgICAvLyBVKzAwM0IgKDspIGZyb20gaW5wdXQsIGdpdmVuIHBvc2l0aW9uLlxuICAgICAgY29sbGVjdEFTZXF1ZW5jZU9mQ29kZVBvaW50c0Zhc3QoXG4gICAgICAgICc7JyxcbiAgICAgICAgaW5wdXQsXG4gICAgICAgIHBvc2l0aW9uXG4gICAgICApXG5cbiAgICAvLyA5LiBPdGhlcndpc2U6XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIDEuIFNldCBwYXJhbWV0ZXJWYWx1ZSB0byB0aGUgcmVzdWx0IG9mIGNvbGxlY3RpbmdcbiAgICAgIC8vIGEgc2VxdWVuY2Ugb2YgY29kZSBwb2ludHMgdGhhdCBhcmUgbm90IFUrMDAzQiAoOylcbiAgICAgIC8vIGZyb20gaW5wdXQsIGdpdmVuIHBvc2l0aW9uLlxuICAgICAgcGFyYW1ldGVyVmFsdWUgPSBjb2xsZWN0QVNlcXVlbmNlT2ZDb2RlUG9pbnRzRmFzdChcbiAgICAgICAgJzsnLFxuICAgICAgICBpbnB1dCxcbiAgICAgICAgcG9zaXRpb25cbiAgICAgIClcblxuICAgICAgLy8gMi4gUmVtb3ZlIGFueSB0cmFpbGluZyBIVFRQIHdoaXRlc3BhY2UgZnJvbSBwYXJhbWV0ZXJWYWx1ZS5cbiAgICAgIHBhcmFtZXRlclZhbHVlID0gcmVtb3ZlSFRUUFdoaXRlc3BhY2UocGFyYW1ldGVyVmFsdWUsIGZhbHNlLCB0cnVlKVxuXG4gICAgICAvLyAzLiBJZiBwYXJhbWV0ZXJWYWx1ZSBpcyB0aGUgZW1wdHkgc3RyaW5nLCB0aGVuIGNvbnRpbnVlLlxuICAgICAgaWYgKHBhcmFtZXRlclZhbHVlLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIDEwLiBJZiBhbGwgb2YgdGhlIGZvbGxvd2luZyBhcmUgdHJ1ZVxuICAgIC8vIC0gcGFyYW1ldGVyTmFtZSBpcyBub3QgdGhlIGVtcHR5IHN0cmluZ1xuICAgIC8vIC0gcGFyYW1ldGVyTmFtZSBzb2xlbHkgY29udGFpbnMgSFRUUCB0b2tlbiBjb2RlIHBvaW50c1xuICAgIC8vIC0gcGFyYW1ldGVyVmFsdWUgc29sZWx5IGNvbnRhaW5zIEhUVFAgcXVvdGVkLXN0cmluZyB0b2tlbiBjb2RlIHBvaW50c1xuICAgIC8vIC0gbWltZVR5cGVcdTIwMTlzIHBhcmFtZXRlcnNbcGFyYW1ldGVyTmFtZV0gZG9lcyBub3QgZXhpc3RcbiAgICAvLyB0aGVuIHNldCBtaW1lVHlwZVx1MjAxOXMgcGFyYW1ldGVyc1twYXJhbWV0ZXJOYW1lXSB0byBwYXJhbWV0ZXJWYWx1ZS5cbiAgICBpZiAoXG4gICAgICBwYXJhbWV0ZXJOYW1lLmxlbmd0aCAhPT0gMCAmJlxuICAgICAgSFRUUF9UT0tFTl9DT0RFUE9JTlRTLnRlc3QocGFyYW1ldGVyTmFtZSkgJiZcbiAgICAgIChwYXJhbWV0ZXJWYWx1ZS5sZW5ndGggPT09IDAgfHwgSFRUUF9RVU9URURfU1RSSU5HX1RPS0VOUy50ZXN0KHBhcmFtZXRlclZhbHVlKSkgJiZcbiAgICAgICFtaW1lVHlwZS5wYXJhbWV0ZXJzLmhhcyhwYXJhbWV0ZXJOYW1lKVxuICAgICkge1xuICAgICAgbWltZVR5cGUucGFyYW1ldGVycy5zZXQocGFyYW1ldGVyTmFtZSwgcGFyYW1ldGVyVmFsdWUpXG4gICAgfVxuICB9XG5cbiAgLy8gMTIuIFJldHVybiBtaW1lVHlwZS5cbiAgcmV0dXJuIG1pbWVUeXBlXG59XG5cbi8vIGh0dHBzOi8vaW5mcmEuc3BlYy53aGF0d2cub3JnLyNmb3JnaXZpbmctYmFzZTY0LWRlY29kZVxuLyoqIEBwYXJhbSB7c3RyaW5nfSBkYXRhICovXG5mdW5jdGlvbiBmb3JnaXZpbmdCYXNlNjQgKGRhdGEpIHtcbiAgLy8gMS4gUmVtb3ZlIGFsbCBBU0NJSSB3aGl0ZXNwYWNlIGZyb20gZGF0YS5cbiAgZGF0YSA9IGRhdGEucmVwbGFjZShBU0NJSV9XSElURVNQQUNFX1JFUExBQ0VfUkVHRVgsICcnKSAgLy8gZXNsaW50LWRpc2FibGUtbGluZVxuXG4gIGxldCBkYXRhTGVuZ3RoID0gZGF0YS5sZW5ndGhcbiAgLy8gMi4gSWYgZGF0YVx1MjAxOXMgY29kZSBwb2ludCBsZW5ndGggZGl2aWRlcyBieSA0IGxlYXZpbmdcbiAgLy8gbm8gcmVtYWluZGVyLCB0aGVuOlxuICBpZiAoZGF0YUxlbmd0aCAlIDQgPT09IDApIHtcbiAgICAvLyAxLiBJZiBkYXRhIGVuZHMgd2l0aCBvbmUgb3IgdHdvIFUrMDAzRCAoPSkgY29kZSBwb2ludHMsXG4gICAgLy8gdGhlbiByZW1vdmUgdGhlbSBmcm9tIGRhdGEuXG4gICAgaWYgKGRhdGEuY2hhckNvZGVBdChkYXRhTGVuZ3RoIC0gMSkgPT09IDB4MDAzRCkge1xuICAgICAgLS1kYXRhTGVuZ3RoXG4gICAgICBpZiAoZGF0YS5jaGFyQ29kZUF0KGRhdGFMZW5ndGggLSAxKSA9PT0gMHgwMDNEKSB7XG4gICAgICAgIC0tZGF0YUxlbmd0aFxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIDMuIElmIGRhdGFcdTIwMTlzIGNvZGUgcG9pbnQgbGVuZ3RoIGRpdmlkZXMgYnkgNCBsZWF2aW5nXG4gIC8vIGEgcmVtYWluZGVyIG9mIDEsIHRoZW4gcmV0dXJuIGZhaWx1cmUuXG4gIGlmIChkYXRhTGVuZ3RoICUgNCA9PT0gMSkge1xuICAgIHJldHVybiAnZmFpbHVyZSdcbiAgfVxuXG4gIC8vIDQuIElmIGRhdGEgY29udGFpbnMgYSBjb2RlIHBvaW50IHRoYXQgaXMgbm90IG9uZSBvZlxuICAvLyAgVSswMDJCICgrKVxuICAvLyAgVSswMDJGICgvKVxuICAvLyAgQVNDSUkgYWxwaGFudW1lcmljXG4gIC8vIHRoZW4gcmV0dXJuIGZhaWx1cmUuXG4gIGlmICgvW14rLzAtOUEtWmEtel0vLnRlc3QoZGF0YS5sZW5ndGggPT09IGRhdGFMZW5ndGggPyBkYXRhIDogZGF0YS5zdWJzdHJpbmcoMCwgZGF0YUxlbmd0aCkpKSB7XG4gICAgcmV0dXJuICdmYWlsdXJlJ1xuICB9XG5cbiAgY29uc3QgYnVmZmVyID0gQnVmZmVyLmZyb20oZGF0YSwgJ2Jhc2U2NCcpXG4gIHJldHVybiBuZXcgVWludDhBcnJheShidWZmZXIuYnVmZmVyLCBidWZmZXIuYnl0ZU9mZnNldCwgYnVmZmVyLmJ5dGVMZW5ndGgpXG59XG5cbi8vIGh0dHBzOi8vZmV0Y2guc3BlYy53aGF0d2cub3JnLyNjb2xsZWN0LWFuLWh0dHAtcXVvdGVkLXN0cmluZ1xuLy8gdGVzdHM6IGh0dHBzOi8vZmV0Y2guc3BlYy53aGF0d2cub3JnLyNleGFtcGxlLWh0dHAtcXVvdGVkLXN0cmluZ1xuLyoqXG4gKiBAcGFyYW0ge3N0cmluZ30gaW5wdXRcbiAqIEBwYXJhbSB7eyBwb3NpdGlvbjogbnVtYmVyIH19IHBvc2l0aW9uXG4gKiBAcGFyYW0ge2Jvb2xlYW4/fSBleHRyYWN0VmFsdWVcbiAqL1xuZnVuY3Rpb24gY29sbGVjdEFuSFRUUFF1b3RlZFN0cmluZyAoaW5wdXQsIHBvc2l0aW9uLCBleHRyYWN0VmFsdWUpIHtcbiAgLy8gMS4gTGV0IHBvc2l0aW9uU3RhcnQgYmUgcG9zaXRpb24uXG4gIGNvbnN0IHBvc2l0aW9uU3RhcnQgPSBwb3NpdGlvbi5wb3NpdGlvblxuXG4gIC8vIDIuIExldCB2YWx1ZSBiZSB0aGUgZW1wdHkgc3RyaW5nLlxuICBsZXQgdmFsdWUgPSAnJ1xuXG4gIC8vIDMuIEFzc2VydDogdGhlIGNvZGUgcG9pbnQgYXQgcG9zaXRpb24gd2l0aGluIGlucHV0XG4gIC8vIGlzIFUrMDAyMiAoXCIpLlxuICBhc3NlcnQoaW5wdXRbcG9zaXRpb24ucG9zaXRpb25dID09PSAnXCInKVxuXG4gIC8vIDQuIEFkdmFuY2UgcG9zaXRpb24gYnkgMS5cbiAgcG9zaXRpb24ucG9zaXRpb24rK1xuXG4gIC8vIDUuIFdoaWxlIHRydWU6XG4gIHdoaWxlICh0cnVlKSB7XG4gICAgLy8gMS4gQXBwZW5kIHRoZSByZXN1bHQgb2YgY29sbGVjdGluZyBhIHNlcXVlbmNlIG9mIGNvZGUgcG9pbnRzXG4gICAgLy8gdGhhdCBhcmUgbm90IFUrMDAyMiAoXCIpIG9yIFUrMDA1QyAoXFwpIGZyb20gaW5wdXQsIGdpdmVuXG4gICAgLy8gcG9zaXRpb24sIHRvIHZhbHVlLlxuICAgIHZhbHVlICs9IGNvbGxlY3RBU2VxdWVuY2VPZkNvZGVQb2ludHMoXG4gICAgICAoY2hhcikgPT4gY2hhciAhPT0gJ1wiJyAmJiBjaGFyICE9PSAnXFxcXCcsXG4gICAgICBpbnB1dCxcbiAgICAgIHBvc2l0aW9uXG4gICAgKVxuXG4gICAgLy8gMi4gSWYgcG9zaXRpb24gaXMgcGFzdCB0aGUgZW5kIG9mIGlucHV0LCB0aGVuIGJyZWFrLlxuICAgIGlmIChwb3NpdGlvbi5wb3NpdGlvbiA+PSBpbnB1dC5sZW5ndGgpIHtcbiAgICAgIGJyZWFrXG4gICAgfVxuXG4gICAgLy8gMy4gTGV0IHF1b3RlT3JCYWNrc2xhc2ggYmUgdGhlIGNvZGUgcG9pbnQgYXQgcG9zaXRpb24gd2l0aGluXG4gICAgLy8gaW5wdXQuXG4gICAgY29uc3QgcXVvdGVPckJhY2tzbGFzaCA9IGlucHV0W3Bvc2l0aW9uLnBvc2l0aW9uXVxuXG4gICAgLy8gNC4gQWR2YW5jZSBwb3NpdGlvbiBieSAxLlxuICAgIHBvc2l0aW9uLnBvc2l0aW9uKytcblxuICAgIC8vIDUuIElmIHF1b3RlT3JCYWNrc2xhc2ggaXMgVSswMDVDIChcXCksIHRoZW46XG4gICAgaWYgKHF1b3RlT3JCYWNrc2xhc2ggPT09ICdcXFxcJykge1xuICAgICAgLy8gMS4gSWYgcG9zaXRpb24gaXMgcGFzdCB0aGUgZW5kIG9mIGlucHV0LCB0aGVuIGFwcGVuZFxuICAgICAgLy8gVSswMDVDIChcXCkgdG8gdmFsdWUgYW5kIGJyZWFrLlxuICAgICAgaWYgKHBvc2l0aW9uLnBvc2l0aW9uID49IGlucHV0Lmxlbmd0aCkge1xuICAgICAgICB2YWx1ZSArPSAnXFxcXCdcbiAgICAgICAgYnJlYWtcbiAgICAgIH1cblxuICAgICAgLy8gMi4gQXBwZW5kIHRoZSBjb2RlIHBvaW50IGF0IHBvc2l0aW9uIHdpdGhpbiBpbnB1dCB0byB2YWx1ZS5cbiAgICAgIHZhbHVlICs9IGlucHV0W3Bvc2l0aW9uLnBvc2l0aW9uXVxuXG4gICAgICAvLyAzLiBBZHZhbmNlIHBvc2l0aW9uIGJ5IDEuXG4gICAgICBwb3NpdGlvbi5wb3NpdGlvbisrXG5cbiAgICAvLyA2LiBPdGhlcndpc2U6XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIDEuIEFzc2VydDogcXVvdGVPckJhY2tzbGFzaCBpcyBVKzAwMjIgKFwiKS5cbiAgICAgIGFzc2VydChxdW90ZU9yQmFja3NsYXNoID09PSAnXCInKVxuXG4gICAgICAvLyAyLiBCcmVhay5cbiAgICAgIGJyZWFrXG4gICAgfVxuICB9XG5cbiAgLy8gNi4gSWYgdGhlIGV4dHJhY3QtdmFsdWUgZmxhZyBpcyBzZXQsIHRoZW4gcmV0dXJuIHZhbHVlLlxuICBpZiAoZXh0cmFjdFZhbHVlKSB7XG4gICAgcmV0dXJuIHZhbHVlXG4gIH1cblxuICAvLyA3LiBSZXR1cm4gdGhlIGNvZGUgcG9pbnRzIGZyb20gcG9zaXRpb25TdGFydCB0byBwb3NpdGlvbixcbiAgLy8gaW5jbHVzaXZlLCB3aXRoaW4gaW5wdXQuXG4gIHJldHVybiBpbnB1dC5zbGljZShwb3NpdGlvblN0YXJ0LCBwb3NpdGlvbi5wb3NpdGlvbilcbn1cblxuLyoqXG4gKiBAc2VlIGh0dHBzOi8vbWltZXNuaWZmLnNwZWMud2hhdHdnLm9yZy8jc2VyaWFsaXplLWEtbWltZS10eXBlXG4gKi9cbmZ1bmN0aW9uIHNlcmlhbGl6ZUFNaW1lVHlwZSAobWltZVR5cGUpIHtcbiAgYXNzZXJ0KG1pbWVUeXBlICE9PSAnZmFpbHVyZScpXG4gIGNvbnN0IHsgcGFyYW1ldGVycywgZXNzZW5jZSB9ID0gbWltZVR5cGVcblxuICAvLyAxLiBMZXQgc2VyaWFsaXphdGlvbiBiZSB0aGUgY29uY2F0ZW5hdGlvbiBvZiBtaW1lVHlwZVx1MjAxOXNcbiAgLy8gICAgdHlwZSwgVSswMDJGICgvKSwgYW5kIG1pbWVUeXBlXHUyMDE5cyBzdWJ0eXBlLlxuICBsZXQgc2VyaWFsaXphdGlvbiA9IGVzc2VuY2VcblxuICAvLyAyLiBGb3IgZWFjaCBuYW1lIFx1MjE5MiB2YWx1ZSBvZiBtaW1lVHlwZVx1MjAxOXMgcGFyYW1ldGVyczpcbiAgZm9yIChsZXQgW25hbWUsIHZhbHVlXSBvZiBwYXJhbWV0ZXJzLmVudHJpZXMoKSkge1xuICAgIC8vIDEuIEFwcGVuZCBVKzAwM0IgKDspIHRvIHNlcmlhbGl6YXRpb24uXG4gICAgc2VyaWFsaXphdGlvbiArPSAnOydcblxuICAgIC8vIDIuIEFwcGVuZCBuYW1lIHRvIHNlcmlhbGl6YXRpb24uXG4gICAgc2VyaWFsaXphdGlvbiArPSBuYW1lXG5cbiAgICAvLyAzLiBBcHBlbmQgVSswMDNEICg9KSB0byBzZXJpYWxpemF0aW9uLlxuICAgIHNlcmlhbGl6YXRpb24gKz0gJz0nXG5cbiAgICAvLyA0LiBJZiB2YWx1ZSBkb2VzIG5vdCBzb2xlbHkgY29udGFpbiBIVFRQIHRva2VuIGNvZGVcbiAgICAvLyAgICBwb2ludHMgb3IgdmFsdWUgaXMgdGhlIGVtcHR5IHN0cmluZywgdGhlbjpcbiAgICBpZiAoIUhUVFBfVE9LRU5fQ09ERVBPSU5UUy50ZXN0KHZhbHVlKSkge1xuICAgICAgLy8gMS4gUHJlY2VkZSBlYWNoIG9jY3VycmVuY2Ugb2YgVSswMDIyIChcIikgb3JcbiAgICAgIC8vICAgIFUrMDA1QyAoXFwpIGluIHZhbHVlIHdpdGggVSswMDVDIChcXCkuXG4gICAgICB2YWx1ZSA9IHZhbHVlLnJlcGxhY2UoLyhcXFxcfFwiKS9nLCAnXFxcXCQxJylcblxuICAgICAgLy8gMi4gUHJlcGVuZCBVKzAwMjIgKFwiKSB0byB2YWx1ZS5cbiAgICAgIHZhbHVlID0gJ1wiJyArIHZhbHVlXG5cbiAgICAgIC8vIDMuIEFwcGVuZCBVKzAwMjIgKFwiKSB0byB2YWx1ZS5cbiAgICAgIHZhbHVlICs9ICdcIidcbiAgICB9XG5cbiAgICAvLyA1LiBBcHBlbmQgdmFsdWUgdG8gc2VyaWFsaXphdGlvbi5cbiAgICBzZXJpYWxpemF0aW9uICs9IHZhbHVlXG4gIH1cblxuICAvLyAzLiBSZXR1cm4gc2VyaWFsaXphdGlvbi5cbiAgcmV0dXJuIHNlcmlhbGl6YXRpb25cbn1cblxuLyoqXG4gKiBAc2VlIGh0dHBzOi8vZmV0Y2guc3BlYy53aGF0d2cub3JnLyNodHRwLXdoaXRlc3BhY2VcbiAqIEBwYXJhbSB7bnVtYmVyfSBjaGFyXG4gKi9cbmZ1bmN0aW9uIGlzSFRUUFdoaXRlU3BhY2UgKGNoYXIpIHtcbiAgLy8gXCJcXHJcXG5cXHQgXCJcbiAgcmV0dXJuIGNoYXIgPT09IDB4MDBkIHx8IGNoYXIgPT09IDB4MDBhIHx8IGNoYXIgPT09IDB4MDA5IHx8IGNoYXIgPT09IDB4MDIwXG59XG5cbi8qKlxuICogQHNlZSBodHRwczovL2ZldGNoLnNwZWMud2hhdHdnLm9yZy8jaHR0cC13aGl0ZXNwYWNlXG4gKiBAcGFyYW0ge3N0cmluZ30gc3RyXG4gKiBAcGFyYW0ge2Jvb2xlYW59IFtsZWFkaW5nPXRydWVdXG4gKiBAcGFyYW0ge2Jvb2xlYW59IFt0cmFpbGluZz10cnVlXVxuICovXG5mdW5jdGlvbiByZW1vdmVIVFRQV2hpdGVzcGFjZSAoc3RyLCBsZWFkaW5nID0gdHJ1ZSwgdHJhaWxpbmcgPSB0cnVlKSB7XG4gIHJldHVybiByZW1vdmVDaGFycyhzdHIsIGxlYWRpbmcsIHRyYWlsaW5nLCBpc0hUVFBXaGl0ZVNwYWNlKVxufVxuXG4vKipcbiAqIEBzZWUgaHR0cHM6Ly9pbmZyYS5zcGVjLndoYXR3Zy5vcmcvI2FzY2lpLXdoaXRlc3BhY2VcbiAqIEBwYXJhbSB7bnVtYmVyfSBjaGFyXG4gKi9cbmZ1bmN0aW9uIGlzQVNDSUlXaGl0ZXNwYWNlIChjaGFyKSB7XG4gIC8vIFwiXFxyXFxuXFx0XFxmIFwiXG4gIHJldHVybiBjaGFyID09PSAweDAwZCB8fCBjaGFyID09PSAweDAwYSB8fCBjaGFyID09PSAweDAwOSB8fCBjaGFyID09PSAweDAwYyB8fCBjaGFyID09PSAweDAyMFxufVxuXG4vKipcbiAqIEBzZWUgaHR0cHM6Ly9pbmZyYS5zcGVjLndoYXR3Zy5vcmcvI3N0cmlwLWxlYWRpbmctYW5kLXRyYWlsaW5nLWFzY2lpLXdoaXRlc3BhY2VcbiAqIEBwYXJhbSB7c3RyaW5nfSBzdHJcbiAqIEBwYXJhbSB7Ym9vbGVhbn0gW2xlYWRpbmc9dHJ1ZV1cbiAqIEBwYXJhbSB7Ym9vbGVhbn0gW3RyYWlsaW5nPXRydWVdXG4gKi9cbmZ1bmN0aW9uIHJlbW92ZUFTQ0lJV2hpdGVzcGFjZSAoc3RyLCBsZWFkaW5nID0gdHJ1ZSwgdHJhaWxpbmcgPSB0cnVlKSB7XG4gIHJldHVybiByZW1vdmVDaGFycyhzdHIsIGxlYWRpbmcsIHRyYWlsaW5nLCBpc0FTQ0lJV2hpdGVzcGFjZSlcbn1cblxuLyoqXG4gKiBAcGFyYW0ge3N0cmluZ30gc3RyXG4gKiBAcGFyYW0ge2Jvb2xlYW59IGxlYWRpbmdcbiAqIEBwYXJhbSB7Ym9vbGVhbn0gdHJhaWxpbmdcbiAqIEBwYXJhbSB7KGNoYXJDb2RlOiBudW1iZXIpID0+IGJvb2xlYW59IHByZWRpY2F0ZVxuICogQHJldHVybnNcbiAqL1xuZnVuY3Rpb24gcmVtb3ZlQ2hhcnMgKHN0ciwgbGVhZGluZywgdHJhaWxpbmcsIHByZWRpY2F0ZSkge1xuICBsZXQgbGVhZCA9IDBcbiAgbGV0IHRyYWlsID0gc3RyLmxlbmd0aCAtIDFcblxuICBpZiAobGVhZGluZykge1xuICAgIHdoaWxlIChsZWFkIDwgc3RyLmxlbmd0aCAmJiBwcmVkaWNhdGUoc3RyLmNoYXJDb2RlQXQobGVhZCkpKSBsZWFkKytcbiAgfVxuXG4gIGlmICh0cmFpbGluZykge1xuICAgIHdoaWxlICh0cmFpbCA+IDAgJiYgcHJlZGljYXRlKHN0ci5jaGFyQ29kZUF0KHRyYWlsKSkpIHRyYWlsLS1cbiAgfVxuXG4gIHJldHVybiBsZWFkID09PSAwICYmIHRyYWlsID09PSBzdHIubGVuZ3RoIC0gMSA/IHN0ciA6IHN0ci5zbGljZShsZWFkLCB0cmFpbCArIDEpXG59XG5cbi8qKlxuICogQHNlZSBodHRwczovL2luZnJhLnNwZWMud2hhdHdnLm9yZy8jaXNvbW9ycGhpYy1kZWNvZGVcbiAqIEBwYXJhbSB7VWludDhBcnJheX0gaW5wdXRcbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKi9cbmZ1bmN0aW9uIGlzb21vcnBoaWNEZWNvZGUgKGlucHV0KSB7XG4gIC8vIDEuIFRvIGlzb21vcnBoaWMgZGVjb2RlIGEgYnl0ZSBzZXF1ZW5jZSBpbnB1dCwgcmV0dXJuIGEgc3RyaW5nIHdob3NlIGNvZGUgcG9pbnRcbiAgLy8gICAgbGVuZ3RoIGlzIGVxdWFsIHRvIGlucHV0XHUyMDE5cyBsZW5ndGggYW5kIHdob3NlIGNvZGUgcG9pbnRzIGhhdmUgdGhlIHNhbWUgdmFsdWVzXG4gIC8vICAgIGFzIHRoZSB2YWx1ZXMgb2YgaW5wdXRcdTIwMTlzIGJ5dGVzLCBpbiB0aGUgc2FtZSBvcmRlci5cbiAgY29uc3QgbGVuZ3RoID0gaW5wdXQubGVuZ3RoXG4gIGlmICgoMiA8PCAxNSkgLSAxID4gbGVuZ3RoKSB7XG4gICAgcmV0dXJuIFN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkobnVsbCwgaW5wdXQpXG4gIH1cbiAgbGV0IHJlc3VsdCA9ICcnOyBsZXQgaSA9IDBcbiAgbGV0IGFkZGl0aW9uID0gKDIgPDwgMTUpIC0gMVxuICB3aGlsZSAoaSA8IGxlbmd0aCkge1xuICAgIGlmIChpICsgYWRkaXRpb24gPiBsZW5ndGgpIHtcbiAgICAgIGFkZGl0aW9uID0gbGVuZ3RoIC0gaVxuICAgIH1cbiAgICByZXN1bHQgKz0gU3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShudWxsLCBpbnB1dC5zdWJhcnJheShpLCBpICs9IGFkZGl0aW9uKSlcbiAgfVxuICByZXR1cm4gcmVzdWx0XG59XG5cbi8qKlxuICogQHNlZSBodHRwczovL21pbWVzbmlmZi5zcGVjLndoYXR3Zy5vcmcvI21pbmltaXplLWEtc3VwcG9ydGVkLW1pbWUtdHlwZVxuICogQHBhcmFtIHtFeGNsdWRlPFJldHVyblR5cGU8dHlwZW9mIHBhcnNlTUlNRVR5cGU+LCAnZmFpbHVyZSc+fSBtaW1lVHlwZVxuICovXG5mdW5jdGlvbiBtaW5pbWl6ZVN1cHBvcnRlZE1pbWVUeXBlIChtaW1lVHlwZSkge1xuICBzd2l0Y2ggKG1pbWVUeXBlLmVzc2VuY2UpIHtcbiAgICBjYXNlICdhcHBsaWNhdGlvbi9lY21hc2NyaXB0JzpcbiAgICBjYXNlICdhcHBsaWNhdGlvbi9qYXZhc2NyaXB0JzpcbiAgICBjYXNlICdhcHBsaWNhdGlvbi94LWVjbWFzY3JpcHQnOlxuICAgIGNhc2UgJ2FwcGxpY2F0aW9uL3gtamF2YXNjcmlwdCc6XG4gICAgY2FzZSAndGV4dC9lY21hc2NyaXB0JzpcbiAgICBjYXNlICd0ZXh0L2phdmFzY3JpcHQnOlxuICAgIGNhc2UgJ3RleHQvamF2YXNjcmlwdDEuMCc6XG4gICAgY2FzZSAndGV4dC9qYXZhc2NyaXB0MS4xJzpcbiAgICBjYXNlICd0ZXh0L2phdmFzY3JpcHQxLjInOlxuICAgIGNhc2UgJ3RleHQvamF2YXNjcmlwdDEuMyc6XG4gICAgY2FzZSAndGV4dC9qYXZhc2NyaXB0MS40JzpcbiAgICBjYXNlICd0ZXh0L2phdmFzY3JpcHQxLjUnOlxuICAgIGNhc2UgJ3RleHQvanNjcmlwdCc6XG4gICAgY2FzZSAndGV4dC9saXZlc2NyaXB0JzpcbiAgICBjYXNlICd0ZXh0L3gtZWNtYXNjcmlwdCc6XG4gICAgY2FzZSAndGV4dC94LWphdmFzY3JpcHQnOlxuICAgICAgLy8gMS4gSWYgbWltZVR5cGUgaXMgYSBKYXZhU2NyaXB0IE1JTUUgdHlwZSwgdGhlbiByZXR1cm4gXCJ0ZXh0L2phdmFzY3JpcHRcIi5cbiAgICAgIHJldHVybiAndGV4dC9qYXZhc2NyaXB0J1xuICAgIGNhc2UgJ2FwcGxpY2F0aW9uL2pzb24nOlxuICAgIGNhc2UgJ3RleHQvanNvbic6XG4gICAgICAvLyAyLiBJZiBtaW1lVHlwZSBpcyBhIEpTT04gTUlNRSB0eXBlLCB0aGVuIHJldHVybiBcImFwcGxpY2F0aW9uL2pzb25cIi5cbiAgICAgIHJldHVybiAnYXBwbGljYXRpb24vanNvbidcbiAgICBjYXNlICdpbWFnZS9zdmcreG1sJzpcbiAgICAgIC8vIDMuIElmIG1pbWVUeXBlXHUyMDE5cyBlc3NlbmNlIGlzIFwiaW1hZ2Uvc3ZnK3htbFwiLCB0aGVuIHJldHVybiBcImltYWdlL3N2Zyt4bWxcIi5cbiAgICAgIHJldHVybiAnaW1hZ2Uvc3ZnK3htbCdcbiAgICBjYXNlICd0ZXh0L3htbCc6XG4gICAgY2FzZSAnYXBwbGljYXRpb24veG1sJzpcbiAgICAgIC8vIDQuIElmIG1pbWVUeXBlIGlzIGFuIFhNTCBNSU1FIHR5cGUsIHRoZW4gcmV0dXJuIFwiYXBwbGljYXRpb24veG1sXCIuXG4gICAgICByZXR1cm4gJ2FwcGxpY2F0aW9uL3htbCdcbiAgfVxuXG4gIC8vIDIuIElmIG1pbWVUeXBlIGlzIGEgSlNPTiBNSU1FIHR5cGUsIHRoZW4gcmV0dXJuIFwiYXBwbGljYXRpb24vanNvblwiLlxuICBpZiAobWltZVR5cGUuc3VidHlwZS5lbmRzV2l0aCgnK2pzb24nKSkge1xuICAgIHJldHVybiAnYXBwbGljYXRpb24vanNvbidcbiAgfVxuXG4gIC8vIDQuIElmIG1pbWVUeXBlIGlzIGFuIFhNTCBNSU1FIHR5cGUsIHRoZW4gcmV0dXJuIFwiYXBwbGljYXRpb24veG1sXCIuXG4gIGlmIChtaW1lVHlwZS5zdWJ0eXBlLmVuZHNXaXRoKCcreG1sJykpIHtcbiAgICByZXR1cm4gJ2FwcGxpY2F0aW9uL3htbCdcbiAgfVxuXG4gIC8vIDUuIElmIG1pbWVUeXBlIGlzIHN1cHBvcnRlZCBieSB0aGUgdXNlciBhZ2VudCwgdGhlbiByZXR1cm4gbWltZVR5cGVcdTIwMTlzIGVzc2VuY2UuXG4gIC8vIFRlY2huaWNhbGx5LCBub2RlIGRvZXNuJ3Qgc3VwcG9ydCBhbnkgbWltZXR5cGVzLlxuXG4gIC8vIDYuIFJldHVybiB0aGUgZW1wdHkgc3RyaW5nLlxuICByZXR1cm4gJydcbn1cblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gIGRhdGFVUkxQcm9jZXNzb3IsXG4gIFVSTFNlcmlhbGl6ZXIsXG4gIGNvbGxlY3RBU2VxdWVuY2VPZkNvZGVQb2ludHMsXG4gIGNvbGxlY3RBU2VxdWVuY2VPZkNvZGVQb2ludHNGYXN0LFxuICBzdHJpbmdQZXJjZW50RGVjb2RlLFxuICBwYXJzZU1JTUVUeXBlLFxuICBjb2xsZWN0QW5IVFRQUXVvdGVkU3RyaW5nLFxuICBzZXJpYWxpemVBTWltZVR5cGUsXG4gIHJlbW92ZUNoYXJzLFxuICByZW1vdmVIVFRQV2hpdGVzcGFjZSxcbiAgbWluaW1pemVTdXBwb3J0ZWRNaW1lVHlwZSxcbiAgSFRUUF9UT0tFTl9DT0RFUE9JTlRTLFxuICBpc29tb3JwaGljRGVjb2RlXG59XG4iLCAiJ3VzZSBzdHJpY3QnXG5cbmNvbnN0IHsgdHlwZXMsIGluc3BlY3QgfSA9IHJlcXVpcmUoJ25vZGU6dXRpbCcpXG5jb25zdCB7IG1hcmtBc1VuY2xvbmVhYmxlIH0gPSByZXF1aXJlKCdub2RlOndvcmtlcl90aHJlYWRzJylcbmNvbnN0IHsgdG9VU1ZTdHJpbmcgfSA9IHJlcXVpcmUoJy4uLy4uL2NvcmUvdXRpbCcpXG5cbi8qKiBAdHlwZSB7aW1wb3J0KCcuLi8uLi8uLi90eXBlcy93ZWJpZGwnKS5XZWJpZGx9ICovXG5jb25zdCB3ZWJpZGwgPSB7fVxud2ViaWRsLmNvbnZlcnRlcnMgPSB7fVxud2ViaWRsLnV0aWwgPSB7fVxud2ViaWRsLmVycm9ycyA9IHt9XG5cbndlYmlkbC5lcnJvcnMuZXhjZXB0aW9uID0gZnVuY3Rpb24gKG1lc3NhZ2UpIHtcbiAgcmV0dXJuIG5ldyBUeXBlRXJyb3IoYCR7bWVzc2FnZS5oZWFkZXJ9OiAke21lc3NhZ2UubWVzc2FnZX1gKVxufVxuXG53ZWJpZGwuZXJyb3JzLmNvbnZlcnNpb25GYWlsZWQgPSBmdW5jdGlvbiAoY29udGV4dCkge1xuICBjb25zdCBwbHVyYWwgPSBjb250ZXh0LnR5cGVzLmxlbmd0aCA9PT0gMSA/ICcnIDogJyBvbmUgb2YnXG4gIGNvbnN0IG1lc3NhZ2UgPVxuICAgIGAke2NvbnRleHQuYXJndW1lbnR9IGNvdWxkIG5vdCBiZSBjb252ZXJ0ZWQgdG9gICtcbiAgICBgJHtwbHVyYWx9OiAke2NvbnRleHQudHlwZXMuam9pbignLCAnKX0uYFxuXG4gIHJldHVybiB3ZWJpZGwuZXJyb3JzLmV4Y2VwdGlvbih7XG4gICAgaGVhZGVyOiBjb250ZXh0LnByZWZpeCxcbiAgICBtZXNzYWdlXG4gIH0pXG59XG5cbndlYmlkbC5lcnJvcnMuaW52YWxpZEFyZ3VtZW50ID0gZnVuY3Rpb24gKGNvbnRleHQpIHtcbiAgcmV0dXJuIHdlYmlkbC5lcnJvcnMuZXhjZXB0aW9uKHtcbiAgICBoZWFkZXI6IGNvbnRleHQucHJlZml4LFxuICAgIG1lc3NhZ2U6IGBcIiR7Y29udGV4dC52YWx1ZX1cIiBpcyBhbiBpbnZhbGlkICR7Y29udGV4dC50eXBlfS5gXG4gIH0pXG59XG5cbi8vIGh0dHBzOi8vd2ViaWRsLnNwZWMud2hhdHdnLm9yZy8jaW1wbGVtZW50c1xud2ViaWRsLmJyYW5kQ2hlY2sgPSBmdW5jdGlvbiAoViwgSSwgb3B0cykge1xuICBpZiAob3B0cz8uc3RyaWN0ICE9PSBmYWxzZSkge1xuICAgIGlmICghKFYgaW5zdGFuY2VvZiBJKSkge1xuICAgICAgY29uc3QgZXJyID0gbmV3IFR5cGVFcnJvcignSWxsZWdhbCBpbnZvY2F0aW9uJylcbiAgICAgIGVyci5jb2RlID0gJ0VSUl9JTlZBTElEX1RISVMnIC8vIG5vZGUgY29tcGF0LlxuICAgICAgdGhyb3cgZXJyXG4gICAgfVxuICB9IGVsc2Uge1xuICAgIGlmIChWPy5bU3ltYm9sLnRvU3RyaW5nVGFnXSAhPT0gSS5wcm90b3R5cGVbU3ltYm9sLnRvU3RyaW5nVGFnXSkge1xuICAgICAgY29uc3QgZXJyID0gbmV3IFR5cGVFcnJvcignSWxsZWdhbCBpbnZvY2F0aW9uJylcbiAgICAgIGVyci5jb2RlID0gJ0VSUl9JTlZBTElEX1RISVMnIC8vIG5vZGUgY29tcGF0LlxuICAgICAgdGhyb3cgZXJyXG4gICAgfVxuICB9XG59XG5cbndlYmlkbC5hcmd1bWVudExlbmd0aENoZWNrID0gZnVuY3Rpb24gKHsgbGVuZ3RoIH0sIG1pbiwgY3R4KSB7XG4gIGlmIChsZW5ndGggPCBtaW4pIHtcbiAgICB0aHJvdyB3ZWJpZGwuZXJyb3JzLmV4Y2VwdGlvbih7XG4gICAgICBtZXNzYWdlOiBgJHttaW59IGFyZ3VtZW50JHttaW4gIT09IDEgPyAncycgOiAnJ30gcmVxdWlyZWQsIGAgK1xuICAgICAgICAgICAgICAgYGJ1dCR7bGVuZ3RoID8gJyBvbmx5JyA6ICcnfSAke2xlbmd0aH0gZm91bmQuYCxcbiAgICAgIGhlYWRlcjogY3R4XG4gICAgfSlcbiAgfVxufVxuXG53ZWJpZGwuaWxsZWdhbENvbnN0cnVjdG9yID0gZnVuY3Rpb24gKCkge1xuICB0aHJvdyB3ZWJpZGwuZXJyb3JzLmV4Y2VwdGlvbih7XG4gICAgaGVhZGVyOiAnVHlwZUVycm9yJyxcbiAgICBtZXNzYWdlOiAnSWxsZWdhbCBjb25zdHJ1Y3RvcidcbiAgfSlcbn1cblxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1lY21hc2NyaXB0LWRhdGEtdHlwZXMtYW5kLXZhbHVlc1xud2ViaWRsLnV0aWwuVHlwZSA9IGZ1bmN0aW9uIChWKSB7XG4gIHN3aXRjaCAodHlwZW9mIFYpIHtcbiAgICBjYXNlICd1bmRlZmluZWQnOiByZXR1cm4gJ1VuZGVmaW5lZCdcbiAgICBjYXNlICdib29sZWFuJzogcmV0dXJuICdCb29sZWFuJ1xuICAgIGNhc2UgJ3N0cmluZyc6IHJldHVybiAnU3RyaW5nJ1xuICAgIGNhc2UgJ3N5bWJvbCc6IHJldHVybiAnU3ltYm9sJ1xuICAgIGNhc2UgJ251bWJlcic6IHJldHVybiAnTnVtYmVyJ1xuICAgIGNhc2UgJ2JpZ2ludCc6IHJldHVybiAnQmlnSW50J1xuICAgIGNhc2UgJ2Z1bmN0aW9uJzpcbiAgICBjYXNlICdvYmplY3QnOiB7XG4gICAgICBpZiAoViA9PT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gJ051bGwnXG4gICAgICB9XG5cbiAgICAgIHJldHVybiAnT2JqZWN0J1xuICAgIH1cbiAgfVxufVxuXG53ZWJpZGwudXRpbC5tYXJrQXNVbmNsb25lYWJsZSA9IG1hcmtBc1VuY2xvbmVhYmxlIHx8ICgoKSA9PiB7fSlcbi8vIGh0dHBzOi8vd2ViaWRsLnNwZWMud2hhdHdnLm9yZy8jYWJzdHJhY3Qtb3BkZWYtY29udmVydHRvaW50XG53ZWJpZGwudXRpbC5Db252ZXJ0VG9JbnQgPSBmdW5jdGlvbiAoViwgYml0TGVuZ3RoLCBzaWduZWRuZXNzLCBvcHRzKSB7XG4gIGxldCB1cHBlckJvdW5kXG4gIGxldCBsb3dlckJvdW5kXG5cbiAgLy8gMS4gSWYgYml0TGVuZ3RoIGlzIDY0LCB0aGVuOlxuICBpZiAoYml0TGVuZ3RoID09PSA2NCkge1xuICAgIC8vIDEuIExldCB1cHBlckJvdW5kIGJlIDJeNTMgXHUyMjEyIDEuXG4gICAgdXBwZXJCb3VuZCA9IE1hdGgucG93KDIsIDUzKSAtIDFcblxuICAgIC8vIDIuIElmIHNpZ25lZG5lc3MgaXMgXCJ1bnNpZ25lZFwiLCB0aGVuIGxldCBsb3dlckJvdW5kIGJlIDAuXG4gICAgaWYgKHNpZ25lZG5lc3MgPT09ICd1bnNpZ25lZCcpIHtcbiAgICAgIGxvd2VyQm91bmQgPSAwXG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIDMuIE90aGVyd2lzZSBsZXQgbG93ZXJCb3VuZCBiZSBcdTIyMTIyXjUzICsgMS5cbiAgICAgIGxvd2VyQm91bmQgPSBNYXRoLnBvdygtMiwgNTMpICsgMVxuICAgIH1cbiAgfSBlbHNlIGlmIChzaWduZWRuZXNzID09PSAndW5zaWduZWQnKSB7XG4gICAgLy8gMi4gT3RoZXJ3aXNlLCBpZiBzaWduZWRuZXNzIGlzIFwidW5zaWduZWRcIiwgdGhlbjpcblxuICAgIC8vIDEuIExldCBsb3dlckJvdW5kIGJlIDAuXG4gICAgbG93ZXJCb3VuZCA9IDBcblxuICAgIC8vIDIuIExldCB1cHBlckJvdW5kIGJlIDJeYml0TGVuZ3RoIFx1MjIxMiAxLlxuICAgIHVwcGVyQm91bmQgPSBNYXRoLnBvdygyLCBiaXRMZW5ndGgpIC0gMVxuICB9IGVsc2Uge1xuICAgIC8vIDMuIE90aGVyd2lzZTpcblxuICAgIC8vIDEuIExldCBsb3dlckJvdW5kIGJlIC0yXmJpdExlbmd0aCBcdTIyMTIgMS5cbiAgICBsb3dlckJvdW5kID0gTWF0aC5wb3coLTIsIGJpdExlbmd0aCkgLSAxXG5cbiAgICAvLyAyLiBMZXQgdXBwZXJCb3VuZCBiZSAyXmJpdExlbmd0aCBcdTIyMTIgMSBcdTIyMTIgMS5cbiAgICB1cHBlckJvdW5kID0gTWF0aC5wb3coMiwgYml0TGVuZ3RoIC0gMSkgLSAxXG4gIH1cblxuICAvLyA0LiBMZXQgeCBiZSA/IFRvTnVtYmVyKFYpLlxuICBsZXQgeCA9IE51bWJlcihWKVxuXG4gIC8vIDUuIElmIHggaXMgXHUyMjEyMCwgdGhlbiBzZXQgeCB0byArMC5cbiAgaWYgKHggPT09IDApIHtcbiAgICB4ID0gMFxuICB9XG5cbiAgLy8gNi4gSWYgdGhlIGNvbnZlcnNpb24gaXMgdG8gYW4gSURMIHR5cGUgYXNzb2NpYXRlZFxuICAvLyAgICB3aXRoIHRoZSBbRW5mb3JjZVJhbmdlXSBleHRlbmRlZCBhdHRyaWJ1dGUsIHRoZW46XG4gIGlmIChvcHRzPy5lbmZvcmNlUmFuZ2UgPT09IHRydWUpIHtcbiAgICAvLyAxLiBJZiB4IGlzIE5hTiwgK1x1MjIxRSwgb3IgXHUyMjEyXHUyMjFFLCB0aGVuIHRocm93IGEgVHlwZUVycm9yLlxuICAgIGlmIChcbiAgICAgIE51bWJlci5pc05hTih4KSB8fFxuICAgICAgeCA9PT0gTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZIHx8XG4gICAgICB4ID09PSBOdW1iZXIuTkVHQVRJVkVfSU5GSU5JVFlcbiAgICApIHtcbiAgICAgIHRocm93IHdlYmlkbC5lcnJvcnMuZXhjZXB0aW9uKHtcbiAgICAgICAgaGVhZGVyOiAnSW50ZWdlciBjb252ZXJzaW9uJyxcbiAgICAgICAgbWVzc2FnZTogYENvdWxkIG5vdCBjb252ZXJ0ICR7d2ViaWRsLnV0aWwuU3RyaW5naWZ5KFYpfSB0byBhbiBpbnRlZ2VyLmBcbiAgICAgIH0pXG4gICAgfVxuXG4gICAgLy8gMi4gU2V0IHggdG8gSW50ZWdlclBhcnQoeCkuXG4gICAgeCA9IHdlYmlkbC51dGlsLkludGVnZXJQYXJ0KHgpXG5cbiAgICAvLyAzLiBJZiB4IDwgbG93ZXJCb3VuZCBvciB4ID4gdXBwZXJCb3VuZCwgdGhlblxuICAgIC8vICAgIHRocm93IGEgVHlwZUVycm9yLlxuICAgIGlmICh4IDwgbG93ZXJCb3VuZCB8fCB4ID4gdXBwZXJCb3VuZCkge1xuICAgICAgdGhyb3cgd2ViaWRsLmVycm9ycy5leGNlcHRpb24oe1xuICAgICAgICBoZWFkZXI6ICdJbnRlZ2VyIGNvbnZlcnNpb24nLFxuICAgICAgICBtZXNzYWdlOiBgVmFsdWUgbXVzdCBiZSBiZXR3ZWVuICR7bG93ZXJCb3VuZH0tJHt1cHBlckJvdW5kfSwgZ290ICR7eH0uYFxuICAgICAgfSlcbiAgICB9XG5cbiAgICAvLyA0LiBSZXR1cm4geC5cbiAgICByZXR1cm4geFxuICB9XG5cbiAgLy8gNy4gSWYgeCBpcyBub3QgTmFOIGFuZCB0aGUgY29udmVyc2lvbiBpcyB0byBhbiBJRExcbiAgLy8gICAgdHlwZSBhc3NvY2lhdGVkIHdpdGggdGhlIFtDbGFtcF0gZXh0ZW5kZWRcbiAgLy8gICAgYXR0cmlidXRlLCB0aGVuOlxuICBpZiAoIU51bWJlci5pc05hTih4KSAmJiBvcHRzPy5jbGFtcCA9PT0gdHJ1ZSkge1xuICAgIC8vIDEuIFNldCB4IHRvIG1pbihtYXgoeCwgbG93ZXJCb3VuZCksIHVwcGVyQm91bmQpLlxuICAgIHggPSBNYXRoLm1pbihNYXRoLm1heCh4LCBsb3dlckJvdW5kKSwgdXBwZXJCb3VuZClcblxuICAgIC8vIDIuIFJvdW5kIHggdG8gdGhlIG5lYXJlc3QgaW50ZWdlciwgY2hvb3NpbmcgdGhlXG4gICAgLy8gICAgZXZlbiBpbnRlZ2VyIGlmIGl0IGxpZXMgaGFsZndheSBiZXR3ZWVuIHR3byxcbiAgICAvLyAgICBhbmQgY2hvb3NpbmcgKzAgcmF0aGVyIHRoYW4gXHUyMjEyMC5cbiAgICBpZiAoTWF0aC5mbG9vcih4KSAlIDIgPT09IDApIHtcbiAgICAgIHggPSBNYXRoLmZsb29yKHgpXG4gICAgfSBlbHNlIHtcbiAgICAgIHggPSBNYXRoLmNlaWwoeClcbiAgICB9XG5cbiAgICAvLyAzLiBSZXR1cm4geC5cbiAgICByZXR1cm4geFxuICB9XG5cbiAgLy8gOC4gSWYgeCBpcyBOYU4sICswLCArXHUyMjFFLCBvciBcdTIyMTJcdTIyMUUsIHRoZW4gcmV0dXJuICswLlxuICBpZiAoXG4gICAgTnVtYmVyLmlzTmFOKHgpIHx8XG4gICAgKHggPT09IDAgJiYgT2JqZWN0LmlzKDAsIHgpKSB8fFxuICAgIHggPT09IE51bWJlci5QT1NJVElWRV9JTkZJTklUWSB8fFxuICAgIHggPT09IE51bWJlci5ORUdBVElWRV9JTkZJTklUWVxuICApIHtcbiAgICByZXR1cm4gMFxuICB9XG5cbiAgLy8gOS4gU2V0IHggdG8gSW50ZWdlclBhcnQoeCkuXG4gIHggPSB3ZWJpZGwudXRpbC5JbnRlZ2VyUGFydCh4KVxuXG4gIC8vIDEwLiBTZXQgeCB0byB4IG1vZHVsbyAyXmJpdExlbmd0aC5cbiAgeCA9IHggJSBNYXRoLnBvdygyLCBiaXRMZW5ndGgpXG5cbiAgLy8gMTEuIElmIHNpZ25lZG5lc3MgaXMgXCJzaWduZWRcIiBhbmQgeCBcdTIyNjUgMl5iaXRMZW5ndGggXHUyMjEyIDEsXG4gIC8vICAgIHRoZW4gcmV0dXJuIHggXHUyMjEyIDJeYml0TGVuZ3RoLlxuICBpZiAoc2lnbmVkbmVzcyA9PT0gJ3NpZ25lZCcgJiYgeCA+PSBNYXRoLnBvdygyLCBiaXRMZW5ndGgpIC0gMSkge1xuICAgIHJldHVybiB4IC0gTWF0aC5wb3coMiwgYml0TGVuZ3RoKVxuICB9XG5cbiAgLy8gMTIuIE90aGVyd2lzZSwgcmV0dXJuIHguXG4gIHJldHVybiB4XG59XG5cbi8vIGh0dHBzOi8vd2ViaWRsLnNwZWMud2hhdHdnLm9yZy8jYWJzdHJhY3Qtb3BkZWYtaW50ZWdlcnBhcnRcbndlYmlkbC51dGlsLkludGVnZXJQYXJ0ID0gZnVuY3Rpb24gKG4pIHtcbiAgLy8gMS4gTGV0IHIgYmUgZmxvb3IoYWJzKG4pKS5cbiAgY29uc3QgciA9IE1hdGguZmxvb3IoTWF0aC5hYnMobikpXG5cbiAgLy8gMi4gSWYgbiA8IDAsIHRoZW4gcmV0dXJuIC0xIFx1MDBENyByLlxuICBpZiAobiA8IDApIHtcbiAgICByZXR1cm4gLTEgKiByXG4gIH1cblxuICAvLyAzLiBPdGhlcndpc2UsIHJldHVybiByLlxuICByZXR1cm4gclxufVxuXG53ZWJpZGwudXRpbC5TdHJpbmdpZnkgPSBmdW5jdGlvbiAoVikge1xuICBjb25zdCB0eXBlID0gd2ViaWRsLnV0aWwuVHlwZShWKVxuXG4gIHN3aXRjaCAodHlwZSkge1xuICAgIGNhc2UgJ1N5bWJvbCc6XG4gICAgICByZXR1cm4gYFN5bWJvbCgke1YuZGVzY3JpcHRpb259KWBcbiAgICBjYXNlICdPYmplY3QnOlxuICAgICAgcmV0dXJuIGluc3BlY3QoVilcbiAgICBjYXNlICdTdHJpbmcnOlxuICAgICAgcmV0dXJuIGBcIiR7Vn1cImBcbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIGAke1Z9YFxuICB9XG59XG5cbi8vIGh0dHBzOi8vd2ViaWRsLnNwZWMud2hhdHdnLm9yZy8jZXMtc2VxdWVuY2VcbndlYmlkbC5zZXF1ZW5jZUNvbnZlcnRlciA9IGZ1bmN0aW9uIChjb252ZXJ0ZXIpIHtcbiAgcmV0dXJuIChWLCBwcmVmaXgsIGFyZ3VtZW50LCBJdGVyYWJsZSkgPT4ge1xuICAgIC8vIDEuIElmIFR5cGUoVikgaXMgbm90IE9iamVjdCwgdGhyb3cgYSBUeXBlRXJyb3IuXG4gICAgaWYgKHdlYmlkbC51dGlsLlR5cGUoVikgIT09ICdPYmplY3QnKSB7XG4gICAgICB0aHJvdyB3ZWJpZGwuZXJyb3JzLmV4Y2VwdGlvbih7XG4gICAgICAgIGhlYWRlcjogcHJlZml4LFxuICAgICAgICBtZXNzYWdlOiBgJHthcmd1bWVudH0gKCR7d2ViaWRsLnV0aWwuU3RyaW5naWZ5KFYpfSkgaXMgbm90IGl0ZXJhYmxlLmBcbiAgICAgIH0pXG4gICAgfVxuXG4gICAgLy8gMi4gTGV0IG1ldGhvZCBiZSA/IEdldE1ldGhvZChWLCBAQGl0ZXJhdG9yKS5cbiAgICAvKiogQHR5cGUge0dlbmVyYXRvcn0gKi9cbiAgICBjb25zdCBtZXRob2QgPSB0eXBlb2YgSXRlcmFibGUgPT09ICdmdW5jdGlvbicgPyBJdGVyYWJsZSgpIDogVj8uW1N5bWJvbC5pdGVyYXRvcl0/LigpXG4gICAgY29uc3Qgc2VxID0gW11cbiAgICBsZXQgaW5kZXggPSAwXG5cbiAgICAvLyAzLiBJZiBtZXRob2QgaXMgdW5kZWZpbmVkLCB0aHJvdyBhIFR5cGVFcnJvci5cbiAgICBpZiAoXG4gICAgICBtZXRob2QgPT09IHVuZGVmaW5lZCB8fFxuICAgICAgdHlwZW9mIG1ldGhvZC5uZXh0ICE9PSAnZnVuY3Rpb24nXG4gICAgKSB7XG4gICAgICB0aHJvdyB3ZWJpZGwuZXJyb3JzLmV4Y2VwdGlvbih7XG4gICAgICAgIGhlYWRlcjogcHJlZml4LFxuICAgICAgICBtZXNzYWdlOiBgJHthcmd1bWVudH0gaXMgbm90IGl0ZXJhYmxlLmBcbiAgICAgIH0pXG4gICAgfVxuXG4gICAgLy8gaHR0cHM6Ly93ZWJpZGwuc3BlYy53aGF0d2cub3JnLyNjcmVhdGUtc2VxdWVuY2UtZnJvbS1pdGVyYWJsZVxuICAgIHdoaWxlICh0cnVlKSB7XG4gICAgICBjb25zdCB7IGRvbmUsIHZhbHVlIH0gPSBtZXRob2QubmV4dCgpXG5cbiAgICAgIGlmIChkb25lKSB7XG4gICAgICAgIGJyZWFrXG4gICAgICB9XG5cbiAgICAgIHNlcS5wdXNoKGNvbnZlcnRlcih2YWx1ZSwgcHJlZml4LCBgJHthcmd1bWVudH1bJHtpbmRleCsrfV1gKSlcbiAgICB9XG5cbiAgICByZXR1cm4gc2VxXG4gIH1cbn1cblxuLy8gaHR0cHM6Ly93ZWJpZGwuc3BlYy53aGF0d2cub3JnLyNlcy10by1yZWNvcmRcbndlYmlkbC5yZWNvcmRDb252ZXJ0ZXIgPSBmdW5jdGlvbiAoa2V5Q29udmVydGVyLCB2YWx1ZUNvbnZlcnRlcikge1xuICByZXR1cm4gKE8sIHByZWZpeCwgYXJndW1lbnQpID0+IHtcbiAgICAvLyAxLiBJZiBUeXBlKE8pIGlzIG5vdCBPYmplY3QsIHRocm93IGEgVHlwZUVycm9yLlxuICAgIGlmICh3ZWJpZGwudXRpbC5UeXBlKE8pICE9PSAnT2JqZWN0Jykge1xuICAgICAgdGhyb3cgd2ViaWRsLmVycm9ycy5leGNlcHRpb24oe1xuICAgICAgICBoZWFkZXI6IHByZWZpeCxcbiAgICAgICAgbWVzc2FnZTogYCR7YXJndW1lbnR9IChcIiR7d2ViaWRsLnV0aWwuVHlwZShPKX1cIikgaXMgbm90IGFuIE9iamVjdC5gXG4gICAgICB9KVxuICAgIH1cblxuICAgIC8vIDIuIExldCByZXN1bHQgYmUgYSBuZXcgZW1wdHkgaW5zdGFuY2Ugb2YgcmVjb3JkPEssIFY+LlxuICAgIGNvbnN0IHJlc3VsdCA9IHt9XG5cbiAgICBpZiAoIXR5cGVzLmlzUHJveHkoTykpIHtcbiAgICAgIC8vIDEuIExldCBkZXNjIGJlID8gTy5bW0dldE93blByb3BlcnR5XV0oa2V5KS5cbiAgICAgIGNvbnN0IGtleXMgPSBbLi4uT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoTyksIC4uLk9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoTyldXG5cbiAgICAgIGZvciAoY29uc3Qga2V5IG9mIGtleXMpIHtcbiAgICAgICAgLy8gMS4gTGV0IHR5cGVkS2V5IGJlIGtleSBjb252ZXJ0ZWQgdG8gYW4gSURMIHZhbHVlIG9mIHR5cGUgSy5cbiAgICAgICAgY29uc3QgdHlwZWRLZXkgPSBrZXlDb252ZXJ0ZXIoa2V5LCBwcmVmaXgsIGFyZ3VtZW50KVxuXG4gICAgICAgIC8vIDIuIExldCB2YWx1ZSBiZSA/IEdldChPLCBrZXkpLlxuICAgICAgICAvLyAzLiBMZXQgdHlwZWRWYWx1ZSBiZSB2YWx1ZSBjb252ZXJ0ZWQgdG8gYW4gSURMIHZhbHVlIG9mIHR5cGUgVi5cbiAgICAgICAgY29uc3QgdHlwZWRWYWx1ZSA9IHZhbHVlQ29udmVydGVyKE9ba2V5XSwgcHJlZml4LCBhcmd1bWVudClcblxuICAgICAgICAvLyA0LiBTZXQgcmVzdWx0W3R5cGVkS2V5XSB0byB0eXBlZFZhbHVlLlxuICAgICAgICByZXN1bHRbdHlwZWRLZXldID0gdHlwZWRWYWx1ZVxuICAgICAgfVxuXG4gICAgICAvLyA1LiBSZXR1cm4gcmVzdWx0LlxuICAgICAgcmV0dXJuIHJlc3VsdFxuICAgIH1cblxuICAgIC8vIDMuIExldCBrZXlzIGJlID8gTy5bW093blByb3BlcnR5S2V5c11dKCkuXG4gICAgY29uc3Qga2V5cyA9IFJlZmxlY3Qub3duS2V5cyhPKVxuXG4gICAgLy8gNC4gRm9yIGVhY2gga2V5IG9mIGtleXMuXG4gICAgZm9yIChjb25zdCBrZXkgb2Yga2V5cykge1xuICAgICAgLy8gMS4gTGV0IGRlc2MgYmUgPyBPLltbR2V0T3duUHJvcGVydHldXShrZXkpLlxuICAgICAgY29uc3QgZGVzYyA9IFJlZmxlY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKE8sIGtleSlcblxuICAgICAgLy8gMi4gSWYgZGVzYyBpcyBub3QgdW5kZWZpbmVkIGFuZCBkZXNjLltbRW51bWVyYWJsZV1dIGlzIHRydWU6XG4gICAgICBpZiAoZGVzYz8uZW51bWVyYWJsZSkge1xuICAgICAgICAvLyAxLiBMZXQgdHlwZWRLZXkgYmUga2V5IGNvbnZlcnRlZCB0byBhbiBJREwgdmFsdWUgb2YgdHlwZSBLLlxuICAgICAgICBjb25zdCB0eXBlZEtleSA9IGtleUNvbnZlcnRlcihrZXksIHByZWZpeCwgYXJndW1lbnQpXG5cbiAgICAgICAgLy8gMi4gTGV0IHZhbHVlIGJlID8gR2V0KE8sIGtleSkuXG4gICAgICAgIC8vIDMuIExldCB0eXBlZFZhbHVlIGJlIHZhbHVlIGNvbnZlcnRlZCB0byBhbiBJREwgdmFsdWUgb2YgdHlwZSBWLlxuICAgICAgICBjb25zdCB0eXBlZFZhbHVlID0gdmFsdWVDb252ZXJ0ZXIoT1trZXldLCBwcmVmaXgsIGFyZ3VtZW50KVxuXG4gICAgICAgIC8vIDQuIFNldCByZXN1bHRbdHlwZWRLZXldIHRvIHR5cGVkVmFsdWUuXG4gICAgICAgIHJlc3VsdFt0eXBlZEtleV0gPSB0eXBlZFZhbHVlXG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gNS4gUmV0dXJuIHJlc3VsdC5cbiAgICByZXR1cm4gcmVzdWx0XG4gIH1cbn1cblxud2ViaWRsLmludGVyZmFjZUNvbnZlcnRlciA9IGZ1bmN0aW9uIChpKSB7XG4gIHJldHVybiAoViwgcHJlZml4LCBhcmd1bWVudCwgb3B0cykgPT4ge1xuICAgIGlmIChvcHRzPy5zdHJpY3QgIT09IGZhbHNlICYmICEoViBpbnN0YW5jZW9mIGkpKSB7XG4gICAgICB0aHJvdyB3ZWJpZGwuZXJyb3JzLmV4Y2VwdGlvbih7XG4gICAgICAgIGhlYWRlcjogcHJlZml4LFxuICAgICAgICBtZXNzYWdlOiBgRXhwZWN0ZWQgJHthcmd1bWVudH0gKFwiJHt3ZWJpZGwudXRpbC5TdHJpbmdpZnkoVil9XCIpIHRvIGJlIGFuIGluc3RhbmNlIG9mICR7aS5uYW1lfS5gXG4gICAgICB9KVxuICAgIH1cblxuICAgIHJldHVybiBWXG4gIH1cbn1cblxud2ViaWRsLmRpY3Rpb25hcnlDb252ZXJ0ZXIgPSBmdW5jdGlvbiAoY29udmVydGVycykge1xuICByZXR1cm4gKGRpY3Rpb25hcnksIHByZWZpeCwgYXJndW1lbnQpID0+IHtcbiAgICBjb25zdCB0eXBlID0gd2ViaWRsLnV0aWwuVHlwZShkaWN0aW9uYXJ5KVxuICAgIGNvbnN0IGRpY3QgPSB7fVxuXG4gICAgaWYgKHR5cGUgPT09ICdOdWxsJyB8fCB0eXBlID09PSAnVW5kZWZpbmVkJykge1xuICAgICAgcmV0dXJuIGRpY3RcbiAgICB9IGVsc2UgaWYgKHR5cGUgIT09ICdPYmplY3QnKSB7XG4gICAgICB0aHJvdyB3ZWJpZGwuZXJyb3JzLmV4Y2VwdGlvbih7XG4gICAgICAgIGhlYWRlcjogcHJlZml4LFxuICAgICAgICBtZXNzYWdlOiBgRXhwZWN0ZWQgJHtkaWN0aW9uYXJ5fSB0byBiZSBvbmUgb2Y6IE51bGwsIFVuZGVmaW5lZCwgT2JqZWN0LmBcbiAgICAgIH0pXG4gICAgfVxuXG4gICAgZm9yIChjb25zdCBvcHRpb25zIG9mIGNvbnZlcnRlcnMpIHtcbiAgICAgIGNvbnN0IHsga2V5LCBkZWZhdWx0VmFsdWUsIHJlcXVpcmVkLCBjb252ZXJ0ZXIgfSA9IG9wdGlvbnNcblxuICAgICAgaWYgKHJlcXVpcmVkID09PSB0cnVlKSB7XG4gICAgICAgIGlmICghT2JqZWN0Lmhhc093bihkaWN0aW9uYXJ5LCBrZXkpKSB7XG4gICAgICAgICAgdGhyb3cgd2ViaWRsLmVycm9ycy5leGNlcHRpb24oe1xuICAgICAgICAgICAgaGVhZGVyOiBwcmVmaXgsXG4gICAgICAgICAgICBtZXNzYWdlOiBgTWlzc2luZyByZXF1aXJlZCBrZXkgXCIke2tleX1cIi5gXG4gICAgICAgICAgfSlcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBsZXQgdmFsdWUgPSBkaWN0aW9uYXJ5W2tleV1cbiAgICAgIGNvbnN0IGhhc0RlZmF1bHQgPSBPYmplY3QuaGFzT3duKG9wdGlvbnMsICdkZWZhdWx0VmFsdWUnKVxuXG4gICAgICAvLyBPbmx5IHVzZSBkZWZhdWx0VmFsdWUgaWYgdmFsdWUgaXMgdW5kZWZpbmVkIGFuZFxuICAgICAgLy8gYSBkZWZhdWx0VmFsdWUgb3B0aW9ucyB3YXMgcHJvdmlkZWQuXG4gICAgICBpZiAoaGFzRGVmYXVsdCAmJiB2YWx1ZSAhPT0gbnVsbCkge1xuICAgICAgICB2YWx1ZSA/Pz0gZGVmYXVsdFZhbHVlKClcbiAgICAgIH1cblxuICAgICAgLy8gQSBrZXkgY2FuIGJlIG9wdGlvbmFsIGFuZCBoYXZlIG5vIGRlZmF1bHQgdmFsdWUuXG4gICAgICAvLyBXaGVuIHRoaXMgaGFwcGVucywgZG8gbm90IHBlcmZvcm0gYSBjb252ZXJzaW9uLFxuICAgICAgLy8gYW5kIGRvIG5vdCBhc3NpZ24gdGhlIGtleSBhIHZhbHVlLlxuICAgICAgaWYgKHJlcXVpcmVkIHx8IGhhc0RlZmF1bHQgfHwgdmFsdWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICB2YWx1ZSA9IGNvbnZlcnRlcih2YWx1ZSwgcHJlZml4LCBgJHthcmd1bWVudH0uJHtrZXl9YClcblxuICAgICAgICBpZiAoXG4gICAgICAgICAgb3B0aW9ucy5hbGxvd2VkVmFsdWVzICYmXG4gICAgICAgICAgIW9wdGlvbnMuYWxsb3dlZFZhbHVlcy5pbmNsdWRlcyh2YWx1ZSlcbiAgICAgICAgKSB7XG4gICAgICAgICAgdGhyb3cgd2ViaWRsLmVycm9ycy5leGNlcHRpb24oe1xuICAgICAgICAgICAgaGVhZGVyOiBwcmVmaXgsXG4gICAgICAgICAgICBtZXNzYWdlOiBgJHt2YWx1ZX0gaXMgbm90IGFuIGFjY2VwdGVkIHR5cGUuIEV4cGVjdGVkIG9uZSBvZiAke29wdGlvbnMuYWxsb3dlZFZhbHVlcy5qb2luKCcsICcpfS5gXG4gICAgICAgICAgfSlcbiAgICAgICAgfVxuXG4gICAgICAgIGRpY3Rba2V5XSA9IHZhbHVlXG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGRpY3RcbiAgfVxufVxuXG53ZWJpZGwubnVsbGFibGVDb252ZXJ0ZXIgPSBmdW5jdGlvbiAoY29udmVydGVyKSB7XG4gIHJldHVybiAoViwgcHJlZml4LCBhcmd1bWVudCkgPT4ge1xuICAgIGlmIChWID09PSBudWxsKSB7XG4gICAgICByZXR1cm4gVlxuICAgIH1cblxuICAgIHJldHVybiBjb252ZXJ0ZXIoViwgcHJlZml4LCBhcmd1bWVudClcbiAgfVxufVxuXG4vLyBodHRwczovL3dlYmlkbC5zcGVjLndoYXR3Zy5vcmcvI2VzLURPTVN0cmluZ1xud2ViaWRsLmNvbnZlcnRlcnMuRE9NU3RyaW5nID0gZnVuY3Rpb24gKFYsIHByZWZpeCwgYXJndW1lbnQsIG9wdHMpIHtcbiAgLy8gMS4gSWYgViBpcyBudWxsIGFuZCB0aGUgY29udmVyc2lvbiBpcyB0byBhbiBJREwgdHlwZVxuICAvLyAgICBhc3NvY2lhdGVkIHdpdGggdGhlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ11cbiAgLy8gICAgZXh0ZW5kZWQgYXR0cmlidXRlLCB0aGVuIHJldHVybiB0aGUgRE9NU3RyaW5nIHZhbHVlXG4gIC8vICAgIHRoYXQgcmVwcmVzZW50cyB0aGUgZW1wdHkgc3RyaW5nLlxuICBpZiAoViA9PT0gbnVsbCAmJiBvcHRzPy5sZWdhY3lOdWxsVG9FbXB0eVN0cmluZykge1xuICAgIHJldHVybiAnJ1xuICB9XG5cbiAgLy8gMi4gTGV0IHggYmUgPyBUb1N0cmluZyhWKS5cbiAgaWYgKHR5cGVvZiBWID09PSAnc3ltYm9sJykge1xuICAgIHRocm93IHdlYmlkbC5lcnJvcnMuZXhjZXB0aW9uKHtcbiAgICAgIGhlYWRlcjogcHJlZml4LFxuICAgICAgbWVzc2FnZTogYCR7YXJndW1lbnR9IGlzIGEgc3ltYm9sLCB3aGljaCBjYW5ub3QgYmUgY29udmVydGVkIHRvIGEgRE9NU3RyaW5nLmBcbiAgICB9KVxuICB9XG5cbiAgLy8gMy4gUmV0dXJuIHRoZSBJREwgRE9NU3RyaW5nIHZhbHVlIHRoYXQgcmVwcmVzZW50cyB0aGVcbiAgLy8gICAgc2FtZSBzZXF1ZW5jZSBvZiBjb2RlIHVuaXRzIGFzIHRoZSBvbmUgdGhlXG4gIC8vICAgIEVDTUFTY3JpcHQgU3RyaW5nIHZhbHVlIHggcmVwcmVzZW50cy5cbiAgcmV0dXJuIFN0cmluZyhWKVxufVxuXG4vLyBodHRwczovL3dlYmlkbC5zcGVjLndoYXR3Zy5vcmcvI2VzLUJ5dGVTdHJpbmdcbndlYmlkbC5jb252ZXJ0ZXJzLkJ5dGVTdHJpbmcgPSBmdW5jdGlvbiAoViwgcHJlZml4LCBhcmd1bWVudCkge1xuICAvLyAxLiBMZXQgeCBiZSA/IFRvU3RyaW5nKFYpLlxuICAvLyBOb3RlOiBET01TdHJpbmcgY29udmVydGVyIHBlcmZvcm0gPyBUb1N0cmluZyhWKVxuICBjb25zdCB4ID0gd2ViaWRsLmNvbnZlcnRlcnMuRE9NU3RyaW5nKFYsIHByZWZpeCwgYXJndW1lbnQpXG5cbiAgLy8gMi4gSWYgdGhlIHZhbHVlIG9mIGFueSBlbGVtZW50IG9mIHggaXMgZ3JlYXRlciB0aGFuXG4gIC8vICAgIDI1NSwgdGhlbiB0aHJvdyBhIFR5cGVFcnJvci5cbiAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IHgubGVuZ3RoOyBpbmRleCsrKSB7XG4gICAgaWYgKHguY2hhckNvZGVBdChpbmRleCkgPiAyNTUpIHtcbiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXG4gICAgICAgICdDYW5ub3QgY29udmVydCBhcmd1bWVudCB0byBhIEJ5dGVTdHJpbmcgYmVjYXVzZSB0aGUgY2hhcmFjdGVyIGF0ICcgK1xuICAgICAgICBgaW5kZXggJHtpbmRleH0gaGFzIGEgdmFsdWUgb2YgJHt4LmNoYXJDb2RlQXQoaW5kZXgpfSB3aGljaCBpcyBncmVhdGVyIHRoYW4gMjU1LmBcbiAgICAgIClcbiAgICB9XG4gIH1cblxuICAvLyAzLiBSZXR1cm4gYW4gSURMIEJ5dGVTdHJpbmcgdmFsdWUgd2hvc2UgbGVuZ3RoIGlzIHRoZVxuICAvLyAgICBsZW5ndGggb2YgeCwgYW5kIHdoZXJlIHRoZSB2YWx1ZSBvZiBlYWNoIGVsZW1lbnQgaXNcbiAgLy8gICAgdGhlIHZhbHVlIG9mIHRoZSBjb3JyZXNwb25kaW5nIGVsZW1lbnQgb2YgeC5cbiAgcmV0dXJuIHhcbn1cblxuLy8gaHR0cHM6Ly93ZWJpZGwuc3BlYy53aGF0d2cub3JnLyNlcy1VU1ZTdHJpbmdcbi8vIFRPRE86IHJld3JpdGUgdGhpcyBzbyB3ZSBjYW4gY29udHJvbCB0aGUgZXJyb3JzIHRocm93blxud2ViaWRsLmNvbnZlcnRlcnMuVVNWU3RyaW5nID0gdG9VU1ZTdHJpbmdcblxuLy8gaHR0cHM6Ly93ZWJpZGwuc3BlYy53aGF0d2cub3JnLyNlcy1ib29sZWFuXG53ZWJpZGwuY29udmVydGVycy5ib29sZWFuID0gZnVuY3Rpb24gKFYpIHtcbiAgLy8gMS4gTGV0IHggYmUgdGhlIHJlc3VsdCBvZiBjb21wdXRpbmcgVG9Cb29sZWFuKFYpLlxuICBjb25zdCB4ID0gQm9vbGVhbihWKVxuXG4gIC8vIDIuIFJldHVybiB0aGUgSURMIGJvb2xlYW4gdmFsdWUgdGhhdCBpcyB0aGUgb25lIHRoYXQgcmVwcmVzZW50c1xuICAvLyAgICB0aGUgc2FtZSB0cnV0aCB2YWx1ZSBhcyB0aGUgRUNNQVNjcmlwdCBCb29sZWFuIHZhbHVlIHguXG4gIHJldHVybiB4XG59XG5cbi8vIGh0dHBzOi8vd2ViaWRsLnNwZWMud2hhdHdnLm9yZy8jZXMtYW55XG53ZWJpZGwuY29udmVydGVycy5hbnkgPSBmdW5jdGlvbiAoVikge1xuICByZXR1cm4gVlxufVxuXG4vLyBodHRwczovL3dlYmlkbC5zcGVjLndoYXR3Zy5vcmcvI2VzLWxvbmctbG9uZ1xud2ViaWRsLmNvbnZlcnRlcnNbJ2xvbmcgbG9uZyddID0gZnVuY3Rpb24gKFYsIHByZWZpeCwgYXJndW1lbnQpIHtcbiAgLy8gMS4gTGV0IHggYmUgPyBDb252ZXJ0VG9JbnQoViwgNjQsIFwic2lnbmVkXCIpLlxuICBjb25zdCB4ID0gd2ViaWRsLnV0aWwuQ29udmVydFRvSW50KFYsIDY0LCAnc2lnbmVkJywgdW5kZWZpbmVkLCBwcmVmaXgsIGFyZ3VtZW50KVxuXG4gIC8vIDIuIFJldHVybiB0aGUgSURMIGxvbmcgbG9uZyB2YWx1ZSB0aGF0IHJlcHJlc2VudHNcbiAgLy8gICAgdGhlIHNhbWUgbnVtZXJpYyB2YWx1ZSBhcyB4LlxuICByZXR1cm4geFxufVxuXG4vLyBodHRwczovL3dlYmlkbC5zcGVjLndoYXR3Zy5vcmcvI2VzLXVuc2lnbmVkLWxvbmctbG9uZ1xud2ViaWRsLmNvbnZlcnRlcnNbJ3Vuc2lnbmVkIGxvbmcgbG9uZyddID0gZnVuY3Rpb24gKFYsIHByZWZpeCwgYXJndW1lbnQpIHtcbiAgLy8gMS4gTGV0IHggYmUgPyBDb252ZXJ0VG9JbnQoViwgNjQsIFwidW5zaWduZWRcIikuXG4gIGNvbnN0IHggPSB3ZWJpZGwudXRpbC5Db252ZXJ0VG9JbnQoViwgNjQsICd1bnNpZ25lZCcsIHVuZGVmaW5lZCwgcHJlZml4LCBhcmd1bWVudClcblxuICAvLyAyLiBSZXR1cm4gdGhlIElETCB1bnNpZ25lZCBsb25nIGxvbmcgdmFsdWUgdGhhdFxuICAvLyAgICByZXByZXNlbnRzIHRoZSBzYW1lIG51bWVyaWMgdmFsdWUgYXMgeC5cbiAgcmV0dXJuIHhcbn1cblxuLy8gaHR0cHM6Ly93ZWJpZGwuc3BlYy53aGF0d2cub3JnLyNlcy11bnNpZ25lZC1sb25nXG53ZWJpZGwuY29udmVydGVyc1sndW5zaWduZWQgbG9uZyddID0gZnVuY3Rpb24gKFYsIHByZWZpeCwgYXJndW1lbnQpIHtcbiAgLy8gMS4gTGV0IHggYmUgPyBDb252ZXJ0VG9JbnQoViwgMzIsIFwidW5zaWduZWRcIikuXG4gIGNvbnN0IHggPSB3ZWJpZGwudXRpbC5Db252ZXJ0VG9JbnQoViwgMzIsICd1bnNpZ25lZCcsIHVuZGVmaW5lZCwgcHJlZml4LCBhcmd1bWVudClcblxuICAvLyAyLiBSZXR1cm4gdGhlIElETCB1bnNpZ25lZCBsb25nIHZhbHVlIHRoYXRcbiAgLy8gICAgcmVwcmVzZW50cyB0aGUgc2FtZSBudW1lcmljIHZhbHVlIGFzIHguXG4gIHJldHVybiB4XG59XG5cbi8vIGh0dHBzOi8vd2ViaWRsLnNwZWMud2hhdHdnLm9yZy8jZXMtdW5zaWduZWQtc2hvcnRcbndlYmlkbC5jb252ZXJ0ZXJzWyd1bnNpZ25lZCBzaG9ydCddID0gZnVuY3Rpb24gKFYsIHByZWZpeCwgYXJndW1lbnQsIG9wdHMpIHtcbiAgLy8gMS4gTGV0IHggYmUgPyBDb252ZXJ0VG9JbnQoViwgMTYsIFwidW5zaWduZWRcIikuXG4gIGNvbnN0IHggPSB3ZWJpZGwudXRpbC5Db252ZXJ0VG9JbnQoViwgMTYsICd1bnNpZ25lZCcsIG9wdHMsIHByZWZpeCwgYXJndW1lbnQpXG5cbiAgLy8gMi4gUmV0dXJuIHRoZSBJREwgdW5zaWduZWQgc2hvcnQgdmFsdWUgdGhhdCByZXByZXNlbnRzXG4gIC8vICAgIHRoZSBzYW1lIG51bWVyaWMgdmFsdWUgYXMgeC5cbiAgcmV0dXJuIHhcbn1cblxuLy8gaHR0cHM6Ly93ZWJpZGwuc3BlYy53aGF0d2cub3JnLyNpZGwtQXJyYXlCdWZmZXJcbndlYmlkbC5jb252ZXJ0ZXJzLkFycmF5QnVmZmVyID0gZnVuY3Rpb24gKFYsIHByZWZpeCwgYXJndW1lbnQsIG9wdHMpIHtcbiAgLy8gMS4gSWYgVHlwZShWKSBpcyBub3QgT2JqZWN0LCBvciBWIGRvZXMgbm90IGhhdmUgYW5cbiAgLy8gICAgW1tBcnJheUJ1ZmZlckRhdGFdXSBpbnRlcm5hbCBzbG90LCB0aGVuIHRocm93IGFcbiAgLy8gICAgVHlwZUVycm9yLlxuICAvLyBzZWU6IGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtcHJvcGVydGllcy1vZi10aGUtYXJyYXlidWZmZXItaW5zdGFuY2VzXG4gIC8vIHNlZTogaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1wcm9wZXJ0aWVzLW9mLXRoZS1zaGFyZWRhcnJheWJ1ZmZlci1pbnN0YW5jZXNcbiAgaWYgKFxuICAgIHdlYmlkbC51dGlsLlR5cGUoVikgIT09ICdPYmplY3QnIHx8XG4gICAgIXR5cGVzLmlzQW55QXJyYXlCdWZmZXIoVilcbiAgKSB7XG4gICAgdGhyb3cgd2ViaWRsLmVycm9ycy5jb252ZXJzaW9uRmFpbGVkKHtcbiAgICAgIHByZWZpeCxcbiAgICAgIGFyZ3VtZW50OiBgJHthcmd1bWVudH0gKFwiJHt3ZWJpZGwudXRpbC5TdHJpbmdpZnkoVil9XCIpYCxcbiAgICAgIHR5cGVzOiBbJ0FycmF5QnVmZmVyJ11cbiAgICB9KVxuICB9XG5cbiAgLy8gMi4gSWYgdGhlIGNvbnZlcnNpb24gaXMgbm90IHRvIGFuIElETCB0eXBlIGFzc29jaWF0ZWRcbiAgLy8gICAgd2l0aCB0aGUgW0FsbG93U2hhcmVkXSBleHRlbmRlZCBhdHRyaWJ1dGUsIGFuZFxuICAvLyAgICBJc1NoYXJlZEFycmF5QnVmZmVyKFYpIGlzIHRydWUsIHRoZW4gdGhyb3cgYVxuICAvLyAgICBUeXBlRXJyb3IuXG4gIGlmIChvcHRzPy5hbGxvd1NoYXJlZCA9PT0gZmFsc2UgJiYgdHlwZXMuaXNTaGFyZWRBcnJheUJ1ZmZlcihWKSkge1xuICAgIHRocm93IHdlYmlkbC5lcnJvcnMuZXhjZXB0aW9uKHtcbiAgICAgIGhlYWRlcjogJ0FycmF5QnVmZmVyJyxcbiAgICAgIG1lc3NhZ2U6ICdTaGFyZWRBcnJheUJ1ZmZlciBpcyBub3QgYWxsb3dlZC4nXG4gICAgfSlcbiAgfVxuXG4gIC8vIDMuIElmIHRoZSBjb252ZXJzaW9uIGlzIG5vdCB0byBhbiBJREwgdHlwZSBhc3NvY2lhdGVkXG4gIC8vICAgIHdpdGggdGhlIFtBbGxvd1Jlc2l6YWJsZV0gZXh0ZW5kZWQgYXR0cmlidXRlLCBhbmRcbiAgLy8gICAgSXNSZXNpemFibGVBcnJheUJ1ZmZlcihWKSBpcyB0cnVlLCB0aGVuIHRocm93IGFcbiAgLy8gICAgVHlwZUVycm9yLlxuICBpZiAoVi5yZXNpemFibGUgfHwgVi5ncm93YWJsZSkge1xuICAgIHRocm93IHdlYmlkbC5lcnJvcnMuZXhjZXB0aW9uKHtcbiAgICAgIGhlYWRlcjogJ0FycmF5QnVmZmVyJyxcbiAgICAgIG1lc3NhZ2U6ICdSZWNlaXZlZCBhIHJlc2l6YWJsZSBBcnJheUJ1ZmZlci4nXG4gICAgfSlcbiAgfVxuXG4gIC8vIDQuIFJldHVybiB0aGUgSURMIEFycmF5QnVmZmVyIHZhbHVlIHRoYXQgaXMgYVxuICAvLyAgICByZWZlcmVuY2UgdG8gdGhlIHNhbWUgb2JqZWN0IGFzIFYuXG4gIHJldHVybiBWXG59XG5cbndlYmlkbC5jb252ZXJ0ZXJzLlR5cGVkQXJyYXkgPSBmdW5jdGlvbiAoViwgVCwgcHJlZml4LCBuYW1lLCBvcHRzKSB7XG4gIC8vIDEuIExldCBUIGJlIHRoZSBJREwgdHlwZSBWIGlzIGJlaW5nIGNvbnZlcnRlZCB0by5cblxuICAvLyAyLiBJZiBUeXBlKFYpIGlzIG5vdCBPYmplY3QsIG9yIFYgZG9lcyBub3QgaGF2ZSBhXG4gIC8vICAgIFtbVHlwZWRBcnJheU5hbWVdXSBpbnRlcm5hbCBzbG90IHdpdGggYSB2YWx1ZVxuICAvLyAgICBlcXVhbCB0byBUXHUyMDE5cyBuYW1lLCB0aGVuIHRocm93IGEgVHlwZUVycm9yLlxuICBpZiAoXG4gICAgd2ViaWRsLnV0aWwuVHlwZShWKSAhPT0gJ09iamVjdCcgfHxcbiAgICAhdHlwZXMuaXNUeXBlZEFycmF5KFYpIHx8XG4gICAgVi5jb25zdHJ1Y3Rvci5uYW1lICE9PSBULm5hbWVcbiAgKSB7XG4gICAgdGhyb3cgd2ViaWRsLmVycm9ycy5jb252ZXJzaW9uRmFpbGVkKHtcbiAgICAgIHByZWZpeCxcbiAgICAgIGFyZ3VtZW50OiBgJHtuYW1lfSAoXCIke3dlYmlkbC51dGlsLlN0cmluZ2lmeShWKX1cIilgLFxuICAgICAgdHlwZXM6IFtULm5hbWVdXG4gICAgfSlcbiAgfVxuXG4gIC8vIDMuIElmIHRoZSBjb252ZXJzaW9uIGlzIG5vdCB0byBhbiBJREwgdHlwZSBhc3NvY2lhdGVkXG4gIC8vICAgIHdpdGggdGhlIFtBbGxvd1NoYXJlZF0gZXh0ZW5kZWQgYXR0cmlidXRlLCBhbmRcbiAgLy8gICAgSXNTaGFyZWRBcnJheUJ1ZmZlcihWLltbVmlld2VkQXJyYXlCdWZmZXJdXSkgaXNcbiAgLy8gICAgdHJ1ZSwgdGhlbiB0aHJvdyBhIFR5cGVFcnJvci5cbiAgaWYgKG9wdHM/LmFsbG93U2hhcmVkID09PSBmYWxzZSAmJiB0eXBlcy5pc1NoYXJlZEFycmF5QnVmZmVyKFYuYnVmZmVyKSkge1xuICAgIHRocm93IHdlYmlkbC5lcnJvcnMuZXhjZXB0aW9uKHtcbiAgICAgIGhlYWRlcjogJ0FycmF5QnVmZmVyJyxcbiAgICAgIG1lc3NhZ2U6ICdTaGFyZWRBcnJheUJ1ZmZlciBpcyBub3QgYWxsb3dlZC4nXG4gICAgfSlcbiAgfVxuXG4gIC8vIDQuIElmIHRoZSBjb252ZXJzaW9uIGlzIG5vdCB0byBhbiBJREwgdHlwZSBhc3NvY2lhdGVkXG4gIC8vICAgIHdpdGggdGhlIFtBbGxvd1Jlc2l6YWJsZV0gZXh0ZW5kZWQgYXR0cmlidXRlLCBhbmRcbiAgLy8gICAgSXNSZXNpemFibGVBcnJheUJ1ZmZlcihWLltbVmlld2VkQXJyYXlCdWZmZXJdXSkgaXNcbiAgLy8gICAgdHJ1ZSwgdGhlbiB0aHJvdyBhIFR5cGVFcnJvci5cbiAgaWYgKFYuYnVmZmVyLnJlc2l6YWJsZSB8fCBWLmJ1ZmZlci5ncm93YWJsZSkge1xuICAgIHRocm93IHdlYmlkbC5lcnJvcnMuZXhjZXB0aW9uKHtcbiAgICAgIGhlYWRlcjogJ0FycmF5QnVmZmVyJyxcbiAgICAgIG1lc3NhZ2U6ICdSZWNlaXZlZCBhIHJlc2l6YWJsZSBBcnJheUJ1ZmZlci4nXG4gICAgfSlcbiAgfVxuXG4gIC8vIDUuIFJldHVybiB0aGUgSURMIHZhbHVlIG9mIHR5cGUgVCB0aGF0IGlzIGEgcmVmZXJlbmNlXG4gIC8vICAgIHRvIHRoZSBzYW1lIG9iamVjdCBhcyBWLlxuICByZXR1cm4gVlxufVxuXG53ZWJpZGwuY29udmVydGVycy5EYXRhVmlldyA9IGZ1bmN0aW9uIChWLCBwcmVmaXgsIG5hbWUsIG9wdHMpIHtcbiAgLy8gMS4gSWYgVHlwZShWKSBpcyBub3QgT2JqZWN0LCBvciBWIGRvZXMgbm90IGhhdmUgYVxuICAvLyAgICBbW0RhdGFWaWV3XV0gaW50ZXJuYWwgc2xvdCwgdGhlbiB0aHJvdyBhIFR5cGVFcnJvci5cbiAgaWYgKHdlYmlkbC51dGlsLlR5cGUoVikgIT09ICdPYmplY3QnIHx8ICF0eXBlcy5pc0RhdGFWaWV3KFYpKSB7XG4gICAgdGhyb3cgd2ViaWRsLmVycm9ycy5leGNlcHRpb24oe1xuICAgICAgaGVhZGVyOiBwcmVmaXgsXG4gICAgICBtZXNzYWdlOiBgJHtuYW1lfSBpcyBub3QgYSBEYXRhVmlldy5gXG4gICAgfSlcbiAgfVxuXG4gIC8vIDIuIElmIHRoZSBjb252ZXJzaW9uIGlzIG5vdCB0byBhbiBJREwgdHlwZSBhc3NvY2lhdGVkXG4gIC8vICAgIHdpdGggdGhlIFtBbGxvd1NoYXJlZF0gZXh0ZW5kZWQgYXR0cmlidXRlLCBhbmRcbiAgLy8gICAgSXNTaGFyZWRBcnJheUJ1ZmZlcihWLltbVmlld2VkQXJyYXlCdWZmZXJdXSkgaXMgdHJ1ZSxcbiAgLy8gICAgdGhlbiB0aHJvdyBhIFR5cGVFcnJvci5cbiAgaWYgKG9wdHM/LmFsbG93U2hhcmVkID09PSBmYWxzZSAmJiB0eXBlcy5pc1NoYXJlZEFycmF5QnVmZmVyKFYuYnVmZmVyKSkge1xuICAgIHRocm93IHdlYmlkbC5lcnJvcnMuZXhjZXB0aW9uKHtcbiAgICAgIGhlYWRlcjogJ0FycmF5QnVmZmVyJyxcbiAgICAgIG1lc3NhZ2U6ICdTaGFyZWRBcnJheUJ1ZmZlciBpcyBub3QgYWxsb3dlZC4nXG4gICAgfSlcbiAgfVxuXG4gIC8vIDMuIElmIHRoZSBjb252ZXJzaW9uIGlzIG5vdCB0byBhbiBJREwgdHlwZSBhc3NvY2lhdGVkXG4gIC8vICAgIHdpdGggdGhlIFtBbGxvd1Jlc2l6YWJsZV0gZXh0ZW5kZWQgYXR0cmlidXRlLCBhbmRcbiAgLy8gICAgSXNSZXNpemFibGVBcnJheUJ1ZmZlcihWLltbVmlld2VkQXJyYXlCdWZmZXJdXSkgaXNcbiAgLy8gICAgdHJ1ZSwgdGhlbiB0aHJvdyBhIFR5cGVFcnJvci5cbiAgaWYgKFYuYnVmZmVyLnJlc2l6YWJsZSB8fCBWLmJ1ZmZlci5ncm93YWJsZSkge1xuICAgIHRocm93IHdlYmlkbC5lcnJvcnMuZXhjZXB0aW9uKHtcbiAgICAgIGhlYWRlcjogJ0FycmF5QnVmZmVyJyxcbiAgICAgIG1lc3NhZ2U6ICdSZWNlaXZlZCBhIHJlc2l6YWJsZSBBcnJheUJ1ZmZlci4nXG4gICAgfSlcbiAgfVxuXG4gIC8vIDQuIFJldHVybiB0aGUgSURMIERhdGFWaWV3IHZhbHVlIHRoYXQgaXMgYSByZWZlcmVuY2VcbiAgLy8gICAgdG8gdGhlIHNhbWUgb2JqZWN0IGFzIFYuXG4gIHJldHVybiBWXG59XG5cbi8vIGh0dHBzOi8vd2ViaWRsLnNwZWMud2hhdHdnLm9yZy8jQnVmZmVyU291cmNlXG53ZWJpZGwuY29udmVydGVycy5CdWZmZXJTb3VyY2UgPSBmdW5jdGlvbiAoViwgcHJlZml4LCBuYW1lLCBvcHRzKSB7XG4gIGlmICh0eXBlcy5pc0FueUFycmF5QnVmZmVyKFYpKSB7XG4gICAgcmV0dXJuIHdlYmlkbC5jb252ZXJ0ZXJzLkFycmF5QnVmZmVyKFYsIHByZWZpeCwgbmFtZSwgeyAuLi5vcHRzLCBhbGxvd1NoYXJlZDogZmFsc2UgfSlcbiAgfVxuXG4gIGlmICh0eXBlcy5pc1R5cGVkQXJyYXkoVikpIHtcbiAgICByZXR1cm4gd2ViaWRsLmNvbnZlcnRlcnMuVHlwZWRBcnJheShWLCBWLmNvbnN0cnVjdG9yLCBwcmVmaXgsIG5hbWUsIHsgLi4ub3B0cywgYWxsb3dTaGFyZWQ6IGZhbHNlIH0pXG4gIH1cblxuICBpZiAodHlwZXMuaXNEYXRhVmlldyhWKSkge1xuICAgIHJldHVybiB3ZWJpZGwuY29udmVydGVycy5EYXRhVmlldyhWLCBwcmVmaXgsIG5hbWUsIHsgLi4ub3B0cywgYWxsb3dTaGFyZWQ6IGZhbHNlIH0pXG4gIH1cblxuICB0aHJvdyB3ZWJpZGwuZXJyb3JzLmNvbnZlcnNpb25GYWlsZWQoe1xuICAgIHByZWZpeCxcbiAgICBhcmd1bWVudDogYCR7bmFtZX0gKFwiJHt3ZWJpZGwudXRpbC5TdHJpbmdpZnkoVil9XCIpYCxcbiAgICB0eXBlczogWydCdWZmZXJTb3VyY2UnXVxuICB9KVxufVxuXG53ZWJpZGwuY29udmVydGVyc1snc2VxdWVuY2U8Qnl0ZVN0cmluZz4nXSA9IHdlYmlkbC5zZXF1ZW5jZUNvbnZlcnRlcihcbiAgd2ViaWRsLmNvbnZlcnRlcnMuQnl0ZVN0cmluZ1xuKVxuXG53ZWJpZGwuY29udmVydGVyc1snc2VxdWVuY2U8c2VxdWVuY2U8Qnl0ZVN0cmluZz4+J10gPSB3ZWJpZGwuc2VxdWVuY2VDb252ZXJ0ZXIoXG4gIHdlYmlkbC5jb252ZXJ0ZXJzWydzZXF1ZW5jZTxCeXRlU3RyaW5nPiddXG4pXG5cbndlYmlkbC5jb252ZXJ0ZXJzWydyZWNvcmQ8Qnl0ZVN0cmluZywgQnl0ZVN0cmluZz4nXSA9IHdlYmlkbC5yZWNvcmRDb252ZXJ0ZXIoXG4gIHdlYmlkbC5jb252ZXJ0ZXJzLkJ5dGVTdHJpbmcsXG4gIHdlYmlkbC5jb252ZXJ0ZXJzLkJ5dGVTdHJpbmdcbilcblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gIHdlYmlkbFxufVxuIiwgIid1c2Ugc3RyaWN0J1xuXG5jb25zdCB7IFRyYW5zZm9ybSB9ID0gcmVxdWlyZSgnbm9kZTpzdHJlYW0nKVxuY29uc3QgemxpYiA9IHJlcXVpcmUoJ25vZGU6emxpYicpXG5jb25zdCB7IHJlZGlyZWN0U3RhdHVzU2V0LCByZWZlcnJlclBvbGljeVNldDogcmVmZXJyZXJQb2xpY3lUb2tlbnMsIGJhZFBvcnRzU2V0IH0gPSByZXF1aXJlKCcuL2NvbnN0YW50cycpXG5jb25zdCB7IGdldEdsb2JhbE9yaWdpbiB9ID0gcmVxdWlyZSgnLi9nbG9iYWwnKVxuY29uc3QgeyBjb2xsZWN0QVNlcXVlbmNlT2ZDb2RlUG9pbnRzLCBjb2xsZWN0QW5IVFRQUXVvdGVkU3RyaW5nLCByZW1vdmVDaGFycywgcGFyc2VNSU1FVHlwZSB9ID0gcmVxdWlyZSgnLi9kYXRhLXVybCcpXG5jb25zdCB7IHBlcmZvcm1hbmNlIH0gPSByZXF1aXJlKCdub2RlOnBlcmZfaG9va3MnKVxuY29uc3QgeyBpc0Jsb2JMaWtlLCBSZWFkYWJsZVN0cmVhbUZyb20sIGlzVmFsaWRIVFRQVG9rZW4sIG5vcm1hbGl6ZWRNZXRob2RSZWNvcmRzQmFzZSB9ID0gcmVxdWlyZSgnLi4vLi4vY29yZS91dGlsJylcbmNvbnN0IGFzc2VydCA9IHJlcXVpcmUoJ25vZGU6YXNzZXJ0JylcbmNvbnN0IHsgaXNVaW50OEFycmF5IH0gPSByZXF1aXJlKCdub2RlOnV0aWwvdHlwZXMnKVxuY29uc3QgeyB3ZWJpZGwgfSA9IHJlcXVpcmUoJy4vd2ViaWRsJylcblxubGV0IHN1cHBvcnRlZEhhc2hlcyA9IFtdXG5cbi8vIGh0dHBzOi8vbm9kZWpzLm9yZy9hcGkvY3J5cHRvLmh0bWwjZGV0ZXJtaW5pbmctaWYtY3J5cHRvLXN1cHBvcnQtaXMtdW5hdmFpbGFibGVcbi8qKiBAdHlwZSB7aW1wb3J0KCdjcnlwdG8nKX0gKi9cbmxldCBjcnlwdG9cbnRyeSB7XG4gIGNyeXB0byA9IHJlcXVpcmUoJ25vZGU6Y3J5cHRvJylcbiAgY29uc3QgcG9zc2libGVSZWxldmFudEhhc2hlcyA9IFsnc2hhMjU2JywgJ3NoYTM4NCcsICdzaGE1MTInXVxuICBzdXBwb3J0ZWRIYXNoZXMgPSBjcnlwdG8uZ2V0SGFzaGVzKCkuZmlsdGVyKChoYXNoKSA9PiBwb3NzaWJsZVJlbGV2YW50SGFzaGVzLmluY2x1ZGVzKGhhc2gpKVxuLyogYzggaWdub3JlIG5leHQgMyAqL1xufSBjYXRjaCB7XG5cbn1cblxuZnVuY3Rpb24gcmVzcG9uc2VVUkwgKHJlc3BvbnNlKSB7XG4gIC8vIGh0dHBzOi8vZmV0Y2guc3BlYy53aGF0d2cub3JnLyNyZXNwb25zZXNcbiAgLy8gQSByZXNwb25zZSBoYXMgYW4gYXNzb2NpYXRlZCBVUkwuIEl0IGlzIGEgcG9pbnRlciB0byB0aGUgbGFzdCBVUkxcbiAgLy8gaW4gcmVzcG9uc2VcdTIwMTlzIFVSTCBsaXN0IGFuZCBudWxsIGlmIHJlc3BvbnNlXHUyMDE5cyBVUkwgbGlzdCBpcyBlbXB0eS5cbiAgY29uc3QgdXJsTGlzdCA9IHJlc3BvbnNlLnVybExpc3RcbiAgY29uc3QgbGVuZ3RoID0gdXJsTGlzdC5sZW5ndGhcbiAgcmV0dXJuIGxlbmd0aCA9PT0gMCA/IG51bGwgOiB1cmxMaXN0W2xlbmd0aCAtIDFdLnRvU3RyaW5nKClcbn1cblxuLy8gaHR0cHM6Ly9mZXRjaC5zcGVjLndoYXR3Zy5vcmcvI2NvbmNlcHQtcmVzcG9uc2UtbG9jYXRpb24tdXJsXG5mdW5jdGlvbiByZXNwb25zZUxvY2F0aW9uVVJMIChyZXNwb25zZSwgcmVxdWVzdEZyYWdtZW50KSB7XG4gIC8vIDEuIElmIHJlc3BvbnNlXHUyMDE5cyBzdGF0dXMgaXMgbm90IGEgcmVkaXJlY3Qgc3RhdHVzLCB0aGVuIHJldHVybiBudWxsLlxuICBpZiAoIXJlZGlyZWN0U3RhdHVzU2V0LmhhcyhyZXNwb25zZS5zdGF0dXMpKSB7XG4gICAgcmV0dXJuIG51bGxcbiAgfVxuXG4gIC8vIDIuIExldCBsb2NhdGlvbiBiZSB0aGUgcmVzdWx0IG9mIGV4dHJhY3RpbmcgaGVhZGVyIGxpc3QgdmFsdWVzIGdpdmVuXG4gIC8vIGBMb2NhdGlvbmAgYW5kIHJlc3BvbnNlXHUyMDE5cyBoZWFkZXIgbGlzdC5cbiAgbGV0IGxvY2F0aW9uID0gcmVzcG9uc2UuaGVhZGVyc0xpc3QuZ2V0KCdsb2NhdGlvbicsIHRydWUpXG5cbiAgLy8gMy4gSWYgbG9jYXRpb24gaXMgYSBoZWFkZXIgdmFsdWUsIHRoZW4gc2V0IGxvY2F0aW9uIHRvIHRoZSByZXN1bHQgb2ZcbiAgLy8gICAgcGFyc2luZyBsb2NhdGlvbiB3aXRoIHJlc3BvbnNlXHUyMDE5cyBVUkwuXG4gIGlmIChsb2NhdGlvbiAhPT0gbnVsbCAmJiBpc1ZhbGlkSGVhZGVyVmFsdWUobG9jYXRpb24pKSB7XG4gICAgaWYgKCFpc1ZhbGlkRW5jb2RlZFVSTChsb2NhdGlvbikpIHtcbiAgICAgIC8vIFNvbWUgd2Vic2l0ZXMgcmVzcG9uZCBsb2NhdGlvbiBoZWFkZXIgaW4gVVRGLTggZm9ybSB3aXRob3V0IGVuY29kaW5nIHRoZW0gYXMgQVNDSUlcbiAgICAgIC8vIGFuZCBtYWpvciBicm93c2VycyByZWRpcmVjdCB0aGVtIHRvIGNvcnJlY3RseSBVVEYtOCBlbmNvZGVkIGFkZHJlc3Nlcy5cbiAgICAgIC8vIEhlcmUsIHdlIGhhbmRsZSB0aGF0IGJlaGF2aW9yIGluIHRoZSBzYW1lIHdheS5cbiAgICAgIGxvY2F0aW9uID0gbm9ybWFsaXplQmluYXJ5U3RyaW5nVG9VdGY4KGxvY2F0aW9uKVxuICAgIH1cbiAgICBsb2NhdGlvbiA9IG5ldyBVUkwobG9jYXRpb24sIHJlc3BvbnNlVVJMKHJlc3BvbnNlKSlcbiAgfVxuXG4gIC8vIDQuIElmIGxvY2F0aW9uIGlzIGEgVVJMIHdob3NlIGZyYWdtZW50IGlzIG51bGwsIHRoZW4gc2V0IGxvY2F0aW9uXHUyMDE5c1xuICAvLyBmcmFnbWVudCB0byByZXF1ZXN0RnJhZ21lbnQuXG4gIGlmIChsb2NhdGlvbiAmJiAhbG9jYXRpb24uaGFzaCkge1xuICAgIGxvY2F0aW9uLmhhc2ggPSByZXF1ZXN0RnJhZ21lbnRcbiAgfVxuXG4gIC8vIDUuIFJldHVybiBsb2NhdGlvbi5cbiAgcmV0dXJuIGxvY2F0aW9uXG59XG5cbi8qKlxuICogQHNlZSBodHRwczovL3d3dy5yZmMtZWRpdG9yLm9yZy9yZmMvcmZjMTczOCNzZWN0aW9uLTIuMlxuICogQHBhcmFtIHtzdHJpbmd9IHVybFxuICogQHJldHVybnMge2Jvb2xlYW59XG4gKi9cbmZ1bmN0aW9uIGlzVmFsaWRFbmNvZGVkVVJMICh1cmwpIHtcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCB1cmwubGVuZ3RoOyArK2kpIHtcbiAgICBjb25zdCBjb2RlID0gdXJsLmNoYXJDb2RlQXQoaSlcblxuICAgIGlmIChcbiAgICAgIGNvZGUgPiAweDdFIHx8IC8vIE5vbi1VUy1BU0NJSSArIERFTFxuICAgICAgY29kZSA8IDB4MjAgLy8gQ29udHJvbCBjaGFyYWN0ZXJzIE5VTCAtIFVTXG4gICAgKSB7XG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHRydWVcbn1cblxuLyoqXG4gKiBJZiBzdHJpbmcgY29udGFpbnMgbm9uLUFTQ0lJIGNoYXJhY3RlcnMsIGFzc3VtZXMgaXQncyBVVEYtOCBlbmNvZGVkIGFuZCBkZWNvZGVzIGl0LlxuICogU2luY2UgVVRGLTggaXMgYSBzdXBlcnNldCBvZiBBU0NJSSwgdGhpcyB3aWxsIHdvcmsgZm9yIEFTQ0lJIHN0cmluZ3MgYXMgd2VsbC5cbiAqIEBwYXJhbSB7c3RyaW5nfSB2YWx1ZVxuICogQHJldHVybnMge3N0cmluZ31cbiAqL1xuZnVuY3Rpb24gbm9ybWFsaXplQmluYXJ5U3RyaW5nVG9VdGY4ICh2YWx1ZSkge1xuICByZXR1cm4gQnVmZmVyLmZyb20odmFsdWUsICdiaW5hcnknKS50b1N0cmluZygndXRmOCcpXG59XG5cbi8qKiBAcmV0dXJucyB7VVJMfSAqL1xuZnVuY3Rpb24gcmVxdWVzdEN1cnJlbnRVUkwgKHJlcXVlc3QpIHtcbiAgcmV0dXJuIHJlcXVlc3QudXJsTGlzdFtyZXF1ZXN0LnVybExpc3QubGVuZ3RoIC0gMV1cbn1cblxuZnVuY3Rpb24gcmVxdWVzdEJhZFBvcnQgKHJlcXVlc3QpIHtcbiAgLy8gMS4gTGV0IHVybCBiZSByZXF1ZXN0XHUyMDE5cyBjdXJyZW50IFVSTC5cbiAgY29uc3QgdXJsID0gcmVxdWVzdEN1cnJlbnRVUkwocmVxdWVzdClcblxuICAvLyAyLiBJZiB1cmxcdTIwMTlzIHNjaGVtZSBpcyBhbiBIVFRQKFMpIHNjaGVtZSBhbmQgdXJsXHUyMDE5cyBwb3J0IGlzIGEgYmFkIHBvcnQsXG4gIC8vIHRoZW4gcmV0dXJuIGJsb2NrZWQuXG4gIGlmICh1cmxJc0h0dHBIdHRwc1NjaGVtZSh1cmwpICYmIGJhZFBvcnRzU2V0Lmhhcyh1cmwucG9ydCkpIHtcbiAgICByZXR1cm4gJ2Jsb2NrZWQnXG4gIH1cblxuICAvLyAzLiBSZXR1cm4gYWxsb3dlZC5cbiAgcmV0dXJuICdhbGxvd2VkJ1xufVxuXG5mdW5jdGlvbiBpc0Vycm9yTGlrZSAob2JqZWN0KSB7XG4gIHJldHVybiBvYmplY3QgaW5zdGFuY2VvZiBFcnJvciB8fCAoXG4gICAgb2JqZWN0Py5jb25zdHJ1Y3Rvcj8ubmFtZSA9PT0gJ0Vycm9yJyB8fFxuICAgIG9iamVjdD8uY29uc3RydWN0b3I/Lm5hbWUgPT09ICdET01FeGNlcHRpb24nXG4gIClcbn1cblxuLy8gQ2hlY2sgd2hldGhlciB8c3RhdHVzVGV4dHwgaXMgYSBCeXRlU3RyaW5nIGFuZFxuLy8gbWF0Y2hlcyB0aGUgUmVhc29uLVBocmFzZSB0b2tlbiBwcm9kdWN0aW9uLlxuLy8gUkZDIDI2MTY6IGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmMyNjE2XG4vLyBSRkMgNzIzMDogaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzcyMzBcbi8vIFwicmVhc29uLXBocmFzZSA9ICooIEhUQUIgLyBTUCAvIFZDSEFSIC8gb2JzLXRleHQgKVwiXG4vLyBodHRwczovL2dpdGh1Yi5jb20vY2hyb21pdW0vY2hyb21pdW0vYmxvYi85NC4wLjQ2MDQuMS90aGlyZF9wYXJ0eS9ibGluay9yZW5kZXJlci9jb3JlL2ZldGNoL3Jlc3BvbnNlLmNjI0wxMTZcbmZ1bmN0aW9uIGlzVmFsaWRSZWFzb25QaHJhc2UgKHN0YXR1c1RleHQpIHtcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBzdGF0dXNUZXh0Lmxlbmd0aDsgKytpKSB7XG4gICAgY29uc3QgYyA9IHN0YXR1c1RleHQuY2hhckNvZGVBdChpKVxuICAgIGlmIChcbiAgICAgICEoXG4gICAgICAgIChcbiAgICAgICAgICBjID09PSAweDA5IHx8IC8vIEhUQUJcbiAgICAgICAgICAoYyA+PSAweDIwICYmIGMgPD0gMHg3ZSkgfHwgLy8gU1AgLyBWQ0hBUlxuICAgICAgICAgIChjID49IDB4ODAgJiYgYyA8PSAweGZmKVxuICAgICAgICApIC8vIG9icy10ZXh0XG4gICAgICApXG4gICAgKSB7XG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHRydWVcbn1cblxuLyoqXG4gKiBAc2VlIGh0dHBzOi8vZmV0Y2guc3BlYy53aGF0d2cub3JnLyNoZWFkZXItbmFtZVxuICogQHBhcmFtIHtzdHJpbmd9IHBvdGVudGlhbFZhbHVlXG4gKi9cbmNvbnN0IGlzVmFsaWRIZWFkZXJOYW1lID0gaXNWYWxpZEhUVFBUb2tlblxuXG4vKipcbiAqIEBzZWUgaHR0cHM6Ly9mZXRjaC5zcGVjLndoYXR3Zy5vcmcvI2hlYWRlci12YWx1ZVxuICogQHBhcmFtIHtzdHJpbmd9IHBvdGVudGlhbFZhbHVlXG4gKi9cbmZ1bmN0aW9uIGlzVmFsaWRIZWFkZXJWYWx1ZSAocG90ZW50aWFsVmFsdWUpIHtcbiAgLy8gLSBIYXMgbm8gbGVhZGluZyBvciB0cmFpbGluZyBIVFRQIHRhYiBvciBzcGFjZSBieXRlcy5cbiAgLy8gLSBDb250YWlucyBubyAweDAwIChOVUwpIG9yIEhUVFAgbmV3bGluZSBieXRlcy5cbiAgcmV0dXJuIChcbiAgICBwb3RlbnRpYWxWYWx1ZVswXSA9PT0gJ1xcdCcgfHxcbiAgICBwb3RlbnRpYWxWYWx1ZVswXSA9PT0gJyAnIHx8XG4gICAgcG90ZW50aWFsVmFsdWVbcG90ZW50aWFsVmFsdWUubGVuZ3RoIC0gMV0gPT09ICdcXHQnIHx8XG4gICAgcG90ZW50aWFsVmFsdWVbcG90ZW50aWFsVmFsdWUubGVuZ3RoIC0gMV0gPT09ICcgJyB8fFxuICAgIHBvdGVudGlhbFZhbHVlLmluY2x1ZGVzKCdcXG4nKSB8fFxuICAgIHBvdGVudGlhbFZhbHVlLmluY2x1ZGVzKCdcXHInKSB8fFxuICAgIHBvdGVudGlhbFZhbHVlLmluY2x1ZGVzKCdcXDAnKVxuICApID09PSBmYWxzZVxufVxuXG4vLyBodHRwczovL3czYy5naXRodWIuaW8vd2ViYXBwc2VjLXJlZmVycmVyLXBvbGljeS8jc2V0LXJlcXVlc3RzLXJlZmVycmVyLXBvbGljeS1vbi1yZWRpcmVjdFxuZnVuY3Rpb24gc2V0UmVxdWVzdFJlZmVycmVyUG9saWN5T25SZWRpcmVjdCAocmVxdWVzdCwgYWN0dWFsUmVzcG9uc2UpIHtcbiAgLy8gIEdpdmVuIGEgcmVxdWVzdCByZXF1ZXN0IGFuZCBhIHJlc3BvbnNlIGFjdHVhbFJlc3BvbnNlLCB0aGlzIGFsZ29yaXRobVxuICAvLyAgdXBkYXRlcyByZXF1ZXN0XHUyMDE5cyByZWZlcnJlciBwb2xpY3kgYWNjb3JkaW5nIHRvIHRoZSBSZWZlcnJlci1Qb2xpY3lcbiAgLy8gIGhlYWRlciAoaWYgYW55KSBpbiBhY3R1YWxSZXNwb25zZS5cblxuICAvLyAxLiBMZXQgcG9saWN5IGJlIHRoZSByZXN1bHQgb2YgZXhlY3V0aW5nIFx1MDBBNyA4LjEgUGFyc2UgYSByZWZlcnJlciBwb2xpY3lcbiAgLy8gZnJvbSBhIFJlZmVycmVyLVBvbGljeSBoZWFkZXIgb24gYWN0dWFsUmVzcG9uc2UuXG5cbiAgLy8gOC4xIFBhcnNlIGEgcmVmZXJyZXIgcG9saWN5IGZyb20gYSBSZWZlcnJlci1Qb2xpY3kgaGVhZGVyXG4gIC8vIDEuIExldCBwb2xpY3ktdG9rZW5zIGJlIHRoZSByZXN1bHQgb2YgZXh0cmFjdGluZyBoZWFkZXIgbGlzdCB2YWx1ZXMgZ2l2ZW4gYFJlZmVycmVyLVBvbGljeWAgYW5kIHJlc3BvbnNlXHUyMDE5cyBoZWFkZXIgbGlzdC5cbiAgY29uc3QgeyBoZWFkZXJzTGlzdCB9ID0gYWN0dWFsUmVzcG9uc2VcbiAgLy8gMi4gTGV0IHBvbGljeSBiZSB0aGUgZW1wdHkgc3RyaW5nLlxuICAvLyAzLiBGb3IgZWFjaCB0b2tlbiBpbiBwb2xpY3ktdG9rZW5zLCBpZiB0b2tlbiBpcyBhIHJlZmVycmVyIHBvbGljeSBhbmQgdG9rZW4gaXMgbm90IHRoZSBlbXB0eSBzdHJpbmcsIHRoZW4gc2V0IHBvbGljeSB0byB0b2tlbi5cbiAgLy8gNC4gUmV0dXJuIHBvbGljeS5cbiAgY29uc3QgcG9saWN5SGVhZGVyID0gKGhlYWRlcnNMaXN0LmdldCgncmVmZXJyZXItcG9saWN5JywgdHJ1ZSkgPz8gJycpLnNwbGl0KCcsJylcblxuICAvLyBOb3RlOiBBcyB0aGUgcmVmZXJyZXItcG9saWN5IGNhbiBjb250YWluIG11bHRpcGxlIHBvbGljaWVzXG4gIC8vIHNlcGFyYXRlZCBieSBjb21tYSwgd2UgbmVlZCB0byBsb29wIHRocm91Z2ggYWxsIG9mIHRoZW1cbiAgLy8gYW5kIHBpY2sgdGhlIGZpcnN0IHZhbGlkIG9uZS5cbiAgLy8gUmVmOiBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9IVFRQL0hlYWRlcnMvUmVmZXJyZXItUG9saWN5I3NwZWNpZnlfYV9mYWxsYmFja19wb2xpY3lcbiAgbGV0IHBvbGljeSA9ICcnXG4gIGlmIChwb2xpY3lIZWFkZXIubGVuZ3RoID4gMCkge1xuICAgIC8vIFRoZSByaWdodC1tb3N0IHBvbGljeSB0YWtlcyBwcmVjZWRlbmNlLlxuICAgIC8vIFRoZSBsZWZ0LW1vc3QgcG9saWN5IGlzIHRoZSBmYWxsYmFjay5cbiAgICBmb3IgKGxldCBpID0gcG9saWN5SGVhZGVyLmxlbmd0aDsgaSAhPT0gMDsgaS0tKSB7XG4gICAgICBjb25zdCB0b2tlbiA9IHBvbGljeUhlYWRlcltpIC0gMV0udHJpbSgpXG4gICAgICBpZiAocmVmZXJyZXJQb2xpY3lUb2tlbnMuaGFzKHRva2VuKSkge1xuICAgICAgICBwb2xpY3kgPSB0b2tlblxuICAgICAgICBicmVha1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIDIuIElmIHBvbGljeSBpcyBub3QgdGhlIGVtcHR5IHN0cmluZywgdGhlbiBzZXQgcmVxdWVzdFx1MjAxOXMgcmVmZXJyZXIgcG9saWN5IHRvIHBvbGljeS5cbiAgaWYgKHBvbGljeSAhPT0gJycpIHtcbiAgICByZXF1ZXN0LnJlZmVycmVyUG9saWN5ID0gcG9saWN5XG4gIH1cbn1cblxuLy8gaHR0cHM6Ly9mZXRjaC5zcGVjLndoYXR3Zy5vcmcvI2Nyb3NzLW9yaWdpbi1yZXNvdXJjZS1wb2xpY3ktY2hlY2tcbmZ1bmN0aW9uIGNyb3NzT3JpZ2luUmVzb3VyY2VQb2xpY3lDaGVjayAoKSB7XG4gIC8vIFRPRE9cbiAgcmV0dXJuICdhbGxvd2VkJ1xufVxuXG4vLyBodHRwczovL2ZldGNoLnNwZWMud2hhdHdnLm9yZy8jY29uY2VwdC1jb3JzLWNoZWNrXG5mdW5jdGlvbiBjb3JzQ2hlY2sgKCkge1xuICAvLyBUT0RPXG4gIHJldHVybiAnc3VjY2Vzcydcbn1cblxuLy8gaHR0cHM6Ly9mZXRjaC5zcGVjLndoYXR3Zy5vcmcvI2NvbmNlcHQtdGFvLWNoZWNrXG5mdW5jdGlvbiBUQU9DaGVjayAoKSB7XG4gIC8vIFRPRE9cbiAgcmV0dXJuICdzdWNjZXNzJ1xufVxuXG5mdW5jdGlvbiBhcHBlbmRGZXRjaE1ldGFkYXRhIChodHRwUmVxdWVzdCkge1xuICAvLyAgaHR0cHM6Ly93M2MuZ2l0aHViLmlvL3dlYmFwcHNlYy1mZXRjaC1tZXRhZGF0YS8jc2VjLWZldGNoLWRlc3QtaGVhZGVyXG4gIC8vICBUT0RPXG5cbiAgLy8gIGh0dHBzOi8vdzNjLmdpdGh1Yi5pby93ZWJhcHBzZWMtZmV0Y2gtbWV0YWRhdGEvI3NlYy1mZXRjaC1tb2RlLWhlYWRlclxuXG4gIC8vICAxLiBBc3NlcnQ6IHJcdTIwMTlzIHVybCBpcyBhIHBvdGVudGlhbGx5IHRydXN0d29ydGh5IFVSTC5cbiAgLy8gIFRPRE9cblxuICAvLyAgMi4gTGV0IGhlYWRlciBiZSBhIFN0cnVjdHVyZWQgSGVhZGVyIHdob3NlIHZhbHVlIGlzIGEgdG9rZW4uXG4gIGxldCBoZWFkZXIgPSBudWxsXG5cbiAgLy8gIDMuIFNldCBoZWFkZXJcdTIwMTlzIHZhbHVlIHRvIHJcdTIwMTlzIG1vZGUuXG4gIGhlYWRlciA9IGh0dHBSZXF1ZXN0Lm1vZGVcblxuICAvLyAgNC4gU2V0IGEgc3RydWN0dXJlZCBmaWVsZCB2YWx1ZSBgU2VjLUZldGNoLU1vZGVgL2hlYWRlciBpbiByXHUyMDE5cyBoZWFkZXIgbGlzdC5cbiAgaHR0cFJlcXVlc3QuaGVhZGVyc0xpc3Quc2V0KCdzZWMtZmV0Y2gtbW9kZScsIGhlYWRlciwgdHJ1ZSlcblxuICAvLyAgaHR0cHM6Ly93M2MuZ2l0aHViLmlvL3dlYmFwcHNlYy1mZXRjaC1tZXRhZGF0YS8jc2VjLWZldGNoLXNpdGUtaGVhZGVyXG4gIC8vICBUT0RPXG5cbiAgLy8gIGh0dHBzOi8vdzNjLmdpdGh1Yi5pby93ZWJhcHBzZWMtZmV0Y2gtbWV0YWRhdGEvI3NlYy1mZXRjaC11c2VyLWhlYWRlclxuICAvLyAgVE9ET1xufVxuXG4vLyBodHRwczovL2ZldGNoLnNwZWMud2hhdHdnLm9yZy8jYXBwZW5kLWEtcmVxdWVzdC1vcmlnaW4taGVhZGVyXG5mdW5jdGlvbiBhcHBlbmRSZXF1ZXN0T3JpZ2luSGVhZGVyIChyZXF1ZXN0KSB7XG4gIC8vIDEuIExldCBzZXJpYWxpemVkT3JpZ2luIGJlIHRoZSByZXN1bHQgb2YgYnl0ZS1zZXJpYWxpemluZyBhIHJlcXVlc3Qgb3JpZ2luXG4gIC8vICAgIHdpdGggcmVxdWVzdC5cbiAgLy8gVE9ETzogaW1wbGVtZW50IFwiYnl0ZS1zZXJpYWxpemluZyBhIHJlcXVlc3Qgb3JpZ2luXCJcbiAgbGV0IHNlcmlhbGl6ZWRPcmlnaW4gPSByZXF1ZXN0Lm9yaWdpblxuXG4gIC8vIC0gXCInY2xpZW50JyBpcyBjaGFuZ2VkIHRvIGFuIG9yaWdpbiBkdXJpbmcgZmV0Y2hpbmcuXCJcbiAgLy8gICBUaGlzIGRvZXNuJ3QgaGFwcGVuIGluIHVuZGljaSAoaW4gbW9zdCBjYXNlcykgYmVjYXVzZSB1bmRpY2ksIGJ5IGRlZmF1bHQsXG4gIC8vICAgaGFzIG5vIGNvbmNlcHQgb2Ygb3JpZ2luLlxuICAvLyAtIHJlcXVlc3Qub3JpZ2luIGNhbiBhbHNvIGJlIHNldCB0byByZXF1ZXN0LmNsaWVudC5vcmlnaW4gKGNsaWVudCBiZWluZ1xuICAvLyAgIGFuIGVudmlyb25tZW50IHNldHRpbmdzIG9iamVjdCksIHdoaWNoIGlzIHVuZGVmaW5lZCB3aXRob3V0IHVzaW5nXG4gIC8vICAgc2V0R2xvYmFsT3JpZ2luLlxuICBpZiAoc2VyaWFsaXplZE9yaWdpbiA9PT0gJ2NsaWVudCcgfHwgc2VyaWFsaXplZE9yaWdpbiA9PT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuXG4gIH1cblxuICAvLyAyLiBJZiByZXF1ZXN0XHUyMDE5cyByZXNwb25zZSB0YWludGluZyBpcyBcImNvcnNcIiBvciByZXF1ZXN0XHUyMDE5cyBtb2RlIGlzIFwid2Vic29ja2V0XCIsXG4gIC8vICAgIHRoZW4gYXBwZW5kIChgT3JpZ2luYCwgc2VyaWFsaXplZE9yaWdpbikgdG8gcmVxdWVzdFx1MjAxOXMgaGVhZGVyIGxpc3QuXG4gIC8vIDMuIE90aGVyd2lzZSwgaWYgcmVxdWVzdFx1MjAxOXMgbWV0aG9kIGlzIG5laXRoZXIgYEdFVGAgbm9yIGBIRUFEYCwgdGhlbjpcbiAgaWYgKHJlcXVlc3QucmVzcG9uc2VUYWludGluZyA9PT0gJ2NvcnMnIHx8IHJlcXVlc3QubW9kZSA9PT0gJ3dlYnNvY2tldCcpIHtcbiAgICByZXF1ZXN0LmhlYWRlcnNMaXN0LmFwcGVuZCgnb3JpZ2luJywgc2VyaWFsaXplZE9yaWdpbiwgdHJ1ZSlcbiAgfSBlbHNlIGlmIChyZXF1ZXN0Lm1ldGhvZCAhPT0gJ0dFVCcgJiYgcmVxdWVzdC5tZXRob2QgIT09ICdIRUFEJykge1xuICAgIC8vIDEuIFN3aXRjaCBvbiByZXF1ZXN0XHUyMDE5cyByZWZlcnJlciBwb2xpY3k6XG4gICAgc3dpdGNoIChyZXF1ZXN0LnJlZmVycmVyUG9saWN5KSB7XG4gICAgICBjYXNlICduby1yZWZlcnJlcic6XG4gICAgICAgIC8vIFNldCBzZXJpYWxpemVkT3JpZ2luIHRvIGBudWxsYC5cbiAgICAgICAgc2VyaWFsaXplZE9yaWdpbiA9IG51bGxcbiAgICAgICAgYnJlYWtcbiAgICAgIGNhc2UgJ25vLXJlZmVycmVyLXdoZW4tZG93bmdyYWRlJzpcbiAgICAgIGNhc2UgJ3N0cmljdC1vcmlnaW4nOlxuICAgICAgY2FzZSAnc3RyaWN0LW9yaWdpbi13aGVuLWNyb3NzLW9yaWdpbic6XG4gICAgICAgIC8vIElmIHJlcXVlc3RcdTIwMTlzIG9yaWdpbiBpcyBhIHR1cGxlIG9yaWdpbiwgaXRzIHNjaGVtZSBpcyBcImh0dHBzXCIsIGFuZFxuICAgICAgICAvLyByZXF1ZXN0XHUyMDE5cyBjdXJyZW50IFVSTFx1MjAxOXMgc2NoZW1lIGlzIG5vdCBcImh0dHBzXCIsIHRoZW4gc2V0XG4gICAgICAgIC8vIHNlcmlhbGl6ZWRPcmlnaW4gdG8gYG51bGxgLlxuICAgICAgICBpZiAocmVxdWVzdC5vcmlnaW4gJiYgdXJsSGFzSHR0cHNTY2hlbWUocmVxdWVzdC5vcmlnaW4pICYmICF1cmxIYXNIdHRwc1NjaGVtZShyZXF1ZXN0Q3VycmVudFVSTChyZXF1ZXN0KSkpIHtcbiAgICAgICAgICBzZXJpYWxpemVkT3JpZ2luID0gbnVsbFxuICAgICAgICB9XG4gICAgICAgIGJyZWFrXG4gICAgICBjYXNlICdzYW1lLW9yaWdpbic6XG4gICAgICAgIC8vIElmIHJlcXVlc3RcdTIwMTlzIG9yaWdpbiBpcyBub3Qgc2FtZSBvcmlnaW4gd2l0aCByZXF1ZXN0XHUyMDE5cyBjdXJyZW50IFVSTFx1MjAxOXNcbiAgICAgICAgLy8gb3JpZ2luLCB0aGVuIHNldCBzZXJpYWxpemVkT3JpZ2luIHRvIGBudWxsYC5cbiAgICAgICAgaWYgKCFzYW1lT3JpZ2luKHJlcXVlc3QsIHJlcXVlc3RDdXJyZW50VVJMKHJlcXVlc3QpKSkge1xuICAgICAgICAgIHNlcmlhbGl6ZWRPcmlnaW4gPSBudWxsXG4gICAgICAgIH1cbiAgICAgICAgYnJlYWtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIC8vIERvIG5vdGhpbmcuXG4gICAgfVxuXG4gICAgLy8gMi4gQXBwZW5kIChgT3JpZ2luYCwgc2VyaWFsaXplZE9yaWdpbikgdG8gcmVxdWVzdFx1MjAxOXMgaGVhZGVyIGxpc3QuXG4gICAgcmVxdWVzdC5oZWFkZXJzTGlzdC5hcHBlbmQoJ29yaWdpbicsIHNlcmlhbGl6ZWRPcmlnaW4sIHRydWUpXG4gIH1cbn1cblxuLy8gaHR0cHM6Ly93M2MuZ2l0aHViLmlvL2hyLXRpbWUvI2Rmbi1jb2Fyc2VuLXRpbWVcbmZ1bmN0aW9uIGNvYXJzZW5UaW1lICh0aW1lc3RhbXAsIGNyb3NzT3JpZ2luSXNvbGF0ZWRDYXBhYmlsaXR5KSB7XG4gIC8vIFRPRE9cbiAgcmV0dXJuIHRpbWVzdGFtcFxufVxuXG4vLyBodHRwczovL2ZldGNoLnNwZWMud2hhdHdnLm9yZy8jY2xhbXAtYW5kLWNvYXJzZW4tY29ubmVjdGlvbi10aW1pbmctaW5mb1xuZnVuY3Rpb24gY2xhbXBBbmRDb2Fyc2VuQ29ubmVjdGlvblRpbWluZ0luZm8gKGNvbm5lY3Rpb25UaW1pbmdJbmZvLCBkZWZhdWx0U3RhcnRUaW1lLCBjcm9zc09yaWdpbklzb2xhdGVkQ2FwYWJpbGl0eSkge1xuICBpZiAoIWNvbm5lY3Rpb25UaW1pbmdJbmZvPy5zdGFydFRpbWUgfHwgY29ubmVjdGlvblRpbWluZ0luZm8uc3RhcnRUaW1lIDwgZGVmYXVsdFN0YXJ0VGltZSkge1xuICAgIHJldHVybiB7XG4gICAgICBkb21haW5Mb29rdXBTdGFydFRpbWU6IGRlZmF1bHRTdGFydFRpbWUsXG4gICAgICBkb21haW5Mb29rdXBFbmRUaW1lOiBkZWZhdWx0U3RhcnRUaW1lLFxuICAgICAgY29ubmVjdGlvblN0YXJ0VGltZTogZGVmYXVsdFN0YXJ0VGltZSxcbiAgICAgIGNvbm5lY3Rpb25FbmRUaW1lOiBkZWZhdWx0U3RhcnRUaW1lLFxuICAgICAgc2VjdXJlQ29ubmVjdGlvblN0YXJ0VGltZTogZGVmYXVsdFN0YXJ0VGltZSxcbiAgICAgIEFMUE5OZWdvdGlhdGVkUHJvdG9jb2w6IGNvbm5lY3Rpb25UaW1pbmdJbmZvPy5BTFBOTmVnb3RpYXRlZFByb3RvY29sXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBkb21haW5Mb29rdXBTdGFydFRpbWU6IGNvYXJzZW5UaW1lKGNvbm5lY3Rpb25UaW1pbmdJbmZvLmRvbWFpbkxvb2t1cFN0YXJ0VGltZSwgY3Jvc3NPcmlnaW5Jc29sYXRlZENhcGFiaWxpdHkpLFxuICAgIGRvbWFpbkxvb2t1cEVuZFRpbWU6IGNvYXJzZW5UaW1lKGNvbm5lY3Rpb25UaW1pbmdJbmZvLmRvbWFpbkxvb2t1cEVuZFRpbWUsIGNyb3NzT3JpZ2luSXNvbGF0ZWRDYXBhYmlsaXR5KSxcbiAgICBjb25uZWN0aW9uU3RhcnRUaW1lOiBjb2Fyc2VuVGltZShjb25uZWN0aW9uVGltaW5nSW5mby5jb25uZWN0aW9uU3RhcnRUaW1lLCBjcm9zc09yaWdpbklzb2xhdGVkQ2FwYWJpbGl0eSksXG4gICAgY29ubmVjdGlvbkVuZFRpbWU6IGNvYXJzZW5UaW1lKGNvbm5lY3Rpb25UaW1pbmdJbmZvLmNvbm5lY3Rpb25FbmRUaW1lLCBjcm9zc09yaWdpbklzb2xhdGVkQ2FwYWJpbGl0eSksXG4gICAgc2VjdXJlQ29ubmVjdGlvblN0YXJ0VGltZTogY29hcnNlblRpbWUoY29ubmVjdGlvblRpbWluZ0luZm8uc2VjdXJlQ29ubmVjdGlvblN0YXJ0VGltZSwgY3Jvc3NPcmlnaW5Jc29sYXRlZENhcGFiaWxpdHkpLFxuICAgIEFMUE5OZWdvdGlhdGVkUHJvdG9jb2w6IGNvbm5lY3Rpb25UaW1pbmdJbmZvLkFMUE5OZWdvdGlhdGVkUHJvdG9jb2xcbiAgfVxufVxuXG4vLyBodHRwczovL3czYy5naXRodWIuaW8vaHItdGltZS8jZGZuLWNvYXJzZW5lZC1zaGFyZWQtY3VycmVudC10aW1lXG5mdW5jdGlvbiBjb2Fyc2VuZWRTaGFyZWRDdXJyZW50VGltZSAoY3Jvc3NPcmlnaW5Jc29sYXRlZENhcGFiaWxpdHkpIHtcbiAgcmV0dXJuIGNvYXJzZW5UaW1lKHBlcmZvcm1hbmNlLm5vdygpLCBjcm9zc09yaWdpbklzb2xhdGVkQ2FwYWJpbGl0eSlcbn1cblxuLy8gaHR0cHM6Ly9mZXRjaC5zcGVjLndoYXR3Zy5vcmcvI2NyZWF0ZS1hbi1vcGFxdWUtdGltaW5nLWluZm9cbmZ1bmN0aW9uIGNyZWF0ZU9wYXF1ZVRpbWluZ0luZm8gKHRpbWluZ0luZm8pIHtcbiAgcmV0dXJuIHtcbiAgICBzdGFydFRpbWU6IHRpbWluZ0luZm8uc3RhcnRUaW1lID8/IDAsXG4gICAgcmVkaXJlY3RTdGFydFRpbWU6IDAsXG4gICAgcmVkaXJlY3RFbmRUaW1lOiAwLFxuICAgIHBvc3RSZWRpcmVjdFN0YXJ0VGltZTogdGltaW5nSW5mby5zdGFydFRpbWUgPz8gMCxcbiAgICBmaW5hbFNlcnZpY2VXb3JrZXJTdGFydFRpbWU6IDAsXG4gICAgZmluYWxOZXR3b3JrUmVzcG9uc2VTdGFydFRpbWU6IDAsXG4gICAgZmluYWxOZXR3b3JrUmVxdWVzdFN0YXJ0VGltZTogMCxcbiAgICBlbmRUaW1lOiAwLFxuICAgIGVuY29kZWRCb2R5U2l6ZTogMCxcbiAgICBkZWNvZGVkQm9keVNpemU6IDAsXG4gICAgZmluYWxDb25uZWN0aW9uVGltaW5nSW5mbzogbnVsbFxuICB9XG59XG5cbi8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL29yaWdpbi5odG1sI3BvbGljeS1jb250YWluZXJcbmZ1bmN0aW9uIG1ha2VQb2xpY3lDb250YWluZXIgKCkge1xuICAvLyBOb3RlOiB0aGUgZmV0Y2ggc3BlYyBkb2Vzbid0IG1ha2UgdXNlIG9mIGVtYmVkZGVyIHBvbGljeSBvciBDU1AgbGlzdFxuICByZXR1cm4ge1xuICAgIHJlZmVycmVyUG9saWN5OiAnc3RyaWN0LW9yaWdpbi13aGVuLWNyb3NzLW9yaWdpbidcbiAgfVxufVxuXG4vLyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS9vcmlnaW4uaHRtbCNjbG9uZS1hLXBvbGljeS1jb250YWluZXJcbmZ1bmN0aW9uIGNsb25lUG9saWN5Q29udGFpbmVyIChwb2xpY3lDb250YWluZXIpIHtcbiAgcmV0dXJuIHtcbiAgICByZWZlcnJlclBvbGljeTogcG9saWN5Q29udGFpbmVyLnJlZmVycmVyUG9saWN5XG4gIH1cbn1cblxuLy8gaHR0cHM6Ly93M2MuZ2l0aHViLmlvL3dlYmFwcHNlYy1yZWZlcnJlci1wb2xpY3kvI2RldGVybWluZS1yZXF1ZXN0cy1yZWZlcnJlclxuZnVuY3Rpb24gZGV0ZXJtaW5lUmVxdWVzdHNSZWZlcnJlciAocmVxdWVzdCkge1xuICAvLyAxLiBMZXQgcG9saWN5IGJlIHJlcXVlc3QncyByZWZlcnJlciBwb2xpY3kuXG4gIGNvbnN0IHBvbGljeSA9IHJlcXVlc3QucmVmZXJyZXJQb2xpY3lcblxuICAvLyBOb3RlOiBwb2xpY3kgY2Fubm90IChzaG91bGRuJ3QpIGJlIG51bGwgb3IgYW4gZW1wdHkgc3RyaW5nLlxuICBhc3NlcnQocG9saWN5KVxuXG4gIC8vIDIuIExldCBlbnZpcm9ubWVudCBiZSByZXF1ZXN0XHUyMDE5cyBjbGllbnQuXG5cbiAgbGV0IHJlZmVycmVyU291cmNlID0gbnVsbFxuXG4gIC8vIDMuIFN3aXRjaCBvbiByZXF1ZXN0XHUyMDE5cyByZWZlcnJlcjpcbiAgaWYgKHJlcXVlc3QucmVmZXJyZXIgPT09ICdjbGllbnQnKSB7XG4gICAgLy8gTm90ZTogbm9kZSBpc24ndCBhIGJyb3dzZXIgYW5kIGRvZXNuJ3QgaW1wbGVtZW50IGRvY3VtZW50L2lmcmFtZXMsXG4gICAgLy8gc28gd2UgYnlwYXNzIHRoaXMgc3RlcCBhbmQgcmVwbGFjZSBpdCB3aXRoIG91ciBvd24uXG5cbiAgICBjb25zdCBnbG9iYWxPcmlnaW4gPSBnZXRHbG9iYWxPcmlnaW4oKVxuXG4gICAgaWYgKCFnbG9iYWxPcmlnaW4gfHwgZ2xvYmFsT3JpZ2luLm9yaWdpbiA9PT0gJ251bGwnKSB7XG4gICAgICByZXR1cm4gJ25vLXJlZmVycmVyJ1xuICAgIH1cblxuICAgIC8vIG5vdGU6IHdlIG5lZWQgdG8gY2xvbmUgaXQgYXMgaXQncyBtdXRhdGVkXG4gICAgcmVmZXJyZXJTb3VyY2UgPSBuZXcgVVJMKGdsb2JhbE9yaWdpbilcbiAgfSBlbHNlIGlmIChyZXF1ZXN0LnJlZmVycmVyIGluc3RhbmNlb2YgVVJMKSB7XG4gICAgLy8gTGV0IHJlZmVycmVyU291cmNlIGJlIHJlcXVlc3RcdTIwMTlzIHJlZmVycmVyLlxuICAgIHJlZmVycmVyU291cmNlID0gcmVxdWVzdC5yZWZlcnJlclxuICB9XG5cbiAgLy8gNC4gTGV0IHJlcXVlc3RcdTIwMTlzIHJlZmVycmVyVVJMIGJlIHRoZSByZXN1bHQgb2Ygc3RyaXBwaW5nIHJlZmVycmVyU291cmNlIGZvclxuICAvLyAgICB1c2UgYXMgYSByZWZlcnJlci5cbiAgbGV0IHJlZmVycmVyVVJMID0gc3RyaXBVUkxGb3JSZWZlcnJlcihyZWZlcnJlclNvdXJjZSlcblxuICAvLyA1LiBMZXQgcmVmZXJyZXJPcmlnaW4gYmUgdGhlIHJlc3VsdCBvZiBzdHJpcHBpbmcgcmVmZXJyZXJTb3VyY2UgZm9yIHVzZSBhc1xuICAvLyAgICBhIHJlZmVycmVyLCB3aXRoIHRoZSBvcmlnaW4tb25seSBmbGFnIHNldCB0byB0cnVlLlxuICBjb25zdCByZWZlcnJlck9yaWdpbiA9IHN0cmlwVVJMRm9yUmVmZXJyZXIocmVmZXJyZXJTb3VyY2UsIHRydWUpXG5cbiAgLy8gNi4gSWYgdGhlIHJlc3VsdCBvZiBzZXJpYWxpemluZyByZWZlcnJlclVSTCBpcyBhIHN0cmluZyB3aG9zZSBsZW5ndGggaXNcbiAgLy8gICAgZ3JlYXRlciB0aGFuIDQwOTYsIHNldCByZWZlcnJlclVSTCB0byByZWZlcnJlck9yaWdpbi5cbiAgaWYgKHJlZmVycmVyVVJMLnRvU3RyaW5nKCkubGVuZ3RoID4gNDA5Nikge1xuICAgIHJlZmVycmVyVVJMID0gcmVmZXJyZXJPcmlnaW5cbiAgfVxuXG4gIGNvbnN0IGFyZVNhbWVPcmlnaW4gPSBzYW1lT3JpZ2luKHJlcXVlc3QsIHJlZmVycmVyVVJMKVxuICBjb25zdCBpc05vblBvdGVudGlhbGx5VHJ1c3RXb3J0aHkgPSBpc1VSTFBvdGVudGlhbGx5VHJ1c3R3b3J0aHkocmVmZXJyZXJVUkwpICYmXG4gICAgIWlzVVJMUG90ZW50aWFsbHlUcnVzdHdvcnRoeShyZXF1ZXN0LnVybClcblxuICAvLyA4LiBFeGVjdXRlIHRoZSBzd2l0Y2ggc3RhdGVtZW50cyBjb3JyZXNwb25kaW5nIHRvIHRoZSB2YWx1ZSBvZiBwb2xpY3k6XG4gIHN3aXRjaCAocG9saWN5KSB7XG4gICAgY2FzZSAnb3JpZ2luJzogcmV0dXJuIHJlZmVycmVyT3JpZ2luICE9IG51bGwgPyByZWZlcnJlck9yaWdpbiA6IHN0cmlwVVJMRm9yUmVmZXJyZXIocmVmZXJyZXJTb3VyY2UsIHRydWUpXG4gICAgY2FzZSAndW5zYWZlLXVybCc6IHJldHVybiByZWZlcnJlclVSTFxuICAgIGNhc2UgJ3NhbWUtb3JpZ2luJzpcbiAgICAgIHJldHVybiBhcmVTYW1lT3JpZ2luID8gcmVmZXJyZXJPcmlnaW4gOiAnbm8tcmVmZXJyZXInXG4gICAgY2FzZSAnb3JpZ2luLXdoZW4tY3Jvc3Mtb3JpZ2luJzpcbiAgICAgIHJldHVybiBhcmVTYW1lT3JpZ2luID8gcmVmZXJyZXJVUkwgOiByZWZlcnJlck9yaWdpblxuICAgIGNhc2UgJ3N0cmljdC1vcmlnaW4td2hlbi1jcm9zcy1vcmlnaW4nOiB7XG4gICAgICBjb25zdCBjdXJyZW50VVJMID0gcmVxdWVzdEN1cnJlbnRVUkwocmVxdWVzdClcblxuICAgICAgLy8gMS4gSWYgdGhlIG9yaWdpbiBvZiByZWZlcnJlclVSTCBhbmQgdGhlIG9yaWdpbiBvZiByZXF1ZXN0XHUyMDE5cyBjdXJyZW50XG4gICAgICAvLyAgICBVUkwgYXJlIHRoZSBzYW1lLCB0aGVuIHJldHVybiByZWZlcnJlclVSTC5cbiAgICAgIGlmIChzYW1lT3JpZ2luKHJlZmVycmVyVVJMLCBjdXJyZW50VVJMKSkge1xuICAgICAgICByZXR1cm4gcmVmZXJyZXJVUkxcbiAgICAgIH1cblxuICAgICAgLy8gMi4gSWYgcmVmZXJyZXJVUkwgaXMgYSBwb3RlbnRpYWxseSB0cnVzdHdvcnRoeSBVUkwgYW5kIHJlcXVlc3RcdTIwMTlzXG4gICAgICAvLyAgICBjdXJyZW50IFVSTCBpcyBub3QgYSBwb3RlbnRpYWxseSB0cnVzdHdvcnRoeSBVUkwsIHRoZW4gcmV0dXJuIG5vXG4gICAgICAvLyAgICByZWZlcnJlci5cbiAgICAgIGlmIChpc1VSTFBvdGVudGlhbGx5VHJ1c3R3b3J0aHkocmVmZXJyZXJVUkwpICYmICFpc1VSTFBvdGVudGlhbGx5VHJ1c3R3b3J0aHkoY3VycmVudFVSTCkpIHtcbiAgICAgICAgcmV0dXJuICduby1yZWZlcnJlcidcbiAgICAgIH1cblxuICAgICAgLy8gMy4gUmV0dXJuIHJlZmVycmVyT3JpZ2luLlxuICAgICAgcmV0dXJuIHJlZmVycmVyT3JpZ2luXG4gICAgfVxuICAgIGNhc2UgJ3N0cmljdC1vcmlnaW4nOiAvLyBlc2xpbnQtZGlzYWJsZS1saW5lXG4gICAgICAvKipcbiAgICAgICAgICogMS4gSWYgcmVmZXJyZXJVUkwgaXMgYSBwb3RlbnRpYWxseSB0cnVzdHdvcnRoeSBVUkwgYW5kXG4gICAgICAgICAqIHJlcXVlc3RcdTIwMTlzIGN1cnJlbnQgVVJMIGlzIG5vdCBhIHBvdGVudGlhbGx5IHRydXN0d29ydGh5IFVSTCxcbiAgICAgICAgICogdGhlbiByZXR1cm4gbm8gcmVmZXJyZXIuXG4gICAgICAgICAqIDIuIFJldHVybiByZWZlcnJlck9yaWdpblxuICAgICAgICAqL1xuICAgIGNhc2UgJ25vLXJlZmVycmVyLXdoZW4tZG93bmdyYWRlJzogLy8gZXNsaW50LWRpc2FibGUtbGluZVxuICAgICAgLyoqXG4gICAgICAgKiAxLiBJZiByZWZlcnJlclVSTCBpcyBhIHBvdGVudGlhbGx5IHRydXN0d29ydGh5IFVSTCBhbmRcbiAgICAgICAqIHJlcXVlc3RcdTIwMTlzIGN1cnJlbnQgVVJMIGlzIG5vdCBhIHBvdGVudGlhbGx5IHRydXN0d29ydGh5IFVSTCxcbiAgICAgICAqIHRoZW4gcmV0dXJuIG5vIHJlZmVycmVyLlxuICAgICAgICogMi4gUmV0dXJuIHJlZmVycmVyT3JpZ2luXG4gICAgICAqL1xuXG4gICAgZGVmYXVsdDogLy8gZXNsaW50LWRpc2FibGUtbGluZVxuICAgICAgcmV0dXJuIGlzTm9uUG90ZW50aWFsbHlUcnVzdFdvcnRoeSA/ICduby1yZWZlcnJlcicgOiByZWZlcnJlck9yaWdpblxuICB9XG59XG5cbi8qKlxuICogQHNlZSBodHRwczovL3czYy5naXRodWIuaW8vd2ViYXBwc2VjLXJlZmVycmVyLXBvbGljeS8jc3RyaXAtdXJsXG4gKiBAcGFyYW0ge1VSTH0gdXJsXG4gKiBAcGFyYW0ge2Jvb2xlYW58dW5kZWZpbmVkfSBvcmlnaW5Pbmx5XG4gKi9cbmZ1bmN0aW9uIHN0cmlwVVJMRm9yUmVmZXJyZXIgKHVybCwgb3JpZ2luT25seSkge1xuICAvLyAxLiBBc3NlcnQ6IHVybCBpcyBhIFVSTC5cbiAgYXNzZXJ0KHVybCBpbnN0YW5jZW9mIFVSTClcblxuICB1cmwgPSBuZXcgVVJMKHVybClcblxuICAvLyAyLiBJZiB1cmxcdTIwMTlzIHNjaGVtZSBpcyBhIGxvY2FsIHNjaGVtZSwgdGhlbiByZXR1cm4gbm8gcmVmZXJyZXIuXG4gIGlmICh1cmwucHJvdG9jb2wgPT09ICdmaWxlOicgfHwgdXJsLnByb3RvY29sID09PSAnYWJvdXQ6JyB8fCB1cmwucHJvdG9jb2wgPT09ICdibGFuazonKSB7XG4gICAgcmV0dXJuICduby1yZWZlcnJlcidcbiAgfVxuXG4gIC8vIDMuIFNldCB1cmxcdTIwMTlzIHVzZXJuYW1lIHRvIHRoZSBlbXB0eSBzdHJpbmcuXG4gIHVybC51c2VybmFtZSA9ICcnXG5cbiAgLy8gNC4gU2V0IHVybFx1MjAxOXMgcGFzc3dvcmQgdG8gdGhlIGVtcHR5IHN0cmluZy5cbiAgdXJsLnBhc3N3b3JkID0gJydcblxuICAvLyA1LiBTZXQgdXJsXHUyMDE5cyBmcmFnbWVudCB0byBudWxsLlxuICB1cmwuaGFzaCA9ICcnXG5cbiAgLy8gNi4gSWYgdGhlIG9yaWdpbi1vbmx5IGZsYWcgaXMgdHJ1ZSwgdGhlbjpcbiAgaWYgKG9yaWdpbk9ubHkpIHtcbiAgICAvLyAxLiBTZXQgdXJsXHUyMDE5cyBwYXRoIHRvIFx1MDBBQiB0aGUgZW1wdHkgc3RyaW5nIFx1MDBCQi5cbiAgICB1cmwucGF0aG5hbWUgPSAnJ1xuXG4gICAgLy8gMi4gU2V0IHVybFx1MjAxOXMgcXVlcnkgdG8gbnVsbC5cbiAgICB1cmwuc2VhcmNoID0gJydcbiAgfVxuXG4gIC8vIDcuIFJldHVybiB1cmwuXG4gIHJldHVybiB1cmxcbn1cblxuZnVuY3Rpb24gaXNVUkxQb3RlbnRpYWxseVRydXN0d29ydGh5ICh1cmwpIHtcbiAgaWYgKCEodXJsIGluc3RhbmNlb2YgVVJMKSkge1xuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbiAgLy8gSWYgY2hpbGQgb2YgYWJvdXQsIHJldHVybiB0cnVlXG4gIGlmICh1cmwuaHJlZiA9PT0gJ2Fib3V0OmJsYW5rJyB8fCB1cmwuaHJlZiA9PT0gJ2Fib3V0OnNyY2RvYycpIHtcbiAgICByZXR1cm4gdHJ1ZVxuICB9XG5cbiAgLy8gSWYgc2NoZW1lIGlzIGRhdGEsIHJldHVybiB0cnVlXG4gIGlmICh1cmwucHJvdG9jb2wgPT09ICdkYXRhOicpIHJldHVybiB0cnVlXG5cbiAgLy8gSWYgZmlsZSwgcmV0dXJuIHRydWVcbiAgaWYgKHVybC5wcm90b2NvbCA9PT0gJ2ZpbGU6JykgcmV0dXJuIHRydWVcblxuICByZXR1cm4gaXNPcmlnaW5Qb3RlbnRpYWxseVRydXN0d29ydGh5KHVybC5vcmlnaW4pXG5cbiAgZnVuY3Rpb24gaXNPcmlnaW5Qb3RlbnRpYWxseVRydXN0d29ydGh5IChvcmlnaW4pIHtcbiAgICAvLyBJZiBvcmlnaW4gaXMgZXhwbGljaXRseSBudWxsLCByZXR1cm4gZmFsc2VcbiAgICBpZiAob3JpZ2luID09IG51bGwgfHwgb3JpZ2luID09PSAnbnVsbCcpIHJldHVybiBmYWxzZVxuXG4gICAgY29uc3Qgb3JpZ2luQXNVUkwgPSBuZXcgVVJMKG9yaWdpbilcblxuICAgIC8vIElmIHNlY3VyZSwgcmV0dXJuIHRydWVcbiAgICBpZiAob3JpZ2luQXNVUkwucHJvdG9jb2wgPT09ICdodHRwczonIHx8IG9yaWdpbkFzVVJMLnByb3RvY29sID09PSAnd3NzOicpIHtcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuXG4gICAgLy8gSWYgbG9jYWxob3N0IG9yIHZhcmlhbnRzLCByZXR1cm4gdHJ1ZVxuICAgIGlmICgvXjEyNyg/OlxcLlswLTldKyl7MCwyfVxcLlswLTldKyR8XlxcWyg/OjAqOikqPzo/MCoxXFxdJC8udGVzdChvcmlnaW5Bc1VSTC5ob3N0bmFtZSkgfHxcbiAgICAgKG9yaWdpbkFzVVJMLmhvc3RuYW1lID09PSAnbG9jYWxob3N0JyB8fCBvcmlnaW5Bc1VSTC5ob3N0bmFtZS5pbmNsdWRlcygnbG9jYWxob3N0LicpKSB8fFxuICAgICAob3JpZ2luQXNVUkwuaG9zdG5hbWUuZW5kc1dpdGgoJy5sb2NhbGhvc3QnKSkpIHtcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuXG4gICAgLy8gSWYgYW55IG90aGVyLCByZXR1cm4gZmFsc2VcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxufVxuXG4vKipcbiAqIEBzZWUgaHR0cHM6Ly93M2MuZ2l0aHViLmlvL3dlYmFwcHNlYy1zdWJyZXNvdXJjZS1pbnRlZ3JpdHkvI2RvZXMtcmVzcG9uc2UtbWF0Y2gtbWV0YWRhdGFsaXN0XG4gKiBAcGFyYW0ge1VpbnQ4QXJyYXl9IGJ5dGVzXG4gKiBAcGFyYW0ge3N0cmluZ30gbWV0YWRhdGFMaXN0XG4gKi9cbmZ1bmN0aW9uIGJ5dGVzTWF0Y2ggKGJ5dGVzLCBtZXRhZGF0YUxpc3QpIHtcbiAgLy8gSWYgbm9kZSBpcyBub3QgYnVpbHQgd2l0aCBPcGVuU1NMIHN1cHBvcnQsIHdlIGNhbm5vdCBjaGVja1xuICAvLyBhIHJlcXVlc3QncyBpbnRlZ3JpdHksIHNvIGFsbG93IGl0IGJ5IGRlZmF1bHQgKHRoZSBzcGVjIHdpbGxcbiAgLy8gYWxsb3cgcmVxdWVzdHMgaWYgYW4gaW52YWxpZCBoYXNoIGlzIGdpdmVuLCBhcyBwcmVjZWRlbmNlKS5cbiAgLyogaXN0YW5idWwgaWdub3JlIGlmOiBvbmx5IGlmIG5vZGUgaXMgYnVpbHQgd2l0aCAtLXdpdGhvdXQtc3NsICovXG4gIGlmIChjcnlwdG8gPT09IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiB0cnVlXG4gIH1cblxuICAvLyAxLiBMZXQgcGFyc2VkTWV0YWRhdGEgYmUgdGhlIHJlc3VsdCBvZiBwYXJzaW5nIG1ldGFkYXRhTGlzdC5cbiAgY29uc3QgcGFyc2VkTWV0YWRhdGEgPSBwYXJzZU1ldGFkYXRhKG1ldGFkYXRhTGlzdClcblxuICAvLyAyLiBJZiBwYXJzZWRNZXRhZGF0YSBpcyBubyBtZXRhZGF0YSwgcmV0dXJuIHRydWUuXG4gIGlmIChwYXJzZWRNZXRhZGF0YSA9PT0gJ25vIG1ldGFkYXRhJykge1xuICAgIHJldHVybiB0cnVlXG4gIH1cblxuICAvLyAzLiBJZiByZXNwb25zZSBpcyBub3QgZWxpZ2libGUgZm9yIGludGVncml0eSB2YWxpZGF0aW9uLCByZXR1cm4gZmFsc2UuXG4gIC8vIFRPRE9cblxuICAvLyA0LiBJZiBwYXJzZWRNZXRhZGF0YSBpcyB0aGUgZW1wdHkgc2V0LCByZXR1cm4gdHJ1ZS5cbiAgaWYgKHBhcnNlZE1ldGFkYXRhLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiB0cnVlXG4gIH1cblxuICAvLyA1LiBMZXQgbWV0YWRhdGEgYmUgdGhlIHJlc3VsdCBvZiBnZXR0aW5nIHRoZSBzdHJvbmdlc3RcbiAgLy8gICAgbWV0YWRhdGEgZnJvbSBwYXJzZWRNZXRhZGF0YS5cbiAgY29uc3Qgc3Ryb25nZXN0ID0gZ2V0U3Ryb25nZXN0TWV0YWRhdGEocGFyc2VkTWV0YWRhdGEpXG4gIGNvbnN0IG1ldGFkYXRhID0gZmlsdGVyTWV0YWRhdGFMaXN0QnlBbGdvcml0aG0ocGFyc2VkTWV0YWRhdGEsIHN0cm9uZ2VzdClcblxuICAvLyA2LiBGb3IgZWFjaCBpdGVtIGluIG1ldGFkYXRhOlxuICBmb3IgKGNvbnN0IGl0ZW0gb2YgbWV0YWRhdGEpIHtcbiAgICAvLyAxLiBMZXQgYWxnb3JpdGhtIGJlIHRoZSBhbGcgY29tcG9uZW50IG9mIGl0ZW0uXG4gICAgY29uc3QgYWxnb3JpdGhtID0gaXRlbS5hbGdvXG5cbiAgICAvLyAyLiBMZXQgZXhwZWN0ZWRWYWx1ZSBiZSB0aGUgdmFsIGNvbXBvbmVudCBvZiBpdGVtLlxuICAgIGNvbnN0IGV4cGVjdGVkVmFsdWUgPSBpdGVtLmhhc2hcblxuICAgIC8vIFNlZSBodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9jb21taXQvZTRjNWNjN2E1ZTQ4MDkzMjIwNTI4ZGZkZDFjNDAxMmRjMzgzN2EwZVxuICAgIC8vIFwiYmUgbGliZXJhbCB3aXRoIHBhZGRpbmdcIi4gVGhpcyBpcyBhbm5veWluZywgYW5kIGl0J3Mgbm90IGV2ZW4gaW4gdGhlIHNwZWMuXG5cbiAgICAvLyAzLiBMZXQgYWN0dWFsVmFsdWUgYmUgdGhlIHJlc3VsdCBvZiBhcHBseWluZyBhbGdvcml0aG0gdG8gYnl0ZXMuXG4gICAgbGV0IGFjdHVhbFZhbHVlID0gY3J5cHRvLmNyZWF0ZUhhc2goYWxnb3JpdGhtKS51cGRhdGUoYnl0ZXMpLmRpZ2VzdCgnYmFzZTY0JylcblxuICAgIGlmIChhY3R1YWxWYWx1ZVthY3R1YWxWYWx1ZS5sZW5ndGggLSAxXSA9PT0gJz0nKSB7XG4gICAgICBpZiAoYWN0dWFsVmFsdWVbYWN0dWFsVmFsdWUubGVuZ3RoIC0gMl0gPT09ICc9Jykge1xuICAgICAgICBhY3R1YWxWYWx1ZSA9IGFjdHVhbFZhbHVlLnNsaWNlKDAsIC0yKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYWN0dWFsVmFsdWUgPSBhY3R1YWxWYWx1ZS5zbGljZSgwLCAtMSlcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyA0LiBJZiBhY3R1YWxWYWx1ZSBpcyBhIGNhc2Utc2Vuc2l0aXZlIG1hdGNoIGZvciBleHBlY3RlZFZhbHVlLFxuICAgIC8vICAgIHJldHVybiB0cnVlLlxuICAgIGlmIChjb21wYXJlQmFzZTY0TWl4ZWQoYWN0dWFsVmFsdWUsIGV4cGVjdGVkVmFsdWUpKSB7XG4gICAgICByZXR1cm4gdHJ1ZVxuICAgIH1cbiAgfVxuXG4gIC8vIDcuIFJldHVybiBmYWxzZS5cbiAgcmV0dXJuIGZhbHNlXG59XG5cbi8vIGh0dHBzOi8vdzNjLmdpdGh1Yi5pby93ZWJhcHBzZWMtc3VicmVzb3VyY2UtaW50ZWdyaXR5LyNncmFtbWFyZGVmLWhhc2gtd2l0aC1vcHRpb25zXG4vLyBodHRwczovL3d3dy53My5vcmcvVFIvQ1NQMi8jc291cmNlLWxpc3Qtc3ludGF4XG4vLyBodHRwczovL3d3dy5yZmMtZWRpdG9yLm9yZy9yZmMvcmZjNTIzNCNhcHBlbmRpeC1CLjFcbmNvbnN0IHBhcnNlSGFzaFdpdGhPcHRpb25zID0gLyg/PGFsZ28+c2hhMjU2fHNoYTM4NHxzaGE1MTIpLSgoPzxoYXNoPltBLVphLXowLTkrL10rfFtBLVphLXowLTlfLV0rKT17MCwyfSg/Olxcc3wkKSggK1shLX5dKik/KT8vaVxuXG4vKipcbiAqIEBzZWUgaHR0cHM6Ly93M2MuZ2l0aHViLmlvL3dlYmFwcHNlYy1zdWJyZXNvdXJjZS1pbnRlZ3JpdHkvI3BhcnNlLW1ldGFkYXRhXG4gKiBAcGFyYW0ge3N0cmluZ30gbWV0YWRhdGFcbiAqL1xuZnVuY3Rpb24gcGFyc2VNZXRhZGF0YSAobWV0YWRhdGEpIHtcbiAgLy8gMS4gTGV0IHJlc3VsdCBiZSB0aGUgZW1wdHkgc2V0LlxuICAvKiogQHR5cGUge3sgYWxnbzogc3RyaW5nLCBoYXNoOiBzdHJpbmcgfVtdfSAqL1xuICBjb25zdCByZXN1bHQgPSBbXVxuXG4gIC8vIDIuIExldCBlbXB0eSBiZSBlcXVhbCB0byB0cnVlLlxuICBsZXQgZW1wdHkgPSB0cnVlXG5cbiAgLy8gMy4gRm9yIGVhY2ggdG9rZW4gcmV0dXJuZWQgYnkgc3BsaXR0aW5nIG1ldGFkYXRhIG9uIHNwYWNlczpcbiAgZm9yIChjb25zdCB0b2tlbiBvZiBtZXRhZGF0YS5zcGxpdCgnICcpKSB7XG4gICAgLy8gMS4gU2V0IGVtcHR5IHRvIGZhbHNlLlxuICAgIGVtcHR5ID0gZmFsc2VcblxuICAgIC8vIDIuIFBhcnNlIHRva2VuIGFzIGEgaGFzaC13aXRoLW9wdGlvbnMuXG4gICAgY29uc3QgcGFyc2VkVG9rZW4gPSBwYXJzZUhhc2hXaXRoT3B0aW9ucy5leGVjKHRva2VuKVxuXG4gICAgLy8gMy4gSWYgdG9rZW4gZG9lcyBub3QgcGFyc2UsIGNvbnRpbnVlIHRvIHRoZSBuZXh0IHRva2VuLlxuICAgIGlmIChcbiAgICAgIHBhcnNlZFRva2VuID09PSBudWxsIHx8XG4gICAgICBwYXJzZWRUb2tlbi5ncm91cHMgPT09IHVuZGVmaW5lZCB8fFxuICAgICAgcGFyc2VkVG9rZW4uZ3JvdXBzLmFsZ28gPT09IHVuZGVmaW5lZFxuICAgICkge1xuICAgICAgLy8gTm90ZTogQ2hyb21pdW0gYmxvY2tzIHRoZSByZXF1ZXN0IGF0IHRoaXMgcG9pbnQsIGJ1dCBGaXJlZm94XG4gICAgICAvLyBnaXZlcyBhIHdhcm5pbmcgdGhhdCBhbiBpbnZhbGlkIGludGVncml0eSB3YXMgZ2l2ZW4uIFRoZVxuICAgICAgLy8gY29ycmVjdCBiZWhhdmlvciBpcyB0byBpZ25vcmUgdGhlc2UsIGFuZCBzdWJzZXF1ZW50bHkgbm90XG4gICAgICAvLyBjaGVjayB0aGUgaW50ZWdyaXR5IG9mIHRoZSByZXNvdXJjZS5cbiAgICAgIGNvbnRpbnVlXG4gICAgfVxuXG4gICAgLy8gNC4gTGV0IGFsZ29yaXRobSBiZSB0aGUgaGFzaC1hbGdvIGNvbXBvbmVudCBvZiB0b2tlbi5cbiAgICBjb25zdCBhbGdvcml0aG0gPSBwYXJzZWRUb2tlbi5ncm91cHMuYWxnby50b0xvd2VyQ2FzZSgpXG5cbiAgICAvLyA1LiBJZiBhbGdvcml0aG0gaXMgYSBoYXNoIGZ1bmN0aW9uIHJlY29nbml6ZWQgYnkgdGhlIHVzZXJcbiAgICAvLyAgICBhZ2VudCwgYWRkIHRoZSBwYXJzZWQgdG9rZW4gdG8gcmVzdWx0LlxuICAgIGlmIChzdXBwb3J0ZWRIYXNoZXMuaW5jbHVkZXMoYWxnb3JpdGhtKSkge1xuICAgICAgcmVzdWx0LnB1c2gocGFyc2VkVG9rZW4uZ3JvdXBzKVxuICAgIH1cbiAgfVxuXG4gIC8vIDQuIFJldHVybiBubyBtZXRhZGF0YSBpZiBlbXB0eSBpcyB0cnVlLCBvdGhlcndpc2UgcmV0dXJuIHJlc3VsdC5cbiAgaWYgKGVtcHR5ID09PSB0cnVlKSB7XG4gICAgcmV0dXJuICdubyBtZXRhZGF0YSdcbiAgfVxuXG4gIHJldHVybiByZXN1bHRcbn1cblxuLyoqXG4gKiBAcGFyYW0ge3sgYWxnbzogJ3NoYTI1NicgfCAnc2hhMzg0JyB8ICdzaGE1MTInIH1bXX0gbWV0YWRhdGFMaXN0XG4gKi9cbmZ1bmN0aW9uIGdldFN0cm9uZ2VzdE1ldGFkYXRhIChtZXRhZGF0YUxpc3QpIHtcbiAgLy8gTGV0IGFsZ29yaXRobSBiZSB0aGUgYWxnbyBjb21wb25lbnQgb2YgdGhlIGZpcnN0IGl0ZW0gaW4gbWV0YWRhdGFMaXN0LlxuICAvLyBDYW4gYmUgc2hhMjU2XG4gIGxldCBhbGdvcml0aG0gPSBtZXRhZGF0YUxpc3RbMF0uYWxnb1xuICAvLyBJZiB0aGUgYWxnb3JpdGhtIGlzIHNoYTUxMiwgdGhlbiBpdCBpcyB0aGUgc3Ryb25nZXN0XG4gIC8vIGFuZCB3ZSBjYW4gcmV0dXJuIGltbWVkaWF0ZWx5XG4gIGlmIChhbGdvcml0aG1bM10gPT09ICc1Jykge1xuICAgIHJldHVybiBhbGdvcml0aG1cbiAgfVxuXG4gIGZvciAobGV0IGkgPSAxOyBpIDwgbWV0YWRhdGFMaXN0Lmxlbmd0aDsgKytpKSB7XG4gICAgY29uc3QgbWV0YWRhdGEgPSBtZXRhZGF0YUxpc3RbaV1cbiAgICAvLyBJZiB0aGUgYWxnb3JpdGhtIGlzIHNoYTUxMiwgdGhlbiBpdCBpcyB0aGUgc3Ryb25nZXN0XG4gICAgLy8gYW5kIHdlIGNhbiBicmVhayB0aGUgbG9vcCBpbW1lZGlhdGVseVxuICAgIGlmIChtZXRhZGF0YS5hbGdvWzNdID09PSAnNScpIHtcbiAgICAgIGFsZ29yaXRobSA9ICdzaGE1MTInXG4gICAgICBicmVha1xuICAgIC8vIElmIHRoZSBhbGdvcml0aG0gaXMgc2hhMzg0LCB0aGVuIGEgcG90ZW50aWFsIHNoYTI1NiBvciBzaGEzODQgaXMgaWdub3JlZFxuICAgIH0gZWxzZSBpZiAoYWxnb3JpdGhtWzNdID09PSAnMycpIHtcbiAgICAgIGNvbnRpbnVlXG4gICAgLy8gYWxnb3JpdGhtIGlzIHNoYTI1NiwgY2hlY2sgaWYgYWxnb3JpdGhtIGlzIHNoYTM4NCBhbmQgaWYgc28sIHNldCBpdCBhc1xuICAgIC8vIHRoZSBzdHJvbmdlc3RcbiAgICB9IGVsc2UgaWYgKG1ldGFkYXRhLmFsZ29bM10gPT09ICczJykge1xuICAgICAgYWxnb3JpdGhtID0gJ3NoYTM4NCdcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGFsZ29yaXRobVxufVxuXG5mdW5jdGlvbiBmaWx0ZXJNZXRhZGF0YUxpc3RCeUFsZ29yaXRobSAobWV0YWRhdGFMaXN0LCBhbGdvcml0aG0pIHtcbiAgaWYgKG1ldGFkYXRhTGlzdC5sZW5ndGggPT09IDEpIHtcbiAgICByZXR1cm4gbWV0YWRhdGFMaXN0XG4gIH1cblxuICBsZXQgcG9zID0gMFxuICBmb3IgKGxldCBpID0gMDsgaSA8IG1ldGFkYXRhTGlzdC5sZW5ndGg7ICsraSkge1xuICAgIGlmIChtZXRhZGF0YUxpc3RbaV0uYWxnbyA9PT0gYWxnb3JpdGhtKSB7XG4gICAgICBtZXRhZGF0YUxpc3RbcG9zKytdID0gbWV0YWRhdGFMaXN0W2ldXG4gICAgfVxuICB9XG5cbiAgbWV0YWRhdGFMaXN0Lmxlbmd0aCA9IHBvc1xuXG4gIHJldHVybiBtZXRhZGF0YUxpc3Rcbn1cblxuLyoqXG4gKiBDb21wYXJlcyB0d28gYmFzZTY0IHN0cmluZ3MsIGFsbG93aW5nIGZvciBiYXNlNjR1cmxcbiAqIGluIHRoZSBzZWNvbmQgc3RyaW5nLlxuICpcbiogQHBhcmFtIHtzdHJpbmd9IGFjdHVhbFZhbHVlIGFsd2F5cyBiYXNlNjRcbiAqIEBwYXJhbSB7c3RyaW5nfSBleHBlY3RlZFZhbHVlIGJhc2U2NCBvciBiYXNlNjR1cmxcbiAqIEByZXR1cm5zIHtib29sZWFufVxuICovXG5mdW5jdGlvbiBjb21wYXJlQmFzZTY0TWl4ZWQgKGFjdHVhbFZhbHVlLCBleHBlY3RlZFZhbHVlKSB7XG4gIGlmIChhY3R1YWxWYWx1ZS5sZW5ndGggIT09IGV4cGVjdGVkVmFsdWUubGVuZ3RoKSB7XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBhY3R1YWxWYWx1ZS5sZW5ndGg7ICsraSkge1xuICAgIGlmIChhY3R1YWxWYWx1ZVtpXSAhPT0gZXhwZWN0ZWRWYWx1ZVtpXSkge1xuICAgICAgaWYgKFxuICAgICAgICAoYWN0dWFsVmFsdWVbaV0gPT09ICcrJyAmJiBleHBlY3RlZFZhbHVlW2ldID09PSAnLScpIHx8XG4gICAgICAgIChhY3R1YWxWYWx1ZVtpXSA9PT0gJy8nICYmIGV4cGVjdGVkVmFsdWVbaV0gPT09ICdfJylcbiAgICAgICkge1xuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHRydWVcbn1cblxuLy8gaHR0cHM6Ly93M2MuZ2l0aHViLmlvL3dlYmFwcHNlYy11cGdyYWRlLWluc2VjdXJlLXJlcXVlc3RzLyN1cGdyYWRlLXJlcXVlc3RcbmZ1bmN0aW9uIHRyeVVwZ3JhZGVSZXF1ZXN0VG9BUG90ZW50aWFsbHlUcnVzdHdvcnRoeVVSTCAocmVxdWVzdCkge1xuICAvLyBUT0RPXG59XG5cbi8qKlxuICogQGxpbmsge2h0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL29yaWdpbi5odG1sI3NhbWUtb3JpZ2lufVxuICogQHBhcmFtIHtVUkx9IEFcbiAqIEBwYXJhbSB7VVJMfSBCXG4gKi9cbmZ1bmN0aW9uIHNhbWVPcmlnaW4gKEEsIEIpIHtcbiAgLy8gMS4gSWYgQSBhbmQgQiBhcmUgdGhlIHNhbWUgb3BhcXVlIG9yaWdpbiwgdGhlbiByZXR1cm4gdHJ1ZS5cbiAgaWYgKEEub3JpZ2luID09PSBCLm9yaWdpbiAmJiBBLm9yaWdpbiA9PT0gJ251bGwnKSB7XG4gICAgcmV0dXJuIHRydWVcbiAgfVxuXG4gIC8vIDIuIElmIEEgYW5kIEIgYXJlIGJvdGggdHVwbGUgb3JpZ2lucyBhbmQgdGhlaXIgc2NoZW1lcyxcbiAgLy8gICAgaG9zdHMsIGFuZCBwb3J0IGFyZSBpZGVudGljYWwsIHRoZW4gcmV0dXJuIHRydWUuXG4gIGlmIChBLnByb3RvY29sID09PSBCLnByb3RvY29sICYmIEEuaG9zdG5hbWUgPT09IEIuaG9zdG5hbWUgJiYgQS5wb3J0ID09PSBCLnBvcnQpIHtcbiAgICByZXR1cm4gdHJ1ZVxuICB9XG5cbiAgLy8gMy4gUmV0dXJuIGZhbHNlLlxuICByZXR1cm4gZmFsc2Vcbn1cblxuZnVuY3Rpb24gY3JlYXRlRGVmZXJyZWRQcm9taXNlICgpIHtcbiAgbGV0IHJlc1xuICBsZXQgcmVqXG4gIGNvbnN0IHByb21pc2UgPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgcmVzID0gcmVzb2x2ZVxuICAgIHJlaiA9IHJlamVjdFxuICB9KVxuXG4gIHJldHVybiB7IHByb21pc2UsIHJlc29sdmU6IHJlcywgcmVqZWN0OiByZWogfVxufVxuXG5mdW5jdGlvbiBpc0Fib3J0ZWQgKGZldGNoUGFyYW1zKSB7XG4gIHJldHVybiBmZXRjaFBhcmFtcy5jb250cm9sbGVyLnN0YXRlID09PSAnYWJvcnRlZCdcbn1cblxuZnVuY3Rpb24gaXNDYW5jZWxsZWQgKGZldGNoUGFyYW1zKSB7XG4gIHJldHVybiBmZXRjaFBhcmFtcy5jb250cm9sbGVyLnN0YXRlID09PSAnYWJvcnRlZCcgfHxcbiAgICBmZXRjaFBhcmFtcy5jb250cm9sbGVyLnN0YXRlID09PSAndGVybWluYXRlZCdcbn1cblxuLyoqXG4gKiBAc2VlIGh0dHBzOi8vZmV0Y2guc3BlYy53aGF0d2cub3JnLyNjb25jZXB0LW1ldGhvZC1ub3JtYWxpemVcbiAqIEBwYXJhbSB7c3RyaW5nfSBtZXRob2RcbiAqL1xuZnVuY3Rpb24gbm9ybWFsaXplTWV0aG9kIChtZXRob2QpIHtcbiAgcmV0dXJuIG5vcm1hbGl6ZWRNZXRob2RSZWNvcmRzQmFzZVttZXRob2QudG9Mb3dlckNhc2UoKV0gPz8gbWV0aG9kXG59XG5cbi8vIGh0dHBzOi8vaW5mcmEuc3BlYy53aGF0d2cub3JnLyNzZXJpYWxpemUtYS1qYXZhc2NyaXB0LXZhbHVlLXRvLWEtanNvbi1zdHJpbmdcbmZ1bmN0aW9uIHNlcmlhbGl6ZUphdmFzY3JpcHRWYWx1ZVRvSlNPTlN0cmluZyAodmFsdWUpIHtcbiAgLy8gMS4gTGV0IHJlc3VsdCBiZSA/IENhbGwoJUpTT04uc3RyaW5naWZ5JSwgdW5kZWZpbmVkLCBcdTAwQUIgdmFsdWUgXHUwMEJCKS5cbiAgY29uc3QgcmVzdWx0ID0gSlNPTi5zdHJpbmdpZnkodmFsdWUpXG5cbiAgLy8gMi4gSWYgcmVzdWx0IGlzIHVuZGVmaW5lZCwgdGhlbiB0aHJvdyBhIFR5cGVFcnJvci5cbiAgaWYgKHJlc3VsdCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcignVmFsdWUgaXMgbm90IEpTT04gc2VyaWFsaXphYmxlJylcbiAgfVxuXG4gIC8vIDMuIEFzc2VydDogcmVzdWx0IGlzIGEgc3RyaW5nLlxuICBhc3NlcnQodHlwZW9mIHJlc3VsdCA9PT0gJ3N0cmluZycpXG5cbiAgLy8gNC4gUmV0dXJuIHJlc3VsdC5cbiAgcmV0dXJuIHJlc3VsdFxufVxuXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLSUyNWl0ZXJhdG9ycHJvdG90eXBlJTI1LW9iamVjdFxuY29uc3QgZXNJdGVyYXRvclByb3RvdHlwZSA9IE9iamVjdC5nZXRQcm90b3R5cGVPZihPYmplY3QuZ2V0UHJvdG90eXBlT2YoW11bU3ltYm9sLml0ZXJhdG9yXSgpKSlcblxuLyoqXG4gKiBAc2VlIGh0dHBzOi8vd2ViaWRsLnNwZWMud2hhdHdnLm9yZy8jZGZuLWl0ZXJhdG9yLXByb3RvdHlwZS1vYmplY3RcbiAqIEBwYXJhbSB7c3RyaW5nfSBuYW1lIG5hbWUgb2YgdGhlIGluc3RhbmNlXG4gKiBAcGFyYW0ge3N5bWJvbH0ga0ludGVybmFsSXRlcmF0b3JcbiAqIEBwYXJhbSB7c3RyaW5nIHwgbnVtYmVyfSBba2V5SW5kZXhdXG4gKiBAcGFyYW0ge3N0cmluZyB8IG51bWJlcn0gW3ZhbHVlSW5kZXhdXG4gKi9cbmZ1bmN0aW9uIGNyZWF0ZUl0ZXJhdG9yIChuYW1lLCBrSW50ZXJuYWxJdGVyYXRvciwga2V5SW5kZXggPSAwLCB2YWx1ZUluZGV4ID0gMSkge1xuICBjbGFzcyBGYXN0SXRlcmFibGVJdGVyYXRvciB7XG4gICAgLyoqIEB0eXBlIHthbnl9ICovXG4gICAgI3RhcmdldFxuICAgIC8qKiBAdHlwZSB7J2tleScgfCAndmFsdWUnIHwgJ2tleSt2YWx1ZSd9ICovXG4gICAgI2tpbmRcbiAgICAvKiogQHR5cGUge251bWJlcn0gKi9cbiAgICAjaW5kZXhcblxuICAgIC8qKlxuICAgICAqIEBzZWUgaHR0cHM6Ly93ZWJpZGwuc3BlYy53aGF0d2cub3JnLyNkZm4tZGVmYXVsdC1pdGVyYXRvci1vYmplY3RcbiAgICAgKiBAcGFyYW0ge3Vua25vd259IHRhcmdldFxuICAgICAqIEBwYXJhbSB7J2tleScgfCAndmFsdWUnIHwgJ2tleSt2YWx1ZSd9IGtpbmRcbiAgICAgKi9cbiAgICBjb25zdHJ1Y3RvciAodGFyZ2V0LCBraW5kKSB7XG4gICAgICB0aGlzLiN0YXJnZXQgPSB0YXJnZXRcbiAgICAgIHRoaXMuI2tpbmQgPSBraW5kXG4gICAgICB0aGlzLiNpbmRleCA9IDBcbiAgICB9XG5cbiAgICBuZXh0ICgpIHtcbiAgICAgIC8vIDEuIExldCBpbnRlcmZhY2UgYmUgdGhlIGludGVyZmFjZSBmb3Igd2hpY2ggdGhlIGl0ZXJhdG9yIHByb3RvdHlwZSBvYmplY3QgZXhpc3RzLlxuICAgICAgLy8gMi4gTGV0IHRoaXNWYWx1ZSBiZSB0aGUgdGhpcyB2YWx1ZS5cbiAgICAgIC8vIDMuIExldCBvYmplY3QgYmUgPyBUb09iamVjdCh0aGlzVmFsdWUpLlxuICAgICAgLy8gNC4gSWYgb2JqZWN0IGlzIGEgcGxhdGZvcm0gb2JqZWN0LCB0aGVuIHBlcmZvcm0gYSBzZWN1cml0eVxuICAgICAgLy8gICAgY2hlY2ssIHBhc3Npbmc6XG4gICAgICAvLyA1LiBJZiBvYmplY3QgaXMgbm90IGEgZGVmYXVsdCBpdGVyYXRvciBvYmplY3QgZm9yIGludGVyZmFjZSxcbiAgICAgIC8vICAgIHRoZW4gdGhyb3cgYSBUeXBlRXJyb3IuXG4gICAgICBpZiAodHlwZW9mIHRoaXMgIT09ICdvYmplY3QnIHx8IHRoaXMgPT09IG51bGwgfHwgISgjdGFyZ2V0IGluIHRoaXMpKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXG4gICAgICAgICAgYCduZXh0JyBjYWxsZWQgb24gYW4gb2JqZWN0IHRoYXQgZG9lcyBub3QgaW1wbGVtZW50IGludGVyZmFjZSAke25hbWV9IEl0ZXJhdG9yLmBcbiAgICAgICAgKVxuICAgICAgfVxuXG4gICAgICAvLyA2LiBMZXQgaW5kZXggYmUgb2JqZWN0XHUyMDE5cyBpbmRleC5cbiAgICAgIC8vIDcuIExldCBraW5kIGJlIG9iamVjdFx1MjAxOXMga2luZC5cbiAgICAgIC8vIDguIExldCB2YWx1ZXMgYmUgb2JqZWN0XHUyMDE5cyB0YXJnZXQncyB2YWx1ZSBwYWlycyB0byBpdGVyYXRlIG92ZXIuXG4gICAgICBjb25zdCBpbmRleCA9IHRoaXMuI2luZGV4XG4gICAgICBjb25zdCB2YWx1ZXMgPSB0aGlzLiN0YXJnZXRba0ludGVybmFsSXRlcmF0b3JdXG5cbiAgICAgIC8vIDkuIExldCBsZW4gYmUgdGhlIGxlbmd0aCBvZiB2YWx1ZXMuXG4gICAgICBjb25zdCBsZW4gPSB2YWx1ZXMubGVuZ3RoXG5cbiAgICAgIC8vIDEwLiBJZiBpbmRleCBpcyBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gbGVuLCB0aGVuIHJldHVyblxuICAgICAgLy8gICAgIENyZWF0ZUl0ZXJSZXN1bHRPYmplY3QodW5kZWZpbmVkLCB0cnVlKS5cbiAgICAgIGlmIChpbmRleCA+PSBsZW4pIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICB2YWx1ZTogdW5kZWZpbmVkLFxuICAgICAgICAgIGRvbmU6IHRydWVcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyAxMS4gTGV0IHBhaXIgYmUgdGhlIGVudHJ5IGluIHZhbHVlcyBhdCBpbmRleCBpbmRleC5cbiAgICAgIGNvbnN0IHsgW2tleUluZGV4XToga2V5LCBbdmFsdWVJbmRleF06IHZhbHVlIH0gPSB2YWx1ZXNbaW5kZXhdXG5cbiAgICAgIC8vIDEyLiBTZXQgb2JqZWN0XHUyMDE5cyBpbmRleCB0byBpbmRleCArIDEuXG4gICAgICB0aGlzLiNpbmRleCA9IGluZGV4ICsgMVxuXG4gICAgICAvLyAxMy4gUmV0dXJuIHRoZSBpdGVyYXRvciByZXN1bHQgZm9yIHBhaXIgYW5kIGtpbmQuXG5cbiAgICAgIC8vIGh0dHBzOi8vd2ViaWRsLnNwZWMud2hhdHdnLm9yZy8jaXRlcmF0b3ItcmVzdWx0XG5cbiAgICAgIC8vIDEuIExldCByZXN1bHQgYmUgYSB2YWx1ZSBkZXRlcm1pbmVkIGJ5IHRoZSB2YWx1ZSBvZiBraW5kOlxuICAgICAgbGV0IHJlc3VsdFxuICAgICAgc3dpdGNoICh0aGlzLiNraW5kKSB7XG4gICAgICAgIGNhc2UgJ2tleSc6XG4gICAgICAgICAgLy8gMS4gTGV0IGlkbEtleSBiZSBwYWlyXHUyMDE5cyBrZXkuXG4gICAgICAgICAgLy8gMi4gTGV0IGtleSBiZSB0aGUgcmVzdWx0IG9mIGNvbnZlcnRpbmcgaWRsS2V5IHRvIGFuXG4gICAgICAgICAgLy8gICAgRUNNQVNjcmlwdCB2YWx1ZS5cbiAgICAgICAgICAvLyAzLiByZXN1bHQgaXMga2V5LlxuICAgICAgICAgIHJlc3VsdCA9IGtleVxuICAgICAgICAgIGJyZWFrXG4gICAgICAgIGNhc2UgJ3ZhbHVlJzpcbiAgICAgICAgICAvLyAxLiBMZXQgaWRsVmFsdWUgYmUgcGFpclx1MjAxOXMgdmFsdWUuXG4gICAgICAgICAgLy8gMi4gTGV0IHZhbHVlIGJlIHRoZSByZXN1bHQgb2YgY29udmVydGluZyBpZGxWYWx1ZSB0b1xuICAgICAgICAgIC8vICAgIGFuIEVDTUFTY3JpcHQgdmFsdWUuXG4gICAgICAgICAgLy8gMy4gcmVzdWx0IGlzIHZhbHVlLlxuICAgICAgICAgIHJlc3VsdCA9IHZhbHVlXG4gICAgICAgICAgYnJlYWtcbiAgICAgICAgY2FzZSAna2V5K3ZhbHVlJzpcbiAgICAgICAgICAvLyAxLiBMZXQgaWRsS2V5IGJlIHBhaXJcdTIwMTlzIGtleS5cbiAgICAgICAgICAvLyAyLiBMZXQgaWRsVmFsdWUgYmUgcGFpclx1MjAxOXMgdmFsdWUuXG4gICAgICAgICAgLy8gMy4gTGV0IGtleSBiZSB0aGUgcmVzdWx0IG9mIGNvbnZlcnRpbmcgaWRsS2V5IHRvIGFuXG4gICAgICAgICAgLy8gICAgRUNNQVNjcmlwdCB2YWx1ZS5cbiAgICAgICAgICAvLyA0LiBMZXQgdmFsdWUgYmUgdGhlIHJlc3VsdCBvZiBjb252ZXJ0aW5nIGlkbFZhbHVlIHRvXG4gICAgICAgICAgLy8gICAgYW4gRUNNQVNjcmlwdCB2YWx1ZS5cbiAgICAgICAgICAvLyA1LiBMZXQgYXJyYXkgYmUgISBBcnJheUNyZWF0ZSgyKS5cbiAgICAgICAgICAvLyA2LiBDYWxsICEgQ3JlYXRlRGF0YVByb3BlcnR5KGFycmF5LCBcIjBcIiwga2V5KS5cbiAgICAgICAgICAvLyA3LiBDYWxsICEgQ3JlYXRlRGF0YVByb3BlcnR5KGFycmF5LCBcIjFcIiwgdmFsdWUpLlxuICAgICAgICAgIC8vIDguIHJlc3VsdCBpcyBhcnJheS5cbiAgICAgICAgICByZXN1bHQgPSBba2V5LCB2YWx1ZV1cbiAgICAgICAgICBicmVha1xuICAgICAgfVxuXG4gICAgICAvLyAyLiBSZXR1cm4gQ3JlYXRlSXRlclJlc3VsdE9iamVjdChyZXN1bHQsIGZhbHNlKS5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIHZhbHVlOiByZXN1bHQsXG4gICAgICAgIGRvbmU6IGZhbHNlXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gaHR0cHM6Ly93ZWJpZGwuc3BlYy53aGF0d2cub3JnLyNkZm4taXRlcmF0b3ItcHJvdG90eXBlLW9iamVjdFxuICAvLyBAdHMtaWdub3JlXG4gIGRlbGV0ZSBGYXN0SXRlcmFibGVJdGVyYXRvci5wcm90b3R5cGUuY29uc3RydWN0b3JcblxuICBPYmplY3Quc2V0UHJvdG90eXBlT2YoRmFzdEl0ZXJhYmxlSXRlcmF0b3IucHJvdG90eXBlLCBlc0l0ZXJhdG9yUHJvdG90eXBlKVxuXG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKEZhc3RJdGVyYWJsZUl0ZXJhdG9yLnByb3RvdHlwZSwge1xuICAgIFtTeW1ib2wudG9TdHJpbmdUYWddOiB7XG4gICAgICB3cml0YWJsZTogZmFsc2UsXG4gICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICAgIHZhbHVlOiBgJHtuYW1lfSBJdGVyYXRvcmBcbiAgICB9LFxuICAgIG5leHQ6IHsgd3JpdGFibGU6IHRydWUsIGVudW1lcmFibGU6IHRydWUsIGNvbmZpZ3VyYWJsZTogdHJ1ZSB9XG4gIH0pXG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7dW5rbm93bn0gdGFyZ2V0XG4gICAqIEBwYXJhbSB7J2tleScgfCAndmFsdWUnIHwgJ2tleSt2YWx1ZSd9IGtpbmRcbiAgICogQHJldHVybnMge0l0ZXJhYmxlSXRlcmF0b3I8YW55Pn1cbiAgICovXG4gIHJldHVybiBmdW5jdGlvbiAodGFyZ2V0LCBraW5kKSB7XG4gICAgcmV0dXJuIG5ldyBGYXN0SXRlcmFibGVJdGVyYXRvcih0YXJnZXQsIGtpbmQpXG4gIH1cbn1cblxuLyoqXG4gKiBAc2VlIGh0dHBzOi8vd2ViaWRsLnNwZWMud2hhdHdnLm9yZy8jZGZuLWl0ZXJhdG9yLXByb3RvdHlwZS1vYmplY3RcbiAqIEBwYXJhbSB7c3RyaW5nfSBuYW1lIG5hbWUgb2YgdGhlIGluc3RhbmNlXG4gKiBAcGFyYW0ge2FueX0gb2JqZWN0IGNsYXNzXG4gKiBAcGFyYW0ge3N5bWJvbH0ga0ludGVybmFsSXRlcmF0b3JcbiAqIEBwYXJhbSB7c3RyaW5nIHwgbnVtYmVyfSBba2V5SW5kZXhdXG4gKiBAcGFyYW0ge3N0cmluZyB8IG51bWJlcn0gW3ZhbHVlSW5kZXhdXG4gKi9cbmZ1bmN0aW9uIGl0ZXJhdG9yTWl4aW4gKG5hbWUsIG9iamVjdCwga0ludGVybmFsSXRlcmF0b3IsIGtleUluZGV4ID0gMCwgdmFsdWVJbmRleCA9IDEpIHtcbiAgY29uc3QgbWFrZUl0ZXJhdG9yID0gY3JlYXRlSXRlcmF0b3IobmFtZSwga0ludGVybmFsSXRlcmF0b3IsIGtleUluZGV4LCB2YWx1ZUluZGV4KVxuXG4gIGNvbnN0IHByb3BlcnRpZXMgPSB7XG4gICAga2V5czoge1xuICAgICAgd3JpdGFibGU6IHRydWUsXG4gICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgICAgdmFsdWU6IGZ1bmN0aW9uIGtleXMgKCkge1xuICAgICAgICB3ZWJpZGwuYnJhbmRDaGVjayh0aGlzLCBvYmplY3QpXG4gICAgICAgIHJldHVybiBtYWtlSXRlcmF0b3IodGhpcywgJ2tleScpXG4gICAgICB9XG4gICAgfSxcbiAgICB2YWx1ZXM6IHtcbiAgICAgIHdyaXRhYmxlOiB0cnVlLFxuICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICAgIHZhbHVlOiBmdW5jdGlvbiB2YWx1ZXMgKCkge1xuICAgICAgICB3ZWJpZGwuYnJhbmRDaGVjayh0aGlzLCBvYmplY3QpXG4gICAgICAgIHJldHVybiBtYWtlSXRlcmF0b3IodGhpcywgJ3ZhbHVlJylcbiAgICAgIH1cbiAgICB9LFxuICAgIGVudHJpZXM6IHtcbiAgICAgIHdyaXRhYmxlOiB0cnVlLFxuICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICAgIHZhbHVlOiBmdW5jdGlvbiBlbnRyaWVzICgpIHtcbiAgICAgICAgd2ViaWRsLmJyYW5kQ2hlY2sodGhpcywgb2JqZWN0KVxuICAgICAgICByZXR1cm4gbWFrZUl0ZXJhdG9yKHRoaXMsICdrZXkrdmFsdWUnKVxuICAgICAgfVxuICAgIH0sXG4gICAgZm9yRWFjaDoge1xuICAgICAgd3JpdGFibGU6IHRydWUsXG4gICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgICAgdmFsdWU6IGZ1bmN0aW9uIGZvckVhY2ggKGNhbGxiYWNrZm4sIHRoaXNBcmcgPSBnbG9iYWxUaGlzKSB7XG4gICAgICAgIHdlYmlkbC5icmFuZENoZWNrKHRoaXMsIG9iamVjdClcbiAgICAgICAgd2ViaWRsLmFyZ3VtZW50TGVuZ3RoQ2hlY2soYXJndW1lbnRzLCAxLCBgJHtuYW1lfS5mb3JFYWNoYClcbiAgICAgICAgaWYgKHR5cGVvZiBjYWxsYmFja2ZuICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcbiAgICAgICAgICAgIGBGYWlsZWQgdG8gZXhlY3V0ZSAnZm9yRWFjaCcgb24gJyR7bmFtZX0nOiBwYXJhbWV0ZXIgMSBpcyBub3Qgb2YgdHlwZSAnRnVuY3Rpb24nLmBcbiAgICAgICAgICApXG4gICAgICAgIH1cbiAgICAgICAgZm9yIChjb25zdCB7IDA6IGtleSwgMTogdmFsdWUgfSBvZiBtYWtlSXRlcmF0b3IodGhpcywgJ2tleSt2YWx1ZScpKSB7XG4gICAgICAgICAgY2FsbGJhY2tmbi5jYWxsKHRoaXNBcmcsIHZhbHVlLCBrZXksIHRoaXMpXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnRpZXMob2JqZWN0LnByb3RvdHlwZSwge1xuICAgIC4uLnByb3BlcnRpZXMsXG4gICAgW1N5bWJvbC5pdGVyYXRvcl06IHtcbiAgICAgIHdyaXRhYmxlOiB0cnVlLFxuICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgICB2YWx1ZTogcHJvcGVydGllcy5lbnRyaWVzLnZhbHVlXG4gICAgfVxuICB9KVxufVxuXG4vKipcbiAqIEBzZWUgaHR0cHM6Ly9mZXRjaC5zcGVjLndoYXR3Zy5vcmcvI2JvZHktZnVsbHktcmVhZFxuICovXG5hc3luYyBmdW5jdGlvbiBmdWxseVJlYWRCb2R5IChib2R5LCBwcm9jZXNzQm9keSwgcHJvY2Vzc0JvZHlFcnJvcikge1xuICAvLyAxLiBJZiB0YXNrRGVzdGluYXRpb24gaXMgbnVsbCwgdGhlbiBzZXQgdGFza0Rlc3RpbmF0aW9uIHRvXG4gIC8vICAgIHRoZSByZXN1bHQgb2Ygc3RhcnRpbmcgYSBuZXcgcGFyYWxsZWwgcXVldWUuXG5cbiAgLy8gMi4gTGV0IHN1Y2Nlc3NTdGVwcyBnaXZlbiBhIGJ5dGUgc2VxdWVuY2UgYnl0ZXMgYmUgdG8gcXVldWUgYVxuICAvLyAgICBmZXRjaCB0YXNrIHRvIHJ1biBwcm9jZXNzQm9keSBnaXZlbiBieXRlcywgd2l0aCB0YXNrRGVzdGluYXRpb24uXG4gIGNvbnN0IHN1Y2Nlc3NTdGVwcyA9IHByb2Nlc3NCb2R5XG5cbiAgLy8gMy4gTGV0IGVycm9yU3RlcHMgYmUgdG8gcXVldWUgYSBmZXRjaCB0YXNrIHRvIHJ1biBwcm9jZXNzQm9keUVycm9yLFxuICAvLyAgICB3aXRoIHRhc2tEZXN0aW5hdGlvbi5cbiAgY29uc3QgZXJyb3JTdGVwcyA9IHByb2Nlc3NCb2R5RXJyb3JcblxuICAvLyA0LiBMZXQgcmVhZGVyIGJlIHRoZSByZXN1bHQgb2YgZ2V0dGluZyBhIHJlYWRlciBmb3IgYm9keVx1MjAxOXMgc3RyZWFtLlxuICAvLyAgICBJZiB0aGF0IHRocmV3IGFuIGV4Y2VwdGlvbiwgdGhlbiBydW4gZXJyb3JTdGVwcyB3aXRoIHRoYXRcbiAgLy8gICAgZXhjZXB0aW9uIGFuZCByZXR1cm4uXG4gIGxldCByZWFkZXJcblxuICB0cnkge1xuICAgIHJlYWRlciA9IGJvZHkuc3RyZWFtLmdldFJlYWRlcigpXG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBlcnJvclN0ZXBzKGUpXG4gICAgcmV0dXJuXG4gIH1cblxuICAvLyA1LiBSZWFkIGFsbCBieXRlcyBmcm9tIHJlYWRlciwgZ2l2ZW4gc3VjY2Vzc1N0ZXBzIGFuZCBlcnJvclN0ZXBzLlxuICB0cnkge1xuICAgIHN1Y2Nlc3NTdGVwcyhhd2FpdCByZWFkQWxsQnl0ZXMocmVhZGVyKSlcbiAgfSBjYXRjaCAoZSkge1xuICAgIGVycm9yU3RlcHMoZSlcbiAgfVxufVxuXG5mdW5jdGlvbiBpc1JlYWRhYmxlU3RyZWFtTGlrZSAoc3RyZWFtKSB7XG4gIHJldHVybiBzdHJlYW0gaW5zdGFuY2VvZiBSZWFkYWJsZVN0cmVhbSB8fCAoXG4gICAgc3RyZWFtW1N5bWJvbC50b1N0cmluZ1RhZ10gPT09ICdSZWFkYWJsZVN0cmVhbScgJiZcbiAgICB0eXBlb2Ygc3RyZWFtLnRlZSA9PT0gJ2Z1bmN0aW9uJ1xuICApXG59XG5cbi8qKlxuICogQHBhcmFtIHtSZWFkYWJsZVN0cmVhbUNvbnRyb2xsZXI8VWludDhBcnJheT59IGNvbnRyb2xsZXJcbiAqL1xuZnVuY3Rpb24gcmVhZGFibGVTdHJlYW1DbG9zZSAoY29udHJvbGxlcikge1xuICB0cnkge1xuICAgIGNvbnRyb2xsZXIuY2xvc2UoKVxuICAgIGNvbnRyb2xsZXIuYnlvYlJlcXVlc3Q/LnJlc3BvbmQoMClcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgLy8gVE9ETzogYWRkIGNvbW1lbnQgZXhwbGFpbmluZyB3aHkgdGhpcyBlcnJvciBvY2N1cnMuXG4gICAgaWYgKCFlcnIubWVzc2FnZS5pbmNsdWRlcygnQ29udHJvbGxlciBpcyBhbHJlYWR5IGNsb3NlZCcpICYmICFlcnIubWVzc2FnZS5pbmNsdWRlcygnUmVhZGFibGVTdHJlYW0gaXMgYWxyZWFkeSBjbG9zZWQnKSkge1xuICAgICAgdGhyb3cgZXJyXG4gICAgfVxuICB9XG59XG5cbmNvbnN0IGludmFsaWRJc29tb3JwaGljRW5jb2RlVmFsdWVSZWdleCA9IC9bXlxceDAwLVxceEZGXS8gLy8gZXNsaW50LWRpc2FibGUtbGluZVxuXG4vKipcbiAqIEBzZWUgaHR0cHM6Ly9pbmZyYS5zcGVjLndoYXR3Zy5vcmcvI2lzb21vcnBoaWMtZW5jb2RlXG4gKiBAcGFyYW0ge3N0cmluZ30gaW5wdXRcbiAqL1xuZnVuY3Rpb24gaXNvbW9ycGhpY0VuY29kZSAoaW5wdXQpIHtcbiAgLy8gMS4gQXNzZXJ0OiBpbnB1dCBjb250YWlucyBubyBjb2RlIHBvaW50cyBncmVhdGVyIHRoYW4gVSswMEZGLlxuICBhc3NlcnQoIWludmFsaWRJc29tb3JwaGljRW5jb2RlVmFsdWVSZWdleC50ZXN0KGlucHV0KSlcblxuICAvLyAyLiBSZXR1cm4gYSBieXRlIHNlcXVlbmNlIHdob3NlIGxlbmd0aCBpcyBlcXVhbCB0byBpbnB1dFx1MjAxOXMgY29kZVxuICAvLyAgICBwb2ludCBsZW5ndGggYW5kIHdob3NlIGJ5dGVzIGhhdmUgdGhlIHNhbWUgdmFsdWVzIGFzIHRoZVxuICAvLyAgICB2YWx1ZXMgb2YgaW5wdXRcdTIwMTlzIGNvZGUgcG9pbnRzLCBpbiB0aGUgc2FtZSBvcmRlclxuICByZXR1cm4gaW5wdXRcbn1cblxuLyoqXG4gKiBAc2VlIGh0dHBzOi8vc3RyZWFtcy5zcGVjLndoYXR3Zy5vcmcvI3JlYWRhYmxlc3RyZWFtZGVmYXVsdHJlYWRlci1yZWFkLWFsbC1ieXRlc1xuICogQHNlZSBodHRwczovL3N0cmVhbXMuc3BlYy53aGF0d2cub3JnLyNyZWFkLWxvb3BcbiAqIEBwYXJhbSB7UmVhZGFibGVTdHJlYW1EZWZhdWx0UmVhZGVyfSByZWFkZXJcbiAqL1xuYXN5bmMgZnVuY3Rpb24gcmVhZEFsbEJ5dGVzIChyZWFkZXIpIHtcbiAgY29uc3QgYnl0ZXMgPSBbXVxuICBsZXQgYnl0ZUxlbmd0aCA9IDBcblxuICB3aGlsZSAodHJ1ZSkge1xuICAgIGNvbnN0IHsgZG9uZSwgdmFsdWU6IGNodW5rIH0gPSBhd2FpdCByZWFkZXIucmVhZCgpXG5cbiAgICBpZiAoZG9uZSkge1xuICAgICAgLy8gMS4gQ2FsbCBzdWNjZXNzU3RlcHMgd2l0aCBieXRlcy5cbiAgICAgIHJldHVybiBCdWZmZXIuY29uY2F0KGJ5dGVzLCBieXRlTGVuZ3RoKVxuICAgIH1cblxuICAgIC8vIDEuIElmIGNodW5rIGlzIG5vdCBhIFVpbnQ4QXJyYXkgb2JqZWN0LCBjYWxsIGZhaWx1cmVTdGVwc1xuICAgIC8vICAgIHdpdGggYSBUeXBlRXJyb3IgYW5kIGFib3J0IHRoZXNlIHN0ZXBzLlxuICAgIGlmICghaXNVaW50OEFycmF5KGNodW5rKSkge1xuICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignUmVjZWl2ZWQgbm9uLVVpbnQ4QXJyYXkgY2h1bmsnKVxuICAgIH1cblxuICAgIC8vIDIuIEFwcGVuZCB0aGUgYnl0ZXMgcmVwcmVzZW50ZWQgYnkgY2h1bmsgdG8gYnl0ZXMuXG4gICAgYnl0ZXMucHVzaChjaHVuaylcbiAgICBieXRlTGVuZ3RoICs9IGNodW5rLmxlbmd0aFxuXG4gICAgLy8gMy4gUmVhZC1sb29wIGdpdmVuIHJlYWRlciwgYnl0ZXMsIHN1Y2Nlc3NTdGVwcywgYW5kIGZhaWx1cmVTdGVwcy5cbiAgfVxufVxuXG4vKipcbiAqIEBzZWUgaHR0cHM6Ly9mZXRjaC5zcGVjLndoYXR3Zy5vcmcvI2lzLWxvY2FsXG4gKiBAcGFyYW0ge1VSTH0gdXJsXG4gKi9cbmZ1bmN0aW9uIHVybElzTG9jYWwgKHVybCkge1xuICBhc3NlcnQoJ3Byb3RvY29sJyBpbiB1cmwpIC8vIGVuc3VyZSBpdCdzIGEgdXJsIG9iamVjdFxuXG4gIGNvbnN0IHByb3RvY29sID0gdXJsLnByb3RvY29sXG5cbiAgcmV0dXJuIHByb3RvY29sID09PSAnYWJvdXQ6JyB8fCBwcm90b2NvbCA9PT0gJ2Jsb2I6JyB8fCBwcm90b2NvbCA9PT0gJ2RhdGE6J1xufVxuXG4vKipcbiAqIEBwYXJhbSB7c3RyaW5nfFVSTH0gdXJsXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAqL1xuZnVuY3Rpb24gdXJsSGFzSHR0cHNTY2hlbWUgKHVybCkge1xuICByZXR1cm4gKFxuICAgIChcbiAgICAgIHR5cGVvZiB1cmwgPT09ICdzdHJpbmcnICYmXG4gICAgICB1cmxbNV0gPT09ICc6JyAmJlxuICAgICAgdXJsWzBdID09PSAnaCcgJiZcbiAgICAgIHVybFsxXSA9PT0gJ3QnICYmXG4gICAgICB1cmxbMl0gPT09ICd0JyAmJlxuICAgICAgdXJsWzNdID09PSAncCcgJiZcbiAgICAgIHVybFs0XSA9PT0gJ3MnXG4gICAgKSB8fFxuICAgIHVybC5wcm90b2NvbCA9PT0gJ2h0dHBzOidcbiAgKVxufVxuXG4vKipcbiAqIEBzZWUgaHR0cHM6Ly9mZXRjaC5zcGVjLndoYXR3Zy5vcmcvI2h0dHAtc2NoZW1lXG4gKiBAcGFyYW0ge1VSTH0gdXJsXG4gKi9cbmZ1bmN0aW9uIHVybElzSHR0cEh0dHBzU2NoZW1lICh1cmwpIHtcbiAgYXNzZXJ0KCdwcm90b2NvbCcgaW4gdXJsKSAvLyBlbnN1cmUgaXQncyBhIHVybCBvYmplY3RcblxuICBjb25zdCBwcm90b2NvbCA9IHVybC5wcm90b2NvbFxuXG4gIHJldHVybiBwcm90b2NvbCA9PT0gJ2h0dHA6JyB8fCBwcm90b2NvbCA9PT0gJ2h0dHBzOidcbn1cblxuLyoqXG4gKiBAc2VlIGh0dHBzOi8vZmV0Y2guc3BlYy53aGF0d2cub3JnLyNzaW1wbGUtcmFuZ2UtaGVhZGVyLXZhbHVlXG4gKiBAcGFyYW0ge3N0cmluZ30gdmFsdWVcbiAqIEBwYXJhbSB7Ym9vbGVhbn0gYWxsb3dXaGl0ZXNwYWNlXG4gKi9cbmZ1bmN0aW9uIHNpbXBsZVJhbmdlSGVhZGVyVmFsdWUgKHZhbHVlLCBhbGxvd1doaXRlc3BhY2UpIHtcbiAgLy8gMS4gTGV0IGRhdGEgYmUgdGhlIGlzb21vcnBoaWMgZGVjb2Rpbmcgb2YgdmFsdWUuXG4gIC8vIE5vdGU6IGlzb21vcnBoaWMgZGVjb2RpbmcgdGFrZXMgYSBzZXF1ZW5jZSBvZiBieXRlcyAoaWUuIGEgVWludDhBcnJheSkgYW5kIHR1cm5zIGl0IGludG8gYSBzdHJpbmcsXG4gIC8vIG5vdGhpbmcgbW9yZS4gV2Ugb2J2aW91c2x5IGRvbid0IG5lZWQgdG8gZG8gdGhhdCBpZiB2YWx1ZSBpcyBhIHN0cmluZyBhbHJlYWR5LlxuICBjb25zdCBkYXRhID0gdmFsdWVcblxuICAvLyAyLiBJZiBkYXRhIGRvZXMgbm90IHN0YXJ0IHdpdGggXCJieXRlc1wiLCB0aGVuIHJldHVybiBmYWlsdXJlLlxuICBpZiAoIWRhdGEuc3RhcnRzV2l0aCgnYnl0ZXMnKSkge1xuICAgIHJldHVybiAnZmFpbHVyZSdcbiAgfVxuXG4gIC8vIDMuIExldCBwb3NpdGlvbiBiZSBhIHBvc2l0aW9uIHZhcmlhYmxlIGZvciBkYXRhLCBpbml0aWFsbHkgcG9pbnRpbmcgYXQgdGhlIDV0aCBjb2RlIHBvaW50IG9mIGRhdGEuXG4gIGNvbnN0IHBvc2l0aW9uID0geyBwb3NpdGlvbjogNSB9XG5cbiAgLy8gNC4gSWYgYWxsb3dXaGl0ZXNwYWNlIGlzIHRydWUsIGNvbGxlY3QgYSBzZXF1ZW5jZSBvZiBjb2RlIHBvaW50cyB0aGF0IGFyZSBIVFRQIHRhYiBvciBzcGFjZSxcbiAgLy8gICAgZnJvbSBkYXRhIGdpdmVuIHBvc2l0aW9uLlxuICBpZiAoYWxsb3dXaGl0ZXNwYWNlKSB7XG4gICAgY29sbGVjdEFTZXF1ZW5jZU9mQ29kZVBvaW50cyhcbiAgICAgIChjaGFyKSA9PiBjaGFyID09PSAnXFx0JyB8fCBjaGFyID09PSAnICcsXG4gICAgICBkYXRhLFxuICAgICAgcG9zaXRpb25cbiAgICApXG4gIH1cblxuICAvLyA1LiBJZiB0aGUgY29kZSBwb2ludCBhdCBwb3NpdGlvbiB3aXRoaW4gZGF0YSBpcyBub3QgVSswMDNEICg9KSwgdGhlbiByZXR1cm4gZmFpbHVyZS5cbiAgaWYgKGRhdGEuY2hhckNvZGVBdChwb3NpdGlvbi5wb3NpdGlvbikgIT09IDB4M0QpIHtcbiAgICByZXR1cm4gJ2ZhaWx1cmUnXG4gIH1cblxuICAvLyA2LiBBZHZhbmNlIHBvc2l0aW9uIGJ5IDEuXG4gIHBvc2l0aW9uLnBvc2l0aW9uKytcblxuICAvLyA3LiBJZiBhbGxvd1doaXRlc3BhY2UgaXMgdHJ1ZSwgY29sbGVjdCBhIHNlcXVlbmNlIG9mIGNvZGUgcG9pbnRzIHRoYXQgYXJlIEhUVFAgdGFiIG9yIHNwYWNlLCBmcm9tXG4gIC8vICAgIGRhdGEgZ2l2ZW4gcG9zaXRpb24uXG4gIGlmIChhbGxvd1doaXRlc3BhY2UpIHtcbiAgICBjb2xsZWN0QVNlcXVlbmNlT2ZDb2RlUG9pbnRzKFxuICAgICAgKGNoYXIpID0+IGNoYXIgPT09ICdcXHQnIHx8IGNoYXIgPT09ICcgJyxcbiAgICAgIGRhdGEsXG4gICAgICBwb3NpdGlvblxuICAgIClcbiAgfVxuXG4gIC8vIDguIExldCByYW5nZVN0YXJ0IGJlIHRoZSByZXN1bHQgb2YgY29sbGVjdGluZyBhIHNlcXVlbmNlIG9mIGNvZGUgcG9pbnRzIHRoYXQgYXJlIEFTQ0lJIGRpZ2l0cyxcbiAgLy8gICAgZnJvbSBkYXRhIGdpdmVuIHBvc2l0aW9uLlxuICBjb25zdCByYW5nZVN0YXJ0ID0gY29sbGVjdEFTZXF1ZW5jZU9mQ29kZVBvaW50cyhcbiAgICAoY2hhcikgPT4ge1xuICAgICAgY29uc3QgY29kZSA9IGNoYXIuY2hhckNvZGVBdCgwKVxuXG4gICAgICByZXR1cm4gY29kZSA+PSAweDMwICYmIGNvZGUgPD0gMHgzOVxuICAgIH0sXG4gICAgZGF0YSxcbiAgICBwb3NpdGlvblxuICApXG5cbiAgLy8gOS4gTGV0IHJhbmdlU3RhcnRWYWx1ZSBiZSByYW5nZVN0YXJ0LCBpbnRlcnByZXRlZCBhcyBkZWNpbWFsIG51bWJlciwgaWYgcmFuZ2VTdGFydCBpcyBub3QgdGhlXG4gIC8vICAgIGVtcHR5IHN0cmluZzsgb3RoZXJ3aXNlIG51bGwuXG4gIGNvbnN0IHJhbmdlU3RhcnRWYWx1ZSA9IHJhbmdlU3RhcnQubGVuZ3RoID8gTnVtYmVyKHJhbmdlU3RhcnQpIDogbnVsbFxuXG4gIC8vIDEwLiBJZiBhbGxvd1doaXRlc3BhY2UgaXMgdHJ1ZSwgY29sbGVjdCBhIHNlcXVlbmNlIG9mIGNvZGUgcG9pbnRzIHRoYXQgYXJlIEhUVFAgdGFiIG9yIHNwYWNlLFxuICAvLyAgICAgZnJvbSBkYXRhIGdpdmVuIHBvc2l0aW9uLlxuICBpZiAoYWxsb3dXaGl0ZXNwYWNlKSB7XG4gICAgY29sbGVjdEFTZXF1ZW5jZU9mQ29kZVBvaW50cyhcbiAgICAgIChjaGFyKSA9PiBjaGFyID09PSAnXFx0JyB8fCBjaGFyID09PSAnICcsXG4gICAgICBkYXRhLFxuICAgICAgcG9zaXRpb25cbiAgICApXG4gIH1cblxuICAvLyAxMS4gSWYgdGhlIGNvZGUgcG9pbnQgYXQgcG9zaXRpb24gd2l0aGluIGRhdGEgaXMgbm90IFUrMDAyRCAoLSksIHRoZW4gcmV0dXJuIGZhaWx1cmUuXG4gIGlmIChkYXRhLmNoYXJDb2RlQXQocG9zaXRpb24ucG9zaXRpb24pICE9PSAweDJEKSB7XG4gICAgcmV0dXJuICdmYWlsdXJlJ1xuICB9XG5cbiAgLy8gMTIuIEFkdmFuY2UgcG9zaXRpb24gYnkgMS5cbiAgcG9zaXRpb24ucG9zaXRpb24rK1xuXG4gIC8vIDEzLiBJZiBhbGxvd1doaXRlc3BhY2UgaXMgdHJ1ZSwgY29sbGVjdCBhIHNlcXVlbmNlIG9mIGNvZGUgcG9pbnRzIHRoYXQgYXJlIEhUVFAgdGFiXG4gIC8vICAgICBvciBzcGFjZSwgZnJvbSBkYXRhIGdpdmVuIHBvc2l0aW9uLlxuICAvLyBOb3RlIGZyb20gS2hhZnJhOiBpdHMgdGhlIHNhbWUgc3RlcCBhcyBpbiAjOCBhZ2FpbiBsb2xcbiAgaWYgKGFsbG93V2hpdGVzcGFjZSkge1xuICAgIGNvbGxlY3RBU2VxdWVuY2VPZkNvZGVQb2ludHMoXG4gICAgICAoY2hhcikgPT4gY2hhciA9PT0gJ1xcdCcgfHwgY2hhciA9PT0gJyAnLFxuICAgICAgZGF0YSxcbiAgICAgIHBvc2l0aW9uXG4gICAgKVxuICB9XG5cbiAgLy8gMTQuIExldCByYW5nZUVuZCBiZSB0aGUgcmVzdWx0IG9mIGNvbGxlY3RpbmcgYSBzZXF1ZW5jZSBvZiBjb2RlIHBvaW50cyB0aGF0IGFyZVxuICAvLyAgICAgQVNDSUkgZGlnaXRzLCBmcm9tIGRhdGEgZ2l2ZW4gcG9zaXRpb24uXG4gIC8vIE5vdGUgZnJvbSBLaGFmcmE6IHlvdSB3b3VsZG4ndCBndWVzcyBpdCwgYnV0IHRoaXMgaXMgYWxzbyB0aGUgc2FtZSBzdGVwIGFzICM4XG4gIGNvbnN0IHJhbmdlRW5kID0gY29sbGVjdEFTZXF1ZW5jZU9mQ29kZVBvaW50cyhcbiAgICAoY2hhcikgPT4ge1xuICAgICAgY29uc3QgY29kZSA9IGNoYXIuY2hhckNvZGVBdCgwKVxuXG4gICAgICByZXR1cm4gY29kZSA+PSAweDMwICYmIGNvZGUgPD0gMHgzOVxuICAgIH0sXG4gICAgZGF0YSxcbiAgICBwb3NpdGlvblxuICApXG5cbiAgLy8gMTUuIExldCByYW5nZUVuZFZhbHVlIGJlIHJhbmdlRW5kLCBpbnRlcnByZXRlZCBhcyBkZWNpbWFsIG51bWJlciwgaWYgcmFuZ2VFbmRcbiAgLy8gICAgIGlzIG5vdCB0aGUgZW1wdHkgc3RyaW5nOyBvdGhlcndpc2UgbnVsbC5cbiAgLy8gTm90ZSBmcm9tIEtoYWZyYTogVEhFIFNBTUUgU1RFUCwgQUdBSU4hISFcbiAgLy8gTm90ZTogd2h5IGludGVycHJldCBhcyBhIGRlY2ltYWwgaWYgd2Ugb25seSBjb2xsZWN0IGFzY2lpIGRpZ2l0cz9cbiAgY29uc3QgcmFuZ2VFbmRWYWx1ZSA9IHJhbmdlRW5kLmxlbmd0aCA/IE51bWJlcihyYW5nZUVuZCkgOiBudWxsXG5cbiAgLy8gMTYuIElmIHBvc2l0aW9uIGlzIG5vdCBwYXN0IHRoZSBlbmQgb2YgZGF0YSwgdGhlbiByZXR1cm4gZmFpbHVyZS5cbiAgaWYgKHBvc2l0aW9uLnBvc2l0aW9uIDwgZGF0YS5sZW5ndGgpIHtcbiAgICByZXR1cm4gJ2ZhaWx1cmUnXG4gIH1cblxuICAvLyAxNy4gSWYgcmFuZ2VFbmRWYWx1ZSBhbmQgcmFuZ2VTdGFydFZhbHVlIGFyZSBudWxsLCB0aGVuIHJldHVybiBmYWlsdXJlLlxuICBpZiAocmFuZ2VFbmRWYWx1ZSA9PT0gbnVsbCAmJiByYW5nZVN0YXJ0VmFsdWUgPT09IG51bGwpIHtcbiAgICByZXR1cm4gJ2ZhaWx1cmUnXG4gIH1cblxuICAvLyAxOC4gSWYgcmFuZ2VTdGFydFZhbHVlIGFuZCByYW5nZUVuZFZhbHVlIGFyZSBudW1iZXJzLCBhbmQgcmFuZ2VTdGFydFZhbHVlIGlzXG4gIC8vICAgICBncmVhdGVyIHRoYW4gcmFuZ2VFbmRWYWx1ZSwgdGhlbiByZXR1cm4gZmFpbHVyZS5cbiAgLy8gTm90ZTogLi4uIHdoZW4gY2FuIHRoZXkgbm90IGJlIG51bWJlcnM/XG4gIGlmIChyYW5nZVN0YXJ0VmFsdWUgPiByYW5nZUVuZFZhbHVlKSB7XG4gICAgcmV0dXJuICdmYWlsdXJlJ1xuICB9XG5cbiAgLy8gMTkuIFJldHVybiAocmFuZ2VTdGFydFZhbHVlLCByYW5nZUVuZFZhbHVlKS5cbiAgcmV0dXJuIHsgcmFuZ2VTdGFydFZhbHVlLCByYW5nZUVuZFZhbHVlIH1cbn1cblxuLyoqXG4gKiBAc2VlIGh0dHBzOi8vZmV0Y2guc3BlYy53aGF0d2cub3JnLyNidWlsZC1hLWNvbnRlbnQtcmFuZ2VcbiAqIEBwYXJhbSB7bnVtYmVyfSByYW5nZVN0YXJ0XG4gKiBAcGFyYW0ge251bWJlcn0gcmFuZ2VFbmRcbiAqIEBwYXJhbSB7bnVtYmVyfSBmdWxsTGVuZ3RoXG4gKi9cbmZ1bmN0aW9uIGJ1aWxkQ29udGVudFJhbmdlIChyYW5nZVN0YXJ0LCByYW5nZUVuZCwgZnVsbExlbmd0aCkge1xuICAvLyAxLiBMZXQgY29udGVudFJhbmdlIGJlIGBieXRlcyBgLlxuICBsZXQgY29udGVudFJhbmdlID0gJ2J5dGVzICdcblxuICAvLyAyLiBBcHBlbmQgcmFuZ2VTdGFydCwgc2VyaWFsaXplZCBhbmQgaXNvbW9ycGhpYyBlbmNvZGVkLCB0byBjb250ZW50UmFuZ2UuXG4gIGNvbnRlbnRSYW5nZSArPSBpc29tb3JwaGljRW5jb2RlKGAke3JhbmdlU3RhcnR9YClcblxuICAvLyAzLiBBcHBlbmQgMHgyRCAoLSkgdG8gY29udGVudFJhbmdlLlxuICBjb250ZW50UmFuZ2UgKz0gJy0nXG5cbiAgLy8gNC4gQXBwZW5kIHJhbmdlRW5kLCBzZXJpYWxpemVkIGFuZCBpc29tb3JwaGljIGVuY29kZWQgdG8gY29udGVudFJhbmdlLlxuICBjb250ZW50UmFuZ2UgKz0gaXNvbW9ycGhpY0VuY29kZShgJHtyYW5nZUVuZH1gKVxuXG4gIC8vIDUuIEFwcGVuZCAweDJGICgvKSB0byBjb250ZW50UmFuZ2UuXG4gIGNvbnRlbnRSYW5nZSArPSAnLydcblxuICAvLyA2LiBBcHBlbmQgZnVsbExlbmd0aCwgc2VyaWFsaXplZCBhbmQgaXNvbW9ycGhpYyBlbmNvZGVkIHRvIGNvbnRlbnRSYW5nZS5cbiAgY29udGVudFJhbmdlICs9IGlzb21vcnBoaWNFbmNvZGUoYCR7ZnVsbExlbmd0aH1gKVxuXG4gIC8vIDcuIFJldHVybiBjb250ZW50UmFuZ2UuXG4gIHJldHVybiBjb250ZW50UmFuZ2Vcbn1cblxuLy8gQSBTdHJlYW0sIHdoaWNoIHBpcGVzIHRoZSByZXNwb25zZSB0byB6bGliLmNyZWF0ZUluZmxhdGUoKSBvclxuLy8gemxpYi5jcmVhdGVJbmZsYXRlUmF3KCkgZGVwZW5kaW5nIG9uIHRoZSBmaXJzdCBieXRlIG9mIHRoZSBCdWZmZXIuXG4vLyBJZiB0aGUgbG93ZXIgYnl0ZSBvZiB0aGUgZmlyc3QgYnl0ZSBpcyAweDA4LCB0aGVuIHRoZSBzdHJlYW0gaXNcbi8vIGludGVycHJldGVkIGFzIGEgemxpYiBzdHJlYW0sIG90aGVyd2lzZSBpdCdzIGludGVycHJldGVkIGFzIGFcbi8vIHJhdyBkZWZsYXRlIHN0cmVhbS5cbmNsYXNzIEluZmxhdGVTdHJlYW0gZXh0ZW5kcyBUcmFuc2Zvcm0ge1xuICAjemxpYk9wdGlvbnNcblxuICAvKiogQHBhcmFtIHt6bGliLlpsaWJPcHRpb25zfSBbemxpYk9wdGlvbnNdICovXG4gIGNvbnN0cnVjdG9yICh6bGliT3B0aW9ucykge1xuICAgIHN1cGVyKClcbiAgICB0aGlzLiN6bGliT3B0aW9ucyA9IHpsaWJPcHRpb25zXG4gIH1cblxuICBfdHJhbnNmb3JtIChjaHVuaywgZW5jb2RpbmcsIGNhbGxiYWNrKSB7XG4gICAgaWYgKCF0aGlzLl9pbmZsYXRlU3RyZWFtKSB7XG4gICAgICBpZiAoY2h1bmsubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIGNhbGxiYWNrKClcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG4gICAgICB0aGlzLl9pbmZsYXRlU3RyZWFtID0gKGNodW5rWzBdICYgMHgwRikgPT09IDB4MDhcbiAgICAgICAgPyB6bGliLmNyZWF0ZUluZmxhdGUodGhpcy4jemxpYk9wdGlvbnMpXG4gICAgICAgIDogemxpYi5jcmVhdGVJbmZsYXRlUmF3KHRoaXMuI3psaWJPcHRpb25zKVxuXG4gICAgICB0aGlzLl9pbmZsYXRlU3RyZWFtLm9uKCdkYXRhJywgdGhpcy5wdXNoLmJpbmQodGhpcykpXG4gICAgICB0aGlzLl9pbmZsYXRlU3RyZWFtLm9uKCdlbmQnLCAoKSA9PiB0aGlzLnB1c2gobnVsbCkpXG4gICAgICB0aGlzLl9pbmZsYXRlU3RyZWFtLm9uKCdlcnJvcicsIChlcnIpID0+IHRoaXMuZGVzdHJveShlcnIpKVxuICAgIH1cblxuICAgIHRoaXMuX2luZmxhdGVTdHJlYW0ud3JpdGUoY2h1bmssIGVuY29kaW5nLCBjYWxsYmFjaylcbiAgfVxuXG4gIF9maW5hbCAoY2FsbGJhY2spIHtcbiAgICBpZiAodGhpcy5faW5mbGF0ZVN0cmVhbSkge1xuICAgICAgdGhpcy5faW5mbGF0ZVN0cmVhbS5lbmQoKVxuICAgICAgdGhpcy5faW5mbGF0ZVN0cmVhbSA9IG51bGxcbiAgICB9XG4gICAgY2FsbGJhY2soKVxuICB9XG59XG5cbi8qKlxuICogQHBhcmFtIHt6bGliLlpsaWJPcHRpb25zfSBbemxpYk9wdGlvbnNdXG4gKiBAcmV0dXJucyB7SW5mbGF0ZVN0cmVhbX1cbiAqL1xuZnVuY3Rpb24gY3JlYXRlSW5mbGF0ZSAoemxpYk9wdGlvbnMpIHtcbiAgcmV0dXJuIG5ldyBJbmZsYXRlU3RyZWFtKHpsaWJPcHRpb25zKVxufVxuXG4vKipcbiAqIEBzZWUgaHR0cHM6Ly9mZXRjaC5zcGVjLndoYXR3Zy5vcmcvI2NvbmNlcHQtaGVhZGVyLWV4dHJhY3QtbWltZS10eXBlXG4gKiBAcGFyYW0ge2ltcG9ydCgnLi9oZWFkZXJzJykuSGVhZGVyc0xpc3R9IGhlYWRlcnNcbiAqL1xuZnVuY3Rpb24gZXh0cmFjdE1pbWVUeXBlIChoZWFkZXJzKSB7XG4gIC8vIDEuIExldCBjaGFyc2V0IGJlIG51bGwuXG4gIGxldCBjaGFyc2V0ID0gbnVsbFxuXG4gIC8vIDIuIExldCBlc3NlbmNlIGJlIG51bGwuXG4gIGxldCBlc3NlbmNlID0gbnVsbFxuXG4gIC8vIDMuIExldCBtaW1lVHlwZSBiZSBudWxsLlxuICBsZXQgbWltZVR5cGUgPSBudWxsXG5cbiAgLy8gNC4gTGV0IHZhbHVlcyBiZSB0aGUgcmVzdWx0IG9mIGdldHRpbmcsIGRlY29kaW5nLCBhbmQgc3BsaXR0aW5nIGBDb250ZW50LVR5cGVgIGZyb20gaGVhZGVycy5cbiAgY29uc3QgdmFsdWVzID0gZ2V0RGVjb2RlU3BsaXQoJ2NvbnRlbnQtdHlwZScsIGhlYWRlcnMpXG5cbiAgLy8gNS4gSWYgdmFsdWVzIGlzIG51bGwsIHRoZW4gcmV0dXJuIGZhaWx1cmUuXG4gIGlmICh2YWx1ZXMgPT09IG51bGwpIHtcbiAgICByZXR1cm4gJ2ZhaWx1cmUnXG4gIH1cblxuICAvLyA2LiBGb3IgZWFjaCB2YWx1ZSBvZiB2YWx1ZXM6XG4gIGZvciAoY29uc3QgdmFsdWUgb2YgdmFsdWVzKSB7XG4gICAgLy8gNi4xLiBMZXQgdGVtcG9yYXJ5TWltZVR5cGUgYmUgdGhlIHJlc3VsdCBvZiBwYXJzaW5nIHZhbHVlLlxuICAgIGNvbnN0IHRlbXBvcmFyeU1pbWVUeXBlID0gcGFyc2VNSU1FVHlwZSh2YWx1ZSlcblxuICAgIC8vIDYuMi4gSWYgdGVtcG9yYXJ5TWltZVR5cGUgaXMgZmFpbHVyZSBvciBpdHMgZXNzZW5jZSBpcyBcIiovKlwiLCB0aGVuIGNvbnRpbnVlLlxuICAgIGlmICh0ZW1wb3JhcnlNaW1lVHlwZSA9PT0gJ2ZhaWx1cmUnIHx8IHRlbXBvcmFyeU1pbWVUeXBlLmVzc2VuY2UgPT09ICcqLyonKSB7XG4gICAgICBjb250aW51ZVxuICAgIH1cblxuICAgIC8vIDYuMy4gU2V0IG1pbWVUeXBlIHRvIHRlbXBvcmFyeU1pbWVUeXBlLlxuICAgIG1pbWVUeXBlID0gdGVtcG9yYXJ5TWltZVR5cGVcblxuICAgIC8vIDYuNC4gSWYgbWltZVR5cGVcdTIwMTlzIGVzc2VuY2UgaXMgbm90IGVzc2VuY2UsIHRoZW46XG4gICAgaWYgKG1pbWVUeXBlLmVzc2VuY2UgIT09IGVzc2VuY2UpIHtcbiAgICAgIC8vIDYuNC4xLiBTZXQgY2hhcnNldCB0byBudWxsLlxuICAgICAgY2hhcnNldCA9IG51bGxcblxuICAgICAgLy8gNi40LjIuIElmIG1pbWVUeXBlXHUyMDE5cyBwYXJhbWV0ZXJzW1wiY2hhcnNldFwiXSBleGlzdHMsIHRoZW4gc2V0IGNoYXJzZXQgdG9cbiAgICAgIC8vICAgICAgICBtaW1lVHlwZVx1MjAxOXMgcGFyYW1ldGVyc1tcImNoYXJzZXRcIl0uXG4gICAgICBpZiAobWltZVR5cGUucGFyYW1ldGVycy5oYXMoJ2NoYXJzZXQnKSkge1xuICAgICAgICBjaGFyc2V0ID0gbWltZVR5cGUucGFyYW1ldGVycy5nZXQoJ2NoYXJzZXQnKVxuICAgICAgfVxuXG4gICAgICAvLyA2LjQuMy4gU2V0IGVzc2VuY2UgdG8gbWltZVR5cGVcdTIwMTlzIGVzc2VuY2UuXG4gICAgICBlc3NlbmNlID0gbWltZVR5cGUuZXNzZW5jZVxuICAgIH0gZWxzZSBpZiAoIW1pbWVUeXBlLnBhcmFtZXRlcnMuaGFzKCdjaGFyc2V0JykgJiYgY2hhcnNldCAhPT0gbnVsbCkge1xuICAgICAgLy8gNi41LiBPdGhlcndpc2UsIGlmIG1pbWVUeXBlXHUyMDE5cyBwYXJhbWV0ZXJzW1wiY2hhcnNldFwiXSBkb2VzIG5vdCBleGlzdCwgYW5kXG4gICAgICAvLyAgICAgIGNoYXJzZXQgaXMgbm9uLW51bGwsIHNldCBtaW1lVHlwZVx1MjAxOXMgcGFyYW1ldGVyc1tcImNoYXJzZXRcIl0gdG8gY2hhcnNldC5cbiAgICAgIG1pbWVUeXBlLnBhcmFtZXRlcnMuc2V0KCdjaGFyc2V0JywgY2hhcnNldClcbiAgICB9XG4gIH1cblxuICAvLyA3LiBJZiBtaW1lVHlwZSBpcyBudWxsLCB0aGVuIHJldHVybiBmYWlsdXJlLlxuICBpZiAobWltZVR5cGUgPT0gbnVsbCkge1xuICAgIHJldHVybiAnZmFpbHVyZSdcbiAgfVxuXG4gIC8vIDguIFJldHVybiBtaW1lVHlwZS5cbiAgcmV0dXJuIG1pbWVUeXBlXG59XG5cbi8qKlxuICogQHNlZSBodHRwczovL2ZldGNoLnNwZWMud2hhdHdnLm9yZy8jaGVhZGVyLXZhbHVlLWdldC1kZWNvZGUtYW5kLXNwbGl0XG4gKiBAcGFyYW0ge3N0cmluZ3xudWxsfSB2YWx1ZVxuICovXG5mdW5jdGlvbiBnZXR0aW5nRGVjb2RpbmdTcGxpdHRpbmcgKHZhbHVlKSB7XG4gIC8vIDEuIExldCBpbnB1dCBiZSB0aGUgcmVzdWx0IG9mIGlzb21vcnBoaWMgZGVjb2RpbmcgdmFsdWUuXG4gIGNvbnN0IGlucHV0ID0gdmFsdWVcblxuICAvLyAyLiBMZXQgcG9zaXRpb24gYmUgYSBwb3NpdGlvbiB2YXJpYWJsZSBmb3IgaW5wdXQsIGluaXRpYWxseSBwb2ludGluZyBhdCB0aGUgc3RhcnQgb2YgaW5wdXQuXG4gIGNvbnN0IHBvc2l0aW9uID0geyBwb3NpdGlvbjogMCB9XG5cbiAgLy8gMy4gTGV0IHZhbHVlcyBiZSBhIGxpc3Qgb2Ygc3RyaW5ncywgaW5pdGlhbGx5IGVtcHR5LlxuICBjb25zdCB2YWx1ZXMgPSBbXVxuXG4gIC8vIDQuIExldCB0ZW1wb3JhcnlWYWx1ZSBiZSB0aGUgZW1wdHkgc3RyaW5nLlxuICBsZXQgdGVtcG9yYXJ5VmFsdWUgPSAnJ1xuXG4gIC8vIDUuIFdoaWxlIHBvc2l0aW9uIGlzIG5vdCBwYXN0IHRoZSBlbmQgb2YgaW5wdXQ6XG4gIHdoaWxlIChwb3NpdGlvbi5wb3NpdGlvbiA8IGlucHV0Lmxlbmd0aCkge1xuICAgIC8vIDUuMS4gQXBwZW5kIHRoZSByZXN1bHQgb2YgY29sbGVjdGluZyBhIHNlcXVlbmNlIG9mIGNvZGUgcG9pbnRzIHRoYXQgYXJlIG5vdCBVKzAwMjIgKFwiKVxuICAgIC8vICAgICAgb3IgVSswMDJDICgsKSBmcm9tIGlucHV0LCBnaXZlbiBwb3NpdGlvbiwgdG8gdGVtcG9yYXJ5VmFsdWUuXG4gICAgdGVtcG9yYXJ5VmFsdWUgKz0gY29sbGVjdEFTZXF1ZW5jZU9mQ29kZVBvaW50cyhcbiAgICAgIChjaGFyKSA9PiBjaGFyICE9PSAnXCInICYmIGNoYXIgIT09ICcsJyxcbiAgICAgIGlucHV0LFxuICAgICAgcG9zaXRpb25cbiAgICApXG5cbiAgICAvLyA1LjIuIElmIHBvc2l0aW9uIGlzIG5vdCBwYXN0IHRoZSBlbmQgb2YgaW5wdXQsIHRoZW46XG4gICAgaWYgKHBvc2l0aW9uLnBvc2l0aW9uIDwgaW5wdXQubGVuZ3RoKSB7XG4gICAgICAvLyA1LjIuMS4gSWYgdGhlIGNvZGUgcG9pbnQgYXQgcG9zaXRpb24gd2l0aGluIGlucHV0IGlzIFUrMDAyMiAoXCIpLCB0aGVuOlxuICAgICAgaWYgKGlucHV0LmNoYXJDb2RlQXQocG9zaXRpb24ucG9zaXRpb24pID09PSAweDIyKSB7XG4gICAgICAgIC8vIDUuMi4xLjEuIEFwcGVuZCB0aGUgcmVzdWx0IG9mIGNvbGxlY3RpbmcgYW4gSFRUUCBxdW90ZWQgc3RyaW5nIGZyb20gaW5wdXQsIGdpdmVuIHBvc2l0aW9uLCB0byB0ZW1wb3JhcnlWYWx1ZS5cbiAgICAgICAgdGVtcG9yYXJ5VmFsdWUgKz0gY29sbGVjdEFuSFRUUFF1b3RlZFN0cmluZyhcbiAgICAgICAgICBpbnB1dCxcbiAgICAgICAgICBwb3NpdGlvblxuICAgICAgICApXG5cbiAgICAgICAgLy8gNS4yLjEuMi4gSWYgcG9zaXRpb24gaXMgbm90IHBhc3QgdGhlIGVuZCBvZiBpbnB1dCwgdGhlbiBjb250aW51ZS5cbiAgICAgICAgaWYgKHBvc2l0aW9uLnBvc2l0aW9uIDwgaW5wdXQubGVuZ3RoKSB7XG4gICAgICAgICAgY29udGludWVcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gNS4yLjIuIE90aGVyd2lzZTpcblxuICAgICAgICAvLyA1LjIuMi4xLiBBc3NlcnQ6IHRoZSBjb2RlIHBvaW50IGF0IHBvc2l0aW9uIHdpdGhpbiBpbnB1dCBpcyBVKzAwMkMgKCwpLlxuICAgICAgICBhc3NlcnQoaW5wdXQuY2hhckNvZGVBdChwb3NpdGlvbi5wb3NpdGlvbikgPT09IDB4MkMpXG5cbiAgICAgICAgLy8gNS4yLjIuMi4gQWR2YW5jZSBwb3NpdGlvbiBieSAxLlxuICAgICAgICBwb3NpdGlvbi5wb3NpdGlvbisrXG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gNS4zLiBSZW1vdmUgYWxsIEhUVFAgdGFiIG9yIHNwYWNlIGZyb20gdGhlIHN0YXJ0IGFuZCBlbmQgb2YgdGVtcG9yYXJ5VmFsdWUuXG4gICAgdGVtcG9yYXJ5VmFsdWUgPSByZW1vdmVDaGFycyh0ZW1wb3JhcnlWYWx1ZSwgdHJ1ZSwgdHJ1ZSwgKGNoYXIpID0+IGNoYXIgPT09IDB4OSB8fCBjaGFyID09PSAweDIwKVxuXG4gICAgLy8gNS40LiBBcHBlbmQgdGVtcG9yYXJ5VmFsdWUgdG8gdmFsdWVzLlxuICAgIHZhbHVlcy5wdXNoKHRlbXBvcmFyeVZhbHVlKVxuXG4gICAgLy8gNS42LiBTZXQgdGVtcG9yYXJ5VmFsdWUgdG8gdGhlIGVtcHR5IHN0cmluZy5cbiAgICB0ZW1wb3JhcnlWYWx1ZSA9ICcnXG4gIH1cblxuICAvLyA2LiBSZXR1cm4gdmFsdWVzLlxuICByZXR1cm4gdmFsdWVzXG59XG5cbi8qKlxuICogQHNlZSBodHRwczovL2ZldGNoLnNwZWMud2hhdHdnLm9yZy8jY29uY2VwdC1oZWFkZXItbGlzdC1nZXQtZGVjb2RlLXNwbGl0XG4gKiBAcGFyYW0ge3N0cmluZ30gbmFtZSBsb3dlcmNhc2UgaGVhZGVyIG5hbWVcbiAqIEBwYXJhbSB7aW1wb3J0KCcuL2hlYWRlcnMnKS5IZWFkZXJzTGlzdH0gbGlzdFxuICovXG5mdW5jdGlvbiBnZXREZWNvZGVTcGxpdCAobmFtZSwgbGlzdCkge1xuICAvLyAxLiBMZXQgdmFsdWUgYmUgdGhlIHJlc3VsdCBvZiBnZXR0aW5nIG5hbWUgZnJvbSBsaXN0LlxuICBjb25zdCB2YWx1ZSA9IGxpc3QuZ2V0KG5hbWUsIHRydWUpXG5cbiAgLy8gMi4gSWYgdmFsdWUgaXMgbnVsbCwgdGhlbiByZXR1cm4gbnVsbC5cbiAgaWYgKHZhbHVlID09PSBudWxsKSB7XG4gICAgcmV0dXJuIG51bGxcbiAgfVxuXG4gIC8vIDMuIFJldHVybiB0aGUgcmVzdWx0IG9mIGdldHRpbmcsIGRlY29kaW5nLCBhbmQgc3BsaXR0aW5nIHZhbHVlLlxuICByZXR1cm4gZ2V0dGluZ0RlY29kaW5nU3BsaXR0aW5nKHZhbHVlKVxufVxuXG5jb25zdCB0ZXh0RGVjb2RlciA9IG5ldyBUZXh0RGVjb2RlcigpXG5cbi8qKlxuICogQHNlZSBodHRwczovL2VuY29kaW5nLnNwZWMud2hhdHdnLm9yZy8jdXRmLTgtZGVjb2RlXG4gKiBAcGFyYW0ge0J1ZmZlcn0gYnVmZmVyXG4gKi9cbmZ1bmN0aW9uIHV0ZjhEZWNvZGVCeXRlcyAoYnVmZmVyKSB7XG4gIGlmIChidWZmZXIubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuICcnXG4gIH1cblxuICAvLyAxLiBMZXQgYnVmZmVyIGJlIHRoZSByZXN1bHQgb2YgcGVla2luZyB0aHJlZSBieXRlcyBmcm9tXG4gIC8vICAgIGlvUXVldWUsIGNvbnZlcnRlZCB0byBhIGJ5dGUgc2VxdWVuY2UuXG5cbiAgLy8gMi4gSWYgYnVmZmVyIGlzIDB4RUYgMHhCQiAweEJGLCB0aGVuIHJlYWQgdGhyZWVcbiAgLy8gICAgYnl0ZXMgZnJvbSBpb1F1ZXVlLiAoRG8gbm90aGluZyB3aXRoIHRob3NlIGJ5dGVzLilcbiAgaWYgKGJ1ZmZlclswXSA9PT0gMHhFRiAmJiBidWZmZXJbMV0gPT09IDB4QkIgJiYgYnVmZmVyWzJdID09PSAweEJGKSB7XG4gICAgYnVmZmVyID0gYnVmZmVyLnN1YmFycmF5KDMpXG4gIH1cblxuICAvLyAzLiBQcm9jZXNzIGEgcXVldWUgd2l0aCBhbiBpbnN0YW5jZSBvZiBVVEYtOFx1MjAxOXNcbiAgLy8gICAgZGVjb2RlciwgaW9RdWV1ZSwgb3V0cHV0LCBhbmQgXCJyZXBsYWNlbWVudFwiLlxuICBjb25zdCBvdXRwdXQgPSB0ZXh0RGVjb2Rlci5kZWNvZGUoYnVmZmVyKVxuXG4gIC8vIDQuIFJldHVybiBvdXRwdXQuXG4gIHJldHVybiBvdXRwdXRcbn1cblxuY2xhc3MgRW52aXJvbm1lbnRTZXR0aW5nc09iamVjdEJhc2Uge1xuICBnZXQgYmFzZVVybCAoKSB7XG4gICAgcmV0dXJuIGdldEdsb2JhbE9yaWdpbigpXG4gIH1cblxuICBnZXQgb3JpZ2luICgpIHtcbiAgICByZXR1cm4gdGhpcy5iYXNlVXJsPy5vcmlnaW5cbiAgfVxuXG4gIHBvbGljeUNvbnRhaW5lciA9IG1ha2VQb2xpY3lDb250YWluZXIoKVxufVxuXG5jbGFzcyBFbnZpcm9ubWVudFNldHRpbmdzT2JqZWN0IHtcbiAgc2V0dGluZ3NPYmplY3QgPSBuZXcgRW52aXJvbm1lbnRTZXR0aW5nc09iamVjdEJhc2UoKVxufVxuXG5jb25zdCBlbnZpcm9ubWVudFNldHRpbmdzT2JqZWN0ID0gbmV3IEVudmlyb25tZW50U2V0dGluZ3NPYmplY3QoKVxuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgaXNBYm9ydGVkLFxuICBpc0NhbmNlbGxlZCxcbiAgaXNWYWxpZEVuY29kZWRVUkwsXG4gIGNyZWF0ZURlZmVycmVkUHJvbWlzZSxcbiAgUmVhZGFibGVTdHJlYW1Gcm9tLFxuICB0cnlVcGdyYWRlUmVxdWVzdFRvQVBvdGVudGlhbGx5VHJ1c3R3b3J0aHlVUkwsXG4gIGNsYW1wQW5kQ29hcnNlbkNvbm5lY3Rpb25UaW1pbmdJbmZvLFxuICBjb2Fyc2VuZWRTaGFyZWRDdXJyZW50VGltZSxcbiAgZGV0ZXJtaW5lUmVxdWVzdHNSZWZlcnJlcixcbiAgbWFrZVBvbGljeUNvbnRhaW5lcixcbiAgY2xvbmVQb2xpY3lDb250YWluZXIsXG4gIGFwcGVuZEZldGNoTWV0YWRhdGEsXG4gIGFwcGVuZFJlcXVlc3RPcmlnaW5IZWFkZXIsXG4gIFRBT0NoZWNrLFxuICBjb3JzQ2hlY2ssXG4gIGNyb3NzT3JpZ2luUmVzb3VyY2VQb2xpY3lDaGVjayxcbiAgY3JlYXRlT3BhcXVlVGltaW5nSW5mbyxcbiAgc2V0UmVxdWVzdFJlZmVycmVyUG9saWN5T25SZWRpcmVjdCxcbiAgaXNWYWxpZEhUVFBUb2tlbixcbiAgcmVxdWVzdEJhZFBvcnQsXG4gIHJlcXVlc3RDdXJyZW50VVJMLFxuICByZXNwb25zZVVSTCxcbiAgcmVzcG9uc2VMb2NhdGlvblVSTCxcbiAgaXNCbG9iTGlrZSxcbiAgaXNVUkxQb3RlbnRpYWxseVRydXN0d29ydGh5LFxuICBpc1ZhbGlkUmVhc29uUGhyYXNlLFxuICBzYW1lT3JpZ2luLFxuICBub3JtYWxpemVNZXRob2QsXG4gIHNlcmlhbGl6ZUphdmFzY3JpcHRWYWx1ZVRvSlNPTlN0cmluZyxcbiAgaXRlcmF0b3JNaXhpbixcbiAgY3JlYXRlSXRlcmF0b3IsXG4gIGlzVmFsaWRIZWFkZXJOYW1lLFxuICBpc1ZhbGlkSGVhZGVyVmFsdWUsXG4gIGlzRXJyb3JMaWtlLFxuICBmdWxseVJlYWRCb2R5LFxuICBieXRlc01hdGNoLFxuICBpc1JlYWRhYmxlU3RyZWFtTGlrZSxcbiAgcmVhZGFibGVTdHJlYW1DbG9zZSxcbiAgaXNvbW9ycGhpY0VuY29kZSxcbiAgdXJsSXNMb2NhbCxcbiAgdXJsSGFzSHR0cHNTY2hlbWUsXG4gIHVybElzSHR0cEh0dHBzU2NoZW1lLFxuICByZWFkQWxsQnl0ZXMsXG4gIHNpbXBsZVJhbmdlSGVhZGVyVmFsdWUsXG4gIGJ1aWxkQ29udGVudFJhbmdlLFxuICBwYXJzZU1ldGFkYXRhLFxuICBjcmVhdGVJbmZsYXRlLFxuICBleHRyYWN0TWltZVR5cGUsXG4gIGdldERlY29kZVNwbGl0LFxuICB1dGY4RGVjb2RlQnl0ZXMsXG4gIGVudmlyb25tZW50U2V0dGluZ3NPYmplY3Rcbn1cbiIsICIndXNlIHN0cmljdCdcblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gIGtVcmw6IFN5bWJvbCgndXJsJyksXG4gIGtIZWFkZXJzOiBTeW1ib2woJ2hlYWRlcnMnKSxcbiAga1NpZ25hbDogU3ltYm9sKCdzaWduYWwnKSxcbiAga1N0YXRlOiBTeW1ib2woJ3N0YXRlJyksXG4gIGtEaXNwYXRjaGVyOiBTeW1ib2woJ2Rpc3BhdGNoZXInKVxufVxuIiwgIid1c2Ugc3RyaWN0J1xuXG5jb25zdCB7IEJsb2IsIEZpbGUgfSA9IHJlcXVpcmUoJ25vZGU6YnVmZmVyJylcbmNvbnN0IHsga1N0YXRlIH0gPSByZXF1aXJlKCcuL3N5bWJvbHMnKVxuY29uc3QgeyB3ZWJpZGwgfSA9IHJlcXVpcmUoJy4vd2ViaWRsJylcblxuLy8gVE9ETyhAS2hhZnJhRGV2KTogcmVtb3ZlXG5jbGFzcyBGaWxlTGlrZSB7XG4gIGNvbnN0cnVjdG9yIChibG9iTGlrZSwgZmlsZU5hbWUsIG9wdGlvbnMgPSB7fSkge1xuICAgIC8vIFRPRE86IGFyZ3VtZW50IGlkbCB0eXBlIGNoZWNrXG5cbiAgICAvLyBUaGUgRmlsZSBjb25zdHJ1Y3RvciBpcyBpbnZva2VkIHdpdGggdHdvIG9yIHRocmVlIHBhcmFtZXRlcnMsIGRlcGVuZGluZ1xuICAgIC8vIG9uIHdoZXRoZXIgdGhlIG9wdGlvbmFsIGRpY3Rpb25hcnkgcGFyYW1ldGVyIGlzIHVzZWQuIFdoZW4gdGhlIEZpbGUoKVxuICAgIC8vIGNvbnN0cnVjdG9yIGlzIGludm9rZWQsIHVzZXIgYWdlbnRzIG11c3QgcnVuIHRoZSBmb2xsb3dpbmcgc3RlcHM6XG5cbiAgICAvLyAxLiBMZXQgYnl0ZXMgYmUgdGhlIHJlc3VsdCBvZiBwcm9jZXNzaW5nIGJsb2IgcGFydHMgZ2l2ZW4gZmlsZUJpdHMgYW5kXG4gICAgLy8gb3B0aW9ucy5cblxuICAgIC8vIDIuIExldCBuIGJlIHRoZSBmaWxlTmFtZSBhcmd1bWVudCB0byB0aGUgY29uc3RydWN0b3IuXG4gICAgY29uc3QgbiA9IGZpbGVOYW1lXG5cbiAgICAvLyAzLiBQcm9jZXNzIEZpbGVQcm9wZXJ0eUJhZyBkaWN0aW9uYXJ5IGFyZ3VtZW50IGJ5IHJ1bm5pbmcgdGhlIGZvbGxvd2luZ1xuICAgIC8vIHN1YnN0ZXBzOlxuXG4gICAgLy8gICAgMS4gSWYgdGhlIHR5cGUgbWVtYmVyIGlzIHByb3ZpZGVkIGFuZCBpcyBub3QgdGhlIGVtcHR5IHN0cmluZywgbGV0IHRcbiAgICAvLyAgICBiZSBzZXQgdG8gdGhlIHR5cGUgZGljdGlvbmFyeSBtZW1iZXIuIElmIHQgY29udGFpbnMgYW55IGNoYXJhY3RlcnNcbiAgICAvLyAgICBvdXRzaWRlIHRoZSByYW5nZSBVKzAwMjAgdG8gVSswMDdFLCB0aGVuIHNldCB0IHRvIHRoZSBlbXB0eSBzdHJpbmdcbiAgICAvLyAgICBhbmQgcmV0dXJuIGZyb20gdGhlc2Ugc3Vic3RlcHMuXG4gICAgLy8gICAgVE9ET1xuICAgIGNvbnN0IHQgPSBvcHRpb25zLnR5cGVcblxuICAgIC8vICAgIDIuIENvbnZlcnQgZXZlcnkgY2hhcmFjdGVyIGluIHQgdG8gQVNDSUkgbG93ZXJjYXNlLlxuICAgIC8vICAgIFRPRE9cblxuICAgIC8vICAgIDMuIElmIHRoZSBsYXN0TW9kaWZpZWQgbWVtYmVyIGlzIHByb3ZpZGVkLCBsZXQgZCBiZSBzZXQgdG8gdGhlXG4gICAgLy8gICAgbGFzdE1vZGlmaWVkIGRpY3Rpb25hcnkgbWVtYmVyLiBJZiBpdCBpcyBub3QgcHJvdmlkZWQsIHNldCBkIHRvIHRoZVxuICAgIC8vICAgIGN1cnJlbnQgZGF0ZSBhbmQgdGltZSByZXByZXNlbnRlZCBhcyB0aGUgbnVtYmVyIG9mIG1pbGxpc2Vjb25kcyBzaW5jZVxuICAgIC8vICAgIHRoZSBVbml4IEVwb2NoICh3aGljaCBpcyB0aGUgZXF1aXZhbGVudCBvZiBEYXRlLm5vdygpIFtFQ01BLTI2Ml0pLlxuICAgIGNvbnN0IGQgPSBvcHRpb25zLmxhc3RNb2RpZmllZCA/PyBEYXRlLm5vdygpXG5cbiAgICAvLyA0LiBSZXR1cm4gYSBuZXcgRmlsZSBvYmplY3QgRiBzdWNoIHRoYXQ6XG4gICAgLy8gRiByZWZlcnMgdG8gdGhlIGJ5dGVzIGJ5dGUgc2VxdWVuY2UuXG4gICAgLy8gRi5zaXplIGlzIHNldCB0byB0aGUgbnVtYmVyIG9mIHRvdGFsIGJ5dGVzIGluIGJ5dGVzLlxuICAgIC8vIEYubmFtZSBpcyBzZXQgdG8gbi5cbiAgICAvLyBGLnR5cGUgaXMgc2V0IHRvIHQuXG4gICAgLy8gRi5sYXN0TW9kaWZpZWQgaXMgc2V0IHRvIGQuXG5cbiAgICB0aGlzW2tTdGF0ZV0gPSB7XG4gICAgICBibG9iTGlrZSxcbiAgICAgIG5hbWU6IG4sXG4gICAgICB0eXBlOiB0LFxuICAgICAgbGFzdE1vZGlmaWVkOiBkXG4gICAgfVxuICB9XG5cbiAgc3RyZWFtICguLi5hcmdzKSB7XG4gICAgd2ViaWRsLmJyYW5kQ2hlY2sodGhpcywgRmlsZUxpa2UpXG5cbiAgICByZXR1cm4gdGhpc1trU3RhdGVdLmJsb2JMaWtlLnN0cmVhbSguLi5hcmdzKVxuICB9XG5cbiAgYXJyYXlCdWZmZXIgKC4uLmFyZ3MpIHtcbiAgICB3ZWJpZGwuYnJhbmRDaGVjayh0aGlzLCBGaWxlTGlrZSlcblxuICAgIHJldHVybiB0aGlzW2tTdGF0ZV0uYmxvYkxpa2UuYXJyYXlCdWZmZXIoLi4uYXJncylcbiAgfVxuXG4gIHNsaWNlICguLi5hcmdzKSB7XG4gICAgd2ViaWRsLmJyYW5kQ2hlY2sodGhpcywgRmlsZUxpa2UpXG5cbiAgICByZXR1cm4gdGhpc1trU3RhdGVdLmJsb2JMaWtlLnNsaWNlKC4uLmFyZ3MpXG4gIH1cblxuICB0ZXh0ICguLi5hcmdzKSB7XG4gICAgd2ViaWRsLmJyYW5kQ2hlY2sodGhpcywgRmlsZUxpa2UpXG5cbiAgICByZXR1cm4gdGhpc1trU3RhdGVdLmJsb2JMaWtlLnRleHQoLi4uYXJncylcbiAgfVxuXG4gIGdldCBzaXplICgpIHtcbiAgICB3ZWJpZGwuYnJhbmRDaGVjayh0aGlzLCBGaWxlTGlrZSlcblxuICAgIHJldHVybiB0aGlzW2tTdGF0ZV0uYmxvYkxpa2Uuc2l6ZVxuICB9XG5cbiAgZ2V0IHR5cGUgKCkge1xuICAgIHdlYmlkbC5icmFuZENoZWNrKHRoaXMsIEZpbGVMaWtlKVxuXG4gICAgcmV0dXJuIHRoaXNba1N0YXRlXS5ibG9iTGlrZS50eXBlXG4gIH1cblxuICBnZXQgbmFtZSAoKSB7XG4gICAgd2ViaWRsLmJyYW5kQ2hlY2sodGhpcywgRmlsZUxpa2UpXG5cbiAgICByZXR1cm4gdGhpc1trU3RhdGVdLm5hbWVcbiAgfVxuXG4gIGdldCBsYXN0TW9kaWZpZWQgKCkge1xuICAgIHdlYmlkbC5icmFuZENoZWNrKHRoaXMsIEZpbGVMaWtlKVxuXG4gICAgcmV0dXJuIHRoaXNba1N0YXRlXS5sYXN0TW9kaWZpZWRcbiAgfVxuXG4gIGdldCBbU3ltYm9sLnRvU3RyaW5nVGFnXSAoKSB7XG4gICAgcmV0dXJuICdGaWxlJ1xuICB9XG59XG5cbndlYmlkbC5jb252ZXJ0ZXJzLkJsb2IgPSB3ZWJpZGwuaW50ZXJmYWNlQ29udmVydGVyKEJsb2IpXG5cbi8vIElmIHRoaXMgZnVuY3Rpb24gaXMgbW92ZWQgdG8gLi91dGlsLmpzLCBzb21lIHRvb2xzIChzdWNoIGFzXG4vLyByb2xsdXApIHdpbGwgd2FybiBhYm91dCBjaXJjdWxhciBkZXBlbmRlbmNpZXMuIFNlZTpcbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9ub2RlanMvdW5kaWNpL2lzc3Vlcy8xNjI5XG5mdW5jdGlvbiBpc0ZpbGVMaWtlIChvYmplY3QpIHtcbiAgcmV0dXJuIChcbiAgICAob2JqZWN0IGluc3RhbmNlb2YgRmlsZSkgfHxcbiAgICAoXG4gICAgICBvYmplY3QgJiZcbiAgICAgICh0eXBlb2Ygb2JqZWN0LnN0cmVhbSA9PT0gJ2Z1bmN0aW9uJyB8fFxuICAgICAgdHlwZW9mIG9iamVjdC5hcnJheUJ1ZmZlciA9PT0gJ2Z1bmN0aW9uJykgJiZcbiAgICAgIG9iamVjdFtTeW1ib2wudG9TdHJpbmdUYWddID09PSAnRmlsZSdcbiAgICApXG4gIClcbn1cblxubW9kdWxlLmV4cG9ydHMgPSB7IEZpbGVMaWtlLCBpc0ZpbGVMaWtlIH1cbiIsICIndXNlIHN0cmljdCdcblxuY29uc3QgeyBpc0Jsb2JMaWtlLCBpdGVyYXRvck1peGluIH0gPSByZXF1aXJlKCcuL3V0aWwnKVxuY29uc3QgeyBrU3RhdGUgfSA9IHJlcXVpcmUoJy4vc3ltYm9scycpXG5jb25zdCB7IGtFbnVtZXJhYmxlUHJvcGVydHkgfSA9IHJlcXVpcmUoJy4uLy4uL2NvcmUvdXRpbCcpXG5jb25zdCB7IEZpbGVMaWtlLCBpc0ZpbGVMaWtlIH0gPSByZXF1aXJlKCcuL2ZpbGUnKVxuY29uc3QgeyB3ZWJpZGwgfSA9IHJlcXVpcmUoJy4vd2ViaWRsJylcbmNvbnN0IHsgRmlsZTogTmF0aXZlRmlsZSB9ID0gcmVxdWlyZSgnbm9kZTpidWZmZXInKVxuY29uc3Qgbm9kZVV0aWwgPSByZXF1aXJlKCdub2RlOnV0aWwnKVxuXG4vKiogQHR5cGUge2dsb2JhbFRoaXNbJ0ZpbGUnXX0gKi9cbmNvbnN0IEZpbGUgPSBnbG9iYWxUaGlzLkZpbGUgPz8gTmF0aXZlRmlsZVxuXG4vLyBodHRwczovL3hoci5zcGVjLndoYXR3Zy5vcmcvI2Zvcm1kYXRhXG5jbGFzcyBGb3JtRGF0YSB7XG4gIGNvbnN0cnVjdG9yIChmb3JtKSB7XG4gICAgd2ViaWRsLnV0aWwubWFya0FzVW5jbG9uZWFibGUodGhpcylcblxuICAgIGlmIChmb3JtICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRocm93IHdlYmlkbC5lcnJvcnMuY29udmVyc2lvbkZhaWxlZCh7XG4gICAgICAgIHByZWZpeDogJ0Zvcm1EYXRhIGNvbnN0cnVjdG9yJyxcbiAgICAgICAgYXJndW1lbnQ6ICdBcmd1bWVudCAxJyxcbiAgICAgICAgdHlwZXM6IFsndW5kZWZpbmVkJ11cbiAgICAgIH0pXG4gICAgfVxuXG4gICAgdGhpc1trU3RhdGVdID0gW11cbiAgfVxuXG4gIGFwcGVuZCAobmFtZSwgdmFsdWUsIGZpbGVuYW1lID0gdW5kZWZpbmVkKSB7XG4gICAgd2ViaWRsLmJyYW5kQ2hlY2sodGhpcywgRm9ybURhdGEpXG5cbiAgICBjb25zdCBwcmVmaXggPSAnRm9ybURhdGEuYXBwZW5kJ1xuICAgIHdlYmlkbC5hcmd1bWVudExlbmd0aENoZWNrKGFyZ3VtZW50cywgMiwgcHJlZml4KVxuXG4gICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDMgJiYgIWlzQmxvYkxpa2UodmFsdWUpKSB7XG4gICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFxuICAgICAgICBcIkZhaWxlZCB0byBleGVjdXRlICdhcHBlbmQnIG9uICdGb3JtRGF0YSc6IHBhcmFtZXRlciAyIGlzIG5vdCBvZiB0eXBlICdCbG9iJ1wiXG4gICAgICApXG4gICAgfVxuXG4gICAgLy8gMS4gTGV0IHZhbHVlIGJlIHZhbHVlIGlmIGdpdmVuOyBvdGhlcndpc2UgYmxvYlZhbHVlLlxuXG4gICAgbmFtZSA9IHdlYmlkbC5jb252ZXJ0ZXJzLlVTVlN0cmluZyhuYW1lLCBwcmVmaXgsICduYW1lJylcbiAgICB2YWx1ZSA9IGlzQmxvYkxpa2UodmFsdWUpXG4gICAgICA/IHdlYmlkbC5jb252ZXJ0ZXJzLkJsb2IodmFsdWUsIHByZWZpeCwgJ3ZhbHVlJywgeyBzdHJpY3Q6IGZhbHNlIH0pXG4gICAgICA6IHdlYmlkbC5jb252ZXJ0ZXJzLlVTVlN0cmluZyh2YWx1ZSwgcHJlZml4LCAndmFsdWUnKVxuICAgIGZpbGVuYW1lID0gYXJndW1lbnRzLmxlbmd0aCA9PT0gM1xuICAgICAgPyB3ZWJpZGwuY29udmVydGVycy5VU1ZTdHJpbmcoZmlsZW5hbWUsIHByZWZpeCwgJ2ZpbGVuYW1lJylcbiAgICAgIDogdW5kZWZpbmVkXG5cbiAgICAvLyAyLiBMZXQgZW50cnkgYmUgdGhlIHJlc3VsdCBvZiBjcmVhdGluZyBhbiBlbnRyeSB3aXRoXG4gICAgLy8gbmFtZSwgdmFsdWUsIGFuZCBmaWxlbmFtZSBpZiBnaXZlbi5cbiAgICBjb25zdCBlbnRyeSA9IG1ha2VFbnRyeShuYW1lLCB2YWx1ZSwgZmlsZW5hbWUpXG5cbiAgICAvLyAzLiBBcHBlbmQgZW50cnkgdG8gdGhpc1x1MjAxOXMgZW50cnkgbGlzdC5cbiAgICB0aGlzW2tTdGF0ZV0ucHVzaChlbnRyeSlcbiAgfVxuXG4gIGRlbGV0ZSAobmFtZSkge1xuICAgIHdlYmlkbC5icmFuZENoZWNrKHRoaXMsIEZvcm1EYXRhKVxuXG4gICAgY29uc3QgcHJlZml4ID0gJ0Zvcm1EYXRhLmRlbGV0ZSdcbiAgICB3ZWJpZGwuYXJndW1lbnRMZW5ndGhDaGVjayhhcmd1bWVudHMsIDEsIHByZWZpeClcblxuICAgIG5hbWUgPSB3ZWJpZGwuY29udmVydGVycy5VU1ZTdHJpbmcobmFtZSwgcHJlZml4LCAnbmFtZScpXG5cbiAgICAvLyBUaGUgZGVsZXRlKG5hbWUpIG1ldGhvZCBzdGVwcyBhcmUgdG8gcmVtb3ZlIGFsbCBlbnRyaWVzIHdob3NlIG5hbWVcbiAgICAvLyBpcyBuYW1lIGZyb20gdGhpc1x1MjAxOXMgZW50cnkgbGlzdC5cbiAgICB0aGlzW2tTdGF0ZV0gPSB0aGlzW2tTdGF0ZV0uZmlsdGVyKGVudHJ5ID0+IGVudHJ5Lm5hbWUgIT09IG5hbWUpXG4gIH1cblxuICBnZXQgKG5hbWUpIHtcbiAgICB3ZWJpZGwuYnJhbmRDaGVjayh0aGlzLCBGb3JtRGF0YSlcblxuICAgIGNvbnN0IHByZWZpeCA9ICdGb3JtRGF0YS5nZXQnXG4gICAgd2ViaWRsLmFyZ3VtZW50TGVuZ3RoQ2hlY2soYXJndW1lbnRzLCAxLCBwcmVmaXgpXG5cbiAgICBuYW1lID0gd2ViaWRsLmNvbnZlcnRlcnMuVVNWU3RyaW5nKG5hbWUsIHByZWZpeCwgJ25hbWUnKVxuXG4gICAgLy8gMS4gSWYgdGhlcmUgaXMgbm8gZW50cnkgd2hvc2UgbmFtZSBpcyBuYW1lIGluIHRoaXNcdTIwMTlzIGVudHJ5IGxpc3QsXG4gICAgLy8gdGhlbiByZXR1cm4gbnVsbC5cbiAgICBjb25zdCBpZHggPSB0aGlzW2tTdGF0ZV0uZmluZEluZGV4KChlbnRyeSkgPT4gZW50cnkubmFtZSA9PT0gbmFtZSlcbiAgICBpZiAoaWR4ID09PSAtMSkge1xuICAgICAgcmV0dXJuIG51bGxcbiAgICB9XG5cbiAgICAvLyAyLiBSZXR1cm4gdGhlIHZhbHVlIG9mIHRoZSBmaXJzdCBlbnRyeSB3aG9zZSBuYW1lIGlzIG5hbWUgZnJvbVxuICAgIC8vIHRoaXNcdTIwMTlzIGVudHJ5IGxpc3QuXG4gICAgcmV0dXJuIHRoaXNba1N0YXRlXVtpZHhdLnZhbHVlXG4gIH1cblxuICBnZXRBbGwgKG5hbWUpIHtcbiAgICB3ZWJpZGwuYnJhbmRDaGVjayh0aGlzLCBGb3JtRGF0YSlcblxuICAgIGNvbnN0IHByZWZpeCA9ICdGb3JtRGF0YS5nZXRBbGwnXG4gICAgd2ViaWRsLmFyZ3VtZW50TGVuZ3RoQ2hlY2soYXJndW1lbnRzLCAxLCBwcmVmaXgpXG5cbiAgICBuYW1lID0gd2ViaWRsLmNvbnZlcnRlcnMuVVNWU3RyaW5nKG5hbWUsIHByZWZpeCwgJ25hbWUnKVxuXG4gICAgLy8gMS4gSWYgdGhlcmUgaXMgbm8gZW50cnkgd2hvc2UgbmFtZSBpcyBuYW1lIGluIHRoaXNcdTIwMTlzIGVudHJ5IGxpc3QsXG4gICAgLy8gdGhlbiByZXR1cm4gdGhlIGVtcHR5IGxpc3QuXG4gICAgLy8gMi4gUmV0dXJuIHRoZSB2YWx1ZXMgb2YgYWxsIGVudHJpZXMgd2hvc2UgbmFtZSBpcyBuYW1lLCBpbiBvcmRlcixcbiAgICAvLyBmcm9tIHRoaXNcdTIwMTlzIGVudHJ5IGxpc3QuXG4gICAgcmV0dXJuIHRoaXNba1N0YXRlXVxuICAgICAgLmZpbHRlcigoZW50cnkpID0+IGVudHJ5Lm5hbWUgPT09IG5hbWUpXG4gICAgICAubWFwKChlbnRyeSkgPT4gZW50cnkudmFsdWUpXG4gIH1cblxuICBoYXMgKG5hbWUpIHtcbiAgICB3ZWJpZGwuYnJhbmRDaGVjayh0aGlzLCBGb3JtRGF0YSlcblxuICAgIGNvbnN0IHByZWZpeCA9ICdGb3JtRGF0YS5oYXMnXG4gICAgd2ViaWRsLmFyZ3VtZW50TGVuZ3RoQ2hlY2soYXJndW1lbnRzLCAxLCBwcmVmaXgpXG5cbiAgICBuYW1lID0gd2ViaWRsLmNvbnZlcnRlcnMuVVNWU3RyaW5nKG5hbWUsIHByZWZpeCwgJ25hbWUnKVxuXG4gICAgLy8gVGhlIGhhcyhuYW1lKSBtZXRob2Qgc3RlcHMgYXJlIHRvIHJldHVybiB0cnVlIGlmIHRoZXJlIGlzIGFuIGVudHJ5XG4gICAgLy8gd2hvc2UgbmFtZSBpcyBuYW1lIGluIHRoaXNcdTIwMTlzIGVudHJ5IGxpc3Q7IG90aGVyd2lzZSBmYWxzZS5cbiAgICByZXR1cm4gdGhpc1trU3RhdGVdLmZpbmRJbmRleCgoZW50cnkpID0+IGVudHJ5Lm5hbWUgPT09IG5hbWUpICE9PSAtMVxuICB9XG5cbiAgc2V0IChuYW1lLCB2YWx1ZSwgZmlsZW5hbWUgPSB1bmRlZmluZWQpIHtcbiAgICB3ZWJpZGwuYnJhbmRDaGVjayh0aGlzLCBGb3JtRGF0YSlcblxuICAgIGNvbnN0IHByZWZpeCA9ICdGb3JtRGF0YS5zZXQnXG4gICAgd2ViaWRsLmFyZ3VtZW50TGVuZ3RoQ2hlY2soYXJndW1lbnRzLCAyLCBwcmVmaXgpXG5cbiAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMyAmJiAhaXNCbG9iTGlrZSh2YWx1ZSkpIHtcbiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXG4gICAgICAgIFwiRmFpbGVkIHRvIGV4ZWN1dGUgJ3NldCcgb24gJ0Zvcm1EYXRhJzogcGFyYW1ldGVyIDIgaXMgbm90IG9mIHR5cGUgJ0Jsb2InXCJcbiAgICAgIClcbiAgICB9XG5cbiAgICAvLyBUaGUgc2V0KG5hbWUsIHZhbHVlKSBhbmQgc2V0KG5hbWUsIGJsb2JWYWx1ZSwgZmlsZW5hbWUpIG1ldGhvZCBzdGVwc1xuICAgIC8vIGFyZTpcblxuICAgIC8vIDEuIExldCB2YWx1ZSBiZSB2YWx1ZSBpZiBnaXZlbjsgb3RoZXJ3aXNlIGJsb2JWYWx1ZS5cblxuICAgIG5hbWUgPSB3ZWJpZGwuY29udmVydGVycy5VU1ZTdHJpbmcobmFtZSwgcHJlZml4LCAnbmFtZScpXG4gICAgdmFsdWUgPSBpc0Jsb2JMaWtlKHZhbHVlKVxuICAgICAgPyB3ZWJpZGwuY29udmVydGVycy5CbG9iKHZhbHVlLCBwcmVmaXgsICduYW1lJywgeyBzdHJpY3Q6IGZhbHNlIH0pXG4gICAgICA6IHdlYmlkbC5jb252ZXJ0ZXJzLlVTVlN0cmluZyh2YWx1ZSwgcHJlZml4LCAnbmFtZScpXG4gICAgZmlsZW5hbWUgPSBhcmd1bWVudHMubGVuZ3RoID09PSAzXG4gICAgICA/IHdlYmlkbC5jb252ZXJ0ZXJzLlVTVlN0cmluZyhmaWxlbmFtZSwgcHJlZml4LCAnbmFtZScpXG4gICAgICA6IHVuZGVmaW5lZFxuXG4gICAgLy8gMi4gTGV0IGVudHJ5IGJlIHRoZSByZXN1bHQgb2YgY3JlYXRpbmcgYW4gZW50cnkgd2l0aCBuYW1lLCB2YWx1ZSwgYW5kXG4gICAgLy8gZmlsZW5hbWUgaWYgZ2l2ZW4uXG4gICAgY29uc3QgZW50cnkgPSBtYWtlRW50cnkobmFtZSwgdmFsdWUsIGZpbGVuYW1lKVxuXG4gICAgLy8gMy4gSWYgdGhlcmUgYXJlIGVudHJpZXMgaW4gdGhpc1x1MjAxOXMgZW50cnkgbGlzdCB3aG9zZSBuYW1lIGlzIG5hbWUsIHRoZW5cbiAgICAvLyByZXBsYWNlIHRoZSBmaXJzdCBzdWNoIGVudHJ5IHdpdGggZW50cnkgYW5kIHJlbW92ZSB0aGUgb3RoZXJzLlxuICAgIGNvbnN0IGlkeCA9IHRoaXNba1N0YXRlXS5maW5kSW5kZXgoKGVudHJ5KSA9PiBlbnRyeS5uYW1lID09PSBuYW1lKVxuICAgIGlmIChpZHggIT09IC0xKSB7XG4gICAgICB0aGlzW2tTdGF0ZV0gPSBbXG4gICAgICAgIC4uLnRoaXNba1N0YXRlXS5zbGljZSgwLCBpZHgpLFxuICAgICAgICBlbnRyeSxcbiAgICAgICAgLi4udGhpc1trU3RhdGVdLnNsaWNlKGlkeCArIDEpLmZpbHRlcigoZW50cnkpID0+IGVudHJ5Lm5hbWUgIT09IG5hbWUpXG4gICAgICBdXG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIDQuIE90aGVyd2lzZSwgYXBwZW5kIGVudHJ5IHRvIHRoaXNcdTIwMTlzIGVudHJ5IGxpc3QuXG4gICAgICB0aGlzW2tTdGF0ZV0ucHVzaChlbnRyeSlcbiAgICB9XG4gIH1cblxuICBbbm9kZVV0aWwuaW5zcGVjdC5jdXN0b21dIChkZXB0aCwgb3B0aW9ucykge1xuICAgIGNvbnN0IHN0YXRlID0gdGhpc1trU3RhdGVdLnJlZHVjZSgoYSwgYikgPT4ge1xuICAgICAgaWYgKGFbYi5uYW1lXSkge1xuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShhW2IubmFtZV0pKSB7XG4gICAgICAgICAgYVtiLm5hbWVdLnB1c2goYi52YWx1ZSlcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBhW2IubmFtZV0gPSBbYVtiLm5hbWVdLCBiLnZhbHVlXVxuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBhW2IubmFtZV0gPSBiLnZhbHVlXG4gICAgICB9XG5cbiAgICAgIHJldHVybiBhXG4gICAgfSwgeyBfX3Byb3RvX186IG51bGwgfSlcblxuICAgIG9wdGlvbnMuZGVwdGggPz89IGRlcHRoXG4gICAgb3B0aW9ucy5jb2xvcnMgPz89IHRydWVcblxuICAgIGNvbnN0IG91dHB1dCA9IG5vZGVVdGlsLmZvcm1hdFdpdGhPcHRpb25zKG9wdGlvbnMsIHN0YXRlKVxuXG4gICAgLy8gcmVtb3ZlIFtPYmplY3QgbnVsbCBwcm90b3R5cGVdXG4gICAgcmV0dXJuIGBGb3JtRGF0YSAke291dHB1dC5zbGljZShvdXRwdXQuaW5kZXhPZignXScpICsgMil9YFxuICB9XG59XG5cbml0ZXJhdG9yTWl4aW4oJ0Zvcm1EYXRhJywgRm9ybURhdGEsIGtTdGF0ZSwgJ25hbWUnLCAndmFsdWUnKVxuXG5PYmplY3QuZGVmaW5lUHJvcGVydGllcyhGb3JtRGF0YS5wcm90b3R5cGUsIHtcbiAgYXBwZW5kOiBrRW51bWVyYWJsZVByb3BlcnR5LFxuICBkZWxldGU6IGtFbnVtZXJhYmxlUHJvcGVydHksXG4gIGdldDoga0VudW1lcmFibGVQcm9wZXJ0eSxcbiAgZ2V0QWxsOiBrRW51bWVyYWJsZVByb3BlcnR5LFxuICBoYXM6IGtFbnVtZXJhYmxlUHJvcGVydHksXG4gIHNldDoga0VudW1lcmFibGVQcm9wZXJ0eSxcbiAgW1N5bWJvbC50b1N0cmluZ1RhZ106IHtcbiAgICB2YWx1ZTogJ0Zvcm1EYXRhJyxcbiAgICBjb25maWd1cmFibGU6IHRydWVcbiAgfVxufSlcblxuLyoqXG4gKiBAc2VlIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL2Zvcm0tY29udHJvbC1pbmZyYXN0cnVjdHVyZS5odG1sI2NyZWF0ZS1hbi1lbnRyeVxuICogQHBhcmFtIHtzdHJpbmd9IG5hbWVcbiAqIEBwYXJhbSB7c3RyaW5nfEJsb2J9IHZhbHVlXG4gKiBAcGFyYW0gez9zdHJpbmd9IGZpbGVuYW1lXG4gKiBAcmV0dXJuc1xuICovXG5mdW5jdGlvbiBtYWtlRW50cnkgKG5hbWUsIHZhbHVlLCBmaWxlbmFtZSkge1xuICAvLyAxLiBTZXQgbmFtZSB0byB0aGUgcmVzdWx0IG9mIGNvbnZlcnRpbmcgbmFtZSBpbnRvIGEgc2NhbGFyIHZhbHVlIHN0cmluZy5cbiAgLy8gTm90ZTogVGhpcyBvcGVyYXRpb24gd2FzIGRvbmUgYnkgdGhlIHdlYmlkbCBjb252ZXJ0ZXIgVVNWU3RyaW5nLlxuXG4gIC8vIDIuIElmIHZhbHVlIGlzIGEgc3RyaW5nLCB0aGVuIHNldCB2YWx1ZSB0byB0aGUgcmVzdWx0IG9mIGNvbnZlcnRpbmdcbiAgLy8gICAgdmFsdWUgaW50byBhIHNjYWxhciB2YWx1ZSBzdHJpbmcuXG4gIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgLy8gTm90ZTogVGhpcyBvcGVyYXRpb24gd2FzIGRvbmUgYnkgdGhlIHdlYmlkbCBjb252ZXJ0ZXIgVVNWU3RyaW5nLlxuICB9IGVsc2Uge1xuICAgIC8vIDMuIE90aGVyd2lzZTpcblxuICAgIC8vIDEuIElmIHZhbHVlIGlzIG5vdCBhIEZpbGUgb2JqZWN0LCB0aGVuIHNldCB2YWx1ZSB0byBhIG5ldyBGaWxlIG9iamVjdCxcbiAgICAvLyAgICByZXByZXNlbnRpbmcgdGhlIHNhbWUgYnl0ZXMsIHdob3NlIG5hbWUgYXR0cmlidXRlIHZhbHVlIGlzIFwiYmxvYlwiXG4gICAgaWYgKCFpc0ZpbGVMaWtlKHZhbHVlKSkge1xuICAgICAgdmFsdWUgPSB2YWx1ZSBpbnN0YW5jZW9mIEJsb2JcbiAgICAgICAgPyBuZXcgRmlsZShbdmFsdWVdLCAnYmxvYicsIHsgdHlwZTogdmFsdWUudHlwZSB9KVxuICAgICAgICA6IG5ldyBGaWxlTGlrZSh2YWx1ZSwgJ2Jsb2InLCB7IHR5cGU6IHZhbHVlLnR5cGUgfSlcbiAgICB9XG5cbiAgICAvLyAyLiBJZiBmaWxlbmFtZSBpcyBnaXZlbiwgdGhlbiBzZXQgdmFsdWUgdG8gYSBuZXcgRmlsZSBvYmplY3QsXG4gICAgLy8gICAgcmVwcmVzZW50aW5nIHRoZSBzYW1lIGJ5dGVzLCB3aG9zZSBuYW1lIGF0dHJpYnV0ZSBpcyBmaWxlbmFtZS5cbiAgICBpZiAoZmlsZW5hbWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgLyoqIEB0eXBlIHtGaWxlUHJvcGVydHlCYWd9ICovXG4gICAgICBjb25zdCBvcHRpb25zID0ge1xuICAgICAgICB0eXBlOiB2YWx1ZS50eXBlLFxuICAgICAgICBsYXN0TW9kaWZpZWQ6IHZhbHVlLmxhc3RNb2RpZmllZFxuICAgICAgfVxuXG4gICAgICB2YWx1ZSA9IHZhbHVlIGluc3RhbmNlb2YgTmF0aXZlRmlsZVxuICAgICAgICA/IG5ldyBGaWxlKFt2YWx1ZV0sIGZpbGVuYW1lLCBvcHRpb25zKVxuICAgICAgICA6IG5ldyBGaWxlTGlrZSh2YWx1ZSwgZmlsZW5hbWUsIG9wdGlvbnMpXG4gICAgfVxuICB9XG5cbiAgLy8gNC4gUmV0dXJuIGFuIGVudHJ5IHdob3NlIG5hbWUgaXMgbmFtZSBhbmQgd2hvc2UgdmFsdWUgaXMgdmFsdWUuXG4gIHJldHVybiB7IG5hbWUsIHZhbHVlIH1cbn1cblxubW9kdWxlLmV4cG9ydHMgPSB7IEZvcm1EYXRhLCBtYWtlRW50cnkgfVxuIiwgIid1c2Ugc3RyaWN0J1xuXG5jb25zdCB7IGlzVVNWU3RyaW5nLCBidWZmZXJUb0xvd2VyQ2FzZWRIZWFkZXJOYW1lIH0gPSByZXF1aXJlKCcuLi8uLi9jb3JlL3V0aWwnKVxuY29uc3QgeyB1dGY4RGVjb2RlQnl0ZXMgfSA9IHJlcXVpcmUoJy4vdXRpbCcpXG5jb25zdCB7IEhUVFBfVE9LRU5fQ09ERVBPSU5UUywgaXNvbW9ycGhpY0RlY29kZSB9ID0gcmVxdWlyZSgnLi9kYXRhLXVybCcpXG5jb25zdCB7IGlzRmlsZUxpa2UgfSA9IHJlcXVpcmUoJy4vZmlsZScpXG5jb25zdCB7IG1ha2VFbnRyeSB9ID0gcmVxdWlyZSgnLi9mb3JtZGF0YScpXG5jb25zdCBhc3NlcnQgPSByZXF1aXJlKCdub2RlOmFzc2VydCcpXG5jb25zdCB7IEZpbGU6IE5vZGVGaWxlIH0gPSByZXF1aXJlKCdub2RlOmJ1ZmZlcicpXG5cbmNvbnN0IEZpbGUgPSBnbG9iYWxUaGlzLkZpbGUgPz8gTm9kZUZpbGVcblxuY29uc3QgZm9ybURhdGFOYW1lQnVmZmVyID0gQnVmZmVyLmZyb20oJ2Zvcm0tZGF0YTsgbmFtZT1cIicpXG5jb25zdCBmaWxlbmFtZUJ1ZmZlciA9IEJ1ZmZlci5mcm9tKCc7IGZpbGVuYW1lJylcbmNvbnN0IGRkID0gQnVmZmVyLmZyb20oJy0tJylcbmNvbnN0IGRkY3JsZiA9IEJ1ZmZlci5mcm9tKCctLVxcclxcbicpXG5cbi8qKlxuICogQHBhcmFtIHtzdHJpbmd9IGNoYXJzXG4gKi9cbmZ1bmN0aW9uIGlzQXNjaWlTdHJpbmcgKGNoYXJzKSB7XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgY2hhcnMubGVuZ3RoOyArK2kpIHtcbiAgICBpZiAoKGNoYXJzLmNoYXJDb2RlQXQoaSkgJiB+MHg3RikgIT09IDApIHtcbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH1cbiAgfVxuICByZXR1cm4gdHJ1ZVxufVxuXG4vKipcbiAqIEBzZWUgaHR0cHM6Ly9hbmRyZXVib3RlbGxhLmdpdGh1Yi5pby9tdWx0aXBhcnQtZm9ybS1kYXRhLyNtdWx0aXBhcnQtZm9ybS1kYXRhLWJvdW5kYXJ5XG4gKiBAcGFyYW0ge3N0cmluZ30gYm91bmRhcnlcbiAqL1xuZnVuY3Rpb24gdmFsaWRhdGVCb3VuZGFyeSAoYm91bmRhcnkpIHtcbiAgY29uc3QgbGVuZ3RoID0gYm91bmRhcnkubGVuZ3RoXG5cbiAgLy8gLSBpdHMgbGVuZ3RoIGlzIGdyZWF0ZXIgb3IgZXF1YWwgdG8gMjcgYW5kIGxlc3NlciBvciBlcXVhbCB0byA3MCwgYW5kXG4gIGlmIChsZW5ndGggPCAyNyB8fCBsZW5ndGggPiA3MCkge1xuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbiAgLy8gLSBpdCBpcyBjb21wb3NlZCBieSBieXRlcyBpbiB0aGUgcmFuZ2VzIDB4MzAgdG8gMHgzOSwgMHg0MSB0byAweDVBLCBvclxuICAvLyAgIDB4NjEgdG8gMHg3QSwgaW5jbHVzaXZlIChBU0NJSSBhbHBoYW51bWVyaWMpLCBvciB3aGljaCBhcmUgMHgyNyAoJyksXG4gIC8vICAgMHgyRCAoLSkgb3IgMHg1RiAoXykuXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgbGVuZ3RoOyArK2kpIHtcbiAgICBjb25zdCBjcCA9IGJvdW5kYXJ5LmNoYXJDb2RlQXQoaSlcblxuICAgIGlmICghKFxuICAgICAgKGNwID49IDB4MzAgJiYgY3AgPD0gMHgzOSkgfHxcbiAgICAgIChjcCA+PSAweDQxICYmIGNwIDw9IDB4NWEpIHx8XG4gICAgICAoY3AgPj0gMHg2MSAmJiBjcCA8PSAweDdhKSB8fFxuICAgICAgY3AgPT09IDB4MjcgfHxcbiAgICAgIGNwID09PSAweDJkIHx8XG4gICAgICBjcCA9PT0gMHg1ZlxuICAgICkpIHtcbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiB0cnVlXG59XG5cbi8qKlxuICogQHNlZSBodHRwczovL2FuZHJldWJvdGVsbGEuZ2l0aHViLmlvL211bHRpcGFydC1mb3JtLWRhdGEvI211bHRpcGFydC1mb3JtLWRhdGEtcGFyc2VyXG4gKiBAcGFyYW0ge0J1ZmZlcn0gaW5wdXRcbiAqIEBwYXJhbSB7UmV0dXJuVHlwZTxpbXBvcnQoJy4vZGF0YS11cmwnKVsncGFyc2VNSU1FVHlwZSddPn0gbWltZVR5cGVcbiAqL1xuZnVuY3Rpb24gbXVsdGlwYXJ0Rm9ybURhdGFQYXJzZXIgKGlucHV0LCBtaW1lVHlwZSkge1xuICAvLyAxLiBBc3NlcnQ6IG1pbWVUeXBlXHUyMDE5cyBlc3NlbmNlIGlzIFwibXVsdGlwYXJ0L2Zvcm0tZGF0YVwiLlxuICBhc3NlcnQobWltZVR5cGUgIT09ICdmYWlsdXJlJyAmJiBtaW1lVHlwZS5lc3NlbmNlID09PSAnbXVsdGlwYXJ0L2Zvcm0tZGF0YScpXG5cbiAgY29uc3QgYm91bmRhcnlTdHJpbmcgPSBtaW1lVHlwZS5wYXJhbWV0ZXJzLmdldCgnYm91bmRhcnknKVxuXG4gIC8vIDIuIElmIG1pbWVUeXBlXHUyMDE5cyBwYXJhbWV0ZXJzW1wiYm91bmRhcnlcIl0gZG9lcyBub3QgZXhpc3QsIHJldHVybiBmYWlsdXJlLlxuICAvLyAgICBPdGhlcndpc2UsIGxldCBib3VuZGFyeSBiZSB0aGUgcmVzdWx0IG9mIFVURi04IGRlY29kaW5nIG1pbWVUeXBlXHUyMDE5c1xuICAvLyAgICBwYXJhbWV0ZXJzW1wiYm91bmRhcnlcIl0uXG4gIGlmIChib3VuZGFyeVN0cmluZyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuICdmYWlsdXJlJ1xuICB9XG5cbiAgY29uc3QgYm91bmRhcnkgPSBCdWZmZXIuZnJvbShgLS0ke2JvdW5kYXJ5U3RyaW5nfWAsICd1dGY4JylcblxuICAvLyAzLiBMZXQgZW50cnkgbGlzdCBiZSBhbiBlbXB0eSBlbnRyeSBsaXN0LlxuICBjb25zdCBlbnRyeUxpc3QgPSBbXVxuXG4gIC8vIDQuIExldCBwb3NpdGlvbiBiZSBhIHBvaW50ZXIgdG8gYSBieXRlIGluIGlucHV0LCBpbml0aWFsbHkgcG9pbnRpbmcgYXRcbiAgLy8gICAgdGhlIGZpcnN0IGJ5dGUuXG4gIGNvbnN0IHBvc2l0aW9uID0geyBwb3NpdGlvbjogMCB9XG5cbiAgLy8gTm90ZTogdW5kaWNpIGFkZGl0aW9uLCBhbGxvd3MgbGVhZGluZyBhbmQgdHJhaWxpbmcgQ1JMRnMuXG4gIHdoaWxlIChpbnB1dFtwb3NpdGlvbi5wb3NpdGlvbl0gPT09IDB4MGQgJiYgaW5wdXRbcG9zaXRpb24ucG9zaXRpb24gKyAxXSA9PT0gMHgwYSkge1xuICAgIHBvc2l0aW9uLnBvc2l0aW9uICs9IDJcbiAgfVxuXG4gIGxldCB0cmFpbGluZyA9IGlucHV0Lmxlbmd0aFxuXG4gIHdoaWxlIChpbnB1dFt0cmFpbGluZyAtIDFdID09PSAweDBhICYmIGlucHV0W3RyYWlsaW5nIC0gMl0gPT09IDB4MGQpIHtcbiAgICB0cmFpbGluZyAtPSAyXG4gIH1cblxuICBpZiAodHJhaWxpbmcgIT09IGlucHV0Lmxlbmd0aCkge1xuICAgIGlucHV0ID0gaW5wdXQuc3ViYXJyYXkoMCwgdHJhaWxpbmcpXG4gIH1cblxuICAvLyA1LiBXaGlsZSB0cnVlOlxuICB3aGlsZSAodHJ1ZSkge1xuICAgIC8vIDUuMS4gSWYgcG9zaXRpb24gcG9pbnRzIHRvIGEgc2VxdWVuY2Ugb2YgYnl0ZXMgc3RhcnRpbmcgd2l0aCAweDJEIDB4MkRcbiAgICAvLyAgICAgIChgLS1gKSBmb2xsb3dlZCBieSBib3VuZGFyeSwgYWR2YW5jZSBwb3NpdGlvbiBieSAyICsgdGhlIGxlbmd0aCBvZlxuICAgIC8vICAgICAgYm91bmRhcnkuIE90aGVyd2lzZSwgcmV0dXJuIGZhaWx1cmUuXG4gICAgLy8gTm90ZTogYm91bmRhcnkgaXMgcGFkZGVkIHdpdGggMiBkYXNoZXMgYWxyZWFkeSwgbm8gbmVlZCB0byBhZGQgMi5cbiAgICBpZiAoaW5wdXQuc3ViYXJyYXkocG9zaXRpb24ucG9zaXRpb24sIHBvc2l0aW9uLnBvc2l0aW9uICsgYm91bmRhcnkubGVuZ3RoKS5lcXVhbHMoYm91bmRhcnkpKSB7XG4gICAgICBwb3NpdGlvbi5wb3NpdGlvbiArPSBib3VuZGFyeS5sZW5ndGhcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuICdmYWlsdXJlJ1xuICAgIH1cblxuICAgIC8vIDUuMi4gSWYgcG9zaXRpb24gcG9pbnRzIHRvIHRoZSBzZXF1ZW5jZSBvZiBieXRlcyAweDJEIDB4MkQgMHgwRCAweDBBXG4gICAgLy8gICAgICAoYC0tYCBmb2xsb3dlZCBieSBDUiBMRikgZm9sbG93ZWQgYnkgdGhlIGVuZCBvZiBpbnB1dCwgcmV0dXJuIGVudHJ5IGxpc3QuXG4gICAgLy8gTm90ZTogYSBib2R5IGRvZXMgTk9UIG5lZWQgdG8gZW5kIHdpdGggQ1JMRi4gSXQgY2FuIGVuZCB3aXRoIC0tLlxuICAgIGlmIChcbiAgICAgIChwb3NpdGlvbi5wb3NpdGlvbiA9PT0gaW5wdXQubGVuZ3RoIC0gMiAmJiBidWZmZXJTdGFydHNXaXRoKGlucHV0LCBkZCwgcG9zaXRpb24pKSB8fFxuICAgICAgKHBvc2l0aW9uLnBvc2l0aW9uID09PSBpbnB1dC5sZW5ndGggLSA0ICYmIGJ1ZmZlclN0YXJ0c1dpdGgoaW5wdXQsIGRkY3JsZiwgcG9zaXRpb24pKVxuICAgICkge1xuICAgICAgcmV0dXJuIGVudHJ5TGlzdFxuICAgIH1cblxuICAgIC8vIDUuMy4gSWYgcG9zaXRpb24gZG9lcyBub3QgcG9pbnQgdG8gYSBzZXF1ZW5jZSBvZiBieXRlcyBzdGFydGluZyB3aXRoIDB4MERcbiAgICAvLyAgICAgIDB4MEEgKENSIExGKSwgcmV0dXJuIGZhaWx1cmUuXG4gICAgaWYgKGlucHV0W3Bvc2l0aW9uLnBvc2l0aW9uXSAhPT0gMHgwZCB8fCBpbnB1dFtwb3NpdGlvbi5wb3NpdGlvbiArIDFdICE9PSAweDBhKSB7XG4gICAgICByZXR1cm4gJ2ZhaWx1cmUnXG4gICAgfVxuXG4gICAgLy8gNS40LiBBZHZhbmNlIHBvc2l0aW9uIGJ5IDIuIChUaGlzIHNraXBzIHBhc3QgdGhlIG5ld2xpbmUuKVxuICAgIHBvc2l0aW9uLnBvc2l0aW9uICs9IDJcblxuICAgIC8vIDUuNS4gTGV0IG5hbWUsIGZpbGVuYW1lIGFuZCBjb250ZW50VHlwZSBiZSB0aGUgcmVzdWx0IG9mIHBhcnNpbmdcbiAgICAvLyAgICAgIG11bHRpcGFydC9mb3JtLWRhdGEgaGVhZGVycyBvbiBpbnB1dCBhbmQgcG9zaXRpb24sIGlmIHRoZSByZXN1bHRcbiAgICAvLyAgICAgIGlzIG5vdCBmYWlsdXJlLiBPdGhlcndpc2UsIHJldHVybiBmYWlsdXJlLlxuICAgIGNvbnN0IHJlc3VsdCA9IHBhcnNlTXVsdGlwYXJ0Rm9ybURhdGFIZWFkZXJzKGlucHV0LCBwb3NpdGlvbilcblxuICAgIGlmIChyZXN1bHQgPT09ICdmYWlsdXJlJykge1xuICAgICAgcmV0dXJuICdmYWlsdXJlJ1xuICAgIH1cblxuICAgIGxldCB7IG5hbWUsIGZpbGVuYW1lLCBjb250ZW50VHlwZSwgZW5jb2RpbmcgfSA9IHJlc3VsdFxuXG4gICAgLy8gNS42LiBBZHZhbmNlIHBvc2l0aW9uIGJ5IDIuIChUaGlzIHNraXBzIHBhc3QgdGhlIGVtcHR5IGxpbmUgdGhhdCBtYXJrc1xuICAgIC8vICAgICAgdGhlIGVuZCBvZiB0aGUgaGVhZGVycy4pXG4gICAgcG9zaXRpb24ucG9zaXRpb24gKz0gMlxuXG4gICAgLy8gNS43LiBMZXQgYm9keSBiZSB0aGUgZW1wdHkgYnl0ZSBzZXF1ZW5jZS5cbiAgICBsZXQgYm9keVxuXG4gICAgLy8gNS44LiBCb2R5IGxvb3A6IFdoaWxlIHBvc2l0aW9uIGlzIG5vdCBwYXN0IHRoZSBlbmQgb2YgaW5wdXQ6XG4gICAgLy8gVE9ETzogdGhlIHN0ZXBzIGhlcmUgYXJlIGNvbXBsZXRlbHkgd3JvbmdcbiAgICB7XG4gICAgICBjb25zdCBib3VuZGFyeUluZGV4ID0gaW5wdXQuaW5kZXhPZihib3VuZGFyeS5zdWJhcnJheSgyKSwgcG9zaXRpb24ucG9zaXRpb24pXG5cbiAgICAgIGlmIChib3VuZGFyeUluZGV4ID09PSAtMSkge1xuICAgICAgICByZXR1cm4gJ2ZhaWx1cmUnXG4gICAgICB9XG5cbiAgICAgIGJvZHkgPSBpbnB1dC5zdWJhcnJheShwb3NpdGlvbi5wb3NpdGlvbiwgYm91bmRhcnlJbmRleCAtIDQpXG5cbiAgICAgIHBvc2l0aW9uLnBvc2l0aW9uICs9IGJvZHkubGVuZ3RoXG5cbiAgICAgIC8vIE5vdGU6IHBvc2l0aW9uIG11c3QgYmUgYWR2YW5jZWQgYnkgdGhlIGJvZHkncyBsZW5ndGggYmVmb3JlIGJlaW5nXG4gICAgICAvLyBkZWNvZGVkLCBvdGhlcndpc2UgdGhlIHBhcnNpbmcgd2lsbCBmYWlsLlxuICAgICAgaWYgKGVuY29kaW5nID09PSAnYmFzZTY0Jykge1xuICAgICAgICBib2R5ID0gQnVmZmVyLmZyb20oYm9keS50b1N0cmluZygpLCAnYmFzZTY0JylcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyA1LjkuIElmIHBvc2l0aW9uIGRvZXMgbm90IHBvaW50IHRvIGEgc2VxdWVuY2Ugb2YgYnl0ZXMgc3RhcnRpbmcgd2l0aFxuICAgIC8vICAgICAgMHgwRCAweDBBIChDUiBMRiksIHJldHVybiBmYWlsdXJlLiBPdGhlcndpc2UsIGFkdmFuY2UgcG9zaXRpb24gYnkgMi5cbiAgICBpZiAoaW5wdXRbcG9zaXRpb24ucG9zaXRpb25dICE9PSAweDBkIHx8IGlucHV0W3Bvc2l0aW9uLnBvc2l0aW9uICsgMV0gIT09IDB4MGEpIHtcbiAgICAgIHJldHVybiAnZmFpbHVyZSdcbiAgICB9IGVsc2Uge1xuICAgICAgcG9zaXRpb24ucG9zaXRpb24gKz0gMlxuICAgIH1cblxuICAgIC8vIDUuMTAuIElmIGZpbGVuYW1lIGlzIG5vdCBudWxsOlxuICAgIGxldCB2YWx1ZVxuXG4gICAgaWYgKGZpbGVuYW1lICE9PSBudWxsKSB7XG4gICAgICAvLyA1LjEwLjEuIElmIGNvbnRlbnRUeXBlIGlzIG51bGwsIHNldCBjb250ZW50VHlwZSB0byBcInRleHQvcGxhaW5cIi5cbiAgICAgIGNvbnRlbnRUeXBlID8/PSAndGV4dC9wbGFpbidcblxuICAgICAgLy8gNS4xMC4yLiBJZiBjb250ZW50VHlwZSBpcyBub3QgYW4gQVNDSUkgc3RyaW5nLCBzZXQgY29udGVudFR5cGUgdG8gdGhlIGVtcHR5IHN0cmluZy5cblxuICAgICAgLy8gTm90ZTogYGJ1ZmZlci5pc0FzY2lpYCBjYW4gYmUgdXNlZCBhdCB6ZXJvLWNvc3QsIGJ1dCBjb252ZXJ0aW5nIGEgc3RyaW5nIHRvIGEgYnVmZmVyIGlzIGEgaGlnaCBvdmVyaGVhZC5cbiAgICAgIC8vIENvbnRlbnQtVHlwZSBpcyBhIHJlbGF0aXZlbHkgc21hbGwgc3RyaW5nLCBzbyBpdCBpcyBmYXN0ZXIgdG8gdXNlIGBTdHJpbmcjY2hhckNvZGVBdGAuXG4gICAgICBpZiAoIWlzQXNjaWlTdHJpbmcoY29udGVudFR5cGUpKSB7XG4gICAgICAgIGNvbnRlbnRUeXBlID0gJydcbiAgICAgIH1cblxuICAgICAgLy8gNS4xMC4zLiBMZXQgdmFsdWUgYmUgYSBuZXcgRmlsZSBvYmplY3Qgd2l0aCBuYW1lIGZpbGVuYW1lLCB0eXBlIGNvbnRlbnRUeXBlLCBhbmQgYm9keSBib2R5LlxuICAgICAgdmFsdWUgPSBuZXcgRmlsZShbYm9keV0sIGZpbGVuYW1lLCB7IHR5cGU6IGNvbnRlbnRUeXBlIH0pXG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIDUuMTEuIE90aGVyd2lzZTpcblxuICAgICAgLy8gNS4xMS4xLiBMZXQgdmFsdWUgYmUgdGhlIFVURi04IGRlY29kaW5nIHdpdGhvdXQgQk9NIG9mIGJvZHkuXG4gICAgICB2YWx1ZSA9IHV0ZjhEZWNvZGVCeXRlcyhCdWZmZXIuZnJvbShib2R5KSlcbiAgICB9XG5cbiAgICAvLyA1LjEyLiBBc3NlcnQ6IG5hbWUgaXMgYSBzY2FsYXIgdmFsdWUgc3RyaW5nIGFuZCB2YWx1ZSBpcyBlaXRoZXIgYSBzY2FsYXIgdmFsdWUgc3RyaW5nIG9yIGEgRmlsZSBvYmplY3QuXG4gICAgYXNzZXJ0KGlzVVNWU3RyaW5nKG5hbWUpKVxuICAgIGFzc2VydCgodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyAmJiBpc1VTVlN0cmluZyh2YWx1ZSkpIHx8IGlzRmlsZUxpa2UodmFsdWUpKVxuXG4gICAgLy8gNS4xMy4gQ3JlYXRlIGFuIGVudHJ5IHdpdGggbmFtZSBhbmQgdmFsdWUsIGFuZCBhcHBlbmQgaXQgdG8gZW50cnkgbGlzdC5cbiAgICBlbnRyeUxpc3QucHVzaChtYWtlRW50cnkobmFtZSwgdmFsdWUsIGZpbGVuYW1lKSlcbiAgfVxufVxuXG4vKipcbiAqIEBzZWUgaHR0cHM6Ly9hbmRyZXVib3RlbGxhLmdpdGh1Yi5pby9tdWx0aXBhcnQtZm9ybS1kYXRhLyNwYXJzZS1tdWx0aXBhcnQtZm9ybS1kYXRhLWhlYWRlcnNcbiAqIEBwYXJhbSB7QnVmZmVyfSBpbnB1dFxuICogQHBhcmFtIHt7IHBvc2l0aW9uOiBudW1iZXIgfX0gcG9zaXRpb25cbiAqL1xuZnVuY3Rpb24gcGFyc2VNdWx0aXBhcnRGb3JtRGF0YUhlYWRlcnMgKGlucHV0LCBwb3NpdGlvbikge1xuICAvLyAxLiBMZXQgbmFtZSwgZmlsZW5hbWUgYW5kIGNvbnRlbnRUeXBlIGJlIG51bGwuXG4gIGxldCBuYW1lID0gbnVsbFxuICBsZXQgZmlsZW5hbWUgPSBudWxsXG4gIGxldCBjb250ZW50VHlwZSA9IG51bGxcbiAgbGV0IGVuY29kaW5nID0gbnVsbFxuXG4gIC8vIDIuIFdoaWxlIHRydWU6XG4gIHdoaWxlICh0cnVlKSB7XG4gICAgLy8gMi4xLiBJZiBwb3NpdGlvbiBwb2ludHMgdG8gYSBzZXF1ZW5jZSBvZiBieXRlcyBzdGFydGluZyB3aXRoIDB4MEQgMHgwQSAoQ1IgTEYpOlxuICAgIGlmIChpbnB1dFtwb3NpdGlvbi5wb3NpdGlvbl0gPT09IDB4MGQgJiYgaW5wdXRbcG9zaXRpb24ucG9zaXRpb24gKyAxXSA9PT0gMHgwYSkge1xuICAgICAgLy8gMi4xLjEuIElmIG5hbWUgaXMgbnVsbCwgcmV0dXJuIGZhaWx1cmUuXG4gICAgICBpZiAobmFtZSA9PT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gJ2ZhaWx1cmUnXG4gICAgICB9XG5cbiAgICAgIC8vIDIuMS4yLiBSZXR1cm4gbmFtZSwgZmlsZW5hbWUgYW5kIGNvbnRlbnRUeXBlLlxuICAgICAgcmV0dXJuIHsgbmFtZSwgZmlsZW5hbWUsIGNvbnRlbnRUeXBlLCBlbmNvZGluZyB9XG4gICAgfVxuXG4gICAgLy8gMi4yLiBMZXQgaGVhZGVyIG5hbWUgYmUgdGhlIHJlc3VsdCBvZiBjb2xsZWN0aW5nIGEgc2VxdWVuY2Ugb2YgYnl0ZXMgdGhhdCBhcmVcbiAgICAvLyAgICAgIG5vdCAweDBBIChMRiksIDB4MEQgKENSKSBvciAweDNBICg6KSwgZ2l2ZW4gcG9zaXRpb24uXG4gICAgbGV0IGhlYWRlck5hbWUgPSBjb2xsZWN0QVNlcXVlbmNlT2ZCeXRlcyhcbiAgICAgIChjaGFyKSA9PiBjaGFyICE9PSAweDBhICYmIGNoYXIgIT09IDB4MGQgJiYgY2hhciAhPT0gMHgzYSxcbiAgICAgIGlucHV0LFxuICAgICAgcG9zaXRpb25cbiAgICApXG5cbiAgICAvLyAyLjMuIFJlbW92ZSBhbnkgSFRUUCB0YWIgb3Igc3BhY2UgYnl0ZXMgZnJvbSB0aGUgc3RhcnQgb3IgZW5kIG9mIGhlYWRlciBuYW1lLlxuICAgIGhlYWRlck5hbWUgPSByZW1vdmVDaGFycyhoZWFkZXJOYW1lLCB0cnVlLCB0cnVlLCAoY2hhcikgPT4gY2hhciA9PT0gMHg5IHx8IGNoYXIgPT09IDB4MjApXG5cbiAgICAvLyAyLjQuIElmIGhlYWRlciBuYW1lIGRvZXMgbm90IG1hdGNoIHRoZSBmaWVsZC1uYW1lIHRva2VuIHByb2R1Y3Rpb24sIHJldHVybiBmYWlsdXJlLlxuICAgIGlmICghSFRUUF9UT0tFTl9DT0RFUE9JTlRTLnRlc3QoaGVhZGVyTmFtZS50b1N0cmluZygpKSkge1xuICAgICAgcmV0dXJuICdmYWlsdXJlJ1xuICAgIH1cblxuICAgIC8vIDIuNS4gSWYgdGhlIGJ5dGUgYXQgcG9zaXRpb24gaXMgbm90IDB4M0EgKDopLCByZXR1cm4gZmFpbHVyZS5cbiAgICBpZiAoaW5wdXRbcG9zaXRpb24ucG9zaXRpb25dICE9PSAweDNhKSB7XG4gICAgICByZXR1cm4gJ2ZhaWx1cmUnXG4gICAgfVxuXG4gICAgLy8gMi42LiBBZHZhbmNlIHBvc2l0aW9uIGJ5IDEuXG4gICAgcG9zaXRpb24ucG9zaXRpb24rK1xuXG4gICAgLy8gMi43LiBDb2xsZWN0IGEgc2VxdWVuY2Ugb2YgYnl0ZXMgdGhhdCBhcmUgSFRUUCB0YWIgb3Igc3BhY2UgYnl0ZXMgZ2l2ZW4gcG9zaXRpb24uXG4gICAgLy8gICAgICAoRG8gbm90aGluZyB3aXRoIHRob3NlIGJ5dGVzLilcbiAgICBjb2xsZWN0QVNlcXVlbmNlT2ZCeXRlcyhcbiAgICAgIChjaGFyKSA9PiBjaGFyID09PSAweDIwIHx8IGNoYXIgPT09IDB4MDksXG4gICAgICBpbnB1dCxcbiAgICAgIHBvc2l0aW9uXG4gICAgKVxuXG4gICAgLy8gMi44LiBCeXRlLWxvd2VyY2FzZSBoZWFkZXIgbmFtZSBhbmQgc3dpdGNoIG9uIHRoZSByZXN1bHQ6XG4gICAgc3dpdGNoIChidWZmZXJUb0xvd2VyQ2FzZWRIZWFkZXJOYW1lKGhlYWRlck5hbWUpKSB7XG4gICAgICBjYXNlICdjb250ZW50LWRpc3Bvc2l0aW9uJzoge1xuICAgICAgICAvLyAxLiBTZXQgbmFtZSBhbmQgZmlsZW5hbWUgdG8gbnVsbC5cbiAgICAgICAgbmFtZSA9IGZpbGVuYW1lID0gbnVsbFxuXG4gICAgICAgIC8vIDIuIElmIHBvc2l0aW9uIGRvZXMgbm90IHBvaW50IHRvIGEgc2VxdWVuY2Ugb2YgYnl0ZXMgc3RhcnRpbmcgd2l0aFxuICAgICAgICAvLyAgICBgZm9ybS1kYXRhOyBuYW1lPVwiYCwgcmV0dXJuIGZhaWx1cmUuXG4gICAgICAgIGlmICghYnVmZmVyU3RhcnRzV2l0aChpbnB1dCwgZm9ybURhdGFOYW1lQnVmZmVyLCBwb3NpdGlvbikpIHtcbiAgICAgICAgICByZXR1cm4gJ2ZhaWx1cmUnXG4gICAgICAgIH1cblxuICAgICAgICAvLyAzLiBBZHZhbmNlIHBvc2l0aW9uIHNvIGl0IHBvaW50cyBhdCB0aGUgYnl0ZSBhZnRlciB0aGUgbmV4dCAweDIyIChcIilcbiAgICAgICAgLy8gICAgYnl0ZSAodGhlIG9uZSBpbiB0aGUgc2VxdWVuY2Ugb2YgYnl0ZXMgbWF0Y2hlZCBhYm92ZSkuXG4gICAgICAgIHBvc2l0aW9uLnBvc2l0aW9uICs9IDE3XG5cbiAgICAgICAgLy8gNC4gU2V0IG5hbWUgdG8gdGhlIHJlc3VsdCBvZiBwYXJzaW5nIGEgbXVsdGlwYXJ0L2Zvcm0tZGF0YSBuYW1lIGdpdmVuXG4gICAgICAgIC8vICAgIGlucHV0IGFuZCBwb3NpdGlvbiwgaWYgdGhlIHJlc3VsdCBpcyBub3QgZmFpbHVyZS4gT3RoZXJ3aXNlLCByZXR1cm5cbiAgICAgICAgLy8gICAgZmFpbHVyZS5cbiAgICAgICAgbmFtZSA9IHBhcnNlTXVsdGlwYXJ0Rm9ybURhdGFOYW1lKGlucHV0LCBwb3NpdGlvbilcblxuICAgICAgICBpZiAobmFtZSA9PT0gbnVsbCkge1xuICAgICAgICAgIHJldHVybiAnZmFpbHVyZSdcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIDUuIElmIHBvc2l0aW9uIHBvaW50cyB0byBhIHNlcXVlbmNlIG9mIGJ5dGVzIHN0YXJ0aW5nIHdpdGggYDsgZmlsZW5hbWU9XCJgOlxuICAgICAgICBpZiAoYnVmZmVyU3RhcnRzV2l0aChpbnB1dCwgZmlsZW5hbWVCdWZmZXIsIHBvc2l0aW9uKSkge1xuICAgICAgICAgIC8vIE5vdGU6IHVuZGljaSBhbHNvIGhhbmRsZXMgZmlsZW5hbWUqXG4gICAgICAgICAgbGV0IGNoZWNrID0gcG9zaXRpb24ucG9zaXRpb24gKyBmaWxlbmFtZUJ1ZmZlci5sZW5ndGhcblxuICAgICAgICAgIGlmIChpbnB1dFtjaGVja10gPT09IDB4MmEpIHtcbiAgICAgICAgICAgIHBvc2l0aW9uLnBvc2l0aW9uICs9IDFcbiAgICAgICAgICAgIGNoZWNrICs9IDFcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoaW5wdXRbY2hlY2tdICE9PSAweDNkIHx8IGlucHV0W2NoZWNrICsgMV0gIT09IDB4MjIpIHsgLy8gPVwiXG4gICAgICAgICAgICByZXR1cm4gJ2ZhaWx1cmUnXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLy8gMS4gQWR2YW5jZSBwb3NpdGlvbiBzbyBpdCBwb2ludHMgYXQgdGhlIGJ5dGUgYWZ0ZXIgdGhlIG5leHQgMHgyMiAoXCIpIGJ5dGVcbiAgICAgICAgICAvLyAgICAodGhlIG9uZSBpbiB0aGUgc2VxdWVuY2Ugb2YgYnl0ZXMgbWF0Y2hlZCBhYm92ZSkuXG4gICAgICAgICAgcG9zaXRpb24ucG9zaXRpb24gKz0gMTJcblxuICAgICAgICAgIC8vIDIuIFNldCBmaWxlbmFtZSB0byB0aGUgcmVzdWx0IG9mIHBhcnNpbmcgYSBtdWx0aXBhcnQvZm9ybS1kYXRhIG5hbWUgZ2l2ZW5cbiAgICAgICAgICAvLyAgICBpbnB1dCBhbmQgcG9zaXRpb24sIGlmIHRoZSByZXN1bHQgaXMgbm90IGZhaWx1cmUuIE90aGVyd2lzZSwgcmV0dXJuIGZhaWx1cmUuXG4gICAgICAgICAgZmlsZW5hbWUgPSBwYXJzZU11bHRpcGFydEZvcm1EYXRhTmFtZShpbnB1dCwgcG9zaXRpb24pXG5cbiAgICAgICAgICBpZiAoZmlsZW5hbWUgPT09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiAnZmFpbHVyZSdcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBicmVha1xuICAgICAgfVxuICAgICAgY2FzZSAnY29udGVudC10eXBlJzoge1xuICAgICAgICAvLyAxLiBMZXQgaGVhZGVyIHZhbHVlIGJlIHRoZSByZXN1bHQgb2YgY29sbGVjdGluZyBhIHNlcXVlbmNlIG9mIGJ5dGVzIHRoYXQgYXJlXG4gICAgICAgIC8vICAgIG5vdCAweDBBIChMRikgb3IgMHgwRCAoQ1IpLCBnaXZlbiBwb3NpdGlvbi5cbiAgICAgICAgbGV0IGhlYWRlclZhbHVlID0gY29sbGVjdEFTZXF1ZW5jZU9mQnl0ZXMoXG4gICAgICAgICAgKGNoYXIpID0+IGNoYXIgIT09IDB4MGEgJiYgY2hhciAhPT0gMHgwZCxcbiAgICAgICAgICBpbnB1dCxcbiAgICAgICAgICBwb3NpdGlvblxuICAgICAgICApXG5cbiAgICAgICAgLy8gMi4gUmVtb3ZlIGFueSBIVFRQIHRhYiBvciBzcGFjZSBieXRlcyBmcm9tIHRoZSBlbmQgb2YgaGVhZGVyIHZhbHVlLlxuICAgICAgICBoZWFkZXJWYWx1ZSA9IHJlbW92ZUNoYXJzKGhlYWRlclZhbHVlLCBmYWxzZSwgdHJ1ZSwgKGNoYXIpID0+IGNoYXIgPT09IDB4OSB8fCBjaGFyID09PSAweDIwKVxuXG4gICAgICAgIC8vIDMuIFNldCBjb250ZW50VHlwZSB0byB0aGUgaXNvbW9ycGhpYyBkZWNvZGluZyBvZiBoZWFkZXIgdmFsdWUuXG4gICAgICAgIGNvbnRlbnRUeXBlID0gaXNvbW9ycGhpY0RlY29kZShoZWFkZXJWYWx1ZSlcblxuICAgICAgICBicmVha1xuICAgICAgfVxuICAgICAgY2FzZSAnY29udGVudC10cmFuc2Zlci1lbmNvZGluZyc6IHtcbiAgICAgICAgbGV0IGhlYWRlclZhbHVlID0gY29sbGVjdEFTZXF1ZW5jZU9mQnl0ZXMoXG4gICAgICAgICAgKGNoYXIpID0+IGNoYXIgIT09IDB4MGEgJiYgY2hhciAhPT0gMHgwZCxcbiAgICAgICAgICBpbnB1dCxcbiAgICAgICAgICBwb3NpdGlvblxuICAgICAgICApXG5cbiAgICAgICAgaGVhZGVyVmFsdWUgPSByZW1vdmVDaGFycyhoZWFkZXJWYWx1ZSwgZmFsc2UsIHRydWUsIChjaGFyKSA9PiBjaGFyID09PSAweDkgfHwgY2hhciA9PT0gMHgyMClcblxuICAgICAgICBlbmNvZGluZyA9IGlzb21vcnBoaWNEZWNvZGUoaGVhZGVyVmFsdWUpXG5cbiAgICAgICAgYnJlYWtcbiAgICAgIH1cbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgLy8gQ29sbGVjdCBhIHNlcXVlbmNlIG9mIGJ5dGVzIHRoYXQgYXJlIG5vdCAweDBBIChMRikgb3IgMHgwRCAoQ1IpLCBnaXZlbiBwb3NpdGlvbi5cbiAgICAgICAgLy8gKERvIG5vdGhpbmcgd2l0aCB0aG9zZSBieXRlcy4pXG4gICAgICAgIGNvbGxlY3RBU2VxdWVuY2VPZkJ5dGVzKFxuICAgICAgICAgIChjaGFyKSA9PiBjaGFyICE9PSAweDBhICYmIGNoYXIgIT09IDB4MGQsXG4gICAgICAgICAgaW5wdXQsXG4gICAgICAgICAgcG9zaXRpb25cbiAgICAgICAgKVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIDIuOS4gSWYgcG9zaXRpb24gZG9lcyBub3QgcG9pbnQgdG8gYSBzZXF1ZW5jZSBvZiBieXRlcyBzdGFydGluZyB3aXRoIDB4MEQgMHgwQVxuICAgIC8vICAgICAgKENSIExGKSwgcmV0dXJuIGZhaWx1cmUuIE90aGVyd2lzZSwgYWR2YW5jZSBwb3NpdGlvbiBieSAyIChwYXN0IHRoZSBuZXdsaW5lKS5cbiAgICBpZiAoaW5wdXRbcG9zaXRpb24ucG9zaXRpb25dICE9PSAweDBkICYmIGlucHV0W3Bvc2l0aW9uLnBvc2l0aW9uICsgMV0gIT09IDB4MGEpIHtcbiAgICAgIHJldHVybiAnZmFpbHVyZSdcbiAgICB9IGVsc2Uge1xuICAgICAgcG9zaXRpb24ucG9zaXRpb24gKz0gMlxuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIEBzZWUgaHR0cHM6Ly9hbmRyZXVib3RlbGxhLmdpdGh1Yi5pby9tdWx0aXBhcnQtZm9ybS1kYXRhLyNwYXJzZS1hLW11bHRpcGFydC1mb3JtLWRhdGEtbmFtZVxuICogQHBhcmFtIHtCdWZmZXJ9IGlucHV0XG4gKiBAcGFyYW0ge3sgcG9zaXRpb246IG51bWJlciB9fSBwb3NpdGlvblxuICovXG5mdW5jdGlvbiBwYXJzZU11bHRpcGFydEZvcm1EYXRhTmFtZSAoaW5wdXQsIHBvc2l0aW9uKSB7XG4gIC8vIDEuIEFzc2VydDogVGhlIGJ5dGUgYXQgKHBvc2l0aW9uIC0gMSkgaXMgMHgyMiAoXCIpLlxuICBhc3NlcnQoaW5wdXRbcG9zaXRpb24ucG9zaXRpb24gLSAxXSA9PT0gMHgyMilcblxuICAvLyAyLiBMZXQgbmFtZSBiZSB0aGUgcmVzdWx0IG9mIGNvbGxlY3RpbmcgYSBzZXF1ZW5jZSBvZiBieXRlcyB0aGF0IGFyZSBub3QgMHgwQSAoTEYpLCAweDBEIChDUikgb3IgMHgyMiAoXCIpLCBnaXZlbiBwb3NpdGlvbi5cbiAgLyoqIEB0eXBlIHtzdHJpbmcgfCBCdWZmZXJ9ICovXG4gIGxldCBuYW1lID0gY29sbGVjdEFTZXF1ZW5jZU9mQnl0ZXMoXG4gICAgKGNoYXIpID0+IGNoYXIgIT09IDB4MGEgJiYgY2hhciAhPT0gMHgwZCAmJiBjaGFyICE9PSAweDIyLFxuICAgIGlucHV0LFxuICAgIHBvc2l0aW9uXG4gIClcblxuICAvLyAzLiBJZiB0aGUgYnl0ZSBhdCBwb3NpdGlvbiBpcyBub3QgMHgyMiAoXCIpLCByZXR1cm4gZmFpbHVyZS4gT3RoZXJ3aXNlLCBhZHZhbmNlIHBvc2l0aW9uIGJ5IDEuXG4gIGlmIChpbnB1dFtwb3NpdGlvbi5wb3NpdGlvbl0gIT09IDB4MjIpIHtcbiAgICByZXR1cm4gbnVsbCAvLyBuYW1lIGNvdWxkIGJlICdmYWlsdXJlJ1xuICB9IGVsc2Uge1xuICAgIHBvc2l0aW9uLnBvc2l0aW9uKytcbiAgfVxuXG4gIC8vIDQuIFJlcGxhY2UgYW55IG9jY3VycmVuY2Ugb2YgdGhlIGZvbGxvd2luZyBzdWJzZXF1ZW5jZXMgaW4gbmFtZSB3aXRoIHRoZSBnaXZlbiBieXRlOlxuICAvLyAtIGAlMEFgOiAweDBBIChMRilcbiAgLy8gLSBgJTBEYDogMHgwRCAoQ1IpXG4gIC8vIC0gYCUyMmA6IDB4MjIgKFwiKVxuICBuYW1lID0gbmV3IFRleHREZWNvZGVyKCkuZGVjb2RlKG5hbWUpXG4gICAgLnJlcGxhY2UoLyUwQS9pZywgJ1xcbicpXG4gICAgLnJlcGxhY2UoLyUwRC9pZywgJ1xccicpXG4gICAgLnJlcGxhY2UoLyUyMi9nLCAnXCInKVxuXG4gIC8vIDUuIFJldHVybiB0aGUgVVRGLTggZGVjb2Rpbmcgd2l0aG91dCBCT00gb2YgbmFtZS5cbiAgcmV0dXJuIG5hbWVcbn1cblxuLyoqXG4gKiBAcGFyYW0geyhjaGFyOiBudW1iZXIpID0+IGJvb2xlYW59IGNvbmRpdGlvblxuICogQHBhcmFtIHtCdWZmZXJ9IGlucHV0XG4gKiBAcGFyYW0ge3sgcG9zaXRpb246IG51bWJlciB9fSBwb3NpdGlvblxuICovXG5mdW5jdGlvbiBjb2xsZWN0QVNlcXVlbmNlT2ZCeXRlcyAoY29uZGl0aW9uLCBpbnB1dCwgcG9zaXRpb24pIHtcbiAgbGV0IHN0YXJ0ID0gcG9zaXRpb24ucG9zaXRpb25cblxuICB3aGlsZSAoc3RhcnQgPCBpbnB1dC5sZW5ndGggJiYgY29uZGl0aW9uKGlucHV0W3N0YXJ0XSkpIHtcbiAgICArK3N0YXJ0XG4gIH1cblxuICByZXR1cm4gaW5wdXQuc3ViYXJyYXkocG9zaXRpb24ucG9zaXRpb24sIChwb3NpdGlvbi5wb3NpdGlvbiA9IHN0YXJ0KSlcbn1cblxuLyoqXG4gKiBAcGFyYW0ge0J1ZmZlcn0gYnVmXG4gKiBAcGFyYW0ge2Jvb2xlYW59IGxlYWRpbmdcbiAqIEBwYXJhbSB7Ym9vbGVhbn0gdHJhaWxpbmdcbiAqIEBwYXJhbSB7KGNoYXJDb2RlOiBudW1iZXIpID0+IGJvb2xlYW59IHByZWRpY2F0ZVxuICogQHJldHVybnMge0J1ZmZlcn1cbiAqL1xuZnVuY3Rpb24gcmVtb3ZlQ2hhcnMgKGJ1ZiwgbGVhZGluZywgdHJhaWxpbmcsIHByZWRpY2F0ZSkge1xuICBsZXQgbGVhZCA9IDBcbiAgbGV0IHRyYWlsID0gYnVmLmxlbmd0aCAtIDFcblxuICBpZiAobGVhZGluZykge1xuICAgIHdoaWxlIChsZWFkIDwgYnVmLmxlbmd0aCAmJiBwcmVkaWNhdGUoYnVmW2xlYWRdKSkgbGVhZCsrXG4gIH1cblxuICBpZiAodHJhaWxpbmcpIHtcbiAgICB3aGlsZSAodHJhaWwgPiAwICYmIHByZWRpY2F0ZShidWZbdHJhaWxdKSkgdHJhaWwtLVxuICB9XG5cbiAgcmV0dXJuIGxlYWQgPT09IDAgJiYgdHJhaWwgPT09IGJ1Zi5sZW5ndGggLSAxID8gYnVmIDogYnVmLnN1YmFycmF5KGxlYWQsIHRyYWlsICsgMSlcbn1cblxuLyoqXG4gKiBDaGVja3MgaWYge0BwYXJhbSBidWZmZXJ9IHN0YXJ0cyB3aXRoIHtAcGFyYW0gc3RhcnR9XG4gKiBAcGFyYW0ge0J1ZmZlcn0gYnVmZmVyXG4gKiBAcGFyYW0ge0J1ZmZlcn0gc3RhcnRcbiAqIEBwYXJhbSB7eyBwb3NpdGlvbjogbnVtYmVyIH19IHBvc2l0aW9uXG4gKi9cbmZ1bmN0aW9uIGJ1ZmZlclN0YXJ0c1dpdGggKGJ1ZmZlciwgc3RhcnQsIHBvc2l0aW9uKSB7XG4gIGlmIChidWZmZXIubGVuZ3RoIDwgc3RhcnQubGVuZ3RoKSB7XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cblxuICBmb3IgKGxldCBpID0gMDsgaSA8IHN0YXJ0Lmxlbmd0aDsgaSsrKSB7XG4gICAgaWYgKHN0YXJ0W2ldICE9PSBidWZmZXJbcG9zaXRpb24ucG9zaXRpb24gKyBpXSkge1xuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHRydWVcbn1cblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gIG11bHRpcGFydEZvcm1EYXRhUGFyc2VyLFxuICB2YWxpZGF0ZUJvdW5kYXJ5XG59XG4iLCAiJ3VzZSBzdHJpY3QnXG5cbmNvbnN0IHV0aWwgPSByZXF1aXJlKCcuLi8uLi9jb3JlL3V0aWwnKVxuY29uc3Qge1xuICBSZWFkYWJsZVN0cmVhbUZyb20sXG4gIGlzQmxvYkxpa2UsXG4gIGlzUmVhZGFibGVTdHJlYW1MaWtlLFxuICByZWFkYWJsZVN0cmVhbUNsb3NlLFxuICBjcmVhdGVEZWZlcnJlZFByb21pc2UsXG4gIGZ1bGx5UmVhZEJvZHksXG4gIGV4dHJhY3RNaW1lVHlwZSxcbiAgdXRmOERlY29kZUJ5dGVzXG59ID0gcmVxdWlyZSgnLi91dGlsJylcbmNvbnN0IHsgRm9ybURhdGEgfSA9IHJlcXVpcmUoJy4vZm9ybWRhdGEnKVxuY29uc3QgeyBrU3RhdGUgfSA9IHJlcXVpcmUoJy4vc3ltYm9scycpXG5jb25zdCB7IHdlYmlkbCB9ID0gcmVxdWlyZSgnLi93ZWJpZGwnKVxuY29uc3QgeyBCbG9iIH0gPSByZXF1aXJlKCdub2RlOmJ1ZmZlcicpXG5jb25zdCBhc3NlcnQgPSByZXF1aXJlKCdub2RlOmFzc2VydCcpXG5jb25zdCB7IGlzRXJyb3JlZCwgaXNEaXN0dXJiZWQgfSA9IHJlcXVpcmUoJ25vZGU6c3RyZWFtJylcbmNvbnN0IHsgaXNBcnJheUJ1ZmZlciB9ID0gcmVxdWlyZSgnbm9kZTp1dGlsL3R5cGVzJylcbmNvbnN0IHsgc2VyaWFsaXplQU1pbWVUeXBlIH0gPSByZXF1aXJlKCcuL2RhdGEtdXJsJylcbmNvbnN0IHsgbXVsdGlwYXJ0Rm9ybURhdGFQYXJzZXIgfSA9IHJlcXVpcmUoJy4vZm9ybWRhdGEtcGFyc2VyJylcbmxldCByYW5kb21cblxudHJ5IHtcbiAgY29uc3QgY3J5cHRvID0gcmVxdWlyZSgnbm9kZTpjcnlwdG8nKVxuICByYW5kb20gPSAobWF4KSA9PiBjcnlwdG8ucmFuZG9tSW50KDAsIG1heClcbn0gY2F0Y2gge1xuICByYW5kb20gPSAobWF4KSA9PiBNYXRoLmZsb29yKE1hdGgucmFuZG9tKG1heCkpXG59XG5cbmNvbnN0IHRleHRFbmNvZGVyID0gbmV3IFRleHRFbmNvZGVyKClcbmZ1bmN0aW9uIG5vb3AgKCkge31cblxuY29uc3QgaGFzRmluYWxpemF0aW9uUmVnaXN0cnkgPSBnbG9iYWxUaGlzLkZpbmFsaXphdGlvblJlZ2lzdHJ5ICYmIHByb2Nlc3MudmVyc2lvbi5pbmRleE9mKCd2MTgnKSAhPT0gMFxubGV0IHN0cmVhbVJlZ2lzdHJ5XG5cbmlmIChoYXNGaW5hbGl6YXRpb25SZWdpc3RyeSkge1xuICBzdHJlYW1SZWdpc3RyeSA9IG5ldyBGaW5hbGl6YXRpb25SZWdpc3RyeSgod2Vha1JlZikgPT4ge1xuICAgIGNvbnN0IHN0cmVhbSA9IHdlYWtSZWYuZGVyZWYoKVxuICAgIGlmIChzdHJlYW0gJiYgIXN0cmVhbS5sb2NrZWQgJiYgIWlzRGlzdHVyYmVkKHN0cmVhbSkgJiYgIWlzRXJyb3JlZChzdHJlYW0pKSB7XG4gICAgICBzdHJlYW0uY2FuY2VsKCdSZXNwb25zZSBvYmplY3QgaGFzIGJlZW4gZ2FyYmFnZSBjb2xsZWN0ZWQnKS5jYXRjaChub29wKVxuICAgIH1cbiAgfSlcbn1cblxuLy8gaHR0cHM6Ly9mZXRjaC5zcGVjLndoYXR3Zy5vcmcvI2NvbmNlcHQtYm9keWluaXQtZXh0cmFjdFxuZnVuY3Rpb24gZXh0cmFjdEJvZHkgKG9iamVjdCwga2VlcGFsaXZlID0gZmFsc2UpIHtcbiAgLy8gMS4gTGV0IHN0cmVhbSBiZSBudWxsLlxuICBsZXQgc3RyZWFtID0gbnVsbFxuXG4gIC8vIDIuIElmIG9iamVjdCBpcyBhIFJlYWRhYmxlU3RyZWFtIG9iamVjdCwgdGhlbiBzZXQgc3RyZWFtIHRvIG9iamVjdC5cbiAgaWYgKG9iamVjdCBpbnN0YW5jZW9mIFJlYWRhYmxlU3RyZWFtKSB7XG4gICAgc3RyZWFtID0gb2JqZWN0XG4gIH0gZWxzZSBpZiAoaXNCbG9iTGlrZShvYmplY3QpKSB7XG4gICAgLy8gMy4gT3RoZXJ3aXNlLCBpZiBvYmplY3QgaXMgYSBCbG9iIG9iamVjdCwgc2V0IHN0cmVhbSB0byB0aGVcbiAgICAvLyAgICByZXN1bHQgb2YgcnVubmluZyBvYmplY3RcdTIwMTlzIGdldCBzdHJlYW0uXG4gICAgc3RyZWFtID0gb2JqZWN0LnN0cmVhbSgpXG4gIH0gZWxzZSB7XG4gICAgLy8gNC4gT3RoZXJ3aXNlLCBzZXQgc3RyZWFtIHRvIGEgbmV3IFJlYWRhYmxlU3RyZWFtIG9iamVjdCwgYW5kIHNldFxuICAgIC8vICAgIHVwIHN0cmVhbSB3aXRoIGJ5dGUgcmVhZGluZyBzdXBwb3J0LlxuICAgIHN0cmVhbSA9IG5ldyBSZWFkYWJsZVN0cmVhbSh7XG4gICAgICBhc3luYyBwdWxsIChjb250cm9sbGVyKSB7XG4gICAgICAgIGNvbnN0IGJ1ZmZlciA9IHR5cGVvZiBzb3VyY2UgPT09ICdzdHJpbmcnID8gdGV4dEVuY29kZXIuZW5jb2RlKHNvdXJjZSkgOiBzb3VyY2VcblxuICAgICAgICBpZiAoYnVmZmVyLmJ5dGVMZW5ndGgpIHtcbiAgICAgICAgICBjb250cm9sbGVyLmVucXVldWUoYnVmZmVyKVxuICAgICAgICB9XG5cbiAgICAgICAgcXVldWVNaWNyb3Rhc2soKCkgPT4gcmVhZGFibGVTdHJlYW1DbG9zZShjb250cm9sbGVyKSlcbiAgICAgIH0sXG4gICAgICBzdGFydCAoKSB7fSxcbiAgICAgIHR5cGU6ICdieXRlcydcbiAgICB9KVxuICB9XG5cbiAgLy8gNS4gQXNzZXJ0OiBzdHJlYW0gaXMgYSBSZWFkYWJsZVN0cmVhbSBvYmplY3QuXG4gIGFzc2VydChpc1JlYWRhYmxlU3RyZWFtTGlrZShzdHJlYW0pKVxuXG4gIC8vIDYuIExldCBhY3Rpb24gYmUgbnVsbC5cbiAgbGV0IGFjdGlvbiA9IG51bGxcblxuICAvLyA3LiBMZXQgc291cmNlIGJlIG51bGwuXG4gIGxldCBzb3VyY2UgPSBudWxsXG5cbiAgLy8gOC4gTGV0IGxlbmd0aCBiZSBudWxsLlxuICBsZXQgbGVuZ3RoID0gbnVsbFxuXG4gIC8vIDkuIExldCB0eXBlIGJlIG51bGwuXG4gIGxldCB0eXBlID0gbnVsbFxuXG4gIC8vIDEwLiBTd2l0Y2ggb24gb2JqZWN0OlxuICBpZiAodHlwZW9mIG9iamVjdCA9PT0gJ3N0cmluZycpIHtcbiAgICAvLyBTZXQgc291cmNlIHRvIHRoZSBVVEYtOCBlbmNvZGluZyBvZiBvYmplY3QuXG4gICAgLy8gTm90ZTogc2V0dGluZyBzb3VyY2UgdG8gYSBVaW50OEFycmF5IGhlcmUgYnJlYWtzIHNvbWUgbW9ja2luZyBhc3N1bXB0aW9ucy5cbiAgICBzb3VyY2UgPSBvYmplY3RcblxuICAgIC8vIFNldCB0eXBlIHRvIGB0ZXh0L3BsYWluO2NoYXJzZXQ9VVRGLThgLlxuICAgIHR5cGUgPSAndGV4dC9wbGFpbjtjaGFyc2V0PVVURi04J1xuICB9IGVsc2UgaWYgKG9iamVjdCBpbnN0YW5jZW9mIFVSTFNlYXJjaFBhcmFtcykge1xuICAgIC8vIFVSTFNlYXJjaFBhcmFtc1xuXG4gICAgLy8gc3BlYyBzYXlzIHRvIHJ1biBhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQgb24gYm9keS5saXN0XG4gICAgLy8gdGhpcyBpcyBpbXBsZW1lbnRlZCBpbiBOb2RlLmpzIGFzIGFwYXJ0IG9mIGFuIFVSTFNlYXJjaFBhcmFtcyBpbnN0YW5jZSB0b1N0cmluZyBtZXRob2RcbiAgICAvLyBTZWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9ub2RlanMvbm9kZS9ibG9iL2U0NmM2ODBiZjJiMjExYmJkNTJjZjk1OWNhMTdlZTk4YzdmNjU3ZjUvbGliL2ludGVybmFsL3VybC5qcyNMNDkwXG4gICAgLy8gYW5kIGh0dHBzOi8vZ2l0aHViLmNvbS9ub2RlanMvbm9kZS9ibG9iL2U0NmM2ODBiZjJiMjExYmJkNTJjZjk1OWNhMTdlZTk4YzdmNjU3ZjUvbGliL2ludGVybmFsL3VybC5qcyNMMTEwMFxuXG4gICAgLy8gU2V0IHNvdXJjZSB0byB0aGUgcmVzdWx0IG9mIHJ1bm5pbmcgdGhlIGFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCBzZXJpYWxpemVyIHdpdGggb2JqZWN0XHUyMDE5cyBsaXN0LlxuICAgIHNvdXJjZSA9IG9iamVjdC50b1N0cmluZygpXG5cbiAgICAvLyBTZXQgdHlwZSB0byBgYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkO2NoYXJzZXQ9VVRGLThgLlxuICAgIHR5cGUgPSAnYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkO2NoYXJzZXQ9VVRGLTgnXG4gIH0gZWxzZSBpZiAoaXNBcnJheUJ1ZmZlcihvYmplY3QpKSB7XG4gICAgLy8gQnVmZmVyU291cmNlL0FycmF5QnVmZmVyXG5cbiAgICAvLyBTZXQgc291cmNlIHRvIGEgY29weSBvZiB0aGUgYnl0ZXMgaGVsZCBieSBvYmplY3QuXG4gICAgc291cmNlID0gbmV3IFVpbnQ4QXJyYXkob2JqZWN0LnNsaWNlKCkpXG4gIH0gZWxzZSBpZiAoQXJyYXlCdWZmZXIuaXNWaWV3KG9iamVjdCkpIHtcbiAgICAvLyBCdWZmZXJTb3VyY2UvQXJyYXlCdWZmZXJWaWV3XG5cbiAgICAvLyBTZXQgc291cmNlIHRvIGEgY29weSBvZiB0aGUgYnl0ZXMgaGVsZCBieSBvYmplY3QuXG4gICAgc291cmNlID0gbmV3IFVpbnQ4QXJyYXkob2JqZWN0LmJ1ZmZlci5zbGljZShvYmplY3QuYnl0ZU9mZnNldCwgb2JqZWN0LmJ5dGVPZmZzZXQgKyBvYmplY3QuYnl0ZUxlbmd0aCkpXG4gIH0gZWxzZSBpZiAodXRpbC5pc0Zvcm1EYXRhTGlrZShvYmplY3QpKSB7XG4gICAgY29uc3QgYm91bmRhcnkgPSBgLS0tLWZvcm1kYXRhLXVuZGljaS0wJHtgJHtyYW5kb20oMWUxMSl9YC5wYWRTdGFydCgxMSwgJzAnKX1gXG4gICAgY29uc3QgcHJlZml4ID0gYC0tJHtib3VuZGFyeX1cXHJcXG5Db250ZW50LURpc3Bvc2l0aW9uOiBmb3JtLWRhdGFgXG5cbiAgICAvKiEgZm9ybWRhdGEtcG9seWZpbGwuIE1JVCBMaWNlbnNlLiBKaW1teSBXXHUwMEU0cnRpbmcgPGh0dHBzOi8vamltbXkud2FydGluZy5zZS9vcGVuc291cmNlPiAqL1xuICAgIGNvbnN0IGVzY2FwZSA9IChzdHIpID0+XG4gICAgICBzdHIucmVwbGFjZSgvXFxuL2csICclMEEnKS5yZXBsYWNlKC9cXHIvZywgJyUwRCcpLnJlcGxhY2UoL1wiL2csICclMjInKVxuICAgIGNvbnN0IG5vcm1hbGl6ZUxpbmVmZWVkcyA9ICh2YWx1ZSkgPT4gdmFsdWUucmVwbGFjZSgvXFxyP1xcbnxcXHIvZywgJ1xcclxcbicpXG5cbiAgICAvLyBTZXQgYWN0aW9uIHRvIHRoaXMgc3RlcDogcnVuIHRoZSBtdWx0aXBhcnQvZm9ybS1kYXRhXG4gICAgLy8gZW5jb2RpbmcgYWxnb3JpdGhtLCB3aXRoIG9iamVjdFx1MjAxOXMgZW50cnkgbGlzdCBhbmQgVVRGLTguXG4gICAgLy8gLSBUaGlzIGVuc3VyZXMgdGhhdCB0aGUgYm9keSBpcyBpbW11dGFibGUgYW5kIGNhbid0IGJlIGNoYW5nZWQgYWZ0ZXJ3b3Jkc1xuICAgIC8vIC0gVGhhdCB0aGUgY29udGVudC1sZW5ndGggaXMgY2FsY3VsYXRlZCBpbiBhZHZhbmNlLlxuICAgIC8vIC0gQW5kIHRoYXQgYWxsIHBhcnRzIGFyZSBwcmUtZW5jb2RlZCBhbmQgcmVhZHkgdG8gYmUgc2VudC5cblxuICAgIGNvbnN0IGJsb2JQYXJ0cyA9IFtdXG4gICAgY29uc3Qgcm4gPSBuZXcgVWludDhBcnJheShbMTMsIDEwXSkgLy8gJ1xcclxcbidcbiAgICBsZW5ndGggPSAwXG4gICAgbGV0IGhhc1Vua25vd25TaXplVmFsdWUgPSBmYWxzZVxuXG4gICAgZm9yIChjb25zdCBbbmFtZSwgdmFsdWVdIG9mIG9iamVjdCkge1xuICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgY29uc3QgY2h1bmsgPSB0ZXh0RW5jb2Rlci5lbmNvZGUocHJlZml4ICtcbiAgICAgICAgICBgOyBuYW1lPVwiJHtlc2NhcGUobm9ybWFsaXplTGluZWZlZWRzKG5hbWUpKX1cImAgK1xuICAgICAgICAgIGBcXHJcXG5cXHJcXG4ke25vcm1hbGl6ZUxpbmVmZWVkcyh2YWx1ZSl9XFxyXFxuYClcbiAgICAgICAgYmxvYlBhcnRzLnB1c2goY2h1bmspXG4gICAgICAgIGxlbmd0aCArPSBjaHVuay5ieXRlTGVuZ3RoXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBjaHVuayA9IHRleHRFbmNvZGVyLmVuY29kZShgJHtwcmVmaXh9OyBuYW1lPVwiJHtlc2NhcGUobm9ybWFsaXplTGluZWZlZWRzKG5hbWUpKX1cImAgK1xuICAgICAgICAgICh2YWx1ZS5uYW1lID8gYDsgZmlsZW5hbWU9XCIke2VzY2FwZSh2YWx1ZS5uYW1lKX1cImAgOiAnJykgKyAnXFxyXFxuJyArXG4gICAgICAgICAgYENvbnRlbnQtVHlwZTogJHtcbiAgICAgICAgICAgIHZhbHVlLnR5cGUgfHwgJ2FwcGxpY2F0aW9uL29jdGV0LXN0cmVhbSdcbiAgICAgICAgICB9XFxyXFxuXFxyXFxuYClcbiAgICAgICAgYmxvYlBhcnRzLnB1c2goY2h1bmssIHZhbHVlLCBybilcbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZS5zaXplID09PSAnbnVtYmVyJykge1xuICAgICAgICAgIGxlbmd0aCArPSBjaHVuay5ieXRlTGVuZ3RoICsgdmFsdWUuc2l6ZSArIHJuLmJ5dGVMZW5ndGhcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBoYXNVbmtub3duU2l6ZVZhbHVlID0gdHJ1ZVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgY2h1bmsgPSB0ZXh0RW5jb2Rlci5lbmNvZGUoYC0tJHtib3VuZGFyeX0tLWApXG4gICAgYmxvYlBhcnRzLnB1c2goY2h1bmspXG4gICAgbGVuZ3RoICs9IGNodW5rLmJ5dGVMZW5ndGhcbiAgICBpZiAoaGFzVW5rbm93blNpemVWYWx1ZSkge1xuICAgICAgbGVuZ3RoID0gbnVsbFxuICAgIH1cblxuICAgIC8vIFNldCBzb3VyY2UgdG8gb2JqZWN0LlxuICAgIHNvdXJjZSA9IG9iamVjdFxuXG4gICAgYWN0aW9uID0gYXN5bmMgZnVuY3Rpb24gKiAoKSB7XG4gICAgICBmb3IgKGNvbnN0IHBhcnQgb2YgYmxvYlBhcnRzKSB7XG4gICAgICAgIGlmIChwYXJ0LnN0cmVhbSkge1xuICAgICAgICAgIHlpZWxkICogcGFydC5zdHJlYW0oKVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHlpZWxkIHBhcnRcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFNldCB0eXBlIHRvIGBtdWx0aXBhcnQvZm9ybS1kYXRhOyBib3VuZGFyeT1gLFxuICAgIC8vIGZvbGxvd2VkIGJ5IHRoZSBtdWx0aXBhcnQvZm9ybS1kYXRhIGJvdW5kYXJ5IHN0cmluZyBnZW5lcmF0ZWRcbiAgICAvLyBieSB0aGUgbXVsdGlwYXJ0L2Zvcm0tZGF0YSBlbmNvZGluZyBhbGdvcml0aG0uXG4gICAgdHlwZSA9IGBtdWx0aXBhcnQvZm9ybS1kYXRhOyBib3VuZGFyeT0ke2JvdW5kYXJ5fWBcbiAgfSBlbHNlIGlmIChpc0Jsb2JMaWtlKG9iamVjdCkpIHtcbiAgICAvLyBCbG9iXG5cbiAgICAvLyBTZXQgc291cmNlIHRvIG9iamVjdC5cbiAgICBzb3VyY2UgPSBvYmplY3RcblxuICAgIC8vIFNldCBsZW5ndGggdG8gb2JqZWN0XHUyMDE5cyBzaXplLlxuICAgIGxlbmd0aCA9IG9iamVjdC5zaXplXG5cbiAgICAvLyBJZiBvYmplY3RcdTIwMTlzIHR5cGUgYXR0cmlidXRlIGlzIG5vdCB0aGUgZW1wdHkgYnl0ZSBzZXF1ZW5jZSwgc2V0XG4gICAgLy8gdHlwZSB0byBpdHMgdmFsdWUuXG4gICAgaWYgKG9iamVjdC50eXBlKSB7XG4gICAgICB0eXBlID0gb2JqZWN0LnR5cGVcbiAgICB9XG4gIH0gZWxzZSBpZiAodHlwZW9mIG9iamVjdFtTeW1ib2wuYXN5bmNJdGVyYXRvcl0gPT09ICdmdW5jdGlvbicpIHtcbiAgICAvLyBJZiBrZWVwYWxpdmUgaXMgdHJ1ZSwgdGhlbiB0aHJvdyBhIFR5cGVFcnJvci5cbiAgICBpZiAoa2VlcGFsaXZlKSB7XG4gICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdrZWVwYWxpdmUnKVxuICAgIH1cblxuICAgIC8vIElmIG9iamVjdCBpcyBkaXN0dXJiZWQgb3IgbG9ja2VkLCB0aGVuIHRocm93IGEgVHlwZUVycm9yLlxuICAgIGlmICh1dGlsLmlzRGlzdHVyYmVkKG9iamVjdCkgfHwgb2JqZWN0LmxvY2tlZCkge1xuICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcbiAgICAgICAgJ1Jlc3BvbnNlIGJvZHkgb2JqZWN0IHNob3VsZCBub3QgYmUgZGlzdHVyYmVkIG9yIGxvY2tlZCdcbiAgICAgIClcbiAgICB9XG5cbiAgICBzdHJlYW0gPVxuICAgICAgb2JqZWN0IGluc3RhbmNlb2YgUmVhZGFibGVTdHJlYW0gPyBvYmplY3QgOiBSZWFkYWJsZVN0cmVhbUZyb20ob2JqZWN0KVxuICB9XG5cbiAgLy8gMTEuIElmIHNvdXJjZSBpcyBhIGJ5dGUgc2VxdWVuY2UsIHRoZW4gc2V0IGFjdGlvbiB0byBhXG4gIC8vIHN0ZXAgdGhhdCByZXR1cm5zIHNvdXJjZSBhbmQgbGVuZ3RoIHRvIHNvdXJjZVx1MjAxOXMgbGVuZ3RoLlxuICBpZiAodHlwZW9mIHNvdXJjZSA9PT0gJ3N0cmluZycgfHwgdXRpbC5pc0J1ZmZlcihzb3VyY2UpKSB7XG4gICAgbGVuZ3RoID0gQnVmZmVyLmJ5dGVMZW5ndGgoc291cmNlKVxuICB9XG5cbiAgLy8gMTIuIElmIGFjdGlvbiBpcyBub24tbnVsbCwgdGhlbiBydW4gdGhlc2Ugc3RlcHMgaW4gaW4gcGFyYWxsZWw6XG4gIGlmIChhY3Rpb24gIT0gbnVsbCkge1xuICAgIC8vIFJ1biBhY3Rpb24uXG4gICAgbGV0IGl0ZXJhdG9yXG4gICAgc3RyZWFtID0gbmV3IFJlYWRhYmxlU3RyZWFtKHtcbiAgICAgIGFzeW5jIHN0YXJ0ICgpIHtcbiAgICAgICAgaXRlcmF0b3IgPSBhY3Rpb24ob2JqZWN0KVtTeW1ib2wuYXN5bmNJdGVyYXRvcl0oKVxuICAgICAgfSxcbiAgICAgIGFzeW5jIHB1bGwgKGNvbnRyb2xsZXIpIHtcbiAgICAgICAgY29uc3QgeyB2YWx1ZSwgZG9uZSB9ID0gYXdhaXQgaXRlcmF0b3IubmV4dCgpXG4gICAgICAgIGlmIChkb25lKSB7XG4gICAgICAgICAgLy8gV2hlbiBydW5uaW5nIGFjdGlvbiBpcyBkb25lLCBjbG9zZSBzdHJlYW0uXG4gICAgICAgICAgcXVldWVNaWNyb3Rhc2soKCkgPT4ge1xuICAgICAgICAgICAgY29udHJvbGxlci5jbG9zZSgpXG4gICAgICAgICAgICBjb250cm9sbGVyLmJ5b2JSZXF1ZXN0Py5yZXNwb25kKDApXG4gICAgICAgICAgfSlcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAvLyBXaGVuZXZlciBvbmUgb3IgbW9yZSBieXRlcyBhcmUgYXZhaWxhYmxlIGFuZCBzdHJlYW0gaXMgbm90IGVycm9yZWQsXG4gICAgICAgICAgLy8gZW5xdWV1ZSBhIFVpbnQ4QXJyYXkgd3JhcHBpbmcgYW4gQXJyYXlCdWZmZXIgY29udGFpbmluZyB0aGUgYXZhaWxhYmxlXG4gICAgICAgICAgLy8gYnl0ZXMgaW50byBzdHJlYW0uXG4gICAgICAgICAgaWYgKCFpc0Vycm9yZWQoc3RyZWFtKSkge1xuICAgICAgICAgICAgY29uc3QgYnVmZmVyID0gbmV3IFVpbnQ4QXJyYXkodmFsdWUpXG4gICAgICAgICAgICBpZiAoYnVmZmVyLmJ5dGVMZW5ndGgpIHtcbiAgICAgICAgICAgICAgY29udHJvbGxlci5lbnF1ZXVlKGJ1ZmZlcilcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGNvbnRyb2xsZXIuZGVzaXJlZFNpemUgPiAwXG4gICAgICB9LFxuICAgICAgYXN5bmMgY2FuY2VsIChyZWFzb24pIHtcbiAgICAgICAgYXdhaXQgaXRlcmF0b3IucmV0dXJuKClcbiAgICAgIH0sXG4gICAgICB0eXBlOiAnYnl0ZXMnXG4gICAgfSlcbiAgfVxuXG4gIC8vIDEzLiBMZXQgYm9keSBiZSBhIGJvZHkgd2hvc2Ugc3RyZWFtIGlzIHN0cmVhbSwgc291cmNlIGlzIHNvdXJjZSxcbiAgLy8gYW5kIGxlbmd0aCBpcyBsZW5ndGguXG4gIGNvbnN0IGJvZHkgPSB7IHN0cmVhbSwgc291cmNlLCBsZW5ndGggfVxuXG4gIC8vIDE0LiBSZXR1cm4gKGJvZHksIHR5cGUpLlxuICByZXR1cm4gW2JvZHksIHR5cGVdXG59XG5cbi8vIGh0dHBzOi8vZmV0Y2guc3BlYy53aGF0d2cub3JnLyNib2R5aW5pdC1zYWZlbHktZXh0cmFjdFxuZnVuY3Rpb24gc2FmZWx5RXh0cmFjdEJvZHkgKG9iamVjdCwga2VlcGFsaXZlID0gZmFsc2UpIHtcbiAgLy8gVG8gc2FmZWx5IGV4dHJhY3QgYSBib2R5IGFuZCBhIGBDb250ZW50LVR5cGVgIHZhbHVlIGZyb21cbiAgLy8gYSBieXRlIHNlcXVlbmNlIG9yIEJvZHlJbml0IG9iamVjdCBvYmplY3QsIHJ1biB0aGVzZSBzdGVwczpcblxuICAvLyAxLiBJZiBvYmplY3QgaXMgYSBSZWFkYWJsZVN0cmVhbSBvYmplY3QsIHRoZW46XG4gIGlmIChvYmplY3QgaW5zdGFuY2VvZiBSZWFkYWJsZVN0cmVhbSkge1xuICAgIC8vIEFzc2VydDogb2JqZWN0IGlzIG5laXRoZXIgZGlzdHVyYmVkIG5vciBsb2NrZWQuXG4gICAgLy8gaXN0YW5idWwgaWdub3JlIG5leHRcbiAgICBhc3NlcnQoIXV0aWwuaXNEaXN0dXJiZWQob2JqZWN0KSwgJ1RoZSBib2R5IGhhcyBhbHJlYWR5IGJlZW4gY29uc3VtZWQuJylcbiAgICAvLyBpc3RhbmJ1bCBpZ25vcmUgbmV4dFxuICAgIGFzc2VydCghb2JqZWN0LmxvY2tlZCwgJ1RoZSBzdHJlYW0gaXMgbG9ja2VkLicpXG4gIH1cblxuICAvLyAyLiBSZXR1cm4gdGhlIHJlc3VsdHMgb2YgZXh0cmFjdGluZyBvYmplY3QuXG4gIHJldHVybiBleHRyYWN0Qm9keShvYmplY3QsIGtlZXBhbGl2ZSlcbn1cblxuZnVuY3Rpb24gY2xvbmVCb2R5IChpbnN0YW5jZSwgYm9keSkge1xuICAvLyBUbyBjbG9uZSBhIGJvZHkgYm9keSwgcnVuIHRoZXNlIHN0ZXBzOlxuXG4gIC8vIGh0dHBzOi8vZmV0Y2guc3BlYy53aGF0d2cub3JnLyNjb25jZXB0LWJvZHktY2xvbmVcblxuICAvLyAxLiBMZXQgXHUwMEFCIG91dDEsIG91dDIgXHUwMEJCIGJlIHRoZSByZXN1bHQgb2YgdGVlaW5nIGJvZHlcdTIwMTlzIHN0cmVhbS5cbiAgY29uc3QgW291dDEsIG91dDJdID0gYm9keS5zdHJlYW0udGVlKClcblxuICBpZiAoaGFzRmluYWxpemF0aW9uUmVnaXN0cnkpIHtcbiAgICBzdHJlYW1SZWdpc3RyeS5yZWdpc3RlcihpbnN0YW5jZSwgbmV3IFdlYWtSZWYob3V0MSkpXG4gIH1cblxuICAvLyAyLiBTZXQgYm9keVx1MjAxOXMgc3RyZWFtIHRvIG91dDEuXG4gIGJvZHkuc3RyZWFtID0gb3V0MVxuXG4gIC8vIDMuIFJldHVybiBhIGJvZHkgd2hvc2Ugc3RyZWFtIGlzIG91dDIgYW5kIG90aGVyIG1lbWJlcnMgYXJlIGNvcGllZCBmcm9tIGJvZHkuXG4gIHJldHVybiB7XG4gICAgc3RyZWFtOiBvdXQyLFxuICAgIGxlbmd0aDogYm9keS5sZW5ndGgsXG4gICAgc291cmNlOiBib2R5LnNvdXJjZVxuICB9XG59XG5cbmZ1bmN0aW9uIHRocm93SWZBYm9ydGVkIChzdGF0ZSkge1xuICBpZiAoc3RhdGUuYWJvcnRlZCkge1xuICAgIHRocm93IG5ldyBET01FeGNlcHRpb24oJ1RoZSBvcGVyYXRpb24gd2FzIGFib3J0ZWQuJywgJ0Fib3J0RXJyb3InKVxuICB9XG59XG5cbmZ1bmN0aW9uIGJvZHlNaXhpbk1ldGhvZHMgKGluc3RhbmNlKSB7XG4gIGNvbnN0IG1ldGhvZHMgPSB7XG4gICAgYmxvYiAoKSB7XG4gICAgICAvLyBUaGUgYmxvYigpIG1ldGhvZCBzdGVwcyBhcmUgdG8gcmV0dXJuIHRoZSByZXN1bHQgb2ZcbiAgICAgIC8vIHJ1bm5pbmcgY29uc3VtZSBib2R5IHdpdGggdGhpcyBhbmQgdGhlIGZvbGxvd2luZyBzdGVwXG4gICAgICAvLyBnaXZlbiBhIGJ5dGUgc2VxdWVuY2UgYnl0ZXM6IHJldHVybiBhIEJsb2Igd2hvc2VcbiAgICAgIC8vIGNvbnRlbnRzIGFyZSBieXRlcyBhbmQgd2hvc2UgdHlwZSBhdHRyaWJ1dGUgaXMgdGhpc1x1MjAxOXNcbiAgICAgIC8vIE1JTUUgdHlwZS5cbiAgICAgIHJldHVybiBjb25zdW1lQm9keSh0aGlzLCAoYnl0ZXMpID0+IHtcbiAgICAgICAgbGV0IG1pbWVUeXBlID0gYm9keU1pbWVUeXBlKHRoaXMpXG5cbiAgICAgICAgaWYgKG1pbWVUeXBlID09PSBudWxsKSB7XG4gICAgICAgICAgbWltZVR5cGUgPSAnJ1xuICAgICAgICB9IGVsc2UgaWYgKG1pbWVUeXBlKSB7XG4gICAgICAgICAgbWltZVR5cGUgPSBzZXJpYWxpemVBTWltZVR5cGUobWltZVR5cGUpXG4gICAgICAgIH1cblxuICAgICAgICAvLyBSZXR1cm4gYSBCbG9iIHdob3NlIGNvbnRlbnRzIGFyZSBieXRlcyBhbmQgdHlwZSBhdHRyaWJ1dGVcbiAgICAgICAgLy8gaXMgbWltZVR5cGUuXG4gICAgICAgIHJldHVybiBuZXcgQmxvYihbYnl0ZXNdLCB7IHR5cGU6IG1pbWVUeXBlIH0pXG4gICAgICB9LCBpbnN0YW5jZSlcbiAgICB9LFxuXG4gICAgYXJyYXlCdWZmZXIgKCkge1xuICAgICAgLy8gVGhlIGFycmF5QnVmZmVyKCkgbWV0aG9kIHN0ZXBzIGFyZSB0byByZXR1cm4gdGhlIHJlc3VsdFxuICAgICAgLy8gb2YgcnVubmluZyBjb25zdW1lIGJvZHkgd2l0aCB0aGlzIGFuZCB0aGUgZm9sbG93aW5nIHN0ZXBcbiAgICAgIC8vIGdpdmVuIGEgYnl0ZSBzZXF1ZW5jZSBieXRlczogcmV0dXJuIGEgbmV3IEFycmF5QnVmZmVyXG4gICAgICAvLyB3aG9zZSBjb250ZW50cyBhcmUgYnl0ZXMuXG4gICAgICByZXR1cm4gY29uc3VtZUJvZHkodGhpcywgKGJ5dGVzKSA9PiB7XG4gICAgICAgIHJldHVybiBuZXcgVWludDhBcnJheShieXRlcykuYnVmZmVyXG4gICAgICB9LCBpbnN0YW5jZSlcbiAgICB9LFxuXG4gICAgdGV4dCAoKSB7XG4gICAgICAvLyBUaGUgdGV4dCgpIG1ldGhvZCBzdGVwcyBhcmUgdG8gcmV0dXJuIHRoZSByZXN1bHQgb2YgcnVubmluZ1xuICAgICAgLy8gY29uc3VtZSBib2R5IHdpdGggdGhpcyBhbmQgVVRGLTggZGVjb2RlLlxuICAgICAgcmV0dXJuIGNvbnN1bWVCb2R5KHRoaXMsIHV0ZjhEZWNvZGVCeXRlcywgaW5zdGFuY2UpXG4gICAgfSxcblxuICAgIGpzb24gKCkge1xuICAgICAgLy8gVGhlIGpzb24oKSBtZXRob2Qgc3RlcHMgYXJlIHRvIHJldHVybiB0aGUgcmVzdWx0IG9mIHJ1bm5pbmdcbiAgICAgIC8vIGNvbnN1bWUgYm9keSB3aXRoIHRoaXMgYW5kIHBhcnNlIEpTT04gZnJvbSBieXRlcy5cbiAgICAgIHJldHVybiBjb25zdW1lQm9keSh0aGlzLCBwYXJzZUpTT05Gcm9tQnl0ZXMsIGluc3RhbmNlKVxuICAgIH0sXG5cbiAgICBmb3JtRGF0YSAoKSB7XG4gICAgICAvLyBUaGUgZm9ybURhdGEoKSBtZXRob2Qgc3RlcHMgYXJlIHRvIHJldHVybiB0aGUgcmVzdWx0IG9mIHJ1bm5pbmdcbiAgICAgIC8vIGNvbnN1bWUgYm9keSB3aXRoIHRoaXMgYW5kIHRoZSBmb2xsb3dpbmcgc3RlcCBnaXZlbiBhIGJ5dGUgc2VxdWVuY2UgYnl0ZXM6XG4gICAgICByZXR1cm4gY29uc3VtZUJvZHkodGhpcywgKHZhbHVlKSA9PiB7XG4gICAgICAgIC8vIDEuIExldCBtaW1lVHlwZSBiZSB0aGUgcmVzdWx0IG9mIGdldCB0aGUgTUlNRSB0eXBlIHdpdGggdGhpcy5cbiAgICAgICAgY29uc3QgbWltZVR5cGUgPSBib2R5TWltZVR5cGUodGhpcylcblxuICAgICAgICAvLyAyLiBJZiBtaW1lVHlwZSBpcyBub24tbnVsbCwgdGhlbiBzd2l0Y2ggb24gbWltZVR5cGVcdTIwMTlzIGVzc2VuY2UgYW5kIHJ1blxuICAgICAgICAvLyAgICB0aGUgY29ycmVzcG9uZGluZyBzdGVwczpcbiAgICAgICAgaWYgKG1pbWVUeXBlICE9PSBudWxsKSB7XG4gICAgICAgICAgc3dpdGNoIChtaW1lVHlwZS5lc3NlbmNlKSB7XG4gICAgICAgICAgICBjYXNlICdtdWx0aXBhcnQvZm9ybS1kYXRhJzoge1xuICAgICAgICAgICAgICAvLyAxLiAuLi4gW2xvbmcgc3RlcF1cbiAgICAgICAgICAgICAgY29uc3QgcGFyc2VkID0gbXVsdGlwYXJ0Rm9ybURhdGFQYXJzZXIodmFsdWUsIG1pbWVUeXBlKVxuXG4gICAgICAgICAgICAgIC8vIDIuIElmIHRoYXQgZmFpbHMgZm9yIHNvbWUgcmVhc29uLCB0aGVuIHRocm93IGEgVHlwZUVycm9yLlxuICAgICAgICAgICAgICBpZiAocGFyc2VkID09PSAnZmFpbHVyZScpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdGYWlsZWQgdG8gcGFyc2UgYm9keSBhcyBGb3JtRGF0YS4nKVxuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgLy8gMy4gUmV0dXJuIGEgbmV3IEZvcm1EYXRhIG9iamVjdCwgYXBwZW5kaW5nIGVhY2ggZW50cnksXG4gICAgICAgICAgICAgIC8vICAgIHJlc3VsdGluZyBmcm9tIHRoZSBwYXJzaW5nIG9wZXJhdGlvbiwgdG8gaXRzIGVudHJ5IGxpc3QuXG4gICAgICAgICAgICAgIGNvbnN0IGZkID0gbmV3IEZvcm1EYXRhKClcbiAgICAgICAgICAgICAgZmRba1N0YXRlXSA9IHBhcnNlZFxuXG4gICAgICAgICAgICAgIHJldHVybiBmZFxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAnYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkJzoge1xuICAgICAgICAgICAgICAvLyAxLiBMZXQgZW50cmllcyBiZSB0aGUgcmVzdWx0IG9mIHBhcnNpbmcgYnl0ZXMuXG4gICAgICAgICAgICAgIGNvbnN0IGVudHJpZXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKHZhbHVlLnRvU3RyaW5nKCkpXG5cbiAgICAgICAgICAgICAgLy8gMi4gSWYgZW50cmllcyBpcyBmYWlsdXJlLCB0aGVuIHRocm93IGEgVHlwZUVycm9yLlxuXG4gICAgICAgICAgICAgIC8vIDMuIFJldHVybiBhIG5ldyBGb3JtRGF0YSBvYmplY3Qgd2hvc2UgZW50cnkgbGlzdCBpcyBlbnRyaWVzLlxuICAgICAgICAgICAgICBjb25zdCBmZCA9IG5ldyBGb3JtRGF0YSgpXG5cbiAgICAgICAgICAgICAgZm9yIChjb25zdCBbbmFtZSwgdmFsdWVdIG9mIGVudHJpZXMpIHtcbiAgICAgICAgICAgICAgICBmZC5hcHBlbmQobmFtZSwgdmFsdWUpXG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICByZXR1cm4gZmRcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyAzLiBUaHJvdyBhIFR5cGVFcnJvci5cbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcbiAgICAgICAgICAnQ29udGVudC1UeXBlIHdhcyBub3Qgb25lIG9mIFwibXVsdGlwYXJ0L2Zvcm0tZGF0YVwiIG9yIFwiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkXCIuJ1xuICAgICAgICApXG4gICAgICB9LCBpbnN0YW5jZSlcbiAgICB9LFxuXG4gICAgYnl0ZXMgKCkge1xuICAgICAgLy8gVGhlIGJ5dGVzKCkgbWV0aG9kIHN0ZXBzIGFyZSB0byByZXR1cm4gdGhlIHJlc3VsdCBvZiBydW5uaW5nIGNvbnN1bWUgYm9keVxuICAgICAgLy8gd2l0aCB0aGlzIGFuZCB0aGUgZm9sbG93aW5nIHN0ZXAgZ2l2ZW4gYSBieXRlIHNlcXVlbmNlIGJ5dGVzOiByZXR1cm4gdGhlXG4gICAgICAvLyByZXN1bHQgb2YgY3JlYXRpbmcgYSBVaW50OEFycmF5IGZyb20gYnl0ZXMgaW4gdGhpc1x1MjAxOXMgcmVsZXZhbnQgcmVhbG0uXG4gICAgICByZXR1cm4gY29uc3VtZUJvZHkodGhpcywgKGJ5dGVzKSA9PiB7XG4gICAgICAgIHJldHVybiBuZXcgVWludDhBcnJheShieXRlcylcbiAgICAgIH0sIGluc3RhbmNlKVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBtZXRob2RzXG59XG5cbmZ1bmN0aW9uIG1peGluQm9keSAocHJvdG90eXBlKSB7XG4gIE9iamVjdC5hc3NpZ24ocHJvdG90eXBlLnByb3RvdHlwZSwgYm9keU1peGluTWV0aG9kcyhwcm90b3R5cGUpKVxufVxuXG4vKipcbiAqIEBzZWUgaHR0cHM6Ly9mZXRjaC5zcGVjLndoYXR3Zy5vcmcvI2NvbmNlcHQtYm9keS1jb25zdW1lLWJvZHlcbiAqIEBwYXJhbSB7UmVzcG9uc2V8UmVxdWVzdH0gb2JqZWN0XG4gKiBAcGFyYW0geyh2YWx1ZTogdW5rbm93bikgPT4gdW5rbm93bn0gY29udmVydEJ5dGVzVG9KU1ZhbHVlXG4gKiBAcGFyYW0ge1Jlc3BvbnNlfFJlcXVlc3R9IGluc3RhbmNlXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIGNvbnN1bWVCb2R5IChvYmplY3QsIGNvbnZlcnRCeXRlc1RvSlNWYWx1ZSwgaW5zdGFuY2UpIHtcbiAgd2ViaWRsLmJyYW5kQ2hlY2sob2JqZWN0LCBpbnN0YW5jZSlcblxuICAvLyAxLiBJZiBvYmplY3QgaXMgdW51c2FibGUsIHRoZW4gcmV0dXJuIGEgcHJvbWlzZSByZWplY3RlZFxuICAvLyAgICB3aXRoIGEgVHlwZUVycm9yLlxuICBpZiAoYm9keVVudXNhYmxlKG9iamVjdCkpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdCb2R5IGlzIHVudXNhYmxlOiBCb2R5IGhhcyBhbHJlYWR5IGJlZW4gcmVhZCcpXG4gIH1cblxuICB0aHJvd0lmQWJvcnRlZChvYmplY3Rba1N0YXRlXSlcblxuICAvLyAyLiBMZXQgcHJvbWlzZSBiZSBhIG5ldyBwcm9taXNlLlxuICBjb25zdCBwcm9taXNlID0gY3JlYXRlRGVmZXJyZWRQcm9taXNlKClcblxuICAvLyAzLiBMZXQgZXJyb3JTdGVwcyBnaXZlbiBlcnJvciBiZSB0byByZWplY3QgcHJvbWlzZSB3aXRoIGVycm9yLlxuICBjb25zdCBlcnJvclN0ZXBzID0gKGVycm9yKSA9PiBwcm9taXNlLnJlamVjdChlcnJvcilcblxuICAvLyA0LiBMZXQgc3VjY2Vzc1N0ZXBzIGdpdmVuIGEgYnl0ZSBzZXF1ZW5jZSBkYXRhIGJlIHRvIHJlc29sdmVcbiAgLy8gICAgcHJvbWlzZSB3aXRoIHRoZSByZXN1bHQgb2YgcnVubmluZyBjb252ZXJ0Qnl0ZXNUb0pTVmFsdWVcbiAgLy8gICAgd2l0aCBkYXRhLiBJZiB0aGF0IHRocmV3IGFuIGV4Y2VwdGlvbiwgdGhlbiBydW4gZXJyb3JTdGVwc1xuICAvLyAgICB3aXRoIHRoYXQgZXhjZXB0aW9uLlxuICBjb25zdCBzdWNjZXNzU3RlcHMgPSAoZGF0YSkgPT4ge1xuICAgIHRyeSB7XG4gICAgICBwcm9taXNlLnJlc29sdmUoY29udmVydEJ5dGVzVG9KU1ZhbHVlKGRhdGEpKVxuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGVycm9yU3RlcHMoZSlcbiAgICB9XG4gIH1cblxuICAvLyA1LiBJZiBvYmplY3RcdTIwMTlzIGJvZHkgaXMgbnVsbCwgdGhlbiBydW4gc3VjY2Vzc1N0ZXBzIHdpdGggYW5cbiAgLy8gICAgZW1wdHkgYnl0ZSBzZXF1ZW5jZS5cbiAgaWYgKG9iamVjdFtrU3RhdGVdLmJvZHkgPT0gbnVsbCkge1xuICAgIHN1Y2Nlc3NTdGVwcyhCdWZmZXIuYWxsb2NVbnNhZmUoMCkpXG4gICAgcmV0dXJuIHByb21pc2UucHJvbWlzZVxuICB9XG5cbiAgLy8gNi4gT3RoZXJ3aXNlLCBmdWxseSByZWFkIG9iamVjdFx1MjAxOXMgYm9keSBnaXZlbiBzdWNjZXNzU3RlcHMsXG4gIC8vICAgIGVycm9yU3RlcHMsIGFuZCBvYmplY3RcdTIwMTlzIHJlbGV2YW50IGdsb2JhbCBvYmplY3QuXG4gIGF3YWl0IGZ1bGx5UmVhZEJvZHkob2JqZWN0W2tTdGF0ZV0uYm9keSwgc3VjY2Vzc1N0ZXBzLCBlcnJvclN0ZXBzKVxuXG4gIC8vIDcuIFJldHVybiBwcm9taXNlLlxuICByZXR1cm4gcHJvbWlzZS5wcm9taXNlXG59XG5cbi8vIGh0dHBzOi8vZmV0Y2guc3BlYy53aGF0d2cub3JnLyNib2R5LXVudXNhYmxlXG5mdW5jdGlvbiBib2R5VW51c2FibGUgKG9iamVjdCkge1xuICBjb25zdCBib2R5ID0gb2JqZWN0W2tTdGF0ZV0uYm9keVxuXG4gIC8vIEFuIG9iamVjdCBpbmNsdWRpbmcgdGhlIEJvZHkgaW50ZXJmYWNlIG1peGluIGlzXG4gIC8vIHNhaWQgdG8gYmUgdW51c2FibGUgaWYgaXRzIGJvZHkgaXMgbm9uLW51bGwgYW5kXG4gIC8vIGl0cyBib2R5XHUyMDE5cyBzdHJlYW0gaXMgZGlzdHVyYmVkIG9yIGxvY2tlZC5cbiAgcmV0dXJuIGJvZHkgIT0gbnVsbCAmJiAoYm9keS5zdHJlYW0ubG9ja2VkIHx8IHV0aWwuaXNEaXN0dXJiZWQoYm9keS5zdHJlYW0pKVxufVxuXG4vKipcbiAqIEBzZWUgaHR0cHM6Ly9pbmZyYS5zcGVjLndoYXR3Zy5vcmcvI3BhcnNlLWpzb24tYnl0ZXMtdG8tYS1qYXZhc2NyaXB0LXZhbHVlXG4gKiBAcGFyYW0ge1VpbnQ4QXJyYXl9IGJ5dGVzXG4gKi9cbmZ1bmN0aW9uIHBhcnNlSlNPTkZyb21CeXRlcyAoYnl0ZXMpIHtcbiAgcmV0dXJuIEpTT04ucGFyc2UodXRmOERlY29kZUJ5dGVzKGJ5dGVzKSlcbn1cblxuLyoqXG4gKiBAc2VlIGh0dHBzOi8vZmV0Y2guc3BlYy53aGF0d2cub3JnLyNjb25jZXB0LWJvZHktbWltZS10eXBlXG4gKiBAcGFyYW0ge2ltcG9ydCgnLi9yZXNwb25zZScpLlJlc3BvbnNlfGltcG9ydCgnLi9yZXF1ZXN0JykuUmVxdWVzdH0gcmVxdWVzdE9yUmVzcG9uc2VcbiAqL1xuZnVuY3Rpb24gYm9keU1pbWVUeXBlIChyZXF1ZXN0T3JSZXNwb25zZSkge1xuICAvLyAxLiBMZXQgaGVhZGVycyBiZSBudWxsLlxuICAvLyAyLiBJZiByZXF1ZXN0T3JSZXNwb25zZSBpcyBhIFJlcXVlc3Qgb2JqZWN0LCB0aGVuIHNldCBoZWFkZXJzIHRvIHJlcXVlc3RPclJlc3BvbnNlXHUyMDE5cyByZXF1ZXN0XHUyMDE5cyBoZWFkZXIgbGlzdC5cbiAgLy8gMy4gT3RoZXJ3aXNlLCBzZXQgaGVhZGVycyB0byByZXF1ZXN0T3JSZXNwb25zZVx1MjAxOXMgcmVzcG9uc2VcdTIwMTlzIGhlYWRlciBsaXN0LlxuICAvKiogQHR5cGUge2ltcG9ydCgnLi9oZWFkZXJzJykuSGVhZGVyc0xpc3R9ICovXG4gIGNvbnN0IGhlYWRlcnMgPSByZXF1ZXN0T3JSZXNwb25zZVtrU3RhdGVdLmhlYWRlcnNMaXN0XG5cbiAgLy8gNC4gTGV0IG1pbWVUeXBlIGJlIHRoZSByZXN1bHQgb2YgZXh0cmFjdGluZyBhIE1JTUUgdHlwZSBmcm9tIGhlYWRlcnMuXG4gIGNvbnN0IG1pbWVUeXBlID0gZXh0cmFjdE1pbWVUeXBlKGhlYWRlcnMpXG5cbiAgLy8gNS4gSWYgbWltZVR5cGUgaXMgZmFpbHVyZSwgdGhlbiByZXR1cm4gbnVsbC5cbiAgaWYgKG1pbWVUeXBlID09PSAnZmFpbHVyZScpIHtcbiAgICByZXR1cm4gbnVsbFxuICB9XG5cbiAgLy8gNi4gUmV0dXJuIG1pbWVUeXBlLlxuICByZXR1cm4gbWltZVR5cGVcbn1cblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gIGV4dHJhY3RCb2R5LFxuICBzYWZlbHlFeHRyYWN0Qm9keSxcbiAgY2xvbmVCb2R5LFxuICBtaXhpbkJvZHksXG4gIHN0cmVhbVJlZ2lzdHJ5LFxuICBoYXNGaW5hbGl6YXRpb25SZWdpc3RyeSxcbiAgYm9keVVudXNhYmxlXG59XG4iLCAiJ3VzZSBzdHJpY3QnXG5cbi8qIGdsb2JhbCBXZWJBc3NlbWJseSAqL1xuXG5jb25zdCBhc3NlcnQgPSByZXF1aXJlKCdub2RlOmFzc2VydCcpXG5jb25zdCB1dGlsID0gcmVxdWlyZSgnLi4vY29yZS91dGlsLmpzJylcbmNvbnN0IHsgY2hhbm5lbHMgfSA9IHJlcXVpcmUoJy4uL2NvcmUvZGlhZ25vc3RpY3MuanMnKVxuY29uc3QgdGltZXJzID0gcmVxdWlyZSgnLi4vdXRpbC90aW1lcnMuanMnKVxuY29uc3Qge1xuICBSZXF1ZXN0Q29udGVudExlbmd0aE1pc21hdGNoRXJyb3IsXG4gIFJlc3BvbnNlQ29udGVudExlbmd0aE1pc21hdGNoRXJyb3IsXG4gIFJlcXVlc3RBYm9ydGVkRXJyb3IsXG4gIEhlYWRlcnNUaW1lb3V0RXJyb3IsXG4gIEhlYWRlcnNPdmVyZmxvd0Vycm9yLFxuICBTb2NrZXRFcnJvcixcbiAgSW5mb3JtYXRpb25hbEVycm9yLFxuICBCb2R5VGltZW91dEVycm9yLFxuICBIVFRQUGFyc2VyRXJyb3IsXG4gIFJlc3BvbnNlRXhjZWVkZWRNYXhTaXplRXJyb3Jcbn0gPSByZXF1aXJlKCcuLi9jb3JlL2Vycm9ycy5qcycpXG5jb25zdCB7XG4gIGtVcmwsXG4gIGtSZXNldCxcbiAga0NsaWVudCxcbiAga1BhcnNlcixcbiAga0Jsb2NraW5nLFxuICBrUnVubmluZyxcbiAga1BlbmRpbmcsXG4gIGtTaXplLFxuICBrV3JpdGluZyxcbiAga1F1ZXVlLFxuICBrTm9SZWYsXG4gIGtLZWVwQWxpdmVEZWZhdWx0VGltZW91dCxcbiAga0hvc3RIZWFkZXIsXG4gIGtQZW5kaW5nSWR4LFxuICBrUnVubmluZ0lkeCxcbiAga0Vycm9yLFxuICBrUGlwZWxpbmluZyxcbiAga1NvY2tldCxcbiAga0tlZXBBbGl2ZVRpbWVvdXRWYWx1ZSxcbiAga01heEhlYWRlcnNTaXplLFxuICBrS2VlcEFsaXZlTWF4VGltZW91dCxcbiAga0tlZXBBbGl2ZVRpbWVvdXRUaHJlc2hvbGQsXG4gIGtIZWFkZXJzVGltZW91dCxcbiAga0JvZHlUaW1lb3V0LFxuICBrU3RyaWN0Q29udGVudExlbmd0aCxcbiAga01heFJlcXVlc3RzLFxuICBrQ291bnRlcixcbiAga01heFJlc3BvbnNlU2l6ZSxcbiAga09uRXJyb3IsXG4gIGtSZXN1bWUsXG4gIGtIVFRQQ29udGV4dFxufSA9IHJlcXVpcmUoJy4uL2NvcmUvc3ltYm9scy5qcycpXG5cbmNvbnN0IGNvbnN0YW50cyA9IHJlcXVpcmUoJy4uL2xsaHR0cC9jb25zdGFudHMuanMnKVxuY29uc3QgRU1QVFlfQlVGID0gQnVmZmVyLmFsbG9jKDApXG5jb25zdCBGYXN0QnVmZmVyID0gQnVmZmVyW1N5bWJvbC5zcGVjaWVzXVxuY29uc3QgYWRkTGlzdGVuZXIgPSB1dGlsLmFkZExpc3RlbmVyXG5jb25zdCByZW1vdmVBbGxMaXN0ZW5lcnMgPSB1dGlsLnJlbW92ZUFsbExpc3RlbmVyc1xuXG5sZXQgZXh0cmFjdEJvZHlcblxuYXN5bmMgZnVuY3Rpb24gbGF6eWxsaHR0cCAoKSB7XG4gIGNvbnN0IGxsaHR0cFdhc21EYXRhID0gcHJvY2Vzcy5lbnYuSkVTVF9XT1JLRVJfSUQgPyByZXF1aXJlKCcuLi9sbGh0dHAvbGxodHRwLXdhc20uanMnKSA6IHVuZGVmaW5lZFxuXG4gIGxldCBtb2RcbiAgdHJ5IHtcbiAgICBtb2QgPSBhd2FpdCBXZWJBc3NlbWJseS5jb21waWxlKHJlcXVpcmUoJy4uL2xsaHR0cC9sbGh0dHBfc2ltZC13YXNtLmpzJykpXG4gIH0gY2F0Y2ggKGUpIHtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuXG4gICAgLy8gV2UgY291bGQgY2hlY2sgaWYgdGhlIGVycm9yIHdhcyBjYXVzZWQgYnkgdGhlIHNpbWQgb3B0aW9uIG5vdFxuICAgIC8vIGJlaW5nIGVuYWJsZWQsIGJ1dCB0aGUgb2NjdXJyaW5nIG9mIHRoaXMgb3RoZXIgZXJyb3JcbiAgICAvLyAqIGh0dHBzOi8vZ2l0aHViLmNvbS9lbXNjcmlwdGVuLWNvcmUvZW1zY3JpcHRlbi9pc3N1ZXMvMTE0OTVcbiAgICAvLyBnb3QgbWUgdG8gcmVtb3ZlIHRoYXQgY2hlY2sgdG8gYXZvaWQgYnJlYWtpbmcgTm9kZSAxMi5cbiAgICBtb2QgPSBhd2FpdCBXZWJBc3NlbWJseS5jb21waWxlKGxsaHR0cFdhc21EYXRhIHx8IHJlcXVpcmUoJy4uL2xsaHR0cC9sbGh0dHAtd2FzbS5qcycpKVxuICB9XG5cbiAgcmV0dXJuIGF3YWl0IFdlYkFzc2VtYmx5Lmluc3RhbnRpYXRlKG1vZCwge1xuICAgIGVudjoge1xuICAgICAgLyogZXNsaW50LWRpc2FibGUgY2FtZWxjYXNlICovXG5cbiAgICAgIHdhc21fb25fdXJsOiAocCwgYXQsIGxlbikgPT4ge1xuICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgICAgICByZXR1cm4gMFxuICAgICAgfSxcbiAgICAgIHdhc21fb25fc3RhdHVzOiAocCwgYXQsIGxlbikgPT4ge1xuICAgICAgICBhc3NlcnQoY3VycmVudFBhcnNlci5wdHIgPT09IHApXG4gICAgICAgIGNvbnN0IHN0YXJ0ID0gYXQgLSBjdXJyZW50QnVmZmVyUHRyICsgY3VycmVudEJ1ZmZlclJlZi5ieXRlT2Zmc2V0XG4gICAgICAgIHJldHVybiBjdXJyZW50UGFyc2VyLm9uU3RhdHVzKG5ldyBGYXN0QnVmZmVyKGN1cnJlbnRCdWZmZXJSZWYuYnVmZmVyLCBzdGFydCwgbGVuKSkgfHwgMFxuICAgICAgfSxcbiAgICAgIHdhc21fb25fbWVzc2FnZV9iZWdpbjogKHApID0+IHtcbiAgICAgICAgYXNzZXJ0KGN1cnJlbnRQYXJzZXIucHRyID09PSBwKVxuICAgICAgICByZXR1cm4gY3VycmVudFBhcnNlci5vbk1lc3NhZ2VCZWdpbigpIHx8IDBcbiAgICAgIH0sXG4gICAgICB3YXNtX29uX2hlYWRlcl9maWVsZDogKHAsIGF0LCBsZW4pID0+IHtcbiAgICAgICAgYXNzZXJ0KGN1cnJlbnRQYXJzZXIucHRyID09PSBwKVxuICAgICAgICBjb25zdCBzdGFydCA9IGF0IC0gY3VycmVudEJ1ZmZlclB0ciArIGN1cnJlbnRCdWZmZXJSZWYuYnl0ZU9mZnNldFxuICAgICAgICByZXR1cm4gY3VycmVudFBhcnNlci5vbkhlYWRlckZpZWxkKG5ldyBGYXN0QnVmZmVyKGN1cnJlbnRCdWZmZXJSZWYuYnVmZmVyLCBzdGFydCwgbGVuKSkgfHwgMFxuICAgICAgfSxcbiAgICAgIHdhc21fb25faGVhZGVyX3ZhbHVlOiAocCwgYXQsIGxlbikgPT4ge1xuICAgICAgICBhc3NlcnQoY3VycmVudFBhcnNlci5wdHIgPT09IHApXG4gICAgICAgIGNvbnN0IHN0YXJ0ID0gYXQgLSBjdXJyZW50QnVmZmVyUHRyICsgY3VycmVudEJ1ZmZlclJlZi5ieXRlT2Zmc2V0XG4gICAgICAgIHJldHVybiBjdXJyZW50UGFyc2VyLm9uSGVhZGVyVmFsdWUobmV3IEZhc3RCdWZmZXIoY3VycmVudEJ1ZmZlclJlZi5idWZmZXIsIHN0YXJ0LCBsZW4pKSB8fCAwXG4gICAgICB9LFxuICAgICAgd2FzbV9vbl9oZWFkZXJzX2NvbXBsZXRlOiAocCwgc3RhdHVzQ29kZSwgdXBncmFkZSwgc2hvdWxkS2VlcEFsaXZlKSA9PiB7XG4gICAgICAgIGFzc2VydChjdXJyZW50UGFyc2VyLnB0ciA9PT0gcClcbiAgICAgICAgcmV0dXJuIGN1cnJlbnRQYXJzZXIub25IZWFkZXJzQ29tcGxldGUoc3RhdHVzQ29kZSwgQm9vbGVhbih1cGdyYWRlKSwgQm9vbGVhbihzaG91bGRLZWVwQWxpdmUpKSB8fCAwXG4gICAgICB9LFxuICAgICAgd2FzbV9vbl9ib2R5OiAocCwgYXQsIGxlbikgPT4ge1xuICAgICAgICBhc3NlcnQoY3VycmVudFBhcnNlci5wdHIgPT09IHApXG4gICAgICAgIGNvbnN0IHN0YXJ0ID0gYXQgLSBjdXJyZW50QnVmZmVyUHRyICsgY3VycmVudEJ1ZmZlclJlZi5ieXRlT2Zmc2V0XG4gICAgICAgIHJldHVybiBjdXJyZW50UGFyc2VyLm9uQm9keShuZXcgRmFzdEJ1ZmZlcihjdXJyZW50QnVmZmVyUmVmLmJ1ZmZlciwgc3RhcnQsIGxlbikpIHx8IDBcbiAgICAgIH0sXG4gICAgICB3YXNtX29uX21lc3NhZ2VfY29tcGxldGU6IChwKSA9PiB7XG4gICAgICAgIGFzc2VydChjdXJyZW50UGFyc2VyLnB0ciA9PT0gcClcbiAgICAgICAgcmV0dXJuIGN1cnJlbnRQYXJzZXIub25NZXNzYWdlQ29tcGxldGUoKSB8fCAwXG4gICAgICB9XG5cbiAgICAgIC8qIGVzbGludC1lbmFibGUgY2FtZWxjYXNlICovXG4gICAgfVxuICB9KVxufVxuXG5sZXQgbGxodHRwSW5zdGFuY2UgPSBudWxsXG5sZXQgbGxodHRwUHJvbWlzZSA9IGxhenlsbGh0dHAoKVxubGxodHRwUHJvbWlzZS5jYXRjaCgpXG5cbmxldCBjdXJyZW50UGFyc2VyID0gbnVsbFxubGV0IGN1cnJlbnRCdWZmZXJSZWYgPSBudWxsXG5sZXQgY3VycmVudEJ1ZmZlclNpemUgPSAwXG5sZXQgY3VycmVudEJ1ZmZlclB0ciA9IG51bGxcblxuY29uc3QgVVNFX05BVElWRV9USU1FUiA9IDBcbmNvbnN0IFVTRV9GQVNUX1RJTUVSID0gMVxuXG4vLyBVc2UgZmFzdCB0aW1lcnMgZm9yIGhlYWRlcnMgYW5kIGJvZHkgdG8gdGFrZSBldmVudHVhbCBldmVudCBsb29wXG4vLyBsYXRlbmN5IGludG8gYWNjb3VudC5cbmNvbnN0IFRJTUVPVVRfSEVBREVSUyA9IDIgfCBVU0VfRkFTVF9USU1FUlxuY29uc3QgVElNRU9VVF9CT0RZID0gNCB8IFVTRV9GQVNUX1RJTUVSXG5cbi8vIFVzZSBuYXRpdmUgdGltZXJzIHRvIGlnbm9yZSBldmVudCBsb29wIGxhdGVuY3kgZm9yIGtlZXAtYWxpdmVcbi8vIGhhbmRsaW5nLlxuY29uc3QgVElNRU9VVF9LRUVQX0FMSVZFID0gOCB8IFVTRV9OQVRJVkVfVElNRVJcblxuY2xhc3MgUGFyc2VyIHtcbiAgY29uc3RydWN0b3IgKGNsaWVudCwgc29ja2V0LCB7IGV4cG9ydHMgfSkge1xuICAgIGFzc2VydChOdW1iZXIuaXNGaW5pdGUoY2xpZW50W2tNYXhIZWFkZXJzU2l6ZV0pICYmIGNsaWVudFtrTWF4SGVhZGVyc1NpemVdID4gMClcblxuICAgIHRoaXMubGxodHRwID0gZXhwb3J0c1xuICAgIHRoaXMucHRyID0gdGhpcy5sbGh0dHAubGxodHRwX2FsbG9jKGNvbnN0YW50cy5UWVBFLlJFU1BPTlNFKVxuICAgIHRoaXMuY2xpZW50ID0gY2xpZW50XG4gICAgdGhpcy5zb2NrZXQgPSBzb2NrZXRcbiAgICB0aGlzLnRpbWVvdXQgPSBudWxsXG4gICAgdGhpcy50aW1lb3V0VmFsdWUgPSBudWxsXG4gICAgdGhpcy50aW1lb3V0VHlwZSA9IG51bGxcbiAgICB0aGlzLnN0YXR1c0NvZGUgPSBudWxsXG4gICAgdGhpcy5zdGF0dXNUZXh0ID0gJydcbiAgICB0aGlzLnVwZ3JhZGUgPSBmYWxzZVxuICAgIHRoaXMuaGVhZGVycyA9IFtdXG4gICAgdGhpcy5oZWFkZXJzU2l6ZSA9IDBcbiAgICB0aGlzLmhlYWRlcnNNYXhTaXplID0gY2xpZW50W2tNYXhIZWFkZXJzU2l6ZV1cbiAgICB0aGlzLnNob3VsZEtlZXBBbGl2ZSA9IGZhbHNlXG4gICAgdGhpcy5wYXVzZWQgPSBmYWxzZVxuICAgIHRoaXMucmVzdW1lID0gdGhpcy5yZXN1bWUuYmluZCh0aGlzKVxuXG4gICAgdGhpcy5ieXRlc1JlYWQgPSAwXG5cbiAgICB0aGlzLmtlZXBBbGl2ZSA9ICcnXG4gICAgdGhpcy5jb250ZW50TGVuZ3RoID0gJydcbiAgICB0aGlzLmNvbm5lY3Rpb24gPSAnJ1xuICAgIHRoaXMubWF4UmVzcG9uc2VTaXplID0gY2xpZW50W2tNYXhSZXNwb25zZVNpemVdXG4gIH1cblxuICBzZXRUaW1lb3V0IChkZWxheSwgdHlwZSkge1xuICAgIC8vIElmIHRoZSBleGlzdGluZyB0aW1lciBhbmQgdGhlIG5ldyB0aW1lciBhcmUgb2YgZGlmZmVyZW50IHRpbWVyIHR5cGVcbiAgICAvLyAoZmFzdCBvciBuYXRpdmUpIG9yIGhhdmUgZGlmZmVyZW50IGRlbGF5LCB3ZSBuZWVkIHRvIGNsZWFyIHRoZSBleGlzdGluZ1xuICAgIC8vIHRpbWVyIGFuZCBzZXQgYSBuZXcgb25lLlxuICAgIGlmIChcbiAgICAgIGRlbGF5ICE9PSB0aGlzLnRpbWVvdXRWYWx1ZSB8fFxuICAgICAgKHR5cGUgJiBVU0VfRkFTVF9USU1FUikgXiAodGhpcy50aW1lb3V0VHlwZSAmIFVTRV9GQVNUX1RJTUVSKVxuICAgICkge1xuICAgICAgLy8gSWYgYSB0aW1lb3V0IGlzIGFscmVhZHkgc2V0LCBjbGVhciBpdCB3aXRoIGNsZWFyVGltZW91dCBvZiB0aGUgZmFzdFxuICAgICAgLy8gdGltZXIgaW1wbGVtZW50YXRpb24sIGFzIGl0IGNhbiBjbGVhciBmYXN0IGFuZCBuYXRpdmUgdGltZXJzLlxuICAgICAgaWYgKHRoaXMudGltZW91dCkge1xuICAgICAgICB0aW1lcnMuY2xlYXJUaW1lb3V0KHRoaXMudGltZW91dClcbiAgICAgICAgdGhpcy50aW1lb3V0ID0gbnVsbFxuICAgICAgfVxuXG4gICAgICBpZiAoZGVsYXkpIHtcbiAgICAgICAgaWYgKHR5cGUgJiBVU0VfRkFTVF9USU1FUikge1xuICAgICAgICAgIHRoaXMudGltZW91dCA9IHRpbWVycy5zZXRGYXN0VGltZW91dChvblBhcnNlclRpbWVvdXQsIGRlbGF5LCBuZXcgV2Vha1JlZih0aGlzKSlcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLnRpbWVvdXQgPSBzZXRUaW1lb3V0KG9uUGFyc2VyVGltZW91dCwgZGVsYXksIG5ldyBXZWFrUmVmKHRoaXMpKVxuICAgICAgICAgIHRoaXMudGltZW91dC51bnJlZigpXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgdGhpcy50aW1lb3V0VmFsdWUgPSBkZWxheVxuICAgIH0gZWxzZSBpZiAodGhpcy50aW1lb3V0KSB7XG4gICAgICAvLyBpc3RhbmJ1bCBpZ25vcmUgZWxzZTogb25seSBmb3IgamVzdFxuICAgICAgaWYgKHRoaXMudGltZW91dC5yZWZyZXNoKSB7XG4gICAgICAgIHRoaXMudGltZW91dC5yZWZyZXNoKClcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLnRpbWVvdXRUeXBlID0gdHlwZVxuICB9XG5cbiAgcmVzdW1lICgpIHtcbiAgICBpZiAodGhpcy5zb2NrZXQuZGVzdHJveWVkIHx8ICF0aGlzLnBhdXNlZCkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgYXNzZXJ0KHRoaXMucHRyICE9IG51bGwpXG4gICAgYXNzZXJ0KGN1cnJlbnRQYXJzZXIgPT0gbnVsbClcblxuICAgIHRoaXMubGxodHRwLmxsaHR0cF9yZXN1bWUodGhpcy5wdHIpXG5cbiAgICBhc3NlcnQodGhpcy50aW1lb3V0VHlwZSA9PT0gVElNRU9VVF9CT0RZKVxuICAgIGlmICh0aGlzLnRpbWVvdXQpIHtcbiAgICAgIC8vIGlzdGFuYnVsIGlnbm9yZSBlbHNlOiBvbmx5IGZvciBqZXN0XG4gICAgICBpZiAodGhpcy50aW1lb3V0LnJlZnJlc2gpIHtcbiAgICAgICAgdGhpcy50aW1lb3V0LnJlZnJlc2goKVxuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMucGF1c2VkID0gZmFsc2VcbiAgICB0aGlzLmV4ZWN1dGUodGhpcy5zb2NrZXQucmVhZCgpIHx8IEVNUFRZX0JVRikgLy8gRmx1c2ggcGFyc2VyLlxuICAgIHRoaXMucmVhZE1vcmUoKVxuICB9XG5cbiAgcmVhZE1vcmUgKCkge1xuICAgIHdoaWxlICghdGhpcy5wYXVzZWQgJiYgdGhpcy5wdHIpIHtcbiAgICAgIGNvbnN0IGNodW5rID0gdGhpcy5zb2NrZXQucmVhZCgpXG4gICAgICBpZiAoY2h1bmsgPT09IG51bGwpIHtcbiAgICAgICAgYnJlYWtcbiAgICAgIH1cbiAgICAgIHRoaXMuZXhlY3V0ZShjaHVuaylcbiAgICB9XG4gIH1cblxuICBleGVjdXRlIChkYXRhKSB7XG4gICAgYXNzZXJ0KHRoaXMucHRyICE9IG51bGwpXG4gICAgYXNzZXJ0KGN1cnJlbnRQYXJzZXIgPT0gbnVsbClcbiAgICBhc3NlcnQoIXRoaXMucGF1c2VkKVxuXG4gICAgY29uc3QgeyBzb2NrZXQsIGxsaHR0cCB9ID0gdGhpc1xuXG4gICAgaWYgKGRhdGEubGVuZ3RoID4gY3VycmVudEJ1ZmZlclNpemUpIHtcbiAgICAgIGlmIChjdXJyZW50QnVmZmVyUHRyKSB7XG4gICAgICAgIGxsaHR0cC5mcmVlKGN1cnJlbnRCdWZmZXJQdHIpXG4gICAgICB9XG4gICAgICBjdXJyZW50QnVmZmVyU2l6ZSA9IE1hdGguY2VpbChkYXRhLmxlbmd0aCAvIDQwOTYpICogNDA5NlxuICAgICAgY3VycmVudEJ1ZmZlclB0ciA9IGxsaHR0cC5tYWxsb2MoY3VycmVudEJ1ZmZlclNpemUpXG4gICAgfVxuXG4gICAgbmV3IFVpbnQ4QXJyYXkobGxodHRwLm1lbW9yeS5idWZmZXIsIGN1cnJlbnRCdWZmZXJQdHIsIGN1cnJlbnRCdWZmZXJTaXplKS5zZXQoZGF0YSlcblxuICAgIC8vIENhbGwgYGV4ZWN1dGVgIG9uIHRoZSB3YXNtIHBhcnNlci5cbiAgICAvLyBXZSBwYXNzIHRoZSBgbGxodHRwX3BhcnNlcmAgcG9pbnRlciBhZGRyZXNzLCB0aGUgcG9pbnRlciBhZGRyZXNzIG9mIGJ1ZmZlciB2aWV3IGRhdGEsXG4gICAgLy8gYW5kIGZpbmFsbHkgdGhlIGxlbmd0aCBvZiBieXRlcyB0byBwYXJzZS5cbiAgICAvLyBUaGUgcmV0dXJuIHZhbHVlIGlzIGFuIGVycm9yIGNvZGUgb3IgYGNvbnN0YW50cy5FUlJPUi5PS2AuXG4gICAgdHJ5IHtcbiAgICAgIGxldCByZXRcblxuICAgICAgdHJ5IHtcbiAgICAgICAgY3VycmVudEJ1ZmZlclJlZiA9IGRhdGFcbiAgICAgICAgY3VycmVudFBhcnNlciA9IHRoaXNcbiAgICAgICAgcmV0ID0gbGxodHRwLmxsaHR0cF9leGVjdXRlKHRoaXMucHRyLCBjdXJyZW50QnVmZmVyUHRyLCBkYXRhLmxlbmd0aClcbiAgICAgICAgLyogZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVzZWxlc3MtY2F0Y2ggKi9cbiAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dDogZGlmZmljdWx0IHRvIG1ha2UgYSB0ZXN0IGNhc2UgZm9yICovXG4gICAgICAgIHRocm93IGVyclxuICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgY3VycmVudFBhcnNlciA9IG51bGxcbiAgICAgICAgY3VycmVudEJ1ZmZlclJlZiA9IG51bGxcbiAgICAgIH1cblxuICAgICAgY29uc3Qgb2Zmc2V0ID0gbGxodHRwLmxsaHR0cF9nZXRfZXJyb3JfcG9zKHRoaXMucHRyKSAtIGN1cnJlbnRCdWZmZXJQdHJcblxuICAgICAgaWYgKHJldCA9PT0gY29uc3RhbnRzLkVSUk9SLlBBVVNFRF9VUEdSQURFKSB7XG4gICAgICAgIHRoaXMub25VcGdyYWRlKGRhdGEuc2xpY2Uob2Zmc2V0KSlcbiAgICAgIH0gZWxzZSBpZiAocmV0ID09PSBjb25zdGFudHMuRVJST1IuUEFVU0VEKSB7XG4gICAgICAgIHRoaXMucGF1c2VkID0gdHJ1ZVxuICAgICAgICBzb2NrZXQudW5zaGlmdChkYXRhLnNsaWNlKG9mZnNldCkpXG4gICAgICB9IGVsc2UgaWYgKHJldCAhPT0gY29uc3RhbnRzLkVSUk9SLk9LKSB7XG4gICAgICAgIGNvbnN0IHB0ciA9IGxsaHR0cC5sbGh0dHBfZ2V0X2Vycm9yX3JlYXNvbih0aGlzLnB0cilcbiAgICAgICAgbGV0IG1lc3NhZ2UgPSAnJ1xuICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZTogZGlmZmljdWx0IHRvIG1ha2UgYSB0ZXN0IGNhc2UgZm9yICovXG4gICAgICAgIGlmIChwdHIpIHtcbiAgICAgICAgICBjb25zdCBsZW4gPSBuZXcgVWludDhBcnJheShsbGh0dHAubWVtb3J5LmJ1ZmZlciwgcHRyKS5pbmRleE9mKDApXG4gICAgICAgICAgbWVzc2FnZSA9XG4gICAgICAgICAgICAnUmVzcG9uc2UgZG9lcyBub3QgbWF0Y2ggdGhlIEhUVFAvMS4xIHByb3RvY29sICgnICtcbiAgICAgICAgICAgIEJ1ZmZlci5mcm9tKGxsaHR0cC5tZW1vcnkuYnVmZmVyLCBwdHIsIGxlbikudG9TdHJpbmcoKSArXG4gICAgICAgICAgICAnKSdcbiAgICAgICAgfVxuICAgICAgICB0aHJvdyBuZXcgSFRUUFBhcnNlckVycm9yKG1lc3NhZ2UsIGNvbnN0YW50cy5FUlJPUltyZXRdLCBkYXRhLnNsaWNlKG9mZnNldCkpXG4gICAgICB9XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICB1dGlsLmRlc3Ryb3koc29ja2V0LCBlcnIpXG4gICAgfVxuICB9XG5cbiAgZGVzdHJveSAoKSB7XG4gICAgYXNzZXJ0KHRoaXMucHRyICE9IG51bGwpXG4gICAgYXNzZXJ0KGN1cnJlbnRQYXJzZXIgPT0gbnVsbClcblxuICAgIHRoaXMubGxodHRwLmxsaHR0cF9mcmVlKHRoaXMucHRyKVxuICAgIHRoaXMucHRyID0gbnVsbFxuXG4gICAgdGhpcy50aW1lb3V0ICYmIHRpbWVycy5jbGVhclRpbWVvdXQodGhpcy50aW1lb3V0KVxuICAgIHRoaXMudGltZW91dCA9IG51bGxcbiAgICB0aGlzLnRpbWVvdXRWYWx1ZSA9IG51bGxcbiAgICB0aGlzLnRpbWVvdXRUeXBlID0gbnVsbFxuXG4gICAgdGhpcy5wYXVzZWQgPSBmYWxzZVxuICB9XG5cbiAgb25TdGF0dXMgKGJ1Zikge1xuICAgIHRoaXMuc3RhdHVzVGV4dCA9IGJ1Zi50b1N0cmluZygpXG4gIH1cblxuICBvbk1lc3NhZ2VCZWdpbiAoKSB7XG4gICAgY29uc3QgeyBzb2NrZXQsIGNsaWVudCB9ID0gdGhpc1xuXG4gICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQ6IGRpZmZpY3VsdCB0byBtYWtlIGEgdGVzdCBjYXNlIGZvciAqL1xuICAgIGlmIChzb2NrZXQuZGVzdHJveWVkKSB7XG4gICAgICByZXR1cm4gLTFcbiAgICB9XG5cbiAgICBjb25zdCByZXF1ZXN0ID0gY2xpZW50W2tRdWV1ZV1bY2xpZW50W2tSdW5uaW5nSWR4XV1cbiAgICBpZiAoIXJlcXVlc3QpIHtcbiAgICAgIHJldHVybiAtMVxuICAgIH1cbiAgICByZXF1ZXN0Lm9uUmVzcG9uc2VTdGFydGVkKClcbiAgfVxuXG4gIG9uSGVhZGVyRmllbGQgKGJ1Zikge1xuICAgIGNvbnN0IGxlbiA9IHRoaXMuaGVhZGVycy5sZW5ndGhcblxuICAgIGlmICgobGVuICYgMSkgPT09IDApIHtcbiAgICAgIHRoaXMuaGVhZGVycy5wdXNoKGJ1ZilcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5oZWFkZXJzW2xlbiAtIDFdID0gQnVmZmVyLmNvbmNhdChbdGhpcy5oZWFkZXJzW2xlbiAtIDFdLCBidWZdKVxuICAgIH1cblxuICAgIHRoaXMudHJhY2tIZWFkZXIoYnVmLmxlbmd0aClcbiAgfVxuXG4gIG9uSGVhZGVyVmFsdWUgKGJ1Zikge1xuICAgIGxldCBsZW4gPSB0aGlzLmhlYWRlcnMubGVuZ3RoXG5cbiAgICBpZiAoKGxlbiAmIDEpID09PSAxKSB7XG4gICAgICB0aGlzLmhlYWRlcnMucHVzaChidWYpXG4gICAgICBsZW4gKz0gMVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmhlYWRlcnNbbGVuIC0gMV0gPSBCdWZmZXIuY29uY2F0KFt0aGlzLmhlYWRlcnNbbGVuIC0gMV0sIGJ1Zl0pXG4gICAgfVxuXG4gICAgY29uc3Qga2V5ID0gdGhpcy5oZWFkZXJzW2xlbiAtIDJdXG4gICAgaWYgKGtleS5sZW5ndGggPT09IDEwKSB7XG4gICAgICBjb25zdCBoZWFkZXJOYW1lID0gdXRpbC5idWZmZXJUb0xvd2VyQ2FzZWRIZWFkZXJOYW1lKGtleSlcbiAgICAgIGlmIChoZWFkZXJOYW1lID09PSAna2VlcC1hbGl2ZScpIHtcbiAgICAgICAgdGhpcy5rZWVwQWxpdmUgKz0gYnVmLnRvU3RyaW5nKClcbiAgICAgIH0gZWxzZSBpZiAoaGVhZGVyTmFtZSA9PT0gJ2Nvbm5lY3Rpb24nKSB7XG4gICAgICAgIHRoaXMuY29ubmVjdGlvbiArPSBidWYudG9TdHJpbmcoKVxuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoa2V5Lmxlbmd0aCA9PT0gMTQgJiYgdXRpbC5idWZmZXJUb0xvd2VyQ2FzZWRIZWFkZXJOYW1lKGtleSkgPT09ICdjb250ZW50LWxlbmd0aCcpIHtcbiAgICAgIHRoaXMuY29udGVudExlbmd0aCArPSBidWYudG9TdHJpbmcoKVxuICAgIH1cblxuICAgIHRoaXMudHJhY2tIZWFkZXIoYnVmLmxlbmd0aClcbiAgfVxuXG4gIHRyYWNrSGVhZGVyIChsZW4pIHtcbiAgICB0aGlzLmhlYWRlcnNTaXplICs9IGxlblxuICAgIGlmICh0aGlzLmhlYWRlcnNTaXplID49IHRoaXMuaGVhZGVyc01heFNpemUpIHtcbiAgICAgIHV0aWwuZGVzdHJveSh0aGlzLnNvY2tldCwgbmV3IEhlYWRlcnNPdmVyZmxvd0Vycm9yKCkpXG4gICAgfVxuICB9XG5cbiAgb25VcGdyYWRlIChoZWFkKSB7XG4gICAgY29uc3QgeyB1cGdyYWRlLCBjbGllbnQsIHNvY2tldCwgaGVhZGVycywgc3RhdHVzQ29kZSB9ID0gdGhpc1xuXG4gICAgYXNzZXJ0KHVwZ3JhZGUpXG4gICAgYXNzZXJ0KGNsaWVudFtrU29ja2V0XSA9PT0gc29ja2V0KVxuICAgIGFzc2VydCghc29ja2V0LmRlc3Ryb3llZClcbiAgICBhc3NlcnQoIXRoaXMucGF1c2VkKVxuICAgIGFzc2VydCgoaGVhZGVycy5sZW5ndGggJiAxKSA9PT0gMClcblxuICAgIGNvbnN0IHJlcXVlc3QgPSBjbGllbnRba1F1ZXVlXVtjbGllbnRba1J1bm5pbmdJZHhdXVxuICAgIGFzc2VydChyZXF1ZXN0KVxuICAgIGFzc2VydChyZXF1ZXN0LnVwZ3JhZGUgfHwgcmVxdWVzdC5tZXRob2QgPT09ICdDT05ORUNUJylcblxuICAgIHRoaXMuc3RhdHVzQ29kZSA9IG51bGxcbiAgICB0aGlzLnN0YXR1c1RleHQgPSAnJ1xuICAgIHRoaXMuc2hvdWxkS2VlcEFsaXZlID0gbnVsbFxuXG4gICAgdGhpcy5oZWFkZXJzID0gW11cbiAgICB0aGlzLmhlYWRlcnNTaXplID0gMFxuXG4gICAgc29ja2V0LnVuc2hpZnQoaGVhZClcblxuICAgIHNvY2tldFtrUGFyc2VyXS5kZXN0cm95KClcbiAgICBzb2NrZXRba1BhcnNlcl0gPSBudWxsXG5cbiAgICBzb2NrZXRba0NsaWVudF0gPSBudWxsXG4gICAgc29ja2V0W2tFcnJvcl0gPSBudWxsXG5cbiAgICByZW1vdmVBbGxMaXN0ZW5lcnMoc29ja2V0KVxuXG4gICAgY2xpZW50W2tTb2NrZXRdID0gbnVsbFxuICAgIGNsaWVudFtrSFRUUENvbnRleHRdID0gbnVsbCAvLyBUT0RPIChmaXgpOiBUaGlzIGlzIGhhY2t5Li4uXG4gICAgY2xpZW50W2tRdWV1ZV1bY2xpZW50W2tSdW5uaW5nSWR4XSsrXSA9IG51bGxcbiAgICBjbGllbnQuZW1pdCgnZGlzY29ubmVjdCcsIGNsaWVudFtrVXJsXSwgW2NsaWVudF0sIG5ldyBJbmZvcm1hdGlvbmFsRXJyb3IoJ3VwZ3JhZGUnKSlcblxuICAgIHRyeSB7XG4gICAgICByZXF1ZXN0Lm9uVXBncmFkZShzdGF0dXNDb2RlLCBoZWFkZXJzLCBzb2NrZXQpXG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICB1dGlsLmRlc3Ryb3koc29ja2V0LCBlcnIpXG4gICAgfVxuXG4gICAgY2xpZW50W2tSZXN1bWVdKClcbiAgfVxuXG4gIG9uSGVhZGVyc0NvbXBsZXRlIChzdGF0dXNDb2RlLCB1cGdyYWRlLCBzaG91bGRLZWVwQWxpdmUpIHtcbiAgICBjb25zdCB7IGNsaWVudCwgc29ja2V0LCBoZWFkZXJzLCBzdGF0dXNUZXh0IH0gPSB0aGlzXG5cbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dDogZGlmZmljdWx0IHRvIG1ha2UgYSB0ZXN0IGNhc2UgZm9yICovXG4gICAgaWYgKHNvY2tldC5kZXN0cm95ZWQpIHtcbiAgICAgIHJldHVybiAtMVxuICAgIH1cblxuICAgIGNvbnN0IHJlcXVlc3QgPSBjbGllbnRba1F1ZXVlXVtjbGllbnRba1J1bm5pbmdJZHhdXVxuXG4gICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQ6IGRpZmZpY3VsdCB0byBtYWtlIGEgdGVzdCBjYXNlIGZvciAqL1xuICAgIGlmICghcmVxdWVzdCkge1xuICAgICAgcmV0dXJuIC0xXG4gICAgfVxuXG4gICAgYXNzZXJ0KCF0aGlzLnVwZ3JhZGUpXG4gICAgYXNzZXJ0KHRoaXMuc3RhdHVzQ29kZSA8IDIwMClcblxuICAgIGlmIChzdGF0dXNDb2RlID09PSAxMDApIHtcbiAgICAgIHV0aWwuZGVzdHJveShzb2NrZXQsIG5ldyBTb2NrZXRFcnJvcignYmFkIHJlc3BvbnNlJywgdXRpbC5nZXRTb2NrZXRJbmZvKHNvY2tldCkpKVxuICAgICAgcmV0dXJuIC0xXG4gICAgfVxuXG4gICAgLyogdGhpcyBjYW4gb25seSBoYXBwZW4gaWYgc2VydmVyIGlzIG1pc2JlaGF2aW5nICovXG4gICAgaWYgKHVwZ3JhZGUgJiYgIXJlcXVlc3QudXBncmFkZSkge1xuICAgICAgdXRpbC5kZXN0cm95KHNvY2tldCwgbmV3IFNvY2tldEVycm9yKCdiYWQgdXBncmFkZScsIHV0aWwuZ2V0U29ja2V0SW5mbyhzb2NrZXQpKSlcbiAgICAgIHJldHVybiAtMVxuICAgIH1cblxuICAgIGFzc2VydCh0aGlzLnRpbWVvdXRUeXBlID09PSBUSU1FT1VUX0hFQURFUlMpXG5cbiAgICB0aGlzLnN0YXR1c0NvZGUgPSBzdGF0dXNDb2RlXG4gICAgdGhpcy5zaG91bGRLZWVwQWxpdmUgPSAoXG4gICAgICBzaG91bGRLZWVwQWxpdmUgfHxcbiAgICAgIC8vIE92ZXJyaWRlIGxsaHR0cCB2YWx1ZSB3aGljaCBkb2VzIG5vdCBhbGxvdyBrZWVwQWxpdmUgZm9yIEhFQUQuXG4gICAgICAocmVxdWVzdC5tZXRob2QgPT09ICdIRUFEJyAmJiAhc29ja2V0W2tSZXNldF0gJiYgdGhpcy5jb25uZWN0aW9uLnRvTG93ZXJDYXNlKCkgPT09ICdrZWVwLWFsaXZlJylcbiAgICApXG5cbiAgICBpZiAodGhpcy5zdGF0dXNDb2RlID49IDIwMCkge1xuICAgICAgY29uc3QgYm9keVRpbWVvdXQgPSByZXF1ZXN0LmJvZHlUaW1lb3V0ICE9IG51bGxcbiAgICAgICAgPyByZXF1ZXN0LmJvZHlUaW1lb3V0XG4gICAgICAgIDogY2xpZW50W2tCb2R5VGltZW91dF1cbiAgICAgIHRoaXMuc2V0VGltZW91dChib2R5VGltZW91dCwgVElNRU9VVF9CT0RZKVxuICAgIH0gZWxzZSBpZiAodGhpcy50aW1lb3V0KSB7XG4gICAgICAvLyBpc3RhbmJ1bCBpZ25vcmUgZWxzZTogb25seSBmb3IgamVzdFxuICAgICAgaWYgKHRoaXMudGltZW91dC5yZWZyZXNoKSB7XG4gICAgICAgIHRoaXMudGltZW91dC5yZWZyZXNoKClcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAocmVxdWVzdC5tZXRob2QgPT09ICdDT05ORUNUJykge1xuICAgICAgYXNzZXJ0KGNsaWVudFtrUnVubmluZ10gPT09IDEpXG4gICAgICB0aGlzLnVwZ3JhZGUgPSB0cnVlXG4gICAgICByZXR1cm4gMlxuICAgIH1cblxuICAgIGlmICh1cGdyYWRlKSB7XG4gICAgICBhc3NlcnQoY2xpZW50W2tSdW5uaW5nXSA9PT0gMSlcbiAgICAgIHRoaXMudXBncmFkZSA9IHRydWVcbiAgICAgIHJldHVybiAyXG4gICAgfVxuXG4gICAgYXNzZXJ0KCh0aGlzLmhlYWRlcnMubGVuZ3RoICYgMSkgPT09IDApXG4gICAgdGhpcy5oZWFkZXJzID0gW11cbiAgICB0aGlzLmhlYWRlcnNTaXplID0gMFxuXG4gICAgaWYgKHRoaXMuc2hvdWxkS2VlcEFsaXZlICYmIGNsaWVudFtrUGlwZWxpbmluZ10pIHtcbiAgICAgIGNvbnN0IGtlZXBBbGl2ZVRpbWVvdXQgPSB0aGlzLmtlZXBBbGl2ZSA/IHV0aWwucGFyc2VLZWVwQWxpdmVUaW1lb3V0KHRoaXMua2VlcEFsaXZlKSA6IG51bGxcblxuICAgICAgaWYgKGtlZXBBbGl2ZVRpbWVvdXQgIT0gbnVsbCkge1xuICAgICAgICBjb25zdCB0aW1lb3V0ID0gTWF0aC5taW4oXG4gICAgICAgICAga2VlcEFsaXZlVGltZW91dCAtIGNsaWVudFtrS2VlcEFsaXZlVGltZW91dFRocmVzaG9sZF0sXG4gICAgICAgICAgY2xpZW50W2tLZWVwQWxpdmVNYXhUaW1lb3V0XVxuICAgICAgICApXG4gICAgICAgIGlmICh0aW1lb3V0IDw9IDApIHtcbiAgICAgICAgICBzb2NrZXRba1Jlc2V0XSA9IHRydWVcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjbGllbnRba0tlZXBBbGl2ZVRpbWVvdXRWYWx1ZV0gPSB0aW1lb3V0XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNsaWVudFtrS2VlcEFsaXZlVGltZW91dFZhbHVlXSA9IGNsaWVudFtrS2VlcEFsaXZlRGVmYXVsdFRpbWVvdXRdXG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFN0b3AgbW9yZSByZXF1ZXN0cyBmcm9tIGJlaW5nIGRpc3BhdGNoZWQuXG4gICAgICBzb2NrZXRba1Jlc2V0XSA9IHRydWVcbiAgICB9XG5cbiAgICBjb25zdCBwYXVzZSA9IHJlcXVlc3Qub25IZWFkZXJzKHN0YXR1c0NvZGUsIGhlYWRlcnMsIHRoaXMucmVzdW1lLCBzdGF0dXNUZXh0KSA9PT0gZmFsc2VcblxuICAgIGlmIChyZXF1ZXN0LmFib3J0ZWQpIHtcbiAgICAgIHJldHVybiAtMVxuICAgIH1cblxuICAgIGlmIChyZXF1ZXN0Lm1ldGhvZCA9PT0gJ0hFQUQnKSB7XG4gICAgICByZXR1cm4gMVxuICAgIH1cblxuICAgIGlmIChzdGF0dXNDb2RlIDwgMjAwKSB7XG4gICAgICByZXR1cm4gMVxuICAgIH1cblxuICAgIGlmIChzb2NrZXRba0Jsb2NraW5nXSkge1xuICAgICAgc29ja2V0W2tCbG9ja2luZ10gPSBmYWxzZVxuICAgICAgY2xpZW50W2tSZXN1bWVdKClcbiAgICB9XG5cbiAgICByZXR1cm4gcGF1c2UgPyBjb25zdGFudHMuRVJST1IuUEFVU0VEIDogMFxuICB9XG5cbiAgb25Cb2R5IChidWYpIHtcbiAgICBjb25zdCB7IGNsaWVudCwgc29ja2V0LCBzdGF0dXNDb2RlLCBtYXhSZXNwb25zZVNpemUgfSA9IHRoaXNcblxuICAgIGlmIChzb2NrZXQuZGVzdHJveWVkKSB7XG4gICAgICByZXR1cm4gLTFcbiAgICB9XG5cbiAgICBjb25zdCByZXF1ZXN0ID0gY2xpZW50W2tRdWV1ZV1bY2xpZW50W2tSdW5uaW5nSWR4XV1cbiAgICBhc3NlcnQocmVxdWVzdClcblxuICAgIGFzc2VydCh0aGlzLnRpbWVvdXRUeXBlID09PSBUSU1FT1VUX0JPRFkpXG4gICAgaWYgKHRoaXMudGltZW91dCkge1xuICAgICAgLy8gaXN0YW5idWwgaWdub3JlIGVsc2U6IG9ubHkgZm9yIGplc3RcbiAgICAgIGlmICh0aGlzLnRpbWVvdXQucmVmcmVzaCkge1xuICAgICAgICB0aGlzLnRpbWVvdXQucmVmcmVzaCgpXG4gICAgICB9XG4gICAgfVxuXG4gICAgYXNzZXJ0KHN0YXR1c0NvZGUgPj0gMjAwKVxuXG4gICAgaWYgKG1heFJlc3BvbnNlU2l6ZSA+IC0xICYmIHRoaXMuYnl0ZXNSZWFkICsgYnVmLmxlbmd0aCA+IG1heFJlc3BvbnNlU2l6ZSkge1xuICAgICAgdXRpbC5kZXN0cm95KHNvY2tldCwgbmV3IFJlc3BvbnNlRXhjZWVkZWRNYXhTaXplRXJyb3IoKSlcbiAgICAgIHJldHVybiAtMVxuICAgIH1cblxuICAgIHRoaXMuYnl0ZXNSZWFkICs9IGJ1Zi5sZW5ndGhcblxuICAgIGlmIChyZXF1ZXN0Lm9uRGF0YShidWYpID09PSBmYWxzZSkge1xuICAgICAgcmV0dXJuIGNvbnN0YW50cy5FUlJPUi5QQVVTRURcbiAgICB9XG4gIH1cblxuICBvbk1lc3NhZ2VDb21wbGV0ZSAoKSB7XG4gICAgY29uc3QgeyBjbGllbnQsIHNvY2tldCwgc3RhdHVzQ29kZSwgdXBncmFkZSwgaGVhZGVycywgY29udGVudExlbmd0aCwgYnl0ZXNSZWFkLCBzaG91bGRLZWVwQWxpdmUgfSA9IHRoaXNcblxuICAgIGlmIChzb2NrZXQuZGVzdHJveWVkICYmICghc3RhdHVzQ29kZSB8fCBzaG91bGRLZWVwQWxpdmUpKSB7XG4gICAgICByZXR1cm4gLTFcbiAgICB9XG5cbiAgICBpZiAodXBncmFkZSkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgYXNzZXJ0KHN0YXR1c0NvZGUgPj0gMTAwKVxuICAgIGFzc2VydCgodGhpcy5oZWFkZXJzLmxlbmd0aCAmIDEpID09PSAwKVxuXG4gICAgY29uc3QgcmVxdWVzdCA9IGNsaWVudFtrUXVldWVdW2NsaWVudFtrUnVubmluZ0lkeF1dXG4gICAgYXNzZXJ0KHJlcXVlc3QpXG5cbiAgICB0aGlzLnN0YXR1c0NvZGUgPSBudWxsXG4gICAgdGhpcy5zdGF0dXNUZXh0ID0gJydcbiAgICB0aGlzLmJ5dGVzUmVhZCA9IDBcbiAgICB0aGlzLmNvbnRlbnRMZW5ndGggPSAnJ1xuICAgIHRoaXMua2VlcEFsaXZlID0gJydcbiAgICB0aGlzLmNvbm5lY3Rpb24gPSAnJ1xuXG4gICAgdGhpcy5oZWFkZXJzID0gW11cbiAgICB0aGlzLmhlYWRlcnNTaXplID0gMFxuXG4gICAgaWYgKHN0YXR1c0NvZGUgPCAyMDApIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0OiBzaG91bGQgYmUgaGFuZGxlZCBieSBsbGh0dHA/ICovXG4gICAgaWYgKHJlcXVlc3QubWV0aG9kICE9PSAnSEVBRCcgJiYgY29udGVudExlbmd0aCAmJiBieXRlc1JlYWQgIT09IHBhcnNlSW50KGNvbnRlbnRMZW5ndGgsIDEwKSkge1xuICAgICAgdXRpbC5kZXN0cm95KHNvY2tldCwgbmV3IFJlc3BvbnNlQ29udGVudExlbmd0aE1pc21hdGNoRXJyb3IoKSlcbiAgICAgIHJldHVybiAtMVxuICAgIH1cblxuICAgIHJlcXVlc3Qub25Db21wbGV0ZShoZWFkZXJzKVxuXG4gICAgY2xpZW50W2tRdWV1ZV1bY2xpZW50W2tSdW5uaW5nSWR4XSsrXSA9IG51bGxcblxuICAgIGlmIChzb2NrZXRba1dyaXRpbmddKSB7XG4gICAgICBhc3NlcnQoY2xpZW50W2tSdW5uaW5nXSA9PT0gMClcbiAgICAgIC8vIFJlc3BvbnNlIGNvbXBsZXRlZCBiZWZvcmUgcmVxdWVzdC5cbiAgICAgIHV0aWwuZGVzdHJveShzb2NrZXQsIG5ldyBJbmZvcm1hdGlvbmFsRXJyb3IoJ3Jlc2V0JykpXG4gICAgICByZXR1cm4gY29uc3RhbnRzLkVSUk9SLlBBVVNFRFxuICAgIH0gZWxzZSBpZiAoIXNob3VsZEtlZXBBbGl2ZSkge1xuICAgICAgdXRpbC5kZXN0cm95KHNvY2tldCwgbmV3IEluZm9ybWF0aW9uYWxFcnJvcigncmVzZXQnKSlcbiAgICAgIHJldHVybiBjb25zdGFudHMuRVJST1IuUEFVU0VEXG4gICAgfSBlbHNlIGlmIChzb2NrZXRba1Jlc2V0XSAmJiBjbGllbnRba1J1bm5pbmddID09PSAwKSB7XG4gICAgICAvLyBEZXN0cm95IHNvY2tldCBvbmNlIGFsbCByZXF1ZXN0cyBoYXZlIGNvbXBsZXRlZC5cbiAgICAgIC8vIFRoZSByZXF1ZXN0IGF0IHRoZSB0YWlsIG9mIHRoZSBwaXBlbGluZSBpcyB0aGUgb25lXG4gICAgICAvLyB0aGF0IHJlcXVlc3RlZCByZXNldCBhbmQgbm8gZnVydGhlciByZXF1ZXN0cyBzaG91bGRcbiAgICAgIC8vIGhhdmUgYmVlbiBxdWV1ZWQgc2luY2UgdGhlbi5cbiAgICAgIHV0aWwuZGVzdHJveShzb2NrZXQsIG5ldyBJbmZvcm1hdGlvbmFsRXJyb3IoJ3Jlc2V0JykpXG4gICAgICByZXR1cm4gY29uc3RhbnRzLkVSUk9SLlBBVVNFRFxuICAgIH0gZWxzZSBpZiAoY2xpZW50W2tQaXBlbGluaW5nXSA9PSBudWxsIHx8IGNsaWVudFtrUGlwZWxpbmluZ10gPT09IDEpIHtcbiAgICAgIC8vIFdlIG11c3Qgd2FpdCBhIGZ1bGwgZXZlbnQgbG9vcCBjeWNsZSB0byByZXVzZSB0aGlzIHNvY2tldCB0byBtYWtlIHN1cmVcbiAgICAgIC8vIHRoYXQgbm9uLXNwZWMgY29tcGxpYW50IHNlcnZlcnMgYXJlIG5vdCBjbG9zaW5nIHRoZSBjb25uZWN0aW9uIGV2ZW4gaWYgdGhleVxuICAgICAgLy8gc2FpZCB0aGV5IHdvbid0LlxuICAgICAgc2V0SW1tZWRpYXRlKCgpID0+IGNsaWVudFtrUmVzdW1lXSgpKVxuICAgIH0gZWxzZSB7XG4gICAgICBjbGllbnRba1Jlc3VtZV0oKVxuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBvblBhcnNlclRpbWVvdXQgKHBhcnNlcikge1xuICBjb25zdCB7IHNvY2tldCwgdGltZW91dFR5cGUsIGNsaWVudCwgcGF1c2VkIH0gPSBwYXJzZXIuZGVyZWYoKVxuXG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gIGlmICh0aW1lb3V0VHlwZSA9PT0gVElNRU9VVF9IRUFERVJTKSB7XG4gICAgaWYgKCFzb2NrZXRba1dyaXRpbmddIHx8IHNvY2tldC53cml0YWJsZU5lZWREcmFpbiB8fCBjbGllbnRba1J1bm5pbmddID4gMSkge1xuICAgICAgYXNzZXJ0KCFwYXVzZWQsICdjYW5ub3QgYmUgcGF1c2VkIHdoaWxlIHdhaXRpbmcgZm9yIGhlYWRlcnMnKVxuICAgICAgdXRpbC5kZXN0cm95KHNvY2tldCwgbmV3IEhlYWRlcnNUaW1lb3V0RXJyb3IoKSlcbiAgICB9XG4gIH0gZWxzZSBpZiAodGltZW91dFR5cGUgPT09IFRJTUVPVVRfQk9EWSkge1xuICAgIGlmICghcGF1c2VkKSB7XG4gICAgICB1dGlsLmRlc3Ryb3koc29ja2V0LCBuZXcgQm9keVRpbWVvdXRFcnJvcigpKVxuICAgIH1cbiAgfSBlbHNlIGlmICh0aW1lb3V0VHlwZSA9PT0gVElNRU9VVF9LRUVQX0FMSVZFKSB7XG4gICAgYXNzZXJ0KGNsaWVudFtrUnVubmluZ10gPT09IDAgJiYgY2xpZW50W2tLZWVwQWxpdmVUaW1lb3V0VmFsdWVdKVxuICAgIHV0aWwuZGVzdHJveShzb2NrZXQsIG5ldyBJbmZvcm1hdGlvbmFsRXJyb3IoJ3NvY2tldCBpZGxlIHRpbWVvdXQnKSlcbiAgfVxufVxuXG5hc3luYyBmdW5jdGlvbiBjb25uZWN0SDEgKGNsaWVudCwgc29ja2V0KSB7XG4gIGNsaWVudFtrU29ja2V0XSA9IHNvY2tldFxuXG4gIGlmICghbGxodHRwSW5zdGFuY2UpIHtcbiAgICBsbGh0dHBJbnN0YW5jZSA9IGF3YWl0IGxsaHR0cFByb21pc2VcbiAgICBsbGh0dHBQcm9taXNlID0gbnVsbFxuICB9XG5cbiAgc29ja2V0W2tOb1JlZl0gPSBmYWxzZVxuICBzb2NrZXRba1dyaXRpbmddID0gZmFsc2VcbiAgc29ja2V0W2tSZXNldF0gPSBmYWxzZVxuICBzb2NrZXRba0Jsb2NraW5nXSA9IGZhbHNlXG4gIHNvY2tldFtrUGFyc2VyXSA9IG5ldyBQYXJzZXIoY2xpZW50LCBzb2NrZXQsIGxsaHR0cEluc3RhbmNlKVxuXG4gIGFkZExpc3RlbmVyKHNvY2tldCwgJ2Vycm9yJywgZnVuY3Rpb24gKGVycikge1xuICAgIGFzc2VydChlcnIuY29kZSAhPT0gJ0VSUl9UTFNfQ0VSVF9BTFROQU1FX0lOVkFMSUQnKVxuXG4gICAgY29uc3QgcGFyc2VyID0gdGhpc1trUGFyc2VyXVxuXG4gICAgLy8gT24gTWFjIE9TLCB3ZSBnZXQgYW4gRUNPTk5SRVNFVCBldmVuIGlmIHRoZXJlIGlzIGEgZnVsbCBib2R5IHRvIGJlIGZvcndhcmRlZFxuICAgIC8vIHRvIHRoZSB1c2VyLlxuICAgIGlmIChlcnIuY29kZSA9PT0gJ0VDT05OUkVTRVQnICYmIHBhcnNlci5zdGF0dXNDb2RlICYmICFwYXJzZXIuc2hvdWxkS2VlcEFsaXZlKSB7XG4gICAgICAvLyBXZSB0cmVhdCBhbGwgaW5jb21pbmcgZGF0YSBzbyBmb3IgYXMgYSB2YWxpZCByZXNwb25zZS5cbiAgICAgIHBhcnNlci5vbk1lc3NhZ2VDb21wbGV0ZSgpXG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICB0aGlzW2tFcnJvcl0gPSBlcnJcblxuICAgIHRoaXNba0NsaWVudF1ba09uRXJyb3JdKGVycilcbiAgfSlcbiAgYWRkTGlzdGVuZXIoc29ja2V0LCAncmVhZGFibGUnLCBmdW5jdGlvbiAoKSB7XG4gICAgY29uc3QgcGFyc2VyID0gdGhpc1trUGFyc2VyXVxuXG4gICAgaWYgKHBhcnNlcikge1xuICAgICAgcGFyc2VyLnJlYWRNb3JlKClcbiAgICB9XG4gIH0pXG4gIGFkZExpc3RlbmVyKHNvY2tldCwgJ2VuZCcsIGZ1bmN0aW9uICgpIHtcbiAgICBjb25zdCBwYXJzZXIgPSB0aGlzW2tQYXJzZXJdXG5cbiAgICBpZiAocGFyc2VyLnN0YXR1c0NvZGUgJiYgIXBhcnNlci5zaG91bGRLZWVwQWxpdmUpIHtcbiAgICAgIC8vIFdlIHRyZWF0IGFsbCBpbmNvbWluZyBkYXRhIHNvIGZhciBhcyBhIHZhbGlkIHJlc3BvbnNlLlxuICAgICAgcGFyc2VyLm9uTWVzc2FnZUNvbXBsZXRlKClcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIHV0aWwuZGVzdHJveSh0aGlzLCBuZXcgU29ja2V0RXJyb3IoJ290aGVyIHNpZGUgY2xvc2VkJywgdXRpbC5nZXRTb2NrZXRJbmZvKHRoaXMpKSlcbiAgfSlcbiAgYWRkTGlzdGVuZXIoc29ja2V0LCAnY2xvc2UnLCBmdW5jdGlvbiAoKSB7XG4gICAgY29uc3QgY2xpZW50ID0gdGhpc1trQ2xpZW50XVxuICAgIGNvbnN0IHBhcnNlciA9IHRoaXNba1BhcnNlcl1cblxuICAgIGlmIChwYXJzZXIpIHtcbiAgICAgIGlmICghdGhpc1trRXJyb3JdICYmIHBhcnNlci5zdGF0dXNDb2RlICYmICFwYXJzZXIuc2hvdWxkS2VlcEFsaXZlKSB7XG4gICAgICAgIC8vIFdlIHRyZWF0IGFsbCBpbmNvbWluZyBkYXRhIHNvIGZhciBhcyBhIHZhbGlkIHJlc3BvbnNlLlxuICAgICAgICBwYXJzZXIub25NZXNzYWdlQ29tcGxldGUoKVxuICAgICAgfVxuXG4gICAgICB0aGlzW2tQYXJzZXJdLmRlc3Ryb3koKVxuICAgICAgdGhpc1trUGFyc2VyXSA9IG51bGxcbiAgICB9XG5cbiAgICBjb25zdCBlcnIgPSB0aGlzW2tFcnJvcl0gfHwgbmV3IFNvY2tldEVycm9yKCdjbG9zZWQnLCB1dGlsLmdldFNvY2tldEluZm8odGhpcykpXG5cbiAgICBjbGllbnRba1NvY2tldF0gPSBudWxsXG4gICAgY2xpZW50W2tIVFRQQ29udGV4dF0gPSBudWxsIC8vIFRPRE8gKGZpeCk6IFRoaXMgaXMgaGFja3kuLi5cblxuICAgIGlmIChjbGllbnQuZGVzdHJveWVkKSB7XG4gICAgICBhc3NlcnQoY2xpZW50W2tQZW5kaW5nXSA9PT0gMClcblxuICAgICAgLy8gRmFpbCBlbnRpcmUgcXVldWUuXG4gICAgICBjb25zdCByZXF1ZXN0cyA9IGNsaWVudFtrUXVldWVdLnNwbGljZShjbGllbnRba1J1bm5pbmdJZHhdKVxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCByZXF1ZXN0cy5sZW5ndGg7IGkrKykge1xuICAgICAgICBjb25zdCByZXF1ZXN0ID0gcmVxdWVzdHNbaV1cbiAgICAgICAgdXRpbC5lcnJvclJlcXVlc3QoY2xpZW50LCByZXF1ZXN0LCBlcnIpXG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChjbGllbnRba1J1bm5pbmddID4gMCAmJiBlcnIuY29kZSAhPT0gJ1VORF9FUlJfSU5GTycpIHtcbiAgICAgIC8vIEZhaWwgaGVhZCBvZiBwaXBlbGluZS5cbiAgICAgIGNvbnN0IHJlcXVlc3QgPSBjbGllbnRba1F1ZXVlXVtjbGllbnRba1J1bm5pbmdJZHhdXVxuICAgICAgY2xpZW50W2tRdWV1ZV1bY2xpZW50W2tSdW5uaW5nSWR4XSsrXSA9IG51bGxcblxuICAgICAgdXRpbC5lcnJvclJlcXVlc3QoY2xpZW50LCByZXF1ZXN0LCBlcnIpXG4gICAgfVxuXG4gICAgY2xpZW50W2tQZW5kaW5nSWR4XSA9IGNsaWVudFtrUnVubmluZ0lkeF1cblxuICAgIGFzc2VydChjbGllbnRba1J1bm5pbmddID09PSAwKVxuXG4gICAgY2xpZW50LmVtaXQoJ2Rpc2Nvbm5lY3QnLCBjbGllbnRba1VybF0sIFtjbGllbnRdLCBlcnIpXG5cbiAgICBjbGllbnRba1Jlc3VtZV0oKVxuICB9KVxuXG4gIGxldCBjbG9zZWQgPSBmYWxzZVxuICBzb2NrZXQub24oJ2Nsb3NlJywgKCkgPT4ge1xuICAgIGNsb3NlZCA9IHRydWVcbiAgfSlcblxuICByZXR1cm4ge1xuICAgIHZlcnNpb246ICdoMScsXG4gICAgZGVmYXVsdFBpcGVsaW5pbmc6IDEsXG4gICAgd3JpdGUgKC4uLmFyZ3MpIHtcbiAgICAgIHJldHVybiB3cml0ZUgxKGNsaWVudCwgLi4uYXJncylcbiAgICB9LFxuICAgIHJlc3VtZSAoKSB7XG4gICAgICByZXN1bWVIMShjbGllbnQpXG4gICAgfSxcbiAgICBkZXN0cm95IChlcnIsIGNhbGxiYWNrKSB7XG4gICAgICBpZiAoY2xvc2VkKSB7XG4gICAgICAgIHF1ZXVlTWljcm90YXNrKGNhbGxiYWNrKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc29ja2V0LmRlc3Ryb3koZXJyKS5vbignY2xvc2UnLCBjYWxsYmFjaylcbiAgICAgIH1cbiAgICB9LFxuICAgIGdldCBkZXN0cm95ZWQgKCkge1xuICAgICAgcmV0dXJuIHNvY2tldC5kZXN0cm95ZWRcbiAgICB9LFxuICAgIGJ1c3kgKHJlcXVlc3QpIHtcbiAgICAgIGlmIChzb2NrZXRba1dyaXRpbmddIHx8IHNvY2tldFtrUmVzZXRdIHx8IHNvY2tldFtrQmxvY2tpbmddKSB7XG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9XG5cbiAgICAgIGlmIChyZXF1ZXN0KSB7XG4gICAgICAgIGlmIChjbGllbnRba1J1bm5pbmddID4gMCAmJiAhcmVxdWVzdC5pZGVtcG90ZW50KSB7XG4gICAgICAgICAgLy8gTm9uLWlkZW1wb3RlbnQgcmVxdWVzdCBjYW5ub3QgYmUgcmV0cmllZC5cbiAgICAgICAgICAvLyBFbnN1cmUgdGhhdCBubyBvdGhlciByZXF1ZXN0cyBhcmUgaW5mbGlnaHQgYW5kXG4gICAgICAgICAgLy8gY291bGQgY2F1c2UgZmFpbHVyZS5cbiAgICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGNsaWVudFtrUnVubmluZ10gPiAwICYmIChyZXF1ZXN0LnVwZ3JhZGUgfHwgcmVxdWVzdC5tZXRob2QgPT09ICdDT05ORUNUJykpIHtcbiAgICAgICAgICAvLyBEb24ndCBkaXNwYXRjaCBhbiB1cGdyYWRlIHVudGlsIGFsbCBwcmVjZWRpbmcgcmVxdWVzdHMgaGF2ZSBjb21wbGV0ZWQuXG4gICAgICAgICAgLy8gQSBtaXNiZWhhdmluZyBzZXJ2ZXIgbWlnaHQgdXBncmFkZSB0aGUgY29ubmVjdGlvbiBiZWZvcmUgYWxsIHBpcGVsaW5lZFxuICAgICAgICAgIC8vIHJlcXVlc3QgaGFzIGNvbXBsZXRlZC5cbiAgICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGNsaWVudFtrUnVubmluZ10gPiAwICYmIHV0aWwuYm9keUxlbmd0aChyZXF1ZXN0LmJvZHkpICE9PSAwICYmXG4gICAgICAgICAgKHV0aWwuaXNTdHJlYW0ocmVxdWVzdC5ib2R5KSB8fCB1dGlsLmlzQXN5bmNJdGVyYWJsZShyZXF1ZXN0LmJvZHkpIHx8IHV0aWwuaXNGb3JtRGF0YUxpa2UocmVxdWVzdC5ib2R5KSkpIHtcbiAgICAgICAgICAvLyBSZXF1ZXN0IHdpdGggc3RyZWFtIG9yIGl0ZXJhdG9yIGJvZHkgY2FuIGVycm9yIHdoaWxlIG90aGVyIHJlcXVlc3RzXG4gICAgICAgICAgLy8gYXJlIGluZmxpZ2h0IGFuZCBpbmRpcmVjdGx5IGVycm9yIHRob3NlIGFzIHdlbGwuXG4gICAgICAgICAgLy8gRW5zdXJlIHRoaXMgZG9lc24ndCBoYXBwZW4gYnkgd2FpdGluZyBmb3IgaW5mbGlnaHRcbiAgICAgICAgICAvLyB0byBjb21wbGV0ZSBiZWZvcmUgZGlzcGF0Y2hpbmcuXG5cbiAgICAgICAgICAvLyBSZXF1ZXN0IHdpdGggc3RyZWFtIG9yIGl0ZXJhdG9yIGJvZHkgY2Fubm90IGJlIHJldHJpZWQuXG4gICAgICAgICAgLy8gRW5zdXJlIHRoYXQgbm8gb3RoZXIgcmVxdWVzdHMgYXJlIGluZmxpZ2h0IGFuZFxuICAgICAgICAgIC8vIGNvdWxkIGNhdXNlIGZhaWx1cmUuXG4gICAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gcmVzdW1lSDEgKGNsaWVudCkge1xuICBjb25zdCBzb2NrZXQgPSBjbGllbnRba1NvY2tldF1cblxuICBpZiAoc29ja2V0ICYmICFzb2NrZXQuZGVzdHJveWVkKSB7XG4gICAgaWYgKGNsaWVudFtrU2l6ZV0gPT09IDApIHtcbiAgICAgIGlmICghc29ja2V0W2tOb1JlZl0gJiYgc29ja2V0LnVucmVmKSB7XG4gICAgICAgIHNvY2tldC51bnJlZigpXG4gICAgICAgIHNvY2tldFtrTm9SZWZdID0gdHJ1ZVxuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoc29ja2V0W2tOb1JlZl0gJiYgc29ja2V0LnJlZikge1xuICAgICAgc29ja2V0LnJlZigpXG4gICAgICBzb2NrZXRba05vUmVmXSA9IGZhbHNlXG4gICAgfVxuXG4gICAgaWYgKGNsaWVudFtrU2l6ZV0gPT09IDApIHtcbiAgICAgIGlmIChzb2NrZXRba1BhcnNlcl0udGltZW91dFR5cGUgIT09IFRJTUVPVVRfS0VFUF9BTElWRSkge1xuICAgICAgICBzb2NrZXRba1BhcnNlcl0uc2V0VGltZW91dChjbGllbnRba0tlZXBBbGl2ZVRpbWVvdXRWYWx1ZV0sIFRJTUVPVVRfS0VFUF9BTElWRSlcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKGNsaWVudFtrUnVubmluZ10gPiAwICYmIHNvY2tldFtrUGFyc2VyXS5zdGF0dXNDb2RlIDwgMjAwKSB7XG4gICAgICBpZiAoc29ja2V0W2tQYXJzZXJdLnRpbWVvdXRUeXBlICE9PSBUSU1FT1VUX0hFQURFUlMpIHtcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9IGNsaWVudFtrUXVldWVdW2NsaWVudFtrUnVubmluZ0lkeF1dXG4gICAgICAgIGNvbnN0IGhlYWRlcnNUaW1lb3V0ID0gcmVxdWVzdC5oZWFkZXJzVGltZW91dCAhPSBudWxsXG4gICAgICAgICAgPyByZXF1ZXN0LmhlYWRlcnNUaW1lb3V0XG4gICAgICAgICAgOiBjbGllbnRba0hlYWRlcnNUaW1lb3V0XVxuICAgICAgICBzb2NrZXRba1BhcnNlcl0uc2V0VGltZW91dChoZWFkZXJzVGltZW91dCwgVElNRU9VVF9IRUFERVJTKVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLyBodHRwczovL3d3dy5yZmMtZWRpdG9yLm9yZy9yZmMvcmZjNzIzMCNzZWN0aW9uLTMuMy4yXG5mdW5jdGlvbiBzaG91bGRTZW5kQ29udGVudExlbmd0aCAobWV0aG9kKSB7XG4gIHJldHVybiBtZXRob2QgIT09ICdHRVQnICYmIG1ldGhvZCAhPT0gJ0hFQUQnICYmIG1ldGhvZCAhPT0gJ09QVElPTlMnICYmIG1ldGhvZCAhPT0gJ1RSQUNFJyAmJiBtZXRob2QgIT09ICdDT05ORUNUJ1xufVxuXG5mdW5jdGlvbiB3cml0ZUgxIChjbGllbnQsIHJlcXVlc3QpIHtcbiAgY29uc3QgeyBtZXRob2QsIHBhdGgsIGhvc3QsIHVwZ3JhZGUsIGJsb2NraW5nLCByZXNldCB9ID0gcmVxdWVzdFxuXG4gIGxldCB7IGJvZHksIGhlYWRlcnMsIGNvbnRlbnRMZW5ndGggfSA9IHJlcXVlc3RcblxuICAvLyBodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjNzIzMSNzZWN0aW9uLTQuMy4xXG4gIC8vIGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM3MjMxI3NlY3Rpb24tNC4zLjJcbiAgLy8gaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzcyMzEjc2VjdGlvbi00LjMuNVxuXG4gIC8vIFNlbmRpbmcgYSBwYXlsb2FkIGJvZHkgb24gYSByZXF1ZXN0IHRoYXQgZG9lcyBub3RcbiAgLy8gZXhwZWN0IGl0IGNhbiBjYXVzZSB1bmRlZmluZWQgYmVoYXZpb3Igb24gc29tZVxuICAvLyBzZXJ2ZXJzIGFuZCBjb3JydXB0IGNvbm5lY3Rpb24gc3RhdGUuIERvIG5vdFxuICAvLyByZS11c2UgdGhlIGNvbm5lY3Rpb24gZm9yIGZ1cnRoZXIgcmVxdWVzdHMuXG5cbiAgY29uc3QgZXhwZWN0c1BheWxvYWQgPSAoXG4gICAgbWV0aG9kID09PSAnUFVUJyB8fFxuICAgIG1ldGhvZCA9PT0gJ1BPU1QnIHx8XG4gICAgbWV0aG9kID09PSAnUEFUQ0gnIHx8XG4gICAgbWV0aG9kID09PSAnUVVFUlknIHx8XG4gICAgbWV0aG9kID09PSAnUFJPUEZJTkQnIHx8XG4gICAgbWV0aG9kID09PSAnUFJPUFBBVENIJ1xuICApXG5cbiAgaWYgKHV0aWwuaXNGb3JtRGF0YUxpa2UoYm9keSkpIHtcbiAgICBpZiAoIWV4dHJhY3RCb2R5KSB7XG4gICAgICBleHRyYWN0Qm9keSA9IHJlcXVpcmUoJy4uL3dlYi9mZXRjaC9ib2R5LmpzJykuZXh0cmFjdEJvZHlcbiAgICB9XG5cbiAgICBjb25zdCBbYm9keVN0cmVhbSwgY29udGVudFR5cGVdID0gZXh0cmFjdEJvZHkoYm9keSlcbiAgICBpZiAocmVxdWVzdC5jb250ZW50VHlwZSA9PSBudWxsKSB7XG4gICAgICBoZWFkZXJzLnB1c2goJ2NvbnRlbnQtdHlwZScsIGNvbnRlbnRUeXBlKVxuICAgIH1cbiAgICBib2R5ID0gYm9keVN0cmVhbS5zdHJlYW1cbiAgICBjb250ZW50TGVuZ3RoID0gYm9keVN0cmVhbS5sZW5ndGhcbiAgfSBlbHNlIGlmICh1dGlsLmlzQmxvYkxpa2UoYm9keSkgJiYgcmVxdWVzdC5jb250ZW50VHlwZSA9PSBudWxsICYmIGJvZHkudHlwZSkge1xuICAgIGhlYWRlcnMucHVzaCgnY29udGVudC10eXBlJywgYm9keS50eXBlKVxuICB9XG5cbiAgaWYgKGJvZHkgJiYgdHlwZW9mIGJvZHkucmVhZCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIC8vIFRyeSB0byByZWFkIEVPRiBpbiBvcmRlciB0byBnZXQgbGVuZ3RoLlxuICAgIGJvZHkucmVhZCgwKVxuICB9XG5cbiAgY29uc3QgYm9keUxlbmd0aCA9IHV0aWwuYm9keUxlbmd0aChib2R5KVxuXG4gIGNvbnRlbnRMZW5ndGggPSBib2R5TGVuZ3RoID8/IGNvbnRlbnRMZW5ndGhcblxuICBpZiAoY29udGVudExlbmd0aCA9PT0gbnVsbCkge1xuICAgIGNvbnRlbnRMZW5ndGggPSByZXF1ZXN0LmNvbnRlbnRMZW5ndGhcbiAgfVxuXG4gIGlmIChjb250ZW50TGVuZ3RoID09PSAwICYmICFleHBlY3RzUGF5bG9hZCkge1xuICAgIC8vIGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM3MjMwI3NlY3Rpb24tMy4zLjJcbiAgICAvLyBBIHVzZXIgYWdlbnQgU0hPVUxEIE5PVCBzZW5kIGEgQ29udGVudC1MZW5ndGggaGVhZGVyIGZpZWxkIHdoZW5cbiAgICAvLyB0aGUgcmVxdWVzdCBtZXNzYWdlIGRvZXMgbm90IGNvbnRhaW4gYSBwYXlsb2FkIGJvZHkgYW5kIHRoZSBtZXRob2RcbiAgICAvLyBzZW1hbnRpY3MgZG8gbm90IGFudGljaXBhdGUgc3VjaCBhIGJvZHkuXG5cbiAgICBjb250ZW50TGVuZ3RoID0gbnVsbFxuICB9XG5cbiAgLy8gaHR0cHM6Ly9naXRodWIuY29tL25vZGVqcy91bmRpY2kvaXNzdWVzLzIwNDZcbiAgLy8gQSB1c2VyIGFnZW50IG1heSBzZW5kIGEgQ29udGVudC1MZW5ndGggaGVhZGVyIHdpdGggMCB2YWx1ZSwgdGhpcyBzaG91bGQgYmUgYWxsb3dlZC5cbiAgaWYgKHNob3VsZFNlbmRDb250ZW50TGVuZ3RoKG1ldGhvZCkgJiYgY29udGVudExlbmd0aCA+IDAgJiYgcmVxdWVzdC5jb250ZW50TGVuZ3RoICE9PSBudWxsICYmIHJlcXVlc3QuY29udGVudExlbmd0aCAhPT0gY29udGVudExlbmd0aCkge1xuICAgIGlmIChjbGllbnRba1N0cmljdENvbnRlbnRMZW5ndGhdKSB7XG4gICAgICB1dGlsLmVycm9yUmVxdWVzdChjbGllbnQsIHJlcXVlc3QsIG5ldyBSZXF1ZXN0Q29udGVudExlbmd0aE1pc21hdGNoRXJyb3IoKSlcbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH1cblxuICAgIHByb2Nlc3MuZW1pdFdhcm5pbmcobmV3IFJlcXVlc3RDb250ZW50TGVuZ3RoTWlzbWF0Y2hFcnJvcigpKVxuICB9XG5cbiAgY29uc3Qgc29ja2V0ID0gY2xpZW50W2tTb2NrZXRdXG5cbiAgY29uc3QgYWJvcnQgPSAoZXJyKSA9PiB7XG4gICAgaWYgKHJlcXVlc3QuYWJvcnRlZCB8fCByZXF1ZXN0LmNvbXBsZXRlZCkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgdXRpbC5lcnJvclJlcXVlc3QoY2xpZW50LCByZXF1ZXN0LCBlcnIgfHwgbmV3IFJlcXVlc3RBYm9ydGVkRXJyb3IoKSlcblxuICAgIHV0aWwuZGVzdHJveShib2R5KVxuICAgIHV0aWwuZGVzdHJveShzb2NrZXQsIG5ldyBJbmZvcm1hdGlvbmFsRXJyb3IoJ2Fib3J0ZWQnKSlcbiAgfVxuXG4gIHRyeSB7XG4gICAgcmVxdWVzdC5vbkNvbm5lY3QoYWJvcnQpXG4gIH0gY2F0Y2ggKGVycikge1xuICAgIHV0aWwuZXJyb3JSZXF1ZXN0KGNsaWVudCwgcmVxdWVzdCwgZXJyKVxuICB9XG5cbiAgaWYgKHJlcXVlc3QuYWJvcnRlZCkge1xuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbiAgaWYgKG1ldGhvZCA9PT0gJ0hFQUQnKSB7XG4gICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL21jb2xsaW5hL3VuZGljaS9pc3N1ZXMvMjU4XG4gICAgLy8gQ2xvc2UgYWZ0ZXIgYSBIRUFEIHJlcXVlc3QgdG8gaW50ZXJvcCB3aXRoIG1pc2JlaGF2aW5nIHNlcnZlcnNcbiAgICAvLyB0aGF0IG1heSBzZW5kIGEgYm9keSBpbiB0aGUgcmVzcG9uc2UuXG5cbiAgICBzb2NrZXRba1Jlc2V0XSA9IHRydWVcbiAgfVxuXG4gIGlmICh1cGdyYWRlIHx8IG1ldGhvZCA9PT0gJ0NPTk5FQ1QnKSB7XG4gICAgLy8gT24gQ09OTkVDVCBvciB1cGdyYWRlLCBibG9jayBwaXBlbGluZSBmcm9tIGRpc3BhdGNoaW5nIGZ1cnRoZXJcbiAgICAvLyByZXF1ZXN0cyBvbiB0aGlzIGNvbm5lY3Rpb24uXG5cbiAgICBzb2NrZXRba1Jlc2V0XSA9IHRydWVcbiAgfVxuXG4gIGlmIChyZXNldCAhPSBudWxsKSB7XG4gICAgc29ja2V0W2tSZXNldF0gPSByZXNldFxuICB9XG5cbiAgaWYgKGNsaWVudFtrTWF4UmVxdWVzdHNdICYmIHNvY2tldFtrQ291bnRlcl0rKyA+PSBjbGllbnRba01heFJlcXVlc3RzXSkge1xuICAgIHNvY2tldFtrUmVzZXRdID0gdHJ1ZVxuICB9XG5cbiAgaWYgKGJsb2NraW5nKSB7XG4gICAgc29ja2V0W2tCbG9ja2luZ10gPSB0cnVlXG4gIH1cblxuICBsZXQgaGVhZGVyID0gYCR7bWV0aG9kfSAke3BhdGh9IEhUVFAvMS4xXFxyXFxuYFxuXG4gIGlmICh0eXBlb2YgaG9zdCA9PT0gJ3N0cmluZycpIHtcbiAgICBoZWFkZXIgKz0gYGhvc3Q6ICR7aG9zdH1cXHJcXG5gXG4gIH0gZWxzZSB7XG4gICAgaGVhZGVyICs9IGNsaWVudFtrSG9zdEhlYWRlcl1cbiAgfVxuXG4gIGlmICh1cGdyYWRlKSB7XG4gICAgaGVhZGVyICs9IGBjb25uZWN0aW9uOiB1cGdyYWRlXFxyXFxudXBncmFkZTogJHt1cGdyYWRlfVxcclxcbmBcbiAgfSBlbHNlIGlmIChjbGllbnRba1BpcGVsaW5pbmddICYmICFzb2NrZXRba1Jlc2V0XSkge1xuICAgIGhlYWRlciArPSAnY29ubmVjdGlvbjoga2VlcC1hbGl2ZVxcclxcbidcbiAgfSBlbHNlIHtcbiAgICBoZWFkZXIgKz0gJ2Nvbm5lY3Rpb246IGNsb3NlXFxyXFxuJ1xuICB9XG5cbiAgaWYgKEFycmF5LmlzQXJyYXkoaGVhZGVycykpIHtcbiAgICBmb3IgKGxldCBuID0gMDsgbiA8IGhlYWRlcnMubGVuZ3RoOyBuICs9IDIpIHtcbiAgICAgIGNvbnN0IGtleSA9IGhlYWRlcnNbbiArIDBdXG4gICAgICBjb25zdCB2YWwgPSBoZWFkZXJzW24gKyAxXVxuXG4gICAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWwpKSB7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdmFsLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgaGVhZGVyICs9IGAke2tleX06ICR7dmFsW2ldfVxcclxcbmBcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaGVhZGVyICs9IGAke2tleX06ICR7dmFsfVxcclxcbmBcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBpZiAoY2hhbm5lbHMuc2VuZEhlYWRlcnMuaGFzU3Vic2NyaWJlcnMpIHtcbiAgICBjaGFubmVscy5zZW5kSGVhZGVycy5wdWJsaXNoKHsgcmVxdWVzdCwgaGVhZGVyczogaGVhZGVyLCBzb2NrZXQgfSlcbiAgfVxuXG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlOiBhc3NlcnRpb24gKi9cbiAgaWYgKCFib2R5IHx8IGJvZHlMZW5ndGggPT09IDApIHtcbiAgICB3cml0ZUJ1ZmZlcihhYm9ydCwgbnVsbCwgY2xpZW50LCByZXF1ZXN0LCBzb2NrZXQsIGNvbnRlbnRMZW5ndGgsIGhlYWRlciwgZXhwZWN0c1BheWxvYWQpXG4gIH0gZWxzZSBpZiAodXRpbC5pc0J1ZmZlcihib2R5KSkge1xuICAgIHdyaXRlQnVmZmVyKGFib3J0LCBib2R5LCBjbGllbnQsIHJlcXVlc3QsIHNvY2tldCwgY29udGVudExlbmd0aCwgaGVhZGVyLCBleHBlY3RzUGF5bG9hZClcbiAgfSBlbHNlIGlmICh1dGlsLmlzQmxvYkxpa2UoYm9keSkpIHtcbiAgICBpZiAodHlwZW9mIGJvZHkuc3RyZWFtID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICB3cml0ZUl0ZXJhYmxlKGFib3J0LCBib2R5LnN0cmVhbSgpLCBjbGllbnQsIHJlcXVlc3QsIHNvY2tldCwgY29udGVudExlbmd0aCwgaGVhZGVyLCBleHBlY3RzUGF5bG9hZClcbiAgICB9IGVsc2Uge1xuICAgICAgd3JpdGVCbG9iKGFib3J0LCBib2R5LCBjbGllbnQsIHJlcXVlc3QsIHNvY2tldCwgY29udGVudExlbmd0aCwgaGVhZGVyLCBleHBlY3RzUGF5bG9hZClcbiAgICB9XG4gIH0gZWxzZSBpZiAodXRpbC5pc1N0cmVhbShib2R5KSkge1xuICAgIHdyaXRlU3RyZWFtKGFib3J0LCBib2R5LCBjbGllbnQsIHJlcXVlc3QsIHNvY2tldCwgY29udGVudExlbmd0aCwgaGVhZGVyLCBleHBlY3RzUGF5bG9hZClcbiAgfSBlbHNlIGlmICh1dGlsLmlzSXRlcmFibGUoYm9keSkpIHtcbiAgICB3cml0ZUl0ZXJhYmxlKGFib3J0LCBib2R5LCBjbGllbnQsIHJlcXVlc3QsIHNvY2tldCwgY29udGVudExlbmd0aCwgaGVhZGVyLCBleHBlY3RzUGF5bG9hZClcbiAgfSBlbHNlIHtcbiAgICBhc3NlcnQoZmFsc2UpXG4gIH1cblxuICByZXR1cm4gdHJ1ZVxufVxuXG5mdW5jdGlvbiB3cml0ZVN0cmVhbSAoYWJvcnQsIGJvZHksIGNsaWVudCwgcmVxdWVzdCwgc29ja2V0LCBjb250ZW50TGVuZ3RoLCBoZWFkZXIsIGV4cGVjdHNQYXlsb2FkKSB7XG4gIGFzc2VydChjb250ZW50TGVuZ3RoICE9PSAwIHx8IGNsaWVudFtrUnVubmluZ10gPT09IDAsICdzdHJlYW0gYm9keSBjYW5ub3QgYmUgcGlwZWxpbmVkJylcblxuICBsZXQgZmluaXNoZWQgPSBmYWxzZVxuXG4gIGNvbnN0IHdyaXRlciA9IG5ldyBBc3luY1dyaXRlcih7IGFib3J0LCBzb2NrZXQsIHJlcXVlc3QsIGNvbnRlbnRMZW5ndGgsIGNsaWVudCwgZXhwZWN0c1BheWxvYWQsIGhlYWRlciB9KVxuXG4gIGNvbnN0IG9uRGF0YSA9IGZ1bmN0aW9uIChjaHVuaykge1xuICAgIGlmIChmaW5pc2hlZCkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgdHJ5IHtcbiAgICAgIGlmICghd3JpdGVyLndyaXRlKGNodW5rKSAmJiB0aGlzLnBhdXNlKSB7XG4gICAgICAgIHRoaXMucGF1c2UoKVxuICAgICAgfVxuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgdXRpbC5kZXN0cm95KHRoaXMsIGVycilcbiAgICB9XG4gIH1cbiAgY29uc3Qgb25EcmFpbiA9IGZ1bmN0aW9uICgpIHtcbiAgICBpZiAoZmluaXNoZWQpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGlmIChib2R5LnJlc3VtZSkge1xuICAgICAgYm9keS5yZXN1bWUoKVxuICAgIH1cbiAgfVxuICBjb25zdCBvbkNsb3NlID0gZnVuY3Rpb24gKCkge1xuICAgIC8vICdjbG9zZScgbWlnaHQgYmUgZW1pdHRlZCAqYmVmb3JlKiAnZXJyb3InIGZvclxuICAgIC8vIGJyb2tlbiBzdHJlYW1zLiBXYWl0IGEgdGljayB0byBhdm9pZCB0aGlzIGNhc2UuXG4gICAgcXVldWVNaWNyb3Rhc2soKCkgPT4ge1xuICAgICAgLy8gSXQncyBvbmx5IHNhZmUgdG8gcmVtb3ZlICdlcnJvcicgbGlzdGVuZXIgYWZ0ZXJcbiAgICAgIC8vICdjbG9zZScuXG4gICAgICBib2R5LnJlbW92ZUxpc3RlbmVyKCdlcnJvcicsIG9uRmluaXNoZWQpXG4gICAgfSlcblxuICAgIGlmICghZmluaXNoZWQpIHtcbiAgICAgIGNvbnN0IGVyciA9IG5ldyBSZXF1ZXN0QWJvcnRlZEVycm9yKClcbiAgICAgIHF1ZXVlTWljcm90YXNrKCgpID0+IG9uRmluaXNoZWQoZXJyKSlcbiAgICB9XG4gIH1cbiAgY29uc3Qgb25GaW5pc2hlZCA9IGZ1bmN0aW9uIChlcnIpIHtcbiAgICBpZiAoZmluaXNoZWQpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGZpbmlzaGVkID0gdHJ1ZVxuXG4gICAgYXNzZXJ0KHNvY2tldC5kZXN0cm95ZWQgfHwgKHNvY2tldFtrV3JpdGluZ10gJiYgY2xpZW50W2tSdW5uaW5nXSA8PSAxKSlcblxuICAgIHNvY2tldFxuICAgICAgLm9mZignZHJhaW4nLCBvbkRyYWluKVxuICAgICAgLm9mZignZXJyb3InLCBvbkZpbmlzaGVkKVxuXG4gICAgYm9keVxuICAgICAgLnJlbW92ZUxpc3RlbmVyKCdkYXRhJywgb25EYXRhKVxuICAgICAgLnJlbW92ZUxpc3RlbmVyKCdlbmQnLCBvbkZpbmlzaGVkKVxuICAgICAgLnJlbW92ZUxpc3RlbmVyKCdjbG9zZScsIG9uQ2xvc2UpXG5cbiAgICBpZiAoIWVycikge1xuICAgICAgdHJ5IHtcbiAgICAgICAgd3JpdGVyLmVuZCgpXG4gICAgICB9IGNhdGNoIChlcikge1xuICAgICAgICBlcnIgPSBlclxuICAgICAgfVxuICAgIH1cblxuICAgIHdyaXRlci5kZXN0cm95KGVycilcblxuICAgIGlmIChlcnIgJiYgKGVyci5jb2RlICE9PSAnVU5EX0VSUl9JTkZPJyB8fCBlcnIubWVzc2FnZSAhPT0gJ3Jlc2V0JykpIHtcbiAgICAgIHV0aWwuZGVzdHJveShib2R5LCBlcnIpXG4gICAgfSBlbHNlIHtcbiAgICAgIHV0aWwuZGVzdHJveShib2R5KVxuICAgIH1cbiAgfVxuXG4gIGJvZHlcbiAgICAub24oJ2RhdGEnLCBvbkRhdGEpXG4gICAgLm9uKCdlbmQnLCBvbkZpbmlzaGVkKVxuICAgIC5vbignZXJyb3InLCBvbkZpbmlzaGVkKVxuICAgIC5vbignY2xvc2UnLCBvbkNsb3NlKVxuXG4gIGlmIChib2R5LnJlc3VtZSkge1xuICAgIGJvZHkucmVzdW1lKClcbiAgfVxuXG4gIHNvY2tldFxuICAgIC5vbignZHJhaW4nLCBvbkRyYWluKVxuICAgIC5vbignZXJyb3InLCBvbkZpbmlzaGVkKVxuXG4gIGlmIChib2R5LmVycm9yRW1pdHRlZCA/PyBib2R5LmVycm9yZWQpIHtcbiAgICBzZXRJbW1lZGlhdGUoKCkgPT4gb25GaW5pc2hlZChib2R5LmVycm9yZWQpKVxuICB9IGVsc2UgaWYgKGJvZHkuZW5kRW1pdHRlZCA/PyBib2R5LnJlYWRhYmxlRW5kZWQpIHtcbiAgICBzZXRJbW1lZGlhdGUoKCkgPT4gb25GaW5pc2hlZChudWxsKSlcbiAgfVxuXG4gIGlmIChib2R5LmNsb3NlRW1pdHRlZCA/PyBib2R5LmNsb3NlZCkge1xuICAgIHNldEltbWVkaWF0ZShvbkNsb3NlKVxuICB9XG59XG5cbmZ1bmN0aW9uIHdyaXRlQnVmZmVyIChhYm9ydCwgYm9keSwgY2xpZW50LCByZXF1ZXN0LCBzb2NrZXQsIGNvbnRlbnRMZW5ndGgsIGhlYWRlciwgZXhwZWN0c1BheWxvYWQpIHtcbiAgdHJ5IHtcbiAgICBpZiAoIWJvZHkpIHtcbiAgICAgIGlmIChjb250ZW50TGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHNvY2tldC53cml0ZShgJHtoZWFkZXJ9Y29udGVudC1sZW5ndGg6IDBcXHJcXG5cXHJcXG5gLCAnbGF0aW4xJylcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGFzc2VydChjb250ZW50TGVuZ3RoID09PSBudWxsLCAnbm8gYm9keSBtdXN0IG5vdCBoYXZlIGNvbnRlbnQgbGVuZ3RoJylcbiAgICAgICAgc29ja2V0LndyaXRlKGAke2hlYWRlcn1cXHJcXG5gLCAnbGF0aW4xJylcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHV0aWwuaXNCdWZmZXIoYm9keSkpIHtcbiAgICAgIGFzc2VydChjb250ZW50TGVuZ3RoID09PSBib2R5LmJ5dGVMZW5ndGgsICdidWZmZXIgYm9keSBtdXN0IGhhdmUgY29udGVudCBsZW5ndGgnKVxuXG4gICAgICBzb2NrZXQuY29yaygpXG4gICAgICBzb2NrZXQud3JpdGUoYCR7aGVhZGVyfWNvbnRlbnQtbGVuZ3RoOiAke2NvbnRlbnRMZW5ndGh9XFxyXFxuXFxyXFxuYCwgJ2xhdGluMScpXG4gICAgICBzb2NrZXQud3JpdGUoYm9keSlcbiAgICAgIHNvY2tldC51bmNvcmsoKVxuICAgICAgcmVxdWVzdC5vbkJvZHlTZW50KGJvZHkpXG5cbiAgICAgIGlmICghZXhwZWN0c1BheWxvYWQgJiYgcmVxdWVzdC5yZXNldCAhPT0gZmFsc2UpIHtcbiAgICAgICAgc29ja2V0W2tSZXNldF0gPSB0cnVlXG4gICAgICB9XG4gICAgfVxuICAgIHJlcXVlc3Qub25SZXF1ZXN0U2VudCgpXG5cbiAgICBjbGllbnRba1Jlc3VtZV0oKVxuICB9IGNhdGNoIChlcnIpIHtcbiAgICBhYm9ydChlcnIpXG4gIH1cbn1cblxuYXN5bmMgZnVuY3Rpb24gd3JpdGVCbG9iIChhYm9ydCwgYm9keSwgY2xpZW50LCByZXF1ZXN0LCBzb2NrZXQsIGNvbnRlbnRMZW5ndGgsIGhlYWRlciwgZXhwZWN0c1BheWxvYWQpIHtcbiAgYXNzZXJ0KGNvbnRlbnRMZW5ndGggPT09IGJvZHkuc2l6ZSwgJ2Jsb2IgYm9keSBtdXN0IGhhdmUgY29udGVudCBsZW5ndGgnKVxuXG4gIHRyeSB7XG4gICAgaWYgKGNvbnRlbnRMZW5ndGggIT0gbnVsbCAmJiBjb250ZW50TGVuZ3RoICE9PSBib2R5LnNpemUpIHtcbiAgICAgIHRocm93IG5ldyBSZXF1ZXN0Q29udGVudExlbmd0aE1pc21hdGNoRXJyb3IoKVxuICAgIH1cblxuICAgIGNvbnN0IGJ1ZmZlciA9IEJ1ZmZlci5mcm9tKGF3YWl0IGJvZHkuYXJyYXlCdWZmZXIoKSlcblxuICAgIHNvY2tldC5jb3JrKClcbiAgICBzb2NrZXQud3JpdGUoYCR7aGVhZGVyfWNvbnRlbnQtbGVuZ3RoOiAke2NvbnRlbnRMZW5ndGh9XFxyXFxuXFxyXFxuYCwgJ2xhdGluMScpXG4gICAgc29ja2V0LndyaXRlKGJ1ZmZlcilcbiAgICBzb2NrZXQudW5jb3JrKClcblxuICAgIHJlcXVlc3Qub25Cb2R5U2VudChidWZmZXIpXG4gICAgcmVxdWVzdC5vblJlcXVlc3RTZW50KClcblxuICAgIGlmICghZXhwZWN0c1BheWxvYWQgJiYgcmVxdWVzdC5yZXNldCAhPT0gZmFsc2UpIHtcbiAgICAgIHNvY2tldFtrUmVzZXRdID0gdHJ1ZVxuICAgIH1cblxuICAgIGNsaWVudFtrUmVzdW1lXSgpXG4gIH0gY2F0Y2ggKGVycikge1xuICAgIGFib3J0KGVycilcbiAgfVxufVxuXG5hc3luYyBmdW5jdGlvbiB3cml0ZUl0ZXJhYmxlIChhYm9ydCwgYm9keSwgY2xpZW50LCByZXF1ZXN0LCBzb2NrZXQsIGNvbnRlbnRMZW5ndGgsIGhlYWRlciwgZXhwZWN0c1BheWxvYWQpIHtcbiAgYXNzZXJ0KGNvbnRlbnRMZW5ndGggIT09IDAgfHwgY2xpZW50W2tSdW5uaW5nXSA9PT0gMCwgJ2l0ZXJhdG9yIGJvZHkgY2Fubm90IGJlIHBpcGVsaW5lZCcpXG5cbiAgbGV0IGNhbGxiYWNrID0gbnVsbFxuICBmdW5jdGlvbiBvbkRyYWluICgpIHtcbiAgICBpZiAoY2FsbGJhY2spIHtcbiAgICAgIGNvbnN0IGNiID0gY2FsbGJhY2tcbiAgICAgIGNhbGxiYWNrID0gbnVsbFxuICAgICAgY2IoKVxuICAgIH1cbiAgfVxuXG4gIGNvbnN0IHdhaXRGb3JEcmFpbiA9ICgpID0+IG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICBhc3NlcnQoY2FsbGJhY2sgPT09IG51bGwpXG5cbiAgICBpZiAoc29ja2V0W2tFcnJvcl0pIHtcbiAgICAgIHJlamVjdChzb2NrZXRba0Vycm9yXSlcbiAgICB9IGVsc2Uge1xuICAgICAgY2FsbGJhY2sgPSByZXNvbHZlXG4gICAgfVxuICB9KVxuXG4gIHNvY2tldFxuICAgIC5vbignY2xvc2UnLCBvbkRyYWluKVxuICAgIC5vbignZHJhaW4nLCBvbkRyYWluKVxuXG4gIGNvbnN0IHdyaXRlciA9IG5ldyBBc3luY1dyaXRlcih7IGFib3J0LCBzb2NrZXQsIHJlcXVlc3QsIGNvbnRlbnRMZW5ndGgsIGNsaWVudCwgZXhwZWN0c1BheWxvYWQsIGhlYWRlciB9KVxuICB0cnkge1xuICAgIC8vIEl0J3MgdXAgdG8gdGhlIHVzZXIgdG8gc29tZWhvdyBhYm9ydCB0aGUgYXN5bmMgaXRlcmFibGUuXG4gICAgZm9yIGF3YWl0IChjb25zdCBjaHVuayBvZiBib2R5KSB7XG4gICAgICBpZiAoc29ja2V0W2tFcnJvcl0pIHtcbiAgICAgICAgdGhyb3cgc29ja2V0W2tFcnJvcl1cbiAgICAgIH1cblxuICAgICAgaWYgKCF3cml0ZXIud3JpdGUoY2h1bmspKSB7XG4gICAgICAgIGF3YWl0IHdhaXRGb3JEcmFpbigpXG4gICAgICB9XG4gICAgfVxuXG4gICAgd3JpdGVyLmVuZCgpXG4gIH0gY2F0Y2ggKGVycikge1xuICAgIHdyaXRlci5kZXN0cm95KGVycilcbiAgfSBmaW5hbGx5IHtcbiAgICBzb2NrZXRcbiAgICAgIC5vZmYoJ2Nsb3NlJywgb25EcmFpbilcbiAgICAgIC5vZmYoJ2RyYWluJywgb25EcmFpbilcbiAgfVxufVxuXG5jbGFzcyBBc3luY1dyaXRlciB7XG4gIGNvbnN0cnVjdG9yICh7IGFib3J0LCBzb2NrZXQsIHJlcXVlc3QsIGNvbnRlbnRMZW5ndGgsIGNsaWVudCwgZXhwZWN0c1BheWxvYWQsIGhlYWRlciB9KSB7XG4gICAgdGhpcy5zb2NrZXQgPSBzb2NrZXRcbiAgICB0aGlzLnJlcXVlc3QgPSByZXF1ZXN0XG4gICAgdGhpcy5jb250ZW50TGVuZ3RoID0gY29udGVudExlbmd0aFxuICAgIHRoaXMuY2xpZW50ID0gY2xpZW50XG4gICAgdGhpcy5ieXRlc1dyaXR0ZW4gPSAwXG4gICAgdGhpcy5leHBlY3RzUGF5bG9hZCA9IGV4cGVjdHNQYXlsb2FkXG4gICAgdGhpcy5oZWFkZXIgPSBoZWFkZXJcbiAgICB0aGlzLmFib3J0ID0gYWJvcnRcblxuICAgIHNvY2tldFtrV3JpdGluZ10gPSB0cnVlXG4gIH1cblxuICB3cml0ZSAoY2h1bmspIHtcbiAgICBjb25zdCB7IHNvY2tldCwgcmVxdWVzdCwgY29udGVudExlbmd0aCwgY2xpZW50LCBieXRlc1dyaXR0ZW4sIGV4cGVjdHNQYXlsb2FkLCBoZWFkZXIgfSA9IHRoaXNcblxuICAgIGlmIChzb2NrZXRba0Vycm9yXSkge1xuICAgICAgdGhyb3cgc29ja2V0W2tFcnJvcl1cbiAgICB9XG5cbiAgICBpZiAoc29ja2V0LmRlc3Ryb3llZCkge1xuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfVxuXG4gICAgY29uc3QgbGVuID0gQnVmZmVyLmJ5dGVMZW5ndGgoY2h1bmspXG4gICAgaWYgKCFsZW4pIHtcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuXG4gICAgLy8gV2Ugc2hvdWxkIGRlZmVyIHdyaXRpbmcgY2h1bmtzLlxuICAgIGlmIChjb250ZW50TGVuZ3RoICE9PSBudWxsICYmIGJ5dGVzV3JpdHRlbiArIGxlbiA+IGNvbnRlbnRMZW5ndGgpIHtcbiAgICAgIGlmIChjbGllbnRba1N0cmljdENvbnRlbnRMZW5ndGhdKSB7XG4gICAgICAgIHRocm93IG5ldyBSZXF1ZXN0Q29udGVudExlbmd0aE1pc21hdGNoRXJyb3IoKVxuICAgICAgfVxuXG4gICAgICBwcm9jZXNzLmVtaXRXYXJuaW5nKG5ldyBSZXF1ZXN0Q29udGVudExlbmd0aE1pc21hdGNoRXJyb3IoKSlcbiAgICB9XG5cbiAgICBzb2NrZXQuY29yaygpXG5cbiAgICBpZiAoYnl0ZXNXcml0dGVuID09PSAwKSB7XG4gICAgICBpZiAoIWV4cGVjdHNQYXlsb2FkICYmIHJlcXVlc3QucmVzZXQgIT09IGZhbHNlKSB7XG4gICAgICAgIHNvY2tldFtrUmVzZXRdID0gdHJ1ZVxuICAgICAgfVxuXG4gICAgICBpZiAoY29udGVudExlbmd0aCA9PT0gbnVsbCkge1xuICAgICAgICBzb2NrZXQud3JpdGUoYCR7aGVhZGVyfXRyYW5zZmVyLWVuY29kaW5nOiBjaHVua2VkXFxyXFxuYCwgJ2xhdGluMScpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzb2NrZXQud3JpdGUoYCR7aGVhZGVyfWNvbnRlbnQtbGVuZ3RoOiAke2NvbnRlbnRMZW5ndGh9XFxyXFxuXFxyXFxuYCwgJ2xhdGluMScpXG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGNvbnRlbnRMZW5ndGggPT09IG51bGwpIHtcbiAgICAgIHNvY2tldC53cml0ZShgXFxyXFxuJHtsZW4udG9TdHJpbmcoMTYpfVxcclxcbmAsICdsYXRpbjEnKVxuICAgIH1cblxuICAgIHRoaXMuYnl0ZXNXcml0dGVuICs9IGxlblxuXG4gICAgY29uc3QgcmV0ID0gc29ja2V0LndyaXRlKGNodW5rKVxuXG4gICAgc29ja2V0LnVuY29yaygpXG5cbiAgICByZXF1ZXN0Lm9uQm9keVNlbnQoY2h1bmspXG5cbiAgICBpZiAoIXJldCkge1xuICAgICAgaWYgKHNvY2tldFtrUGFyc2VyXS50aW1lb3V0ICYmIHNvY2tldFtrUGFyc2VyXS50aW1lb3V0VHlwZSA9PT0gVElNRU9VVF9IRUFERVJTKSB7XG4gICAgICAgIC8vIGlzdGFuYnVsIGlnbm9yZSBlbHNlOiBvbmx5IGZvciBqZXN0XG4gICAgICAgIGlmIChzb2NrZXRba1BhcnNlcl0udGltZW91dC5yZWZyZXNoKSB7XG4gICAgICAgICAgc29ja2V0W2tQYXJzZXJdLnRpbWVvdXQucmVmcmVzaCgpXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gcmV0XG4gIH1cblxuICBlbmQgKCkge1xuICAgIGNvbnN0IHsgc29ja2V0LCBjb250ZW50TGVuZ3RoLCBjbGllbnQsIGJ5dGVzV3JpdHRlbiwgZXhwZWN0c1BheWxvYWQsIGhlYWRlciwgcmVxdWVzdCB9ID0gdGhpc1xuICAgIHJlcXVlc3Qub25SZXF1ZXN0U2VudCgpXG5cbiAgICBzb2NrZXRba1dyaXRpbmddID0gZmFsc2VcblxuICAgIGlmIChzb2NrZXRba0Vycm9yXSkge1xuICAgICAgdGhyb3cgc29ja2V0W2tFcnJvcl1cbiAgICB9XG5cbiAgICBpZiAoc29ja2V0LmRlc3Ryb3llZCkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgaWYgKGJ5dGVzV3JpdHRlbiA9PT0gMCkge1xuICAgICAgaWYgKGV4cGVjdHNQYXlsb2FkKSB7XG4gICAgICAgIC8vIGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM3MjMwI3NlY3Rpb24tMy4zLjJcbiAgICAgICAgLy8gQSB1c2VyIGFnZW50IFNIT1VMRCBzZW5kIGEgQ29udGVudC1MZW5ndGggaW4gYSByZXF1ZXN0IG1lc3NhZ2Ugd2hlblxuICAgICAgICAvLyBubyBUcmFuc2Zlci1FbmNvZGluZyBpcyBzZW50IGFuZCB0aGUgcmVxdWVzdCBtZXRob2QgZGVmaW5lcyBhIG1lYW5pbmdcbiAgICAgICAgLy8gZm9yIGFuIGVuY2xvc2VkIHBheWxvYWQgYm9keS5cblxuICAgICAgICBzb2NrZXQud3JpdGUoYCR7aGVhZGVyfWNvbnRlbnQtbGVuZ3RoOiAwXFxyXFxuXFxyXFxuYCwgJ2xhdGluMScpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzb2NrZXQud3JpdGUoYCR7aGVhZGVyfVxcclxcbmAsICdsYXRpbjEnKVxuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoY29udGVudExlbmd0aCA9PT0gbnVsbCkge1xuICAgICAgc29ja2V0LndyaXRlKCdcXHJcXG4wXFxyXFxuXFxyXFxuJywgJ2xhdGluMScpXG4gICAgfVxuXG4gICAgaWYgKGNvbnRlbnRMZW5ndGggIT09IG51bGwgJiYgYnl0ZXNXcml0dGVuICE9PSBjb250ZW50TGVuZ3RoKSB7XG4gICAgICBpZiAoY2xpZW50W2tTdHJpY3RDb250ZW50TGVuZ3RoXSkge1xuICAgICAgICB0aHJvdyBuZXcgUmVxdWVzdENvbnRlbnRMZW5ndGhNaXNtYXRjaEVycm9yKClcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHByb2Nlc3MuZW1pdFdhcm5pbmcobmV3IFJlcXVlc3RDb250ZW50TGVuZ3RoTWlzbWF0Y2hFcnJvcigpKVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChzb2NrZXRba1BhcnNlcl0udGltZW91dCAmJiBzb2NrZXRba1BhcnNlcl0udGltZW91dFR5cGUgPT09IFRJTUVPVVRfSEVBREVSUykge1xuICAgICAgLy8gaXN0YW5idWwgaWdub3JlIGVsc2U6IG9ubHkgZm9yIGplc3RcbiAgICAgIGlmIChzb2NrZXRba1BhcnNlcl0udGltZW91dC5yZWZyZXNoKSB7XG4gICAgICAgIHNvY2tldFtrUGFyc2VyXS50aW1lb3V0LnJlZnJlc2goKVxuICAgICAgfVxuICAgIH1cblxuICAgIGNsaWVudFtrUmVzdW1lXSgpXG4gIH1cblxuICBkZXN0cm95IChlcnIpIHtcbiAgICBjb25zdCB7IHNvY2tldCwgY2xpZW50LCBhYm9ydCB9ID0gdGhpc1xuXG4gICAgc29ja2V0W2tXcml0aW5nXSA9IGZhbHNlXG5cbiAgICBpZiAoZXJyKSB7XG4gICAgICBhc3NlcnQoY2xpZW50W2tSdW5uaW5nXSA8PSAxLCAncGlwZWxpbmUgc2hvdWxkIG9ubHkgY29udGFpbiB0aGlzIHJlcXVlc3QnKVxuICAgICAgYWJvcnQoZXJyKVxuICAgIH1cbiAgfVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGNvbm5lY3RIMVxuIiwgIid1c2Ugc3RyaWN0J1xuXG5jb25zdCBhc3NlcnQgPSByZXF1aXJlKCdub2RlOmFzc2VydCcpXG5jb25zdCB7IHBpcGVsaW5lIH0gPSByZXF1aXJlKCdub2RlOnN0cmVhbScpXG5jb25zdCB1dGlsID0gcmVxdWlyZSgnLi4vY29yZS91dGlsLmpzJylcbmNvbnN0IHtcbiAgUmVxdWVzdENvbnRlbnRMZW5ndGhNaXNtYXRjaEVycm9yLFxuICBSZXF1ZXN0QWJvcnRlZEVycm9yLFxuICBTb2NrZXRFcnJvcixcbiAgSW5mb3JtYXRpb25hbEVycm9yXG59ID0gcmVxdWlyZSgnLi4vY29yZS9lcnJvcnMuanMnKVxuY29uc3Qge1xuICBrVXJsLFxuICBrUmVzZXQsXG4gIGtDbGllbnQsXG4gIGtSdW5uaW5nLFxuICBrUGVuZGluZyxcbiAga1F1ZXVlLFxuICBrUGVuZGluZ0lkeCxcbiAga1J1bm5pbmdJZHgsXG4gIGtFcnJvcixcbiAga1NvY2tldCxcbiAga1N0cmljdENvbnRlbnRMZW5ndGgsXG4gIGtPbkVycm9yLFxuICBrTWF4Q29uY3VycmVudFN0cmVhbXMsXG4gIGtIVFRQMlNlc3Npb24sXG4gIGtSZXN1bWUsXG4gIGtTaXplLFxuICBrSFRUUENvbnRleHRcbn0gPSByZXF1aXJlKCcuLi9jb3JlL3N5bWJvbHMuanMnKVxuXG5jb25zdCBrT3BlblN0cmVhbXMgPSBTeW1ib2woJ29wZW4gc3RyZWFtcycpXG5cbmxldCBleHRyYWN0Qm9keVxuXG4vLyBFeHBlcmltZW50YWxcbmxldCBoMkV4cGVyaW1lbnRhbFdhcm5lZCA9IGZhbHNlXG5cbi8qKiBAdHlwZSB7aW1wb3J0KCdodHRwMicpfSAqL1xubGV0IGh0dHAyXG50cnkge1xuICBodHRwMiA9IHJlcXVpcmUoJ25vZGU6aHR0cDInKVxufSBjYXRjaCB7XG4gIC8vIEB0cy1pZ25vcmVcbiAgaHR0cDIgPSB7IGNvbnN0YW50czoge30gfVxufVxuXG5jb25zdCB7XG4gIGNvbnN0YW50czoge1xuICAgIEhUVFAyX0hFQURFUl9BVVRIT1JJVFksXG4gICAgSFRUUDJfSEVBREVSX01FVEhPRCxcbiAgICBIVFRQMl9IRUFERVJfUEFUSCxcbiAgICBIVFRQMl9IRUFERVJfU0NIRU1FLFxuICAgIEhUVFAyX0hFQURFUl9DT05URU5UX0xFTkdUSCxcbiAgICBIVFRQMl9IRUFERVJfRVhQRUNULFxuICAgIEhUVFAyX0hFQURFUl9TVEFUVVNcbiAgfVxufSA9IGh0dHAyXG5cbmZ1bmN0aW9uIHBhcnNlSDJIZWFkZXJzIChoZWFkZXJzKSB7XG4gIGNvbnN0IHJlc3VsdCA9IFtdXG5cbiAgZm9yIChjb25zdCBbbmFtZSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKGhlYWRlcnMpKSB7XG4gICAgLy8gaDIgbWF5IGNvbmNhdCB0aGUgaGVhZGVyIHZhbHVlIGJ5IGFycmF5XG4gICAgLy8gZS5nLiBTZXQtQ29va2llXG4gICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICBmb3IgKGNvbnN0IHN1YnZhbHVlIG9mIHZhbHVlKSB7XG4gICAgICAgIC8vIHdlIG5lZWQgdG8gcHJvdmlkZSBlYWNoIGhlYWRlciB2YWx1ZSBvZiBoZWFkZXIgbmFtZVxuICAgICAgICAvLyBiZWNhdXNlIHRoZSBoZWFkZXJzIGhhbmRsZXIgZXhwZWN0IG5hbWUtdmFsdWUgcGFpclxuICAgICAgICByZXN1bHQucHVzaChCdWZmZXIuZnJvbShuYW1lKSwgQnVmZmVyLmZyb20oc3VidmFsdWUpKVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICByZXN1bHQucHVzaChCdWZmZXIuZnJvbShuYW1lKSwgQnVmZmVyLmZyb20odmFsdWUpKVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiByZXN1bHRcbn1cblxuYXN5bmMgZnVuY3Rpb24gY29ubmVjdEgyIChjbGllbnQsIHNvY2tldCkge1xuICBjbGllbnRba1NvY2tldF0gPSBzb2NrZXRcblxuICBpZiAoIWgyRXhwZXJpbWVudGFsV2FybmVkKSB7XG4gICAgaDJFeHBlcmltZW50YWxXYXJuZWQgPSB0cnVlXG4gICAgcHJvY2Vzcy5lbWl0V2FybmluZygnSDIgc3VwcG9ydCBpcyBleHBlcmltZW50YWwsIGV4cGVjdCB0aGVtIHRvIGNoYW5nZSBhdCBhbnkgdGltZS4nLCB7XG4gICAgICBjb2RlOiAnVU5ESUNJLUgyJ1xuICAgIH0pXG4gIH1cblxuICBjb25zdCBzZXNzaW9uID0gaHR0cDIuY29ubmVjdChjbGllbnRba1VybF0sIHtcbiAgICBjcmVhdGVDb25uZWN0aW9uOiAoKSA9PiBzb2NrZXQsXG4gICAgcGVlck1heENvbmN1cnJlbnRTdHJlYW1zOiBjbGllbnRba01heENvbmN1cnJlbnRTdHJlYW1zXVxuICB9KVxuXG4gIHNlc3Npb25ba09wZW5TdHJlYW1zXSA9IDBcbiAgc2Vzc2lvbltrQ2xpZW50XSA9IGNsaWVudFxuICBzZXNzaW9uW2tTb2NrZXRdID0gc29ja2V0XG5cbiAgdXRpbC5hZGRMaXN0ZW5lcihzZXNzaW9uLCAnZXJyb3InLCBvbkh0dHAyU2Vzc2lvbkVycm9yKVxuICB1dGlsLmFkZExpc3RlbmVyKHNlc3Npb24sICdmcmFtZUVycm9yJywgb25IdHRwMkZyYW1lRXJyb3IpXG4gIHV0aWwuYWRkTGlzdGVuZXIoc2Vzc2lvbiwgJ2VuZCcsIG9uSHR0cDJTZXNzaW9uRW5kKVxuICB1dGlsLmFkZExpc3RlbmVyKHNlc3Npb24sICdnb2F3YXknLCBvbkhUVFAyR29Bd2F5KVxuICB1dGlsLmFkZExpc3RlbmVyKHNlc3Npb24sICdjbG9zZScsIGZ1bmN0aW9uICgpIHtcbiAgICBjb25zdCB7IFtrQ2xpZW50XTogY2xpZW50IH0gPSB0aGlzXG4gICAgY29uc3QgeyBba1NvY2tldF06IHNvY2tldCB9ID0gY2xpZW50XG5cbiAgICBjb25zdCBlcnIgPSB0aGlzW2tTb2NrZXRdW2tFcnJvcl0gfHwgdGhpc1trRXJyb3JdIHx8IG5ldyBTb2NrZXRFcnJvcignY2xvc2VkJywgdXRpbC5nZXRTb2NrZXRJbmZvKHNvY2tldCkpXG5cbiAgICBjbGllbnRba0hUVFAyU2Vzc2lvbl0gPSBudWxsXG5cbiAgICBpZiAoY2xpZW50LmRlc3Ryb3llZCkge1xuICAgICAgYXNzZXJ0KGNsaWVudFtrUGVuZGluZ10gPT09IDApXG5cbiAgICAgIC8vIEZhaWwgZW50aXJlIHF1ZXVlLlxuICAgICAgY29uc3QgcmVxdWVzdHMgPSBjbGllbnRba1F1ZXVlXS5zcGxpY2UoY2xpZW50W2tSdW5uaW5nSWR4XSlcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcmVxdWVzdHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9IHJlcXVlc3RzW2ldXG4gICAgICAgIHV0aWwuZXJyb3JSZXF1ZXN0KGNsaWVudCwgcmVxdWVzdCwgZXJyKVxuICAgICAgfVxuICAgIH1cbiAgfSlcblxuICBzZXNzaW9uLnVucmVmKClcblxuICBjbGllbnRba0hUVFAyU2Vzc2lvbl0gPSBzZXNzaW9uXG4gIHNvY2tldFtrSFRUUDJTZXNzaW9uXSA9IHNlc3Npb25cblxuICB1dGlsLmFkZExpc3RlbmVyKHNvY2tldCwgJ2Vycm9yJywgZnVuY3Rpb24gKGVycikge1xuICAgIGFzc2VydChlcnIuY29kZSAhPT0gJ0VSUl9UTFNfQ0VSVF9BTFROQU1FX0lOVkFMSUQnKVxuXG4gICAgdGhpc1trRXJyb3JdID0gZXJyXG5cbiAgICB0aGlzW2tDbGllbnRdW2tPbkVycm9yXShlcnIpXG4gIH0pXG5cbiAgdXRpbC5hZGRMaXN0ZW5lcihzb2NrZXQsICdlbmQnLCBmdW5jdGlvbiAoKSB7XG4gICAgdXRpbC5kZXN0cm95KHRoaXMsIG5ldyBTb2NrZXRFcnJvcignb3RoZXIgc2lkZSBjbG9zZWQnLCB1dGlsLmdldFNvY2tldEluZm8odGhpcykpKVxuICB9KVxuXG4gIHV0aWwuYWRkTGlzdGVuZXIoc29ja2V0LCAnY2xvc2UnLCBmdW5jdGlvbiAoKSB7XG4gICAgY29uc3QgZXJyID0gdGhpc1trRXJyb3JdIHx8IG5ldyBTb2NrZXRFcnJvcignY2xvc2VkJywgdXRpbC5nZXRTb2NrZXRJbmZvKHRoaXMpKVxuXG4gICAgY2xpZW50W2tTb2NrZXRdID0gbnVsbFxuXG4gICAgaWYgKHRoaXNba0hUVFAyU2Vzc2lvbl0gIT0gbnVsbCkge1xuICAgICAgdGhpc1trSFRUUDJTZXNzaW9uXS5kZXN0cm95KGVycilcbiAgICB9XG5cbiAgICBjbGllbnRba1BlbmRpbmdJZHhdID0gY2xpZW50W2tSdW5uaW5nSWR4XVxuXG4gICAgYXNzZXJ0KGNsaWVudFtrUnVubmluZ10gPT09IDApXG5cbiAgICBjbGllbnQuZW1pdCgnZGlzY29ubmVjdCcsIGNsaWVudFtrVXJsXSwgW2NsaWVudF0sIGVycilcblxuICAgIGNsaWVudFtrUmVzdW1lXSgpXG4gIH0pXG5cbiAgbGV0IGNsb3NlZCA9IGZhbHNlXG4gIHNvY2tldC5vbignY2xvc2UnLCAoKSA9PiB7XG4gICAgY2xvc2VkID0gdHJ1ZVxuICB9KVxuXG4gIHJldHVybiB7XG4gICAgdmVyc2lvbjogJ2gyJyxcbiAgICBkZWZhdWx0UGlwZWxpbmluZzogSW5maW5pdHksXG4gICAgd3JpdGUgKC4uLmFyZ3MpIHtcbiAgICAgIHJldHVybiB3cml0ZUgyKGNsaWVudCwgLi4uYXJncylcbiAgICB9LFxuICAgIHJlc3VtZSAoKSB7XG4gICAgICByZXN1bWVIMihjbGllbnQpXG4gICAgfSxcbiAgICBkZXN0cm95IChlcnIsIGNhbGxiYWNrKSB7XG4gICAgICBpZiAoY2xvc2VkKSB7XG4gICAgICAgIHF1ZXVlTWljcm90YXNrKGNhbGxiYWNrKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gRGVzdHJveWluZyB0aGUgc29ja2V0IHdpbGwgdHJpZ2dlciB0aGUgc2Vzc2lvbiBjbG9zZVxuICAgICAgICBzb2NrZXQuZGVzdHJveShlcnIpLm9uKCdjbG9zZScsIGNhbGxiYWNrKVxuICAgICAgfVxuICAgIH0sXG4gICAgZ2V0IGRlc3Ryb3llZCAoKSB7XG4gICAgICByZXR1cm4gc29ja2V0LmRlc3Ryb3llZFxuICAgIH0sXG4gICAgYnVzeSAoKSB7XG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gcmVzdW1lSDIgKGNsaWVudCkge1xuICBjb25zdCBzb2NrZXQgPSBjbGllbnRba1NvY2tldF1cblxuICBpZiAoc29ja2V0Py5kZXN0cm95ZWQgPT09IGZhbHNlKSB7XG4gICAgaWYgKGNsaWVudFtrU2l6ZV0gPT09IDAgJiYgY2xpZW50W2tNYXhDb25jdXJyZW50U3RyZWFtc10gPT09IDApIHtcbiAgICAgIHNvY2tldC51bnJlZigpXG4gICAgICBjbGllbnRba0hUVFAyU2Vzc2lvbl0udW5yZWYoKVxuICAgIH0gZWxzZSB7XG4gICAgICBzb2NrZXQucmVmKClcbiAgICAgIGNsaWVudFtrSFRUUDJTZXNzaW9uXS5yZWYoKVxuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBvbkh0dHAyU2Vzc2lvbkVycm9yIChlcnIpIHtcbiAgYXNzZXJ0KGVyci5jb2RlICE9PSAnRVJSX1RMU19DRVJUX0FMVE5BTUVfSU5WQUxJRCcpXG5cbiAgdGhpc1trU29ja2V0XVtrRXJyb3JdID0gZXJyXG4gIHRoaXNba0NsaWVudF1ba09uRXJyb3JdKGVycilcbn1cblxuZnVuY3Rpb24gb25IdHRwMkZyYW1lRXJyb3IgKHR5cGUsIGNvZGUsIGlkKSB7XG4gIGlmIChpZCA9PT0gMCkge1xuICAgIGNvbnN0IGVyciA9IG5ldyBJbmZvcm1hdGlvbmFsRXJyb3IoYEhUVFAvMjogXCJmcmFtZUVycm9yXCIgcmVjZWl2ZWQgLSB0eXBlICR7dHlwZX0sIGNvZGUgJHtjb2RlfWApXG4gICAgdGhpc1trU29ja2V0XVtrRXJyb3JdID0gZXJyXG4gICAgdGhpc1trQ2xpZW50XVtrT25FcnJvcl0oZXJyKVxuICB9XG59XG5cbmZ1bmN0aW9uIG9uSHR0cDJTZXNzaW9uRW5kICgpIHtcbiAgY29uc3QgZXJyID0gbmV3IFNvY2tldEVycm9yKCdvdGhlciBzaWRlIGNsb3NlZCcsIHV0aWwuZ2V0U29ja2V0SW5mbyh0aGlzW2tTb2NrZXRdKSlcbiAgdGhpcy5kZXN0cm95KGVycilcbiAgdXRpbC5kZXN0cm95KHRoaXNba1NvY2tldF0sIGVycilcbn1cblxuLyoqXG4gKiBUaGlzIGlzIHRoZSByb290IGNhdXNlIG9mICMzMDExXG4gKiBXZSBuZWVkIHRvIGhhbmRsZSBHT0FXQVkgZnJhbWVzIHByb3Blcmx5LCBhbmQgdHJpZ2dlciB0aGUgc2Vzc2lvbiBjbG9zZVxuICogYWxvbmcgd2l0aCB0aGUgc29ja2V0IHJpZ2h0IGF3YXlcbiAqL1xuZnVuY3Rpb24gb25IVFRQMkdvQXdheSAoY29kZSkge1xuICAvLyBXZSBjYW5ub3QgcmVjb3Zlciwgc28gYmVzdCB0byBjbG9zZSB0aGUgc2Vzc2lvbiBhbmQgdGhlIHNvY2tldFxuICBjb25zdCBlcnIgPSB0aGlzW2tFcnJvcl0gfHwgbmV3IFNvY2tldEVycm9yKGBIVFRQLzI6IFwiR09BV0FZXCIgZnJhbWUgcmVjZWl2ZWQgd2l0aCBjb2RlICR7Y29kZX1gLCB1dGlsLmdldFNvY2tldEluZm8odGhpcykpXG4gIGNvbnN0IGNsaWVudCA9IHRoaXNba0NsaWVudF1cblxuICBjbGllbnRba1NvY2tldF0gPSBudWxsXG4gIGNsaWVudFtrSFRUUENvbnRleHRdID0gbnVsbFxuXG4gIGlmICh0aGlzW2tIVFRQMlNlc3Npb25dICE9IG51bGwpIHtcbiAgICB0aGlzW2tIVFRQMlNlc3Npb25dLmRlc3Ryb3koZXJyKVxuICAgIHRoaXNba0hUVFAyU2Vzc2lvbl0gPSBudWxsXG4gIH1cblxuICB1dGlsLmRlc3Ryb3kodGhpc1trU29ja2V0XSwgZXJyKVxuXG4gIC8vIEZhaWwgaGVhZCBvZiBwaXBlbGluZS5cbiAgaWYgKGNsaWVudFtrUnVubmluZ0lkeF0gPCBjbGllbnRba1F1ZXVlXS5sZW5ndGgpIHtcbiAgICBjb25zdCByZXF1ZXN0ID0gY2xpZW50W2tRdWV1ZV1bY2xpZW50W2tSdW5uaW5nSWR4XV1cbiAgICBjbGllbnRba1F1ZXVlXVtjbGllbnRba1J1bm5pbmdJZHhdKytdID0gbnVsbFxuICAgIHV0aWwuZXJyb3JSZXF1ZXN0KGNsaWVudCwgcmVxdWVzdCwgZXJyKVxuICAgIGNsaWVudFtrUGVuZGluZ0lkeF0gPSBjbGllbnRba1J1bm5pbmdJZHhdXG4gIH1cblxuICBhc3NlcnQoY2xpZW50W2tSdW5uaW5nXSA9PT0gMClcblxuICBjbGllbnQuZW1pdCgnZGlzY29ubmVjdCcsIGNsaWVudFtrVXJsXSwgW2NsaWVudF0sIGVycilcblxuICBjbGllbnRba1Jlc3VtZV0oKVxufVxuXG4vLyBodHRwczovL3d3dy5yZmMtZWRpdG9yLm9yZy9yZmMvcmZjNzIzMCNzZWN0aW9uLTMuMy4yXG5mdW5jdGlvbiBzaG91bGRTZW5kQ29udGVudExlbmd0aCAobWV0aG9kKSB7XG4gIHJldHVybiBtZXRob2QgIT09ICdHRVQnICYmIG1ldGhvZCAhPT0gJ0hFQUQnICYmIG1ldGhvZCAhPT0gJ09QVElPTlMnICYmIG1ldGhvZCAhPT0gJ1RSQUNFJyAmJiBtZXRob2QgIT09ICdDT05ORUNUJ1xufVxuXG5mdW5jdGlvbiB3cml0ZUgyIChjbGllbnQsIHJlcXVlc3QpIHtcbiAgY29uc3Qgc2Vzc2lvbiA9IGNsaWVudFtrSFRUUDJTZXNzaW9uXVxuICBjb25zdCB7IG1ldGhvZCwgcGF0aCwgaG9zdCwgdXBncmFkZSwgZXhwZWN0Q29udGludWUsIHNpZ25hbCwgaGVhZGVyczogcmVxSGVhZGVycyB9ID0gcmVxdWVzdFxuICBsZXQgeyBib2R5IH0gPSByZXF1ZXN0XG5cbiAgaWYgKHVwZ3JhZGUpIHtcbiAgICB1dGlsLmVycm9yUmVxdWVzdChjbGllbnQsIHJlcXVlc3QsIG5ldyBFcnJvcignVXBncmFkZSBub3Qgc3VwcG9ydGVkIGZvciBIMicpKVxuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbiAgY29uc3QgaGVhZGVycyA9IHt9XG4gIGZvciAobGV0IG4gPSAwOyBuIDwgcmVxSGVhZGVycy5sZW5ndGg7IG4gKz0gMikge1xuICAgIGNvbnN0IGtleSA9IHJlcUhlYWRlcnNbbiArIDBdXG4gICAgY29uc3QgdmFsID0gcmVxSGVhZGVyc1tuICsgMV1cblxuICAgIGlmIChBcnJheS5pc0FycmF5KHZhbCkpIHtcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdmFsLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGlmIChoZWFkZXJzW2tleV0pIHtcbiAgICAgICAgICBoZWFkZXJzW2tleV0gKz0gYCwke3ZhbFtpXX1gXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaGVhZGVyc1trZXldID0gdmFsW2ldXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgaGVhZGVyc1trZXldID0gdmFsXG4gICAgfVxuICB9XG5cbiAgLyoqIEB0eXBlIHtpbXBvcnQoJ25vZGU6aHR0cDInKS5DbGllbnRIdHRwMlN0cmVhbX0gKi9cbiAgbGV0IHN0cmVhbVxuXG4gIGNvbnN0IHsgaG9zdG5hbWUsIHBvcnQgfSA9IGNsaWVudFtrVXJsXVxuXG4gIGhlYWRlcnNbSFRUUDJfSEVBREVSX0FVVEhPUklUWV0gPSBob3N0IHx8IGAke2hvc3RuYW1lfSR7cG9ydCA/IGA6JHtwb3J0fWAgOiAnJ31gXG4gIGhlYWRlcnNbSFRUUDJfSEVBREVSX01FVEhPRF0gPSBtZXRob2RcblxuICBjb25zdCBhYm9ydCA9IChlcnIpID0+IHtcbiAgICBpZiAocmVxdWVzdC5hYm9ydGVkIHx8IHJlcXVlc3QuY29tcGxldGVkKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBlcnIgPSBlcnIgfHwgbmV3IFJlcXVlc3RBYm9ydGVkRXJyb3IoKVxuXG4gICAgdXRpbC5lcnJvclJlcXVlc3QoY2xpZW50LCByZXF1ZXN0LCBlcnIpXG5cbiAgICBpZiAoc3RyZWFtICE9IG51bGwpIHtcbiAgICAgIHV0aWwuZGVzdHJveShzdHJlYW0sIGVycilcbiAgICB9XG5cbiAgICAvLyBXZSBkbyBub3QgZGVzdHJveSB0aGUgc29ja2V0IGFzIHdlIGNhbiBjb250aW51ZSB1c2luZyB0aGUgc2Vzc2lvblxuICAgIC8vIHRoZSBzdHJlYW0gZ2V0J3MgZGVzdHJveWVkIGFuZCB0aGUgc2Vzc2lvbiByZW1haW5zIHRvIGNyZWF0ZSBuZXcgc3RyZWFtc1xuICAgIHV0aWwuZGVzdHJveShib2R5LCBlcnIpXG4gICAgY2xpZW50W2tRdWV1ZV1bY2xpZW50W2tSdW5uaW5nSWR4XSsrXSA9IG51bGxcbiAgICBjbGllbnRba1Jlc3VtZV0oKVxuICB9XG5cbiAgdHJ5IHtcbiAgICAvLyBXZSBhcmUgYWxyZWFkeSBjb25uZWN0ZWQsIHN0cmVhbXMgYXJlIHBlbmRpbmcuXG4gICAgLy8gV2UgY2FuIGNhbGwgb24gY29ubmVjdCwgYW5kIHdhaXQgZm9yIGFib3J0XG4gICAgcmVxdWVzdC5vbkNvbm5lY3QoYWJvcnQpXG4gIH0gY2F0Y2ggKGVycikge1xuICAgIHV0aWwuZXJyb3JSZXF1ZXN0KGNsaWVudCwgcmVxdWVzdCwgZXJyKVxuICB9XG5cbiAgaWYgKHJlcXVlc3QuYWJvcnRlZCkge1xuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbiAgaWYgKG1ldGhvZCA9PT0gJ0NPTk5FQ1QnKSB7XG4gICAgc2Vzc2lvbi5yZWYoKVxuICAgIC8vIFdlIGFyZSBhbHJlYWR5IGNvbm5lY3RlZCwgc3RyZWFtcyBhcmUgcGVuZGluZywgZmlyc3QgcmVxdWVzdFxuICAgIC8vIHdpbGwgY3JlYXRlIGEgbmV3IHN0cmVhbS4gV2UgdHJpZ2dlciBhIHJlcXVlc3QgdG8gY3JlYXRlIHRoZSBzdHJlYW0gYW5kIHdhaXQgdW50aWxcbiAgICAvLyBgcmVhZHlgIGV2ZW50IGlzIHRyaWdnZXJlZFxuICAgIC8vIFdlIGRpc2FibGVkIGVuZFN0cmVhbSB0byBhbGxvdyB0aGUgdXNlciB0byB3cml0ZSB0byB0aGUgc3RyZWFtXG4gICAgc3RyZWFtID0gc2Vzc2lvbi5yZXF1ZXN0KGhlYWRlcnMsIHsgZW5kU3RyZWFtOiBmYWxzZSwgc2lnbmFsIH0pXG5cbiAgICBpZiAoc3RyZWFtLmlkICYmICFzdHJlYW0ucGVuZGluZykge1xuICAgICAgcmVxdWVzdC5vblVwZ3JhZGUobnVsbCwgbnVsbCwgc3RyZWFtKVxuICAgICAgKytzZXNzaW9uW2tPcGVuU3RyZWFtc11cbiAgICAgIGNsaWVudFtrUXVldWVdW2NsaWVudFtrUnVubmluZ0lkeF0rK10gPSBudWxsXG4gICAgfSBlbHNlIHtcbiAgICAgIHN0cmVhbS5vbmNlKCdyZWFkeScsICgpID0+IHtcbiAgICAgICAgcmVxdWVzdC5vblVwZ3JhZGUobnVsbCwgbnVsbCwgc3RyZWFtKVxuICAgICAgICArK3Nlc3Npb25ba09wZW5TdHJlYW1zXVxuICAgICAgICBjbGllbnRba1F1ZXVlXVtjbGllbnRba1J1bm5pbmdJZHhdKytdID0gbnVsbFxuICAgICAgfSlcbiAgICB9XG5cbiAgICBzdHJlYW0ub25jZSgnY2xvc2UnLCAoKSA9PiB7XG4gICAgICBzZXNzaW9uW2tPcGVuU3RyZWFtc10gLT0gMVxuICAgICAgaWYgKHNlc3Npb25ba09wZW5TdHJlYW1zXSA9PT0gMCkgc2Vzc2lvbi51bnJlZigpXG4gICAgfSlcblxuICAgIHJldHVybiB0cnVlXG4gIH1cblxuICAvLyBodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjNzU0MCNzZWN0aW9uLTguM1xuICAvLyA6cGF0aCBhbmQgOnNjaGVtZSBoZWFkZXJzIG11c3QgYmUgb21pdHRlZCB3aGVuIHNlbmRpbmcgQ09OTkVDVFxuXG4gIGhlYWRlcnNbSFRUUDJfSEVBREVSX1BBVEhdID0gcGF0aFxuICBoZWFkZXJzW0hUVFAyX0hFQURFUl9TQ0hFTUVdID0gJ2h0dHBzJ1xuXG4gIC8vIGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM3MjMxI3NlY3Rpb24tNC4zLjFcbiAgLy8gaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzcyMzEjc2VjdGlvbi00LjMuMlxuICAvLyBodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjNzIzMSNzZWN0aW9uLTQuMy41XG5cbiAgLy8gU2VuZGluZyBhIHBheWxvYWQgYm9keSBvbiBhIHJlcXVlc3QgdGhhdCBkb2VzIG5vdFxuICAvLyBleHBlY3QgaXQgY2FuIGNhdXNlIHVuZGVmaW5lZCBiZWhhdmlvciBvbiBzb21lXG4gIC8vIHNlcnZlcnMgYW5kIGNvcnJ1cHQgY29ubmVjdGlvbiBzdGF0ZS4gRG8gbm90XG4gIC8vIHJlLXVzZSB0aGUgY29ubmVjdGlvbiBmb3IgZnVydGhlciByZXF1ZXN0cy5cblxuICBjb25zdCBleHBlY3RzUGF5bG9hZCA9IChcbiAgICBtZXRob2QgPT09ICdQVVQnIHx8XG4gICAgbWV0aG9kID09PSAnUE9TVCcgfHxcbiAgICBtZXRob2QgPT09ICdQQVRDSCdcbiAgKVxuXG4gIGlmIChib2R5ICYmIHR5cGVvZiBib2R5LnJlYWQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAvLyBUcnkgdG8gcmVhZCBFT0YgaW4gb3JkZXIgdG8gZ2V0IGxlbmd0aC5cbiAgICBib2R5LnJlYWQoMClcbiAgfVxuXG4gIGxldCBjb250ZW50TGVuZ3RoID0gdXRpbC5ib2R5TGVuZ3RoKGJvZHkpXG5cbiAgaWYgKHV0aWwuaXNGb3JtRGF0YUxpa2UoYm9keSkpIHtcbiAgICBleHRyYWN0Qm9keSA/Pz0gcmVxdWlyZSgnLi4vd2ViL2ZldGNoL2JvZHkuanMnKS5leHRyYWN0Qm9keVxuXG4gICAgY29uc3QgW2JvZHlTdHJlYW0sIGNvbnRlbnRUeXBlXSA9IGV4dHJhY3RCb2R5KGJvZHkpXG4gICAgaGVhZGVyc1snY29udGVudC10eXBlJ10gPSBjb250ZW50VHlwZVxuXG4gICAgYm9keSA9IGJvZHlTdHJlYW0uc3RyZWFtXG4gICAgY29udGVudExlbmd0aCA9IGJvZHlTdHJlYW0ubGVuZ3RoXG4gIH1cblxuICBpZiAoY29udGVudExlbmd0aCA9PSBudWxsKSB7XG4gICAgY29udGVudExlbmd0aCA9IHJlcXVlc3QuY29udGVudExlbmd0aFxuICB9XG5cbiAgaWYgKGNvbnRlbnRMZW5ndGggPT09IDAgfHwgIWV4cGVjdHNQYXlsb2FkKSB7XG4gICAgLy8gaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzcyMzAjc2VjdGlvbi0zLjMuMlxuICAgIC8vIEEgdXNlciBhZ2VudCBTSE9VTEQgTk9UIHNlbmQgYSBDb250ZW50LUxlbmd0aCBoZWFkZXIgZmllbGQgd2hlblxuICAgIC8vIHRoZSByZXF1ZXN0IG1lc3NhZ2UgZG9lcyBub3QgY29udGFpbiBhIHBheWxvYWQgYm9keSBhbmQgdGhlIG1ldGhvZFxuICAgIC8vIHNlbWFudGljcyBkbyBub3QgYW50aWNpcGF0ZSBzdWNoIGEgYm9keS5cblxuICAgIGNvbnRlbnRMZW5ndGggPSBudWxsXG4gIH1cblxuICAvLyBodHRwczovL2dpdGh1Yi5jb20vbm9kZWpzL3VuZGljaS9pc3N1ZXMvMjA0NlxuICAvLyBBIHVzZXIgYWdlbnQgbWF5IHNlbmQgYSBDb250ZW50LUxlbmd0aCBoZWFkZXIgd2l0aCAwIHZhbHVlLCB0aGlzIHNob3VsZCBiZSBhbGxvd2VkLlxuICBpZiAoc2hvdWxkU2VuZENvbnRlbnRMZW5ndGgobWV0aG9kKSAmJiBjb250ZW50TGVuZ3RoID4gMCAmJiByZXF1ZXN0LmNvbnRlbnRMZW5ndGggIT0gbnVsbCAmJiByZXF1ZXN0LmNvbnRlbnRMZW5ndGggIT09IGNvbnRlbnRMZW5ndGgpIHtcbiAgICBpZiAoY2xpZW50W2tTdHJpY3RDb250ZW50TGVuZ3RoXSkge1xuICAgICAgdXRpbC5lcnJvclJlcXVlc3QoY2xpZW50LCByZXF1ZXN0LCBuZXcgUmVxdWVzdENvbnRlbnRMZW5ndGhNaXNtYXRjaEVycm9yKCkpXG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9XG5cbiAgICBwcm9jZXNzLmVtaXRXYXJuaW5nKG5ldyBSZXF1ZXN0Q29udGVudExlbmd0aE1pc21hdGNoRXJyb3IoKSlcbiAgfVxuXG4gIGlmIChjb250ZW50TGVuZ3RoICE9IG51bGwpIHtcbiAgICBhc3NlcnQoYm9keSwgJ25vIGJvZHkgbXVzdCBub3QgaGF2ZSBjb250ZW50IGxlbmd0aCcpXG4gICAgaGVhZGVyc1tIVFRQMl9IRUFERVJfQ09OVEVOVF9MRU5HVEhdID0gYCR7Y29udGVudExlbmd0aH1gXG4gIH1cblxuICBzZXNzaW9uLnJlZigpXG5cbiAgY29uc3Qgc2hvdWxkRW5kU3RyZWFtID0gbWV0aG9kID09PSAnR0VUJyB8fCBtZXRob2QgPT09ICdIRUFEJyB8fCBib2R5ID09PSBudWxsXG4gIGlmIChleHBlY3RDb250aW51ZSkge1xuICAgIGhlYWRlcnNbSFRUUDJfSEVBREVSX0VYUEVDVF0gPSAnMTAwLWNvbnRpbnVlJ1xuICAgIHN0cmVhbSA9IHNlc3Npb24ucmVxdWVzdChoZWFkZXJzLCB7IGVuZFN0cmVhbTogc2hvdWxkRW5kU3RyZWFtLCBzaWduYWwgfSlcblxuICAgIHN0cmVhbS5vbmNlKCdjb250aW51ZScsIHdyaXRlQm9keUgyKVxuICB9IGVsc2Uge1xuICAgIHN0cmVhbSA9IHNlc3Npb24ucmVxdWVzdChoZWFkZXJzLCB7XG4gICAgICBlbmRTdHJlYW06IHNob3VsZEVuZFN0cmVhbSxcbiAgICAgIHNpZ25hbFxuICAgIH0pXG4gICAgd3JpdGVCb2R5SDIoKVxuICB9XG5cbiAgLy8gSW5jcmVtZW50IGNvdW50ZXIgYXMgd2UgaGF2ZSBuZXcgc3RyZWFtcyBvcGVuXG4gICsrc2Vzc2lvbltrT3BlblN0cmVhbXNdXG5cbiAgc3RyZWFtLm9uY2UoJ3Jlc3BvbnNlJywgaGVhZGVycyA9PiB7XG4gICAgY29uc3QgeyBbSFRUUDJfSEVBREVSX1NUQVRVU106IHN0YXR1c0NvZGUsIC4uLnJlYWxIZWFkZXJzIH0gPSBoZWFkZXJzXG4gICAgcmVxdWVzdC5vblJlc3BvbnNlU3RhcnRlZCgpXG5cbiAgICAvLyBEdWUgdG8gdGhlIHN0cmVhbSBuYXR1cmUsIGl0IGlzIHBvc3NpYmxlIHdlIGZhY2UgYSByYWNlIGNvbmRpdGlvblxuICAgIC8vIHdoZXJlIHRoZSBzdHJlYW0gaGFzIGJlZW4gYXNzaWduZWQsIGJ1dCB0aGUgcmVxdWVzdCBoYXMgYmVlbiBhYm9ydGVkXG4gICAgLy8gdGhlIHJlcXVlc3QgcmVtYWlucyBpbi1mbGlnaHQgYW5kIGhlYWRlcnMgaGFzbid0IGJlZW4gcmVjZWl2ZWQgeWV0XG4gICAgLy8gZm9yIHRob3NlIHNjZW5hcmlvcywgYmVzdCBlZmZvcnQgaXMgdG8gZGVzdHJveSB0aGUgc3RyZWFtIGltbWVkaWF0ZWx5XG4gICAgLy8gYXMgdGhlcmUncyBubyB2YWx1ZSB0byBrZWVwIGl0IG9wZW4uXG4gICAgaWYgKHJlcXVlc3QuYWJvcnRlZCkge1xuICAgICAgY29uc3QgZXJyID0gbmV3IFJlcXVlc3RBYm9ydGVkRXJyb3IoKVxuICAgICAgdXRpbC5lcnJvclJlcXVlc3QoY2xpZW50LCByZXF1ZXN0LCBlcnIpXG4gICAgICB1dGlsLmRlc3Ryb3koc3RyZWFtLCBlcnIpXG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBpZiAocmVxdWVzdC5vbkhlYWRlcnMoTnVtYmVyKHN0YXR1c0NvZGUpLCBwYXJzZUgySGVhZGVycyhyZWFsSGVhZGVycyksIHN0cmVhbS5yZXN1bWUuYmluZChzdHJlYW0pLCAnJykgPT09IGZhbHNlKSB7XG4gICAgICBzdHJlYW0ucGF1c2UoKVxuICAgIH1cblxuICAgIHN0cmVhbS5vbignZGF0YScsIChjaHVuaykgPT4ge1xuICAgICAgaWYgKHJlcXVlc3Qub25EYXRhKGNodW5rKSA9PT0gZmFsc2UpIHtcbiAgICAgICAgc3RyZWFtLnBhdXNlKClcbiAgICAgIH1cbiAgICB9KVxuICB9KVxuXG4gIHN0cmVhbS5vbmNlKCdlbmQnLCAoKSA9PiB7XG4gICAgLy8gV2hlbiBzdGF0ZSBpcyBudWxsLCBpdCBtZWFucyB3ZSBoYXZlbid0IGNvbnN1bWVkIGJvZHkgYW5kIHRoZSBzdHJlYW0gc3RpbGwgZG8gbm90IGhhdmVcbiAgICAvLyBhIHN0YXRlLlxuICAgIC8vIFByZXNlbnQgc3BlY2lhbGx5IHdoZW4gdXNpbmcgcGlwZWxpbmUgb3Igc3RyZWFtXG4gICAgaWYgKHN0cmVhbS5zdGF0ZT8uc3RhdGUgPT0gbnVsbCB8fCBzdHJlYW0uc3RhdGUuc3RhdGUgPCA2KSB7XG4gICAgICByZXF1ZXN0Lm9uQ29tcGxldGUoW10pXG4gICAgfVxuXG4gICAgaWYgKHNlc3Npb25ba09wZW5TdHJlYW1zXSA9PT0gMCkge1xuICAgICAgLy8gU3RyZWFtIGlzIGNsb3NlZCBvciBoYWxmLWNsb3NlZC1yZW1vdGUgKDYpLCBkZWNyZW1lbnQgY291bnRlciBhbmQgY2xlYW51cFxuICAgICAgLy8gSXQgZG9lcyBub3QgaGF2ZSBzZW5zZSB0byBjb250aW51ZSB3b3JraW5nIHdpdGggdGhlIHN0cmVhbSBhcyB3ZSBkbyBub3RcbiAgICAgIC8vIGhhdmUgeWV0IFJTVF9TVFJFQU0gc3VwcG9ydCBvbiBjbGllbnQtc2lkZVxuXG4gICAgICBzZXNzaW9uLnVucmVmKClcbiAgICB9XG5cbiAgICBhYm9ydChuZXcgSW5mb3JtYXRpb25hbEVycm9yKCdIVFRQLzI6IHN0cmVhbSBoYWxmLWNsb3NlZCAocmVtb3RlKScpKVxuICAgIGNsaWVudFtrUXVldWVdW2NsaWVudFtrUnVubmluZ0lkeF0rK10gPSBudWxsXG4gICAgY2xpZW50W2tQZW5kaW5nSWR4XSA9IGNsaWVudFtrUnVubmluZ0lkeF1cbiAgICBjbGllbnRba1Jlc3VtZV0oKVxuICB9KVxuXG4gIHN0cmVhbS5vbmNlKCdjbG9zZScsICgpID0+IHtcbiAgICBzZXNzaW9uW2tPcGVuU3RyZWFtc10gLT0gMVxuICAgIGlmIChzZXNzaW9uW2tPcGVuU3RyZWFtc10gPT09IDApIHtcbiAgICAgIHNlc3Npb24udW5yZWYoKVxuICAgIH1cbiAgfSlcblxuICBzdHJlYW0ub25jZSgnZXJyb3InLCBmdW5jdGlvbiAoZXJyKSB7XG4gICAgYWJvcnQoZXJyKVxuICB9KVxuXG4gIHN0cmVhbS5vbmNlKCdmcmFtZUVycm9yJywgKHR5cGUsIGNvZGUpID0+IHtcbiAgICBhYm9ydChuZXcgSW5mb3JtYXRpb25hbEVycm9yKGBIVFRQLzI6IFwiZnJhbWVFcnJvclwiIHJlY2VpdmVkIC0gdHlwZSAke3R5cGV9LCBjb2RlICR7Y29kZX1gKSlcbiAgfSlcblxuICAvLyBzdHJlYW0ub24oJ2Fib3J0ZWQnLCAoKSA9PiB7XG4gIC8vICAgLy8gVE9ETyhIVFRQLzIpOiBTdXBwb3J0IGFib3J0ZWRcbiAgLy8gfSlcblxuICAvLyBzdHJlYW0ub24oJ3RpbWVvdXQnLCAoKSA9PiB7XG4gIC8vICAgLy8gVE9ETyhIVFRQLzIpOiBTdXBwb3J0IHRpbWVvdXRcbiAgLy8gfSlcblxuICAvLyBzdHJlYW0ub24oJ3B1c2gnLCBoZWFkZXJzID0+IHtcbiAgLy8gICAvLyBUT0RPKEhUVFAvMik6IFN1cHBvcnQgcHVzaFxuICAvLyB9KVxuXG4gIC8vIHN0cmVhbS5vbigndHJhaWxlcnMnLCBoZWFkZXJzID0+IHtcbiAgLy8gICAvLyBUT0RPKEhUVFAvMik6IFN1cHBvcnQgdHJhaWxlcnNcbiAgLy8gfSlcblxuICByZXR1cm4gdHJ1ZVxuXG4gIGZ1bmN0aW9uIHdyaXRlQm9keUgyICgpIHtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZTogYXNzZXJ0aW9uICovXG4gICAgaWYgKCFib2R5IHx8IGNvbnRlbnRMZW5ndGggPT09IDApIHtcbiAgICAgIHdyaXRlQnVmZmVyKFxuICAgICAgICBhYm9ydCxcbiAgICAgICAgc3RyZWFtLFxuICAgICAgICBudWxsLFxuICAgICAgICBjbGllbnQsXG4gICAgICAgIHJlcXVlc3QsXG4gICAgICAgIGNsaWVudFtrU29ja2V0XSxcbiAgICAgICAgY29udGVudExlbmd0aCxcbiAgICAgICAgZXhwZWN0c1BheWxvYWRcbiAgICAgIClcbiAgICB9IGVsc2UgaWYgKHV0aWwuaXNCdWZmZXIoYm9keSkpIHtcbiAgICAgIHdyaXRlQnVmZmVyKFxuICAgICAgICBhYm9ydCxcbiAgICAgICAgc3RyZWFtLFxuICAgICAgICBib2R5LFxuICAgICAgICBjbGllbnQsXG4gICAgICAgIHJlcXVlc3QsXG4gICAgICAgIGNsaWVudFtrU29ja2V0XSxcbiAgICAgICAgY29udGVudExlbmd0aCxcbiAgICAgICAgZXhwZWN0c1BheWxvYWRcbiAgICAgIClcbiAgICB9IGVsc2UgaWYgKHV0aWwuaXNCbG9iTGlrZShib2R5KSkge1xuICAgICAgaWYgKHR5cGVvZiBib2R5LnN0cmVhbSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICB3cml0ZUl0ZXJhYmxlKFxuICAgICAgICAgIGFib3J0LFxuICAgICAgICAgIHN0cmVhbSxcbiAgICAgICAgICBib2R5LnN0cmVhbSgpLFxuICAgICAgICAgIGNsaWVudCxcbiAgICAgICAgICByZXF1ZXN0LFxuICAgICAgICAgIGNsaWVudFtrU29ja2V0XSxcbiAgICAgICAgICBjb250ZW50TGVuZ3RoLFxuICAgICAgICAgIGV4cGVjdHNQYXlsb2FkXG4gICAgICAgIClcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHdyaXRlQmxvYihcbiAgICAgICAgICBhYm9ydCxcbiAgICAgICAgICBzdHJlYW0sXG4gICAgICAgICAgYm9keSxcbiAgICAgICAgICBjbGllbnQsXG4gICAgICAgICAgcmVxdWVzdCxcbiAgICAgICAgICBjbGllbnRba1NvY2tldF0sXG4gICAgICAgICAgY29udGVudExlbmd0aCxcbiAgICAgICAgICBleHBlY3RzUGF5bG9hZFxuICAgICAgICApXG4gICAgICB9XG4gICAgfSBlbHNlIGlmICh1dGlsLmlzU3RyZWFtKGJvZHkpKSB7XG4gICAgICB3cml0ZVN0cmVhbShcbiAgICAgICAgYWJvcnQsXG4gICAgICAgIGNsaWVudFtrU29ja2V0XSxcbiAgICAgICAgZXhwZWN0c1BheWxvYWQsXG4gICAgICAgIHN0cmVhbSxcbiAgICAgICAgYm9keSxcbiAgICAgICAgY2xpZW50LFxuICAgICAgICByZXF1ZXN0LFxuICAgICAgICBjb250ZW50TGVuZ3RoXG4gICAgICApXG4gICAgfSBlbHNlIGlmICh1dGlsLmlzSXRlcmFibGUoYm9keSkpIHtcbiAgICAgIHdyaXRlSXRlcmFibGUoXG4gICAgICAgIGFib3J0LFxuICAgICAgICBzdHJlYW0sXG4gICAgICAgIGJvZHksXG4gICAgICAgIGNsaWVudCxcbiAgICAgICAgcmVxdWVzdCxcbiAgICAgICAgY2xpZW50W2tTb2NrZXRdLFxuICAgICAgICBjb250ZW50TGVuZ3RoLFxuICAgICAgICBleHBlY3RzUGF5bG9hZFxuICAgICAgKVxuICAgIH0gZWxzZSB7XG4gICAgICBhc3NlcnQoZmFsc2UpXG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIHdyaXRlQnVmZmVyIChhYm9ydCwgaDJzdHJlYW0sIGJvZHksIGNsaWVudCwgcmVxdWVzdCwgc29ja2V0LCBjb250ZW50TGVuZ3RoLCBleHBlY3RzUGF5bG9hZCkge1xuICB0cnkge1xuICAgIGlmIChib2R5ICE9IG51bGwgJiYgdXRpbC5pc0J1ZmZlcihib2R5KSkge1xuICAgICAgYXNzZXJ0KGNvbnRlbnRMZW5ndGggPT09IGJvZHkuYnl0ZUxlbmd0aCwgJ2J1ZmZlciBib2R5IG11c3QgaGF2ZSBjb250ZW50IGxlbmd0aCcpXG4gICAgICBoMnN0cmVhbS5jb3JrKClcbiAgICAgIGgyc3RyZWFtLndyaXRlKGJvZHkpXG4gICAgICBoMnN0cmVhbS51bmNvcmsoKVxuICAgICAgaDJzdHJlYW0uZW5kKClcblxuICAgICAgcmVxdWVzdC5vbkJvZHlTZW50KGJvZHkpXG4gICAgfVxuXG4gICAgaWYgKCFleHBlY3RzUGF5bG9hZCkge1xuICAgICAgc29ja2V0W2tSZXNldF0gPSB0cnVlXG4gICAgfVxuXG4gICAgcmVxdWVzdC5vblJlcXVlc3RTZW50KClcbiAgICBjbGllbnRba1Jlc3VtZV0oKVxuICB9IGNhdGNoIChlcnJvcikge1xuICAgIGFib3J0KGVycm9yKVxuICB9XG59XG5cbmZ1bmN0aW9uIHdyaXRlU3RyZWFtIChhYm9ydCwgc29ja2V0LCBleHBlY3RzUGF5bG9hZCwgaDJzdHJlYW0sIGJvZHksIGNsaWVudCwgcmVxdWVzdCwgY29udGVudExlbmd0aCkge1xuICBhc3NlcnQoY29udGVudExlbmd0aCAhPT0gMCB8fCBjbGllbnRba1J1bm5pbmddID09PSAwLCAnc3RyZWFtIGJvZHkgY2Fubm90IGJlIHBpcGVsaW5lZCcpXG5cbiAgLy8gRm9yIEhUVFAvMiwgaXMgZW5vdWdoIHRvIHBpcGUgdGhlIHN0cmVhbVxuICBjb25zdCBwaXBlID0gcGlwZWxpbmUoXG4gICAgYm9keSxcbiAgICBoMnN0cmVhbSxcbiAgICAoZXJyKSA9PiB7XG4gICAgICBpZiAoZXJyKSB7XG4gICAgICAgIHV0aWwuZGVzdHJveShwaXBlLCBlcnIpXG4gICAgICAgIGFib3J0KGVycilcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHV0aWwucmVtb3ZlQWxsTGlzdGVuZXJzKHBpcGUpXG4gICAgICAgIHJlcXVlc3Qub25SZXF1ZXN0U2VudCgpXG5cbiAgICAgICAgaWYgKCFleHBlY3RzUGF5bG9hZCkge1xuICAgICAgICAgIHNvY2tldFtrUmVzZXRdID0gdHJ1ZVxuICAgICAgICB9XG5cbiAgICAgICAgY2xpZW50W2tSZXN1bWVdKClcbiAgICAgIH1cbiAgICB9XG4gIClcblxuICB1dGlsLmFkZExpc3RlbmVyKHBpcGUsICdkYXRhJywgb25QaXBlRGF0YSlcblxuICBmdW5jdGlvbiBvblBpcGVEYXRhIChjaHVuaykge1xuICAgIHJlcXVlc3Qub25Cb2R5U2VudChjaHVuaylcbiAgfVxufVxuXG5hc3luYyBmdW5jdGlvbiB3cml0ZUJsb2IgKGFib3J0LCBoMnN0cmVhbSwgYm9keSwgY2xpZW50LCByZXF1ZXN0LCBzb2NrZXQsIGNvbnRlbnRMZW5ndGgsIGV4cGVjdHNQYXlsb2FkKSB7XG4gIGFzc2VydChjb250ZW50TGVuZ3RoID09PSBib2R5LnNpemUsICdibG9iIGJvZHkgbXVzdCBoYXZlIGNvbnRlbnQgbGVuZ3RoJylcblxuICB0cnkge1xuICAgIGlmIChjb250ZW50TGVuZ3RoICE9IG51bGwgJiYgY29udGVudExlbmd0aCAhPT0gYm9keS5zaXplKSB7XG4gICAgICB0aHJvdyBuZXcgUmVxdWVzdENvbnRlbnRMZW5ndGhNaXNtYXRjaEVycm9yKClcbiAgICB9XG5cbiAgICBjb25zdCBidWZmZXIgPSBCdWZmZXIuZnJvbShhd2FpdCBib2R5LmFycmF5QnVmZmVyKCkpXG5cbiAgICBoMnN0cmVhbS5jb3JrKClcbiAgICBoMnN0cmVhbS53cml0ZShidWZmZXIpXG4gICAgaDJzdHJlYW0udW5jb3JrKClcbiAgICBoMnN0cmVhbS5lbmQoKVxuXG4gICAgcmVxdWVzdC5vbkJvZHlTZW50KGJ1ZmZlcilcbiAgICByZXF1ZXN0Lm9uUmVxdWVzdFNlbnQoKVxuXG4gICAgaWYgKCFleHBlY3RzUGF5bG9hZCkge1xuICAgICAgc29ja2V0W2tSZXNldF0gPSB0cnVlXG4gICAgfVxuXG4gICAgY2xpZW50W2tSZXN1bWVdKClcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgYWJvcnQoZXJyKVxuICB9XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHdyaXRlSXRlcmFibGUgKGFib3J0LCBoMnN0cmVhbSwgYm9keSwgY2xpZW50LCByZXF1ZXN0LCBzb2NrZXQsIGNvbnRlbnRMZW5ndGgsIGV4cGVjdHNQYXlsb2FkKSB7XG4gIGFzc2VydChjb250ZW50TGVuZ3RoICE9PSAwIHx8IGNsaWVudFtrUnVubmluZ10gPT09IDAsICdpdGVyYXRvciBib2R5IGNhbm5vdCBiZSBwaXBlbGluZWQnKVxuXG4gIGxldCBjYWxsYmFjayA9IG51bGxcbiAgZnVuY3Rpb24gb25EcmFpbiAoKSB7XG4gICAgaWYgKGNhbGxiYWNrKSB7XG4gICAgICBjb25zdCBjYiA9IGNhbGxiYWNrXG4gICAgICBjYWxsYmFjayA9IG51bGxcbiAgICAgIGNiKClcbiAgICB9XG4gIH1cblxuICBjb25zdCB3YWl0Rm9yRHJhaW4gPSAoKSA9PiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgYXNzZXJ0KGNhbGxiYWNrID09PSBudWxsKVxuXG4gICAgaWYgKHNvY2tldFtrRXJyb3JdKSB7XG4gICAgICByZWplY3Qoc29ja2V0W2tFcnJvcl0pXG4gICAgfSBlbHNlIHtcbiAgICAgIGNhbGxiYWNrID0gcmVzb2x2ZVxuICAgIH1cbiAgfSlcblxuICBoMnN0cmVhbVxuICAgIC5vbignY2xvc2UnLCBvbkRyYWluKVxuICAgIC5vbignZHJhaW4nLCBvbkRyYWluKVxuXG4gIHRyeSB7XG4gICAgLy8gSXQncyB1cCB0byB0aGUgdXNlciB0byBzb21laG93IGFib3J0IHRoZSBhc3luYyBpdGVyYWJsZS5cbiAgICBmb3IgYXdhaXQgKGNvbnN0IGNodW5rIG9mIGJvZHkpIHtcbiAgICAgIGlmIChzb2NrZXRba0Vycm9yXSkge1xuICAgICAgICB0aHJvdyBzb2NrZXRba0Vycm9yXVxuICAgICAgfVxuXG4gICAgICBjb25zdCByZXMgPSBoMnN0cmVhbS53cml0ZShjaHVuaylcbiAgICAgIHJlcXVlc3Qub25Cb2R5U2VudChjaHVuaylcbiAgICAgIGlmICghcmVzKSB7XG4gICAgICAgIGF3YWl0IHdhaXRGb3JEcmFpbigpXG4gICAgICB9XG4gICAgfVxuXG4gICAgaDJzdHJlYW0uZW5kKClcblxuICAgIHJlcXVlc3Qub25SZXF1ZXN0U2VudCgpXG5cbiAgICBpZiAoIWV4cGVjdHNQYXlsb2FkKSB7XG4gICAgICBzb2NrZXRba1Jlc2V0XSA9IHRydWVcbiAgICB9XG5cbiAgICBjbGllbnRba1Jlc3VtZV0oKVxuICB9IGNhdGNoIChlcnIpIHtcbiAgICBhYm9ydChlcnIpXG4gIH0gZmluYWxseSB7XG4gICAgaDJzdHJlYW1cbiAgICAgIC5vZmYoJ2Nsb3NlJywgb25EcmFpbilcbiAgICAgIC5vZmYoJ2RyYWluJywgb25EcmFpbilcbiAgfVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGNvbm5lY3RIMlxuIiwgIid1c2Ugc3RyaWN0J1xuXG5jb25zdCB1dGlsID0gcmVxdWlyZSgnLi4vY29yZS91dGlsJylcbmNvbnN0IHsga0JvZHlVc2VkIH0gPSByZXF1aXJlKCcuLi9jb3JlL3N5bWJvbHMnKVxuY29uc3QgYXNzZXJ0ID0gcmVxdWlyZSgnbm9kZTphc3NlcnQnKVxuY29uc3QgeyBJbnZhbGlkQXJndW1lbnRFcnJvciB9ID0gcmVxdWlyZSgnLi4vY29yZS9lcnJvcnMnKVxuY29uc3QgRUUgPSByZXF1aXJlKCdub2RlOmV2ZW50cycpXG5cbmNvbnN0IHJlZGlyZWN0YWJsZVN0YXR1c0NvZGVzID0gWzMwMCwgMzAxLCAzMDIsIDMwMywgMzA3LCAzMDhdXG5cbmNvbnN0IGtCb2R5ID0gU3ltYm9sKCdib2R5JylcblxuY2xhc3MgQm9keUFzeW5jSXRlcmFibGUge1xuICBjb25zdHJ1Y3RvciAoYm9keSkge1xuICAgIHRoaXNba0JvZHldID0gYm9keVxuICAgIHRoaXNba0JvZHlVc2VkXSA9IGZhbHNlXG4gIH1cblxuICBhc3luYyAqIFtTeW1ib2wuYXN5bmNJdGVyYXRvcl0gKCkge1xuICAgIGFzc2VydCghdGhpc1trQm9keVVzZWRdLCAnZGlzdHVyYmVkJylcbiAgICB0aGlzW2tCb2R5VXNlZF0gPSB0cnVlXG4gICAgeWllbGQgKiB0aGlzW2tCb2R5XVxuICB9XG59XG5cbmNsYXNzIFJlZGlyZWN0SGFuZGxlciB7XG4gIGNvbnN0cnVjdG9yIChkaXNwYXRjaCwgbWF4UmVkaXJlY3Rpb25zLCBvcHRzLCBoYW5kbGVyKSB7XG4gICAgaWYgKG1heFJlZGlyZWN0aW9ucyAhPSBudWxsICYmICghTnVtYmVyLmlzSW50ZWdlcihtYXhSZWRpcmVjdGlvbnMpIHx8IG1heFJlZGlyZWN0aW9ucyA8IDApKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50RXJyb3IoJ21heFJlZGlyZWN0aW9ucyBtdXN0IGJlIGEgcG9zaXRpdmUgbnVtYmVyJylcbiAgICB9XG5cbiAgICB1dGlsLnZhbGlkYXRlSGFuZGxlcihoYW5kbGVyLCBvcHRzLm1ldGhvZCwgb3B0cy51cGdyYWRlKVxuXG4gICAgdGhpcy5kaXNwYXRjaCA9IGRpc3BhdGNoXG4gICAgdGhpcy5sb2NhdGlvbiA9IG51bGxcbiAgICB0aGlzLmFib3J0ID0gbnVsbFxuICAgIHRoaXMub3B0cyA9IHsgLi4ub3B0cywgbWF4UmVkaXJlY3Rpb25zOiAwIH0gLy8gb3B0cyBtdXN0IGJlIGEgY29weVxuICAgIHRoaXMubWF4UmVkaXJlY3Rpb25zID0gbWF4UmVkaXJlY3Rpb25zXG4gICAgdGhpcy5oYW5kbGVyID0gaGFuZGxlclxuICAgIHRoaXMuaGlzdG9yeSA9IFtdXG4gICAgdGhpcy5yZWRpcmVjdGlvbkxpbWl0UmVhY2hlZCA9IGZhbHNlXG5cbiAgICBpZiAodXRpbC5pc1N0cmVhbSh0aGlzLm9wdHMuYm9keSkpIHtcbiAgICAgIC8vIFRPRE8gKGZpeCk6IFByb3ZpZGUgc29tZSB3YXkgZm9yIHRoZSB1c2VyIHRvIGNhY2hlIHRoZSBmaWxlIHRvIGUuZy4gL3RtcFxuICAgICAgLy8gc28gdGhhdCBpdCBjYW4gYmUgZGlzcGF0Y2hlZCBhZ2Fpbj9cbiAgICAgIC8vIFRPRE8gKGZpeCk6IERvIHdlIG5lZWQgMTAwLWV4cGVjdCBzdXBwb3J0IHRvIHByb3ZpZGUgYSB3YXkgdG8gZG8gdGhpcyBwcm9wZXJseT9cbiAgICAgIGlmICh1dGlsLmJvZHlMZW5ndGgodGhpcy5vcHRzLmJvZHkpID09PSAwKSB7XG4gICAgICAgIHRoaXMub3B0cy5ib2R5XG4gICAgICAgICAgLm9uKCdkYXRhJywgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgYXNzZXJ0KGZhbHNlKVxuICAgICAgICAgIH0pXG4gICAgICB9XG5cbiAgICAgIGlmICh0eXBlb2YgdGhpcy5vcHRzLmJvZHkucmVhZGFibGVEaWRSZWFkICE9PSAnYm9vbGVhbicpIHtcbiAgICAgICAgdGhpcy5vcHRzLmJvZHlba0JvZHlVc2VkXSA9IGZhbHNlXG4gICAgICAgIEVFLnByb3RvdHlwZS5vbi5jYWxsKHRoaXMub3B0cy5ib2R5LCAnZGF0YScsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICB0aGlzW2tCb2R5VXNlZF0gPSB0cnVlXG4gICAgICAgIH0pXG4gICAgICB9XG4gICAgfSBlbHNlIGlmICh0aGlzLm9wdHMuYm9keSAmJiB0eXBlb2YgdGhpcy5vcHRzLmJvZHkucGlwZVRvID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAvLyBUT0RPIChmaXgpOiBXZSBjYW4ndCBhY2Nlc3MgUmVhZGFibGVTdHJlYW0gaW50ZXJuYWwgc3RhdGVcbiAgICAgIC8vIHRvIGRldGVybWluZSB3aGV0aGVyIG9yIG5vdCBpdCBoYXMgYmVlbiBkaXN0dXJiZWQuIFRoaXMgaXMganVzdFxuICAgICAgLy8gYSB3b3JrYXJvdW5kLlxuICAgICAgdGhpcy5vcHRzLmJvZHkgPSBuZXcgQm9keUFzeW5jSXRlcmFibGUodGhpcy5vcHRzLmJvZHkpXG4gICAgfSBlbHNlIGlmIChcbiAgICAgIHRoaXMub3B0cy5ib2R5ICYmXG4gICAgICB0eXBlb2YgdGhpcy5vcHRzLmJvZHkgIT09ICdzdHJpbmcnICYmXG4gICAgICAhQXJyYXlCdWZmZXIuaXNWaWV3KHRoaXMub3B0cy5ib2R5KSAmJlxuICAgICAgdXRpbC5pc0l0ZXJhYmxlKHRoaXMub3B0cy5ib2R5KVxuICAgICkge1xuICAgICAgLy8gVE9ETzogU2hvdWxkIHdlIGFsbG93IHJlLXVzaW5nIGl0ZXJhYmxlIGlmICF0aGlzLm9wdHMuaWRlbXBvdGVudFxuICAgICAgLy8gb3IgdGhyb3VnaCBzb21lIG90aGVyIGZsYWc/XG4gICAgICB0aGlzLm9wdHMuYm9keSA9IG5ldyBCb2R5QXN5bmNJdGVyYWJsZSh0aGlzLm9wdHMuYm9keSlcbiAgICB9XG4gIH1cblxuICBvbkNvbm5lY3QgKGFib3J0KSB7XG4gICAgdGhpcy5hYm9ydCA9IGFib3J0XG4gICAgdGhpcy5oYW5kbGVyLm9uQ29ubmVjdChhYm9ydCwgeyBoaXN0b3J5OiB0aGlzLmhpc3RvcnkgfSlcbiAgfVxuXG4gIG9uVXBncmFkZSAoc3RhdHVzQ29kZSwgaGVhZGVycywgc29ja2V0KSB7XG4gICAgdGhpcy5oYW5kbGVyLm9uVXBncmFkZShzdGF0dXNDb2RlLCBoZWFkZXJzLCBzb2NrZXQpXG4gIH1cblxuICBvbkVycm9yIChlcnJvcikge1xuICAgIHRoaXMuaGFuZGxlci5vbkVycm9yKGVycm9yKVxuICB9XG5cbiAgb25IZWFkZXJzIChzdGF0dXNDb2RlLCBoZWFkZXJzLCByZXN1bWUsIHN0YXR1c1RleHQpIHtcbiAgICB0aGlzLmxvY2F0aW9uID0gdGhpcy5oaXN0b3J5Lmxlbmd0aCA+PSB0aGlzLm1heFJlZGlyZWN0aW9ucyB8fCB1dGlsLmlzRGlzdHVyYmVkKHRoaXMub3B0cy5ib2R5KVxuICAgICAgPyBudWxsXG4gICAgICA6IHBhcnNlTG9jYXRpb24oc3RhdHVzQ29kZSwgaGVhZGVycylcblxuICAgIGlmICh0aGlzLm9wdHMudGhyb3dPbk1heFJlZGlyZWN0ICYmIHRoaXMuaGlzdG9yeS5sZW5ndGggPj0gdGhpcy5tYXhSZWRpcmVjdGlvbnMpIHtcbiAgICAgIGlmICh0aGlzLnJlcXVlc3QpIHtcbiAgICAgICAgdGhpcy5yZXF1ZXN0LmFib3J0KG5ldyBFcnJvcignbWF4IHJlZGlyZWN0cycpKVxuICAgICAgfVxuXG4gICAgICB0aGlzLnJlZGlyZWN0aW9uTGltaXRSZWFjaGVkID0gdHJ1ZVxuICAgICAgdGhpcy5hYm9ydChuZXcgRXJyb3IoJ21heCByZWRpcmVjdHMnKSlcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGlmICh0aGlzLm9wdHMub3JpZ2luKSB7XG4gICAgICB0aGlzLmhpc3RvcnkucHVzaChuZXcgVVJMKHRoaXMub3B0cy5wYXRoLCB0aGlzLm9wdHMub3JpZ2luKSlcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMubG9jYXRpb24pIHtcbiAgICAgIHJldHVybiB0aGlzLmhhbmRsZXIub25IZWFkZXJzKHN0YXR1c0NvZGUsIGhlYWRlcnMsIHJlc3VtZSwgc3RhdHVzVGV4dClcbiAgICB9XG5cbiAgICBjb25zdCB7IG9yaWdpbiwgcGF0aG5hbWUsIHNlYXJjaCB9ID0gdXRpbC5wYXJzZVVSTChuZXcgVVJMKHRoaXMubG9jYXRpb24sIHRoaXMub3B0cy5vcmlnaW4gJiYgbmV3IFVSTCh0aGlzLm9wdHMucGF0aCwgdGhpcy5vcHRzLm9yaWdpbikpKVxuICAgIGNvbnN0IHBhdGggPSBzZWFyY2ggPyBgJHtwYXRobmFtZX0ke3NlYXJjaH1gIDogcGF0aG5hbWVcblxuICAgIC8vIFJlbW92ZSBoZWFkZXJzIHJlZmVycmluZyB0byB0aGUgb3JpZ2luYWwgVVJMLlxuICAgIC8vIEJ5IGRlZmF1bHQgaXQgaXMgSG9zdCBvbmx5LCB1bmxlc3MgaXQncyBhIDMwMyAoc2VlIGJlbG93KSwgd2hpY2ggcmVtb3ZlcyBhbHNvIGFsbCBDb250ZW50LSogaGVhZGVycy5cbiAgICAvLyBodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjNzIzMSNzZWN0aW9uLTYuNFxuICAgIHRoaXMub3B0cy5oZWFkZXJzID0gY2xlYW5SZXF1ZXN0SGVhZGVycyh0aGlzLm9wdHMuaGVhZGVycywgc3RhdHVzQ29kZSA9PT0gMzAzLCB0aGlzLm9wdHMub3JpZ2luICE9PSBvcmlnaW4pXG4gICAgdGhpcy5vcHRzLnBhdGggPSBwYXRoXG4gICAgdGhpcy5vcHRzLm9yaWdpbiA9IG9yaWdpblxuICAgIHRoaXMub3B0cy5tYXhSZWRpcmVjdGlvbnMgPSAwXG4gICAgdGhpcy5vcHRzLnF1ZXJ5ID0gbnVsbFxuXG4gICAgLy8gaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzcyMzEjc2VjdGlvbi02LjQuNFxuICAgIC8vIEluIGNhc2Ugb2YgSFRUUCAzMDMsIGFsd2F5cyByZXBsYWNlIG1ldGhvZCB0byBiZSBlaXRoZXIgSEVBRCBvciBHRVRcbiAgICBpZiAoc3RhdHVzQ29kZSA9PT0gMzAzICYmIHRoaXMub3B0cy5tZXRob2QgIT09ICdIRUFEJykge1xuICAgICAgdGhpcy5vcHRzLm1ldGhvZCA9ICdHRVQnXG4gICAgICB0aGlzLm9wdHMuYm9keSA9IG51bGxcbiAgICB9XG4gIH1cblxuICBvbkRhdGEgKGNodW5rKSB7XG4gICAgaWYgKHRoaXMubG9jYXRpb24pIHtcbiAgICAgIC8qXG4gICAgICAgIGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM3MjMxI3NlY3Rpb24tNi40XG5cbiAgICAgICAgVExEUjogdW5kaWNpIGFsd2F5cyBpZ25vcmVzIDN4eCByZXNwb25zZSBib2RpZXMuXG5cbiAgICAgICAgUmVkaXJlY3Rpb24gaXMgdXNlZCB0byBzZXJ2ZSB0aGUgcmVxdWVzdGVkIHJlc291cmNlIGZyb20gYW5vdGhlciBVUkwsIHNvIGl0IGlzIGFzc3VtZXMgdGhhdFxuICAgICAgICBubyBib2R5IGlzIGdlbmVyYXRlZCAoYW5kIHRodXMgY2FuIGJlIGlnbm9yZWQpLiBFdmVuIHRob3VnaCBnZW5lcmF0aW5nIGEgYm9keSBpcyBub3QgcHJvaGliaXRlZC5cblxuICAgICAgICBGb3Igc3RhdHVzIDMwMSwgMzAyLCAzMDMsIDMwNyBhbmQgMzA4ICh0aGUgbGF0dGVyIGZyb20gUkZDIDcyMzgpLCB0aGUgc3BlY3MgbWVudGlvbiB0aGF0IHRoZSBib2R5IHVzdWFsbHlcbiAgICAgICAgKHdoaWNoIG1lYW5zIGl0J3Mgb3B0aW9uYWwgYW5kIG5vdCBtYW5kYXRlZCkgY29udGFpbiBqdXN0IGFuIGh5cGVybGluayB0byB0aGUgdmFsdWUgb2ZcbiAgICAgICAgdGhlIExvY2F0aW9uIHJlc3BvbnNlIGhlYWRlciwgc28gdGhlIGJvZHkgY2FuIGJlIGlnbm9yZWQgc2FmZWx5LlxuXG4gICAgICAgIEZvciBzdGF0dXMgMzAwLCB3aGljaCBpcyBcIk11bHRpcGxlIENob2ljZXNcIiwgdGhlIHNwZWMgbWVudGlvbnMgYm90aCBnZW5lcmF0aW5nIGEgTG9jYXRpb25cbiAgICAgICAgcmVzcG9uc2UgaGVhZGVyIEFORCBhIHJlc3BvbnNlIGJvZHkgd2l0aCB0aGUgb3RoZXIgcG9zc2libGUgbG9jYXRpb24gdG8gZm9sbG93LlxuICAgICAgICBTaW5jZSB0aGUgc3BlYyBleHBsaWNpdGx5IGNob29zZXMgbm90IHRvIHNwZWNpZnkgYSBmb3JtYXQgZm9yIHN1Y2ggYm9keSBhbmQgbGVhdmUgaXQgdG9cbiAgICAgICAgc2VydmVycyBhbmQgYnJvd3NlcnMgaW1wbGVtZW50b3JzLCB3ZSBpZ25vcmUgdGhlIGJvZHkgYXMgdGhlcmUgaXMgbm8gc3BlY2lmaWVkIHdheSB0byBldmVudHVhbGx5IHBhcnNlIGl0LlxuICAgICAgKi9cbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRoaXMuaGFuZGxlci5vbkRhdGEoY2h1bmspXG4gICAgfVxuICB9XG5cbiAgb25Db21wbGV0ZSAodHJhaWxlcnMpIHtcbiAgICBpZiAodGhpcy5sb2NhdGlvbikge1xuICAgICAgLypcbiAgICAgICAgaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzcyMzEjc2VjdGlvbi02LjRcblxuICAgICAgICBUTERSOiB1bmRpY2kgYWx3YXlzIGlnbm9yZXMgM3h4IHJlc3BvbnNlIHRyYWlsZXJzIGFzIHRoZXkgYXJlIG5vdCBleHBlY3RlZCBpbiBjYXNlIG9mIHJlZGlyZWN0aW9uc1xuICAgICAgICBhbmQgbmVpdGhlciBhcmUgdXNlZnVsIGlmIHByZXNlbnQuXG5cbiAgICAgICAgU2VlIGNvbW1lbnQgb24gb25EYXRhIG1ldGhvZCBhYm92ZSBmb3IgbW9yZSBkZXRhaWxlZCBpbmZvcm1hdGlvbi5cbiAgICAgICovXG5cbiAgICAgIHRoaXMubG9jYXRpb24gPSBudWxsXG4gICAgICB0aGlzLmFib3J0ID0gbnVsbFxuXG4gICAgICB0aGlzLmRpc3BhdGNoKHRoaXMub3B0cywgdGhpcylcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5oYW5kbGVyLm9uQ29tcGxldGUodHJhaWxlcnMpXG4gICAgfVxuICB9XG5cbiAgb25Cb2R5U2VudCAoY2h1bmspIHtcbiAgICBpZiAodGhpcy5oYW5kbGVyLm9uQm9keVNlbnQpIHtcbiAgICAgIHRoaXMuaGFuZGxlci5vbkJvZHlTZW50KGNodW5rKVxuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBwYXJzZUxvY2F0aW9uIChzdGF0dXNDb2RlLCBoZWFkZXJzKSB7XG4gIGlmIChyZWRpcmVjdGFibGVTdGF0dXNDb2Rlcy5pbmRleE9mKHN0YXR1c0NvZGUpID09PSAtMSkge1xuICAgIHJldHVybiBudWxsXG4gIH1cblxuICBmb3IgKGxldCBpID0gMDsgaSA8IGhlYWRlcnMubGVuZ3RoOyBpICs9IDIpIHtcbiAgICBpZiAoaGVhZGVyc1tpXS5sZW5ndGggPT09IDggJiYgdXRpbC5oZWFkZXJOYW1lVG9TdHJpbmcoaGVhZGVyc1tpXSkgPT09ICdsb2NhdGlvbicpIHtcbiAgICAgIHJldHVybiBoZWFkZXJzW2kgKyAxXVxuICAgIH1cbiAgfVxufVxuXG4vLyBodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjNzIzMSNzZWN0aW9uLTYuNC40XG5mdW5jdGlvbiBzaG91bGRSZW1vdmVIZWFkZXIgKGhlYWRlciwgcmVtb3ZlQ29udGVudCwgdW5rbm93bk9yaWdpbikge1xuICBpZiAoaGVhZGVyLmxlbmd0aCA9PT0gNCkge1xuICAgIHJldHVybiB1dGlsLmhlYWRlck5hbWVUb1N0cmluZyhoZWFkZXIpID09PSAnaG9zdCdcbiAgfVxuICBpZiAocmVtb3ZlQ29udGVudCAmJiB1dGlsLmhlYWRlck5hbWVUb1N0cmluZyhoZWFkZXIpLnN0YXJ0c1dpdGgoJ2NvbnRlbnQtJykpIHtcbiAgICByZXR1cm4gdHJ1ZVxuICB9XG4gIGlmICh1bmtub3duT3JpZ2luICYmIChoZWFkZXIubGVuZ3RoID09PSAxMyB8fCBoZWFkZXIubGVuZ3RoID09PSA2IHx8IGhlYWRlci5sZW5ndGggPT09IDE5KSkge1xuICAgIGNvbnN0IG5hbWUgPSB1dGlsLmhlYWRlck5hbWVUb1N0cmluZyhoZWFkZXIpXG4gICAgcmV0dXJuIG5hbWUgPT09ICdhdXRob3JpemF0aW9uJyB8fCBuYW1lID09PSAnY29va2llJyB8fCBuYW1lID09PSAncHJveHktYXV0aG9yaXphdGlvbidcbiAgfVxuICByZXR1cm4gZmFsc2Vcbn1cblxuLy8gaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzcyMzEjc2VjdGlvbi02LjRcbmZ1bmN0aW9uIGNsZWFuUmVxdWVzdEhlYWRlcnMgKGhlYWRlcnMsIHJlbW92ZUNvbnRlbnQsIHVua25vd25PcmlnaW4pIHtcbiAgY29uc3QgcmV0ID0gW11cbiAgaWYgKEFycmF5LmlzQXJyYXkoaGVhZGVycykpIHtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGhlYWRlcnMubGVuZ3RoOyBpICs9IDIpIHtcbiAgICAgIGlmICghc2hvdWxkUmVtb3ZlSGVhZGVyKGhlYWRlcnNbaV0sIHJlbW92ZUNvbnRlbnQsIHVua25vd25PcmlnaW4pKSB7XG4gICAgICAgIHJldC5wdXNoKGhlYWRlcnNbaV0sIGhlYWRlcnNbaSArIDFdKVxuICAgICAgfVxuICAgIH1cbiAgfSBlbHNlIGlmIChoZWFkZXJzICYmIHR5cGVvZiBoZWFkZXJzID09PSAnb2JqZWN0Jykge1xuICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKGhlYWRlcnMpKSB7XG4gICAgICBpZiAoIXNob3VsZFJlbW92ZUhlYWRlcihrZXksIHJlbW92ZUNvbnRlbnQsIHVua25vd25PcmlnaW4pKSB7XG4gICAgICAgIHJldC5wdXNoKGtleSwgaGVhZGVyc1trZXldKVxuICAgICAgfVxuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBhc3NlcnQoaGVhZGVycyA9PSBudWxsLCAnaGVhZGVycyBtdXN0IGJlIGFuIG9iamVjdCBvciBhbiBhcnJheScpXG4gIH1cbiAgcmV0dXJuIHJldFxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IFJlZGlyZWN0SGFuZGxlclxuIiwgIid1c2Ugc3RyaWN0J1xuXG5jb25zdCBSZWRpcmVjdEhhbmRsZXIgPSByZXF1aXJlKCcuLi9oYW5kbGVyL3JlZGlyZWN0LWhhbmRsZXInKVxuXG5mdW5jdGlvbiBjcmVhdGVSZWRpcmVjdEludGVyY2VwdG9yICh7IG1heFJlZGlyZWN0aW9uczogZGVmYXVsdE1heFJlZGlyZWN0aW9ucyB9KSB7XG4gIHJldHVybiAoZGlzcGF0Y2gpID0+IHtcbiAgICByZXR1cm4gZnVuY3Rpb24gSW50ZXJjZXB0IChvcHRzLCBoYW5kbGVyKSB7XG4gICAgICBjb25zdCB7IG1heFJlZGlyZWN0aW9ucyA9IGRlZmF1bHRNYXhSZWRpcmVjdGlvbnMgfSA9IG9wdHNcblxuICAgICAgaWYgKCFtYXhSZWRpcmVjdGlvbnMpIHtcbiAgICAgICAgcmV0dXJuIGRpc3BhdGNoKG9wdHMsIGhhbmRsZXIpXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHJlZGlyZWN0SGFuZGxlciA9IG5ldyBSZWRpcmVjdEhhbmRsZXIoZGlzcGF0Y2gsIG1heFJlZGlyZWN0aW9ucywgb3B0cywgaGFuZGxlcilcbiAgICAgIG9wdHMgPSB7IC4uLm9wdHMsIG1heFJlZGlyZWN0aW9uczogMCB9IC8vIFN0b3Agc3ViIGRpc3BhdGNoZXIgZnJvbSBhbHNvIHJlZGlyZWN0aW5nLlxuICAgICAgcmV0dXJuIGRpc3BhdGNoKG9wdHMsIHJlZGlyZWN0SGFuZGxlcilcbiAgICB9XG4gIH1cbn1cblxubW9kdWxlLmV4cG9ydHMgPSBjcmVhdGVSZWRpcmVjdEludGVyY2VwdG9yXG4iLCAiLy8gQHRzLWNoZWNrXG5cbid1c2Ugc3RyaWN0J1xuXG5jb25zdCBhc3NlcnQgPSByZXF1aXJlKCdub2RlOmFzc2VydCcpXG5jb25zdCBuZXQgPSByZXF1aXJlKCdub2RlOm5ldCcpXG5jb25zdCBodHRwID0gcmVxdWlyZSgnbm9kZTpodHRwJylcbmNvbnN0IHV0aWwgPSByZXF1aXJlKCcuLi9jb3JlL3V0aWwuanMnKVxuY29uc3QgeyBjaGFubmVscyB9ID0gcmVxdWlyZSgnLi4vY29yZS9kaWFnbm9zdGljcy5qcycpXG5jb25zdCBSZXF1ZXN0ID0gcmVxdWlyZSgnLi4vY29yZS9yZXF1ZXN0LmpzJylcbmNvbnN0IERpc3BhdGNoZXJCYXNlID0gcmVxdWlyZSgnLi9kaXNwYXRjaGVyLWJhc2UnKVxuY29uc3Qge1xuICBJbnZhbGlkQXJndW1lbnRFcnJvcixcbiAgSW5mb3JtYXRpb25hbEVycm9yLFxuICBDbGllbnREZXN0cm95ZWRFcnJvclxufSA9IHJlcXVpcmUoJy4uL2NvcmUvZXJyb3JzLmpzJylcbmNvbnN0IGJ1aWxkQ29ubmVjdG9yID0gcmVxdWlyZSgnLi4vY29yZS9jb25uZWN0LmpzJylcbmNvbnN0IHtcbiAga1VybCxcbiAga1NlcnZlck5hbWUsXG4gIGtDbGllbnQsXG4gIGtCdXN5LFxuICBrQ29ubmVjdCxcbiAga1Jlc3VtaW5nLFxuICBrUnVubmluZyxcbiAga1BlbmRpbmcsXG4gIGtTaXplLFxuICBrUXVldWUsXG4gIGtDb25uZWN0ZWQsXG4gIGtDb25uZWN0aW5nLFxuICBrTmVlZERyYWluLFxuICBrS2VlcEFsaXZlRGVmYXVsdFRpbWVvdXQsXG4gIGtIb3N0SGVhZGVyLFxuICBrUGVuZGluZ0lkeCxcbiAga1J1bm5pbmdJZHgsXG4gIGtFcnJvcixcbiAga1BpcGVsaW5pbmcsXG4gIGtLZWVwQWxpdmVUaW1lb3V0VmFsdWUsXG4gIGtNYXhIZWFkZXJzU2l6ZSxcbiAga0tlZXBBbGl2ZU1heFRpbWVvdXQsXG4gIGtLZWVwQWxpdmVUaW1lb3V0VGhyZXNob2xkLFxuICBrSGVhZGVyc1RpbWVvdXQsXG4gIGtCb2R5VGltZW91dCxcbiAga1N0cmljdENvbnRlbnRMZW5ndGgsXG4gIGtDb25uZWN0b3IsXG4gIGtNYXhSZWRpcmVjdGlvbnMsXG4gIGtNYXhSZXF1ZXN0cyxcbiAga0NvdW50ZXIsXG4gIGtDbG9zZSxcbiAga0Rlc3Ryb3ksXG4gIGtEaXNwYXRjaCxcbiAga0ludGVyY2VwdG9ycyxcbiAga0xvY2FsQWRkcmVzcyxcbiAga01heFJlc3BvbnNlU2l6ZSxcbiAga09uRXJyb3IsXG4gIGtIVFRQQ29udGV4dCxcbiAga01heENvbmN1cnJlbnRTdHJlYW1zLFxuICBrUmVzdW1lXG59ID0gcmVxdWlyZSgnLi4vY29yZS9zeW1ib2xzLmpzJylcbmNvbnN0IGNvbm5lY3RIMSA9IHJlcXVpcmUoJy4vY2xpZW50LWgxLmpzJylcbmNvbnN0IGNvbm5lY3RIMiA9IHJlcXVpcmUoJy4vY2xpZW50LWgyLmpzJylcbmxldCBkZXByZWNhdGVkSW50ZXJjZXB0b3JXYXJuZWQgPSBmYWxzZVxuXG5jb25zdCBrQ2xvc2VkUmVzb2x2ZSA9IFN5bWJvbCgna0Nsb3NlZFJlc29sdmUnKVxuXG5jb25zdCBub29wID0gKCkgPT4ge31cblxuZnVuY3Rpb24gZ2V0UGlwZWxpbmluZyAoY2xpZW50KSB7XG4gIHJldHVybiBjbGllbnRba1BpcGVsaW5pbmddID8/IGNsaWVudFtrSFRUUENvbnRleHRdPy5kZWZhdWx0UGlwZWxpbmluZyA/PyAxXG59XG5cbi8qKlxuICogQHR5cGUge2ltcG9ydCgnLi4vLi4vdHlwZXMvY2xpZW50LmpzJykuZGVmYXVsdH1cbiAqL1xuY2xhc3MgQ2xpZW50IGV4dGVuZHMgRGlzcGF0Y2hlckJhc2Uge1xuICAvKipcbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd8VVJMfSB1cmxcbiAgICogQHBhcmFtIHtpbXBvcnQoJy4uLy4uL3R5cGVzL2NsaWVudC5qcycpLkNsaWVudC5PcHRpb25zfSBvcHRpb25zXG4gICAqL1xuICBjb25zdHJ1Y3RvciAodXJsLCB7XG4gICAgaW50ZXJjZXB0b3JzLFxuICAgIG1heEhlYWRlclNpemUsXG4gICAgaGVhZGVyc1RpbWVvdXQsXG4gICAgc29ja2V0VGltZW91dCxcbiAgICByZXF1ZXN0VGltZW91dCxcbiAgICBjb25uZWN0VGltZW91dCxcbiAgICBib2R5VGltZW91dCxcbiAgICBpZGxlVGltZW91dCxcbiAgICBrZWVwQWxpdmUsXG4gICAga2VlcEFsaXZlVGltZW91dCxcbiAgICBtYXhLZWVwQWxpdmVUaW1lb3V0LFxuICAgIGtlZXBBbGl2ZU1heFRpbWVvdXQsXG4gICAga2VlcEFsaXZlVGltZW91dFRocmVzaG9sZCxcbiAgICBzb2NrZXRQYXRoLFxuICAgIHBpcGVsaW5pbmcsXG4gICAgdGxzLFxuICAgIHN0cmljdENvbnRlbnRMZW5ndGgsXG4gICAgbWF4Q2FjaGVkU2Vzc2lvbnMsXG4gICAgbWF4UmVkaXJlY3Rpb25zLFxuICAgIGNvbm5lY3QsXG4gICAgbWF4UmVxdWVzdHNQZXJDbGllbnQsXG4gICAgbG9jYWxBZGRyZXNzLFxuICAgIG1heFJlc3BvbnNlU2l6ZSxcbiAgICBhdXRvU2VsZWN0RmFtaWx5LFxuICAgIGF1dG9TZWxlY3RGYW1pbHlBdHRlbXB0VGltZW91dCxcbiAgICAvLyBoMlxuICAgIG1heENvbmN1cnJlbnRTdHJlYW1zLFxuICAgIGFsbG93SDJcbiAgfSA9IHt9KSB7XG4gICAgc3VwZXIoKVxuXG4gICAgaWYgKGtlZXBBbGl2ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50RXJyb3IoJ3Vuc3VwcG9ydGVkIGtlZXBBbGl2ZSwgdXNlIHBpcGVsaW5pbmc9MCBpbnN0ZWFkJylcbiAgICB9XG5cbiAgICBpZiAoc29ja2V0VGltZW91dCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50RXJyb3IoJ3Vuc3VwcG9ydGVkIHNvY2tldFRpbWVvdXQsIHVzZSBoZWFkZXJzVGltZW91dCAmIGJvZHlUaW1lb3V0IGluc3RlYWQnKVxuICAgIH1cblxuICAgIGlmIChyZXF1ZXN0VGltZW91dCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50RXJyb3IoJ3Vuc3VwcG9ydGVkIHJlcXVlc3RUaW1lb3V0LCB1c2UgaGVhZGVyc1RpbWVvdXQgJiBib2R5VGltZW91dCBpbnN0ZWFkJylcbiAgICB9XG5cbiAgICBpZiAoaWRsZVRpbWVvdXQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudEVycm9yKCd1bnN1cHBvcnRlZCBpZGxlVGltZW91dCwgdXNlIGtlZXBBbGl2ZVRpbWVvdXQgaW5zdGVhZCcpXG4gICAgfVxuXG4gICAgaWYgKG1heEtlZXBBbGl2ZVRpbWVvdXQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudEVycm9yKCd1bnN1cHBvcnRlZCBtYXhLZWVwQWxpdmVUaW1lb3V0LCB1c2Uga2VlcEFsaXZlTWF4VGltZW91dCBpbnN0ZWFkJylcbiAgICB9XG5cbiAgICBpZiAobWF4SGVhZGVyU2l6ZSAhPSBudWxsICYmICFOdW1iZXIuaXNGaW5pdGUobWF4SGVhZGVyU2l6ZSkpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRFcnJvcignaW52YWxpZCBtYXhIZWFkZXJTaXplJylcbiAgICB9XG5cbiAgICBpZiAoc29ja2V0UGF0aCAhPSBudWxsICYmIHR5cGVvZiBzb2NrZXRQYXRoICE9PSAnc3RyaW5nJykge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudEVycm9yKCdpbnZhbGlkIHNvY2tldFBhdGgnKVxuICAgIH1cblxuICAgIGlmIChjb25uZWN0VGltZW91dCAhPSBudWxsICYmICghTnVtYmVyLmlzRmluaXRlKGNvbm5lY3RUaW1lb3V0KSB8fCBjb25uZWN0VGltZW91dCA8IDApKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50RXJyb3IoJ2ludmFsaWQgY29ubmVjdFRpbWVvdXQnKVxuICAgIH1cblxuICAgIGlmIChrZWVwQWxpdmVUaW1lb3V0ICE9IG51bGwgJiYgKCFOdW1iZXIuaXNGaW5pdGUoa2VlcEFsaXZlVGltZW91dCkgfHwga2VlcEFsaXZlVGltZW91dCA8PSAwKSkge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudEVycm9yKCdpbnZhbGlkIGtlZXBBbGl2ZVRpbWVvdXQnKVxuICAgIH1cblxuICAgIGlmIChrZWVwQWxpdmVNYXhUaW1lb3V0ICE9IG51bGwgJiYgKCFOdW1iZXIuaXNGaW5pdGUoa2VlcEFsaXZlTWF4VGltZW91dCkgfHwga2VlcEFsaXZlTWF4VGltZW91dCA8PSAwKSkge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudEVycm9yKCdpbnZhbGlkIGtlZXBBbGl2ZU1heFRpbWVvdXQnKVxuICAgIH1cblxuICAgIGlmIChrZWVwQWxpdmVUaW1lb3V0VGhyZXNob2xkICE9IG51bGwgJiYgIU51bWJlci5pc0Zpbml0ZShrZWVwQWxpdmVUaW1lb3V0VGhyZXNob2xkKSkge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudEVycm9yKCdpbnZhbGlkIGtlZXBBbGl2ZVRpbWVvdXRUaHJlc2hvbGQnKVxuICAgIH1cblxuICAgIGlmIChoZWFkZXJzVGltZW91dCAhPSBudWxsICYmICghTnVtYmVyLmlzSW50ZWdlcihoZWFkZXJzVGltZW91dCkgfHwgaGVhZGVyc1RpbWVvdXQgPCAwKSkge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudEVycm9yKCdoZWFkZXJzVGltZW91dCBtdXN0IGJlIGEgcG9zaXRpdmUgaW50ZWdlciBvciB6ZXJvJylcbiAgICB9XG5cbiAgICBpZiAoYm9keVRpbWVvdXQgIT0gbnVsbCAmJiAoIU51bWJlci5pc0ludGVnZXIoYm9keVRpbWVvdXQpIHx8IGJvZHlUaW1lb3V0IDwgMCkpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRFcnJvcignYm9keVRpbWVvdXQgbXVzdCBiZSBhIHBvc2l0aXZlIGludGVnZXIgb3IgemVybycpXG4gICAgfVxuXG4gICAgaWYgKGNvbm5lY3QgIT0gbnVsbCAmJiB0eXBlb2YgY29ubmVjdCAhPT0gJ2Z1bmN0aW9uJyAmJiB0eXBlb2YgY29ubmVjdCAhPT0gJ29iamVjdCcpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRFcnJvcignY29ubmVjdCBtdXN0IGJlIGEgZnVuY3Rpb24gb3IgYW4gb2JqZWN0JylcbiAgICB9XG5cbiAgICBpZiAobWF4UmVkaXJlY3Rpb25zICE9IG51bGwgJiYgKCFOdW1iZXIuaXNJbnRlZ2VyKG1heFJlZGlyZWN0aW9ucykgfHwgbWF4UmVkaXJlY3Rpb25zIDwgMCkpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRFcnJvcignbWF4UmVkaXJlY3Rpb25zIG11c3QgYmUgYSBwb3NpdGl2ZSBudW1iZXInKVxuICAgIH1cblxuICAgIGlmIChtYXhSZXF1ZXN0c1BlckNsaWVudCAhPSBudWxsICYmICghTnVtYmVyLmlzSW50ZWdlcihtYXhSZXF1ZXN0c1BlckNsaWVudCkgfHwgbWF4UmVxdWVzdHNQZXJDbGllbnQgPCAwKSkge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudEVycm9yKCdtYXhSZXF1ZXN0c1BlckNsaWVudCBtdXN0IGJlIGEgcG9zaXRpdmUgbnVtYmVyJylcbiAgICB9XG5cbiAgICBpZiAobG9jYWxBZGRyZXNzICE9IG51bGwgJiYgKHR5cGVvZiBsb2NhbEFkZHJlc3MgIT09ICdzdHJpbmcnIHx8IG5ldC5pc0lQKGxvY2FsQWRkcmVzcykgPT09IDApKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50RXJyb3IoJ2xvY2FsQWRkcmVzcyBtdXN0IGJlIHZhbGlkIHN0cmluZyBJUCBhZGRyZXNzJylcbiAgICB9XG5cbiAgICBpZiAobWF4UmVzcG9uc2VTaXplICE9IG51bGwgJiYgKCFOdW1iZXIuaXNJbnRlZ2VyKG1heFJlc3BvbnNlU2l6ZSkgfHwgbWF4UmVzcG9uc2VTaXplIDwgLTEpKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50RXJyb3IoJ21heFJlc3BvbnNlU2l6ZSBtdXN0IGJlIGEgcG9zaXRpdmUgbnVtYmVyJylcbiAgICB9XG5cbiAgICBpZiAoXG4gICAgICBhdXRvU2VsZWN0RmFtaWx5QXR0ZW1wdFRpbWVvdXQgIT0gbnVsbCAmJlxuICAgICAgKCFOdW1iZXIuaXNJbnRlZ2VyKGF1dG9TZWxlY3RGYW1pbHlBdHRlbXB0VGltZW91dCkgfHwgYXV0b1NlbGVjdEZhbWlseUF0dGVtcHRUaW1lb3V0IDwgLTEpXG4gICAgKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50RXJyb3IoJ2F1dG9TZWxlY3RGYW1pbHlBdHRlbXB0VGltZW91dCBtdXN0IGJlIGEgcG9zaXRpdmUgbnVtYmVyJylcbiAgICB9XG5cbiAgICAvLyBoMlxuICAgIGlmIChhbGxvd0gyICE9IG51bGwgJiYgdHlwZW9mIGFsbG93SDIgIT09ICdib29sZWFuJykge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudEVycm9yKCdhbGxvd0gyIG11c3QgYmUgYSB2YWxpZCBib29sZWFuIHZhbHVlJylcbiAgICB9XG5cbiAgICBpZiAobWF4Q29uY3VycmVudFN0cmVhbXMgIT0gbnVsbCAmJiAodHlwZW9mIG1heENvbmN1cnJlbnRTdHJlYW1zICE9PSAnbnVtYmVyJyB8fCBtYXhDb25jdXJyZW50U3RyZWFtcyA8IDEpKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50RXJyb3IoJ21heENvbmN1cnJlbnRTdHJlYW1zIG11c3QgYmUgYSBwb3NpdGl2ZSBpbnRlZ2VyLCBncmVhdGVyIHRoYW4gMCcpXG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBjb25uZWN0ICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICBjb25uZWN0ID0gYnVpbGRDb25uZWN0b3Ioe1xuICAgICAgICAuLi50bHMsXG4gICAgICAgIG1heENhY2hlZFNlc3Npb25zLFxuICAgICAgICBhbGxvd0gyLFxuICAgICAgICBzb2NrZXRQYXRoLFxuICAgICAgICB0aW1lb3V0OiBjb25uZWN0VGltZW91dCxcbiAgICAgICAgLi4uKGF1dG9TZWxlY3RGYW1pbHkgPyB7IGF1dG9TZWxlY3RGYW1pbHksIGF1dG9TZWxlY3RGYW1pbHlBdHRlbXB0VGltZW91dCB9IDogdW5kZWZpbmVkKSxcbiAgICAgICAgLi4uY29ubmVjdFxuICAgICAgfSlcbiAgICB9XG5cbiAgICBpZiAoaW50ZXJjZXB0b3JzPy5DbGllbnQgJiYgQXJyYXkuaXNBcnJheShpbnRlcmNlcHRvcnMuQ2xpZW50KSkge1xuICAgICAgdGhpc1trSW50ZXJjZXB0b3JzXSA9IGludGVyY2VwdG9ycy5DbGllbnRcbiAgICAgIGlmICghZGVwcmVjYXRlZEludGVyY2VwdG9yV2FybmVkKSB7XG4gICAgICAgIGRlcHJlY2F0ZWRJbnRlcmNlcHRvcldhcm5lZCA9IHRydWVcbiAgICAgICAgcHJvY2Vzcy5lbWl0V2FybmluZygnQ2xpZW50Lk9wdGlvbnMjaW50ZXJjZXB0b3IgaXMgZGVwcmVjYXRlZC4gVXNlIERpc3BhdGNoZXIjY29tcG9zZSBpbnN0ZWFkLicsIHtcbiAgICAgICAgICBjb2RlOiAnVU5ESUNJLUNMSUVOVC1JTlRFUkNFUFRPUi1ERVBSRUNBVEVEJ1xuICAgICAgICB9KVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzW2tJbnRlcmNlcHRvcnNdID0gW2NyZWF0ZVJlZGlyZWN0SW50ZXJjZXB0b3IoeyBtYXhSZWRpcmVjdGlvbnMgfSldXG4gICAgfVxuXG4gICAgdGhpc1trVXJsXSA9IHV0aWwucGFyc2VPcmlnaW4odXJsKVxuICAgIHRoaXNba0Nvbm5lY3Rvcl0gPSBjb25uZWN0XG4gICAgdGhpc1trUGlwZWxpbmluZ10gPSBwaXBlbGluaW5nICE9IG51bGwgPyBwaXBlbGluaW5nIDogMVxuICAgIHRoaXNba01heEhlYWRlcnNTaXplXSA9IG1heEhlYWRlclNpemUgfHwgaHR0cC5tYXhIZWFkZXJTaXplXG4gICAgdGhpc1trS2VlcEFsaXZlRGVmYXVsdFRpbWVvdXRdID0ga2VlcEFsaXZlVGltZW91dCA9PSBudWxsID8gNGUzIDoga2VlcEFsaXZlVGltZW91dFxuICAgIHRoaXNba0tlZXBBbGl2ZU1heFRpbWVvdXRdID0ga2VlcEFsaXZlTWF4VGltZW91dCA9PSBudWxsID8gNjAwZTMgOiBrZWVwQWxpdmVNYXhUaW1lb3V0XG4gICAgdGhpc1trS2VlcEFsaXZlVGltZW91dFRocmVzaG9sZF0gPSBrZWVwQWxpdmVUaW1lb3V0VGhyZXNob2xkID09IG51bGwgPyAyZTMgOiBrZWVwQWxpdmVUaW1lb3V0VGhyZXNob2xkXG4gICAgdGhpc1trS2VlcEFsaXZlVGltZW91dFZhbHVlXSA9IHRoaXNba0tlZXBBbGl2ZURlZmF1bHRUaW1lb3V0XVxuICAgIHRoaXNba1NlcnZlck5hbWVdID0gbnVsbFxuICAgIHRoaXNba0xvY2FsQWRkcmVzc10gPSBsb2NhbEFkZHJlc3MgIT0gbnVsbCA/IGxvY2FsQWRkcmVzcyA6IG51bGxcbiAgICB0aGlzW2tSZXN1bWluZ10gPSAwIC8vIDAsIGlkbGUsIDEsIHNjaGVkdWxlZCwgMiByZXN1bWluZ1xuICAgIHRoaXNba05lZWREcmFpbl0gPSAwIC8vIDAsIGlkbGUsIDEsIHNjaGVkdWxlZCwgMiByZXN1bWluZ1xuICAgIHRoaXNba0hvc3RIZWFkZXJdID0gYGhvc3Q6ICR7dGhpc1trVXJsXS5ob3N0bmFtZX0ke3RoaXNba1VybF0ucG9ydCA/IGA6JHt0aGlzW2tVcmxdLnBvcnR9YCA6ICcnfVxcclxcbmBcbiAgICB0aGlzW2tCb2R5VGltZW91dF0gPSBib2R5VGltZW91dCAhPSBudWxsID8gYm9keVRpbWVvdXQgOiAzMDBlM1xuICAgIHRoaXNba0hlYWRlcnNUaW1lb3V0XSA9IGhlYWRlcnNUaW1lb3V0ICE9IG51bGwgPyBoZWFkZXJzVGltZW91dCA6IDMwMGUzXG4gICAgdGhpc1trU3RyaWN0Q29udGVudExlbmd0aF0gPSBzdHJpY3RDb250ZW50TGVuZ3RoID09IG51bGwgPyB0cnVlIDogc3RyaWN0Q29udGVudExlbmd0aFxuICAgIHRoaXNba01heFJlZGlyZWN0aW9uc10gPSBtYXhSZWRpcmVjdGlvbnNcbiAgICB0aGlzW2tNYXhSZXF1ZXN0c10gPSBtYXhSZXF1ZXN0c1BlckNsaWVudFxuICAgIHRoaXNba0Nsb3NlZFJlc29sdmVdID0gbnVsbFxuICAgIHRoaXNba01heFJlc3BvbnNlU2l6ZV0gPSBtYXhSZXNwb25zZVNpemUgPiAtMSA/IG1heFJlc3BvbnNlU2l6ZSA6IC0xXG4gICAgdGhpc1trTWF4Q29uY3VycmVudFN0cmVhbXNdID0gbWF4Q29uY3VycmVudFN0cmVhbXMgIT0gbnVsbCA/IG1heENvbmN1cnJlbnRTdHJlYW1zIDogMTAwIC8vIE1heCBwZWVyQ29uY3VycmVudFN0cmVhbXMgZm9yIGEgTm9kZSBoMiBzZXJ2ZXJcbiAgICB0aGlzW2tIVFRQQ29udGV4dF0gPSBudWxsXG5cbiAgICAvLyBrUXVldWUgaXMgYnVpbHQgdXAgb2YgMyBzZWN0aW9ucyBzZXBhcmF0ZWQgYnlcbiAgICAvLyB0aGUga1J1bm5pbmdJZHggYW5kIGtQZW5kaW5nSWR4IGluZGljZXMuXG4gICAgLy8gfCAgIGNvbXBsZXRlICAgfCAgIHJ1bm5pbmcgICB8ICAgcGVuZGluZyAgIHxcbiAgICAvLyAgICAgICAgICAgICAgICBeIGtSdW5uaW5nSWR4IF4ga1BlbmRpbmdJZHggXiBrUXVldWUubGVuZ3RoXG4gICAgLy8ga1J1bm5pbmdJZHggcG9pbnRzIHRvIHRoZSBmaXJzdCBydW5uaW5nIGVsZW1lbnQuXG4gICAgLy8ga1BlbmRpbmdJZHggcG9pbnRzIHRvIHRoZSBmaXJzdCBwZW5kaW5nIGVsZW1lbnQuXG4gICAgLy8gVGhpcyBpbXBsZW1lbnRzIGEgZmFzdCBxdWV1ZSB3aXRoIGFuIGFtb3J0aXplZFxuICAgIC8vIHRpbWUgb2YgTygxKS5cblxuICAgIHRoaXNba1F1ZXVlXSA9IFtdXG4gICAgdGhpc1trUnVubmluZ0lkeF0gPSAwXG4gICAgdGhpc1trUGVuZGluZ0lkeF0gPSAwXG5cbiAgICB0aGlzW2tSZXN1bWVdID0gKHN5bmMpID0+IHJlc3VtZSh0aGlzLCBzeW5jKVxuICAgIHRoaXNba09uRXJyb3JdID0gKGVycikgPT4gb25FcnJvcih0aGlzLCBlcnIpXG4gIH1cblxuICBnZXQgcGlwZWxpbmluZyAoKSB7XG4gICAgcmV0dXJuIHRoaXNba1BpcGVsaW5pbmddXG4gIH1cblxuICBzZXQgcGlwZWxpbmluZyAodmFsdWUpIHtcbiAgICB0aGlzW2tQaXBlbGluaW5nXSA9IHZhbHVlXG4gICAgdGhpc1trUmVzdW1lXSh0cnVlKVxuICB9XG5cbiAgZ2V0IFtrUGVuZGluZ10gKCkge1xuICAgIHJldHVybiB0aGlzW2tRdWV1ZV0ubGVuZ3RoIC0gdGhpc1trUGVuZGluZ0lkeF1cbiAgfVxuXG4gIGdldCBba1J1bm5pbmddICgpIHtcbiAgICByZXR1cm4gdGhpc1trUGVuZGluZ0lkeF0gLSB0aGlzW2tSdW5uaW5nSWR4XVxuICB9XG5cbiAgZ2V0IFtrU2l6ZV0gKCkge1xuICAgIHJldHVybiB0aGlzW2tRdWV1ZV0ubGVuZ3RoIC0gdGhpc1trUnVubmluZ0lkeF1cbiAgfVxuXG4gIGdldCBba0Nvbm5lY3RlZF0gKCkge1xuICAgIHJldHVybiAhIXRoaXNba0hUVFBDb250ZXh0XSAmJiAhdGhpc1trQ29ubmVjdGluZ10gJiYgIXRoaXNba0hUVFBDb250ZXh0XS5kZXN0cm95ZWRcbiAgfVxuXG4gIGdldCBba0J1c3ldICgpIHtcbiAgICByZXR1cm4gQm9vbGVhbihcbiAgICAgIHRoaXNba0hUVFBDb250ZXh0XT8uYnVzeShudWxsKSB8fFxuICAgICAgKHRoaXNba1NpemVdID49IChnZXRQaXBlbGluaW5nKHRoaXMpIHx8IDEpKSB8fFxuICAgICAgdGhpc1trUGVuZGluZ10gPiAwXG4gICAgKVxuICB9XG5cbiAgLyogaXN0YW5idWwgaWdub3JlOiBvbmx5IHVzZWQgZm9yIHRlc3QgKi9cbiAgW2tDb25uZWN0XSAoY2IpIHtcbiAgICBjb25uZWN0KHRoaXMpXG4gICAgdGhpcy5vbmNlKCdjb25uZWN0JywgY2IpXG4gIH1cblxuICBba0Rpc3BhdGNoXSAob3B0cywgaGFuZGxlcikge1xuICAgIGNvbnN0IG9yaWdpbiA9IG9wdHMub3JpZ2luIHx8IHRoaXNba1VybF0ub3JpZ2luXG4gICAgY29uc3QgcmVxdWVzdCA9IG5ldyBSZXF1ZXN0KG9yaWdpbiwgb3B0cywgaGFuZGxlcilcblxuICAgIHRoaXNba1F1ZXVlXS5wdXNoKHJlcXVlc3QpXG4gICAgaWYgKHRoaXNba1Jlc3VtaW5nXSkge1xuICAgICAgLy8gRG8gbm90aGluZy5cbiAgICB9IGVsc2UgaWYgKHV0aWwuYm9keUxlbmd0aChyZXF1ZXN0LmJvZHkpID09IG51bGwgJiYgdXRpbC5pc0l0ZXJhYmxlKHJlcXVlc3QuYm9keSkpIHtcbiAgICAgIC8vIFdhaXQgYSB0aWNrIGluIGNhc2Ugc3RyZWFtL2l0ZXJhdG9yIGlzIGVuZGVkIGluIHRoZSBzYW1lIHRpY2suXG4gICAgICB0aGlzW2tSZXN1bWluZ10gPSAxXG4gICAgICBxdWV1ZU1pY3JvdGFzaygoKSA9PiByZXN1bWUodGhpcykpXG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXNba1Jlc3VtZV0odHJ1ZSlcbiAgICB9XG5cbiAgICBpZiAodGhpc1trUmVzdW1pbmddICYmIHRoaXNba05lZWREcmFpbl0gIT09IDIgJiYgdGhpc1trQnVzeV0pIHtcbiAgICAgIHRoaXNba05lZWREcmFpbl0gPSAyXG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXNba05lZWREcmFpbl0gPCAyXG4gIH1cblxuICBhc3luYyBba0Nsb3NlXSAoKSB7XG4gICAgLy8gVE9ETzogZm9yIEgyIHdlIG5lZWQgdG8gZ3JhY2VmdWxseSBmbHVzaCB0aGUgcmVtYWluaW5nIGVucXVldWVkXG4gICAgLy8gcmVxdWVzdCBhbmQgY2xvc2UgZWFjaCBzdHJlYW0uXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7XG4gICAgICBpZiAodGhpc1trU2l6ZV0pIHtcbiAgICAgICAgdGhpc1trQ2xvc2VkUmVzb2x2ZV0gPSByZXNvbHZlXG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXNvbHZlKG51bGwpXG4gICAgICB9XG4gICAgfSlcbiAgfVxuXG4gIGFzeW5jIFtrRGVzdHJveV0gKGVycikge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xuICAgICAgY29uc3QgcmVxdWVzdHMgPSB0aGlzW2tRdWV1ZV0uc3BsaWNlKHRoaXNba1BlbmRpbmdJZHhdKVxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCByZXF1ZXN0cy5sZW5ndGg7IGkrKykge1xuICAgICAgICBjb25zdCByZXF1ZXN0ID0gcmVxdWVzdHNbaV1cbiAgICAgICAgdXRpbC5lcnJvclJlcXVlc3QodGhpcywgcmVxdWVzdCwgZXJyKVxuICAgICAgfVxuXG4gICAgICBjb25zdCBjYWxsYmFjayA9ICgpID0+IHtcbiAgICAgICAgaWYgKHRoaXNba0Nsb3NlZFJlc29sdmVdKSB7XG4gICAgICAgICAgLy8gVE9ETyAoZml4KTogU2hvdWxkIHdlIGVycm9yIGhlcmUgd2l0aCBDbGllbnREZXN0cm95ZWRFcnJvcj9cbiAgICAgICAgICB0aGlzW2tDbG9zZWRSZXNvbHZlXSgpXG4gICAgICAgICAgdGhpc1trQ2xvc2VkUmVzb2x2ZV0gPSBudWxsXG4gICAgICAgIH1cbiAgICAgICAgcmVzb2x2ZShudWxsKVxuICAgICAgfVxuXG4gICAgICBpZiAodGhpc1trSFRUUENvbnRleHRdKSB7XG4gICAgICAgIHRoaXNba0hUVFBDb250ZXh0XS5kZXN0cm95KGVyciwgY2FsbGJhY2spXG4gICAgICAgIHRoaXNba0hUVFBDb250ZXh0XSA9IG51bGxcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHF1ZXVlTWljcm90YXNrKGNhbGxiYWNrKVxuICAgICAgfVxuXG4gICAgICB0aGlzW2tSZXN1bWVdKClcbiAgICB9KVxuICB9XG59XG5cbmNvbnN0IGNyZWF0ZVJlZGlyZWN0SW50ZXJjZXB0b3IgPSByZXF1aXJlKCcuLi9pbnRlcmNlcHRvci9yZWRpcmVjdC1pbnRlcmNlcHRvci5qcycpXG5cbmZ1bmN0aW9uIG9uRXJyb3IgKGNsaWVudCwgZXJyKSB7XG4gIGlmIChcbiAgICBjbGllbnRba1J1bm5pbmddID09PSAwICYmXG4gICAgZXJyLmNvZGUgIT09ICdVTkRfRVJSX0lORk8nICYmXG4gICAgZXJyLmNvZGUgIT09ICdVTkRfRVJSX1NPQ0tFVCdcbiAgKSB7XG4gICAgLy8gRXJyb3IgaXMgbm90IGNhdXNlZCBieSBydW5uaW5nIHJlcXVlc3QgYW5kIG5vdCBhIHJlY292ZXJhYmxlXG4gICAgLy8gc29ja2V0IGVycm9yLlxuXG4gICAgYXNzZXJ0KGNsaWVudFtrUGVuZGluZ0lkeF0gPT09IGNsaWVudFtrUnVubmluZ0lkeF0pXG5cbiAgICBjb25zdCByZXF1ZXN0cyA9IGNsaWVudFtrUXVldWVdLnNwbGljZShjbGllbnRba1J1bm5pbmdJZHhdKVxuXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCByZXF1ZXN0cy5sZW5ndGg7IGkrKykge1xuICAgICAgY29uc3QgcmVxdWVzdCA9IHJlcXVlc3RzW2ldXG4gICAgICB1dGlsLmVycm9yUmVxdWVzdChjbGllbnQsIHJlcXVlc3QsIGVycilcbiAgICB9XG4gICAgYXNzZXJ0KGNsaWVudFtrU2l6ZV0gPT09IDApXG4gIH1cbn1cblxuLyoqXG4gKiBAcGFyYW0ge0NsaWVudH0gY2xpZW50XG4gKiBAcmV0dXJuc1xuICovXG5hc3luYyBmdW5jdGlvbiBjb25uZWN0IChjbGllbnQpIHtcbiAgYXNzZXJ0KCFjbGllbnRba0Nvbm5lY3RpbmddKVxuICBhc3NlcnQoIWNsaWVudFtrSFRUUENvbnRleHRdKVxuXG4gIGxldCB7IGhvc3QsIGhvc3RuYW1lLCBwcm90b2NvbCwgcG9ydCB9ID0gY2xpZW50W2tVcmxdXG5cbiAgLy8gUmVzb2x2ZSBpcHY2XG4gIGlmIChob3N0bmFtZVswXSA9PT0gJ1snKSB7XG4gICAgY29uc3QgaWR4ID0gaG9zdG5hbWUuaW5kZXhPZignXScpXG5cbiAgICBhc3NlcnQoaWR4ICE9PSAtMSlcbiAgICBjb25zdCBpcCA9IGhvc3RuYW1lLnN1YnN0cmluZygxLCBpZHgpXG5cbiAgICBhc3NlcnQobmV0LmlzSVAoaXApKVxuICAgIGhvc3RuYW1lID0gaXBcbiAgfVxuXG4gIGNsaWVudFtrQ29ubmVjdGluZ10gPSB0cnVlXG5cbiAgaWYgKGNoYW5uZWxzLmJlZm9yZUNvbm5lY3QuaGFzU3Vic2NyaWJlcnMpIHtcbiAgICBjaGFubmVscy5iZWZvcmVDb25uZWN0LnB1Ymxpc2goe1xuICAgICAgY29ubmVjdFBhcmFtczoge1xuICAgICAgICBob3N0LFxuICAgICAgICBob3N0bmFtZSxcbiAgICAgICAgcHJvdG9jb2wsXG4gICAgICAgIHBvcnQsXG4gICAgICAgIHZlcnNpb246IGNsaWVudFtrSFRUUENvbnRleHRdPy52ZXJzaW9uLFxuICAgICAgICBzZXJ2ZXJuYW1lOiBjbGllbnRba1NlcnZlck5hbWVdLFxuICAgICAgICBsb2NhbEFkZHJlc3M6IGNsaWVudFtrTG9jYWxBZGRyZXNzXVxuICAgICAgfSxcbiAgICAgIGNvbm5lY3RvcjogY2xpZW50W2tDb25uZWN0b3JdXG4gICAgfSlcbiAgfVxuXG4gIHRyeSB7XG4gICAgY29uc3Qgc29ja2V0ID0gYXdhaXQgbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgY2xpZW50W2tDb25uZWN0b3JdKHtcbiAgICAgICAgaG9zdCxcbiAgICAgICAgaG9zdG5hbWUsXG4gICAgICAgIHByb3RvY29sLFxuICAgICAgICBwb3J0LFxuICAgICAgICBzZXJ2ZXJuYW1lOiBjbGllbnRba1NlcnZlck5hbWVdLFxuICAgICAgICBsb2NhbEFkZHJlc3M6IGNsaWVudFtrTG9jYWxBZGRyZXNzXVxuICAgICAgfSwgKGVyciwgc29ja2V0KSA9PiB7XG4gICAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgICByZWplY3QoZXJyKVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJlc29sdmUoc29ja2V0KVxuICAgICAgICB9XG4gICAgICB9KVxuICAgIH0pXG5cbiAgICBpZiAoY2xpZW50LmRlc3Ryb3llZCkge1xuICAgICAgdXRpbC5kZXN0cm95KHNvY2tldC5vbignZXJyb3InLCBub29wKSwgbmV3IENsaWVudERlc3Ryb3llZEVycm9yKCkpXG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBhc3NlcnQoc29ja2V0KVxuXG4gICAgdHJ5IHtcbiAgICAgIGNsaWVudFtrSFRUUENvbnRleHRdID0gc29ja2V0LmFscG5Qcm90b2NvbCA9PT0gJ2gyJ1xuICAgICAgICA/IGF3YWl0IGNvbm5lY3RIMihjbGllbnQsIHNvY2tldClcbiAgICAgICAgOiBhd2FpdCBjb25uZWN0SDEoY2xpZW50LCBzb2NrZXQpXG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICBzb2NrZXQuZGVzdHJveSgpLm9uKCdlcnJvcicsIG5vb3ApXG4gICAgICB0aHJvdyBlcnJcbiAgICB9XG5cbiAgICBjbGllbnRba0Nvbm5lY3RpbmddID0gZmFsc2VcblxuICAgIHNvY2tldFtrQ291bnRlcl0gPSAwXG4gICAgc29ja2V0W2tNYXhSZXF1ZXN0c10gPSBjbGllbnRba01heFJlcXVlc3RzXVxuICAgIHNvY2tldFtrQ2xpZW50XSA9IGNsaWVudFxuICAgIHNvY2tldFtrRXJyb3JdID0gbnVsbFxuXG4gICAgaWYgKGNoYW5uZWxzLmNvbm5lY3RlZC5oYXNTdWJzY3JpYmVycykge1xuICAgICAgY2hhbm5lbHMuY29ubmVjdGVkLnB1Ymxpc2goe1xuICAgICAgICBjb25uZWN0UGFyYW1zOiB7XG4gICAgICAgICAgaG9zdCxcbiAgICAgICAgICBob3N0bmFtZSxcbiAgICAgICAgICBwcm90b2NvbCxcbiAgICAgICAgICBwb3J0LFxuICAgICAgICAgIHZlcnNpb246IGNsaWVudFtrSFRUUENvbnRleHRdPy52ZXJzaW9uLFxuICAgICAgICAgIHNlcnZlcm5hbWU6IGNsaWVudFtrU2VydmVyTmFtZV0sXG4gICAgICAgICAgbG9jYWxBZGRyZXNzOiBjbGllbnRba0xvY2FsQWRkcmVzc11cbiAgICAgICAgfSxcbiAgICAgICAgY29ubmVjdG9yOiBjbGllbnRba0Nvbm5lY3Rvcl0sXG4gICAgICAgIHNvY2tldFxuICAgICAgfSlcbiAgICB9XG4gICAgY2xpZW50LmVtaXQoJ2Nvbm5lY3QnLCBjbGllbnRba1VybF0sIFtjbGllbnRdKVxuICB9IGNhdGNoIChlcnIpIHtcbiAgICBpZiAoY2xpZW50LmRlc3Ryb3llZCkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgY2xpZW50W2tDb25uZWN0aW5nXSA9IGZhbHNlXG5cbiAgICBpZiAoY2hhbm5lbHMuY29ubmVjdEVycm9yLmhhc1N1YnNjcmliZXJzKSB7XG4gICAgICBjaGFubmVscy5jb25uZWN0RXJyb3IucHVibGlzaCh7XG4gICAgICAgIGNvbm5lY3RQYXJhbXM6IHtcbiAgICAgICAgICBob3N0LFxuICAgICAgICAgIGhvc3RuYW1lLFxuICAgICAgICAgIHByb3RvY29sLFxuICAgICAgICAgIHBvcnQsXG4gICAgICAgICAgdmVyc2lvbjogY2xpZW50W2tIVFRQQ29udGV4dF0/LnZlcnNpb24sXG4gICAgICAgICAgc2VydmVybmFtZTogY2xpZW50W2tTZXJ2ZXJOYW1lXSxcbiAgICAgICAgICBsb2NhbEFkZHJlc3M6IGNsaWVudFtrTG9jYWxBZGRyZXNzXVxuICAgICAgICB9LFxuICAgICAgICBjb25uZWN0b3I6IGNsaWVudFtrQ29ubmVjdG9yXSxcbiAgICAgICAgZXJyb3I6IGVyclxuICAgICAgfSlcbiAgICB9XG5cbiAgICBpZiAoZXJyLmNvZGUgPT09ICdFUlJfVExTX0NFUlRfQUxUTkFNRV9JTlZBTElEJykge1xuICAgICAgYXNzZXJ0KGNsaWVudFtrUnVubmluZ10gPT09IDApXG4gICAgICB3aGlsZSAoY2xpZW50W2tQZW5kaW5nXSA+IDAgJiYgY2xpZW50W2tRdWV1ZV1bY2xpZW50W2tQZW5kaW5nSWR4XV0uc2VydmVybmFtZSA9PT0gY2xpZW50W2tTZXJ2ZXJOYW1lXSkge1xuICAgICAgICBjb25zdCByZXF1ZXN0ID0gY2xpZW50W2tRdWV1ZV1bY2xpZW50W2tQZW5kaW5nSWR4XSsrXVxuICAgICAgICB1dGlsLmVycm9yUmVxdWVzdChjbGllbnQsIHJlcXVlc3QsIGVycilcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgb25FcnJvcihjbGllbnQsIGVycilcbiAgICB9XG5cbiAgICBjbGllbnQuZW1pdCgnY29ubmVjdGlvbkVycm9yJywgY2xpZW50W2tVcmxdLCBbY2xpZW50XSwgZXJyKVxuICB9XG5cbiAgY2xpZW50W2tSZXN1bWVdKClcbn1cblxuZnVuY3Rpb24gZW1pdERyYWluIChjbGllbnQpIHtcbiAgY2xpZW50W2tOZWVkRHJhaW5dID0gMFxuICBjbGllbnQuZW1pdCgnZHJhaW4nLCBjbGllbnRba1VybF0sIFtjbGllbnRdKVxufVxuXG5mdW5jdGlvbiByZXN1bWUgKGNsaWVudCwgc3luYykge1xuICBpZiAoY2xpZW50W2tSZXN1bWluZ10gPT09IDIpIHtcbiAgICByZXR1cm5cbiAgfVxuXG4gIGNsaWVudFtrUmVzdW1pbmddID0gMlxuXG4gIF9yZXN1bWUoY2xpZW50LCBzeW5jKVxuICBjbGllbnRba1Jlc3VtaW5nXSA9IDBcblxuICBpZiAoY2xpZW50W2tSdW5uaW5nSWR4XSA+IDI1Nikge1xuICAgIGNsaWVudFtrUXVldWVdLnNwbGljZSgwLCBjbGllbnRba1J1bm5pbmdJZHhdKVxuICAgIGNsaWVudFtrUGVuZGluZ0lkeF0gLT0gY2xpZW50W2tSdW5uaW5nSWR4XVxuICAgIGNsaWVudFtrUnVubmluZ0lkeF0gPSAwXG4gIH1cbn1cblxuZnVuY3Rpb24gX3Jlc3VtZSAoY2xpZW50LCBzeW5jKSB7XG4gIHdoaWxlICh0cnVlKSB7XG4gICAgaWYgKGNsaWVudC5kZXN0cm95ZWQpIHtcbiAgICAgIGFzc2VydChjbGllbnRba1BlbmRpbmddID09PSAwKVxuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgaWYgKGNsaWVudFtrQ2xvc2VkUmVzb2x2ZV0gJiYgIWNsaWVudFtrU2l6ZV0pIHtcbiAgICAgIGNsaWVudFtrQ2xvc2VkUmVzb2x2ZV0oKVxuICAgICAgY2xpZW50W2tDbG9zZWRSZXNvbHZlXSA9IG51bGxcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGlmIChjbGllbnRba0hUVFBDb250ZXh0XSkge1xuICAgICAgY2xpZW50W2tIVFRQQ29udGV4dF0ucmVzdW1lKClcbiAgICB9XG5cbiAgICBpZiAoY2xpZW50W2tCdXN5XSkge1xuICAgICAgY2xpZW50W2tOZWVkRHJhaW5dID0gMlxuICAgIH0gZWxzZSBpZiAoY2xpZW50W2tOZWVkRHJhaW5dID09PSAyKSB7XG4gICAgICBpZiAoc3luYykge1xuICAgICAgICBjbGllbnRba05lZWREcmFpbl0gPSAxXG4gICAgICAgIHF1ZXVlTWljcm90YXNrKCgpID0+IGVtaXREcmFpbihjbGllbnQpKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZW1pdERyYWluKGNsaWVudClcbiAgICAgIH1cbiAgICAgIGNvbnRpbnVlXG4gICAgfVxuXG4gICAgaWYgKGNsaWVudFtrUGVuZGluZ10gPT09IDApIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGlmIChjbGllbnRba1J1bm5pbmddID49IChnZXRQaXBlbGluaW5nKGNsaWVudCkgfHwgMSkpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGNvbnN0IHJlcXVlc3QgPSBjbGllbnRba1F1ZXVlXVtjbGllbnRba1BlbmRpbmdJZHhdXVxuXG4gICAgaWYgKGNsaWVudFtrVXJsXS5wcm90b2NvbCA9PT0gJ2h0dHBzOicgJiYgY2xpZW50W2tTZXJ2ZXJOYW1lXSAhPT0gcmVxdWVzdC5zZXJ2ZXJuYW1lKSB7XG4gICAgICBpZiAoY2xpZW50W2tSdW5uaW5nXSA+IDApIHtcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIGNsaWVudFtrU2VydmVyTmFtZV0gPSByZXF1ZXN0LnNlcnZlcm5hbWVcbiAgICAgIGNsaWVudFtrSFRUUENvbnRleHRdPy5kZXN0cm95KG5ldyBJbmZvcm1hdGlvbmFsRXJyb3IoJ3NlcnZlcm5hbWUgY2hhbmdlZCcpLCAoKSA9PiB7XG4gICAgICAgIGNsaWVudFtrSFRUUENvbnRleHRdID0gbnVsbFxuICAgICAgICByZXN1bWUoY2xpZW50KVxuICAgICAgfSlcbiAgICB9XG5cbiAgICBpZiAoY2xpZW50W2tDb25uZWN0aW5nXSkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgaWYgKCFjbGllbnRba0hUVFBDb250ZXh0XSkge1xuICAgICAgY29ubmVjdChjbGllbnQpXG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBpZiAoY2xpZW50W2tIVFRQQ29udGV4dF0uZGVzdHJveWVkKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBpZiAoY2xpZW50W2tIVFRQQ29udGV4dF0uYnVzeShyZXF1ZXN0KSkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgaWYgKCFyZXF1ZXN0LmFib3J0ZWQgJiYgY2xpZW50W2tIVFRQQ29udGV4dF0ud3JpdGUocmVxdWVzdCkpIHtcbiAgICAgIGNsaWVudFtrUGVuZGluZ0lkeF0rK1xuICAgIH0gZWxzZSB7XG4gICAgICBjbGllbnRba1F1ZXVlXS5zcGxpY2UoY2xpZW50W2tQZW5kaW5nSWR4XSwgMSlcbiAgICB9XG4gIH1cbn1cblxubW9kdWxlLmV4cG9ydHMgPSBDbGllbnRcbiIsICIvKiBlc2xpbnQtZGlzYWJsZSAqL1xuXG4ndXNlIHN0cmljdCdcblxuLy8gRXh0cmFjdGVkIGZyb20gbm9kZS9saWIvaW50ZXJuYWwvZml4ZWRfcXVldWUuanNcblxuLy8gQ3VycmVudGx5IG9wdGltYWwgcXVldWUgc2l6ZSwgdGVzdGVkIG9uIFY4IDYuMCAtIDYuNi4gTXVzdCBiZSBwb3dlciBvZiB0d28uXG5jb25zdCBrU2l6ZSA9IDIwNDg7XG5jb25zdCBrTWFzayA9IGtTaXplIC0gMTtcblxuLy8gVGhlIEZpeGVkUXVldWUgaXMgaW1wbGVtZW50ZWQgYXMgYSBzaW5nbHktbGlua2VkIGxpc3Qgb2YgZml4ZWQtc2l6ZVxuLy8gY2lyY3VsYXIgYnVmZmVycy4gSXQgbG9va3Mgc29tZXRoaW5nIGxpa2UgdGhpczpcbi8vXG4vLyAgaGVhZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWlsXG4vLyAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHxcbi8vICAgIHYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdlxuLy8gKy0tLS0tLS0tLS0tKyA8LS0tLS1cXCAgICAgICArLS0tLS0tLS0tLS0rIDwtLS0tLS1cXCAgICAgICAgICstLS0tLS0tLS0tLStcbi8vIHwgIFtudWxsXSAgIHwgICAgICAgIFxcLS0tLS0gfCAgIG5leHQgICAgfCAgICAgICAgIFxcLS0tLS0tLSB8ICAgbmV4dCAgICB8XG4vLyArLS0tLS0tLS0tLS0rICAgICAgICAgICAgICAgKy0tLS0tLS0tLS0tKyAgICAgICAgICAgICAgICAgICstLS0tLS0tLS0tLStcbi8vIHwgICBpdGVtICAgIHwgPC0tIGJvdHRvbSAgICB8ICAgaXRlbSAgICB8IDwtLSBib3R0b20gICAgICAgfCAgW2VtcHR5XSAgfFxuLy8gfCAgIGl0ZW0gICAgfCAgICAgICAgICAgICAgIHwgICBpdGVtICAgIHwgICAgICAgICAgICAgICAgICB8ICBbZW1wdHldICB8XG4vLyB8ICAgaXRlbSAgICB8ICAgICAgICAgICAgICAgfCAgIGl0ZW0gICAgfCAgICAgICAgICAgICAgICAgIHwgIFtlbXB0eV0gIHxcbi8vIHwgICBpdGVtICAgIHwgICAgICAgICAgICAgICB8ICAgaXRlbSAgICB8ICAgICAgICAgICAgICAgICAgfCAgW2VtcHR5XSAgfFxuLy8gfCAgIGl0ZW0gICAgfCAgICAgICAgICAgICAgIHwgICBpdGVtICAgIHwgICAgICAgYm90dG9tIC0tPiB8ICAgaXRlbSAgICB8XG4vLyB8ICAgaXRlbSAgICB8ICAgICAgICAgICAgICAgfCAgIGl0ZW0gICAgfCAgICAgICAgICAgICAgICAgIHwgICBpdGVtICAgIHxcbi8vIHwgICAgLi4uICAgIHwgICAgICAgICAgICAgICB8ICAgIC4uLiAgICB8ICAgICAgICAgICAgICAgICAgfCAgICAuLi4gICAgfFxuLy8gfCAgIGl0ZW0gICAgfCAgICAgICAgICAgICAgIHwgICBpdGVtICAgIHwgICAgICAgICAgICAgICAgICB8ICAgaXRlbSAgICB8XG4vLyB8ICAgaXRlbSAgICB8ICAgICAgICAgICAgICAgfCAgIGl0ZW0gICAgfCAgICAgICAgICAgICAgICAgIHwgICBpdGVtICAgIHxcbi8vIHwgIFtlbXB0eV0gIHwgPC0tIHRvcCAgICAgICB8ICAgaXRlbSAgICB8ICAgICAgICAgICAgICAgICAgfCAgIGl0ZW0gICAgfFxuLy8gfCAgW2VtcHR5XSAgfCAgICAgICAgICAgICAgIHwgICBpdGVtICAgIHwgICAgICAgICAgICAgICAgICB8ICAgaXRlbSAgICB8XG4vLyB8ICBbZW1wdHldICB8ICAgICAgICAgICAgICAgfCAgW2VtcHR5XSAgfCA8LS0gdG9wICB0b3AgLS0+IHwgIFtlbXB0eV0gIHxcbi8vICstLS0tLS0tLS0tLSsgICAgICAgICAgICAgICArLS0tLS0tLS0tLS0rICAgICAgICAgICAgICAgICAgKy0tLS0tLS0tLS0tK1xuLy9cbi8vIE9yLCBpZiB0aGVyZSBpcyBvbmx5IG9uZSBjaXJjdWxhciBidWZmZXIsIGl0IGxvb2tzIHNvbWV0aGluZ1xuLy8gbGlrZSBlaXRoZXIgb2YgdGhlc2U6XG4vL1xuLy8gIGhlYWQgICB0YWlsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVhZCAgIHRhaWxcbi8vICAgIHwgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgfFxuLy8gICAgdiAgICAgdiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ICAgICB2XG4vLyArLS0tLS0tLS0tLS0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICstLS0tLS0tLS0tLStcbi8vIHwgIFtudWxsXSAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgW251bGxdICAgfFxuLy8gKy0tLS0tLS0tLS0tKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArLS0tLS0tLS0tLS0rXG4vLyB8ICBbZW1wdHldICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICBpdGVtICAgIHxcbi8vIHwgIFtlbXB0eV0gIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIGl0ZW0gICAgfFxuLy8gfCAgIGl0ZW0gICAgfCA8LS0gYm90dG9tICAgICAgICAgICAgdG9wIC0tPiB8ICBbZW1wdHldICB8XG4vLyB8ICAgaXRlbSAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIFtlbXB0eV0gIHxcbi8vIHwgIFtlbXB0eV0gIHwgPC0tIHRvcCAgICAgICAgICAgIGJvdHRvbSAtLT4gfCAgIGl0ZW0gICAgfFxuLy8gfCAgW2VtcHR5XSAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgaXRlbSAgICB8XG4vLyArLS0tLS0tLS0tLS0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICstLS0tLS0tLS0tLStcbi8vXG4vLyBBZGRpbmcgYSB2YWx1ZSBtZWFucyBtb3ZpbmcgYHRvcGAgZm9yd2FyZCBieSBvbmUsIHJlbW92aW5nIG1lYW5zXG4vLyBtb3ZpbmcgYGJvdHRvbWAgZm9yd2FyZCBieSBvbmUuIEFmdGVyIHJlYWNoaW5nIHRoZSBlbmQsIHRoZSBxdWV1ZVxuLy8gd3JhcHMgYXJvdW5kLlxuLy9cbi8vIFdoZW4gYHRvcCA9PT0gYm90dG9tYCB0aGUgY3VycmVudCBxdWV1ZSBpcyBlbXB0eSBhbmQgd2hlblxuLy8gYHRvcCArIDEgPT09IGJvdHRvbWAgaXQncyBmdWxsLiBUaGlzIHdhc3RlcyBhIHNpbmdsZSBzcGFjZSBvZiBzdG9yYWdlXG4vLyBidXQgYWxsb3dzIG11Y2ggcXVpY2tlciBjaGVja3MuXG5cbmNsYXNzIEZpeGVkQ2lyY3VsYXJCdWZmZXIge1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLmJvdHRvbSA9IDA7XG4gICAgdGhpcy50b3AgPSAwO1xuICAgIHRoaXMubGlzdCA9IG5ldyBBcnJheShrU2l6ZSk7XG4gICAgdGhpcy5uZXh0ID0gbnVsbDtcbiAgfVxuXG4gIGlzRW1wdHkoKSB7XG4gICAgcmV0dXJuIHRoaXMudG9wID09PSB0aGlzLmJvdHRvbTtcbiAgfVxuXG4gIGlzRnVsbCgpIHtcbiAgICByZXR1cm4gKCh0aGlzLnRvcCArIDEpICYga01hc2spID09PSB0aGlzLmJvdHRvbTtcbiAgfVxuXG4gIHB1c2goZGF0YSkge1xuICAgIHRoaXMubGlzdFt0aGlzLnRvcF0gPSBkYXRhO1xuICAgIHRoaXMudG9wID0gKHRoaXMudG9wICsgMSkgJiBrTWFzaztcbiAgfVxuXG4gIHNoaWZ0KCkge1xuICAgIGNvbnN0IG5leHRJdGVtID0gdGhpcy5saXN0W3RoaXMuYm90dG9tXTtcbiAgICBpZiAobmV4dEl0ZW0gPT09IHVuZGVmaW5lZClcbiAgICAgIHJldHVybiBudWxsO1xuICAgIHRoaXMubGlzdFt0aGlzLmJvdHRvbV0gPSB1bmRlZmluZWQ7XG4gICAgdGhpcy5ib3R0b20gPSAodGhpcy5ib3R0b20gKyAxKSAmIGtNYXNrO1xuICAgIHJldHVybiBuZXh0SXRlbTtcbiAgfVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGNsYXNzIEZpeGVkUXVldWUge1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLmhlYWQgPSB0aGlzLnRhaWwgPSBuZXcgRml4ZWRDaXJjdWxhckJ1ZmZlcigpO1xuICB9XG5cbiAgaXNFbXB0eSgpIHtcbiAgICByZXR1cm4gdGhpcy5oZWFkLmlzRW1wdHkoKTtcbiAgfVxuXG4gIHB1c2goZGF0YSkge1xuICAgIGlmICh0aGlzLmhlYWQuaXNGdWxsKCkpIHtcbiAgICAgIC8vIEhlYWQgaXMgZnVsbDogQ3JlYXRlcyBhIG5ldyBxdWV1ZSwgc2V0cyB0aGUgb2xkIHF1ZXVlJ3MgYC5uZXh0YCB0byBpdCxcbiAgICAgIC8vIGFuZCBzZXRzIGl0IGFzIHRoZSBuZXcgbWFpbiBxdWV1ZS5cbiAgICAgIHRoaXMuaGVhZCA9IHRoaXMuaGVhZC5uZXh0ID0gbmV3IEZpeGVkQ2lyY3VsYXJCdWZmZXIoKTtcbiAgICB9XG4gICAgdGhpcy5oZWFkLnB1c2goZGF0YSk7XG4gIH1cblxuICBzaGlmdCgpIHtcbiAgICBjb25zdCB0YWlsID0gdGhpcy50YWlsO1xuICAgIGNvbnN0IG5leHQgPSB0YWlsLnNoaWZ0KCk7XG4gICAgaWYgKHRhaWwuaXNFbXB0eSgpICYmIHRhaWwubmV4dCAhPT0gbnVsbCkge1xuICAgICAgLy8gSWYgdGhlcmUgaXMgYW5vdGhlciBxdWV1ZSwgaXQgZm9ybXMgdGhlIG5ldyB0YWlsLlxuICAgICAgdGhpcy50YWlsID0gdGFpbC5uZXh0O1xuICAgIH1cbiAgICByZXR1cm4gbmV4dDtcbiAgfVxufTtcbiIsICJjb25zdCB7IGtGcmVlLCBrQ29ubmVjdGVkLCBrUGVuZGluZywga1F1ZXVlZCwga1J1bm5pbmcsIGtTaXplIH0gPSByZXF1aXJlKCcuLi9jb3JlL3N5bWJvbHMnKVxuY29uc3Qga1Bvb2wgPSBTeW1ib2woJ3Bvb2wnKVxuXG5jbGFzcyBQb29sU3RhdHMge1xuICBjb25zdHJ1Y3RvciAocG9vbCkge1xuICAgIHRoaXNba1Bvb2xdID0gcG9vbFxuICB9XG5cbiAgZ2V0IGNvbm5lY3RlZCAoKSB7XG4gICAgcmV0dXJuIHRoaXNba1Bvb2xdW2tDb25uZWN0ZWRdXG4gIH1cblxuICBnZXQgZnJlZSAoKSB7XG4gICAgcmV0dXJuIHRoaXNba1Bvb2xdW2tGcmVlXVxuICB9XG5cbiAgZ2V0IHBlbmRpbmcgKCkge1xuICAgIHJldHVybiB0aGlzW2tQb29sXVtrUGVuZGluZ11cbiAgfVxuXG4gIGdldCBxdWV1ZWQgKCkge1xuICAgIHJldHVybiB0aGlzW2tQb29sXVtrUXVldWVkXVxuICB9XG5cbiAgZ2V0IHJ1bm5pbmcgKCkge1xuICAgIHJldHVybiB0aGlzW2tQb29sXVtrUnVubmluZ11cbiAgfVxuXG4gIGdldCBzaXplICgpIHtcbiAgICByZXR1cm4gdGhpc1trUG9vbF1ba1NpemVdXG4gIH1cbn1cblxubW9kdWxlLmV4cG9ydHMgPSBQb29sU3RhdHNcbiIsICIndXNlIHN0cmljdCdcblxuY29uc3QgRGlzcGF0Y2hlckJhc2UgPSByZXF1aXJlKCcuL2Rpc3BhdGNoZXItYmFzZScpXG5jb25zdCBGaXhlZFF1ZXVlID0gcmVxdWlyZSgnLi9maXhlZC1xdWV1ZScpXG5jb25zdCB7IGtDb25uZWN0ZWQsIGtTaXplLCBrUnVubmluZywga1BlbmRpbmcsIGtRdWV1ZWQsIGtCdXN5LCBrRnJlZSwga1VybCwga0Nsb3NlLCBrRGVzdHJveSwga0Rpc3BhdGNoIH0gPSByZXF1aXJlKCcuLi9jb3JlL3N5bWJvbHMnKVxuY29uc3QgUG9vbFN0YXRzID0gcmVxdWlyZSgnLi9wb29sLXN0YXRzJylcblxuY29uc3Qga0NsaWVudHMgPSBTeW1ib2woJ2NsaWVudHMnKVxuY29uc3Qga05lZWREcmFpbiA9IFN5bWJvbCgnbmVlZERyYWluJylcbmNvbnN0IGtRdWV1ZSA9IFN5bWJvbCgncXVldWUnKVxuY29uc3Qga0Nsb3NlZFJlc29sdmUgPSBTeW1ib2woJ2Nsb3NlZCByZXNvbHZlJylcbmNvbnN0IGtPbkRyYWluID0gU3ltYm9sKCdvbkRyYWluJylcbmNvbnN0IGtPbkNvbm5lY3QgPSBTeW1ib2woJ29uQ29ubmVjdCcpXG5jb25zdCBrT25EaXNjb25uZWN0ID0gU3ltYm9sKCdvbkRpc2Nvbm5lY3QnKVxuY29uc3Qga09uQ29ubmVjdGlvbkVycm9yID0gU3ltYm9sKCdvbkNvbm5lY3Rpb25FcnJvcicpXG5jb25zdCBrR2V0RGlzcGF0Y2hlciA9IFN5bWJvbCgnZ2V0IGRpc3BhdGNoZXInKVxuY29uc3Qga0FkZENsaWVudCA9IFN5bWJvbCgnYWRkIGNsaWVudCcpXG5jb25zdCBrUmVtb3ZlQ2xpZW50ID0gU3ltYm9sKCdyZW1vdmUgY2xpZW50JylcbmNvbnN0IGtTdGF0cyA9IFN5bWJvbCgnc3RhdHMnKVxuXG5jbGFzcyBQb29sQmFzZSBleHRlbmRzIERpc3BhdGNoZXJCYXNlIHtcbiAgY29uc3RydWN0b3IgKCkge1xuICAgIHN1cGVyKClcblxuICAgIHRoaXNba1F1ZXVlXSA9IG5ldyBGaXhlZFF1ZXVlKClcbiAgICB0aGlzW2tDbGllbnRzXSA9IFtdXG4gICAgdGhpc1trUXVldWVkXSA9IDBcblxuICAgIGNvbnN0IHBvb2wgPSB0aGlzXG5cbiAgICB0aGlzW2tPbkRyYWluXSA9IGZ1bmN0aW9uIG9uRHJhaW4gKG9yaWdpbiwgdGFyZ2V0cykge1xuICAgICAgY29uc3QgcXVldWUgPSBwb29sW2tRdWV1ZV1cblxuICAgICAgbGV0IG5lZWREcmFpbiA9IGZhbHNlXG5cbiAgICAgIHdoaWxlICghbmVlZERyYWluKSB7XG4gICAgICAgIGNvbnN0IGl0ZW0gPSBxdWV1ZS5zaGlmdCgpXG4gICAgICAgIGlmICghaXRlbSkge1xuICAgICAgICAgIGJyZWFrXG4gICAgICAgIH1cbiAgICAgICAgcG9vbFtrUXVldWVkXS0tXG4gICAgICAgIG5lZWREcmFpbiA9ICF0aGlzLmRpc3BhdGNoKGl0ZW0ub3B0cywgaXRlbS5oYW5kbGVyKVxuICAgICAgfVxuXG4gICAgICB0aGlzW2tOZWVkRHJhaW5dID0gbmVlZERyYWluXG5cbiAgICAgIGlmICghdGhpc1trTmVlZERyYWluXSAmJiBwb29sW2tOZWVkRHJhaW5dKSB7XG4gICAgICAgIHBvb2xba05lZWREcmFpbl0gPSBmYWxzZVxuICAgICAgICBwb29sLmVtaXQoJ2RyYWluJywgb3JpZ2luLCBbcG9vbCwgLi4udGFyZ2V0c10pXG4gICAgICB9XG5cbiAgICAgIGlmIChwb29sW2tDbG9zZWRSZXNvbHZlXSAmJiBxdWV1ZS5pc0VtcHR5KCkpIHtcbiAgICAgICAgUHJvbWlzZVxuICAgICAgICAgIC5hbGwocG9vbFtrQ2xpZW50c10ubWFwKGMgPT4gYy5jbG9zZSgpKSlcbiAgICAgICAgICAudGhlbihwb29sW2tDbG9zZWRSZXNvbHZlXSlcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzW2tPbkNvbm5lY3RdID0gKG9yaWdpbiwgdGFyZ2V0cykgPT4ge1xuICAgICAgcG9vbC5lbWl0KCdjb25uZWN0Jywgb3JpZ2luLCBbcG9vbCwgLi4udGFyZ2V0c10pXG4gICAgfVxuXG4gICAgdGhpc1trT25EaXNjb25uZWN0XSA9IChvcmlnaW4sIHRhcmdldHMsIGVycikgPT4ge1xuICAgICAgcG9vbC5lbWl0KCdkaXNjb25uZWN0Jywgb3JpZ2luLCBbcG9vbCwgLi4udGFyZ2V0c10sIGVycilcbiAgICB9XG5cbiAgICB0aGlzW2tPbkNvbm5lY3Rpb25FcnJvcl0gPSAob3JpZ2luLCB0YXJnZXRzLCBlcnIpID0+IHtcbiAgICAgIHBvb2wuZW1pdCgnY29ubmVjdGlvbkVycm9yJywgb3JpZ2luLCBbcG9vbCwgLi4udGFyZ2V0c10sIGVycilcbiAgICB9XG5cbiAgICB0aGlzW2tTdGF0c10gPSBuZXcgUG9vbFN0YXRzKHRoaXMpXG4gIH1cblxuICBnZXQgW2tCdXN5XSAoKSB7XG4gICAgcmV0dXJuIHRoaXNba05lZWREcmFpbl1cbiAgfVxuXG4gIGdldCBba0Nvbm5lY3RlZF0gKCkge1xuICAgIHJldHVybiB0aGlzW2tDbGllbnRzXS5maWx0ZXIoY2xpZW50ID0+IGNsaWVudFtrQ29ubmVjdGVkXSkubGVuZ3RoXG4gIH1cblxuICBnZXQgW2tGcmVlXSAoKSB7XG4gICAgcmV0dXJuIHRoaXNba0NsaWVudHNdLmZpbHRlcihjbGllbnQgPT4gY2xpZW50W2tDb25uZWN0ZWRdICYmICFjbGllbnRba05lZWREcmFpbl0pLmxlbmd0aFxuICB9XG5cbiAgZ2V0IFtrUGVuZGluZ10gKCkge1xuICAgIGxldCByZXQgPSB0aGlzW2tRdWV1ZWRdXG4gICAgZm9yIChjb25zdCB7IFtrUGVuZGluZ106IHBlbmRpbmcgfSBvZiB0aGlzW2tDbGllbnRzXSkge1xuICAgICAgcmV0ICs9IHBlbmRpbmdcbiAgICB9XG4gICAgcmV0dXJuIHJldFxuICB9XG5cbiAgZ2V0IFtrUnVubmluZ10gKCkge1xuICAgIGxldCByZXQgPSAwXG4gICAgZm9yIChjb25zdCB7IFtrUnVubmluZ106IHJ1bm5pbmcgfSBvZiB0aGlzW2tDbGllbnRzXSkge1xuICAgICAgcmV0ICs9IHJ1bm5pbmdcbiAgICB9XG4gICAgcmV0dXJuIHJldFxuICB9XG5cbiAgZ2V0IFtrU2l6ZV0gKCkge1xuICAgIGxldCByZXQgPSB0aGlzW2tRdWV1ZWRdXG4gICAgZm9yIChjb25zdCB7IFtrU2l6ZV06IHNpemUgfSBvZiB0aGlzW2tDbGllbnRzXSkge1xuICAgICAgcmV0ICs9IHNpemVcbiAgICB9XG4gICAgcmV0dXJuIHJldFxuICB9XG5cbiAgZ2V0IHN0YXRzICgpIHtcbiAgICByZXR1cm4gdGhpc1trU3RhdHNdXG4gIH1cblxuICBhc3luYyBba0Nsb3NlXSAoKSB7XG4gICAgaWYgKHRoaXNba1F1ZXVlXS5pc0VtcHR5KCkpIHtcbiAgICAgIGF3YWl0IFByb21pc2UuYWxsKHRoaXNba0NsaWVudHNdLm1hcChjID0+IGMuY2xvc2UoKSkpXG4gICAgfSBlbHNlIHtcbiAgICAgIGF3YWl0IG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7XG4gICAgICAgIHRoaXNba0Nsb3NlZFJlc29sdmVdID0gcmVzb2x2ZVxuICAgICAgfSlcbiAgICB9XG4gIH1cblxuICBhc3luYyBba0Rlc3Ryb3ldIChlcnIpIHtcbiAgICB3aGlsZSAodHJ1ZSkge1xuICAgICAgY29uc3QgaXRlbSA9IHRoaXNba1F1ZXVlXS5zaGlmdCgpXG4gICAgICBpZiAoIWl0ZW0pIHtcbiAgICAgICAgYnJlYWtcbiAgICAgIH1cbiAgICAgIGl0ZW0uaGFuZGxlci5vbkVycm9yKGVycilcbiAgICB9XG5cbiAgICBhd2FpdCBQcm9taXNlLmFsbCh0aGlzW2tDbGllbnRzXS5tYXAoYyA9PiBjLmRlc3Ryb3koZXJyKSkpXG4gIH1cblxuICBba0Rpc3BhdGNoXSAob3B0cywgaGFuZGxlcikge1xuICAgIGNvbnN0IGRpc3BhdGNoZXIgPSB0aGlzW2tHZXREaXNwYXRjaGVyXSgpXG5cbiAgICBpZiAoIWRpc3BhdGNoZXIpIHtcbiAgICAgIHRoaXNba05lZWREcmFpbl0gPSB0cnVlXG4gICAgICB0aGlzW2tRdWV1ZV0ucHVzaCh7IG9wdHMsIGhhbmRsZXIgfSlcbiAgICAgIHRoaXNba1F1ZXVlZF0rK1xuICAgIH0gZWxzZSBpZiAoIWRpc3BhdGNoZXIuZGlzcGF0Y2gob3B0cywgaGFuZGxlcikpIHtcbiAgICAgIGRpc3BhdGNoZXJba05lZWREcmFpbl0gPSB0cnVlXG4gICAgICB0aGlzW2tOZWVkRHJhaW5dID0gIXRoaXNba0dldERpc3BhdGNoZXJdKClcbiAgICB9XG5cbiAgICByZXR1cm4gIXRoaXNba05lZWREcmFpbl1cbiAgfVxuXG4gIFtrQWRkQ2xpZW50XSAoY2xpZW50KSB7XG4gICAgY2xpZW50XG4gICAgICAub24oJ2RyYWluJywgdGhpc1trT25EcmFpbl0pXG4gICAgICAub24oJ2Nvbm5lY3QnLCB0aGlzW2tPbkNvbm5lY3RdKVxuICAgICAgLm9uKCdkaXNjb25uZWN0JywgdGhpc1trT25EaXNjb25uZWN0XSlcbiAgICAgIC5vbignY29ubmVjdGlvbkVycm9yJywgdGhpc1trT25Db25uZWN0aW9uRXJyb3JdKVxuXG4gICAgdGhpc1trQ2xpZW50c10ucHVzaChjbGllbnQpXG5cbiAgICBpZiAodGhpc1trTmVlZERyYWluXSkge1xuICAgICAgcXVldWVNaWNyb3Rhc2soKCkgPT4ge1xuICAgICAgICBpZiAodGhpc1trTmVlZERyYWluXSkge1xuICAgICAgICAgIHRoaXNba09uRHJhaW5dKGNsaWVudFtrVXJsXSwgW3RoaXMsIGNsaWVudF0pXG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXNcbiAgfVxuXG4gIFtrUmVtb3ZlQ2xpZW50XSAoY2xpZW50KSB7XG4gICAgY2xpZW50LmNsb3NlKCgpID0+IHtcbiAgICAgIGNvbnN0IGlkeCA9IHRoaXNba0NsaWVudHNdLmluZGV4T2YoY2xpZW50KVxuICAgICAgaWYgKGlkeCAhPT0gLTEpIHtcbiAgICAgICAgdGhpc1trQ2xpZW50c10uc3BsaWNlKGlkeCwgMSlcbiAgICAgIH1cbiAgICB9KVxuXG4gICAgdGhpc1trTmVlZERyYWluXSA9IHRoaXNba0NsaWVudHNdLnNvbWUoZGlzcGF0Y2hlciA9PiAoXG4gICAgICAhZGlzcGF0Y2hlcltrTmVlZERyYWluXSAmJlxuICAgICAgZGlzcGF0Y2hlci5jbG9zZWQgIT09IHRydWUgJiZcbiAgICAgIGRpc3BhdGNoZXIuZGVzdHJveWVkICE9PSB0cnVlXG4gICAgKSlcbiAgfVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgUG9vbEJhc2UsXG4gIGtDbGllbnRzLFxuICBrTmVlZERyYWluLFxuICBrQWRkQ2xpZW50LFxuICBrUmVtb3ZlQ2xpZW50LFxuICBrR2V0RGlzcGF0Y2hlclxufVxuIiwgIid1c2Ugc3RyaWN0J1xuXG5jb25zdCB7XG4gIFBvb2xCYXNlLFxuICBrQ2xpZW50cyxcbiAga05lZWREcmFpbixcbiAga0FkZENsaWVudCxcbiAga0dldERpc3BhdGNoZXJcbn0gPSByZXF1aXJlKCcuL3Bvb2wtYmFzZScpXG5jb25zdCBDbGllbnQgPSByZXF1aXJlKCcuL2NsaWVudCcpXG5jb25zdCB7XG4gIEludmFsaWRBcmd1bWVudEVycm9yXG59ID0gcmVxdWlyZSgnLi4vY29yZS9lcnJvcnMnKVxuY29uc3QgdXRpbCA9IHJlcXVpcmUoJy4uL2NvcmUvdXRpbCcpXG5jb25zdCB7IGtVcmwsIGtJbnRlcmNlcHRvcnMgfSA9IHJlcXVpcmUoJy4uL2NvcmUvc3ltYm9scycpXG5jb25zdCBidWlsZENvbm5lY3RvciA9IHJlcXVpcmUoJy4uL2NvcmUvY29ubmVjdCcpXG5cbmNvbnN0IGtPcHRpb25zID0gU3ltYm9sKCdvcHRpb25zJylcbmNvbnN0IGtDb25uZWN0aW9ucyA9IFN5bWJvbCgnY29ubmVjdGlvbnMnKVxuY29uc3Qga0ZhY3RvcnkgPSBTeW1ib2woJ2ZhY3RvcnknKVxuXG5mdW5jdGlvbiBkZWZhdWx0RmFjdG9yeSAob3JpZ2luLCBvcHRzKSB7XG4gIHJldHVybiBuZXcgQ2xpZW50KG9yaWdpbiwgb3B0cylcbn1cblxuY2xhc3MgUG9vbCBleHRlbmRzIFBvb2xCYXNlIHtcbiAgY29uc3RydWN0b3IgKG9yaWdpbiwge1xuICAgIGNvbm5lY3Rpb25zLFxuICAgIGZhY3RvcnkgPSBkZWZhdWx0RmFjdG9yeSxcbiAgICBjb25uZWN0LFxuICAgIGNvbm5lY3RUaW1lb3V0LFxuICAgIHRscyxcbiAgICBtYXhDYWNoZWRTZXNzaW9ucyxcbiAgICBzb2NrZXRQYXRoLFxuICAgIGF1dG9TZWxlY3RGYW1pbHksXG4gICAgYXV0b1NlbGVjdEZhbWlseUF0dGVtcHRUaW1lb3V0LFxuICAgIGFsbG93SDIsXG4gICAgLi4ub3B0aW9uc1xuICB9ID0ge30pIHtcbiAgICBzdXBlcigpXG5cbiAgICBpZiAoY29ubmVjdGlvbnMgIT0gbnVsbCAmJiAoIU51bWJlci5pc0Zpbml0ZShjb25uZWN0aW9ucykgfHwgY29ubmVjdGlvbnMgPCAwKSkge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudEVycm9yKCdpbnZhbGlkIGNvbm5lY3Rpb25zJylcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIGZhY3RvcnkgIT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRFcnJvcignZmFjdG9yeSBtdXN0IGJlIGEgZnVuY3Rpb24uJylcbiAgICB9XG5cbiAgICBpZiAoY29ubmVjdCAhPSBudWxsICYmIHR5cGVvZiBjb25uZWN0ICE9PSAnZnVuY3Rpb24nICYmIHR5cGVvZiBjb25uZWN0ICE9PSAnb2JqZWN0Jykge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudEVycm9yKCdjb25uZWN0IG11c3QgYmUgYSBmdW5jdGlvbiBvciBhbiBvYmplY3QnKVxuICAgIH1cblxuICAgIGlmICh0eXBlb2YgY29ubmVjdCAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgY29ubmVjdCA9IGJ1aWxkQ29ubmVjdG9yKHtcbiAgICAgICAgLi4udGxzLFxuICAgICAgICBtYXhDYWNoZWRTZXNzaW9ucyxcbiAgICAgICAgYWxsb3dIMixcbiAgICAgICAgc29ja2V0UGF0aCxcbiAgICAgICAgdGltZW91dDogY29ubmVjdFRpbWVvdXQsXG4gICAgICAgIC4uLihhdXRvU2VsZWN0RmFtaWx5ID8geyBhdXRvU2VsZWN0RmFtaWx5LCBhdXRvU2VsZWN0RmFtaWx5QXR0ZW1wdFRpbWVvdXQgfSA6IHVuZGVmaW5lZCksXG4gICAgICAgIC4uLmNvbm5lY3RcbiAgICAgIH0pXG4gICAgfVxuXG4gICAgdGhpc1trSW50ZXJjZXB0b3JzXSA9IG9wdGlvbnMuaW50ZXJjZXB0b3JzPy5Qb29sICYmIEFycmF5LmlzQXJyYXkob3B0aW9ucy5pbnRlcmNlcHRvcnMuUG9vbClcbiAgICAgID8gb3B0aW9ucy5pbnRlcmNlcHRvcnMuUG9vbFxuICAgICAgOiBbXVxuICAgIHRoaXNba0Nvbm5lY3Rpb25zXSA9IGNvbm5lY3Rpb25zIHx8IG51bGxcbiAgICB0aGlzW2tVcmxdID0gdXRpbC5wYXJzZU9yaWdpbihvcmlnaW4pXG4gICAgdGhpc1trT3B0aW9uc10gPSB7IC4uLnV0aWwuZGVlcENsb25lKG9wdGlvbnMpLCBjb25uZWN0LCBhbGxvd0gyIH1cbiAgICB0aGlzW2tPcHRpb25zXS5pbnRlcmNlcHRvcnMgPSBvcHRpb25zLmludGVyY2VwdG9yc1xuICAgICAgPyB7IC4uLm9wdGlvbnMuaW50ZXJjZXB0b3JzIH1cbiAgICAgIDogdW5kZWZpbmVkXG4gICAgdGhpc1trRmFjdG9yeV0gPSBmYWN0b3J5XG5cbiAgICB0aGlzLm9uKCdjb25uZWN0aW9uRXJyb3InLCAob3JpZ2luLCB0YXJnZXRzLCBlcnJvcikgPT4ge1xuICAgICAgLy8gSWYgYSBjb25uZWN0aW9uIGVycm9yIG9jY3Vycywgd2UgcmVtb3ZlIHRoZSBjbGllbnQgZnJvbSB0aGUgcG9vbCxcbiAgICAgIC8vIGFuZCBlbWl0IGEgY29ubmVjdGlvbkVycm9yIGV2ZW50LiBUaGV5IHdpbGwgbm90IGJlIHJlLXVzZWQuXG4gICAgICAvLyBGaXhlcyBodHRwczovL2dpdGh1Yi5jb20vbm9kZWpzL3VuZGljaS9pc3N1ZXMvMzg5NVxuICAgICAgZm9yIChjb25zdCB0YXJnZXQgb2YgdGFyZ2V0cykge1xuICAgICAgICAvLyBEbyBub3QgdXNlIGtSZW1vdmVDbGllbnQgaGVyZSwgYXMgaXQgd2lsbCBjbG9zZSB0aGUgY2xpZW50LFxuICAgICAgICAvLyBidXQgdGhlIGNsaWVudCBjYW5ub3QgYmUgY2xvc2VkIGluIHRoaXMgc3RhdGUuXG4gICAgICAgIGNvbnN0IGlkeCA9IHRoaXNba0NsaWVudHNdLmluZGV4T2YodGFyZ2V0KVxuICAgICAgICBpZiAoaWR4ICE9PSAtMSkge1xuICAgICAgICAgIHRoaXNba0NsaWVudHNdLnNwbGljZShpZHgsIDEpXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KVxuICB9XG5cbiAgW2tHZXREaXNwYXRjaGVyXSAoKSB7XG4gICAgZm9yIChjb25zdCBjbGllbnQgb2YgdGhpc1trQ2xpZW50c10pIHtcbiAgICAgIGlmICghY2xpZW50W2tOZWVkRHJhaW5dKSB7XG4gICAgICAgIHJldHVybiBjbGllbnRcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoIXRoaXNba0Nvbm5lY3Rpb25zXSB8fCB0aGlzW2tDbGllbnRzXS5sZW5ndGggPCB0aGlzW2tDb25uZWN0aW9uc10pIHtcbiAgICAgIGNvbnN0IGRpc3BhdGNoZXIgPSB0aGlzW2tGYWN0b3J5XSh0aGlzW2tVcmxdLCB0aGlzW2tPcHRpb25zXSlcbiAgICAgIHRoaXNba0FkZENsaWVudF0oZGlzcGF0Y2hlcilcbiAgICAgIHJldHVybiBkaXNwYXRjaGVyXG4gICAgfVxuICB9XG59XG5cbm1vZHVsZS5leHBvcnRzID0gUG9vbFxuIiwgIid1c2Ugc3RyaWN0J1xuXG5jb25zdCB7XG4gIEJhbGFuY2VkUG9vbE1pc3NpbmdVcHN0cmVhbUVycm9yLFxuICBJbnZhbGlkQXJndW1lbnRFcnJvclxufSA9IHJlcXVpcmUoJy4uL2NvcmUvZXJyb3JzJylcbmNvbnN0IHtcbiAgUG9vbEJhc2UsXG4gIGtDbGllbnRzLFxuICBrTmVlZERyYWluLFxuICBrQWRkQ2xpZW50LFxuICBrUmVtb3ZlQ2xpZW50LFxuICBrR2V0RGlzcGF0Y2hlclxufSA9IHJlcXVpcmUoJy4vcG9vbC1iYXNlJylcbmNvbnN0IFBvb2wgPSByZXF1aXJlKCcuL3Bvb2wnKVxuY29uc3QgeyBrVXJsLCBrSW50ZXJjZXB0b3JzIH0gPSByZXF1aXJlKCcuLi9jb3JlL3N5bWJvbHMnKVxuY29uc3QgeyBwYXJzZU9yaWdpbiB9ID0gcmVxdWlyZSgnLi4vY29yZS91dGlsJylcbmNvbnN0IGtGYWN0b3J5ID0gU3ltYm9sKCdmYWN0b3J5JylcblxuY29uc3Qga09wdGlvbnMgPSBTeW1ib2woJ29wdGlvbnMnKVxuY29uc3Qga0dyZWF0ZXN0Q29tbW9uRGl2aXNvciA9IFN5bWJvbCgna0dyZWF0ZXN0Q29tbW9uRGl2aXNvcicpXG5jb25zdCBrQ3VycmVudFdlaWdodCA9IFN5bWJvbCgna0N1cnJlbnRXZWlnaHQnKVxuY29uc3Qga0luZGV4ID0gU3ltYm9sKCdrSW5kZXgnKVxuY29uc3Qga1dlaWdodCA9IFN5bWJvbCgna1dlaWdodCcpXG5jb25zdCBrTWF4V2VpZ2h0UGVyU2VydmVyID0gU3ltYm9sKCdrTWF4V2VpZ2h0UGVyU2VydmVyJylcbmNvbnN0IGtFcnJvclBlbmFsdHkgPSBTeW1ib2woJ2tFcnJvclBlbmFsdHknKVxuXG4vKipcbiAqIENhbGN1bGF0ZSB0aGUgZ3JlYXRlc3QgY29tbW9uIGRpdmlzb3Igb2YgdHdvIG51bWJlcnMgYnlcbiAqIHVzaW5nIHRoZSBFdWNsaWRlYW4gYWxnb3JpdGhtLlxuICpcbiAqIEBwYXJhbSB7bnVtYmVyfSBhXG4gKiBAcGFyYW0ge251bWJlcn0gYlxuICogQHJldHVybnMge251bWJlcn1cbiAqL1xuZnVuY3Rpb24gZ2V0R3JlYXRlc3RDb21tb25EaXZpc29yIChhLCBiKSB7XG4gIGlmIChhID09PSAwKSByZXR1cm4gYlxuXG4gIHdoaWxlIChiICE9PSAwKSB7XG4gICAgY29uc3QgdCA9IGJcbiAgICBiID0gYSAlIGJcbiAgICBhID0gdFxuICB9XG4gIHJldHVybiBhXG59XG5cbmZ1bmN0aW9uIGRlZmF1bHRGYWN0b3J5IChvcmlnaW4sIG9wdHMpIHtcbiAgcmV0dXJuIG5ldyBQb29sKG9yaWdpbiwgb3B0cylcbn1cblxuY2xhc3MgQmFsYW5jZWRQb29sIGV4dGVuZHMgUG9vbEJhc2Uge1xuICBjb25zdHJ1Y3RvciAodXBzdHJlYW1zID0gW10sIHsgZmFjdG9yeSA9IGRlZmF1bHRGYWN0b3J5LCAuLi5vcHRzIH0gPSB7fSkge1xuICAgIHN1cGVyKClcblxuICAgIHRoaXNba09wdGlvbnNdID0gb3B0c1xuICAgIHRoaXNba0luZGV4XSA9IC0xXG4gICAgdGhpc1trQ3VycmVudFdlaWdodF0gPSAwXG5cbiAgICB0aGlzW2tNYXhXZWlnaHRQZXJTZXJ2ZXJdID0gdGhpc1trT3B0aW9uc10ubWF4V2VpZ2h0UGVyU2VydmVyIHx8IDEwMFxuICAgIHRoaXNba0Vycm9yUGVuYWx0eV0gPSB0aGlzW2tPcHRpb25zXS5lcnJvclBlbmFsdHkgfHwgMTVcblxuICAgIGlmICghQXJyYXkuaXNBcnJheSh1cHN0cmVhbXMpKSB7XG4gICAgICB1cHN0cmVhbXMgPSBbdXBzdHJlYW1zXVxuICAgIH1cblxuICAgIGlmICh0eXBlb2YgZmFjdG9yeSAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudEVycm9yKCdmYWN0b3J5IG11c3QgYmUgYSBmdW5jdGlvbi4nKVxuICAgIH1cblxuICAgIHRoaXNba0ludGVyY2VwdG9yc10gPSBvcHRzLmludGVyY2VwdG9ycz8uQmFsYW5jZWRQb29sICYmIEFycmF5LmlzQXJyYXkob3B0cy5pbnRlcmNlcHRvcnMuQmFsYW5jZWRQb29sKVxuICAgICAgPyBvcHRzLmludGVyY2VwdG9ycy5CYWxhbmNlZFBvb2xcbiAgICAgIDogW11cbiAgICB0aGlzW2tGYWN0b3J5XSA9IGZhY3RvcnlcblxuICAgIGZvciAoY29uc3QgdXBzdHJlYW0gb2YgdXBzdHJlYW1zKSB7XG4gICAgICB0aGlzLmFkZFVwc3RyZWFtKHVwc3RyZWFtKVxuICAgIH1cbiAgICB0aGlzLl91cGRhdGVCYWxhbmNlZFBvb2xTdGF0cygpXG4gIH1cblxuICBhZGRVcHN0cmVhbSAodXBzdHJlYW0pIHtcbiAgICBjb25zdCB1cHN0cmVhbU9yaWdpbiA9IHBhcnNlT3JpZ2luKHVwc3RyZWFtKS5vcmlnaW5cblxuICAgIGlmICh0aGlzW2tDbGllbnRzXS5maW5kKChwb29sKSA9PiAoXG4gICAgICBwb29sW2tVcmxdLm9yaWdpbiA9PT0gdXBzdHJlYW1PcmlnaW4gJiZcbiAgICAgIHBvb2wuY2xvc2VkICE9PSB0cnVlICYmXG4gICAgICBwb29sLmRlc3Ryb3llZCAhPT0gdHJ1ZVxuICAgICkpKSB7XG4gICAgICByZXR1cm4gdGhpc1xuICAgIH1cbiAgICBjb25zdCBwb29sID0gdGhpc1trRmFjdG9yeV0odXBzdHJlYW1PcmlnaW4sIE9iamVjdC5hc3NpZ24oe30sIHRoaXNba09wdGlvbnNdKSlcblxuICAgIHRoaXNba0FkZENsaWVudF0ocG9vbClcbiAgICBwb29sLm9uKCdjb25uZWN0JywgKCkgPT4ge1xuICAgICAgcG9vbFtrV2VpZ2h0XSA9IE1hdGgubWluKHRoaXNba01heFdlaWdodFBlclNlcnZlcl0sIHBvb2xba1dlaWdodF0gKyB0aGlzW2tFcnJvclBlbmFsdHldKVxuICAgIH0pXG5cbiAgICBwb29sLm9uKCdjb25uZWN0aW9uRXJyb3InLCAoKSA9PiB7XG4gICAgICBwb29sW2tXZWlnaHRdID0gTWF0aC5tYXgoMSwgcG9vbFtrV2VpZ2h0XSAtIHRoaXNba0Vycm9yUGVuYWx0eV0pXG4gICAgICB0aGlzLl91cGRhdGVCYWxhbmNlZFBvb2xTdGF0cygpXG4gICAgfSlcblxuICAgIHBvb2wub24oJ2Rpc2Nvbm5lY3QnLCAoLi4uYXJncykgPT4ge1xuICAgICAgY29uc3QgZXJyID0gYXJnc1syXVxuICAgICAgaWYgKGVyciAmJiBlcnIuY29kZSA9PT0gJ1VORF9FUlJfU09DS0VUJykge1xuICAgICAgICAvLyBkZWNyZWFzZSB0aGUgd2VpZ2h0IG9mIHRoZSBwb29sLlxuICAgICAgICBwb29sW2tXZWlnaHRdID0gTWF0aC5tYXgoMSwgcG9vbFtrV2VpZ2h0XSAtIHRoaXNba0Vycm9yUGVuYWx0eV0pXG4gICAgICAgIHRoaXMuX3VwZGF0ZUJhbGFuY2VkUG9vbFN0YXRzKClcbiAgICAgIH1cbiAgICB9KVxuXG4gICAgZm9yIChjb25zdCBjbGllbnQgb2YgdGhpc1trQ2xpZW50c10pIHtcbiAgICAgIGNsaWVudFtrV2VpZ2h0XSA9IHRoaXNba01heFdlaWdodFBlclNlcnZlcl1cbiAgICB9XG5cbiAgICB0aGlzLl91cGRhdGVCYWxhbmNlZFBvb2xTdGF0cygpXG5cbiAgICByZXR1cm4gdGhpc1xuICB9XG5cbiAgX3VwZGF0ZUJhbGFuY2VkUG9vbFN0YXRzICgpIHtcbiAgICBsZXQgcmVzdWx0ID0gMFxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpc1trQ2xpZW50c10ubGVuZ3RoOyBpKyspIHtcbiAgICAgIHJlc3VsdCA9IGdldEdyZWF0ZXN0Q29tbW9uRGl2aXNvcih0aGlzW2tDbGllbnRzXVtpXVtrV2VpZ2h0XSwgcmVzdWx0KVxuICAgIH1cblxuICAgIHRoaXNba0dyZWF0ZXN0Q29tbW9uRGl2aXNvcl0gPSByZXN1bHRcbiAgfVxuXG4gIHJlbW92ZVVwc3RyZWFtICh1cHN0cmVhbSkge1xuICAgIGNvbnN0IHVwc3RyZWFtT3JpZ2luID0gcGFyc2VPcmlnaW4odXBzdHJlYW0pLm9yaWdpblxuXG4gICAgY29uc3QgcG9vbCA9IHRoaXNba0NsaWVudHNdLmZpbmQoKHBvb2wpID0+IChcbiAgICAgIHBvb2xba1VybF0ub3JpZ2luID09PSB1cHN0cmVhbU9yaWdpbiAmJlxuICAgICAgcG9vbC5jbG9zZWQgIT09IHRydWUgJiZcbiAgICAgIHBvb2wuZGVzdHJveWVkICE9PSB0cnVlXG4gICAgKSlcblxuICAgIGlmIChwb29sKSB7XG4gICAgICB0aGlzW2tSZW1vdmVDbGllbnRdKHBvb2wpXG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXNcbiAgfVxuXG4gIGdldCB1cHN0cmVhbXMgKCkge1xuICAgIHJldHVybiB0aGlzW2tDbGllbnRzXVxuICAgICAgLmZpbHRlcihkaXNwYXRjaGVyID0+IGRpc3BhdGNoZXIuY2xvc2VkICE9PSB0cnVlICYmIGRpc3BhdGNoZXIuZGVzdHJveWVkICE9PSB0cnVlKVxuICAgICAgLm1hcCgocCkgPT4gcFtrVXJsXS5vcmlnaW4pXG4gIH1cblxuICBba0dldERpc3BhdGNoZXJdICgpIHtcbiAgICAvLyBXZSB2YWxpZGF0ZSB0aGF0IHBvb2xzIGlzIGdyZWF0ZXIgdGhhbiAwLFxuICAgIC8vIG90aGVyd2lzZSB3ZSB3b3VsZCBoYXZlIHRvIHdhaXQgdW50aWwgYW4gdXBzdHJlYW1cbiAgICAvLyBpcyBhZGRlZCwgd2hpY2ggbWlnaHQgbmV2ZXIgaGFwcGVuLlxuICAgIGlmICh0aGlzW2tDbGllbnRzXS5sZW5ndGggPT09IDApIHtcbiAgICAgIHRocm93IG5ldyBCYWxhbmNlZFBvb2xNaXNzaW5nVXBzdHJlYW1FcnJvcigpXG4gICAgfVxuXG4gICAgY29uc3QgZGlzcGF0Y2hlciA9IHRoaXNba0NsaWVudHNdLmZpbmQoZGlzcGF0Y2hlciA9PiAoXG4gICAgICAhZGlzcGF0Y2hlcltrTmVlZERyYWluXSAmJlxuICAgICAgZGlzcGF0Y2hlci5jbG9zZWQgIT09IHRydWUgJiZcbiAgICAgIGRpc3BhdGNoZXIuZGVzdHJveWVkICE9PSB0cnVlXG4gICAgKSlcblxuICAgIGlmICghZGlzcGF0Y2hlcikge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgY29uc3QgYWxsQ2xpZW50c0J1c3kgPSB0aGlzW2tDbGllbnRzXS5tYXAocG9vbCA9PiBwb29sW2tOZWVkRHJhaW5dKS5yZWR1Y2UoKGEsIGIpID0+IGEgJiYgYiwgdHJ1ZSlcblxuICAgIGlmIChhbGxDbGllbnRzQnVzeSkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgbGV0IGNvdW50ZXIgPSAwXG5cbiAgICBsZXQgbWF4V2VpZ2h0SW5kZXggPSB0aGlzW2tDbGllbnRzXS5maW5kSW5kZXgocG9vbCA9PiAhcG9vbFtrTmVlZERyYWluXSlcblxuICAgIHdoaWxlIChjb3VudGVyKysgPCB0aGlzW2tDbGllbnRzXS5sZW5ndGgpIHtcbiAgICAgIHRoaXNba0luZGV4XSA9ICh0aGlzW2tJbmRleF0gKyAxKSAlIHRoaXNba0NsaWVudHNdLmxlbmd0aFxuICAgICAgY29uc3QgcG9vbCA9IHRoaXNba0NsaWVudHNdW3RoaXNba0luZGV4XV1cblxuICAgICAgLy8gZmluZCBwb29sIGluZGV4IHdpdGggdGhlIGxhcmdlc3Qgd2VpZ2h0XG4gICAgICBpZiAocG9vbFtrV2VpZ2h0XSA+IHRoaXNba0NsaWVudHNdW21heFdlaWdodEluZGV4XVtrV2VpZ2h0XSAmJiAhcG9vbFtrTmVlZERyYWluXSkge1xuICAgICAgICBtYXhXZWlnaHRJbmRleCA9IHRoaXNba0luZGV4XVxuICAgICAgfVxuXG4gICAgICAvLyBkZWNyZWFzZSB0aGUgY3VycmVudCB3ZWlnaHQgZXZlcnkgYHRoaXNba0NsaWVudHNdLmxlbmd0aGAuXG4gICAgICBpZiAodGhpc1trSW5kZXhdID09PSAwKSB7XG4gICAgICAgIC8vIFNldCB0aGUgY3VycmVudCB3ZWlnaHQgdG8gdGhlIG5leHQgbG93ZXIgd2VpZ2h0LlxuICAgICAgICB0aGlzW2tDdXJyZW50V2VpZ2h0XSA9IHRoaXNba0N1cnJlbnRXZWlnaHRdIC0gdGhpc1trR3JlYXRlc3RDb21tb25EaXZpc29yXVxuXG4gICAgICAgIGlmICh0aGlzW2tDdXJyZW50V2VpZ2h0XSA8PSAwKSB7XG4gICAgICAgICAgdGhpc1trQ3VycmVudFdlaWdodF0gPSB0aGlzW2tNYXhXZWlnaHRQZXJTZXJ2ZXJdXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmIChwb29sW2tXZWlnaHRdID49IHRoaXNba0N1cnJlbnRXZWlnaHRdICYmICghcG9vbFtrTmVlZERyYWluXSkpIHtcbiAgICAgICAgcmV0dXJuIHBvb2xcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzW2tDdXJyZW50V2VpZ2h0XSA9IHRoaXNba0NsaWVudHNdW21heFdlaWdodEluZGV4XVtrV2VpZ2h0XVxuICAgIHRoaXNba0luZGV4XSA9IG1heFdlaWdodEluZGV4XG4gICAgcmV0dXJuIHRoaXNba0NsaWVudHNdW21heFdlaWdodEluZGV4XVxuICB9XG59XG5cbm1vZHVsZS5leHBvcnRzID0gQmFsYW5jZWRQb29sXG4iLCAiJ3VzZSBzdHJpY3QnXG5cbmNvbnN0IHsgSW52YWxpZEFyZ3VtZW50RXJyb3IgfSA9IHJlcXVpcmUoJy4uL2NvcmUvZXJyb3JzJylcbmNvbnN0IHsga0NsaWVudHMsIGtSdW5uaW5nLCBrQ2xvc2UsIGtEZXN0cm95LCBrRGlzcGF0Y2gsIGtJbnRlcmNlcHRvcnMgfSA9IHJlcXVpcmUoJy4uL2NvcmUvc3ltYm9scycpXG5jb25zdCBEaXNwYXRjaGVyQmFzZSA9IHJlcXVpcmUoJy4vZGlzcGF0Y2hlci1iYXNlJylcbmNvbnN0IFBvb2wgPSByZXF1aXJlKCcuL3Bvb2wnKVxuY29uc3QgQ2xpZW50ID0gcmVxdWlyZSgnLi9jbGllbnQnKVxuY29uc3QgdXRpbCA9IHJlcXVpcmUoJy4uL2NvcmUvdXRpbCcpXG5jb25zdCBjcmVhdGVSZWRpcmVjdEludGVyY2VwdG9yID0gcmVxdWlyZSgnLi4vaW50ZXJjZXB0b3IvcmVkaXJlY3QtaW50ZXJjZXB0b3InKVxuXG5jb25zdCBrT25Db25uZWN0ID0gU3ltYm9sKCdvbkNvbm5lY3QnKVxuY29uc3Qga09uRGlzY29ubmVjdCA9IFN5bWJvbCgnb25EaXNjb25uZWN0JylcbmNvbnN0IGtPbkNvbm5lY3Rpb25FcnJvciA9IFN5bWJvbCgnb25Db25uZWN0aW9uRXJyb3InKVxuY29uc3Qga01heFJlZGlyZWN0aW9ucyA9IFN5bWJvbCgnbWF4UmVkaXJlY3Rpb25zJylcbmNvbnN0IGtPbkRyYWluID0gU3ltYm9sKCdvbkRyYWluJylcbmNvbnN0IGtGYWN0b3J5ID0gU3ltYm9sKCdmYWN0b3J5JylcbmNvbnN0IGtPcHRpb25zID0gU3ltYm9sKCdvcHRpb25zJylcblxuZnVuY3Rpb24gZGVmYXVsdEZhY3RvcnkgKG9yaWdpbiwgb3B0cykge1xuICByZXR1cm4gb3B0cyAmJiBvcHRzLmNvbm5lY3Rpb25zID09PSAxXG4gICAgPyBuZXcgQ2xpZW50KG9yaWdpbiwgb3B0cylcbiAgICA6IG5ldyBQb29sKG9yaWdpbiwgb3B0cylcbn1cblxuY2xhc3MgQWdlbnQgZXh0ZW5kcyBEaXNwYXRjaGVyQmFzZSB7XG4gIGNvbnN0cnVjdG9yICh7IGZhY3RvcnkgPSBkZWZhdWx0RmFjdG9yeSwgbWF4UmVkaXJlY3Rpb25zID0gMCwgY29ubmVjdCwgLi4ub3B0aW9ucyB9ID0ge30pIHtcbiAgICBzdXBlcigpXG5cbiAgICBpZiAodHlwZW9mIGZhY3RvcnkgIT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRFcnJvcignZmFjdG9yeSBtdXN0IGJlIGEgZnVuY3Rpb24uJylcbiAgICB9XG5cbiAgICBpZiAoY29ubmVjdCAhPSBudWxsICYmIHR5cGVvZiBjb25uZWN0ICE9PSAnZnVuY3Rpb24nICYmIHR5cGVvZiBjb25uZWN0ICE9PSAnb2JqZWN0Jykge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudEVycm9yKCdjb25uZWN0IG11c3QgYmUgYSBmdW5jdGlvbiBvciBhbiBvYmplY3QnKVxuICAgIH1cblxuICAgIGlmICghTnVtYmVyLmlzSW50ZWdlcihtYXhSZWRpcmVjdGlvbnMpIHx8IG1heFJlZGlyZWN0aW9ucyA8IDApIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRFcnJvcignbWF4UmVkaXJlY3Rpb25zIG11c3QgYmUgYSBwb3NpdGl2ZSBudW1iZXInKVxuICAgIH1cblxuICAgIGlmIChjb25uZWN0ICYmIHR5cGVvZiBjb25uZWN0ICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICBjb25uZWN0ID0geyAuLi5jb25uZWN0IH1cbiAgICB9XG5cbiAgICB0aGlzW2tJbnRlcmNlcHRvcnNdID0gb3B0aW9ucy5pbnRlcmNlcHRvcnM/LkFnZW50ICYmIEFycmF5LmlzQXJyYXkob3B0aW9ucy5pbnRlcmNlcHRvcnMuQWdlbnQpXG4gICAgICA/IG9wdGlvbnMuaW50ZXJjZXB0b3JzLkFnZW50XG4gICAgICA6IFtjcmVhdGVSZWRpcmVjdEludGVyY2VwdG9yKHsgbWF4UmVkaXJlY3Rpb25zIH0pXVxuXG4gICAgdGhpc1trT3B0aW9uc10gPSB7IC4uLnV0aWwuZGVlcENsb25lKG9wdGlvbnMpLCBjb25uZWN0IH1cbiAgICB0aGlzW2tPcHRpb25zXS5pbnRlcmNlcHRvcnMgPSBvcHRpb25zLmludGVyY2VwdG9yc1xuICAgICAgPyB7IC4uLm9wdGlvbnMuaW50ZXJjZXB0b3JzIH1cbiAgICAgIDogdW5kZWZpbmVkXG4gICAgdGhpc1trTWF4UmVkaXJlY3Rpb25zXSA9IG1heFJlZGlyZWN0aW9uc1xuICAgIHRoaXNba0ZhY3RvcnldID0gZmFjdG9yeVxuICAgIHRoaXNba0NsaWVudHNdID0gbmV3IE1hcCgpXG5cbiAgICB0aGlzW2tPbkRyYWluXSA9IChvcmlnaW4sIHRhcmdldHMpID0+IHtcbiAgICAgIHRoaXMuZW1pdCgnZHJhaW4nLCBvcmlnaW4sIFt0aGlzLCAuLi50YXJnZXRzXSlcbiAgICB9XG5cbiAgICB0aGlzW2tPbkNvbm5lY3RdID0gKG9yaWdpbiwgdGFyZ2V0cykgPT4ge1xuICAgICAgdGhpcy5lbWl0KCdjb25uZWN0Jywgb3JpZ2luLCBbdGhpcywgLi4udGFyZ2V0c10pXG4gICAgfVxuXG4gICAgdGhpc1trT25EaXNjb25uZWN0XSA9IChvcmlnaW4sIHRhcmdldHMsIGVycikgPT4ge1xuICAgICAgdGhpcy5lbWl0KCdkaXNjb25uZWN0Jywgb3JpZ2luLCBbdGhpcywgLi4udGFyZ2V0c10sIGVycilcbiAgICB9XG5cbiAgICB0aGlzW2tPbkNvbm5lY3Rpb25FcnJvcl0gPSAob3JpZ2luLCB0YXJnZXRzLCBlcnIpID0+IHtcbiAgICAgIHRoaXMuZW1pdCgnY29ubmVjdGlvbkVycm9yJywgb3JpZ2luLCBbdGhpcywgLi4udGFyZ2V0c10sIGVycilcbiAgICB9XG4gIH1cblxuICBnZXQgW2tSdW5uaW5nXSAoKSB7XG4gICAgbGV0IHJldCA9IDBcbiAgICBmb3IgKGNvbnN0IGNsaWVudCBvZiB0aGlzW2tDbGllbnRzXS52YWx1ZXMoKSkge1xuICAgICAgcmV0ICs9IGNsaWVudFtrUnVubmluZ11cbiAgICB9XG4gICAgcmV0dXJuIHJldFxuICB9XG5cbiAgW2tEaXNwYXRjaF0gKG9wdHMsIGhhbmRsZXIpIHtcbiAgICBsZXQga2V5XG4gICAgaWYgKG9wdHMub3JpZ2luICYmICh0eXBlb2Ygb3B0cy5vcmlnaW4gPT09ICdzdHJpbmcnIHx8IG9wdHMub3JpZ2luIGluc3RhbmNlb2YgVVJMKSkge1xuICAgICAga2V5ID0gU3RyaW5nKG9wdHMub3JpZ2luKVxuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50RXJyb3IoJ29wdHMub3JpZ2luIG11c3QgYmUgYSBub24tZW1wdHkgc3RyaW5nIG9yIFVSTC4nKVxuICAgIH1cblxuICAgIGxldCBkaXNwYXRjaGVyID0gdGhpc1trQ2xpZW50c10uZ2V0KGtleSlcblxuICAgIGlmICghZGlzcGF0Y2hlcikge1xuICAgICAgZGlzcGF0Y2hlciA9IHRoaXNba0ZhY3RvcnldKG9wdHMub3JpZ2luLCB0aGlzW2tPcHRpb25zXSlcbiAgICAgICAgLm9uKCdkcmFpbicsIHRoaXNba09uRHJhaW5dKVxuICAgICAgICAub24oJ2Nvbm5lY3QnLCB0aGlzW2tPbkNvbm5lY3RdKVxuICAgICAgICAub24oJ2Rpc2Nvbm5lY3QnLCB0aGlzW2tPbkRpc2Nvbm5lY3RdKVxuICAgICAgICAub24oJ2Nvbm5lY3Rpb25FcnJvcicsIHRoaXNba09uQ29ubmVjdGlvbkVycm9yXSlcblxuICAgICAgLy8gVGhpcyBpbnRyb2R1Y2VzIGEgdGlueSBtZW1vcnkgbGVhaywgYXMgZGlzcGF0Y2hlcnMgYXJlIG5ldmVyIHJlbW92ZWQgZnJvbSB0aGUgbWFwLlxuICAgICAgLy8gVE9ETyhtY29sbGluYSk6IHJlbW92ZSB0ZSB0aW1lciB3aGVuIHRoZSBjbGllbnQvcG9vbCBkbyBub3QgaGF2ZSBhbnkgbW9yZVxuICAgICAgLy8gYWN0aXZlIGNvbm5lY3Rpb25zLlxuICAgICAgdGhpc1trQ2xpZW50c10uc2V0KGtleSwgZGlzcGF0Y2hlcilcbiAgICB9XG5cbiAgICByZXR1cm4gZGlzcGF0Y2hlci5kaXNwYXRjaChvcHRzLCBoYW5kbGVyKVxuICB9XG5cbiAgYXN5bmMgW2tDbG9zZV0gKCkge1xuICAgIGNvbnN0IGNsb3NlUHJvbWlzZXMgPSBbXVxuICAgIGZvciAoY29uc3QgY2xpZW50IG9mIHRoaXNba0NsaWVudHNdLnZhbHVlcygpKSB7XG4gICAgICBjbG9zZVByb21pc2VzLnB1c2goY2xpZW50LmNsb3NlKCkpXG4gICAgfVxuICAgIHRoaXNba0NsaWVudHNdLmNsZWFyKClcblxuICAgIGF3YWl0IFByb21pc2UuYWxsKGNsb3NlUHJvbWlzZXMpXG4gIH1cblxuICBhc3luYyBba0Rlc3Ryb3ldIChlcnIpIHtcbiAgICBjb25zdCBkZXN0cm95UHJvbWlzZXMgPSBbXVxuICAgIGZvciAoY29uc3QgY2xpZW50IG9mIHRoaXNba0NsaWVudHNdLnZhbHVlcygpKSB7XG4gICAgICBkZXN0cm95UHJvbWlzZXMucHVzaChjbGllbnQuZGVzdHJveShlcnIpKVxuICAgIH1cbiAgICB0aGlzW2tDbGllbnRzXS5jbGVhcigpXG5cbiAgICBhd2FpdCBQcm9taXNlLmFsbChkZXN0cm95UHJvbWlzZXMpXG4gIH1cbn1cblxubW9kdWxlLmV4cG9ydHMgPSBBZ2VudFxuIiwgIid1c2Ugc3RyaWN0J1xuXG5jb25zdCB7IGtQcm94eSwga0Nsb3NlLCBrRGVzdHJveSwga0ludGVyY2VwdG9ycyB9ID0gcmVxdWlyZSgnLi4vY29yZS9zeW1ib2xzJylcbmNvbnN0IHsgVVJMIH0gPSByZXF1aXJlKCdub2RlOnVybCcpXG5jb25zdCBBZ2VudCA9IHJlcXVpcmUoJy4vYWdlbnQnKVxuY29uc3QgUG9vbCA9IHJlcXVpcmUoJy4vcG9vbCcpXG5jb25zdCBEaXNwYXRjaGVyQmFzZSA9IHJlcXVpcmUoJy4vZGlzcGF0Y2hlci1iYXNlJylcbmNvbnN0IHsgSW52YWxpZEFyZ3VtZW50RXJyb3IsIFJlcXVlc3RBYm9ydGVkRXJyb3IsIFNlY3VyZVByb3h5Q29ubmVjdGlvbkVycm9yIH0gPSByZXF1aXJlKCcuLi9jb3JlL2Vycm9ycycpXG5jb25zdCBidWlsZENvbm5lY3RvciA9IHJlcXVpcmUoJy4uL2NvcmUvY29ubmVjdCcpXG5cbmNvbnN0IGtBZ2VudCA9IFN5bWJvbCgncHJveHkgYWdlbnQnKVxuY29uc3Qga0NsaWVudCA9IFN5bWJvbCgncHJveHkgY2xpZW50JylcbmNvbnN0IGtQcm94eUhlYWRlcnMgPSBTeW1ib2woJ3Byb3h5IGhlYWRlcnMnKVxuY29uc3Qga1JlcXVlc3RUbHMgPSBTeW1ib2woJ3JlcXVlc3QgdGxzIHNldHRpbmdzJylcbmNvbnN0IGtQcm94eVRscyA9IFN5bWJvbCgncHJveHkgdGxzIHNldHRpbmdzJylcbmNvbnN0IGtDb25uZWN0RW5kcG9pbnQgPSBTeW1ib2woJ2Nvbm5lY3QgZW5kcG9pbnQgZnVuY3Rpb24nKVxuXG5mdW5jdGlvbiBkZWZhdWx0UHJvdG9jb2xQb3J0IChwcm90b2NvbCkge1xuICByZXR1cm4gcHJvdG9jb2wgPT09ICdodHRwczonID8gNDQzIDogODBcbn1cblxuZnVuY3Rpb24gZGVmYXVsdEZhY3RvcnkgKG9yaWdpbiwgb3B0cykge1xuICByZXR1cm4gbmV3IFBvb2wob3JpZ2luLCBvcHRzKVxufVxuXG5jb25zdCBub29wID0gKCkgPT4ge31cblxuY2xhc3MgUHJveHlBZ2VudCBleHRlbmRzIERpc3BhdGNoZXJCYXNlIHtcbiAgY29uc3RydWN0b3IgKG9wdHMpIHtcbiAgICBzdXBlcigpXG5cbiAgICBpZiAoIW9wdHMgfHwgKHR5cGVvZiBvcHRzID09PSAnb2JqZWN0JyAmJiAhKG9wdHMgaW5zdGFuY2VvZiBVUkwpICYmICFvcHRzLnVyaSkpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRFcnJvcignUHJveHkgdXJpIGlzIG1hbmRhdG9yeScpXG4gICAgfVxuXG4gICAgY29uc3QgeyBjbGllbnRGYWN0b3J5ID0gZGVmYXVsdEZhY3RvcnkgfSA9IG9wdHNcbiAgICBpZiAodHlwZW9mIGNsaWVudEZhY3RvcnkgIT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRFcnJvcignUHJveHkgb3B0cy5jbGllbnRGYWN0b3J5IG11c3QgYmUgYSBmdW5jdGlvbi4nKVxuICAgIH1cblxuICAgIGNvbnN0IHVybCA9IHRoaXMuI2dldFVybChvcHRzKVxuICAgIGNvbnN0IHsgaHJlZiwgb3JpZ2luLCBwb3J0LCBwcm90b2NvbCwgdXNlcm5hbWUsIHBhc3N3b3JkLCBob3N0bmFtZTogcHJveHlIb3N0bmFtZSB9ID0gdXJsXG5cbiAgICB0aGlzW2tQcm94eV0gPSB7IHVyaTogaHJlZiwgcHJvdG9jb2wgfVxuICAgIHRoaXNba0ludGVyY2VwdG9yc10gPSBvcHRzLmludGVyY2VwdG9ycz8uUHJveHlBZ2VudCAmJiBBcnJheS5pc0FycmF5KG9wdHMuaW50ZXJjZXB0b3JzLlByb3h5QWdlbnQpXG4gICAgICA/IG9wdHMuaW50ZXJjZXB0b3JzLlByb3h5QWdlbnRcbiAgICAgIDogW11cbiAgICB0aGlzW2tSZXF1ZXN0VGxzXSA9IG9wdHMucmVxdWVzdFRsc1xuICAgIHRoaXNba1Byb3h5VGxzXSA9IG9wdHMucHJveHlUbHNcbiAgICB0aGlzW2tQcm94eUhlYWRlcnNdID0gb3B0cy5oZWFkZXJzIHx8IHt9XG5cbiAgICBpZiAob3B0cy5hdXRoICYmIG9wdHMudG9rZW4pIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRFcnJvcignb3B0cy5hdXRoIGNhbm5vdCBiZSB1c2VkIGluIGNvbWJpbmF0aW9uIHdpdGggb3B0cy50b2tlbicpXG4gICAgfSBlbHNlIGlmIChvcHRzLmF1dGgpIHtcbiAgICAgIC8qIEBkZXByZWNhdGVkIGluIGZhdm91ciBvZiBvcHRzLnRva2VuICovXG4gICAgICB0aGlzW2tQcm94eUhlYWRlcnNdWydwcm94eS1hdXRob3JpemF0aW9uJ10gPSBgQmFzaWMgJHtvcHRzLmF1dGh9YFxuICAgIH0gZWxzZSBpZiAob3B0cy50b2tlbikge1xuICAgICAgdGhpc1trUHJveHlIZWFkZXJzXVsncHJveHktYXV0aG9yaXphdGlvbiddID0gb3B0cy50b2tlblxuICAgIH0gZWxzZSBpZiAodXNlcm5hbWUgJiYgcGFzc3dvcmQpIHtcbiAgICAgIHRoaXNba1Byb3h5SGVhZGVyc11bJ3Byb3h5LWF1dGhvcml6YXRpb24nXSA9IGBCYXNpYyAke0J1ZmZlci5mcm9tKGAke2RlY29kZVVSSUNvbXBvbmVudCh1c2VybmFtZSl9OiR7ZGVjb2RlVVJJQ29tcG9uZW50KHBhc3N3b3JkKX1gKS50b1N0cmluZygnYmFzZTY0Jyl9YFxuICAgIH1cblxuICAgIGNvbnN0IGNvbm5lY3QgPSBidWlsZENvbm5lY3Rvcih7IC4uLm9wdHMucHJveHlUbHMgfSlcbiAgICB0aGlzW2tDb25uZWN0RW5kcG9pbnRdID0gYnVpbGRDb25uZWN0b3IoeyAuLi5vcHRzLnJlcXVlc3RUbHMgfSlcbiAgICB0aGlzW2tDbGllbnRdID0gY2xpZW50RmFjdG9yeSh1cmwsIHsgY29ubmVjdCB9KVxuICAgIHRoaXNba0FnZW50XSA9IG5ldyBBZ2VudCh7XG4gICAgICAuLi5vcHRzLFxuICAgICAgY29ubmVjdDogYXN5bmMgKG9wdHMsIGNhbGxiYWNrKSA9PiB7XG4gICAgICAgIGxldCByZXF1ZXN0ZWRQYXRoID0gb3B0cy5ob3N0XG4gICAgICAgIGlmICghb3B0cy5wb3J0KSB7XG4gICAgICAgICAgcmVxdWVzdGVkUGF0aCArPSBgOiR7ZGVmYXVsdFByb3RvY29sUG9ydChvcHRzLnByb3RvY29sKX1gXG4gICAgICAgIH1cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBjb25zdCB7IHNvY2tldCwgc3RhdHVzQ29kZSB9ID0gYXdhaXQgdGhpc1trQ2xpZW50XS5jb25uZWN0KHtcbiAgICAgICAgICAgIG9yaWdpbixcbiAgICAgICAgICAgIHBvcnQsXG4gICAgICAgICAgICBwYXRoOiByZXF1ZXN0ZWRQYXRoLFxuICAgICAgICAgICAgc2lnbmFsOiBvcHRzLnNpZ25hbCxcbiAgICAgICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAgICAgLi4udGhpc1trUHJveHlIZWFkZXJzXSxcbiAgICAgICAgICAgICAgaG9zdDogb3B0cy5ob3N0XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc2VydmVybmFtZTogdGhpc1trUHJveHlUbHNdPy5zZXJ2ZXJuYW1lIHx8IHByb3h5SG9zdG5hbWVcbiAgICAgICAgICB9KVxuICAgICAgICAgIGlmIChzdGF0dXNDb2RlICE9PSAyMDApIHtcbiAgICAgICAgICAgIHNvY2tldC5vbignZXJyb3InLCBub29wKS5kZXN0cm95KClcbiAgICAgICAgICAgIGNhbGxiYWNrKG5ldyBSZXF1ZXN0QWJvcnRlZEVycm9yKGBQcm94eSByZXNwb25zZSAoJHtzdGF0dXNDb2RlfSkgIT09IDIwMCB3aGVuIEhUVFAgVHVubmVsaW5nYCkpXG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChvcHRzLnByb3RvY29sICE9PSAnaHR0cHM6Jykge1xuICAgICAgICAgICAgY2FsbGJhY2sobnVsbCwgc29ja2V0KVxuICAgICAgICAgICAgcmV0dXJuXG4gICAgICAgICAgfVxuICAgICAgICAgIGxldCBzZXJ2ZXJuYW1lXG4gICAgICAgICAgaWYgKHRoaXNba1JlcXVlc3RUbHNdKSB7XG4gICAgICAgICAgICBzZXJ2ZXJuYW1lID0gdGhpc1trUmVxdWVzdFRsc10uc2VydmVybmFtZVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBzZXJ2ZXJuYW1lID0gb3B0cy5zZXJ2ZXJuYW1lXG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXNba0Nvbm5lY3RFbmRwb2ludF0oeyAuLi5vcHRzLCBzZXJ2ZXJuYW1lLCBodHRwU29ja2V0OiBzb2NrZXQgfSwgY2FsbGJhY2spXG4gICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgIGlmIChlcnIuY29kZSA9PT0gJ0VSUl9UTFNfQ0VSVF9BTFROQU1FX0lOVkFMSUQnKSB7XG4gICAgICAgICAgICAvLyBUaHJvdyBhIGN1c3RvbSBlcnJvciB0byBhdm9pZCBsb29wIGluIGNsaWVudC5qcyNjb25uZWN0XG4gICAgICAgICAgICBjYWxsYmFjayhuZXcgU2VjdXJlUHJveHlDb25uZWN0aW9uRXJyb3IoZXJyKSlcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY2FsbGJhY2soZXJyKVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pXG4gIH1cblxuICBkaXNwYXRjaCAob3B0cywgaGFuZGxlcikge1xuICAgIGNvbnN0IGhlYWRlcnMgPSBidWlsZEhlYWRlcnMob3B0cy5oZWFkZXJzKVxuICAgIHRocm93SWZQcm94eUF1dGhJc1NlbnQoaGVhZGVycylcblxuICAgIGlmIChoZWFkZXJzICYmICEoJ2hvc3QnIGluIGhlYWRlcnMpICYmICEoJ0hvc3QnIGluIGhlYWRlcnMpKSB7XG4gICAgICBjb25zdCB7IGhvc3QgfSA9IG5ldyBVUkwob3B0cy5vcmlnaW4pXG4gICAgICBoZWFkZXJzLmhvc3QgPSBob3N0XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXNba0FnZW50XS5kaXNwYXRjaChcbiAgICAgIHtcbiAgICAgICAgLi4ub3B0cyxcbiAgICAgICAgaGVhZGVyc1xuICAgICAgfSxcbiAgICAgIGhhbmRsZXJcbiAgICApXG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHtpbXBvcnQoJy4uL3R5cGVzL3Byb3h5LWFnZW50JykuUHJveHlBZ2VudC5PcHRpb25zIHwgc3RyaW5nIHwgVVJMfSBvcHRzXG4gICAqIEByZXR1cm5zIHtVUkx9XG4gICAqL1xuICAjZ2V0VXJsIChvcHRzKSB7XG4gICAgaWYgKHR5cGVvZiBvcHRzID09PSAnc3RyaW5nJykge1xuICAgICAgcmV0dXJuIG5ldyBVUkwob3B0cylcbiAgICB9IGVsc2UgaWYgKG9wdHMgaW5zdGFuY2VvZiBVUkwpIHtcbiAgICAgIHJldHVybiBvcHRzXG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBuZXcgVVJMKG9wdHMudXJpKVxuICAgIH1cbiAgfVxuXG4gIGFzeW5jIFtrQ2xvc2VdICgpIHtcbiAgICBhd2FpdCB0aGlzW2tBZ2VudF0uY2xvc2UoKVxuICAgIGF3YWl0IHRoaXNba0NsaWVudF0uY2xvc2UoKVxuICB9XG5cbiAgYXN5bmMgW2tEZXN0cm95XSAoKSB7XG4gICAgYXdhaXQgdGhpc1trQWdlbnRdLmRlc3Ryb3koKVxuICAgIGF3YWl0IHRoaXNba0NsaWVudF0uZGVzdHJveSgpXG4gIH1cbn1cblxuLyoqXG4gKiBAcGFyYW0ge3N0cmluZ1tdIHwgUmVjb3JkPHN0cmluZywgc3RyaW5nPn0gaGVhZGVyc1xuICogQHJldHVybnMge1JlY29yZDxzdHJpbmcsIHN0cmluZz59XG4gKi9cbmZ1bmN0aW9uIGJ1aWxkSGVhZGVycyAoaGVhZGVycykge1xuICAvLyBXaGVuIHVzaW5nIHVuZGljaS5mZXRjaCwgdGhlIGhlYWRlcnMgbGlzdCBpcyBzdG9yZWRcbiAgLy8gYXMgYW4gYXJyYXkuXG4gIGlmIChBcnJheS5pc0FycmF5KGhlYWRlcnMpKSB7XG4gICAgLyoqIEB0eXBlIHtSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+fSAqL1xuICAgIGNvbnN0IGhlYWRlcnNQYWlyID0ge31cblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgaGVhZGVycy5sZW5ndGg7IGkgKz0gMikge1xuICAgICAgaGVhZGVyc1BhaXJbaGVhZGVyc1tpXV0gPSBoZWFkZXJzW2kgKyAxXVxuICAgIH1cblxuICAgIHJldHVybiBoZWFkZXJzUGFpclxuICB9XG5cbiAgcmV0dXJuIGhlYWRlcnNcbn1cblxuLyoqXG4gKiBAcGFyYW0ge1JlY29yZDxzdHJpbmcsIHN0cmluZz59IGhlYWRlcnNcbiAqXG4gKiBQcmV2aW91cyB2ZXJzaW9ucyBvZiBQcm94eUFnZW50IHN1Z2dlc3RzIHRoZSBQcm94eS1BdXRob3JpemF0aW9uIGluIHJlcXVlc3QgaGVhZGVyc1xuICogTmV2ZXJ0aGVsZXNzLCBpdCB3YXMgY2hhbmdlZCBhbmQgdG8gYXZvaWQgYSBzZWN1cml0eSB2dWxuZXJhYmlsaXR5IGJ5IGVuZCB1c2Vyc1xuICogdGhpcyBjaGVjayB3YXMgY3JlYXRlZC5cbiAqIEl0IHNob3VsZCBiZSByZW1vdmVkIGluIHRoZSBuZXh0IG1ham9yIHZlcnNpb24gZm9yIHBlcmZvcm1hbmNlIHJlYXNvbnNcbiAqL1xuZnVuY3Rpb24gdGhyb3dJZlByb3h5QXV0aElzU2VudCAoaGVhZGVycykge1xuICBjb25zdCBleGlzdFByb3h5QXV0aCA9IGhlYWRlcnMgJiYgT2JqZWN0LmtleXMoaGVhZGVycylcbiAgICAuZmluZCgoa2V5KSA9PiBrZXkudG9Mb3dlckNhc2UoKSA9PT0gJ3Byb3h5LWF1dGhvcml6YXRpb24nKVxuICBpZiAoZXhpc3RQcm94eUF1dGgpIHtcbiAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50RXJyb3IoJ1Byb3h5LUF1dGhvcml6YXRpb24gc2hvdWxkIGJlIHNlbnQgaW4gUHJveHlBZ2VudCBjb25zdHJ1Y3RvcicpXG4gIH1cbn1cblxubW9kdWxlLmV4cG9ydHMgPSBQcm94eUFnZW50XG4iLCAiJ3VzZSBzdHJpY3QnXG5cbmNvbnN0IERpc3BhdGNoZXJCYXNlID0gcmVxdWlyZSgnLi9kaXNwYXRjaGVyLWJhc2UnKVxuY29uc3QgeyBrQ2xvc2UsIGtEZXN0cm95LCBrQ2xvc2VkLCBrRGVzdHJveWVkLCBrRGlzcGF0Y2gsIGtOb1Byb3h5QWdlbnQsIGtIdHRwUHJveHlBZ2VudCwga0h0dHBzUHJveHlBZ2VudCB9ID0gcmVxdWlyZSgnLi4vY29yZS9zeW1ib2xzJylcbmNvbnN0IFByb3h5QWdlbnQgPSByZXF1aXJlKCcuL3Byb3h5LWFnZW50JylcbmNvbnN0IEFnZW50ID0gcmVxdWlyZSgnLi9hZ2VudCcpXG5cbmNvbnN0IERFRkFVTFRfUE9SVFMgPSB7XG4gICdodHRwOic6IDgwLFxuICAnaHR0cHM6JzogNDQzXG59XG5cbmxldCBleHBlcmltZW50YWxXYXJuZWQgPSBmYWxzZVxuXG5jbGFzcyBFbnZIdHRwUHJveHlBZ2VudCBleHRlbmRzIERpc3BhdGNoZXJCYXNlIHtcbiAgI25vUHJveHlWYWx1ZSA9IG51bGxcbiAgI25vUHJveHlFbnRyaWVzID0gbnVsbFxuICAjb3B0cyA9IG51bGxcblxuICBjb25zdHJ1Y3RvciAob3B0cyA9IHt9KSB7XG4gICAgc3VwZXIoKVxuICAgIHRoaXMuI29wdHMgPSBvcHRzXG5cbiAgICBpZiAoIWV4cGVyaW1lbnRhbFdhcm5lZCkge1xuICAgICAgZXhwZXJpbWVudGFsV2FybmVkID0gdHJ1ZVxuICAgICAgcHJvY2Vzcy5lbWl0V2FybmluZygnRW52SHR0cFByb3h5QWdlbnQgaXMgZXhwZXJpbWVudGFsLCBleHBlY3QgdGhlbSB0byBjaGFuZ2UgYXQgYW55IHRpbWUuJywge1xuICAgICAgICBjb2RlOiAnVU5ESUNJLUVIUEEnXG4gICAgICB9KVxuICAgIH1cblxuICAgIGNvbnN0IHsgaHR0cFByb3h5LCBodHRwc1Byb3h5LCBub1Byb3h5LCAuLi5hZ2VudE9wdHMgfSA9IG9wdHNcblxuICAgIHRoaXNba05vUHJveHlBZ2VudF0gPSBuZXcgQWdlbnQoYWdlbnRPcHRzKVxuXG4gICAgY29uc3QgSFRUUF9QUk9YWSA9IGh0dHBQcm94eSA/PyBwcm9jZXNzLmVudi5odHRwX3Byb3h5ID8/IHByb2Nlc3MuZW52LkhUVFBfUFJPWFlcbiAgICBpZiAoSFRUUF9QUk9YWSkge1xuICAgICAgdGhpc1trSHR0cFByb3h5QWdlbnRdID0gbmV3IFByb3h5QWdlbnQoeyAuLi5hZ2VudE9wdHMsIHVyaTogSFRUUF9QUk9YWSB9KVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzW2tIdHRwUHJveHlBZ2VudF0gPSB0aGlzW2tOb1Byb3h5QWdlbnRdXG4gICAgfVxuXG4gICAgY29uc3QgSFRUUFNfUFJPWFkgPSBodHRwc1Byb3h5ID8/IHByb2Nlc3MuZW52Lmh0dHBzX3Byb3h5ID8/IHByb2Nlc3MuZW52LkhUVFBTX1BST1hZXG4gICAgaWYgKEhUVFBTX1BST1hZKSB7XG4gICAgICB0aGlzW2tIdHRwc1Byb3h5QWdlbnRdID0gbmV3IFByb3h5QWdlbnQoeyAuLi5hZ2VudE9wdHMsIHVyaTogSFRUUFNfUFJPWFkgfSlcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpc1trSHR0cHNQcm94eUFnZW50XSA9IHRoaXNba0h0dHBQcm94eUFnZW50XVxuICAgIH1cblxuICAgIHRoaXMuI3BhcnNlTm9Qcm94eSgpXG4gIH1cblxuICBba0Rpc3BhdGNoXSAob3B0cywgaGFuZGxlcikge1xuICAgIGNvbnN0IHVybCA9IG5ldyBVUkwob3B0cy5vcmlnaW4pXG4gICAgY29uc3QgYWdlbnQgPSB0aGlzLiNnZXRQcm94eUFnZW50Rm9yVXJsKHVybClcbiAgICByZXR1cm4gYWdlbnQuZGlzcGF0Y2gob3B0cywgaGFuZGxlcilcbiAgfVxuXG4gIGFzeW5jIFtrQ2xvc2VdICgpIHtcbiAgICBhd2FpdCB0aGlzW2tOb1Byb3h5QWdlbnRdLmNsb3NlKClcbiAgICBpZiAoIXRoaXNba0h0dHBQcm94eUFnZW50XVtrQ2xvc2VkXSkge1xuICAgICAgYXdhaXQgdGhpc1trSHR0cFByb3h5QWdlbnRdLmNsb3NlKClcbiAgICB9XG4gICAgaWYgKCF0aGlzW2tIdHRwc1Byb3h5QWdlbnRdW2tDbG9zZWRdKSB7XG4gICAgICBhd2FpdCB0aGlzW2tIdHRwc1Byb3h5QWdlbnRdLmNsb3NlKClcbiAgICB9XG4gIH1cblxuICBhc3luYyBba0Rlc3Ryb3ldIChlcnIpIHtcbiAgICBhd2FpdCB0aGlzW2tOb1Byb3h5QWdlbnRdLmRlc3Ryb3koZXJyKVxuICAgIGlmICghdGhpc1trSHR0cFByb3h5QWdlbnRdW2tEZXN0cm95ZWRdKSB7XG4gICAgICBhd2FpdCB0aGlzW2tIdHRwUHJveHlBZ2VudF0uZGVzdHJveShlcnIpXG4gICAgfVxuICAgIGlmICghdGhpc1trSHR0cHNQcm94eUFnZW50XVtrRGVzdHJveWVkXSkge1xuICAgICAgYXdhaXQgdGhpc1trSHR0cHNQcm94eUFnZW50XS5kZXN0cm95KGVycilcbiAgICB9XG4gIH1cblxuICAjZ2V0UHJveHlBZ2VudEZvclVybCAodXJsKSB7XG4gICAgbGV0IHsgcHJvdG9jb2wsIGhvc3Q6IGhvc3RuYW1lLCBwb3J0IH0gPSB1cmxcblxuICAgIC8vIFN0cmlwcGluZyBwb3J0cyBpbiB0aGlzIHdheSBpbnN0ZWFkIG9mIHVzaW5nIHBhcnNlZFVybC5ob3N0bmFtZSB0byBtYWtlXG4gICAgLy8gc3VyZSB0aGF0IHRoZSBicmFja2V0cyBhcm91bmQgSVB2NiBhZGRyZXNzZXMgYXJlIGtlcHQuXG4gICAgaG9zdG5hbWUgPSBob3N0bmFtZS5yZXBsYWNlKC86XFxkKiQvLCAnJykudG9Mb3dlckNhc2UoKVxuICAgIHBvcnQgPSBOdW1iZXIucGFyc2VJbnQocG9ydCwgMTApIHx8IERFRkFVTFRfUE9SVFNbcHJvdG9jb2xdIHx8IDBcbiAgICBpZiAoIXRoaXMuI3Nob3VsZFByb3h5KGhvc3RuYW1lLCBwb3J0KSkge1xuICAgICAgcmV0dXJuIHRoaXNba05vUHJveHlBZ2VudF1cbiAgICB9XG4gICAgaWYgKHByb3RvY29sID09PSAnaHR0cHM6Jykge1xuICAgICAgcmV0dXJuIHRoaXNba0h0dHBzUHJveHlBZ2VudF1cbiAgICB9XG4gICAgcmV0dXJuIHRoaXNba0h0dHBQcm94eUFnZW50XVxuICB9XG5cbiAgI3Nob3VsZFByb3h5IChob3N0bmFtZSwgcG9ydCkge1xuICAgIGlmICh0aGlzLiNub1Byb3h5Q2hhbmdlZCkge1xuICAgICAgdGhpcy4jcGFyc2VOb1Byb3h5KClcbiAgICB9XG5cbiAgICBpZiAodGhpcy4jbm9Qcm94eUVudHJpZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm4gdHJ1ZSAvLyBBbHdheXMgcHJveHkgaWYgTk9fUFJPWFkgaXMgbm90IHNldCBvciBlbXB0eS5cbiAgICB9XG4gICAgaWYgKHRoaXMuI25vUHJveHlWYWx1ZSA9PT0gJyonKSB7XG4gICAgICByZXR1cm4gZmFsc2UgLy8gTmV2ZXIgcHJveHkgaWYgd2lsZGNhcmQgaXMgc2V0LlxuICAgIH1cblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy4jbm9Qcm94eUVudHJpZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGNvbnN0IGVudHJ5ID0gdGhpcy4jbm9Qcm94eUVudHJpZXNbaV1cbiAgICAgIGlmIChlbnRyeS5wb3J0ICYmIGVudHJ5LnBvcnQgIT09IHBvcnQpIHtcbiAgICAgICAgY29udGludWUgLy8gU2tpcCBpZiBwb3J0cyBkb24ndCBtYXRjaC5cbiAgICAgIH1cbiAgICAgIGlmICghL15bLipdLy50ZXN0KGVudHJ5Lmhvc3RuYW1lKSkge1xuICAgICAgICAvLyBObyB3aWxkY2FyZHMsIHNvIGRvbid0IHByb3h5IG9ubHkgaWYgdGhlcmUgaXMgbm90IGFuIGV4YWN0IG1hdGNoLlxuICAgICAgICBpZiAoaG9zdG5hbWUgPT09IGVudHJ5Lmhvc3RuYW1lKSB7XG4gICAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIERvbid0IHByb3h5IGlmIHRoZSBob3N0bmFtZSBlbmRzIHdpdGggdGhlIG5vX3Byb3h5IGhvc3QuXG4gICAgICAgIGlmIChob3N0bmFtZS5lbmRzV2l0aChlbnRyeS5ob3N0bmFtZS5yZXBsYWNlKC9eXFwqLywgJycpKSkge1xuICAgICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHRydWVcbiAgfVxuXG4gICNwYXJzZU5vUHJveHkgKCkge1xuICAgIGNvbnN0IG5vUHJveHlWYWx1ZSA9IHRoaXMuI29wdHMubm9Qcm94eSA/PyB0aGlzLiNub1Byb3h5RW52XG4gICAgY29uc3Qgbm9Qcm94eVNwbGl0ID0gbm9Qcm94eVZhbHVlLnNwbGl0KC9bLFxcc10vKVxuICAgIGNvbnN0IG5vUHJveHlFbnRyaWVzID0gW11cblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbm9Qcm94eVNwbGl0Lmxlbmd0aDsgaSsrKSB7XG4gICAgICBjb25zdCBlbnRyeSA9IG5vUHJveHlTcGxpdFtpXVxuICAgICAgaWYgKCFlbnRyeSkge1xuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuICAgICAgY29uc3QgcGFyc2VkID0gZW50cnkubWF0Y2goL14oLispOihcXGQrKSQvKVxuICAgICAgbm9Qcm94eUVudHJpZXMucHVzaCh7XG4gICAgICAgIGhvc3RuYW1lOiAocGFyc2VkID8gcGFyc2VkWzFdIDogZW50cnkpLnRvTG93ZXJDYXNlKCksXG4gICAgICAgIHBvcnQ6IHBhcnNlZCA/IE51bWJlci5wYXJzZUludChwYXJzZWRbMl0sIDEwKSA6IDBcbiAgICAgIH0pXG4gICAgfVxuXG4gICAgdGhpcy4jbm9Qcm94eVZhbHVlID0gbm9Qcm94eVZhbHVlXG4gICAgdGhpcy4jbm9Qcm94eUVudHJpZXMgPSBub1Byb3h5RW50cmllc1xuICB9XG5cbiAgZ2V0ICNub1Byb3h5Q2hhbmdlZCAoKSB7XG4gICAgaWYgKHRoaXMuI29wdHMubm9Qcm94eSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuI25vUHJveHlWYWx1ZSAhPT0gdGhpcy4jbm9Qcm94eUVudlxuICB9XG5cbiAgZ2V0ICNub1Byb3h5RW52ICgpIHtcbiAgICByZXR1cm4gcHJvY2Vzcy5lbnYubm9fcHJveHkgPz8gcHJvY2Vzcy5lbnYuTk9fUFJPWFkgPz8gJydcbiAgfVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IEVudkh0dHBQcm94eUFnZW50XG4iLCAiJ3VzZSBzdHJpY3QnXG5jb25zdCBhc3NlcnQgPSByZXF1aXJlKCdub2RlOmFzc2VydCcpXG5cbmNvbnN0IHsga1JldHJ5SGFuZGxlckRlZmF1bHRSZXRyeSB9ID0gcmVxdWlyZSgnLi4vY29yZS9zeW1ib2xzJylcbmNvbnN0IHsgUmVxdWVzdFJldHJ5RXJyb3IgfSA9IHJlcXVpcmUoJy4uL2NvcmUvZXJyb3JzJylcbmNvbnN0IHtcbiAgaXNEaXN0dXJiZWQsXG4gIHBhcnNlSGVhZGVycyxcbiAgcGFyc2VSYW5nZUhlYWRlcixcbiAgd3JhcFJlcXVlc3RCb2R5XG59ID0gcmVxdWlyZSgnLi4vY29yZS91dGlsJylcblxuZnVuY3Rpb24gY2FsY3VsYXRlUmV0cnlBZnRlckhlYWRlciAocmV0cnlBZnRlcikge1xuICBjb25zdCBjdXJyZW50ID0gRGF0ZS5ub3coKVxuICByZXR1cm4gbmV3IERhdGUocmV0cnlBZnRlcikuZ2V0VGltZSgpIC0gY3VycmVudFxufVxuXG5jbGFzcyBSZXRyeUhhbmRsZXIge1xuICBjb25zdHJ1Y3RvciAob3B0cywgaGFuZGxlcnMpIHtcbiAgICBjb25zdCB7IHJldHJ5T3B0aW9ucywgLi4uZGlzcGF0Y2hPcHRzIH0gPSBvcHRzXG4gICAgY29uc3Qge1xuICAgICAgLy8gUmV0cnkgc2NvcGVkXG4gICAgICByZXRyeTogcmV0cnlGbixcbiAgICAgIG1heFJldHJpZXMsXG4gICAgICBtYXhUaW1lb3V0LFxuICAgICAgbWluVGltZW91dCxcbiAgICAgIHRpbWVvdXRGYWN0b3IsXG4gICAgICAvLyBSZXNwb25zZSBzY29wZWRcbiAgICAgIG1ldGhvZHMsXG4gICAgICBlcnJvckNvZGVzLFxuICAgICAgcmV0cnlBZnRlcixcbiAgICAgIHN0YXR1c0NvZGVzXG4gICAgfSA9IHJldHJ5T3B0aW9ucyA/PyB7fVxuXG4gICAgdGhpcy5kaXNwYXRjaCA9IGhhbmRsZXJzLmRpc3BhdGNoXG4gICAgdGhpcy5oYW5kbGVyID0gaGFuZGxlcnMuaGFuZGxlclxuICAgIHRoaXMub3B0cyA9IHsgLi4uZGlzcGF0Y2hPcHRzLCBib2R5OiB3cmFwUmVxdWVzdEJvZHkob3B0cy5ib2R5KSB9XG4gICAgdGhpcy5hYm9ydCA9IG51bGxcbiAgICB0aGlzLmFib3J0ZWQgPSBmYWxzZVxuICAgIHRoaXMucmV0cnlPcHRzID0ge1xuICAgICAgcmV0cnk6IHJldHJ5Rm4gPz8gUmV0cnlIYW5kbGVyW2tSZXRyeUhhbmRsZXJEZWZhdWx0UmV0cnldLFxuICAgICAgcmV0cnlBZnRlcjogcmV0cnlBZnRlciA/PyB0cnVlLFxuICAgICAgbWF4VGltZW91dDogbWF4VGltZW91dCA/PyAzMCAqIDEwMDAsIC8vIDMwcyxcbiAgICAgIG1pblRpbWVvdXQ6IG1pblRpbWVvdXQgPz8gNTAwLCAvLyAuNXNcbiAgICAgIHRpbWVvdXRGYWN0b3I6IHRpbWVvdXRGYWN0b3IgPz8gMixcbiAgICAgIG1heFJldHJpZXM6IG1heFJldHJpZXMgPz8gNSxcbiAgICAgIC8vIFdoYXQgZXJyb3JzIHdlIHNob3VsZCByZXRyeVxuICAgICAgbWV0aG9kczogbWV0aG9kcyA/PyBbJ0dFVCcsICdIRUFEJywgJ09QVElPTlMnLCAnUFVUJywgJ0RFTEVURScsICdUUkFDRSddLFxuICAgICAgLy8gSW5kaWNhdGVzIHdoaWNoIGVycm9ycyB0byByZXRyeVxuICAgICAgc3RhdHVzQ29kZXM6IHN0YXR1c0NvZGVzID8/IFs1MDAsIDUwMiwgNTAzLCA1MDQsIDQyOV0sXG4gICAgICAvLyBMaXN0IG9mIGVycm9ycyB0byByZXRyeVxuICAgICAgZXJyb3JDb2RlczogZXJyb3JDb2RlcyA/PyBbXG4gICAgICAgICdFQ09OTlJFU0VUJyxcbiAgICAgICAgJ0VDT05OUkVGVVNFRCcsXG4gICAgICAgICdFTk9URk9VTkQnLFxuICAgICAgICAnRU5FVERPV04nLFxuICAgICAgICAnRU5FVFVOUkVBQ0gnLFxuICAgICAgICAnRUhPU1RET1dOJyxcbiAgICAgICAgJ0VIT1NUVU5SRUFDSCcsXG4gICAgICAgICdFUElQRScsXG4gICAgICAgICdVTkRfRVJSX1NPQ0tFVCdcbiAgICAgIF1cbiAgICB9XG5cbiAgICB0aGlzLnJldHJ5Q291bnQgPSAwXG4gICAgdGhpcy5yZXRyeUNvdW50Q2hlY2twb2ludCA9IDBcbiAgICB0aGlzLnN0YXJ0ID0gMFxuICAgIHRoaXMuZW5kID0gbnVsbFxuICAgIHRoaXMuZXRhZyA9IG51bGxcbiAgICB0aGlzLnJlc3VtZSA9IG51bGxcblxuICAgIC8vIEhhbmRsZSBwb3NzaWJsZSBvbkNvbm5lY3QgZHVwbGljYXRpb25cbiAgICB0aGlzLmhhbmRsZXIub25Db25uZWN0KHJlYXNvbiA9PiB7XG4gICAgICB0aGlzLmFib3J0ZWQgPSB0cnVlXG4gICAgICBpZiAodGhpcy5hYm9ydCkge1xuICAgICAgICB0aGlzLmFib3J0KHJlYXNvbilcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMucmVhc29uID0gcmVhc29uXG4gICAgICB9XG4gICAgfSlcbiAgfVxuXG4gIG9uUmVxdWVzdFNlbnQgKCkge1xuICAgIGlmICh0aGlzLmhhbmRsZXIub25SZXF1ZXN0U2VudCkge1xuICAgICAgdGhpcy5oYW5kbGVyLm9uUmVxdWVzdFNlbnQoKVxuICAgIH1cbiAgfVxuXG4gIG9uVXBncmFkZSAoc3RhdHVzQ29kZSwgaGVhZGVycywgc29ja2V0KSB7XG4gICAgaWYgKHRoaXMuaGFuZGxlci5vblVwZ3JhZGUpIHtcbiAgICAgIHRoaXMuaGFuZGxlci5vblVwZ3JhZGUoc3RhdHVzQ29kZSwgaGVhZGVycywgc29ja2V0KVxuICAgIH1cbiAgfVxuXG4gIG9uQ29ubmVjdCAoYWJvcnQpIHtcbiAgICBpZiAodGhpcy5hYm9ydGVkKSB7XG4gICAgICBhYm9ydCh0aGlzLnJlYXNvbilcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5hYm9ydCA9IGFib3J0XG4gICAgfVxuICB9XG5cbiAgb25Cb2R5U2VudCAoY2h1bmspIHtcbiAgICBpZiAodGhpcy5oYW5kbGVyLm9uQm9keVNlbnQpIHJldHVybiB0aGlzLmhhbmRsZXIub25Cb2R5U2VudChjaHVuaylcbiAgfVxuXG4gIHN0YXRpYyBba1JldHJ5SGFuZGxlckRlZmF1bHRSZXRyeV0gKGVyciwgeyBzdGF0ZSwgb3B0cyB9LCBjYikge1xuICAgIGNvbnN0IHsgc3RhdHVzQ29kZSwgY29kZSwgaGVhZGVycyB9ID0gZXJyXG4gICAgY29uc3QgeyBtZXRob2QsIHJldHJ5T3B0aW9ucyB9ID0gb3B0c1xuICAgIGNvbnN0IHtcbiAgICAgIG1heFJldHJpZXMsXG4gICAgICBtaW5UaW1lb3V0LFxuICAgICAgbWF4VGltZW91dCxcbiAgICAgIHRpbWVvdXRGYWN0b3IsXG4gICAgICBzdGF0dXNDb2RlcyxcbiAgICAgIGVycm9yQ29kZXMsXG4gICAgICBtZXRob2RzXG4gICAgfSA9IHJldHJ5T3B0aW9uc1xuICAgIGNvbnN0IHsgY291bnRlciB9ID0gc3RhdGVcblxuICAgIC8vIEFueSBjb2RlIHRoYXQgaXMgbm90IGEgVW5kaWNpJ3Mgb3JpZ2luYXRlZCBhbmQgYWxsb3dlZCB0byByZXRyeVxuICAgIGlmIChjb2RlICYmIGNvZGUgIT09ICdVTkRfRVJSX1JFUV9SRVRSWScgJiYgIWVycm9yQ29kZXMuaW5jbHVkZXMoY29kZSkpIHtcbiAgICAgIGNiKGVycilcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIC8vIElmIGEgc2V0IG9mIG1ldGhvZCBhcmUgcHJvdmlkZWQgYW5kIHRoZSBjdXJyZW50IG1ldGhvZCBpcyBub3QgaW4gdGhlIGxpc3RcbiAgICBpZiAoQXJyYXkuaXNBcnJheShtZXRob2RzKSAmJiAhbWV0aG9kcy5pbmNsdWRlcyhtZXRob2QpKSB7XG4gICAgICBjYihlcnIpXG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICAvLyBJZiBhIHNldCBvZiBzdGF0dXMgY29kZSBhcmUgcHJvdmlkZWQgYW5kIHRoZSBjdXJyZW50IHN0YXR1cyBjb2RlIGlzIG5vdCBpbiB0aGUgbGlzdFxuICAgIGlmIChcbiAgICAgIHN0YXR1c0NvZGUgIT0gbnVsbCAmJlxuICAgICAgQXJyYXkuaXNBcnJheShzdGF0dXNDb2RlcykgJiZcbiAgICAgICFzdGF0dXNDb2Rlcy5pbmNsdWRlcyhzdGF0dXNDb2RlKVxuICAgICkge1xuICAgICAgY2IoZXJyKVxuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgLy8gSWYgd2UgcmVhY2hlZCB0aGUgbWF4IG51bWJlciBvZiByZXRyaWVzXG4gICAgaWYgKGNvdW50ZXIgPiBtYXhSZXRyaWVzKSB7XG4gICAgICBjYihlcnIpXG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBsZXQgcmV0cnlBZnRlckhlYWRlciA9IGhlYWRlcnM/LlsncmV0cnktYWZ0ZXInXVxuICAgIGlmIChyZXRyeUFmdGVySGVhZGVyKSB7XG4gICAgICByZXRyeUFmdGVySGVhZGVyID0gTnVtYmVyKHJldHJ5QWZ0ZXJIZWFkZXIpXG4gICAgICByZXRyeUFmdGVySGVhZGVyID0gTnVtYmVyLmlzTmFOKHJldHJ5QWZ0ZXJIZWFkZXIpXG4gICAgICAgID8gY2FsY3VsYXRlUmV0cnlBZnRlckhlYWRlcihyZXRyeUFmdGVySGVhZGVyKVxuICAgICAgICA6IHJldHJ5QWZ0ZXJIZWFkZXIgKiAxZTMgLy8gUmV0cnktQWZ0ZXIgaXMgaW4gc2Vjb25kc1xuICAgIH1cblxuICAgIGNvbnN0IHJldHJ5VGltZW91dCA9XG4gICAgICByZXRyeUFmdGVySGVhZGVyID4gMFxuICAgICAgICA/IE1hdGgubWluKHJldHJ5QWZ0ZXJIZWFkZXIsIG1heFRpbWVvdXQpXG4gICAgICAgIDogTWF0aC5taW4obWluVGltZW91dCAqIHRpbWVvdXRGYWN0b3IgKiogKGNvdW50ZXIgLSAxKSwgbWF4VGltZW91dClcblxuICAgIHNldFRpbWVvdXQoKCkgPT4gY2IobnVsbCksIHJldHJ5VGltZW91dClcbiAgfVxuXG4gIG9uSGVhZGVycyAoc3RhdHVzQ29kZSwgcmF3SGVhZGVycywgcmVzdW1lLCBzdGF0dXNNZXNzYWdlKSB7XG4gICAgY29uc3QgaGVhZGVycyA9IHBhcnNlSGVhZGVycyhyYXdIZWFkZXJzKVxuXG4gICAgdGhpcy5yZXRyeUNvdW50ICs9IDFcblxuICAgIGlmIChzdGF0dXNDb2RlID49IDMwMCkge1xuICAgICAgaWYgKHRoaXMucmV0cnlPcHRzLnN0YXR1c0NvZGVzLmluY2x1ZGVzKHN0YXR1c0NvZGUpID09PSBmYWxzZSkge1xuICAgICAgICByZXR1cm4gdGhpcy5oYW5kbGVyLm9uSGVhZGVycyhcbiAgICAgICAgICBzdGF0dXNDb2RlLFxuICAgICAgICAgIHJhd0hlYWRlcnMsXG4gICAgICAgICAgcmVzdW1lLFxuICAgICAgICAgIHN0YXR1c01lc3NhZ2VcbiAgICAgICAgKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5hYm9ydChcbiAgICAgICAgICBuZXcgUmVxdWVzdFJldHJ5RXJyb3IoJ1JlcXVlc3QgZmFpbGVkJywgc3RhdHVzQ29kZSwge1xuICAgICAgICAgICAgaGVhZGVycyxcbiAgICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgICAgY291bnQ6IHRoaXMucmV0cnlDb3VudFxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pXG4gICAgICAgIClcbiAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gQ2hlY2twb2ludCBmb3IgcmVzdW1lIGZyb20gd2hlcmUgd2UgbGVmdCBpdFxuICAgIGlmICh0aGlzLnJlc3VtZSAhPSBudWxsKSB7XG4gICAgICB0aGlzLnJlc3VtZSA9IG51bGxcblxuICAgICAgLy8gT25seSBQYXJ0aWFsIENvbnRlbnQgMjA2IHN1cHBvc2VkIHRvIHByb3ZpZGUgQ29udGVudC1SYW5nZSxcbiAgICAgIC8vIGFueSBvdGhlciBzdGF0dXMgY29kZSB0aGF0IHBhcnRpYWxseSBjb25zdW1lZCB0aGUgcGF5bG9hZFxuICAgICAgLy8gc2hvdWxkIG5vdCBiZSByZXRyeSBiZWNhdXNlIGl0IHdvdWxkIHJlc3VsdCBpbiBkb3duc3RyZWFtXG4gICAgICAvLyB3cm9uZ2x5IGNvbmNhdGFuZXRlIG11bHRpcGxlIHJlc3BvbnNlcy5cbiAgICAgIGlmIChzdGF0dXNDb2RlICE9PSAyMDYgJiYgKHRoaXMuc3RhcnQgPiAwIHx8IHN0YXR1c0NvZGUgIT09IDIwMCkpIHtcbiAgICAgICAgdGhpcy5hYm9ydChcbiAgICAgICAgICBuZXcgUmVxdWVzdFJldHJ5RXJyb3IoJ3NlcnZlciBkb2VzIG5vdCBzdXBwb3J0IHRoZSByYW5nZSBoZWFkZXIgYW5kIHRoZSBwYXlsb2FkIHdhcyBwYXJ0aWFsbHkgY29uc3VtZWQnLCBzdGF0dXNDb2RlLCB7XG4gICAgICAgICAgICBoZWFkZXJzLFxuICAgICAgICAgICAgZGF0YTogeyBjb3VudDogdGhpcy5yZXRyeUNvdW50IH1cbiAgICAgICAgICB9KVxuICAgICAgICApXG4gICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgfVxuXG4gICAgICBjb25zdCBjb250ZW50UmFuZ2UgPSBwYXJzZVJhbmdlSGVhZGVyKGhlYWRlcnNbJ2NvbnRlbnQtcmFuZ2UnXSlcbiAgICAgIC8vIElmIG5vIGNvbnRlbnQgcmFuZ2VcbiAgICAgIGlmICghY29udGVudFJhbmdlKSB7XG4gICAgICAgIHRoaXMuYWJvcnQoXG4gICAgICAgICAgbmV3IFJlcXVlc3RSZXRyeUVycm9yKCdDb250ZW50LVJhbmdlIG1pc21hdGNoJywgc3RhdHVzQ29kZSwge1xuICAgICAgICAgICAgaGVhZGVycyxcbiAgICAgICAgICAgIGRhdGE6IHsgY291bnQ6IHRoaXMucmV0cnlDb3VudCB9XG4gICAgICAgICAgfSlcbiAgICAgICAgKVxuICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgIH1cblxuICAgICAgLy8gTGV0J3Mgc3RhcnQgd2l0aCBhIHdlYWsgZXRhZyBjaGVja1xuICAgICAgaWYgKHRoaXMuZXRhZyAhPSBudWxsICYmIHRoaXMuZXRhZyAhPT0gaGVhZGVycy5ldGFnKSB7XG4gICAgICAgIHRoaXMuYWJvcnQoXG4gICAgICAgICAgbmV3IFJlcXVlc3RSZXRyeUVycm9yKCdFVGFnIG1pc21hdGNoJywgc3RhdHVzQ29kZSwge1xuICAgICAgICAgICAgaGVhZGVycyxcbiAgICAgICAgICAgIGRhdGE6IHsgY291bnQ6IHRoaXMucmV0cnlDb3VudCB9XG4gICAgICAgICAgfSlcbiAgICAgICAgKVxuICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgIH1cblxuICAgICAgY29uc3QgeyBzdGFydCwgc2l6ZSwgZW5kID0gc2l6ZSAtIDEgfSA9IGNvbnRlbnRSYW5nZVxuXG4gICAgICBhc3NlcnQodGhpcy5zdGFydCA9PT0gc3RhcnQsICdjb250ZW50LXJhbmdlIG1pc21hdGNoJylcbiAgICAgIGFzc2VydCh0aGlzLmVuZCA9PSBudWxsIHx8IHRoaXMuZW5kID09PSBlbmQsICdjb250ZW50LXJhbmdlIG1pc21hdGNoJylcblxuICAgICAgdGhpcy5yZXN1bWUgPSByZXN1bWVcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuXG4gICAgaWYgKHRoaXMuZW5kID09IG51bGwpIHtcbiAgICAgIGlmIChzdGF0dXNDb2RlID09PSAyMDYpIHtcbiAgICAgICAgLy8gRmlyc3QgdGltZSB3ZSByZWNlaXZlIDIwNlxuICAgICAgICBjb25zdCByYW5nZSA9IHBhcnNlUmFuZ2VIZWFkZXIoaGVhZGVyc1snY29udGVudC1yYW5nZSddKVxuXG4gICAgICAgIGlmIChyYW5nZSA9PSBudWxsKSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuaGFuZGxlci5vbkhlYWRlcnMoXG4gICAgICAgICAgICBzdGF0dXNDb2RlLFxuICAgICAgICAgICAgcmF3SGVhZGVycyxcbiAgICAgICAgICAgIHJlc3VtZSxcbiAgICAgICAgICAgIHN0YXR1c01lc3NhZ2VcbiAgICAgICAgICApXG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB7IHN0YXJ0LCBzaXplLCBlbmQgPSBzaXplIC0gMSB9ID0gcmFuZ2VcbiAgICAgICAgYXNzZXJ0KFxuICAgICAgICAgIHN0YXJ0ICE9IG51bGwgJiYgTnVtYmVyLmlzRmluaXRlKHN0YXJ0KSxcbiAgICAgICAgICAnY29udGVudC1yYW5nZSBtaXNtYXRjaCdcbiAgICAgICAgKVxuICAgICAgICBhc3NlcnQoZW5kICE9IG51bGwgJiYgTnVtYmVyLmlzRmluaXRlKGVuZCksICdpbnZhbGlkIGNvbnRlbnQtbGVuZ3RoJylcblxuICAgICAgICB0aGlzLnN0YXJ0ID0gc3RhcnRcbiAgICAgICAgdGhpcy5lbmQgPSBlbmRcbiAgICAgIH1cblxuICAgICAgLy8gV2UgbWFrZSBvdXIgYmVzdCB0byBjaGVja3BvaW50IHRoZSBib2R5IGZvciBmdXJ0aGVyIHJhbmdlIGhlYWRlcnNcbiAgICAgIGlmICh0aGlzLmVuZCA9PSBudWxsKSB7XG4gICAgICAgIGNvbnN0IGNvbnRlbnRMZW5ndGggPSBoZWFkZXJzWydjb250ZW50LWxlbmd0aCddXG4gICAgICAgIHRoaXMuZW5kID0gY29udGVudExlbmd0aCAhPSBudWxsID8gTnVtYmVyKGNvbnRlbnRMZW5ndGgpIC0gMSA6IG51bGxcbiAgICAgIH1cblxuICAgICAgYXNzZXJ0KE51bWJlci5pc0Zpbml0ZSh0aGlzLnN0YXJ0KSlcbiAgICAgIGFzc2VydChcbiAgICAgICAgdGhpcy5lbmQgPT0gbnVsbCB8fCBOdW1iZXIuaXNGaW5pdGUodGhpcy5lbmQpLFxuICAgICAgICAnaW52YWxpZCBjb250ZW50LWxlbmd0aCdcbiAgICAgIClcblxuICAgICAgdGhpcy5yZXN1bWUgPSByZXN1bWVcbiAgICAgIHRoaXMuZXRhZyA9IGhlYWRlcnMuZXRhZyAhPSBudWxsID8gaGVhZGVycy5ldGFnIDogbnVsbFxuXG4gICAgICAvLyBXZWFrIGV0YWdzIGFyZSBub3QgdXNlZnVsIGZvciBjb21wYXJpc29uIG5vciBjYWNoZVxuICAgICAgLy8gZm9yIGluc3RhbmNlIG5vdCBzYWZlIHRvIGFzc3VtZSBpZiB0aGUgcmVzcG9uc2UgaXMgYnl0ZS1wZXItYnl0ZVxuICAgICAgLy8gZXF1YWxcbiAgICAgIGlmICh0aGlzLmV0YWcgIT0gbnVsbCAmJiB0aGlzLmV0YWcuc3RhcnRzV2l0aCgnVy8nKSkge1xuICAgICAgICB0aGlzLmV0YWcgPSBudWxsXG4gICAgICB9XG5cbiAgICAgIHJldHVybiB0aGlzLmhhbmRsZXIub25IZWFkZXJzKFxuICAgICAgICBzdGF0dXNDb2RlLFxuICAgICAgICByYXdIZWFkZXJzLFxuICAgICAgICByZXN1bWUsXG4gICAgICAgIHN0YXR1c01lc3NhZ2VcbiAgICAgIClcbiAgICB9XG5cbiAgICBjb25zdCBlcnIgPSBuZXcgUmVxdWVzdFJldHJ5RXJyb3IoJ1JlcXVlc3QgZmFpbGVkJywgc3RhdHVzQ29kZSwge1xuICAgICAgaGVhZGVycyxcbiAgICAgIGRhdGE6IHsgY291bnQ6IHRoaXMucmV0cnlDb3VudCB9XG4gICAgfSlcblxuICAgIHRoaXMuYWJvcnQoZXJyKVxuXG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cblxuICBvbkRhdGEgKGNodW5rKSB7XG4gICAgdGhpcy5zdGFydCArPSBjaHVuay5sZW5ndGhcblxuICAgIHJldHVybiB0aGlzLmhhbmRsZXIub25EYXRhKGNodW5rKVxuICB9XG5cbiAgb25Db21wbGV0ZSAocmF3VHJhaWxlcnMpIHtcbiAgICB0aGlzLnJldHJ5Q291bnQgPSAwXG4gICAgcmV0dXJuIHRoaXMuaGFuZGxlci5vbkNvbXBsZXRlKHJhd1RyYWlsZXJzKVxuICB9XG5cbiAgb25FcnJvciAoZXJyKSB7XG4gICAgaWYgKHRoaXMuYWJvcnRlZCB8fCBpc0Rpc3R1cmJlZCh0aGlzLm9wdHMuYm9keSkpIHtcbiAgICAgIHJldHVybiB0aGlzLmhhbmRsZXIub25FcnJvcihlcnIpXG4gICAgfVxuXG4gICAgLy8gV2UgcmVjb25jaWxlIGluIGNhc2Ugb2YgYSBtaXggYmV0d2VlbiBuZXR3b3JrIGVycm9yc1xuICAgIC8vIGFuZCBzZXJ2ZXIgZXJyb3IgcmVzcG9uc2VcbiAgICBpZiAodGhpcy5yZXRyeUNvdW50IC0gdGhpcy5yZXRyeUNvdW50Q2hlY2twb2ludCA+IDApIHtcbiAgICAgIC8vIFdlIGNvdW50IHRoZSBkaWZmZXJlbmNlIGJldHdlZW4gdGhlIGxhc3QgY2hlY2twb2ludCBhbmQgdGhlIGN1cnJlbnQgcmV0cnkgY291bnRcbiAgICAgIHRoaXMucmV0cnlDb3VudCA9XG4gICAgICAgIHRoaXMucmV0cnlDb3VudENoZWNrcG9pbnQgK1xuICAgICAgICAodGhpcy5yZXRyeUNvdW50IC0gdGhpcy5yZXRyeUNvdW50Q2hlY2twb2ludClcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5yZXRyeUNvdW50ICs9IDFcbiAgICB9XG5cbiAgICB0aGlzLnJldHJ5T3B0cy5yZXRyeShcbiAgICAgIGVycixcbiAgICAgIHtcbiAgICAgICAgc3RhdGU6IHsgY291bnRlcjogdGhpcy5yZXRyeUNvdW50IH0sXG4gICAgICAgIG9wdHM6IHsgcmV0cnlPcHRpb25zOiB0aGlzLnJldHJ5T3B0cywgLi4udGhpcy5vcHRzIH1cbiAgICAgIH0sXG4gICAgICBvblJldHJ5LmJpbmQodGhpcylcbiAgICApXG5cbiAgICBmdW5jdGlvbiBvblJldHJ5IChlcnIpIHtcbiAgICAgIGlmIChlcnIgIT0gbnVsbCB8fCB0aGlzLmFib3J0ZWQgfHwgaXNEaXN0dXJiZWQodGhpcy5vcHRzLmJvZHkpKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmhhbmRsZXIub25FcnJvcihlcnIpXG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLnN0YXJ0ICE9PSAwKSB7XG4gICAgICAgIGNvbnN0IGhlYWRlcnMgPSB7IHJhbmdlOiBgYnl0ZXM9JHt0aGlzLnN0YXJ0fS0ke3RoaXMuZW5kID8/ICcnfWAgfVxuXG4gICAgICAgIC8vIFdlYWsgZXRhZyBjaGVjayAtIHdlYWsgZXRhZ3Mgd2lsbCBtYWtlIGNvbXBhcmlzb24gYWxnb3JpdGhtcyBuZXZlciBtYXRjaFxuICAgICAgICBpZiAodGhpcy5ldGFnICE9IG51bGwpIHtcbiAgICAgICAgICBoZWFkZXJzWydpZi1tYXRjaCddID0gdGhpcy5ldGFnXG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLm9wdHMgPSB7XG4gICAgICAgICAgLi4udGhpcy5vcHRzLFxuICAgICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAgIC4uLnRoaXMub3B0cy5oZWFkZXJzLFxuICAgICAgICAgICAgLi4uaGVhZGVyc1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICB0cnkge1xuICAgICAgICB0aGlzLnJldHJ5Q291bnRDaGVja3BvaW50ID0gdGhpcy5yZXRyeUNvdW50XG4gICAgICAgIHRoaXMuZGlzcGF0Y2godGhpcy5vcHRzLCB0aGlzKVxuICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgIHRoaXMuaGFuZGxlci5vbkVycm9yKGVycilcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxubW9kdWxlLmV4cG9ydHMgPSBSZXRyeUhhbmRsZXJcbiIsICIndXNlIHN0cmljdCdcblxuY29uc3QgRGlzcGF0Y2hlciA9IHJlcXVpcmUoJy4vZGlzcGF0Y2hlcicpXG5jb25zdCBSZXRyeUhhbmRsZXIgPSByZXF1aXJlKCcuLi9oYW5kbGVyL3JldHJ5LWhhbmRsZXInKVxuXG5jbGFzcyBSZXRyeUFnZW50IGV4dGVuZHMgRGlzcGF0Y2hlciB7XG4gICNhZ2VudCA9IG51bGxcbiAgI29wdGlvbnMgPSBudWxsXG4gIGNvbnN0cnVjdG9yIChhZ2VudCwgb3B0aW9ucyA9IHt9KSB7XG4gICAgc3VwZXIob3B0aW9ucylcbiAgICB0aGlzLiNhZ2VudCA9IGFnZW50XG4gICAgdGhpcy4jb3B0aW9ucyA9IG9wdGlvbnNcbiAgfVxuXG4gIGRpc3BhdGNoIChvcHRzLCBoYW5kbGVyKSB7XG4gICAgY29uc3QgcmV0cnkgPSBuZXcgUmV0cnlIYW5kbGVyKHtcbiAgICAgIC4uLm9wdHMsXG4gICAgICByZXRyeU9wdGlvbnM6IHRoaXMuI29wdGlvbnNcbiAgICB9LCB7XG4gICAgICBkaXNwYXRjaDogdGhpcy4jYWdlbnQuZGlzcGF0Y2guYmluZCh0aGlzLiNhZ2VudCksXG4gICAgICBoYW5kbGVyXG4gICAgfSlcbiAgICByZXR1cm4gdGhpcy4jYWdlbnQuZGlzcGF0Y2gob3B0cywgcmV0cnkpXG4gIH1cblxuICBjbG9zZSAoKSB7XG4gICAgcmV0dXJuIHRoaXMuI2FnZW50LmNsb3NlKClcbiAgfVxuXG4gIGRlc3Ryb3kgKCkge1xuICAgIHJldHVybiB0aGlzLiNhZ2VudC5kZXN0cm95KClcbiAgfVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IFJldHJ5QWdlbnRcbiIsICIvLyBQb3J0ZWQgZnJvbSBodHRwczovL2dpdGh1Yi5jb20vbm9kZWpzL3VuZGljaS9wdWxsLzkwN1xuXG4ndXNlIHN0cmljdCdcblxuY29uc3QgYXNzZXJ0ID0gcmVxdWlyZSgnbm9kZTphc3NlcnQnKVxuY29uc3QgeyBSZWFkYWJsZSB9ID0gcmVxdWlyZSgnbm9kZTpzdHJlYW0nKVxuY29uc3QgeyBSZXF1ZXN0QWJvcnRlZEVycm9yLCBOb3RTdXBwb3J0ZWRFcnJvciwgSW52YWxpZEFyZ3VtZW50RXJyb3IsIEFib3J0RXJyb3IgfSA9IHJlcXVpcmUoJy4uL2NvcmUvZXJyb3JzJylcbmNvbnN0IHV0aWwgPSByZXF1aXJlKCcuLi9jb3JlL3V0aWwnKVxuY29uc3QgeyBSZWFkYWJsZVN0cmVhbUZyb20gfSA9IHJlcXVpcmUoJy4uL2NvcmUvdXRpbCcpXG5cbmNvbnN0IGtDb25zdW1lID0gU3ltYm9sKCdrQ29uc3VtZScpXG5jb25zdCBrUmVhZGluZyA9IFN5bWJvbCgna1JlYWRpbmcnKVxuY29uc3Qga0JvZHkgPSBTeW1ib2woJ2tCb2R5JylcbmNvbnN0IGtBYm9ydCA9IFN5bWJvbCgna0Fib3J0JylcbmNvbnN0IGtDb250ZW50VHlwZSA9IFN5bWJvbCgna0NvbnRlbnRUeXBlJylcbmNvbnN0IGtDb250ZW50TGVuZ3RoID0gU3ltYm9sKCdrQ29udGVudExlbmd0aCcpXG5cbmNvbnN0IG5vb3AgPSAoKSA9PiB7fVxuXG5jbGFzcyBCb2R5UmVhZGFibGUgZXh0ZW5kcyBSZWFkYWJsZSB7XG4gIGNvbnN0cnVjdG9yICh7XG4gICAgcmVzdW1lLFxuICAgIGFib3J0LFxuICAgIGNvbnRlbnRUeXBlID0gJycsXG4gICAgY29udGVudExlbmd0aCxcbiAgICBoaWdoV2F0ZXJNYXJrID0gNjQgKiAxMDI0IC8vIFNhbWUgYXMgbm9kZWpzIGZzIHN0cmVhbXMuXG4gIH0pIHtcbiAgICBzdXBlcih7XG4gICAgICBhdXRvRGVzdHJveTogdHJ1ZSxcbiAgICAgIHJlYWQ6IHJlc3VtZSxcbiAgICAgIGhpZ2hXYXRlck1hcmtcbiAgICB9KVxuXG4gICAgdGhpcy5fcmVhZGFibGVTdGF0ZS5kYXRhRW1pdHRlZCA9IGZhbHNlXG5cbiAgICB0aGlzW2tBYm9ydF0gPSBhYm9ydFxuICAgIHRoaXNba0NvbnN1bWVdID0gbnVsbFxuICAgIHRoaXNba0JvZHldID0gbnVsbFxuICAgIHRoaXNba0NvbnRlbnRUeXBlXSA9IGNvbnRlbnRUeXBlXG4gICAgdGhpc1trQ29udGVudExlbmd0aF0gPSBjb250ZW50TGVuZ3RoXG5cbiAgICAvLyBJcyBzdHJlYW0gYmVpbmcgY29uc3VtZWQgdGhyb3VnaCBSZWFkYWJsZSBBUEk/XG4gICAgLy8gVGhpcyBpcyBhbiBvcHRpbWl6YXRpb24gc28gdGhhdCB3ZSBhdm9pZCBjaGVja2luZ1xuICAgIC8vIGZvciAnZGF0YScgYW5kICdyZWFkYWJsZScgbGlzdGVuZXJzIGluIHRoZSBob3QgcGF0aFxuICAgIC8vIGluc2lkZSBwdXNoKCkuXG4gICAgdGhpc1trUmVhZGluZ10gPSBmYWxzZVxuICB9XG5cbiAgZGVzdHJveSAoZXJyKSB7XG4gICAgaWYgKCFlcnIgJiYgIXRoaXMuX3JlYWRhYmxlU3RhdGUuZW5kRW1pdHRlZCkge1xuICAgICAgZXJyID0gbmV3IFJlcXVlc3RBYm9ydGVkRXJyb3IoKVxuICAgIH1cblxuICAgIGlmIChlcnIpIHtcbiAgICAgIHRoaXNba0Fib3J0XSgpXG4gICAgfVxuXG4gICAgcmV0dXJuIHN1cGVyLmRlc3Ryb3koZXJyKVxuICB9XG5cbiAgX2Rlc3Ryb3kgKGVyciwgY2FsbGJhY2spIHtcbiAgICAvLyBXb3JrYXJvdW5kIGZvciBOb2RlIFwiYnVnXCIuIElmIHRoZSBzdHJlYW0gaXMgZGVzdHJveWVkIGluIHNhbWVcbiAgICAvLyB0aWNrIGFzIGl0IGlzIGNyZWF0ZWQsIHRoZW4gYSB1c2VyIHdobyBpcyB3YWl0aW5nIGZvciBhXG4gICAgLy8gcHJvbWlzZSAoaS5lIG1pY3JvIHRpY2spIGZvciBpbnN0YWxsaW5nIGEgJ2Vycm9yJyBsaXN0ZW5lciB3aWxsXG4gICAgLy8gbmV2ZXIgZ2V0IGEgY2hhbmNlIGFuZCB3aWxsIGFsd2F5cyBlbmNvdW50ZXIgYW4gdW5oYW5kbGVkIGV4Y2VwdGlvbi5cbiAgICBpZiAoIXRoaXNba1JlYWRpbmddKSB7XG4gICAgICBzZXRJbW1lZGlhdGUoKCkgPT4ge1xuICAgICAgICBjYWxsYmFjayhlcnIpXG4gICAgICB9KVxuICAgIH0gZWxzZSB7XG4gICAgICBjYWxsYmFjayhlcnIpXG4gICAgfVxuICB9XG5cbiAgb24gKGV2LCAuLi5hcmdzKSB7XG4gICAgaWYgKGV2ID09PSAnZGF0YScgfHwgZXYgPT09ICdyZWFkYWJsZScpIHtcbiAgICAgIHRoaXNba1JlYWRpbmddID0gdHJ1ZVxuICAgIH1cbiAgICByZXR1cm4gc3VwZXIub24oZXYsIC4uLmFyZ3MpXG4gIH1cblxuICBhZGRMaXN0ZW5lciAoZXYsIC4uLmFyZ3MpIHtcbiAgICByZXR1cm4gdGhpcy5vbihldiwgLi4uYXJncylcbiAgfVxuXG4gIG9mZiAoZXYsIC4uLmFyZ3MpIHtcbiAgICBjb25zdCByZXQgPSBzdXBlci5vZmYoZXYsIC4uLmFyZ3MpXG4gICAgaWYgKGV2ID09PSAnZGF0YScgfHwgZXYgPT09ICdyZWFkYWJsZScpIHtcbiAgICAgIHRoaXNba1JlYWRpbmddID0gKFxuICAgICAgICB0aGlzLmxpc3RlbmVyQ291bnQoJ2RhdGEnKSA+IDAgfHxcbiAgICAgICAgdGhpcy5saXN0ZW5lckNvdW50KCdyZWFkYWJsZScpID4gMFxuICAgICAgKVxuICAgIH1cbiAgICByZXR1cm4gcmV0XG4gIH1cblxuICByZW1vdmVMaXN0ZW5lciAoZXYsIC4uLmFyZ3MpIHtcbiAgICByZXR1cm4gdGhpcy5vZmYoZXYsIC4uLmFyZ3MpXG4gIH1cblxuICBwdXNoIChjaHVuaykge1xuICAgIGlmICh0aGlzW2tDb25zdW1lXSAmJiBjaHVuayAhPT0gbnVsbCkge1xuICAgICAgY29uc3VtZVB1c2godGhpc1trQ29uc3VtZV0sIGNodW5rKVxuICAgICAgcmV0dXJuIHRoaXNba1JlYWRpbmddID8gc3VwZXIucHVzaChjaHVuaykgOiB0cnVlXG4gICAgfVxuICAgIHJldHVybiBzdXBlci5wdXNoKGNodW5rKVxuICB9XG5cbiAgLy8gaHR0cHM6Ly9mZXRjaC5zcGVjLndoYXR3Zy5vcmcvI2RvbS1ib2R5LXRleHRcbiAgYXN5bmMgdGV4dCAoKSB7XG4gICAgcmV0dXJuIGNvbnN1bWUodGhpcywgJ3RleHQnKVxuICB9XG5cbiAgLy8gaHR0cHM6Ly9mZXRjaC5zcGVjLndoYXR3Zy5vcmcvI2RvbS1ib2R5LWpzb25cbiAgYXN5bmMganNvbiAoKSB7XG4gICAgcmV0dXJuIGNvbnN1bWUodGhpcywgJ2pzb24nKVxuICB9XG5cbiAgLy8gaHR0cHM6Ly9mZXRjaC5zcGVjLndoYXR3Zy5vcmcvI2RvbS1ib2R5LWJsb2JcbiAgYXN5bmMgYmxvYiAoKSB7XG4gICAgcmV0dXJuIGNvbnN1bWUodGhpcywgJ2Jsb2InKVxuICB9XG5cbiAgLy8gaHR0cHM6Ly9mZXRjaC5zcGVjLndoYXR3Zy5vcmcvI2RvbS1ib2R5LWJ5dGVzXG4gIGFzeW5jIGJ5dGVzICgpIHtcbiAgICByZXR1cm4gY29uc3VtZSh0aGlzLCAnYnl0ZXMnKVxuICB9XG5cbiAgLy8gaHR0cHM6Ly9mZXRjaC5zcGVjLndoYXR3Zy5vcmcvI2RvbS1ib2R5LWFycmF5YnVmZmVyXG4gIGFzeW5jIGFycmF5QnVmZmVyICgpIHtcbiAgICByZXR1cm4gY29uc3VtZSh0aGlzLCAnYXJyYXlCdWZmZXInKVxuICB9XG5cbiAgLy8gaHR0cHM6Ly9mZXRjaC5zcGVjLndoYXR3Zy5vcmcvI2RvbS1ib2R5LWZvcm1kYXRhXG4gIGFzeW5jIGZvcm1EYXRhICgpIHtcbiAgICAvLyBUT0RPOiBJbXBsZW1lbnQuXG4gICAgdGhyb3cgbmV3IE5vdFN1cHBvcnRlZEVycm9yKClcbiAgfVxuXG4gIC8vIGh0dHBzOi8vZmV0Y2guc3BlYy53aGF0d2cub3JnLyNkb20tYm9keS1ib2R5dXNlZFxuICBnZXQgYm9keVVzZWQgKCkge1xuICAgIHJldHVybiB1dGlsLmlzRGlzdHVyYmVkKHRoaXMpXG4gIH1cblxuICAvLyBodHRwczovL2ZldGNoLnNwZWMud2hhdHdnLm9yZy8jZG9tLWJvZHktYm9keVxuICBnZXQgYm9keSAoKSB7XG4gICAgaWYgKCF0aGlzW2tCb2R5XSkge1xuICAgICAgdGhpc1trQm9keV0gPSBSZWFkYWJsZVN0cmVhbUZyb20odGhpcylcbiAgICAgIGlmICh0aGlzW2tDb25zdW1lXSkge1xuICAgICAgICAvLyBUT0RPOiBJcyB0aGlzIHRoZSBiZXN0IHdheSB0byBmb3JjZSBhIGxvY2s/XG4gICAgICAgIHRoaXNba0JvZHldLmdldFJlYWRlcigpIC8vIEVuc3VyZSBzdHJlYW0gaXMgbG9ja2VkLlxuICAgICAgICBhc3NlcnQodGhpc1trQm9keV0ubG9ja2VkKVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdGhpc1trQm9keV1cbiAgfVxuXG4gIGFzeW5jIGR1bXAgKG9wdHMpIHtcbiAgICBsZXQgbGltaXQgPSBOdW1iZXIuaXNGaW5pdGUob3B0cz8ubGltaXQpID8gb3B0cy5saW1pdCA6IDEyOCAqIDEwMjRcbiAgICBjb25zdCBzaWduYWwgPSBvcHRzPy5zaWduYWxcblxuICAgIGlmIChzaWduYWwgIT0gbnVsbCAmJiAodHlwZW9mIHNpZ25hbCAhPT0gJ29iamVjdCcgfHwgISgnYWJvcnRlZCcgaW4gc2lnbmFsKSkpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRFcnJvcignc2lnbmFsIG11c3QgYmUgYW4gQWJvcnRTaWduYWwnKVxuICAgIH1cblxuICAgIHNpZ25hbD8udGhyb3dJZkFib3J0ZWQoKVxuXG4gICAgaWYgKHRoaXMuX3JlYWRhYmxlU3RhdGUuY2xvc2VFbWl0dGVkKSB7XG4gICAgICByZXR1cm4gbnVsbFxuICAgIH1cblxuICAgIHJldHVybiBhd2FpdCBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICBpZiAodGhpc1trQ29udGVudExlbmd0aF0gPiBsaW1pdCkge1xuICAgICAgICB0aGlzLmRlc3Ryb3kobmV3IEFib3J0RXJyb3IoKSlcbiAgICAgIH1cblxuICAgICAgY29uc3Qgb25BYm9ydCA9ICgpID0+IHtcbiAgICAgICAgdGhpcy5kZXN0cm95KHNpZ25hbC5yZWFzb24gPz8gbmV3IEFib3J0RXJyb3IoKSlcbiAgICAgIH1cbiAgICAgIHNpZ25hbD8uYWRkRXZlbnRMaXN0ZW5lcignYWJvcnQnLCBvbkFib3J0KVxuXG4gICAgICB0aGlzXG4gICAgICAgIC5vbignY2xvc2UnLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgc2lnbmFsPy5yZW1vdmVFdmVudExpc3RlbmVyKCdhYm9ydCcsIG9uQWJvcnQpXG4gICAgICAgICAgaWYgKHNpZ25hbD8uYWJvcnRlZCkge1xuICAgICAgICAgICAgcmVqZWN0KHNpZ25hbC5yZWFzb24gPz8gbmV3IEFib3J0RXJyb3IoKSlcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmVzb2x2ZShudWxsKVxuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgICAgLm9uKCdlcnJvcicsIG5vb3ApXG4gICAgICAgIC5vbignZGF0YScsIGZ1bmN0aW9uIChjaHVuaykge1xuICAgICAgICAgIGxpbWl0IC09IGNodW5rLmxlbmd0aFxuICAgICAgICAgIGlmIChsaW1pdCA8PSAwKSB7XG4gICAgICAgICAgICB0aGlzLmRlc3Ryb3koKVxuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgICAgLnJlc3VtZSgpXG4gICAgfSlcbiAgfVxufVxuXG4vLyBodHRwczovL3N0cmVhbXMuc3BlYy53aGF0d2cub3JnLyNyZWFkYWJsZXN0cmVhbS1sb2NrZWRcbmZ1bmN0aW9uIGlzTG9ja2VkIChzZWxmKSB7XG4gIC8vIENvbnN1bWUgaXMgYW4gaW1wbGljaXQgbG9jay5cbiAgcmV0dXJuIChzZWxmW2tCb2R5XSAmJiBzZWxmW2tCb2R5XS5sb2NrZWQgPT09IHRydWUpIHx8IHNlbGZba0NvbnN1bWVdXG59XG5cbi8vIGh0dHBzOi8vZmV0Y2guc3BlYy53aGF0d2cub3JnLyNib2R5LXVudXNhYmxlXG5mdW5jdGlvbiBpc1VudXNhYmxlIChzZWxmKSB7XG4gIHJldHVybiB1dGlsLmlzRGlzdHVyYmVkKHNlbGYpIHx8IGlzTG9ja2VkKHNlbGYpXG59XG5cbmFzeW5jIGZ1bmN0aW9uIGNvbnN1bWUgKHN0cmVhbSwgdHlwZSkge1xuICBhc3NlcnQoIXN0cmVhbVtrQ29uc3VtZV0pXG5cbiAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICBpZiAoaXNVbnVzYWJsZShzdHJlYW0pKSB7XG4gICAgICBjb25zdCByU3RhdGUgPSBzdHJlYW0uX3JlYWRhYmxlU3RhdGVcbiAgICAgIGlmIChyU3RhdGUuZGVzdHJveWVkICYmIHJTdGF0ZS5jbG9zZUVtaXR0ZWQgPT09IGZhbHNlKSB7XG4gICAgICAgIHN0cmVhbVxuICAgICAgICAgIC5vbignZXJyb3InLCBlcnIgPT4ge1xuICAgICAgICAgICAgcmVqZWN0KGVycilcbiAgICAgICAgICB9KVxuICAgICAgICAgIC5vbignY2xvc2UnLCAoKSA9PiB7XG4gICAgICAgICAgICByZWplY3QobmV3IFR5cGVFcnJvcigndW51c2FibGUnKSlcbiAgICAgICAgICB9KVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmVqZWN0KHJTdGF0ZS5lcnJvcmVkID8/IG5ldyBUeXBlRXJyb3IoJ3VudXNhYmxlJykpXG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHF1ZXVlTWljcm90YXNrKCgpID0+IHtcbiAgICAgICAgc3RyZWFtW2tDb25zdW1lXSA9IHtcbiAgICAgICAgICB0eXBlLFxuICAgICAgICAgIHN0cmVhbSxcbiAgICAgICAgICByZXNvbHZlLFxuICAgICAgICAgIHJlamVjdCxcbiAgICAgICAgICBsZW5ndGg6IDAsXG4gICAgICAgICAgYm9keTogW11cbiAgICAgICAgfVxuXG4gICAgICAgIHN0cmVhbVxuICAgICAgICAgIC5vbignZXJyb3InLCBmdW5jdGlvbiAoZXJyKSB7XG4gICAgICAgICAgICBjb25zdW1lRmluaXNoKHRoaXNba0NvbnN1bWVdLCBlcnIpXG4gICAgICAgICAgfSlcbiAgICAgICAgICAub24oJ2Nsb3NlJywgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgaWYgKHRoaXNba0NvbnN1bWVdLmJvZHkgIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgY29uc3VtZUZpbmlzaCh0aGlzW2tDb25zdW1lXSwgbmV3IFJlcXVlc3RBYm9ydGVkRXJyb3IoKSlcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KVxuXG4gICAgICAgIGNvbnN1bWVTdGFydChzdHJlYW1ba0NvbnN1bWVdKVxuICAgICAgfSlcbiAgICB9XG4gIH0pXG59XG5cbmZ1bmN0aW9uIGNvbnN1bWVTdGFydCAoY29uc3VtZSkge1xuICBpZiAoY29uc3VtZS5ib2R5ID09PSBudWxsKSB7XG4gICAgcmV0dXJuXG4gIH1cblxuICBjb25zdCB7IF9yZWFkYWJsZVN0YXRlOiBzdGF0ZSB9ID0gY29uc3VtZS5zdHJlYW1cblxuICBpZiAoc3RhdGUuYnVmZmVySW5kZXgpIHtcbiAgICBjb25zdCBzdGFydCA9IHN0YXRlLmJ1ZmZlckluZGV4XG4gICAgY29uc3QgZW5kID0gc3RhdGUuYnVmZmVyLmxlbmd0aFxuICAgIGZvciAobGV0IG4gPSBzdGFydDsgbiA8IGVuZDsgbisrKSB7XG4gICAgICBjb25zdW1lUHVzaChjb25zdW1lLCBzdGF0ZS5idWZmZXJbbl0pXG4gICAgfVxuICB9IGVsc2Uge1xuICAgIGZvciAoY29uc3QgY2h1bmsgb2Ygc3RhdGUuYnVmZmVyKSB7XG4gICAgICBjb25zdW1lUHVzaChjb25zdW1lLCBjaHVuaylcbiAgICB9XG4gIH1cblxuICBpZiAoc3RhdGUuZW5kRW1pdHRlZCkge1xuICAgIGNvbnN1bWVFbmQodGhpc1trQ29uc3VtZV0pXG4gIH0gZWxzZSB7XG4gICAgY29uc3VtZS5zdHJlYW0ub24oJ2VuZCcsIGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN1bWVFbmQodGhpc1trQ29uc3VtZV0pXG4gICAgfSlcbiAgfVxuXG4gIGNvbnN1bWUuc3RyZWFtLnJlc3VtZSgpXG5cbiAgd2hpbGUgKGNvbnN1bWUuc3RyZWFtLnJlYWQoKSAhPSBudWxsKSB7XG4gICAgLy8gTG9vcFxuICB9XG59XG5cbi8qKlxuICogQHBhcmFtIHtCdWZmZXJbXX0gY2h1bmtzXG4gKiBAcGFyYW0ge251bWJlcn0gbGVuZ3RoXG4gKi9cbmZ1bmN0aW9uIGNodW5rc0RlY29kZSAoY2h1bmtzLCBsZW5ndGgpIHtcbiAgaWYgKGNodW5rcy5sZW5ndGggPT09IDAgfHwgbGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuICcnXG4gIH1cbiAgY29uc3QgYnVmZmVyID0gY2h1bmtzLmxlbmd0aCA9PT0gMSA/IGNodW5rc1swXSA6IEJ1ZmZlci5jb25jYXQoY2h1bmtzLCBsZW5ndGgpXG4gIGNvbnN0IGJ1ZmZlckxlbmd0aCA9IGJ1ZmZlci5sZW5ndGhcblxuICAvLyBTa2lwIEJPTS5cbiAgY29uc3Qgc3RhcnQgPVxuICAgIGJ1ZmZlckxlbmd0aCA+IDIgJiZcbiAgICBidWZmZXJbMF0gPT09IDB4ZWYgJiZcbiAgICBidWZmZXJbMV0gPT09IDB4YmIgJiZcbiAgICBidWZmZXJbMl0gPT09IDB4YmZcbiAgICAgID8gM1xuICAgICAgOiAwXG4gIHJldHVybiBidWZmZXIudXRmOFNsaWNlKHN0YXJ0LCBidWZmZXJMZW5ndGgpXG59XG5cbi8qKlxuICogQHBhcmFtIHtCdWZmZXJbXX0gY2h1bmtzXG4gKiBAcGFyYW0ge251bWJlcn0gbGVuZ3RoXG4gKiBAcmV0dXJucyB7VWludDhBcnJheX1cbiAqL1xuZnVuY3Rpb24gY2h1bmtzQ29uY2F0IChjaHVua3MsIGxlbmd0aCkge1xuICBpZiAoY2h1bmtzLmxlbmd0aCA9PT0gMCB8fCBsZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gbmV3IFVpbnQ4QXJyYXkoMClcbiAgfVxuICBpZiAoY2h1bmtzLmxlbmd0aCA9PT0gMSkge1xuICAgIC8vIGZhc3QtcGF0aFxuICAgIHJldHVybiBuZXcgVWludDhBcnJheShjaHVua3NbMF0pXG4gIH1cbiAgY29uc3QgYnVmZmVyID0gbmV3IFVpbnQ4QXJyYXkoQnVmZmVyLmFsbG9jVW5zYWZlU2xvdyhsZW5ndGgpLmJ1ZmZlcilcblxuICBsZXQgb2Zmc2V0ID0gMFxuICBmb3IgKGxldCBpID0gMDsgaSA8IGNodW5rcy5sZW5ndGg7ICsraSkge1xuICAgIGNvbnN0IGNodW5rID0gY2h1bmtzW2ldXG4gICAgYnVmZmVyLnNldChjaHVuaywgb2Zmc2V0KVxuICAgIG9mZnNldCArPSBjaHVuay5sZW5ndGhcbiAgfVxuXG4gIHJldHVybiBidWZmZXJcbn1cblxuZnVuY3Rpb24gY29uc3VtZUVuZCAoY29uc3VtZSkge1xuICBjb25zdCB7IHR5cGUsIGJvZHksIHJlc29sdmUsIHN0cmVhbSwgbGVuZ3RoIH0gPSBjb25zdW1lXG5cbiAgdHJ5IHtcbiAgICBpZiAodHlwZSA9PT0gJ3RleHQnKSB7XG4gICAgICByZXNvbHZlKGNodW5rc0RlY29kZShib2R5LCBsZW5ndGgpKVxuICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gJ2pzb24nKSB7XG4gICAgICByZXNvbHZlKEpTT04ucGFyc2UoY2h1bmtzRGVjb2RlKGJvZHksIGxlbmd0aCkpKVxuICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gJ2FycmF5QnVmZmVyJykge1xuICAgICAgcmVzb2x2ZShjaHVua3NDb25jYXQoYm9keSwgbGVuZ3RoKS5idWZmZXIpXG4gICAgfSBlbHNlIGlmICh0eXBlID09PSAnYmxvYicpIHtcbiAgICAgIHJlc29sdmUobmV3IEJsb2IoYm9keSwgeyB0eXBlOiBzdHJlYW1ba0NvbnRlbnRUeXBlXSB9KSlcbiAgICB9IGVsc2UgaWYgKHR5cGUgPT09ICdieXRlcycpIHtcbiAgICAgIHJlc29sdmUoY2h1bmtzQ29uY2F0KGJvZHksIGxlbmd0aCkpXG4gICAgfVxuXG4gICAgY29uc3VtZUZpbmlzaChjb25zdW1lKVxuICB9IGNhdGNoIChlcnIpIHtcbiAgICBzdHJlYW0uZGVzdHJveShlcnIpXG4gIH1cbn1cblxuZnVuY3Rpb24gY29uc3VtZVB1c2ggKGNvbnN1bWUsIGNodW5rKSB7XG4gIGNvbnN1bWUubGVuZ3RoICs9IGNodW5rLmxlbmd0aFxuICBjb25zdW1lLmJvZHkucHVzaChjaHVuaylcbn1cblxuZnVuY3Rpb24gY29uc3VtZUZpbmlzaCAoY29uc3VtZSwgZXJyKSB7XG4gIGlmIChjb25zdW1lLmJvZHkgPT09IG51bGwpIHtcbiAgICByZXR1cm5cbiAgfVxuXG4gIGlmIChlcnIpIHtcbiAgICBjb25zdW1lLnJlamVjdChlcnIpXG4gIH0gZWxzZSB7XG4gICAgY29uc3VtZS5yZXNvbHZlKClcbiAgfVxuXG4gIGNvbnN1bWUudHlwZSA9IG51bGxcbiAgY29uc3VtZS5zdHJlYW0gPSBudWxsXG4gIGNvbnN1bWUucmVzb2x2ZSA9IG51bGxcbiAgY29uc3VtZS5yZWplY3QgPSBudWxsXG4gIGNvbnN1bWUubGVuZ3RoID0gMFxuICBjb25zdW1lLmJvZHkgPSBudWxsXG59XG5cbm1vZHVsZS5leHBvcnRzID0geyBSZWFkYWJsZTogQm9keVJlYWRhYmxlLCBjaHVua3NEZWNvZGUgfVxuIiwgImNvbnN0IGFzc2VydCA9IHJlcXVpcmUoJ25vZGU6YXNzZXJ0JylcbmNvbnN0IHtcbiAgUmVzcG9uc2VTdGF0dXNDb2RlRXJyb3Jcbn0gPSByZXF1aXJlKCcuLi9jb3JlL2Vycm9ycycpXG5cbmNvbnN0IHsgY2h1bmtzRGVjb2RlIH0gPSByZXF1aXJlKCcuL3JlYWRhYmxlJylcbmNvbnN0IENIVU5LX0xJTUlUID0gMTI4ICogMTAyNFxuXG5hc3luYyBmdW5jdGlvbiBnZXRSZXNvbHZlRXJyb3JCb2R5Q2FsbGJhY2sgKHsgY2FsbGJhY2ssIGJvZHksIGNvbnRlbnRUeXBlLCBzdGF0dXNDb2RlLCBzdGF0dXNNZXNzYWdlLCBoZWFkZXJzIH0pIHtcbiAgYXNzZXJ0KGJvZHkpXG5cbiAgbGV0IGNodW5rcyA9IFtdXG4gIGxldCBsZW5ndGggPSAwXG5cbiAgdHJ5IHtcbiAgICBmb3IgYXdhaXQgKGNvbnN0IGNodW5rIG9mIGJvZHkpIHtcbiAgICAgIGNodW5rcy5wdXNoKGNodW5rKVxuICAgICAgbGVuZ3RoICs9IGNodW5rLmxlbmd0aFxuICAgICAgaWYgKGxlbmd0aCA+IENIVU5LX0xJTUlUKSB7XG4gICAgICAgIGNodW5rcyA9IFtdXG4gICAgICAgIGxlbmd0aCA9IDBcbiAgICAgICAgYnJlYWtcbiAgICAgIH1cbiAgICB9XG4gIH0gY2F0Y2gge1xuICAgIGNodW5rcyA9IFtdXG4gICAgbGVuZ3RoID0gMFxuICAgIC8vIERvIG5vdGhpbmcuLi4uXG4gIH1cblxuICBjb25zdCBtZXNzYWdlID0gYFJlc3BvbnNlIHN0YXR1cyBjb2RlICR7c3RhdHVzQ29kZX0ke3N0YXR1c01lc3NhZ2UgPyBgOiAke3N0YXR1c01lc3NhZ2V9YCA6ICcnfWBcblxuICBpZiAoc3RhdHVzQ29kZSA9PT0gMjA0IHx8ICFjb250ZW50VHlwZSB8fCAhbGVuZ3RoKSB7XG4gICAgcXVldWVNaWNyb3Rhc2soKCkgPT4gY2FsbGJhY2sobmV3IFJlc3BvbnNlU3RhdHVzQ29kZUVycm9yKG1lc3NhZ2UsIHN0YXR1c0NvZGUsIGhlYWRlcnMpKSlcbiAgICByZXR1cm5cbiAgfVxuXG4gIGNvbnN0IHN0YWNrVHJhY2VMaW1pdCA9IEVycm9yLnN0YWNrVHJhY2VMaW1pdFxuICBFcnJvci5zdGFja1RyYWNlTGltaXQgPSAwXG4gIGxldCBwYXlsb2FkXG5cbiAgdHJ5IHtcbiAgICBpZiAoaXNDb250ZW50VHlwZUFwcGxpY2F0aW9uSnNvbihjb250ZW50VHlwZSkpIHtcbiAgICAgIHBheWxvYWQgPSBKU09OLnBhcnNlKGNodW5rc0RlY29kZShjaHVua3MsIGxlbmd0aCkpXG4gICAgfSBlbHNlIGlmIChpc0NvbnRlbnRUeXBlVGV4dChjb250ZW50VHlwZSkpIHtcbiAgICAgIHBheWxvYWQgPSBjaHVua3NEZWNvZGUoY2h1bmtzLCBsZW5ndGgpXG4gICAgfVxuICB9IGNhdGNoIHtcbiAgICAvLyBwcm9jZXNzIGluIGEgY2FsbGJhY2sgdG8gYXZvaWQgdGhyb3dpbmcgaW4gdGhlIG1pY3JvdGFzayBxdWV1ZVxuICB9IGZpbmFsbHkge1xuICAgIEVycm9yLnN0YWNrVHJhY2VMaW1pdCA9IHN0YWNrVHJhY2VMaW1pdFxuICB9XG4gIHF1ZXVlTWljcm90YXNrKCgpID0+IGNhbGxiYWNrKG5ldyBSZXNwb25zZVN0YXR1c0NvZGVFcnJvcihtZXNzYWdlLCBzdGF0dXNDb2RlLCBoZWFkZXJzLCBwYXlsb2FkKSkpXG59XG5cbmNvbnN0IGlzQ29udGVudFR5cGVBcHBsaWNhdGlvbkpzb24gPSAoY29udGVudFR5cGUpID0+IHtcbiAgcmV0dXJuIChcbiAgICBjb250ZW50VHlwZS5sZW5ndGggPiAxNSAmJlxuICAgIGNvbnRlbnRUeXBlWzExXSA9PT0gJy8nICYmXG4gICAgY29udGVudFR5cGVbMF0gPT09ICdhJyAmJlxuICAgIGNvbnRlbnRUeXBlWzFdID09PSAncCcgJiZcbiAgICBjb250ZW50VHlwZVsyXSA9PT0gJ3AnICYmXG4gICAgY29udGVudFR5cGVbM10gPT09ICdsJyAmJlxuICAgIGNvbnRlbnRUeXBlWzRdID09PSAnaScgJiZcbiAgICBjb250ZW50VHlwZVs1XSA9PT0gJ2MnICYmXG4gICAgY29udGVudFR5cGVbNl0gPT09ICdhJyAmJlxuICAgIGNvbnRlbnRUeXBlWzddID09PSAndCcgJiZcbiAgICBjb250ZW50VHlwZVs4XSA9PT0gJ2knICYmXG4gICAgY29udGVudFR5cGVbOV0gPT09ICdvJyAmJlxuICAgIGNvbnRlbnRUeXBlWzEwXSA9PT0gJ24nICYmXG4gICAgY29udGVudFR5cGVbMTJdID09PSAnaicgJiZcbiAgICBjb250ZW50VHlwZVsxM10gPT09ICdzJyAmJlxuICAgIGNvbnRlbnRUeXBlWzE0XSA9PT0gJ28nICYmXG4gICAgY29udGVudFR5cGVbMTVdID09PSAnbidcbiAgKVxufVxuXG5jb25zdCBpc0NvbnRlbnRUeXBlVGV4dCA9IChjb250ZW50VHlwZSkgPT4ge1xuICByZXR1cm4gKFxuICAgIGNvbnRlbnRUeXBlLmxlbmd0aCA+IDQgJiZcbiAgICBjb250ZW50VHlwZVs0XSA9PT0gJy8nICYmXG4gICAgY29udGVudFR5cGVbMF0gPT09ICd0JyAmJlxuICAgIGNvbnRlbnRUeXBlWzFdID09PSAnZScgJiZcbiAgICBjb250ZW50VHlwZVsyXSA9PT0gJ3gnICYmXG4gICAgY29udGVudFR5cGVbM10gPT09ICd0J1xuICApXG59XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICBnZXRSZXNvbHZlRXJyb3JCb2R5Q2FsbGJhY2ssXG4gIGlzQ29udGVudFR5cGVBcHBsaWNhdGlvbkpzb24sXG4gIGlzQ29udGVudFR5cGVUZXh0XG59XG4iLCAiJ3VzZSBzdHJpY3QnXG5cbmNvbnN0IGFzc2VydCA9IHJlcXVpcmUoJ25vZGU6YXNzZXJ0JylcbmNvbnN0IHsgUmVhZGFibGUgfSA9IHJlcXVpcmUoJy4vcmVhZGFibGUnKVxuY29uc3QgeyBJbnZhbGlkQXJndW1lbnRFcnJvciwgUmVxdWVzdEFib3J0ZWRFcnJvciB9ID0gcmVxdWlyZSgnLi4vY29yZS9lcnJvcnMnKVxuY29uc3QgdXRpbCA9IHJlcXVpcmUoJy4uL2NvcmUvdXRpbCcpXG5jb25zdCB7IGdldFJlc29sdmVFcnJvckJvZHlDYWxsYmFjayB9ID0gcmVxdWlyZSgnLi91dGlsJylcbmNvbnN0IHsgQXN5bmNSZXNvdXJjZSB9ID0gcmVxdWlyZSgnbm9kZTphc3luY19ob29rcycpXG5cbmNsYXNzIFJlcXVlc3RIYW5kbGVyIGV4dGVuZHMgQXN5bmNSZXNvdXJjZSB7XG4gIGNvbnN0cnVjdG9yIChvcHRzLCBjYWxsYmFjaykge1xuICAgIGlmICghb3B0cyB8fCB0eXBlb2Ygb3B0cyAhPT0gJ29iamVjdCcpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRFcnJvcignaW52YWxpZCBvcHRzJylcbiAgICB9XG5cbiAgICBjb25zdCB7IHNpZ25hbCwgbWV0aG9kLCBvcGFxdWUsIGJvZHksIG9uSW5mbywgcmVzcG9uc2VIZWFkZXJzLCB0aHJvd09uRXJyb3IsIGhpZ2hXYXRlck1hcmsgfSA9IG9wdHNcblxuICAgIHRyeSB7XG4gICAgICBpZiAodHlwZW9mIGNhbGxiYWNrICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRFcnJvcignaW52YWxpZCBjYWxsYmFjaycpXG4gICAgICB9XG5cbiAgICAgIGlmIChoaWdoV2F0ZXJNYXJrICYmICh0eXBlb2YgaGlnaFdhdGVyTWFyayAhPT0gJ251bWJlcicgfHwgaGlnaFdhdGVyTWFyayA8IDApKSB7XG4gICAgICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRFcnJvcignaW52YWxpZCBoaWdoV2F0ZXJNYXJrJylcbiAgICAgIH1cblxuICAgICAgaWYgKHNpZ25hbCAmJiB0eXBlb2Ygc2lnbmFsLm9uICE9PSAnZnVuY3Rpb24nICYmIHR5cGVvZiBzaWduYWwuYWRkRXZlbnRMaXN0ZW5lciAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50RXJyb3IoJ3NpZ25hbCBtdXN0IGJlIGFuIEV2ZW50RW1pdHRlciBvciBFdmVudFRhcmdldCcpXG4gICAgICB9XG5cbiAgICAgIGlmIChtZXRob2QgPT09ICdDT05ORUNUJykge1xuICAgICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50RXJyb3IoJ2ludmFsaWQgbWV0aG9kJylcbiAgICAgIH1cblxuICAgICAgaWYgKG9uSW5mbyAmJiB0eXBlb2Ygb25JbmZvICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRFcnJvcignaW52YWxpZCBvbkluZm8gY2FsbGJhY2snKVxuICAgICAgfVxuXG4gICAgICBzdXBlcignVU5ESUNJX1JFUVVFU1QnKVxuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgaWYgKHV0aWwuaXNTdHJlYW0oYm9keSkpIHtcbiAgICAgICAgdXRpbC5kZXN0cm95KGJvZHkub24oJ2Vycm9yJywgdXRpbC5ub3ApLCBlcnIpXG4gICAgICB9XG4gICAgICB0aHJvdyBlcnJcbiAgICB9XG5cbiAgICB0aGlzLm1ldGhvZCA9IG1ldGhvZFxuICAgIHRoaXMucmVzcG9uc2VIZWFkZXJzID0gcmVzcG9uc2VIZWFkZXJzIHx8IG51bGxcbiAgICB0aGlzLm9wYXF1ZSA9IG9wYXF1ZSB8fCBudWxsXG4gICAgdGhpcy5jYWxsYmFjayA9IGNhbGxiYWNrXG4gICAgdGhpcy5yZXMgPSBudWxsXG4gICAgdGhpcy5hYm9ydCA9IG51bGxcbiAgICB0aGlzLmJvZHkgPSBib2R5XG4gICAgdGhpcy50cmFpbGVycyA9IHt9XG4gICAgdGhpcy5jb250ZXh0ID0gbnVsbFxuICAgIHRoaXMub25JbmZvID0gb25JbmZvIHx8IG51bGxcbiAgICB0aGlzLnRocm93T25FcnJvciA9IHRocm93T25FcnJvclxuICAgIHRoaXMuaGlnaFdhdGVyTWFyayA9IGhpZ2hXYXRlck1hcmtcbiAgICB0aGlzLnNpZ25hbCA9IHNpZ25hbFxuICAgIHRoaXMucmVhc29uID0gbnVsbFxuICAgIHRoaXMucmVtb3ZlQWJvcnRMaXN0ZW5lciA9IG51bGxcblxuICAgIGlmICh1dGlsLmlzU3RyZWFtKGJvZHkpKSB7XG4gICAgICBib2R5Lm9uKCdlcnJvcicsIChlcnIpID0+IHtcbiAgICAgICAgdGhpcy5vbkVycm9yKGVycilcbiAgICAgIH0pXG4gICAgfVxuXG4gICAgaWYgKHRoaXMuc2lnbmFsKSB7XG4gICAgICBpZiAodGhpcy5zaWduYWwuYWJvcnRlZCkge1xuICAgICAgICB0aGlzLnJlYXNvbiA9IHRoaXMuc2lnbmFsLnJlYXNvbiA/PyBuZXcgUmVxdWVzdEFib3J0ZWRFcnJvcigpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnJlbW92ZUFib3J0TGlzdGVuZXIgPSB1dGlsLmFkZEFib3J0TGlzdGVuZXIodGhpcy5zaWduYWwsICgpID0+IHtcbiAgICAgICAgICB0aGlzLnJlYXNvbiA9IHRoaXMuc2lnbmFsLnJlYXNvbiA/PyBuZXcgUmVxdWVzdEFib3J0ZWRFcnJvcigpXG4gICAgICAgICAgaWYgKHRoaXMucmVzKSB7XG4gICAgICAgICAgICB1dGlsLmRlc3Ryb3kodGhpcy5yZXMub24oJ2Vycm9yJywgdXRpbC5ub3ApLCB0aGlzLnJlYXNvbilcbiAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuYWJvcnQpIHtcbiAgICAgICAgICAgIHRoaXMuYWJvcnQodGhpcy5yZWFzb24pXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKHRoaXMucmVtb3ZlQWJvcnRMaXN0ZW5lcikge1xuICAgICAgICAgICAgdGhpcy5yZXM/Lm9mZignY2xvc2UnLCB0aGlzLnJlbW92ZUFib3J0TGlzdGVuZXIpXG4gICAgICAgICAgICB0aGlzLnJlbW92ZUFib3J0TGlzdGVuZXIoKVxuICAgICAgICAgICAgdGhpcy5yZW1vdmVBYm9ydExpc3RlbmVyID0gbnVsbFxuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBvbkNvbm5lY3QgKGFib3J0LCBjb250ZXh0KSB7XG4gICAgaWYgKHRoaXMucmVhc29uKSB7XG4gICAgICBhYm9ydCh0aGlzLnJlYXNvbilcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGFzc2VydCh0aGlzLmNhbGxiYWNrKVxuXG4gICAgdGhpcy5hYm9ydCA9IGFib3J0XG4gICAgdGhpcy5jb250ZXh0ID0gY29udGV4dFxuICB9XG5cbiAgb25IZWFkZXJzIChzdGF0dXNDb2RlLCByYXdIZWFkZXJzLCByZXN1bWUsIHN0YXR1c01lc3NhZ2UpIHtcbiAgICBjb25zdCB7IGNhbGxiYWNrLCBvcGFxdWUsIGFib3J0LCBjb250ZXh0LCByZXNwb25zZUhlYWRlcnMsIGhpZ2hXYXRlck1hcmsgfSA9IHRoaXNcblxuICAgIGNvbnN0IGhlYWRlcnMgPSByZXNwb25zZUhlYWRlcnMgPT09ICdyYXcnID8gdXRpbC5wYXJzZVJhd0hlYWRlcnMocmF3SGVhZGVycykgOiB1dGlsLnBhcnNlSGVhZGVycyhyYXdIZWFkZXJzKVxuXG4gICAgaWYgKHN0YXR1c0NvZGUgPCAyMDApIHtcbiAgICAgIGlmICh0aGlzLm9uSW5mbykge1xuICAgICAgICB0aGlzLm9uSW5mbyh7IHN0YXR1c0NvZGUsIGhlYWRlcnMgfSlcbiAgICAgIH1cbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGNvbnN0IHBhcnNlZEhlYWRlcnMgPSByZXNwb25zZUhlYWRlcnMgPT09ICdyYXcnID8gdXRpbC5wYXJzZUhlYWRlcnMocmF3SGVhZGVycykgOiBoZWFkZXJzXG4gICAgY29uc3QgY29udGVudFR5cGUgPSBwYXJzZWRIZWFkZXJzWydjb250ZW50LXR5cGUnXVxuICAgIGNvbnN0IGNvbnRlbnRMZW5ndGggPSBwYXJzZWRIZWFkZXJzWydjb250ZW50LWxlbmd0aCddXG4gICAgY29uc3QgcmVzID0gbmV3IFJlYWRhYmxlKHtcbiAgICAgIHJlc3VtZSxcbiAgICAgIGFib3J0LFxuICAgICAgY29udGVudFR5cGUsXG4gICAgICBjb250ZW50TGVuZ3RoOiB0aGlzLm1ldGhvZCAhPT0gJ0hFQUQnICYmIGNvbnRlbnRMZW5ndGhcbiAgICAgICAgPyBOdW1iZXIoY29udGVudExlbmd0aClcbiAgICAgICAgOiBudWxsLFxuICAgICAgaGlnaFdhdGVyTWFya1xuICAgIH0pXG5cbiAgICBpZiAodGhpcy5yZW1vdmVBYm9ydExpc3RlbmVyKSB7XG4gICAgICByZXMub24oJ2Nsb3NlJywgdGhpcy5yZW1vdmVBYm9ydExpc3RlbmVyKVxuICAgIH1cblxuICAgIHRoaXMuY2FsbGJhY2sgPSBudWxsXG4gICAgdGhpcy5yZXMgPSByZXNcbiAgICBpZiAoY2FsbGJhY2sgIT09IG51bGwpIHtcbiAgICAgIGlmICh0aGlzLnRocm93T25FcnJvciAmJiBzdGF0dXNDb2RlID49IDQwMCkge1xuICAgICAgICB0aGlzLnJ1bkluQXN5bmNTY29wZShnZXRSZXNvbHZlRXJyb3JCb2R5Q2FsbGJhY2ssIG51bGwsXG4gICAgICAgICAgeyBjYWxsYmFjaywgYm9keTogcmVzLCBjb250ZW50VHlwZSwgc3RhdHVzQ29kZSwgc3RhdHVzTWVzc2FnZSwgaGVhZGVycyB9XG4gICAgICAgIClcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMucnVuSW5Bc3luY1Njb3BlKGNhbGxiYWNrLCBudWxsLCBudWxsLCB7XG4gICAgICAgICAgc3RhdHVzQ29kZSxcbiAgICAgICAgICBoZWFkZXJzLFxuICAgICAgICAgIHRyYWlsZXJzOiB0aGlzLnRyYWlsZXJzLFxuICAgICAgICAgIG9wYXF1ZSxcbiAgICAgICAgICBib2R5OiByZXMsXG4gICAgICAgICAgY29udGV4dFxuICAgICAgICB9KVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIG9uRGF0YSAoY2h1bmspIHtcbiAgICByZXR1cm4gdGhpcy5yZXMucHVzaChjaHVuaylcbiAgfVxuXG4gIG9uQ29tcGxldGUgKHRyYWlsZXJzKSB7XG4gICAgdXRpbC5wYXJzZUhlYWRlcnModHJhaWxlcnMsIHRoaXMudHJhaWxlcnMpXG4gICAgdGhpcy5yZXMucHVzaChudWxsKVxuICB9XG5cbiAgb25FcnJvciAoZXJyKSB7XG4gICAgY29uc3QgeyByZXMsIGNhbGxiYWNrLCBib2R5LCBvcGFxdWUgfSA9IHRoaXNcblxuICAgIGlmIChjYWxsYmFjaykge1xuICAgICAgLy8gVE9ETzogRG9lcyB0aGlzIG5lZWQgcXVldWVNaWNyb3Rhc2s/XG4gICAgICB0aGlzLmNhbGxiYWNrID0gbnVsbFxuICAgICAgcXVldWVNaWNyb3Rhc2soKCkgPT4ge1xuICAgICAgICB0aGlzLnJ1bkluQXN5bmNTY29wZShjYWxsYmFjaywgbnVsbCwgZXJyLCB7IG9wYXF1ZSB9KVxuICAgICAgfSlcbiAgICB9XG5cbiAgICBpZiAocmVzKSB7XG4gICAgICB0aGlzLnJlcyA9IG51bGxcbiAgICAgIC8vIEVuc3VyZSBhbGwgcXVldWVkIGhhbmRsZXJzIGFyZSBpbnZva2VkIGJlZm9yZSBkZXN0cm95aW5nIHJlcy5cbiAgICAgIHF1ZXVlTWljcm90YXNrKCgpID0+IHtcbiAgICAgICAgdXRpbC5kZXN0cm95KHJlcywgZXJyKVxuICAgICAgfSlcbiAgICB9XG5cbiAgICBpZiAoYm9keSkge1xuICAgICAgdGhpcy5ib2R5ID0gbnVsbFxuICAgICAgdXRpbC5kZXN0cm95KGJvZHksIGVycilcbiAgICB9XG5cbiAgICBpZiAodGhpcy5yZW1vdmVBYm9ydExpc3RlbmVyKSB7XG4gICAgICByZXM/Lm9mZignY2xvc2UnLCB0aGlzLnJlbW92ZUFib3J0TGlzdGVuZXIpXG4gICAgICB0aGlzLnJlbW92ZUFib3J0TGlzdGVuZXIoKVxuICAgICAgdGhpcy5yZW1vdmVBYm9ydExpc3RlbmVyID0gbnVsbFxuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiByZXF1ZXN0IChvcHRzLCBjYWxsYmFjaykge1xuICBpZiAoY2FsbGJhY2sgPT09IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICByZXF1ZXN0LmNhbGwodGhpcywgb3B0cywgKGVyciwgZGF0YSkgPT4ge1xuICAgICAgICByZXR1cm4gZXJyID8gcmVqZWN0KGVycikgOiByZXNvbHZlKGRhdGEpXG4gICAgICB9KVxuICAgIH0pXG4gIH1cblxuICB0cnkge1xuICAgIHRoaXMuZGlzcGF0Y2gob3B0cywgbmV3IFJlcXVlc3RIYW5kbGVyKG9wdHMsIGNhbGxiYWNrKSlcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgaWYgKHR5cGVvZiBjYWxsYmFjayAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgdGhyb3cgZXJyXG4gICAgfVxuICAgIGNvbnN0IG9wYXF1ZSA9IG9wdHM/Lm9wYXF1ZVxuICAgIHF1ZXVlTWljcm90YXNrKCgpID0+IGNhbGxiYWNrKGVyciwgeyBvcGFxdWUgfSkpXG4gIH1cbn1cblxubW9kdWxlLmV4cG9ydHMgPSByZXF1ZXN0XG5tb2R1bGUuZXhwb3J0cy5SZXF1ZXN0SGFuZGxlciA9IFJlcXVlc3RIYW5kbGVyXG4iLCAiY29uc3QgeyBhZGRBYm9ydExpc3RlbmVyIH0gPSByZXF1aXJlKCcuLi9jb3JlL3V0aWwnKVxuY29uc3QgeyBSZXF1ZXN0QWJvcnRlZEVycm9yIH0gPSByZXF1aXJlKCcuLi9jb3JlL2Vycm9ycycpXG5cbmNvbnN0IGtMaXN0ZW5lciA9IFN5bWJvbCgna0xpc3RlbmVyJylcbmNvbnN0IGtTaWduYWwgPSBTeW1ib2woJ2tTaWduYWwnKVxuXG5mdW5jdGlvbiBhYm9ydCAoc2VsZikge1xuICBpZiAoc2VsZi5hYm9ydCkge1xuICAgIHNlbGYuYWJvcnQoc2VsZltrU2lnbmFsXT8ucmVhc29uKVxuICB9IGVsc2Uge1xuICAgIHNlbGYucmVhc29uID0gc2VsZltrU2lnbmFsXT8ucmVhc29uID8/IG5ldyBSZXF1ZXN0QWJvcnRlZEVycm9yKClcbiAgfVxuICByZW1vdmVTaWduYWwoc2VsZilcbn1cblxuZnVuY3Rpb24gYWRkU2lnbmFsIChzZWxmLCBzaWduYWwpIHtcbiAgc2VsZi5yZWFzb24gPSBudWxsXG5cbiAgc2VsZltrU2lnbmFsXSA9IG51bGxcbiAgc2VsZltrTGlzdGVuZXJdID0gbnVsbFxuXG4gIGlmICghc2lnbmFsKSB7XG4gICAgcmV0dXJuXG4gIH1cblxuICBpZiAoc2lnbmFsLmFib3J0ZWQpIHtcbiAgICBhYm9ydChzZWxmKVxuICAgIHJldHVyblxuICB9XG5cbiAgc2VsZltrU2lnbmFsXSA9IHNpZ25hbFxuICBzZWxmW2tMaXN0ZW5lcl0gPSAoKSA9PiB7XG4gICAgYWJvcnQoc2VsZilcbiAgfVxuXG4gIGFkZEFib3J0TGlzdGVuZXIoc2VsZltrU2lnbmFsXSwgc2VsZltrTGlzdGVuZXJdKVxufVxuXG5mdW5jdGlvbiByZW1vdmVTaWduYWwgKHNlbGYpIHtcbiAgaWYgKCFzZWxmW2tTaWduYWxdKSB7XG4gICAgcmV0dXJuXG4gIH1cblxuICBpZiAoJ3JlbW92ZUV2ZW50TGlzdGVuZXInIGluIHNlbGZba1NpZ25hbF0pIHtcbiAgICBzZWxmW2tTaWduYWxdLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2Fib3J0Jywgc2VsZltrTGlzdGVuZXJdKVxuICB9IGVsc2Uge1xuICAgIHNlbGZba1NpZ25hbF0ucmVtb3ZlTGlzdGVuZXIoJ2Fib3J0Jywgc2VsZltrTGlzdGVuZXJdKVxuICB9XG5cbiAgc2VsZltrU2lnbmFsXSA9IG51bGxcbiAgc2VsZltrTGlzdGVuZXJdID0gbnVsbFxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgYWRkU2lnbmFsLFxuICByZW1vdmVTaWduYWxcbn1cbiIsICIndXNlIHN0cmljdCdcblxuY29uc3QgYXNzZXJ0ID0gcmVxdWlyZSgnbm9kZTphc3NlcnQnKVxuY29uc3QgeyBmaW5pc2hlZCwgUGFzc1Rocm91Z2ggfSA9IHJlcXVpcmUoJ25vZGU6c3RyZWFtJylcbmNvbnN0IHsgSW52YWxpZEFyZ3VtZW50RXJyb3IsIEludmFsaWRSZXR1cm5WYWx1ZUVycm9yIH0gPSByZXF1aXJlKCcuLi9jb3JlL2Vycm9ycycpXG5jb25zdCB1dGlsID0gcmVxdWlyZSgnLi4vY29yZS91dGlsJylcbmNvbnN0IHsgZ2V0UmVzb2x2ZUVycm9yQm9keUNhbGxiYWNrIH0gPSByZXF1aXJlKCcuL3V0aWwnKVxuY29uc3QgeyBBc3luY1Jlc291cmNlIH0gPSByZXF1aXJlKCdub2RlOmFzeW5jX2hvb2tzJylcbmNvbnN0IHsgYWRkU2lnbmFsLCByZW1vdmVTaWduYWwgfSA9IHJlcXVpcmUoJy4vYWJvcnQtc2lnbmFsJylcblxuY2xhc3MgU3RyZWFtSGFuZGxlciBleHRlbmRzIEFzeW5jUmVzb3VyY2Uge1xuICBjb25zdHJ1Y3RvciAob3B0cywgZmFjdG9yeSwgY2FsbGJhY2spIHtcbiAgICBpZiAoIW9wdHMgfHwgdHlwZW9mIG9wdHMgIT09ICdvYmplY3QnKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50RXJyb3IoJ2ludmFsaWQgb3B0cycpXG4gICAgfVxuXG4gICAgY29uc3QgeyBzaWduYWwsIG1ldGhvZCwgb3BhcXVlLCBib2R5LCBvbkluZm8sIHJlc3BvbnNlSGVhZGVycywgdGhyb3dPbkVycm9yIH0gPSBvcHRzXG5cbiAgICB0cnkge1xuICAgICAgaWYgKHR5cGVvZiBjYWxsYmFjayAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50RXJyb3IoJ2ludmFsaWQgY2FsbGJhY2snKVxuICAgICAgfVxuXG4gICAgICBpZiAodHlwZW9mIGZhY3RvcnkgIT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudEVycm9yKCdpbnZhbGlkIGZhY3RvcnknKVxuICAgICAgfVxuXG4gICAgICBpZiAoc2lnbmFsICYmIHR5cGVvZiBzaWduYWwub24gIT09ICdmdW5jdGlvbicgJiYgdHlwZW9mIHNpZ25hbC5hZGRFdmVudExpc3RlbmVyICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRFcnJvcignc2lnbmFsIG11c3QgYmUgYW4gRXZlbnRFbWl0dGVyIG9yIEV2ZW50VGFyZ2V0JylcbiAgICAgIH1cblxuICAgICAgaWYgKG1ldGhvZCA9PT0gJ0NPTk5FQ1QnKSB7XG4gICAgICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRFcnJvcignaW52YWxpZCBtZXRob2QnKVxuICAgICAgfVxuXG4gICAgICBpZiAob25JbmZvICYmIHR5cGVvZiBvbkluZm8gIT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudEVycm9yKCdpbnZhbGlkIG9uSW5mbyBjYWxsYmFjaycpXG4gICAgICB9XG5cbiAgICAgIHN1cGVyKCdVTkRJQ0lfU1RSRUFNJylcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGlmICh1dGlsLmlzU3RyZWFtKGJvZHkpKSB7XG4gICAgICAgIHV0aWwuZGVzdHJveShib2R5Lm9uKCdlcnJvcicsIHV0aWwubm9wKSwgZXJyKVxuICAgICAgfVxuICAgICAgdGhyb3cgZXJyXG4gICAgfVxuXG4gICAgdGhpcy5yZXNwb25zZUhlYWRlcnMgPSByZXNwb25zZUhlYWRlcnMgfHwgbnVsbFxuICAgIHRoaXMub3BhcXVlID0gb3BhcXVlIHx8IG51bGxcbiAgICB0aGlzLmZhY3RvcnkgPSBmYWN0b3J5XG4gICAgdGhpcy5jYWxsYmFjayA9IGNhbGxiYWNrXG4gICAgdGhpcy5yZXMgPSBudWxsXG4gICAgdGhpcy5hYm9ydCA9IG51bGxcbiAgICB0aGlzLmNvbnRleHQgPSBudWxsXG4gICAgdGhpcy50cmFpbGVycyA9IG51bGxcbiAgICB0aGlzLmJvZHkgPSBib2R5XG4gICAgdGhpcy5vbkluZm8gPSBvbkluZm8gfHwgbnVsbFxuICAgIHRoaXMudGhyb3dPbkVycm9yID0gdGhyb3dPbkVycm9yIHx8IGZhbHNlXG5cbiAgICBpZiAodXRpbC5pc1N0cmVhbShib2R5KSkge1xuICAgICAgYm9keS5vbignZXJyb3InLCAoZXJyKSA9PiB7XG4gICAgICAgIHRoaXMub25FcnJvcihlcnIpXG4gICAgICB9KVxuICAgIH1cblxuICAgIGFkZFNpZ25hbCh0aGlzLCBzaWduYWwpXG4gIH1cblxuICBvbkNvbm5lY3QgKGFib3J0LCBjb250ZXh0KSB7XG4gICAgaWYgKHRoaXMucmVhc29uKSB7XG4gICAgICBhYm9ydCh0aGlzLnJlYXNvbilcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGFzc2VydCh0aGlzLmNhbGxiYWNrKVxuXG4gICAgdGhpcy5hYm9ydCA9IGFib3J0XG4gICAgdGhpcy5jb250ZXh0ID0gY29udGV4dFxuICB9XG5cbiAgb25IZWFkZXJzIChzdGF0dXNDb2RlLCByYXdIZWFkZXJzLCByZXN1bWUsIHN0YXR1c01lc3NhZ2UpIHtcbiAgICBjb25zdCB7IGZhY3RvcnksIG9wYXF1ZSwgY29udGV4dCwgY2FsbGJhY2ssIHJlc3BvbnNlSGVhZGVycyB9ID0gdGhpc1xuXG4gICAgY29uc3QgaGVhZGVycyA9IHJlc3BvbnNlSGVhZGVycyA9PT0gJ3JhdycgPyB1dGlsLnBhcnNlUmF3SGVhZGVycyhyYXdIZWFkZXJzKSA6IHV0aWwucGFyc2VIZWFkZXJzKHJhd0hlYWRlcnMpXG5cbiAgICBpZiAoc3RhdHVzQ29kZSA8IDIwMCkge1xuICAgICAgaWYgKHRoaXMub25JbmZvKSB7XG4gICAgICAgIHRoaXMub25JbmZvKHsgc3RhdHVzQ29kZSwgaGVhZGVycyB9KVxuICAgICAgfVxuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgdGhpcy5mYWN0b3J5ID0gbnVsbFxuXG4gICAgbGV0IHJlc1xuXG4gICAgaWYgKHRoaXMudGhyb3dPbkVycm9yICYmIHN0YXR1c0NvZGUgPj0gNDAwKSB7XG4gICAgICBjb25zdCBwYXJzZWRIZWFkZXJzID0gcmVzcG9uc2VIZWFkZXJzID09PSAncmF3JyA/IHV0aWwucGFyc2VIZWFkZXJzKHJhd0hlYWRlcnMpIDogaGVhZGVyc1xuICAgICAgY29uc3QgY29udGVudFR5cGUgPSBwYXJzZWRIZWFkZXJzWydjb250ZW50LXR5cGUnXVxuICAgICAgcmVzID0gbmV3IFBhc3NUaHJvdWdoKClcblxuICAgICAgdGhpcy5jYWxsYmFjayA9IG51bGxcbiAgICAgIHRoaXMucnVuSW5Bc3luY1Njb3BlKGdldFJlc29sdmVFcnJvckJvZHlDYWxsYmFjaywgbnVsbCxcbiAgICAgICAgeyBjYWxsYmFjaywgYm9keTogcmVzLCBjb250ZW50VHlwZSwgc3RhdHVzQ29kZSwgc3RhdHVzTWVzc2FnZSwgaGVhZGVycyB9XG4gICAgICApXG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChmYWN0b3J5ID09PSBudWxsKSB7XG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICByZXMgPSB0aGlzLnJ1bkluQXN5bmNTY29wZShmYWN0b3J5LCBudWxsLCB7XG4gICAgICAgIHN0YXR1c0NvZGUsXG4gICAgICAgIGhlYWRlcnMsXG4gICAgICAgIG9wYXF1ZSxcbiAgICAgICAgY29udGV4dFxuICAgICAgfSlcblxuICAgICAgaWYgKFxuICAgICAgICAhcmVzIHx8XG4gICAgICAgIHR5cGVvZiByZXMud3JpdGUgIT09ICdmdW5jdGlvbicgfHxcbiAgICAgICAgdHlwZW9mIHJlcy5lbmQgIT09ICdmdW5jdGlvbicgfHxcbiAgICAgICAgdHlwZW9mIHJlcy5vbiAhPT0gJ2Z1bmN0aW9uJ1xuICAgICAgKSB7XG4gICAgICAgIHRocm93IG5ldyBJbnZhbGlkUmV0dXJuVmFsdWVFcnJvcignZXhwZWN0ZWQgV3JpdGFibGUnKVxuICAgICAgfVxuXG4gICAgICAvLyBUT0RPOiBBdm9pZCBmaW5pc2hlZC4gSXQgcmVnaXN0ZXJzIGFuIHVubmVjZXNzYXJ5IGFtb3VudCBvZiBsaXN0ZW5lcnMuXG4gICAgICBmaW5pc2hlZChyZXMsIHsgcmVhZGFibGU6IGZhbHNlIH0sIChlcnIpID0+IHtcbiAgICAgICAgY29uc3QgeyBjYWxsYmFjaywgcmVzLCBvcGFxdWUsIHRyYWlsZXJzLCBhYm9ydCB9ID0gdGhpc1xuXG4gICAgICAgIHRoaXMucmVzID0gbnVsbFxuICAgICAgICBpZiAoZXJyIHx8ICFyZXMucmVhZGFibGUpIHtcbiAgICAgICAgICB1dGlsLmRlc3Ryb3kocmVzLCBlcnIpXG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmNhbGxiYWNrID0gbnVsbFxuICAgICAgICB0aGlzLnJ1bkluQXN5bmNTY29wZShjYWxsYmFjaywgbnVsbCwgZXJyIHx8IG51bGwsIHsgb3BhcXVlLCB0cmFpbGVycyB9KVxuXG4gICAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgICBhYm9ydCgpXG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgfVxuXG4gICAgcmVzLm9uKCdkcmFpbicsIHJlc3VtZSlcblxuICAgIHRoaXMucmVzID0gcmVzXG5cbiAgICBjb25zdCBuZWVkRHJhaW4gPSByZXMud3JpdGFibGVOZWVkRHJhaW4gIT09IHVuZGVmaW5lZFxuICAgICAgPyByZXMud3JpdGFibGVOZWVkRHJhaW5cbiAgICAgIDogcmVzLl93cml0YWJsZVN0YXRlPy5uZWVkRHJhaW5cblxuICAgIHJldHVybiBuZWVkRHJhaW4gIT09IHRydWVcbiAgfVxuXG4gIG9uRGF0YSAoY2h1bmspIHtcbiAgICBjb25zdCB7IHJlcyB9ID0gdGhpc1xuXG4gICAgcmV0dXJuIHJlcyA/IHJlcy53cml0ZShjaHVuaykgOiB0cnVlXG4gIH1cblxuICBvbkNvbXBsZXRlICh0cmFpbGVycykge1xuICAgIGNvbnN0IHsgcmVzIH0gPSB0aGlzXG5cbiAgICByZW1vdmVTaWduYWwodGhpcylcblxuICAgIGlmICghcmVzKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICB0aGlzLnRyYWlsZXJzID0gdXRpbC5wYXJzZUhlYWRlcnModHJhaWxlcnMpXG5cbiAgICByZXMuZW5kKClcbiAgfVxuXG4gIG9uRXJyb3IgKGVycikge1xuICAgIGNvbnN0IHsgcmVzLCBjYWxsYmFjaywgb3BhcXVlLCBib2R5IH0gPSB0aGlzXG5cbiAgICByZW1vdmVTaWduYWwodGhpcylcblxuICAgIHRoaXMuZmFjdG9yeSA9IG51bGxcblxuICAgIGlmIChyZXMpIHtcbiAgICAgIHRoaXMucmVzID0gbnVsbFxuICAgICAgdXRpbC5kZXN0cm95KHJlcywgZXJyKVxuICAgIH0gZWxzZSBpZiAoY2FsbGJhY2spIHtcbiAgICAgIHRoaXMuY2FsbGJhY2sgPSBudWxsXG4gICAgICBxdWV1ZU1pY3JvdGFzaygoKSA9PiB7XG4gICAgICAgIHRoaXMucnVuSW5Bc3luY1Njb3BlKGNhbGxiYWNrLCBudWxsLCBlcnIsIHsgb3BhcXVlIH0pXG4gICAgICB9KVxuICAgIH1cblxuICAgIGlmIChib2R5KSB7XG4gICAgICB0aGlzLmJvZHkgPSBudWxsXG4gICAgICB1dGlsLmRlc3Ryb3koYm9keSwgZXJyKVxuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBzdHJlYW0gKG9wdHMsIGZhY3RvcnksIGNhbGxiYWNrKSB7XG4gIGlmIChjYWxsYmFjayA9PT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIHN0cmVhbS5jYWxsKHRoaXMsIG9wdHMsIGZhY3RvcnksIChlcnIsIGRhdGEpID0+IHtcbiAgICAgICAgcmV0dXJuIGVyciA/IHJlamVjdChlcnIpIDogcmVzb2x2ZShkYXRhKVxuICAgICAgfSlcbiAgICB9KVxuICB9XG5cbiAgdHJ5IHtcbiAgICB0aGlzLmRpc3BhdGNoKG9wdHMsIG5ldyBTdHJlYW1IYW5kbGVyKG9wdHMsIGZhY3RvcnksIGNhbGxiYWNrKSlcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgaWYgKHR5cGVvZiBjYWxsYmFjayAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgdGhyb3cgZXJyXG4gICAgfVxuICAgIGNvbnN0IG9wYXF1ZSA9IG9wdHM/Lm9wYXF1ZVxuICAgIHF1ZXVlTWljcm90YXNrKCgpID0+IGNhbGxiYWNrKGVyciwgeyBvcGFxdWUgfSkpXG4gIH1cbn1cblxubW9kdWxlLmV4cG9ydHMgPSBzdHJlYW1cbiIsICIndXNlIHN0cmljdCdcblxuY29uc3Qge1xuICBSZWFkYWJsZSxcbiAgRHVwbGV4LFxuICBQYXNzVGhyb3VnaFxufSA9IHJlcXVpcmUoJ25vZGU6c3RyZWFtJylcbmNvbnN0IHtcbiAgSW52YWxpZEFyZ3VtZW50RXJyb3IsXG4gIEludmFsaWRSZXR1cm5WYWx1ZUVycm9yLFxuICBSZXF1ZXN0QWJvcnRlZEVycm9yXG59ID0gcmVxdWlyZSgnLi4vY29yZS9lcnJvcnMnKVxuY29uc3QgdXRpbCA9IHJlcXVpcmUoJy4uL2NvcmUvdXRpbCcpXG5jb25zdCB7IEFzeW5jUmVzb3VyY2UgfSA9IHJlcXVpcmUoJ25vZGU6YXN5bmNfaG9va3MnKVxuY29uc3QgeyBhZGRTaWduYWwsIHJlbW92ZVNpZ25hbCB9ID0gcmVxdWlyZSgnLi9hYm9ydC1zaWduYWwnKVxuY29uc3QgYXNzZXJ0ID0gcmVxdWlyZSgnbm9kZTphc3NlcnQnKVxuXG5jb25zdCBrUmVzdW1lID0gU3ltYm9sKCdyZXN1bWUnKVxuXG5jbGFzcyBQaXBlbGluZVJlcXVlc3QgZXh0ZW5kcyBSZWFkYWJsZSB7XG4gIGNvbnN0cnVjdG9yICgpIHtcbiAgICBzdXBlcih7IGF1dG9EZXN0cm95OiB0cnVlIH0pXG5cbiAgICB0aGlzW2tSZXN1bWVdID0gbnVsbFxuICB9XG5cbiAgX3JlYWQgKCkge1xuICAgIGNvbnN0IHsgW2tSZXN1bWVdOiByZXN1bWUgfSA9IHRoaXNcblxuICAgIGlmIChyZXN1bWUpIHtcbiAgICAgIHRoaXNba1Jlc3VtZV0gPSBudWxsXG4gICAgICByZXN1bWUoKVxuICAgIH1cbiAgfVxuXG4gIF9kZXN0cm95IChlcnIsIGNhbGxiYWNrKSB7XG4gICAgdGhpcy5fcmVhZCgpXG5cbiAgICBjYWxsYmFjayhlcnIpXG4gIH1cbn1cblxuY2xhc3MgUGlwZWxpbmVSZXNwb25zZSBleHRlbmRzIFJlYWRhYmxlIHtcbiAgY29uc3RydWN0b3IgKHJlc3VtZSkge1xuICAgIHN1cGVyKHsgYXV0b0Rlc3Ryb3k6IHRydWUgfSlcbiAgICB0aGlzW2tSZXN1bWVdID0gcmVzdW1lXG4gIH1cblxuICBfcmVhZCAoKSB7XG4gICAgdGhpc1trUmVzdW1lXSgpXG4gIH1cblxuICBfZGVzdHJveSAoZXJyLCBjYWxsYmFjaykge1xuICAgIGlmICghZXJyICYmICF0aGlzLl9yZWFkYWJsZVN0YXRlLmVuZEVtaXR0ZWQpIHtcbiAgICAgIGVyciA9IG5ldyBSZXF1ZXN0QWJvcnRlZEVycm9yKClcbiAgICB9XG5cbiAgICBjYWxsYmFjayhlcnIpXG4gIH1cbn1cblxuY2xhc3MgUGlwZWxpbmVIYW5kbGVyIGV4dGVuZHMgQXN5bmNSZXNvdXJjZSB7XG4gIGNvbnN0cnVjdG9yIChvcHRzLCBoYW5kbGVyKSB7XG4gICAgaWYgKCFvcHRzIHx8IHR5cGVvZiBvcHRzICE9PSAnb2JqZWN0Jykge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudEVycm9yKCdpbnZhbGlkIG9wdHMnKVxuICAgIH1cblxuICAgIGlmICh0eXBlb2YgaGFuZGxlciAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudEVycm9yKCdpbnZhbGlkIGhhbmRsZXInKVxuICAgIH1cblxuICAgIGNvbnN0IHsgc2lnbmFsLCBtZXRob2QsIG9wYXF1ZSwgb25JbmZvLCByZXNwb25zZUhlYWRlcnMgfSA9IG9wdHNcblxuICAgIGlmIChzaWduYWwgJiYgdHlwZW9mIHNpZ25hbC5vbiAhPT0gJ2Z1bmN0aW9uJyAmJiB0eXBlb2Ygc2lnbmFsLmFkZEV2ZW50TGlzdGVuZXIgIT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRFcnJvcignc2lnbmFsIG11c3QgYmUgYW4gRXZlbnRFbWl0dGVyIG9yIEV2ZW50VGFyZ2V0JylcbiAgICB9XG5cbiAgICBpZiAobWV0aG9kID09PSAnQ09OTkVDVCcpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRFcnJvcignaW52YWxpZCBtZXRob2QnKVxuICAgIH1cblxuICAgIGlmIChvbkluZm8gJiYgdHlwZW9mIG9uSW5mbyAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudEVycm9yKCdpbnZhbGlkIG9uSW5mbyBjYWxsYmFjaycpXG4gICAgfVxuXG4gICAgc3VwZXIoJ1VORElDSV9QSVBFTElORScpXG5cbiAgICB0aGlzLm9wYXF1ZSA9IG9wYXF1ZSB8fCBudWxsXG4gICAgdGhpcy5yZXNwb25zZUhlYWRlcnMgPSByZXNwb25zZUhlYWRlcnMgfHwgbnVsbFxuICAgIHRoaXMuaGFuZGxlciA9IGhhbmRsZXJcbiAgICB0aGlzLmFib3J0ID0gbnVsbFxuICAgIHRoaXMuY29udGV4dCA9IG51bGxcbiAgICB0aGlzLm9uSW5mbyA9IG9uSW5mbyB8fCBudWxsXG5cbiAgICB0aGlzLnJlcSA9IG5ldyBQaXBlbGluZVJlcXVlc3QoKS5vbignZXJyb3InLCB1dGlsLm5vcClcblxuICAgIHRoaXMucmV0ID0gbmV3IER1cGxleCh7XG4gICAgICByZWFkYWJsZU9iamVjdE1vZGU6IG9wdHMub2JqZWN0TW9kZSxcbiAgICAgIGF1dG9EZXN0cm95OiB0cnVlLFxuICAgICAgcmVhZDogKCkgPT4ge1xuICAgICAgICBjb25zdCB7IGJvZHkgfSA9IHRoaXNcblxuICAgICAgICBpZiAoYm9keT8ucmVzdW1lKSB7XG4gICAgICAgICAgYm9keS5yZXN1bWUoKVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgd3JpdGU6IChjaHVuaywgZW5jb2RpbmcsIGNhbGxiYWNrKSA9PiB7XG4gICAgICAgIGNvbnN0IHsgcmVxIH0gPSB0aGlzXG5cbiAgICAgICAgaWYgKHJlcS5wdXNoKGNodW5rLCBlbmNvZGluZykgfHwgcmVxLl9yZWFkYWJsZVN0YXRlLmRlc3Ryb3llZCkge1xuICAgICAgICAgIGNhbGxiYWNrKClcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXFba1Jlc3VtZV0gPSBjYWxsYmFja1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgZGVzdHJveTogKGVyciwgY2FsbGJhY2spID0+IHtcbiAgICAgICAgY29uc3QgeyBib2R5LCByZXEsIHJlcywgcmV0LCBhYm9ydCB9ID0gdGhpc1xuXG4gICAgICAgIGlmICghZXJyICYmICFyZXQuX3JlYWRhYmxlU3RhdGUuZW5kRW1pdHRlZCkge1xuICAgICAgICAgIGVyciA9IG5ldyBSZXF1ZXN0QWJvcnRlZEVycm9yKClcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChhYm9ydCAmJiBlcnIpIHtcbiAgICAgICAgICBhYm9ydCgpXG4gICAgICAgIH1cblxuICAgICAgICB1dGlsLmRlc3Ryb3koYm9keSwgZXJyKVxuICAgICAgICB1dGlsLmRlc3Ryb3kocmVxLCBlcnIpXG4gICAgICAgIHV0aWwuZGVzdHJveShyZXMsIGVycilcblxuICAgICAgICByZW1vdmVTaWduYWwodGhpcylcblxuICAgICAgICBjYWxsYmFjayhlcnIpXG4gICAgICB9XG4gICAgfSkub24oJ3ByZWZpbmlzaCcsICgpID0+IHtcbiAgICAgIGNvbnN0IHsgcmVxIH0gPSB0aGlzXG5cbiAgICAgIC8vIE5vZGUgPCAxNSBkb2VzIG5vdCBjYWxsIF9maW5hbCBpbiBzYW1lIHRpY2suXG4gICAgICByZXEucHVzaChudWxsKVxuICAgIH0pXG5cbiAgICB0aGlzLnJlcyA9IG51bGxcblxuICAgIGFkZFNpZ25hbCh0aGlzLCBzaWduYWwpXG4gIH1cblxuICBvbkNvbm5lY3QgKGFib3J0LCBjb250ZXh0KSB7XG4gICAgY29uc3QgeyByZXQsIHJlcyB9ID0gdGhpc1xuXG4gICAgaWYgKHRoaXMucmVhc29uKSB7XG4gICAgICBhYm9ydCh0aGlzLnJlYXNvbilcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGFzc2VydCghcmVzLCAncGlwZWxpbmUgY2Fubm90IGJlIHJldHJpZWQnKVxuICAgIGFzc2VydCghcmV0LmRlc3Ryb3llZClcblxuICAgIHRoaXMuYWJvcnQgPSBhYm9ydFxuICAgIHRoaXMuY29udGV4dCA9IGNvbnRleHRcbiAgfVxuXG4gIG9uSGVhZGVycyAoc3RhdHVzQ29kZSwgcmF3SGVhZGVycywgcmVzdW1lKSB7XG4gICAgY29uc3QgeyBvcGFxdWUsIGhhbmRsZXIsIGNvbnRleHQgfSA9IHRoaXNcblxuICAgIGlmIChzdGF0dXNDb2RlIDwgMjAwKSB7XG4gICAgICBpZiAodGhpcy5vbkluZm8pIHtcbiAgICAgICAgY29uc3QgaGVhZGVycyA9IHRoaXMucmVzcG9uc2VIZWFkZXJzID09PSAncmF3JyA/IHV0aWwucGFyc2VSYXdIZWFkZXJzKHJhd0hlYWRlcnMpIDogdXRpbC5wYXJzZUhlYWRlcnMocmF3SGVhZGVycylcbiAgICAgICAgdGhpcy5vbkluZm8oeyBzdGF0dXNDb2RlLCBoZWFkZXJzIH0pXG4gICAgICB9XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICB0aGlzLnJlcyA9IG5ldyBQaXBlbGluZVJlc3BvbnNlKHJlc3VtZSlcblxuICAgIGxldCBib2R5XG4gICAgdHJ5IHtcbiAgICAgIHRoaXMuaGFuZGxlciA9IG51bGxcbiAgICAgIGNvbnN0IGhlYWRlcnMgPSB0aGlzLnJlc3BvbnNlSGVhZGVycyA9PT0gJ3JhdycgPyB1dGlsLnBhcnNlUmF3SGVhZGVycyhyYXdIZWFkZXJzKSA6IHV0aWwucGFyc2VIZWFkZXJzKHJhd0hlYWRlcnMpXG4gICAgICBib2R5ID0gdGhpcy5ydW5JbkFzeW5jU2NvcGUoaGFuZGxlciwgbnVsbCwge1xuICAgICAgICBzdGF0dXNDb2RlLFxuICAgICAgICBoZWFkZXJzLFxuICAgICAgICBvcGFxdWUsXG4gICAgICAgIGJvZHk6IHRoaXMucmVzLFxuICAgICAgICBjb250ZXh0XG4gICAgICB9KVxuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgdGhpcy5yZXMub24oJ2Vycm9yJywgdXRpbC5ub3ApXG4gICAgICB0aHJvdyBlcnJcbiAgICB9XG5cbiAgICBpZiAoIWJvZHkgfHwgdHlwZW9mIGJvZHkub24gIT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkUmV0dXJuVmFsdWVFcnJvcignZXhwZWN0ZWQgUmVhZGFibGUnKVxuICAgIH1cblxuICAgIGJvZHlcbiAgICAgIC5vbignZGF0YScsIChjaHVuaykgPT4ge1xuICAgICAgICBjb25zdCB7IHJldCwgYm9keSB9ID0gdGhpc1xuXG4gICAgICAgIGlmICghcmV0LnB1c2goY2h1bmspICYmIGJvZHkucGF1c2UpIHtcbiAgICAgICAgICBib2R5LnBhdXNlKClcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICAgIC5vbignZXJyb3InLCAoZXJyKSA9PiB7XG4gICAgICAgIGNvbnN0IHsgcmV0IH0gPSB0aGlzXG5cbiAgICAgICAgdXRpbC5kZXN0cm95KHJldCwgZXJyKVxuICAgICAgfSlcbiAgICAgIC5vbignZW5kJywgKCkgPT4ge1xuICAgICAgICBjb25zdCB7IHJldCB9ID0gdGhpc1xuXG4gICAgICAgIHJldC5wdXNoKG51bGwpXG4gICAgICB9KVxuICAgICAgLm9uKCdjbG9zZScsICgpID0+IHtcbiAgICAgICAgY29uc3QgeyByZXQgfSA9IHRoaXNcblxuICAgICAgICBpZiAoIXJldC5fcmVhZGFibGVTdGF0ZS5lbmRlZCkge1xuICAgICAgICAgIHV0aWwuZGVzdHJveShyZXQsIG5ldyBSZXF1ZXN0QWJvcnRlZEVycm9yKCkpXG4gICAgICAgIH1cbiAgICAgIH0pXG5cbiAgICB0aGlzLmJvZHkgPSBib2R5XG4gIH1cblxuICBvbkRhdGEgKGNodW5rKSB7XG4gICAgY29uc3QgeyByZXMgfSA9IHRoaXNcbiAgICByZXR1cm4gcmVzLnB1c2goY2h1bmspXG4gIH1cblxuICBvbkNvbXBsZXRlICh0cmFpbGVycykge1xuICAgIGNvbnN0IHsgcmVzIH0gPSB0aGlzXG4gICAgcmVzLnB1c2gobnVsbClcbiAgfVxuXG4gIG9uRXJyb3IgKGVycikge1xuICAgIGNvbnN0IHsgcmV0IH0gPSB0aGlzXG4gICAgdGhpcy5oYW5kbGVyID0gbnVsbFxuICAgIHV0aWwuZGVzdHJveShyZXQsIGVycilcbiAgfVxufVxuXG5mdW5jdGlvbiBwaXBlbGluZSAob3B0cywgaGFuZGxlcikge1xuICB0cnkge1xuICAgIGNvbnN0IHBpcGVsaW5lSGFuZGxlciA9IG5ldyBQaXBlbGluZUhhbmRsZXIob3B0cywgaGFuZGxlcilcbiAgICB0aGlzLmRpc3BhdGNoKHsgLi4ub3B0cywgYm9keTogcGlwZWxpbmVIYW5kbGVyLnJlcSB9LCBwaXBlbGluZUhhbmRsZXIpXG4gICAgcmV0dXJuIHBpcGVsaW5lSGFuZGxlci5yZXRcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgcmV0dXJuIG5ldyBQYXNzVGhyb3VnaCgpLmRlc3Ryb3koZXJyKVxuICB9XG59XG5cbm1vZHVsZS5leHBvcnRzID0gcGlwZWxpbmVcbiIsICIndXNlIHN0cmljdCdcblxuY29uc3QgeyBJbnZhbGlkQXJndW1lbnRFcnJvciwgU29ja2V0RXJyb3IgfSA9IHJlcXVpcmUoJy4uL2NvcmUvZXJyb3JzJylcbmNvbnN0IHsgQXN5bmNSZXNvdXJjZSB9ID0gcmVxdWlyZSgnbm9kZTphc3luY19ob29rcycpXG5jb25zdCB1dGlsID0gcmVxdWlyZSgnLi4vY29yZS91dGlsJylcbmNvbnN0IHsgYWRkU2lnbmFsLCByZW1vdmVTaWduYWwgfSA9IHJlcXVpcmUoJy4vYWJvcnQtc2lnbmFsJylcbmNvbnN0IGFzc2VydCA9IHJlcXVpcmUoJ25vZGU6YXNzZXJ0JylcblxuY2xhc3MgVXBncmFkZUhhbmRsZXIgZXh0ZW5kcyBBc3luY1Jlc291cmNlIHtcbiAgY29uc3RydWN0b3IgKG9wdHMsIGNhbGxiYWNrKSB7XG4gICAgaWYgKCFvcHRzIHx8IHR5cGVvZiBvcHRzICE9PSAnb2JqZWN0Jykge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudEVycm9yKCdpbnZhbGlkIG9wdHMnKVxuICAgIH1cblxuICAgIGlmICh0eXBlb2YgY2FsbGJhY2sgIT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRFcnJvcignaW52YWxpZCBjYWxsYmFjaycpXG4gICAgfVxuXG4gICAgY29uc3QgeyBzaWduYWwsIG9wYXF1ZSwgcmVzcG9uc2VIZWFkZXJzIH0gPSBvcHRzXG5cbiAgICBpZiAoc2lnbmFsICYmIHR5cGVvZiBzaWduYWwub24gIT09ICdmdW5jdGlvbicgJiYgdHlwZW9mIHNpZ25hbC5hZGRFdmVudExpc3RlbmVyICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50RXJyb3IoJ3NpZ25hbCBtdXN0IGJlIGFuIEV2ZW50RW1pdHRlciBvciBFdmVudFRhcmdldCcpXG4gICAgfVxuXG4gICAgc3VwZXIoJ1VORElDSV9VUEdSQURFJylcblxuICAgIHRoaXMucmVzcG9uc2VIZWFkZXJzID0gcmVzcG9uc2VIZWFkZXJzIHx8IG51bGxcbiAgICB0aGlzLm9wYXF1ZSA9IG9wYXF1ZSB8fCBudWxsXG4gICAgdGhpcy5jYWxsYmFjayA9IGNhbGxiYWNrXG4gICAgdGhpcy5hYm9ydCA9IG51bGxcbiAgICB0aGlzLmNvbnRleHQgPSBudWxsXG5cbiAgICBhZGRTaWduYWwodGhpcywgc2lnbmFsKVxuICB9XG5cbiAgb25Db25uZWN0IChhYm9ydCwgY29udGV4dCkge1xuICAgIGlmICh0aGlzLnJlYXNvbikge1xuICAgICAgYWJvcnQodGhpcy5yZWFzb24pXG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBhc3NlcnQodGhpcy5jYWxsYmFjaylcblxuICAgIHRoaXMuYWJvcnQgPSBhYm9ydFxuICAgIHRoaXMuY29udGV4dCA9IG51bGxcbiAgfVxuXG4gIG9uSGVhZGVycyAoKSB7XG4gICAgdGhyb3cgbmV3IFNvY2tldEVycm9yKCdiYWQgdXBncmFkZScsIG51bGwpXG4gIH1cblxuICBvblVwZ3JhZGUgKHN0YXR1c0NvZGUsIHJhd0hlYWRlcnMsIHNvY2tldCkge1xuICAgIGFzc2VydChzdGF0dXNDb2RlID09PSAxMDEpXG5cbiAgICBjb25zdCB7IGNhbGxiYWNrLCBvcGFxdWUsIGNvbnRleHQgfSA9IHRoaXNcblxuICAgIHJlbW92ZVNpZ25hbCh0aGlzKVxuXG4gICAgdGhpcy5jYWxsYmFjayA9IG51bGxcbiAgICBjb25zdCBoZWFkZXJzID0gdGhpcy5yZXNwb25zZUhlYWRlcnMgPT09ICdyYXcnID8gdXRpbC5wYXJzZVJhd0hlYWRlcnMocmF3SGVhZGVycykgOiB1dGlsLnBhcnNlSGVhZGVycyhyYXdIZWFkZXJzKVxuICAgIHRoaXMucnVuSW5Bc3luY1Njb3BlKGNhbGxiYWNrLCBudWxsLCBudWxsLCB7XG4gICAgICBoZWFkZXJzLFxuICAgICAgc29ja2V0LFxuICAgICAgb3BhcXVlLFxuICAgICAgY29udGV4dFxuICAgIH0pXG4gIH1cblxuICBvbkVycm9yIChlcnIpIHtcbiAgICBjb25zdCB7IGNhbGxiYWNrLCBvcGFxdWUgfSA9IHRoaXNcblxuICAgIHJlbW92ZVNpZ25hbCh0aGlzKVxuXG4gICAgaWYgKGNhbGxiYWNrKSB7XG4gICAgICB0aGlzLmNhbGxiYWNrID0gbnVsbFxuICAgICAgcXVldWVNaWNyb3Rhc2soKCkgPT4ge1xuICAgICAgICB0aGlzLnJ1bkluQXN5bmNTY29wZShjYWxsYmFjaywgbnVsbCwgZXJyLCB7IG9wYXF1ZSB9KVxuICAgICAgfSlcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gdXBncmFkZSAob3B0cywgY2FsbGJhY2spIHtcbiAgaWYgKGNhbGxiYWNrID09PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgdXBncmFkZS5jYWxsKHRoaXMsIG9wdHMsIChlcnIsIGRhdGEpID0+IHtcbiAgICAgICAgcmV0dXJuIGVyciA/IHJlamVjdChlcnIpIDogcmVzb2x2ZShkYXRhKVxuICAgICAgfSlcbiAgICB9KVxuICB9XG5cbiAgdHJ5IHtcbiAgICBjb25zdCB1cGdyYWRlSGFuZGxlciA9IG5ldyBVcGdyYWRlSGFuZGxlcihvcHRzLCBjYWxsYmFjaylcbiAgICB0aGlzLmRpc3BhdGNoKHtcbiAgICAgIC4uLm9wdHMsXG4gICAgICBtZXRob2Q6IG9wdHMubWV0aG9kIHx8ICdHRVQnLFxuICAgICAgdXBncmFkZTogb3B0cy5wcm90b2NvbCB8fCAnV2Vic29ja2V0J1xuICAgIH0sIHVwZ3JhZGVIYW5kbGVyKVxuICB9IGNhdGNoIChlcnIpIHtcbiAgICBpZiAodHlwZW9mIGNhbGxiYWNrICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICB0aHJvdyBlcnJcbiAgICB9XG4gICAgY29uc3Qgb3BhcXVlID0gb3B0cz8ub3BhcXVlXG4gICAgcXVldWVNaWNyb3Rhc2soKCkgPT4gY2FsbGJhY2soZXJyLCB7IG9wYXF1ZSB9KSlcbiAgfVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHVwZ3JhZGVcbiIsICIndXNlIHN0cmljdCdcblxuY29uc3QgYXNzZXJ0ID0gcmVxdWlyZSgnbm9kZTphc3NlcnQnKVxuY29uc3QgeyBBc3luY1Jlc291cmNlIH0gPSByZXF1aXJlKCdub2RlOmFzeW5jX2hvb2tzJylcbmNvbnN0IHsgSW52YWxpZEFyZ3VtZW50RXJyb3IsIFNvY2tldEVycm9yIH0gPSByZXF1aXJlKCcuLi9jb3JlL2Vycm9ycycpXG5jb25zdCB1dGlsID0gcmVxdWlyZSgnLi4vY29yZS91dGlsJylcbmNvbnN0IHsgYWRkU2lnbmFsLCByZW1vdmVTaWduYWwgfSA9IHJlcXVpcmUoJy4vYWJvcnQtc2lnbmFsJylcblxuY2xhc3MgQ29ubmVjdEhhbmRsZXIgZXh0ZW5kcyBBc3luY1Jlc291cmNlIHtcbiAgY29uc3RydWN0b3IgKG9wdHMsIGNhbGxiYWNrKSB7XG4gICAgaWYgKCFvcHRzIHx8IHR5cGVvZiBvcHRzICE9PSAnb2JqZWN0Jykge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudEVycm9yKCdpbnZhbGlkIG9wdHMnKVxuICAgIH1cblxuICAgIGlmICh0eXBlb2YgY2FsbGJhY2sgIT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRFcnJvcignaW52YWxpZCBjYWxsYmFjaycpXG4gICAgfVxuXG4gICAgY29uc3QgeyBzaWduYWwsIG9wYXF1ZSwgcmVzcG9uc2VIZWFkZXJzIH0gPSBvcHRzXG5cbiAgICBpZiAoc2lnbmFsICYmIHR5cGVvZiBzaWduYWwub24gIT09ICdmdW5jdGlvbicgJiYgdHlwZW9mIHNpZ25hbC5hZGRFdmVudExpc3RlbmVyICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50RXJyb3IoJ3NpZ25hbCBtdXN0IGJlIGFuIEV2ZW50RW1pdHRlciBvciBFdmVudFRhcmdldCcpXG4gICAgfVxuXG4gICAgc3VwZXIoJ1VORElDSV9DT05ORUNUJylcblxuICAgIHRoaXMub3BhcXVlID0gb3BhcXVlIHx8IG51bGxcbiAgICB0aGlzLnJlc3BvbnNlSGVhZGVycyA9IHJlc3BvbnNlSGVhZGVycyB8fCBudWxsXG4gICAgdGhpcy5jYWxsYmFjayA9IGNhbGxiYWNrXG4gICAgdGhpcy5hYm9ydCA9IG51bGxcblxuICAgIGFkZFNpZ25hbCh0aGlzLCBzaWduYWwpXG4gIH1cblxuICBvbkNvbm5lY3QgKGFib3J0LCBjb250ZXh0KSB7XG4gICAgaWYgKHRoaXMucmVhc29uKSB7XG4gICAgICBhYm9ydCh0aGlzLnJlYXNvbilcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGFzc2VydCh0aGlzLmNhbGxiYWNrKVxuXG4gICAgdGhpcy5hYm9ydCA9IGFib3J0XG4gICAgdGhpcy5jb250ZXh0ID0gY29udGV4dFxuICB9XG5cbiAgb25IZWFkZXJzICgpIHtcbiAgICB0aHJvdyBuZXcgU29ja2V0RXJyb3IoJ2JhZCBjb25uZWN0JywgbnVsbClcbiAgfVxuXG4gIG9uVXBncmFkZSAoc3RhdHVzQ29kZSwgcmF3SGVhZGVycywgc29ja2V0KSB7XG4gICAgY29uc3QgeyBjYWxsYmFjaywgb3BhcXVlLCBjb250ZXh0IH0gPSB0aGlzXG5cbiAgICByZW1vdmVTaWduYWwodGhpcylcblxuICAgIHRoaXMuY2FsbGJhY2sgPSBudWxsXG5cbiAgICBsZXQgaGVhZGVycyA9IHJhd0hlYWRlcnNcbiAgICAvLyBJbmRpY2F0ZXMgaXMgYW4gSFRUUDJTZXNzaW9uXG4gICAgaWYgKGhlYWRlcnMgIT0gbnVsbCkge1xuICAgICAgaGVhZGVycyA9IHRoaXMucmVzcG9uc2VIZWFkZXJzID09PSAncmF3JyA/IHV0aWwucGFyc2VSYXdIZWFkZXJzKHJhd0hlYWRlcnMpIDogdXRpbC5wYXJzZUhlYWRlcnMocmF3SGVhZGVycylcbiAgICB9XG5cbiAgICB0aGlzLnJ1bkluQXN5bmNTY29wZShjYWxsYmFjaywgbnVsbCwgbnVsbCwge1xuICAgICAgc3RhdHVzQ29kZSxcbiAgICAgIGhlYWRlcnMsXG4gICAgICBzb2NrZXQsXG4gICAgICBvcGFxdWUsXG4gICAgICBjb250ZXh0XG4gICAgfSlcbiAgfVxuXG4gIG9uRXJyb3IgKGVycikge1xuICAgIGNvbnN0IHsgY2FsbGJhY2ssIG9wYXF1ZSB9ID0gdGhpc1xuXG4gICAgcmVtb3ZlU2lnbmFsKHRoaXMpXG5cbiAgICBpZiAoY2FsbGJhY2spIHtcbiAgICAgIHRoaXMuY2FsbGJhY2sgPSBudWxsXG4gICAgICBxdWV1ZU1pY3JvdGFzaygoKSA9PiB7XG4gICAgICAgIHRoaXMucnVuSW5Bc3luY1Njb3BlKGNhbGxiYWNrLCBudWxsLCBlcnIsIHsgb3BhcXVlIH0pXG4gICAgICB9KVxuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBjb25uZWN0IChvcHRzLCBjYWxsYmFjaykge1xuICBpZiAoY2FsbGJhY2sgPT09IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICBjb25uZWN0LmNhbGwodGhpcywgb3B0cywgKGVyciwgZGF0YSkgPT4ge1xuICAgICAgICByZXR1cm4gZXJyID8gcmVqZWN0KGVycikgOiByZXNvbHZlKGRhdGEpXG4gICAgICB9KVxuICAgIH0pXG4gIH1cblxuICB0cnkge1xuICAgIGNvbnN0IGNvbm5lY3RIYW5kbGVyID0gbmV3IENvbm5lY3RIYW5kbGVyKG9wdHMsIGNhbGxiYWNrKVxuICAgIHRoaXMuZGlzcGF0Y2goeyAuLi5vcHRzLCBtZXRob2Q6ICdDT05ORUNUJyB9LCBjb25uZWN0SGFuZGxlcilcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgaWYgKHR5cGVvZiBjYWxsYmFjayAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgdGhyb3cgZXJyXG4gICAgfVxuICAgIGNvbnN0IG9wYXF1ZSA9IG9wdHM/Lm9wYXF1ZVxuICAgIHF1ZXVlTWljcm90YXNrKCgpID0+IGNhbGxiYWNrKGVyciwgeyBvcGFxdWUgfSkpXG4gIH1cbn1cblxubW9kdWxlLmV4cG9ydHMgPSBjb25uZWN0XG4iLCAiJ3VzZSBzdHJpY3QnXG5cbm1vZHVsZS5leHBvcnRzLnJlcXVlc3QgPSByZXF1aXJlKCcuL2FwaS1yZXF1ZXN0Jylcbm1vZHVsZS5leHBvcnRzLnN0cmVhbSA9IHJlcXVpcmUoJy4vYXBpLXN0cmVhbScpXG5tb2R1bGUuZXhwb3J0cy5waXBlbGluZSA9IHJlcXVpcmUoJy4vYXBpLXBpcGVsaW5lJylcbm1vZHVsZS5leHBvcnRzLnVwZ3JhZGUgPSByZXF1aXJlKCcuL2FwaS11cGdyYWRlJylcbm1vZHVsZS5leHBvcnRzLmNvbm5lY3QgPSByZXF1aXJlKCcuL2FwaS1jb25uZWN0JylcbiIsICIndXNlIHN0cmljdCdcblxuY29uc3QgeyBVbmRpY2lFcnJvciB9ID0gcmVxdWlyZSgnLi4vY29yZS9lcnJvcnMnKVxuXG5jbGFzcyBNb2NrTm90TWF0Y2hlZEVycm9yIGV4dGVuZHMgVW5kaWNpRXJyb3Ige1xuICBjb25zdHJ1Y3RvciAobWVzc2FnZSkge1xuICAgIHN1cGVyKG1lc3NhZ2UpXG4gICAgRXJyb3IuY2FwdHVyZVN0YWNrVHJhY2UodGhpcywgTW9ja05vdE1hdGNoZWRFcnJvcilcbiAgICB0aGlzLm5hbWUgPSAnTW9ja05vdE1hdGNoZWRFcnJvcidcbiAgICB0aGlzLm1lc3NhZ2UgPSBtZXNzYWdlIHx8ICdUaGUgcmVxdWVzdCBkb2VzIG5vdCBtYXRjaCBhbnkgcmVnaXN0ZXJlZCBtb2NrIGRpc3BhdGNoZXMnXG4gICAgdGhpcy5jb2RlID0gJ1VORF9NT0NLX0VSUl9NT0NLX05PVF9NQVRDSEVEJ1xuICB9XG59XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICBNb2NrTm90TWF0Y2hlZEVycm9yXG59XG4iLCAiJ3VzZSBzdHJpY3QnXG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICBrQWdlbnQ6IFN5bWJvbCgnYWdlbnQnKSxcbiAga09wdGlvbnM6IFN5bWJvbCgnb3B0aW9ucycpLFxuICBrRmFjdG9yeTogU3ltYm9sKCdmYWN0b3J5JyksXG4gIGtEaXNwYXRjaGVzOiBTeW1ib2woJ2Rpc3BhdGNoZXMnKSxcbiAga0Rpc3BhdGNoS2V5OiBTeW1ib2woJ2Rpc3BhdGNoIGtleScpLFxuICBrRGVmYXVsdEhlYWRlcnM6IFN5bWJvbCgnZGVmYXVsdCBoZWFkZXJzJyksXG4gIGtEZWZhdWx0VHJhaWxlcnM6IFN5bWJvbCgnZGVmYXVsdCB0cmFpbGVycycpLFxuICBrQ29udGVudExlbmd0aDogU3ltYm9sKCdjb250ZW50IGxlbmd0aCcpLFxuICBrTW9ja0FnZW50OiBTeW1ib2woJ21vY2sgYWdlbnQnKSxcbiAga01vY2tBZ2VudFNldDogU3ltYm9sKCdtb2NrIGFnZW50IHNldCcpLFxuICBrTW9ja0FnZW50R2V0OiBTeW1ib2woJ21vY2sgYWdlbnQgZ2V0JyksXG4gIGtNb2NrRGlzcGF0Y2g6IFN5bWJvbCgnbW9jayBkaXNwYXRjaCcpLFxuICBrQ2xvc2U6IFN5bWJvbCgnY2xvc2UnKSxcbiAga09yaWdpbmFsQ2xvc2U6IFN5bWJvbCgnb3JpZ2luYWwgYWdlbnQgY2xvc2UnKSxcbiAga09yaWdpbjogU3ltYm9sKCdvcmlnaW4nKSxcbiAga0lzTW9ja0FjdGl2ZTogU3ltYm9sKCdpcyBtb2NrIGFjdGl2ZScpLFxuICBrTmV0Q29ubmVjdDogU3ltYm9sKCduZXQgY29ubmVjdCcpLFxuICBrR2V0TmV0Q29ubmVjdDogU3ltYm9sKCdnZXQgbmV0IGNvbm5lY3QnKSxcbiAga0Nvbm5lY3RlZDogU3ltYm9sKCdjb25uZWN0ZWQnKVxufVxuIiwgIid1c2Ugc3RyaWN0J1xuXG5jb25zdCB7IE1vY2tOb3RNYXRjaGVkRXJyb3IgfSA9IHJlcXVpcmUoJy4vbW9jay1lcnJvcnMnKVxuY29uc3Qge1xuICBrRGlzcGF0Y2hlcyxcbiAga01vY2tBZ2VudCxcbiAga09yaWdpbmFsRGlzcGF0Y2gsXG4gIGtPcmlnaW4sXG4gIGtHZXROZXRDb25uZWN0XG59ID0gcmVxdWlyZSgnLi9tb2NrLXN5bWJvbHMnKVxuY29uc3QgeyBidWlsZFVSTCB9ID0gcmVxdWlyZSgnLi4vY29yZS91dGlsJylcbmNvbnN0IHsgU1RBVFVTX0NPREVTIH0gPSByZXF1aXJlKCdub2RlOmh0dHAnKVxuY29uc3Qge1xuICB0eXBlczoge1xuICAgIGlzUHJvbWlzZVxuICB9XG59ID0gcmVxdWlyZSgnbm9kZTp1dGlsJylcblxuZnVuY3Rpb24gbWF0Y2hWYWx1ZSAobWF0Y2gsIHZhbHVlKSB7XG4gIGlmICh0eXBlb2YgbWF0Y2ggPT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIG1hdGNoID09PSB2YWx1ZVxuICB9XG4gIGlmIChtYXRjaCBpbnN0YW5jZW9mIFJlZ0V4cCkge1xuICAgIHJldHVybiBtYXRjaC50ZXN0KHZhbHVlKVxuICB9XG4gIGlmICh0eXBlb2YgbWF0Y2ggPT09ICdmdW5jdGlvbicpIHtcbiAgICByZXR1cm4gbWF0Y2godmFsdWUpID09PSB0cnVlXG4gIH1cbiAgcmV0dXJuIGZhbHNlXG59XG5cbmZ1bmN0aW9uIGxvd2VyQ2FzZUVudHJpZXMgKGhlYWRlcnMpIHtcbiAgcmV0dXJuIE9iamVjdC5mcm9tRW50cmllcyhcbiAgICBPYmplY3QuZW50cmllcyhoZWFkZXJzKS5tYXAoKFtoZWFkZXJOYW1lLCBoZWFkZXJWYWx1ZV0pID0+IHtcbiAgICAgIHJldHVybiBbaGVhZGVyTmFtZS50b0xvY2FsZUxvd2VyQ2FzZSgpLCBoZWFkZXJWYWx1ZV1cbiAgICB9KVxuICApXG59XG5cbi8qKlxuICogQHBhcmFtIHtpbXBvcnQoJy4uLy4uL2luZGV4JykuSGVhZGVyc3xzdHJpbmdbXXxSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+fSBoZWFkZXJzXG4gKiBAcGFyYW0ge3N0cmluZ30ga2V5XG4gKi9cbmZ1bmN0aW9uIGdldEhlYWRlckJ5TmFtZSAoaGVhZGVycywga2V5KSB7XG4gIGlmIChBcnJheS5pc0FycmF5KGhlYWRlcnMpKSB7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBoZWFkZXJzLmxlbmd0aDsgaSArPSAyKSB7XG4gICAgICBpZiAoaGVhZGVyc1tpXS50b0xvY2FsZUxvd2VyQ2FzZSgpID09PSBrZXkudG9Mb2NhbGVMb3dlckNhc2UoKSkge1xuICAgICAgICByZXR1cm4gaGVhZGVyc1tpICsgMV1cbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdW5kZWZpbmVkXG4gIH0gZWxzZSBpZiAodHlwZW9mIGhlYWRlcnMuZ2V0ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgcmV0dXJuIGhlYWRlcnMuZ2V0KGtleSlcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gbG93ZXJDYXNlRW50cmllcyhoZWFkZXJzKVtrZXkudG9Mb2NhbGVMb3dlckNhc2UoKV1cbiAgfVxufVxuXG4vKiogQHBhcmFtIHtzdHJpbmdbXX0gaGVhZGVycyAqL1xuZnVuY3Rpb24gYnVpbGRIZWFkZXJzRnJvbUFycmF5IChoZWFkZXJzKSB7IC8vIGZldGNoIEhlYWRlcnNMaXN0XG4gIGNvbnN0IGNsb25lID0gaGVhZGVycy5zbGljZSgpXG4gIGNvbnN0IGVudHJpZXMgPSBbXVxuICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgY2xvbmUubGVuZ3RoOyBpbmRleCArPSAyKSB7XG4gICAgZW50cmllcy5wdXNoKFtjbG9uZVtpbmRleF0sIGNsb25lW2luZGV4ICsgMV1dKVxuICB9XG4gIHJldHVybiBPYmplY3QuZnJvbUVudHJpZXMoZW50cmllcylcbn1cblxuZnVuY3Rpb24gbWF0Y2hIZWFkZXJzIChtb2NrRGlzcGF0Y2gsIGhlYWRlcnMpIHtcbiAgaWYgKHR5cGVvZiBtb2NrRGlzcGF0Y2guaGVhZGVycyA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIGlmIChBcnJheS5pc0FycmF5KGhlYWRlcnMpKSB7IC8vIGZldGNoIEhlYWRlcnNMaXN0XG4gICAgICBoZWFkZXJzID0gYnVpbGRIZWFkZXJzRnJvbUFycmF5KGhlYWRlcnMpXG4gICAgfVxuICAgIHJldHVybiBtb2NrRGlzcGF0Y2guaGVhZGVycyhoZWFkZXJzID8gbG93ZXJDYXNlRW50cmllcyhoZWFkZXJzKSA6IHt9KVxuICB9XG4gIGlmICh0eXBlb2YgbW9ja0Rpc3BhdGNoLmhlYWRlcnMgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgcmV0dXJuIHRydWVcbiAgfVxuICBpZiAodHlwZW9mIGhlYWRlcnMgIT09ICdvYmplY3QnIHx8IHR5cGVvZiBtb2NrRGlzcGF0Y2guaGVhZGVycyAhPT0gJ29iamVjdCcpIHtcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuXG4gIGZvciAoY29uc3QgW21hdGNoSGVhZGVyTmFtZSwgbWF0Y2hIZWFkZXJWYWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMobW9ja0Rpc3BhdGNoLmhlYWRlcnMpKSB7XG4gICAgY29uc3QgaGVhZGVyVmFsdWUgPSBnZXRIZWFkZXJCeU5hbWUoaGVhZGVycywgbWF0Y2hIZWFkZXJOYW1lKVxuXG4gICAgaWYgKCFtYXRjaFZhbHVlKG1hdGNoSGVhZGVyVmFsdWUsIGhlYWRlclZhbHVlKSkge1xuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfVxuICB9XG4gIHJldHVybiB0cnVlXG59XG5cbmZ1bmN0aW9uIHNhZmVVcmwgKHBhdGgpIHtcbiAgaWYgKHR5cGVvZiBwYXRoICE9PSAnc3RyaW5nJykge1xuICAgIHJldHVybiBwYXRoXG4gIH1cblxuICBjb25zdCBwYXRoU2VnbWVudHMgPSBwYXRoLnNwbGl0KCc/JylcblxuICBpZiAocGF0aFNlZ21lbnRzLmxlbmd0aCAhPT0gMikge1xuICAgIHJldHVybiBwYXRoXG4gIH1cblxuICBjb25zdCBxcCA9IG5ldyBVUkxTZWFyY2hQYXJhbXMocGF0aFNlZ21lbnRzLnBvcCgpKVxuICBxcC5zb3J0KClcbiAgcmV0dXJuIFsuLi5wYXRoU2VnbWVudHMsIHFwLnRvU3RyaW5nKCldLmpvaW4oJz8nKVxufVxuXG5mdW5jdGlvbiBtYXRjaEtleSAobW9ja0Rpc3BhdGNoLCB7IHBhdGgsIG1ldGhvZCwgYm9keSwgaGVhZGVycyB9KSB7XG4gIGNvbnN0IHBhdGhNYXRjaCA9IG1hdGNoVmFsdWUobW9ja0Rpc3BhdGNoLnBhdGgsIHBhdGgpXG4gIGNvbnN0IG1ldGhvZE1hdGNoID0gbWF0Y2hWYWx1ZShtb2NrRGlzcGF0Y2gubWV0aG9kLCBtZXRob2QpXG4gIGNvbnN0IGJvZHlNYXRjaCA9IHR5cGVvZiBtb2NrRGlzcGF0Y2guYm9keSAhPT0gJ3VuZGVmaW5lZCcgPyBtYXRjaFZhbHVlKG1vY2tEaXNwYXRjaC5ib2R5LCBib2R5KSA6IHRydWVcbiAgY29uc3QgaGVhZGVyc01hdGNoID0gbWF0Y2hIZWFkZXJzKG1vY2tEaXNwYXRjaCwgaGVhZGVycylcbiAgcmV0dXJuIHBhdGhNYXRjaCAmJiBtZXRob2RNYXRjaCAmJiBib2R5TWF0Y2ggJiYgaGVhZGVyc01hdGNoXG59XG5cbmZ1bmN0aW9uIGdldFJlc3BvbnNlRGF0YSAoZGF0YSkge1xuICBpZiAoQnVmZmVyLmlzQnVmZmVyKGRhdGEpKSB7XG4gICAgcmV0dXJuIGRhdGFcbiAgfSBlbHNlIGlmIChkYXRhIGluc3RhbmNlb2YgVWludDhBcnJheSkge1xuICAgIHJldHVybiBkYXRhXG4gIH0gZWxzZSBpZiAoZGF0YSBpbnN0YW5jZW9mIEFycmF5QnVmZmVyKSB7XG4gICAgcmV0dXJuIGRhdGFcbiAgfSBlbHNlIGlmICh0eXBlb2YgZGF0YSA9PT0gJ29iamVjdCcpIHtcbiAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoZGF0YSlcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gZGF0YS50b1N0cmluZygpXG4gIH1cbn1cblxuZnVuY3Rpb24gZ2V0TW9ja0Rpc3BhdGNoIChtb2NrRGlzcGF0Y2hlcywga2V5KSB7XG4gIGNvbnN0IGJhc2VQYXRoID0ga2V5LnF1ZXJ5ID8gYnVpbGRVUkwoa2V5LnBhdGgsIGtleS5xdWVyeSkgOiBrZXkucGF0aFxuICBjb25zdCByZXNvbHZlZFBhdGggPSB0eXBlb2YgYmFzZVBhdGggPT09ICdzdHJpbmcnID8gc2FmZVVybChiYXNlUGF0aCkgOiBiYXNlUGF0aFxuXG4gIC8vIE1hdGNoIHBhdGhcbiAgbGV0IG1hdGNoZWRNb2NrRGlzcGF0Y2hlcyA9IG1vY2tEaXNwYXRjaGVzLmZpbHRlcigoeyBjb25zdW1lZCB9KSA9PiAhY29uc3VtZWQpLmZpbHRlcigoeyBwYXRoIH0pID0+IG1hdGNoVmFsdWUoc2FmZVVybChwYXRoKSwgcmVzb2x2ZWRQYXRoKSlcbiAgaWYgKG1hdGNoZWRNb2NrRGlzcGF0Y2hlcy5sZW5ndGggPT09IDApIHtcbiAgICB0aHJvdyBuZXcgTW9ja05vdE1hdGNoZWRFcnJvcihgTW9jayBkaXNwYXRjaCBub3QgbWF0Y2hlZCBmb3IgcGF0aCAnJHtyZXNvbHZlZFBhdGh9J2ApXG4gIH1cblxuICAvLyBNYXRjaCBtZXRob2RcbiAgbWF0Y2hlZE1vY2tEaXNwYXRjaGVzID0gbWF0Y2hlZE1vY2tEaXNwYXRjaGVzLmZpbHRlcigoeyBtZXRob2QgfSkgPT4gbWF0Y2hWYWx1ZShtZXRob2QsIGtleS5tZXRob2QpKVxuICBpZiAobWF0Y2hlZE1vY2tEaXNwYXRjaGVzLmxlbmd0aCA9PT0gMCkge1xuICAgIHRocm93IG5ldyBNb2NrTm90TWF0Y2hlZEVycm9yKGBNb2NrIGRpc3BhdGNoIG5vdCBtYXRjaGVkIGZvciBtZXRob2QgJyR7a2V5Lm1ldGhvZH0nIG9uIHBhdGggJyR7cmVzb2x2ZWRQYXRofSdgKVxuICB9XG5cbiAgLy8gTWF0Y2ggYm9keVxuICBtYXRjaGVkTW9ja0Rpc3BhdGNoZXMgPSBtYXRjaGVkTW9ja0Rpc3BhdGNoZXMuZmlsdGVyKCh7IGJvZHkgfSkgPT4gdHlwZW9mIGJvZHkgIT09ICd1bmRlZmluZWQnID8gbWF0Y2hWYWx1ZShib2R5LCBrZXkuYm9keSkgOiB0cnVlKVxuICBpZiAobWF0Y2hlZE1vY2tEaXNwYXRjaGVzLmxlbmd0aCA9PT0gMCkge1xuICAgIHRocm93IG5ldyBNb2NrTm90TWF0Y2hlZEVycm9yKGBNb2NrIGRpc3BhdGNoIG5vdCBtYXRjaGVkIGZvciBib2R5ICcke2tleS5ib2R5fScgb24gcGF0aCAnJHtyZXNvbHZlZFBhdGh9J2ApXG4gIH1cblxuICAvLyBNYXRjaCBoZWFkZXJzXG4gIG1hdGNoZWRNb2NrRGlzcGF0Y2hlcyA9IG1hdGNoZWRNb2NrRGlzcGF0Y2hlcy5maWx0ZXIoKG1vY2tEaXNwYXRjaCkgPT4gbWF0Y2hIZWFkZXJzKG1vY2tEaXNwYXRjaCwga2V5LmhlYWRlcnMpKVxuICBpZiAobWF0Y2hlZE1vY2tEaXNwYXRjaGVzLmxlbmd0aCA9PT0gMCkge1xuICAgIGNvbnN0IGhlYWRlcnMgPSB0eXBlb2Yga2V5LmhlYWRlcnMgPT09ICdvYmplY3QnID8gSlNPTi5zdHJpbmdpZnkoa2V5LmhlYWRlcnMpIDoga2V5LmhlYWRlcnNcbiAgICB0aHJvdyBuZXcgTW9ja05vdE1hdGNoZWRFcnJvcihgTW9jayBkaXNwYXRjaCBub3QgbWF0Y2hlZCBmb3IgaGVhZGVycyAnJHtoZWFkZXJzfScgb24gcGF0aCAnJHtyZXNvbHZlZFBhdGh9J2ApXG4gIH1cblxuICByZXR1cm4gbWF0Y2hlZE1vY2tEaXNwYXRjaGVzWzBdXG59XG5cbmZ1bmN0aW9uIGFkZE1vY2tEaXNwYXRjaCAobW9ja0Rpc3BhdGNoZXMsIGtleSwgZGF0YSkge1xuICBjb25zdCBiYXNlRGF0YSA9IHsgdGltZXNJbnZva2VkOiAwLCB0aW1lczogMSwgcGVyc2lzdDogZmFsc2UsIGNvbnN1bWVkOiBmYWxzZSB9XG4gIGNvbnN0IHJlcGx5RGF0YSA9IHR5cGVvZiBkYXRhID09PSAnZnVuY3Rpb24nID8geyBjYWxsYmFjazogZGF0YSB9IDogeyAuLi5kYXRhIH1cbiAgY29uc3QgbmV3TW9ja0Rpc3BhdGNoID0geyAuLi5iYXNlRGF0YSwgLi4ua2V5LCBwZW5kaW5nOiB0cnVlLCBkYXRhOiB7IGVycm9yOiBudWxsLCAuLi5yZXBseURhdGEgfSB9XG4gIG1vY2tEaXNwYXRjaGVzLnB1c2gobmV3TW9ja0Rpc3BhdGNoKVxuICByZXR1cm4gbmV3TW9ja0Rpc3BhdGNoXG59XG5cbmZ1bmN0aW9uIGRlbGV0ZU1vY2tEaXNwYXRjaCAobW9ja0Rpc3BhdGNoZXMsIGtleSkge1xuICBjb25zdCBpbmRleCA9IG1vY2tEaXNwYXRjaGVzLmZpbmRJbmRleChkaXNwYXRjaCA9PiB7XG4gICAgaWYgKCFkaXNwYXRjaC5jb25zdW1lZCkge1xuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfVxuICAgIHJldHVybiBtYXRjaEtleShkaXNwYXRjaCwga2V5KVxuICB9KVxuICBpZiAoaW5kZXggIT09IC0xKSB7XG4gICAgbW9ja0Rpc3BhdGNoZXMuc3BsaWNlKGluZGV4LCAxKVxuICB9XG59XG5cbmZ1bmN0aW9uIGJ1aWxkS2V5IChvcHRzKSB7XG4gIGNvbnN0IHsgcGF0aCwgbWV0aG9kLCBib2R5LCBoZWFkZXJzLCBxdWVyeSB9ID0gb3B0c1xuICByZXR1cm4ge1xuICAgIHBhdGgsXG4gICAgbWV0aG9kLFxuICAgIGJvZHksXG4gICAgaGVhZGVycyxcbiAgICBxdWVyeVxuICB9XG59XG5cbmZ1bmN0aW9uIGdlbmVyYXRlS2V5VmFsdWVzIChkYXRhKSB7XG4gIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyhkYXRhKVxuICBjb25zdCByZXN1bHQgPSBbXVxuICBmb3IgKGxldCBpID0gMDsgaSA8IGtleXMubGVuZ3RoOyArK2kpIHtcbiAgICBjb25zdCBrZXkgPSBrZXlzW2ldXG4gICAgY29uc3QgdmFsdWUgPSBkYXRhW2tleV1cbiAgICBjb25zdCBuYW1lID0gQnVmZmVyLmZyb20oYCR7a2V5fWApXG4gICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICBmb3IgKGxldCBqID0gMDsgaiA8IHZhbHVlLmxlbmd0aDsgKytqKSB7XG4gICAgICAgIHJlc3VsdC5wdXNoKG5hbWUsIEJ1ZmZlci5mcm9tKGAke3ZhbHVlW2pdfWApKVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICByZXN1bHQucHVzaChuYW1lLCBCdWZmZXIuZnJvbShgJHt2YWx1ZX1gKSlcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHJlc3VsdFxufVxuXG4vKipcbiAqIEBzZWUgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvSFRUUC9TdGF0dXNcbiAqIEBwYXJhbSB7bnVtYmVyfSBzdGF0dXNDb2RlXG4gKi9cbmZ1bmN0aW9uIGdldFN0YXR1c1RleHQgKHN0YXR1c0NvZGUpIHtcbiAgcmV0dXJuIFNUQVRVU19DT0RFU1tzdGF0dXNDb2RlXSB8fCAndW5rbm93bidcbn1cblxuYXN5bmMgZnVuY3Rpb24gZ2V0UmVzcG9uc2UgKGJvZHkpIHtcbiAgY29uc3QgYnVmZmVycyA9IFtdXG4gIGZvciBhd2FpdCAoY29uc3QgZGF0YSBvZiBib2R5KSB7XG4gICAgYnVmZmVycy5wdXNoKGRhdGEpXG4gIH1cbiAgcmV0dXJuIEJ1ZmZlci5jb25jYXQoYnVmZmVycykudG9TdHJpbmcoJ3V0ZjgnKVxufVxuXG4vKipcbiAqIE1vY2sgZGlzcGF0Y2ggZnVuY3Rpb24gdXNlZCB0byBzaW11bGF0ZSB1bmRpY2kgZGlzcGF0Y2hlc1xuICovXG5mdW5jdGlvbiBtb2NrRGlzcGF0Y2ggKG9wdHMsIGhhbmRsZXIpIHtcbiAgLy8gR2V0IG1vY2sgZGlzcGF0Y2ggZnJvbSBidWlsdCBrZXlcbiAgY29uc3Qga2V5ID0gYnVpbGRLZXkob3B0cylcbiAgY29uc3QgbW9ja0Rpc3BhdGNoID0gZ2V0TW9ja0Rpc3BhdGNoKHRoaXNba0Rpc3BhdGNoZXNdLCBrZXkpXG5cbiAgbW9ja0Rpc3BhdGNoLnRpbWVzSW52b2tlZCsrXG5cbiAgLy8gSGVyZSdzIHdoZXJlIHdlIHJlc29sdmUgYSBjYWxsYmFjayBpZiBhIGNhbGxiYWNrIGlzIHByZXNlbnQgZm9yIHRoZSBkaXNwYXRjaCBkYXRhLlxuICBpZiAobW9ja0Rpc3BhdGNoLmRhdGEuY2FsbGJhY2spIHtcbiAgICBtb2NrRGlzcGF0Y2guZGF0YSA9IHsgLi4ubW9ja0Rpc3BhdGNoLmRhdGEsIC4uLm1vY2tEaXNwYXRjaC5kYXRhLmNhbGxiYWNrKG9wdHMpIH1cbiAgfVxuXG4gIC8vIFBhcnNlIG1vY2tEaXNwYXRjaCBkYXRhXG4gIGNvbnN0IHsgZGF0YTogeyBzdGF0dXNDb2RlLCBkYXRhLCBoZWFkZXJzLCB0cmFpbGVycywgZXJyb3IgfSwgZGVsYXksIHBlcnNpc3QgfSA9IG1vY2tEaXNwYXRjaFxuICBjb25zdCB7IHRpbWVzSW52b2tlZCwgdGltZXMgfSA9IG1vY2tEaXNwYXRjaFxuXG4gIC8vIElmIGl0J3MgdXNlZCB1cCBhbmQgbm90IHBlcnNpc3RlbnQsIG1hcmsgYXMgY29uc3VtZWRcbiAgbW9ja0Rpc3BhdGNoLmNvbnN1bWVkID0gIXBlcnNpc3QgJiYgdGltZXNJbnZva2VkID49IHRpbWVzXG4gIG1vY2tEaXNwYXRjaC5wZW5kaW5nID0gdGltZXNJbnZva2VkIDwgdGltZXNcblxuICAvLyBJZiBzcGVjaWZpZWQsIHRyaWdnZXIgZGlzcGF0Y2ggZXJyb3JcbiAgaWYgKGVycm9yICE9PSBudWxsKSB7XG4gICAgZGVsZXRlTW9ja0Rpc3BhdGNoKHRoaXNba0Rpc3BhdGNoZXNdLCBrZXkpXG4gICAgaGFuZGxlci5vbkVycm9yKGVycm9yKVxuICAgIHJldHVybiB0cnVlXG4gIH1cblxuICAvLyBIYW5kbGUgdGhlIHJlcXVlc3Qgd2l0aCBhIGRlbGF5IGlmIG5lY2Vzc2FyeVxuICBpZiAodHlwZW9mIGRlbGF5ID09PSAnbnVtYmVyJyAmJiBkZWxheSA+IDApIHtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGhhbmRsZVJlcGx5KHRoaXNba0Rpc3BhdGNoZXNdKVxuICAgIH0sIGRlbGF5KVxuICB9IGVsc2Uge1xuICAgIGhhbmRsZVJlcGx5KHRoaXNba0Rpc3BhdGNoZXNdKVxuICB9XG5cbiAgZnVuY3Rpb24gaGFuZGxlUmVwbHkgKG1vY2tEaXNwYXRjaGVzLCBfZGF0YSA9IGRhdGEpIHtcbiAgICAvLyBmZXRjaCdzIEhlYWRlcnNMaXN0IGlzIGEgMUQgc3RyaW5nIGFycmF5XG4gICAgY29uc3Qgb3B0c0hlYWRlcnMgPSBBcnJheS5pc0FycmF5KG9wdHMuaGVhZGVycylcbiAgICAgID8gYnVpbGRIZWFkZXJzRnJvbUFycmF5KG9wdHMuaGVhZGVycylcbiAgICAgIDogb3B0cy5oZWFkZXJzXG4gICAgY29uc3QgYm9keSA9IHR5cGVvZiBfZGF0YSA9PT0gJ2Z1bmN0aW9uJ1xuICAgICAgPyBfZGF0YSh7IC4uLm9wdHMsIGhlYWRlcnM6IG9wdHNIZWFkZXJzIH0pXG4gICAgICA6IF9kYXRhXG5cbiAgICAvLyB1dGlsLnR5cGVzLmlzUHJvbWlzZSBpcyBsaWtlbHkgbmVlZGVkIGZvciBqZXN0LlxuICAgIGlmIChpc1Byb21pc2UoYm9keSkpIHtcbiAgICAgIC8vIElmIGhhbmRsZVJlcGx5IGlzIGFzeW5jaHJvbm91cywgdGhyb3dpbmcgYW4gZXJyb3JcbiAgICAgIC8vIGluIHRoZSBjYWxsYmFjayB3aWxsIHJlamVjdCB0aGUgcHJvbWlzZSwgcmF0aGVyIHRoYW5cbiAgICAgIC8vIHN5bmNocm9ub3VzbHkgdGhyb3cgdGhlIGVycm9yLCB3aGljaCBicmVha3Mgc29tZSB0ZXN0cy5cbiAgICAgIC8vIFJhdGhlciwgd2Ugd2FpdCBmb3IgdGhlIGNhbGxiYWNrIHRvIHJlc29sdmUgaWYgaXQgaXMgYVxuICAgICAgLy8gcHJvbWlzZSwgYW5kIHRoZW4gcmUtcnVuIGhhbmRsZVJlcGx5IHdpdGggdGhlIG5ldyBib2R5LlxuICAgICAgYm9keS50aGVuKChuZXdEYXRhKSA9PiBoYW5kbGVSZXBseShtb2NrRGlzcGF0Y2hlcywgbmV3RGF0YSkpXG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBjb25zdCByZXNwb25zZURhdGEgPSBnZXRSZXNwb25zZURhdGEoYm9keSlcbiAgICBjb25zdCByZXNwb25zZUhlYWRlcnMgPSBnZW5lcmF0ZUtleVZhbHVlcyhoZWFkZXJzKVxuICAgIGNvbnN0IHJlc3BvbnNlVHJhaWxlcnMgPSBnZW5lcmF0ZUtleVZhbHVlcyh0cmFpbGVycylcblxuICAgIGhhbmRsZXIub25Db25uZWN0Py4oZXJyID0+IGhhbmRsZXIub25FcnJvcihlcnIpLCBudWxsKVxuICAgIGhhbmRsZXIub25IZWFkZXJzPy4oc3RhdHVzQ29kZSwgcmVzcG9uc2VIZWFkZXJzLCByZXN1bWUsIGdldFN0YXR1c1RleHQoc3RhdHVzQ29kZSkpXG4gICAgaGFuZGxlci5vbkRhdGE/LihCdWZmZXIuZnJvbShyZXNwb25zZURhdGEpKVxuICAgIGhhbmRsZXIub25Db21wbGV0ZT8uKHJlc3BvbnNlVHJhaWxlcnMpXG4gICAgZGVsZXRlTW9ja0Rpc3BhdGNoKG1vY2tEaXNwYXRjaGVzLCBrZXkpXG4gIH1cblxuICBmdW5jdGlvbiByZXN1bWUgKCkge31cblxuICByZXR1cm4gdHJ1ZVxufVxuXG5mdW5jdGlvbiBidWlsZE1vY2tEaXNwYXRjaCAoKSB7XG4gIGNvbnN0IGFnZW50ID0gdGhpc1trTW9ja0FnZW50XVxuICBjb25zdCBvcmlnaW4gPSB0aGlzW2tPcmlnaW5dXG4gIGNvbnN0IG9yaWdpbmFsRGlzcGF0Y2ggPSB0aGlzW2tPcmlnaW5hbERpc3BhdGNoXVxuXG4gIHJldHVybiBmdW5jdGlvbiBkaXNwYXRjaCAob3B0cywgaGFuZGxlcikge1xuICAgIGlmIChhZ2VudC5pc01vY2tBY3RpdmUpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIG1vY2tEaXNwYXRjaC5jYWxsKHRoaXMsIG9wdHMsIGhhbmRsZXIpXG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBNb2NrTm90TWF0Y2hlZEVycm9yKSB7XG4gICAgICAgICAgY29uc3QgbmV0Q29ubmVjdCA9IGFnZW50W2tHZXROZXRDb25uZWN0XSgpXG4gICAgICAgICAgaWYgKG5ldENvbm5lY3QgPT09IGZhbHNlKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgTW9ja05vdE1hdGNoZWRFcnJvcihgJHtlcnJvci5tZXNzYWdlfTogc3Vic2VxdWVudCByZXF1ZXN0IHRvIG9yaWdpbiAke29yaWdpbn0gd2FzIG5vdCBhbGxvd2VkIChuZXQuY29ubmVjdCBkaXNhYmxlZClgKVxuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoY2hlY2tOZXRDb25uZWN0KG5ldENvbm5lY3QsIG9yaWdpbikpIHtcbiAgICAgICAgICAgIG9yaWdpbmFsRGlzcGF0Y2guY2FsbCh0aGlzLCBvcHRzLCBoYW5kbGVyKVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgTW9ja05vdE1hdGNoZWRFcnJvcihgJHtlcnJvci5tZXNzYWdlfTogc3Vic2VxdWVudCByZXF1ZXN0IHRvIG9yaWdpbiAke29yaWdpbn0gd2FzIG5vdCBhbGxvd2VkIChuZXQuY29ubmVjdCBpcyBub3QgZW5hYmxlZCBmb3IgdGhpcyBvcmlnaW4pYClcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhyb3cgZXJyb3JcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBvcmlnaW5hbERpc3BhdGNoLmNhbGwodGhpcywgb3B0cywgaGFuZGxlcilcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gY2hlY2tOZXRDb25uZWN0IChuZXRDb25uZWN0LCBvcmlnaW4pIHtcbiAgY29uc3QgdXJsID0gbmV3IFVSTChvcmlnaW4pXG4gIGlmIChuZXRDb25uZWN0ID09PSB0cnVlKSB7XG4gICAgcmV0dXJuIHRydWVcbiAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KG5ldENvbm5lY3QpICYmIG5ldENvbm5lY3Quc29tZSgobWF0Y2hlcikgPT4gbWF0Y2hWYWx1ZShtYXRjaGVyLCB1cmwuaG9zdCkpKSB7XG4gICAgcmV0dXJuIHRydWVcbiAgfVxuICByZXR1cm4gZmFsc2Vcbn1cblxuZnVuY3Rpb24gYnVpbGRNb2NrT3B0aW9ucyAob3B0cykge1xuICBpZiAob3B0cykge1xuICAgIGNvbnN0IHsgYWdlbnQsIC4uLm1vY2tPcHRpb25zIH0gPSBvcHRzXG4gICAgcmV0dXJuIG1vY2tPcHRpb25zXG4gIH1cbn1cblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gIGdldFJlc3BvbnNlRGF0YSxcbiAgZ2V0TW9ja0Rpc3BhdGNoLFxuICBhZGRNb2NrRGlzcGF0Y2gsXG4gIGRlbGV0ZU1vY2tEaXNwYXRjaCxcbiAgYnVpbGRLZXksXG4gIGdlbmVyYXRlS2V5VmFsdWVzLFxuICBtYXRjaFZhbHVlLFxuICBnZXRSZXNwb25zZSxcbiAgZ2V0U3RhdHVzVGV4dCxcbiAgbW9ja0Rpc3BhdGNoLFxuICBidWlsZE1vY2tEaXNwYXRjaCxcbiAgY2hlY2tOZXRDb25uZWN0LFxuICBidWlsZE1vY2tPcHRpb25zLFxuICBnZXRIZWFkZXJCeU5hbWUsXG4gIGJ1aWxkSGVhZGVyc0Zyb21BcnJheVxufVxuIiwgIid1c2Ugc3RyaWN0J1xuXG5jb25zdCB7IGdldFJlc3BvbnNlRGF0YSwgYnVpbGRLZXksIGFkZE1vY2tEaXNwYXRjaCB9ID0gcmVxdWlyZSgnLi9tb2NrLXV0aWxzJylcbmNvbnN0IHtcbiAga0Rpc3BhdGNoZXMsXG4gIGtEaXNwYXRjaEtleSxcbiAga0RlZmF1bHRIZWFkZXJzLFxuICBrRGVmYXVsdFRyYWlsZXJzLFxuICBrQ29udGVudExlbmd0aCxcbiAga01vY2tEaXNwYXRjaFxufSA9IHJlcXVpcmUoJy4vbW9jay1zeW1ib2xzJylcbmNvbnN0IHsgSW52YWxpZEFyZ3VtZW50RXJyb3IgfSA9IHJlcXVpcmUoJy4uL2NvcmUvZXJyb3JzJylcbmNvbnN0IHsgYnVpbGRVUkwgfSA9IHJlcXVpcmUoJy4uL2NvcmUvdXRpbCcpXG5cbi8qKlxuICogRGVmaW5lcyB0aGUgc2NvcGUgQVBJIGZvciBhbiBpbnRlcmNlcHRvciByZXBseVxuICovXG5jbGFzcyBNb2NrU2NvcGUge1xuICBjb25zdHJ1Y3RvciAobW9ja0Rpc3BhdGNoKSB7XG4gICAgdGhpc1trTW9ja0Rpc3BhdGNoXSA9IG1vY2tEaXNwYXRjaFxuICB9XG5cbiAgLyoqXG4gICAqIERlbGF5IGEgcmVwbHkgYnkgYSBzZXQgYW1vdW50IGluIG1zLlxuICAgKi9cbiAgZGVsYXkgKHdhaXRJbk1zKSB7XG4gICAgaWYgKHR5cGVvZiB3YWl0SW5NcyAhPT0gJ251bWJlcicgfHwgIU51bWJlci5pc0ludGVnZXIod2FpdEluTXMpIHx8IHdhaXRJbk1zIDw9IDApIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRFcnJvcignd2FpdEluTXMgbXVzdCBiZSBhIHZhbGlkIGludGVnZXIgPiAwJylcbiAgICB9XG5cbiAgICB0aGlzW2tNb2NrRGlzcGF0Y2hdLmRlbGF5ID0gd2FpdEluTXNcbiAgICByZXR1cm4gdGhpc1xuICB9XG5cbiAgLyoqXG4gICAqIEZvciBhIGRlZmluZWQgcmVwbHksIG5ldmVyIG1hcmsgYXMgY29uc3VtZWQuXG4gICAqL1xuICBwZXJzaXN0ICgpIHtcbiAgICB0aGlzW2tNb2NrRGlzcGF0Y2hdLnBlcnNpc3QgPSB0cnVlXG4gICAgcmV0dXJuIHRoaXNcbiAgfVxuXG4gIC8qKlxuICAgKiBBbGxvdyBvbmUgdG8gZGVmaW5lIGEgcmVwbHkgZm9yIGEgc2V0IGFtb3VudCBvZiBtYXRjaGluZyByZXF1ZXN0cy5cbiAgICovXG4gIHRpbWVzIChyZXBlYXRUaW1lcykge1xuICAgIGlmICh0eXBlb2YgcmVwZWF0VGltZXMgIT09ICdudW1iZXInIHx8ICFOdW1iZXIuaXNJbnRlZ2VyKHJlcGVhdFRpbWVzKSB8fCByZXBlYXRUaW1lcyA8PSAwKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50RXJyb3IoJ3JlcGVhdFRpbWVzIG11c3QgYmUgYSB2YWxpZCBpbnRlZ2VyID4gMCcpXG4gICAgfVxuXG4gICAgdGhpc1trTW9ja0Rpc3BhdGNoXS50aW1lcyA9IHJlcGVhdFRpbWVzXG4gICAgcmV0dXJuIHRoaXNcbiAgfVxufVxuXG4vKipcbiAqIERlZmluZXMgYW4gaW50ZXJjZXB0b3IgZm9yIGEgTW9ja1xuICovXG5jbGFzcyBNb2NrSW50ZXJjZXB0b3Ige1xuICBjb25zdHJ1Y3RvciAob3B0cywgbW9ja0Rpc3BhdGNoZXMpIHtcbiAgICBpZiAodHlwZW9mIG9wdHMgIT09ICdvYmplY3QnKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50RXJyb3IoJ29wdHMgbXVzdCBiZSBhbiBvYmplY3QnKVxuICAgIH1cbiAgICBpZiAodHlwZW9mIG9wdHMucGF0aCA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRFcnJvcignb3B0cy5wYXRoIG11c3QgYmUgZGVmaW5lZCcpXG4gICAgfVxuICAgIGlmICh0eXBlb2Ygb3B0cy5tZXRob2QgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICBvcHRzLm1ldGhvZCA9ICdHRVQnXG4gICAgfVxuICAgIC8vIFNlZSBodHRwczovL2dpdGh1Yi5jb20vbm9kZWpzL3VuZGljaS9pc3N1ZXMvMTI0NVxuICAgIC8vIEFzIHBlciBSRkMgMzk4NiwgY2xpZW50cyBhcmUgbm90IHN1cHBvc2VkIHRvIHNlbmQgVVJJXG4gICAgLy8gZnJhZ21lbnRzIHRvIHNlcnZlcnMgd2hlbiB0aGV5IHJldHJpZXZlIGEgZG9jdW1lbnQsXG4gICAgaWYgKHR5cGVvZiBvcHRzLnBhdGggPT09ICdzdHJpbmcnKSB7XG4gICAgICBpZiAob3B0cy5xdWVyeSkge1xuICAgICAgICBvcHRzLnBhdGggPSBidWlsZFVSTChvcHRzLnBhdGgsIG9wdHMucXVlcnkpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBNYXRjaGVzIGh0dHBzOi8vZ2l0aHViLmNvbS9ub2RlanMvdW5kaWNpL2Jsb2IvbWFpbi9saWIvd2ViL2ZldGNoL2luZGV4LmpzI0wxODExXG4gICAgICAgIGNvbnN0IHBhcnNlZFVSTCA9IG5ldyBVUkwob3B0cy5wYXRoLCAnZGF0YTovLycpXG4gICAgICAgIG9wdHMucGF0aCA9IHBhcnNlZFVSTC5wYXRobmFtZSArIHBhcnNlZFVSTC5zZWFyY2hcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKHR5cGVvZiBvcHRzLm1ldGhvZCA9PT0gJ3N0cmluZycpIHtcbiAgICAgIG9wdHMubWV0aG9kID0gb3B0cy5tZXRob2QudG9VcHBlckNhc2UoKVxuICAgIH1cblxuICAgIHRoaXNba0Rpc3BhdGNoS2V5XSA9IGJ1aWxkS2V5KG9wdHMpXG4gICAgdGhpc1trRGlzcGF0Y2hlc10gPSBtb2NrRGlzcGF0Y2hlc1xuICAgIHRoaXNba0RlZmF1bHRIZWFkZXJzXSA9IHt9XG4gICAgdGhpc1trRGVmYXVsdFRyYWlsZXJzXSA9IHt9XG4gICAgdGhpc1trQ29udGVudExlbmd0aF0gPSBmYWxzZVxuICB9XG5cbiAgY3JlYXRlTW9ja1Njb3BlRGlzcGF0Y2hEYXRhICh7IHN0YXR1c0NvZGUsIGRhdGEsIHJlc3BvbnNlT3B0aW9ucyB9KSB7XG4gICAgY29uc3QgcmVzcG9uc2VEYXRhID0gZ2V0UmVzcG9uc2VEYXRhKGRhdGEpXG4gICAgY29uc3QgY29udGVudExlbmd0aCA9IHRoaXNba0NvbnRlbnRMZW5ndGhdID8geyAnY29udGVudC1sZW5ndGgnOiByZXNwb25zZURhdGEubGVuZ3RoIH0gOiB7fVxuICAgIGNvbnN0IGhlYWRlcnMgPSB7IC4uLnRoaXNba0RlZmF1bHRIZWFkZXJzXSwgLi4uY29udGVudExlbmd0aCwgLi4ucmVzcG9uc2VPcHRpb25zLmhlYWRlcnMgfVxuICAgIGNvbnN0IHRyYWlsZXJzID0geyAuLi50aGlzW2tEZWZhdWx0VHJhaWxlcnNdLCAuLi5yZXNwb25zZU9wdGlvbnMudHJhaWxlcnMgfVxuXG4gICAgcmV0dXJuIHsgc3RhdHVzQ29kZSwgZGF0YSwgaGVhZGVycywgdHJhaWxlcnMgfVxuICB9XG5cbiAgdmFsaWRhdGVSZXBseVBhcmFtZXRlcnMgKHJlcGx5UGFyYW1ldGVycykge1xuICAgIGlmICh0eXBlb2YgcmVwbHlQYXJhbWV0ZXJzLnN0YXR1c0NvZGUgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50RXJyb3IoJ3N0YXR1c0NvZGUgbXVzdCBiZSBkZWZpbmVkJylcbiAgICB9XG4gICAgaWYgKHR5cGVvZiByZXBseVBhcmFtZXRlcnMucmVzcG9uc2VPcHRpb25zICE9PSAnb2JqZWN0JyB8fCByZXBseVBhcmFtZXRlcnMucmVzcG9uc2VPcHRpb25zID09PSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50RXJyb3IoJ3Jlc3BvbnNlT3B0aW9ucyBtdXN0IGJlIGFuIG9iamVjdCcpXG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIE1vY2sgYW4gdW5kaWNpIHJlcXVlc3Qgd2l0aCBhIGRlZmluZWQgcmVwbHkuXG4gICAqL1xuICByZXBseSAocmVwbHlPcHRpb25zQ2FsbGJhY2tPclN0YXR1c0NvZGUpIHtcbiAgICAvLyBWYWx1ZXMgb2YgcmVwbHkgYXJlbid0IGF2YWlsYWJsZSByaWdodCBub3cgYXMgdGhleVxuICAgIC8vIGNhbiBvbmx5IGJlIGF2YWlsYWJsZSB3aGVuIHRoZSByZXBseSBjYWxsYmFjayBpcyBpbnZva2VkLlxuICAgIGlmICh0eXBlb2YgcmVwbHlPcHRpb25zQ2FsbGJhY2tPclN0YXR1c0NvZGUgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIC8vIFdlJ2xsIGZpcnN0IHdyYXAgdGhlIHByb3ZpZGVkIGNhbGxiYWNrIGluIGFub3RoZXIgZnVuY3Rpb24sXG4gICAgICAvLyB0aGlzIGZ1bmN0aW9uIHdpbGwgcHJvcGVybHkgcmVzb2x2ZSB0aGUgZGF0YSBmcm9tIHRoZSBjYWxsYmFja1xuICAgICAgLy8gd2hlbiBpbnZva2VkLlxuICAgICAgY29uc3Qgd3JhcHBlZERlZmF1bHRzQ2FsbGJhY2sgPSAob3B0cykgPT4ge1xuICAgICAgICAvLyBPdXIgcmVwbHkgb3B0aW9ucyBjYWxsYmFjayBjb250YWlucyB0aGUgcGFyYW1ldGVyIGZvciBzdGF0dXNDb2RlLCBkYXRhIGFuZCBvcHRpb25zLlxuICAgICAgICBjb25zdCByZXNvbHZlZERhdGEgPSByZXBseU9wdGlvbnNDYWxsYmFja09yU3RhdHVzQ29kZShvcHRzKVxuXG4gICAgICAgIC8vIENoZWNrIGlmIGl0IGlzIGluIHRoZSByaWdodCBmb3JtYXRcbiAgICAgICAgaWYgKHR5cGVvZiByZXNvbHZlZERhdGEgIT09ICdvYmplY3QnIHx8IHJlc29sdmVkRGF0YSA9PT0gbnVsbCkge1xuICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRFcnJvcigncmVwbHkgb3B0aW9ucyBjYWxsYmFjayBtdXN0IHJldHVybiBhbiBvYmplY3QnKVxuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcmVwbHlQYXJhbWV0ZXJzID0geyBkYXRhOiAnJywgcmVzcG9uc2VPcHRpb25zOiB7fSwgLi4ucmVzb2x2ZWREYXRhIH1cbiAgICAgICAgdGhpcy52YWxpZGF0ZVJlcGx5UGFyYW1ldGVycyhyZXBseVBhcmFtZXRlcnMpXG4gICAgICAgIC8vIFNpbmNlIHRoZSB2YWx1ZXMgY2FuIGJlIG9idGFpbmVkIGltbWVkaWF0ZWx5IHdlIHJldHVybiB0aGVtXG4gICAgICAgIC8vIGZyb20gdGhpcyBoaWdoZXIgb3JkZXIgZnVuY3Rpb24gdGhhdCB3aWxsIGJlIHJlc29sdmVkIGxhdGVyLlxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIC4uLnRoaXMuY3JlYXRlTW9ja1Njb3BlRGlzcGF0Y2hEYXRhKHJlcGx5UGFyYW1ldGVycylcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyBBZGQgdXN1YWwgZGlzcGF0Y2ggZGF0YSwgYnV0IHRoaXMgdGltZSBzZXQgdGhlIGRhdGEgcGFyYW1ldGVyIHRvIGZ1bmN0aW9uIHRoYXQgd2lsbCBldmVudHVhbGx5IHByb3ZpZGUgZGF0YS5cbiAgICAgIGNvbnN0IG5ld01vY2tEaXNwYXRjaCA9IGFkZE1vY2tEaXNwYXRjaCh0aGlzW2tEaXNwYXRjaGVzXSwgdGhpc1trRGlzcGF0Y2hLZXldLCB3cmFwcGVkRGVmYXVsdHNDYWxsYmFjaylcbiAgICAgIHJldHVybiBuZXcgTW9ja1Njb3BlKG5ld01vY2tEaXNwYXRjaClcbiAgICB9XG5cbiAgICAvLyBXZSBjYW4gaGF2ZSBlaXRoZXIgb25lIG9yIHRocmVlIHBhcmFtZXRlcnMsIGlmIHdlIGdldCBoZXJlLFxuICAgIC8vIHdlIHNob3VsZCBoYXZlIDEtMyBwYXJhbWV0ZXJzLiBTbyB3ZSBzcHJlYWQgdGhlIGFyZ3VtZW50cyBvZlxuICAgIC8vIHRoaXMgZnVuY3Rpb24gdG8gb2J0YWluIHRoZSBwYXJhbWV0ZXJzLCBzaW5jZSByZXBseURhdGEgd2lsbCBhbHdheXNcbiAgICAvLyBqdXN0IGJlIHRoZSBzdGF0dXNDb2RlLlxuICAgIGNvbnN0IHJlcGx5UGFyYW1ldGVycyA9IHtcbiAgICAgIHN0YXR1c0NvZGU6IHJlcGx5T3B0aW9uc0NhbGxiYWNrT3JTdGF0dXNDb2RlLFxuICAgICAgZGF0YTogYXJndW1lbnRzWzFdID09PSB1bmRlZmluZWQgPyAnJyA6IGFyZ3VtZW50c1sxXSxcbiAgICAgIHJlc3BvbnNlT3B0aW9uczogYXJndW1lbnRzWzJdID09PSB1bmRlZmluZWQgPyB7fSA6IGFyZ3VtZW50c1syXVxuICAgIH1cbiAgICB0aGlzLnZhbGlkYXRlUmVwbHlQYXJhbWV0ZXJzKHJlcGx5UGFyYW1ldGVycylcblxuICAgIC8vIFNlbmQgaW4tYWxyZWFkeSBwcm92aWRlZCBkYXRhIGxpa2UgdXN1YWxcbiAgICBjb25zdCBkaXNwYXRjaERhdGEgPSB0aGlzLmNyZWF0ZU1vY2tTY29wZURpc3BhdGNoRGF0YShyZXBseVBhcmFtZXRlcnMpXG4gICAgY29uc3QgbmV3TW9ja0Rpc3BhdGNoID0gYWRkTW9ja0Rpc3BhdGNoKHRoaXNba0Rpc3BhdGNoZXNdLCB0aGlzW2tEaXNwYXRjaEtleV0sIGRpc3BhdGNoRGF0YSlcbiAgICByZXR1cm4gbmV3IE1vY2tTY29wZShuZXdNb2NrRGlzcGF0Y2gpXG4gIH1cblxuICAvKipcbiAgICogTW9jayBhbiB1bmRpY2kgcmVxdWVzdCB3aXRoIGEgZGVmaW5lZCBlcnJvci5cbiAgICovXG4gIHJlcGx5V2l0aEVycm9yIChlcnJvcikge1xuICAgIGlmICh0eXBlb2YgZXJyb3IgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50RXJyb3IoJ2Vycm9yIG11c3QgYmUgZGVmaW5lZCcpXG4gICAgfVxuXG4gICAgY29uc3QgbmV3TW9ja0Rpc3BhdGNoID0gYWRkTW9ja0Rpc3BhdGNoKHRoaXNba0Rpc3BhdGNoZXNdLCB0aGlzW2tEaXNwYXRjaEtleV0sIHsgZXJyb3IgfSlcbiAgICByZXR1cm4gbmV3IE1vY2tTY29wZShuZXdNb2NrRGlzcGF0Y2gpXG4gIH1cblxuICAvKipcbiAgICogU2V0IGRlZmF1bHQgcmVwbHkgaGVhZGVycyBvbiB0aGUgaW50ZXJjZXB0b3IgZm9yIHN1YnNlcXVlbnQgcmVwbGllc1xuICAgKi9cbiAgZGVmYXVsdFJlcGx5SGVhZGVycyAoaGVhZGVycykge1xuICAgIGlmICh0eXBlb2YgaGVhZGVycyA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRFcnJvcignaGVhZGVycyBtdXN0IGJlIGRlZmluZWQnKVxuICAgIH1cblxuICAgIHRoaXNba0RlZmF1bHRIZWFkZXJzXSA9IGhlYWRlcnNcbiAgICByZXR1cm4gdGhpc1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCBkZWZhdWx0IHJlcGx5IHRyYWlsZXJzIG9uIHRoZSBpbnRlcmNlcHRvciBmb3Igc3Vic2VxdWVudCByZXBsaWVzXG4gICAqL1xuICBkZWZhdWx0UmVwbHlUcmFpbGVycyAodHJhaWxlcnMpIHtcbiAgICBpZiAodHlwZW9mIHRyYWlsZXJzID09PSAndW5kZWZpbmVkJykge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudEVycm9yKCd0cmFpbGVycyBtdXN0IGJlIGRlZmluZWQnKVxuICAgIH1cblxuICAgIHRoaXNba0RlZmF1bHRUcmFpbGVyc10gPSB0cmFpbGVyc1xuICAgIHJldHVybiB0aGlzXG4gIH1cblxuICAvKipcbiAgICogU2V0IHJlcGx5IGNvbnRlbnQgbGVuZ3RoIGhlYWRlciBmb3IgcmVwbGllcyBvbiB0aGUgaW50ZXJjZXB0b3JcbiAgICovXG4gIHJlcGx5Q29udGVudExlbmd0aCAoKSB7XG4gICAgdGhpc1trQ29udGVudExlbmd0aF0gPSB0cnVlXG4gICAgcmV0dXJuIHRoaXNcbiAgfVxufVxuXG5tb2R1bGUuZXhwb3J0cy5Nb2NrSW50ZXJjZXB0b3IgPSBNb2NrSW50ZXJjZXB0b3Jcbm1vZHVsZS5leHBvcnRzLk1vY2tTY29wZSA9IE1vY2tTY29wZVxuIiwgIid1c2Ugc3RyaWN0J1xuXG5jb25zdCB7IHByb21pc2lmeSB9ID0gcmVxdWlyZSgnbm9kZTp1dGlsJylcbmNvbnN0IENsaWVudCA9IHJlcXVpcmUoJy4uL2Rpc3BhdGNoZXIvY2xpZW50JylcbmNvbnN0IHsgYnVpbGRNb2NrRGlzcGF0Y2ggfSA9IHJlcXVpcmUoJy4vbW9jay11dGlscycpXG5jb25zdCB7XG4gIGtEaXNwYXRjaGVzLFxuICBrTW9ja0FnZW50LFxuICBrQ2xvc2UsXG4gIGtPcmlnaW5hbENsb3NlLFxuICBrT3JpZ2luLFxuICBrT3JpZ2luYWxEaXNwYXRjaCxcbiAga0Nvbm5lY3RlZFxufSA9IHJlcXVpcmUoJy4vbW9jay1zeW1ib2xzJylcbmNvbnN0IHsgTW9ja0ludGVyY2VwdG9yIH0gPSByZXF1aXJlKCcuL21vY2staW50ZXJjZXB0b3InKVxuY29uc3QgU3ltYm9scyA9IHJlcXVpcmUoJy4uL2NvcmUvc3ltYm9scycpXG5jb25zdCB7IEludmFsaWRBcmd1bWVudEVycm9yIH0gPSByZXF1aXJlKCcuLi9jb3JlL2Vycm9ycycpXG5cbi8qKlxuICogTW9ja0NsaWVudCBwcm92aWRlcyBhbiBBUEkgdGhhdCBleHRlbmRzIHRoZSBDbGllbnQgdG8gaW5mbHVlbmNlIHRoZSBtb2NrRGlzcGF0Y2hlcy5cbiAqL1xuY2xhc3MgTW9ja0NsaWVudCBleHRlbmRzIENsaWVudCB7XG4gIGNvbnN0cnVjdG9yIChvcmlnaW4sIG9wdHMpIHtcbiAgICBzdXBlcihvcmlnaW4sIG9wdHMpXG5cbiAgICBpZiAoIW9wdHMgfHwgIW9wdHMuYWdlbnQgfHwgdHlwZW9mIG9wdHMuYWdlbnQuZGlzcGF0Y2ggIT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRFcnJvcignQXJndW1lbnQgb3B0cy5hZ2VudCBtdXN0IGltcGxlbWVudCBBZ2VudCcpXG4gICAgfVxuXG4gICAgdGhpc1trTW9ja0FnZW50XSA9IG9wdHMuYWdlbnRcbiAgICB0aGlzW2tPcmlnaW5dID0gb3JpZ2luXG4gICAgdGhpc1trRGlzcGF0Y2hlc10gPSBbXVxuICAgIHRoaXNba0Nvbm5lY3RlZF0gPSAxXG4gICAgdGhpc1trT3JpZ2luYWxEaXNwYXRjaF0gPSB0aGlzLmRpc3BhdGNoXG4gICAgdGhpc1trT3JpZ2luYWxDbG9zZV0gPSB0aGlzLmNsb3NlLmJpbmQodGhpcylcblxuICAgIHRoaXMuZGlzcGF0Y2ggPSBidWlsZE1vY2tEaXNwYXRjaC5jYWxsKHRoaXMpXG4gICAgdGhpcy5jbG9zZSA9IHRoaXNba0Nsb3NlXVxuICB9XG5cbiAgZ2V0IFtTeW1ib2xzLmtDb25uZWN0ZWRdICgpIHtcbiAgICByZXR1cm4gdGhpc1trQ29ubmVjdGVkXVxuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdXAgdGhlIGJhc2UgaW50ZXJjZXB0b3IgZm9yIG1vY2tpbmcgcmVwbGllcyBmcm9tIHVuZGljaS5cbiAgICovXG4gIGludGVyY2VwdCAob3B0cykge1xuICAgIHJldHVybiBuZXcgTW9ja0ludGVyY2VwdG9yKG9wdHMsIHRoaXNba0Rpc3BhdGNoZXNdKVxuICB9XG5cbiAgYXN5bmMgW2tDbG9zZV0gKCkge1xuICAgIGF3YWl0IHByb21pc2lmeSh0aGlzW2tPcmlnaW5hbENsb3NlXSkoKVxuICAgIHRoaXNba0Nvbm5lY3RlZF0gPSAwXG4gICAgdGhpc1trTW9ja0FnZW50XVtTeW1ib2xzLmtDbGllbnRzXS5kZWxldGUodGhpc1trT3JpZ2luXSlcbiAgfVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IE1vY2tDbGllbnRcbiIsICIndXNlIHN0cmljdCdcblxuY29uc3QgeyBwcm9taXNpZnkgfSA9IHJlcXVpcmUoJ25vZGU6dXRpbCcpXG5jb25zdCBQb29sID0gcmVxdWlyZSgnLi4vZGlzcGF0Y2hlci9wb29sJylcbmNvbnN0IHsgYnVpbGRNb2NrRGlzcGF0Y2ggfSA9IHJlcXVpcmUoJy4vbW9jay11dGlscycpXG5jb25zdCB7XG4gIGtEaXNwYXRjaGVzLFxuICBrTW9ja0FnZW50LFxuICBrQ2xvc2UsXG4gIGtPcmlnaW5hbENsb3NlLFxuICBrT3JpZ2luLFxuICBrT3JpZ2luYWxEaXNwYXRjaCxcbiAga0Nvbm5lY3RlZFxufSA9IHJlcXVpcmUoJy4vbW9jay1zeW1ib2xzJylcbmNvbnN0IHsgTW9ja0ludGVyY2VwdG9yIH0gPSByZXF1aXJlKCcuL21vY2staW50ZXJjZXB0b3InKVxuY29uc3QgU3ltYm9scyA9IHJlcXVpcmUoJy4uL2NvcmUvc3ltYm9scycpXG5jb25zdCB7IEludmFsaWRBcmd1bWVudEVycm9yIH0gPSByZXF1aXJlKCcuLi9jb3JlL2Vycm9ycycpXG5cbi8qKlxuICogTW9ja1Bvb2wgcHJvdmlkZXMgYW4gQVBJIHRoYXQgZXh0ZW5kcyB0aGUgUG9vbCB0byBpbmZsdWVuY2UgdGhlIG1vY2tEaXNwYXRjaGVzLlxuICovXG5jbGFzcyBNb2NrUG9vbCBleHRlbmRzIFBvb2wge1xuICBjb25zdHJ1Y3RvciAob3JpZ2luLCBvcHRzKSB7XG4gICAgc3VwZXIob3JpZ2luLCBvcHRzKVxuXG4gICAgaWYgKCFvcHRzIHx8ICFvcHRzLmFnZW50IHx8IHR5cGVvZiBvcHRzLmFnZW50LmRpc3BhdGNoICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50RXJyb3IoJ0FyZ3VtZW50IG9wdHMuYWdlbnQgbXVzdCBpbXBsZW1lbnQgQWdlbnQnKVxuICAgIH1cblxuICAgIHRoaXNba01vY2tBZ2VudF0gPSBvcHRzLmFnZW50XG4gICAgdGhpc1trT3JpZ2luXSA9IG9yaWdpblxuICAgIHRoaXNba0Rpc3BhdGNoZXNdID0gW11cbiAgICB0aGlzW2tDb25uZWN0ZWRdID0gMVxuICAgIHRoaXNba09yaWdpbmFsRGlzcGF0Y2hdID0gdGhpcy5kaXNwYXRjaFxuICAgIHRoaXNba09yaWdpbmFsQ2xvc2VdID0gdGhpcy5jbG9zZS5iaW5kKHRoaXMpXG5cbiAgICB0aGlzLmRpc3BhdGNoID0gYnVpbGRNb2NrRGlzcGF0Y2guY2FsbCh0aGlzKVxuICAgIHRoaXMuY2xvc2UgPSB0aGlzW2tDbG9zZV1cbiAgfVxuXG4gIGdldCBbU3ltYm9scy5rQ29ubmVjdGVkXSAoKSB7XG4gICAgcmV0dXJuIHRoaXNba0Nvbm5lY3RlZF1cbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHVwIHRoZSBiYXNlIGludGVyY2VwdG9yIGZvciBtb2NraW5nIHJlcGxpZXMgZnJvbSB1bmRpY2kuXG4gICAqL1xuICBpbnRlcmNlcHQgKG9wdHMpIHtcbiAgICByZXR1cm4gbmV3IE1vY2tJbnRlcmNlcHRvcihvcHRzLCB0aGlzW2tEaXNwYXRjaGVzXSlcbiAgfVxuXG4gIGFzeW5jIFtrQ2xvc2VdICgpIHtcbiAgICBhd2FpdCBwcm9taXNpZnkodGhpc1trT3JpZ2luYWxDbG9zZV0pKClcbiAgICB0aGlzW2tDb25uZWN0ZWRdID0gMFxuICAgIHRoaXNba01vY2tBZ2VudF1bU3ltYm9scy5rQ2xpZW50c10uZGVsZXRlKHRoaXNba09yaWdpbl0pXG4gIH1cbn1cblxubW9kdWxlLmV4cG9ydHMgPSBNb2NrUG9vbFxuIiwgIid1c2Ugc3RyaWN0J1xuXG5jb25zdCBzaW5ndWxhcnMgPSB7XG4gIHByb25vdW46ICdpdCcsXG4gIGlzOiAnaXMnLFxuICB3YXM6ICd3YXMnLFxuICB0aGlzOiAndGhpcydcbn1cblxuY29uc3QgcGx1cmFscyA9IHtcbiAgcHJvbm91bjogJ3RoZXknLFxuICBpczogJ2FyZScsXG4gIHdhczogJ3dlcmUnLFxuICB0aGlzOiAndGhlc2UnXG59XG5cbm1vZHVsZS5leHBvcnRzID0gY2xhc3MgUGx1cmFsaXplciB7XG4gIGNvbnN0cnVjdG9yIChzaW5ndWxhciwgcGx1cmFsKSB7XG4gICAgdGhpcy5zaW5ndWxhciA9IHNpbmd1bGFyXG4gICAgdGhpcy5wbHVyYWwgPSBwbHVyYWxcbiAgfVxuXG4gIHBsdXJhbGl6ZSAoY291bnQpIHtcbiAgICBjb25zdCBvbmUgPSBjb3VudCA9PT0gMVxuICAgIGNvbnN0IGtleXMgPSBvbmUgPyBzaW5ndWxhcnMgOiBwbHVyYWxzXG4gICAgY29uc3Qgbm91biA9IG9uZSA/IHRoaXMuc2luZ3VsYXIgOiB0aGlzLnBsdXJhbFxuICAgIHJldHVybiB7IC4uLmtleXMsIGNvdW50LCBub3VuIH1cbiAgfVxufVxuIiwgIid1c2Ugc3RyaWN0J1xuXG5jb25zdCB7IFRyYW5zZm9ybSB9ID0gcmVxdWlyZSgnbm9kZTpzdHJlYW0nKVxuY29uc3QgeyBDb25zb2xlIH0gPSByZXF1aXJlKCdub2RlOmNvbnNvbGUnKVxuXG5jb25zdCBQRVJTSVNURU5UID0gcHJvY2Vzcy52ZXJzaW9ucy5pY3UgPyAnXHUyNzA1JyA6ICdZICdcbmNvbnN0IE5PVF9QRVJTSVNURU5UID0gcHJvY2Vzcy52ZXJzaW9ucy5pY3UgPyAnXHUyNzRDJyA6ICdOICdcblxuLyoqXG4gKiBHZXRzIHRoZSBvdXRwdXQgb2YgYGNvbnNvbGUudGFibGUoXHUyMDI2KWAgYXMgYSBzdHJpbmcuXG4gKi9cbm1vZHVsZS5leHBvcnRzID0gY2xhc3MgUGVuZGluZ0ludGVyY2VwdG9yc0Zvcm1hdHRlciB7XG4gIGNvbnN0cnVjdG9yICh7IGRpc2FibGVDb2xvcnMgfSA9IHt9KSB7XG4gICAgdGhpcy50cmFuc2Zvcm0gPSBuZXcgVHJhbnNmb3JtKHtcbiAgICAgIHRyYW5zZm9ybSAoY2h1bmssIF9lbmMsIGNiKSB7XG4gICAgICAgIGNiKG51bGwsIGNodW5rKVxuICAgICAgfVxuICAgIH0pXG5cbiAgICB0aGlzLmxvZ2dlciA9IG5ldyBDb25zb2xlKHtcbiAgICAgIHN0ZG91dDogdGhpcy50cmFuc2Zvcm0sXG4gICAgICBpbnNwZWN0T3B0aW9uczoge1xuICAgICAgICBjb2xvcnM6ICFkaXNhYmxlQ29sb3JzICYmICFwcm9jZXNzLmVudi5DSVxuICAgICAgfVxuICAgIH0pXG4gIH1cblxuICBmb3JtYXQgKHBlbmRpbmdJbnRlcmNlcHRvcnMpIHtcbiAgICBjb25zdCB3aXRoUHJldHR5SGVhZGVycyA9IHBlbmRpbmdJbnRlcmNlcHRvcnMubWFwKFxuICAgICAgKHsgbWV0aG9kLCBwYXRoLCBkYXRhOiB7IHN0YXR1c0NvZGUgfSwgcGVyc2lzdCwgdGltZXMsIHRpbWVzSW52b2tlZCwgb3JpZ2luIH0pID0+ICh7XG4gICAgICAgIE1ldGhvZDogbWV0aG9kLFxuICAgICAgICBPcmlnaW46IG9yaWdpbixcbiAgICAgICAgUGF0aDogcGF0aCxcbiAgICAgICAgJ1N0YXR1cyBjb2RlJzogc3RhdHVzQ29kZSxcbiAgICAgICAgUGVyc2lzdGVudDogcGVyc2lzdCA/IFBFUlNJU1RFTlQgOiBOT1RfUEVSU0lTVEVOVCxcbiAgICAgICAgSW52b2NhdGlvbnM6IHRpbWVzSW52b2tlZCxcbiAgICAgICAgUmVtYWluaW5nOiBwZXJzaXN0ID8gSW5maW5pdHkgOiB0aW1lcyAtIHRpbWVzSW52b2tlZFxuICAgICAgfSkpXG5cbiAgICB0aGlzLmxvZ2dlci50YWJsZSh3aXRoUHJldHR5SGVhZGVycylcbiAgICByZXR1cm4gdGhpcy50cmFuc2Zvcm0ucmVhZCgpLnRvU3RyaW5nKClcbiAgfVxufVxuIiwgIid1c2Ugc3RyaWN0J1xuXG5jb25zdCB7IGtDbGllbnRzIH0gPSByZXF1aXJlKCcuLi9jb3JlL3N5bWJvbHMnKVxuY29uc3QgQWdlbnQgPSByZXF1aXJlKCcuLi9kaXNwYXRjaGVyL2FnZW50JylcbmNvbnN0IHtcbiAga0FnZW50LFxuICBrTW9ja0FnZW50U2V0LFxuICBrTW9ja0FnZW50R2V0LFxuICBrRGlzcGF0Y2hlcyxcbiAga0lzTW9ja0FjdGl2ZSxcbiAga05ldENvbm5lY3QsXG4gIGtHZXROZXRDb25uZWN0LFxuICBrT3B0aW9ucyxcbiAga0ZhY3Rvcnlcbn0gPSByZXF1aXJlKCcuL21vY2stc3ltYm9scycpXG5jb25zdCBNb2NrQ2xpZW50ID0gcmVxdWlyZSgnLi9tb2NrLWNsaWVudCcpXG5jb25zdCBNb2NrUG9vbCA9IHJlcXVpcmUoJy4vbW9jay1wb29sJylcbmNvbnN0IHsgbWF0Y2hWYWx1ZSwgYnVpbGRNb2NrT3B0aW9ucyB9ID0gcmVxdWlyZSgnLi9tb2NrLXV0aWxzJylcbmNvbnN0IHsgSW52YWxpZEFyZ3VtZW50RXJyb3IsIFVuZGljaUVycm9yIH0gPSByZXF1aXJlKCcuLi9jb3JlL2Vycm9ycycpXG5jb25zdCBEaXNwYXRjaGVyID0gcmVxdWlyZSgnLi4vZGlzcGF0Y2hlci9kaXNwYXRjaGVyJylcbmNvbnN0IFBsdXJhbGl6ZXIgPSByZXF1aXJlKCcuL3BsdXJhbGl6ZXInKVxuY29uc3QgUGVuZGluZ0ludGVyY2VwdG9yc0Zvcm1hdHRlciA9IHJlcXVpcmUoJy4vcGVuZGluZy1pbnRlcmNlcHRvcnMtZm9ybWF0dGVyJylcblxuY2xhc3MgTW9ja0FnZW50IGV4dGVuZHMgRGlzcGF0Y2hlciB7XG4gIGNvbnN0cnVjdG9yIChvcHRzKSB7XG4gICAgc3VwZXIob3B0cylcblxuICAgIHRoaXNba05ldENvbm5lY3RdID0gdHJ1ZVxuICAgIHRoaXNba0lzTW9ja0FjdGl2ZV0gPSB0cnVlXG5cbiAgICAvLyBJbnN0YW50aWF0ZSBBZ2VudCBhbmQgZW5jYXBzdWxhdGVcbiAgICBpZiAoKG9wdHM/LmFnZW50ICYmIHR5cGVvZiBvcHRzLmFnZW50LmRpc3BhdGNoICE9PSAnZnVuY3Rpb24nKSkge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudEVycm9yKCdBcmd1bWVudCBvcHRzLmFnZW50IG11c3QgaW1wbGVtZW50IEFnZW50JylcbiAgICB9XG4gICAgY29uc3QgYWdlbnQgPSBvcHRzPy5hZ2VudCA/IG9wdHMuYWdlbnQgOiBuZXcgQWdlbnQob3B0cylcbiAgICB0aGlzW2tBZ2VudF0gPSBhZ2VudFxuXG4gICAgdGhpc1trQ2xpZW50c10gPSBhZ2VudFtrQ2xpZW50c11cbiAgICB0aGlzW2tPcHRpb25zXSA9IGJ1aWxkTW9ja09wdGlvbnMob3B0cylcbiAgfVxuXG4gIGdldCAob3JpZ2luKSB7XG4gICAgbGV0IGRpc3BhdGNoZXIgPSB0aGlzW2tNb2NrQWdlbnRHZXRdKG9yaWdpbilcblxuICAgIGlmICghZGlzcGF0Y2hlcikge1xuICAgICAgZGlzcGF0Y2hlciA9IHRoaXNba0ZhY3RvcnldKG9yaWdpbilcbiAgICAgIHRoaXNba01vY2tBZ2VudFNldF0ob3JpZ2luLCBkaXNwYXRjaGVyKVxuICAgIH1cbiAgICByZXR1cm4gZGlzcGF0Y2hlclxuICB9XG5cbiAgZGlzcGF0Y2ggKG9wdHMsIGhhbmRsZXIpIHtcbiAgICAvLyBDYWxsIE1vY2tBZ2VudC5nZXQgdG8gcGVyZm9ybSBhZGRpdGlvbmFsIHNldHVwIGJlZm9yZSBkaXNwYXRjaGluZyBhcyBub3JtYWxcbiAgICB0aGlzLmdldChvcHRzLm9yaWdpbilcbiAgICByZXR1cm4gdGhpc1trQWdlbnRdLmRpc3BhdGNoKG9wdHMsIGhhbmRsZXIpXG4gIH1cblxuICBhc3luYyBjbG9zZSAoKSB7XG4gICAgYXdhaXQgdGhpc1trQWdlbnRdLmNsb3NlKClcbiAgICB0aGlzW2tDbGllbnRzXS5jbGVhcigpXG4gIH1cblxuICBkZWFjdGl2YXRlICgpIHtcbiAgICB0aGlzW2tJc01vY2tBY3RpdmVdID0gZmFsc2VcbiAgfVxuXG4gIGFjdGl2YXRlICgpIHtcbiAgICB0aGlzW2tJc01vY2tBY3RpdmVdID0gdHJ1ZVxuICB9XG5cbiAgZW5hYmxlTmV0Q29ubmVjdCAobWF0Y2hlcikge1xuICAgIGlmICh0eXBlb2YgbWF0Y2hlciA9PT0gJ3N0cmluZycgfHwgdHlwZW9mIG1hdGNoZXIgPT09ICdmdW5jdGlvbicgfHwgbWF0Y2hlciBpbnN0YW5jZW9mIFJlZ0V4cCkge1xuICAgICAgaWYgKEFycmF5LmlzQXJyYXkodGhpc1trTmV0Q29ubmVjdF0pKSB7XG4gICAgICAgIHRoaXNba05ldENvbm5lY3RdLnB1c2gobWF0Y2hlcilcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXNba05ldENvbm5lY3RdID0gW21hdGNoZXJdXG4gICAgICB9XG4gICAgfSBlbHNlIGlmICh0eXBlb2YgbWF0Y2hlciA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIHRoaXNba05ldENvbm5lY3RdID0gdHJ1ZVxuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50RXJyb3IoJ1Vuc3VwcG9ydGVkIG1hdGNoZXIuIE11c3QgYmUgb25lIG9mIFN0cmluZ3xGdW5jdGlvbnxSZWdFeHAuJylcbiAgICB9XG4gIH1cblxuICBkaXNhYmxlTmV0Q29ubmVjdCAoKSB7XG4gICAgdGhpc1trTmV0Q29ubmVjdF0gPSBmYWxzZVxuICB9XG5cbiAgLy8gVGhpcyBpcyByZXF1aXJlZCB0byBieXBhc3MgaXNzdWVzIGNhdXNlZCBieSB1c2luZyBnbG9iYWwgc3ltYm9scyAtIHNlZTpcbiAgLy8gaHR0cHM6Ly9naXRodWIuY29tL25vZGVqcy91bmRpY2kvaXNzdWVzLzE0NDdcbiAgZ2V0IGlzTW9ja0FjdGl2ZSAoKSB7XG4gICAgcmV0dXJuIHRoaXNba0lzTW9ja0FjdGl2ZV1cbiAgfVxuXG4gIFtrTW9ja0FnZW50U2V0XSAob3JpZ2luLCBkaXNwYXRjaGVyKSB7XG4gICAgdGhpc1trQ2xpZW50c10uc2V0KG9yaWdpbiwgZGlzcGF0Y2hlcilcbiAgfVxuXG4gIFtrRmFjdG9yeV0gKG9yaWdpbikge1xuICAgIGNvbnN0IG1vY2tPcHRpb25zID0gT2JqZWN0LmFzc2lnbih7IGFnZW50OiB0aGlzIH0sIHRoaXNba09wdGlvbnNdKVxuICAgIHJldHVybiB0aGlzW2tPcHRpb25zXSAmJiB0aGlzW2tPcHRpb25zXS5jb25uZWN0aW9ucyA9PT0gMVxuICAgICAgPyBuZXcgTW9ja0NsaWVudChvcmlnaW4sIG1vY2tPcHRpb25zKVxuICAgICAgOiBuZXcgTW9ja1Bvb2wob3JpZ2luLCBtb2NrT3B0aW9ucylcbiAgfVxuXG4gIFtrTW9ja0FnZW50R2V0XSAob3JpZ2luKSB7XG4gICAgLy8gRmlyc3QgY2hlY2sgaWYgd2UgY2FuIGltbWVkaWF0ZWx5IGZpbmQgaXRcbiAgICBjb25zdCBjbGllbnQgPSB0aGlzW2tDbGllbnRzXS5nZXQob3JpZ2luKVxuICAgIGlmIChjbGllbnQpIHtcbiAgICAgIHJldHVybiBjbGllbnRcbiAgICB9XG5cbiAgICAvLyBJZiB0aGUgb3JpZ2luIGlzIG5vdCBhIHN0cmluZyBjcmVhdGUgYSBkdW1teSBwYXJlbnQgcG9vbCBhbmQgcmV0dXJuIHRvIHVzZXJcbiAgICBpZiAodHlwZW9mIG9yaWdpbiAhPT0gJ3N0cmluZycpIHtcbiAgICAgIGNvbnN0IGRpc3BhdGNoZXIgPSB0aGlzW2tGYWN0b3J5XSgnaHR0cDovL2xvY2FsaG9zdDo5OTk5JylcbiAgICAgIHRoaXNba01vY2tBZ2VudFNldF0ob3JpZ2luLCBkaXNwYXRjaGVyKVxuICAgICAgcmV0dXJuIGRpc3BhdGNoZXJcbiAgICB9XG5cbiAgICAvLyBJZiB3ZSBtYXRjaCwgY3JlYXRlIGEgcG9vbCBhbmQgYXNzaWduIHRoZSBzYW1lIGRpc3BhdGNoZXNcbiAgICBmb3IgKGNvbnN0IFtrZXlNYXRjaGVyLCBub25FeHBsaWNpdERpc3BhdGNoZXJdIG9mIEFycmF5LmZyb20odGhpc1trQ2xpZW50c10pKSB7XG4gICAgICBpZiAobm9uRXhwbGljaXREaXNwYXRjaGVyICYmIHR5cGVvZiBrZXlNYXRjaGVyICE9PSAnc3RyaW5nJyAmJiBtYXRjaFZhbHVlKGtleU1hdGNoZXIsIG9yaWdpbikpIHtcbiAgICAgICAgY29uc3QgZGlzcGF0Y2hlciA9IHRoaXNba0ZhY3RvcnldKG9yaWdpbilcbiAgICAgICAgdGhpc1trTW9ja0FnZW50U2V0XShvcmlnaW4sIGRpc3BhdGNoZXIpXG4gICAgICAgIGRpc3BhdGNoZXJba0Rpc3BhdGNoZXNdID0gbm9uRXhwbGljaXREaXNwYXRjaGVyW2tEaXNwYXRjaGVzXVxuICAgICAgICByZXR1cm4gZGlzcGF0Y2hlclxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIFtrR2V0TmV0Q29ubmVjdF0gKCkge1xuICAgIHJldHVybiB0aGlzW2tOZXRDb25uZWN0XVxuICB9XG5cbiAgcGVuZGluZ0ludGVyY2VwdG9ycyAoKSB7XG4gICAgY29uc3QgbW9ja0FnZW50Q2xpZW50cyA9IHRoaXNba0NsaWVudHNdXG5cbiAgICByZXR1cm4gQXJyYXkuZnJvbShtb2NrQWdlbnRDbGllbnRzLmVudHJpZXMoKSlcbiAgICAgIC5mbGF0TWFwKChbb3JpZ2luLCBzY29wZV0pID0+IHNjb3BlW2tEaXNwYXRjaGVzXS5tYXAoZGlzcGF0Y2ggPT4gKHsgLi4uZGlzcGF0Y2gsIG9yaWdpbiB9KSkpXG4gICAgICAuZmlsdGVyKCh7IHBlbmRpbmcgfSkgPT4gcGVuZGluZylcbiAgfVxuXG4gIGFzc2VydE5vUGVuZGluZ0ludGVyY2VwdG9ycyAoeyBwZW5kaW5nSW50ZXJjZXB0b3JzRm9ybWF0dGVyID0gbmV3IFBlbmRpbmdJbnRlcmNlcHRvcnNGb3JtYXR0ZXIoKSB9ID0ge30pIHtcbiAgICBjb25zdCBwZW5kaW5nID0gdGhpcy5wZW5kaW5nSW50ZXJjZXB0b3JzKClcblxuICAgIGlmIChwZW5kaW5nLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgY29uc3QgcGx1cmFsaXplciA9IG5ldyBQbHVyYWxpemVyKCdpbnRlcmNlcHRvcicsICdpbnRlcmNlcHRvcnMnKS5wbHVyYWxpemUocGVuZGluZy5sZW5ndGgpXG5cbiAgICB0aHJvdyBuZXcgVW5kaWNpRXJyb3IoYFxuJHtwbHVyYWxpemVyLmNvdW50fSAke3BsdXJhbGl6ZXIubm91bn0gJHtwbHVyYWxpemVyLmlzfSBwZW5kaW5nOlxuXG4ke3BlbmRpbmdJbnRlcmNlcHRvcnNGb3JtYXR0ZXIuZm9ybWF0KHBlbmRpbmcpfVxuYC50cmltKCkpXG4gIH1cbn1cblxubW9kdWxlLmV4cG9ydHMgPSBNb2NrQWdlbnRcbiIsICIndXNlIHN0cmljdCdcblxuLy8gV2UgaW5jbHVkZSBhIHZlcnNpb24gbnVtYmVyIGZvciB0aGUgRGlzcGF0Y2hlciBBUEkuIEluIGNhc2Ugb2YgYnJlYWtpbmcgY2hhbmdlcyxcbi8vIHRoaXMgdmVyc2lvbiBudW1iZXIgbXVzdCBiZSBpbmNyZWFzZWQgdG8gYXZvaWQgY29uZmxpY3RzLlxuY29uc3QgZ2xvYmFsRGlzcGF0Y2hlciA9IFN5bWJvbC5mb3IoJ3VuZGljaS5nbG9iYWxEaXNwYXRjaGVyLjEnKVxuY29uc3QgeyBJbnZhbGlkQXJndW1lbnRFcnJvciB9ID0gcmVxdWlyZSgnLi9jb3JlL2Vycm9ycycpXG5jb25zdCBBZ2VudCA9IHJlcXVpcmUoJy4vZGlzcGF0Y2hlci9hZ2VudCcpXG5cbmlmIChnZXRHbG9iYWxEaXNwYXRjaGVyKCkgPT09IHVuZGVmaW5lZCkge1xuICBzZXRHbG9iYWxEaXNwYXRjaGVyKG5ldyBBZ2VudCgpKVxufVxuXG5mdW5jdGlvbiBzZXRHbG9iYWxEaXNwYXRjaGVyIChhZ2VudCkge1xuICBpZiAoIWFnZW50IHx8IHR5cGVvZiBhZ2VudC5kaXNwYXRjaCAhPT0gJ2Z1bmN0aW9uJykge1xuICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRFcnJvcignQXJndW1lbnQgYWdlbnQgbXVzdCBpbXBsZW1lbnQgQWdlbnQnKVxuICB9XG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShnbG9iYWxUaGlzLCBnbG9iYWxEaXNwYXRjaGVyLCB7XG4gICAgdmFsdWU6IGFnZW50LFxuICAgIHdyaXRhYmxlOiB0cnVlLFxuICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgIGNvbmZpZ3VyYWJsZTogZmFsc2VcbiAgfSlcbn1cblxuZnVuY3Rpb24gZ2V0R2xvYmFsRGlzcGF0Y2hlciAoKSB7XG4gIHJldHVybiBnbG9iYWxUaGlzW2dsb2JhbERpc3BhdGNoZXJdXG59XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICBzZXRHbG9iYWxEaXNwYXRjaGVyLFxuICBnZXRHbG9iYWxEaXNwYXRjaGVyXG59XG4iLCAiJ3VzZSBzdHJpY3QnXG5cbm1vZHVsZS5leHBvcnRzID0gY2xhc3MgRGVjb3JhdG9ySGFuZGxlciB7XG4gICNoYW5kbGVyXG5cbiAgY29uc3RydWN0b3IgKGhhbmRsZXIpIHtcbiAgICBpZiAodHlwZW9mIGhhbmRsZXIgIT09ICdvYmplY3QnIHx8IGhhbmRsZXIgPT09IG51bGwpIHtcbiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ2hhbmRsZXIgbXVzdCBiZSBhbiBvYmplY3QnKVxuICAgIH1cbiAgICB0aGlzLiNoYW5kbGVyID0gaGFuZGxlclxuICB9XG5cbiAgb25Db25uZWN0ICguLi5hcmdzKSB7XG4gICAgcmV0dXJuIHRoaXMuI2hhbmRsZXIub25Db25uZWN0Py4oLi4uYXJncylcbiAgfVxuXG4gIG9uRXJyb3IgKC4uLmFyZ3MpIHtcbiAgICByZXR1cm4gdGhpcy4jaGFuZGxlci5vbkVycm9yPy4oLi4uYXJncylcbiAgfVxuXG4gIG9uVXBncmFkZSAoLi4uYXJncykge1xuICAgIHJldHVybiB0aGlzLiNoYW5kbGVyLm9uVXBncmFkZT8uKC4uLmFyZ3MpXG4gIH1cblxuICBvblJlc3BvbnNlU3RhcnRlZCAoLi4uYXJncykge1xuICAgIHJldHVybiB0aGlzLiNoYW5kbGVyLm9uUmVzcG9uc2VTdGFydGVkPy4oLi4uYXJncylcbiAgfVxuXG4gIG9uSGVhZGVycyAoLi4uYXJncykge1xuICAgIHJldHVybiB0aGlzLiNoYW5kbGVyLm9uSGVhZGVycz8uKC4uLmFyZ3MpXG4gIH1cblxuICBvbkRhdGEgKC4uLmFyZ3MpIHtcbiAgICByZXR1cm4gdGhpcy4jaGFuZGxlci5vbkRhdGE/LiguLi5hcmdzKVxuICB9XG5cbiAgb25Db21wbGV0ZSAoLi4uYXJncykge1xuICAgIHJldHVybiB0aGlzLiNoYW5kbGVyLm9uQ29tcGxldGU/LiguLi5hcmdzKVxuICB9XG5cbiAgb25Cb2R5U2VudCAoLi4uYXJncykge1xuICAgIHJldHVybiB0aGlzLiNoYW5kbGVyLm9uQm9keVNlbnQ/LiguLi5hcmdzKVxuICB9XG59XG4iLCAiJ3VzZSBzdHJpY3QnXG5jb25zdCBSZWRpcmVjdEhhbmRsZXIgPSByZXF1aXJlKCcuLi9oYW5kbGVyL3JlZGlyZWN0LWhhbmRsZXInKVxuXG5tb2R1bGUuZXhwb3J0cyA9IG9wdHMgPT4ge1xuICBjb25zdCBnbG9iYWxNYXhSZWRpcmVjdGlvbnMgPSBvcHRzPy5tYXhSZWRpcmVjdGlvbnNcbiAgcmV0dXJuIGRpc3BhdGNoID0+IHtcbiAgICByZXR1cm4gZnVuY3Rpb24gcmVkaXJlY3RJbnRlcmNlcHRvciAob3B0cywgaGFuZGxlcikge1xuICAgICAgY29uc3QgeyBtYXhSZWRpcmVjdGlvbnMgPSBnbG9iYWxNYXhSZWRpcmVjdGlvbnMsIC4uLmJhc2VPcHRzIH0gPSBvcHRzXG5cbiAgICAgIGlmICghbWF4UmVkaXJlY3Rpb25zKSB7XG4gICAgICAgIHJldHVybiBkaXNwYXRjaChvcHRzLCBoYW5kbGVyKVxuICAgICAgfVxuXG4gICAgICBjb25zdCByZWRpcmVjdEhhbmRsZXIgPSBuZXcgUmVkaXJlY3RIYW5kbGVyKFxuICAgICAgICBkaXNwYXRjaCxcbiAgICAgICAgbWF4UmVkaXJlY3Rpb25zLFxuICAgICAgICBvcHRzLFxuICAgICAgICBoYW5kbGVyXG4gICAgICApXG5cbiAgICAgIHJldHVybiBkaXNwYXRjaChiYXNlT3B0cywgcmVkaXJlY3RIYW5kbGVyKVxuICAgIH1cbiAgfVxufVxuIiwgIid1c2Ugc3RyaWN0J1xuY29uc3QgUmV0cnlIYW5kbGVyID0gcmVxdWlyZSgnLi4vaGFuZGxlci9yZXRyeS1oYW5kbGVyJylcblxubW9kdWxlLmV4cG9ydHMgPSBnbG9iYWxPcHRzID0+IHtcbiAgcmV0dXJuIGRpc3BhdGNoID0+IHtcbiAgICByZXR1cm4gZnVuY3Rpb24gcmV0cnlJbnRlcmNlcHRvciAob3B0cywgaGFuZGxlcikge1xuICAgICAgcmV0dXJuIGRpc3BhdGNoKFxuICAgICAgICBvcHRzLFxuICAgICAgICBuZXcgUmV0cnlIYW5kbGVyKFxuICAgICAgICAgIHsgLi4ub3B0cywgcmV0cnlPcHRpb25zOiB7IC4uLmdsb2JhbE9wdHMsIC4uLm9wdHMucmV0cnlPcHRpb25zIH0gfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBoYW5kbGVyLFxuICAgICAgICAgICAgZGlzcGF0Y2hcbiAgICAgICAgICB9XG4gICAgICAgIClcbiAgICAgIClcbiAgICB9XG4gIH1cbn1cbiIsICIndXNlIHN0cmljdCdcblxuY29uc3QgdXRpbCA9IHJlcXVpcmUoJy4uL2NvcmUvdXRpbCcpXG5jb25zdCB7IEludmFsaWRBcmd1bWVudEVycm9yLCBSZXF1ZXN0QWJvcnRlZEVycm9yIH0gPSByZXF1aXJlKCcuLi9jb3JlL2Vycm9ycycpXG5jb25zdCBEZWNvcmF0b3JIYW5kbGVyID0gcmVxdWlyZSgnLi4vaGFuZGxlci9kZWNvcmF0b3ItaGFuZGxlcicpXG5cbmNsYXNzIER1bXBIYW5kbGVyIGV4dGVuZHMgRGVjb3JhdG9ySGFuZGxlciB7XG4gICNtYXhTaXplID0gMTAyNCAqIDEwMjRcbiAgI2Fib3J0ID0gbnVsbFxuICAjZHVtcGVkID0gZmFsc2VcbiAgI2Fib3J0ZWQgPSBmYWxzZVxuICAjc2l6ZSA9IDBcbiAgI3JlYXNvbiA9IG51bGxcbiAgI2hhbmRsZXIgPSBudWxsXG5cbiAgY29uc3RydWN0b3IgKHsgbWF4U2l6ZSB9LCBoYW5kbGVyKSB7XG4gICAgc3VwZXIoaGFuZGxlcilcblxuICAgIGlmIChtYXhTaXplICE9IG51bGwgJiYgKCFOdW1iZXIuaXNGaW5pdGUobWF4U2l6ZSkgfHwgbWF4U2l6ZSA8IDEpKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50RXJyb3IoJ21heFNpemUgbXVzdCBiZSBhIG51bWJlciBncmVhdGVyIHRoYW4gMCcpXG4gICAgfVxuXG4gICAgdGhpcy4jbWF4U2l6ZSA9IG1heFNpemUgPz8gdGhpcy4jbWF4U2l6ZVxuICAgIHRoaXMuI2hhbmRsZXIgPSBoYW5kbGVyXG4gIH1cblxuICBvbkNvbm5lY3QgKGFib3J0KSB7XG4gICAgdGhpcy4jYWJvcnQgPSBhYm9ydFxuXG4gICAgdGhpcy4jaGFuZGxlci5vbkNvbm5lY3QodGhpcy4jY3VzdG9tQWJvcnQuYmluZCh0aGlzKSlcbiAgfVxuXG4gICNjdXN0b21BYm9ydCAocmVhc29uKSB7XG4gICAgdGhpcy4jYWJvcnRlZCA9IHRydWVcbiAgICB0aGlzLiNyZWFzb24gPSByZWFzb25cbiAgfVxuXG4gIC8vIFRPRE86IHdpbGwgcmVxdWlyZSBhZGp1c3RtZW50IGFmdGVyIG5ldyBob29rcyBhcmUgb3V0XG4gIG9uSGVhZGVycyAoc3RhdHVzQ29kZSwgcmF3SGVhZGVycywgcmVzdW1lLCBzdGF0dXNNZXNzYWdlKSB7XG4gICAgY29uc3QgaGVhZGVycyA9IHV0aWwucGFyc2VIZWFkZXJzKHJhd0hlYWRlcnMpXG4gICAgY29uc3QgY29udGVudExlbmd0aCA9IGhlYWRlcnNbJ2NvbnRlbnQtbGVuZ3RoJ11cblxuICAgIGlmIChjb250ZW50TGVuZ3RoICE9IG51bGwgJiYgY29udGVudExlbmd0aCA+IHRoaXMuI21heFNpemUpIHtcbiAgICAgIHRocm93IG5ldyBSZXF1ZXN0QWJvcnRlZEVycm9yKFxuICAgICAgICBgUmVzcG9uc2Ugc2l6ZSAoJHtjb250ZW50TGVuZ3RofSkgbGFyZ2VyIHRoYW4gbWF4U2l6ZSAoJHtcbiAgICAgICAgICB0aGlzLiNtYXhTaXplXG4gICAgICAgIH0pYFxuICAgICAgKVxuICAgIH1cblxuICAgIGlmICh0aGlzLiNhYm9ydGVkKSB7XG4gICAgICByZXR1cm4gdHJ1ZVxuICAgIH1cblxuICAgIHJldHVybiB0aGlzLiNoYW5kbGVyLm9uSGVhZGVycyhcbiAgICAgIHN0YXR1c0NvZGUsXG4gICAgICByYXdIZWFkZXJzLFxuICAgICAgcmVzdW1lLFxuICAgICAgc3RhdHVzTWVzc2FnZVxuICAgIClcbiAgfVxuXG4gIG9uRXJyb3IgKGVycikge1xuICAgIGlmICh0aGlzLiNkdW1wZWQpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGVyciA9IHRoaXMuI3JlYXNvbiA/PyBlcnJcblxuICAgIHRoaXMuI2hhbmRsZXIub25FcnJvcihlcnIpXG4gIH1cblxuICBvbkRhdGEgKGNodW5rKSB7XG4gICAgdGhpcy4jc2l6ZSA9IHRoaXMuI3NpemUgKyBjaHVuay5sZW5ndGhcblxuICAgIGlmICh0aGlzLiNzaXplID49IHRoaXMuI21heFNpemUpIHtcbiAgICAgIHRoaXMuI2R1bXBlZCA9IHRydWVcblxuICAgICAgaWYgKHRoaXMuI2Fib3J0ZWQpIHtcbiAgICAgICAgdGhpcy4jaGFuZGxlci5vbkVycm9yKHRoaXMuI3JlYXNvbilcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuI2hhbmRsZXIub25Db21wbGV0ZShbXSlcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdHJ1ZVxuICB9XG5cbiAgb25Db21wbGV0ZSAodHJhaWxlcnMpIHtcbiAgICBpZiAodGhpcy4jZHVtcGVkKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBpZiAodGhpcy4jYWJvcnRlZCkge1xuICAgICAgdGhpcy4jaGFuZGxlci5vbkVycm9yKHRoaXMucmVhc29uKVxuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgdGhpcy4jaGFuZGxlci5vbkNvbXBsZXRlKHRyYWlsZXJzKVxuICB9XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZUR1bXBJbnRlcmNlcHRvciAoXG4gIHsgbWF4U2l6ZTogZGVmYXVsdE1heFNpemUgfSA9IHtcbiAgICBtYXhTaXplOiAxMDI0ICogMTAyNFxuICB9XG4pIHtcbiAgcmV0dXJuIGRpc3BhdGNoID0+IHtcbiAgICByZXR1cm4gZnVuY3Rpb24gSW50ZXJjZXB0IChvcHRzLCBoYW5kbGVyKSB7XG4gICAgICBjb25zdCB7IGR1bXBNYXhTaXplID0gZGVmYXVsdE1heFNpemUgfSA9XG4gICAgICAgIG9wdHNcblxuICAgICAgY29uc3QgZHVtcEhhbmRsZXIgPSBuZXcgRHVtcEhhbmRsZXIoXG4gICAgICAgIHsgbWF4U2l6ZTogZHVtcE1heFNpemUgfSxcbiAgICAgICAgaGFuZGxlclxuICAgICAgKVxuXG4gICAgICByZXR1cm4gZGlzcGF0Y2gob3B0cywgZHVtcEhhbmRsZXIpXG4gICAgfVxuICB9XG59XG5cbm1vZHVsZS5leHBvcnRzID0gY3JlYXRlRHVtcEludGVyY2VwdG9yXG4iLCAiJ3VzZSBzdHJpY3QnXG5jb25zdCB7IGlzSVAgfSA9IHJlcXVpcmUoJ25vZGU6bmV0JylcbmNvbnN0IHsgbG9va3VwIH0gPSByZXF1aXJlKCdub2RlOmRucycpXG5jb25zdCBEZWNvcmF0b3JIYW5kbGVyID0gcmVxdWlyZSgnLi4vaGFuZGxlci9kZWNvcmF0b3ItaGFuZGxlcicpXG5jb25zdCB7IEludmFsaWRBcmd1bWVudEVycm9yLCBJbmZvcm1hdGlvbmFsRXJyb3IgfSA9IHJlcXVpcmUoJy4uL2NvcmUvZXJyb3JzJylcbmNvbnN0IG1heEludCA9IE1hdGgucG93KDIsIDMxKSAtIDFcblxuY2xhc3MgRE5TSW5zdGFuY2Uge1xuICAjbWF4VFRMID0gMFxuICAjbWF4SXRlbXMgPSAwXG4gICNyZWNvcmRzID0gbmV3IE1hcCgpXG4gIGR1YWxTdGFjayA9IHRydWVcbiAgYWZmaW5pdHkgPSBudWxsXG4gIGxvb2t1cCA9IG51bGxcbiAgcGljayA9IG51bGxcblxuICBjb25zdHJ1Y3RvciAob3B0cykge1xuICAgIHRoaXMuI21heFRUTCA9IG9wdHMubWF4VFRMXG4gICAgdGhpcy4jbWF4SXRlbXMgPSBvcHRzLm1heEl0ZW1zXG4gICAgdGhpcy5kdWFsU3RhY2sgPSBvcHRzLmR1YWxTdGFja1xuICAgIHRoaXMuYWZmaW5pdHkgPSBvcHRzLmFmZmluaXR5XG4gICAgdGhpcy5sb29rdXAgPSBvcHRzLmxvb2t1cCA/PyB0aGlzLiNkZWZhdWx0TG9va3VwXG4gICAgdGhpcy5waWNrID0gb3B0cy5waWNrID8/IHRoaXMuI2RlZmF1bHRQaWNrXG4gIH1cblxuICBnZXQgZnVsbCAoKSB7XG4gICAgcmV0dXJuIHRoaXMuI3JlY29yZHMuc2l6ZSA9PT0gdGhpcy4jbWF4SXRlbXNcbiAgfVxuXG4gIHJ1bkxvb2t1cCAob3JpZ2luLCBvcHRzLCBjYikge1xuICAgIGNvbnN0IGlwcyA9IHRoaXMuI3JlY29yZHMuZ2V0KG9yaWdpbi5ob3N0bmFtZSlcblxuICAgIC8vIElmIGZ1bGwsIHdlIGp1c3QgcmV0dXJuIHRoZSBvcmlnaW5cbiAgICBpZiAoaXBzID09IG51bGwgJiYgdGhpcy5mdWxsKSB7XG4gICAgICBjYihudWxsLCBvcmlnaW4ub3JpZ2luKVxuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgY29uc3QgbmV3T3B0cyA9IHtcbiAgICAgIGFmZmluaXR5OiB0aGlzLmFmZmluaXR5LFxuICAgICAgZHVhbFN0YWNrOiB0aGlzLmR1YWxTdGFjayxcbiAgICAgIGxvb2t1cDogdGhpcy5sb29rdXAsXG4gICAgICBwaWNrOiB0aGlzLnBpY2ssXG4gICAgICAuLi5vcHRzLmRucyxcbiAgICAgIG1heFRUTDogdGhpcy4jbWF4VFRMLFxuICAgICAgbWF4SXRlbXM6IHRoaXMuI21heEl0ZW1zXG4gICAgfVxuXG4gICAgLy8gSWYgbm8gSVBzIHdlIGxvb2t1cFxuICAgIGlmIChpcHMgPT0gbnVsbCkge1xuICAgICAgdGhpcy5sb29rdXAob3JpZ2luLCBuZXdPcHRzLCAoZXJyLCBhZGRyZXNzZXMpID0+IHtcbiAgICAgICAgaWYgKGVyciB8fCBhZGRyZXNzZXMgPT0gbnVsbCB8fCBhZGRyZXNzZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgY2IoZXJyID8/IG5ldyBJbmZvcm1hdGlvbmFsRXJyb3IoJ05vIEROUyBlbnRyaWVzIGZvdW5kJykpXG4gICAgICAgICAgcmV0dXJuXG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnNldFJlY29yZHMob3JpZ2luLCBhZGRyZXNzZXMpXG4gICAgICAgIGNvbnN0IHJlY29yZHMgPSB0aGlzLiNyZWNvcmRzLmdldChvcmlnaW4uaG9zdG5hbWUpXG5cbiAgICAgICAgY29uc3QgaXAgPSB0aGlzLnBpY2soXG4gICAgICAgICAgb3JpZ2luLFxuICAgICAgICAgIHJlY29yZHMsXG4gICAgICAgICAgbmV3T3B0cy5hZmZpbml0eVxuICAgICAgICApXG5cbiAgICAgICAgbGV0IHBvcnRcbiAgICAgICAgaWYgKHR5cGVvZiBpcC5wb3J0ID09PSAnbnVtYmVyJykge1xuICAgICAgICAgIHBvcnQgPSBgOiR7aXAucG9ydH1gXG4gICAgICAgIH0gZWxzZSBpZiAob3JpZ2luLnBvcnQgIT09ICcnKSB7XG4gICAgICAgICAgcG9ydCA9IGA6JHtvcmlnaW4ucG9ydH1gXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcG9ydCA9ICcnXG4gICAgICAgIH1cblxuICAgICAgICBjYihcbiAgICAgICAgICBudWxsLFxuICAgICAgICAgIGAke29yaWdpbi5wcm90b2NvbH0vLyR7XG4gICAgICAgICAgICBpcC5mYW1pbHkgPT09IDYgPyBgWyR7aXAuYWRkcmVzc31dYCA6IGlwLmFkZHJlc3NcbiAgICAgICAgICB9JHtwb3J0fWBcbiAgICAgICAgKVxuICAgICAgfSlcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gSWYgdGhlcmUncyBJUHMgd2UgcGlja1xuICAgICAgY29uc3QgaXAgPSB0aGlzLnBpY2soXG4gICAgICAgIG9yaWdpbixcbiAgICAgICAgaXBzLFxuICAgICAgICBuZXdPcHRzLmFmZmluaXR5XG4gICAgICApXG5cbiAgICAgIC8vIElmIG5vIElQcyB3ZSBsb29rdXAgLSBkZWxldGluZyBvbGQgcmVjb3Jkc1xuICAgICAgaWYgKGlwID09IG51bGwpIHtcbiAgICAgICAgdGhpcy4jcmVjb3Jkcy5kZWxldGUob3JpZ2luLmhvc3RuYW1lKVxuICAgICAgICB0aGlzLnJ1bkxvb2t1cChvcmlnaW4sIG9wdHMsIGNiKVxuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgbGV0IHBvcnRcbiAgICAgIGlmICh0eXBlb2YgaXAucG9ydCA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgcG9ydCA9IGA6JHtpcC5wb3J0fWBcbiAgICAgIH0gZWxzZSBpZiAob3JpZ2luLnBvcnQgIT09ICcnKSB7XG4gICAgICAgIHBvcnQgPSBgOiR7b3JpZ2luLnBvcnR9YFxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcG9ydCA9ICcnXG4gICAgICB9XG5cbiAgICAgIGNiKFxuICAgICAgICBudWxsLFxuICAgICAgICBgJHtvcmlnaW4ucHJvdG9jb2x9Ly8ke1xuICAgICAgICAgIGlwLmZhbWlseSA9PT0gNiA/IGBbJHtpcC5hZGRyZXNzfV1gIDogaXAuYWRkcmVzc1xuICAgICAgICB9JHtwb3J0fWBcbiAgICAgIClcbiAgICB9XG4gIH1cblxuICAjZGVmYXVsdExvb2t1cCAob3JpZ2luLCBvcHRzLCBjYikge1xuICAgIGxvb2t1cChcbiAgICAgIG9yaWdpbi5ob3N0bmFtZSxcbiAgICAgIHtcbiAgICAgICAgYWxsOiB0cnVlLFxuICAgICAgICBmYW1pbHk6IHRoaXMuZHVhbFN0YWNrID09PSBmYWxzZSA/IHRoaXMuYWZmaW5pdHkgOiAwLFxuICAgICAgICBvcmRlcjogJ2lwdjRmaXJzdCdcbiAgICAgIH0sXG4gICAgICAoZXJyLCBhZGRyZXNzZXMpID0+IHtcbiAgICAgICAgaWYgKGVycikge1xuICAgICAgICAgIHJldHVybiBjYihlcnIpXG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCByZXN1bHRzID0gbmV3IE1hcCgpXG5cbiAgICAgICAgZm9yIChjb25zdCBhZGRyIG9mIGFkZHJlc3Nlcykge1xuICAgICAgICAgIC8vIE9uIGxpbnV4IHdlIGZvdW5kIGR1cGxpY2F0ZXMsIHdlIGF0dGVtcHQgdG8gcmVtb3ZlIHRoZW0gd2l0aFxuICAgICAgICAgIC8vIHRoZSBsYXRlc3QgcmVjb3JkXG4gICAgICAgICAgcmVzdWx0cy5zZXQoYCR7YWRkci5hZGRyZXNzfToke2FkZHIuZmFtaWx5fWAsIGFkZHIpXG4gICAgICAgIH1cblxuICAgICAgICBjYihudWxsLCByZXN1bHRzLnZhbHVlcygpKVxuICAgICAgfVxuICAgIClcbiAgfVxuXG4gICNkZWZhdWx0UGljayAob3JpZ2luLCBob3N0bmFtZVJlY29yZHMsIGFmZmluaXR5KSB7XG4gICAgbGV0IGlwID0gbnVsbFxuICAgIGNvbnN0IHsgcmVjb3Jkcywgb2Zmc2V0IH0gPSBob3N0bmFtZVJlY29yZHNcblxuICAgIGxldCBmYW1pbHlcbiAgICBpZiAodGhpcy5kdWFsU3RhY2spIHtcbiAgICAgIGlmIChhZmZpbml0eSA9PSBudWxsKSB7XG4gICAgICAgIC8vIEJhbGFuY2UgYmV0d2VlbiBpcCBmYW1pbGllc1xuICAgICAgICBpZiAob2Zmc2V0ID09IG51bGwgfHwgb2Zmc2V0ID09PSBtYXhJbnQpIHtcbiAgICAgICAgICBob3N0bmFtZVJlY29yZHMub2Zmc2V0ID0gMFxuICAgICAgICAgIGFmZmluaXR5ID0gNFxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGhvc3RuYW1lUmVjb3Jkcy5vZmZzZXQrK1xuICAgICAgICAgIGFmZmluaXR5ID0gKGhvc3RuYW1lUmVjb3Jkcy5vZmZzZXQgJiAxKSA9PT0gMSA/IDYgOiA0XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKHJlY29yZHNbYWZmaW5pdHldICE9IG51bGwgJiYgcmVjb3Jkc1thZmZpbml0eV0uaXBzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgZmFtaWx5ID0gcmVjb3Jkc1thZmZpbml0eV1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGZhbWlseSA9IHJlY29yZHNbYWZmaW5pdHkgPT09IDQgPyA2IDogNF1cbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgZmFtaWx5ID0gcmVjb3Jkc1thZmZpbml0eV1cbiAgICB9XG5cbiAgICAvLyBJZiBubyBJUHMgd2UgcmV0dXJuIG51bGxcbiAgICBpZiAoZmFtaWx5ID09IG51bGwgfHwgZmFtaWx5Lmlwcy5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiBpcFxuICAgIH1cblxuICAgIGlmIChmYW1pbHkub2Zmc2V0ID09IG51bGwgfHwgZmFtaWx5Lm9mZnNldCA9PT0gbWF4SW50KSB7XG4gICAgICBmYW1pbHkub2Zmc2V0ID0gMFxuICAgIH0gZWxzZSB7XG4gICAgICBmYW1pbHkub2Zmc2V0KytcbiAgICB9XG5cbiAgICBjb25zdCBwb3NpdGlvbiA9IGZhbWlseS5vZmZzZXQgJSBmYW1pbHkuaXBzLmxlbmd0aFxuICAgIGlwID0gZmFtaWx5Lmlwc1twb3NpdGlvbl0gPz8gbnVsbFxuXG4gICAgaWYgKGlwID09IG51bGwpIHtcbiAgICAgIHJldHVybiBpcFxuICAgIH1cblxuICAgIGlmIChEYXRlLm5vdygpIC0gaXAudGltZXN0YW1wID4gaXAudHRsKSB7IC8vIHJlY29yZCBUVEwgaXMgYWxyZWFkeSBpbiBtc1xuICAgICAgLy8gV2UgZGVsZXRlIGV4cGlyZWQgcmVjb3Jkc1xuICAgICAgLy8gSXQgaXMgcG9zc2libGUgdGhhdCB0aGV5IGhhdmUgZGlmZmVyZW50IFRUTCwgc28gd2UgbWFuYWdlIHRoZW0gaW5kaXZpZHVhbGx5XG4gICAgICBmYW1pbHkuaXBzLnNwbGljZShwb3NpdGlvbiwgMSlcbiAgICAgIHJldHVybiB0aGlzLnBpY2sob3JpZ2luLCBob3N0bmFtZVJlY29yZHMsIGFmZmluaXR5KVxuICAgIH1cblxuICAgIHJldHVybiBpcFxuICB9XG5cbiAgc2V0UmVjb3JkcyAob3JpZ2luLCBhZGRyZXNzZXMpIHtcbiAgICBjb25zdCB0aW1lc3RhbXAgPSBEYXRlLm5vdygpXG4gICAgY29uc3QgcmVjb3JkcyA9IHsgcmVjb3JkczogeyA0OiBudWxsLCA2OiBudWxsIH0gfVxuICAgIGZvciAoY29uc3QgcmVjb3JkIG9mIGFkZHJlc3Nlcykge1xuICAgICAgcmVjb3JkLnRpbWVzdGFtcCA9IHRpbWVzdGFtcFxuICAgICAgaWYgKHR5cGVvZiByZWNvcmQudHRsID09PSAnbnVtYmVyJykge1xuICAgICAgICAvLyBUaGUgcmVjb3JkIFRUTCBpcyBleHBlY3RlZCB0byBiZSBpbiBtc1xuICAgICAgICByZWNvcmQudHRsID0gTWF0aC5taW4ocmVjb3JkLnR0bCwgdGhpcy4jbWF4VFRMKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmVjb3JkLnR0bCA9IHRoaXMuI21heFRUTFxuICAgICAgfVxuXG4gICAgICBjb25zdCBmYW1pbHlSZWNvcmRzID0gcmVjb3Jkcy5yZWNvcmRzW3JlY29yZC5mYW1pbHldID8/IHsgaXBzOiBbXSB9XG5cbiAgICAgIGZhbWlseVJlY29yZHMuaXBzLnB1c2gocmVjb3JkKVxuICAgICAgcmVjb3Jkcy5yZWNvcmRzW3JlY29yZC5mYW1pbHldID0gZmFtaWx5UmVjb3Jkc1xuICAgIH1cblxuICAgIHRoaXMuI3JlY29yZHMuc2V0KG9yaWdpbi5ob3N0bmFtZSwgcmVjb3JkcylcbiAgfVxuXG4gIGdldEhhbmRsZXIgKG1ldGEsIG9wdHMpIHtcbiAgICByZXR1cm4gbmV3IEROU0Rpc3BhdGNoSGFuZGxlcih0aGlzLCBtZXRhLCBvcHRzKVxuICB9XG59XG5cbmNsYXNzIEROU0Rpc3BhdGNoSGFuZGxlciBleHRlbmRzIERlY29yYXRvckhhbmRsZXIge1xuICAjc3RhdGUgPSBudWxsXG4gICNvcHRzID0gbnVsbFxuICAjZGlzcGF0Y2ggPSBudWxsXG4gICNoYW5kbGVyID0gbnVsbFxuICAjb3JpZ2luID0gbnVsbFxuXG4gIGNvbnN0cnVjdG9yIChzdGF0ZSwgeyBvcmlnaW4sIGhhbmRsZXIsIGRpc3BhdGNoIH0sIG9wdHMpIHtcbiAgICBzdXBlcihoYW5kbGVyKVxuICAgIHRoaXMuI29yaWdpbiA9IG9yaWdpblxuICAgIHRoaXMuI2hhbmRsZXIgPSBoYW5kbGVyXG4gICAgdGhpcy4jb3B0cyA9IHsgLi4ub3B0cyB9XG4gICAgdGhpcy4jc3RhdGUgPSBzdGF0ZVxuICAgIHRoaXMuI2Rpc3BhdGNoID0gZGlzcGF0Y2hcbiAgfVxuXG4gIG9uRXJyb3IgKGVycikge1xuICAgIHN3aXRjaCAoZXJyLmNvZGUpIHtcbiAgICAgIGNhc2UgJ0VUSU1FRE9VVCc6XG4gICAgICBjYXNlICdFQ09OTlJFRlVTRUQnOiB7XG4gICAgICAgIGlmICh0aGlzLiNzdGF0ZS5kdWFsU3RhY2spIHtcbiAgICAgICAgICAvLyBXZSBkZWxldGUgdGhlIHJlY29yZCBhbmQgcmV0cnlcbiAgICAgICAgICB0aGlzLiNzdGF0ZS5ydW5Mb29rdXAodGhpcy4jb3JpZ2luLCB0aGlzLiNvcHRzLCAoZXJyLCBuZXdPcmlnaW4pID0+IHtcbiAgICAgICAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuI2hhbmRsZXIub25FcnJvcihlcnIpXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IGRpc3BhdGNoT3B0cyA9IHtcbiAgICAgICAgICAgICAgLi4udGhpcy4jb3B0cyxcbiAgICAgICAgICAgICAgb3JpZ2luOiBuZXdPcmlnaW5cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy4jZGlzcGF0Y2goZGlzcGF0Y2hPcHRzLCB0aGlzKVxuICAgICAgICAgIH0pXG5cbiAgICAgICAgICAvLyBpZiBkdWFsLXN0YWNrIGRpc2FibGVkLCB3ZSBlcnJvciBvdXRcbiAgICAgICAgICByZXR1cm5cbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuI2hhbmRsZXIub25FcnJvcihlcnIpXG4gICAgICAgIHJldHVyblxuICAgICAgfVxuICAgICAgY2FzZSAnRU5PVEZPVU5EJzpcbiAgICAgICAgdGhpcy4jc3RhdGUuZGVsZXRlUmVjb3JkKHRoaXMuI29yaWdpbilcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1mYWxsdGhyb3VnaFxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgdGhpcy4jaGFuZGxlci5vbkVycm9yKGVycilcbiAgICAgICAgYnJlYWtcbiAgICB9XG4gIH1cbn1cblxubW9kdWxlLmV4cG9ydHMgPSBpbnRlcmNlcHRvck9wdHMgPT4ge1xuICBpZiAoXG4gICAgaW50ZXJjZXB0b3JPcHRzPy5tYXhUVEwgIT0gbnVsbCAmJlxuICAgICh0eXBlb2YgaW50ZXJjZXB0b3JPcHRzPy5tYXhUVEwgIT09ICdudW1iZXInIHx8IGludGVyY2VwdG9yT3B0cz8ubWF4VFRMIDwgMClcbiAgKSB7XG4gICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudEVycm9yKCdJbnZhbGlkIG1heFRUTC4gTXVzdCBiZSBhIHBvc2l0aXZlIG51bWJlcicpXG4gIH1cblxuICBpZiAoXG4gICAgaW50ZXJjZXB0b3JPcHRzPy5tYXhJdGVtcyAhPSBudWxsICYmXG4gICAgKHR5cGVvZiBpbnRlcmNlcHRvck9wdHM/Lm1heEl0ZW1zICE9PSAnbnVtYmVyJyB8fFxuICAgICAgaW50ZXJjZXB0b3JPcHRzPy5tYXhJdGVtcyA8IDEpXG4gICkge1xuICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRFcnJvcihcbiAgICAgICdJbnZhbGlkIG1heEl0ZW1zLiBNdXN0IGJlIGEgcG9zaXRpdmUgbnVtYmVyIGFuZCBncmVhdGVyIHRoYW4gemVybydcbiAgICApXG4gIH1cblxuICBpZiAoXG4gICAgaW50ZXJjZXB0b3JPcHRzPy5hZmZpbml0eSAhPSBudWxsICYmXG4gICAgaW50ZXJjZXB0b3JPcHRzPy5hZmZpbml0eSAhPT0gNCAmJlxuICAgIGludGVyY2VwdG9yT3B0cz8uYWZmaW5pdHkgIT09IDZcbiAgKSB7XG4gICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudEVycm9yKCdJbnZhbGlkIGFmZmluaXR5LiBNdXN0IGJlIGVpdGhlciA0IG9yIDYnKVxuICB9XG5cbiAgaWYgKFxuICAgIGludGVyY2VwdG9yT3B0cz8uZHVhbFN0YWNrICE9IG51bGwgJiZcbiAgICB0eXBlb2YgaW50ZXJjZXB0b3JPcHRzPy5kdWFsU3RhY2sgIT09ICdib29sZWFuJ1xuICApIHtcbiAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50RXJyb3IoJ0ludmFsaWQgZHVhbFN0YWNrLiBNdXN0IGJlIGEgYm9vbGVhbicpXG4gIH1cblxuICBpZiAoXG4gICAgaW50ZXJjZXB0b3JPcHRzPy5sb29rdXAgIT0gbnVsbCAmJlxuICAgIHR5cGVvZiBpbnRlcmNlcHRvck9wdHM/Lmxvb2t1cCAhPT0gJ2Z1bmN0aW9uJ1xuICApIHtcbiAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50RXJyb3IoJ0ludmFsaWQgbG9va3VwLiBNdXN0IGJlIGEgZnVuY3Rpb24nKVxuICB9XG5cbiAgaWYgKFxuICAgIGludGVyY2VwdG9yT3B0cz8ucGljayAhPSBudWxsICYmXG4gICAgdHlwZW9mIGludGVyY2VwdG9yT3B0cz8ucGljayAhPT0gJ2Z1bmN0aW9uJ1xuICApIHtcbiAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50RXJyb3IoJ0ludmFsaWQgcGljay4gTXVzdCBiZSBhIGZ1bmN0aW9uJylcbiAgfVxuXG4gIGNvbnN0IGR1YWxTdGFjayA9IGludGVyY2VwdG9yT3B0cz8uZHVhbFN0YWNrID8/IHRydWVcbiAgbGV0IGFmZmluaXR5XG4gIGlmIChkdWFsU3RhY2spIHtcbiAgICBhZmZpbml0eSA9IGludGVyY2VwdG9yT3B0cz8uYWZmaW5pdHkgPz8gbnVsbFxuICB9IGVsc2Uge1xuICAgIGFmZmluaXR5ID0gaW50ZXJjZXB0b3JPcHRzPy5hZmZpbml0eSA/PyA0XG4gIH1cblxuICBjb25zdCBvcHRzID0ge1xuICAgIG1heFRUTDogaW50ZXJjZXB0b3JPcHRzPy5tYXhUVEwgPz8gMTBlMywgLy8gRXhwcmVzc2VkIGluIG1zXG4gICAgbG9va3VwOiBpbnRlcmNlcHRvck9wdHM/Lmxvb2t1cCA/PyBudWxsLFxuICAgIHBpY2s6IGludGVyY2VwdG9yT3B0cz8ucGljayA/PyBudWxsLFxuICAgIGR1YWxTdGFjayxcbiAgICBhZmZpbml0eSxcbiAgICBtYXhJdGVtczogaW50ZXJjZXB0b3JPcHRzPy5tYXhJdGVtcyA/PyBJbmZpbml0eVxuICB9XG5cbiAgY29uc3QgaW5zdGFuY2UgPSBuZXcgRE5TSW5zdGFuY2Uob3B0cylcblxuICByZXR1cm4gZGlzcGF0Y2ggPT4ge1xuICAgIHJldHVybiBmdW5jdGlvbiBkbnNJbnRlcmNlcHRvciAob3JpZ0Rpc3BhdGNoT3B0cywgaGFuZGxlcikge1xuICAgICAgY29uc3Qgb3JpZ2luID1cbiAgICAgICAgb3JpZ0Rpc3BhdGNoT3B0cy5vcmlnaW4uY29uc3RydWN0b3IgPT09IFVSTFxuICAgICAgICAgID8gb3JpZ0Rpc3BhdGNoT3B0cy5vcmlnaW5cbiAgICAgICAgICA6IG5ldyBVUkwob3JpZ0Rpc3BhdGNoT3B0cy5vcmlnaW4pXG5cbiAgICAgIGlmIChpc0lQKG9yaWdpbi5ob3N0bmFtZSkgIT09IDApIHtcbiAgICAgICAgcmV0dXJuIGRpc3BhdGNoKG9yaWdEaXNwYXRjaE9wdHMsIGhhbmRsZXIpXG4gICAgICB9XG5cbiAgICAgIGluc3RhbmNlLnJ1bkxvb2t1cChvcmlnaW4sIG9yaWdEaXNwYXRjaE9wdHMsIChlcnIsIG5ld09yaWdpbikgPT4ge1xuICAgICAgICBpZiAoZXJyKSB7XG4gICAgICAgICAgcmV0dXJuIGhhbmRsZXIub25FcnJvcihlcnIpXG4gICAgICAgIH1cblxuICAgICAgICBsZXQgZGlzcGF0Y2hPcHRzID0gbnVsbFxuICAgICAgICBkaXNwYXRjaE9wdHMgPSB7XG4gICAgICAgICAgLi4ub3JpZ0Rpc3BhdGNoT3B0cyxcbiAgICAgICAgICBzZXJ2ZXJuYW1lOiBvcmlnaW4uaG9zdG5hbWUsIC8vIEZvciBTTkkgb24gVExTXG4gICAgICAgICAgb3JpZ2luOiBuZXdPcmlnaW4sXG4gICAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICAgaG9zdDogb3JpZ2luLmhvc3RuYW1lLFxuICAgICAgICAgICAgLi4ub3JpZ0Rpc3BhdGNoT3B0cy5oZWFkZXJzXG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgZGlzcGF0Y2goXG4gICAgICAgICAgZGlzcGF0Y2hPcHRzLFxuICAgICAgICAgIGluc3RhbmNlLmdldEhhbmRsZXIoeyBvcmlnaW4sIGRpc3BhdGNoLCBoYW5kbGVyIH0sIG9yaWdEaXNwYXRjaE9wdHMpXG4gICAgICAgIClcbiAgICAgIH0pXG5cbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuICB9XG59XG4iLCAiLy8gaHR0cHM6Ly9naXRodWIuY29tL0V0aGFuLUFycm93b29kL3VuZGljaS1mZXRjaFxuXG4ndXNlIHN0cmljdCdcblxuY29uc3QgeyBrQ29uc3RydWN0IH0gPSByZXF1aXJlKCcuLi8uLi9jb3JlL3N5bWJvbHMnKVxuY29uc3QgeyBrRW51bWVyYWJsZVByb3BlcnR5IH0gPSByZXF1aXJlKCcuLi8uLi9jb3JlL3V0aWwnKVxuY29uc3Qge1xuICBpdGVyYXRvck1peGluLFxuICBpc1ZhbGlkSGVhZGVyTmFtZSxcbiAgaXNWYWxpZEhlYWRlclZhbHVlXG59ID0gcmVxdWlyZSgnLi91dGlsJylcbmNvbnN0IHsgd2ViaWRsIH0gPSByZXF1aXJlKCcuL3dlYmlkbCcpXG5jb25zdCBhc3NlcnQgPSByZXF1aXJlKCdub2RlOmFzc2VydCcpXG5jb25zdCB1dGlsID0gcmVxdWlyZSgnbm9kZTp1dGlsJylcblxuY29uc3Qga0hlYWRlcnNNYXAgPSBTeW1ib2woJ2hlYWRlcnMgbWFwJylcbmNvbnN0IGtIZWFkZXJzU29ydGVkTWFwID0gU3ltYm9sKCdoZWFkZXJzIG1hcCBzb3J0ZWQnKVxuXG4vKipcbiAqIEBwYXJhbSB7bnVtYmVyfSBjb2RlXG4gKi9cbmZ1bmN0aW9uIGlzSFRUUFdoaXRlU3BhY2VDaGFyQ29kZSAoY29kZSkge1xuICByZXR1cm4gY29kZSA9PT0gMHgwMGEgfHwgY29kZSA9PT0gMHgwMGQgfHwgY29kZSA9PT0gMHgwMDkgfHwgY29kZSA9PT0gMHgwMjBcbn1cblxuLyoqXG4gKiBAc2VlIGh0dHBzOi8vZmV0Y2guc3BlYy53aGF0d2cub3JnLyNjb25jZXB0LWhlYWRlci12YWx1ZS1ub3JtYWxpemVcbiAqIEBwYXJhbSB7c3RyaW5nfSBwb3RlbnRpYWxWYWx1ZVxuICovXG5mdW5jdGlvbiBoZWFkZXJWYWx1ZU5vcm1hbGl6ZSAocG90ZW50aWFsVmFsdWUpIHtcbiAgLy8gIFRvIG5vcm1hbGl6ZSBhIGJ5dGUgc2VxdWVuY2UgcG90ZW50aWFsVmFsdWUsIHJlbW92ZVxuICAvLyAgYW55IGxlYWRpbmcgYW5kIHRyYWlsaW5nIEhUVFAgd2hpdGVzcGFjZSBieXRlcyBmcm9tXG4gIC8vICBwb3RlbnRpYWxWYWx1ZS5cbiAgbGV0IGkgPSAwOyBsZXQgaiA9IHBvdGVudGlhbFZhbHVlLmxlbmd0aFxuXG4gIHdoaWxlIChqID4gaSAmJiBpc0hUVFBXaGl0ZVNwYWNlQ2hhckNvZGUocG90ZW50aWFsVmFsdWUuY2hhckNvZGVBdChqIC0gMSkpKSAtLWpcbiAgd2hpbGUgKGogPiBpICYmIGlzSFRUUFdoaXRlU3BhY2VDaGFyQ29kZShwb3RlbnRpYWxWYWx1ZS5jaGFyQ29kZUF0KGkpKSkgKytpXG5cbiAgcmV0dXJuIGkgPT09IDAgJiYgaiA9PT0gcG90ZW50aWFsVmFsdWUubGVuZ3RoID8gcG90ZW50aWFsVmFsdWUgOiBwb3RlbnRpYWxWYWx1ZS5zdWJzdHJpbmcoaSwgailcbn1cblxuZnVuY3Rpb24gZmlsbCAoaGVhZGVycywgb2JqZWN0KSB7XG4gIC8vIFRvIGZpbGwgYSBIZWFkZXJzIG9iamVjdCBoZWFkZXJzIHdpdGggYSBnaXZlbiBvYmplY3Qgb2JqZWN0LCBydW4gdGhlc2Ugc3RlcHM6XG5cbiAgLy8gMS4gSWYgb2JqZWN0IGlzIGEgc2VxdWVuY2UsIHRoZW4gZm9yIGVhY2ggaGVhZGVyIGluIG9iamVjdDpcbiAgLy8gTm90ZTogd2ViaWRsIGNvbnZlcnNpb24gdG8gYXJyYXkgaGFzIGFscmVhZHkgYmVlbiBkb25lLlxuICBpZiAoQXJyYXkuaXNBcnJheShvYmplY3QpKSB7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBvYmplY3QubGVuZ3RoOyArK2kpIHtcbiAgICAgIGNvbnN0IGhlYWRlciA9IG9iamVjdFtpXVxuICAgICAgLy8gMS4gSWYgaGVhZGVyIGRvZXMgbm90IGNvbnRhaW4gZXhhY3RseSB0d28gaXRlbXMsIHRoZW4gdGhyb3cgYSBUeXBlRXJyb3IuXG4gICAgICBpZiAoaGVhZGVyLmxlbmd0aCAhPT0gMikge1xuICAgICAgICB0aHJvdyB3ZWJpZGwuZXJyb3JzLmV4Y2VwdGlvbih7XG4gICAgICAgICAgaGVhZGVyOiAnSGVhZGVycyBjb25zdHJ1Y3RvcicsXG4gICAgICAgICAgbWVzc2FnZTogYGV4cGVjdGVkIG5hbWUvdmFsdWUgcGFpciB0byBiZSBsZW5ndGggMiwgZm91bmQgJHtoZWFkZXIubGVuZ3RofS5gXG4gICAgICAgIH0pXG4gICAgICB9XG5cbiAgICAgIC8vIDIuIEFwcGVuZCAoaGVhZGVyXHUyMDE5cyBmaXJzdCBpdGVtLCBoZWFkZXJcdTIwMTlzIHNlY29uZCBpdGVtKSB0byBoZWFkZXJzLlxuICAgICAgYXBwZW5kSGVhZGVyKGhlYWRlcnMsIGhlYWRlclswXSwgaGVhZGVyWzFdKVxuICAgIH1cbiAgfSBlbHNlIGlmICh0eXBlb2Ygb2JqZWN0ID09PSAnb2JqZWN0JyAmJiBvYmplY3QgIT09IG51bGwpIHtcbiAgICAvLyBOb3RlOiBudWxsIHNob3VsZCB0aHJvd1xuXG4gICAgLy8gMi4gT3RoZXJ3aXNlLCBvYmplY3QgaXMgYSByZWNvcmQsIHRoZW4gZm9yIGVhY2gga2V5IFx1MjE5MiB2YWx1ZSBpbiBvYmplY3QsXG4gICAgLy8gICAgYXBwZW5kIChrZXksIHZhbHVlKSB0byBoZWFkZXJzXG4gICAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKG9iamVjdClcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGtleXMubGVuZ3RoOyArK2kpIHtcbiAgICAgIGFwcGVuZEhlYWRlcihoZWFkZXJzLCBrZXlzW2ldLCBvYmplY3Rba2V5c1tpXV0pXG4gICAgfVxuICB9IGVsc2Uge1xuICAgIHRocm93IHdlYmlkbC5lcnJvcnMuY29udmVyc2lvbkZhaWxlZCh7XG4gICAgICBwcmVmaXg6ICdIZWFkZXJzIGNvbnN0cnVjdG9yJyxcbiAgICAgIGFyZ3VtZW50OiAnQXJndW1lbnQgMScsXG4gICAgICB0eXBlczogWydzZXF1ZW5jZTxzZXF1ZW5jZTxCeXRlU3RyaW5nPj4nLCAncmVjb3JkPEJ5dGVTdHJpbmcsIEJ5dGVTdHJpbmc+J11cbiAgICB9KVxuICB9XG59XG5cbi8qKlxuICogQHNlZSBodHRwczovL2ZldGNoLnNwZWMud2hhdHdnLm9yZy8jY29uY2VwdC1oZWFkZXJzLWFwcGVuZFxuICovXG5mdW5jdGlvbiBhcHBlbmRIZWFkZXIgKGhlYWRlcnMsIG5hbWUsIHZhbHVlKSB7XG4gIC8vIDEuIE5vcm1hbGl6ZSB2YWx1ZS5cbiAgdmFsdWUgPSBoZWFkZXJWYWx1ZU5vcm1hbGl6ZSh2YWx1ZSlcblxuICAvLyAyLiBJZiBuYW1lIGlzIG5vdCBhIGhlYWRlciBuYW1lIG9yIHZhbHVlIGlzIG5vdCBhXG4gIC8vICAgIGhlYWRlciB2YWx1ZSwgdGhlbiB0aHJvdyBhIFR5cGVFcnJvci5cbiAgaWYgKCFpc1ZhbGlkSGVhZGVyTmFtZShuYW1lKSkge1xuICAgIHRocm93IHdlYmlkbC5lcnJvcnMuaW52YWxpZEFyZ3VtZW50KHtcbiAgICAgIHByZWZpeDogJ0hlYWRlcnMuYXBwZW5kJyxcbiAgICAgIHZhbHVlOiBuYW1lLFxuICAgICAgdHlwZTogJ2hlYWRlciBuYW1lJ1xuICAgIH0pXG4gIH0gZWxzZSBpZiAoIWlzVmFsaWRIZWFkZXJWYWx1ZSh2YWx1ZSkpIHtcbiAgICB0aHJvdyB3ZWJpZGwuZXJyb3JzLmludmFsaWRBcmd1bWVudCh7XG4gICAgICBwcmVmaXg6ICdIZWFkZXJzLmFwcGVuZCcsXG4gICAgICB2YWx1ZSxcbiAgICAgIHR5cGU6ICdoZWFkZXIgdmFsdWUnXG4gICAgfSlcbiAgfVxuXG4gIC8vIDMuIElmIGhlYWRlcnNcdTIwMTlzIGd1YXJkIGlzIFwiaW1tdXRhYmxlXCIsIHRoZW4gdGhyb3cgYSBUeXBlRXJyb3IuXG4gIC8vIDQuIE90aGVyd2lzZSwgaWYgaGVhZGVyc1x1MjAxOXMgZ3VhcmQgaXMgXCJyZXF1ZXN0XCIgYW5kIG5hbWUgaXMgYVxuICAvLyAgICBmb3JiaWRkZW4gaGVhZGVyIG5hbWUsIHJldHVybi5cbiAgLy8gNS4gT3RoZXJ3aXNlLCBpZiBoZWFkZXJzXHUyMDE5cyBndWFyZCBpcyBcInJlcXVlc3Qtbm8tY29yc1wiOlxuICAvLyAgICBUT0RPXG4gIC8vIE5vdGU6IHVuZGljaSBkb2VzIG5vdCBpbXBsZW1lbnQgZm9yYmlkZGVuIGhlYWRlciBuYW1lc1xuICBpZiAoZ2V0SGVhZGVyc0d1YXJkKGhlYWRlcnMpID09PSAnaW1tdXRhYmxlJykge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ2ltbXV0YWJsZScpXG4gIH1cblxuICAvLyA2LiBPdGhlcndpc2UsIGlmIGhlYWRlcnNcdTIwMTlzIGd1YXJkIGlzIFwicmVzcG9uc2VcIiBhbmQgbmFtZSBpcyBhXG4gIC8vICAgIGZvcmJpZGRlbiByZXNwb25zZS1oZWFkZXIgbmFtZSwgcmV0dXJuLlxuXG4gIC8vIDcuIEFwcGVuZCAobmFtZSwgdmFsdWUpIHRvIGhlYWRlcnNcdTIwMTlzIGhlYWRlciBsaXN0LlxuICByZXR1cm4gZ2V0SGVhZGVyc0xpc3QoaGVhZGVycykuYXBwZW5kKG5hbWUsIHZhbHVlLCBmYWxzZSlcblxuICAvLyA4LiBJZiBoZWFkZXJzXHUyMDE5cyBndWFyZCBpcyBcInJlcXVlc3Qtbm8tY29yc1wiLCB0aGVuIHJlbW92ZVxuICAvLyAgICBwcml2aWxlZ2VkIG5vLUNPUlMgcmVxdWVzdCBoZWFkZXJzIGZyb20gaGVhZGVyc1xufVxuXG5mdW5jdGlvbiBjb21wYXJlSGVhZGVyTmFtZSAoYSwgYikge1xuICByZXR1cm4gYVswXSA8IGJbMF0gPyAtMSA6IDFcbn1cblxuY2xhc3MgSGVhZGVyc0xpc3Qge1xuICAvKiogQHR5cGUge1tzdHJpbmcsIHN0cmluZ11bXXxudWxsfSAqL1xuICBjb29raWVzID0gbnVsbFxuXG4gIGNvbnN0cnVjdG9yIChpbml0KSB7XG4gICAgaWYgKGluaXQgaW5zdGFuY2VvZiBIZWFkZXJzTGlzdCkge1xuICAgICAgdGhpc1trSGVhZGVyc01hcF0gPSBuZXcgTWFwKGluaXRba0hlYWRlcnNNYXBdKVxuICAgICAgdGhpc1trSGVhZGVyc1NvcnRlZE1hcF0gPSBpbml0W2tIZWFkZXJzU29ydGVkTWFwXVxuICAgICAgdGhpcy5jb29raWVzID0gaW5pdC5jb29raWVzID09PSBudWxsID8gbnVsbCA6IFsuLi5pbml0LmNvb2tpZXNdXG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXNba0hlYWRlcnNNYXBdID0gbmV3IE1hcChpbml0KVxuICAgICAgdGhpc1trSGVhZGVyc1NvcnRlZE1hcF0gPSBudWxsXG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEBzZWUgaHR0cHM6Ly9mZXRjaC5zcGVjLndoYXR3Zy5vcmcvI2hlYWRlci1saXN0LWNvbnRhaW5zXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBuYW1lXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gaXNMb3dlckNhc2VcbiAgICovXG4gIGNvbnRhaW5zIChuYW1lLCBpc0xvd2VyQ2FzZSkge1xuICAgIC8vIEEgaGVhZGVyIGxpc3QgbGlzdCBjb250YWlucyBhIGhlYWRlciBuYW1lIG5hbWUgaWYgbGlzdFxuICAgIC8vIGNvbnRhaW5zIGEgaGVhZGVyIHdob3NlIG5hbWUgaXMgYSBieXRlLWNhc2UtaW5zZW5zaXRpdmVcbiAgICAvLyBtYXRjaCBmb3IgbmFtZS5cblxuICAgIHJldHVybiB0aGlzW2tIZWFkZXJzTWFwXS5oYXMoaXNMb3dlckNhc2UgPyBuYW1lIDogbmFtZS50b0xvd2VyQ2FzZSgpKVxuICB9XG5cbiAgY2xlYXIgKCkge1xuICAgIHRoaXNba0hlYWRlcnNNYXBdLmNsZWFyKClcbiAgICB0aGlzW2tIZWFkZXJzU29ydGVkTWFwXSA9IG51bGxcbiAgICB0aGlzLmNvb2tpZXMgPSBudWxsXG4gIH1cblxuICAvKipcbiAgICogQHNlZSBodHRwczovL2ZldGNoLnNwZWMud2hhdHdnLm9yZy8jY29uY2VwdC1oZWFkZXItbGlzdC1hcHBlbmRcbiAgICogQHBhcmFtIHtzdHJpbmd9IG5hbWVcbiAgICogQHBhcmFtIHtzdHJpbmd9IHZhbHVlXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gaXNMb3dlckNhc2VcbiAgICovXG4gIGFwcGVuZCAobmFtZSwgdmFsdWUsIGlzTG93ZXJDYXNlKSB7XG4gICAgdGhpc1trSGVhZGVyc1NvcnRlZE1hcF0gPSBudWxsXG5cbiAgICAvLyAxLiBJZiBsaXN0IGNvbnRhaW5zIG5hbWUsIHRoZW4gc2V0IG5hbWUgdG8gdGhlIGZpcnN0IHN1Y2hcbiAgICAvLyAgICBoZWFkZXJcdTIwMTlzIG5hbWUuXG4gICAgY29uc3QgbG93ZXJjYXNlTmFtZSA9IGlzTG93ZXJDYXNlID8gbmFtZSA6IG5hbWUudG9Mb3dlckNhc2UoKVxuICAgIGNvbnN0IGV4aXN0cyA9IHRoaXNba0hlYWRlcnNNYXBdLmdldChsb3dlcmNhc2VOYW1lKVxuXG4gICAgLy8gMi4gQXBwZW5kIChuYW1lLCB2YWx1ZSkgdG8gbGlzdC5cbiAgICBpZiAoZXhpc3RzKSB7XG4gICAgICBjb25zdCBkZWxpbWl0ZXIgPSBsb3dlcmNhc2VOYW1lID09PSAnY29va2llJyA/ICc7ICcgOiAnLCAnXG4gICAgICB0aGlzW2tIZWFkZXJzTWFwXS5zZXQobG93ZXJjYXNlTmFtZSwge1xuICAgICAgICBuYW1lOiBleGlzdHMubmFtZSxcbiAgICAgICAgdmFsdWU6IGAke2V4aXN0cy52YWx1ZX0ke2RlbGltaXRlcn0ke3ZhbHVlfWBcbiAgICAgIH0pXG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXNba0hlYWRlcnNNYXBdLnNldChsb3dlcmNhc2VOYW1lLCB7IG5hbWUsIHZhbHVlIH0pXG4gICAgfVxuXG4gICAgaWYgKGxvd2VyY2FzZU5hbWUgPT09ICdzZXQtY29va2llJykge1xuICAgICAgKHRoaXMuY29va2llcyA/Pz0gW10pLnB1c2godmFsdWUpXG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEBzZWUgaHR0cHM6Ly9mZXRjaC5zcGVjLndoYXR3Zy5vcmcvI2NvbmNlcHQtaGVhZGVyLWxpc3Qtc2V0XG4gICAqIEBwYXJhbSB7c3RyaW5nfSBuYW1lXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB2YWx1ZVxuICAgKiBAcGFyYW0ge2Jvb2xlYW59IGlzTG93ZXJDYXNlXG4gICAqL1xuICBzZXQgKG5hbWUsIHZhbHVlLCBpc0xvd2VyQ2FzZSkge1xuICAgIHRoaXNba0hlYWRlcnNTb3J0ZWRNYXBdID0gbnVsbFxuICAgIGNvbnN0IGxvd2VyY2FzZU5hbWUgPSBpc0xvd2VyQ2FzZSA/IG5hbWUgOiBuYW1lLnRvTG93ZXJDYXNlKClcblxuICAgIGlmIChsb3dlcmNhc2VOYW1lID09PSAnc2V0LWNvb2tpZScpIHtcbiAgICAgIHRoaXMuY29va2llcyA9IFt2YWx1ZV1cbiAgICB9XG5cbiAgICAvLyAxLiBJZiBsaXN0IGNvbnRhaW5zIG5hbWUsIHRoZW4gc2V0IHRoZSB2YWx1ZSBvZlxuICAgIC8vICAgIHRoZSBmaXJzdCBzdWNoIGhlYWRlciB0byB2YWx1ZSBhbmQgcmVtb3ZlIHRoZVxuICAgIC8vICAgIG90aGVycy5cbiAgICAvLyAyLiBPdGhlcndpc2UsIGFwcGVuZCBoZWFkZXIgKG5hbWUsIHZhbHVlKSB0byBsaXN0LlxuICAgIHRoaXNba0hlYWRlcnNNYXBdLnNldChsb3dlcmNhc2VOYW1lLCB7IG5hbWUsIHZhbHVlIH0pXG4gIH1cblxuICAvKipcbiAgICogQHNlZSBodHRwczovL2ZldGNoLnNwZWMud2hhdHdnLm9yZy8jY29uY2VwdC1oZWFkZXItbGlzdC1kZWxldGVcbiAgICogQHBhcmFtIHtzdHJpbmd9IG5hbWVcbiAgICogQHBhcmFtIHtib29sZWFufSBpc0xvd2VyQ2FzZVxuICAgKi9cbiAgZGVsZXRlIChuYW1lLCBpc0xvd2VyQ2FzZSkge1xuICAgIHRoaXNba0hlYWRlcnNTb3J0ZWRNYXBdID0gbnVsbFxuICAgIGlmICghaXNMb3dlckNhc2UpIG5hbWUgPSBuYW1lLnRvTG93ZXJDYXNlKClcblxuICAgIGlmIChuYW1lID09PSAnc2V0LWNvb2tpZScpIHtcbiAgICAgIHRoaXMuY29va2llcyA9IG51bGxcbiAgICB9XG5cbiAgICB0aGlzW2tIZWFkZXJzTWFwXS5kZWxldGUobmFtZSlcbiAgfVxuXG4gIC8qKlxuICAgKiBAc2VlIGh0dHBzOi8vZmV0Y2guc3BlYy53aGF0d2cub3JnLyNjb25jZXB0LWhlYWRlci1saXN0LWdldFxuICAgKiBAcGFyYW0ge3N0cmluZ30gbmFtZVxuICAgKiBAcGFyYW0ge2Jvb2xlYW59IGlzTG93ZXJDYXNlXG4gICAqIEByZXR1cm5zIHtzdHJpbmcgfCBudWxsfVxuICAgKi9cbiAgZ2V0IChuYW1lLCBpc0xvd2VyQ2FzZSkge1xuICAgIC8vIDEuIElmIGxpc3QgZG9lcyBub3QgY29udGFpbiBuYW1lLCB0aGVuIHJldHVybiBudWxsLlxuICAgIC8vIDIuIFJldHVybiB0aGUgdmFsdWVzIG9mIGFsbCBoZWFkZXJzIGluIGxpc3Qgd2hvc2UgbmFtZVxuICAgIC8vICAgIGlzIGEgYnl0ZS1jYXNlLWluc2Vuc2l0aXZlIG1hdGNoIGZvciBuYW1lLFxuICAgIC8vICAgIHNlcGFyYXRlZCBmcm9tIGVhY2ggb3RoZXIgYnkgMHgyQyAweDIwLCBpbiBvcmRlci5cbiAgICByZXR1cm4gdGhpc1trSGVhZGVyc01hcF0uZ2V0KGlzTG93ZXJDYXNlID8gbmFtZSA6IG5hbWUudG9Mb3dlckNhc2UoKSk/LnZhbHVlID8/IG51bGxcbiAgfVxuXG4gICogW1N5bWJvbC5pdGVyYXRvcl0gKCkge1xuICAgIC8vIHVzZSB0aGUgbG93ZXJjYXNlZCBuYW1lXG4gICAgZm9yIChjb25zdCB7IDA6IG5hbWUsIDE6IHsgdmFsdWUgfSB9IG9mIHRoaXNba0hlYWRlcnNNYXBdKSB7XG4gICAgICB5aWVsZCBbbmFtZSwgdmFsdWVdXG4gICAgfVxuICB9XG5cbiAgZ2V0IGVudHJpZXMgKCkge1xuICAgIGNvbnN0IGhlYWRlcnMgPSB7fVxuXG4gICAgaWYgKHRoaXNba0hlYWRlcnNNYXBdLnNpemUgIT09IDApIHtcbiAgICAgIGZvciAoY29uc3QgeyBuYW1lLCB2YWx1ZSB9IG9mIHRoaXNba0hlYWRlcnNNYXBdLnZhbHVlcygpKSB7XG4gICAgICAgIGhlYWRlcnNbbmFtZV0gPSB2YWx1ZVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBoZWFkZXJzXG4gIH1cblxuICByYXdWYWx1ZXMgKCkge1xuICAgIHJldHVybiB0aGlzW2tIZWFkZXJzTWFwXS52YWx1ZXMoKVxuICB9XG5cbiAgZ2V0IGVudHJpZXNMaXN0ICgpIHtcbiAgICBjb25zdCBoZWFkZXJzID0gW11cblxuICAgIGlmICh0aGlzW2tIZWFkZXJzTWFwXS5zaXplICE9PSAwKSB7XG4gICAgICBmb3IgKGNvbnN0IHsgMDogbG93ZXJOYW1lLCAxOiB7IG5hbWUsIHZhbHVlIH0gfSBvZiB0aGlzW2tIZWFkZXJzTWFwXSkge1xuICAgICAgICBpZiAobG93ZXJOYW1lID09PSAnc2V0LWNvb2tpZScpIHtcbiAgICAgICAgICBmb3IgKGNvbnN0IGNvb2tpZSBvZiB0aGlzLmNvb2tpZXMpIHtcbiAgICAgICAgICAgIGhlYWRlcnMucHVzaChbbmFtZSwgY29va2llXSlcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaGVhZGVycy5wdXNoKFtuYW1lLCB2YWx1ZV0pXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gaGVhZGVyc1xuICB9XG5cbiAgLy8gaHR0cHM6Ly9mZXRjaC5zcGVjLndoYXR3Zy5vcmcvI2NvbnZlcnQtaGVhZGVyLW5hbWVzLXRvLWEtc29ydGVkLWxvd2VyY2FzZS1zZXRcbiAgdG9Tb3J0ZWRBcnJheSAoKSB7XG4gICAgY29uc3Qgc2l6ZSA9IHRoaXNba0hlYWRlcnNNYXBdLnNpemVcbiAgICBjb25zdCBhcnJheSA9IG5ldyBBcnJheShzaXplKVxuICAgIC8vIEluIG1vc3QgY2FzZXMsIHlvdSB3aWxsIHVzZSB0aGUgZmFzdC1wYXRoLlxuICAgIC8vIGZhc3QtcGF0aDogVXNlIGJpbmFyeSBpbnNlcnRpb24gc29ydCBmb3Igc21hbGwgYXJyYXlzLlxuICAgIGlmIChzaXplIDw9IDMyKSB7XG4gICAgICBpZiAoc2l6ZSA9PT0gMCkge1xuICAgICAgICAvLyBJZiBlbXB0eSwgaXQgaXMgYW4gZW1wdHkgYXJyYXkuIFRvIGF2b2lkIHRoZSBmaXJzdCBpbmRleCBhc3NpZ25tZW50LlxuICAgICAgICByZXR1cm4gYXJyYXlcbiAgICAgIH1cbiAgICAgIC8vIEltcHJvdmUgcGVyZm9ybWFuY2UgYnkgdW5yb2xsaW5nIGxvb3AgYW5kIGF2b2lkaW5nIGRvdWJsZS1sb29wLlxuICAgICAgLy8gRG91YmxlLWxvb3AtbGVzcyB2ZXJzaW9uIG9mIHRoZSBiaW5hcnkgaW5zZXJ0aW9uIHNvcnQuXG4gICAgICBjb25zdCBpdGVyYXRvciA9IHRoaXNba0hlYWRlcnNNYXBdW1N5bWJvbC5pdGVyYXRvcl0oKVxuICAgICAgY29uc3QgZmlyc3RWYWx1ZSA9IGl0ZXJhdG9yLm5leHQoKS52YWx1ZVxuICAgICAgLy8gc2V0IFtuYW1lLCB2YWx1ZV0gdG8gZmlyc3QgaW5kZXguXG4gICAgICBhcnJheVswXSA9IFtmaXJzdFZhbHVlWzBdLCBmaXJzdFZhbHVlWzFdLnZhbHVlXVxuICAgICAgLy8gaHR0cHM6Ly9mZXRjaC5zcGVjLndoYXR3Zy5vcmcvI2NvbmNlcHQtaGVhZGVyLWxpc3Qtc29ydC1hbmQtY29tYmluZVxuICAgICAgLy8gMy4yLjIuIEFzc2VydDogdmFsdWUgaXMgbm9uLW51bGwuXG4gICAgICBhc3NlcnQoZmlyc3RWYWx1ZVsxXS52YWx1ZSAhPT0gbnVsbClcbiAgICAgIGZvciAoXG4gICAgICAgIGxldCBpID0gMSwgaiA9IDAsIHJpZ2h0ID0gMCwgbGVmdCA9IDAsIHBpdm90ID0gMCwgeCwgdmFsdWU7XG4gICAgICAgIGkgPCBzaXplO1xuICAgICAgICArK2lcbiAgICAgICkge1xuICAgICAgICAvLyBnZXQgbmV4dCB2YWx1ZVxuICAgICAgICB2YWx1ZSA9IGl0ZXJhdG9yLm5leHQoKS52YWx1ZVxuICAgICAgICAvLyBzZXQgW25hbWUsIHZhbHVlXSB0byBjdXJyZW50IGluZGV4LlxuICAgICAgICB4ID0gYXJyYXlbaV0gPSBbdmFsdWVbMF0sIHZhbHVlWzFdLnZhbHVlXVxuICAgICAgICAvLyBodHRwczovL2ZldGNoLnNwZWMud2hhdHdnLm9yZy8jY29uY2VwdC1oZWFkZXItbGlzdC1zb3J0LWFuZC1jb21iaW5lXG4gICAgICAgIC8vIDMuMi4yLiBBc3NlcnQ6IHZhbHVlIGlzIG5vbi1udWxsLlxuICAgICAgICBhc3NlcnQoeFsxXSAhPT0gbnVsbClcbiAgICAgICAgbGVmdCA9IDBcbiAgICAgICAgcmlnaHQgPSBpXG4gICAgICAgIC8vIGJpbmFyeSBzZWFyY2hcbiAgICAgICAgd2hpbGUgKGxlZnQgPCByaWdodCkge1xuICAgICAgICAgIC8vIG1pZGRsZSBpbmRleFxuICAgICAgICAgIHBpdm90ID0gbGVmdCArICgocmlnaHQgLSBsZWZ0KSA+PiAxKVxuICAgICAgICAgIC8vIGNvbXBhcmUgaGVhZGVyIG5hbWVcbiAgICAgICAgICBpZiAoYXJyYXlbcGl2b3RdWzBdIDw9IHhbMF0pIHtcbiAgICAgICAgICAgIGxlZnQgPSBwaXZvdCArIDFcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmlnaHQgPSBwaXZvdFxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoaSAhPT0gcGl2b3QpIHtcbiAgICAgICAgICBqID0gaVxuICAgICAgICAgIHdoaWxlIChqID4gbGVmdCkge1xuICAgICAgICAgICAgYXJyYXlbal0gPSBhcnJheVstLWpdXG4gICAgICAgICAgfVxuICAgICAgICAgIGFycmF5W2xlZnRdID0geFxuICAgICAgICB9XG4gICAgICB9XG4gICAgICAvKiBjOCBpZ25vcmUgbmV4dCA0ICovXG4gICAgICBpZiAoIWl0ZXJhdG9yLm5leHQoKS5kb25lKSB7XG4gICAgICAgIC8vIFRoaXMgaXMgZm9yIGRlYnVnZ2luZyBhbmQgd2lsbCBuZXZlciBiZSBjYWxsZWQuXG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ1VucmVhY2hhYmxlJylcbiAgICAgIH1cbiAgICAgIHJldHVybiBhcnJheVxuICAgIH0gZWxzZSB7XG4gICAgICAvLyBUaGlzIGNhc2Ugd291bGQgYmUgYSByYXJlIG9jY3VycmVuY2UuXG4gICAgICAvLyBzbG93LXBhdGg6IGZhbGxiYWNrXG4gICAgICBsZXQgaSA9IDBcbiAgICAgIGZvciAoY29uc3QgeyAwOiBuYW1lLCAxOiB7IHZhbHVlIH0gfSBvZiB0aGlzW2tIZWFkZXJzTWFwXSkge1xuICAgICAgICBhcnJheVtpKytdID0gW25hbWUsIHZhbHVlXVxuICAgICAgICAvLyBodHRwczovL2ZldGNoLnNwZWMud2hhdHdnLm9yZy8jY29uY2VwdC1oZWFkZXItbGlzdC1zb3J0LWFuZC1jb21iaW5lXG4gICAgICAgIC8vIDMuMi4yLiBBc3NlcnQ6IHZhbHVlIGlzIG5vbi1udWxsLlxuICAgICAgICBhc3NlcnQodmFsdWUgIT09IG51bGwpXG4gICAgICB9XG4gICAgICByZXR1cm4gYXJyYXkuc29ydChjb21wYXJlSGVhZGVyTmFtZSlcbiAgICB9XG4gIH1cbn1cblxuLy8gaHR0cHM6Ly9mZXRjaC5zcGVjLndoYXR3Zy5vcmcvI2hlYWRlcnMtY2xhc3NcbmNsYXNzIEhlYWRlcnMge1xuICAjZ3VhcmRcbiAgI2hlYWRlcnNMaXN0XG5cbiAgY29uc3RydWN0b3IgKGluaXQgPSB1bmRlZmluZWQpIHtcbiAgICB3ZWJpZGwudXRpbC5tYXJrQXNVbmNsb25lYWJsZSh0aGlzKVxuXG4gICAgaWYgKGluaXQgPT09IGtDb25zdHJ1Y3QpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIHRoaXMuI2hlYWRlcnNMaXN0ID0gbmV3IEhlYWRlcnNMaXN0KClcblxuICAgIC8vIFRoZSBuZXcgSGVhZGVycyhpbml0KSBjb25zdHJ1Y3RvciBzdGVwcyBhcmU6XG5cbiAgICAvLyAxLiBTZXQgdGhpc1x1MjAxOXMgZ3VhcmQgdG8gXCJub25lXCIuXG4gICAgdGhpcy4jZ3VhcmQgPSAnbm9uZSdcblxuICAgIC8vIDIuIElmIGluaXQgaXMgZ2l2ZW4sIHRoZW4gZmlsbCB0aGlzIHdpdGggaW5pdC5cbiAgICBpZiAoaW5pdCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBpbml0ID0gd2ViaWRsLmNvbnZlcnRlcnMuSGVhZGVyc0luaXQoaW5pdCwgJ0hlYWRlcnMgY29udHJ1Y3RvcicsICdpbml0JylcbiAgICAgIGZpbGwodGhpcywgaW5pdClcbiAgICB9XG4gIH1cblxuICAvLyBodHRwczovL2ZldGNoLnNwZWMud2hhdHdnLm9yZy8jZG9tLWhlYWRlcnMtYXBwZW5kXG4gIGFwcGVuZCAobmFtZSwgdmFsdWUpIHtcbiAgICB3ZWJpZGwuYnJhbmRDaGVjayh0aGlzLCBIZWFkZXJzKVxuXG4gICAgd2ViaWRsLmFyZ3VtZW50TGVuZ3RoQ2hlY2soYXJndW1lbnRzLCAyLCAnSGVhZGVycy5hcHBlbmQnKVxuXG4gICAgY29uc3QgcHJlZml4ID0gJ0hlYWRlcnMuYXBwZW5kJ1xuICAgIG5hbWUgPSB3ZWJpZGwuY29udmVydGVycy5CeXRlU3RyaW5nKG5hbWUsIHByZWZpeCwgJ25hbWUnKVxuICAgIHZhbHVlID0gd2ViaWRsLmNvbnZlcnRlcnMuQnl0ZVN0cmluZyh2YWx1ZSwgcHJlZml4LCAndmFsdWUnKVxuXG4gICAgcmV0dXJuIGFwcGVuZEhlYWRlcih0aGlzLCBuYW1lLCB2YWx1ZSlcbiAgfVxuXG4gIC8vIGh0dHBzOi8vZmV0Y2guc3BlYy53aGF0d2cub3JnLyNkb20taGVhZGVycy1kZWxldGVcbiAgZGVsZXRlIChuYW1lKSB7XG4gICAgd2ViaWRsLmJyYW5kQ2hlY2sodGhpcywgSGVhZGVycylcblxuICAgIHdlYmlkbC5hcmd1bWVudExlbmd0aENoZWNrKGFyZ3VtZW50cywgMSwgJ0hlYWRlcnMuZGVsZXRlJylcblxuICAgIGNvbnN0IHByZWZpeCA9ICdIZWFkZXJzLmRlbGV0ZSdcbiAgICBuYW1lID0gd2ViaWRsLmNvbnZlcnRlcnMuQnl0ZVN0cmluZyhuYW1lLCBwcmVmaXgsICduYW1lJylcblxuICAgIC8vIDEuIElmIG5hbWUgaXMgbm90IGEgaGVhZGVyIG5hbWUsIHRoZW4gdGhyb3cgYSBUeXBlRXJyb3IuXG4gICAgaWYgKCFpc1ZhbGlkSGVhZGVyTmFtZShuYW1lKSkge1xuICAgICAgdGhyb3cgd2ViaWRsLmVycm9ycy5pbnZhbGlkQXJndW1lbnQoe1xuICAgICAgICBwcmVmaXg6ICdIZWFkZXJzLmRlbGV0ZScsXG4gICAgICAgIHZhbHVlOiBuYW1lLFxuICAgICAgICB0eXBlOiAnaGVhZGVyIG5hbWUnXG4gICAgICB9KVxuICAgIH1cblxuICAgIC8vIDIuIElmIHRoaXNcdTIwMTlzIGd1YXJkIGlzIFwiaW1tdXRhYmxlXCIsIHRoZW4gdGhyb3cgYSBUeXBlRXJyb3IuXG4gICAgLy8gMy4gT3RoZXJ3aXNlLCBpZiB0aGlzXHUyMDE5cyBndWFyZCBpcyBcInJlcXVlc3RcIiBhbmQgbmFtZSBpcyBhXG4gICAgLy8gICAgZm9yYmlkZGVuIGhlYWRlciBuYW1lLCByZXR1cm4uXG4gICAgLy8gNC4gT3RoZXJ3aXNlLCBpZiB0aGlzXHUyMDE5cyBndWFyZCBpcyBcInJlcXVlc3Qtbm8tY29yc1wiLCBuYW1lXG4gICAgLy8gICAgaXMgbm90IGEgbm8tQ09SUy1zYWZlbGlzdGVkIHJlcXVlc3QtaGVhZGVyIG5hbWUsIGFuZFxuICAgIC8vICAgIG5hbWUgaXMgbm90IGEgcHJpdmlsZWdlZCBuby1DT1JTIHJlcXVlc3QtaGVhZGVyIG5hbWUsXG4gICAgLy8gICAgcmV0dXJuLlxuICAgIC8vIDUuIE90aGVyd2lzZSwgaWYgdGhpc1x1MjAxOXMgZ3VhcmQgaXMgXCJyZXNwb25zZVwiIGFuZCBuYW1lIGlzXG4gICAgLy8gICAgYSBmb3JiaWRkZW4gcmVzcG9uc2UtaGVhZGVyIG5hbWUsIHJldHVybi5cbiAgICAvLyBOb3RlOiB1bmRpY2kgZG9lcyBub3QgaW1wbGVtZW50IGZvcmJpZGRlbiBoZWFkZXIgbmFtZXNcbiAgICBpZiAodGhpcy4jZ3VhcmQgPT09ICdpbW11dGFibGUnKSB7XG4gICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdpbW11dGFibGUnKVxuICAgIH1cblxuICAgIC8vIDYuIElmIHRoaXNcdTIwMTlzIGhlYWRlciBsaXN0IGRvZXMgbm90IGNvbnRhaW4gbmFtZSwgdGhlblxuICAgIC8vICAgIHJldHVybi5cbiAgICBpZiAoIXRoaXMuI2hlYWRlcnNMaXN0LmNvbnRhaW5zKG5hbWUsIGZhbHNlKSkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgLy8gNy4gRGVsZXRlIG5hbWUgZnJvbSB0aGlzXHUyMDE5cyBoZWFkZXIgbGlzdC5cbiAgICAvLyA4LiBJZiB0aGlzXHUyMDE5cyBndWFyZCBpcyBcInJlcXVlc3Qtbm8tY29yc1wiLCB0aGVuIHJlbW92ZVxuICAgIC8vICAgIHByaXZpbGVnZWQgbm8tQ09SUyByZXF1ZXN0IGhlYWRlcnMgZnJvbSB0aGlzLlxuICAgIHRoaXMuI2hlYWRlcnNMaXN0LmRlbGV0ZShuYW1lLCBmYWxzZSlcbiAgfVxuXG4gIC8vIGh0dHBzOi8vZmV0Y2guc3BlYy53aGF0d2cub3JnLyNkb20taGVhZGVycy1nZXRcbiAgZ2V0IChuYW1lKSB7XG4gICAgd2ViaWRsLmJyYW5kQ2hlY2sodGhpcywgSGVhZGVycylcblxuICAgIHdlYmlkbC5hcmd1bWVudExlbmd0aENoZWNrKGFyZ3VtZW50cywgMSwgJ0hlYWRlcnMuZ2V0JylcblxuICAgIGNvbnN0IHByZWZpeCA9ICdIZWFkZXJzLmdldCdcbiAgICBuYW1lID0gd2ViaWRsLmNvbnZlcnRlcnMuQnl0ZVN0cmluZyhuYW1lLCBwcmVmaXgsICduYW1lJylcblxuICAgIC8vIDEuIElmIG5hbWUgaXMgbm90IGEgaGVhZGVyIG5hbWUsIHRoZW4gdGhyb3cgYSBUeXBlRXJyb3IuXG4gICAgaWYgKCFpc1ZhbGlkSGVhZGVyTmFtZShuYW1lKSkge1xuICAgICAgdGhyb3cgd2ViaWRsLmVycm9ycy5pbnZhbGlkQXJndW1lbnQoe1xuICAgICAgICBwcmVmaXgsXG4gICAgICAgIHZhbHVlOiBuYW1lLFxuICAgICAgICB0eXBlOiAnaGVhZGVyIG5hbWUnXG4gICAgICB9KVxuICAgIH1cblxuICAgIC8vIDIuIFJldHVybiB0aGUgcmVzdWx0IG9mIGdldHRpbmcgbmFtZSBmcm9tIHRoaXNcdTIwMTlzIGhlYWRlclxuICAgIC8vICAgIGxpc3QuXG4gICAgcmV0dXJuIHRoaXMuI2hlYWRlcnNMaXN0LmdldChuYW1lLCBmYWxzZSlcbiAgfVxuXG4gIC8vIGh0dHBzOi8vZmV0Y2guc3BlYy53aGF0d2cub3JnLyNkb20taGVhZGVycy1oYXNcbiAgaGFzIChuYW1lKSB7XG4gICAgd2ViaWRsLmJyYW5kQ2hlY2sodGhpcywgSGVhZGVycylcblxuICAgIHdlYmlkbC5hcmd1bWVudExlbmd0aENoZWNrKGFyZ3VtZW50cywgMSwgJ0hlYWRlcnMuaGFzJylcblxuICAgIGNvbnN0IHByZWZpeCA9ICdIZWFkZXJzLmhhcydcbiAgICBuYW1lID0gd2ViaWRsLmNvbnZlcnRlcnMuQnl0ZVN0cmluZyhuYW1lLCBwcmVmaXgsICduYW1lJylcblxuICAgIC8vIDEuIElmIG5hbWUgaXMgbm90IGEgaGVhZGVyIG5hbWUsIHRoZW4gdGhyb3cgYSBUeXBlRXJyb3IuXG4gICAgaWYgKCFpc1ZhbGlkSGVhZGVyTmFtZShuYW1lKSkge1xuICAgICAgdGhyb3cgd2ViaWRsLmVycm9ycy5pbnZhbGlkQXJndW1lbnQoe1xuICAgICAgICBwcmVmaXgsXG4gICAgICAgIHZhbHVlOiBuYW1lLFxuICAgICAgICB0eXBlOiAnaGVhZGVyIG5hbWUnXG4gICAgICB9KVxuICAgIH1cblxuICAgIC8vIDIuIFJldHVybiB0cnVlIGlmIHRoaXNcdTIwMTlzIGhlYWRlciBsaXN0IGNvbnRhaW5zIG5hbWU7XG4gICAgLy8gICAgb3RoZXJ3aXNlIGZhbHNlLlxuICAgIHJldHVybiB0aGlzLiNoZWFkZXJzTGlzdC5jb250YWlucyhuYW1lLCBmYWxzZSlcbiAgfVxuXG4gIC8vIGh0dHBzOi8vZmV0Y2guc3BlYy53aGF0d2cub3JnLyNkb20taGVhZGVycy1zZXRcbiAgc2V0IChuYW1lLCB2YWx1ZSkge1xuICAgIHdlYmlkbC5icmFuZENoZWNrKHRoaXMsIEhlYWRlcnMpXG5cbiAgICB3ZWJpZGwuYXJndW1lbnRMZW5ndGhDaGVjayhhcmd1bWVudHMsIDIsICdIZWFkZXJzLnNldCcpXG5cbiAgICBjb25zdCBwcmVmaXggPSAnSGVhZGVycy5zZXQnXG4gICAgbmFtZSA9IHdlYmlkbC5jb252ZXJ0ZXJzLkJ5dGVTdHJpbmcobmFtZSwgcHJlZml4LCAnbmFtZScpXG4gICAgdmFsdWUgPSB3ZWJpZGwuY29udmVydGVycy5CeXRlU3RyaW5nKHZhbHVlLCBwcmVmaXgsICd2YWx1ZScpXG5cbiAgICAvLyAxLiBOb3JtYWxpemUgdmFsdWUuXG4gICAgdmFsdWUgPSBoZWFkZXJWYWx1ZU5vcm1hbGl6ZSh2YWx1ZSlcblxuICAgIC8vIDIuIElmIG5hbWUgaXMgbm90IGEgaGVhZGVyIG5hbWUgb3IgdmFsdWUgaXMgbm90IGFcbiAgICAvLyAgICBoZWFkZXIgdmFsdWUsIHRoZW4gdGhyb3cgYSBUeXBlRXJyb3IuXG4gICAgaWYgKCFpc1ZhbGlkSGVhZGVyTmFtZShuYW1lKSkge1xuICAgICAgdGhyb3cgd2ViaWRsLmVycm9ycy5pbnZhbGlkQXJndW1lbnQoe1xuICAgICAgICBwcmVmaXgsXG4gICAgICAgIHZhbHVlOiBuYW1lLFxuICAgICAgICB0eXBlOiAnaGVhZGVyIG5hbWUnXG4gICAgICB9KVxuICAgIH0gZWxzZSBpZiAoIWlzVmFsaWRIZWFkZXJWYWx1ZSh2YWx1ZSkpIHtcbiAgICAgIHRocm93IHdlYmlkbC5lcnJvcnMuaW52YWxpZEFyZ3VtZW50KHtcbiAgICAgICAgcHJlZml4LFxuICAgICAgICB2YWx1ZSxcbiAgICAgICAgdHlwZTogJ2hlYWRlciB2YWx1ZSdcbiAgICAgIH0pXG4gICAgfVxuXG4gICAgLy8gMy4gSWYgdGhpc1x1MjAxOXMgZ3VhcmQgaXMgXCJpbW11dGFibGVcIiwgdGhlbiB0aHJvdyBhIFR5cGVFcnJvci5cbiAgICAvLyA0LiBPdGhlcndpc2UsIGlmIHRoaXNcdTIwMTlzIGd1YXJkIGlzIFwicmVxdWVzdFwiIGFuZCBuYW1lIGlzIGFcbiAgICAvLyAgICBmb3JiaWRkZW4gaGVhZGVyIG5hbWUsIHJldHVybi5cbiAgICAvLyA1LiBPdGhlcndpc2UsIGlmIHRoaXNcdTIwMTlzIGd1YXJkIGlzIFwicmVxdWVzdC1uby1jb3JzXCIgYW5kXG4gICAgLy8gICAgbmFtZS92YWx1ZSBpcyBub3QgYSBuby1DT1JTLXNhZmVsaXN0ZWQgcmVxdWVzdC1oZWFkZXIsXG4gICAgLy8gICAgcmV0dXJuLlxuICAgIC8vIDYuIE90aGVyd2lzZSwgaWYgdGhpc1x1MjAxOXMgZ3VhcmQgaXMgXCJyZXNwb25zZVwiIGFuZCBuYW1lIGlzIGFcbiAgICAvLyAgICBmb3JiaWRkZW4gcmVzcG9uc2UtaGVhZGVyIG5hbWUsIHJldHVybi5cbiAgICAvLyBOb3RlOiB1bmRpY2kgZG9lcyBub3QgaW1wbGVtZW50IGZvcmJpZGRlbiBoZWFkZXIgbmFtZXNcbiAgICBpZiAodGhpcy4jZ3VhcmQgPT09ICdpbW11dGFibGUnKSB7XG4gICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdpbW11dGFibGUnKVxuICAgIH1cblxuICAgIC8vIDcuIFNldCAobmFtZSwgdmFsdWUpIGluIHRoaXNcdTIwMTlzIGhlYWRlciBsaXN0LlxuICAgIC8vIDguIElmIHRoaXNcdTIwMTlzIGd1YXJkIGlzIFwicmVxdWVzdC1uby1jb3JzXCIsIHRoZW4gcmVtb3ZlXG4gICAgLy8gICAgcHJpdmlsZWdlZCBuby1DT1JTIHJlcXVlc3QgaGVhZGVycyBmcm9tIHRoaXNcbiAgICB0aGlzLiNoZWFkZXJzTGlzdC5zZXQobmFtZSwgdmFsdWUsIGZhbHNlKVxuICB9XG5cbiAgLy8gaHR0cHM6Ly9mZXRjaC5zcGVjLndoYXR3Zy5vcmcvI2RvbS1oZWFkZXJzLWdldHNldGNvb2tpZVxuICBnZXRTZXRDb29raWUgKCkge1xuICAgIHdlYmlkbC5icmFuZENoZWNrKHRoaXMsIEhlYWRlcnMpXG5cbiAgICAvLyAxLiBJZiB0aGlzXHUyMDE5cyBoZWFkZXIgbGlzdCBkb2VzIG5vdCBjb250YWluIGBTZXQtQ29va2llYCwgdGhlbiByZXR1cm4gXHUwMEFCIFx1MDBCQi5cbiAgICAvLyAyLiBSZXR1cm4gdGhlIHZhbHVlcyBvZiBhbGwgaGVhZGVycyBpbiB0aGlzXHUyMDE5cyBoZWFkZXIgbGlzdCB3aG9zZSBuYW1lIGlzXG4gICAgLy8gICAgYSBieXRlLWNhc2UtaW5zZW5zaXRpdmUgbWF0Y2ggZm9yIGBTZXQtQ29va2llYCwgaW4gb3JkZXIuXG5cbiAgICBjb25zdCBsaXN0ID0gdGhpcy4jaGVhZGVyc0xpc3QuY29va2llc1xuXG4gICAgaWYgKGxpc3QpIHtcbiAgICAgIHJldHVybiBbLi4ubGlzdF1cbiAgICB9XG5cbiAgICByZXR1cm4gW11cbiAgfVxuXG4gIC8vIGh0dHBzOi8vZmV0Y2guc3BlYy53aGF0d2cub3JnLyNjb25jZXB0LWhlYWRlci1saXN0LXNvcnQtYW5kLWNvbWJpbmVcbiAgZ2V0IFtrSGVhZGVyc1NvcnRlZE1hcF0gKCkge1xuICAgIGlmICh0aGlzLiNoZWFkZXJzTGlzdFtrSGVhZGVyc1NvcnRlZE1hcF0pIHtcbiAgICAgIHJldHVybiB0aGlzLiNoZWFkZXJzTGlzdFtrSGVhZGVyc1NvcnRlZE1hcF1cbiAgICB9XG5cbiAgICAvLyAxLiBMZXQgaGVhZGVycyBiZSBhbiBlbXB0eSBsaXN0IG9mIGhlYWRlcnMgd2l0aCB0aGUga2V5IGJlaW5nIHRoZSBuYW1lXG4gICAgLy8gICAgYW5kIHZhbHVlIHRoZSB2YWx1ZS5cbiAgICBjb25zdCBoZWFkZXJzID0gW11cblxuICAgIC8vIDIuIExldCBuYW1lcyBiZSB0aGUgcmVzdWx0IG9mIGNvbnZlcnQgaGVhZGVyIG5hbWVzIHRvIGEgc29ydGVkLWxvd2VyY2FzZVxuICAgIC8vICAgIHNldCB3aXRoIGFsbCB0aGUgbmFtZXMgb2YgdGhlIGhlYWRlcnMgaW4gbGlzdC5cbiAgICBjb25zdCBuYW1lcyA9IHRoaXMuI2hlYWRlcnNMaXN0LnRvU29ydGVkQXJyYXkoKVxuXG4gICAgY29uc3QgY29va2llcyA9IHRoaXMuI2hlYWRlcnNMaXN0LmNvb2tpZXNcblxuICAgIC8vIGZhc3QtcGF0aFxuICAgIGlmIChjb29raWVzID09PSBudWxsIHx8IGNvb2tpZXMubGVuZ3RoID09PSAxKSB7XG4gICAgICAvLyBOb3RlOiBUaGUgbm9uLW51bGwgYXNzZXJ0aW9uIG9mIHZhbHVlIGhhcyBhbHJlYWR5IGJlZW4gZG9uZSBieSBgSGVhZGVyc0xpc3QjdG9Tb3J0ZWRBcnJheWBcbiAgICAgIHJldHVybiAodGhpcy4jaGVhZGVyc0xpc3Rba0hlYWRlcnNTb3J0ZWRNYXBdID0gbmFtZXMpXG4gICAgfVxuXG4gICAgLy8gMy4gRm9yIGVhY2ggbmFtZSBvZiBuYW1lczpcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IG5hbWVzLmxlbmd0aDsgKytpKSB7XG4gICAgICBjb25zdCB7IDA6IG5hbWUsIDE6IHZhbHVlIH0gPSBuYW1lc1tpXVxuICAgICAgLy8gMS4gSWYgbmFtZSBpcyBgc2V0LWNvb2tpZWAsIHRoZW46XG4gICAgICBpZiAobmFtZSA9PT0gJ3NldC1jb29raWUnKSB7XG4gICAgICAgIC8vIDEuIExldCB2YWx1ZXMgYmUgYSBsaXN0IG9mIGFsbCB2YWx1ZXMgb2YgaGVhZGVycyBpbiBsaXN0IHdob3NlIG5hbWVcbiAgICAgICAgLy8gICAgaXMgYSBieXRlLWNhc2UtaW5zZW5zaXRpdmUgbWF0Y2ggZm9yIG5hbWUsIGluIG9yZGVyLlxuXG4gICAgICAgIC8vIDIuIEZvciBlYWNoIHZhbHVlIG9mIHZhbHVlczpcbiAgICAgICAgLy8gMS4gQXBwZW5kIChuYW1lLCB2YWx1ZSkgdG8gaGVhZGVycy5cbiAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCBjb29raWVzLmxlbmd0aDsgKytqKSB7XG4gICAgICAgICAgaGVhZGVycy5wdXNoKFtuYW1lLCBjb29raWVzW2pdXSlcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gMi4gT3RoZXJ3aXNlOlxuXG4gICAgICAgIC8vIDEuIExldCB2YWx1ZSBiZSB0aGUgcmVzdWx0IG9mIGdldHRpbmcgbmFtZSBmcm9tIGxpc3QuXG5cbiAgICAgICAgLy8gMi4gQXNzZXJ0OiB2YWx1ZSBpcyBub24tbnVsbC5cbiAgICAgICAgLy8gTm90ZTogVGhpcyBvcGVyYXRpb24gd2FzIGRvbmUgYnkgYEhlYWRlcnNMaXN0I3RvU29ydGVkQXJyYXlgLlxuXG4gICAgICAgIC8vIDMuIEFwcGVuZCAobmFtZSwgdmFsdWUpIHRvIGhlYWRlcnMuXG4gICAgICAgIGhlYWRlcnMucHVzaChbbmFtZSwgdmFsdWVdKVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIDQuIFJldHVybiBoZWFkZXJzLlxuICAgIHJldHVybiAodGhpcy4jaGVhZGVyc0xpc3Rba0hlYWRlcnNTb3J0ZWRNYXBdID0gaGVhZGVycylcbiAgfVxuXG4gIFt1dGlsLmluc3BlY3QuY3VzdG9tXSAoZGVwdGgsIG9wdGlvbnMpIHtcbiAgICBvcHRpb25zLmRlcHRoID8/PSBkZXB0aFxuXG4gICAgcmV0dXJuIGBIZWFkZXJzICR7dXRpbC5mb3JtYXRXaXRoT3B0aW9ucyhvcHRpb25zLCB0aGlzLiNoZWFkZXJzTGlzdC5lbnRyaWVzKX1gXG4gIH1cblxuICBzdGF0aWMgZ2V0SGVhZGVyc0d1YXJkIChvKSB7XG4gICAgcmV0dXJuIG8uI2d1YXJkXG4gIH1cblxuICBzdGF0aWMgc2V0SGVhZGVyc0d1YXJkIChvLCBndWFyZCkge1xuICAgIG8uI2d1YXJkID0gZ3VhcmRcbiAgfVxuXG4gIHN0YXRpYyBnZXRIZWFkZXJzTGlzdCAobykge1xuICAgIHJldHVybiBvLiNoZWFkZXJzTGlzdFxuICB9XG5cbiAgc3RhdGljIHNldEhlYWRlcnNMaXN0IChvLCBsaXN0KSB7XG4gICAgby4jaGVhZGVyc0xpc3QgPSBsaXN0XG4gIH1cbn1cblxuY29uc3QgeyBnZXRIZWFkZXJzR3VhcmQsIHNldEhlYWRlcnNHdWFyZCwgZ2V0SGVhZGVyc0xpc3QsIHNldEhlYWRlcnNMaXN0IH0gPSBIZWFkZXJzXG5SZWZsZWN0LmRlbGV0ZVByb3BlcnR5KEhlYWRlcnMsICdnZXRIZWFkZXJzR3VhcmQnKVxuUmVmbGVjdC5kZWxldGVQcm9wZXJ0eShIZWFkZXJzLCAnc2V0SGVhZGVyc0d1YXJkJylcblJlZmxlY3QuZGVsZXRlUHJvcGVydHkoSGVhZGVycywgJ2dldEhlYWRlcnNMaXN0JylcblJlZmxlY3QuZGVsZXRlUHJvcGVydHkoSGVhZGVycywgJ3NldEhlYWRlcnNMaXN0JylcblxuaXRlcmF0b3JNaXhpbignSGVhZGVycycsIEhlYWRlcnMsIGtIZWFkZXJzU29ydGVkTWFwLCAwLCAxKVxuXG5PYmplY3QuZGVmaW5lUHJvcGVydGllcyhIZWFkZXJzLnByb3RvdHlwZSwge1xuICBhcHBlbmQ6IGtFbnVtZXJhYmxlUHJvcGVydHksXG4gIGRlbGV0ZToga0VudW1lcmFibGVQcm9wZXJ0eSxcbiAgZ2V0OiBrRW51bWVyYWJsZVByb3BlcnR5LFxuICBoYXM6IGtFbnVtZXJhYmxlUHJvcGVydHksXG4gIHNldDoga0VudW1lcmFibGVQcm9wZXJ0eSxcbiAgZ2V0U2V0Q29va2llOiBrRW51bWVyYWJsZVByb3BlcnR5LFxuICBbU3ltYm9sLnRvU3RyaW5nVGFnXToge1xuICAgIHZhbHVlOiAnSGVhZGVycycsXG4gICAgY29uZmlndXJhYmxlOiB0cnVlXG4gIH0sXG4gIFt1dGlsLmluc3BlY3QuY3VzdG9tXToge1xuICAgIGVudW1lcmFibGU6IGZhbHNlXG4gIH1cbn0pXG5cbndlYmlkbC5jb252ZXJ0ZXJzLkhlYWRlcnNJbml0ID0gZnVuY3Rpb24gKFYsIHByZWZpeCwgYXJndW1lbnQpIHtcbiAgaWYgKHdlYmlkbC51dGlsLlR5cGUoVikgPT09ICdPYmplY3QnKSB7XG4gICAgY29uc3QgaXRlcmF0b3IgPSBSZWZsZWN0LmdldChWLCBTeW1ib2wuaXRlcmF0b3IpXG5cbiAgICAvLyBBIHdvcmstYXJvdW5kIHRvIGVuc3VyZSB3ZSBzZW5kIHRoZSBwcm9wZXJseS1jYXNlZCBIZWFkZXJzIHdoZW4gViBpcyBhIEhlYWRlcnMgb2JqZWN0LlxuICAgIC8vIFJlYWQgaHR0cHM6Ly9naXRodWIuY29tL25vZGVqcy91bmRpY2kvcHVsbC8zMTU5I2lzc3VlY29tbWVudC0yMDc1NTM3MjI2IGJlZm9yZSB0b3VjaGluZywgcGxlYXNlLlxuICAgIGlmICghdXRpbC50eXBlcy5pc1Byb3h5KFYpICYmIGl0ZXJhdG9yID09PSBIZWFkZXJzLnByb3RvdHlwZS5lbnRyaWVzKSB7IC8vIEhlYWRlcnMgb2JqZWN0XG4gICAgICB0cnkge1xuICAgICAgICByZXR1cm4gZ2V0SGVhZGVyc0xpc3QoVikuZW50cmllc0xpc3RcbiAgICAgIH0gY2F0Y2gge1xuICAgICAgICAvLyBmYWxsLXRocm91Z2hcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIGl0ZXJhdG9yID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICByZXR1cm4gd2ViaWRsLmNvbnZlcnRlcnNbJ3NlcXVlbmNlPHNlcXVlbmNlPEJ5dGVTdHJpbmc+PiddKFYsIHByZWZpeCwgYXJndW1lbnQsIGl0ZXJhdG9yLmJpbmQoVikpXG4gICAgfVxuXG4gICAgcmV0dXJuIHdlYmlkbC5jb252ZXJ0ZXJzWydyZWNvcmQ8Qnl0ZVN0cmluZywgQnl0ZVN0cmluZz4nXShWLCBwcmVmaXgsIGFyZ3VtZW50KVxuICB9XG5cbiAgdGhyb3cgd2ViaWRsLmVycm9ycy5jb252ZXJzaW9uRmFpbGVkKHtcbiAgICBwcmVmaXg6ICdIZWFkZXJzIGNvbnN0cnVjdG9yJyxcbiAgICBhcmd1bWVudDogJ0FyZ3VtZW50IDEnLFxuICAgIHR5cGVzOiBbJ3NlcXVlbmNlPHNlcXVlbmNlPEJ5dGVTdHJpbmc+PicsICdyZWNvcmQ8Qnl0ZVN0cmluZywgQnl0ZVN0cmluZz4nXVxuICB9KVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgZmlsbCxcbiAgLy8gZm9yIHRlc3QuXG4gIGNvbXBhcmVIZWFkZXJOYW1lLFxuICBIZWFkZXJzLFxuICBIZWFkZXJzTGlzdCxcbiAgZ2V0SGVhZGVyc0d1YXJkLFxuICBzZXRIZWFkZXJzR3VhcmQsXG4gIHNldEhlYWRlcnNMaXN0LFxuICBnZXRIZWFkZXJzTGlzdFxufVxuIiwgIid1c2Ugc3RyaWN0J1xuXG5jb25zdCB7IEhlYWRlcnMsIEhlYWRlcnNMaXN0LCBmaWxsLCBnZXRIZWFkZXJzR3VhcmQsIHNldEhlYWRlcnNHdWFyZCwgc2V0SGVhZGVyc0xpc3QgfSA9IHJlcXVpcmUoJy4vaGVhZGVycycpXG5jb25zdCB7IGV4dHJhY3RCb2R5LCBjbG9uZUJvZHksIG1peGluQm9keSwgaGFzRmluYWxpemF0aW9uUmVnaXN0cnksIHN0cmVhbVJlZ2lzdHJ5LCBib2R5VW51c2FibGUgfSA9IHJlcXVpcmUoJy4vYm9keScpXG5jb25zdCB1dGlsID0gcmVxdWlyZSgnLi4vLi4vY29yZS91dGlsJylcbmNvbnN0IG5vZGVVdGlsID0gcmVxdWlyZSgnbm9kZTp1dGlsJylcbmNvbnN0IHsga0VudW1lcmFibGVQcm9wZXJ0eSB9ID0gdXRpbFxuY29uc3Qge1xuICBpc1ZhbGlkUmVhc29uUGhyYXNlLFxuICBpc0NhbmNlbGxlZCxcbiAgaXNBYm9ydGVkLFxuICBpc0Jsb2JMaWtlLFxuICBzZXJpYWxpemVKYXZhc2NyaXB0VmFsdWVUb0pTT05TdHJpbmcsXG4gIGlzRXJyb3JMaWtlLFxuICBpc29tb3JwaGljRW5jb2RlLFxuICBlbnZpcm9ubWVudFNldHRpbmdzT2JqZWN0OiByZWxldmFudFJlYWxtXG59ID0gcmVxdWlyZSgnLi91dGlsJylcbmNvbnN0IHtcbiAgcmVkaXJlY3RTdGF0dXNTZXQsXG4gIG51bGxCb2R5U3RhdHVzXG59ID0gcmVxdWlyZSgnLi9jb25zdGFudHMnKVxuY29uc3QgeyBrU3RhdGUsIGtIZWFkZXJzIH0gPSByZXF1aXJlKCcuL3N5bWJvbHMnKVxuY29uc3QgeyB3ZWJpZGwgfSA9IHJlcXVpcmUoJy4vd2ViaWRsJylcbmNvbnN0IHsgRm9ybURhdGEgfSA9IHJlcXVpcmUoJy4vZm9ybWRhdGEnKVxuY29uc3QgeyBVUkxTZXJpYWxpemVyIH0gPSByZXF1aXJlKCcuL2RhdGEtdXJsJylcbmNvbnN0IHsga0NvbnN0cnVjdCB9ID0gcmVxdWlyZSgnLi4vLi4vY29yZS9zeW1ib2xzJylcbmNvbnN0IGFzc2VydCA9IHJlcXVpcmUoJ25vZGU6YXNzZXJ0JylcbmNvbnN0IHsgdHlwZXMgfSA9IHJlcXVpcmUoJ25vZGU6dXRpbCcpXG5cbmNvbnN0IHRleHRFbmNvZGVyID0gbmV3IFRleHRFbmNvZGVyKCd1dGYtOCcpXG5cbi8vIGh0dHBzOi8vZmV0Y2guc3BlYy53aGF0d2cub3JnLyNyZXNwb25zZS1jbGFzc1xuY2xhc3MgUmVzcG9uc2Uge1xuICAvLyBDcmVhdGVzIG5ldHdvcmsgZXJyb3IgUmVzcG9uc2UuXG4gIHN0YXRpYyBlcnJvciAoKSB7XG4gICAgLy8gVGhlIHN0YXRpYyBlcnJvcigpIG1ldGhvZCBzdGVwcyBhcmUgdG8gcmV0dXJuIHRoZSByZXN1bHQgb2YgY3JlYXRpbmcgYVxuICAgIC8vIFJlc3BvbnNlIG9iamVjdCwgZ2l2ZW4gYSBuZXcgbmV0d29yayBlcnJvciwgXCJpbW11dGFibGVcIiwgYW5kIHRoaXNcdTIwMTlzXG4gICAgLy8gcmVsZXZhbnQgUmVhbG0uXG4gICAgY29uc3QgcmVzcG9uc2VPYmplY3QgPSBmcm9tSW5uZXJSZXNwb25zZShtYWtlTmV0d29ya0Vycm9yKCksICdpbW11dGFibGUnKVxuXG4gICAgcmV0dXJuIHJlc3BvbnNlT2JqZWN0XG4gIH1cblxuICAvLyBodHRwczovL2ZldGNoLnNwZWMud2hhdHdnLm9yZy8jZG9tLXJlc3BvbnNlLWpzb25cbiAgc3RhdGljIGpzb24gKGRhdGEsIGluaXQgPSB7fSkge1xuICAgIHdlYmlkbC5hcmd1bWVudExlbmd0aENoZWNrKGFyZ3VtZW50cywgMSwgJ1Jlc3BvbnNlLmpzb24nKVxuXG4gICAgaWYgKGluaXQgIT09IG51bGwpIHtcbiAgICAgIGluaXQgPSB3ZWJpZGwuY29udmVydGVycy5SZXNwb25zZUluaXQoaW5pdClcbiAgICB9XG5cbiAgICAvLyAxLiBMZXQgYnl0ZXMgdGhlIHJlc3VsdCBvZiBydW5uaW5nIHNlcmlhbGl6ZSBhIEphdmFTY3JpcHQgdmFsdWUgdG8gSlNPTiBieXRlcyBvbiBkYXRhLlxuICAgIGNvbnN0IGJ5dGVzID0gdGV4dEVuY29kZXIuZW5jb2RlKFxuICAgICAgc2VyaWFsaXplSmF2YXNjcmlwdFZhbHVlVG9KU09OU3RyaW5nKGRhdGEpXG4gICAgKVxuXG4gICAgLy8gMi4gTGV0IGJvZHkgYmUgdGhlIHJlc3VsdCBvZiBleHRyYWN0aW5nIGJ5dGVzLlxuICAgIGNvbnN0IGJvZHkgPSBleHRyYWN0Qm9keShieXRlcylcblxuICAgIC8vIDMuIExldCByZXNwb25zZU9iamVjdCBiZSB0aGUgcmVzdWx0IG9mIGNyZWF0aW5nIGEgUmVzcG9uc2Ugb2JqZWN0LCBnaXZlbiBhIG5ldyByZXNwb25zZSxcbiAgICAvLyAgICBcInJlc3BvbnNlXCIsIGFuZCB0aGlzXHUyMDE5cyByZWxldmFudCBSZWFsbS5cbiAgICBjb25zdCByZXNwb25zZU9iamVjdCA9IGZyb21Jbm5lclJlc3BvbnNlKG1ha2VSZXNwb25zZSh7fSksICdyZXNwb25zZScpXG5cbiAgICAvLyA0LiBQZXJmb3JtIGluaXRpYWxpemUgYSByZXNwb25zZSBnaXZlbiByZXNwb25zZU9iamVjdCwgaW5pdCwgYW5kIChib2R5LCBcImFwcGxpY2F0aW9uL2pzb25cIikuXG4gICAgaW5pdGlhbGl6ZVJlc3BvbnNlKHJlc3BvbnNlT2JqZWN0LCBpbml0LCB7IGJvZHk6IGJvZHlbMF0sIHR5cGU6ICdhcHBsaWNhdGlvbi9qc29uJyB9KVxuXG4gICAgLy8gNS4gUmV0dXJuIHJlc3BvbnNlT2JqZWN0LlxuICAgIHJldHVybiByZXNwb25zZU9iamVjdFxuICB9XG5cbiAgLy8gQ3JlYXRlcyBhIHJlZGlyZWN0IFJlc3BvbnNlIHRoYXQgcmVkaXJlY3RzIHRvIHVybCB3aXRoIHN0YXR1cyBzdGF0dXMuXG4gIHN0YXRpYyByZWRpcmVjdCAodXJsLCBzdGF0dXMgPSAzMDIpIHtcbiAgICB3ZWJpZGwuYXJndW1lbnRMZW5ndGhDaGVjayhhcmd1bWVudHMsIDEsICdSZXNwb25zZS5yZWRpcmVjdCcpXG5cbiAgICB1cmwgPSB3ZWJpZGwuY29udmVydGVycy5VU1ZTdHJpbmcodXJsKVxuICAgIHN0YXR1cyA9IHdlYmlkbC5jb252ZXJ0ZXJzWyd1bnNpZ25lZCBzaG9ydCddKHN0YXR1cylcblxuICAgIC8vIDEuIExldCBwYXJzZWRVUkwgYmUgdGhlIHJlc3VsdCBvZiBwYXJzaW5nIHVybCB3aXRoIGN1cnJlbnQgc2V0dGluZ3NcbiAgICAvLyBvYmplY3RcdTIwMTlzIEFQSSBiYXNlIFVSTC5cbiAgICAvLyAyLiBJZiBwYXJzZWRVUkwgaXMgZmFpbHVyZSwgdGhlbiB0aHJvdyBhIFR5cGVFcnJvci5cbiAgICAvLyBUT0RPOiBiYXNlLVVSTD9cbiAgICBsZXQgcGFyc2VkVVJMXG4gICAgdHJ5IHtcbiAgICAgIHBhcnNlZFVSTCA9IG5ldyBVUkwodXJsLCByZWxldmFudFJlYWxtLnNldHRpbmdzT2JqZWN0LmJhc2VVcmwpXG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKGBGYWlsZWQgdG8gcGFyc2UgVVJMIGZyb20gJHt1cmx9YCwgeyBjYXVzZTogZXJyIH0pXG4gICAgfVxuXG4gICAgLy8gMy4gSWYgc3RhdHVzIGlzIG5vdCBhIHJlZGlyZWN0IHN0YXR1cywgdGhlbiB0aHJvdyBhIFJhbmdlRXJyb3IuXG4gICAgaWYgKCFyZWRpcmVjdFN0YXR1c1NldC5oYXMoc3RhdHVzKSkge1xuICAgICAgdGhyb3cgbmV3IFJhbmdlRXJyb3IoYEludmFsaWQgc3RhdHVzIGNvZGUgJHtzdGF0dXN9YClcbiAgICB9XG5cbiAgICAvLyA0LiBMZXQgcmVzcG9uc2VPYmplY3QgYmUgdGhlIHJlc3VsdCBvZiBjcmVhdGluZyBhIFJlc3BvbnNlIG9iamVjdCxcbiAgICAvLyBnaXZlbiBhIG5ldyByZXNwb25zZSwgXCJpbW11dGFibGVcIiwgYW5kIHRoaXNcdTIwMTlzIHJlbGV2YW50IFJlYWxtLlxuICAgIGNvbnN0IHJlc3BvbnNlT2JqZWN0ID0gZnJvbUlubmVyUmVzcG9uc2UobWFrZVJlc3BvbnNlKHt9KSwgJ2ltbXV0YWJsZScpXG5cbiAgICAvLyA1LiBTZXQgcmVzcG9uc2VPYmplY3RcdTIwMTlzIHJlc3BvbnNlXHUyMDE5cyBzdGF0dXMgdG8gc3RhdHVzLlxuICAgIHJlc3BvbnNlT2JqZWN0W2tTdGF0ZV0uc3RhdHVzID0gc3RhdHVzXG5cbiAgICAvLyA2LiBMZXQgdmFsdWUgYmUgcGFyc2VkVVJMLCBzZXJpYWxpemVkIGFuZCBpc29tb3JwaGljIGVuY29kZWQuXG4gICAgY29uc3QgdmFsdWUgPSBpc29tb3JwaGljRW5jb2RlKFVSTFNlcmlhbGl6ZXIocGFyc2VkVVJMKSlcblxuICAgIC8vIDcuIEFwcGVuZCBgTG9jYXRpb25gL3ZhbHVlIHRvIHJlc3BvbnNlT2JqZWN0XHUyMDE5cyByZXNwb25zZVx1MjAxOXMgaGVhZGVyIGxpc3QuXG4gICAgcmVzcG9uc2VPYmplY3Rba1N0YXRlXS5oZWFkZXJzTGlzdC5hcHBlbmQoJ2xvY2F0aW9uJywgdmFsdWUsIHRydWUpXG5cbiAgICAvLyA4LiBSZXR1cm4gcmVzcG9uc2VPYmplY3QuXG4gICAgcmV0dXJuIHJlc3BvbnNlT2JqZWN0XG4gIH1cblxuICAvLyBodHRwczovL2ZldGNoLnNwZWMud2hhdHdnLm9yZy8jZG9tLXJlc3BvbnNlXG4gIGNvbnN0cnVjdG9yIChib2R5ID0gbnVsbCwgaW5pdCA9IHt9KSB7XG4gICAgd2ViaWRsLnV0aWwubWFya0FzVW5jbG9uZWFibGUodGhpcylcbiAgICBpZiAoYm9keSA9PT0ga0NvbnN0cnVjdCkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgaWYgKGJvZHkgIT09IG51bGwpIHtcbiAgICAgIGJvZHkgPSB3ZWJpZGwuY29udmVydGVycy5Cb2R5SW5pdChib2R5KVxuICAgIH1cblxuICAgIGluaXQgPSB3ZWJpZGwuY29udmVydGVycy5SZXNwb25zZUluaXQoaW5pdClcblxuICAgIC8vIDEuIFNldCB0aGlzXHUyMDE5cyByZXNwb25zZSB0byBhIG5ldyByZXNwb25zZS5cbiAgICB0aGlzW2tTdGF0ZV0gPSBtYWtlUmVzcG9uc2Uoe30pXG5cbiAgICAvLyAyLiBTZXQgdGhpc1x1MjAxOXMgaGVhZGVycyB0byBhIG5ldyBIZWFkZXJzIG9iamVjdCB3aXRoIHRoaXNcdTIwMTlzIHJlbGV2YW50XG4gICAgLy8gUmVhbG0sIHdob3NlIGhlYWRlciBsaXN0IGlzIHRoaXNcdTIwMTlzIHJlc3BvbnNlXHUyMDE5cyBoZWFkZXIgbGlzdCBhbmQgZ3VhcmRcbiAgICAvLyBpcyBcInJlc3BvbnNlXCIuXG4gICAgdGhpc1trSGVhZGVyc10gPSBuZXcgSGVhZGVycyhrQ29uc3RydWN0KVxuICAgIHNldEhlYWRlcnNHdWFyZCh0aGlzW2tIZWFkZXJzXSwgJ3Jlc3BvbnNlJylcbiAgICBzZXRIZWFkZXJzTGlzdCh0aGlzW2tIZWFkZXJzXSwgdGhpc1trU3RhdGVdLmhlYWRlcnNMaXN0KVxuXG4gICAgLy8gMy4gTGV0IGJvZHlXaXRoVHlwZSBiZSBudWxsLlxuICAgIGxldCBib2R5V2l0aFR5cGUgPSBudWxsXG5cbiAgICAvLyA0LiBJZiBib2R5IGlzIG5vbi1udWxsLCB0aGVuIHNldCBib2R5V2l0aFR5cGUgdG8gdGhlIHJlc3VsdCBvZiBleHRyYWN0aW5nIGJvZHkuXG4gICAgaWYgKGJvZHkgIT0gbnVsbCkge1xuICAgICAgY29uc3QgW2V4dHJhY3RlZEJvZHksIHR5cGVdID0gZXh0cmFjdEJvZHkoYm9keSlcbiAgICAgIGJvZHlXaXRoVHlwZSA9IHsgYm9keTogZXh0cmFjdGVkQm9keSwgdHlwZSB9XG4gICAgfVxuXG4gICAgLy8gNS4gUGVyZm9ybSBpbml0aWFsaXplIGEgcmVzcG9uc2UgZ2l2ZW4gdGhpcywgaW5pdCwgYW5kIGJvZHlXaXRoVHlwZS5cbiAgICBpbml0aWFsaXplUmVzcG9uc2UodGhpcywgaW5pdCwgYm9keVdpdGhUeXBlKVxuICB9XG5cbiAgLy8gUmV0dXJucyByZXNwb25zZVx1MjAxOXMgdHlwZSwgZS5nLiwgXCJjb3JzXCIuXG4gIGdldCB0eXBlICgpIHtcbiAgICB3ZWJpZGwuYnJhbmRDaGVjayh0aGlzLCBSZXNwb25zZSlcblxuICAgIC8vIFRoZSB0eXBlIGdldHRlciBzdGVwcyBhcmUgdG8gcmV0dXJuIHRoaXNcdTIwMTlzIHJlc3BvbnNlXHUyMDE5cyB0eXBlLlxuICAgIHJldHVybiB0aGlzW2tTdGF0ZV0udHlwZVxuICB9XG5cbiAgLy8gUmV0dXJucyByZXNwb25zZVx1MjAxOXMgVVJMLCBpZiBpdCBoYXMgb25lOyBvdGhlcndpc2UgdGhlIGVtcHR5IHN0cmluZy5cbiAgZ2V0IHVybCAoKSB7XG4gICAgd2ViaWRsLmJyYW5kQ2hlY2sodGhpcywgUmVzcG9uc2UpXG5cbiAgICBjb25zdCB1cmxMaXN0ID0gdGhpc1trU3RhdGVdLnVybExpc3RcblxuICAgIC8vIFRoZSB1cmwgZ2V0dGVyIHN0ZXBzIGFyZSB0byByZXR1cm4gdGhlIGVtcHR5IHN0cmluZyBpZiB0aGlzXHUyMDE5c1xuICAgIC8vIHJlc3BvbnNlXHUyMDE5cyBVUkwgaXMgbnVsbDsgb3RoZXJ3aXNlIHRoaXNcdTIwMTlzIHJlc3BvbnNlXHUyMDE5cyBVUkwsXG4gICAgLy8gc2VyaWFsaXplZCB3aXRoIGV4Y2x1ZGUgZnJhZ21lbnQgc2V0IHRvIHRydWUuXG4gICAgY29uc3QgdXJsID0gdXJsTGlzdFt1cmxMaXN0Lmxlbmd0aCAtIDFdID8/IG51bGxcblxuICAgIGlmICh1cmwgPT09IG51bGwpIHtcbiAgICAgIHJldHVybiAnJ1xuICAgIH1cblxuICAgIHJldHVybiBVUkxTZXJpYWxpemVyKHVybCwgdHJ1ZSlcbiAgfVxuXG4gIC8vIFJldHVybnMgd2hldGhlciByZXNwb25zZSB3YXMgb2J0YWluZWQgdGhyb3VnaCBhIHJlZGlyZWN0LlxuICBnZXQgcmVkaXJlY3RlZCAoKSB7XG4gICAgd2ViaWRsLmJyYW5kQ2hlY2sodGhpcywgUmVzcG9uc2UpXG5cbiAgICAvLyBUaGUgcmVkaXJlY3RlZCBnZXR0ZXIgc3RlcHMgYXJlIHRvIHJldHVybiB0cnVlIGlmIHRoaXNcdTIwMTlzIHJlc3BvbnNlXHUyMDE5cyBVUkxcbiAgICAvLyBsaXN0IGhhcyBtb3JlIHRoYW4gb25lIGl0ZW07IG90aGVyd2lzZSBmYWxzZS5cbiAgICByZXR1cm4gdGhpc1trU3RhdGVdLnVybExpc3QubGVuZ3RoID4gMVxuICB9XG5cbiAgLy8gUmV0dXJucyByZXNwb25zZVx1MjAxOXMgc3RhdHVzLlxuICBnZXQgc3RhdHVzICgpIHtcbiAgICB3ZWJpZGwuYnJhbmRDaGVjayh0aGlzLCBSZXNwb25zZSlcblxuICAgIC8vIFRoZSBzdGF0dXMgZ2V0dGVyIHN0ZXBzIGFyZSB0byByZXR1cm4gdGhpc1x1MjAxOXMgcmVzcG9uc2VcdTIwMTlzIHN0YXR1cy5cbiAgICByZXR1cm4gdGhpc1trU3RhdGVdLnN0YXR1c1xuICB9XG5cbiAgLy8gUmV0dXJucyB3aGV0aGVyIHJlc3BvbnNlXHUyMDE5cyBzdGF0dXMgaXMgYW4gb2sgc3RhdHVzLlxuICBnZXQgb2sgKCkge1xuICAgIHdlYmlkbC5icmFuZENoZWNrKHRoaXMsIFJlc3BvbnNlKVxuXG4gICAgLy8gVGhlIG9rIGdldHRlciBzdGVwcyBhcmUgdG8gcmV0dXJuIHRydWUgaWYgdGhpc1x1MjAxOXMgcmVzcG9uc2VcdTIwMTlzIHN0YXR1cyBpcyBhblxuICAgIC8vIG9rIHN0YXR1czsgb3RoZXJ3aXNlIGZhbHNlLlxuICAgIHJldHVybiB0aGlzW2tTdGF0ZV0uc3RhdHVzID49IDIwMCAmJiB0aGlzW2tTdGF0ZV0uc3RhdHVzIDw9IDI5OVxuICB9XG5cbiAgLy8gUmV0dXJucyByZXNwb25zZVx1MjAxOXMgc3RhdHVzIG1lc3NhZ2UuXG4gIGdldCBzdGF0dXNUZXh0ICgpIHtcbiAgICB3ZWJpZGwuYnJhbmRDaGVjayh0aGlzLCBSZXNwb25zZSlcblxuICAgIC8vIFRoZSBzdGF0dXNUZXh0IGdldHRlciBzdGVwcyBhcmUgdG8gcmV0dXJuIHRoaXNcdTIwMTlzIHJlc3BvbnNlXHUyMDE5cyBzdGF0dXNcbiAgICAvLyBtZXNzYWdlLlxuICAgIHJldHVybiB0aGlzW2tTdGF0ZV0uc3RhdHVzVGV4dFxuICB9XG5cbiAgLy8gUmV0dXJucyByZXNwb25zZVx1MjAxOXMgaGVhZGVycyBhcyBIZWFkZXJzLlxuICBnZXQgaGVhZGVycyAoKSB7XG4gICAgd2ViaWRsLmJyYW5kQ2hlY2sodGhpcywgUmVzcG9uc2UpXG5cbiAgICAvLyBUaGUgaGVhZGVycyBnZXR0ZXIgc3RlcHMgYXJlIHRvIHJldHVybiB0aGlzXHUyMDE5cyBoZWFkZXJzLlxuICAgIHJldHVybiB0aGlzW2tIZWFkZXJzXVxuICB9XG5cbiAgZ2V0IGJvZHkgKCkge1xuICAgIHdlYmlkbC5icmFuZENoZWNrKHRoaXMsIFJlc3BvbnNlKVxuXG4gICAgcmV0dXJuIHRoaXNba1N0YXRlXS5ib2R5ID8gdGhpc1trU3RhdGVdLmJvZHkuc3RyZWFtIDogbnVsbFxuICB9XG5cbiAgZ2V0IGJvZHlVc2VkICgpIHtcbiAgICB3ZWJpZGwuYnJhbmRDaGVjayh0aGlzLCBSZXNwb25zZSlcblxuICAgIHJldHVybiAhIXRoaXNba1N0YXRlXS5ib2R5ICYmIHV0aWwuaXNEaXN0dXJiZWQodGhpc1trU3RhdGVdLmJvZHkuc3RyZWFtKVxuICB9XG5cbiAgLy8gUmV0dXJucyBhIGNsb25lIG9mIHJlc3BvbnNlLlxuICBjbG9uZSAoKSB7XG4gICAgd2ViaWRsLmJyYW5kQ2hlY2sodGhpcywgUmVzcG9uc2UpXG5cbiAgICAvLyAxLiBJZiB0aGlzIGlzIHVudXNhYmxlLCB0aGVuIHRocm93IGEgVHlwZUVycm9yLlxuICAgIGlmIChib2R5VW51c2FibGUodGhpcykpIHtcbiAgICAgIHRocm93IHdlYmlkbC5lcnJvcnMuZXhjZXB0aW9uKHtcbiAgICAgICAgaGVhZGVyOiAnUmVzcG9uc2UuY2xvbmUnLFxuICAgICAgICBtZXNzYWdlOiAnQm9keSBoYXMgYWxyZWFkeSBiZWVuIGNvbnN1bWVkLidcbiAgICAgIH0pXG4gICAgfVxuXG4gICAgLy8gMi4gTGV0IGNsb25lZFJlc3BvbnNlIGJlIHRoZSByZXN1bHQgb2YgY2xvbmluZyB0aGlzXHUyMDE5cyByZXNwb25zZS5cbiAgICBjb25zdCBjbG9uZWRSZXNwb25zZSA9IGNsb25lUmVzcG9uc2UodGhpc1trU3RhdGVdKVxuXG4gICAgLy8gMy4gUmV0dXJuIHRoZSByZXN1bHQgb2YgY3JlYXRpbmcgYSBSZXNwb25zZSBvYmplY3QsIGdpdmVuXG4gICAgLy8gY2xvbmVkUmVzcG9uc2UsIHRoaXNcdTIwMTlzIGhlYWRlcnNcdTIwMTlzIGd1YXJkLCBhbmQgdGhpc1x1MjAxOXMgcmVsZXZhbnQgUmVhbG0uXG4gICAgcmV0dXJuIGZyb21Jbm5lclJlc3BvbnNlKGNsb25lZFJlc3BvbnNlLCBnZXRIZWFkZXJzR3VhcmQodGhpc1trSGVhZGVyc10pKVxuICB9XG5cbiAgW25vZGVVdGlsLmluc3BlY3QuY3VzdG9tXSAoZGVwdGgsIG9wdGlvbnMpIHtcbiAgICBpZiAob3B0aW9ucy5kZXB0aCA9PT0gbnVsbCkge1xuICAgICAgb3B0aW9ucy5kZXB0aCA9IDJcbiAgICB9XG5cbiAgICBvcHRpb25zLmNvbG9ycyA/Pz0gdHJ1ZVxuXG4gICAgY29uc3QgcHJvcGVydGllcyA9IHtcbiAgICAgIHN0YXR1czogdGhpcy5zdGF0dXMsXG4gICAgICBzdGF0dXNUZXh0OiB0aGlzLnN0YXR1c1RleHQsXG4gICAgICBoZWFkZXJzOiB0aGlzLmhlYWRlcnMsXG4gICAgICBib2R5OiB0aGlzLmJvZHksXG4gICAgICBib2R5VXNlZDogdGhpcy5ib2R5VXNlZCxcbiAgICAgIG9rOiB0aGlzLm9rLFxuICAgICAgcmVkaXJlY3RlZDogdGhpcy5yZWRpcmVjdGVkLFxuICAgICAgdHlwZTogdGhpcy50eXBlLFxuICAgICAgdXJsOiB0aGlzLnVybFxuICAgIH1cblxuICAgIHJldHVybiBgUmVzcG9uc2UgJHtub2RlVXRpbC5mb3JtYXRXaXRoT3B0aW9ucyhvcHRpb25zLCBwcm9wZXJ0aWVzKX1gXG4gIH1cbn1cblxubWl4aW5Cb2R5KFJlc3BvbnNlKVxuXG5PYmplY3QuZGVmaW5lUHJvcGVydGllcyhSZXNwb25zZS5wcm90b3R5cGUsIHtcbiAgdHlwZToga0VudW1lcmFibGVQcm9wZXJ0eSxcbiAgdXJsOiBrRW51bWVyYWJsZVByb3BlcnR5LFxuICBzdGF0dXM6IGtFbnVtZXJhYmxlUHJvcGVydHksXG4gIG9rOiBrRW51bWVyYWJsZVByb3BlcnR5LFxuICByZWRpcmVjdGVkOiBrRW51bWVyYWJsZVByb3BlcnR5LFxuICBzdGF0dXNUZXh0OiBrRW51bWVyYWJsZVByb3BlcnR5LFxuICBoZWFkZXJzOiBrRW51bWVyYWJsZVByb3BlcnR5LFxuICBjbG9uZToga0VudW1lcmFibGVQcm9wZXJ0eSxcbiAgYm9keToga0VudW1lcmFibGVQcm9wZXJ0eSxcbiAgYm9keVVzZWQ6IGtFbnVtZXJhYmxlUHJvcGVydHksXG4gIFtTeW1ib2wudG9TdHJpbmdUYWddOiB7XG4gICAgdmFsdWU6ICdSZXNwb25zZScsXG4gICAgY29uZmlndXJhYmxlOiB0cnVlXG4gIH1cbn0pXG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKFJlc3BvbnNlLCB7XG4gIGpzb246IGtFbnVtZXJhYmxlUHJvcGVydHksXG4gIHJlZGlyZWN0OiBrRW51bWVyYWJsZVByb3BlcnR5LFxuICBlcnJvcjoga0VudW1lcmFibGVQcm9wZXJ0eVxufSlcblxuLy8gaHR0cHM6Ly9mZXRjaC5zcGVjLndoYXR3Zy5vcmcvI2NvbmNlcHQtcmVzcG9uc2UtY2xvbmVcbmZ1bmN0aW9uIGNsb25lUmVzcG9uc2UgKHJlc3BvbnNlKSB7XG4gIC8vIFRvIGNsb25lIGEgcmVzcG9uc2UgcmVzcG9uc2UsIHJ1biB0aGVzZSBzdGVwczpcblxuICAvLyAxLiBJZiByZXNwb25zZSBpcyBhIGZpbHRlcmVkIHJlc3BvbnNlLCB0aGVuIHJldHVybiBhIG5ldyBpZGVudGljYWxcbiAgLy8gZmlsdGVyZWQgcmVzcG9uc2Ugd2hvc2UgaW50ZXJuYWwgcmVzcG9uc2UgaXMgYSBjbG9uZSBvZiByZXNwb25zZVx1MjAxOXNcbiAgLy8gaW50ZXJuYWwgcmVzcG9uc2UuXG4gIGlmIChyZXNwb25zZS5pbnRlcm5hbFJlc3BvbnNlKSB7XG4gICAgcmV0dXJuIGZpbHRlclJlc3BvbnNlKFxuICAgICAgY2xvbmVSZXNwb25zZShyZXNwb25zZS5pbnRlcm5hbFJlc3BvbnNlKSxcbiAgICAgIHJlc3BvbnNlLnR5cGVcbiAgICApXG4gIH1cblxuICAvLyAyLiBMZXQgbmV3UmVzcG9uc2UgYmUgYSBjb3B5IG9mIHJlc3BvbnNlLCBleGNlcHQgZm9yIGl0cyBib2R5LlxuICBjb25zdCBuZXdSZXNwb25zZSA9IG1ha2VSZXNwb25zZSh7IC4uLnJlc3BvbnNlLCBib2R5OiBudWxsIH0pXG5cbiAgLy8gMy4gSWYgcmVzcG9uc2VcdTIwMTlzIGJvZHkgaXMgbm9uLW51bGwsIHRoZW4gc2V0IG5ld1Jlc3BvbnNlXHUyMDE5cyBib2R5IHRvIHRoZVxuICAvLyByZXN1bHQgb2YgY2xvbmluZyByZXNwb25zZVx1MjAxOXMgYm9keS5cbiAgaWYgKHJlc3BvbnNlLmJvZHkgIT0gbnVsbCkge1xuICAgIG5ld1Jlc3BvbnNlLmJvZHkgPSBjbG9uZUJvZHkobmV3UmVzcG9uc2UsIHJlc3BvbnNlLmJvZHkpXG4gIH1cblxuICAvLyA0LiBSZXR1cm4gbmV3UmVzcG9uc2UuXG4gIHJldHVybiBuZXdSZXNwb25zZVxufVxuXG5mdW5jdGlvbiBtYWtlUmVzcG9uc2UgKGluaXQpIHtcbiAgcmV0dXJuIHtcbiAgICBhYm9ydGVkOiBmYWxzZSxcbiAgICByYW5nZVJlcXVlc3RlZDogZmFsc2UsXG4gICAgdGltaW5nQWxsb3dQYXNzZWQ6IGZhbHNlLFxuICAgIHJlcXVlc3RJbmNsdWRlc0NyZWRlbnRpYWxzOiBmYWxzZSxcbiAgICB0eXBlOiAnZGVmYXVsdCcsXG4gICAgc3RhdHVzOiAyMDAsXG4gICAgdGltaW5nSW5mbzogbnVsbCxcbiAgICBjYWNoZVN0YXRlOiAnJyxcbiAgICBzdGF0dXNUZXh0OiAnJyxcbiAgICAuLi5pbml0LFxuICAgIGhlYWRlcnNMaXN0OiBpbml0Py5oZWFkZXJzTGlzdFxuICAgICAgPyBuZXcgSGVhZGVyc0xpc3QoaW5pdD8uaGVhZGVyc0xpc3QpXG4gICAgICA6IG5ldyBIZWFkZXJzTGlzdCgpLFxuICAgIHVybExpc3Q6IGluaXQ/LnVybExpc3QgPyBbLi4uaW5pdC51cmxMaXN0XSA6IFtdXG4gIH1cbn1cblxuZnVuY3Rpb24gbWFrZU5ldHdvcmtFcnJvciAocmVhc29uKSB7XG4gIGNvbnN0IGlzRXJyb3IgPSBpc0Vycm9yTGlrZShyZWFzb24pXG4gIHJldHVybiBtYWtlUmVzcG9uc2Uoe1xuICAgIHR5cGU6ICdlcnJvcicsXG4gICAgc3RhdHVzOiAwLFxuICAgIGVycm9yOiBpc0Vycm9yXG4gICAgICA/IHJlYXNvblxuICAgICAgOiBuZXcgRXJyb3IocmVhc29uID8gU3RyaW5nKHJlYXNvbikgOiByZWFzb24pLFxuICAgIGFib3J0ZWQ6IHJlYXNvbiAmJiByZWFzb24ubmFtZSA9PT0gJ0Fib3J0RXJyb3InXG4gIH0pXG59XG5cbi8vIEBzZWUgaHR0cHM6Ly9mZXRjaC5zcGVjLndoYXR3Zy5vcmcvI2NvbmNlcHQtbmV0d29yay1lcnJvclxuZnVuY3Rpb24gaXNOZXR3b3JrRXJyb3IgKHJlc3BvbnNlKSB7XG4gIHJldHVybiAoXG4gICAgLy8gQSBuZXR3b3JrIGVycm9yIGlzIGEgcmVzcG9uc2Ugd2hvc2UgdHlwZSBpcyBcImVycm9yXCIsXG4gICAgcmVzcG9uc2UudHlwZSA9PT0gJ2Vycm9yJyAmJlxuICAgIC8vIHN0YXR1cyBpcyAwXG4gICAgcmVzcG9uc2Uuc3RhdHVzID09PSAwXG4gIClcbn1cblxuZnVuY3Rpb24gbWFrZUZpbHRlcmVkUmVzcG9uc2UgKHJlc3BvbnNlLCBzdGF0ZSkge1xuICBzdGF0ZSA9IHtcbiAgICBpbnRlcm5hbFJlc3BvbnNlOiByZXNwb25zZSxcbiAgICAuLi5zdGF0ZVxuICB9XG5cbiAgcmV0dXJuIG5ldyBQcm94eShyZXNwb25zZSwge1xuICAgIGdldCAodGFyZ2V0LCBwKSB7XG4gICAgICByZXR1cm4gcCBpbiBzdGF0ZSA/IHN0YXRlW3BdIDogdGFyZ2V0W3BdXG4gICAgfSxcbiAgICBzZXQgKHRhcmdldCwgcCwgdmFsdWUpIHtcbiAgICAgIGFzc2VydCghKHAgaW4gc3RhdGUpKVxuICAgICAgdGFyZ2V0W3BdID0gdmFsdWVcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuICB9KVxufVxuXG4vLyBodHRwczovL2ZldGNoLnNwZWMud2hhdHdnLm9yZy8jY29uY2VwdC1maWx0ZXJlZC1yZXNwb25zZVxuZnVuY3Rpb24gZmlsdGVyUmVzcG9uc2UgKHJlc3BvbnNlLCB0eXBlKSB7XG4gIC8vIFNldCByZXNwb25zZSB0byB0aGUgZm9sbG93aW5nIGZpbHRlcmVkIHJlc3BvbnNlIHdpdGggcmVzcG9uc2UgYXMgaXRzXG4gIC8vIGludGVybmFsIHJlc3BvbnNlLCBkZXBlbmRpbmcgb24gcmVxdWVzdFx1MjAxOXMgcmVzcG9uc2UgdGFpbnRpbmc6XG4gIGlmICh0eXBlID09PSAnYmFzaWMnKSB7XG4gICAgLy8gQSBiYXNpYyBmaWx0ZXJlZCByZXNwb25zZSBpcyBhIGZpbHRlcmVkIHJlc3BvbnNlIHdob3NlIHR5cGUgaXMgXCJiYXNpY1wiXG4gICAgLy8gYW5kIGhlYWRlciBsaXN0IGV4Y2x1ZGVzIGFueSBoZWFkZXJzIGluIGludGVybmFsIHJlc3BvbnNlXHUyMDE5cyBoZWFkZXIgbGlzdFxuICAgIC8vIHdob3NlIG5hbWUgaXMgYSBmb3JiaWRkZW4gcmVzcG9uc2UtaGVhZGVyIG5hbWUuXG5cbiAgICAvLyBOb3RlOiB1bmRpY2kgZG9lcyBub3QgaW1wbGVtZW50IGZvcmJpZGRlbiByZXNwb25zZS1oZWFkZXIgbmFtZXNcbiAgICByZXR1cm4gbWFrZUZpbHRlcmVkUmVzcG9uc2UocmVzcG9uc2UsIHtcbiAgICAgIHR5cGU6ICdiYXNpYycsXG4gICAgICBoZWFkZXJzTGlzdDogcmVzcG9uc2UuaGVhZGVyc0xpc3RcbiAgICB9KVxuICB9IGVsc2UgaWYgKHR5cGUgPT09ICdjb3JzJykge1xuICAgIC8vIEEgQ09SUyBmaWx0ZXJlZCByZXNwb25zZSBpcyBhIGZpbHRlcmVkIHJlc3BvbnNlIHdob3NlIHR5cGUgaXMgXCJjb3JzXCJcbiAgICAvLyBhbmQgaGVhZGVyIGxpc3QgZXhjbHVkZXMgYW55IGhlYWRlcnMgaW4gaW50ZXJuYWwgcmVzcG9uc2VcdTIwMTlzIGhlYWRlclxuICAgIC8vIGxpc3Qgd2hvc2UgbmFtZSBpcyBub3QgYSBDT1JTLXNhZmVsaXN0ZWQgcmVzcG9uc2UtaGVhZGVyIG5hbWUsIGdpdmVuXG4gICAgLy8gaW50ZXJuYWwgcmVzcG9uc2VcdTIwMTlzIENPUlMtZXhwb3NlZCBoZWFkZXItbmFtZSBsaXN0LlxuXG4gICAgLy8gTm90ZTogdW5kaWNpIGRvZXMgbm90IGltcGxlbWVudCBDT1JTLXNhZmVsaXN0ZWQgcmVzcG9uc2UtaGVhZGVyIG5hbWVzXG4gICAgcmV0dXJuIG1ha2VGaWx0ZXJlZFJlc3BvbnNlKHJlc3BvbnNlLCB7XG4gICAgICB0eXBlOiAnY29ycycsXG4gICAgICBoZWFkZXJzTGlzdDogcmVzcG9uc2UuaGVhZGVyc0xpc3RcbiAgICB9KVxuICB9IGVsc2UgaWYgKHR5cGUgPT09ICdvcGFxdWUnKSB7XG4gICAgLy8gQW4gb3BhcXVlIGZpbHRlcmVkIHJlc3BvbnNlIGlzIGEgZmlsdGVyZWQgcmVzcG9uc2Ugd2hvc2UgdHlwZSBpc1xuICAgIC8vIFwib3BhcXVlXCIsIFVSTCBsaXN0IGlzIHRoZSBlbXB0eSBsaXN0LCBzdGF0dXMgaXMgMCwgc3RhdHVzIG1lc3NhZ2VcbiAgICAvLyBpcyB0aGUgZW1wdHkgYnl0ZSBzZXF1ZW5jZSwgaGVhZGVyIGxpc3QgaXMgZW1wdHksIGFuZCBib2R5IGlzIG51bGwuXG5cbiAgICByZXR1cm4gbWFrZUZpbHRlcmVkUmVzcG9uc2UocmVzcG9uc2UsIHtcbiAgICAgIHR5cGU6ICdvcGFxdWUnLFxuICAgICAgdXJsTGlzdDogT2JqZWN0LmZyZWV6ZShbXSksXG4gICAgICBzdGF0dXM6IDAsXG4gICAgICBzdGF0dXNUZXh0OiAnJyxcbiAgICAgIGJvZHk6IG51bGxcbiAgICB9KVxuICB9IGVsc2UgaWYgKHR5cGUgPT09ICdvcGFxdWVyZWRpcmVjdCcpIHtcbiAgICAvLyBBbiBvcGFxdWUtcmVkaXJlY3QgZmlsdGVyZWQgcmVzcG9uc2UgaXMgYSBmaWx0ZXJlZCByZXNwb25zZSB3aG9zZSB0eXBlXG4gICAgLy8gaXMgXCJvcGFxdWVyZWRpcmVjdFwiLCBzdGF0dXMgaXMgMCwgc3RhdHVzIG1lc3NhZ2UgaXMgdGhlIGVtcHR5IGJ5dGVcbiAgICAvLyBzZXF1ZW5jZSwgaGVhZGVyIGxpc3QgaXMgZW1wdHksIGFuZCBib2R5IGlzIG51bGwuXG5cbiAgICByZXR1cm4gbWFrZUZpbHRlcmVkUmVzcG9uc2UocmVzcG9uc2UsIHtcbiAgICAgIHR5cGU6ICdvcGFxdWVyZWRpcmVjdCcsXG4gICAgICBzdGF0dXM6IDAsXG4gICAgICBzdGF0dXNUZXh0OiAnJyxcbiAgICAgIGhlYWRlcnNMaXN0OiBbXSxcbiAgICAgIGJvZHk6IG51bGxcbiAgICB9KVxuICB9IGVsc2Uge1xuICAgIGFzc2VydChmYWxzZSlcbiAgfVxufVxuXG4vLyBodHRwczovL2ZldGNoLnNwZWMud2hhdHdnLm9yZy8jYXBwcm9wcmlhdGUtbmV0d29yay1lcnJvclxuZnVuY3Rpb24gbWFrZUFwcHJvcHJpYXRlTmV0d29ya0Vycm9yIChmZXRjaFBhcmFtcywgZXJyID0gbnVsbCkge1xuICAvLyAxLiBBc3NlcnQ6IGZldGNoUGFyYW1zIGlzIGNhbmNlbGVkLlxuICBhc3NlcnQoaXNDYW5jZWxsZWQoZmV0Y2hQYXJhbXMpKVxuXG4gIC8vIDIuIFJldHVybiBhbiBhYm9ydGVkIG5ldHdvcmsgZXJyb3IgaWYgZmV0Y2hQYXJhbXMgaXMgYWJvcnRlZDtcbiAgLy8gb3RoZXJ3aXNlIHJldHVybiBhIG5ldHdvcmsgZXJyb3IuXG4gIHJldHVybiBpc0Fib3J0ZWQoZmV0Y2hQYXJhbXMpXG4gICAgPyBtYWtlTmV0d29ya0Vycm9yKE9iamVjdC5hc3NpZ24obmV3IERPTUV4Y2VwdGlvbignVGhlIG9wZXJhdGlvbiB3YXMgYWJvcnRlZC4nLCAnQWJvcnRFcnJvcicpLCB7IGNhdXNlOiBlcnIgfSkpXG4gICAgOiBtYWtlTmV0d29ya0Vycm9yKE9iamVjdC5hc3NpZ24obmV3IERPTUV4Y2VwdGlvbignUmVxdWVzdCB3YXMgY2FuY2VsbGVkLicpLCB7IGNhdXNlOiBlcnIgfSkpXG59XG5cbi8vIGh0dHBzOi8vd2hhdHByLm9yZy9mZXRjaC8xMzkyLmh0bWwjaW5pdGlhbGl6ZS1hLXJlc3BvbnNlXG5mdW5jdGlvbiBpbml0aWFsaXplUmVzcG9uc2UgKHJlc3BvbnNlLCBpbml0LCBib2R5KSB7XG4gIC8vIDEuIElmIGluaXRbXCJzdGF0dXNcIl0gaXMgbm90IGluIHRoZSByYW5nZSAyMDAgdG8gNTk5LCBpbmNsdXNpdmUsIHRoZW5cbiAgLy8gICAgdGhyb3cgYSBSYW5nZUVycm9yLlxuICBpZiAoaW5pdC5zdGF0dXMgIT09IG51bGwgJiYgKGluaXQuc3RhdHVzIDwgMjAwIHx8IGluaXQuc3RhdHVzID4gNTk5KSkge1xuICAgIHRocm93IG5ldyBSYW5nZUVycm9yKCdpbml0W1wic3RhdHVzXCJdIG11c3QgYmUgaW4gdGhlIHJhbmdlIG9mIDIwMCB0byA1OTksIGluY2x1c2l2ZS4nKVxuICB9XG5cbiAgLy8gMi4gSWYgaW5pdFtcInN0YXR1c1RleHRcIl0gZG9lcyBub3QgbWF0Y2ggdGhlIHJlYXNvbi1waHJhc2UgdG9rZW4gcHJvZHVjdGlvbixcbiAgLy8gICAgdGhlbiB0aHJvdyBhIFR5cGVFcnJvci5cbiAgaWYgKCdzdGF0dXNUZXh0JyBpbiBpbml0ICYmIGluaXQuc3RhdHVzVGV4dCAhPSBudWxsKSB7XG4gICAgLy8gU2VlLCBodHRwczovL2RhdGF0cmFja2VyLmlldGYub3JnL2RvYy9odG1sL3JmYzcyMzAjc2VjdGlvbi0zLjEuMjpcbiAgICAvLyAgIHJlYXNvbi1waHJhc2UgID0gKiggSFRBQiAvIFNQIC8gVkNIQVIgLyBvYnMtdGV4dCApXG4gICAgaWYgKCFpc1ZhbGlkUmVhc29uUGhyYXNlKFN0cmluZyhpbml0LnN0YXR1c1RleHQpKSkge1xuICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignSW52YWxpZCBzdGF0dXNUZXh0JylcbiAgICB9XG4gIH1cblxuICAvLyAzLiBTZXQgcmVzcG9uc2VcdTIwMTlzIHJlc3BvbnNlXHUyMDE5cyBzdGF0dXMgdG8gaW5pdFtcInN0YXR1c1wiXS5cbiAgaWYgKCdzdGF0dXMnIGluIGluaXQgJiYgaW5pdC5zdGF0dXMgIT0gbnVsbCkge1xuICAgIHJlc3BvbnNlW2tTdGF0ZV0uc3RhdHVzID0gaW5pdC5zdGF0dXNcbiAgfVxuXG4gIC8vIDQuIFNldCByZXNwb25zZVx1MjAxOXMgcmVzcG9uc2VcdTIwMTlzIHN0YXR1cyBtZXNzYWdlIHRvIGluaXRbXCJzdGF0dXNUZXh0XCJdLlxuICBpZiAoJ3N0YXR1c1RleHQnIGluIGluaXQgJiYgaW5pdC5zdGF0dXNUZXh0ICE9IG51bGwpIHtcbiAgICByZXNwb25zZVtrU3RhdGVdLnN0YXR1c1RleHQgPSBpbml0LnN0YXR1c1RleHRcbiAgfVxuXG4gIC8vIDUuIElmIGluaXRbXCJoZWFkZXJzXCJdIGV4aXN0cywgdGhlbiBmaWxsIHJlc3BvbnNlXHUyMDE5cyBoZWFkZXJzIHdpdGggaW5pdFtcImhlYWRlcnNcIl0uXG4gIGlmICgnaGVhZGVycycgaW4gaW5pdCAmJiBpbml0LmhlYWRlcnMgIT0gbnVsbCkge1xuICAgIGZpbGwocmVzcG9uc2Vba0hlYWRlcnNdLCBpbml0LmhlYWRlcnMpXG4gIH1cblxuICAvLyA2LiBJZiBib2R5IHdhcyBnaXZlbiwgdGhlbjpcbiAgaWYgKGJvZHkpIHtcbiAgICAvLyAxLiBJZiByZXNwb25zZSdzIHN0YXR1cyBpcyBhIG51bGwgYm9keSBzdGF0dXMsIHRoZW4gdGhyb3cgYSBUeXBlRXJyb3IuXG4gICAgaWYgKG51bGxCb2R5U3RhdHVzLmluY2x1ZGVzKHJlc3BvbnNlLnN0YXR1cykpIHtcbiAgICAgIHRocm93IHdlYmlkbC5lcnJvcnMuZXhjZXB0aW9uKHtcbiAgICAgICAgaGVhZGVyOiAnUmVzcG9uc2UgY29uc3RydWN0b3InLFxuICAgICAgICBtZXNzYWdlOiBgSW52YWxpZCByZXNwb25zZSBzdGF0dXMgY29kZSAke3Jlc3BvbnNlLnN0YXR1c31gXG4gICAgICB9KVxuICAgIH1cblxuICAgIC8vIDIuIFNldCByZXNwb25zZSdzIGJvZHkgdG8gYm9keSdzIGJvZHkuXG4gICAgcmVzcG9uc2Vba1N0YXRlXS5ib2R5ID0gYm9keS5ib2R5XG5cbiAgICAvLyAzLiBJZiBib2R5J3MgdHlwZSBpcyBub24tbnVsbCBhbmQgcmVzcG9uc2UncyBoZWFkZXIgbGlzdCBkb2VzIG5vdCBjb250YWluXG4gICAgLy8gICAgYENvbnRlbnQtVHlwZWAsIHRoZW4gYXBwZW5kIChgQ29udGVudC1UeXBlYCwgYm9keSdzIHR5cGUpIHRvIHJlc3BvbnNlJ3MgaGVhZGVyIGxpc3QuXG4gICAgaWYgKGJvZHkudHlwZSAhPSBudWxsICYmICFyZXNwb25zZVtrU3RhdGVdLmhlYWRlcnNMaXN0LmNvbnRhaW5zKCdjb250ZW50LXR5cGUnLCB0cnVlKSkge1xuICAgICAgcmVzcG9uc2Vba1N0YXRlXS5oZWFkZXJzTGlzdC5hcHBlbmQoJ2NvbnRlbnQtdHlwZScsIGJvZHkudHlwZSwgdHJ1ZSlcbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBAc2VlIGh0dHBzOi8vZmV0Y2guc3BlYy53aGF0d2cub3JnLyNyZXNwb25zZS1jcmVhdGVcbiAqIEBwYXJhbSB7YW55fSBpbm5lclJlc3BvbnNlXG4gKiBAcGFyYW0geydyZXF1ZXN0JyB8ICdpbW11dGFibGUnIHwgJ3JlcXVlc3Qtbm8tY29ycycgfCAncmVzcG9uc2UnIHwgJ25vbmUnfSBndWFyZFxuICogQHJldHVybnMge1Jlc3BvbnNlfVxuICovXG5mdW5jdGlvbiBmcm9tSW5uZXJSZXNwb25zZSAoaW5uZXJSZXNwb25zZSwgZ3VhcmQpIHtcbiAgY29uc3QgcmVzcG9uc2UgPSBuZXcgUmVzcG9uc2Uoa0NvbnN0cnVjdClcbiAgcmVzcG9uc2Vba1N0YXRlXSA9IGlubmVyUmVzcG9uc2VcbiAgcmVzcG9uc2Vba0hlYWRlcnNdID0gbmV3IEhlYWRlcnMoa0NvbnN0cnVjdClcbiAgc2V0SGVhZGVyc0xpc3QocmVzcG9uc2Vba0hlYWRlcnNdLCBpbm5lclJlc3BvbnNlLmhlYWRlcnNMaXN0KVxuICBzZXRIZWFkZXJzR3VhcmQocmVzcG9uc2Vba0hlYWRlcnNdLCBndWFyZClcblxuICBpZiAoaGFzRmluYWxpemF0aW9uUmVnaXN0cnkgJiYgaW5uZXJSZXNwb25zZS5ib2R5Py5zdHJlYW0pIHtcbiAgICAvLyBJZiB0aGUgdGFyZ2V0IChyZXNwb25zZSkgaXMgcmVjbGFpbWVkLCB0aGUgY2xlYW51cCBjYWxsYmFjayBtYXkgYmUgY2FsbGVkIGF0IHNvbWUgcG9pbnQgd2l0aFxuICAgIC8vIHRoZSBoZWxkIHZhbHVlIHByb3ZpZGVkIGZvciBpdCAoaW5uZXJSZXNwb25zZS5ib2R5LnN0cmVhbSkuIFRoZSBoZWxkIHZhbHVlIGNhbiBiZSBhbnkgdmFsdWU6XG4gICAgLy8gYSBwcmltaXRpdmUgb3IgYW4gb2JqZWN0LCBldmVuIHVuZGVmaW5lZC4gSWYgdGhlIGhlbGQgdmFsdWUgaXMgYW4gb2JqZWN0LCB0aGUgcmVnaXN0cnkga2VlcHNcbiAgICAvLyBhIHN0cm9uZyByZWZlcmVuY2UgdG8gaXQgKHNvIGl0IGNhbiBwYXNzIGl0IHRvIHRoZSBjbGVhbnVwIGNhbGxiYWNrIGxhdGVyKS4gUmV3b3JkZWQgZnJvbVxuICAgIC8vIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0phdmFTY3JpcHQvUmVmZXJlbmNlL0dsb2JhbF9PYmplY3RzL0ZpbmFsaXphdGlvblJlZ2lzdHJ5XG4gICAgc3RyZWFtUmVnaXN0cnkucmVnaXN0ZXIocmVzcG9uc2UsIG5ldyBXZWFrUmVmKGlubmVyUmVzcG9uc2UuYm9keS5zdHJlYW0pKVxuICB9XG5cbiAgcmV0dXJuIHJlc3BvbnNlXG59XG5cbndlYmlkbC5jb252ZXJ0ZXJzLlJlYWRhYmxlU3RyZWFtID0gd2ViaWRsLmludGVyZmFjZUNvbnZlcnRlcihcbiAgUmVhZGFibGVTdHJlYW1cbilcblxud2ViaWRsLmNvbnZlcnRlcnMuRm9ybURhdGEgPSB3ZWJpZGwuaW50ZXJmYWNlQ29udmVydGVyKFxuICBGb3JtRGF0YVxuKVxuXG53ZWJpZGwuY29udmVydGVycy5VUkxTZWFyY2hQYXJhbXMgPSB3ZWJpZGwuaW50ZXJmYWNlQ29udmVydGVyKFxuICBVUkxTZWFyY2hQYXJhbXNcbilcblxuLy8gaHR0cHM6Ly9mZXRjaC5zcGVjLndoYXR3Zy5vcmcvI3R5cGVkZWZkZWYteG1saHR0cHJlcXVlc3Rib2R5aW5pdFxud2ViaWRsLmNvbnZlcnRlcnMuWE1MSHR0cFJlcXVlc3RCb2R5SW5pdCA9IGZ1bmN0aW9uIChWLCBwcmVmaXgsIG5hbWUpIHtcbiAgaWYgKHR5cGVvZiBWID09PSAnc3RyaW5nJykge1xuICAgIHJldHVybiB3ZWJpZGwuY29udmVydGVycy5VU1ZTdHJpbmcoViwgcHJlZml4LCBuYW1lKVxuICB9XG5cbiAgaWYgKGlzQmxvYkxpa2UoVikpIHtcbiAgICByZXR1cm4gd2ViaWRsLmNvbnZlcnRlcnMuQmxvYihWLCBwcmVmaXgsIG5hbWUsIHsgc3RyaWN0OiBmYWxzZSB9KVxuICB9XG5cbiAgaWYgKEFycmF5QnVmZmVyLmlzVmlldyhWKSB8fCB0eXBlcy5pc0FycmF5QnVmZmVyKFYpKSB7XG4gICAgcmV0dXJuIHdlYmlkbC5jb252ZXJ0ZXJzLkJ1ZmZlclNvdXJjZShWLCBwcmVmaXgsIG5hbWUpXG4gIH1cblxuICBpZiAodXRpbC5pc0Zvcm1EYXRhTGlrZShWKSkge1xuICAgIHJldHVybiB3ZWJpZGwuY29udmVydGVycy5Gb3JtRGF0YShWLCBwcmVmaXgsIG5hbWUsIHsgc3RyaWN0OiBmYWxzZSB9KVxuICB9XG5cbiAgaWYgKFYgaW5zdGFuY2VvZiBVUkxTZWFyY2hQYXJhbXMpIHtcbiAgICByZXR1cm4gd2ViaWRsLmNvbnZlcnRlcnMuVVJMU2VhcmNoUGFyYW1zKFYsIHByZWZpeCwgbmFtZSlcbiAgfVxuXG4gIHJldHVybiB3ZWJpZGwuY29udmVydGVycy5ET01TdHJpbmcoViwgcHJlZml4LCBuYW1lKVxufVxuXG4vLyBodHRwczovL2ZldGNoLnNwZWMud2hhdHdnLm9yZy8jYm9keWluaXRcbndlYmlkbC5jb252ZXJ0ZXJzLkJvZHlJbml0ID0gZnVuY3Rpb24gKFYsIHByZWZpeCwgYXJndW1lbnQpIHtcbiAgaWYgKFYgaW5zdGFuY2VvZiBSZWFkYWJsZVN0cmVhbSkge1xuICAgIHJldHVybiB3ZWJpZGwuY29udmVydGVycy5SZWFkYWJsZVN0cmVhbShWLCBwcmVmaXgsIGFyZ3VtZW50KVxuICB9XG5cbiAgLy8gTm90ZTogdGhlIHNwZWMgZG9lc24ndCBpbmNsdWRlIGFzeW5jIGl0ZXJhYmxlcyxcbiAgLy8gdGhpcyBpcyBhbiB1bmRpY2kgZXh0ZW5zaW9uLlxuICBpZiAoVj8uW1N5bWJvbC5hc3luY0l0ZXJhdG9yXSkge1xuICAgIHJldHVybiBWXG4gIH1cblxuICByZXR1cm4gd2ViaWRsLmNvbnZlcnRlcnMuWE1MSHR0cFJlcXVlc3RCb2R5SW5pdChWLCBwcmVmaXgsIGFyZ3VtZW50KVxufVxuXG53ZWJpZGwuY29udmVydGVycy5SZXNwb25zZUluaXQgPSB3ZWJpZGwuZGljdGlvbmFyeUNvbnZlcnRlcihbXG4gIHtcbiAgICBrZXk6ICdzdGF0dXMnLFxuICAgIGNvbnZlcnRlcjogd2ViaWRsLmNvbnZlcnRlcnNbJ3Vuc2lnbmVkIHNob3J0J10sXG4gICAgZGVmYXVsdFZhbHVlOiAoKSA9PiAyMDBcbiAgfSxcbiAge1xuICAgIGtleTogJ3N0YXR1c1RleHQnLFxuICAgIGNvbnZlcnRlcjogd2ViaWRsLmNvbnZlcnRlcnMuQnl0ZVN0cmluZyxcbiAgICBkZWZhdWx0VmFsdWU6ICgpID0+ICcnXG4gIH0sXG4gIHtcbiAgICBrZXk6ICdoZWFkZXJzJyxcbiAgICBjb252ZXJ0ZXI6IHdlYmlkbC5jb252ZXJ0ZXJzLkhlYWRlcnNJbml0XG4gIH1cbl0pXG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICBpc05ldHdvcmtFcnJvcixcbiAgbWFrZU5ldHdvcmtFcnJvcixcbiAgbWFrZVJlc3BvbnNlLFxuICBtYWtlQXBwcm9wcmlhdGVOZXR3b3JrRXJyb3IsXG4gIGZpbHRlclJlc3BvbnNlLFxuICBSZXNwb25zZSxcbiAgY2xvbmVSZXNwb25zZSxcbiAgZnJvbUlubmVyUmVzcG9uc2Vcbn1cbiIsICIndXNlIHN0cmljdCdcblxuY29uc3QgeyBrQ29ubmVjdGVkLCBrU2l6ZSB9ID0gcmVxdWlyZSgnLi4vLi4vY29yZS9zeW1ib2xzJylcblxuY2xhc3MgQ29tcGF0V2Vha1JlZiB7XG4gIGNvbnN0cnVjdG9yICh2YWx1ZSkge1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZVxuICB9XG5cbiAgZGVyZWYgKCkge1xuICAgIHJldHVybiB0aGlzLnZhbHVlW2tDb25uZWN0ZWRdID09PSAwICYmIHRoaXMudmFsdWVba1NpemVdID09PSAwXG4gICAgICA/IHVuZGVmaW5lZFxuICAgICAgOiB0aGlzLnZhbHVlXG4gIH1cbn1cblxuY2xhc3MgQ29tcGF0RmluYWxpemVyIHtcbiAgY29uc3RydWN0b3IgKGZpbmFsaXplcikge1xuICAgIHRoaXMuZmluYWxpemVyID0gZmluYWxpemVyXG4gIH1cblxuICByZWdpc3RlciAoZGlzcGF0Y2hlciwga2V5KSB7XG4gICAgaWYgKGRpc3BhdGNoZXIub24pIHtcbiAgICAgIGRpc3BhdGNoZXIub24oJ2Rpc2Nvbm5lY3QnLCAoKSA9PiB7XG4gICAgICAgIGlmIChkaXNwYXRjaGVyW2tDb25uZWN0ZWRdID09PSAwICYmIGRpc3BhdGNoZXJba1NpemVdID09PSAwKSB7XG4gICAgICAgICAgdGhpcy5maW5hbGl6ZXIoa2V5KVxuICAgICAgICB9XG4gICAgICB9KVxuICAgIH1cbiAgfVxuXG4gIHVucmVnaXN0ZXIgKGtleSkge31cbn1cblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoKSB7XG4gIC8vIEZJWE1FOiByZW1vdmUgd29ya2Fyb3VuZCB3aGVuIHRoZSBOb2RlIGJ1ZyBpcyBiYWNrcG9ydGVkIHRvIHYxOFxuICAvLyBodHRwczovL2dpdGh1Yi5jb20vbm9kZWpzL25vZGUvaXNzdWVzLzQ5MzQ0I2lzc3VlY29tbWVudC0xNzQxNzc2MzA4XG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX1Y4X0NPVkVSQUdFICYmIHByb2Nlc3MudmVyc2lvbi5zdGFydHNXaXRoKCd2MTgnKSkge1xuICAgIHByb2Nlc3MuX3Jhd0RlYnVnKCdVc2luZyBjb21wYXRpYmlsaXR5IFdlYWtSZWYgYW5kIEZpbmFsaXphdGlvblJlZ2lzdHJ5JylcbiAgICByZXR1cm4ge1xuICAgICAgV2Vha1JlZjogQ29tcGF0V2Vha1JlZixcbiAgICAgIEZpbmFsaXphdGlvblJlZ2lzdHJ5OiBDb21wYXRGaW5hbGl6ZXJcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHsgV2Vha1JlZiwgRmluYWxpemF0aW9uUmVnaXN0cnkgfVxufVxuIiwgIi8qIGdsb2JhbHMgQWJvcnRDb250cm9sbGVyICovXG5cbid1c2Ugc3RyaWN0J1xuXG5jb25zdCB7IGV4dHJhY3RCb2R5LCBtaXhpbkJvZHksIGNsb25lQm9keSwgYm9keVVudXNhYmxlIH0gPSByZXF1aXJlKCcuL2JvZHknKVxuY29uc3QgeyBIZWFkZXJzLCBmaWxsOiBmaWxsSGVhZGVycywgSGVhZGVyc0xpc3QsIHNldEhlYWRlcnNHdWFyZCwgZ2V0SGVhZGVyc0d1YXJkLCBzZXRIZWFkZXJzTGlzdCwgZ2V0SGVhZGVyc0xpc3QgfSA9IHJlcXVpcmUoJy4vaGVhZGVycycpXG5jb25zdCB7IEZpbmFsaXphdGlvblJlZ2lzdHJ5IH0gPSByZXF1aXJlKCcuL2Rpc3BhdGNoZXItd2Vha3JlZicpKClcbmNvbnN0IHV0aWwgPSByZXF1aXJlKCcuLi8uLi9jb3JlL3V0aWwnKVxuY29uc3Qgbm9kZVV0aWwgPSByZXF1aXJlKCdub2RlOnV0aWwnKVxuY29uc3Qge1xuICBpc1ZhbGlkSFRUUFRva2VuLFxuICBzYW1lT3JpZ2luLFxuICBlbnZpcm9ubWVudFNldHRpbmdzT2JqZWN0XG59ID0gcmVxdWlyZSgnLi91dGlsJylcbmNvbnN0IHtcbiAgZm9yYmlkZGVuTWV0aG9kc1NldCxcbiAgY29yc1NhZmVMaXN0ZWRNZXRob2RzU2V0LFxuICByZWZlcnJlclBvbGljeSxcbiAgcmVxdWVzdFJlZGlyZWN0LFxuICByZXF1ZXN0TW9kZSxcbiAgcmVxdWVzdENyZWRlbnRpYWxzLFxuICByZXF1ZXN0Q2FjaGUsXG4gIHJlcXVlc3REdXBsZXhcbn0gPSByZXF1aXJlKCcuL2NvbnN0YW50cycpXG5jb25zdCB7IGtFbnVtZXJhYmxlUHJvcGVydHksIG5vcm1hbGl6ZWRNZXRob2RSZWNvcmRzQmFzZSwgbm9ybWFsaXplZE1ldGhvZFJlY29yZHMgfSA9IHV0aWxcbmNvbnN0IHsga0hlYWRlcnMsIGtTaWduYWwsIGtTdGF0ZSwga0Rpc3BhdGNoZXIgfSA9IHJlcXVpcmUoJy4vc3ltYm9scycpXG5jb25zdCB7IHdlYmlkbCB9ID0gcmVxdWlyZSgnLi93ZWJpZGwnKVxuY29uc3QgeyBVUkxTZXJpYWxpemVyIH0gPSByZXF1aXJlKCcuL2RhdGEtdXJsJylcbmNvbnN0IHsga0NvbnN0cnVjdCB9ID0gcmVxdWlyZSgnLi4vLi4vY29yZS9zeW1ib2xzJylcbmNvbnN0IGFzc2VydCA9IHJlcXVpcmUoJ25vZGU6YXNzZXJ0JylcbmNvbnN0IHsgZ2V0TWF4TGlzdGVuZXJzLCBzZXRNYXhMaXN0ZW5lcnMsIGdldEV2ZW50TGlzdGVuZXJzLCBkZWZhdWx0TWF4TGlzdGVuZXJzIH0gPSByZXF1aXJlKCdub2RlOmV2ZW50cycpXG5cbmNvbnN0IGtBYm9ydENvbnRyb2xsZXIgPSBTeW1ib2woJ2Fib3J0Q29udHJvbGxlcicpXG5cbmNvbnN0IHJlcXVlc3RGaW5hbGl6ZXIgPSBuZXcgRmluYWxpemF0aW9uUmVnaXN0cnkoKHsgc2lnbmFsLCBhYm9ydCB9KSA9PiB7XG4gIHNpZ25hbC5yZW1vdmVFdmVudExpc3RlbmVyKCdhYm9ydCcsIGFib3J0KVxufSlcblxuY29uc3QgZGVwZW5kZW50Q29udHJvbGxlck1hcCA9IG5ldyBXZWFrTWFwKClcblxuZnVuY3Rpb24gYnVpbGRBYm9ydCAoYWNSZWYpIHtcbiAgcmV0dXJuIGFib3J0XG5cbiAgZnVuY3Rpb24gYWJvcnQgKCkge1xuICAgIGNvbnN0IGFjID0gYWNSZWYuZGVyZWYoKVxuICAgIGlmIChhYyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAvLyBDdXJyZW50bHksIHRoZXJlIGlzIGEgcHJvYmxlbSB3aXRoIEZpbmFsaXphdGlvblJlZ2lzdHJ5LlxuICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL25vZGVqcy9ub2RlL2lzc3Vlcy80OTM0NFxuICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL25vZGVqcy9ub2RlL2lzc3Vlcy80Nzc0OFxuICAgICAgLy8gSW4gdGhlIGNhc2Ugb2YgYWJvcnQsIHRoZSBmaXJzdCBzdGVwIGlzIHRvIHVucmVnaXN0ZXIgZnJvbSBpdC5cbiAgICAgIC8vIElmIHRoZSBjb250cm9sbGVyIGNhbiByZWZlciB0byBpdCwgaXQgaXMgc3RpbGwgcmVnaXN0ZXJlZC5cbiAgICAgIC8vIEl0IHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgZnV0dXJlLlxuICAgICAgcmVxdWVzdEZpbmFsaXplci51bnJlZ2lzdGVyKGFib3J0KVxuXG4gICAgICAvLyBVbnN1YnNjcmliZSBhIGxpc3RlbmVyLlxuICAgICAgLy8gRmluYWxpemF0aW9uUmVnaXN0cnkgd2lsbCBubyBsb25nZXIgYmUgY2FsbGVkLCBzbyB0aGlzIG11c3QgYmUgZG9uZS5cbiAgICAgIHRoaXMucmVtb3ZlRXZlbnRMaXN0ZW5lcignYWJvcnQnLCBhYm9ydClcblxuICAgICAgYWMuYWJvcnQodGhpcy5yZWFzb24pXG5cbiAgICAgIGNvbnN0IGNvbnRyb2xsZXJMaXN0ID0gZGVwZW5kZW50Q29udHJvbGxlck1hcC5nZXQoYWMuc2lnbmFsKVxuXG4gICAgICBpZiAoY29udHJvbGxlckxpc3QgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBpZiAoY29udHJvbGxlckxpc3Quc2l6ZSAhPT0gMCkge1xuICAgICAgICAgIGZvciAoY29uc3QgcmVmIG9mIGNvbnRyb2xsZXJMaXN0KSB7XG4gICAgICAgICAgICBjb25zdCBjdHJsID0gcmVmLmRlcmVmKClcbiAgICAgICAgICAgIGlmIChjdHJsICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgY3RybC5hYm9ydCh0aGlzLnJlYXNvbilcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgY29udHJvbGxlckxpc3QuY2xlYXIoKVxuICAgICAgICB9XG4gICAgICAgIGRlcGVuZGVudENvbnRyb2xsZXJNYXAuZGVsZXRlKGFjLnNpZ25hbClcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxubGV0IHBhdGNoTWV0aG9kV2FybmluZyA9IGZhbHNlXG5cbi8vIGh0dHBzOi8vZmV0Y2guc3BlYy53aGF0d2cub3JnLyNyZXF1ZXN0LWNsYXNzXG5jbGFzcyBSZXF1ZXN0IHtcbiAgLy8gaHR0cHM6Ly9mZXRjaC5zcGVjLndoYXR3Zy5vcmcvI2RvbS1yZXF1ZXN0XG4gIGNvbnN0cnVjdG9yIChpbnB1dCwgaW5pdCA9IHt9KSB7XG4gICAgd2ViaWRsLnV0aWwubWFya0FzVW5jbG9uZWFibGUodGhpcylcbiAgICBpZiAoaW5wdXQgPT09IGtDb25zdHJ1Y3QpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGNvbnN0IHByZWZpeCA9ICdSZXF1ZXN0IGNvbnN0cnVjdG9yJ1xuICAgIHdlYmlkbC5hcmd1bWVudExlbmd0aENoZWNrKGFyZ3VtZW50cywgMSwgcHJlZml4KVxuXG4gICAgaW5wdXQgPSB3ZWJpZGwuY29udmVydGVycy5SZXF1ZXN0SW5mbyhpbnB1dCwgcHJlZml4LCAnaW5wdXQnKVxuICAgIGluaXQgPSB3ZWJpZGwuY29udmVydGVycy5SZXF1ZXN0SW5pdChpbml0LCBwcmVmaXgsICdpbml0JylcblxuICAgIC8vIDEuIExldCByZXF1ZXN0IGJlIG51bGwuXG4gICAgbGV0IHJlcXVlc3QgPSBudWxsXG5cbiAgICAvLyAyLiBMZXQgZmFsbGJhY2tNb2RlIGJlIG51bGwuXG4gICAgbGV0IGZhbGxiYWNrTW9kZSA9IG51bGxcblxuICAgIC8vIDMuIExldCBiYXNlVVJMIGJlIHRoaXNcdTIwMTlzIHJlbGV2YW50IHNldHRpbmdzIG9iamVjdFx1MjAxOXMgQVBJIGJhc2UgVVJMLlxuICAgIGNvbnN0IGJhc2VVcmwgPSBlbnZpcm9ubWVudFNldHRpbmdzT2JqZWN0LnNldHRpbmdzT2JqZWN0LmJhc2VVcmxcblxuICAgIC8vIDQuIExldCBzaWduYWwgYmUgbnVsbC5cbiAgICBsZXQgc2lnbmFsID0gbnVsbFxuXG4gICAgLy8gNS4gSWYgaW5wdXQgaXMgYSBzdHJpbmcsIHRoZW46XG4gICAgaWYgKHR5cGVvZiBpbnB1dCA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHRoaXNba0Rpc3BhdGNoZXJdID0gaW5pdC5kaXNwYXRjaGVyXG5cbiAgICAgIC8vIDEuIExldCBwYXJzZWRVUkwgYmUgdGhlIHJlc3VsdCBvZiBwYXJzaW5nIGlucHV0IHdpdGggYmFzZVVSTC5cbiAgICAgIC8vIDIuIElmIHBhcnNlZFVSTCBpcyBmYWlsdXJlLCB0aGVuIHRocm93IGEgVHlwZUVycm9yLlxuICAgICAgbGV0IHBhcnNlZFVSTFxuICAgICAgdHJ5IHtcbiAgICAgICAgcGFyc2VkVVJMID0gbmV3IFVSTChpbnB1dCwgYmFzZVVybClcbiAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdGYWlsZWQgdG8gcGFyc2UgVVJMIGZyb20gJyArIGlucHV0LCB7IGNhdXNlOiBlcnIgfSlcbiAgICAgIH1cblxuICAgICAgLy8gMy4gSWYgcGFyc2VkVVJMIGluY2x1ZGVzIGNyZWRlbnRpYWxzLCB0aGVuIHRocm93IGEgVHlwZUVycm9yLlxuICAgICAgaWYgKHBhcnNlZFVSTC51c2VybmFtZSB8fCBwYXJzZWRVUkwucGFzc3dvcmQpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcbiAgICAgICAgICAnUmVxdWVzdCBjYW5ub3QgYmUgY29uc3RydWN0ZWQgZnJvbSBhIFVSTCB0aGF0IGluY2x1ZGVzIGNyZWRlbnRpYWxzOiAnICtcbiAgICAgICAgICAgIGlucHV0XG4gICAgICAgIClcbiAgICAgIH1cblxuICAgICAgLy8gNC4gU2V0IHJlcXVlc3QgdG8gYSBuZXcgcmVxdWVzdCB3aG9zZSBVUkwgaXMgcGFyc2VkVVJMLlxuICAgICAgcmVxdWVzdCA9IG1ha2VSZXF1ZXN0KHsgdXJsTGlzdDogW3BhcnNlZFVSTF0gfSlcblxuICAgICAgLy8gNS4gU2V0IGZhbGxiYWNrTW9kZSB0byBcImNvcnNcIi5cbiAgICAgIGZhbGxiYWNrTW9kZSA9ICdjb3JzJ1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzW2tEaXNwYXRjaGVyXSA9IGluaXQuZGlzcGF0Y2hlciB8fCBpbnB1dFtrRGlzcGF0Y2hlcl1cblxuICAgICAgLy8gNi4gT3RoZXJ3aXNlOlxuXG4gICAgICAvLyA3LiBBc3NlcnQ6IGlucHV0IGlzIGEgUmVxdWVzdCBvYmplY3QuXG4gICAgICBhc3NlcnQoaW5wdXQgaW5zdGFuY2VvZiBSZXF1ZXN0KVxuXG4gICAgICAvLyA4LiBTZXQgcmVxdWVzdCB0byBpbnB1dFx1MjAxOXMgcmVxdWVzdC5cbiAgICAgIHJlcXVlc3QgPSBpbnB1dFtrU3RhdGVdXG5cbiAgICAgIC8vIDkuIFNldCBzaWduYWwgdG8gaW5wdXRcdTIwMTlzIHNpZ25hbC5cbiAgICAgIHNpZ25hbCA9IGlucHV0W2tTaWduYWxdXG4gICAgfVxuXG4gICAgLy8gNy4gTGV0IG9yaWdpbiBiZSB0aGlzXHUyMDE5cyByZWxldmFudCBzZXR0aW5ncyBvYmplY3RcdTIwMTlzIG9yaWdpbi5cbiAgICBjb25zdCBvcmlnaW4gPSBlbnZpcm9ubWVudFNldHRpbmdzT2JqZWN0LnNldHRpbmdzT2JqZWN0Lm9yaWdpblxuXG4gICAgLy8gOC4gTGV0IHdpbmRvdyBiZSBcImNsaWVudFwiLlxuICAgIGxldCB3aW5kb3cgPSAnY2xpZW50J1xuXG4gICAgLy8gOS4gSWYgcmVxdWVzdFx1MjAxOXMgd2luZG93IGlzIGFuIGVudmlyb25tZW50IHNldHRpbmdzIG9iamVjdCBhbmQgaXRzIG9yaWdpblxuICAgIC8vIGlzIHNhbWUgb3JpZ2luIHdpdGggb3JpZ2luLCB0aGVuIHNldCB3aW5kb3cgdG8gcmVxdWVzdFx1MjAxOXMgd2luZG93LlxuICAgIGlmIChcbiAgICAgIHJlcXVlc3Qud2luZG93Py5jb25zdHJ1Y3Rvcj8ubmFtZSA9PT0gJ0Vudmlyb25tZW50U2V0dGluZ3NPYmplY3QnICYmXG4gICAgICBzYW1lT3JpZ2luKHJlcXVlc3Qud2luZG93LCBvcmlnaW4pXG4gICAgKSB7XG4gICAgICB3aW5kb3cgPSByZXF1ZXN0LndpbmRvd1xuICAgIH1cblxuICAgIC8vIDEwLiBJZiBpbml0W1wid2luZG93XCJdIGV4aXN0cyBhbmQgaXMgbm9uLW51bGwsIHRoZW4gdGhyb3cgYSBUeXBlRXJyb3IuXG4gICAgaWYgKGluaXQud2luZG93ICE9IG51bGwpIHtcbiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoYCd3aW5kb3cnIG9wdGlvbiAnJHt3aW5kb3d9JyBtdXN0IGJlIG51bGxgKVxuICAgIH1cblxuICAgIC8vIDExLiBJZiBpbml0W1wid2luZG93XCJdIGV4aXN0cywgdGhlbiBzZXQgd2luZG93IHRvIFwibm8td2luZG93XCIuXG4gICAgaWYgKCd3aW5kb3cnIGluIGluaXQpIHtcbiAgICAgIHdpbmRvdyA9ICduby13aW5kb3cnXG4gICAgfVxuXG4gICAgLy8gMTIuIFNldCByZXF1ZXN0IHRvIGEgbmV3IHJlcXVlc3Qgd2l0aCB0aGUgZm9sbG93aW5nIHByb3BlcnRpZXM6XG4gICAgcmVxdWVzdCA9IG1ha2VSZXF1ZXN0KHtcbiAgICAgIC8vIFVSTCByZXF1ZXN0XHUyMDE5cyBVUkwuXG4gICAgICAvLyB1bmRpY2kgaW1wbGVtZW50YXRpb24gbm90ZTogdGhpcyBpcyBzZXQgYXMgdGhlIGZpcnN0IGl0ZW0gaW4gcmVxdWVzdCdzIHVybExpc3QgaW4gbWFrZVJlcXVlc3RcbiAgICAgIC8vIG1ldGhvZCByZXF1ZXN0XHUyMDE5cyBtZXRob2QuXG4gICAgICBtZXRob2Q6IHJlcXVlc3QubWV0aG9kLFxuICAgICAgLy8gaGVhZGVyIGxpc3QgQSBjb3B5IG9mIHJlcXVlc3RcdTIwMTlzIGhlYWRlciBsaXN0LlxuICAgICAgLy8gdW5kaWNpIGltcGxlbWVudGF0aW9uIG5vdGU6IGhlYWRlcnNMaXN0IGlzIGNsb25lZCBpbiBtYWtlUmVxdWVzdFxuICAgICAgaGVhZGVyc0xpc3Q6IHJlcXVlc3QuaGVhZGVyc0xpc3QsXG4gICAgICAvLyB1bnNhZmUtcmVxdWVzdCBmbGFnIFNldC5cbiAgICAgIHVuc2FmZVJlcXVlc3Q6IHJlcXVlc3QudW5zYWZlUmVxdWVzdCxcbiAgICAgIC8vIGNsaWVudCBUaGlzXHUyMDE5cyByZWxldmFudCBzZXR0aW5ncyBvYmplY3QuXG4gICAgICBjbGllbnQ6IGVudmlyb25tZW50U2V0dGluZ3NPYmplY3Quc2V0dGluZ3NPYmplY3QsXG4gICAgICAvLyB3aW5kb3cgd2luZG93LlxuICAgICAgd2luZG93LFxuICAgICAgLy8gcHJpb3JpdHkgcmVxdWVzdFx1MjAxOXMgcHJpb3JpdHkuXG4gICAgICBwcmlvcml0eTogcmVxdWVzdC5wcmlvcml0eSxcbiAgICAgIC8vIG9yaWdpbiByZXF1ZXN0XHUyMDE5cyBvcmlnaW4uIFRoZSBwcm9wYWdhdGlvbiBvZiB0aGUgb3JpZ2luIGlzIG9ubHkgc2lnbmlmaWNhbnQgZm9yIG5hdmlnYXRpb24gcmVxdWVzdHNcbiAgICAgIC8vIGJlaW5nIGhhbmRsZWQgYnkgYSBzZXJ2aWNlIHdvcmtlci4gSW4gdGhpcyBzY2VuYXJpbyBhIHJlcXVlc3QgY2FuIGhhdmUgYW4gb3JpZ2luIHRoYXQgaXMgZGlmZmVyZW50XG4gICAgICAvLyBmcm9tIHRoZSBjdXJyZW50IGNsaWVudC5cbiAgICAgIG9yaWdpbjogcmVxdWVzdC5vcmlnaW4sXG4gICAgICAvLyByZWZlcnJlciByZXF1ZXN0XHUyMDE5cyByZWZlcnJlci5cbiAgICAgIHJlZmVycmVyOiByZXF1ZXN0LnJlZmVycmVyLFxuICAgICAgLy8gcmVmZXJyZXIgcG9saWN5IHJlcXVlc3RcdTIwMTlzIHJlZmVycmVyIHBvbGljeS5cbiAgICAgIHJlZmVycmVyUG9saWN5OiByZXF1ZXN0LnJlZmVycmVyUG9saWN5LFxuICAgICAgLy8gbW9kZSByZXF1ZXN0XHUyMDE5cyBtb2RlLlxuICAgICAgbW9kZTogcmVxdWVzdC5tb2RlLFxuICAgICAgLy8gY3JlZGVudGlhbHMgbW9kZSByZXF1ZXN0XHUyMDE5cyBjcmVkZW50aWFscyBtb2RlLlxuICAgICAgY3JlZGVudGlhbHM6IHJlcXVlc3QuY3JlZGVudGlhbHMsXG4gICAgICAvLyBjYWNoZSBtb2RlIHJlcXVlc3RcdTIwMTlzIGNhY2hlIG1vZGUuXG4gICAgICBjYWNoZTogcmVxdWVzdC5jYWNoZSxcbiAgICAgIC8vIHJlZGlyZWN0IG1vZGUgcmVxdWVzdFx1MjAxOXMgcmVkaXJlY3QgbW9kZS5cbiAgICAgIHJlZGlyZWN0OiByZXF1ZXN0LnJlZGlyZWN0LFxuICAgICAgLy8gaW50ZWdyaXR5IG1ldGFkYXRhIHJlcXVlc3RcdTIwMTlzIGludGVncml0eSBtZXRhZGF0YS5cbiAgICAgIGludGVncml0eTogcmVxdWVzdC5pbnRlZ3JpdHksXG4gICAgICAvLyBrZWVwYWxpdmUgcmVxdWVzdFx1MjAxOXMga2VlcGFsaXZlLlxuICAgICAga2VlcGFsaXZlOiByZXF1ZXN0LmtlZXBhbGl2ZSxcbiAgICAgIC8vIHJlbG9hZC1uYXZpZ2F0aW9uIGZsYWcgcmVxdWVzdFx1MjAxOXMgcmVsb2FkLW5hdmlnYXRpb24gZmxhZy5cbiAgICAgIHJlbG9hZE5hdmlnYXRpb246IHJlcXVlc3QucmVsb2FkTmF2aWdhdGlvbixcbiAgICAgIC8vIGhpc3RvcnktbmF2aWdhdGlvbiBmbGFnIHJlcXVlc3RcdTIwMTlzIGhpc3RvcnktbmF2aWdhdGlvbiBmbGFnLlxuICAgICAgaGlzdG9yeU5hdmlnYXRpb246IHJlcXVlc3QuaGlzdG9yeU5hdmlnYXRpb24sXG4gICAgICAvLyBVUkwgbGlzdCBBIGNsb25lIG9mIHJlcXVlc3RcdTIwMTlzIFVSTCBsaXN0LlxuICAgICAgdXJsTGlzdDogWy4uLnJlcXVlc3QudXJsTGlzdF1cbiAgICB9KVxuXG4gICAgY29uc3QgaW5pdEhhc0tleSA9IE9iamVjdC5rZXlzKGluaXQpLmxlbmd0aCAhPT0gMFxuXG4gICAgLy8gMTMuIElmIGluaXQgaXMgbm90IGVtcHR5LCB0aGVuOlxuICAgIGlmIChpbml0SGFzS2V5KSB7XG4gICAgICAvLyAxLiBJZiByZXF1ZXN0XHUyMDE5cyBtb2RlIGlzIFwibmF2aWdhdGVcIiwgdGhlbiBzZXQgaXQgdG8gXCJzYW1lLW9yaWdpblwiLlxuICAgICAgaWYgKHJlcXVlc3QubW9kZSA9PT0gJ25hdmlnYXRlJykge1xuICAgICAgICByZXF1ZXN0Lm1vZGUgPSAnc2FtZS1vcmlnaW4nXG4gICAgICB9XG5cbiAgICAgIC8vIDIuIFVuc2V0IHJlcXVlc3RcdTIwMTlzIHJlbG9hZC1uYXZpZ2F0aW9uIGZsYWcuXG4gICAgICByZXF1ZXN0LnJlbG9hZE5hdmlnYXRpb24gPSBmYWxzZVxuXG4gICAgICAvLyAzLiBVbnNldCByZXF1ZXN0XHUyMDE5cyBoaXN0b3J5LW5hdmlnYXRpb24gZmxhZy5cbiAgICAgIHJlcXVlc3QuaGlzdG9yeU5hdmlnYXRpb24gPSBmYWxzZVxuXG4gICAgICAvLyA0LiBTZXQgcmVxdWVzdFx1MjAxOXMgb3JpZ2luIHRvIFwiY2xpZW50XCIuXG4gICAgICByZXF1ZXN0Lm9yaWdpbiA9ICdjbGllbnQnXG5cbiAgICAgIC8vIDUuIFNldCByZXF1ZXN0XHUyMDE5cyByZWZlcnJlciB0byBcImNsaWVudFwiXG4gICAgICByZXF1ZXN0LnJlZmVycmVyID0gJ2NsaWVudCdcblxuICAgICAgLy8gNi4gU2V0IHJlcXVlc3RcdTIwMTlzIHJlZmVycmVyIHBvbGljeSB0byB0aGUgZW1wdHkgc3RyaW5nLlxuICAgICAgcmVxdWVzdC5yZWZlcnJlclBvbGljeSA9ICcnXG5cbiAgICAgIC8vIDcuIFNldCByZXF1ZXN0XHUyMDE5cyBVUkwgdG8gcmVxdWVzdFx1MjAxOXMgY3VycmVudCBVUkwuXG4gICAgICByZXF1ZXN0LnVybCA9IHJlcXVlc3QudXJsTGlzdFtyZXF1ZXN0LnVybExpc3QubGVuZ3RoIC0gMV1cblxuICAgICAgLy8gOC4gU2V0IHJlcXVlc3RcdTIwMTlzIFVSTCBsaXN0IHRvIFx1MDBBQiByZXF1ZXN0XHUyMDE5cyBVUkwgXHUwMEJCLlxuICAgICAgcmVxdWVzdC51cmxMaXN0ID0gW3JlcXVlc3QudXJsXVxuICAgIH1cblxuICAgIC8vIDE0LiBJZiBpbml0W1wicmVmZXJyZXJcIl0gZXhpc3RzLCB0aGVuOlxuICAgIGlmIChpbml0LnJlZmVycmVyICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIC8vIDEuIExldCByZWZlcnJlciBiZSBpbml0W1wicmVmZXJyZXJcIl0uXG4gICAgICBjb25zdCByZWZlcnJlciA9IGluaXQucmVmZXJyZXJcblxuICAgICAgLy8gMi4gSWYgcmVmZXJyZXIgaXMgdGhlIGVtcHR5IHN0cmluZywgdGhlbiBzZXQgcmVxdWVzdFx1MjAxOXMgcmVmZXJyZXIgdG8gXCJuby1yZWZlcnJlclwiLlxuICAgICAgaWYgKHJlZmVycmVyID09PSAnJykge1xuICAgICAgICByZXF1ZXN0LnJlZmVycmVyID0gJ25vLXJlZmVycmVyJ1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gMS4gTGV0IHBhcnNlZFJlZmVycmVyIGJlIHRoZSByZXN1bHQgb2YgcGFyc2luZyByZWZlcnJlciB3aXRoXG4gICAgICAgIC8vIGJhc2VVUkwuXG4gICAgICAgIC8vIDIuIElmIHBhcnNlZFJlZmVycmVyIGlzIGZhaWx1cmUsIHRoZW4gdGhyb3cgYSBUeXBlRXJyb3IuXG4gICAgICAgIGxldCBwYXJzZWRSZWZlcnJlclxuICAgICAgICB0cnkge1xuICAgICAgICAgIHBhcnNlZFJlZmVycmVyID0gbmV3IFVSTChyZWZlcnJlciwgYmFzZVVybClcbiAgICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihgUmVmZXJyZXIgXCIke3JlZmVycmVyfVwiIGlzIG5vdCBhIHZhbGlkIFVSTC5gLCB7IGNhdXNlOiBlcnIgfSlcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIDMuIElmIG9uZSBvZiB0aGUgZm9sbG93aW5nIGlzIHRydWVcbiAgICAgICAgLy8gLSBwYXJzZWRSZWZlcnJlclx1MjAxOXMgc2NoZW1lIGlzIFwiYWJvdXRcIiBhbmQgcGF0aCBpcyB0aGUgc3RyaW5nIFwiY2xpZW50XCJcbiAgICAgICAgLy8gLSBwYXJzZWRSZWZlcnJlclx1MjAxOXMgb3JpZ2luIGlzIG5vdCBzYW1lIG9yaWdpbiB3aXRoIG9yaWdpblxuICAgICAgICAvLyB0aGVuIHNldCByZXF1ZXN0XHUyMDE5cyByZWZlcnJlciB0byBcImNsaWVudFwiLlxuICAgICAgICBpZiAoXG4gICAgICAgICAgKHBhcnNlZFJlZmVycmVyLnByb3RvY29sID09PSAnYWJvdXQ6JyAmJiBwYXJzZWRSZWZlcnJlci5ob3N0bmFtZSA9PT0gJ2NsaWVudCcpIHx8XG4gICAgICAgICAgKG9yaWdpbiAmJiAhc2FtZU9yaWdpbihwYXJzZWRSZWZlcnJlciwgZW52aXJvbm1lbnRTZXR0aW5nc09iamVjdC5zZXR0aW5nc09iamVjdC5iYXNlVXJsKSlcbiAgICAgICAgKSB7XG4gICAgICAgICAgcmVxdWVzdC5yZWZlcnJlciA9ICdjbGllbnQnXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLy8gNC4gT3RoZXJ3aXNlLCBzZXQgcmVxdWVzdFx1MjAxOXMgcmVmZXJyZXIgdG8gcGFyc2VkUmVmZXJyZXIuXG4gICAgICAgICAgcmVxdWVzdC5yZWZlcnJlciA9IHBhcnNlZFJlZmVycmVyXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyAxNS4gSWYgaW5pdFtcInJlZmVycmVyUG9saWN5XCJdIGV4aXN0cywgdGhlbiBzZXQgcmVxdWVzdFx1MjAxOXMgcmVmZXJyZXIgcG9saWN5XG4gICAgLy8gdG8gaXQuXG4gICAgaWYgKGluaXQucmVmZXJyZXJQb2xpY3kgIT09IHVuZGVmaW5lZCkge1xuICAgICAgcmVxdWVzdC5yZWZlcnJlclBvbGljeSA9IGluaXQucmVmZXJyZXJQb2xpY3lcbiAgICB9XG5cbiAgICAvLyAxNi4gTGV0IG1vZGUgYmUgaW5pdFtcIm1vZGVcIl0gaWYgaXQgZXhpc3RzLCBhbmQgZmFsbGJhY2tNb2RlIG90aGVyd2lzZS5cbiAgICBsZXQgbW9kZVxuICAgIGlmIChpbml0Lm1vZGUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgbW9kZSA9IGluaXQubW9kZVxuICAgIH0gZWxzZSB7XG4gICAgICBtb2RlID0gZmFsbGJhY2tNb2RlXG4gICAgfVxuXG4gICAgLy8gMTcuIElmIG1vZGUgaXMgXCJuYXZpZ2F0ZVwiLCB0aGVuIHRocm93IGEgVHlwZUVycm9yLlxuICAgIGlmIChtb2RlID09PSAnbmF2aWdhdGUnKSB7XG4gICAgICB0aHJvdyB3ZWJpZGwuZXJyb3JzLmV4Y2VwdGlvbih7XG4gICAgICAgIGhlYWRlcjogJ1JlcXVlc3QgY29uc3RydWN0b3InLFxuICAgICAgICBtZXNzYWdlOiAnaW52YWxpZCByZXF1ZXN0IG1vZGUgbmF2aWdhdGUuJ1xuICAgICAgfSlcbiAgICB9XG5cbiAgICAvLyAxOC4gSWYgbW9kZSBpcyBub24tbnVsbCwgc2V0IHJlcXVlc3RcdTIwMTlzIG1vZGUgdG8gbW9kZS5cbiAgICBpZiAobW9kZSAhPSBudWxsKSB7XG4gICAgICByZXF1ZXN0Lm1vZGUgPSBtb2RlXG4gICAgfVxuXG4gICAgLy8gMTkuIElmIGluaXRbXCJjcmVkZW50aWFsc1wiXSBleGlzdHMsIHRoZW4gc2V0IHJlcXVlc3RcdTIwMTlzIGNyZWRlbnRpYWxzIG1vZGVcbiAgICAvLyB0byBpdC5cbiAgICBpZiAoaW5pdC5jcmVkZW50aWFscyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXF1ZXN0LmNyZWRlbnRpYWxzID0gaW5pdC5jcmVkZW50aWFsc1xuICAgIH1cblxuICAgIC8vIDE4LiBJZiBpbml0W1wiY2FjaGVcIl0gZXhpc3RzLCB0aGVuIHNldCByZXF1ZXN0XHUyMDE5cyBjYWNoZSBtb2RlIHRvIGl0LlxuICAgIGlmIChpbml0LmNhY2hlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHJlcXVlc3QuY2FjaGUgPSBpbml0LmNhY2hlXG4gICAgfVxuXG4gICAgLy8gMjEuIElmIHJlcXVlc3RcdTIwMTlzIGNhY2hlIG1vZGUgaXMgXCJvbmx5LWlmLWNhY2hlZFwiIGFuZCByZXF1ZXN0XHUyMDE5cyBtb2RlIGlzXG4gICAgLy8gbm90IFwic2FtZS1vcmlnaW5cIiwgdGhlbiB0aHJvdyBhIFR5cGVFcnJvci5cbiAgICBpZiAocmVxdWVzdC5jYWNoZSA9PT0gJ29ubHktaWYtY2FjaGVkJyAmJiByZXF1ZXN0Lm1vZGUgIT09ICdzYW1lLW9yaWdpbicpIHtcbiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXG4gICAgICAgIFwiJ29ubHktaWYtY2FjaGVkJyBjYW4gYmUgc2V0IG9ubHkgd2l0aCAnc2FtZS1vcmlnaW4nIG1vZGVcIlxuICAgICAgKVxuICAgIH1cblxuICAgIC8vIDIyLiBJZiBpbml0W1wicmVkaXJlY3RcIl0gZXhpc3RzLCB0aGVuIHNldCByZXF1ZXN0XHUyMDE5cyByZWRpcmVjdCBtb2RlIHRvIGl0LlxuICAgIGlmIChpbml0LnJlZGlyZWN0ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHJlcXVlc3QucmVkaXJlY3QgPSBpbml0LnJlZGlyZWN0XG4gICAgfVxuXG4gICAgLy8gMjMuIElmIGluaXRbXCJpbnRlZ3JpdHlcIl0gZXhpc3RzLCB0aGVuIHNldCByZXF1ZXN0XHUyMDE5cyBpbnRlZ3JpdHkgbWV0YWRhdGEgdG8gaXQuXG4gICAgaWYgKGluaXQuaW50ZWdyaXR5ICE9IG51bGwpIHtcbiAgICAgIHJlcXVlc3QuaW50ZWdyaXR5ID0gU3RyaW5nKGluaXQuaW50ZWdyaXR5KVxuICAgIH1cblxuICAgIC8vIDI0LiBJZiBpbml0W1wia2VlcGFsaXZlXCJdIGV4aXN0cywgdGhlbiBzZXQgcmVxdWVzdFx1MjAxOXMga2VlcGFsaXZlIHRvIGl0LlxuICAgIGlmIChpbml0LmtlZXBhbGl2ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXF1ZXN0LmtlZXBhbGl2ZSA9IEJvb2xlYW4oaW5pdC5rZWVwYWxpdmUpXG4gICAgfVxuXG4gICAgLy8gMjUuIElmIGluaXRbXCJtZXRob2RcIl0gZXhpc3RzLCB0aGVuOlxuICAgIGlmIChpbml0Lm1ldGhvZCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAvLyAxLiBMZXQgbWV0aG9kIGJlIGluaXRbXCJtZXRob2RcIl0uXG4gICAgICBsZXQgbWV0aG9kID0gaW5pdC5tZXRob2RcblxuICAgICAgY29uc3QgbWF5QmVOb3JtYWxpemVkID0gbm9ybWFsaXplZE1ldGhvZFJlY29yZHNbbWV0aG9kXVxuXG4gICAgICBpZiAobWF5QmVOb3JtYWxpemVkICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgLy8gTm90ZTogQnlwYXNzIHZhbGlkYXRpb24gREVMRVRFLCBHRVQsIEhFQUQsIE9QVElPTlMsIFBPU1QsIFBVVCwgUEFUQ0ggYW5kIHRoZXNlIGxvd2VyY2FzZSBvbmVzXG4gICAgICAgIHJlcXVlc3QubWV0aG9kID0gbWF5QmVOb3JtYWxpemVkXG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyAyLiBJZiBtZXRob2QgaXMgbm90IGEgbWV0aG9kIG9yIG1ldGhvZCBpcyBhIGZvcmJpZGRlbiBtZXRob2QsIHRoZW5cbiAgICAgICAgLy8gdGhyb3cgYSBUeXBlRXJyb3IuXG4gICAgICAgIGlmICghaXNWYWxpZEhUVFBUb2tlbihtZXRob2QpKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihgJyR7bWV0aG9kfScgaXMgbm90IGEgdmFsaWQgSFRUUCBtZXRob2QuYClcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHVwcGVyQ2FzZSA9IG1ldGhvZC50b1VwcGVyQ2FzZSgpXG5cbiAgICAgICAgaWYgKGZvcmJpZGRlbk1ldGhvZHNTZXQuaGFzKHVwcGVyQ2FzZSkpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKGAnJHttZXRob2R9JyBIVFRQIG1ldGhvZCBpcyB1bnN1cHBvcnRlZC5gKVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gMy4gTm9ybWFsaXplIG1ldGhvZC5cbiAgICAgICAgLy8gaHR0cHM6Ly9mZXRjaC5zcGVjLndoYXR3Zy5vcmcvI2NvbmNlcHQtbWV0aG9kLW5vcm1hbGl6ZVxuICAgICAgICAvLyBOb3RlOiBtdXN0IGJlIGluIHVwcGVyY2FzZVxuICAgICAgICBtZXRob2QgPSBub3JtYWxpemVkTWV0aG9kUmVjb3Jkc0Jhc2VbdXBwZXJDYXNlXSA/PyBtZXRob2RcblxuICAgICAgICAvLyA0LiBTZXQgcmVxdWVzdFx1MjAxOXMgbWV0aG9kIHRvIG1ldGhvZC5cbiAgICAgICAgcmVxdWVzdC5tZXRob2QgPSBtZXRob2RcbiAgICAgIH1cblxuICAgICAgaWYgKCFwYXRjaE1ldGhvZFdhcm5pbmcgJiYgcmVxdWVzdC5tZXRob2QgPT09ICdwYXRjaCcpIHtcbiAgICAgICAgcHJvY2Vzcy5lbWl0V2FybmluZygnVXNpbmcgYHBhdGNoYCBpcyBoaWdobHkgbGlrZWx5IHRvIHJlc3VsdCBpbiBhIGA0MDUgTWV0aG9kIE5vdCBBbGxvd2VkYC4gYFBBVENIYCBpcyBtdWNoIG1vcmUgbGlrZWx5IHRvIHN1Y2NlZWQuJywge1xuICAgICAgICAgIGNvZGU6ICdVTkRJQ0ktRkVUQ0gtcGF0Y2gnXG4gICAgICAgIH0pXG5cbiAgICAgICAgcGF0Y2hNZXRob2RXYXJuaW5nID0gdHJ1ZVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIDI2LiBJZiBpbml0W1wic2lnbmFsXCJdIGV4aXN0cywgdGhlbiBzZXQgc2lnbmFsIHRvIGl0LlxuICAgIGlmIChpbml0LnNpZ25hbCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBzaWduYWwgPSBpbml0LnNpZ25hbFxuICAgIH1cblxuICAgIC8vIDI3LiBTZXQgdGhpc1x1MjAxOXMgcmVxdWVzdCB0byByZXF1ZXN0LlxuICAgIHRoaXNba1N0YXRlXSA9IHJlcXVlc3RcblxuICAgIC8vIDI4LiBTZXQgdGhpc1x1MjAxOXMgc2lnbmFsIHRvIGEgbmV3IEFib3J0U2lnbmFsIG9iamVjdCB3aXRoIHRoaXNcdTIwMTlzIHJlbGV2YW50XG4gICAgLy8gUmVhbG0uXG4gICAgLy8gVE9ETzogY291bGQgdGhpcyBiZSBzaW1wbGlmaWVkIHdpdGggQWJvcnRTaWduYWwuYW55XG4gICAgLy8gKGh0dHBzOi8vZG9tLnNwZWMud2hhdHdnLm9yZy8jZG9tLWFib3J0c2lnbmFsLWFueSlcbiAgICBjb25zdCBhYyA9IG5ldyBBYm9ydENvbnRyb2xsZXIoKVxuICAgIHRoaXNba1NpZ25hbF0gPSBhYy5zaWduYWxcblxuICAgIC8vIDI5LiBJZiBzaWduYWwgaXMgbm90IG51bGwsIHRoZW4gbWFrZSB0aGlzXHUyMDE5cyBzaWduYWwgZm9sbG93IHNpZ25hbC5cbiAgICBpZiAoc2lnbmFsICE9IG51bGwpIHtcbiAgICAgIGlmIChcbiAgICAgICAgIXNpZ25hbCB8fFxuICAgICAgICB0eXBlb2Ygc2lnbmFsLmFib3J0ZWQgIT09ICdib29sZWFuJyB8fFxuICAgICAgICB0eXBlb2Ygc2lnbmFsLmFkZEV2ZW50TGlzdGVuZXIgIT09ICdmdW5jdGlvbidcbiAgICAgICkge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFxuICAgICAgICAgIFwiRmFpbGVkIHRvIGNvbnN0cnVjdCAnUmVxdWVzdCc6IG1lbWJlciBzaWduYWwgaXMgbm90IG9mIHR5cGUgQWJvcnRTaWduYWwuXCJcbiAgICAgICAgKVxuICAgICAgfVxuXG4gICAgICBpZiAoc2lnbmFsLmFib3J0ZWQpIHtcbiAgICAgICAgYWMuYWJvcnQoc2lnbmFsLnJlYXNvbilcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIEtlZXAgYSBzdHJvbmcgcmVmIHRvIGFjIHdoaWxlIHJlcXVlc3Qgb2JqZWN0XG4gICAgICAgIC8vIGlzIGFsaXZlLiBUaGlzIGlzIG5lZWRlZCB0byBwcmV2ZW50IEFib3J0Q29udHJvbGxlclxuICAgICAgICAvLyBmcm9tIGJlaW5nIHByZW1hdHVyZWx5IGdhcmJhZ2UgY29sbGVjdGVkLlxuICAgICAgICAvLyBTZWUsIGh0dHBzOi8vZ2l0aHViLmNvbS9ub2RlanMvdW5kaWNpL2lzc3Vlcy8xOTI2LlxuICAgICAgICB0aGlzW2tBYm9ydENvbnRyb2xsZXJdID0gYWNcblxuICAgICAgICBjb25zdCBhY1JlZiA9IG5ldyBXZWFrUmVmKGFjKVxuICAgICAgICBjb25zdCBhYm9ydCA9IGJ1aWxkQWJvcnQoYWNSZWYpXG5cbiAgICAgICAgLy8gVGhpcmQtcGFydHkgQWJvcnRDb250cm9sbGVycyBtYXkgbm90IHdvcmsgd2l0aCB0aGVzZS5cbiAgICAgICAgLy8gU2VlLCBodHRwczovL2dpdGh1Yi5jb20vbm9kZWpzL3VuZGljaS9wdWxsLzE5MTAjaXNzdWVjb21tZW50LTE0NjQ0OTU2MTkuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgLy8gSWYgdGhlIG1heCBhbW91bnQgb2YgbGlzdGVuZXJzIGlzIGVxdWFsIHRvIHRoZSBkZWZhdWx0LCBpbmNyZWFzZSBpdFxuICAgICAgICAgIC8vIFRoaXMgaXMgb25seSBhdmFpbGFibGUgaW4gbm9kZSA+PSB2MTkuOS4wXG4gICAgICAgICAgaWYgKHR5cGVvZiBnZXRNYXhMaXN0ZW5lcnMgPT09ICdmdW5jdGlvbicgJiYgZ2V0TWF4TGlzdGVuZXJzKHNpZ25hbCkgPT09IGRlZmF1bHRNYXhMaXN0ZW5lcnMpIHtcbiAgICAgICAgICAgIHNldE1heExpc3RlbmVycygxNTAwLCBzaWduYWwpXG4gICAgICAgICAgfSBlbHNlIGlmIChnZXRFdmVudExpc3RlbmVycyhzaWduYWwsICdhYm9ydCcpLmxlbmd0aCA+PSBkZWZhdWx0TWF4TGlzdGVuZXJzKSB7XG4gICAgICAgICAgICBzZXRNYXhMaXN0ZW5lcnMoMTUwMCwgc2lnbmFsKVxuICAgICAgICAgIH1cbiAgICAgICAgfSBjYXRjaCB7fVxuXG4gICAgICAgIHV0aWwuYWRkQWJvcnRMaXN0ZW5lcihzaWduYWwsIGFib3J0KVxuICAgICAgICAvLyBUaGUgdGhpcmQgYXJndW1lbnQgbXVzdCBiZSBhIHJlZ2lzdHJ5IGtleSB0byBiZSB1bnJlZ2lzdGVyZWQuXG4gICAgICAgIC8vIFdpdGhvdXQgaXQsIHlvdSBjYW5ub3QgdW5yZWdpc3Rlci5cbiAgICAgICAgLy8gaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvSmF2YVNjcmlwdC9SZWZlcmVuY2UvR2xvYmFsX09iamVjdHMvRmluYWxpemF0aW9uUmVnaXN0cnlcbiAgICAgICAgLy8gYWJvcnQgaXMgdXNlZCBhcyB0aGUgdW5yZWdpc3RlciBrZXkuIChiZWNhdXNlIGl0IGlzIHVuaXF1ZSlcbiAgICAgICAgcmVxdWVzdEZpbmFsaXplci5yZWdpc3RlcihhYywgeyBzaWduYWwsIGFib3J0IH0sIGFib3J0KVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIDMwLiBTZXQgdGhpc1x1MjAxOXMgaGVhZGVycyB0byBhIG5ldyBIZWFkZXJzIG9iamVjdCB3aXRoIHRoaXNcdTIwMTlzIHJlbGV2YW50XG4gICAgLy8gUmVhbG0sIHdob3NlIGhlYWRlciBsaXN0IGlzIHJlcXVlc3RcdTIwMTlzIGhlYWRlciBsaXN0IGFuZCBndWFyZCBpc1xuICAgIC8vIFwicmVxdWVzdFwiLlxuICAgIHRoaXNba0hlYWRlcnNdID0gbmV3IEhlYWRlcnMoa0NvbnN0cnVjdClcbiAgICBzZXRIZWFkZXJzTGlzdCh0aGlzW2tIZWFkZXJzXSwgcmVxdWVzdC5oZWFkZXJzTGlzdClcbiAgICBzZXRIZWFkZXJzR3VhcmQodGhpc1trSGVhZGVyc10sICdyZXF1ZXN0JylcblxuICAgIC8vIDMxLiBJZiB0aGlzXHUyMDE5cyByZXF1ZXN0XHUyMDE5cyBtb2RlIGlzIFwibm8tY29yc1wiLCB0aGVuOlxuICAgIGlmIChtb2RlID09PSAnbm8tY29ycycpIHtcbiAgICAgIC8vIDEuIElmIHRoaXNcdTIwMTlzIHJlcXVlc3RcdTIwMTlzIG1ldGhvZCBpcyBub3QgYSBDT1JTLXNhZmVsaXN0ZWQgbWV0aG9kLFxuICAgICAgLy8gdGhlbiB0aHJvdyBhIFR5cGVFcnJvci5cbiAgICAgIGlmICghY29yc1NhZmVMaXN0ZWRNZXRob2RzU2V0LmhhcyhyZXF1ZXN0Lm1ldGhvZCkpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcbiAgICAgICAgICBgJyR7cmVxdWVzdC5tZXRob2R9IGlzIHVuc3VwcG9ydGVkIGluIG5vLWNvcnMgbW9kZS5gXG4gICAgICAgIClcbiAgICAgIH1cblxuICAgICAgLy8gMi4gU2V0IHRoaXNcdTIwMTlzIGhlYWRlcnNcdTIwMTlzIGd1YXJkIHRvIFwicmVxdWVzdC1uby1jb3JzXCIuXG4gICAgICBzZXRIZWFkZXJzR3VhcmQodGhpc1trSGVhZGVyc10sICdyZXF1ZXN0LW5vLWNvcnMnKVxuICAgIH1cblxuICAgIC8vIDMyLiBJZiBpbml0IGlzIG5vdCBlbXB0eSwgdGhlbjpcbiAgICBpZiAoaW5pdEhhc0tleSkge1xuICAgICAgLyoqIEB0eXBlIHtIZWFkZXJzTGlzdH0gKi9cbiAgICAgIGNvbnN0IGhlYWRlcnNMaXN0ID0gZ2V0SGVhZGVyc0xpc3QodGhpc1trSGVhZGVyc10pXG4gICAgICAvLyAxLiBMZXQgaGVhZGVycyBiZSBhIGNvcHkgb2YgdGhpc1x1MjAxOXMgaGVhZGVycyBhbmQgaXRzIGFzc29jaWF0ZWQgaGVhZGVyXG4gICAgICAvLyBsaXN0LlxuICAgICAgLy8gMi4gSWYgaW5pdFtcImhlYWRlcnNcIl0gZXhpc3RzLCB0aGVuIHNldCBoZWFkZXJzIHRvIGluaXRbXCJoZWFkZXJzXCJdLlxuICAgICAgY29uc3QgaGVhZGVycyA9IGluaXQuaGVhZGVycyAhPT0gdW5kZWZpbmVkID8gaW5pdC5oZWFkZXJzIDogbmV3IEhlYWRlcnNMaXN0KGhlYWRlcnNMaXN0KVxuXG4gICAgICAvLyAzLiBFbXB0eSB0aGlzXHUyMDE5cyBoZWFkZXJzXHUyMDE5cyBoZWFkZXIgbGlzdC5cbiAgICAgIGhlYWRlcnNMaXN0LmNsZWFyKClcblxuICAgICAgLy8gNC4gSWYgaGVhZGVycyBpcyBhIEhlYWRlcnMgb2JqZWN0LCB0aGVuIGZvciBlYWNoIGhlYWRlciBpbiBpdHMgaGVhZGVyXG4gICAgICAvLyBsaXN0LCBhcHBlbmQgaGVhZGVyXHUyMDE5cyBuYW1lL2hlYWRlclx1MjAxOXMgdmFsdWUgdG8gdGhpc1x1MjAxOXMgaGVhZGVycy5cbiAgICAgIGlmIChoZWFkZXJzIGluc3RhbmNlb2YgSGVhZGVyc0xpc3QpIHtcbiAgICAgICAgZm9yIChjb25zdCB7IG5hbWUsIHZhbHVlIH0gb2YgaGVhZGVycy5yYXdWYWx1ZXMoKSkge1xuICAgICAgICAgIGhlYWRlcnNMaXN0LmFwcGVuZChuYW1lLCB2YWx1ZSwgZmFsc2UpXG4gICAgICAgIH1cbiAgICAgICAgLy8gTm90ZTogQ29weSB0aGUgYHNldC1jb29raWVgIG1ldGEtZGF0YS5cbiAgICAgICAgaGVhZGVyc0xpc3QuY29va2llcyA9IGhlYWRlcnMuY29va2llc1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gNS4gT3RoZXJ3aXNlLCBmaWxsIHRoaXNcdTIwMTlzIGhlYWRlcnMgd2l0aCBoZWFkZXJzLlxuICAgICAgICBmaWxsSGVhZGVycyh0aGlzW2tIZWFkZXJzXSwgaGVhZGVycylcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyAzMy4gTGV0IGlucHV0Qm9keSBiZSBpbnB1dFx1MjAxOXMgcmVxdWVzdFx1MjAxOXMgYm9keSBpZiBpbnB1dCBpcyBhIFJlcXVlc3RcbiAgICAvLyBvYmplY3Q7IG90aGVyd2lzZSBudWxsLlxuICAgIGNvbnN0IGlucHV0Qm9keSA9IGlucHV0IGluc3RhbmNlb2YgUmVxdWVzdCA/IGlucHV0W2tTdGF0ZV0uYm9keSA6IG51bGxcblxuICAgIC8vIDM0LiBJZiBlaXRoZXIgaW5pdFtcImJvZHlcIl0gZXhpc3RzIGFuZCBpcyBub24tbnVsbCBvciBpbnB1dEJvZHkgaXNcbiAgICAvLyBub24tbnVsbCwgYW5kIHJlcXVlc3RcdTIwMTlzIG1ldGhvZCBpcyBgR0VUYCBvciBgSEVBRGAsIHRoZW4gdGhyb3cgYVxuICAgIC8vIFR5cGVFcnJvci5cbiAgICBpZiAoXG4gICAgICAoaW5pdC5ib2R5ICE9IG51bGwgfHwgaW5wdXRCb2R5ICE9IG51bGwpICYmXG4gICAgICAocmVxdWVzdC5tZXRob2QgPT09ICdHRVQnIHx8IHJlcXVlc3QubWV0aG9kID09PSAnSEVBRCcpXG4gICAgKSB7XG4gICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdSZXF1ZXN0IHdpdGggR0VUL0hFQUQgbWV0aG9kIGNhbm5vdCBoYXZlIGJvZHkuJylcbiAgICB9XG5cbiAgICAvLyAzNS4gTGV0IGluaXRCb2R5IGJlIG51bGwuXG4gICAgbGV0IGluaXRCb2R5ID0gbnVsbFxuXG4gICAgLy8gMzYuIElmIGluaXRbXCJib2R5XCJdIGV4aXN0cyBhbmQgaXMgbm9uLW51bGwsIHRoZW46XG4gICAgaWYgKGluaXQuYm9keSAhPSBudWxsKSB7XG4gICAgICAvLyAxLiBMZXQgQ29udGVudC1UeXBlIGJlIG51bGwuXG4gICAgICAvLyAyLiBTZXQgaW5pdEJvZHkgYW5kIENvbnRlbnQtVHlwZSB0byB0aGUgcmVzdWx0IG9mIGV4dHJhY3RpbmdcbiAgICAgIC8vIGluaXRbXCJib2R5XCJdLCB3aXRoIGtlZXBhbGl2ZSBzZXQgdG8gcmVxdWVzdFx1MjAxOXMga2VlcGFsaXZlLlxuICAgICAgY29uc3QgW2V4dHJhY3RlZEJvZHksIGNvbnRlbnRUeXBlXSA9IGV4dHJhY3RCb2R5KFxuICAgICAgICBpbml0LmJvZHksXG4gICAgICAgIHJlcXVlc3Qua2VlcGFsaXZlXG4gICAgICApXG4gICAgICBpbml0Qm9keSA9IGV4dHJhY3RlZEJvZHlcblxuICAgICAgLy8gMywgSWYgQ29udGVudC1UeXBlIGlzIG5vbi1udWxsIGFuZCB0aGlzXHUyMDE5cyBoZWFkZXJzXHUyMDE5cyBoZWFkZXIgbGlzdCBkb2VzXG4gICAgICAvLyBub3QgY29udGFpbiBgQ29udGVudC1UeXBlYCwgdGhlbiBhcHBlbmQgYENvbnRlbnQtVHlwZWAvQ29udGVudC1UeXBlIHRvXG4gICAgICAvLyB0aGlzXHUyMDE5cyBoZWFkZXJzLlxuICAgICAgaWYgKGNvbnRlbnRUeXBlICYmICFnZXRIZWFkZXJzTGlzdCh0aGlzW2tIZWFkZXJzXSkuY29udGFpbnMoJ2NvbnRlbnQtdHlwZScsIHRydWUpKSB7XG4gICAgICAgIHRoaXNba0hlYWRlcnNdLmFwcGVuZCgnY29udGVudC10eXBlJywgY29udGVudFR5cGUpXG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gMzcuIExldCBpbnB1dE9ySW5pdEJvZHkgYmUgaW5pdEJvZHkgaWYgaXQgaXMgbm9uLW51bGw7IG90aGVyd2lzZVxuICAgIC8vIGlucHV0Qm9keS5cbiAgICBjb25zdCBpbnB1dE9ySW5pdEJvZHkgPSBpbml0Qm9keSA/PyBpbnB1dEJvZHlcblxuICAgIC8vIDM4LiBJZiBpbnB1dE9ySW5pdEJvZHkgaXMgbm9uLW51bGwgYW5kIGlucHV0T3JJbml0Qm9keVx1MjAxOXMgc291cmNlIGlzXG4gICAgLy8gbnVsbCwgdGhlbjpcbiAgICBpZiAoaW5wdXRPckluaXRCb2R5ICE9IG51bGwgJiYgaW5wdXRPckluaXRCb2R5LnNvdXJjZSA9PSBudWxsKSB7XG4gICAgICAvLyAxLiBJZiBpbml0Qm9keSBpcyBub24tbnVsbCBhbmQgaW5pdFtcImR1cGxleFwiXSBkb2VzIG5vdCBleGlzdCxcbiAgICAgIC8vICAgIHRoZW4gdGhyb3cgYSBUeXBlRXJyb3IuXG4gICAgICBpZiAoaW5pdEJvZHkgIT0gbnVsbCAmJiBpbml0LmR1cGxleCA9PSBudWxsKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ1JlcXVlc3RJbml0OiBkdXBsZXggb3B0aW9uIGlzIHJlcXVpcmVkIHdoZW4gc2VuZGluZyBhIGJvZHkuJylcbiAgICAgIH1cblxuICAgICAgLy8gMi4gSWYgdGhpc1x1MjAxOXMgcmVxdWVzdFx1MjAxOXMgbW9kZSBpcyBuZWl0aGVyIFwic2FtZS1vcmlnaW5cIiBub3IgXCJjb3JzXCIsXG4gICAgICAvLyB0aGVuIHRocm93IGEgVHlwZUVycm9yLlxuICAgICAgaWYgKHJlcXVlc3QubW9kZSAhPT0gJ3NhbWUtb3JpZ2luJyAmJiByZXF1ZXN0Lm1vZGUgIT09ICdjb3JzJykge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFxuICAgICAgICAgICdJZiByZXF1ZXN0IGlzIG1hZGUgZnJvbSBSZWFkYWJsZVN0cmVhbSwgbW9kZSBzaG91bGQgYmUgXCJzYW1lLW9yaWdpblwiIG9yIFwiY29yc1wiJ1xuICAgICAgICApXG4gICAgICB9XG5cbiAgICAgIC8vIDMuIFNldCB0aGlzXHUyMDE5cyByZXF1ZXN0XHUyMDE5cyB1c2UtQ09SUy1wcmVmbGlnaHQgZmxhZy5cbiAgICAgIHJlcXVlc3QudXNlQ09SU1ByZWZsaWdodEZsYWcgPSB0cnVlXG4gICAgfVxuXG4gICAgLy8gMzkuIExldCBmaW5hbEJvZHkgYmUgaW5wdXRPckluaXRCb2R5LlxuICAgIGxldCBmaW5hbEJvZHkgPSBpbnB1dE9ySW5pdEJvZHlcblxuICAgIC8vIDQwLiBJZiBpbml0Qm9keSBpcyBudWxsIGFuZCBpbnB1dEJvZHkgaXMgbm9uLW51bGwsIHRoZW46XG4gICAgaWYgKGluaXRCb2R5ID09IG51bGwgJiYgaW5wdXRCb2R5ICE9IG51bGwpIHtcbiAgICAgIC8vIDEuIElmIGlucHV0IGlzIHVudXNhYmxlLCB0aGVuIHRocm93IGEgVHlwZUVycm9yLlxuICAgICAgaWYgKGJvZHlVbnVzYWJsZShpbnB1dCkpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcbiAgICAgICAgICAnQ2Fubm90IGNvbnN0cnVjdCBhIFJlcXVlc3Qgd2l0aCBhIFJlcXVlc3Qgb2JqZWN0IHRoYXQgaGFzIGFscmVhZHkgYmVlbiB1c2VkLidcbiAgICAgICAgKVxuICAgICAgfVxuXG4gICAgICAvLyAyLiBTZXQgZmluYWxCb2R5IHRvIHRoZSByZXN1bHQgb2YgY3JlYXRpbmcgYSBwcm94eSBmb3IgaW5wdXRCb2R5LlxuICAgICAgLy8gaHR0cHM6Ly9zdHJlYW1zLnNwZWMud2hhdHdnLm9yZy8jcmVhZGFibGVzdHJlYW0tY3JlYXRlLWEtcHJveHlcbiAgICAgIGNvbnN0IGlkZW50aXR5VHJhbnNmb3JtID0gbmV3IFRyYW5zZm9ybVN0cmVhbSgpXG4gICAgICBpbnB1dEJvZHkuc3RyZWFtLnBpcGVUaHJvdWdoKGlkZW50aXR5VHJhbnNmb3JtKVxuICAgICAgZmluYWxCb2R5ID0ge1xuICAgICAgICBzb3VyY2U6IGlucHV0Qm9keS5zb3VyY2UsXG4gICAgICAgIGxlbmd0aDogaW5wdXRCb2R5Lmxlbmd0aCxcbiAgICAgICAgc3RyZWFtOiBpZGVudGl0eVRyYW5zZm9ybS5yZWFkYWJsZVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIDQxLiBTZXQgdGhpc1x1MjAxOXMgcmVxdWVzdFx1MjAxOXMgYm9keSB0byBmaW5hbEJvZHkuXG4gICAgdGhpc1trU3RhdGVdLmJvZHkgPSBmaW5hbEJvZHlcbiAgfVxuXG4gIC8vIFJldHVybnMgcmVxdWVzdFx1MjAxOXMgSFRUUCBtZXRob2QsIHdoaWNoIGlzIFwiR0VUXCIgYnkgZGVmYXVsdC5cbiAgZ2V0IG1ldGhvZCAoKSB7XG4gICAgd2ViaWRsLmJyYW5kQ2hlY2sodGhpcywgUmVxdWVzdClcblxuICAgIC8vIFRoZSBtZXRob2QgZ2V0dGVyIHN0ZXBzIGFyZSB0byByZXR1cm4gdGhpc1x1MjAxOXMgcmVxdWVzdFx1MjAxOXMgbWV0aG9kLlxuICAgIHJldHVybiB0aGlzW2tTdGF0ZV0ubWV0aG9kXG4gIH1cblxuICAvLyBSZXR1cm5zIHRoZSBVUkwgb2YgcmVxdWVzdCBhcyBhIHN0cmluZy5cbiAgZ2V0IHVybCAoKSB7XG4gICAgd2ViaWRsLmJyYW5kQ2hlY2sodGhpcywgUmVxdWVzdClcblxuICAgIC8vIFRoZSB1cmwgZ2V0dGVyIHN0ZXBzIGFyZSB0byByZXR1cm4gdGhpc1x1MjAxOXMgcmVxdWVzdFx1MjAxOXMgVVJMLCBzZXJpYWxpemVkLlxuICAgIHJldHVybiBVUkxTZXJpYWxpemVyKHRoaXNba1N0YXRlXS51cmwpXG4gIH1cblxuICAvLyBSZXR1cm5zIGEgSGVhZGVycyBvYmplY3QgY29uc2lzdGluZyBvZiB0aGUgaGVhZGVycyBhc3NvY2lhdGVkIHdpdGggcmVxdWVzdC5cbiAgLy8gTm90ZSB0aGF0IGhlYWRlcnMgYWRkZWQgaW4gdGhlIG5ldHdvcmsgbGF5ZXIgYnkgdGhlIHVzZXIgYWdlbnQgd2lsbCBub3RcbiAgLy8gYmUgYWNjb3VudGVkIGZvciBpbiB0aGlzIG9iamVjdCwgZS5nLiwgdGhlIFwiSG9zdFwiIGhlYWRlci5cbiAgZ2V0IGhlYWRlcnMgKCkge1xuICAgIHdlYmlkbC5icmFuZENoZWNrKHRoaXMsIFJlcXVlc3QpXG5cbiAgICAvLyBUaGUgaGVhZGVycyBnZXR0ZXIgc3RlcHMgYXJlIHRvIHJldHVybiB0aGlzXHUyMDE5cyBoZWFkZXJzLlxuICAgIHJldHVybiB0aGlzW2tIZWFkZXJzXVxuICB9XG5cbiAgLy8gUmV0dXJucyB0aGUga2luZCBvZiByZXNvdXJjZSByZXF1ZXN0ZWQgYnkgcmVxdWVzdCwgZS5nLiwgXCJkb2N1bWVudFwiXG4gIC8vIG9yIFwic2NyaXB0XCIuXG4gIGdldCBkZXN0aW5hdGlvbiAoKSB7XG4gICAgd2ViaWRsLmJyYW5kQ2hlY2sodGhpcywgUmVxdWVzdClcblxuICAgIC8vIFRoZSBkZXN0aW5hdGlvbiBnZXR0ZXIgYXJlIHRvIHJldHVybiB0aGlzXHUyMDE5cyByZXF1ZXN0XHUyMDE5cyBkZXN0aW5hdGlvbi5cbiAgICByZXR1cm4gdGhpc1trU3RhdGVdLmRlc3RpbmF0aW9uXG4gIH1cblxuICAvLyBSZXR1cm5zIHRoZSByZWZlcnJlciBvZiByZXF1ZXN0LiBJdHMgdmFsdWUgY2FuIGJlIGEgc2FtZS1vcmlnaW4gVVJMIGlmXG4gIC8vIGV4cGxpY2l0bHkgc2V0IGluIGluaXQsIHRoZSBlbXB0eSBzdHJpbmcgdG8gaW5kaWNhdGUgbm8gcmVmZXJyZXIsIGFuZFxuICAvLyBcImFib3V0OmNsaWVudFwiIHdoZW4gZGVmYXVsdGluZyB0byB0aGUgZ2xvYmFsXHUyMDE5cyBkZWZhdWx0LiBUaGlzIGlzIHVzZWRcbiAgLy8gZHVyaW5nIGZldGNoaW5nIHRvIGRldGVybWluZSB0aGUgdmFsdWUgb2YgdGhlIGBSZWZlcmVyYCBoZWFkZXIgb2YgdGhlXG4gIC8vIHJlcXVlc3QgYmVpbmcgbWFkZS5cbiAgZ2V0IHJlZmVycmVyICgpIHtcbiAgICB3ZWJpZGwuYnJhbmRDaGVjayh0aGlzLCBSZXF1ZXN0KVxuXG4gICAgLy8gMS4gSWYgdGhpc1x1MjAxOXMgcmVxdWVzdFx1MjAxOXMgcmVmZXJyZXIgaXMgXCJuby1yZWZlcnJlclwiLCB0aGVuIHJldHVybiB0aGVcbiAgICAvLyBlbXB0eSBzdHJpbmcuXG4gICAgaWYgKHRoaXNba1N0YXRlXS5yZWZlcnJlciA9PT0gJ25vLXJlZmVycmVyJykge1xuICAgICAgcmV0dXJuICcnXG4gICAgfVxuXG4gICAgLy8gMi4gSWYgdGhpc1x1MjAxOXMgcmVxdWVzdFx1MjAxOXMgcmVmZXJyZXIgaXMgXCJjbGllbnRcIiwgdGhlbiByZXR1cm5cbiAgICAvLyBcImFib3V0OmNsaWVudFwiLlxuICAgIGlmICh0aGlzW2tTdGF0ZV0ucmVmZXJyZXIgPT09ICdjbGllbnQnKSB7XG4gICAgICByZXR1cm4gJ2Fib3V0OmNsaWVudCdcbiAgICB9XG5cbiAgICAvLyBSZXR1cm4gdGhpc1x1MjAxOXMgcmVxdWVzdFx1MjAxOXMgcmVmZXJyZXIsIHNlcmlhbGl6ZWQuXG4gICAgcmV0dXJuIHRoaXNba1N0YXRlXS5yZWZlcnJlci50b1N0cmluZygpXG4gIH1cblxuICAvLyBSZXR1cm5zIHRoZSByZWZlcnJlciBwb2xpY3kgYXNzb2NpYXRlZCB3aXRoIHJlcXVlc3QuXG4gIC8vIFRoaXMgaXMgdXNlZCBkdXJpbmcgZmV0Y2hpbmcgdG8gY29tcHV0ZSB0aGUgdmFsdWUgb2YgdGhlIHJlcXVlc3RcdTIwMTlzXG4gIC8vIHJlZmVycmVyLlxuICBnZXQgcmVmZXJyZXJQb2xpY3kgKCkge1xuICAgIHdlYmlkbC5icmFuZENoZWNrKHRoaXMsIFJlcXVlc3QpXG5cbiAgICAvLyBUaGUgcmVmZXJyZXJQb2xpY3kgZ2V0dGVyIHN0ZXBzIGFyZSB0byByZXR1cm4gdGhpc1x1MjAxOXMgcmVxdWVzdFx1MjAxOXMgcmVmZXJyZXIgcG9saWN5LlxuICAgIHJldHVybiB0aGlzW2tTdGF0ZV0ucmVmZXJyZXJQb2xpY3lcbiAgfVxuXG4gIC8vIFJldHVybnMgdGhlIG1vZGUgYXNzb2NpYXRlZCB3aXRoIHJlcXVlc3QsIHdoaWNoIGlzIGEgc3RyaW5nIGluZGljYXRpbmdcbiAgLy8gd2hldGhlciB0aGUgcmVxdWVzdCB3aWxsIHVzZSBDT1JTLCBvciB3aWxsIGJlIHJlc3RyaWN0ZWQgdG8gc2FtZS1vcmlnaW5cbiAgLy8gVVJMcy5cbiAgZ2V0IG1vZGUgKCkge1xuICAgIHdlYmlkbC5icmFuZENoZWNrKHRoaXMsIFJlcXVlc3QpXG5cbiAgICAvLyBUaGUgbW9kZSBnZXR0ZXIgc3RlcHMgYXJlIHRvIHJldHVybiB0aGlzXHUyMDE5cyByZXF1ZXN0XHUyMDE5cyBtb2RlLlxuICAgIHJldHVybiB0aGlzW2tTdGF0ZV0ubW9kZVxuICB9XG5cbiAgLy8gUmV0dXJucyB0aGUgY3JlZGVudGlhbHMgbW9kZSBhc3NvY2lhdGVkIHdpdGggcmVxdWVzdCxcbiAgLy8gd2hpY2ggaXMgYSBzdHJpbmcgaW5kaWNhdGluZyB3aGV0aGVyIGNyZWRlbnRpYWxzIHdpbGwgYmUgc2VudCB3aXRoIHRoZVxuICAvLyByZXF1ZXN0IGFsd2F5cywgbmV2ZXIsIG9yIG9ubHkgd2hlbiBzZW50IHRvIGEgc2FtZS1vcmlnaW4gVVJMLlxuICBnZXQgY3JlZGVudGlhbHMgKCkge1xuICAgIC8vIFRoZSBjcmVkZW50aWFscyBnZXR0ZXIgc3RlcHMgYXJlIHRvIHJldHVybiB0aGlzXHUyMDE5cyByZXF1ZXN0XHUyMDE5cyBjcmVkZW50aWFscyBtb2RlLlxuICAgIHJldHVybiB0aGlzW2tTdGF0ZV0uY3JlZGVudGlhbHNcbiAgfVxuXG4gIC8vIFJldHVybnMgdGhlIGNhY2hlIG1vZGUgYXNzb2NpYXRlZCB3aXRoIHJlcXVlc3QsXG4gIC8vIHdoaWNoIGlzIGEgc3RyaW5nIGluZGljYXRpbmcgaG93IHRoZSByZXF1ZXN0IHdpbGxcbiAgLy8gaW50ZXJhY3Qgd2l0aCB0aGUgYnJvd3Nlclx1MjAxOXMgY2FjaGUgd2hlbiBmZXRjaGluZy5cbiAgZ2V0IGNhY2hlICgpIHtcbiAgICB3ZWJpZGwuYnJhbmRDaGVjayh0aGlzLCBSZXF1ZXN0KVxuXG4gICAgLy8gVGhlIGNhY2hlIGdldHRlciBzdGVwcyBhcmUgdG8gcmV0dXJuIHRoaXNcdTIwMTlzIHJlcXVlc3RcdTIwMTlzIGNhY2hlIG1vZGUuXG4gICAgcmV0dXJuIHRoaXNba1N0YXRlXS5jYWNoZVxuICB9XG5cbiAgLy8gUmV0dXJucyB0aGUgcmVkaXJlY3QgbW9kZSBhc3NvY2lhdGVkIHdpdGggcmVxdWVzdCxcbiAgLy8gd2hpY2ggaXMgYSBzdHJpbmcgaW5kaWNhdGluZyBob3cgcmVkaXJlY3RzIGZvciB0aGVcbiAgLy8gcmVxdWVzdCB3aWxsIGJlIGhhbmRsZWQgZHVyaW5nIGZldGNoaW5nLiBBIHJlcXVlc3RcbiAgLy8gd2lsbCBmb2xsb3cgcmVkaXJlY3RzIGJ5IGRlZmF1bHQuXG4gIGdldCByZWRpcmVjdCAoKSB7XG4gICAgd2ViaWRsLmJyYW5kQ2hlY2sodGhpcywgUmVxdWVzdClcblxuICAgIC8vIFRoZSByZWRpcmVjdCBnZXR0ZXIgc3RlcHMgYXJlIHRvIHJldHVybiB0aGlzXHUyMDE5cyByZXF1ZXN0XHUyMDE5cyByZWRpcmVjdCBtb2RlLlxuICAgIHJldHVybiB0aGlzW2tTdGF0ZV0ucmVkaXJlY3RcbiAgfVxuXG4gIC8vIFJldHVybnMgcmVxdWVzdFx1MjAxOXMgc3VicmVzb3VyY2UgaW50ZWdyaXR5IG1ldGFkYXRhLCB3aGljaCBpcyBhXG4gIC8vIGNyeXB0b2dyYXBoaWMgaGFzaCBvZiB0aGUgcmVzb3VyY2UgYmVpbmcgZmV0Y2hlZC4gSXRzIHZhbHVlXG4gIC8vIGNvbnNpc3RzIG9mIG11bHRpcGxlIGhhc2hlcyBzZXBhcmF0ZWQgYnkgd2hpdGVzcGFjZS4gW1NSSV1cbiAgZ2V0IGludGVncml0eSAoKSB7XG4gICAgd2ViaWRsLmJyYW5kQ2hlY2sodGhpcywgUmVxdWVzdClcblxuICAgIC8vIFRoZSBpbnRlZ3JpdHkgZ2V0dGVyIHN0ZXBzIGFyZSB0byByZXR1cm4gdGhpc1x1MjAxOXMgcmVxdWVzdFx1MjAxOXMgaW50ZWdyaXR5XG4gICAgLy8gbWV0YWRhdGEuXG4gICAgcmV0dXJuIHRoaXNba1N0YXRlXS5pbnRlZ3JpdHlcbiAgfVxuXG4gIC8vIFJldHVybnMgYSBib29sZWFuIGluZGljYXRpbmcgd2hldGhlciBvciBub3QgcmVxdWVzdCBjYW4gb3V0bGl2ZSB0aGVcbiAgLy8gZ2xvYmFsIGluIHdoaWNoIGl0IHdhcyBjcmVhdGVkLlxuICBnZXQga2VlcGFsaXZlICgpIHtcbiAgICB3ZWJpZGwuYnJhbmRDaGVjayh0aGlzLCBSZXF1ZXN0KVxuXG4gICAgLy8gVGhlIGtlZXBhbGl2ZSBnZXR0ZXIgc3RlcHMgYXJlIHRvIHJldHVybiB0aGlzXHUyMDE5cyByZXF1ZXN0XHUyMDE5cyBrZWVwYWxpdmUuXG4gICAgcmV0dXJuIHRoaXNba1N0YXRlXS5rZWVwYWxpdmVcbiAgfVxuXG4gIC8vIFJldHVybnMgYSBib29sZWFuIGluZGljYXRpbmcgd2hldGhlciBvciBub3QgcmVxdWVzdCBpcyBmb3IgYSByZWxvYWRcbiAgLy8gbmF2aWdhdGlvbi5cbiAgZ2V0IGlzUmVsb2FkTmF2aWdhdGlvbiAoKSB7XG4gICAgd2ViaWRsLmJyYW5kQ2hlY2sodGhpcywgUmVxdWVzdClcblxuICAgIC8vIFRoZSBpc1JlbG9hZE5hdmlnYXRpb24gZ2V0dGVyIHN0ZXBzIGFyZSB0byByZXR1cm4gdHJ1ZSBpZiB0aGlzXHUyMDE5c1xuICAgIC8vIHJlcXVlc3RcdTIwMTlzIHJlbG9hZC1uYXZpZ2F0aW9uIGZsYWcgaXMgc2V0OyBvdGhlcndpc2UgZmFsc2UuXG4gICAgcmV0dXJuIHRoaXNba1N0YXRlXS5yZWxvYWROYXZpZ2F0aW9uXG4gIH1cblxuICAvLyBSZXR1cm5zIGEgYm9vbGVhbiBpbmRpY2F0aW5nIHdoZXRoZXIgb3Igbm90IHJlcXVlc3QgaXMgZm9yIGEgaGlzdG9yeVxuICAvLyBuYXZpZ2F0aW9uIChhLmsuYS4gYmFjay1mb3J3YXJkIG5hdmlnYXRpb24pLlxuICBnZXQgaXNIaXN0b3J5TmF2aWdhdGlvbiAoKSB7XG4gICAgd2ViaWRsLmJyYW5kQ2hlY2sodGhpcywgUmVxdWVzdClcblxuICAgIC8vIFRoZSBpc0hpc3RvcnlOYXZpZ2F0aW9uIGdldHRlciBzdGVwcyBhcmUgdG8gcmV0dXJuIHRydWUgaWYgdGhpc1x1MjAxOXMgcmVxdWVzdFx1MjAxOXNcbiAgICAvLyBoaXN0b3J5LW5hdmlnYXRpb24gZmxhZyBpcyBzZXQ7IG90aGVyd2lzZSBmYWxzZS5cbiAgICByZXR1cm4gdGhpc1trU3RhdGVdLmhpc3RvcnlOYXZpZ2F0aW9uXG4gIH1cblxuICAvLyBSZXR1cm5zIHRoZSBzaWduYWwgYXNzb2NpYXRlZCB3aXRoIHJlcXVlc3QsIHdoaWNoIGlzIGFuIEFib3J0U2lnbmFsXG4gIC8vIG9iamVjdCBpbmRpY2F0aW5nIHdoZXRoZXIgb3Igbm90IHJlcXVlc3QgaGFzIGJlZW4gYWJvcnRlZCwgYW5kIGl0c1xuICAvLyBhYm9ydCBldmVudCBoYW5kbGVyLlxuICBnZXQgc2lnbmFsICgpIHtcbiAgICB3ZWJpZGwuYnJhbmRDaGVjayh0aGlzLCBSZXF1ZXN0KVxuXG4gICAgLy8gVGhlIHNpZ25hbCBnZXR0ZXIgc3RlcHMgYXJlIHRvIHJldHVybiB0aGlzXHUyMDE5cyBzaWduYWwuXG4gICAgcmV0dXJuIHRoaXNba1NpZ25hbF1cbiAgfVxuXG4gIGdldCBib2R5ICgpIHtcbiAgICB3ZWJpZGwuYnJhbmRDaGVjayh0aGlzLCBSZXF1ZXN0KVxuXG4gICAgcmV0dXJuIHRoaXNba1N0YXRlXS5ib2R5ID8gdGhpc1trU3RhdGVdLmJvZHkuc3RyZWFtIDogbnVsbFxuICB9XG5cbiAgZ2V0IGJvZHlVc2VkICgpIHtcbiAgICB3ZWJpZGwuYnJhbmRDaGVjayh0aGlzLCBSZXF1ZXN0KVxuXG4gICAgcmV0dXJuICEhdGhpc1trU3RhdGVdLmJvZHkgJiYgdXRpbC5pc0Rpc3R1cmJlZCh0aGlzW2tTdGF0ZV0uYm9keS5zdHJlYW0pXG4gIH1cblxuICBnZXQgZHVwbGV4ICgpIHtcbiAgICB3ZWJpZGwuYnJhbmRDaGVjayh0aGlzLCBSZXF1ZXN0KVxuXG4gICAgcmV0dXJuICdoYWxmJ1xuICB9XG5cbiAgLy8gUmV0dXJucyBhIGNsb25lIG9mIHJlcXVlc3QuXG4gIGNsb25lICgpIHtcbiAgICB3ZWJpZGwuYnJhbmRDaGVjayh0aGlzLCBSZXF1ZXN0KVxuXG4gICAgLy8gMS4gSWYgdGhpcyBpcyB1bnVzYWJsZSwgdGhlbiB0aHJvdyBhIFR5cGVFcnJvci5cbiAgICBpZiAoYm9keVVudXNhYmxlKHRoaXMpKSB7XG4gICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCd1bnVzYWJsZScpXG4gICAgfVxuXG4gICAgLy8gMi4gTGV0IGNsb25lZFJlcXVlc3QgYmUgdGhlIHJlc3VsdCBvZiBjbG9uaW5nIHRoaXNcdTIwMTlzIHJlcXVlc3QuXG4gICAgY29uc3QgY2xvbmVkUmVxdWVzdCA9IGNsb25lUmVxdWVzdCh0aGlzW2tTdGF0ZV0pXG5cbiAgICAvLyAzLiBMZXQgY2xvbmVkUmVxdWVzdE9iamVjdCBiZSB0aGUgcmVzdWx0IG9mIGNyZWF0aW5nIGEgUmVxdWVzdCBvYmplY3QsXG4gICAgLy8gZ2l2ZW4gY2xvbmVkUmVxdWVzdCwgdGhpc1x1MjAxOXMgaGVhZGVyc1x1MjAxOXMgZ3VhcmQsIGFuZCB0aGlzXHUyMDE5cyByZWxldmFudCBSZWFsbS5cbiAgICAvLyA0LiBNYWtlIGNsb25lZFJlcXVlc3RPYmplY3RcdTIwMTlzIHNpZ25hbCBmb2xsb3cgdGhpc1x1MjAxOXMgc2lnbmFsLlxuICAgIGNvbnN0IGFjID0gbmV3IEFib3J0Q29udHJvbGxlcigpXG4gICAgaWYgKHRoaXMuc2lnbmFsLmFib3J0ZWQpIHtcbiAgICAgIGFjLmFib3J0KHRoaXMuc2lnbmFsLnJlYXNvbilcbiAgICB9IGVsc2Uge1xuICAgICAgbGV0IGxpc3QgPSBkZXBlbmRlbnRDb250cm9sbGVyTWFwLmdldCh0aGlzLnNpZ25hbClcbiAgICAgIGlmIChsaXN0ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgbGlzdCA9IG5ldyBTZXQoKVxuICAgICAgICBkZXBlbmRlbnRDb250cm9sbGVyTWFwLnNldCh0aGlzLnNpZ25hbCwgbGlzdClcbiAgICAgIH1cbiAgICAgIGNvbnN0IGFjUmVmID0gbmV3IFdlYWtSZWYoYWMpXG4gICAgICBsaXN0LmFkZChhY1JlZilcbiAgICAgIHV0aWwuYWRkQWJvcnRMaXN0ZW5lcihcbiAgICAgICAgYWMuc2lnbmFsLFxuICAgICAgICBidWlsZEFib3J0KGFjUmVmKVxuICAgICAgKVxuICAgIH1cblxuICAgIC8vIDQuIFJldHVybiBjbG9uZWRSZXF1ZXN0T2JqZWN0LlxuICAgIHJldHVybiBmcm9tSW5uZXJSZXF1ZXN0KGNsb25lZFJlcXVlc3QsIGFjLnNpZ25hbCwgZ2V0SGVhZGVyc0d1YXJkKHRoaXNba0hlYWRlcnNdKSlcbiAgfVxuXG4gIFtub2RlVXRpbC5pbnNwZWN0LmN1c3RvbV0gKGRlcHRoLCBvcHRpb25zKSB7XG4gICAgaWYgKG9wdGlvbnMuZGVwdGggPT09IG51bGwpIHtcbiAgICAgIG9wdGlvbnMuZGVwdGggPSAyXG4gICAgfVxuXG4gICAgb3B0aW9ucy5jb2xvcnMgPz89IHRydWVcblxuICAgIGNvbnN0IHByb3BlcnRpZXMgPSB7XG4gICAgICBtZXRob2Q6IHRoaXMubWV0aG9kLFxuICAgICAgdXJsOiB0aGlzLnVybCxcbiAgICAgIGhlYWRlcnM6IHRoaXMuaGVhZGVycyxcbiAgICAgIGRlc3RpbmF0aW9uOiB0aGlzLmRlc3RpbmF0aW9uLFxuICAgICAgcmVmZXJyZXI6IHRoaXMucmVmZXJyZXIsXG4gICAgICByZWZlcnJlclBvbGljeTogdGhpcy5yZWZlcnJlclBvbGljeSxcbiAgICAgIG1vZGU6IHRoaXMubW9kZSxcbiAgICAgIGNyZWRlbnRpYWxzOiB0aGlzLmNyZWRlbnRpYWxzLFxuICAgICAgY2FjaGU6IHRoaXMuY2FjaGUsXG4gICAgICByZWRpcmVjdDogdGhpcy5yZWRpcmVjdCxcbiAgICAgIGludGVncml0eTogdGhpcy5pbnRlZ3JpdHksXG4gICAgICBrZWVwYWxpdmU6IHRoaXMua2VlcGFsaXZlLFxuICAgICAgaXNSZWxvYWROYXZpZ2F0aW9uOiB0aGlzLmlzUmVsb2FkTmF2aWdhdGlvbixcbiAgICAgIGlzSGlzdG9yeU5hdmlnYXRpb246IHRoaXMuaXNIaXN0b3J5TmF2aWdhdGlvbixcbiAgICAgIHNpZ25hbDogdGhpcy5zaWduYWxcbiAgICB9XG5cbiAgICByZXR1cm4gYFJlcXVlc3QgJHtub2RlVXRpbC5mb3JtYXRXaXRoT3B0aW9ucyhvcHRpb25zLCBwcm9wZXJ0aWVzKX1gXG4gIH1cbn1cblxubWl4aW5Cb2R5KFJlcXVlc3QpXG5cbi8vIGh0dHBzOi8vZmV0Y2guc3BlYy53aGF0d2cub3JnLyNyZXF1ZXN0c1xuZnVuY3Rpb24gbWFrZVJlcXVlc3QgKGluaXQpIHtcbiAgcmV0dXJuIHtcbiAgICBtZXRob2Q6IGluaXQubWV0aG9kID8/ICdHRVQnLFxuICAgIGxvY2FsVVJMc09ubHk6IGluaXQubG9jYWxVUkxzT25seSA/PyBmYWxzZSxcbiAgICB1bnNhZmVSZXF1ZXN0OiBpbml0LnVuc2FmZVJlcXVlc3QgPz8gZmFsc2UsXG4gICAgYm9keTogaW5pdC5ib2R5ID8/IG51bGwsXG4gICAgY2xpZW50OiBpbml0LmNsaWVudCA/PyBudWxsLFxuICAgIHJlc2VydmVkQ2xpZW50OiBpbml0LnJlc2VydmVkQ2xpZW50ID8/IG51bGwsXG4gICAgcmVwbGFjZXNDbGllbnRJZDogaW5pdC5yZXBsYWNlc0NsaWVudElkID8/ICcnLFxuICAgIHdpbmRvdzogaW5pdC53aW5kb3cgPz8gJ2NsaWVudCcsXG4gICAga2VlcGFsaXZlOiBpbml0LmtlZXBhbGl2ZSA/PyBmYWxzZSxcbiAgICBzZXJ2aWNlV29ya2VyczogaW5pdC5zZXJ2aWNlV29ya2VycyA/PyAnYWxsJyxcbiAgICBpbml0aWF0b3I6IGluaXQuaW5pdGlhdG9yID8/ICcnLFxuICAgIGRlc3RpbmF0aW9uOiBpbml0LmRlc3RpbmF0aW9uID8/ICcnLFxuICAgIHByaW9yaXR5OiBpbml0LnByaW9yaXR5ID8/IG51bGwsXG4gICAgb3JpZ2luOiBpbml0Lm9yaWdpbiA/PyAnY2xpZW50JyxcbiAgICBwb2xpY3lDb250YWluZXI6IGluaXQucG9saWN5Q29udGFpbmVyID8/ICdjbGllbnQnLFxuICAgIHJlZmVycmVyOiBpbml0LnJlZmVycmVyID8/ICdjbGllbnQnLFxuICAgIHJlZmVycmVyUG9saWN5OiBpbml0LnJlZmVycmVyUG9saWN5ID8/ICcnLFxuICAgIG1vZGU6IGluaXQubW9kZSA/PyAnbm8tY29ycycsXG4gICAgdXNlQ09SU1ByZWZsaWdodEZsYWc6IGluaXQudXNlQ09SU1ByZWZsaWdodEZsYWcgPz8gZmFsc2UsXG4gICAgY3JlZGVudGlhbHM6IGluaXQuY3JlZGVudGlhbHMgPz8gJ3NhbWUtb3JpZ2luJyxcbiAgICB1c2VDcmVkZW50aWFsczogaW5pdC51c2VDcmVkZW50aWFscyA/PyBmYWxzZSxcbiAgICBjYWNoZTogaW5pdC5jYWNoZSA/PyAnZGVmYXVsdCcsXG4gICAgcmVkaXJlY3Q6IGluaXQucmVkaXJlY3QgPz8gJ2ZvbGxvdycsXG4gICAgaW50ZWdyaXR5OiBpbml0LmludGVncml0eSA/PyAnJyxcbiAgICBjcnlwdG9HcmFwaGljc05vbmNlTWV0YWRhdGE6IGluaXQuY3J5cHRvR3JhcGhpY3NOb25jZU1ldGFkYXRhID8/ICcnLFxuICAgIHBhcnNlck1ldGFkYXRhOiBpbml0LnBhcnNlck1ldGFkYXRhID8/ICcnLFxuICAgIHJlbG9hZE5hdmlnYXRpb246IGluaXQucmVsb2FkTmF2aWdhdGlvbiA/PyBmYWxzZSxcbiAgICBoaXN0b3J5TmF2aWdhdGlvbjogaW5pdC5oaXN0b3J5TmF2aWdhdGlvbiA/PyBmYWxzZSxcbiAgICB1c2VyQWN0aXZhdGlvbjogaW5pdC51c2VyQWN0aXZhdGlvbiA/PyBmYWxzZSxcbiAgICB0YWludGVkT3JpZ2luOiBpbml0LnRhaW50ZWRPcmlnaW4gPz8gZmFsc2UsXG4gICAgcmVkaXJlY3RDb3VudDogaW5pdC5yZWRpcmVjdENvdW50ID8/IDAsXG4gICAgcmVzcG9uc2VUYWludGluZzogaW5pdC5yZXNwb25zZVRhaW50aW5nID8/ICdiYXNpYycsXG4gICAgcHJldmVudE5vQ2FjaGVDYWNoZUNvbnRyb2xIZWFkZXJNb2RpZmljYXRpb246IGluaXQucHJldmVudE5vQ2FjaGVDYWNoZUNvbnRyb2xIZWFkZXJNb2RpZmljYXRpb24gPz8gZmFsc2UsXG4gICAgZG9uZTogaW5pdC5kb25lID8/IGZhbHNlLFxuICAgIHRpbWluZ0FsbG93RmFpbGVkOiBpbml0LnRpbWluZ0FsbG93RmFpbGVkID8/IGZhbHNlLFxuICAgIHVybExpc3Q6IGluaXQudXJsTGlzdCxcbiAgICB1cmw6IGluaXQudXJsTGlzdFswXSxcbiAgICBoZWFkZXJzTGlzdDogaW5pdC5oZWFkZXJzTGlzdFxuICAgICAgPyBuZXcgSGVhZGVyc0xpc3QoaW5pdC5oZWFkZXJzTGlzdClcbiAgICAgIDogbmV3IEhlYWRlcnNMaXN0KClcbiAgfVxufVxuXG4vLyBodHRwczovL2ZldGNoLnNwZWMud2hhdHdnLm9yZy8jY29uY2VwdC1yZXF1ZXN0LWNsb25lXG5mdW5jdGlvbiBjbG9uZVJlcXVlc3QgKHJlcXVlc3QpIHtcbiAgLy8gVG8gY2xvbmUgYSByZXF1ZXN0IHJlcXVlc3QsIHJ1biB0aGVzZSBzdGVwczpcblxuICAvLyAxLiBMZXQgbmV3UmVxdWVzdCBiZSBhIGNvcHkgb2YgcmVxdWVzdCwgZXhjZXB0IGZvciBpdHMgYm9keS5cbiAgY29uc3QgbmV3UmVxdWVzdCA9IG1ha2VSZXF1ZXN0KHsgLi4ucmVxdWVzdCwgYm9keTogbnVsbCB9KVxuXG4gIC8vIDIuIElmIHJlcXVlc3RcdTIwMTlzIGJvZHkgaXMgbm9uLW51bGwsIHNldCBuZXdSZXF1ZXN0XHUyMDE5cyBib2R5IHRvIHRoZVxuICAvLyByZXN1bHQgb2YgY2xvbmluZyByZXF1ZXN0XHUyMDE5cyBib2R5LlxuICBpZiAocmVxdWVzdC5ib2R5ICE9IG51bGwpIHtcbiAgICBuZXdSZXF1ZXN0LmJvZHkgPSBjbG9uZUJvZHkobmV3UmVxdWVzdCwgcmVxdWVzdC5ib2R5KVxuICB9XG5cbiAgLy8gMy4gUmV0dXJuIG5ld1JlcXVlc3QuXG4gIHJldHVybiBuZXdSZXF1ZXN0XG59XG5cbi8qKlxuICogQHNlZSBodHRwczovL2ZldGNoLnNwZWMud2hhdHdnLm9yZy8jcmVxdWVzdC1jcmVhdGVcbiAqIEBwYXJhbSB7YW55fSBpbm5lclJlcXVlc3RcbiAqIEBwYXJhbSB7QWJvcnRTaWduYWx9IHNpZ25hbFxuICogQHBhcmFtIHsncmVxdWVzdCcgfCAnaW1tdXRhYmxlJyB8ICdyZXF1ZXN0LW5vLWNvcnMnIHwgJ3Jlc3BvbnNlJyB8ICdub25lJ30gZ3VhcmRcbiAqIEByZXR1cm5zIHtSZXF1ZXN0fVxuICovXG5mdW5jdGlvbiBmcm9tSW5uZXJSZXF1ZXN0IChpbm5lclJlcXVlc3QsIHNpZ25hbCwgZ3VhcmQpIHtcbiAgY29uc3QgcmVxdWVzdCA9IG5ldyBSZXF1ZXN0KGtDb25zdHJ1Y3QpXG4gIHJlcXVlc3Rba1N0YXRlXSA9IGlubmVyUmVxdWVzdFxuICByZXF1ZXN0W2tTaWduYWxdID0gc2lnbmFsXG4gIHJlcXVlc3Rba0hlYWRlcnNdID0gbmV3IEhlYWRlcnMoa0NvbnN0cnVjdClcbiAgc2V0SGVhZGVyc0xpc3QocmVxdWVzdFtrSGVhZGVyc10sIGlubmVyUmVxdWVzdC5oZWFkZXJzTGlzdClcbiAgc2V0SGVhZGVyc0d1YXJkKHJlcXVlc3Rba0hlYWRlcnNdLCBndWFyZClcbiAgcmV0dXJuIHJlcXVlc3Rcbn1cblxuT2JqZWN0LmRlZmluZVByb3BlcnRpZXMoUmVxdWVzdC5wcm90b3R5cGUsIHtcbiAgbWV0aG9kOiBrRW51bWVyYWJsZVByb3BlcnR5LFxuICB1cmw6IGtFbnVtZXJhYmxlUHJvcGVydHksXG4gIGhlYWRlcnM6IGtFbnVtZXJhYmxlUHJvcGVydHksXG4gIHJlZGlyZWN0OiBrRW51bWVyYWJsZVByb3BlcnR5LFxuICBjbG9uZToga0VudW1lcmFibGVQcm9wZXJ0eSxcbiAgc2lnbmFsOiBrRW51bWVyYWJsZVByb3BlcnR5LFxuICBkdXBsZXg6IGtFbnVtZXJhYmxlUHJvcGVydHksXG4gIGRlc3RpbmF0aW9uOiBrRW51bWVyYWJsZVByb3BlcnR5LFxuICBib2R5OiBrRW51bWVyYWJsZVByb3BlcnR5LFxuICBib2R5VXNlZDoga0VudW1lcmFibGVQcm9wZXJ0eSxcbiAgaXNIaXN0b3J5TmF2aWdhdGlvbjoga0VudW1lcmFibGVQcm9wZXJ0eSxcbiAgaXNSZWxvYWROYXZpZ2F0aW9uOiBrRW51bWVyYWJsZVByb3BlcnR5LFxuICBrZWVwYWxpdmU6IGtFbnVtZXJhYmxlUHJvcGVydHksXG4gIGludGVncml0eToga0VudW1lcmFibGVQcm9wZXJ0eSxcbiAgY2FjaGU6IGtFbnVtZXJhYmxlUHJvcGVydHksXG4gIGNyZWRlbnRpYWxzOiBrRW51bWVyYWJsZVByb3BlcnR5LFxuICBhdHRyaWJ1dGU6IGtFbnVtZXJhYmxlUHJvcGVydHksXG4gIHJlZmVycmVyUG9saWN5OiBrRW51bWVyYWJsZVByb3BlcnR5LFxuICByZWZlcnJlcjoga0VudW1lcmFibGVQcm9wZXJ0eSxcbiAgbW9kZToga0VudW1lcmFibGVQcm9wZXJ0eSxcbiAgW1N5bWJvbC50b1N0cmluZ1RhZ106IHtcbiAgICB2YWx1ZTogJ1JlcXVlc3QnLFxuICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICB9XG59KVxuXG53ZWJpZGwuY29udmVydGVycy5SZXF1ZXN0ID0gd2ViaWRsLmludGVyZmFjZUNvbnZlcnRlcihcbiAgUmVxdWVzdFxuKVxuXG4vLyBodHRwczovL2ZldGNoLnNwZWMud2hhdHdnLm9yZy8jcmVxdWVzdGluZm9cbndlYmlkbC5jb252ZXJ0ZXJzLlJlcXVlc3RJbmZvID0gZnVuY3Rpb24gKFYsIHByZWZpeCwgYXJndW1lbnQpIHtcbiAgaWYgKHR5cGVvZiBWID09PSAnc3RyaW5nJykge1xuICAgIHJldHVybiB3ZWJpZGwuY29udmVydGVycy5VU1ZTdHJpbmcoViwgcHJlZml4LCBhcmd1bWVudClcbiAgfVxuXG4gIGlmIChWIGluc3RhbmNlb2YgUmVxdWVzdCkge1xuICAgIHJldHVybiB3ZWJpZGwuY29udmVydGVycy5SZXF1ZXN0KFYsIHByZWZpeCwgYXJndW1lbnQpXG4gIH1cblxuICByZXR1cm4gd2ViaWRsLmNvbnZlcnRlcnMuVVNWU3RyaW5nKFYsIHByZWZpeCwgYXJndW1lbnQpXG59XG5cbndlYmlkbC5jb252ZXJ0ZXJzLkFib3J0U2lnbmFsID0gd2ViaWRsLmludGVyZmFjZUNvbnZlcnRlcihcbiAgQWJvcnRTaWduYWxcbilcblxuLy8gaHR0cHM6Ly9mZXRjaC5zcGVjLndoYXR3Zy5vcmcvI3JlcXVlc3Rpbml0XG53ZWJpZGwuY29udmVydGVycy5SZXF1ZXN0SW5pdCA9IHdlYmlkbC5kaWN0aW9uYXJ5Q29udmVydGVyKFtcbiAge1xuICAgIGtleTogJ21ldGhvZCcsXG4gICAgY29udmVydGVyOiB3ZWJpZGwuY29udmVydGVycy5CeXRlU3RyaW5nXG4gIH0sXG4gIHtcbiAgICBrZXk6ICdoZWFkZXJzJyxcbiAgICBjb252ZXJ0ZXI6IHdlYmlkbC5jb252ZXJ0ZXJzLkhlYWRlcnNJbml0XG4gIH0sXG4gIHtcbiAgICBrZXk6ICdib2R5JyxcbiAgICBjb252ZXJ0ZXI6IHdlYmlkbC5udWxsYWJsZUNvbnZlcnRlcihcbiAgICAgIHdlYmlkbC5jb252ZXJ0ZXJzLkJvZHlJbml0XG4gICAgKVxuICB9LFxuICB7XG4gICAga2V5OiAncmVmZXJyZXInLFxuICAgIGNvbnZlcnRlcjogd2ViaWRsLmNvbnZlcnRlcnMuVVNWU3RyaW5nXG4gIH0sXG4gIHtcbiAgICBrZXk6ICdyZWZlcnJlclBvbGljeScsXG4gICAgY29udmVydGVyOiB3ZWJpZGwuY29udmVydGVycy5ET01TdHJpbmcsXG4gICAgLy8gaHR0cHM6Ly93M2MuZ2l0aHViLmlvL3dlYmFwcHNlYy1yZWZlcnJlci1wb2xpY3kvI3JlZmVycmVyLXBvbGljeVxuICAgIGFsbG93ZWRWYWx1ZXM6IHJlZmVycmVyUG9saWN5XG4gIH0sXG4gIHtcbiAgICBrZXk6ICdtb2RlJyxcbiAgICBjb252ZXJ0ZXI6IHdlYmlkbC5jb252ZXJ0ZXJzLkRPTVN0cmluZyxcbiAgICAvLyBodHRwczovL2ZldGNoLnNwZWMud2hhdHdnLm9yZy8jY29uY2VwdC1yZXF1ZXN0LW1vZGVcbiAgICBhbGxvd2VkVmFsdWVzOiByZXF1ZXN0TW9kZVxuICB9LFxuICB7XG4gICAga2V5OiAnY3JlZGVudGlhbHMnLFxuICAgIGNvbnZlcnRlcjogd2ViaWRsLmNvbnZlcnRlcnMuRE9NU3RyaW5nLFxuICAgIC8vIGh0dHBzOi8vZmV0Y2guc3BlYy53aGF0d2cub3JnLyNyZXF1ZXN0Y3JlZGVudGlhbHNcbiAgICBhbGxvd2VkVmFsdWVzOiByZXF1ZXN0Q3JlZGVudGlhbHNcbiAgfSxcbiAge1xuICAgIGtleTogJ2NhY2hlJyxcbiAgICBjb252ZXJ0ZXI6IHdlYmlkbC5jb252ZXJ0ZXJzLkRPTVN0cmluZyxcbiAgICAvLyBodHRwczovL2ZldGNoLnNwZWMud2hhdHdnLm9yZy8jcmVxdWVzdGNhY2hlXG4gICAgYWxsb3dlZFZhbHVlczogcmVxdWVzdENhY2hlXG4gIH0sXG4gIHtcbiAgICBrZXk6ICdyZWRpcmVjdCcsXG4gICAgY29udmVydGVyOiB3ZWJpZGwuY29udmVydGVycy5ET01TdHJpbmcsXG4gICAgLy8gaHR0cHM6Ly9mZXRjaC5zcGVjLndoYXR3Zy5vcmcvI3JlcXVlc3RyZWRpcmVjdFxuICAgIGFsbG93ZWRWYWx1ZXM6IHJlcXVlc3RSZWRpcmVjdFxuICB9LFxuICB7XG4gICAga2V5OiAnaW50ZWdyaXR5JyxcbiAgICBjb252ZXJ0ZXI6IHdlYmlkbC5jb252ZXJ0ZXJzLkRPTVN0cmluZ1xuICB9LFxuICB7XG4gICAga2V5OiAna2VlcGFsaXZlJyxcbiAgICBjb252ZXJ0ZXI6IHdlYmlkbC5jb252ZXJ0ZXJzLmJvb2xlYW5cbiAgfSxcbiAge1xuICAgIGtleTogJ3NpZ25hbCcsXG4gICAgY29udmVydGVyOiB3ZWJpZGwubnVsbGFibGVDb252ZXJ0ZXIoXG4gICAgICAoc2lnbmFsKSA9PiB3ZWJpZGwuY29udmVydGVycy5BYm9ydFNpZ25hbChcbiAgICAgICAgc2lnbmFsLFxuICAgICAgICAnUmVxdWVzdEluaXQnLFxuICAgICAgICAnc2lnbmFsJyxcbiAgICAgICAgeyBzdHJpY3Q6IGZhbHNlIH1cbiAgICAgIClcbiAgICApXG4gIH0sXG4gIHtcbiAgICBrZXk6ICd3aW5kb3cnLFxuICAgIGNvbnZlcnRlcjogd2ViaWRsLmNvbnZlcnRlcnMuYW55XG4gIH0sXG4gIHtcbiAgICBrZXk6ICdkdXBsZXgnLFxuICAgIGNvbnZlcnRlcjogd2ViaWRsLmNvbnZlcnRlcnMuRE9NU3RyaW5nLFxuICAgIGFsbG93ZWRWYWx1ZXM6IHJlcXVlc3REdXBsZXhcbiAgfSxcbiAge1xuICAgIGtleTogJ2Rpc3BhdGNoZXInLCAvLyB1bmRpY2kgc3BlY2lmaWMgb3B0aW9uXG4gICAgY29udmVydGVyOiB3ZWJpZGwuY29udmVydGVycy5hbnlcbiAgfVxuXSlcblxubW9kdWxlLmV4cG9ydHMgPSB7IFJlcXVlc3QsIG1ha2VSZXF1ZXN0LCBmcm9tSW5uZXJSZXF1ZXN0LCBjbG9uZVJlcXVlc3QgfVxuIiwgIi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9FdGhhbi1BcnJvd29vZC91bmRpY2ktZmV0Y2hcblxuJ3VzZSBzdHJpY3QnXG5cbmNvbnN0IHtcbiAgbWFrZU5ldHdvcmtFcnJvcixcbiAgbWFrZUFwcHJvcHJpYXRlTmV0d29ya0Vycm9yLFxuICBmaWx0ZXJSZXNwb25zZSxcbiAgbWFrZVJlc3BvbnNlLFxuICBmcm9tSW5uZXJSZXNwb25zZVxufSA9IHJlcXVpcmUoJy4vcmVzcG9uc2UnKVxuY29uc3QgeyBIZWFkZXJzTGlzdCB9ID0gcmVxdWlyZSgnLi9oZWFkZXJzJylcbmNvbnN0IHsgUmVxdWVzdCwgY2xvbmVSZXF1ZXN0IH0gPSByZXF1aXJlKCcuL3JlcXVlc3QnKVxuY29uc3QgemxpYiA9IHJlcXVpcmUoJ25vZGU6emxpYicpXG5jb25zdCB7XG4gIGJ5dGVzTWF0Y2gsXG4gIG1ha2VQb2xpY3lDb250YWluZXIsXG4gIGNsb25lUG9saWN5Q29udGFpbmVyLFxuICByZXF1ZXN0QmFkUG9ydCxcbiAgVEFPQ2hlY2ssXG4gIGFwcGVuZFJlcXVlc3RPcmlnaW5IZWFkZXIsXG4gIHJlc3BvbnNlTG9jYXRpb25VUkwsXG4gIHJlcXVlc3RDdXJyZW50VVJMLFxuICBzZXRSZXF1ZXN0UmVmZXJyZXJQb2xpY3lPblJlZGlyZWN0LFxuICB0cnlVcGdyYWRlUmVxdWVzdFRvQVBvdGVudGlhbGx5VHJ1c3R3b3J0aHlVUkwsXG4gIGNyZWF0ZU9wYXF1ZVRpbWluZ0luZm8sXG4gIGFwcGVuZEZldGNoTWV0YWRhdGEsXG4gIGNvcnNDaGVjayxcbiAgY3Jvc3NPcmlnaW5SZXNvdXJjZVBvbGljeUNoZWNrLFxuICBkZXRlcm1pbmVSZXF1ZXN0c1JlZmVycmVyLFxuICBjb2Fyc2VuZWRTaGFyZWRDdXJyZW50VGltZSxcbiAgY3JlYXRlRGVmZXJyZWRQcm9taXNlLFxuICBpc0Jsb2JMaWtlLFxuICBzYW1lT3JpZ2luLFxuICBpc0NhbmNlbGxlZCxcbiAgaXNBYm9ydGVkLFxuICBpc0Vycm9yTGlrZSxcbiAgZnVsbHlSZWFkQm9keSxcbiAgcmVhZGFibGVTdHJlYW1DbG9zZSxcbiAgaXNvbW9ycGhpY0VuY29kZSxcbiAgdXJsSXNMb2NhbCxcbiAgdXJsSXNIdHRwSHR0cHNTY2hlbWUsXG4gIHVybEhhc0h0dHBzU2NoZW1lLFxuICBjbGFtcEFuZENvYXJzZW5Db25uZWN0aW9uVGltaW5nSW5mbyxcbiAgc2ltcGxlUmFuZ2VIZWFkZXJWYWx1ZSxcbiAgYnVpbGRDb250ZW50UmFuZ2UsXG4gIGNyZWF0ZUluZmxhdGUsXG4gIGV4dHJhY3RNaW1lVHlwZVxufSA9IHJlcXVpcmUoJy4vdXRpbCcpXG5jb25zdCB7IGtTdGF0ZSwga0Rpc3BhdGNoZXIgfSA9IHJlcXVpcmUoJy4vc3ltYm9scycpXG5jb25zdCBhc3NlcnQgPSByZXF1aXJlKCdub2RlOmFzc2VydCcpXG5jb25zdCB7IHNhZmVseUV4dHJhY3RCb2R5LCBleHRyYWN0Qm9keSB9ID0gcmVxdWlyZSgnLi9ib2R5JylcbmNvbnN0IHtcbiAgcmVkaXJlY3RTdGF0dXNTZXQsXG4gIG51bGxCb2R5U3RhdHVzLFxuICBzYWZlTWV0aG9kc1NldCxcbiAgcmVxdWVzdEJvZHlIZWFkZXIsXG4gIHN1YnJlc291cmNlU2V0XG59ID0gcmVxdWlyZSgnLi9jb25zdGFudHMnKVxuY29uc3QgRUUgPSByZXF1aXJlKCdub2RlOmV2ZW50cycpXG5jb25zdCB7IFJlYWRhYmxlLCBwaXBlbGluZSwgZmluaXNoZWQgfSA9IHJlcXVpcmUoJ25vZGU6c3RyZWFtJylcbmNvbnN0IHsgYWRkQWJvcnRMaXN0ZW5lciwgaXNFcnJvcmVkLCBpc1JlYWRhYmxlLCBidWZmZXJUb0xvd2VyQ2FzZWRIZWFkZXJOYW1lIH0gPSByZXF1aXJlKCcuLi8uLi9jb3JlL3V0aWwnKVxuY29uc3QgeyBkYXRhVVJMUHJvY2Vzc29yLCBzZXJpYWxpemVBTWltZVR5cGUsIG1pbmltaXplU3VwcG9ydGVkTWltZVR5cGUgfSA9IHJlcXVpcmUoJy4vZGF0YS11cmwnKVxuY29uc3QgeyBnZXRHbG9iYWxEaXNwYXRjaGVyIH0gPSByZXF1aXJlKCcuLi8uLi9nbG9iYWwnKVxuY29uc3QgeyB3ZWJpZGwgfSA9IHJlcXVpcmUoJy4vd2ViaWRsJylcbmNvbnN0IHsgU1RBVFVTX0NPREVTIH0gPSByZXF1aXJlKCdub2RlOmh0dHAnKVxuY29uc3QgR0VUX09SX0hFQUQgPSBbJ0dFVCcsICdIRUFEJ11cblxuY29uc3QgZGVmYXVsdFVzZXJBZ2VudCA9IHR5cGVvZiBfX1VORElDSV9JU19OT0RFX18gIT09ICd1bmRlZmluZWQnIHx8IHR5cGVvZiBlc2J1aWxkRGV0ZWN0aW9uICE9PSAndW5kZWZpbmVkJ1xuICA/ICdub2RlJ1xuICA6ICd1bmRpY2knXG5cbi8qKiBAdHlwZSB7aW1wb3J0KCdidWZmZXInKS5yZXNvbHZlT2JqZWN0VVJMfSAqL1xubGV0IHJlc29sdmVPYmplY3RVUkxcblxuY2xhc3MgRmV0Y2ggZXh0ZW5kcyBFRSB7XG4gIGNvbnN0cnVjdG9yIChkaXNwYXRjaGVyKSB7XG4gICAgc3VwZXIoKVxuXG4gICAgdGhpcy5kaXNwYXRjaGVyID0gZGlzcGF0Y2hlclxuICAgIHRoaXMuY29ubmVjdGlvbiA9IG51bGxcbiAgICB0aGlzLmR1bXAgPSBmYWxzZVxuICAgIHRoaXMuc3RhdGUgPSAnb25nb2luZydcbiAgfVxuXG4gIHRlcm1pbmF0ZSAocmVhc29uKSB7XG4gICAgaWYgKHRoaXMuc3RhdGUgIT09ICdvbmdvaW5nJykge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgdGhpcy5zdGF0ZSA9ICd0ZXJtaW5hdGVkJ1xuICAgIHRoaXMuY29ubmVjdGlvbj8uZGVzdHJveShyZWFzb24pXG4gICAgdGhpcy5lbWl0KCd0ZXJtaW5hdGVkJywgcmVhc29uKVxuICB9XG5cbiAgLy8gaHR0cHM6Ly9mZXRjaC5zcGVjLndoYXR3Zy5vcmcvI2ZldGNoLWNvbnRyb2xsZXItYWJvcnRcbiAgYWJvcnQgKGVycm9yKSB7XG4gICAgaWYgKHRoaXMuc3RhdGUgIT09ICdvbmdvaW5nJykge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgLy8gMS4gU2V0IGNvbnRyb2xsZXJcdTIwMTlzIHN0YXRlIHRvIFwiYWJvcnRlZFwiLlxuICAgIHRoaXMuc3RhdGUgPSAnYWJvcnRlZCdcblxuICAgIC8vIDIuIExldCBmYWxsYmFja0Vycm9yIGJlIGFuIFwiQWJvcnRFcnJvclwiIERPTUV4Y2VwdGlvbi5cbiAgICAvLyAzLiBTZXQgZXJyb3IgdG8gZmFsbGJhY2tFcnJvciBpZiBpdCBpcyBub3QgZ2l2ZW4uXG4gICAgaWYgKCFlcnJvcikge1xuICAgICAgZXJyb3IgPSBuZXcgRE9NRXhjZXB0aW9uKCdUaGUgb3BlcmF0aW9uIHdhcyBhYm9ydGVkLicsICdBYm9ydEVycm9yJylcbiAgICB9XG5cbiAgICAvLyA0LiBMZXQgc2VyaWFsaXplZEVycm9yIGJlIFN0cnVjdHVyZWRTZXJpYWxpemUoZXJyb3IpLlxuICAgIC8vICAgIElmIHRoYXQgdGhyZXcgYW4gZXhjZXB0aW9uLCBjYXRjaCBpdCwgYW5kIGxldFxuICAgIC8vICAgIHNlcmlhbGl6ZWRFcnJvciBiZSBTdHJ1Y3R1cmVkU2VyaWFsaXplKGZhbGxiYWNrRXJyb3IpLlxuXG4gICAgLy8gNS4gU2V0IGNvbnRyb2xsZXJcdTIwMTlzIHNlcmlhbGl6ZWQgYWJvcnQgcmVhc29uIHRvIHNlcmlhbGl6ZWRFcnJvci5cbiAgICB0aGlzLnNlcmlhbGl6ZWRBYm9ydFJlYXNvbiA9IGVycm9yXG5cbiAgICB0aGlzLmNvbm5lY3Rpb24/LmRlc3Ryb3koZXJyb3IpXG4gICAgdGhpcy5lbWl0KCd0ZXJtaW5hdGVkJywgZXJyb3IpXG4gIH1cbn1cblxuZnVuY3Rpb24gaGFuZGxlRmV0Y2hEb25lIChyZXNwb25zZSkge1xuICBmaW5hbGl6ZUFuZFJlcG9ydFRpbWluZyhyZXNwb25zZSwgJ2ZldGNoJylcbn1cblxuLy8gaHR0cHM6Ly9mZXRjaC5zcGVjLndoYXR3Zy5vcmcvI2ZldGNoLW1ldGhvZFxuZnVuY3Rpb24gZmV0Y2ggKGlucHV0LCBpbml0ID0gdW5kZWZpbmVkKSB7XG4gIHdlYmlkbC5hcmd1bWVudExlbmd0aENoZWNrKGFyZ3VtZW50cywgMSwgJ2dsb2JhbFRoaXMuZmV0Y2gnKVxuXG4gIC8vIDEuIExldCBwIGJlIGEgbmV3IHByb21pc2UuXG4gIGxldCBwID0gY3JlYXRlRGVmZXJyZWRQcm9taXNlKClcblxuICAvLyAyLiBMZXQgcmVxdWVzdE9iamVjdCBiZSB0aGUgcmVzdWx0IG9mIGludm9raW5nIHRoZSBpbml0aWFsIHZhbHVlIG9mXG4gIC8vIFJlcXVlc3QgYXMgY29uc3RydWN0b3Igd2l0aCBpbnB1dCBhbmQgaW5pdCBhcyBhcmd1bWVudHMuIElmIHRoaXMgdGhyb3dzXG4gIC8vIGFuIGV4Y2VwdGlvbiwgcmVqZWN0IHAgd2l0aCBpdCBhbmQgcmV0dXJuIHAuXG4gIGxldCByZXF1ZXN0T2JqZWN0XG5cbiAgdHJ5IHtcbiAgICByZXF1ZXN0T2JqZWN0ID0gbmV3IFJlcXVlc3QoaW5wdXQsIGluaXQpXG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBwLnJlamVjdChlKVxuICAgIHJldHVybiBwLnByb21pc2VcbiAgfVxuXG4gIC8vIDMuIExldCByZXF1ZXN0IGJlIHJlcXVlc3RPYmplY3RcdTIwMTlzIHJlcXVlc3QuXG4gIGNvbnN0IHJlcXVlc3QgPSByZXF1ZXN0T2JqZWN0W2tTdGF0ZV1cblxuICAvLyA0LiBJZiByZXF1ZXN0T2JqZWN0XHUyMDE5cyBzaWduYWxcdTIwMTlzIGFib3J0ZWQgZmxhZyBpcyBzZXQsIHRoZW46XG4gIGlmIChyZXF1ZXN0T2JqZWN0LnNpZ25hbC5hYm9ydGVkKSB7XG4gICAgLy8gMS4gQWJvcnQgdGhlIGZldGNoKCkgY2FsbCB3aXRoIHAsIHJlcXVlc3QsIG51bGwsIGFuZFxuICAgIC8vICAgIHJlcXVlc3RPYmplY3RcdTIwMTlzIHNpZ25hbFx1MjAxOXMgYWJvcnQgcmVhc29uLlxuICAgIGFib3J0RmV0Y2gocCwgcmVxdWVzdCwgbnVsbCwgcmVxdWVzdE9iamVjdC5zaWduYWwucmVhc29uKVxuXG4gICAgLy8gMi4gUmV0dXJuIHAuXG4gICAgcmV0dXJuIHAucHJvbWlzZVxuICB9XG5cbiAgLy8gNS4gTGV0IGdsb2JhbE9iamVjdCBiZSByZXF1ZXN0XHUyMDE5cyBjbGllbnRcdTIwMTlzIGdsb2JhbCBvYmplY3QuXG4gIGNvbnN0IGdsb2JhbE9iamVjdCA9IHJlcXVlc3QuY2xpZW50Lmdsb2JhbE9iamVjdFxuXG4gIC8vIDYuIElmIGdsb2JhbE9iamVjdCBpcyBhIFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSBvYmplY3QsIHRoZW4gc2V0XG4gIC8vIHJlcXVlc3RcdTIwMTlzIHNlcnZpY2Utd29ya2VycyBtb2RlIHRvIFwibm9uZVwiLlxuICBpZiAoZ2xvYmFsT2JqZWN0Py5jb25zdHJ1Y3Rvcj8ubmFtZSA9PT0gJ1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZScpIHtcbiAgICByZXF1ZXN0LnNlcnZpY2VXb3JrZXJzID0gJ25vbmUnXG4gIH1cblxuICAvLyA3LiBMZXQgcmVzcG9uc2VPYmplY3QgYmUgbnVsbC5cbiAgbGV0IHJlc3BvbnNlT2JqZWN0ID0gbnVsbFxuXG4gIC8vIDguIExldCByZWxldmFudFJlYWxtIGJlIHRoaXNcdTIwMTlzIHJlbGV2YW50IFJlYWxtLlxuXG4gIC8vIDkuIExldCBsb2NhbGx5QWJvcnRlZCBiZSBmYWxzZS5cbiAgbGV0IGxvY2FsbHlBYm9ydGVkID0gZmFsc2VcblxuICAvLyAxMC4gTGV0IGNvbnRyb2xsZXIgYmUgbnVsbC5cbiAgbGV0IGNvbnRyb2xsZXIgPSBudWxsXG5cbiAgLy8gMTEuIEFkZCB0aGUgZm9sbG93aW5nIGFib3J0IHN0ZXBzIHRvIHJlcXVlc3RPYmplY3RcdTIwMTlzIHNpZ25hbDpcbiAgYWRkQWJvcnRMaXN0ZW5lcihcbiAgICByZXF1ZXN0T2JqZWN0LnNpZ25hbCxcbiAgICAoKSA9PiB7XG4gICAgICAvLyAxLiBTZXQgbG9jYWxseUFib3J0ZWQgdG8gdHJ1ZS5cbiAgICAgIGxvY2FsbHlBYm9ydGVkID0gdHJ1ZVxuXG4gICAgICAvLyAyLiBBc3NlcnQ6IGNvbnRyb2xsZXIgaXMgbm9uLW51bGwuXG4gICAgICBhc3NlcnQoY29udHJvbGxlciAhPSBudWxsKVxuXG4gICAgICAvLyAzLiBBYm9ydCBjb250cm9sbGVyIHdpdGggcmVxdWVzdE9iamVjdFx1MjAxOXMgc2lnbmFsXHUyMDE5cyBhYm9ydCByZWFzb24uXG4gICAgICBjb250cm9sbGVyLmFib3J0KHJlcXVlc3RPYmplY3Quc2lnbmFsLnJlYXNvbilcblxuICAgICAgY29uc3QgcmVhbFJlc3BvbnNlID0gcmVzcG9uc2VPYmplY3Q/LmRlcmVmKClcblxuICAgICAgLy8gNC4gQWJvcnQgdGhlIGZldGNoKCkgY2FsbCB3aXRoIHAsIHJlcXVlc3QsIHJlc3BvbnNlT2JqZWN0LFxuICAgICAgLy8gICAgYW5kIHJlcXVlc3RPYmplY3RcdTIwMTlzIHNpZ25hbFx1MjAxOXMgYWJvcnQgcmVhc29uLlxuICAgICAgYWJvcnRGZXRjaChwLCByZXF1ZXN0LCByZWFsUmVzcG9uc2UsIHJlcXVlc3RPYmplY3Quc2lnbmFsLnJlYXNvbilcbiAgICB9XG4gIClcblxuICAvLyAxMi4gTGV0IGhhbmRsZUZldGNoRG9uZSBnaXZlbiByZXNwb25zZSByZXNwb25zZSBiZSB0byBmaW5hbGl6ZSBhbmRcbiAgLy8gcmVwb3J0IHRpbWluZyB3aXRoIHJlc3BvbnNlLCBnbG9iYWxPYmplY3QsIGFuZCBcImZldGNoXCIuXG4gIC8vIHNlZSBmdW5jdGlvbiBoYW5kbGVGZXRjaERvbmVcblxuICAvLyAxMy4gU2V0IGNvbnRyb2xsZXIgdG8gdGhlIHJlc3VsdCBvZiBjYWxsaW5nIGZldGNoIGdpdmVuIHJlcXVlc3QsXG4gIC8vIHdpdGggcHJvY2Vzc1Jlc3BvbnNlRW5kT2ZCb2R5IHNldCB0byBoYW5kbGVGZXRjaERvbmUsIGFuZCBwcm9jZXNzUmVzcG9uc2VcbiAgLy8gZ2l2ZW4gcmVzcG9uc2UgYmVpbmcgdGhlc2Ugc3Vic3RlcHM6XG5cbiAgY29uc3QgcHJvY2Vzc1Jlc3BvbnNlID0gKHJlc3BvbnNlKSA9PiB7XG4gICAgLy8gMS4gSWYgbG9jYWxseUFib3J0ZWQgaXMgdHJ1ZSwgdGVybWluYXRlIHRoZXNlIHN1YnN0ZXBzLlxuICAgIGlmIChsb2NhbGx5QWJvcnRlZCkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgLy8gMi4gSWYgcmVzcG9uc2VcdTIwMTlzIGFib3J0ZWQgZmxhZyBpcyBzZXQsIHRoZW46XG4gICAgaWYgKHJlc3BvbnNlLmFib3J0ZWQpIHtcbiAgICAgIC8vIDEuIExldCBkZXNlcmlhbGl6ZWRFcnJvciBiZSB0aGUgcmVzdWx0IG9mIGRlc2VyaWFsaXplIGEgc2VyaWFsaXplZFxuICAgICAgLy8gICAgYWJvcnQgcmVhc29uIGdpdmVuIGNvbnRyb2xsZXJcdTIwMTlzIHNlcmlhbGl6ZWQgYWJvcnQgcmVhc29uIGFuZFxuICAgICAgLy8gICAgcmVsZXZhbnRSZWFsbS5cblxuICAgICAgLy8gMi4gQWJvcnQgdGhlIGZldGNoKCkgY2FsbCB3aXRoIHAsIHJlcXVlc3QsIHJlc3BvbnNlT2JqZWN0LCBhbmRcbiAgICAgIC8vICAgIGRlc2VyaWFsaXplZEVycm9yLlxuXG4gICAgICBhYm9ydEZldGNoKHAsIHJlcXVlc3QsIHJlc3BvbnNlT2JqZWN0LCBjb250cm9sbGVyLnNlcmlhbGl6ZWRBYm9ydFJlYXNvbilcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIC8vIDMuIElmIHJlc3BvbnNlIGlzIGEgbmV0d29yayBlcnJvciwgdGhlbiByZWplY3QgcCB3aXRoIGEgVHlwZUVycm9yXG4gICAgLy8gYW5kIHRlcm1pbmF0ZSB0aGVzZSBzdWJzdGVwcy5cbiAgICBpZiAocmVzcG9uc2UudHlwZSA9PT0gJ2Vycm9yJykge1xuICAgICAgcC5yZWplY3QobmV3IFR5cGVFcnJvcignZmV0Y2ggZmFpbGVkJywgeyBjYXVzZTogcmVzcG9uc2UuZXJyb3IgfSkpXG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICAvLyA0LiBTZXQgcmVzcG9uc2VPYmplY3QgdG8gdGhlIHJlc3VsdCBvZiBjcmVhdGluZyBhIFJlc3BvbnNlIG9iamVjdCxcbiAgICAvLyBnaXZlbiByZXNwb25zZSwgXCJpbW11dGFibGVcIiwgYW5kIHJlbGV2YW50UmVhbG0uXG4gICAgcmVzcG9uc2VPYmplY3QgPSBuZXcgV2Vha1JlZihmcm9tSW5uZXJSZXNwb25zZShyZXNwb25zZSwgJ2ltbXV0YWJsZScpKVxuXG4gICAgLy8gNS4gUmVzb2x2ZSBwIHdpdGggcmVzcG9uc2VPYmplY3QuXG4gICAgcC5yZXNvbHZlKHJlc3BvbnNlT2JqZWN0LmRlcmVmKCkpXG4gICAgcCA9IG51bGxcbiAgfVxuXG4gIGNvbnRyb2xsZXIgPSBmZXRjaGluZyh7XG4gICAgcmVxdWVzdCxcbiAgICBwcm9jZXNzUmVzcG9uc2VFbmRPZkJvZHk6IGhhbmRsZUZldGNoRG9uZSxcbiAgICBwcm9jZXNzUmVzcG9uc2UsXG4gICAgZGlzcGF0Y2hlcjogcmVxdWVzdE9iamVjdFtrRGlzcGF0Y2hlcl0gLy8gdW5kaWNpXG4gIH0pXG5cbiAgLy8gMTQuIFJldHVybiBwLlxuICByZXR1cm4gcC5wcm9taXNlXG59XG5cbi8vIGh0dHBzOi8vZmV0Y2guc3BlYy53aGF0d2cub3JnLyNmaW5hbGl6ZS1hbmQtcmVwb3J0LXRpbWluZ1xuZnVuY3Rpb24gZmluYWxpemVBbmRSZXBvcnRUaW1pbmcgKHJlc3BvbnNlLCBpbml0aWF0b3JUeXBlID0gJ290aGVyJykge1xuICAvLyAxLiBJZiByZXNwb25zZSBpcyBhbiBhYm9ydGVkIG5ldHdvcmsgZXJyb3IsIHRoZW4gcmV0dXJuLlxuICBpZiAocmVzcG9uc2UudHlwZSA9PT0gJ2Vycm9yJyAmJiByZXNwb25zZS5hYm9ydGVkKSB7XG4gICAgcmV0dXJuXG4gIH1cblxuICAvLyAyLiBJZiByZXNwb25zZVx1MjAxOXMgVVJMIGxpc3QgaXMgbnVsbCBvciBlbXB0eSwgdGhlbiByZXR1cm4uXG4gIGlmICghcmVzcG9uc2UudXJsTGlzdD8ubGVuZ3RoKSB7XG4gICAgcmV0dXJuXG4gIH1cblxuICAvLyAzLiBMZXQgb3JpZ2luYWxVUkwgYmUgcmVzcG9uc2VcdTIwMTlzIFVSTCBsaXN0WzBdLlxuICBjb25zdCBvcmlnaW5hbFVSTCA9IHJlc3BvbnNlLnVybExpc3RbMF1cblxuICAvLyA0LiBMZXQgdGltaW5nSW5mbyBiZSByZXNwb25zZVx1MjAxOXMgdGltaW5nIGluZm8uXG4gIGxldCB0aW1pbmdJbmZvID0gcmVzcG9uc2UudGltaW5nSW5mb1xuXG4gIC8vIDUuIExldCBjYWNoZVN0YXRlIGJlIHJlc3BvbnNlXHUyMDE5cyBjYWNoZSBzdGF0ZS5cbiAgbGV0IGNhY2hlU3RhdGUgPSByZXNwb25zZS5jYWNoZVN0YXRlXG5cbiAgLy8gNi4gSWYgb3JpZ2luYWxVUkxcdTIwMTlzIHNjaGVtZSBpcyBub3QgYW4gSFRUUChTKSBzY2hlbWUsIHRoZW4gcmV0dXJuLlxuICBpZiAoIXVybElzSHR0cEh0dHBzU2NoZW1lKG9yaWdpbmFsVVJMKSkge1xuICAgIHJldHVyblxuICB9XG5cbiAgLy8gNy4gSWYgdGltaW5nSW5mbyBpcyBudWxsLCB0aGVuIHJldHVybi5cbiAgaWYgKHRpbWluZ0luZm8gPT09IG51bGwpIHtcbiAgICByZXR1cm5cbiAgfVxuXG4gIC8vIDguIElmIHJlc3BvbnNlXHUyMDE5cyB0aW1pbmcgYWxsb3cgcGFzc2VkIGZsYWcgaXMgbm90IHNldCwgdGhlbjpcbiAgaWYgKCFyZXNwb25zZS50aW1pbmdBbGxvd1Bhc3NlZCkge1xuICAgIC8vICAxLiBTZXQgdGltaW5nSW5mbyB0byBhIHRoZSByZXN1bHQgb2YgY3JlYXRpbmcgYW4gb3BhcXVlIHRpbWluZyBpbmZvIGZvciB0aW1pbmdJbmZvLlxuICAgIHRpbWluZ0luZm8gPSBjcmVhdGVPcGFxdWVUaW1pbmdJbmZvKHtcbiAgICAgIHN0YXJ0VGltZTogdGltaW5nSW5mby5zdGFydFRpbWVcbiAgICB9KVxuXG4gICAgLy8gIDIuIFNldCBjYWNoZVN0YXRlIHRvIHRoZSBlbXB0eSBzdHJpbmcuXG4gICAgY2FjaGVTdGF0ZSA9ICcnXG4gIH1cblxuICAvLyA5LiBTZXQgdGltaW5nSW5mb1x1MjAxOXMgZW5kIHRpbWUgdG8gdGhlIGNvYXJzZW5lZCBzaGFyZWQgY3VycmVudCB0aW1lXG4gIC8vIGdpdmVuIGdsb2JhbFx1MjAxOXMgcmVsZXZhbnQgc2V0dGluZ3Mgb2JqZWN0XHUyMDE5cyBjcm9zcy1vcmlnaW4gaXNvbGF0ZWRcbiAgLy8gY2FwYWJpbGl0eS5cbiAgLy8gVE9ETzogZ2l2ZW4gZ2xvYmFsXHUyMDE5cyByZWxldmFudCBzZXR0aW5ncyBvYmplY3RcdTIwMTlzIGNyb3NzLW9yaWdpbiBpc29sYXRlZFxuICAvLyBjYXBhYmlsaXR5P1xuICB0aW1pbmdJbmZvLmVuZFRpbWUgPSBjb2Fyc2VuZWRTaGFyZWRDdXJyZW50VGltZSgpXG5cbiAgLy8gMTAuIFNldCByZXNwb25zZVx1MjAxOXMgdGltaW5nIGluZm8gdG8gdGltaW5nSW5mby5cbiAgcmVzcG9uc2UudGltaW5nSW5mbyA9IHRpbWluZ0luZm9cblxuICAvLyAxMS4gTWFyayByZXNvdXJjZSB0aW1pbmcgZm9yIHRpbWluZ0luZm8sIG9yaWdpbmFsVVJMLCBpbml0aWF0b3JUeXBlLFxuICAvLyBnbG9iYWwsIGFuZCBjYWNoZVN0YXRlLlxuICBtYXJrUmVzb3VyY2VUaW1pbmcoXG4gICAgdGltaW5nSW5mbyxcbiAgICBvcmlnaW5hbFVSTC5ocmVmLFxuICAgIGluaXRpYXRvclR5cGUsXG4gICAgZ2xvYmFsVGhpcyxcbiAgICBjYWNoZVN0YXRlXG4gIClcbn1cblxuLy8gaHR0cHM6Ly93M2MuZ2l0aHViLmlvL3Jlc291cmNlLXRpbWluZy8jZGZuLW1hcmstcmVzb3VyY2UtdGltaW5nXG5jb25zdCBtYXJrUmVzb3VyY2VUaW1pbmcgPSBwZXJmb3JtYW5jZS5tYXJrUmVzb3VyY2VUaW1pbmdcblxuLy8gaHR0cHM6Ly9mZXRjaC5zcGVjLndoYXR3Zy5vcmcvI2Fib3J0LWZldGNoXG5mdW5jdGlvbiBhYm9ydEZldGNoIChwLCByZXF1ZXN0LCByZXNwb25zZU9iamVjdCwgZXJyb3IpIHtcbiAgLy8gMS4gUmVqZWN0IHByb21pc2Ugd2l0aCBlcnJvci5cbiAgaWYgKHApIHtcbiAgICAvLyBXZSBtaWdodCBoYXZlIGFscmVhZHkgcmVzb2x2ZWQgdGhlIHByb21pc2UgYXQgdGhpcyBzdGFnZVxuICAgIHAucmVqZWN0KGVycm9yKVxuICB9XG5cbiAgLy8gMi4gSWYgcmVxdWVzdFx1MjAxOXMgYm9keSBpcyBub3QgbnVsbCBhbmQgaXMgcmVhZGFibGUsIHRoZW4gY2FuY2VsIHJlcXVlc3RcdTIwMTlzXG4gIC8vIGJvZHkgd2l0aCBlcnJvci5cbiAgaWYgKHJlcXVlc3QuYm9keSAhPSBudWxsICYmIGlzUmVhZGFibGUocmVxdWVzdC5ib2R5Py5zdHJlYW0pKSB7XG4gICAgcmVxdWVzdC5ib2R5LnN0cmVhbS5jYW5jZWwoZXJyb3IpLmNhdGNoKChlcnIpID0+IHtcbiAgICAgIGlmIChlcnIuY29kZSA9PT0gJ0VSUl9JTlZBTElEX1NUQVRFJykge1xuICAgICAgICAvLyBOb2RlIGJ1Zz9cbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG4gICAgICB0aHJvdyBlcnJcbiAgICB9KVxuICB9XG5cbiAgLy8gMy4gSWYgcmVzcG9uc2VPYmplY3QgaXMgbnVsbCwgdGhlbiByZXR1cm4uXG4gIGlmIChyZXNwb25zZU9iamVjdCA9PSBudWxsKSB7XG4gICAgcmV0dXJuXG4gIH1cblxuICAvLyA0LiBMZXQgcmVzcG9uc2UgYmUgcmVzcG9uc2VPYmplY3RcdTIwMTlzIHJlc3BvbnNlLlxuICBjb25zdCByZXNwb25zZSA9IHJlc3BvbnNlT2JqZWN0W2tTdGF0ZV1cblxuICAvLyA1LiBJZiByZXNwb25zZVx1MjAxOXMgYm9keSBpcyBub3QgbnVsbCBhbmQgaXMgcmVhZGFibGUsIHRoZW4gZXJyb3IgcmVzcG9uc2VcdTIwMTlzXG4gIC8vIGJvZHkgd2l0aCBlcnJvci5cbiAgaWYgKHJlc3BvbnNlLmJvZHkgIT0gbnVsbCAmJiBpc1JlYWRhYmxlKHJlc3BvbnNlLmJvZHk/LnN0cmVhbSkpIHtcbiAgICByZXNwb25zZS5ib2R5LnN0cmVhbS5jYW5jZWwoZXJyb3IpLmNhdGNoKChlcnIpID0+IHtcbiAgICAgIGlmIChlcnIuY29kZSA9PT0gJ0VSUl9JTlZBTElEX1NUQVRFJykge1xuICAgICAgICAvLyBOb2RlIGJ1Zz9cbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG4gICAgICB0aHJvdyBlcnJcbiAgICB9KVxuICB9XG59XG5cbi8vIGh0dHBzOi8vZmV0Y2guc3BlYy53aGF0d2cub3JnLyNmZXRjaGluZ1xuZnVuY3Rpb24gZmV0Y2hpbmcgKHtcbiAgcmVxdWVzdCxcbiAgcHJvY2Vzc1JlcXVlc3RCb2R5Q2h1bmtMZW5ndGgsXG4gIHByb2Nlc3NSZXF1ZXN0RW5kT2ZCb2R5LFxuICBwcm9jZXNzUmVzcG9uc2UsXG4gIHByb2Nlc3NSZXNwb25zZUVuZE9mQm9keSxcbiAgcHJvY2Vzc1Jlc3BvbnNlQ29uc3VtZUJvZHksXG4gIHVzZVBhcmFsbGVsUXVldWUgPSBmYWxzZSxcbiAgZGlzcGF0Y2hlciA9IGdldEdsb2JhbERpc3BhdGNoZXIoKSAvLyB1bmRpY2lcbn0pIHtcbiAgLy8gRW5zdXJlIHRoYXQgdGhlIGRpc3BhdGNoZXIgaXMgc2V0IGFjY29yZGluZ2x5XG4gIGFzc2VydChkaXNwYXRjaGVyKVxuXG4gIC8vIDEuIExldCB0YXNrRGVzdGluYXRpb24gYmUgbnVsbC5cbiAgbGV0IHRhc2tEZXN0aW5hdGlvbiA9IG51bGxcblxuICAvLyAyLiBMZXQgY3Jvc3NPcmlnaW5Jc29sYXRlZENhcGFiaWxpdHkgYmUgZmFsc2UuXG4gIGxldCBjcm9zc09yaWdpbklzb2xhdGVkQ2FwYWJpbGl0eSA9IGZhbHNlXG5cbiAgLy8gMy4gSWYgcmVxdWVzdFx1MjAxOXMgY2xpZW50IGlzIG5vbi1udWxsLCB0aGVuOlxuICBpZiAocmVxdWVzdC5jbGllbnQgIT0gbnVsbCkge1xuICAgIC8vIDEuIFNldCB0YXNrRGVzdGluYXRpb24gdG8gcmVxdWVzdFx1MjAxOXMgY2xpZW50XHUyMDE5cyBnbG9iYWwgb2JqZWN0LlxuICAgIHRhc2tEZXN0aW5hdGlvbiA9IHJlcXVlc3QuY2xpZW50Lmdsb2JhbE9iamVjdFxuXG4gICAgLy8gMi4gU2V0IGNyb3NzT3JpZ2luSXNvbGF0ZWRDYXBhYmlsaXR5IHRvIHJlcXVlc3RcdTIwMTlzIGNsaWVudFx1MjAxOXMgY3Jvc3Mtb3JpZ2luXG4gICAgLy8gaXNvbGF0ZWQgY2FwYWJpbGl0eS5cbiAgICBjcm9zc09yaWdpbklzb2xhdGVkQ2FwYWJpbGl0eSA9XG4gICAgICByZXF1ZXN0LmNsaWVudC5jcm9zc09yaWdpbklzb2xhdGVkQ2FwYWJpbGl0eVxuICB9XG5cbiAgLy8gNC4gSWYgdXNlUGFyYWxsZWxRdWV1ZSBpcyB0cnVlLCB0aGVuIHNldCB0YXNrRGVzdGluYXRpb24gdG8gdGhlIHJlc3VsdCBvZlxuICAvLyBzdGFydGluZyBhIG5ldyBwYXJhbGxlbCBxdWV1ZS5cbiAgLy8gVE9ET1xuXG4gIC8vIDUuIExldCB0aW1pbmdJbmZvIGJlIGEgbmV3IGZldGNoIHRpbWluZyBpbmZvIHdob3NlIHN0YXJ0IHRpbWUgYW5kXG4gIC8vIHBvc3QtcmVkaXJlY3Qgc3RhcnQgdGltZSBhcmUgdGhlIGNvYXJzZW5lZCBzaGFyZWQgY3VycmVudCB0aW1lIGdpdmVuXG4gIC8vIGNyb3NzT3JpZ2luSXNvbGF0ZWRDYXBhYmlsaXR5LlxuICBjb25zdCBjdXJyZW50VGltZSA9IGNvYXJzZW5lZFNoYXJlZEN1cnJlbnRUaW1lKGNyb3NzT3JpZ2luSXNvbGF0ZWRDYXBhYmlsaXR5KVxuICBjb25zdCB0aW1pbmdJbmZvID0gY3JlYXRlT3BhcXVlVGltaW5nSW5mbyh7XG4gICAgc3RhcnRUaW1lOiBjdXJyZW50VGltZVxuICB9KVxuXG4gIC8vIDYuIExldCBmZXRjaFBhcmFtcyBiZSBhIG5ldyBmZXRjaCBwYXJhbXMgd2hvc2VcbiAgLy8gcmVxdWVzdCBpcyByZXF1ZXN0LFxuICAvLyB0aW1pbmcgaW5mbyBpcyB0aW1pbmdJbmZvLFxuICAvLyBwcm9jZXNzIHJlcXVlc3QgYm9keSBjaHVuayBsZW5ndGggaXMgcHJvY2Vzc1JlcXVlc3RCb2R5Q2h1bmtMZW5ndGgsXG4gIC8vIHByb2Nlc3MgcmVxdWVzdCBlbmQtb2YtYm9keSBpcyBwcm9jZXNzUmVxdWVzdEVuZE9mQm9keSxcbiAgLy8gcHJvY2VzcyByZXNwb25zZSBpcyBwcm9jZXNzUmVzcG9uc2UsXG4gIC8vIHByb2Nlc3MgcmVzcG9uc2UgY29uc3VtZSBib2R5IGlzIHByb2Nlc3NSZXNwb25zZUNvbnN1bWVCb2R5LFxuICAvLyBwcm9jZXNzIHJlc3BvbnNlIGVuZC1vZi1ib2R5IGlzIHByb2Nlc3NSZXNwb25zZUVuZE9mQm9keSxcbiAgLy8gdGFzayBkZXN0aW5hdGlvbiBpcyB0YXNrRGVzdGluYXRpb24sXG4gIC8vIGFuZCBjcm9zcy1vcmlnaW4gaXNvbGF0ZWQgY2FwYWJpbGl0eSBpcyBjcm9zc09yaWdpbklzb2xhdGVkQ2FwYWJpbGl0eS5cbiAgY29uc3QgZmV0Y2hQYXJhbXMgPSB7XG4gICAgY29udHJvbGxlcjogbmV3IEZldGNoKGRpc3BhdGNoZXIpLFxuICAgIHJlcXVlc3QsXG4gICAgdGltaW5nSW5mbyxcbiAgICBwcm9jZXNzUmVxdWVzdEJvZHlDaHVua0xlbmd0aCxcbiAgICBwcm9jZXNzUmVxdWVzdEVuZE9mQm9keSxcbiAgICBwcm9jZXNzUmVzcG9uc2UsXG4gICAgcHJvY2Vzc1Jlc3BvbnNlQ29uc3VtZUJvZHksXG4gICAgcHJvY2Vzc1Jlc3BvbnNlRW5kT2ZCb2R5LFxuICAgIHRhc2tEZXN0aW5hdGlvbixcbiAgICBjcm9zc09yaWdpbklzb2xhdGVkQ2FwYWJpbGl0eVxuICB9XG5cbiAgLy8gNy4gSWYgcmVxdWVzdFx1MjAxOXMgYm9keSBpcyBhIGJ5dGUgc2VxdWVuY2UsIHRoZW4gc2V0IHJlcXVlc3RcdTIwMTlzIGJvZHkgdG9cbiAgLy8gICAgcmVxdWVzdFx1MjAxOXMgYm9keSBhcyBhIGJvZHkuXG4gIC8vIE5PVEU6IFNpbmNlIGZldGNoaW5nIGlzIG9ubHkgY2FsbGVkIGZyb20gZmV0Y2gsIGJvZHkgc2hvdWxkIGFscmVhZHkgYmVcbiAgLy8gZXh0cmFjdGVkLlxuICBhc3NlcnQoIXJlcXVlc3QuYm9keSB8fCByZXF1ZXN0LmJvZHkuc3RyZWFtKVxuXG4gIC8vIDguIElmIHJlcXVlc3RcdTIwMTlzIHdpbmRvdyBpcyBcImNsaWVudFwiLCB0aGVuIHNldCByZXF1ZXN0XHUyMDE5cyB3aW5kb3cgdG8gcmVxdWVzdFx1MjAxOXNcbiAgLy8gY2xpZW50LCBpZiByZXF1ZXN0XHUyMDE5cyBjbGllbnRcdTIwMTlzIGdsb2JhbCBvYmplY3QgaXMgYSBXaW5kb3cgb2JqZWN0OyBvdGhlcndpc2VcbiAgLy8gXCJuby13aW5kb3dcIi5cbiAgaWYgKHJlcXVlc3Qud2luZG93ID09PSAnY2xpZW50Jykge1xuICAgIC8vIFRPRE86IFdoYXQgaWYgcmVxdWVzdC5jbGllbnQgaXMgbnVsbD9cbiAgICByZXF1ZXN0LndpbmRvdyA9XG4gICAgICByZXF1ZXN0LmNsaWVudD8uZ2xvYmFsT2JqZWN0Py5jb25zdHJ1Y3Rvcj8ubmFtZSA9PT0gJ1dpbmRvdydcbiAgICAgICAgPyByZXF1ZXN0LmNsaWVudFxuICAgICAgICA6ICduby13aW5kb3cnXG4gIH1cblxuICAvLyA5LiBJZiByZXF1ZXN0XHUyMDE5cyBvcmlnaW4gaXMgXCJjbGllbnRcIiwgdGhlbiBzZXQgcmVxdWVzdFx1MjAxOXMgb3JpZ2luIHRvIHJlcXVlc3RcdTIwMTlzXG4gIC8vIGNsaWVudFx1MjAxOXMgb3JpZ2luLlxuICBpZiAocmVxdWVzdC5vcmlnaW4gPT09ICdjbGllbnQnKSB7XG4gICAgcmVxdWVzdC5vcmlnaW4gPSByZXF1ZXN0LmNsaWVudC5vcmlnaW5cbiAgfVxuXG4gIC8vIDEwLiBJZiBhbGwgb2YgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSB0cnVlOlxuICAvLyBUT0RPXG5cbiAgLy8gMTEuIElmIHJlcXVlc3RcdTIwMTlzIHBvbGljeSBjb250YWluZXIgaXMgXCJjbGllbnRcIiwgdGhlbjpcbiAgaWYgKHJlcXVlc3QucG9saWN5Q29udGFpbmVyID09PSAnY2xpZW50Jykge1xuICAgIC8vIDEuIElmIHJlcXVlc3RcdTIwMTlzIGNsaWVudCBpcyBub24tbnVsbCwgdGhlbiBzZXQgcmVxdWVzdFx1MjAxOXMgcG9saWN5XG4gICAgLy8gY29udGFpbmVyIHRvIGEgY2xvbmUgb2YgcmVxdWVzdFx1MjAxOXMgY2xpZW50XHUyMDE5cyBwb2xpY3kgY29udGFpbmVyLiBbSFRNTF1cbiAgICBpZiAocmVxdWVzdC5jbGllbnQgIT0gbnVsbCkge1xuICAgICAgcmVxdWVzdC5wb2xpY3lDb250YWluZXIgPSBjbG9uZVBvbGljeUNvbnRhaW5lcihcbiAgICAgICAgcmVxdWVzdC5jbGllbnQucG9saWN5Q29udGFpbmVyXG4gICAgICApXG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIDIuIE90aGVyd2lzZSwgc2V0IHJlcXVlc3RcdTIwMTlzIHBvbGljeSBjb250YWluZXIgdG8gYSBuZXcgcG9saWN5XG4gICAgICAvLyBjb250YWluZXIuXG4gICAgICByZXF1ZXN0LnBvbGljeUNvbnRhaW5lciA9IG1ha2VQb2xpY3lDb250YWluZXIoKVxuICAgIH1cbiAgfVxuXG4gIC8vIDEyLiBJZiByZXF1ZXN0XHUyMDE5cyBoZWFkZXIgbGlzdCBkb2VzIG5vdCBjb250YWluIGBBY2NlcHRgLCB0aGVuOlxuICBpZiAoIXJlcXVlc3QuaGVhZGVyc0xpc3QuY29udGFpbnMoJ2FjY2VwdCcsIHRydWUpKSB7XG4gICAgLy8gMS4gTGV0IHZhbHVlIGJlIGAqLypgLlxuICAgIGNvbnN0IHZhbHVlID0gJyovKidcblxuICAgIC8vIDIuIEEgdXNlciBhZ2VudCBzaG91bGQgc2V0IHZhbHVlIHRvIHRoZSBmaXJzdCBtYXRjaGluZyBzdGF0ZW1lbnQsIGlmXG4gICAgLy8gYW55LCBzd2l0Y2hpbmcgb24gcmVxdWVzdFx1MjAxOXMgZGVzdGluYXRpb246XG4gICAgLy8gXCJkb2N1bWVudFwiXG4gICAgLy8gXCJmcmFtZVwiXG4gICAgLy8gXCJpZnJhbWVcIlxuICAgIC8vIGB0ZXh0L2h0bWwsYXBwbGljYXRpb24veGh0bWwreG1sLGFwcGxpY2F0aW9uL3htbDtxPTAuOSwqLyo7cT0wLjhgXG4gICAgLy8gXCJpbWFnZVwiXG4gICAgLy8gYGltYWdlL3BuZyxpbWFnZS9zdmcreG1sLGltYWdlLyo7cT0wLjgsKi8qO3E9MC41YFxuICAgIC8vIFwic3R5bGVcIlxuICAgIC8vIGB0ZXh0L2NzcywqLyo7cT0wLjFgXG4gICAgLy8gVE9ET1xuXG4gICAgLy8gMy4gQXBwZW5kIGBBY2NlcHRgL3ZhbHVlIHRvIHJlcXVlc3RcdTIwMTlzIGhlYWRlciBsaXN0LlxuICAgIHJlcXVlc3QuaGVhZGVyc0xpc3QuYXBwZW5kKCdhY2NlcHQnLCB2YWx1ZSwgdHJ1ZSlcbiAgfVxuXG4gIC8vIDEzLiBJZiByZXF1ZXN0XHUyMDE5cyBoZWFkZXIgbGlzdCBkb2VzIG5vdCBjb250YWluIGBBY2NlcHQtTGFuZ3VhZ2VgLCB0aGVuXG4gIC8vIHVzZXIgYWdlbnRzIHNob3VsZCBhcHBlbmQgYEFjY2VwdC1MYW5ndWFnZWAvYW4gYXBwcm9wcmlhdGUgdmFsdWUgdG9cbiAgLy8gcmVxdWVzdFx1MjAxOXMgaGVhZGVyIGxpc3QuXG4gIGlmICghcmVxdWVzdC5oZWFkZXJzTGlzdC5jb250YWlucygnYWNjZXB0LWxhbmd1YWdlJywgdHJ1ZSkpIHtcbiAgICByZXF1ZXN0LmhlYWRlcnNMaXN0LmFwcGVuZCgnYWNjZXB0LWxhbmd1YWdlJywgJyonLCB0cnVlKVxuICB9XG5cbiAgLy8gMTQuIElmIHJlcXVlc3RcdTIwMTlzIHByaW9yaXR5IGlzIG51bGwsIHRoZW4gdXNlIHJlcXVlc3RcdTIwMTlzIGluaXRpYXRvciBhbmRcbiAgLy8gZGVzdGluYXRpb24gYXBwcm9wcmlhdGVseSBpbiBzZXR0aW5nIHJlcXVlc3RcdTIwMTlzIHByaW9yaXR5IHRvIGFcbiAgLy8gdXNlci1hZ2VudC1kZWZpbmVkIG9iamVjdC5cbiAgaWYgKHJlcXVlc3QucHJpb3JpdHkgPT09IG51bGwpIHtcbiAgICAvLyBUT0RPXG4gIH1cblxuICAvLyAxNS4gSWYgcmVxdWVzdCBpcyBhIHN1YnJlc291cmNlIHJlcXVlc3QsIHRoZW46XG4gIGlmIChzdWJyZXNvdXJjZVNldC5oYXMocmVxdWVzdC5kZXN0aW5hdGlvbikpIHtcbiAgICAvLyBUT0RPXG4gIH1cblxuICAvLyAxNi4gUnVuIG1haW4gZmV0Y2ggZ2l2ZW4gZmV0Y2hQYXJhbXMuXG4gIG1haW5GZXRjaChmZXRjaFBhcmFtcylcbiAgICAuY2F0Y2goZXJyID0+IHtcbiAgICAgIGZldGNoUGFyYW1zLmNvbnRyb2xsZXIudGVybWluYXRlKGVycilcbiAgICB9KVxuXG4gIC8vIDE3LiBSZXR1cm4gZmV0Y2hQYXJhbSdzIGNvbnRyb2xsZXJcbiAgcmV0dXJuIGZldGNoUGFyYW1zLmNvbnRyb2xsZXJcbn1cblxuLy8gaHR0cHM6Ly9mZXRjaC5zcGVjLndoYXR3Zy5vcmcvI2NvbmNlcHQtbWFpbi1mZXRjaFxuYXN5bmMgZnVuY3Rpb24gbWFpbkZldGNoIChmZXRjaFBhcmFtcywgcmVjdXJzaXZlID0gZmFsc2UpIHtcbiAgLy8gMS4gTGV0IHJlcXVlc3QgYmUgZmV0Y2hQYXJhbXNcdTIwMTlzIHJlcXVlc3QuXG4gIGNvbnN0IHJlcXVlc3QgPSBmZXRjaFBhcmFtcy5yZXF1ZXN0XG5cbiAgLy8gMi4gTGV0IHJlc3BvbnNlIGJlIG51bGwuXG4gIGxldCByZXNwb25zZSA9IG51bGxcblxuICAvLyAzLiBJZiByZXF1ZXN0XHUyMDE5cyBsb2NhbC1VUkxzLW9ubHkgZmxhZyBpcyBzZXQgYW5kIHJlcXVlc3RcdTIwMTlzIGN1cnJlbnQgVVJMIGlzXG4gIC8vIG5vdCBsb2NhbCwgdGhlbiBzZXQgcmVzcG9uc2UgdG8gYSBuZXR3b3JrIGVycm9yLlxuICBpZiAocmVxdWVzdC5sb2NhbFVSTHNPbmx5ICYmICF1cmxJc0xvY2FsKHJlcXVlc3RDdXJyZW50VVJMKHJlcXVlc3QpKSkge1xuICAgIHJlc3BvbnNlID0gbWFrZU5ldHdvcmtFcnJvcignbG9jYWwgVVJMcyBvbmx5JylcbiAgfVxuXG4gIC8vIDQuIFJ1biByZXBvcnQgQ29udGVudCBTZWN1cml0eSBQb2xpY3kgdmlvbGF0aW9ucyBmb3IgcmVxdWVzdC5cbiAgLy8gVE9ET1xuXG4gIC8vIDUuIFVwZ3JhZGUgcmVxdWVzdCB0byBhIHBvdGVudGlhbGx5IHRydXN0d29ydGh5IFVSTCwgaWYgYXBwcm9wcmlhdGUuXG4gIHRyeVVwZ3JhZGVSZXF1ZXN0VG9BUG90ZW50aWFsbHlUcnVzdHdvcnRoeVVSTChyZXF1ZXN0KVxuXG4gIC8vIDYuIElmIHNob3VsZCByZXF1ZXN0IGJlIGJsb2NrZWQgZHVlIHRvIGEgYmFkIHBvcnQsIHNob3VsZCBmZXRjaGluZyByZXF1ZXN0XG4gIC8vIGJlIGJsb2NrZWQgYXMgbWl4ZWQgY29udGVudCwgb3Igc2hvdWxkIHJlcXVlc3QgYmUgYmxvY2tlZCBieSBDb250ZW50XG4gIC8vIFNlY3VyaXR5IFBvbGljeSByZXR1cm5zIGJsb2NrZWQsIHRoZW4gc2V0IHJlc3BvbnNlIHRvIGEgbmV0d29yayBlcnJvci5cbiAgaWYgKHJlcXVlc3RCYWRQb3J0KHJlcXVlc3QpID09PSAnYmxvY2tlZCcpIHtcbiAgICByZXNwb25zZSA9IG1ha2VOZXR3b3JrRXJyb3IoJ2JhZCBwb3J0JylcbiAgfVxuICAvLyBUT0RPOiBzaG91bGQgZmV0Y2hpbmcgcmVxdWVzdCBiZSBibG9ja2VkIGFzIG1peGVkIGNvbnRlbnQ/XG4gIC8vIFRPRE86IHNob3VsZCByZXF1ZXN0IGJlIGJsb2NrZWQgYnkgQ29udGVudCBTZWN1cml0eSBQb2xpY3k/XG5cbiAgLy8gNy4gSWYgcmVxdWVzdFx1MjAxOXMgcmVmZXJyZXIgcG9saWN5IGlzIHRoZSBlbXB0eSBzdHJpbmcsIHRoZW4gc2V0IHJlcXVlc3RcdTIwMTlzXG4gIC8vIHJlZmVycmVyIHBvbGljeSB0byByZXF1ZXN0XHUyMDE5cyBwb2xpY3kgY29udGFpbmVyXHUyMDE5cyByZWZlcnJlciBwb2xpY3kuXG4gIGlmIChyZXF1ZXN0LnJlZmVycmVyUG9saWN5ID09PSAnJykge1xuICAgIHJlcXVlc3QucmVmZXJyZXJQb2xpY3kgPSByZXF1ZXN0LnBvbGljeUNvbnRhaW5lci5yZWZlcnJlclBvbGljeVxuICB9XG5cbiAgLy8gOC4gSWYgcmVxdWVzdFx1MjAxOXMgcmVmZXJyZXIgaXMgbm90IFwibm8tcmVmZXJyZXJcIiwgdGhlbiBzZXQgcmVxdWVzdFx1MjAxOXNcbiAgLy8gcmVmZXJyZXIgdG8gdGhlIHJlc3VsdCBvZiBpbnZva2luZyBkZXRlcm1pbmUgcmVxdWVzdFx1MjAxOXMgcmVmZXJyZXIuXG4gIGlmIChyZXF1ZXN0LnJlZmVycmVyICE9PSAnbm8tcmVmZXJyZXInKSB7XG4gICAgcmVxdWVzdC5yZWZlcnJlciA9IGRldGVybWluZVJlcXVlc3RzUmVmZXJyZXIocmVxdWVzdClcbiAgfVxuXG4gIC8vIDkuIFNldCByZXF1ZXN0XHUyMDE5cyBjdXJyZW50IFVSTFx1MjAxOXMgc2NoZW1lIHRvIFwiaHR0cHNcIiBpZiBhbGwgb2YgdGhlIGZvbGxvd2luZ1xuICAvLyBjb25kaXRpb25zIGFyZSB0cnVlOlxuICAvLyAtIHJlcXVlc3RcdTIwMTlzIGN1cnJlbnQgVVJMXHUyMDE5cyBzY2hlbWUgaXMgXCJodHRwXCJcbiAgLy8gLSByZXF1ZXN0XHUyMDE5cyBjdXJyZW50IFVSTFx1MjAxOXMgaG9zdCBpcyBhIGRvbWFpblxuICAvLyAtIE1hdGNoaW5nIHJlcXVlc3RcdTIwMTlzIGN1cnJlbnQgVVJMXHUyMDE5cyBob3N0IHBlciBLbm93biBIU1RTIEhvc3QgRG9tYWluIE5hbWVcbiAgLy8gICBNYXRjaGluZyByZXN1bHRzIGluIGVpdGhlciBhIHN1cGVyZG9tYWluIG1hdGNoIHdpdGggYW4gYXNzZXJ0ZWRcbiAgLy8gICBpbmNsdWRlU3ViRG9tYWlucyBkaXJlY3RpdmUgb3IgYSBjb25ncnVlbnQgbWF0Y2ggKHdpdGggb3Igd2l0aG91dCBhblxuICAvLyAgIGFzc2VydGVkIGluY2x1ZGVTdWJEb21haW5zIGRpcmVjdGl2ZSkuIFtIU1RTXVxuICAvLyBUT0RPXG5cbiAgLy8gMTAuIElmIHJlY3Vyc2l2ZSBpcyBmYWxzZSwgdGhlbiBydW4gdGhlIHJlbWFpbmluZyBzdGVwcyBpbiBwYXJhbGxlbC5cbiAgLy8gVE9ET1xuXG4gIC8vIDExLiBJZiByZXNwb25zZSBpcyBudWxsLCB0aGVuIHNldCByZXNwb25zZSB0byB0aGUgcmVzdWx0IG9mIHJ1bm5pbmdcbiAgLy8gdGhlIHN0ZXBzIGNvcnJlc3BvbmRpbmcgdG8gdGhlIGZpcnN0IG1hdGNoaW5nIHN0YXRlbWVudDpcbiAgaWYgKHJlc3BvbnNlID09PSBudWxsKSB7XG4gICAgcmVzcG9uc2UgPSBhd2FpdCAoYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgY3VycmVudFVSTCA9IHJlcXVlc3RDdXJyZW50VVJMKHJlcXVlc3QpXG5cbiAgICAgIGlmIChcbiAgICAgICAgLy8gLSByZXF1ZXN0XHUyMDE5cyBjdXJyZW50IFVSTFx1MjAxOXMgb3JpZ2luIGlzIHNhbWUgb3JpZ2luIHdpdGggcmVxdWVzdFx1MjAxOXMgb3JpZ2luLFxuICAgICAgICAvLyAgIGFuZCByZXF1ZXN0XHUyMDE5cyByZXNwb25zZSB0YWludGluZyBpcyBcImJhc2ljXCJcbiAgICAgICAgKHNhbWVPcmlnaW4oY3VycmVudFVSTCwgcmVxdWVzdC51cmwpICYmIHJlcXVlc3QucmVzcG9uc2VUYWludGluZyA9PT0gJ2Jhc2ljJykgfHxcbiAgICAgICAgLy8gcmVxdWVzdFx1MjAxOXMgY3VycmVudCBVUkxcdTIwMTlzIHNjaGVtZSBpcyBcImRhdGFcIlxuICAgICAgICAoY3VycmVudFVSTC5wcm90b2NvbCA9PT0gJ2RhdGE6JykgfHxcbiAgICAgICAgLy8gLSByZXF1ZXN0XHUyMDE5cyBtb2RlIGlzIFwibmF2aWdhdGVcIiBvciBcIndlYnNvY2tldFwiXG4gICAgICAgIChyZXF1ZXN0Lm1vZGUgPT09ICduYXZpZ2F0ZScgfHwgcmVxdWVzdC5tb2RlID09PSAnd2Vic29ja2V0JylcbiAgICAgICkge1xuICAgICAgICAvLyAxLiBTZXQgcmVxdWVzdFx1MjAxOXMgcmVzcG9uc2UgdGFpbnRpbmcgdG8gXCJiYXNpY1wiLlxuICAgICAgICByZXF1ZXN0LnJlc3BvbnNlVGFpbnRpbmcgPSAnYmFzaWMnXG5cbiAgICAgICAgLy8gMi4gUmV0dXJuIHRoZSByZXN1bHQgb2YgcnVubmluZyBzY2hlbWUgZmV0Y2ggZ2l2ZW4gZmV0Y2hQYXJhbXMuXG4gICAgICAgIHJldHVybiBhd2FpdCBzY2hlbWVGZXRjaChmZXRjaFBhcmFtcylcbiAgICAgIH1cblxuICAgICAgLy8gcmVxdWVzdFx1MjAxOXMgbW9kZSBpcyBcInNhbWUtb3JpZ2luXCJcbiAgICAgIGlmIChyZXF1ZXN0Lm1vZGUgPT09ICdzYW1lLW9yaWdpbicpIHtcbiAgICAgICAgLy8gMS4gUmV0dXJuIGEgbmV0d29yayBlcnJvci5cbiAgICAgICAgcmV0dXJuIG1ha2VOZXR3b3JrRXJyb3IoJ3JlcXVlc3QgbW9kZSBjYW5ub3QgYmUgXCJzYW1lLW9yaWdpblwiJylcbiAgICAgIH1cblxuICAgICAgLy8gcmVxdWVzdFx1MjAxOXMgbW9kZSBpcyBcIm5vLWNvcnNcIlxuICAgICAgaWYgKHJlcXVlc3QubW9kZSA9PT0gJ25vLWNvcnMnKSB7XG4gICAgICAgIC8vIDEuIElmIHJlcXVlc3RcdTIwMTlzIHJlZGlyZWN0IG1vZGUgaXMgbm90IFwiZm9sbG93XCIsIHRoZW4gcmV0dXJuIGEgbmV0d29ya1xuICAgICAgICAvLyBlcnJvci5cbiAgICAgICAgaWYgKHJlcXVlc3QucmVkaXJlY3QgIT09ICdmb2xsb3cnKSB7XG4gICAgICAgICAgcmV0dXJuIG1ha2VOZXR3b3JrRXJyb3IoXG4gICAgICAgICAgICAncmVkaXJlY3QgbW9kZSBjYW5ub3QgYmUgXCJmb2xsb3dcIiBmb3IgXCJuby1jb3JzXCIgcmVxdWVzdCdcbiAgICAgICAgICApXG4gICAgICAgIH1cblxuICAgICAgICAvLyAyLiBTZXQgcmVxdWVzdFx1MjAxOXMgcmVzcG9uc2UgdGFpbnRpbmcgdG8gXCJvcGFxdWVcIi5cbiAgICAgICAgcmVxdWVzdC5yZXNwb25zZVRhaW50aW5nID0gJ29wYXF1ZSdcblxuICAgICAgICAvLyAzLiBSZXR1cm4gdGhlIHJlc3VsdCBvZiBydW5uaW5nIHNjaGVtZSBmZXRjaCBnaXZlbiBmZXRjaFBhcmFtcy5cbiAgICAgICAgcmV0dXJuIGF3YWl0IHNjaGVtZUZldGNoKGZldGNoUGFyYW1zKVxuICAgICAgfVxuXG4gICAgICAvLyByZXF1ZXN0XHUyMDE5cyBjdXJyZW50IFVSTFx1MjAxOXMgc2NoZW1lIGlzIG5vdCBhbiBIVFRQKFMpIHNjaGVtZVxuICAgICAgaWYgKCF1cmxJc0h0dHBIdHRwc1NjaGVtZShyZXF1ZXN0Q3VycmVudFVSTChyZXF1ZXN0KSkpIHtcbiAgICAgICAgLy8gUmV0dXJuIGEgbmV0d29yayBlcnJvci5cbiAgICAgICAgcmV0dXJuIG1ha2VOZXR3b3JrRXJyb3IoJ1VSTCBzY2hlbWUgbXVzdCBiZSBhIEhUVFAoUykgc2NoZW1lJylcbiAgICAgIH1cblxuICAgICAgLy8gLSByZXF1ZXN0XHUyMDE5cyB1c2UtQ09SUy1wcmVmbGlnaHQgZmxhZyBpcyBzZXRcbiAgICAgIC8vIC0gcmVxdWVzdFx1MjAxOXMgdW5zYWZlLXJlcXVlc3QgZmxhZyBpcyBzZXQgYW5kIGVpdGhlciByZXF1ZXN0XHUyMDE5cyBtZXRob2QgaXNcbiAgICAgIC8vICAgbm90IGEgQ09SUy1zYWZlbGlzdGVkIG1ldGhvZCBvciBDT1JTLXVuc2FmZSByZXF1ZXN0LWhlYWRlciBuYW1lcyB3aXRoXG4gICAgICAvLyAgIHJlcXVlc3RcdTIwMTlzIGhlYWRlciBsaXN0IGlzIG5vdCBlbXB0eVxuICAgICAgLy8gICAgMS4gU2V0IHJlcXVlc3RcdTIwMTlzIHJlc3BvbnNlIHRhaW50aW5nIHRvIFwiY29yc1wiLlxuICAgICAgLy8gICAgMi4gTGV0IGNvcnNXaXRoUHJlZmxpZ2h0UmVzcG9uc2UgYmUgdGhlIHJlc3VsdCBvZiBydW5uaW5nIEhUVFAgZmV0Y2hcbiAgICAgIC8vICAgIGdpdmVuIGZldGNoUGFyYW1zIGFuZCB0cnVlLlxuICAgICAgLy8gICAgMy4gSWYgY29yc1dpdGhQcmVmbGlnaHRSZXNwb25zZSBpcyBhIG5ldHdvcmsgZXJyb3IsIHRoZW4gY2xlYXIgY2FjaGVcbiAgICAgIC8vICAgIGVudHJpZXMgdXNpbmcgcmVxdWVzdC5cbiAgICAgIC8vICAgIDQuIFJldHVybiBjb3JzV2l0aFByZWZsaWdodFJlc3BvbnNlLlxuICAgICAgLy8gVE9ET1xuXG4gICAgICAvLyBPdGhlcndpc2VcbiAgICAgIC8vICAgIDEuIFNldCByZXF1ZXN0XHUyMDE5cyByZXNwb25zZSB0YWludGluZyB0byBcImNvcnNcIi5cbiAgICAgIHJlcXVlc3QucmVzcG9uc2VUYWludGluZyA9ICdjb3JzJ1xuXG4gICAgICAvLyAgICAyLiBSZXR1cm4gdGhlIHJlc3VsdCBvZiBydW5uaW5nIEhUVFAgZmV0Y2ggZ2l2ZW4gZmV0Y2hQYXJhbXMuXG4gICAgICByZXR1cm4gYXdhaXQgaHR0cEZldGNoKGZldGNoUGFyYW1zKVxuICAgIH0pKClcbiAgfVxuXG4gIC8vIDEyLiBJZiByZWN1cnNpdmUgaXMgdHJ1ZSwgdGhlbiByZXR1cm4gcmVzcG9uc2UuXG4gIGlmIChyZWN1cnNpdmUpIHtcbiAgICByZXR1cm4gcmVzcG9uc2VcbiAgfVxuXG4gIC8vIDEzLiBJZiByZXNwb25zZSBpcyBub3QgYSBuZXR3b3JrIGVycm9yIGFuZCByZXNwb25zZSBpcyBub3QgYSBmaWx0ZXJlZFxuICAvLyByZXNwb25zZSwgdGhlbjpcbiAgaWYgKHJlc3BvbnNlLnN0YXR1cyAhPT0gMCAmJiAhcmVzcG9uc2UuaW50ZXJuYWxSZXNwb25zZSkge1xuICAgIC8vIElmIHJlcXVlc3RcdTIwMTlzIHJlc3BvbnNlIHRhaW50aW5nIGlzIFwiY29yc1wiLCB0aGVuOlxuICAgIGlmIChyZXF1ZXN0LnJlc3BvbnNlVGFpbnRpbmcgPT09ICdjb3JzJykge1xuICAgICAgLy8gMS4gTGV0IGhlYWRlck5hbWVzIGJlIHRoZSByZXN1bHQgb2YgZXh0cmFjdGluZyBoZWFkZXIgbGlzdCB2YWx1ZXNcbiAgICAgIC8vIGdpdmVuIGBBY2Nlc3MtQ29udHJvbC1FeHBvc2UtSGVhZGVyc2AgYW5kIHJlc3BvbnNlXHUyMDE5cyBoZWFkZXIgbGlzdC5cbiAgICAgIC8vIFRPRE9cbiAgICAgIC8vIDIuIElmIHJlcXVlc3RcdTIwMTlzIGNyZWRlbnRpYWxzIG1vZGUgaXMgbm90IFwiaW5jbHVkZVwiIGFuZCBoZWFkZXJOYW1lc1xuICAgICAgLy8gY29udGFpbnMgYCpgLCB0aGVuIHNldCByZXNwb25zZVx1MjAxOXMgQ09SUy1leHBvc2VkIGhlYWRlci1uYW1lIGxpc3QgdG9cbiAgICAgIC8vIGFsbCB1bmlxdWUgaGVhZGVyIG5hbWVzIGluIHJlc3BvbnNlXHUyMDE5cyBoZWFkZXIgbGlzdC5cbiAgICAgIC8vIFRPRE9cbiAgICAgIC8vIDMuIE90aGVyd2lzZSwgaWYgaGVhZGVyTmFtZXMgaXMgbm90IG51bGwgb3IgZmFpbHVyZSwgdGhlbiBzZXRcbiAgICAgIC8vIHJlc3BvbnNlXHUyMDE5cyBDT1JTLWV4cG9zZWQgaGVhZGVyLW5hbWUgbGlzdCB0byBoZWFkZXJOYW1lcy5cbiAgICAgIC8vIFRPRE9cbiAgICB9XG5cbiAgICAvLyBTZXQgcmVzcG9uc2UgdG8gdGhlIGZvbGxvd2luZyBmaWx0ZXJlZCByZXNwb25zZSB3aXRoIHJlc3BvbnNlIGFzIGl0c1xuICAgIC8vIGludGVybmFsIHJlc3BvbnNlLCBkZXBlbmRpbmcgb24gcmVxdWVzdFx1MjAxOXMgcmVzcG9uc2UgdGFpbnRpbmc6XG4gICAgaWYgKHJlcXVlc3QucmVzcG9uc2VUYWludGluZyA9PT0gJ2Jhc2ljJykge1xuICAgICAgcmVzcG9uc2UgPSBmaWx0ZXJSZXNwb25zZShyZXNwb25zZSwgJ2Jhc2ljJylcbiAgICB9IGVsc2UgaWYgKHJlcXVlc3QucmVzcG9uc2VUYWludGluZyA9PT0gJ2NvcnMnKSB7XG4gICAgICByZXNwb25zZSA9IGZpbHRlclJlc3BvbnNlKHJlc3BvbnNlLCAnY29ycycpXG4gICAgfSBlbHNlIGlmIChyZXF1ZXN0LnJlc3BvbnNlVGFpbnRpbmcgPT09ICdvcGFxdWUnKSB7XG4gICAgICByZXNwb25zZSA9IGZpbHRlclJlc3BvbnNlKHJlc3BvbnNlLCAnb3BhcXVlJylcbiAgICB9IGVsc2Uge1xuICAgICAgYXNzZXJ0KGZhbHNlKVxuICAgIH1cbiAgfVxuXG4gIC8vIDE0LiBMZXQgaW50ZXJuYWxSZXNwb25zZSBiZSByZXNwb25zZSwgaWYgcmVzcG9uc2UgaXMgYSBuZXR3b3JrIGVycm9yLFxuICAvLyBhbmQgcmVzcG9uc2VcdTIwMTlzIGludGVybmFsIHJlc3BvbnNlIG90aGVyd2lzZS5cbiAgbGV0IGludGVybmFsUmVzcG9uc2UgPVxuICAgIHJlc3BvbnNlLnN0YXR1cyA9PT0gMCA/IHJlc3BvbnNlIDogcmVzcG9uc2UuaW50ZXJuYWxSZXNwb25zZVxuXG4gIC8vIDE1LiBJZiBpbnRlcm5hbFJlc3BvbnNlXHUyMDE5cyBVUkwgbGlzdCBpcyBlbXB0eSwgdGhlbiBzZXQgaXQgdG8gYSBjbG9uZSBvZlxuICAvLyByZXF1ZXN0XHUyMDE5cyBVUkwgbGlzdC5cbiAgaWYgKGludGVybmFsUmVzcG9uc2UudXJsTGlzdC5sZW5ndGggPT09IDApIHtcbiAgICBpbnRlcm5hbFJlc3BvbnNlLnVybExpc3QucHVzaCguLi5yZXF1ZXN0LnVybExpc3QpXG4gIH1cblxuICAvLyAxNi4gSWYgcmVxdWVzdFx1MjAxOXMgdGltaW5nIGFsbG93IGZhaWxlZCBmbGFnIGlzIHVuc2V0LCB0aGVuIHNldFxuICAvLyBpbnRlcm5hbFJlc3BvbnNlXHUyMDE5cyB0aW1pbmcgYWxsb3cgcGFzc2VkIGZsYWcuXG4gIGlmICghcmVxdWVzdC50aW1pbmdBbGxvd0ZhaWxlZCkge1xuICAgIHJlc3BvbnNlLnRpbWluZ0FsbG93UGFzc2VkID0gdHJ1ZVxuICB9XG5cbiAgLy8gMTcuIElmIHJlc3BvbnNlIGlzIG5vdCBhIG5ldHdvcmsgZXJyb3IgYW5kIGFueSBvZiB0aGUgZm9sbG93aW5nIHJldHVybnNcbiAgLy8gYmxvY2tlZFxuICAvLyAtIHNob3VsZCBpbnRlcm5hbFJlc3BvbnNlIHRvIHJlcXVlc3QgYmUgYmxvY2tlZCBhcyBtaXhlZCBjb250ZW50XG4gIC8vIC0gc2hvdWxkIGludGVybmFsUmVzcG9uc2UgdG8gcmVxdWVzdCBiZSBibG9ja2VkIGJ5IENvbnRlbnQgU2VjdXJpdHkgUG9saWN5XG4gIC8vIC0gc2hvdWxkIGludGVybmFsUmVzcG9uc2UgdG8gcmVxdWVzdCBiZSBibG9ja2VkIGR1ZSB0byBpdHMgTUlNRSB0eXBlXG4gIC8vIC0gc2hvdWxkIGludGVybmFsUmVzcG9uc2UgdG8gcmVxdWVzdCBiZSBibG9ja2VkIGR1ZSB0byBub3NuaWZmXG4gIC8vIFRPRE9cblxuICAvLyAxOC4gSWYgcmVzcG9uc2VcdTIwMTlzIHR5cGUgaXMgXCJvcGFxdWVcIiwgaW50ZXJuYWxSZXNwb25zZVx1MjAxOXMgc3RhdHVzIGlzIDIwNixcbiAgLy8gaW50ZXJuYWxSZXNwb25zZVx1MjAxOXMgcmFuZ2UtcmVxdWVzdGVkIGZsYWcgaXMgc2V0LCBhbmQgcmVxdWVzdFx1MjAxOXMgaGVhZGVyXG4gIC8vIGxpc3QgZG9lcyBub3QgY29udGFpbiBgUmFuZ2VgLCB0aGVuIHNldCByZXNwb25zZSBhbmQgaW50ZXJuYWxSZXNwb25zZVxuICAvLyB0byBhIG5ldHdvcmsgZXJyb3IuXG4gIGlmIChcbiAgICByZXNwb25zZS50eXBlID09PSAnb3BhcXVlJyAmJlxuICAgIGludGVybmFsUmVzcG9uc2Uuc3RhdHVzID09PSAyMDYgJiZcbiAgICBpbnRlcm5hbFJlc3BvbnNlLnJhbmdlUmVxdWVzdGVkICYmXG4gICAgIXJlcXVlc3QuaGVhZGVycy5jb250YWlucygncmFuZ2UnLCB0cnVlKVxuICApIHtcbiAgICByZXNwb25zZSA9IGludGVybmFsUmVzcG9uc2UgPSBtYWtlTmV0d29ya0Vycm9yKClcbiAgfVxuXG4gIC8vIDE5LiBJZiByZXNwb25zZSBpcyBub3QgYSBuZXR3b3JrIGVycm9yIGFuZCBlaXRoZXIgcmVxdWVzdFx1MjAxOXMgbWV0aG9kIGlzXG4gIC8vIGBIRUFEYCBvciBgQ09OTkVDVGAsIG9yIGludGVybmFsUmVzcG9uc2VcdTIwMTlzIHN0YXR1cyBpcyBhIG51bGwgYm9keSBzdGF0dXMsXG4gIC8vIHNldCBpbnRlcm5hbFJlc3BvbnNlXHUyMDE5cyBib2R5IHRvIG51bGwgYW5kIGRpc3JlZ2FyZCBhbnkgZW5xdWV1aW5nIHRvd2FyZFxuICAvLyBpdCAoaWYgYW55KS5cbiAgaWYgKFxuICAgIHJlc3BvbnNlLnN0YXR1cyAhPT0gMCAmJlxuICAgIChyZXF1ZXN0Lm1ldGhvZCA9PT0gJ0hFQUQnIHx8XG4gICAgICByZXF1ZXN0Lm1ldGhvZCA9PT0gJ0NPTk5FQ1QnIHx8XG4gICAgICBudWxsQm9keVN0YXR1cy5pbmNsdWRlcyhpbnRlcm5hbFJlc3BvbnNlLnN0YXR1cykpXG4gICkge1xuICAgIGludGVybmFsUmVzcG9uc2UuYm9keSA9IG51bGxcbiAgICBmZXRjaFBhcmFtcy5jb250cm9sbGVyLmR1bXAgPSB0cnVlXG4gIH1cblxuICAvLyAyMC4gSWYgcmVxdWVzdFx1MjAxOXMgaW50ZWdyaXR5IG1ldGFkYXRhIGlzIG5vdCB0aGUgZW1wdHkgc3RyaW5nLCB0aGVuOlxuICBpZiAocmVxdWVzdC5pbnRlZ3JpdHkpIHtcbiAgICAvLyAxLiBMZXQgcHJvY2Vzc0JvZHlFcnJvciBiZSB0aGlzIHN0ZXA6IHJ1biBmZXRjaCBmaW5hbGUgZ2l2ZW4gZmV0Y2hQYXJhbXNcbiAgICAvLyBhbmQgYSBuZXR3b3JrIGVycm9yLlxuICAgIGNvbnN0IHByb2Nlc3NCb2R5RXJyb3IgPSAocmVhc29uKSA9PlxuICAgICAgZmV0Y2hGaW5hbGUoZmV0Y2hQYXJhbXMsIG1ha2VOZXR3b3JrRXJyb3IocmVhc29uKSlcblxuICAgIC8vIDIuIElmIHJlcXVlc3RcdTIwMTlzIHJlc3BvbnNlIHRhaW50aW5nIGlzIFwib3BhcXVlXCIsIG9yIHJlc3BvbnNlXHUyMDE5cyBib2R5IGlzIG51bGwsXG4gICAgLy8gdGhlbiBydW4gcHJvY2Vzc0JvZHlFcnJvciBhbmQgYWJvcnQgdGhlc2Ugc3RlcHMuXG4gICAgaWYgKHJlcXVlc3QucmVzcG9uc2VUYWludGluZyA9PT0gJ29wYXF1ZScgfHwgcmVzcG9uc2UuYm9keSA9PSBudWxsKSB7XG4gICAgICBwcm9jZXNzQm9keUVycm9yKHJlc3BvbnNlLmVycm9yKVxuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgLy8gMy4gTGV0IHByb2Nlc3NCb2R5IGdpdmVuIGJ5dGVzIGJlIHRoZXNlIHN0ZXBzOlxuICAgIGNvbnN0IHByb2Nlc3NCb2R5ID0gKGJ5dGVzKSA9PiB7XG4gICAgICAvLyAxLiBJZiBieXRlcyBkbyBub3QgbWF0Y2ggcmVxdWVzdFx1MjAxOXMgaW50ZWdyaXR5IG1ldGFkYXRhLFxuICAgICAgLy8gdGhlbiBydW4gcHJvY2Vzc0JvZHlFcnJvciBhbmQgYWJvcnQgdGhlc2Ugc3RlcHMuIFtTUkldXG4gICAgICBpZiAoIWJ5dGVzTWF0Y2goYnl0ZXMsIHJlcXVlc3QuaW50ZWdyaXR5KSkge1xuICAgICAgICBwcm9jZXNzQm9keUVycm9yKCdpbnRlZ3JpdHkgbWlzbWF0Y2gnKVxuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgLy8gMi4gU2V0IHJlc3BvbnNlXHUyMDE5cyBib2R5IHRvIGJ5dGVzIGFzIGEgYm9keS5cbiAgICAgIHJlc3BvbnNlLmJvZHkgPSBzYWZlbHlFeHRyYWN0Qm9keShieXRlcylbMF1cblxuICAgICAgLy8gMy4gUnVuIGZldGNoIGZpbmFsZSBnaXZlbiBmZXRjaFBhcmFtcyBhbmQgcmVzcG9uc2UuXG4gICAgICBmZXRjaEZpbmFsZShmZXRjaFBhcmFtcywgcmVzcG9uc2UpXG4gICAgfVxuXG4gICAgLy8gNC4gRnVsbHkgcmVhZCByZXNwb25zZVx1MjAxOXMgYm9keSBnaXZlbiBwcm9jZXNzQm9keSBhbmQgcHJvY2Vzc0JvZHlFcnJvci5cbiAgICBhd2FpdCBmdWxseVJlYWRCb2R5KHJlc3BvbnNlLmJvZHksIHByb2Nlc3NCb2R5LCBwcm9jZXNzQm9keUVycm9yKVxuICB9IGVsc2Uge1xuICAgIC8vIDIxLiBPdGhlcndpc2UsIHJ1biBmZXRjaCBmaW5hbGUgZ2l2ZW4gZmV0Y2hQYXJhbXMgYW5kIHJlc3BvbnNlLlxuICAgIGZldGNoRmluYWxlKGZldGNoUGFyYW1zLCByZXNwb25zZSlcbiAgfVxufVxuXG4vLyBodHRwczovL2ZldGNoLnNwZWMud2hhdHdnLm9yZy8jY29uY2VwdC1zY2hlbWUtZmV0Y2hcbi8vIGdpdmVuIGEgZmV0Y2ggcGFyYW1zIGZldGNoUGFyYW1zXG5mdW5jdGlvbiBzY2hlbWVGZXRjaCAoZmV0Y2hQYXJhbXMpIHtcbiAgLy8gTm90ZTogc2luY2UgdGhlIGNvbm5lY3Rpb24gaXMgZGVzdHJveWVkIG9uIHJlZGlyZWN0LCB3aGljaCBzZXRzIGZldGNoUGFyYW1zIHRvIGFcbiAgLy8gY2FuY2VsbGVkIHN0YXRlLCB3ZSBkbyBub3Qgd2FudCB0aGlzIGNvbmRpdGlvbiB0byB0cmlnZ2VyICp1bmxlc3MqIHRoZXJlIGhhdmUgYmVlblxuICAvLyBubyByZWRpcmVjdHMuIFNlZSBodHRwczovL2dpdGh1Yi5jb20vbm9kZWpzL3VuZGljaS9pc3N1ZXMvMTc3NlxuICAvLyAxLiBJZiBmZXRjaFBhcmFtcyBpcyBjYW5jZWxlZCwgdGhlbiByZXR1cm4gdGhlIGFwcHJvcHJpYXRlIG5ldHdvcmsgZXJyb3IgZm9yIGZldGNoUGFyYW1zLlxuICBpZiAoaXNDYW5jZWxsZWQoZmV0Y2hQYXJhbXMpICYmIGZldGNoUGFyYW1zLnJlcXVlc3QucmVkaXJlY3RDb3VudCA9PT0gMCkge1xuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUobWFrZUFwcHJvcHJpYXRlTmV0d29ya0Vycm9yKGZldGNoUGFyYW1zKSlcbiAgfVxuXG4gIC8vIDIuIExldCByZXF1ZXN0IGJlIGZldGNoUGFyYW1zXHUyMDE5cyByZXF1ZXN0LlxuICBjb25zdCB7IHJlcXVlc3QgfSA9IGZldGNoUGFyYW1zXG5cbiAgY29uc3QgeyBwcm90b2NvbDogc2NoZW1lIH0gPSByZXF1ZXN0Q3VycmVudFVSTChyZXF1ZXN0KVxuXG4gIC8vIDMuIFN3aXRjaCBvbiByZXF1ZXN0XHUyMDE5cyBjdXJyZW50IFVSTFx1MjAxOXMgc2NoZW1lIGFuZCBydW4gdGhlIGFzc29jaWF0ZWQgc3RlcHM6XG4gIHN3aXRjaCAoc2NoZW1lKSB7XG4gICAgY2FzZSAnYWJvdXQ6Jzoge1xuICAgICAgLy8gSWYgcmVxdWVzdFx1MjAxOXMgY3VycmVudCBVUkxcdTIwMTlzIHBhdGggaXMgdGhlIHN0cmluZyBcImJsYW5rXCIsIHRoZW4gcmV0dXJuIGEgbmV3IHJlc3BvbnNlXG4gICAgICAvLyB3aG9zZSBzdGF0dXMgbWVzc2FnZSBpcyBgT0tgLCBoZWFkZXIgbGlzdCBpcyBcdTAwQUIgKGBDb250ZW50LVR5cGVgLCBgdGV4dC9odG1sO2NoYXJzZXQ9dXRmLThgKSBcdTAwQkIsXG4gICAgICAvLyBhbmQgYm9keSBpcyB0aGUgZW1wdHkgYnl0ZSBzZXF1ZW5jZSBhcyBhIGJvZHkuXG5cbiAgICAgIC8vIE90aGVyd2lzZSwgcmV0dXJuIGEgbmV0d29yayBlcnJvci5cbiAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUobWFrZU5ldHdvcmtFcnJvcignYWJvdXQgc2NoZW1lIGlzIG5vdCBzdXBwb3J0ZWQnKSlcbiAgICB9XG4gICAgY2FzZSAnYmxvYjonOiB7XG4gICAgICBpZiAoIXJlc29sdmVPYmplY3RVUkwpIHtcbiAgICAgICAgcmVzb2x2ZU9iamVjdFVSTCA9IHJlcXVpcmUoJ25vZGU6YnVmZmVyJykucmVzb2x2ZU9iamVjdFVSTFxuICAgICAgfVxuXG4gICAgICAvLyAxLiBMZXQgYmxvYlVSTEVudHJ5IGJlIHJlcXVlc3RcdTIwMTlzIGN1cnJlbnQgVVJMXHUyMDE5cyBibG9iIFVSTCBlbnRyeS5cbiAgICAgIGNvbnN0IGJsb2JVUkxFbnRyeSA9IHJlcXVlc3RDdXJyZW50VVJMKHJlcXVlc3QpXG5cbiAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2Jsb2IvN2IwZWJhY2NjNjJiNTY2YTE5NjUzOTZlNWJlN2JiMmJjMDZmODQxZi9GaWxlQVBJL3VybC9yZXNvdXJjZXMvZmV0Y2gtdGVzdHMuanMjTDUyLUw1NlxuICAgICAgLy8gQnVmZmVyLnJlc29sdmVPYmplY3RVUkwgZG9lcyBub3QgaWdub3JlIFVSTCBxdWVyaWVzLlxuICAgICAgaWYgKGJsb2JVUkxFbnRyeS5zZWFyY2gubGVuZ3RoICE9PSAwKSB7XG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUobWFrZU5ldHdvcmtFcnJvcignTmV0d29ya0Vycm9yIHdoZW4gYXR0ZW1wdGluZyB0byBmZXRjaCByZXNvdXJjZS4nKSlcbiAgICAgIH1cblxuICAgICAgY29uc3QgYmxvYiA9IHJlc29sdmVPYmplY3RVUkwoYmxvYlVSTEVudHJ5LnRvU3RyaW5nKCkpXG5cbiAgICAgIC8vIDIuIElmIHJlcXVlc3RcdTIwMTlzIG1ldGhvZCBpcyBub3QgYEdFVGAsIGJsb2JVUkxFbnRyeSBpcyBudWxsLCBvciBibG9iVVJMRW50cnlcdTIwMTlzXG4gICAgICAvLyAgICBvYmplY3QgaXMgbm90IGEgQmxvYiBvYmplY3QsIHRoZW4gcmV0dXJuIGEgbmV0d29yayBlcnJvci5cbiAgICAgIGlmIChyZXF1ZXN0Lm1ldGhvZCAhPT0gJ0dFVCcgfHwgIWlzQmxvYkxpa2UoYmxvYikpIHtcbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShtYWtlTmV0d29ya0Vycm9yKCdpbnZhbGlkIG1ldGhvZCcpKVxuICAgICAgfVxuXG4gICAgICAvLyAzLiBMZXQgYmxvYiBiZSBibG9iVVJMRW50cnlcdTIwMTlzIG9iamVjdC5cbiAgICAgIC8vIE5vdGU6IGRvbmUgYWJvdmVcblxuICAgICAgLy8gNC4gTGV0IHJlc3BvbnNlIGJlIGEgbmV3IHJlc3BvbnNlLlxuICAgICAgY29uc3QgcmVzcG9uc2UgPSBtYWtlUmVzcG9uc2UoKVxuXG4gICAgICAvLyA1LiBMZXQgZnVsbExlbmd0aCBiZSBibG9iXHUyMDE5cyBzaXplLlxuICAgICAgY29uc3QgZnVsbExlbmd0aCA9IGJsb2Iuc2l6ZVxuXG4gICAgICAvLyA2LiBMZXQgc2VyaWFsaXplZEZ1bGxMZW5ndGggYmUgZnVsbExlbmd0aCwgc2VyaWFsaXplZCBhbmQgaXNvbW9ycGhpYyBlbmNvZGVkLlxuICAgICAgY29uc3Qgc2VyaWFsaXplZEZ1bGxMZW5ndGggPSBpc29tb3JwaGljRW5jb2RlKGAke2Z1bGxMZW5ndGh9YClcblxuICAgICAgLy8gNy4gTGV0IHR5cGUgYmUgYmxvYlx1MjAxOXMgdHlwZS5cbiAgICAgIGNvbnN0IHR5cGUgPSBibG9iLnR5cGVcblxuICAgICAgLy8gOC4gSWYgcmVxdWVzdFx1MjAxOXMgaGVhZGVyIGxpc3QgZG9lcyBub3QgY29udGFpbiBgUmFuZ2VgOlxuICAgICAgLy8gOS4gT3RoZXJ3aXNlOlxuICAgICAgaWYgKCFyZXF1ZXN0LmhlYWRlcnNMaXN0LmNvbnRhaW5zKCdyYW5nZScsIHRydWUpKSB7XG4gICAgICAgIC8vIDEuIExldCBib2R5V2l0aFR5cGUgYmUgdGhlIHJlc3VsdCBvZiBzYWZlbHkgZXh0cmFjdGluZyBibG9iLlxuICAgICAgICAvLyBOb3RlOiBpbiB0aGUgRmlsZUFQSSBhIGJsb2IgXCJvYmplY3RcIiBpcyBhIEJsb2IgKm9yKiBhIE1lZGlhU291cmNlLlxuICAgICAgICAvLyBJbiBub2RlLCB0aGlzIGNhbiBvbmx5IGV2ZXIgYmUgYSBCbG9iLiBUaGVyZWZvcmUgd2UgY2FuIHNhZmVseVxuICAgICAgICAvLyB1c2UgZXh0cmFjdEJvZHkgZGlyZWN0bHkuXG4gICAgICAgIGNvbnN0IGJvZHlXaXRoVHlwZSA9IGV4dHJhY3RCb2R5KGJsb2IpXG5cbiAgICAgICAgLy8gMi4gU2V0IHJlc3BvbnNlXHUyMDE5cyBzdGF0dXMgbWVzc2FnZSB0byBgT0tgLlxuICAgICAgICByZXNwb25zZS5zdGF0dXNUZXh0ID0gJ09LJ1xuXG4gICAgICAgIC8vIDMuIFNldCByZXNwb25zZVx1MjAxOXMgYm9keSB0byBib2R5V2l0aFR5cGVcdTIwMTlzIGJvZHkuXG4gICAgICAgIHJlc3BvbnNlLmJvZHkgPSBib2R5V2l0aFR5cGVbMF1cblxuICAgICAgICAvLyA0LiBTZXQgcmVzcG9uc2VcdTIwMTlzIGhlYWRlciBsaXN0IHRvIFx1MDBBQiAoYENvbnRlbnQtTGVuZ3RoYCwgc2VyaWFsaXplZEZ1bGxMZW5ndGgpLCAoYENvbnRlbnQtVHlwZWAsIHR5cGUpIFx1MDBCQi5cbiAgICAgICAgcmVzcG9uc2UuaGVhZGVyc0xpc3Quc2V0KCdjb250ZW50LWxlbmd0aCcsIHNlcmlhbGl6ZWRGdWxsTGVuZ3RoLCB0cnVlKVxuICAgICAgICByZXNwb25zZS5oZWFkZXJzTGlzdC5zZXQoJ2NvbnRlbnQtdHlwZScsIHR5cGUsIHRydWUpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyAxLiBTZXQgcmVzcG9uc2VcdTIwMTlzIHJhbmdlLXJlcXVlc3RlZCBmbGFnLlxuICAgICAgICByZXNwb25zZS5yYW5nZVJlcXVlc3RlZCA9IHRydWVcblxuICAgICAgICAvLyAyLiBMZXQgcmFuZ2VIZWFkZXIgYmUgdGhlIHJlc3VsdCBvZiBnZXR0aW5nIGBSYW5nZWAgZnJvbSByZXF1ZXN0XHUyMDE5cyBoZWFkZXIgbGlzdC5cbiAgICAgICAgY29uc3QgcmFuZ2VIZWFkZXIgPSByZXF1ZXN0LmhlYWRlcnNMaXN0LmdldCgncmFuZ2UnLCB0cnVlKVxuXG4gICAgICAgIC8vIDMuIExldCByYW5nZVZhbHVlIGJlIHRoZSByZXN1bHQgb2YgcGFyc2luZyBhIHNpbmdsZSByYW5nZSBoZWFkZXIgdmFsdWUgZ2l2ZW4gcmFuZ2VIZWFkZXIgYW5kIHRydWUuXG4gICAgICAgIGNvbnN0IHJhbmdlVmFsdWUgPSBzaW1wbGVSYW5nZUhlYWRlclZhbHVlKHJhbmdlSGVhZGVyLCB0cnVlKVxuXG4gICAgICAgIC8vIDQuIElmIHJhbmdlVmFsdWUgaXMgZmFpbHVyZSwgdGhlbiByZXR1cm4gYSBuZXR3b3JrIGVycm9yLlxuICAgICAgICBpZiAocmFuZ2VWYWx1ZSA9PT0gJ2ZhaWx1cmUnKSB7XG4gICAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShtYWtlTmV0d29ya0Vycm9yKCdmYWlsZWQgdG8gZmV0Y2ggdGhlIGRhdGEgVVJMJykpXG4gICAgICAgIH1cblxuICAgICAgICAvLyA1LiBMZXQgKHJhbmdlU3RhcnQsIHJhbmdlRW5kKSBiZSByYW5nZVZhbHVlLlxuICAgICAgICBsZXQgeyByYW5nZVN0YXJ0VmFsdWU6IHJhbmdlU3RhcnQsIHJhbmdlRW5kVmFsdWU6IHJhbmdlRW5kIH0gPSByYW5nZVZhbHVlXG5cbiAgICAgICAgLy8gNi4gSWYgcmFuZ2VTdGFydCBpcyBudWxsOlxuICAgICAgICAvLyA3LiBPdGhlcndpc2U6XG4gICAgICAgIGlmIChyYW5nZVN0YXJ0ID09PSBudWxsKSB7XG4gICAgICAgICAgLy8gMS4gU2V0IHJhbmdlU3RhcnQgdG8gZnVsbExlbmd0aCBcdTIyMTIgcmFuZ2VFbmQuXG4gICAgICAgICAgcmFuZ2VTdGFydCA9IGZ1bGxMZW5ndGggLSByYW5nZUVuZFxuXG4gICAgICAgICAgLy8gMi4gU2V0IHJhbmdlRW5kIHRvIHJhbmdlU3RhcnQgKyByYW5nZUVuZCBcdTIyMTIgMS5cbiAgICAgICAgICByYW5nZUVuZCA9IHJhbmdlU3RhcnQgKyByYW5nZUVuZCAtIDFcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAvLyAxLiBJZiByYW5nZVN0YXJ0IGlzIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byBmdWxsTGVuZ3RoLCB0aGVuIHJldHVybiBhIG5ldHdvcmsgZXJyb3IuXG4gICAgICAgICAgaWYgKHJhbmdlU3RhcnQgPj0gZnVsbExlbmd0aCkge1xuICAgICAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShtYWtlTmV0d29ya0Vycm9yKCdSYW5nZSBzdGFydCBpcyBncmVhdGVyIHRoYW4gdGhlIGJsb2JcXCdzIHNpemUuJykpXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLy8gMi4gSWYgcmFuZ2VFbmQgaXMgbnVsbCBvciByYW5nZUVuZCBpcyBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gZnVsbExlbmd0aCwgdGhlbiBzZXRcbiAgICAgICAgICAvLyAgICByYW5nZUVuZCB0byBmdWxsTGVuZ3RoIFx1MjIxMiAxLlxuICAgICAgICAgIGlmIChyYW5nZUVuZCA9PT0gbnVsbCB8fCByYW5nZUVuZCA+PSBmdWxsTGVuZ3RoKSB7XG4gICAgICAgICAgICByYW5nZUVuZCA9IGZ1bGxMZW5ndGggLSAxXG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gOC4gTGV0IHNsaWNlZEJsb2IgYmUgdGhlIHJlc3VsdCBvZiBpbnZva2luZyBzbGljZSBibG9iIGdpdmVuIGJsb2IsIHJhbmdlU3RhcnQsXG4gICAgICAgIC8vICAgIHJhbmdlRW5kICsgMSwgYW5kIHR5cGUuXG4gICAgICAgIGNvbnN0IHNsaWNlZEJsb2IgPSBibG9iLnNsaWNlKHJhbmdlU3RhcnQsIHJhbmdlRW5kLCB0eXBlKVxuXG4gICAgICAgIC8vIDkuIExldCBzbGljZWRCb2R5V2l0aFR5cGUgYmUgdGhlIHJlc3VsdCBvZiBzYWZlbHkgZXh0cmFjdGluZyBzbGljZWRCbG9iLlxuICAgICAgICAvLyBOb3RlOiBzYW1lIHJlYXNvbiBhcyBtZW50aW9uZWQgYWJvdmUgYXMgdG8gd2h5IHdlIHVzZSBleHRyYWN0Qm9keVxuICAgICAgICBjb25zdCBzbGljZWRCb2R5V2l0aFR5cGUgPSBleHRyYWN0Qm9keShzbGljZWRCbG9iKVxuXG4gICAgICAgIC8vIDEwLiBTZXQgcmVzcG9uc2VcdTIwMTlzIGJvZHkgdG8gc2xpY2VkQm9keVdpdGhUeXBlXHUyMDE5cyBib2R5LlxuICAgICAgICByZXNwb25zZS5ib2R5ID0gc2xpY2VkQm9keVdpdGhUeXBlWzBdXG5cbiAgICAgICAgLy8gMTEuIExldCBzZXJpYWxpemVkU2xpY2VkTGVuZ3RoIGJlIHNsaWNlZEJsb2JcdTIwMTlzIHNpemUsIHNlcmlhbGl6ZWQgYW5kIGlzb21vcnBoaWMgZW5jb2RlZC5cbiAgICAgICAgY29uc3Qgc2VyaWFsaXplZFNsaWNlZExlbmd0aCA9IGlzb21vcnBoaWNFbmNvZGUoYCR7c2xpY2VkQmxvYi5zaXplfWApXG5cbiAgICAgICAgLy8gMTIuIExldCBjb250ZW50UmFuZ2UgYmUgdGhlIHJlc3VsdCBvZiBpbnZva2luZyBidWlsZCBhIGNvbnRlbnQgcmFuZ2UgZ2l2ZW4gcmFuZ2VTdGFydCxcbiAgICAgICAgLy8gICAgIHJhbmdlRW5kLCBhbmQgZnVsbExlbmd0aC5cbiAgICAgICAgY29uc3QgY29udGVudFJhbmdlID0gYnVpbGRDb250ZW50UmFuZ2UocmFuZ2VTdGFydCwgcmFuZ2VFbmQsIGZ1bGxMZW5ndGgpXG5cbiAgICAgICAgLy8gMTMuIFNldCByZXNwb25zZVx1MjAxOXMgc3RhdHVzIHRvIDIwNi5cbiAgICAgICAgcmVzcG9uc2Uuc3RhdHVzID0gMjA2XG5cbiAgICAgICAgLy8gMTQuIFNldCByZXNwb25zZVx1MjAxOXMgc3RhdHVzIG1lc3NhZ2UgdG8gYFBhcnRpYWwgQ29udGVudGAuXG4gICAgICAgIHJlc3BvbnNlLnN0YXR1c1RleHQgPSAnUGFydGlhbCBDb250ZW50J1xuXG4gICAgICAgIC8vIDE1LiBTZXQgcmVzcG9uc2VcdTIwMTlzIGhlYWRlciBsaXN0IHRvIFx1MDBBQiAoYENvbnRlbnQtTGVuZ3RoYCwgc2VyaWFsaXplZFNsaWNlZExlbmd0aCksXG4gICAgICAgIC8vICAgICAoYENvbnRlbnQtVHlwZWAsIHR5cGUpLCAoYENvbnRlbnQtUmFuZ2VgLCBjb250ZW50UmFuZ2UpIFx1MDBCQi5cbiAgICAgICAgcmVzcG9uc2UuaGVhZGVyc0xpc3Quc2V0KCdjb250ZW50LWxlbmd0aCcsIHNlcmlhbGl6ZWRTbGljZWRMZW5ndGgsIHRydWUpXG4gICAgICAgIHJlc3BvbnNlLmhlYWRlcnNMaXN0LnNldCgnY29udGVudC10eXBlJywgdHlwZSwgdHJ1ZSlcbiAgICAgICAgcmVzcG9uc2UuaGVhZGVyc0xpc3Quc2V0KCdjb250ZW50LXJhbmdlJywgY29udGVudFJhbmdlLCB0cnVlKVxuICAgICAgfVxuXG4gICAgICAvLyAxMC4gUmV0dXJuIHJlc3BvbnNlLlxuICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShyZXNwb25zZSlcbiAgICB9XG4gICAgY2FzZSAnZGF0YTonOiB7XG4gICAgICAvLyAxLiBMZXQgZGF0YVVSTFN0cnVjdCBiZSB0aGUgcmVzdWx0IG9mIHJ1bm5pbmcgdGhlXG4gICAgICAvLyAgICBkYXRhOiBVUkwgcHJvY2Vzc29yIG9uIHJlcXVlc3RcdTIwMTlzIGN1cnJlbnQgVVJMLlxuICAgICAgY29uc3QgY3VycmVudFVSTCA9IHJlcXVlc3RDdXJyZW50VVJMKHJlcXVlc3QpXG4gICAgICBjb25zdCBkYXRhVVJMU3RydWN0ID0gZGF0YVVSTFByb2Nlc3NvcihjdXJyZW50VVJMKVxuXG4gICAgICAvLyAyLiBJZiBkYXRhVVJMU3RydWN0IGlzIGZhaWx1cmUsIHRoZW4gcmV0dXJuIGFcbiAgICAgIC8vICAgIG5ldHdvcmsgZXJyb3IuXG4gICAgICBpZiAoZGF0YVVSTFN0cnVjdCA9PT0gJ2ZhaWx1cmUnKSB7XG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUobWFrZU5ldHdvcmtFcnJvcignZmFpbGVkIHRvIGZldGNoIHRoZSBkYXRhIFVSTCcpKVxuICAgICAgfVxuXG4gICAgICAvLyAzLiBMZXQgbWltZVR5cGUgYmUgZGF0YVVSTFN0cnVjdFx1MjAxOXMgTUlNRSB0eXBlLCBzZXJpYWxpemVkLlxuICAgICAgY29uc3QgbWltZVR5cGUgPSBzZXJpYWxpemVBTWltZVR5cGUoZGF0YVVSTFN0cnVjdC5taW1lVHlwZSlcblxuICAgICAgLy8gNC4gUmV0dXJuIGEgcmVzcG9uc2Ugd2hvc2Ugc3RhdHVzIG1lc3NhZ2UgaXMgYE9LYCxcbiAgICAgIC8vICAgIGhlYWRlciBsaXN0IGlzIFx1MDBBQiAoYENvbnRlbnQtVHlwZWAsIG1pbWVUeXBlKSBcdTAwQkIsXG4gICAgICAvLyAgICBhbmQgYm9keSBpcyBkYXRhVVJMU3RydWN0XHUyMDE5cyBib2R5IGFzIGEgYm9keS5cbiAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUobWFrZVJlc3BvbnNlKHtcbiAgICAgICAgc3RhdHVzVGV4dDogJ09LJyxcbiAgICAgICAgaGVhZGVyc0xpc3Q6IFtcbiAgICAgICAgICBbJ2NvbnRlbnQtdHlwZScsIHsgbmFtZTogJ0NvbnRlbnQtVHlwZScsIHZhbHVlOiBtaW1lVHlwZSB9XVxuICAgICAgICBdLFxuICAgICAgICBib2R5OiBzYWZlbHlFeHRyYWN0Qm9keShkYXRhVVJMU3RydWN0LmJvZHkpWzBdXG4gICAgICB9KSlcbiAgICB9XG4gICAgY2FzZSAnZmlsZTonOiB7XG4gICAgICAvLyBGb3Igbm93LCB1bmZvcnR1bmF0ZSBhcyBpdCBpcywgZmlsZSBVUkxzIGFyZSBsZWZ0IGFzIGFuIGV4ZXJjaXNlIGZvciB0aGUgcmVhZGVyLlxuICAgICAgLy8gV2hlbiBpbiBkb3VidCwgcmV0dXJuIGEgbmV0d29yayBlcnJvci5cbiAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUobWFrZU5ldHdvcmtFcnJvcignbm90IGltcGxlbWVudGVkLi4uIHlldC4uLicpKVxuICAgIH1cbiAgICBjYXNlICdodHRwOic6XG4gICAgY2FzZSAnaHR0cHM6Jzoge1xuICAgICAgLy8gUmV0dXJuIHRoZSByZXN1bHQgb2YgcnVubmluZyBIVFRQIGZldGNoIGdpdmVuIGZldGNoUGFyYW1zLlxuXG4gICAgICByZXR1cm4gaHR0cEZldGNoKGZldGNoUGFyYW1zKVxuICAgICAgICAuY2F0Y2goKGVycikgPT4gbWFrZU5ldHdvcmtFcnJvcihlcnIpKVxuICAgIH1cbiAgICBkZWZhdWx0OiB7XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKG1ha2VOZXR3b3JrRXJyb3IoJ3Vua25vd24gc2NoZW1lJykpXG4gICAgfVxuICB9XG59XG5cbi8vIGh0dHBzOi8vZmV0Y2guc3BlYy53aGF0d2cub3JnLyNmaW5hbGl6ZS1yZXNwb25zZVxuZnVuY3Rpb24gZmluYWxpemVSZXNwb25zZSAoZmV0Y2hQYXJhbXMsIHJlc3BvbnNlKSB7XG4gIC8vIDEuIFNldCBmZXRjaFBhcmFtc1x1MjAxOXMgcmVxdWVzdFx1MjAxOXMgZG9uZSBmbGFnLlxuICBmZXRjaFBhcmFtcy5yZXF1ZXN0LmRvbmUgPSB0cnVlXG5cbiAgLy8gMiwgSWYgZmV0Y2hQYXJhbXNcdTIwMTlzIHByb2Nlc3MgcmVzcG9uc2UgZG9uZSBpcyBub3QgbnVsbCwgdGhlbiBxdWV1ZSBhIGZldGNoXG4gIC8vIHRhc2sgdG8gcnVuIGZldGNoUGFyYW1zXHUyMDE5cyBwcm9jZXNzIHJlc3BvbnNlIGRvbmUgZ2l2ZW4gcmVzcG9uc2UsIHdpdGhcbiAgLy8gZmV0Y2hQYXJhbXNcdTIwMTlzIHRhc2sgZGVzdGluYXRpb24uXG4gIGlmIChmZXRjaFBhcmFtcy5wcm9jZXNzUmVzcG9uc2VEb25lICE9IG51bGwpIHtcbiAgICBxdWV1ZU1pY3JvdGFzaygoKSA9PiBmZXRjaFBhcmFtcy5wcm9jZXNzUmVzcG9uc2VEb25lKHJlc3BvbnNlKSlcbiAgfVxufVxuXG4vLyBodHRwczovL2ZldGNoLnNwZWMud2hhdHdnLm9yZy8jZmV0Y2gtZmluYWxlXG5mdW5jdGlvbiBmZXRjaEZpbmFsZSAoZmV0Y2hQYXJhbXMsIHJlc3BvbnNlKSB7XG4gIC8vIDEuIExldCB0aW1pbmdJbmZvIGJlIGZldGNoUGFyYW1zXHUyMDE5cyB0aW1pbmcgaW5mby5cbiAgbGV0IHRpbWluZ0luZm8gPSBmZXRjaFBhcmFtcy50aW1pbmdJbmZvXG5cbiAgLy8gMi4gSWYgcmVzcG9uc2UgaXMgbm90IGEgbmV0d29yayBlcnJvciBhbmQgZmV0Y2hQYXJhbXNcdTIwMTlzIHJlcXVlc3RcdTIwMTlzIGNsaWVudCBpcyBhIHNlY3VyZSBjb250ZXh0LFxuICAvLyAgICB0aGVuIHNldCB0aW1pbmdJbmZvXHUyMDE5cyBzZXJ2ZXItdGltaW5nIGhlYWRlcnMgdG8gdGhlIHJlc3VsdCBvZiBnZXR0aW5nLCBkZWNvZGluZywgYW5kIHNwbGl0dGluZ1xuICAvLyAgICBgU2VydmVyLVRpbWluZ2AgZnJvbSByZXNwb25zZVx1MjAxOXMgaW50ZXJuYWwgcmVzcG9uc2VcdTIwMTlzIGhlYWRlciBsaXN0LlxuICAvLyBUT0RPXG5cbiAgLy8gMy4gTGV0IHByb2Nlc3NSZXNwb25zZUVuZE9mQm9keSBiZSB0aGUgZm9sbG93aW5nIHN0ZXBzOlxuICBjb25zdCBwcm9jZXNzUmVzcG9uc2VFbmRPZkJvZHkgPSAoKSA9PiB7XG4gICAgLy8gMS4gTGV0IHVuc2FmZUVuZFRpbWUgYmUgdGhlIHVuc2FmZSBzaGFyZWQgY3VycmVudCB0aW1lLlxuICAgIGNvbnN0IHVuc2FmZUVuZFRpbWUgPSBEYXRlLm5vdygpIC8vID9cblxuICAgIC8vIDIuIElmIGZldGNoUGFyYW1zXHUyMDE5cyByZXF1ZXN0XHUyMDE5cyBkZXN0aW5hdGlvbiBpcyBcImRvY3VtZW50XCIsIHRoZW4gc2V0IGZldGNoUGFyYW1zXHUyMDE5cyBjb250cm9sbGVyXHUyMDE5c1xuICAgIC8vICAgIGZ1bGwgdGltaW5nIGluZm8gdG8gZmV0Y2hQYXJhbXNcdTIwMTlzIHRpbWluZyBpbmZvLlxuICAgIGlmIChmZXRjaFBhcmFtcy5yZXF1ZXN0LmRlc3RpbmF0aW9uID09PSAnZG9jdW1lbnQnKSB7XG4gICAgICBmZXRjaFBhcmFtcy5jb250cm9sbGVyLmZ1bGxUaW1pbmdJbmZvID0gdGltaW5nSW5mb1xuICAgIH1cblxuICAgIC8vIDMuIFNldCBmZXRjaFBhcmFtc1x1MjAxOXMgY29udHJvbGxlclx1MjAxOXMgcmVwb3J0IHRpbWluZyBzdGVwcyB0byB0aGUgZm9sbG93aW5nIHN0ZXBzIGdpdmVuIGEgZ2xvYmFsIG9iamVjdCBnbG9iYWw6XG4gICAgZmV0Y2hQYXJhbXMuY29udHJvbGxlci5yZXBvcnRUaW1pbmdTdGVwcyA9ICgpID0+IHtcbiAgICAgIC8vIDEuIElmIGZldGNoUGFyYW1zXHUyMDE5cyByZXF1ZXN0XHUyMDE5cyBVUkxcdTIwMTlzIHNjaGVtZSBpcyBub3QgYW4gSFRUUChTKSBzY2hlbWUsIHRoZW4gcmV0dXJuLlxuICAgICAgaWYgKGZldGNoUGFyYW1zLnJlcXVlc3QudXJsLnByb3RvY29sICE9PSAnaHR0cHM6Jykge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgLy8gMi4gU2V0IHRpbWluZ0luZm9cdTIwMTlzIGVuZCB0aW1lIHRvIHRoZSByZWxhdGl2ZSBoaWdoIHJlc29sdXRpb24gdGltZSBnaXZlbiB1bnNhZmVFbmRUaW1lIGFuZCBnbG9iYWwuXG4gICAgICB0aW1pbmdJbmZvLmVuZFRpbWUgPSB1bnNhZmVFbmRUaW1lXG5cbiAgICAgIC8vIDMuIExldCBjYWNoZVN0YXRlIGJlIHJlc3BvbnNlXHUyMDE5cyBjYWNoZSBzdGF0ZS5cbiAgICAgIGxldCBjYWNoZVN0YXRlID0gcmVzcG9uc2UuY2FjaGVTdGF0ZVxuXG4gICAgICAvLyA0LiBMZXQgYm9keUluZm8gYmUgcmVzcG9uc2VcdTIwMTlzIGJvZHkgaW5mby5cbiAgICAgIGNvbnN0IGJvZHlJbmZvID0gcmVzcG9uc2UuYm9keUluZm9cblxuICAgICAgLy8gNS4gSWYgcmVzcG9uc2VcdTIwMTlzIHRpbWluZyBhbGxvdyBwYXNzZWQgZmxhZyBpcyBub3Qgc2V0LCB0aGVuIHNldCB0aW1pbmdJbmZvIHRvIHRoZSByZXN1bHQgb2YgY3JlYXRpbmcgYW5cbiAgICAgIC8vICAgIG9wYXF1ZSB0aW1pbmcgaW5mbyBmb3IgdGltaW5nSW5mbyBhbmQgc2V0IGNhY2hlU3RhdGUgdG8gdGhlIGVtcHR5IHN0cmluZy5cbiAgICAgIGlmICghcmVzcG9uc2UudGltaW5nQWxsb3dQYXNzZWQpIHtcbiAgICAgICAgdGltaW5nSW5mbyA9IGNyZWF0ZU9wYXF1ZVRpbWluZ0luZm8odGltaW5nSW5mbylcblxuICAgICAgICBjYWNoZVN0YXRlID0gJydcbiAgICAgIH1cblxuICAgICAgLy8gNi4gTGV0IHJlc3BvbnNlU3RhdHVzIGJlIDAuXG4gICAgICBsZXQgcmVzcG9uc2VTdGF0dXMgPSAwXG5cbiAgICAgIC8vIDcuIElmIGZldGNoUGFyYW1zXHUyMDE5cyByZXF1ZXN0XHUyMDE5cyBtb2RlIGlzIG5vdCBcIm5hdmlnYXRlXCIgb3IgcmVzcG9uc2VcdTIwMTlzIGhhcy1jcm9zcy1vcmlnaW4tcmVkaXJlY3RzIGlzIGZhbHNlOlxuICAgICAgaWYgKGZldGNoUGFyYW1zLnJlcXVlc3QubW9kZSAhPT0gJ25hdmlnYXRvcicgfHwgIXJlc3BvbnNlLmhhc0Nyb3NzT3JpZ2luUmVkaXJlY3RzKSB7XG4gICAgICAgIC8vIDEuIFNldCByZXNwb25zZVN0YXR1cyB0byByZXNwb25zZVx1MjAxOXMgc3RhdHVzLlxuICAgICAgICByZXNwb25zZVN0YXR1cyA9IHJlc3BvbnNlLnN0YXR1c1xuXG4gICAgICAgIC8vIDIuIExldCBtaW1lVHlwZSBiZSB0aGUgcmVzdWx0IG9mIGV4dHJhY3RpbmcgYSBNSU1FIHR5cGUgZnJvbSByZXNwb25zZVx1MjAxOXMgaGVhZGVyIGxpc3QuXG4gICAgICAgIGNvbnN0IG1pbWVUeXBlID0gZXh0cmFjdE1pbWVUeXBlKHJlc3BvbnNlLmhlYWRlcnNMaXN0KVxuXG4gICAgICAgIC8vIDMuIElmIG1pbWVUeXBlIGlzIG5vdCBmYWlsdXJlLCB0aGVuIHNldCBib2R5SW5mb1x1MjAxOXMgY29udGVudCB0eXBlIHRvIHRoZSByZXN1bHQgb2YgbWluaW1pemluZyBhIHN1cHBvcnRlZCBNSU1FIHR5cGUgZ2l2ZW4gbWltZVR5cGUuXG4gICAgICAgIGlmIChtaW1lVHlwZSAhPT0gJ2ZhaWx1cmUnKSB7XG4gICAgICAgICAgYm9keUluZm8uY29udGVudFR5cGUgPSBtaW5pbWl6ZVN1cHBvcnRlZE1pbWVUeXBlKG1pbWVUeXBlKVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIDguIElmIGZldGNoUGFyYW1zXHUyMDE5cyByZXF1ZXN0XHUyMDE5cyBpbml0aWF0b3IgdHlwZSBpcyBub24tbnVsbCwgdGhlbiBtYXJrIHJlc291cmNlIHRpbWluZyBnaXZlbiB0aW1pbmdJbmZvLFxuICAgICAgLy8gICAgZmV0Y2hQYXJhbXNcdTIwMTlzIHJlcXVlc3RcdTIwMTlzIFVSTCwgZmV0Y2hQYXJhbXNcdTIwMTlzIHJlcXVlc3RcdTIwMTlzIGluaXRpYXRvciB0eXBlLCBnbG9iYWwsIGNhY2hlU3RhdGUsIGJvZHlJbmZvLFxuICAgICAgLy8gICAgYW5kIHJlc3BvbnNlU3RhdHVzLlxuICAgICAgaWYgKGZldGNoUGFyYW1zLnJlcXVlc3QuaW5pdGlhdG9yVHlwZSAhPSBudWxsKSB7XG4gICAgICAgIC8vIFRPRE86IHVwZGF0ZSBtYXJrcmVzb3VyY2V0aW1pbmdcbiAgICAgICAgbWFya1Jlc291cmNlVGltaW5nKHRpbWluZ0luZm8sIGZldGNoUGFyYW1zLnJlcXVlc3QudXJsLmhyZWYsIGZldGNoUGFyYW1zLnJlcXVlc3QuaW5pdGlhdG9yVHlwZSwgZ2xvYmFsVGhpcywgY2FjaGVTdGF0ZSwgYm9keUluZm8sIHJlc3BvbnNlU3RhdHVzKVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIDQuIExldCBwcm9jZXNzUmVzcG9uc2VFbmRPZkJvZHlUYXNrIGJlIHRoZSBmb2xsb3dpbmcgc3RlcHM6XG4gICAgY29uc3QgcHJvY2Vzc1Jlc3BvbnNlRW5kT2ZCb2R5VGFzayA9ICgpID0+IHtcbiAgICAgIC8vIDEuIFNldCBmZXRjaFBhcmFtc1x1MjAxOXMgcmVxdWVzdFx1MjAxOXMgZG9uZSBmbGFnLlxuICAgICAgZmV0Y2hQYXJhbXMucmVxdWVzdC5kb25lID0gdHJ1ZVxuXG4gICAgICAvLyAyLiBJZiBmZXRjaFBhcmFtc1x1MjAxOXMgcHJvY2VzcyByZXNwb25zZSBlbmQtb2YtYm9keSBpcyBub24tbnVsbCwgdGhlbiBydW4gZmV0Y2hQYXJhbXNcdTIwMTlzIHByb2Nlc3NcbiAgICAgIC8vICAgIHJlc3BvbnNlIGVuZC1vZi1ib2R5IGdpdmVuIHJlc3BvbnNlLlxuICAgICAgaWYgKGZldGNoUGFyYW1zLnByb2Nlc3NSZXNwb25zZUVuZE9mQm9keSAhPSBudWxsKSB7XG4gICAgICAgIHF1ZXVlTWljcm90YXNrKCgpID0+IGZldGNoUGFyYW1zLnByb2Nlc3NSZXNwb25zZUVuZE9mQm9keShyZXNwb25zZSkpXG4gICAgICB9XG5cbiAgICAgIC8vIDMuIElmIGZldGNoUGFyYW1zXHUyMDE5cyByZXF1ZXN0XHUyMDE5cyBpbml0aWF0b3IgdHlwZSBpcyBub24tbnVsbCBhbmQgZmV0Y2hQYXJhbXNcdTIwMTlzIHJlcXVlc3RcdTIwMTlzIGNsaWVudFx1MjAxOXNcbiAgICAgIC8vICAgIGdsb2JhbCBvYmplY3QgaXMgZmV0Y2hQYXJhbXNcdTIwMTlzIHRhc2sgZGVzdGluYXRpb24sIHRoZW4gcnVuIGZldGNoUGFyYW1zXHUyMDE5cyBjb250cm9sbGVyXHUyMDE5cyByZXBvcnRcbiAgICAgIC8vICAgIHRpbWluZyBzdGVwcyBnaXZlbiBmZXRjaFBhcmFtc1x1MjAxOXMgcmVxdWVzdFx1MjAxOXMgY2xpZW50XHUyMDE5cyBnbG9iYWwgb2JqZWN0LlxuICAgICAgaWYgKGZldGNoUGFyYW1zLnJlcXVlc3QuaW5pdGlhdG9yVHlwZSAhPSBudWxsKSB7XG4gICAgICAgIGZldGNoUGFyYW1zLmNvbnRyb2xsZXIucmVwb3J0VGltaW5nU3RlcHMoKVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIDUuIFF1ZXVlIGEgZmV0Y2ggdGFzayB0byBydW4gcHJvY2Vzc1Jlc3BvbnNlRW5kT2ZCb2R5VGFzayB3aXRoIGZldGNoUGFyYW1zXHUyMDE5cyB0YXNrIGRlc3RpbmF0aW9uXG4gICAgcXVldWVNaWNyb3Rhc2soKCkgPT4gcHJvY2Vzc1Jlc3BvbnNlRW5kT2ZCb2R5VGFzaygpKVxuICB9XG5cbiAgLy8gNC4gSWYgZmV0Y2hQYXJhbXNcdTIwMTlzIHByb2Nlc3MgcmVzcG9uc2UgaXMgbm9uLW51bGwsIHRoZW4gcXVldWUgYSBmZXRjaCB0YXNrIHRvIHJ1biBmZXRjaFBhcmFtc1x1MjAxOXNcbiAgLy8gICAgcHJvY2VzcyByZXNwb25zZSBnaXZlbiByZXNwb25zZSwgd2l0aCBmZXRjaFBhcmFtc1x1MjAxOXMgdGFzayBkZXN0aW5hdGlvbi5cbiAgaWYgKGZldGNoUGFyYW1zLnByb2Nlc3NSZXNwb25zZSAhPSBudWxsKSB7XG4gICAgcXVldWVNaWNyb3Rhc2soKCkgPT4ge1xuICAgICAgZmV0Y2hQYXJhbXMucHJvY2Vzc1Jlc3BvbnNlKHJlc3BvbnNlKVxuICAgICAgZmV0Y2hQYXJhbXMucHJvY2Vzc1Jlc3BvbnNlID0gbnVsbFxuICAgIH0pXG4gIH1cblxuICAvLyA1LiBMZXQgaW50ZXJuYWxSZXNwb25zZSBiZSByZXNwb25zZSwgaWYgcmVzcG9uc2UgaXMgYSBuZXR3b3JrIGVycm9yOyBvdGhlcndpc2UgcmVzcG9uc2VcdTIwMTlzIGludGVybmFsIHJlc3BvbnNlLlxuICBjb25zdCBpbnRlcm5hbFJlc3BvbnNlID0gcmVzcG9uc2UudHlwZSA9PT0gJ2Vycm9yJyA/IHJlc3BvbnNlIDogKHJlc3BvbnNlLmludGVybmFsUmVzcG9uc2UgPz8gcmVzcG9uc2UpXG5cbiAgLy8gNi4gSWYgaW50ZXJuYWxSZXNwb25zZVx1MjAxOXMgYm9keSBpcyBudWxsLCB0aGVuIHJ1biBwcm9jZXNzUmVzcG9uc2VFbmRPZkJvZHkuXG4gIC8vIDcuIE90aGVyd2lzZTpcbiAgaWYgKGludGVybmFsUmVzcG9uc2UuYm9keSA9PSBudWxsKSB7XG4gICAgcHJvY2Vzc1Jlc3BvbnNlRW5kT2ZCb2R5KClcbiAgfSBlbHNlIHtcbiAgICAvLyBtY29sbGluYTogYWxsIHRoZSBmb2xsb3dpbmcgc3RlcHMgb2YgdGhlIHNwZWNzIGFyZSBza2lwcGVkLlxuICAgIC8vIFRoZSBpbnRlcm5hbCB0cmFuc2Zvcm0gc3RyZWFtIGlzIG5vdCBuZWVkZWQuXG4gICAgLy8gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9ub2RlanMvdW5kaWNpL3B1bGwvMzA5MyNpc3N1ZWNvbW1lbnQtMjA1MDE5ODU0MVxuXG4gICAgLy8gMS4gTGV0IHRyYW5zZm9ybVN0cmVhbSBiZSBhIG5ldyBUcmFuc2Zvcm1TdHJlYW0uXG4gICAgLy8gMi4gTGV0IGlkZW50aXR5VHJhbnNmb3JtQWxnb3JpdGhtIGJlIGFuIGFsZ29yaXRobSB3aGljaCwgZ2l2ZW4gY2h1bmssIGVucXVldWVzIGNodW5rIGluIHRyYW5zZm9ybVN0cmVhbS5cbiAgICAvLyAzLiBTZXQgdXAgdHJhbnNmb3JtU3RyZWFtIHdpdGggdHJhbnNmb3JtQWxnb3JpdGhtIHNldCB0byBpZGVudGl0eVRyYW5zZm9ybUFsZ29yaXRobSBhbmQgZmx1c2hBbGdvcml0aG1cbiAgICAvLyAgICBzZXQgdG8gcHJvY2Vzc1Jlc3BvbnNlRW5kT2ZCb2R5LlxuICAgIC8vIDQuIFNldCBpbnRlcm5hbFJlc3BvbnNlXHUyMDE5cyBib2R5XHUyMDE5cyBzdHJlYW0gdG8gdGhlIHJlc3VsdCBvZiBpbnRlcm5hbFJlc3BvbnNlXHUyMDE5cyBib2R5XHUyMDE5cyBzdHJlYW0gcGlwZWQgdGhyb3VnaCB0cmFuc2Zvcm1TdHJlYW0uXG5cbiAgICBmaW5pc2hlZChpbnRlcm5hbFJlc3BvbnNlLmJvZHkuc3RyZWFtLCAoKSA9PiB7XG4gICAgICBwcm9jZXNzUmVzcG9uc2VFbmRPZkJvZHkoKVxuICAgIH0pXG4gIH1cbn1cblxuLy8gaHR0cHM6Ly9mZXRjaC5zcGVjLndoYXR3Zy5vcmcvI2h0dHAtZmV0Y2hcbmFzeW5jIGZ1bmN0aW9uIGh0dHBGZXRjaCAoZmV0Y2hQYXJhbXMpIHtcbiAgLy8gMS4gTGV0IHJlcXVlc3QgYmUgZmV0Y2hQYXJhbXNcdTIwMTlzIHJlcXVlc3QuXG4gIGNvbnN0IHJlcXVlc3QgPSBmZXRjaFBhcmFtcy5yZXF1ZXN0XG5cbiAgLy8gMi4gTGV0IHJlc3BvbnNlIGJlIG51bGwuXG4gIGxldCByZXNwb25zZSA9IG51bGxcblxuICAvLyAzLiBMZXQgYWN0dWFsUmVzcG9uc2UgYmUgbnVsbC5cbiAgbGV0IGFjdHVhbFJlc3BvbnNlID0gbnVsbFxuXG4gIC8vIDQuIExldCB0aW1pbmdJbmZvIGJlIGZldGNoUGFyYW1zXHUyMDE5cyB0aW1pbmcgaW5mby5cbiAgY29uc3QgdGltaW5nSW5mbyA9IGZldGNoUGFyYW1zLnRpbWluZ0luZm9cblxuICAvLyA1LiBJZiByZXF1ZXN0XHUyMDE5cyBzZXJ2aWNlLXdvcmtlcnMgbW9kZSBpcyBcImFsbFwiLCB0aGVuOlxuICBpZiAocmVxdWVzdC5zZXJ2aWNlV29ya2VycyA9PT0gJ2FsbCcpIHtcbiAgICAvLyBUT0RPXG4gIH1cblxuICAvLyA2LiBJZiByZXNwb25zZSBpcyBudWxsLCB0aGVuOlxuICBpZiAocmVzcG9uc2UgPT09IG51bGwpIHtcbiAgICAvLyAxLiBJZiBtYWtlQ09SU1ByZWZsaWdodCBpcyB0cnVlIGFuZCBvbmUgb2YgdGhlc2UgY29uZGl0aW9ucyBpcyB0cnVlOlxuICAgIC8vIFRPRE9cblxuICAgIC8vIDIuIElmIHJlcXVlc3RcdTIwMTlzIHJlZGlyZWN0IG1vZGUgaXMgXCJmb2xsb3dcIiwgdGhlbiBzZXQgcmVxdWVzdFx1MjAxOXNcbiAgICAvLyBzZXJ2aWNlLXdvcmtlcnMgbW9kZSB0byBcIm5vbmVcIi5cbiAgICBpZiAocmVxdWVzdC5yZWRpcmVjdCA9PT0gJ2ZvbGxvdycpIHtcbiAgICAgIHJlcXVlc3Quc2VydmljZVdvcmtlcnMgPSAnbm9uZSdcbiAgICB9XG5cbiAgICAvLyAzLiBTZXQgcmVzcG9uc2UgYW5kIGFjdHVhbFJlc3BvbnNlIHRvIHRoZSByZXN1bHQgb2YgcnVubmluZ1xuICAgIC8vIEhUVFAtbmV0d29yay1vci1jYWNoZSBmZXRjaCBnaXZlbiBmZXRjaFBhcmFtcy5cbiAgICBhY3R1YWxSZXNwb25zZSA9IHJlc3BvbnNlID0gYXdhaXQgaHR0cE5ldHdvcmtPckNhY2hlRmV0Y2goZmV0Y2hQYXJhbXMpXG5cbiAgICAvLyA0LiBJZiByZXF1ZXN0XHUyMDE5cyByZXNwb25zZSB0YWludGluZyBpcyBcImNvcnNcIiBhbmQgYSBDT1JTIGNoZWNrXG4gICAgLy8gZm9yIHJlcXVlc3QgYW5kIHJlc3BvbnNlIHJldHVybnMgZmFpbHVyZSwgdGhlbiByZXR1cm4gYSBuZXR3b3JrIGVycm9yLlxuICAgIGlmIChcbiAgICAgIHJlcXVlc3QucmVzcG9uc2VUYWludGluZyA9PT0gJ2NvcnMnICYmXG4gICAgICBjb3JzQ2hlY2socmVxdWVzdCwgcmVzcG9uc2UpID09PSAnZmFpbHVyZSdcbiAgICApIHtcbiAgICAgIHJldHVybiBtYWtlTmV0d29ya0Vycm9yKCdjb3JzIGZhaWx1cmUnKVxuICAgIH1cblxuICAgIC8vIDUuIElmIHRoZSBUQU8gY2hlY2sgZm9yIHJlcXVlc3QgYW5kIHJlc3BvbnNlIHJldHVybnMgZmFpbHVyZSwgdGhlbiBzZXRcbiAgICAvLyByZXF1ZXN0XHUyMDE5cyB0aW1pbmcgYWxsb3cgZmFpbGVkIGZsYWcuXG4gICAgaWYgKFRBT0NoZWNrKHJlcXVlc3QsIHJlc3BvbnNlKSA9PT0gJ2ZhaWx1cmUnKSB7XG4gICAgICByZXF1ZXN0LnRpbWluZ0FsbG93RmFpbGVkID0gdHJ1ZVxuICAgIH1cbiAgfVxuXG4gIC8vIDcuIElmIGVpdGhlciByZXF1ZXN0XHUyMDE5cyByZXNwb25zZSB0YWludGluZyBvciByZXNwb25zZVx1MjAxOXMgdHlwZVxuICAvLyBpcyBcIm9wYXF1ZVwiLCBhbmQgdGhlIGNyb3NzLW9yaWdpbiByZXNvdXJjZSBwb2xpY3kgY2hlY2sgd2l0aFxuICAvLyByZXF1ZXN0XHUyMDE5cyBvcmlnaW4sIHJlcXVlc3RcdTIwMTlzIGNsaWVudCwgcmVxdWVzdFx1MjAxOXMgZGVzdGluYXRpb24sXG4gIC8vIGFuZCBhY3R1YWxSZXNwb25zZSByZXR1cm5zIGJsb2NrZWQsIHRoZW4gcmV0dXJuIGEgbmV0d29yayBlcnJvci5cbiAgaWYgKFxuICAgIChyZXF1ZXN0LnJlc3BvbnNlVGFpbnRpbmcgPT09ICdvcGFxdWUnIHx8IHJlc3BvbnNlLnR5cGUgPT09ICdvcGFxdWUnKSAmJlxuICAgIGNyb3NzT3JpZ2luUmVzb3VyY2VQb2xpY3lDaGVjayhcbiAgICAgIHJlcXVlc3Qub3JpZ2luLFxuICAgICAgcmVxdWVzdC5jbGllbnQsXG4gICAgICByZXF1ZXN0LmRlc3RpbmF0aW9uLFxuICAgICAgYWN0dWFsUmVzcG9uc2VcbiAgICApID09PSAnYmxvY2tlZCdcbiAgKSB7XG4gICAgcmV0dXJuIG1ha2VOZXR3b3JrRXJyb3IoJ2Jsb2NrZWQnKVxuICB9XG5cbiAgLy8gOC4gSWYgYWN0dWFsUmVzcG9uc2VcdTIwMTlzIHN0YXR1cyBpcyBhIHJlZGlyZWN0IHN0YXR1cywgdGhlbjpcbiAgaWYgKHJlZGlyZWN0U3RhdHVzU2V0LmhhcyhhY3R1YWxSZXNwb25zZS5zdGF0dXMpKSB7XG4gICAgLy8gMS4gSWYgYWN0dWFsUmVzcG9uc2VcdTIwMTlzIHN0YXR1cyBpcyBub3QgMzAzLCByZXF1ZXN0XHUyMDE5cyBib2R5IGlzIG5vdCBudWxsLFxuICAgIC8vIGFuZCB0aGUgY29ubmVjdGlvbiB1c2VzIEhUVFAvMiwgdGhlbiB1c2VyIGFnZW50cyBtYXksIGFuZCBhcmUgZXZlblxuICAgIC8vIGVuY291cmFnZWQgdG8sIHRyYW5zbWl0IGFuIFJTVF9TVFJFQU0gZnJhbWUuXG4gICAgLy8gU2VlLCBodHRwczovL2dpdGh1Yi5jb20vd2hhdHdnL2ZldGNoL2lzc3Vlcy8xMjg4XG4gICAgaWYgKHJlcXVlc3QucmVkaXJlY3QgIT09ICdtYW51YWwnKSB7XG4gICAgICBmZXRjaFBhcmFtcy5jb250cm9sbGVyLmNvbm5lY3Rpb24uZGVzdHJveSh1bmRlZmluZWQsIGZhbHNlKVxuICAgIH1cblxuICAgIC8vIDIuIFN3aXRjaCBvbiByZXF1ZXN0XHUyMDE5cyByZWRpcmVjdCBtb2RlOlxuICAgIGlmIChyZXF1ZXN0LnJlZGlyZWN0ID09PSAnZXJyb3InKSB7XG4gICAgICAvLyBTZXQgcmVzcG9uc2UgdG8gYSBuZXR3b3JrIGVycm9yLlxuICAgICAgcmVzcG9uc2UgPSBtYWtlTmV0d29ya0Vycm9yKCd1bmV4cGVjdGVkIHJlZGlyZWN0JylcbiAgICB9IGVsc2UgaWYgKHJlcXVlc3QucmVkaXJlY3QgPT09ICdtYW51YWwnKSB7XG4gICAgICAvLyBTZXQgcmVzcG9uc2UgdG8gYW4gb3BhcXVlLXJlZGlyZWN0IGZpbHRlcmVkIHJlc3BvbnNlIHdob3NlIGludGVybmFsXG4gICAgICAvLyByZXNwb25zZSBpcyBhY3R1YWxSZXNwb25zZS5cbiAgICAgIC8vIE5PVEUoc3BlYyk6IE9uIHRoZSB3ZWIgdGhpcyB3b3VsZCByZXR1cm4gYW4gYG9wYXF1ZXJlZGlyZWN0YCByZXNwb25zZSxcbiAgICAgIC8vIGJ1dCB0aGF0IGRvZXNuJ3QgbWFrZSBzZW5zZSBzZXJ2ZXIgc2lkZS5cbiAgICAgIC8vIFNlZSBodHRwczovL2dpdGh1Yi5jb20vbm9kZWpzL3VuZGljaS9pc3N1ZXMvMTE5My5cbiAgICAgIHJlc3BvbnNlID0gYWN0dWFsUmVzcG9uc2VcbiAgICB9IGVsc2UgaWYgKHJlcXVlc3QucmVkaXJlY3QgPT09ICdmb2xsb3cnKSB7XG4gICAgICAvLyBTZXQgcmVzcG9uc2UgdG8gdGhlIHJlc3VsdCBvZiBydW5uaW5nIEhUVFAtcmVkaXJlY3QgZmV0Y2ggZ2l2ZW5cbiAgICAgIC8vIGZldGNoUGFyYW1zIGFuZCByZXNwb25zZS5cbiAgICAgIHJlc3BvbnNlID0gYXdhaXQgaHR0cFJlZGlyZWN0RmV0Y2goZmV0Y2hQYXJhbXMsIHJlc3BvbnNlKVxuICAgIH0gZWxzZSB7XG4gICAgICBhc3NlcnQoZmFsc2UpXG4gICAgfVxuICB9XG5cbiAgLy8gOS4gU2V0IHJlc3BvbnNlXHUyMDE5cyB0aW1pbmcgaW5mbyB0byB0aW1pbmdJbmZvLlxuICByZXNwb25zZS50aW1pbmdJbmZvID0gdGltaW5nSW5mb1xuXG4gIC8vIDEwLiBSZXR1cm4gcmVzcG9uc2UuXG4gIHJldHVybiByZXNwb25zZVxufVxuXG4vLyBodHRwczovL2ZldGNoLnNwZWMud2hhdHdnLm9yZy8jaHR0cC1yZWRpcmVjdC1mZXRjaFxuZnVuY3Rpb24gaHR0cFJlZGlyZWN0RmV0Y2ggKGZldGNoUGFyYW1zLCByZXNwb25zZSkge1xuICAvLyAxLiBMZXQgcmVxdWVzdCBiZSBmZXRjaFBhcmFtc1x1MjAxOXMgcmVxdWVzdC5cbiAgY29uc3QgcmVxdWVzdCA9IGZldGNoUGFyYW1zLnJlcXVlc3RcblxuICAvLyAyLiBMZXQgYWN0dWFsUmVzcG9uc2UgYmUgcmVzcG9uc2UsIGlmIHJlc3BvbnNlIGlzIG5vdCBhIGZpbHRlcmVkIHJlc3BvbnNlLFxuICAvLyBhbmQgcmVzcG9uc2VcdTIwMTlzIGludGVybmFsIHJlc3BvbnNlIG90aGVyd2lzZS5cbiAgY29uc3QgYWN0dWFsUmVzcG9uc2UgPSByZXNwb25zZS5pbnRlcm5hbFJlc3BvbnNlXG4gICAgPyByZXNwb25zZS5pbnRlcm5hbFJlc3BvbnNlXG4gICAgOiByZXNwb25zZVxuXG4gIC8vIDMuIExldCBsb2NhdGlvblVSTCBiZSBhY3R1YWxSZXNwb25zZVx1MjAxOXMgbG9jYXRpb24gVVJMIGdpdmVuIHJlcXVlc3RcdTIwMTlzIGN1cnJlbnRcbiAgLy8gVVJMXHUyMDE5cyBmcmFnbWVudC5cbiAgbGV0IGxvY2F0aW9uVVJMXG5cbiAgdHJ5IHtcbiAgICBsb2NhdGlvblVSTCA9IHJlc3BvbnNlTG9jYXRpb25VUkwoXG4gICAgICBhY3R1YWxSZXNwb25zZSxcbiAgICAgIHJlcXVlc3RDdXJyZW50VVJMKHJlcXVlc3QpLmhhc2hcbiAgICApXG5cbiAgICAvLyA0LiBJZiBsb2NhdGlvblVSTCBpcyBudWxsLCB0aGVuIHJldHVybiByZXNwb25zZS5cbiAgICBpZiAobG9jYXRpb25VUkwgPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIHJlc3BvbnNlXG4gICAgfVxuICB9IGNhdGNoIChlcnIpIHtcbiAgICAvLyA1LiBJZiBsb2NhdGlvblVSTCBpcyBmYWlsdXJlLCB0aGVuIHJldHVybiBhIG5ldHdvcmsgZXJyb3IuXG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShtYWtlTmV0d29ya0Vycm9yKGVycikpXG4gIH1cblxuICAvLyA2LiBJZiBsb2NhdGlvblVSTFx1MjAxOXMgc2NoZW1lIGlzIG5vdCBhbiBIVFRQKFMpIHNjaGVtZSwgdGhlbiByZXR1cm4gYSBuZXR3b3JrXG4gIC8vIGVycm9yLlxuICBpZiAoIXVybElzSHR0cEh0dHBzU2NoZW1lKGxvY2F0aW9uVVJMKSkge1xuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUobWFrZU5ldHdvcmtFcnJvcignVVJMIHNjaGVtZSBtdXN0IGJlIGEgSFRUUChTKSBzY2hlbWUnKSlcbiAgfVxuXG4gIC8vIDcuIElmIHJlcXVlc3RcdTIwMTlzIHJlZGlyZWN0IGNvdW50IGlzIDIwLCB0aGVuIHJldHVybiBhIG5ldHdvcmsgZXJyb3IuXG4gIGlmIChyZXF1ZXN0LnJlZGlyZWN0Q291bnQgPT09IDIwKSB7XG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShtYWtlTmV0d29ya0Vycm9yKCdyZWRpcmVjdCBjb3VudCBleGNlZWRlZCcpKVxuICB9XG5cbiAgLy8gOC4gSW5jcmVhc2UgcmVxdWVzdFx1MjAxOXMgcmVkaXJlY3QgY291bnQgYnkgMS5cbiAgcmVxdWVzdC5yZWRpcmVjdENvdW50ICs9IDFcblxuICAvLyA5LiBJZiByZXF1ZXN0XHUyMDE5cyBtb2RlIGlzIFwiY29yc1wiLCBsb2NhdGlvblVSTCBpbmNsdWRlcyBjcmVkZW50aWFscywgYW5kXG4gIC8vIHJlcXVlc3RcdTIwMTlzIG9yaWdpbiBpcyBub3Qgc2FtZSBvcmlnaW4gd2l0aCBsb2NhdGlvblVSTFx1MjAxOXMgb3JpZ2luLCB0aGVuIHJldHVyblxuICAvLyAgYSBuZXR3b3JrIGVycm9yLlxuICBpZiAoXG4gICAgcmVxdWVzdC5tb2RlID09PSAnY29ycycgJiZcbiAgICAobG9jYXRpb25VUkwudXNlcm5hbWUgfHwgbG9jYXRpb25VUkwucGFzc3dvcmQpICYmXG4gICAgIXNhbWVPcmlnaW4ocmVxdWVzdCwgbG9jYXRpb25VUkwpXG4gICkge1xuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUobWFrZU5ldHdvcmtFcnJvcignY3Jvc3Mgb3JpZ2luIG5vdCBhbGxvd2VkIGZvciByZXF1ZXN0IG1vZGUgXCJjb3JzXCInKSlcbiAgfVxuXG4gIC8vIDEwLiBJZiByZXF1ZXN0XHUyMDE5cyByZXNwb25zZSB0YWludGluZyBpcyBcImNvcnNcIiBhbmQgbG9jYXRpb25VUkwgaW5jbHVkZXNcbiAgLy8gY3JlZGVudGlhbHMsIHRoZW4gcmV0dXJuIGEgbmV0d29yayBlcnJvci5cbiAgaWYgKFxuICAgIHJlcXVlc3QucmVzcG9uc2VUYWludGluZyA9PT0gJ2NvcnMnICYmXG4gICAgKGxvY2F0aW9uVVJMLnVzZXJuYW1lIHx8IGxvY2F0aW9uVVJMLnBhc3N3b3JkKVxuICApIHtcbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKG1ha2VOZXR3b3JrRXJyb3IoXG4gICAgICAnVVJMIGNhbm5vdCBjb250YWluIGNyZWRlbnRpYWxzIGZvciByZXF1ZXN0IG1vZGUgXCJjb3JzXCInXG4gICAgKSlcbiAgfVxuXG4gIC8vIDExLiBJZiBhY3R1YWxSZXNwb25zZVx1MjAxOXMgc3RhdHVzIGlzIG5vdCAzMDMsIHJlcXVlc3RcdTIwMTlzIGJvZHkgaXMgbm9uLW51bGwsXG4gIC8vIGFuZCByZXF1ZXN0XHUyMDE5cyBib2R5XHUyMDE5cyBzb3VyY2UgaXMgbnVsbCwgdGhlbiByZXR1cm4gYSBuZXR3b3JrIGVycm9yLlxuICBpZiAoXG4gICAgYWN0dWFsUmVzcG9uc2Uuc3RhdHVzICE9PSAzMDMgJiZcbiAgICByZXF1ZXN0LmJvZHkgIT0gbnVsbCAmJlxuICAgIHJlcXVlc3QuYm9keS5zb3VyY2UgPT0gbnVsbFxuICApIHtcbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKG1ha2VOZXR3b3JrRXJyb3IoKSlcbiAgfVxuXG4gIC8vIDEyLiBJZiBvbmUgb2YgdGhlIGZvbGxvd2luZyBpcyB0cnVlXG4gIC8vIC0gYWN0dWFsUmVzcG9uc2VcdTIwMTlzIHN0YXR1cyBpcyAzMDEgb3IgMzAyIGFuZCByZXF1ZXN0XHUyMDE5cyBtZXRob2QgaXMgYFBPU1RgXG4gIC8vIC0gYWN0dWFsUmVzcG9uc2VcdTIwMTlzIHN0YXR1cyBpcyAzMDMgYW5kIHJlcXVlc3RcdTIwMTlzIG1ldGhvZCBpcyBub3QgYEdFVGAgb3IgYEhFQURgXG4gIGlmIChcbiAgICAoWzMwMSwgMzAyXS5pbmNsdWRlcyhhY3R1YWxSZXNwb25zZS5zdGF0dXMpICYmIHJlcXVlc3QubWV0aG9kID09PSAnUE9TVCcpIHx8XG4gICAgKGFjdHVhbFJlc3BvbnNlLnN0YXR1cyA9PT0gMzAzICYmXG4gICAgICAhR0VUX09SX0hFQUQuaW5jbHVkZXMocmVxdWVzdC5tZXRob2QpKVxuICApIHtcbiAgICAvLyB0aGVuOlxuICAgIC8vIDEuIFNldCByZXF1ZXN0XHUyMDE5cyBtZXRob2QgdG8gYEdFVGAgYW5kIHJlcXVlc3RcdTIwMTlzIGJvZHkgdG8gbnVsbC5cbiAgICByZXF1ZXN0Lm1ldGhvZCA9ICdHRVQnXG4gICAgcmVxdWVzdC5ib2R5ID0gbnVsbFxuXG4gICAgLy8gMi4gRm9yIGVhY2ggaGVhZGVyTmFtZSBvZiByZXF1ZXN0LWJvZHktaGVhZGVyIG5hbWUsIGRlbGV0ZSBoZWFkZXJOYW1lIGZyb21cbiAgICAvLyByZXF1ZXN0XHUyMDE5cyBoZWFkZXIgbGlzdC5cbiAgICBmb3IgKGNvbnN0IGhlYWRlck5hbWUgb2YgcmVxdWVzdEJvZHlIZWFkZXIpIHtcbiAgICAgIHJlcXVlc3QuaGVhZGVyc0xpc3QuZGVsZXRlKGhlYWRlck5hbWUpXG4gICAgfVxuICB9XG5cbiAgLy8gMTMuIElmIHJlcXVlc3RcdTIwMTlzIGN1cnJlbnQgVVJMXHUyMDE5cyBvcmlnaW4gaXMgbm90IHNhbWUgb3JpZ2luIHdpdGggbG9jYXRpb25VUkxcdTIwMTlzXG4gIC8vICAgICBvcmlnaW4sIHRoZW4gZm9yIGVhY2ggaGVhZGVyTmFtZSBvZiBDT1JTIG5vbi13aWxkY2FyZCByZXF1ZXN0LWhlYWRlciBuYW1lLFxuICAvLyAgICAgZGVsZXRlIGhlYWRlck5hbWUgZnJvbSByZXF1ZXN0XHUyMDE5cyBoZWFkZXIgbGlzdC5cbiAgaWYgKCFzYW1lT3JpZ2luKHJlcXVlc3RDdXJyZW50VVJMKHJlcXVlc3QpLCBsb2NhdGlvblVSTCkpIHtcbiAgICAvLyBodHRwczovL2ZldGNoLnNwZWMud2hhdHdnLm9yZy8jY29ycy1ub24td2lsZGNhcmQtcmVxdWVzdC1oZWFkZXItbmFtZVxuICAgIHJlcXVlc3QuaGVhZGVyc0xpc3QuZGVsZXRlKCdhdXRob3JpemF0aW9uJywgdHJ1ZSlcblxuICAgIC8vIGh0dHBzOi8vZmV0Y2guc3BlYy53aGF0d2cub3JnLyNhdXRoZW50aWNhdGlvbi1lbnRyaWVzXG4gICAgcmVxdWVzdC5oZWFkZXJzTGlzdC5kZWxldGUoJ3Byb3h5LWF1dGhvcml6YXRpb24nLCB0cnVlKVxuXG4gICAgLy8gXCJDb29raWVcIiBhbmQgXCJIb3N0XCIgYXJlIGZvcmJpZGRlbiByZXF1ZXN0LWhlYWRlcnMsIHdoaWNoIHVuZGljaSBkb2Vzbid0IGltcGxlbWVudC5cbiAgICByZXF1ZXN0LmhlYWRlcnNMaXN0LmRlbGV0ZSgnY29va2llJywgdHJ1ZSlcbiAgICByZXF1ZXN0LmhlYWRlcnNMaXN0LmRlbGV0ZSgnaG9zdCcsIHRydWUpXG4gIH1cblxuICAvLyAxNC4gSWYgcmVxdWVzdFx1MjAxOXMgYm9keSBpcyBub24tbnVsbCwgdGhlbiBzZXQgcmVxdWVzdFx1MjAxOXMgYm9keSB0byB0aGUgZmlyc3QgcmV0dXJuXG4gIC8vIHZhbHVlIG9mIHNhZmVseSBleHRyYWN0aW5nIHJlcXVlc3RcdTIwMTlzIGJvZHlcdTIwMTlzIHNvdXJjZS5cbiAgaWYgKHJlcXVlc3QuYm9keSAhPSBudWxsKSB7XG4gICAgYXNzZXJ0KHJlcXVlc3QuYm9keS5zb3VyY2UgIT0gbnVsbClcbiAgICByZXF1ZXN0LmJvZHkgPSBzYWZlbHlFeHRyYWN0Qm9keShyZXF1ZXN0LmJvZHkuc291cmNlKVswXVxuICB9XG5cbiAgLy8gMTUuIExldCB0aW1pbmdJbmZvIGJlIGZldGNoUGFyYW1zXHUyMDE5cyB0aW1pbmcgaW5mby5cbiAgY29uc3QgdGltaW5nSW5mbyA9IGZldGNoUGFyYW1zLnRpbWluZ0luZm9cblxuICAvLyAxNi4gU2V0IHRpbWluZ0luZm9cdTIwMTlzIHJlZGlyZWN0IGVuZCB0aW1lIGFuZCBwb3N0LXJlZGlyZWN0IHN0YXJ0IHRpbWUgdG8gdGhlXG4gIC8vIGNvYXJzZW5lZCBzaGFyZWQgY3VycmVudCB0aW1lIGdpdmVuIGZldGNoUGFyYW1zXHUyMDE5cyBjcm9zcy1vcmlnaW4gaXNvbGF0ZWRcbiAgLy8gY2FwYWJpbGl0eS5cbiAgdGltaW5nSW5mby5yZWRpcmVjdEVuZFRpbWUgPSB0aW1pbmdJbmZvLnBvc3RSZWRpcmVjdFN0YXJ0VGltZSA9XG4gICAgY29hcnNlbmVkU2hhcmVkQ3VycmVudFRpbWUoZmV0Y2hQYXJhbXMuY3Jvc3NPcmlnaW5Jc29sYXRlZENhcGFiaWxpdHkpXG5cbiAgLy8gMTcuIElmIHRpbWluZ0luZm9cdTIwMTlzIHJlZGlyZWN0IHN0YXJ0IHRpbWUgaXMgMCwgdGhlbiBzZXQgdGltaW5nSW5mb1x1MjAxOXNcbiAgLy8gIHJlZGlyZWN0IHN0YXJ0IHRpbWUgdG8gdGltaW5nSW5mb1x1MjAxOXMgc3RhcnQgdGltZS5cbiAgaWYgKHRpbWluZ0luZm8ucmVkaXJlY3RTdGFydFRpbWUgPT09IDApIHtcbiAgICB0aW1pbmdJbmZvLnJlZGlyZWN0U3RhcnRUaW1lID0gdGltaW5nSW5mby5zdGFydFRpbWVcbiAgfVxuXG4gIC8vIDE4LiBBcHBlbmQgbG9jYXRpb25VUkwgdG8gcmVxdWVzdFx1MjAxOXMgVVJMIGxpc3QuXG4gIHJlcXVlc3QudXJsTGlzdC5wdXNoKGxvY2F0aW9uVVJMKVxuXG4gIC8vIDE5LiBJbnZva2Ugc2V0IHJlcXVlc3RcdTIwMTlzIHJlZmVycmVyIHBvbGljeSBvbiByZWRpcmVjdCBvbiByZXF1ZXN0IGFuZFxuICAvLyBhY3R1YWxSZXNwb25zZS5cbiAgc2V0UmVxdWVzdFJlZmVycmVyUG9saWN5T25SZWRpcmVjdChyZXF1ZXN0LCBhY3R1YWxSZXNwb25zZSlcblxuICAvLyAyMC4gUmV0dXJuIHRoZSByZXN1bHQgb2YgcnVubmluZyBtYWluIGZldGNoIGdpdmVuIGZldGNoUGFyYW1zIGFuZCB0cnVlLlxuICByZXR1cm4gbWFpbkZldGNoKGZldGNoUGFyYW1zLCB0cnVlKVxufVxuXG4vLyBodHRwczovL2ZldGNoLnNwZWMud2hhdHdnLm9yZy8jaHR0cC1uZXR3b3JrLW9yLWNhY2hlLWZldGNoXG5hc3luYyBmdW5jdGlvbiBodHRwTmV0d29ya09yQ2FjaGVGZXRjaCAoXG4gIGZldGNoUGFyYW1zLFxuICBpc0F1dGhlbnRpY2F0aW9uRmV0Y2ggPSBmYWxzZSxcbiAgaXNOZXdDb25uZWN0aW9uRmV0Y2ggPSBmYWxzZVxuKSB7XG4gIC8vIDEuIExldCByZXF1ZXN0IGJlIGZldGNoUGFyYW1zXHUyMDE5cyByZXF1ZXN0LlxuICBjb25zdCByZXF1ZXN0ID0gZmV0Y2hQYXJhbXMucmVxdWVzdFxuXG4gIC8vIDIuIExldCBodHRwRmV0Y2hQYXJhbXMgYmUgbnVsbC5cbiAgbGV0IGh0dHBGZXRjaFBhcmFtcyA9IG51bGxcblxuICAvLyAzLiBMZXQgaHR0cFJlcXVlc3QgYmUgbnVsbC5cbiAgbGV0IGh0dHBSZXF1ZXN0ID0gbnVsbFxuXG4gIC8vIDQuIExldCByZXNwb25zZSBiZSBudWxsLlxuICBsZXQgcmVzcG9uc2UgPSBudWxsXG5cbiAgLy8gNS4gTGV0IHN0b3JlZFJlc3BvbnNlIGJlIG51bGwuXG4gIC8vIFRPRE86IGNhY2hlXG5cbiAgLy8gNi4gTGV0IGh0dHBDYWNoZSBiZSBudWxsLlxuICBjb25zdCBodHRwQ2FjaGUgPSBudWxsXG5cbiAgLy8gNy4gTGV0IHRoZSByZXZhbGlkYXRpbmdGbGFnIGJlIHVuc2V0LlxuICBjb25zdCByZXZhbGlkYXRpbmdGbGFnID0gZmFsc2VcblxuICAvLyA4LiBSdW4gdGhlc2Ugc3RlcHMsIGJ1dCBhYm9ydCB3aGVuIHRoZSBvbmdvaW5nIGZldGNoIGlzIHRlcm1pbmF0ZWQ6XG5cbiAgLy8gICAgMS4gSWYgcmVxdWVzdFx1MjAxOXMgd2luZG93IGlzIFwibm8td2luZG93XCIgYW5kIHJlcXVlc3RcdTIwMTlzIHJlZGlyZWN0IG1vZGUgaXNcbiAgLy8gICAgXCJlcnJvclwiLCB0aGVuIHNldCBodHRwRmV0Y2hQYXJhbXMgdG8gZmV0Y2hQYXJhbXMgYW5kIGh0dHBSZXF1ZXN0IHRvXG4gIC8vICAgIHJlcXVlc3QuXG4gIGlmIChyZXF1ZXN0LndpbmRvdyA9PT0gJ25vLXdpbmRvdycgJiYgcmVxdWVzdC5yZWRpcmVjdCA9PT0gJ2Vycm9yJykge1xuICAgIGh0dHBGZXRjaFBhcmFtcyA9IGZldGNoUGFyYW1zXG4gICAgaHR0cFJlcXVlc3QgPSByZXF1ZXN0XG4gIH0gZWxzZSB7XG4gICAgLy8gT3RoZXJ3aXNlOlxuXG4gICAgLy8gMS4gU2V0IGh0dHBSZXF1ZXN0IHRvIGEgY2xvbmUgb2YgcmVxdWVzdC5cbiAgICBodHRwUmVxdWVzdCA9IGNsb25lUmVxdWVzdChyZXF1ZXN0KVxuXG4gICAgLy8gMi4gU2V0IGh0dHBGZXRjaFBhcmFtcyB0byBhIGNvcHkgb2YgZmV0Y2hQYXJhbXMuXG4gICAgaHR0cEZldGNoUGFyYW1zID0geyAuLi5mZXRjaFBhcmFtcyB9XG5cbiAgICAvLyAzLiBTZXQgaHR0cEZldGNoUGFyYW1zXHUyMDE5cyByZXF1ZXN0IHRvIGh0dHBSZXF1ZXN0LlxuICAgIGh0dHBGZXRjaFBhcmFtcy5yZXF1ZXN0ID0gaHR0cFJlcXVlc3RcbiAgfVxuXG4gIC8vICAgIDMuIExldCBpbmNsdWRlQ3JlZGVudGlhbHMgYmUgdHJ1ZSBpZiBvbmUgb2ZcbiAgY29uc3QgaW5jbHVkZUNyZWRlbnRpYWxzID1cbiAgICByZXF1ZXN0LmNyZWRlbnRpYWxzID09PSAnaW5jbHVkZScgfHxcbiAgICAocmVxdWVzdC5jcmVkZW50aWFscyA9PT0gJ3NhbWUtb3JpZ2luJyAmJlxuICAgICAgcmVxdWVzdC5yZXNwb25zZVRhaW50aW5nID09PSAnYmFzaWMnKVxuXG4gIC8vICAgIDQuIExldCBjb250ZW50TGVuZ3RoIGJlIGh0dHBSZXF1ZXN0XHUyMDE5cyBib2R5XHUyMDE5cyBsZW5ndGgsIGlmIGh0dHBSZXF1ZXN0XHUyMDE5c1xuICAvLyAgICBib2R5IGlzIG5vbi1udWxsOyBvdGhlcndpc2UgbnVsbC5cbiAgY29uc3QgY29udGVudExlbmd0aCA9IGh0dHBSZXF1ZXN0LmJvZHkgPyBodHRwUmVxdWVzdC5ib2R5Lmxlbmd0aCA6IG51bGxcblxuICAvLyAgICA1LiBMZXQgY29udGVudExlbmd0aEhlYWRlclZhbHVlIGJlIG51bGwuXG4gIGxldCBjb250ZW50TGVuZ3RoSGVhZGVyVmFsdWUgPSBudWxsXG5cbiAgLy8gICAgNi4gSWYgaHR0cFJlcXVlc3RcdTIwMTlzIGJvZHkgaXMgbnVsbCBhbmQgaHR0cFJlcXVlc3RcdTIwMTlzIG1ldGhvZCBpcyBgUE9TVGAgb3JcbiAgLy8gICAgYFBVVGAsIHRoZW4gc2V0IGNvbnRlbnRMZW5ndGhIZWFkZXJWYWx1ZSB0byBgMGAuXG4gIGlmIChcbiAgICBodHRwUmVxdWVzdC5ib2R5ID09IG51bGwgJiZcbiAgICBbJ1BPU1QnLCAnUFVUJ10uaW5jbHVkZXMoaHR0cFJlcXVlc3QubWV0aG9kKVxuICApIHtcbiAgICBjb250ZW50TGVuZ3RoSGVhZGVyVmFsdWUgPSAnMCdcbiAgfVxuXG4gIC8vICAgIDcuIElmIGNvbnRlbnRMZW5ndGggaXMgbm9uLW51bGwsIHRoZW4gc2V0IGNvbnRlbnRMZW5ndGhIZWFkZXJWYWx1ZSB0b1xuICAvLyAgICBjb250ZW50TGVuZ3RoLCBzZXJpYWxpemVkIGFuZCBpc29tb3JwaGljIGVuY29kZWQuXG4gIGlmIChjb250ZW50TGVuZ3RoICE9IG51bGwpIHtcbiAgICBjb250ZW50TGVuZ3RoSGVhZGVyVmFsdWUgPSBpc29tb3JwaGljRW5jb2RlKGAke2NvbnRlbnRMZW5ndGh9YClcbiAgfVxuXG4gIC8vICAgIDguIElmIGNvbnRlbnRMZW5ndGhIZWFkZXJWYWx1ZSBpcyBub24tbnVsbCwgdGhlbiBhcHBlbmRcbiAgLy8gICAgYENvbnRlbnQtTGVuZ3RoYC9jb250ZW50TGVuZ3RoSGVhZGVyVmFsdWUgdG8gaHR0cFJlcXVlc3RcdTIwMTlzIGhlYWRlclxuICAvLyAgICBsaXN0LlxuICBpZiAoY29udGVudExlbmd0aEhlYWRlclZhbHVlICE9IG51bGwpIHtcbiAgICBodHRwUmVxdWVzdC5oZWFkZXJzTGlzdC5hcHBlbmQoJ2NvbnRlbnQtbGVuZ3RoJywgY29udGVudExlbmd0aEhlYWRlclZhbHVlLCB0cnVlKVxuICB9XG5cbiAgLy8gICAgOS4gSWYgY29udGVudExlbmd0aEhlYWRlclZhbHVlIGlzIG5vbi1udWxsLCB0aGVuIGFwcGVuZCAoYENvbnRlbnQtTGVuZ3RoYCxcbiAgLy8gICAgY29udGVudExlbmd0aEhlYWRlclZhbHVlKSB0byBodHRwUmVxdWVzdFx1MjAxOXMgaGVhZGVyIGxpc3QuXG5cbiAgLy8gICAgMTAuIElmIGNvbnRlbnRMZW5ndGggaXMgbm9uLW51bGwgYW5kIGh0dHBSZXF1ZXN0XHUyMDE5cyBrZWVwYWxpdmUgaXMgdHJ1ZSxcbiAgLy8gICAgdGhlbjpcbiAgaWYgKGNvbnRlbnRMZW5ndGggIT0gbnVsbCAmJiBodHRwUmVxdWVzdC5rZWVwYWxpdmUpIHtcbiAgICAvLyBOT1RFOiBrZWVwYWxpdmUgaXMgYSBub29wIG91dHNpZGUgb2YgYnJvd3NlciBjb250ZXh0LlxuICB9XG5cbiAgLy8gICAgMTEuIElmIGh0dHBSZXF1ZXN0XHUyMDE5cyByZWZlcnJlciBpcyBhIFVSTCwgdGhlbiBhcHBlbmRcbiAgLy8gICAgYFJlZmVyZXJgL2h0dHBSZXF1ZXN0XHUyMDE5cyByZWZlcnJlciwgc2VyaWFsaXplZCBhbmQgaXNvbW9ycGhpYyBlbmNvZGVkLFxuICAvLyAgICAgdG8gaHR0cFJlcXVlc3RcdTIwMTlzIGhlYWRlciBsaXN0LlxuICBpZiAoaHR0cFJlcXVlc3QucmVmZXJyZXIgaW5zdGFuY2VvZiBVUkwpIHtcbiAgICBodHRwUmVxdWVzdC5oZWFkZXJzTGlzdC5hcHBlbmQoJ3JlZmVyZXInLCBpc29tb3JwaGljRW5jb2RlKGh0dHBSZXF1ZXN0LnJlZmVycmVyLmhyZWYpLCB0cnVlKVxuICB9XG5cbiAgLy8gICAgMTIuIEFwcGVuZCBhIHJlcXVlc3QgYE9yaWdpbmAgaGVhZGVyIGZvciBodHRwUmVxdWVzdC5cbiAgYXBwZW5kUmVxdWVzdE9yaWdpbkhlYWRlcihodHRwUmVxdWVzdClcblxuICAvLyAgICAxMy4gQXBwZW5kIHRoZSBGZXRjaCBtZXRhZGF0YSBoZWFkZXJzIGZvciBodHRwUmVxdWVzdC4gW0ZFVENILU1FVEFEQVRBXVxuICBhcHBlbmRGZXRjaE1ldGFkYXRhKGh0dHBSZXF1ZXN0KVxuXG4gIC8vICAgIDE0LiBJZiBodHRwUmVxdWVzdFx1MjAxOXMgaGVhZGVyIGxpc3QgZG9lcyBub3QgY29udGFpbiBgVXNlci1BZ2VudGAsIHRoZW5cbiAgLy8gICAgdXNlciBhZ2VudHMgc2hvdWxkIGFwcGVuZCBgVXNlci1BZ2VudGAvZGVmYXVsdCBgVXNlci1BZ2VudGAgdmFsdWUgdG9cbiAgLy8gICAgaHR0cFJlcXVlc3RcdTIwMTlzIGhlYWRlciBsaXN0LlxuICBpZiAoIWh0dHBSZXF1ZXN0LmhlYWRlcnNMaXN0LmNvbnRhaW5zKCd1c2VyLWFnZW50JywgdHJ1ZSkpIHtcbiAgICBodHRwUmVxdWVzdC5oZWFkZXJzTGlzdC5hcHBlbmQoJ3VzZXItYWdlbnQnLCBkZWZhdWx0VXNlckFnZW50KVxuICB9XG5cbiAgLy8gICAgMTUuIElmIGh0dHBSZXF1ZXN0XHUyMDE5cyBjYWNoZSBtb2RlIGlzIFwiZGVmYXVsdFwiIGFuZCBodHRwUmVxdWVzdFx1MjAxOXMgaGVhZGVyXG4gIC8vICAgIGxpc3QgY29udGFpbnMgYElmLU1vZGlmaWVkLVNpbmNlYCwgYElmLU5vbmUtTWF0Y2hgLFxuICAvLyAgICBgSWYtVW5tb2RpZmllZC1TaW5jZWAsIGBJZi1NYXRjaGAsIG9yIGBJZi1SYW5nZWAsIHRoZW4gc2V0XG4gIC8vICAgIGh0dHBSZXF1ZXN0XHUyMDE5cyBjYWNoZSBtb2RlIHRvIFwibm8tc3RvcmVcIi5cbiAgaWYgKFxuICAgIGh0dHBSZXF1ZXN0LmNhY2hlID09PSAnZGVmYXVsdCcgJiZcbiAgICAoaHR0cFJlcXVlc3QuaGVhZGVyc0xpc3QuY29udGFpbnMoJ2lmLW1vZGlmaWVkLXNpbmNlJywgdHJ1ZSkgfHxcbiAgICAgIGh0dHBSZXF1ZXN0LmhlYWRlcnNMaXN0LmNvbnRhaW5zKCdpZi1ub25lLW1hdGNoJywgdHJ1ZSkgfHxcbiAgICAgIGh0dHBSZXF1ZXN0LmhlYWRlcnNMaXN0LmNvbnRhaW5zKCdpZi11bm1vZGlmaWVkLXNpbmNlJywgdHJ1ZSkgfHxcbiAgICAgIGh0dHBSZXF1ZXN0LmhlYWRlcnNMaXN0LmNvbnRhaW5zKCdpZi1tYXRjaCcsIHRydWUpIHx8XG4gICAgICBodHRwUmVxdWVzdC5oZWFkZXJzTGlzdC5jb250YWlucygnaWYtcmFuZ2UnLCB0cnVlKSlcbiAgKSB7XG4gICAgaHR0cFJlcXVlc3QuY2FjaGUgPSAnbm8tc3RvcmUnXG4gIH1cblxuICAvLyAgICAxNi4gSWYgaHR0cFJlcXVlc3RcdTIwMTlzIGNhY2hlIG1vZGUgaXMgXCJuby1jYWNoZVwiLCBodHRwUmVxdWVzdFx1MjAxOXMgcHJldmVudFxuICAvLyAgICBuby1jYWNoZSBjYWNoZS1jb250cm9sIGhlYWRlciBtb2RpZmljYXRpb24gZmxhZyBpcyB1bnNldCwgYW5kXG4gIC8vICAgIGh0dHBSZXF1ZXN0XHUyMDE5cyBoZWFkZXIgbGlzdCBkb2VzIG5vdCBjb250YWluIGBDYWNoZS1Db250cm9sYCwgdGhlbiBhcHBlbmRcbiAgLy8gICAgYENhY2hlLUNvbnRyb2xgL2BtYXgtYWdlPTBgIHRvIGh0dHBSZXF1ZXN0XHUyMDE5cyBoZWFkZXIgbGlzdC5cbiAgaWYgKFxuICAgIGh0dHBSZXF1ZXN0LmNhY2hlID09PSAnbm8tY2FjaGUnICYmXG4gICAgIWh0dHBSZXF1ZXN0LnByZXZlbnROb0NhY2hlQ2FjaGVDb250cm9sSGVhZGVyTW9kaWZpY2F0aW9uICYmXG4gICAgIWh0dHBSZXF1ZXN0LmhlYWRlcnNMaXN0LmNvbnRhaW5zKCdjYWNoZS1jb250cm9sJywgdHJ1ZSlcbiAgKSB7XG4gICAgaHR0cFJlcXVlc3QuaGVhZGVyc0xpc3QuYXBwZW5kKCdjYWNoZS1jb250cm9sJywgJ21heC1hZ2U9MCcsIHRydWUpXG4gIH1cblxuICAvLyAgICAxNy4gSWYgaHR0cFJlcXVlc3RcdTIwMTlzIGNhY2hlIG1vZGUgaXMgXCJuby1zdG9yZVwiIG9yIFwicmVsb2FkXCIsIHRoZW46XG4gIGlmIChodHRwUmVxdWVzdC5jYWNoZSA9PT0gJ25vLXN0b3JlJyB8fCBodHRwUmVxdWVzdC5jYWNoZSA9PT0gJ3JlbG9hZCcpIHtcbiAgICAvLyAxLiBJZiBodHRwUmVxdWVzdFx1MjAxOXMgaGVhZGVyIGxpc3QgZG9lcyBub3QgY29udGFpbiBgUHJhZ21hYCwgdGhlbiBhcHBlbmRcbiAgICAvLyBgUHJhZ21hYC9gbm8tY2FjaGVgIHRvIGh0dHBSZXF1ZXN0XHUyMDE5cyBoZWFkZXIgbGlzdC5cbiAgICBpZiAoIWh0dHBSZXF1ZXN0LmhlYWRlcnNMaXN0LmNvbnRhaW5zKCdwcmFnbWEnLCB0cnVlKSkge1xuICAgICAgaHR0cFJlcXVlc3QuaGVhZGVyc0xpc3QuYXBwZW5kKCdwcmFnbWEnLCAnbm8tY2FjaGUnLCB0cnVlKVxuICAgIH1cblxuICAgIC8vIDIuIElmIGh0dHBSZXF1ZXN0XHUyMDE5cyBoZWFkZXIgbGlzdCBkb2VzIG5vdCBjb250YWluIGBDYWNoZS1Db250cm9sYCxcbiAgICAvLyB0aGVuIGFwcGVuZCBgQ2FjaGUtQ29udHJvbGAvYG5vLWNhY2hlYCB0byBodHRwUmVxdWVzdFx1MjAxOXMgaGVhZGVyIGxpc3QuXG4gICAgaWYgKCFodHRwUmVxdWVzdC5oZWFkZXJzTGlzdC5jb250YWlucygnY2FjaGUtY29udHJvbCcsIHRydWUpKSB7XG4gICAgICBodHRwUmVxdWVzdC5oZWFkZXJzTGlzdC5hcHBlbmQoJ2NhY2hlLWNvbnRyb2wnLCAnbm8tY2FjaGUnLCB0cnVlKVxuICAgIH1cbiAgfVxuXG4gIC8vICAgIDE4LiBJZiBodHRwUmVxdWVzdFx1MjAxOXMgaGVhZGVyIGxpc3QgY29udGFpbnMgYFJhbmdlYCwgdGhlbiBhcHBlbmRcbiAgLy8gICAgYEFjY2VwdC1FbmNvZGluZ2AvYGlkZW50aXR5YCB0byBodHRwUmVxdWVzdFx1MjAxOXMgaGVhZGVyIGxpc3QuXG4gIGlmIChodHRwUmVxdWVzdC5oZWFkZXJzTGlzdC5jb250YWlucygncmFuZ2UnLCB0cnVlKSkge1xuICAgIGh0dHBSZXF1ZXN0LmhlYWRlcnNMaXN0LmFwcGVuZCgnYWNjZXB0LWVuY29kaW5nJywgJ2lkZW50aXR5JywgdHJ1ZSlcbiAgfVxuXG4gIC8vICAgIDE5LiBNb2RpZnkgaHR0cFJlcXVlc3RcdTIwMTlzIGhlYWRlciBsaXN0IHBlciBIVFRQLiBEbyBub3QgYXBwZW5kIGEgZ2l2ZW5cbiAgLy8gICAgaGVhZGVyIGlmIGh0dHBSZXF1ZXN0XHUyMDE5cyBoZWFkZXIgbGlzdCBjb250YWlucyB0aGF0IGhlYWRlclx1MjAxOXMgbmFtZS5cbiAgLy8gICAgVE9ETzogaHR0cHM6Ly9naXRodWIuY29tL3doYXR3Zy9mZXRjaC9pc3N1ZXMvMTI4NSNpc3N1ZWNvbW1lbnQtODk2NTYwMTI5XG4gIGlmICghaHR0cFJlcXVlc3QuaGVhZGVyc0xpc3QuY29udGFpbnMoJ2FjY2VwdC1lbmNvZGluZycsIHRydWUpKSB7XG4gICAgaWYgKHVybEhhc0h0dHBzU2NoZW1lKHJlcXVlc3RDdXJyZW50VVJMKGh0dHBSZXF1ZXN0KSkpIHtcbiAgICAgIGh0dHBSZXF1ZXN0LmhlYWRlcnNMaXN0LmFwcGVuZCgnYWNjZXB0LWVuY29kaW5nJywgJ2JyLCBnemlwLCBkZWZsYXRlJywgdHJ1ZSlcbiAgICB9IGVsc2Uge1xuICAgICAgaHR0cFJlcXVlc3QuaGVhZGVyc0xpc3QuYXBwZW5kKCdhY2NlcHQtZW5jb2RpbmcnLCAnZ3ppcCwgZGVmbGF0ZScsIHRydWUpXG4gICAgfVxuICB9XG5cbiAgaHR0cFJlcXVlc3QuaGVhZGVyc0xpc3QuZGVsZXRlKCdob3N0JywgdHJ1ZSlcblxuICAvLyAgICAyMC4gSWYgaW5jbHVkZUNyZWRlbnRpYWxzIGlzIHRydWUsIHRoZW46XG4gIGlmIChpbmNsdWRlQ3JlZGVudGlhbHMpIHtcbiAgICAvLyAxLiBJZiB0aGUgdXNlciBhZ2VudCBpcyBub3QgY29uZmlndXJlZCB0byBibG9jayBjb29raWVzIGZvciBodHRwUmVxdWVzdFxuICAgIC8vIChzZWUgc2VjdGlvbiA3IG9mIFtDT09LSUVTXSksIHRoZW46XG4gICAgLy8gVE9ETzogY3JlZGVudGlhbHNcbiAgICAvLyAyLiBJZiBodHRwUmVxdWVzdFx1MjAxOXMgaGVhZGVyIGxpc3QgZG9lcyBub3QgY29udGFpbiBgQXV0aG9yaXphdGlvbmAsIHRoZW46XG4gICAgLy8gVE9ETzogY3JlZGVudGlhbHNcbiAgfVxuXG4gIC8vICAgIDIxLiBJZiB0aGVyZVx1MjAxOXMgYSBwcm94eS1hdXRoZW50aWNhdGlvbiBlbnRyeSwgdXNlIGl0IGFzIGFwcHJvcHJpYXRlLlxuICAvLyAgICBUT0RPOiBwcm94eS1hdXRoZW50aWNhdGlvblxuXG4gIC8vICAgIDIyLiBTZXQgaHR0cENhY2hlIHRvIHRoZSByZXN1bHQgb2YgZGV0ZXJtaW5pbmcgdGhlIEhUVFAgY2FjaGVcbiAgLy8gICAgcGFydGl0aW9uLCBnaXZlbiBodHRwUmVxdWVzdC5cbiAgLy8gICAgVE9ETzogY2FjaGVcblxuICAvLyAgICAyMy4gSWYgaHR0cENhY2hlIGlzIG51bGwsIHRoZW4gc2V0IGh0dHBSZXF1ZXN0XHUyMDE5cyBjYWNoZSBtb2RlIHRvXG4gIC8vICAgIFwibm8tc3RvcmVcIi5cbiAgaWYgKGh0dHBDYWNoZSA9PSBudWxsKSB7XG4gICAgaHR0cFJlcXVlc3QuY2FjaGUgPSAnbm8tc3RvcmUnXG4gIH1cblxuICAvLyAgICAyNC4gSWYgaHR0cFJlcXVlc3RcdTIwMTlzIGNhY2hlIG1vZGUgaXMgbmVpdGhlciBcIm5vLXN0b3JlXCIgbm9yIFwicmVsb2FkXCIsXG4gIC8vICAgIHRoZW46XG4gIGlmIChodHRwUmVxdWVzdC5jYWNoZSAhPT0gJ25vLXN0b3JlJyAmJiBodHRwUmVxdWVzdC5jYWNoZSAhPT0gJ3JlbG9hZCcpIHtcbiAgICAvLyBUT0RPOiBjYWNoZVxuICB9XG5cbiAgLy8gOS4gSWYgYWJvcnRlZCwgdGhlbiByZXR1cm4gdGhlIGFwcHJvcHJpYXRlIG5ldHdvcmsgZXJyb3IgZm9yIGZldGNoUGFyYW1zLlxuICAvLyBUT0RPXG5cbiAgLy8gMTAuIElmIHJlc3BvbnNlIGlzIG51bGwsIHRoZW46XG4gIGlmIChyZXNwb25zZSA9PSBudWxsKSB7XG4gICAgLy8gMS4gSWYgaHR0cFJlcXVlc3RcdTIwMTlzIGNhY2hlIG1vZGUgaXMgXCJvbmx5LWlmLWNhY2hlZFwiLCB0aGVuIHJldHVybiBhXG4gICAgLy8gbmV0d29yayBlcnJvci5cbiAgICBpZiAoaHR0cFJlcXVlc3QuY2FjaGUgPT09ICdvbmx5LWlmLWNhY2hlZCcpIHtcbiAgICAgIHJldHVybiBtYWtlTmV0d29ya0Vycm9yKCdvbmx5IGlmIGNhY2hlZCcpXG4gICAgfVxuXG4gICAgLy8gMi4gTGV0IGZvcndhcmRSZXNwb25zZSBiZSB0aGUgcmVzdWx0IG9mIHJ1bm5pbmcgSFRUUC1uZXR3b3JrIGZldGNoXG4gICAgLy8gZ2l2ZW4gaHR0cEZldGNoUGFyYW1zLCBpbmNsdWRlQ3JlZGVudGlhbHMsIGFuZCBpc05ld0Nvbm5lY3Rpb25GZXRjaC5cbiAgICBjb25zdCBmb3J3YXJkUmVzcG9uc2UgPSBhd2FpdCBodHRwTmV0d29ya0ZldGNoKFxuICAgICAgaHR0cEZldGNoUGFyYW1zLFxuICAgICAgaW5jbHVkZUNyZWRlbnRpYWxzLFxuICAgICAgaXNOZXdDb25uZWN0aW9uRmV0Y2hcbiAgICApXG5cbiAgICAvLyAzLiBJZiBodHRwUmVxdWVzdFx1MjAxOXMgbWV0aG9kIGlzIHVuc2FmZSBhbmQgZm9yd2FyZFJlc3BvbnNlXHUyMDE5cyBzdGF0dXMgaXNcbiAgICAvLyBpbiB0aGUgcmFuZ2UgMjAwIHRvIDM5OSwgaW5jbHVzaXZlLCBpbnZhbGlkYXRlIGFwcHJvcHJpYXRlIHN0b3JlZFxuICAgIC8vIHJlc3BvbnNlcyBpbiBodHRwQ2FjaGUsIGFzIHBlciB0aGUgXCJJbnZhbGlkYXRpb25cIiBjaGFwdGVyIG9mIEhUVFBcbiAgICAvLyBDYWNoaW5nLCBhbmQgc2V0IHN0b3JlZFJlc3BvbnNlIHRvIG51bGwuIFtIVFRQLUNBQ0hJTkddXG4gICAgaWYgKFxuICAgICAgIXNhZmVNZXRob2RzU2V0LmhhcyhodHRwUmVxdWVzdC5tZXRob2QpICYmXG4gICAgICBmb3J3YXJkUmVzcG9uc2Uuc3RhdHVzID49IDIwMCAmJlxuICAgICAgZm9yd2FyZFJlc3BvbnNlLnN0YXR1cyA8PSAzOTlcbiAgICApIHtcbiAgICAgIC8vIFRPRE86IGNhY2hlXG4gICAgfVxuXG4gICAgLy8gNC4gSWYgdGhlIHJldmFsaWRhdGluZ0ZsYWcgaXMgc2V0IGFuZCBmb3J3YXJkUmVzcG9uc2VcdTIwMTlzIHN0YXR1cyBpcyAzMDQsXG4gICAgLy8gdGhlbjpcbiAgICBpZiAocmV2YWxpZGF0aW5nRmxhZyAmJiBmb3J3YXJkUmVzcG9uc2Uuc3RhdHVzID09PSAzMDQpIHtcbiAgICAgIC8vIFRPRE86IGNhY2hlXG4gICAgfVxuXG4gICAgLy8gNS4gSWYgcmVzcG9uc2UgaXMgbnVsbCwgdGhlbjpcbiAgICBpZiAocmVzcG9uc2UgPT0gbnVsbCkge1xuICAgICAgLy8gMS4gU2V0IHJlc3BvbnNlIHRvIGZvcndhcmRSZXNwb25zZS5cbiAgICAgIHJlc3BvbnNlID0gZm9yd2FyZFJlc3BvbnNlXG5cbiAgICAgIC8vIDIuIFN0b3JlIGh0dHBSZXF1ZXN0IGFuZCBmb3J3YXJkUmVzcG9uc2UgaW4gaHR0cENhY2hlLCBhcyBwZXIgdGhlXG4gICAgICAvLyBcIlN0b3JpbmcgUmVzcG9uc2VzIGluIENhY2hlc1wiIGNoYXB0ZXIgb2YgSFRUUCBDYWNoaW5nLiBbSFRUUC1DQUNISU5HXVxuICAgICAgLy8gVE9ETzogY2FjaGVcbiAgICB9XG4gIH1cblxuICAvLyAxMS4gU2V0IHJlc3BvbnNlXHUyMDE5cyBVUkwgbGlzdCB0byBhIGNsb25lIG9mIGh0dHBSZXF1ZXN0XHUyMDE5cyBVUkwgbGlzdC5cbiAgcmVzcG9uc2UudXJsTGlzdCA9IFsuLi5odHRwUmVxdWVzdC51cmxMaXN0XVxuXG4gIC8vIDEyLiBJZiBodHRwUmVxdWVzdFx1MjAxOXMgaGVhZGVyIGxpc3QgY29udGFpbnMgYFJhbmdlYCwgdGhlbiBzZXQgcmVzcG9uc2VcdTIwMTlzXG4gIC8vIHJhbmdlLXJlcXVlc3RlZCBmbGFnLlxuICBpZiAoaHR0cFJlcXVlc3QuaGVhZGVyc0xpc3QuY29udGFpbnMoJ3JhbmdlJywgdHJ1ZSkpIHtcbiAgICByZXNwb25zZS5yYW5nZVJlcXVlc3RlZCA9IHRydWVcbiAgfVxuXG4gIC8vIDEzLiBTZXQgcmVzcG9uc2VcdTIwMTlzIHJlcXVlc3QtaW5jbHVkZXMtY3JlZGVudGlhbHMgdG8gaW5jbHVkZUNyZWRlbnRpYWxzLlxuICByZXNwb25zZS5yZXF1ZXN0SW5jbHVkZXNDcmVkZW50aWFscyA9IGluY2x1ZGVDcmVkZW50aWFsc1xuXG4gIC8vIDE0LiBJZiByZXNwb25zZVx1MjAxOXMgc3RhdHVzIGlzIDQwMSwgaHR0cFJlcXVlc3RcdTIwMTlzIHJlc3BvbnNlIHRhaW50aW5nIGlzIG5vdFxuICAvLyBcImNvcnNcIiwgaW5jbHVkZUNyZWRlbnRpYWxzIGlzIHRydWUsIGFuZCByZXF1ZXN0XHUyMDE5cyB3aW5kb3cgaXMgYW4gZW52aXJvbm1lbnRcbiAgLy8gc2V0dGluZ3Mgb2JqZWN0LCB0aGVuOlxuICAvLyBUT0RPXG5cbiAgLy8gMTUuIElmIHJlc3BvbnNlXHUyMDE5cyBzdGF0dXMgaXMgNDA3LCB0aGVuOlxuICBpZiAocmVzcG9uc2Uuc3RhdHVzID09PSA0MDcpIHtcbiAgICAvLyAxLiBJZiByZXF1ZXN0XHUyMDE5cyB3aW5kb3cgaXMgXCJuby13aW5kb3dcIiwgdGhlbiByZXR1cm4gYSBuZXR3b3JrIGVycm9yLlxuICAgIGlmIChyZXF1ZXN0LndpbmRvdyA9PT0gJ25vLXdpbmRvdycpIHtcbiAgICAgIHJldHVybiBtYWtlTmV0d29ya0Vycm9yKClcbiAgICB9XG5cbiAgICAvLyAyLiA/Pz9cblxuICAgIC8vIDMuIElmIGZldGNoUGFyYW1zIGlzIGNhbmNlbGVkLCB0aGVuIHJldHVybiB0aGUgYXBwcm9wcmlhdGUgbmV0d29yayBlcnJvciBmb3IgZmV0Y2hQYXJhbXMuXG4gICAgaWYgKGlzQ2FuY2VsbGVkKGZldGNoUGFyYW1zKSkge1xuICAgICAgcmV0dXJuIG1ha2VBcHByb3ByaWF0ZU5ldHdvcmtFcnJvcihmZXRjaFBhcmFtcylcbiAgICB9XG5cbiAgICAvLyA0LiBQcm9tcHQgdGhlIGVuZCB1c2VyIGFzIGFwcHJvcHJpYXRlIGluIHJlcXVlc3RcdTIwMTlzIHdpbmRvdyBhbmQgc3RvcmVcbiAgICAvLyB0aGUgcmVzdWx0IGFzIGEgcHJveHktYXV0aGVudGljYXRpb24gZW50cnkuIFtIVFRQLUFVVEhdXG4gICAgLy8gVE9ETzogSW52b2tlIHNvbWUga2luZCBvZiBjYWxsYmFjaz9cblxuICAgIC8vIDUuIFNldCByZXNwb25zZSB0byB0aGUgcmVzdWx0IG9mIHJ1bm5pbmcgSFRUUC1uZXR3b3JrLW9yLWNhY2hlIGZldGNoIGdpdmVuXG4gICAgLy8gZmV0Y2hQYXJhbXMuXG4gICAgLy8gVE9ET1xuICAgIHJldHVybiBtYWtlTmV0d29ya0Vycm9yKCdwcm94eSBhdXRoZW50aWNhdGlvbiByZXF1aXJlZCcpXG4gIH1cblxuICAvLyAxNi4gSWYgYWxsIG9mIHRoZSBmb2xsb3dpbmcgYXJlIHRydWVcbiAgaWYgKFxuICAgIC8vIHJlc3BvbnNlXHUyMDE5cyBzdGF0dXMgaXMgNDIxXG4gICAgcmVzcG9uc2Uuc3RhdHVzID09PSA0MjEgJiZcbiAgICAvLyBpc05ld0Nvbm5lY3Rpb25GZXRjaCBpcyBmYWxzZVxuICAgICFpc05ld0Nvbm5lY3Rpb25GZXRjaCAmJlxuICAgIC8vIHJlcXVlc3RcdTIwMTlzIGJvZHkgaXMgbnVsbCwgb3IgcmVxdWVzdFx1MjAxOXMgYm9keSBpcyBub24tbnVsbCBhbmQgcmVxdWVzdFx1MjAxOXMgYm9keVx1MjAxOXMgc291cmNlIGlzIG5vbi1udWxsXG4gICAgKHJlcXVlc3QuYm9keSA9PSBudWxsIHx8IHJlcXVlc3QuYm9keS5zb3VyY2UgIT0gbnVsbClcbiAgKSB7XG4gICAgLy8gdGhlbjpcblxuICAgIC8vIDEuIElmIGZldGNoUGFyYW1zIGlzIGNhbmNlbGVkLCB0aGVuIHJldHVybiB0aGUgYXBwcm9wcmlhdGUgbmV0d29yayBlcnJvciBmb3IgZmV0Y2hQYXJhbXMuXG4gICAgaWYgKGlzQ2FuY2VsbGVkKGZldGNoUGFyYW1zKSkge1xuICAgICAgcmV0dXJuIG1ha2VBcHByb3ByaWF0ZU5ldHdvcmtFcnJvcihmZXRjaFBhcmFtcylcbiAgICB9XG5cbiAgICAvLyAyLiBTZXQgcmVzcG9uc2UgdG8gdGhlIHJlc3VsdCBvZiBydW5uaW5nIEhUVFAtbmV0d29yay1vci1jYWNoZVxuICAgIC8vIGZldGNoIGdpdmVuIGZldGNoUGFyYW1zLCBpc0F1dGhlbnRpY2F0aW9uRmV0Y2gsIGFuZCB0cnVlLlxuXG4gICAgLy8gVE9ETyAoc3BlYyk6IFRoZSBzcGVjIGRvZXNuJ3Qgc3BlY2lmeSB0aGlzIGJ1dCB3ZSBuZWVkIHRvIGNhbmNlbFxuICAgIC8vIHRoZSBhY3RpdmUgcmVzcG9uc2UgYmVmb3JlIHdlIGNhbiBzdGFydCBhIG5ldyBvbmUuXG4gICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3doYXR3Zy9mZXRjaC9pc3N1ZXMvMTI5M1xuICAgIGZldGNoUGFyYW1zLmNvbnRyb2xsZXIuY29ubmVjdGlvbi5kZXN0cm95KClcblxuICAgIHJlc3BvbnNlID0gYXdhaXQgaHR0cE5ldHdvcmtPckNhY2hlRmV0Y2goXG4gICAgICBmZXRjaFBhcmFtcyxcbiAgICAgIGlzQXV0aGVudGljYXRpb25GZXRjaCxcbiAgICAgIHRydWVcbiAgICApXG4gIH1cblxuICAvLyAxNy4gSWYgaXNBdXRoZW50aWNhdGlvbkZldGNoIGlzIHRydWUsIHRoZW4gY3JlYXRlIGFuIGF1dGhlbnRpY2F0aW9uIGVudHJ5XG4gIGlmIChpc0F1dGhlbnRpY2F0aW9uRmV0Y2gpIHtcbiAgICAvLyBUT0RPXG4gIH1cblxuICAvLyAxOC4gUmV0dXJuIHJlc3BvbnNlLlxuICByZXR1cm4gcmVzcG9uc2Vcbn1cblxuLy8gaHR0cHM6Ly9mZXRjaC5zcGVjLndoYXR3Zy5vcmcvI2h0dHAtbmV0d29yay1mZXRjaFxuYXN5bmMgZnVuY3Rpb24gaHR0cE5ldHdvcmtGZXRjaCAoXG4gIGZldGNoUGFyYW1zLFxuICBpbmNsdWRlQ3JlZGVudGlhbHMgPSBmYWxzZSxcbiAgZm9yY2VOZXdDb25uZWN0aW9uID0gZmFsc2Vcbikge1xuICBhc3NlcnQoIWZldGNoUGFyYW1zLmNvbnRyb2xsZXIuY29ubmVjdGlvbiB8fCBmZXRjaFBhcmFtcy5jb250cm9sbGVyLmNvbm5lY3Rpb24uZGVzdHJveWVkKVxuXG4gIGZldGNoUGFyYW1zLmNvbnRyb2xsZXIuY29ubmVjdGlvbiA9IHtcbiAgICBhYm9ydDogbnVsbCxcbiAgICBkZXN0cm95ZWQ6IGZhbHNlLFxuICAgIGRlc3Ryb3kgKGVyciwgYWJvcnQgPSB0cnVlKSB7XG4gICAgICBpZiAoIXRoaXMuZGVzdHJveWVkKSB7XG4gICAgICAgIHRoaXMuZGVzdHJveWVkID0gdHJ1ZVxuICAgICAgICBpZiAoYWJvcnQpIHtcbiAgICAgICAgICB0aGlzLmFib3J0Py4oZXJyID8/IG5ldyBET01FeGNlcHRpb24oJ1RoZSBvcGVyYXRpb24gd2FzIGFib3J0ZWQuJywgJ0Fib3J0RXJyb3InKSlcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIDEuIExldCByZXF1ZXN0IGJlIGZldGNoUGFyYW1zXHUyMDE5cyByZXF1ZXN0LlxuICBjb25zdCByZXF1ZXN0ID0gZmV0Y2hQYXJhbXMucmVxdWVzdFxuXG4gIC8vIDIuIExldCByZXNwb25zZSBiZSBudWxsLlxuICBsZXQgcmVzcG9uc2UgPSBudWxsXG5cbiAgLy8gMy4gTGV0IHRpbWluZ0luZm8gYmUgZmV0Y2hQYXJhbXNcdTIwMTlzIHRpbWluZyBpbmZvLlxuICBjb25zdCB0aW1pbmdJbmZvID0gZmV0Y2hQYXJhbXMudGltaW5nSW5mb1xuXG4gIC8vIDQuIExldCBodHRwQ2FjaGUgYmUgdGhlIHJlc3VsdCBvZiBkZXRlcm1pbmluZyB0aGUgSFRUUCBjYWNoZSBwYXJ0aXRpb24sXG4gIC8vIGdpdmVuIHJlcXVlc3QuXG4gIC8vIFRPRE86IGNhY2hlXG4gIGNvbnN0IGh0dHBDYWNoZSA9IG51bGxcblxuICAvLyA1LiBJZiBodHRwQ2FjaGUgaXMgbnVsbCwgdGhlbiBzZXQgcmVxdWVzdFx1MjAxOXMgY2FjaGUgbW9kZSB0byBcIm5vLXN0b3JlXCIuXG4gIGlmIChodHRwQ2FjaGUgPT0gbnVsbCkge1xuICAgIHJlcXVlc3QuY2FjaGUgPSAnbm8tc3RvcmUnXG4gIH1cblxuICAvLyA2LiBMZXQgbmV0d29ya1BhcnRpdGlvbktleSBiZSB0aGUgcmVzdWx0IG9mIGRldGVybWluaW5nIHRoZSBuZXR3b3JrXG4gIC8vIHBhcnRpdGlvbiBrZXkgZ2l2ZW4gcmVxdWVzdC5cbiAgLy8gVE9ET1xuXG4gIC8vIDcuIExldCBuZXdDb25uZWN0aW9uIGJlIFwieWVzXCIgaWYgZm9yY2VOZXdDb25uZWN0aW9uIGlzIHRydWU7IG90aGVyd2lzZVxuICAvLyBcIm5vXCIuXG4gIGNvbnN0IG5ld0Nvbm5lY3Rpb24gPSBmb3JjZU5ld0Nvbm5lY3Rpb24gPyAneWVzJyA6ICdubycgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby11bnVzZWQtdmFyc1xuXG4gIC8vIDguIFN3aXRjaCBvbiByZXF1ZXN0XHUyMDE5cyBtb2RlOlxuICBpZiAocmVxdWVzdC5tb2RlID09PSAnd2Vic29ja2V0Jykge1xuICAgIC8vIExldCBjb25uZWN0aW9uIGJlIHRoZSByZXN1bHQgb2Ygb2J0YWluaW5nIGEgV2ViU29ja2V0IGNvbm5lY3Rpb24sXG4gICAgLy8gZ2l2ZW4gcmVxdWVzdFx1MjAxOXMgY3VycmVudCBVUkwuXG4gICAgLy8gVE9ET1xuICB9IGVsc2Uge1xuICAgIC8vIExldCBjb25uZWN0aW9uIGJlIHRoZSByZXN1bHQgb2Ygb2J0YWluaW5nIGEgY29ubmVjdGlvbiwgZ2l2ZW5cbiAgICAvLyBuZXR3b3JrUGFydGl0aW9uS2V5LCByZXF1ZXN0XHUyMDE5cyBjdXJyZW50IFVSTFx1MjAxOXMgb3JpZ2luLFxuICAgIC8vIGluY2x1ZGVDcmVkZW50aWFscywgYW5kIGZvcmNlTmV3Q29ubmVjdGlvbi5cbiAgICAvLyBUT0RPXG4gIH1cblxuICAvLyA5LiBSdW4gdGhlc2Ugc3RlcHMsIGJ1dCBhYm9ydCB3aGVuIHRoZSBvbmdvaW5nIGZldGNoIGlzIHRlcm1pbmF0ZWQ6XG5cbiAgLy8gICAgMS4gSWYgY29ubmVjdGlvbiBpcyBmYWlsdXJlLCB0aGVuIHJldHVybiBhIG5ldHdvcmsgZXJyb3IuXG5cbiAgLy8gICAgMi4gU2V0IHRpbWluZ0luZm9cdTIwMTlzIGZpbmFsIGNvbm5lY3Rpb24gdGltaW5nIGluZm8gdG8gdGhlIHJlc3VsdCBvZlxuICAvLyAgICBjYWxsaW5nIGNsYW1wIGFuZCBjb2Fyc2VuIGNvbm5lY3Rpb24gdGltaW5nIGluZm8gd2l0aCBjb25uZWN0aW9uXHUyMDE5c1xuICAvLyAgICB0aW1pbmcgaW5mbywgdGltaW5nSW5mb1x1MjAxOXMgcG9zdC1yZWRpcmVjdCBzdGFydCB0aW1lLCBhbmQgZmV0Y2hQYXJhbXNcdTIwMTlzXG4gIC8vICAgIGNyb3NzLW9yaWdpbiBpc29sYXRlZCBjYXBhYmlsaXR5LlxuXG4gIC8vICAgIDMuIElmIGNvbm5lY3Rpb24gaXMgbm90IGFuIEhUVFAvMiBjb25uZWN0aW9uLCByZXF1ZXN0XHUyMDE5cyBib2R5IGlzIG5vbi1udWxsLFxuICAvLyAgICBhbmQgcmVxdWVzdFx1MjAxOXMgYm9keVx1MjAxOXMgc291cmNlIGlzIG51bGwsIHRoZW4gYXBwZW5kIChgVHJhbnNmZXItRW5jb2RpbmdgLFxuICAvLyAgICBgY2h1bmtlZGApIHRvIHJlcXVlc3RcdTIwMTlzIGhlYWRlciBsaXN0LlxuXG4gIC8vICAgIDQuIFNldCB0aW1pbmdJbmZvXHUyMDE5cyBmaW5hbCBuZXR3b3JrLXJlcXVlc3Qgc3RhcnQgdGltZSB0byB0aGUgY29hcnNlbmVkXG4gIC8vICAgIHNoYXJlZCBjdXJyZW50IHRpbWUgZ2l2ZW4gZmV0Y2hQYXJhbXNcdTIwMTlzIGNyb3NzLW9yaWdpbiBpc29sYXRlZFxuICAvLyAgICBjYXBhYmlsaXR5LlxuXG4gIC8vICAgIDUuIFNldCByZXNwb25zZSB0byB0aGUgcmVzdWx0IG9mIG1ha2luZyBhbiBIVFRQIHJlcXVlc3Qgb3ZlciBjb25uZWN0aW9uXG4gIC8vICAgIHVzaW5nIHJlcXVlc3Qgd2l0aCB0aGUgZm9sbG93aW5nIGNhdmVhdHM6XG5cbiAgLy8gICAgICAgIC0gRm9sbG93IHRoZSByZWxldmFudCByZXF1aXJlbWVudHMgZnJvbSBIVFRQLiBbSFRUUF0gW0hUVFAtU0VNQU5USUNTXVxuICAvLyAgICAgICAgW0hUVFAtQ09ORF0gW0hUVFAtQ0FDSElOR10gW0hUVFAtQVVUSF1cblxuICAvLyAgICAgICAgLSBJZiByZXF1ZXN0XHUyMDE5cyBib2R5IGlzIG5vbi1udWxsLCBhbmQgcmVxdWVzdFx1MjAxOXMgYm9keVx1MjAxOXMgc291cmNlIGlzIG51bGwsXG4gIC8vICAgICAgICB0aGVuIHRoZSB1c2VyIGFnZW50IG1heSBoYXZlIGEgYnVmZmVyIG9mIHVwIHRvIDY0IGtpYmlieXRlcyBhbmQgc3RvcmVcbiAgLy8gICAgICAgIGEgcGFydCBvZiByZXF1ZXN0XHUyMDE5cyBib2R5IGluIHRoYXQgYnVmZmVyLiBJZiB0aGUgdXNlciBhZ2VudCByZWFkcyBmcm9tXG4gIC8vICAgICAgICByZXF1ZXN0XHUyMDE5cyBib2R5IGJleW9uZCB0aGF0IGJ1ZmZlclx1MjAxOXMgc2l6ZSBhbmQgdGhlIHVzZXIgYWdlbnQgbmVlZHMgdG9cbiAgLy8gICAgICAgIHJlc2VuZCByZXF1ZXN0LCB0aGVuIGluc3RlYWQgcmV0dXJuIGEgbmV0d29yayBlcnJvci5cblxuICAvLyAgICAgICAgLSBTZXQgdGltaW5nSW5mb1x1MjAxOXMgZmluYWwgbmV0d29yay1yZXNwb25zZSBzdGFydCB0aW1lIHRvIHRoZSBjb2Fyc2VuZWRcbiAgLy8gICAgICAgIHNoYXJlZCBjdXJyZW50IHRpbWUgZ2l2ZW4gZmV0Y2hQYXJhbXNcdTIwMTlzIGNyb3NzLW9yaWdpbiBpc29sYXRlZCBjYXBhYmlsaXR5LFxuICAvLyAgICAgICAgaW1tZWRpYXRlbHkgYWZ0ZXIgdGhlIHVzZXIgYWdlbnRcdTIwMTlzIEhUVFAgcGFyc2VyIHJlY2VpdmVzIHRoZSBmaXJzdCBieXRlXG4gIC8vICAgICAgICBvZiB0aGUgcmVzcG9uc2UgKGUuZy4sIGZyYW1lIGhlYWRlciBieXRlcyBmb3IgSFRUUC8yIG9yIHJlc3BvbnNlIHN0YXR1c1xuICAvLyAgICAgICAgbGluZSBmb3IgSFRUUC8xLngpLlxuXG4gIC8vICAgICAgICAtIFdhaXQgdW50aWwgYWxsIHRoZSBoZWFkZXJzIGFyZSB0cmFuc21pdHRlZC5cblxuICAvLyAgICAgICAgLSBBbnkgcmVzcG9uc2VzIHdob3NlIHN0YXR1cyBpcyBpbiB0aGUgcmFuZ2UgMTAwIHRvIDE5OSwgaW5jbHVzaXZlLFxuICAvLyAgICAgICAgYW5kIGlzIG5vdCAxMDEsIGFyZSB0byBiZSBpZ25vcmVkLCBleGNlcHQgZm9yIHRoZSBwdXJwb3NlcyBvZiBzZXR0aW5nXG4gIC8vICAgICAgICB0aW1pbmdJbmZvXHUyMDE5cyBmaW5hbCBuZXR3b3JrLXJlc3BvbnNlIHN0YXJ0IHRpbWUgYWJvdmUuXG5cbiAgLy8gICAgLSBJZiByZXF1ZXN0XHUyMDE5cyBoZWFkZXIgbGlzdCBjb250YWlucyBgVHJhbnNmZXItRW5jb2RpbmdgL2BjaHVua2VkYCBhbmRcbiAgLy8gICAgcmVzcG9uc2UgaXMgdHJhbnNmZXJyZWQgdmlhIEhUVFAvMS4wIG9yIG9sZGVyLCB0aGVuIHJldHVybiBhIG5ldHdvcmtcbiAgLy8gICAgZXJyb3IuXG5cbiAgLy8gICAgLSBJZiB0aGUgSFRUUCByZXF1ZXN0IHJlc3VsdHMgaW4gYSBUTFMgY2xpZW50IGNlcnRpZmljYXRlIGRpYWxvZywgdGhlbjpcblxuICAvLyAgICAgICAgMS4gSWYgcmVxdWVzdFx1MjAxOXMgd2luZG93IGlzIGFuIGVudmlyb25tZW50IHNldHRpbmdzIG9iamVjdCwgbWFrZSB0aGVcbiAgLy8gICAgICAgIGRpYWxvZyBhdmFpbGFibGUgaW4gcmVxdWVzdFx1MjAxOXMgd2luZG93LlxuXG4gIC8vICAgICAgICAyLiBPdGhlcndpc2UsIHJldHVybiBhIG5ldHdvcmsgZXJyb3IuXG5cbiAgLy8gVG8gdHJhbnNtaXQgcmVxdWVzdFx1MjAxOXMgYm9keSBib2R5LCBydW4gdGhlc2Ugc3RlcHM6XG4gIGxldCByZXF1ZXN0Qm9keSA9IG51bGxcbiAgLy8gMS4gSWYgYm9keSBpcyBudWxsIGFuZCBmZXRjaFBhcmFtc1x1MjAxOXMgcHJvY2VzcyByZXF1ZXN0IGVuZC1vZi1ib2R5IGlzXG4gIC8vIG5vbi1udWxsLCB0aGVuIHF1ZXVlIGEgZmV0Y2ggdGFzayBnaXZlbiBmZXRjaFBhcmFtc1x1MjAxOXMgcHJvY2VzcyByZXF1ZXN0XG4gIC8vIGVuZC1vZi1ib2R5IGFuZCBmZXRjaFBhcmFtc1x1MjAxOXMgdGFzayBkZXN0aW5hdGlvbi5cbiAgaWYgKHJlcXVlc3QuYm9keSA9PSBudWxsICYmIGZldGNoUGFyYW1zLnByb2Nlc3NSZXF1ZXN0RW5kT2ZCb2R5KSB7XG4gICAgcXVldWVNaWNyb3Rhc2soKCkgPT4gZmV0Y2hQYXJhbXMucHJvY2Vzc1JlcXVlc3RFbmRPZkJvZHkoKSlcbiAgfSBlbHNlIGlmIChyZXF1ZXN0LmJvZHkgIT0gbnVsbCkge1xuICAgIC8vIDIuIE90aGVyd2lzZSwgaWYgYm9keSBpcyBub24tbnVsbDpcblxuICAgIC8vICAgIDEuIExldCBwcm9jZXNzQm9keUNodW5rIGdpdmVuIGJ5dGVzIGJlIHRoZXNlIHN0ZXBzOlxuICAgIGNvbnN0IHByb2Nlc3NCb2R5Q2h1bmsgPSBhc3luYyBmdW5jdGlvbiAqIChieXRlcykge1xuICAgICAgLy8gMS4gSWYgdGhlIG9uZ29pbmcgZmV0Y2ggaXMgdGVybWluYXRlZCwgdGhlbiBhYm9ydCB0aGVzZSBzdGVwcy5cbiAgICAgIGlmIChpc0NhbmNlbGxlZChmZXRjaFBhcmFtcykpIHtcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIC8vIDIuIFJ1biB0aGlzIHN0ZXAgaW4gcGFyYWxsZWw6IHRyYW5zbWl0IGJ5dGVzLlxuICAgICAgeWllbGQgYnl0ZXNcblxuICAgICAgLy8gMy4gSWYgZmV0Y2hQYXJhbXNcdTIwMTlzIHByb2Nlc3MgcmVxdWVzdCBib2R5IGlzIG5vbi1udWxsLCB0aGVuIHJ1blxuICAgICAgLy8gZmV0Y2hQYXJhbXNcdTIwMTlzIHByb2Nlc3MgcmVxdWVzdCBib2R5IGdpdmVuIGJ5dGVzXHUyMDE5cyBsZW5ndGguXG4gICAgICBmZXRjaFBhcmFtcy5wcm9jZXNzUmVxdWVzdEJvZHlDaHVua0xlbmd0aD8uKGJ5dGVzLmJ5dGVMZW5ndGgpXG4gICAgfVxuXG4gICAgLy8gMi4gTGV0IHByb2Nlc3NFbmRPZkJvZHkgYmUgdGhlc2Ugc3RlcHM6XG4gICAgY29uc3QgcHJvY2Vzc0VuZE9mQm9keSA9ICgpID0+IHtcbiAgICAgIC8vIDEuIElmIGZldGNoUGFyYW1zIGlzIGNhbmNlbGVkLCB0aGVuIGFib3J0IHRoZXNlIHN0ZXBzLlxuICAgICAgaWYgKGlzQ2FuY2VsbGVkKGZldGNoUGFyYW1zKSkge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgLy8gMi4gSWYgZmV0Y2hQYXJhbXNcdTIwMTlzIHByb2Nlc3MgcmVxdWVzdCBlbmQtb2YtYm9keSBpcyBub24tbnVsbCxcbiAgICAgIC8vIHRoZW4gcnVuIGZldGNoUGFyYW1zXHUyMDE5cyBwcm9jZXNzIHJlcXVlc3QgZW5kLW9mLWJvZHkuXG4gICAgICBpZiAoZmV0Y2hQYXJhbXMucHJvY2Vzc1JlcXVlc3RFbmRPZkJvZHkpIHtcbiAgICAgICAgZmV0Y2hQYXJhbXMucHJvY2Vzc1JlcXVlc3RFbmRPZkJvZHkoKVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIDMuIExldCBwcm9jZXNzQm9keUVycm9yIGdpdmVuIGUgYmUgdGhlc2Ugc3RlcHM6XG4gICAgY29uc3QgcHJvY2Vzc0JvZHlFcnJvciA9IChlKSA9PiB7XG4gICAgICAvLyAxLiBJZiBmZXRjaFBhcmFtcyBpcyBjYW5jZWxlZCwgdGhlbiBhYm9ydCB0aGVzZSBzdGVwcy5cbiAgICAgIGlmIChpc0NhbmNlbGxlZChmZXRjaFBhcmFtcykpIHtcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIC8vIDIuIElmIGUgaXMgYW4gXCJBYm9ydEVycm9yXCIgRE9NRXhjZXB0aW9uLCB0aGVuIGFib3J0IGZldGNoUGFyYW1zXHUyMDE5cyBjb250cm9sbGVyLlxuICAgICAgaWYgKGUubmFtZSA9PT0gJ0Fib3J0RXJyb3InKSB7XG4gICAgICAgIGZldGNoUGFyYW1zLmNvbnRyb2xsZXIuYWJvcnQoKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZmV0Y2hQYXJhbXMuY29udHJvbGxlci50ZXJtaW5hdGUoZSlcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyA0LiBJbmNyZW1lbnRhbGx5IHJlYWQgcmVxdWVzdFx1MjAxOXMgYm9keSBnaXZlbiBwcm9jZXNzQm9keUNodW5rLCBwcm9jZXNzRW5kT2ZCb2R5LFxuICAgIC8vIHByb2Nlc3NCb2R5RXJyb3IsIGFuZCBmZXRjaFBhcmFtc1x1MjAxOXMgdGFzayBkZXN0aW5hdGlvbi5cbiAgICByZXF1ZXN0Qm9keSA9IChhc3luYyBmdW5jdGlvbiAqICgpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGZvciBhd2FpdCAoY29uc3QgYnl0ZXMgb2YgcmVxdWVzdC5ib2R5LnN0cmVhbSkge1xuICAgICAgICAgIHlpZWxkICogcHJvY2Vzc0JvZHlDaHVuayhieXRlcylcbiAgICAgICAgfVxuICAgICAgICBwcm9jZXNzRW5kT2ZCb2R5KClcbiAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICBwcm9jZXNzQm9keUVycm9yKGVycilcbiAgICAgIH1cbiAgICB9KSgpXG4gIH1cblxuICB0cnkge1xuICAgIC8vIHNvY2tldCBpcyBvbmx5IHByb3ZpZGVkIGZvciB3ZWJzb2NrZXRzXG4gICAgY29uc3QgeyBib2R5LCBzdGF0dXMsIHN0YXR1c1RleHQsIGhlYWRlcnNMaXN0LCBzb2NrZXQgfSA9IGF3YWl0IGRpc3BhdGNoKHsgYm9keTogcmVxdWVzdEJvZHkgfSlcblxuICAgIGlmIChzb2NrZXQpIHtcbiAgICAgIHJlc3BvbnNlID0gbWFrZVJlc3BvbnNlKHsgc3RhdHVzLCBzdGF0dXNUZXh0LCBoZWFkZXJzTGlzdCwgc29ja2V0IH0pXG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IGl0ZXJhdG9yID0gYm9keVtTeW1ib2wuYXN5bmNJdGVyYXRvcl0oKVxuICAgICAgZmV0Y2hQYXJhbXMuY29udHJvbGxlci5uZXh0ID0gKCkgPT4gaXRlcmF0b3IubmV4dCgpXG5cbiAgICAgIHJlc3BvbnNlID0gbWFrZVJlc3BvbnNlKHsgc3RhdHVzLCBzdGF0dXNUZXh0LCBoZWFkZXJzTGlzdCB9KVxuICAgIH1cbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgLy8gMTAuIElmIGFib3J0ZWQsIHRoZW46XG4gICAgaWYgKGVyci5uYW1lID09PSAnQWJvcnRFcnJvcicpIHtcbiAgICAgIC8vIDEuIElmIGNvbm5lY3Rpb24gdXNlcyBIVFRQLzIsIHRoZW4gdHJhbnNtaXQgYW4gUlNUX1NUUkVBTSBmcmFtZS5cbiAgICAgIGZldGNoUGFyYW1zLmNvbnRyb2xsZXIuY29ubmVjdGlvbi5kZXN0cm95KClcblxuICAgICAgLy8gMi4gUmV0dXJuIHRoZSBhcHByb3ByaWF0ZSBuZXR3b3JrIGVycm9yIGZvciBmZXRjaFBhcmFtcy5cbiAgICAgIHJldHVybiBtYWtlQXBwcm9wcmlhdGVOZXR3b3JrRXJyb3IoZmV0Y2hQYXJhbXMsIGVycilcbiAgICB9XG5cbiAgICByZXR1cm4gbWFrZU5ldHdvcmtFcnJvcihlcnIpXG4gIH1cblxuICAvLyAxMS4gTGV0IHB1bGxBbGdvcml0aG0gYmUgYW4gYWN0aW9uIHRoYXQgcmVzdW1lcyB0aGUgb25nb2luZyBmZXRjaFxuICAvLyBpZiBpdCBpcyBzdXNwZW5kZWQuXG4gIGNvbnN0IHB1bGxBbGdvcml0aG0gPSBhc3luYyAoKSA9PiB7XG4gICAgYXdhaXQgZmV0Y2hQYXJhbXMuY29udHJvbGxlci5yZXN1bWUoKVxuICB9XG5cbiAgLy8gMTIuIExldCBjYW5jZWxBbGdvcml0aG0gYmUgYW4gYWxnb3JpdGhtIHRoYXQgYWJvcnRzIGZldGNoUGFyYW1zXHUyMDE5c1xuICAvLyBjb250cm9sbGVyIHdpdGggcmVhc29uLCBnaXZlbiByZWFzb24uXG4gIGNvbnN0IGNhbmNlbEFsZ29yaXRobSA9IChyZWFzb24pID0+IHtcbiAgICAvLyBJZiB0aGUgYWJvcnRlZCBmZXRjaCB3YXMgYWxyZWFkeSB0ZXJtaW5hdGVkLCB0aGVuIHdlIGRvIG5vdFxuICAgIC8vIG5lZWQgdG8gZG8gYW55dGhpbmcuXG4gICAgaWYgKCFpc0NhbmNlbGxlZChmZXRjaFBhcmFtcykpIHtcbiAgICAgIGZldGNoUGFyYW1zLmNvbnRyb2xsZXIuYWJvcnQocmVhc29uKVxuICAgIH1cbiAgfVxuXG4gIC8vIDEzLiBMZXQgaGlnaFdhdGVyTWFyayBiZSBhIG5vbi1uZWdhdGl2ZSwgbm9uLU5hTiBudW1iZXIsIGNob3NlbiBieVxuICAvLyB0aGUgdXNlciBhZ2VudC5cbiAgLy8gVE9ET1xuXG4gIC8vIDE0LiBMZXQgc2l6ZUFsZ29yaXRobSBiZSBhbiBhbGdvcml0aG0gdGhhdCBhY2NlcHRzIGEgY2h1bmsgb2JqZWN0XG4gIC8vIGFuZCByZXR1cm5zIGEgbm9uLW5lZ2F0aXZlLCBub24tTmFOLCBub24taW5maW5pdGUgbnVtYmVyLCBjaG9zZW4gYnkgdGhlIHVzZXIgYWdlbnQuXG4gIC8vIFRPRE9cblxuICAvLyAxNS4gTGV0IHN0cmVhbSBiZSBhIG5ldyBSZWFkYWJsZVN0cmVhbS5cbiAgLy8gMTYuIFNldCB1cCBzdHJlYW0gd2l0aCBieXRlIHJlYWRpbmcgc3VwcG9ydCB3aXRoIHB1bGxBbGdvcml0aG0gc2V0IHRvIHB1bGxBbGdvcml0aG0sXG4gIC8vICAgICBjYW5jZWxBbGdvcml0aG0gc2V0IHRvIGNhbmNlbEFsZ29yaXRobS5cbiAgY29uc3Qgc3RyZWFtID0gbmV3IFJlYWRhYmxlU3RyZWFtKFxuICAgIHtcbiAgICAgIGFzeW5jIHN0YXJ0IChjb250cm9sbGVyKSB7XG4gICAgICAgIGZldGNoUGFyYW1zLmNvbnRyb2xsZXIuY29udHJvbGxlciA9IGNvbnRyb2xsZXJcbiAgICAgIH0sXG4gICAgICBhc3luYyBwdWxsIChjb250cm9sbGVyKSB7XG4gICAgICAgIGF3YWl0IHB1bGxBbGdvcml0aG0oY29udHJvbGxlcilcbiAgICAgIH0sXG4gICAgICBhc3luYyBjYW5jZWwgKHJlYXNvbikge1xuICAgICAgICBhd2FpdCBjYW5jZWxBbGdvcml0aG0ocmVhc29uKVxuICAgICAgfSxcbiAgICAgIHR5cGU6ICdieXRlcydcbiAgICB9XG4gIClcblxuICAvLyAxNy4gUnVuIHRoZXNlIHN0ZXBzLCBidXQgYWJvcnQgd2hlbiB0aGUgb25nb2luZyBmZXRjaCBpcyB0ZXJtaW5hdGVkOlxuXG4gIC8vICAgIDEuIFNldCByZXNwb25zZVx1MjAxOXMgYm9keSB0byBhIG5ldyBib2R5IHdob3NlIHN0cmVhbSBpcyBzdHJlYW0uXG4gIHJlc3BvbnNlLmJvZHkgPSB7IHN0cmVhbSwgc291cmNlOiBudWxsLCBsZW5ndGg6IG51bGwgfVxuXG4gIC8vICAgIDIuIElmIHJlc3BvbnNlIGlzIG5vdCBhIG5ldHdvcmsgZXJyb3IgYW5kIHJlcXVlc3RcdTIwMTlzIGNhY2hlIG1vZGUgaXNcbiAgLy8gICAgbm90IFwibm8tc3RvcmVcIiwgdGhlbiB1cGRhdGUgcmVzcG9uc2UgaW4gaHR0cENhY2hlIGZvciByZXF1ZXN0LlxuICAvLyAgICBUT0RPXG5cbiAgLy8gICAgMy4gSWYgaW5jbHVkZUNyZWRlbnRpYWxzIGlzIHRydWUgYW5kIHRoZSB1c2VyIGFnZW50IGlzIG5vdCBjb25maWd1cmVkXG4gIC8vICAgIHRvIGJsb2NrIGNvb2tpZXMgZm9yIHJlcXVlc3QgKHNlZSBzZWN0aW9uIDcgb2YgW0NPT0tJRVNdKSwgdGhlbiBydW4gdGhlXG4gIC8vICAgIFwic2V0LWNvb2tpZS1zdHJpbmdcIiBwYXJzaW5nIGFsZ29yaXRobSAoc2VlIHNlY3Rpb24gNS4yIG9mIFtDT09LSUVTXSkgb25cbiAgLy8gICAgdGhlIHZhbHVlIG9mIGVhY2ggaGVhZGVyIHdob3NlIG5hbWUgaXMgYSBieXRlLWNhc2UtaW5zZW5zaXRpdmUgbWF0Y2ggZm9yXG4gIC8vICAgIGBTZXQtQ29va2llYCBpbiByZXNwb25zZVx1MjAxOXMgaGVhZGVyIGxpc3QsIGlmIGFueSwgYW5kIHJlcXVlc3RcdTIwMTlzIGN1cnJlbnQgVVJMLlxuICAvLyAgICBUT0RPXG5cbiAgLy8gMTguIElmIGFib3J0ZWQsIHRoZW46XG4gIC8vIFRPRE9cblxuICAvLyAxOS4gUnVuIHRoZXNlIHN0ZXBzIGluIHBhcmFsbGVsOlxuXG4gIC8vICAgIDEuIFJ1biB0aGVzZSBzdGVwcywgYnV0IGFib3J0IHdoZW4gZmV0Y2hQYXJhbXMgaXMgY2FuY2VsZWQ6XG4gIGZldGNoUGFyYW1zLmNvbnRyb2xsZXIub25BYm9ydGVkID0gb25BYm9ydGVkXG4gIGZldGNoUGFyYW1zLmNvbnRyb2xsZXIub24oJ3Rlcm1pbmF0ZWQnLCBvbkFib3J0ZWQpXG4gIGZldGNoUGFyYW1zLmNvbnRyb2xsZXIucmVzdW1lID0gYXN5bmMgKCkgPT4ge1xuICAgIC8vIDEuIFdoaWxlIHRydWVcbiAgICB3aGlsZSAodHJ1ZSkge1xuICAgICAgLy8gMS0zLiBTZWUgb25EYXRhLi4uXG5cbiAgICAgIC8vIDQuIFNldCBieXRlcyB0byB0aGUgcmVzdWx0IG9mIGhhbmRsaW5nIGNvbnRlbnQgY29kaW5ncyBnaXZlblxuICAgICAgLy8gY29kaW5ncyBhbmQgYnl0ZXMuXG4gICAgICBsZXQgYnl0ZXNcbiAgICAgIGxldCBpc0ZhaWx1cmVcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHsgZG9uZSwgdmFsdWUgfSA9IGF3YWl0IGZldGNoUGFyYW1zLmNvbnRyb2xsZXIubmV4dCgpXG5cbiAgICAgICAgaWYgKGlzQWJvcnRlZChmZXRjaFBhcmFtcykpIHtcbiAgICAgICAgICBicmVha1xuICAgICAgICB9XG5cbiAgICAgICAgYnl0ZXMgPSBkb25lID8gdW5kZWZpbmVkIDogdmFsdWVcbiAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICBpZiAoZmV0Y2hQYXJhbXMuY29udHJvbGxlci5lbmRlZCAmJiAhdGltaW5nSW5mby5lbmNvZGVkQm9keVNpemUpIHtcbiAgICAgICAgICAvLyB6bGliIGRvZXNuJ3QgbGlrZSBlbXB0eSBzdHJlYW1zLlxuICAgICAgICAgIGJ5dGVzID0gdW5kZWZpbmVkXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgYnl0ZXMgPSBlcnJcblxuICAgICAgICAgIC8vIGVyciBtYXkgYmUgcHJvcGFnYXRlZCBmcm9tIHRoZSByZXN1bHQgb2YgY2FsbGluZyByZWFkYWJsZXN0cmVhbS5jYW5jZWwsXG4gICAgICAgICAgLy8gd2hpY2ggbWlnaHQgbm90IGJlIGFuIGVycm9yLiBodHRwczovL2dpdGh1Yi5jb20vbm9kZWpzL3VuZGljaS9pc3N1ZXMvMjAwOVxuICAgICAgICAgIGlzRmFpbHVyZSA9IHRydWVcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAoYnl0ZXMgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAvLyAyLiBPdGhlcndpc2UsIGlmIHRoZSBieXRlcyB0cmFuc21pc3Npb24gZm9yIHJlc3BvbnNlXHUyMDE5cyBtZXNzYWdlXG4gICAgICAgIC8vIGJvZHkgaXMgZG9uZSBub3JtYWxseSBhbmQgc3RyZWFtIGlzIHJlYWRhYmxlLCB0aGVuIGNsb3NlXG4gICAgICAgIC8vIHN0cmVhbSwgZmluYWxpemUgcmVzcG9uc2UgZm9yIGZldGNoUGFyYW1zIGFuZCByZXNwb25zZSwgYW5kXG4gICAgICAgIC8vIGFib3J0IHRoZXNlIGluLXBhcmFsbGVsIHN0ZXBzLlxuICAgICAgICByZWFkYWJsZVN0cmVhbUNsb3NlKGZldGNoUGFyYW1zLmNvbnRyb2xsZXIuY29udHJvbGxlcilcblxuICAgICAgICBmaW5hbGl6ZVJlc3BvbnNlKGZldGNoUGFyYW1zLCByZXNwb25zZSlcblxuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgLy8gNS4gSW5jcmVhc2UgdGltaW5nSW5mb1x1MjAxOXMgZGVjb2RlZCBib2R5IHNpemUgYnkgYnl0ZXNcdTIwMTlzIGxlbmd0aC5cbiAgICAgIHRpbWluZ0luZm8uZGVjb2RlZEJvZHlTaXplICs9IGJ5dGVzPy5ieXRlTGVuZ3RoID8/IDBcblxuICAgICAgLy8gNi4gSWYgYnl0ZXMgaXMgZmFpbHVyZSwgdGhlbiB0ZXJtaW5hdGUgZmV0Y2hQYXJhbXNcdTIwMTlzIGNvbnRyb2xsZXIuXG4gICAgICBpZiAoaXNGYWlsdXJlKSB7XG4gICAgICAgIGZldGNoUGFyYW1zLmNvbnRyb2xsZXIudGVybWluYXRlKGJ5dGVzKVxuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgLy8gNy4gRW5xdWV1ZSBhIFVpbnQ4QXJyYXkgd3JhcHBpbmcgYW4gQXJyYXlCdWZmZXIgY29udGFpbmluZyBieXRlc1xuICAgICAgLy8gaW50byBzdHJlYW0uXG4gICAgICBjb25zdCBidWZmZXIgPSBuZXcgVWludDhBcnJheShieXRlcylcbiAgICAgIGlmIChidWZmZXIuYnl0ZUxlbmd0aCkge1xuICAgICAgICBmZXRjaFBhcmFtcy5jb250cm9sbGVyLmNvbnRyb2xsZXIuZW5xdWV1ZShidWZmZXIpXG4gICAgICB9XG5cbiAgICAgIC8vIDguIElmIHN0cmVhbSBpcyBlcnJvcmVkLCB0aGVuIHRlcm1pbmF0ZSB0aGUgb25nb2luZyBmZXRjaC5cbiAgICAgIGlmIChpc0Vycm9yZWQoc3RyZWFtKSkge1xuICAgICAgICBmZXRjaFBhcmFtcy5jb250cm9sbGVyLnRlcm1pbmF0ZSgpXG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICAvLyA5LiBJZiBzdHJlYW0gZG9lc25cdTIwMTl0IG5lZWQgbW9yZSBkYXRhIGFzayB0aGUgdXNlciBhZ2VudCB0byBzdXNwZW5kXG4gICAgICAvLyB0aGUgb25nb2luZyBmZXRjaC5cbiAgICAgIGlmIChmZXRjaFBhcmFtcy5jb250cm9sbGVyLmNvbnRyb2xsZXIuZGVzaXJlZFNpemUgPD0gMCkge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyAgICAyLiBJZiBhYm9ydGVkLCB0aGVuOlxuICBmdW5jdGlvbiBvbkFib3J0ZWQgKHJlYXNvbikge1xuICAgIC8vIDIuIElmIGZldGNoUGFyYW1zIGlzIGFib3J0ZWQsIHRoZW46XG4gICAgaWYgKGlzQWJvcnRlZChmZXRjaFBhcmFtcykpIHtcbiAgICAgIC8vIDEuIFNldCByZXNwb25zZVx1MjAxOXMgYWJvcnRlZCBmbGFnLlxuICAgICAgcmVzcG9uc2UuYWJvcnRlZCA9IHRydWVcblxuICAgICAgLy8gMi4gSWYgc3RyZWFtIGlzIHJlYWRhYmxlLCB0aGVuIGVycm9yIHN0cmVhbSB3aXRoIHRoZSByZXN1bHQgb2ZcbiAgICAgIC8vICAgIGRlc2VyaWFsaXplIGEgc2VyaWFsaXplZCBhYm9ydCByZWFzb24gZ2l2ZW4gZmV0Y2hQYXJhbXNcdTIwMTlzXG4gICAgICAvLyAgICBjb250cm9sbGVyXHUyMDE5cyBzZXJpYWxpemVkIGFib3J0IHJlYXNvbiBhbmQgYW5cbiAgICAgIC8vICAgIGltcGxlbWVudGF0aW9uLWRlZmluZWQgcmVhbG0uXG4gICAgICBpZiAoaXNSZWFkYWJsZShzdHJlYW0pKSB7XG4gICAgICAgIGZldGNoUGFyYW1zLmNvbnRyb2xsZXIuY29udHJvbGxlci5lcnJvcihcbiAgICAgICAgICBmZXRjaFBhcmFtcy5jb250cm9sbGVyLnNlcmlhbGl6ZWRBYm9ydFJlYXNvblxuICAgICAgICApXG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIDMuIE90aGVyd2lzZSwgaWYgc3RyZWFtIGlzIHJlYWRhYmxlLCBlcnJvciBzdHJlYW0gd2l0aCBhIFR5cGVFcnJvci5cbiAgICAgIGlmIChpc1JlYWRhYmxlKHN0cmVhbSkpIHtcbiAgICAgICAgZmV0Y2hQYXJhbXMuY29udHJvbGxlci5jb250cm9sbGVyLmVycm9yKG5ldyBUeXBlRXJyb3IoJ3Rlcm1pbmF0ZWQnLCB7XG4gICAgICAgICAgY2F1c2U6IGlzRXJyb3JMaWtlKHJlYXNvbikgPyByZWFzb24gOiB1bmRlZmluZWRcbiAgICAgICAgfSkpXG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gNC4gSWYgY29ubmVjdGlvbiB1c2VzIEhUVFAvMiwgdGhlbiB0cmFuc21pdCBhbiBSU1RfU1RSRUFNIGZyYW1lLlxuICAgIC8vIDUuIE90aGVyd2lzZSwgdGhlIHVzZXIgYWdlbnQgc2hvdWxkIGNsb3NlIGNvbm5lY3Rpb24gdW5sZXNzIGl0IHdvdWxkIGJlIGJhZCBmb3IgcGVyZm9ybWFuY2UgdG8gZG8gc28uXG4gICAgZmV0Y2hQYXJhbXMuY29udHJvbGxlci5jb25uZWN0aW9uLmRlc3Ryb3koKVxuICB9XG5cbiAgLy8gMjAuIFJldHVybiByZXNwb25zZS5cbiAgcmV0dXJuIHJlc3BvbnNlXG5cbiAgZnVuY3Rpb24gZGlzcGF0Y2ggKHsgYm9keSB9KSB7XG4gICAgY29uc3QgdXJsID0gcmVxdWVzdEN1cnJlbnRVUkwocmVxdWVzdClcbiAgICAvKiogQHR5cGUge2ltcG9ydCgnLi4vLi4nKS5BZ2VudH0gKi9cbiAgICBjb25zdCBhZ2VudCA9IGZldGNoUGFyYW1zLmNvbnRyb2xsZXIuZGlzcGF0Y2hlclxuXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IGFnZW50LmRpc3BhdGNoKFxuICAgICAge1xuICAgICAgICBwYXRoOiB1cmwucGF0aG5hbWUgKyB1cmwuc2VhcmNoLFxuICAgICAgICBvcmlnaW46IHVybC5vcmlnaW4sXG4gICAgICAgIG1ldGhvZDogcmVxdWVzdC5tZXRob2QsXG4gICAgICAgIGJvZHk6IGFnZW50LmlzTW9ja0FjdGl2ZSA/IHJlcXVlc3QuYm9keSAmJiAocmVxdWVzdC5ib2R5LnNvdXJjZSB8fCByZXF1ZXN0LmJvZHkuc3RyZWFtKSA6IGJvZHksXG4gICAgICAgIGhlYWRlcnM6IHJlcXVlc3QuaGVhZGVyc0xpc3QuZW50cmllcyxcbiAgICAgICAgbWF4UmVkaXJlY3Rpb25zOiAwLFxuICAgICAgICB1cGdyYWRlOiByZXF1ZXN0Lm1vZGUgPT09ICd3ZWJzb2NrZXQnID8gJ3dlYnNvY2tldCcgOiB1bmRlZmluZWRcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJvZHk6IG51bGwsXG4gICAgICAgIGFib3J0OiBudWxsLFxuXG4gICAgICAgIG9uQ29ubmVjdCAoYWJvcnQpIHtcbiAgICAgICAgICAvLyBUT0RPIChmaXgpOiBEbyB3ZSBuZWVkIGNvbm5lY3Rpb24gaGVyZT9cbiAgICAgICAgICBjb25zdCB7IGNvbm5lY3Rpb24gfSA9IGZldGNoUGFyYW1zLmNvbnRyb2xsZXJcblxuICAgICAgICAgIC8vIFNldCB0aW1pbmdJbmZvXHUyMDE5cyBmaW5hbCBjb25uZWN0aW9uIHRpbWluZyBpbmZvIHRvIHRoZSByZXN1bHQgb2YgY2FsbGluZyBjbGFtcCBhbmQgY29hcnNlblxuICAgICAgICAgIC8vIGNvbm5lY3Rpb24gdGltaW5nIGluZm8gd2l0aCBjb25uZWN0aW9uXHUyMDE5cyB0aW1pbmcgaW5mbywgdGltaW5nSW5mb1x1MjAxOXMgcG9zdC1yZWRpcmVjdCBzdGFydFxuICAgICAgICAgIC8vIHRpbWUsIGFuZCBmZXRjaFBhcmFtc1x1MjAxOXMgY3Jvc3Mtb3JpZ2luIGlzb2xhdGVkIGNhcGFiaWxpdHkuXG4gICAgICAgICAgLy8gVE9ETzogaW1wbGVtZW50IGNvbm5lY3Rpb24gdGltaW5nXG4gICAgICAgICAgdGltaW5nSW5mby5maW5hbENvbm5lY3Rpb25UaW1pbmdJbmZvID0gY2xhbXBBbmRDb2Fyc2VuQ29ubmVjdGlvblRpbWluZ0luZm8odW5kZWZpbmVkLCB0aW1pbmdJbmZvLnBvc3RSZWRpcmVjdFN0YXJ0VGltZSwgZmV0Y2hQYXJhbXMuY3Jvc3NPcmlnaW5Jc29sYXRlZENhcGFiaWxpdHkpXG5cbiAgICAgICAgICBpZiAoY29ubmVjdGlvbi5kZXN0cm95ZWQpIHtcbiAgICAgICAgICAgIGFib3J0KG5ldyBET01FeGNlcHRpb24oJ1RoZSBvcGVyYXRpb24gd2FzIGFib3J0ZWQuJywgJ0Fib3J0RXJyb3InKSlcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZmV0Y2hQYXJhbXMuY29udHJvbGxlci5vbigndGVybWluYXRlZCcsIGFib3J0KVxuICAgICAgICAgICAgdGhpcy5hYm9ydCA9IGNvbm5lY3Rpb24uYWJvcnQgPSBhYm9ydFxuICAgICAgICAgIH1cblxuICAgICAgICAgIC8vIFNldCB0aW1pbmdJbmZvXHUyMDE5cyBmaW5hbCBuZXR3b3JrLXJlcXVlc3Qgc3RhcnQgdGltZSB0byB0aGUgY29hcnNlbmVkIHNoYXJlZCBjdXJyZW50IHRpbWUgZ2l2ZW5cbiAgICAgICAgICAvLyBmZXRjaFBhcmFtc1x1MjAxOXMgY3Jvc3Mtb3JpZ2luIGlzb2xhdGVkIGNhcGFiaWxpdHkuXG4gICAgICAgICAgdGltaW5nSW5mby5maW5hbE5ldHdvcmtSZXF1ZXN0U3RhcnRUaW1lID0gY29hcnNlbmVkU2hhcmVkQ3VycmVudFRpbWUoZmV0Y2hQYXJhbXMuY3Jvc3NPcmlnaW5Jc29sYXRlZENhcGFiaWxpdHkpXG4gICAgICAgIH0sXG5cbiAgICAgICAgb25SZXNwb25zZVN0YXJ0ZWQgKCkge1xuICAgICAgICAgIC8vIFNldCB0aW1pbmdJbmZvXHUyMDE5cyBmaW5hbCBuZXR3b3JrLXJlc3BvbnNlIHN0YXJ0IHRpbWUgdG8gdGhlIGNvYXJzZW5lZCBzaGFyZWQgY3VycmVudFxuICAgICAgICAgIC8vIHRpbWUgZ2l2ZW4gZmV0Y2hQYXJhbXNcdTIwMTlzIGNyb3NzLW9yaWdpbiBpc29sYXRlZCBjYXBhYmlsaXR5LCBpbW1lZGlhdGVseSBhZnRlciB0aGVcbiAgICAgICAgICAvLyB1c2VyIGFnZW50XHUyMDE5cyBIVFRQIHBhcnNlciByZWNlaXZlcyB0aGUgZmlyc3QgYnl0ZSBvZiB0aGUgcmVzcG9uc2UgKGUuZy4sIGZyYW1lIGhlYWRlclxuICAgICAgICAgIC8vIGJ5dGVzIGZvciBIVFRQLzIgb3IgcmVzcG9uc2Ugc3RhdHVzIGxpbmUgZm9yIEhUVFAvMS54KS5cbiAgICAgICAgICB0aW1pbmdJbmZvLmZpbmFsTmV0d29ya1Jlc3BvbnNlU3RhcnRUaW1lID0gY29hcnNlbmVkU2hhcmVkQ3VycmVudFRpbWUoZmV0Y2hQYXJhbXMuY3Jvc3NPcmlnaW5Jc29sYXRlZENhcGFiaWxpdHkpXG4gICAgICAgIH0sXG5cbiAgICAgICAgb25IZWFkZXJzIChzdGF0dXMsIHJhd0hlYWRlcnMsIHJlc3VtZSwgc3RhdHVzVGV4dCkge1xuICAgICAgICAgIGlmIChzdGF0dXMgPCAyMDApIHtcbiAgICAgICAgICAgIHJldHVyblxuICAgICAgICAgIH1cblxuICAgICAgICAgIC8qKiBAdHlwZSB7c3RyaW5nW119ICovXG4gICAgICAgICAgbGV0IGNvZGluZ3MgPSBbXVxuICAgICAgICAgIGxldCBsb2NhdGlvbiA9ICcnXG5cbiAgICAgICAgICBjb25zdCBoZWFkZXJzTGlzdCA9IG5ldyBIZWFkZXJzTGlzdCgpXG5cbiAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHJhd0hlYWRlcnMubGVuZ3RoOyBpICs9IDIpIHtcbiAgICAgICAgICAgIGhlYWRlcnNMaXN0LmFwcGVuZChidWZmZXJUb0xvd2VyQ2FzZWRIZWFkZXJOYW1lKHJhd0hlYWRlcnNbaV0pLCByYXdIZWFkZXJzW2kgKyAxXS50b1N0cmluZygnbGF0aW4xJyksIHRydWUpXG4gICAgICAgICAgfVxuICAgICAgICAgIGNvbnN0IGNvbnRlbnRFbmNvZGluZyA9IGhlYWRlcnNMaXN0LmdldCgnY29udGVudC1lbmNvZGluZycsIHRydWUpXG4gICAgICAgICAgaWYgKGNvbnRlbnRFbmNvZGluZykge1xuICAgICAgICAgICAgLy8gaHR0cHM6Ly93d3cucmZjLWVkaXRvci5vcmcvcmZjL3JmYzcyMzEjc2VjdGlvbi0zLjEuMi4xXG4gICAgICAgICAgICAvLyBcIkFsbCBjb250ZW50LWNvZGluZyB2YWx1ZXMgYXJlIGNhc2UtaW5zZW5zaXRpdmUuLi5cIlxuICAgICAgICAgICAgY29kaW5ncyA9IGNvbnRlbnRFbmNvZGluZy50b0xvd2VyQ2FzZSgpLnNwbGl0KCcsJykubWFwKCh4KSA9PiB4LnRyaW0oKSlcbiAgICAgICAgICB9XG4gICAgICAgICAgbG9jYXRpb24gPSBoZWFkZXJzTGlzdC5nZXQoJ2xvY2F0aW9uJywgdHJ1ZSlcblxuICAgICAgICAgIHRoaXMuYm9keSA9IG5ldyBSZWFkYWJsZSh7IHJlYWQ6IHJlc3VtZSB9KVxuXG4gICAgICAgICAgY29uc3QgZGVjb2RlcnMgPSBbXVxuXG4gICAgICAgICAgY29uc3Qgd2lsbEZvbGxvdyA9IGxvY2F0aW9uICYmIHJlcXVlc3QucmVkaXJlY3QgPT09ICdmb2xsb3cnICYmXG4gICAgICAgICAgICByZWRpcmVjdFN0YXR1c1NldC5oYXMoc3RhdHVzKVxuXG4gICAgICAgICAgLy8gaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvSFRUUC9IZWFkZXJzL0NvbnRlbnQtRW5jb2RpbmdcbiAgICAgICAgICBpZiAoY29kaW5ncy5sZW5ndGggIT09IDAgJiYgcmVxdWVzdC5tZXRob2QgIT09ICdIRUFEJyAmJiByZXF1ZXN0Lm1ldGhvZCAhPT0gJ0NPTk5FQ1QnICYmICFudWxsQm9keVN0YXR1cy5pbmNsdWRlcyhzdGF0dXMpICYmICF3aWxsRm9sbG93KSB7XG4gICAgICAgICAgICBmb3IgKGxldCBpID0gY29kaW5ncy5sZW5ndGggLSAxOyBpID49IDA7IC0taSkge1xuICAgICAgICAgICAgICBjb25zdCBjb2RpbmcgPSBjb2RpbmdzW2ldXG4gICAgICAgICAgICAgIC8vIGh0dHBzOi8vd3d3LnJmYy1lZGl0b3Iub3JnL3JmYy9yZmM5MTEyLmh0bWwjc2VjdGlvbi03LjJcbiAgICAgICAgICAgICAgaWYgKGNvZGluZyA9PT0gJ3gtZ3ppcCcgfHwgY29kaW5nID09PSAnZ3ppcCcpIHtcbiAgICAgICAgICAgICAgICBkZWNvZGVycy5wdXNoKHpsaWIuY3JlYXRlR3VuemlwKHtcbiAgICAgICAgICAgICAgICAgIC8vIEJlIGxlc3Mgc3RyaWN0IHdoZW4gZGVjb2RpbmcgY29tcHJlc3NlZCByZXNwb25zZXMsIHNpbmNlIHNvbWV0aW1lc1xuICAgICAgICAgICAgICAgICAgLy8gc2VydmVycyBzZW5kIHNsaWdodGx5IGludmFsaWQgcmVzcG9uc2VzIHRoYXQgYXJlIHN0aWxsIGFjY2VwdGVkXG4gICAgICAgICAgICAgICAgICAvLyBieSBjb21tb24gYnJvd3NlcnMuXG4gICAgICAgICAgICAgICAgICAvLyBBbHdheXMgdXNpbmcgWl9TWU5DX0ZMVVNIIGlzIHdoYXQgY1VSTCBkb2VzLlxuICAgICAgICAgICAgICAgICAgZmx1c2g6IHpsaWIuY29uc3RhbnRzLlpfU1lOQ19GTFVTSCxcbiAgICAgICAgICAgICAgICAgIGZpbmlzaEZsdXNoOiB6bGliLmNvbnN0YW50cy5aX1NZTkNfRkxVU0hcbiAgICAgICAgICAgICAgICB9KSlcbiAgICAgICAgICAgICAgfSBlbHNlIGlmIChjb2RpbmcgPT09ICdkZWZsYXRlJykge1xuICAgICAgICAgICAgICAgIGRlY29kZXJzLnB1c2goY3JlYXRlSW5mbGF0ZSh7XG4gICAgICAgICAgICAgICAgICBmbHVzaDogemxpYi5jb25zdGFudHMuWl9TWU5DX0ZMVVNILFxuICAgICAgICAgICAgICAgICAgZmluaXNoRmx1c2g6IHpsaWIuY29uc3RhbnRzLlpfU1lOQ19GTFVTSFxuICAgICAgICAgICAgICAgIH0pKVxuICAgICAgICAgICAgICB9IGVsc2UgaWYgKGNvZGluZyA9PT0gJ2JyJykge1xuICAgICAgICAgICAgICAgIGRlY29kZXJzLnB1c2goemxpYi5jcmVhdGVCcm90bGlEZWNvbXByZXNzKHtcbiAgICAgICAgICAgICAgICAgIGZsdXNoOiB6bGliLmNvbnN0YW50cy5CUk9UTElfT1BFUkFUSU9OX0ZMVVNILFxuICAgICAgICAgICAgICAgICAgZmluaXNoRmx1c2g6IHpsaWIuY29uc3RhbnRzLkJST1RMSV9PUEVSQVRJT05fRkxVU0hcbiAgICAgICAgICAgICAgICB9KSlcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBkZWNvZGVycy5sZW5ndGggPSAwXG4gICAgICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnN0IG9uRXJyb3IgPSB0aGlzLm9uRXJyb3IuYmluZCh0aGlzKVxuXG4gICAgICAgICAgcmVzb2x2ZSh7XG4gICAgICAgICAgICBzdGF0dXMsXG4gICAgICAgICAgICBzdGF0dXNUZXh0LFxuICAgICAgICAgICAgaGVhZGVyc0xpc3QsXG4gICAgICAgICAgICBib2R5OiBkZWNvZGVycy5sZW5ndGhcbiAgICAgICAgICAgICAgPyBwaXBlbGluZSh0aGlzLmJvZHksIC4uLmRlY29kZXJzLCAoZXJyKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGVycikge1xuICAgICAgICAgICAgICAgICAgdGhpcy5vbkVycm9yKGVycilcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0pLm9uKCdlcnJvcicsIG9uRXJyb3IpXG4gICAgICAgICAgICAgIDogdGhpcy5ib2R5Lm9uKCdlcnJvcicsIG9uRXJyb3IpXG4gICAgICAgICAgfSlcblxuICAgICAgICAgIHJldHVybiB0cnVlXG4gICAgICAgIH0sXG5cbiAgICAgICAgb25EYXRhIChjaHVuaykge1xuICAgICAgICAgIGlmIChmZXRjaFBhcmFtcy5jb250cm9sbGVyLmR1bXApIHtcbiAgICAgICAgICAgIHJldHVyblxuICAgICAgICAgIH1cblxuICAgICAgICAgIC8vIDEuIElmIG9uZSBvciBtb3JlIGJ5dGVzIGhhdmUgYmVlbiB0cmFuc21pdHRlZCBmcm9tIHJlc3BvbnNlXHUyMDE5c1xuICAgICAgICAgIC8vIG1lc3NhZ2UgYm9keSwgdGhlbjpcblxuICAgICAgICAgIC8vICAxLiBMZXQgYnl0ZXMgYmUgdGhlIHRyYW5zbWl0dGVkIGJ5dGVzLlxuICAgICAgICAgIGNvbnN0IGJ5dGVzID0gY2h1bmtcblxuICAgICAgICAgIC8vICAyLiBMZXQgY29kaW5ncyBiZSB0aGUgcmVzdWx0IG9mIGV4dHJhY3RpbmcgaGVhZGVyIGxpc3QgdmFsdWVzXG4gICAgICAgICAgLy8gIGdpdmVuIGBDb250ZW50LUVuY29kaW5nYCBhbmQgcmVzcG9uc2VcdTIwMTlzIGhlYWRlciBsaXN0LlxuICAgICAgICAgIC8vICBTZWUgcHVsbEFsZ29yaXRobS5cblxuICAgICAgICAgIC8vICAzLiBJbmNyZWFzZSB0aW1pbmdJbmZvXHUyMDE5cyBlbmNvZGVkIGJvZHkgc2l6ZSBieSBieXRlc1x1MjAxOXMgbGVuZ3RoLlxuICAgICAgICAgIHRpbWluZ0luZm8uZW5jb2RlZEJvZHlTaXplICs9IGJ5dGVzLmJ5dGVMZW5ndGhcblxuICAgICAgICAgIC8vICA0LiBTZWUgcHVsbEFsZ29yaXRobS4uLlxuXG4gICAgICAgICAgcmV0dXJuIHRoaXMuYm9keS5wdXNoKGJ5dGVzKVxuICAgICAgICB9LFxuXG4gICAgICAgIG9uQ29tcGxldGUgKCkge1xuICAgICAgICAgIGlmICh0aGlzLmFib3J0KSB7XG4gICAgICAgICAgICBmZXRjaFBhcmFtcy5jb250cm9sbGVyLm9mZigndGVybWluYXRlZCcsIHRoaXMuYWJvcnQpXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKGZldGNoUGFyYW1zLmNvbnRyb2xsZXIub25BYm9ydGVkKSB7XG4gICAgICAgICAgICBmZXRjaFBhcmFtcy5jb250cm9sbGVyLm9mZigndGVybWluYXRlZCcsIGZldGNoUGFyYW1zLmNvbnRyb2xsZXIub25BYm9ydGVkKVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGZldGNoUGFyYW1zLmNvbnRyb2xsZXIuZW5kZWQgPSB0cnVlXG5cbiAgICAgICAgICB0aGlzLmJvZHkucHVzaChudWxsKVxuICAgICAgICB9LFxuXG4gICAgICAgIG9uRXJyb3IgKGVycm9yKSB7XG4gICAgICAgICAgaWYgKHRoaXMuYWJvcnQpIHtcbiAgICAgICAgICAgIGZldGNoUGFyYW1zLmNvbnRyb2xsZXIub2ZmKCd0ZXJtaW5hdGVkJywgdGhpcy5hYm9ydClcbiAgICAgICAgICB9XG5cbiAgICAgICAgICB0aGlzLmJvZHk/LmRlc3Ryb3koZXJyb3IpXG5cbiAgICAgICAgICBmZXRjaFBhcmFtcy5jb250cm9sbGVyLnRlcm1pbmF0ZShlcnJvcilcblxuICAgICAgICAgIHJlamVjdChlcnJvcilcbiAgICAgICAgfSxcblxuICAgICAgICBvblVwZ3JhZGUgKHN0YXR1cywgcmF3SGVhZGVycywgc29ja2V0KSB7XG4gICAgICAgICAgaWYgKHN0YXR1cyAhPT0gMTAxKSB7XG4gICAgICAgICAgICByZXR1cm5cbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb25zdCBoZWFkZXJzTGlzdCA9IG5ldyBIZWFkZXJzTGlzdCgpXG5cbiAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHJhd0hlYWRlcnMubGVuZ3RoOyBpICs9IDIpIHtcbiAgICAgICAgICAgIGhlYWRlcnNMaXN0LmFwcGVuZChidWZmZXJUb0xvd2VyQ2FzZWRIZWFkZXJOYW1lKHJhd0hlYWRlcnNbaV0pLCByYXdIZWFkZXJzW2kgKyAxXS50b1N0cmluZygnbGF0aW4xJyksIHRydWUpXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmVzb2x2ZSh7XG4gICAgICAgICAgICBzdGF0dXMsXG4gICAgICAgICAgICBzdGF0dXNUZXh0OiBTVEFUVVNfQ09ERVNbc3RhdHVzXSxcbiAgICAgICAgICAgIGhlYWRlcnNMaXN0LFxuICAgICAgICAgICAgc29ja2V0XG4gICAgICAgICAgfSlcblxuICAgICAgICAgIHJldHVybiB0cnVlXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICApKVxuICB9XG59XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICBmZXRjaCxcbiAgRmV0Y2gsXG4gIGZldGNoaW5nLFxuICBmaW5hbGl6ZUFuZFJlcG9ydFRpbWluZ1xufVxuIiwgIid1c2Ugc3RyaWN0J1xuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAga1N0YXRlOiBTeW1ib2woJ0ZpbGVSZWFkZXIgc3RhdGUnKSxcbiAga1Jlc3VsdDogU3ltYm9sKCdGaWxlUmVhZGVyIHJlc3VsdCcpLFxuICBrRXJyb3I6IFN5bWJvbCgnRmlsZVJlYWRlciBlcnJvcicpLFxuICBrTGFzdFByb2dyZXNzRXZlbnRGaXJlZDogU3ltYm9sKCdGaWxlUmVhZGVyIGxhc3QgcHJvZ3Jlc3MgZXZlbnQgZmlyZWQgdGltZXN0YW1wJyksXG4gIGtFdmVudHM6IFN5bWJvbCgnRmlsZVJlYWRlciBldmVudHMnKSxcbiAga0Fib3J0ZWQ6IFN5bWJvbCgnRmlsZVJlYWRlciBhYm9ydGVkJylcbn1cbiIsICIndXNlIHN0cmljdCdcblxuY29uc3QgeyB3ZWJpZGwgfSA9IHJlcXVpcmUoJy4uL2ZldGNoL3dlYmlkbCcpXG5cbmNvbnN0IGtTdGF0ZSA9IFN5bWJvbCgnUHJvZ3Jlc3NFdmVudCBzdGF0ZScpXG5cbi8qKlxuICogQHNlZSBodHRwczovL3hoci5zcGVjLndoYXR3Zy5vcmcvI3Byb2dyZXNzZXZlbnRcbiAqL1xuY2xhc3MgUHJvZ3Jlc3NFdmVudCBleHRlbmRzIEV2ZW50IHtcbiAgY29uc3RydWN0b3IgKHR5cGUsIGV2ZW50SW5pdERpY3QgPSB7fSkge1xuICAgIHR5cGUgPSB3ZWJpZGwuY29udmVydGVycy5ET01TdHJpbmcodHlwZSwgJ1Byb2dyZXNzRXZlbnQgY29uc3RydWN0b3InLCAndHlwZScpXG4gICAgZXZlbnRJbml0RGljdCA9IHdlYmlkbC5jb252ZXJ0ZXJzLlByb2dyZXNzRXZlbnRJbml0KGV2ZW50SW5pdERpY3QgPz8ge30pXG5cbiAgICBzdXBlcih0eXBlLCBldmVudEluaXREaWN0KVxuXG4gICAgdGhpc1trU3RhdGVdID0ge1xuICAgICAgbGVuZ3RoQ29tcHV0YWJsZTogZXZlbnRJbml0RGljdC5sZW5ndGhDb21wdXRhYmxlLFxuICAgICAgbG9hZGVkOiBldmVudEluaXREaWN0LmxvYWRlZCxcbiAgICAgIHRvdGFsOiBldmVudEluaXREaWN0LnRvdGFsXG4gICAgfVxuICB9XG5cbiAgZ2V0IGxlbmd0aENvbXB1dGFibGUgKCkge1xuICAgIHdlYmlkbC5icmFuZENoZWNrKHRoaXMsIFByb2dyZXNzRXZlbnQpXG5cbiAgICByZXR1cm4gdGhpc1trU3RhdGVdLmxlbmd0aENvbXB1dGFibGVcbiAgfVxuXG4gIGdldCBsb2FkZWQgKCkge1xuICAgIHdlYmlkbC5icmFuZENoZWNrKHRoaXMsIFByb2dyZXNzRXZlbnQpXG5cbiAgICByZXR1cm4gdGhpc1trU3RhdGVdLmxvYWRlZFxuICB9XG5cbiAgZ2V0IHRvdGFsICgpIHtcbiAgICB3ZWJpZGwuYnJhbmRDaGVjayh0aGlzLCBQcm9ncmVzc0V2ZW50KVxuXG4gICAgcmV0dXJuIHRoaXNba1N0YXRlXS50b3RhbFxuICB9XG59XG5cbndlYmlkbC5jb252ZXJ0ZXJzLlByb2dyZXNzRXZlbnRJbml0ID0gd2ViaWRsLmRpY3Rpb25hcnlDb252ZXJ0ZXIoW1xuICB7XG4gICAga2V5OiAnbGVuZ3RoQ29tcHV0YWJsZScsXG4gICAgY29udmVydGVyOiB3ZWJpZGwuY29udmVydGVycy5ib29sZWFuLFxuICAgIGRlZmF1bHRWYWx1ZTogKCkgPT4gZmFsc2VcbiAgfSxcbiAge1xuICAgIGtleTogJ2xvYWRlZCcsXG4gICAgY29udmVydGVyOiB3ZWJpZGwuY29udmVydGVyc1sndW5zaWduZWQgbG9uZyBsb25nJ10sXG4gICAgZGVmYXVsdFZhbHVlOiAoKSA9PiAwXG4gIH0sXG4gIHtcbiAgICBrZXk6ICd0b3RhbCcsXG4gICAgY29udmVydGVyOiB3ZWJpZGwuY29udmVydGVyc1sndW5zaWduZWQgbG9uZyBsb25nJ10sXG4gICAgZGVmYXVsdFZhbHVlOiAoKSA9PiAwXG4gIH0sXG4gIHtcbiAgICBrZXk6ICdidWJibGVzJyxcbiAgICBjb252ZXJ0ZXI6IHdlYmlkbC5jb252ZXJ0ZXJzLmJvb2xlYW4sXG4gICAgZGVmYXVsdFZhbHVlOiAoKSA9PiBmYWxzZVxuICB9LFxuICB7XG4gICAga2V5OiAnY2FuY2VsYWJsZScsXG4gICAgY29udmVydGVyOiB3ZWJpZGwuY29udmVydGVycy5ib29sZWFuLFxuICAgIGRlZmF1bHRWYWx1ZTogKCkgPT4gZmFsc2VcbiAgfSxcbiAge1xuICAgIGtleTogJ2NvbXBvc2VkJyxcbiAgICBjb252ZXJ0ZXI6IHdlYmlkbC5jb252ZXJ0ZXJzLmJvb2xlYW4sXG4gICAgZGVmYXVsdFZhbHVlOiAoKSA9PiBmYWxzZVxuICB9XG5dKVxuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgUHJvZ3Jlc3NFdmVudFxufVxuIiwgIid1c2Ugc3RyaWN0J1xuXG4vKipcbiAqIEBzZWUgaHR0cHM6Ly9lbmNvZGluZy5zcGVjLndoYXR3Zy5vcmcvI2NvbmNlcHQtZW5jb2RpbmctZ2V0XG4gKiBAcGFyYW0ge3N0cmluZ3x1bmRlZmluZWR9IGxhYmVsXG4gKi9cbmZ1bmN0aW9uIGdldEVuY29kaW5nIChsYWJlbCkge1xuICBpZiAoIWxhYmVsKSB7XG4gICAgcmV0dXJuICdmYWlsdXJlJ1xuICB9XG5cbiAgLy8gMS4gUmVtb3ZlIGFueSBsZWFkaW5nIGFuZCB0cmFpbGluZyBBU0NJSSB3aGl0ZXNwYWNlIGZyb20gbGFiZWwuXG4gIC8vIDIuIElmIGxhYmVsIGlzIGFuIEFTQ0lJIGNhc2UtaW5zZW5zaXRpdmUgbWF0Y2ggZm9yIGFueSBvZiB0aGVcbiAgLy8gICAgbGFiZWxzIGxpc3RlZCBpbiB0aGUgdGFibGUgYmVsb3csIHRoZW4gcmV0dXJuIHRoZVxuICAvLyAgICBjb3JyZXNwb25kaW5nIGVuY29kaW5nOyBvdGhlcndpc2UgcmV0dXJuIGZhaWx1cmUuXG4gIHN3aXRjaCAobGFiZWwudHJpbSgpLnRvTG93ZXJDYXNlKCkpIHtcbiAgICBjYXNlICd1bmljb2RlLTEtMS11dGYtOCc6XG4gICAgY2FzZSAndW5pY29kZTExdXRmOCc6XG4gICAgY2FzZSAndW5pY29kZTIwdXRmOCc6XG4gICAgY2FzZSAndXRmLTgnOlxuICAgIGNhc2UgJ3V0ZjgnOlxuICAgIGNhc2UgJ3gtdW5pY29kZTIwdXRmOCc6XG4gICAgICByZXR1cm4gJ1VURi04J1xuICAgIGNhc2UgJzg2Nic6XG4gICAgY2FzZSAnY3A4NjYnOlxuICAgIGNhc2UgJ2NzaWJtODY2JzpcbiAgICBjYXNlICdpYm04NjYnOlxuICAgICAgcmV0dXJuICdJQk04NjYnXG4gICAgY2FzZSAnY3Npc29sYXRpbjInOlxuICAgIGNhc2UgJ2lzby04ODU5LTInOlxuICAgIGNhc2UgJ2lzby1pci0xMDEnOlxuICAgIGNhc2UgJ2lzbzg4NTktMic6XG4gICAgY2FzZSAnaXNvODg1OTInOlxuICAgIGNhc2UgJ2lzb184ODU5LTInOlxuICAgIGNhc2UgJ2lzb184ODU5LTI6MTk4Nyc6XG4gICAgY2FzZSAnbDInOlxuICAgIGNhc2UgJ2xhdGluMic6XG4gICAgICByZXR1cm4gJ0lTTy04ODU5LTInXG4gICAgY2FzZSAnY3Npc29sYXRpbjMnOlxuICAgIGNhc2UgJ2lzby04ODU5LTMnOlxuICAgIGNhc2UgJ2lzby1pci0xMDknOlxuICAgIGNhc2UgJ2lzbzg4NTktMyc6XG4gICAgY2FzZSAnaXNvODg1OTMnOlxuICAgIGNhc2UgJ2lzb184ODU5LTMnOlxuICAgIGNhc2UgJ2lzb184ODU5LTM6MTk4OCc6XG4gICAgY2FzZSAnbDMnOlxuICAgIGNhc2UgJ2xhdGluMyc6XG4gICAgICByZXR1cm4gJ0lTTy04ODU5LTMnXG4gICAgY2FzZSAnY3Npc29sYXRpbjQnOlxuICAgIGNhc2UgJ2lzby04ODU5LTQnOlxuICAgIGNhc2UgJ2lzby1pci0xMTAnOlxuICAgIGNhc2UgJ2lzbzg4NTktNCc6XG4gICAgY2FzZSAnaXNvODg1OTQnOlxuICAgIGNhc2UgJ2lzb184ODU5LTQnOlxuICAgIGNhc2UgJ2lzb184ODU5LTQ6MTk4OCc6XG4gICAgY2FzZSAnbDQnOlxuICAgIGNhc2UgJ2xhdGluNCc6XG4gICAgICByZXR1cm4gJ0lTTy04ODU5LTQnXG4gICAgY2FzZSAnY3Npc29sYXRpbmN5cmlsbGljJzpcbiAgICBjYXNlICdjeXJpbGxpYyc6XG4gICAgY2FzZSAnaXNvLTg4NTktNSc6XG4gICAgY2FzZSAnaXNvLWlyLTE0NCc6XG4gICAgY2FzZSAnaXNvODg1OS01JzpcbiAgICBjYXNlICdpc284ODU5NSc6XG4gICAgY2FzZSAnaXNvXzg4NTktNSc6XG4gICAgY2FzZSAnaXNvXzg4NTktNToxOTg4JzpcbiAgICAgIHJldHVybiAnSVNPLTg4NTktNSdcbiAgICBjYXNlICdhcmFiaWMnOlxuICAgIGNhc2UgJ2FzbW8tNzA4JzpcbiAgICBjYXNlICdjc2lzbzg4NTk2ZSc6XG4gICAgY2FzZSAnY3Npc284ODU5NmknOlxuICAgIGNhc2UgJ2NzaXNvbGF0aW5hcmFiaWMnOlxuICAgIGNhc2UgJ2VjbWEtMTE0JzpcbiAgICBjYXNlICdpc28tODg1OS02JzpcbiAgICBjYXNlICdpc28tODg1OS02LWUnOlxuICAgIGNhc2UgJ2lzby04ODU5LTYtaSc6XG4gICAgY2FzZSAnaXNvLWlyLTEyNyc6XG4gICAgY2FzZSAnaXNvODg1OS02JzpcbiAgICBjYXNlICdpc284ODU5Nic6XG4gICAgY2FzZSAnaXNvXzg4NTktNic6XG4gICAgY2FzZSAnaXNvXzg4NTktNjoxOTg3JzpcbiAgICAgIHJldHVybiAnSVNPLTg4NTktNidcbiAgICBjYXNlICdjc2lzb2xhdGluZ3JlZWsnOlxuICAgIGNhc2UgJ2VjbWEtMTE4JzpcbiAgICBjYXNlICdlbG90XzkyOCc6XG4gICAgY2FzZSAnZ3JlZWsnOlxuICAgIGNhc2UgJ2dyZWVrOCc6XG4gICAgY2FzZSAnaXNvLTg4NTktNyc6XG4gICAgY2FzZSAnaXNvLWlyLTEyNic6XG4gICAgY2FzZSAnaXNvODg1OS03JzpcbiAgICBjYXNlICdpc284ODU5Nyc6XG4gICAgY2FzZSAnaXNvXzg4NTktNyc6XG4gICAgY2FzZSAnaXNvXzg4NTktNzoxOTg3JzpcbiAgICBjYXNlICdzdW5fZXVfZ3JlZWsnOlxuICAgICAgcmV0dXJuICdJU08tODg1OS03J1xuICAgIGNhc2UgJ2NzaXNvODg1OThlJzpcbiAgICBjYXNlICdjc2lzb2xhdGluaGVicmV3JzpcbiAgICBjYXNlICdoZWJyZXcnOlxuICAgIGNhc2UgJ2lzby04ODU5LTgnOlxuICAgIGNhc2UgJ2lzby04ODU5LTgtZSc6XG4gICAgY2FzZSAnaXNvLWlyLTEzOCc6XG4gICAgY2FzZSAnaXNvODg1OS04JzpcbiAgICBjYXNlICdpc284ODU5OCc6XG4gICAgY2FzZSAnaXNvXzg4NTktOCc6XG4gICAgY2FzZSAnaXNvXzg4NTktODoxOTg4JzpcbiAgICBjYXNlICd2aXN1YWwnOlxuICAgICAgcmV0dXJuICdJU08tODg1OS04J1xuICAgIGNhc2UgJ2NzaXNvODg1OThpJzpcbiAgICBjYXNlICdpc28tODg1OS04LWknOlxuICAgIGNhc2UgJ2xvZ2ljYWwnOlxuICAgICAgcmV0dXJuICdJU08tODg1OS04LUknXG4gICAgY2FzZSAnY3Npc29sYXRpbjYnOlxuICAgIGNhc2UgJ2lzby04ODU5LTEwJzpcbiAgICBjYXNlICdpc28taXItMTU3JzpcbiAgICBjYXNlICdpc284ODU5LTEwJzpcbiAgICBjYXNlICdpc284ODU5MTAnOlxuICAgIGNhc2UgJ2w2JzpcbiAgICBjYXNlICdsYXRpbjYnOlxuICAgICAgcmV0dXJuICdJU08tODg1OS0xMCdcbiAgICBjYXNlICdpc28tODg1OS0xMyc6XG4gICAgY2FzZSAnaXNvODg1OS0xMyc6XG4gICAgY2FzZSAnaXNvODg1OTEzJzpcbiAgICAgIHJldHVybiAnSVNPLTg4NTktMTMnXG4gICAgY2FzZSAnaXNvLTg4NTktMTQnOlxuICAgIGNhc2UgJ2lzbzg4NTktMTQnOlxuICAgIGNhc2UgJ2lzbzg4NTkxNCc6XG4gICAgICByZXR1cm4gJ0lTTy04ODU5LTE0J1xuICAgIGNhc2UgJ2NzaXNvbGF0aW45JzpcbiAgICBjYXNlICdpc28tODg1OS0xNSc6XG4gICAgY2FzZSAnaXNvODg1OS0xNSc6XG4gICAgY2FzZSAnaXNvODg1OTE1JzpcbiAgICBjYXNlICdpc29fODg1OS0xNSc6XG4gICAgY2FzZSAnbDknOlxuICAgICAgcmV0dXJuICdJU08tODg1OS0xNSdcbiAgICBjYXNlICdpc28tODg1OS0xNic6XG4gICAgICByZXR1cm4gJ0lTTy04ODU5LTE2J1xuICAgIGNhc2UgJ2Nza29pOHInOlxuICAgIGNhc2UgJ2tvaSc6XG4gICAgY2FzZSAna29pOCc6XG4gICAgY2FzZSAna29pOC1yJzpcbiAgICBjYXNlICdrb2k4X3InOlxuICAgICAgcmV0dXJuICdLT0k4LVInXG4gICAgY2FzZSAna29pOC1ydSc6XG4gICAgY2FzZSAna29pOC11JzpcbiAgICAgIHJldHVybiAnS09JOC1VJ1xuICAgIGNhc2UgJ2NzbWFjaW50b3NoJzpcbiAgICBjYXNlICdtYWMnOlxuICAgIGNhc2UgJ21hY2ludG9zaCc6XG4gICAgY2FzZSAneC1tYWMtcm9tYW4nOlxuICAgICAgcmV0dXJuICdtYWNpbnRvc2gnXG4gICAgY2FzZSAnaXNvLTg4NTktMTEnOlxuICAgIGNhc2UgJ2lzbzg4NTktMTEnOlxuICAgIGNhc2UgJ2lzbzg4NTkxMSc6XG4gICAgY2FzZSAndGlzLTYyMCc6XG4gICAgY2FzZSAnd2luZG93cy04NzQnOlxuICAgICAgcmV0dXJuICd3aW5kb3dzLTg3NCdcbiAgICBjYXNlICdjcDEyNTAnOlxuICAgIGNhc2UgJ3dpbmRvd3MtMTI1MCc6XG4gICAgY2FzZSAneC1jcDEyNTAnOlxuICAgICAgcmV0dXJuICd3aW5kb3dzLTEyNTAnXG4gICAgY2FzZSAnY3AxMjUxJzpcbiAgICBjYXNlICd3aW5kb3dzLTEyNTEnOlxuICAgIGNhc2UgJ3gtY3AxMjUxJzpcbiAgICAgIHJldHVybiAnd2luZG93cy0xMjUxJ1xuICAgIGNhc2UgJ2Fuc2lfeDMuNC0xOTY4JzpcbiAgICBjYXNlICdhc2NpaSc6XG4gICAgY2FzZSAnY3AxMjUyJzpcbiAgICBjYXNlICdjcDgxOSc6XG4gICAgY2FzZSAnY3Npc29sYXRpbjEnOlxuICAgIGNhc2UgJ2libTgxOSc6XG4gICAgY2FzZSAnaXNvLTg4NTktMSc6XG4gICAgY2FzZSAnaXNvLWlyLTEwMCc6XG4gICAgY2FzZSAnaXNvODg1OS0xJzpcbiAgICBjYXNlICdpc284ODU5MSc6XG4gICAgY2FzZSAnaXNvXzg4NTktMSc6XG4gICAgY2FzZSAnaXNvXzg4NTktMToxOTg3JzpcbiAgICBjYXNlICdsMSc6XG4gICAgY2FzZSAnbGF0aW4xJzpcbiAgICBjYXNlICd1cy1hc2NpaSc6XG4gICAgY2FzZSAnd2luZG93cy0xMjUyJzpcbiAgICBjYXNlICd4LWNwMTI1Mic6XG4gICAgICByZXR1cm4gJ3dpbmRvd3MtMTI1MidcbiAgICBjYXNlICdjcDEyNTMnOlxuICAgIGNhc2UgJ3dpbmRvd3MtMTI1Myc6XG4gICAgY2FzZSAneC1jcDEyNTMnOlxuICAgICAgcmV0dXJuICd3aW5kb3dzLTEyNTMnXG4gICAgY2FzZSAnY3AxMjU0JzpcbiAgICBjYXNlICdjc2lzb2xhdGluNSc6XG4gICAgY2FzZSAnaXNvLTg4NTktOSc6XG4gICAgY2FzZSAnaXNvLWlyLTE0OCc6XG4gICAgY2FzZSAnaXNvODg1OS05JzpcbiAgICBjYXNlICdpc284ODU5OSc6XG4gICAgY2FzZSAnaXNvXzg4NTktOSc6XG4gICAgY2FzZSAnaXNvXzg4NTktOToxOTg5JzpcbiAgICBjYXNlICdsNSc6XG4gICAgY2FzZSAnbGF0aW41JzpcbiAgICBjYXNlICd3aW5kb3dzLTEyNTQnOlxuICAgIGNhc2UgJ3gtY3AxMjU0JzpcbiAgICAgIHJldHVybiAnd2luZG93cy0xMjU0J1xuICAgIGNhc2UgJ2NwMTI1NSc6XG4gICAgY2FzZSAnd2luZG93cy0xMjU1JzpcbiAgICBjYXNlICd4LWNwMTI1NSc6XG4gICAgICByZXR1cm4gJ3dpbmRvd3MtMTI1NSdcbiAgICBjYXNlICdjcDEyNTYnOlxuICAgIGNhc2UgJ3dpbmRvd3MtMTI1Nic6XG4gICAgY2FzZSAneC1jcDEyNTYnOlxuICAgICAgcmV0dXJuICd3aW5kb3dzLTEyNTYnXG4gICAgY2FzZSAnY3AxMjU3JzpcbiAgICBjYXNlICd3aW5kb3dzLTEyNTcnOlxuICAgIGNhc2UgJ3gtY3AxMjU3JzpcbiAgICAgIHJldHVybiAnd2luZG93cy0xMjU3J1xuICAgIGNhc2UgJ2NwMTI1OCc6XG4gICAgY2FzZSAnd2luZG93cy0xMjU4JzpcbiAgICBjYXNlICd4LWNwMTI1OCc6XG4gICAgICByZXR1cm4gJ3dpbmRvd3MtMTI1OCdcbiAgICBjYXNlICd4LW1hYy1jeXJpbGxpYyc6XG4gICAgY2FzZSAneC1tYWMtdWtyYWluaWFuJzpcbiAgICAgIHJldHVybiAneC1tYWMtY3lyaWxsaWMnXG4gICAgY2FzZSAnY2hpbmVzZSc6XG4gICAgY2FzZSAnY3NnYjIzMTInOlxuICAgIGNhc2UgJ2NzaXNvNThnYjIzMTI4MCc6XG4gICAgY2FzZSAnZ2IyMzEyJzpcbiAgICBjYXNlICdnYl8yMzEyJzpcbiAgICBjYXNlICdnYl8yMzEyLTgwJzpcbiAgICBjYXNlICdnYmsnOlxuICAgIGNhc2UgJ2lzby1pci01OCc6XG4gICAgY2FzZSAneC1nYmsnOlxuICAgICAgcmV0dXJuICdHQksnXG4gICAgY2FzZSAnZ2IxODAzMCc6XG4gICAgICByZXR1cm4gJ2diMTgwMzAnXG4gICAgY2FzZSAnYmlnNSc6XG4gICAgY2FzZSAnYmlnNS1oa3Njcyc6XG4gICAgY2FzZSAnY24tYmlnNSc6XG4gICAgY2FzZSAnY3NiaWc1JzpcbiAgICBjYXNlICd4LXgtYmlnNSc6XG4gICAgICByZXR1cm4gJ0JpZzUnXG4gICAgY2FzZSAnY3NldWNwa2RmbXRqYXBhbmVzZSc6XG4gICAgY2FzZSAnZXVjLWpwJzpcbiAgICBjYXNlICd4LWV1Yy1qcCc6XG4gICAgICByZXR1cm4gJ0VVQy1KUCdcbiAgICBjYXNlICdjc2lzbzIwMjJqcCc6XG4gICAgY2FzZSAnaXNvLTIwMjItanAnOlxuICAgICAgcmV0dXJuICdJU08tMjAyMi1KUCdcbiAgICBjYXNlICdjc3NoaWZ0amlzJzpcbiAgICBjYXNlICdtczkzMic6XG4gICAgY2FzZSAnbXNfa2FuamknOlxuICAgIGNhc2UgJ3NoaWZ0LWppcyc6XG4gICAgY2FzZSAnc2hpZnRfamlzJzpcbiAgICBjYXNlICdzamlzJzpcbiAgICBjYXNlICd3aW5kb3dzLTMxaic6XG4gICAgY2FzZSAneC1zamlzJzpcbiAgICAgIHJldHVybiAnU2hpZnRfSklTJ1xuICAgIGNhc2UgJ2NzZXVja3InOlxuICAgIGNhc2UgJ2Nza3NjNTYwMTE5ODcnOlxuICAgIGNhc2UgJ2V1Yy1rcic6XG4gICAgY2FzZSAnaXNvLWlyLTE0OSc6XG4gICAgY2FzZSAna29yZWFuJzpcbiAgICBjYXNlICdrc19jXzU2MDEtMTk4Nyc6XG4gICAgY2FzZSAna3NfY181NjAxLTE5ODknOlxuICAgIGNhc2UgJ2tzYzU2MDEnOlxuICAgIGNhc2UgJ2tzY181NjAxJzpcbiAgICBjYXNlICd3aW5kb3dzLTk0OSc6XG4gICAgICByZXR1cm4gJ0VVQy1LUidcbiAgICBjYXNlICdjc2lzbzIwMjJrcic6XG4gICAgY2FzZSAnaHotZ2ItMjMxMic6XG4gICAgY2FzZSAnaXNvLTIwMjItY24nOlxuICAgIGNhc2UgJ2lzby0yMDIyLWNuLWV4dCc6XG4gICAgY2FzZSAnaXNvLTIwMjIta3InOlxuICAgIGNhc2UgJ3JlcGxhY2VtZW50JzpcbiAgICAgIHJldHVybiAncmVwbGFjZW1lbnQnXG4gICAgY2FzZSAndW5pY29kZWZmZmUnOlxuICAgIGNhc2UgJ3V0Zi0xNmJlJzpcbiAgICAgIHJldHVybiAnVVRGLTE2QkUnXG4gICAgY2FzZSAnY3N1bmljb2RlJzpcbiAgICBjYXNlICdpc28tMTA2NDYtdWNzLTInOlxuICAgIGNhc2UgJ3Vjcy0yJzpcbiAgICBjYXNlICd1bmljb2RlJzpcbiAgICBjYXNlICd1bmljb2RlZmVmZic6XG4gICAgY2FzZSAndXRmLTE2JzpcbiAgICBjYXNlICd1dGYtMTZsZSc6XG4gICAgICByZXR1cm4gJ1VURi0xNkxFJ1xuICAgIGNhc2UgJ3gtdXNlci1kZWZpbmVkJzpcbiAgICAgIHJldHVybiAneC11c2VyLWRlZmluZWQnXG4gICAgZGVmYXVsdDogcmV0dXJuICdmYWlsdXJlJ1xuICB9XG59XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICBnZXRFbmNvZGluZ1xufVxuIiwgIid1c2Ugc3RyaWN0J1xuXG5jb25zdCB7XG4gIGtTdGF0ZSxcbiAga0Vycm9yLFxuICBrUmVzdWx0LFxuICBrQWJvcnRlZCxcbiAga0xhc3RQcm9ncmVzc0V2ZW50RmlyZWRcbn0gPSByZXF1aXJlKCcuL3N5bWJvbHMnKVxuY29uc3QgeyBQcm9ncmVzc0V2ZW50IH0gPSByZXF1aXJlKCcuL3Byb2dyZXNzZXZlbnQnKVxuY29uc3QgeyBnZXRFbmNvZGluZyB9ID0gcmVxdWlyZSgnLi9lbmNvZGluZycpXG5jb25zdCB7IHNlcmlhbGl6ZUFNaW1lVHlwZSwgcGFyc2VNSU1FVHlwZSB9ID0gcmVxdWlyZSgnLi4vZmV0Y2gvZGF0YS11cmwnKVxuY29uc3QgeyB0eXBlcyB9ID0gcmVxdWlyZSgnbm9kZTp1dGlsJylcbmNvbnN0IHsgU3RyaW5nRGVjb2RlciB9ID0gcmVxdWlyZSgnc3RyaW5nX2RlY29kZXInKVxuY29uc3QgeyBidG9hIH0gPSByZXF1aXJlKCdub2RlOmJ1ZmZlcicpXG5cbi8qKiBAdHlwZSB7UHJvcGVydHlEZXNjcmlwdG9yfSAqL1xuY29uc3Qgc3RhdGljUHJvcGVydHlEZXNjcmlwdG9ycyA9IHtcbiAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgd3JpdGFibGU6IGZhbHNlLFxuICBjb25maWd1cmFibGU6IGZhbHNlXG59XG5cbi8qKlxuICogQHNlZSBodHRwczovL3czYy5naXRodWIuaW8vRmlsZUFQSS8jcmVhZE9wZXJhdGlvblxuICogQHBhcmFtIHtpbXBvcnQoJy4vZmlsZXJlYWRlcicpLkZpbGVSZWFkZXJ9IGZyXG4gKiBAcGFyYW0ge2ltcG9ydCgnYnVmZmVyJykuQmxvYn0gYmxvYlxuICogQHBhcmFtIHtzdHJpbmd9IHR5cGVcbiAqIEBwYXJhbSB7c3RyaW5nP30gZW5jb2RpbmdOYW1lXG4gKi9cbmZ1bmN0aW9uIHJlYWRPcGVyYXRpb24gKGZyLCBibG9iLCB0eXBlLCBlbmNvZGluZ05hbWUpIHtcbiAgLy8gMS4gSWYgZnJcdTIwMTlzIHN0YXRlIGlzIFwibG9hZGluZ1wiLCB0aHJvdyBhbiBJbnZhbGlkU3RhdGVFcnJvclxuICAvLyAgICBET01FeGNlcHRpb24uXG4gIGlmIChmcltrU3RhdGVdID09PSAnbG9hZGluZycpIHtcbiAgICB0aHJvdyBuZXcgRE9NRXhjZXB0aW9uKCdJbnZhbGlkIHN0YXRlJywgJ0ludmFsaWRTdGF0ZUVycm9yJylcbiAgfVxuXG4gIC8vIDIuIFNldCBmclx1MjAxOXMgc3RhdGUgdG8gXCJsb2FkaW5nXCIuXG4gIGZyW2tTdGF0ZV0gPSAnbG9hZGluZydcblxuICAvLyAzLiBTZXQgZnJcdTIwMTlzIHJlc3VsdCB0byBudWxsLlxuICBmcltrUmVzdWx0XSA9IG51bGxcblxuICAvLyA0LiBTZXQgZnJcdTIwMTlzIGVycm9yIHRvIG51bGwuXG4gIGZyW2tFcnJvcl0gPSBudWxsXG5cbiAgLy8gNS4gTGV0IHN0cmVhbSBiZSB0aGUgcmVzdWx0IG9mIGNhbGxpbmcgZ2V0IHN0cmVhbSBvbiBibG9iLlxuICAvKiogQHR5cGUge2ltcG9ydCgnc3RyZWFtL3dlYicpLlJlYWRhYmxlU3RyZWFtfSAqL1xuICBjb25zdCBzdHJlYW0gPSBibG9iLnN0cmVhbSgpXG5cbiAgLy8gNi4gTGV0IHJlYWRlciBiZSB0aGUgcmVzdWx0IG9mIGdldHRpbmcgYSByZWFkZXIgZnJvbSBzdHJlYW0uXG4gIGNvbnN0IHJlYWRlciA9IHN0cmVhbS5nZXRSZWFkZXIoKVxuXG4gIC8vIDcuIExldCBieXRlcyBiZSBhbiBlbXB0eSBieXRlIHNlcXVlbmNlLlxuICAvKiogQHR5cGUge1VpbnQ4QXJyYXlbXX0gKi9cbiAgY29uc3QgYnl0ZXMgPSBbXVxuXG4gIC8vIDguIExldCBjaHVua1Byb21pc2UgYmUgdGhlIHJlc3VsdCBvZiByZWFkaW5nIGEgY2h1bmsgZnJvbVxuICAvLyAgICBzdHJlYW0gd2l0aCByZWFkZXIuXG4gIGxldCBjaHVua1Byb21pc2UgPSByZWFkZXIucmVhZCgpXG5cbiAgLy8gOS4gTGV0IGlzRmlyc3RDaHVuayBiZSB0cnVlLlxuICBsZXQgaXNGaXJzdENodW5rID0gdHJ1ZVxuXG4gIC8vIDEwLiBJbiBwYXJhbGxlbCwgd2hpbGUgdHJ1ZTpcbiAgLy8gTm90ZTogXCJJbiBwYXJhbGxlbFwiIGp1c3QgbWVhbnMgbm9uLWJsb2NraW5nXG4gIC8vIE5vdGUgMjogcmVhZE9wZXJhdGlvbiBpdHNlbGYgY2Fubm90IGJlIGFzeW5jIGFzIGRvdWJsZVxuICAvLyByZWFkaW5nIHRoZSBib2R5IHdvdWxkIHRoZW4gcmVqZWN0IHRoZSBwcm9taXNlLCBpbnN0ZWFkXG4gIC8vIG9mIHRocm93aW5nIGFuIGVycm9yLlxuICA7KGFzeW5jICgpID0+IHtcbiAgICB3aGlsZSAoIWZyW2tBYm9ydGVkXSkge1xuICAgICAgLy8gMS4gV2FpdCBmb3IgY2h1bmtQcm9taXNlIHRvIGJlIGZ1bGZpbGxlZCBvciByZWplY3RlZC5cbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHsgZG9uZSwgdmFsdWUgfSA9IGF3YWl0IGNodW5rUHJvbWlzZVxuXG4gICAgICAgIC8vIDIuIElmIGNodW5rUHJvbWlzZSBpcyBmdWxmaWxsZWQsIGFuZCBpc0ZpcnN0Q2h1bmsgaXNcbiAgICAgICAgLy8gICAgdHJ1ZSwgcXVldWUgYSB0YXNrIHRvIGZpcmUgYSBwcm9ncmVzcyBldmVudCBjYWxsZWRcbiAgICAgICAgLy8gICAgbG9hZHN0YXJ0IGF0IGZyLlxuICAgICAgICBpZiAoaXNGaXJzdENodW5rICYmICFmcltrQWJvcnRlZF0pIHtcbiAgICAgICAgICBxdWV1ZU1pY3JvdGFzaygoKSA9PiB7XG4gICAgICAgICAgICBmaXJlQVByb2dyZXNzRXZlbnQoJ2xvYWRzdGFydCcsIGZyKVxuICAgICAgICAgIH0pXG4gICAgICAgIH1cblxuICAgICAgICAvLyAzLiBTZXQgaXNGaXJzdENodW5rIHRvIGZhbHNlLlxuICAgICAgICBpc0ZpcnN0Q2h1bmsgPSBmYWxzZVxuXG4gICAgICAgIC8vIDQuIElmIGNodW5rUHJvbWlzZSBpcyBmdWxmaWxsZWQgd2l0aCBhbiBvYmplY3Qgd2hvc2VcbiAgICAgICAgLy8gICAgZG9uZSBwcm9wZXJ0eSBpcyBmYWxzZSBhbmQgd2hvc2UgdmFsdWUgcHJvcGVydHkgaXNcbiAgICAgICAgLy8gICAgYSBVaW50OEFycmF5IG9iamVjdCwgcnVuIHRoZXNlIHN0ZXBzOlxuICAgICAgICBpZiAoIWRvbmUgJiYgdHlwZXMuaXNVaW50OEFycmF5KHZhbHVlKSkge1xuICAgICAgICAgIC8vIDEuIExldCBicyBiZSB0aGUgYnl0ZSBzZXF1ZW5jZSByZXByZXNlbnRlZCBieSB0aGVcbiAgICAgICAgICAvLyAgICBVaW50OEFycmF5IG9iamVjdC5cblxuICAgICAgICAgIC8vIDIuIEFwcGVuZCBicyB0byBieXRlcy5cbiAgICAgICAgICBieXRlcy5wdXNoKHZhbHVlKVxuXG4gICAgICAgICAgLy8gMy4gSWYgcm91Z2hseSA1MG1zIGhhdmUgcGFzc2VkIHNpbmNlIHRoZXNlIHN0ZXBzXG4gICAgICAgICAgLy8gICAgd2VyZSBsYXN0IGludm9rZWQsIHF1ZXVlIGEgdGFzayB0byBmaXJlIGFcbiAgICAgICAgICAvLyAgICBwcm9ncmVzcyBldmVudCBjYWxsZWQgcHJvZ3Jlc3MgYXQgZnIuXG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgKFxuICAgICAgICAgICAgICBmcltrTGFzdFByb2dyZXNzRXZlbnRGaXJlZF0gPT09IHVuZGVmaW5lZCB8fFxuICAgICAgICAgICAgICBEYXRlLm5vdygpIC0gZnJba0xhc3RQcm9ncmVzc0V2ZW50RmlyZWRdID49IDUwXG4gICAgICAgICAgICApICYmXG4gICAgICAgICAgICAhZnJba0Fib3J0ZWRdXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICBmcltrTGFzdFByb2dyZXNzRXZlbnRGaXJlZF0gPSBEYXRlLm5vdygpXG4gICAgICAgICAgICBxdWV1ZU1pY3JvdGFzaygoKSA9PiB7XG4gICAgICAgICAgICAgIGZpcmVBUHJvZ3Jlc3NFdmVudCgncHJvZ3Jlc3MnLCBmcilcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLy8gNC4gU2V0IGNodW5rUHJvbWlzZSB0byB0aGUgcmVzdWx0IG9mIHJlYWRpbmcgYVxuICAgICAgICAgIC8vICAgIGNodW5rIGZyb20gc3RyZWFtIHdpdGggcmVhZGVyLlxuICAgICAgICAgIGNodW5rUHJvbWlzZSA9IHJlYWRlci5yZWFkKClcbiAgICAgICAgfSBlbHNlIGlmIChkb25lKSB7XG4gICAgICAgICAgLy8gNS4gT3RoZXJ3aXNlLCBpZiBjaHVua1Byb21pc2UgaXMgZnVsZmlsbGVkIHdpdGggYW5cbiAgICAgICAgICAvLyAgICBvYmplY3Qgd2hvc2UgZG9uZSBwcm9wZXJ0eSBpcyB0cnVlLCBxdWV1ZSBhIHRhc2tcbiAgICAgICAgICAvLyAgICB0byBydW4gdGhlIGZvbGxvd2luZyBzdGVwcyBhbmQgYWJvcnQgdGhpcyBhbGdvcml0aG06XG4gICAgICAgICAgcXVldWVNaWNyb3Rhc2soKCkgPT4ge1xuICAgICAgICAgICAgLy8gMS4gU2V0IGZyXHUyMDE5cyBzdGF0ZSB0byBcImRvbmVcIi5cbiAgICAgICAgICAgIGZyW2tTdGF0ZV0gPSAnZG9uZSdcblxuICAgICAgICAgICAgLy8gMi4gTGV0IHJlc3VsdCBiZSB0aGUgcmVzdWx0IG9mIHBhY2thZ2UgZGF0YSBnaXZlblxuICAgICAgICAgICAgLy8gICAgYnl0ZXMsIHR5cGUsIGJsb2JcdTIwMTlzIHR5cGUsIGFuZCBlbmNvZGluZ05hbWUuXG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICBjb25zdCByZXN1bHQgPSBwYWNrYWdlRGF0YShieXRlcywgdHlwZSwgYmxvYi50eXBlLCBlbmNvZGluZ05hbWUpXG5cbiAgICAgICAgICAgICAgLy8gNC4gRWxzZTpcblxuICAgICAgICAgICAgICBpZiAoZnJba0Fib3J0ZWRdKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuXG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAvLyAxLiBTZXQgZnJcdTIwMTlzIHJlc3VsdCB0byByZXN1bHQuXG4gICAgICAgICAgICAgIGZyW2tSZXN1bHRdID0gcmVzdWx0XG5cbiAgICAgICAgICAgICAgLy8gMi4gRmlyZSBhIHByb2dyZXNzIGV2ZW50IGNhbGxlZCBsb2FkIGF0IHRoZSBmci5cbiAgICAgICAgICAgICAgZmlyZUFQcm9ncmVzc0V2ZW50KCdsb2FkJywgZnIpXG4gICAgICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgICAvLyAzLiBJZiBwYWNrYWdlIGRhdGEgdGhyZXcgYW4gZXhjZXB0aW9uIGVycm9yOlxuXG4gICAgICAgICAgICAgIC8vIDEuIFNldCBmclx1MjAxOXMgZXJyb3IgdG8gZXJyb3IuXG4gICAgICAgICAgICAgIGZyW2tFcnJvcl0gPSBlcnJvclxuXG4gICAgICAgICAgICAgIC8vIDIuIEZpcmUgYSBwcm9ncmVzcyBldmVudCBjYWxsZWQgZXJyb3IgYXQgZnIuXG4gICAgICAgICAgICAgIGZpcmVBUHJvZ3Jlc3NFdmVudCgnZXJyb3InLCBmcilcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gNS4gSWYgZnJcdTIwMTlzIHN0YXRlIGlzIG5vdCBcImxvYWRpbmdcIiwgZmlyZSBhIHByb2dyZXNzXG4gICAgICAgICAgICAvLyAgICBldmVudCBjYWxsZWQgbG9hZGVuZCBhdCB0aGUgZnIuXG4gICAgICAgICAgICBpZiAoZnJba1N0YXRlXSAhPT0gJ2xvYWRpbmcnKSB7XG4gICAgICAgICAgICAgIGZpcmVBUHJvZ3Jlc3NFdmVudCgnbG9hZGVuZCcsIGZyKVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pXG5cbiAgICAgICAgICBicmVha1xuICAgICAgICB9XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBpZiAoZnJba0Fib3J0ZWRdKSB7XG4gICAgICAgICAgcmV0dXJuXG4gICAgICAgIH1cblxuICAgICAgICAvLyA2LiBPdGhlcndpc2UsIGlmIGNodW5rUHJvbWlzZSBpcyByZWplY3RlZCB3aXRoIGFuXG4gICAgICAgIC8vICAgIGVycm9yIGVycm9yLCBxdWV1ZSBhIHRhc2sgdG8gcnVuIHRoZSBmb2xsb3dpbmdcbiAgICAgICAgLy8gICAgc3RlcHMgYW5kIGFib3J0IHRoaXMgYWxnb3JpdGhtOlxuICAgICAgICBxdWV1ZU1pY3JvdGFzaygoKSA9PiB7XG4gICAgICAgICAgLy8gMS4gU2V0IGZyXHUyMDE5cyBzdGF0ZSB0byBcImRvbmVcIi5cbiAgICAgICAgICBmcltrU3RhdGVdID0gJ2RvbmUnXG5cbiAgICAgICAgICAvLyAyLiBTZXQgZnJcdTIwMTlzIGVycm9yIHRvIGVycm9yLlxuICAgICAgICAgIGZyW2tFcnJvcl0gPSBlcnJvclxuXG4gICAgICAgICAgLy8gMy4gRmlyZSBhIHByb2dyZXNzIGV2ZW50IGNhbGxlZCBlcnJvciBhdCBmci5cbiAgICAgICAgICBmaXJlQVByb2dyZXNzRXZlbnQoJ2Vycm9yJywgZnIpXG5cbiAgICAgICAgICAvLyA0LiBJZiBmclx1MjAxOXMgc3RhdGUgaXMgbm90IFwibG9hZGluZ1wiLCBmaXJlIGEgcHJvZ3Jlc3NcbiAgICAgICAgICAvLyAgICBldmVudCBjYWxsZWQgbG9hZGVuZCBhdCBmci5cbiAgICAgICAgICBpZiAoZnJba1N0YXRlXSAhPT0gJ2xvYWRpbmcnKSB7XG4gICAgICAgICAgICBmaXJlQVByb2dyZXNzRXZlbnQoJ2xvYWRlbmQnLCBmcilcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG5cbiAgICAgICAgYnJlYWtcbiAgICAgIH1cbiAgICB9XG4gIH0pKClcbn1cblxuLyoqXG4gKiBAc2VlIGh0dHBzOi8vdzNjLmdpdGh1Yi5pby9GaWxlQVBJLyNmaXJlLWEtcHJvZ3Jlc3MtZXZlbnRcbiAqIEBzZWUgaHR0cHM6Ly9kb20uc3BlYy53aGF0d2cub3JnLyNjb25jZXB0LWV2ZW50LWZpcmVcbiAqIEBwYXJhbSB7c3RyaW5nfSBlIFRoZSBuYW1lIG9mIHRoZSBldmVudFxuICogQHBhcmFtIHtpbXBvcnQoJy4vZmlsZXJlYWRlcicpLkZpbGVSZWFkZXJ9IHJlYWRlclxuICovXG5mdW5jdGlvbiBmaXJlQVByb2dyZXNzRXZlbnQgKGUsIHJlYWRlcikge1xuICAvLyBUaGUgcHJvZ3Jlc3MgZXZlbnQgZSBkb2VzIG5vdCBidWJibGUuIGUuYnViYmxlcyBtdXN0IGJlIGZhbHNlXG4gIC8vIFRoZSBwcm9ncmVzcyBldmVudCBlIGlzIE5PVCBjYW5jZWxhYmxlLiBlLmNhbmNlbGFibGUgbXVzdCBiZSBmYWxzZVxuICBjb25zdCBldmVudCA9IG5ldyBQcm9ncmVzc0V2ZW50KGUsIHtcbiAgICBidWJibGVzOiBmYWxzZSxcbiAgICBjYW5jZWxhYmxlOiBmYWxzZVxuICB9KVxuXG4gIHJlYWRlci5kaXNwYXRjaEV2ZW50KGV2ZW50KVxufVxuXG4vKipcbiAqIEBzZWUgaHR0cHM6Ly93M2MuZ2l0aHViLmlvL0ZpbGVBUEkvI2Jsb2ItcGFja2FnZS1kYXRhXG4gKiBAcGFyYW0ge1VpbnQ4QXJyYXlbXX0gYnl0ZXNcbiAqIEBwYXJhbSB7c3RyaW5nfSB0eXBlXG4gKiBAcGFyYW0ge3N0cmluZz99IG1pbWVUeXBlXG4gKiBAcGFyYW0ge3N0cmluZz99IGVuY29kaW5nTmFtZVxuICovXG5mdW5jdGlvbiBwYWNrYWdlRGF0YSAoYnl0ZXMsIHR5cGUsIG1pbWVUeXBlLCBlbmNvZGluZ05hbWUpIHtcbiAgLy8gMS4gQSBCbG9iIGhhcyBhbiBhc3NvY2lhdGVkIHBhY2thZ2UgZGF0YSBhbGdvcml0aG0sIGdpdmVuXG4gIC8vICAgIGJ5dGVzLCBhIHR5cGUsIGEgb3B0aW9uYWwgbWltZVR5cGUsIGFuZCBhIG9wdGlvbmFsXG4gIC8vICAgIGVuY29kaW5nTmFtZSwgd2hpY2ggc3dpdGNoZXMgb24gdHlwZSBhbmQgcnVucyB0aGVcbiAgLy8gICAgYXNzb2NpYXRlZCBzdGVwczpcblxuICBzd2l0Y2ggKHR5cGUpIHtcbiAgICBjYXNlICdEYXRhVVJMJzoge1xuICAgICAgLy8gMS4gUmV0dXJuIGJ5dGVzIGFzIGEgRGF0YVVSTCBbUkZDMjM5N10gc3ViamVjdCB0b1xuICAgICAgLy8gICAgdGhlIGNvbnNpZGVyYXRpb25zIGJlbG93OlxuICAgICAgLy8gICogVXNlIG1pbWVUeXBlIGFzIHBhcnQgb2YgdGhlIERhdGEgVVJMIGlmIGl0IGlzXG4gICAgICAvLyAgICBhdmFpbGFibGUgaW4ga2VlcGluZyB3aXRoIHRoZSBEYXRhIFVSTFxuICAgICAgLy8gICAgc3BlY2lmaWNhdGlvbiBbUkZDMjM5N10uXG4gICAgICAvLyAgKiBJZiBtaW1lVHlwZSBpcyBub3QgYXZhaWxhYmxlIHJldHVybiBhIERhdGEgVVJMXG4gICAgICAvLyAgICB3aXRob3V0IGEgbWVkaWEtdHlwZS4gW1JGQzIzOTddLlxuXG4gICAgICAvLyBodHRwczovL2RhdGF0cmFja2VyLmlldGYub3JnL2RvYy9odG1sL3JmYzIzOTcjc2VjdGlvbi0zXG4gICAgICAvLyBkYXRhdXJsICAgIDo9IFwiZGF0YTpcIiBbIG1lZGlhdHlwZSBdIFsgXCI7YmFzZTY0XCIgXSBcIixcIiBkYXRhXG4gICAgICAvLyBtZWRpYXR5cGUgIDo9IFsgdHlwZSBcIi9cIiBzdWJ0eXBlIF0gKiggXCI7XCIgcGFyYW1ldGVyIClcbiAgICAgIC8vIGRhdGEgICAgICAgOj0gKnVybGNoYXJcbiAgICAgIC8vIHBhcmFtZXRlciAgOj0gYXR0cmlidXRlIFwiPVwiIHZhbHVlXG4gICAgICBsZXQgZGF0YVVSTCA9ICdkYXRhOidcblxuICAgICAgY29uc3QgcGFyc2VkID0gcGFyc2VNSU1FVHlwZShtaW1lVHlwZSB8fCAnYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtJylcblxuICAgICAgaWYgKHBhcnNlZCAhPT0gJ2ZhaWx1cmUnKSB7XG4gICAgICAgIGRhdGFVUkwgKz0gc2VyaWFsaXplQU1pbWVUeXBlKHBhcnNlZClcbiAgICAgIH1cblxuICAgICAgZGF0YVVSTCArPSAnO2Jhc2U2NCwnXG5cbiAgICAgIGNvbnN0IGRlY29kZXIgPSBuZXcgU3RyaW5nRGVjb2RlcignbGF0aW4xJylcblxuICAgICAgZm9yIChjb25zdCBjaHVuayBvZiBieXRlcykge1xuICAgICAgICBkYXRhVVJMICs9IGJ0b2EoZGVjb2Rlci53cml0ZShjaHVuaykpXG4gICAgICB9XG5cbiAgICAgIGRhdGFVUkwgKz0gYnRvYShkZWNvZGVyLmVuZCgpKVxuXG4gICAgICByZXR1cm4gZGF0YVVSTFxuICAgIH1cbiAgICBjYXNlICdUZXh0Jzoge1xuICAgICAgLy8gMS4gTGV0IGVuY29kaW5nIGJlIGZhaWx1cmVcbiAgICAgIGxldCBlbmNvZGluZyA9ICdmYWlsdXJlJ1xuXG4gICAgICAvLyAyLiBJZiB0aGUgZW5jb2RpbmdOYW1lIGlzIHByZXNlbnQsIHNldCBlbmNvZGluZyB0byB0aGVcbiAgICAgIC8vICAgIHJlc3VsdCBvZiBnZXR0aW5nIGFuIGVuY29kaW5nIGZyb20gZW5jb2RpbmdOYW1lLlxuICAgICAgaWYgKGVuY29kaW5nTmFtZSkge1xuICAgICAgICBlbmNvZGluZyA9IGdldEVuY29kaW5nKGVuY29kaW5nTmFtZSlcbiAgICAgIH1cblxuICAgICAgLy8gMy4gSWYgZW5jb2RpbmcgaXMgZmFpbHVyZSwgYW5kIG1pbWVUeXBlIGlzIHByZXNlbnQ6XG4gICAgICBpZiAoZW5jb2RpbmcgPT09ICdmYWlsdXJlJyAmJiBtaW1lVHlwZSkge1xuICAgICAgICAvLyAxLiBMZXQgdHlwZSBiZSB0aGUgcmVzdWx0IG9mIHBhcnNlIGEgTUlNRSB0eXBlXG4gICAgICAgIC8vICAgIGdpdmVuIG1pbWVUeXBlLlxuICAgICAgICBjb25zdCB0eXBlID0gcGFyc2VNSU1FVHlwZShtaW1lVHlwZSlcblxuICAgICAgICAvLyAyLiBJZiB0eXBlIGlzIG5vdCBmYWlsdXJlLCBzZXQgZW5jb2RpbmcgdG8gdGhlIHJlc3VsdFxuICAgICAgICAvLyAgICBvZiBnZXR0aW5nIGFuIGVuY29kaW5nIGZyb20gdHlwZVx1MjAxOXMgcGFyYW1ldGVyc1tcImNoYXJzZXRcIl0uXG4gICAgICAgIGlmICh0eXBlICE9PSAnZmFpbHVyZScpIHtcbiAgICAgICAgICBlbmNvZGluZyA9IGdldEVuY29kaW5nKHR5cGUucGFyYW1ldGVycy5nZXQoJ2NoYXJzZXQnKSlcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyA0LiBJZiBlbmNvZGluZyBpcyBmYWlsdXJlLCB0aGVuIHNldCBlbmNvZGluZyB0byBVVEYtOC5cbiAgICAgIGlmIChlbmNvZGluZyA9PT0gJ2ZhaWx1cmUnKSB7XG4gICAgICAgIGVuY29kaW5nID0gJ1VURi04J1xuICAgICAgfVxuXG4gICAgICAvLyA1LiBEZWNvZGUgYnl0ZXMgdXNpbmcgZmFsbGJhY2sgZW5jb2RpbmcgZW5jb2RpbmcsIGFuZFxuICAgICAgLy8gICAgcmV0dXJuIHRoZSByZXN1bHQuXG4gICAgICByZXR1cm4gZGVjb2RlKGJ5dGVzLCBlbmNvZGluZylcbiAgICB9XG4gICAgY2FzZSAnQXJyYXlCdWZmZXInOiB7XG4gICAgICAvLyBSZXR1cm4gYSBuZXcgQXJyYXlCdWZmZXIgd2hvc2UgY29udGVudHMgYXJlIGJ5dGVzLlxuICAgICAgY29uc3Qgc2VxdWVuY2UgPSBjb21iaW5lQnl0ZVNlcXVlbmNlcyhieXRlcylcblxuICAgICAgcmV0dXJuIHNlcXVlbmNlLmJ1ZmZlclxuICAgIH1cbiAgICBjYXNlICdCaW5hcnlTdHJpbmcnOiB7XG4gICAgICAvLyBSZXR1cm4gYnl0ZXMgYXMgYSBiaW5hcnkgc3RyaW5nLCBpbiB3aGljaCBldmVyeSBieXRlXG4gICAgICAvLyAgaXMgcmVwcmVzZW50ZWQgYnkgYSBjb2RlIHVuaXQgb2YgZXF1YWwgdmFsdWUgWzAuLjI1NV0uXG4gICAgICBsZXQgYmluYXJ5U3RyaW5nID0gJydcblxuICAgICAgY29uc3QgZGVjb2RlciA9IG5ldyBTdHJpbmdEZWNvZGVyKCdsYXRpbjEnKVxuXG4gICAgICBmb3IgKGNvbnN0IGNodW5rIG9mIGJ5dGVzKSB7XG4gICAgICAgIGJpbmFyeVN0cmluZyArPSBkZWNvZGVyLndyaXRlKGNodW5rKVxuICAgICAgfVxuXG4gICAgICBiaW5hcnlTdHJpbmcgKz0gZGVjb2Rlci5lbmQoKVxuXG4gICAgICByZXR1cm4gYmluYXJ5U3RyaW5nXG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogQHNlZSBodHRwczovL2VuY29kaW5nLnNwZWMud2hhdHdnLm9yZy8jZGVjb2RlXG4gKiBAcGFyYW0ge1VpbnQ4QXJyYXlbXX0gaW9RdWV1ZVxuICogQHBhcmFtIHtzdHJpbmd9IGVuY29kaW5nXG4gKi9cbmZ1bmN0aW9uIGRlY29kZSAoaW9RdWV1ZSwgZW5jb2RpbmcpIHtcbiAgY29uc3QgYnl0ZXMgPSBjb21iaW5lQnl0ZVNlcXVlbmNlcyhpb1F1ZXVlKVxuXG4gIC8vIDEuIExldCBCT01FbmNvZGluZyBiZSB0aGUgcmVzdWx0IG9mIEJPTSBzbmlmZmluZyBpb1F1ZXVlLlxuICBjb25zdCBCT01FbmNvZGluZyA9IEJPTVNuaWZmaW5nKGJ5dGVzKVxuXG4gIGxldCBzbGljZSA9IDBcblxuICAvLyAyLiBJZiBCT01FbmNvZGluZyBpcyBub24tbnVsbDpcbiAgaWYgKEJPTUVuY29kaW5nICE9PSBudWxsKSB7XG4gICAgLy8gMS4gU2V0IGVuY29kaW5nIHRvIEJPTUVuY29kaW5nLlxuICAgIGVuY29kaW5nID0gQk9NRW5jb2RpbmdcblxuICAgIC8vIDIuIFJlYWQgdGhyZWUgYnl0ZXMgZnJvbSBpb1F1ZXVlLCBpZiBCT01FbmNvZGluZyBpc1xuICAgIC8vICAgIFVURi04OyBvdGhlcndpc2UgcmVhZCB0d28gYnl0ZXMuXG4gICAgLy8gICAgKERvIG5vdGhpbmcgd2l0aCB0aG9zZSBieXRlcy4pXG4gICAgc2xpY2UgPSBCT01FbmNvZGluZyA9PT0gJ1VURi04JyA/IDMgOiAyXG4gIH1cblxuICAvLyAzLiBQcm9jZXNzIGEgcXVldWUgd2l0aCBhbiBpbnN0YW5jZSBvZiBlbmNvZGluZ1x1MjAxOXNcbiAgLy8gICAgZGVjb2RlciwgaW9RdWV1ZSwgb3V0cHV0LCBhbmQgXCJyZXBsYWNlbWVudFwiLlxuXG4gIC8vIDQuIFJldHVybiBvdXRwdXQuXG5cbiAgY29uc3Qgc2xpY2VkID0gYnl0ZXMuc2xpY2Uoc2xpY2UpXG4gIHJldHVybiBuZXcgVGV4dERlY29kZXIoZW5jb2RpbmcpLmRlY29kZShzbGljZWQpXG59XG5cbi8qKlxuICogQHNlZSBodHRwczovL2VuY29kaW5nLnNwZWMud2hhdHdnLm9yZy8jYm9tLXNuaWZmXG4gKiBAcGFyYW0ge1VpbnQ4QXJyYXl9IGlvUXVldWVcbiAqL1xuZnVuY3Rpb24gQk9NU25pZmZpbmcgKGlvUXVldWUpIHtcbiAgLy8gMS4gTGV0IEJPTSBiZSB0aGUgcmVzdWx0IG9mIHBlZWtpbmcgMyBieXRlcyBmcm9tIGlvUXVldWUsXG4gIC8vICAgIGNvbnZlcnRlZCB0byBhIGJ5dGUgc2VxdWVuY2UuXG4gIGNvbnN0IFthLCBiLCBjXSA9IGlvUXVldWVcblxuICAvLyAyLiBGb3IgZWFjaCBvZiB0aGUgcm93cyBpbiB0aGUgdGFibGUgYmVsb3csIHN0YXJ0aW5nIHdpdGhcbiAgLy8gICAgdGhlIGZpcnN0IG9uZSBhbmQgZ29pbmcgZG93biwgaWYgQk9NIHN0YXJ0cyB3aXRoIHRoZVxuICAvLyAgICBieXRlcyBnaXZlbiBpbiB0aGUgZmlyc3QgY29sdW1uLCB0aGVuIHJldHVybiB0aGVcbiAgLy8gICAgZW5jb2RpbmcgZ2l2ZW4gaW4gdGhlIGNlbGwgaW4gdGhlIHNlY29uZCBjb2x1bW4gb2YgdGhhdFxuICAvLyAgICByb3cuIE90aGVyd2lzZSwgcmV0dXJuIG51bGwuXG4gIGlmIChhID09PSAweEVGICYmIGIgPT09IDB4QkIgJiYgYyA9PT0gMHhCRikge1xuICAgIHJldHVybiAnVVRGLTgnXG4gIH0gZWxzZSBpZiAoYSA9PT0gMHhGRSAmJiBiID09PSAweEZGKSB7XG4gICAgcmV0dXJuICdVVEYtMTZCRSdcbiAgfSBlbHNlIGlmIChhID09PSAweEZGICYmIGIgPT09IDB4RkUpIHtcbiAgICByZXR1cm4gJ1VURi0xNkxFJ1xuICB9XG5cbiAgcmV0dXJuIG51bGxcbn1cblxuLyoqXG4gKiBAcGFyYW0ge1VpbnQ4QXJyYXlbXX0gc2VxdWVuY2VzXG4gKi9cbmZ1bmN0aW9uIGNvbWJpbmVCeXRlU2VxdWVuY2VzIChzZXF1ZW5jZXMpIHtcbiAgY29uc3Qgc2l6ZSA9IHNlcXVlbmNlcy5yZWR1Y2UoKGEsIGIpID0+IHtcbiAgICByZXR1cm4gYSArIGIuYnl0ZUxlbmd0aFxuICB9LCAwKVxuXG4gIGxldCBvZmZzZXQgPSAwXG5cbiAgcmV0dXJuIHNlcXVlbmNlcy5yZWR1Y2UoKGEsIGIpID0+IHtcbiAgICBhLnNldChiLCBvZmZzZXQpXG4gICAgb2Zmc2V0ICs9IGIuYnl0ZUxlbmd0aFxuICAgIHJldHVybiBhXG4gIH0sIG5ldyBVaW50OEFycmF5KHNpemUpKVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgc3RhdGljUHJvcGVydHlEZXNjcmlwdG9ycyxcbiAgcmVhZE9wZXJhdGlvbixcbiAgZmlyZUFQcm9ncmVzc0V2ZW50XG59XG4iLCAiJ3VzZSBzdHJpY3QnXG5cbmNvbnN0IHtcbiAgc3RhdGljUHJvcGVydHlEZXNjcmlwdG9ycyxcbiAgcmVhZE9wZXJhdGlvbixcbiAgZmlyZUFQcm9ncmVzc0V2ZW50XG59ID0gcmVxdWlyZSgnLi91dGlsJylcbmNvbnN0IHtcbiAga1N0YXRlLFxuICBrRXJyb3IsXG4gIGtSZXN1bHQsXG4gIGtFdmVudHMsXG4gIGtBYm9ydGVkXG59ID0gcmVxdWlyZSgnLi9zeW1ib2xzJylcbmNvbnN0IHsgd2ViaWRsIH0gPSByZXF1aXJlKCcuLi9mZXRjaC93ZWJpZGwnKVxuY29uc3QgeyBrRW51bWVyYWJsZVByb3BlcnR5IH0gPSByZXF1aXJlKCcuLi8uLi9jb3JlL3V0aWwnKVxuXG5jbGFzcyBGaWxlUmVhZGVyIGV4dGVuZHMgRXZlbnRUYXJnZXQge1xuICBjb25zdHJ1Y3RvciAoKSB7XG4gICAgc3VwZXIoKVxuXG4gICAgdGhpc1trU3RhdGVdID0gJ2VtcHR5J1xuICAgIHRoaXNba1Jlc3VsdF0gPSBudWxsXG4gICAgdGhpc1trRXJyb3JdID0gbnVsbFxuICAgIHRoaXNba0V2ZW50c10gPSB7XG4gICAgICBsb2FkZW5kOiBudWxsLFxuICAgICAgZXJyb3I6IG51bGwsXG4gICAgICBhYm9ydDogbnVsbCxcbiAgICAgIGxvYWQ6IG51bGwsXG4gICAgICBwcm9ncmVzczogbnVsbCxcbiAgICAgIGxvYWRzdGFydDogbnVsbFxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBAc2VlIGh0dHBzOi8vdzNjLmdpdGh1Yi5pby9GaWxlQVBJLyNkZm4tcmVhZEFzQXJyYXlCdWZmZXJcbiAgICogQHBhcmFtIHtpbXBvcnQoJ2J1ZmZlcicpLkJsb2J9IGJsb2JcbiAgICovXG4gIHJlYWRBc0FycmF5QnVmZmVyIChibG9iKSB7XG4gICAgd2ViaWRsLmJyYW5kQ2hlY2sodGhpcywgRmlsZVJlYWRlcilcblxuICAgIHdlYmlkbC5hcmd1bWVudExlbmd0aENoZWNrKGFyZ3VtZW50cywgMSwgJ0ZpbGVSZWFkZXIucmVhZEFzQXJyYXlCdWZmZXInKVxuXG4gICAgYmxvYiA9IHdlYmlkbC5jb252ZXJ0ZXJzLkJsb2IoYmxvYiwgeyBzdHJpY3Q6IGZhbHNlIH0pXG5cbiAgICAvLyBUaGUgcmVhZEFzQXJyYXlCdWZmZXIoYmxvYikgbWV0aG9kLCB3aGVuIGludm9rZWQsXG4gICAgLy8gbXVzdCBpbml0aWF0ZSBhIHJlYWQgb3BlcmF0aW9uIGZvciBibG9iIHdpdGggQXJyYXlCdWZmZXIuXG4gICAgcmVhZE9wZXJhdGlvbih0aGlzLCBibG9iLCAnQXJyYXlCdWZmZXInKVxuICB9XG5cbiAgLyoqXG4gICAqIEBzZWUgaHR0cHM6Ly93M2MuZ2l0aHViLmlvL0ZpbGVBUEkvI3JlYWRBc0JpbmFyeVN0cmluZ1xuICAgKiBAcGFyYW0ge2ltcG9ydCgnYnVmZmVyJykuQmxvYn0gYmxvYlxuICAgKi9cbiAgcmVhZEFzQmluYXJ5U3RyaW5nIChibG9iKSB7XG4gICAgd2ViaWRsLmJyYW5kQ2hlY2sodGhpcywgRmlsZVJlYWRlcilcblxuICAgIHdlYmlkbC5hcmd1bWVudExlbmd0aENoZWNrKGFyZ3VtZW50cywgMSwgJ0ZpbGVSZWFkZXIucmVhZEFzQmluYXJ5U3RyaW5nJylcblxuICAgIGJsb2IgPSB3ZWJpZGwuY29udmVydGVycy5CbG9iKGJsb2IsIHsgc3RyaWN0OiBmYWxzZSB9KVxuXG4gICAgLy8gVGhlIHJlYWRBc0JpbmFyeVN0cmluZyhibG9iKSBtZXRob2QsIHdoZW4gaW52b2tlZCxcbiAgICAvLyBtdXN0IGluaXRpYXRlIGEgcmVhZCBvcGVyYXRpb24gZm9yIGJsb2Igd2l0aCBCaW5hcnlTdHJpbmcuXG4gICAgcmVhZE9wZXJhdGlvbih0aGlzLCBibG9iLCAnQmluYXJ5U3RyaW5nJylcbiAgfVxuXG4gIC8qKlxuICAgKiBAc2VlIGh0dHBzOi8vdzNjLmdpdGh1Yi5pby9GaWxlQVBJLyNyZWFkQXNEYXRhVGV4dFxuICAgKiBAcGFyYW0ge2ltcG9ydCgnYnVmZmVyJykuQmxvYn0gYmxvYlxuICAgKiBAcGFyYW0ge3N0cmluZz99IGVuY29kaW5nXG4gICAqL1xuICByZWFkQXNUZXh0IChibG9iLCBlbmNvZGluZyA9IHVuZGVmaW5lZCkge1xuICAgIHdlYmlkbC5icmFuZENoZWNrKHRoaXMsIEZpbGVSZWFkZXIpXG5cbiAgICB3ZWJpZGwuYXJndW1lbnRMZW5ndGhDaGVjayhhcmd1bWVudHMsIDEsICdGaWxlUmVhZGVyLnJlYWRBc1RleHQnKVxuXG4gICAgYmxvYiA9IHdlYmlkbC5jb252ZXJ0ZXJzLkJsb2IoYmxvYiwgeyBzdHJpY3Q6IGZhbHNlIH0pXG5cbiAgICBpZiAoZW5jb2RpbmcgIT09IHVuZGVmaW5lZCkge1xuICAgICAgZW5jb2RpbmcgPSB3ZWJpZGwuY29udmVydGVycy5ET01TdHJpbmcoZW5jb2RpbmcsICdGaWxlUmVhZGVyLnJlYWRBc1RleHQnLCAnZW5jb2RpbmcnKVxuICAgIH1cblxuICAgIC8vIFRoZSByZWFkQXNUZXh0KGJsb2IsIGVuY29kaW5nKSBtZXRob2QsIHdoZW4gaW52b2tlZCxcbiAgICAvLyBtdXN0IGluaXRpYXRlIGEgcmVhZCBvcGVyYXRpb24gZm9yIGJsb2Igd2l0aCBUZXh0IGFuZCBlbmNvZGluZy5cbiAgICByZWFkT3BlcmF0aW9uKHRoaXMsIGJsb2IsICdUZXh0JywgZW5jb2RpbmcpXG4gIH1cblxuICAvKipcbiAgICogQHNlZSBodHRwczovL3czYy5naXRodWIuaW8vRmlsZUFQSS8jZGZuLXJlYWRBc0RhdGFVUkxcbiAgICogQHBhcmFtIHtpbXBvcnQoJ2J1ZmZlcicpLkJsb2J9IGJsb2JcbiAgICovXG4gIHJlYWRBc0RhdGFVUkwgKGJsb2IpIHtcbiAgICB3ZWJpZGwuYnJhbmRDaGVjayh0aGlzLCBGaWxlUmVhZGVyKVxuXG4gICAgd2ViaWRsLmFyZ3VtZW50TGVuZ3RoQ2hlY2soYXJndW1lbnRzLCAxLCAnRmlsZVJlYWRlci5yZWFkQXNEYXRhVVJMJylcblxuICAgIGJsb2IgPSB3ZWJpZGwuY29udmVydGVycy5CbG9iKGJsb2IsIHsgc3RyaWN0OiBmYWxzZSB9KVxuXG4gICAgLy8gVGhlIHJlYWRBc0RhdGFVUkwoYmxvYikgbWV0aG9kLCB3aGVuIGludm9rZWQsIG11c3RcbiAgICAvLyBpbml0aWF0ZSBhIHJlYWQgb3BlcmF0aW9uIGZvciBibG9iIHdpdGggRGF0YVVSTC5cbiAgICByZWFkT3BlcmF0aW9uKHRoaXMsIGJsb2IsICdEYXRhVVJMJylcbiAgfVxuXG4gIC8qKlxuICAgKiBAc2VlIGh0dHBzOi8vdzNjLmdpdGh1Yi5pby9GaWxlQVBJLyNkZm4tYWJvcnRcbiAgICovXG4gIGFib3J0ICgpIHtcbiAgICAvLyAxLiBJZiB0aGlzJ3Mgc3RhdGUgaXMgXCJlbXB0eVwiIG9yIGlmIHRoaXMncyBzdGF0ZSBpc1xuICAgIC8vICAgIFwiZG9uZVwiIHNldCB0aGlzJ3MgcmVzdWx0IHRvIG51bGwgYW5kIHRlcm1pbmF0ZVxuICAgIC8vICAgIHRoaXMgYWxnb3JpdGhtLlxuICAgIGlmICh0aGlzW2tTdGF0ZV0gPT09ICdlbXB0eScgfHwgdGhpc1trU3RhdGVdID09PSAnZG9uZScpIHtcbiAgICAgIHRoaXNba1Jlc3VsdF0gPSBudWxsXG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICAvLyAyLiBJZiB0aGlzJ3Mgc3RhdGUgaXMgXCJsb2FkaW5nXCIgc2V0IHRoaXMncyBzdGF0ZSB0b1xuICAgIC8vICAgIFwiZG9uZVwiIGFuZCBzZXQgdGhpcydzIHJlc3VsdCB0byBudWxsLlxuICAgIGlmICh0aGlzW2tTdGF0ZV0gPT09ICdsb2FkaW5nJykge1xuICAgICAgdGhpc1trU3RhdGVdID0gJ2RvbmUnXG4gICAgICB0aGlzW2tSZXN1bHRdID0gbnVsbFxuICAgIH1cblxuICAgIC8vIDMuIElmIHRoZXJlIGFyZSBhbnkgdGFza3MgZnJvbSB0aGlzIG9uIHRoZSBmaWxlIHJlYWRpbmdcbiAgICAvLyAgICB0YXNrIHNvdXJjZSBpbiBhbiBhZmZpbGlhdGVkIHRhc2sgcXVldWUsIHRoZW4gcmVtb3ZlXG4gICAgLy8gICAgdGhvc2UgdGFza3MgZnJvbSB0aGF0IHRhc2sgcXVldWUuXG4gICAgdGhpc1trQWJvcnRlZF0gPSB0cnVlXG5cbiAgICAvLyA0LiBUZXJtaW5hdGUgdGhlIGFsZ29yaXRobSBmb3IgdGhlIHJlYWQgbWV0aG9kIGJlaW5nIHByb2Nlc3NlZC5cbiAgICAvLyBUT0RPXG5cbiAgICAvLyA1LiBGaXJlIGEgcHJvZ3Jlc3MgZXZlbnQgY2FsbGVkIGFib3J0IGF0IHRoaXMuXG4gICAgZmlyZUFQcm9ncmVzc0V2ZW50KCdhYm9ydCcsIHRoaXMpXG5cbiAgICAvLyA2LiBJZiB0aGlzJ3Mgc3RhdGUgaXMgbm90IFwibG9hZGluZ1wiLCBmaXJlIGEgcHJvZ3Jlc3NcbiAgICAvLyAgICBldmVudCBjYWxsZWQgbG9hZGVuZCBhdCB0aGlzLlxuICAgIGlmICh0aGlzW2tTdGF0ZV0gIT09ICdsb2FkaW5nJykge1xuICAgICAgZmlyZUFQcm9ncmVzc0V2ZW50KCdsb2FkZW5kJywgdGhpcylcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQHNlZSBodHRwczovL3czYy5naXRodWIuaW8vRmlsZUFQSS8jZG9tLWZpbGVyZWFkZXItcmVhZHlzdGF0ZVxuICAgKi9cbiAgZ2V0IHJlYWR5U3RhdGUgKCkge1xuICAgIHdlYmlkbC5icmFuZENoZWNrKHRoaXMsIEZpbGVSZWFkZXIpXG5cbiAgICBzd2l0Y2ggKHRoaXNba1N0YXRlXSkge1xuICAgICAgY2FzZSAnZW1wdHknOiByZXR1cm4gdGhpcy5FTVBUWVxuICAgICAgY2FzZSAnbG9hZGluZyc6IHJldHVybiB0aGlzLkxPQURJTkdcbiAgICAgIGNhc2UgJ2RvbmUnOiByZXR1cm4gdGhpcy5ET05FXG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEBzZWUgaHR0cHM6Ly93M2MuZ2l0aHViLmlvL0ZpbGVBUEkvI2RvbS1maWxlcmVhZGVyLXJlc3VsdFxuICAgKi9cbiAgZ2V0IHJlc3VsdCAoKSB7XG4gICAgd2ViaWRsLmJyYW5kQ2hlY2sodGhpcywgRmlsZVJlYWRlcilcblxuICAgIC8vIFRoZSByZXN1bHQgYXR0cmlidXRlXHUyMDE5cyBnZXR0ZXIsIHdoZW4gaW52b2tlZCwgbXVzdCByZXR1cm5cbiAgICAvLyB0aGlzJ3MgcmVzdWx0LlxuICAgIHJldHVybiB0aGlzW2tSZXN1bHRdXG4gIH1cblxuICAvKipcbiAgICogQHNlZSBodHRwczovL3czYy5naXRodWIuaW8vRmlsZUFQSS8jZG9tLWZpbGVyZWFkZXItZXJyb3JcbiAgICovXG4gIGdldCBlcnJvciAoKSB7XG4gICAgd2ViaWRsLmJyYW5kQ2hlY2sodGhpcywgRmlsZVJlYWRlcilcblxuICAgIC8vIFRoZSBlcnJvciBhdHRyaWJ1dGVcdTIwMTlzIGdldHRlciwgd2hlbiBpbnZva2VkLCBtdXN0IHJldHVyblxuICAgIC8vIHRoaXMncyBlcnJvci5cbiAgICByZXR1cm4gdGhpc1trRXJyb3JdXG4gIH1cblxuICBnZXQgb25sb2FkZW5kICgpIHtcbiAgICB3ZWJpZGwuYnJhbmRDaGVjayh0aGlzLCBGaWxlUmVhZGVyKVxuXG4gICAgcmV0dXJuIHRoaXNba0V2ZW50c10ubG9hZGVuZFxuICB9XG5cbiAgc2V0IG9ubG9hZGVuZCAoZm4pIHtcbiAgICB3ZWJpZGwuYnJhbmRDaGVjayh0aGlzLCBGaWxlUmVhZGVyKVxuXG4gICAgaWYgKHRoaXNba0V2ZW50c10ubG9hZGVuZCkge1xuICAgICAgdGhpcy5yZW1vdmVFdmVudExpc3RlbmVyKCdsb2FkZW5kJywgdGhpc1trRXZlbnRzXS5sb2FkZW5kKVxuICAgIH1cblxuICAgIGlmICh0eXBlb2YgZm4gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHRoaXNba0V2ZW50c10ubG9hZGVuZCA9IGZuXG4gICAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWRlbmQnLCBmbilcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpc1trRXZlbnRzXS5sb2FkZW5kID0gbnVsbFxuICAgIH1cbiAgfVxuXG4gIGdldCBvbmVycm9yICgpIHtcbiAgICB3ZWJpZGwuYnJhbmRDaGVjayh0aGlzLCBGaWxlUmVhZGVyKVxuXG4gICAgcmV0dXJuIHRoaXNba0V2ZW50c10uZXJyb3JcbiAgfVxuXG4gIHNldCBvbmVycm9yIChmbikge1xuICAgIHdlYmlkbC5icmFuZENoZWNrKHRoaXMsIEZpbGVSZWFkZXIpXG5cbiAgICBpZiAodGhpc1trRXZlbnRzXS5lcnJvcikge1xuICAgICAgdGhpcy5yZW1vdmVFdmVudExpc3RlbmVyKCdlcnJvcicsIHRoaXNba0V2ZW50c10uZXJyb3IpXG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBmbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgdGhpc1trRXZlbnRzXS5lcnJvciA9IGZuXG4gICAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXIoJ2Vycm9yJywgZm4pXG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXNba0V2ZW50c10uZXJyb3IgPSBudWxsXG4gICAgfVxuICB9XG5cbiAgZ2V0IG9ubG9hZHN0YXJ0ICgpIHtcbiAgICB3ZWJpZGwuYnJhbmRDaGVjayh0aGlzLCBGaWxlUmVhZGVyKVxuXG4gICAgcmV0dXJuIHRoaXNba0V2ZW50c10ubG9hZHN0YXJ0XG4gIH1cblxuICBzZXQgb25sb2Fkc3RhcnQgKGZuKSB7XG4gICAgd2ViaWRsLmJyYW5kQ2hlY2sodGhpcywgRmlsZVJlYWRlcilcblxuICAgIGlmICh0aGlzW2tFdmVudHNdLmxvYWRzdGFydCkge1xuICAgICAgdGhpcy5yZW1vdmVFdmVudExpc3RlbmVyKCdsb2Fkc3RhcnQnLCB0aGlzW2tFdmVudHNdLmxvYWRzdGFydClcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIGZuID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICB0aGlzW2tFdmVudHNdLmxvYWRzdGFydCA9IGZuXG4gICAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWRzdGFydCcsIGZuKVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzW2tFdmVudHNdLmxvYWRzdGFydCA9IG51bGxcbiAgICB9XG4gIH1cblxuICBnZXQgb25wcm9ncmVzcyAoKSB7XG4gICAgd2ViaWRsLmJyYW5kQ2hlY2sodGhpcywgRmlsZVJlYWRlcilcblxuICAgIHJldHVybiB0aGlzW2tFdmVudHNdLnByb2dyZXNzXG4gIH1cblxuICBzZXQgb25wcm9ncmVzcyAoZm4pIHtcbiAgICB3ZWJpZGwuYnJhbmRDaGVjayh0aGlzLCBGaWxlUmVhZGVyKVxuXG4gICAgaWYgKHRoaXNba0V2ZW50c10ucHJvZ3Jlc3MpIHtcbiAgICAgIHRoaXMucmVtb3ZlRXZlbnRMaXN0ZW5lcigncHJvZ3Jlc3MnLCB0aGlzW2tFdmVudHNdLnByb2dyZXNzKVxuICAgIH1cblxuICAgIGlmICh0eXBlb2YgZm4gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHRoaXNba0V2ZW50c10ucHJvZ3Jlc3MgPSBmblxuICAgICAgdGhpcy5hZGRFdmVudExpc3RlbmVyKCdwcm9ncmVzcycsIGZuKVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzW2tFdmVudHNdLnByb2dyZXNzID0gbnVsbFxuICAgIH1cbiAgfVxuXG4gIGdldCBvbmxvYWQgKCkge1xuICAgIHdlYmlkbC5icmFuZENoZWNrKHRoaXMsIEZpbGVSZWFkZXIpXG5cbiAgICByZXR1cm4gdGhpc1trRXZlbnRzXS5sb2FkXG4gIH1cblxuICBzZXQgb25sb2FkIChmbikge1xuICAgIHdlYmlkbC5icmFuZENoZWNrKHRoaXMsIEZpbGVSZWFkZXIpXG5cbiAgICBpZiAodGhpc1trRXZlbnRzXS5sb2FkKSB7XG4gICAgICB0aGlzLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2xvYWQnLCB0aGlzW2tFdmVudHNdLmxvYWQpXG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBmbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgdGhpc1trRXZlbnRzXS5sb2FkID0gZm5cbiAgICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZuKVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzW2tFdmVudHNdLmxvYWQgPSBudWxsXG4gICAgfVxuICB9XG5cbiAgZ2V0IG9uYWJvcnQgKCkge1xuICAgIHdlYmlkbC5icmFuZENoZWNrKHRoaXMsIEZpbGVSZWFkZXIpXG5cbiAgICByZXR1cm4gdGhpc1trRXZlbnRzXS5hYm9ydFxuICB9XG5cbiAgc2V0IG9uYWJvcnQgKGZuKSB7XG4gICAgd2ViaWRsLmJyYW5kQ2hlY2sodGhpcywgRmlsZVJlYWRlcilcblxuICAgIGlmICh0aGlzW2tFdmVudHNdLmFib3J0KSB7XG4gICAgICB0aGlzLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2Fib3J0JywgdGhpc1trRXZlbnRzXS5hYm9ydClcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIGZuID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICB0aGlzW2tFdmVudHNdLmFib3J0ID0gZm5cbiAgICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcignYWJvcnQnLCBmbilcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpc1trRXZlbnRzXS5hYm9ydCA9IG51bGxcbiAgICB9XG4gIH1cbn1cblxuLy8gaHR0cHM6Ly93M2MuZ2l0aHViLmlvL0ZpbGVBUEkvI2RvbS1maWxlcmVhZGVyLWVtcHR5XG5GaWxlUmVhZGVyLkVNUFRZID0gRmlsZVJlYWRlci5wcm90b3R5cGUuRU1QVFkgPSAwXG4vLyBodHRwczovL3czYy5naXRodWIuaW8vRmlsZUFQSS8jZG9tLWZpbGVyZWFkZXItbG9hZGluZ1xuRmlsZVJlYWRlci5MT0FESU5HID0gRmlsZVJlYWRlci5wcm90b3R5cGUuTE9BRElORyA9IDFcbi8vIGh0dHBzOi8vdzNjLmdpdGh1Yi5pby9GaWxlQVBJLyNkb20tZmlsZXJlYWRlci1kb25lXG5GaWxlUmVhZGVyLkRPTkUgPSBGaWxlUmVhZGVyLnByb3RvdHlwZS5ET05FID0gMlxuXG5PYmplY3QuZGVmaW5lUHJvcGVydGllcyhGaWxlUmVhZGVyLnByb3RvdHlwZSwge1xuICBFTVBUWTogc3RhdGljUHJvcGVydHlEZXNjcmlwdG9ycyxcbiAgTE9BRElORzogc3RhdGljUHJvcGVydHlEZXNjcmlwdG9ycyxcbiAgRE9ORTogc3RhdGljUHJvcGVydHlEZXNjcmlwdG9ycyxcbiAgcmVhZEFzQXJyYXlCdWZmZXI6IGtFbnVtZXJhYmxlUHJvcGVydHksXG4gIHJlYWRBc0JpbmFyeVN0cmluZzoga0VudW1lcmFibGVQcm9wZXJ0eSxcbiAgcmVhZEFzVGV4dDoga0VudW1lcmFibGVQcm9wZXJ0eSxcbiAgcmVhZEFzRGF0YVVSTDoga0VudW1lcmFibGVQcm9wZXJ0eSxcbiAgYWJvcnQ6IGtFbnVtZXJhYmxlUHJvcGVydHksXG4gIHJlYWR5U3RhdGU6IGtFbnVtZXJhYmxlUHJvcGVydHksXG4gIHJlc3VsdDoga0VudW1lcmFibGVQcm9wZXJ0eSxcbiAgZXJyb3I6IGtFbnVtZXJhYmxlUHJvcGVydHksXG4gIG9ubG9hZHN0YXJ0OiBrRW51bWVyYWJsZVByb3BlcnR5LFxuICBvbnByb2dyZXNzOiBrRW51bWVyYWJsZVByb3BlcnR5LFxuICBvbmxvYWQ6IGtFbnVtZXJhYmxlUHJvcGVydHksXG4gIG9uYWJvcnQ6IGtFbnVtZXJhYmxlUHJvcGVydHksXG4gIG9uZXJyb3I6IGtFbnVtZXJhYmxlUHJvcGVydHksXG4gIG9ubG9hZGVuZDoga0VudW1lcmFibGVQcm9wZXJ0eSxcbiAgW1N5bWJvbC50b1N0cmluZ1RhZ106IHtcbiAgICB2YWx1ZTogJ0ZpbGVSZWFkZXInLFxuICAgIHdyaXRhYmxlOiBmYWxzZSxcbiAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICBjb25maWd1cmFibGU6IHRydWVcbiAgfVxufSlcblxuT2JqZWN0LmRlZmluZVByb3BlcnRpZXMoRmlsZVJlYWRlciwge1xuICBFTVBUWTogc3RhdGljUHJvcGVydHlEZXNjcmlwdG9ycyxcbiAgTE9BRElORzogc3RhdGljUHJvcGVydHlEZXNjcmlwdG9ycyxcbiAgRE9ORTogc3RhdGljUHJvcGVydHlEZXNjcmlwdG9yc1xufSlcblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gIEZpbGVSZWFkZXJcbn1cbiIsICIndXNlIHN0cmljdCdcblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gIGtDb25zdHJ1Y3Q6IHJlcXVpcmUoJy4uLy4uL2NvcmUvc3ltYm9scycpLmtDb25zdHJ1Y3Rcbn1cbiIsICIndXNlIHN0cmljdCdcblxuY29uc3QgYXNzZXJ0ID0gcmVxdWlyZSgnbm9kZTphc3NlcnQnKVxuY29uc3QgeyBVUkxTZXJpYWxpemVyIH0gPSByZXF1aXJlKCcuLi9mZXRjaC9kYXRhLXVybCcpXG5jb25zdCB7IGlzVmFsaWRIZWFkZXJOYW1lIH0gPSByZXF1aXJlKCcuLi9mZXRjaC91dGlsJylcblxuLyoqXG4gKiBAc2VlIGh0dHBzOi8vdXJsLnNwZWMud2hhdHdnLm9yZy8jY29uY2VwdC11cmwtZXF1YWxzXG4gKiBAcGFyYW0ge1VSTH0gQVxuICogQHBhcmFtIHtVUkx9IEJcbiAqIEBwYXJhbSB7Ym9vbGVhbiB8IHVuZGVmaW5lZH0gZXhjbHVkZUZyYWdtZW50XG4gKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAqL1xuZnVuY3Rpb24gdXJsRXF1YWxzIChBLCBCLCBleGNsdWRlRnJhZ21lbnQgPSBmYWxzZSkge1xuICBjb25zdCBzZXJpYWxpemVkQSA9IFVSTFNlcmlhbGl6ZXIoQSwgZXhjbHVkZUZyYWdtZW50KVxuXG4gIGNvbnN0IHNlcmlhbGl6ZWRCID0gVVJMU2VyaWFsaXplcihCLCBleGNsdWRlRnJhZ21lbnQpXG5cbiAgcmV0dXJuIHNlcmlhbGl6ZWRBID09PSBzZXJpYWxpemVkQlxufVxuXG4vKipcbiAqIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL2Nocm9taXVtL2Nocm9taXVtL2Jsb2IvNjk0ZDIwZDEzNGNiNTUzZDhkODllNTUwMGI5MTQ4MDEyYjFiYTI5OS9jb250ZW50L2Jyb3dzZXIvY2FjaGVfc3RvcmFnZS9jYWNoZV9zdG9yYWdlX2NhY2hlLmNjI0wyNjAtTDI2MlxuICogQHBhcmFtIHtzdHJpbmd9IGhlYWRlclxuICovXG5mdW5jdGlvbiBnZXRGaWVsZFZhbHVlcyAoaGVhZGVyKSB7XG4gIGFzc2VydChoZWFkZXIgIT09IG51bGwpXG5cbiAgY29uc3QgdmFsdWVzID0gW11cblxuICBmb3IgKGxldCB2YWx1ZSBvZiBoZWFkZXIuc3BsaXQoJywnKSkge1xuICAgIHZhbHVlID0gdmFsdWUudHJpbSgpXG5cbiAgICBpZiAoaXNWYWxpZEhlYWRlck5hbWUodmFsdWUpKSB7XG4gICAgICB2YWx1ZXMucHVzaCh2YWx1ZSlcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdmFsdWVzXG59XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICB1cmxFcXVhbHMsXG4gIGdldEZpZWxkVmFsdWVzXG59XG4iLCAiJ3VzZSBzdHJpY3QnXG5cbmNvbnN0IHsga0NvbnN0cnVjdCB9ID0gcmVxdWlyZSgnLi9zeW1ib2xzJylcbmNvbnN0IHsgdXJsRXF1YWxzLCBnZXRGaWVsZFZhbHVlcyB9ID0gcmVxdWlyZSgnLi91dGlsJylcbmNvbnN0IHsga0VudW1lcmFibGVQcm9wZXJ0eSwgaXNEaXN0dXJiZWQgfSA9IHJlcXVpcmUoJy4uLy4uL2NvcmUvdXRpbCcpXG5jb25zdCB7IHdlYmlkbCB9ID0gcmVxdWlyZSgnLi4vZmV0Y2gvd2ViaWRsJylcbmNvbnN0IHsgUmVzcG9uc2UsIGNsb25lUmVzcG9uc2UsIGZyb21Jbm5lclJlc3BvbnNlIH0gPSByZXF1aXJlKCcuLi9mZXRjaC9yZXNwb25zZScpXG5jb25zdCB7IFJlcXVlc3QsIGZyb21Jbm5lclJlcXVlc3QgfSA9IHJlcXVpcmUoJy4uL2ZldGNoL3JlcXVlc3QnKVxuY29uc3QgeyBrU3RhdGUgfSA9IHJlcXVpcmUoJy4uL2ZldGNoL3N5bWJvbHMnKVxuY29uc3QgeyBmZXRjaGluZyB9ID0gcmVxdWlyZSgnLi4vZmV0Y2gvaW5kZXgnKVxuY29uc3QgeyB1cmxJc0h0dHBIdHRwc1NjaGVtZSwgY3JlYXRlRGVmZXJyZWRQcm9taXNlLCByZWFkQWxsQnl0ZXMgfSA9IHJlcXVpcmUoJy4uL2ZldGNoL3V0aWwnKVxuY29uc3QgYXNzZXJ0ID0gcmVxdWlyZSgnbm9kZTphc3NlcnQnKVxuXG4vKipcbiAqIEBzZWUgaHR0cHM6Ly93M2MuZ2l0aHViLmlvL1NlcnZpY2VXb3JrZXIvI2Rmbi1jYWNoZS1iYXRjaC1vcGVyYXRpb25cbiAqIEB0eXBlZGVmIHtPYmplY3R9IENhY2hlQmF0Y2hPcGVyYXRpb25cbiAqIEBwcm9wZXJ0eSB7J2RlbGV0ZScgfCAncHV0J30gdHlwZVxuICogQHByb3BlcnR5IHthbnl9IHJlcXVlc3RcbiAqIEBwcm9wZXJ0eSB7YW55fSByZXNwb25zZVxuICogQHByb3BlcnR5IHtpbXBvcnQoJy4uLy4uL3R5cGVzL2NhY2hlJykuQ2FjaGVRdWVyeU9wdGlvbnN9IG9wdGlvbnNcbiAqL1xuXG4vKipcbiAqIEBzZWUgaHR0cHM6Ly93M2MuZ2l0aHViLmlvL1NlcnZpY2VXb3JrZXIvI2Rmbi1yZXF1ZXN0LXJlc3BvbnNlLWxpc3RcbiAqIEB0eXBlZGVmIHtbYW55LCBhbnldW119IHJlcXVlc3RSZXNwb25zZUxpc3RcbiAqL1xuXG5jbGFzcyBDYWNoZSB7XG4gIC8qKlxuICAgKiBAc2VlIGh0dHBzOi8vdzNjLmdpdGh1Yi5pby9TZXJ2aWNlV29ya2VyLyNkZm4tcmVsZXZhbnQtcmVxdWVzdC1yZXNwb25zZS1saXN0XG4gICAqIEB0eXBlIHtyZXF1ZXN0UmVzcG9uc2VMaXN0fVxuICAgKi9cbiAgI3JlbGV2YW50UmVxdWVzdFJlc3BvbnNlTGlzdFxuXG4gIGNvbnN0cnVjdG9yICgpIHtcbiAgICBpZiAoYXJndW1lbnRzWzBdICE9PSBrQ29uc3RydWN0KSB7XG4gICAgICB3ZWJpZGwuaWxsZWdhbENvbnN0cnVjdG9yKClcbiAgICB9XG5cbiAgICB3ZWJpZGwudXRpbC5tYXJrQXNVbmNsb25lYWJsZSh0aGlzKVxuICAgIHRoaXMuI3JlbGV2YW50UmVxdWVzdFJlc3BvbnNlTGlzdCA9IGFyZ3VtZW50c1sxXVxuICB9XG5cbiAgYXN5bmMgbWF0Y2ggKHJlcXVlc3QsIG9wdGlvbnMgPSB7fSkge1xuICAgIHdlYmlkbC5icmFuZENoZWNrKHRoaXMsIENhY2hlKVxuXG4gICAgY29uc3QgcHJlZml4ID0gJ0NhY2hlLm1hdGNoJ1xuICAgIHdlYmlkbC5hcmd1bWVudExlbmd0aENoZWNrKGFyZ3VtZW50cywgMSwgcHJlZml4KVxuXG4gICAgcmVxdWVzdCA9IHdlYmlkbC5jb252ZXJ0ZXJzLlJlcXVlc3RJbmZvKHJlcXVlc3QsIHByZWZpeCwgJ3JlcXVlc3QnKVxuICAgIG9wdGlvbnMgPSB3ZWJpZGwuY29udmVydGVycy5DYWNoZVF1ZXJ5T3B0aW9ucyhvcHRpb25zLCBwcmVmaXgsICdvcHRpb25zJylcblxuICAgIGNvbnN0IHAgPSB0aGlzLiNpbnRlcm5hbE1hdGNoQWxsKHJlcXVlc3QsIG9wdGlvbnMsIDEpXG5cbiAgICBpZiAocC5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIHJldHVybiBwWzBdXG4gIH1cblxuICBhc3luYyBtYXRjaEFsbCAocmVxdWVzdCA9IHVuZGVmaW5lZCwgb3B0aW9ucyA9IHt9KSB7XG4gICAgd2ViaWRsLmJyYW5kQ2hlY2sodGhpcywgQ2FjaGUpXG5cbiAgICBjb25zdCBwcmVmaXggPSAnQ2FjaGUubWF0Y2hBbGwnXG4gICAgaWYgKHJlcXVlc3QgIT09IHVuZGVmaW5lZCkgcmVxdWVzdCA9IHdlYmlkbC5jb252ZXJ0ZXJzLlJlcXVlc3RJbmZvKHJlcXVlc3QsIHByZWZpeCwgJ3JlcXVlc3QnKVxuICAgIG9wdGlvbnMgPSB3ZWJpZGwuY29udmVydGVycy5DYWNoZVF1ZXJ5T3B0aW9ucyhvcHRpb25zLCBwcmVmaXgsICdvcHRpb25zJylcblxuICAgIHJldHVybiB0aGlzLiNpbnRlcm5hbE1hdGNoQWxsKHJlcXVlc3QsIG9wdGlvbnMpXG4gIH1cblxuICBhc3luYyBhZGQgKHJlcXVlc3QpIHtcbiAgICB3ZWJpZGwuYnJhbmRDaGVjayh0aGlzLCBDYWNoZSlcblxuICAgIGNvbnN0IHByZWZpeCA9ICdDYWNoZS5hZGQnXG4gICAgd2ViaWRsLmFyZ3VtZW50TGVuZ3RoQ2hlY2soYXJndW1lbnRzLCAxLCBwcmVmaXgpXG5cbiAgICByZXF1ZXN0ID0gd2ViaWRsLmNvbnZlcnRlcnMuUmVxdWVzdEluZm8ocmVxdWVzdCwgcHJlZml4LCAncmVxdWVzdCcpXG5cbiAgICAvLyAxLlxuICAgIGNvbnN0IHJlcXVlc3RzID0gW3JlcXVlc3RdXG5cbiAgICAvLyAyLlxuICAgIGNvbnN0IHJlc3BvbnNlQXJyYXlQcm9taXNlID0gdGhpcy5hZGRBbGwocmVxdWVzdHMpXG5cbiAgICAvLyAzLlxuICAgIHJldHVybiBhd2FpdCByZXNwb25zZUFycmF5UHJvbWlzZVxuICB9XG5cbiAgYXN5bmMgYWRkQWxsIChyZXF1ZXN0cykge1xuICAgIHdlYmlkbC5icmFuZENoZWNrKHRoaXMsIENhY2hlKVxuXG4gICAgY29uc3QgcHJlZml4ID0gJ0NhY2hlLmFkZEFsbCdcbiAgICB3ZWJpZGwuYXJndW1lbnRMZW5ndGhDaGVjayhhcmd1bWVudHMsIDEsIHByZWZpeClcblxuICAgIC8vIDEuXG4gICAgY29uc3QgcmVzcG9uc2VQcm9taXNlcyA9IFtdXG5cbiAgICAvLyAyLlxuICAgIGNvbnN0IHJlcXVlc3RMaXN0ID0gW11cblxuICAgIC8vIDMuXG4gICAgZm9yIChsZXQgcmVxdWVzdCBvZiByZXF1ZXN0cykge1xuICAgICAgaWYgKHJlcXVlc3QgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICB0aHJvdyB3ZWJpZGwuZXJyb3JzLmNvbnZlcnNpb25GYWlsZWQoe1xuICAgICAgICAgIHByZWZpeCxcbiAgICAgICAgICBhcmd1bWVudDogJ0FyZ3VtZW50IDEnLFxuICAgICAgICAgIHR5cGVzOiBbJ3VuZGVmaW5lZCBpcyBub3QgYWxsb3dlZCddXG4gICAgICAgIH0pXG4gICAgICB9XG5cbiAgICAgIHJlcXVlc3QgPSB3ZWJpZGwuY29udmVydGVycy5SZXF1ZXN0SW5mbyhyZXF1ZXN0KVxuXG4gICAgICBpZiAodHlwZW9mIHJlcXVlc3QgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG5cbiAgICAgIC8vIDMuMVxuICAgICAgY29uc3QgciA9IHJlcXVlc3Rba1N0YXRlXVxuXG4gICAgICAvLyAzLjJcbiAgICAgIGlmICghdXJsSXNIdHRwSHR0cHNTY2hlbWUoci51cmwpIHx8IHIubWV0aG9kICE9PSAnR0VUJykge1xuICAgICAgICB0aHJvdyB3ZWJpZGwuZXJyb3JzLmV4Y2VwdGlvbih7XG4gICAgICAgICAgaGVhZGVyOiBwcmVmaXgsXG4gICAgICAgICAgbWVzc2FnZTogJ0V4cGVjdGVkIGh0dHAvcyBzY2hlbWUgd2hlbiBtZXRob2QgaXMgbm90IEdFVC4nXG4gICAgICAgIH0pXG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gNC5cbiAgICAvKiogQHR5cGUge1JldHVyblR5cGU8dHlwZW9mIGZldGNoaW5nPltdfSAqL1xuICAgIGNvbnN0IGZldGNoQ29udHJvbGxlcnMgPSBbXVxuXG4gICAgLy8gNS5cbiAgICBmb3IgKGNvbnN0IHJlcXVlc3Qgb2YgcmVxdWVzdHMpIHtcbiAgICAgIC8vIDUuMVxuICAgICAgY29uc3QgciA9IG5ldyBSZXF1ZXN0KHJlcXVlc3QpW2tTdGF0ZV1cblxuICAgICAgLy8gNS4yXG4gICAgICBpZiAoIXVybElzSHR0cEh0dHBzU2NoZW1lKHIudXJsKSkge1xuICAgICAgICB0aHJvdyB3ZWJpZGwuZXJyb3JzLmV4Y2VwdGlvbih7XG4gICAgICAgICAgaGVhZGVyOiBwcmVmaXgsXG4gICAgICAgICAgbWVzc2FnZTogJ0V4cGVjdGVkIGh0dHAvcyBzY2hlbWUuJ1xuICAgICAgICB9KVxuICAgICAgfVxuXG4gICAgICAvLyA1LjRcbiAgICAgIHIuaW5pdGlhdG9yID0gJ2ZldGNoJ1xuICAgICAgci5kZXN0aW5hdGlvbiA9ICdzdWJyZXNvdXJjZSdcblxuICAgICAgLy8gNS41XG4gICAgICByZXF1ZXN0TGlzdC5wdXNoKHIpXG5cbiAgICAgIC8vIDUuNlxuICAgICAgY29uc3QgcmVzcG9uc2VQcm9taXNlID0gY3JlYXRlRGVmZXJyZWRQcm9taXNlKClcblxuICAgICAgLy8gNS43XG4gICAgICBmZXRjaENvbnRyb2xsZXJzLnB1c2goZmV0Y2hpbmcoe1xuICAgICAgICByZXF1ZXN0OiByLFxuICAgICAgICBwcm9jZXNzUmVzcG9uc2UgKHJlc3BvbnNlKSB7XG4gICAgICAgICAgLy8gMS5cbiAgICAgICAgICBpZiAocmVzcG9uc2UudHlwZSA9PT0gJ2Vycm9yJyB8fCByZXNwb25zZS5zdGF0dXMgPT09IDIwNiB8fCByZXNwb25zZS5zdGF0dXMgPCAyMDAgfHwgcmVzcG9uc2Uuc3RhdHVzID4gMjk5KSB7XG4gICAgICAgICAgICByZXNwb25zZVByb21pc2UucmVqZWN0KHdlYmlkbC5lcnJvcnMuZXhjZXB0aW9uKHtcbiAgICAgICAgICAgICAgaGVhZGVyOiAnQ2FjaGUuYWRkQWxsJyxcbiAgICAgICAgICAgICAgbWVzc2FnZTogJ1JlY2VpdmVkIGFuIGludmFsaWQgc3RhdHVzIGNvZGUgb3IgdGhlIHJlcXVlc3QgZmFpbGVkLidcbiAgICAgICAgICAgIH0pKVxuICAgICAgICAgIH0gZWxzZSBpZiAocmVzcG9uc2UuaGVhZGVyc0xpc3QuY29udGFpbnMoJ3ZhcnknKSkgeyAvLyAyLlxuICAgICAgICAgICAgLy8gMi4xXG4gICAgICAgICAgICBjb25zdCBmaWVsZFZhbHVlcyA9IGdldEZpZWxkVmFsdWVzKHJlc3BvbnNlLmhlYWRlcnNMaXN0LmdldCgndmFyeScpKVxuXG4gICAgICAgICAgICAvLyAyLjJcbiAgICAgICAgICAgIGZvciAoY29uc3QgZmllbGRWYWx1ZSBvZiBmaWVsZFZhbHVlcykge1xuICAgICAgICAgICAgICAvLyAyLjIuMVxuICAgICAgICAgICAgICBpZiAoZmllbGRWYWx1ZSA9PT0gJyonKSB7XG4gICAgICAgICAgICAgICAgcmVzcG9uc2VQcm9taXNlLnJlamVjdCh3ZWJpZGwuZXJyb3JzLmV4Y2VwdGlvbih7XG4gICAgICAgICAgICAgICAgICBoZWFkZXI6ICdDYWNoZS5hZGRBbGwnLFxuICAgICAgICAgICAgICAgICAgbWVzc2FnZTogJ2ludmFsaWQgdmFyeSBmaWVsZCB2YWx1ZSdcbiAgICAgICAgICAgICAgICB9KSlcblxuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgY29udHJvbGxlciBvZiBmZXRjaENvbnRyb2xsZXJzKSB7XG4gICAgICAgICAgICAgICAgICBjb250cm9sbGVyLmFib3J0KClcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgcHJvY2Vzc1Jlc3BvbnNlRW5kT2ZCb2R5IChyZXNwb25zZSkge1xuICAgICAgICAgIC8vIDEuXG4gICAgICAgICAgaWYgKHJlc3BvbnNlLmFib3J0ZWQpIHtcbiAgICAgICAgICAgIHJlc3BvbnNlUHJvbWlzZS5yZWplY3QobmV3IERPTUV4Y2VwdGlvbignYWJvcnRlZCcsICdBYm9ydEVycm9yJykpXG4gICAgICAgICAgICByZXR1cm5cbiAgICAgICAgICB9XG5cbiAgICAgICAgICAvLyAyLlxuICAgICAgICAgIHJlc3BvbnNlUHJvbWlzZS5yZXNvbHZlKHJlc3BvbnNlKVxuICAgICAgICB9XG4gICAgICB9KSlcblxuICAgICAgLy8gNS44XG4gICAgICByZXNwb25zZVByb21pc2VzLnB1c2gocmVzcG9uc2VQcm9taXNlLnByb21pc2UpXG4gICAgfVxuXG4gICAgLy8gNi5cbiAgICBjb25zdCBwID0gUHJvbWlzZS5hbGwocmVzcG9uc2VQcm9taXNlcylcblxuICAgIC8vIDcuXG4gICAgY29uc3QgcmVzcG9uc2VzID0gYXdhaXQgcFxuXG4gICAgLy8gNy4xXG4gICAgY29uc3Qgb3BlcmF0aW9ucyA9IFtdXG5cbiAgICAvLyA3LjJcbiAgICBsZXQgaW5kZXggPSAwXG5cbiAgICAvLyA3LjNcbiAgICBmb3IgKGNvbnN0IHJlc3BvbnNlIG9mIHJlc3BvbnNlcykge1xuICAgICAgLy8gNy4zLjFcbiAgICAgIC8qKiBAdHlwZSB7Q2FjaGVCYXRjaE9wZXJhdGlvbn0gKi9cbiAgICAgIGNvbnN0IG9wZXJhdGlvbiA9IHtcbiAgICAgICAgdHlwZTogJ3B1dCcsIC8vIDcuMy4yXG4gICAgICAgIHJlcXVlc3Q6IHJlcXVlc3RMaXN0W2luZGV4XSwgLy8gNy4zLjNcbiAgICAgICAgcmVzcG9uc2UgLy8gNy4zLjRcbiAgICAgIH1cblxuICAgICAgb3BlcmF0aW9ucy5wdXNoKG9wZXJhdGlvbikgLy8gNy4zLjVcblxuICAgICAgaW5kZXgrKyAvLyA3LjMuNlxuICAgIH1cblxuICAgIC8vIDcuNVxuICAgIGNvbnN0IGNhY2hlSm9iUHJvbWlzZSA9IGNyZWF0ZURlZmVycmVkUHJvbWlzZSgpXG5cbiAgICAvLyA3LjYuMVxuICAgIGxldCBlcnJvckRhdGEgPSBudWxsXG5cbiAgICAvLyA3LjYuMlxuICAgIHRyeSB7XG4gICAgICB0aGlzLiNiYXRjaENhY2hlT3BlcmF0aW9ucyhvcGVyYXRpb25zKVxuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGVycm9yRGF0YSA9IGVcbiAgICB9XG5cbiAgICAvLyA3LjYuM1xuICAgIHF1ZXVlTWljcm90YXNrKCgpID0+IHtcbiAgICAgIC8vIDcuNi4zLjFcbiAgICAgIGlmIChlcnJvckRhdGEgPT09IG51bGwpIHtcbiAgICAgICAgY2FjaGVKb2JQcm9taXNlLnJlc29sdmUodW5kZWZpbmVkKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gNy42LjMuMlxuICAgICAgICBjYWNoZUpvYlByb21pc2UucmVqZWN0KGVycm9yRGF0YSlcbiAgICAgIH1cbiAgICB9KVxuXG4gICAgLy8gNy43XG4gICAgcmV0dXJuIGNhY2hlSm9iUHJvbWlzZS5wcm9taXNlXG4gIH1cblxuICBhc3luYyBwdXQgKHJlcXVlc3QsIHJlc3BvbnNlKSB7XG4gICAgd2ViaWRsLmJyYW5kQ2hlY2sodGhpcywgQ2FjaGUpXG5cbiAgICBjb25zdCBwcmVmaXggPSAnQ2FjaGUucHV0J1xuICAgIHdlYmlkbC5hcmd1bWVudExlbmd0aENoZWNrKGFyZ3VtZW50cywgMiwgcHJlZml4KVxuXG4gICAgcmVxdWVzdCA9IHdlYmlkbC5jb252ZXJ0ZXJzLlJlcXVlc3RJbmZvKHJlcXVlc3QsIHByZWZpeCwgJ3JlcXVlc3QnKVxuICAgIHJlc3BvbnNlID0gd2ViaWRsLmNvbnZlcnRlcnMuUmVzcG9uc2UocmVzcG9uc2UsIHByZWZpeCwgJ3Jlc3BvbnNlJylcblxuICAgIC8vIDEuXG4gICAgbGV0IGlubmVyUmVxdWVzdCA9IG51bGxcblxuICAgIC8vIDIuXG4gICAgaWYgKHJlcXVlc3QgaW5zdGFuY2VvZiBSZXF1ZXN0KSB7XG4gICAgICBpbm5lclJlcXVlc3QgPSByZXF1ZXN0W2tTdGF0ZV1cbiAgICB9IGVsc2UgeyAvLyAzLlxuICAgICAgaW5uZXJSZXF1ZXN0ID0gbmV3IFJlcXVlc3QocmVxdWVzdClba1N0YXRlXVxuICAgIH1cblxuICAgIC8vIDQuXG4gICAgaWYgKCF1cmxJc0h0dHBIdHRwc1NjaGVtZShpbm5lclJlcXVlc3QudXJsKSB8fCBpbm5lclJlcXVlc3QubWV0aG9kICE9PSAnR0VUJykge1xuICAgICAgdGhyb3cgd2ViaWRsLmVycm9ycy5leGNlcHRpb24oe1xuICAgICAgICBoZWFkZXI6IHByZWZpeCxcbiAgICAgICAgbWVzc2FnZTogJ0V4cGVjdGVkIGFuIGh0dHAvcyBzY2hlbWUgd2hlbiBtZXRob2QgaXMgbm90IEdFVCdcbiAgICAgIH0pXG4gICAgfVxuXG4gICAgLy8gNS5cbiAgICBjb25zdCBpbm5lclJlc3BvbnNlID0gcmVzcG9uc2Vba1N0YXRlXVxuXG4gICAgLy8gNi5cbiAgICBpZiAoaW5uZXJSZXNwb25zZS5zdGF0dXMgPT09IDIwNikge1xuICAgICAgdGhyb3cgd2ViaWRsLmVycm9ycy5leGNlcHRpb24oe1xuICAgICAgICBoZWFkZXI6IHByZWZpeCxcbiAgICAgICAgbWVzc2FnZTogJ0dvdCAyMDYgc3RhdHVzJ1xuICAgICAgfSlcbiAgICB9XG5cbiAgICAvLyA3LlxuICAgIGlmIChpbm5lclJlc3BvbnNlLmhlYWRlcnNMaXN0LmNvbnRhaW5zKCd2YXJ5JykpIHtcbiAgICAgIC8vIDcuMS5cbiAgICAgIGNvbnN0IGZpZWxkVmFsdWVzID0gZ2V0RmllbGRWYWx1ZXMoaW5uZXJSZXNwb25zZS5oZWFkZXJzTGlzdC5nZXQoJ3ZhcnknKSlcblxuICAgICAgLy8gNy4yLlxuICAgICAgZm9yIChjb25zdCBmaWVsZFZhbHVlIG9mIGZpZWxkVmFsdWVzKSB7XG4gICAgICAgIC8vIDcuMi4xXG4gICAgICAgIGlmIChmaWVsZFZhbHVlID09PSAnKicpIHtcbiAgICAgICAgICB0aHJvdyB3ZWJpZGwuZXJyb3JzLmV4Y2VwdGlvbih7XG4gICAgICAgICAgICBoZWFkZXI6IHByZWZpeCxcbiAgICAgICAgICAgIG1lc3NhZ2U6ICdHb3QgKiB2YXJ5IGZpZWxkIHZhbHVlJ1xuICAgICAgICAgIH0pXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyA4LlxuICAgIGlmIChpbm5lclJlc3BvbnNlLmJvZHkgJiYgKGlzRGlzdHVyYmVkKGlubmVyUmVzcG9uc2UuYm9keS5zdHJlYW0pIHx8IGlubmVyUmVzcG9uc2UuYm9keS5zdHJlYW0ubG9ja2VkKSkge1xuICAgICAgdGhyb3cgd2ViaWRsLmVycm9ycy5leGNlcHRpb24oe1xuICAgICAgICBoZWFkZXI6IHByZWZpeCxcbiAgICAgICAgbWVzc2FnZTogJ1Jlc3BvbnNlIGJvZHkgaXMgbG9ja2VkIG9yIGRpc3R1cmJlZCdcbiAgICAgIH0pXG4gICAgfVxuXG4gICAgLy8gOS5cbiAgICBjb25zdCBjbG9uZWRSZXNwb25zZSA9IGNsb25lUmVzcG9uc2UoaW5uZXJSZXNwb25zZSlcblxuICAgIC8vIDEwLlxuICAgIGNvbnN0IGJvZHlSZWFkUHJvbWlzZSA9IGNyZWF0ZURlZmVycmVkUHJvbWlzZSgpXG5cbiAgICAvLyAxMS5cbiAgICBpZiAoaW5uZXJSZXNwb25zZS5ib2R5ICE9IG51bGwpIHtcbiAgICAgIC8vIDExLjFcbiAgICAgIGNvbnN0IHN0cmVhbSA9IGlubmVyUmVzcG9uc2UuYm9keS5zdHJlYW1cblxuICAgICAgLy8gMTEuMlxuICAgICAgY29uc3QgcmVhZGVyID0gc3RyZWFtLmdldFJlYWRlcigpXG5cbiAgICAgIC8vIDExLjNcbiAgICAgIHJlYWRBbGxCeXRlcyhyZWFkZXIpLnRoZW4oYm9keVJlYWRQcm9taXNlLnJlc29sdmUsIGJvZHlSZWFkUHJvbWlzZS5yZWplY3QpXG4gICAgfSBlbHNlIHtcbiAgICAgIGJvZHlSZWFkUHJvbWlzZS5yZXNvbHZlKHVuZGVmaW5lZClcbiAgICB9XG5cbiAgICAvLyAxMi5cbiAgICAvKiogQHR5cGUge0NhY2hlQmF0Y2hPcGVyYXRpb25bXX0gKi9cbiAgICBjb25zdCBvcGVyYXRpb25zID0gW11cblxuICAgIC8vIDEzLlxuICAgIC8qKiBAdHlwZSB7Q2FjaGVCYXRjaE9wZXJhdGlvbn0gKi9cbiAgICBjb25zdCBvcGVyYXRpb24gPSB7XG4gICAgICB0eXBlOiAncHV0JywgLy8gMTQuXG4gICAgICByZXF1ZXN0OiBpbm5lclJlcXVlc3QsIC8vIDE1LlxuICAgICAgcmVzcG9uc2U6IGNsb25lZFJlc3BvbnNlIC8vIDE2LlxuICAgIH1cblxuICAgIC8vIDE3LlxuICAgIG9wZXJhdGlvbnMucHVzaChvcGVyYXRpb24pXG5cbiAgICAvLyAxOS5cbiAgICBjb25zdCBieXRlcyA9IGF3YWl0IGJvZHlSZWFkUHJvbWlzZS5wcm9taXNlXG5cbiAgICBpZiAoY2xvbmVkUmVzcG9uc2UuYm9keSAhPSBudWxsKSB7XG4gICAgICBjbG9uZWRSZXNwb25zZS5ib2R5LnNvdXJjZSA9IGJ5dGVzXG4gICAgfVxuXG4gICAgLy8gMTkuMVxuICAgIGNvbnN0IGNhY2hlSm9iUHJvbWlzZSA9IGNyZWF0ZURlZmVycmVkUHJvbWlzZSgpXG5cbiAgICAvLyAxOS4yLjFcbiAgICBsZXQgZXJyb3JEYXRhID0gbnVsbFxuXG4gICAgLy8gMTkuMi4yXG4gICAgdHJ5IHtcbiAgICAgIHRoaXMuI2JhdGNoQ2FjaGVPcGVyYXRpb25zKG9wZXJhdGlvbnMpXG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgZXJyb3JEYXRhID0gZVxuICAgIH1cblxuICAgIC8vIDE5LjIuM1xuICAgIHF1ZXVlTWljcm90YXNrKCgpID0+IHtcbiAgICAgIC8vIDE5LjIuMy4xXG4gICAgICBpZiAoZXJyb3JEYXRhID09PSBudWxsKSB7XG4gICAgICAgIGNhY2hlSm9iUHJvbWlzZS5yZXNvbHZlKClcbiAgICAgIH0gZWxzZSB7IC8vIDE5LjIuMy4yXG4gICAgICAgIGNhY2hlSm9iUHJvbWlzZS5yZWplY3QoZXJyb3JEYXRhKVxuICAgICAgfVxuICAgIH0pXG5cbiAgICByZXR1cm4gY2FjaGVKb2JQcm9taXNlLnByb21pc2VcbiAgfVxuXG4gIGFzeW5jIGRlbGV0ZSAocmVxdWVzdCwgb3B0aW9ucyA9IHt9KSB7XG4gICAgd2ViaWRsLmJyYW5kQ2hlY2sodGhpcywgQ2FjaGUpXG5cbiAgICBjb25zdCBwcmVmaXggPSAnQ2FjaGUuZGVsZXRlJ1xuICAgIHdlYmlkbC5hcmd1bWVudExlbmd0aENoZWNrKGFyZ3VtZW50cywgMSwgcHJlZml4KVxuXG4gICAgcmVxdWVzdCA9IHdlYmlkbC5jb252ZXJ0ZXJzLlJlcXVlc3RJbmZvKHJlcXVlc3QsIHByZWZpeCwgJ3JlcXVlc3QnKVxuICAgIG9wdGlvbnMgPSB3ZWJpZGwuY29udmVydGVycy5DYWNoZVF1ZXJ5T3B0aW9ucyhvcHRpb25zLCBwcmVmaXgsICdvcHRpb25zJylcblxuICAgIC8qKlxuICAgICAqIEB0eXBlIHtSZXF1ZXN0fVxuICAgICAqL1xuICAgIGxldCByID0gbnVsbFxuXG4gICAgaWYgKHJlcXVlc3QgaW5zdGFuY2VvZiBSZXF1ZXN0KSB7XG4gICAgICByID0gcmVxdWVzdFtrU3RhdGVdXG5cbiAgICAgIGlmIChyLm1ldGhvZCAhPT0gJ0dFVCcgJiYgIW9wdGlvbnMuaWdub3JlTWV0aG9kKSB7XG4gICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBhc3NlcnQodHlwZW9mIHJlcXVlc3QgPT09ICdzdHJpbmcnKVxuXG4gICAgICByID0gbmV3IFJlcXVlc3QocmVxdWVzdClba1N0YXRlXVxuICAgIH1cblxuICAgIC8qKiBAdHlwZSB7Q2FjaGVCYXRjaE9wZXJhdGlvbltdfSAqL1xuICAgIGNvbnN0IG9wZXJhdGlvbnMgPSBbXVxuXG4gICAgLyoqIEB0eXBlIHtDYWNoZUJhdGNoT3BlcmF0aW9ufSAqL1xuICAgIGNvbnN0IG9wZXJhdGlvbiA9IHtcbiAgICAgIHR5cGU6ICdkZWxldGUnLFxuICAgICAgcmVxdWVzdDogcixcbiAgICAgIG9wdGlvbnNcbiAgICB9XG5cbiAgICBvcGVyYXRpb25zLnB1c2gob3BlcmF0aW9uKVxuXG4gICAgY29uc3QgY2FjaGVKb2JQcm9taXNlID0gY3JlYXRlRGVmZXJyZWRQcm9taXNlKClcblxuICAgIGxldCBlcnJvckRhdGEgPSBudWxsXG4gICAgbGV0IHJlcXVlc3RSZXNwb25zZXNcblxuICAgIHRyeSB7XG4gICAgICByZXF1ZXN0UmVzcG9uc2VzID0gdGhpcy4jYmF0Y2hDYWNoZU9wZXJhdGlvbnMob3BlcmF0aW9ucylcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBlcnJvckRhdGEgPSBlXG4gICAgfVxuXG4gICAgcXVldWVNaWNyb3Rhc2soKCkgPT4ge1xuICAgICAgaWYgKGVycm9yRGF0YSA9PT0gbnVsbCkge1xuICAgICAgICBjYWNoZUpvYlByb21pc2UucmVzb2x2ZSghIXJlcXVlc3RSZXNwb25zZXM/Lmxlbmd0aClcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNhY2hlSm9iUHJvbWlzZS5yZWplY3QoZXJyb3JEYXRhKVxuICAgICAgfVxuICAgIH0pXG5cbiAgICByZXR1cm4gY2FjaGVKb2JQcm9taXNlLnByb21pc2VcbiAgfVxuXG4gIC8qKlxuICAgKiBAc2VlIGh0dHBzOi8vdzNjLmdpdGh1Yi5pby9TZXJ2aWNlV29ya2VyLyNkb20tY2FjaGUta2V5c1xuICAgKiBAcGFyYW0ge2FueX0gcmVxdWVzdFxuICAgKiBAcGFyYW0ge2ltcG9ydCgnLi4vLi4vdHlwZXMvY2FjaGUnKS5DYWNoZVF1ZXJ5T3B0aW9uc30gb3B0aW9uc1xuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxyZWFkb25seSBSZXF1ZXN0W10+fVxuICAgKi9cbiAgYXN5bmMga2V5cyAocmVxdWVzdCA9IHVuZGVmaW5lZCwgb3B0aW9ucyA9IHt9KSB7XG4gICAgd2ViaWRsLmJyYW5kQ2hlY2sodGhpcywgQ2FjaGUpXG5cbiAgICBjb25zdCBwcmVmaXggPSAnQ2FjaGUua2V5cydcblxuICAgIGlmIChyZXF1ZXN0ICE9PSB1bmRlZmluZWQpIHJlcXVlc3QgPSB3ZWJpZGwuY29udmVydGVycy5SZXF1ZXN0SW5mbyhyZXF1ZXN0LCBwcmVmaXgsICdyZXF1ZXN0JylcbiAgICBvcHRpb25zID0gd2ViaWRsLmNvbnZlcnRlcnMuQ2FjaGVRdWVyeU9wdGlvbnMob3B0aW9ucywgcHJlZml4LCAnb3B0aW9ucycpXG5cbiAgICAvLyAxLlxuICAgIGxldCByID0gbnVsbFxuXG4gICAgLy8gMi5cbiAgICBpZiAocmVxdWVzdCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAvLyAyLjFcbiAgICAgIGlmIChyZXF1ZXN0IGluc3RhbmNlb2YgUmVxdWVzdCkge1xuICAgICAgICAvLyAyLjEuMVxuICAgICAgICByID0gcmVxdWVzdFtrU3RhdGVdXG5cbiAgICAgICAgLy8gMi4xLjJcbiAgICAgICAgaWYgKHIubWV0aG9kICE9PSAnR0VUJyAmJiAhb3B0aW9ucy5pZ25vcmVNZXRob2QpIHtcbiAgICAgICAgICByZXR1cm4gW11cbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmICh0eXBlb2YgcmVxdWVzdCA9PT0gJ3N0cmluZycpIHsgLy8gMi4yXG4gICAgICAgIHIgPSBuZXcgUmVxdWVzdChyZXF1ZXN0KVtrU3RhdGVdXG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gNC5cbiAgICBjb25zdCBwcm9taXNlID0gY3JlYXRlRGVmZXJyZWRQcm9taXNlKClcblxuICAgIC8vIDUuXG4gICAgLy8gNS4xXG4gICAgY29uc3QgcmVxdWVzdHMgPSBbXVxuXG4gICAgLy8gNS4yXG4gICAgaWYgKHJlcXVlc3QgPT09IHVuZGVmaW5lZCkge1xuICAgICAgLy8gNS4yLjFcbiAgICAgIGZvciAoY29uc3QgcmVxdWVzdFJlc3BvbnNlIG9mIHRoaXMuI3JlbGV2YW50UmVxdWVzdFJlc3BvbnNlTGlzdCkge1xuICAgICAgICAvLyA1LjIuMS4xXG4gICAgICAgIHJlcXVlc3RzLnB1c2gocmVxdWVzdFJlc3BvbnNlWzBdKVxuICAgICAgfVxuICAgIH0gZWxzZSB7IC8vIDUuM1xuICAgICAgLy8gNS4zLjFcbiAgICAgIGNvbnN0IHJlcXVlc3RSZXNwb25zZXMgPSB0aGlzLiNxdWVyeUNhY2hlKHIsIG9wdGlvbnMpXG5cbiAgICAgIC8vIDUuMy4yXG4gICAgICBmb3IgKGNvbnN0IHJlcXVlc3RSZXNwb25zZSBvZiByZXF1ZXN0UmVzcG9uc2VzKSB7XG4gICAgICAgIC8vIDUuMy4yLjFcbiAgICAgICAgcmVxdWVzdHMucHVzaChyZXF1ZXN0UmVzcG9uc2VbMF0pXG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gNS40XG4gICAgcXVldWVNaWNyb3Rhc2soKCkgPT4ge1xuICAgICAgLy8gNS40LjFcbiAgICAgIGNvbnN0IHJlcXVlc3RMaXN0ID0gW11cblxuICAgICAgLy8gNS40LjJcbiAgICAgIGZvciAoY29uc3QgcmVxdWVzdCBvZiByZXF1ZXN0cykge1xuICAgICAgICBjb25zdCByZXF1ZXN0T2JqZWN0ID0gZnJvbUlubmVyUmVxdWVzdChcbiAgICAgICAgICByZXF1ZXN0LFxuICAgICAgICAgIG5ldyBBYm9ydENvbnRyb2xsZXIoKS5zaWduYWwsXG4gICAgICAgICAgJ2ltbXV0YWJsZSdcbiAgICAgICAgKVxuICAgICAgICAvLyA1LjQuMi4xXG4gICAgICAgIHJlcXVlc3RMaXN0LnB1c2gocmVxdWVzdE9iamVjdClcbiAgICAgIH1cblxuICAgICAgLy8gNS40LjNcbiAgICAgIHByb21pc2UucmVzb2x2ZShPYmplY3QuZnJlZXplKHJlcXVlc3RMaXN0KSlcbiAgICB9KVxuXG4gICAgcmV0dXJuIHByb21pc2UucHJvbWlzZVxuICB9XG5cbiAgLyoqXG4gICAqIEBzZWUgaHR0cHM6Ly93M2MuZ2l0aHViLmlvL1NlcnZpY2VXb3JrZXIvI2JhdGNoLWNhY2hlLW9wZXJhdGlvbnMtYWxnb3JpdGhtXG4gICAqIEBwYXJhbSB7Q2FjaGVCYXRjaE9wZXJhdGlvbltdfSBvcGVyYXRpb25zXG4gICAqIEByZXR1cm5zIHtyZXF1ZXN0UmVzcG9uc2VMaXN0fVxuICAgKi9cbiAgI2JhdGNoQ2FjaGVPcGVyYXRpb25zIChvcGVyYXRpb25zKSB7XG4gICAgLy8gMS5cbiAgICBjb25zdCBjYWNoZSA9IHRoaXMuI3JlbGV2YW50UmVxdWVzdFJlc3BvbnNlTGlzdFxuXG4gICAgLy8gMi5cbiAgICBjb25zdCBiYWNrdXBDYWNoZSA9IFsuLi5jYWNoZV1cblxuICAgIC8vIDMuXG4gICAgY29uc3QgYWRkZWRJdGVtcyA9IFtdXG5cbiAgICAvLyA0LjFcbiAgICBjb25zdCByZXN1bHRMaXN0ID0gW11cblxuICAgIHRyeSB7XG4gICAgICAvLyA0LjJcbiAgICAgIGZvciAoY29uc3Qgb3BlcmF0aW9uIG9mIG9wZXJhdGlvbnMpIHtcbiAgICAgICAgLy8gNC4yLjFcbiAgICAgICAgaWYgKG9wZXJhdGlvbi50eXBlICE9PSAnZGVsZXRlJyAmJiBvcGVyYXRpb24udHlwZSAhPT0gJ3B1dCcpIHtcbiAgICAgICAgICB0aHJvdyB3ZWJpZGwuZXJyb3JzLmV4Y2VwdGlvbih7XG4gICAgICAgICAgICBoZWFkZXI6ICdDYWNoZS4jYmF0Y2hDYWNoZU9wZXJhdGlvbnMnLFxuICAgICAgICAgICAgbWVzc2FnZTogJ29wZXJhdGlvbiB0eXBlIGRvZXMgbm90IG1hdGNoIFwiZGVsZXRlXCIgb3IgXCJwdXRcIidcbiAgICAgICAgICB9KVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gNC4yLjJcbiAgICAgICAgaWYgKG9wZXJhdGlvbi50eXBlID09PSAnZGVsZXRlJyAmJiBvcGVyYXRpb24ucmVzcG9uc2UgIT0gbnVsbCkge1xuICAgICAgICAgIHRocm93IHdlYmlkbC5lcnJvcnMuZXhjZXB0aW9uKHtcbiAgICAgICAgICAgIGhlYWRlcjogJ0NhY2hlLiNiYXRjaENhY2hlT3BlcmF0aW9ucycsXG4gICAgICAgICAgICBtZXNzYWdlOiAnZGVsZXRlIG9wZXJhdGlvbiBzaG91bGQgbm90IGhhdmUgYW4gYXNzb2NpYXRlZCByZXNwb25zZSdcbiAgICAgICAgICB9KVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gNC4yLjNcbiAgICAgICAgaWYgKHRoaXMuI3F1ZXJ5Q2FjaGUob3BlcmF0aW9uLnJlcXVlc3QsIG9wZXJhdGlvbi5vcHRpb25zLCBhZGRlZEl0ZW1zKS5sZW5ndGgpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRE9NRXhjZXB0aW9uKCc/Pz8nLCAnSW52YWxpZFN0YXRlRXJyb3InKVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gNC4yLjRcbiAgICAgICAgbGV0IHJlcXVlc3RSZXNwb25zZXNcblxuICAgICAgICAvLyA0LjIuNVxuICAgICAgICBpZiAob3BlcmF0aW9uLnR5cGUgPT09ICdkZWxldGUnKSB7XG4gICAgICAgICAgLy8gNC4yLjUuMVxuICAgICAgICAgIHJlcXVlc3RSZXNwb25zZXMgPSB0aGlzLiNxdWVyeUNhY2hlKG9wZXJhdGlvbi5yZXF1ZXN0LCBvcGVyYXRpb24ub3B0aW9ucylcblxuICAgICAgICAgIC8vIFRPRE86IHRoZSBzcGVjIGlzIHdyb25nLCB0aGlzIGlzIG5lZWRlZCB0byBwYXNzIFdQVHNcbiAgICAgICAgICBpZiAocmVxdWVzdFJlc3BvbnNlcy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHJldHVybiBbXVxuICAgICAgICAgIH1cblxuICAgICAgICAgIC8vIDQuMi41LjJcbiAgICAgICAgICBmb3IgKGNvbnN0IHJlcXVlc3RSZXNwb25zZSBvZiByZXF1ZXN0UmVzcG9uc2VzKSB7XG4gICAgICAgICAgICBjb25zdCBpZHggPSBjYWNoZS5pbmRleE9mKHJlcXVlc3RSZXNwb25zZSlcbiAgICAgICAgICAgIGFzc2VydChpZHggIT09IC0xKVxuXG4gICAgICAgICAgICAvLyA0LjIuNS4yLjFcbiAgICAgICAgICAgIGNhY2hlLnNwbGljZShpZHgsIDEpXG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKG9wZXJhdGlvbi50eXBlID09PSAncHV0JykgeyAvLyA0LjIuNlxuICAgICAgICAgIC8vIDQuMi42LjFcbiAgICAgICAgICBpZiAob3BlcmF0aW9uLnJlc3BvbnNlID09IG51bGwpIHtcbiAgICAgICAgICAgIHRocm93IHdlYmlkbC5lcnJvcnMuZXhjZXB0aW9uKHtcbiAgICAgICAgICAgICAgaGVhZGVyOiAnQ2FjaGUuI2JhdGNoQ2FjaGVPcGVyYXRpb25zJyxcbiAgICAgICAgICAgICAgbWVzc2FnZTogJ3B1dCBvcGVyYXRpb24gc2hvdWxkIGhhdmUgYW4gYXNzb2NpYXRlZCByZXNwb25zZSdcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLy8gNC4yLjYuMlxuICAgICAgICAgIGNvbnN0IHIgPSBvcGVyYXRpb24ucmVxdWVzdFxuXG4gICAgICAgICAgLy8gNC4yLjYuM1xuICAgICAgICAgIGlmICghdXJsSXNIdHRwSHR0cHNTY2hlbWUoci51cmwpKSB7XG4gICAgICAgICAgICB0aHJvdyB3ZWJpZGwuZXJyb3JzLmV4Y2VwdGlvbih7XG4gICAgICAgICAgICAgIGhlYWRlcjogJ0NhY2hlLiNiYXRjaENhY2hlT3BlcmF0aW9ucycsXG4gICAgICAgICAgICAgIG1lc3NhZ2U6ICdleHBlY3RlZCBodHRwIG9yIGh0dHBzIHNjaGVtZSdcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLy8gNC4yLjYuNFxuICAgICAgICAgIGlmIChyLm1ldGhvZCAhPT0gJ0dFVCcpIHtcbiAgICAgICAgICAgIHRocm93IHdlYmlkbC5lcnJvcnMuZXhjZXB0aW9uKHtcbiAgICAgICAgICAgICAgaGVhZGVyOiAnQ2FjaGUuI2JhdGNoQ2FjaGVPcGVyYXRpb25zJyxcbiAgICAgICAgICAgICAgbWVzc2FnZTogJ25vdCBnZXQgbWV0aG9kJ1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAvLyA0LjIuNi41XG4gICAgICAgICAgaWYgKG9wZXJhdGlvbi5vcHRpb25zICE9IG51bGwpIHtcbiAgICAgICAgICAgIHRocm93IHdlYmlkbC5lcnJvcnMuZXhjZXB0aW9uKHtcbiAgICAgICAgICAgICAgaGVhZGVyOiAnQ2FjaGUuI2JhdGNoQ2FjaGVPcGVyYXRpb25zJyxcbiAgICAgICAgICAgICAgbWVzc2FnZTogJ29wdGlvbnMgbXVzdCBub3QgYmUgZGVmaW5lZCdcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLy8gNC4yLjYuNlxuICAgICAgICAgIHJlcXVlc3RSZXNwb25zZXMgPSB0aGlzLiNxdWVyeUNhY2hlKG9wZXJhdGlvbi5yZXF1ZXN0KVxuXG4gICAgICAgICAgLy8gNC4yLjYuN1xuICAgICAgICAgIGZvciAoY29uc3QgcmVxdWVzdFJlc3BvbnNlIG9mIHJlcXVlc3RSZXNwb25zZXMpIHtcbiAgICAgICAgICAgIGNvbnN0IGlkeCA9IGNhY2hlLmluZGV4T2YocmVxdWVzdFJlc3BvbnNlKVxuICAgICAgICAgICAgYXNzZXJ0KGlkeCAhPT0gLTEpXG5cbiAgICAgICAgICAgIC8vIDQuMi42LjcuMVxuICAgICAgICAgICAgY2FjaGUuc3BsaWNlKGlkeCwgMSlcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAvLyA0LjIuNi44XG4gICAgICAgICAgY2FjaGUucHVzaChbb3BlcmF0aW9uLnJlcXVlc3QsIG9wZXJhdGlvbi5yZXNwb25zZV0pXG5cbiAgICAgICAgICAvLyA0LjIuNi4xMFxuICAgICAgICAgIGFkZGVkSXRlbXMucHVzaChbb3BlcmF0aW9uLnJlcXVlc3QsIG9wZXJhdGlvbi5yZXNwb25zZV0pXG4gICAgICAgIH1cblxuICAgICAgICAvLyA0LjIuN1xuICAgICAgICByZXN1bHRMaXN0LnB1c2goW29wZXJhdGlvbi5yZXF1ZXN0LCBvcGVyYXRpb24ucmVzcG9uc2VdKVxuICAgICAgfVxuXG4gICAgICAvLyA0LjNcbiAgICAgIHJldHVybiByZXN1bHRMaXN0XG4gICAgfSBjYXRjaCAoZSkgeyAvLyA1LlxuICAgICAgLy8gNS4xXG4gICAgICB0aGlzLiNyZWxldmFudFJlcXVlc3RSZXNwb25zZUxpc3QubGVuZ3RoID0gMFxuXG4gICAgICAvLyA1LjJcbiAgICAgIHRoaXMuI3JlbGV2YW50UmVxdWVzdFJlc3BvbnNlTGlzdCA9IGJhY2t1cENhY2hlXG5cbiAgICAgIC8vIDUuM1xuICAgICAgdGhyb3cgZVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBAc2VlIGh0dHBzOi8vdzNjLmdpdGh1Yi5pby9TZXJ2aWNlV29ya2VyLyNxdWVyeS1jYWNoZVxuICAgKiBAcGFyYW0ge2FueX0gcmVxdWVzdFF1ZXJ5XG4gICAqIEBwYXJhbSB7aW1wb3J0KCcuLi8uLi90eXBlcy9jYWNoZScpLkNhY2hlUXVlcnlPcHRpb25zfSBvcHRpb25zXG4gICAqIEBwYXJhbSB7cmVxdWVzdFJlc3BvbnNlTGlzdH0gdGFyZ2V0U3RvcmFnZVxuICAgKiBAcmV0dXJucyB7cmVxdWVzdFJlc3BvbnNlTGlzdH1cbiAgICovXG4gICNxdWVyeUNhY2hlIChyZXF1ZXN0UXVlcnksIG9wdGlvbnMsIHRhcmdldFN0b3JhZ2UpIHtcbiAgICAvKiogQHR5cGUge3JlcXVlc3RSZXNwb25zZUxpc3R9ICovXG4gICAgY29uc3QgcmVzdWx0TGlzdCA9IFtdXG5cbiAgICBjb25zdCBzdG9yYWdlID0gdGFyZ2V0U3RvcmFnZSA/PyB0aGlzLiNyZWxldmFudFJlcXVlc3RSZXNwb25zZUxpc3RcblxuICAgIGZvciAoY29uc3QgcmVxdWVzdFJlc3BvbnNlIG9mIHN0b3JhZ2UpIHtcbiAgICAgIGNvbnN0IFtjYWNoZWRSZXF1ZXN0LCBjYWNoZWRSZXNwb25zZV0gPSByZXF1ZXN0UmVzcG9uc2VcbiAgICAgIGlmICh0aGlzLiNyZXF1ZXN0TWF0Y2hlc0NhY2hlZEl0ZW0ocmVxdWVzdFF1ZXJ5LCBjYWNoZWRSZXF1ZXN0LCBjYWNoZWRSZXNwb25zZSwgb3B0aW9ucykpIHtcbiAgICAgICAgcmVzdWx0TGlzdC5wdXNoKHJlcXVlc3RSZXNwb25zZSlcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0TGlzdFxuICB9XG5cbiAgLyoqXG4gICAqIEBzZWUgaHR0cHM6Ly93M2MuZ2l0aHViLmlvL1NlcnZpY2VXb3JrZXIvI3JlcXVlc3QtbWF0Y2hlcy1jYWNoZWQtaXRlbS1hbGdvcml0aG1cbiAgICogQHBhcmFtIHthbnl9IHJlcXVlc3RRdWVyeVxuICAgKiBAcGFyYW0ge2FueX0gcmVxdWVzdFxuICAgKiBAcGFyYW0ge2FueSB8IG51bGx9IHJlc3BvbnNlXG4gICAqIEBwYXJhbSB7aW1wb3J0KCcuLi8uLi90eXBlcy9jYWNoZScpLkNhY2hlUXVlcnlPcHRpb25zIHwgdW5kZWZpbmVkfSBvcHRpb25zXG4gICAqIEByZXR1cm5zIHtib29sZWFufVxuICAgKi9cbiAgI3JlcXVlc3RNYXRjaGVzQ2FjaGVkSXRlbSAocmVxdWVzdFF1ZXJ5LCByZXF1ZXN0LCByZXNwb25zZSA9IG51bGwsIG9wdGlvbnMpIHtcbiAgICAvLyBpZiAob3B0aW9ucz8uaWdub3JlTWV0aG9kID09PSBmYWxzZSAmJiByZXF1ZXN0Lm1ldGhvZCA9PT0gJ0dFVCcpIHtcbiAgICAvLyAgIHJldHVybiBmYWxzZVxuICAgIC8vIH1cblxuICAgIGNvbnN0IHF1ZXJ5VVJMID0gbmV3IFVSTChyZXF1ZXN0UXVlcnkudXJsKVxuXG4gICAgY29uc3QgY2FjaGVkVVJMID0gbmV3IFVSTChyZXF1ZXN0LnVybClcblxuICAgIGlmIChvcHRpb25zPy5pZ25vcmVTZWFyY2gpIHtcbiAgICAgIGNhY2hlZFVSTC5zZWFyY2ggPSAnJ1xuXG4gICAgICBxdWVyeVVSTC5zZWFyY2ggPSAnJ1xuICAgIH1cblxuICAgIGlmICghdXJsRXF1YWxzKHF1ZXJ5VVJMLCBjYWNoZWRVUkwsIHRydWUpKSB7XG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9XG5cbiAgICBpZiAoXG4gICAgICByZXNwb25zZSA9PSBudWxsIHx8XG4gICAgICBvcHRpb25zPy5pZ25vcmVWYXJ5IHx8XG4gICAgICAhcmVzcG9uc2UuaGVhZGVyc0xpc3QuY29udGFpbnMoJ3ZhcnknKVxuICAgICkge1xuICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG5cbiAgICBjb25zdCBmaWVsZFZhbHVlcyA9IGdldEZpZWxkVmFsdWVzKHJlc3BvbnNlLmhlYWRlcnNMaXN0LmdldCgndmFyeScpKVxuXG4gICAgZm9yIChjb25zdCBmaWVsZFZhbHVlIG9mIGZpZWxkVmFsdWVzKSB7XG4gICAgICBpZiAoZmllbGRWYWx1ZSA9PT0gJyonKSB7XG4gICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgfVxuXG4gICAgICBjb25zdCByZXF1ZXN0VmFsdWUgPSByZXF1ZXN0LmhlYWRlcnNMaXN0LmdldChmaWVsZFZhbHVlKVxuICAgICAgY29uc3QgcXVlcnlWYWx1ZSA9IHJlcXVlc3RRdWVyeS5oZWFkZXJzTGlzdC5nZXQoZmllbGRWYWx1ZSlcblxuICAgICAgLy8gSWYgb25lIGhhcyB0aGUgaGVhZGVyIGFuZCB0aGUgb3RoZXIgZG9lc24ndCwgb3Igb25lIGhhc1xuICAgICAgLy8gYSBkaWZmZXJlbnQgdmFsdWUgdGhhbiB0aGUgb3RoZXIsIHJldHVybiBmYWxzZVxuICAgICAgaWYgKHJlcXVlc3RWYWx1ZSAhPT0gcXVlcnlWYWx1ZSkge1xuICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdHJ1ZVxuICB9XG5cbiAgI2ludGVybmFsTWF0Y2hBbGwgKHJlcXVlc3QsIG9wdGlvbnMsIG1heFJlc3BvbnNlcyA9IEluZmluaXR5KSB7XG4gICAgLy8gMS5cbiAgICBsZXQgciA9IG51bGxcblxuICAgIC8vIDIuXG4gICAgaWYgKHJlcXVlc3QgIT09IHVuZGVmaW5lZCkge1xuICAgICAgaWYgKHJlcXVlc3QgaW5zdGFuY2VvZiBSZXF1ZXN0KSB7XG4gICAgICAgIC8vIDIuMS4xXG4gICAgICAgIHIgPSByZXF1ZXN0W2tTdGF0ZV1cblxuICAgICAgICAvLyAyLjEuMlxuICAgICAgICBpZiAoci5tZXRob2QgIT09ICdHRVQnICYmICFvcHRpb25zLmlnbm9yZU1ldGhvZCkge1xuICAgICAgICAgIHJldHVybiBbXVxuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKHR5cGVvZiByZXF1ZXN0ID09PSAnc3RyaW5nJykge1xuICAgICAgICAvLyAyLjIuMVxuICAgICAgICByID0gbmV3IFJlcXVlc3QocmVxdWVzdClba1N0YXRlXVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIDUuXG4gICAgLy8gNS4xXG4gICAgY29uc3QgcmVzcG9uc2VzID0gW11cblxuICAgIC8vIDUuMlxuICAgIGlmIChyZXF1ZXN0ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIC8vIDUuMi4xXG4gICAgICBmb3IgKGNvbnN0IHJlcXVlc3RSZXNwb25zZSBvZiB0aGlzLiNyZWxldmFudFJlcXVlc3RSZXNwb25zZUxpc3QpIHtcbiAgICAgICAgcmVzcG9uc2VzLnB1c2gocmVxdWVzdFJlc3BvbnNlWzFdKVxuICAgICAgfVxuICAgIH0gZWxzZSB7IC8vIDUuM1xuICAgICAgLy8gNS4zLjFcbiAgICAgIGNvbnN0IHJlcXVlc3RSZXNwb25zZXMgPSB0aGlzLiNxdWVyeUNhY2hlKHIsIG9wdGlvbnMpXG5cbiAgICAgIC8vIDUuMy4yXG4gICAgICBmb3IgKGNvbnN0IHJlcXVlc3RSZXNwb25zZSBvZiByZXF1ZXN0UmVzcG9uc2VzKSB7XG4gICAgICAgIHJlc3BvbnNlcy5wdXNoKHJlcXVlc3RSZXNwb25zZVsxXSlcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyA1LjRcbiAgICAvLyBXZSBkb24ndCBpbXBsZW1lbnQgQ09ScyBzbyB3ZSBkb24ndCBuZWVkIHRvIGxvb3Agb3ZlciB0aGUgcmVzcG9uc2VzLCB5YXkhXG5cbiAgICAvLyA1LjUuMVxuICAgIGNvbnN0IHJlc3BvbnNlTGlzdCA9IFtdXG5cbiAgICAvLyA1LjUuMlxuICAgIGZvciAoY29uc3QgcmVzcG9uc2Ugb2YgcmVzcG9uc2VzKSB7XG4gICAgICAvLyA1LjUuMi4xXG4gICAgICBjb25zdCByZXNwb25zZU9iamVjdCA9IGZyb21Jbm5lclJlc3BvbnNlKHJlc3BvbnNlLCAnaW1tdXRhYmxlJylcblxuICAgICAgcmVzcG9uc2VMaXN0LnB1c2gocmVzcG9uc2VPYmplY3QuY2xvbmUoKSlcblxuICAgICAgaWYgKHJlc3BvbnNlTGlzdC5sZW5ndGggPj0gbWF4UmVzcG9uc2VzKSB7XG4gICAgICAgIGJyZWFrXG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gNi5cbiAgICByZXR1cm4gT2JqZWN0LmZyZWV6ZShyZXNwb25zZUxpc3QpXG4gIH1cbn1cblxuT2JqZWN0LmRlZmluZVByb3BlcnRpZXMoQ2FjaGUucHJvdG90eXBlLCB7XG4gIFtTeW1ib2wudG9TdHJpbmdUYWddOiB7XG4gICAgdmFsdWU6ICdDYWNoZScsXG4gICAgY29uZmlndXJhYmxlOiB0cnVlXG4gIH0sXG4gIG1hdGNoOiBrRW51bWVyYWJsZVByb3BlcnR5LFxuICBtYXRjaEFsbDoga0VudW1lcmFibGVQcm9wZXJ0eSxcbiAgYWRkOiBrRW51bWVyYWJsZVByb3BlcnR5LFxuICBhZGRBbGw6IGtFbnVtZXJhYmxlUHJvcGVydHksXG4gIHB1dDoga0VudW1lcmFibGVQcm9wZXJ0eSxcbiAgZGVsZXRlOiBrRW51bWVyYWJsZVByb3BlcnR5LFxuICBrZXlzOiBrRW51bWVyYWJsZVByb3BlcnR5XG59KVxuXG5jb25zdCBjYWNoZVF1ZXJ5T3B0aW9uQ29udmVydGVycyA9IFtcbiAge1xuICAgIGtleTogJ2lnbm9yZVNlYXJjaCcsXG4gICAgY29udmVydGVyOiB3ZWJpZGwuY29udmVydGVycy5ib29sZWFuLFxuICAgIGRlZmF1bHRWYWx1ZTogKCkgPT4gZmFsc2VcbiAgfSxcbiAge1xuICAgIGtleTogJ2lnbm9yZU1ldGhvZCcsXG4gICAgY29udmVydGVyOiB3ZWJpZGwuY29udmVydGVycy5ib29sZWFuLFxuICAgIGRlZmF1bHRWYWx1ZTogKCkgPT4gZmFsc2VcbiAgfSxcbiAge1xuICAgIGtleTogJ2lnbm9yZVZhcnknLFxuICAgIGNvbnZlcnRlcjogd2ViaWRsLmNvbnZlcnRlcnMuYm9vbGVhbixcbiAgICBkZWZhdWx0VmFsdWU6ICgpID0+IGZhbHNlXG4gIH1cbl1cblxud2ViaWRsLmNvbnZlcnRlcnMuQ2FjaGVRdWVyeU9wdGlvbnMgPSB3ZWJpZGwuZGljdGlvbmFyeUNvbnZlcnRlcihjYWNoZVF1ZXJ5T3B0aW9uQ29udmVydGVycylcblxud2ViaWRsLmNvbnZlcnRlcnMuTXVsdGlDYWNoZVF1ZXJ5T3B0aW9ucyA9IHdlYmlkbC5kaWN0aW9uYXJ5Q29udmVydGVyKFtcbiAgLi4uY2FjaGVRdWVyeU9wdGlvbkNvbnZlcnRlcnMsXG4gIHtcbiAgICBrZXk6ICdjYWNoZU5hbWUnLFxuICAgIGNvbnZlcnRlcjogd2ViaWRsLmNvbnZlcnRlcnMuRE9NU3RyaW5nXG4gIH1cbl0pXG5cbndlYmlkbC5jb252ZXJ0ZXJzLlJlc3BvbnNlID0gd2ViaWRsLmludGVyZmFjZUNvbnZlcnRlcihSZXNwb25zZSlcblxud2ViaWRsLmNvbnZlcnRlcnNbJ3NlcXVlbmNlPFJlcXVlc3RJbmZvPiddID0gd2ViaWRsLnNlcXVlbmNlQ29udmVydGVyKFxuICB3ZWJpZGwuY29udmVydGVycy5SZXF1ZXN0SW5mb1xuKVxuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgQ2FjaGVcbn1cbiIsICIndXNlIHN0cmljdCdcblxuY29uc3QgeyBrQ29uc3RydWN0IH0gPSByZXF1aXJlKCcuL3N5bWJvbHMnKVxuY29uc3QgeyBDYWNoZSB9ID0gcmVxdWlyZSgnLi9jYWNoZScpXG5jb25zdCB7IHdlYmlkbCB9ID0gcmVxdWlyZSgnLi4vZmV0Y2gvd2ViaWRsJylcbmNvbnN0IHsga0VudW1lcmFibGVQcm9wZXJ0eSB9ID0gcmVxdWlyZSgnLi4vLi4vY29yZS91dGlsJylcblxuY2xhc3MgQ2FjaGVTdG9yYWdlIHtcbiAgLyoqXG4gICAqIEBzZWUgaHR0cHM6Ly93M2MuZ2l0aHViLmlvL1NlcnZpY2VXb3JrZXIvI2Rmbi1yZWxldmFudC1uYW1lLXRvLWNhY2hlLW1hcFxuICAgKiBAdHlwZSB7TWFwPHN0cmluZywgaW1wb3J0KCcuL2NhY2hlJykucmVxdWVzdFJlc3BvbnNlTGlzdH1cbiAgICovXG4gICNjYWNoZXMgPSBuZXcgTWFwKClcblxuICBjb25zdHJ1Y3RvciAoKSB7XG4gICAgaWYgKGFyZ3VtZW50c1swXSAhPT0ga0NvbnN0cnVjdCkge1xuICAgICAgd2ViaWRsLmlsbGVnYWxDb25zdHJ1Y3RvcigpXG4gICAgfVxuXG4gICAgd2ViaWRsLnV0aWwubWFya0FzVW5jbG9uZWFibGUodGhpcylcbiAgfVxuXG4gIGFzeW5jIG1hdGNoIChyZXF1ZXN0LCBvcHRpb25zID0ge30pIHtcbiAgICB3ZWJpZGwuYnJhbmRDaGVjayh0aGlzLCBDYWNoZVN0b3JhZ2UpXG4gICAgd2ViaWRsLmFyZ3VtZW50TGVuZ3RoQ2hlY2soYXJndW1lbnRzLCAxLCAnQ2FjaGVTdG9yYWdlLm1hdGNoJylcblxuICAgIHJlcXVlc3QgPSB3ZWJpZGwuY29udmVydGVycy5SZXF1ZXN0SW5mbyhyZXF1ZXN0KVxuICAgIG9wdGlvbnMgPSB3ZWJpZGwuY29udmVydGVycy5NdWx0aUNhY2hlUXVlcnlPcHRpb25zKG9wdGlvbnMpXG5cbiAgICAvLyAxLlxuICAgIGlmIChvcHRpb25zLmNhY2hlTmFtZSAhPSBudWxsKSB7XG4gICAgICAvLyAxLjEuMS4xXG4gICAgICBpZiAodGhpcy4jY2FjaGVzLmhhcyhvcHRpb25zLmNhY2hlTmFtZSkpIHtcbiAgICAgICAgLy8gMS4xLjEuMS4xXG4gICAgICAgIGNvbnN0IGNhY2hlTGlzdCA9IHRoaXMuI2NhY2hlcy5nZXQob3B0aW9ucy5jYWNoZU5hbWUpXG4gICAgICAgIGNvbnN0IGNhY2hlID0gbmV3IENhY2hlKGtDb25zdHJ1Y3QsIGNhY2hlTGlzdClcblxuICAgICAgICByZXR1cm4gYXdhaXQgY2FjaGUubWF0Y2gocmVxdWVzdCwgb3B0aW9ucylcbiAgICAgIH1cbiAgICB9IGVsc2UgeyAvLyAyLlxuICAgICAgLy8gMi4yXG4gICAgICBmb3IgKGNvbnN0IGNhY2hlTGlzdCBvZiB0aGlzLiNjYWNoZXMudmFsdWVzKCkpIHtcbiAgICAgICAgY29uc3QgY2FjaGUgPSBuZXcgQ2FjaGUoa0NvbnN0cnVjdCwgY2FjaGVMaXN0KVxuXG4gICAgICAgIC8vIDIuMi4xLjJcbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBjYWNoZS5tYXRjaChyZXF1ZXN0LCBvcHRpb25zKVxuXG4gICAgICAgIGlmIChyZXNwb25zZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgcmV0dXJuIHJlc3BvbnNlXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQHNlZSBodHRwczovL3czYy5naXRodWIuaW8vU2VydmljZVdvcmtlci8jY2FjaGUtc3RvcmFnZS1oYXNcbiAgICogQHBhcmFtIHtzdHJpbmd9IGNhY2hlTmFtZVxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxib29sZWFuPn1cbiAgICovXG4gIGFzeW5jIGhhcyAoY2FjaGVOYW1lKSB7XG4gICAgd2ViaWRsLmJyYW5kQ2hlY2sodGhpcywgQ2FjaGVTdG9yYWdlKVxuXG4gICAgY29uc3QgcHJlZml4ID0gJ0NhY2hlU3RvcmFnZS5oYXMnXG4gICAgd2ViaWRsLmFyZ3VtZW50TGVuZ3RoQ2hlY2soYXJndW1lbnRzLCAxLCBwcmVmaXgpXG5cbiAgICBjYWNoZU5hbWUgPSB3ZWJpZGwuY29udmVydGVycy5ET01TdHJpbmcoY2FjaGVOYW1lLCBwcmVmaXgsICdjYWNoZU5hbWUnKVxuXG4gICAgLy8gMi4xLjFcbiAgICAvLyAyLjJcbiAgICByZXR1cm4gdGhpcy4jY2FjaGVzLmhhcyhjYWNoZU5hbWUpXG4gIH1cblxuICAvKipcbiAgICogQHNlZSBodHRwczovL3czYy5naXRodWIuaW8vU2VydmljZVdvcmtlci8jZG9tLWNhY2hlc3RvcmFnZS1vcGVuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBjYWNoZU5hbWVcbiAgICogQHJldHVybnMge1Byb21pc2U8Q2FjaGU+fVxuICAgKi9cbiAgYXN5bmMgb3BlbiAoY2FjaGVOYW1lKSB7XG4gICAgd2ViaWRsLmJyYW5kQ2hlY2sodGhpcywgQ2FjaGVTdG9yYWdlKVxuXG4gICAgY29uc3QgcHJlZml4ID0gJ0NhY2hlU3RvcmFnZS5vcGVuJ1xuICAgIHdlYmlkbC5hcmd1bWVudExlbmd0aENoZWNrKGFyZ3VtZW50cywgMSwgcHJlZml4KVxuXG4gICAgY2FjaGVOYW1lID0gd2ViaWRsLmNvbnZlcnRlcnMuRE9NU3RyaW5nKGNhY2hlTmFtZSwgcHJlZml4LCAnY2FjaGVOYW1lJylcblxuICAgIC8vIDIuMVxuICAgIGlmICh0aGlzLiNjYWNoZXMuaGFzKGNhY2hlTmFtZSkpIHtcbiAgICAgIC8vIGF3YWl0IGNhY2hlcy5vcGVuKCd2MScpICE9PSBhd2FpdCBjYWNoZXMub3BlbigndjEnKVxuXG4gICAgICAvLyAyLjEuMVxuICAgICAgY29uc3QgY2FjaGUgPSB0aGlzLiNjYWNoZXMuZ2V0KGNhY2hlTmFtZSlcblxuICAgICAgLy8gMi4xLjEuMVxuICAgICAgcmV0dXJuIG5ldyBDYWNoZShrQ29uc3RydWN0LCBjYWNoZSlcbiAgICB9XG5cbiAgICAvLyAyLjJcbiAgICBjb25zdCBjYWNoZSA9IFtdXG5cbiAgICAvLyAyLjNcbiAgICB0aGlzLiNjYWNoZXMuc2V0KGNhY2hlTmFtZSwgY2FjaGUpXG5cbiAgICAvLyAyLjRcbiAgICByZXR1cm4gbmV3IENhY2hlKGtDb25zdHJ1Y3QsIGNhY2hlKVxuICB9XG5cbiAgLyoqXG4gICAqIEBzZWUgaHR0cHM6Ly93M2MuZ2l0aHViLmlvL1NlcnZpY2VXb3JrZXIvI2NhY2hlLXN0b3JhZ2UtZGVsZXRlXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBjYWNoZU5hbWVcbiAgICogQHJldHVybnMge1Byb21pc2U8Ym9vbGVhbj59XG4gICAqL1xuICBhc3luYyBkZWxldGUgKGNhY2hlTmFtZSkge1xuICAgIHdlYmlkbC5icmFuZENoZWNrKHRoaXMsIENhY2hlU3RvcmFnZSlcblxuICAgIGNvbnN0IHByZWZpeCA9ICdDYWNoZVN0b3JhZ2UuZGVsZXRlJ1xuICAgIHdlYmlkbC5hcmd1bWVudExlbmd0aENoZWNrKGFyZ3VtZW50cywgMSwgcHJlZml4KVxuXG4gICAgY2FjaGVOYW1lID0gd2ViaWRsLmNvbnZlcnRlcnMuRE9NU3RyaW5nKGNhY2hlTmFtZSwgcHJlZml4LCAnY2FjaGVOYW1lJylcblxuICAgIHJldHVybiB0aGlzLiNjYWNoZXMuZGVsZXRlKGNhY2hlTmFtZSlcbiAgfVxuXG4gIC8qKlxuICAgKiBAc2VlIGh0dHBzOi8vdzNjLmdpdGh1Yi5pby9TZXJ2aWNlV29ya2VyLyNjYWNoZS1zdG9yYWdlLWtleXNcbiAgICogQHJldHVybnMge1Byb21pc2U8c3RyaW5nW10+fVxuICAgKi9cbiAgYXN5bmMga2V5cyAoKSB7XG4gICAgd2ViaWRsLmJyYW5kQ2hlY2sodGhpcywgQ2FjaGVTdG9yYWdlKVxuXG4gICAgLy8gMi4xXG4gICAgY29uc3Qga2V5cyA9IHRoaXMuI2NhY2hlcy5rZXlzKClcblxuICAgIC8vIDIuMlxuICAgIHJldHVybiBbLi4ua2V5c11cbiAgfVxufVxuXG5PYmplY3QuZGVmaW5lUHJvcGVydGllcyhDYWNoZVN0b3JhZ2UucHJvdG90eXBlLCB7XG4gIFtTeW1ib2wudG9TdHJpbmdUYWddOiB7XG4gICAgdmFsdWU6ICdDYWNoZVN0b3JhZ2UnLFxuICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICB9LFxuICBtYXRjaDoga0VudW1lcmFibGVQcm9wZXJ0eSxcbiAgaGFzOiBrRW51bWVyYWJsZVByb3BlcnR5LFxuICBvcGVuOiBrRW51bWVyYWJsZVByb3BlcnR5LFxuICBkZWxldGU6IGtFbnVtZXJhYmxlUHJvcGVydHksXG4gIGtleXM6IGtFbnVtZXJhYmxlUHJvcGVydHlcbn0pXG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICBDYWNoZVN0b3JhZ2Vcbn1cbiIsICIndXNlIHN0cmljdCdcblxuLy8gaHR0cHM6Ly93aWNnLmdpdGh1Yi5pby9jb29raWUtc3RvcmUvI2Nvb2tpZS1tYXhpbXVtLWF0dHJpYnV0ZS12YWx1ZS1zaXplXG5jb25zdCBtYXhBdHRyaWJ1dGVWYWx1ZVNpemUgPSAxMDI0XG5cbi8vIGh0dHBzOi8vd2ljZy5naXRodWIuaW8vY29va2llLXN0b3JlLyNjb29raWUtbWF4aW11bS1uYW1lLXZhbHVlLXBhaXItc2l6ZVxuY29uc3QgbWF4TmFtZVZhbHVlUGFpclNpemUgPSA0MDk2XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICBtYXhBdHRyaWJ1dGVWYWx1ZVNpemUsXG4gIG1heE5hbWVWYWx1ZVBhaXJTaXplXG59XG4iLCAiJ3VzZSBzdHJpY3QnXG5cbi8qKlxuICogQHBhcmFtIHtzdHJpbmd9IHZhbHVlXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAqL1xuZnVuY3Rpb24gaXNDVExFeGNsdWRpbmdIdGFiICh2YWx1ZSkge1xuICBmb3IgKGxldCBpID0gMDsgaSA8IHZhbHVlLmxlbmd0aDsgKytpKSB7XG4gICAgY29uc3QgY29kZSA9IHZhbHVlLmNoYXJDb2RlQXQoaSlcblxuICAgIGlmIChcbiAgICAgIChjb2RlID49IDB4MDAgJiYgY29kZSA8PSAweDA4KSB8fFxuICAgICAgKGNvZGUgPj0gMHgwQSAmJiBjb2RlIDw9IDB4MUYpIHx8XG4gICAgICBjb2RlID09PSAweDdGXG4gICAgKSB7XG4gICAgICByZXR1cm4gdHJ1ZVxuICAgIH1cbiAgfVxuICByZXR1cm4gZmFsc2Vcbn1cblxuLyoqXG4gQ0hBUiAgICAgICAgICAgPSA8YW55IFVTLUFTQ0lJIGNoYXJhY3RlciAob2N0ZXRzIDAgLSAxMjcpPlxuIHRva2VuICAgICAgICAgID0gMSo8YW55IENIQVIgZXhjZXB0IENUTHMgb3Igc2VwYXJhdG9ycz5cbiBzZXBhcmF0b3JzICAgICA9IFwiKFwiIHwgXCIpXCIgfCBcIjxcIiB8IFwiPlwiIHwgXCJAXCJcbiAgICAgICAgICAgICAgICB8IFwiLFwiIHwgXCI7XCIgfCBcIjpcIiB8IFwiXFxcIiB8IDxcIj5cbiAgICAgICAgICAgICAgICB8IFwiL1wiIHwgXCJbXCIgfCBcIl1cIiB8IFwiP1wiIHwgXCI9XCJcbiAgICAgICAgICAgICAgICB8IFwie1wiIHwgXCJ9XCIgfCBTUCB8IEhUXG4gKiBAcGFyYW0ge3N0cmluZ30gbmFtZVxuICovXG5mdW5jdGlvbiB2YWxpZGF0ZUNvb2tpZU5hbWUgKG5hbWUpIHtcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBuYW1lLmxlbmd0aDsgKytpKSB7XG4gICAgY29uc3QgY29kZSA9IG5hbWUuY2hhckNvZGVBdChpKVxuXG4gICAgaWYgKFxuICAgICAgY29kZSA8IDB4MjEgfHwgLy8gZXhjbHVkZSBDVExzICgwLTMxKSwgU1AgYW5kIEhUXG4gICAgICBjb2RlID4gMHg3RSB8fCAvLyBleGNsdWRlIG5vbi1hc2NpaSBhbmQgREVMXG4gICAgICBjb2RlID09PSAweDIyIHx8IC8vIFwiXG4gICAgICBjb2RlID09PSAweDI4IHx8IC8vIChcbiAgICAgIGNvZGUgPT09IDB4MjkgfHwgLy8gKVxuICAgICAgY29kZSA9PT0gMHgzQyB8fCAvLyA8XG4gICAgICBjb2RlID09PSAweDNFIHx8IC8vID5cbiAgICAgIGNvZGUgPT09IDB4NDAgfHwgLy8gQFxuICAgICAgY29kZSA9PT0gMHgyQyB8fCAvLyAsXG4gICAgICBjb2RlID09PSAweDNCIHx8IC8vIDtcbiAgICAgIGNvZGUgPT09IDB4M0EgfHwgLy8gOlxuICAgICAgY29kZSA9PT0gMHg1QyB8fCAvLyBcXFxuICAgICAgY29kZSA9PT0gMHgyRiB8fCAvLyAvXG4gICAgICBjb2RlID09PSAweDVCIHx8IC8vIFtcbiAgICAgIGNvZGUgPT09IDB4NUQgfHwgLy8gXVxuICAgICAgY29kZSA9PT0gMHgzRiB8fCAvLyA/XG4gICAgICBjb2RlID09PSAweDNEIHx8IC8vID1cbiAgICAgIGNvZGUgPT09IDB4N0IgfHwgLy8ge1xuICAgICAgY29kZSA9PT0gMHg3RCAvLyB9XG4gICAgKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgY29va2llIG5hbWUnKVxuICAgIH1cbiAgfVxufVxuXG4vKipcbiBjb29raWUtdmFsdWUgICAgICA9ICpjb29raWUtb2N0ZXQgLyAoIERRVU9URSAqY29va2llLW9jdGV0IERRVU9URSApXG4gY29va2llLW9jdGV0ICAgICAgPSAleDIxIC8gJXgyMy0yQiAvICV4MkQtM0EgLyAleDNDLTVCIC8gJXg1RC03RVxuICAgICAgICAgICAgICAgICAgICAgICA7IFVTLUFTQ0lJIGNoYXJhY3RlcnMgZXhjbHVkaW5nIENUTHMsXG4gICAgICAgICAgICAgICAgICAgICAgIDsgd2hpdGVzcGFjZSBEUVVPVEUsIGNvbW1hLCBzZW1pY29sb24sXG4gICAgICAgICAgICAgICAgICAgICAgIDsgYW5kIGJhY2tzbGFzaFxuICogQHBhcmFtIHtzdHJpbmd9IHZhbHVlXG4gKi9cbmZ1bmN0aW9uIHZhbGlkYXRlQ29va2llVmFsdWUgKHZhbHVlKSB7XG4gIGxldCBsZW4gPSB2YWx1ZS5sZW5ndGhcbiAgbGV0IGkgPSAwXG5cbiAgLy8gaWYgdGhlIHZhbHVlIGlzIHdyYXBwZWQgaW4gRFFVT1RFXG4gIGlmICh2YWx1ZVswXSA9PT0gJ1wiJykge1xuICAgIGlmIChsZW4gPT09IDEgfHwgdmFsdWVbbGVuIC0gMV0gIT09ICdcIicpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBjb29raWUgdmFsdWUnKVxuICAgIH1cbiAgICAtLWxlblxuICAgICsraVxuICB9XG5cbiAgd2hpbGUgKGkgPCBsZW4pIHtcbiAgICBjb25zdCBjb2RlID0gdmFsdWUuY2hhckNvZGVBdChpKyspXG5cbiAgICBpZiAoXG4gICAgICBjb2RlIDwgMHgyMSB8fCAvLyBleGNsdWRlIENUTHMgKDAtMzEpXG4gICAgICBjb2RlID4gMHg3RSB8fCAvLyBub24tYXNjaWkgYW5kIERFTCAoMTI3KVxuICAgICAgY29kZSA9PT0gMHgyMiB8fCAvLyBcIlxuICAgICAgY29kZSA9PT0gMHgyQyB8fCAvLyAsXG4gICAgICBjb2RlID09PSAweDNCIHx8IC8vIDtcbiAgICAgIGNvZGUgPT09IDB4NUMgLy8gXFxcbiAgICApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBjb29raWUgdmFsdWUnKVxuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIHBhdGgtdmFsdWUgICAgICAgID0gPGFueSBDSEFSIGV4Y2VwdCBDVExzIG9yIFwiO1wiPlxuICogQHBhcmFtIHtzdHJpbmd9IHBhdGhcbiAqL1xuZnVuY3Rpb24gdmFsaWRhdGVDb29raWVQYXRoIChwYXRoKSB7XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgcGF0aC5sZW5ndGg7ICsraSkge1xuICAgIGNvbnN0IGNvZGUgPSBwYXRoLmNoYXJDb2RlQXQoaSlcblxuICAgIGlmIChcbiAgICAgIGNvZGUgPCAweDIwIHx8IC8vIGV4Y2x1ZGUgQ1RMcyAoMC0zMSlcbiAgICAgIGNvZGUgPT09IDB4N0YgfHwgLy8gREVMXG4gICAgICBjb2RlID09PSAweDNCIC8vIDtcbiAgICApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBjb29raWUgcGF0aCcpXG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogSSBoYXZlIG5vIGlkZWEgd2h5IHRoZXNlIHZhbHVlcyBhcmVuJ3QgYWxsb3dlZCB0byBiZSBob25lc3QsXG4gKiBidXQgRGVubyB0ZXN0cyB0aGVzZS4gLSBLaGFmcmFcbiAqIEBwYXJhbSB7c3RyaW5nfSBkb21haW5cbiAqL1xuZnVuY3Rpb24gdmFsaWRhdGVDb29raWVEb21haW4gKGRvbWFpbikge1xuICBpZiAoXG4gICAgZG9tYWluLnN0YXJ0c1dpdGgoJy0nKSB8fFxuICAgIGRvbWFpbi5lbmRzV2l0aCgnLicpIHx8XG4gICAgZG9tYWluLmVuZHNXaXRoKCctJylcbiAgKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIGNvb2tpZSBkb21haW4nKVxuICB9XG59XG5cbmNvbnN0IElNRkRheXMgPSBbXG4gICdTdW4nLCAnTW9uJywgJ1R1ZScsICdXZWQnLFxuICAnVGh1JywgJ0ZyaScsICdTYXQnXG5dXG5cbmNvbnN0IElNRk1vbnRocyA9IFtcbiAgJ0phbicsICdGZWInLCAnTWFyJywgJ0FwcicsICdNYXknLCAnSnVuJyxcbiAgJ0p1bCcsICdBdWcnLCAnU2VwJywgJ09jdCcsICdOb3YnLCAnRGVjJ1xuXVxuXG5jb25zdCBJTUZQYWRkZWROdW1iZXJzID0gQXJyYXkoNjEpLmZpbGwoMCkubWFwKChfLCBpKSA9PiBpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwgJzAnKSlcblxuLyoqXG4gKiBAc2VlIGh0dHBzOi8vd3d3LnJmYy1lZGl0b3Iub3JnL3JmYy9yZmM3MjMxI3NlY3Rpb24tNy4xLjEuMVxuICogQHBhcmFtIHtudW1iZXJ8RGF0ZX0gZGF0ZVxuICBJTUYtZml4ZGF0ZSAgPSBkYXktbmFtZSBcIixcIiBTUCBkYXRlMSBTUCB0aW1lLW9mLWRheSBTUCBHTVRcbiAgOyBmaXhlZCBsZW5ndGgvem9uZS9jYXBpdGFsaXphdGlvbiBzdWJzZXQgb2YgdGhlIGZvcm1hdFxuICA7IHNlZSBTZWN0aW9uIDMuMyBvZiBbUkZDNTMyMl1cblxuICBkYXktbmFtZSAgICAgPSAleDRELjZGLjZFIDsgXCJNb25cIiwgY2FzZS1zZW5zaXRpdmVcbiAgICAgICAgICAgICAgLyAleDU0Ljc1LjY1IDsgXCJUdWVcIiwgY2FzZS1zZW5zaXRpdmVcbiAgICAgICAgICAgICAgLyAleDU3LjY1LjY0IDsgXCJXZWRcIiwgY2FzZS1zZW5zaXRpdmVcbiAgICAgICAgICAgICAgLyAleDU0LjY4Ljc1IDsgXCJUaHVcIiwgY2FzZS1zZW5zaXRpdmVcbiAgICAgICAgICAgICAgLyAleDQ2LjcyLjY5IDsgXCJGcmlcIiwgY2FzZS1zZW5zaXRpdmVcbiAgICAgICAgICAgICAgLyAleDUzLjYxLjc0IDsgXCJTYXRcIiwgY2FzZS1zZW5zaXRpdmVcbiAgICAgICAgICAgICAgLyAleDUzLjc1LjZFIDsgXCJTdW5cIiwgY2FzZS1zZW5zaXRpdmVcbiAgZGF0ZTEgICAgICAgID0gZGF5IFNQIG1vbnRoIFNQIHllYXJcbiAgICAgICAgICAgICAgICAgIDsgZS5nLiwgMDIgSnVuIDE5ODJcblxuICBkYXkgICAgICAgICAgPSAyRElHSVRcbiAgbW9udGggICAgICAgID0gJXg0QS42MS42RSA7IFwiSmFuXCIsIGNhc2Utc2Vuc2l0aXZlXG4gICAgICAgICAgICAgIC8gJXg0Ni42NS42MiA7IFwiRmViXCIsIGNhc2Utc2Vuc2l0aXZlXG4gICAgICAgICAgICAgIC8gJXg0RC42MS43MiA7IFwiTWFyXCIsIGNhc2Utc2Vuc2l0aXZlXG4gICAgICAgICAgICAgIC8gJXg0MS43MC43MiA7IFwiQXByXCIsIGNhc2Utc2Vuc2l0aXZlXG4gICAgICAgICAgICAgIC8gJXg0RC42MS43OSA7IFwiTWF5XCIsIGNhc2Utc2Vuc2l0aXZlXG4gICAgICAgICAgICAgIC8gJXg0QS43NS42RSA7IFwiSnVuXCIsIGNhc2Utc2Vuc2l0aXZlXG4gICAgICAgICAgICAgIC8gJXg0QS43NS42QyA7IFwiSnVsXCIsIGNhc2Utc2Vuc2l0aXZlXG4gICAgICAgICAgICAgIC8gJXg0MS43NS42NyA7IFwiQXVnXCIsIGNhc2Utc2Vuc2l0aXZlXG4gICAgICAgICAgICAgIC8gJXg1My42NS43MCA7IFwiU2VwXCIsIGNhc2Utc2Vuc2l0aXZlXG4gICAgICAgICAgICAgIC8gJXg0Ri42My43NCA7IFwiT2N0XCIsIGNhc2Utc2Vuc2l0aXZlXG4gICAgICAgICAgICAgIC8gJXg0RS42Ri43NiA7IFwiTm92XCIsIGNhc2Utc2Vuc2l0aXZlXG4gICAgICAgICAgICAgIC8gJXg0NC42NS42MyA7IFwiRGVjXCIsIGNhc2Utc2Vuc2l0aXZlXG4gIHllYXIgICAgICAgICA9IDRESUdJVFxuXG4gIEdNVCAgICAgICAgICA9ICV4NDcuNEQuNTQgOyBcIkdNVFwiLCBjYXNlLXNlbnNpdGl2ZVxuXG4gIHRpbWUtb2YtZGF5ICA9IGhvdXIgXCI6XCIgbWludXRlIFwiOlwiIHNlY29uZFxuICAgICAgICAgICAgICA7IDAwOjAwOjAwIC0gMjM6NTk6NjAgKGxlYXAgc2Vjb25kKVxuXG4gIGhvdXIgICAgICAgICA9IDJESUdJVFxuICBtaW51dGUgICAgICAgPSAyRElHSVRcbiAgc2Vjb25kICAgICAgID0gMkRJR0lUXG4gKi9cbmZ1bmN0aW9uIHRvSU1GRGF0ZSAoZGF0ZSkge1xuICBpZiAodHlwZW9mIGRhdGUgPT09ICdudW1iZXInKSB7XG4gICAgZGF0ZSA9IG5ldyBEYXRlKGRhdGUpXG4gIH1cblxuICByZXR1cm4gYCR7SU1GRGF5c1tkYXRlLmdldFVUQ0RheSgpXX0sICR7SU1GUGFkZGVkTnVtYmVyc1tkYXRlLmdldFVUQ0RhdGUoKV19ICR7SU1GTW9udGhzW2RhdGUuZ2V0VVRDTW9udGgoKV19ICR7ZGF0ZS5nZXRVVENGdWxsWWVhcigpfSAke0lNRlBhZGRlZE51bWJlcnNbZGF0ZS5nZXRVVENIb3VycygpXX06JHtJTUZQYWRkZWROdW1iZXJzW2RhdGUuZ2V0VVRDTWludXRlcygpXX06JHtJTUZQYWRkZWROdW1iZXJzW2RhdGUuZ2V0VVRDU2Vjb25kcygpXX0gR01UYFxufVxuXG4vKipcbiBtYXgtYWdlLWF2ICAgICAgICA9IFwiTWF4LUFnZT1cIiBub24temVyby1kaWdpdCAqRElHSVRcbiAgICAgICAgICAgICAgICAgICAgICAgOyBJbiBwcmFjdGljZSwgYm90aCBleHBpcmVzLWF2IGFuZCBtYXgtYWdlLWF2XG4gICAgICAgICAgICAgICAgICAgICAgIDsgYXJlIGxpbWl0ZWQgdG8gZGF0ZXMgcmVwcmVzZW50YWJsZSBieSB0aGVcbiAgICAgICAgICAgICAgICAgICAgICAgOyB1c2VyIGFnZW50LlxuICogQHBhcmFtIHtudW1iZXJ9IG1heEFnZVxuICovXG5mdW5jdGlvbiB2YWxpZGF0ZUNvb2tpZU1heEFnZSAobWF4QWdlKSB7XG4gIGlmIChtYXhBZ2UgPCAwKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIGNvb2tpZSBtYXgtYWdlJylcbiAgfVxufVxuXG4vKipcbiAqIEBzZWUgaHR0cHM6Ly93d3cucmZjLWVkaXRvci5vcmcvcmZjL3JmYzYyNjUjc2VjdGlvbi00LjEuMVxuICogQHBhcmFtIHtpbXBvcnQoJy4vaW5kZXgnKS5Db29raWV9IGNvb2tpZVxuICovXG5mdW5jdGlvbiBzdHJpbmdpZnkgKGNvb2tpZSkge1xuICBpZiAoY29va2llLm5hbWUubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIG51bGxcbiAgfVxuXG4gIHZhbGlkYXRlQ29va2llTmFtZShjb29raWUubmFtZSlcbiAgdmFsaWRhdGVDb29raWVWYWx1ZShjb29raWUudmFsdWUpXG5cbiAgY29uc3Qgb3V0ID0gW2Ake2Nvb2tpZS5uYW1lfT0ke2Nvb2tpZS52YWx1ZX1gXVxuXG4gIC8vIGh0dHBzOi8vZGF0YXRyYWNrZXIuaWV0Zi5vcmcvZG9jL2h0bWwvZHJhZnQtaWV0Zi1odHRwYmlzLWNvb2tpZS1wcmVmaXhlcy0wMCNzZWN0aW9uLTMuMVxuICAvLyBodHRwczovL2RhdGF0cmFja2VyLmlldGYub3JnL2RvYy9odG1sL2RyYWZ0LWlldGYtaHR0cGJpcy1jb29raWUtcHJlZml4ZXMtMDAjc2VjdGlvbi0zLjJcbiAgaWYgKGNvb2tpZS5uYW1lLnN0YXJ0c1dpdGgoJ19fU2VjdXJlLScpKSB7XG4gICAgY29va2llLnNlY3VyZSA9IHRydWVcbiAgfVxuXG4gIGlmIChjb29raWUubmFtZS5zdGFydHNXaXRoKCdfX0hvc3QtJykpIHtcbiAgICBjb29raWUuc2VjdXJlID0gdHJ1ZVxuICAgIGNvb2tpZS5kb21haW4gPSBudWxsXG4gICAgY29va2llLnBhdGggPSAnLydcbiAgfVxuXG4gIGlmIChjb29raWUuc2VjdXJlKSB7XG4gICAgb3V0LnB1c2goJ1NlY3VyZScpXG4gIH1cblxuICBpZiAoY29va2llLmh0dHBPbmx5KSB7XG4gICAgb3V0LnB1c2goJ0h0dHBPbmx5JylcbiAgfVxuXG4gIGlmICh0eXBlb2YgY29va2llLm1heEFnZSA9PT0gJ251bWJlcicpIHtcbiAgICB2YWxpZGF0ZUNvb2tpZU1heEFnZShjb29raWUubWF4QWdlKVxuICAgIG91dC5wdXNoKGBNYXgtQWdlPSR7Y29va2llLm1heEFnZX1gKVxuICB9XG5cbiAgaWYgKGNvb2tpZS5kb21haW4pIHtcbiAgICB2YWxpZGF0ZUNvb2tpZURvbWFpbihjb29raWUuZG9tYWluKVxuICAgIG91dC5wdXNoKGBEb21haW49JHtjb29raWUuZG9tYWlufWApXG4gIH1cblxuICBpZiAoY29va2llLnBhdGgpIHtcbiAgICB2YWxpZGF0ZUNvb2tpZVBhdGgoY29va2llLnBhdGgpXG4gICAgb3V0LnB1c2goYFBhdGg9JHtjb29raWUucGF0aH1gKVxuICB9XG5cbiAgaWYgKGNvb2tpZS5leHBpcmVzICYmIGNvb2tpZS5leHBpcmVzLnRvU3RyaW5nKCkgIT09ICdJbnZhbGlkIERhdGUnKSB7XG4gICAgb3V0LnB1c2goYEV4cGlyZXM9JHt0b0lNRkRhdGUoY29va2llLmV4cGlyZXMpfWApXG4gIH1cblxuICBpZiAoY29va2llLnNhbWVTaXRlKSB7XG4gICAgb3V0LnB1c2goYFNhbWVTaXRlPSR7Y29va2llLnNhbWVTaXRlfWApXG4gIH1cblxuICBmb3IgKGNvbnN0IHBhcnQgb2YgY29va2llLnVucGFyc2VkKSB7XG4gICAgaWYgKCFwYXJ0LmluY2x1ZGVzKCc9JykpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCB1bnBhcnNlZCcpXG4gICAgfVxuXG4gICAgY29uc3QgW2tleSwgLi4udmFsdWVdID0gcGFydC5zcGxpdCgnPScpXG5cbiAgICBvdXQucHVzaChgJHtrZXkudHJpbSgpfT0ke3ZhbHVlLmpvaW4oJz0nKX1gKVxuICB9XG5cbiAgcmV0dXJuIG91dC5qb2luKCc7ICcpXG59XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICBpc0NUTEV4Y2x1ZGluZ0h0YWIsXG4gIHZhbGlkYXRlQ29va2llTmFtZSxcbiAgdmFsaWRhdGVDb29raWVQYXRoLFxuICB2YWxpZGF0ZUNvb2tpZVZhbHVlLFxuICB0b0lNRkRhdGUsXG4gIHN0cmluZ2lmeVxufVxuIiwgIid1c2Ugc3RyaWN0J1xuXG5jb25zdCB7IG1heE5hbWVWYWx1ZVBhaXJTaXplLCBtYXhBdHRyaWJ1dGVWYWx1ZVNpemUgfSA9IHJlcXVpcmUoJy4vY29uc3RhbnRzJylcbmNvbnN0IHsgaXNDVExFeGNsdWRpbmdIdGFiIH0gPSByZXF1aXJlKCcuL3V0aWwnKVxuY29uc3QgeyBjb2xsZWN0QVNlcXVlbmNlT2ZDb2RlUG9pbnRzRmFzdCB9ID0gcmVxdWlyZSgnLi4vZmV0Y2gvZGF0YS11cmwnKVxuY29uc3QgYXNzZXJ0ID0gcmVxdWlyZSgnbm9kZTphc3NlcnQnKVxuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBQYXJzZXMgdGhlIGZpZWxkLXZhbHVlIGF0dHJpYnV0ZXMgb2YgYSBzZXQtY29va2llIGhlYWRlciBzdHJpbmcuXG4gKiBAc2VlIGh0dHBzOi8vZGF0YXRyYWNrZXIuaWV0Zi5vcmcvZG9jL2h0bWwvZHJhZnQtaWV0Zi1odHRwYmlzLXJmYzYyNjViaXMjc2VjdGlvbi01LjRcbiAqIEBwYXJhbSB7c3RyaW5nfSBoZWFkZXJcbiAqIEByZXR1cm5zIGlmIHRoZSBoZWFkZXIgaXMgaW52YWxpZCwgbnVsbCB3aWxsIGJlIHJldHVybmVkXG4gKi9cbmZ1bmN0aW9uIHBhcnNlU2V0Q29va2llIChoZWFkZXIpIHtcbiAgLy8gMS4gSWYgdGhlIHNldC1jb29raWUtc3RyaW5nIGNvbnRhaW5zIGEgJXgwMC0wOCAvICV4MEEtMUYgLyAleDdGXG4gIC8vICAgIGNoYXJhY3RlciAoQ1RMIGNoYXJhY3RlcnMgZXhjbHVkaW5nIEhUQUIpOiBBYm9ydCB0aGVzZSBzdGVwcyBhbmRcbiAgLy8gICAgaWdub3JlIHRoZSBzZXQtY29va2llLXN0cmluZyBlbnRpcmVseS5cbiAgaWYgKGlzQ1RMRXhjbHVkaW5nSHRhYihoZWFkZXIpKSB7XG4gICAgcmV0dXJuIG51bGxcbiAgfVxuXG4gIGxldCBuYW1lVmFsdWVQYWlyID0gJydcbiAgbGV0IHVucGFyc2VkQXR0cmlidXRlcyA9ICcnXG4gIGxldCBuYW1lID0gJydcbiAgbGV0IHZhbHVlID0gJydcblxuICAvLyAyLiBJZiB0aGUgc2V0LWNvb2tpZS1zdHJpbmcgY29udGFpbnMgYSAleDNCIChcIjtcIikgY2hhcmFjdGVyOlxuICBpZiAoaGVhZGVyLmluY2x1ZGVzKCc7JykpIHtcbiAgICAvLyAxLiBUaGUgbmFtZS12YWx1ZS1wYWlyIHN0cmluZyBjb25zaXN0cyBvZiB0aGUgY2hhcmFjdGVycyB1cCB0byxcbiAgICAvLyAgICBidXQgbm90IGluY2x1ZGluZywgdGhlIGZpcnN0ICV4M0IgKFwiO1wiKSwgYW5kIHRoZSB1bnBhcnNlZC1cbiAgICAvLyAgICBhdHRyaWJ1dGVzIGNvbnNpc3Qgb2YgdGhlIHJlbWFpbmRlciBvZiB0aGUgc2V0LWNvb2tpZS1zdHJpbmdcbiAgICAvLyAgICAoaW5jbHVkaW5nIHRoZSAleDNCIChcIjtcIikgaW4gcXVlc3Rpb24pLlxuICAgIGNvbnN0IHBvc2l0aW9uID0geyBwb3NpdGlvbjogMCB9XG5cbiAgICBuYW1lVmFsdWVQYWlyID0gY29sbGVjdEFTZXF1ZW5jZU9mQ29kZVBvaW50c0Zhc3QoJzsnLCBoZWFkZXIsIHBvc2l0aW9uKVxuICAgIHVucGFyc2VkQXR0cmlidXRlcyA9IGhlYWRlci5zbGljZShwb3NpdGlvbi5wb3NpdGlvbilcbiAgfSBlbHNlIHtcbiAgICAvLyBPdGhlcndpc2U6XG5cbiAgICAvLyAxLiBUaGUgbmFtZS12YWx1ZS1wYWlyIHN0cmluZyBjb25zaXN0cyBvZiBhbGwgdGhlIGNoYXJhY3RlcnNcbiAgICAvLyAgICBjb250YWluZWQgaW4gdGhlIHNldC1jb29raWUtc3RyaW5nLCBhbmQgdGhlIHVucGFyc2VkLVxuICAgIC8vICAgIGF0dHJpYnV0ZXMgaXMgdGhlIGVtcHR5IHN0cmluZy5cbiAgICBuYW1lVmFsdWVQYWlyID0gaGVhZGVyXG4gIH1cblxuICAvLyAzLiBJZiB0aGUgbmFtZS12YWx1ZS1wYWlyIHN0cmluZyBsYWNrcyBhICV4M0QgKFwiPVwiKSBjaGFyYWN0ZXIsIHRoZW5cbiAgLy8gICAgdGhlIG5hbWUgc3RyaW5nIGlzIGVtcHR5LCBhbmQgdGhlIHZhbHVlIHN0cmluZyBpcyB0aGUgdmFsdWUgb2ZcbiAgLy8gICAgbmFtZS12YWx1ZS1wYWlyLlxuICBpZiAoIW5hbWVWYWx1ZVBhaXIuaW5jbHVkZXMoJz0nKSkge1xuICAgIHZhbHVlID0gbmFtZVZhbHVlUGFpclxuICB9IGVsc2Uge1xuICAgIC8vICAgIE90aGVyd2lzZSwgdGhlIG5hbWUgc3RyaW5nIGNvbnNpc3RzIG9mIHRoZSBjaGFyYWN0ZXJzIHVwIHRvLCBidXRcbiAgICAvLyAgICBub3QgaW5jbHVkaW5nLCB0aGUgZmlyc3QgJXgzRCAoXCI9XCIpIGNoYXJhY3RlciwgYW5kIHRoZSAocG9zc2libHlcbiAgICAvLyAgICBlbXB0eSkgdmFsdWUgc3RyaW5nIGNvbnNpc3RzIG9mIHRoZSBjaGFyYWN0ZXJzIGFmdGVyIHRoZSBmaXJzdFxuICAgIC8vICAgICV4M0QgKFwiPVwiKSBjaGFyYWN0ZXIuXG4gICAgY29uc3QgcG9zaXRpb24gPSB7IHBvc2l0aW9uOiAwIH1cbiAgICBuYW1lID0gY29sbGVjdEFTZXF1ZW5jZU9mQ29kZVBvaW50c0Zhc3QoXG4gICAgICAnPScsXG4gICAgICBuYW1lVmFsdWVQYWlyLFxuICAgICAgcG9zaXRpb25cbiAgICApXG4gICAgdmFsdWUgPSBuYW1lVmFsdWVQYWlyLnNsaWNlKHBvc2l0aW9uLnBvc2l0aW9uICsgMSlcbiAgfVxuXG4gIC8vIDQuIFJlbW92ZSBhbnkgbGVhZGluZyBvciB0cmFpbGluZyBXU1AgY2hhcmFjdGVycyBmcm9tIHRoZSBuYW1lXG4gIC8vICAgIHN0cmluZyBhbmQgdGhlIHZhbHVlIHN0cmluZy5cbiAgbmFtZSA9IG5hbWUudHJpbSgpXG4gIHZhbHVlID0gdmFsdWUudHJpbSgpXG5cbiAgLy8gNS4gSWYgdGhlIHN1bSBvZiB0aGUgbGVuZ3RocyBvZiB0aGUgbmFtZSBzdHJpbmcgYW5kIHRoZSB2YWx1ZSBzdHJpbmdcbiAgLy8gICAgaXMgbW9yZSB0aGFuIDQwOTYgb2N0ZXRzLCBhYm9ydCB0aGVzZSBzdGVwcyBhbmQgaWdub3JlIHRoZSBzZXQtXG4gIC8vICAgIGNvb2tpZS1zdHJpbmcgZW50aXJlbHkuXG4gIGlmIChuYW1lLmxlbmd0aCArIHZhbHVlLmxlbmd0aCA+IG1heE5hbWVWYWx1ZVBhaXJTaXplKSB7XG4gICAgcmV0dXJuIG51bGxcbiAgfVxuXG4gIC8vIDYuIFRoZSBjb29raWUtbmFtZSBpcyB0aGUgbmFtZSBzdHJpbmcsIGFuZCB0aGUgY29va2llLXZhbHVlIGlzIHRoZVxuICAvLyAgICB2YWx1ZSBzdHJpbmcuXG4gIHJldHVybiB7XG4gICAgbmFtZSwgdmFsdWUsIC4uLnBhcnNlVW5wYXJzZWRBdHRyaWJ1dGVzKHVucGFyc2VkQXR0cmlidXRlcylcbiAgfVxufVxuXG4vKipcbiAqIFBhcnNlcyB0aGUgcmVtYWluaW5nIGF0dHJpYnV0ZXMgb2YgYSBzZXQtY29va2llIGhlYWRlclxuICogQHNlZSBodHRwczovL2RhdGF0cmFja2VyLmlldGYub3JnL2RvYy9odG1sL2RyYWZ0LWlldGYtaHR0cGJpcy1yZmM2MjY1YmlzI3NlY3Rpb24tNS40XG4gKiBAcGFyYW0ge3N0cmluZ30gdW5wYXJzZWRBdHRyaWJ1dGVzXG4gKiBAcGFyYW0ge1tPYmplY3QuPHN0cmluZywgdW5rbm93bj5dPXt9fSBjb29raWVBdHRyaWJ1dGVMaXN0XG4gKi9cbmZ1bmN0aW9uIHBhcnNlVW5wYXJzZWRBdHRyaWJ1dGVzICh1bnBhcnNlZEF0dHJpYnV0ZXMsIGNvb2tpZUF0dHJpYnV0ZUxpc3QgPSB7fSkge1xuICAvLyAxLiBJZiB0aGUgdW5wYXJzZWQtYXR0cmlidXRlcyBzdHJpbmcgaXMgZW1wdHksIHNraXAgdGhlIHJlc3Qgb2ZcbiAgLy8gICAgdGhlc2Ugc3RlcHMuXG4gIGlmICh1bnBhcnNlZEF0dHJpYnV0ZXMubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIGNvb2tpZUF0dHJpYnV0ZUxpc3RcbiAgfVxuXG4gIC8vIDIuIERpc2NhcmQgdGhlIGZpcnN0IGNoYXJhY3RlciBvZiB0aGUgdW5wYXJzZWQtYXR0cmlidXRlcyAod2hpY2hcbiAgLy8gICAgd2lsbCBiZSBhICV4M0IgKFwiO1wiKSBjaGFyYWN0ZXIpLlxuICBhc3NlcnQodW5wYXJzZWRBdHRyaWJ1dGVzWzBdID09PSAnOycpXG4gIHVucGFyc2VkQXR0cmlidXRlcyA9IHVucGFyc2VkQXR0cmlidXRlcy5zbGljZSgxKVxuXG4gIGxldCBjb29raWVBdiA9ICcnXG5cbiAgLy8gMy4gSWYgdGhlIHJlbWFpbmluZyB1bnBhcnNlZC1hdHRyaWJ1dGVzIGNvbnRhaW5zIGEgJXgzQiAoXCI7XCIpXG4gIC8vICAgIGNoYXJhY3RlcjpcbiAgaWYgKHVucGFyc2VkQXR0cmlidXRlcy5pbmNsdWRlcygnOycpKSB7XG4gICAgLy8gMS4gQ29uc3VtZSB0aGUgY2hhcmFjdGVycyBvZiB0aGUgdW5wYXJzZWQtYXR0cmlidXRlcyB1cCB0bywgYnV0XG4gICAgLy8gICAgbm90IGluY2x1ZGluZywgdGhlIGZpcnN0ICV4M0IgKFwiO1wiKSBjaGFyYWN0ZXIuXG4gICAgY29va2llQXYgPSBjb2xsZWN0QVNlcXVlbmNlT2ZDb2RlUG9pbnRzRmFzdChcbiAgICAgICc7JyxcbiAgICAgIHVucGFyc2VkQXR0cmlidXRlcyxcbiAgICAgIHsgcG9zaXRpb246IDAgfVxuICAgIClcbiAgICB1bnBhcnNlZEF0dHJpYnV0ZXMgPSB1bnBhcnNlZEF0dHJpYnV0ZXMuc2xpY2UoY29va2llQXYubGVuZ3RoKVxuICB9IGVsc2Uge1xuICAgIC8vIE90aGVyd2lzZTpcblxuICAgIC8vIDEuIENvbnN1bWUgdGhlIHJlbWFpbmRlciBvZiB0aGUgdW5wYXJzZWQtYXR0cmlidXRlcy5cbiAgICBjb29raWVBdiA9IHVucGFyc2VkQXR0cmlidXRlc1xuICAgIHVucGFyc2VkQXR0cmlidXRlcyA9ICcnXG4gIH1cblxuICAvLyBMZXQgdGhlIGNvb2tpZS1hdiBzdHJpbmcgYmUgdGhlIGNoYXJhY3RlcnMgY29uc3VtZWQgaW4gdGhpcyBzdGVwLlxuXG4gIGxldCBhdHRyaWJ1dGVOYW1lID0gJydcbiAgbGV0IGF0dHJpYnV0ZVZhbHVlID0gJydcblxuICAvLyA0LiBJZiB0aGUgY29va2llLWF2IHN0cmluZyBjb250YWlucyBhICV4M0QgKFwiPVwiKSBjaGFyYWN0ZXI6XG4gIGlmIChjb29raWVBdi5pbmNsdWRlcygnPScpKSB7XG4gICAgLy8gMS4gVGhlIChwb3NzaWJseSBlbXB0eSkgYXR0cmlidXRlLW5hbWUgc3RyaW5nIGNvbnNpc3RzIG9mIHRoZVxuICAgIC8vICAgIGNoYXJhY3RlcnMgdXAgdG8sIGJ1dCBub3QgaW5jbHVkaW5nLCB0aGUgZmlyc3QgJXgzRCAoXCI9XCIpXG4gICAgLy8gICAgY2hhcmFjdGVyLCBhbmQgdGhlIChwb3NzaWJseSBlbXB0eSkgYXR0cmlidXRlLXZhbHVlIHN0cmluZ1xuICAgIC8vICAgIGNvbnNpc3RzIG9mIHRoZSBjaGFyYWN0ZXJzIGFmdGVyIHRoZSBmaXJzdCAleDNEIChcIj1cIilcbiAgICAvLyAgICBjaGFyYWN0ZXIuXG4gICAgY29uc3QgcG9zaXRpb24gPSB7IHBvc2l0aW9uOiAwIH1cblxuICAgIGF0dHJpYnV0ZU5hbWUgPSBjb2xsZWN0QVNlcXVlbmNlT2ZDb2RlUG9pbnRzRmFzdChcbiAgICAgICc9JyxcbiAgICAgIGNvb2tpZUF2LFxuICAgICAgcG9zaXRpb25cbiAgICApXG4gICAgYXR0cmlidXRlVmFsdWUgPSBjb29raWVBdi5zbGljZShwb3NpdGlvbi5wb3NpdGlvbiArIDEpXG4gIH0gZWxzZSB7XG4gICAgLy8gT3RoZXJ3aXNlOlxuXG4gICAgLy8gMS4gVGhlIGF0dHJpYnV0ZS1uYW1lIHN0cmluZyBjb25zaXN0cyBvZiB0aGUgZW50aXJlIGNvb2tpZS1hdlxuICAgIC8vICAgIHN0cmluZywgYW5kIHRoZSBhdHRyaWJ1dGUtdmFsdWUgc3RyaW5nIGlzIGVtcHR5LlxuICAgIGF0dHJpYnV0ZU5hbWUgPSBjb29raWVBdlxuICB9XG5cbiAgLy8gNS4gUmVtb3ZlIGFueSBsZWFkaW5nIG9yIHRyYWlsaW5nIFdTUCBjaGFyYWN0ZXJzIGZyb20gdGhlIGF0dHJpYnV0ZS1cbiAgLy8gICAgbmFtZSBzdHJpbmcgYW5kIHRoZSBhdHRyaWJ1dGUtdmFsdWUgc3RyaW5nLlxuICBhdHRyaWJ1dGVOYW1lID0gYXR0cmlidXRlTmFtZS50cmltKClcbiAgYXR0cmlidXRlVmFsdWUgPSBhdHRyaWJ1dGVWYWx1ZS50cmltKClcblxuICAvLyA2LiBJZiB0aGUgYXR0cmlidXRlLXZhbHVlIGlzIGxvbmdlciB0aGFuIDEwMjQgb2N0ZXRzLCBpZ25vcmUgdGhlXG4gIC8vICAgIGNvb2tpZS1hdiBzdHJpbmcgYW5kIHJldHVybiB0byBTdGVwIDEgb2YgdGhpcyBhbGdvcml0aG0uXG4gIGlmIChhdHRyaWJ1dGVWYWx1ZS5sZW5ndGggPiBtYXhBdHRyaWJ1dGVWYWx1ZVNpemUpIHtcbiAgICByZXR1cm4gcGFyc2VVbnBhcnNlZEF0dHJpYnV0ZXModW5wYXJzZWRBdHRyaWJ1dGVzLCBjb29raWVBdHRyaWJ1dGVMaXN0KVxuICB9XG5cbiAgLy8gNy4gUHJvY2VzcyB0aGUgYXR0cmlidXRlLW5hbWUgYW5kIGF0dHJpYnV0ZS12YWx1ZSBhY2NvcmRpbmcgdG8gdGhlXG4gIC8vICAgIHJlcXVpcmVtZW50cyBpbiB0aGUgZm9sbG93aW5nIHN1YnNlY3Rpb25zLiAgKE5vdGljZSB0aGF0XG4gIC8vICAgIGF0dHJpYnV0ZXMgd2l0aCB1bnJlY29nbml6ZWQgYXR0cmlidXRlLW5hbWVzIGFyZSBpZ25vcmVkLilcbiAgY29uc3QgYXR0cmlidXRlTmFtZUxvd2VyY2FzZSA9IGF0dHJpYnV0ZU5hbWUudG9Mb3dlckNhc2UoKVxuXG4gIC8vIGh0dHBzOi8vZGF0YXRyYWNrZXIuaWV0Zi5vcmcvZG9jL2h0bWwvZHJhZnQtaWV0Zi1odHRwYmlzLXJmYzYyNjViaXMjc2VjdGlvbi01LjQuMVxuICAvLyBJZiB0aGUgYXR0cmlidXRlLW5hbWUgY2FzZS1pbnNlbnNpdGl2ZWx5IG1hdGNoZXMgdGhlIHN0cmluZ1xuICAvLyBcIkV4cGlyZXNcIiwgdGhlIHVzZXIgYWdlbnQgTVVTVCBwcm9jZXNzIHRoZSBjb29raWUtYXYgYXMgZm9sbG93cy5cbiAgaWYgKGF0dHJpYnV0ZU5hbWVMb3dlcmNhc2UgPT09ICdleHBpcmVzJykge1xuICAgIC8vIDEuIExldCB0aGUgZXhwaXJ5LXRpbWUgYmUgdGhlIHJlc3VsdCBvZiBwYXJzaW5nIHRoZSBhdHRyaWJ1dGUtdmFsdWVcbiAgICAvLyAgICBhcyBjb29raWUtZGF0ZSAoc2VlIFNlY3Rpb24gNS4xLjEpLlxuICAgIGNvbnN0IGV4cGlyeVRpbWUgPSBuZXcgRGF0ZShhdHRyaWJ1dGVWYWx1ZSlcblxuICAgIC8vIDIuIElmIHRoZSBhdHRyaWJ1dGUtdmFsdWUgZmFpbGVkIHRvIHBhcnNlIGFzIGEgY29va2llIGRhdGUsIGlnbm9yZVxuICAgIC8vICAgIHRoZSBjb29raWUtYXYuXG5cbiAgICBjb29raWVBdHRyaWJ1dGVMaXN0LmV4cGlyZXMgPSBleHBpcnlUaW1lXG4gIH0gZWxzZSBpZiAoYXR0cmlidXRlTmFtZUxvd2VyY2FzZSA9PT0gJ21heC1hZ2UnKSB7XG4gICAgLy8gaHR0cHM6Ly9kYXRhdHJhY2tlci5pZXRmLm9yZy9kb2MvaHRtbC9kcmFmdC1pZXRmLWh0dHBiaXMtcmZjNjI2NWJpcyNzZWN0aW9uLTUuNC4yXG4gICAgLy8gSWYgdGhlIGF0dHJpYnV0ZS1uYW1lIGNhc2UtaW5zZW5zaXRpdmVseSBtYXRjaGVzIHRoZSBzdHJpbmcgXCJNYXgtXG4gICAgLy8gQWdlXCIsIHRoZSB1c2VyIGFnZW50IE1VU1QgcHJvY2VzcyB0aGUgY29va2llLWF2IGFzIGZvbGxvd3MuXG5cbiAgICAvLyAxLiBJZiB0aGUgZmlyc3QgY2hhcmFjdGVyIG9mIHRoZSBhdHRyaWJ1dGUtdmFsdWUgaXMgbm90IGEgRElHSVQgb3IgYVxuICAgIC8vICAgIFwiLVwiIGNoYXJhY3RlciwgaWdub3JlIHRoZSBjb29raWUtYXYuXG4gICAgY29uc3QgY2hhckNvZGUgPSBhdHRyaWJ1dGVWYWx1ZS5jaGFyQ29kZUF0KDApXG5cbiAgICBpZiAoKGNoYXJDb2RlIDwgNDggfHwgY2hhckNvZGUgPiA1NykgJiYgYXR0cmlidXRlVmFsdWVbMF0gIT09ICctJykge1xuICAgICAgcmV0dXJuIHBhcnNlVW5wYXJzZWRBdHRyaWJ1dGVzKHVucGFyc2VkQXR0cmlidXRlcywgY29va2llQXR0cmlidXRlTGlzdClcbiAgICB9XG5cbiAgICAvLyAyLiBJZiB0aGUgcmVtYWluZGVyIG9mIGF0dHJpYnV0ZS12YWx1ZSBjb250YWlucyBhIG5vbi1ESUdJVFxuICAgIC8vICAgIGNoYXJhY3RlciwgaWdub3JlIHRoZSBjb29raWUtYXYuXG4gICAgaWYgKCEvXlxcZCskLy50ZXN0KGF0dHJpYnV0ZVZhbHVlKSkge1xuICAgICAgcmV0dXJuIHBhcnNlVW5wYXJzZWRBdHRyaWJ1dGVzKHVucGFyc2VkQXR0cmlidXRlcywgY29va2llQXR0cmlidXRlTGlzdClcbiAgICB9XG5cbiAgICAvLyAzLiBMZXQgZGVsdGEtc2Vjb25kcyBiZSB0aGUgYXR0cmlidXRlLXZhbHVlIGNvbnZlcnRlZCB0byBhbiBpbnRlZ2VyLlxuICAgIGNvbnN0IGRlbHRhU2Vjb25kcyA9IE51bWJlcihhdHRyaWJ1dGVWYWx1ZSlcblxuICAgIC8vIDQuIExldCBjb29raWUtYWdlLWxpbWl0IGJlIHRoZSBtYXhpbXVtIGFnZSBvZiB0aGUgY29va2llICh3aGljaFxuICAgIC8vICAgIFNIT1VMRCBiZSA0MDAgZGF5cyBvciBsZXNzLCBzZWUgU2VjdGlvbiA0LjEuMi4yKS5cblxuICAgIC8vIDUuIFNldCBkZWx0YS1zZWNvbmRzIHRvIHRoZSBzbWFsbGVyIG9mIGl0cyBwcmVzZW50IHZhbHVlIGFuZCBjb29raWUtXG4gICAgLy8gICAgYWdlLWxpbWl0LlxuICAgIC8vIGRlbHRhU2Vjb25kcyA9IE1hdGgubWluKGRlbHRhU2Vjb25kcyAqIDEwMDAsIG1heEV4cGlyZXNNcylcblxuICAgIC8vIDYuIElmIGRlbHRhLXNlY29uZHMgaXMgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIHplcm8gKDApLCBsZXQgZXhwaXJ5LVxuICAgIC8vICAgIHRpbWUgYmUgdGhlIGVhcmxpZXN0IHJlcHJlc2VudGFibGUgZGF0ZSBhbmQgdGltZS4gIE90aGVyd2lzZSwgbGV0XG4gICAgLy8gICAgdGhlIGV4cGlyeS10aW1lIGJlIHRoZSBjdXJyZW50IGRhdGUgYW5kIHRpbWUgcGx1cyBkZWx0YS1zZWNvbmRzXG4gICAgLy8gICAgc2Vjb25kcy5cbiAgICAvLyBjb25zdCBleHBpcnlUaW1lID0gZGVsdGFTZWNvbmRzIDw9IDAgPyBEYXRlLm5vdygpIDogRGF0ZS5ub3coKSArIGRlbHRhU2Vjb25kc1xuXG4gICAgLy8gNy4gQXBwZW5kIGFuIGF0dHJpYnV0ZSB0byB0aGUgY29va2llLWF0dHJpYnV0ZS1saXN0IHdpdGggYW5cbiAgICAvLyAgICBhdHRyaWJ1dGUtbmFtZSBvZiBNYXgtQWdlIGFuZCBhbiBhdHRyaWJ1dGUtdmFsdWUgb2YgZXhwaXJ5LXRpbWUuXG4gICAgY29va2llQXR0cmlidXRlTGlzdC5tYXhBZ2UgPSBkZWx0YVNlY29uZHNcbiAgfSBlbHNlIGlmIChhdHRyaWJ1dGVOYW1lTG93ZXJjYXNlID09PSAnZG9tYWluJykge1xuICAgIC8vIGh0dHBzOi8vZGF0YXRyYWNrZXIuaWV0Zi5vcmcvZG9jL2h0bWwvZHJhZnQtaWV0Zi1odHRwYmlzLXJmYzYyNjViaXMjc2VjdGlvbi01LjQuM1xuICAgIC8vIElmIHRoZSBhdHRyaWJ1dGUtbmFtZSBjYXNlLWluc2Vuc2l0aXZlbHkgbWF0Y2hlcyB0aGUgc3RyaW5nIFwiRG9tYWluXCIsXG4gICAgLy8gdGhlIHVzZXIgYWdlbnQgTVVTVCBwcm9jZXNzIHRoZSBjb29raWUtYXYgYXMgZm9sbG93cy5cblxuICAgIC8vIDEuIExldCBjb29raWUtZG9tYWluIGJlIHRoZSBhdHRyaWJ1dGUtdmFsdWUuXG4gICAgbGV0IGNvb2tpZURvbWFpbiA9IGF0dHJpYnV0ZVZhbHVlXG5cbiAgICAvLyAyLiBJZiBjb29raWUtZG9tYWluIHN0YXJ0cyB3aXRoICV4MkUgKFwiLlwiKSwgbGV0IGNvb2tpZS1kb21haW4gYmVcbiAgICAvLyAgICBjb29raWUtZG9tYWluIHdpdGhvdXQgaXRzIGxlYWRpbmcgJXgyRSAoXCIuXCIpLlxuICAgIGlmIChjb29raWVEb21haW5bMF0gPT09ICcuJykge1xuICAgICAgY29va2llRG9tYWluID0gY29va2llRG9tYWluLnNsaWNlKDEpXG4gICAgfVxuXG4gICAgLy8gMy4gQ29udmVydCB0aGUgY29va2llLWRvbWFpbiB0byBsb3dlciBjYXNlLlxuICAgIGNvb2tpZURvbWFpbiA9IGNvb2tpZURvbWFpbi50b0xvd2VyQ2FzZSgpXG5cbiAgICAvLyA0LiBBcHBlbmQgYW4gYXR0cmlidXRlIHRvIHRoZSBjb29raWUtYXR0cmlidXRlLWxpc3Qgd2l0aCBhblxuICAgIC8vICAgIGF0dHJpYnV0ZS1uYW1lIG9mIERvbWFpbiBhbmQgYW4gYXR0cmlidXRlLXZhbHVlIG9mIGNvb2tpZS1kb21haW4uXG4gICAgY29va2llQXR0cmlidXRlTGlzdC5kb21haW4gPSBjb29raWVEb21haW5cbiAgfSBlbHNlIGlmIChhdHRyaWJ1dGVOYW1lTG93ZXJjYXNlID09PSAncGF0aCcpIHtcbiAgICAvLyBodHRwczovL2RhdGF0cmFja2VyLmlldGYub3JnL2RvYy9odG1sL2RyYWZ0LWlldGYtaHR0cGJpcy1yZmM2MjY1YmlzI3NlY3Rpb24tNS40LjRcbiAgICAvLyBJZiB0aGUgYXR0cmlidXRlLW5hbWUgY2FzZS1pbnNlbnNpdGl2ZWx5IG1hdGNoZXMgdGhlIHN0cmluZyBcIlBhdGhcIixcbiAgICAvLyB0aGUgdXNlciBhZ2VudCBNVVNUIHByb2Nlc3MgdGhlIGNvb2tpZS1hdiBhcyBmb2xsb3dzLlxuXG4gICAgLy8gMS4gSWYgdGhlIGF0dHJpYnV0ZS12YWx1ZSBpcyBlbXB0eSBvciBpZiB0aGUgZmlyc3QgY2hhcmFjdGVyIG9mIHRoZVxuICAgIC8vICAgIGF0dHJpYnV0ZS12YWx1ZSBpcyBub3QgJXgyRiAoXCIvXCIpOlxuICAgIGxldCBjb29raWVQYXRoID0gJydcbiAgICBpZiAoYXR0cmlidXRlVmFsdWUubGVuZ3RoID09PSAwIHx8IGF0dHJpYnV0ZVZhbHVlWzBdICE9PSAnLycpIHtcbiAgICAgIC8vIDEuIExldCBjb29raWUtcGF0aCBiZSB0aGUgZGVmYXVsdC1wYXRoLlxuICAgICAgY29va2llUGF0aCA9ICcvJ1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBPdGhlcndpc2U6XG5cbiAgICAgIC8vIDEuIExldCBjb29raWUtcGF0aCBiZSB0aGUgYXR0cmlidXRlLXZhbHVlLlxuICAgICAgY29va2llUGF0aCA9IGF0dHJpYnV0ZVZhbHVlXG4gICAgfVxuXG4gICAgLy8gMi4gQXBwZW5kIGFuIGF0dHJpYnV0ZSB0byB0aGUgY29va2llLWF0dHJpYnV0ZS1saXN0IHdpdGggYW5cbiAgICAvLyAgICBhdHRyaWJ1dGUtbmFtZSBvZiBQYXRoIGFuZCBhbiBhdHRyaWJ1dGUtdmFsdWUgb2YgY29va2llLXBhdGguXG4gICAgY29va2llQXR0cmlidXRlTGlzdC5wYXRoID0gY29va2llUGF0aFxuICB9IGVsc2UgaWYgKGF0dHJpYnV0ZU5hbWVMb3dlcmNhc2UgPT09ICdzZWN1cmUnKSB7XG4gICAgLy8gaHR0cHM6Ly9kYXRhdHJhY2tlci5pZXRmLm9yZy9kb2MvaHRtbC9kcmFmdC1pZXRmLWh0dHBiaXMtcmZjNjI2NWJpcyNzZWN0aW9uLTUuNC41XG4gICAgLy8gSWYgdGhlIGF0dHJpYnV0ZS1uYW1lIGNhc2UtaW5zZW5zaXRpdmVseSBtYXRjaGVzIHRoZSBzdHJpbmcgXCJTZWN1cmVcIixcbiAgICAvLyB0aGUgdXNlciBhZ2VudCBNVVNUIGFwcGVuZCBhbiBhdHRyaWJ1dGUgdG8gdGhlIGNvb2tpZS1hdHRyaWJ1dGUtbGlzdFxuICAgIC8vIHdpdGggYW4gYXR0cmlidXRlLW5hbWUgb2YgU2VjdXJlIGFuZCBhbiBlbXB0eSBhdHRyaWJ1dGUtdmFsdWUuXG5cbiAgICBjb29raWVBdHRyaWJ1dGVMaXN0LnNlY3VyZSA9IHRydWVcbiAgfSBlbHNlIGlmIChhdHRyaWJ1dGVOYW1lTG93ZXJjYXNlID09PSAnaHR0cG9ubHknKSB7XG4gICAgLy8gaHR0cHM6Ly9kYXRhdHJhY2tlci5pZXRmLm9yZy9kb2MvaHRtbC9kcmFmdC1pZXRmLWh0dHBiaXMtcmZjNjI2NWJpcyNzZWN0aW9uLTUuNC42XG4gICAgLy8gSWYgdGhlIGF0dHJpYnV0ZS1uYW1lIGNhc2UtaW5zZW5zaXRpdmVseSBtYXRjaGVzIHRoZSBzdHJpbmdcbiAgICAvLyBcIkh0dHBPbmx5XCIsIHRoZSB1c2VyIGFnZW50IE1VU1QgYXBwZW5kIGFuIGF0dHJpYnV0ZSB0byB0aGUgY29va2llLVxuICAgIC8vIGF0dHJpYnV0ZS1saXN0IHdpdGggYW4gYXR0cmlidXRlLW5hbWUgb2YgSHR0cE9ubHkgYW5kIGFuIGVtcHR5XG4gICAgLy8gYXR0cmlidXRlLXZhbHVlLlxuXG4gICAgY29va2llQXR0cmlidXRlTGlzdC5odHRwT25seSA9IHRydWVcbiAgfSBlbHNlIGlmIChhdHRyaWJ1dGVOYW1lTG93ZXJjYXNlID09PSAnc2FtZXNpdGUnKSB7XG4gICAgLy8gaHR0cHM6Ly9kYXRhdHJhY2tlci5pZXRmLm9yZy9kb2MvaHRtbC9kcmFmdC1pZXRmLWh0dHBiaXMtcmZjNjI2NWJpcyNzZWN0aW9uLTUuNC43XG4gICAgLy8gSWYgdGhlIGF0dHJpYnV0ZS1uYW1lIGNhc2UtaW5zZW5zaXRpdmVseSBtYXRjaGVzIHRoZSBzdHJpbmdcbiAgICAvLyBcIlNhbWVTaXRlXCIsIHRoZSB1c2VyIGFnZW50IE1VU1QgcHJvY2VzcyB0aGUgY29va2llLWF2IGFzIGZvbGxvd3M6XG5cbiAgICAvLyAxLiBMZXQgZW5mb3JjZW1lbnQgYmUgXCJEZWZhdWx0XCIuXG4gICAgbGV0IGVuZm9yY2VtZW50ID0gJ0RlZmF1bHQnXG5cbiAgICBjb25zdCBhdHRyaWJ1dGVWYWx1ZUxvd2VyY2FzZSA9IGF0dHJpYnV0ZVZhbHVlLnRvTG93ZXJDYXNlKClcbiAgICAvLyAyLiBJZiBjb29raWUtYXYncyBhdHRyaWJ1dGUtdmFsdWUgaXMgYSBjYXNlLWluc2Vuc2l0aXZlIG1hdGNoIGZvclxuICAgIC8vICAgIFwiTm9uZVwiLCBzZXQgZW5mb3JjZW1lbnQgdG8gXCJOb25lXCIuXG4gICAgaWYgKGF0dHJpYnV0ZVZhbHVlTG93ZXJjYXNlLmluY2x1ZGVzKCdub25lJykpIHtcbiAgICAgIGVuZm9yY2VtZW50ID0gJ05vbmUnXG4gICAgfVxuXG4gICAgLy8gMy4gSWYgY29va2llLWF2J3MgYXR0cmlidXRlLXZhbHVlIGlzIGEgY2FzZS1pbnNlbnNpdGl2ZSBtYXRjaCBmb3JcbiAgICAvLyAgICBcIlN0cmljdFwiLCBzZXQgZW5mb3JjZW1lbnQgdG8gXCJTdHJpY3RcIi5cbiAgICBpZiAoYXR0cmlidXRlVmFsdWVMb3dlcmNhc2UuaW5jbHVkZXMoJ3N0cmljdCcpKSB7XG4gICAgICBlbmZvcmNlbWVudCA9ICdTdHJpY3QnXG4gICAgfVxuXG4gICAgLy8gNC4gSWYgY29va2llLWF2J3MgYXR0cmlidXRlLXZhbHVlIGlzIGEgY2FzZS1pbnNlbnNpdGl2ZSBtYXRjaCBmb3JcbiAgICAvLyAgICBcIkxheFwiLCBzZXQgZW5mb3JjZW1lbnQgdG8gXCJMYXhcIi5cbiAgICBpZiAoYXR0cmlidXRlVmFsdWVMb3dlcmNhc2UuaW5jbHVkZXMoJ2xheCcpKSB7XG4gICAgICBlbmZvcmNlbWVudCA9ICdMYXgnXG4gICAgfVxuXG4gICAgLy8gNS4gQXBwZW5kIGFuIGF0dHJpYnV0ZSB0byB0aGUgY29va2llLWF0dHJpYnV0ZS1saXN0IHdpdGggYW5cbiAgICAvLyAgICBhdHRyaWJ1dGUtbmFtZSBvZiBcIlNhbWVTaXRlXCIgYW5kIGFuIGF0dHJpYnV0ZS12YWx1ZSBvZlxuICAgIC8vICAgIGVuZm9yY2VtZW50LlxuICAgIGNvb2tpZUF0dHJpYnV0ZUxpc3Quc2FtZVNpdGUgPSBlbmZvcmNlbWVudFxuICB9IGVsc2Uge1xuICAgIGNvb2tpZUF0dHJpYnV0ZUxpc3QudW5wYXJzZWQgPz89IFtdXG5cbiAgICBjb29raWVBdHRyaWJ1dGVMaXN0LnVucGFyc2VkLnB1c2goYCR7YXR0cmlidXRlTmFtZX09JHthdHRyaWJ1dGVWYWx1ZX1gKVxuICB9XG5cbiAgLy8gOC4gUmV0dXJuIHRvIFN0ZXAgMSBvZiB0aGlzIGFsZ29yaXRobS5cbiAgcmV0dXJuIHBhcnNlVW5wYXJzZWRBdHRyaWJ1dGVzKHVucGFyc2VkQXR0cmlidXRlcywgY29va2llQXR0cmlidXRlTGlzdClcbn1cblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gIHBhcnNlU2V0Q29va2llLFxuICBwYXJzZVVucGFyc2VkQXR0cmlidXRlc1xufVxuIiwgIid1c2Ugc3RyaWN0J1xuXG5jb25zdCB7IHBhcnNlU2V0Q29va2llIH0gPSByZXF1aXJlKCcuL3BhcnNlJylcbmNvbnN0IHsgc3RyaW5naWZ5IH0gPSByZXF1aXJlKCcuL3V0aWwnKVxuY29uc3QgeyB3ZWJpZGwgfSA9IHJlcXVpcmUoJy4uL2ZldGNoL3dlYmlkbCcpXG5jb25zdCB7IEhlYWRlcnMgfSA9IHJlcXVpcmUoJy4uL2ZldGNoL2hlYWRlcnMnKVxuXG4vKipcbiAqIEB0eXBlZGVmIHtPYmplY3R9IENvb2tpZVxuICogQHByb3BlcnR5IHtzdHJpbmd9IG5hbWVcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSB2YWx1ZVxuICogQHByb3BlcnR5IHtEYXRlfG51bWJlcnx1bmRlZmluZWR9IGV4cGlyZXNcbiAqIEBwcm9wZXJ0eSB7bnVtYmVyfHVuZGVmaW5lZH0gbWF4QWdlXG4gKiBAcHJvcGVydHkge3N0cmluZ3x1bmRlZmluZWR9IGRvbWFpblxuICogQHByb3BlcnR5IHtzdHJpbmd8dW5kZWZpbmVkfSBwYXRoXG4gKiBAcHJvcGVydHkge2Jvb2xlYW58dW5kZWZpbmVkfSBzZWN1cmVcbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbnx1bmRlZmluZWR9IGh0dHBPbmx5XG4gKiBAcHJvcGVydHkgeydTdHJpY3QnfCdMYXgnfCdOb25lJ30gc2FtZVNpdGVcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nW119IHVucGFyc2VkXG4gKi9cblxuLyoqXG4gKiBAcGFyYW0ge0hlYWRlcnN9IGhlYWRlcnNcbiAqIEByZXR1cm5zIHtSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+fVxuICovXG5mdW5jdGlvbiBnZXRDb29raWVzIChoZWFkZXJzKSB7XG4gIHdlYmlkbC5hcmd1bWVudExlbmd0aENoZWNrKGFyZ3VtZW50cywgMSwgJ2dldENvb2tpZXMnKVxuXG4gIHdlYmlkbC5icmFuZENoZWNrKGhlYWRlcnMsIEhlYWRlcnMsIHsgc3RyaWN0OiBmYWxzZSB9KVxuXG4gIGNvbnN0IGNvb2tpZSA9IGhlYWRlcnMuZ2V0KCdjb29raWUnKVxuICBjb25zdCBvdXQgPSB7fVxuXG4gIGlmICghY29va2llKSB7XG4gICAgcmV0dXJuIG91dFxuICB9XG5cbiAgZm9yIChjb25zdCBwaWVjZSBvZiBjb29raWUuc3BsaXQoJzsnKSkge1xuICAgIGNvbnN0IFtuYW1lLCAuLi52YWx1ZV0gPSBwaWVjZS5zcGxpdCgnPScpXG5cbiAgICBvdXRbbmFtZS50cmltKCldID0gdmFsdWUuam9pbignPScpXG4gIH1cblxuICByZXR1cm4gb3V0XG59XG5cbi8qKlxuICogQHBhcmFtIHtIZWFkZXJzfSBoZWFkZXJzXG4gKiBAcGFyYW0ge3N0cmluZ30gbmFtZVxuICogQHBhcmFtIHt7IHBhdGg/OiBzdHJpbmcsIGRvbWFpbj86IHN0cmluZyB9fHVuZGVmaW5lZH0gYXR0cmlidXRlc1xuICogQHJldHVybnMge3ZvaWR9XG4gKi9cbmZ1bmN0aW9uIGRlbGV0ZUNvb2tpZSAoaGVhZGVycywgbmFtZSwgYXR0cmlidXRlcykge1xuICB3ZWJpZGwuYnJhbmRDaGVjayhoZWFkZXJzLCBIZWFkZXJzLCB7IHN0cmljdDogZmFsc2UgfSlcblxuICBjb25zdCBwcmVmaXggPSAnZGVsZXRlQ29va2llJ1xuICB3ZWJpZGwuYXJndW1lbnRMZW5ndGhDaGVjayhhcmd1bWVudHMsIDIsIHByZWZpeClcblxuICBuYW1lID0gd2ViaWRsLmNvbnZlcnRlcnMuRE9NU3RyaW5nKG5hbWUsIHByZWZpeCwgJ25hbWUnKVxuICBhdHRyaWJ1dGVzID0gd2ViaWRsLmNvbnZlcnRlcnMuRGVsZXRlQ29va2llQXR0cmlidXRlcyhhdHRyaWJ1dGVzKVxuXG4gIC8vIE1hdGNoZXMgYmVoYXZpb3Igb2ZcbiAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2Rlbm9sYW5kL2Rlbm9fc3RkL2Jsb2IvNjM4MjdiMTYzMzBiODI0ODlhMDQ2MTQwMjdjMzNiNzkwNGUwOGJlNS9odHRwL2Nvb2tpZS50cyNMMjc4XG4gIHNldENvb2tpZShoZWFkZXJzLCB7XG4gICAgbmFtZSxcbiAgICB2YWx1ZTogJycsXG4gICAgZXhwaXJlczogbmV3IERhdGUoMCksXG4gICAgLi4uYXR0cmlidXRlc1xuICB9KVxufVxuXG4vKipcbiAqIEBwYXJhbSB7SGVhZGVyc30gaGVhZGVyc1xuICogQHJldHVybnMge0Nvb2tpZVtdfVxuICovXG5mdW5jdGlvbiBnZXRTZXRDb29raWVzIChoZWFkZXJzKSB7XG4gIHdlYmlkbC5hcmd1bWVudExlbmd0aENoZWNrKGFyZ3VtZW50cywgMSwgJ2dldFNldENvb2tpZXMnKVxuXG4gIHdlYmlkbC5icmFuZENoZWNrKGhlYWRlcnMsIEhlYWRlcnMsIHsgc3RyaWN0OiBmYWxzZSB9KVxuXG4gIGNvbnN0IGNvb2tpZXMgPSBoZWFkZXJzLmdldFNldENvb2tpZSgpXG5cbiAgaWYgKCFjb29raWVzKSB7XG4gICAgcmV0dXJuIFtdXG4gIH1cblxuICByZXR1cm4gY29va2llcy5tYXAoKHBhaXIpID0+IHBhcnNlU2V0Q29va2llKHBhaXIpKVxufVxuXG4vKipcbiAqIEBwYXJhbSB7SGVhZGVyc30gaGVhZGVyc1xuICogQHBhcmFtIHtDb29raWV9IGNvb2tpZVxuICogQHJldHVybnMge3ZvaWR9XG4gKi9cbmZ1bmN0aW9uIHNldENvb2tpZSAoaGVhZGVycywgY29va2llKSB7XG4gIHdlYmlkbC5hcmd1bWVudExlbmd0aENoZWNrKGFyZ3VtZW50cywgMiwgJ3NldENvb2tpZScpXG5cbiAgd2ViaWRsLmJyYW5kQ2hlY2soaGVhZGVycywgSGVhZGVycywgeyBzdHJpY3Q6IGZhbHNlIH0pXG5cbiAgY29va2llID0gd2ViaWRsLmNvbnZlcnRlcnMuQ29va2llKGNvb2tpZSlcblxuICBjb25zdCBzdHIgPSBzdHJpbmdpZnkoY29va2llKVxuXG4gIGlmIChzdHIpIHtcbiAgICBoZWFkZXJzLmFwcGVuZCgnU2V0LUNvb2tpZScsIHN0cilcbiAgfVxufVxuXG53ZWJpZGwuY29udmVydGVycy5EZWxldGVDb29raWVBdHRyaWJ1dGVzID0gd2ViaWRsLmRpY3Rpb25hcnlDb252ZXJ0ZXIoW1xuICB7XG4gICAgY29udmVydGVyOiB3ZWJpZGwubnVsbGFibGVDb252ZXJ0ZXIod2ViaWRsLmNvbnZlcnRlcnMuRE9NU3RyaW5nKSxcbiAgICBrZXk6ICdwYXRoJyxcbiAgICBkZWZhdWx0VmFsdWU6ICgpID0+IG51bGxcbiAgfSxcbiAge1xuICAgIGNvbnZlcnRlcjogd2ViaWRsLm51bGxhYmxlQ29udmVydGVyKHdlYmlkbC5jb252ZXJ0ZXJzLkRPTVN0cmluZyksXG4gICAga2V5OiAnZG9tYWluJyxcbiAgICBkZWZhdWx0VmFsdWU6ICgpID0+IG51bGxcbiAgfVxuXSlcblxud2ViaWRsLmNvbnZlcnRlcnMuQ29va2llID0gd2ViaWRsLmRpY3Rpb25hcnlDb252ZXJ0ZXIoW1xuICB7XG4gICAgY29udmVydGVyOiB3ZWJpZGwuY29udmVydGVycy5ET01TdHJpbmcsXG4gICAga2V5OiAnbmFtZSdcbiAgfSxcbiAge1xuICAgIGNvbnZlcnRlcjogd2ViaWRsLmNvbnZlcnRlcnMuRE9NU3RyaW5nLFxuICAgIGtleTogJ3ZhbHVlJ1xuICB9LFxuICB7XG4gICAgY29udmVydGVyOiB3ZWJpZGwubnVsbGFibGVDb252ZXJ0ZXIoKHZhbHVlKSA9PiB7XG4gICAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJykge1xuICAgICAgICByZXR1cm4gd2ViaWRsLmNvbnZlcnRlcnNbJ3Vuc2lnbmVkIGxvbmcgbG9uZyddKHZhbHVlKVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gbmV3IERhdGUodmFsdWUpXG4gICAgfSksXG4gICAga2V5OiAnZXhwaXJlcycsXG4gICAgZGVmYXVsdFZhbHVlOiAoKSA9PiBudWxsXG4gIH0sXG4gIHtcbiAgICBjb252ZXJ0ZXI6IHdlYmlkbC5udWxsYWJsZUNvbnZlcnRlcih3ZWJpZGwuY29udmVydGVyc1snbG9uZyBsb25nJ10pLFxuICAgIGtleTogJ21heEFnZScsXG4gICAgZGVmYXVsdFZhbHVlOiAoKSA9PiBudWxsXG4gIH0sXG4gIHtcbiAgICBjb252ZXJ0ZXI6IHdlYmlkbC5udWxsYWJsZUNvbnZlcnRlcih3ZWJpZGwuY29udmVydGVycy5ET01TdHJpbmcpLFxuICAgIGtleTogJ2RvbWFpbicsXG4gICAgZGVmYXVsdFZhbHVlOiAoKSA9PiBudWxsXG4gIH0sXG4gIHtcbiAgICBjb252ZXJ0ZXI6IHdlYmlkbC5udWxsYWJsZUNvbnZlcnRlcih3ZWJpZGwuY29udmVydGVycy5ET01TdHJpbmcpLFxuICAgIGtleTogJ3BhdGgnLFxuICAgIGRlZmF1bHRWYWx1ZTogKCkgPT4gbnVsbFxuICB9LFxuICB7XG4gICAgY29udmVydGVyOiB3ZWJpZGwubnVsbGFibGVDb252ZXJ0ZXIod2ViaWRsLmNvbnZlcnRlcnMuYm9vbGVhbiksXG4gICAga2V5OiAnc2VjdXJlJyxcbiAgICBkZWZhdWx0VmFsdWU6ICgpID0+IG51bGxcbiAgfSxcbiAge1xuICAgIGNvbnZlcnRlcjogd2ViaWRsLm51bGxhYmxlQ29udmVydGVyKHdlYmlkbC5jb252ZXJ0ZXJzLmJvb2xlYW4pLFxuICAgIGtleTogJ2h0dHBPbmx5JyxcbiAgICBkZWZhdWx0VmFsdWU6ICgpID0+IG51bGxcbiAgfSxcbiAge1xuICAgIGNvbnZlcnRlcjogd2ViaWRsLmNvbnZlcnRlcnMuVVNWU3RyaW5nLFxuICAgIGtleTogJ3NhbWVTaXRlJyxcbiAgICBhbGxvd2VkVmFsdWVzOiBbJ1N0cmljdCcsICdMYXgnLCAnTm9uZSddXG4gIH0sXG4gIHtcbiAgICBjb252ZXJ0ZXI6IHdlYmlkbC5zZXF1ZW5jZUNvbnZlcnRlcih3ZWJpZGwuY29udmVydGVycy5ET01TdHJpbmcpLFxuICAgIGtleTogJ3VucGFyc2VkJyxcbiAgICBkZWZhdWx0VmFsdWU6ICgpID0+IG5ldyBBcnJheSgwKVxuICB9XG5dKVxuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgZ2V0Q29va2llcyxcbiAgZGVsZXRlQ29va2llLFxuICBnZXRTZXRDb29raWVzLFxuICBzZXRDb29raWVcbn1cbiIsICIndXNlIHN0cmljdCdcblxuY29uc3QgeyB3ZWJpZGwgfSA9IHJlcXVpcmUoJy4uL2ZldGNoL3dlYmlkbCcpXG5jb25zdCB7IGtFbnVtZXJhYmxlUHJvcGVydHkgfSA9IHJlcXVpcmUoJy4uLy4uL2NvcmUvdXRpbCcpXG5jb25zdCB7IGtDb25zdHJ1Y3QgfSA9IHJlcXVpcmUoJy4uLy4uL2NvcmUvc3ltYm9scycpXG5jb25zdCB7IE1lc3NhZ2VQb3J0IH0gPSByZXF1aXJlKCdub2RlOndvcmtlcl90aHJlYWRzJylcblxuLyoqXG4gKiBAc2VlIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL2NvbW1zLmh0bWwjbWVzc2FnZWV2ZW50XG4gKi9cbmNsYXNzIE1lc3NhZ2VFdmVudCBleHRlbmRzIEV2ZW50IHtcbiAgI2V2ZW50SW5pdFxuXG4gIGNvbnN0cnVjdG9yICh0eXBlLCBldmVudEluaXREaWN0ID0ge30pIHtcbiAgICBpZiAodHlwZSA9PT0ga0NvbnN0cnVjdCkge1xuICAgICAgc3VwZXIoYXJndW1lbnRzWzFdLCBhcmd1bWVudHNbMl0pXG4gICAgICB3ZWJpZGwudXRpbC5tYXJrQXNVbmNsb25lYWJsZSh0aGlzKVxuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgY29uc3QgcHJlZml4ID0gJ01lc3NhZ2VFdmVudCBjb25zdHJ1Y3RvcidcbiAgICB3ZWJpZGwuYXJndW1lbnRMZW5ndGhDaGVjayhhcmd1bWVudHMsIDEsIHByZWZpeClcblxuICAgIHR5cGUgPSB3ZWJpZGwuY29udmVydGVycy5ET01TdHJpbmcodHlwZSwgcHJlZml4LCAndHlwZScpXG4gICAgZXZlbnRJbml0RGljdCA9IHdlYmlkbC5jb252ZXJ0ZXJzLk1lc3NhZ2VFdmVudEluaXQoZXZlbnRJbml0RGljdCwgcHJlZml4LCAnZXZlbnRJbml0RGljdCcpXG5cbiAgICBzdXBlcih0eXBlLCBldmVudEluaXREaWN0KVxuXG4gICAgdGhpcy4jZXZlbnRJbml0ID0gZXZlbnRJbml0RGljdFxuICAgIHdlYmlkbC51dGlsLm1hcmtBc1VuY2xvbmVhYmxlKHRoaXMpXG4gIH1cblxuICBnZXQgZGF0YSAoKSB7XG4gICAgd2ViaWRsLmJyYW5kQ2hlY2sodGhpcywgTWVzc2FnZUV2ZW50KVxuXG4gICAgcmV0dXJuIHRoaXMuI2V2ZW50SW5pdC5kYXRhXG4gIH1cblxuICBnZXQgb3JpZ2luICgpIHtcbiAgICB3ZWJpZGwuYnJhbmRDaGVjayh0aGlzLCBNZXNzYWdlRXZlbnQpXG5cbiAgICByZXR1cm4gdGhpcy4jZXZlbnRJbml0Lm9yaWdpblxuICB9XG5cbiAgZ2V0IGxhc3RFdmVudElkICgpIHtcbiAgICB3ZWJpZGwuYnJhbmRDaGVjayh0aGlzLCBNZXNzYWdlRXZlbnQpXG5cbiAgICByZXR1cm4gdGhpcy4jZXZlbnRJbml0Lmxhc3RFdmVudElkXG4gIH1cblxuICBnZXQgc291cmNlICgpIHtcbiAgICB3ZWJpZGwuYnJhbmRDaGVjayh0aGlzLCBNZXNzYWdlRXZlbnQpXG5cbiAgICByZXR1cm4gdGhpcy4jZXZlbnRJbml0LnNvdXJjZVxuICB9XG5cbiAgZ2V0IHBvcnRzICgpIHtcbiAgICB3ZWJpZGwuYnJhbmRDaGVjayh0aGlzLCBNZXNzYWdlRXZlbnQpXG5cbiAgICBpZiAoIU9iamVjdC5pc0Zyb3plbih0aGlzLiNldmVudEluaXQucG9ydHMpKSB7XG4gICAgICBPYmplY3QuZnJlZXplKHRoaXMuI2V2ZW50SW5pdC5wb3J0cylcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy4jZXZlbnRJbml0LnBvcnRzXG4gIH1cblxuICBpbml0TWVzc2FnZUV2ZW50IChcbiAgICB0eXBlLFxuICAgIGJ1YmJsZXMgPSBmYWxzZSxcbiAgICBjYW5jZWxhYmxlID0gZmFsc2UsXG4gICAgZGF0YSA9IG51bGwsXG4gICAgb3JpZ2luID0gJycsXG4gICAgbGFzdEV2ZW50SWQgPSAnJyxcbiAgICBzb3VyY2UgPSBudWxsLFxuICAgIHBvcnRzID0gW11cbiAgKSB7XG4gICAgd2ViaWRsLmJyYW5kQ2hlY2sodGhpcywgTWVzc2FnZUV2ZW50KVxuXG4gICAgd2ViaWRsLmFyZ3VtZW50TGVuZ3RoQ2hlY2soYXJndW1lbnRzLCAxLCAnTWVzc2FnZUV2ZW50LmluaXRNZXNzYWdlRXZlbnQnKVxuXG4gICAgcmV0dXJuIG5ldyBNZXNzYWdlRXZlbnQodHlwZSwge1xuICAgICAgYnViYmxlcywgY2FuY2VsYWJsZSwgZGF0YSwgb3JpZ2luLCBsYXN0RXZlbnRJZCwgc291cmNlLCBwb3J0c1xuICAgIH0pXG4gIH1cblxuICBzdGF0aWMgY3JlYXRlRmFzdE1lc3NhZ2VFdmVudCAodHlwZSwgaW5pdCkge1xuICAgIGNvbnN0IG1lc3NhZ2VFdmVudCA9IG5ldyBNZXNzYWdlRXZlbnQoa0NvbnN0cnVjdCwgdHlwZSwgaW5pdClcbiAgICBtZXNzYWdlRXZlbnQuI2V2ZW50SW5pdCA9IGluaXRcbiAgICBtZXNzYWdlRXZlbnQuI2V2ZW50SW5pdC5kYXRhID8/PSBudWxsXG4gICAgbWVzc2FnZUV2ZW50LiNldmVudEluaXQub3JpZ2luID8/PSAnJ1xuICAgIG1lc3NhZ2VFdmVudC4jZXZlbnRJbml0Lmxhc3RFdmVudElkID8/PSAnJ1xuICAgIG1lc3NhZ2VFdmVudC4jZXZlbnRJbml0LnNvdXJjZSA/Pz0gbnVsbFxuICAgIG1lc3NhZ2VFdmVudC4jZXZlbnRJbml0LnBvcnRzID8/PSBbXVxuICAgIHJldHVybiBtZXNzYWdlRXZlbnRcbiAgfVxufVxuXG5jb25zdCB7IGNyZWF0ZUZhc3RNZXNzYWdlRXZlbnQgfSA9IE1lc3NhZ2VFdmVudFxuZGVsZXRlIE1lc3NhZ2VFdmVudC5jcmVhdGVGYXN0TWVzc2FnZUV2ZW50XG5cbi8qKlxuICogQHNlZSBodHRwczovL3dlYnNvY2tldHMuc3BlYy53aGF0d2cub3JnLyN0aGUtY2xvc2VldmVudC1pbnRlcmZhY2VcbiAqL1xuY2xhc3MgQ2xvc2VFdmVudCBleHRlbmRzIEV2ZW50IHtcbiAgI2V2ZW50SW5pdFxuXG4gIGNvbnN0cnVjdG9yICh0eXBlLCBldmVudEluaXREaWN0ID0ge30pIHtcbiAgICBjb25zdCBwcmVmaXggPSAnQ2xvc2VFdmVudCBjb25zdHJ1Y3RvcidcbiAgICB3ZWJpZGwuYXJndW1lbnRMZW5ndGhDaGVjayhhcmd1bWVudHMsIDEsIHByZWZpeClcblxuICAgIHR5cGUgPSB3ZWJpZGwuY29udmVydGVycy5ET01TdHJpbmcodHlwZSwgcHJlZml4LCAndHlwZScpXG4gICAgZXZlbnRJbml0RGljdCA9IHdlYmlkbC5jb252ZXJ0ZXJzLkNsb3NlRXZlbnRJbml0KGV2ZW50SW5pdERpY3QpXG5cbiAgICBzdXBlcih0eXBlLCBldmVudEluaXREaWN0KVxuXG4gICAgdGhpcy4jZXZlbnRJbml0ID0gZXZlbnRJbml0RGljdFxuICAgIHdlYmlkbC51dGlsLm1hcmtBc1VuY2xvbmVhYmxlKHRoaXMpXG4gIH1cblxuICBnZXQgd2FzQ2xlYW4gKCkge1xuICAgIHdlYmlkbC5icmFuZENoZWNrKHRoaXMsIENsb3NlRXZlbnQpXG5cbiAgICByZXR1cm4gdGhpcy4jZXZlbnRJbml0Lndhc0NsZWFuXG4gIH1cblxuICBnZXQgY29kZSAoKSB7XG4gICAgd2ViaWRsLmJyYW5kQ2hlY2sodGhpcywgQ2xvc2VFdmVudClcblxuICAgIHJldHVybiB0aGlzLiNldmVudEluaXQuY29kZVxuICB9XG5cbiAgZ2V0IHJlYXNvbiAoKSB7XG4gICAgd2ViaWRsLmJyYW5kQ2hlY2sodGhpcywgQ2xvc2VFdmVudClcblxuICAgIHJldHVybiB0aGlzLiNldmVudEluaXQucmVhc29uXG4gIH1cbn1cblxuLy8gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2Uvd2ViYXBwYXBpcy5odG1sI3RoZS1lcnJvcmV2ZW50LWludGVyZmFjZVxuY2xhc3MgRXJyb3JFdmVudCBleHRlbmRzIEV2ZW50IHtcbiAgI2V2ZW50SW5pdFxuXG4gIGNvbnN0cnVjdG9yICh0eXBlLCBldmVudEluaXREaWN0KSB7XG4gICAgY29uc3QgcHJlZml4ID0gJ0Vycm9yRXZlbnQgY29uc3RydWN0b3InXG4gICAgd2ViaWRsLmFyZ3VtZW50TGVuZ3RoQ2hlY2soYXJndW1lbnRzLCAxLCBwcmVmaXgpXG5cbiAgICBzdXBlcih0eXBlLCBldmVudEluaXREaWN0KVxuICAgIHdlYmlkbC51dGlsLm1hcmtBc1VuY2xvbmVhYmxlKHRoaXMpXG5cbiAgICB0eXBlID0gd2ViaWRsLmNvbnZlcnRlcnMuRE9NU3RyaW5nKHR5cGUsIHByZWZpeCwgJ3R5cGUnKVxuICAgIGV2ZW50SW5pdERpY3QgPSB3ZWJpZGwuY29udmVydGVycy5FcnJvckV2ZW50SW5pdChldmVudEluaXREaWN0ID8/IHt9KVxuXG4gICAgdGhpcy4jZXZlbnRJbml0ID0gZXZlbnRJbml0RGljdFxuICB9XG5cbiAgZ2V0IG1lc3NhZ2UgKCkge1xuICAgIHdlYmlkbC5icmFuZENoZWNrKHRoaXMsIEVycm9yRXZlbnQpXG5cbiAgICByZXR1cm4gdGhpcy4jZXZlbnRJbml0Lm1lc3NhZ2VcbiAgfVxuXG4gIGdldCBmaWxlbmFtZSAoKSB7XG4gICAgd2ViaWRsLmJyYW5kQ2hlY2sodGhpcywgRXJyb3JFdmVudClcblxuICAgIHJldHVybiB0aGlzLiNldmVudEluaXQuZmlsZW5hbWVcbiAgfVxuXG4gIGdldCBsaW5lbm8gKCkge1xuICAgIHdlYmlkbC5icmFuZENoZWNrKHRoaXMsIEVycm9yRXZlbnQpXG5cbiAgICByZXR1cm4gdGhpcy4jZXZlbnRJbml0LmxpbmVub1xuICB9XG5cbiAgZ2V0IGNvbG5vICgpIHtcbiAgICB3ZWJpZGwuYnJhbmRDaGVjayh0aGlzLCBFcnJvckV2ZW50KVxuXG4gICAgcmV0dXJuIHRoaXMuI2V2ZW50SW5pdC5jb2xub1xuICB9XG5cbiAgZ2V0IGVycm9yICgpIHtcbiAgICB3ZWJpZGwuYnJhbmRDaGVjayh0aGlzLCBFcnJvckV2ZW50KVxuXG4gICAgcmV0dXJuIHRoaXMuI2V2ZW50SW5pdC5lcnJvclxuICB9XG59XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKE1lc3NhZ2VFdmVudC5wcm90b3R5cGUsIHtcbiAgW1N5bWJvbC50b1N0cmluZ1RhZ106IHtcbiAgICB2YWx1ZTogJ01lc3NhZ2VFdmVudCcsXG4gICAgY29uZmlndXJhYmxlOiB0cnVlXG4gIH0sXG4gIGRhdGE6IGtFbnVtZXJhYmxlUHJvcGVydHksXG4gIG9yaWdpbjoga0VudW1lcmFibGVQcm9wZXJ0eSxcbiAgbGFzdEV2ZW50SWQ6IGtFbnVtZXJhYmxlUHJvcGVydHksXG4gIHNvdXJjZToga0VudW1lcmFibGVQcm9wZXJ0eSxcbiAgcG9ydHM6IGtFbnVtZXJhYmxlUHJvcGVydHksXG4gIGluaXRNZXNzYWdlRXZlbnQ6IGtFbnVtZXJhYmxlUHJvcGVydHlcbn0pXG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKENsb3NlRXZlbnQucHJvdG90eXBlLCB7XG4gIFtTeW1ib2wudG9TdHJpbmdUYWddOiB7XG4gICAgdmFsdWU6ICdDbG9zZUV2ZW50JyxcbiAgICBjb25maWd1cmFibGU6IHRydWVcbiAgfSxcbiAgcmVhc29uOiBrRW51bWVyYWJsZVByb3BlcnR5LFxuICBjb2RlOiBrRW51bWVyYWJsZVByb3BlcnR5LFxuICB3YXNDbGVhbjoga0VudW1lcmFibGVQcm9wZXJ0eVxufSlcblxuT2JqZWN0LmRlZmluZVByb3BlcnRpZXMoRXJyb3JFdmVudC5wcm90b3R5cGUsIHtcbiAgW1N5bWJvbC50b1N0cmluZ1RhZ106IHtcbiAgICB2YWx1ZTogJ0Vycm9yRXZlbnQnLFxuICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICB9LFxuICBtZXNzYWdlOiBrRW51bWVyYWJsZVByb3BlcnR5LFxuICBmaWxlbmFtZToga0VudW1lcmFibGVQcm9wZXJ0eSxcbiAgbGluZW5vOiBrRW51bWVyYWJsZVByb3BlcnR5LFxuICBjb2xubzoga0VudW1lcmFibGVQcm9wZXJ0eSxcbiAgZXJyb3I6IGtFbnVtZXJhYmxlUHJvcGVydHlcbn0pXG5cbndlYmlkbC5jb252ZXJ0ZXJzLk1lc3NhZ2VQb3J0ID0gd2ViaWRsLmludGVyZmFjZUNvbnZlcnRlcihNZXNzYWdlUG9ydClcblxud2ViaWRsLmNvbnZlcnRlcnNbJ3NlcXVlbmNlPE1lc3NhZ2VQb3J0PiddID0gd2ViaWRsLnNlcXVlbmNlQ29udmVydGVyKFxuICB3ZWJpZGwuY29udmVydGVycy5NZXNzYWdlUG9ydFxuKVxuXG5jb25zdCBldmVudEluaXQgPSBbXG4gIHtcbiAgICBrZXk6ICdidWJibGVzJyxcbiAgICBjb252ZXJ0ZXI6IHdlYmlkbC5jb252ZXJ0ZXJzLmJvb2xlYW4sXG4gICAgZGVmYXVsdFZhbHVlOiAoKSA9PiBmYWxzZVxuICB9LFxuICB7XG4gICAga2V5OiAnY2FuY2VsYWJsZScsXG4gICAgY29udmVydGVyOiB3ZWJpZGwuY29udmVydGVycy5ib29sZWFuLFxuICAgIGRlZmF1bHRWYWx1ZTogKCkgPT4gZmFsc2VcbiAgfSxcbiAge1xuICAgIGtleTogJ2NvbXBvc2VkJyxcbiAgICBjb252ZXJ0ZXI6IHdlYmlkbC5jb252ZXJ0ZXJzLmJvb2xlYW4sXG4gICAgZGVmYXVsdFZhbHVlOiAoKSA9PiBmYWxzZVxuICB9XG5dXG5cbndlYmlkbC5jb252ZXJ0ZXJzLk1lc3NhZ2VFdmVudEluaXQgPSB3ZWJpZGwuZGljdGlvbmFyeUNvbnZlcnRlcihbXG4gIC4uLmV2ZW50SW5pdCxcbiAge1xuICAgIGtleTogJ2RhdGEnLFxuICAgIGNvbnZlcnRlcjogd2ViaWRsLmNvbnZlcnRlcnMuYW55LFxuICAgIGRlZmF1bHRWYWx1ZTogKCkgPT4gbnVsbFxuICB9LFxuICB7XG4gICAga2V5OiAnb3JpZ2luJyxcbiAgICBjb252ZXJ0ZXI6IHdlYmlkbC5jb252ZXJ0ZXJzLlVTVlN0cmluZyxcbiAgICBkZWZhdWx0VmFsdWU6ICgpID0+ICcnXG4gIH0sXG4gIHtcbiAgICBrZXk6ICdsYXN0RXZlbnRJZCcsXG4gICAgY29udmVydGVyOiB3ZWJpZGwuY29udmVydGVycy5ET01TdHJpbmcsXG4gICAgZGVmYXVsdFZhbHVlOiAoKSA9PiAnJ1xuICB9LFxuICB7XG4gICAga2V5OiAnc291cmNlJyxcbiAgICAvLyBOb2RlIGRvZXNuJ3QgaW1wbGVtZW50IFdpbmRvd1Byb3h5IG9yIFNlcnZpY2VXb3JrZXIsIHNvIHRoZSBvbmx5XG4gICAgLy8gdmFsaWQgdmFsdWUgZm9yIHNvdXJjZSBpcyBhIE1lc3NhZ2VQb3J0LlxuICAgIGNvbnZlcnRlcjogd2ViaWRsLm51bGxhYmxlQ29udmVydGVyKHdlYmlkbC5jb252ZXJ0ZXJzLk1lc3NhZ2VQb3J0KSxcbiAgICBkZWZhdWx0VmFsdWU6ICgpID0+IG51bGxcbiAgfSxcbiAge1xuICAgIGtleTogJ3BvcnRzJyxcbiAgICBjb252ZXJ0ZXI6IHdlYmlkbC5jb252ZXJ0ZXJzWydzZXF1ZW5jZTxNZXNzYWdlUG9ydD4nXSxcbiAgICBkZWZhdWx0VmFsdWU6ICgpID0+IG5ldyBBcnJheSgwKVxuICB9XG5dKVxuXG53ZWJpZGwuY29udmVydGVycy5DbG9zZUV2ZW50SW5pdCA9IHdlYmlkbC5kaWN0aW9uYXJ5Q29udmVydGVyKFtcbiAgLi4uZXZlbnRJbml0LFxuICB7XG4gICAga2V5OiAnd2FzQ2xlYW4nLFxuICAgIGNvbnZlcnRlcjogd2ViaWRsLmNvbnZlcnRlcnMuYm9vbGVhbixcbiAgICBkZWZhdWx0VmFsdWU6ICgpID0+IGZhbHNlXG4gIH0sXG4gIHtcbiAgICBrZXk6ICdjb2RlJyxcbiAgICBjb252ZXJ0ZXI6IHdlYmlkbC5jb252ZXJ0ZXJzWyd1bnNpZ25lZCBzaG9ydCddLFxuICAgIGRlZmF1bHRWYWx1ZTogKCkgPT4gMFxuICB9LFxuICB7XG4gICAga2V5OiAncmVhc29uJyxcbiAgICBjb252ZXJ0ZXI6IHdlYmlkbC5jb252ZXJ0ZXJzLlVTVlN0cmluZyxcbiAgICBkZWZhdWx0VmFsdWU6ICgpID0+ICcnXG4gIH1cbl0pXG5cbndlYmlkbC5jb252ZXJ0ZXJzLkVycm9yRXZlbnRJbml0ID0gd2ViaWRsLmRpY3Rpb25hcnlDb252ZXJ0ZXIoW1xuICAuLi5ldmVudEluaXQsXG4gIHtcbiAgICBrZXk6ICdtZXNzYWdlJyxcbiAgICBjb252ZXJ0ZXI6IHdlYmlkbC5jb252ZXJ0ZXJzLkRPTVN0cmluZyxcbiAgICBkZWZhdWx0VmFsdWU6ICgpID0+ICcnXG4gIH0sXG4gIHtcbiAgICBrZXk6ICdmaWxlbmFtZScsXG4gICAgY29udmVydGVyOiB3ZWJpZGwuY29udmVydGVycy5VU1ZTdHJpbmcsXG4gICAgZGVmYXVsdFZhbHVlOiAoKSA9PiAnJ1xuICB9LFxuICB7XG4gICAga2V5OiAnbGluZW5vJyxcbiAgICBjb252ZXJ0ZXI6IHdlYmlkbC5jb252ZXJ0ZXJzWyd1bnNpZ25lZCBsb25nJ10sXG4gICAgZGVmYXVsdFZhbHVlOiAoKSA9PiAwXG4gIH0sXG4gIHtcbiAgICBrZXk6ICdjb2xubycsXG4gICAgY29udmVydGVyOiB3ZWJpZGwuY29udmVydGVyc1sndW5zaWduZWQgbG9uZyddLFxuICAgIGRlZmF1bHRWYWx1ZTogKCkgPT4gMFxuICB9LFxuICB7XG4gICAga2V5OiAnZXJyb3InLFxuICAgIGNvbnZlcnRlcjogd2ViaWRsLmNvbnZlcnRlcnMuYW55XG4gIH1cbl0pXG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICBNZXNzYWdlRXZlbnQsXG4gIENsb3NlRXZlbnQsXG4gIEVycm9yRXZlbnQsXG4gIGNyZWF0ZUZhc3RNZXNzYWdlRXZlbnRcbn1cbiIsICIndXNlIHN0cmljdCdcblxuLy8gVGhpcyBpcyBhIEdsb2JhbGx5IFVuaXF1ZSBJZGVudGlmaWVyIHVuaXF1ZSB1c2VkXG4vLyB0byB2YWxpZGF0ZSB0aGF0IHRoZSBlbmRwb2ludCBhY2NlcHRzIHdlYnNvY2tldFxuLy8gY29ubmVjdGlvbnMuXG4vLyBTZWUgaHR0cHM6Ly93d3cucmZjLWVkaXRvci5vcmcvcmZjL3JmYzY0NTUuaHRtbCNzZWN0aW9uLTEuM1xuY29uc3QgdWlkID0gJzI1OEVBRkE1LUU5MTQtNDdEQS05NUNBLUM1QUIwREM4NUIxMSdcblxuLyoqIEB0eXBlIHtQcm9wZXJ0eURlc2NyaXB0b3J9ICovXG5jb25zdCBzdGF0aWNQcm9wZXJ0eURlc2NyaXB0b3JzID0ge1xuICBlbnVtZXJhYmxlOiB0cnVlLFxuICB3cml0YWJsZTogZmFsc2UsXG4gIGNvbmZpZ3VyYWJsZTogZmFsc2Vcbn1cblxuY29uc3Qgc3RhdGVzID0ge1xuICBDT05ORUNUSU5HOiAwLFxuICBPUEVOOiAxLFxuICBDTE9TSU5HOiAyLFxuICBDTE9TRUQ6IDNcbn1cblxuY29uc3Qgc2VudENsb3NlRnJhbWVTdGF0ZSA9IHtcbiAgTk9UX1NFTlQ6IDAsXG4gIFBST0NFU1NJTkc6IDEsXG4gIFNFTlQ6IDJcbn1cblxuY29uc3Qgb3Bjb2RlcyA9IHtcbiAgQ09OVElOVUFUSU9OOiAweDAsXG4gIFRFWFQ6IDB4MSxcbiAgQklOQVJZOiAweDIsXG4gIENMT1NFOiAweDgsXG4gIFBJTkc6IDB4OSxcbiAgUE9ORzogMHhBXG59XG5cbmNvbnN0IG1heFVuc2lnbmVkMTZCaXQgPSAyICoqIDE2IC0gMSAvLyA2NTUzNVxuXG5jb25zdCBwYXJzZXJTdGF0ZXMgPSB7XG4gIElORk86IDAsXG4gIFBBWUxPQURMRU5HVEhfMTY6IDIsXG4gIFBBWUxPQURMRU5HVEhfNjQ6IDMsXG4gIFJFQURfREFUQTogNFxufVxuXG5jb25zdCBlbXB0eUJ1ZmZlciA9IEJ1ZmZlci5hbGxvY1Vuc2FmZSgwKVxuXG5jb25zdCBzZW5kSGludHMgPSB7XG4gIHN0cmluZzogMSxcbiAgdHlwZWRBcnJheTogMixcbiAgYXJyYXlCdWZmZXI6IDMsXG4gIGJsb2I6IDRcbn1cblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gIHVpZCxcbiAgc2VudENsb3NlRnJhbWVTdGF0ZSxcbiAgc3RhdGljUHJvcGVydHlEZXNjcmlwdG9ycyxcbiAgc3RhdGVzLFxuICBvcGNvZGVzLFxuICBtYXhVbnNpZ25lZDE2Qml0LFxuICBwYXJzZXJTdGF0ZXMsXG4gIGVtcHR5QnVmZmVyLFxuICBzZW5kSGludHNcbn1cbiIsICIndXNlIHN0cmljdCdcblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gIGtXZWJTb2NrZXRVUkw6IFN5bWJvbCgndXJsJyksXG4gIGtSZWFkeVN0YXRlOiBTeW1ib2woJ3JlYWR5IHN0YXRlJyksXG4gIGtDb250cm9sbGVyOiBTeW1ib2woJ2NvbnRyb2xsZXInKSxcbiAga1Jlc3BvbnNlOiBTeW1ib2woJ3Jlc3BvbnNlJyksXG4gIGtCaW5hcnlUeXBlOiBTeW1ib2woJ2JpbmFyeSB0eXBlJyksXG4gIGtTZW50Q2xvc2U6IFN5bWJvbCgnc2VudCBjbG9zZScpLFxuICBrUmVjZWl2ZWRDbG9zZTogU3ltYm9sKCdyZWNlaXZlZCBjbG9zZScpLFxuICBrQnl0ZVBhcnNlcjogU3ltYm9sKCdieXRlIHBhcnNlcicpXG59XG4iLCAiJ3VzZSBzdHJpY3QnXG5cbmNvbnN0IHsga1JlYWR5U3RhdGUsIGtDb250cm9sbGVyLCBrUmVzcG9uc2UsIGtCaW5hcnlUeXBlLCBrV2ViU29ja2V0VVJMIH0gPSByZXF1aXJlKCcuL3N5bWJvbHMnKVxuY29uc3QgeyBzdGF0ZXMsIG9wY29kZXMgfSA9IHJlcXVpcmUoJy4vY29uc3RhbnRzJylcbmNvbnN0IHsgRXJyb3JFdmVudCwgY3JlYXRlRmFzdE1lc3NhZ2VFdmVudCB9ID0gcmVxdWlyZSgnLi9ldmVudHMnKVxuY29uc3QgeyBpc1V0ZjggfSA9IHJlcXVpcmUoJ25vZGU6YnVmZmVyJylcbmNvbnN0IHsgY29sbGVjdEFTZXF1ZW5jZU9mQ29kZVBvaW50c0Zhc3QsIHJlbW92ZUhUVFBXaGl0ZXNwYWNlIH0gPSByZXF1aXJlKCcuLi9mZXRjaC9kYXRhLXVybCcpXG5cbi8qIGdsb2JhbHMgQmxvYiAqL1xuXG4vKipcbiAqIEBwYXJhbSB7aW1wb3J0KCcuL3dlYnNvY2tldCcpLldlYlNvY2tldH0gd3NcbiAqIEByZXR1cm5zIHtib29sZWFufVxuICovXG5mdW5jdGlvbiBpc0Nvbm5lY3RpbmcgKHdzKSB7XG4gIC8vIElmIHRoZSBXZWJTb2NrZXQgY29ubmVjdGlvbiBpcyBub3QgeWV0IGVzdGFibGlzaGVkLCBhbmQgdGhlIGNvbm5lY3Rpb25cbiAgLy8gaXMgbm90IHlldCBjbG9zZWQsIHRoZW4gdGhlIFdlYlNvY2tldCBjb25uZWN0aW9uIGlzIGluIHRoZSBDT05ORUNUSU5HIHN0YXRlLlxuICByZXR1cm4gd3Nba1JlYWR5U3RhdGVdID09PSBzdGF0ZXMuQ09OTkVDVElOR1xufVxuXG4vKipcbiAqIEBwYXJhbSB7aW1wb3J0KCcuL3dlYnNvY2tldCcpLldlYlNvY2tldH0gd3NcbiAqIEByZXR1cm5zIHtib29sZWFufVxuICovXG5mdW5jdGlvbiBpc0VzdGFibGlzaGVkICh3cykge1xuICAvLyBJZiB0aGUgc2VydmVyJ3MgcmVzcG9uc2UgaXMgdmFsaWRhdGVkIGFzIHByb3ZpZGVkIGZvciBhYm92ZSwgaXQgaXNcbiAgLy8gc2FpZCB0aGF0IF9UaGUgV2ViU29ja2V0IENvbm5lY3Rpb24gaXMgRXN0YWJsaXNoZWRfIGFuZCB0aGF0IHRoZVxuICAvLyBXZWJTb2NrZXQgQ29ubmVjdGlvbiBpcyBpbiB0aGUgT1BFTiBzdGF0ZS5cbiAgcmV0dXJuIHdzW2tSZWFkeVN0YXRlXSA9PT0gc3RhdGVzLk9QRU5cbn1cblxuLyoqXG4gKiBAcGFyYW0ge2ltcG9ydCgnLi93ZWJzb2NrZXQnKS5XZWJTb2NrZXR9IHdzXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAqL1xuZnVuY3Rpb24gaXNDbG9zaW5nICh3cykge1xuICAvLyBVcG9uIGVpdGhlciBzZW5kaW5nIG9yIHJlY2VpdmluZyBhIENsb3NlIGNvbnRyb2wgZnJhbWUsIGl0IGlzIHNhaWRcbiAgLy8gdGhhdCBfVGhlIFdlYlNvY2tldCBDbG9zaW5nIEhhbmRzaGFrZSBpcyBTdGFydGVkXyBhbmQgdGhhdCB0aGVcbiAgLy8gV2ViU29ja2V0IGNvbm5lY3Rpb24gaXMgaW4gdGhlIENMT1NJTkcgc3RhdGUuXG4gIHJldHVybiB3c1trUmVhZHlTdGF0ZV0gPT09IHN0YXRlcy5DTE9TSU5HXG59XG5cbi8qKlxuICogQHBhcmFtIHtpbXBvcnQoJy4vd2Vic29ja2V0JykuV2ViU29ja2V0fSB3c1xuICogQHJldHVybnMge2Jvb2xlYW59XG4gKi9cbmZ1bmN0aW9uIGlzQ2xvc2VkICh3cykge1xuICByZXR1cm4gd3Nba1JlYWR5U3RhdGVdID09PSBzdGF0ZXMuQ0xPU0VEXG59XG5cbi8qKlxuICogQHNlZSBodHRwczovL2RvbS5zcGVjLndoYXR3Zy5vcmcvI2NvbmNlcHQtZXZlbnQtZmlyZVxuICogQHBhcmFtIHtzdHJpbmd9IGVcbiAqIEBwYXJhbSB7RXZlbnRUYXJnZXR9IHRhcmdldFxuICogQHBhcmFtIHsoLi4uYXJnczogQ29uc3RydWN0b3JQYXJhbWV0ZXJzPHR5cGVvZiBFdmVudD4pID0+IEV2ZW50fSBldmVudEZhY3RvcnlcbiAqIEBwYXJhbSB7RXZlbnRJbml0IHwgdW5kZWZpbmVkfSBldmVudEluaXREaWN0XG4gKi9cbmZ1bmN0aW9uIGZpcmVFdmVudCAoZSwgdGFyZ2V0LCBldmVudEZhY3RvcnkgPSAodHlwZSwgaW5pdCkgPT4gbmV3IEV2ZW50KHR5cGUsIGluaXQpLCBldmVudEluaXREaWN0ID0ge30pIHtcbiAgLy8gMS4gSWYgZXZlbnRDb25zdHJ1Y3RvciBpcyBub3QgZ2l2ZW4sIHRoZW4gbGV0IGV2ZW50Q29uc3RydWN0b3IgYmUgRXZlbnQuXG5cbiAgLy8gMi4gTGV0IGV2ZW50IGJlIHRoZSByZXN1bHQgb2YgY3JlYXRpbmcgYW4gZXZlbnQgZ2l2ZW4gZXZlbnRDb25zdHJ1Y3RvcixcbiAgLy8gICAgaW4gdGhlIHJlbGV2YW50IHJlYWxtIG9mIHRhcmdldC5cbiAgLy8gMy4gSW5pdGlhbGl6ZSBldmVudFx1MjAxOXMgdHlwZSBhdHRyaWJ1dGUgdG8gZS5cbiAgY29uc3QgZXZlbnQgPSBldmVudEZhY3RvcnkoZSwgZXZlbnRJbml0RGljdClcblxuICAvLyA0LiBJbml0aWFsaXplIGFueSBvdGhlciBJREwgYXR0cmlidXRlcyBvZiBldmVudCBhcyBkZXNjcmliZWQgaW4gdGhlXG4gIC8vICAgIGludm9jYXRpb24gb2YgdGhpcyBhbGdvcml0aG0uXG5cbiAgLy8gNS4gUmV0dXJuIHRoZSByZXN1bHQgb2YgZGlzcGF0Y2hpbmcgZXZlbnQgYXQgdGFyZ2V0LCB3aXRoIGxlZ2FjeSB0YXJnZXRcbiAgLy8gICAgb3ZlcnJpZGUgZmxhZyBzZXQgaWYgc2V0LlxuICB0YXJnZXQuZGlzcGF0Y2hFdmVudChldmVudClcbn1cblxuLyoqXG4gKiBAc2VlIGh0dHBzOi8vd2Vic29ja2V0cy5zcGVjLndoYXR3Zy5vcmcvI2ZlZWRiYWNrLWZyb20tdGhlLXByb3RvY29sXG4gKiBAcGFyYW0ge2ltcG9ydCgnLi93ZWJzb2NrZXQnKS5XZWJTb2NrZXR9IHdzXG4gKiBAcGFyYW0ge251bWJlcn0gdHlwZSBPcGNvZGVcbiAqIEBwYXJhbSB7QnVmZmVyfSBkYXRhIGFwcGxpY2F0aW9uIGRhdGFcbiAqL1xuZnVuY3Rpb24gd2Vic29ja2V0TWVzc2FnZVJlY2VpdmVkICh3cywgdHlwZSwgZGF0YSkge1xuICAvLyAxLiBJZiByZWFkeSBzdGF0ZSBpcyBub3QgT1BFTiAoMSksIHRoZW4gcmV0dXJuLlxuICBpZiAod3Nba1JlYWR5U3RhdGVdICE9PSBzdGF0ZXMuT1BFTikge1xuICAgIHJldHVyblxuICB9XG5cbiAgLy8gMi4gTGV0IGRhdGFGb3JFdmVudCBiZSBkZXRlcm1pbmVkIGJ5IHN3aXRjaGluZyBvbiB0eXBlIGFuZCBiaW5hcnkgdHlwZTpcbiAgbGV0IGRhdGFGb3JFdmVudFxuXG4gIGlmICh0eXBlID09PSBvcGNvZGVzLlRFWFQpIHtcbiAgICAvLyAtPiB0eXBlIGluZGljYXRlcyB0aGF0IHRoZSBkYXRhIGlzIFRleHRcbiAgICAvLyAgICAgIGEgbmV3IERPTVN0cmluZyBjb250YWluaW5nIGRhdGFcbiAgICB0cnkge1xuICAgICAgZGF0YUZvckV2ZW50ID0gdXRmOERlY29kZShkYXRhKVxuICAgIH0gY2F0Y2gge1xuICAgICAgZmFpbFdlYnNvY2tldENvbm5lY3Rpb24od3MsICdSZWNlaXZlZCBpbnZhbGlkIFVURi04IGluIHRleHQgZnJhbWUuJylcbiAgICAgIHJldHVyblxuICAgIH1cbiAgfSBlbHNlIGlmICh0eXBlID09PSBvcGNvZGVzLkJJTkFSWSkge1xuICAgIGlmICh3c1trQmluYXJ5VHlwZV0gPT09ICdibG9iJykge1xuICAgICAgLy8gLT4gdHlwZSBpbmRpY2F0ZXMgdGhhdCB0aGUgZGF0YSBpcyBCaW5hcnkgYW5kIGJpbmFyeSB0eXBlIGlzIFwiYmxvYlwiXG4gICAgICAvLyAgICAgIGEgbmV3IEJsb2Igb2JqZWN0LCBjcmVhdGVkIGluIHRoZSByZWxldmFudCBSZWFsbSBvZiB0aGUgV2ViU29ja2V0XG4gICAgICAvLyAgICAgIG9iamVjdCwgdGhhdCByZXByZXNlbnRzIGRhdGEgYXMgaXRzIHJhdyBkYXRhXG4gICAgICBkYXRhRm9yRXZlbnQgPSBuZXcgQmxvYihbZGF0YV0pXG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIC0+IHR5cGUgaW5kaWNhdGVzIHRoYXQgdGhlIGRhdGEgaXMgQmluYXJ5IGFuZCBiaW5hcnkgdHlwZSBpcyBcImFycmF5YnVmZmVyXCJcbiAgICAgIC8vICAgICAgYSBuZXcgQXJyYXlCdWZmZXIgb2JqZWN0LCBjcmVhdGVkIGluIHRoZSByZWxldmFudCBSZWFsbSBvZiB0aGVcbiAgICAgIC8vICAgICAgV2ViU29ja2V0IG9iamVjdCwgd2hvc2UgY29udGVudHMgYXJlIGRhdGFcbiAgICAgIGRhdGFGb3JFdmVudCA9IHRvQXJyYXlCdWZmZXIoZGF0YSlcbiAgICB9XG4gIH1cblxuICAvLyAzLiBGaXJlIGFuIGV2ZW50IG5hbWVkIG1lc3NhZ2UgYXQgdGhlIFdlYlNvY2tldCBvYmplY3QsIHVzaW5nIE1lc3NhZ2VFdmVudCxcbiAgLy8gICAgd2l0aCB0aGUgb3JpZ2luIGF0dHJpYnV0ZSBpbml0aWFsaXplZCB0byB0aGUgc2VyaWFsaXphdGlvbiBvZiB0aGUgV2ViU29ja2V0XG4gIC8vICAgIG9iamVjdFx1MjAxOXMgdXJsJ3Mgb3JpZ2luLCBhbmQgdGhlIGRhdGEgYXR0cmlidXRlIGluaXRpYWxpemVkIHRvIGRhdGFGb3JFdmVudC5cbiAgZmlyZUV2ZW50KCdtZXNzYWdlJywgd3MsIGNyZWF0ZUZhc3RNZXNzYWdlRXZlbnQsIHtcbiAgICBvcmlnaW46IHdzW2tXZWJTb2NrZXRVUkxdLm9yaWdpbixcbiAgICBkYXRhOiBkYXRhRm9yRXZlbnRcbiAgfSlcbn1cblxuZnVuY3Rpb24gdG9BcnJheUJ1ZmZlciAoYnVmZmVyKSB7XG4gIGlmIChidWZmZXIuYnl0ZUxlbmd0aCA9PT0gYnVmZmVyLmJ1ZmZlci5ieXRlTGVuZ3RoKSB7XG4gICAgcmV0dXJuIGJ1ZmZlci5idWZmZXJcbiAgfVxuICByZXR1cm4gYnVmZmVyLmJ1ZmZlci5zbGljZShidWZmZXIuYnl0ZU9mZnNldCwgYnVmZmVyLmJ5dGVPZmZzZXQgKyBidWZmZXIuYnl0ZUxlbmd0aClcbn1cblxuLyoqXG4gKiBAc2VlIGh0dHBzOi8vZGF0YXRyYWNrZXIuaWV0Zi5vcmcvZG9jL2h0bWwvcmZjNjQ1NVxuICogQHNlZSBodHRwczovL2RhdGF0cmFja2VyLmlldGYub3JnL2RvYy9odG1sL3JmYzI2MTZcbiAqIEBzZWUgaHR0cHM6Ly9idWdzLmNocm9taXVtLm9yZy9wL2Nocm9taXVtL2lzc3Vlcy9kZXRhaWw/aWQ9Mzk4NDA3XG4gKiBAcGFyYW0ge3N0cmluZ30gcHJvdG9jb2xcbiAqL1xuZnVuY3Rpb24gaXNWYWxpZFN1YnByb3RvY29sIChwcm90b2NvbCkge1xuICAvLyBJZiBwcmVzZW50LCB0aGlzIHZhbHVlIGluZGljYXRlcyBvbmVcbiAgLy8gb3IgbW9yZSBjb21tYS1zZXBhcmF0ZWQgc3VicHJvdG9jb2wgdGhlIGNsaWVudCB3aXNoZXMgdG8gc3BlYWssXG4gIC8vIG9yZGVyZWQgYnkgcHJlZmVyZW5jZS4gIFRoZSBlbGVtZW50cyB0aGF0IGNvbXByaXNlIHRoaXMgdmFsdWVcbiAgLy8gTVVTVCBiZSBub24tZW1wdHkgc3RyaW5ncyB3aXRoIGNoYXJhY3RlcnMgaW4gdGhlIHJhbmdlIFUrMDAyMSB0b1xuICAvLyBVKzAwN0Ugbm90IGluY2x1ZGluZyBzZXBhcmF0b3IgY2hhcmFjdGVycyBhcyBkZWZpbmVkIGluXG4gIC8vIFtSRkMyNjE2XSBhbmQgTVVTVCBhbGwgYmUgdW5pcXVlIHN0cmluZ3MuXG4gIGlmIChwcm90b2NvbC5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgcHJvdG9jb2wubGVuZ3RoOyArK2kpIHtcbiAgICBjb25zdCBjb2RlID0gcHJvdG9jb2wuY2hhckNvZGVBdChpKVxuXG4gICAgaWYgKFxuICAgICAgY29kZSA8IDB4MjEgfHwgLy8gQ1RMLCBjb250YWlucyBTUCAoMHgyMCkgYW5kIEhUICgweDA5KVxuICAgICAgY29kZSA+IDB4N0UgfHxcbiAgICAgIGNvZGUgPT09IDB4MjIgfHwgLy8gXCJcbiAgICAgIGNvZGUgPT09IDB4MjggfHwgLy8gKFxuICAgICAgY29kZSA9PT0gMHgyOSB8fCAvLyApXG4gICAgICBjb2RlID09PSAweDJDIHx8IC8vICxcbiAgICAgIGNvZGUgPT09IDB4MkYgfHwgLy8gL1xuICAgICAgY29kZSA9PT0gMHgzQSB8fCAvLyA6XG4gICAgICBjb2RlID09PSAweDNCIHx8IC8vIDtcbiAgICAgIGNvZGUgPT09IDB4M0MgfHwgLy8gPFxuICAgICAgY29kZSA9PT0gMHgzRCB8fCAvLyA9XG4gICAgICBjb2RlID09PSAweDNFIHx8IC8vID5cbiAgICAgIGNvZGUgPT09IDB4M0YgfHwgLy8gP1xuICAgICAgY29kZSA9PT0gMHg0MCB8fCAvLyBAXG4gICAgICBjb2RlID09PSAweDVCIHx8IC8vIFtcbiAgICAgIGNvZGUgPT09IDB4NUMgfHwgLy8gXFxcbiAgICAgIGNvZGUgPT09IDB4NUQgfHwgLy8gXVxuICAgICAgY29kZSA9PT0gMHg3QiB8fCAvLyB7XG4gICAgICBjb2RlID09PSAweDdEIC8vIH1cbiAgICApIHtcbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiB0cnVlXG59XG5cbi8qKlxuICogQHNlZSBodHRwczovL2RhdGF0cmFja2VyLmlldGYub3JnL2RvYy9odG1sL3JmYzY0NTUjc2VjdGlvbi03LTRcbiAqIEBwYXJhbSB7bnVtYmVyfSBjb2RlXG4gKi9cbmZ1bmN0aW9uIGlzVmFsaWRTdGF0dXNDb2RlIChjb2RlKSB7XG4gIGlmIChjb2RlID49IDEwMDAgJiYgY29kZSA8IDEwMTUpIHtcbiAgICByZXR1cm4gKFxuICAgICAgY29kZSAhPT0gMTAwNCAmJiAvLyByZXNlcnZlZFxuICAgICAgY29kZSAhPT0gMTAwNSAmJiAvLyBcIk1VU1QgTk9UIGJlIHNldCBhcyBhIHN0YXR1cyBjb2RlXCJcbiAgICAgIGNvZGUgIT09IDEwMDYgLy8gXCJNVVNUIE5PVCBiZSBzZXQgYXMgYSBzdGF0dXMgY29kZVwiXG4gICAgKVxuICB9XG5cbiAgcmV0dXJuIGNvZGUgPj0gMzAwMCAmJiBjb2RlIDw9IDQ5OTlcbn1cblxuLyoqXG4gKiBAcGFyYW0ge2ltcG9ydCgnLi93ZWJzb2NrZXQnKS5XZWJTb2NrZXR9IHdzXG4gKiBAcGFyYW0ge3N0cmluZ3x1bmRlZmluZWR9IHJlYXNvblxuICovXG5mdW5jdGlvbiBmYWlsV2Vic29ja2V0Q29ubmVjdGlvbiAod3MsIHJlYXNvbikge1xuICBjb25zdCB7IFtrQ29udHJvbGxlcl06IGNvbnRyb2xsZXIsIFtrUmVzcG9uc2VdOiByZXNwb25zZSB9ID0gd3NcblxuICBjb250cm9sbGVyLmFib3J0KClcblxuICBpZiAocmVzcG9uc2U/LnNvY2tldCAmJiAhcmVzcG9uc2Uuc29ja2V0LmRlc3Ryb3llZCkge1xuICAgIHJlc3BvbnNlLnNvY2tldC5kZXN0cm95KClcbiAgfVxuXG4gIGlmIChyZWFzb24pIHtcbiAgICAvLyBUT0RPOiBwcm9jZXNzLm5leHRUaWNrXG4gICAgZmlyZUV2ZW50KCdlcnJvcicsIHdzLCAodHlwZSwgaW5pdCkgPT4gbmV3IEVycm9yRXZlbnQodHlwZSwgaW5pdCksIHtcbiAgICAgIGVycm9yOiBuZXcgRXJyb3IocmVhc29uKSxcbiAgICAgIG1lc3NhZ2U6IHJlYXNvblxuICAgIH0pXG4gIH1cbn1cblxuLyoqXG4gKiBAc2VlIGh0dHBzOi8vZGF0YXRyYWNrZXIuaWV0Zi5vcmcvZG9jL2h0bWwvcmZjNjQ1NSNzZWN0aW9uLTUuNVxuICogQHBhcmFtIHtudW1iZXJ9IG9wY29kZVxuICovXG5mdW5jdGlvbiBpc0NvbnRyb2xGcmFtZSAob3Bjb2RlKSB7XG4gIHJldHVybiAoXG4gICAgb3Bjb2RlID09PSBvcGNvZGVzLkNMT1NFIHx8XG4gICAgb3Bjb2RlID09PSBvcGNvZGVzLlBJTkcgfHxcbiAgICBvcGNvZGUgPT09IG9wY29kZXMuUE9OR1xuICApXG59XG5cbmZ1bmN0aW9uIGlzQ29udGludWF0aW9uRnJhbWUgKG9wY29kZSkge1xuICByZXR1cm4gb3Bjb2RlID09PSBvcGNvZGVzLkNPTlRJTlVBVElPTlxufVxuXG5mdW5jdGlvbiBpc1RleHRCaW5hcnlGcmFtZSAob3Bjb2RlKSB7XG4gIHJldHVybiBvcGNvZGUgPT09IG9wY29kZXMuVEVYVCB8fCBvcGNvZGUgPT09IG9wY29kZXMuQklOQVJZXG59XG5cbmZ1bmN0aW9uIGlzVmFsaWRPcGNvZGUgKG9wY29kZSkge1xuICByZXR1cm4gaXNUZXh0QmluYXJ5RnJhbWUob3Bjb2RlKSB8fCBpc0NvbnRpbnVhdGlvbkZyYW1lKG9wY29kZSkgfHwgaXNDb250cm9sRnJhbWUob3Bjb2RlKVxufVxuXG4vKipcbiAqIFBhcnNlcyBhIFNlYy1XZWJTb2NrZXQtRXh0ZW5zaW9ucyBoZWFkZXIgdmFsdWUuXG4gKiBAcGFyYW0ge3N0cmluZ30gZXh0ZW5zaW9uc1xuICogQHJldHVybnMge01hcDxzdHJpbmcsIHN0cmluZz59XG4gKi9cbi8vIFRPRE8oQFV6bG9wYWssIEBLaGFmcmFEZXYpOiBtYWtlIGNvbXBsaWFudCBodHRwczovL2RhdGF0cmFja2VyLmlldGYub3JnL2RvYy9odG1sL3JmYzY0NTUjc2VjdGlvbi05LjFcbmZ1bmN0aW9uIHBhcnNlRXh0ZW5zaW9ucyAoZXh0ZW5zaW9ucykge1xuICBjb25zdCBwb3NpdGlvbiA9IHsgcG9zaXRpb246IDAgfVxuICBjb25zdCBleHRlbnNpb25MaXN0ID0gbmV3IE1hcCgpXG5cbiAgd2hpbGUgKHBvc2l0aW9uLnBvc2l0aW9uIDwgZXh0ZW5zaW9ucy5sZW5ndGgpIHtcbiAgICBjb25zdCBwYWlyID0gY29sbGVjdEFTZXF1ZW5jZU9mQ29kZVBvaW50c0Zhc3QoJzsnLCBleHRlbnNpb25zLCBwb3NpdGlvbilcbiAgICBjb25zdCBbbmFtZSwgdmFsdWUgPSAnJ10gPSBwYWlyLnNwbGl0KCc9JylcblxuICAgIGV4dGVuc2lvbkxpc3Quc2V0KFxuICAgICAgcmVtb3ZlSFRUUFdoaXRlc3BhY2UobmFtZSwgdHJ1ZSwgZmFsc2UpLFxuICAgICAgcmVtb3ZlSFRUUFdoaXRlc3BhY2UodmFsdWUsIGZhbHNlLCB0cnVlKVxuICAgIClcblxuICAgIHBvc2l0aW9uLnBvc2l0aW9uKytcbiAgfVxuXG4gIHJldHVybiBleHRlbnNpb25MaXN0XG59XG5cbi8qKlxuICogQHNlZSBodHRwczovL3d3dy5yZmMtZWRpdG9yLm9yZy9yZmMvcmZjNzY5MiNzZWN0aW9uLTcuMS4yLjJcbiAqIEBkZXNjcmlwdGlvbiBcImNsaWVudC1tYXgtd2luZG93LWJpdHMgPSAxKkRJR0lUXCJcbiAqIEBwYXJhbSB7c3RyaW5nfSB2YWx1ZVxuICovXG5mdW5jdGlvbiBpc1ZhbGlkQ2xpZW50V2luZG93Qml0cyAodmFsdWUpIHtcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCB2YWx1ZS5sZW5ndGg7IGkrKykge1xuICAgIGNvbnN0IGJ5dGUgPSB2YWx1ZS5jaGFyQ29kZUF0KGkpXG5cbiAgICBpZiAoYnl0ZSA8IDB4MzAgfHwgYnl0ZSA+IDB4MzkpIHtcbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiB0cnVlXG59XG5cbi8vIGh0dHBzOi8vbm9kZWpzLm9yZy9hcGkvaW50bC5odG1sI2RldGVjdGluZy1pbnRlcm5hdGlvbmFsaXphdGlvbi1zdXBwb3J0XG5jb25zdCBoYXNJbnRsID0gdHlwZW9mIHByb2Nlc3MudmVyc2lvbnMuaWN1ID09PSAnc3RyaW5nJ1xuY29uc3QgZmF0YWxEZWNvZGVyID0gaGFzSW50bCA/IG5ldyBUZXh0RGVjb2RlcigndXRmLTgnLCB7IGZhdGFsOiB0cnVlIH0pIDogdW5kZWZpbmVkXG5cbi8qKlxuICogQ29udmVydHMgYSBCdWZmZXIgdG8gdXRmLTgsIGV2ZW4gb24gcGxhdGZvcm1zIHdpdGhvdXQgaWN1LlxuICogQHBhcmFtIHtCdWZmZXJ9IGJ1ZmZlclxuICovXG5jb25zdCB1dGY4RGVjb2RlID0gaGFzSW50bFxuICA/IGZhdGFsRGVjb2Rlci5kZWNvZGUuYmluZChmYXRhbERlY29kZXIpXG4gIDogZnVuY3Rpb24gKGJ1ZmZlcikge1xuICAgIGlmIChpc1V0ZjgoYnVmZmVyKSkge1xuICAgICAgcmV0dXJuIGJ1ZmZlci50b1N0cmluZygndXRmLTgnKVxuICAgIH1cbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdJbnZhbGlkIHV0Zi04IHJlY2VpdmVkLicpXG4gIH1cblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gIGlzQ29ubmVjdGluZyxcbiAgaXNFc3RhYmxpc2hlZCxcbiAgaXNDbG9zaW5nLFxuICBpc0Nsb3NlZCxcbiAgZmlyZUV2ZW50LFxuICBpc1ZhbGlkU3VicHJvdG9jb2wsXG4gIGlzVmFsaWRTdGF0dXNDb2RlLFxuICBmYWlsV2Vic29ja2V0Q29ubmVjdGlvbixcbiAgd2Vic29ja2V0TWVzc2FnZVJlY2VpdmVkLFxuICB1dGY4RGVjb2RlLFxuICBpc0NvbnRyb2xGcmFtZSxcbiAgaXNDb250aW51YXRpb25GcmFtZSxcbiAgaXNUZXh0QmluYXJ5RnJhbWUsXG4gIGlzVmFsaWRPcGNvZGUsXG4gIHBhcnNlRXh0ZW5zaW9ucyxcbiAgaXNWYWxpZENsaWVudFdpbmRvd0JpdHNcbn1cbiIsICIndXNlIHN0cmljdCdcblxuY29uc3QgeyBtYXhVbnNpZ25lZDE2Qml0IH0gPSByZXF1aXJlKCcuL2NvbnN0YW50cycpXG5cbmNvbnN0IEJVRkZFUl9TSVpFID0gMTYzODZcblxuLyoqIEB0eXBlIHtpbXBvcnQoJ2NyeXB0bycpfSAqL1xubGV0IGNyeXB0b1xubGV0IGJ1ZmZlciA9IG51bGxcbmxldCBidWZJZHggPSBCVUZGRVJfU0laRVxuXG50cnkge1xuICBjcnlwdG8gPSByZXF1aXJlKCdub2RlOmNyeXB0bycpXG4vKiBjOCBpZ25vcmUgbmV4dCAzICovXG59IGNhdGNoIHtcbiAgY3J5cHRvID0ge1xuICAgIC8vIG5vdCBmdWxsIGNvbXBhdGliaWxpdHksIGJ1dCBtaW5pbXVtLlxuICAgIHJhbmRvbUZpbGxTeW5jOiBmdW5jdGlvbiByYW5kb21GaWxsU3luYyAoYnVmZmVyLCBfb2Zmc2V0LCBfc2l6ZSkge1xuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBidWZmZXIubGVuZ3RoOyArK2kpIHtcbiAgICAgICAgYnVmZmVyW2ldID0gTWF0aC5yYW5kb20oKSAqIDI1NSB8IDBcbiAgICAgIH1cbiAgICAgIHJldHVybiBidWZmZXJcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gZ2VuZXJhdGVNYXNrICgpIHtcbiAgaWYgKGJ1ZklkeCA9PT0gQlVGRkVSX1NJWkUpIHtcbiAgICBidWZJZHggPSAwXG4gICAgY3J5cHRvLnJhbmRvbUZpbGxTeW5jKChidWZmZXIgPz89IEJ1ZmZlci5hbGxvY1Vuc2FmZShCVUZGRVJfU0laRSkpLCAwLCBCVUZGRVJfU0laRSlcbiAgfVxuICByZXR1cm4gW2J1ZmZlcltidWZJZHgrK10sIGJ1ZmZlcltidWZJZHgrK10sIGJ1ZmZlcltidWZJZHgrK10sIGJ1ZmZlcltidWZJZHgrK11dXG59XG5cbmNsYXNzIFdlYnNvY2tldEZyYW1lU2VuZCB7XG4gIC8qKlxuICAgKiBAcGFyYW0ge0J1ZmZlcnx1bmRlZmluZWR9IGRhdGFcbiAgICovXG4gIGNvbnN0cnVjdG9yIChkYXRhKSB7XG4gICAgdGhpcy5mcmFtZURhdGEgPSBkYXRhXG4gIH1cblxuICBjcmVhdGVGcmFtZSAob3Bjb2RlKSB7XG4gICAgY29uc3QgZnJhbWVEYXRhID0gdGhpcy5mcmFtZURhdGFcbiAgICBjb25zdCBtYXNrS2V5ID0gZ2VuZXJhdGVNYXNrKClcbiAgICBjb25zdCBib2R5TGVuZ3RoID0gZnJhbWVEYXRhPy5ieXRlTGVuZ3RoID8/IDBcblxuICAgIC8qKiBAdHlwZSB7bnVtYmVyfSAqL1xuICAgIGxldCBwYXlsb2FkTGVuZ3RoID0gYm9keUxlbmd0aCAvLyAwLTEyNVxuICAgIGxldCBvZmZzZXQgPSA2XG5cbiAgICBpZiAoYm9keUxlbmd0aCA+IG1heFVuc2lnbmVkMTZCaXQpIHtcbiAgICAgIG9mZnNldCArPSA4IC8vIHBheWxvYWQgbGVuZ3RoIGlzIG5leHQgOCBieXRlc1xuICAgICAgcGF5bG9hZExlbmd0aCA9IDEyN1xuICAgIH0gZWxzZSBpZiAoYm9keUxlbmd0aCA+IDEyNSkge1xuICAgICAgb2Zmc2V0ICs9IDIgLy8gcGF5bG9hZCBsZW5ndGggaXMgbmV4dCAyIGJ5dGVzXG4gICAgICBwYXlsb2FkTGVuZ3RoID0gMTI2XG4gICAgfVxuXG4gICAgY29uc3QgYnVmZmVyID0gQnVmZmVyLmFsbG9jVW5zYWZlKGJvZHlMZW5ndGggKyBvZmZzZXQpXG5cbiAgICAvLyBDbGVhciBmaXJzdCAyIGJ5dGVzLCBldmVyeXRoaW5nIGVsc2UgaXMgb3ZlcndyaXR0ZW5cbiAgICBidWZmZXJbMF0gPSBidWZmZXJbMV0gPSAwXG4gICAgYnVmZmVyWzBdIHw9IDB4ODAgLy8gRklOXG4gICAgYnVmZmVyWzBdID0gKGJ1ZmZlclswXSAmIDB4RjApICsgb3Bjb2RlIC8vIG9wY29kZVxuXG4gICAgLyohIHdzLiBNSVQgTGljZW5zZS4gRWluYXIgT3R0byBTdGFuZ3ZpayA8ZWluYXJvc0BnbWFpbC5jb20+ICovXG4gICAgYnVmZmVyW29mZnNldCAtIDRdID0gbWFza0tleVswXVxuICAgIGJ1ZmZlcltvZmZzZXQgLSAzXSA9IG1hc2tLZXlbMV1cbiAgICBidWZmZXJbb2Zmc2V0IC0gMl0gPSBtYXNrS2V5WzJdXG4gICAgYnVmZmVyW29mZnNldCAtIDFdID0gbWFza0tleVszXVxuXG4gICAgYnVmZmVyWzFdID0gcGF5bG9hZExlbmd0aFxuXG4gICAgaWYgKHBheWxvYWRMZW5ndGggPT09IDEyNikge1xuICAgICAgYnVmZmVyLndyaXRlVUludDE2QkUoYm9keUxlbmd0aCwgMilcbiAgICB9IGVsc2UgaWYgKHBheWxvYWRMZW5ndGggPT09IDEyNykge1xuICAgICAgLy8gQ2xlYXIgZXh0ZW5kZWQgcGF5bG9hZCBsZW5ndGhcbiAgICAgIGJ1ZmZlclsyXSA9IGJ1ZmZlclszXSA9IDBcbiAgICAgIGJ1ZmZlci53cml0ZVVJbnRCRShib2R5TGVuZ3RoLCA0LCA2KVxuICAgIH1cblxuICAgIGJ1ZmZlclsxXSB8PSAweDgwIC8vIE1BU0tcblxuICAgIC8vIG1hc2sgYm9keVxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYm9keUxlbmd0aDsgKytpKSB7XG4gICAgICBidWZmZXJbb2Zmc2V0ICsgaV0gPSBmcmFtZURhdGFbaV0gXiBtYXNrS2V5W2kgJiAzXVxuICAgIH1cblxuICAgIHJldHVybiBidWZmZXJcbiAgfVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgV2Vic29ja2V0RnJhbWVTZW5kXG59XG4iLCAiJ3VzZSBzdHJpY3QnXG5cbmNvbnN0IHsgdWlkLCBzdGF0ZXMsIHNlbnRDbG9zZUZyYW1lU3RhdGUsIGVtcHR5QnVmZmVyLCBvcGNvZGVzIH0gPSByZXF1aXJlKCcuL2NvbnN0YW50cycpXG5jb25zdCB7XG4gIGtSZWFkeVN0YXRlLFxuICBrU2VudENsb3NlLFxuICBrQnl0ZVBhcnNlcixcbiAga1JlY2VpdmVkQ2xvc2UsXG4gIGtSZXNwb25zZVxufSA9IHJlcXVpcmUoJy4vc3ltYm9scycpXG5jb25zdCB7IGZpcmVFdmVudCwgZmFpbFdlYnNvY2tldENvbm5lY3Rpb24sIGlzQ2xvc2luZywgaXNDbG9zZWQsIGlzRXN0YWJsaXNoZWQsIHBhcnNlRXh0ZW5zaW9ucyB9ID0gcmVxdWlyZSgnLi91dGlsJylcbmNvbnN0IHsgY2hhbm5lbHMgfSA9IHJlcXVpcmUoJy4uLy4uL2NvcmUvZGlhZ25vc3RpY3MnKVxuY29uc3QgeyBDbG9zZUV2ZW50IH0gPSByZXF1aXJlKCcuL2V2ZW50cycpXG5jb25zdCB7IG1ha2VSZXF1ZXN0IH0gPSByZXF1aXJlKCcuLi9mZXRjaC9yZXF1ZXN0JylcbmNvbnN0IHsgZmV0Y2hpbmcgfSA9IHJlcXVpcmUoJy4uL2ZldGNoL2luZGV4JylcbmNvbnN0IHsgSGVhZGVycywgZ2V0SGVhZGVyc0xpc3QgfSA9IHJlcXVpcmUoJy4uL2ZldGNoL2hlYWRlcnMnKVxuY29uc3QgeyBnZXREZWNvZGVTcGxpdCB9ID0gcmVxdWlyZSgnLi4vZmV0Y2gvdXRpbCcpXG5jb25zdCB7IFdlYnNvY2tldEZyYW1lU2VuZCB9ID0gcmVxdWlyZSgnLi9mcmFtZScpXG5cbi8qKiBAdHlwZSB7aW1wb3J0KCdjcnlwdG8nKX0gKi9cbmxldCBjcnlwdG9cbnRyeSB7XG4gIGNyeXB0byA9IHJlcXVpcmUoJ25vZGU6Y3J5cHRvJylcbi8qIGM4IGlnbm9yZSBuZXh0IDMgKi9cbn0gY2F0Y2gge1xuXG59XG5cbi8qKlxuICogQHNlZSBodHRwczovL3dlYnNvY2tldHMuc3BlYy53aGF0d2cub3JnLyNjb25jZXB0LXdlYnNvY2tldC1lc3RhYmxpc2hcbiAqIEBwYXJhbSB7VVJMfSB1cmxcbiAqIEBwYXJhbSB7c3RyaW5nfHN0cmluZ1tdfSBwcm90b2NvbHNcbiAqIEBwYXJhbSB7aW1wb3J0KCcuL3dlYnNvY2tldCcpLldlYlNvY2tldH0gd3NcbiAqIEBwYXJhbSB7KHJlc3BvbnNlOiBhbnksIGV4dGVuc2lvbnM6IHN0cmluZ1tdIHwgdW5kZWZpbmVkKSA9PiB2b2lkfSBvbkVzdGFibGlzaFxuICogQHBhcmFtIHtQYXJ0aWFsPGltcG9ydCgnLi4vLi4vdHlwZXMvd2Vic29ja2V0JykuV2ViU29ja2V0SW5pdD59IG9wdGlvbnNcbiAqL1xuZnVuY3Rpb24gZXN0YWJsaXNoV2ViU29ja2V0Q29ubmVjdGlvbiAodXJsLCBwcm90b2NvbHMsIGNsaWVudCwgd3MsIG9uRXN0YWJsaXNoLCBvcHRpb25zKSB7XG4gIC8vIDEuIExldCByZXF1ZXN0VVJMIGJlIGEgY29weSBvZiB1cmwsIHdpdGggaXRzIHNjaGVtZSBzZXQgdG8gXCJodHRwXCIsIGlmIHVybFx1MjAxOXNcbiAgLy8gICAgc2NoZW1lIGlzIFwid3NcIiwgYW5kIHRvIFwiaHR0cHNcIiBvdGhlcndpc2UuXG4gIGNvbnN0IHJlcXVlc3RVUkwgPSB1cmxcblxuICByZXF1ZXN0VVJMLnByb3RvY29sID0gdXJsLnByb3RvY29sID09PSAnd3M6JyA/ICdodHRwOicgOiAnaHR0cHM6J1xuXG4gIC8vIDIuIExldCByZXF1ZXN0IGJlIGEgbmV3IHJlcXVlc3QsIHdob3NlIFVSTCBpcyByZXF1ZXN0VVJMLCBjbGllbnQgaXMgY2xpZW50LFxuICAvLyAgICBzZXJ2aWNlLXdvcmtlcnMgbW9kZSBpcyBcIm5vbmVcIiwgcmVmZXJyZXIgaXMgXCJuby1yZWZlcnJlclwiLCBtb2RlIGlzXG4gIC8vICAgIFwid2Vic29ja2V0XCIsIGNyZWRlbnRpYWxzIG1vZGUgaXMgXCJpbmNsdWRlXCIsIGNhY2hlIG1vZGUgaXMgXCJuby1zdG9yZVwiICxcbiAgLy8gICAgYW5kIHJlZGlyZWN0IG1vZGUgaXMgXCJlcnJvclwiLlxuICBjb25zdCByZXF1ZXN0ID0gbWFrZVJlcXVlc3Qoe1xuICAgIHVybExpc3Q6IFtyZXF1ZXN0VVJMXSxcbiAgICBjbGllbnQsXG4gICAgc2VydmljZVdvcmtlcnM6ICdub25lJyxcbiAgICByZWZlcnJlcjogJ25vLXJlZmVycmVyJyxcbiAgICBtb2RlOiAnd2Vic29ja2V0JyxcbiAgICBjcmVkZW50aWFsczogJ2luY2x1ZGUnLFxuICAgIGNhY2hlOiAnbm8tc3RvcmUnLFxuICAgIHJlZGlyZWN0OiAnZXJyb3InXG4gIH0pXG5cbiAgLy8gTm90ZTogdW5kaWNpIGV4dGVuc2lvbiwgYWxsb3cgc2V0dGluZyBjdXN0b20gaGVhZGVycy5cbiAgaWYgKG9wdGlvbnMuaGVhZGVycykge1xuICAgIGNvbnN0IGhlYWRlcnNMaXN0ID0gZ2V0SGVhZGVyc0xpc3QobmV3IEhlYWRlcnMob3B0aW9ucy5oZWFkZXJzKSlcblxuICAgIHJlcXVlc3QuaGVhZGVyc0xpc3QgPSBoZWFkZXJzTGlzdFxuICB9XG5cbiAgLy8gMy4gQXBwZW5kIChgVXBncmFkZWAsIGB3ZWJzb2NrZXRgKSB0byByZXF1ZXN0XHUyMDE5cyBoZWFkZXIgbGlzdC5cbiAgLy8gNC4gQXBwZW5kIChgQ29ubmVjdGlvbmAsIGBVcGdyYWRlYCkgdG8gcmVxdWVzdFx1MjAxOXMgaGVhZGVyIGxpc3QuXG4gIC8vIE5vdGU6IGJvdGggb2YgdGhlc2UgYXJlIGhhbmRsZWQgYnkgdW5kaWNpIGN1cnJlbnRseS5cbiAgLy8gaHR0cHM6Ly9naXRodWIuY29tL25vZGVqcy91bmRpY2kvYmxvYi82OGMyNjljNDE0NGM0NDZmM2YxMjIwOTUxMzM4ZGFlZjRhNmI1ZWM0L2xpYi9jbGllbnQuanMjTDEzOTdcblxuICAvLyA1LiBMZXQga2V5VmFsdWUgYmUgYSBub25jZSBjb25zaXN0aW5nIG9mIGEgcmFuZG9tbHkgc2VsZWN0ZWRcbiAgLy8gICAgMTYtYnl0ZSB2YWx1ZSB0aGF0IGhhcyBiZWVuIGZvcmdpdmluZy1iYXNlNjQtZW5jb2RlZCBhbmRcbiAgLy8gICAgaXNvbW9ycGhpYyBlbmNvZGVkLlxuICBjb25zdCBrZXlWYWx1ZSA9IGNyeXB0by5yYW5kb21CeXRlcygxNikudG9TdHJpbmcoJ2Jhc2U2NCcpXG5cbiAgLy8gNi4gQXBwZW5kIChgU2VjLVdlYlNvY2tldC1LZXlgLCBrZXlWYWx1ZSkgdG8gcmVxdWVzdFx1MjAxOXNcbiAgLy8gICAgaGVhZGVyIGxpc3QuXG4gIHJlcXVlc3QuaGVhZGVyc0xpc3QuYXBwZW5kKCdzZWMtd2Vic29ja2V0LWtleScsIGtleVZhbHVlKVxuXG4gIC8vIDcuIEFwcGVuZCAoYFNlYy1XZWJTb2NrZXQtVmVyc2lvbmAsIGAxM2ApIHRvIHJlcXVlc3RcdTIwMTlzXG4gIC8vICAgIGhlYWRlciBsaXN0LlxuICByZXF1ZXN0LmhlYWRlcnNMaXN0LmFwcGVuZCgnc2VjLXdlYnNvY2tldC12ZXJzaW9uJywgJzEzJylcblxuICAvLyA4LiBGb3IgZWFjaCBwcm90b2NvbCBpbiBwcm90b2NvbHMsIGNvbWJpbmVcbiAgLy8gICAgKGBTZWMtV2ViU29ja2V0LVByb3RvY29sYCwgcHJvdG9jb2wpIGluIHJlcXVlc3RcdTIwMTlzIGhlYWRlclxuICAvLyAgICBsaXN0LlxuICBmb3IgKGNvbnN0IHByb3RvY29sIG9mIHByb3RvY29scykge1xuICAgIHJlcXVlc3QuaGVhZGVyc0xpc3QuYXBwZW5kKCdzZWMtd2Vic29ja2V0LXByb3RvY29sJywgcHJvdG9jb2wpXG4gIH1cblxuICAvLyA5LiBMZXQgcGVybWVzc2FnZURlZmxhdGUgYmUgYSB1c2VyLWFnZW50IGRlZmluZWRcbiAgLy8gICAgXCJwZXJtZXNzYWdlLWRlZmxhdGVcIiBleHRlbnNpb24gaGVhZGVyIHZhbHVlLlxuICAvLyBodHRwczovL2dpdGh1Yi5jb20vbW96aWxsYS9nZWNrby1kZXYvYmxvYi9jZTc4MjM0ZjVlNjUzYTVkMzkxNjgxM2ZmOTkwZjA1MzUxMDIyN2JjL25ldHdlcmsvcHJvdG9jb2wvd2Vic29ja2V0L1dlYlNvY2tldENoYW5uZWwuY3BwI0wyNjczXG4gIGNvbnN0IHBlcm1lc3NhZ2VEZWZsYXRlID0gJ3Blcm1lc3NhZ2UtZGVmbGF0ZTsgY2xpZW50X21heF93aW5kb3dfYml0cydcblxuICAvLyAxMC4gQXBwZW5kIChgU2VjLVdlYlNvY2tldC1FeHRlbnNpb25zYCwgcGVybWVzc2FnZURlZmxhdGUpIHRvXG4gIC8vICAgICByZXF1ZXN0XHUyMDE5cyBoZWFkZXIgbGlzdC5cbiAgcmVxdWVzdC5oZWFkZXJzTGlzdC5hcHBlbmQoJ3NlYy13ZWJzb2NrZXQtZXh0ZW5zaW9ucycsIHBlcm1lc3NhZ2VEZWZsYXRlKVxuXG4gIC8vIDExLiBGZXRjaCByZXF1ZXN0IHdpdGggdXNlUGFyYWxsZWxRdWV1ZSBzZXQgdG8gdHJ1ZSwgYW5kXG4gIC8vICAgICBwcm9jZXNzUmVzcG9uc2UgZ2l2ZW4gcmVzcG9uc2UgYmVpbmcgdGhlc2Ugc3RlcHM6XG4gIGNvbnN0IGNvbnRyb2xsZXIgPSBmZXRjaGluZyh7XG4gICAgcmVxdWVzdCxcbiAgICB1c2VQYXJhbGxlbFF1ZXVlOiB0cnVlLFxuICAgIGRpc3BhdGNoZXI6IG9wdGlvbnMuZGlzcGF0Y2hlcixcbiAgICBwcm9jZXNzUmVzcG9uc2UgKHJlc3BvbnNlKSB7XG4gICAgICAvLyAxLiBJZiByZXNwb25zZSBpcyBhIG5ldHdvcmsgZXJyb3Igb3IgaXRzIHN0YXR1cyBpcyBub3QgMTAxLFxuICAgICAgLy8gICAgZmFpbCB0aGUgV2ViU29ja2V0IGNvbm5lY3Rpb24uXG4gICAgICBpZiAocmVzcG9uc2UudHlwZSA9PT0gJ2Vycm9yJyB8fCByZXNwb25zZS5zdGF0dXMgIT09IDEwMSkge1xuICAgICAgICBmYWlsV2Vic29ja2V0Q29ubmVjdGlvbih3cywgJ1JlY2VpdmVkIG5ldHdvcmsgZXJyb3Igb3Igbm9uLTEwMSBzdGF0dXMgY29kZS4nKVxuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgLy8gMi4gSWYgcHJvdG9jb2xzIGlzIG5vdCB0aGUgZW1wdHkgbGlzdCBhbmQgZXh0cmFjdGluZyBoZWFkZXJcbiAgICAgIC8vICAgIGxpc3QgdmFsdWVzIGdpdmVuIGBTZWMtV2ViU29ja2V0LVByb3RvY29sYCBhbmQgcmVzcG9uc2VcdTIwMTlzXG4gICAgICAvLyAgICBoZWFkZXIgbGlzdCByZXN1bHRzIGluIG51bGwsIGZhaWx1cmUsIG9yIHRoZSBlbXB0eSBieXRlXG4gICAgICAvLyAgICBzZXF1ZW5jZSwgdGhlbiBmYWlsIHRoZSBXZWJTb2NrZXQgY29ubmVjdGlvbi5cbiAgICAgIGlmIChwcm90b2NvbHMubGVuZ3RoICE9PSAwICYmICFyZXNwb25zZS5oZWFkZXJzTGlzdC5nZXQoJ1NlYy1XZWJTb2NrZXQtUHJvdG9jb2wnKSkge1xuICAgICAgICBmYWlsV2Vic29ja2V0Q29ubmVjdGlvbih3cywgJ1NlcnZlciBkaWQgbm90IHJlc3BvbmQgd2l0aCBzZW50IHByb3RvY29scy4nKVxuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgLy8gMy4gRm9sbG93IHRoZSByZXF1aXJlbWVudHMgc3RhdGVkIHN0ZXAgMiB0byBzdGVwIDYsIGluY2x1c2l2ZSxcbiAgICAgIC8vICAgIG9mIHRoZSBsYXN0IHNldCBvZiBzdGVwcyBpbiBzZWN0aW9uIDQuMSBvZiBUaGUgV2ViU29ja2V0XG4gICAgICAvLyAgICBQcm90b2NvbCB0byB2YWxpZGF0ZSByZXNwb25zZS4gVGhpcyBlaXRoZXIgcmVzdWx0cyBpbiBmYWlsXG4gICAgICAvLyAgICB0aGUgV2ViU29ja2V0IGNvbm5lY3Rpb24gb3IgdGhlIFdlYlNvY2tldCBjb25uZWN0aW9uIGlzXG4gICAgICAvLyAgICBlc3RhYmxpc2hlZC5cblxuICAgICAgLy8gMi4gSWYgdGhlIHJlc3BvbnNlIGxhY2tzIGFuIHxVcGdyYWRlfCBoZWFkZXIgZmllbGQgb3IgdGhlIHxVcGdyYWRlfFxuICAgICAgLy8gICAgaGVhZGVyIGZpZWxkIGNvbnRhaW5zIGEgdmFsdWUgdGhhdCBpcyBub3QgYW4gQVNDSUkgY2FzZS1cbiAgICAgIC8vICAgIGluc2Vuc2l0aXZlIG1hdGNoIGZvciB0aGUgdmFsdWUgXCJ3ZWJzb2NrZXRcIiwgdGhlIGNsaWVudCBNVVNUXG4gICAgICAvLyAgICBfRmFpbCB0aGUgV2ViU29ja2V0IENvbm5lY3Rpb25fLlxuICAgICAgaWYgKHJlc3BvbnNlLmhlYWRlcnNMaXN0LmdldCgnVXBncmFkZScpPy50b0xvd2VyQ2FzZSgpICE9PSAnd2Vic29ja2V0Jykge1xuICAgICAgICBmYWlsV2Vic29ja2V0Q29ubmVjdGlvbih3cywgJ1NlcnZlciBkaWQgbm90IHNldCBVcGdyYWRlIGhlYWRlciB0byBcIndlYnNvY2tldFwiLicpXG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICAvLyAzLiBJZiB0aGUgcmVzcG9uc2UgbGFja3MgYSB8Q29ubmVjdGlvbnwgaGVhZGVyIGZpZWxkIG9yIHRoZVxuICAgICAgLy8gICAgfENvbm5lY3Rpb258IGhlYWRlciBmaWVsZCBkb2Vzbid0IGNvbnRhaW4gYSB0b2tlbiB0aGF0IGlzIGFuXG4gICAgICAvLyAgICBBU0NJSSBjYXNlLWluc2Vuc2l0aXZlIG1hdGNoIGZvciB0aGUgdmFsdWUgXCJVcGdyYWRlXCIsIHRoZSBjbGllbnRcbiAgICAgIC8vICAgIE1VU1QgX0ZhaWwgdGhlIFdlYlNvY2tldCBDb25uZWN0aW9uXy5cbiAgICAgIGlmIChyZXNwb25zZS5oZWFkZXJzTGlzdC5nZXQoJ0Nvbm5lY3Rpb24nKT8udG9Mb3dlckNhc2UoKSAhPT0gJ3VwZ3JhZGUnKSB7XG4gICAgICAgIGZhaWxXZWJzb2NrZXRDb25uZWN0aW9uKHdzLCAnU2VydmVyIGRpZCBub3Qgc2V0IENvbm5lY3Rpb24gaGVhZGVyIHRvIFwidXBncmFkZVwiLicpXG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICAvLyA0LiBJZiB0aGUgcmVzcG9uc2UgbGFja3MgYSB8U2VjLVdlYlNvY2tldC1BY2NlcHR8IGhlYWRlciBmaWVsZCBvclxuICAgICAgLy8gICAgdGhlIHxTZWMtV2ViU29ja2V0LUFjY2VwdHwgY29udGFpbnMgYSB2YWx1ZSBvdGhlciB0aGFuIHRoZVxuICAgICAgLy8gICAgYmFzZTY0LWVuY29kZWQgU0hBLTEgb2YgdGhlIGNvbmNhdGVuYXRpb24gb2YgdGhlIHxTZWMtV2ViU29ja2V0LVxuICAgICAgLy8gICAgS2V5fCAoYXMgYSBzdHJpbmcsIG5vdCBiYXNlNjQtZGVjb2RlZCkgd2l0aCB0aGUgc3RyaW5nIFwiMjU4RUFGQTUtXG4gICAgICAvLyAgICBFOTE0LTQ3REEtOTVDQS1DNUFCMERDODVCMTFcIiBidXQgaWdub3JpbmcgYW55IGxlYWRpbmcgYW5kXG4gICAgICAvLyAgICB0cmFpbGluZyB3aGl0ZXNwYWNlLCB0aGUgY2xpZW50IE1VU1QgX0ZhaWwgdGhlIFdlYlNvY2tldFxuICAgICAgLy8gICAgQ29ubmVjdGlvbl8uXG4gICAgICBjb25zdCBzZWNXU0FjY2VwdCA9IHJlc3BvbnNlLmhlYWRlcnNMaXN0LmdldCgnU2VjLVdlYlNvY2tldC1BY2NlcHQnKVxuICAgICAgY29uc3QgZGlnZXN0ID0gY3J5cHRvLmNyZWF0ZUhhc2goJ3NoYTEnKS51cGRhdGUoa2V5VmFsdWUgKyB1aWQpLmRpZ2VzdCgnYmFzZTY0JylcbiAgICAgIGlmIChzZWNXU0FjY2VwdCAhPT0gZGlnZXN0KSB7XG4gICAgICAgIGZhaWxXZWJzb2NrZXRDb25uZWN0aW9uKHdzLCAnSW5jb3JyZWN0IGhhc2ggcmVjZWl2ZWQgaW4gU2VjLVdlYlNvY2tldC1BY2NlcHQgaGVhZGVyLicpXG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICAvLyA1LiBJZiB0aGUgcmVzcG9uc2UgaW5jbHVkZXMgYSB8U2VjLVdlYlNvY2tldC1FeHRlbnNpb25zfCBoZWFkZXJcbiAgICAgIC8vICAgIGZpZWxkIGFuZCB0aGlzIGhlYWRlciBmaWVsZCBpbmRpY2F0ZXMgdGhlIHVzZSBvZiBhbiBleHRlbnNpb25cbiAgICAgIC8vICAgIHRoYXQgd2FzIG5vdCBwcmVzZW50IGluIHRoZSBjbGllbnQncyBoYW5kc2hha2UgKHRoZSBzZXJ2ZXIgaGFzXG4gICAgICAvLyAgICBpbmRpY2F0ZWQgYW4gZXh0ZW5zaW9uIG5vdCByZXF1ZXN0ZWQgYnkgdGhlIGNsaWVudCksIHRoZSBjbGllbnRcbiAgICAgIC8vICAgIE1VU1QgX0ZhaWwgdGhlIFdlYlNvY2tldCBDb25uZWN0aW9uXy4gIChUaGUgcGFyc2luZyBvZiB0aGlzXG4gICAgICAvLyAgICBoZWFkZXIgZmllbGQgdG8gZGV0ZXJtaW5lIHdoaWNoIGV4dGVuc2lvbnMgYXJlIHJlcXVlc3RlZCBpc1xuICAgICAgLy8gICAgZGlzY3Vzc2VkIGluIFNlY3Rpb24gOS4xLilcbiAgICAgIGNvbnN0IHNlY0V4dGVuc2lvbiA9IHJlc3BvbnNlLmhlYWRlcnNMaXN0LmdldCgnU2VjLVdlYlNvY2tldC1FeHRlbnNpb25zJylcbiAgICAgIGxldCBleHRlbnNpb25zXG5cbiAgICAgIGlmIChzZWNFeHRlbnNpb24gIT09IG51bGwpIHtcbiAgICAgICAgZXh0ZW5zaW9ucyA9IHBhcnNlRXh0ZW5zaW9ucyhzZWNFeHRlbnNpb24pXG5cbiAgICAgICAgaWYgKCFleHRlbnNpb25zLmhhcygncGVybWVzc2FnZS1kZWZsYXRlJykpIHtcbiAgICAgICAgICBmYWlsV2Vic29ja2V0Q29ubmVjdGlvbih3cywgJ1NlYy1XZWJTb2NrZXQtRXh0ZW5zaW9ucyBoZWFkZXIgZG9lcyBub3QgbWF0Y2guJylcbiAgICAgICAgICByZXR1cm5cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyA2LiBJZiB0aGUgcmVzcG9uc2UgaW5jbHVkZXMgYSB8U2VjLVdlYlNvY2tldC1Qcm90b2NvbHwgaGVhZGVyIGZpZWxkXG4gICAgICAvLyAgICBhbmQgdGhpcyBoZWFkZXIgZmllbGQgaW5kaWNhdGVzIHRoZSB1c2Ugb2YgYSBzdWJwcm90b2NvbCB0aGF0IHdhc1xuICAgICAgLy8gICAgbm90IHByZXNlbnQgaW4gdGhlIGNsaWVudCdzIGhhbmRzaGFrZSAodGhlIHNlcnZlciBoYXMgaW5kaWNhdGVkIGFcbiAgICAgIC8vICAgIHN1YnByb3RvY29sIG5vdCByZXF1ZXN0ZWQgYnkgdGhlIGNsaWVudCksIHRoZSBjbGllbnQgTVVTVCBfRmFpbFxuICAgICAgLy8gICAgdGhlIFdlYlNvY2tldCBDb25uZWN0aW9uXy5cbiAgICAgIGNvbnN0IHNlY1Byb3RvY29sID0gcmVzcG9uc2UuaGVhZGVyc0xpc3QuZ2V0KCdTZWMtV2ViU29ja2V0LVByb3RvY29sJylcblxuICAgICAgaWYgKHNlY1Byb3RvY29sICE9PSBudWxsKSB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3RQcm90b2NvbHMgPSBnZXREZWNvZGVTcGxpdCgnc2VjLXdlYnNvY2tldC1wcm90b2NvbCcsIHJlcXVlc3QuaGVhZGVyc0xpc3QpXG5cbiAgICAgICAgLy8gVGhlIGNsaWVudCBjYW4gcmVxdWVzdCB0aGF0IHRoZSBzZXJ2ZXIgdXNlIGEgc3BlY2lmaWMgc3VicHJvdG9jb2wgYnlcbiAgICAgICAgLy8gaW5jbHVkaW5nIHRoZSB8U2VjLVdlYlNvY2tldC1Qcm90b2NvbHwgZmllbGQgaW4gaXRzIGhhbmRzaGFrZS4gIElmIGl0XG4gICAgICAgIC8vIGlzIHNwZWNpZmllZCwgdGhlIHNlcnZlciBuZWVkcyB0byBpbmNsdWRlIHRoZSBzYW1lIGZpZWxkIGFuZCBvbmUgb2ZcbiAgICAgICAgLy8gdGhlIHNlbGVjdGVkIHN1YnByb3RvY29sIHZhbHVlcyBpbiBpdHMgcmVzcG9uc2UgZm9yIHRoZSBjb25uZWN0aW9uIHRvXG4gICAgICAgIC8vIGJlIGVzdGFibGlzaGVkLlxuICAgICAgICBpZiAoIXJlcXVlc3RQcm90b2NvbHMuaW5jbHVkZXMoc2VjUHJvdG9jb2wpKSB7XG4gICAgICAgICAgZmFpbFdlYnNvY2tldENvbm5lY3Rpb24od3MsICdQcm90b2NvbCB3YXMgbm90IHNldCBpbiB0aGUgb3BlbmluZyBoYW5kc2hha2UuJylcbiAgICAgICAgICByZXR1cm5cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByZXNwb25zZS5zb2NrZXQub24oJ2RhdGEnLCBvblNvY2tldERhdGEpXG4gICAgICByZXNwb25zZS5zb2NrZXQub24oJ2Nsb3NlJywgb25Tb2NrZXRDbG9zZSlcbiAgICAgIHJlc3BvbnNlLnNvY2tldC5vbignZXJyb3InLCBvblNvY2tldEVycm9yKVxuXG4gICAgICBpZiAoY2hhbm5lbHMub3Blbi5oYXNTdWJzY3JpYmVycykge1xuICAgICAgICBjaGFubmVscy5vcGVuLnB1Ymxpc2goe1xuICAgICAgICAgIGFkZHJlc3M6IHJlc3BvbnNlLnNvY2tldC5hZGRyZXNzKCksXG4gICAgICAgICAgcHJvdG9jb2w6IHNlY1Byb3RvY29sLFxuICAgICAgICAgIGV4dGVuc2lvbnM6IHNlY0V4dGVuc2lvblxuICAgICAgICB9KVxuICAgICAgfVxuXG4gICAgICBvbkVzdGFibGlzaChyZXNwb25zZSwgZXh0ZW5zaW9ucylcbiAgICB9XG4gIH0pXG5cbiAgcmV0dXJuIGNvbnRyb2xsZXJcbn1cblxuZnVuY3Rpb24gY2xvc2VXZWJTb2NrZXRDb25uZWN0aW9uICh3cywgY29kZSwgcmVhc29uLCByZWFzb25CeXRlTGVuZ3RoKSB7XG4gIGlmIChpc0Nsb3Npbmcod3MpIHx8IGlzQ2xvc2VkKHdzKSkge1xuICAgIC8vIElmIHRoaXMncyByZWFkeSBzdGF0ZSBpcyBDTE9TSU5HICgyKSBvciBDTE9TRUQgKDMpXG4gICAgLy8gRG8gbm90aGluZy5cbiAgfSBlbHNlIGlmICghaXNFc3RhYmxpc2hlZCh3cykpIHtcbiAgICAvLyBJZiB0aGUgV2ViU29ja2V0IGNvbm5lY3Rpb24gaXMgbm90IHlldCBlc3RhYmxpc2hlZFxuICAgIC8vIEZhaWwgdGhlIFdlYlNvY2tldCBjb25uZWN0aW9uIGFuZCBzZXQgdGhpcydzIHJlYWR5IHN0YXRlXG4gICAgLy8gdG8gQ0xPU0lORyAoMikuXG4gICAgZmFpbFdlYnNvY2tldENvbm5lY3Rpb24od3MsICdDb25uZWN0aW9uIHdhcyBjbG9zZWQgYmVmb3JlIGl0IHdhcyBlc3RhYmxpc2hlZC4nKVxuICAgIHdzW2tSZWFkeVN0YXRlXSA9IHN0YXRlcy5DTE9TSU5HXG4gIH0gZWxzZSBpZiAod3Nba1NlbnRDbG9zZV0gPT09IHNlbnRDbG9zZUZyYW1lU3RhdGUuTk9UX1NFTlQpIHtcbiAgICAvLyBJZiB0aGUgV2ViU29ja2V0IGNsb3NpbmcgaGFuZHNoYWtlIGhhcyBub3QgeWV0IGJlZW4gc3RhcnRlZFxuICAgIC8vIFN0YXJ0IHRoZSBXZWJTb2NrZXQgY2xvc2luZyBoYW5kc2hha2UgYW5kIHNldCB0aGlzJ3MgcmVhZHlcbiAgICAvLyBzdGF0ZSB0byBDTE9TSU5HICgyKS5cbiAgICAvLyAtIElmIG5laXRoZXIgY29kZSBub3IgcmVhc29uIGlzIHByZXNlbnQsIHRoZSBXZWJTb2NrZXQgQ2xvc2VcbiAgICAvLyAgIG1lc3NhZ2UgbXVzdCBub3QgaGF2ZSBhIGJvZHkuXG4gICAgLy8gLSBJZiBjb2RlIGlzIHByZXNlbnQsIHRoZW4gdGhlIHN0YXR1cyBjb2RlIHRvIHVzZSBpbiB0aGVcbiAgICAvLyAgIFdlYlNvY2tldCBDbG9zZSBtZXNzYWdlIG11c3QgYmUgdGhlIGludGVnZXIgZ2l2ZW4gYnkgY29kZS5cbiAgICAvLyAtIElmIHJlYXNvbiBpcyBhbHNvIHByZXNlbnQsIHRoZW4gcmVhc29uQnl0ZXMgbXVzdCBiZVxuICAgIC8vICAgcHJvdmlkZWQgaW4gdGhlIENsb3NlIG1lc3NhZ2UgYWZ0ZXIgdGhlIHN0YXR1cyBjb2RlLlxuXG4gICAgd3Nba1NlbnRDbG9zZV0gPSBzZW50Q2xvc2VGcmFtZVN0YXRlLlBST0NFU1NJTkdcblxuICAgIGNvbnN0IGZyYW1lID0gbmV3IFdlYnNvY2tldEZyYW1lU2VuZCgpXG5cbiAgICAvLyBJZiBuZWl0aGVyIGNvZGUgbm9yIHJlYXNvbiBpcyBwcmVzZW50LCB0aGUgV2ViU29ja2V0IENsb3NlXG4gICAgLy8gbWVzc2FnZSBtdXN0IG5vdCBoYXZlIGEgYm9keS5cblxuICAgIC8vIElmIGNvZGUgaXMgcHJlc2VudCwgdGhlbiB0aGUgc3RhdHVzIGNvZGUgdG8gdXNlIGluIHRoZVxuICAgIC8vIFdlYlNvY2tldCBDbG9zZSBtZXNzYWdlIG11c3QgYmUgdGhlIGludGVnZXIgZ2l2ZW4gYnkgY29kZS5cbiAgICBpZiAoY29kZSAhPT0gdW5kZWZpbmVkICYmIHJlYXNvbiA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBmcmFtZS5mcmFtZURhdGEgPSBCdWZmZXIuYWxsb2NVbnNhZmUoMilcbiAgICAgIGZyYW1lLmZyYW1lRGF0YS53cml0ZVVJbnQxNkJFKGNvZGUsIDApXG4gICAgfSBlbHNlIGlmIChjb2RlICE9PSB1bmRlZmluZWQgJiYgcmVhc29uICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIC8vIElmIHJlYXNvbiBpcyBhbHNvIHByZXNlbnQsIHRoZW4gcmVhc29uQnl0ZXMgbXVzdCBiZVxuICAgICAgLy8gcHJvdmlkZWQgaW4gdGhlIENsb3NlIG1lc3NhZ2UgYWZ0ZXIgdGhlIHN0YXR1cyBjb2RlLlxuICAgICAgZnJhbWUuZnJhbWVEYXRhID0gQnVmZmVyLmFsbG9jVW5zYWZlKDIgKyByZWFzb25CeXRlTGVuZ3RoKVxuICAgICAgZnJhbWUuZnJhbWVEYXRhLndyaXRlVUludDE2QkUoY29kZSwgMClcbiAgICAgIC8vIHRoZSBib2R5IE1BWSBjb250YWluIFVURi04LWVuY29kZWQgZGF0YSB3aXRoIHZhbHVlIC9yZWFzb24vXG4gICAgICBmcmFtZS5mcmFtZURhdGEud3JpdGUocmVhc29uLCAyLCAndXRmLTgnKVxuICAgIH0gZWxzZSB7XG4gICAgICBmcmFtZS5mcmFtZURhdGEgPSBlbXB0eUJ1ZmZlclxuICAgIH1cblxuICAgIC8qKiBAdHlwZSB7aW1wb3J0KCdzdHJlYW0nKS5EdXBsZXh9ICovXG4gICAgY29uc3Qgc29ja2V0ID0gd3Nba1Jlc3BvbnNlXS5zb2NrZXRcblxuICAgIHNvY2tldC53cml0ZShmcmFtZS5jcmVhdGVGcmFtZShvcGNvZGVzLkNMT1NFKSlcblxuICAgIHdzW2tTZW50Q2xvc2VdID0gc2VudENsb3NlRnJhbWVTdGF0ZS5TRU5UXG5cbiAgICAvLyBVcG9uIGVpdGhlciBzZW5kaW5nIG9yIHJlY2VpdmluZyBhIENsb3NlIGNvbnRyb2wgZnJhbWUsIGl0IGlzIHNhaWRcbiAgICAvLyB0aGF0IF9UaGUgV2ViU29ja2V0IENsb3NpbmcgSGFuZHNoYWtlIGlzIFN0YXJ0ZWRfIGFuZCB0aGF0IHRoZVxuICAgIC8vIFdlYlNvY2tldCBjb25uZWN0aW9uIGlzIGluIHRoZSBDTE9TSU5HIHN0YXRlLlxuICAgIHdzW2tSZWFkeVN0YXRlXSA9IHN0YXRlcy5DTE9TSU5HXG4gIH0gZWxzZSB7XG4gICAgLy8gT3RoZXJ3aXNlXG4gICAgLy8gU2V0IHRoaXMncyByZWFkeSBzdGF0ZSB0byBDTE9TSU5HICgyKS5cbiAgICB3c1trUmVhZHlTdGF0ZV0gPSBzdGF0ZXMuQ0xPU0lOR1xuICB9XG59XG5cbi8qKlxuICogQHBhcmFtIHtCdWZmZXJ9IGNodW5rXG4gKi9cbmZ1bmN0aW9uIG9uU29ja2V0RGF0YSAoY2h1bmspIHtcbiAgaWYgKCF0aGlzLndzW2tCeXRlUGFyc2VyXS53cml0ZShjaHVuaykpIHtcbiAgICB0aGlzLnBhdXNlKClcbiAgfVxufVxuXG4vKipcbiAqIEBzZWUgaHR0cHM6Ly93ZWJzb2NrZXRzLnNwZWMud2hhdHdnLm9yZy8jZmVlZGJhY2stZnJvbS10aGUtcHJvdG9jb2xcbiAqIEBzZWUgaHR0cHM6Ly9kYXRhdHJhY2tlci5pZXRmLm9yZy9kb2MvaHRtbC9yZmM2NDU1I3NlY3Rpb24tNy4xLjRcbiAqL1xuZnVuY3Rpb24gb25Tb2NrZXRDbG9zZSAoKSB7XG4gIGNvbnN0IHsgd3MgfSA9IHRoaXNcbiAgY29uc3QgeyBba1Jlc3BvbnNlXTogcmVzcG9uc2UgfSA9IHdzXG5cbiAgcmVzcG9uc2Uuc29ja2V0Lm9mZignZGF0YScsIG9uU29ja2V0RGF0YSlcbiAgcmVzcG9uc2Uuc29ja2V0Lm9mZignY2xvc2UnLCBvblNvY2tldENsb3NlKVxuICByZXNwb25zZS5zb2NrZXQub2ZmKCdlcnJvcicsIG9uU29ja2V0RXJyb3IpXG5cbiAgLy8gSWYgdGhlIFRDUCBjb25uZWN0aW9uIHdhcyBjbG9zZWQgYWZ0ZXIgdGhlXG4gIC8vIFdlYlNvY2tldCBjbG9zaW5nIGhhbmRzaGFrZSB3YXMgY29tcGxldGVkLCB0aGUgV2ViU29ja2V0IGNvbm5lY3Rpb25cbiAgLy8gaXMgc2FpZCB0byBoYXZlIGJlZW4gY2xvc2VkIF9jbGVhbmx5Xy5cbiAgY29uc3Qgd2FzQ2xlYW4gPSB3c1trU2VudENsb3NlXSA9PT0gc2VudENsb3NlRnJhbWVTdGF0ZS5TRU5UICYmIHdzW2tSZWNlaXZlZENsb3NlXVxuXG4gIGxldCBjb2RlID0gMTAwNVxuICBsZXQgcmVhc29uID0gJydcblxuICBjb25zdCByZXN1bHQgPSB3c1trQnl0ZVBhcnNlcl0uY2xvc2luZ0luZm9cblxuICBpZiAocmVzdWx0ICYmICFyZXN1bHQuZXJyb3IpIHtcbiAgICBjb2RlID0gcmVzdWx0LmNvZGUgPz8gMTAwNVxuICAgIHJlYXNvbiA9IHJlc3VsdC5yZWFzb25cbiAgfSBlbHNlIGlmICghd3Nba1JlY2VpdmVkQ2xvc2VdKSB7XG4gICAgLy8gSWYgX1RoZSBXZWJTb2NrZXRcbiAgICAvLyBDb25uZWN0aW9uIGlzIENsb3NlZF8gYW5kIG5vIENsb3NlIGNvbnRyb2wgZnJhbWUgd2FzIHJlY2VpdmVkIGJ5IHRoZVxuICAgIC8vIGVuZHBvaW50IChzdWNoIGFzIGNvdWxkIG9jY3VyIGlmIHRoZSB1bmRlcmx5aW5nIHRyYW5zcG9ydCBjb25uZWN0aW9uXG4gICAgLy8gaXMgbG9zdCksIF9UaGUgV2ViU29ja2V0IENvbm5lY3Rpb24gQ2xvc2UgQ29kZV8gaXMgY29uc2lkZXJlZCB0byBiZVxuICAgIC8vIDEwMDYuXG4gICAgY29kZSA9IDEwMDZcbiAgfVxuXG4gIC8vIDEuIENoYW5nZSB0aGUgcmVhZHkgc3RhdGUgdG8gQ0xPU0VEICgzKS5cbiAgd3Nba1JlYWR5U3RhdGVdID0gc3RhdGVzLkNMT1NFRFxuXG4gIC8vIDIuIElmIHRoZSB1c2VyIGFnZW50IHdhcyByZXF1aXJlZCB0byBmYWlsIHRoZSBXZWJTb2NrZXRcbiAgLy8gICAgY29ubmVjdGlvbiwgb3IgaWYgdGhlIFdlYlNvY2tldCBjb25uZWN0aW9uIHdhcyBjbG9zZWRcbiAgLy8gICAgYWZ0ZXIgYmVpbmcgZmxhZ2dlZCBhcyBmdWxsLCBmaXJlIGFuIGV2ZW50IG5hbWVkIGVycm9yXG4gIC8vICAgIGF0IHRoZSBXZWJTb2NrZXQgb2JqZWN0LlxuICAvLyBUT0RPXG5cbiAgLy8gMy4gRmlyZSBhbiBldmVudCBuYW1lZCBjbG9zZSBhdCB0aGUgV2ViU29ja2V0IG9iamVjdCxcbiAgLy8gICAgdXNpbmcgQ2xvc2VFdmVudCwgd2l0aCB0aGUgd2FzQ2xlYW4gYXR0cmlidXRlXG4gIC8vICAgIGluaXRpYWxpemVkIHRvIHRydWUgaWYgdGhlIGNvbm5lY3Rpb24gY2xvc2VkIGNsZWFubHlcbiAgLy8gICAgYW5kIGZhbHNlIG90aGVyd2lzZSwgdGhlIGNvZGUgYXR0cmlidXRlIGluaXRpYWxpemVkIHRvXG4gIC8vICAgIHRoZSBXZWJTb2NrZXQgY29ubmVjdGlvbiBjbG9zZSBjb2RlLCBhbmQgdGhlIHJlYXNvblxuICAvLyAgICBhdHRyaWJ1dGUgaW5pdGlhbGl6ZWQgdG8gdGhlIHJlc3VsdCBvZiBhcHBseWluZyBVVEYtOFxuICAvLyAgICBkZWNvZGUgd2l0aG91dCBCT00gdG8gdGhlIFdlYlNvY2tldCBjb25uZWN0aW9uIGNsb3NlXG4gIC8vICAgIHJlYXNvbi5cbiAgLy8gVE9ETzogcHJvY2Vzcy5uZXh0VGlja1xuICBmaXJlRXZlbnQoJ2Nsb3NlJywgd3MsICh0eXBlLCBpbml0KSA9PiBuZXcgQ2xvc2VFdmVudCh0eXBlLCBpbml0KSwge1xuICAgIHdhc0NsZWFuLCBjb2RlLCByZWFzb25cbiAgfSlcblxuICBpZiAoY2hhbm5lbHMuY2xvc2UuaGFzU3Vic2NyaWJlcnMpIHtcbiAgICBjaGFubmVscy5jbG9zZS5wdWJsaXNoKHtcbiAgICAgIHdlYnNvY2tldDogd3MsXG4gICAgICBjb2RlLFxuICAgICAgcmVhc29uXG4gICAgfSlcbiAgfVxufVxuXG5mdW5jdGlvbiBvblNvY2tldEVycm9yIChlcnJvcikge1xuICBjb25zdCB7IHdzIH0gPSB0aGlzXG5cbiAgd3Nba1JlYWR5U3RhdGVdID0gc3RhdGVzLkNMT1NJTkdcblxuICBpZiAoY2hhbm5lbHMuc29ja2V0RXJyb3IuaGFzU3Vic2NyaWJlcnMpIHtcbiAgICBjaGFubmVscy5zb2NrZXRFcnJvci5wdWJsaXNoKGVycm9yKVxuICB9XG5cbiAgdGhpcy5kZXN0cm95KClcbn1cblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gIGVzdGFibGlzaFdlYlNvY2tldENvbm5lY3Rpb24sXG4gIGNsb3NlV2ViU29ja2V0Q29ubmVjdGlvblxufVxuIiwgIid1c2Ugc3RyaWN0J1xuXG5jb25zdCB7IGNyZWF0ZUluZmxhdGVSYXcsIFpfREVGQVVMVF9XSU5ET1dCSVRTIH0gPSByZXF1aXJlKCdub2RlOnpsaWInKVxuY29uc3QgeyBpc1ZhbGlkQ2xpZW50V2luZG93Qml0cyB9ID0gcmVxdWlyZSgnLi91dGlsJylcblxuY29uc3QgdGFpbCA9IEJ1ZmZlci5mcm9tKFsweDAwLCAweDAwLCAweGZmLCAweGZmXSlcbmNvbnN0IGtCdWZmZXIgPSBTeW1ib2woJ2tCdWZmZXInKVxuY29uc3Qga0xlbmd0aCA9IFN5bWJvbCgna0xlbmd0aCcpXG5cbmNsYXNzIFBlck1lc3NhZ2VEZWZsYXRlIHtcbiAgLyoqIEB0eXBlIHtpbXBvcnQoJ25vZGU6emxpYicpLkluZmxhdGVSYXd9ICovXG4gICNpbmZsYXRlXG5cbiAgI29wdGlvbnMgPSB7fVxuXG4gIGNvbnN0cnVjdG9yIChleHRlbnNpb25zKSB7XG4gICAgdGhpcy4jb3B0aW9ucy5zZXJ2ZXJOb0NvbnRleHRUYWtlb3ZlciA9IGV4dGVuc2lvbnMuaGFzKCdzZXJ2ZXJfbm9fY29udGV4dF90YWtlb3ZlcicpXG4gICAgdGhpcy4jb3B0aW9ucy5zZXJ2ZXJNYXhXaW5kb3dCaXRzID0gZXh0ZW5zaW9ucy5nZXQoJ3NlcnZlcl9tYXhfd2luZG93X2JpdHMnKVxuICB9XG5cbiAgZGVjb21wcmVzcyAoY2h1bmssIGZpbiwgY2FsbGJhY2spIHtcbiAgICAvLyBBbiBlbmRwb2ludCB1c2VzIHRoZSBmb2xsb3dpbmcgYWxnb3JpdGhtIHRvIGRlY29tcHJlc3MgYSBtZXNzYWdlLlxuICAgIC8vIDEuICBBcHBlbmQgNCBvY3RldHMgb2YgMHgwMCAweDAwIDB4ZmYgMHhmZiB0byB0aGUgdGFpbCBlbmQgb2YgdGhlXG4gICAgLy8gICAgIHBheWxvYWQgb2YgdGhlIG1lc3NhZ2UuXG4gICAgLy8gMi4gIERlY29tcHJlc3MgdGhlIHJlc3VsdGluZyBkYXRhIHVzaW5nIERFRkxBVEUuXG5cbiAgICBpZiAoIXRoaXMuI2luZmxhdGUpIHtcbiAgICAgIGxldCB3aW5kb3dCaXRzID0gWl9ERUZBVUxUX1dJTkRPV0JJVFNcblxuICAgICAgaWYgKHRoaXMuI29wdGlvbnMuc2VydmVyTWF4V2luZG93Qml0cykgeyAvLyBlbXB0eSB2YWx1ZXMgZGVmYXVsdCB0byBaX0RFRkFVTFRfV0lORE9XQklUU1xuICAgICAgICBpZiAoIWlzVmFsaWRDbGllbnRXaW5kb3dCaXRzKHRoaXMuI29wdGlvbnMuc2VydmVyTWF4V2luZG93Qml0cykpIHtcbiAgICAgICAgICBjYWxsYmFjayhuZXcgRXJyb3IoJ0ludmFsaWQgc2VydmVyX21heF93aW5kb3dfYml0cycpKVxuICAgICAgICAgIHJldHVyblxuICAgICAgICB9XG5cbiAgICAgICAgd2luZG93Qml0cyA9IE51bWJlci5wYXJzZUludCh0aGlzLiNvcHRpb25zLnNlcnZlck1heFdpbmRvd0JpdHMpXG4gICAgICB9XG5cbiAgICAgIHRoaXMuI2luZmxhdGUgPSBjcmVhdGVJbmZsYXRlUmF3KHsgd2luZG93Qml0cyB9KVxuICAgICAgdGhpcy4jaW5mbGF0ZVtrQnVmZmVyXSA9IFtdXG4gICAgICB0aGlzLiNpbmZsYXRlW2tMZW5ndGhdID0gMFxuXG4gICAgICB0aGlzLiNpbmZsYXRlLm9uKCdkYXRhJywgKGRhdGEpID0+IHtcbiAgICAgICAgdGhpcy4jaW5mbGF0ZVtrQnVmZmVyXS5wdXNoKGRhdGEpXG4gICAgICAgIHRoaXMuI2luZmxhdGVba0xlbmd0aF0gKz0gZGF0YS5sZW5ndGhcbiAgICAgIH0pXG5cbiAgICAgIHRoaXMuI2luZmxhdGUub24oJ2Vycm9yJywgKGVycikgPT4ge1xuICAgICAgICB0aGlzLiNpbmZsYXRlID0gbnVsbFxuICAgICAgICBjYWxsYmFjayhlcnIpXG4gICAgICB9KVxuICAgIH1cblxuICAgIHRoaXMuI2luZmxhdGUud3JpdGUoY2h1bmspXG4gICAgaWYgKGZpbikge1xuICAgICAgdGhpcy4jaW5mbGF0ZS53cml0ZSh0YWlsKVxuICAgIH1cblxuICAgIHRoaXMuI2luZmxhdGUuZmx1c2goKCkgPT4ge1xuICAgICAgY29uc3QgZnVsbCA9IEJ1ZmZlci5jb25jYXQodGhpcy4jaW5mbGF0ZVtrQnVmZmVyXSwgdGhpcy4jaW5mbGF0ZVtrTGVuZ3RoXSlcblxuICAgICAgdGhpcy4jaW5mbGF0ZVtrQnVmZmVyXS5sZW5ndGggPSAwXG4gICAgICB0aGlzLiNpbmZsYXRlW2tMZW5ndGhdID0gMFxuXG4gICAgICBjYWxsYmFjayhudWxsLCBmdWxsKVxuICAgIH0pXG4gIH1cbn1cblxubW9kdWxlLmV4cG9ydHMgPSB7IFBlck1lc3NhZ2VEZWZsYXRlIH1cbiIsICIndXNlIHN0cmljdCdcblxuY29uc3QgeyBXcml0YWJsZSB9ID0gcmVxdWlyZSgnbm9kZTpzdHJlYW0nKVxuY29uc3QgYXNzZXJ0ID0gcmVxdWlyZSgnbm9kZTphc3NlcnQnKVxuY29uc3QgeyBwYXJzZXJTdGF0ZXMsIG9wY29kZXMsIHN0YXRlcywgZW1wdHlCdWZmZXIsIHNlbnRDbG9zZUZyYW1lU3RhdGUgfSA9IHJlcXVpcmUoJy4vY29uc3RhbnRzJylcbmNvbnN0IHsga1JlYWR5U3RhdGUsIGtTZW50Q2xvc2UsIGtSZXNwb25zZSwga1JlY2VpdmVkQ2xvc2UgfSA9IHJlcXVpcmUoJy4vc3ltYm9scycpXG5jb25zdCB7IGNoYW5uZWxzIH0gPSByZXF1aXJlKCcuLi8uLi9jb3JlL2RpYWdub3N0aWNzJylcbmNvbnN0IHtcbiAgaXNWYWxpZFN0YXR1c0NvZGUsXG4gIGlzVmFsaWRPcGNvZGUsXG4gIGZhaWxXZWJzb2NrZXRDb25uZWN0aW9uLFxuICB3ZWJzb2NrZXRNZXNzYWdlUmVjZWl2ZWQsXG4gIHV0ZjhEZWNvZGUsXG4gIGlzQ29udHJvbEZyYW1lLFxuICBpc1RleHRCaW5hcnlGcmFtZSxcbiAgaXNDb250aW51YXRpb25GcmFtZVxufSA9IHJlcXVpcmUoJy4vdXRpbCcpXG5jb25zdCB7IFdlYnNvY2tldEZyYW1lU2VuZCB9ID0gcmVxdWlyZSgnLi9mcmFtZScpXG5jb25zdCB7IGNsb3NlV2ViU29ja2V0Q29ubmVjdGlvbiB9ID0gcmVxdWlyZSgnLi9jb25uZWN0aW9uJylcbmNvbnN0IHsgUGVyTWVzc2FnZURlZmxhdGUgfSA9IHJlcXVpcmUoJy4vcGVybWVzc2FnZS1kZWZsYXRlJylcblxuLy8gVGhpcyBjb2RlIHdhcyBpbmZsdWVuY2VkIGJ5IHdzIHJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZS5cbi8vIENvcHlyaWdodCAoYykgMjAxMSBFaW5hciBPdHRvIFN0YW5ndmlrIDxlaW5hcm9zQGdtYWlsLmNvbT5cbi8vIENvcHlyaWdodCAoYykgMjAxMyBBcm5vdXQgS2F6ZW1pZXIgYW5kIGNvbnRyaWJ1dG9yc1xuLy8gQ29weXJpZ2h0IChjKSAyMDE2IEx1aWdpIFBpbmNhIGFuZCBjb250cmlidXRvcnNcblxuY2xhc3MgQnl0ZVBhcnNlciBleHRlbmRzIFdyaXRhYmxlIHtcbiAgI2J1ZmZlcnMgPSBbXVxuICAjYnl0ZU9mZnNldCA9IDBcbiAgI2xvb3AgPSBmYWxzZVxuXG4gICNzdGF0ZSA9IHBhcnNlclN0YXRlcy5JTkZPXG5cbiAgI2luZm8gPSB7fVxuICAjZnJhZ21lbnRzID0gW11cblxuICAvKiogQHR5cGUge01hcDxzdHJpbmcsIFBlck1lc3NhZ2VEZWZsYXRlPn0gKi9cbiAgI2V4dGVuc2lvbnNcblxuICBjb25zdHJ1Y3RvciAod3MsIGV4dGVuc2lvbnMpIHtcbiAgICBzdXBlcigpXG5cbiAgICB0aGlzLndzID0gd3NcbiAgICB0aGlzLiNleHRlbnNpb25zID0gZXh0ZW5zaW9ucyA9PSBudWxsID8gbmV3IE1hcCgpIDogZXh0ZW5zaW9uc1xuXG4gICAgaWYgKHRoaXMuI2V4dGVuc2lvbnMuaGFzKCdwZXJtZXNzYWdlLWRlZmxhdGUnKSkge1xuICAgICAgdGhpcy4jZXh0ZW5zaW9ucy5zZXQoJ3Blcm1lc3NhZ2UtZGVmbGF0ZScsIG5ldyBQZXJNZXNzYWdlRGVmbGF0ZShleHRlbnNpb25zKSlcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHtCdWZmZXJ9IGNodW5rXG4gICAqIEBwYXJhbSB7KCkgPT4gdm9pZH0gY2FsbGJhY2tcbiAgICovXG4gIF93cml0ZSAoY2h1bmssIF8sIGNhbGxiYWNrKSB7XG4gICAgdGhpcy4jYnVmZmVycy5wdXNoKGNodW5rKVxuICAgIHRoaXMuI2J5dGVPZmZzZXQgKz0gY2h1bmsubGVuZ3RoXG4gICAgdGhpcy4jbG9vcCA9IHRydWVcblxuICAgIHRoaXMucnVuKGNhbGxiYWNrKVxuICB9XG5cbiAgLyoqXG4gICAqIFJ1bnMgd2hlbmV2ZXIgYSBuZXcgY2h1bmsgaXMgcmVjZWl2ZWQuXG4gICAqIENhbGxiYWNrIGlzIGNhbGxlZCB3aGVuZXZlciB0aGVyZSBhcmUgbm8gbW9yZSBjaHVua3MgYnVmZmVyaW5nLFxuICAgKiBvciBub3QgZW5vdWdoIGJ5dGVzIGFyZSBidWZmZXJlZCB0byBwYXJzZS5cbiAgICovXG4gIHJ1biAoY2FsbGJhY2spIHtcbiAgICB3aGlsZSAodGhpcy4jbG9vcCkge1xuICAgICAgaWYgKHRoaXMuI3N0YXRlID09PSBwYXJzZXJTdGF0ZXMuSU5GTykge1xuICAgICAgICAvLyBJZiB0aGVyZSBhcmVuJ3QgZW5vdWdoIGJ5dGVzIHRvIHBhcnNlIHRoZSBwYXlsb2FkIGxlbmd0aCwgZXRjLlxuICAgICAgICBpZiAodGhpcy4jYnl0ZU9mZnNldCA8IDIpIHtcbiAgICAgICAgICByZXR1cm4gY2FsbGJhY2soKVxuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgYnVmZmVyID0gdGhpcy5jb25zdW1lKDIpXG4gICAgICAgIGNvbnN0IGZpbiA9IChidWZmZXJbMF0gJiAweDgwKSAhPT0gMFxuICAgICAgICBjb25zdCBvcGNvZGUgPSBidWZmZXJbMF0gJiAweDBGXG4gICAgICAgIGNvbnN0IG1hc2tlZCA9IChidWZmZXJbMV0gJiAweDgwKSA9PT0gMHg4MFxuXG4gICAgICAgIGNvbnN0IGZyYWdtZW50ZWQgPSAhZmluICYmIG9wY29kZSAhPT0gb3Bjb2Rlcy5DT05USU5VQVRJT05cbiAgICAgICAgY29uc3QgcGF5bG9hZExlbmd0aCA9IGJ1ZmZlclsxXSAmIDB4N0ZcblxuICAgICAgICBjb25zdCByc3YxID0gYnVmZmVyWzBdICYgMHg0MFxuICAgICAgICBjb25zdCByc3YyID0gYnVmZmVyWzBdICYgMHgyMFxuICAgICAgICBjb25zdCByc3YzID0gYnVmZmVyWzBdICYgMHgxMFxuXG4gICAgICAgIGlmICghaXNWYWxpZE9wY29kZShvcGNvZGUpKSB7XG4gICAgICAgICAgZmFpbFdlYnNvY2tldENvbm5lY3Rpb24odGhpcy53cywgJ0ludmFsaWQgb3Bjb2RlIHJlY2VpdmVkJylcbiAgICAgICAgICByZXR1cm4gY2FsbGJhY2soKVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKG1hc2tlZCkge1xuICAgICAgICAgIGZhaWxXZWJzb2NrZXRDb25uZWN0aW9uKHRoaXMud3MsICdGcmFtZSBjYW5ub3QgYmUgbWFza2VkJylcbiAgICAgICAgICByZXR1cm4gY2FsbGJhY2soKVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gTVVTVCBiZSAwIHVubGVzcyBhbiBleHRlbnNpb24gaXMgbmVnb3RpYXRlZCB0aGF0IGRlZmluZXMgbWVhbmluZ3NcbiAgICAgICAgLy8gZm9yIG5vbi16ZXJvIHZhbHVlcy4gIElmIGEgbm9uemVybyB2YWx1ZSBpcyByZWNlaXZlZCBhbmQgbm9uZSBvZlxuICAgICAgICAvLyB0aGUgbmVnb3RpYXRlZCBleHRlbnNpb25zIGRlZmluZXMgdGhlIG1lYW5pbmcgb2Ygc3VjaCBhIG5vbnplcm9cbiAgICAgICAgLy8gdmFsdWUsIHRoZSByZWNlaXZpbmcgZW5kcG9pbnQgTVVTVCBfRmFpbCB0aGUgV2ViU29ja2V0XG4gICAgICAgIC8vIENvbm5lY3Rpb25fLlxuICAgICAgICAvLyBUaGlzIGRvY3VtZW50IGFsbG9jYXRlcyB0aGUgUlNWMSBiaXQgb2YgdGhlIFdlYlNvY2tldCBoZWFkZXIgZm9yXG4gICAgICAgIC8vIFBNQ0VzIGFuZCBjYWxscyB0aGUgYml0IHRoZSBcIlBlci1NZXNzYWdlIENvbXByZXNzZWRcIiBiaXQuICBPbiBhXG4gICAgICAgIC8vIFdlYlNvY2tldCBjb25uZWN0aW9uIHdoZXJlIGEgUE1DRSBpcyBpbiB1c2UsIHRoaXMgYml0IGluZGljYXRlc1xuICAgICAgICAvLyB3aGV0aGVyIGEgbWVzc2FnZSBpcyBjb21wcmVzc2VkIG9yIG5vdC5cbiAgICAgICAgaWYgKHJzdjEgIT09IDAgJiYgIXRoaXMuI2V4dGVuc2lvbnMuaGFzKCdwZXJtZXNzYWdlLWRlZmxhdGUnKSkge1xuICAgICAgICAgIGZhaWxXZWJzb2NrZXRDb25uZWN0aW9uKHRoaXMud3MsICdFeHBlY3RlZCBSU1YxIHRvIGJlIGNsZWFyLicpXG4gICAgICAgICAgcmV0dXJuXG4gICAgICAgIH1cblxuICAgICAgICBpZiAocnN2MiAhPT0gMCB8fCByc3YzICE9PSAwKSB7XG4gICAgICAgICAgZmFpbFdlYnNvY2tldENvbm5lY3Rpb24odGhpcy53cywgJ1JTVjEsIFJTVjIsIFJTVjMgbXVzdCBiZSBjbGVhcicpXG4gICAgICAgICAgcmV0dXJuXG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZnJhZ21lbnRlZCAmJiAhaXNUZXh0QmluYXJ5RnJhbWUob3Bjb2RlKSkge1xuICAgICAgICAgIC8vIE9ubHkgdGV4dCBhbmQgYmluYXJ5IGZyYW1lcyBjYW4gYmUgZnJhZ21lbnRlZFxuICAgICAgICAgIGZhaWxXZWJzb2NrZXRDb25uZWN0aW9uKHRoaXMud3MsICdJbnZhbGlkIGZyYW1lIHR5cGUgd2FzIGZyYWdtZW50ZWQuJylcbiAgICAgICAgICByZXR1cm5cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIElmIHdlIGFyZSBhbHJlYWR5IHBhcnNpbmcgYSB0ZXh0L2JpbmFyeSBmcmFtZSBhbmQgZG8gbm90IHJlY2VpdmUgZWl0aGVyXG4gICAgICAgIC8vIGEgY29udGludWF0aW9uIGZyYW1lIG9yIGNsb3NlIGZyYW1lLCBmYWlsIHRoZSBjb25uZWN0aW9uLlxuICAgICAgICBpZiAoaXNUZXh0QmluYXJ5RnJhbWUob3Bjb2RlKSAmJiB0aGlzLiNmcmFnbWVudHMubGVuZ3RoID4gMCkge1xuICAgICAgICAgIGZhaWxXZWJzb2NrZXRDb25uZWN0aW9uKHRoaXMud3MsICdFeHBlY3RlZCBjb250aW51YXRpb24gZnJhbWUnKVxuICAgICAgICAgIHJldHVyblxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuI2luZm8uZnJhZ21lbnRlZCAmJiBmcmFnbWVudGVkKSB7XG4gICAgICAgICAgLy8gQSBmcmFnbWVudGVkIGZyYW1lIGNhbid0IGJlIGZyYWdtZW50ZWQgaXRzZWxmXG4gICAgICAgICAgZmFpbFdlYnNvY2tldENvbm5lY3Rpb24odGhpcy53cywgJ0ZyYWdtZW50ZWQgZnJhbWUgZXhjZWVkZWQgMTI1IGJ5dGVzLicpXG4gICAgICAgICAgcmV0dXJuXG4gICAgICAgIH1cblxuICAgICAgICAvLyBcIkFsbCBjb250cm9sIGZyYW1lcyBNVVNUIGhhdmUgYSBwYXlsb2FkIGxlbmd0aCBvZiAxMjUgYnl0ZXMgb3IgbGVzc1xuICAgICAgICAvLyBhbmQgTVVTVCBOT1QgYmUgZnJhZ21lbnRlZC5cIlxuICAgICAgICBpZiAoKHBheWxvYWRMZW5ndGggPiAxMjUgfHwgZnJhZ21lbnRlZCkgJiYgaXNDb250cm9sRnJhbWUob3Bjb2RlKSkge1xuICAgICAgICAgIGZhaWxXZWJzb2NrZXRDb25uZWN0aW9uKHRoaXMud3MsICdDb250cm9sIGZyYW1lIGVpdGhlciB0b28gbGFyZ2Ugb3IgZnJhZ21lbnRlZCcpXG4gICAgICAgICAgcmV0dXJuXG4gICAgICAgIH1cblxuICAgICAgICBpZiAoaXNDb250aW51YXRpb25GcmFtZShvcGNvZGUpICYmIHRoaXMuI2ZyYWdtZW50cy5sZW5ndGggPT09IDAgJiYgIXRoaXMuI2luZm8uY29tcHJlc3NlZCkge1xuICAgICAgICAgIGZhaWxXZWJzb2NrZXRDb25uZWN0aW9uKHRoaXMud3MsICdVbmV4cGVjdGVkIGNvbnRpbnVhdGlvbiBmcmFtZScpXG4gICAgICAgICAgcmV0dXJuXG4gICAgICAgIH1cblxuICAgICAgICBpZiAocGF5bG9hZExlbmd0aCA8PSAxMjUpIHtcbiAgICAgICAgICB0aGlzLiNpbmZvLnBheWxvYWRMZW5ndGggPSBwYXlsb2FkTGVuZ3RoXG4gICAgICAgICAgdGhpcy4jc3RhdGUgPSBwYXJzZXJTdGF0ZXMuUkVBRF9EQVRBXG4gICAgICAgIH0gZWxzZSBpZiAocGF5bG9hZExlbmd0aCA9PT0gMTI2KSB7XG4gICAgICAgICAgdGhpcy4jc3RhdGUgPSBwYXJzZXJTdGF0ZXMuUEFZTE9BRExFTkdUSF8xNlxuICAgICAgICB9IGVsc2UgaWYgKHBheWxvYWRMZW5ndGggPT09IDEyNykge1xuICAgICAgICAgIHRoaXMuI3N0YXRlID0gcGFyc2VyU3RhdGVzLlBBWUxPQURMRU5HVEhfNjRcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChpc1RleHRCaW5hcnlGcmFtZShvcGNvZGUpKSB7XG4gICAgICAgICAgdGhpcy4jaW5mby5iaW5hcnlUeXBlID0gb3Bjb2RlXG4gICAgICAgICAgdGhpcy4jaW5mby5jb21wcmVzc2VkID0gcnN2MSAhPT0gMFxuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy4jaW5mby5vcGNvZGUgPSBvcGNvZGVcbiAgICAgICAgdGhpcy4jaW5mby5tYXNrZWQgPSBtYXNrZWRcbiAgICAgICAgdGhpcy4jaW5mby5maW4gPSBmaW5cbiAgICAgICAgdGhpcy4jaW5mby5mcmFnbWVudGVkID0gZnJhZ21lbnRlZFxuICAgICAgfSBlbHNlIGlmICh0aGlzLiNzdGF0ZSA9PT0gcGFyc2VyU3RhdGVzLlBBWUxPQURMRU5HVEhfMTYpIHtcbiAgICAgICAgaWYgKHRoaXMuI2J5dGVPZmZzZXQgPCAyKSB7XG4gICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKClcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGJ1ZmZlciA9IHRoaXMuY29uc3VtZSgyKVxuXG4gICAgICAgIHRoaXMuI2luZm8ucGF5bG9hZExlbmd0aCA9IGJ1ZmZlci5yZWFkVUludDE2QkUoMClcbiAgICAgICAgdGhpcy4jc3RhdGUgPSBwYXJzZXJTdGF0ZXMuUkVBRF9EQVRBXG4gICAgICB9IGVsc2UgaWYgKHRoaXMuI3N0YXRlID09PSBwYXJzZXJTdGF0ZXMuUEFZTE9BRExFTkdUSF82NCkge1xuICAgICAgICBpZiAodGhpcy4jYnl0ZU9mZnNldCA8IDgpIHtcbiAgICAgICAgICByZXR1cm4gY2FsbGJhY2soKVxuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgYnVmZmVyID0gdGhpcy5jb25zdW1lKDgpXG4gICAgICAgIGNvbnN0IHVwcGVyID0gYnVmZmVyLnJlYWRVSW50MzJCRSgwKVxuXG4gICAgICAgIC8vIDJeMzEgaXMgdGhlIG1heGltdW0gYnl0ZXMgYW4gYXJyYXlidWZmZXIgY2FuIGNvbnRhaW5cbiAgICAgICAgLy8gb24gMzItYml0IHN5c3RlbXMuIEFsdGhvdWdoLCBvbiA2NC1iaXQgc3lzdGVtcywgdGhpcyBpc1xuICAgICAgICAvLyAyXjUzLTEgYnl0ZXMuXG4gICAgICAgIC8vIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0phdmFTY3JpcHQvUmVmZXJlbmNlL0Vycm9ycy9JbnZhbGlkX2FycmF5X2xlbmd0aFxuICAgICAgICAvLyBodHRwczovL3NvdXJjZS5jaHJvbWl1bS5vcmcvY2hyb21pdW0vY2hyb21pdW0vc3JjLysvbWFpbjp2OC9zcmMvY29tbW9uL2dsb2JhbHMuaDtkcmM9MTk0NjIxMmFjMDEwMDY2OGYxNGViOWUyODQzYmRkODQ2ZTUxMGExZTticHY9MTticHQ9MTtsPTEyNzVcbiAgICAgICAgLy8gaHR0cHM6Ly9zb3VyY2UuY2hyb21pdW0ub3JnL2Nocm9taXVtL2Nocm9taXVtL3NyYy8rL21haW46djgvc3JjL29iamVjdHMvanMtYXJyYXktYnVmZmVyLmg7bD0zNDtkcmM9MTk0NjIxMmFjMDEwMDY2OGYxNGViOWUyODQzYmRkODQ2ZTUxMGExZVxuICAgICAgICBpZiAodXBwZXIgPiAyICoqIDMxIC0gMSkge1xuICAgICAgICAgIGZhaWxXZWJzb2NrZXRDb25uZWN0aW9uKHRoaXMud3MsICdSZWNlaXZlZCBwYXlsb2FkIGxlbmd0aCA+IDJeMzEgYnl0ZXMuJylcbiAgICAgICAgICByZXR1cm5cbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGxvd2VyID0gYnVmZmVyLnJlYWRVSW50MzJCRSg0KVxuXG4gICAgICAgIHRoaXMuI2luZm8ucGF5bG9hZExlbmd0aCA9ICh1cHBlciA8PCA4KSArIGxvd2VyXG4gICAgICAgIHRoaXMuI3N0YXRlID0gcGFyc2VyU3RhdGVzLlJFQURfREFUQVxuICAgICAgfSBlbHNlIGlmICh0aGlzLiNzdGF0ZSA9PT0gcGFyc2VyU3RhdGVzLlJFQURfREFUQSkge1xuICAgICAgICBpZiAodGhpcy4jYnl0ZU9mZnNldCA8IHRoaXMuI2luZm8ucGF5bG9hZExlbmd0aCkge1xuICAgICAgICAgIHJldHVybiBjYWxsYmFjaygpXG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBib2R5ID0gdGhpcy5jb25zdW1lKHRoaXMuI2luZm8ucGF5bG9hZExlbmd0aClcblxuICAgICAgICBpZiAoaXNDb250cm9sRnJhbWUodGhpcy4jaW5mby5vcGNvZGUpKSB7XG4gICAgICAgICAgdGhpcy4jbG9vcCA9IHRoaXMucGFyc2VDb250cm9sRnJhbWUoYm9keSlcbiAgICAgICAgICB0aGlzLiNzdGF0ZSA9IHBhcnNlclN0YXRlcy5JTkZPXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaWYgKCF0aGlzLiNpbmZvLmNvbXByZXNzZWQpIHtcbiAgICAgICAgICAgIHRoaXMuI2ZyYWdtZW50cy5wdXNoKGJvZHkpXG5cbiAgICAgICAgICAgIC8vIElmIHRoZSBmcmFtZSBpcyBub3QgZnJhZ21lbnRlZCwgYSBtZXNzYWdlIGhhcyBiZWVuIHJlY2VpdmVkLlxuICAgICAgICAgICAgLy8gSWYgdGhlIGZyYW1lIGlzIGZyYWdtZW50ZWQsIGl0IHdpbGwgdGVybWluYXRlIHdpdGggYSBmaW4gYml0IHNldFxuICAgICAgICAgICAgLy8gYW5kIGFuIG9wY29kZSBvZiAwIChjb250aW51YXRpb24pLCB0aGVyZWZvcmUgd2UgaGFuZGxlIHRoYXQgd2hlblxuICAgICAgICAgICAgLy8gcGFyc2luZyBjb250aW51YXRpb24gZnJhbWVzLCBub3QgaGVyZS5cbiAgICAgICAgICAgIGlmICghdGhpcy4jaW5mby5mcmFnbWVudGVkICYmIHRoaXMuI2luZm8uZmluKSB7XG4gICAgICAgICAgICAgIGNvbnN0IGZ1bGxNZXNzYWdlID0gQnVmZmVyLmNvbmNhdCh0aGlzLiNmcmFnbWVudHMpXG4gICAgICAgICAgICAgIHdlYnNvY2tldE1lc3NhZ2VSZWNlaXZlZCh0aGlzLndzLCB0aGlzLiNpbmZvLmJpbmFyeVR5cGUsIGZ1bGxNZXNzYWdlKVxuICAgICAgICAgICAgICB0aGlzLiNmcmFnbWVudHMubGVuZ3RoID0gMFxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLiNzdGF0ZSA9IHBhcnNlclN0YXRlcy5JTkZPXG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuI2V4dGVuc2lvbnMuZ2V0KCdwZXJtZXNzYWdlLWRlZmxhdGUnKS5kZWNvbXByZXNzKGJvZHksIHRoaXMuI2luZm8uZmluLCAoZXJyb3IsIGRhdGEpID0+IHtcbiAgICAgICAgICAgICAgaWYgKGVycm9yKSB7XG4gICAgICAgICAgICAgICAgY2xvc2VXZWJTb2NrZXRDb25uZWN0aW9uKHRoaXMud3MsIDEwMDcsIGVycm9yLm1lc3NhZ2UsIGVycm9yLm1lc3NhZ2UubGVuZ3RoKVxuICAgICAgICAgICAgICAgIHJldHVyblxuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgdGhpcy4jZnJhZ21lbnRzLnB1c2goZGF0YSlcblxuICAgICAgICAgICAgICBpZiAoIXRoaXMuI2luZm8uZmluKSB7XG4gICAgICAgICAgICAgICAgdGhpcy4jc3RhdGUgPSBwYXJzZXJTdGF0ZXMuSU5GT1xuICAgICAgICAgICAgICAgIHRoaXMuI2xvb3AgPSB0cnVlXG4gICAgICAgICAgICAgICAgdGhpcy5ydW4oY2FsbGJhY2spXG4gICAgICAgICAgICAgICAgcmV0dXJuXG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICB3ZWJzb2NrZXRNZXNzYWdlUmVjZWl2ZWQodGhpcy53cywgdGhpcy4jaW5mby5iaW5hcnlUeXBlLCBCdWZmZXIuY29uY2F0KHRoaXMuI2ZyYWdtZW50cykpXG5cbiAgICAgICAgICAgICAgdGhpcy4jbG9vcCA9IHRydWVcbiAgICAgICAgICAgICAgdGhpcy4jc3RhdGUgPSBwYXJzZXJTdGF0ZXMuSU5GT1xuICAgICAgICAgICAgICB0aGlzLiNmcmFnbWVudHMubGVuZ3RoID0gMFxuICAgICAgICAgICAgICB0aGlzLnJ1bihjYWxsYmFjaylcbiAgICAgICAgICAgIH0pXG5cbiAgICAgICAgICAgIHRoaXMuI2xvb3AgPSBmYWxzZVxuICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVGFrZSBuIGJ5dGVzIGZyb20gdGhlIGJ1ZmZlcmVkIEJ1ZmZlcnNcbiAgICogQHBhcmFtIHtudW1iZXJ9IG5cbiAgICogQHJldHVybnMge0J1ZmZlcn1cbiAgICovXG4gIGNvbnN1bWUgKG4pIHtcbiAgICBpZiAobiA+IHRoaXMuI2J5dGVPZmZzZXQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignQ2FsbGVkIGNvbnN1bWUoKSBiZWZvcmUgYnVmZmVycyBzYXRpYXRlZC4nKVxuICAgIH0gZWxzZSBpZiAobiA9PT0gMCkge1xuICAgICAgcmV0dXJuIGVtcHR5QnVmZmVyXG4gICAgfVxuXG4gICAgaWYgKHRoaXMuI2J1ZmZlcnNbMF0ubGVuZ3RoID09PSBuKSB7XG4gICAgICB0aGlzLiNieXRlT2Zmc2V0IC09IHRoaXMuI2J1ZmZlcnNbMF0ubGVuZ3RoXG4gICAgICByZXR1cm4gdGhpcy4jYnVmZmVycy5zaGlmdCgpXG4gICAgfVxuXG4gICAgY29uc3QgYnVmZmVyID0gQnVmZmVyLmFsbG9jVW5zYWZlKG4pXG4gICAgbGV0IG9mZnNldCA9IDBcblxuICAgIHdoaWxlIChvZmZzZXQgIT09IG4pIHtcbiAgICAgIGNvbnN0IG5leHQgPSB0aGlzLiNidWZmZXJzWzBdXG4gICAgICBjb25zdCB7IGxlbmd0aCB9ID0gbmV4dFxuXG4gICAgICBpZiAobGVuZ3RoICsgb2Zmc2V0ID09PSBuKSB7XG4gICAgICAgIGJ1ZmZlci5zZXQodGhpcy4jYnVmZmVycy5zaGlmdCgpLCBvZmZzZXQpXG4gICAgICAgIGJyZWFrXG4gICAgICB9IGVsc2UgaWYgKGxlbmd0aCArIG9mZnNldCA+IG4pIHtcbiAgICAgICAgYnVmZmVyLnNldChuZXh0LnN1YmFycmF5KDAsIG4gLSBvZmZzZXQpLCBvZmZzZXQpXG4gICAgICAgIHRoaXMuI2J1ZmZlcnNbMF0gPSBuZXh0LnN1YmFycmF5KG4gLSBvZmZzZXQpXG4gICAgICAgIGJyZWFrXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBidWZmZXIuc2V0KHRoaXMuI2J1ZmZlcnMuc2hpZnQoKSwgb2Zmc2V0KVxuICAgICAgICBvZmZzZXQgKz0gbmV4dC5sZW5ndGhcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLiNieXRlT2Zmc2V0IC09IG5cblxuICAgIHJldHVybiBidWZmZXJcbiAgfVxuXG4gIHBhcnNlQ2xvc2VCb2R5IChkYXRhKSB7XG4gICAgYXNzZXJ0KGRhdGEubGVuZ3RoICE9PSAxKVxuXG4gICAgLy8gaHR0cHM6Ly9kYXRhdHJhY2tlci5pZXRmLm9yZy9kb2MvaHRtbC9yZmM2NDU1I3NlY3Rpb24tNy4xLjVcbiAgICAvKiogQHR5cGUge251bWJlcnx1bmRlZmluZWR9ICovXG4gICAgbGV0IGNvZGVcblxuICAgIGlmIChkYXRhLmxlbmd0aCA+PSAyKSB7XG4gICAgICAvLyBfVGhlIFdlYlNvY2tldCBDb25uZWN0aW9uIENsb3NlIENvZGVfIGlzXG4gICAgICAvLyBkZWZpbmVkIGFzIHRoZSBzdGF0dXMgY29kZSAoU2VjdGlvbiA3LjQpIGNvbnRhaW5lZCBpbiB0aGUgZmlyc3QgQ2xvc2VcbiAgICAgIC8vIGNvbnRyb2wgZnJhbWUgcmVjZWl2ZWQgYnkgdGhlIGFwcGxpY2F0aW9uXG4gICAgICBjb2RlID0gZGF0YS5yZWFkVUludDE2QkUoMClcbiAgICB9XG5cbiAgICBpZiAoY29kZSAhPT0gdW5kZWZpbmVkICYmICFpc1ZhbGlkU3RhdHVzQ29kZShjb2RlKSkge1xuICAgICAgcmV0dXJuIHsgY29kZTogMTAwMiwgcmVhc29uOiAnSW52YWxpZCBzdGF0dXMgY29kZScsIGVycm9yOiB0cnVlIH1cbiAgICB9XG5cbiAgICAvLyBodHRwczovL2RhdGF0cmFja2VyLmlldGYub3JnL2RvYy9odG1sL3JmYzY0NTUjc2VjdGlvbi03LjEuNlxuICAgIC8qKiBAdHlwZSB7QnVmZmVyfSAqL1xuICAgIGxldCByZWFzb24gPSBkYXRhLnN1YmFycmF5KDIpXG5cbiAgICAvLyBSZW1vdmUgQk9NXG4gICAgaWYgKHJlYXNvblswXSA9PT0gMHhFRiAmJiByZWFzb25bMV0gPT09IDB4QkIgJiYgcmVhc29uWzJdID09PSAweEJGKSB7XG4gICAgICByZWFzb24gPSByZWFzb24uc3ViYXJyYXkoMylcbiAgICB9XG5cbiAgICB0cnkge1xuICAgICAgcmVhc29uID0gdXRmOERlY29kZShyZWFzb24pXG4gICAgfSBjYXRjaCB7XG4gICAgICByZXR1cm4geyBjb2RlOiAxMDA3LCByZWFzb246ICdJbnZhbGlkIFVURi04JywgZXJyb3I6IHRydWUgfVxuICAgIH1cblxuICAgIHJldHVybiB7IGNvZGUsIHJlYXNvbiwgZXJyb3I6IGZhbHNlIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBQYXJzZXMgY29udHJvbCBmcmFtZXMuXG4gICAqIEBwYXJhbSB7QnVmZmVyfSBib2R5XG4gICAqL1xuICBwYXJzZUNvbnRyb2xGcmFtZSAoYm9keSkge1xuICAgIGNvbnN0IHsgb3Bjb2RlLCBwYXlsb2FkTGVuZ3RoIH0gPSB0aGlzLiNpbmZvXG5cbiAgICBpZiAob3Bjb2RlID09PSBvcGNvZGVzLkNMT1NFKSB7XG4gICAgICBpZiAocGF5bG9hZExlbmd0aCA9PT0gMSkge1xuICAgICAgICBmYWlsV2Vic29ja2V0Q29ubmVjdGlvbih0aGlzLndzLCAnUmVjZWl2ZWQgY2xvc2UgZnJhbWUgd2l0aCBhIDEtYnl0ZSBib2R5LicpXG4gICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgfVxuXG4gICAgICB0aGlzLiNpbmZvLmNsb3NlSW5mbyA9IHRoaXMucGFyc2VDbG9zZUJvZHkoYm9keSlcblxuICAgICAgaWYgKHRoaXMuI2luZm8uY2xvc2VJbmZvLmVycm9yKSB7XG4gICAgICAgIGNvbnN0IHsgY29kZSwgcmVhc29uIH0gPSB0aGlzLiNpbmZvLmNsb3NlSW5mb1xuXG4gICAgICAgIGNsb3NlV2ViU29ja2V0Q29ubmVjdGlvbih0aGlzLndzLCBjb2RlLCByZWFzb24sIHJlYXNvbi5sZW5ndGgpXG4gICAgICAgIGZhaWxXZWJzb2NrZXRDb25uZWN0aW9uKHRoaXMud3MsIHJlYXNvbilcbiAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLndzW2tTZW50Q2xvc2VdICE9PSBzZW50Q2xvc2VGcmFtZVN0YXRlLlNFTlQpIHtcbiAgICAgICAgLy8gSWYgYW4gZW5kcG9pbnQgcmVjZWl2ZXMgYSBDbG9zZSBmcmFtZSBhbmQgZGlkIG5vdCBwcmV2aW91c2x5IHNlbmQgYVxuICAgICAgICAvLyBDbG9zZSBmcmFtZSwgdGhlIGVuZHBvaW50IE1VU1Qgc2VuZCBhIENsb3NlIGZyYW1lIGluIHJlc3BvbnNlLiAgKFdoZW5cbiAgICAgICAgLy8gc2VuZGluZyBhIENsb3NlIGZyYW1lIGluIHJlc3BvbnNlLCB0aGUgZW5kcG9pbnQgdHlwaWNhbGx5IGVjaG9zIHRoZVxuICAgICAgICAvLyBzdGF0dXMgY29kZSBpdCByZWNlaXZlZC4pXG4gICAgICAgIGxldCBib2R5ID0gZW1wdHlCdWZmZXJcbiAgICAgICAgaWYgKHRoaXMuI2luZm8uY2xvc2VJbmZvLmNvZGUpIHtcbiAgICAgICAgICBib2R5ID0gQnVmZmVyLmFsbG9jVW5zYWZlKDIpXG4gICAgICAgICAgYm9keS53cml0ZVVJbnQxNkJFKHRoaXMuI2luZm8uY2xvc2VJbmZvLmNvZGUsIDApXG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgY2xvc2VGcmFtZSA9IG5ldyBXZWJzb2NrZXRGcmFtZVNlbmQoYm9keSlcblxuICAgICAgICB0aGlzLndzW2tSZXNwb25zZV0uc29ja2V0LndyaXRlKFxuICAgICAgICAgIGNsb3NlRnJhbWUuY3JlYXRlRnJhbWUob3Bjb2Rlcy5DTE9TRSksXG4gICAgICAgICAgKGVycikgPT4ge1xuICAgICAgICAgICAgaWYgKCFlcnIpIHtcbiAgICAgICAgICAgICAgdGhpcy53c1trU2VudENsb3NlXSA9IHNlbnRDbG9zZUZyYW1lU3RhdGUuU0VOVFxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgKVxuICAgICAgfVxuXG4gICAgICAvLyBVcG9uIGVpdGhlciBzZW5kaW5nIG9yIHJlY2VpdmluZyBhIENsb3NlIGNvbnRyb2wgZnJhbWUsIGl0IGlzIHNhaWRcbiAgICAgIC8vIHRoYXQgX1RoZSBXZWJTb2NrZXQgQ2xvc2luZyBIYW5kc2hha2UgaXMgU3RhcnRlZF8gYW5kIHRoYXQgdGhlXG4gICAgICAvLyBXZWJTb2NrZXQgY29ubmVjdGlvbiBpcyBpbiB0aGUgQ0xPU0lORyBzdGF0ZS5cbiAgICAgIHRoaXMud3Nba1JlYWR5U3RhdGVdID0gc3RhdGVzLkNMT1NJTkdcbiAgICAgIHRoaXMud3Nba1JlY2VpdmVkQ2xvc2VdID0gdHJ1ZVxuXG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9IGVsc2UgaWYgKG9wY29kZSA9PT0gb3Bjb2Rlcy5QSU5HKSB7XG4gICAgICAvLyBVcG9uIHJlY2VpcHQgb2YgYSBQaW5nIGZyYW1lLCBhbiBlbmRwb2ludCBNVVNUIHNlbmQgYSBQb25nIGZyYW1lIGluXG4gICAgICAvLyByZXNwb25zZSwgdW5sZXNzIGl0IGFscmVhZHkgcmVjZWl2ZWQgYSBDbG9zZSBmcmFtZS5cbiAgICAgIC8vIEEgUG9uZyBmcmFtZSBzZW50IGluIHJlc3BvbnNlIHRvIGEgUGluZyBmcmFtZSBtdXN0IGhhdmUgaWRlbnRpY2FsXG4gICAgICAvLyBcIkFwcGxpY2F0aW9uIGRhdGFcIlxuXG4gICAgICBpZiAoIXRoaXMud3Nba1JlY2VpdmVkQ2xvc2VdKSB7XG4gICAgICAgIGNvbnN0IGZyYW1lID0gbmV3IFdlYnNvY2tldEZyYW1lU2VuZChib2R5KVxuXG4gICAgICAgIHRoaXMud3Nba1Jlc3BvbnNlXS5zb2NrZXQud3JpdGUoZnJhbWUuY3JlYXRlRnJhbWUob3Bjb2Rlcy5QT05HKSlcblxuICAgICAgICBpZiAoY2hhbm5lbHMucGluZy5oYXNTdWJzY3JpYmVycykge1xuICAgICAgICAgIGNoYW5uZWxzLnBpbmcucHVibGlzaCh7XG4gICAgICAgICAgICBwYXlsb2FkOiBib2R5XG4gICAgICAgICAgfSlcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSBpZiAob3Bjb2RlID09PSBvcGNvZGVzLlBPTkcpIHtcbiAgICAgIC8vIEEgUG9uZyBmcmFtZSBNQVkgYmUgc2VudCB1bnNvbGljaXRlZC4gIFRoaXMgc2VydmVzIGFzIGFcbiAgICAgIC8vIHVuaWRpcmVjdGlvbmFsIGhlYXJ0YmVhdC4gIEEgcmVzcG9uc2UgdG8gYW4gdW5zb2xpY2l0ZWQgUG9uZyBmcmFtZSBpc1xuICAgICAgLy8gbm90IGV4cGVjdGVkLlxuXG4gICAgICBpZiAoY2hhbm5lbHMucG9uZy5oYXNTdWJzY3JpYmVycykge1xuICAgICAgICBjaGFubmVscy5wb25nLnB1Ymxpc2goe1xuICAgICAgICAgIHBheWxvYWQ6IGJvZHlcbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdHJ1ZVxuICB9XG5cbiAgZ2V0IGNsb3NpbmdJbmZvICgpIHtcbiAgICByZXR1cm4gdGhpcy4jaW5mby5jbG9zZUluZm9cbiAgfVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgQnl0ZVBhcnNlclxufVxuIiwgIid1c2Ugc3RyaWN0J1xuXG5jb25zdCB7IFdlYnNvY2tldEZyYW1lU2VuZCB9ID0gcmVxdWlyZSgnLi9mcmFtZScpXG5jb25zdCB7IG9wY29kZXMsIHNlbmRIaW50cyB9ID0gcmVxdWlyZSgnLi9jb25zdGFudHMnKVxuY29uc3QgRml4ZWRRdWV1ZSA9IHJlcXVpcmUoJy4uLy4uL2Rpc3BhdGNoZXIvZml4ZWQtcXVldWUnKVxuXG4vKiogQHR5cGUge3R5cGVvZiBVaW50OEFycmF5fSAqL1xuY29uc3QgRmFzdEJ1ZmZlciA9IEJ1ZmZlcltTeW1ib2wuc3BlY2llc11cblxuLyoqXG4gKiBAdHlwZWRlZiB7b2JqZWN0fSBTZW5kUXVldWVOb2RlXG4gKiBAcHJvcGVydHkge1Byb21pc2U8dm9pZD4gfCBudWxsfSBwcm9taXNlXG4gKiBAcHJvcGVydHkgeygoLi4uYXJnczogYW55W10pID0+IGFueSl9IGNhbGxiYWNrXG4gKiBAcHJvcGVydHkge0J1ZmZlciB8IG51bGx9IGZyYW1lXG4gKi9cblxuY2xhc3MgU2VuZFF1ZXVlIHtcbiAgLyoqXG4gICAqIEB0eXBlIHtGaXhlZFF1ZXVlfVxuICAgKi9cbiAgI3F1ZXVlID0gbmV3IEZpeGVkUXVldWUoKVxuXG4gIC8qKlxuICAgKiBAdHlwZSB7Ym9vbGVhbn1cbiAgICovXG4gICNydW5uaW5nID0gZmFsc2VcblxuICAvKiogQHR5cGUge2ltcG9ydCgnbm9kZTpuZXQnKS5Tb2NrZXR9ICovXG4gICNzb2NrZXRcblxuICBjb25zdHJ1Y3RvciAoc29ja2V0KSB7XG4gICAgdGhpcy4jc29ja2V0ID0gc29ja2V0XG4gIH1cblxuICBhZGQgKGl0ZW0sIGNiLCBoaW50KSB7XG4gICAgaWYgKGhpbnQgIT09IHNlbmRIaW50cy5ibG9iKSB7XG4gICAgICBjb25zdCBmcmFtZSA9IGNyZWF0ZUZyYW1lKGl0ZW0sIGhpbnQpXG4gICAgICBpZiAoIXRoaXMuI3J1bm5pbmcpIHtcbiAgICAgICAgLy8gZmFzdC1wYXRoXG4gICAgICAgIHRoaXMuI3NvY2tldC53cml0ZShmcmFtZSwgY2IpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvKiogQHR5cGUge1NlbmRRdWV1ZU5vZGV9ICovXG4gICAgICAgIGNvbnN0IG5vZGUgPSB7XG4gICAgICAgICAgcHJvbWlzZTogbnVsbCxcbiAgICAgICAgICBjYWxsYmFjazogY2IsXG4gICAgICAgICAgZnJhbWVcbiAgICAgICAgfVxuICAgICAgICB0aGlzLiNxdWV1ZS5wdXNoKG5vZGUpXG4gICAgICB9XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICAvKiogQHR5cGUge1NlbmRRdWV1ZU5vZGV9ICovXG4gICAgY29uc3Qgbm9kZSA9IHtcbiAgICAgIHByb21pc2U6IGl0ZW0uYXJyYXlCdWZmZXIoKS50aGVuKChhYikgPT4ge1xuICAgICAgICBub2RlLnByb21pc2UgPSBudWxsXG4gICAgICAgIG5vZGUuZnJhbWUgPSBjcmVhdGVGcmFtZShhYiwgaGludClcbiAgICAgIH0pLFxuICAgICAgY2FsbGJhY2s6IGNiLFxuICAgICAgZnJhbWU6IG51bGxcbiAgICB9XG5cbiAgICB0aGlzLiNxdWV1ZS5wdXNoKG5vZGUpXG5cbiAgICBpZiAoIXRoaXMuI3J1bm5pbmcpIHtcbiAgICAgIHRoaXMuI3J1bigpXG4gICAgfVxuICB9XG5cbiAgYXN5bmMgI3J1biAoKSB7XG4gICAgdGhpcy4jcnVubmluZyA9IHRydWVcbiAgICBjb25zdCBxdWV1ZSA9IHRoaXMuI3F1ZXVlXG4gICAgd2hpbGUgKCFxdWV1ZS5pc0VtcHR5KCkpIHtcbiAgICAgIGNvbnN0IG5vZGUgPSBxdWV1ZS5zaGlmdCgpXG4gICAgICAvLyB3YWl0IHBlbmRpbmcgcHJvbWlzZVxuICAgICAgaWYgKG5vZGUucHJvbWlzZSAhPT0gbnVsbCkge1xuICAgICAgICBhd2FpdCBub2RlLnByb21pc2VcbiAgICAgIH1cbiAgICAgIC8vIHdyaXRlXG4gICAgICB0aGlzLiNzb2NrZXQud3JpdGUobm9kZS5mcmFtZSwgbm9kZS5jYWxsYmFjaylcbiAgICAgIC8vIGNsZWFudXBcbiAgICAgIG5vZGUuY2FsbGJhY2sgPSBub2RlLmZyYW1lID0gbnVsbFxuICAgIH1cbiAgICB0aGlzLiNydW5uaW5nID0gZmFsc2VcbiAgfVxufVxuXG5mdW5jdGlvbiBjcmVhdGVGcmFtZSAoZGF0YSwgaGludCkge1xuICByZXR1cm4gbmV3IFdlYnNvY2tldEZyYW1lU2VuZCh0b0J1ZmZlcihkYXRhLCBoaW50KSkuY3JlYXRlRnJhbWUoaGludCA9PT0gc2VuZEhpbnRzLnN0cmluZyA/IG9wY29kZXMuVEVYVCA6IG9wY29kZXMuQklOQVJZKVxufVxuXG5mdW5jdGlvbiB0b0J1ZmZlciAoZGF0YSwgaGludCkge1xuICBzd2l0Y2ggKGhpbnQpIHtcbiAgICBjYXNlIHNlbmRIaW50cy5zdHJpbmc6XG4gICAgICByZXR1cm4gQnVmZmVyLmZyb20oZGF0YSlcbiAgICBjYXNlIHNlbmRIaW50cy5hcnJheUJ1ZmZlcjpcbiAgICBjYXNlIHNlbmRIaW50cy5ibG9iOlxuICAgICAgcmV0dXJuIG5ldyBGYXN0QnVmZmVyKGRhdGEpXG4gICAgY2FzZSBzZW5kSGludHMudHlwZWRBcnJheTpcbiAgICAgIHJldHVybiBuZXcgRmFzdEJ1ZmZlcihkYXRhLmJ1ZmZlciwgZGF0YS5ieXRlT2Zmc2V0LCBkYXRhLmJ5dGVMZW5ndGgpXG4gIH1cbn1cblxubW9kdWxlLmV4cG9ydHMgPSB7IFNlbmRRdWV1ZSB9XG4iLCAiJ3VzZSBzdHJpY3QnXG5cbmNvbnN0IHsgd2ViaWRsIH0gPSByZXF1aXJlKCcuLi9mZXRjaC93ZWJpZGwnKVxuY29uc3QgeyBVUkxTZXJpYWxpemVyIH0gPSByZXF1aXJlKCcuLi9mZXRjaC9kYXRhLXVybCcpXG5jb25zdCB7IGVudmlyb25tZW50U2V0dGluZ3NPYmplY3QgfSA9IHJlcXVpcmUoJy4uL2ZldGNoL3V0aWwnKVxuY29uc3QgeyBzdGF0aWNQcm9wZXJ0eURlc2NyaXB0b3JzLCBzdGF0ZXMsIHNlbnRDbG9zZUZyYW1lU3RhdGUsIHNlbmRIaW50cyB9ID0gcmVxdWlyZSgnLi9jb25zdGFudHMnKVxuY29uc3Qge1xuICBrV2ViU29ja2V0VVJMLFxuICBrUmVhZHlTdGF0ZSxcbiAga0NvbnRyb2xsZXIsXG4gIGtCaW5hcnlUeXBlLFxuICBrUmVzcG9uc2UsXG4gIGtTZW50Q2xvc2UsXG4gIGtCeXRlUGFyc2VyXG59ID0gcmVxdWlyZSgnLi9zeW1ib2xzJylcbmNvbnN0IHtcbiAgaXNDb25uZWN0aW5nLFxuICBpc0VzdGFibGlzaGVkLFxuICBpc0Nsb3NpbmcsXG4gIGlzVmFsaWRTdWJwcm90b2NvbCxcbiAgZmlyZUV2ZW50XG59ID0gcmVxdWlyZSgnLi91dGlsJylcbmNvbnN0IHsgZXN0YWJsaXNoV2ViU29ja2V0Q29ubmVjdGlvbiwgY2xvc2VXZWJTb2NrZXRDb25uZWN0aW9uIH0gPSByZXF1aXJlKCcuL2Nvbm5lY3Rpb24nKVxuY29uc3QgeyBCeXRlUGFyc2VyIH0gPSByZXF1aXJlKCcuL3JlY2VpdmVyJylcbmNvbnN0IHsga0VudW1lcmFibGVQcm9wZXJ0eSwgaXNCbG9iTGlrZSB9ID0gcmVxdWlyZSgnLi4vLi4vY29yZS91dGlsJylcbmNvbnN0IHsgZ2V0R2xvYmFsRGlzcGF0Y2hlciB9ID0gcmVxdWlyZSgnLi4vLi4vZ2xvYmFsJylcbmNvbnN0IHsgdHlwZXMgfSA9IHJlcXVpcmUoJ25vZGU6dXRpbCcpXG5jb25zdCB7IEVycm9yRXZlbnQsIENsb3NlRXZlbnQgfSA9IHJlcXVpcmUoJy4vZXZlbnRzJylcbmNvbnN0IHsgU2VuZFF1ZXVlIH0gPSByZXF1aXJlKCcuL3NlbmRlcicpXG5cbi8vIGh0dHBzOi8vd2Vic29ja2V0cy5zcGVjLndoYXR3Zy5vcmcvI2ludGVyZmFjZS1kZWZpbml0aW9uXG5jbGFzcyBXZWJTb2NrZXQgZXh0ZW5kcyBFdmVudFRhcmdldCB7XG4gICNldmVudHMgPSB7XG4gICAgb3BlbjogbnVsbCxcbiAgICBlcnJvcjogbnVsbCxcbiAgICBjbG9zZTogbnVsbCxcbiAgICBtZXNzYWdlOiBudWxsXG4gIH1cblxuICAjYnVmZmVyZWRBbW91bnQgPSAwXG4gICNwcm90b2NvbCA9ICcnXG4gICNleHRlbnNpb25zID0gJydcblxuICAvKiogQHR5cGUge1NlbmRRdWV1ZX0gKi9cbiAgI3NlbmRRdWV1ZVxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gdXJsXG4gICAqIEBwYXJhbSB7c3RyaW5nfHN0cmluZ1tdfSBwcm90b2NvbHNcbiAgICovXG4gIGNvbnN0cnVjdG9yICh1cmwsIHByb3RvY29scyA9IFtdKSB7XG4gICAgc3VwZXIoKVxuXG4gICAgd2ViaWRsLnV0aWwubWFya0FzVW5jbG9uZWFibGUodGhpcylcblxuICAgIGNvbnN0IHByZWZpeCA9ICdXZWJTb2NrZXQgY29uc3RydWN0b3InXG4gICAgd2ViaWRsLmFyZ3VtZW50TGVuZ3RoQ2hlY2soYXJndW1lbnRzLCAxLCBwcmVmaXgpXG5cbiAgICBjb25zdCBvcHRpb25zID0gd2ViaWRsLmNvbnZlcnRlcnNbJ0RPTVN0cmluZyBvciBzZXF1ZW5jZTxET01TdHJpbmc+IG9yIFdlYlNvY2tldEluaXQnXShwcm90b2NvbHMsIHByZWZpeCwgJ29wdGlvbnMnKVxuXG4gICAgdXJsID0gd2ViaWRsLmNvbnZlcnRlcnMuVVNWU3RyaW5nKHVybCwgcHJlZml4LCAndXJsJylcbiAgICBwcm90b2NvbHMgPSBvcHRpb25zLnByb3RvY29sc1xuXG4gICAgLy8gMS4gTGV0IGJhc2VVUkwgYmUgdGhpcydzIHJlbGV2YW50IHNldHRpbmdzIG9iamVjdCdzIEFQSSBiYXNlIFVSTC5cbiAgICBjb25zdCBiYXNlVVJMID0gZW52aXJvbm1lbnRTZXR0aW5nc09iamVjdC5zZXR0aW5nc09iamVjdC5iYXNlVXJsXG5cbiAgICAvLyAxLiBMZXQgdXJsUmVjb3JkIGJlIHRoZSByZXN1bHQgb2YgYXBwbHlpbmcgdGhlIFVSTCBwYXJzZXIgdG8gdXJsIHdpdGggYmFzZVVSTC5cbiAgICBsZXQgdXJsUmVjb3JkXG5cbiAgICB0cnkge1xuICAgICAgdXJsUmVjb3JkID0gbmV3IFVSTCh1cmwsIGJhc2VVUkwpXG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgLy8gMy4gSWYgdXJsUmVjb3JkIGlzIGZhaWx1cmUsIHRoZW4gdGhyb3cgYSBcIlN5bnRheEVycm9yXCIgRE9NRXhjZXB0aW9uLlxuICAgICAgdGhyb3cgbmV3IERPTUV4Y2VwdGlvbihlLCAnU3ludGF4RXJyb3InKVxuICAgIH1cblxuICAgIC8vIDQuIElmIHVybFJlY29yZFx1MjAxOXMgc2NoZW1lIGlzIFwiaHR0cFwiLCB0aGVuIHNldCB1cmxSZWNvcmRcdTIwMTlzIHNjaGVtZSB0byBcIndzXCIuXG4gICAgaWYgKHVybFJlY29yZC5wcm90b2NvbCA9PT0gJ2h0dHA6Jykge1xuICAgICAgdXJsUmVjb3JkLnByb3RvY29sID0gJ3dzOidcbiAgICB9IGVsc2UgaWYgKHVybFJlY29yZC5wcm90b2NvbCA9PT0gJ2h0dHBzOicpIHtcbiAgICAgIC8vIDUuIE90aGVyd2lzZSwgaWYgdXJsUmVjb3JkXHUyMDE5cyBzY2hlbWUgaXMgXCJodHRwc1wiLCBzZXQgdXJsUmVjb3JkXHUyMDE5cyBzY2hlbWUgdG8gXCJ3c3NcIi5cbiAgICAgIHVybFJlY29yZC5wcm90b2NvbCA9ICd3c3M6J1xuICAgIH1cblxuICAgIC8vIDYuIElmIHVybFJlY29yZFx1MjAxOXMgc2NoZW1lIGlzIG5vdCBcIndzXCIgb3IgXCJ3c3NcIiwgdGhlbiB0aHJvdyBhIFwiU3ludGF4RXJyb3JcIiBET01FeGNlcHRpb24uXG4gICAgaWYgKHVybFJlY29yZC5wcm90b2NvbCAhPT0gJ3dzOicgJiYgdXJsUmVjb3JkLnByb3RvY29sICE9PSAnd3NzOicpIHtcbiAgICAgIHRocm93IG5ldyBET01FeGNlcHRpb24oXG4gICAgICAgIGBFeHBlY3RlZCBhIHdzOiBvciB3c3M6IHByb3RvY29sLCBnb3QgJHt1cmxSZWNvcmQucHJvdG9jb2x9YCxcbiAgICAgICAgJ1N5bnRheEVycm9yJ1xuICAgICAgKVxuICAgIH1cblxuICAgIC8vIDcuIElmIHVybFJlY29yZFx1MjAxOXMgZnJhZ21lbnQgaXMgbm9uLW51bGwsIHRoZW4gdGhyb3cgYSBcIlN5bnRheEVycm9yXCJcbiAgICAvLyAgICBET01FeGNlcHRpb24uXG4gICAgaWYgKHVybFJlY29yZC5oYXNoIHx8IHVybFJlY29yZC5ocmVmLmVuZHNXaXRoKCcjJykpIHtcbiAgICAgIHRocm93IG5ldyBET01FeGNlcHRpb24oJ0dvdCBmcmFnbWVudCcsICdTeW50YXhFcnJvcicpXG4gICAgfVxuXG4gICAgLy8gOC4gSWYgcHJvdG9jb2xzIGlzIGEgc3RyaW5nLCBzZXQgcHJvdG9jb2xzIHRvIGEgc2VxdWVuY2UgY29uc2lzdGluZ1xuICAgIC8vICAgIG9mIGp1c3QgdGhhdCBzdHJpbmcuXG4gICAgaWYgKHR5cGVvZiBwcm90b2NvbHMgPT09ICdzdHJpbmcnKSB7XG4gICAgICBwcm90b2NvbHMgPSBbcHJvdG9jb2xzXVxuICAgIH1cblxuICAgIC8vIDkuIElmIGFueSBvZiB0aGUgdmFsdWVzIGluIHByb3RvY29scyBvY2N1ciBtb3JlIHRoYW4gb25jZSBvciBvdGhlcndpc2VcbiAgICAvLyAgICBmYWlsIHRvIG1hdGNoIHRoZSByZXF1aXJlbWVudHMgZm9yIGVsZW1lbnRzIHRoYXQgY29tcHJpc2UgdGhlIHZhbHVlXG4gICAgLy8gICAgb2YgYFNlYy1XZWJTb2NrZXQtUHJvdG9jb2xgIGZpZWxkcyBhcyBkZWZpbmVkIGJ5IFRoZSBXZWJTb2NrZXRcbiAgICAvLyAgICBwcm90b2NvbCwgdGhlbiB0aHJvdyBhIFwiU3ludGF4RXJyb3JcIiBET01FeGNlcHRpb24uXG4gICAgaWYgKHByb3RvY29scy5sZW5ndGggIT09IG5ldyBTZXQocHJvdG9jb2xzLm1hcChwID0+IHAudG9Mb3dlckNhc2UoKSkpLnNpemUpIHtcbiAgICAgIHRocm93IG5ldyBET01FeGNlcHRpb24oJ0ludmFsaWQgU2VjLVdlYlNvY2tldC1Qcm90b2NvbCB2YWx1ZScsICdTeW50YXhFcnJvcicpXG4gICAgfVxuXG4gICAgaWYgKHByb3RvY29scy5sZW5ndGggPiAwICYmICFwcm90b2NvbHMuZXZlcnkocCA9PiBpc1ZhbGlkU3VicHJvdG9jb2wocCkpKSB7XG4gICAgICB0aHJvdyBuZXcgRE9NRXhjZXB0aW9uKCdJbnZhbGlkIFNlYy1XZWJTb2NrZXQtUHJvdG9jb2wgdmFsdWUnLCAnU3ludGF4RXJyb3InKVxuICAgIH1cblxuICAgIC8vIDEwLiBTZXQgdGhpcydzIHVybCB0byB1cmxSZWNvcmQuXG4gICAgdGhpc1trV2ViU29ja2V0VVJMXSA9IG5ldyBVUkwodXJsUmVjb3JkLmhyZWYpXG5cbiAgICAvLyAxMS4gTGV0IGNsaWVudCBiZSB0aGlzJ3MgcmVsZXZhbnQgc2V0dGluZ3Mgb2JqZWN0LlxuICAgIGNvbnN0IGNsaWVudCA9IGVudmlyb25tZW50U2V0dGluZ3NPYmplY3Quc2V0dGluZ3NPYmplY3RcblxuICAgIC8vIDEyLiBSdW4gdGhpcyBzdGVwIGluIHBhcmFsbGVsOlxuXG4gICAgLy8gICAgMS4gRXN0YWJsaXNoIGEgV2ViU29ja2V0IGNvbm5lY3Rpb24gZ2l2ZW4gdXJsUmVjb3JkLCBwcm90b2NvbHMsXG4gICAgLy8gICAgICAgYW5kIGNsaWVudC5cbiAgICB0aGlzW2tDb250cm9sbGVyXSA9IGVzdGFibGlzaFdlYlNvY2tldENvbm5lY3Rpb24oXG4gICAgICB1cmxSZWNvcmQsXG4gICAgICBwcm90b2NvbHMsXG4gICAgICBjbGllbnQsXG4gICAgICB0aGlzLFxuICAgICAgKHJlc3BvbnNlLCBleHRlbnNpb25zKSA9PiB0aGlzLiNvbkNvbm5lY3Rpb25Fc3RhYmxpc2hlZChyZXNwb25zZSwgZXh0ZW5zaW9ucyksXG4gICAgICBvcHRpb25zXG4gICAgKVxuXG4gICAgLy8gRWFjaCBXZWJTb2NrZXQgb2JqZWN0IGhhcyBhbiBhc3NvY2lhdGVkIHJlYWR5IHN0YXRlLCB3aGljaCBpcyBhXG4gICAgLy8gbnVtYmVyIHJlcHJlc2VudGluZyB0aGUgc3RhdGUgb2YgdGhlIGNvbm5lY3Rpb24uIEluaXRpYWxseSBpdCBtdXN0XG4gICAgLy8gYmUgQ09OTkVDVElORyAoMCkuXG4gICAgdGhpc1trUmVhZHlTdGF0ZV0gPSBXZWJTb2NrZXQuQ09OTkVDVElOR1xuXG4gICAgdGhpc1trU2VudENsb3NlXSA9IHNlbnRDbG9zZUZyYW1lU3RhdGUuTk9UX1NFTlRcblxuICAgIC8vIFRoZSBleHRlbnNpb25zIGF0dHJpYnV0ZSBtdXN0IGluaXRpYWxseSByZXR1cm4gdGhlIGVtcHR5IHN0cmluZy5cblxuICAgIC8vIFRoZSBwcm90b2NvbCBhdHRyaWJ1dGUgbXVzdCBpbml0aWFsbHkgcmV0dXJuIHRoZSBlbXB0eSBzdHJpbmcuXG5cbiAgICAvLyBFYWNoIFdlYlNvY2tldCBvYmplY3QgaGFzIGFuIGFzc29jaWF0ZWQgYmluYXJ5IHR5cGUsIHdoaWNoIGlzIGFcbiAgICAvLyBCaW5hcnlUeXBlLiBJbml0aWFsbHkgaXQgbXVzdCBiZSBcImJsb2JcIi5cbiAgICB0aGlzW2tCaW5hcnlUeXBlXSA9ICdibG9iJ1xuICB9XG5cbiAgLyoqXG4gICAqIEBzZWUgaHR0cHM6Ly93ZWJzb2NrZXRzLnNwZWMud2hhdHdnLm9yZy8jZG9tLXdlYnNvY2tldC1jbG9zZVxuICAgKiBAcGFyYW0ge251bWJlcnx1bmRlZmluZWR9IGNvZGVcbiAgICogQHBhcmFtIHtzdHJpbmd8dW5kZWZpbmVkfSByZWFzb25cbiAgICovXG4gIGNsb3NlIChjb2RlID0gdW5kZWZpbmVkLCByZWFzb24gPSB1bmRlZmluZWQpIHtcbiAgICB3ZWJpZGwuYnJhbmRDaGVjayh0aGlzLCBXZWJTb2NrZXQpXG5cbiAgICBjb25zdCBwcmVmaXggPSAnV2ViU29ja2V0LmNsb3NlJ1xuXG4gICAgaWYgKGNvZGUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgY29kZSA9IHdlYmlkbC5jb252ZXJ0ZXJzWyd1bnNpZ25lZCBzaG9ydCddKGNvZGUsIHByZWZpeCwgJ2NvZGUnLCB7IGNsYW1wOiB0cnVlIH0pXG4gICAgfVxuXG4gICAgaWYgKHJlYXNvbiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICByZWFzb24gPSB3ZWJpZGwuY29udmVydGVycy5VU1ZTdHJpbmcocmVhc29uLCBwcmVmaXgsICdyZWFzb24nKVxuICAgIH1cblxuICAgIC8vIDEuIElmIGNvZGUgaXMgcHJlc2VudCwgYnV0IGlzIG5laXRoZXIgYW4gaW50ZWdlciBlcXVhbCB0byAxMDAwIG5vciBhblxuICAgIC8vICAgIGludGVnZXIgaW4gdGhlIHJhbmdlIDMwMDAgdG8gNDk5OSwgaW5jbHVzaXZlLCB0aHJvdyBhblxuICAgIC8vICAgIFwiSW52YWxpZEFjY2Vzc0Vycm9yXCIgRE9NRXhjZXB0aW9uLlxuICAgIGlmIChjb2RlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGlmIChjb2RlICE9PSAxMDAwICYmIChjb2RlIDwgMzAwMCB8fCBjb2RlID4gNDk5OSkpIHtcbiAgICAgICAgdGhyb3cgbmV3IERPTUV4Y2VwdGlvbignaW52YWxpZCBjb2RlJywgJ0ludmFsaWRBY2Nlc3NFcnJvcicpXG4gICAgICB9XG4gICAgfVxuXG4gICAgbGV0IHJlYXNvbkJ5dGVMZW5ndGggPSAwXG5cbiAgICAvLyAyLiBJZiByZWFzb24gaXMgcHJlc2VudCwgdGhlbiBydW4gdGhlc2Ugc3Vic3RlcHM6XG4gICAgaWYgKHJlYXNvbiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAvLyAxLiBMZXQgcmVhc29uQnl0ZXMgYmUgdGhlIHJlc3VsdCBvZiBlbmNvZGluZyByZWFzb24uXG4gICAgICAvLyAyLiBJZiByZWFzb25CeXRlcyBpcyBsb25nZXIgdGhhbiAxMjMgYnl0ZXMsIHRoZW4gdGhyb3cgYVxuICAgICAgLy8gICAgXCJTeW50YXhFcnJvclwiIERPTUV4Y2VwdGlvbi5cbiAgICAgIHJlYXNvbkJ5dGVMZW5ndGggPSBCdWZmZXIuYnl0ZUxlbmd0aChyZWFzb24pXG5cbiAgICAgIGlmIChyZWFzb25CeXRlTGVuZ3RoID4gMTIzKSB7XG4gICAgICAgIHRocm93IG5ldyBET01FeGNlcHRpb24oXG4gICAgICAgICAgYFJlYXNvbiBtdXN0IGJlIGxlc3MgdGhhbiAxMjMgYnl0ZXM7IHJlY2VpdmVkICR7cmVhc29uQnl0ZUxlbmd0aH1gLFxuICAgICAgICAgICdTeW50YXhFcnJvcidcbiAgICAgICAgKVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIDMuIFJ1biB0aGUgZmlyc3QgbWF0Y2hpbmcgc3RlcHMgZnJvbSB0aGUgZm9sbG93aW5nIGxpc3Q6XG4gICAgY2xvc2VXZWJTb2NrZXRDb25uZWN0aW9uKHRoaXMsIGNvZGUsIHJlYXNvbiwgcmVhc29uQnl0ZUxlbmd0aClcbiAgfVxuXG4gIC8qKlxuICAgKiBAc2VlIGh0dHBzOi8vd2Vic29ja2V0cy5zcGVjLndoYXR3Zy5vcmcvI2RvbS13ZWJzb2NrZXQtc2VuZFxuICAgKiBAcGFyYW0ge05vZGVKUy5UeXBlZEFycmF5fEFycmF5QnVmZmVyfEJsb2J8c3RyaW5nfSBkYXRhXG4gICAqL1xuICBzZW5kIChkYXRhKSB7XG4gICAgd2ViaWRsLmJyYW5kQ2hlY2sodGhpcywgV2ViU29ja2V0KVxuXG4gICAgY29uc3QgcHJlZml4ID0gJ1dlYlNvY2tldC5zZW5kJ1xuICAgIHdlYmlkbC5hcmd1bWVudExlbmd0aENoZWNrKGFyZ3VtZW50cywgMSwgcHJlZml4KVxuXG4gICAgZGF0YSA9IHdlYmlkbC5jb252ZXJ0ZXJzLldlYlNvY2tldFNlbmREYXRhKGRhdGEsIHByZWZpeCwgJ2RhdGEnKVxuXG4gICAgLy8gMS4gSWYgdGhpcydzIHJlYWR5IHN0YXRlIGlzIENPTk5FQ1RJTkcsIHRoZW4gdGhyb3cgYW5cbiAgICAvLyAgICBcIkludmFsaWRTdGF0ZUVycm9yXCIgRE9NRXhjZXB0aW9uLlxuICAgIGlmIChpc0Nvbm5lY3RpbmcodGhpcykpIHtcbiAgICAgIHRocm93IG5ldyBET01FeGNlcHRpb24oJ1NlbnQgYmVmb3JlIGNvbm5lY3RlZC4nLCAnSW52YWxpZFN0YXRlRXJyb3InKVxuICAgIH1cblxuICAgIC8vIDIuIFJ1biB0aGUgYXBwcm9wcmlhdGUgc2V0IG9mIHN0ZXBzIGZyb20gdGhlIGZvbGxvd2luZyBsaXN0OlxuICAgIC8vIGh0dHBzOi8vZGF0YXRyYWNrZXIuaWV0Zi5vcmcvZG9jL2h0bWwvcmZjNjQ1NSNzZWN0aW9uLTYuMVxuICAgIC8vIGh0dHBzOi8vZGF0YXRyYWNrZXIuaWV0Zi5vcmcvZG9jL2h0bWwvcmZjNjQ1NSNzZWN0aW9uLTUuMlxuXG4gICAgaWYgKCFpc0VzdGFibGlzaGVkKHRoaXMpIHx8IGlzQ2xvc2luZyh0aGlzKSkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgLy8gSWYgZGF0YSBpcyBhIHN0cmluZ1xuICAgIGlmICh0eXBlb2YgZGF0YSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIC8vIElmIHRoZSBXZWJTb2NrZXQgY29ubmVjdGlvbiBpcyBlc3RhYmxpc2hlZCBhbmQgdGhlIFdlYlNvY2tldFxuICAgICAgLy8gY2xvc2luZyBoYW5kc2hha2UgaGFzIG5vdCB5ZXQgc3RhcnRlZCwgdGhlbiB0aGUgdXNlciBhZ2VudFxuICAgICAgLy8gbXVzdCBzZW5kIGEgV2ViU29ja2V0IE1lc3NhZ2UgY29tcHJpc2VkIG9mIHRoZSBkYXRhIGFyZ3VtZW50XG4gICAgICAvLyB1c2luZyBhIHRleHQgZnJhbWUgb3Bjb2RlOyBpZiB0aGUgZGF0YSBjYW5ub3QgYmUgc2VudCwgZS5nLlxuICAgICAgLy8gYmVjYXVzZSBpdCB3b3VsZCBuZWVkIHRvIGJlIGJ1ZmZlcmVkIGJ1dCB0aGUgYnVmZmVyIGlzIGZ1bGwsXG4gICAgICAvLyB0aGUgdXNlciBhZ2VudCBtdXN0IGZsYWcgdGhlIFdlYlNvY2tldCBhcyBmdWxsIGFuZCB0aGVuIGNsb3NlXG4gICAgICAvLyB0aGUgV2ViU29ja2V0IGNvbm5lY3Rpb24uIEFueSBpbnZvY2F0aW9uIG9mIHRoaXMgbWV0aG9kIHdpdGggYVxuICAgICAgLy8gc3RyaW5nIGFyZ3VtZW50IHRoYXQgZG9lcyBub3QgdGhyb3cgYW4gZXhjZXB0aW9uIG11c3QgaW5jcmVhc2VcbiAgICAgIC8vIHRoZSBidWZmZXJlZEFtb3VudCBhdHRyaWJ1dGUgYnkgdGhlIG51bWJlciBvZiBieXRlcyBuZWVkZWQgdG9cbiAgICAgIC8vIGV4cHJlc3MgdGhlIGFyZ3VtZW50IGFzIFVURi04LlxuXG4gICAgICBjb25zdCBsZW5ndGggPSBCdWZmZXIuYnl0ZUxlbmd0aChkYXRhKVxuXG4gICAgICB0aGlzLiNidWZmZXJlZEFtb3VudCArPSBsZW5ndGhcbiAgICAgIHRoaXMuI3NlbmRRdWV1ZS5hZGQoZGF0YSwgKCkgPT4ge1xuICAgICAgICB0aGlzLiNidWZmZXJlZEFtb3VudCAtPSBsZW5ndGhcbiAgICAgIH0sIHNlbmRIaW50cy5zdHJpbmcpXG4gICAgfSBlbHNlIGlmICh0eXBlcy5pc0FycmF5QnVmZmVyKGRhdGEpKSB7XG4gICAgICAvLyBJZiB0aGUgV2ViU29ja2V0IGNvbm5lY3Rpb24gaXMgZXN0YWJsaXNoZWQsIGFuZCB0aGUgV2ViU29ja2V0XG4gICAgICAvLyBjbG9zaW5nIGhhbmRzaGFrZSBoYXMgbm90IHlldCBzdGFydGVkLCB0aGVuIHRoZSB1c2VyIGFnZW50IG11c3RcbiAgICAgIC8vIHNlbmQgYSBXZWJTb2NrZXQgTWVzc2FnZSBjb21wcmlzZWQgb2YgZGF0YSB1c2luZyBhIGJpbmFyeSBmcmFtZVxuICAgICAgLy8gb3Bjb2RlOyBpZiB0aGUgZGF0YSBjYW5ub3QgYmUgc2VudCwgZS5nLiBiZWNhdXNlIGl0IHdvdWxkIG5lZWRcbiAgICAgIC8vIHRvIGJlIGJ1ZmZlcmVkIGJ1dCB0aGUgYnVmZmVyIGlzIGZ1bGwsIHRoZSB1c2VyIGFnZW50IG11c3QgZmxhZ1xuICAgICAgLy8gdGhlIFdlYlNvY2tldCBhcyBmdWxsIGFuZCB0aGVuIGNsb3NlIHRoZSBXZWJTb2NrZXQgY29ubmVjdGlvbi5cbiAgICAgIC8vIFRoZSBkYXRhIHRvIGJlIHNlbnQgaXMgdGhlIGRhdGEgc3RvcmVkIGluIHRoZSBidWZmZXIgZGVzY3JpYmVkXG4gICAgICAvLyBieSB0aGUgQXJyYXlCdWZmZXIgb2JqZWN0LiBBbnkgaW52b2NhdGlvbiBvZiB0aGlzIG1ldGhvZCB3aXRoIGFuXG4gICAgICAvLyBBcnJheUJ1ZmZlciBhcmd1bWVudCB0aGF0IGRvZXMgbm90IHRocm93IGFuIGV4Y2VwdGlvbiBtdXN0XG4gICAgICAvLyBpbmNyZWFzZSB0aGUgYnVmZmVyZWRBbW91bnQgYXR0cmlidXRlIGJ5IHRoZSBsZW5ndGggb2YgdGhlXG4gICAgICAvLyBBcnJheUJ1ZmZlciBpbiBieXRlcy5cblxuICAgICAgdGhpcy4jYnVmZmVyZWRBbW91bnQgKz0gZGF0YS5ieXRlTGVuZ3RoXG4gICAgICB0aGlzLiNzZW5kUXVldWUuYWRkKGRhdGEsICgpID0+IHtcbiAgICAgICAgdGhpcy4jYnVmZmVyZWRBbW91bnQgLT0gZGF0YS5ieXRlTGVuZ3RoXG4gICAgICB9LCBzZW5kSGludHMuYXJyYXlCdWZmZXIpXG4gICAgfSBlbHNlIGlmIChBcnJheUJ1ZmZlci5pc1ZpZXcoZGF0YSkpIHtcbiAgICAgIC8vIElmIHRoZSBXZWJTb2NrZXQgY29ubmVjdGlvbiBpcyBlc3RhYmxpc2hlZCwgYW5kIHRoZSBXZWJTb2NrZXRcbiAgICAgIC8vIGNsb3NpbmcgaGFuZHNoYWtlIGhhcyBub3QgeWV0IHN0YXJ0ZWQsIHRoZW4gdGhlIHVzZXIgYWdlbnQgbXVzdFxuICAgICAgLy8gc2VuZCBhIFdlYlNvY2tldCBNZXNzYWdlIGNvbXByaXNlZCBvZiBkYXRhIHVzaW5nIGEgYmluYXJ5IGZyYW1lXG4gICAgICAvLyBvcGNvZGU7IGlmIHRoZSBkYXRhIGNhbm5vdCBiZSBzZW50LCBlLmcuIGJlY2F1c2UgaXQgd291bGQgbmVlZCB0b1xuICAgICAgLy8gYmUgYnVmZmVyZWQgYnV0IHRoZSBidWZmZXIgaXMgZnVsbCwgdGhlIHVzZXIgYWdlbnQgbXVzdCBmbGFnIHRoZVxuICAgICAgLy8gV2ViU29ja2V0IGFzIGZ1bGwgYW5kIHRoZW4gY2xvc2UgdGhlIFdlYlNvY2tldCBjb25uZWN0aW9uLiBUaGVcbiAgICAgIC8vIGRhdGEgdG8gYmUgc2VudCBpcyB0aGUgZGF0YSBzdG9yZWQgaW4gdGhlIHNlY3Rpb24gb2YgdGhlIGJ1ZmZlclxuICAgICAgLy8gZGVzY3JpYmVkIGJ5IHRoZSBBcnJheUJ1ZmZlciBvYmplY3QgdGhhdCBkYXRhIHJlZmVyZW5jZXMuIEFueVxuICAgICAgLy8gaW52b2NhdGlvbiBvZiB0aGlzIG1ldGhvZCB3aXRoIHRoaXMga2luZCBvZiBhcmd1bWVudCB0aGF0IGRvZXNcbiAgICAgIC8vIG5vdCB0aHJvdyBhbiBleGNlcHRpb24gbXVzdCBpbmNyZWFzZSB0aGUgYnVmZmVyZWRBbW91bnQgYXR0cmlidXRlXG4gICAgICAvLyBieSB0aGUgbGVuZ3RoIG9mIGRhdGFcdTIwMTlzIGJ1ZmZlciBpbiBieXRlcy5cblxuICAgICAgdGhpcy4jYnVmZmVyZWRBbW91bnQgKz0gZGF0YS5ieXRlTGVuZ3RoXG4gICAgICB0aGlzLiNzZW5kUXVldWUuYWRkKGRhdGEsICgpID0+IHtcbiAgICAgICAgdGhpcy4jYnVmZmVyZWRBbW91bnQgLT0gZGF0YS5ieXRlTGVuZ3RoXG4gICAgICB9LCBzZW5kSGludHMudHlwZWRBcnJheSlcbiAgICB9IGVsc2UgaWYgKGlzQmxvYkxpa2UoZGF0YSkpIHtcbiAgICAgIC8vIElmIHRoZSBXZWJTb2NrZXQgY29ubmVjdGlvbiBpcyBlc3RhYmxpc2hlZCwgYW5kIHRoZSBXZWJTb2NrZXRcbiAgICAgIC8vIGNsb3NpbmcgaGFuZHNoYWtlIGhhcyBub3QgeWV0IHN0YXJ0ZWQsIHRoZW4gdGhlIHVzZXIgYWdlbnQgbXVzdFxuICAgICAgLy8gc2VuZCBhIFdlYlNvY2tldCBNZXNzYWdlIGNvbXByaXNlZCBvZiBkYXRhIHVzaW5nIGEgYmluYXJ5IGZyYW1lXG4gICAgICAvLyBvcGNvZGU7IGlmIHRoZSBkYXRhIGNhbm5vdCBiZSBzZW50LCBlLmcuIGJlY2F1c2UgaXQgd291bGQgbmVlZCB0b1xuICAgICAgLy8gYmUgYnVmZmVyZWQgYnV0IHRoZSBidWZmZXIgaXMgZnVsbCwgdGhlIHVzZXIgYWdlbnQgbXVzdCBmbGFnIHRoZVxuICAgICAgLy8gV2ViU29ja2V0IGFzIGZ1bGwgYW5kIHRoZW4gY2xvc2UgdGhlIFdlYlNvY2tldCBjb25uZWN0aW9uLiBUaGUgZGF0YVxuICAgICAgLy8gdG8gYmUgc2VudCBpcyB0aGUgcmF3IGRhdGEgcmVwcmVzZW50ZWQgYnkgdGhlIEJsb2Igb2JqZWN0LiBBbnlcbiAgICAgIC8vIGludm9jYXRpb24gb2YgdGhpcyBtZXRob2Qgd2l0aCBhIEJsb2IgYXJndW1lbnQgdGhhdCBkb2VzIG5vdCB0aHJvd1xuICAgICAgLy8gYW4gZXhjZXB0aW9uIG11c3QgaW5jcmVhc2UgdGhlIGJ1ZmZlcmVkQW1vdW50IGF0dHJpYnV0ZSBieSB0aGUgc2l6ZVxuICAgICAgLy8gb2YgdGhlIEJsb2Igb2JqZWN0XHUyMDE5cyByYXcgZGF0YSwgaW4gYnl0ZXMuXG5cbiAgICAgIHRoaXMuI2J1ZmZlcmVkQW1vdW50ICs9IGRhdGEuc2l6ZVxuICAgICAgdGhpcy4jc2VuZFF1ZXVlLmFkZChkYXRhLCAoKSA9PiB7XG4gICAgICAgIHRoaXMuI2J1ZmZlcmVkQW1vdW50IC09IGRhdGEuc2l6ZVxuICAgICAgfSwgc2VuZEhpbnRzLmJsb2IpXG4gICAgfVxuICB9XG5cbiAgZ2V0IHJlYWR5U3RhdGUgKCkge1xuICAgIHdlYmlkbC5icmFuZENoZWNrKHRoaXMsIFdlYlNvY2tldClcblxuICAgIC8vIFRoZSByZWFkeVN0YXRlIGdldHRlciBzdGVwcyBhcmUgdG8gcmV0dXJuIHRoaXMncyByZWFkeSBzdGF0ZS5cbiAgICByZXR1cm4gdGhpc1trUmVhZHlTdGF0ZV1cbiAgfVxuXG4gIGdldCBidWZmZXJlZEFtb3VudCAoKSB7XG4gICAgd2ViaWRsLmJyYW5kQ2hlY2sodGhpcywgV2ViU29ja2V0KVxuXG4gICAgcmV0dXJuIHRoaXMuI2J1ZmZlcmVkQW1vdW50XG4gIH1cblxuICBnZXQgdXJsICgpIHtcbiAgICB3ZWJpZGwuYnJhbmRDaGVjayh0aGlzLCBXZWJTb2NrZXQpXG5cbiAgICAvLyBUaGUgdXJsIGdldHRlciBzdGVwcyBhcmUgdG8gcmV0dXJuIHRoaXMncyB1cmwsIHNlcmlhbGl6ZWQuXG4gICAgcmV0dXJuIFVSTFNlcmlhbGl6ZXIodGhpc1trV2ViU29ja2V0VVJMXSlcbiAgfVxuXG4gIGdldCBleHRlbnNpb25zICgpIHtcbiAgICB3ZWJpZGwuYnJhbmRDaGVjayh0aGlzLCBXZWJTb2NrZXQpXG5cbiAgICByZXR1cm4gdGhpcy4jZXh0ZW5zaW9uc1xuICB9XG5cbiAgZ2V0IHByb3RvY29sICgpIHtcbiAgICB3ZWJpZGwuYnJhbmRDaGVjayh0aGlzLCBXZWJTb2NrZXQpXG5cbiAgICByZXR1cm4gdGhpcy4jcHJvdG9jb2xcbiAgfVxuXG4gIGdldCBvbm9wZW4gKCkge1xuICAgIHdlYmlkbC5icmFuZENoZWNrKHRoaXMsIFdlYlNvY2tldClcblxuICAgIHJldHVybiB0aGlzLiNldmVudHMub3BlblxuICB9XG5cbiAgc2V0IG9ub3BlbiAoZm4pIHtcbiAgICB3ZWJpZGwuYnJhbmRDaGVjayh0aGlzLCBXZWJTb2NrZXQpXG5cbiAgICBpZiAodGhpcy4jZXZlbnRzLm9wZW4pIHtcbiAgICAgIHRoaXMucmVtb3ZlRXZlbnRMaXN0ZW5lcignb3BlbicsIHRoaXMuI2V2ZW50cy5vcGVuKVxuICAgIH1cblxuICAgIGlmICh0eXBlb2YgZm4gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHRoaXMuI2V2ZW50cy5vcGVuID0gZm5cbiAgICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcignb3BlbicsIGZuKVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLiNldmVudHMub3BlbiA9IG51bGxcbiAgICB9XG4gIH1cblxuICBnZXQgb25lcnJvciAoKSB7XG4gICAgd2ViaWRsLmJyYW5kQ2hlY2sodGhpcywgV2ViU29ja2V0KVxuXG4gICAgcmV0dXJuIHRoaXMuI2V2ZW50cy5lcnJvclxuICB9XG5cbiAgc2V0IG9uZXJyb3IgKGZuKSB7XG4gICAgd2ViaWRsLmJyYW5kQ2hlY2sodGhpcywgV2ViU29ja2V0KVxuXG4gICAgaWYgKHRoaXMuI2V2ZW50cy5lcnJvcikge1xuICAgICAgdGhpcy5yZW1vdmVFdmVudExpc3RlbmVyKCdlcnJvcicsIHRoaXMuI2V2ZW50cy5lcnJvcilcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIGZuID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICB0aGlzLiNldmVudHMuZXJyb3IgPSBmblxuICAgICAgdGhpcy5hZGRFdmVudExpc3RlbmVyKCdlcnJvcicsIGZuKVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLiNldmVudHMuZXJyb3IgPSBudWxsXG4gICAgfVxuICB9XG5cbiAgZ2V0IG9uY2xvc2UgKCkge1xuICAgIHdlYmlkbC5icmFuZENoZWNrKHRoaXMsIFdlYlNvY2tldClcblxuICAgIHJldHVybiB0aGlzLiNldmVudHMuY2xvc2VcbiAgfVxuXG4gIHNldCBvbmNsb3NlIChmbikge1xuICAgIHdlYmlkbC5icmFuZENoZWNrKHRoaXMsIFdlYlNvY2tldClcblxuICAgIGlmICh0aGlzLiNldmVudHMuY2xvc2UpIHtcbiAgICAgIHRoaXMucmVtb3ZlRXZlbnRMaXN0ZW5lcignY2xvc2UnLCB0aGlzLiNldmVudHMuY2xvc2UpXG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBmbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgdGhpcy4jZXZlbnRzLmNsb3NlID0gZm5cbiAgICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcignY2xvc2UnLCBmbilcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy4jZXZlbnRzLmNsb3NlID0gbnVsbFxuICAgIH1cbiAgfVxuXG4gIGdldCBvbm1lc3NhZ2UgKCkge1xuICAgIHdlYmlkbC5icmFuZENoZWNrKHRoaXMsIFdlYlNvY2tldClcblxuICAgIHJldHVybiB0aGlzLiNldmVudHMubWVzc2FnZVxuICB9XG5cbiAgc2V0IG9ubWVzc2FnZSAoZm4pIHtcbiAgICB3ZWJpZGwuYnJhbmRDaGVjayh0aGlzLCBXZWJTb2NrZXQpXG5cbiAgICBpZiAodGhpcy4jZXZlbnRzLm1lc3NhZ2UpIHtcbiAgICAgIHRoaXMucmVtb3ZlRXZlbnRMaXN0ZW5lcignbWVzc2FnZScsIHRoaXMuI2V2ZW50cy5tZXNzYWdlKVxuICAgIH1cblxuICAgIGlmICh0eXBlb2YgZm4gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHRoaXMuI2V2ZW50cy5tZXNzYWdlID0gZm5cbiAgICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcignbWVzc2FnZScsIGZuKVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLiNldmVudHMubWVzc2FnZSA9IG51bGxcbiAgICB9XG4gIH1cblxuICBnZXQgYmluYXJ5VHlwZSAoKSB7XG4gICAgd2ViaWRsLmJyYW5kQ2hlY2sodGhpcywgV2ViU29ja2V0KVxuXG4gICAgcmV0dXJuIHRoaXNba0JpbmFyeVR5cGVdXG4gIH1cblxuICBzZXQgYmluYXJ5VHlwZSAodHlwZSkge1xuICAgIHdlYmlkbC5icmFuZENoZWNrKHRoaXMsIFdlYlNvY2tldClcblxuICAgIGlmICh0eXBlICE9PSAnYmxvYicgJiYgdHlwZSAhPT0gJ2FycmF5YnVmZmVyJykge1xuICAgICAgdGhpc1trQmluYXJ5VHlwZV0gPSAnYmxvYidcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpc1trQmluYXJ5VHlwZV0gPSB0eXBlXG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEBzZWUgaHR0cHM6Ly93ZWJzb2NrZXRzLnNwZWMud2hhdHdnLm9yZy8jZmVlZGJhY2stZnJvbS10aGUtcHJvdG9jb2xcbiAgICovXG4gICNvbkNvbm5lY3Rpb25Fc3RhYmxpc2hlZCAocmVzcG9uc2UsIHBhcnNlZEV4dGVuc2lvbnMpIHtcbiAgICAvLyBwcm9jZXNzUmVzcG9uc2UgaXMgY2FsbGVkIHdoZW4gdGhlIFwicmVzcG9uc2VcdTIwMTlzIGhlYWRlciBsaXN0IGhhcyBiZWVuIHJlY2VpdmVkIGFuZCBpbml0aWFsaXplZC5cIlxuICAgIC8vIG9uY2UgdGhpcyBoYXBwZW5zLCB0aGUgY29ubmVjdGlvbiBpcyBvcGVuXG4gICAgdGhpc1trUmVzcG9uc2VdID0gcmVzcG9uc2VcblxuICAgIGNvbnN0IHBhcnNlciA9IG5ldyBCeXRlUGFyc2VyKHRoaXMsIHBhcnNlZEV4dGVuc2lvbnMpXG4gICAgcGFyc2VyLm9uKCdkcmFpbicsIG9uUGFyc2VyRHJhaW4pXG4gICAgcGFyc2VyLm9uKCdlcnJvcicsIG9uUGFyc2VyRXJyb3IuYmluZCh0aGlzKSlcblxuICAgIHJlc3BvbnNlLnNvY2tldC53cyA9IHRoaXNcbiAgICB0aGlzW2tCeXRlUGFyc2VyXSA9IHBhcnNlclxuXG4gICAgdGhpcy4jc2VuZFF1ZXVlID0gbmV3IFNlbmRRdWV1ZShyZXNwb25zZS5zb2NrZXQpXG5cbiAgICAvLyAxLiBDaGFuZ2UgdGhlIHJlYWR5IHN0YXRlIHRvIE9QRU4gKDEpLlxuICAgIHRoaXNba1JlYWR5U3RhdGVdID0gc3RhdGVzLk9QRU5cblxuICAgIC8vIDIuIENoYW5nZSB0aGUgZXh0ZW5zaW9ucyBhdHRyaWJ1dGVcdTIwMTlzIHZhbHVlIHRvIHRoZSBleHRlbnNpb25zIGluIHVzZSwgaWZcbiAgICAvLyAgICBpdCBpcyBub3QgdGhlIG51bGwgdmFsdWUuXG4gICAgLy8gaHR0cHM6Ly9kYXRhdHJhY2tlci5pZXRmLm9yZy9kb2MvaHRtbC9yZmM2NDU1I3NlY3Rpb24tOS4xXG4gICAgY29uc3QgZXh0ZW5zaW9ucyA9IHJlc3BvbnNlLmhlYWRlcnNMaXN0LmdldCgnc2VjLXdlYnNvY2tldC1leHRlbnNpb25zJylcblxuICAgIGlmIChleHRlbnNpb25zICE9PSBudWxsKSB7XG4gICAgICB0aGlzLiNleHRlbnNpb25zID0gZXh0ZW5zaW9uc1xuICAgIH1cblxuICAgIC8vIDMuIENoYW5nZSB0aGUgcHJvdG9jb2wgYXR0cmlidXRlXHUyMDE5cyB2YWx1ZSB0byB0aGUgc3VicHJvdG9jb2wgaW4gdXNlLCBpZlxuICAgIC8vICAgIGl0IGlzIG5vdCB0aGUgbnVsbCB2YWx1ZS5cbiAgICAvLyBodHRwczovL2RhdGF0cmFja2VyLmlldGYub3JnL2RvYy9odG1sL3JmYzY0NTUjc2VjdGlvbi0xLjlcbiAgICBjb25zdCBwcm90b2NvbCA9IHJlc3BvbnNlLmhlYWRlcnNMaXN0LmdldCgnc2VjLXdlYnNvY2tldC1wcm90b2NvbCcpXG5cbiAgICBpZiAocHJvdG9jb2wgIT09IG51bGwpIHtcbiAgICAgIHRoaXMuI3Byb3RvY29sID0gcHJvdG9jb2xcbiAgICB9XG5cbiAgICAvLyA0LiBGaXJlIGFuIGV2ZW50IG5hbWVkIG9wZW4gYXQgdGhlIFdlYlNvY2tldCBvYmplY3QuXG4gICAgZmlyZUV2ZW50KCdvcGVuJywgdGhpcylcbiAgfVxufVxuXG4vLyBodHRwczovL3dlYnNvY2tldHMuc3BlYy53aGF0d2cub3JnLyNkb20td2Vic29ja2V0LWNvbm5lY3RpbmdcbldlYlNvY2tldC5DT05ORUNUSU5HID0gV2ViU29ja2V0LnByb3RvdHlwZS5DT05ORUNUSU5HID0gc3RhdGVzLkNPTk5FQ1RJTkdcbi8vIGh0dHBzOi8vd2Vic29ja2V0cy5zcGVjLndoYXR3Zy5vcmcvI2RvbS13ZWJzb2NrZXQtb3BlblxuV2ViU29ja2V0Lk9QRU4gPSBXZWJTb2NrZXQucHJvdG90eXBlLk9QRU4gPSBzdGF0ZXMuT1BFTlxuLy8gaHR0cHM6Ly93ZWJzb2NrZXRzLnNwZWMud2hhdHdnLm9yZy8jZG9tLXdlYnNvY2tldC1jbG9zaW5nXG5XZWJTb2NrZXQuQ0xPU0lORyA9IFdlYlNvY2tldC5wcm90b3R5cGUuQ0xPU0lORyA9IHN0YXRlcy5DTE9TSU5HXG4vLyBodHRwczovL3dlYnNvY2tldHMuc3BlYy53aGF0d2cub3JnLyNkb20td2Vic29ja2V0LWNsb3NlZFxuV2ViU29ja2V0LkNMT1NFRCA9IFdlYlNvY2tldC5wcm90b3R5cGUuQ0xPU0VEID0gc3RhdGVzLkNMT1NFRFxuXG5PYmplY3QuZGVmaW5lUHJvcGVydGllcyhXZWJTb2NrZXQucHJvdG90eXBlLCB7XG4gIENPTk5FQ1RJTkc6IHN0YXRpY1Byb3BlcnR5RGVzY3JpcHRvcnMsXG4gIE9QRU46IHN0YXRpY1Byb3BlcnR5RGVzY3JpcHRvcnMsXG4gIENMT1NJTkc6IHN0YXRpY1Byb3BlcnR5RGVzY3JpcHRvcnMsXG4gIENMT1NFRDogc3RhdGljUHJvcGVydHlEZXNjcmlwdG9ycyxcbiAgdXJsOiBrRW51bWVyYWJsZVByb3BlcnR5LFxuICByZWFkeVN0YXRlOiBrRW51bWVyYWJsZVByb3BlcnR5LFxuICBidWZmZXJlZEFtb3VudDoga0VudW1lcmFibGVQcm9wZXJ0eSxcbiAgb25vcGVuOiBrRW51bWVyYWJsZVByb3BlcnR5LFxuICBvbmVycm9yOiBrRW51bWVyYWJsZVByb3BlcnR5LFxuICBvbmNsb3NlOiBrRW51bWVyYWJsZVByb3BlcnR5LFxuICBjbG9zZToga0VudW1lcmFibGVQcm9wZXJ0eSxcbiAgb25tZXNzYWdlOiBrRW51bWVyYWJsZVByb3BlcnR5LFxuICBiaW5hcnlUeXBlOiBrRW51bWVyYWJsZVByb3BlcnR5LFxuICBzZW5kOiBrRW51bWVyYWJsZVByb3BlcnR5LFxuICBleHRlbnNpb25zOiBrRW51bWVyYWJsZVByb3BlcnR5LFxuICBwcm90b2NvbDoga0VudW1lcmFibGVQcm9wZXJ0eSxcbiAgW1N5bWJvbC50b1N0cmluZ1RhZ106IHtcbiAgICB2YWx1ZTogJ1dlYlNvY2tldCcsXG4gICAgd3JpdGFibGU6IGZhbHNlLFxuICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICB9XG59KVxuXG5PYmplY3QuZGVmaW5lUHJvcGVydGllcyhXZWJTb2NrZXQsIHtcbiAgQ09OTkVDVElORzogc3RhdGljUHJvcGVydHlEZXNjcmlwdG9ycyxcbiAgT1BFTjogc3RhdGljUHJvcGVydHlEZXNjcmlwdG9ycyxcbiAgQ0xPU0lORzogc3RhdGljUHJvcGVydHlEZXNjcmlwdG9ycyxcbiAgQ0xPU0VEOiBzdGF0aWNQcm9wZXJ0eURlc2NyaXB0b3JzXG59KVxuXG53ZWJpZGwuY29udmVydGVyc1snc2VxdWVuY2U8RE9NU3RyaW5nPiddID0gd2ViaWRsLnNlcXVlbmNlQ29udmVydGVyKFxuICB3ZWJpZGwuY29udmVydGVycy5ET01TdHJpbmdcbilcblxud2ViaWRsLmNvbnZlcnRlcnNbJ0RPTVN0cmluZyBvciBzZXF1ZW5jZTxET01TdHJpbmc+J10gPSBmdW5jdGlvbiAoViwgcHJlZml4LCBhcmd1bWVudCkge1xuICBpZiAod2ViaWRsLnV0aWwuVHlwZShWKSA9PT0gJ09iamVjdCcgJiYgU3ltYm9sLml0ZXJhdG9yIGluIFYpIHtcbiAgICByZXR1cm4gd2ViaWRsLmNvbnZlcnRlcnNbJ3NlcXVlbmNlPERPTVN0cmluZz4nXShWKVxuICB9XG5cbiAgcmV0dXJuIHdlYmlkbC5jb252ZXJ0ZXJzLkRPTVN0cmluZyhWLCBwcmVmaXgsIGFyZ3VtZW50KVxufVxuXG4vLyBUaGlzIGltcGxlbWVudHMgdGhlIHByb3Bvc2FsIG1hZGUgaW4gaHR0cHM6Ly9naXRodWIuY29tL3doYXR3Zy93ZWJzb2NrZXRzL2lzc3Vlcy80Mlxud2ViaWRsLmNvbnZlcnRlcnMuV2ViU29ja2V0SW5pdCA9IHdlYmlkbC5kaWN0aW9uYXJ5Q29udmVydGVyKFtcbiAge1xuICAgIGtleTogJ3Byb3RvY29scycsXG4gICAgY29udmVydGVyOiB3ZWJpZGwuY29udmVydGVyc1snRE9NU3RyaW5nIG9yIHNlcXVlbmNlPERPTVN0cmluZz4nXSxcbiAgICBkZWZhdWx0VmFsdWU6ICgpID0+IG5ldyBBcnJheSgwKVxuICB9LFxuICB7XG4gICAga2V5OiAnZGlzcGF0Y2hlcicsXG4gICAgY29udmVydGVyOiB3ZWJpZGwuY29udmVydGVycy5hbnksXG4gICAgZGVmYXVsdFZhbHVlOiAoKSA9PiBnZXRHbG9iYWxEaXNwYXRjaGVyKClcbiAgfSxcbiAge1xuICAgIGtleTogJ2hlYWRlcnMnLFxuICAgIGNvbnZlcnRlcjogd2ViaWRsLm51bGxhYmxlQ29udmVydGVyKHdlYmlkbC5jb252ZXJ0ZXJzLkhlYWRlcnNJbml0KVxuICB9XG5dKVxuXG53ZWJpZGwuY29udmVydGVyc1snRE9NU3RyaW5nIG9yIHNlcXVlbmNlPERPTVN0cmluZz4gb3IgV2ViU29ja2V0SW5pdCddID0gZnVuY3Rpb24gKFYpIHtcbiAgaWYgKHdlYmlkbC51dGlsLlR5cGUoVikgPT09ICdPYmplY3QnICYmICEoU3ltYm9sLml0ZXJhdG9yIGluIFYpKSB7XG4gICAgcmV0dXJuIHdlYmlkbC5jb252ZXJ0ZXJzLldlYlNvY2tldEluaXQoVilcbiAgfVxuXG4gIHJldHVybiB7IHByb3RvY29sczogd2ViaWRsLmNvbnZlcnRlcnNbJ0RPTVN0cmluZyBvciBzZXF1ZW5jZTxET01TdHJpbmc+J10oVikgfVxufVxuXG53ZWJpZGwuY29udmVydGVycy5XZWJTb2NrZXRTZW5kRGF0YSA9IGZ1bmN0aW9uIChWKSB7XG4gIGlmICh3ZWJpZGwudXRpbC5UeXBlKFYpID09PSAnT2JqZWN0Jykge1xuICAgIGlmIChpc0Jsb2JMaWtlKFYpKSB7XG4gICAgICByZXR1cm4gd2ViaWRsLmNvbnZlcnRlcnMuQmxvYihWLCB7IHN0cmljdDogZmFsc2UgfSlcbiAgICB9XG5cbiAgICBpZiAoQXJyYXlCdWZmZXIuaXNWaWV3KFYpIHx8IHR5cGVzLmlzQXJyYXlCdWZmZXIoVikpIHtcbiAgICAgIHJldHVybiB3ZWJpZGwuY29udmVydGVycy5CdWZmZXJTb3VyY2UoVilcbiAgICB9XG4gIH1cblxuICByZXR1cm4gd2ViaWRsLmNvbnZlcnRlcnMuVVNWU3RyaW5nKFYpXG59XG5cbmZ1bmN0aW9uIG9uUGFyc2VyRHJhaW4gKCkge1xuICB0aGlzLndzW2tSZXNwb25zZV0uc29ja2V0LnJlc3VtZSgpXG59XG5cbmZ1bmN0aW9uIG9uUGFyc2VyRXJyb3IgKGVycikge1xuICBsZXQgbWVzc2FnZVxuICBsZXQgY29kZVxuXG4gIGlmIChlcnIgaW5zdGFuY2VvZiBDbG9zZUV2ZW50KSB7XG4gICAgbWVzc2FnZSA9IGVyci5yZWFzb25cbiAgICBjb2RlID0gZXJyLmNvZGVcbiAgfSBlbHNlIHtcbiAgICBtZXNzYWdlID0gZXJyLm1lc3NhZ2VcbiAgfVxuXG4gIGZpcmVFdmVudCgnZXJyb3InLCB0aGlzLCAoKSA9PiBuZXcgRXJyb3JFdmVudCgnZXJyb3InLCB7IGVycm9yOiBlcnIsIG1lc3NhZ2UgfSkpXG5cbiAgY2xvc2VXZWJTb2NrZXRDb25uZWN0aW9uKHRoaXMsIGNvZGUpXG59XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICBXZWJTb2NrZXRcbn1cbiIsICIndXNlIHN0cmljdCdcblxuLyoqXG4gKiBDaGVja3MgaWYgdGhlIGdpdmVuIHZhbHVlIGlzIGEgdmFsaWQgTGFzdEV2ZW50SWQuXG4gKiBAcGFyYW0ge3N0cmluZ30gdmFsdWVcbiAqIEByZXR1cm5zIHtib29sZWFufVxuICovXG5mdW5jdGlvbiBpc1ZhbGlkTGFzdEV2ZW50SWQgKHZhbHVlKSB7XG4gIC8vIExhc3RFdmVudElkIHNob3VsZCBub3QgY29udGFpbiBVKzAwMDAgTlVMTFxuICByZXR1cm4gdmFsdWUuaW5kZXhPZignXFx1MDAwMCcpID09PSAtMVxufVxuXG4vKipcbiAqIENoZWNrcyBpZiB0aGUgZ2l2ZW4gdmFsdWUgaXMgYSBiYXNlIDEwIGRpZ2l0LlxuICogQHBhcmFtIHtzdHJpbmd9IHZhbHVlXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAqL1xuZnVuY3Rpb24gaXNBU0NJSU51bWJlciAodmFsdWUpIHtcbiAgaWYgKHZhbHVlLmxlbmd0aCA9PT0gMCkgcmV0dXJuIGZhbHNlXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgdmFsdWUubGVuZ3RoOyBpKyspIHtcbiAgICBpZiAodmFsdWUuY2hhckNvZGVBdChpKSA8IDB4MzAgfHwgdmFsdWUuY2hhckNvZGVBdChpKSA+IDB4MzkpIHJldHVybiBmYWxzZVxuICB9XG4gIHJldHVybiB0cnVlXG59XG5cbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9ub2RlanMvdW5kaWNpL2lzc3Vlcy8yNjY0XG5mdW5jdGlvbiBkZWxheSAobXMpIHtcbiAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7XG4gICAgc2V0VGltZW91dChyZXNvbHZlLCBtcykudW5yZWYoKVxuICB9KVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgaXNWYWxpZExhc3RFdmVudElkLFxuICBpc0FTQ0lJTnVtYmVyLFxuICBkZWxheVxufVxuIiwgIid1c2Ugc3RyaWN0J1xuY29uc3QgeyBUcmFuc2Zvcm0gfSA9IHJlcXVpcmUoJ25vZGU6c3RyZWFtJylcbmNvbnN0IHsgaXNBU0NJSU51bWJlciwgaXNWYWxpZExhc3RFdmVudElkIH0gPSByZXF1aXJlKCcuL3V0aWwnKVxuXG4vKipcbiAqIEB0eXBlIHtudW1iZXJbXX0gQk9NXG4gKi9cbmNvbnN0IEJPTSA9IFsweEVGLCAweEJCLCAweEJGXVxuLyoqXG4gKiBAdHlwZSB7MTB9IExGXG4gKi9cbmNvbnN0IExGID0gMHgwQVxuLyoqXG4gKiBAdHlwZSB7MTN9IENSXG4gKi9cbmNvbnN0IENSID0gMHgwRFxuLyoqXG4gKiBAdHlwZSB7NTh9IENPTE9OXG4gKi9cbmNvbnN0IENPTE9OID0gMHgzQVxuLyoqXG4gKiBAdHlwZSB7MzJ9IFNQQUNFXG4gKi9cbmNvbnN0IFNQQUNFID0gMHgyMFxuXG4vKipcbiAqIEB0eXBlZGVmIHtvYmplY3R9IEV2ZW50U291cmNlU3RyZWFtRXZlbnRcbiAqIEB0eXBlIHtvYmplY3R9XG4gKiBAcHJvcGVydHkge3N0cmluZ30gW2V2ZW50XSBUaGUgZXZlbnQgdHlwZS5cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBbZGF0YV0gVGhlIGRhdGEgb2YgdGhlIG1lc3NhZ2UuXG4gKiBAcHJvcGVydHkge3N0cmluZ30gW2lkXSBBIHVuaXF1ZSBJRCBmb3IgdGhlIGV2ZW50LlxuICogQHByb3BlcnR5IHtzdHJpbmd9IFtyZXRyeV0gVGhlIHJlY29ubmVjdGlvbiB0aW1lLCBpbiBtaWxsaXNlY29uZHMuXG4gKi9cblxuLyoqXG4gKiBAdHlwZWRlZiBldmVudFNvdXJjZVNldHRpbmdzXG4gKiBAdHlwZSB7b2JqZWN0fVxuICogQHByb3BlcnR5IHtzdHJpbmd9IGxhc3RFdmVudElkIFRoZSBsYXN0IGV2ZW50IElEIHJlY2VpdmVkIGZyb20gdGhlIHNlcnZlci5cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBvcmlnaW4gVGhlIG9yaWdpbiBvZiB0aGUgZXZlbnQgc291cmNlLlxuICogQHByb3BlcnR5IHtudW1iZXJ9IHJlY29ubmVjdGlvblRpbWUgVGhlIHJlY29ubmVjdGlvbiB0aW1lLCBpbiBtaWxsaXNlY29uZHMuXG4gKi9cblxuY2xhc3MgRXZlbnRTb3VyY2VTdHJlYW0gZXh0ZW5kcyBUcmFuc2Zvcm0ge1xuICAvKipcbiAgICogQHR5cGUge2V2ZW50U291cmNlU2V0dGluZ3N9XG4gICAqL1xuICBzdGF0ZSA9IG51bGxcblxuICAvKipcbiAgICogTGVhZGluZyBieXRlLW9yZGVyLW1hcmsgY2hlY2suXG4gICAqIEB0eXBlIHtib29sZWFufVxuICAgKi9cbiAgY2hlY2tCT00gPSB0cnVlXG5cbiAgLyoqXG4gICAqIEB0eXBlIHtib29sZWFufVxuICAgKi9cbiAgY3JsZkNoZWNrID0gZmFsc2VcblxuICAvKipcbiAgICogQHR5cGUge2Jvb2xlYW59XG4gICAqL1xuICBldmVudEVuZENoZWNrID0gZmFsc2VcblxuICAvKipcbiAgICogQHR5cGUge0J1ZmZlcn1cbiAgICovXG4gIGJ1ZmZlciA9IG51bGxcblxuICBwb3MgPSAwXG5cbiAgZXZlbnQgPSB7XG4gICAgZGF0YTogdW5kZWZpbmVkLFxuICAgIGV2ZW50OiB1bmRlZmluZWQsXG4gICAgaWQ6IHVuZGVmaW5lZCxcbiAgICByZXRyeTogdW5kZWZpbmVkXG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHtvYmplY3R9IG9wdGlvbnNcbiAgICogQHBhcmFtIHtldmVudFNvdXJjZVNldHRpbmdzfSBvcHRpb25zLmV2ZW50U291cmNlU2V0dGluZ3NcbiAgICogQHBhcmFtIHtGdW5jdGlvbn0gW29wdGlvbnMucHVzaF1cbiAgICovXG4gIGNvbnN0cnVjdG9yIChvcHRpb25zID0ge30pIHtcbiAgICAvLyBFbmFibGUgb2JqZWN0IG1vZGUgYXMgRXZlbnRTb3VyY2VTdHJlYW0gZW1pdHMgb2JqZWN0cyBvZiBzaGFwZVxuICAgIC8vIEV2ZW50U291cmNlU3RyZWFtRXZlbnRcbiAgICBvcHRpb25zLnJlYWRhYmxlT2JqZWN0TW9kZSA9IHRydWVcblxuICAgIHN1cGVyKG9wdGlvbnMpXG5cbiAgICB0aGlzLnN0YXRlID0gb3B0aW9ucy5ldmVudFNvdXJjZVNldHRpbmdzIHx8IHt9XG4gICAgaWYgKG9wdGlvbnMucHVzaCkge1xuICAgICAgdGhpcy5wdXNoID0gb3B0aW9ucy5wdXNoXG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7QnVmZmVyfSBjaHVua1xuICAgKiBAcGFyYW0ge3N0cmluZ30gX2VuY29kaW5nXG4gICAqIEBwYXJhbSB7RnVuY3Rpb259IGNhbGxiYWNrXG4gICAqIEByZXR1cm5zIHt2b2lkfVxuICAgKi9cbiAgX3RyYW5zZm9ybSAoY2h1bmssIF9lbmNvZGluZywgY2FsbGJhY2spIHtcbiAgICBpZiAoY2h1bmsubGVuZ3RoID09PSAwKSB7XG4gICAgICBjYWxsYmFjaygpXG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICAvLyBDYWNoZSB0aGUgY2h1bmsgaW4gdGhlIGJ1ZmZlciwgYXMgdGhlIGRhdGEgbWlnaHQgbm90IGJlIGNvbXBsZXRlIHdoaWxlXG4gICAgLy8gcHJvY2Vzc2luZyBpdFxuICAgIC8vIFRPRE86IEludmVzdGlnYXRlIGlmIHRoZXJlIGlzIGEgbW9yZSBwZXJmb3JtYW50IHdheSB0byBoYW5kbGVcbiAgICAvLyBpbmNvbWluZyBjaHVua3NcbiAgICAvLyBzZWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9ub2RlanMvdW5kaWNpL2lzc3Vlcy8yNjMwXG4gICAgaWYgKHRoaXMuYnVmZmVyKSB7XG4gICAgICB0aGlzLmJ1ZmZlciA9IEJ1ZmZlci5jb25jYXQoW3RoaXMuYnVmZmVyLCBjaHVua10pXG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuYnVmZmVyID0gY2h1bmtcbiAgICB9XG5cbiAgICAvLyBTdHJpcCBsZWFkaW5nIGJ5dGUtb3JkZXItbWFyayBpZiB3ZSBvcGVuZWQgdGhlIHN0cmVhbSBhbmQgc3RhcnRlZFxuICAgIC8vIHRoZSBwcm9jZXNzaW5nIG9mIHRoZSBpbmNvbWluZyBkYXRhXG4gICAgaWYgKHRoaXMuY2hlY2tCT00pIHtcbiAgICAgIHN3aXRjaCAodGhpcy5idWZmZXIubGVuZ3RoKSB7XG4gICAgICAgIGNhc2UgMTpcbiAgICAgICAgICAvLyBDaGVjayBpZiB0aGUgZmlyc3QgYnl0ZSBpcyB0aGUgc2FtZSBhcyB0aGUgZmlyc3QgYnl0ZSBvZiB0aGUgQk9NXG4gICAgICAgICAgaWYgKHRoaXMuYnVmZmVyWzBdID09PSBCT01bMF0pIHtcbiAgICAgICAgICAgIC8vIElmIGl0IGlzLCB3ZSBuZWVkIHRvIHdhaXQgZm9yIG1vcmUgZGF0YVxuICAgICAgICAgICAgY2FsbGJhY2soKVxuICAgICAgICAgICAgcmV0dXJuXG4gICAgICAgICAgfVxuICAgICAgICAgIC8vIFNldCB0aGUgY2hlY2tCT00gZmxhZyB0byBmYWxzZSBhcyB3ZSBkb24ndCBuZWVkIHRvIGNoZWNrIGZvciB0aGVcbiAgICAgICAgICAvLyBCT00gYW55bW9yZVxuICAgICAgICAgIHRoaXMuY2hlY2tCT00gPSBmYWxzZVxuXG4gICAgICAgICAgLy8gVGhlIGJ1ZmZlciBvbmx5IGNvbnRhaW5zIG9uZSBieXRlIHNvIHdlIG5lZWQgdG8gd2FpdCBmb3IgbW9yZSBkYXRhXG4gICAgICAgICAgY2FsbGJhY2soKVxuICAgICAgICAgIHJldHVyblxuICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgLy8gQ2hlY2sgaWYgdGhlIGZpcnN0IHR3byBieXRlcyBhcmUgdGhlIHNhbWUgYXMgdGhlIGZpcnN0IHR3byBieXRlc1xuICAgICAgICAgIC8vIG9mIHRoZSBCT01cbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICB0aGlzLmJ1ZmZlclswXSA9PT0gQk9NWzBdICYmXG4gICAgICAgICAgICB0aGlzLmJ1ZmZlclsxXSA9PT0gQk9NWzFdXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICAvLyBJZiBpdCBpcywgd2UgbmVlZCB0byB3YWl0IGZvciBtb3JlIGRhdGEsIGJlY2F1c2UgdGhlIHRoaXJkIGJ5dGVcbiAgICAgICAgICAgIC8vIGlzIG5lZWRlZCB0byBkZXRlcm1pbmUgaWYgaXQgaXMgdGhlIEJPTSBvciBub3RcbiAgICAgICAgICAgIGNhbGxiYWNrKClcbiAgICAgICAgICAgIHJldHVyblxuICAgICAgICAgIH1cblxuICAgICAgICAgIC8vIFNldCB0aGUgY2hlY2tCT00gZmxhZyB0byBmYWxzZSBhcyB3ZSBkb24ndCBuZWVkIHRvIGNoZWNrIGZvciB0aGVcbiAgICAgICAgICAvLyBCT00gYW55bW9yZVxuICAgICAgICAgIHRoaXMuY2hlY2tCT00gPSBmYWxzZVxuICAgICAgICAgIGJyZWFrXG4gICAgICAgIGNhc2UgMzpcbiAgICAgICAgICAvLyBDaGVjayBpZiB0aGUgZmlyc3QgdGhyZWUgYnl0ZXMgYXJlIHRoZSBzYW1lIGFzIHRoZSBmaXJzdCB0aHJlZVxuICAgICAgICAgIC8vIGJ5dGVzIG9mIHRoZSBCT01cbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICB0aGlzLmJ1ZmZlclswXSA9PT0gQk9NWzBdICYmXG4gICAgICAgICAgICB0aGlzLmJ1ZmZlclsxXSA9PT0gQk9NWzFdICYmXG4gICAgICAgICAgICB0aGlzLmJ1ZmZlclsyXSA9PT0gQk9NWzJdXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICAvLyBJZiBpdCBpcywgd2UgY2FuIGRyb3AgdGhlIGJ1ZmZlcmVkIGRhdGEsIGFzIGl0IGlzIG9ubHkgdGhlIEJPTVxuICAgICAgICAgICAgdGhpcy5idWZmZXIgPSBCdWZmZXIuYWxsb2MoMClcbiAgICAgICAgICAgIC8vIFNldCB0aGUgY2hlY2tCT00gZmxhZyB0byBmYWxzZSBhcyB3ZSBkb24ndCBuZWVkIHRvIGNoZWNrIGZvciB0aGVcbiAgICAgICAgICAgIC8vIEJPTSBhbnltb3JlXG4gICAgICAgICAgICB0aGlzLmNoZWNrQk9NID0gZmFsc2VcblxuICAgICAgICAgICAgLy8gQXdhaXQgbW9yZSBkYXRhXG4gICAgICAgICAgICBjYWxsYmFjaygpXG4gICAgICAgICAgICByZXR1cm5cbiAgICAgICAgICB9XG4gICAgICAgICAgLy8gSWYgaXQgaXMgbm90IHRoZSBCT00sIHdlIGNhbiBzdGFydCBwcm9jZXNzaW5nIHRoZSBkYXRhXG4gICAgICAgICAgdGhpcy5jaGVja0JPTSA9IGZhbHNlXG4gICAgICAgICAgYnJlYWtcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAvLyBUaGUgYnVmZmVyIGlzIGxvbmdlciB0aGFuIDMgYnl0ZXMsIHNvIHdlIGNhbiBkcm9wIHRoZSBCT00gaWYgaXQgaXNcbiAgICAgICAgICAvLyBwcmVzZW50XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgdGhpcy5idWZmZXJbMF0gPT09IEJPTVswXSAmJlxuICAgICAgICAgICAgdGhpcy5idWZmZXJbMV0gPT09IEJPTVsxXSAmJlxuICAgICAgICAgICAgdGhpcy5idWZmZXJbMl0gPT09IEJPTVsyXVxuICAgICAgICAgICkge1xuICAgICAgICAgICAgLy8gUmVtb3ZlIHRoZSBCT00gZnJvbSB0aGUgYnVmZmVyXG4gICAgICAgICAgICB0aGlzLmJ1ZmZlciA9IHRoaXMuYnVmZmVyLnN1YmFycmF5KDMpXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLy8gU2V0IHRoZSBjaGVja0JPTSBmbGFnIHRvIGZhbHNlIGFzIHdlIGRvbid0IG5lZWQgdG8gY2hlY2sgZm9yIHRoZVxuICAgICAgICAgIHRoaXMuY2hlY2tCT00gPSBmYWxzZVxuICAgICAgICAgIGJyZWFrXG4gICAgICB9XG4gICAgfVxuXG4gICAgd2hpbGUgKHRoaXMucG9zIDwgdGhpcy5idWZmZXIubGVuZ3RoKSB7XG4gICAgICAvLyBJZiB0aGUgcHJldmlvdXMgbGluZSBlbmRlZCB3aXRoIGFuIGVuZC1vZi1saW5lLCB3ZSBuZWVkIHRvIGNoZWNrXG4gICAgICAvLyBpZiB0aGUgbmV4dCBjaGFyYWN0ZXIgaXMgYWxzbyBhbiBlbmQtb2YtbGluZS5cbiAgICAgIGlmICh0aGlzLmV2ZW50RW5kQ2hlY2spIHtcbiAgICAgICAgLy8gSWYgdGhlIHRoZSBjdXJyZW50IGNoYXJhY3RlciBpcyBhbiBlbmQtb2YtbGluZSwgdGhlbiB0aGUgZXZlbnRcbiAgICAgICAgLy8gaXMgZmluaXNoZWQgYW5kIHdlIGNhbiBwcm9jZXNzIGl0XG5cbiAgICAgICAgLy8gSWYgdGhlIHByZXZpb3VzIGxpbmUgZW5kZWQgd2l0aCBhIGNhcnJpYWdlIHJldHVybiwgd2UgbmVlZCB0b1xuICAgICAgICAvLyBjaGVjayBpZiB0aGUgY3VycmVudCBjaGFyYWN0ZXIgaXMgYSBsaW5lIGZlZWQgYW5kIHJlbW92ZSBpdFxuICAgICAgICAvLyBmcm9tIHRoZSBidWZmZXIuXG4gICAgICAgIGlmICh0aGlzLmNybGZDaGVjaykge1xuICAgICAgICAgIC8vIElmIHRoZSBjdXJyZW50IGNoYXJhY3RlciBpcyBhIGxpbmUgZmVlZCwgd2UgY2FuIHJlbW92ZSBpdFxuICAgICAgICAgIC8vIGZyb20gdGhlIGJ1ZmZlciBhbmQgcmVzZXQgdGhlIGNybGZDaGVjayBmbGFnXG4gICAgICAgICAgaWYgKHRoaXMuYnVmZmVyW3RoaXMucG9zXSA9PT0gTEYpIHtcbiAgICAgICAgICAgIHRoaXMuYnVmZmVyID0gdGhpcy5idWZmZXIuc3ViYXJyYXkodGhpcy5wb3MgKyAxKVxuICAgICAgICAgICAgdGhpcy5wb3MgPSAwXG4gICAgICAgICAgICB0aGlzLmNybGZDaGVjayA9IGZhbHNlXG5cbiAgICAgICAgICAgIC8vIEl0IGlzIHBvc3NpYmxlIHRoYXQgdGhlIGxpbmUgZmVlZCBpcyBub3QgdGhlIGVuZCBvZiB0aGVcbiAgICAgICAgICAgIC8vIGV2ZW50LiBXZSBuZWVkIHRvIGNoZWNrIGlmIHRoZSBuZXh0IGNoYXJhY3RlciBpcyBhblxuICAgICAgICAgICAgLy8gZW5kLW9mLWxpbmUgY2hhcmFjdGVyIHRvIGRldGVybWluZSBpZiB0aGUgZXZlbnQgaXNcbiAgICAgICAgICAgIC8vIGZpbmlzaGVkLiBXZSBzaW1wbHkgY29udGludWUgdGhlIGxvb3AgdG8gY2hlY2sgdGhlIG5leHRcbiAgICAgICAgICAgIC8vIGNoYXJhY3Rlci5cblxuICAgICAgICAgICAgLy8gQXMgd2UgcmVtb3ZlZCB0aGUgbGluZSBmZWVkIGZyb20gdGhlIGJ1ZmZlciBhbmQgc2V0IHRoZVxuICAgICAgICAgICAgLy8gY3JsZkNoZWNrIGZsYWcgdG8gZmFsc2UsIHdlIGJhc2ljYWxseSBkb24ndCBtYWtlIGFueVxuICAgICAgICAgICAgLy8gZGlzdGluY3Rpb24gYmV0d2VlbiBhIGxpbmUgZmVlZCBhbmQgYSBjYXJyaWFnZSByZXR1cm4uXG4gICAgICAgICAgICBjb250aW51ZVxuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLmNybGZDaGVjayA9IGZhbHNlXG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5idWZmZXJbdGhpcy5wb3NdID09PSBMRiB8fCB0aGlzLmJ1ZmZlclt0aGlzLnBvc10gPT09IENSKSB7XG4gICAgICAgICAgLy8gSWYgdGhlIGN1cnJlbnQgY2hhcmFjdGVyIGlzIGEgY2FycmlhZ2UgcmV0dXJuLCB3ZSBuZWVkIHRvXG4gICAgICAgICAgLy8gc2V0IHRoZSBjcmxmQ2hlY2sgZmxhZyB0byB0cnVlLCBhcyB3ZSBuZWVkIHRvIGNoZWNrIGlmIHRoZVxuICAgICAgICAgIC8vIG5leHQgY2hhcmFjdGVyIGlzIGEgbGluZSBmZWVkIHNvIHdlIGNhbiByZW1vdmUgaXQgZnJvbSB0aGVcbiAgICAgICAgICAvLyBidWZmZXJcbiAgICAgICAgICBpZiAodGhpcy5idWZmZXJbdGhpcy5wb3NdID09PSBDUikge1xuICAgICAgICAgICAgdGhpcy5jcmxmQ2hlY2sgPSB0cnVlXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgdGhpcy5idWZmZXIgPSB0aGlzLmJ1ZmZlci5zdWJhcnJheSh0aGlzLnBvcyArIDEpXG4gICAgICAgICAgdGhpcy5wb3MgPSAwXG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgdGhpcy5ldmVudC5kYXRhICE9PSB1bmRlZmluZWQgfHwgdGhpcy5ldmVudC5ldmVudCB8fCB0aGlzLmV2ZW50LmlkIHx8IHRoaXMuZXZlbnQucmV0cnkpIHtcbiAgICAgICAgICAgIHRoaXMucHJvY2Vzc0V2ZW50KHRoaXMuZXZlbnQpXG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMuY2xlYXJFdmVudCgpXG4gICAgICAgICAgY29udGludWVcbiAgICAgICAgfVxuICAgICAgICAvLyBJZiB0aGUgY3VycmVudCBjaGFyYWN0ZXIgaXMgbm90IGFuIGVuZC1vZi1saW5lLCB0aGVuIHRoZSBldmVudFxuICAgICAgICAvLyBpcyBub3QgZmluaXNoZWQgYW5kIHdlIGhhdmUgdG8gcmVzZXQgdGhlIGV2ZW50RW5kQ2hlY2sgZmxhZ1xuICAgICAgICB0aGlzLmV2ZW50RW5kQ2hlY2sgPSBmYWxzZVxuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuXG4gICAgICAvLyBJZiB0aGUgY3VycmVudCBjaGFyYWN0ZXIgaXMgYW4gZW5kLW9mLWxpbmUsIHdlIGNhbiBwcm9jZXNzIHRoZVxuICAgICAgLy8gbGluZVxuICAgICAgaWYgKHRoaXMuYnVmZmVyW3RoaXMucG9zXSA9PT0gTEYgfHwgdGhpcy5idWZmZXJbdGhpcy5wb3NdID09PSBDUikge1xuICAgICAgICAvLyBJZiB0aGUgY3VycmVudCBjaGFyYWN0ZXIgaXMgYSBjYXJyaWFnZSByZXR1cm4sIHdlIG5lZWQgdG9cbiAgICAgICAgLy8gc2V0IHRoZSBjcmxmQ2hlY2sgZmxhZyB0byB0cnVlLCBhcyB3ZSBuZWVkIHRvIGNoZWNrIGlmIHRoZVxuICAgICAgICAvLyBuZXh0IGNoYXJhY3RlciBpcyBhIGxpbmUgZmVlZFxuICAgICAgICBpZiAodGhpcy5idWZmZXJbdGhpcy5wb3NdID09PSBDUikge1xuICAgICAgICAgIHRoaXMuY3JsZkNoZWNrID0gdHJ1ZVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gSW4gYW55IGNhc2UsIHdlIGNhbiBwcm9jZXNzIHRoZSBsaW5lIGFzIHdlIHJlYWNoZWQgYW5cbiAgICAgICAgLy8gZW5kLW9mLWxpbmUgY2hhcmFjdGVyXG4gICAgICAgIHRoaXMucGFyc2VMaW5lKHRoaXMuYnVmZmVyLnN1YmFycmF5KDAsIHRoaXMucG9zKSwgdGhpcy5ldmVudClcblxuICAgICAgICAvLyBSZW1vdmUgdGhlIHByb2Nlc3NlZCBsaW5lIGZyb20gdGhlIGJ1ZmZlclxuICAgICAgICB0aGlzLmJ1ZmZlciA9IHRoaXMuYnVmZmVyLnN1YmFycmF5KHRoaXMucG9zICsgMSlcbiAgICAgICAgLy8gUmVzZXQgdGhlIHBvc2l0aW9uIGFzIHdlIHJlbW92ZWQgdGhlIHByb2Nlc3NlZCBsaW5lIGZyb20gdGhlIGJ1ZmZlclxuICAgICAgICB0aGlzLnBvcyA9IDBcbiAgICAgICAgLy8gQSBsaW5lIHdhcyBwcm9jZXNzZWQgYW5kIHRoaXMgY291bGQgYmUgdGhlIGVuZCBvZiB0aGUgZXZlbnQuIFdlIG5lZWRcbiAgICAgICAgLy8gdG8gY2hlY2sgaWYgdGhlIG5leHQgbGluZSBpcyBlbXB0eSB0byBkZXRlcm1pbmUgaWYgdGhlIGV2ZW50IGlzXG4gICAgICAgIC8vIGZpbmlzaGVkLlxuICAgICAgICB0aGlzLmV2ZW50RW5kQ2hlY2sgPSB0cnVlXG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG5cbiAgICAgIHRoaXMucG9zKytcbiAgICB9XG5cbiAgICBjYWxsYmFjaygpXG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHtCdWZmZXJ9IGxpbmVcbiAgICogQHBhcmFtIHtFdmVudFN0cmVhbUV2ZW50fSBldmVudFxuICAgKi9cbiAgcGFyc2VMaW5lIChsaW5lLCBldmVudCkge1xuICAgIC8vIElmIHRoZSBsaW5lIGlzIGVtcHR5IChhIGJsYW5rIGxpbmUpXG4gICAgLy8gRGlzcGF0Y2ggdGhlIGV2ZW50LCBhcyBkZWZpbmVkIGJlbG93LlxuICAgIC8vIFRoaXMgd2lsbCBiZSBoYW5kbGVkIGluIHRoZSBfdHJhbnNmb3JtIG1ldGhvZFxuICAgIGlmIChsaW5lLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgLy8gSWYgdGhlIGxpbmUgc3RhcnRzIHdpdGggYSBVKzAwM0EgQ09MT04gY2hhcmFjdGVyICg6KVxuICAgIC8vIElnbm9yZSB0aGUgbGluZS5cbiAgICBjb25zdCBjb2xvblBvc2l0aW9uID0gbGluZS5pbmRleE9mKENPTE9OKVxuICAgIGlmIChjb2xvblBvc2l0aW9uID09PSAwKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBsZXQgZmllbGQgPSAnJ1xuICAgIGxldCB2YWx1ZSA9ICcnXG5cbiAgICAvLyBJZiB0aGUgbGluZSBjb250YWlucyBhIFUrMDAzQSBDT0xPTiBjaGFyYWN0ZXIgKDopXG4gICAgaWYgKGNvbG9uUG9zaXRpb24gIT09IC0xKSB7XG4gICAgICAvLyBDb2xsZWN0IHRoZSBjaGFyYWN0ZXJzIG9uIHRoZSBsaW5lIGJlZm9yZSB0aGUgZmlyc3QgVSswMDNBIENPTE9OXG4gICAgICAvLyBjaGFyYWN0ZXIgKDopLCBhbmQgbGV0IGZpZWxkIGJlIHRoYXQgc3RyaW5nLlxuICAgICAgLy8gVE9ETzogSW52ZXN0aWdhdGUgaWYgdGhlcmUgaXMgYSBtb3JlIHBlcmZvcm1hbnQgd2F5IHRvIGV4dHJhY3QgdGhlXG4gICAgICAvLyBmaWVsZFxuICAgICAgLy8gc2VlOiBodHRwczovL2dpdGh1Yi5jb20vbm9kZWpzL3VuZGljaS9pc3N1ZXMvMjYzMFxuICAgICAgZmllbGQgPSBsaW5lLnN1YmFycmF5KDAsIGNvbG9uUG9zaXRpb24pLnRvU3RyaW5nKCd1dGY4JylcblxuICAgICAgLy8gQ29sbGVjdCB0aGUgY2hhcmFjdGVycyBvbiB0aGUgbGluZSBhZnRlciB0aGUgZmlyc3QgVSswMDNBIENPTE9OXG4gICAgICAvLyBjaGFyYWN0ZXIgKDopLCBhbmQgbGV0IHZhbHVlIGJlIHRoYXQgc3RyaW5nLlxuICAgICAgLy8gSWYgdmFsdWUgc3RhcnRzIHdpdGggYSBVKzAwMjAgU1BBQ0UgY2hhcmFjdGVyLCByZW1vdmUgaXQgZnJvbSB2YWx1ZS5cbiAgICAgIGxldCB2YWx1ZVN0YXJ0ID0gY29sb25Qb3NpdGlvbiArIDFcbiAgICAgIGlmIChsaW5lW3ZhbHVlU3RhcnRdID09PSBTUEFDRSkge1xuICAgICAgICArK3ZhbHVlU3RhcnRcbiAgICAgIH1cbiAgICAgIC8vIFRPRE86IEludmVzdGlnYXRlIGlmIHRoZXJlIGlzIGEgbW9yZSBwZXJmb3JtYW50IHdheSB0byBleHRyYWN0IHRoZVxuICAgICAgLy8gdmFsdWVcbiAgICAgIC8vIHNlZTogaHR0cHM6Ly9naXRodWIuY29tL25vZGVqcy91bmRpY2kvaXNzdWVzLzI2MzBcbiAgICAgIHZhbHVlID0gbGluZS5zdWJhcnJheSh2YWx1ZVN0YXJ0KS50b1N0cmluZygndXRmOCcpXG5cbiAgICAgIC8vIE90aGVyd2lzZSwgdGhlIHN0cmluZyBpcyBub3QgZW1wdHkgYnV0IGRvZXMgbm90IGNvbnRhaW4gYSBVKzAwM0EgQ09MT05cbiAgICAgIC8vIGNoYXJhY3RlciAoOilcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gUHJvY2VzcyB0aGUgZmllbGQgdXNpbmcgdGhlIHN0ZXBzIGRlc2NyaWJlZCBiZWxvdywgdXNpbmcgdGhlIHdob2xlXG4gICAgICAvLyBsaW5lIGFzIHRoZSBmaWVsZCBuYW1lLCBhbmQgdGhlIGVtcHR5IHN0cmluZyBhcyB0aGUgZmllbGQgdmFsdWUuXG4gICAgICBmaWVsZCA9IGxpbmUudG9TdHJpbmcoJ3V0ZjgnKVxuICAgICAgdmFsdWUgPSAnJ1xuICAgIH1cblxuICAgIC8vIE1vZGlmeSB0aGUgZXZlbnQgd2l0aCB0aGUgZmllbGQgbmFtZSBhbmQgdmFsdWUuIFRoZSB2YWx1ZSBpcyBhbHNvXG4gICAgLy8gZGVjb2RlZCBhcyBVVEYtOFxuICAgIHN3aXRjaCAoZmllbGQpIHtcbiAgICAgIGNhc2UgJ2RhdGEnOlxuICAgICAgICBpZiAoZXZlbnRbZmllbGRdID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBldmVudFtmaWVsZF0gPSB2YWx1ZVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGV2ZW50W2ZpZWxkXSArPSBgXFxuJHt2YWx1ZX1gXG4gICAgICAgIH1cbiAgICAgICAgYnJlYWtcbiAgICAgIGNhc2UgJ3JldHJ5JzpcbiAgICAgICAgaWYgKGlzQVNDSUlOdW1iZXIodmFsdWUpKSB7XG4gICAgICAgICAgZXZlbnRbZmllbGRdID0gdmFsdWVcbiAgICAgICAgfVxuICAgICAgICBicmVha1xuICAgICAgY2FzZSAnaWQnOlxuICAgICAgICBpZiAoaXNWYWxpZExhc3RFdmVudElkKHZhbHVlKSkge1xuICAgICAgICAgIGV2ZW50W2ZpZWxkXSA9IHZhbHVlXG4gICAgICAgIH1cbiAgICAgICAgYnJlYWtcbiAgICAgIGNhc2UgJ2V2ZW50JzpcbiAgICAgICAgaWYgKHZhbHVlLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICBldmVudFtmaWVsZF0gPSB2YWx1ZVxuICAgICAgICB9XG4gICAgICAgIGJyZWFrXG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7RXZlbnRTb3VyY2VTdHJlYW1FdmVudH0gZXZlbnRcbiAgICovXG4gIHByb2Nlc3NFdmVudCAoZXZlbnQpIHtcbiAgICBpZiAoZXZlbnQucmV0cnkgJiYgaXNBU0NJSU51bWJlcihldmVudC5yZXRyeSkpIHtcbiAgICAgIHRoaXMuc3RhdGUucmVjb25uZWN0aW9uVGltZSA9IHBhcnNlSW50KGV2ZW50LnJldHJ5LCAxMClcbiAgICB9XG5cbiAgICBpZiAoZXZlbnQuaWQgJiYgaXNWYWxpZExhc3RFdmVudElkKGV2ZW50LmlkKSkge1xuICAgICAgdGhpcy5zdGF0ZS5sYXN0RXZlbnRJZCA9IGV2ZW50LmlkXG4gICAgfVxuXG4gICAgLy8gb25seSBkaXNwYXRjaCBldmVudCwgd2hlbiBkYXRhIGlzIHByb3ZpZGVkXG4gICAgaWYgKGV2ZW50LmRhdGEgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5wdXNoKHtcbiAgICAgICAgdHlwZTogZXZlbnQuZXZlbnQgfHwgJ21lc3NhZ2UnLFxuICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgZGF0YTogZXZlbnQuZGF0YSxcbiAgICAgICAgICBsYXN0RXZlbnRJZDogdGhpcy5zdGF0ZS5sYXN0RXZlbnRJZCxcbiAgICAgICAgICBvcmlnaW46IHRoaXMuc3RhdGUub3JpZ2luXG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgfVxuICB9XG5cbiAgY2xlYXJFdmVudCAoKSB7XG4gICAgdGhpcy5ldmVudCA9IHtcbiAgICAgIGRhdGE6IHVuZGVmaW5lZCxcbiAgICAgIGV2ZW50OiB1bmRlZmluZWQsXG4gICAgICBpZDogdW5kZWZpbmVkLFxuICAgICAgcmV0cnk6IHVuZGVmaW5lZFxuICAgIH1cbiAgfVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgRXZlbnRTb3VyY2VTdHJlYW1cbn1cbiIsICIndXNlIHN0cmljdCdcblxuY29uc3QgeyBwaXBlbGluZSB9ID0gcmVxdWlyZSgnbm9kZTpzdHJlYW0nKVxuY29uc3QgeyBmZXRjaGluZyB9ID0gcmVxdWlyZSgnLi4vZmV0Y2gnKVxuY29uc3QgeyBtYWtlUmVxdWVzdCB9ID0gcmVxdWlyZSgnLi4vZmV0Y2gvcmVxdWVzdCcpXG5jb25zdCB7IHdlYmlkbCB9ID0gcmVxdWlyZSgnLi4vZmV0Y2gvd2ViaWRsJylcbmNvbnN0IHsgRXZlbnRTb3VyY2VTdHJlYW0gfSA9IHJlcXVpcmUoJy4vZXZlbnRzb3VyY2Utc3RyZWFtJylcbmNvbnN0IHsgcGFyc2VNSU1FVHlwZSB9ID0gcmVxdWlyZSgnLi4vZmV0Y2gvZGF0YS11cmwnKVxuY29uc3QgeyBjcmVhdGVGYXN0TWVzc2FnZUV2ZW50IH0gPSByZXF1aXJlKCcuLi93ZWJzb2NrZXQvZXZlbnRzJylcbmNvbnN0IHsgaXNOZXR3b3JrRXJyb3IgfSA9IHJlcXVpcmUoJy4uL2ZldGNoL3Jlc3BvbnNlJylcbmNvbnN0IHsgZGVsYXkgfSA9IHJlcXVpcmUoJy4vdXRpbCcpXG5jb25zdCB7IGtFbnVtZXJhYmxlUHJvcGVydHkgfSA9IHJlcXVpcmUoJy4uLy4uL2NvcmUvdXRpbCcpXG5jb25zdCB7IGVudmlyb25tZW50U2V0dGluZ3NPYmplY3QgfSA9IHJlcXVpcmUoJy4uL2ZldGNoL3V0aWwnKVxuXG5sZXQgZXhwZXJpbWVudGFsV2FybmVkID0gZmFsc2VcblxuLyoqXG4gKiBBIHJlY29ubmVjdGlvbiB0aW1lLCBpbiBtaWxsaXNlY29uZHMuIFRoaXMgbXVzdCBpbml0aWFsbHkgYmUgYW4gaW1wbGVtZW50YXRpb24tZGVmaW5lZCB2YWx1ZSxcbiAqIHByb2JhYmx5IGluIHRoZSByZWdpb24gb2YgYSBmZXcgc2Vjb25kcy5cbiAqXG4gKiBJbiBDb21wYXJpc29uOlxuICogLSBDaHJvbWUgdXNlcyAzMDAwbXMuXG4gKiAtIERlbm8gdXNlcyA1MDAwbXMuXG4gKlxuICogQHR5cGUgezMwMDB9XG4gKi9cbmNvbnN0IGRlZmF1bHRSZWNvbm5lY3Rpb25UaW1lID0gMzAwMFxuXG4vKipcbiAqIFRoZSByZWFkeVN0YXRlIGF0dHJpYnV0ZSByZXByZXNlbnRzIHRoZSBzdGF0ZSBvZiB0aGUgY29ubmVjdGlvbi5cbiAqIEBlbnVtXG4gKiBAcmVhZG9ubHlcbiAqIEBzZWUgaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2Uvc2VydmVyLXNlbnQtZXZlbnRzLmh0bWwjZG9tLWV2ZW50c291cmNlLXJlYWR5c3RhdGUtZGV2XG4gKi9cblxuLyoqXG4gKiBUaGUgY29ubmVjdGlvbiBoYXMgbm90IHlldCBiZWVuIGVzdGFibGlzaGVkLCBvciBpdCB3YXMgY2xvc2VkIGFuZCB0aGUgdXNlclxuICogYWdlbnQgaXMgcmVjb25uZWN0aW5nLlxuICogQHR5cGUgezB9XG4gKi9cbmNvbnN0IENPTk5FQ1RJTkcgPSAwXG5cbi8qKlxuICogVGhlIHVzZXIgYWdlbnQgaGFzIGFuIG9wZW4gY29ubmVjdGlvbiBhbmQgaXMgZGlzcGF0Y2hpbmcgZXZlbnRzIGFzIGl0XG4gKiByZWNlaXZlcyB0aGVtLlxuICogQHR5cGUgezF9XG4gKi9cbmNvbnN0IE9QRU4gPSAxXG5cbi8qKlxuICogVGhlIGNvbm5lY3Rpb24gaXMgbm90IG9wZW4sIGFuZCB0aGUgdXNlciBhZ2VudCBpcyBub3QgdHJ5aW5nIHRvIHJlY29ubmVjdC5cbiAqIEB0eXBlIHsyfVxuICovXG5jb25zdCBDTE9TRUQgPSAyXG5cbi8qKlxuICogUmVxdWVzdHMgZm9yIHRoZSBlbGVtZW50IHdpbGwgaGF2ZSB0aGVpciBtb2RlIHNldCB0byBcImNvcnNcIiBhbmQgdGhlaXIgY3JlZGVudGlhbHMgbW9kZSBzZXQgdG8gXCJzYW1lLW9yaWdpblwiLlxuICogQHR5cGUgeydhbm9ueW1vdXMnfVxuICovXG5jb25zdCBBTk9OWU1PVVMgPSAnYW5vbnltb3VzJ1xuXG4vKipcbiAqIFJlcXVlc3RzIGZvciB0aGUgZWxlbWVudCB3aWxsIGhhdmUgdGhlaXIgbW9kZSBzZXQgdG8gXCJjb3JzXCIgYW5kIHRoZWlyIGNyZWRlbnRpYWxzIG1vZGUgc2V0IHRvIFwiaW5jbHVkZVwiLlxuICogQHR5cGUgeyd1c2UtY3JlZGVudGlhbHMnfVxuICovXG5jb25zdCBVU0VfQ1JFREVOVElBTFMgPSAndXNlLWNyZWRlbnRpYWxzJ1xuXG4vKipcbiAqIFRoZSBFdmVudFNvdXJjZSBpbnRlcmZhY2UgaXMgdXNlZCB0byByZWNlaXZlIHNlcnZlci1zZW50IGV2ZW50cy4gSXRcbiAqIGNvbm5lY3RzIHRvIGEgc2VydmVyIG92ZXIgSFRUUCBhbmQgcmVjZWl2ZXMgZXZlbnRzIGluIHRleHQvZXZlbnQtc3RyZWFtXG4gKiBmb3JtYXQgd2l0aG91dCBjbG9zaW5nIHRoZSBjb25uZWN0aW9uLlxuICogQGV4dGVuZHMge0V2ZW50VGFyZ2V0fVxuICogQHNlZSBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS9zZXJ2ZXItc2VudC1ldmVudHMuaHRtbCNzZXJ2ZXItc2VudC1ldmVudHNcbiAqIEBhcGkgcHVibGljXG4gKi9cbmNsYXNzIEV2ZW50U291cmNlIGV4dGVuZHMgRXZlbnRUYXJnZXQge1xuICAjZXZlbnRzID0ge1xuICAgIG9wZW46IG51bGwsXG4gICAgZXJyb3I6IG51bGwsXG4gICAgbWVzc2FnZTogbnVsbFxuICB9XG5cbiAgI3VybCA9IG51bGxcbiAgI3dpdGhDcmVkZW50aWFscyA9IGZhbHNlXG5cbiAgI3JlYWR5U3RhdGUgPSBDT05ORUNUSU5HXG5cbiAgI3JlcXVlc3QgPSBudWxsXG4gICNjb250cm9sbGVyID0gbnVsbFxuXG4gICNkaXNwYXRjaGVyXG5cbiAgLyoqXG4gICAqIEB0eXBlIHtpbXBvcnQoJy4vZXZlbnRzb3VyY2Utc3RyZWFtJykuZXZlbnRTb3VyY2VTZXR0aW5nc31cbiAgICovXG4gICNzdGF0ZVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IEV2ZW50U291cmNlIG9iamVjdC5cbiAgICogQHBhcmFtIHtzdHJpbmd9IHVybFxuICAgKiBAcGFyYW0ge0V2ZW50U291cmNlSW5pdH0gW2V2ZW50U291cmNlSW5pdERpY3RdXG4gICAqIEBzZWUgaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2Uvc2VydmVyLXNlbnQtZXZlbnRzLmh0bWwjdGhlLWV2ZW50c291cmNlLWludGVyZmFjZVxuICAgKi9cbiAgY29uc3RydWN0b3IgKHVybCwgZXZlbnRTb3VyY2VJbml0RGljdCA9IHt9KSB7XG4gICAgLy8gMS4gTGV0IGV2IGJlIGEgbmV3IEV2ZW50U291cmNlIG9iamVjdC5cbiAgICBzdXBlcigpXG5cbiAgICB3ZWJpZGwudXRpbC5tYXJrQXNVbmNsb25lYWJsZSh0aGlzKVxuXG4gICAgY29uc3QgcHJlZml4ID0gJ0V2ZW50U291cmNlIGNvbnN0cnVjdG9yJ1xuICAgIHdlYmlkbC5hcmd1bWVudExlbmd0aENoZWNrKGFyZ3VtZW50cywgMSwgcHJlZml4KVxuXG4gICAgaWYgKCFleHBlcmltZW50YWxXYXJuZWQpIHtcbiAgICAgIGV4cGVyaW1lbnRhbFdhcm5lZCA9IHRydWVcbiAgICAgIHByb2Nlc3MuZW1pdFdhcm5pbmcoJ0V2ZW50U291cmNlIGlzIGV4cGVyaW1lbnRhbCwgZXhwZWN0IHRoZW0gdG8gY2hhbmdlIGF0IGFueSB0aW1lLicsIHtcbiAgICAgICAgY29kZTogJ1VORElDSS1FUydcbiAgICAgIH0pXG4gICAgfVxuXG4gICAgdXJsID0gd2ViaWRsLmNvbnZlcnRlcnMuVVNWU3RyaW5nKHVybCwgcHJlZml4LCAndXJsJylcbiAgICBldmVudFNvdXJjZUluaXREaWN0ID0gd2ViaWRsLmNvbnZlcnRlcnMuRXZlbnRTb3VyY2VJbml0RGljdChldmVudFNvdXJjZUluaXREaWN0LCBwcmVmaXgsICdldmVudFNvdXJjZUluaXREaWN0JylcblxuICAgIHRoaXMuI2Rpc3BhdGNoZXIgPSBldmVudFNvdXJjZUluaXREaWN0LmRpc3BhdGNoZXJcbiAgICB0aGlzLiNzdGF0ZSA9IHtcbiAgICAgIGxhc3RFdmVudElkOiAnJyxcbiAgICAgIHJlY29ubmVjdGlvblRpbWU6IGRlZmF1bHRSZWNvbm5lY3Rpb25UaW1lXG4gICAgfVxuXG4gICAgLy8gMi4gTGV0IHNldHRpbmdzIGJlIGV2J3MgcmVsZXZhbnQgc2V0dGluZ3Mgb2JqZWN0LlxuICAgIC8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL3dlYmFwcGFwaXMuaHRtbCNlbnZpcm9ubWVudC1zZXR0aW5ncy1vYmplY3RcbiAgICBjb25zdCBzZXR0aW5ncyA9IGVudmlyb25tZW50U2V0dGluZ3NPYmplY3RcblxuICAgIGxldCB1cmxSZWNvcmRcblxuICAgIHRyeSB7XG4gICAgICAvLyAzLiBMZXQgdXJsUmVjb3JkIGJlIHRoZSByZXN1bHQgb2YgZW5jb2RpbmctcGFyc2luZyBhIFVSTCBnaXZlbiB1cmwsIHJlbGF0aXZlIHRvIHNldHRpbmdzLlxuICAgICAgdXJsUmVjb3JkID0gbmV3IFVSTCh1cmwsIHNldHRpbmdzLnNldHRpbmdzT2JqZWN0LmJhc2VVcmwpXG4gICAgICB0aGlzLiNzdGF0ZS5vcmlnaW4gPSB1cmxSZWNvcmQub3JpZ2luXG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgLy8gNC4gSWYgdXJsUmVjb3JkIGlzIGZhaWx1cmUsIHRoZW4gdGhyb3cgYSBcIlN5bnRheEVycm9yXCIgRE9NRXhjZXB0aW9uLlxuICAgICAgdGhyb3cgbmV3IERPTUV4Y2VwdGlvbihlLCAnU3ludGF4RXJyb3InKVxuICAgIH1cblxuICAgIC8vIDUuIFNldCBldidzIHVybCB0byB1cmxSZWNvcmQuXG4gICAgdGhpcy4jdXJsID0gdXJsUmVjb3JkLmhyZWZcblxuICAgIC8vIDYuIExldCBjb3JzQXR0cmlidXRlU3RhdGUgYmUgQW5vbnltb3VzLlxuICAgIGxldCBjb3JzQXR0cmlidXRlU3RhdGUgPSBBTk9OWU1PVVNcblxuICAgIC8vIDcuIElmIHRoZSB2YWx1ZSBvZiBldmVudFNvdXJjZUluaXREaWN0J3Mgd2l0aENyZWRlbnRpYWxzIG1lbWJlciBpcyB0cnVlLFxuICAgIC8vIHRoZW4gc2V0IGNvcnNBdHRyaWJ1dGVTdGF0ZSB0byBVc2UgQ3JlZGVudGlhbHMgYW5kIHNldCBldidzXG4gICAgLy8gd2l0aENyZWRlbnRpYWxzIGF0dHJpYnV0ZSB0byB0cnVlLlxuICAgIGlmIChldmVudFNvdXJjZUluaXREaWN0LndpdGhDcmVkZW50aWFscykge1xuICAgICAgY29yc0F0dHJpYnV0ZVN0YXRlID0gVVNFX0NSRURFTlRJQUxTXG4gICAgICB0aGlzLiN3aXRoQ3JlZGVudGlhbHMgPSB0cnVlXG4gICAgfVxuXG4gICAgLy8gOC4gTGV0IHJlcXVlc3QgYmUgdGhlIHJlc3VsdCBvZiBjcmVhdGluZyBhIHBvdGVudGlhbC1DT1JTIHJlcXVlc3QgZ2l2ZW5cbiAgICAvLyB1cmxSZWNvcmQsIHRoZSBlbXB0eSBzdHJpbmcsIGFuZCBjb3JzQXR0cmlidXRlU3RhdGUuXG4gICAgY29uc3QgaW5pdFJlcXVlc3QgPSB7XG4gICAgICByZWRpcmVjdDogJ2ZvbGxvdycsXG4gICAgICBrZWVwYWxpdmU6IHRydWUsXG4gICAgICAvLyBAc2VlIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL3VybHMtYW5kLWZldGNoaW5nLmh0bWwjY29ycy1zZXR0aW5ncy1hdHRyaWJ1dGVzXG4gICAgICBtb2RlOiAnY29ycycsXG4gICAgICBjcmVkZW50aWFsczogY29yc0F0dHJpYnV0ZVN0YXRlID09PSAnYW5vbnltb3VzJ1xuICAgICAgICA/ICdzYW1lLW9yaWdpbidcbiAgICAgICAgOiAnb21pdCcsXG4gICAgICByZWZlcnJlcjogJ25vLXJlZmVycmVyJ1xuICAgIH1cblxuICAgIC8vIDkuIFNldCByZXF1ZXN0J3MgY2xpZW50IHRvIHNldHRpbmdzLlxuICAgIGluaXRSZXF1ZXN0LmNsaWVudCA9IGVudmlyb25tZW50U2V0dGluZ3NPYmplY3Quc2V0dGluZ3NPYmplY3RcblxuICAgIC8vIDEwLiBVc2VyIGFnZW50cyBtYXkgc2V0IChgQWNjZXB0YCwgYHRleHQvZXZlbnQtc3RyZWFtYCkgaW4gcmVxdWVzdCdzIGhlYWRlciBsaXN0LlxuICAgIGluaXRSZXF1ZXN0LmhlYWRlcnNMaXN0ID0gW1snYWNjZXB0JywgeyBuYW1lOiAnYWNjZXB0JywgdmFsdWU6ICd0ZXh0L2V2ZW50LXN0cmVhbScgfV1dXG5cbiAgICAvLyAxMS4gU2V0IHJlcXVlc3QncyBjYWNoZSBtb2RlIHRvIFwibm8tc3RvcmVcIi5cbiAgICBpbml0UmVxdWVzdC5jYWNoZSA9ICduby1zdG9yZSdcblxuICAgIC8vIDEyLiBTZXQgcmVxdWVzdCdzIGluaXRpYXRvciB0eXBlIHRvIFwib3RoZXJcIi5cbiAgICBpbml0UmVxdWVzdC5pbml0aWF0b3IgPSAnb3RoZXInXG5cbiAgICBpbml0UmVxdWVzdC51cmxMaXN0ID0gW25ldyBVUkwodGhpcy4jdXJsKV1cblxuICAgIC8vIDEzLiBTZXQgZXYncyByZXF1ZXN0IHRvIHJlcXVlc3QuXG4gICAgdGhpcy4jcmVxdWVzdCA9IG1ha2VSZXF1ZXN0KGluaXRSZXF1ZXN0KVxuXG4gICAgdGhpcy4jY29ubmVjdCgpXG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgc3RhdGUgb2YgdGhpcyBFdmVudFNvdXJjZSBvYmplY3QncyBjb25uZWN0aW9uLiBJdCBjYW4gaGF2ZSB0aGVcbiAgICogdmFsdWVzIGRlc2NyaWJlZCBiZWxvdy5cbiAgICogQHJldHVybnMgezB8MXwyfVxuICAgKiBAcmVhZG9ubHlcbiAgICovXG4gIGdldCByZWFkeVN0YXRlICgpIHtcbiAgICByZXR1cm4gdGhpcy4jcmVhZHlTdGF0ZVxuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIFVSTCBwcm92aWRpbmcgdGhlIGV2ZW50IHN0cmVhbS5cbiAgICogQHJlYWRvbmx5XG4gICAqIEByZXR1cm5zIHtzdHJpbmd9XG4gICAqL1xuICBnZXQgdXJsICgpIHtcbiAgICByZXR1cm4gdGhpcy4jdXJsXG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhIGJvb2xlYW4gaW5kaWNhdGluZyB3aGV0aGVyIHRoZSBFdmVudFNvdXJjZSBvYmplY3Qgd2FzXG4gICAqIGluc3RhbnRpYXRlZCB3aXRoIENPUlMgY3JlZGVudGlhbHMgc2V0ICh0cnVlKSwgb3Igbm90IChmYWxzZSwgdGhlIGRlZmF1bHQpLlxuICAgKi9cbiAgZ2V0IHdpdGhDcmVkZW50aWFscyAoKSB7XG4gICAgcmV0dXJuIHRoaXMuI3dpdGhDcmVkZW50aWFsc1xuICB9XG5cbiAgI2Nvbm5lY3QgKCkge1xuICAgIGlmICh0aGlzLiNyZWFkeVN0YXRlID09PSBDTE9TRUQpIHJldHVyblxuXG4gICAgdGhpcy4jcmVhZHlTdGF0ZSA9IENPTk5FQ1RJTkdcblxuICAgIGNvbnN0IGZldGNoUGFyYW1zID0ge1xuICAgICAgcmVxdWVzdDogdGhpcy4jcmVxdWVzdCxcbiAgICAgIGRpc3BhdGNoZXI6IHRoaXMuI2Rpc3BhdGNoZXJcbiAgICB9XG5cbiAgICAvLyAxNC4gTGV0IHByb2Nlc3NFdmVudFNvdXJjZUVuZE9mQm9keSBnaXZlbiByZXNwb25zZSByZXMgYmUgdGhlIGZvbGxvd2luZyBzdGVwOiBpZiByZXMgaXMgbm90IGEgbmV0d29yayBlcnJvciwgdGhlbiByZWVzdGFibGlzaCB0aGUgY29ubmVjdGlvbi5cbiAgICBjb25zdCBwcm9jZXNzRXZlbnRTb3VyY2VFbmRPZkJvZHkgPSAocmVzcG9uc2UpID0+IHtcbiAgICAgIGlmIChpc05ldHdvcmtFcnJvcihyZXNwb25zZSkpIHtcbiAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgnZXJyb3InKSlcbiAgICAgICAgdGhpcy5jbG9zZSgpXG4gICAgICB9XG5cbiAgICAgIHRoaXMuI3JlY29ubmVjdCgpXG4gICAgfVxuXG4gICAgLy8gMTUuIEZldGNoIHJlcXVlc3QsIHdpdGggcHJvY2Vzc1Jlc3BvbnNlRW5kT2ZCb2R5IHNldCB0byBwcm9jZXNzRXZlbnRTb3VyY2VFbmRPZkJvZHkuLi5cbiAgICBmZXRjaFBhcmFtcy5wcm9jZXNzUmVzcG9uc2VFbmRPZkJvZHkgPSBwcm9jZXNzRXZlbnRTb3VyY2VFbmRPZkJvZHlcblxuICAgIC8vIGFuZCBwcm9jZXNzUmVzcG9uc2Ugc2V0IHRvIHRoZSBmb2xsb3dpbmcgc3RlcHMgZ2l2ZW4gcmVzcG9uc2UgcmVzOlxuICAgIGZldGNoUGFyYW1zLnByb2Nlc3NSZXNwb25zZSA9IChyZXNwb25zZSkgPT4ge1xuICAgICAgLy8gMS4gSWYgcmVzIGlzIGFuIGFib3J0ZWQgbmV0d29yayBlcnJvciwgdGhlbiBmYWlsIHRoZSBjb25uZWN0aW9uLlxuXG4gICAgICBpZiAoaXNOZXR3b3JrRXJyb3IocmVzcG9uc2UpKSB7XG4gICAgICAgIC8vIDEuIFdoZW4gYSB1c2VyIGFnZW50IGlzIHRvIGZhaWwgdGhlIGNvbm5lY3Rpb24sIHRoZSB1c2VyIGFnZW50XG4gICAgICAgIC8vIG11c3QgcXVldWUgYSB0YXNrIHdoaWNoLCBpZiB0aGUgcmVhZHlTdGF0ZSBhdHRyaWJ1dGUgaXMgc2V0IHRvIGFcbiAgICAgICAgLy8gdmFsdWUgb3RoZXIgdGhhbiBDTE9TRUQsIHNldHMgdGhlIHJlYWR5U3RhdGUgYXR0cmlidXRlIHRvIENMT1NFRFxuICAgICAgICAvLyBhbmQgZmlyZXMgYW4gZXZlbnQgbmFtZWQgZXJyb3IgYXQgdGhlIEV2ZW50U291cmNlIG9iamVjdC4gT25jZSB0aGVcbiAgICAgICAgLy8gdXNlciBhZ2VudCBoYXMgZmFpbGVkIHRoZSBjb25uZWN0aW9uLCBpdCBkb2VzIG5vdCBhdHRlbXB0IHRvXG4gICAgICAgIC8vIHJlY29ubmVjdC5cbiAgICAgICAgaWYgKHJlc3BvbnNlLmFib3J0ZWQpIHtcbiAgICAgICAgICB0aGlzLmNsb3NlKClcbiAgICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCdlcnJvcicpKVxuICAgICAgICAgIHJldHVyblxuICAgICAgICAgIC8vIDIuIE90aGVyd2lzZSwgaWYgcmVzIGlzIGEgbmV0d29yayBlcnJvciwgdGhlbiByZWVzdGFibGlzaCB0aGVcbiAgICAgICAgICAvLyBjb25uZWN0aW9uLCB1bmxlc3MgdGhlIHVzZXIgYWdlbnQga25vd3MgdGhhdCB0byBiZSBmdXRpbGUsIGluXG4gICAgICAgICAgLy8gd2hpY2ggY2FzZSB0aGUgdXNlciBhZ2VudCBtYXkgZmFpbCB0aGUgY29ubmVjdGlvbi5cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLiNyZWNvbm5lY3QoKVxuICAgICAgICAgIHJldHVyblxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIDMuIE90aGVyd2lzZSwgaWYgcmVzJ3Mgc3RhdHVzIGlzIG5vdCAyMDAsIG9yIGlmIHJlcydzIGBDb250ZW50LVR5cGVgXG4gICAgICAvLyBpcyBub3QgYHRleHQvZXZlbnQtc3RyZWFtYCwgdGhlbiBmYWlsIHRoZSBjb25uZWN0aW9uLlxuICAgICAgY29uc3QgY29udGVudFR5cGUgPSByZXNwb25zZS5oZWFkZXJzTGlzdC5nZXQoJ2NvbnRlbnQtdHlwZScsIHRydWUpXG4gICAgICBjb25zdCBtaW1lVHlwZSA9IGNvbnRlbnRUeXBlICE9PSBudWxsID8gcGFyc2VNSU1FVHlwZShjb250ZW50VHlwZSkgOiAnZmFpbHVyZSdcbiAgICAgIGNvbnN0IGNvbnRlbnRUeXBlVmFsaWQgPSBtaW1lVHlwZSAhPT0gJ2ZhaWx1cmUnICYmIG1pbWVUeXBlLmVzc2VuY2UgPT09ICd0ZXh0L2V2ZW50LXN0cmVhbSdcbiAgICAgIGlmIChcbiAgICAgICAgcmVzcG9uc2Uuc3RhdHVzICE9PSAyMDAgfHxcbiAgICAgICAgY29udGVudFR5cGVWYWxpZCA9PT0gZmFsc2VcbiAgICAgICkge1xuICAgICAgICB0aGlzLmNsb3NlKClcbiAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgnZXJyb3InKSlcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIC8vIDQuIE90aGVyd2lzZSwgYW5ub3VuY2UgdGhlIGNvbm5lY3Rpb24gYW5kIGludGVycHJldCByZXMncyBib2R5XG4gICAgICAvLyBsaW5lIGJ5IGxpbmUuXG5cbiAgICAgIC8vIFdoZW4gYSB1c2VyIGFnZW50IGlzIHRvIGFubm91bmNlIHRoZSBjb25uZWN0aW9uLCB0aGUgdXNlciBhZ2VudFxuICAgICAgLy8gbXVzdCBxdWV1ZSBhIHRhc2sgd2hpY2gsIGlmIHRoZSByZWFkeVN0YXRlIGF0dHJpYnV0ZSBpcyBzZXQgdG8gYVxuICAgICAgLy8gdmFsdWUgb3RoZXIgdGhhbiBDTE9TRUQsIHNldHMgdGhlIHJlYWR5U3RhdGUgYXR0cmlidXRlIHRvIE9QRU5cbiAgICAgIC8vIGFuZCBmaXJlcyBhbiBldmVudCBuYW1lZCBvcGVuIGF0IHRoZSBFdmVudFNvdXJjZSBvYmplY3QuXG4gICAgICAvLyBAc2VlIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL3NlcnZlci1zZW50LWV2ZW50cy5odG1sI3NzZS1wcm9jZXNzaW5nLW1vZGVsXG4gICAgICB0aGlzLiNyZWFkeVN0YXRlID0gT1BFTlxuICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgnb3BlbicpKVxuXG4gICAgICAvLyBJZiByZWRpcmVjdGVkIHRvIGEgZGlmZmVyZW50IG9yaWdpbiwgc2V0IHRoZSBvcmlnaW4gdG8gdGhlIG5ldyBvcmlnaW4uXG4gICAgICB0aGlzLiNzdGF0ZS5vcmlnaW4gPSByZXNwb25zZS51cmxMaXN0W3Jlc3BvbnNlLnVybExpc3QubGVuZ3RoIC0gMV0ub3JpZ2luXG5cbiAgICAgIGNvbnN0IGV2ZW50U291cmNlU3RyZWFtID0gbmV3IEV2ZW50U291cmNlU3RyZWFtKHtcbiAgICAgICAgZXZlbnRTb3VyY2VTZXR0aW5nczogdGhpcy4jc3RhdGUsXG4gICAgICAgIHB1c2g6IChldmVudCkgPT4ge1xuICAgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudChjcmVhdGVGYXN0TWVzc2FnZUV2ZW50KFxuICAgICAgICAgICAgZXZlbnQudHlwZSxcbiAgICAgICAgICAgIGV2ZW50Lm9wdGlvbnNcbiAgICAgICAgICApKVxuICAgICAgICB9XG4gICAgICB9KVxuXG4gICAgICBwaXBlbGluZShyZXNwb25zZS5ib2R5LnN0cmVhbSxcbiAgICAgICAgZXZlbnRTb3VyY2VTdHJlYW0sXG4gICAgICAgIChlcnJvcikgPT4ge1xuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIGVycm9yPy5hYm9ydGVkID09PSBmYWxzZVxuICAgICAgICAgICkge1xuICAgICAgICAgICAgdGhpcy5jbG9zZSgpXG4gICAgICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCdlcnJvcicpKVxuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICB9XG5cbiAgICB0aGlzLiNjb250cm9sbGVyID0gZmV0Y2hpbmcoZmV0Y2hQYXJhbXMpXG4gIH1cblxuICAvKipcbiAgICogQHNlZSBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS9zZXJ2ZXItc2VudC1ldmVudHMuaHRtbCNzc2UtcHJvY2Vzc2luZy1tb2RlbFxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn1cbiAgICovXG4gIGFzeW5jICNyZWNvbm5lY3QgKCkge1xuICAgIC8vIFdoZW4gYSB1c2VyIGFnZW50IGlzIHRvIHJlZXN0YWJsaXNoIHRoZSBjb25uZWN0aW9uLCB0aGUgdXNlciBhZ2VudCBtdXN0XG4gICAgLy8gcnVuIHRoZSBmb2xsb3dpbmcgc3RlcHMuIFRoZXNlIHN0ZXBzIGFyZSBydW4gaW4gcGFyYWxsZWwsIG5vdCBhcyBwYXJ0IG9mXG4gICAgLy8gYSB0YXNrLiAoVGhlIHRhc2tzIHRoYXQgaXQgcXVldWVzLCBvZiBjb3Vyc2UsIGFyZSBydW4gbGlrZSBub3JtYWwgdGFza3NcbiAgICAvLyBhbmQgbm90IHRoZW1zZWx2ZXMgaW4gcGFyYWxsZWwuKVxuXG4gICAgLy8gMS4gUXVldWUgYSB0YXNrIHRvIHJ1biB0aGUgZm9sbG93aW5nIHN0ZXBzOlxuXG4gICAgLy8gICAxLiBJZiB0aGUgcmVhZHlTdGF0ZSBhdHRyaWJ1dGUgaXMgc2V0IHRvIENMT1NFRCwgYWJvcnQgdGhlIHRhc2suXG4gICAgaWYgKHRoaXMuI3JlYWR5U3RhdGUgPT09IENMT1NFRCkgcmV0dXJuXG5cbiAgICAvLyAgIDIuIFNldCB0aGUgcmVhZHlTdGF0ZSBhdHRyaWJ1dGUgdG8gQ09OTkVDVElORy5cbiAgICB0aGlzLiNyZWFkeVN0YXRlID0gQ09OTkVDVElOR1xuXG4gICAgLy8gICAzLiBGaXJlIGFuIGV2ZW50IG5hbWVkIGVycm9yIGF0IHRoZSBFdmVudFNvdXJjZSBvYmplY3QuXG4gICAgdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgnZXJyb3InKSlcblxuICAgIC8vIDIuIFdhaXQgYSBkZWxheSBlcXVhbCB0byB0aGUgcmVjb25uZWN0aW9uIHRpbWUgb2YgdGhlIGV2ZW50IHNvdXJjZS5cbiAgICBhd2FpdCBkZWxheSh0aGlzLiNzdGF0ZS5yZWNvbm5lY3Rpb25UaW1lKVxuXG4gICAgLy8gNS4gUXVldWUgYSB0YXNrIHRvIHJ1biB0aGUgZm9sbG93aW5nIHN0ZXBzOlxuXG4gICAgLy8gICAxLiBJZiB0aGUgRXZlbnRTb3VyY2Ugb2JqZWN0J3MgcmVhZHlTdGF0ZSBhdHRyaWJ1dGUgaXMgbm90IHNldCB0b1xuICAgIC8vICAgICAgQ09OTkVDVElORywgdGhlbiByZXR1cm4uXG4gICAgaWYgKHRoaXMuI3JlYWR5U3RhdGUgIT09IENPTk5FQ1RJTkcpIHJldHVyblxuXG4gICAgLy8gICAyLiBMZXQgcmVxdWVzdCBiZSB0aGUgRXZlbnRTb3VyY2Ugb2JqZWN0J3MgcmVxdWVzdC5cbiAgICAvLyAgIDMuIElmIHRoZSBFdmVudFNvdXJjZSBvYmplY3QncyBsYXN0IGV2ZW50IElEIHN0cmluZyBpcyBub3QgdGhlIGVtcHR5XG4gICAgLy8gICAgICBzdHJpbmcsIHRoZW46XG4gICAgLy8gICAgICAxLiBMZXQgbGFzdEV2ZW50SURWYWx1ZSBiZSB0aGUgRXZlbnRTb3VyY2Ugb2JqZWN0J3MgbGFzdCBldmVudCBJRFxuICAgIC8vICAgICAgICAgc3RyaW5nLCBlbmNvZGVkIGFzIFVURi04LlxuICAgIC8vICAgICAgMi4gU2V0IChgTGFzdC1FdmVudC1JRGAsIGxhc3RFdmVudElEVmFsdWUpIGluIHJlcXVlc3QncyBoZWFkZXJcbiAgICAvLyAgICAgICAgIGxpc3QuXG4gICAgaWYgKHRoaXMuI3N0YXRlLmxhc3RFdmVudElkLmxlbmd0aCkge1xuICAgICAgdGhpcy4jcmVxdWVzdC5oZWFkZXJzTGlzdC5zZXQoJ2xhc3QtZXZlbnQtaWQnLCB0aGlzLiNzdGF0ZS5sYXN0RXZlbnRJZCwgdHJ1ZSlcbiAgICB9XG5cbiAgICAvLyAgIDQuIEZldGNoIHJlcXVlc3QgYW5kIHByb2Nlc3MgdGhlIHJlc3BvbnNlIG9idGFpbmVkIGluIHRoaXMgZmFzaGlvbiwgaWYgYW55LCBhcyBkZXNjcmliZWQgZWFybGllciBpbiB0aGlzIHNlY3Rpb24uXG4gICAgdGhpcy4jY29ubmVjdCgpXG4gIH1cblxuICAvKipcbiAgICogQ2xvc2VzIHRoZSBjb25uZWN0aW9uLCBpZiBhbnksIGFuZCBzZXRzIHRoZSByZWFkeVN0YXRlIGF0dHJpYnV0ZSB0b1xuICAgKiBDTE9TRUQuXG4gICAqL1xuICBjbG9zZSAoKSB7XG4gICAgd2ViaWRsLmJyYW5kQ2hlY2sodGhpcywgRXZlbnRTb3VyY2UpXG5cbiAgICBpZiAodGhpcy4jcmVhZHlTdGF0ZSA9PT0gQ0xPU0VEKSByZXR1cm5cbiAgICB0aGlzLiNyZWFkeVN0YXRlID0gQ0xPU0VEXG4gICAgdGhpcy4jY29udHJvbGxlci5hYm9ydCgpXG4gICAgdGhpcy4jcmVxdWVzdCA9IG51bGxcbiAgfVxuXG4gIGdldCBvbm9wZW4gKCkge1xuICAgIHJldHVybiB0aGlzLiNldmVudHMub3BlblxuICB9XG5cbiAgc2V0IG9ub3BlbiAoZm4pIHtcbiAgICBpZiAodGhpcy4jZXZlbnRzLm9wZW4pIHtcbiAgICAgIHRoaXMucmVtb3ZlRXZlbnRMaXN0ZW5lcignb3BlbicsIHRoaXMuI2V2ZW50cy5vcGVuKVxuICAgIH1cblxuICAgIGlmICh0eXBlb2YgZm4gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHRoaXMuI2V2ZW50cy5vcGVuID0gZm5cbiAgICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcignb3BlbicsIGZuKVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLiNldmVudHMub3BlbiA9IG51bGxcbiAgICB9XG4gIH1cblxuICBnZXQgb25tZXNzYWdlICgpIHtcbiAgICByZXR1cm4gdGhpcy4jZXZlbnRzLm1lc3NhZ2VcbiAgfVxuXG4gIHNldCBvbm1lc3NhZ2UgKGZuKSB7XG4gICAgaWYgKHRoaXMuI2V2ZW50cy5tZXNzYWdlKSB7XG4gICAgICB0aGlzLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCB0aGlzLiNldmVudHMubWVzc2FnZSlcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIGZuID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICB0aGlzLiNldmVudHMubWVzc2FnZSA9IGZuXG4gICAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCBmbilcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy4jZXZlbnRzLm1lc3NhZ2UgPSBudWxsXG4gICAgfVxuICB9XG5cbiAgZ2V0IG9uZXJyb3IgKCkge1xuICAgIHJldHVybiB0aGlzLiNldmVudHMuZXJyb3JcbiAgfVxuXG4gIHNldCBvbmVycm9yIChmbikge1xuICAgIGlmICh0aGlzLiNldmVudHMuZXJyb3IpIHtcbiAgICAgIHRoaXMucmVtb3ZlRXZlbnRMaXN0ZW5lcignZXJyb3InLCB0aGlzLiNldmVudHMuZXJyb3IpXG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBmbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgdGhpcy4jZXZlbnRzLmVycm9yID0gZm5cbiAgICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcignZXJyb3InLCBmbilcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy4jZXZlbnRzLmVycm9yID0gbnVsbFxuICAgIH1cbiAgfVxufVxuXG5jb25zdCBjb25zdGFudHNQcm9wZXJ0eURlc2NyaXB0b3JzID0ge1xuICBDT05ORUNUSU5HOiB7XG4gICAgX19wcm90b19fOiBudWxsLFxuICAgIGNvbmZpZ3VyYWJsZTogZmFsc2UsXG4gICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICB2YWx1ZTogQ09OTkVDVElORyxcbiAgICB3cml0YWJsZTogZmFsc2VcbiAgfSxcbiAgT1BFTjoge1xuICAgIF9fcHJvdG9fXzogbnVsbCxcbiAgICBjb25maWd1cmFibGU6IGZhbHNlLFxuICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgdmFsdWU6IE9QRU4sXG4gICAgd3JpdGFibGU6IGZhbHNlXG4gIH0sXG4gIENMT1NFRDoge1xuICAgIF9fcHJvdG9fXzogbnVsbCxcbiAgICBjb25maWd1cmFibGU6IGZhbHNlLFxuICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgdmFsdWU6IENMT1NFRCxcbiAgICB3cml0YWJsZTogZmFsc2VcbiAgfVxufVxuXG5PYmplY3QuZGVmaW5lUHJvcGVydGllcyhFdmVudFNvdXJjZSwgY29uc3RhbnRzUHJvcGVydHlEZXNjcmlwdG9ycylcbk9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKEV2ZW50U291cmNlLnByb3RvdHlwZSwgY29uc3RhbnRzUHJvcGVydHlEZXNjcmlwdG9ycylcblxuT2JqZWN0LmRlZmluZVByb3BlcnRpZXMoRXZlbnRTb3VyY2UucHJvdG90eXBlLCB7XG4gIGNsb3NlOiBrRW51bWVyYWJsZVByb3BlcnR5LFxuICBvbmVycm9yOiBrRW51bWVyYWJsZVByb3BlcnR5LFxuICBvbm1lc3NhZ2U6IGtFbnVtZXJhYmxlUHJvcGVydHksXG4gIG9ub3Blbjoga0VudW1lcmFibGVQcm9wZXJ0eSxcbiAgcmVhZHlTdGF0ZToga0VudW1lcmFibGVQcm9wZXJ0eSxcbiAgdXJsOiBrRW51bWVyYWJsZVByb3BlcnR5LFxuICB3aXRoQ3JlZGVudGlhbHM6IGtFbnVtZXJhYmxlUHJvcGVydHlcbn0pXG5cbndlYmlkbC5jb252ZXJ0ZXJzLkV2ZW50U291cmNlSW5pdERpY3QgPSB3ZWJpZGwuZGljdGlvbmFyeUNvbnZlcnRlcihbXG4gIHtcbiAgICBrZXk6ICd3aXRoQ3JlZGVudGlhbHMnLFxuICAgIGNvbnZlcnRlcjogd2ViaWRsLmNvbnZlcnRlcnMuYm9vbGVhbixcbiAgICBkZWZhdWx0VmFsdWU6ICgpID0+IGZhbHNlXG4gIH0sXG4gIHtcbiAgICBrZXk6ICdkaXNwYXRjaGVyJywgLy8gdW5kaWNpIG9ubHlcbiAgICBjb252ZXJ0ZXI6IHdlYmlkbC5jb252ZXJ0ZXJzLmFueVxuICB9XG5dKVxuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgRXZlbnRTb3VyY2UsXG4gIGRlZmF1bHRSZWNvbm5lY3Rpb25UaW1lXG59XG4iLCAiJ3VzZSBzdHJpY3QnXG5cbmNvbnN0IENsaWVudCA9IHJlcXVpcmUoJy4vbGliL2Rpc3BhdGNoZXIvY2xpZW50JylcbmNvbnN0IERpc3BhdGNoZXIgPSByZXF1aXJlKCcuL2xpYi9kaXNwYXRjaGVyL2Rpc3BhdGNoZXInKVxuY29uc3QgUG9vbCA9IHJlcXVpcmUoJy4vbGliL2Rpc3BhdGNoZXIvcG9vbCcpXG5jb25zdCBCYWxhbmNlZFBvb2wgPSByZXF1aXJlKCcuL2xpYi9kaXNwYXRjaGVyL2JhbGFuY2VkLXBvb2wnKVxuY29uc3QgQWdlbnQgPSByZXF1aXJlKCcuL2xpYi9kaXNwYXRjaGVyL2FnZW50JylcbmNvbnN0IFByb3h5QWdlbnQgPSByZXF1aXJlKCcuL2xpYi9kaXNwYXRjaGVyL3Byb3h5LWFnZW50JylcbmNvbnN0IEVudkh0dHBQcm94eUFnZW50ID0gcmVxdWlyZSgnLi9saWIvZGlzcGF0Y2hlci9lbnYtaHR0cC1wcm94eS1hZ2VudCcpXG5jb25zdCBSZXRyeUFnZW50ID0gcmVxdWlyZSgnLi9saWIvZGlzcGF0Y2hlci9yZXRyeS1hZ2VudCcpXG5jb25zdCBlcnJvcnMgPSByZXF1aXJlKCcuL2xpYi9jb3JlL2Vycm9ycycpXG5jb25zdCB1dGlsID0gcmVxdWlyZSgnLi9saWIvY29yZS91dGlsJylcbmNvbnN0IHsgSW52YWxpZEFyZ3VtZW50RXJyb3IgfSA9IGVycm9yc1xuY29uc3QgYXBpID0gcmVxdWlyZSgnLi9saWIvYXBpJylcbmNvbnN0IGJ1aWxkQ29ubmVjdG9yID0gcmVxdWlyZSgnLi9saWIvY29yZS9jb25uZWN0JylcbmNvbnN0IE1vY2tDbGllbnQgPSByZXF1aXJlKCcuL2xpYi9tb2NrL21vY2stY2xpZW50JylcbmNvbnN0IE1vY2tBZ2VudCA9IHJlcXVpcmUoJy4vbGliL21vY2svbW9jay1hZ2VudCcpXG5jb25zdCBNb2NrUG9vbCA9IHJlcXVpcmUoJy4vbGliL21vY2svbW9jay1wb29sJylcbmNvbnN0IG1vY2tFcnJvcnMgPSByZXF1aXJlKCcuL2xpYi9tb2NrL21vY2stZXJyb3JzJylcbmNvbnN0IFJldHJ5SGFuZGxlciA9IHJlcXVpcmUoJy4vbGliL2hhbmRsZXIvcmV0cnktaGFuZGxlcicpXG5jb25zdCB7IGdldEdsb2JhbERpc3BhdGNoZXIsIHNldEdsb2JhbERpc3BhdGNoZXIgfSA9IHJlcXVpcmUoJy4vbGliL2dsb2JhbCcpXG5jb25zdCBEZWNvcmF0b3JIYW5kbGVyID0gcmVxdWlyZSgnLi9saWIvaGFuZGxlci9kZWNvcmF0b3ItaGFuZGxlcicpXG5jb25zdCBSZWRpcmVjdEhhbmRsZXIgPSByZXF1aXJlKCcuL2xpYi9oYW5kbGVyL3JlZGlyZWN0LWhhbmRsZXInKVxuY29uc3QgY3JlYXRlUmVkaXJlY3RJbnRlcmNlcHRvciA9IHJlcXVpcmUoJy4vbGliL2ludGVyY2VwdG9yL3JlZGlyZWN0LWludGVyY2VwdG9yJylcblxuT2JqZWN0LmFzc2lnbihEaXNwYXRjaGVyLnByb3RvdHlwZSwgYXBpKVxuXG5tb2R1bGUuZXhwb3J0cy5EaXNwYXRjaGVyID0gRGlzcGF0Y2hlclxubW9kdWxlLmV4cG9ydHMuQ2xpZW50ID0gQ2xpZW50XG5tb2R1bGUuZXhwb3J0cy5Qb29sID0gUG9vbFxubW9kdWxlLmV4cG9ydHMuQmFsYW5jZWRQb29sID0gQmFsYW5jZWRQb29sXG5tb2R1bGUuZXhwb3J0cy5BZ2VudCA9IEFnZW50XG5tb2R1bGUuZXhwb3J0cy5Qcm94eUFnZW50ID0gUHJveHlBZ2VudFxubW9kdWxlLmV4cG9ydHMuRW52SHR0cFByb3h5QWdlbnQgPSBFbnZIdHRwUHJveHlBZ2VudFxubW9kdWxlLmV4cG9ydHMuUmV0cnlBZ2VudCA9IFJldHJ5QWdlbnRcbm1vZHVsZS5leHBvcnRzLlJldHJ5SGFuZGxlciA9IFJldHJ5SGFuZGxlclxuXG5tb2R1bGUuZXhwb3J0cy5EZWNvcmF0b3JIYW5kbGVyID0gRGVjb3JhdG9ySGFuZGxlclxubW9kdWxlLmV4cG9ydHMuUmVkaXJlY3RIYW5kbGVyID0gUmVkaXJlY3RIYW5kbGVyXG5tb2R1bGUuZXhwb3J0cy5jcmVhdGVSZWRpcmVjdEludGVyY2VwdG9yID0gY3JlYXRlUmVkaXJlY3RJbnRlcmNlcHRvclxubW9kdWxlLmV4cG9ydHMuaW50ZXJjZXB0b3JzID0ge1xuICByZWRpcmVjdDogcmVxdWlyZSgnLi9saWIvaW50ZXJjZXB0b3IvcmVkaXJlY3QnKSxcbiAgcmV0cnk6IHJlcXVpcmUoJy4vbGliL2ludGVyY2VwdG9yL3JldHJ5JyksXG4gIGR1bXA6IHJlcXVpcmUoJy4vbGliL2ludGVyY2VwdG9yL2R1bXAnKSxcbiAgZG5zOiByZXF1aXJlKCcuL2xpYi9pbnRlcmNlcHRvci9kbnMnKVxufVxuXG5tb2R1bGUuZXhwb3J0cy5idWlsZENvbm5lY3RvciA9IGJ1aWxkQ29ubmVjdG9yXG5tb2R1bGUuZXhwb3J0cy5lcnJvcnMgPSBlcnJvcnNcbm1vZHVsZS5leHBvcnRzLnV0aWwgPSB7XG4gIHBhcnNlSGVhZGVyczogdXRpbC5wYXJzZUhlYWRlcnMsXG4gIGhlYWRlck5hbWVUb1N0cmluZzogdXRpbC5oZWFkZXJOYW1lVG9TdHJpbmdcbn1cblxuZnVuY3Rpb24gbWFrZURpc3BhdGNoZXIgKGZuKSB7XG4gIHJldHVybiAodXJsLCBvcHRzLCBoYW5kbGVyKSA9PiB7XG4gICAgaWYgKHR5cGVvZiBvcHRzID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBoYW5kbGVyID0gb3B0c1xuICAgICAgb3B0cyA9IG51bGxcbiAgICB9XG5cbiAgICBpZiAoIXVybCB8fCAodHlwZW9mIHVybCAhPT0gJ3N0cmluZycgJiYgdHlwZW9mIHVybCAhPT0gJ29iamVjdCcgJiYgISh1cmwgaW5zdGFuY2VvZiBVUkwpKSkge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudEVycm9yKCdpbnZhbGlkIHVybCcpXG4gICAgfVxuXG4gICAgaWYgKG9wdHMgIT0gbnVsbCAmJiB0eXBlb2Ygb3B0cyAhPT0gJ29iamVjdCcpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRFcnJvcignaW52YWxpZCBvcHRzJylcbiAgICB9XG5cbiAgICBpZiAob3B0cyAmJiBvcHRzLnBhdGggIT0gbnVsbCkge1xuICAgICAgaWYgKHR5cGVvZiBvcHRzLnBhdGggIT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRFcnJvcignaW52YWxpZCBvcHRzLnBhdGgnKVxuICAgICAgfVxuXG4gICAgICBsZXQgcGF0aCA9IG9wdHMucGF0aFxuICAgICAgaWYgKCFvcHRzLnBhdGguc3RhcnRzV2l0aCgnLycpKSB7XG4gICAgICAgIHBhdGggPSBgLyR7cGF0aH1gXG4gICAgICB9XG5cbiAgICAgIHVybCA9IG5ldyBVUkwodXRpbC5wYXJzZU9yaWdpbih1cmwpLm9yaWdpbiArIHBhdGgpXG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICghb3B0cykge1xuICAgICAgICBvcHRzID0gdHlwZW9mIHVybCA9PT0gJ29iamVjdCcgPyB1cmwgOiB7fVxuICAgICAgfVxuXG4gICAgICB1cmwgPSB1dGlsLnBhcnNlVVJMKHVybClcbiAgICB9XG5cbiAgICBjb25zdCB7IGFnZW50LCBkaXNwYXRjaGVyID0gZ2V0R2xvYmFsRGlzcGF0Y2hlcigpIH0gPSBvcHRzXG5cbiAgICBpZiAoYWdlbnQpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRFcnJvcigndW5zdXBwb3J0ZWQgb3B0cy5hZ2VudC4gRGlkIHlvdSBtZWFuIG9wdHMuY2xpZW50PycpXG4gICAgfVxuXG4gICAgcmV0dXJuIGZuLmNhbGwoZGlzcGF0Y2hlciwge1xuICAgICAgLi4ub3B0cyxcbiAgICAgIG9yaWdpbjogdXJsLm9yaWdpbixcbiAgICAgIHBhdGg6IHVybC5zZWFyY2ggPyBgJHt1cmwucGF0aG5hbWV9JHt1cmwuc2VhcmNofWAgOiB1cmwucGF0aG5hbWUsXG4gICAgICBtZXRob2Q6IG9wdHMubWV0aG9kIHx8IChvcHRzLmJvZHkgPyAnUFVUJyA6ICdHRVQnKVxuICAgIH0sIGhhbmRsZXIpXG4gIH1cbn1cblxubW9kdWxlLmV4cG9ydHMuc2V0R2xvYmFsRGlzcGF0Y2hlciA9IHNldEdsb2JhbERpc3BhdGNoZXJcbm1vZHVsZS5leHBvcnRzLmdldEdsb2JhbERpc3BhdGNoZXIgPSBnZXRHbG9iYWxEaXNwYXRjaGVyXG5cbmNvbnN0IGZldGNoSW1wbCA9IHJlcXVpcmUoJy4vbGliL3dlYi9mZXRjaCcpLmZldGNoXG5tb2R1bGUuZXhwb3J0cy5mZXRjaCA9IGFzeW5jIGZ1bmN0aW9uIGZldGNoIChpbml0LCBvcHRpb25zID0gdW5kZWZpbmVkKSB7XG4gIHRyeSB7XG4gICAgcmV0dXJuIGF3YWl0IGZldGNoSW1wbChpbml0LCBvcHRpb25zKVxuICB9IGNhdGNoIChlcnIpIHtcbiAgICBpZiAoZXJyICYmIHR5cGVvZiBlcnIgPT09ICdvYmplY3QnKSB7XG4gICAgICBFcnJvci5jYXB0dXJlU3RhY2tUcmFjZShlcnIpXG4gICAgfVxuXG4gICAgdGhyb3cgZXJyXG4gIH1cbn1cbm1vZHVsZS5leHBvcnRzLkhlYWRlcnMgPSByZXF1aXJlKCcuL2xpYi93ZWIvZmV0Y2gvaGVhZGVycycpLkhlYWRlcnNcbm1vZHVsZS5leHBvcnRzLlJlc3BvbnNlID0gcmVxdWlyZSgnLi9saWIvd2ViL2ZldGNoL3Jlc3BvbnNlJykuUmVzcG9uc2Vcbm1vZHVsZS5leHBvcnRzLlJlcXVlc3QgPSByZXF1aXJlKCcuL2xpYi93ZWIvZmV0Y2gvcmVxdWVzdCcpLlJlcXVlc3Rcbm1vZHVsZS5leHBvcnRzLkZvcm1EYXRhID0gcmVxdWlyZSgnLi9saWIvd2ViL2ZldGNoL2Zvcm1kYXRhJykuRm9ybURhdGFcbm1vZHVsZS5leHBvcnRzLkZpbGUgPSBnbG9iYWxUaGlzLkZpbGUgPz8gcmVxdWlyZSgnbm9kZTpidWZmZXInKS5GaWxlXG5tb2R1bGUuZXhwb3J0cy5GaWxlUmVhZGVyID0gcmVxdWlyZSgnLi9saWIvd2ViL2ZpbGVhcGkvZmlsZXJlYWRlcicpLkZpbGVSZWFkZXJcblxuY29uc3QgeyBzZXRHbG9iYWxPcmlnaW4sIGdldEdsb2JhbE9yaWdpbiB9ID0gcmVxdWlyZSgnLi9saWIvd2ViL2ZldGNoL2dsb2JhbCcpXG5cbm1vZHVsZS5leHBvcnRzLnNldEdsb2JhbE9yaWdpbiA9IHNldEdsb2JhbE9yaWdpblxubW9kdWxlLmV4cG9ydHMuZ2V0R2xvYmFsT3JpZ2luID0gZ2V0R2xvYmFsT3JpZ2luXG5cbmNvbnN0IHsgQ2FjaGVTdG9yYWdlIH0gPSByZXF1aXJlKCcuL2xpYi93ZWIvY2FjaGUvY2FjaGVzdG9yYWdlJylcbmNvbnN0IHsga0NvbnN0cnVjdCB9ID0gcmVxdWlyZSgnLi9saWIvd2ViL2NhY2hlL3N5bWJvbHMnKVxuXG4vLyBDYWNoZSAmIENhY2hlU3RvcmFnZSBhcmUgdGlnaHRseSBjb3VwbGVkIHdpdGggZmV0Y2guIEV2ZW4gaWYgaXQgbWF5IHJ1blxuLy8gaW4gYW4gb2xkZXIgdmVyc2lvbiBvZiBOb2RlLCBpdCBkb2Vzbid0IGhhdmUgYW55IHVzZSB3aXRob3V0IGZldGNoLlxubW9kdWxlLmV4cG9ydHMuY2FjaGVzID0gbmV3IENhY2hlU3RvcmFnZShrQ29uc3RydWN0KVxuXG5jb25zdCB7IGRlbGV0ZUNvb2tpZSwgZ2V0Q29va2llcywgZ2V0U2V0Q29va2llcywgc2V0Q29va2llIH0gPSByZXF1aXJlKCcuL2xpYi93ZWIvY29va2llcycpXG5cbm1vZHVsZS5leHBvcnRzLmRlbGV0ZUNvb2tpZSA9IGRlbGV0ZUNvb2tpZVxubW9kdWxlLmV4cG9ydHMuZ2V0Q29va2llcyA9IGdldENvb2tpZXNcbm1vZHVsZS5leHBvcnRzLmdldFNldENvb2tpZXMgPSBnZXRTZXRDb29raWVzXG5tb2R1bGUuZXhwb3J0cy5zZXRDb29raWUgPSBzZXRDb29raWVcblxuY29uc3QgeyBwYXJzZU1JTUVUeXBlLCBzZXJpYWxpemVBTWltZVR5cGUgfSA9IHJlcXVpcmUoJy4vbGliL3dlYi9mZXRjaC9kYXRhLXVybCcpXG5cbm1vZHVsZS5leHBvcnRzLnBhcnNlTUlNRVR5cGUgPSBwYXJzZU1JTUVUeXBlXG5tb2R1bGUuZXhwb3J0cy5zZXJpYWxpemVBTWltZVR5cGUgPSBzZXJpYWxpemVBTWltZVR5cGVcblxuY29uc3QgeyBDbG9zZUV2ZW50LCBFcnJvckV2ZW50LCBNZXNzYWdlRXZlbnQgfSA9IHJlcXVpcmUoJy4vbGliL3dlYi93ZWJzb2NrZXQvZXZlbnRzJylcbm1vZHVsZS5leHBvcnRzLldlYlNvY2tldCA9IHJlcXVpcmUoJy4vbGliL3dlYi93ZWJzb2NrZXQvd2Vic29ja2V0JykuV2ViU29ja2V0XG5tb2R1bGUuZXhwb3J0cy5DbG9zZUV2ZW50ID0gQ2xvc2VFdmVudFxubW9kdWxlLmV4cG9ydHMuRXJyb3JFdmVudCA9IEVycm9yRXZlbnRcbm1vZHVsZS5leHBvcnRzLk1lc3NhZ2VFdmVudCA9IE1lc3NhZ2VFdmVudFxuXG5tb2R1bGUuZXhwb3J0cy5yZXF1ZXN0ID0gbWFrZURpc3BhdGNoZXIoYXBpLnJlcXVlc3QpXG5tb2R1bGUuZXhwb3J0cy5zdHJlYW0gPSBtYWtlRGlzcGF0Y2hlcihhcGkuc3RyZWFtKVxubW9kdWxlLmV4cG9ydHMucGlwZWxpbmUgPSBtYWtlRGlzcGF0Y2hlcihhcGkucGlwZWxpbmUpXG5tb2R1bGUuZXhwb3J0cy5jb25uZWN0ID0gbWFrZURpc3BhdGNoZXIoYXBpLmNvbm5lY3QpXG5tb2R1bGUuZXhwb3J0cy51cGdyYWRlID0gbWFrZURpc3BhdGNoZXIoYXBpLnVwZ3JhZGUpXG5cbm1vZHVsZS5leHBvcnRzLk1vY2tDbGllbnQgPSBNb2NrQ2xpZW50XG5tb2R1bGUuZXhwb3J0cy5Nb2NrUG9vbCA9IE1vY2tQb29sXG5tb2R1bGUuZXhwb3J0cy5Nb2NrQWdlbnQgPSBNb2NrQWdlbnRcbm1vZHVsZS5leHBvcnRzLm1vY2tFcnJvcnMgPSBtb2NrRXJyb3JzXG5cbmNvbnN0IHsgRXZlbnRTb3VyY2UgfSA9IHJlcXVpcmUoJy4vbGliL3dlYi9ldmVudHNvdXJjZS9ldmVudHNvdXJjZScpXG5cbm1vZHVsZS5leHBvcnRzLkV2ZW50U291cmNlID0gRXZlbnRTb3VyY2VcbiIsICJcInVzZSBzdHJpY3RcIjtcblxuZXhwb3J0cy5yZW1vdmVMZWFkaW5nQW5kVHJhaWxpbmdIVFRQV2hpdGVzcGFjZSA9IHN0cmluZyA9PiB7XG4gIHJldHVybiBzdHJpbmcucmVwbGFjZSgvXlsgXFx0XFxuXFxyXSsvdSwgXCJcIikucmVwbGFjZSgvWyBcXHRcXG5cXHJdKyQvdSwgXCJcIik7XG59O1xuXG5leHBvcnRzLnJlbW92ZVRyYWlsaW5nSFRUUFdoaXRlc3BhY2UgPSBzdHJpbmcgPT4ge1xuICByZXR1cm4gc3RyaW5nLnJlcGxhY2UoL1sgXFx0XFxuXFxyXSskL3UsIFwiXCIpO1xufTtcblxuZXhwb3J0cy5pc0hUVFBXaGl0ZXNwYWNlQ2hhciA9IGNoYXIgPT4ge1xuICByZXR1cm4gY2hhciA9PT0gXCIgXCIgfHwgY2hhciA9PT0gXCJcXHRcIiB8fCBjaGFyID09PSBcIlxcblwiIHx8IGNoYXIgPT09IFwiXFxyXCI7XG59O1xuXG5leHBvcnRzLnNvbGVseUNvbnRhaW5zSFRUUFRva2VuQ29kZVBvaW50cyA9IHN0cmluZyA9PiB7XG4gIHJldHVybiAvXlstISMkJSYnKisuXl9gfH5BLVphLXowLTldKiQvdS50ZXN0KHN0cmluZyk7XG59O1xuXG5leHBvcnRzLnNvbGV5Q29udGFpbnNIVFRQUXVvdGVkU3RyaW5nVG9rZW5Db2RlUG9pbnRzID0gc3RyaW5nID0+IHtcbiAgcmV0dXJuIC9eW1xcdFxcdTAwMjAtXFx1MDA3RVxcdTAwODAtXFx1MDBGRl0qJC91LnRlc3Qoc3RyaW5nKTtcbn07XG5cbmV4cG9ydHMuYXNjaWlMb3dlcmNhc2UgPSBzdHJpbmcgPT4ge1xuICByZXR1cm4gc3RyaW5nLnJlcGxhY2UoL1tBLVpdL3VnLCBsID0+IGwudG9Mb3dlckNhc2UoKSk7XG59O1xuXG4vLyBUaGlzIHZhcmlhbnQgb25seSBpbXBsZW1lbnRzIGl0IHdpdGggdGhlIGV4dHJhY3QtdmFsdWUgZmxhZyBzZXQuXG5leHBvcnRzLmNvbGxlY3RBbkhUVFBRdW90ZWRTdHJpbmcgPSAoaW5wdXQsIHBvc2l0aW9uKSA9PiB7XG4gIGxldCB2YWx1ZSA9IFwiXCI7XG5cbiAgcG9zaXRpb24rKztcblxuICB3aGlsZSAodHJ1ZSkge1xuICAgIHdoaWxlIChwb3NpdGlvbiA8IGlucHV0Lmxlbmd0aCAmJiBpbnB1dFtwb3NpdGlvbl0gIT09IFwiXFxcIlwiICYmIGlucHV0W3Bvc2l0aW9uXSAhPT0gXCJcXFxcXCIpIHtcbiAgICAgIHZhbHVlICs9IGlucHV0W3Bvc2l0aW9uXTtcbiAgICAgICsrcG9zaXRpb247XG4gICAgfVxuXG4gICAgaWYgKHBvc2l0aW9uID49IGlucHV0Lmxlbmd0aCkge1xuICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgY29uc3QgcXVvdGVPckJhY2tzbGFzaCA9IGlucHV0W3Bvc2l0aW9uXTtcbiAgICArK3Bvc2l0aW9uO1xuXG4gICAgaWYgKHF1b3RlT3JCYWNrc2xhc2ggPT09IFwiXFxcXFwiKSB7XG4gICAgICBpZiAocG9zaXRpb24gPj0gaW5wdXQubGVuZ3RoKSB7XG4gICAgICAgIHZhbHVlICs9IFwiXFxcXFwiO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cblxuICAgICAgdmFsdWUgKz0gaW5wdXRbcG9zaXRpb25dO1xuICAgICAgKytwb3NpdGlvbjtcbiAgICB9IGVsc2Uge1xuICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIFt2YWx1ZSwgcG9zaXRpb25dO1xufTtcbiIsICJcInVzZSBzdHJpY3RcIjtcbmNvbnN0IHtcbiAgYXNjaWlMb3dlcmNhc2UsXG4gIHNvbGVseUNvbnRhaW5zSFRUUFRva2VuQ29kZVBvaW50cyxcbiAgc29sZXlDb250YWluc0hUVFBRdW90ZWRTdHJpbmdUb2tlbkNvZGVQb2ludHNcbn0gPSByZXF1aXJlKFwiLi91dGlscy5qc1wiKTtcblxubW9kdWxlLmV4cG9ydHMgPSBjbGFzcyBNSU1FVHlwZVBhcmFtZXRlcnMge1xuICBjb25zdHJ1Y3RvcihtYXApIHtcbiAgICB0aGlzLl9tYXAgPSBtYXA7XG4gIH1cblxuICBnZXQgc2l6ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5fbWFwLnNpemU7XG4gIH1cblxuICBnZXQobmFtZSkge1xuICAgIG5hbWUgPSBhc2NpaUxvd2VyY2FzZShTdHJpbmcobmFtZSkpO1xuICAgIHJldHVybiB0aGlzLl9tYXAuZ2V0KG5hbWUpO1xuICB9XG5cbiAgaGFzKG5hbWUpIHtcbiAgICBuYW1lID0gYXNjaWlMb3dlcmNhc2UoU3RyaW5nKG5hbWUpKTtcbiAgICByZXR1cm4gdGhpcy5fbWFwLmhhcyhuYW1lKTtcbiAgfVxuXG4gIHNldChuYW1lLCB2YWx1ZSkge1xuICAgIG5hbWUgPSBhc2NpaUxvd2VyY2FzZShTdHJpbmcobmFtZSkpO1xuICAgIHZhbHVlID0gU3RyaW5nKHZhbHVlKTtcblxuICAgIGlmICghc29sZWx5Q29udGFpbnNIVFRQVG9rZW5Db2RlUG9pbnRzKG5hbWUpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgTUlNRSB0eXBlIHBhcmFtZXRlciBuYW1lIFwiJHtuYW1lfVwiOiBvbmx5IEhUVFAgdG9rZW4gY29kZSBwb2ludHMgYXJlIHZhbGlkLmApO1xuICAgIH1cbiAgICBpZiAoIXNvbGV5Q29udGFpbnNIVFRQUXVvdGVkU3RyaW5nVG9rZW5Db2RlUG9pbnRzKHZhbHVlKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIE1JTUUgdHlwZSBwYXJhbWV0ZXIgdmFsdWUgXCIke3ZhbHVlfVwiOiBvbmx5IEhUVFAgcXVvdGVkLXN0cmluZyB0b2tlbiBjb2RlIHBvaW50cyBhcmUgYCArXG4gICAgICAgICAgICAgICAgICAgICAgYHZhbGlkLmApO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLl9tYXAuc2V0KG5hbWUsIHZhbHVlKTtcbiAgfVxuXG4gIGNsZWFyKCkge1xuICAgIHRoaXMuX21hcC5jbGVhcigpO1xuICB9XG5cbiAgZGVsZXRlKG5hbWUpIHtcbiAgICBuYW1lID0gYXNjaWlMb3dlcmNhc2UoU3RyaW5nKG5hbWUpKTtcbiAgICByZXR1cm4gdGhpcy5fbWFwLmRlbGV0ZShuYW1lKTtcbiAgfVxuXG4gIGZvckVhY2goY2FsbGJhY2tGbiwgdGhpc0FyZykge1xuICAgIHRoaXMuX21hcC5mb3JFYWNoKGNhbGxiYWNrRm4sIHRoaXNBcmcpO1xuICB9XG5cbiAga2V5cygpIHtcbiAgICByZXR1cm4gdGhpcy5fbWFwLmtleXMoKTtcbiAgfVxuXG4gIHZhbHVlcygpIHtcbiAgICByZXR1cm4gdGhpcy5fbWFwLnZhbHVlcygpO1xuICB9XG5cbiAgZW50cmllcygpIHtcbiAgICByZXR1cm4gdGhpcy5fbWFwLmVudHJpZXMoKTtcbiAgfVxuXG4gIFtTeW1ib2wuaXRlcmF0b3JdKCkge1xuICAgIHJldHVybiB0aGlzLl9tYXBbU3ltYm9sLml0ZXJhdG9yXSgpO1xuICB9XG59O1xuIiwgIlwidXNlIHN0cmljdFwiO1xuY29uc3Qge1xuICByZW1vdmVMZWFkaW5nQW5kVHJhaWxpbmdIVFRQV2hpdGVzcGFjZSxcbiAgcmVtb3ZlVHJhaWxpbmdIVFRQV2hpdGVzcGFjZSxcbiAgaXNIVFRQV2hpdGVzcGFjZUNoYXIsXG4gIHNvbGVseUNvbnRhaW5zSFRUUFRva2VuQ29kZVBvaW50cyxcbiAgc29sZXlDb250YWluc0hUVFBRdW90ZWRTdHJpbmdUb2tlbkNvZGVQb2ludHMsXG4gIGFzY2lpTG93ZXJjYXNlLFxuICBjb2xsZWN0QW5IVFRQUXVvdGVkU3RyaW5nXG59ID0gcmVxdWlyZShcIi4vdXRpbHMuanNcIik7XG5cbm1vZHVsZS5leHBvcnRzID0gaW5wdXQgPT4ge1xuICBpbnB1dCA9IHJlbW92ZUxlYWRpbmdBbmRUcmFpbGluZ0hUVFBXaGl0ZXNwYWNlKGlucHV0KTtcblxuICBsZXQgcG9zaXRpb24gPSAwO1xuICBsZXQgdHlwZSA9IFwiXCI7XG4gIHdoaWxlIChwb3NpdGlvbiA8IGlucHV0Lmxlbmd0aCAmJiBpbnB1dFtwb3NpdGlvbl0gIT09IFwiL1wiKSB7XG4gICAgdHlwZSArPSBpbnB1dFtwb3NpdGlvbl07XG4gICAgKytwb3NpdGlvbjtcbiAgfVxuXG4gIGlmICh0eXBlLmxlbmd0aCA9PT0gMCB8fCAhc29sZWx5Q29udGFpbnNIVFRQVG9rZW5Db2RlUG9pbnRzKHR5cGUpKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBpZiAocG9zaXRpb24gPj0gaW5wdXQubGVuZ3RoKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICAvLyBTa2lwcyBwYXN0IFwiL1wiXG4gICsrcG9zaXRpb247XG5cbiAgbGV0IHN1YnR5cGUgPSBcIlwiO1xuICB3aGlsZSAocG9zaXRpb24gPCBpbnB1dC5sZW5ndGggJiYgaW5wdXRbcG9zaXRpb25dICE9PSBcIjtcIikge1xuICAgIHN1YnR5cGUgKz0gaW5wdXRbcG9zaXRpb25dO1xuICAgICsrcG9zaXRpb247XG4gIH1cblxuICBzdWJ0eXBlID0gcmVtb3ZlVHJhaWxpbmdIVFRQV2hpdGVzcGFjZShzdWJ0eXBlKTtcblxuICBpZiAoc3VidHlwZS5sZW5ndGggPT09IDAgfHwgIXNvbGVseUNvbnRhaW5zSFRUUFRva2VuQ29kZVBvaW50cyhzdWJ0eXBlKSkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgY29uc3QgbWltZVR5cGUgPSB7XG4gICAgdHlwZTogYXNjaWlMb3dlcmNhc2UodHlwZSksXG4gICAgc3VidHlwZTogYXNjaWlMb3dlcmNhc2Uoc3VidHlwZSksXG4gICAgcGFyYW1ldGVyczogbmV3IE1hcCgpXG4gIH07XG5cbiAgd2hpbGUgKHBvc2l0aW9uIDwgaW5wdXQubGVuZ3RoKSB7XG4gICAgLy8gU2tpcCBwYXN0IFwiO1wiXG4gICAgKytwb3NpdGlvbjtcblxuICAgIHdoaWxlIChpc0hUVFBXaGl0ZXNwYWNlQ2hhcihpbnB1dFtwb3NpdGlvbl0pKSB7XG4gICAgICArK3Bvc2l0aW9uO1xuICAgIH1cblxuICAgIGxldCBwYXJhbWV0ZXJOYW1lID0gXCJcIjtcbiAgICB3aGlsZSAocG9zaXRpb24gPCBpbnB1dC5sZW5ndGggJiYgaW5wdXRbcG9zaXRpb25dICE9PSBcIjtcIiAmJiBpbnB1dFtwb3NpdGlvbl0gIT09IFwiPVwiKSB7XG4gICAgICBwYXJhbWV0ZXJOYW1lICs9IGlucHV0W3Bvc2l0aW9uXTtcbiAgICAgICsrcG9zaXRpb247XG4gICAgfVxuICAgIHBhcmFtZXRlck5hbWUgPSBhc2NpaUxvd2VyY2FzZShwYXJhbWV0ZXJOYW1lKTtcblxuICAgIGlmIChwb3NpdGlvbiA8IGlucHV0Lmxlbmd0aCkge1xuICAgICAgaWYgKGlucHV0W3Bvc2l0aW9uXSA9PT0gXCI7XCIpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIC8vIFNraXAgcGFzdCBcIj1cIlxuICAgICAgKytwb3NpdGlvbjtcbiAgICB9XG5cbiAgICBsZXQgcGFyYW1ldGVyVmFsdWUgPSBudWxsO1xuICAgIGlmIChpbnB1dFtwb3NpdGlvbl0gPT09IFwiXFxcIlwiKSB7XG4gICAgICBbcGFyYW1ldGVyVmFsdWUsIHBvc2l0aW9uXSA9IGNvbGxlY3RBbkhUVFBRdW90ZWRTdHJpbmcoaW5wdXQsIHBvc2l0aW9uKTtcblxuICAgICAgd2hpbGUgKHBvc2l0aW9uIDwgaW5wdXQubGVuZ3RoICYmIGlucHV0W3Bvc2l0aW9uXSAhPT0gXCI7XCIpIHtcbiAgICAgICAgKytwb3NpdGlvbjtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgcGFyYW1ldGVyVmFsdWUgPSBcIlwiO1xuICAgICAgd2hpbGUgKHBvc2l0aW9uIDwgaW5wdXQubGVuZ3RoICYmIGlucHV0W3Bvc2l0aW9uXSAhPT0gXCI7XCIpIHtcbiAgICAgICAgcGFyYW1ldGVyVmFsdWUgKz0gaW5wdXRbcG9zaXRpb25dO1xuICAgICAgICArK3Bvc2l0aW9uO1xuICAgICAgfVxuXG4gICAgICBwYXJhbWV0ZXJWYWx1ZSA9IHJlbW92ZVRyYWlsaW5nSFRUUFdoaXRlc3BhY2UocGFyYW1ldGVyVmFsdWUpO1xuXG4gICAgICBpZiAocGFyYW1ldGVyVmFsdWUgPT09IFwiXCIpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHBhcmFtZXRlck5hbWUubGVuZ3RoID4gMCAmJlxuICAgICAgICBzb2xlbHlDb250YWluc0hUVFBUb2tlbkNvZGVQb2ludHMocGFyYW1ldGVyTmFtZSkgJiZcbiAgICAgICAgc29sZXlDb250YWluc0hUVFBRdW90ZWRTdHJpbmdUb2tlbkNvZGVQb2ludHMocGFyYW1ldGVyVmFsdWUpICYmXG4gICAgICAgICFtaW1lVHlwZS5wYXJhbWV0ZXJzLmhhcyhwYXJhbWV0ZXJOYW1lKSkge1xuICAgICAgbWltZVR5cGUucGFyYW1ldGVycy5zZXQocGFyYW1ldGVyTmFtZSwgcGFyYW1ldGVyVmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBtaW1lVHlwZTtcbn07XG4iLCAiXCJ1c2Ugc3RyaWN0XCI7XG5jb25zdCB7IHNvbGVseUNvbnRhaW5zSFRUUFRva2VuQ29kZVBvaW50cyB9ID0gcmVxdWlyZShcIi4vdXRpbHMuanNcIik7XG5cbm1vZHVsZS5leHBvcnRzID0gbWltZVR5cGUgPT4ge1xuICBsZXQgc2VyaWFsaXphdGlvbiA9IGAke21pbWVUeXBlLnR5cGV9LyR7bWltZVR5cGUuc3VidHlwZX1gO1xuXG4gIGlmIChtaW1lVHlwZS5wYXJhbWV0ZXJzLnNpemUgPT09IDApIHtcbiAgICByZXR1cm4gc2VyaWFsaXphdGlvbjtcbiAgfVxuXG4gIGZvciAobGV0IFtuYW1lLCB2YWx1ZV0gb2YgbWltZVR5cGUucGFyYW1ldGVycykge1xuICAgIHNlcmlhbGl6YXRpb24gKz0gXCI7XCI7XG4gICAgc2VyaWFsaXphdGlvbiArPSBuYW1lO1xuICAgIHNlcmlhbGl6YXRpb24gKz0gXCI9XCI7XG5cbiAgICBpZiAoIXNvbGVseUNvbnRhaW5zSFRUUFRva2VuQ29kZVBvaW50cyh2YWx1ZSkgfHwgdmFsdWUubGVuZ3RoID09PSAwKSB7XG4gICAgICB2YWx1ZSA9IHZhbHVlLnJlcGxhY2UoLyhbXCJcXFxcXSkvdWcsIFwiXFxcXCQxXCIpO1xuICAgICAgdmFsdWUgPSBgXCIke3ZhbHVlfVwiYDtcbiAgICB9XG5cbiAgICBzZXJpYWxpemF0aW9uICs9IHZhbHVlO1xuICB9XG5cbiAgcmV0dXJuIHNlcmlhbGl6YXRpb247XG59O1xuIiwgIlwidXNlIHN0cmljdFwiO1xuY29uc3QgTUlNRVR5cGVQYXJhbWV0ZXJzID0gcmVxdWlyZShcIi4vbWltZS10eXBlLXBhcmFtZXRlcnMuanNcIik7XG5jb25zdCBwYXJzZSA9IHJlcXVpcmUoXCIuL3BhcnNlci5qc1wiKTtcbmNvbnN0IHNlcmlhbGl6ZSA9IHJlcXVpcmUoXCIuL3NlcmlhbGl6ZXIuanNcIik7XG5jb25zdCB7XG4gIGFzY2lpTG93ZXJjYXNlLFxuICBzb2xlbHlDb250YWluc0hUVFBUb2tlbkNvZGVQb2ludHNcbn0gPSByZXF1aXJlKFwiLi91dGlscy5qc1wiKTtcblxubW9kdWxlLmV4cG9ydHMgPSBjbGFzcyBNSU1FVHlwZSB7XG4gIGNvbnN0cnVjdG9yKHN0cmluZykge1xuICAgIHN0cmluZyA9IFN0cmluZyhzdHJpbmcpO1xuICAgIGNvbnN0IHJlc3VsdCA9IHBhcnNlKHN0cmluZyk7XG4gICAgaWYgKHJlc3VsdCA9PT0gbnVsbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBDb3VsZCBub3QgcGFyc2UgTUlNRSB0eXBlIHN0cmluZyBcIiR7c3RyaW5nfVwiYCk7XG4gICAgfVxuXG4gICAgdGhpcy5fdHlwZSA9IHJlc3VsdC50eXBlO1xuICAgIHRoaXMuX3N1YnR5cGUgPSByZXN1bHQuc3VidHlwZTtcbiAgICB0aGlzLl9wYXJhbWV0ZXJzID0gbmV3IE1JTUVUeXBlUGFyYW1ldGVycyhyZXN1bHQucGFyYW1ldGVycyk7XG4gIH1cblxuICBzdGF0aWMgcGFyc2Uoc3RyaW5nKSB7XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiBuZXcgdGhpcyhzdHJpbmcpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfVxuXG4gIGdldCBlc3NlbmNlKCkge1xuICAgIHJldHVybiBgJHt0aGlzLnR5cGV9LyR7dGhpcy5zdWJ0eXBlfWA7XG4gIH1cblxuICBnZXQgdHlwZSgpIHtcbiAgICByZXR1cm4gdGhpcy5fdHlwZTtcbiAgfVxuXG4gIHNldCB0eXBlKHZhbHVlKSB7XG4gICAgdmFsdWUgPSBhc2NpaUxvd2VyY2FzZShTdHJpbmcodmFsdWUpKTtcblxuICAgIGlmICh2YWx1ZS5sZW5ndGggPT09IDApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIkludmFsaWQgdHlwZTogbXVzdCBiZSBhIG5vbi1lbXB0eSBzdHJpbmdcIik7XG4gICAgfVxuICAgIGlmICghc29sZWx5Q29udGFpbnNIVFRQVG9rZW5Db2RlUG9pbnRzKHZhbHVlKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIHR5cGUgJHt2YWx1ZX06IG11c3QgY29udGFpbiBvbmx5IEhUVFAgdG9rZW4gY29kZSBwb2ludHNgKTtcbiAgICB9XG5cbiAgICB0aGlzLl90eXBlID0gdmFsdWU7XG4gIH1cblxuICBnZXQgc3VidHlwZSgpIHtcbiAgICByZXR1cm4gdGhpcy5fc3VidHlwZTtcbiAgfVxuXG4gIHNldCBzdWJ0eXBlKHZhbHVlKSB7XG4gICAgdmFsdWUgPSBhc2NpaUxvd2VyY2FzZShTdHJpbmcodmFsdWUpKTtcblxuICAgIGlmICh2YWx1ZS5sZW5ndGggPT09IDApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIkludmFsaWQgc3VidHlwZTogbXVzdCBiZSBhIG5vbi1lbXB0eSBzdHJpbmdcIik7XG4gICAgfVxuICAgIGlmICghc29sZWx5Q29udGFpbnNIVFRQVG9rZW5Db2RlUG9pbnRzKHZhbHVlKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIHN1YnR5cGUgJHt2YWx1ZX06IG11c3QgY29udGFpbiBvbmx5IEhUVFAgdG9rZW4gY29kZSBwb2ludHNgKTtcbiAgICB9XG5cbiAgICB0aGlzLl9zdWJ0eXBlID0gdmFsdWU7XG4gIH1cblxuICBnZXQgcGFyYW1ldGVycygpIHtcbiAgICByZXR1cm4gdGhpcy5fcGFyYW1ldGVycztcbiAgfVxuXG4gIHRvU3RyaW5nKCkge1xuICAgIC8vIFRoZSBzZXJpYWxpemUgZnVuY3Rpb24gd29ya3Mgb24gYm90aCBcIk1JTUUgdHlwZSByZWNvcmRzXCIgKGkuZS4gdGhlIHJlc3VsdHMgb2YgcGFyc2UpIGFuZCBvbiB0aGlzIGNsYXNzLCBzaW5jZVxuICAgIC8vIHRoaXMgY2xhc3MncyBpbnRlcmZhY2UgaXMgaWRlbnRpY2FsLlxuICAgIHJldHVybiBzZXJpYWxpemUodGhpcyk7XG4gIH1cblxuICBpc0phdmFTY3JpcHQoeyBwcm9oaWJpdFBhcmFtZXRlcnMgPSBmYWxzZSB9ID0ge30pIHtcbiAgICBzd2l0Y2ggKHRoaXMuX3R5cGUpIHtcbiAgICAgIGNhc2UgXCJ0ZXh0XCI6IHtcbiAgICAgICAgc3dpdGNoICh0aGlzLl9zdWJ0eXBlKSB7XG4gICAgICAgICAgY2FzZSBcImVjbWFzY3JpcHRcIjpcbiAgICAgICAgICBjYXNlIFwiamF2YXNjcmlwdFwiOlxuICAgICAgICAgIGNhc2UgXCJqYXZhc2NyaXB0MS4wXCI6XG4gICAgICAgICAgY2FzZSBcImphdmFzY3JpcHQxLjFcIjpcbiAgICAgICAgICBjYXNlIFwiamF2YXNjcmlwdDEuMlwiOlxuICAgICAgICAgIGNhc2UgXCJqYXZhc2NyaXB0MS4zXCI6XG4gICAgICAgICAgY2FzZSBcImphdmFzY3JpcHQxLjRcIjpcbiAgICAgICAgICBjYXNlIFwiamF2YXNjcmlwdDEuNVwiOlxuICAgICAgICAgIGNhc2UgXCJqc2NyaXB0XCI6XG4gICAgICAgICAgY2FzZSBcImxpdmVzY3JpcHRcIjpcbiAgICAgICAgICBjYXNlIFwieC1lY21hc2NyaXB0XCI6XG4gICAgICAgICAgY2FzZSBcIngtamF2YXNjcmlwdFwiOiB7XG4gICAgICAgICAgICByZXR1cm4gIXByb2hpYml0UGFyYW1ldGVycyB8fCB0aGlzLl9wYXJhbWV0ZXJzLnNpemUgPT09IDA7XG4gICAgICAgICAgfVxuICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGNhc2UgXCJhcHBsaWNhdGlvblwiOiB7XG4gICAgICAgIHN3aXRjaCAodGhpcy5fc3VidHlwZSkge1xuICAgICAgICAgIGNhc2UgXCJlY21hc2NyaXB0XCI6XG4gICAgICAgICAgY2FzZSBcImphdmFzY3JpcHRcIjpcbiAgICAgICAgICBjYXNlIFwieC1lY21hc2NyaXB0XCI6XG4gICAgICAgICAgY2FzZSBcIngtamF2YXNjcmlwdFwiOiB7XG4gICAgICAgICAgICByZXR1cm4gIXByb2hpYml0UGFyYW1ldGVycyB8fCB0aGlzLl9wYXJhbWV0ZXJzLnNpemUgPT09IDA7XG4gICAgICAgICAgfVxuICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBpc1hNTCgpIHtcbiAgICByZXR1cm4gKHRoaXMuX3N1YnR5cGUgPT09IFwieG1sXCIgJiYgKHRoaXMuX3R5cGUgPT09IFwidGV4dFwiIHx8IHRoaXMuX3R5cGUgPT09IFwiYXBwbGljYXRpb25cIikpIHx8XG4gICAgICAgICAgIHRoaXMuX3N1YnR5cGUuZW5kc1dpdGgoXCIreG1sXCIpO1xuICB9XG4gIGlzSFRNTCgpIHtcbiAgICByZXR1cm4gdGhpcy5fc3VidHlwZSA9PT0gXCJodG1sXCIgJiYgdGhpcy5fdHlwZSA9PT0gXCJ0ZXh0XCI7XG4gIH1cbn07XG4iLCAiLyoqXG4gKiBAZmlsZSBCYXR0ZXJpZXMtaW5jbHVkZWQgdmVyc2lvbiBvZiBDaGVlcmlvLiBUaGlzIG1vZHVsZSBpbmNsdWRlcyBzZXZlcmFsXG4gKiAgIGNvbnZlbmllbmNlIG1ldGhvZHMgZm9yIGxvYWRpbmcgZG9jdW1lbnRzIGZyb20gdmFyaW91cyBzb3VyY2VzLlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vbG9hZC1wYXJzZS5qcyc7XG5leHBvcnQgeyBjb250YWlucywgbWVyZ2UgfSBmcm9tICcuL3N0YXRpYy5qcyc7XG5leHBvcnQgdHlwZSAqIGZyb20gJy4vdHlwZXMuanMnO1xuZXhwb3J0IHR5cGUge1xuICBDaGVlcmlvLFxuICBDaGVlcmlvQVBJLFxuICBDaGVlcmlvT3B0aW9ucyxcbiAgSFRNTFBhcnNlcjJPcHRpb25zLFxufSBmcm9tICcuL3NsaW0uanMnO1xuXG5pbXBvcnQgeyBhZGFwdGVyIGFzIGh0bWxwYXJzZXIyQWRhcHRlciB9IGZyb20gJ3BhcnNlNS1odG1scGFyc2VyMi10cmVlLWFkYXB0ZXInO1xuaW1wb3J0ICogYXMgaHRtbHBhcnNlcjIgZnJvbSAnaHRtbHBhcnNlcjInO1xuaW1wb3J0IHsgUGFyc2VyU3RyZWFtIGFzIFBhcnNlNVN0cmVhbSB9IGZyb20gJ3BhcnNlNS1wYXJzZXItc3RyZWFtJztcbmltcG9ydCB7XG4gIGRlY29kZUJ1ZmZlcixcbiAgRGVjb2RlU3RyZWFtLFxuICB0eXBlIFNuaWZmZXJPcHRpb25zLFxufSBmcm9tICdlbmNvZGluZy1zbmlmZmVyJztcbmltcG9ydCAqIGFzIHVuZGljaSBmcm9tICd1bmRpY2knO1xuaW1wb3J0IE1JTUVUeXBlIGZyb20gJ3doYXR3Zy1taW1ldHlwZSc7XG5pbXBvcnQgeyBXcml0YWJsZSwgZmluaXNoZWQgfSBmcm9tICdub2RlOnN0cmVhbSc7XG5pbXBvcnQgdHlwZSB7IENoZWVyaW9BUEkgfSBmcm9tICcuL2xvYWQuanMnO1xuaW1wb3J0IHtcbiAgZmxhdHRlbk9wdGlvbnMsXG4gIHR5cGUgSW50ZXJuYWxPcHRpb25zLFxuICB0eXBlIENoZWVyaW9PcHRpb25zLFxufSBmcm9tICcuL29wdGlvbnMuanMnO1xuaW1wb3J0IHsgbG9hZCB9IGZyb20gJy4vbG9hZC1wYXJzZS5qcyc7XG5cbi8qKlxuICogU25pZmZzIHRoZSBlbmNvZGluZyBvZiBhIGJ1ZmZlciwgdGhlbiBjcmVhdGVzIGEgcXVlcnlpbmcgZnVuY3Rpb24gYm91bmQgdG8gYVxuICogZG9jdW1lbnQgY3JlYXRlZCBmcm9tIHRoZSBidWZmZXIuXG4gKlxuICogQGNhdGVnb3J5IExvYWRpbmdcbiAqIEBleGFtcGxlXG4gKlxuICogYGBganNcbiAqIGltcG9ydCAqIGFzIGNoZWVyaW8gZnJvbSAnY2hlZXJpbyc7XG4gKlxuICogY29uc3QgYnVmZmVyID0gZnMucmVhZEZpbGVTeW5jKCdpbmRleC5odG1sJyk7XG4gKiBjb25zdCAkID0gY2hlZXJpby5mcm9tQnVmZmVyKGJ1ZmZlcik7XG4gKiBgYGBcbiAqXG4gKiBAcGFyYW0gYnVmZmVyIC0gVGhlIGJ1ZmZlciB0byBzbmlmZiB0aGUgZW5jb2Rpbmcgb2YuXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSBvcHRpb25zIHRvIHBhc3MgdG8gQ2hlZXJpby5cbiAqIEByZXR1cm5zIFRoZSBsb2FkZWQgZG9jdW1lbnQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBsb2FkQnVmZmVyKFxuICBidWZmZXI6IEJ1ZmZlcixcbiAgb3B0aW9uczogRGVjb2RlU3RyZWFtT3B0aW9ucyA9IHt9LFxuKTogQ2hlZXJpb0FQSSB7XG4gIGNvbnN0IG9wdHMgPSBmbGF0dGVuT3B0aW9ucyhvcHRpb25zKTtcbiAgY29uc3Qgc3RyID0gZGVjb2RlQnVmZmVyKGJ1ZmZlciwge1xuICAgIGRlZmF1bHRFbmNvZGluZzogb3B0cz8ueG1sTW9kZSA/ICd1dGY4JyA6ICd3aW5kb3dzLTEyNTInLFxuICAgIC4uLm9wdGlvbnMuZW5jb2RpbmcsXG4gIH0pO1xuXG4gIHJldHVybiBsb2FkKHN0ciwgb3B0cyk7XG59XG5cbmZ1bmN0aW9uIF9zdHJpbmdTdHJlYW0oXG4gIG9wdGlvbnM6IEludGVybmFsT3B0aW9ucyB8IHVuZGVmaW5lZCxcbiAgY2I6IChlcnI6IEVycm9yIHwgbnVsbCB8IHVuZGVmaW5lZCwgJDogQ2hlZXJpb0FQSSkgPT4gdm9pZCxcbik6IFdyaXRhYmxlIHtcbiAgaWYgKG9wdGlvbnM/Ll91c2VIdG1sUGFyc2VyMikge1xuICAgIGNvbnN0IHBhcnNlciA9IGh0bWxwYXJzZXIyLmNyZWF0ZURvY3VtZW50U3RyZWFtKFxuICAgICAgKGVyciwgZG9jdW1lbnQpID0+IGNiKGVyciwgbG9hZChkb2N1bWVudCkpLFxuICAgICAgb3B0aW9ucyxcbiAgICApO1xuXG4gICAgcmV0dXJuIG5ldyBXcml0YWJsZSh7XG4gICAgICBkZWNvZGVTdHJpbmdzOiBmYWxzZSxcbiAgICAgIHdyaXRlKGNodW5rLCBfZW5jb2RpbmcsIGNhbGxiYWNrKSB7XG4gICAgICAgIGlmICh0eXBlb2YgY2h1bmsgIT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignRXhwZWN0ZWQgYSBzdHJpbmcnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHBhcnNlci53cml0ZShjaHVuayk7XG4gICAgICAgIGNhbGxiYWNrKCk7XG4gICAgICB9LFxuICAgICAgZmluYWwoY2FsbGJhY2spIHtcbiAgICAgICAgcGFyc2VyLmVuZCgpO1xuICAgICAgICBjYWxsYmFjaygpO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIG9wdGlvbnMgPz89IHt9O1xuICBvcHRpb25zLnRyZWVBZGFwdGVyID8/PSBodG1scGFyc2VyMkFkYXB0ZXI7XG5cbiAgaWYgKG9wdGlvbnMuc2NyaXB0aW5nRW5hYmxlZCAhPT0gZmFsc2UpIHtcbiAgICBvcHRpb25zLnNjcmlwdGluZ0VuYWJsZWQgPSB0cnVlO1xuICB9XG5cbiAgY29uc3Qgc3RyZWFtID0gbmV3IFBhcnNlNVN0cmVhbShvcHRpb25zKTtcblxuICBmaW5pc2hlZChzdHJlYW0sIChlcnIpID0+IGNiKGVyciwgbG9hZChzdHJlYW0uZG9jdW1lbnQpKSk7XG5cbiAgcmV0dXJuIHN0cmVhbTtcbn1cblxuLyoqXG4gKiBDcmVhdGVzIGEgc3RyZWFtIHRoYXQgcGFyc2VzIGEgc2VxdWVuY2Ugb2Ygc3RyaW5ncyBpbnRvIGEgZG9jdW1lbnQuXG4gKlxuICogVGhlIHN0cmVhbSBpcyBhIGBXcml0YWJsZWAgc3RyZWFtIHRoYXQgYWNjZXB0cyBzdHJpbmdzLiBXaGVuIHRoZSBzdHJlYW0gaXNcbiAqIGZpbmlzaGVkLCB0aGUgY2FsbGJhY2sgaXMgY2FsbGVkIHdpdGggdGhlIGxvYWRlZCBkb2N1bWVudC5cbiAqXG4gKiBAY2F0ZWdvcnkgTG9hZGluZ1xuICogQGV4YW1wbGVcbiAqXG4gKiBgYGBqc1xuICogaW1wb3J0ICogYXMgY2hlZXJpbyBmcm9tICdjaGVlcmlvJztcbiAqIGltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzJztcbiAqXG4gKiBjb25zdCB3cml0ZVN0cmVhbSA9IGNoZWVyaW8uc3RyaW5nU3RyZWFtKHt9LCAoZXJyLCAkKSA9PiB7XG4gKiAgIGlmIChlcnIpIHtcbiAqICAgICAvLyBIYW5kbGUgZXJyb3JcbiAqICAgfVxuICpcbiAqICAgY29uc29sZS5sb2coJCgnaDEnKS50ZXh0KCkpO1xuICogICAvLyBPdXRwdXQ6IEhlbGxvLCB3b3JsZCFcbiAqIH0pO1xuICpcbiAqIGZzLmNyZWF0ZVJlYWRTdHJlYW0oJ215LWRvY3VtZW50Lmh0bWwnLCB7IGVuY29kaW5nOiAndXRmOCcgfSkucGlwZShcbiAqICAgd3JpdGVTdHJlYW0sXG4gKiApO1xuICogYGBgXG4gKlxuICogQHBhcmFtIG9wdGlvbnMgLSBUaGUgb3B0aW9ucyB0byBwYXNzIHRvIENoZWVyaW8uXG4gKiBAcGFyYW0gY2IgLSBUaGUgY2FsbGJhY2sgdG8gY2FsbCB3aGVuIHRoZSBzdHJlYW0gaXMgZmluaXNoZWQuXG4gKiBAcmV0dXJucyBUaGUgd3JpdGFibGUgc3RyZWFtLlxuICovXG5leHBvcnQgZnVuY3Rpb24gc3RyaW5nU3RyZWFtKFxuICBvcHRpb25zOiBDaGVlcmlvT3B0aW9ucyxcbiAgY2I6IChlcnI6IEVycm9yIHwgbnVsbCB8IHVuZGVmaW5lZCwgJDogQ2hlZXJpb0FQSSkgPT4gdm9pZCxcbik6IFdyaXRhYmxlIHtcbiAgcmV0dXJuIF9zdHJpbmdTdHJlYW0oZmxhdHRlbk9wdGlvbnMob3B0aW9ucyksIGNiKTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEZWNvZGVTdHJlYW1PcHRpb25zIGV4dGVuZHMgQ2hlZXJpb09wdGlvbnMge1xuICBlbmNvZGluZz86IFNuaWZmZXJPcHRpb25zO1xufVxuXG4vKipcbiAqIFBhcnNlcyBhIHN0cmVhbSBvZiBidWZmZXJzIGludG8gYSBkb2N1bWVudC5cbiAqXG4gKiBUaGUgc3RyZWFtIGlzIGEgYFdyaXRhYmxlYCBzdHJlYW0gdGhhdCBhY2NlcHRzIGJ1ZmZlcnMuIFdoZW4gdGhlIHN0cmVhbSBpc1xuICogZmluaXNoZWQsIHRoZSBjYWxsYmFjayBpcyBjYWxsZWQgd2l0aCB0aGUgbG9hZGVkIGRvY3VtZW50LlxuICpcbiAqIEBjYXRlZ29yeSBMb2FkaW5nXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSBvcHRpb25zIHRvIHBhc3MgdG8gQ2hlZXJpby5cbiAqIEBwYXJhbSBjYiAtIFRoZSBjYWxsYmFjayB0byBjYWxsIHdoZW4gdGhlIHN0cmVhbSBpcyBmaW5pc2hlZC5cbiAqIEByZXR1cm5zIFRoZSB3cml0YWJsZSBzdHJlYW0uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkZWNvZGVTdHJlYW0oXG4gIG9wdGlvbnM6IERlY29kZVN0cmVhbU9wdGlvbnMsXG4gIGNiOiAoZXJyOiBFcnJvciB8IG51bGwgfCB1bmRlZmluZWQsICQ6IENoZWVyaW9BUEkpID0+IHZvaWQsXG4pOiBXcml0YWJsZSB7XG4gIGNvbnN0IHsgZW5jb2RpbmcgPSB7fSwgLi4uY2hlZXJpb09wdGlvbnMgfSA9IG9wdGlvbnM7XG4gIGNvbnN0IG9wdHMgPSBmbGF0dGVuT3B0aW9ucyhjaGVlcmlvT3B0aW9ucyk7XG5cbiAgLy8gU2V0IHRoZSBkZWZhdWx0IGVuY29kaW5nIHRvIFVURi04IGZvciBYTUwgbW9kZVxuICBlbmNvZGluZy5kZWZhdWx0RW5jb2RpbmcgPz89IG9wdHM/LnhtbE1vZGUgPyAndXRmOCcgOiAnd2luZG93cy0xMjUyJztcblxuICBjb25zdCBkZWNvZGVTdHJlYW0gPSBuZXcgRGVjb2RlU3RyZWFtKGVuY29kaW5nKTtcbiAgY29uc3QgbG9hZFN0cmVhbSA9IF9zdHJpbmdTdHJlYW0ob3B0cywgY2IpO1xuXG4gIGRlY29kZVN0cmVhbS5waXBlKGxvYWRTdHJlYW0pO1xuXG4gIHJldHVybiBkZWNvZGVTdHJlYW07XG59XG5cbnR5cGUgVW5kaWNpU3RyZWFtT3B0aW9ucyA9IFBhcmFtZXRlcnM8dHlwZW9mIHVuZGljaS5zdHJlYW0+WzFdO1xuXG5leHBvcnQgaW50ZXJmYWNlIENoZWVyaW9SZXF1ZXN0T3B0aW9ucyBleHRlbmRzIERlY29kZVN0cmVhbU9wdGlvbnMge1xuICAvKiogVGhlIG9wdGlvbnMgcGFzc2VkIHRvIGB1bmRpY2lgJ3MgYHN0cmVhbWAgbWV0aG9kLiAqL1xuICByZXF1ZXN0T3B0aW9ucz86IFVuZGljaVN0cmVhbU9wdGlvbnM7XG59XG5cbmNvbnN0IGRlZmF1bHRSZXF1ZXN0T3B0aW9uczogVW5kaWNpU3RyZWFtT3B0aW9ucyA9IHtcbiAgbWV0aG9kOiAnR0VUJyxcbiAgLy8gQWxsb3cgcmVkaXJlY3RzIGJ5IGRlZmF1bHRcbiAgbWF4UmVkaXJlY3Rpb25zOiA1LFxuICAvLyBOT1RFOiBgdGhyb3dPbkVycm9yYCBjdXJyZW50bHkgZG9lc24ndCB3b3JrIGh0dHBzOi8vZ2l0aHViLmNvbS9ub2RlanMvdW5kaWNpL2lzc3Vlcy8xNzUzXG4gIHRocm93T25FcnJvcjogdHJ1ZSxcbiAgLy8gU2V0IGFuIEFjY2VwdCBoZWFkZXJcbiAgaGVhZGVyczoge1xuICAgIGFjY2VwdDogJ3RleHQvaHRtbCxhcHBsaWNhdGlvbi94aHRtbCt4bWwsYXBwbGljYXRpb24veG1sO3E9MC45LCovKjtxPTAuOCcsXG4gIH0sXG59O1xuXG4vKipcbiAqIGBmcm9tVVJMYCBsb2FkcyBhIGRvY3VtZW50IGZyb20gYSBVUkwuXG4gKlxuICogQnkgZGVmYXVsdCwgcmVkaXJlY3RzIGFyZSBhbGxvd2VkIGFuZCBub24tMnh4IHJlc3BvbnNlcyBhcmUgcmVqZWN0ZWQuXG4gKlxuICogQGNhdGVnb3J5IExvYWRpbmdcbiAqIEBleGFtcGxlXG4gKlxuICogYGBganNcbiAqIGltcG9ydCAqIGFzIGNoZWVyaW8gZnJvbSAnY2hlZXJpbyc7XG4gKlxuICogY29uc3QgJCA9IGF3YWl0IGNoZWVyaW8uZnJvbVVSTCgnaHR0cHM6Ly9leGFtcGxlLmNvbScpO1xuICogYGBgXG4gKlxuICogQHBhcmFtIHVybCAtIFRoZSBVUkwgdG8gbG9hZCB0aGUgZG9jdW1lbnQgZnJvbS5cbiAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIG9wdGlvbnMgdG8gcGFzcyB0byBDaGVlcmlvLlxuICogQHJldHVybnMgVGhlIGxvYWRlZCBkb2N1bWVudC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGZyb21VUkwoXG4gIHVybDogc3RyaW5nIHwgVVJMLFxuICBvcHRpb25zOiBDaGVlcmlvUmVxdWVzdE9wdGlvbnMgPSB7fSxcbik6IFByb21pc2U8Q2hlZXJpb0FQST4ge1xuICBjb25zdCB7XG4gICAgcmVxdWVzdE9wdGlvbnMgPSBkZWZhdWx0UmVxdWVzdE9wdGlvbnMsXG4gICAgZW5jb2RpbmcgPSB7fSxcbiAgICAuLi5jaGVlcmlvT3B0aW9uc1xuICB9ID0gb3B0aW9ucztcbiAgbGV0IHVuZGljaVN0cmVhbTogUHJvbWlzZTx1bmRpY2kuRGlzcGF0Y2hlci5TdHJlYW1EYXRhPiB8IHVuZGVmaW5lZDtcblxuICAvLyBBZGQgaGVhZGVycyBpZiBub25lIHdlcmUgc3VwcGxpZWQuXG4gIHJlcXVlc3RPcHRpb25zLmhlYWRlcnMgPz89IGRlZmF1bHRSZXF1ZXN0T3B0aW9ucy5oZWFkZXJzO1xuXG4gIGNvbnN0IHByb21pc2UgPSBuZXcgUHJvbWlzZTxDaGVlcmlvQVBJPigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgdW5kaWNpU3RyZWFtID0gdW5kaWNpLnN0cmVhbSh1cmwsIHJlcXVlc3RPcHRpb25zLCAocmVzKSA9PiB7XG4gICAgICBjb25zdCBjb250ZW50VHlwZSA9IHJlcy5oZWFkZXJzWydjb250ZW50LXR5cGUnXSA/PyAndGV4dC9odG1sJztcbiAgICAgIGNvbnN0IG1pbWVUeXBlID0gbmV3IE1JTUVUeXBlKFxuICAgICAgICBBcnJheS5pc0FycmF5KGNvbnRlbnRUeXBlKSA/IGNvbnRlbnRUeXBlWzBdIDogY29udGVudFR5cGUsXG4gICAgICApO1xuXG4gICAgICBpZiAoIW1pbWVUeXBlLmlzSFRNTCgpICYmICFtaW1lVHlwZS5pc1hNTCgpKSB7XG4gICAgICAgIHRocm93IG5ldyBSYW5nZUVycm9yKFxuICAgICAgICAgIGBUaGUgY29udGVudC10eXBlIFwiJHtjb250ZW50VHlwZX1cIiBpcyBuZWl0aGVyIEhUTUwgbm9yIFhNTC5gLFxuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICAvLyBGb3J3YXJkIHRoZSBjaGFyc2V0IGZyb20gdGhlIGhlYWRlciB0byB0aGUgZGVjb2RlU3RyZWFtLlxuICAgICAgZW5jb2RpbmcudHJhbnNwb3J0TGF5ZXJFbmNvZGluZ0xhYmVsID0gbWltZVR5cGUucGFyYW1ldGVycy5nZXQoJ2NoYXJzZXQnKTtcblxuICAgICAgLypcbiAgICAgICAqIElmIHdlIGFsbG93IHJlZGlyZWN0cywgd2Ugd2lsbCBoYXZlIGVudHJpZXMgaW4gdGhlIGhpc3RvcnkuXG4gICAgICAgKiBUaGUgbGFzdCBlbnRyeSB3aWxsIGJlIHRoZSBmaW5hbCBVUkwuXG4gICAgICAgKi9cbiAgICAgIGNvbnN0IGhpc3RvcnkgPSAoXG4gICAgICAgIHJlcy5jb250ZXh0IGFzXG4gICAgICAgICAgfCB7XG4gICAgICAgICAgICAgIGhpc3Rvcnk/OiBVUkxbXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB8IHVuZGVmaW5lZFxuICAgICAgKT8uaGlzdG9yeTtcblxuICAgICAgY29uc3Qgb3B0cyA9IHtcbiAgICAgICAgZW5jb2RpbmcsXG4gICAgICAgIC8vIFNldCBYTUwgbW9kZSBiYXNlZCBvbiB0aGUgTUlNRSB0eXBlLlxuICAgICAgICB4bWxNb2RlOiBtaW1lVHlwZS5pc1hNTCgpLFxuICAgICAgICAvLyBTZXQgdGhlIGBiYXNlVVJMYCB0byB0aGUgZmluYWwgVVJMLlxuICAgICAgICBiYXNlVVJMOiBoaXN0b3J5ID8gaGlzdG9yeVtoaXN0b3J5Lmxlbmd0aCAtIDFdIDogdXJsLFxuICAgICAgICAuLi5jaGVlcmlvT3B0aW9ucyxcbiAgICAgIH07XG5cbiAgICAgIHJldHVybiBkZWNvZGVTdHJlYW0ob3B0cywgKGVyciwgJCkgPT4gKGVyciA/IHJlamVjdChlcnIpIDogcmVzb2x2ZSgkKSkpO1xuICAgIH0pO1xuICB9KTtcblxuICAvLyBMZXQncyBtYWtlIHN1cmUgdGhlIHJlcXVlc3QgaXMgY29tcGxldGVkIGJlZm9yZSByZXR1cm5pbmcgdGhlIHByb21pc2UuXG4gIGF3YWl0IHVuZGljaVN0cmVhbTtcblxuICByZXR1cm4gcHJvbWlzZTtcbn1cbiIsICJpbXBvcnQgYXhpb3MgZnJvbSAnYXhpb3MnO1xuaW1wb3J0ICogYXMgY2hlZXJpbyBmcm9tICdjaGVlcmlvJztcbmltcG9ydCBodHRwcyBmcm9tICdodHRwcyc7XG5cbi8vIENvbnN0YW50c1xuY29uc3QgUkVTVUxUU19QRVJfUEFHRSA9IDEwO1xuY29uc3QgTUFYX0NBQ0hFX1BBR0VTID0gNTtcblxuLy8gUm90YXRpbmcgVXNlciBBZ2VudHNcbmNvbnN0IFVTRVJfQUdFTlRTID0gW1xuICAnTW96aWxsYS81LjAgKFdpbmRvd3MgTlQgMTAuMDsgV2luNjQ7IHg2NCkgQXBwbGVXZWJLaXQvNTM3LjM2IChLSFRNTCwgbGlrZSBHZWNrbykgQ2hyb21lLzEyMC4wLjAuMCBTYWZhcmkvNTM3LjM2JyxcbiAgJ01vemlsbGEvNS4wIChXaW5kb3dzIE5UIDEwLjA7IFdpbjY0OyB4NjQpIEVkZ2UvMTIwLjAuMC4wJyxcbiAgJ01vemlsbGEvNS4wIChNYWNpbnRvc2g7IEludGVsIE1hYyBPUyBYIDEwXzE1XzcpIEFwcGxlV2ViS2l0LzYwNS4xLjE1IChLSFRNTCwgbGlrZSBHZWNrbykgVmVyc2lvbi8xNy4yLjEgU2FmYXJpLzYwNS4xLjE1JyxcbiAgJ01vemlsbGEvNS4wIChXaW5kb3dzIE5UIDEwLjA7IFdpbjY0OyB4NjQ7IHJ2OjEyMi4wKSBHZWNrby8yMDEwMDEwMSBGaXJlZm94LzEyMi4wJyxcbiAgJ01vemlsbGEvNS4wIChYMTE7IExpbnV4IHg4Nl82NCkgQXBwbGVXZWJLaXQvNTM3LjM2IChLSFRNTCwgbGlrZSBHZWNrbykgQ2hyb21lLzEyMC4wLjAuMCBTYWZhcmkvNTM3LjM2J1xuXTtcblxuLy8gQ2FjaGUgcmVzdWx0cyB0byBhdm9pZCByZXBlYXRlZCByZXF1ZXN0c1xuY29uc3QgcmVzdWx0c0NhY2hlID0gbmV3IE1hcCgpO1xuY29uc3QgQ0FDSEVfRFVSQVRJT04gPSA1ICogNjAgKiAxMDAwOyAvLyA1IG1pbnV0ZXNcblxuLy8gSFRUUFMgYWdlbnQgY29uZmlndXJhdGlvbiB0byBoYW5kbGUgY2VydGlmaWNhdGUgY2hhaW4gaXNzdWVzXG5jb25zdCBodHRwc0FnZW50ID0gbmV3IGh0dHBzLkFnZW50KHtcbiAgcmVqZWN0VW5hdXRob3JpemVkOiB0cnVlLCAvLyBLZWVwIHNlY3VyaXR5IGVuYWJsZWRcbiAga2VlcEFsaXZlOiB0cnVlLFxuICB0aW1lb3V0OiAxMDAwMCxcbiAgLy8gUHJvdmlkZSBmYWxsYmFjayBmb3IgY2VydGlmaWNhdGUgaXNzdWVzIHdoaWxlIG1haW50YWluaW5nIHNlY3VyaXR5XG4gIHNlY3VyZVByb3RvY29sOiAnVExTdjFfMl9tZXRob2QnXG59KTtcblxuLyoqXG4gKiBHZXQgYSByYW5kb20gdXNlciBhZ2VudCBmcm9tIHRoZSBsaXN0XG4gKiBAcmV0dXJucyB7c3RyaW5nfSBBIHJhbmRvbSB1c2VyIGFnZW50IHN0cmluZ1xuICovXG5mdW5jdGlvbiBnZXRSYW5kb21Vc2VyQWdlbnQoKSB7XG4gIHJldHVybiBVU0VSX0FHRU5UU1tNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiBVU0VSX0FHRU5UUy5sZW5ndGgpXTtcbn1cblxuLyoqXG4gKiBHZW5lcmF0ZSBhIGNhY2hlIGtleSBmb3IgYSBzZWFyY2ggcXVlcnkgYW5kIHBhZ2VcbiAqIEBwYXJhbSB7c3RyaW5nfSBxdWVyeSAtIFRoZSBzZWFyY2ggcXVlcnlcbiAqIEBwYXJhbSB7bnVtYmVyfSBwYWdlIC0gVGhlIHBhZ2UgbnVtYmVyXG4gKiBAcmV0dXJucyB7c3RyaW5nfSBUaGUgY2FjaGUga2V5XG4gKi9cbmZ1bmN0aW9uIGdldENhY2hlS2V5KHF1ZXJ5LCBwYWdlKSB7XG4gIHJldHVybiBgJHtxdWVyeX0tJHtwYWdlfWA7XG59XG5cbi8qKlxuICogQ2xlYXIgb2xkIGVudHJpZXMgZnJvbSB0aGUgY2FjaGVcbiAqL1xuZnVuY3Rpb24gY2xlYXJPbGRDYWNoZSgpIHtcbiAgY29uc3Qgbm93ID0gRGF0ZS5ub3coKTtcbiAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgcmVzdWx0c0NhY2hlLmVudHJpZXMoKSkge1xuICAgIGlmIChub3cgLSB2YWx1ZS50aW1lc3RhbXAgPiBDQUNIRV9EVVJBVElPTikge1xuICAgICAgcmVzdWx0c0NhY2hlLmRlbGV0ZShrZXkpO1xuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIEV4dHJhY3QgdGhlIGRpcmVjdCBVUkwgZnJvbSBhIER1Y2tEdWNrR28gcmVkaXJlY3QgVVJMXG4gKiBAcGFyYW0ge3N0cmluZ30gZHVja2R1Y2tnb1VybCAtIFRoZSBEdWNrRHVja0dvIFVSTCB0byBleHRyYWN0IGZyb21cbiAqIEByZXR1cm5zIHtzdHJpbmd9IFRoZSBkaXJlY3QgVVJMXG4gKi9cbmZ1bmN0aW9uIGV4dHJhY3REaXJlY3RVcmwoZHVja2R1Y2tnb1VybCkge1xuICB0cnkge1xuICAgIC8vIEhhbmRsZSByZWxhdGl2ZSBVUkxzIGZyb20gRHVja0R1Y2tHb1xuICAgIGlmIChkdWNrZHVja2dvVXJsLnN0YXJ0c1dpdGgoJy8vJykpIHtcbiAgICAgIGR1Y2tkdWNrZ29VcmwgPSAnaHR0cHM6JyArIGR1Y2tkdWNrZ29Vcmw7XG4gICAgfSBlbHNlIGlmIChkdWNrZHVja2dvVXJsLnN0YXJ0c1dpdGgoJy8nKSkge1xuICAgICAgZHVja2R1Y2tnb1VybCA9ICdodHRwczovL2R1Y2tkdWNrZ28uY29tJyArIGR1Y2tkdWNrZ29Vcmw7XG4gICAgfVxuXG4gICAgY29uc3QgdXJsID0gbmV3IFVSTChkdWNrZHVja2dvVXJsKTtcblxuICAgIC8vIEV4dHJhY3QgZGlyZWN0IFVSTCBmcm9tIER1Y2tEdWNrR28gcmVkaXJlY3RcbiAgICBpZiAodXJsLmhvc3RuYW1lID09PSAnZHVja2R1Y2tnby5jb20nICYmIHVybC5wYXRobmFtZSA9PT0gJy9sLycpIHtcbiAgICAgIGNvbnN0IHVkZGcgPSB1cmwuc2VhcmNoUGFyYW1zLmdldCgndWRkZycpO1xuICAgICAgaWYgKHVkZGcpIHtcbiAgICAgICAgcmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudCh1ZGRnKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBIYW5kbGUgYWQgcmVkaXJlY3RzXG4gICAgaWYgKHVybC5ob3N0bmFtZSA9PT0gJ2R1Y2tkdWNrZ28uY29tJyAmJiB1cmwucGF0aG5hbWUgPT09ICcveS5qcycpIHtcbiAgICAgIGNvbnN0IHUzID0gdXJsLnNlYXJjaFBhcmFtcy5nZXQoJ3UzJyk7XG4gICAgICBpZiAodTMpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBjb25zdCBkZWNvZGVkVTMgPSBkZWNvZGVVUklDb21wb25lbnQodTMpO1xuICAgICAgICAgIGNvbnN0IHUzVXJsID0gbmV3IFVSTChkZWNvZGVkVTMpO1xuICAgICAgICAgIGNvbnN0IGNsaWNrVXJsID0gdTNVcmwuc2VhcmNoUGFyYW1zLmdldCgnbGQnKTtcbiAgICAgICAgICBpZiAoY2xpY2tVcmwpIHtcbiAgICAgICAgICAgIHJldHVybiBkZWNvZGVVUklDb21wb25lbnQoY2xpY2tVcmwpO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gZGVjb2RlZFUzO1xuICAgICAgICB9IGNhdGNoIHtcbiAgICAgICAgICByZXR1cm4gZHVja2R1Y2tnb1VybDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBkdWNrZHVja2dvVXJsO1xuICB9IGNhdGNoIHtcbiAgICAvLyBJZiBVUkwgcGFyc2luZyBmYWlscywgdHJ5IHRvIGV4dHJhY3QgVVJMIGZyb20gYSBiYXNpYyBzdHJpbmcgbWF0Y2hcbiAgICBjb25zdCB1cmxNYXRjaCA9IGR1Y2tkdWNrZ29VcmwubWF0Y2goL2h0dHBzPzpcXC9cXC9bXlxcczw+XCJdKy8pO1xuICAgIGlmICh1cmxNYXRjaCkge1xuICAgICAgcmV0dXJuIHVybE1hdGNoWzBdO1xuICAgIH1cbiAgICByZXR1cm4gZHVja2R1Y2tnb1VybDtcbiAgfVxufVxuXG4vKipcbiAqIEdldCBhIGZhdmljb24gVVJMIGZvciBhIGdpdmVuIHdlYnNpdGUgVVJMXG4gKiBAcGFyYW0ge3N0cmluZ30gdXJsIC0gVGhlIHdlYnNpdGUgVVJMXG4gKiBAcmV0dXJucyB7c3RyaW5nfSBUaGUgZmF2aWNvbiBVUkxcbiAqL1xuZnVuY3Rpb24gZ2V0RmF2aWNvblVybCh1cmwpIHtcbiAgdHJ5IHtcbiAgICBjb25zdCB1cmxPYmogPSBuZXcgVVJMKHVybCk7XG4gICAgcmV0dXJuIGBodHRwczovL3d3dy5nb29nbGUuY29tL3MyL2Zhdmljb25zP2RvbWFpbj0ke3VybE9iai5ob3N0bmFtZX0mc3o9MzJgO1xuICB9IGNhdGNoIHtcbiAgICByZXR1cm4gJyc7IC8vIFJldHVybiBlbXB0eSBzdHJpbmcgaWYgVVJMIGlzIGludmFsaWRcbiAgfVxufVxuXG4vKipcbiAqIFNjcmFwZXMgc2VhcmNoIHJlc3VsdHMgZnJvbSBEdWNrRHVja0dvIEhUTUxcbiAqIEBwYXJhbSB7c3RyaW5nfSBxdWVyeSAtIFRoZSBzZWFyY2ggcXVlcnlcbiAqIEBwYXJhbSB7bnVtYmVyfSBwYWdlIC0gVGhlIHBhZ2UgbnVtYmVyIChkZWZhdWx0OiAxKVxuICogQHBhcmFtIHtudW1iZXJ9IG51bVJlc3VsdHMgLSBOdW1iZXIgb2YgcmVzdWx0cyB0byByZXR1cm4gKGRlZmF1bHQ6IDEwKVxuICogQHJldHVybnMge1Byb21pc2U8QXJyYXk+fSAtIEFycmF5IG9mIHNlYXJjaCByZXN1bHRzXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIHNlYXJjaER1Y2tEdWNrR28ocXVlcnksIHBhZ2UgPSAxLCBudW1SZXN1bHRzID0gMTApIHtcbiAgdHJ5IHtcbiAgICAvLyBDbGVhciBvbGQgY2FjaGUgZW50cmllc1xuICAgIGNsZWFyT2xkQ2FjaGUoKTtcblxuICAgIC8vIENhbGN1bGF0ZSBzdGFydCBpbmRleCBmb3IgcGFnaW5hdGlvblxuICAgIGNvbnN0IHN0YXJ0SW5kZXggPSAocGFnZSAtIDEpICogUkVTVUxUU19QRVJfUEFHRTtcblxuICAgIC8vIENoZWNrIGNhY2hlIGZpcnN0XG4gICAgY29uc3QgY2FjaGVLZXkgPSBnZXRDYWNoZUtleShxdWVyeSwgcGFnZSk7XG4gICAgY29uc3QgY2FjaGVkUmVzdWx0cyA9IHJlc3VsdHNDYWNoZS5nZXQoY2FjaGVLZXkpO1xuXG4gICAgaWYgKGNhY2hlZFJlc3VsdHMgJiYgRGF0ZS5ub3coKSAtIGNhY2hlZFJlc3VsdHMudGltZXN0YW1wIDwgQ0FDSEVfRFVSQVRJT04pIHtcbiAgICAgIHJldHVybiBjYWNoZWRSZXN1bHRzLnJlc3VsdHMuc2xpY2UoMCwgbnVtUmVzdWx0cyk7XG4gICAgfVxuXG4gICAgLy8gR2V0IGEgcmFuZG9tIHVzZXIgYWdlbnRcbiAgICBjb25zdCB1c2VyQWdlbnQgPSBnZXRSYW5kb21Vc2VyQWdlbnQoKTtcblxuICAgIC8vIEZldGNoIHJlc3VsdHNcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGF4aW9zLmdldChcbiAgICAgIGBodHRwczovL2R1Y2tkdWNrZ28uY29tL2h0bWwvP3E9JHtlbmNvZGVVUklDb21wb25lbnQocXVlcnkpfSZzPSR7c3RhcnRJbmRleH1gLFxuICAgICAge1xuICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgJ1VzZXItQWdlbnQnOiB1c2VyQWdlbnRcbiAgICAgICAgfSxcbiAgICAgICAgaHR0cHNBZ2VudDogaHR0cHNBZ2VudFxuICAgICAgfVxuICAgICk7XG5cbiAgICBpZiAocmVzcG9uc2Uuc3RhdHVzICE9PSAyMDApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignRmFpbGVkIHRvIGZldGNoIHNlYXJjaCByZXN1bHRzJyk7XG4gICAgfVxuXG4gICAgY29uc3QgaHRtbCA9IHJlc3BvbnNlLmRhdGE7XG5cbiAgICAvLyBQYXJzZSByZXN1bHRzIHVzaW5nIGNoZWVyaW9cbiAgICBjb25zdCAkID0gY2hlZXJpby5sb2FkKGh0bWwpO1xuXG4gICAgY29uc3QgcmVzdWx0cyA9IFtdO1xuICAgICQoJy5yZXN1bHQnKS5lYWNoKChpLCByZXN1bHQpID0+IHtcbiAgICAgIGNvbnN0ICRyZXN1bHQgPSAkKHJlc3VsdCk7XG4gICAgICBjb25zdCB0aXRsZUVsID0gJHJlc3VsdC5maW5kKCcucmVzdWx0X190aXRsZSBhJyk7XG4gICAgICBjb25zdCBsaW5rRWwgPSAkcmVzdWx0LmZpbmQoJy5yZXN1bHRfX3VybCcpO1xuICAgICAgY29uc3Qgc25pcHBldEVsID0gJHJlc3VsdC5maW5kKCcucmVzdWx0X19zbmlwcGV0Jyk7XG5cbiAgICAgIGNvbnN0IHRpdGxlID0gdGl0bGVFbC50ZXh0KCk/LnRyaW0oKTtcbiAgICAgIGNvbnN0IHJhd0xpbmsgPSB0aXRsZUVsLmF0dHIoJ2hyZWYnKTtcbiAgICAgIGNvbnN0IGRlc2NyaXB0aW9uID0gc25pcHBldEVsLnRleHQoKT8udHJpbSgpO1xuICAgICAgY29uc3QgZGlzcGxheVVybCA9IGxpbmtFbC50ZXh0KCk/LnRyaW0oKTtcblxuICAgICAgY29uc3QgZGlyZWN0TGluayA9IGV4dHJhY3REaXJlY3RVcmwocmF3TGluayB8fCAnJyk7XG4gICAgICBjb25zdCBmYXZpY29uID0gZ2V0RmF2aWNvblVybChkaXJlY3RMaW5rKTtcblxuICAgICAgaWYgKHRpdGxlICYmIGRpcmVjdExpbmspIHtcbiAgICAgICAgcmVzdWx0cy5wdXNoKHtcbiAgICAgICAgICB0aXRsZSxcbiAgICAgICAgICB1cmw6IGRpcmVjdExpbmssXG4gICAgICAgICAgc25pcHBldDogZGVzY3JpcHRpb24gfHwgJycsXG4gICAgICAgICAgZmF2aWNvbjogZmF2aWNvbixcbiAgICAgICAgICBkaXNwbGF5VXJsOiBkaXNwbGF5VXJsIHx8ICcnXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgLy8gR2V0IHBhZ2luYXRlZCByZXN1bHRzXG4gICAgY29uc3QgcGFnaW5hdGVkUmVzdWx0cyA9IHJlc3VsdHMuc2xpY2UoMCwgbnVtUmVzdWx0cyk7XG5cbiAgICAvLyBDYWNoZSB0aGUgcmVzdWx0c1xuICAgIHJlc3VsdHNDYWNoZS5zZXQoY2FjaGVLZXksIHtcbiAgICAgIHJlc3VsdHM6IHBhZ2luYXRlZFJlc3VsdHMsXG4gICAgICB0aW1lc3RhbXA6IERhdGUubm93KClcbiAgICB9KTtcblxuICAgIC8vIElmIGNhY2hlIGlzIHRvbyBiaWcsIHJlbW92ZSBvbGRlc3QgZW50cmllc1xuICAgIGlmIChyZXN1bHRzQ2FjaGUuc2l6ZSA+IE1BWF9DQUNIRV9QQUdFUykge1xuICAgICAgY29uc3Qgb2xkZXN0S2V5ID0gQXJyYXkuZnJvbShyZXN1bHRzQ2FjaGUua2V5cygpKVswXTtcbiAgICAgIHJlc3VsdHNDYWNoZS5kZWxldGUob2xkZXN0S2V5KTtcbiAgICB9XG5cbiAgICByZXR1cm4gcGFnaW5hdGVkUmVzdWx0cztcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICBjb25zb2xlLmVycm9yKCdFcnJvciBzZWFyY2hpbmcgRHVja0R1Y2tHbzonLCBlcnJvci5tZXNzYWdlKTtcbiAgICB0aHJvdyBlcnJvcjtcbiAgfVxufVxuXG4vKipcbiAqIEZldGNoZXMgdGhlIGNvbnRlbnQgb2YgYSBVUkwgYW5kIHJldHVybnMgaXQgYXMgdGV4dFxuICogQHBhcmFtIHtzdHJpbmd9IHVybCAtIFRoZSBVUkwgdG8gZmV0Y2hcbiAqIEBwYXJhbSB7T2JqZWN0fSBvcHRpb25zIC0gT3B0aW9ucyBmb3IgY29udGVudCBleHRyYWN0aW9uXG4gKiBAcGFyYW0ge2Jvb2xlYW59IG9wdGlvbnMuZXh0cmFjdE1haW5Db250ZW50IC0gV2hldGhlciB0byBhdHRlbXB0IHRvIGV4dHJhY3QgbWFpbiBjb250ZW50IChkZWZhdWx0OiB0cnVlKVxuICogQHBhcmFtIHtib29sZWFufSBvcHRpb25zLmluY2x1ZGVMaW5rcyAtIFdoZXRoZXIgdG8gaW5jbHVkZSBsaW5rIHRleHQgKGRlZmF1bHQ6IHRydWUpXG4gKiBAcGFyYW0ge2Jvb2xlYW59IG9wdGlvbnMuaW5jbHVkZUltYWdlcyAtIFdoZXRoZXIgdG8gaW5jbHVkZSBpbWFnZSBhbHQgdGV4dCAoZGVmYXVsdDogdHJ1ZSlcbiAqIEBwYXJhbSB7c3RyaW5nW119IG9wdGlvbnMuZXhjbHVkZVRhZ3MgLSBUYWdzIHRvIGV4Y2x1ZGUgZnJvbSBleHRyYWN0aW9uXG4gKiBAcmV0dXJucyB7UHJvbWlzZTxzdHJpbmc+fSAtIFRoZSBjb250ZW50IG9mIHRoZSBVUkxcbiAqL1xuYXN5bmMgZnVuY3Rpb24gZmV0Y2hVcmxDb250ZW50KHVybCwgb3B0aW9ucyA9IHt9KSB7XG4gIHRyeSB7XG4gICAgLy8gRGVmYXVsdCBvcHRpb25zXG4gICAgY29uc3Qge1xuICAgICAgZXh0cmFjdE1haW5Db250ZW50ID0gdHJ1ZSxcbiAgICAgIGluY2x1ZGVMaW5rcyA9IHRydWUsXG4gICAgICBpbmNsdWRlSW1hZ2VzID0gdHJ1ZSxcbiAgICAgIGV4Y2x1ZGVUYWdzID0gWydzY3JpcHQnLCAnc3R5bGUnLCAnbm9zY3JpcHQnLCAnaWZyYW1lJywgJ3N2ZycsICduYXYnLCAnZm9vdGVyJywgJ2hlYWRlcicsICdhc2lkZSddXG4gICAgfSA9IG9wdGlvbnM7XG5cbiAgICAvLyBHZXQgYSByYW5kb20gdXNlciBhZ2VudFxuICAgIGNvbnN0IHVzZXJBZ2VudCA9IGdldFJhbmRvbVVzZXJBZ2VudCgpO1xuXG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBheGlvcy5nZXQodXJsLCB7XG4gICAgICBoZWFkZXJzOiB7XG4gICAgICAgICdVc2VyLUFnZW50JzogdXNlckFnZW50XG4gICAgICB9LFxuICAgICAgdGltZW91dDogMTAwMDAsIC8vIDEwIHNlY29uZCB0aW1lb3V0XG4gICAgICBodHRwc0FnZW50OiBodHRwc0FnZW50XG4gICAgfSk7XG5cbiAgICBpZiAocmVzcG9uc2Uuc3RhdHVzICE9PSAyMDApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgRmFpbGVkIHRvIGZldGNoIFVSTDogJHt1cmx9YCk7XG4gICAgfVxuXG4gICAgLy8gSWYgdGhlIGNvbnRlbnQgaXMgSFRNTCwgZXh0cmFjdCB0aGUgdGV4dCBjb250ZW50XG4gICAgY29uc3QgY29udGVudFR5cGUgPSByZXNwb25zZS5oZWFkZXJzWydjb250ZW50LXR5cGUnXSB8fCAnJztcbiAgICBpZiAoY29udGVudFR5cGUuaW5jbHVkZXMoJ3RleHQvaHRtbCcpKSB7XG4gICAgICBjb25zdCAkID0gY2hlZXJpby5sb2FkKHJlc3BvbnNlLmRhdGEpO1xuXG4gICAgICAvLyBSZW1vdmUgdW53YW50ZWQgZWxlbWVudHNcbiAgICAgIGV4Y2x1ZGVUYWdzLmZvckVhY2godGFnID0+IHtcbiAgICAgICAgJCh0YWcpLnJlbW92ZSgpO1xuICAgICAgfSk7XG5cbiAgICAgIC8vIFJlbW92ZSBhZHMgYW5kIG90aGVyIGNvbW1vbiB1bndhbnRlZCBlbGVtZW50c1xuICAgICAgY29uc3QgdW53YW50ZWRTZWxlY3RvcnMgPSBbXG4gICAgICAgICdbaWQqPVwiYWRcIl0nLCAnW2NsYXNzKj1cImFkXCJdJywgJ1tpZCo9XCJiYW5uZXJcIl0nLCAnW2NsYXNzKj1cImJhbm5lclwiXScsXG4gICAgICAgICdbaWQqPVwicG9wdXBcIl0nLCAnW2NsYXNzKj1cInBvcHVwXCJdJywgJ1tjbGFzcyo9XCJjb29raWVcIl0nLFxuICAgICAgICAnW2lkKj1cImNvb2tpZVwiXScsICdbY2xhc3MqPVwibmV3c2xldHRlclwiXScsICdbaWQqPVwibmV3c2xldHRlclwiXScsXG4gICAgICAgICdbY2xhc3MqPVwic29jaWFsXCJdJywgJ1tpZCo9XCJzb2NpYWxcIl0nLCAnW2NsYXNzKj1cInNoYXJlXCJdJywgJ1tpZCo9XCJzaGFyZVwiXSdcbiAgICAgIF07XG5cbiAgICAgIHVud2FudGVkU2VsZWN0b3JzLmZvckVhY2goc2VsZWN0b3IgPT4ge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICQoc2VsZWN0b3IpLnJlbW92ZSgpO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgLy8gSWdub3JlIGludmFsaWQgc2VsZWN0b3JzXG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgICAvLyBIYW5kbGUgbGlua3MgYW5kIGltYWdlc1xuICAgICAgaWYgKCFpbmNsdWRlTGlua3MpIHtcbiAgICAgICAgJCgnYScpLmVhY2goKGksIGxpbmspID0+IHtcbiAgICAgICAgICAkKGxpbmspLnJlcGxhY2VXaXRoKCQobGluaykudGV4dCgpKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIGlmICghaW5jbHVkZUltYWdlcykge1xuICAgICAgICAkKCdpbWcnKS5yZW1vdmUoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIFJlcGxhY2UgaW1hZ2VzIHdpdGggdGhlaXIgYWx0IHRleHRcbiAgICAgICAgJCgnaW1nJykuZWFjaCgoaSwgaW1nKSA9PiB7XG4gICAgICAgICAgY29uc3QgYWx0ID0gJChpbWcpLmF0dHIoJ2FsdCcpO1xuICAgICAgICAgIGlmIChhbHQpIHtcbiAgICAgICAgICAgICQoaW1nKS5yZXBsYWNlV2l0aChgW0ltYWdlOiAke2FsdH1dYCk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICQoaW1nKS5yZW1vdmUoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICAvLyBUcnkgdG8gZXh0cmFjdCBtYWluIGNvbnRlbnQgaWYgcmVxdWVzdGVkXG4gICAgICBpZiAoZXh0cmFjdE1haW5Db250ZW50KSB7XG4gICAgICAgIC8vIENvbW1vbiBjb250ZW50IHNlbGVjdG9ycyBpbiBvcmRlciBvZiBwcmlvcml0eVxuICAgICAgICBjb25zdCBjb250ZW50U2VsZWN0b3JzID0gW1xuICAgICAgICAgICdhcnRpY2xlJywgJ21haW4nLCAnW3JvbGU9XCJtYWluXCJdJywgJy5wb3N0LWNvbnRlbnQnLCAnLmFydGljbGUtY29udGVudCcsXG4gICAgICAgICAgJy5jb250ZW50JywgJyNjb250ZW50JywgJy5wb3N0JywgJy5hcnRpY2xlJywgJy5lbnRyeS1jb250ZW50JyxcbiAgICAgICAgICAnLnBhZ2UtY29udGVudCcsICcucG9zdC1ib2R5JywgJy5wb3N0LXRleHQnLCAnLnN0b3J5LWJvZHknXG4gICAgICAgIF07XG5cbiAgICAgICAgZm9yIChjb25zdCBzZWxlY3RvciBvZiBjb250ZW50U2VsZWN0b3JzKSB7XG4gICAgICAgICAgY29uc3QgbWFpbkNvbnRlbnQgPSAkKHNlbGVjdG9yKS5maXJzdCgpO1xuICAgICAgICAgIGlmIChtYWluQ29udGVudC5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAvLyBDbGVhbiB1cCB0aGUgY29udGVudFxuICAgICAgICAgICAgcmV0dXJuIGNsZWFuVGV4dChtYWluQ29udGVudC50ZXh0KCkpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyBJZiBubyBtYWluIGNvbnRlbnQgZm91bmQgb3Igbm90IHJlcXVlc3RlZCwgdXNlIHRoZSBib2R5XG4gICAgICByZXR1cm4gY2xlYW5UZXh0KCQoJ2JvZHknKS50ZXh0KCkpO1xuICAgIH1cblxuICAgIC8vIEZvciBub24tSFRNTCBjb250ZW50LCByZXR1cm4gYXMgaXNcbiAgICByZXR1cm4gcmVzcG9uc2UuZGF0YS50b1N0cmluZygpO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGZldGNoaW5nIFVSTCBjb250ZW50OicsIGVycm9yLm1lc3NhZ2UpO1xuICAgIHRocm93IGVycm9yO1xuICB9XG59XG5cbi8qKlxuICogQ2xlYW5zIHVwIHRleHQgYnkgcmVtb3ZpbmcgZXhjZXNzaXZlIHdoaXRlc3BhY2UgYW5kIG5vcm1hbGl6aW5nIGxpbmUgYnJlYWtzXG4gKiBAcGFyYW0ge3N0cmluZ30gdGV4dCAtIFRoZSB0ZXh0IHRvIGNsZWFuXG4gKiBAcmV0dXJucyB7c3RyaW5nfSAtIFRoZSBjbGVhbmVkIHRleHRcbiAqL1xuZnVuY3Rpb24gY2xlYW5UZXh0KHRleHQpIHtcbiAgcmV0dXJuIHRleHRcbiAgICAucmVwbGFjZSgvXFxzKy9nLCAnICcpICAvLyBSZXBsYWNlIG11bHRpcGxlIHdoaXRlc3BhY2Ugd2l0aCBzaW5nbGUgc3BhY2VcbiAgICAucmVwbGFjZSgvXFxuXFxzKlxcbi9nLCAnXFxuXFxuJykgIC8vIE5vcm1hbGl6ZSBtdWx0aXBsZSBsaW5lIGJyZWFrc1xuICAgIC5yZXBsYWNlKC9eXFxzK3xcXHMrJC9nLCAnJykgIC8vIFRyaW0gc3RhcnQgYW5kIGVuZFxuICAgIC50cmltKCk7XG59XG5cbi8qKlxuICogRXh0cmFjdHMgbWV0YWRhdGEgZnJvbSBhIFVSTCAodGl0bGUsIGRlc2NyaXB0aW9uLCBldGMuKVxuICogQHBhcmFtIHtzdHJpbmd9IHVybCAtIFRoZSBVUkwgdG8gZXh0cmFjdCBtZXRhZGF0YSBmcm9tXG4gKiBAcmV0dXJucyB7UHJvbWlzZTxPYmplY3Q+fSAtIFRoZSBtZXRhZGF0YVxuICovXG5hc3luYyBmdW5jdGlvbiBleHRyYWN0VXJsTWV0YWRhdGEodXJsKSB7XG4gIHRyeSB7XG4gICAgLy8gR2V0IGEgcmFuZG9tIHVzZXIgYWdlbnRcbiAgICBjb25zdCB1c2VyQWdlbnQgPSBnZXRSYW5kb21Vc2VyQWdlbnQoKTtcblxuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgYXhpb3MuZ2V0KHVybCwge1xuICAgICAgaGVhZGVyczoge1xuICAgICAgICAnVXNlci1BZ2VudCc6IHVzZXJBZ2VudFxuICAgICAgfSxcbiAgICAgIGh0dHBzQWdlbnQ6IGh0dHBzQWdlbnRcbiAgICB9KTtcblxuICAgIGlmIChyZXNwb25zZS5zdGF0dXMgIT09IDIwMCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBGYWlsZWQgdG8gZmV0Y2ggVVJMOiAke3VybH1gKTtcbiAgICB9XG5cbiAgICBjb25zdCAkID0gY2hlZXJpby5sb2FkKHJlc3BvbnNlLmRhdGEpO1xuXG4gICAgLy8gRXh0cmFjdCBtZXRhZGF0YVxuICAgIGNvbnN0IHRpdGxlID0gJCgndGl0bGUnKS50ZXh0KCkgfHwgJyc7XG4gICAgY29uc3QgZGVzY3JpcHRpb24gPSAkKCdtZXRhW25hbWU9XCJkZXNjcmlwdGlvblwiXScpLmF0dHIoJ2NvbnRlbnQnKSB8fFxuICAgICAgICAgICAgICAgICAgICAgICAkKCdtZXRhW3Byb3BlcnR5PVwib2c6ZGVzY3JpcHRpb25cIl0nKS5hdHRyKCdjb250ZW50JykgfHwgJyc7XG4gICAgY29uc3Qgb2dJbWFnZSA9ICQoJ21ldGFbcHJvcGVydHk9XCJvZzppbWFnZVwiXScpLmF0dHIoJ2NvbnRlbnQnKSB8fCAnJztcbiAgICBjb25zdCBmYXZpY29uID0gJCgnbGlua1tyZWw9XCJpY29uXCJdJykuYXR0cignaHJlZicpIHx8XG4gICAgICAgICAgICAgICAgICAkKCdsaW5rW3JlbD1cInNob3J0Y3V0IGljb25cIl0nKS5hdHRyKCdocmVmJykgfHwgJyc7XG5cbiAgICAvLyBSZXNvbHZlIHJlbGF0aXZlIFVSTHNcbiAgICBjb25zdCByZXNvbHZlZEZhdmljb24gPSBmYXZpY29uID8gbmV3IFVSTChmYXZpY29uLCB1cmwpLmhyZWYgOiBnZXRGYXZpY29uVXJsKHVybCk7XG4gICAgY29uc3QgcmVzb2x2ZWRPZ0ltYWdlID0gb2dJbWFnZSA/IG5ldyBVUkwob2dJbWFnZSwgdXJsKS5ocmVmIDogJyc7XG5cbiAgICByZXR1cm4ge1xuICAgICAgdGl0bGUsXG4gICAgICBkZXNjcmlwdGlvbixcbiAgICAgIG9nSW1hZ2U6IHJlc29sdmVkT2dJbWFnZSxcbiAgICAgIGZhdmljb246IHJlc29sdmVkRmF2aWNvbixcbiAgICAgIHVybFxuICAgIH07XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgY29uc29sZS5lcnJvcignRXJyb3IgZXh0cmFjdGluZyBVUkwgbWV0YWRhdGE6JywgZXJyb3IubWVzc2FnZSk7XG4gICAgdGhyb3cgZXJyb3I7XG4gIH1cbn1cblxuZXhwb3J0IHtcbiAgc2VhcmNoRHVja0R1Y2tHbyxcbiAgZmV0Y2hVcmxDb250ZW50LFxuICBleHRyYWN0VXJsTWV0YWRhdGEsXG4gIGV4dHJhY3REaXJlY3RVcmwsXG4gIGdldEZhdmljb25Vcmxcbn07XG4iLCAiaW1wb3J0IHsgc2VhcmNoRHVja0R1Y2tHbyB9IGZyb20gJy4uL3V0aWxzL3NlYXJjaC5qcyc7XG5cbi8qKlxuICogV2ViIHNlYXJjaCB0b29sIGRlZmluaXRpb25cbiAqL1xuZXhwb3J0IGNvbnN0IHNlYXJjaFRvb2xEZWZpbml0aW9uID0ge1xuICBuYW1lOiAnd2ViLXNlYXJjaCcsXG4gIHRpdGxlOiAnV2ViIFNlYXJjaCcsXG4gIGRlc2NyaXB0aW9uOiAnU2VhcmNoIHRoZSB3ZWIgdXNpbmcgRHVja0R1Y2tHbyBhbmQgcmV0dXJuIGNvbXByZWhlbnNpdmUgcmVzdWx0cyB3aXRoIHRpdGxlcywgVVJMcywgYW5kIHNuaXBwZXRzJyxcbiAgaW5wdXRTY2hlbWE6IHtcbiAgICB0eXBlOiAnb2JqZWN0JyxcbiAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICBxdWVyeToge1xuICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgZGVzY3JpcHRpb246ICdUaGUgc2VhcmNoIHF1ZXJ5IHRvIGZpbmQgcmVsZXZhbnQgd2ViIHBhZ2VzJ1xuICAgICAgfSxcbiAgICAgIHBhZ2U6IHtcbiAgICAgICAgdHlwZTogJ2ludGVnZXInLFxuICAgICAgICBkZXNjcmlwdGlvbjogJ1BhZ2UgbnVtYmVyIGZvciBwYWdpbmF0aW9uIChkZWZhdWx0OiAxKScsXG4gICAgICAgIGRlZmF1bHQ6IDEsXG4gICAgICAgIG1pbmltdW06IDFcbiAgICAgIH0sXG4gICAgICBudW1SZXN1bHRzOiB7XG4gICAgICAgIHR5cGU6ICdpbnRlZ2VyJyxcbiAgICAgICAgZGVzY3JpcHRpb246ICdOdW1iZXIgb2YgcmVzdWx0cyB0byByZXR1cm4gcGVyIHBhZ2UgKGRlZmF1bHQ6IDEwLCBtYXg6IDIwKScsXG4gICAgICAgIGRlZmF1bHQ6IDEwLFxuICAgICAgICBtaW5pbXVtOiAxLFxuICAgICAgICBtYXhpbXVtOiAyMFxuICAgICAgfVxuICAgIH0sXG4gICAgcmVxdWlyZWQ6IFsncXVlcnknXVxuICB9XG59O1xuXG4vKipcbiAqIFdlYiBzZWFyY2ggdG9vbCBoYW5kbGVyXG4gKiBAcGFyYW0ge09iamVjdH0gcGFyYW1zIC0gVGhlIHRvb2wgcGFyYW1ldGVyc1xuICogQHJldHVybnMge1Byb21pc2U8T2JqZWN0Pn0gLSBUaGUgdG9vbCByZXN1bHRcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHNlYXJjaFRvb2xIYW5kbGVyKHBhcmFtcykge1xuICBjb25zdCB7IHF1ZXJ5LCBwYWdlID0gMSwgbnVtUmVzdWx0cyA9IDEwIH0gPSBwYXJhbXM7XG4gIGNvbnNvbGUubG9nKGBTZWFyY2hpbmcgZm9yOiAke3F1ZXJ5fSAocGFnZSAke3BhZ2V9LCAke251bVJlc3VsdHN9IHJlc3VsdHMpYCk7XG4gIFxuICBjb25zdCByZXN1bHRzID0gYXdhaXQgc2VhcmNoRHVja0R1Y2tHbyhxdWVyeSwgcGFnZSwgbnVtUmVzdWx0cyk7XG4gIGNvbnNvbGUubG9nKGBGb3VuZCAke3Jlc3VsdHMubGVuZ3RofSByZXN1bHRzYCk7XG4gIFxuICAvLyBGb3JtYXQgdGhlIHJlc3VsdHMgZm9yIGRpc3BsYXlcbiAgY29uc3QgZm9ybWF0dGVkUmVzdWx0cyA9IHJlc3VsdHMubWFwKChyZXN1bHQsIGluZGV4KSA9PiBcbiAgICBgJHtpbmRleCArIDF9LiBbJHtyZXN1bHQudGl0bGV9XSgke3Jlc3VsdC51cmx9KVxcbiAgICR7cmVzdWx0LnNuaXBwZXR9YFxuICApLmpvaW4oJ1xcblxcbicpO1xuICBcbiAgcmV0dXJuIHtcbiAgICBjb250ZW50OiBbXG4gICAgICB7XG4gICAgICAgIHR5cGU6ICd0ZXh0JyxcbiAgICAgICAgdGV4dDogZm9ybWF0dGVkUmVzdWx0cyB8fCAnTm8gcmVzdWx0cyBmb3VuZC4nXG4gICAgICB9XG4gICAgXVxuICB9O1xufVxuIiwgImltcG9ydCB7IGZldGNoVXJsQ29udGVudCB9IGZyb20gJy4uL3V0aWxzL3NlYXJjaC5qcyc7XG5cbi8qKlxuICogRmV0Y2ggVVJMIHRvb2wgZGVmaW5pdGlvblxuICovXG5leHBvcnQgY29uc3QgZmV0Y2hVcmxUb29sRGVmaW5pdGlvbiA9IHtcbiAgbmFtZTogJ2ZldGNoLXVybCcsXG4gIHRpdGxlOiAnRmV0Y2ggVVJMIENvbnRlbnQnLFxuICBkZXNjcmlwdGlvbjogJ0ZldGNoIGFuZCBleHRyYWN0IHRoZSBtYWluIGNvbnRlbnQgZnJvbSBhbnkgVVJMLCB3aXRoIGN1c3RvbWl6YWJsZSBleHRyYWN0aW9uIG9wdGlvbnMgZm9yIHRleHQsIGxpbmtzLCBhbmQgaW1hZ2VzJyxcbiAgaW5wdXRTY2hlbWE6IHtcbiAgICB0eXBlOiAnb2JqZWN0JyxcbiAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICB1cmw6IHtcbiAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgIGRlc2NyaXB0aW9uOiAnVGhlIFVSTCB0byBmZXRjaCBjb250ZW50IGZyb20gKG11c3QgYmUgYSB2YWxpZCBIVFRQL0hUVFBTIFVSTCknXG4gICAgICB9LFxuICAgICAgbWF4TGVuZ3RoOiB7XG4gICAgICAgIHR5cGU6ICdpbnRlZ2VyJyxcbiAgICAgICAgZGVzY3JpcHRpb246ICdNYXhpbXVtIGxlbmd0aCBvZiBjb250ZW50IHRvIHJldHVybiBpbiBjaGFyYWN0ZXJzIChkZWZhdWx0OiAxMDAwMCknLFxuICAgICAgICBkZWZhdWx0OiAxMDAwMCxcbiAgICAgICAgbWluaW11bTogMTAwMCxcbiAgICAgICAgbWF4aW11bTogNTAwMDBcbiAgICAgIH0sXG4gICAgICBleHRyYWN0TWFpbkNvbnRlbnQ6IHtcbiAgICAgICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgICAgICBkZXNjcmlwdGlvbjogJ1doZXRoZXIgdG8gYXR0ZW1wdCB0byBleHRyYWN0IG1haW4gY29udGVudCBvbmx5LCBmaWx0ZXJpbmcgb3V0IG5hdmlnYXRpb24gYW5kIGFkcyAoZGVmYXVsdDogdHJ1ZSknLFxuICAgICAgICBkZWZhdWx0OiB0cnVlXG4gICAgICB9LFxuICAgICAgaW5jbHVkZUxpbmtzOiB7XG4gICAgICAgIHR5cGU6ICdib29sZWFuJyxcbiAgICAgICAgZGVzY3JpcHRpb246ICdXaGV0aGVyIHRvIGluY2x1ZGUgbGluayB0ZXh0IGluIHRoZSBleHRyYWN0ZWQgY29udGVudCAoZGVmYXVsdDogdHJ1ZSknLFxuICAgICAgICBkZWZhdWx0OiB0cnVlXG4gICAgICB9LFxuICAgICAgaW5jbHVkZUltYWdlczoge1xuICAgICAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgICAgIGRlc2NyaXB0aW9uOiAnV2hldGhlciB0byBpbmNsdWRlIGltYWdlIGFsdCB0ZXh0IGluIHRoZSBleHRyYWN0ZWQgY29udGVudCAoZGVmYXVsdDogdHJ1ZSknLFxuICAgICAgICBkZWZhdWx0OiB0cnVlXG4gICAgICB9LFxuICAgICAgZXhjbHVkZVRhZ3M6IHtcbiAgICAgICAgdHlwZTogJ2FycmF5JyxcbiAgICAgICAgZGVzY3JpcHRpb246ICdIVE1MIHRhZ3MgdG8gZXhjbHVkZSBmcm9tIGV4dHJhY3Rpb24gKGRlZmF1bHQ6IHNjcmlwdCwgc3R5bGUsIGV0Yy4pJyxcbiAgICAgICAgaXRlbXM6IHtcbiAgICAgICAgICB0eXBlOiAnc3RyaW5nJ1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICByZXF1aXJlZDogWyd1cmwnXVxuICB9XG59O1xuXG4vKipcbiAqIEZldGNoIFVSTCB0b29sIGhhbmRsZXJcbiAqIEBwYXJhbSB7T2JqZWN0fSBwYXJhbXMgLSBUaGUgdG9vbCBwYXJhbWV0ZXJzXG4gKiBAcmV0dXJucyB7UHJvbWlzZTxPYmplY3Q+fSAtIFRoZSB0b29sIHJlc3VsdFxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZmV0Y2hVcmxUb29sSGFuZGxlcihwYXJhbXMpIHtcbiAgY29uc3Qge1xuICAgIHVybCxcbiAgICBtYXhMZW5ndGggPSAxMDAwMCxcbiAgICBleHRyYWN0TWFpbkNvbnRlbnQgPSB0cnVlLFxuICAgIGluY2x1ZGVMaW5rcyA9IHRydWUsXG4gICAgaW5jbHVkZUltYWdlcyA9IHRydWUsXG4gICAgZXhjbHVkZVRhZ3MgPSBbJ3NjcmlwdCcsICdzdHlsZScsICdub3NjcmlwdCcsICdpZnJhbWUnLCAnc3ZnJywgJ25hdicsICdmb290ZXInLCAnaGVhZGVyJywgJ2FzaWRlJ11cbiAgfSA9IHBhcmFtcztcblxuICBjb25zb2xlLmxvZyhgRmV0Y2hpbmcgY29udGVudCBmcm9tIFVSTDogJHt1cmx9IChtYXhMZW5ndGg6ICR7bWF4TGVuZ3RofSlgKTtcblxuICB0cnkge1xuICAgIC8vIEZldGNoIGNvbnRlbnQgd2l0aCBzcGVjaWZpZWQgb3B0aW9uc1xuICAgIGNvbnN0IGNvbnRlbnQgPSBhd2FpdCBmZXRjaFVybENvbnRlbnQodXJsLCB7XG4gICAgICBleHRyYWN0TWFpbkNvbnRlbnQsXG4gICAgICBpbmNsdWRlTGlua3MsXG4gICAgICBpbmNsdWRlSW1hZ2VzLFxuICAgICAgZXhjbHVkZVRhZ3NcbiAgICB9KTtcblxuICAgIC8vIFRydW5jYXRlIGNvbnRlbnQgaWYgaXQncyB0b28gbG9uZ1xuICAgIGNvbnN0IHRydW5jYXRlZENvbnRlbnQgPSBjb250ZW50Lmxlbmd0aCA+IG1heExlbmd0aFxuICAgICAgPyBjb250ZW50LnN1YnN0cmluZygwLCBtYXhMZW5ndGgpICsgJy4uLiBbQ29udGVudCB0cnVuY2F0ZWQgZHVlIHRvIGxlbmd0aF0nXG4gICAgICA6IGNvbnRlbnQ7XG5cbiAgICAvLyBBZGQgbWV0YWRhdGEgYWJvdXQgdGhlIGV4dHJhY3Rpb25cbiAgICBjb25zdCBtZXRhZGF0YSA9IGBcbi0tLVxuRXh0cmFjdGlvbiBzZXR0aW5nczpcbi0gVVJMOiAke3VybH1cbi0gTWFpbiBjb250ZW50IGV4dHJhY3Rpb246ICR7ZXh0cmFjdE1haW5Db250ZW50ID8gJ0VuYWJsZWQnIDogJ0Rpc2FibGVkJ31cbi0gTGlua3MgaW5jbHVkZWQ6ICR7aW5jbHVkZUxpbmtzID8gJ1llcycgOiAnTm8nfVxuLSBJbWFnZXMgaW5jbHVkZWQ6ICR7aW5jbHVkZUltYWdlcyA/ICdZZXMgKGFzIGFsdCB0ZXh0KScgOiAnTm8nfVxuLSBDb250ZW50IGxlbmd0aDogJHtjb250ZW50Lmxlbmd0aH0gY2hhcmFjdGVycyR7Y29udGVudC5sZW5ndGggPiBtYXhMZW5ndGggPyBgICh0cnVuY2F0ZWQgdG8gJHttYXhMZW5ndGh9KWAgOiAnJ31cbi0tLVxuYDtcblxuICAgIHJldHVybiB7XG4gICAgICBjb250ZW50OiBbXG4gICAgICAgIHtcbiAgICAgICAgICB0eXBlOiAndGV4dCcsXG4gICAgICAgICAgdGV4dDogdHJ1bmNhdGVkQ29udGVudCArIG1ldGFkYXRhXG4gICAgICAgIH1cbiAgICAgIF1cbiAgICB9O1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIGNvbnNvbGUuZXJyb3IoYEVycm9yIGZldGNoaW5nIFVSTCAke3VybH06YCwgZXJyb3IpO1xuICAgIHJldHVybiB7XG4gICAgICBpc0Vycm9yOiB0cnVlLFxuICAgICAgY29udGVudDogW1xuICAgICAgICB7XG4gICAgICAgICAgdHlwZTogJ3RleHQnLFxuICAgICAgICAgIHRleHQ6IGBFcnJvciBmZXRjaGluZyBVUkw6ICR7ZXJyb3IubWVzc2FnZX1gXG4gICAgICAgIH1cbiAgICAgIF1cbiAgICB9O1xuICB9XG59XG4iLCAiaW1wb3J0IHsgZXh0cmFjdFVybE1ldGFkYXRhIH0gZnJvbSAnLi4vdXRpbHMvc2VhcmNoLmpzJztcblxuLyoqXG4gKiBVUkwgbWV0YWRhdGEgdG9vbCBkZWZpbml0aW9uXG4gKi9cbmV4cG9ydCBjb25zdCBtZXRhZGF0YVRvb2xEZWZpbml0aW9uID0ge1xuICBuYW1lOiAndXJsLW1ldGFkYXRhJyxcbiAgdGl0bGU6ICdVUkwgTWV0YWRhdGEgRXh0cmFjdG9yJyxcbiAgZGVzY3JpcHRpb246ICdFeHRyYWN0IG1ldGFkYXRhIGZyb20gYSBVUkwgaW5jbHVkaW5nIHRpdGxlLCBkZXNjcmlwdGlvbiwgT3BlbiBHcmFwaCBkYXRhLCBhbmQgZmF2aWNvbiBpbmZvcm1hdGlvbicsXG4gIGlucHV0U2NoZW1hOiB7XG4gICAgdHlwZTogJ29iamVjdCcsXG4gICAgcHJvcGVydGllczoge1xuICAgICAgdXJsOiB7XG4gICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICBkZXNjcmlwdGlvbjogJ1RoZSBVUkwgdG8gZXh0cmFjdCBtZXRhZGF0YSBmcm9tIChtdXN0IGJlIGEgdmFsaWQgSFRUUC9IVFRQUyBVUkwpJ1xuICAgICAgfVxuICAgIH0sXG4gICAgcmVxdWlyZWQ6IFsndXJsJ11cbiAgfVxufTtcblxuLyoqXG4gKiBVUkwgbWV0YWRhdGEgdG9vbCBoYW5kbGVyXG4gKiBAcGFyYW0ge09iamVjdH0gcGFyYW1zIC0gVGhlIHRvb2wgcGFyYW1ldGVyc1xuICogQHJldHVybnMge1Byb21pc2U8T2JqZWN0Pn0gLSBUaGUgdG9vbCByZXN1bHRcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIG1ldGFkYXRhVG9vbEhhbmRsZXIocGFyYW1zKSB7XG4gIGNvbnN0IHsgdXJsIH0gPSBwYXJhbXM7XG4gIGNvbnNvbGUubG9nKGBFeHRyYWN0aW5nIG1ldGFkYXRhIGZyb20gVVJMOiAke3VybH1gKTtcbiAgXG4gIGNvbnN0IG1ldGFkYXRhID0gYXdhaXQgZXh0cmFjdFVybE1ldGFkYXRhKHVybCk7XG4gIFxuICAvLyBGb3JtYXQgdGhlIG1ldGFkYXRhIGZvciBkaXNwbGF5XG4gIGNvbnN0IGZvcm1hdHRlZE1ldGFkYXRhID0gYFxuIyMgVVJMIE1ldGFkYXRhIGZvciAke3VybH1cblxuKipUaXRsZToqKiAke21ldGFkYXRhLnRpdGxlfVxuXG4qKkRlc2NyaXB0aW9uOioqICR7bWV0YWRhdGEuZGVzY3JpcHRpb259XG5cbioqSW1hZ2U6KiogJHttZXRhZGF0YS5vZ0ltYWdlIHx8ICdOb25lJ31cblxuKipGYXZpY29uOioqICR7bWV0YWRhdGEuZmF2aWNvbiB8fCAnTm9uZSd9XG4gIGAudHJpbSgpO1xuICBcbiAgcmV0dXJuIHtcbiAgICBjb250ZW50OiBbXG4gICAgICB7XG4gICAgICAgIHR5cGU6ICd0ZXh0JyxcbiAgICAgICAgdGV4dDogZm9ybWF0dGVkTWV0YWRhdGFcbiAgICAgIH1cbiAgICBdXG4gIH07XG59XG4iLCAiaW1wb3J0IGNyeXB0byBmcm9tICdjcnlwdG8nO1xuY29uc3Qgcm5kczhQb29sID0gbmV3IFVpbnQ4QXJyYXkoMjU2KTsgLy8gIyBvZiByYW5kb20gdmFsdWVzIHRvIHByZS1hbGxvY2F0ZVxuXG5sZXQgcG9vbFB0ciA9IHJuZHM4UG9vbC5sZW5ndGg7XG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBybmcoKSB7XG4gIGlmIChwb29sUHRyID4gcm5kczhQb29sLmxlbmd0aCAtIDE2KSB7XG4gICAgY3J5cHRvLnJhbmRvbUZpbGxTeW5jKHJuZHM4UG9vbCk7XG4gICAgcG9vbFB0ciA9IDA7XG4gIH1cblxuICByZXR1cm4gcm5kczhQb29sLnNsaWNlKHBvb2xQdHIsIHBvb2xQdHIgKz0gMTYpO1xufSIsICJpbXBvcnQgdmFsaWRhdGUgZnJvbSAnLi92YWxpZGF0ZS5qcyc7XG4vKipcbiAqIENvbnZlcnQgYXJyYXkgb2YgMTYgYnl0ZSB2YWx1ZXMgdG8gVVVJRCBzdHJpbmcgZm9ybWF0IG9mIHRoZSBmb3JtOlxuICogWFhYWFhYWFgtWFhYWC1YWFhYLVhYWFgtWFhYWFhYWFhYWFhYXG4gKi9cblxuY29uc3QgYnl0ZVRvSGV4ID0gW107XG5cbmZvciAobGV0IGkgPSAwOyBpIDwgMjU2OyArK2kpIHtcbiAgYnl0ZVRvSGV4LnB1c2goKGkgKyAweDEwMCkudG9TdHJpbmcoMTYpLnNsaWNlKDEpKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVuc2FmZVN0cmluZ2lmeShhcnIsIG9mZnNldCA9IDApIHtcbiAgLy8gTm90ZTogQmUgY2FyZWZ1bCBlZGl0aW5nIHRoaXMgY29kZSEgIEl0J3MgYmVlbiB0dW5lZCBmb3IgcGVyZm9ybWFuY2VcbiAgLy8gYW5kIHdvcmtzIGluIHdheXMgeW91IG1heSBub3QgZXhwZWN0LiBTZWUgaHR0cHM6Ly9naXRodWIuY29tL3V1aWRqcy91dWlkL3B1bGwvNDM0XG4gIHJldHVybiBieXRlVG9IZXhbYXJyW29mZnNldCArIDBdXSArIGJ5dGVUb0hleFthcnJbb2Zmc2V0ICsgMV1dICsgYnl0ZVRvSGV4W2FycltvZmZzZXQgKyAyXV0gKyBieXRlVG9IZXhbYXJyW29mZnNldCArIDNdXSArICctJyArIGJ5dGVUb0hleFthcnJbb2Zmc2V0ICsgNF1dICsgYnl0ZVRvSGV4W2FycltvZmZzZXQgKyA1XV0gKyAnLScgKyBieXRlVG9IZXhbYXJyW29mZnNldCArIDZdXSArIGJ5dGVUb0hleFthcnJbb2Zmc2V0ICsgN11dICsgJy0nICsgYnl0ZVRvSGV4W2FycltvZmZzZXQgKyA4XV0gKyBieXRlVG9IZXhbYXJyW29mZnNldCArIDldXSArICctJyArIGJ5dGVUb0hleFthcnJbb2Zmc2V0ICsgMTBdXSArIGJ5dGVUb0hleFthcnJbb2Zmc2V0ICsgMTFdXSArIGJ5dGVUb0hleFthcnJbb2Zmc2V0ICsgMTJdXSArIGJ5dGVUb0hleFthcnJbb2Zmc2V0ICsgMTNdXSArIGJ5dGVUb0hleFthcnJbb2Zmc2V0ICsgMTRdXSArIGJ5dGVUb0hleFthcnJbb2Zmc2V0ICsgMTVdXTtcbn1cblxuZnVuY3Rpb24gc3RyaW5naWZ5KGFyciwgb2Zmc2V0ID0gMCkge1xuICBjb25zdCB1dWlkID0gdW5zYWZlU3RyaW5naWZ5KGFyciwgb2Zmc2V0KTsgLy8gQ29uc2lzdGVuY3kgY2hlY2sgZm9yIHZhbGlkIFVVSUQuICBJZiB0aGlzIHRocm93cywgaXQncyBsaWtlbHkgZHVlIHRvIG9uZVxuICAvLyBvZiB0aGUgZm9sbG93aW5nOlxuICAvLyAtIE9uZSBvciBtb3JlIGlucHV0IGFycmF5IHZhbHVlcyBkb24ndCBtYXAgdG8gYSBoZXggb2N0ZXQgKGxlYWRpbmcgdG9cbiAgLy8gXCJ1bmRlZmluZWRcIiBpbiB0aGUgdXVpZClcbiAgLy8gLSBJbnZhbGlkIGlucHV0IHZhbHVlcyBmb3IgdGhlIFJGQyBgdmVyc2lvbmAgb3IgYHZhcmlhbnRgIGZpZWxkc1xuXG4gIGlmICghdmFsaWRhdGUodXVpZCkpIHtcbiAgICB0aHJvdyBUeXBlRXJyb3IoJ1N0cmluZ2lmaWVkIFVVSUQgaXMgaW52YWxpZCcpO1xuICB9XG5cbiAgcmV0dXJuIHV1aWQ7XG59XG5cbmV4cG9ydCBkZWZhdWx0IHN0cmluZ2lmeTsiLCAiaW1wb3J0IGNyeXB0byBmcm9tICdjcnlwdG8nO1xuZXhwb3J0IGRlZmF1bHQge1xuICByYW5kb21VVUlEOiBjcnlwdG8ucmFuZG9tVVVJRFxufTsiLCAiaW1wb3J0IG5hdGl2ZSBmcm9tICcuL25hdGl2ZS5qcyc7XG5pbXBvcnQgcm5nIGZyb20gJy4vcm5nLmpzJztcbmltcG9ydCB7IHVuc2FmZVN0cmluZ2lmeSB9IGZyb20gJy4vc3RyaW5naWZ5LmpzJztcblxuZnVuY3Rpb24gdjQob3B0aW9ucywgYnVmLCBvZmZzZXQpIHtcbiAgaWYgKG5hdGl2ZS5yYW5kb21VVUlEICYmICFidWYgJiYgIW9wdGlvbnMpIHtcbiAgICByZXR1cm4gbmF0aXZlLnJhbmRvbVVVSUQoKTtcbiAgfVxuXG4gIG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9O1xuICBjb25zdCBybmRzID0gb3B0aW9ucy5yYW5kb20gfHwgKG9wdGlvbnMucm5nIHx8IHJuZykoKTsgLy8gUGVyIDQuNCwgc2V0IGJpdHMgZm9yIHZlcnNpb24gYW5kIGBjbG9ja19zZXFfaGlfYW5kX3Jlc2VydmVkYFxuXG4gIHJuZHNbNl0gPSBybmRzWzZdICYgMHgwZiB8IDB4NDA7XG4gIHJuZHNbOF0gPSBybmRzWzhdICYgMHgzZiB8IDB4ODA7IC8vIENvcHkgYnl0ZXMgdG8gYnVmZmVyLCBpZiBwcm92aWRlZFxuXG4gIGlmIChidWYpIHtcbiAgICBvZmZzZXQgPSBvZmZzZXQgfHwgMDtcblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgMTY7ICsraSkge1xuICAgICAgYnVmW29mZnNldCArIGldID0gcm5kc1tpXTtcbiAgICB9XG5cbiAgICByZXR1cm4gYnVmO1xuICB9XG5cbiAgcmV0dXJuIHVuc2FmZVN0cmluZ2lmeShybmRzKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgdjQ7IiwgImV4cG9ydCB7IGRlZmF1bHQgYXMgdjEgfSBmcm9tICcuL3YxLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgdjMgfSBmcm9tICcuL3YzLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgdjQgfSBmcm9tICcuL3Y0LmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgdjUgfSBmcm9tICcuL3Y1LmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgTklMIH0gZnJvbSAnLi9uaWwuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyB2ZXJzaW9uIH0gZnJvbSAnLi92ZXJzaW9uLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgdmFsaWRhdGUgfSBmcm9tICcuL3ZhbGlkYXRlLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgc3RyaW5naWZ5IH0gZnJvbSAnLi9zdHJpbmdpZnkuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBwYXJzZSB9IGZyb20gJy4vcGFyc2UuanMnOyIsICJpbXBvcnQgYXhpb3MgZnJvbSAnYXhpb3MnO1xuaW1wb3J0IHsgdjQgYXMgdXVpZHY0IH0gZnJvbSAndXVpZCc7XG5pbXBvcnQgaHR0cHMgZnJvbSAnaHR0cHMnO1xuXG4vLyBSb3RhdGluZyBVc2VyIEFnZW50c1xuY29uc3QgVVNFUl9BR0VOVFMgPSBbXG4gICdNb3ppbGxhLzUuMCAoV2luZG93cyBOVCAxMC4wOyBXaW42NDsgeDY0KSBBcHBsZVdlYktpdC81MzcuMzYgKEtIVE1MLCBsaWtlIEdlY2tvKSBDaHJvbWUvMTIwLjAuMC4wIFNhZmFyaS81MzcuMzYnLFxuICAnTW96aWxsYS81LjAgKFdpbmRvd3MgTlQgMTAuMDsgV2luNjQ7IHg2NCkgRWRnZS8xMjAuMC4wLjAnLFxuICAnTW96aWxsYS81LjAgKE1hY2ludG9zaDsgSW50ZWwgTWFjIE9TIFggMTBfMTVfNykgQXBwbGVXZWJLaXQvNjA1LjEuMTUgKEtIVE1MLCBsaWtlIEdlY2tvKSBWZXJzaW9uLzE3LjIuMSBTYWZhcmkvNjA1LjEuMTUnLFxuICAnTW96aWxsYS81LjAgKFdpbmRvd3MgTlQgMTAuMDsgV2luNjQ7IHg2NDsgcnY6MTIyLjApIEdlY2tvLzIwMTAwMTAxIEZpcmVmb3gvMTIyLjAnLFxuICAnTW96aWxsYS81LjAgKFgxMTsgTGludXggeDg2XzY0KSBBcHBsZVdlYktpdC81MzcuMzYgKEtIVE1MLCBsaWtlIEdlY2tvKSBDaHJvbWUvMTIwLjAuMC4wIFNhZmFyaS81MzcuMzYnXG5dO1xuXG4vLyBDYWNoZSByZXN1bHRzIHRvIGF2b2lkIHJlcGVhdGVkIHJlcXVlc3RzXG5jb25zdCByZXN1bHRzQ2FjaGUgPSBuZXcgTWFwKCk7XG5jb25zdCBDQUNIRV9EVVJBVElPTiA9IDUgKiA2MCAqIDEwMDA7IC8vIDUgbWludXRlc1xuXG4vLyBIVFRQUyBhZ2VudCBjb25maWd1cmF0aW9uIHRvIGhhbmRsZSBjZXJ0aWZpY2F0ZSBjaGFpbiBpc3N1ZXNcbmNvbnN0IGh0dHBzQWdlbnQgPSBuZXcgaHR0cHMuQWdlbnQoe1xuICByZWplY3RVbmF1dGhvcml6ZWQ6IHRydWUsIC8vIEtlZXAgc2VjdXJpdHkgZW5hYmxlZFxuICBrZWVwQWxpdmU6IHRydWUsXG4gIHRpbWVvdXQ6IDMwMDAwLFxuICAvLyBQcm92aWRlIGZhbGxiYWNrIGZvciBjZXJ0aWZpY2F0ZSBpc3N1ZXMgd2hpbGUgbWFpbnRhaW5pbmcgc2VjdXJpdHlcbiAgc2VjdXJlUHJvdG9jb2w6ICdUTFN2MV8yX21ldGhvZCdcbn0pO1xuXG4vLyBDcmVhdGUgYSBwZXJzaXN0ZW50IGF4aW9zIGluc3RhbmNlIHRvIG1haW50YWluIHNlc3Npb24gc3RhdGVcbmNvbnN0IGZlbG9TZXNzaW9uID0gYXhpb3MuY3JlYXRlKHtcbiAgdGltZW91dDogMzAwMDAsXG4gIGh0dHBzQWdlbnQ6IGh0dHBzQWdlbnQsXG4gIGhlYWRlcnM6IHtcbiAgICAnYWNjZXB0JzogJyovKicsXG4gICAgJ2FjY2VwdC1lbmNvZGluZyc6ICdnemlwLCBkZWZsYXRlLCBiciwgenN0ZCcsXG4gICAgJ2FjY2VwdC1sYW5ndWFnZSc6ICdlbi1VUyxlbjtxPTAuOSxlbi1JTjtxPTAuOCcsXG4gICAgJ2NvbnRlbnQtdHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgICAnZG50JzogJzEnLFxuICAgICdvcmlnaW4nOiAnaHR0cHM6Ly9mZWxvLmFpJyxcbiAgICAncmVmZXJlcic6ICdodHRwczovL2ZlbG8uYWkvJyxcbiAgICAnc2VjLWNoLXVhJzogJ1wiTm90KUE7QnJhbmRcIjt2PVwiOTlcIiwgXCJNaWNyb3NvZnQgRWRnZVwiO3Y9XCIxMjdcIiwgXCJDaHJvbWl1bVwiO3Y9XCIxMjdcIicsXG4gICAgJ3NlYy1jaC11YS1tb2JpbGUnOiAnPzAnLFxuICAgICdzZWMtY2gtdWEtcGxhdGZvcm0nOiAnXCJXaW5kb3dzXCInLFxuICAgICdzZWMtZmV0Y2gtZGVzdCc6ICdlbXB0eScsXG4gICAgJ3NlYy1mZXRjaC1tb2RlJzogJ2NvcnMnLFxuICAgICdzZWMtZmV0Y2gtc2l0ZSc6ICdzYW1lLXNpdGUnLFxuICAgICd1c2VyLWFnZW50JzogZ2V0UmFuZG9tVXNlckFnZW50KClcbiAgfVxufSk7XG5cbi8qKlxuICogUmVzcG9uc2UgY2xhc3MgZm9yIEZlbG8gQVBJIHJlc3BvbnNlc1xuICovXG5jbGFzcyBSZXNwb25zZSB7XG4gIC8qKlxuICAgKiBDcmVhdGUgYSBuZXcgUmVzcG9uc2VcbiAgICogQHBhcmFtIHtzdHJpbmd9IHRleHQgLSBUaGUgdGV4dCBjb250ZW50IG9mIHRoZSByZXNwb25zZVxuICAgKi9cbiAgY29uc3RydWN0b3IodGV4dCkge1xuICAgIHRoaXMudGV4dCA9IHRleHQ7XG4gIH1cblxuICAvKipcbiAgICogU3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSByZXNwb25zZVxuICAgKiBAcmV0dXJucyB7c3RyaW5nfSBUaGUgdGV4dCBjb250ZW50XG4gICAqL1xuICB0b1N0cmluZygpIHtcbiAgICByZXR1cm4gdGhpcy50ZXh0O1xuICB9XG59XG5cbi8qKlxuICogR2V0IGEgcmFuZG9tIHVzZXIgYWdlbnQgZnJvbSB0aGUgbGlzdFxuICogQHJldHVybnMge3N0cmluZ30gQSByYW5kb20gdXNlciBhZ2VudCBzdHJpbmdcbiAqL1xuZnVuY3Rpb24gZ2V0UmFuZG9tVXNlckFnZW50KCkge1xuICByZXR1cm4gVVNFUl9BR0VOVFNbTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogVVNFUl9BR0VOVFMubGVuZ3RoKV07XG59XG5cbi8qKlxuICogR2VuZXJhdGUgYSBjYWNoZSBrZXkgZm9yIGEgc2VhcmNoIHF1ZXJ5XG4gKiBAcGFyYW0ge3N0cmluZ30gcXVlcnkgLSBUaGUgc2VhcmNoIHF1ZXJ5XG4gKiBAcmV0dXJucyB7c3RyaW5nfSBUaGUgY2FjaGUga2V5XG4gKi9cbmZ1bmN0aW9uIGdldENhY2hlS2V5KHF1ZXJ5KSB7XG4gIHJldHVybiBgZmVsby0ke3F1ZXJ5fWA7XG59XG5cbi8qKlxuICogQ2xlYXIgb2xkIGVudHJpZXMgZnJvbSB0aGUgY2FjaGVcbiAqL1xuZnVuY3Rpb24gY2xlYXJPbGRDYWNoZSgpIHtcbiAgY29uc3Qgbm93ID0gRGF0ZS5ub3coKTtcbiAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgcmVzdWx0c0NhY2hlLmVudHJpZXMoKSkge1xuICAgIGlmIChub3cgLSB2YWx1ZS50aW1lc3RhbXAgPiBDQUNIRV9EVVJBVElPTikge1xuICAgICAgcmVzdWx0c0NhY2hlLmRlbGV0ZShrZXkpO1xuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIFNlYXJjaCB1c2luZyB0aGUgRmVsbyBBSSBBUElcbiAqIEBwYXJhbSB7c3RyaW5nfSBwcm9tcHQgLSBUaGUgc2VhcmNoIHF1ZXJ5IG9yIHByb21wdFxuICogQHBhcmFtIHtib29sZWFufSBzdHJlYW0gLSBJZiB0cnVlLCB5aWVsZHMgcmVzcG9uc2UgY2h1bmtzIGFzIHRoZXkgYXJyaXZlXG4gKiBAcGFyYW0ge2Jvb2xlYW59IHJhdyAtIElmIHRydWUsIHJldHVybnMgcmF3IHJlc3BvbnNlIGRpY3Rpb25hcmllc1xuICogQHJldHVybnMge1Byb21pc2U8c3RyaW5nfEFzeW5jR2VuZXJhdG9yPHN0cmluZz4+fSBUaGUgc2VhcmNoIHJlc3VsdHNcbiAqL1xuYXN5bmMgZnVuY3Rpb24gc2VhcmNoRmVsbyhwcm9tcHQsIHN0cmVhbSA9IGZhbHNlLCByYXcgPSBmYWxzZSkge1xuICAvLyBDbGVhciBvbGQgY2FjaGUgZW50cmllc1xuICBjbGVhck9sZENhY2hlKCk7XG5cbiAgLy8gQ2hlY2sgY2FjaGUgZmlyc3QgaWYgbm90IHN0cmVhbWluZ1xuICBpZiAoIXN0cmVhbSkge1xuICAgIGNvbnN0IGNhY2hlS2V5ID0gZ2V0Q2FjaGVLZXkocHJvbXB0KTtcbiAgICBjb25zdCBjYWNoZWRSZXN1bHRzID0gcmVzdWx0c0NhY2hlLmdldChjYWNoZUtleSk7XG5cbiAgICBpZiAoY2FjaGVkUmVzdWx0cyAmJiBEYXRlLm5vdygpIC0gY2FjaGVkUmVzdWx0cy50aW1lc3RhbXAgPCBDQUNIRV9EVVJBVElPTikge1xuICAgICAgcmV0dXJuIGNhY2hlZFJlc3VsdHMucmVzdWx0cztcbiAgICB9XG4gIH1cblxuICAvLyBDcmVhdGUgcGF5bG9hZCBmb3IgRmVsbyBBUEkgd2l0aCBwcm9wZXIgc3RydWN0dXJlIGZyb20gcmVmZXJlbmNlXG4gIGNvbnN0IHBheWxvYWQgPSB7XG4gICAgcXVlcnk6IHByb21wdCxcbiAgICBzZWFyY2hfdXVpZDogdXVpZHY0KCkucmVwbGFjZSgvLS9nLCAnJyksIC8vIFJlbW92ZSBkYXNoZXMgbGlrZSBpbiByZWZlcmVuY2VcbiAgICBsYW5nOiBcIlwiLFxuICAgIGFnZW50X2xhbmc6IFwiZW5cIixcbiAgICBzZWFyY2hfb3B0aW9uczoge1xuICAgICAgbGFuZ2NvZGU6IFwiZW4tVVNcIixcbiAgICAgIHNlYXJjaF9pbWFnZTogdHJ1ZSxcbiAgICAgIHNlYXJjaF92aWRlbzogdHJ1ZVxuICAgIH0sXG4gICAgc2VhcmNoX3ZpZGVvOiB0cnVlLFxuICAgIG1vZGVsOiBcIlwiLFxuICAgIGNvbnRleHRzX2Zyb206IFwiZ29vZ2xlXCIsXG4gICAgYXV0b19yb3V0aW5nOiB0cnVlXG4gIH07XG5cbiAgLy8gVXBkYXRlIHVzZXIgYWdlbnQgZm9yIHRoaXMgcmVxdWVzdFxuICBmZWxvU2Vzc2lvbi5kZWZhdWx0cy5oZWFkZXJzWyd1c2VyLWFnZW50J10gPSBnZXRSYW5kb21Vc2VyQWdlbnQoKTtcblxuICAvLyBEZWZpbmUgdGhlIHN0cmVhbWluZyBmdW5jdGlvblxuICBhc3luYyBmdW5jdGlvbiogc3RyZWFtRnVuY3Rpb24oKSB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmVsb1Nlc3Npb24ucG9zdCgnaHR0cHM6Ly9hcGkuZmVsby5haS9zZWFyY2gvdGhyZWFkcycsIHBheWxvYWQsIHtcbiAgICAgICAgcmVzcG9uc2VUeXBlOiAnc3RyZWFtJ1xuICAgICAgfSk7XG5cbiAgICAgIC8vIENoZWNrIGZvciBIVFRQIGVycm9yc1xuICAgICAgaWYgKHJlc3BvbnNlLnN0YXR1cyAhPT0gMjAwKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgRmFpbGVkIHRvIGdlbmVyYXRlIHJlc3BvbnNlIC0gKCR7cmVzcG9uc2Uuc3RhdHVzfSwgJHtyZXNwb25zZS5zdGF0dXNUZXh0fSkgLSAke3Jlc3BvbnNlLmRhdGF9YCk7XG4gICAgICB9XG5cbiAgICAgIGxldCBzdHJlYW1pbmdUZXh0ID0gJyc7XG4gICAgICBsZXQgYnVmZmVyID0gJyc7XG5cbiAgICAgIC8vIFByb2Nlc3MgdGhlIHN0cmVhbSBhcyBpdCBjb21lcyBpblxuICAgICAgZm9yIGF3YWl0IChjb25zdCBjaHVuayBvZiByZXNwb25zZS5kYXRhKSB7XG4gICAgICAgIGJ1ZmZlciArPSBjaHVuay50b1N0cmluZygpO1xuICAgICAgICBcbiAgICAgICAgY29uc3QgbGluZXMgPSBidWZmZXIuc3BsaXQoJ1xcbicpO1xuICAgICAgICBidWZmZXIgPSBsaW5lcy5wb3AoKSB8fCAnJzsgLy8gS2VlcCB0aGUgbGFzdCAocG90ZW50aWFsbHkgaW5jb21wbGV0ZSkgbGluZSBpbiB0aGUgYnVmZmVyXG4gICAgICAgIFxuICAgICAgICBmb3IgKGNvbnN0IGxpbmUgb2YgbGluZXMpIHtcbiAgICAgICAgICBpZiAobGluZS5zdGFydHNXaXRoKCdkYXRhOicpKSB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICBjb25zdCBkYXRhU3RyID0gbGluZS5zdWJzdHJpbmcoNSkudHJpbSgpO1xuICAgICAgICAgICAgICBpZiAoZGF0YVN0cikge1xuICAgICAgICAgICAgICAgIGNvbnN0IGRhdGEgPSBKU09OLnBhcnNlKGRhdGFTdHIpO1xuICAgICAgICAgICAgICAgIGlmIChkYXRhLnR5cGUgPT09ICdhbnN3ZXInICYmICd0ZXh0JyBpbiBkYXRhLmRhdGEpIHtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IG5ld1RleHQgPSBkYXRhLmRhdGEudGV4dDtcbiAgICAgICAgICAgICAgICAgIGlmIChuZXdUZXh0Lmxlbmd0aCA+IHN0cmVhbWluZ1RleHQubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGRlbHRhID0gbmV3VGV4dC5zdWJzdHJpbmcoc3RyZWFtaW5nVGV4dC5sZW5ndGgpO1xuICAgICAgICAgICAgICAgICAgICBzdHJlYW1pbmdUZXh0ID0gbmV3VGV4dDtcbiAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgIGlmIChyYXcpIHtcbiAgICAgICAgICAgICAgICAgICAgICB5aWVsZCB7IHRleHQ6IGRlbHRhIH07XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgeWllbGQgbmV3IFJlc3BvbnNlKGRlbHRhKS50b1N0cmluZygpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgICAvLyBJZ25vcmUgSlNPTiBwYXJzZSBlcnJvcnMgYW5kIGNvbnRpbnVlXG4gICAgICAgICAgICAgIGNvbnNvbGUuZGVidWcoJ0pTT04gcGFyc2UgZXJyb3I6JywgZXJyb3IubWVzc2FnZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBcbiAgICAgIC8vIENhY2hlIHRoZSBjb21wbGV0ZSByZXNwb25zZVxuICAgICAgaWYgKHN0cmVhbWluZ1RleHQpIHtcbiAgICAgICAgcmVzdWx0c0NhY2hlLnNldChnZXRDYWNoZUtleShwcm9tcHQpLCB7XG4gICAgICAgICAgcmVzdWx0czogc3RyZWFtaW5nVGV4dCxcbiAgICAgICAgICB0aW1lc3RhbXA6IERhdGUubm93KClcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICBcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS5lcnJvcignRXJyb3Igc2VhcmNoaW5nIEZlbG86JywgZXJyb3IubWVzc2FnZSk7XG4gICAgICBcbiAgICAgIC8vIEhhbmRsZSBzcGVjaWZpYyBBUEkgZXJyb3JzXG4gICAgICBpZiAoZXJyb3IucmVzcG9uc2UpIHtcbiAgICAgICAgY29uc3Qgc3RhdHVzID0gZXJyb3IucmVzcG9uc2Uuc3RhdHVzO1xuICAgICAgICBjb25zdCBzdGF0dXNUZXh0ID0gZXJyb3IucmVzcG9uc2Uuc3RhdHVzVGV4dDtcbiAgICAgICAgY29uc3QgZGF0YSA9IGVycm9yLnJlc3BvbnNlLmRhdGE7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgRmVsbyBBUEkgZXJyb3I6ICR7c3RhdHVzfSAke3N0YXR1c1RleHR9IC0gJHtkYXRhfWApO1xuICAgICAgfVxuICAgICAgXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEZhaWxlZCB0byBzZWFyY2ggRmVsbzogJHtlcnJvci5tZXNzYWdlfWApO1xuICAgIH1cbiAgfVxuXG4gIC8vIElmIHN0cmVhbWluZyBpcyByZXF1ZXN0ZWQsIHJldHVybiB0aGUgZ2VuZXJhdG9yXG4gIGlmIChzdHJlYW0pIHtcbiAgICByZXR1cm4gc3RyZWFtRnVuY3Rpb24oKTtcbiAgfVxuICBcbiAgLy8gRm9yIG5vbi1zdHJlYW1pbmcsIGNvbGxlY3QgYWxsIGNodW5rcyBhbmQgcmV0dXJuIGFzIGEgc2luZ2xlIHN0cmluZ1xuICBsZXQgZnVsbFJlc3BvbnNlID0gJyc7XG4gIFxuICB0cnkge1xuICAgIGZvciBhd2FpdCAoY29uc3QgY2h1bmsgb2Ygc3RyZWFtRnVuY3Rpb24oKSkge1xuICAgICAgaWYgKHJhdykge1xuICAgICAgICBmdWxsUmVzcG9uc2UgKz0gY2h1bmsudGV4dDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGZ1bGxSZXNwb25zZSArPSBjaHVuaztcbiAgICAgIH1cbiAgICB9XG4gICAgXG4gICAgcmV0dXJuIGZ1bGxSZXNwb25zZTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICBjb25zb2xlLmVycm9yKCdFcnJvciBpbiBub24tc3RyZWFtaW5nIEZlbG8gc2VhcmNoOicsIGVycm9yLm1lc3NhZ2UpO1xuICAgIHRocm93IGVycm9yO1xuICB9XG59XG5cbmV4cG9ydCB7IHNlYXJjaEZlbG8gfTtcbiIsICJpbXBvcnQgeyBzZWFyY2hGZWxvIH0gZnJvbSAnLi4vdXRpbHMvc2VhcmNoX2ZlbG8uanMnO1xuXG4vKipcbiAqIEZlbG8gQUkgc2VhcmNoIHRvb2wgZGVmaW5pdGlvblxuICovXG5leHBvcnQgY29uc3QgZmVsb1Rvb2xEZWZpbml0aW9uID0ge1xuICBuYW1lOiAnZmVsby1zZWFyY2gnLFxuICB0aXRsZTogJ0ZlbG8gQUkgQWR2YW5jZWQgU2VhcmNoJyxcbiAgZGVzY3JpcHRpb246ICdBZHZhbmNlZCBBSS1wb3dlcmVkIHdlYiBzZWFyY2ggZm9yIHRlY2huaWNhbCBpbnRlbGxpZ2VuY2UuIFJldHJpZXZlcyB1cC10by1kYXRlIGluZm9ybWF0aW9uIGluY2x1ZGluZyBzb2Z0d2FyZSByZWxlYXNlcywgc2VjdXJpdHkgYWR2aXNvcmllcywgbWlncmF0aW9uIGd1aWRlcywgYmVuY2htYXJrcywgZGV2ZWxvcGVyIGRvY3VtZW50YXRpb24sIGFuZCBjb21tdW5pdHkgaW5zaWdodHMuIFN1cHBvcnRzIGJvdGggc3RhbmRhcmQgYW5kIHN0cmVhbWluZyByZXNwb25zZXMuJyxcbiAgaW5wdXRTY2hlbWE6IHtcbiAgICB0eXBlOiAnb2JqZWN0JyxcbiAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICBxdWVyeToge1xuICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgZGVzY3JpcHRpb246ICdBIGRldGFpbGVkIHNlYXJjaCBxdWVyeSBvciBwcm9tcHQgZGVzY3JpYmluZyB0aGUgdGVjaG5pY2FsIGluZm9ybWF0aW9uIG5lZWRlZC4gU3VwcG9ydHMgbmF0dXJhbCBsYW5ndWFnZSBhbmQga2V5d29yZC1iYXNlZCBxdWVyaWVzIGZvciBwcmVjaXNlIHJlc3VsdHMuJ1xuICAgICAgfSxcbiAgICAgIHN0cmVhbToge1xuICAgICAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgICAgIGRlc2NyaXB0aW9uOiAnRW5hYmxlIHN0cmVhbWluZyBtb2RlIHRvIHJlY2VpdmUgaW5jcmVtZW50YWwsIHJlYWwtdGltZSBzZWFyY2ggcmVzdWx0cyBhcyB0aGV5IGFyZSBkaXNjb3ZlcmVkLiBVc2VmdWwgZm9yIG1vbml0b3JpbmcgbGl2ZSB1cGRhdGVzIG9yIGxhcmdlIHJlc3VsdCBzZXRzLiBEZWZhdWx0IGlzIGZhbHNlIChyZXR1cm5zIGZ1bGwgcmVzdWx0IGF0IG9uY2UpLicsXG4gICAgICAgIGRlZmF1bHQ6IGZhbHNlXG4gICAgICB9XG4gICAgfSxcbiAgICByZXF1aXJlZDogWydxdWVyeSddXG4gIH0sXG4gIGFubm90YXRpb25zOiB7XG4gICAgcmVhZE9ubHlIaW50OiB0cnVlLFxuICAgIG9wZW5Xb3JsZEhpbnQ6IGZhbHNlXG4gIH1cbn07XG5cbi8qKlxuICogRmVsbyBBSSBzZWFyY2ggdG9vbCBoYW5kbGVyXG4gKiBAcGFyYW0ge09iamVjdH0gcGFyYW1zIC0gVGhlIHRvb2wgcGFyYW1ldGVyc1xuICogQHJldHVybnMge1Byb21pc2U8T2JqZWN0Pn0gLSBUaGUgdG9vbCByZXN1bHRcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGZlbG9Ub29sSGFuZGxlcihwYXJhbXMpIHtcbiAgY29uc3QgeyBxdWVyeSwgc3RyZWFtID0gZmFsc2UgfSA9IHBhcmFtcztcbiAgY29uc29sZS5sb2coYFNlYXJjaGluZyBGZWxvIEFJIGZvcjogXCIke3F1ZXJ5fVwiIChzdHJlYW06ICR7c3RyZWFtfSlgKTtcbiAgXG4gIHRyeSB7XG4gICAgaWYgKHN0cmVhbSkge1xuICAgICAgLy8gRm9yIHN0cmVhbWluZyByZXNwb25zZXMsIHdlIG5lZWQgdG8gY29sbGVjdCB0aGVtIGFuZCB0aGVuIHJldHVyblxuICAgICAgbGV0IGZ1bGxSZXNwb25zZSA9ICcnO1xuICAgICAgY29uc3QgY2h1bmtzID0gW107XG4gICAgICBcbiAgICAgIGZvciBhd2FpdCAoY29uc3QgY2h1bmsgb2YgYXdhaXQgc2VhcmNoRmVsbyhxdWVyeSwgdHJ1ZSkpIHtcbiAgICAgICAgY2h1bmtzLnB1c2goY2h1bmspO1xuICAgICAgICBmdWxsUmVzcG9uc2UgKz0gY2h1bms7XG4gICAgICB9XG4gICAgICBcbiAgICAgIC8vIEZvcm1hdCB0aGUgcmVzcG9uc2VcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGNvbnRlbnQ6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICB0eXBlOiAndGV4dCcsXG4gICAgICAgICAgICB0ZXh0OiBmdWxsUmVzcG9uc2UgfHwgJ05vIHJlc3VsdHMgZm91bmQuJ1xuICAgICAgICAgIH1cbiAgICAgICAgXVxuICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gRm9yIG5vbi1zdHJlYW1pbmcgcmVzcG9uc2VzXG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHNlYXJjaEZlbG8ocXVlcnksIGZhbHNlKTtcbiAgICAgIFxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgY29udGVudDogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIHR5cGU6ICd0ZXh0JyxcbiAgICAgICAgICAgIHRleHQ6IHJlc3BvbnNlIHx8ICdObyByZXN1bHRzIGZvdW5kLidcbiAgICAgICAgICB9XG4gICAgICAgIF1cbiAgICAgIH07XG4gICAgfVxuICB9IGNhdGNoIChlcnJvcikge1xuICAgIGNvbnNvbGUuZXJyb3IoYEVycm9yIGluIEZlbG8gc2VhcmNoOiAke2Vycm9yLm1lc3NhZ2V9YCk7XG4gICAgcmV0dXJuIHtcbiAgICAgIGlzRXJyb3I6IHRydWUsXG4gICAgICBjb250ZW50OiBbXG4gICAgICAgIHtcbiAgICAgICAgICB0eXBlOiAndGV4dCcsXG4gICAgICAgICAgdGV4dDogYEVycm9yIHNlYXJjaGluZyBGZWxvOiAke2Vycm9yLm1lc3NhZ2V9YFxuICAgICAgICB9XG4gICAgICBdXG4gICAgfTtcbiAgfVxufVxuIiwgImltcG9ydCB7IFNlcnZlciB9IGZyb20gJ0Btb2RlbGNvbnRleHRwcm90b2NvbC9zZGsvc2VydmVyL2luZGV4LmpzJztcbmltcG9ydCB7IENhbGxUb29sUmVxdWVzdFNjaGVtYSwgTGlzdFRvb2xzUmVxdWVzdFNjaGVtYSB9IGZyb20gJ0Btb2RlbGNvbnRleHRwcm90b2NvbC9zZGsvdHlwZXMuanMnO1xuXG4vLyBJbXBvcnQgdG9vbCBkZWZpbml0aW9ucyBhbmQgaGFuZGxlcnNcbmltcG9ydCB7IHNlYXJjaFRvb2xEZWZpbml0aW9uLCBzZWFyY2hUb29sSGFuZGxlciB9IGZyb20gJy4vdG9vbHMvc2VhcmNoVG9vbC5qcyc7XG5pbXBvcnQgeyBmZXRjaFVybFRvb2xEZWZpbml0aW9uLCBmZXRjaFVybFRvb2xIYW5kbGVyIH0gZnJvbSAnLi90b29scy9mZXRjaFVybFRvb2wuanMnO1xuaW1wb3J0IHsgbWV0YWRhdGFUb29sRGVmaW5pdGlvbiwgbWV0YWRhdGFUb29sSGFuZGxlciB9IGZyb20gJy4vdG9vbHMvbWV0YWRhdGFUb29sLmpzJztcbmltcG9ydCB7IGZlbG9Ub29sRGVmaW5pdGlvbiwgZmVsb1Rvb2xIYW5kbGVyIH0gZnJvbSAnLi90b29scy9mZWxvVG9vbC5qcyc7XG5cbi8vIFJlcXVpcmVkOiBFeHBvcnQgZGVmYXVsdCBjcmVhdGVTZXJ2ZXIgZnVuY3Rpb24gZm9yIFNtaXRoZXJ5XG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBjcmVhdGVTZXJ2ZXIoeyBjb25maWcgfTogeyBjb25maWc/OiBhbnkgfSA9IHt9KSB7XG4gIGNvbnNvbGUubG9nKCdDcmVhdGluZyBNQ1Agc2VydmVyIHdpdGggbGF0ZXN0IFNESy4uLicpO1xuICBcbiAgLy8gR2xvYmFsIHZhcmlhYmxlIHRvIHRyYWNrIGF2YWlsYWJsZSB0b29sc1xuICBjb25zdCBhdmFpbGFibGVUb29scyA9IFtcbiAgICBzZWFyY2hUb29sRGVmaW5pdGlvbixcbiAgICBmZXRjaFVybFRvb2xEZWZpbml0aW9uLFxuICAgIG1ldGFkYXRhVG9vbERlZmluaXRpb24sXG4gICAgZmVsb1Rvb2xEZWZpbml0aW9uXG4gIF07XG4gIFxuICBjb25zb2xlLmxvZygnQXZhaWxhYmxlIHRvb2xzOicsIGF2YWlsYWJsZVRvb2xzLm1hcCh0ID0+IHQubmFtZSkpO1xuXG4gIC8vIENyZWF0ZSB0aGUgTUNQIHNlcnZlciB1c2luZyB0aGUgU2VydmVyIGNsYXNzXG4gIGNvbnN0IHNlcnZlciA9IG5ldyBTZXJ2ZXIoe1xuICAgIG5hbWU6ICdkZGctc2VhcmNoLW1jcCcsXG4gICAgdmVyc2lvbjogJzEuMS4yJ1xuICB9LCB7XG4gICAgY2FwYWJpbGl0aWVzOiB7XG4gICAgICB0b29sczoge1xuICAgICAgICBsaXN0Q2hhbmdlZDogdHJ1ZVxuICAgICAgfVxuICAgIH1cbiAgfSk7XG5cbiAgLy8gRGVmaW5lIGF2YWlsYWJsZSB0b29sc1xuICBzZXJ2ZXIuc2V0UmVxdWVzdEhhbmRsZXIoTGlzdFRvb2xzUmVxdWVzdFNjaGVtYSwgYXN5bmMgKCkgPT4ge1xuICAgIGNvbnNvbGUubG9nKCdUb29scyBsaXN0IHJlcXVlc3RlZCwgcmV0dXJuaW5nOicsIGF2YWlsYWJsZVRvb2xzLmxlbmd0aCwgJ3Rvb2xzJyk7XG4gICAgcmV0dXJuIHtcbiAgICAgIHRvb2xzOiBhdmFpbGFibGVUb29sc1xuICAgIH07XG4gIH0pO1xuXG4gIC8vIEhhbmRsZSB0b29sIGV4ZWN1dGlvblxuICBzZXJ2ZXIuc2V0UmVxdWVzdEhhbmRsZXIoQ2FsbFRvb2xSZXF1ZXN0U2NoZW1hLCBhc3luYyAocmVxdWVzdCkgPT4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCB7IG5hbWUsIGFyZ3VtZW50czogYXJncyB9ID0gcmVxdWVzdC5wYXJhbXM7XG4gICAgICBjb25zb2xlLmxvZyhgVG9vbCBjYWxsIHJlY2VpdmVkOiAke25hbWV9IHdpdGggYXJnczpgLCBhcmdzKTtcbiAgICAgIFxuICAgICAgLy8gUm91dGUgdG8gdGhlIGFwcHJvcHJpYXRlIHRvb2wgaGFuZGxlclxuICAgICAgc3dpdGNoIChuYW1lKSB7XG4gICAgICAgIGNhc2UgJ3dlYi1zZWFyY2gnOlxuICAgICAgICAgIHJldHVybiBhd2FpdCBzZWFyY2hUb29sSGFuZGxlcihhcmdzKTtcbiAgICAgICAgXG4gICAgICAgIGNhc2UgJ2ZldGNoLXVybCc6XG4gICAgICAgICAgcmV0dXJuIGF3YWl0IGZldGNoVXJsVG9vbEhhbmRsZXIoYXJncyk7XG4gICAgICAgIFxuICAgICAgICBjYXNlICd1cmwtbWV0YWRhdGEnOlxuICAgICAgICAgIHJldHVybiBhd2FpdCBtZXRhZGF0YVRvb2xIYW5kbGVyKGFyZ3MpO1xuICAgICAgICBcbiAgICAgICAgY2FzZSAnZmVsby1zZWFyY2gnOlxuICAgICAgICAgIHJldHVybiBhd2FpdCBmZWxvVG9vbEhhbmRsZXIoYXJncyk7XG4gICAgICAgIFxuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgVG9vbCBub3QgZm91bmQ6ICR7bmFtZX1gKTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlcnJvcjogYW55KSB7XG4gICAgICBjb25zb2xlLmVycm9yKGBFcnJvciBoYW5kbGluZyAke3JlcXVlc3QucGFyYW1zLm5hbWV9IHRvb2wgY2FsbDpgLCBlcnJvcik7XG4gICAgICBcbiAgICAgIC8vIFJldHVybiBwcm9wZXIgdG9vbCBleGVjdXRpb24gZXJyb3IgZm9ybWF0XG4gICAgICByZXR1cm4ge1xuICAgICAgICBpc0Vycm9yOiB0cnVlLFxuICAgICAgICBjb250ZW50OiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgdHlwZTogJ3RleHQnLFxuICAgICAgICAgICAgdGV4dDogYEVycm9yIGV4ZWN1dGluZyB0b29sICcke3JlcXVlc3QucGFyYW1zLm5hbWV9JzogJHtlcnJvci5tZXNzYWdlfWBcbiAgICAgICAgICB9XG4gICAgICAgIF1cbiAgICAgIH07XG4gICAgfVxuICB9KTtcblxuICBjb25zb2xlLmxvZygnTUNQIHNlcnZlciBjcmVhdGVkIHN1Y2Nlc3NmdWxseScpO1xuICBcbiAgLy8gUmV0dXJuIHRoZSBzZXJ2ZXIgaW5zdGFuY2UgKHJlcXVpcmVkIGZvciBTbWl0aGVyeSlcbiAgcmV0dXJuIHNlcnZlcjtcbn1cblxuLy8gT3B0aW9uYWw6IE5vIGNvbmZpZ3VyYXRpb24gc2NoZW1hIG5lZWRlZCBmb3IgdGhpcyBzZXJ2ZXJcbi8vIGV4cG9ydCBjb25zdCBjb25maWdTY2hlbWEgPSB6Lm9iamVjdCh7fSk7IiwgIlwidXNlIHN0cmljdFwiO1xudmFyIF9fY3JlYXRlID0gT2JqZWN0LmNyZWF0ZTtcbnZhciBfX2RlZlByb3AgPSBPYmplY3QuZGVmaW5lUHJvcGVydHk7XG52YXIgX19nZXRPd25Qcm9wRGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7XG52YXIgX19nZXRPd25Qcm9wTmFtZXMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcztcbnZhciBfX2dldFByb3RvT2YgPSBPYmplY3QuZ2V0UHJvdG90eXBlT2Y7XG52YXIgX19oYXNPd25Qcm9wID0gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTtcbnZhciBfX2NvbW1vbkpTID0gKGNiLCBtb2QpID0+IGZ1bmN0aW9uIF9fcmVxdWlyZSgpIHtcbiAgcmV0dXJuIG1vZCB8fCAoMCwgY2JbX19nZXRPd25Qcm9wTmFtZXMoY2IpWzBdXSkoKG1vZCA9IHsgZXhwb3J0czoge30gfSkuZXhwb3J0cywgbW9kKSwgbW9kLmV4cG9ydHM7XG59O1xudmFyIF9fY29weVByb3BzID0gKHRvLCBmcm9tLCBleGNlcHQsIGRlc2MpID0+IHtcbiAgaWYgKGZyb20gJiYgdHlwZW9mIGZyb20gPT09IFwib2JqZWN0XCIgfHwgdHlwZW9mIGZyb20gPT09IFwiZnVuY3Rpb25cIikge1xuICAgIGZvciAobGV0IGtleSBvZiBfX2dldE93blByb3BOYW1lcyhmcm9tKSlcbiAgICAgIGlmICghX19oYXNPd25Qcm9wLmNhbGwodG8sIGtleSkgJiYga2V5ICE9PSBleGNlcHQpXG4gICAgICAgIF9fZGVmUHJvcCh0bywga2V5LCB7IGdldDogKCkgPT4gZnJvbVtrZXldLCBlbnVtZXJhYmxlOiAhKGRlc2MgPSBfX2dldE93blByb3BEZXNjKGZyb20sIGtleSkpIHx8IGRlc2MuZW51bWVyYWJsZSB9KTtcbiAgfVxuICByZXR1cm4gdG87XG59O1xudmFyIF9fdG9FU00gPSAobW9kLCBpc05vZGVNb2RlLCB0YXJnZXQpID0+ICh0YXJnZXQgPSBtb2QgIT0gbnVsbCA/IF9fY3JlYXRlKF9fZ2V0UHJvdG9PZihtb2QpKSA6IHt9LCBfX2NvcHlQcm9wcyhcbiAgLy8gSWYgdGhlIGltcG9ydGVyIGlzIGluIG5vZGUgY29tcGF0aWJpbGl0eSBtb2RlIG9yIHRoaXMgaXMgbm90IGFuIEVTTVxuICAvLyBmaWxlIHRoYXQgaGFzIGJlZW4gY29udmVydGVkIHRvIGEgQ29tbW9uSlMgZmlsZSB1c2luZyBhIEJhYmVsLVxuICAvLyBjb21wYXRpYmxlIHRyYW5zZm9ybSAoaS5lLiBcIl9fZXNNb2R1bGVcIiBoYXMgbm90IGJlZW4gc2V0KSwgdGhlbiBzZXRcbiAgLy8gXCJkZWZhdWx0XCIgdG8gdGhlIENvbW1vbkpTIFwibW9kdWxlLmV4cG9ydHNcIiBmb3Igbm9kZSBjb21wYXRpYmlsaXR5LlxuICBpc05vZGVNb2RlIHx8ICFtb2QgfHwgIW1vZC5fX2VzTW9kdWxlID8gX19kZWZQcm9wKHRhcmdldCwgXCJkZWZhdWx0XCIsIHsgdmFsdWU6IG1vZCwgZW51bWVyYWJsZTogdHJ1ZSB9KSA6IHRhcmdldCxcbiAgbW9kXG4pKTtcblxuLy8gbm9kZV9tb2R1bGVzL2J5dGVzL2luZGV4LmpzXG52YXIgcmVxdWlyZV9ieXRlcyA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9ieXRlcy9pbmRleC5qc1wiKGV4cG9ydHMyLCBtb2R1bGUyKSB7XG4gICAgXCJ1c2Ugc3RyaWN0XCI7XG4gICAgbW9kdWxlMi5leHBvcnRzID0gYnl0ZXM7XG4gICAgbW9kdWxlMi5leHBvcnRzLmZvcm1hdCA9IGZvcm1hdDtcbiAgICBtb2R1bGUyLmV4cG9ydHMucGFyc2UgPSBwYXJzZTtcbiAgICB2YXIgZm9ybWF0VGhvdXNhbmRzUmVnRXhwID0gL1xcQig/PShcXGR7M30pKyg/IVxcZCkpL2c7XG4gICAgdmFyIGZvcm1hdERlY2ltYWxzUmVnRXhwID0gLyg/OlxcLjAqfChcXC5bXjBdKykwKykkLztcbiAgICB2YXIgbWFwID0ge1xuICAgICAgYjogMSxcbiAgICAgIGtiOiAxIDw8IDEwLFxuICAgICAgbWI6IDEgPDwgMjAsXG4gICAgICBnYjogMSA8PCAzMCxcbiAgICAgIHRiOiBNYXRoLnBvdygxMDI0LCA0KSxcbiAgICAgIHBiOiBNYXRoLnBvdygxMDI0LCA1KVxuICAgIH07XG4gICAgdmFyIHBhcnNlUmVnRXhwID0gL14oKC18XFwrKT8oXFxkKyg/OlxcLlxcZCspPykpICooa2J8bWJ8Z2J8dGJ8cGIpJC9pO1xuICAgIGZ1bmN0aW9uIGJ5dGVzKHZhbHVlLCBvcHRpb25zKSB7XG4gICAgICBpZiAodHlwZW9mIHZhbHVlID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgIHJldHVybiBwYXJzZSh2YWx1ZSk7XG4gICAgICB9XG4gICAgICBpZiAodHlwZW9mIHZhbHVlID09PSBcIm51bWJlclwiKSB7XG4gICAgICAgIHJldHVybiBmb3JtYXQodmFsdWUsIG9wdGlvbnMpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGZvcm1hdCh2YWx1ZSwgb3B0aW9ucykge1xuICAgICAgaWYgKCFOdW1iZXIuaXNGaW5pdGUodmFsdWUpKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuICAgICAgdmFyIG1hZyA9IE1hdGguYWJzKHZhbHVlKTtcbiAgICAgIHZhciB0aG91c2FuZHNTZXBhcmF0b3IgPSBvcHRpb25zICYmIG9wdGlvbnMudGhvdXNhbmRzU2VwYXJhdG9yIHx8IFwiXCI7XG4gICAgICB2YXIgdW5pdFNlcGFyYXRvciA9IG9wdGlvbnMgJiYgb3B0aW9ucy51bml0U2VwYXJhdG9yIHx8IFwiXCI7XG4gICAgICB2YXIgZGVjaW1hbFBsYWNlcyA9IG9wdGlvbnMgJiYgb3B0aW9ucy5kZWNpbWFsUGxhY2VzICE9PSB2b2lkIDAgPyBvcHRpb25zLmRlY2ltYWxQbGFjZXMgOiAyO1xuICAgICAgdmFyIGZpeGVkRGVjaW1hbHMgPSBCb29sZWFuKG9wdGlvbnMgJiYgb3B0aW9ucy5maXhlZERlY2ltYWxzKTtcbiAgICAgIHZhciB1bml0ID0gb3B0aW9ucyAmJiBvcHRpb25zLnVuaXQgfHwgXCJcIjtcbiAgICAgIGlmICghdW5pdCB8fCAhbWFwW3VuaXQudG9Mb3dlckNhc2UoKV0pIHtcbiAgICAgICAgaWYgKG1hZyA+PSBtYXAucGIpIHtcbiAgICAgICAgICB1bml0ID0gXCJQQlwiO1xuICAgICAgICB9IGVsc2UgaWYgKG1hZyA+PSBtYXAudGIpIHtcbiAgICAgICAgICB1bml0ID0gXCJUQlwiO1xuICAgICAgICB9IGVsc2UgaWYgKG1hZyA+PSBtYXAuZ2IpIHtcbiAgICAgICAgICB1bml0ID0gXCJHQlwiO1xuICAgICAgICB9IGVsc2UgaWYgKG1hZyA+PSBtYXAubWIpIHtcbiAgICAgICAgICB1bml0ID0gXCJNQlwiO1xuICAgICAgICB9IGVsc2UgaWYgKG1hZyA+PSBtYXAua2IpIHtcbiAgICAgICAgICB1bml0ID0gXCJLQlwiO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHVuaXQgPSBcIkJcIjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgdmFyIHZhbCA9IHZhbHVlIC8gbWFwW3VuaXQudG9Mb3dlckNhc2UoKV07XG4gICAgICB2YXIgc3RyID0gdmFsLnRvRml4ZWQoZGVjaW1hbFBsYWNlcyk7XG4gICAgICBpZiAoIWZpeGVkRGVjaW1hbHMpIHtcbiAgICAgICAgc3RyID0gc3RyLnJlcGxhY2UoZm9ybWF0RGVjaW1hbHNSZWdFeHAsIFwiJDFcIik7XG4gICAgICB9XG4gICAgICBpZiAodGhvdXNhbmRzU2VwYXJhdG9yKSB7XG4gICAgICAgIHN0ciA9IHN0ci5zcGxpdChcIi5cIikubWFwKGZ1bmN0aW9uKHMsIGkpIHtcbiAgICAgICAgICByZXR1cm4gaSA9PT0gMCA/IHMucmVwbGFjZShmb3JtYXRUaG91c2FuZHNSZWdFeHAsIHRob3VzYW5kc1NlcGFyYXRvcikgOiBzO1xuICAgICAgICB9KS5qb2luKFwiLlwiKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBzdHIgKyB1bml0U2VwYXJhdG9yICsgdW5pdDtcbiAgICB9XG4gICAgZnVuY3Rpb24gcGFyc2UodmFsKSB7XG4gICAgICBpZiAodHlwZW9mIHZhbCA9PT0gXCJudW1iZXJcIiAmJiAhaXNOYU4odmFsKSkge1xuICAgICAgICByZXR1cm4gdmFsO1xuICAgICAgfVxuICAgICAgaWYgKHR5cGVvZiB2YWwgIT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG4gICAgICB2YXIgcmVzdWx0cyA9IHBhcnNlUmVnRXhwLmV4ZWModmFsKTtcbiAgICAgIHZhciBmbG9hdFZhbHVlO1xuICAgICAgdmFyIHVuaXQgPSBcImJcIjtcbiAgICAgIGlmICghcmVzdWx0cykge1xuICAgICAgICBmbG9hdFZhbHVlID0gcGFyc2VJbnQodmFsLCAxMCk7XG4gICAgICAgIHVuaXQgPSBcImJcIjtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGZsb2F0VmFsdWUgPSBwYXJzZUZsb2F0KHJlc3VsdHNbMV0pO1xuICAgICAgICB1bml0ID0gcmVzdWx0c1s0XS50b0xvd2VyQ2FzZSgpO1xuICAgICAgfVxuICAgICAgaWYgKGlzTmFOKGZsb2F0VmFsdWUpKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuICAgICAgcmV0dXJuIE1hdGguZmxvb3IobWFwW3VuaXRdICogZmxvYXRWYWx1ZSk7XG4gICAgfVxuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL2RlcGQvaW5kZXguanNcbnZhciByZXF1aXJlX2RlcGQgPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvZGVwZC9pbmRleC5qc1wiKGV4cG9ydHMyLCBtb2R1bGUyKSB7XG4gICAgdmFyIHJlbGF0aXZlID0gcmVxdWlyZShcInBhdGhcIikucmVsYXRpdmU7XG4gICAgbW9kdWxlMi5leHBvcnRzID0gZGVwZDtcbiAgICB2YXIgYmFzZVBhdGggPSBwcm9jZXNzLmN3ZCgpO1xuICAgIGZ1bmN0aW9uIGNvbnRhaW5zTmFtZXNwYWNlKHN0ciwgbmFtZXNwYWNlKSB7XG4gICAgICB2YXIgdmFscyA9IHN0ci5zcGxpdCgvWyAsXSsvKTtcbiAgICAgIHZhciBucyA9IFN0cmluZyhuYW1lc3BhY2UpLnRvTG93ZXJDYXNlKCk7XG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHZhbHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgdmFyIHZhbCA9IHZhbHNbaV07XG4gICAgICAgIGlmICh2YWwgJiYgKHZhbCA9PT0gXCIqXCIgfHwgdmFsLnRvTG93ZXJDYXNlKCkgPT09IG5zKSkge1xuICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGNvbnZlcnREYXRhRGVzY3JpcHRvclRvQWNjZXNzb3Iob2JqLCBwcm9wLCBtZXNzYWdlKSB7XG4gICAgICB2YXIgZGVzY3JpcHRvciA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iob2JqLCBwcm9wKTtcbiAgICAgIHZhciB2YWx1ZSA9IGRlc2NyaXB0b3IudmFsdWU7XG4gICAgICBkZXNjcmlwdG9yLmdldCA9IGZ1bmN0aW9uIGdldHRlcigpIHtcbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgfTtcbiAgICAgIGlmIChkZXNjcmlwdG9yLndyaXRhYmxlKSB7XG4gICAgICAgIGRlc2NyaXB0b3Iuc2V0ID0gZnVuY3Rpb24gc2V0dGVyKHZhbCkge1xuICAgICAgICAgIHJldHVybiB2YWx1ZSA9IHZhbDtcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICAgIGRlbGV0ZSBkZXNjcmlwdG9yLnZhbHVlO1xuICAgICAgZGVsZXRlIGRlc2NyaXB0b3Iud3JpdGFibGU7XG4gICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCBwcm9wLCBkZXNjcmlwdG9yKTtcbiAgICAgIHJldHVybiBkZXNjcmlwdG9yO1xuICAgIH1cbiAgICBmdW5jdGlvbiBjcmVhdGVBcmd1bWVudHNTdHJpbmcoYXJpdHkpIHtcbiAgICAgIHZhciBzdHIgPSBcIlwiO1xuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhcml0eTsgaSsrKSB7XG4gICAgICAgIHN0ciArPSBcIiwgYXJnXCIgKyBpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHN0ci5zdWJzdHIoMik7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGNyZWF0ZVN0YWNrU3RyaW5nKHN0YWNrKSB7XG4gICAgICB2YXIgc3RyID0gdGhpcy5uYW1lICsgXCI6IFwiICsgdGhpcy5uYW1lc3BhY2U7XG4gICAgICBpZiAodGhpcy5tZXNzYWdlKSB7XG4gICAgICAgIHN0ciArPSBcIiBkZXByZWNhdGVkIFwiICsgdGhpcy5tZXNzYWdlO1xuICAgICAgfVxuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzdGFjay5sZW5ndGg7IGkrKykge1xuICAgICAgICBzdHIgKz0gXCJcXG4gICAgYXQgXCIgKyBzdGFja1tpXS50b1N0cmluZygpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHN0cjtcbiAgICB9XG4gICAgZnVuY3Rpb24gZGVwZChuYW1lc3BhY2UpIHtcbiAgICAgIGlmICghbmFtZXNwYWNlKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJhcmd1bWVudCBuYW1lc3BhY2UgaXMgcmVxdWlyZWRcIik7XG4gICAgICB9XG4gICAgICB2YXIgc3RhY2sgPSBnZXRTdGFjaygpO1xuICAgICAgdmFyIHNpdGUgPSBjYWxsU2l0ZUxvY2F0aW9uKHN0YWNrWzFdKTtcbiAgICAgIHZhciBmaWxlID0gc2l0ZVswXTtcbiAgICAgIGZ1bmN0aW9uIGRlcHJlY2F0ZShtZXNzYWdlKSB7XG4gICAgICAgIGxvZy5jYWxsKGRlcHJlY2F0ZSwgbWVzc2FnZSk7XG4gICAgICB9XG4gICAgICBkZXByZWNhdGUuX2ZpbGUgPSBmaWxlO1xuICAgICAgZGVwcmVjYXRlLl9pZ25vcmVkID0gaXNpZ25vcmVkKG5hbWVzcGFjZSk7XG4gICAgICBkZXByZWNhdGUuX25hbWVzcGFjZSA9IG5hbWVzcGFjZTtcbiAgICAgIGRlcHJlY2F0ZS5fdHJhY2VkID0gaXN0cmFjZWQobmFtZXNwYWNlKTtcbiAgICAgIGRlcHJlY2F0ZS5fd2FybmVkID0gLyogQF9fUFVSRV9fICovIE9iamVjdC5jcmVhdGUobnVsbCk7XG4gICAgICBkZXByZWNhdGUuZnVuY3Rpb24gPSB3cmFwZnVuY3Rpb247XG4gICAgICBkZXByZWNhdGUucHJvcGVydHkgPSB3cmFwcHJvcGVydHk7XG4gICAgICByZXR1cm4gZGVwcmVjYXRlO1xuICAgIH1cbiAgICBmdW5jdGlvbiBlZWhhc2xpc3RlbmVycyhlbWl0dGVyLCB0eXBlKSB7XG4gICAgICB2YXIgY291bnQgPSB0eXBlb2YgZW1pdHRlci5saXN0ZW5lckNvdW50ICE9PSBcImZ1bmN0aW9uXCIgPyBlbWl0dGVyLmxpc3RlbmVycyh0eXBlKS5sZW5ndGggOiBlbWl0dGVyLmxpc3RlbmVyQ291bnQodHlwZSk7XG4gICAgICByZXR1cm4gY291bnQgPiAwO1xuICAgIH1cbiAgICBmdW5jdGlvbiBpc2lnbm9yZWQobmFtZXNwYWNlKSB7XG4gICAgICBpZiAocHJvY2Vzcy5ub0RlcHJlY2F0aW9uKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgICAgdmFyIHN0ciA9IHByb2Nlc3MuZW52Lk5PX0RFUFJFQ0FUSU9OIHx8IFwiXCI7XG4gICAgICByZXR1cm4gY29udGFpbnNOYW1lc3BhY2Uoc3RyLCBuYW1lc3BhY2UpO1xuICAgIH1cbiAgICBmdW5jdGlvbiBpc3RyYWNlZChuYW1lc3BhY2UpIHtcbiAgICAgIGlmIChwcm9jZXNzLnRyYWNlRGVwcmVjYXRpb24pIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgICB2YXIgc3RyID0gcHJvY2Vzcy5lbnYuVFJBQ0VfREVQUkVDQVRJT04gfHwgXCJcIjtcbiAgICAgIHJldHVybiBjb250YWluc05hbWVzcGFjZShzdHIsIG5hbWVzcGFjZSk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGxvZyhtZXNzYWdlLCBzaXRlKSB7XG4gICAgICB2YXIgaGFzbGlzdGVuZXJzID0gZWVoYXNsaXN0ZW5lcnMocHJvY2VzcywgXCJkZXByZWNhdGlvblwiKTtcbiAgICAgIGlmICghaGFzbGlzdGVuZXJzICYmIHRoaXMuX2lnbm9yZWQpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgdmFyIGNhbGxlcjtcbiAgICAgIHZhciBjYWxsRmlsZTtcbiAgICAgIHZhciBjYWxsU2l0ZTtcbiAgICAgIHZhciBkZXBTaXRlO1xuICAgICAgdmFyIGkgPSAwO1xuICAgICAgdmFyIHNlZW4gPSBmYWxzZTtcbiAgICAgIHZhciBzdGFjayA9IGdldFN0YWNrKCk7XG4gICAgICB2YXIgZmlsZSA9IHRoaXMuX2ZpbGU7XG4gICAgICBpZiAoc2l0ZSkge1xuICAgICAgICBkZXBTaXRlID0gc2l0ZTtcbiAgICAgICAgY2FsbFNpdGUgPSBjYWxsU2l0ZUxvY2F0aW9uKHN0YWNrWzFdKTtcbiAgICAgICAgY2FsbFNpdGUubmFtZSA9IGRlcFNpdGUubmFtZTtcbiAgICAgICAgZmlsZSA9IGNhbGxTaXRlWzBdO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaSA9IDI7XG4gICAgICAgIGRlcFNpdGUgPSBjYWxsU2l0ZUxvY2F0aW9uKHN0YWNrW2ldKTtcbiAgICAgICAgY2FsbFNpdGUgPSBkZXBTaXRlO1xuICAgICAgfVxuICAgICAgZm9yICg7IGkgPCBzdGFjay5sZW5ndGg7IGkrKykge1xuICAgICAgICBjYWxsZXIgPSBjYWxsU2l0ZUxvY2F0aW9uKHN0YWNrW2ldKTtcbiAgICAgICAgY2FsbEZpbGUgPSBjYWxsZXJbMF07XG4gICAgICAgIGlmIChjYWxsRmlsZSA9PT0gZmlsZSkge1xuICAgICAgICAgIHNlZW4gPSB0cnVlO1xuICAgICAgICB9IGVsc2UgaWYgKGNhbGxGaWxlID09PSB0aGlzLl9maWxlKSB7XG4gICAgICAgICAgZmlsZSA9IHRoaXMuX2ZpbGU7XG4gICAgICAgIH0gZWxzZSBpZiAoc2Vlbikge1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICB2YXIga2V5ID0gY2FsbGVyID8gZGVwU2l0ZS5qb2luKFwiOlwiKSArIFwiX19cIiArIGNhbGxlci5qb2luKFwiOlwiKSA6IHZvaWQgMDtcbiAgICAgIGlmIChrZXkgIT09IHZvaWQgMCAmJiBrZXkgaW4gdGhpcy5fd2FybmVkKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHRoaXMuX3dhcm5lZFtrZXldID0gdHJ1ZTtcbiAgICAgIHZhciBtc2cgPSBtZXNzYWdlO1xuICAgICAgaWYgKCFtc2cpIHtcbiAgICAgICAgbXNnID0gY2FsbFNpdGUgPT09IGRlcFNpdGUgfHwgIWNhbGxTaXRlLm5hbWUgPyBkZWZhdWx0TWVzc2FnZShkZXBTaXRlKSA6IGRlZmF1bHRNZXNzYWdlKGNhbGxTaXRlKTtcbiAgICAgIH1cbiAgICAgIGlmIChoYXNsaXN0ZW5lcnMpIHtcbiAgICAgICAgdmFyIGVycjIgPSBEZXByZWNhdGlvbkVycm9yKHRoaXMuX25hbWVzcGFjZSwgbXNnLCBzdGFjay5zbGljZShpKSk7XG4gICAgICAgIHByb2Nlc3MuZW1pdChcImRlcHJlY2F0aW9uXCIsIGVycjIpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICB2YXIgZm9ybWF0ID0gcHJvY2Vzcy5zdGRlcnIuaXNUVFkgPyBmb3JtYXRDb2xvciA6IGZvcm1hdFBsYWluO1xuICAgICAgdmFyIG91dHB1dCA9IGZvcm1hdC5jYWxsKHRoaXMsIG1zZywgY2FsbGVyLCBzdGFjay5zbGljZShpKSk7XG4gICAgICBwcm9jZXNzLnN0ZGVyci53cml0ZShvdXRwdXQgKyBcIlxcblwiLCBcInV0ZjhcIik7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGNhbGxTaXRlTG9jYXRpb24oY2FsbFNpdGUpIHtcbiAgICAgIHZhciBmaWxlID0gY2FsbFNpdGUuZ2V0RmlsZU5hbWUoKSB8fCBcIjxhbm9ueW1vdXM+XCI7XG4gICAgICB2YXIgbGluZSA9IGNhbGxTaXRlLmdldExpbmVOdW1iZXIoKTtcbiAgICAgIHZhciBjb2xtID0gY2FsbFNpdGUuZ2V0Q29sdW1uTnVtYmVyKCk7XG4gICAgICBpZiAoY2FsbFNpdGUuaXNFdmFsKCkpIHtcbiAgICAgICAgZmlsZSA9IGNhbGxTaXRlLmdldEV2YWxPcmlnaW4oKSArIFwiLCBcIiArIGZpbGU7XG4gICAgICB9XG4gICAgICB2YXIgc2l0ZSA9IFtmaWxlLCBsaW5lLCBjb2xtXTtcbiAgICAgIHNpdGUuY2FsbFNpdGUgPSBjYWxsU2l0ZTtcbiAgICAgIHNpdGUubmFtZSA9IGNhbGxTaXRlLmdldEZ1bmN0aW9uTmFtZSgpO1xuICAgICAgcmV0dXJuIHNpdGU7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGRlZmF1bHRNZXNzYWdlKHNpdGUpIHtcbiAgICAgIHZhciBjYWxsU2l0ZSA9IHNpdGUuY2FsbFNpdGU7XG4gICAgICB2YXIgZnVuY05hbWUgPSBzaXRlLm5hbWU7XG4gICAgICBpZiAoIWZ1bmNOYW1lKSB7XG4gICAgICAgIGZ1bmNOYW1lID0gXCI8YW5vbnltb3VzQFwiICsgZm9ybWF0TG9jYXRpb24oc2l0ZSkgKyBcIj5cIjtcbiAgICAgIH1cbiAgICAgIHZhciBjb250ZXh0ID0gY2FsbFNpdGUuZ2V0VGhpcygpO1xuICAgICAgdmFyIHR5cGVOYW1lID0gY29udGV4dCAmJiBjYWxsU2l0ZS5nZXRUeXBlTmFtZSgpO1xuICAgICAgaWYgKHR5cGVOYW1lID09PSBcIk9iamVjdFwiKSB7XG4gICAgICAgIHR5cGVOYW1lID0gdm9pZCAwO1xuICAgICAgfVxuICAgICAgaWYgKHR5cGVOYW1lID09PSBcIkZ1bmN0aW9uXCIpIHtcbiAgICAgICAgdHlwZU5hbWUgPSBjb250ZXh0Lm5hbWUgfHwgdHlwZU5hbWU7XG4gICAgICB9XG4gICAgICByZXR1cm4gdHlwZU5hbWUgJiYgY2FsbFNpdGUuZ2V0TWV0aG9kTmFtZSgpID8gdHlwZU5hbWUgKyBcIi5cIiArIGZ1bmNOYW1lIDogZnVuY05hbWU7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGZvcm1hdFBsYWluKG1zZywgY2FsbGVyLCBzdGFjaykge1xuICAgICAgdmFyIHRpbWVzdGFtcCA9ICgvKiBAX19QVVJFX18gKi8gbmV3IERhdGUoKSkudG9VVENTdHJpbmcoKTtcbiAgICAgIHZhciBmb3JtYXR0ZWQgPSB0aW1lc3RhbXAgKyBcIiBcIiArIHRoaXMuX25hbWVzcGFjZSArIFwiIGRlcHJlY2F0ZWQgXCIgKyBtc2c7XG4gICAgICBpZiAodGhpcy5fdHJhY2VkKSB7XG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc3RhY2subGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICBmb3JtYXR0ZWQgKz0gXCJcXG4gICAgYXQgXCIgKyBzdGFja1tpXS50b1N0cmluZygpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmb3JtYXR0ZWQ7XG4gICAgICB9XG4gICAgICBpZiAoY2FsbGVyKSB7XG4gICAgICAgIGZvcm1hdHRlZCArPSBcIiBhdCBcIiArIGZvcm1hdExvY2F0aW9uKGNhbGxlcik7XG4gICAgICB9XG4gICAgICByZXR1cm4gZm9ybWF0dGVkO1xuICAgIH1cbiAgICBmdW5jdGlvbiBmb3JtYXRDb2xvcihtc2csIGNhbGxlciwgc3RhY2spIHtcbiAgICAgIHZhciBmb3JtYXR0ZWQgPSBcIlxceDFCWzM2OzFtXCIgKyB0aGlzLl9uYW1lc3BhY2UgKyBcIlxceDFCWzIyOzM5bSBcXHgxQlszMzsxbWRlcHJlY2F0ZWRcXHgxQlsyMjszOW0gXFx4MUJbMG1cIiArIG1zZyArIFwiXFx4MUJbMzltXCI7XG4gICAgICBpZiAodGhpcy5fdHJhY2VkKSB7XG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc3RhY2subGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICBmb3JtYXR0ZWQgKz0gXCJcXG4gICAgXFx4MUJbMzZtYXQgXCIgKyBzdGFja1tpXS50b1N0cmluZygpICsgXCJcXHgxQlszOW1cIjtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZm9ybWF0dGVkO1xuICAgICAgfVxuICAgICAgaWYgKGNhbGxlcikge1xuICAgICAgICBmb3JtYXR0ZWQgKz0gXCIgXFx4MUJbMzZtXCIgKyBmb3JtYXRMb2NhdGlvbihjYWxsZXIpICsgXCJcXHgxQlszOW1cIjtcbiAgICAgIH1cbiAgICAgIHJldHVybiBmb3JtYXR0ZWQ7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGZvcm1hdExvY2F0aW9uKGNhbGxTaXRlKSB7XG4gICAgICByZXR1cm4gcmVsYXRpdmUoYmFzZVBhdGgsIGNhbGxTaXRlWzBdKSArIFwiOlwiICsgY2FsbFNpdGVbMV0gKyBcIjpcIiArIGNhbGxTaXRlWzJdO1xuICAgIH1cbiAgICBmdW5jdGlvbiBnZXRTdGFjaygpIHtcbiAgICAgIHZhciBsaW1pdCA9IEVycm9yLnN0YWNrVHJhY2VMaW1pdDtcbiAgICAgIHZhciBvYmogPSB7fTtcbiAgICAgIHZhciBwcmVwID0gRXJyb3IucHJlcGFyZVN0YWNrVHJhY2U7XG4gICAgICBFcnJvci5wcmVwYXJlU3RhY2tUcmFjZSA9IHByZXBhcmVPYmplY3RTdGFja1RyYWNlO1xuICAgICAgRXJyb3Iuc3RhY2tUcmFjZUxpbWl0ID0gTWF0aC5tYXgoMTAsIGxpbWl0KTtcbiAgICAgIEVycm9yLmNhcHR1cmVTdGFja1RyYWNlKG9iaik7XG4gICAgICB2YXIgc3RhY2sgPSBvYmouc3RhY2suc2xpY2UoMSk7XG4gICAgICBFcnJvci5wcmVwYXJlU3RhY2tUcmFjZSA9IHByZXA7XG4gICAgICBFcnJvci5zdGFja1RyYWNlTGltaXQgPSBsaW1pdDtcbiAgICAgIHJldHVybiBzdGFjaztcbiAgICB9XG4gICAgZnVuY3Rpb24gcHJlcGFyZU9iamVjdFN0YWNrVHJhY2Uob2JqLCBzdGFjaykge1xuICAgICAgcmV0dXJuIHN0YWNrO1xuICAgIH1cbiAgICBmdW5jdGlvbiB3cmFwZnVuY3Rpb24oZm4sIG1lc3NhZ2UpIHtcbiAgICAgIGlmICh0eXBlb2YgZm4gIT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiYXJndW1lbnQgZm4gbXVzdCBiZSBhIGZ1bmN0aW9uXCIpO1xuICAgICAgfVxuICAgICAgdmFyIGFyZ3MgPSBjcmVhdGVBcmd1bWVudHNTdHJpbmcoZm4ubGVuZ3RoKTtcbiAgICAgIHZhciBzdGFjayA9IGdldFN0YWNrKCk7XG4gICAgICB2YXIgc2l0ZSA9IGNhbGxTaXRlTG9jYXRpb24oc3RhY2tbMV0pO1xuICAgICAgc2l0ZS5uYW1lID0gZm4ubmFtZTtcbiAgICAgIHZhciBkZXByZWNhdGVkZm4gPSBuZXcgRnVuY3Rpb24oXG4gICAgICAgIFwiZm5cIixcbiAgICAgICAgXCJsb2dcIixcbiAgICAgICAgXCJkZXByZWNhdGVcIixcbiAgICAgICAgXCJtZXNzYWdlXCIsXG4gICAgICAgIFwic2l0ZVwiLFxuICAgICAgICAnXCJ1c2Ugc3RyaWN0XCJcXG5yZXR1cm4gZnVuY3Rpb24gKCcgKyBhcmdzICsgXCIpIHtsb2cuY2FsbChkZXByZWNhdGUsIG1lc3NhZ2UsIHNpdGUpXFxucmV0dXJuIGZuLmFwcGx5KHRoaXMsIGFyZ3VtZW50cylcXG59XCJcbiAgICAgICkoZm4sIGxvZywgdGhpcywgbWVzc2FnZSwgc2l0ZSk7XG4gICAgICByZXR1cm4gZGVwcmVjYXRlZGZuO1xuICAgIH1cbiAgICBmdW5jdGlvbiB3cmFwcHJvcGVydHkob2JqLCBwcm9wLCBtZXNzYWdlKSB7XG4gICAgICBpZiAoIW9iaiB8fCB0eXBlb2Ygb2JqICE9PSBcIm9iamVjdFwiICYmIHR5cGVvZiBvYmogIT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiYXJndW1lbnQgb2JqIG11c3QgYmUgb2JqZWN0XCIpO1xuICAgICAgfVxuICAgICAgdmFyIGRlc2NyaXB0b3IgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG9iaiwgcHJvcCk7XG4gICAgICBpZiAoIWRlc2NyaXB0b3IpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcIm11c3QgY2FsbCBwcm9wZXJ0eSBvbiBvd25lciBvYmplY3RcIik7XG4gICAgICB9XG4gICAgICBpZiAoIWRlc2NyaXB0b3IuY29uZmlndXJhYmxlKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJwcm9wZXJ0eSBtdXN0IGJlIGNvbmZpZ3VyYWJsZVwiKTtcbiAgICAgIH1cbiAgICAgIHZhciBkZXByZWNhdGUgPSB0aGlzO1xuICAgICAgdmFyIHN0YWNrID0gZ2V0U3RhY2soKTtcbiAgICAgIHZhciBzaXRlID0gY2FsbFNpdGVMb2NhdGlvbihzdGFja1sxXSk7XG4gICAgICBzaXRlLm5hbWUgPSBwcm9wO1xuICAgICAgaWYgKFwidmFsdWVcIiBpbiBkZXNjcmlwdG9yKSB7XG4gICAgICAgIGRlc2NyaXB0b3IgPSBjb252ZXJ0RGF0YURlc2NyaXB0b3JUb0FjY2Vzc29yKG9iaiwgcHJvcCwgbWVzc2FnZSk7XG4gICAgICB9XG4gICAgICB2YXIgZ2V0ID0gZGVzY3JpcHRvci5nZXQ7XG4gICAgICB2YXIgc2V0ID0gZGVzY3JpcHRvci5zZXQ7XG4gICAgICBpZiAodHlwZW9mIGdldCA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgIGRlc2NyaXB0b3IuZ2V0ID0gZnVuY3Rpb24gZ2V0dGVyKCkge1xuICAgICAgICAgIGxvZy5jYWxsKGRlcHJlY2F0ZSwgbWVzc2FnZSwgc2l0ZSk7XG4gICAgICAgICAgcmV0dXJuIGdldC5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICAgICAgICB9O1xuICAgICAgfVxuICAgICAgaWYgKHR5cGVvZiBzZXQgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICBkZXNjcmlwdG9yLnNldCA9IGZ1bmN0aW9uIHNldHRlcigpIHtcbiAgICAgICAgICBsb2cuY2FsbChkZXByZWNhdGUsIG1lc3NhZ2UsIHNpdGUpO1xuICAgICAgICAgIHJldHVybiBzZXQuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosIHByb3AsIGRlc2NyaXB0b3IpO1xuICAgIH1cbiAgICBmdW5jdGlvbiBEZXByZWNhdGlvbkVycm9yKG5hbWVzcGFjZSwgbWVzc2FnZSwgc3RhY2spIHtcbiAgICAgIHZhciBlcnJvciA9IG5ldyBFcnJvcigpO1xuICAgICAgdmFyIHN0YWNrU3RyaW5nO1xuICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGVycm9yLCBcImNvbnN0cnVjdG9yXCIsIHtcbiAgICAgICAgdmFsdWU6IERlcHJlY2F0aW9uRXJyb3JcbiAgICAgIH0pO1xuICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGVycm9yLCBcIm1lc3NhZ2VcIiwge1xuICAgICAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgICB2YWx1ZTogbWVzc2FnZSxcbiAgICAgICAgd3JpdGFibGU6IHRydWVcbiAgICAgIH0pO1xuICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGVycm9yLCBcIm5hbWVcIiwge1xuICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgICAgICB2YWx1ZTogXCJEZXByZWNhdGlvbkVycm9yXCIsXG4gICAgICAgIHdyaXRhYmxlOiB0cnVlXG4gICAgICB9KTtcbiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlcnJvciwgXCJuYW1lc3BhY2VcIiwge1xuICAgICAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgICB2YWx1ZTogbmFtZXNwYWNlLFxuICAgICAgICB3cml0YWJsZTogdHJ1ZVxuICAgICAgfSk7XG4gICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXJyb3IsIFwic3RhY2tcIiwge1xuICAgICAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgICBnZXQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICAgIGlmIChzdGFja1N0cmluZyAhPT0gdm9pZCAwKSB7XG4gICAgICAgICAgICByZXR1cm4gc3RhY2tTdHJpbmc7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBzdGFja1N0cmluZyA9IGNyZWF0ZVN0YWNrU3RyaW5nLmNhbGwodGhpcywgc3RhY2spO1xuICAgICAgICB9LFxuICAgICAgICBzZXQ6IGZ1bmN0aW9uIHNldHRlcih2YWwpIHtcbiAgICAgICAgICBzdGFja1N0cmluZyA9IHZhbDtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICByZXR1cm4gZXJyb3I7XG4gICAgfVxuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL3NldHByb3RvdHlwZW9mL2luZGV4LmpzXG52YXIgcmVxdWlyZV9zZXRwcm90b3R5cGVvZiA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9zZXRwcm90b3R5cGVvZi9pbmRleC5qc1wiKGV4cG9ydHMyLCBtb2R1bGUyKSB7XG4gICAgXCJ1c2Ugc3RyaWN0XCI7XG4gICAgbW9kdWxlMi5leHBvcnRzID0gT2JqZWN0LnNldFByb3RvdHlwZU9mIHx8ICh7IF9fcHJvdG9fXzogW10gfSBpbnN0YW5jZW9mIEFycmF5ID8gc2V0UHJvdG9PZiA6IG1peGluUHJvcGVydGllcyk7XG4gICAgZnVuY3Rpb24gc2V0UHJvdG9PZihvYmosIHByb3RvKSB7XG4gICAgICBvYmouX19wcm90b19fID0gcHJvdG87XG4gICAgICByZXR1cm4gb2JqO1xuICAgIH1cbiAgICBmdW5jdGlvbiBtaXhpblByb3BlcnRpZXMob2JqLCBwcm90bykge1xuICAgICAgZm9yICh2YXIgcHJvcCBpbiBwcm90bykge1xuICAgICAgICBpZiAoIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmosIHByb3ApKSB7XG4gICAgICAgICAgb2JqW3Byb3BdID0gcHJvdG9bcHJvcF07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBvYmo7XG4gICAgfVxuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL3N0YXR1c2VzL2NvZGVzLmpzb25cbnZhciByZXF1aXJlX2NvZGVzID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL3N0YXR1c2VzL2NvZGVzLmpzb25cIihleHBvcnRzMiwgbW9kdWxlMikge1xuICAgIG1vZHVsZTIuZXhwb3J0cyA9IHtcbiAgICAgIFwiMTAwXCI6IFwiQ29udGludWVcIixcbiAgICAgIFwiMTAxXCI6IFwiU3dpdGNoaW5nIFByb3RvY29sc1wiLFxuICAgICAgXCIxMDJcIjogXCJQcm9jZXNzaW5nXCIsXG4gICAgICBcIjEwM1wiOiBcIkVhcmx5IEhpbnRzXCIsXG4gICAgICBcIjIwMFwiOiBcIk9LXCIsXG4gICAgICBcIjIwMVwiOiBcIkNyZWF0ZWRcIixcbiAgICAgIFwiMjAyXCI6IFwiQWNjZXB0ZWRcIixcbiAgICAgIFwiMjAzXCI6IFwiTm9uLUF1dGhvcml0YXRpdmUgSW5mb3JtYXRpb25cIixcbiAgICAgIFwiMjA0XCI6IFwiTm8gQ29udGVudFwiLFxuICAgICAgXCIyMDVcIjogXCJSZXNldCBDb250ZW50XCIsXG4gICAgICBcIjIwNlwiOiBcIlBhcnRpYWwgQ29udGVudFwiLFxuICAgICAgXCIyMDdcIjogXCJNdWx0aS1TdGF0dXNcIixcbiAgICAgIFwiMjA4XCI6IFwiQWxyZWFkeSBSZXBvcnRlZFwiLFxuICAgICAgXCIyMjZcIjogXCJJTSBVc2VkXCIsXG4gICAgICBcIjMwMFwiOiBcIk11bHRpcGxlIENob2ljZXNcIixcbiAgICAgIFwiMzAxXCI6IFwiTW92ZWQgUGVybWFuZW50bHlcIixcbiAgICAgIFwiMzAyXCI6IFwiRm91bmRcIixcbiAgICAgIFwiMzAzXCI6IFwiU2VlIE90aGVyXCIsXG4gICAgICBcIjMwNFwiOiBcIk5vdCBNb2RpZmllZFwiLFxuICAgICAgXCIzMDVcIjogXCJVc2UgUHJveHlcIixcbiAgICAgIFwiMzA3XCI6IFwiVGVtcG9yYXJ5IFJlZGlyZWN0XCIsXG4gICAgICBcIjMwOFwiOiBcIlBlcm1hbmVudCBSZWRpcmVjdFwiLFxuICAgICAgXCI0MDBcIjogXCJCYWQgUmVxdWVzdFwiLFxuICAgICAgXCI0MDFcIjogXCJVbmF1dGhvcml6ZWRcIixcbiAgICAgIFwiNDAyXCI6IFwiUGF5bWVudCBSZXF1aXJlZFwiLFxuICAgICAgXCI0MDNcIjogXCJGb3JiaWRkZW5cIixcbiAgICAgIFwiNDA0XCI6IFwiTm90IEZvdW5kXCIsXG4gICAgICBcIjQwNVwiOiBcIk1ldGhvZCBOb3QgQWxsb3dlZFwiLFxuICAgICAgXCI0MDZcIjogXCJOb3QgQWNjZXB0YWJsZVwiLFxuICAgICAgXCI0MDdcIjogXCJQcm94eSBBdXRoZW50aWNhdGlvbiBSZXF1aXJlZFwiLFxuICAgICAgXCI0MDhcIjogXCJSZXF1ZXN0IFRpbWVvdXRcIixcbiAgICAgIFwiNDA5XCI6IFwiQ29uZmxpY3RcIixcbiAgICAgIFwiNDEwXCI6IFwiR29uZVwiLFxuICAgICAgXCI0MTFcIjogXCJMZW5ndGggUmVxdWlyZWRcIixcbiAgICAgIFwiNDEyXCI6IFwiUHJlY29uZGl0aW9uIEZhaWxlZFwiLFxuICAgICAgXCI0MTNcIjogXCJQYXlsb2FkIFRvbyBMYXJnZVwiLFxuICAgICAgXCI0MTRcIjogXCJVUkkgVG9vIExvbmdcIixcbiAgICAgIFwiNDE1XCI6IFwiVW5zdXBwb3J0ZWQgTWVkaWEgVHlwZVwiLFxuICAgICAgXCI0MTZcIjogXCJSYW5nZSBOb3QgU2F0aXNmaWFibGVcIixcbiAgICAgIFwiNDE3XCI6IFwiRXhwZWN0YXRpb24gRmFpbGVkXCIsXG4gICAgICBcIjQxOFwiOiBcIkknbSBhIFRlYXBvdFwiLFxuICAgICAgXCI0MjFcIjogXCJNaXNkaXJlY3RlZCBSZXF1ZXN0XCIsXG4gICAgICBcIjQyMlwiOiBcIlVucHJvY2Vzc2FibGUgRW50aXR5XCIsXG4gICAgICBcIjQyM1wiOiBcIkxvY2tlZFwiLFxuICAgICAgXCI0MjRcIjogXCJGYWlsZWQgRGVwZW5kZW5jeVwiLFxuICAgICAgXCI0MjVcIjogXCJUb28gRWFybHlcIixcbiAgICAgIFwiNDI2XCI6IFwiVXBncmFkZSBSZXF1aXJlZFwiLFxuICAgICAgXCI0MjhcIjogXCJQcmVjb25kaXRpb24gUmVxdWlyZWRcIixcbiAgICAgIFwiNDI5XCI6IFwiVG9vIE1hbnkgUmVxdWVzdHNcIixcbiAgICAgIFwiNDMxXCI6IFwiUmVxdWVzdCBIZWFkZXIgRmllbGRzIFRvbyBMYXJnZVwiLFxuICAgICAgXCI0NTFcIjogXCJVbmF2YWlsYWJsZSBGb3IgTGVnYWwgUmVhc29uc1wiLFxuICAgICAgXCI1MDBcIjogXCJJbnRlcm5hbCBTZXJ2ZXIgRXJyb3JcIixcbiAgICAgIFwiNTAxXCI6IFwiTm90IEltcGxlbWVudGVkXCIsXG4gICAgICBcIjUwMlwiOiBcIkJhZCBHYXRld2F5XCIsXG4gICAgICBcIjUwM1wiOiBcIlNlcnZpY2UgVW5hdmFpbGFibGVcIixcbiAgICAgIFwiNTA0XCI6IFwiR2F0ZXdheSBUaW1lb3V0XCIsXG4gICAgICBcIjUwNVwiOiBcIkhUVFAgVmVyc2lvbiBOb3QgU3VwcG9ydGVkXCIsXG4gICAgICBcIjUwNlwiOiBcIlZhcmlhbnQgQWxzbyBOZWdvdGlhdGVzXCIsXG4gICAgICBcIjUwN1wiOiBcIkluc3VmZmljaWVudCBTdG9yYWdlXCIsXG4gICAgICBcIjUwOFwiOiBcIkxvb3AgRGV0ZWN0ZWRcIixcbiAgICAgIFwiNTA5XCI6IFwiQmFuZHdpZHRoIExpbWl0IEV4Y2VlZGVkXCIsXG4gICAgICBcIjUxMFwiOiBcIk5vdCBFeHRlbmRlZFwiLFxuICAgICAgXCI1MTFcIjogXCJOZXR3b3JrIEF1dGhlbnRpY2F0aW9uIFJlcXVpcmVkXCJcbiAgICB9O1xuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL3N0YXR1c2VzL2luZGV4LmpzXG52YXIgcmVxdWlyZV9zdGF0dXNlcyA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9zdGF0dXNlcy9pbmRleC5qc1wiKGV4cG9ydHMyLCBtb2R1bGUyKSB7XG4gICAgXCJ1c2Ugc3RyaWN0XCI7XG4gICAgdmFyIGNvZGVzID0gcmVxdWlyZV9jb2RlcygpO1xuICAgIG1vZHVsZTIuZXhwb3J0cyA9IHN0YXR1cztcbiAgICBzdGF0dXMubWVzc2FnZSA9IGNvZGVzO1xuICAgIHN0YXR1cy5jb2RlID0gY3JlYXRlTWVzc2FnZVRvU3RhdHVzQ29kZU1hcChjb2Rlcyk7XG4gICAgc3RhdHVzLmNvZGVzID0gY3JlYXRlU3RhdHVzQ29kZUxpc3QoY29kZXMpO1xuICAgIHN0YXR1cy5yZWRpcmVjdCA9IHtcbiAgICAgIDMwMDogdHJ1ZSxcbiAgICAgIDMwMTogdHJ1ZSxcbiAgICAgIDMwMjogdHJ1ZSxcbiAgICAgIDMwMzogdHJ1ZSxcbiAgICAgIDMwNTogdHJ1ZSxcbiAgICAgIDMwNzogdHJ1ZSxcbiAgICAgIDMwODogdHJ1ZVxuICAgIH07XG4gICAgc3RhdHVzLmVtcHR5ID0ge1xuICAgICAgMjA0OiB0cnVlLFxuICAgICAgMjA1OiB0cnVlLFxuICAgICAgMzA0OiB0cnVlXG4gICAgfTtcbiAgICBzdGF0dXMucmV0cnkgPSB7XG4gICAgICA1MDI6IHRydWUsXG4gICAgICA1MDM6IHRydWUsXG4gICAgICA1MDQ6IHRydWVcbiAgICB9O1xuICAgIGZ1bmN0aW9uIGNyZWF0ZU1lc3NhZ2VUb1N0YXR1c0NvZGVNYXAoY29kZXMyKSB7XG4gICAgICB2YXIgbWFwID0ge307XG4gICAgICBPYmplY3Qua2V5cyhjb2RlczIpLmZvckVhY2goZnVuY3Rpb24gZm9yRWFjaENvZGUoY29kZSkge1xuICAgICAgICB2YXIgbWVzc2FnZSA9IGNvZGVzMltjb2RlXTtcbiAgICAgICAgdmFyIHN0YXR1czIgPSBOdW1iZXIoY29kZSk7XG4gICAgICAgIG1hcFttZXNzYWdlLnRvTG93ZXJDYXNlKCldID0gc3RhdHVzMjtcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIG1hcDtcbiAgICB9XG4gICAgZnVuY3Rpb24gY3JlYXRlU3RhdHVzQ29kZUxpc3QoY29kZXMyKSB7XG4gICAgICByZXR1cm4gT2JqZWN0LmtleXMoY29kZXMyKS5tYXAoZnVuY3Rpb24gbWFwQ29kZShjb2RlKSB7XG4gICAgICAgIHJldHVybiBOdW1iZXIoY29kZSk7XG4gICAgICB9KTtcbiAgICB9XG4gICAgZnVuY3Rpb24gZ2V0U3RhdHVzQ29kZShtZXNzYWdlKSB7XG4gICAgICB2YXIgbXNnID0gbWVzc2FnZS50b0xvd2VyQ2FzZSgpO1xuICAgICAgaWYgKCFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoc3RhdHVzLmNvZGUsIG1zZykpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdpbnZhbGlkIHN0YXR1cyBtZXNzYWdlOiBcIicgKyBtZXNzYWdlICsgJ1wiJyk7XG4gICAgICB9XG4gICAgICByZXR1cm4gc3RhdHVzLmNvZGVbbXNnXTtcbiAgICB9XG4gICAgZnVuY3Rpb24gZ2V0U3RhdHVzTWVzc2FnZShjb2RlKSB7XG4gICAgICBpZiAoIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzdGF0dXMubWVzc2FnZSwgY29kZSkpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiaW52YWxpZCBzdGF0dXMgY29kZTogXCIgKyBjb2RlKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBzdGF0dXMubWVzc2FnZVtjb2RlXTtcbiAgICB9XG4gICAgZnVuY3Rpb24gc3RhdHVzKGNvZGUpIHtcbiAgICAgIGlmICh0eXBlb2YgY29kZSA9PT0gXCJudW1iZXJcIikge1xuICAgICAgICByZXR1cm4gZ2V0U3RhdHVzTWVzc2FnZShjb2RlKTtcbiAgICAgIH1cbiAgICAgIGlmICh0eXBlb2YgY29kZSAhPT0gXCJzdHJpbmdcIikge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiY29kZSBtdXN0IGJlIGEgbnVtYmVyIG9yIHN0cmluZ1wiKTtcbiAgICAgIH1cbiAgICAgIHZhciBuID0gcGFyc2VJbnQoY29kZSwgMTApO1xuICAgICAgaWYgKCFpc05hTihuKSkge1xuICAgICAgICByZXR1cm4gZ2V0U3RhdHVzTWVzc2FnZShuKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBnZXRTdGF0dXNDb2RlKGNvZGUpO1xuICAgIH1cbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9pbmhlcml0cy9pbmhlcml0c19icm93c2VyLmpzXG52YXIgcmVxdWlyZV9pbmhlcml0c19icm93c2VyID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL2luaGVyaXRzL2luaGVyaXRzX2Jyb3dzZXIuanNcIihleHBvcnRzMiwgbW9kdWxlMikge1xuICAgIGlmICh0eXBlb2YgT2JqZWN0LmNyZWF0ZSA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICBtb2R1bGUyLmV4cG9ydHMgPSBmdW5jdGlvbiBpbmhlcml0cyhjdG9yLCBzdXBlckN0b3IpIHtcbiAgICAgICAgaWYgKHN1cGVyQ3Rvcikge1xuICAgICAgICAgIGN0b3Iuc3VwZXJfID0gc3VwZXJDdG9yO1xuICAgICAgICAgIGN0b3IucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShzdXBlckN0b3IucHJvdG90eXBlLCB7XG4gICAgICAgICAgICBjb25zdHJ1Y3Rvcjoge1xuICAgICAgICAgICAgICB2YWx1ZTogY3RvcixcbiAgICAgICAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICAgICAgICAgIHdyaXRhYmxlOiB0cnVlLFxuICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgbW9kdWxlMi5leHBvcnRzID0gZnVuY3Rpb24gaW5oZXJpdHMoY3Rvciwgc3VwZXJDdG9yKSB7XG4gICAgICAgIGlmIChzdXBlckN0b3IpIHtcbiAgICAgICAgICBjdG9yLnN1cGVyXyA9IHN1cGVyQ3RvcjtcbiAgICAgICAgICB2YXIgVGVtcEN0b3IgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgICB9O1xuICAgICAgICAgIFRlbXBDdG9yLnByb3RvdHlwZSA9IHN1cGVyQ3Rvci5wcm90b3R5cGU7XG4gICAgICAgICAgY3Rvci5wcm90b3R5cGUgPSBuZXcgVGVtcEN0b3IoKTtcbiAgICAgICAgICBjdG9yLnByb3RvdHlwZS5jb25zdHJ1Y3RvciA9IGN0b3I7XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgfVxuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL2luaGVyaXRzL2luaGVyaXRzLmpzXG52YXIgcmVxdWlyZV9pbmhlcml0cyA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9pbmhlcml0cy9pbmhlcml0cy5qc1wiKGV4cG9ydHMyLCBtb2R1bGUyKSB7XG4gICAgdHJ5IHtcbiAgICAgIHV0aWwyID0gcmVxdWlyZShcInV0aWxcIik7XG4gICAgICBpZiAodHlwZW9mIHV0aWwyLmluaGVyaXRzICE9PSBcImZ1bmN0aW9uXCIpIHRocm93IFwiXCI7XG4gICAgICBtb2R1bGUyLmV4cG9ydHMgPSB1dGlsMi5pbmhlcml0cztcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBtb2R1bGUyLmV4cG9ydHMgPSByZXF1aXJlX2luaGVyaXRzX2Jyb3dzZXIoKTtcbiAgICB9XG4gICAgdmFyIHV0aWwyO1xuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL3RvaWRlbnRpZmllci9pbmRleC5qc1xudmFyIHJlcXVpcmVfdG9pZGVudGlmaWVyID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL3RvaWRlbnRpZmllci9pbmRleC5qc1wiKGV4cG9ydHMyLCBtb2R1bGUyKSB7XG4gICAgXCJ1c2Ugc3RyaWN0XCI7XG4gICAgbW9kdWxlMi5leHBvcnRzID0gdG9JZGVudGlmaWVyO1xuICAgIGZ1bmN0aW9uIHRvSWRlbnRpZmllcihzdHIpIHtcbiAgICAgIHJldHVybiBzdHIuc3BsaXQoXCIgXCIpLm1hcChmdW5jdGlvbih0b2tlbikge1xuICAgICAgICByZXR1cm4gdG9rZW4uc2xpY2UoMCwgMSkudG9VcHBlckNhc2UoKSArIHRva2VuLnNsaWNlKDEpO1xuICAgICAgfSkuam9pbihcIlwiKS5yZXBsYWNlKC9bXiBfMC05YS16XS9naSwgXCJcIik7XG4gICAgfVxuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL2h0dHAtZXJyb3JzL2luZGV4LmpzXG52YXIgcmVxdWlyZV9odHRwX2Vycm9ycyA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9odHRwLWVycm9ycy9pbmRleC5qc1wiKGV4cG9ydHMyLCBtb2R1bGUyKSB7XG4gICAgXCJ1c2Ugc3RyaWN0XCI7XG4gICAgdmFyIGRlcHJlY2F0ZSA9IHJlcXVpcmVfZGVwZCgpKFwiaHR0cC1lcnJvcnNcIik7XG4gICAgdmFyIHNldFByb3RvdHlwZU9mID0gcmVxdWlyZV9zZXRwcm90b3R5cGVvZigpO1xuICAgIHZhciBzdGF0dXNlcyA9IHJlcXVpcmVfc3RhdHVzZXMoKTtcbiAgICB2YXIgaW5oZXJpdHMgPSByZXF1aXJlX2luaGVyaXRzKCk7XG4gICAgdmFyIHRvSWRlbnRpZmllciA9IHJlcXVpcmVfdG9pZGVudGlmaWVyKCk7XG4gICAgbW9kdWxlMi5leHBvcnRzID0gY3JlYXRlRXJyb3I7XG4gICAgbW9kdWxlMi5leHBvcnRzLkh0dHBFcnJvciA9IGNyZWF0ZUh0dHBFcnJvckNvbnN0cnVjdG9yKCk7XG4gICAgbW9kdWxlMi5leHBvcnRzLmlzSHR0cEVycm9yID0gY3JlYXRlSXNIdHRwRXJyb3JGdW5jdGlvbihtb2R1bGUyLmV4cG9ydHMuSHR0cEVycm9yKTtcbiAgICBwb3B1bGF0ZUNvbnN0cnVjdG9yRXhwb3J0cyhtb2R1bGUyLmV4cG9ydHMsIHN0YXR1c2VzLmNvZGVzLCBtb2R1bGUyLmV4cG9ydHMuSHR0cEVycm9yKTtcbiAgICBmdW5jdGlvbiBjb2RlQ2xhc3Moc3RhdHVzKSB7XG4gICAgICByZXR1cm4gTnVtYmVyKFN0cmluZyhzdGF0dXMpLmNoYXJBdCgwKSArIFwiMDBcIik7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGNyZWF0ZUVycm9yKCkge1xuICAgICAgdmFyIGVycjI7XG4gICAgICB2YXIgbXNnO1xuICAgICAgdmFyIHN0YXR1cyA9IDUwMDtcbiAgICAgIHZhciBwcm9wcyA9IHt9O1xuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgdmFyIGFyZyA9IGFyZ3VtZW50c1tpXTtcbiAgICAgICAgdmFyIHR5cGUgPSB0eXBlb2YgYXJnO1xuICAgICAgICBpZiAodHlwZSA9PT0gXCJvYmplY3RcIiAmJiBhcmcgaW5zdGFuY2VvZiBFcnJvcikge1xuICAgICAgICAgIGVycjIgPSBhcmc7XG4gICAgICAgICAgc3RhdHVzID0gZXJyMi5zdGF0dXMgfHwgZXJyMi5zdGF0dXNDb2RlIHx8IHN0YXR1cztcbiAgICAgICAgfSBlbHNlIGlmICh0eXBlID09PSBcIm51bWJlclwiICYmIGkgPT09IDApIHtcbiAgICAgICAgICBzdGF0dXMgPSBhcmc7XG4gICAgICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgIG1zZyA9IGFyZztcbiAgICAgICAgfSBlbHNlIGlmICh0eXBlID09PSBcIm9iamVjdFwiKSB7XG4gICAgICAgICAgcHJvcHMgPSBhcmc7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcImFyZ3VtZW50ICNcIiArIChpICsgMSkgKyBcIiB1bnN1cHBvcnRlZCB0eXBlIFwiICsgdHlwZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmICh0eXBlb2Ygc3RhdHVzID09PSBcIm51bWJlclwiICYmIChzdGF0dXMgPCA0MDAgfHwgc3RhdHVzID49IDYwMCkpIHtcbiAgICAgICAgZGVwcmVjYXRlKFwibm9uLWVycm9yIHN0YXR1cyBjb2RlOyB1c2Ugb25seSA0eHggb3IgNXh4IHN0YXR1cyBjb2Rlc1wiKTtcbiAgICAgIH1cbiAgICAgIGlmICh0eXBlb2Ygc3RhdHVzICE9PSBcIm51bWJlclwiIHx8ICFzdGF0dXNlcy5tZXNzYWdlW3N0YXR1c10gJiYgKHN0YXR1cyA8IDQwMCB8fCBzdGF0dXMgPj0gNjAwKSkge1xuICAgICAgICBzdGF0dXMgPSA1MDA7XG4gICAgICB9XG4gICAgICB2YXIgSHR0cEVycm9yID0gY3JlYXRlRXJyb3Jbc3RhdHVzXSB8fCBjcmVhdGVFcnJvcltjb2RlQ2xhc3Moc3RhdHVzKV07XG4gICAgICBpZiAoIWVycjIpIHtcbiAgICAgICAgZXJyMiA9IEh0dHBFcnJvciA/IG5ldyBIdHRwRXJyb3IobXNnKSA6IG5ldyBFcnJvcihtc2cgfHwgc3RhdHVzZXMubWVzc2FnZVtzdGF0dXNdKTtcbiAgICAgICAgRXJyb3IuY2FwdHVyZVN0YWNrVHJhY2UoZXJyMiwgY3JlYXRlRXJyb3IpO1xuICAgICAgfVxuICAgICAgaWYgKCFIdHRwRXJyb3IgfHwgIShlcnIyIGluc3RhbmNlb2YgSHR0cEVycm9yKSB8fCBlcnIyLnN0YXR1cyAhPT0gc3RhdHVzKSB7XG4gICAgICAgIGVycjIuZXhwb3NlID0gc3RhdHVzIDwgNTAwO1xuICAgICAgICBlcnIyLnN0YXR1cyA9IGVycjIuc3RhdHVzQ29kZSA9IHN0YXR1cztcbiAgICAgIH1cbiAgICAgIGZvciAodmFyIGtleSBpbiBwcm9wcykge1xuICAgICAgICBpZiAoa2V5ICE9PSBcInN0YXR1c1wiICYmIGtleSAhPT0gXCJzdGF0dXNDb2RlXCIpIHtcbiAgICAgICAgICBlcnIyW2tleV0gPSBwcm9wc1trZXldO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gZXJyMjtcbiAgICB9XG4gICAgZnVuY3Rpb24gY3JlYXRlSHR0cEVycm9yQ29uc3RydWN0b3IoKSB7XG4gICAgICBmdW5jdGlvbiBIdHRwRXJyb3IoKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJjYW5ub3QgY29uc3RydWN0IGFic3RyYWN0IGNsYXNzXCIpO1xuICAgICAgfVxuICAgICAgaW5oZXJpdHMoSHR0cEVycm9yLCBFcnJvcik7XG4gICAgICByZXR1cm4gSHR0cEVycm9yO1xuICAgIH1cbiAgICBmdW5jdGlvbiBjcmVhdGVDbGllbnRFcnJvckNvbnN0cnVjdG9yKEh0dHBFcnJvciwgbmFtZSwgY29kZSkge1xuICAgICAgdmFyIGNsYXNzTmFtZSA9IHRvQ2xhc3NOYW1lKG5hbWUpO1xuICAgICAgZnVuY3Rpb24gQ2xpZW50RXJyb3IobWVzc2FnZSkge1xuICAgICAgICB2YXIgbXNnID0gbWVzc2FnZSAhPSBudWxsID8gbWVzc2FnZSA6IHN0YXR1c2VzLm1lc3NhZ2VbY29kZV07XG4gICAgICAgIHZhciBlcnIyID0gbmV3IEVycm9yKG1zZyk7XG4gICAgICAgIEVycm9yLmNhcHR1cmVTdGFja1RyYWNlKGVycjIsIENsaWVudEVycm9yKTtcbiAgICAgICAgc2V0UHJvdG90eXBlT2YoZXJyMiwgQ2xpZW50RXJyb3IucHJvdG90eXBlKTtcbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGVycjIsIFwibWVzc2FnZVwiLCB7XG4gICAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgICAgICAgdmFsdWU6IG1zZyxcbiAgICAgICAgICB3cml0YWJsZTogdHJ1ZVxuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGVycjIsIFwibmFtZVwiLCB7XG4gICAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgICAgICAgIHZhbHVlOiBjbGFzc05hbWUsXG4gICAgICAgICAgd3JpdGFibGU6IHRydWVcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBlcnIyO1xuICAgICAgfVxuICAgICAgaW5oZXJpdHMoQ2xpZW50RXJyb3IsIEh0dHBFcnJvcik7XG4gICAgICBuYW1lRnVuYyhDbGllbnRFcnJvciwgY2xhc3NOYW1lKTtcbiAgICAgIENsaWVudEVycm9yLnByb3RvdHlwZS5zdGF0dXMgPSBjb2RlO1xuICAgICAgQ2xpZW50RXJyb3IucHJvdG90eXBlLnN0YXR1c0NvZGUgPSBjb2RlO1xuICAgICAgQ2xpZW50RXJyb3IucHJvdG90eXBlLmV4cG9zZSA9IHRydWU7XG4gICAgICByZXR1cm4gQ2xpZW50RXJyb3I7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGNyZWF0ZUlzSHR0cEVycm9yRnVuY3Rpb24oSHR0cEVycm9yKSB7XG4gICAgICByZXR1cm4gZnVuY3Rpb24gaXNIdHRwRXJyb3IodmFsKSB7XG4gICAgICAgIGlmICghdmFsIHx8IHR5cGVvZiB2YWwgIT09IFwib2JqZWN0XCIpIHtcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHZhbCBpbnN0YW5jZW9mIEh0dHBFcnJvcikge1xuICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB2YWwgaW5zdGFuY2VvZiBFcnJvciAmJiB0eXBlb2YgdmFsLmV4cG9zZSA9PT0gXCJib29sZWFuXCIgJiYgdHlwZW9mIHZhbC5zdGF0dXNDb2RlID09PSBcIm51bWJlclwiICYmIHZhbC5zdGF0dXMgPT09IHZhbC5zdGF0dXNDb2RlO1xuICAgICAgfTtcbiAgICB9XG4gICAgZnVuY3Rpb24gY3JlYXRlU2VydmVyRXJyb3JDb25zdHJ1Y3RvcihIdHRwRXJyb3IsIG5hbWUsIGNvZGUpIHtcbiAgICAgIHZhciBjbGFzc05hbWUgPSB0b0NsYXNzTmFtZShuYW1lKTtcbiAgICAgIGZ1bmN0aW9uIFNlcnZlckVycm9yKG1lc3NhZ2UpIHtcbiAgICAgICAgdmFyIG1zZyA9IG1lc3NhZ2UgIT0gbnVsbCA/IG1lc3NhZ2UgOiBzdGF0dXNlcy5tZXNzYWdlW2NvZGVdO1xuICAgICAgICB2YXIgZXJyMiA9IG5ldyBFcnJvcihtc2cpO1xuICAgICAgICBFcnJvci5jYXB0dXJlU3RhY2tUcmFjZShlcnIyLCBTZXJ2ZXJFcnJvcik7XG4gICAgICAgIHNldFByb3RvdHlwZU9mKGVycjIsIFNlcnZlckVycm9yLnByb3RvdHlwZSk7XG4gICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlcnIyLCBcIm1lc3NhZ2VcIiwge1xuICAgICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgICAgICAgIHZhbHVlOiBtc2csXG4gICAgICAgICAgd3JpdGFibGU6IHRydWVcbiAgICAgICAgfSk7XG4gICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlcnIyLCBcIm5hbWVcIiwge1xuICAgICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICAgICAgICB2YWx1ZTogY2xhc3NOYW1lLFxuICAgICAgICAgIHdyaXRhYmxlOiB0cnVlXG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gZXJyMjtcbiAgICAgIH1cbiAgICAgIGluaGVyaXRzKFNlcnZlckVycm9yLCBIdHRwRXJyb3IpO1xuICAgICAgbmFtZUZ1bmMoU2VydmVyRXJyb3IsIGNsYXNzTmFtZSk7XG4gICAgICBTZXJ2ZXJFcnJvci5wcm90b3R5cGUuc3RhdHVzID0gY29kZTtcbiAgICAgIFNlcnZlckVycm9yLnByb3RvdHlwZS5zdGF0dXNDb2RlID0gY29kZTtcbiAgICAgIFNlcnZlckVycm9yLnByb3RvdHlwZS5leHBvc2UgPSBmYWxzZTtcbiAgICAgIHJldHVybiBTZXJ2ZXJFcnJvcjtcbiAgICB9XG4gICAgZnVuY3Rpb24gbmFtZUZ1bmMoZnVuYywgbmFtZSkge1xuICAgICAgdmFyIGRlc2MgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGZ1bmMsIFwibmFtZVwiKTtcbiAgICAgIGlmIChkZXNjICYmIGRlc2MuY29uZmlndXJhYmxlKSB7XG4gICAgICAgIGRlc2MudmFsdWUgPSBuYW1lO1xuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZnVuYywgXCJuYW1lXCIsIGRlc2MpO1xuICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiBwb3B1bGF0ZUNvbnN0cnVjdG9yRXhwb3J0cyhleHBvcnRzMywgY29kZXMsIEh0dHBFcnJvcikge1xuICAgICAgY29kZXMuZm9yRWFjaChmdW5jdGlvbiBmb3JFYWNoQ29kZShjb2RlKSB7XG4gICAgICAgIHZhciBDb2RlRXJyb3I7XG4gICAgICAgIHZhciBuYW1lID0gdG9JZGVudGlmaWVyKHN0YXR1c2VzLm1lc3NhZ2VbY29kZV0pO1xuICAgICAgICBzd2l0Y2ggKGNvZGVDbGFzcyhjb2RlKSkge1xuICAgICAgICAgIGNhc2UgNDAwOlxuICAgICAgICAgICAgQ29kZUVycm9yID0gY3JlYXRlQ2xpZW50RXJyb3JDb25zdHJ1Y3RvcihIdHRwRXJyb3IsIG5hbWUsIGNvZGUpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSA1MDA6XG4gICAgICAgICAgICBDb2RlRXJyb3IgPSBjcmVhdGVTZXJ2ZXJFcnJvckNvbnN0cnVjdG9yKEh0dHBFcnJvciwgbmFtZSwgY29kZSk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBpZiAoQ29kZUVycm9yKSB7XG4gICAgICAgICAgZXhwb3J0czNbY29kZV0gPSBDb2RlRXJyb3I7XG4gICAgICAgICAgZXhwb3J0czNbbmFtZV0gPSBDb2RlRXJyb3I7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgICBmdW5jdGlvbiB0b0NsYXNzTmFtZShuYW1lKSB7XG4gICAgICByZXR1cm4gbmFtZS5zdWJzdHIoLTUpICE9PSBcIkVycm9yXCIgPyBuYW1lICsgXCJFcnJvclwiIDogbmFtZTtcbiAgICB9XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvc2FmZXItYnVmZmVyL3NhZmVyLmpzXG52YXIgcmVxdWlyZV9zYWZlciA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9zYWZlci1idWZmZXIvc2FmZXIuanNcIihleHBvcnRzMiwgbW9kdWxlMikge1xuICAgIFwidXNlIHN0cmljdFwiO1xuICAgIHZhciBidWZmZXIgPSByZXF1aXJlKFwiYnVmZmVyXCIpO1xuICAgIHZhciBCdWZmZXIyID0gYnVmZmVyLkJ1ZmZlcjtcbiAgICB2YXIgc2FmZXIgPSB7fTtcbiAgICB2YXIga2V5O1xuICAgIGZvciAoa2V5IGluIGJ1ZmZlcikge1xuICAgICAgaWYgKCFidWZmZXIuaGFzT3duUHJvcGVydHkoa2V5KSkgY29udGludWU7XG4gICAgICBpZiAoa2V5ID09PSBcIlNsb3dCdWZmZXJcIiB8fCBrZXkgPT09IFwiQnVmZmVyXCIpIGNvbnRpbnVlO1xuICAgICAgc2FmZXJba2V5XSA9IGJ1ZmZlcltrZXldO1xuICAgIH1cbiAgICB2YXIgU2FmZXIgPSBzYWZlci5CdWZmZXIgPSB7fTtcbiAgICBmb3IgKGtleSBpbiBCdWZmZXIyKSB7XG4gICAgICBpZiAoIUJ1ZmZlcjIuaGFzT3duUHJvcGVydHkoa2V5KSkgY29udGludWU7XG4gICAgICBpZiAoa2V5ID09PSBcImFsbG9jVW5zYWZlXCIgfHwga2V5ID09PSBcImFsbG9jVW5zYWZlU2xvd1wiKSBjb250aW51ZTtcbiAgICAgIFNhZmVyW2tleV0gPSBCdWZmZXIyW2tleV07XG4gICAgfVxuICAgIHNhZmVyLkJ1ZmZlci5wcm90b3R5cGUgPSBCdWZmZXIyLnByb3RvdHlwZTtcbiAgICBpZiAoIVNhZmVyLmZyb20gfHwgU2FmZXIuZnJvbSA9PT0gVWludDhBcnJheS5mcm9tKSB7XG4gICAgICBTYWZlci5mcm9tID0gZnVuY3Rpb24odmFsdWUsIGVuY29kaW5nT3JPZmZzZXQsIGxlbmd0aCkge1xuICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSBcIm51bWJlclwiKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignVGhlIFwidmFsdWVcIiBhcmd1bWVudCBtdXN0IG5vdCBiZSBvZiB0eXBlIG51bWJlci4gUmVjZWl2ZWQgdHlwZSAnICsgdHlwZW9mIHZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodmFsdWUgJiYgdHlwZW9mIHZhbHVlLmxlbmd0aCA9PT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJUaGUgZmlyc3QgYXJndW1lbnQgbXVzdCBiZSBvbmUgb2YgdHlwZSBzdHJpbmcsIEJ1ZmZlciwgQXJyYXlCdWZmZXIsIEFycmF5LCBvciBBcnJheS1saWtlIE9iamVjdC4gUmVjZWl2ZWQgdHlwZSBcIiArIHR5cGVvZiB2YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIEJ1ZmZlcjIodmFsdWUsIGVuY29kaW5nT3JPZmZzZXQsIGxlbmd0aCk7XG4gICAgICB9O1xuICAgIH1cbiAgICBpZiAoIVNhZmVyLmFsbG9jKSB7XG4gICAgICBTYWZlci5hbGxvYyA9IGZ1bmN0aW9uKHNpemUsIGZpbGwsIGVuY29kaW5nKSB7XG4gICAgICAgIGlmICh0eXBlb2Ygc2l6ZSAhPT0gXCJudW1iZXJcIikge1xuICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ1RoZSBcInNpemVcIiBhcmd1bWVudCBtdXN0IGJlIG9mIHR5cGUgbnVtYmVyLiBSZWNlaXZlZCB0eXBlICcgKyB0eXBlb2Ygc2l6ZSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHNpemUgPCAwIHx8IHNpemUgPj0gMiAqICgxIDw8IDMwKSkge1xuICAgICAgICAgIHRocm93IG5ldyBSYW5nZUVycm9yKCdUaGUgdmFsdWUgXCInICsgc2l6ZSArICdcIiBpcyBpbnZhbGlkIGZvciBvcHRpb24gXCJzaXplXCInKTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgYnVmID0gQnVmZmVyMihzaXplKTtcbiAgICAgICAgaWYgKCFmaWxsIHx8IGZpbGwubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgYnVmLmZpbGwoMCk7XG4gICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIGVuY29kaW5nID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgYnVmLmZpbGwoZmlsbCwgZW5jb2RpbmcpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGJ1Zi5maWxsKGZpbGwpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBidWY7XG4gICAgICB9O1xuICAgIH1cbiAgICBpZiAoIXNhZmVyLmtTdHJpbmdNYXhMZW5ndGgpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHNhZmVyLmtTdHJpbmdNYXhMZW5ndGggPSBwcm9jZXNzLmJpbmRpbmcoXCJidWZmZXJcIikua1N0cmluZ01heExlbmd0aDtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKCFzYWZlci5jb25zdGFudHMpIHtcbiAgICAgIHNhZmVyLmNvbnN0YW50cyA9IHtcbiAgICAgICAgTUFYX0xFTkdUSDogc2FmZXIua01heExlbmd0aFxuICAgICAgfTtcbiAgICAgIGlmIChzYWZlci5rU3RyaW5nTWF4TGVuZ3RoKSB7XG4gICAgICAgIHNhZmVyLmNvbnN0YW50cy5NQVhfU1RSSU5HX0xFTkdUSCA9IHNhZmVyLmtTdHJpbmdNYXhMZW5ndGg7XG4gICAgICB9XG4gICAgfVxuICAgIG1vZHVsZTIuZXhwb3J0cyA9IHNhZmVyO1xuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL3Jhdy1ib2R5L25vZGVfbW9kdWxlcy9pY29udi1saXRlL2xpYi9ib20taGFuZGxpbmcuanNcbnZhciByZXF1aXJlX2JvbV9oYW5kbGluZyA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9yYXctYm9keS9ub2RlX21vZHVsZXMvaWNvbnYtbGl0ZS9saWIvYm9tLWhhbmRsaW5nLmpzXCIoZXhwb3J0czIpIHtcbiAgICBcInVzZSBzdHJpY3RcIjtcbiAgICB2YXIgQk9NQ2hhciA9IFwiXFx1RkVGRlwiO1xuICAgIGV4cG9ydHMyLlByZXBlbmRCT00gPSBQcmVwZW5kQk9NV3JhcHBlcjtcbiAgICBmdW5jdGlvbiBQcmVwZW5kQk9NV3JhcHBlcihlbmNvZGVyLCBvcHRpb25zKSB7XG4gICAgICB0aGlzLmVuY29kZXIgPSBlbmNvZGVyO1xuICAgICAgdGhpcy5hZGRCT00gPSB0cnVlO1xuICAgIH1cbiAgICBQcmVwZW5kQk9NV3JhcHBlci5wcm90b3R5cGUud3JpdGUgPSBmdW5jdGlvbihzdHIpIHtcbiAgICAgIGlmICh0aGlzLmFkZEJPTSkge1xuICAgICAgICBzdHIgPSBCT01DaGFyICsgc3RyO1xuICAgICAgICB0aGlzLmFkZEJPTSA9IGZhbHNlO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRoaXMuZW5jb2Rlci53cml0ZShzdHIpO1xuICAgIH07XG4gICAgUHJlcGVuZEJPTVdyYXBwZXIucHJvdG90eXBlLmVuZCA9IGZ1bmN0aW9uKCkge1xuICAgICAgcmV0dXJuIHRoaXMuZW5jb2Rlci5lbmQoKTtcbiAgICB9O1xuICAgIGV4cG9ydHMyLlN0cmlwQk9NID0gU3RyaXBCT01XcmFwcGVyO1xuICAgIGZ1bmN0aW9uIFN0cmlwQk9NV3JhcHBlcihkZWNvZGVyLCBvcHRpb25zKSB7XG4gICAgICB0aGlzLmRlY29kZXIgPSBkZWNvZGVyO1xuICAgICAgdGhpcy5wYXNzID0gZmFsc2U7XG4gICAgICB0aGlzLm9wdGlvbnMgPSBvcHRpb25zIHx8IHt9O1xuICAgIH1cbiAgICBTdHJpcEJPTVdyYXBwZXIucHJvdG90eXBlLndyaXRlID0gZnVuY3Rpb24oYnVmKSB7XG4gICAgICB2YXIgcmVzID0gdGhpcy5kZWNvZGVyLndyaXRlKGJ1Zik7XG4gICAgICBpZiAodGhpcy5wYXNzIHx8ICFyZXMpXG4gICAgICAgIHJldHVybiByZXM7XG4gICAgICBpZiAocmVzWzBdID09PSBCT01DaGFyKSB7XG4gICAgICAgIHJlcyA9IHJlcy5zbGljZSgxKTtcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLm9wdGlvbnMuc3RyaXBCT00gPT09IFwiZnVuY3Rpb25cIilcbiAgICAgICAgICB0aGlzLm9wdGlvbnMuc3RyaXBCT00oKTtcbiAgICAgIH1cbiAgICAgIHRoaXMucGFzcyA9IHRydWU7XG4gICAgICByZXR1cm4gcmVzO1xuICAgIH07XG4gICAgU3RyaXBCT01XcmFwcGVyLnByb3RvdHlwZS5lbmQgPSBmdW5jdGlvbigpIHtcbiAgICAgIHJldHVybiB0aGlzLmRlY29kZXIuZW5kKCk7XG4gICAgfTtcbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9yYXctYm9keS9ub2RlX21vZHVsZXMvaWNvbnYtbGl0ZS9lbmNvZGluZ3MvaW50ZXJuYWwuanNcbnZhciByZXF1aXJlX2ludGVybmFsID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL3Jhdy1ib2R5L25vZGVfbW9kdWxlcy9pY29udi1saXRlL2VuY29kaW5ncy9pbnRlcm5hbC5qc1wiKGV4cG9ydHMyLCBtb2R1bGUyKSB7XG4gICAgXCJ1c2Ugc3RyaWN0XCI7XG4gICAgdmFyIEJ1ZmZlcjIgPSByZXF1aXJlX3NhZmVyKCkuQnVmZmVyO1xuICAgIG1vZHVsZTIuZXhwb3J0cyA9IHtcbiAgICAgIC8vIEVuY29kaW5nc1xuICAgICAgdXRmODogeyB0eXBlOiBcIl9pbnRlcm5hbFwiLCBib21Bd2FyZTogdHJ1ZSB9LFxuICAgICAgY2VzdTg6IHsgdHlwZTogXCJfaW50ZXJuYWxcIiwgYm9tQXdhcmU6IHRydWUgfSxcbiAgICAgIHVuaWNvZGUxMXV0Zjg6IFwidXRmOFwiLFxuICAgICAgdWNzMjogeyB0eXBlOiBcIl9pbnRlcm5hbFwiLCBib21Bd2FyZTogdHJ1ZSB9LFxuICAgICAgdXRmMTZsZTogXCJ1Y3MyXCIsXG4gICAgICBiaW5hcnk6IHsgdHlwZTogXCJfaW50ZXJuYWxcIiB9LFxuICAgICAgYmFzZTY0OiB7IHR5cGU6IFwiX2ludGVybmFsXCIgfSxcbiAgICAgIGhleDogeyB0eXBlOiBcIl9pbnRlcm5hbFwiIH0sXG4gICAgICAvLyBDb2RlYy5cbiAgICAgIF9pbnRlcm5hbDogSW50ZXJuYWxDb2RlY1xuICAgIH07XG4gICAgZnVuY3Rpb24gSW50ZXJuYWxDb2RlYyhjb2RlY09wdGlvbnMsIGljb252KSB7XG4gICAgICB0aGlzLmVuYyA9IGNvZGVjT3B0aW9ucy5lbmNvZGluZ05hbWU7XG4gICAgICB0aGlzLmJvbUF3YXJlID0gY29kZWNPcHRpb25zLmJvbUF3YXJlO1xuICAgICAgaWYgKHRoaXMuZW5jID09PSBcImJhc2U2NFwiKVxuICAgICAgICB0aGlzLmVuY29kZXIgPSBJbnRlcm5hbEVuY29kZXJCYXNlNjQ7XG4gICAgICBlbHNlIGlmICh0aGlzLmVuYyA9PT0gXCJjZXN1OFwiKSB7XG4gICAgICAgIHRoaXMuZW5jID0gXCJ1dGY4XCI7XG4gICAgICAgIHRoaXMuZW5jb2RlciA9IEludGVybmFsRW5jb2RlckNlc3U4O1xuICAgICAgICBpZiAoQnVmZmVyMi5mcm9tKFwiZWRhMGJkZWRiMmE5XCIsIFwiaGV4XCIpLnRvU3RyaW5nKCkgIT09IFwiXFx1ezFGNEE5fVwiKSB7XG4gICAgICAgICAgdGhpcy5kZWNvZGVyID0gSW50ZXJuYWxEZWNvZGVyQ2VzdTg7XG4gICAgICAgICAgdGhpcy5kZWZhdWx0Q2hhclVuaWNvZGUgPSBpY29udi5kZWZhdWx0Q2hhclVuaWNvZGU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgSW50ZXJuYWxDb2RlYy5wcm90b3R5cGUuZW5jb2RlciA9IEludGVybmFsRW5jb2RlcjtcbiAgICBJbnRlcm5hbENvZGVjLnByb3RvdHlwZS5kZWNvZGVyID0gSW50ZXJuYWxEZWNvZGVyO1xuICAgIHZhciBTdHJpbmdEZWNvZGVyID0gcmVxdWlyZShcInN0cmluZ19kZWNvZGVyXCIpLlN0cmluZ0RlY29kZXI7XG4gICAgaWYgKCFTdHJpbmdEZWNvZGVyLnByb3RvdHlwZS5lbmQpXG4gICAgICBTdHJpbmdEZWNvZGVyLnByb3RvdHlwZS5lbmQgPSBmdW5jdGlvbigpIHtcbiAgICAgIH07XG4gICAgZnVuY3Rpb24gSW50ZXJuYWxEZWNvZGVyKG9wdGlvbnMsIGNvZGVjKSB7XG4gICAgICB0aGlzLmRlY29kZXIgPSBuZXcgU3RyaW5nRGVjb2Rlcihjb2RlYy5lbmMpO1xuICAgIH1cbiAgICBJbnRlcm5hbERlY29kZXIucHJvdG90eXBlLndyaXRlID0gZnVuY3Rpb24oYnVmKSB7XG4gICAgICBpZiAoIUJ1ZmZlcjIuaXNCdWZmZXIoYnVmKSkge1xuICAgICAgICBidWYgPSBCdWZmZXIyLmZyb20oYnVmKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0aGlzLmRlY29kZXIud3JpdGUoYnVmKTtcbiAgICB9O1xuICAgIEludGVybmFsRGVjb2Rlci5wcm90b3R5cGUuZW5kID0gZnVuY3Rpb24oKSB7XG4gICAgICByZXR1cm4gdGhpcy5kZWNvZGVyLmVuZCgpO1xuICAgIH07XG4gICAgZnVuY3Rpb24gSW50ZXJuYWxFbmNvZGVyKG9wdGlvbnMsIGNvZGVjKSB7XG4gICAgICB0aGlzLmVuYyA9IGNvZGVjLmVuYztcbiAgICB9XG4gICAgSW50ZXJuYWxFbmNvZGVyLnByb3RvdHlwZS53cml0ZSA9IGZ1bmN0aW9uKHN0cikge1xuICAgICAgcmV0dXJuIEJ1ZmZlcjIuZnJvbShzdHIsIHRoaXMuZW5jKTtcbiAgICB9O1xuICAgIEludGVybmFsRW5jb2Rlci5wcm90b3R5cGUuZW5kID0gZnVuY3Rpb24oKSB7XG4gICAgfTtcbiAgICBmdW5jdGlvbiBJbnRlcm5hbEVuY29kZXJCYXNlNjQob3B0aW9ucywgY29kZWMpIHtcbiAgICAgIHRoaXMucHJldlN0ciA9IFwiXCI7XG4gICAgfVxuICAgIEludGVybmFsRW5jb2RlckJhc2U2NC5wcm90b3R5cGUud3JpdGUgPSBmdW5jdGlvbihzdHIpIHtcbiAgICAgIHN0ciA9IHRoaXMucHJldlN0ciArIHN0cjtcbiAgICAgIHZhciBjb21wbGV0ZVF1YWRzID0gc3RyLmxlbmd0aCAtIHN0ci5sZW5ndGggJSA0O1xuICAgICAgdGhpcy5wcmV2U3RyID0gc3RyLnNsaWNlKGNvbXBsZXRlUXVhZHMpO1xuICAgICAgc3RyID0gc3RyLnNsaWNlKDAsIGNvbXBsZXRlUXVhZHMpO1xuICAgICAgcmV0dXJuIEJ1ZmZlcjIuZnJvbShzdHIsIFwiYmFzZTY0XCIpO1xuICAgIH07XG4gICAgSW50ZXJuYWxFbmNvZGVyQmFzZTY0LnByb3RvdHlwZS5lbmQgPSBmdW5jdGlvbigpIHtcbiAgICAgIHJldHVybiBCdWZmZXIyLmZyb20odGhpcy5wcmV2U3RyLCBcImJhc2U2NFwiKTtcbiAgICB9O1xuICAgIGZ1bmN0aW9uIEludGVybmFsRW5jb2RlckNlc3U4KG9wdGlvbnMsIGNvZGVjKSB7XG4gICAgfVxuICAgIEludGVybmFsRW5jb2RlckNlc3U4LnByb3RvdHlwZS53cml0ZSA9IGZ1bmN0aW9uKHN0cikge1xuICAgICAgdmFyIGJ1ZiA9IEJ1ZmZlcjIuYWxsb2Moc3RyLmxlbmd0aCAqIDMpLCBidWZJZHggPSAwO1xuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzdHIubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgdmFyIGNoYXJDb2RlID0gc3RyLmNoYXJDb2RlQXQoaSk7XG4gICAgICAgIGlmIChjaGFyQ29kZSA8IDEyOClcbiAgICAgICAgICBidWZbYnVmSWR4KytdID0gY2hhckNvZGU7XG4gICAgICAgIGVsc2UgaWYgKGNoYXJDb2RlIDwgMjA0OCkge1xuICAgICAgICAgIGJ1ZltidWZJZHgrK10gPSAxOTIgKyAoY2hhckNvZGUgPj4+IDYpO1xuICAgICAgICAgIGJ1ZltidWZJZHgrK10gPSAxMjggKyAoY2hhckNvZGUgJiA2Myk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgYnVmW2J1ZklkeCsrXSA9IDIyNCArIChjaGFyQ29kZSA+Pj4gMTIpO1xuICAgICAgICAgIGJ1ZltidWZJZHgrK10gPSAxMjggKyAoY2hhckNvZGUgPj4+IDYgJiA2Myk7XG4gICAgICAgICAgYnVmW2J1ZklkeCsrXSA9IDEyOCArIChjaGFyQ29kZSAmIDYzKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIGJ1Zi5zbGljZSgwLCBidWZJZHgpO1xuICAgIH07XG4gICAgSW50ZXJuYWxFbmNvZGVyQ2VzdTgucHJvdG90eXBlLmVuZCA9IGZ1bmN0aW9uKCkge1xuICAgIH07XG4gICAgZnVuY3Rpb24gSW50ZXJuYWxEZWNvZGVyQ2VzdTgob3B0aW9ucywgY29kZWMpIHtcbiAgICAgIHRoaXMuYWNjID0gMDtcbiAgICAgIHRoaXMuY29udEJ5dGVzID0gMDtcbiAgICAgIHRoaXMuYWNjQnl0ZXMgPSAwO1xuICAgICAgdGhpcy5kZWZhdWx0Q2hhclVuaWNvZGUgPSBjb2RlYy5kZWZhdWx0Q2hhclVuaWNvZGU7XG4gICAgfVxuICAgIEludGVybmFsRGVjb2RlckNlc3U4LnByb3RvdHlwZS53cml0ZSA9IGZ1bmN0aW9uKGJ1Zikge1xuICAgICAgdmFyIGFjYyA9IHRoaXMuYWNjLCBjb250Qnl0ZXMgPSB0aGlzLmNvbnRCeXRlcywgYWNjQnl0ZXMgPSB0aGlzLmFjY0J5dGVzLCByZXMgPSBcIlwiO1xuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBidWYubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgdmFyIGN1ckJ5dGUgPSBidWZbaV07XG4gICAgICAgIGlmICgoY3VyQnl0ZSAmIDE5MikgIT09IDEyOCkge1xuICAgICAgICAgIGlmIChjb250Qnl0ZXMgPiAwKSB7XG4gICAgICAgICAgICByZXMgKz0gdGhpcy5kZWZhdWx0Q2hhclVuaWNvZGU7XG4gICAgICAgICAgICBjb250Qnl0ZXMgPSAwO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoY3VyQnl0ZSA8IDEyOCkge1xuICAgICAgICAgICAgcmVzICs9IFN0cmluZy5mcm9tQ2hhckNvZGUoY3VyQnl0ZSk7XG4gICAgICAgICAgfSBlbHNlIGlmIChjdXJCeXRlIDwgMjI0KSB7XG4gICAgICAgICAgICBhY2MgPSBjdXJCeXRlICYgMzE7XG4gICAgICAgICAgICBjb250Qnl0ZXMgPSAxO1xuICAgICAgICAgICAgYWNjQnl0ZXMgPSAxO1xuICAgICAgICAgIH0gZWxzZSBpZiAoY3VyQnl0ZSA8IDI0MCkge1xuICAgICAgICAgICAgYWNjID0gY3VyQnl0ZSAmIDE1O1xuICAgICAgICAgICAgY29udEJ5dGVzID0gMjtcbiAgICAgICAgICAgIGFjY0J5dGVzID0gMTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmVzICs9IHRoaXMuZGVmYXVsdENoYXJVbmljb2RlO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpZiAoY29udEJ5dGVzID4gMCkge1xuICAgICAgICAgICAgYWNjID0gYWNjIDw8IDYgfCBjdXJCeXRlICYgNjM7XG4gICAgICAgICAgICBjb250Qnl0ZXMtLTtcbiAgICAgICAgICAgIGFjY0J5dGVzKys7XG4gICAgICAgICAgICBpZiAoY29udEJ5dGVzID09PSAwKSB7XG4gICAgICAgICAgICAgIGlmIChhY2NCeXRlcyA9PT0gMiAmJiBhY2MgPCAxMjggJiYgYWNjID4gMClcbiAgICAgICAgICAgICAgICByZXMgKz0gdGhpcy5kZWZhdWx0Q2hhclVuaWNvZGU7XG4gICAgICAgICAgICAgIGVsc2UgaWYgKGFjY0J5dGVzID09PSAzICYmIGFjYyA8IDIwNDgpXG4gICAgICAgICAgICAgICAgcmVzICs9IHRoaXMuZGVmYXVsdENoYXJVbmljb2RlO1xuICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgcmVzICs9IFN0cmluZy5mcm9tQ2hhckNvZGUoYWNjKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmVzICs9IHRoaXMuZGVmYXVsdENoYXJVbmljb2RlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgdGhpcy5hY2MgPSBhY2M7XG4gICAgICB0aGlzLmNvbnRCeXRlcyA9IGNvbnRCeXRlcztcbiAgICAgIHRoaXMuYWNjQnl0ZXMgPSBhY2NCeXRlcztcbiAgICAgIHJldHVybiByZXM7XG4gICAgfTtcbiAgICBJbnRlcm5hbERlY29kZXJDZXN1OC5wcm90b3R5cGUuZW5kID0gZnVuY3Rpb24oKSB7XG4gICAgICB2YXIgcmVzID0gMDtcbiAgICAgIGlmICh0aGlzLmNvbnRCeXRlcyA+IDApXG4gICAgICAgIHJlcyArPSB0aGlzLmRlZmF1bHRDaGFyVW5pY29kZTtcbiAgICAgIHJldHVybiByZXM7XG4gICAgfTtcbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9yYXctYm9keS9ub2RlX21vZHVsZXMvaWNvbnYtbGl0ZS9lbmNvZGluZ3MvdXRmMzIuanNcbnZhciByZXF1aXJlX3V0ZjMyID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL3Jhdy1ib2R5L25vZGVfbW9kdWxlcy9pY29udi1saXRlL2VuY29kaW5ncy91dGYzMi5qc1wiKGV4cG9ydHMyKSB7XG4gICAgXCJ1c2Ugc3RyaWN0XCI7XG4gICAgdmFyIEJ1ZmZlcjIgPSByZXF1aXJlX3NhZmVyKCkuQnVmZmVyO1xuICAgIGV4cG9ydHMyLl91dGYzMiA9IFV0ZjMyQ29kZWM7XG4gICAgZnVuY3Rpb24gVXRmMzJDb2RlYyhjb2RlY09wdGlvbnMsIGljb252KSB7XG4gICAgICB0aGlzLmljb252ID0gaWNvbnY7XG4gICAgICB0aGlzLmJvbUF3YXJlID0gdHJ1ZTtcbiAgICAgIHRoaXMuaXNMRSA9IGNvZGVjT3B0aW9ucy5pc0xFO1xuICAgIH1cbiAgICBleHBvcnRzMi51dGYzMmxlID0geyB0eXBlOiBcIl91dGYzMlwiLCBpc0xFOiB0cnVlIH07XG4gICAgZXhwb3J0czIudXRmMzJiZSA9IHsgdHlwZTogXCJfdXRmMzJcIiwgaXNMRTogZmFsc2UgfTtcbiAgICBleHBvcnRzMi51Y3M0bGUgPSBcInV0ZjMybGVcIjtcbiAgICBleHBvcnRzMi51Y3M0YmUgPSBcInV0ZjMyYmVcIjtcbiAgICBVdGYzMkNvZGVjLnByb3RvdHlwZS5lbmNvZGVyID0gVXRmMzJFbmNvZGVyO1xuICAgIFV0ZjMyQ29kZWMucHJvdG90eXBlLmRlY29kZXIgPSBVdGYzMkRlY29kZXI7XG4gICAgZnVuY3Rpb24gVXRmMzJFbmNvZGVyKG9wdGlvbnMsIGNvZGVjKSB7XG4gICAgICB0aGlzLmlzTEUgPSBjb2RlYy5pc0xFO1xuICAgICAgdGhpcy5oaWdoU3Vycm9nYXRlID0gMDtcbiAgICB9XG4gICAgVXRmMzJFbmNvZGVyLnByb3RvdHlwZS53cml0ZSA9IGZ1bmN0aW9uKHN0cikge1xuICAgICAgdmFyIHNyYyA9IEJ1ZmZlcjIuZnJvbShzdHIsIFwidWNzMlwiKTtcbiAgICAgIHZhciBkc3QgPSBCdWZmZXIyLmFsbG9jKHNyYy5sZW5ndGggKiAyKTtcbiAgICAgIHZhciB3cml0ZTMyID0gdGhpcy5pc0xFID8gZHN0LndyaXRlVUludDMyTEUgOiBkc3Qud3JpdGVVSW50MzJCRTtcbiAgICAgIHZhciBvZmZzZXQgPSAwO1xuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzcmMubGVuZ3RoOyBpICs9IDIpIHtcbiAgICAgICAgdmFyIGNvZGUgPSBzcmMucmVhZFVJbnQxNkxFKGkpO1xuICAgICAgICB2YXIgaXNIaWdoU3Vycm9nYXRlID0gNTUyOTYgPD0gY29kZSAmJiBjb2RlIDwgNTYzMjA7XG4gICAgICAgIHZhciBpc0xvd1N1cnJvZ2F0ZSA9IDU2MzIwIDw9IGNvZGUgJiYgY29kZSA8IDU3MzQ0O1xuICAgICAgICBpZiAodGhpcy5oaWdoU3Vycm9nYXRlKSB7XG4gICAgICAgICAgaWYgKGlzSGlnaFN1cnJvZ2F0ZSB8fCAhaXNMb3dTdXJyb2dhdGUpIHtcbiAgICAgICAgICAgIHdyaXRlMzIuY2FsbChkc3QsIHRoaXMuaGlnaFN1cnJvZ2F0ZSwgb2Zmc2V0KTtcbiAgICAgICAgICAgIG9mZnNldCArPSA0O1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB2YXIgY29kZXBvaW50ID0gKHRoaXMuaGlnaFN1cnJvZ2F0ZSAtIDU1Mjk2IDw8IDEwIHwgY29kZSAtIDU2MzIwKSArIDY1NTM2O1xuICAgICAgICAgICAgd3JpdGUzMi5jYWxsKGRzdCwgY29kZXBvaW50LCBvZmZzZXQpO1xuICAgICAgICAgICAgb2Zmc2V0ICs9IDQ7XG4gICAgICAgICAgICB0aGlzLmhpZ2hTdXJyb2dhdGUgPSAwO1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChpc0hpZ2hTdXJyb2dhdGUpXG4gICAgICAgICAgdGhpcy5oaWdoU3Vycm9nYXRlID0gY29kZTtcbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgd3JpdGUzMi5jYWxsKGRzdCwgY29kZSwgb2Zmc2V0KTtcbiAgICAgICAgICBvZmZzZXQgKz0gNDtcbiAgICAgICAgICB0aGlzLmhpZ2hTdXJyb2dhdGUgPSAwO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAob2Zmc2V0IDwgZHN0Lmxlbmd0aClcbiAgICAgICAgZHN0ID0gZHN0LnNsaWNlKDAsIG9mZnNldCk7XG4gICAgICByZXR1cm4gZHN0O1xuICAgIH07XG4gICAgVXRmMzJFbmNvZGVyLnByb3RvdHlwZS5lbmQgPSBmdW5jdGlvbigpIHtcbiAgICAgIGlmICghdGhpcy5oaWdoU3Vycm9nYXRlKVxuICAgICAgICByZXR1cm47XG4gICAgICB2YXIgYnVmID0gQnVmZmVyMi5hbGxvYyg0KTtcbiAgICAgIGlmICh0aGlzLmlzTEUpXG4gICAgICAgIGJ1Zi53cml0ZVVJbnQzMkxFKHRoaXMuaGlnaFN1cnJvZ2F0ZSwgMCk7XG4gICAgICBlbHNlXG4gICAgICAgIGJ1Zi53cml0ZVVJbnQzMkJFKHRoaXMuaGlnaFN1cnJvZ2F0ZSwgMCk7XG4gICAgICB0aGlzLmhpZ2hTdXJyb2dhdGUgPSAwO1xuICAgICAgcmV0dXJuIGJ1ZjtcbiAgICB9O1xuICAgIGZ1bmN0aW9uIFV0ZjMyRGVjb2RlcihvcHRpb25zLCBjb2RlYykge1xuICAgICAgdGhpcy5pc0xFID0gY29kZWMuaXNMRTtcbiAgICAgIHRoaXMuYmFkQ2hhciA9IGNvZGVjLmljb252LmRlZmF1bHRDaGFyVW5pY29kZS5jaGFyQ29kZUF0KDApO1xuICAgICAgdGhpcy5vdmVyZmxvdyA9IFtdO1xuICAgIH1cbiAgICBVdGYzMkRlY29kZXIucHJvdG90eXBlLndyaXRlID0gZnVuY3Rpb24oc3JjKSB7XG4gICAgICBpZiAoc3JjLmxlbmd0aCA9PT0gMClcbiAgICAgICAgcmV0dXJuIFwiXCI7XG4gICAgICB2YXIgaSA9IDA7XG4gICAgICB2YXIgY29kZXBvaW50ID0gMDtcbiAgICAgIHZhciBkc3QgPSBCdWZmZXIyLmFsbG9jKHNyYy5sZW5ndGggKyA0KTtcbiAgICAgIHZhciBvZmZzZXQgPSAwO1xuICAgICAgdmFyIGlzTEUgPSB0aGlzLmlzTEU7XG4gICAgICB2YXIgb3ZlcmZsb3cgPSB0aGlzLm92ZXJmbG93O1xuICAgICAgdmFyIGJhZENoYXIgPSB0aGlzLmJhZENoYXI7XG4gICAgICBpZiAob3ZlcmZsb3cubGVuZ3RoID4gMCkge1xuICAgICAgICBmb3IgKDsgaSA8IHNyYy5sZW5ndGggJiYgb3ZlcmZsb3cubGVuZ3RoIDwgNDsgaSsrKVxuICAgICAgICAgIG92ZXJmbG93LnB1c2goc3JjW2ldKTtcbiAgICAgICAgaWYgKG92ZXJmbG93Lmxlbmd0aCA9PT0gNCkge1xuICAgICAgICAgIGlmIChpc0xFKSB7XG4gICAgICAgICAgICBjb2RlcG9pbnQgPSBvdmVyZmxvd1tpXSB8IG92ZXJmbG93W2kgKyAxXSA8PCA4IHwgb3ZlcmZsb3dbaSArIDJdIDw8IDE2IHwgb3ZlcmZsb3dbaSArIDNdIDw8IDI0O1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb2RlcG9pbnQgPSBvdmVyZmxvd1tpICsgM10gfCBvdmVyZmxvd1tpICsgMl0gPDwgOCB8IG92ZXJmbG93W2kgKyAxXSA8PCAxNiB8IG92ZXJmbG93W2ldIDw8IDI0O1xuICAgICAgICAgIH1cbiAgICAgICAgICBvdmVyZmxvdy5sZW5ndGggPSAwO1xuICAgICAgICAgIG9mZnNldCA9IF93cml0ZUNvZGVwb2ludChkc3QsIG9mZnNldCwgY29kZXBvaW50LCBiYWRDaGFyKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgZm9yICg7IGkgPCBzcmMubGVuZ3RoIC0gMzsgaSArPSA0KSB7XG4gICAgICAgIGlmIChpc0xFKSB7XG4gICAgICAgICAgY29kZXBvaW50ID0gc3JjW2ldIHwgc3JjW2kgKyAxXSA8PCA4IHwgc3JjW2kgKyAyXSA8PCAxNiB8IHNyY1tpICsgM10gPDwgMjQ7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29kZXBvaW50ID0gc3JjW2kgKyAzXSB8IHNyY1tpICsgMl0gPDwgOCB8IHNyY1tpICsgMV0gPDwgMTYgfCBzcmNbaV0gPDwgMjQ7XG4gICAgICAgIH1cbiAgICAgICAgb2Zmc2V0ID0gX3dyaXRlQ29kZXBvaW50KGRzdCwgb2Zmc2V0LCBjb2RlcG9pbnQsIGJhZENoYXIpO1xuICAgICAgfVxuICAgICAgZm9yICg7IGkgPCBzcmMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgb3ZlcmZsb3cucHVzaChzcmNbaV0pO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGRzdC5zbGljZSgwLCBvZmZzZXQpLnRvU3RyaW5nKFwidWNzMlwiKTtcbiAgICB9O1xuICAgIGZ1bmN0aW9uIF93cml0ZUNvZGVwb2ludChkc3QsIG9mZnNldCwgY29kZXBvaW50LCBiYWRDaGFyKSB7XG4gICAgICBpZiAoY29kZXBvaW50IDwgMCB8fCBjb2RlcG9pbnQgPiAxMTE0MTExKSB7XG4gICAgICAgIGNvZGVwb2ludCA9IGJhZENoYXI7XG4gICAgICB9XG4gICAgICBpZiAoY29kZXBvaW50ID49IDY1NTM2KSB7XG4gICAgICAgIGNvZGVwb2ludCAtPSA2NTUzNjtcbiAgICAgICAgdmFyIGhpZ2ggPSA1NTI5NiB8IGNvZGVwb2ludCA+PiAxMDtcbiAgICAgICAgZHN0W29mZnNldCsrXSA9IGhpZ2ggJiAyNTU7XG4gICAgICAgIGRzdFtvZmZzZXQrK10gPSBoaWdoID4+IDg7XG4gICAgICAgIHZhciBjb2RlcG9pbnQgPSA1NjMyMCB8IGNvZGVwb2ludCAmIDEwMjM7XG4gICAgICB9XG4gICAgICBkc3Rbb2Zmc2V0KytdID0gY29kZXBvaW50ICYgMjU1O1xuICAgICAgZHN0W29mZnNldCsrXSA9IGNvZGVwb2ludCA+PiA4O1xuICAgICAgcmV0dXJuIG9mZnNldDtcbiAgICB9XG4gICAgVXRmMzJEZWNvZGVyLnByb3RvdHlwZS5lbmQgPSBmdW5jdGlvbigpIHtcbiAgICAgIHRoaXMub3ZlcmZsb3cubGVuZ3RoID0gMDtcbiAgICB9O1xuICAgIGV4cG9ydHMyLnV0ZjMyID0gVXRmMzJBdXRvQ29kZWM7XG4gICAgZXhwb3J0czIudWNzNCA9IFwidXRmMzJcIjtcbiAgICBmdW5jdGlvbiBVdGYzMkF1dG9Db2RlYyhvcHRpb25zLCBpY29udikge1xuICAgICAgdGhpcy5pY29udiA9IGljb252O1xuICAgIH1cbiAgICBVdGYzMkF1dG9Db2RlYy5wcm90b3R5cGUuZW5jb2RlciA9IFV0ZjMyQXV0b0VuY29kZXI7XG4gICAgVXRmMzJBdXRvQ29kZWMucHJvdG90eXBlLmRlY29kZXIgPSBVdGYzMkF1dG9EZWNvZGVyO1xuICAgIGZ1bmN0aW9uIFV0ZjMyQXV0b0VuY29kZXIob3B0aW9ucywgY29kZWMpIHtcbiAgICAgIG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9O1xuICAgICAgaWYgKG9wdGlvbnMuYWRkQk9NID09PSB2b2lkIDApXG4gICAgICAgIG9wdGlvbnMuYWRkQk9NID0gdHJ1ZTtcbiAgICAgIHRoaXMuZW5jb2RlciA9IGNvZGVjLmljb252LmdldEVuY29kZXIob3B0aW9ucy5kZWZhdWx0RW5jb2RpbmcgfHwgXCJ1dGYtMzJsZVwiLCBvcHRpb25zKTtcbiAgICB9XG4gICAgVXRmMzJBdXRvRW5jb2Rlci5wcm90b3R5cGUud3JpdGUgPSBmdW5jdGlvbihzdHIpIHtcbiAgICAgIHJldHVybiB0aGlzLmVuY29kZXIud3JpdGUoc3RyKTtcbiAgICB9O1xuICAgIFV0ZjMyQXV0b0VuY29kZXIucHJvdG90eXBlLmVuZCA9IGZ1bmN0aW9uKCkge1xuICAgICAgcmV0dXJuIHRoaXMuZW5jb2Rlci5lbmQoKTtcbiAgICB9O1xuICAgIGZ1bmN0aW9uIFV0ZjMyQXV0b0RlY29kZXIob3B0aW9ucywgY29kZWMpIHtcbiAgICAgIHRoaXMuZGVjb2RlciA9IG51bGw7XG4gICAgICB0aGlzLmluaXRpYWxCdWZzID0gW107XG4gICAgICB0aGlzLmluaXRpYWxCdWZzTGVuID0gMDtcbiAgICAgIHRoaXMub3B0aW9ucyA9IG9wdGlvbnMgfHwge307XG4gICAgICB0aGlzLmljb252ID0gY29kZWMuaWNvbnY7XG4gICAgfVxuICAgIFV0ZjMyQXV0b0RlY29kZXIucHJvdG90eXBlLndyaXRlID0gZnVuY3Rpb24oYnVmKSB7XG4gICAgICBpZiAoIXRoaXMuZGVjb2Rlcikge1xuICAgICAgICB0aGlzLmluaXRpYWxCdWZzLnB1c2goYnVmKTtcbiAgICAgICAgdGhpcy5pbml0aWFsQnVmc0xlbiArPSBidWYubGVuZ3RoO1xuICAgICAgICBpZiAodGhpcy5pbml0aWFsQnVmc0xlbiA8IDMyKVxuICAgICAgICAgIHJldHVybiBcIlwiO1xuICAgICAgICB2YXIgZW5jb2RpbmcgPSBkZXRlY3RFbmNvZGluZyh0aGlzLmluaXRpYWxCdWZzLCB0aGlzLm9wdGlvbnMuZGVmYXVsdEVuY29kaW5nKTtcbiAgICAgICAgdGhpcy5kZWNvZGVyID0gdGhpcy5pY29udi5nZXREZWNvZGVyKGVuY29kaW5nLCB0aGlzLm9wdGlvbnMpO1xuICAgICAgICB2YXIgcmVzU3RyID0gXCJcIjtcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLmluaXRpYWxCdWZzLmxlbmd0aDsgaSsrKVxuICAgICAgICAgIHJlc1N0ciArPSB0aGlzLmRlY29kZXIud3JpdGUodGhpcy5pbml0aWFsQnVmc1tpXSk7XG4gICAgICAgIHRoaXMuaW5pdGlhbEJ1ZnMubGVuZ3RoID0gdGhpcy5pbml0aWFsQnVmc0xlbiA9IDA7XG4gICAgICAgIHJldHVybiByZXNTdHI7XG4gICAgICB9XG4gICAgICByZXR1cm4gdGhpcy5kZWNvZGVyLndyaXRlKGJ1Zik7XG4gICAgfTtcbiAgICBVdGYzMkF1dG9EZWNvZGVyLnByb3RvdHlwZS5lbmQgPSBmdW5jdGlvbigpIHtcbiAgICAgIGlmICghdGhpcy5kZWNvZGVyKSB7XG4gICAgICAgIHZhciBlbmNvZGluZyA9IGRldGVjdEVuY29kaW5nKHRoaXMuaW5pdGlhbEJ1ZnMsIHRoaXMub3B0aW9ucy5kZWZhdWx0RW5jb2RpbmcpO1xuICAgICAgICB0aGlzLmRlY29kZXIgPSB0aGlzLmljb252LmdldERlY29kZXIoZW5jb2RpbmcsIHRoaXMub3B0aW9ucyk7XG4gICAgICAgIHZhciByZXNTdHIgPSBcIlwiO1xuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuaW5pdGlhbEJ1ZnMubGVuZ3RoOyBpKyspXG4gICAgICAgICAgcmVzU3RyICs9IHRoaXMuZGVjb2Rlci53cml0ZSh0aGlzLmluaXRpYWxCdWZzW2ldKTtcbiAgICAgICAgdmFyIHRyYWlsID0gdGhpcy5kZWNvZGVyLmVuZCgpO1xuICAgICAgICBpZiAodHJhaWwpXG4gICAgICAgICAgcmVzU3RyICs9IHRyYWlsO1xuICAgICAgICB0aGlzLmluaXRpYWxCdWZzLmxlbmd0aCA9IHRoaXMuaW5pdGlhbEJ1ZnNMZW4gPSAwO1xuICAgICAgICByZXR1cm4gcmVzU3RyO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRoaXMuZGVjb2Rlci5lbmQoKTtcbiAgICB9O1xuICAgIGZ1bmN0aW9uIGRldGVjdEVuY29kaW5nKGJ1ZnMsIGRlZmF1bHRFbmNvZGluZykge1xuICAgICAgdmFyIGIgPSBbXTtcbiAgICAgIHZhciBjaGFyc1Byb2Nlc3NlZCA9IDA7XG4gICAgICB2YXIgaW52YWxpZExFID0gMCwgaW52YWxpZEJFID0gMDtcbiAgICAgIHZhciBibXBDaGFyc0xFID0gMCwgYm1wQ2hhcnNCRSA9IDA7XG4gICAgICBvdXRlcl9sb29wOlxuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGJ1ZnMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICB2YXIgYnVmID0gYnVmc1tpXTtcbiAgICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8IGJ1Zi5sZW5ndGg7IGorKykge1xuICAgICAgICAgICAgYi5wdXNoKGJ1ZltqXSk7XG4gICAgICAgICAgICBpZiAoYi5sZW5ndGggPT09IDQpIHtcbiAgICAgICAgICAgICAgaWYgKGNoYXJzUHJvY2Vzc2VkID09PSAwKSB7XG4gICAgICAgICAgICAgICAgaWYgKGJbMF0gPT09IDI1NSAmJiBiWzFdID09PSAyNTQgJiYgYlsyXSA9PT0gMCAmJiBiWzNdID09PSAwKSB7XG4gICAgICAgICAgICAgICAgICByZXR1cm4gXCJ1dGYtMzJsZVwiO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoYlswXSA9PT0gMCAmJiBiWzFdID09PSAwICYmIGJbMl0gPT09IDI1NCAmJiBiWzNdID09PSAyNTUpIHtcbiAgICAgICAgICAgICAgICAgIHJldHVybiBcInV0Zi0zMmJlXCI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGlmIChiWzBdICE9PSAwIHx8IGJbMV0gPiAxNikgaW52YWxpZEJFKys7XG4gICAgICAgICAgICAgIGlmIChiWzNdICE9PSAwIHx8IGJbMl0gPiAxNikgaW52YWxpZExFKys7XG4gICAgICAgICAgICAgIGlmIChiWzBdID09PSAwICYmIGJbMV0gPT09IDAgJiYgKGJbMl0gIT09IDAgfHwgYlszXSAhPT0gMCkpIGJtcENoYXJzQkUrKztcbiAgICAgICAgICAgICAgaWYgKChiWzBdICE9PSAwIHx8IGJbMV0gIT09IDApICYmIGJbMl0gPT09IDAgJiYgYlszXSA9PT0gMCkgYm1wQ2hhcnNMRSsrO1xuICAgICAgICAgICAgICBiLmxlbmd0aCA9IDA7XG4gICAgICAgICAgICAgIGNoYXJzUHJvY2Vzc2VkKys7XG4gICAgICAgICAgICAgIGlmIChjaGFyc1Byb2Nlc3NlZCA+PSAxMDApIHtcbiAgICAgICAgICAgICAgICBicmVhayBvdXRlcl9sb29wO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICBpZiAoYm1wQ2hhcnNCRSAtIGludmFsaWRCRSA+IGJtcENoYXJzTEUgLSBpbnZhbGlkTEUpIHJldHVybiBcInV0Zi0zMmJlXCI7XG4gICAgICBpZiAoYm1wQ2hhcnNCRSAtIGludmFsaWRCRSA8IGJtcENoYXJzTEUgLSBpbnZhbGlkTEUpIHJldHVybiBcInV0Zi0zMmxlXCI7XG4gICAgICByZXR1cm4gZGVmYXVsdEVuY29kaW5nIHx8IFwidXRmLTMybGVcIjtcbiAgICB9XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvcmF3LWJvZHkvbm9kZV9tb2R1bGVzL2ljb252LWxpdGUvZW5jb2RpbmdzL3V0ZjE2LmpzXG52YXIgcmVxdWlyZV91dGYxNiA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9yYXctYm9keS9ub2RlX21vZHVsZXMvaWNvbnYtbGl0ZS9lbmNvZGluZ3MvdXRmMTYuanNcIihleHBvcnRzMikge1xuICAgIFwidXNlIHN0cmljdFwiO1xuICAgIHZhciBCdWZmZXIyID0gcmVxdWlyZV9zYWZlcigpLkJ1ZmZlcjtcbiAgICBleHBvcnRzMi51dGYxNmJlID0gVXRmMTZCRUNvZGVjO1xuICAgIGZ1bmN0aW9uIFV0ZjE2QkVDb2RlYygpIHtcbiAgICB9XG4gICAgVXRmMTZCRUNvZGVjLnByb3RvdHlwZS5lbmNvZGVyID0gVXRmMTZCRUVuY29kZXI7XG4gICAgVXRmMTZCRUNvZGVjLnByb3RvdHlwZS5kZWNvZGVyID0gVXRmMTZCRURlY29kZXI7XG4gICAgVXRmMTZCRUNvZGVjLnByb3RvdHlwZS5ib21Bd2FyZSA9IHRydWU7XG4gICAgZnVuY3Rpb24gVXRmMTZCRUVuY29kZXIoKSB7XG4gICAgfVxuICAgIFV0ZjE2QkVFbmNvZGVyLnByb3RvdHlwZS53cml0ZSA9IGZ1bmN0aW9uKHN0cikge1xuICAgICAgdmFyIGJ1ZiA9IEJ1ZmZlcjIuZnJvbShzdHIsIFwidWNzMlwiKTtcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYnVmLmxlbmd0aDsgaSArPSAyKSB7XG4gICAgICAgIHZhciB0bXAgPSBidWZbaV07XG4gICAgICAgIGJ1ZltpXSA9IGJ1ZltpICsgMV07XG4gICAgICAgIGJ1ZltpICsgMV0gPSB0bXA7XG4gICAgICB9XG4gICAgICByZXR1cm4gYnVmO1xuICAgIH07XG4gICAgVXRmMTZCRUVuY29kZXIucHJvdG90eXBlLmVuZCA9IGZ1bmN0aW9uKCkge1xuICAgIH07XG4gICAgZnVuY3Rpb24gVXRmMTZCRURlY29kZXIoKSB7XG4gICAgICB0aGlzLm92ZXJmbG93Qnl0ZSA9IC0xO1xuICAgIH1cbiAgICBVdGYxNkJFRGVjb2Rlci5wcm90b3R5cGUud3JpdGUgPSBmdW5jdGlvbihidWYpIHtcbiAgICAgIGlmIChidWYubGVuZ3RoID09IDApXG4gICAgICAgIHJldHVybiBcIlwiO1xuICAgICAgdmFyIGJ1ZjIgPSBCdWZmZXIyLmFsbG9jKGJ1Zi5sZW5ndGggKyAxKSwgaSA9IDAsIGogPSAwO1xuICAgICAgaWYgKHRoaXMub3ZlcmZsb3dCeXRlICE9PSAtMSkge1xuICAgICAgICBidWYyWzBdID0gYnVmWzBdO1xuICAgICAgICBidWYyWzFdID0gdGhpcy5vdmVyZmxvd0J5dGU7XG4gICAgICAgIGkgPSAxO1xuICAgICAgICBqID0gMjtcbiAgICAgIH1cbiAgICAgIGZvciAoOyBpIDwgYnVmLmxlbmd0aCAtIDE7IGkgKz0gMiwgaiArPSAyKSB7XG4gICAgICAgIGJ1ZjJbal0gPSBidWZbaSArIDFdO1xuICAgICAgICBidWYyW2ogKyAxXSA9IGJ1ZltpXTtcbiAgICAgIH1cbiAgICAgIHRoaXMub3ZlcmZsb3dCeXRlID0gaSA9PSBidWYubGVuZ3RoIC0gMSA/IGJ1ZltidWYubGVuZ3RoIC0gMV0gOiAtMTtcbiAgICAgIHJldHVybiBidWYyLnNsaWNlKDAsIGopLnRvU3RyaW5nKFwidWNzMlwiKTtcbiAgICB9O1xuICAgIFV0ZjE2QkVEZWNvZGVyLnByb3RvdHlwZS5lbmQgPSBmdW5jdGlvbigpIHtcbiAgICAgIHRoaXMub3ZlcmZsb3dCeXRlID0gLTE7XG4gICAgfTtcbiAgICBleHBvcnRzMi51dGYxNiA9IFV0ZjE2Q29kZWM7XG4gICAgZnVuY3Rpb24gVXRmMTZDb2RlYyhjb2RlY09wdGlvbnMsIGljb252KSB7XG4gICAgICB0aGlzLmljb252ID0gaWNvbnY7XG4gICAgfVxuICAgIFV0ZjE2Q29kZWMucHJvdG90eXBlLmVuY29kZXIgPSBVdGYxNkVuY29kZXI7XG4gICAgVXRmMTZDb2RlYy5wcm90b3R5cGUuZGVjb2RlciA9IFV0ZjE2RGVjb2RlcjtcbiAgICBmdW5jdGlvbiBVdGYxNkVuY29kZXIob3B0aW9ucywgY29kZWMpIHtcbiAgICAgIG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9O1xuICAgICAgaWYgKG9wdGlvbnMuYWRkQk9NID09PSB2b2lkIDApXG4gICAgICAgIG9wdGlvbnMuYWRkQk9NID0gdHJ1ZTtcbiAgICAgIHRoaXMuZW5jb2RlciA9IGNvZGVjLmljb252LmdldEVuY29kZXIoXCJ1dGYtMTZsZVwiLCBvcHRpb25zKTtcbiAgICB9XG4gICAgVXRmMTZFbmNvZGVyLnByb3RvdHlwZS53cml0ZSA9IGZ1bmN0aW9uKHN0cikge1xuICAgICAgcmV0dXJuIHRoaXMuZW5jb2Rlci53cml0ZShzdHIpO1xuICAgIH07XG4gICAgVXRmMTZFbmNvZGVyLnByb3RvdHlwZS5lbmQgPSBmdW5jdGlvbigpIHtcbiAgICAgIHJldHVybiB0aGlzLmVuY29kZXIuZW5kKCk7XG4gICAgfTtcbiAgICBmdW5jdGlvbiBVdGYxNkRlY29kZXIob3B0aW9ucywgY29kZWMpIHtcbiAgICAgIHRoaXMuZGVjb2RlciA9IG51bGw7XG4gICAgICB0aGlzLmluaXRpYWxCdWZzID0gW107XG4gICAgICB0aGlzLmluaXRpYWxCdWZzTGVuID0gMDtcbiAgICAgIHRoaXMub3B0aW9ucyA9IG9wdGlvbnMgfHwge307XG4gICAgICB0aGlzLmljb252ID0gY29kZWMuaWNvbnY7XG4gICAgfVxuICAgIFV0ZjE2RGVjb2Rlci5wcm90b3R5cGUud3JpdGUgPSBmdW5jdGlvbihidWYpIHtcbiAgICAgIGlmICghdGhpcy5kZWNvZGVyKSB7XG4gICAgICAgIHRoaXMuaW5pdGlhbEJ1ZnMucHVzaChidWYpO1xuICAgICAgICB0aGlzLmluaXRpYWxCdWZzTGVuICs9IGJ1Zi5sZW5ndGg7XG4gICAgICAgIGlmICh0aGlzLmluaXRpYWxCdWZzTGVuIDwgMTYpXG4gICAgICAgICAgcmV0dXJuIFwiXCI7XG4gICAgICAgIHZhciBlbmNvZGluZyA9IGRldGVjdEVuY29kaW5nKHRoaXMuaW5pdGlhbEJ1ZnMsIHRoaXMub3B0aW9ucy5kZWZhdWx0RW5jb2RpbmcpO1xuICAgICAgICB0aGlzLmRlY29kZXIgPSB0aGlzLmljb252LmdldERlY29kZXIoZW5jb2RpbmcsIHRoaXMub3B0aW9ucyk7XG4gICAgICAgIHZhciByZXNTdHIgPSBcIlwiO1xuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuaW5pdGlhbEJ1ZnMubGVuZ3RoOyBpKyspXG4gICAgICAgICAgcmVzU3RyICs9IHRoaXMuZGVjb2Rlci53cml0ZSh0aGlzLmluaXRpYWxCdWZzW2ldKTtcbiAgICAgICAgdGhpcy5pbml0aWFsQnVmcy5sZW5ndGggPSB0aGlzLmluaXRpYWxCdWZzTGVuID0gMDtcbiAgICAgICAgcmV0dXJuIHJlc1N0cjtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0aGlzLmRlY29kZXIud3JpdGUoYnVmKTtcbiAgICB9O1xuICAgIFV0ZjE2RGVjb2Rlci5wcm90b3R5cGUuZW5kID0gZnVuY3Rpb24oKSB7XG4gICAgICBpZiAoIXRoaXMuZGVjb2Rlcikge1xuICAgICAgICB2YXIgZW5jb2RpbmcgPSBkZXRlY3RFbmNvZGluZyh0aGlzLmluaXRpYWxCdWZzLCB0aGlzLm9wdGlvbnMuZGVmYXVsdEVuY29kaW5nKTtcbiAgICAgICAgdGhpcy5kZWNvZGVyID0gdGhpcy5pY29udi5nZXREZWNvZGVyKGVuY29kaW5nLCB0aGlzLm9wdGlvbnMpO1xuICAgICAgICB2YXIgcmVzU3RyID0gXCJcIjtcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLmluaXRpYWxCdWZzLmxlbmd0aDsgaSsrKVxuICAgICAgICAgIHJlc1N0ciArPSB0aGlzLmRlY29kZXIud3JpdGUodGhpcy5pbml0aWFsQnVmc1tpXSk7XG4gICAgICAgIHZhciB0cmFpbCA9IHRoaXMuZGVjb2Rlci5lbmQoKTtcbiAgICAgICAgaWYgKHRyYWlsKVxuICAgICAgICAgIHJlc1N0ciArPSB0cmFpbDtcbiAgICAgICAgdGhpcy5pbml0aWFsQnVmcy5sZW5ndGggPSB0aGlzLmluaXRpYWxCdWZzTGVuID0gMDtcbiAgICAgICAgcmV0dXJuIHJlc1N0cjtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0aGlzLmRlY29kZXIuZW5kKCk7XG4gICAgfTtcbiAgICBmdW5jdGlvbiBkZXRlY3RFbmNvZGluZyhidWZzLCBkZWZhdWx0RW5jb2RpbmcpIHtcbiAgICAgIHZhciBiID0gW107XG4gICAgICB2YXIgY2hhcnNQcm9jZXNzZWQgPSAwO1xuICAgICAgdmFyIGFzY2lpQ2hhcnNMRSA9IDAsIGFzY2lpQ2hhcnNCRSA9IDA7XG4gICAgICBvdXRlcl9sb29wOlxuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGJ1ZnMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICB2YXIgYnVmID0gYnVmc1tpXTtcbiAgICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8IGJ1Zi5sZW5ndGg7IGorKykge1xuICAgICAgICAgICAgYi5wdXNoKGJ1ZltqXSk7XG4gICAgICAgICAgICBpZiAoYi5sZW5ndGggPT09IDIpIHtcbiAgICAgICAgICAgICAgaWYgKGNoYXJzUHJvY2Vzc2VkID09PSAwKSB7XG4gICAgICAgICAgICAgICAgaWYgKGJbMF0gPT09IDI1NSAmJiBiWzFdID09PSAyNTQpIHJldHVybiBcInV0Zi0xNmxlXCI7XG4gICAgICAgICAgICAgICAgaWYgKGJbMF0gPT09IDI1NCAmJiBiWzFdID09PSAyNTUpIHJldHVybiBcInV0Zi0xNmJlXCI7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgaWYgKGJbMF0gPT09IDAgJiYgYlsxXSAhPT0gMCkgYXNjaWlDaGFyc0JFKys7XG4gICAgICAgICAgICAgIGlmIChiWzBdICE9PSAwICYmIGJbMV0gPT09IDApIGFzY2lpQ2hhcnNMRSsrO1xuICAgICAgICAgICAgICBiLmxlbmd0aCA9IDA7XG4gICAgICAgICAgICAgIGNoYXJzUHJvY2Vzc2VkKys7XG4gICAgICAgICAgICAgIGlmIChjaGFyc1Byb2Nlc3NlZCA+PSAxMDApIHtcbiAgICAgICAgICAgICAgICBicmVhayBvdXRlcl9sb29wO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICBpZiAoYXNjaWlDaGFyc0JFID4gYXNjaWlDaGFyc0xFKSByZXR1cm4gXCJ1dGYtMTZiZVwiO1xuICAgICAgaWYgKGFzY2lpQ2hhcnNCRSA8IGFzY2lpQ2hhcnNMRSkgcmV0dXJuIFwidXRmLTE2bGVcIjtcbiAgICAgIHJldHVybiBkZWZhdWx0RW5jb2RpbmcgfHwgXCJ1dGYtMTZsZVwiO1xuICAgIH1cbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9yYXctYm9keS9ub2RlX21vZHVsZXMvaWNvbnYtbGl0ZS9lbmNvZGluZ3MvdXRmNy5qc1xudmFyIHJlcXVpcmVfdXRmNyA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9yYXctYm9keS9ub2RlX21vZHVsZXMvaWNvbnYtbGl0ZS9lbmNvZGluZ3MvdXRmNy5qc1wiKGV4cG9ydHMyKSB7XG4gICAgXCJ1c2Ugc3RyaWN0XCI7XG4gICAgdmFyIEJ1ZmZlcjIgPSByZXF1aXJlX3NhZmVyKCkuQnVmZmVyO1xuICAgIGV4cG9ydHMyLnV0ZjcgPSBVdGY3Q29kZWM7XG4gICAgZXhwb3J0czIudW5pY29kZTExdXRmNyA9IFwidXRmN1wiO1xuICAgIGZ1bmN0aW9uIFV0ZjdDb2RlYyhjb2RlY09wdGlvbnMsIGljb252KSB7XG4gICAgICB0aGlzLmljb252ID0gaWNvbnY7XG4gICAgfVxuICAgIFV0ZjdDb2RlYy5wcm90b3R5cGUuZW5jb2RlciA9IFV0ZjdFbmNvZGVyO1xuICAgIFV0ZjdDb2RlYy5wcm90b3R5cGUuZGVjb2RlciA9IFV0ZjdEZWNvZGVyO1xuICAgIFV0ZjdDb2RlYy5wcm90b3R5cGUuYm9tQXdhcmUgPSB0cnVlO1xuICAgIHZhciBub25EaXJlY3RDaGFycyA9IC9bXkEtWmEtejAtOSdcXChcXCksLVxcLlxcLzpcXD8gXFxuXFxyXFx0XSsvZztcbiAgICBmdW5jdGlvbiBVdGY3RW5jb2RlcihvcHRpb25zLCBjb2RlYykge1xuICAgICAgdGhpcy5pY29udiA9IGNvZGVjLmljb252O1xuICAgIH1cbiAgICBVdGY3RW5jb2Rlci5wcm90b3R5cGUud3JpdGUgPSBmdW5jdGlvbihzdHIpIHtcbiAgICAgIHJldHVybiBCdWZmZXIyLmZyb20oc3RyLnJlcGxhY2Uobm9uRGlyZWN0Q2hhcnMsIGZ1bmN0aW9uKGNodW5rKSB7XG4gICAgICAgIHJldHVybiBcIitcIiArIChjaHVuayA9PT0gXCIrXCIgPyBcIlwiIDogdGhpcy5pY29udi5lbmNvZGUoY2h1bmssIFwidXRmMTYtYmVcIikudG9TdHJpbmcoXCJiYXNlNjRcIikucmVwbGFjZSgvPSskLywgXCJcIikpICsgXCItXCI7XG4gICAgICB9LmJpbmQodGhpcykpKTtcbiAgICB9O1xuICAgIFV0ZjdFbmNvZGVyLnByb3RvdHlwZS5lbmQgPSBmdW5jdGlvbigpIHtcbiAgICB9O1xuICAgIGZ1bmN0aW9uIFV0ZjdEZWNvZGVyKG9wdGlvbnMsIGNvZGVjKSB7XG4gICAgICB0aGlzLmljb252ID0gY29kZWMuaWNvbnY7XG4gICAgICB0aGlzLmluQmFzZTY0ID0gZmFsc2U7XG4gICAgICB0aGlzLmJhc2U2NEFjY3VtID0gXCJcIjtcbiAgICB9XG4gICAgdmFyIGJhc2U2NFJlZ2V4MiA9IC9bQS1aYS16MC05XFwvK10vO1xuICAgIHZhciBiYXNlNjRDaGFycyA9IFtdO1xuICAgIGZvciAoaSA9IDA7IGkgPCAyNTY7IGkrKylcbiAgICAgIGJhc2U2NENoYXJzW2ldID0gYmFzZTY0UmVnZXgyLnRlc3QoU3RyaW5nLmZyb21DaGFyQ29kZShpKSk7XG4gICAgdmFyIGk7XG4gICAgdmFyIHBsdXNDaGFyID0gXCIrXCIuY2hhckNvZGVBdCgwKTtcbiAgICB2YXIgbWludXNDaGFyID0gXCItXCIuY2hhckNvZGVBdCgwKTtcbiAgICB2YXIgYW5kQ2hhciA9IFwiJlwiLmNoYXJDb2RlQXQoMCk7XG4gICAgVXRmN0RlY29kZXIucHJvdG90eXBlLndyaXRlID0gZnVuY3Rpb24oYnVmKSB7XG4gICAgICB2YXIgcmVzID0gXCJcIiwgbGFzdEkgPSAwLCBpbkJhc2U2NCA9IHRoaXMuaW5CYXNlNjQsIGJhc2U2NEFjY3VtID0gdGhpcy5iYXNlNjRBY2N1bTtcbiAgICAgIGZvciAodmFyIGkyID0gMDsgaTIgPCBidWYubGVuZ3RoOyBpMisrKSB7XG4gICAgICAgIGlmICghaW5CYXNlNjQpIHtcbiAgICAgICAgICBpZiAoYnVmW2kyXSA9PSBwbHVzQ2hhcikge1xuICAgICAgICAgICAgcmVzICs9IHRoaXMuaWNvbnYuZGVjb2RlKGJ1Zi5zbGljZShsYXN0SSwgaTIpLCBcImFzY2lpXCIpO1xuICAgICAgICAgICAgbGFzdEkgPSBpMiArIDE7XG4gICAgICAgICAgICBpbkJhc2U2NCA9IHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGlmICghYmFzZTY0Q2hhcnNbYnVmW2kyXV0pIHtcbiAgICAgICAgICAgIGlmIChpMiA9PSBsYXN0SSAmJiBidWZbaTJdID09IG1pbnVzQ2hhcikge1xuICAgICAgICAgICAgICByZXMgKz0gXCIrXCI7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICB2YXIgYjY0c3RyID0gYmFzZTY0QWNjdW0gKyB0aGlzLmljb252LmRlY29kZShidWYuc2xpY2UobGFzdEksIGkyKSwgXCJhc2NpaVwiKTtcbiAgICAgICAgICAgICAgcmVzICs9IHRoaXMuaWNvbnYuZGVjb2RlKEJ1ZmZlcjIuZnJvbShiNjRzdHIsIFwiYmFzZTY0XCIpLCBcInV0ZjE2LWJlXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGJ1ZltpMl0gIT0gbWludXNDaGFyKVxuICAgICAgICAgICAgICBpMi0tO1xuICAgICAgICAgICAgbGFzdEkgPSBpMiArIDE7XG4gICAgICAgICAgICBpbkJhc2U2NCA9IGZhbHNlO1xuICAgICAgICAgICAgYmFzZTY0QWNjdW0gPSBcIlwiO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKCFpbkJhc2U2NCkge1xuICAgICAgICByZXMgKz0gdGhpcy5pY29udi5kZWNvZGUoYnVmLnNsaWNlKGxhc3RJKSwgXCJhc2NpaVwiKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHZhciBiNjRzdHIgPSBiYXNlNjRBY2N1bSArIHRoaXMuaWNvbnYuZGVjb2RlKGJ1Zi5zbGljZShsYXN0SSksIFwiYXNjaWlcIik7XG4gICAgICAgIHZhciBjYW5CZURlY29kZWQgPSBiNjRzdHIubGVuZ3RoIC0gYjY0c3RyLmxlbmd0aCAlIDg7XG4gICAgICAgIGJhc2U2NEFjY3VtID0gYjY0c3RyLnNsaWNlKGNhbkJlRGVjb2RlZCk7XG4gICAgICAgIGI2NHN0ciA9IGI2NHN0ci5zbGljZSgwLCBjYW5CZURlY29kZWQpO1xuICAgICAgICByZXMgKz0gdGhpcy5pY29udi5kZWNvZGUoQnVmZmVyMi5mcm9tKGI2NHN0ciwgXCJiYXNlNjRcIiksIFwidXRmMTYtYmVcIik7XG4gICAgICB9XG4gICAgICB0aGlzLmluQmFzZTY0ID0gaW5CYXNlNjQ7XG4gICAgICB0aGlzLmJhc2U2NEFjY3VtID0gYmFzZTY0QWNjdW07XG4gICAgICByZXR1cm4gcmVzO1xuICAgIH07XG4gICAgVXRmN0RlY29kZXIucHJvdG90eXBlLmVuZCA9IGZ1bmN0aW9uKCkge1xuICAgICAgdmFyIHJlcyA9IFwiXCI7XG4gICAgICBpZiAodGhpcy5pbkJhc2U2NCAmJiB0aGlzLmJhc2U2NEFjY3VtLmxlbmd0aCA+IDApXG4gICAgICAgIHJlcyA9IHRoaXMuaWNvbnYuZGVjb2RlKEJ1ZmZlcjIuZnJvbSh0aGlzLmJhc2U2NEFjY3VtLCBcImJhc2U2NFwiKSwgXCJ1dGYxNi1iZVwiKTtcbiAgICAgIHRoaXMuaW5CYXNlNjQgPSBmYWxzZTtcbiAgICAgIHRoaXMuYmFzZTY0QWNjdW0gPSBcIlwiO1xuICAgICAgcmV0dXJuIHJlcztcbiAgICB9O1xuICAgIGV4cG9ydHMyLnV0ZjdpbWFwID0gVXRmN0lNQVBDb2RlYztcbiAgICBmdW5jdGlvbiBVdGY3SU1BUENvZGVjKGNvZGVjT3B0aW9ucywgaWNvbnYpIHtcbiAgICAgIHRoaXMuaWNvbnYgPSBpY29udjtcbiAgICB9XG4gICAgVXRmN0lNQVBDb2RlYy5wcm90b3R5cGUuZW5jb2RlciA9IFV0ZjdJTUFQRW5jb2RlcjtcbiAgICBVdGY3SU1BUENvZGVjLnByb3RvdHlwZS5kZWNvZGVyID0gVXRmN0lNQVBEZWNvZGVyO1xuICAgIFV0ZjdJTUFQQ29kZWMucHJvdG90eXBlLmJvbUF3YXJlID0gdHJ1ZTtcbiAgICBmdW5jdGlvbiBVdGY3SU1BUEVuY29kZXIob3B0aW9ucywgY29kZWMpIHtcbiAgICAgIHRoaXMuaWNvbnYgPSBjb2RlYy5pY29udjtcbiAgICAgIHRoaXMuaW5CYXNlNjQgPSBmYWxzZTtcbiAgICAgIHRoaXMuYmFzZTY0QWNjdW0gPSBCdWZmZXIyLmFsbG9jKDYpO1xuICAgICAgdGhpcy5iYXNlNjRBY2N1bUlkeCA9IDA7XG4gICAgfVxuICAgIFV0ZjdJTUFQRW5jb2Rlci5wcm90b3R5cGUud3JpdGUgPSBmdW5jdGlvbihzdHIpIHtcbiAgICAgIHZhciBpbkJhc2U2NCA9IHRoaXMuaW5CYXNlNjQsIGJhc2U2NEFjY3VtID0gdGhpcy5iYXNlNjRBY2N1bSwgYmFzZTY0QWNjdW1JZHggPSB0aGlzLmJhc2U2NEFjY3VtSWR4LCBidWYgPSBCdWZmZXIyLmFsbG9jKHN0ci5sZW5ndGggKiA1ICsgMTApLCBidWZJZHggPSAwO1xuICAgICAgZm9yICh2YXIgaTIgPSAwOyBpMiA8IHN0ci5sZW5ndGg7IGkyKyspIHtcbiAgICAgICAgdmFyIHVDaGFyID0gc3RyLmNoYXJDb2RlQXQoaTIpO1xuICAgICAgICBpZiAoMzIgPD0gdUNoYXIgJiYgdUNoYXIgPD0gMTI2KSB7XG4gICAgICAgICAgaWYgKGluQmFzZTY0KSB7XG4gICAgICAgICAgICBpZiAoYmFzZTY0QWNjdW1JZHggPiAwKSB7XG4gICAgICAgICAgICAgIGJ1ZklkeCArPSBidWYud3JpdGUoYmFzZTY0QWNjdW0uc2xpY2UoMCwgYmFzZTY0QWNjdW1JZHgpLnRvU3RyaW5nKFwiYmFzZTY0XCIpLnJlcGxhY2UoL1xcLy9nLCBcIixcIikucmVwbGFjZSgvPSskLywgXCJcIiksIGJ1ZklkeCk7XG4gICAgICAgICAgICAgIGJhc2U2NEFjY3VtSWR4ID0gMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJ1ZltidWZJZHgrK10gPSBtaW51c0NoYXI7XG4gICAgICAgICAgICBpbkJhc2U2NCA9IGZhbHNlO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoIWluQmFzZTY0KSB7XG4gICAgICAgICAgICBidWZbYnVmSWR4KytdID0gdUNoYXI7XG4gICAgICAgICAgICBpZiAodUNoYXIgPT09IGFuZENoYXIpXG4gICAgICAgICAgICAgIGJ1ZltidWZJZHgrK10gPSBtaW51c0NoYXI7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGlmICghaW5CYXNlNjQpIHtcbiAgICAgICAgICAgIGJ1ZltidWZJZHgrK10gPSBhbmRDaGFyO1xuICAgICAgICAgICAgaW5CYXNlNjQgPSB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoaW5CYXNlNjQpIHtcbiAgICAgICAgICAgIGJhc2U2NEFjY3VtW2Jhc2U2NEFjY3VtSWR4KytdID0gdUNoYXIgPj4gODtcbiAgICAgICAgICAgIGJhc2U2NEFjY3VtW2Jhc2U2NEFjY3VtSWR4KytdID0gdUNoYXIgJiAyNTU7XG4gICAgICAgICAgICBpZiAoYmFzZTY0QWNjdW1JZHggPT0gYmFzZTY0QWNjdW0ubGVuZ3RoKSB7XG4gICAgICAgICAgICAgIGJ1ZklkeCArPSBidWYud3JpdGUoYmFzZTY0QWNjdW0udG9TdHJpbmcoXCJiYXNlNjRcIikucmVwbGFjZSgvXFwvL2csIFwiLFwiKSwgYnVmSWR4KTtcbiAgICAgICAgICAgICAgYmFzZTY0QWNjdW1JZHggPSAwO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgdGhpcy5pbkJhc2U2NCA9IGluQmFzZTY0O1xuICAgICAgdGhpcy5iYXNlNjRBY2N1bUlkeCA9IGJhc2U2NEFjY3VtSWR4O1xuICAgICAgcmV0dXJuIGJ1Zi5zbGljZSgwLCBidWZJZHgpO1xuICAgIH07XG4gICAgVXRmN0lNQVBFbmNvZGVyLnByb3RvdHlwZS5lbmQgPSBmdW5jdGlvbigpIHtcbiAgICAgIHZhciBidWYgPSBCdWZmZXIyLmFsbG9jKDEwKSwgYnVmSWR4ID0gMDtcbiAgICAgIGlmICh0aGlzLmluQmFzZTY0KSB7XG4gICAgICAgIGlmICh0aGlzLmJhc2U2NEFjY3VtSWR4ID4gMCkge1xuICAgICAgICAgIGJ1ZklkeCArPSBidWYud3JpdGUodGhpcy5iYXNlNjRBY2N1bS5zbGljZSgwLCB0aGlzLmJhc2U2NEFjY3VtSWR4KS50b1N0cmluZyhcImJhc2U2NFwiKS5yZXBsYWNlKC9cXC8vZywgXCIsXCIpLnJlcGxhY2UoLz0rJC8sIFwiXCIpLCBidWZJZHgpO1xuICAgICAgICAgIHRoaXMuYmFzZTY0QWNjdW1JZHggPSAwO1xuICAgICAgICB9XG4gICAgICAgIGJ1ZltidWZJZHgrK10gPSBtaW51c0NoYXI7XG4gICAgICAgIHRoaXMuaW5CYXNlNjQgPSBmYWxzZTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBidWYuc2xpY2UoMCwgYnVmSWR4KTtcbiAgICB9O1xuICAgIGZ1bmN0aW9uIFV0ZjdJTUFQRGVjb2RlcihvcHRpb25zLCBjb2RlYykge1xuICAgICAgdGhpcy5pY29udiA9IGNvZGVjLmljb252O1xuICAgICAgdGhpcy5pbkJhc2U2NCA9IGZhbHNlO1xuICAgICAgdGhpcy5iYXNlNjRBY2N1bSA9IFwiXCI7XG4gICAgfVxuICAgIHZhciBiYXNlNjRJTUFQQ2hhcnMgPSBiYXNlNjRDaGFycy5zbGljZSgpO1xuICAgIGJhc2U2NElNQVBDaGFyc1tcIixcIi5jaGFyQ29kZUF0KDApXSA9IHRydWU7XG4gICAgVXRmN0lNQVBEZWNvZGVyLnByb3RvdHlwZS53cml0ZSA9IGZ1bmN0aW9uKGJ1Zikge1xuICAgICAgdmFyIHJlcyA9IFwiXCIsIGxhc3RJID0gMCwgaW5CYXNlNjQgPSB0aGlzLmluQmFzZTY0LCBiYXNlNjRBY2N1bSA9IHRoaXMuYmFzZTY0QWNjdW07XG4gICAgICBmb3IgKHZhciBpMiA9IDA7IGkyIDwgYnVmLmxlbmd0aDsgaTIrKykge1xuICAgICAgICBpZiAoIWluQmFzZTY0KSB7XG4gICAgICAgICAgaWYgKGJ1ZltpMl0gPT0gYW5kQ2hhcikge1xuICAgICAgICAgICAgcmVzICs9IHRoaXMuaWNvbnYuZGVjb2RlKGJ1Zi5zbGljZShsYXN0SSwgaTIpLCBcImFzY2lpXCIpO1xuICAgICAgICAgICAgbGFzdEkgPSBpMiArIDE7XG4gICAgICAgICAgICBpbkJhc2U2NCA9IHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGlmICghYmFzZTY0SU1BUENoYXJzW2J1ZltpMl1dKSB7XG4gICAgICAgICAgICBpZiAoaTIgPT0gbGFzdEkgJiYgYnVmW2kyXSA9PSBtaW51c0NoYXIpIHtcbiAgICAgICAgICAgICAgcmVzICs9IFwiJlwiO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgdmFyIGI2NHN0ciA9IGJhc2U2NEFjY3VtICsgdGhpcy5pY29udi5kZWNvZGUoYnVmLnNsaWNlKGxhc3RJLCBpMiksIFwiYXNjaWlcIikucmVwbGFjZSgvLC9nLCBcIi9cIik7XG4gICAgICAgICAgICAgIHJlcyArPSB0aGlzLmljb252LmRlY29kZShCdWZmZXIyLmZyb20oYjY0c3RyLCBcImJhc2U2NFwiKSwgXCJ1dGYxNi1iZVwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChidWZbaTJdICE9IG1pbnVzQ2hhcilcbiAgICAgICAgICAgICAgaTItLTtcbiAgICAgICAgICAgIGxhc3RJID0gaTIgKyAxO1xuICAgICAgICAgICAgaW5CYXNlNjQgPSBmYWxzZTtcbiAgICAgICAgICAgIGJhc2U2NEFjY3VtID0gXCJcIjtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmICghaW5CYXNlNjQpIHtcbiAgICAgICAgcmVzICs9IHRoaXMuaWNvbnYuZGVjb2RlKGJ1Zi5zbGljZShsYXN0SSksIFwiYXNjaWlcIik7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB2YXIgYjY0c3RyID0gYmFzZTY0QWNjdW0gKyB0aGlzLmljb252LmRlY29kZShidWYuc2xpY2UobGFzdEkpLCBcImFzY2lpXCIpLnJlcGxhY2UoLywvZywgXCIvXCIpO1xuICAgICAgICB2YXIgY2FuQmVEZWNvZGVkID0gYjY0c3RyLmxlbmd0aCAtIGI2NHN0ci5sZW5ndGggJSA4O1xuICAgICAgICBiYXNlNjRBY2N1bSA9IGI2NHN0ci5zbGljZShjYW5CZURlY29kZWQpO1xuICAgICAgICBiNjRzdHIgPSBiNjRzdHIuc2xpY2UoMCwgY2FuQmVEZWNvZGVkKTtcbiAgICAgICAgcmVzICs9IHRoaXMuaWNvbnYuZGVjb2RlKEJ1ZmZlcjIuZnJvbShiNjRzdHIsIFwiYmFzZTY0XCIpLCBcInV0ZjE2LWJlXCIpO1xuICAgICAgfVxuICAgICAgdGhpcy5pbkJhc2U2NCA9IGluQmFzZTY0O1xuICAgICAgdGhpcy5iYXNlNjRBY2N1bSA9IGJhc2U2NEFjY3VtO1xuICAgICAgcmV0dXJuIHJlcztcbiAgICB9O1xuICAgIFV0ZjdJTUFQRGVjb2Rlci5wcm90b3R5cGUuZW5kID0gZnVuY3Rpb24oKSB7XG4gICAgICB2YXIgcmVzID0gXCJcIjtcbiAgICAgIGlmICh0aGlzLmluQmFzZTY0ICYmIHRoaXMuYmFzZTY0QWNjdW0ubGVuZ3RoID4gMClcbiAgICAgICAgcmVzID0gdGhpcy5pY29udi5kZWNvZGUoQnVmZmVyMi5mcm9tKHRoaXMuYmFzZTY0QWNjdW0sIFwiYmFzZTY0XCIpLCBcInV0ZjE2LWJlXCIpO1xuICAgICAgdGhpcy5pbkJhc2U2NCA9IGZhbHNlO1xuICAgICAgdGhpcy5iYXNlNjRBY2N1bSA9IFwiXCI7XG4gICAgICByZXR1cm4gcmVzO1xuICAgIH07XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvcmF3LWJvZHkvbm9kZV9tb2R1bGVzL2ljb252LWxpdGUvZW5jb2RpbmdzL3NiY3MtY29kZWMuanNcbnZhciByZXF1aXJlX3NiY3NfY29kZWMgPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvcmF3LWJvZHkvbm9kZV9tb2R1bGVzL2ljb252LWxpdGUvZW5jb2RpbmdzL3NiY3MtY29kZWMuanNcIihleHBvcnRzMikge1xuICAgIFwidXNlIHN0cmljdFwiO1xuICAgIHZhciBCdWZmZXIyID0gcmVxdWlyZV9zYWZlcigpLkJ1ZmZlcjtcbiAgICBleHBvcnRzMi5fc2JjcyA9IFNCQ1NDb2RlYztcbiAgICBmdW5jdGlvbiBTQkNTQ29kZWMoY29kZWNPcHRpb25zLCBpY29udikge1xuICAgICAgaWYgKCFjb2RlY09wdGlvbnMpXG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIlNCQ1MgY29kZWMgaXMgY2FsbGVkIHdpdGhvdXQgdGhlIGRhdGEuXCIpO1xuICAgICAgaWYgKCFjb2RlY09wdGlvbnMuY2hhcnMgfHwgY29kZWNPcHRpb25zLmNoYXJzLmxlbmd0aCAhPT0gMTI4ICYmIGNvZGVjT3B0aW9ucy5jaGFycy5sZW5ndGggIT09IDI1NilcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiRW5jb2RpbmcgJ1wiICsgY29kZWNPcHRpb25zLnR5cGUgKyBcIicgaGFzIGluY29ycmVjdCAnY2hhcnMnIChtdXN0IGJlIG9mIGxlbiAxMjggb3IgMjU2KVwiKTtcbiAgICAgIGlmIChjb2RlY09wdGlvbnMuY2hhcnMubGVuZ3RoID09PSAxMjgpIHtcbiAgICAgICAgdmFyIGFzY2lpU3RyaW5nID0gXCJcIjtcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMjg7IGkrKylcbiAgICAgICAgICBhc2NpaVN0cmluZyArPSBTdHJpbmcuZnJvbUNoYXJDb2RlKGkpO1xuICAgICAgICBjb2RlY09wdGlvbnMuY2hhcnMgPSBhc2NpaVN0cmluZyArIGNvZGVjT3B0aW9ucy5jaGFycztcbiAgICAgIH1cbiAgICAgIHRoaXMuZGVjb2RlQnVmID0gQnVmZmVyMi5mcm9tKGNvZGVjT3B0aW9ucy5jaGFycywgXCJ1Y3MyXCIpO1xuICAgICAgdmFyIGVuY29kZUJ1ZiA9IEJ1ZmZlcjIuYWxsb2MoNjU1MzYsIGljb252LmRlZmF1bHRDaGFyU2luZ2xlQnl0ZS5jaGFyQ29kZUF0KDApKTtcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY29kZWNPcHRpb25zLmNoYXJzLmxlbmd0aDsgaSsrKVxuICAgICAgICBlbmNvZGVCdWZbY29kZWNPcHRpb25zLmNoYXJzLmNoYXJDb2RlQXQoaSldID0gaTtcbiAgICAgIHRoaXMuZW5jb2RlQnVmID0gZW5jb2RlQnVmO1xuICAgIH1cbiAgICBTQkNTQ29kZWMucHJvdG90eXBlLmVuY29kZXIgPSBTQkNTRW5jb2RlcjtcbiAgICBTQkNTQ29kZWMucHJvdG90eXBlLmRlY29kZXIgPSBTQkNTRGVjb2RlcjtcbiAgICBmdW5jdGlvbiBTQkNTRW5jb2RlcihvcHRpb25zLCBjb2RlYykge1xuICAgICAgdGhpcy5lbmNvZGVCdWYgPSBjb2RlYy5lbmNvZGVCdWY7XG4gICAgfVxuICAgIFNCQ1NFbmNvZGVyLnByb3RvdHlwZS53cml0ZSA9IGZ1bmN0aW9uKHN0cikge1xuICAgICAgdmFyIGJ1ZiA9IEJ1ZmZlcjIuYWxsb2Moc3RyLmxlbmd0aCk7XG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHN0ci5sZW5ndGg7IGkrKylcbiAgICAgICAgYnVmW2ldID0gdGhpcy5lbmNvZGVCdWZbc3RyLmNoYXJDb2RlQXQoaSldO1xuICAgICAgcmV0dXJuIGJ1ZjtcbiAgICB9O1xuICAgIFNCQ1NFbmNvZGVyLnByb3RvdHlwZS5lbmQgPSBmdW5jdGlvbigpIHtcbiAgICB9O1xuICAgIGZ1bmN0aW9uIFNCQ1NEZWNvZGVyKG9wdGlvbnMsIGNvZGVjKSB7XG4gICAgICB0aGlzLmRlY29kZUJ1ZiA9IGNvZGVjLmRlY29kZUJ1ZjtcbiAgICB9XG4gICAgU0JDU0RlY29kZXIucHJvdG90eXBlLndyaXRlID0gZnVuY3Rpb24oYnVmKSB7XG4gICAgICB2YXIgZGVjb2RlQnVmID0gdGhpcy5kZWNvZGVCdWY7XG4gICAgICB2YXIgbmV3QnVmID0gQnVmZmVyMi5hbGxvYyhidWYubGVuZ3RoICogMik7XG4gICAgICB2YXIgaWR4MSA9IDAsIGlkeDIgPSAwO1xuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBidWYubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgaWR4MSA9IGJ1ZltpXSAqIDI7XG4gICAgICAgIGlkeDIgPSBpICogMjtcbiAgICAgICAgbmV3QnVmW2lkeDJdID0gZGVjb2RlQnVmW2lkeDFdO1xuICAgICAgICBuZXdCdWZbaWR4MiArIDFdID0gZGVjb2RlQnVmW2lkeDEgKyAxXTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBuZXdCdWYudG9TdHJpbmcoXCJ1Y3MyXCIpO1xuICAgIH07XG4gICAgU0JDU0RlY29kZXIucHJvdG90eXBlLmVuZCA9IGZ1bmN0aW9uKCkge1xuICAgIH07XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvcmF3LWJvZHkvbm9kZV9tb2R1bGVzL2ljb252LWxpdGUvZW5jb2RpbmdzL3NiY3MtZGF0YS5qc1xudmFyIHJlcXVpcmVfc2Jjc19kYXRhID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL3Jhdy1ib2R5L25vZGVfbW9kdWxlcy9pY29udi1saXRlL2VuY29kaW5ncy9zYmNzLWRhdGEuanNcIihleHBvcnRzMiwgbW9kdWxlMikge1xuICAgIFwidXNlIHN0cmljdFwiO1xuICAgIG1vZHVsZTIuZXhwb3J0cyA9IHtcbiAgICAgIC8vIE5vdCBzdXBwb3J0ZWQgYnkgaWNvbnYsIG5vdCBzdXJlIHdoeS5cbiAgICAgIFwiMTAwMjlcIjogXCJtYWNjZW50ZXVyb1wiLFxuICAgICAgXCJtYWNjZW50ZXVyb1wiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIl9zYmNzXCIsXG4gICAgICAgIFwiY2hhcnNcIjogXCJcXHhDNFxcdTAxMDBcXHUwMTAxXFx4QzlcXHUwMTA0XFx4RDZcXHhEQ1xceEUxXFx1MDEwNVxcdTAxMENcXHhFNFxcdTAxMERcXHUwMTA2XFx1MDEwN1xceEU5XFx1MDE3OVxcdTAxN0FcXHUwMTBFXFx4RURcXHUwMTBGXFx1MDExMlxcdTAxMTNcXHUwMTE2XFx4RjNcXHUwMTE3XFx4RjRcXHhGNlxceEY1XFx4RkFcXHUwMTFBXFx1MDExQlxceEZDXFx1MjAyMFxceEIwXFx1MDExOFxceEEzXFx4QTdcXHUyMDIyXFx4QjZcXHhERlxceEFFXFx4QTlcXHUyMTIyXFx1MDExOVxceEE4XFx1MjI2MFxcdTAxMjNcXHUwMTJFXFx1MDEyRlxcdTAxMkFcXHUyMjY0XFx1MjI2NVxcdTAxMkJcXHUwMTM2XFx1MjIwMlxcdTIyMTFcXHUwMTQyXFx1MDEzQlxcdTAxM0NcXHUwMTNEXFx1MDEzRVxcdTAxMzlcXHUwMTNBXFx1MDE0NVxcdTAxNDZcXHUwMTQzXFx4QUNcXHUyMjFBXFx1MDE0NFxcdTAxNDdcXHUyMjA2XFx4QUJcXHhCQlxcdTIwMjZcXHhBMFxcdTAxNDhcXHUwMTUwXFx4RDVcXHUwMTUxXFx1MDE0Q1xcdTIwMTNcXHUyMDE0XFx1MjAxQ1xcdTIwMURcXHUyMDE4XFx1MjAxOVxceEY3XFx1MjVDQVxcdTAxNERcXHUwMTU0XFx1MDE1NVxcdTAxNThcXHUyMDM5XFx1MjAzQVxcdTAxNTlcXHUwMTU2XFx1MDE1N1xcdTAxNjBcXHUyMDFBXFx1MjAxRVxcdTAxNjFcXHUwMTVBXFx1MDE1QlxceEMxXFx1MDE2NFxcdTAxNjVcXHhDRFxcdTAxN0RcXHUwMTdFXFx1MDE2QVxceEQzXFx4RDRcXHUwMTZCXFx1MDE2RVxceERBXFx1MDE2RlxcdTAxNzBcXHUwMTcxXFx1MDE3MlxcdTAxNzNcXHhERFxceEZEXFx1MDEzN1xcdTAxN0JcXHUwMTQxXFx1MDE3Q1xcdTAxMjJcXHUwMkM3XCJcbiAgICAgIH0sXG4gICAgICBcIjgwOFwiOiBcImNwODA4XCIsXG4gICAgICBcImlibTgwOFwiOiBcImNwODA4XCIsXG4gICAgICBcImNwODA4XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwiX3NiY3NcIixcbiAgICAgICAgXCJjaGFyc1wiOiBcIlxcdTA0MTBcXHUwNDExXFx1MDQxMlxcdTA0MTNcXHUwNDE0XFx1MDQxNVxcdTA0MTZcXHUwNDE3XFx1MDQxOFxcdTA0MTlcXHUwNDFBXFx1MDQxQlxcdTA0MUNcXHUwNDFEXFx1MDQxRVxcdTA0MUZcXHUwNDIwXFx1MDQyMVxcdTA0MjJcXHUwNDIzXFx1MDQyNFxcdTA0MjVcXHUwNDI2XFx1MDQyN1xcdTA0MjhcXHUwNDI5XFx1MDQyQVxcdTA0MkJcXHUwNDJDXFx1MDQyRFxcdTA0MkVcXHUwNDJGXFx1MDQzMFxcdTA0MzFcXHUwNDMyXFx1MDQzM1xcdTA0MzRcXHUwNDM1XFx1MDQzNlxcdTA0MzdcXHUwNDM4XFx1MDQzOVxcdTA0M0FcXHUwNDNCXFx1MDQzQ1xcdTA0M0RcXHUwNDNFXFx1MDQzRlxcdTI1OTFcXHUyNTkyXFx1MjU5M1xcdTI1MDJcXHUyNTI0XFx1MjU2MVxcdTI1NjJcXHUyNTU2XFx1MjU1NVxcdTI1NjNcXHUyNTUxXFx1MjU1N1xcdTI1NURcXHUyNTVDXFx1MjU1QlxcdTI1MTBcXHUyNTE0XFx1MjUzNFxcdTI1MkNcXHUyNTFDXFx1MjUwMFxcdTI1M0NcXHUyNTVFXFx1MjU1RlxcdTI1NUFcXHUyNTU0XFx1MjU2OVxcdTI1NjZcXHUyNTYwXFx1MjU1MFxcdTI1NkNcXHUyNTY3XFx1MjU2OFxcdTI1NjRcXHUyNTY1XFx1MjU1OVxcdTI1NThcXHUyNTUyXFx1MjU1M1xcdTI1NkJcXHUyNTZBXFx1MjUxOFxcdTI1MENcXHUyNTg4XFx1MjU4NFxcdTI1OENcXHUyNTkwXFx1MjU4MFxcdTA0NDBcXHUwNDQxXFx1MDQ0MlxcdTA0NDNcXHUwNDQ0XFx1MDQ0NVxcdTA0NDZcXHUwNDQ3XFx1MDQ0OFxcdTA0NDlcXHUwNDRBXFx1MDQ0QlxcdTA0NENcXHUwNDREXFx1MDQ0RVxcdTA0NEZcXHUwNDAxXFx1MDQ1MVxcdTA0MDRcXHUwNDU0XFx1MDQwN1xcdTA0NTdcXHUwNDBFXFx1MDQ1RVxceEIwXFx1MjIxOVxceEI3XFx1MjIxQVxcdTIxMTZcXHUyMEFDXFx1MjVBMFxceEEwXCJcbiAgICAgIH0sXG4gICAgICBcIm1pa1wiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIl9zYmNzXCIsXG4gICAgICAgIFwiY2hhcnNcIjogXCJcXHUwNDEwXFx1MDQxMVxcdTA0MTJcXHUwNDEzXFx1MDQxNFxcdTA0MTVcXHUwNDE2XFx1MDQxN1xcdTA0MThcXHUwNDE5XFx1MDQxQVxcdTA0MUJcXHUwNDFDXFx1MDQxRFxcdTA0MUVcXHUwNDFGXFx1MDQyMFxcdTA0MjFcXHUwNDIyXFx1MDQyM1xcdTA0MjRcXHUwNDI1XFx1MDQyNlxcdTA0MjdcXHUwNDI4XFx1MDQyOVxcdTA0MkFcXHUwNDJCXFx1MDQyQ1xcdTA0MkRcXHUwNDJFXFx1MDQyRlxcdTA0MzBcXHUwNDMxXFx1MDQzMlxcdTA0MzNcXHUwNDM0XFx1MDQzNVxcdTA0MzZcXHUwNDM3XFx1MDQzOFxcdTA0MzlcXHUwNDNBXFx1MDQzQlxcdTA0M0NcXHUwNDNEXFx1MDQzRVxcdTA0M0ZcXHUwNDQwXFx1MDQ0MVxcdTA0NDJcXHUwNDQzXFx1MDQ0NFxcdTA0NDVcXHUwNDQ2XFx1MDQ0N1xcdTA0NDhcXHUwNDQ5XFx1MDQ0QVxcdTA0NEJcXHUwNDRDXFx1MDQ0RFxcdTA0NEVcXHUwNDRGXFx1MjUxNFxcdTI1MzRcXHUyNTJDXFx1MjUxQ1xcdTI1MDBcXHUyNTNDXFx1MjU2M1xcdTI1NTFcXHUyNTVBXFx1MjU1NFxcdTI1NjlcXHUyNTY2XFx1MjU2MFxcdTI1NTBcXHUyNTZDXFx1MjUxMFxcdTI1OTFcXHUyNTkyXFx1MjU5M1xcdTI1MDJcXHUyNTI0XFx1MjExNlxceEE3XFx1MjU1N1xcdTI1NURcXHUyNTE4XFx1MjUwQ1xcdTI1ODhcXHUyNTg0XFx1MjU4Q1xcdTI1OTBcXHUyNTgwXFx1MDNCMVxceERGXFx1MDM5M1xcdTAzQzBcXHUwM0EzXFx1MDNDM1xceEI1XFx1MDNDNFxcdTAzQTZcXHUwMzk4XFx1MDNBOVxcdTAzQjRcXHUyMjFFXFx1MDNDNlxcdTAzQjVcXHUyMjI5XFx1MjI2MVxceEIxXFx1MjI2NVxcdTIyNjRcXHUyMzIwXFx1MjMyMVxceEY3XFx1MjI0OFxceEIwXFx1MjIxOVxceEI3XFx1MjIxQVxcdTIwN0ZcXHhCMlxcdTI1QTBcXHhBMFwiXG4gICAgICB9LFxuICAgICAgXCJjcDcyMFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIl9zYmNzXCIsXG4gICAgICAgIFwiY2hhcnNcIjogXCJcXHg4MFxceDgxXFx4RTlcXHhFMlxceDg0XFx4RTBcXHg4NlxceEU3XFx4RUFcXHhFQlxceEU4XFx4RUZcXHhFRVxceDhEXFx4OEVcXHg4RlxceDkwXFx1MDY1MVxcdTA2NTJcXHhGNFxceEE0XFx1MDY0MFxceEZCXFx4RjlcXHUwNjIxXFx1MDYyMlxcdTA2MjNcXHUwNjI0XFx4QTNcXHUwNjI1XFx1MDYyNlxcdTA2MjdcXHUwNjI4XFx1MDYyOVxcdTA2MkFcXHUwNjJCXFx1MDYyQ1xcdTA2MkRcXHUwNjJFXFx1MDYyRlxcdTA2MzBcXHUwNjMxXFx1MDYzMlxcdTA2MzNcXHUwNjM0XFx1MDYzNVxceEFCXFx4QkJcXHUyNTkxXFx1MjU5MlxcdTI1OTNcXHUyNTAyXFx1MjUyNFxcdTI1NjFcXHUyNTYyXFx1MjU1NlxcdTI1NTVcXHUyNTYzXFx1MjU1MVxcdTI1NTdcXHUyNTVEXFx1MjU1Q1xcdTI1NUJcXHUyNTEwXFx1MjUxNFxcdTI1MzRcXHUyNTJDXFx1MjUxQ1xcdTI1MDBcXHUyNTNDXFx1MjU1RVxcdTI1NUZcXHUyNTVBXFx1MjU1NFxcdTI1NjlcXHUyNTY2XFx1MjU2MFxcdTI1NTBcXHUyNTZDXFx1MjU2N1xcdTI1NjhcXHUyNTY0XFx1MjU2NVxcdTI1NTlcXHUyNTU4XFx1MjU1MlxcdTI1NTNcXHUyNTZCXFx1MjU2QVxcdTI1MThcXHUyNTBDXFx1MjU4OFxcdTI1ODRcXHUyNThDXFx1MjU5MFxcdTI1ODBcXHUwNjM2XFx1MDYzN1xcdTA2MzhcXHUwNjM5XFx1MDYzQVxcdTA2NDFcXHhCNVxcdTA2NDJcXHUwNjQzXFx1MDY0NFxcdTA2NDVcXHUwNjQ2XFx1MDY0N1xcdTA2NDhcXHUwNjQ5XFx1MDY0QVxcdTIyNjFcXHUwNjRCXFx1MDY0Q1xcdTA2NERcXHUwNjRFXFx1MDY0RlxcdTA2NTBcXHUyMjQ4XFx4QjBcXHUyMjE5XFx4QjdcXHUyMjFBXFx1MjA3RlxceEIyXFx1MjVBMFxceEEwXCJcbiAgICAgIH0sXG4gICAgICAvLyBBbGlhc2VzIG9mIGdlbmVyYXRlZCBlbmNvZGluZ3MuXG4gICAgICBcImFzY2lpOGJpdFwiOiBcImFzY2lpXCIsXG4gICAgICBcInVzYXNjaWlcIjogXCJhc2NpaVwiLFxuICAgICAgXCJhbnNpeDM0XCI6IFwiYXNjaWlcIixcbiAgICAgIFwiYW5zaXgzNDE5NjhcIjogXCJhc2NpaVwiLFxuICAgICAgXCJhbnNpeDM0MTk4NlwiOiBcImFzY2lpXCIsXG4gICAgICBcImNzYXNjaWlcIjogXCJhc2NpaVwiLFxuICAgICAgXCJjcDM2N1wiOiBcImFzY2lpXCIsXG4gICAgICBcImlibTM2N1wiOiBcImFzY2lpXCIsXG4gICAgICBcImlzb2lyNlwiOiBcImFzY2lpXCIsXG4gICAgICBcImlzbzY0NnVzXCI6IFwiYXNjaWlcIixcbiAgICAgIFwiaXNvNjQ2aXJ2XCI6IFwiYXNjaWlcIixcbiAgICAgIFwidXNcIjogXCJhc2NpaVwiLFxuICAgICAgXCJsYXRpbjFcIjogXCJpc284ODU5MVwiLFxuICAgICAgXCJsYXRpbjJcIjogXCJpc284ODU5MlwiLFxuICAgICAgXCJsYXRpbjNcIjogXCJpc284ODU5M1wiLFxuICAgICAgXCJsYXRpbjRcIjogXCJpc284ODU5NFwiLFxuICAgICAgXCJsYXRpbjVcIjogXCJpc284ODU5OVwiLFxuICAgICAgXCJsYXRpbjZcIjogXCJpc284ODU5MTBcIixcbiAgICAgIFwibGF0aW43XCI6IFwiaXNvODg1OTEzXCIsXG4gICAgICBcImxhdGluOFwiOiBcImlzbzg4NTkxNFwiLFxuICAgICAgXCJsYXRpbjlcIjogXCJpc284ODU5MTVcIixcbiAgICAgIFwibGF0aW4xMFwiOiBcImlzbzg4NTkxNlwiLFxuICAgICAgXCJjc2lzb2xhdGluMVwiOiBcImlzbzg4NTkxXCIsXG4gICAgICBcImNzaXNvbGF0aW4yXCI6IFwiaXNvODg1OTJcIixcbiAgICAgIFwiY3Npc29sYXRpbjNcIjogXCJpc284ODU5M1wiLFxuICAgICAgXCJjc2lzb2xhdGluNFwiOiBcImlzbzg4NTk0XCIsXG4gICAgICBcImNzaXNvbGF0aW5jeXJpbGxpY1wiOiBcImlzbzg4NTk1XCIsXG4gICAgICBcImNzaXNvbGF0aW5hcmFiaWNcIjogXCJpc284ODU5NlwiLFxuICAgICAgXCJjc2lzb2xhdGluZ3JlZWtcIjogXCJpc284ODU5N1wiLFxuICAgICAgXCJjc2lzb2xhdGluaGVicmV3XCI6IFwiaXNvODg1OThcIixcbiAgICAgIFwiY3Npc29sYXRpbjVcIjogXCJpc284ODU5OVwiLFxuICAgICAgXCJjc2lzb2xhdGluNlwiOiBcImlzbzg4NTkxMFwiLFxuICAgICAgXCJsMVwiOiBcImlzbzg4NTkxXCIsXG4gICAgICBcImwyXCI6IFwiaXNvODg1OTJcIixcbiAgICAgIFwibDNcIjogXCJpc284ODU5M1wiLFxuICAgICAgXCJsNFwiOiBcImlzbzg4NTk0XCIsXG4gICAgICBcImw1XCI6IFwiaXNvODg1OTlcIixcbiAgICAgIFwibDZcIjogXCJpc284ODU5MTBcIixcbiAgICAgIFwibDdcIjogXCJpc284ODU5MTNcIixcbiAgICAgIFwibDhcIjogXCJpc284ODU5MTRcIixcbiAgICAgIFwibDlcIjogXCJpc284ODU5MTVcIixcbiAgICAgIFwibDEwXCI6IFwiaXNvODg1OTE2XCIsXG4gICAgICBcImlzb2lyMTRcIjogXCJpc282NDZqcFwiLFxuICAgICAgXCJpc29pcjU3XCI6IFwiaXNvNjQ2Y25cIixcbiAgICAgIFwiaXNvaXIxMDBcIjogXCJpc284ODU5MVwiLFxuICAgICAgXCJpc29pcjEwMVwiOiBcImlzbzg4NTkyXCIsXG4gICAgICBcImlzb2lyMTA5XCI6IFwiaXNvODg1OTNcIixcbiAgICAgIFwiaXNvaXIxMTBcIjogXCJpc284ODU5NFwiLFxuICAgICAgXCJpc29pcjE0NFwiOiBcImlzbzg4NTk1XCIsXG4gICAgICBcImlzb2lyMTI3XCI6IFwiaXNvODg1OTZcIixcbiAgICAgIFwiaXNvaXIxMjZcIjogXCJpc284ODU5N1wiLFxuICAgICAgXCJpc29pcjEzOFwiOiBcImlzbzg4NTk4XCIsXG4gICAgICBcImlzb2lyMTQ4XCI6IFwiaXNvODg1OTlcIixcbiAgICAgIFwiaXNvaXIxNTdcIjogXCJpc284ODU5MTBcIixcbiAgICAgIFwiaXNvaXIxNjZcIjogXCJ0aXM2MjBcIixcbiAgICAgIFwiaXNvaXIxNzlcIjogXCJpc284ODU5MTNcIixcbiAgICAgIFwiaXNvaXIxOTlcIjogXCJpc284ODU5MTRcIixcbiAgICAgIFwiaXNvaXIyMDNcIjogXCJpc284ODU5MTVcIixcbiAgICAgIFwiaXNvaXIyMjZcIjogXCJpc284ODU5MTZcIixcbiAgICAgIFwiY3A4MTlcIjogXCJpc284ODU5MVwiLFxuICAgICAgXCJpYm04MTlcIjogXCJpc284ODU5MVwiLFxuICAgICAgXCJjeXJpbGxpY1wiOiBcImlzbzg4NTk1XCIsXG4gICAgICBcImFyYWJpY1wiOiBcImlzbzg4NTk2XCIsXG4gICAgICBcImFyYWJpYzhcIjogXCJpc284ODU5NlwiLFxuICAgICAgXCJlY21hMTE0XCI6IFwiaXNvODg1OTZcIixcbiAgICAgIFwiYXNtbzcwOFwiOiBcImlzbzg4NTk2XCIsXG4gICAgICBcImdyZWVrXCI6IFwiaXNvODg1OTdcIixcbiAgICAgIFwiZ3JlZWs4XCI6IFwiaXNvODg1OTdcIixcbiAgICAgIFwiZWNtYTExOFwiOiBcImlzbzg4NTk3XCIsXG4gICAgICBcImVsb3Q5MjhcIjogXCJpc284ODU5N1wiLFxuICAgICAgXCJoZWJyZXdcIjogXCJpc284ODU5OFwiLFxuICAgICAgXCJoZWJyZXc4XCI6IFwiaXNvODg1OThcIixcbiAgICAgIFwidHVya2lzaFwiOiBcImlzbzg4NTk5XCIsXG4gICAgICBcInR1cmtpc2g4XCI6IFwiaXNvODg1OTlcIixcbiAgICAgIFwidGhhaVwiOiBcImlzbzg4NTkxMVwiLFxuICAgICAgXCJ0aGFpOFwiOiBcImlzbzg4NTkxMVwiLFxuICAgICAgXCJjZWx0aWNcIjogXCJpc284ODU5MTRcIixcbiAgICAgIFwiY2VsdGljOFwiOiBcImlzbzg4NTkxNFwiLFxuICAgICAgXCJpc29jZWx0aWNcIjogXCJpc284ODU5MTRcIixcbiAgICAgIFwidGlzNjIwMFwiOiBcInRpczYyMFwiLFxuICAgICAgXCJ0aXM2MjAyNTI5MVwiOiBcInRpczYyMFwiLFxuICAgICAgXCJ0aXM2MjAyNTMzMFwiOiBcInRpczYyMFwiLFxuICAgICAgXCIxMDAwMFwiOiBcIm1hY3JvbWFuXCIsXG4gICAgICBcIjEwMDA2XCI6IFwibWFjZ3JlZWtcIixcbiAgICAgIFwiMTAwMDdcIjogXCJtYWNjeXJpbGxpY1wiLFxuICAgICAgXCIxMDA3OVwiOiBcIm1hY2ljZWxhbmRcIixcbiAgICAgIFwiMTAwODFcIjogXCJtYWN0dXJraXNoXCIsXG4gICAgICBcImNzcGM4Y29kZXBhZ2U0MzdcIjogXCJjcDQzN1wiLFxuICAgICAgXCJjc3BjNzc1YmFsdGljXCI6IFwiY3A3NzVcIixcbiAgICAgIFwiY3NwYzg1MG11bHRpbGluZ3VhbFwiOiBcImNwODUwXCIsXG4gICAgICBcImNzcGNwODUyXCI6IFwiY3A4NTJcIixcbiAgICAgIFwiY3NwYzg2MmxhdGluaGVicmV3XCI6IFwiY3A4NjJcIixcbiAgICAgIFwiY3BnclwiOiBcImNwODY5XCIsXG4gICAgICBcIm1zZWVcIjogXCJjcDEyNTBcIixcbiAgICAgIFwibXNjeXJsXCI6IFwiY3AxMjUxXCIsXG4gICAgICBcIm1zYW5zaVwiOiBcImNwMTI1MlwiLFxuICAgICAgXCJtc2dyZWVrXCI6IFwiY3AxMjUzXCIsXG4gICAgICBcIm1zdHVya1wiOiBcImNwMTI1NFwiLFxuICAgICAgXCJtc2hlYnJcIjogXCJjcDEyNTVcIixcbiAgICAgIFwibXNhcmFiXCI6IFwiY3AxMjU2XCIsXG4gICAgICBcIndpbmJhbHRyaW1cIjogXCJjcDEyNTdcIixcbiAgICAgIFwiY3AyMDg2NlwiOiBcImtvaThyXCIsXG4gICAgICBcIjIwODY2XCI6IFwia29pOHJcIixcbiAgICAgIFwiaWJtODc4XCI6IFwia29pOHJcIixcbiAgICAgIFwiY3Nrb2k4clwiOiBcImtvaThyXCIsXG4gICAgICBcImNwMjE4NjZcIjogXCJrb2k4dVwiLFxuICAgICAgXCIyMTg2NlwiOiBcImtvaTh1XCIsXG4gICAgICBcImlibTExNjhcIjogXCJrb2k4dVwiLFxuICAgICAgXCJzdHJrMTA0ODIwMDJcIjogXCJyazEwNDhcIixcbiAgICAgIFwidGN2bjU3MTJcIjogXCJ0Y3ZuXCIsXG4gICAgICBcInRjdm41NzEyMVwiOiBcInRjdm5cIixcbiAgICAgIFwiZ2IxOTg4ODBcIjogXCJpc282NDZjblwiLFxuICAgICAgXCJjblwiOiBcImlzbzY0NmNuXCIsXG4gICAgICBcImNzaXNvMTRqaXNjNjIyMHJvXCI6IFwiaXNvNjQ2anBcIixcbiAgICAgIFwiamlzYzYyMjAxOTY5cm9cIjogXCJpc282NDZqcFwiLFxuICAgICAgXCJqcFwiOiBcImlzbzY0NmpwXCIsXG4gICAgICBcImNzaHByb21hbjhcIjogXCJocHJvbWFuOFwiLFxuICAgICAgXCJyOFwiOiBcImhwcm9tYW44XCIsXG4gICAgICBcInJvbWFuOFwiOiBcImhwcm9tYW44XCIsXG4gICAgICBcInhyb21hbjhcIjogXCJocHJvbWFuOFwiLFxuICAgICAgXCJpYm0xMDUxXCI6IFwiaHByb21hbjhcIixcbiAgICAgIFwibWFjXCI6IFwibWFjaW50b3NoXCIsXG4gICAgICBcImNzbWFjaW50b3NoXCI6IFwibWFjaW50b3NoXCJcbiAgICB9O1xuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL3Jhdy1ib2R5L25vZGVfbW9kdWxlcy9pY29udi1saXRlL2VuY29kaW5ncy9zYmNzLWRhdGEtZ2VuZXJhdGVkLmpzXG52YXIgcmVxdWlyZV9zYmNzX2RhdGFfZ2VuZXJhdGVkID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL3Jhdy1ib2R5L25vZGVfbW9kdWxlcy9pY29udi1saXRlL2VuY29kaW5ncy9zYmNzLWRhdGEtZ2VuZXJhdGVkLmpzXCIoZXhwb3J0czIsIG1vZHVsZTIpIHtcbiAgICBcInVzZSBzdHJpY3RcIjtcbiAgICBtb2R1bGUyLmV4cG9ydHMgPSB7XG4gICAgICBcIjQzN1wiOiBcImNwNDM3XCIsXG4gICAgICBcIjczN1wiOiBcImNwNzM3XCIsXG4gICAgICBcIjc3NVwiOiBcImNwNzc1XCIsXG4gICAgICBcIjg1MFwiOiBcImNwODUwXCIsXG4gICAgICBcIjg1MlwiOiBcImNwODUyXCIsXG4gICAgICBcIjg1NVwiOiBcImNwODU1XCIsXG4gICAgICBcIjg1NlwiOiBcImNwODU2XCIsXG4gICAgICBcIjg1N1wiOiBcImNwODU3XCIsXG4gICAgICBcIjg1OFwiOiBcImNwODU4XCIsXG4gICAgICBcIjg2MFwiOiBcImNwODYwXCIsXG4gICAgICBcIjg2MVwiOiBcImNwODYxXCIsXG4gICAgICBcIjg2MlwiOiBcImNwODYyXCIsXG4gICAgICBcIjg2M1wiOiBcImNwODYzXCIsXG4gICAgICBcIjg2NFwiOiBcImNwODY0XCIsXG4gICAgICBcIjg2NVwiOiBcImNwODY1XCIsXG4gICAgICBcIjg2NlwiOiBcImNwODY2XCIsXG4gICAgICBcIjg2OVwiOiBcImNwODY5XCIsXG4gICAgICBcIjg3NFwiOiBcIndpbmRvd3M4NzRcIixcbiAgICAgIFwiOTIyXCI6IFwiY3A5MjJcIixcbiAgICAgIFwiMTA0NlwiOiBcImNwMTA0NlwiLFxuICAgICAgXCIxMTI0XCI6IFwiY3AxMTI0XCIsXG4gICAgICBcIjExMjVcIjogXCJjcDExMjVcIixcbiAgICAgIFwiMTEyOVwiOiBcImNwMTEyOVwiLFxuICAgICAgXCIxMTMzXCI6IFwiY3AxMTMzXCIsXG4gICAgICBcIjExNjFcIjogXCJjcDExNjFcIixcbiAgICAgIFwiMTE2MlwiOiBcImNwMTE2MlwiLFxuICAgICAgXCIxMTYzXCI6IFwiY3AxMTYzXCIsXG4gICAgICBcIjEyNTBcIjogXCJ3aW5kb3dzMTI1MFwiLFxuICAgICAgXCIxMjUxXCI6IFwid2luZG93czEyNTFcIixcbiAgICAgIFwiMTI1MlwiOiBcIndpbmRvd3MxMjUyXCIsXG4gICAgICBcIjEyNTNcIjogXCJ3aW5kb3dzMTI1M1wiLFxuICAgICAgXCIxMjU0XCI6IFwid2luZG93czEyNTRcIixcbiAgICAgIFwiMTI1NVwiOiBcIndpbmRvd3MxMjU1XCIsXG4gICAgICBcIjEyNTZcIjogXCJ3aW5kb3dzMTI1NlwiLFxuICAgICAgXCIxMjU3XCI6IFwid2luZG93czEyNTdcIixcbiAgICAgIFwiMTI1OFwiOiBcIndpbmRvd3MxMjU4XCIsXG4gICAgICBcIjI4NTkxXCI6IFwiaXNvODg1OTFcIixcbiAgICAgIFwiMjg1OTJcIjogXCJpc284ODU5MlwiLFxuICAgICAgXCIyODU5M1wiOiBcImlzbzg4NTkzXCIsXG4gICAgICBcIjI4NTk0XCI6IFwiaXNvODg1OTRcIixcbiAgICAgIFwiMjg1OTVcIjogXCJpc284ODU5NVwiLFxuICAgICAgXCIyODU5NlwiOiBcImlzbzg4NTk2XCIsXG4gICAgICBcIjI4NTk3XCI6IFwiaXNvODg1OTdcIixcbiAgICAgIFwiMjg1OThcIjogXCJpc284ODU5OFwiLFxuICAgICAgXCIyODU5OVwiOiBcImlzbzg4NTk5XCIsXG4gICAgICBcIjI4NjAwXCI6IFwiaXNvODg1OTEwXCIsXG4gICAgICBcIjI4NjAxXCI6IFwiaXNvODg1OTExXCIsXG4gICAgICBcIjI4NjAzXCI6IFwiaXNvODg1OTEzXCIsXG4gICAgICBcIjI4NjA0XCI6IFwiaXNvODg1OTE0XCIsXG4gICAgICBcIjI4NjA1XCI6IFwiaXNvODg1OTE1XCIsXG4gICAgICBcIjI4NjA2XCI6IFwiaXNvODg1OTE2XCIsXG4gICAgICBcIndpbmRvd3M4NzRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJfc2Jjc1wiLFxuICAgICAgICBcImNoYXJzXCI6IFwiXFx1MjBBQ1xcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHUyMDI2XFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHUyMDE4XFx1MjAxOVxcdTIwMUNcXHUyMDFEXFx1MjAyMlxcdTIwMTNcXHUyMDE0XFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHhBMFxcdTBFMDFcXHUwRTAyXFx1MEUwM1xcdTBFMDRcXHUwRTA1XFx1MEUwNlxcdTBFMDdcXHUwRTA4XFx1MEUwOVxcdTBFMEFcXHUwRTBCXFx1MEUwQ1xcdTBFMERcXHUwRTBFXFx1MEUwRlxcdTBFMTBcXHUwRTExXFx1MEUxMlxcdTBFMTNcXHUwRTE0XFx1MEUxNVxcdTBFMTZcXHUwRTE3XFx1MEUxOFxcdTBFMTlcXHUwRTFBXFx1MEUxQlxcdTBFMUNcXHUwRTFEXFx1MEUxRVxcdTBFMUZcXHUwRTIwXFx1MEUyMVxcdTBFMjJcXHUwRTIzXFx1MEUyNFxcdTBFMjVcXHUwRTI2XFx1MEUyN1xcdTBFMjhcXHUwRTI5XFx1MEUyQVxcdTBFMkJcXHUwRTJDXFx1MEUyRFxcdTBFMkVcXHUwRTJGXFx1MEUzMFxcdTBFMzFcXHUwRTMyXFx1MEUzM1xcdTBFMzRcXHUwRTM1XFx1MEUzNlxcdTBFMzdcXHUwRTM4XFx1MEUzOVxcdTBFM0FcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1MEUzRlxcdTBFNDBcXHUwRTQxXFx1MEU0MlxcdTBFNDNcXHUwRTQ0XFx1MEU0NVxcdTBFNDZcXHUwRTQ3XFx1MEU0OFxcdTBFNDlcXHUwRTRBXFx1MEU0QlxcdTBFNENcXHUwRTREXFx1MEU0RVxcdTBFNEZcXHUwRTUwXFx1MEU1MVxcdTBFNTJcXHUwRTUzXFx1MEU1NFxcdTBFNTVcXHUwRTU2XFx1MEU1N1xcdTBFNThcXHUwRTU5XFx1MEU1QVxcdTBFNUJcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXCJcbiAgICAgIH0sXG4gICAgICBcIndpbjg3NFwiOiBcIndpbmRvd3M4NzRcIixcbiAgICAgIFwiY3A4NzRcIjogXCJ3aW5kb3dzODc0XCIsXG4gICAgICBcIndpbmRvd3MxMjUwXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwiX3NiY3NcIixcbiAgICAgICAgXCJjaGFyc1wiOiBcIlxcdTIwQUNcXHVGRkZEXFx1MjAxQVxcdUZGRkRcXHUyMDFFXFx1MjAyNlxcdTIwMjBcXHUyMDIxXFx1RkZGRFxcdTIwMzBcXHUwMTYwXFx1MjAzOVxcdTAxNUFcXHUwMTY0XFx1MDE3RFxcdTAxNzlcXHVGRkZEXFx1MjAxOFxcdTIwMTlcXHUyMDFDXFx1MjAxRFxcdTIwMjJcXHUyMDEzXFx1MjAxNFxcdUZGRkRcXHUyMTIyXFx1MDE2MVxcdTIwM0FcXHUwMTVCXFx1MDE2NVxcdTAxN0VcXHUwMTdBXFx4QTBcXHUwMkM3XFx1MDJEOFxcdTAxNDFcXHhBNFxcdTAxMDRcXHhBNlxceEE3XFx4QThcXHhBOVxcdTAxNUVcXHhBQlxceEFDXFx4QURcXHhBRVxcdTAxN0JcXHhCMFxceEIxXFx1MDJEQlxcdTAxNDJcXHhCNFxceEI1XFx4QjZcXHhCN1xceEI4XFx1MDEwNVxcdTAxNUZcXHhCQlxcdTAxM0RcXHUwMkREXFx1MDEzRVxcdTAxN0NcXHUwMTU0XFx4QzFcXHhDMlxcdTAxMDJcXHhDNFxcdTAxMzlcXHUwMTA2XFx4QzdcXHUwMTBDXFx4QzlcXHUwMTE4XFx4Q0JcXHUwMTFBXFx4Q0RcXHhDRVxcdTAxMEVcXHUwMTEwXFx1MDE0M1xcdTAxNDdcXHhEM1xceEQ0XFx1MDE1MFxceEQ2XFx4RDdcXHUwMTU4XFx1MDE2RVxceERBXFx1MDE3MFxceERDXFx4RERcXHUwMTYyXFx4REZcXHUwMTU1XFx4RTFcXHhFMlxcdTAxMDNcXHhFNFxcdTAxM0FcXHUwMTA3XFx4RTdcXHUwMTBEXFx4RTlcXHUwMTE5XFx4RUJcXHUwMTFCXFx4RURcXHhFRVxcdTAxMEZcXHUwMTExXFx1MDE0NFxcdTAxNDhcXHhGM1xceEY0XFx1MDE1MVxceEY2XFx4RjdcXHUwMTU5XFx1MDE2RlxceEZBXFx1MDE3MVxceEZDXFx4RkRcXHUwMTYzXFx1MDJEOVwiXG4gICAgICB9LFxuICAgICAgXCJ3aW4xMjUwXCI6IFwid2luZG93czEyNTBcIixcbiAgICAgIFwiY3AxMjUwXCI6IFwid2luZG93czEyNTBcIixcbiAgICAgIFwid2luZG93czEyNTFcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJfc2Jjc1wiLFxuICAgICAgICBcImNoYXJzXCI6IFwiXFx1MDQwMlxcdTA0MDNcXHUyMDFBXFx1MDQ1M1xcdTIwMUVcXHUyMDI2XFx1MjAyMFxcdTIwMjFcXHUyMEFDXFx1MjAzMFxcdTA0MDlcXHUyMDM5XFx1MDQwQVxcdTA0MENcXHUwNDBCXFx1MDQwRlxcdTA0NTJcXHUyMDE4XFx1MjAxOVxcdTIwMUNcXHUyMDFEXFx1MjAyMlxcdTIwMTNcXHUyMDE0XFx1RkZGRFxcdTIxMjJcXHUwNDU5XFx1MjAzQVxcdTA0NUFcXHUwNDVDXFx1MDQ1QlxcdTA0NUZcXHhBMFxcdTA0MEVcXHUwNDVFXFx1MDQwOFxceEE0XFx1MDQ5MFxceEE2XFx4QTdcXHUwNDAxXFx4QTlcXHUwNDA0XFx4QUJcXHhBQ1xceEFEXFx4QUVcXHUwNDA3XFx4QjBcXHhCMVxcdTA0MDZcXHUwNDU2XFx1MDQ5MVxceEI1XFx4QjZcXHhCN1xcdTA0NTFcXHUyMTE2XFx1MDQ1NFxceEJCXFx1MDQ1OFxcdTA0MDVcXHUwNDU1XFx1MDQ1N1xcdTA0MTBcXHUwNDExXFx1MDQxMlxcdTA0MTNcXHUwNDE0XFx1MDQxNVxcdTA0MTZcXHUwNDE3XFx1MDQxOFxcdTA0MTlcXHUwNDFBXFx1MDQxQlxcdTA0MUNcXHUwNDFEXFx1MDQxRVxcdTA0MUZcXHUwNDIwXFx1MDQyMVxcdTA0MjJcXHUwNDIzXFx1MDQyNFxcdTA0MjVcXHUwNDI2XFx1MDQyN1xcdTA0MjhcXHUwNDI5XFx1MDQyQVxcdTA0MkJcXHUwNDJDXFx1MDQyRFxcdTA0MkVcXHUwNDJGXFx1MDQzMFxcdTA0MzFcXHUwNDMyXFx1MDQzM1xcdTA0MzRcXHUwNDM1XFx1MDQzNlxcdTA0MzdcXHUwNDM4XFx1MDQzOVxcdTA0M0FcXHUwNDNCXFx1MDQzQ1xcdTA0M0RcXHUwNDNFXFx1MDQzRlxcdTA0NDBcXHUwNDQxXFx1MDQ0MlxcdTA0NDNcXHUwNDQ0XFx1MDQ0NVxcdTA0NDZcXHUwNDQ3XFx1MDQ0OFxcdTA0NDlcXHUwNDRBXFx1MDQ0QlxcdTA0NENcXHUwNDREXFx1MDQ0RVxcdTA0NEZcIlxuICAgICAgfSxcbiAgICAgIFwid2luMTI1MVwiOiBcIndpbmRvd3MxMjUxXCIsXG4gICAgICBcImNwMTI1MVwiOiBcIndpbmRvd3MxMjUxXCIsXG4gICAgICBcIndpbmRvd3MxMjUyXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwiX3NiY3NcIixcbiAgICAgICAgXCJjaGFyc1wiOiBcIlxcdTIwQUNcXHVGRkZEXFx1MjAxQVxcdTAxOTJcXHUyMDFFXFx1MjAyNlxcdTIwMjBcXHUyMDIxXFx1MDJDNlxcdTIwMzBcXHUwMTYwXFx1MjAzOVxcdTAxNTJcXHVGRkZEXFx1MDE3RFxcdUZGRkRcXHVGRkZEXFx1MjAxOFxcdTIwMTlcXHUyMDFDXFx1MjAxRFxcdTIwMjJcXHUyMDEzXFx1MjAxNFxcdTAyRENcXHUyMTIyXFx1MDE2MVxcdTIwM0FcXHUwMTUzXFx1RkZGRFxcdTAxN0VcXHUwMTc4XFx4QTBcXHhBMVxceEEyXFx4QTNcXHhBNFxceEE1XFx4QTZcXHhBN1xceEE4XFx4QTlcXHhBQVxceEFCXFx4QUNcXHhBRFxceEFFXFx4QUZcXHhCMFxceEIxXFx4QjJcXHhCM1xceEI0XFx4QjVcXHhCNlxceEI3XFx4QjhcXHhCOVxceEJBXFx4QkJcXHhCQ1xceEJEXFx4QkVcXHhCRlxceEMwXFx4QzFcXHhDMlxceEMzXFx4QzRcXHhDNVxceEM2XFx4QzdcXHhDOFxceEM5XFx4Q0FcXHhDQlxceENDXFx4Q0RcXHhDRVxceENGXFx4RDBcXHhEMVxceEQyXFx4RDNcXHhENFxceEQ1XFx4RDZcXHhEN1xceEQ4XFx4RDlcXHhEQVxceERCXFx4RENcXHhERFxceERFXFx4REZcXHhFMFxceEUxXFx4RTJcXHhFM1xceEU0XFx4RTVcXHhFNlxceEU3XFx4RThcXHhFOVxceEVBXFx4RUJcXHhFQ1xceEVEXFx4RUVcXHhFRlxceEYwXFx4RjFcXHhGMlxceEYzXFx4RjRcXHhGNVxceEY2XFx4RjdcXHhGOFxceEY5XFx4RkFcXHhGQlxceEZDXFx4RkRcXHhGRVxceEZGXCJcbiAgICAgIH0sXG4gICAgICBcIndpbjEyNTJcIjogXCJ3aW5kb3dzMTI1MlwiLFxuICAgICAgXCJjcDEyNTJcIjogXCJ3aW5kb3dzMTI1MlwiLFxuICAgICAgXCJ3aW5kb3dzMTI1M1wiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIl9zYmNzXCIsXG4gICAgICAgIFwiY2hhcnNcIjogXCJcXHUyMEFDXFx1RkZGRFxcdTIwMUFcXHUwMTkyXFx1MjAxRVxcdTIwMjZcXHUyMDIwXFx1MjAyMVxcdUZGRkRcXHUyMDMwXFx1RkZGRFxcdTIwMzlcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdTIwMThcXHUyMDE5XFx1MjAxQ1xcdTIwMURcXHUyMDIyXFx1MjAxM1xcdTIwMTRcXHVGRkZEXFx1MjEyMlxcdUZGRkRcXHUyMDNBXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxceEEwXFx1MDM4NVxcdTAzODZcXHhBM1xceEE0XFx4QTVcXHhBNlxceEE3XFx4QThcXHhBOVxcdUZGRkRcXHhBQlxceEFDXFx4QURcXHhBRVxcdTIwMTVcXHhCMFxceEIxXFx4QjJcXHhCM1xcdTAzODRcXHhCNVxceEI2XFx4QjdcXHUwMzg4XFx1MDM4OVxcdTAzOEFcXHhCQlxcdTAzOENcXHhCRFxcdTAzOEVcXHUwMzhGXFx1MDM5MFxcdTAzOTFcXHUwMzkyXFx1MDM5M1xcdTAzOTRcXHUwMzk1XFx1MDM5NlxcdTAzOTdcXHUwMzk4XFx1MDM5OVxcdTAzOUFcXHUwMzlCXFx1MDM5Q1xcdTAzOURcXHUwMzlFXFx1MDM5RlxcdTAzQTBcXHUwM0ExXFx1RkZGRFxcdTAzQTNcXHUwM0E0XFx1MDNBNVxcdTAzQTZcXHUwM0E3XFx1MDNBOFxcdTAzQTlcXHUwM0FBXFx1MDNBQlxcdTAzQUNcXHUwM0FEXFx1MDNBRVxcdTAzQUZcXHUwM0IwXFx1MDNCMVxcdTAzQjJcXHUwM0IzXFx1MDNCNFxcdTAzQjVcXHUwM0I2XFx1MDNCN1xcdTAzQjhcXHUwM0I5XFx1MDNCQVxcdTAzQkJcXHUwM0JDXFx1MDNCRFxcdTAzQkVcXHUwM0JGXFx1MDNDMFxcdTAzQzFcXHUwM0MyXFx1MDNDM1xcdTAzQzRcXHUwM0M1XFx1MDNDNlxcdTAzQzdcXHUwM0M4XFx1MDNDOVxcdTAzQ0FcXHUwM0NCXFx1MDNDQ1xcdTAzQ0RcXHUwM0NFXFx1RkZGRFwiXG4gICAgICB9LFxuICAgICAgXCJ3aW4xMjUzXCI6IFwid2luZG93czEyNTNcIixcbiAgICAgIFwiY3AxMjUzXCI6IFwid2luZG93czEyNTNcIixcbiAgICAgIFwid2luZG93czEyNTRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJfc2Jjc1wiLFxuICAgICAgICBcImNoYXJzXCI6IFwiXFx1MjBBQ1xcdUZGRkRcXHUyMDFBXFx1MDE5MlxcdTIwMUVcXHUyMDI2XFx1MjAyMFxcdTIwMjFcXHUwMkM2XFx1MjAzMFxcdTAxNjBcXHUyMDM5XFx1MDE1MlxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHUyMDE4XFx1MjAxOVxcdTIwMUNcXHUyMDFEXFx1MjAyMlxcdTIwMTNcXHUyMDE0XFx1MDJEQ1xcdTIxMjJcXHUwMTYxXFx1MjAzQVxcdTAxNTNcXHVGRkZEXFx1RkZGRFxcdTAxNzhcXHhBMFxceEExXFx4QTJcXHhBM1xceEE0XFx4QTVcXHhBNlxceEE3XFx4QThcXHhBOVxceEFBXFx4QUJcXHhBQ1xceEFEXFx4QUVcXHhBRlxceEIwXFx4QjFcXHhCMlxceEIzXFx4QjRcXHhCNVxceEI2XFx4QjdcXHhCOFxceEI5XFx4QkFcXHhCQlxceEJDXFx4QkRcXHhCRVxceEJGXFx4QzBcXHhDMVxceEMyXFx4QzNcXHhDNFxceEM1XFx4QzZcXHhDN1xceEM4XFx4QzlcXHhDQVxceENCXFx4Q0NcXHhDRFxceENFXFx4Q0ZcXHUwMTFFXFx4RDFcXHhEMlxceEQzXFx4RDRcXHhENVxceEQ2XFx4RDdcXHhEOFxceEQ5XFx4REFcXHhEQlxceERDXFx1MDEzMFxcdTAxNUVcXHhERlxceEUwXFx4RTFcXHhFMlxceEUzXFx4RTRcXHhFNVxceEU2XFx4RTdcXHhFOFxceEU5XFx4RUFcXHhFQlxceEVDXFx4RURcXHhFRVxceEVGXFx1MDExRlxceEYxXFx4RjJcXHhGM1xceEY0XFx4RjVcXHhGNlxceEY3XFx4RjhcXHhGOVxceEZBXFx4RkJcXHhGQ1xcdTAxMzFcXHUwMTVGXFx4RkZcIlxuICAgICAgfSxcbiAgICAgIFwid2luMTI1NFwiOiBcIndpbmRvd3MxMjU0XCIsXG4gICAgICBcImNwMTI1NFwiOiBcIndpbmRvd3MxMjU0XCIsXG4gICAgICBcIndpbmRvd3MxMjU1XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwiX3NiY3NcIixcbiAgICAgICAgXCJjaGFyc1wiOiBcIlxcdTIwQUNcXHVGRkZEXFx1MjAxQVxcdTAxOTJcXHUyMDFFXFx1MjAyNlxcdTIwMjBcXHUyMDIxXFx1MDJDNlxcdTIwMzBcXHVGRkZEXFx1MjAzOVxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1MjAxOFxcdTIwMTlcXHUyMDFDXFx1MjAxRFxcdTIwMjJcXHUyMDEzXFx1MjAxNFxcdTAyRENcXHUyMTIyXFx1RkZGRFxcdTIwM0FcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx4QTBcXHhBMVxceEEyXFx4QTNcXHUyMEFBXFx4QTVcXHhBNlxceEE3XFx4QThcXHhBOVxceEQ3XFx4QUJcXHhBQ1xceEFEXFx4QUVcXHhBRlxceEIwXFx4QjFcXHhCMlxceEIzXFx4QjRcXHhCNVxceEI2XFx4QjdcXHhCOFxceEI5XFx4RjdcXHhCQlxceEJDXFx4QkRcXHhCRVxceEJGXFx1MDVCMFxcdTA1QjFcXHUwNUIyXFx1MDVCM1xcdTA1QjRcXHUwNUI1XFx1MDVCNlxcdTA1QjdcXHUwNUI4XFx1MDVCOVxcdTA1QkFcXHUwNUJCXFx1MDVCQ1xcdTA1QkRcXHUwNUJFXFx1MDVCRlxcdTA1QzBcXHUwNUMxXFx1MDVDMlxcdTA1QzNcXHUwNUYwXFx1MDVGMVxcdTA1RjJcXHUwNUYzXFx1MDVGNFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHUwNUQwXFx1MDVEMVxcdTA1RDJcXHUwNUQzXFx1MDVENFxcdTA1RDVcXHUwNUQ2XFx1MDVEN1xcdTA1RDhcXHUwNUQ5XFx1MDVEQVxcdTA1REJcXHUwNURDXFx1MDVERFxcdTA1REVcXHUwNURGXFx1MDVFMFxcdTA1RTFcXHUwNUUyXFx1MDVFM1xcdTA1RTRcXHUwNUU1XFx1MDVFNlxcdTA1RTdcXHUwNUU4XFx1MDVFOVxcdTA1RUFcXHVGRkZEXFx1RkZGRFxcdTIwMEVcXHUyMDBGXFx1RkZGRFwiXG4gICAgICB9LFxuICAgICAgXCJ3aW4xMjU1XCI6IFwid2luZG93czEyNTVcIixcbiAgICAgIFwiY3AxMjU1XCI6IFwid2luZG93czEyNTVcIixcbiAgICAgIFwid2luZG93czEyNTZcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJfc2Jjc1wiLFxuICAgICAgICBcImNoYXJzXCI6IFwiXFx1MjBBQ1xcdTA2N0VcXHUyMDFBXFx1MDE5MlxcdTIwMUVcXHUyMDI2XFx1MjAyMFxcdTIwMjFcXHUwMkM2XFx1MjAzMFxcdTA2NzlcXHUyMDM5XFx1MDE1MlxcdTA2ODZcXHUwNjk4XFx1MDY4OFxcdTA2QUZcXHUyMDE4XFx1MjAxOVxcdTIwMUNcXHUyMDFEXFx1MjAyMlxcdTIwMTNcXHUyMDE0XFx1MDZBOVxcdTIxMjJcXHUwNjkxXFx1MjAzQVxcdTAxNTNcXHUyMDBDXFx1MjAwRFxcdTA2QkFcXHhBMFxcdTA2MENcXHhBMlxceEEzXFx4QTRcXHhBNVxceEE2XFx4QTdcXHhBOFxceEE5XFx1MDZCRVxceEFCXFx4QUNcXHhBRFxceEFFXFx4QUZcXHhCMFxceEIxXFx4QjJcXHhCM1xceEI0XFx4QjVcXHhCNlxceEI3XFx4QjhcXHhCOVxcdTA2MUJcXHhCQlxceEJDXFx4QkRcXHhCRVxcdTA2MUZcXHUwNkMxXFx1MDYyMVxcdTA2MjJcXHUwNjIzXFx1MDYyNFxcdTA2MjVcXHUwNjI2XFx1MDYyN1xcdTA2MjhcXHUwNjI5XFx1MDYyQVxcdTA2MkJcXHUwNjJDXFx1MDYyRFxcdTA2MkVcXHUwNjJGXFx1MDYzMFxcdTA2MzFcXHUwNjMyXFx1MDYzM1xcdTA2MzRcXHUwNjM1XFx1MDYzNlxceEQ3XFx1MDYzN1xcdTA2MzhcXHUwNjM5XFx1MDYzQVxcdTA2NDBcXHUwNjQxXFx1MDY0MlxcdTA2NDNcXHhFMFxcdTA2NDRcXHhFMlxcdTA2NDVcXHUwNjQ2XFx1MDY0N1xcdTA2NDhcXHhFN1xceEU4XFx4RTlcXHhFQVxceEVCXFx1MDY0OVxcdTA2NEFcXHhFRVxceEVGXFx1MDY0QlxcdTA2NENcXHUwNjREXFx1MDY0RVxceEY0XFx1MDY0RlxcdTA2NTBcXHhGN1xcdTA2NTFcXHhGOVxcdTA2NTJcXHhGQlxceEZDXFx1MjAwRVxcdTIwMEZcXHUwNkQyXCJcbiAgICAgIH0sXG4gICAgICBcIndpbjEyNTZcIjogXCJ3aW5kb3dzMTI1NlwiLFxuICAgICAgXCJjcDEyNTZcIjogXCJ3aW5kb3dzMTI1NlwiLFxuICAgICAgXCJ3aW5kb3dzMTI1N1wiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIl9zYmNzXCIsXG4gICAgICAgIFwiY2hhcnNcIjogXCJcXHUyMEFDXFx1RkZGRFxcdTIwMUFcXHVGRkZEXFx1MjAxRVxcdTIwMjZcXHUyMDIwXFx1MjAyMVxcdUZGRkRcXHUyMDMwXFx1RkZGRFxcdTIwMzlcXHVGRkZEXFx4QThcXHUwMkM3XFx4QjhcXHVGRkZEXFx1MjAxOFxcdTIwMTlcXHUyMDFDXFx1MjAxRFxcdTIwMjJcXHUyMDEzXFx1MjAxNFxcdUZGRkRcXHUyMTIyXFx1RkZGRFxcdTIwM0FcXHVGRkZEXFx4QUZcXHUwMkRCXFx1RkZGRFxceEEwXFx1RkZGRFxceEEyXFx4QTNcXHhBNFxcdUZGRkRcXHhBNlxceEE3XFx4RDhcXHhBOVxcdTAxNTZcXHhBQlxceEFDXFx4QURcXHhBRVxceEM2XFx4QjBcXHhCMVxceEIyXFx4QjNcXHhCNFxceEI1XFx4QjZcXHhCN1xceEY4XFx4QjlcXHUwMTU3XFx4QkJcXHhCQ1xceEJEXFx4QkVcXHhFNlxcdTAxMDRcXHUwMTJFXFx1MDEwMFxcdTAxMDZcXHhDNFxceEM1XFx1MDExOFxcdTAxMTJcXHUwMTBDXFx4QzlcXHUwMTc5XFx1MDExNlxcdTAxMjJcXHUwMTM2XFx1MDEyQVxcdTAxM0JcXHUwMTYwXFx1MDE0M1xcdTAxNDVcXHhEM1xcdTAxNENcXHhENVxceEQ2XFx4RDdcXHUwMTcyXFx1MDE0MVxcdTAxNUFcXHUwMTZBXFx4RENcXHUwMTdCXFx1MDE3RFxceERGXFx1MDEwNVxcdTAxMkZcXHUwMTAxXFx1MDEwN1xceEU0XFx4RTVcXHUwMTE5XFx1MDExM1xcdTAxMERcXHhFOVxcdTAxN0FcXHUwMTE3XFx1MDEyM1xcdTAxMzdcXHUwMTJCXFx1MDEzQ1xcdTAxNjFcXHUwMTQ0XFx1MDE0NlxceEYzXFx1MDE0RFxceEY1XFx4RjZcXHhGN1xcdTAxNzNcXHUwMTQyXFx1MDE1QlxcdTAxNkJcXHhGQ1xcdTAxN0NcXHUwMTdFXFx1MDJEOVwiXG4gICAgICB9LFxuICAgICAgXCJ3aW4xMjU3XCI6IFwid2luZG93czEyNTdcIixcbiAgICAgIFwiY3AxMjU3XCI6IFwid2luZG93czEyNTdcIixcbiAgICAgIFwid2luZG93czEyNThcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJfc2Jjc1wiLFxuICAgICAgICBcImNoYXJzXCI6IFwiXFx1MjBBQ1xcdUZGRkRcXHUyMDFBXFx1MDE5MlxcdTIwMUVcXHUyMDI2XFx1MjAyMFxcdTIwMjFcXHUwMkM2XFx1MjAzMFxcdUZGRkRcXHUyMDM5XFx1MDE1MlxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHUyMDE4XFx1MjAxOVxcdTIwMUNcXHUyMDFEXFx1MjAyMlxcdTIwMTNcXHUyMDE0XFx1MDJEQ1xcdTIxMjJcXHVGRkZEXFx1MjAzQVxcdTAxNTNcXHVGRkZEXFx1RkZGRFxcdTAxNzhcXHhBMFxceEExXFx4QTJcXHhBM1xceEE0XFx4QTVcXHhBNlxceEE3XFx4QThcXHhBOVxceEFBXFx4QUJcXHhBQ1xceEFEXFx4QUVcXHhBRlxceEIwXFx4QjFcXHhCMlxceEIzXFx4QjRcXHhCNVxceEI2XFx4QjdcXHhCOFxceEI5XFx4QkFcXHhCQlxceEJDXFx4QkRcXHhCRVxceEJGXFx4QzBcXHhDMVxceEMyXFx1MDEwMlxceEM0XFx4QzVcXHhDNlxceEM3XFx4QzhcXHhDOVxceENBXFx4Q0JcXHUwMzAwXFx4Q0RcXHhDRVxceENGXFx1MDExMFxceEQxXFx1MDMwOVxceEQzXFx4RDRcXHUwMUEwXFx4RDZcXHhEN1xceEQ4XFx4RDlcXHhEQVxceERCXFx4RENcXHUwMUFGXFx1MDMwM1xceERGXFx4RTBcXHhFMVxceEUyXFx1MDEwM1xceEU0XFx4RTVcXHhFNlxceEU3XFx4RThcXHhFOVxceEVBXFx4RUJcXHUwMzAxXFx4RURcXHhFRVxceEVGXFx1MDExMVxceEYxXFx1MDMyM1xceEYzXFx4RjRcXHUwMUExXFx4RjZcXHhGN1xceEY4XFx4RjlcXHhGQVxceEZCXFx4RkNcXHUwMUIwXFx1MjBBQlxceEZGXCJcbiAgICAgIH0sXG4gICAgICBcIndpbjEyNThcIjogXCJ3aW5kb3dzMTI1OFwiLFxuICAgICAgXCJjcDEyNThcIjogXCJ3aW5kb3dzMTI1OFwiLFxuICAgICAgXCJpc284ODU5MVwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIl9zYmNzXCIsXG4gICAgICAgIFwiY2hhcnNcIjogXCJcXHg4MFxceDgxXFx4ODJcXHg4M1xceDg0XFx4ODVcXHg4NlxceDg3XFx4ODhcXHg4OVxceDhBXFx4OEJcXHg4Q1xceDhEXFx4OEVcXHg4RlxceDkwXFx4OTFcXHg5MlxceDkzXFx4OTRcXHg5NVxceDk2XFx4OTdcXHg5OFxceDk5XFx4OUFcXHg5QlxceDlDXFx4OURcXHg5RVxceDlGXFx4QTBcXHhBMVxceEEyXFx4QTNcXHhBNFxceEE1XFx4QTZcXHhBN1xceEE4XFx4QTlcXHhBQVxceEFCXFx4QUNcXHhBRFxceEFFXFx4QUZcXHhCMFxceEIxXFx4QjJcXHhCM1xceEI0XFx4QjVcXHhCNlxceEI3XFx4QjhcXHhCOVxceEJBXFx4QkJcXHhCQ1xceEJEXFx4QkVcXHhCRlxceEMwXFx4QzFcXHhDMlxceEMzXFx4QzRcXHhDNVxceEM2XFx4QzdcXHhDOFxceEM5XFx4Q0FcXHhDQlxceENDXFx4Q0RcXHhDRVxceENGXFx4RDBcXHhEMVxceEQyXFx4RDNcXHhENFxceEQ1XFx4RDZcXHhEN1xceEQ4XFx4RDlcXHhEQVxceERCXFx4RENcXHhERFxceERFXFx4REZcXHhFMFxceEUxXFx4RTJcXHhFM1xceEU0XFx4RTVcXHhFNlxceEU3XFx4RThcXHhFOVxceEVBXFx4RUJcXHhFQ1xceEVEXFx4RUVcXHhFRlxceEYwXFx4RjFcXHhGMlxceEYzXFx4RjRcXHhGNVxceEY2XFx4RjdcXHhGOFxceEY5XFx4RkFcXHhGQlxceEZDXFx4RkRcXHhGRVxceEZGXCJcbiAgICAgIH0sXG4gICAgICBcImNwMjg1OTFcIjogXCJpc284ODU5MVwiLFxuICAgICAgXCJpc284ODU5MlwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIl9zYmNzXCIsXG4gICAgICAgIFwiY2hhcnNcIjogXCJcXHg4MFxceDgxXFx4ODJcXHg4M1xceDg0XFx4ODVcXHg4NlxceDg3XFx4ODhcXHg4OVxceDhBXFx4OEJcXHg4Q1xceDhEXFx4OEVcXHg4RlxceDkwXFx4OTFcXHg5MlxceDkzXFx4OTRcXHg5NVxceDk2XFx4OTdcXHg5OFxceDk5XFx4OUFcXHg5QlxceDlDXFx4OURcXHg5RVxceDlGXFx4QTBcXHUwMTA0XFx1MDJEOFxcdTAxNDFcXHhBNFxcdTAxM0RcXHUwMTVBXFx4QTdcXHhBOFxcdTAxNjBcXHUwMTVFXFx1MDE2NFxcdTAxNzlcXHhBRFxcdTAxN0RcXHUwMTdCXFx4QjBcXHUwMTA1XFx1MDJEQlxcdTAxNDJcXHhCNFxcdTAxM0VcXHUwMTVCXFx1MDJDN1xceEI4XFx1MDE2MVxcdTAxNUZcXHUwMTY1XFx1MDE3QVxcdTAyRERcXHUwMTdFXFx1MDE3Q1xcdTAxNTRcXHhDMVxceEMyXFx1MDEwMlxceEM0XFx1MDEzOVxcdTAxMDZcXHhDN1xcdTAxMENcXHhDOVxcdTAxMThcXHhDQlxcdTAxMUFcXHhDRFxceENFXFx1MDEwRVxcdTAxMTBcXHUwMTQzXFx1MDE0N1xceEQzXFx4RDRcXHUwMTUwXFx4RDZcXHhEN1xcdTAxNThcXHUwMTZFXFx4REFcXHUwMTcwXFx4RENcXHhERFxcdTAxNjJcXHhERlxcdTAxNTVcXHhFMVxceEUyXFx1MDEwM1xceEU0XFx1MDEzQVxcdTAxMDdcXHhFN1xcdTAxMERcXHhFOVxcdTAxMTlcXHhFQlxcdTAxMUJcXHhFRFxceEVFXFx1MDEwRlxcdTAxMTFcXHUwMTQ0XFx1MDE0OFxceEYzXFx4RjRcXHUwMTUxXFx4RjZcXHhGN1xcdTAxNTlcXHUwMTZGXFx4RkFcXHUwMTcxXFx4RkNcXHhGRFxcdTAxNjNcXHUwMkQ5XCJcbiAgICAgIH0sXG4gICAgICBcImNwMjg1OTJcIjogXCJpc284ODU5MlwiLFxuICAgICAgXCJpc284ODU5M1wiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIl9zYmNzXCIsXG4gICAgICAgIFwiY2hhcnNcIjogXCJcXHg4MFxceDgxXFx4ODJcXHg4M1xceDg0XFx4ODVcXHg4NlxceDg3XFx4ODhcXHg4OVxceDhBXFx4OEJcXHg4Q1xceDhEXFx4OEVcXHg4RlxceDkwXFx4OTFcXHg5MlxceDkzXFx4OTRcXHg5NVxceDk2XFx4OTdcXHg5OFxceDk5XFx4OUFcXHg5QlxceDlDXFx4OURcXHg5RVxceDlGXFx4QTBcXHUwMTI2XFx1MDJEOFxceEEzXFx4QTRcXHVGRkZEXFx1MDEyNFxceEE3XFx4QThcXHUwMTMwXFx1MDE1RVxcdTAxMUVcXHUwMTM0XFx4QURcXHVGRkZEXFx1MDE3QlxceEIwXFx1MDEyN1xceEIyXFx4QjNcXHhCNFxceEI1XFx1MDEyNVxceEI3XFx4QjhcXHUwMTMxXFx1MDE1RlxcdTAxMUZcXHUwMTM1XFx4QkRcXHVGRkZEXFx1MDE3Q1xceEMwXFx4QzFcXHhDMlxcdUZGRkRcXHhDNFxcdTAxMEFcXHUwMTA4XFx4QzdcXHhDOFxceEM5XFx4Q0FcXHhDQlxceENDXFx4Q0RcXHhDRVxceENGXFx1RkZGRFxceEQxXFx4RDJcXHhEM1xceEQ0XFx1MDEyMFxceEQ2XFx4RDdcXHUwMTFDXFx4RDlcXHhEQVxceERCXFx4RENcXHUwMTZDXFx1MDE1Q1xceERGXFx4RTBcXHhFMVxceEUyXFx1RkZGRFxceEU0XFx1MDEwQlxcdTAxMDlcXHhFN1xceEU4XFx4RTlcXHhFQVxceEVCXFx4RUNcXHhFRFxceEVFXFx4RUZcXHVGRkZEXFx4RjFcXHhGMlxceEYzXFx4RjRcXHUwMTIxXFx4RjZcXHhGN1xcdTAxMURcXHhGOVxceEZBXFx4RkJcXHhGQ1xcdTAxNkRcXHUwMTVEXFx1MDJEOVwiXG4gICAgICB9LFxuICAgICAgXCJjcDI4NTkzXCI6IFwiaXNvODg1OTNcIixcbiAgICAgIFwiaXNvODg1OTRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJfc2Jjc1wiLFxuICAgICAgICBcImNoYXJzXCI6IFwiXFx4ODBcXHg4MVxceDgyXFx4ODNcXHg4NFxceDg1XFx4ODZcXHg4N1xceDg4XFx4ODlcXHg4QVxceDhCXFx4OENcXHg4RFxceDhFXFx4OEZcXHg5MFxceDkxXFx4OTJcXHg5M1xceDk0XFx4OTVcXHg5NlxceDk3XFx4OThcXHg5OVxceDlBXFx4OUJcXHg5Q1xceDlEXFx4OUVcXHg5RlxceEEwXFx1MDEwNFxcdTAxMzhcXHUwMTU2XFx4QTRcXHUwMTI4XFx1MDEzQlxceEE3XFx4QThcXHUwMTYwXFx1MDExMlxcdTAxMjJcXHUwMTY2XFx4QURcXHUwMTdEXFx4QUZcXHhCMFxcdTAxMDVcXHUwMkRCXFx1MDE1N1xceEI0XFx1MDEyOVxcdTAxM0NcXHUwMkM3XFx4QjhcXHUwMTYxXFx1MDExM1xcdTAxMjNcXHUwMTY3XFx1MDE0QVxcdTAxN0VcXHUwMTRCXFx1MDEwMFxceEMxXFx4QzJcXHhDM1xceEM0XFx4QzVcXHhDNlxcdTAxMkVcXHUwMTBDXFx4QzlcXHUwMTE4XFx4Q0JcXHUwMTE2XFx4Q0RcXHhDRVxcdTAxMkFcXHUwMTEwXFx1MDE0NVxcdTAxNENcXHUwMTM2XFx4RDRcXHhENVxceEQ2XFx4RDdcXHhEOFxcdTAxNzJcXHhEQVxceERCXFx4RENcXHUwMTY4XFx1MDE2QVxceERGXFx1MDEwMVxceEUxXFx4RTJcXHhFM1xceEU0XFx4RTVcXHhFNlxcdTAxMkZcXHUwMTBEXFx4RTlcXHUwMTE5XFx4RUJcXHUwMTE3XFx4RURcXHhFRVxcdTAxMkJcXHUwMTExXFx1MDE0NlxcdTAxNERcXHUwMTM3XFx4RjRcXHhGNVxceEY2XFx4RjdcXHhGOFxcdTAxNzNcXHhGQVxceEZCXFx4RkNcXHUwMTY5XFx1MDE2QlxcdTAyRDlcIlxuICAgICAgfSxcbiAgICAgIFwiY3AyODU5NFwiOiBcImlzbzg4NTk0XCIsXG4gICAgICBcImlzbzg4NTk1XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwiX3NiY3NcIixcbiAgICAgICAgXCJjaGFyc1wiOiBcIlxceDgwXFx4ODFcXHg4MlxceDgzXFx4ODRcXHg4NVxceDg2XFx4ODdcXHg4OFxceDg5XFx4OEFcXHg4QlxceDhDXFx4OERcXHg4RVxceDhGXFx4OTBcXHg5MVxceDkyXFx4OTNcXHg5NFxceDk1XFx4OTZcXHg5N1xceDk4XFx4OTlcXHg5QVxceDlCXFx4OUNcXHg5RFxceDlFXFx4OUZcXHhBMFxcdTA0MDFcXHUwNDAyXFx1MDQwM1xcdTA0MDRcXHUwNDA1XFx1MDQwNlxcdTA0MDdcXHUwNDA4XFx1MDQwOVxcdTA0MEFcXHUwNDBCXFx1MDQwQ1xceEFEXFx1MDQwRVxcdTA0MEZcXHUwNDEwXFx1MDQxMVxcdTA0MTJcXHUwNDEzXFx1MDQxNFxcdTA0MTVcXHUwNDE2XFx1MDQxN1xcdTA0MThcXHUwNDE5XFx1MDQxQVxcdTA0MUJcXHUwNDFDXFx1MDQxRFxcdTA0MUVcXHUwNDFGXFx1MDQyMFxcdTA0MjFcXHUwNDIyXFx1MDQyM1xcdTA0MjRcXHUwNDI1XFx1MDQyNlxcdTA0MjdcXHUwNDI4XFx1MDQyOVxcdTA0MkFcXHUwNDJCXFx1MDQyQ1xcdTA0MkRcXHUwNDJFXFx1MDQyRlxcdTA0MzBcXHUwNDMxXFx1MDQzMlxcdTA0MzNcXHUwNDM0XFx1MDQzNVxcdTA0MzZcXHUwNDM3XFx1MDQzOFxcdTA0MzlcXHUwNDNBXFx1MDQzQlxcdTA0M0NcXHUwNDNEXFx1MDQzRVxcdTA0M0ZcXHUwNDQwXFx1MDQ0MVxcdTA0NDJcXHUwNDQzXFx1MDQ0NFxcdTA0NDVcXHUwNDQ2XFx1MDQ0N1xcdTA0NDhcXHUwNDQ5XFx1MDQ0QVxcdTA0NEJcXHUwNDRDXFx1MDQ0RFxcdTA0NEVcXHUwNDRGXFx1MjExNlxcdTA0NTFcXHUwNDUyXFx1MDQ1M1xcdTA0NTRcXHUwNDU1XFx1MDQ1NlxcdTA0NTdcXHUwNDU4XFx1MDQ1OVxcdTA0NUFcXHUwNDVCXFx1MDQ1Q1xceEE3XFx1MDQ1RVxcdTA0NUZcIlxuICAgICAgfSxcbiAgICAgIFwiY3AyODU5NVwiOiBcImlzbzg4NTk1XCIsXG4gICAgICBcImlzbzg4NTk2XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwiX3NiY3NcIixcbiAgICAgICAgXCJjaGFyc1wiOiBcIlxceDgwXFx4ODFcXHg4MlxceDgzXFx4ODRcXHg4NVxceDg2XFx4ODdcXHg4OFxceDg5XFx4OEFcXHg4QlxceDhDXFx4OERcXHg4RVxceDhGXFx4OTBcXHg5MVxceDkyXFx4OTNcXHg5NFxceDk1XFx4OTZcXHg5N1xceDk4XFx4OTlcXHg5QVxceDlCXFx4OUNcXHg5RFxceDlFXFx4OUZcXHhBMFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxceEE0XFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdTA2MENcXHhBRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHUwNjFCXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1MDYxRlxcdUZGRkRcXHUwNjIxXFx1MDYyMlxcdTA2MjNcXHUwNjI0XFx1MDYyNVxcdTA2MjZcXHUwNjI3XFx1MDYyOFxcdTA2MjlcXHUwNjJBXFx1MDYyQlxcdTA2MkNcXHUwNjJEXFx1MDYyRVxcdTA2MkZcXHUwNjMwXFx1MDYzMVxcdTA2MzJcXHUwNjMzXFx1MDYzNFxcdTA2MzVcXHUwNjM2XFx1MDYzN1xcdTA2MzhcXHUwNjM5XFx1MDYzQVxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1MDY0MFxcdTA2NDFcXHUwNjQyXFx1MDY0M1xcdTA2NDRcXHUwNjQ1XFx1MDY0NlxcdTA2NDdcXHUwNjQ4XFx1MDY0OVxcdTA2NEFcXHUwNjRCXFx1MDY0Q1xcdTA2NERcXHUwNjRFXFx1MDY0RlxcdTA2NTBcXHUwNjUxXFx1MDY1MlxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcIlxuICAgICAgfSxcbiAgICAgIFwiY3AyODU5NlwiOiBcImlzbzg4NTk2XCIsXG4gICAgICBcImlzbzg4NTk3XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwiX3NiY3NcIixcbiAgICAgICAgXCJjaGFyc1wiOiBcIlxceDgwXFx4ODFcXHg4MlxceDgzXFx4ODRcXHg4NVxceDg2XFx4ODdcXHg4OFxceDg5XFx4OEFcXHg4QlxceDhDXFx4OERcXHg4RVxceDhGXFx4OTBcXHg5MVxceDkyXFx4OTNcXHg5NFxceDk1XFx4OTZcXHg5N1xceDk4XFx4OTlcXHg5QVxceDlCXFx4OUNcXHg5RFxceDlFXFx4OUZcXHhBMFxcdTIwMThcXHUyMDE5XFx4QTNcXHUyMEFDXFx1MjBBRlxceEE2XFx4QTdcXHhBOFxceEE5XFx1MDM3QVxceEFCXFx4QUNcXHhBRFxcdUZGRkRcXHUyMDE1XFx4QjBcXHhCMVxceEIyXFx4QjNcXHUwMzg0XFx1MDM4NVxcdTAzODZcXHhCN1xcdTAzODhcXHUwMzg5XFx1MDM4QVxceEJCXFx1MDM4Q1xceEJEXFx1MDM4RVxcdTAzOEZcXHUwMzkwXFx1MDM5MVxcdTAzOTJcXHUwMzkzXFx1MDM5NFxcdTAzOTVcXHUwMzk2XFx1MDM5N1xcdTAzOThcXHUwMzk5XFx1MDM5QVxcdTAzOUJcXHUwMzlDXFx1MDM5RFxcdTAzOUVcXHUwMzlGXFx1MDNBMFxcdTAzQTFcXHVGRkZEXFx1MDNBM1xcdTAzQTRcXHUwM0E1XFx1MDNBNlxcdTAzQTdcXHUwM0E4XFx1MDNBOVxcdTAzQUFcXHUwM0FCXFx1MDNBQ1xcdTAzQURcXHUwM0FFXFx1MDNBRlxcdTAzQjBcXHUwM0IxXFx1MDNCMlxcdTAzQjNcXHUwM0I0XFx1MDNCNVxcdTAzQjZcXHUwM0I3XFx1MDNCOFxcdTAzQjlcXHUwM0JBXFx1MDNCQlxcdTAzQkNcXHUwM0JEXFx1MDNCRVxcdTAzQkZcXHUwM0MwXFx1MDNDMVxcdTAzQzJcXHUwM0MzXFx1MDNDNFxcdTAzQzVcXHUwM0M2XFx1MDNDN1xcdTAzQzhcXHUwM0M5XFx1MDNDQVxcdTAzQ0JcXHUwM0NDXFx1MDNDRFxcdTAzQ0VcXHVGRkZEXCJcbiAgICAgIH0sXG4gICAgICBcImNwMjg1OTdcIjogXCJpc284ODU5N1wiLFxuICAgICAgXCJpc284ODU5OFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIl9zYmNzXCIsXG4gICAgICAgIFwiY2hhcnNcIjogXCJcXHg4MFxceDgxXFx4ODJcXHg4M1xceDg0XFx4ODVcXHg4NlxceDg3XFx4ODhcXHg4OVxceDhBXFx4OEJcXHg4Q1xceDhEXFx4OEVcXHg4RlxceDkwXFx4OTFcXHg5MlxceDkzXFx4OTRcXHg5NVxceDk2XFx4OTdcXHg5OFxceDk5XFx4OUFcXHg5QlxceDlDXFx4OURcXHg5RVxceDlGXFx4QTBcXHVGRkZEXFx4QTJcXHhBM1xceEE0XFx4QTVcXHhBNlxceEE3XFx4QThcXHhBOVxceEQ3XFx4QUJcXHhBQ1xceEFEXFx4QUVcXHhBRlxceEIwXFx4QjFcXHhCMlxceEIzXFx4QjRcXHhCNVxceEI2XFx4QjdcXHhCOFxceEI5XFx4RjdcXHhCQlxceEJDXFx4QkRcXHhCRVxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1MjAxN1xcdTA1RDBcXHUwNUQxXFx1MDVEMlxcdTA1RDNcXHUwNUQ0XFx1MDVENVxcdTA1RDZcXHUwNUQ3XFx1MDVEOFxcdTA1RDlcXHUwNURBXFx1MDVEQlxcdTA1RENcXHUwNUREXFx1MDVERVxcdTA1REZcXHUwNUUwXFx1MDVFMVxcdTA1RTJcXHUwNUUzXFx1MDVFNFxcdTA1RTVcXHUwNUU2XFx1MDVFN1xcdTA1RThcXHUwNUU5XFx1MDVFQVxcdUZGRkRcXHVGRkZEXFx1MjAwRVxcdTIwMEZcXHVGRkZEXCJcbiAgICAgIH0sXG4gICAgICBcImNwMjg1OThcIjogXCJpc284ODU5OFwiLFxuICAgICAgXCJpc284ODU5OVwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIl9zYmNzXCIsXG4gICAgICAgIFwiY2hhcnNcIjogXCJcXHg4MFxceDgxXFx4ODJcXHg4M1xceDg0XFx4ODVcXHg4NlxceDg3XFx4ODhcXHg4OVxceDhBXFx4OEJcXHg4Q1xceDhEXFx4OEVcXHg4RlxceDkwXFx4OTFcXHg5MlxceDkzXFx4OTRcXHg5NVxceDk2XFx4OTdcXHg5OFxceDk5XFx4OUFcXHg5QlxceDlDXFx4OURcXHg5RVxceDlGXFx4QTBcXHhBMVxceEEyXFx4QTNcXHhBNFxceEE1XFx4QTZcXHhBN1xceEE4XFx4QTlcXHhBQVxceEFCXFx4QUNcXHhBRFxceEFFXFx4QUZcXHhCMFxceEIxXFx4QjJcXHhCM1xceEI0XFx4QjVcXHhCNlxceEI3XFx4QjhcXHhCOVxceEJBXFx4QkJcXHhCQ1xceEJEXFx4QkVcXHhCRlxceEMwXFx4QzFcXHhDMlxceEMzXFx4QzRcXHhDNVxceEM2XFx4QzdcXHhDOFxceEM5XFx4Q0FcXHhDQlxceENDXFx4Q0RcXHhDRVxceENGXFx1MDExRVxceEQxXFx4RDJcXHhEM1xceEQ0XFx4RDVcXHhENlxceEQ3XFx4RDhcXHhEOVxceERBXFx4REJcXHhEQ1xcdTAxMzBcXHUwMTVFXFx4REZcXHhFMFxceEUxXFx4RTJcXHhFM1xceEU0XFx4RTVcXHhFNlxceEU3XFx4RThcXHhFOVxceEVBXFx4RUJcXHhFQ1xceEVEXFx4RUVcXHhFRlxcdTAxMUZcXHhGMVxceEYyXFx4RjNcXHhGNFxceEY1XFx4RjZcXHhGN1xceEY4XFx4RjlcXHhGQVxceEZCXFx4RkNcXHUwMTMxXFx1MDE1RlxceEZGXCJcbiAgICAgIH0sXG4gICAgICBcImNwMjg1OTlcIjogXCJpc284ODU5OVwiLFxuICAgICAgXCJpc284ODU5MTBcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJfc2Jjc1wiLFxuICAgICAgICBcImNoYXJzXCI6IFwiXFx4ODBcXHg4MVxceDgyXFx4ODNcXHg4NFxceDg1XFx4ODZcXHg4N1xceDg4XFx4ODlcXHg4QVxceDhCXFx4OENcXHg4RFxceDhFXFx4OEZcXHg5MFxceDkxXFx4OTJcXHg5M1xceDk0XFx4OTVcXHg5NlxceDk3XFx4OThcXHg5OVxceDlBXFx4OUJcXHg5Q1xceDlEXFx4OUVcXHg5RlxceEEwXFx1MDEwNFxcdTAxMTJcXHUwMTIyXFx1MDEyQVxcdTAxMjhcXHUwMTM2XFx4QTdcXHUwMTNCXFx1MDExMFxcdTAxNjBcXHUwMTY2XFx1MDE3RFxceEFEXFx1MDE2QVxcdTAxNEFcXHhCMFxcdTAxMDVcXHUwMTEzXFx1MDEyM1xcdTAxMkJcXHUwMTI5XFx1MDEzN1xceEI3XFx1MDEzQ1xcdTAxMTFcXHUwMTYxXFx1MDE2N1xcdTAxN0VcXHUyMDE1XFx1MDE2QlxcdTAxNEJcXHUwMTAwXFx4QzFcXHhDMlxceEMzXFx4QzRcXHhDNVxceEM2XFx1MDEyRVxcdTAxMENcXHhDOVxcdTAxMThcXHhDQlxcdTAxMTZcXHhDRFxceENFXFx4Q0ZcXHhEMFxcdTAxNDVcXHUwMTRDXFx4RDNcXHhENFxceEQ1XFx4RDZcXHUwMTY4XFx4RDhcXHUwMTcyXFx4REFcXHhEQlxceERDXFx4RERcXHhERVxceERGXFx1MDEwMVxceEUxXFx4RTJcXHhFM1xceEU0XFx4RTVcXHhFNlxcdTAxMkZcXHUwMTBEXFx4RTlcXHUwMTE5XFx4RUJcXHUwMTE3XFx4RURcXHhFRVxceEVGXFx4RjBcXHUwMTQ2XFx1MDE0RFxceEYzXFx4RjRcXHhGNVxceEY2XFx1MDE2OVxceEY4XFx1MDE3M1xceEZBXFx4RkJcXHhGQ1xceEZEXFx4RkVcXHUwMTM4XCJcbiAgICAgIH0sXG4gICAgICBcImNwMjg2MDBcIjogXCJpc284ODU5MTBcIixcbiAgICAgIFwiaXNvODg1OTExXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwiX3NiY3NcIixcbiAgICAgICAgXCJjaGFyc1wiOiBcIlxceDgwXFx4ODFcXHg4MlxceDgzXFx4ODRcXHg4NVxceDg2XFx4ODdcXHg4OFxceDg5XFx4OEFcXHg4QlxceDhDXFx4OERcXHg4RVxceDhGXFx4OTBcXHg5MVxceDkyXFx4OTNcXHg5NFxceDk1XFx4OTZcXHg5N1xceDk4XFx4OTlcXHg5QVxceDlCXFx4OUNcXHg5RFxceDlFXFx4OUZcXHhBMFxcdTBFMDFcXHUwRTAyXFx1MEUwM1xcdTBFMDRcXHUwRTA1XFx1MEUwNlxcdTBFMDdcXHUwRTA4XFx1MEUwOVxcdTBFMEFcXHUwRTBCXFx1MEUwQ1xcdTBFMERcXHUwRTBFXFx1MEUwRlxcdTBFMTBcXHUwRTExXFx1MEUxMlxcdTBFMTNcXHUwRTE0XFx1MEUxNVxcdTBFMTZcXHUwRTE3XFx1MEUxOFxcdTBFMTlcXHUwRTFBXFx1MEUxQlxcdTBFMUNcXHUwRTFEXFx1MEUxRVxcdTBFMUZcXHUwRTIwXFx1MEUyMVxcdTBFMjJcXHUwRTIzXFx1MEUyNFxcdTBFMjVcXHUwRTI2XFx1MEUyN1xcdTBFMjhcXHUwRTI5XFx1MEUyQVxcdTBFMkJcXHUwRTJDXFx1MEUyRFxcdTBFMkVcXHUwRTJGXFx1MEUzMFxcdTBFMzFcXHUwRTMyXFx1MEUzM1xcdTBFMzRcXHUwRTM1XFx1MEUzNlxcdTBFMzdcXHUwRTM4XFx1MEUzOVxcdTBFM0FcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1MEUzRlxcdTBFNDBcXHUwRTQxXFx1MEU0MlxcdTBFNDNcXHUwRTQ0XFx1MEU0NVxcdTBFNDZcXHUwRTQ3XFx1MEU0OFxcdTBFNDlcXHUwRTRBXFx1MEU0QlxcdTBFNENcXHUwRTREXFx1MEU0RVxcdTBFNEZcXHUwRTUwXFx1MEU1MVxcdTBFNTJcXHUwRTUzXFx1MEU1NFxcdTBFNTVcXHUwRTU2XFx1MEU1N1xcdTBFNThcXHUwRTU5XFx1MEU1QVxcdTBFNUJcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXCJcbiAgICAgIH0sXG4gICAgICBcImNwMjg2MDFcIjogXCJpc284ODU5MTFcIixcbiAgICAgIFwiaXNvODg1OTEzXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwiX3NiY3NcIixcbiAgICAgICAgXCJjaGFyc1wiOiBcIlxceDgwXFx4ODFcXHg4MlxceDgzXFx4ODRcXHg4NVxceDg2XFx4ODdcXHg4OFxceDg5XFx4OEFcXHg4QlxceDhDXFx4OERcXHg4RVxceDhGXFx4OTBcXHg5MVxceDkyXFx4OTNcXHg5NFxceDk1XFx4OTZcXHg5N1xceDk4XFx4OTlcXHg5QVxceDlCXFx4OUNcXHg5RFxceDlFXFx4OUZcXHhBMFxcdTIwMURcXHhBMlxceEEzXFx4QTRcXHUyMDFFXFx4QTZcXHhBN1xceEQ4XFx4QTlcXHUwMTU2XFx4QUJcXHhBQ1xceEFEXFx4QUVcXHhDNlxceEIwXFx4QjFcXHhCMlxceEIzXFx1MjAxQ1xceEI1XFx4QjZcXHhCN1xceEY4XFx4QjlcXHUwMTU3XFx4QkJcXHhCQ1xceEJEXFx4QkVcXHhFNlxcdTAxMDRcXHUwMTJFXFx1MDEwMFxcdTAxMDZcXHhDNFxceEM1XFx1MDExOFxcdTAxMTJcXHUwMTBDXFx4QzlcXHUwMTc5XFx1MDExNlxcdTAxMjJcXHUwMTM2XFx1MDEyQVxcdTAxM0JcXHUwMTYwXFx1MDE0M1xcdTAxNDVcXHhEM1xcdTAxNENcXHhENVxceEQ2XFx4RDdcXHUwMTcyXFx1MDE0MVxcdTAxNUFcXHUwMTZBXFx4RENcXHUwMTdCXFx1MDE3RFxceERGXFx1MDEwNVxcdTAxMkZcXHUwMTAxXFx1MDEwN1xceEU0XFx4RTVcXHUwMTE5XFx1MDExM1xcdTAxMERcXHhFOVxcdTAxN0FcXHUwMTE3XFx1MDEyM1xcdTAxMzdcXHUwMTJCXFx1MDEzQ1xcdTAxNjFcXHUwMTQ0XFx1MDE0NlxceEYzXFx1MDE0RFxceEY1XFx4RjZcXHhGN1xcdTAxNzNcXHUwMTQyXFx1MDE1QlxcdTAxNkJcXHhGQ1xcdTAxN0NcXHUwMTdFXFx1MjAxOVwiXG4gICAgICB9LFxuICAgICAgXCJjcDI4NjAzXCI6IFwiaXNvODg1OTEzXCIsXG4gICAgICBcImlzbzg4NTkxNFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIl9zYmNzXCIsXG4gICAgICAgIFwiY2hhcnNcIjogXCJcXHg4MFxceDgxXFx4ODJcXHg4M1xceDg0XFx4ODVcXHg4NlxceDg3XFx4ODhcXHg4OVxceDhBXFx4OEJcXHg4Q1xceDhEXFx4OEVcXHg4RlxceDkwXFx4OTFcXHg5MlxceDkzXFx4OTRcXHg5NVxceDk2XFx4OTdcXHg5OFxceDk5XFx4OUFcXHg5QlxceDlDXFx4OURcXHg5RVxceDlGXFx4QTBcXHUxRTAyXFx1MUUwM1xceEEzXFx1MDEwQVxcdTAxMEJcXHUxRTBBXFx4QTdcXHUxRTgwXFx4QTlcXHUxRTgyXFx1MUUwQlxcdTFFRjJcXHhBRFxceEFFXFx1MDE3OFxcdTFFMUVcXHUxRTFGXFx1MDEyMFxcdTAxMjFcXHUxRTQwXFx1MUU0MVxceEI2XFx1MUU1NlxcdTFFODFcXHUxRTU3XFx1MUU4M1xcdTFFNjBcXHUxRUYzXFx1MUU4NFxcdTFFODVcXHUxRTYxXFx4QzBcXHhDMVxceEMyXFx4QzNcXHhDNFxceEM1XFx4QzZcXHhDN1xceEM4XFx4QzlcXHhDQVxceENCXFx4Q0NcXHhDRFxceENFXFx4Q0ZcXHUwMTc0XFx4RDFcXHhEMlxceEQzXFx4RDRcXHhENVxceEQ2XFx1MUU2QVxceEQ4XFx4RDlcXHhEQVxceERCXFx4RENcXHhERFxcdTAxNzZcXHhERlxceEUwXFx4RTFcXHhFMlxceEUzXFx4RTRcXHhFNVxceEU2XFx4RTdcXHhFOFxceEU5XFx4RUFcXHhFQlxceEVDXFx4RURcXHhFRVxceEVGXFx1MDE3NVxceEYxXFx4RjJcXHhGM1xceEY0XFx4RjVcXHhGNlxcdTFFNkJcXHhGOFxceEY5XFx4RkFcXHhGQlxceEZDXFx4RkRcXHUwMTc3XFx4RkZcIlxuICAgICAgfSxcbiAgICAgIFwiY3AyODYwNFwiOiBcImlzbzg4NTkxNFwiLFxuICAgICAgXCJpc284ODU5MTVcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJfc2Jjc1wiLFxuICAgICAgICBcImNoYXJzXCI6IFwiXFx4ODBcXHg4MVxceDgyXFx4ODNcXHg4NFxceDg1XFx4ODZcXHg4N1xceDg4XFx4ODlcXHg4QVxceDhCXFx4OENcXHg4RFxceDhFXFx4OEZcXHg5MFxceDkxXFx4OTJcXHg5M1xceDk0XFx4OTVcXHg5NlxceDk3XFx4OThcXHg5OVxceDlBXFx4OUJcXHg5Q1xceDlEXFx4OUVcXHg5RlxceEEwXFx4QTFcXHhBMlxceEEzXFx1MjBBQ1xceEE1XFx1MDE2MFxceEE3XFx1MDE2MVxceEE5XFx4QUFcXHhBQlxceEFDXFx4QURcXHhBRVxceEFGXFx4QjBcXHhCMVxceEIyXFx4QjNcXHUwMTdEXFx4QjVcXHhCNlxceEI3XFx1MDE3RVxceEI5XFx4QkFcXHhCQlxcdTAxNTJcXHUwMTUzXFx1MDE3OFxceEJGXFx4QzBcXHhDMVxceEMyXFx4QzNcXHhDNFxceEM1XFx4QzZcXHhDN1xceEM4XFx4QzlcXHhDQVxceENCXFx4Q0NcXHhDRFxceENFXFx4Q0ZcXHhEMFxceEQxXFx4RDJcXHhEM1xceEQ0XFx4RDVcXHhENlxceEQ3XFx4RDhcXHhEOVxceERBXFx4REJcXHhEQ1xceEREXFx4REVcXHhERlxceEUwXFx4RTFcXHhFMlxceEUzXFx4RTRcXHhFNVxceEU2XFx4RTdcXHhFOFxceEU5XFx4RUFcXHhFQlxceEVDXFx4RURcXHhFRVxceEVGXFx4RjBcXHhGMVxceEYyXFx4RjNcXHhGNFxceEY1XFx4RjZcXHhGN1xceEY4XFx4RjlcXHhGQVxceEZCXFx4RkNcXHhGRFxceEZFXFx4RkZcIlxuICAgICAgfSxcbiAgICAgIFwiY3AyODYwNVwiOiBcImlzbzg4NTkxNVwiLFxuICAgICAgXCJpc284ODU5MTZcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJfc2Jjc1wiLFxuICAgICAgICBcImNoYXJzXCI6IFwiXFx4ODBcXHg4MVxceDgyXFx4ODNcXHg4NFxceDg1XFx4ODZcXHg4N1xceDg4XFx4ODlcXHg4QVxceDhCXFx4OENcXHg4RFxceDhFXFx4OEZcXHg5MFxceDkxXFx4OTJcXHg5M1xceDk0XFx4OTVcXHg5NlxceDk3XFx4OThcXHg5OVxceDlBXFx4OUJcXHg5Q1xceDlEXFx4OUVcXHg5RlxceEEwXFx1MDEwNFxcdTAxMDVcXHUwMTQxXFx1MjBBQ1xcdTIwMUVcXHUwMTYwXFx4QTdcXHUwMTYxXFx4QTlcXHUwMjE4XFx4QUJcXHUwMTc5XFx4QURcXHUwMTdBXFx1MDE3QlxceEIwXFx4QjFcXHUwMTBDXFx1MDE0MlxcdTAxN0RcXHUyMDFEXFx4QjZcXHhCN1xcdTAxN0VcXHUwMTBEXFx1MDIxOVxceEJCXFx1MDE1MlxcdTAxNTNcXHUwMTc4XFx1MDE3Q1xceEMwXFx4QzFcXHhDMlxcdTAxMDJcXHhDNFxcdTAxMDZcXHhDNlxceEM3XFx4QzhcXHhDOVxceENBXFx4Q0JcXHhDQ1xceENEXFx4Q0VcXHhDRlxcdTAxMTBcXHUwMTQzXFx4RDJcXHhEM1xceEQ0XFx1MDE1MFxceEQ2XFx1MDE1QVxcdTAxNzBcXHhEOVxceERBXFx4REJcXHhEQ1xcdTAxMThcXHUwMjFBXFx4REZcXHhFMFxceEUxXFx4RTJcXHUwMTAzXFx4RTRcXHUwMTA3XFx4RTZcXHhFN1xceEU4XFx4RTlcXHhFQVxceEVCXFx4RUNcXHhFRFxceEVFXFx4RUZcXHUwMTExXFx1MDE0NFxceEYyXFx4RjNcXHhGNFxcdTAxNTFcXHhGNlxcdTAxNUJcXHUwMTcxXFx4RjlcXHhGQVxceEZCXFx4RkNcXHUwMTE5XFx1MDIxQlxceEZGXCJcbiAgICAgIH0sXG4gICAgICBcImNwMjg2MDZcIjogXCJpc284ODU5MTZcIixcbiAgICAgIFwiY3A0MzdcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJfc2Jjc1wiLFxuICAgICAgICBcImNoYXJzXCI6IFwiXFx4QzdcXHhGQ1xceEU5XFx4RTJcXHhFNFxceEUwXFx4RTVcXHhFN1xceEVBXFx4RUJcXHhFOFxceEVGXFx4RUVcXHhFQ1xceEM0XFx4QzVcXHhDOVxceEU2XFx4QzZcXHhGNFxceEY2XFx4RjJcXHhGQlxceEY5XFx4RkZcXHhENlxceERDXFx4QTJcXHhBM1xceEE1XFx1MjBBN1xcdTAxOTJcXHhFMVxceEVEXFx4RjNcXHhGQVxceEYxXFx4RDFcXHhBQVxceEJBXFx4QkZcXHUyMzEwXFx4QUNcXHhCRFxceEJDXFx4QTFcXHhBQlxceEJCXFx1MjU5MVxcdTI1OTJcXHUyNTkzXFx1MjUwMlxcdTI1MjRcXHUyNTYxXFx1MjU2MlxcdTI1NTZcXHUyNTU1XFx1MjU2M1xcdTI1NTFcXHUyNTU3XFx1MjU1RFxcdTI1NUNcXHUyNTVCXFx1MjUxMFxcdTI1MTRcXHUyNTM0XFx1MjUyQ1xcdTI1MUNcXHUyNTAwXFx1MjUzQ1xcdTI1NUVcXHUyNTVGXFx1MjU1QVxcdTI1NTRcXHUyNTY5XFx1MjU2NlxcdTI1NjBcXHUyNTUwXFx1MjU2Q1xcdTI1NjdcXHUyNTY4XFx1MjU2NFxcdTI1NjVcXHUyNTU5XFx1MjU1OFxcdTI1NTJcXHUyNTUzXFx1MjU2QlxcdTI1NkFcXHUyNTE4XFx1MjUwQ1xcdTI1ODhcXHUyNTg0XFx1MjU4Q1xcdTI1OTBcXHUyNTgwXFx1MDNCMVxceERGXFx1MDM5M1xcdTAzQzBcXHUwM0EzXFx1MDNDM1xceEI1XFx1MDNDNFxcdTAzQTZcXHUwMzk4XFx1MDNBOVxcdTAzQjRcXHUyMjFFXFx1MDNDNlxcdTAzQjVcXHUyMjI5XFx1MjI2MVxceEIxXFx1MjI2NVxcdTIyNjRcXHUyMzIwXFx1MjMyMVxceEY3XFx1MjI0OFxceEIwXFx1MjIxOVxceEI3XFx1MjIxQVxcdTIwN0ZcXHhCMlxcdTI1QTBcXHhBMFwiXG4gICAgICB9LFxuICAgICAgXCJpYm00MzdcIjogXCJjcDQzN1wiLFxuICAgICAgXCJjc2libTQzN1wiOiBcImNwNDM3XCIsXG4gICAgICBcImNwNzM3XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwiX3NiY3NcIixcbiAgICAgICAgXCJjaGFyc1wiOiBcIlxcdTAzOTFcXHUwMzkyXFx1MDM5M1xcdTAzOTRcXHUwMzk1XFx1MDM5NlxcdTAzOTdcXHUwMzk4XFx1MDM5OVxcdTAzOUFcXHUwMzlCXFx1MDM5Q1xcdTAzOURcXHUwMzlFXFx1MDM5RlxcdTAzQTBcXHUwM0ExXFx1MDNBM1xcdTAzQTRcXHUwM0E1XFx1MDNBNlxcdTAzQTdcXHUwM0E4XFx1MDNBOVxcdTAzQjFcXHUwM0IyXFx1MDNCM1xcdTAzQjRcXHUwM0I1XFx1MDNCNlxcdTAzQjdcXHUwM0I4XFx1MDNCOVxcdTAzQkFcXHUwM0JCXFx1MDNCQ1xcdTAzQkRcXHUwM0JFXFx1MDNCRlxcdTAzQzBcXHUwM0MxXFx1MDNDM1xcdTAzQzJcXHUwM0M0XFx1MDNDNVxcdTAzQzZcXHUwM0M3XFx1MDNDOFxcdTI1OTFcXHUyNTkyXFx1MjU5M1xcdTI1MDJcXHUyNTI0XFx1MjU2MVxcdTI1NjJcXHUyNTU2XFx1MjU1NVxcdTI1NjNcXHUyNTUxXFx1MjU1N1xcdTI1NURcXHUyNTVDXFx1MjU1QlxcdTI1MTBcXHUyNTE0XFx1MjUzNFxcdTI1MkNcXHUyNTFDXFx1MjUwMFxcdTI1M0NcXHUyNTVFXFx1MjU1RlxcdTI1NUFcXHUyNTU0XFx1MjU2OVxcdTI1NjZcXHUyNTYwXFx1MjU1MFxcdTI1NkNcXHUyNTY3XFx1MjU2OFxcdTI1NjRcXHUyNTY1XFx1MjU1OVxcdTI1NThcXHUyNTUyXFx1MjU1M1xcdTI1NkJcXHUyNTZBXFx1MjUxOFxcdTI1MENcXHUyNTg4XFx1MjU4NFxcdTI1OENcXHUyNTkwXFx1MjU4MFxcdTAzQzlcXHUwM0FDXFx1MDNBRFxcdTAzQUVcXHUwM0NBXFx1MDNBRlxcdTAzQ0NcXHUwM0NEXFx1MDNDQlxcdTAzQ0VcXHUwMzg2XFx1MDM4OFxcdTAzODlcXHUwMzhBXFx1MDM4Q1xcdTAzOEVcXHUwMzhGXFx4QjFcXHUyMjY1XFx1MjI2NFxcdTAzQUFcXHUwM0FCXFx4RjdcXHUyMjQ4XFx4QjBcXHUyMjE5XFx4QjdcXHUyMjFBXFx1MjA3RlxceEIyXFx1MjVBMFxceEEwXCJcbiAgICAgIH0sXG4gICAgICBcImlibTczN1wiOiBcImNwNzM3XCIsXG4gICAgICBcImNzaWJtNzM3XCI6IFwiY3A3MzdcIixcbiAgICAgIFwiY3A3NzVcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJfc2Jjc1wiLFxuICAgICAgICBcImNoYXJzXCI6IFwiXFx1MDEwNlxceEZDXFx4RTlcXHUwMTAxXFx4RTRcXHUwMTIzXFx4RTVcXHUwMTA3XFx1MDE0MlxcdTAxMTNcXHUwMTU2XFx1MDE1N1xcdTAxMkJcXHUwMTc5XFx4QzRcXHhDNVxceEM5XFx4RTZcXHhDNlxcdTAxNERcXHhGNlxcdTAxMjJcXHhBMlxcdTAxNUFcXHUwMTVCXFx4RDZcXHhEQ1xceEY4XFx4QTNcXHhEOFxceEQ3XFx4QTRcXHUwMTAwXFx1MDEyQVxceEYzXFx1MDE3QlxcdTAxN0NcXHUwMTdBXFx1MjAxRFxceEE2XFx4QTlcXHhBRVxceEFDXFx4QkRcXHhCQ1xcdTAxNDFcXHhBQlxceEJCXFx1MjU5MVxcdTI1OTJcXHUyNTkzXFx1MjUwMlxcdTI1MjRcXHUwMTA0XFx1MDEwQ1xcdTAxMThcXHUwMTE2XFx1MjU2M1xcdTI1NTFcXHUyNTU3XFx1MjU1RFxcdTAxMkVcXHUwMTYwXFx1MjUxMFxcdTI1MTRcXHUyNTM0XFx1MjUyQ1xcdTI1MUNcXHUyNTAwXFx1MjUzQ1xcdTAxNzJcXHUwMTZBXFx1MjU1QVxcdTI1NTRcXHUyNTY5XFx1MjU2NlxcdTI1NjBcXHUyNTUwXFx1MjU2Q1xcdTAxN0RcXHUwMTA1XFx1MDEwRFxcdTAxMTlcXHUwMTE3XFx1MDEyRlxcdTAxNjFcXHUwMTczXFx1MDE2QlxcdTAxN0VcXHUyNTE4XFx1MjUwQ1xcdTI1ODhcXHUyNTg0XFx1MjU4Q1xcdTI1OTBcXHUyNTgwXFx4RDNcXHhERlxcdTAxNENcXHUwMTQzXFx4RjVcXHhENVxceEI1XFx1MDE0NFxcdTAxMzZcXHUwMTM3XFx1MDEzQlxcdTAxM0NcXHUwMTQ2XFx1MDExMlxcdTAxNDVcXHUyMDE5XFx4QURcXHhCMVxcdTIwMUNcXHhCRVxceEI2XFx4QTdcXHhGN1xcdTIwMUVcXHhCMFxcdTIyMTlcXHhCN1xceEI5XFx4QjNcXHhCMlxcdTI1QTBcXHhBMFwiXG4gICAgICB9LFxuICAgICAgXCJpYm03NzVcIjogXCJjcDc3NVwiLFxuICAgICAgXCJjc2libTc3NVwiOiBcImNwNzc1XCIsXG4gICAgICBcImNwODUwXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwiX3NiY3NcIixcbiAgICAgICAgXCJjaGFyc1wiOiBcIlxceEM3XFx4RkNcXHhFOVxceEUyXFx4RTRcXHhFMFxceEU1XFx4RTdcXHhFQVxceEVCXFx4RThcXHhFRlxceEVFXFx4RUNcXHhDNFxceEM1XFx4QzlcXHhFNlxceEM2XFx4RjRcXHhGNlxceEYyXFx4RkJcXHhGOVxceEZGXFx4RDZcXHhEQ1xceEY4XFx4QTNcXHhEOFxceEQ3XFx1MDE5MlxceEUxXFx4RURcXHhGM1xceEZBXFx4RjFcXHhEMVxceEFBXFx4QkFcXHhCRlxceEFFXFx4QUNcXHhCRFxceEJDXFx4QTFcXHhBQlxceEJCXFx1MjU5MVxcdTI1OTJcXHUyNTkzXFx1MjUwMlxcdTI1MjRcXHhDMVxceEMyXFx4QzBcXHhBOVxcdTI1NjNcXHUyNTUxXFx1MjU1N1xcdTI1NURcXHhBMlxceEE1XFx1MjUxMFxcdTI1MTRcXHUyNTM0XFx1MjUyQ1xcdTI1MUNcXHUyNTAwXFx1MjUzQ1xceEUzXFx4QzNcXHUyNTVBXFx1MjU1NFxcdTI1NjlcXHUyNTY2XFx1MjU2MFxcdTI1NTBcXHUyNTZDXFx4QTRcXHhGMFxceEQwXFx4Q0FcXHhDQlxceEM4XFx1MDEzMVxceENEXFx4Q0VcXHhDRlxcdTI1MThcXHUyNTBDXFx1MjU4OFxcdTI1ODRcXHhBNlxceENDXFx1MjU4MFxceEQzXFx4REZcXHhENFxceEQyXFx4RjVcXHhENVxceEI1XFx4RkVcXHhERVxceERBXFx4REJcXHhEOVxceEZEXFx4RERcXHhBRlxceEI0XFx4QURcXHhCMVxcdTIwMTdcXHhCRVxceEI2XFx4QTdcXHhGN1xceEI4XFx4QjBcXHhBOFxceEI3XFx4QjlcXHhCM1xceEIyXFx1MjVBMFxceEEwXCJcbiAgICAgIH0sXG4gICAgICBcImlibTg1MFwiOiBcImNwODUwXCIsXG4gICAgICBcImNzaWJtODUwXCI6IFwiY3A4NTBcIixcbiAgICAgIFwiY3A4NTJcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJfc2Jjc1wiLFxuICAgICAgICBcImNoYXJzXCI6IFwiXFx4QzdcXHhGQ1xceEU5XFx4RTJcXHhFNFxcdTAxNkZcXHUwMTA3XFx4RTdcXHUwMTQyXFx4RUJcXHUwMTUwXFx1MDE1MVxceEVFXFx1MDE3OVxceEM0XFx1MDEwNlxceEM5XFx1MDEzOVxcdTAxM0FcXHhGNFxceEY2XFx1MDEzRFxcdTAxM0VcXHUwMTVBXFx1MDE1QlxceEQ2XFx4RENcXHUwMTY0XFx1MDE2NVxcdTAxNDFcXHhEN1xcdTAxMERcXHhFMVxceEVEXFx4RjNcXHhGQVxcdTAxMDRcXHUwMTA1XFx1MDE3RFxcdTAxN0VcXHUwMTE4XFx1MDExOVxceEFDXFx1MDE3QVxcdTAxMENcXHUwMTVGXFx4QUJcXHhCQlxcdTI1OTFcXHUyNTkyXFx1MjU5M1xcdTI1MDJcXHUyNTI0XFx4QzFcXHhDMlxcdTAxMUFcXHUwMTVFXFx1MjU2M1xcdTI1NTFcXHUyNTU3XFx1MjU1RFxcdTAxN0JcXHUwMTdDXFx1MjUxMFxcdTI1MTRcXHUyNTM0XFx1MjUyQ1xcdTI1MUNcXHUyNTAwXFx1MjUzQ1xcdTAxMDJcXHUwMTAzXFx1MjU1QVxcdTI1NTRcXHUyNTY5XFx1MjU2NlxcdTI1NjBcXHUyNTUwXFx1MjU2Q1xceEE0XFx1MDExMVxcdTAxMTBcXHUwMTBFXFx4Q0JcXHUwMTBGXFx1MDE0N1xceENEXFx4Q0VcXHUwMTFCXFx1MjUxOFxcdTI1MENcXHUyNTg4XFx1MjU4NFxcdTAxNjJcXHUwMTZFXFx1MjU4MFxceEQzXFx4REZcXHhENFxcdTAxNDNcXHUwMTQ0XFx1MDE0OFxcdTAxNjBcXHUwMTYxXFx1MDE1NFxceERBXFx1MDE1NVxcdTAxNzBcXHhGRFxceEREXFx1MDE2M1xceEI0XFx4QURcXHUwMkREXFx1MDJEQlxcdTAyQzdcXHUwMkQ4XFx4QTdcXHhGN1xceEI4XFx4QjBcXHhBOFxcdTAyRDlcXHUwMTcxXFx1MDE1OFxcdTAxNTlcXHUyNUEwXFx4QTBcIlxuICAgICAgfSxcbiAgICAgIFwiaWJtODUyXCI6IFwiY3A4NTJcIixcbiAgICAgIFwiY3NpYm04NTJcIjogXCJjcDg1MlwiLFxuICAgICAgXCJjcDg1NVwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIl9zYmNzXCIsXG4gICAgICAgIFwiY2hhcnNcIjogXCJcXHUwNDUyXFx1MDQwMlxcdTA0NTNcXHUwNDAzXFx1MDQ1MVxcdTA0MDFcXHUwNDU0XFx1MDQwNFxcdTA0NTVcXHUwNDA1XFx1MDQ1NlxcdTA0MDZcXHUwNDU3XFx1MDQwN1xcdTA0NThcXHUwNDA4XFx1MDQ1OVxcdTA0MDlcXHUwNDVBXFx1MDQwQVxcdTA0NUJcXHUwNDBCXFx1MDQ1Q1xcdTA0MENcXHUwNDVFXFx1MDQwRVxcdTA0NUZcXHUwNDBGXFx1MDQ0RVxcdTA0MkVcXHUwNDRBXFx1MDQyQVxcdTA0MzBcXHUwNDEwXFx1MDQzMVxcdTA0MTFcXHUwNDQ2XFx1MDQyNlxcdTA0MzRcXHUwNDE0XFx1MDQzNVxcdTA0MTVcXHUwNDQ0XFx1MDQyNFxcdTA0MzNcXHUwNDEzXFx4QUJcXHhCQlxcdTI1OTFcXHUyNTkyXFx1MjU5M1xcdTI1MDJcXHUyNTI0XFx1MDQ0NVxcdTA0MjVcXHUwNDM4XFx1MDQxOFxcdTI1NjNcXHUyNTUxXFx1MjU1N1xcdTI1NURcXHUwNDM5XFx1MDQxOVxcdTI1MTBcXHUyNTE0XFx1MjUzNFxcdTI1MkNcXHUyNTFDXFx1MjUwMFxcdTI1M0NcXHUwNDNBXFx1MDQxQVxcdTI1NUFcXHUyNTU0XFx1MjU2OVxcdTI1NjZcXHUyNTYwXFx1MjU1MFxcdTI1NkNcXHhBNFxcdTA0M0JcXHUwNDFCXFx1MDQzQ1xcdTA0MUNcXHUwNDNEXFx1MDQxRFxcdTA0M0VcXHUwNDFFXFx1MDQzRlxcdTI1MThcXHUyNTBDXFx1MjU4OFxcdTI1ODRcXHUwNDFGXFx1MDQ0RlxcdTI1ODBcXHUwNDJGXFx1MDQ0MFxcdTA0MjBcXHUwNDQxXFx1MDQyMVxcdTA0NDJcXHUwNDIyXFx1MDQ0M1xcdTA0MjNcXHUwNDM2XFx1MDQxNlxcdTA0MzJcXHUwNDEyXFx1MDQ0Q1xcdTA0MkNcXHUyMTE2XFx4QURcXHUwNDRCXFx1MDQyQlxcdTA0MzdcXHUwNDE3XFx1MDQ0OFxcdTA0MjhcXHUwNDREXFx1MDQyRFxcdTA0NDlcXHUwNDI5XFx1MDQ0N1xcdTA0MjdcXHhBN1xcdTI1QTBcXHhBMFwiXG4gICAgICB9LFxuICAgICAgXCJpYm04NTVcIjogXCJjcDg1NVwiLFxuICAgICAgXCJjc2libTg1NVwiOiBcImNwODU1XCIsXG4gICAgICBcImNwODU2XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwiX3NiY3NcIixcbiAgICAgICAgXCJjaGFyc1wiOiBcIlxcdTA1RDBcXHUwNUQxXFx1MDVEMlxcdTA1RDNcXHUwNUQ0XFx1MDVENVxcdTA1RDZcXHUwNUQ3XFx1MDVEOFxcdTA1RDlcXHUwNURBXFx1MDVEQlxcdTA1RENcXHUwNUREXFx1MDVERVxcdTA1REZcXHUwNUUwXFx1MDVFMVxcdTA1RTJcXHUwNUUzXFx1MDVFNFxcdTA1RTVcXHUwNUU2XFx1MDVFN1xcdTA1RThcXHUwNUU5XFx1MDVFQVxcdUZGRkRcXHhBM1xcdUZGRkRcXHhEN1xcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHhBRVxceEFDXFx4QkRcXHhCQ1xcdUZGRkRcXHhBQlxceEJCXFx1MjU5MVxcdTI1OTJcXHUyNTkzXFx1MjUwMlxcdTI1MjRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHhBOVxcdTI1NjNcXHUyNTUxXFx1MjU1N1xcdTI1NURcXHhBMlxceEE1XFx1MjUxMFxcdTI1MTRcXHUyNTM0XFx1MjUyQ1xcdTI1MUNcXHUyNTAwXFx1MjUzQ1xcdUZGRkRcXHVGRkZEXFx1MjU1QVxcdTI1NTRcXHUyNTY5XFx1MjU2NlxcdTI1NjBcXHUyNTUwXFx1MjU2Q1xceEE0XFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1MjUxOFxcdTI1MENcXHUyNTg4XFx1MjU4NFxceEE2XFx1RkZGRFxcdTI1ODBcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHhCNVxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHhBRlxceEI0XFx4QURcXHhCMVxcdTIwMTdcXHhCRVxceEI2XFx4QTdcXHhGN1xceEI4XFx4QjBcXHhBOFxceEI3XFx4QjlcXHhCM1xceEIyXFx1MjVBMFxceEEwXCJcbiAgICAgIH0sXG4gICAgICBcImlibTg1NlwiOiBcImNwODU2XCIsXG4gICAgICBcImNzaWJtODU2XCI6IFwiY3A4NTZcIixcbiAgICAgIFwiY3A4NTdcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJfc2Jjc1wiLFxuICAgICAgICBcImNoYXJzXCI6IFwiXFx4QzdcXHhGQ1xceEU5XFx4RTJcXHhFNFxceEUwXFx4RTVcXHhFN1xceEVBXFx4RUJcXHhFOFxceEVGXFx4RUVcXHUwMTMxXFx4QzRcXHhDNVxceEM5XFx4RTZcXHhDNlxceEY0XFx4RjZcXHhGMlxceEZCXFx4RjlcXHUwMTMwXFx4RDZcXHhEQ1xceEY4XFx4QTNcXHhEOFxcdTAxNUVcXHUwMTVGXFx4RTFcXHhFRFxceEYzXFx4RkFcXHhGMVxceEQxXFx1MDExRVxcdTAxMUZcXHhCRlxceEFFXFx4QUNcXHhCRFxceEJDXFx4QTFcXHhBQlxceEJCXFx1MjU5MVxcdTI1OTJcXHUyNTkzXFx1MjUwMlxcdTI1MjRcXHhDMVxceEMyXFx4QzBcXHhBOVxcdTI1NjNcXHUyNTUxXFx1MjU1N1xcdTI1NURcXHhBMlxceEE1XFx1MjUxMFxcdTI1MTRcXHUyNTM0XFx1MjUyQ1xcdTI1MUNcXHUyNTAwXFx1MjUzQ1xceEUzXFx4QzNcXHUyNTVBXFx1MjU1NFxcdTI1NjlcXHUyNTY2XFx1MjU2MFxcdTI1NTBcXHUyNTZDXFx4QTRcXHhCQVxceEFBXFx4Q0FcXHhDQlxceEM4XFx1RkZGRFxceENEXFx4Q0VcXHhDRlxcdTI1MThcXHUyNTBDXFx1MjU4OFxcdTI1ODRcXHhBNlxceENDXFx1MjU4MFxceEQzXFx4REZcXHhENFxceEQyXFx4RjVcXHhENVxceEI1XFx1RkZGRFxceEQ3XFx4REFcXHhEQlxceEQ5XFx4RUNcXHhGRlxceEFGXFx4QjRcXHhBRFxceEIxXFx1RkZGRFxceEJFXFx4QjZcXHhBN1xceEY3XFx4QjhcXHhCMFxceEE4XFx4QjdcXHhCOVxceEIzXFx4QjJcXHUyNUEwXFx4QTBcIlxuICAgICAgfSxcbiAgICAgIFwiaWJtODU3XCI6IFwiY3A4NTdcIixcbiAgICAgIFwiY3NpYm04NTdcIjogXCJjcDg1N1wiLFxuICAgICAgXCJjcDg1OFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIl9zYmNzXCIsXG4gICAgICAgIFwiY2hhcnNcIjogXCJcXHhDN1xceEZDXFx4RTlcXHhFMlxceEU0XFx4RTBcXHhFNVxceEU3XFx4RUFcXHhFQlxceEU4XFx4RUZcXHhFRVxceEVDXFx4QzRcXHhDNVxceEM5XFx4RTZcXHhDNlxceEY0XFx4RjZcXHhGMlxceEZCXFx4RjlcXHhGRlxceEQ2XFx4RENcXHhGOFxceEEzXFx4RDhcXHhEN1xcdTAxOTJcXHhFMVxceEVEXFx4RjNcXHhGQVxceEYxXFx4RDFcXHhBQVxceEJBXFx4QkZcXHhBRVxceEFDXFx4QkRcXHhCQ1xceEExXFx4QUJcXHhCQlxcdTI1OTFcXHUyNTkyXFx1MjU5M1xcdTI1MDJcXHUyNTI0XFx4QzFcXHhDMlxceEMwXFx4QTlcXHUyNTYzXFx1MjU1MVxcdTI1NTdcXHUyNTVEXFx4QTJcXHhBNVxcdTI1MTBcXHUyNTE0XFx1MjUzNFxcdTI1MkNcXHUyNTFDXFx1MjUwMFxcdTI1M0NcXHhFM1xceEMzXFx1MjU1QVxcdTI1NTRcXHUyNTY5XFx1MjU2NlxcdTI1NjBcXHUyNTUwXFx1MjU2Q1xceEE0XFx4RjBcXHhEMFxceENBXFx4Q0JcXHhDOFxcdTIwQUNcXHhDRFxceENFXFx4Q0ZcXHUyNTE4XFx1MjUwQ1xcdTI1ODhcXHUyNTg0XFx4QTZcXHhDQ1xcdTI1ODBcXHhEM1xceERGXFx4RDRcXHhEMlxceEY1XFx4RDVcXHhCNVxceEZFXFx4REVcXHhEQVxceERCXFx4RDlcXHhGRFxceEREXFx4QUZcXHhCNFxceEFEXFx4QjFcXHUyMDE3XFx4QkVcXHhCNlxceEE3XFx4RjdcXHhCOFxceEIwXFx4QThcXHhCN1xceEI5XFx4QjNcXHhCMlxcdTI1QTBcXHhBMFwiXG4gICAgICB9LFxuICAgICAgXCJpYm04NThcIjogXCJjcDg1OFwiLFxuICAgICAgXCJjc2libTg1OFwiOiBcImNwODU4XCIsXG4gICAgICBcImNwODYwXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwiX3NiY3NcIixcbiAgICAgICAgXCJjaGFyc1wiOiBcIlxceEM3XFx4RkNcXHhFOVxceEUyXFx4RTNcXHhFMFxceEMxXFx4RTdcXHhFQVxceENBXFx4RThcXHhDRFxceEQ0XFx4RUNcXHhDM1xceEMyXFx4QzlcXHhDMFxceEM4XFx4RjRcXHhGNVxceEYyXFx4REFcXHhGOVxceENDXFx4RDVcXHhEQ1xceEEyXFx4QTNcXHhEOVxcdTIwQTdcXHhEM1xceEUxXFx4RURcXHhGM1xceEZBXFx4RjFcXHhEMVxceEFBXFx4QkFcXHhCRlxceEQyXFx4QUNcXHhCRFxceEJDXFx4QTFcXHhBQlxceEJCXFx1MjU5MVxcdTI1OTJcXHUyNTkzXFx1MjUwMlxcdTI1MjRcXHUyNTYxXFx1MjU2MlxcdTI1NTZcXHUyNTU1XFx1MjU2M1xcdTI1NTFcXHUyNTU3XFx1MjU1RFxcdTI1NUNcXHUyNTVCXFx1MjUxMFxcdTI1MTRcXHUyNTM0XFx1MjUyQ1xcdTI1MUNcXHUyNTAwXFx1MjUzQ1xcdTI1NUVcXHUyNTVGXFx1MjU1QVxcdTI1NTRcXHUyNTY5XFx1MjU2NlxcdTI1NjBcXHUyNTUwXFx1MjU2Q1xcdTI1NjdcXHUyNTY4XFx1MjU2NFxcdTI1NjVcXHUyNTU5XFx1MjU1OFxcdTI1NTJcXHUyNTUzXFx1MjU2QlxcdTI1NkFcXHUyNTE4XFx1MjUwQ1xcdTI1ODhcXHUyNTg0XFx1MjU4Q1xcdTI1OTBcXHUyNTgwXFx1MDNCMVxceERGXFx1MDM5M1xcdTAzQzBcXHUwM0EzXFx1MDNDM1xceEI1XFx1MDNDNFxcdTAzQTZcXHUwMzk4XFx1MDNBOVxcdTAzQjRcXHUyMjFFXFx1MDNDNlxcdTAzQjVcXHUyMjI5XFx1MjI2MVxceEIxXFx1MjI2NVxcdTIyNjRcXHUyMzIwXFx1MjMyMVxceEY3XFx1MjI0OFxceEIwXFx1MjIxOVxceEI3XFx1MjIxQVxcdTIwN0ZcXHhCMlxcdTI1QTBcXHhBMFwiXG4gICAgICB9LFxuICAgICAgXCJpYm04NjBcIjogXCJjcDg2MFwiLFxuICAgICAgXCJjc2libTg2MFwiOiBcImNwODYwXCIsXG4gICAgICBcImNwODYxXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwiX3NiY3NcIixcbiAgICAgICAgXCJjaGFyc1wiOiBcIlxceEM3XFx4RkNcXHhFOVxceEUyXFx4RTRcXHhFMFxceEU1XFx4RTdcXHhFQVxceEVCXFx4RThcXHhEMFxceEYwXFx4REVcXHhDNFxceEM1XFx4QzlcXHhFNlxceEM2XFx4RjRcXHhGNlxceEZFXFx4RkJcXHhERFxceEZEXFx4RDZcXHhEQ1xceEY4XFx4QTNcXHhEOFxcdTIwQTdcXHUwMTkyXFx4RTFcXHhFRFxceEYzXFx4RkFcXHhDMVxceENEXFx4RDNcXHhEQVxceEJGXFx1MjMxMFxceEFDXFx4QkRcXHhCQ1xceEExXFx4QUJcXHhCQlxcdTI1OTFcXHUyNTkyXFx1MjU5M1xcdTI1MDJcXHUyNTI0XFx1MjU2MVxcdTI1NjJcXHUyNTU2XFx1MjU1NVxcdTI1NjNcXHUyNTUxXFx1MjU1N1xcdTI1NURcXHUyNTVDXFx1MjU1QlxcdTI1MTBcXHUyNTE0XFx1MjUzNFxcdTI1MkNcXHUyNTFDXFx1MjUwMFxcdTI1M0NcXHUyNTVFXFx1MjU1RlxcdTI1NUFcXHUyNTU0XFx1MjU2OVxcdTI1NjZcXHUyNTYwXFx1MjU1MFxcdTI1NkNcXHUyNTY3XFx1MjU2OFxcdTI1NjRcXHUyNTY1XFx1MjU1OVxcdTI1NThcXHUyNTUyXFx1MjU1M1xcdTI1NkJcXHUyNTZBXFx1MjUxOFxcdTI1MENcXHUyNTg4XFx1MjU4NFxcdTI1OENcXHUyNTkwXFx1MjU4MFxcdTAzQjFcXHhERlxcdTAzOTNcXHUwM0MwXFx1MDNBM1xcdTAzQzNcXHhCNVxcdTAzQzRcXHUwM0E2XFx1MDM5OFxcdTAzQTlcXHUwM0I0XFx1MjIxRVxcdTAzQzZcXHUwM0I1XFx1MjIyOVxcdTIyNjFcXHhCMVxcdTIyNjVcXHUyMjY0XFx1MjMyMFxcdTIzMjFcXHhGN1xcdTIyNDhcXHhCMFxcdTIyMTlcXHhCN1xcdTIyMUFcXHUyMDdGXFx4QjJcXHUyNUEwXFx4QTBcIlxuICAgICAgfSxcbiAgICAgIFwiaWJtODYxXCI6IFwiY3A4NjFcIixcbiAgICAgIFwiY3NpYm04NjFcIjogXCJjcDg2MVwiLFxuICAgICAgXCJjcDg2MlwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIl9zYmNzXCIsXG4gICAgICAgIFwiY2hhcnNcIjogXCJcXHUwNUQwXFx1MDVEMVxcdTA1RDJcXHUwNUQzXFx1MDVENFxcdTA1RDVcXHUwNUQ2XFx1MDVEN1xcdTA1RDhcXHUwNUQ5XFx1MDVEQVxcdTA1REJcXHUwNURDXFx1MDVERFxcdTA1REVcXHUwNURGXFx1MDVFMFxcdTA1RTFcXHUwNUUyXFx1MDVFM1xcdTA1RTRcXHUwNUU1XFx1MDVFNlxcdTA1RTdcXHUwNUU4XFx1MDVFOVxcdTA1RUFcXHhBMlxceEEzXFx4QTVcXHUyMEE3XFx1MDE5MlxceEUxXFx4RURcXHhGM1xceEZBXFx4RjFcXHhEMVxceEFBXFx4QkFcXHhCRlxcdTIzMTBcXHhBQ1xceEJEXFx4QkNcXHhBMVxceEFCXFx4QkJcXHUyNTkxXFx1MjU5MlxcdTI1OTNcXHUyNTAyXFx1MjUyNFxcdTI1NjFcXHUyNTYyXFx1MjU1NlxcdTI1NTVcXHUyNTYzXFx1MjU1MVxcdTI1NTdcXHUyNTVEXFx1MjU1Q1xcdTI1NUJcXHUyNTEwXFx1MjUxNFxcdTI1MzRcXHUyNTJDXFx1MjUxQ1xcdTI1MDBcXHUyNTNDXFx1MjU1RVxcdTI1NUZcXHUyNTVBXFx1MjU1NFxcdTI1NjlcXHUyNTY2XFx1MjU2MFxcdTI1NTBcXHUyNTZDXFx1MjU2N1xcdTI1NjhcXHUyNTY0XFx1MjU2NVxcdTI1NTlcXHUyNTU4XFx1MjU1MlxcdTI1NTNcXHUyNTZCXFx1MjU2QVxcdTI1MThcXHUyNTBDXFx1MjU4OFxcdTI1ODRcXHUyNThDXFx1MjU5MFxcdTI1ODBcXHUwM0IxXFx4REZcXHUwMzkzXFx1MDNDMFxcdTAzQTNcXHUwM0MzXFx4QjVcXHUwM0M0XFx1MDNBNlxcdTAzOThcXHUwM0E5XFx1MDNCNFxcdTIyMUVcXHUwM0M2XFx1MDNCNVxcdTIyMjlcXHUyMjYxXFx4QjFcXHUyMjY1XFx1MjI2NFxcdTIzMjBcXHUyMzIxXFx4RjdcXHUyMjQ4XFx4QjBcXHUyMjE5XFx4QjdcXHUyMjFBXFx1MjA3RlxceEIyXFx1MjVBMFxceEEwXCJcbiAgICAgIH0sXG4gICAgICBcImlibTg2MlwiOiBcImNwODYyXCIsXG4gICAgICBcImNzaWJtODYyXCI6IFwiY3A4NjJcIixcbiAgICAgIFwiY3A4NjNcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJfc2Jjc1wiLFxuICAgICAgICBcImNoYXJzXCI6IFwiXFx4QzdcXHhGQ1xceEU5XFx4RTJcXHhDMlxceEUwXFx4QjZcXHhFN1xceEVBXFx4RUJcXHhFOFxceEVGXFx4RUVcXHUyMDE3XFx4QzBcXHhBN1xceEM5XFx4QzhcXHhDQVxceEY0XFx4Q0JcXHhDRlxceEZCXFx4RjlcXHhBNFxceEQ0XFx4RENcXHhBMlxceEEzXFx4RDlcXHhEQlxcdTAxOTJcXHhBNlxceEI0XFx4RjNcXHhGQVxceEE4XFx4QjhcXHhCM1xceEFGXFx4Q0VcXHUyMzEwXFx4QUNcXHhCRFxceEJDXFx4QkVcXHhBQlxceEJCXFx1MjU5MVxcdTI1OTJcXHUyNTkzXFx1MjUwMlxcdTI1MjRcXHUyNTYxXFx1MjU2MlxcdTI1NTZcXHUyNTU1XFx1MjU2M1xcdTI1NTFcXHUyNTU3XFx1MjU1RFxcdTI1NUNcXHUyNTVCXFx1MjUxMFxcdTI1MTRcXHUyNTM0XFx1MjUyQ1xcdTI1MUNcXHUyNTAwXFx1MjUzQ1xcdTI1NUVcXHUyNTVGXFx1MjU1QVxcdTI1NTRcXHUyNTY5XFx1MjU2NlxcdTI1NjBcXHUyNTUwXFx1MjU2Q1xcdTI1NjdcXHUyNTY4XFx1MjU2NFxcdTI1NjVcXHUyNTU5XFx1MjU1OFxcdTI1NTJcXHUyNTUzXFx1MjU2QlxcdTI1NkFcXHUyNTE4XFx1MjUwQ1xcdTI1ODhcXHUyNTg0XFx1MjU4Q1xcdTI1OTBcXHUyNTgwXFx1MDNCMVxceERGXFx1MDM5M1xcdTAzQzBcXHUwM0EzXFx1MDNDM1xceEI1XFx1MDNDNFxcdTAzQTZcXHUwMzk4XFx1MDNBOVxcdTAzQjRcXHUyMjFFXFx1MDNDNlxcdTAzQjVcXHUyMjI5XFx1MjI2MVxceEIxXFx1MjI2NVxcdTIyNjRcXHUyMzIwXFx1MjMyMVxceEY3XFx1MjI0OFxceEIwXFx1MjIxOVxceEI3XFx1MjIxQVxcdTIwN0ZcXHhCMlxcdTI1QTBcXHhBMFwiXG4gICAgICB9LFxuICAgICAgXCJpYm04NjNcIjogXCJjcDg2M1wiLFxuICAgICAgXCJjc2libTg2M1wiOiBcImNwODYzXCIsXG4gICAgICBcImNwODY0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwiX3NiY3NcIixcbiAgICAgICAgXCJjaGFyc1wiOiBcIlxcMFx1MDAwMVx1MDAwMlx1MDAwM1x1MDAwNFx1MDAwNVx1MDAwNlxceDA3XFxiXHRcXG5cXHZcXGZcXHJcdTAwMEVcdTAwMEZcdTAwMTBcdTAwMTFcdTAwMTJcdTAwMTNcdTAwMTRcdTAwMTVcdTAwMTZcdTAwMTdcdTAwMThcdTAwMTlcdTAwMUFcXHgxQlx1MDAxQ1x1MDAxRFx1MDAxRVx1MDAxRiAhXFxcIiMkXFx1MDY2QSYnKCkqKywtLi8wMTIzNDU2Nzg5Ojs8PT4/QEFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaW1xcXFxdXl9gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXp7fH1+XFx4N0ZcXHhCMFxceEI3XFx1MjIxOVxcdTIyMUFcXHUyNTkyXFx1MjUwMFxcdTI1MDJcXHUyNTNDXFx1MjUyNFxcdTI1MkNcXHUyNTFDXFx1MjUzNFxcdTI1MTBcXHUyNTBDXFx1MjUxNFxcdTI1MThcXHUwM0IyXFx1MjIxRVxcdTAzQzZcXHhCMVxceEJEXFx4QkNcXHUyMjQ4XFx4QUJcXHhCQlxcdUZFRjdcXHVGRUY4XFx1RkZGRFxcdUZGRkRcXHVGRUZCXFx1RkVGQ1xcdUZGRkRcXHhBMFxceEFEXFx1RkU4MlxceEEzXFx4QTRcXHVGRTg0XFx1RkZGRFxcdUZGRkRcXHVGRThFXFx1RkU4RlxcdUZFOTVcXHVGRTk5XFx1MDYwQ1xcdUZFOURcXHVGRUExXFx1RkVBNVxcdTA2NjBcXHUwNjYxXFx1MDY2MlxcdTA2NjNcXHUwNjY0XFx1MDY2NVxcdTA2NjZcXHUwNjY3XFx1MDY2OFxcdTA2NjlcXHVGRUQxXFx1MDYxQlxcdUZFQjFcXHVGRUI1XFx1RkVCOVxcdTA2MUZcXHhBMlxcdUZFODBcXHVGRTgxXFx1RkU4M1xcdUZFODVcXHVGRUNBXFx1RkU4QlxcdUZFOERcXHVGRTkxXFx1RkU5M1xcdUZFOTdcXHVGRTlCXFx1RkU5RlxcdUZFQTNcXHVGRUE3XFx1RkVBOVxcdUZFQUJcXHVGRUFEXFx1RkVBRlxcdUZFQjNcXHVGRUI3XFx1RkVCQlxcdUZFQkZcXHVGRUMxXFx1RkVDNVxcdUZFQ0JcXHVGRUNGXFx4QTZcXHhBQ1xceEY3XFx4RDdcXHVGRUM5XFx1MDY0MFxcdUZFRDNcXHVGRUQ3XFx1RkVEQlxcdUZFREZcXHVGRUUzXFx1RkVFN1xcdUZFRUJcXHVGRUVEXFx1RkVFRlxcdUZFRjNcXHVGRUJEXFx1RkVDQ1xcdUZFQ0VcXHVGRUNEXFx1RkVFMVxcdUZFN0RcXHUwNjUxXFx1RkVFNVxcdUZFRTlcXHVGRUVDXFx1RkVGMFxcdUZFRjJcXHVGRUQwXFx1RkVENVxcdUZFRjVcXHVGRUY2XFx1RkVERFxcdUZFRDlcXHVGRUYxXFx1MjVBMFxcdUZGRkRcIlxuICAgICAgfSxcbiAgICAgIFwiaWJtODY0XCI6IFwiY3A4NjRcIixcbiAgICAgIFwiY3NpYm04NjRcIjogXCJjcDg2NFwiLFxuICAgICAgXCJjcDg2NVwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIl9zYmNzXCIsXG4gICAgICAgIFwiY2hhcnNcIjogXCJcXHhDN1xceEZDXFx4RTlcXHhFMlxceEU0XFx4RTBcXHhFNVxceEU3XFx4RUFcXHhFQlxceEU4XFx4RUZcXHhFRVxceEVDXFx4QzRcXHhDNVxceEM5XFx4RTZcXHhDNlxceEY0XFx4RjZcXHhGMlxceEZCXFx4RjlcXHhGRlxceEQ2XFx4RENcXHhGOFxceEEzXFx4RDhcXHUyMEE3XFx1MDE5MlxceEUxXFx4RURcXHhGM1xceEZBXFx4RjFcXHhEMVxceEFBXFx4QkFcXHhCRlxcdTIzMTBcXHhBQ1xceEJEXFx4QkNcXHhBMVxceEFCXFx4QTRcXHUyNTkxXFx1MjU5MlxcdTI1OTNcXHUyNTAyXFx1MjUyNFxcdTI1NjFcXHUyNTYyXFx1MjU1NlxcdTI1NTVcXHUyNTYzXFx1MjU1MVxcdTI1NTdcXHUyNTVEXFx1MjU1Q1xcdTI1NUJcXHUyNTEwXFx1MjUxNFxcdTI1MzRcXHUyNTJDXFx1MjUxQ1xcdTI1MDBcXHUyNTNDXFx1MjU1RVxcdTI1NUZcXHUyNTVBXFx1MjU1NFxcdTI1NjlcXHUyNTY2XFx1MjU2MFxcdTI1NTBcXHUyNTZDXFx1MjU2N1xcdTI1NjhcXHUyNTY0XFx1MjU2NVxcdTI1NTlcXHUyNTU4XFx1MjU1MlxcdTI1NTNcXHUyNTZCXFx1MjU2QVxcdTI1MThcXHUyNTBDXFx1MjU4OFxcdTI1ODRcXHUyNThDXFx1MjU5MFxcdTI1ODBcXHUwM0IxXFx4REZcXHUwMzkzXFx1MDNDMFxcdTAzQTNcXHUwM0MzXFx4QjVcXHUwM0M0XFx1MDNBNlxcdTAzOThcXHUwM0E5XFx1MDNCNFxcdTIyMUVcXHUwM0M2XFx1MDNCNVxcdTIyMjlcXHUyMjYxXFx4QjFcXHUyMjY1XFx1MjI2NFxcdTIzMjBcXHUyMzIxXFx4RjdcXHUyMjQ4XFx4QjBcXHUyMjE5XFx4QjdcXHUyMjFBXFx1MjA3RlxceEIyXFx1MjVBMFxceEEwXCJcbiAgICAgIH0sXG4gICAgICBcImlibTg2NVwiOiBcImNwODY1XCIsXG4gICAgICBcImNzaWJtODY1XCI6IFwiY3A4NjVcIixcbiAgICAgIFwiY3A4NjZcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJfc2Jjc1wiLFxuICAgICAgICBcImNoYXJzXCI6IFwiXFx1MDQxMFxcdTA0MTFcXHUwNDEyXFx1MDQxM1xcdTA0MTRcXHUwNDE1XFx1MDQxNlxcdTA0MTdcXHUwNDE4XFx1MDQxOVxcdTA0MUFcXHUwNDFCXFx1MDQxQ1xcdTA0MURcXHUwNDFFXFx1MDQxRlxcdTA0MjBcXHUwNDIxXFx1MDQyMlxcdTA0MjNcXHUwNDI0XFx1MDQyNVxcdTA0MjZcXHUwNDI3XFx1MDQyOFxcdTA0MjlcXHUwNDJBXFx1MDQyQlxcdTA0MkNcXHUwNDJEXFx1MDQyRVxcdTA0MkZcXHUwNDMwXFx1MDQzMVxcdTA0MzJcXHUwNDMzXFx1MDQzNFxcdTA0MzVcXHUwNDM2XFx1MDQzN1xcdTA0MzhcXHUwNDM5XFx1MDQzQVxcdTA0M0JcXHUwNDNDXFx1MDQzRFxcdTA0M0VcXHUwNDNGXFx1MjU5MVxcdTI1OTJcXHUyNTkzXFx1MjUwMlxcdTI1MjRcXHUyNTYxXFx1MjU2MlxcdTI1NTZcXHUyNTU1XFx1MjU2M1xcdTI1NTFcXHUyNTU3XFx1MjU1RFxcdTI1NUNcXHUyNTVCXFx1MjUxMFxcdTI1MTRcXHUyNTM0XFx1MjUyQ1xcdTI1MUNcXHUyNTAwXFx1MjUzQ1xcdTI1NUVcXHUyNTVGXFx1MjU1QVxcdTI1NTRcXHUyNTY5XFx1MjU2NlxcdTI1NjBcXHUyNTUwXFx1MjU2Q1xcdTI1NjdcXHUyNTY4XFx1MjU2NFxcdTI1NjVcXHUyNTU5XFx1MjU1OFxcdTI1NTJcXHUyNTUzXFx1MjU2QlxcdTI1NkFcXHUyNTE4XFx1MjUwQ1xcdTI1ODhcXHUyNTg0XFx1MjU4Q1xcdTI1OTBcXHUyNTgwXFx1MDQ0MFxcdTA0NDFcXHUwNDQyXFx1MDQ0M1xcdTA0NDRcXHUwNDQ1XFx1MDQ0NlxcdTA0NDdcXHUwNDQ4XFx1MDQ0OVxcdTA0NEFcXHUwNDRCXFx1MDQ0Q1xcdTA0NERcXHUwNDRFXFx1MDQ0RlxcdTA0MDFcXHUwNDUxXFx1MDQwNFxcdTA0NTRcXHUwNDA3XFx1MDQ1N1xcdTA0MEVcXHUwNDVFXFx4QjBcXHUyMjE5XFx4QjdcXHUyMjFBXFx1MjExNlxceEE0XFx1MjVBMFxceEEwXCJcbiAgICAgIH0sXG4gICAgICBcImlibTg2NlwiOiBcImNwODY2XCIsXG4gICAgICBcImNzaWJtODY2XCI6IFwiY3A4NjZcIixcbiAgICAgIFwiY3A4NjlcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJfc2Jjc1wiLFxuICAgICAgICBcImNoYXJzXCI6IFwiXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1MDM4NlxcdUZGRkRcXHhCN1xceEFDXFx4QTZcXHUyMDE4XFx1MjAxOVxcdTAzODhcXHUyMDE1XFx1MDM4OVxcdTAzOEFcXHUwM0FBXFx1MDM4Q1xcdUZGRkRcXHVGRkZEXFx1MDM4RVxcdTAzQUJcXHhBOVxcdTAzOEZcXHhCMlxceEIzXFx1MDNBQ1xceEEzXFx1MDNBRFxcdTAzQUVcXHUwM0FGXFx1MDNDQVxcdTAzOTBcXHUwM0NDXFx1MDNDRFxcdTAzOTFcXHUwMzkyXFx1MDM5M1xcdTAzOTRcXHUwMzk1XFx1MDM5NlxcdTAzOTdcXHhCRFxcdTAzOThcXHUwMzk5XFx4QUJcXHhCQlxcdTI1OTFcXHUyNTkyXFx1MjU5M1xcdTI1MDJcXHUyNTI0XFx1MDM5QVxcdTAzOUJcXHUwMzlDXFx1MDM5RFxcdTI1NjNcXHUyNTUxXFx1MjU1N1xcdTI1NURcXHUwMzlFXFx1MDM5RlxcdTI1MTBcXHUyNTE0XFx1MjUzNFxcdTI1MkNcXHUyNTFDXFx1MjUwMFxcdTI1M0NcXHUwM0EwXFx1MDNBMVxcdTI1NUFcXHUyNTU0XFx1MjU2OVxcdTI1NjZcXHUyNTYwXFx1MjU1MFxcdTI1NkNcXHUwM0EzXFx1MDNBNFxcdTAzQTVcXHUwM0E2XFx1MDNBN1xcdTAzQThcXHUwM0E5XFx1MDNCMVxcdTAzQjJcXHUwM0IzXFx1MjUxOFxcdTI1MENcXHUyNTg4XFx1MjU4NFxcdTAzQjRcXHUwM0I1XFx1MjU4MFxcdTAzQjZcXHUwM0I3XFx1MDNCOFxcdTAzQjlcXHUwM0JBXFx1MDNCQlxcdTAzQkNcXHUwM0JEXFx1MDNCRVxcdTAzQkZcXHUwM0MwXFx1MDNDMVxcdTAzQzNcXHUwM0MyXFx1MDNDNFxcdTAzODRcXHhBRFxceEIxXFx1MDNDNVxcdTAzQzZcXHUwM0M3XFx4QTdcXHUwM0M4XFx1MDM4NVxceEIwXFx4QThcXHUwM0M5XFx1MDNDQlxcdTAzQjBcXHUwM0NFXFx1MjVBMFxceEEwXCJcbiAgICAgIH0sXG4gICAgICBcImlibTg2OVwiOiBcImNwODY5XCIsXG4gICAgICBcImNzaWJtODY5XCI6IFwiY3A4NjlcIixcbiAgICAgIFwiY3A5MjJcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJfc2Jjc1wiLFxuICAgICAgICBcImNoYXJzXCI6IFwiXFx4ODBcXHg4MVxceDgyXFx4ODNcXHg4NFxceDg1XFx4ODZcXHg4N1xceDg4XFx4ODlcXHg4QVxceDhCXFx4OENcXHg4RFxceDhFXFx4OEZcXHg5MFxceDkxXFx4OTJcXHg5M1xceDk0XFx4OTVcXHg5NlxceDk3XFx4OThcXHg5OVxceDlBXFx4OUJcXHg5Q1xceDlEXFx4OUVcXHg5RlxceEEwXFx4QTFcXHhBMlxceEEzXFx4QTRcXHhBNVxceEE2XFx4QTdcXHhBOFxceEE5XFx4QUFcXHhBQlxceEFDXFx4QURcXHhBRVxcdTIwM0VcXHhCMFxceEIxXFx4QjJcXHhCM1xceEI0XFx4QjVcXHhCNlxceEI3XFx4QjhcXHhCOVxceEJBXFx4QkJcXHhCQ1xceEJEXFx4QkVcXHhCRlxceEMwXFx4QzFcXHhDMlxceEMzXFx4QzRcXHhDNVxceEM2XFx4QzdcXHhDOFxceEM5XFx4Q0FcXHhDQlxceENDXFx4Q0RcXHhDRVxceENGXFx1MDE2MFxceEQxXFx4RDJcXHhEM1xceEQ0XFx4RDVcXHhENlxceEQ3XFx4RDhcXHhEOVxceERBXFx4REJcXHhEQ1xceEREXFx1MDE3RFxceERGXFx4RTBcXHhFMVxceEUyXFx4RTNcXHhFNFxceEU1XFx4RTZcXHhFN1xceEU4XFx4RTlcXHhFQVxceEVCXFx4RUNcXHhFRFxceEVFXFx4RUZcXHUwMTYxXFx4RjFcXHhGMlxceEYzXFx4RjRcXHhGNVxceEY2XFx4RjdcXHhGOFxceEY5XFx4RkFcXHhGQlxceEZDXFx4RkRcXHUwMTdFXFx4RkZcIlxuICAgICAgfSxcbiAgICAgIFwiaWJtOTIyXCI6IFwiY3A5MjJcIixcbiAgICAgIFwiY3NpYm05MjJcIjogXCJjcDkyMlwiLFxuICAgICAgXCJjcDEwNDZcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJfc2Jjc1wiLFxuICAgICAgICBcImNoYXJzXCI6IFwiXFx1RkU4OFxceEQ3XFx4RjdcXHVGOEY2XFx1RjhGNVxcdUY4RjRcXHVGOEY3XFx1RkU3MVxceDg4XFx1MjVBMFxcdTI1MDJcXHUyNTAwXFx1MjUxMFxcdTI1MENcXHUyNTE0XFx1MjUxOFxcdUZFNzlcXHVGRTdCXFx1RkU3RFxcdUZFN0ZcXHVGRTc3XFx1RkU4QVxcdUZFRjBcXHVGRUYzXFx1RkVGMlxcdUZFQ0VcXHVGRUNGXFx1RkVEMFxcdUZFRjZcXHVGRUY4XFx1RkVGQVxcdUZFRkNcXHhBMFxcdUY4RkFcXHVGOEY5XFx1RjhGOFxceEE0XFx1RjhGQlxcdUZFOEJcXHVGRTkxXFx1RkU5N1xcdUZFOUJcXHVGRTlGXFx1RkVBM1xcdTA2MENcXHhBRFxcdUZFQTdcXHVGRUIzXFx1MDY2MFxcdTA2NjFcXHUwNjYyXFx1MDY2M1xcdTA2NjRcXHUwNjY1XFx1MDY2NlxcdTA2NjdcXHUwNjY4XFx1MDY2OVxcdUZFQjdcXHUwNjFCXFx1RkVCQlxcdUZFQkZcXHVGRUNBXFx1MDYxRlxcdUZFQ0JcXHUwNjIxXFx1MDYyMlxcdTA2MjNcXHUwNjI0XFx1MDYyNVxcdTA2MjZcXHUwNjI3XFx1MDYyOFxcdTA2MjlcXHUwNjJBXFx1MDYyQlxcdTA2MkNcXHUwNjJEXFx1MDYyRVxcdTA2MkZcXHUwNjMwXFx1MDYzMVxcdTA2MzJcXHUwNjMzXFx1MDYzNFxcdTA2MzVcXHUwNjM2XFx1MDYzN1xcdUZFQzdcXHUwNjM5XFx1MDYzQVxcdUZFQ0NcXHVGRTgyXFx1RkU4NFxcdUZFOEVcXHVGRUQzXFx1MDY0MFxcdTA2NDFcXHUwNjQyXFx1MDY0M1xcdTA2NDRcXHUwNjQ1XFx1MDY0NlxcdTA2NDdcXHUwNjQ4XFx1MDY0OVxcdTA2NEFcXHUwNjRCXFx1MDY0Q1xcdTA2NERcXHUwNjRFXFx1MDY0RlxcdTA2NTBcXHUwNjUxXFx1MDY1MlxcdUZFRDdcXHVGRURCXFx1RkVERlxcdUY4RkNcXHVGRUY1XFx1RkVGN1xcdUZFRjlcXHVGRUZCXFx1RkVFM1xcdUZFRTdcXHVGRUVDXFx1RkVFOVxcdUZGRkRcIlxuICAgICAgfSxcbiAgICAgIFwiaWJtMTA0NlwiOiBcImNwMTA0NlwiLFxuICAgICAgXCJjc2libTEwNDZcIjogXCJjcDEwNDZcIixcbiAgICAgIFwiY3AxMTI0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwiX3NiY3NcIixcbiAgICAgICAgXCJjaGFyc1wiOiBcIlxceDgwXFx4ODFcXHg4MlxceDgzXFx4ODRcXHg4NVxceDg2XFx4ODdcXHg4OFxceDg5XFx4OEFcXHg4QlxceDhDXFx4OERcXHg4RVxceDhGXFx4OTBcXHg5MVxceDkyXFx4OTNcXHg5NFxceDk1XFx4OTZcXHg5N1xceDk4XFx4OTlcXHg5QVxceDlCXFx4OUNcXHg5RFxceDlFXFx4OUZcXHhBMFxcdTA0MDFcXHUwNDAyXFx1MDQ5MFxcdTA0MDRcXHUwNDA1XFx1MDQwNlxcdTA0MDdcXHUwNDA4XFx1MDQwOVxcdTA0MEFcXHUwNDBCXFx1MDQwQ1xceEFEXFx1MDQwRVxcdTA0MEZcXHUwNDEwXFx1MDQxMVxcdTA0MTJcXHUwNDEzXFx1MDQxNFxcdTA0MTVcXHUwNDE2XFx1MDQxN1xcdTA0MThcXHUwNDE5XFx1MDQxQVxcdTA0MUJcXHUwNDFDXFx1MDQxRFxcdTA0MUVcXHUwNDFGXFx1MDQyMFxcdTA0MjFcXHUwNDIyXFx1MDQyM1xcdTA0MjRcXHUwNDI1XFx1MDQyNlxcdTA0MjdcXHUwNDI4XFx1MDQyOVxcdTA0MkFcXHUwNDJCXFx1MDQyQ1xcdTA0MkRcXHUwNDJFXFx1MDQyRlxcdTA0MzBcXHUwNDMxXFx1MDQzMlxcdTA0MzNcXHUwNDM0XFx1MDQzNVxcdTA0MzZcXHUwNDM3XFx1MDQzOFxcdTA0MzlcXHUwNDNBXFx1MDQzQlxcdTA0M0NcXHUwNDNEXFx1MDQzRVxcdTA0M0ZcXHUwNDQwXFx1MDQ0MVxcdTA0NDJcXHUwNDQzXFx1MDQ0NFxcdTA0NDVcXHUwNDQ2XFx1MDQ0N1xcdTA0NDhcXHUwNDQ5XFx1MDQ0QVxcdTA0NEJcXHUwNDRDXFx1MDQ0RFxcdTA0NEVcXHUwNDRGXFx1MjExNlxcdTA0NTFcXHUwNDUyXFx1MDQ5MVxcdTA0NTRcXHUwNDU1XFx1MDQ1NlxcdTA0NTdcXHUwNDU4XFx1MDQ1OVxcdTA0NUFcXHUwNDVCXFx1MDQ1Q1xceEE3XFx1MDQ1RVxcdTA0NUZcIlxuICAgICAgfSxcbiAgICAgIFwiaWJtMTEyNFwiOiBcImNwMTEyNFwiLFxuICAgICAgXCJjc2libTExMjRcIjogXCJjcDExMjRcIixcbiAgICAgIFwiY3AxMTI1XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwiX3NiY3NcIixcbiAgICAgICAgXCJjaGFyc1wiOiBcIlxcdTA0MTBcXHUwNDExXFx1MDQxMlxcdTA0MTNcXHUwNDE0XFx1MDQxNVxcdTA0MTZcXHUwNDE3XFx1MDQxOFxcdTA0MTlcXHUwNDFBXFx1MDQxQlxcdTA0MUNcXHUwNDFEXFx1MDQxRVxcdTA0MUZcXHUwNDIwXFx1MDQyMVxcdTA0MjJcXHUwNDIzXFx1MDQyNFxcdTA0MjVcXHUwNDI2XFx1MDQyN1xcdTA0MjhcXHUwNDI5XFx1MDQyQVxcdTA0MkJcXHUwNDJDXFx1MDQyRFxcdTA0MkVcXHUwNDJGXFx1MDQzMFxcdTA0MzFcXHUwNDMyXFx1MDQzM1xcdTA0MzRcXHUwNDM1XFx1MDQzNlxcdTA0MzdcXHUwNDM4XFx1MDQzOVxcdTA0M0FcXHUwNDNCXFx1MDQzQ1xcdTA0M0RcXHUwNDNFXFx1MDQzRlxcdTI1OTFcXHUyNTkyXFx1MjU5M1xcdTI1MDJcXHUyNTI0XFx1MjU2MVxcdTI1NjJcXHUyNTU2XFx1MjU1NVxcdTI1NjNcXHUyNTUxXFx1MjU1N1xcdTI1NURcXHUyNTVDXFx1MjU1QlxcdTI1MTBcXHUyNTE0XFx1MjUzNFxcdTI1MkNcXHUyNTFDXFx1MjUwMFxcdTI1M0NcXHUyNTVFXFx1MjU1RlxcdTI1NUFcXHUyNTU0XFx1MjU2OVxcdTI1NjZcXHUyNTYwXFx1MjU1MFxcdTI1NkNcXHUyNTY3XFx1MjU2OFxcdTI1NjRcXHUyNTY1XFx1MjU1OVxcdTI1NThcXHUyNTUyXFx1MjU1M1xcdTI1NkJcXHUyNTZBXFx1MjUxOFxcdTI1MENcXHUyNTg4XFx1MjU4NFxcdTI1OENcXHUyNTkwXFx1MjU4MFxcdTA0NDBcXHUwNDQxXFx1MDQ0MlxcdTA0NDNcXHUwNDQ0XFx1MDQ0NVxcdTA0NDZcXHUwNDQ3XFx1MDQ0OFxcdTA0NDlcXHUwNDRBXFx1MDQ0QlxcdTA0NENcXHUwNDREXFx1MDQ0RVxcdTA0NEZcXHUwNDAxXFx1MDQ1MVxcdTA0OTBcXHUwNDkxXFx1MDQwNFxcdTA0NTRcXHUwNDA2XFx1MDQ1NlxcdTA0MDdcXHUwNDU3XFx4QjdcXHUyMjFBXFx1MjExNlxceEE0XFx1MjVBMFxceEEwXCJcbiAgICAgIH0sXG4gICAgICBcImlibTExMjVcIjogXCJjcDExMjVcIixcbiAgICAgIFwiY3NpYm0xMTI1XCI6IFwiY3AxMTI1XCIsXG4gICAgICBcImNwMTEyOVwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIl9zYmNzXCIsXG4gICAgICAgIFwiY2hhcnNcIjogXCJcXHg4MFxceDgxXFx4ODJcXHg4M1xceDg0XFx4ODVcXHg4NlxceDg3XFx4ODhcXHg4OVxceDhBXFx4OEJcXHg4Q1xceDhEXFx4OEVcXHg4RlxceDkwXFx4OTFcXHg5MlxceDkzXFx4OTRcXHg5NVxceDk2XFx4OTdcXHg5OFxceDk5XFx4OUFcXHg5QlxceDlDXFx4OURcXHg5RVxceDlGXFx4QTBcXHhBMVxceEEyXFx4QTNcXHhBNFxceEE1XFx4QTZcXHhBN1xcdTAxNTNcXHhBOVxceEFBXFx4QUJcXHhBQ1xceEFEXFx4QUVcXHhBRlxceEIwXFx4QjFcXHhCMlxceEIzXFx1MDE3OFxceEI1XFx4QjZcXHhCN1xcdTAxNTJcXHhCOVxceEJBXFx4QkJcXHhCQ1xceEJEXFx4QkVcXHhCRlxceEMwXFx4QzFcXHhDMlxcdTAxMDJcXHhDNFxceEM1XFx4QzZcXHhDN1xceEM4XFx4QzlcXHhDQVxceENCXFx1MDMwMFxceENEXFx4Q0VcXHhDRlxcdTAxMTBcXHhEMVxcdTAzMDlcXHhEM1xceEQ0XFx1MDFBMFxceEQ2XFx4RDdcXHhEOFxceEQ5XFx4REFcXHhEQlxceERDXFx1MDFBRlxcdTAzMDNcXHhERlxceEUwXFx4RTFcXHhFMlxcdTAxMDNcXHhFNFxceEU1XFx4RTZcXHhFN1xceEU4XFx4RTlcXHhFQVxceEVCXFx1MDMwMVxceEVEXFx4RUVcXHhFRlxcdTAxMTFcXHhGMVxcdTAzMjNcXHhGM1xceEY0XFx1MDFBMVxceEY2XFx4RjdcXHhGOFxceEY5XFx4RkFcXHhGQlxceEZDXFx1MDFCMFxcdTIwQUJcXHhGRlwiXG4gICAgICB9LFxuICAgICAgXCJpYm0xMTI5XCI6IFwiY3AxMTI5XCIsXG4gICAgICBcImNzaWJtMTEyOVwiOiBcImNwMTEyOVwiLFxuICAgICAgXCJjcDExMzNcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJfc2Jjc1wiLFxuICAgICAgICBcImNoYXJzXCI6IFwiXFx4ODBcXHg4MVxceDgyXFx4ODNcXHg4NFxceDg1XFx4ODZcXHg4N1xceDg4XFx4ODlcXHg4QVxceDhCXFx4OENcXHg4RFxceDhFXFx4OEZcXHg5MFxceDkxXFx4OTJcXHg5M1xceDk0XFx4OTVcXHg5NlxceDk3XFx4OThcXHg5OVxceDlBXFx4OUJcXHg5Q1xceDlEXFx4OUVcXHg5RlxceEEwXFx1MEU4MVxcdTBFODJcXHUwRTg0XFx1MEU4N1xcdTBFODhcXHUwRUFBXFx1MEU4QVxcdTBFOERcXHUwRTk0XFx1MEU5NVxcdTBFOTZcXHUwRTk3XFx1MEU5OVxcdTBFOUFcXHUwRTlCXFx1MEU5Q1xcdTBFOURcXHUwRTlFXFx1MEU5RlxcdTBFQTFcXHUwRUEyXFx1MEVBM1xcdTBFQTVcXHUwRUE3XFx1MEVBQlxcdTBFQURcXHUwRUFFXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1MEVBRlxcdTBFQjBcXHUwRUIyXFx1MEVCM1xcdTBFQjRcXHUwRUI1XFx1MEVCNlxcdTBFQjdcXHUwRUI4XFx1MEVCOVxcdTBFQkNcXHUwRUIxXFx1MEVCQlxcdTBFQkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHUwRUMwXFx1MEVDMVxcdTBFQzJcXHUwRUMzXFx1MEVDNFxcdTBFQzhcXHUwRUM5XFx1MEVDQVxcdTBFQ0JcXHUwRUNDXFx1MEVDRFxcdTBFQzZcXHVGRkZEXFx1MEVEQ1xcdTBFRERcXHUyMEFEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdTBFRDBcXHUwRUQxXFx1MEVEMlxcdTBFRDNcXHUwRUQ0XFx1MEVENVxcdTBFRDZcXHUwRUQ3XFx1MEVEOFxcdTBFRDlcXHVGRkZEXFx1RkZGRFxceEEyXFx4QUNcXHhBNlxcdUZGRkRcIlxuICAgICAgfSxcbiAgICAgIFwiaWJtMTEzM1wiOiBcImNwMTEzM1wiLFxuICAgICAgXCJjc2libTExMzNcIjogXCJjcDExMzNcIixcbiAgICAgIFwiY3AxMTYxXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwiX3NiY3NcIixcbiAgICAgICAgXCJjaGFyc1wiOiBcIlxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1MEU0OFxcdTBFMDFcXHUwRTAyXFx1MEUwM1xcdTBFMDRcXHUwRTA1XFx1MEUwNlxcdTBFMDdcXHUwRTA4XFx1MEUwOVxcdTBFMEFcXHUwRTBCXFx1MEUwQ1xcdTBFMERcXHUwRTBFXFx1MEUwRlxcdTBFMTBcXHUwRTExXFx1MEUxMlxcdTBFMTNcXHUwRTE0XFx1MEUxNVxcdTBFMTZcXHUwRTE3XFx1MEUxOFxcdTBFMTlcXHUwRTFBXFx1MEUxQlxcdTBFMUNcXHUwRTFEXFx1MEUxRVxcdTBFMUZcXHUwRTIwXFx1MEUyMVxcdTBFMjJcXHUwRTIzXFx1MEUyNFxcdTBFMjVcXHUwRTI2XFx1MEUyN1xcdTBFMjhcXHUwRTI5XFx1MEUyQVxcdTBFMkJcXHUwRTJDXFx1MEUyRFxcdTBFMkVcXHUwRTJGXFx1MEUzMFxcdTBFMzFcXHUwRTMyXFx1MEUzM1xcdTBFMzRcXHUwRTM1XFx1MEUzNlxcdTBFMzdcXHUwRTM4XFx1MEUzOVxcdTBFM0FcXHUwRTQ5XFx1MEU0QVxcdTBFNEJcXHUyMEFDXFx1MEUzRlxcdTBFNDBcXHUwRTQxXFx1MEU0MlxcdTBFNDNcXHUwRTQ0XFx1MEU0NVxcdTBFNDZcXHUwRTQ3XFx1MEU0OFxcdTBFNDlcXHUwRTRBXFx1MEU0QlxcdTBFNENcXHUwRTREXFx1MEU0RVxcdTBFNEZcXHUwRTUwXFx1MEU1MVxcdTBFNTJcXHUwRTUzXFx1MEU1NFxcdTBFNTVcXHUwRTU2XFx1MEU1N1xcdTBFNThcXHUwRTU5XFx1MEU1QVxcdTBFNUJcXHhBMlxceEFDXFx4QTZcXHhBMFwiXG4gICAgICB9LFxuICAgICAgXCJpYm0xMTYxXCI6IFwiY3AxMTYxXCIsXG4gICAgICBcImNzaWJtMTE2MVwiOiBcImNwMTE2MVwiLFxuICAgICAgXCJjcDExNjJcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJfc2Jjc1wiLFxuICAgICAgICBcImNoYXJzXCI6IFwiXFx1MjBBQ1xceDgxXFx4ODJcXHg4M1xceDg0XFx1MjAyNlxceDg2XFx4ODdcXHg4OFxceDg5XFx4OEFcXHg4QlxceDhDXFx4OERcXHg4RVxceDhGXFx4OTBcXHUyMDE4XFx1MjAxOVxcdTIwMUNcXHUyMDFEXFx1MjAyMlxcdTIwMTNcXHUyMDE0XFx4OThcXHg5OVxceDlBXFx4OUJcXHg5Q1xceDlEXFx4OUVcXHg5RlxceEEwXFx1MEUwMVxcdTBFMDJcXHUwRTAzXFx1MEUwNFxcdTBFMDVcXHUwRTA2XFx1MEUwN1xcdTBFMDhcXHUwRTA5XFx1MEUwQVxcdTBFMEJcXHUwRTBDXFx1MEUwRFxcdTBFMEVcXHUwRTBGXFx1MEUxMFxcdTBFMTFcXHUwRTEyXFx1MEUxM1xcdTBFMTRcXHUwRTE1XFx1MEUxNlxcdTBFMTdcXHUwRTE4XFx1MEUxOVxcdTBFMUFcXHUwRTFCXFx1MEUxQ1xcdTBFMURcXHUwRTFFXFx1MEUxRlxcdTBFMjBcXHUwRTIxXFx1MEUyMlxcdTBFMjNcXHUwRTI0XFx1MEUyNVxcdTBFMjZcXHUwRTI3XFx1MEUyOFxcdTBFMjlcXHUwRTJBXFx1MEUyQlxcdTBFMkNcXHUwRTJEXFx1MEUyRVxcdTBFMkZcXHUwRTMwXFx1MEUzMVxcdTBFMzJcXHUwRTMzXFx1MEUzNFxcdTBFMzVcXHUwRTM2XFx1MEUzN1xcdTBFMzhcXHUwRTM5XFx1MEUzQVxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHUwRTNGXFx1MEU0MFxcdTBFNDFcXHUwRTQyXFx1MEU0M1xcdTBFNDRcXHUwRTQ1XFx1MEU0NlxcdTBFNDdcXHUwRTQ4XFx1MEU0OVxcdTBFNEFcXHUwRTRCXFx1MEU0Q1xcdTBFNERcXHUwRTRFXFx1MEU0RlxcdTBFNTBcXHUwRTUxXFx1MEU1MlxcdTBFNTNcXHUwRTU0XFx1MEU1NVxcdTBFNTZcXHUwRTU3XFx1MEU1OFxcdTBFNTlcXHUwRTVBXFx1MEU1QlxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcIlxuICAgICAgfSxcbiAgICAgIFwiaWJtMTE2MlwiOiBcImNwMTE2MlwiLFxuICAgICAgXCJjc2libTExNjJcIjogXCJjcDExNjJcIixcbiAgICAgIFwiY3AxMTYzXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwiX3NiY3NcIixcbiAgICAgICAgXCJjaGFyc1wiOiBcIlxceDgwXFx4ODFcXHg4MlxceDgzXFx4ODRcXHg4NVxceDg2XFx4ODdcXHg4OFxceDg5XFx4OEFcXHg4QlxceDhDXFx4OERcXHg4RVxceDhGXFx4OTBcXHg5MVxceDkyXFx4OTNcXHg5NFxceDk1XFx4OTZcXHg5N1xceDk4XFx4OTlcXHg5QVxceDlCXFx4OUNcXHg5RFxceDlFXFx4OUZcXHhBMFxceEExXFx4QTJcXHhBM1xcdTIwQUNcXHhBNVxceEE2XFx4QTdcXHUwMTUzXFx4QTlcXHhBQVxceEFCXFx4QUNcXHhBRFxceEFFXFx4QUZcXHhCMFxceEIxXFx4QjJcXHhCM1xcdTAxNzhcXHhCNVxceEI2XFx4QjdcXHUwMTUyXFx4QjlcXHhCQVxceEJCXFx4QkNcXHhCRFxceEJFXFx4QkZcXHhDMFxceEMxXFx4QzJcXHUwMTAyXFx4QzRcXHhDNVxceEM2XFx4QzdcXHhDOFxceEM5XFx4Q0FcXHhDQlxcdTAzMDBcXHhDRFxceENFXFx4Q0ZcXHUwMTEwXFx4RDFcXHUwMzA5XFx4RDNcXHhENFxcdTAxQTBcXHhENlxceEQ3XFx4RDhcXHhEOVxceERBXFx4REJcXHhEQ1xcdTAxQUZcXHUwMzAzXFx4REZcXHhFMFxceEUxXFx4RTJcXHUwMTAzXFx4RTRcXHhFNVxceEU2XFx4RTdcXHhFOFxceEU5XFx4RUFcXHhFQlxcdTAzMDFcXHhFRFxceEVFXFx4RUZcXHUwMTExXFx4RjFcXHUwMzIzXFx4RjNcXHhGNFxcdTAxQTFcXHhGNlxceEY3XFx4RjhcXHhGOVxceEZBXFx4RkJcXHhGQ1xcdTAxQjBcXHUyMEFCXFx4RkZcIlxuICAgICAgfSxcbiAgICAgIFwiaWJtMTE2M1wiOiBcImNwMTE2M1wiLFxuICAgICAgXCJjc2libTExNjNcIjogXCJjcDExNjNcIixcbiAgICAgIFwibWFjY3JvYXRpYW5cIjoge1xuICAgICAgICBcInR5cGVcIjogXCJfc2Jjc1wiLFxuICAgICAgICBcImNoYXJzXCI6IFwiXFx4QzRcXHhDNVxceEM3XFx4QzlcXHhEMVxceEQ2XFx4RENcXHhFMVxceEUwXFx4RTJcXHhFNFxceEUzXFx4RTVcXHhFN1xceEU5XFx4RThcXHhFQVxceEVCXFx4RURcXHhFQ1xceEVFXFx4RUZcXHhGMVxceEYzXFx4RjJcXHhGNFxceEY2XFx4RjVcXHhGQVxceEY5XFx4RkJcXHhGQ1xcdTIwMjBcXHhCMFxceEEyXFx4QTNcXHhBN1xcdTIwMjJcXHhCNlxceERGXFx4QUVcXHUwMTYwXFx1MjEyMlxceEI0XFx4QThcXHUyMjYwXFx1MDE3RFxceEQ4XFx1MjIxRVxceEIxXFx1MjI2NFxcdTIyNjVcXHUyMjA2XFx4QjVcXHUyMjAyXFx1MjIxMVxcdTIyMEZcXHUwMTYxXFx1MjIyQlxceEFBXFx4QkFcXHUyMTI2XFx1MDE3RVxceEY4XFx4QkZcXHhBMVxceEFDXFx1MjIxQVxcdTAxOTJcXHUyMjQ4XFx1MDEwNlxceEFCXFx1MDEwQ1xcdTIwMjZcXHhBMFxceEMwXFx4QzNcXHhENVxcdTAxNTJcXHUwMTUzXFx1MDExMFxcdTIwMTRcXHUyMDFDXFx1MjAxRFxcdTIwMThcXHUyMDE5XFx4RjdcXHUyNUNBXFx1RkZGRFxceEE5XFx1MjA0NFxceEE0XFx1MjAzOVxcdTIwM0FcXHhDNlxceEJCXFx1MjAxM1xceEI3XFx1MjAxQVxcdTIwMUVcXHUyMDMwXFx4QzJcXHUwMTA3XFx4QzFcXHUwMTBEXFx4QzhcXHhDRFxceENFXFx4Q0ZcXHhDQ1xceEQzXFx4RDRcXHUwMTExXFx4RDJcXHhEQVxceERCXFx4RDlcXHUwMTMxXFx1MDJDNlxcdTAyRENcXHhBRlxcdTAzQzBcXHhDQlxcdTAyREFcXHhCOFxceENBXFx4RTZcXHUwMkM3XCJcbiAgICAgIH0sXG4gICAgICBcIm1hY2N5cmlsbGljXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwiX3NiY3NcIixcbiAgICAgICAgXCJjaGFyc1wiOiBcIlxcdTA0MTBcXHUwNDExXFx1MDQxMlxcdTA0MTNcXHUwNDE0XFx1MDQxNVxcdTA0MTZcXHUwNDE3XFx1MDQxOFxcdTA0MTlcXHUwNDFBXFx1MDQxQlxcdTA0MUNcXHUwNDFEXFx1MDQxRVxcdTA0MUZcXHUwNDIwXFx1MDQyMVxcdTA0MjJcXHUwNDIzXFx1MDQyNFxcdTA0MjVcXHUwNDI2XFx1MDQyN1xcdTA0MjhcXHUwNDI5XFx1MDQyQVxcdTA0MkJcXHUwNDJDXFx1MDQyRFxcdTA0MkVcXHUwNDJGXFx1MjAyMFxceEIwXFx4QTJcXHhBM1xceEE3XFx1MjAyMlxceEI2XFx1MDQwNlxceEFFXFx4QTlcXHUyMTIyXFx1MDQwMlxcdTA0NTJcXHUyMjYwXFx1MDQwM1xcdTA0NTNcXHUyMjFFXFx4QjFcXHUyMjY0XFx1MjI2NVxcdTA0NTZcXHhCNVxcdTIyMDJcXHUwNDA4XFx1MDQwNFxcdTA0NTRcXHUwNDA3XFx1MDQ1N1xcdTA0MDlcXHUwNDU5XFx1MDQwQVxcdTA0NUFcXHUwNDU4XFx1MDQwNVxceEFDXFx1MjIxQVxcdTAxOTJcXHUyMjQ4XFx1MjIwNlxceEFCXFx4QkJcXHUyMDI2XFx4QTBcXHUwNDBCXFx1MDQ1QlxcdTA0MENcXHUwNDVDXFx1MDQ1NVxcdTIwMTNcXHUyMDE0XFx1MjAxQ1xcdTIwMURcXHUyMDE4XFx1MjAxOVxceEY3XFx1MjAxRVxcdTA0MEVcXHUwNDVFXFx1MDQwRlxcdTA0NUZcXHUyMTE2XFx1MDQwMVxcdTA0NTFcXHUwNDRGXFx1MDQzMFxcdTA0MzFcXHUwNDMyXFx1MDQzM1xcdTA0MzRcXHUwNDM1XFx1MDQzNlxcdTA0MzdcXHUwNDM4XFx1MDQzOVxcdTA0M0FcXHUwNDNCXFx1MDQzQ1xcdTA0M0RcXHUwNDNFXFx1MDQzRlxcdTA0NDBcXHUwNDQxXFx1MDQ0MlxcdTA0NDNcXHUwNDQ0XFx1MDQ0NVxcdTA0NDZcXHUwNDQ3XFx1MDQ0OFxcdTA0NDlcXHUwNDRBXFx1MDQ0QlxcdTA0NENcXHUwNDREXFx1MDQ0RVxceEE0XCJcbiAgICAgIH0sXG4gICAgICBcIm1hY2dyZWVrXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwiX3NiY3NcIixcbiAgICAgICAgXCJjaGFyc1wiOiBcIlxceEM0XFx4QjlcXHhCMlxceEM5XFx4QjNcXHhENlxceERDXFx1MDM4NVxceEUwXFx4RTJcXHhFNFxcdTAzODRcXHhBOFxceEU3XFx4RTlcXHhFOFxceEVBXFx4RUJcXHhBM1xcdTIxMjJcXHhFRVxceEVGXFx1MjAyMlxceEJEXFx1MjAzMFxceEY0XFx4RjZcXHhBNlxceEFEXFx4RjlcXHhGQlxceEZDXFx1MjAyMFxcdTAzOTNcXHUwMzk0XFx1MDM5OFxcdTAzOUJcXHUwMzlFXFx1MDNBMFxceERGXFx4QUVcXHhBOVxcdTAzQTNcXHUwM0FBXFx4QTdcXHUyMjYwXFx4QjBcXHUwMzg3XFx1MDM5MVxceEIxXFx1MjI2NFxcdTIyNjVcXHhBNVxcdTAzOTJcXHUwMzk1XFx1MDM5NlxcdTAzOTdcXHUwMzk5XFx1MDM5QVxcdTAzOUNcXHUwM0E2XFx1MDNBQlxcdTAzQThcXHUwM0E5XFx1MDNBQ1xcdTAzOURcXHhBQ1xcdTAzOUZcXHUwM0ExXFx1MjI0OFxcdTAzQTRcXHhBQlxceEJCXFx1MjAyNlxceEEwXFx1MDNBNVxcdTAzQTdcXHUwMzg2XFx1MDM4OFxcdTAxNTNcXHUyMDEzXFx1MjAxNVxcdTIwMUNcXHUyMDFEXFx1MjAxOFxcdTIwMTlcXHhGN1xcdTAzODlcXHUwMzhBXFx1MDM4Q1xcdTAzOEVcXHUwM0FEXFx1MDNBRVxcdTAzQUZcXHUwM0NDXFx1MDM4RlxcdTAzQ0RcXHUwM0IxXFx1MDNCMlxcdTAzQzhcXHUwM0I0XFx1MDNCNVxcdTAzQzZcXHUwM0IzXFx1MDNCN1xcdTAzQjlcXHUwM0JFXFx1MDNCQVxcdTAzQkJcXHUwM0JDXFx1MDNCRFxcdTAzQkZcXHUwM0MwXFx1MDNDRVxcdTAzQzFcXHUwM0MzXFx1MDNDNFxcdTAzQjhcXHUwM0M5XFx1MDNDMlxcdTAzQzdcXHUwM0M1XFx1MDNCNlxcdTAzQ0FcXHUwM0NCXFx1MDM5MFxcdTAzQjBcXHVGRkZEXCJcbiAgICAgIH0sXG4gICAgICBcIm1hY2ljZWxhbmRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJfc2Jjc1wiLFxuICAgICAgICBcImNoYXJzXCI6IFwiXFx4QzRcXHhDNVxceEM3XFx4QzlcXHhEMVxceEQ2XFx4RENcXHhFMVxceEUwXFx4RTJcXHhFNFxceEUzXFx4RTVcXHhFN1xceEU5XFx4RThcXHhFQVxceEVCXFx4RURcXHhFQ1xceEVFXFx4RUZcXHhGMVxceEYzXFx4RjJcXHhGNFxceEY2XFx4RjVcXHhGQVxceEY5XFx4RkJcXHhGQ1xceEREXFx4QjBcXHhBMlxceEEzXFx4QTdcXHUyMDIyXFx4QjZcXHhERlxceEFFXFx4QTlcXHUyMTIyXFx4QjRcXHhBOFxcdTIyNjBcXHhDNlxceEQ4XFx1MjIxRVxceEIxXFx1MjI2NFxcdTIyNjVcXHhBNVxceEI1XFx1MjIwMlxcdTIyMTFcXHUyMjBGXFx1MDNDMFxcdTIyMkJcXHhBQVxceEJBXFx1MjEyNlxceEU2XFx4RjhcXHhCRlxceEExXFx4QUNcXHUyMjFBXFx1MDE5MlxcdTIyNDhcXHUyMjA2XFx4QUJcXHhCQlxcdTIwMjZcXHhBMFxceEMwXFx4QzNcXHhENVxcdTAxNTJcXHUwMTUzXFx1MjAxM1xcdTIwMTRcXHUyMDFDXFx1MjAxRFxcdTIwMThcXHUyMDE5XFx4RjdcXHUyNUNBXFx4RkZcXHUwMTc4XFx1MjA0NFxceEE0XFx4RDBcXHhGMFxceERFXFx4RkVcXHhGRFxceEI3XFx1MjAxQVxcdTIwMUVcXHUyMDMwXFx4QzJcXHhDQVxceEMxXFx4Q0JcXHhDOFxceENEXFx4Q0VcXHhDRlxceENDXFx4RDNcXHhENFxcdUZGRkRcXHhEMlxceERBXFx4REJcXHhEOVxcdTAxMzFcXHUwMkM2XFx1MDJEQ1xceEFGXFx1MDJEOFxcdTAyRDlcXHUwMkRBXFx4QjhcXHUwMkREXFx1MDJEQlxcdTAyQzdcIlxuICAgICAgfSxcbiAgICAgIFwibWFjcm9tYW5cIjoge1xuICAgICAgICBcInR5cGVcIjogXCJfc2Jjc1wiLFxuICAgICAgICBcImNoYXJzXCI6IFwiXFx4QzRcXHhDNVxceEM3XFx4QzlcXHhEMVxceEQ2XFx4RENcXHhFMVxceEUwXFx4RTJcXHhFNFxceEUzXFx4RTVcXHhFN1xceEU5XFx4RThcXHhFQVxceEVCXFx4RURcXHhFQ1xceEVFXFx4RUZcXHhGMVxceEYzXFx4RjJcXHhGNFxceEY2XFx4RjVcXHhGQVxceEY5XFx4RkJcXHhGQ1xcdTIwMjBcXHhCMFxceEEyXFx4QTNcXHhBN1xcdTIwMjJcXHhCNlxceERGXFx4QUVcXHhBOVxcdTIxMjJcXHhCNFxceEE4XFx1MjI2MFxceEM2XFx4RDhcXHUyMjFFXFx4QjFcXHUyMjY0XFx1MjI2NVxceEE1XFx4QjVcXHUyMjAyXFx1MjIxMVxcdTIyMEZcXHUwM0MwXFx1MjIyQlxceEFBXFx4QkFcXHUyMTI2XFx4RTZcXHhGOFxceEJGXFx4QTFcXHhBQ1xcdTIyMUFcXHUwMTkyXFx1MjI0OFxcdTIyMDZcXHhBQlxceEJCXFx1MjAyNlxceEEwXFx4QzBcXHhDM1xceEQ1XFx1MDE1MlxcdTAxNTNcXHUyMDEzXFx1MjAxNFxcdTIwMUNcXHUyMDFEXFx1MjAxOFxcdTIwMTlcXHhGN1xcdTI1Q0FcXHhGRlxcdTAxNzhcXHUyMDQ0XFx4QTRcXHUyMDM5XFx1MjAzQVxcdUZCMDFcXHVGQjAyXFx1MjAyMVxceEI3XFx1MjAxQVxcdTIwMUVcXHUyMDMwXFx4QzJcXHhDQVxceEMxXFx4Q0JcXHhDOFxceENEXFx4Q0VcXHhDRlxceENDXFx4RDNcXHhENFxcdUZGRkRcXHhEMlxceERBXFx4REJcXHhEOVxcdTAxMzFcXHUwMkM2XFx1MDJEQ1xceEFGXFx1MDJEOFxcdTAyRDlcXHUwMkRBXFx4QjhcXHUwMkREXFx1MDJEQlxcdTAyQzdcIlxuICAgICAgfSxcbiAgICAgIFwibWFjcm9tYW5pYVwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIl9zYmNzXCIsXG4gICAgICAgIFwiY2hhcnNcIjogXCJcXHhDNFxceEM1XFx4QzdcXHhDOVxceEQxXFx4RDZcXHhEQ1xceEUxXFx4RTBcXHhFMlxceEU0XFx4RTNcXHhFNVxceEU3XFx4RTlcXHhFOFxceEVBXFx4RUJcXHhFRFxceEVDXFx4RUVcXHhFRlxceEYxXFx4RjNcXHhGMlxceEY0XFx4RjZcXHhGNVxceEZBXFx4RjlcXHhGQlxceEZDXFx1MjAyMFxceEIwXFx4QTJcXHhBM1xceEE3XFx1MjAyMlxceEI2XFx4REZcXHhBRVxceEE5XFx1MjEyMlxceEI0XFx4QThcXHUyMjYwXFx1MDEwMlxcdTAxNUVcXHUyMjFFXFx4QjFcXHUyMjY0XFx1MjI2NVxceEE1XFx4QjVcXHUyMjAyXFx1MjIxMVxcdTIyMEZcXHUwM0MwXFx1MjIyQlxceEFBXFx4QkFcXHUyMTI2XFx1MDEwM1xcdTAxNUZcXHhCRlxceEExXFx4QUNcXHUyMjFBXFx1MDE5MlxcdTIyNDhcXHUyMjA2XFx4QUJcXHhCQlxcdTIwMjZcXHhBMFxceEMwXFx4QzNcXHhENVxcdTAxNTJcXHUwMTUzXFx1MjAxM1xcdTIwMTRcXHUyMDFDXFx1MjAxRFxcdTIwMThcXHUyMDE5XFx4RjdcXHUyNUNBXFx4RkZcXHUwMTc4XFx1MjA0NFxceEE0XFx1MjAzOVxcdTIwM0FcXHUwMTYyXFx1MDE2M1xcdTIwMjFcXHhCN1xcdTIwMUFcXHUyMDFFXFx1MjAzMFxceEMyXFx4Q0FcXHhDMVxceENCXFx4QzhcXHhDRFxceENFXFx4Q0ZcXHhDQ1xceEQzXFx4RDRcXHVGRkZEXFx4RDJcXHhEQVxceERCXFx4RDlcXHUwMTMxXFx1MDJDNlxcdTAyRENcXHhBRlxcdTAyRDhcXHUwMkQ5XFx1MDJEQVxceEI4XFx1MDJERFxcdTAyREJcXHUwMkM3XCJcbiAgICAgIH0sXG4gICAgICBcIm1hY3RoYWlcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJfc2Jjc1wiLFxuICAgICAgICBcImNoYXJzXCI6IFwiXFx4QUJcXHhCQlxcdTIwMjZcXHVGODhDXFx1Rjg4RlxcdUY4OTJcXHVGODk1XFx1Rjg5OFxcdUY4OEJcXHVGODhFXFx1Rjg5MVxcdUY4OTRcXHVGODk3XFx1MjAxQ1xcdTIwMURcXHVGODk5XFx1RkZGRFxcdTIwMjJcXHVGODg0XFx1Rjg4OVxcdUY4ODVcXHVGODg2XFx1Rjg4N1xcdUY4ODhcXHVGODhBXFx1Rjg4RFxcdUY4OTBcXHVGODkzXFx1Rjg5NlxcdTIwMThcXHUyMDE5XFx1RkZGRFxceEEwXFx1MEUwMVxcdTBFMDJcXHUwRTAzXFx1MEUwNFxcdTBFMDVcXHUwRTA2XFx1MEUwN1xcdTBFMDhcXHUwRTA5XFx1MEUwQVxcdTBFMEJcXHUwRTBDXFx1MEUwRFxcdTBFMEVcXHUwRTBGXFx1MEUxMFxcdTBFMTFcXHUwRTEyXFx1MEUxM1xcdTBFMTRcXHUwRTE1XFx1MEUxNlxcdTBFMTdcXHUwRTE4XFx1MEUxOVxcdTBFMUFcXHUwRTFCXFx1MEUxQ1xcdTBFMURcXHUwRTFFXFx1MEUxRlxcdTBFMjBcXHUwRTIxXFx1MEUyMlxcdTBFMjNcXHUwRTI0XFx1MEUyNVxcdTBFMjZcXHUwRTI3XFx1MEUyOFxcdTBFMjlcXHUwRTJBXFx1MEUyQlxcdTBFMkNcXHUwRTJEXFx1MEUyRVxcdTBFMkZcXHUwRTMwXFx1MEUzMVxcdTBFMzJcXHUwRTMzXFx1MEUzNFxcdTBFMzVcXHUwRTM2XFx1MEUzN1xcdTBFMzhcXHUwRTM5XFx1MEUzQVxcdUZFRkZcXHUyMDBCXFx1MjAxM1xcdTIwMTRcXHUwRTNGXFx1MEU0MFxcdTBFNDFcXHUwRTQyXFx1MEU0M1xcdTBFNDRcXHUwRTQ1XFx1MEU0NlxcdTBFNDdcXHUwRTQ4XFx1MEU0OVxcdTBFNEFcXHUwRTRCXFx1MEU0Q1xcdTBFNERcXHUyMTIyXFx1MEU0RlxcdTBFNTBcXHUwRTUxXFx1MEU1MlxcdTBFNTNcXHUwRTU0XFx1MEU1NVxcdTBFNTZcXHUwRTU3XFx1MEU1OFxcdTBFNTlcXHhBRVxceEE5XFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFwiXG4gICAgICB9LFxuICAgICAgXCJtYWN0dXJraXNoXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwiX3NiY3NcIixcbiAgICAgICAgXCJjaGFyc1wiOiBcIlxceEM0XFx4QzVcXHhDN1xceEM5XFx4RDFcXHhENlxceERDXFx4RTFcXHhFMFxceEUyXFx4RTRcXHhFM1xceEU1XFx4RTdcXHhFOVxceEU4XFx4RUFcXHhFQlxceEVEXFx4RUNcXHhFRVxceEVGXFx4RjFcXHhGM1xceEYyXFx4RjRcXHhGNlxceEY1XFx4RkFcXHhGOVxceEZCXFx4RkNcXHUyMDIwXFx4QjBcXHhBMlxceEEzXFx4QTdcXHUyMDIyXFx4QjZcXHhERlxceEFFXFx4QTlcXHUyMTIyXFx4QjRcXHhBOFxcdTIyNjBcXHhDNlxceEQ4XFx1MjIxRVxceEIxXFx1MjI2NFxcdTIyNjVcXHhBNVxceEI1XFx1MjIwMlxcdTIyMTFcXHUyMjBGXFx1MDNDMFxcdTIyMkJcXHhBQVxceEJBXFx1MjEyNlxceEU2XFx4RjhcXHhCRlxceEExXFx4QUNcXHUyMjFBXFx1MDE5MlxcdTIyNDhcXHUyMjA2XFx4QUJcXHhCQlxcdTIwMjZcXHhBMFxceEMwXFx4QzNcXHhENVxcdTAxNTJcXHUwMTUzXFx1MjAxM1xcdTIwMTRcXHUyMDFDXFx1MjAxRFxcdTIwMThcXHUyMDE5XFx4RjdcXHUyNUNBXFx4RkZcXHUwMTc4XFx1MDExRVxcdTAxMUZcXHUwMTMwXFx1MDEzMVxcdTAxNUVcXHUwMTVGXFx1MjAyMVxceEI3XFx1MjAxQVxcdTIwMUVcXHUyMDMwXFx4QzJcXHhDQVxceEMxXFx4Q0JcXHhDOFxceENEXFx4Q0VcXHhDRlxceENDXFx4RDNcXHhENFxcdUZGRkRcXHhEMlxceERBXFx4REJcXHhEOVxcdUZGRkRcXHUwMkM2XFx1MDJEQ1xceEFGXFx1MDJEOFxcdTAyRDlcXHUwMkRBXFx4QjhcXHUwMkREXFx1MDJEQlxcdTAyQzdcIlxuICAgICAgfSxcbiAgICAgIFwibWFjdWtyYWluZVwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIl9zYmNzXCIsXG4gICAgICAgIFwiY2hhcnNcIjogXCJcXHUwNDEwXFx1MDQxMVxcdTA0MTJcXHUwNDEzXFx1MDQxNFxcdTA0MTVcXHUwNDE2XFx1MDQxN1xcdTA0MThcXHUwNDE5XFx1MDQxQVxcdTA0MUJcXHUwNDFDXFx1MDQxRFxcdTA0MUVcXHUwNDFGXFx1MDQyMFxcdTA0MjFcXHUwNDIyXFx1MDQyM1xcdTA0MjRcXHUwNDI1XFx1MDQyNlxcdTA0MjdcXHUwNDI4XFx1MDQyOVxcdTA0MkFcXHUwNDJCXFx1MDQyQ1xcdTA0MkRcXHUwNDJFXFx1MDQyRlxcdTIwMjBcXHhCMFxcdTA0OTBcXHhBM1xceEE3XFx1MjAyMlxceEI2XFx1MDQwNlxceEFFXFx4QTlcXHUyMTIyXFx1MDQwMlxcdTA0NTJcXHUyMjYwXFx1MDQwM1xcdTA0NTNcXHUyMjFFXFx4QjFcXHUyMjY0XFx1MjI2NVxcdTA0NTZcXHhCNVxcdTA0OTFcXHUwNDA4XFx1MDQwNFxcdTA0NTRcXHUwNDA3XFx1MDQ1N1xcdTA0MDlcXHUwNDU5XFx1MDQwQVxcdTA0NUFcXHUwNDU4XFx1MDQwNVxceEFDXFx1MjIxQVxcdTAxOTJcXHUyMjQ4XFx1MjIwNlxceEFCXFx4QkJcXHUyMDI2XFx4QTBcXHUwNDBCXFx1MDQ1QlxcdTA0MENcXHUwNDVDXFx1MDQ1NVxcdTIwMTNcXHUyMDE0XFx1MjAxQ1xcdTIwMURcXHUyMDE4XFx1MjAxOVxceEY3XFx1MjAxRVxcdTA0MEVcXHUwNDVFXFx1MDQwRlxcdTA0NUZcXHUyMTE2XFx1MDQwMVxcdTA0NTFcXHUwNDRGXFx1MDQzMFxcdTA0MzFcXHUwNDMyXFx1MDQzM1xcdTA0MzRcXHUwNDM1XFx1MDQzNlxcdTA0MzdcXHUwNDM4XFx1MDQzOVxcdTA0M0FcXHUwNDNCXFx1MDQzQ1xcdTA0M0RcXHUwNDNFXFx1MDQzRlxcdTA0NDBcXHUwNDQxXFx1MDQ0MlxcdTA0NDNcXHUwNDQ0XFx1MDQ0NVxcdTA0NDZcXHUwNDQ3XFx1MDQ0OFxcdTA0NDlcXHUwNDRBXFx1MDQ0QlxcdTA0NENcXHUwNDREXFx1MDQ0RVxceEE0XCJcbiAgICAgIH0sXG4gICAgICBcImtvaThyXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwiX3NiY3NcIixcbiAgICAgICAgXCJjaGFyc1wiOiBcIlxcdTI1MDBcXHUyNTAyXFx1MjUwQ1xcdTI1MTBcXHUyNTE0XFx1MjUxOFxcdTI1MUNcXHUyNTI0XFx1MjUyQ1xcdTI1MzRcXHUyNTNDXFx1MjU4MFxcdTI1ODRcXHUyNTg4XFx1MjU4Q1xcdTI1OTBcXHUyNTkxXFx1MjU5MlxcdTI1OTNcXHUyMzIwXFx1MjVBMFxcdTIyMTlcXHUyMjFBXFx1MjI0OFxcdTIyNjRcXHUyMjY1XFx4QTBcXHUyMzIxXFx4QjBcXHhCMlxceEI3XFx4RjdcXHUyNTUwXFx1MjU1MVxcdTI1NTJcXHUwNDUxXFx1MjU1M1xcdTI1NTRcXHUyNTU1XFx1MjU1NlxcdTI1NTdcXHUyNTU4XFx1MjU1OVxcdTI1NUFcXHUyNTVCXFx1MjU1Q1xcdTI1NURcXHUyNTVFXFx1MjU1RlxcdTI1NjBcXHUyNTYxXFx1MDQwMVxcdTI1NjJcXHUyNTYzXFx1MjU2NFxcdTI1NjVcXHUyNTY2XFx1MjU2N1xcdTI1NjhcXHUyNTY5XFx1MjU2QVxcdTI1NkJcXHUyNTZDXFx4QTlcXHUwNDRFXFx1MDQzMFxcdTA0MzFcXHUwNDQ2XFx1MDQzNFxcdTA0MzVcXHUwNDQ0XFx1MDQzM1xcdTA0NDVcXHUwNDM4XFx1MDQzOVxcdTA0M0FcXHUwNDNCXFx1MDQzQ1xcdTA0M0RcXHUwNDNFXFx1MDQzRlxcdTA0NEZcXHUwNDQwXFx1MDQ0MVxcdTA0NDJcXHUwNDQzXFx1MDQzNlxcdTA0MzJcXHUwNDRDXFx1MDQ0QlxcdTA0MzdcXHUwNDQ4XFx1MDQ0RFxcdTA0NDlcXHUwNDQ3XFx1MDQ0QVxcdTA0MkVcXHUwNDEwXFx1MDQxMVxcdTA0MjZcXHUwNDE0XFx1MDQxNVxcdTA0MjRcXHUwNDEzXFx1MDQyNVxcdTA0MThcXHUwNDE5XFx1MDQxQVxcdTA0MUJcXHUwNDFDXFx1MDQxRFxcdTA0MUVcXHUwNDFGXFx1MDQyRlxcdTA0MjBcXHUwNDIxXFx1MDQyMlxcdTA0MjNcXHUwNDE2XFx1MDQxMlxcdTA0MkNcXHUwNDJCXFx1MDQxN1xcdTA0MjhcXHUwNDJEXFx1MDQyOVxcdTA0MjdcXHUwNDJBXCJcbiAgICAgIH0sXG4gICAgICBcImtvaTh1XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwiX3NiY3NcIixcbiAgICAgICAgXCJjaGFyc1wiOiBcIlxcdTI1MDBcXHUyNTAyXFx1MjUwQ1xcdTI1MTBcXHUyNTE0XFx1MjUxOFxcdTI1MUNcXHUyNTI0XFx1MjUyQ1xcdTI1MzRcXHUyNTNDXFx1MjU4MFxcdTI1ODRcXHUyNTg4XFx1MjU4Q1xcdTI1OTBcXHUyNTkxXFx1MjU5MlxcdTI1OTNcXHUyMzIwXFx1MjVBMFxcdTIyMTlcXHUyMjFBXFx1MjI0OFxcdTIyNjRcXHUyMjY1XFx4QTBcXHUyMzIxXFx4QjBcXHhCMlxceEI3XFx4RjdcXHUyNTUwXFx1MjU1MVxcdTI1NTJcXHUwNDUxXFx1MDQ1NFxcdTI1NTRcXHUwNDU2XFx1MDQ1N1xcdTI1NTdcXHUyNTU4XFx1MjU1OVxcdTI1NUFcXHUyNTVCXFx1MDQ5MVxcdTI1NURcXHUyNTVFXFx1MjU1RlxcdTI1NjBcXHUyNTYxXFx1MDQwMVxcdTA0MDRcXHUyNTYzXFx1MDQwNlxcdTA0MDdcXHUyNTY2XFx1MjU2N1xcdTI1NjhcXHUyNTY5XFx1MjU2QVxcdTA0OTBcXHUyNTZDXFx4QTlcXHUwNDRFXFx1MDQzMFxcdTA0MzFcXHUwNDQ2XFx1MDQzNFxcdTA0MzVcXHUwNDQ0XFx1MDQzM1xcdTA0NDVcXHUwNDM4XFx1MDQzOVxcdTA0M0FcXHUwNDNCXFx1MDQzQ1xcdTA0M0RcXHUwNDNFXFx1MDQzRlxcdTA0NEZcXHUwNDQwXFx1MDQ0MVxcdTA0NDJcXHUwNDQzXFx1MDQzNlxcdTA0MzJcXHUwNDRDXFx1MDQ0QlxcdTA0MzdcXHUwNDQ4XFx1MDQ0RFxcdTA0NDlcXHUwNDQ3XFx1MDQ0QVxcdTA0MkVcXHUwNDEwXFx1MDQxMVxcdTA0MjZcXHUwNDE0XFx1MDQxNVxcdTA0MjRcXHUwNDEzXFx1MDQyNVxcdTA0MThcXHUwNDE5XFx1MDQxQVxcdTA0MUJcXHUwNDFDXFx1MDQxRFxcdTA0MUVcXHUwNDFGXFx1MDQyRlxcdTA0MjBcXHUwNDIxXFx1MDQyMlxcdTA0MjNcXHUwNDE2XFx1MDQxMlxcdTA0MkNcXHUwNDJCXFx1MDQxN1xcdTA0MjhcXHUwNDJEXFx1MDQyOVxcdTA0MjdcXHUwNDJBXCJcbiAgICAgIH0sXG4gICAgICBcImtvaThydVwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIl9zYmNzXCIsXG4gICAgICAgIFwiY2hhcnNcIjogXCJcXHUyNTAwXFx1MjUwMlxcdTI1MENcXHUyNTEwXFx1MjUxNFxcdTI1MThcXHUyNTFDXFx1MjUyNFxcdTI1MkNcXHUyNTM0XFx1MjUzQ1xcdTI1ODBcXHUyNTg0XFx1MjU4OFxcdTI1OENcXHUyNTkwXFx1MjU5MVxcdTI1OTJcXHUyNTkzXFx1MjMyMFxcdTI1QTBcXHUyMjE5XFx1MjIxQVxcdTIyNDhcXHUyMjY0XFx1MjI2NVxceEEwXFx1MjMyMVxceEIwXFx4QjJcXHhCN1xceEY3XFx1MjU1MFxcdTI1NTFcXHUyNTUyXFx1MDQ1MVxcdTA0NTRcXHUyNTU0XFx1MDQ1NlxcdTA0NTdcXHUyNTU3XFx1MjU1OFxcdTI1NTlcXHUyNTVBXFx1MjU1QlxcdTA0OTFcXHUwNDVFXFx1MjU1RVxcdTI1NUZcXHUyNTYwXFx1MjU2MVxcdTA0MDFcXHUwNDA0XFx1MjU2M1xcdTA0MDZcXHUwNDA3XFx1MjU2NlxcdTI1NjdcXHUyNTY4XFx1MjU2OVxcdTI1NkFcXHUwNDkwXFx1MDQwRVxceEE5XFx1MDQ0RVxcdTA0MzBcXHUwNDMxXFx1MDQ0NlxcdTA0MzRcXHUwNDM1XFx1MDQ0NFxcdTA0MzNcXHUwNDQ1XFx1MDQzOFxcdTA0MzlcXHUwNDNBXFx1MDQzQlxcdTA0M0NcXHUwNDNEXFx1MDQzRVxcdTA0M0ZcXHUwNDRGXFx1MDQ0MFxcdTA0NDFcXHUwNDQyXFx1MDQ0M1xcdTA0MzZcXHUwNDMyXFx1MDQ0Q1xcdTA0NEJcXHUwNDM3XFx1MDQ0OFxcdTA0NERcXHUwNDQ5XFx1MDQ0N1xcdTA0NEFcXHUwNDJFXFx1MDQxMFxcdTA0MTFcXHUwNDI2XFx1MDQxNFxcdTA0MTVcXHUwNDI0XFx1MDQxM1xcdTA0MjVcXHUwNDE4XFx1MDQxOVxcdTA0MUFcXHUwNDFCXFx1MDQxQ1xcdTA0MURcXHUwNDFFXFx1MDQxRlxcdTA0MkZcXHUwNDIwXFx1MDQyMVxcdTA0MjJcXHUwNDIzXFx1MDQxNlxcdTA0MTJcXHUwNDJDXFx1MDQyQlxcdTA0MTdcXHUwNDI4XFx1MDQyRFxcdTA0MjlcXHUwNDI3XFx1MDQyQVwiXG4gICAgICB9LFxuICAgICAgXCJrb2k4dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIl9zYmNzXCIsXG4gICAgICAgIFwiY2hhcnNcIjogXCJcXHUwNDlCXFx1MDQ5M1xcdTIwMUFcXHUwNDkyXFx1MjAxRVxcdTIwMjZcXHUyMDIwXFx1MjAyMVxcdUZGRkRcXHUyMDMwXFx1MDRCM1xcdTIwMzlcXHUwNEIyXFx1MDRCN1xcdTA0QjZcXHVGRkZEXFx1MDQ5QVxcdTIwMThcXHUyMDE5XFx1MjAxQ1xcdTIwMURcXHUyMDIyXFx1MjAxM1xcdTIwMTRcXHVGRkZEXFx1MjEyMlxcdUZGRkRcXHUyMDNBXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHUwNEVGXFx1MDRFRVxcdTA0NTFcXHhBNFxcdTA0RTNcXHhBNlxceEE3XFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx4QUJcXHhBQ1xceEFEXFx4QUVcXHVGRkZEXFx4QjBcXHhCMVxceEIyXFx1MDQwMVxcdUZGRkRcXHUwNEUyXFx4QjZcXHhCN1xcdUZGRkRcXHUyMTE2XFx1RkZGRFxceEJCXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx4QTlcXHUwNDRFXFx1MDQzMFxcdTA0MzFcXHUwNDQ2XFx1MDQzNFxcdTA0MzVcXHUwNDQ0XFx1MDQzM1xcdTA0NDVcXHUwNDM4XFx1MDQzOVxcdTA0M0FcXHUwNDNCXFx1MDQzQ1xcdTA0M0RcXHUwNDNFXFx1MDQzRlxcdTA0NEZcXHUwNDQwXFx1MDQ0MVxcdTA0NDJcXHUwNDQzXFx1MDQzNlxcdTA0MzJcXHUwNDRDXFx1MDQ0QlxcdTA0MzdcXHUwNDQ4XFx1MDQ0RFxcdTA0NDlcXHUwNDQ3XFx1MDQ0QVxcdTA0MkVcXHUwNDEwXFx1MDQxMVxcdTA0MjZcXHUwNDE0XFx1MDQxNVxcdTA0MjRcXHUwNDEzXFx1MDQyNVxcdTA0MThcXHUwNDE5XFx1MDQxQVxcdTA0MUJcXHUwNDFDXFx1MDQxRFxcdTA0MUVcXHUwNDFGXFx1MDQyRlxcdTA0MjBcXHUwNDIxXFx1MDQyMlxcdTA0MjNcXHUwNDE2XFx1MDQxMlxcdTA0MkNcXHUwNDJCXFx1MDQxN1xcdTA0MjhcXHUwNDJEXFx1MDQyOVxcdTA0MjdcXHUwNDJBXCJcbiAgICAgIH0sXG4gICAgICBcImFybXNjaWk4XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwiX3NiY3NcIixcbiAgICAgICAgXCJjaGFyc1wiOiBcIlxceDgwXFx4ODFcXHg4MlxceDgzXFx4ODRcXHg4NVxceDg2XFx4ODdcXHg4OFxceDg5XFx4OEFcXHg4QlxceDhDXFx4OERcXHg4RVxceDhGXFx4OTBcXHg5MVxceDkyXFx4OTNcXHg5NFxceDk1XFx4OTZcXHg5N1xceDk4XFx4OTlcXHg5QVxceDlCXFx4OUNcXHg5RFxceDlFXFx4OUZcXHhBMFxcdUZGRkRcXHUwNTg3XFx1MDU4OSkoXFx4QkJcXHhBQlxcdTIwMTQuXFx1MDU1RCwtXFx1MDU4QVxcdTIwMjZcXHUwNTVDXFx1MDU1QlxcdTA1NUVcXHUwNTMxXFx1MDU2MVxcdTA1MzJcXHUwNTYyXFx1MDUzM1xcdTA1NjNcXHUwNTM0XFx1MDU2NFxcdTA1MzVcXHUwNTY1XFx1MDUzNlxcdTA1NjZcXHUwNTM3XFx1MDU2N1xcdTA1MzhcXHUwNTY4XFx1MDUzOVxcdTA1NjlcXHUwNTNBXFx1MDU2QVxcdTA1M0JcXHUwNTZCXFx1MDUzQ1xcdTA1NkNcXHUwNTNEXFx1MDU2RFxcdTA1M0VcXHUwNTZFXFx1MDUzRlxcdTA1NkZcXHUwNTQwXFx1MDU3MFxcdTA1NDFcXHUwNTcxXFx1MDU0MlxcdTA1NzJcXHUwNTQzXFx1MDU3M1xcdTA1NDRcXHUwNTc0XFx1MDU0NVxcdTA1NzVcXHUwNTQ2XFx1MDU3NlxcdTA1NDdcXHUwNTc3XFx1MDU0OFxcdTA1NzhcXHUwNTQ5XFx1MDU3OVxcdTA1NEFcXHUwNTdBXFx1MDU0QlxcdTA1N0JcXHUwNTRDXFx1MDU3Q1xcdTA1NERcXHUwNTdEXFx1MDU0RVxcdTA1N0VcXHUwNTRGXFx1MDU3RlxcdTA1NTBcXHUwNTgwXFx1MDU1MVxcdTA1ODFcXHUwNTUyXFx1MDU4MlxcdTA1NTNcXHUwNTgzXFx1MDU1NFxcdTA1ODRcXHUwNTU1XFx1MDU4NVxcdTA1NTZcXHUwNTg2XFx1MDU1QVxcdUZGRkRcIlxuICAgICAgfSxcbiAgICAgIFwicmsxMDQ4XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwiX3NiY3NcIixcbiAgICAgICAgXCJjaGFyc1wiOiBcIlxcdTA0MDJcXHUwNDAzXFx1MjAxQVxcdTA0NTNcXHUyMDFFXFx1MjAyNlxcdTIwMjBcXHUyMDIxXFx1MjBBQ1xcdTIwMzBcXHUwNDA5XFx1MjAzOVxcdTA0MEFcXHUwNDlBXFx1MDRCQVxcdTA0MEZcXHUwNDUyXFx1MjAxOFxcdTIwMTlcXHUyMDFDXFx1MjAxRFxcdTIwMjJcXHUyMDEzXFx1MjAxNFxcdUZGRkRcXHUyMTIyXFx1MDQ1OVxcdTIwM0FcXHUwNDVBXFx1MDQ5QlxcdTA0QkJcXHUwNDVGXFx4QTBcXHUwNEIwXFx1MDRCMVxcdTA0RDhcXHhBNFxcdTA0RThcXHhBNlxceEE3XFx1MDQwMVxceEE5XFx1MDQ5MlxceEFCXFx4QUNcXHhBRFxceEFFXFx1MDRBRVxceEIwXFx4QjFcXHUwNDA2XFx1MDQ1NlxcdTA0RTlcXHhCNVxceEI2XFx4QjdcXHUwNDUxXFx1MjExNlxcdTA0OTNcXHhCQlxcdTA0RDlcXHUwNEEyXFx1MDRBM1xcdTA0QUZcXHUwNDEwXFx1MDQxMVxcdTA0MTJcXHUwNDEzXFx1MDQxNFxcdTA0MTVcXHUwNDE2XFx1MDQxN1xcdTA0MThcXHUwNDE5XFx1MDQxQVxcdTA0MUJcXHUwNDFDXFx1MDQxRFxcdTA0MUVcXHUwNDFGXFx1MDQyMFxcdTA0MjFcXHUwNDIyXFx1MDQyM1xcdTA0MjRcXHUwNDI1XFx1MDQyNlxcdTA0MjdcXHUwNDI4XFx1MDQyOVxcdTA0MkFcXHUwNDJCXFx1MDQyQ1xcdTA0MkRcXHUwNDJFXFx1MDQyRlxcdTA0MzBcXHUwNDMxXFx1MDQzMlxcdTA0MzNcXHUwNDM0XFx1MDQzNVxcdTA0MzZcXHUwNDM3XFx1MDQzOFxcdTA0MzlcXHUwNDNBXFx1MDQzQlxcdTA0M0NcXHUwNDNEXFx1MDQzRVxcdTA0M0ZcXHUwNDQwXFx1MDQ0MVxcdTA0NDJcXHUwNDQzXFx1MDQ0NFxcdTA0NDVcXHUwNDQ2XFx1MDQ0N1xcdTA0NDhcXHUwNDQ5XFx1MDQ0QVxcdTA0NEJcXHUwNDRDXFx1MDQ0RFxcdTA0NEVcXHUwNDRGXCJcbiAgICAgIH0sXG4gICAgICBcInRjdm5cIjoge1xuICAgICAgICBcInR5cGVcIjogXCJfc2Jjc1wiLFxuICAgICAgICBcImNoYXJzXCI6IFwiXFwwXFx4REFcXHUxRUU0XHUwMDAzXFx1MUVFQVxcdTFFRUNcXHUxRUVFXFx4MDdcXGJcdFxcblxcdlxcZlxcclx1MDAwRVx1MDAwRlx1MDAxMFxcdTFFRThcXHUxRUYwXFx1MUVGMlxcdTFFRjZcXHUxRUY4XFx4RERcXHUxRUY0XHUwMDE4XHUwMDE5XHUwMDFBXFx4MUJcdTAwMUNcdTAwMURcdTAwMUVcdTAwMUYgIVxcXCIjJCUmJygpKissLS4vMDEyMzQ1Njc4OTo7PD0+P0BBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWltcXFxcXV5fYGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6e3x9flxceDdGXFx4QzBcXHUxRUEyXFx4QzNcXHhDMVxcdTFFQTBcXHUxRUI2XFx1MUVBQ1xceEM4XFx1MUVCQVxcdTFFQkNcXHhDOVxcdTFFQjhcXHUxRUM2XFx4Q0NcXHUxRUM4XFx1MDEyOFxceENEXFx1MUVDQVxceEQyXFx1MUVDRVxceEQ1XFx4RDNcXHUxRUNDXFx1MUVEOFxcdTFFRENcXHUxRURFXFx1MUVFMFxcdTFFREFcXHUxRUUyXFx4RDlcXHUxRUU2XFx1MDE2OFxceEEwXFx1MDEwMlxceEMyXFx4Q0FcXHhENFxcdTAxQTBcXHUwMUFGXFx1MDExMFxcdTAxMDNcXHhFMlxceEVBXFx4RjRcXHUwMUExXFx1MDFCMFxcdTAxMTFcXHUxRUIwXFx1MDMwMFxcdTAzMDlcXHUwMzAzXFx1MDMwMVxcdTAzMjNcXHhFMFxcdTFFQTNcXHhFM1xceEUxXFx1MUVBMVxcdTFFQjJcXHUxRUIxXFx1MUVCM1xcdTFFQjVcXHUxRUFGXFx1MUVCNFxcdTFFQUVcXHUxRUE2XFx1MUVBOFxcdTFFQUFcXHUxRUE0XFx1MUVDMFxcdTFFQjdcXHUxRUE3XFx1MUVBOVxcdTFFQUJcXHUxRUE1XFx1MUVBRFxceEU4XFx1MUVDMlxcdTFFQkJcXHUxRUJEXFx4RTlcXHUxRUI5XFx1MUVDMVxcdTFFQzNcXHUxRUM1XFx1MUVCRlxcdTFFQzdcXHhFQ1xcdTFFQzlcXHUxRUM0XFx1MUVCRVxcdTFFRDJcXHUwMTI5XFx4RURcXHUxRUNCXFx4RjJcXHUxRUQ0XFx1MUVDRlxceEY1XFx4RjNcXHUxRUNEXFx1MUVEM1xcdTFFRDVcXHUxRUQ3XFx1MUVEMVxcdTFFRDlcXHUxRUREXFx1MUVERlxcdTFFRTFcXHUxRURCXFx1MUVFM1xceEY5XFx1MUVENlxcdTFFRTdcXHUwMTY5XFx4RkFcXHUxRUU1XFx1MUVFQlxcdTFFRURcXHUxRUVGXFx1MUVFOVxcdTFFRjFcXHUxRUYzXFx1MUVGN1xcdTFFRjlcXHhGRFxcdTFFRjVcXHUxRUQwXCJcbiAgICAgIH0sXG4gICAgICBcImdlb3JnaWFuYWNhZGVteVwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIl9zYmNzXCIsXG4gICAgICAgIFwiY2hhcnNcIjogXCJcXHg4MFxceDgxXFx1MjAxQVxcdTAxOTJcXHUyMDFFXFx1MjAyNlxcdTIwMjBcXHUyMDIxXFx1MDJDNlxcdTIwMzBcXHUwMTYwXFx1MjAzOVxcdTAxNTJcXHg4RFxceDhFXFx4OEZcXHg5MFxcdTIwMThcXHUyMDE5XFx1MjAxQ1xcdTIwMURcXHUyMDIyXFx1MjAxM1xcdTIwMTRcXHUwMkRDXFx1MjEyMlxcdTAxNjFcXHUyMDNBXFx1MDE1M1xceDlEXFx4OUVcXHUwMTc4XFx4QTBcXHhBMVxceEEyXFx4QTNcXHhBNFxceEE1XFx4QTZcXHhBN1xceEE4XFx4QTlcXHhBQVxceEFCXFx4QUNcXHhBRFxceEFFXFx4QUZcXHhCMFxceEIxXFx4QjJcXHhCM1xceEI0XFx4QjVcXHhCNlxceEI3XFx4QjhcXHhCOVxceEJBXFx4QkJcXHhCQ1xceEJEXFx4QkVcXHhCRlxcdTEwRDBcXHUxMEQxXFx1MTBEMlxcdTEwRDNcXHUxMEQ0XFx1MTBENVxcdTEwRDZcXHUxMEQ3XFx1MTBEOFxcdTEwRDlcXHUxMERBXFx1MTBEQlxcdTEwRENcXHUxMEREXFx1MTBERVxcdTEwREZcXHUxMEUwXFx1MTBFMVxcdTEwRTJcXHUxMEUzXFx1MTBFNFxcdTEwRTVcXHUxMEU2XFx1MTBFN1xcdTEwRThcXHUxMEU5XFx1MTBFQVxcdTEwRUJcXHUxMEVDXFx1MTBFRFxcdTEwRUVcXHUxMEVGXFx1MTBGMFxcdTEwRjFcXHUxMEYyXFx1MTBGM1xcdTEwRjRcXHUxMEY1XFx1MTBGNlxceEU3XFx4RThcXHhFOVxceEVBXFx4RUJcXHhFQ1xceEVEXFx4RUVcXHhFRlxceEYwXFx4RjFcXHhGMlxceEYzXFx4RjRcXHhGNVxceEY2XFx4RjdcXHhGOFxceEY5XFx4RkFcXHhGQlxceEZDXFx4RkRcXHhGRVxceEZGXCJcbiAgICAgIH0sXG4gICAgICBcImdlb3JnaWFucHNcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJfc2Jjc1wiLFxuICAgICAgICBcImNoYXJzXCI6IFwiXFx4ODBcXHg4MVxcdTIwMUFcXHUwMTkyXFx1MjAxRVxcdTIwMjZcXHUyMDIwXFx1MjAyMVxcdTAyQzZcXHUyMDMwXFx1MDE2MFxcdTIwMzlcXHUwMTUyXFx4OERcXHg4RVxceDhGXFx4OTBcXHUyMDE4XFx1MjAxOVxcdTIwMUNcXHUyMDFEXFx1MjAyMlxcdTIwMTNcXHUyMDE0XFx1MDJEQ1xcdTIxMjJcXHUwMTYxXFx1MjAzQVxcdTAxNTNcXHg5RFxceDlFXFx1MDE3OFxceEEwXFx4QTFcXHhBMlxceEEzXFx4QTRcXHhBNVxceEE2XFx4QTdcXHhBOFxceEE5XFx4QUFcXHhBQlxceEFDXFx4QURcXHhBRVxceEFGXFx4QjBcXHhCMVxceEIyXFx4QjNcXHhCNFxceEI1XFx4QjZcXHhCN1xceEI4XFx4QjlcXHhCQVxceEJCXFx4QkNcXHhCRFxceEJFXFx4QkZcXHUxMEQwXFx1MTBEMVxcdTEwRDJcXHUxMEQzXFx1MTBENFxcdTEwRDVcXHUxMEQ2XFx1MTBGMVxcdTEwRDdcXHUxMEQ4XFx1MTBEOVxcdTEwREFcXHUxMERCXFx1MTBEQ1xcdTEwRjJcXHUxMEREXFx1MTBERVxcdTEwREZcXHUxMEUwXFx1MTBFMVxcdTEwRTJcXHUxMEYzXFx1MTBFM1xcdTEwRTRcXHUxMEU1XFx1MTBFNlxcdTEwRTdcXHUxMEU4XFx1MTBFOVxcdTEwRUFcXHUxMEVCXFx1MTBFQ1xcdTEwRURcXHUxMEVFXFx1MTBGNFxcdTEwRUZcXHUxMEYwXFx1MTBGNVxceEU2XFx4RTdcXHhFOFxceEU5XFx4RUFcXHhFQlxceEVDXFx4RURcXHhFRVxceEVGXFx4RjBcXHhGMVxceEYyXFx4RjNcXHhGNFxceEY1XFx4RjZcXHhGN1xceEY4XFx4RjlcXHhGQVxceEZCXFx4RkNcXHhGRFxceEZFXFx4RkZcIlxuICAgICAgfSxcbiAgICAgIFwicHQxNTRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJfc2Jjc1wiLFxuICAgICAgICBcImNoYXJzXCI6IFwiXFx1MDQ5NlxcdTA0OTJcXHUwNEVFXFx1MDQ5M1xcdTIwMUVcXHUyMDI2XFx1MDRCNlxcdTA0QUVcXHUwNEIyXFx1MDRBRlxcdTA0QTBcXHUwNEUyXFx1MDRBMlxcdTA0OUFcXHUwNEJBXFx1MDRCOFxcdTA0OTdcXHUyMDE4XFx1MjAxOVxcdTIwMUNcXHUyMDFEXFx1MjAyMlxcdTIwMTNcXHUyMDE0XFx1MDRCM1xcdTA0QjdcXHUwNEExXFx1MDRFM1xcdTA0QTNcXHUwNDlCXFx1MDRCQlxcdTA0QjlcXHhBMFxcdTA0MEVcXHUwNDVFXFx1MDQwOFxcdTA0RThcXHUwNDk4XFx1MDRCMFxceEE3XFx1MDQwMVxceEE5XFx1MDREOFxceEFCXFx4QUNcXHUwNEVGXFx4QUVcXHUwNDlDXFx4QjBcXHUwNEIxXFx1MDQwNlxcdTA0NTZcXHUwNDk5XFx1MDRFOVxceEI2XFx4QjdcXHUwNDUxXFx1MjExNlxcdTA0RDlcXHhCQlxcdTA0NThcXHUwNEFBXFx1MDRBQlxcdTA0OURcXHUwNDEwXFx1MDQxMVxcdTA0MTJcXHUwNDEzXFx1MDQxNFxcdTA0MTVcXHUwNDE2XFx1MDQxN1xcdTA0MThcXHUwNDE5XFx1MDQxQVxcdTA0MUJcXHUwNDFDXFx1MDQxRFxcdTA0MUVcXHUwNDFGXFx1MDQyMFxcdTA0MjFcXHUwNDIyXFx1MDQyM1xcdTA0MjRcXHUwNDI1XFx1MDQyNlxcdTA0MjdcXHUwNDI4XFx1MDQyOVxcdTA0MkFcXHUwNDJCXFx1MDQyQ1xcdTA0MkRcXHUwNDJFXFx1MDQyRlxcdTA0MzBcXHUwNDMxXFx1MDQzMlxcdTA0MzNcXHUwNDM0XFx1MDQzNVxcdTA0MzZcXHUwNDM3XFx1MDQzOFxcdTA0MzlcXHUwNDNBXFx1MDQzQlxcdTA0M0NcXHUwNDNEXFx1MDQzRVxcdTA0M0ZcXHUwNDQwXFx1MDQ0MVxcdTA0NDJcXHUwNDQzXFx1MDQ0NFxcdTA0NDVcXHUwNDQ2XFx1MDQ0N1xcdTA0NDhcXHUwNDQ5XFx1MDQ0QVxcdTA0NEJcXHUwNDRDXFx1MDQ0RFxcdTA0NEVcXHUwNDRGXCJcbiAgICAgIH0sXG4gICAgICBcInZpc2NpaVwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIl9zYmNzXCIsXG4gICAgICAgIFwiY2hhcnNcIjogXCJcXDBcdTAwMDFcXHUxRUIyXHUwMDAzXHUwMDA0XFx1MUVCNFxcdTFFQUFcXHgwN1xcYlx0XFxuXFx2XFxmXFxyXHUwMDBFXHUwMDBGXHUwMDEwXHUwMDExXHUwMDEyXHUwMDEzXFx1MUVGNlx1MDAxNVx1MDAxNlx1MDAxN1x1MDAxOFxcdTFFRjhcdTAwMUFcXHgxQlx1MDAxQ1x1MDAxRFxcdTFFRjRcdTAwMUYgIVxcXCIjJCUmJygpKissLS4vMDEyMzQ1Njc4OTo7PD0+P0BBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWltcXFxcXV5fYGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6e3x9flxceDdGXFx1MUVBMFxcdTFFQUVcXHUxRUIwXFx1MUVCNlxcdTFFQTRcXHUxRUE2XFx1MUVBOFxcdTFFQUNcXHUxRUJDXFx1MUVCOFxcdTFFQkVcXHUxRUMwXFx1MUVDMlxcdTFFQzRcXHUxRUM2XFx1MUVEMFxcdTFFRDJcXHUxRUQ0XFx1MUVENlxcdTFFRDhcXHUxRUUyXFx1MUVEQVxcdTFFRENcXHUxRURFXFx1MUVDQVxcdTFFQ0VcXHUxRUNDXFx1MUVDOFxcdTFFRTZcXHUwMTY4XFx1MUVFNFxcdTFFRjJcXHhENVxcdTFFQUZcXHUxRUIxXFx1MUVCN1xcdTFFQTVcXHUxRUE3XFx1MUVBOVxcdTFFQURcXHUxRUJEXFx1MUVCOVxcdTFFQkZcXHUxRUMxXFx1MUVDM1xcdTFFQzVcXHUxRUM3XFx1MUVEMVxcdTFFRDNcXHUxRUQ1XFx1MUVEN1xcdTFFRTBcXHUwMUEwXFx1MUVEOVxcdTFFRERcXHUxRURGXFx1MUVDQlxcdTFFRjBcXHUxRUU4XFx1MUVFQVxcdTFFRUNcXHUwMUExXFx1MUVEQlxcdTAxQUZcXHhDMFxceEMxXFx4QzJcXHhDM1xcdTFFQTJcXHUwMTAyXFx1MUVCM1xcdTFFQjVcXHhDOFxceEM5XFx4Q0FcXHUxRUJBXFx4Q0NcXHhDRFxcdTAxMjhcXHUxRUYzXFx1MDExMFxcdTFFRTlcXHhEMlxceEQzXFx4RDRcXHUxRUExXFx1MUVGN1xcdTFFRUJcXHUxRUVEXFx4RDlcXHhEQVxcdTFFRjlcXHUxRUY1XFx4RERcXHUxRUUxXFx1MDFCMFxceEUwXFx4RTFcXHhFMlxceEUzXFx1MUVBM1xcdTAxMDNcXHUxRUVGXFx1MUVBQlxceEU4XFx4RTlcXHhFQVxcdTFFQkJcXHhFQ1xceEVEXFx1MDEyOVxcdTFFQzlcXHUwMTExXFx1MUVGMVxceEYyXFx4RjNcXHhGNFxceEY1XFx1MUVDRlxcdTFFQ0RcXHUxRUU1XFx4RjlcXHhGQVxcdTAxNjlcXHUxRUU3XFx4RkRcXHUxRUUzXFx1MUVFRVwiXG4gICAgICB9LFxuICAgICAgXCJpc282NDZjblwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIl9zYmNzXCIsXG4gICAgICAgIFwiY2hhcnNcIjogXCJcXDBcdTAwMDFcdTAwMDJcdTAwMDNcdTAwMDRcdTAwMDVcdTAwMDZcXHgwN1xcYlx0XFxuXFx2XFxmXFxyXHUwMDBFXHUwMDBGXHUwMDEwXHUwMDExXHUwMDEyXHUwMDEzXHUwMDE0XHUwMDE1XHUwMDE2XHUwMDE3XHUwMDE4XHUwMDE5XHUwMDFBXFx4MUJcdTAwMUNcdTAwMURcdTAwMUVcdTAwMUYgIVxcXCIjXFx4QTUlJicoKSorLC0uLzAxMjM0NTY3ODk6Ozw9Pj9AQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpbXFxcXF1eX2BhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ent8fVxcdTIwM0VcXHg3RlxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXCJcbiAgICAgIH0sXG4gICAgICBcImlzbzY0NmpwXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwiX3NiY3NcIixcbiAgICAgICAgXCJjaGFyc1wiOiBcIlxcMFx1MDAwMVx1MDAwMlx1MDAwM1x1MDAwNFx1MDAwNVx1MDAwNlxceDA3XFxiXHRcXG5cXHZcXGZcXHJcdTAwMEVcdTAwMEZcdTAwMTBcdTAwMTFcdTAwMTJcdTAwMTNcdTAwMTRcdTAwMTVcdTAwMTZcdTAwMTdcdTAwMThcdTAwMTlcdTAwMUFcXHgxQlx1MDAxQ1x1MDAxRFx1MDAxRVx1MDAxRiAhXFxcIiMkJSYnKCkqKywtLi8wMTIzNDU2Nzg5Ojs8PT4/QEFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaW1xceEE1XV5fYGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6e3x9XFx1MjAzRVxceDdGXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcIlxuICAgICAgfSxcbiAgICAgIFwiaHByb21hbjhcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJfc2Jjc1wiLFxuICAgICAgICBcImNoYXJzXCI6IFwiXFx4ODBcXHg4MVxceDgyXFx4ODNcXHg4NFxceDg1XFx4ODZcXHg4N1xceDg4XFx4ODlcXHg4QVxceDhCXFx4OENcXHg4RFxceDhFXFx4OEZcXHg5MFxceDkxXFx4OTJcXHg5M1xceDk0XFx4OTVcXHg5NlxceDk3XFx4OThcXHg5OVxceDlBXFx4OUJcXHg5Q1xceDlEXFx4OUVcXHg5RlxceEEwXFx4QzBcXHhDMlxceEM4XFx4Q0FcXHhDQlxceENFXFx4Q0ZcXHhCNFxcdTAyQ0JcXHUwMkM2XFx4QThcXHUwMkRDXFx4RDlcXHhEQlxcdTIwQTRcXHhBRlxceEREXFx4RkRcXHhCMFxceEM3XFx4RTdcXHhEMVxceEYxXFx4QTFcXHhCRlxceEE0XFx4QTNcXHhBNVxceEE3XFx1MDE5MlxceEEyXFx4RTJcXHhFQVxceEY0XFx4RkJcXHhFMVxceEU5XFx4RjNcXHhGQVxceEUwXFx4RThcXHhGMlxceEY5XFx4RTRcXHhFQlxceEY2XFx4RkNcXHhDNVxceEVFXFx4RDhcXHhDNlxceEU1XFx4RURcXHhGOFxceEU2XFx4QzRcXHhFQ1xceEQ2XFx4RENcXHhDOVxceEVGXFx4REZcXHhENFxceEMxXFx4QzNcXHhFM1xceEQwXFx4RjBcXHhDRFxceENDXFx4RDNcXHhEMlxceEQ1XFx4RjVcXHUwMTYwXFx1MDE2MVxceERBXFx1MDE3OFxceEZGXFx4REVcXHhGRVxceEI3XFx4QjVcXHhCNlxceEJFXFx1MjAxNFxceEJDXFx4QkRcXHhBQVxceEJBXFx4QUJcXHUyNUEwXFx4QkJcXHhCMVxcdUZGRkRcIlxuICAgICAgfSxcbiAgICAgIFwibWFjaW50b3NoXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwiX3NiY3NcIixcbiAgICAgICAgXCJjaGFyc1wiOiBcIlxceEM0XFx4QzVcXHhDN1xceEM5XFx4RDFcXHhENlxceERDXFx4RTFcXHhFMFxceEUyXFx4RTRcXHhFM1xceEU1XFx4RTdcXHhFOVxceEU4XFx4RUFcXHhFQlxceEVEXFx4RUNcXHhFRVxceEVGXFx4RjFcXHhGM1xceEYyXFx4RjRcXHhGNlxceEY1XFx4RkFcXHhGOVxceEZCXFx4RkNcXHUyMDIwXFx4QjBcXHhBMlxceEEzXFx4QTdcXHUyMDIyXFx4QjZcXHhERlxceEFFXFx4QTlcXHUyMTIyXFx4QjRcXHhBOFxcdTIyNjBcXHhDNlxceEQ4XFx1MjIxRVxceEIxXFx1MjI2NFxcdTIyNjVcXHhBNVxceEI1XFx1MjIwMlxcdTIyMTFcXHUyMjBGXFx1MDNDMFxcdTIyMkJcXHhBQVxceEJBXFx1MjEyNlxceEU2XFx4RjhcXHhCRlxceEExXFx4QUNcXHUyMjFBXFx1MDE5MlxcdTIyNDhcXHUyMjA2XFx4QUJcXHhCQlxcdTIwMjZcXHhBMFxceEMwXFx4QzNcXHhENVxcdTAxNTJcXHUwMTUzXFx1MjAxM1xcdTIwMTRcXHUyMDFDXFx1MjAxRFxcdTIwMThcXHUyMDE5XFx4RjdcXHUyNUNBXFx4RkZcXHUwMTc4XFx1MjA0NFxceEE0XFx1MjAzOVxcdTIwM0FcXHVGQjAxXFx1RkIwMlxcdTIwMjFcXHhCN1xcdTIwMUFcXHUyMDFFXFx1MjAzMFxceEMyXFx4Q0FcXHhDMVxceENCXFx4QzhcXHhDRFxceENFXFx4Q0ZcXHhDQ1xceEQzXFx4RDRcXHVGRkZEXFx4RDJcXHhEQVxceERCXFx4RDlcXHUwMTMxXFx1MDJDNlxcdTAyRENcXHhBRlxcdTAyRDhcXHUwMkQ5XFx1MDJEQVxceEI4XFx1MDJERFxcdTAyREJcXHUwMkM3XCJcbiAgICAgIH0sXG4gICAgICBcImFzY2lpXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwiX3NiY3NcIixcbiAgICAgICAgXCJjaGFyc1wiOiBcIlxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXCJcbiAgICAgIH0sXG4gICAgICBcInRpczYyMFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIl9zYmNzXCIsXG4gICAgICAgIFwiY2hhcnNcIjogXCJcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHUwRTAxXFx1MEUwMlxcdTBFMDNcXHUwRTA0XFx1MEUwNVxcdTBFMDZcXHUwRTA3XFx1MEUwOFxcdTBFMDlcXHUwRTBBXFx1MEUwQlxcdTBFMENcXHUwRTBEXFx1MEUwRVxcdTBFMEZcXHUwRTEwXFx1MEUxMVxcdTBFMTJcXHUwRTEzXFx1MEUxNFxcdTBFMTVcXHUwRTE2XFx1MEUxN1xcdTBFMThcXHUwRTE5XFx1MEUxQVxcdTBFMUJcXHUwRTFDXFx1MEUxRFxcdTBFMUVcXHUwRTFGXFx1MEUyMFxcdTBFMjFcXHUwRTIyXFx1MEUyM1xcdTBFMjRcXHUwRTI1XFx1MEUyNlxcdTBFMjdcXHUwRTI4XFx1MEUyOVxcdTBFMkFcXHUwRTJCXFx1MEUyQ1xcdTBFMkRcXHUwRTJFXFx1MEUyRlxcdTBFMzBcXHUwRTMxXFx1MEUzMlxcdTBFMzNcXHUwRTM0XFx1MEUzNVxcdTBFMzZcXHUwRTM3XFx1MEUzOFxcdTBFMzlcXHUwRTNBXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdTBFM0ZcXHUwRTQwXFx1MEU0MVxcdTBFNDJcXHUwRTQzXFx1MEU0NFxcdTBFNDVcXHUwRTQ2XFx1MEU0N1xcdTBFNDhcXHUwRTQ5XFx1MEU0QVxcdTBFNEJcXHUwRTRDXFx1MEU0RFxcdTBFNEVcXHUwRTRGXFx1MEU1MFxcdTBFNTFcXHUwRTUyXFx1MEU1M1xcdTBFNTRcXHUwRTU1XFx1MEU1NlxcdTBFNTdcXHUwRTU4XFx1MEU1OVxcdTBFNUFcXHUwRTVCXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFwiXG4gICAgICB9XG4gICAgfTtcbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9yYXctYm9keS9ub2RlX21vZHVsZXMvaWNvbnYtbGl0ZS9lbmNvZGluZ3MvZGJjcy1jb2RlYy5qc1xudmFyIHJlcXVpcmVfZGJjc19jb2RlYyA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9yYXctYm9keS9ub2RlX21vZHVsZXMvaWNvbnYtbGl0ZS9lbmNvZGluZ3MvZGJjcy1jb2RlYy5qc1wiKGV4cG9ydHMyKSB7XG4gICAgXCJ1c2Ugc3RyaWN0XCI7XG4gICAgdmFyIEJ1ZmZlcjIgPSByZXF1aXJlX3NhZmVyKCkuQnVmZmVyO1xuICAgIGV4cG9ydHMyLl9kYmNzID0gREJDU0NvZGVjO1xuICAgIHZhciBVTkFTU0lHTkVEID0gLTE7XG4gICAgdmFyIEdCMTgwMzBfQ09ERSA9IC0yO1xuICAgIHZhciBTRVFfU1RBUlQgPSAtMTA7XG4gICAgdmFyIE5PREVfU1RBUlQgPSAtMWUzO1xuICAgIHZhciBVTkFTU0lHTkVEX05PREUgPSBuZXcgQXJyYXkoMjU2KTtcbiAgICB2YXIgREVGX0NIQVIgPSAtMTtcbiAgICBmb3IgKGkgPSAwOyBpIDwgMjU2OyBpKyspXG4gICAgICBVTkFTU0lHTkVEX05PREVbaV0gPSBVTkFTU0lHTkVEO1xuICAgIHZhciBpO1xuICAgIGZ1bmN0aW9uIERCQ1NDb2RlYyhjb2RlY09wdGlvbnMsIGljb252KSB7XG4gICAgICB0aGlzLmVuY29kaW5nTmFtZSA9IGNvZGVjT3B0aW9ucy5lbmNvZGluZ05hbWU7XG4gICAgICBpZiAoIWNvZGVjT3B0aW9ucylcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiREJDUyBjb2RlYyBpcyBjYWxsZWQgd2l0aG91dCB0aGUgZGF0YS5cIik7XG4gICAgICBpZiAoIWNvZGVjT3B0aW9ucy50YWJsZSlcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiRW5jb2RpbmcgJ1wiICsgdGhpcy5lbmNvZGluZ05hbWUgKyBcIicgaGFzIG5vIGRhdGEuXCIpO1xuICAgICAgdmFyIG1hcHBpbmdUYWJsZSA9IGNvZGVjT3B0aW9ucy50YWJsZSgpO1xuICAgICAgdGhpcy5kZWNvZGVUYWJsZXMgPSBbXTtcbiAgICAgIHRoaXMuZGVjb2RlVGFibGVzWzBdID0gVU5BU1NJR05FRF9OT0RFLnNsaWNlKDApO1xuICAgICAgdGhpcy5kZWNvZGVUYWJsZVNlcSA9IFtdO1xuICAgICAgZm9yICh2YXIgaTIgPSAwOyBpMiA8IG1hcHBpbmdUYWJsZS5sZW5ndGg7IGkyKyspXG4gICAgICAgIHRoaXMuX2FkZERlY29kZUNodW5rKG1hcHBpbmdUYWJsZVtpMl0pO1xuICAgICAgaWYgKHR5cGVvZiBjb2RlY09wdGlvbnMuZ2IxODAzMCA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgIHRoaXMuZ2IxODAzMCA9IGNvZGVjT3B0aW9ucy5nYjE4MDMwKCk7XG4gICAgICAgIHZhciBjb21tb25UaGlyZEJ5dGVOb2RlSWR4ID0gdGhpcy5kZWNvZGVUYWJsZXMubGVuZ3RoO1xuICAgICAgICB0aGlzLmRlY29kZVRhYmxlcy5wdXNoKFVOQVNTSUdORURfTk9ERS5zbGljZSgwKSk7XG4gICAgICAgIHZhciBjb21tb25Gb3VydGhCeXRlTm9kZUlkeCA9IHRoaXMuZGVjb2RlVGFibGVzLmxlbmd0aDtcbiAgICAgICAgdGhpcy5kZWNvZGVUYWJsZXMucHVzaChVTkFTU0lHTkVEX05PREUuc2xpY2UoMCkpO1xuICAgICAgICB2YXIgZmlyc3RCeXRlTm9kZSA9IHRoaXMuZGVjb2RlVGFibGVzWzBdO1xuICAgICAgICBmb3IgKHZhciBpMiA9IDEyOTsgaTIgPD0gMjU0OyBpMisrKSB7XG4gICAgICAgICAgdmFyIHNlY29uZEJ5dGVOb2RlID0gdGhpcy5kZWNvZGVUYWJsZXNbTk9ERV9TVEFSVCAtIGZpcnN0Qnl0ZU5vZGVbaTJdXTtcbiAgICAgICAgICBmb3IgKHZhciBqID0gNDg7IGogPD0gNTc7IGorKykge1xuICAgICAgICAgICAgaWYgKHNlY29uZEJ5dGVOb2RlW2pdID09PSBVTkFTU0lHTkVEKSB7XG4gICAgICAgICAgICAgIHNlY29uZEJ5dGVOb2RlW2pdID0gTk9ERV9TVEFSVCAtIGNvbW1vblRoaXJkQnl0ZU5vZGVJZHg7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHNlY29uZEJ5dGVOb2RlW2pdID4gTk9ERV9TVEFSVCkge1xuICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJnYjE4MDMwIGRlY29kZSB0YWJsZXMgY29uZmxpY3QgYXQgYnl0ZSAyXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdmFyIHRoaXJkQnl0ZU5vZGUgPSB0aGlzLmRlY29kZVRhYmxlc1tOT0RFX1NUQVJUIC0gc2Vjb25kQnl0ZU5vZGVbal1dO1xuICAgICAgICAgICAgZm9yICh2YXIgayA9IDEyOTsgayA8PSAyNTQ7IGsrKykge1xuICAgICAgICAgICAgICBpZiAodGhpcmRCeXRlTm9kZVtrXSA9PT0gVU5BU1NJR05FRCkge1xuICAgICAgICAgICAgICAgIHRoaXJkQnl0ZU5vZGVba10gPSBOT0RFX1NUQVJUIC0gY29tbW9uRm91cnRoQnl0ZU5vZGVJZHg7XG4gICAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcmRCeXRlTm9kZVtrXSA9PT0gTk9ERV9TVEFSVCAtIGNvbW1vbkZvdXJ0aEJ5dGVOb2RlSWR4KSB7XG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcmRCeXRlTm9kZVtrXSA+IE5PREVfU1RBUlQpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJnYjE4MDMwIGRlY29kZSB0YWJsZXMgY29uZmxpY3QgYXQgYnl0ZSAzXCIpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIHZhciBmb3VydGhCeXRlTm9kZSA9IHRoaXMuZGVjb2RlVGFibGVzW05PREVfU1RBUlQgLSB0aGlyZEJ5dGVOb2RlW2tdXTtcbiAgICAgICAgICAgICAgZm9yICh2YXIgbCA9IDQ4OyBsIDw9IDU3OyBsKyspIHtcbiAgICAgICAgICAgICAgICBpZiAoZm91cnRoQnl0ZU5vZGVbbF0gPT09IFVOQVNTSUdORUQpXG4gICAgICAgICAgICAgICAgICBmb3VydGhCeXRlTm9kZVtsXSA9IEdCMTgwMzBfQ09ERTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgdGhpcy5kZWZhdWx0Q2hhclVuaWNvZGUgPSBpY29udi5kZWZhdWx0Q2hhclVuaWNvZGU7XG4gICAgICB0aGlzLmVuY29kZVRhYmxlID0gW107XG4gICAgICB0aGlzLmVuY29kZVRhYmxlU2VxID0gW107XG4gICAgICB2YXIgc2tpcEVuY29kZUNoYXJzID0ge307XG4gICAgICBpZiAoY29kZWNPcHRpb25zLmVuY29kZVNraXBWYWxzKVxuICAgICAgICBmb3IgKHZhciBpMiA9IDA7IGkyIDwgY29kZWNPcHRpb25zLmVuY29kZVNraXBWYWxzLmxlbmd0aDsgaTIrKykge1xuICAgICAgICAgIHZhciB2YWwgPSBjb2RlY09wdGlvbnMuZW5jb2RlU2tpcFZhbHNbaTJdO1xuICAgICAgICAgIGlmICh0eXBlb2YgdmFsID09PSBcIm51bWJlclwiKVxuICAgICAgICAgICAgc2tpcEVuY29kZUNoYXJzW3ZhbF0gPSB0cnVlO1xuICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgIGZvciAodmFyIGogPSB2YWwuZnJvbTsgaiA8PSB2YWwudG87IGorKylcbiAgICAgICAgICAgICAgc2tpcEVuY29kZUNoYXJzW2pdID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgdGhpcy5fZmlsbEVuY29kZVRhYmxlKDAsIDAsIHNraXBFbmNvZGVDaGFycyk7XG4gICAgICBpZiAoY29kZWNPcHRpb25zLmVuY29kZUFkZCkge1xuICAgICAgICBmb3IgKHZhciB1Q2hhciBpbiBjb2RlY09wdGlvbnMuZW5jb2RlQWRkKVxuICAgICAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoY29kZWNPcHRpb25zLmVuY29kZUFkZCwgdUNoYXIpKVxuICAgICAgICAgICAgdGhpcy5fc2V0RW5jb2RlQ2hhcih1Q2hhci5jaGFyQ29kZUF0KDApLCBjb2RlY09wdGlvbnMuZW5jb2RlQWRkW3VDaGFyXSk7XG4gICAgICB9XG4gICAgICB0aGlzLmRlZkNoYXJTQiA9IHRoaXMuZW5jb2RlVGFibGVbMF1baWNvbnYuZGVmYXVsdENoYXJTaW5nbGVCeXRlLmNoYXJDb2RlQXQoMCldO1xuICAgICAgaWYgKHRoaXMuZGVmQ2hhclNCID09PSBVTkFTU0lHTkVEKSB0aGlzLmRlZkNoYXJTQiA9IHRoaXMuZW5jb2RlVGFibGVbMF1bXCI/XCJdO1xuICAgICAgaWYgKHRoaXMuZGVmQ2hhclNCID09PSBVTkFTU0lHTkVEKSB0aGlzLmRlZkNoYXJTQiA9IFwiP1wiLmNoYXJDb2RlQXQoMCk7XG4gICAgfVxuICAgIERCQ1NDb2RlYy5wcm90b3R5cGUuZW5jb2RlciA9IERCQ1NFbmNvZGVyO1xuICAgIERCQ1NDb2RlYy5wcm90b3R5cGUuZGVjb2RlciA9IERCQ1NEZWNvZGVyO1xuICAgIERCQ1NDb2RlYy5wcm90b3R5cGUuX2dldERlY29kZVRyaWVOb2RlID0gZnVuY3Rpb24oYWRkcikge1xuICAgICAgdmFyIGJ5dGVzID0gW107XG4gICAgICBmb3IgKDsgYWRkciA+IDA7IGFkZHIgPj4+PSA4KVxuICAgICAgICBieXRlcy5wdXNoKGFkZHIgJiAyNTUpO1xuICAgICAgaWYgKGJ5dGVzLmxlbmd0aCA9PSAwKVxuICAgICAgICBieXRlcy5wdXNoKDApO1xuICAgICAgdmFyIG5vZGUgPSB0aGlzLmRlY29kZVRhYmxlc1swXTtcbiAgICAgIGZvciAodmFyIGkyID0gYnl0ZXMubGVuZ3RoIC0gMTsgaTIgPiAwOyBpMi0tKSB7XG4gICAgICAgIHZhciB2YWwgPSBub2RlW2J5dGVzW2kyXV07XG4gICAgICAgIGlmICh2YWwgPT0gVU5BU1NJR05FRCkge1xuICAgICAgICAgIG5vZGVbYnl0ZXNbaTJdXSA9IE5PREVfU1RBUlQgLSB0aGlzLmRlY29kZVRhYmxlcy5sZW5ndGg7XG4gICAgICAgICAgdGhpcy5kZWNvZGVUYWJsZXMucHVzaChub2RlID0gVU5BU1NJR05FRF9OT0RFLnNsaWNlKDApKTtcbiAgICAgICAgfSBlbHNlIGlmICh2YWwgPD0gTk9ERV9TVEFSVCkge1xuICAgICAgICAgIG5vZGUgPSB0aGlzLmRlY29kZVRhYmxlc1tOT0RFX1NUQVJUIC0gdmFsXTtcbiAgICAgICAgfSBlbHNlXG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiT3ZlcndyaXRlIGJ5dGUgaW4gXCIgKyB0aGlzLmVuY29kaW5nTmFtZSArIFwiLCBhZGRyOiBcIiArIGFkZHIudG9TdHJpbmcoMTYpKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBub2RlO1xuICAgIH07XG4gICAgREJDU0NvZGVjLnByb3RvdHlwZS5fYWRkRGVjb2RlQ2h1bmsgPSBmdW5jdGlvbihjaHVuaykge1xuICAgICAgdmFyIGN1ckFkZHIgPSBwYXJzZUludChjaHVua1swXSwgMTYpO1xuICAgICAgdmFyIHdyaXRlVGFibGUgPSB0aGlzLl9nZXREZWNvZGVUcmllTm9kZShjdXJBZGRyKTtcbiAgICAgIGN1ckFkZHIgPSBjdXJBZGRyICYgMjU1O1xuICAgICAgZm9yICh2YXIgayA9IDE7IGsgPCBjaHVuay5sZW5ndGg7IGsrKykge1xuICAgICAgICB2YXIgcGFydCA9IGNodW5rW2tdO1xuICAgICAgICBpZiAodHlwZW9mIHBhcnQgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICBmb3IgKHZhciBsID0gMDsgbCA8IHBhcnQubGVuZ3RoOyApIHtcbiAgICAgICAgICAgIHZhciBjb2RlID0gcGFydC5jaGFyQ29kZUF0KGwrKyk7XG4gICAgICAgICAgICBpZiAoNTUyOTYgPD0gY29kZSAmJiBjb2RlIDwgNTYzMjApIHtcbiAgICAgICAgICAgICAgdmFyIGNvZGVUcmFpbCA9IHBhcnQuY2hhckNvZGVBdChsKyspO1xuICAgICAgICAgICAgICBpZiAoNTYzMjAgPD0gY29kZVRyYWlsICYmIGNvZGVUcmFpbCA8IDU3MzQ0KVxuICAgICAgICAgICAgICAgIHdyaXRlVGFibGVbY3VyQWRkcisrXSA9IDY1NTM2ICsgKGNvZGUgLSA1NTI5NikgKiAxMDI0ICsgKGNvZGVUcmFpbCAtIDU2MzIwKTtcbiAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkluY29ycmVjdCBzdXJyb2dhdGUgcGFpciBpbiBcIiArIHRoaXMuZW5jb2RpbmdOYW1lICsgXCIgYXQgY2h1bmsgXCIgKyBjaHVua1swXSk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKDQwODAgPCBjb2RlICYmIGNvZGUgPD0gNDA5NSkge1xuICAgICAgICAgICAgICB2YXIgbGVuID0gNDA5NSAtIGNvZGUgKyAyO1xuICAgICAgICAgICAgICB2YXIgc2VxID0gW107XG4gICAgICAgICAgICAgIGZvciAodmFyIG0gPSAwOyBtIDwgbGVuOyBtKyspXG4gICAgICAgICAgICAgICAgc2VxLnB1c2gocGFydC5jaGFyQ29kZUF0KGwrKykpO1xuICAgICAgICAgICAgICB3cml0ZVRhYmxlW2N1ckFkZHIrK10gPSBTRVFfU1RBUlQgLSB0aGlzLmRlY29kZVRhYmxlU2VxLmxlbmd0aDtcbiAgICAgICAgICAgICAgdGhpcy5kZWNvZGVUYWJsZVNlcS5wdXNoKHNlcSk7XG4gICAgICAgICAgICB9IGVsc2VcbiAgICAgICAgICAgICAgd3JpdGVUYWJsZVtjdXJBZGRyKytdID0gY29kZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIHBhcnQgPT09IFwibnVtYmVyXCIpIHtcbiAgICAgICAgICB2YXIgY2hhckNvZGUgPSB3cml0ZVRhYmxlW2N1ckFkZHIgLSAxXSArIDE7XG4gICAgICAgICAgZm9yICh2YXIgbCA9IDA7IGwgPCBwYXJ0OyBsKyspXG4gICAgICAgICAgICB3cml0ZVRhYmxlW2N1ckFkZHIrK10gPSBjaGFyQ29kZSsrO1xuICAgICAgICB9IGVsc2VcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJJbmNvcnJlY3QgdHlwZSAnXCIgKyB0eXBlb2YgcGFydCArIFwiJyBnaXZlbiBpbiBcIiArIHRoaXMuZW5jb2RpbmdOYW1lICsgXCIgYXQgY2h1bmsgXCIgKyBjaHVua1swXSk7XG4gICAgICB9XG4gICAgICBpZiAoY3VyQWRkciA+IDI1NSlcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiSW5jb3JyZWN0IGNodW5rIGluIFwiICsgdGhpcy5lbmNvZGluZ05hbWUgKyBcIiBhdCBhZGRyIFwiICsgY2h1bmtbMF0gKyBcIjogdG9vIGxvbmdcIiArIGN1ckFkZHIpO1xuICAgIH07XG4gICAgREJDU0NvZGVjLnByb3RvdHlwZS5fZ2V0RW5jb2RlQnVja2V0ID0gZnVuY3Rpb24odUNvZGUpIHtcbiAgICAgIHZhciBoaWdoID0gdUNvZGUgPj4gODtcbiAgICAgIGlmICh0aGlzLmVuY29kZVRhYmxlW2hpZ2hdID09PSB2b2lkIDApXG4gICAgICAgIHRoaXMuZW5jb2RlVGFibGVbaGlnaF0gPSBVTkFTU0lHTkVEX05PREUuc2xpY2UoMCk7XG4gICAgICByZXR1cm4gdGhpcy5lbmNvZGVUYWJsZVtoaWdoXTtcbiAgICB9O1xuICAgIERCQ1NDb2RlYy5wcm90b3R5cGUuX3NldEVuY29kZUNoYXIgPSBmdW5jdGlvbih1Q29kZSwgZGJjc0NvZGUpIHtcbiAgICAgIHZhciBidWNrZXQgPSB0aGlzLl9nZXRFbmNvZGVCdWNrZXQodUNvZGUpO1xuICAgICAgdmFyIGxvdyA9IHVDb2RlICYgMjU1O1xuICAgICAgaWYgKGJ1Y2tldFtsb3ddIDw9IFNFUV9TVEFSVClcbiAgICAgICAgdGhpcy5lbmNvZGVUYWJsZVNlcVtTRVFfU1RBUlQgLSBidWNrZXRbbG93XV1bREVGX0NIQVJdID0gZGJjc0NvZGU7XG4gICAgICBlbHNlIGlmIChidWNrZXRbbG93XSA9PSBVTkFTU0lHTkVEKVxuICAgICAgICBidWNrZXRbbG93XSA9IGRiY3NDb2RlO1xuICAgIH07XG4gICAgREJDU0NvZGVjLnByb3RvdHlwZS5fc2V0RW5jb2RlU2VxdWVuY2UgPSBmdW5jdGlvbihzZXEsIGRiY3NDb2RlKSB7XG4gICAgICB2YXIgdUNvZGUgPSBzZXFbMF07XG4gICAgICB2YXIgYnVja2V0ID0gdGhpcy5fZ2V0RW5jb2RlQnVja2V0KHVDb2RlKTtcbiAgICAgIHZhciBsb3cgPSB1Q29kZSAmIDI1NTtcbiAgICAgIHZhciBub2RlO1xuICAgICAgaWYgKGJ1Y2tldFtsb3ddIDw9IFNFUV9TVEFSVCkge1xuICAgICAgICBub2RlID0gdGhpcy5lbmNvZGVUYWJsZVNlcVtTRVFfU1RBUlQgLSBidWNrZXRbbG93XV07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBub2RlID0ge307XG4gICAgICAgIGlmIChidWNrZXRbbG93XSAhPT0gVU5BU1NJR05FRCkgbm9kZVtERUZfQ0hBUl0gPSBidWNrZXRbbG93XTtcbiAgICAgICAgYnVja2V0W2xvd10gPSBTRVFfU1RBUlQgLSB0aGlzLmVuY29kZVRhYmxlU2VxLmxlbmd0aDtcbiAgICAgICAgdGhpcy5lbmNvZGVUYWJsZVNlcS5wdXNoKG5vZGUpO1xuICAgICAgfVxuICAgICAgZm9yICh2YXIgaiA9IDE7IGogPCBzZXEubGVuZ3RoIC0gMTsgaisrKSB7XG4gICAgICAgIHZhciBvbGRWYWwgPSBub2RlW3VDb2RlXTtcbiAgICAgICAgaWYgKHR5cGVvZiBvbGRWYWwgPT09IFwib2JqZWN0XCIpXG4gICAgICAgICAgbm9kZSA9IG9sZFZhbDtcbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgbm9kZSA9IG5vZGVbdUNvZGVdID0ge307XG4gICAgICAgICAgaWYgKG9sZFZhbCAhPT0gdm9pZCAwKVxuICAgICAgICAgICAgbm9kZVtERUZfQ0hBUl0gPSBvbGRWYWw7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHVDb2RlID0gc2VxW3NlcS5sZW5ndGggLSAxXTtcbiAgICAgIG5vZGVbdUNvZGVdID0gZGJjc0NvZGU7XG4gICAgfTtcbiAgICBEQkNTQ29kZWMucHJvdG90eXBlLl9maWxsRW5jb2RlVGFibGUgPSBmdW5jdGlvbihub2RlSWR4LCBwcmVmaXgsIHNraXBFbmNvZGVDaGFycykge1xuICAgICAgdmFyIG5vZGUgPSB0aGlzLmRlY29kZVRhYmxlc1tub2RlSWR4XTtcbiAgICAgIHZhciBoYXNWYWx1ZXMgPSBmYWxzZTtcbiAgICAgIHZhciBzdWJOb2RlRW1wdHkgPSB7fTtcbiAgICAgIGZvciAodmFyIGkyID0gMDsgaTIgPCAyNTY7IGkyKyspIHtcbiAgICAgICAgdmFyIHVDb2RlID0gbm9kZVtpMl07XG4gICAgICAgIHZhciBtYkNvZGUgPSBwcmVmaXggKyBpMjtcbiAgICAgICAgaWYgKHNraXBFbmNvZGVDaGFyc1ttYkNvZGVdKVxuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICBpZiAodUNvZGUgPj0gMCkge1xuICAgICAgICAgIHRoaXMuX3NldEVuY29kZUNoYXIodUNvZGUsIG1iQ29kZSk7XG4gICAgICAgICAgaGFzVmFsdWVzID0gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIGlmICh1Q29kZSA8PSBOT0RFX1NUQVJUKSB7XG4gICAgICAgICAgdmFyIHN1Yk5vZGVJZHggPSBOT0RFX1NUQVJUIC0gdUNvZGU7XG4gICAgICAgICAgaWYgKCFzdWJOb2RlRW1wdHlbc3ViTm9kZUlkeF0pIHtcbiAgICAgICAgICAgIHZhciBuZXdQcmVmaXggPSBtYkNvZGUgPDwgOCA+Pj4gMDtcbiAgICAgICAgICAgIGlmICh0aGlzLl9maWxsRW5jb2RlVGFibGUoc3ViTm9kZUlkeCwgbmV3UHJlZml4LCBza2lwRW5jb2RlQ2hhcnMpKVxuICAgICAgICAgICAgICBoYXNWYWx1ZXMgPSB0cnVlO1xuICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICBzdWJOb2RlRW1wdHlbc3ViTm9kZUlkeF0gPSB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmICh1Q29kZSA8PSBTRVFfU1RBUlQpIHtcbiAgICAgICAgICB0aGlzLl9zZXRFbmNvZGVTZXF1ZW5jZSh0aGlzLmRlY29kZVRhYmxlU2VxW1NFUV9TVEFSVCAtIHVDb2RlXSwgbWJDb2RlKTtcbiAgICAgICAgICBoYXNWYWx1ZXMgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gaGFzVmFsdWVzO1xuICAgIH07XG4gICAgZnVuY3Rpb24gREJDU0VuY29kZXIob3B0aW9ucywgY29kZWMpIHtcbiAgICAgIHRoaXMubGVhZFN1cnJvZ2F0ZSA9IC0xO1xuICAgICAgdGhpcy5zZXFPYmogPSB2b2lkIDA7XG4gICAgICB0aGlzLmVuY29kZVRhYmxlID0gY29kZWMuZW5jb2RlVGFibGU7XG4gICAgICB0aGlzLmVuY29kZVRhYmxlU2VxID0gY29kZWMuZW5jb2RlVGFibGVTZXE7XG4gICAgICB0aGlzLmRlZmF1bHRDaGFyU2luZ2xlQnl0ZSA9IGNvZGVjLmRlZkNoYXJTQjtcbiAgICAgIHRoaXMuZ2IxODAzMCA9IGNvZGVjLmdiMTgwMzA7XG4gICAgfVxuICAgIERCQ1NFbmNvZGVyLnByb3RvdHlwZS53cml0ZSA9IGZ1bmN0aW9uKHN0cikge1xuICAgICAgdmFyIG5ld0J1ZiA9IEJ1ZmZlcjIuYWxsb2Moc3RyLmxlbmd0aCAqICh0aGlzLmdiMTgwMzAgPyA0IDogMykpLCBsZWFkU3Vycm9nYXRlID0gdGhpcy5sZWFkU3Vycm9nYXRlLCBzZXFPYmogPSB0aGlzLnNlcU9iaiwgbmV4dENoYXIgPSAtMSwgaTIgPSAwLCBqID0gMDtcbiAgICAgIHdoaWxlICh0cnVlKSB7XG4gICAgICAgIGlmIChuZXh0Q2hhciA9PT0gLTEpIHtcbiAgICAgICAgICBpZiAoaTIgPT0gc3RyLmxlbmd0aCkgYnJlYWs7XG4gICAgICAgICAgdmFyIHVDb2RlID0gc3RyLmNoYXJDb2RlQXQoaTIrKyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdmFyIHVDb2RlID0gbmV4dENoYXI7XG4gICAgICAgICAgbmV4dENoYXIgPSAtMTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoNTUyOTYgPD0gdUNvZGUgJiYgdUNvZGUgPCA1NzM0NCkge1xuICAgICAgICAgIGlmICh1Q29kZSA8IDU2MzIwKSB7XG4gICAgICAgICAgICBpZiAobGVhZFN1cnJvZ2F0ZSA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgbGVhZFN1cnJvZ2F0ZSA9IHVDb2RlO1xuICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIGxlYWRTdXJyb2dhdGUgPSB1Q29kZTtcbiAgICAgICAgICAgICAgdUNvZGUgPSBVTkFTU0lHTkVEO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAobGVhZFN1cnJvZ2F0ZSAhPT0gLTEpIHtcbiAgICAgICAgICAgICAgdUNvZGUgPSA2NTUzNiArIChsZWFkU3Vycm9nYXRlIC0gNTUyOTYpICogMTAyNCArICh1Q29kZSAtIDU2MzIwKTtcbiAgICAgICAgICAgICAgbGVhZFN1cnJvZ2F0ZSA9IC0xO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgdUNvZGUgPSBVTkFTU0lHTkVEO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmIChsZWFkU3Vycm9nYXRlICE9PSAtMSkge1xuICAgICAgICAgIG5leHRDaGFyID0gdUNvZGU7XG4gICAgICAgICAgdUNvZGUgPSBVTkFTU0lHTkVEO1xuICAgICAgICAgIGxlYWRTdXJyb2dhdGUgPSAtMTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgZGJjc0NvZGUgPSBVTkFTU0lHTkVEO1xuICAgICAgICBpZiAoc2VxT2JqICE9PSB2b2lkIDAgJiYgdUNvZGUgIT0gVU5BU1NJR05FRCkge1xuICAgICAgICAgIHZhciByZXNDb2RlID0gc2VxT2JqW3VDb2RlXTtcbiAgICAgICAgICBpZiAodHlwZW9mIHJlc0NvZGUgPT09IFwib2JqZWN0XCIpIHtcbiAgICAgICAgICAgIHNlcU9iaiA9IHJlc0NvZGU7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiByZXNDb2RlID09IFwibnVtYmVyXCIpIHtcbiAgICAgICAgICAgIGRiY3NDb2RlID0gcmVzQ29kZTtcbiAgICAgICAgICB9IGVsc2UgaWYgKHJlc0NvZGUgPT0gdm9pZCAwKSB7XG4gICAgICAgICAgICByZXNDb2RlID0gc2VxT2JqW0RFRl9DSEFSXTtcbiAgICAgICAgICAgIGlmIChyZXNDb2RlICE9PSB2b2lkIDApIHtcbiAgICAgICAgICAgICAgZGJjc0NvZGUgPSByZXNDb2RlO1xuICAgICAgICAgICAgICBuZXh0Q2hhciA9IHVDb2RlO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgc2VxT2JqID0gdm9pZCAwO1xuICAgICAgICB9IGVsc2UgaWYgKHVDb2RlID49IDApIHtcbiAgICAgICAgICB2YXIgc3VidGFibGUgPSB0aGlzLmVuY29kZVRhYmxlW3VDb2RlID4+IDhdO1xuICAgICAgICAgIGlmIChzdWJ0YWJsZSAhPT0gdm9pZCAwKVxuICAgICAgICAgICAgZGJjc0NvZGUgPSBzdWJ0YWJsZVt1Q29kZSAmIDI1NV07XG4gICAgICAgICAgaWYgKGRiY3NDb2RlIDw9IFNFUV9TVEFSVCkge1xuICAgICAgICAgICAgc2VxT2JqID0gdGhpcy5lbmNvZGVUYWJsZVNlcVtTRVFfU1RBUlQgLSBkYmNzQ29kZV07XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGRiY3NDb2RlID09IFVOQVNTSUdORUQgJiYgdGhpcy5nYjE4MDMwKSB7XG4gICAgICAgICAgICB2YXIgaWR4ID0gZmluZElkeCh0aGlzLmdiMTgwMzAudUNoYXJzLCB1Q29kZSk7XG4gICAgICAgICAgICBpZiAoaWR4ICE9IC0xKSB7XG4gICAgICAgICAgICAgIHZhciBkYmNzQ29kZSA9IHRoaXMuZ2IxODAzMC5nYkNoYXJzW2lkeF0gKyAodUNvZGUgLSB0aGlzLmdiMTgwMzAudUNoYXJzW2lkeF0pO1xuICAgICAgICAgICAgICBuZXdCdWZbaisrXSA9IDEyOSArIE1hdGguZmxvb3IoZGJjc0NvZGUgLyAxMjYwMCk7XG4gICAgICAgICAgICAgIGRiY3NDb2RlID0gZGJjc0NvZGUgJSAxMjYwMDtcbiAgICAgICAgICAgICAgbmV3QnVmW2orK10gPSA0OCArIE1hdGguZmxvb3IoZGJjc0NvZGUgLyAxMjYwKTtcbiAgICAgICAgICAgICAgZGJjc0NvZGUgPSBkYmNzQ29kZSAlIDEyNjA7XG4gICAgICAgICAgICAgIG5ld0J1ZltqKytdID0gMTI5ICsgTWF0aC5mbG9vcihkYmNzQ29kZSAvIDEwKTtcbiAgICAgICAgICAgICAgZGJjc0NvZGUgPSBkYmNzQ29kZSAlIDEwO1xuICAgICAgICAgICAgICBuZXdCdWZbaisrXSA9IDQ4ICsgZGJjc0NvZGU7XG4gICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoZGJjc0NvZGUgPT09IFVOQVNTSUdORUQpXG4gICAgICAgICAgZGJjc0NvZGUgPSB0aGlzLmRlZmF1bHRDaGFyU2luZ2xlQnl0ZTtcbiAgICAgICAgaWYgKGRiY3NDb2RlIDwgMjU2KSB7XG4gICAgICAgICAgbmV3QnVmW2orK10gPSBkYmNzQ29kZTtcbiAgICAgICAgfSBlbHNlIGlmIChkYmNzQ29kZSA8IDY1NTM2KSB7XG4gICAgICAgICAgbmV3QnVmW2orK10gPSBkYmNzQ29kZSA+PiA4O1xuICAgICAgICAgIG5ld0J1ZltqKytdID0gZGJjc0NvZGUgJiAyNTU7XG4gICAgICAgIH0gZWxzZSBpZiAoZGJjc0NvZGUgPCAxNjc3NzIxNikge1xuICAgICAgICAgIG5ld0J1ZltqKytdID0gZGJjc0NvZGUgPj4gMTY7XG4gICAgICAgICAgbmV3QnVmW2orK10gPSBkYmNzQ29kZSA+PiA4ICYgMjU1O1xuICAgICAgICAgIG5ld0J1ZltqKytdID0gZGJjc0NvZGUgJiAyNTU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgbmV3QnVmW2orK10gPSBkYmNzQ29kZSA+Pj4gMjQ7XG4gICAgICAgICAgbmV3QnVmW2orK10gPSBkYmNzQ29kZSA+Pj4gMTYgJiAyNTU7XG4gICAgICAgICAgbmV3QnVmW2orK10gPSBkYmNzQ29kZSA+Pj4gOCAmIDI1NTtcbiAgICAgICAgICBuZXdCdWZbaisrXSA9IGRiY3NDb2RlICYgMjU1O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICB0aGlzLnNlcU9iaiA9IHNlcU9iajtcbiAgICAgIHRoaXMubGVhZFN1cnJvZ2F0ZSA9IGxlYWRTdXJyb2dhdGU7XG4gICAgICByZXR1cm4gbmV3QnVmLnNsaWNlKDAsIGopO1xuICAgIH07XG4gICAgREJDU0VuY29kZXIucHJvdG90eXBlLmVuZCA9IGZ1bmN0aW9uKCkge1xuICAgICAgaWYgKHRoaXMubGVhZFN1cnJvZ2F0ZSA9PT0gLTEgJiYgdGhpcy5zZXFPYmogPT09IHZvaWQgMClcbiAgICAgICAgcmV0dXJuO1xuICAgICAgdmFyIG5ld0J1ZiA9IEJ1ZmZlcjIuYWxsb2MoMTApLCBqID0gMDtcbiAgICAgIGlmICh0aGlzLnNlcU9iaikge1xuICAgICAgICB2YXIgZGJjc0NvZGUgPSB0aGlzLnNlcU9ialtERUZfQ0hBUl07XG4gICAgICAgIGlmIChkYmNzQ29kZSAhPT0gdm9pZCAwKSB7XG4gICAgICAgICAgaWYgKGRiY3NDb2RlIDwgMjU2KSB7XG4gICAgICAgICAgICBuZXdCdWZbaisrXSA9IGRiY3NDb2RlO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBuZXdCdWZbaisrXSA9IGRiY3NDb2RlID4+IDg7XG4gICAgICAgICAgICBuZXdCdWZbaisrXSA9IGRiY3NDb2RlICYgMjU1O1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnNlcU9iaiA9IHZvaWQgMDtcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLmxlYWRTdXJyb2dhdGUgIT09IC0xKSB7XG4gICAgICAgIG5ld0J1ZltqKytdID0gdGhpcy5kZWZhdWx0Q2hhclNpbmdsZUJ5dGU7XG4gICAgICAgIHRoaXMubGVhZFN1cnJvZ2F0ZSA9IC0xO1xuICAgICAgfVxuICAgICAgcmV0dXJuIG5ld0J1Zi5zbGljZSgwLCBqKTtcbiAgICB9O1xuICAgIERCQ1NFbmNvZGVyLnByb3RvdHlwZS5maW5kSWR4ID0gZmluZElkeDtcbiAgICBmdW5jdGlvbiBEQkNTRGVjb2RlcihvcHRpb25zLCBjb2RlYykge1xuICAgICAgdGhpcy5ub2RlSWR4ID0gMDtcbiAgICAgIHRoaXMucHJldkJ5dGVzID0gW107XG4gICAgICB0aGlzLmRlY29kZVRhYmxlcyA9IGNvZGVjLmRlY29kZVRhYmxlcztcbiAgICAgIHRoaXMuZGVjb2RlVGFibGVTZXEgPSBjb2RlYy5kZWNvZGVUYWJsZVNlcTtcbiAgICAgIHRoaXMuZGVmYXVsdENoYXJVbmljb2RlID0gY29kZWMuZGVmYXVsdENoYXJVbmljb2RlO1xuICAgICAgdGhpcy5nYjE4MDMwID0gY29kZWMuZ2IxODAzMDtcbiAgICB9XG4gICAgREJDU0RlY29kZXIucHJvdG90eXBlLndyaXRlID0gZnVuY3Rpb24oYnVmKSB7XG4gICAgICB2YXIgbmV3QnVmID0gQnVmZmVyMi5hbGxvYyhidWYubGVuZ3RoICogMiksIG5vZGVJZHggPSB0aGlzLm5vZGVJZHgsIHByZXZCeXRlcyA9IHRoaXMucHJldkJ5dGVzLCBwcmV2T2Zmc2V0ID0gdGhpcy5wcmV2Qnl0ZXMubGVuZ3RoLCBzZXFTdGFydCA9IC10aGlzLnByZXZCeXRlcy5sZW5ndGgsIHVDb2RlO1xuICAgICAgZm9yICh2YXIgaTIgPSAwLCBqID0gMDsgaTIgPCBidWYubGVuZ3RoOyBpMisrKSB7XG4gICAgICAgIHZhciBjdXJCeXRlID0gaTIgPj0gMCA/IGJ1ZltpMl0gOiBwcmV2Qnl0ZXNbaTIgKyBwcmV2T2Zmc2V0XTtcbiAgICAgICAgdmFyIHVDb2RlID0gdGhpcy5kZWNvZGVUYWJsZXNbbm9kZUlkeF1bY3VyQnl0ZV07XG4gICAgICAgIGlmICh1Q29kZSA+PSAwKSB7XG4gICAgICAgIH0gZWxzZSBpZiAodUNvZGUgPT09IFVOQVNTSUdORUQpIHtcbiAgICAgICAgICB1Q29kZSA9IHRoaXMuZGVmYXVsdENoYXJVbmljb2RlLmNoYXJDb2RlQXQoMCk7XG4gICAgICAgICAgaTIgPSBzZXFTdGFydDtcbiAgICAgICAgfSBlbHNlIGlmICh1Q29kZSA9PT0gR0IxODAzMF9DT0RFKSB7XG4gICAgICAgICAgaWYgKGkyID49IDMpIHtcbiAgICAgICAgICAgIHZhciBwdHIgPSAoYnVmW2kyIC0gM10gLSAxMjkpICogMTI2MDAgKyAoYnVmW2kyIC0gMl0gLSA0OCkgKiAxMjYwICsgKGJ1ZltpMiAtIDFdIC0gMTI5KSAqIDEwICsgKGN1ckJ5dGUgLSA0OCk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHZhciBwdHIgPSAocHJldkJ5dGVzW2kyIC0gMyArIHByZXZPZmZzZXRdIC0gMTI5KSAqIDEyNjAwICsgKChpMiAtIDIgPj0gMCA/IGJ1ZltpMiAtIDJdIDogcHJldkJ5dGVzW2kyIC0gMiArIHByZXZPZmZzZXRdKSAtIDQ4KSAqIDEyNjAgKyAoKGkyIC0gMSA+PSAwID8gYnVmW2kyIC0gMV0gOiBwcmV2Qnl0ZXNbaTIgLSAxICsgcHJldk9mZnNldF0pIC0gMTI5KSAqIDEwICsgKGN1ckJ5dGUgLSA0OCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHZhciBpZHggPSBmaW5kSWR4KHRoaXMuZ2IxODAzMC5nYkNoYXJzLCBwdHIpO1xuICAgICAgICAgIHVDb2RlID0gdGhpcy5nYjE4MDMwLnVDaGFyc1tpZHhdICsgcHRyIC0gdGhpcy5nYjE4MDMwLmdiQ2hhcnNbaWR4XTtcbiAgICAgICAgfSBlbHNlIGlmICh1Q29kZSA8PSBOT0RFX1NUQVJUKSB7XG4gICAgICAgICAgbm9kZUlkeCA9IE5PREVfU1RBUlQgLSB1Q29kZTtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfSBlbHNlIGlmICh1Q29kZSA8PSBTRVFfU1RBUlQpIHtcbiAgICAgICAgICB2YXIgc2VxID0gdGhpcy5kZWNvZGVUYWJsZVNlcVtTRVFfU1RBUlQgLSB1Q29kZV07XG4gICAgICAgICAgZm9yICh2YXIgayA9IDA7IGsgPCBzZXEubGVuZ3RoIC0gMTsgaysrKSB7XG4gICAgICAgICAgICB1Q29kZSA9IHNlcVtrXTtcbiAgICAgICAgICAgIG5ld0J1ZltqKytdID0gdUNvZGUgJiAyNTU7XG4gICAgICAgICAgICBuZXdCdWZbaisrXSA9IHVDb2RlID4+IDg7XG4gICAgICAgICAgfVxuICAgICAgICAgIHVDb2RlID0gc2VxW3NlcS5sZW5ndGggLSAxXTtcbiAgICAgICAgfSBlbHNlXG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiaWNvbnYtbGl0ZSBpbnRlcm5hbCBlcnJvcjogaW52YWxpZCBkZWNvZGluZyB0YWJsZSB2YWx1ZSBcIiArIHVDb2RlICsgXCIgYXQgXCIgKyBub2RlSWR4ICsgXCIvXCIgKyBjdXJCeXRlKTtcbiAgICAgICAgaWYgKHVDb2RlID49IDY1NTM2KSB7XG4gICAgICAgICAgdUNvZGUgLT0gNjU1MzY7XG4gICAgICAgICAgdmFyIHVDb2RlTGVhZCA9IDU1Mjk2IHwgdUNvZGUgPj4gMTA7XG4gICAgICAgICAgbmV3QnVmW2orK10gPSB1Q29kZUxlYWQgJiAyNTU7XG4gICAgICAgICAgbmV3QnVmW2orK10gPSB1Q29kZUxlYWQgPj4gODtcbiAgICAgICAgICB1Q29kZSA9IDU2MzIwIHwgdUNvZGUgJiAxMDIzO1xuICAgICAgICB9XG4gICAgICAgIG5ld0J1ZltqKytdID0gdUNvZGUgJiAyNTU7XG4gICAgICAgIG5ld0J1ZltqKytdID0gdUNvZGUgPj4gODtcbiAgICAgICAgbm9kZUlkeCA9IDA7XG4gICAgICAgIHNlcVN0YXJ0ID0gaTIgKyAxO1xuICAgICAgfVxuICAgICAgdGhpcy5ub2RlSWR4ID0gbm9kZUlkeDtcbiAgICAgIHRoaXMucHJldkJ5dGVzID0gc2VxU3RhcnQgPj0gMCA/IEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGJ1Ziwgc2VxU3RhcnQpIDogcHJldkJ5dGVzLnNsaWNlKHNlcVN0YXJ0ICsgcHJldk9mZnNldCkuY29uY2F0KEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGJ1ZikpO1xuICAgICAgcmV0dXJuIG5ld0J1Zi5zbGljZSgwLCBqKS50b1N0cmluZyhcInVjczJcIik7XG4gICAgfTtcbiAgICBEQkNTRGVjb2Rlci5wcm90b3R5cGUuZW5kID0gZnVuY3Rpb24oKSB7XG4gICAgICB2YXIgcmV0ID0gXCJcIjtcbiAgICAgIHdoaWxlICh0aGlzLnByZXZCeXRlcy5sZW5ndGggPiAwKSB7XG4gICAgICAgIHJldCArPSB0aGlzLmRlZmF1bHRDaGFyVW5pY29kZTtcbiAgICAgICAgdmFyIGJ5dGVzQXJyID0gdGhpcy5wcmV2Qnl0ZXMuc2xpY2UoMSk7XG4gICAgICAgIHRoaXMucHJldkJ5dGVzID0gW107XG4gICAgICAgIHRoaXMubm9kZUlkeCA9IDA7XG4gICAgICAgIGlmIChieXRlc0Fyci5sZW5ndGggPiAwKVxuICAgICAgICAgIHJldCArPSB0aGlzLndyaXRlKGJ5dGVzQXJyKTtcbiAgICAgIH1cbiAgICAgIHRoaXMucHJldkJ5dGVzID0gW107XG4gICAgICB0aGlzLm5vZGVJZHggPSAwO1xuICAgICAgcmV0dXJuIHJldDtcbiAgICB9O1xuICAgIGZ1bmN0aW9uIGZpbmRJZHgodGFibGUsIHZhbCkge1xuICAgICAgaWYgKHRhYmxlWzBdID4gdmFsKVxuICAgICAgICByZXR1cm4gLTE7XG4gICAgICB2YXIgbCA9IDAsIHIgPSB0YWJsZS5sZW5ndGg7XG4gICAgICB3aGlsZSAobCA8IHIgLSAxKSB7XG4gICAgICAgIHZhciBtaWQgPSBsICsgKHIgLSBsICsgMSA+PiAxKTtcbiAgICAgICAgaWYgKHRhYmxlW21pZF0gPD0gdmFsKVxuICAgICAgICAgIGwgPSBtaWQ7XG4gICAgICAgIGVsc2VcbiAgICAgICAgICByID0gbWlkO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGw7XG4gICAgfVxuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL3Jhdy1ib2R5L25vZGVfbW9kdWxlcy9pY29udi1saXRlL2VuY29kaW5ncy90YWJsZXMvc2hpZnRqaXMuanNvblxudmFyIHJlcXVpcmVfc2hpZnRqaXMgPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvcmF3LWJvZHkvbm9kZV9tb2R1bGVzL2ljb252LWxpdGUvZW5jb2RpbmdzL3RhYmxlcy9zaGlmdGppcy5qc29uXCIoZXhwb3J0czIsIG1vZHVsZTIpIHtcbiAgICBtb2R1bGUyLmV4cG9ydHMgPSBbXG4gICAgICBbXCIwXCIsIFwiXFwwXCIsIDEyOF0sXG4gICAgICBbXCJhMVwiLCBcIlxcdUZGNjFcIiwgNjJdLFxuICAgICAgW1wiODE0MFwiLCBcIlxcdTMwMDBcXHUzMDAxXFx1MzAwMlxcdUZGMENcXHVGRjBFXFx1MzBGQlxcdUZGMUFcXHVGRjFCXFx1RkYxRlxcdUZGMDFcXHUzMDlCXFx1MzA5Q1xceEI0XFx1RkY0MFxceEE4XFx1RkYzRVxcdUZGRTNcXHVGRjNGXFx1MzBGRFxcdTMwRkVcXHUzMDlEXFx1MzA5RVxcdTMwMDNcXHU0RUREXFx1MzAwNVxcdTMwMDZcXHUzMDA3XFx1MzBGQ1xcdTIwMTVcXHUyMDEwXFx1RkYwRlxcdUZGM0NcXHVGRjVFXFx1MjIyNVxcdUZGNUNcXHUyMDI2XFx1MjAyNVxcdTIwMThcXHUyMDE5XFx1MjAxQ1xcdTIwMURcXHVGRjA4XFx1RkYwOVxcdTMwMTRcXHUzMDE1XFx1RkYzQlxcdUZGM0RcXHVGRjVCXFx1RkY1RFxcdTMwMDhcIiwgOSwgXCJcXHVGRjBCXFx1RkYwRFxceEIxXFx4RDdcIl0sXG4gICAgICBbXCI4MTgwXCIsIFwiXFx4RjdcXHVGRjFEXFx1MjI2MFxcdUZGMUNcXHVGRjFFXFx1MjI2NlxcdTIyNjdcXHUyMjFFXFx1MjIzNFxcdTI2NDJcXHUyNjQwXFx4QjBcXHUyMDMyXFx1MjAzM1xcdTIxMDNcXHVGRkU1XFx1RkYwNFxcdUZGRTBcXHVGRkUxXFx1RkYwNVxcdUZGMDNcXHVGRjA2XFx1RkYwQVxcdUZGMjBcXHhBN1xcdTI2MDZcXHUyNjA1XFx1MjVDQlxcdTI1Q0ZcXHUyNUNFXFx1MjVDN1xcdTI1QzZcXHUyNUExXFx1MjVBMFxcdTI1QjNcXHUyNUIyXFx1MjVCRFxcdTI1QkNcXHUyMDNCXFx1MzAxMlxcdTIxOTJcXHUyMTkwXFx1MjE5MVxcdTIxOTNcXHUzMDEzXCJdLFxuICAgICAgW1wiODFiOFwiLCBcIlxcdTIyMDhcXHUyMjBCXFx1MjI4NlxcdTIyODdcXHUyMjgyXFx1MjI4M1xcdTIyMkFcXHUyMjI5XCJdLFxuICAgICAgW1wiODFjOFwiLCBcIlxcdTIyMjdcXHUyMjI4XFx1RkZFMlxcdTIxRDJcXHUyMUQ0XFx1MjIwMFxcdTIyMDNcIl0sXG4gICAgICBbXCI4MWRhXCIsIFwiXFx1MjIyMFxcdTIyQTVcXHUyMzEyXFx1MjIwMlxcdTIyMDdcXHUyMjYxXFx1MjI1MlxcdTIyNkFcXHUyMjZCXFx1MjIxQVxcdTIyM0RcXHUyMjFEXFx1MjIzNVxcdTIyMkJcXHUyMjJDXCJdLFxuICAgICAgW1wiODFmMFwiLCBcIlxcdTIxMkJcXHUyMDMwXFx1MjY2RlxcdTI2NkRcXHUyNjZBXFx1MjAyMFxcdTIwMjFcXHhCNlwiXSxcbiAgICAgIFtcIjgxZmNcIiwgXCJcXHUyNUVGXCJdLFxuICAgICAgW1wiODI0ZlwiLCBcIlxcdUZGMTBcIiwgOV0sXG4gICAgICBbXCI4MjYwXCIsIFwiXFx1RkYyMVwiLCAyNV0sXG4gICAgICBbXCI4MjgxXCIsIFwiXFx1RkY0MVwiLCAyNV0sXG4gICAgICBbXCI4MjlmXCIsIFwiXFx1MzA0MVwiLCA4Ml0sXG4gICAgICBbXCI4MzQwXCIsIFwiXFx1MzBBMVwiLCA2Ml0sXG4gICAgICBbXCI4MzgwXCIsIFwiXFx1MzBFMFwiLCAyMl0sXG4gICAgICBbXCI4MzlmXCIsIFwiXFx1MDM5MVwiLCAxNiwgXCJcXHUwM0EzXCIsIDZdLFxuICAgICAgW1wiODNiZlwiLCBcIlxcdTAzQjFcIiwgMTYsIFwiXFx1MDNDM1wiLCA2XSxcbiAgICAgIFtcIjg0NDBcIiwgXCJcXHUwNDEwXCIsIDUsIFwiXFx1MDQwMVxcdTA0MTZcIiwgMjVdLFxuICAgICAgW1wiODQ3MFwiLCBcIlxcdTA0MzBcIiwgNSwgXCJcXHUwNDUxXFx1MDQzNlwiLCA3XSxcbiAgICAgIFtcIjg0ODBcIiwgXCJcXHUwNDNFXCIsIDE3XSxcbiAgICAgIFtcIjg0OWZcIiwgXCJcXHUyNTAwXFx1MjUwMlxcdTI1MENcXHUyNTEwXFx1MjUxOFxcdTI1MTRcXHUyNTFDXFx1MjUyQ1xcdTI1MjRcXHUyNTM0XFx1MjUzQ1xcdTI1MDFcXHUyNTAzXFx1MjUwRlxcdTI1MTNcXHUyNTFCXFx1MjUxN1xcdTI1MjNcXHUyNTMzXFx1MjUyQlxcdTI1M0JcXHUyNTRCXFx1MjUyMFxcdTI1MkZcXHUyNTI4XFx1MjUzN1xcdTI1M0ZcXHUyNTFEXFx1MjUzMFxcdTI1MjVcXHUyNTM4XFx1MjU0MlwiXSxcbiAgICAgIFtcIjg3NDBcIiwgXCJcXHUyNDYwXCIsIDE5LCBcIlxcdTIxNjBcIiwgOV0sXG4gICAgICBbXCI4NzVmXCIsIFwiXFx1MzM0OVxcdTMzMTRcXHUzMzIyXFx1MzM0RFxcdTMzMThcXHUzMzI3XFx1MzMwM1xcdTMzMzZcXHUzMzUxXFx1MzM1N1xcdTMzMERcXHUzMzI2XFx1MzMyM1xcdTMzMkJcXHUzMzRBXFx1MzMzQlxcdTMzOUNcXHUzMzlEXFx1MzM5RVxcdTMzOEVcXHUzMzhGXFx1MzNDNFxcdTMzQTFcIl0sXG4gICAgICBbXCI4NzdlXCIsIFwiXFx1MzM3QlwiXSxcbiAgICAgIFtcIjg3ODBcIiwgXCJcXHUzMDFEXFx1MzAxRlxcdTIxMTZcXHUzM0NEXFx1MjEyMVxcdTMyQTRcIiwgNCwgXCJcXHUzMjMxXFx1MzIzMlxcdTMyMzlcXHUzMzdFXFx1MzM3RFxcdTMzN0NcXHUyMjUyXFx1MjI2MVxcdTIyMkJcXHUyMjJFXFx1MjIxMVxcdTIyMUFcXHUyMkE1XFx1MjIyMFxcdTIyMUZcXHUyMkJGXFx1MjIzNVxcdTIyMjlcXHUyMjJBXCJdLFxuICAgICAgW1wiODg5ZlwiLCBcIlxcdTRFOUNcXHU1NTE2XFx1NUEwM1xcdTk2M0ZcXHU1NEMwXFx1NjExQlxcdTYzMjhcXHU1OUY2XFx1OTAyMlxcdTg0NzVcXHU4MzFDXFx1N0E1MFxcdTYwQUFcXHU2M0UxXFx1NkUyNVxcdTY1RURcXHU4NDY2XFx1ODJBNlxcdTlCRjVcXHU2ODkzXFx1NTcyN1xcdTY1QTFcXHU2MjcxXFx1NUI5QlxcdTU5RDBcXHU4NjdCXFx1OThGNFxcdTdENjJcXHU3REJFXFx1OUI4RVxcdTYyMTZcXHU3QzlGXFx1ODhCN1xcdTVCODlcXHU1RUI1XFx1NjMwOVxcdTY2OTdcXHU2ODQ4XFx1OTVDN1xcdTk3OERcXHU2NzRGXFx1NEVFNVxcdTRGMEFcXHU0RjREXFx1NEY5RFxcdTUwNDlcXHU1NkYyXFx1NTkzN1xcdTU5RDRcXHU1QTAxXFx1NUMwOVxcdTYwREZcXHU2MTBGXFx1NjE3MFxcdTY2MTNcXHU2OTA1XFx1NzBCQVxcdTc1NEZcXHU3NTcwXFx1NzlGQlxcdTdEQURcXHU3REVGXFx1ODBDM1xcdTg0MEVcXHU4ODYzXFx1OEIwMlxcdTkwNTVcXHU5MDdBXFx1NTMzQlxcdTRFOTVcXHU0RUE1XFx1NTdERlxcdTgwQjJcXHU5MEMxXFx1NzhFRlxcdTRFMDBcXHU1OEYxXFx1NkVBMlxcdTkwMzhcXHU3QTMyXFx1ODMyOFxcdTgyOEJcXHU5QzJGXFx1NTE0MVxcdTUzNzBcXHU1NEJEXFx1NTRFMVxcdTU2RTBcXHU1OUZCXFx1NUYxNVxcdTk4RjJcXHU2REVCXFx1ODBFNFxcdTg1MkRcIl0sXG4gICAgICBbXCI4OTQwXCIsIFwiXFx1OTY2MlxcdTk2NzBcXHU5NkEwXFx1OTdGQlxcdTU0MEJcXHU1M0YzXFx1NUI4N1xcdTcwQ0ZcXHU3RkJEXFx1OEZDMlxcdTk2RThcXHU1MzZGXFx1OUQ1Q1xcdTdBQkFcXHU0RTExXFx1Nzg5M1xcdTgxRkNcXHU2RTI2XFx1NTYxOFxcdTU1MDRcXHU2QjFEXFx1ODUxQVxcdTlDM0JcXHU1OUU1XFx1NTNBOVxcdTZENjZcXHU3NERDXFx1OTU4RlxcdTU2NDJcXHU0RTkxXFx1OTA0QlxcdTk2RjJcXHU4MzRGXFx1OTkwQ1xcdTUzRTFcXHU1NUI2XFx1NUIzMFxcdTVGNzFcXHU2NjIwXFx1NjZGM1xcdTY4MDRcXHU2QzM4XFx1NkNGM1xcdTZEMjlcXHU3NDVCXFx1NzZDOFxcdTdBNEVcXHU5ODM0XFx1ODJGMVxcdTg4NUJcXHU4QTYwXFx1OTJFRFxcdTZEQjJcXHU3NUFCXFx1NzZDQVxcdTk5QzVcXHU2MEE2XFx1OEIwMVxcdThEOEFcXHU5NUIyXFx1Njk4RVxcdTUzQURcXHU1MTg2XCJdLFxuICAgICAgW1wiODk4MFwiLCBcIlxcdTU3MTJcXHU1ODMwXFx1NTk0NFxcdTVCQjRcXHU1RUY2XFx1NjAyOFxcdTYzQTlcXHU2M0Y0XFx1NkNCRlxcdTZGMTRcXHU3MDhFXFx1NzExNFxcdTcxNTlcXHU3MUQ1XFx1NzMzRlxcdTdFMDFcXHU4Mjc2XFx1ODJEMVxcdTg1OTdcXHU5MDYwXFx1OTI1QlxcdTlEMUJcXHU1ODY5XFx1NjVCQ1xcdTZDNUFcXHU3NTI1XFx1NTFGOVxcdTU5MkVcXHU1OTY1XFx1NUY4MFxcdTVGRENcXHU2MkJDXFx1NjVGQVxcdTZBMkFcXHU2QjI3XFx1NkJCNFxcdTczOEJcXHU3RkMxXFx1ODk1NlxcdTlEMkNcXHU5RDBFXFx1OUVDNFxcdTVDQTFcXHU2Qzk2XFx1ODM3QlxcdTUxMDRcXHU1QzRCXFx1NjFCNlxcdTgxQzZcXHU2ODc2XFx1NzI2MVxcdTRFNTlcXHU0RkZBXFx1NTM3OFxcdTYwNjlcXHU2RTI5XFx1N0E0RlxcdTk3RjNcXHU0RTBCXFx1NTMxNlxcdTRFRUVcXHU0RjU1XFx1NEYzRFxcdTRGQTFcXHU0RjczXFx1NTJBMFxcdTUzRUZcXHU1NjA5XFx1NTkwRlxcdTVBQzFcXHU1QkI2XFx1NUJFMVxcdTc5RDFcXHU2Njg3XFx1Njc5Q1xcdTY3QjZcXHU2QjRDXFx1NkNCM1xcdTcwNkJcXHU3M0MyXFx1Nzk4RFxcdTc5QkVcXHU3QTNDXFx1N0I4N1xcdTgyQjFcXHU4MkRCXFx1ODMwNFxcdTgzNzdcXHU4M0VGXFx1ODNEM1xcdTg3NjZcXHU4QUIyXFx1NTYyOVxcdThDQThcXHU4RkU2XFx1OTA0RVxcdTk3MUVcXHU4NjhBXFx1NEZDNFxcdTVDRThcXHU2MjExXFx1NzI1OVxcdTc1M0JcXHU4MUU1XFx1ODJCRFxcdTg2RkVcXHU4Q0MwXFx1OTZDNVxcdTk5MTNcXHU5OUQ1XFx1NEVDQlxcdTRGMUFcXHU4OUUzXFx1NTZERVxcdTU4NEFcXHU1OENBXFx1NUVGQlxcdTVGRUJcXHU2MDJBXFx1NjA5NFxcdTYwNjJcXHU2MUQwXFx1NjIxMlxcdTYyRDBcXHU2NTM5XCJdLFxuICAgICAgW1wiOGE0MFwiLCBcIlxcdTlCNDFcXHU2NjY2XFx1NjhCMFxcdTZENzdcXHU3MDcwXFx1NzU0Q1xcdTc2ODZcXHU3RDc1XFx1ODJBNVxcdTg3RjlcXHU5NThCXFx1OTY4RVxcdThDOURcXHU1MUYxXFx1NTJCRVxcdTU5MTZcXHU1NEIzXFx1NUJCM1xcdTVEMTZcXHU2MTY4XFx1Njk4MlxcdTZEQUZcXHU3ODhEXFx1ODRDQlxcdTg4NTdcXHU4QTcyXFx1OTNBN1xcdTlBQjhcXHU2RDZDXFx1OTlBOFxcdTg2RDlcXHU1N0EzXFx1NjdGRlxcdTg2Q0VcXHU5MjBFXFx1NTI4M1xcdTU2ODdcXHU1NDA0XFx1NUVEM1xcdTYyRTFcXHU2NEI5XFx1NjgzQ1xcdTY4MzhcXHU2QkJCXFx1NzM3MlxcdTc4QkFcXHU3QTZCXFx1ODk5QVxcdTg5RDJcXHU4RDZCXFx1OEYwM1xcdTkwRURcXHU5NUEzXFx1OTY5NFxcdTk3NjlcXHU1QjY2XFx1NUNCM1xcdTY5N0RcXHU5ODREXFx1OTg0RVxcdTYzOUJcXHU3QjIwXFx1NkEyQlwiXSxcbiAgICAgIFtcIjhhODBcIiwgXCJcXHU2QTdGXFx1NjhCNlxcdTlDMERcXHU2RjVGXFx1NTI3MlxcdTU1OURcXHU2MDcwXFx1NjJFQ1xcdTZEM0JcXHU2RTA3XFx1NkVEMVxcdTg0NUJcXHU4OTEwXFx1OEY0NFxcdTRFMTRcXHU5QzM5XFx1NTNGNlxcdTY5MUJcXHU2QTNBXFx1OTc4NFxcdTY4MkFcXHU1MTVDXFx1N0FDM1xcdTg0QjJcXHU5MURDXFx1OTM4Q1xcdTU2NUJcXHU5RDI4XFx1NjgyMlxcdTgzMDVcXHU4NDMxXFx1N0NBNVxcdTUyMDhcXHU4MkM1XFx1NzRFNlxcdTRFN0VcXHU0RjgzXFx1NTFBMFxcdTVCRDJcXHU1MjBBXFx1NTJEOFxcdTUyRTdcXHU1REZCXFx1NTU5QVxcdTU4MkFcXHU1OUU2XFx1NUI4Q1xcdTVCOThcXHU1QkRCXFx1NUU3MlxcdTVFNzlcXHU2MEEzXFx1NjExRlxcdTYxNjNcXHU2MUJFXFx1NjNEQlxcdTY1NjJcXHU2N0QxXFx1Njg1M1xcdTY4RkFcXHU2QjNFXFx1NkI1M1xcdTZDNTdcXHU2RjIyXFx1NkY5N1xcdTZGNDVcXHU3NEIwXFx1NzUxOFxcdTc2RTNcXHU3NzBCXFx1N0FGRlxcdTdCQTFcXHU3QzIxXFx1N0RFOVxcdTdGMzZcXHU3RkYwXFx1ODA5RFxcdTgyNjZcXHU4MzlFXFx1ODlCM1xcdThBQ0NcXHU4Q0FCXFx1OTA4NFxcdTk0NTFcXHU5NTkzXFx1OTU5MVxcdTk1QTJcXHU5NjY1XFx1OTdEM1xcdTk5MjhcXHU4MjE4XFx1NEUzOFxcdTU0MkJcXHU1Q0I4XFx1NURDQ1xcdTczQTlcXHU3NjRDXFx1NzczQ1xcdTVDQTlcXHU3RkVCXFx1OEQwQlxcdTk2QzFcXHU5ODExXFx1OTg1NFxcdTk4NThcXHU0RjAxXFx1NEYwRVxcdTUzNzFcXHU1NTlDXFx1NTY2OFxcdTU3RkFcXHU1OTQ3XFx1NUIwOVxcdTVCQzRcXHU1QzkwXFx1NUUwQ1xcdTVFN0VcXHU1RkNDXFx1NjNFRVxcdTY3M0FcXHU2NUQ3XFx1NjVFMlxcdTY3MUZcXHU2OENCXFx1NjhDNFwiXSxcbiAgICAgIFtcIjhiNDBcIiwgXCJcXHU2QTVGXFx1NUUzMFxcdTZCQzVcXHU2QzE3XFx1NkM3RFxcdTc1N0ZcXHU3OTQ4XFx1NUI2M1xcdTdBMDBcXHU3RDAwXFx1NUZCRFxcdTg5OEZcXHU4QTE4XFx1OENCNFxcdThENzdcXHU4RUNDXFx1OEYxRFxcdTk4RTJcXHU5QTBFXFx1OUIzQ1xcdTRFODBcXHU1MDdEXFx1NTEwMFxcdTU5OTNcXHU1QjlDXFx1NjIyRlxcdTYyODBcXHU2NEVDXFx1NkIzQVxcdTcyQTBcXHU3NTkxXFx1Nzk0N1xcdTdGQTlcXHU4N0ZCXFx1OEFCQ1xcdThCNzBcXHU2M0FDXFx1ODNDQVxcdTk3QTBcXHU1NDA5XFx1NTQwM1xcdTU1QUJcXHU2ODU0XFx1NkE1OFxcdThBNzBcXHU3ODI3XFx1Njc3NVxcdTlFQ0RcXHU1Mzc0XFx1NUJBMlxcdTgxMUFcXHU4NjUwXFx1OTAwNlxcdTRFMThcXHU0RTQ1XFx1NEVDN1xcdTRGMTFcXHU1M0NBXFx1NTQzOFxcdTVCQUVcXHU1RjEzXFx1NjAyNVxcdTY1NTFcIl0sXG4gICAgICBbXCI4YjgwXCIsIFwiXFx1NjczRFxcdTZDNDJcXHU2QzcyXFx1NkNFM1xcdTcwNzhcXHU3NDAzXFx1N0E3NlxcdTdBQUVcXHU3QjA4XFx1N0QxQVxcdTdDRkVcXHU3RDY2XFx1NjVFN1xcdTcyNUJcXHU1M0JCXFx1NUM0NVxcdTVERThcXHU2MkQyXFx1NjJFMFxcdTYzMTlcXHU2RTIwXFx1ODY1QVxcdThBMzFcXHU4REREXFx1OTJGOFxcdTZGMDFcXHU3OUE2XFx1OUI1QVxcdTRFQThcXHU0RUFCXFx1NEVBQ1xcdTRGOUJcXHU0RkEwXFx1NTBEMVxcdTUxNDdcXHU3QUY2XFx1NTE3MVxcdTUxRjZcXHU1MzU0XFx1NTMyMVxcdTUzN0ZcXHU1M0VCXFx1NTVBQ1xcdTU4ODNcXHU1Q0UxXFx1NUYzN1xcdTVGNEFcXHU2MDJGXFx1NjA1MFxcdTYwNkRcXHU2MzFGXFx1NjU1OVxcdTZBNEJcXHU2Q0MxXFx1NzJDMlxcdTcyRURcXHU3N0VGXFx1ODBGOFxcdTgxMDVcXHU4MjA4XFx1ODU0RVxcdTkwRjdcXHU5M0UxXFx1OTdGRlxcdTk5NTdcXHU5QTVBXFx1NEVGMFxcdTUxRERcXHU1QzJEXFx1NjY4MVxcdTY5NkRcXHU1QzQwXFx1NjZGMlxcdTY5NzVcXHU3Mzg5XFx1Njg1MFxcdTdDODFcXHU1MEM1XFx1NTJFNFxcdTU3NDdcXHU1REZFXFx1OTMyNlxcdTY1QTRcXHU2QjIzXFx1NkIzRFxcdTc0MzRcXHU3OTgxXFx1NzlCRFxcdTdCNEJcXHU3RENBXFx1ODJCOVxcdTgzQ0NcXHU4ODdGXFx1ODk1RlxcdThCMzlcXHU4RkQxXFx1OTFEMVxcdTU0MUZcXHU5MjgwXFx1NEU1RFxcdTUwMzZcXHU1M0U1XFx1NTMzQVxcdTcyRDdcXHU3Mzk2XFx1NzdFOVxcdTgyRTZcXHU4RUFGXFx1OTlDNlxcdTk5QzhcXHU5OUQyXFx1NTE3N1xcdTYxMUFcXHU4NjVFXFx1NTVCMFxcdTdBN0FcXHU1MDc2XFx1NUJEM1xcdTkwNDdcXHU5Njg1XFx1NEUzMlxcdTZBREJcXHU5MUU3XFx1NUM1MVxcdTVDNDhcIl0sXG4gICAgICBbXCI4YzQwXCIsIFwiXFx1NjM5OFxcdTdBOUZcXHU2QzkzXFx1OTc3NFxcdThGNjFcXHU3QUFBXFx1NzE4QVxcdTk2ODhcXHU3QzgyXFx1NjgxN1xcdTdFNzBcXHU2ODUxXFx1OTM2Q1xcdTUyRjJcXHU1NDFCXFx1ODVBQlxcdThBMTNcXHU3RkE0XFx1OEVDRFxcdTkwRTFcXHU1MzY2XFx1ODg4OFxcdTc5NDFcXHU0RkMyXFx1NTBCRVxcdTUyMTFcXHU1MTQ0XFx1NTU1M1xcdTU3MkRcXHU3M0VBXFx1NTc4QlxcdTU5NTFcXHU1RjYyXFx1NUY4NFxcdTYwNzVcXHU2MTc2XFx1NjE2N1xcdTYxQTlcXHU2M0IyXFx1NjQzQVxcdTY1NkNcXHU2NjZGXFx1Njg0MlxcdTZFMTNcXHU3NTY2XFx1N0EzRFxcdTdDRkJcXHU3RDRDXFx1N0Q5OVxcdTdFNEJcXHU3RjZCXFx1ODMwRVxcdTgzNEFcXHU4NkNEXFx1OEEwOFxcdThBNjNcXHU4QjY2XFx1OEVGRFxcdTk4MUFcXHU5RDhGXFx1ODJCOFxcdThGQ0VcXHU5QkU4XCJdLFxuICAgICAgW1wiOGM4MFwiLCBcIlxcdTUyODdcXHU2MjFGXFx1NjQ4M1xcdTZGQzBcXHU5Njk5XFx1Njg0MVxcdTUwOTFcXHU2QjIwXFx1NkM3QVxcdTZGNTRcXHU3QTc0XFx1N0Q1MFxcdTg4NDBcXHU4QTIzXFx1NjcwOFxcdTRFRjZcXHU1MDM5XFx1NTAyNlxcdTUwNjVcXHU1MTdDXFx1NTIzOFxcdTUyNjNcXHU1NUE3XFx1NTcwRlxcdTU4MDVcXHU1QUNDXFx1NUVGQVxcdTYxQjJcXHU2MUY4XFx1NjJGM1xcdTYzNzJcXHU2OTFDXFx1NkEyOVxcdTcyN0RcXHU3MkFDXFx1NzMyRVxcdTc4MTRcXHU3ODZGXFx1N0Q3OVxcdTc3MENcXHU4MEE5XFx1ODk4QlxcdThCMTlcXHU4Q0UyXFx1OEVEMlxcdTkwNjNcXHU5Mzc1XFx1OTY3QVxcdTk4NTVcXHU5QTEzXFx1OUU3OFxcdTUxNDNcXHU1MzlGXFx1NTNCM1xcdTVFN0JcXHU1RjI2XFx1NkUxQlxcdTZFOTBcXHU3Mzg0XFx1NzNGRVxcdTdENDNcXHU4MjM3XFx1OEEwMFxcdThBRkFcXHU5NjUwXFx1NEU0RVxcdTUwMEJcXHU1M0U0XFx1NTQ3Q1xcdTU2RkFcXHU1OUQxXFx1NUI2NFxcdTVERjFcXHU1RUFCXFx1NUYyN1xcdTYyMzhcXHU2NTQ1XFx1NjdBRlxcdTZFNTZcXHU3MkQwXFx1N0NDQVxcdTg4QjRcXHU4MEExXFx1ODBFMVxcdTgzRjBcXHU4NjRFXFx1OEE4N1xcdThERThcXHU5MjM3XFx1OTZDN1xcdTk4NjdcXHU5RjEzXFx1NEU5NFxcdTRFOTJcXHU0RjBEXFx1NTM0OFxcdTU0NDlcXHU1NDNFXFx1NUEyRlxcdTVGOENcXHU1RkExXFx1NjA5RlxcdTY4QTdcXHU2QThFXFx1NzQ1QVxcdTc4ODFcXHU4QTlFXFx1OEFBNFxcdThCNzdcXHU5MTkwXFx1NEU1RVxcdTlCQzlcXHU0RUE0XFx1NEY3Q1xcdTRGQUZcXHU1MDE5XFx1NTAxNlxcdTUxNDlcXHU1MTZDXFx1NTI5RlxcdTUyQjlcXHU1MkZFXFx1NTM5QVxcdTUzRTNcXHU1NDExXCJdLFxuICAgICAgW1wiOGQ0MFwiLCBcIlxcdTU0MEVcXHU1NTg5XFx1NTc1MVxcdTU3QTJcXHU1OTdEXFx1NUI1NFxcdTVCNURcXHU1QjhGXFx1NURFNVxcdTVERTdcXHU1REY3XFx1NUU3OFxcdTVFODNcXHU1RTlBXFx1NUVCN1xcdTVGMThcXHU2MDUyXFx1NjE0Q1xcdTYyOTdcXHU2MkQ4XFx1NjNBN1xcdTY1M0JcXHU2NjAyXFx1NjY0M1xcdTY2RjRcXHU2NzZEXFx1NjgyMVxcdTY4OTdcXHU2OUNCXFx1NkM1RlxcdTZEMkFcXHU2RDY5XFx1NkUyRlxcdTZFOURcXHU3NTMyXFx1NzY4N1xcdTc4NkNcXHU3QTNGXFx1N0NFMFxcdTdEMDVcXHU3RDE4XFx1N0Q1RVxcdTdEQjFcXHU4MDE1XFx1ODAwM1xcdTgwQUZcXHU4MEIxXFx1ODE1NFxcdTgxOEZcXHU4MjJBXFx1ODM1MlxcdTg4NENcXHU4ODYxXFx1OEIxQlxcdThDQTJcXHU4Q0ZDXFx1OTBDQVxcdTkxNzVcXHU5MjcxXFx1NzgzRlxcdTkyRkNcXHU5NUE0XFx1OTY0RFwiXSxcbiAgICAgIFtcIjhkODBcIiwgXCJcXHU5ODA1XFx1OTk5OVxcdTlBRDhcXHU5RDNCXFx1NTI1QlxcdTUyQUJcXHU1M0Y3XFx1NTQwOFxcdTU4RDVcXHU2MkY3XFx1NkZFMFxcdThDNkFcXHU4RjVGXFx1OUVCOVxcdTUxNEJcXHU1MjNCXFx1NTQ0QVxcdTU2RkRcXHU3QTQwXFx1OTE3N1xcdTlENjBcXHU5RUQyXFx1NzM0NFxcdTZGMDlcXHU4MTcwXFx1NzUxMVxcdTVGRkRcXHU2MERBXFx1OUFBOFxcdTcyREJcXHU4RkJDXFx1NkI2NFxcdTk4MDNcXHU0RUNBXFx1NTZGMFxcdTU3NjRcXHU1OEJFXFx1NUE1QVxcdTYwNjhcXHU2MUM3XFx1NjYwRlxcdTY2MDZcXHU2ODM5XFx1NjhCMVxcdTZERjdcXHU3NUQ1XFx1N0QzQVxcdTgyNkVcXHU5QjQyXFx1NEU5QlxcdTRGNTBcXHU1M0M5XFx1NTUwNlxcdTVENkZcXHU1REU2XFx1NURFRVxcdTY3RkJcXHU2Qzk5XFx1NzQ3M1xcdTc4MDJcXHU4QTUwXFx1OTM5NlxcdTg4REZcXHU1NzUwXFx1NUVBN1xcdTYzMkJcXHU1MEI1XFx1NTBBQ1xcdTUxOERcXHU2NzAwXFx1NTRDOVxcdTU4NUVcXHU1OUJCXFx1NUJCMFxcdTVGNjlcXHU2MjREXFx1NjNBMVxcdTY4M0RcXHU2QjczXFx1NkUwOFxcdTcwN0RcXHU5MUM3XFx1NzI4MFxcdTc4MTVcXHU3ODI2XFx1Nzk2RFxcdTY1OEVcXHU3RDMwXFx1ODNEQ1xcdTg4QzFcXHU4RjA5XFx1OTY5QlxcdTUyNjRcXHU1NzI4XFx1Njc1MFxcdTdGNkFcXHU4Q0ExXFx1NTFCNFxcdTU3NDJcXHU5NjJBXFx1NTgzQVxcdTY5OEFcXHU4MEI0XFx1NTRCMlxcdTVEMEVcXHU1N0ZDXFx1Nzg5NVxcdTlERkFcXHU0RjVDXFx1NTI0QVxcdTU0OEJcXHU2NDNFXFx1NjYyOFxcdTY3MTRcXHU2N0Y1XFx1N0E4NFxcdTdCNTZcXHU3RDIyXFx1OTMyRlxcdTY4NUNcXHU5QkFEXFx1N0IzOVxcdTUzMTlcXHU1MThBXFx1NTIzN1wiXSxcbiAgICAgIFtcIjhlNDBcIiwgXCJcXHU1QkRGXFx1NjJGNlxcdTY0QUVcXHU2NEU2XFx1NjcyRFxcdTZCQkFcXHU4NUE5XFx1OTZEMVxcdTc2OTBcXHU5QkQ2XFx1NjM0Q1xcdTkzMDZcXHU5QkFCXFx1NzZCRlxcdTY2NTJcXHU0RTA5XFx1NTA5OFxcdTUzQzJcXHU1QzcxXFx1NjBFOFxcdTY0OTJcXHU2NTYzXFx1Njg1RlxcdTcxRTZcXHU3M0NBXFx1NzUyM1xcdTdCOTdcXHU3RTgyXFx1ODY5NVxcdThCODNcXHU4Q0RCXFx1OTE3OFxcdTk5MTBcXHU2NUFDXFx1NjZBQlxcdTZCOEJcXHU0RUQ1XFx1NEVENFxcdTRGM0FcXHU0RjdGXFx1NTIzQVxcdTUzRjhcXHU1M0YyXFx1NTVFM1xcdTU2REJcXHU1OEVCXFx1NTlDQlxcdTU5QzlcXHU1OUZGXFx1NUI1MFxcdTVDNERcXHU1RTAyXFx1NUUyQlxcdTVGRDdcXHU2MDFEXFx1NjMwN1xcdTY1MkZcXHU1QjVDXFx1NjVBRlxcdTY1QkRcXHU2NUU4XFx1Njc5RFxcdTZCNjJcIl0sXG4gICAgICBbXCI4ZTgwXCIsIFwiXFx1NkI3QlxcdTZDMEZcXHU3MzQ1XFx1Nzk0OVxcdTc5QzFcXHU3Q0Y4XFx1N0QxOVxcdTdEMkJcXHU4MEEyXFx1ODEwMlxcdTgxRjNcXHU4OTk2XFx1OEE1RVxcdThBNjlcXHU4QTY2XFx1OEE4Q1xcdThBRUVcXHU4Q0M3XFx1OENEQ1xcdTk2Q0NcXHU5OEZDXFx1NkI2RlxcdTRFOEJcXHU0RjNDXFx1NEY4RFxcdTUxNTBcXHU1QjU3XFx1NUJGQVxcdTYxNDhcXHU2MzAxXFx1NjY0MlxcdTZCMjFcXHU2RUNCXFx1NkNCQlxcdTcyM0VcXHU3NEJEXFx1NzVENFxcdTc4QzFcXHU3OTNBXFx1ODAwQ1xcdTgwMzNcXHU4MUVBXFx1ODQ5NFxcdThGOUVcXHU2QzUwXFx1OUU3RlxcdTVGMEZcXHU4QjU4XFx1OUQyQlxcdTdBRkFcXHU4RUY4XFx1NUI4RFxcdTk2RUJcXHU0RTAzXFx1NTNGMVxcdTU3RjdcXHU1OTMxXFx1NUFDOVxcdTVCQTRcXHU2MDg5XFx1NkU3RlxcdTZGMDZcXHU3NUJFXFx1OENFQVxcdTVCOUZcXHU4NTAwXFx1N0JFMFxcdTUwNzJcXHU2N0Y0XFx1ODI5RFxcdTVDNjFcXHU4NTRBXFx1N0UxRVxcdTgyMEVcXHU1MTk5XFx1NUMwNFxcdTYzNjhcXHU4RDY2XFx1NjU5Q1xcdTcxNkVcXHU3OTNFXFx1N0QxN1xcdTgwMDVcXHU4QjFEXFx1OEVDQVxcdTkwNkVcXHU4NkM3XFx1OTBBQVxcdTUwMUZcXHU1MkZBXFx1NUMzQVxcdTY3NTNcXHU3MDdDXFx1NzIzNVxcdTkxNENcXHU5MUM4XFx1OTMyQlxcdTgyRTVcXHU1QkMyXFx1NUYzMVxcdTYwRjlcXHU0RTNCXFx1NTNENlxcdTVCODhcXHU2MjRCXFx1NjczMVxcdTZCOEFcXHU3MkU5XFx1NzNFMFxcdTdBMkVcXHU4MTZCXFx1OERBM1xcdTkxNTJcXHU5OTk2XFx1NTExMlxcdTUzRDdcXHU1NDZBXFx1NUJGRlxcdTYzODhcXHU2QTM5XFx1N0RBQ1xcdTk3MDBcXHU1NkRBXFx1NTNDRVxcdTU0NjhcIl0sXG4gICAgICBbXCI4ZjQwXCIsIFwiXFx1NUI5N1xcdTVDMzFcXHU1RERFXFx1NEZFRVxcdTYxMDFcXHU2MkZFXFx1NkQzMlxcdTc5QzBcXHU3OUNCXFx1N0Q0MlxcdTdFNERcXHU3RkQyXFx1ODFFRFxcdTgyMUZcXHU4NDkwXFx1ODg0NlxcdTg5NzJcXHU4QjkwXFx1OEU3NFxcdThGMkZcXHU5MDMxXFx1OTE0QlxcdTkxNkNcXHU5NkM2XFx1OTE5Q1xcdTRFQzBcXHU0RjRGXFx1NTE0NVxcdTUzNDFcXHU1RjkzXFx1NjIwRVxcdTY3RDRcXHU2QzQxXFx1NkUwQlxcdTczNjNcXHU3RTI2XFx1OTFDRFxcdTkyODNcXHU1M0Q0XFx1NTkxOVxcdTVCQkZcXHU2REQxXFx1Nzk1RFxcdTdFMkVcXHU3QzlCXFx1NTg3RVxcdTcxOUZcXHU1MUZBXFx1ODg1M1xcdThGRjBcXHU0RkNBXFx1NUNGQlxcdTY2MjVcXHU3N0FDXFx1N0FFM1xcdTgyMUNcXHU5OUZGXFx1NTFDNlxcdTVGQUFcXHU2NUVDXFx1Njk2RlxcdTZCODlcXHU2REYzXCJdLFxuICAgICAgW1wiOGY4MFwiLCBcIlxcdTZFOTZcXHU2RjY0XFx1NzZGRVxcdTdEMTRcXHU1REUxXFx1OTA3NVxcdTkxODdcXHU5ODA2XFx1NTFFNlxcdTUyMURcXHU2MjQwXFx1NjY5MVxcdTY2RDlcXHU2RTFBXFx1NUVCNlxcdTdERDJcXHU3RjcyXFx1NjZGOFxcdTg1QUZcXHU4NUY3XFx1OEFGOFxcdTUyQTlcXHU1M0Q5XFx1NTk3M1xcdTVFOEZcXHU1RjkwXFx1NjA1NVxcdTkyRTRcXHU5NjY0XFx1NTBCN1xcdTUxMUZcXHU1MkREXFx1NTMyMFxcdTUzNDdcXHU1M0VDXFx1NTRFOFxcdTU1NDZcXHU1NTMxXFx1NTYxN1xcdTU5NjhcXHU1OUJFXFx1NUEzQ1xcdTVCQjVcXHU1QzA2XFx1NUMwRlxcdTVDMTFcXHU1QzFBXFx1NUU4NFxcdTVFOEFcXHU1RUUwXFx1NUY3MFxcdTYyN0ZcXHU2Mjg0XFx1NjJEQlxcdTYzOENcXHU2Mzc3XFx1NjYwN1xcdTY2MENcXHU2NjJEXFx1NjY3NlxcdTY3N0VcXHU2OEEyXFx1NkExRlxcdTZBMzVcXHU2Q0JDXFx1NkQ4OFxcdTZFMDlcXHU2RTU4XFx1NzEzQ1xcdTcxMjZcXHU3MTY3XFx1NzVDN1xcdTc3MDFcXHU3ODVEXFx1NzkwMVxcdTc5NjVcXHU3OUYwXFx1N0FFMFxcdTdCMTFcXHU3Q0E3XFx1N0QzOVxcdTgwOTZcXHU4M0Q2XFx1ODQ4QlxcdTg1NDlcXHU4ODVEXFx1ODhGM1xcdThBMUZcXHU4QTNDXFx1OEE1NFxcdThBNzNcXHU4QzYxXFx1OENERVxcdTkxQTRcXHU5MjY2XFx1OTM3RVxcdTk0MThcXHU5NjlDXFx1OTc5OFxcdTRFMEFcXHU0RTA4XFx1NEUxRVxcdTRFNTdcXHU1MTk3XFx1NTI3MFxcdTU3Q0VcXHU1ODM0XFx1NThDQ1xcdTVCMjJcXHU1RTM4XFx1NjBDNVxcdTY0RkVcXHU2NzYxXFx1Njc1NlxcdTZENDRcXHU3MkI2XFx1NzU3M1xcdTdBNjNcXHU4NEI4XFx1OEI3MlxcdTkxQjhcXHU5MzIwXFx1NTYzMVxcdTU3RjRcXHU5OEZFXCJdLFxuICAgICAgW1wiOTA0MFwiLCBcIlxcdTYyRURcXHU2OTBEXFx1NkI5NlxcdTcxRURcXHU3RTU0XFx1ODA3N1xcdTgyNzJcXHU4OUU2XFx1OThERlxcdTg3NTVcXHU4RkIxXFx1NUMzQlxcdTRGMzhcXHU0RkUxXFx1NEZCNVxcdTU1MDdcXHU1QTIwXFx1NUJERFxcdTVCRTlcXHU1RkMzXFx1NjE0RVxcdTYzMkZcXHU2NUIwXFx1NjY0QlxcdTY4RUVcXHU2OTlCXFx1NkQ3OFxcdTZERjFcXHU3NTMzXFx1NzVCOVxcdTc3MUZcXHU3OTVFXFx1NzlFNlxcdTdEMzNcXHU4MUUzXFx1ODJBRlxcdTg1QUFcXHU4OUFBXFx1OEEzQVxcdThFQUJcXHU4RjlCXFx1OTAzMlxcdTkxRERcXHU5NzA3XFx1NEVCQVxcdTRFQzFcXHU1MjAzXFx1NTg3NVxcdTU4RUNcXHU1QzBCXFx1NzUxQVxcdTVDM0RcXHU4MTRFXFx1OEEwQVxcdThGQzVcXHU5NjYzXFx1OTc2RFxcdTdCMjVcXHU4QUNGXFx1OTgwOFxcdTkxNjJcXHU1NkYzXFx1NTNBOFwiXSxcbiAgICAgIFtcIjkwODBcIiwgXCJcXHU5MDE3XFx1NTQzOVxcdTU3ODJcXHU1RTI1XFx1NjNBOFxcdTZDMzRcXHU3MDhBXFx1Nzc2MVxcdTdDOEJcXHU3RkUwXFx1ODg3MFxcdTkwNDJcXHU5MTU0XFx1OTMxMFxcdTkzMThcXHU5NjhGXFx1NzQ1RVxcdTlBQzRcXHU1RDA3XFx1NUQ2OVxcdTY1NzBcXHU2N0EyXFx1OERBOFxcdTk2REJcXHU2MzZFXFx1Njc0OVxcdTY5MTlcXHU4M0M1XFx1OTgxN1xcdTk2QzBcXHU4OEZFXFx1NkY4NFxcdTY0N0FcXHU1QkY4XFx1NEUxNlxcdTcwMkNcXHU3NTVEXFx1NjYyRlxcdTUxQzRcXHU1MjM2XFx1NTJFMlxcdTU5RDNcXHU1RjgxXFx1NjAyN1xcdTYyMTBcXHU2NTNGXFx1NjU3NFxcdTY2MUZcXHU2Njc0XFx1NjhGMlxcdTY4MTZcXHU2QjYzXFx1NkUwNVxcdTcyNzJcXHU3NTFGXFx1NzZEQlxcdTdDQkVcXHU4MDU2XFx1NThGMFxcdTg4RkRcXHU4OTdGXFx1OEFBMFxcdThBOTNcXHU4QUNCXFx1OTAxRFxcdTkxOTJcXHU5NzUyXFx1OTc1OVxcdTY1ODlcXHU3QTBFXFx1ODEwNlxcdTk2QkJcXHU1RTJEXFx1NjBEQ1xcdTYyMUFcXHU2NUE1XFx1NjYxNFxcdTY3OTBcXHU3N0YzXFx1N0E0RFxcdTdDNERcXHU3RTNFXFx1ODEwQVxcdThDQUNcXHU4RDY0XFx1OERFMVxcdThFNUZcXHU3OEE5XFx1NTIwN1xcdTYyRDlcXHU2M0E1XFx1NjQ0MlxcdTYyOThcXHU4QTJEXFx1N0E4M1xcdTdCQzBcXHU4QUFDXFx1OTZFQVxcdTdENzZcXHU4MjBDXFx1ODc0OVxcdTRFRDlcXHU1MTQ4XFx1NTM0M1xcdTUzNjBcXHU1QkEzXFx1NUMwMlxcdTVDMTZcXHU1REREXFx1NjIyNlxcdTYyNDdcXHU2NEIwXFx1NjgxM1xcdTY4MzRcXHU2Q0M5XFx1NkQ0NVxcdTZEMTdcXHU2N0QzXFx1NkY1Q1xcdTcxNEVcXHU3MTdEXFx1NjVDQlxcdTdBN0ZcXHU3QkFEXFx1N0REQVwiXSxcbiAgICAgIFtcIjkxNDBcIiwgXCJcXHU3RTRBXFx1N0ZBOFxcdTgxN0FcXHU4MjFCXFx1ODIzOVxcdTg1QTZcXHU4QTZFXFx1OENDRVxcdThERjVcXHU5MDc4XFx1OTA3N1xcdTkyQURcXHU5MjkxXFx1OTU4M1xcdTlCQUVcXHU1MjREXFx1NTU4NFxcdTZGMzhcXHU3MTM2XFx1NTE2OFxcdTc5ODVcXHU3RTU1XFx1ODFCM1xcdTdDQ0VcXHU1NjRDXFx1NTg1MVxcdTVDQThcXHU2M0FBXFx1NjZGRVxcdTY2RkRcXHU2OTVBXFx1NzJEOVxcdTc1OEZcXHU3NThFXFx1NzkwRVxcdTc5NTZcXHU3OURGXFx1N0M5N1xcdTdEMjBcXHU3RDQ0XFx1ODYwN1xcdThBMzRcXHU5NjNCXFx1OTA2MVxcdTlGMjBcXHU1MEU3XFx1NTI3NVxcdTUzQ0NcXHU1M0UyXFx1NTAwOVxcdTU1QUFcXHU1OEVFXFx1NTk0RlxcdTcyM0RcXHU1QjhCXFx1NUM2NFxcdTUzMURcXHU2MEUzXFx1NjBGM1xcdTYzNUNcXHU2MzgzXFx1NjMzRlxcdTYzQkJcIl0sXG4gICAgICBbXCI5MTgwXCIsIFwiXFx1NjRDRFxcdTY1RTlcXHU2NkY5XFx1NURFM1xcdTY5Q0RcXHU2OUZEXFx1NkYxNVxcdTcxRTVcXHU0RTg5XFx1NzVFOVxcdTc2RjhcXHU3QTkzXFx1N0NERlxcdTdEQ0ZcXHU3RDlDXFx1ODA2MVxcdTgzNDlcXHU4MzU4XFx1ODQ2Q1xcdTg0QkNcXHU4NUZCXFx1ODhDNVxcdThENzBcXHU5MDAxXFx1OTA2RFxcdTkzOTdcXHU5NzFDXFx1OUExMlxcdTUwQ0ZcXHU1ODk3XFx1NjE4RVxcdTgxRDNcXHU4NTM1XFx1OEQwOFxcdTkwMjBcXHU0RkMzXFx1NTA3NFxcdTUyNDdcXHU1MzczXFx1NjA2RlxcdTYzNDlcXHU2NzVGXFx1NkUyQ1xcdThEQjNcXHU5MDFGXFx1NEZEN1xcdTVDNUVcXHU4Q0NBXFx1NjVDRlxcdTdEOUFcXHU1MzUyXFx1ODg5NlxcdTUxNzZcXHU2M0MzXFx1NUI1OFxcdTVCNkJcXHU1QzBBXFx1NjQwRFxcdTY3NTFcXHU5MDVDXFx1NEVENlxcdTU5MUFcXHU1OTJBXFx1NkM3MFxcdThBNTFcXHU1NTNFXFx1NTgxNVxcdTU5QTVcXHU2MEYwXFx1NjI1M1xcdTY3QzFcXHU4MjM1XFx1Njk1NVxcdTk2NDBcXHU5OUM0XFx1OUEyOFxcdTRGNTNcXHU1ODA2XFx1NUJGRVxcdTgwMTBcXHU1Q0IxXFx1NUUyRlxcdTVGODVcXHU2MDIwXFx1NjE0QlxcdTYyMzRcXHU2NkZGXFx1NkNGMFxcdTZFREVcXHU4MENFXFx1ODE3RlxcdTgyRDRcXHU4ODhCXFx1OENCOFxcdTkwMDBcXHU5MDJFXFx1OTY4QVxcdTlFREJcXHU5QkRCXFx1NEVFM1xcdTUzRjBcXHU1OTI3XFx1N0IyQ1xcdTkxOERcXHU5ODRDXFx1OURGOVxcdTZFRERcXHU3MDI3XFx1NTM1M1xcdTU1NDRcXHU1Qjg1XFx1NjI1OFxcdTYyOUVcXHU2MkQzXFx1NkNBMlxcdTZGRUZcXHU3NDIyXFx1OEExN1xcdTk0MzhcXHU2RkMxXFx1OEFGRVxcdTgzMzhcXHU1MUU3XFx1ODZGOFxcdTUzRUFcIl0sXG4gICAgICBbXCI5MjQwXCIsIFwiXFx1NTNFOVxcdTRGNDZcXHU5MDU0XFx1OEZCMFxcdTU5NkFcXHU4MTMxXFx1NURGRFxcdTdBRUFcXHU4RkJGXFx1NjhEQVxcdThDMzdcXHU3MkY4XFx1OUM0OFxcdTZBM0RcXHU4QUIwXFx1NEUzOVxcdTUzNThcXHU1NjA2XFx1NTc2NlxcdTYyQzVcXHU2M0EyXFx1NjVFNlxcdTZCNEVcXHU2REUxXFx1NkU1QlxcdTcwQURcXHU3N0VEXFx1N0FFRlxcdTdCQUFcXHU3REJCXFx1ODAzRFxcdTgwQzZcXHU4NkNCXFx1OEE5NVxcdTkzNUJcXHU1NkUzXFx1NThDN1xcdTVGM0VcXHU2NUFEXFx1NjY5NlxcdTZBODBcXHU2QkI1XFx1NzUzN1xcdThBQzdcXHU1MDI0XFx1NzdFNVxcdTU3MzBcXHU1RjFCXFx1NjA2NVxcdTY2N0FcXHU2QzYwXFx1NzVGNFxcdTdBMUFcXHU3RjZFXFx1ODFGNFxcdTg3MThcXHU5MDQ1XFx1OTlCM1xcdTdCQzlcXHU3NTVDXFx1N0FGOVxcdTdCNTFcXHU4NEM0XCJdLFxuICAgICAgW1wiOTI4MFwiLCBcIlxcdTkwMTBcXHU3OUU5XFx1N0E5MlxcdTgzMzZcXHU1QUUxXFx1Nzc0MFxcdTRFMkRcXHU0RUYyXFx1NUI5OVxcdTVGRTBcXHU2MkJEXFx1NjYzQ1xcdTY3RjFcXHU2Q0U4XFx1ODY2QlxcdTg4NzdcXHU4QTNCXFx1OTE0RVxcdTkyRjNcXHU5OUQwXFx1NkExN1xcdTcwMjZcXHU3MzJBXFx1ODJFN1xcdTg0NTdcXHU4Q0FGXFx1NEUwMVxcdTUxNDZcXHU1MUNCXFx1NTU4QlxcdTVCRjVcXHU1RTE2XFx1NUUzM1xcdTVFODFcXHU1RjE0XFx1NUYzNVxcdTVGNkJcXHU1RkI0XFx1NjFGMlxcdTYzMTFcXHU2NkEyXFx1NjcxRFxcdTZGNkVcXHU3MjUyXFx1NzUzQVxcdTc3M0FcXHU4MDc0XFx1ODEzOVxcdTgxNzhcXHU4Nzc2XFx1OEFCRlxcdThBRENcXHU4RDg1XFx1OERGM1xcdTkyOUFcXHU5NTc3XFx1OTgwMlxcdTlDRTVcXHU1MkM1XFx1NjM1N1xcdTc2RjRcXHU2NzE1XFx1NkM4OFxcdTczQ0RcXHU4Q0MzXFx1OTNBRVxcdTk2NzNcXHU2RDI1XFx1NTg5Q1xcdTY5MEVcXHU2OUNDXFx1OEZGRFxcdTkzOUFcXHU3NURCXFx1OTAxQVxcdTU4NUFcXHU2ODAyXFx1NjNCNFxcdTY5RkJcXHU0RjQzXFx1NkYyQ1xcdTY3RDhcXHU4RkJCXFx1ODUyNlxcdTdEQjRcXHU5MzU0XFx1NjkzRlxcdTZGNzBcXHU1NzZBXFx1NThGN1xcdTVCMkNcXHU3RDJDXFx1NzIyQVxcdTU0MEFcXHU5MUUzXFx1OURCNFxcdTRFQURcXHU0RjRFXFx1NTA1Q1xcdTUwNzVcXHU1MjQzXFx1OEM5RVxcdTU0NDhcXHU1ODI0XFx1NUI5QVxcdTVFMURcXHU1RTk1XFx1NUVBRFxcdTVFRjdcXHU1RjFGXFx1NjA4Q1xcdTYyQjVcXHU2MzNBXFx1NjNEMFxcdTY4QUZcXHU2QzQwXFx1Nzg4N1xcdTc5OEVcXHU3QTBCXFx1N0RFMFxcdTgyNDdcXHU4QTAyXFx1OEFFNlxcdThFNDRcXHU5MDEzXCJdLFxuICAgICAgW1wiOTM0MFwiLCBcIlxcdTkwQjhcXHU5MTJEXFx1OTFEOFxcdTlGMEVcXHU2Q0U1XFx1NjQ1OFxcdTY0RTJcXHU2NTc1XFx1NkVGNFxcdTc2ODRcXHU3QjFCXFx1OTA2OVxcdTkzRDFcXHU2RUJBXFx1NTRGMlxcdTVGQjlcXHU2NEE0XFx1OEY0RFxcdThGRURcXHU5MjQ0XFx1NTE3OFxcdTU4NkJcXHU1OTI5XFx1NUM1NVxcdTVFOTdcXHU2REZCXFx1N0U4RlxcdTc1MUNcXHU4Q0JDXFx1OEVFMlxcdTk4NUJcXHU3MEI5XFx1NEYxRFxcdTZCQkZcXHU2RkIxXFx1NzUzMFxcdTk2RkJcXHU1MTRFXFx1NTQxMFxcdTU4MzVcXHU1ODU3XFx1NTlBQ1xcdTVDNjBcXHU1RjkyXFx1NjU5N1xcdTY3NUNcXHU2RTIxXFx1NzY3QlxcdTgzREZcXHU4Q0VEXFx1OTAxNFxcdTkwRkRcXHU5MzREXFx1NzgyNVxcdTc4M0FcXHU1MkFBXFx1NUVBNlxcdTU3MUZcXHU1OTc0XFx1NjAxMlxcdTUwMTJcXHU1MTVBXFx1NTFBQ1wiXSxcbiAgICAgIFtcIjkzODBcIiwgXCJcXHU1MUNEXFx1NTIwMFxcdTU1MTBcXHU1ODU0XFx1NTg1OFxcdTU5NTdcXHU1Qjk1XFx1NUNGNlxcdTVEOEJcXHU2MEJDXFx1NjI5NVxcdTY0MkRcXHU2NzcxXFx1Njg0M1xcdTY4QkNcXHU2OERGXFx1NzZEN1xcdTZERDhcXHU2RTZGXFx1NkQ5QlxcdTcwNkZcXHU3MUM4XFx1NUY1M1xcdTc1RDhcXHU3OTc3XFx1N0I0OVxcdTdCNTRcXHU3QjUyXFx1N0NENlxcdTdENzFcXHU1MjMwXFx1ODQ2M1xcdTg1NjlcXHU4NUU0XFx1OEEwRVxcdThCMDRcXHU4QzQ2XFx1OEUwRlxcdTkwMDNcXHU5MDBGXFx1OTQxOVxcdTk2NzZcXHU5ODJEXFx1OUEzMFxcdTk1RDhcXHU1MENEXFx1NTJENVxcdTU0MENcXHU1ODAyXFx1NUMwRVxcdTYxQTdcXHU2NDlFXFx1NkQxRVxcdTc3QjNcXHU3QUU1XFx1ODBGNFxcdTg0MDRcXHU5MDUzXFx1OTI4NVxcdTVDRTBcXHU5RDA3XFx1NTMzRlxcdTVGOTdcXHU1RkIzXFx1NkQ5Q1xcdTcyNzlcXHU3NzYzXFx1NzlCRlxcdTdCRTRcXHU2QkQyXFx1NzJFQ1xcdThBQURcXHU2ODAzXFx1NkE2MVxcdTUxRjhcXHU3QTgxXFx1NjkzNFxcdTVDNEFcXHU5Q0Y2XFx1ODJFQlxcdTVCQzVcXHU5MTQ5XFx1NzAxRVxcdTU2NzhcXHU1QzZGXFx1NjBDN1xcdTY1NjZcXHU2QzhDXFx1OEM1QVxcdTkwNDFcXHU5ODEzXFx1NTQ1MVxcdTY2QzdcXHU5MjBEXFx1NTk0OFxcdTkwQTNcXHU1MTg1XFx1NEU0RFxcdTUxRUFcXHU4NTk5XFx1OEIwRVxcdTcwNThcXHU2MzdBXFx1OTM0QlxcdTY5NjJcXHU5OUI0XFx1N0UwNFxcdTc1NzdcXHU1MzU3XFx1Njk2MFxcdThFREZcXHU5NkUzXFx1NkM1RFxcdTRFOENcXHU1QzNDXFx1NUYxMFxcdThGRTlcXHU1MzAyXFx1OENEMVxcdTgwODlcXHU4Njc5XFx1NUVGRlxcdTY1RTVcXHU0RTczXFx1NTE2NVwiXSxcbiAgICAgIFtcIjk0NDBcIiwgXCJcXHU1OTgyXFx1NUMzRlxcdTk3RUVcXHU0RUZCXFx1NTk4QVxcdTVGQ0RcXHU4QThEXFx1NkZFMVxcdTc5QjBcXHU3OTYyXFx1NUJFN1xcdTg0NzFcXHU3MzJCXFx1NzFCMVxcdTVFNzRcXHU1RkY1XFx1NjM3QlxcdTY0OUFcXHU3MUMzXFx1N0M5OFxcdTRFNDNcXHU1RUZDXFx1NEU0QlxcdTU3RENcXHU1NkEyXFx1NjBBOVxcdTZGQzNcXHU3RDBEXFx1ODBGRFxcdTgxMzNcXHU4MUJGXFx1OEZCMlxcdTg5OTdcXHU4NkE0XFx1NURGNFxcdTYyOEFcXHU2NEFEXFx1ODk4N1xcdTY3NzdcXHU2Q0UyXFx1NkQzRVxcdTc0MzZcXHU3ODM0XFx1NUE0NlxcdTdGNzVcXHU4MkFEXFx1OTlBQ1xcdTRGRjNcXHU1RUMzXFx1NjJERFxcdTYzOTJcXHU2NTU3XFx1Njc2RlxcdTc2QzNcXHU3MjRDXFx1ODBDQ1xcdTgwQkFcXHU4RjI5XFx1OTE0RFxcdTUwMERcXHU1N0Y5XFx1NUE5MlxcdTY4ODVcIl0sXG4gICAgICBbXCI5NDgwXCIsIFwiXFx1Njk3M1xcdTcxNjRcXHU3MkZEXFx1OENCN1xcdTU4RjJcXHU4Q0UwXFx1OTY2QVxcdTkwMTlcXHU4NzdGXFx1NzlFNFxcdTc3RTdcXHU4NDI5XFx1NEYyRlxcdTUyNjVcXHU1MzVBXFx1NjJDRFxcdTY3Q0ZcXHU2Q0NBXFx1NzY3RFxcdTdCOTRcXHU3Qzk1XFx1ODIzNlxcdTg1ODRcXHU4RkVCXFx1NjZERFxcdTZGMjBcXHU3MjA2XFx1N0UxQlxcdTgzQUJcXHU5OUMxXFx1OUVBNlxcdTUxRkRcXHU3QkIxXFx1Nzg3MlxcdTdCQjhcXHU4MDg3XFx1N0I0OFxcdTZBRThcXHU1RTYxXFx1ODA4Q1xcdTc1NTFcXHU3NTYwXFx1NTE2QlxcdTkyNjJcXHU2RThDXFx1NzY3QVxcdTkxOTdcXHU5QUVBXFx1NEYxMFxcdTdGNzBcXHU2MjlDXFx1N0I0RlxcdTk1QTVcXHU5Q0U5XFx1NTY3QVxcdTU4NTlcXHU4NkU0XFx1OTZCQ1xcdTRGMzRcXHU1MjI0XFx1NTM0QVxcdTUzQ0RcXHU1M0RCXFx1NUUwNlxcdTY0MkNcXHU2NTkxXFx1Njc3RlxcdTZDM0VcXHU2QzRFXFx1NzI0OFxcdTcyQUZcXHU3M0VEXFx1NzU1NFxcdTdFNDFcXHU4MjJDXFx1ODVFOVxcdThDQTlcXHU3QkM0XFx1OTFDNlxcdTcxNjlcXHU5ODEyXFx1OThFRlxcdTYzM0RcXHU2NjY5XFx1NzU2QVxcdTc2RTRcXHU3OEQwXFx1ODU0M1xcdTg2RUVcXHU1MzJBXFx1NTM1MVxcdTU0MjZcXHU1OTgzXFx1NUU4N1xcdTVGN0NcXHU2MEIyXFx1NjI0OVxcdTYyNzlcXHU2MkFCXFx1NjU5MFxcdTZCRDRcXHU2Q0NDXFx1NzVCMlxcdTc2QUVcXHU3ODkxXFx1NzlEOFxcdTdEQ0JcXHU3Rjc3XFx1ODBBNVxcdTg4QUJcXHU4QUI5XFx1OENCQlxcdTkwN0ZcXHU5NzVFXFx1OThEQlxcdTZBMEJcXHU3QzM4XFx1NTA5OVxcdTVDM0VcXHU1RkFFXFx1Njc4N1xcdTZCRDhcXHU3NDM1XFx1NzcwOVxcdTdGOEVcIl0sXG4gICAgICBbXCI5NTQwXCIsIFwiXFx1OUYzQlxcdTY3Q0FcXHU3QTE3XFx1NTMzOVxcdTc1OEJcXHU5QUVEXFx1NUY2NlxcdTgxOURcXHU4M0YxXFx1ODA5OFxcdTVGM0NcXHU1RkM1XFx1NzU2MlxcdTdCNDZcXHU5MDNDXFx1Njg2N1xcdTU5RUJcXHU1QTlCXFx1N0QxMFxcdTc2N0VcXHU4QjJDXFx1NEZGNVxcdTVGNkFcXHU2QTE5XFx1NkMzN1xcdTZGMDJcXHU3NEUyXFx1Nzk2OFxcdTg4NjhcXHU4QTU1XFx1OEM3OVxcdTVFREZcXHU2M0NGXFx1NzVDNVxcdTc5RDJcXHU4MkQ3XFx1OTMyOFxcdTkyRjJcXHU4NDlDXFx1ODZFRFxcdTlDMkRcXHU1NEMxXFx1NUY2Q1xcdTY1OENcXHU2RDVDXFx1NzAxNVxcdThDQTdcXHU4Q0QzXFx1OTgzQlxcdTY1NEZcXHU3NEY2XFx1NEUwRFxcdTRFRDhcXHU1N0UwXFx1NTkyQlxcdTVBNjZcXHU1QkNDXFx1NTFBOFxcdTVFMDNcXHU1RTlDXFx1NjAxNlxcdTYyNzZcXHU2NTc3XCJdLFxuICAgICAgW1wiOTU4MFwiLCBcIlxcdTY1QTdcXHU2NjZFXFx1NkQ2RVxcdTcyMzZcXHU3QjI2XFx1ODE1MFxcdTgxOUFcXHU4Mjk5XFx1OEI1Q1xcdThDQTBcXHU4Q0U2XFx1OEQ3NFxcdTk2MUNcXHU5NjQ0XFx1NEZBRVxcdTY0QUJcXHU2QjY2XFx1ODIxRVxcdTg0NjFcXHU4NTZBXFx1OTBFOFxcdTVDMDFcXHU2OTUzXFx1OThBOFxcdTg0N0FcXHU4NTU3XFx1NEYwRlxcdTUyNkZcXHU1RkE5XFx1NUU0NVxcdTY3MERcXHU3OThGXFx1ODE3OVxcdTg5MDdcXHU4OTg2XFx1NkRGNVxcdTVGMTdcXHU2MjU1XFx1NkNCOFxcdTRFQ0ZcXHU3MjY5XFx1OUI5MlxcdTUyMDZcXHU1NDNCXFx1NTY3NFxcdTU4QjNcXHU2MUE0XFx1NjI2RVxcdTcxMUFcXHU1OTZFXFx1N0M4OVxcdTdDREVcXHU3RDFCXFx1OTZGMFxcdTY1ODdcXHU4MDVFXFx1NEUxOVxcdTRGNzVcXHU1MTc1XFx1NTg0MFxcdTVFNjNcXHU1RTczXFx1NUYwQVxcdTY3QzRcXHU0RTI2XFx1ODUzRFxcdTk1ODlcXHU5NjVCXFx1N0M3M1xcdTk4MDFcXHU1MEZCXFx1NThDMVxcdTc2NTZcXHU3OEE3XFx1NTIyNVxcdTc3QTVcXHU4NTExXFx1N0I4NlxcdTUwNEZcXHU1OTA5XFx1NzI0N1xcdTdCQzdcXHU3REU4XFx1OEZCQVxcdThGRDRcXHU5MDREXFx1NEZCRlxcdTUyQzlcXHU1QTI5XFx1NUYwMVxcdTk3QURcXHU0RkREXFx1ODIxN1xcdTkyRUFcXHU1NzAzXFx1NjM1NVxcdTZCNjlcXHU3NTJCXFx1ODhEQ1xcdThGMTRcXHU3QTQyXFx1NTJERlxcdTU4OTNcXHU2MTU1XFx1NjIwQVxcdTY2QUVcXHU2QkNEXFx1N0MzRlxcdTgzRTlcXHU1MDIzXFx1NEZGOFxcdTUzMDVcXHU1NDQ2XFx1NTgzMVxcdTU5NDlcXHU1QjlEXFx1NUNGMFxcdTVDRUZcXHU1RDI5XFx1NUU5NlxcdTYyQjFcXHU2MzY3XFx1NjUzRVxcdTY1QjlcXHU2NzBCXCJdLFxuICAgICAgW1wiOTY0MFwiLCBcIlxcdTZDRDVcXHU2Q0UxXFx1NzBGOVxcdTc4MzJcXHU3RTJCXFx1ODBERVxcdTgyQjNcXHU4NDBDXFx1ODRFQ1xcdTg3MDJcXHU4OTEyXFx1OEEyQVxcdThDNEFcXHU5MEE2XFx1OTJEMlxcdTk4RkRcXHU5Q0YzXFx1OUQ2Q1xcdTRFNEZcXHU0RUExXFx1NTA4RFxcdTUyNTZcXHU1NzRBXFx1NTlBOFxcdTVFM0RcXHU1RkQ4XFx1NUZEOVxcdTYyM0ZcXHU2NkI0XFx1NjcxQlxcdTY3RDBcXHU2OEQyXFx1NTE5MlxcdTdEMjFcXHU4MEFBXFx1ODFBOFxcdThCMDBcXHU4QzhDXFx1OENCRlxcdTkyN0VcXHU5NjMyXFx1NTQyMFxcdTk4MkNcXHU1MzE3XFx1NTBENVxcdTUzNUNcXHU1OEE4XFx1NjRCMlxcdTY3MzRcXHU3MjY3XFx1Nzc2NlxcdTdBNDZcXHU5MUU2XFx1NTJDM1xcdTZDQTFcXHU2Qjg2XFx1NTgwMFxcdTVFNENcXHU1OTU0XFx1NjcyQ1xcdTdGRkJcXHU1MUUxXFx1NzZDNlwiXSxcbiAgICAgIFtcIjk2ODBcIiwgXCJcXHU2NDY5XFx1NzhFOFxcdTlCNTRcXHU5RUJCXFx1NTdDQlxcdTU5QjlcXHU2NjI3XFx1Njc5QVxcdTZCQ0VcXHU1NEU5XFx1NjlEOVxcdTVFNTVcXHU4MTlDXFx1Njc5NVxcdTlCQUFcXHU2N0ZFXFx1OUM1MlxcdTY4NURcXHU0RUE2XFx1NEZFM1xcdTUzQzhcXHU2MkI5XFx1NjcyQlxcdTZDQUJcXHU4RkM0XFx1NEZBRFxcdTdFNkRcXHU5RUJGXFx1NEUwN1xcdTYxNjJcXHU2RTgwXFx1NkYyQlxcdTg1MTNcXHU1NDczXFx1NjcyQVxcdTlCNDVcXHU1REYzXFx1N0I5NVxcdTVDQUNcXHU1QkM2XFx1ODcxQ1xcdTZFNEFcXHU4NEQxXFx1N0ExNFxcdTgxMDhcXHU1OTk5XFx1N0M4RFxcdTZDMTFcXHU3NzIwXFx1NTJEOVxcdTU5MjJcXHU3MTIxXFx1NzI1RlxcdTc3REJcXHU5NzI3XFx1OUQ2MVxcdTY5MEJcXHU1QTdGXFx1NUExOFxcdTUxQTVcXHU1NDBEXFx1NTQ3RFxcdTY2MEVcXHU3NkRGXFx1OEZGN1xcdTkyOThcXHU5Q0Y0XFx1NTlFQVxcdTcyNURcXHU2RUM1XFx1NTE0RFxcdTY4QzlcXHU3REJGXFx1N0RFQ1xcdTk3NjJcXHU5RUJBXFx1NjQ3OFxcdTZBMjFcXHU4MzAyXFx1NTk4NFxcdTVCNUZcXHU2QkRCXFx1NzMxQlxcdTc2RjJcXHU3REIyXFx1ODAxN1xcdTg0OTlcXHU1MTMyXFx1NjcyOFxcdTlFRDlcXHU3NkVFXFx1Njc2MlxcdTUyRkZcXHU5OTA1XFx1NUMyNFxcdTYyM0JcXHU3QzdFXFx1OENCMFxcdTU1NEZcXHU2MEI2XFx1N0QwQlxcdTk1ODBcXHU1MzAxXFx1NEU1RlxcdTUxQjZcXHU1OTFDXFx1NzIzQVxcdTgwMzZcXHU5MUNFXFx1NUYyNVxcdTc3RTJcXHU1Mzg0XFx1NUY3OVxcdTdEMDRcXHU4NUFDXFx1OEEzM1xcdThFOERcXHU5NzU2XFx1NjdGM1xcdTg1QUVcXHU5NDUzXFx1NjEwOVxcdTYxMDhcXHU2Q0I5XFx1NzY1MlwiXSxcbiAgICAgIFtcIjk3NDBcIiwgXCJcXHU4QUVEXFx1OEYzOFxcdTU1MkZcXHU0RjUxXFx1NTEyQVxcdTUyQzdcXHU1M0NCXFx1NUJBNVxcdTVFN0RcXHU2MEEwXFx1NjE4MlxcdTYzRDZcXHU2NzA5XFx1NjdEQVxcdTZFNjdcXHU2RDhDXFx1NzMzNlxcdTczMzdcXHU3NTMxXFx1Nzk1MFxcdTg4RDVcXHU4QTk4XFx1OTA0QVxcdTkwOTFcXHU5MEY1XFx1OTZDNFxcdTg3OERcXHU1OTE1XFx1NEU4OFxcdTRGNTlcXHU0RTBFXFx1OEE4OVxcdThGM0ZcXHU5ODEwXFx1NTBBRFxcdTVFN0NcXHU1OTk2XFx1NUJCOVxcdTVFQjhcXHU2M0RBXFx1NjNGQVxcdTY0QzFcXHU2NkRDXFx1Njk0QVxcdTY5RDhcXHU2RDBCXFx1NkVCNlxcdTcxOTRcXHU3NTI4XFx1N0FBRlxcdTdGOEFcXHU4MDAwXFx1ODQ0OVxcdTg0QzlcXHU4OTgxXFx1OEIyMVxcdThFMEFcXHU5MDY1XFx1OTY3RFxcdTk5MEFcXHU2MTdFXFx1NjI5MVxcdTZCMzJcIl0sXG4gICAgICBbXCI5NzgwXCIsIFwiXFx1NkM4M1xcdTZENzRcXHU3RkNDXFx1N0ZGQ1xcdTZEQzBcXHU3Rjg1XFx1ODdCQVxcdTg4RjhcXHU2NzY1XFx1ODNCMVxcdTk4M0NcXHU5NkY3XFx1NkQxQlxcdTdENjFcXHU4NDNEXFx1OTE2QVxcdTRFNzFcXHU1Mzc1XFx1NUQ1MFxcdTZCMDRcXHU2RkVCXFx1ODVDRFxcdTg2MkRcXHU4OUE3XFx1NTIyOVxcdTU0MEZcXHU1QzY1XFx1Njc0RVxcdTY4QThcXHU3NDA2XFx1NzQ4M1xcdTc1RTJcXHU4OENGXFx1ODhFMVxcdTkxQ0NcXHU5NkUyXFx1OTY3OFxcdTVGOEJcXHU3Mzg3XFx1N0FDQlxcdTg0NEVcXHU2M0EwXFx1NzU2NVxcdTUyODlcXHU2RDQxXFx1NkU5Q1xcdTc0MDlcXHU3NTU5XFx1Nzg2QlxcdTdDOTJcXHU5Njg2XFx1N0FEQ1xcdTlGOERcXHU0RkI2XFx1NjE2RVxcdTY1QzVcXHU4NjVDXFx1NEU4NlxcdTRFQUVcXHU1MERBXFx1NEUyMVxcdTUxQ0NcXHU1QkVFXFx1NjU5OVxcdTY4ODFcXHU2REJDXFx1NzMxRlxcdTc2NDJcXHU3N0FEXFx1N0ExQ1xcdTdDRTdcXHU4MjZGXFx1OEFEMlxcdTkwN0NcXHU5MUNGXFx1OTY3NVxcdTk4MThcXHU1MjlCXFx1N0REMVxcdTUwMkJcXHU1Mzk4XFx1Njc5N1xcdTZEQ0JcXHU3MUQwXFx1NzQzM1xcdTgxRThcXHU4RjJBXFx1OTZBM1xcdTlDNTdcXHU5RTlGXFx1NzQ2MFxcdTU4NDFcXHU2RDk5XFx1N0QyRlxcdTk4NUVcXHU0RUU0XFx1NEYzNlxcdTRGOEJcXHU1MUI3XFx1NTJCMVxcdTVEQkFcXHU2MDFDXFx1NzNCMlxcdTc5M0NcXHU4MkQzXFx1OTIzNFxcdTk2QjdcXHU5NkY2XFx1OTcwQVxcdTlFOTdcXHU5RjYyXFx1NjZBNlxcdTZCNzRcXHU1MjE3XFx1NTJBM1xcdTcwQzhcXHU4OEMyXFx1NUVDOVxcdTYwNEJcXHU2MTkwXFx1NkYyM1xcdTcxNDlcXHU3QzNFXFx1N0RGNFxcdTgwNkZcIl0sXG4gICAgICBbXCI5ODQwXCIsIFwiXFx1ODRFRVxcdTkwMjNcXHU5MzJDXFx1NTQ0MlxcdTlCNkZcXHU2QUQzXFx1NzA4OVxcdThDQzJcXHU4REVGXFx1OTczMlxcdTUyQjRcXHU1QTQxXFx1NUVDQVxcdTVGMDRcXHU2NzE3XFx1Njk3Q1xcdTY5OTRcXHU2RDZBXFx1NkYwRlxcdTcyNjJcXHU3MkZDXFx1N0JFRFxcdTgwMDFcXHU4MDdFXFx1ODc0QlxcdTkwQ0VcXHU1MTZEXFx1OUU5M1xcdTc5ODRcXHU4MDhCXFx1OTMzMlxcdThBRDZcXHU1MDJEXFx1NTQ4Q1xcdThBNzFcXHU2QjZBXFx1OENDNFxcdTgxMDdcXHU2MEQxXFx1NjdBMFxcdTlERjJcXHU0RTk5XFx1NEU5OFxcdTlDMTBcXHU4QTZCXFx1ODVDMVxcdTg1NjhcXHU2OTAwXFx1NkU3RVxcdTc4OTdcXHU4MTU1XCJdLFxuICAgICAgW1wiOTg5ZlwiLCBcIlxcdTVGMENcXHU0RTEwXFx1NEUxNVxcdTRFMkFcXHU0RTMxXFx1NEUzNlxcdTRFM0NcXHU0RTNGXFx1NEU0MlxcdTRFNTZcXHU0RTU4XFx1NEU4MlxcdTRFODVcXHU4QzZCXFx1NEU4QVxcdTgyMTJcXHU1RjBEXFx1NEU4RVxcdTRFOUVcXHU0RTlGXFx1NEVBMFxcdTRFQTJcXHU0RUIwXFx1NEVCM1xcdTRFQjZcXHU0RUNFXFx1NEVDRFxcdTRFQzRcXHU0RUM2XFx1NEVDMlxcdTRFRDdcXHU0RURFXFx1NEVFRFxcdTRFREZcXHU0RUY3XFx1NEYwOVxcdTRGNUFcXHU0RjMwXFx1NEY1QlxcdTRGNURcXHU0RjU3XFx1NEY0N1xcdTRGNzZcXHU0Rjg4XFx1NEY4RlxcdTRGOThcXHU0RjdCXFx1NEY2OVxcdTRGNzBcXHU0RjkxXFx1NEY2RlxcdTRGODZcXHU0Rjk2XFx1NTExOFxcdTRGRDRcXHU0RkRGXFx1NEZDRVxcdTRGRDhcXHU0RkRCXFx1NEZEMVxcdTRGREFcXHU0RkQwXFx1NEZFNFxcdTRGRTVcXHU1MDFBXFx1NTAyOFxcdTUwMTRcXHU1MDJBXFx1NTAyNVxcdTUwMDVcXHU0RjFDXFx1NEZGNlxcdTUwMjFcXHU1MDI5XFx1NTAyQ1xcdTRGRkVcXHU0RkVGXFx1NTAxMVxcdTUwMDZcXHU1MDQzXFx1NTA0N1xcdTY3MDNcXHU1MDU1XFx1NTA1MFxcdTUwNDhcXHU1MDVBXFx1NTA1NlxcdTUwNkNcXHU1MDc4XFx1NTA4MFxcdTUwOUFcXHU1MDg1XFx1NTBCNFxcdTUwQjJcIl0sXG4gICAgICBbXCI5OTQwXCIsIFwiXFx1NTBDOVxcdTUwQ0FcXHU1MEIzXFx1NTBDMlxcdTUwRDZcXHU1MERFXFx1NTBFNVxcdTUwRURcXHU1MEUzXFx1NTBFRVxcdTUwRjlcXHU1MEY1XFx1NTEwOVxcdTUxMDFcXHU1MTAyXFx1NTExNlxcdTUxMTVcXHU1MTE0XFx1NTExQVxcdTUxMjFcXHU1MTNBXFx1NTEzN1xcdTUxM0NcXHU1MTNCXFx1NTEzRlxcdTUxNDBcXHU1MTUyXFx1NTE0Q1xcdTUxNTRcXHU1MTYyXFx1N0FGOFxcdTUxNjlcXHU1MTZBXFx1NTE2RVxcdTUxODBcXHU1MTgyXFx1NTZEOFxcdTUxOENcXHU1MTg5XFx1NTE4RlxcdTUxOTFcXHU1MTkzXFx1NTE5NVxcdTUxOTZcXHU1MUE0XFx1NTFBNlxcdTUxQTJcXHU1MUE5XFx1NTFBQVxcdTUxQUJcXHU1MUIzXFx1NTFCMVxcdTUxQjJcXHU1MUIwXFx1NTFCNVxcdTUxQkRcXHU1MUM1XFx1NTFDOVxcdTUxREJcXHU1MUUwXFx1ODY1NVxcdTUxRTlcXHU1MUVEXCJdLFxuICAgICAgW1wiOTk4MFwiLCBcIlxcdTUxRjBcXHU1MUY1XFx1NTFGRVxcdTUyMDRcXHU1MjBCXFx1NTIxNFxcdTUyMEVcXHU1MjI3XFx1NTIyQVxcdTUyMkVcXHU1MjMzXFx1NTIzOVxcdTUyNEZcXHU1MjQ0XFx1NTI0QlxcdTUyNENcXHU1MjVFXFx1NTI1NFxcdTUyNkFcXHU1Mjc0XFx1NTI2OVxcdTUyNzNcXHU1MjdGXFx1NTI3RFxcdTUyOERcXHU1Mjk0XFx1NTI5MlxcdTUyNzFcXHU1Mjg4XFx1NTI5MVxcdThGQThcXHU4RkE3XFx1NTJBQ1xcdTUyQURcXHU1MkJDXFx1NTJCNVxcdTUyQzFcXHU1MkNEXFx1NTJEN1xcdTUyREVcXHU1MkUzXFx1NTJFNlxcdTk4RURcXHU1MkUwXFx1NTJGM1xcdTUyRjVcXHU1MkY4XFx1NTJGOVxcdTUzMDZcXHU1MzA4XFx1NzUzOFxcdTUzMERcXHU1MzEwXFx1NTMwRlxcdTUzMTVcXHU1MzFBXFx1NTMyM1xcdTUzMkZcXHU1MzMxXFx1NTMzM1xcdTUzMzhcXHU1MzQwXFx1NTM0NlxcdTUzNDVcXHU0RTE3XFx1NTM0OVxcdTUzNERcXHU1MUQ2XFx1NTM1RVxcdTUzNjlcXHU1MzZFXFx1NTkxOFxcdTUzN0JcXHU1Mzc3XFx1NTM4MlxcdTUzOTZcXHU1M0EwXFx1NTNBNlxcdTUzQTVcXHU1M0FFXFx1NTNCMFxcdTUzQjZcXHU1M0MzXFx1N0MxMlxcdTk2RDlcXHU1M0RGXFx1NjZGQ1xcdTcxRUVcXHU1M0VFXFx1NTNFOFxcdTUzRURcXHU1M0ZBXFx1NTQwMVxcdTU0M0RcXHU1NDQwXFx1NTQyQ1xcdTU0MkRcXHU1NDNDXFx1NTQyRVxcdTU0MzZcXHU1NDI5XFx1NTQxRFxcdTU0NEVcXHU1NDhGXFx1NTQ3NVxcdTU0OEVcXHU1NDVGXFx1NTQ3MVxcdTU0NzdcXHU1NDcwXFx1NTQ5MlxcdTU0N0JcXHU1NDgwXFx1NTQ3NlxcdTU0ODRcXHU1NDkwXFx1NTQ4NlxcdTU0QzdcXHU1NEEyXFx1NTRCOFxcdTU0QTVcXHU1NEFDXFx1NTRDNFxcdTU0QzhcXHU1NEE4XCJdLFxuICAgICAgW1wiOWE0MFwiLCBcIlxcdTU0QUJcXHU1NEMyXFx1NTRBNFxcdTU0QkVcXHU1NEJDXFx1NTREOFxcdTU0RTVcXHU1NEU2XFx1NTUwRlxcdTU1MTRcXHU1NEZEXFx1NTRFRVxcdTU0RURcXHU1NEZBXFx1NTRFMlxcdTU1MzlcXHU1NTQwXFx1NTU2M1xcdTU1NENcXHU1NTJFXFx1NTU1Q1xcdTU1NDVcXHU1NTU2XFx1NTU1N1xcdTU1MzhcXHU1NTMzXFx1NTU1RFxcdTU1OTlcXHU1NTgwXFx1NTRBRlxcdTU1OEFcXHU1NTlGXFx1NTU3QlxcdTU1N0VcXHU1NTk4XFx1NTU5RVxcdTU1QUVcXHU1NTdDXFx1NTU4M1xcdTU1QTlcXHU1NTg3XFx1NTVBOFxcdTU1REFcXHU1NUM1XFx1NTVERlxcdTU1QzRcXHU1NURDXFx1NTVFNFxcdTU1RDRcXHU1NjE0XFx1NTVGN1xcdTU2MTZcXHU1NUZFXFx1NTVGRFxcdTU2MUJcXHU1NUY5XFx1NTY0RVxcdTU2NTBcXHU3MURGXFx1NTYzNFxcdTU2MzZcXHU1NjMyXFx1NTYzOFwiXSxcbiAgICAgIFtcIjlhODBcIiwgXCJcXHU1NjZCXFx1NTY2NFxcdTU2MkZcXHU1NjZDXFx1NTY2QVxcdTU2ODZcXHU1NjgwXFx1NTY4QVxcdTU2QTBcXHU1Njk0XFx1NTY4RlxcdTU2QTVcXHU1NkFFXFx1NTZCNlxcdTU2QjRcXHU1NkMyXFx1NTZCQ1xcdTU2QzFcXHU1NkMzXFx1NTZDMFxcdTU2QzhcXHU1NkNFXFx1NTZEMVxcdTU2RDNcXHU1NkQ3XFx1NTZFRVxcdTU2RjlcXHU1NzAwXFx1NTZGRlxcdTU3MDRcXHU1NzA5XFx1NTcwOFxcdTU3MEJcXHU1NzBEXFx1NTcxM1xcdTU3MThcXHU1NzE2XFx1NTVDN1xcdTU3MUNcXHU1NzI2XFx1NTczN1xcdTU3MzhcXHU1NzRFXFx1NTczQlxcdTU3NDBcXHU1NzRGXFx1NTc2OVxcdTU3QzBcXHU1Nzg4XFx1NTc2MVxcdTU3N0ZcXHU1Nzg5XFx1NTc5M1xcdTU3QTBcXHU1N0IzXFx1NTdBNFxcdTU3QUFcXHU1N0IwXFx1NTdDM1xcdTU3QzZcXHU1N0Q0XFx1NTdEMlxcdTU3RDNcXHU1ODBBXFx1NTdENlxcdTU3RTNcXHU1ODBCXFx1NTgxOVxcdTU4MURcXHU1ODcyXFx1NTgyMVxcdTU4NjJcXHU1ODRCXFx1NTg3MFxcdTZCQzBcXHU1ODUyXFx1NTgzRFxcdTU4NzlcXHU1ODg1XFx1NThCOVxcdTU4OUZcXHU1OEFCXFx1NThCQVxcdTU4REVcXHU1OEJCXFx1NThCOFxcdTU4QUVcXHU1OEM1XFx1NThEM1xcdTU4RDFcXHU1OEQ3XFx1NThEOVxcdTU4RDhcXHU1OEU1XFx1NThEQ1xcdTU4RTRcXHU1OERGXFx1NThFRlxcdTU4RkFcXHU1OEY5XFx1NThGQlxcdTU4RkNcXHU1OEZEXFx1NTkwMlxcdTU5MEFcXHU1OTEwXFx1NTkxQlxcdTY4QTZcXHU1OTI1XFx1NTkyQ1xcdTU5MkRcXHU1OTMyXFx1NTkzOFxcdTU5M0VcXHU3QUQyXFx1NTk1NVxcdTU5NTBcXHU1OTRFXFx1NTk1QVxcdTU5NThcXHU1OTYyXFx1NTk2MFxcdTU5NjdcXHU1OTZDXFx1NTk2OVwiXSxcbiAgICAgIFtcIjliNDBcIiwgXCJcXHU1OTc4XFx1NTk4MVxcdTU5OURcXHU0RjVFXFx1NEZBQlxcdTU5QTNcXHU1OUIyXFx1NTlDNlxcdTU5RThcXHU1OURDXFx1NTk4RFxcdTU5RDlcXHU1OURBXFx1NUEyNVxcdTVBMUZcXHU1QTExXFx1NUExQ1xcdTVBMDlcXHU1QTFBXFx1NUE0MFxcdTVBNkNcXHU1QTQ5XFx1NUEzNVxcdTVBMzZcXHU1QTYyXFx1NUE2QVxcdTVBOUFcXHU1QUJDXFx1NUFCRVxcdTVBQ0JcXHU1QUMyXFx1NUFCRFxcdTVBRTNcXHU1QUQ3XFx1NUFFNlxcdTVBRTlcXHU1QUQ2XFx1NUFGQVxcdTVBRkJcXHU1QjBDXFx1NUIwQlxcdTVCMTZcXHU1QjMyXFx1NUFEMFxcdTVCMkFcXHU1QjM2XFx1NUIzRVxcdTVCNDNcXHU1QjQ1XFx1NUI0MFxcdTVCNTFcXHU1QjU1XFx1NUI1QVxcdTVCNUJcXHU1QjY1XFx1NUI2OVxcdTVCNzBcXHU1QjczXFx1NUI3NVxcdTVCNzhcXHU2NTg4XFx1NUI3QVxcdTVCODBcIl0sXG4gICAgICBbXCI5YjgwXCIsIFwiXFx1NUI4M1xcdTVCQTZcXHU1QkI4XFx1NUJDM1xcdTVCQzdcXHU1QkM5XFx1NUJENFxcdTVCRDBcXHU1QkU0XFx1NUJFNlxcdTVCRTJcXHU1QkRFXFx1NUJFNVxcdTVCRUJcXHU1QkYwXFx1NUJGNlxcdTVCRjNcXHU1QzA1XFx1NUMwN1xcdTVDMDhcXHU1QzBEXFx1NUMxM1xcdTVDMjBcXHU1QzIyXFx1NUMyOFxcdTVDMzhcXHU1QzM5XFx1NUM0MVxcdTVDNDZcXHU1QzRFXFx1NUM1M1xcdTVDNTBcXHU1QzRGXFx1NUI3MVxcdTVDNkNcXHU1QzZFXFx1NEU2MlxcdTVDNzZcXHU1Qzc5XFx1NUM4Q1xcdTVDOTFcXHU1Qzk0XFx1NTk5QlxcdTVDQUJcXHU1Q0JCXFx1NUNCNlxcdTVDQkNcXHU1Q0I3XFx1NUNDNVxcdTVDQkVcXHU1Q0M3XFx1NUNEOVxcdTVDRTlcXHU1Q0ZEXFx1NUNGQVxcdTVDRURcXHU1RDhDXFx1NUNFQVxcdTVEMEJcXHU1RDE1XFx1NUQxN1xcdTVENUNcXHU1RDFGXFx1NUQxQlxcdTVEMTFcXHU1RDE0XFx1NUQyMlxcdTVEMUFcXHU1RDE5XFx1NUQxOFxcdTVENENcXHU1RDUyXFx1NUQ0RVxcdTVENEJcXHU1RDZDXFx1NUQ3M1xcdTVENzZcXHU1RDg3XFx1NUQ4NFxcdTVEODJcXHU1REEyXFx1NUQ5RFxcdTVEQUNcXHU1REFFXFx1NURCRFxcdTVEOTBcXHU1REI3XFx1NURCQ1xcdTVEQzlcXHU1RENEXFx1NUREM1xcdTVERDJcXHU1REQ2XFx1NUREQlxcdTVERUJcXHU1REYyXFx1NURGNVxcdTVFMEJcXHU1RTFBXFx1NUUxOVxcdTVFMTFcXHU1RTFCXFx1NUUzNlxcdTVFMzdcXHU1RTQ0XFx1NUU0M1xcdTVFNDBcXHU1RTRFXFx1NUU1N1xcdTVFNTRcXHU1RTVGXFx1NUU2MlxcdTVFNjRcXHU1RTQ3XFx1NUU3NVxcdTVFNzZcXHU1RTdBXFx1OUVCQ1xcdTVFN0ZcXHU1RUEwXFx1NUVDMVxcdTVFQzJcXHU1RUM4XFx1NUVEMFxcdTVFQ0ZcIl0sXG4gICAgICBbXCI5YzQwXCIsIFwiXFx1NUVENlxcdTVFRTNcXHU1RUREXFx1NUVEQVxcdTVFREJcXHU1RUUyXFx1NUVFMVxcdTVFRThcXHU1RUU5XFx1NUVFQ1xcdTVFRjFcXHU1RUYzXFx1NUVGMFxcdTVFRjRcXHU1RUY4XFx1NUVGRVxcdTVGMDNcXHU1RjA5XFx1NUY1RFxcdTVGNUNcXHU1RjBCXFx1NUYxMVxcdTVGMTZcXHU1RjI5XFx1NUYyRFxcdTVGMzhcXHU1RjQxXFx1NUY0OFxcdTVGNENcXHU1RjRFXFx1NUYyRlxcdTVGNTFcXHU1RjU2XFx1NUY1N1xcdTVGNTlcXHU1RjYxXFx1NUY2RFxcdTVGNzNcXHU1Rjc3XFx1NUY4M1xcdTVGODJcXHU1RjdGXFx1NUY4QVxcdTVGODhcXHU1RjkxXFx1NUY4N1xcdTVGOUVcXHU1Rjk5XFx1NUY5OFxcdTVGQTBcXHU1RkE4XFx1NUZBRFxcdTVGQkNcXHU1RkQ2XFx1NUZGQlxcdTVGRTRcXHU1RkY4XFx1NUZGMVxcdTVGRERcXHU2MEIzXFx1NUZGRlxcdTYwMjFcXHU2MDYwXCJdLFxuICAgICAgW1wiOWM4MFwiLCBcIlxcdTYwMTlcXHU2MDEwXFx1NjAyOVxcdTYwMEVcXHU2MDMxXFx1NjAxQlxcdTYwMTVcXHU2MDJCXFx1NjAyNlxcdTYwMEZcXHU2MDNBXFx1NjA1QVxcdTYwNDFcXHU2MDZBXFx1NjA3N1xcdTYwNUZcXHU2MDRBXFx1NjA0NlxcdTYwNERcXHU2MDYzXFx1NjA0M1xcdTYwNjRcXHU2MDQyXFx1NjA2Q1xcdTYwNkJcXHU2MDU5XFx1NjA4MVxcdTYwOERcXHU2MEU3XFx1NjA4M1xcdTYwOUFcXHU2MDg0XFx1NjA5QlxcdTYwOTZcXHU2MDk3XFx1NjA5MlxcdTYwQTdcXHU2MDhCXFx1NjBFMVxcdTYwQjhcXHU2MEUwXFx1NjBEM1xcdTYwQjRcXHU1RkYwXFx1NjBCRFxcdTYwQzZcXHU2MEI1XFx1NjBEOFxcdTYxNERcXHU2MTE1XFx1NjEwNlxcdTYwRjZcXHU2MEY3XFx1NjEwMFxcdTYwRjRcXHU2MEZBXFx1NjEwM1xcdTYxMjFcXHU2MEZCXFx1NjBGMVxcdTYxMERcXHU2MTBFXFx1NjE0N1xcdTYxM0VcXHU2MTI4XFx1NjEyN1xcdTYxNEFcXHU2MTNGXFx1NjEzQ1xcdTYxMkNcXHU2MTM0XFx1NjEzRFxcdTYxNDJcXHU2MTQ0XFx1NjE3M1xcdTYxNzdcXHU2MTU4XFx1NjE1OVxcdTYxNUFcXHU2MTZCXFx1NjE3NFxcdTYxNkZcXHU2MTY1XFx1NjE3MVxcdTYxNUZcXHU2MTVEXFx1NjE1M1xcdTYxNzVcXHU2MTk5XFx1NjE5NlxcdTYxODdcXHU2MUFDXFx1NjE5NFxcdTYxOUFcXHU2MThBXFx1NjE5MVxcdTYxQUJcXHU2MUFFXFx1NjFDQ1xcdTYxQ0FcXHU2MUM5XFx1NjFGN1xcdTYxQzhcXHU2MUMzXFx1NjFDNlxcdTYxQkFcXHU2MUNCXFx1N0Y3OVxcdTYxQ0RcXHU2MUU2XFx1NjFFM1xcdTYxRjZcXHU2MUZBXFx1NjFGNFxcdTYxRkZcXHU2MUZEXFx1NjFGQ1xcdTYxRkVcXHU2MjAwXFx1NjIwOFxcdTYyMDlcXHU2MjBEXFx1NjIwQ1xcdTYyMTRcXHU2MjFCXCJdLFxuICAgICAgW1wiOWQ0MFwiLCBcIlxcdTYyMUVcXHU2MjIxXFx1NjIyQVxcdTYyMkVcXHU2MjMwXFx1NjIzMlxcdTYyMzNcXHU2MjQxXFx1NjI0RVxcdTYyNUVcXHU2MjYzXFx1NjI1QlxcdTYyNjBcXHU2MjY4XFx1NjI3Q1xcdTYyODJcXHU2Mjg5XFx1NjI3RVxcdTYyOTJcXHU2MjkzXFx1NjI5NlxcdTYyRDRcXHU2MjgzXFx1NjI5NFxcdTYyRDdcXHU2MkQxXFx1NjJCQlxcdTYyQ0ZcXHU2MkZGXFx1NjJDNlxcdTY0RDRcXHU2MkM4XFx1NjJEQ1xcdTYyQ0NcXHU2MkNBXFx1NjJDMlxcdTYyQzdcXHU2MjlCXFx1NjJDOVxcdTYzMENcXHU2MkVFXFx1NjJGMVxcdTYzMjdcXHU2MzAyXFx1NjMwOFxcdTYyRUZcXHU2MkY1XFx1NjM1MFxcdTYzM0VcXHU2MzREXFx1NjQxQ1xcdTYzNEZcXHU2Mzk2XFx1NjM4RVxcdTYzODBcXHU2M0FCXFx1NjM3NlxcdTYzQTNcXHU2MzhGXFx1NjM4OVxcdTYzOUZcXHU2M0I1XFx1NjM2QlwiXSxcbiAgICAgIFtcIjlkODBcIiwgXCJcXHU2MzY5XFx1NjNCRVxcdTYzRTlcXHU2M0MwXFx1NjNDNlxcdTYzRTNcXHU2M0M5XFx1NjNEMlxcdTYzRjZcXHU2M0M0XFx1NjQxNlxcdTY0MzRcXHU2NDA2XFx1NjQxM1xcdTY0MjZcXHU2NDM2XFx1NjUxRFxcdTY0MTdcXHU2NDI4XFx1NjQwRlxcdTY0NjdcXHU2NDZGXFx1NjQ3NlxcdTY0NEVcXHU2NTJBXFx1NjQ5NVxcdTY0OTNcXHU2NEE1XFx1NjRBOVxcdTY0ODhcXHU2NEJDXFx1NjREQVxcdTY0RDJcXHU2NEM1XFx1NjRDN1xcdTY0QkJcXHU2NEQ4XFx1NjRDMlxcdTY0RjFcXHU2NEU3XFx1ODIwOVxcdTY0RTBcXHU2NEUxXFx1NjJBQ1xcdTY0RTNcXHU2NEVGXFx1NjUyQ1xcdTY0RjZcXHU2NEY0XFx1NjRGMlxcdTY0RkFcXHU2NTAwXFx1NjRGRFxcdTY1MThcXHU2NTFDXFx1NjUwNVxcdTY1MjRcXHU2NTIzXFx1NjUyQlxcdTY1MzRcXHU2NTM1XFx1NjUzN1xcdTY1MzZcXHU2NTM4XFx1NzU0QlxcdTY1NDhcXHU2NTU2XFx1NjU1NVxcdTY1NERcXHU2NTU4XFx1NjU1RVxcdTY1NURcXHU2NTcyXFx1NjU3OFxcdTY1ODJcXHU2NTgzXFx1OEI4QVxcdTY1OUJcXHU2NTlGXFx1NjVBQlxcdTY1QjdcXHU2NUMzXFx1NjVDNlxcdTY1QzFcXHU2NUM0XFx1NjVDQ1xcdTY1RDJcXHU2NURCXFx1NjVEOVxcdTY1RTBcXHU2NUUxXFx1NjVGMVxcdTY3NzJcXHU2NjBBXFx1NjYwM1xcdTY1RkJcXHU2NzczXFx1NjYzNVxcdTY2MzZcXHU2NjM0XFx1NjYxQ1xcdTY2NEZcXHU2NjQ0XFx1NjY0OVxcdTY2NDFcXHU2NjVFXFx1NjY1RFxcdTY2NjRcXHU2NjY3XFx1NjY2OFxcdTY2NUZcXHU2NjYyXFx1NjY3MFxcdTY2ODNcXHU2Njg4XFx1NjY4RVxcdTY2ODlcXHU2Njg0XFx1NjY5OFxcdTY2OURcXHU2NkMxXFx1NjZCOVxcdTY2QzlcXHU2NkJFXFx1NjZCQ1wiXSxcbiAgICAgIFtcIjllNDBcIiwgXCJcXHU2NkM0XFx1NjZCOFxcdTY2RDZcXHU2NkRBXFx1NjZFMFxcdTY2M0ZcXHU2NkU2XFx1NjZFOVxcdTY2RjBcXHU2NkY1XFx1NjZGN1xcdTY3MEZcXHU2NzE2XFx1NjcxRVxcdTY3MjZcXHU2NzI3XFx1OTczOFxcdTY3MkVcXHU2NzNGXFx1NjczNlxcdTY3NDFcXHU2NzM4XFx1NjczN1xcdTY3NDZcXHU2NzVFXFx1Njc2MFxcdTY3NTlcXHU2NzYzXFx1Njc2NFxcdTY3ODlcXHU2NzcwXFx1NjdBOVxcdTY3N0NcXHU2NzZBXFx1Njc4Q1xcdTY3OEJcXHU2N0E2XFx1NjdBMVxcdTY3ODVcXHU2N0I3XFx1NjdFRlxcdTY3QjRcXHU2N0VDXFx1NjdCM1xcdTY3RTlcXHU2N0I4XFx1NjdFNFxcdTY3REVcXHU2N0REXFx1NjdFMlxcdTY3RUVcXHU2N0I5XFx1NjdDRVxcdTY3QzZcXHU2N0U3XFx1NkE5Q1xcdTY4MUVcXHU2ODQ2XFx1NjgyOVxcdTY4NDBcXHU2ODREXFx1NjgzMlxcdTY4NEVcIl0sXG4gICAgICBbXCI5ZTgwXCIsIFwiXFx1NjhCM1xcdTY4MkJcXHU2ODU5XFx1Njg2M1xcdTY4NzdcXHU2ODdGXFx1Njg5RlxcdTY4OEZcXHU2OEFEXFx1Njg5NFxcdTY4OURcXHU2ODlCXFx1Njg4M1xcdTZBQUVcXHU2OEI5XFx1Njg3NFxcdTY4QjVcXHU2OEEwXFx1NjhCQVxcdTY5MEZcXHU2ODhEXFx1Njg3RVxcdTY5MDFcXHU2OENBXFx1NjkwOFxcdTY4RDhcXHU2OTIyXFx1NjkyNlxcdTY4RTFcXHU2OTBDXFx1NjhDRFxcdTY4RDRcXHU2OEU3XFx1NjhENVxcdTY5MzZcXHU2OTEyXFx1NjkwNFxcdTY4RDdcXHU2OEUzXFx1NjkyNVxcdTY4RjlcXHU2OEUwXFx1NjhFRlxcdTY5MjhcXHU2OTJBXFx1NjkxQVxcdTY5MjNcXHU2OTIxXFx1NjhDNlxcdTY5NzlcXHU2OTc3XFx1Njk1Q1xcdTY5NzhcXHU2OTZCXFx1Njk1NFxcdTY5N0VcXHU2OTZFXFx1NjkzOVxcdTY5NzRcXHU2OTNEXFx1Njk1OVxcdTY5MzBcXHU2OTYxXFx1Njk1RVxcdTY5NURcXHU2OTgxXFx1Njk2QVxcdTY5QjJcXHU2OUFFXFx1NjlEMFxcdTY5QkZcXHU2OUMxXFx1NjlEM1xcdTY5QkVcXHU2OUNFXFx1NUJFOFxcdTY5Q0FcXHU2OUREXFx1NjlCQlxcdTY5QzNcXHU2OUE3XFx1NkEyRVxcdTY5OTFcXHU2OUEwXFx1Njk5Q1xcdTY5OTVcXHU2OUI0XFx1NjlERVxcdTY5RThcXHU2QTAyXFx1NkExQlxcdTY5RkZcXHU2QjBBXFx1NjlGOVxcdTY5RjJcXHU2OUU3XFx1NkEwNVxcdTY5QjFcXHU2QTFFXFx1NjlFRFxcdTZBMTRcXHU2OUVCXFx1NkEwQVxcdTZBMTJcXHU2QUMxXFx1NkEyM1xcdTZBMTNcXHU2QTQ0XFx1NkEwQ1xcdTZBNzJcXHU2QTM2XFx1NkE3OFxcdTZBNDdcXHU2QTYyXFx1NkE1OVxcdTZBNjZcXHU2QTQ4XFx1NkEzOFxcdTZBMjJcXHU2QTkwXFx1NkE4RFxcdTZBQTBcXHU2QTg0XFx1NkFBMlxcdTZBQTNcIl0sXG4gICAgICBbXCI5ZjQwXCIsIFwiXFx1NkE5N1xcdTg2MTdcXHU2QUJCXFx1NkFDM1xcdTZBQzJcXHU2QUI4XFx1NkFCM1xcdTZBQUNcXHU2QURFXFx1NkFEMVxcdTZBREZcXHU2QUFBXFx1NkFEQVxcdTZBRUFcXHU2QUZCXFx1NkIwNVxcdTg2MTZcXHU2QUZBXFx1NkIxMlxcdTZCMTZcXHU5QjMxXFx1NkIxRlxcdTZCMzhcXHU2QjM3XFx1NzZEQ1xcdTZCMzlcXHU5OEVFXFx1NkI0N1xcdTZCNDNcXHU2QjQ5XFx1NkI1MFxcdTZCNTlcXHU2QjU0XFx1NkI1QlxcdTZCNUZcXHU2QjYxXFx1NkI3OFxcdTZCNzlcXHU2QjdGXFx1NkI4MFxcdTZCODRcXHU2QjgzXFx1NkI4RFxcdTZCOThcXHU2Qjk1XFx1NkI5RVxcdTZCQTRcXHU2QkFBXFx1NkJBQlxcdTZCQUZcXHU2QkIyXFx1NkJCMVxcdTZCQjNcXHU2QkI3XFx1NkJCQ1xcdTZCQzZcXHU2QkNCXFx1NkJEM1xcdTZCREZcXHU2QkVDXFx1NkJFQlxcdTZCRjNcXHU2QkVGXCJdLFxuICAgICAgW1wiOWY4MFwiLCBcIlxcdTlFQkVcXHU2QzA4XFx1NkMxM1xcdTZDMTRcXHU2QzFCXFx1NkMyNFxcdTZDMjNcXHU2QzVFXFx1NkM1NVxcdTZDNjJcXHU2QzZBXFx1NkM4MlxcdTZDOERcXHU2QzlBXFx1NkM4MVxcdTZDOUJcXHU2QzdFXFx1NkM2OFxcdTZDNzNcXHU2QzkyXFx1NkM5MFxcdTZDQzRcXHU2Q0YxXFx1NkNEM1xcdTZDQkRcXHU2Q0Q3XFx1NkNDNVxcdTZDRERcXHU2Q0FFXFx1NkNCMVxcdTZDQkVcXHU2Q0JBXFx1NkNEQlxcdTZDRUZcXHU2Q0Q5XFx1NkNFQVxcdTZEMUZcXHU4ODREXFx1NkQzNlxcdTZEMkJcXHU2RDNEXFx1NkQzOFxcdTZEMTlcXHU2RDM1XFx1NkQzM1xcdTZEMTJcXHU2RDBDXFx1NkQ2M1xcdTZEOTNcXHU2RDY0XFx1NkQ1QVxcdTZENzlcXHU2RDU5XFx1NkQ4RVxcdTZEOTVcXHU2RkU0XFx1NkQ4NVxcdTZERjlcXHU2RTE1XFx1NkUwQVxcdTZEQjVcXHU2REM3XFx1NkRFNlxcdTZEQjhcXHU2REM2XFx1NkRFQ1xcdTZEREVcXHU2RENDXFx1NkRFOFxcdTZERDJcXHU2REM1XFx1NkRGQVxcdTZERDlcXHU2REU0XFx1NkRENVxcdTZERUFcXHU2REVFXFx1NkUyRFxcdTZFNkVcXHU2RTJFXFx1NkUxOVxcdTZFNzJcXHU2RTVGXFx1NkUzRVxcdTZFMjNcXHU2RTZCXFx1NkUyQlxcdTZFNzZcXHU2RTREXFx1NkUxRlxcdTZFNDNcXHU2RTNBXFx1NkU0RVxcdTZFMjRcXHU2RUZGXFx1NkUxRFxcdTZFMzhcXHU2RTgyXFx1NkVBQVxcdTZFOThcXHU2RUM5XFx1NkVCN1xcdTZFRDNcXHU2RUJEXFx1NkVBRlxcdTZFQzRcXHU2RUIyXFx1NkVENFxcdTZFRDVcXHU2RThGXFx1NkVBNVxcdTZFQzJcXHU2RTlGXFx1NkY0MVxcdTZGMTFcXHU3MDRDXFx1NkVFQ1xcdTZFRjhcXHU2RUZFXFx1NkYzRlxcdTZFRjJcXHU2RjMxXFx1NkVFRlxcdTZGMzJcXHU2RUNDXCJdLFxuICAgICAgW1wiZTA0MFwiLCBcIlxcdTZGM0VcXHU2RjEzXFx1NkVGN1xcdTZGODZcXHU2RjdBXFx1NkY3OFxcdTZGODFcXHU2RjgwXFx1NkY2RlxcdTZGNUJcXHU2RkYzXFx1NkY2RFxcdTZGODJcXHU2RjdDXFx1NkY1OFxcdTZGOEVcXHU2RjkxXFx1NkZDMlxcdTZGNjZcXHU2RkIzXFx1NkZBM1xcdTZGQTFcXHU2RkE0XFx1NkZCOVxcdTZGQzZcXHU2RkFBXFx1NkZERlxcdTZGRDVcXHU2RkVDXFx1NkZENFxcdTZGRDhcXHU2RkYxXFx1NkZFRVxcdTZGREJcXHU3MDA5XFx1NzAwQlxcdTZGRkFcXHU3MDExXFx1NzAwMVxcdTcwMEZcXHU2RkZFXFx1NzAxQlxcdTcwMUFcXHU2Rjc0XFx1NzAxRFxcdTcwMThcXHU3MDFGXFx1NzAzMFxcdTcwM0VcXHU3MDMyXFx1NzA1MVxcdTcwNjNcXHU3MDk5XFx1NzA5MlxcdTcwQUZcXHU3MEYxXFx1NzBBQ1xcdTcwQjhcXHU3MEIzXFx1NzBBRVxcdTcwREZcXHU3MENCXFx1NzBERFwiXSxcbiAgICAgIFtcImUwODBcIiwgXCJcXHU3MEQ5XFx1NzEwOVxcdTcwRkRcXHU3MTFDXFx1NzExOVxcdTcxNjVcXHU3MTU1XFx1NzE4OFxcdTcxNjZcXHU3MTYyXFx1NzE0Q1xcdTcxNTZcXHU3MTZDXFx1NzE4RlxcdTcxRkJcXHU3MTg0XFx1NzE5NVxcdTcxQThcXHU3MUFDXFx1NzFEN1xcdTcxQjlcXHU3MUJFXFx1NzFEMlxcdTcxQzlcXHU3MUQ0XFx1NzFDRVxcdTcxRTBcXHU3MUVDXFx1NzFFN1xcdTcxRjVcXHU3MUZDXFx1NzFGOVxcdTcxRkZcXHU3MjBEXFx1NzIxMFxcdTcyMUJcXHU3MjI4XFx1NzIyRFxcdTcyMkNcXHU3MjMwXFx1NzIzMlxcdTcyM0JcXHU3MjNDXFx1NzIzRlxcdTcyNDBcXHU3MjQ2XFx1NzI0QlxcdTcyNThcXHU3Mjc0XFx1NzI3RVxcdTcyODJcXHU3MjgxXFx1NzI4N1xcdTcyOTJcXHU3Mjk2XFx1NzJBMlxcdTcyQTdcXHU3MkI5XFx1NzJCMlxcdTcyQzNcXHU3MkM2XFx1NzJDNFxcdTcyQ0VcXHU3MkQyXFx1NzJFMlxcdTcyRTBcXHU3MkUxXFx1NzJGOVxcdTcyRjdcXHU1MDBGXFx1NzMxN1xcdTczMEFcXHU3MzFDXFx1NzMxNlxcdTczMURcXHU3MzM0XFx1NzMyRlxcdTczMjlcXHU3MzI1XFx1NzMzRVxcdTczNEVcXHU3MzRGXFx1OUVEOFxcdTczNTdcXHU3MzZBXFx1NzM2OFxcdTczNzBcXHU3Mzc4XFx1NzM3NVxcdTczN0JcXHU3MzdBXFx1NzNDOFxcdTczQjNcXHU3M0NFXFx1NzNCQlxcdTczQzBcXHU3M0U1XFx1NzNFRVxcdTczREVcXHU3NEEyXFx1NzQwNVxcdTc0NkZcXHU3NDI1XFx1NzNGOFxcdTc0MzJcXHU3NDNBXFx1NzQ1NVxcdTc0M0ZcXHU3NDVGXFx1NzQ1OVxcdTc0NDFcXHU3NDVDXFx1NzQ2OVxcdTc0NzBcXHU3NDYzXFx1NzQ2QVxcdTc0NzZcXHU3NDdFXFx1NzQ4QlxcdTc0OUVcXHU3NEE3XFx1NzRDQVxcdTc0Q0ZcXHU3NEQ0XFx1NzNGMVwiXSxcbiAgICAgIFtcImUxNDBcIiwgXCJcXHU3NEUwXFx1NzRFM1xcdTc0RTdcXHU3NEU5XFx1NzRFRVxcdTc0RjJcXHU3NEYwXFx1NzRGMVxcdTc0RjhcXHU3NEY3XFx1NzUwNFxcdTc1MDNcXHU3NTA1XFx1NzUwQ1xcdTc1MEVcXHU3NTBEXFx1NzUxNVxcdTc1MTNcXHU3NTFFXFx1NzUyNlxcdTc1MkNcXHU3NTNDXFx1NzU0NFxcdTc1NERcXHU3NTRBXFx1NzU0OVxcdTc1NUJcXHU3NTQ2XFx1NzU1QVxcdTc1NjlcXHU3NTY0XFx1NzU2N1xcdTc1NkJcXHU3NTZEXFx1NzU3OFxcdTc1NzZcXHU3NTg2XFx1NzU4N1xcdTc1NzRcXHU3NThBXFx1NzU4OVxcdTc1ODJcXHU3NTk0XFx1NzU5QVxcdTc1OURcXHU3NUE1XFx1NzVBM1xcdTc1QzJcXHU3NUIzXFx1NzVDM1xcdTc1QjVcXHU3NUJEXFx1NzVCOFxcdTc1QkNcXHU3NUIxXFx1NzVDRFxcdTc1Q0FcXHU3NUQyXFx1NzVEOVxcdTc1RTNcXHU3NURFXFx1NzVGRVxcdTc1RkZcIl0sXG4gICAgICBbXCJlMTgwXCIsIFwiXFx1NzVGQ1xcdTc2MDFcXHU3NUYwXFx1NzVGQVxcdTc1RjJcXHU3NUYzXFx1NzYwQlxcdTc2MERcXHU3NjA5XFx1NzYxRlxcdTc2MjdcXHU3NjIwXFx1NzYyMVxcdTc2MjJcXHU3NjI0XFx1NzYzNFxcdTc2MzBcXHU3NjNCXFx1NzY0N1xcdTc2NDhcXHU3NjQ2XFx1NzY1Q1xcdTc2NThcXHU3NjYxXFx1NzY2MlxcdTc2NjhcXHU3NjY5XFx1NzY2QVxcdTc2NjdcXHU3NjZDXFx1NzY3MFxcdTc2NzJcXHU3Njc2XFx1NzY3OFxcdTc2N0NcXHU3NjgwXFx1NzY4M1xcdTc2ODhcXHU3NjhCXFx1NzY4RVxcdTc2OTZcXHU3NjkzXFx1NzY5OVxcdTc2OUFcXHU3NkIwXFx1NzZCNFxcdTc2QjhcXHU3NkI5XFx1NzZCQVxcdTc2QzJcXHU3NkNEXFx1NzZENlxcdTc2RDJcXHU3NkRFXFx1NzZFMVxcdTc2RTVcXHU3NkU3XFx1NzZFQVxcdTg2MkZcXHU3NkZCXFx1NzcwOFxcdTc3MDdcXHU3NzA0XFx1NzcyOVxcdTc3MjRcXHU3NzFFXFx1NzcyNVxcdTc3MjZcXHU3NzFCXFx1NzczN1xcdTc3MzhcXHU3NzQ3XFx1Nzc1QVxcdTc3NjhcXHU3NzZCXFx1Nzc1QlxcdTc3NjVcXHU3NzdGXFx1Nzc3RVxcdTc3NzlcXHU3NzhFXFx1Nzc4QlxcdTc3OTFcXHU3N0EwXFx1Nzc5RVxcdTc3QjBcXHU3N0I2XFx1NzdCOVxcdTc3QkZcXHU3N0JDXFx1NzdCRFxcdTc3QkJcXHU3N0M3XFx1NzdDRFxcdTc3RDdcXHU3N0RBXFx1NzdEQ1xcdTc3RTNcXHU3N0VFXFx1NzdGQ1xcdTc4MENcXHU3ODEyXFx1NzkyNlxcdTc4MjBcXHU3OTJBXFx1Nzg0NVxcdTc4OEVcXHU3ODc0XFx1Nzg4NlxcdTc4N0NcXHU3ODlBXFx1Nzg4Q1xcdTc4QTNcXHU3OEI1XFx1NzhBQVxcdTc4QUZcXHU3OEQxXFx1NzhDNlxcdTc4Q0JcXHU3OEQ0XFx1NzhCRVxcdTc4QkNcXHU3OEM1XFx1NzhDQVxcdTc4RUNcIl0sXG4gICAgICBbXCJlMjQwXCIsIFwiXFx1NzhFN1xcdTc4REFcXHU3OEZEXFx1NzhGNFxcdTc5MDdcXHU3OTEyXFx1NzkxMVxcdTc5MTlcXHU3OTJDXFx1NzkyQlxcdTc5NDBcXHU3OTYwXFx1Nzk1N1xcdTc5NUZcXHU3OTVBXFx1Nzk1NVxcdTc5NTNcXHU3OTdBXFx1Nzk3RlxcdTc5OEFcXHU3OTlEXFx1NzlBN1xcdTlGNEJcXHU3OUFBXFx1NzlBRVxcdTc5QjNcXHU3OUI5XFx1NzlCQVxcdTc5QzlcXHU3OUQ1XFx1NzlFN1xcdTc5RUNcXHU3OUUxXFx1NzlFM1xcdTdBMDhcXHU3QTBEXFx1N0ExOFxcdTdBMTlcXHU3QTIwXFx1N0ExRlxcdTc5ODBcXHU3QTMxXFx1N0EzQlxcdTdBM0VcXHU3QTM3XFx1N0E0M1xcdTdBNTdcXHU3QTQ5XFx1N0E2MVxcdTdBNjJcXHU3QTY5XFx1OUY5RFxcdTdBNzBcXHU3QTc5XFx1N0E3RFxcdTdBODhcXHU3QTk3XFx1N0E5NVxcdTdBOThcXHU3QTk2XFx1N0FBOVxcdTdBQzhcXHU3QUIwXCJdLFxuICAgICAgW1wiZTI4MFwiLCBcIlxcdTdBQjZcXHU3QUM1XFx1N0FDNFxcdTdBQkZcXHU5MDgzXFx1N0FDN1xcdTdBQ0FcXHU3QUNEXFx1N0FDRlxcdTdBRDVcXHU3QUQzXFx1N0FEOVxcdTdBREFcXHU3QUREXFx1N0FFMVxcdTdBRTJcXHU3QUU2XFx1N0FFRFxcdTdBRjBcXHU3QjAyXFx1N0IwRlxcdTdCMEFcXHU3QjA2XFx1N0IzM1xcdTdCMThcXHU3QjE5XFx1N0IxRVxcdTdCMzVcXHU3QjI4XFx1N0IzNlxcdTdCNTBcXHU3QjdBXFx1N0IwNFxcdTdCNERcXHU3QjBCXFx1N0I0Q1xcdTdCNDVcXHU3Qjc1XFx1N0I2NVxcdTdCNzRcXHU3QjY3XFx1N0I3MFxcdTdCNzFcXHU3QjZDXFx1N0I2RVxcdTdCOURcXHU3Qjk4XFx1N0I5RlxcdTdCOERcXHU3QjlDXFx1N0I5QVxcdTdCOEJcXHU3QjkyXFx1N0I4RlxcdTdCNURcXHU3Qjk5XFx1N0JDQlxcdTdCQzFcXHU3QkNDXFx1N0JDRlxcdTdCQjRcXHU3QkM2XFx1N0JERFxcdTdCRTlcXHU3QzExXFx1N0MxNFxcdTdCRTZcXHU3QkU1XFx1N0M2MFxcdTdDMDBcXHU3QzA3XFx1N0MxM1xcdTdCRjNcXHU3QkY3XFx1N0MxN1xcdTdDMERcXHU3QkY2XFx1N0MyM1xcdTdDMjdcXHU3QzJBXFx1N0MxRlxcdTdDMzdcXHU3QzJCXFx1N0MzRFxcdTdDNENcXHU3QzQzXFx1N0M1NFxcdTdDNEZcXHU3QzQwXFx1N0M1MFxcdTdDNThcXHU3QzVGXFx1N0M2NFxcdTdDNTZcXHU3QzY1XFx1N0M2Q1xcdTdDNzVcXHU3QzgzXFx1N0M5MFxcdTdDQTRcXHU3Q0FEXFx1N0NBMlxcdTdDQUJcXHU3Q0ExXFx1N0NBOFxcdTdDQjNcXHU3Q0IyXFx1N0NCMVxcdTdDQUVcXHU3Q0I5XFx1N0NCRFxcdTdDQzBcXHU3Q0M1XFx1N0NDMlxcdTdDRDhcXHU3Q0QyXFx1N0NEQ1xcdTdDRTJcXHU5QjNCXFx1N0NFRlxcdTdDRjJcXHU3Q0Y0XFx1N0NGNlxcdTdDRkFcXHU3RDA2XCJdLFxuICAgICAgW1wiZTM0MFwiLCBcIlxcdTdEMDJcXHU3RDFDXFx1N0QxNVxcdTdEMEFcXHU3RDQ1XFx1N0Q0QlxcdTdEMkVcXHU3RDMyXFx1N0QzRlxcdTdEMzVcXHU3RDQ2XFx1N0Q3M1xcdTdENTZcXHU3RDRFXFx1N0Q3MlxcdTdENjhcXHU3RDZFXFx1N0Q0RlxcdTdENjNcXHU3RDkzXFx1N0Q4OVxcdTdENUJcXHU3RDhGXFx1N0Q3RFxcdTdEOUJcXHU3REJBXFx1N0RBRVxcdTdEQTNcXHU3REI1XFx1N0RDN1xcdTdEQkRcXHU3REFCXFx1N0UzRFxcdTdEQTJcXHU3REFGXFx1N0REQ1xcdTdEQjhcXHU3RDlGXFx1N0RCMFxcdTdERDhcXHU3REREXFx1N0RFNFxcdTdEREVcXHU3REZCXFx1N0RGMlxcdTdERTFcXHU3RTA1XFx1N0UwQVxcdTdFMjNcXHU3RTIxXFx1N0UxMlxcdTdFMzFcXHU3RTFGXFx1N0UwOVxcdTdFMEJcXHU3RTIyXFx1N0U0NlxcdTdFNjZcXHU3RTNCXFx1N0UzNVxcdTdFMzlcXHU3RTQzXFx1N0UzN1wiXSxcbiAgICAgIFtcImUzODBcIiwgXCJcXHU3RTMyXFx1N0UzQVxcdTdFNjdcXHU3RTVEXFx1N0U1NlxcdTdFNUVcXHU3RTU5XFx1N0U1QVxcdTdFNzlcXHU3RTZBXFx1N0U2OVxcdTdFN0NcXHU3RTdCXFx1N0U4M1xcdTdERDVcXHU3RTdEXFx1OEZBRVxcdTdFN0ZcXHU3RTg4XFx1N0U4OVxcdTdFOENcXHU3RTkyXFx1N0U5MFxcdTdFOTNcXHU3RTk0XFx1N0U5NlxcdTdFOEVcXHU3RTlCXFx1N0U5Q1xcdTdGMzhcXHU3RjNBXFx1N0Y0NVxcdTdGNENcXHU3RjREXFx1N0Y0RVxcdTdGNTBcXHU3RjUxXFx1N0Y1NVxcdTdGNTRcXHU3RjU4XFx1N0Y1RlxcdTdGNjBcXHU3RjY4XFx1N0Y2OVxcdTdGNjdcXHU3Rjc4XFx1N0Y4MlxcdTdGODZcXHU3RjgzXFx1N0Y4OFxcdTdGODdcXHU3RjhDXFx1N0Y5NFxcdTdGOUVcXHU3RjlEXFx1N0Y5QVxcdTdGQTNcXHU3RkFGXFx1N0ZCMlxcdTdGQjlcXHU3RkFFXFx1N0ZCNlxcdTdGQjhcXHU4QjcxXFx1N0ZDNVxcdTdGQzZcXHU3RkNBXFx1N0ZENVxcdTdGRDRcXHU3RkUxXFx1N0ZFNlxcdTdGRTlcXHU3RkYzXFx1N0ZGOVxcdTk4RENcXHU4MDA2XFx1ODAwNFxcdTgwMEJcXHU4MDEyXFx1ODAxOFxcdTgwMTlcXHU4MDFDXFx1ODAyMVxcdTgwMjhcXHU4MDNGXFx1ODAzQlxcdTgwNEFcXHU4MDQ2XFx1ODA1MlxcdTgwNThcXHU4MDVBXFx1ODA1RlxcdTgwNjJcXHU4MDY4XFx1ODA3M1xcdTgwNzJcXHU4MDcwXFx1ODA3NlxcdTgwNzlcXHU4MDdEXFx1ODA3RlxcdTgwODRcXHU4MDg2XFx1ODA4NVxcdTgwOUJcXHU4MDkzXFx1ODA5QVxcdTgwQURcXHU1MTkwXFx1ODBBQ1xcdTgwREJcXHU4MEU1XFx1ODBEOVxcdTgwRERcXHU4MEM0XFx1ODBEQVxcdTgwRDZcXHU4MTA5XFx1ODBFRlxcdTgwRjFcXHU4MTFCXFx1ODEyOVxcdTgxMjNcXHU4MTJGXFx1ODE0QlwiXSxcbiAgICAgIFtcImU0NDBcIiwgXCJcXHU5NjhCXFx1ODE0NlxcdTgxM0VcXHU4MTUzXFx1ODE1MVxcdTgwRkNcXHU4MTcxXFx1ODE2RVxcdTgxNjVcXHU4MTY2XFx1ODE3NFxcdTgxODNcXHU4MTg4XFx1ODE4QVxcdTgxODBcXHU4MTgyXFx1ODFBMFxcdTgxOTVcXHU4MUE0XFx1ODFBM1xcdTgxNUZcXHU4MTkzXFx1ODFBOVxcdTgxQjBcXHU4MUI1XFx1ODFCRVxcdTgxQjhcXHU4MUJEXFx1ODFDMFxcdTgxQzJcXHU4MUJBXFx1ODFDOVxcdTgxQ0RcXHU4MUQxXFx1ODFEOVxcdTgxRDhcXHU4MUM4XFx1ODFEQVxcdTgxREZcXHU4MUUwXFx1ODFFN1xcdTgxRkFcXHU4MUZCXFx1ODFGRVxcdTgyMDFcXHU4MjAyXFx1ODIwNVxcdTgyMDdcXHU4MjBBXFx1ODIwRFxcdTgyMTBcXHU4MjE2XFx1ODIyOVxcdTgyMkJcXHU4MjM4XFx1ODIzM1xcdTgyNDBcXHU4MjU5XFx1ODI1OFxcdTgyNURcXHU4MjVBXFx1ODI1RlxcdTgyNjRcIl0sXG4gICAgICBbXCJlNDgwXCIsIFwiXFx1ODI2MlxcdTgyNjhcXHU4MjZBXFx1ODI2QlxcdTgyMkVcXHU4MjcxXFx1ODI3N1xcdTgyNzhcXHU4MjdFXFx1ODI4RFxcdTgyOTJcXHU4MkFCXFx1ODI5RlxcdTgyQkJcXHU4MkFDXFx1ODJFMVxcdTgyRTNcXHU4MkRGXFx1ODJEMlxcdTgyRjRcXHU4MkYzXFx1ODJGQVxcdTgzOTNcXHU4MzAzXFx1ODJGQlxcdTgyRjlcXHU4MkRFXFx1ODMwNlxcdTgyRENcXHU4MzA5XFx1ODJEOVxcdTgzMzVcXHU4MzM0XFx1ODMxNlxcdTgzMzJcXHU4MzMxXFx1ODM0MFxcdTgzMzlcXHU4MzUwXFx1ODM0NVxcdTgzMkZcXHU4MzJCXFx1ODMxN1xcdTgzMThcXHU4Mzg1XFx1ODM5QVxcdTgzQUFcXHU4MzlGXFx1ODNBMlxcdTgzOTZcXHU4MzIzXFx1ODM4RVxcdTgzODdcXHU4MzhBXFx1ODM3Q1xcdTgzQjVcXHU4MzczXFx1ODM3NVxcdTgzQTBcXHU4Mzg5XFx1ODNBOFxcdTgzRjRcXHU4NDEzXFx1ODNFQlxcdTgzQ0VcXHU4M0ZEXFx1ODQwM1xcdTgzRDhcXHU4NDBCXFx1ODNDMVxcdTgzRjdcXHU4NDA3XFx1ODNFMFxcdTgzRjJcXHU4NDBEXFx1ODQyMlxcdTg0MjBcXHU4M0JEXFx1ODQzOFxcdTg1MDZcXHU4M0ZCXFx1ODQ2RFxcdTg0MkFcXHU4NDNDXFx1ODU1QVxcdTg0ODRcXHU4NDc3XFx1ODQ2QlxcdTg0QURcXHU4NDZFXFx1ODQ4MlxcdTg0NjlcXHU4NDQ2XFx1ODQyQ1xcdTg0NkZcXHU4NDc5XFx1ODQzNVxcdTg0Q0FcXHU4NDYyXFx1ODRCOVxcdTg0QkZcXHU4NDlGXFx1ODREOVxcdTg0Q0RcXHU4NEJCXFx1ODREQVxcdTg0RDBcXHU4NEMxXFx1ODRDNlxcdTg0RDZcXHU4NEExXFx1ODUyMVxcdTg0RkZcXHU4NEY0XFx1ODUxN1xcdTg1MThcXHU4NTJDXFx1ODUxRlxcdTg1MTVcXHU4NTE0XFx1ODRGQ1xcdTg1NDBcXHU4NTYzXFx1ODU1OFxcdTg1NDhcIl0sXG4gICAgICBbXCJlNTQwXCIsIFwiXFx1ODU0MVxcdTg2MDJcXHU4NTRCXFx1ODU1NVxcdTg1ODBcXHU4NUE0XFx1ODU4OFxcdTg1OTFcXHU4NThBXFx1ODVBOFxcdTg1NkRcXHU4NTk0XFx1ODU5QlxcdTg1RUFcXHU4NTg3XFx1ODU5Q1xcdTg1NzdcXHU4NTdFXFx1ODU5MFxcdTg1QzlcXHU4NUJBXFx1ODVDRlxcdTg1QjlcXHU4NUQwXFx1ODVENVxcdTg1RERcXHU4NUU1XFx1ODVEQ1xcdTg1RjlcXHU4NjBBXFx1ODYxM1xcdTg2MEJcXHU4NUZFXFx1ODVGQVxcdTg2MDZcXHU4NjIyXFx1ODYxQVxcdTg2MzBcXHU4NjNGXFx1ODY0RFxcdTRFNTVcXHU4NjU0XFx1ODY1RlxcdTg2NjdcXHU4NjcxXFx1ODY5M1xcdTg2QTNcXHU4NkE5XFx1ODZBQVxcdTg2OEJcXHU4NjhDXFx1ODZCNlxcdTg2QUZcXHU4NkM0XFx1ODZDNlxcdTg2QjBcXHU4NkM5XFx1ODgyM1xcdTg2QUJcXHU4NkQ0XFx1ODZERVxcdTg2RTlcXHU4NkVDXCJdLFxuICAgICAgW1wiZTU4MFwiLCBcIlxcdTg2REZcXHU4NkRCXFx1ODZFRlxcdTg3MTJcXHU4NzA2XFx1ODcwOFxcdTg3MDBcXHU4NzAzXFx1ODZGQlxcdTg3MTFcXHU4NzA5XFx1ODcwRFxcdTg2RjlcXHU4NzBBXFx1ODczNFxcdTg3M0ZcXHU4NzM3XFx1ODczQlxcdTg3MjVcXHU4NzI5XFx1ODcxQVxcdTg3NjBcXHU4NzVGXFx1ODc3OFxcdTg3NENcXHU4NzRFXFx1ODc3NFxcdTg3NTdcXHU4NzY4XFx1ODc2RVxcdTg3NTlcXHU4NzUzXFx1ODc2M1xcdTg3NkFcXHU4ODA1XFx1ODdBMlxcdTg3OUZcXHU4NzgyXFx1ODdBRlxcdTg3Q0JcXHU4N0JEXFx1ODdDMFxcdTg3RDBcXHU5NkQ2XFx1ODdBQlxcdTg3QzRcXHU4N0IzXFx1ODdDN1xcdTg3QzZcXHU4N0JCXFx1ODdFRlxcdTg3RjJcXHU4N0UwXFx1ODgwRlxcdTg4MERcXHU4N0ZFXFx1ODdGNlxcdTg3RjdcXHU4ODBFXFx1ODdEMlxcdTg4MTFcXHU4ODE2XFx1ODgxNVxcdTg4MjJcXHU4ODIxXFx1ODgzMVxcdTg4MzZcXHU4ODM5XFx1ODgyN1xcdTg4M0JcXHU4ODQ0XFx1ODg0MlxcdTg4NTJcXHU4ODU5XFx1ODg1RVxcdTg4NjJcXHU4ODZCXFx1ODg4MVxcdTg4N0VcXHU4ODlFXFx1ODg3NVxcdTg4N0RcXHU4OEI1XFx1ODg3MlxcdTg4ODJcXHU4ODk3XFx1ODg5MlxcdTg4QUVcXHU4ODk5XFx1ODhBMlxcdTg4OERcXHU4OEE0XFx1ODhCMFxcdTg4QkZcXHU4OEIxXFx1ODhDM1xcdTg4QzRcXHU4OEQ0XFx1ODhEOFxcdTg4RDlcXHU4OEREXFx1ODhGOVxcdTg5MDJcXHU4OEZDXFx1ODhGNFxcdTg4RThcXHU4OEYyXFx1ODkwNFxcdTg5MENcXHU4OTBBXFx1ODkxM1xcdTg5NDNcXHU4OTFFXFx1ODkyNVxcdTg5MkFcXHU4OTJCXFx1ODk0MVxcdTg5NDRcXHU4OTNCXFx1ODkzNlxcdTg5MzhcXHU4OTRDXFx1ODkxRFxcdTg5NjBcXHU4OTVFXCJdLFxuICAgICAgW1wiZTY0MFwiLCBcIlxcdTg5NjZcXHU4OTY0XFx1ODk2RFxcdTg5NkFcXHU4OTZGXFx1ODk3NFxcdTg5NzdcXHU4OTdFXFx1ODk4M1xcdTg5ODhcXHU4OThBXFx1ODk5M1xcdTg5OThcXHU4OUExXFx1ODlBOVxcdTg5QTZcXHU4OUFDXFx1ODlBRlxcdTg5QjJcXHU4OUJBXFx1ODlCRFxcdTg5QkZcXHU4OUMwXFx1ODlEQVxcdTg5RENcXHU4OUREXFx1ODlFN1xcdTg5RjRcXHU4OUY4XFx1OEEwM1xcdThBMTZcXHU4QTEwXFx1OEEwQ1xcdThBMUJcXHU4QTFEXFx1OEEyNVxcdThBMzZcXHU4QTQxXFx1OEE1QlxcdThBNTJcXHU4QTQ2XFx1OEE0OFxcdThBN0NcXHU4QTZEXFx1OEE2Q1xcdThBNjJcXHU4QTg1XFx1OEE4MlxcdThBODRcXHU4QUE4XFx1OEFBMVxcdThBOTFcXHU4QUE1XFx1OEFBNlxcdThBOUFcXHU4QUEzXFx1OEFDNFxcdThBQ0RcXHU4QUMyXFx1OEFEQVxcdThBRUJcXHU4QUYzXFx1OEFFN1wiXSxcbiAgICAgIFtcImU2ODBcIiwgXCJcXHU4QUU0XFx1OEFGMVxcdThCMTRcXHU4QUUwXFx1OEFFMlxcdThBRjdcXHU4QURFXFx1OEFEQlxcdThCMENcXHU4QjA3XFx1OEIxQVxcdThBRTFcXHU4QjE2XFx1OEIxMFxcdThCMTdcXHU4QjIwXFx1OEIzM1xcdTk3QUJcXHU4QjI2XFx1OEIyQlxcdThCM0VcXHU4QjI4XFx1OEI0MVxcdThCNENcXHU4QjRGXFx1OEI0RVxcdThCNDlcXHU4QjU2XFx1OEI1QlxcdThCNUFcXHU4QjZCXFx1OEI1RlxcdThCNkNcXHU4QjZGXFx1OEI3NFxcdThCN0RcXHU4QjgwXFx1OEI4Q1xcdThCOEVcXHU4QjkyXFx1OEI5M1xcdThCOTZcXHU4Qjk5XFx1OEI5QVxcdThDM0FcXHU4QzQxXFx1OEMzRlxcdThDNDhcXHU4QzRDXFx1OEM0RVxcdThDNTBcXHU4QzU1XFx1OEM2MlxcdThDNkNcXHU4Qzc4XFx1OEM3QVxcdThDODJcXHU4Qzg5XFx1OEM4NVxcdThDOEFcXHU4QzhEXFx1OEM4RVxcdThDOTRcXHU4QzdDXFx1OEM5OFxcdTYyMURcXHU4Q0FEXFx1OENBQVxcdThDQkRcXHU4Q0IyXFx1OENCM1xcdThDQUVcXHU4Q0I2XFx1OENDOFxcdThDQzFcXHU4Q0U0XFx1OENFM1xcdThDREFcXHU4Q0ZEXFx1OENGQVxcdThDRkJcXHU4RDA0XFx1OEQwNVxcdThEMEFcXHU4RDA3XFx1OEQwRlxcdThEMERcXHU4RDEwXFx1OUY0RVxcdThEMTNcXHU4Q0NEXFx1OEQxNFxcdThEMTZcXHU4RDY3XFx1OEQ2RFxcdThENzFcXHU4RDczXFx1OEQ4MVxcdThEOTlcXHU4REMyXFx1OERCRVxcdThEQkFcXHU4RENGXFx1OEREQVxcdThERDZcXHU4RENDXFx1OEREQlxcdThEQ0JcXHU4REVBXFx1OERFQlxcdThEREZcXHU4REUzXFx1OERGQ1xcdThFMDhcXHU4RTA5XFx1OERGRlxcdThFMURcXHU4RTFFXFx1OEUxMFxcdThFMUZcXHU4RTQyXFx1OEUzNVxcdThFMzBcXHU4RTM0XFx1OEU0QVwiXSxcbiAgICAgIFtcImU3NDBcIiwgXCJcXHU4RTQ3XFx1OEU0OVxcdThFNENcXHU4RTUwXFx1OEU0OFxcdThFNTlcXHU4RTY0XFx1OEU2MFxcdThFMkFcXHU4RTYzXFx1OEU1NVxcdThFNzZcXHU4RTcyXFx1OEU3Q1xcdThFODFcXHU4RTg3XFx1OEU4NVxcdThFODRcXHU4RThCXFx1OEU4QVxcdThFOTNcXHU4RTkxXFx1OEU5NFxcdThFOTlcXHU4RUFBXFx1OEVBMVxcdThFQUNcXHU4RUIwXFx1OEVDNlxcdThFQjFcXHU4RUJFXFx1OEVDNVxcdThFQzhcXHU4RUNCXFx1OEVEQlxcdThFRTNcXHU4RUZDXFx1OEVGQlxcdThFRUJcXHU4RUZFXFx1OEYwQVxcdThGMDVcXHU4RjE1XFx1OEYxMlxcdThGMTlcXHU4RjEzXFx1OEYxQ1xcdThGMUZcXHU4RjFCXFx1OEYwQ1xcdThGMjZcXHU4RjMzXFx1OEYzQlxcdThGMzlcXHU4RjQ1XFx1OEY0MlxcdThGM0VcXHU4RjRDXFx1OEY0OVxcdThGNDZcXHU4RjRFXFx1OEY1N1xcdThGNUNcIl0sXG4gICAgICBbXCJlNzgwXCIsIFwiXFx1OEY2MlxcdThGNjNcXHU4RjY0XFx1OEY5Q1xcdThGOUZcXHU4RkEzXFx1OEZBRFxcdThGQUZcXHU4RkI3XFx1OEZEQVxcdThGRTVcXHU4RkUyXFx1OEZFQVxcdThGRUZcXHU5MDg3XFx1OEZGNFxcdTkwMDVcXHU4RkY5XFx1OEZGQVxcdTkwMTFcXHU5MDE1XFx1OTAyMVxcdTkwMERcXHU5MDFFXFx1OTAxNlxcdTkwMEJcXHU5MDI3XFx1OTAzNlxcdTkwMzVcXHU5MDM5XFx1OEZGOFxcdTkwNEZcXHU5MDUwXFx1OTA1MVxcdTkwNTJcXHU5MDBFXFx1OTA0OVxcdTkwM0VcXHU5MDU2XFx1OTA1OFxcdTkwNUVcXHU5MDY4XFx1OTA2RlxcdTkwNzZcXHU5NkE4XFx1OTA3MlxcdTkwODJcXHU5MDdEXFx1OTA4MVxcdTkwODBcXHU5MDhBXFx1OTA4OVxcdTkwOEZcXHU5MEE4XFx1OTBBRlxcdTkwQjFcXHU5MEI1XFx1OTBFMlxcdTkwRTRcXHU2MjQ4XFx1OTBEQlxcdTkxMDJcXHU5MTEyXFx1OTExOVxcdTkxMzJcXHU5MTMwXFx1OTE0QVxcdTkxNTZcXHU5MTU4XFx1OTE2M1xcdTkxNjVcXHU5MTY5XFx1OTE3M1xcdTkxNzJcXHU5MThCXFx1OTE4OVxcdTkxODJcXHU5MUEyXFx1OTFBQlxcdTkxQUZcXHU5MUFBXFx1OTFCNVxcdTkxQjRcXHU5MUJBXFx1OTFDMFxcdTkxQzFcXHU5MUM5XFx1OTFDQlxcdTkxRDBcXHU5MUQ2XFx1OTFERlxcdTkxRTFcXHU5MURCXFx1OTFGQ1xcdTkxRjVcXHU5MUY2XFx1OTIxRVxcdTkxRkZcXHU5MjE0XFx1OTIyQ1xcdTkyMTVcXHU5MjExXFx1OTI1RVxcdTkyNTdcXHU5MjQ1XFx1OTI0OVxcdTkyNjRcXHU5MjQ4XFx1OTI5NVxcdTkyM0ZcXHU5MjRCXFx1OTI1MFxcdTkyOUNcXHU5Mjk2XFx1OTI5M1xcdTkyOUJcXHU5MjVBXFx1OTJDRlxcdTkyQjlcXHU5MkI3XFx1OTJFOVxcdTkzMEZcXHU5MkZBXFx1OTM0NFxcdTkzMkVcIl0sXG4gICAgICBbXCJlODQwXCIsIFwiXFx1OTMxOVxcdTkzMjJcXHU5MzFBXFx1OTMyM1xcdTkzM0FcXHU5MzM1XFx1OTMzQlxcdTkzNUNcXHU5MzYwXFx1OTM3Q1xcdTkzNkVcXHU5MzU2XFx1OTNCMFxcdTkzQUNcXHU5M0FEXFx1OTM5NFxcdTkzQjlcXHU5M0Q2XFx1OTNEN1xcdTkzRThcXHU5M0U1XFx1OTNEOFxcdTkzQzNcXHU5M0REXFx1OTNEMFxcdTkzQzhcXHU5M0U0XFx1OTQxQVxcdTk0MTRcXHU5NDEzXFx1OTQwM1xcdTk0MDdcXHU5NDEwXFx1OTQzNlxcdTk0MkJcXHU5NDM1XFx1OTQyMVxcdTk0M0FcXHU5NDQxXFx1OTQ1MlxcdTk0NDRcXHU5NDVCXFx1OTQ2MFxcdTk0NjJcXHU5NDVFXFx1OTQ2QVxcdTkyMjlcXHU5NDcwXFx1OTQ3NVxcdTk0NzdcXHU5NDdEXFx1OTQ1QVxcdTk0N0NcXHU5NDdFXFx1OTQ4MVxcdTk0N0ZcXHU5NTgyXFx1OTU4N1xcdTk1OEFcXHU5NTk0XFx1OTU5NlxcdTk1OThcXHU5NTk5XCJdLFxuICAgICAgW1wiZTg4MFwiLCBcIlxcdTk1QTBcXHU5NUE4XFx1OTVBN1xcdTk1QURcXHU5NUJDXFx1OTVCQlxcdTk1QjlcXHU5NUJFXFx1OTVDQVxcdTZGRjZcXHU5NUMzXFx1OTVDRFxcdTk1Q0NcXHU5NUQ1XFx1OTVENFxcdTk1RDZcXHU5NURDXFx1OTVFMVxcdTk1RTVcXHU5NUUyXFx1OTYyMVxcdTk2MjhcXHU5NjJFXFx1OTYyRlxcdTk2NDJcXHU5NjRDXFx1OTY0RlxcdTk2NEJcXHU5Njc3XFx1OTY1Q1xcdTk2NUVcXHU5NjVEXFx1OTY1RlxcdTk2NjZcXHU5NjcyXFx1OTY2Q1xcdTk2OERcXHU5Njk4XFx1OTY5NVxcdTk2OTdcXHU5NkFBXFx1OTZBN1xcdTk2QjFcXHU5NkIyXFx1OTZCMFxcdTk2QjRcXHU5NkI2XFx1OTZCOFxcdTk2QjlcXHU5NkNFXFx1OTZDQlxcdTk2QzlcXHU5NkNEXFx1ODk0RFxcdTk2RENcXHU5NzBEXFx1OTZENVxcdTk2RjlcXHU5NzA0XFx1OTcwNlxcdTk3MDhcXHU5NzEzXFx1OTcwRVxcdTk3MTFcXHU5NzBGXFx1OTcxNlxcdTk3MTlcXHU5NzI0XFx1OTcyQVxcdTk3MzBcXHU5NzM5XFx1OTczRFxcdTk3M0VcXHU5NzQ0XFx1OTc0NlxcdTk3NDhcXHU5NzQyXFx1OTc0OVxcdTk3NUNcXHU5NzYwXFx1OTc2NFxcdTk3NjZcXHU5NzY4XFx1NTJEMlxcdTk3NkJcXHU5NzcxXFx1OTc3OVxcdTk3ODVcXHU5NzdDXFx1OTc4MVxcdTk3N0FcXHU5Nzg2XFx1OTc4QlxcdTk3OEZcXHU5NzkwXFx1OTc5Q1xcdTk3QThcXHU5N0E2XFx1OTdBM1xcdTk3QjNcXHU5N0I0XFx1OTdDM1xcdTk3QzZcXHU5N0M4XFx1OTdDQlxcdTk3RENcXHU5N0VEXFx1OUY0RlxcdTk3RjJcXHU3QURGXFx1OTdGNlxcdTk3RjVcXHU5ODBGXFx1OTgwQ1xcdTk4MzhcXHU5ODI0XFx1OTgyMVxcdTk4MzdcXHU5ODNEXFx1OTg0NlxcdTk4NEZcXHU5ODRCXFx1OTg2QlxcdTk4NkZcXHU5ODcwXCJdLFxuICAgICAgW1wiZTk0MFwiLCBcIlxcdTk4NzFcXHU5ODc0XFx1OTg3M1xcdTk4QUFcXHU5OEFGXFx1OThCMVxcdTk4QjZcXHU5OEM0XFx1OThDM1xcdTk4QzZcXHU5OEU5XFx1OThFQlxcdTk5MDNcXHU5OTA5XFx1OTkxMlxcdTk5MTRcXHU5OTE4XFx1OTkyMVxcdTk5MURcXHU5OTFFXFx1OTkyNFxcdTk5MjBcXHU5OTJDXFx1OTkyRVxcdTk5M0RcXHU5OTNFXFx1OTk0MlxcdTk5NDlcXHU5OTQ1XFx1OTk1MFxcdTk5NEJcXHU5OTUxXFx1OTk1MlxcdTk5NENcXHU5OTU1XFx1OTk5N1xcdTk5OThcXHU5OUE1XFx1OTlBRFxcdTk5QUVcXHU5OUJDXFx1OTlERlxcdTk5REJcXHU5OUREXFx1OTlEOFxcdTk5RDFcXHU5OUVEXFx1OTlFRVxcdTk5RjFcXHU5OUYyXFx1OTlGQlxcdTk5RjhcXHU5QTAxXFx1OUEwRlxcdTlBMDVcXHU5OUUyXFx1OUExOVxcdTlBMkJcXHU5QTM3XFx1OUE0NVxcdTlBNDJcXHU5QTQwXFx1OUE0M1wiXSxcbiAgICAgIFtcImU5ODBcIiwgXCJcXHU5QTNFXFx1OUE1NVxcdTlBNERcXHU5QTVCXFx1OUE1N1xcdTlBNUZcXHU5QTYyXFx1OUE2NVxcdTlBNjRcXHU5QTY5XFx1OUE2QlxcdTlBNkFcXHU5QUFEXFx1OUFCMFxcdTlBQkNcXHU5QUMwXFx1OUFDRlxcdTlBRDFcXHU5QUQzXFx1OUFENFxcdTlBREVcXHU5QURGXFx1OUFFMlxcdTlBRTNcXHU5QUU2XFx1OUFFRlxcdTlBRUJcXHU5QUVFXFx1OUFGNFxcdTlBRjFcXHU5QUY3XFx1OUFGQlxcdTlCMDZcXHU5QjE4XFx1OUIxQVxcdTlCMUZcXHU5QjIyXFx1OUIyM1xcdTlCMjVcXHU5QjI3XFx1OUIyOFxcdTlCMjlcXHU5QjJBXFx1OUIyRVxcdTlCMkZcXHU5QjMyXFx1OUI0NFxcdTlCNDNcXHU5QjRGXFx1OUI0RFxcdTlCNEVcXHU5QjUxXFx1OUI1OFxcdTlCNzRcXHU5QjkzXFx1OUI4M1xcdTlCOTFcXHU5Qjk2XFx1OUI5N1xcdTlCOUZcXHU5QkEwXFx1OUJBOFxcdTlCQjRcXHU5QkMwXFx1OUJDQVxcdTlCQjlcXHU5QkM2XFx1OUJDRlxcdTlCRDFcXHU5QkQyXFx1OUJFM1xcdTlCRTJcXHU5QkU0XFx1OUJENFxcdTlCRTFcXHU5QzNBXFx1OUJGMlxcdTlCRjFcXHU5QkYwXFx1OUMxNVxcdTlDMTRcXHU5QzA5XFx1OUMxM1xcdTlDMENcXHU5QzA2XFx1OUMwOFxcdTlDMTJcXHU5QzBBXFx1OUMwNFxcdTlDMkVcXHU5QzFCXFx1OUMyNVxcdTlDMjRcXHU5QzIxXFx1OUMzMFxcdTlDNDdcXHU5QzMyXFx1OUM0NlxcdTlDM0VcXHU5QzVBXFx1OUM2MFxcdTlDNjdcXHU5Qzc2XFx1OUM3OFxcdTlDRTdcXHU5Q0VDXFx1OUNGMFxcdTlEMDlcXHU5RDA4XFx1OUNFQlxcdTlEMDNcXHU5RDA2XFx1OUQyQVxcdTlEMjZcXHU5REFGXFx1OUQyM1xcdTlEMUZcXHU5RDQ0XFx1OUQxNVxcdTlEMTJcXHU5RDQxXFx1OUQzRlxcdTlEM0VcXHU5RDQ2XFx1OUQ0OFwiXSxcbiAgICAgIFtcImVhNDBcIiwgXCJcXHU5RDVEXFx1OUQ1RVxcdTlENjRcXHU5RDUxXFx1OUQ1MFxcdTlENTlcXHU5RDcyXFx1OUQ4OVxcdTlEODdcXHU5REFCXFx1OUQ2RlxcdTlEN0FcXHU5RDlBXFx1OURBNFxcdTlEQTlcXHU5REIyXFx1OURDNFxcdTlEQzFcXHU5REJCXFx1OURCOFxcdTlEQkFcXHU5REM2XFx1OURDRlxcdTlEQzJcXHU5REQ5XFx1OUREM1xcdTlERjhcXHU5REU2XFx1OURFRFxcdTlERUZcXHU5REZEXFx1OUUxQVxcdTlFMUJcXHU5RTFFXFx1OUU3NVxcdTlFNzlcXHU5RTdEXFx1OUU4MVxcdTlFODhcXHU5RThCXFx1OUU4Q1xcdTlFOTJcXHU5RTk1XFx1OUU5MVxcdTlFOURcXHU5RUE1XFx1OUVBOVxcdTlFQjhcXHU5RUFBXFx1OUVBRFxcdTk3NjFcXHU5RUNDXFx1OUVDRVxcdTlFQ0ZcXHU5RUQwXFx1OUVENFxcdTlFRENcXHU5RURFXFx1OUVERFxcdTlFRTBcXHU5RUU1XFx1OUVFOFxcdTlFRUZcIl0sXG4gICAgICBbXCJlYTgwXCIsIFwiXFx1OUVGNFxcdTlFRjZcXHU5RUY3XFx1OUVGOVxcdTlFRkJcXHU5RUZDXFx1OUVGRFxcdTlGMDdcXHU5RjA4XFx1NzZCN1xcdTlGMTVcXHU5RjIxXFx1OUYyQ1xcdTlGM0VcXHU5RjRBXFx1OUY1MlxcdTlGNTRcXHU5RjYzXFx1OUY1RlxcdTlGNjBcXHU5RjYxXFx1OUY2NlxcdTlGNjdcXHU5RjZDXFx1OUY2QVxcdTlGNzdcXHU5RjcyXFx1OUY3NlxcdTlGOTVcXHU5RjlDXFx1OUZBMFxcdTU4MkZcXHU2OUM3XFx1OTA1OVxcdTc0NjRcXHU1MURDXFx1NzE5OVwiXSxcbiAgICAgIFtcImVkNDBcIiwgXCJcXHU3RThBXFx1ODkxQ1xcdTkzNDhcXHU5Mjg4XFx1ODREQ1xcdTRGQzlcXHU3MEJCXFx1NjYzMVxcdTY4QzhcXHU5MkY5XFx1NjZGQlxcdTVGNDVcXHU0RTI4XFx1NEVFMVxcdTRFRkNcXHU0RjAwXFx1NEYwM1xcdTRGMzlcXHU0RjU2XFx1NEY5MlxcdTRGOEFcXHU0RjlBXFx1NEY5NFxcdTRGQ0RcXHU1MDQwXFx1NTAyMlxcdTRGRkZcXHU1MDFFXFx1NTA0NlxcdTUwNzBcXHU1MDQyXFx1NTA5NFxcdTUwRjRcXHU1MEQ4XFx1NTE0QVxcdTUxNjRcXHU1MTlEXFx1NTFCRVxcdTUxRUNcXHU1MjE1XFx1NTI5Q1xcdTUyQTZcXHU1MkMwXFx1NTJEQlxcdTUzMDBcXHU1MzA3XFx1NTMyNFxcdTUzNzJcXHU1MzkzXFx1NTNCMlxcdTUzRERcXHVGQTBFXFx1NTQ5Q1xcdTU0OEFcXHU1NEE5XFx1NTRGRlxcdTU1ODZcXHU1NzU5XFx1NTc2NVxcdTU3QUNcXHU1N0M4XFx1NTdDN1xcdUZBMEZcIl0sXG4gICAgICBbXCJlZDgwXCIsIFwiXFx1RkExMFxcdTU4OUVcXHU1OEIyXFx1NTkwQlxcdTU5NTNcXHU1OTVCXFx1NTk1RFxcdTU5NjNcXHU1OUE0XFx1NTlCQVxcdTVCNTZcXHU1QkMwXFx1NzUyRlxcdTVCRDhcXHU1QkVDXFx1NUMxRVxcdTVDQTZcXHU1Q0JBXFx1NUNGNVxcdTVEMjdcXHU1RDUzXFx1RkExMVxcdTVENDJcXHU1RDZEXFx1NURCOFxcdTVEQjlcXHU1REQwXFx1NUYyMVxcdTVGMzRcXHU1RjY3XFx1NUZCN1xcdTVGREVcXHU2MDVEXFx1NjA4NVxcdTYwOEFcXHU2MERFXFx1NjBENVxcdTYxMjBcXHU2MEYyXFx1NjExMVxcdTYxMzdcXHU2MTMwXFx1NjE5OFxcdTYyMTNcXHU2MkE2XFx1NjNGNVxcdTY0NjBcXHU2NDlEXFx1NjRDRVxcdTY1NEVcXHU2NjAwXFx1NjYxNVxcdTY2M0JcXHU2NjA5XFx1NjYyRVxcdTY2MUVcXHU2NjI0XFx1NjY2NVxcdTY2NTdcXHU2NjU5XFx1RkExMlxcdTY2NzNcXHU2Njk5XFx1NjZBMFxcdTY2QjJcXHU2NkJGXFx1NjZGQVxcdTY3MEVcXHVGOTI5XFx1Njc2NlxcdTY3QkJcXHU2ODUyXFx1NjdDMFxcdTY4MDFcXHU2ODQ0XFx1NjhDRlxcdUZBMTNcXHU2OTY4XFx1RkExNFxcdTY5OThcXHU2OUUyXFx1NkEzMFxcdTZBNkJcXHU2QTQ2XFx1NkE3M1xcdTZBN0VcXHU2QUUyXFx1NkFFNFxcdTZCRDZcXHU2QzNGXFx1NkM1Q1xcdTZDODZcXHU2QzZGXFx1NkNEQVxcdTZEMDRcXHU2RDg3XFx1NkQ2RlxcdTZEOTZcXHU2REFDXFx1NkRDRlxcdTZERjhcXHU2REYyXFx1NkRGQ1xcdTZFMzlcXHU2RTVDXFx1NkUyN1xcdTZFM0NcXHU2RUJGXFx1NkY4OFxcdTZGQjVcXHU2RkY1XFx1NzAwNVxcdTcwMDdcXHU3MDI4XFx1NzA4NVxcdTcwQUJcXHU3MTBGXFx1NzEwNFxcdTcxNUNcXHU3MTQ2XFx1NzE0N1xcdUZBMTVcXHU3MUMxXFx1NzFGRVxcdTcyQjFcIl0sXG4gICAgICBbXCJlZTQwXCIsIFwiXFx1NzJCRVxcdTczMjRcXHVGQTE2XFx1NzM3N1xcdTczQkRcXHU3M0M5XFx1NzNENlxcdTczRTNcXHU3M0QyXFx1NzQwN1xcdTczRjVcXHU3NDI2XFx1NzQyQVxcdTc0MjlcXHU3NDJFXFx1NzQ2MlxcdTc0ODlcXHU3NDlGXFx1NzUwMVxcdTc1NkZcXHU3NjgyXFx1NzY5Q1xcdTc2OUVcXHU3NjlCXFx1NzZBNlxcdUZBMTdcXHU3NzQ2XFx1NTJBRlxcdTc4MjFcXHU3ODRFXFx1Nzg2NFxcdTc4N0FcXHU3OTMwXFx1RkExOFxcdUZBMTlcXHVGQTFBXFx1Nzk5NFxcdUZBMUJcXHU3OTlCXFx1N0FEMVxcdTdBRTdcXHVGQTFDXFx1N0FFQlxcdTdCOUVcXHVGQTFEXFx1N0Q0OFxcdTdENUNcXHU3REI3XFx1N0RBMFxcdTdERDZcXHU3RTUyXFx1N0Y0N1xcdTdGQTFcXHVGQTFFXFx1ODMwMVxcdTgzNjJcXHU4MzdGXFx1ODNDN1xcdTgzRjZcXHU4NDQ4XFx1ODRCNFxcdTg1NTNcXHU4NTU5XCJdLFxuICAgICAgW1wiZWU4MFwiLCBcIlxcdTg1NkJcXHVGQTFGXFx1ODVCMFxcdUZBMjBcXHVGQTIxXFx1ODgwN1xcdTg4RjVcXHU4QTEyXFx1OEEzN1xcdThBNzlcXHU4QUE3XFx1OEFCRVxcdThBREZcXHVGQTIyXFx1OEFGNlxcdThCNTNcXHU4QjdGXFx1OENGMFxcdThDRjRcXHU4RDEyXFx1OEQ3NlxcdUZBMjNcXHU4RUNGXFx1RkEyNFxcdUZBMjVcXHU5MDY3XFx1OTBERVxcdUZBMjZcXHU5MTE1XFx1OTEyN1xcdTkxREFcXHU5MUQ3XFx1OTFERVxcdTkxRURcXHU5MUVFXFx1OTFFNFxcdTkxRTVcXHU5MjA2XFx1OTIxMFxcdTkyMEFcXHU5MjNBXFx1OTI0MFxcdTkyM0NcXHU5MjRFXFx1OTI1OVxcdTkyNTFcXHU5MjM5XFx1OTI2N1xcdTkyQTdcXHU5Mjc3XFx1OTI3OFxcdTkyRTdcXHU5MkQ3XFx1OTJEOVxcdTkyRDBcXHVGQTI3XFx1OTJENVxcdTkyRTBcXHU5MkQzXFx1OTMyNVxcdTkzMjFcXHU5MkZCXFx1RkEyOFxcdTkzMUVcXHU5MkZGXFx1OTMxRFxcdTkzMDJcXHU5MzcwXFx1OTM1N1xcdTkzQTRcXHU5M0M2XFx1OTNERVxcdTkzRjhcXHU5NDMxXFx1OTQ0NVxcdTk0NDhcXHU5NTkyXFx1RjlEQ1xcdUZBMjlcXHU5NjlEXFx1OTZBRlxcdTk3MzNcXHU5NzNCXFx1OTc0M1xcdTk3NERcXHU5NzRGXFx1OTc1MVxcdTk3NTVcXHU5ODU3XFx1OTg2NVxcdUZBMkFcXHVGQTJCXFx1OTkyN1xcdUZBMkNcXHU5OTlFXFx1OUE0RVxcdTlBRDlcXHU5QURDXFx1OUI3NVxcdTlCNzJcXHU5QjhGXFx1OUJCMVxcdTlCQkJcXHU5QzAwXFx1OUQ3MFxcdTlENkJcXHVGQTJEXFx1OUUxOVxcdTlFRDFcIl0sXG4gICAgICBbXCJlZWVmXCIsIFwiXFx1MjE3MFwiLCA5LCBcIlxcdUZGRTJcXHVGRkU0XFx1RkYwN1xcdUZGMDJcIl0sXG4gICAgICBbXCJmMDQwXCIsIFwiXFx1RTAwMFwiLCA2Ml0sXG4gICAgICBbXCJmMDgwXCIsIFwiXFx1RTAzRlwiLCAxMjRdLFxuICAgICAgW1wiZjE0MFwiLCBcIlxcdUUwQkNcIiwgNjJdLFxuICAgICAgW1wiZjE4MFwiLCBcIlxcdUUwRkJcIiwgMTI0XSxcbiAgICAgIFtcImYyNDBcIiwgXCJcXHVFMTc4XCIsIDYyXSxcbiAgICAgIFtcImYyODBcIiwgXCJcXHVFMUI3XCIsIDEyNF0sXG4gICAgICBbXCJmMzQwXCIsIFwiXFx1RTIzNFwiLCA2Ml0sXG4gICAgICBbXCJmMzgwXCIsIFwiXFx1RTI3M1wiLCAxMjRdLFxuICAgICAgW1wiZjQ0MFwiLCBcIlxcdUUyRjBcIiwgNjJdLFxuICAgICAgW1wiZjQ4MFwiLCBcIlxcdUUzMkZcIiwgMTI0XSxcbiAgICAgIFtcImY1NDBcIiwgXCJcXHVFM0FDXCIsIDYyXSxcbiAgICAgIFtcImY1ODBcIiwgXCJcXHVFM0VCXCIsIDEyNF0sXG4gICAgICBbXCJmNjQwXCIsIFwiXFx1RTQ2OFwiLCA2Ml0sXG4gICAgICBbXCJmNjgwXCIsIFwiXFx1RTRBN1wiLCAxMjRdLFxuICAgICAgW1wiZjc0MFwiLCBcIlxcdUU1MjRcIiwgNjJdLFxuICAgICAgW1wiZjc4MFwiLCBcIlxcdUU1NjNcIiwgMTI0XSxcbiAgICAgIFtcImY4NDBcIiwgXCJcXHVFNUUwXCIsIDYyXSxcbiAgICAgIFtcImY4ODBcIiwgXCJcXHVFNjFGXCIsIDEyNF0sXG4gICAgICBbXCJmOTQwXCIsIFwiXFx1RTY5Q1wiXSxcbiAgICAgIFtcImZhNDBcIiwgXCJcXHUyMTcwXCIsIDksIFwiXFx1MjE2MFwiLCA5LCBcIlxcdUZGRTJcXHVGRkU0XFx1RkYwN1xcdUZGMDJcXHUzMjMxXFx1MjExNlxcdTIxMjFcXHUyMjM1XFx1N0U4QVxcdTg5MUNcXHU5MzQ4XFx1OTI4OFxcdTg0RENcXHU0RkM5XFx1NzBCQlxcdTY2MzFcXHU2OEM4XFx1OTJGOVxcdTY2RkJcXHU1RjQ1XFx1NEUyOFxcdTRFRTFcXHU0RUZDXFx1NEYwMFxcdTRGMDNcXHU0RjM5XFx1NEY1NlxcdTRGOTJcXHU0RjhBXFx1NEY5QVxcdTRGOTRcXHU0RkNEXFx1NTA0MFxcdTUwMjJcXHU0RkZGXFx1NTAxRVxcdTUwNDZcXHU1MDcwXFx1NTA0MlxcdTUwOTRcXHU1MEY0XFx1NTBEOFxcdTUxNEFcIl0sXG4gICAgICBbXCJmYTgwXCIsIFwiXFx1NTE2NFxcdTUxOURcXHU1MUJFXFx1NTFFQ1xcdTUyMTVcXHU1MjlDXFx1NTJBNlxcdTUyQzBcXHU1MkRCXFx1NTMwMFxcdTUzMDdcXHU1MzI0XFx1NTM3MlxcdTUzOTNcXHU1M0IyXFx1NTNERFxcdUZBMEVcXHU1NDlDXFx1NTQ4QVxcdTU0QTlcXHU1NEZGXFx1NTU4NlxcdTU3NTlcXHU1NzY1XFx1NTdBQ1xcdTU3QzhcXHU1N0M3XFx1RkEwRlxcdUZBMTBcXHU1ODlFXFx1NThCMlxcdTU5MEJcXHU1OTUzXFx1NTk1QlxcdTU5NURcXHU1OTYzXFx1NTlBNFxcdTU5QkFcXHU1QjU2XFx1NUJDMFxcdTc1MkZcXHU1QkQ4XFx1NUJFQ1xcdTVDMUVcXHU1Q0E2XFx1NUNCQVxcdTVDRjVcXHU1RDI3XFx1NUQ1M1xcdUZBMTFcXHU1RDQyXFx1NUQ2RFxcdTVEQjhcXHU1REI5XFx1NUREMFxcdTVGMjFcXHU1RjM0XFx1NUY2N1xcdTVGQjdcXHU1RkRFXFx1NjA1RFxcdTYwODVcXHU2MDhBXFx1NjBERVxcdTYwRDVcXHU2MTIwXFx1NjBGMlxcdTYxMTFcXHU2MTM3XFx1NjEzMFxcdTYxOThcXHU2MjEzXFx1NjJBNlxcdTYzRjVcXHU2NDYwXFx1NjQ5RFxcdTY0Q0VcXHU2NTRFXFx1NjYwMFxcdTY2MTVcXHU2NjNCXFx1NjYwOVxcdTY2MkVcXHU2NjFFXFx1NjYyNFxcdTY2NjVcXHU2NjU3XFx1NjY1OVxcdUZBMTJcXHU2NjczXFx1NjY5OVxcdTY2QTBcXHU2NkIyXFx1NjZCRlxcdTY2RkFcXHU2NzBFXFx1RjkyOVxcdTY3NjZcXHU2N0JCXFx1Njg1MlxcdTY3QzBcXHU2ODAxXFx1Njg0NFxcdTY4Q0ZcXHVGQTEzXFx1Njk2OFxcdUZBMTRcXHU2OTk4XFx1NjlFMlxcdTZBMzBcXHU2QTZCXFx1NkE0NlxcdTZBNzNcXHU2QTdFXFx1NkFFMlxcdTZBRTRcXHU2QkQ2XFx1NkMzRlxcdTZDNUNcXHU2Qzg2XFx1NkM2RlxcdTZDREFcXHU2RDA0XFx1NkQ4N1xcdTZENkZcIl0sXG4gICAgICBbXCJmYjQwXCIsIFwiXFx1NkQ5NlxcdTZEQUNcXHU2RENGXFx1NkRGOFxcdTZERjJcXHU2REZDXFx1NkUzOVxcdTZFNUNcXHU2RTI3XFx1NkUzQ1xcdTZFQkZcXHU2Rjg4XFx1NkZCNVxcdTZGRjVcXHU3MDA1XFx1NzAwN1xcdTcwMjhcXHU3MDg1XFx1NzBBQlxcdTcxMEZcXHU3MTA0XFx1NzE1Q1xcdTcxNDZcXHU3MTQ3XFx1RkExNVxcdTcxQzFcXHU3MUZFXFx1NzJCMVxcdTcyQkVcXHU3MzI0XFx1RkExNlxcdTczNzdcXHU3M0JEXFx1NzNDOVxcdTczRDZcXHU3M0UzXFx1NzNEMlxcdTc0MDdcXHU3M0Y1XFx1NzQyNlxcdTc0MkFcXHU3NDI5XFx1NzQyRVxcdTc0NjJcXHU3NDg5XFx1NzQ5RlxcdTc1MDFcXHU3NTZGXFx1NzY4MlxcdTc2OUNcXHU3NjlFXFx1NzY5QlxcdTc2QTZcXHVGQTE3XFx1Nzc0NlxcdTUyQUZcXHU3ODIxXFx1Nzg0RVxcdTc4NjRcXHU3ODdBXFx1NzkzMFxcdUZBMThcXHVGQTE5XCJdLFxuICAgICAgW1wiZmI4MFwiLCBcIlxcdUZBMUFcXHU3OTk0XFx1RkExQlxcdTc5OUJcXHU3QUQxXFx1N0FFN1xcdUZBMUNcXHU3QUVCXFx1N0I5RVxcdUZBMURcXHU3RDQ4XFx1N0Q1Q1xcdTdEQjdcXHU3REEwXFx1N0RENlxcdTdFNTJcXHU3RjQ3XFx1N0ZBMVxcdUZBMUVcXHU4MzAxXFx1ODM2MlxcdTgzN0ZcXHU4M0M3XFx1ODNGNlxcdTg0NDhcXHU4NEI0XFx1ODU1M1xcdTg1NTlcXHU4NTZCXFx1RkExRlxcdTg1QjBcXHVGQTIwXFx1RkEyMVxcdTg4MDdcXHU4OEY1XFx1OEExMlxcdThBMzdcXHU4QTc5XFx1OEFBN1xcdThBQkVcXHU4QURGXFx1RkEyMlxcdThBRjZcXHU4QjUzXFx1OEI3RlxcdThDRjBcXHU4Q0Y0XFx1OEQxMlxcdThENzZcXHVGQTIzXFx1OEVDRlxcdUZBMjRcXHVGQTI1XFx1OTA2N1xcdTkwREVcXHVGQTI2XFx1OTExNVxcdTkxMjdcXHU5MURBXFx1OTFEN1xcdTkxREVcXHU5MUVEXFx1OTFFRVxcdTkxRTRcXHU5MUU1XFx1OTIwNlxcdTkyMTBcXHU5MjBBXFx1OTIzQVxcdTkyNDBcXHU5MjNDXFx1OTI0RVxcdTkyNTlcXHU5MjUxXFx1OTIzOVxcdTkyNjdcXHU5MkE3XFx1OTI3N1xcdTkyNzhcXHU5MkU3XFx1OTJEN1xcdTkyRDlcXHU5MkQwXFx1RkEyN1xcdTkyRDVcXHU5MkUwXFx1OTJEM1xcdTkzMjVcXHU5MzIxXFx1OTJGQlxcdUZBMjhcXHU5MzFFXFx1OTJGRlxcdTkzMURcXHU5MzAyXFx1OTM3MFxcdTkzNTdcXHU5M0E0XFx1OTNDNlxcdTkzREVcXHU5M0Y4XFx1OTQzMVxcdTk0NDVcXHU5NDQ4XFx1OTU5MlxcdUY5RENcXHVGQTI5XFx1OTY5RFxcdTk2QUZcXHU5NzMzXFx1OTczQlxcdTk3NDNcXHU5NzREXFx1OTc0RlxcdTk3NTFcXHU5NzU1XFx1OTg1N1xcdTk4NjVcXHVGQTJBXFx1RkEyQlxcdTk5MjdcXHVGQTJDXFx1OTk5RVxcdTlBNEVcXHU5QUQ5XCJdLFxuICAgICAgW1wiZmM0MFwiLCBcIlxcdTlBRENcXHU5Qjc1XFx1OUI3MlxcdTlCOEZcXHU5QkIxXFx1OUJCQlxcdTlDMDBcXHU5RDcwXFx1OUQ2QlxcdUZBMkRcXHU5RTE5XFx1OUVEMVwiXVxuICAgIF07XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvcmF3LWJvZHkvbm9kZV9tb2R1bGVzL2ljb252LWxpdGUvZW5jb2RpbmdzL3RhYmxlcy9ldWNqcC5qc29uXG52YXIgcmVxdWlyZV9ldWNqcCA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9yYXctYm9keS9ub2RlX21vZHVsZXMvaWNvbnYtbGl0ZS9lbmNvZGluZ3MvdGFibGVzL2V1Y2pwLmpzb25cIihleHBvcnRzMiwgbW9kdWxlMikge1xuICAgIG1vZHVsZTIuZXhwb3J0cyA9IFtcbiAgICAgIFtcIjBcIiwgXCJcXDBcIiwgMTI3XSxcbiAgICAgIFtcIjhlYTFcIiwgXCJcXHVGRjYxXCIsIDYyXSxcbiAgICAgIFtcImExYTFcIiwgXCJcXHUzMDAwXFx1MzAwMVxcdTMwMDJcXHVGRjBDXFx1RkYwRVxcdTMwRkJcXHVGRjFBXFx1RkYxQlxcdUZGMUZcXHVGRjAxXFx1MzA5QlxcdTMwOUNcXHhCNFxcdUZGNDBcXHhBOFxcdUZGM0VcXHVGRkUzXFx1RkYzRlxcdTMwRkRcXHUzMEZFXFx1MzA5RFxcdTMwOUVcXHUzMDAzXFx1NEVERFxcdTMwMDVcXHUzMDA2XFx1MzAwN1xcdTMwRkNcXHUyMDE1XFx1MjAxMFxcdUZGMEZcXHVGRjNDXFx1RkY1RVxcdTIyMjVcXHVGRjVDXFx1MjAyNlxcdTIwMjVcXHUyMDE4XFx1MjAxOVxcdTIwMUNcXHUyMDFEXFx1RkYwOFxcdUZGMDlcXHUzMDE0XFx1MzAxNVxcdUZGM0JcXHVGRjNEXFx1RkY1QlxcdUZGNURcXHUzMDA4XCIsIDksIFwiXFx1RkYwQlxcdUZGMERcXHhCMVxceEQ3XFx4RjdcXHVGRjFEXFx1MjI2MFxcdUZGMUNcXHVGRjFFXFx1MjI2NlxcdTIyNjdcXHUyMjFFXFx1MjIzNFxcdTI2NDJcXHUyNjQwXFx4QjBcXHUyMDMyXFx1MjAzM1xcdTIxMDNcXHVGRkU1XFx1RkYwNFxcdUZGRTBcXHVGRkUxXFx1RkYwNVxcdUZGMDNcXHVGRjA2XFx1RkYwQVxcdUZGMjBcXHhBN1xcdTI2MDZcXHUyNjA1XFx1MjVDQlxcdTI1Q0ZcXHUyNUNFXFx1MjVDN1wiXSxcbiAgICAgIFtcImEyYTFcIiwgXCJcXHUyNUM2XFx1MjVBMVxcdTI1QTBcXHUyNUIzXFx1MjVCMlxcdTI1QkRcXHUyNUJDXFx1MjAzQlxcdTMwMTJcXHUyMTkyXFx1MjE5MFxcdTIxOTFcXHUyMTkzXFx1MzAxM1wiXSxcbiAgICAgIFtcImEyYmFcIiwgXCJcXHUyMjA4XFx1MjIwQlxcdTIyODZcXHUyMjg3XFx1MjI4MlxcdTIyODNcXHUyMjJBXFx1MjIyOVwiXSxcbiAgICAgIFtcImEyY2FcIiwgXCJcXHUyMjI3XFx1MjIyOFxcdUZGRTJcXHUyMUQyXFx1MjFENFxcdTIyMDBcXHUyMjAzXCJdLFxuICAgICAgW1wiYTJkY1wiLCBcIlxcdTIyMjBcXHUyMkE1XFx1MjMxMlxcdTIyMDJcXHUyMjA3XFx1MjI2MVxcdTIyNTJcXHUyMjZBXFx1MjI2QlxcdTIyMUFcXHUyMjNEXFx1MjIxRFxcdTIyMzVcXHUyMjJCXFx1MjIyQ1wiXSxcbiAgICAgIFtcImEyZjJcIiwgXCJcXHUyMTJCXFx1MjAzMFxcdTI2NkZcXHUyNjZEXFx1MjY2QVxcdTIwMjBcXHUyMDIxXFx4QjZcIl0sXG4gICAgICBbXCJhMmZlXCIsIFwiXFx1MjVFRlwiXSxcbiAgICAgIFtcImEzYjBcIiwgXCJcXHVGRjEwXCIsIDldLFxuICAgICAgW1wiYTNjMVwiLCBcIlxcdUZGMjFcIiwgMjVdLFxuICAgICAgW1wiYTNlMVwiLCBcIlxcdUZGNDFcIiwgMjVdLFxuICAgICAgW1wiYTRhMVwiLCBcIlxcdTMwNDFcIiwgODJdLFxuICAgICAgW1wiYTVhMVwiLCBcIlxcdTMwQTFcIiwgODVdLFxuICAgICAgW1wiYTZhMVwiLCBcIlxcdTAzOTFcIiwgMTYsIFwiXFx1MDNBM1wiLCA2XSxcbiAgICAgIFtcImE2YzFcIiwgXCJcXHUwM0IxXCIsIDE2LCBcIlxcdTAzQzNcIiwgNl0sXG4gICAgICBbXCJhN2ExXCIsIFwiXFx1MDQxMFwiLCA1LCBcIlxcdTA0MDFcXHUwNDE2XCIsIDI1XSxcbiAgICAgIFtcImE3ZDFcIiwgXCJcXHUwNDMwXCIsIDUsIFwiXFx1MDQ1MVxcdTA0MzZcIiwgMjVdLFxuICAgICAgW1wiYThhMVwiLCBcIlxcdTI1MDBcXHUyNTAyXFx1MjUwQ1xcdTI1MTBcXHUyNTE4XFx1MjUxNFxcdTI1MUNcXHUyNTJDXFx1MjUyNFxcdTI1MzRcXHUyNTNDXFx1MjUwMVxcdTI1MDNcXHUyNTBGXFx1MjUxM1xcdTI1MUJcXHUyNTE3XFx1MjUyM1xcdTI1MzNcXHUyNTJCXFx1MjUzQlxcdTI1NEJcXHUyNTIwXFx1MjUyRlxcdTI1MjhcXHUyNTM3XFx1MjUzRlxcdTI1MURcXHUyNTMwXFx1MjUyNVxcdTI1MzhcXHUyNTQyXCJdLFxuICAgICAgW1wiYWRhMVwiLCBcIlxcdTI0NjBcIiwgMTksIFwiXFx1MjE2MFwiLCA5XSxcbiAgICAgIFtcImFkYzBcIiwgXCJcXHUzMzQ5XFx1MzMxNFxcdTMzMjJcXHUzMzREXFx1MzMxOFxcdTMzMjdcXHUzMzAzXFx1MzMzNlxcdTMzNTFcXHUzMzU3XFx1MzMwRFxcdTMzMjZcXHUzMzIzXFx1MzMyQlxcdTMzNEFcXHUzMzNCXFx1MzM5Q1xcdTMzOURcXHUzMzlFXFx1MzM4RVxcdTMzOEZcXHUzM0M0XFx1MzNBMVwiXSxcbiAgICAgIFtcImFkZGZcIiwgXCJcXHUzMzdCXFx1MzAxRFxcdTMwMUZcXHUyMTE2XFx1MzNDRFxcdTIxMjFcXHUzMkE0XCIsIDQsIFwiXFx1MzIzMVxcdTMyMzJcXHUzMjM5XFx1MzM3RVxcdTMzN0RcXHUzMzdDXFx1MjI1MlxcdTIyNjFcXHUyMjJCXFx1MjIyRVxcdTIyMTFcXHUyMjFBXFx1MjJBNVxcdTIyMjBcXHUyMjFGXFx1MjJCRlxcdTIyMzVcXHUyMjI5XFx1MjIyQVwiXSxcbiAgICAgIFtcImIwYTFcIiwgXCJcXHU0RTlDXFx1NTUxNlxcdTVBMDNcXHU5NjNGXFx1NTRDMFxcdTYxMUJcXHU2MzI4XFx1NTlGNlxcdTkwMjJcXHU4NDc1XFx1ODMxQ1xcdTdBNTBcXHU2MEFBXFx1NjNFMVxcdTZFMjVcXHU2NUVEXFx1ODQ2NlxcdTgyQTZcXHU5QkY1XFx1Njg5M1xcdTU3MjdcXHU2NUExXFx1NjI3MVxcdTVCOUJcXHU1OUQwXFx1ODY3QlxcdTk4RjRcXHU3RDYyXFx1N0RCRVxcdTlCOEVcXHU2MjE2XFx1N0M5RlxcdTg4QjdcXHU1Qjg5XFx1NUVCNVxcdTYzMDlcXHU2Njk3XFx1Njg0OFxcdTk1QzdcXHU5NzhEXFx1Njc0RlxcdTRFRTVcXHU0RjBBXFx1NEY0RFxcdTRGOURcXHU1MDQ5XFx1NTZGMlxcdTU5MzdcXHU1OUQ0XFx1NUEwMVxcdTVDMDlcXHU2MERGXFx1NjEwRlxcdTYxNzBcXHU2NjEzXFx1NjkwNVxcdTcwQkFcXHU3NTRGXFx1NzU3MFxcdTc5RkJcXHU3REFEXFx1N0RFRlxcdTgwQzNcXHU4NDBFXFx1ODg2M1xcdThCMDJcXHU5MDU1XFx1OTA3QVxcdTUzM0JcXHU0RTk1XFx1NEVBNVxcdTU3REZcXHU4MEIyXFx1OTBDMVxcdTc4RUZcXHU0RTAwXFx1NThGMVxcdTZFQTJcXHU5MDM4XFx1N0EzMlxcdTgzMjhcXHU4MjhCXFx1OUMyRlxcdTUxNDFcXHU1MzcwXFx1NTRCRFxcdTU0RTFcXHU1NkUwXFx1NTlGQlxcdTVGMTVcXHU5OEYyXFx1NkRFQlxcdTgwRTRcXHU4NTJEXCJdLFxuICAgICAgW1wiYjFhMVwiLCBcIlxcdTk2NjJcXHU5NjcwXFx1OTZBMFxcdTk3RkJcXHU1NDBCXFx1NTNGM1xcdTVCODdcXHU3MENGXFx1N0ZCRFxcdThGQzJcXHU5NkU4XFx1NTM2RlxcdTlENUNcXHU3QUJBXFx1NEUxMVxcdTc4OTNcXHU4MUZDXFx1NkUyNlxcdTU2MThcXHU1NTA0XFx1NkIxRFxcdTg1MUFcXHU5QzNCXFx1NTlFNVxcdTUzQTlcXHU2RDY2XFx1NzREQ1xcdTk1OEZcXHU1NjQyXFx1NEU5MVxcdTkwNEJcXHU5NkYyXFx1ODM0RlxcdTk5MENcXHU1M0UxXFx1NTVCNlxcdTVCMzBcXHU1RjcxXFx1NjYyMFxcdTY2RjNcXHU2ODA0XFx1NkMzOFxcdTZDRjNcXHU2RDI5XFx1NzQ1QlxcdTc2QzhcXHU3QTRFXFx1OTgzNFxcdTgyRjFcXHU4ODVCXFx1OEE2MFxcdTkyRURcXHU2REIyXFx1NzVBQlxcdTc2Q0FcXHU5OUM1XFx1NjBBNlxcdThCMDFcXHU4RDhBXFx1OTVCMlxcdTY5OEVcXHU1M0FEXFx1NTE4NlxcdTU3MTJcXHU1ODMwXFx1NTk0NFxcdTVCQjRcXHU1RUY2XFx1NjAyOFxcdTYzQTlcXHU2M0Y0XFx1NkNCRlxcdTZGMTRcXHU3MDhFXFx1NzExNFxcdTcxNTlcXHU3MUQ1XFx1NzMzRlxcdTdFMDFcXHU4Mjc2XFx1ODJEMVxcdTg1OTdcXHU5MDYwXFx1OTI1QlxcdTlEMUJcXHU1ODY5XFx1NjVCQ1xcdTZDNUFcXHU3NTI1XFx1NTFGOVxcdTU5MkVcXHU1OTY1XFx1NUY4MFxcdTVGRENcIl0sXG4gICAgICBbXCJiMmExXCIsIFwiXFx1NjJCQ1xcdTY1RkFcXHU2QTJBXFx1NkIyN1xcdTZCQjRcXHU3MzhCXFx1N0ZDMVxcdTg5NTZcXHU5RDJDXFx1OUQwRVxcdTlFQzRcXHU1Q0ExXFx1NkM5NlxcdTgzN0JcXHU1MTA0XFx1NUM0QlxcdTYxQjZcXHU4MUM2XFx1Njg3NlxcdTcyNjFcXHU0RTU5XFx1NEZGQVxcdTUzNzhcXHU2MDY5XFx1NkUyOVxcdTdBNEZcXHU5N0YzXFx1NEUwQlxcdTUzMTZcXHU0RUVFXFx1NEY1NVxcdTRGM0RcXHU0RkExXFx1NEY3M1xcdTUyQTBcXHU1M0VGXFx1NTYwOVxcdTU5MEZcXHU1QUMxXFx1NUJCNlxcdTVCRTFcXHU3OUQxXFx1NjY4N1xcdTY3OUNcXHU2N0I2XFx1NkI0Q1xcdTZDQjNcXHU3MDZCXFx1NzNDMlxcdTc5OERcXHU3OUJFXFx1N0EzQ1xcdTdCODdcXHU4MkIxXFx1ODJEQlxcdTgzMDRcXHU4Mzc3XFx1ODNFRlxcdTgzRDNcXHU4NzY2XFx1OEFCMlxcdTU2MjlcXHU4Q0E4XFx1OEZFNlxcdTkwNEVcXHU5NzFFXFx1ODY4QVxcdTRGQzRcXHU1Q0U4XFx1NjIxMVxcdTcyNTlcXHU3NTNCXFx1ODFFNVxcdTgyQkRcXHU4NkZFXFx1OENDMFxcdTk2QzVcXHU5OTEzXFx1OTlENVxcdTRFQ0JcXHU0RjFBXFx1ODlFM1xcdTU2REVcXHU1ODRBXFx1NThDQVxcdTVFRkJcXHU1RkVCXFx1NjAyQVxcdTYwOTRcXHU2MDYyXFx1NjFEMFxcdTYyMTJcXHU2MkQwXFx1NjUzOVwiXSxcbiAgICAgIFtcImIzYTFcIiwgXCJcXHU5QjQxXFx1NjY2NlxcdTY4QjBcXHU2RDc3XFx1NzA3MFxcdTc1NENcXHU3Njg2XFx1N0Q3NVxcdTgyQTVcXHU4N0Y5XFx1OTU4QlxcdTk2OEVcXHU4QzlEXFx1NTFGMVxcdTUyQkVcXHU1OTE2XFx1NTRCM1xcdTVCQjNcXHU1RDE2XFx1NjE2OFxcdTY5ODJcXHU2REFGXFx1Nzg4RFxcdTg0Q0JcXHU4ODU3XFx1OEE3MlxcdTkzQTdcXHU5QUI4XFx1NkQ2Q1xcdTk5QThcXHU4NkQ5XFx1NTdBM1xcdTY3RkZcXHU4NkNFXFx1OTIwRVxcdTUyODNcXHU1Njg3XFx1NTQwNFxcdTVFRDNcXHU2MkUxXFx1NjRCOVxcdTY4M0NcXHU2ODM4XFx1NkJCQlxcdTczNzJcXHU3OEJBXFx1N0E2QlxcdTg5OUFcXHU4OUQyXFx1OEQ2QlxcdThGMDNcXHU5MEVEXFx1OTVBM1xcdTk2OTRcXHU5NzY5XFx1NUI2NlxcdTVDQjNcXHU2OTdEXFx1OTg0RFxcdTk4NEVcXHU2MzlCXFx1N0IyMFxcdTZBMkJcXHU2QTdGXFx1NjhCNlxcdTlDMERcXHU2RjVGXFx1NTI3MlxcdTU1OURcXHU2MDcwXFx1NjJFQ1xcdTZEM0JcXHU2RTA3XFx1NkVEMVxcdTg0NUJcXHU4OTEwXFx1OEY0NFxcdTRFMTRcXHU5QzM5XFx1NTNGNlxcdTY5MUJcXHU2QTNBXFx1OTc4NFxcdTY4MkFcXHU1MTVDXFx1N0FDM1xcdTg0QjJcXHU5MURDXFx1OTM4Q1xcdTU2NUJcXHU5RDI4XFx1NjgyMlxcdTgzMDVcXHU4NDMxXCJdLFxuICAgICAgW1wiYjRhMVwiLCBcIlxcdTdDQTVcXHU1MjA4XFx1ODJDNVxcdTc0RTZcXHU0RTdFXFx1NEY4M1xcdTUxQTBcXHU1QkQyXFx1NTIwQVxcdTUyRDhcXHU1MkU3XFx1NURGQlxcdTU1OUFcXHU1ODJBXFx1NTlFNlxcdTVCOENcXHU1Qjk4XFx1NUJEQlxcdTVFNzJcXHU1RTc5XFx1NjBBM1xcdTYxMUZcXHU2MTYzXFx1NjFCRVxcdTYzREJcXHU2NTYyXFx1NjdEMVxcdTY4NTNcXHU2OEZBXFx1NkIzRVxcdTZCNTNcXHU2QzU3XFx1NkYyMlxcdTZGOTdcXHU2RjQ1XFx1NzRCMFxcdTc1MThcXHU3NkUzXFx1NzcwQlxcdTdBRkZcXHU3QkExXFx1N0MyMVxcdTdERTlcXHU3RjM2XFx1N0ZGMFxcdTgwOURcXHU4MjY2XFx1ODM5RVxcdTg5QjNcXHU4QUNDXFx1OENBQlxcdTkwODRcXHU5NDUxXFx1OTU5M1xcdTk1OTFcXHU5NUEyXFx1OTY2NVxcdTk3RDNcXHU5OTI4XFx1ODIxOFxcdTRFMzhcXHU1NDJCXFx1NUNCOFxcdTVEQ0NcXHU3M0E5XFx1NzY0Q1xcdTc3M0NcXHU1Q0E5XFx1N0ZFQlxcdThEMEJcXHU5NkMxXFx1OTgxMVxcdTk4NTRcXHU5ODU4XFx1NEYwMVxcdTRGMEVcXHU1MzcxXFx1NTU5Q1xcdTU2NjhcXHU1N0ZBXFx1NTk0N1xcdTVCMDlcXHU1QkM0XFx1NUM5MFxcdTVFMENcXHU1RTdFXFx1NUZDQ1xcdTYzRUVcXHU2NzNBXFx1NjVEN1xcdTY1RTJcXHU2NzFGXFx1NjhDQlxcdTY4QzRcIl0sXG4gICAgICBbXCJiNWExXCIsIFwiXFx1NkE1RlxcdTVFMzBcXHU2QkM1XFx1NkMxN1xcdTZDN0RcXHU3NTdGXFx1Nzk0OFxcdTVCNjNcXHU3QTAwXFx1N0QwMFxcdTVGQkRcXHU4OThGXFx1OEExOFxcdThDQjRcXHU4RDc3XFx1OEVDQ1xcdThGMURcXHU5OEUyXFx1OUEwRVxcdTlCM0NcXHU0RTgwXFx1NTA3RFxcdTUxMDBcXHU1OTkzXFx1NUI5Q1xcdTYyMkZcXHU2MjgwXFx1NjRFQ1xcdTZCM0FcXHU3MkEwXFx1NzU5MVxcdTc5NDdcXHU3RkE5XFx1ODdGQlxcdThBQkNcXHU4QjcwXFx1NjNBQ1xcdTgzQ0FcXHU5N0EwXFx1NTQwOVxcdTU0MDNcXHU1NUFCXFx1Njg1NFxcdTZBNThcXHU4QTcwXFx1NzgyN1xcdTY3NzVcXHU5RUNEXFx1NTM3NFxcdTVCQTJcXHU4MTFBXFx1ODY1MFxcdTkwMDZcXHU0RTE4XFx1NEU0NVxcdTRFQzdcXHU0RjExXFx1NTNDQVxcdTU0MzhcXHU1QkFFXFx1NUYxM1xcdTYwMjVcXHU2NTUxXFx1NjczRFxcdTZDNDJcXHU2QzcyXFx1NkNFM1xcdTcwNzhcXHU3NDAzXFx1N0E3NlxcdTdBQUVcXHU3QjA4XFx1N0QxQVxcdTdDRkVcXHU3RDY2XFx1NjVFN1xcdTcyNUJcXHU1M0JCXFx1NUM0NVxcdTVERThcXHU2MkQyXFx1NjJFMFxcdTYzMTlcXHU2RTIwXFx1ODY1QVxcdThBMzFcXHU4REREXFx1OTJGOFxcdTZGMDFcXHU3OUE2XFx1OUI1QVxcdTRFQThcXHU0RUFCXFx1NEVBQ1wiXSxcbiAgICAgIFtcImI2YTFcIiwgXCJcXHU0RjlCXFx1NEZBMFxcdTUwRDFcXHU1MTQ3XFx1N0FGNlxcdTUxNzFcXHU1MUY2XFx1NTM1NFxcdTUzMjFcXHU1MzdGXFx1NTNFQlxcdTU1QUNcXHU1ODgzXFx1NUNFMVxcdTVGMzdcXHU1RjRBXFx1NjAyRlxcdTYwNTBcXHU2MDZEXFx1NjMxRlxcdTY1NTlcXHU2QTRCXFx1NkNDMVxcdTcyQzJcXHU3MkVEXFx1NzdFRlxcdTgwRjhcXHU4MTA1XFx1ODIwOFxcdTg1NEVcXHU5MEY3XFx1OTNFMVxcdTk3RkZcXHU5OTU3XFx1OUE1QVxcdTRFRjBcXHU1MUREXFx1NUMyRFxcdTY2ODFcXHU2OTZEXFx1NUM0MFxcdTY2RjJcXHU2OTc1XFx1NzM4OVxcdTY4NTBcXHU3QzgxXFx1NTBDNVxcdTUyRTRcXHU1NzQ3XFx1NURGRVxcdTkzMjZcXHU2NUE0XFx1NkIyM1xcdTZCM0RcXHU3NDM0XFx1Nzk4MVxcdTc5QkRcXHU3QjRCXFx1N0RDQVxcdTgyQjlcXHU4M0NDXFx1ODg3RlxcdTg5NUZcXHU4QjM5XFx1OEZEMVxcdTkxRDFcXHU1NDFGXFx1OTI4MFxcdTRFNURcXHU1MDM2XFx1NTNFNVxcdTUzM0FcXHU3MkQ3XFx1NzM5NlxcdTc3RTlcXHU4MkU2XFx1OEVBRlxcdTk5QzZcXHU5OUM4XFx1OTlEMlxcdTUxNzdcXHU2MTFBXFx1ODY1RVxcdTU1QjBcXHU3QTdBXFx1NTA3NlxcdTVCRDNcXHU5MDQ3XFx1OTY4NVxcdTRFMzJcXHU2QURCXFx1OTFFN1xcdTVDNTFcXHU1QzQ4XCJdLFxuICAgICAgW1wiYjdhMVwiLCBcIlxcdTYzOThcXHU3QTlGXFx1NkM5M1xcdTk3NzRcXHU4RjYxXFx1N0FBQVxcdTcxOEFcXHU5Njg4XFx1N0M4MlxcdTY4MTdcXHU3RTcwXFx1Njg1MVxcdTkzNkNcXHU1MkYyXFx1NTQxQlxcdTg1QUJcXHU4QTEzXFx1N0ZBNFxcdThFQ0RcXHU5MEUxXFx1NTM2NlxcdTg4ODhcXHU3OTQxXFx1NEZDMlxcdTUwQkVcXHU1MjExXFx1NTE0NFxcdTU1NTNcXHU1NzJEXFx1NzNFQVxcdTU3OEJcXHU1OTUxXFx1NUY2MlxcdTVGODRcXHU2MDc1XFx1NjE3NlxcdTYxNjdcXHU2MUE5XFx1NjNCMlxcdTY0M0FcXHU2NTZDXFx1NjY2RlxcdTY4NDJcXHU2RTEzXFx1NzU2NlxcdTdBM0RcXHU3Q0ZCXFx1N0Q0Q1xcdTdEOTlcXHU3RTRCXFx1N0Y2QlxcdTgzMEVcXHU4MzRBXFx1ODZDRFxcdThBMDhcXHU4QTYzXFx1OEI2NlxcdThFRkRcXHU5ODFBXFx1OUQ4RlxcdTgyQjhcXHU4RkNFXFx1OUJFOFxcdTUyODdcXHU2MjFGXFx1NjQ4M1xcdTZGQzBcXHU5Njk5XFx1Njg0MVxcdTUwOTFcXHU2QjIwXFx1NkM3QVxcdTZGNTRcXHU3QTc0XFx1N0Q1MFxcdTg4NDBcXHU4QTIzXFx1NjcwOFxcdTRFRjZcXHU1MDM5XFx1NTAyNlxcdTUwNjVcXHU1MTdDXFx1NTIzOFxcdTUyNjNcXHU1NUE3XFx1NTcwRlxcdTU4MDVcXHU1QUNDXFx1NUVGQVxcdTYxQjJcXHU2MUY4XFx1NjJGM1xcdTYzNzJcIl0sXG4gICAgICBbXCJiOGExXCIsIFwiXFx1NjkxQ1xcdTZBMjlcXHU3MjdEXFx1NzJBQ1xcdTczMkVcXHU3ODE0XFx1Nzg2RlxcdTdENzlcXHU3NzBDXFx1ODBBOVxcdTg5OEJcXHU4QjE5XFx1OENFMlxcdThFRDJcXHU5MDYzXFx1OTM3NVxcdTk2N0FcXHU5ODU1XFx1OUExM1xcdTlFNzhcXHU1MTQzXFx1NTM5RlxcdTUzQjNcXHU1RTdCXFx1NUYyNlxcdTZFMUJcXHU2RTkwXFx1NzM4NFxcdTczRkVcXHU3RDQzXFx1ODIzN1xcdThBMDBcXHU4QUZBXFx1OTY1MFxcdTRFNEVcXHU1MDBCXFx1NTNFNFxcdTU0N0NcXHU1NkZBXFx1NTlEMVxcdTVCNjRcXHU1REYxXFx1NUVBQlxcdTVGMjdcXHU2MjM4XFx1NjU0NVxcdTY3QUZcXHU2RTU2XFx1NzJEMFxcdTdDQ0FcXHU4OEI0XFx1ODBBMVxcdTgwRTFcXHU4M0YwXFx1ODY0RVxcdThBODdcXHU4REU4XFx1OTIzN1xcdTk2QzdcXHU5ODY3XFx1OUYxM1xcdTRFOTRcXHU0RTkyXFx1NEYwRFxcdTUzNDhcXHU1NDQ5XFx1NTQzRVxcdTVBMkZcXHU1RjhDXFx1NUZBMVxcdTYwOUZcXHU2OEE3XFx1NkE4RVxcdTc0NUFcXHU3ODgxXFx1OEE5RVxcdThBQTRcXHU4Qjc3XFx1OTE5MFxcdTRFNUVcXHU5QkM5XFx1NEVBNFxcdTRGN0NcXHU0RkFGXFx1NTAxOVxcdTUwMTZcXHU1MTQ5XFx1NTE2Q1xcdTUyOUZcXHU1MkI5XFx1NTJGRVxcdTUzOUFcXHU1M0UzXFx1NTQxMVwiXSxcbiAgICAgIFtcImI5YTFcIiwgXCJcXHU1NDBFXFx1NTU4OVxcdTU3NTFcXHU1N0EyXFx1NTk3RFxcdTVCNTRcXHU1QjVEXFx1NUI4RlxcdTVERTVcXHU1REU3XFx1NURGN1xcdTVFNzhcXHU1RTgzXFx1NUU5QVxcdTVFQjdcXHU1RjE4XFx1NjA1MlxcdTYxNENcXHU2Mjk3XFx1NjJEOFxcdTYzQTdcXHU2NTNCXFx1NjYwMlxcdTY2NDNcXHU2NkY0XFx1Njc2RFxcdTY4MjFcXHU2ODk3XFx1NjlDQlxcdTZDNUZcXHU2RDJBXFx1NkQ2OVxcdTZFMkZcXHU2RTlEXFx1NzUzMlxcdTc2ODdcXHU3ODZDXFx1N0EzRlxcdTdDRTBcXHU3RDA1XFx1N0QxOFxcdTdENUVcXHU3REIxXFx1ODAxNVxcdTgwMDNcXHU4MEFGXFx1ODBCMVxcdTgxNTRcXHU4MThGXFx1ODIyQVxcdTgzNTJcXHU4ODRDXFx1ODg2MVxcdThCMUJcXHU4Q0EyXFx1OENGQ1xcdTkwQ0FcXHU5MTc1XFx1OTI3MVxcdTc4M0ZcXHU5MkZDXFx1OTVBNFxcdTk2NERcXHU5ODA1XFx1OTk5OVxcdTlBRDhcXHU5RDNCXFx1NTI1QlxcdTUyQUJcXHU1M0Y3XFx1NTQwOFxcdTU4RDVcXHU2MkY3XFx1NkZFMFxcdThDNkFcXHU4RjVGXFx1OUVCOVxcdTUxNEJcXHU1MjNCXFx1NTQ0QVxcdTU2RkRcXHU3QTQwXFx1OTE3N1xcdTlENjBcXHU5RUQyXFx1NzM0NFxcdTZGMDlcXHU4MTcwXFx1NzUxMVxcdTVGRkRcXHU2MERBXFx1OUFBOFxcdTcyREJcXHU4RkJDXCJdLFxuICAgICAgW1wiYmFhMVwiLCBcIlxcdTZCNjRcXHU5ODAzXFx1NEVDQVxcdTU2RjBcXHU1NzY0XFx1NThCRVxcdTVBNUFcXHU2MDY4XFx1NjFDN1xcdTY2MEZcXHU2NjA2XFx1NjgzOVxcdTY4QjFcXHU2REY3XFx1NzVENVxcdTdEM0FcXHU4MjZFXFx1OUI0MlxcdTRFOUJcXHU0RjUwXFx1NTNDOVxcdTU1MDZcXHU1RDZGXFx1NURFNlxcdTVERUVcXHU2N0ZCXFx1NkM5OVxcdTc0NzNcXHU3ODAyXFx1OEE1MFxcdTkzOTZcXHU4OERGXFx1NTc1MFxcdTVFQTdcXHU2MzJCXFx1NTBCNVxcdTUwQUNcXHU1MThEXFx1NjcwMFxcdTU0QzlcXHU1ODVFXFx1NTlCQlxcdTVCQjBcXHU1RjY5XFx1NjI0RFxcdTYzQTFcXHU2ODNEXFx1NkI3M1xcdTZFMDhcXHU3MDdEXFx1OTFDN1xcdTcyODBcXHU3ODE1XFx1NzgyNlxcdTc5NkRcXHU2NThFXFx1N0QzMFxcdTgzRENcXHU4OEMxXFx1OEYwOVxcdTk2OUJcXHU1MjY0XFx1NTcyOFxcdTY3NTBcXHU3RjZBXFx1OENBMVxcdTUxQjRcXHU1NzQyXFx1OTYyQVxcdTU4M0FcXHU2OThBXFx1ODBCNFxcdTU0QjJcXHU1RDBFXFx1NTdGQ1xcdTc4OTVcXHU5REZBXFx1NEY1Q1xcdTUyNEFcXHU1NDhCXFx1NjQzRVxcdTY2MjhcXHU2NzE0XFx1NjdGNVxcdTdBODRcXHU3QjU2XFx1N0QyMlxcdTkzMkZcXHU2ODVDXFx1OUJBRFxcdTdCMzlcXHU1MzE5XFx1NTE4QVxcdTUyMzdcIl0sXG4gICAgICBbXCJiYmExXCIsIFwiXFx1NUJERlxcdTYyRjZcXHU2NEFFXFx1NjRFNlxcdTY3MkRcXHU2QkJBXFx1ODVBOVxcdTk2RDFcXHU3NjkwXFx1OUJENlxcdTYzNENcXHU5MzA2XFx1OUJBQlxcdTc2QkZcXHU2NjUyXFx1NEUwOVxcdTUwOThcXHU1M0MyXFx1NUM3MVxcdTYwRThcXHU2NDkyXFx1NjU2M1xcdTY4NUZcXHU3MUU2XFx1NzNDQVxcdTc1MjNcXHU3Qjk3XFx1N0U4MlxcdTg2OTVcXHU4QjgzXFx1OENEQlxcdTkxNzhcXHU5OTEwXFx1NjVBQ1xcdTY2QUJcXHU2QjhCXFx1NEVENVxcdTRFRDRcXHU0RjNBXFx1NEY3RlxcdTUyM0FcXHU1M0Y4XFx1NTNGMlxcdTU1RTNcXHU1NkRCXFx1NThFQlxcdTU5Q0JcXHU1OUM5XFx1NTlGRlxcdTVCNTBcXHU1QzREXFx1NUUwMlxcdTVFMkJcXHU1RkQ3XFx1NjAxRFxcdTYzMDdcXHU2NTJGXFx1NUI1Q1xcdTY1QUZcXHU2NUJEXFx1NjVFOFxcdTY3OURcXHU2QjYyXFx1NkI3QlxcdTZDMEZcXHU3MzQ1XFx1Nzk0OVxcdTc5QzFcXHU3Q0Y4XFx1N0QxOVxcdTdEMkJcXHU4MEEyXFx1ODEwMlxcdTgxRjNcXHU4OTk2XFx1OEE1RVxcdThBNjlcXHU4QTY2XFx1OEE4Q1xcdThBRUVcXHU4Q0M3XFx1OENEQ1xcdTk2Q0NcXHU5OEZDXFx1NkI2RlxcdTRFOEJcXHU0RjNDXFx1NEY4RFxcdTUxNTBcXHU1QjU3XFx1NUJGQVxcdTYxNDhcXHU2MzAxXFx1NjY0MlwiXSxcbiAgICAgIFtcImJjYTFcIiwgXCJcXHU2QjIxXFx1NkVDQlxcdTZDQkJcXHU3MjNFXFx1NzRCRFxcdTc1RDRcXHU3OEMxXFx1NzkzQVxcdTgwMENcXHU4MDMzXFx1ODFFQVxcdTg0OTRcXHU4RjlFXFx1NkM1MFxcdTlFN0ZcXHU1RjBGXFx1OEI1OFxcdTlEMkJcXHU3QUZBXFx1OEVGOFxcdTVCOERcXHU5NkVCXFx1NEUwM1xcdTUzRjFcXHU1N0Y3XFx1NTkzMVxcdTVBQzlcXHU1QkE0XFx1NjA4OVxcdTZFN0ZcXHU2RjA2XFx1NzVCRVxcdThDRUFcXHU1QjlGXFx1ODUwMFxcdTdCRTBcXHU1MDcyXFx1NjdGNFxcdTgyOURcXHU1QzYxXFx1ODU0QVxcdTdFMUVcXHU4MjBFXFx1NTE5OVxcdTVDMDRcXHU2MzY4XFx1OEQ2NlxcdTY1OUNcXHU3MTZFXFx1NzkzRVxcdTdEMTdcXHU4MDA1XFx1OEIxRFxcdThFQ0FcXHU5MDZFXFx1ODZDN1xcdTkwQUFcXHU1MDFGXFx1NTJGQVxcdTVDM0FcXHU2NzUzXFx1NzA3Q1xcdTcyMzVcXHU5MTRDXFx1OTFDOFxcdTkzMkJcXHU4MkU1XFx1NUJDMlxcdTVGMzFcXHU2MEY5XFx1NEUzQlxcdTUzRDZcXHU1Qjg4XFx1NjI0QlxcdTY3MzFcXHU2QjhBXFx1NzJFOVxcdTczRTBcXHU3QTJFXFx1ODE2QlxcdThEQTNcXHU5MTUyXFx1OTk5NlxcdTUxMTJcXHU1M0Q3XFx1NTQ2QVxcdTVCRkZcXHU2Mzg4XFx1NkEzOVxcdTdEQUNcXHU5NzAwXFx1NTZEQVxcdTUzQ0VcXHU1NDY4XCJdLFxuICAgICAgW1wiYmRhMVwiLCBcIlxcdTVCOTdcXHU1QzMxXFx1NURERVxcdTRGRUVcXHU2MTAxXFx1NjJGRVxcdTZEMzJcXHU3OUMwXFx1NzlDQlxcdTdENDJcXHU3RTREXFx1N0ZEMlxcdTgxRURcXHU4MjFGXFx1ODQ5MFxcdTg4NDZcXHU4OTcyXFx1OEI5MFxcdThFNzRcXHU4RjJGXFx1OTAzMVxcdTkxNEJcXHU5MTZDXFx1OTZDNlxcdTkxOUNcXHU0RUMwXFx1NEY0RlxcdTUxNDVcXHU1MzQxXFx1NUY5M1xcdTYyMEVcXHU2N0Q0XFx1NkM0MVxcdTZFMEJcXHU3MzYzXFx1N0UyNlxcdTkxQ0RcXHU5MjgzXFx1NTNENFxcdTU5MTlcXHU1QkJGXFx1NkREMVxcdTc5NURcXHU3RTJFXFx1N0M5QlxcdTU4N0VcXHU3MTlGXFx1NTFGQVxcdTg4NTNcXHU4RkYwXFx1NEZDQVxcdTVDRkJcXHU2NjI1XFx1NzdBQ1xcdTdBRTNcXHU4MjFDXFx1OTlGRlxcdTUxQzZcXHU1RkFBXFx1NjVFQ1xcdTY5NkZcXHU2Qjg5XFx1NkRGM1xcdTZFOTZcXHU2RjY0XFx1NzZGRVxcdTdEMTRcXHU1REUxXFx1OTA3NVxcdTkxODdcXHU5ODA2XFx1NTFFNlxcdTUyMURcXHU2MjQwXFx1NjY5MVxcdTY2RDlcXHU2RTFBXFx1NUVCNlxcdTdERDJcXHU3RjcyXFx1NjZGOFxcdTg1QUZcXHU4NUY3XFx1OEFGOFxcdTUyQTlcXHU1M0Q5XFx1NTk3M1xcdTVFOEZcXHU1RjkwXFx1NjA1NVxcdTkyRTRcXHU5NjY0XFx1NTBCN1xcdTUxMUZcIl0sXG4gICAgICBbXCJiZWExXCIsIFwiXFx1NTJERFxcdTUzMjBcXHU1MzQ3XFx1NTNFQ1xcdTU0RThcXHU1NTQ2XFx1NTUzMVxcdTU2MTdcXHU1OTY4XFx1NTlCRVxcdTVBM0NcXHU1QkI1XFx1NUMwNlxcdTVDMEZcXHU1QzExXFx1NUMxQVxcdTVFODRcXHU1RThBXFx1NUVFMFxcdTVGNzBcXHU2MjdGXFx1NjI4NFxcdTYyREJcXHU2MzhDXFx1NjM3N1xcdTY2MDdcXHU2NjBDXFx1NjYyRFxcdTY2NzZcXHU2NzdFXFx1NjhBMlxcdTZBMUZcXHU2QTM1XFx1NkNCQ1xcdTZEODhcXHU2RTA5XFx1NkU1OFxcdTcxM0NcXHU3MTI2XFx1NzE2N1xcdTc1QzdcXHU3NzAxXFx1Nzg1RFxcdTc5MDFcXHU3OTY1XFx1NzlGMFxcdTdBRTBcXHU3QjExXFx1N0NBN1xcdTdEMzlcXHU4MDk2XFx1ODNENlxcdTg0OEJcXHU4NTQ5XFx1ODg1RFxcdTg4RjNcXHU4QTFGXFx1OEEzQ1xcdThBNTRcXHU4QTczXFx1OEM2MVxcdThDREVcXHU5MUE0XFx1OTI2NlxcdTkzN0VcXHU5NDE4XFx1OTY5Q1xcdTk3OThcXHU0RTBBXFx1NEUwOFxcdTRFMUVcXHU0RTU3XFx1NTE5N1xcdTUyNzBcXHU1N0NFXFx1NTgzNFxcdTU4Q0NcXHU1QjIyXFx1NUUzOFxcdTYwQzVcXHU2NEZFXFx1Njc2MVxcdTY3NTZcXHU2RDQ0XFx1NzJCNlxcdTc1NzNcXHU3QTYzXFx1ODRCOFxcdThCNzJcXHU5MUI4XFx1OTMyMFxcdTU2MzFcXHU1N0Y0XFx1OThGRVwiXSxcbiAgICAgIFtcImJmYTFcIiwgXCJcXHU2MkVEXFx1NjkwRFxcdTZCOTZcXHU3MUVEXFx1N0U1NFxcdTgwNzdcXHU4MjcyXFx1ODlFNlxcdTk4REZcXHU4NzU1XFx1OEZCMVxcdTVDM0JcXHU0RjM4XFx1NEZFMVxcdTRGQjVcXHU1NTA3XFx1NUEyMFxcdTVCRERcXHU1QkU5XFx1NUZDM1xcdTYxNEVcXHU2MzJGXFx1NjVCMFxcdTY2NEJcXHU2OEVFXFx1Njk5QlxcdTZENzhcXHU2REYxXFx1NzUzM1xcdTc1QjlcXHU3NzFGXFx1Nzk1RVxcdTc5RTZcXHU3RDMzXFx1ODFFM1xcdTgyQUZcXHU4NUFBXFx1ODlBQVxcdThBM0FcXHU4RUFCXFx1OEY5QlxcdTkwMzJcXHU5MUREXFx1OTcwN1xcdTRFQkFcXHU0RUMxXFx1NTIwM1xcdTU4NzVcXHU1OEVDXFx1NUMwQlxcdTc1MUFcXHU1QzNEXFx1ODE0RVxcdThBMEFcXHU4RkM1XFx1OTY2M1xcdTk3NkRcXHU3QjI1XFx1OEFDRlxcdTk4MDhcXHU5MTYyXFx1NTZGM1xcdTUzQThcXHU5MDE3XFx1NTQzOVxcdTU3ODJcXHU1RTI1XFx1NjNBOFxcdTZDMzRcXHU3MDhBXFx1Nzc2MVxcdTdDOEJcXHU3RkUwXFx1ODg3MFxcdTkwNDJcXHU5MTU0XFx1OTMxMFxcdTkzMThcXHU5NjhGXFx1NzQ1RVxcdTlBQzRcXHU1RDA3XFx1NUQ2OVxcdTY1NzBcXHU2N0EyXFx1OERBOFxcdTk2REJcXHU2MzZFXFx1Njc0OVxcdTY5MTlcXHU4M0M1XFx1OTgxN1xcdTk2QzBcXHU4OEZFXCJdLFxuICAgICAgW1wiYzBhMVwiLCBcIlxcdTZGODRcXHU2NDdBXFx1NUJGOFxcdTRFMTZcXHU3MDJDXFx1NzU1RFxcdTY2MkZcXHU1MUM0XFx1NTIzNlxcdTUyRTJcXHU1OUQzXFx1NUY4MVxcdTYwMjdcXHU2MjEwXFx1NjUzRlxcdTY1NzRcXHU2NjFGXFx1NjY3NFxcdTY4RjJcXHU2ODE2XFx1NkI2M1xcdTZFMDVcXHU3MjcyXFx1NzUxRlxcdTc2REJcXHU3Q0JFXFx1ODA1NlxcdTU4RjBcXHU4OEZEXFx1ODk3RlxcdThBQTBcXHU4QTkzXFx1OEFDQlxcdTkwMURcXHU5MTkyXFx1OTc1MlxcdTk3NTlcXHU2NTg5XFx1N0EwRVxcdTgxMDZcXHU5NkJCXFx1NUUyRFxcdTYwRENcXHU2MjFBXFx1NjVBNVxcdTY2MTRcXHU2NzkwXFx1NzdGM1xcdTdBNERcXHU3QzREXFx1N0UzRVxcdTgxMEFcXHU4Q0FDXFx1OEQ2NFxcdThERTFcXHU4RTVGXFx1NzhBOVxcdTUyMDdcXHU2MkQ5XFx1NjNBNVxcdTY0NDJcXHU2Mjk4XFx1OEEyRFxcdTdBODNcXHU3QkMwXFx1OEFBQ1xcdTk2RUFcXHU3RDc2XFx1ODIwQ1xcdTg3NDlcXHU0RUQ5XFx1NTE0OFxcdTUzNDNcXHU1MzYwXFx1NUJBM1xcdTVDMDJcXHU1QzE2XFx1NURERFxcdTYyMjZcXHU2MjQ3XFx1NjRCMFxcdTY4MTNcXHU2ODM0XFx1NkNDOVxcdTZENDVcXHU2RDE3XFx1NjdEM1xcdTZGNUNcXHU3MTRFXFx1NzE3RFxcdTY1Q0JcXHU3QTdGXFx1N0JBRFxcdTdEREFcIl0sXG4gICAgICBbXCJjMWExXCIsIFwiXFx1N0U0QVxcdTdGQThcXHU4MTdBXFx1ODIxQlxcdTgyMzlcXHU4NUE2XFx1OEE2RVxcdThDQ0VcXHU4REY1XFx1OTA3OFxcdTkwNzdcXHU5MkFEXFx1OTI5MVxcdTk1ODNcXHU5QkFFXFx1NTI0RFxcdTU1ODRcXHU2RjM4XFx1NzEzNlxcdTUxNjhcXHU3OTg1XFx1N0U1NVxcdTgxQjNcXHU3Q0NFXFx1NTY0Q1xcdTU4NTFcXHU1Q0E4XFx1NjNBQVxcdTY2RkVcXHU2NkZEXFx1Njk1QVxcdTcyRDlcXHU3NThGXFx1NzU4RVxcdTc5MEVcXHU3OTU2XFx1NzlERlxcdTdDOTdcXHU3RDIwXFx1N0Q0NFxcdTg2MDdcXHU4QTM0XFx1OTYzQlxcdTkwNjFcXHU5RjIwXFx1NTBFN1xcdTUyNzVcXHU1M0NDXFx1NTNFMlxcdTUwMDlcXHU1NUFBXFx1NThFRVxcdTU5NEZcXHU3MjNEXFx1NUI4QlxcdTVDNjRcXHU1MzFEXFx1NjBFM1xcdTYwRjNcXHU2MzVDXFx1NjM4M1xcdTYzM0ZcXHU2M0JCXFx1NjRDRFxcdTY1RTlcXHU2NkY5XFx1NURFM1xcdTY5Q0RcXHU2OUZEXFx1NkYxNVxcdTcxRTVcXHU0RTg5XFx1NzVFOVxcdTc2RjhcXHU3QTkzXFx1N0NERlxcdTdEQ0ZcXHU3RDlDXFx1ODA2MVxcdTgzNDlcXHU4MzU4XFx1ODQ2Q1xcdTg0QkNcXHU4NUZCXFx1ODhDNVxcdThENzBcXHU5MDAxXFx1OTA2RFxcdTkzOTdcXHU5NzFDXFx1OUExMlxcdTUwQ0ZcXHU1ODk3XFx1NjE4RVwiXSxcbiAgICAgIFtcImMyYTFcIiwgXCJcXHU4MUQzXFx1ODUzNVxcdThEMDhcXHU5MDIwXFx1NEZDM1xcdTUwNzRcXHU1MjQ3XFx1NTM3M1xcdTYwNkZcXHU2MzQ5XFx1Njc1RlxcdTZFMkNcXHU4REIzXFx1OTAxRlxcdTRGRDdcXHU1QzVFXFx1OENDQVxcdTY1Q0ZcXHU3RDlBXFx1NTM1MlxcdTg4OTZcXHU1MTc2XFx1NjNDM1xcdTVCNThcXHU1QjZCXFx1NUMwQVxcdTY0MERcXHU2NzUxXFx1OTA1Q1xcdTRFRDZcXHU1OTFBXFx1NTkyQVxcdTZDNzBcXHU4QTUxXFx1NTUzRVxcdTU4MTVcXHU1OUE1XFx1NjBGMFxcdTYyNTNcXHU2N0MxXFx1ODIzNVxcdTY5NTVcXHU5NjQwXFx1OTlDNFxcdTlBMjhcXHU0RjUzXFx1NTgwNlxcdTVCRkVcXHU4MDEwXFx1NUNCMVxcdTVFMkZcXHU1Rjg1XFx1NjAyMFxcdTYxNEJcXHU2MjM0XFx1NjZGRlxcdTZDRjBcXHU2RURFXFx1ODBDRVxcdTgxN0ZcXHU4MkQ0XFx1ODg4QlxcdThDQjhcXHU5MDAwXFx1OTAyRVxcdTk2OEFcXHU5RURCXFx1OUJEQlxcdTRFRTNcXHU1M0YwXFx1NTkyN1xcdTdCMkNcXHU5MThEXFx1OTg0Q1xcdTlERjlcXHU2RUREXFx1NzAyN1xcdTUzNTNcXHU1NTQ0XFx1NUI4NVxcdTYyNThcXHU2MjlFXFx1NjJEM1xcdTZDQTJcXHU2RkVGXFx1NzQyMlxcdThBMTdcXHU5NDM4XFx1NkZDMVxcdThBRkVcXHU4MzM4XFx1NTFFN1xcdTg2RjhcXHU1M0VBXCJdLFxuICAgICAgW1wiYzNhMVwiLCBcIlxcdTUzRTlcXHU0RjQ2XFx1OTA1NFxcdThGQjBcXHU1OTZBXFx1ODEzMVxcdTVERkRcXHU3QUVBXFx1OEZCRlxcdTY4REFcXHU4QzM3XFx1NzJGOFxcdTlDNDhcXHU2QTNEXFx1OEFCMFxcdTRFMzlcXHU1MzU4XFx1NTYwNlxcdTU3NjZcXHU2MkM1XFx1NjNBMlxcdTY1RTZcXHU2QjRFXFx1NkRFMVxcdTZFNUJcXHU3MEFEXFx1NzdFRFxcdTdBRUZcXHU3QkFBXFx1N0RCQlxcdTgwM0RcXHU4MEM2XFx1ODZDQlxcdThBOTVcXHU5MzVCXFx1NTZFM1xcdTU4QzdcXHU1RjNFXFx1NjVBRFxcdTY2OTZcXHU2QTgwXFx1NkJCNVxcdTc1MzdcXHU4QUM3XFx1NTAyNFxcdTc3RTVcXHU1NzMwXFx1NUYxQlxcdTYwNjVcXHU2NjdBXFx1NkM2MFxcdTc1RjRcXHU3QTFBXFx1N0Y2RVxcdTgxRjRcXHU4NzE4XFx1OTA0NVxcdTk5QjNcXHU3QkM5XFx1NzU1Q1xcdTdBRjlcXHU3QjUxXFx1ODRDNFxcdTkwMTBcXHU3OUU5XFx1N0E5MlxcdTgzMzZcXHU1QUUxXFx1Nzc0MFxcdTRFMkRcXHU0RUYyXFx1NUI5OVxcdTVGRTBcXHU2MkJEXFx1NjYzQ1xcdTY3RjFcXHU2Q0U4XFx1ODY2QlxcdTg4NzdcXHU4QTNCXFx1OTE0RVxcdTkyRjNcXHU5OUQwXFx1NkExN1xcdTcwMjZcXHU3MzJBXFx1ODJFN1xcdTg0NTdcXHU4Q0FGXFx1NEUwMVxcdTUxNDZcXHU1MUNCXFx1NTU4QlxcdTVCRjVcIl0sXG4gICAgICBbXCJjNGExXCIsIFwiXFx1NUUxNlxcdTVFMzNcXHU1RTgxXFx1NUYxNFxcdTVGMzVcXHU1RjZCXFx1NUZCNFxcdTYxRjJcXHU2MzExXFx1NjZBMlxcdTY3MURcXHU2RjZFXFx1NzI1MlxcdTc1M0FcXHU3NzNBXFx1ODA3NFxcdTgxMzlcXHU4MTc4XFx1ODc3NlxcdThBQkZcXHU4QURDXFx1OEQ4NVxcdThERjNcXHU5MjlBXFx1OTU3N1xcdTk4MDJcXHU5Q0U1XFx1NTJDNVxcdTYzNTdcXHU3NkY0XFx1NjcxNVxcdTZDODhcXHU3M0NEXFx1OENDM1xcdTkzQUVcXHU5NjczXFx1NkQyNVxcdTU4OUNcXHU2OTBFXFx1NjlDQ1xcdThGRkRcXHU5MzlBXFx1NzVEQlxcdTkwMUFcXHU1ODVBXFx1NjgwMlxcdTYzQjRcXHU2OUZCXFx1NEY0M1xcdTZGMkNcXHU2N0Q4XFx1OEZCQlxcdTg1MjZcXHU3REI0XFx1OTM1NFxcdTY5M0ZcXHU2RjcwXFx1NTc2QVxcdTU4RjdcXHU1QjJDXFx1N0QyQ1xcdTcyMkFcXHU1NDBBXFx1OTFFM1xcdTlEQjRcXHU0RUFEXFx1NEY0RVxcdTUwNUNcXHU1MDc1XFx1NTI0M1xcdThDOUVcXHU1NDQ4XFx1NTgyNFxcdTVCOUFcXHU1RTFEXFx1NUU5NVxcdTVFQURcXHU1RUY3XFx1NUYxRlxcdTYwOENcXHU2MkI1XFx1NjMzQVxcdTYzRDBcXHU2OEFGXFx1NkM0MFxcdTc4ODdcXHU3OThFXFx1N0EwQlxcdTdERTBcXHU4MjQ3XFx1OEEwMlxcdThBRTZcXHU4RTQ0XFx1OTAxM1wiXSxcbiAgICAgIFtcImM1YTFcIiwgXCJcXHU5MEI4XFx1OTEyRFxcdTkxRDhcXHU5RjBFXFx1NkNFNVxcdTY0NThcXHU2NEUyXFx1NjU3NVxcdTZFRjRcXHU3Njg0XFx1N0IxQlxcdTkwNjlcXHU5M0QxXFx1NkVCQVxcdTU0RjJcXHU1RkI5XFx1NjRBNFxcdThGNERcXHU4RkVEXFx1OTI0NFxcdTUxNzhcXHU1ODZCXFx1NTkyOVxcdTVDNTVcXHU1RTk3XFx1NkRGQlxcdTdFOEZcXHU3NTFDXFx1OENCQ1xcdThFRTJcXHU5ODVCXFx1NzBCOVxcdTRGMURcXHU2QkJGXFx1NkZCMVxcdTc1MzBcXHU5NkZCXFx1NTE0RVxcdTU0MTBcXHU1ODM1XFx1NTg1N1xcdTU5QUNcXHU1QzYwXFx1NUY5MlxcdTY1OTdcXHU2NzVDXFx1NkUyMVxcdTc2N0JcXHU4M0RGXFx1OENFRFxcdTkwMTRcXHU5MEZEXFx1OTM0RFxcdTc4MjVcXHU3ODNBXFx1NTJBQVxcdTVFQTZcXHU1NzFGXFx1NTk3NFxcdTYwMTJcXHU1MDEyXFx1NTE1QVxcdTUxQUNcXHU1MUNEXFx1NTIwMFxcdTU1MTBcXHU1ODU0XFx1NTg1OFxcdTU5NTdcXHU1Qjk1XFx1NUNGNlxcdTVEOEJcXHU2MEJDXFx1NjI5NVxcdTY0MkRcXHU2NzcxXFx1Njg0M1xcdTY4QkNcXHU2OERGXFx1NzZEN1xcdTZERDhcXHU2RTZGXFx1NkQ5QlxcdTcwNkZcXHU3MUM4XFx1NUY1M1xcdTc1RDhcXHU3OTc3XFx1N0I0OVxcdTdCNTRcXHU3QjUyXFx1N0NENlxcdTdENzFcXHU1MjMwXCJdLFxuICAgICAgW1wiYzZhMVwiLCBcIlxcdTg0NjNcXHU4NTY5XFx1ODVFNFxcdThBMEVcXHU4QjA0XFx1OEM0NlxcdThFMEZcXHU5MDAzXFx1OTAwRlxcdTk0MTlcXHU5Njc2XFx1OTgyRFxcdTlBMzBcXHU5NUQ4XFx1NTBDRFxcdTUyRDVcXHU1NDBDXFx1NTgwMlxcdTVDMEVcXHU2MUE3XFx1NjQ5RVxcdTZEMUVcXHU3N0IzXFx1N0FFNVxcdTgwRjRcXHU4NDA0XFx1OTA1M1xcdTkyODVcXHU1Q0UwXFx1OUQwN1xcdTUzM0ZcXHU1Rjk3XFx1NUZCM1xcdTZEOUNcXHU3Mjc5XFx1Nzc2M1xcdTc5QkZcXHU3QkU0XFx1NkJEMlxcdTcyRUNcXHU4QUFEXFx1NjgwM1xcdTZBNjFcXHU1MUY4XFx1N0E4MVxcdTY5MzRcXHU1QzRBXFx1OUNGNlxcdTgyRUJcXHU1QkM1XFx1OTE0OVxcdTcwMUVcXHU1Njc4XFx1NUM2RlxcdTYwQzdcXHU2NTY2XFx1NkM4Q1xcdThDNUFcXHU5MDQxXFx1OTgxM1xcdTU0NTFcXHU2NkM3XFx1OTIwRFxcdTU5NDhcXHU5MEEzXFx1NTE4NVxcdTRFNERcXHU1MUVBXFx1ODU5OVxcdThCMEVcXHU3MDU4XFx1NjM3QVxcdTkzNEJcXHU2OTYyXFx1OTlCNFxcdTdFMDRcXHU3NTc3XFx1NTM1N1xcdTY5NjBcXHU4RURGXFx1OTZFM1xcdTZDNURcXHU0RThDXFx1NUMzQ1xcdTVGMTBcXHU4RkU5XFx1NTMwMlxcdThDRDFcXHU4MDg5XFx1ODY3OVxcdTVFRkZcXHU2NUU1XFx1NEU3M1xcdTUxNjVcIl0sXG4gICAgICBbXCJjN2ExXCIsIFwiXFx1NTk4MlxcdTVDM0ZcXHU5N0VFXFx1NEVGQlxcdTU5OEFcXHU1RkNEXFx1OEE4RFxcdTZGRTFcXHU3OUIwXFx1Nzk2MlxcdTVCRTdcXHU4NDcxXFx1NzMyQlxcdTcxQjFcXHU1RTc0XFx1NUZGNVxcdTYzN0JcXHU2NDlBXFx1NzFDM1xcdTdDOThcXHU0RTQzXFx1NUVGQ1xcdTRFNEJcXHU1N0RDXFx1NTZBMlxcdTYwQTlcXHU2RkMzXFx1N0QwRFxcdTgwRkRcXHU4MTMzXFx1ODFCRlxcdThGQjJcXHU4OTk3XFx1ODZBNFxcdTVERjRcXHU2MjhBXFx1NjRBRFxcdTg5ODdcXHU2Nzc3XFx1NkNFMlxcdTZEM0VcXHU3NDM2XFx1NzgzNFxcdTVBNDZcXHU3Rjc1XFx1ODJBRFxcdTk5QUNcXHU0RkYzXFx1NUVDM1xcdTYyRERcXHU2MzkyXFx1NjU1N1xcdTY3NkZcXHU3NkMzXFx1NzI0Q1xcdTgwQ0NcXHU4MEJBXFx1OEYyOVxcdTkxNERcXHU1MDBEXFx1NTdGOVxcdTVBOTJcXHU2ODg1XFx1Njk3M1xcdTcxNjRcXHU3MkZEXFx1OENCN1xcdTU4RjJcXHU4Q0UwXFx1OTY2QVxcdTkwMTlcXHU4NzdGXFx1NzlFNFxcdTc3RTdcXHU4NDI5XFx1NEYyRlxcdTUyNjVcXHU1MzVBXFx1NjJDRFxcdTY3Q0ZcXHU2Q0NBXFx1NzY3RFxcdTdCOTRcXHU3Qzk1XFx1ODIzNlxcdTg1ODRcXHU4RkVCXFx1NjZERFxcdTZGMjBcXHU3MjA2XFx1N0UxQlxcdTgzQUJcXHU5OUMxXFx1OUVBNlwiXSxcbiAgICAgIFtcImM4YTFcIiwgXCJcXHU1MUZEXFx1N0JCMVxcdTc4NzJcXHU3QkI4XFx1ODA4N1xcdTdCNDhcXHU2QUU4XFx1NUU2MVxcdTgwOENcXHU3NTUxXFx1NzU2MFxcdTUxNkJcXHU5MjYyXFx1NkU4Q1xcdTc2N0FcXHU5MTk3XFx1OUFFQVxcdTRGMTBcXHU3RjcwXFx1NjI5Q1xcdTdCNEZcXHU5NUE1XFx1OUNFOVxcdTU2N0FcXHU1ODU5XFx1ODZFNFxcdTk2QkNcXHU0RjM0XFx1NTIyNFxcdTUzNEFcXHU1M0NEXFx1NTNEQlxcdTVFMDZcXHU2NDJDXFx1NjU5MVxcdTY3N0ZcXHU2QzNFXFx1NkM0RVxcdTcyNDhcXHU3MkFGXFx1NzNFRFxcdTc1NTRcXHU3RTQxXFx1ODIyQ1xcdTg1RTlcXHU4Q0E5XFx1N0JDNFxcdTkxQzZcXHU3MTY5XFx1OTgxMlxcdTk4RUZcXHU2MzNEXFx1NjY2OVxcdTc1NkFcXHU3NkU0XFx1NzhEMFxcdTg1NDNcXHU4NkVFXFx1NTMyQVxcdTUzNTFcXHU1NDI2XFx1NTk4M1xcdTVFODdcXHU1RjdDXFx1NjBCMlxcdTYyNDlcXHU2Mjc5XFx1NjJBQlxcdTY1OTBcXHU2QkQ0XFx1NkNDQ1xcdTc1QjJcXHU3NkFFXFx1Nzg5MVxcdTc5RDhcXHU3RENCXFx1N0Y3N1xcdTgwQTVcXHU4OEFCXFx1OEFCOVxcdThDQkJcXHU5MDdGXFx1OTc1RVxcdTk4REJcXHU2QTBCXFx1N0MzOFxcdTUwOTlcXHU1QzNFXFx1NUZBRVxcdTY3ODdcXHU2QkQ4XFx1NzQzNVxcdTc3MDlcXHU3RjhFXCJdLFxuICAgICAgW1wiYzlhMVwiLCBcIlxcdTlGM0JcXHU2N0NBXFx1N0ExN1xcdTUzMzlcXHU3NThCXFx1OUFFRFxcdTVGNjZcXHU4MTlEXFx1ODNGMVxcdTgwOThcXHU1RjNDXFx1NUZDNVxcdTc1NjJcXHU3QjQ2XFx1OTAzQ1xcdTY4NjdcXHU1OUVCXFx1NUE5QlxcdTdEMTBcXHU3NjdFXFx1OEIyQ1xcdTRGRjVcXHU1RjZBXFx1NkExOVxcdTZDMzdcXHU2RjAyXFx1NzRFMlxcdTc5NjhcXHU4ODY4XFx1OEE1NVxcdThDNzlcXHU1RURGXFx1NjNDRlxcdTc1QzVcXHU3OUQyXFx1ODJEN1xcdTkzMjhcXHU5MkYyXFx1ODQ5Q1xcdTg2RURcXHU5QzJEXFx1NTRDMVxcdTVGNkNcXHU2NThDXFx1NkQ1Q1xcdTcwMTVcXHU4Q0E3XFx1OENEM1xcdTk4M0JcXHU2NTRGXFx1NzRGNlxcdTRFMERcXHU0RUQ4XFx1NTdFMFxcdTU5MkJcXHU1QTY2XFx1NUJDQ1xcdTUxQThcXHU1RTAzXFx1NUU5Q1xcdTYwMTZcXHU2Mjc2XFx1NjU3N1xcdTY1QTdcXHU2NjZFXFx1NkQ2RVxcdTcyMzZcXHU3QjI2XFx1ODE1MFxcdTgxOUFcXHU4Mjk5XFx1OEI1Q1xcdThDQTBcXHU4Q0U2XFx1OEQ3NFxcdTk2MUNcXHU5NjQ0XFx1NEZBRVxcdTY0QUJcXHU2QjY2XFx1ODIxRVxcdTg0NjFcXHU4NTZBXFx1OTBFOFxcdTVDMDFcXHU2OTUzXFx1OThBOFxcdTg0N0FcXHU4NTU3XFx1NEYwRlxcdTUyNkZcXHU1RkE5XFx1NUU0NVxcdTY3MERcIl0sXG4gICAgICBbXCJjYWExXCIsIFwiXFx1Nzk4RlxcdTgxNzlcXHU4OTA3XFx1ODk4NlxcdTZERjVcXHU1RjE3XFx1NjI1NVxcdTZDQjhcXHU0RUNGXFx1NzI2OVxcdTlCOTJcXHU1MjA2XFx1NTQzQlxcdTU2NzRcXHU1OEIzXFx1NjFBNFxcdTYyNkVcXHU3MTFBXFx1NTk2RVxcdTdDODlcXHU3Q0RFXFx1N0QxQlxcdTk2RjBcXHU2NTg3XFx1ODA1RVxcdTRFMTlcXHU0Rjc1XFx1NTE3NVxcdTU4NDBcXHU1RTYzXFx1NUU3M1xcdTVGMEFcXHU2N0M0XFx1NEUyNlxcdTg1M0RcXHU5NTg5XFx1OTY1QlxcdTdDNzNcXHU5ODAxXFx1NTBGQlxcdTU4QzFcXHU3NjU2XFx1NzhBN1xcdTUyMjVcXHU3N0E1XFx1ODUxMVxcdTdCODZcXHU1MDRGXFx1NTkwOVxcdTcyNDdcXHU3QkM3XFx1N0RFOFxcdThGQkFcXHU4RkQ0XFx1OTA0RFxcdTRGQkZcXHU1MkM5XFx1NUEyOVxcdTVGMDFcXHU5N0FEXFx1NEZERFxcdTgyMTdcXHU5MkVBXFx1NTcwM1xcdTYzNTVcXHU2QjY5XFx1NzUyQlxcdTg4RENcXHU4RjE0XFx1N0E0MlxcdTUyREZcXHU1ODkzXFx1NjE1NVxcdTYyMEFcXHU2NkFFXFx1NkJDRFxcdTdDM0ZcXHU4M0U5XFx1NTAyM1xcdTRGRjhcXHU1MzA1XFx1NTQ0NlxcdTU4MzFcXHU1OTQ5XFx1NUI5RFxcdTVDRjBcXHU1Q0VGXFx1NUQyOVxcdTVFOTZcXHU2MkIxXFx1NjM2N1xcdTY1M0VcXHU2NUI5XFx1NjcwQlwiXSxcbiAgICAgIFtcImNiYTFcIiwgXCJcXHU2Q0Q1XFx1NkNFMVxcdTcwRjlcXHU3ODMyXFx1N0UyQlxcdTgwREVcXHU4MkIzXFx1ODQwQ1xcdTg0RUNcXHU4NzAyXFx1ODkxMlxcdThBMkFcXHU4QzRBXFx1OTBBNlxcdTkyRDJcXHU5OEZEXFx1OUNGM1xcdTlENkNcXHU0RTRGXFx1NEVBMVxcdTUwOERcXHU1MjU2XFx1NTc0QVxcdTU5QThcXHU1RTNEXFx1NUZEOFxcdTVGRDlcXHU2MjNGXFx1NjZCNFxcdTY3MUJcXHU2N0QwXFx1NjhEMlxcdTUxOTJcXHU3RDIxXFx1ODBBQVxcdTgxQThcXHU4QjAwXFx1OEM4Q1xcdThDQkZcXHU5MjdFXFx1OTYzMlxcdTU0MjBcXHU5ODJDXFx1NTMxN1xcdTUwRDVcXHU1MzVDXFx1NThBOFxcdTY0QjJcXHU2NzM0XFx1NzI2N1xcdTc3NjZcXHU3QTQ2XFx1OTFFNlxcdTUyQzNcXHU2Q0ExXFx1NkI4NlxcdTU4MDBcXHU1RTRDXFx1NTk1NFxcdTY3MkNcXHU3RkZCXFx1NTFFMVxcdTc2QzZcXHU2NDY5XFx1NzhFOFxcdTlCNTRcXHU5RUJCXFx1NTdDQlxcdTU5QjlcXHU2NjI3XFx1Njc5QVxcdTZCQ0VcXHU1NEU5XFx1NjlEOVxcdTVFNTVcXHU4MTlDXFx1Njc5NVxcdTlCQUFcXHU2N0ZFXFx1OUM1MlxcdTY4NURcXHU0RUE2XFx1NEZFM1xcdTUzQzhcXHU2MkI5XFx1NjcyQlxcdTZDQUJcXHU4RkM0XFx1NEZBRFxcdTdFNkRcXHU5RUJGXFx1NEUwN1xcdTYxNjJcXHU2RTgwXCJdLFxuICAgICAgW1wiY2NhMVwiLCBcIlxcdTZGMkJcXHU4NTEzXFx1NTQ3M1xcdTY3MkFcXHU5QjQ1XFx1NURGM1xcdTdCOTVcXHU1Q0FDXFx1NUJDNlxcdTg3MUNcXHU2RTRBXFx1ODREMVxcdTdBMTRcXHU4MTA4XFx1NTk5OVxcdTdDOERcXHU2QzExXFx1NzcyMFxcdTUyRDlcXHU1OTIyXFx1NzEyMVxcdTcyNUZcXHU3N0RCXFx1OTcyN1xcdTlENjFcXHU2OTBCXFx1NUE3RlxcdTVBMThcXHU1MUE1XFx1NTQwRFxcdTU0N0RcXHU2NjBFXFx1NzZERlxcdThGRjdcXHU5Mjk4XFx1OUNGNFxcdTU5RUFcXHU3MjVEXFx1NkVDNVxcdTUxNERcXHU2OEM5XFx1N0RCRlxcdTdERUNcXHU5NzYyXFx1OUVCQVxcdTY0NzhcXHU2QTIxXFx1ODMwMlxcdTU5ODRcXHU1QjVGXFx1NkJEQlxcdTczMUJcXHU3NkYyXFx1N0RCMlxcdTgwMTdcXHU4NDk5XFx1NTEzMlxcdTY3MjhcXHU5RUQ5XFx1NzZFRVxcdTY3NjJcXHU1MkZGXFx1OTkwNVxcdTVDMjRcXHU2MjNCXFx1N0M3RVxcdThDQjBcXHU1NTRGXFx1NjBCNlxcdTdEMEJcXHU5NTgwXFx1NTMwMVxcdTRFNUZcXHU1MUI2XFx1NTkxQ1xcdTcyM0FcXHU4MDM2XFx1OTFDRVxcdTVGMjVcXHU3N0UyXFx1NTM4NFxcdTVGNzlcXHU3RDA0XFx1ODVBQ1xcdThBMzNcXHU4RThEXFx1OTc1NlxcdTY3RjNcXHU4NUFFXFx1OTQ1M1xcdTYxMDlcXHU2MTA4XFx1NkNCOVxcdTc2NTJcIl0sXG4gICAgICBbXCJjZGExXCIsIFwiXFx1OEFFRFxcdThGMzhcXHU1NTJGXFx1NEY1MVxcdTUxMkFcXHU1MkM3XFx1NTNDQlxcdTVCQTVcXHU1RTdEXFx1NjBBMFxcdTYxODJcXHU2M0Q2XFx1NjcwOVxcdTY3REFcXHU2RTY3XFx1NkQ4Q1xcdTczMzZcXHU3MzM3XFx1NzUzMVxcdTc5NTBcXHU4OEQ1XFx1OEE5OFxcdTkwNEFcXHU5MDkxXFx1OTBGNVxcdTk2QzRcXHU4NzhEXFx1NTkxNVxcdTRFODhcXHU0RjU5XFx1NEUwRVxcdThBODlcXHU4RjNGXFx1OTgxMFxcdTUwQURcXHU1RTdDXFx1NTk5NlxcdTVCQjlcXHU1RUI4XFx1NjNEQVxcdTYzRkFcXHU2NEMxXFx1NjZEQ1xcdTY5NEFcXHU2OUQ4XFx1NkQwQlxcdTZFQjZcXHU3MTk0XFx1NzUyOFxcdTdBQUZcXHU3RjhBXFx1ODAwMFxcdTg0NDlcXHU4NEM5XFx1ODk4MVxcdThCMjFcXHU4RTBBXFx1OTA2NVxcdTk2N0RcXHU5OTBBXFx1NjE3RVxcdTYyOTFcXHU2QjMyXFx1NkM4M1xcdTZENzRcXHU3RkNDXFx1N0ZGQ1xcdTZEQzBcXHU3Rjg1XFx1ODdCQVxcdTg4RjhcXHU2NzY1XFx1ODNCMVxcdTk4M0NcXHU5NkY3XFx1NkQxQlxcdTdENjFcXHU4NDNEXFx1OTE2QVxcdTRFNzFcXHU1Mzc1XFx1NUQ1MFxcdTZCMDRcXHU2RkVCXFx1ODVDRFxcdTg2MkRcXHU4OUE3XFx1NTIyOVxcdTU0MEZcXHU1QzY1XFx1Njc0RVxcdTY4QThcXHU3NDA2XFx1NzQ4M1wiXSxcbiAgICAgIFtcImNlYTFcIiwgXCJcXHU3NUUyXFx1ODhDRlxcdTg4RTFcXHU5MUNDXFx1OTZFMlxcdTk2NzhcXHU1RjhCXFx1NzM4N1xcdTdBQ0JcXHU4NDRFXFx1NjNBMFxcdTc1NjVcXHU1Mjg5XFx1NkQ0MVxcdTZFOUNcXHU3NDA5XFx1NzU1OVxcdTc4NkJcXHU3QzkyXFx1OTY4NlxcdTdBRENcXHU5RjhEXFx1NEZCNlxcdTYxNkVcXHU2NUM1XFx1ODY1Q1xcdTRFODZcXHU0RUFFXFx1NTBEQVxcdTRFMjFcXHU1MUNDXFx1NUJFRVxcdTY1OTlcXHU2ODgxXFx1NkRCQ1xcdTczMUZcXHU3NjQyXFx1NzdBRFxcdTdBMUNcXHU3Q0U3XFx1ODI2RlxcdThBRDJcXHU5MDdDXFx1OTFDRlxcdTk2NzVcXHU5ODE4XFx1NTI5QlxcdTdERDFcXHU1MDJCXFx1NTM5OFxcdTY3OTdcXHU2RENCXFx1NzFEMFxcdTc0MzNcXHU4MUU4XFx1OEYyQVxcdTk2QTNcXHU5QzU3XFx1OUU5RlxcdTc0NjBcXHU1ODQxXFx1NkQ5OVxcdTdEMkZcXHU5ODVFXFx1NEVFNFxcdTRGMzZcXHU0RjhCXFx1NTFCN1xcdTUyQjFcXHU1REJBXFx1NjAxQ1xcdTczQjJcXHU3OTNDXFx1ODJEM1xcdTkyMzRcXHU5NkI3XFx1OTZGNlxcdTk3MEFcXHU5RTk3XFx1OUY2MlxcdTY2QTZcXHU2Qjc0XFx1NTIxN1xcdTUyQTNcXHU3MEM4XFx1ODhDMlxcdTVFQzlcXHU2MDRCXFx1NjE5MFxcdTZGMjNcXHU3MTQ5XFx1N0MzRVxcdTdERjRcXHU4MDZGXCJdLFxuICAgICAgW1wiY2ZhMVwiLCBcIlxcdTg0RUVcXHU5MDIzXFx1OTMyQ1xcdTU0NDJcXHU5QjZGXFx1NkFEM1xcdTcwODlcXHU4Q0MyXFx1OERFRlxcdTk3MzJcXHU1MkI0XFx1NUE0MVxcdTVFQ0FcXHU1RjA0XFx1NjcxN1xcdTY5N0NcXHU2OTk0XFx1NkQ2QVxcdTZGMEZcXHU3MjYyXFx1NzJGQ1xcdTdCRURcXHU4MDAxXFx1ODA3RVxcdTg3NEJcXHU5MENFXFx1NTE2RFxcdTlFOTNcXHU3OTg0XFx1ODA4QlxcdTkzMzJcXHU4QUQ2XFx1NTAyRFxcdTU0OENcXHU4QTcxXFx1NkI2QVxcdThDQzRcXHU4MTA3XFx1NjBEMVxcdTY3QTBcXHU5REYyXFx1NEU5OVxcdTRFOThcXHU5QzEwXFx1OEE2QlxcdTg1QzFcXHU4NTY4XFx1NjkwMFxcdTZFN0VcXHU3ODk3XFx1ODE1NVwiXSxcbiAgICAgIFtcImQwYTFcIiwgXCJcXHU1RjBDXFx1NEUxMFxcdTRFMTVcXHU0RTJBXFx1NEUzMVxcdTRFMzZcXHU0RTNDXFx1NEUzRlxcdTRFNDJcXHU0RTU2XFx1NEU1OFxcdTRFODJcXHU0RTg1XFx1OEM2QlxcdTRFOEFcXHU4MjEyXFx1NUYwRFxcdTRFOEVcXHU0RTlFXFx1NEU5RlxcdTRFQTBcXHU0RUEyXFx1NEVCMFxcdTRFQjNcXHU0RUI2XFx1NEVDRVxcdTRFQ0RcXHU0RUM0XFx1NEVDNlxcdTRFQzJcXHU0RUQ3XFx1NEVERVxcdTRFRURcXHU0RURGXFx1NEVGN1xcdTRGMDlcXHU0RjVBXFx1NEYzMFxcdTRGNUJcXHU0RjVEXFx1NEY1N1xcdTRGNDdcXHU0Rjc2XFx1NEY4OFxcdTRGOEZcXHU0Rjk4XFx1NEY3QlxcdTRGNjlcXHU0RjcwXFx1NEY5MVxcdTRGNkZcXHU0Rjg2XFx1NEY5NlxcdTUxMThcXHU0RkQ0XFx1NEZERlxcdTRGQ0VcXHU0RkQ4XFx1NEZEQlxcdTRGRDFcXHU0RkRBXFx1NEZEMFxcdTRGRTRcXHU0RkU1XFx1NTAxQVxcdTUwMjhcXHU1MDE0XFx1NTAyQVxcdTUwMjVcXHU1MDA1XFx1NEYxQ1xcdTRGRjZcXHU1MDIxXFx1NTAyOVxcdTUwMkNcXHU0RkZFXFx1NEZFRlxcdTUwMTFcXHU1MDA2XFx1NTA0M1xcdTUwNDdcXHU2NzAzXFx1NTA1NVxcdTUwNTBcXHU1MDQ4XFx1NTA1QVxcdTUwNTZcXHU1MDZDXFx1NTA3OFxcdTUwODBcXHU1MDlBXFx1NTA4NVxcdTUwQjRcXHU1MEIyXCJdLFxuICAgICAgW1wiZDFhMVwiLCBcIlxcdTUwQzlcXHU1MENBXFx1NTBCM1xcdTUwQzJcXHU1MEQ2XFx1NTBERVxcdTUwRTVcXHU1MEVEXFx1NTBFM1xcdTUwRUVcXHU1MEY5XFx1NTBGNVxcdTUxMDlcXHU1MTAxXFx1NTEwMlxcdTUxMTZcXHU1MTE1XFx1NTExNFxcdTUxMUFcXHU1MTIxXFx1NTEzQVxcdTUxMzdcXHU1MTNDXFx1NTEzQlxcdTUxM0ZcXHU1MTQwXFx1NTE1MlxcdTUxNENcXHU1MTU0XFx1NTE2MlxcdTdBRjhcXHU1MTY5XFx1NTE2QVxcdTUxNkVcXHU1MTgwXFx1NTE4MlxcdTU2RDhcXHU1MThDXFx1NTE4OVxcdTUxOEZcXHU1MTkxXFx1NTE5M1xcdTUxOTVcXHU1MTk2XFx1NTFBNFxcdTUxQTZcXHU1MUEyXFx1NTFBOVxcdTUxQUFcXHU1MUFCXFx1NTFCM1xcdTUxQjFcXHU1MUIyXFx1NTFCMFxcdTUxQjVcXHU1MUJEXFx1NTFDNVxcdTUxQzlcXHU1MURCXFx1NTFFMFxcdTg2NTVcXHU1MUU5XFx1NTFFRFxcdTUxRjBcXHU1MUY1XFx1NTFGRVxcdTUyMDRcXHU1MjBCXFx1NTIxNFxcdTUyMEVcXHU1MjI3XFx1NTIyQVxcdTUyMkVcXHU1MjMzXFx1NTIzOVxcdTUyNEZcXHU1MjQ0XFx1NTI0QlxcdTUyNENcXHU1MjVFXFx1NTI1NFxcdTUyNkFcXHU1Mjc0XFx1NTI2OVxcdTUyNzNcXHU1MjdGXFx1NTI3RFxcdTUyOERcXHU1Mjk0XFx1NTI5MlxcdTUyNzFcXHU1Mjg4XFx1NTI5MVxcdThGQThcIl0sXG4gICAgICBbXCJkMmExXCIsIFwiXFx1OEZBN1xcdTUyQUNcXHU1MkFEXFx1NTJCQ1xcdTUyQjVcXHU1MkMxXFx1NTJDRFxcdTUyRDdcXHU1MkRFXFx1NTJFM1xcdTUyRTZcXHU5OEVEXFx1NTJFMFxcdTUyRjNcXHU1MkY1XFx1NTJGOFxcdTUyRjlcXHU1MzA2XFx1NTMwOFxcdTc1MzhcXHU1MzBEXFx1NTMxMFxcdTUzMEZcXHU1MzE1XFx1NTMxQVxcdTUzMjNcXHU1MzJGXFx1NTMzMVxcdTUzMzNcXHU1MzM4XFx1NTM0MFxcdTUzNDZcXHU1MzQ1XFx1NEUxN1xcdTUzNDlcXHU1MzREXFx1NTFENlxcdTUzNUVcXHU1MzY5XFx1NTM2RVxcdTU5MThcXHU1MzdCXFx1NTM3N1xcdTUzODJcXHU1Mzk2XFx1NTNBMFxcdTUzQTZcXHU1M0E1XFx1NTNBRVxcdTUzQjBcXHU1M0I2XFx1NTNDM1xcdTdDMTJcXHU5NkQ5XFx1NTNERlxcdTY2RkNcXHU3MUVFXFx1NTNFRVxcdTUzRThcXHU1M0VEXFx1NTNGQVxcdTU0MDFcXHU1NDNEXFx1NTQ0MFxcdTU0MkNcXHU1NDJEXFx1NTQzQ1xcdTU0MkVcXHU1NDM2XFx1NTQyOVxcdTU0MURcXHU1NDRFXFx1NTQ4RlxcdTU0NzVcXHU1NDhFXFx1NTQ1RlxcdTU0NzFcXHU1NDc3XFx1NTQ3MFxcdTU0OTJcXHU1NDdCXFx1NTQ4MFxcdTU0NzZcXHU1NDg0XFx1NTQ5MFxcdTU0ODZcXHU1NEM3XFx1NTRBMlxcdTU0QjhcXHU1NEE1XFx1NTRBQ1xcdTU0QzRcXHU1NEM4XFx1NTRBOFwiXSxcbiAgICAgIFtcImQzYTFcIiwgXCJcXHU1NEFCXFx1NTRDMlxcdTU0QTRcXHU1NEJFXFx1NTRCQ1xcdTU0RDhcXHU1NEU1XFx1NTRFNlxcdTU1MEZcXHU1NTE0XFx1NTRGRFxcdTU0RUVcXHU1NEVEXFx1NTRGQVxcdTU0RTJcXHU1NTM5XFx1NTU0MFxcdTU1NjNcXHU1NTRDXFx1NTUyRVxcdTU1NUNcXHU1NTQ1XFx1NTU1NlxcdTU1NTdcXHU1NTM4XFx1NTUzM1xcdTU1NURcXHU1NTk5XFx1NTU4MFxcdTU0QUZcXHU1NThBXFx1NTU5RlxcdTU1N0JcXHU1NTdFXFx1NTU5OFxcdTU1OUVcXHU1NUFFXFx1NTU3Q1xcdTU1ODNcXHU1NUE5XFx1NTU4N1xcdTU1QThcXHU1NURBXFx1NTVDNVxcdTU1REZcXHU1NUM0XFx1NTVEQ1xcdTU1RTRcXHU1NUQ0XFx1NTYxNFxcdTU1RjdcXHU1NjE2XFx1NTVGRVxcdTU1RkRcXHU1NjFCXFx1NTVGOVxcdTU2NEVcXHU1NjUwXFx1NzFERlxcdTU2MzRcXHU1NjM2XFx1NTYzMlxcdTU2MzhcXHU1NjZCXFx1NTY2NFxcdTU2MkZcXHU1NjZDXFx1NTY2QVxcdTU2ODZcXHU1NjgwXFx1NTY4QVxcdTU2QTBcXHU1Njk0XFx1NTY4RlxcdTU2QTVcXHU1NkFFXFx1NTZCNlxcdTU2QjRcXHU1NkMyXFx1NTZCQ1xcdTU2QzFcXHU1NkMzXFx1NTZDMFxcdTU2QzhcXHU1NkNFXFx1NTZEMVxcdTU2RDNcXHU1NkQ3XFx1NTZFRVxcdTU2RjlcXHU1NzAwXFx1NTZGRlxcdTU3MDRcXHU1NzA5XCJdLFxuICAgICAgW1wiZDRhMVwiLCBcIlxcdTU3MDhcXHU1NzBCXFx1NTcwRFxcdTU3MTNcXHU1NzE4XFx1NTcxNlxcdTU1QzdcXHU1NzFDXFx1NTcyNlxcdTU3MzdcXHU1NzM4XFx1NTc0RVxcdTU3M0JcXHU1NzQwXFx1NTc0RlxcdTU3NjlcXHU1N0MwXFx1NTc4OFxcdTU3NjFcXHU1NzdGXFx1NTc4OVxcdTU3OTNcXHU1N0EwXFx1NTdCM1xcdTU3QTRcXHU1N0FBXFx1NTdCMFxcdTU3QzNcXHU1N0M2XFx1NTdENFxcdTU3RDJcXHU1N0QzXFx1NTgwQVxcdTU3RDZcXHU1N0UzXFx1NTgwQlxcdTU4MTlcXHU1ODFEXFx1NTg3MlxcdTU4MjFcXHU1ODYyXFx1NTg0QlxcdTU4NzBcXHU2QkMwXFx1NTg1MlxcdTU4M0RcXHU1ODc5XFx1NTg4NVxcdTU4QjlcXHU1ODlGXFx1NThBQlxcdTU4QkFcXHU1OERFXFx1NThCQlxcdTU4QjhcXHU1OEFFXFx1NThDNVxcdTU4RDNcXHU1OEQxXFx1NThEN1xcdTU4RDlcXHU1OEQ4XFx1NThFNVxcdTU4RENcXHU1OEU0XFx1NThERlxcdTU4RUZcXHU1OEZBXFx1NThGOVxcdTU4RkJcXHU1OEZDXFx1NThGRFxcdTU5MDJcXHU1OTBBXFx1NTkxMFxcdTU5MUJcXHU2OEE2XFx1NTkyNVxcdTU5MkNcXHU1OTJEXFx1NTkzMlxcdTU5MzhcXHU1OTNFXFx1N0FEMlxcdTU5NTVcXHU1OTUwXFx1NTk0RVxcdTU5NUFcXHU1OTU4XFx1NTk2MlxcdTU5NjBcXHU1OTY3XFx1NTk2Q1xcdTU5NjlcIl0sXG4gICAgICBbXCJkNWExXCIsIFwiXFx1NTk3OFxcdTU5ODFcXHU1OTlEXFx1NEY1RVxcdTRGQUJcXHU1OUEzXFx1NTlCMlxcdTU5QzZcXHU1OUU4XFx1NTlEQ1xcdTU5OERcXHU1OUQ5XFx1NTlEQVxcdTVBMjVcXHU1QTFGXFx1NUExMVxcdTVBMUNcXHU1QTA5XFx1NUExQVxcdTVBNDBcXHU1QTZDXFx1NUE0OVxcdTVBMzVcXHU1QTM2XFx1NUE2MlxcdTVBNkFcXHU1QTlBXFx1NUFCQ1xcdTVBQkVcXHU1QUNCXFx1NUFDMlxcdTVBQkRcXHU1QUUzXFx1NUFEN1xcdTVBRTZcXHU1QUU5XFx1NUFENlxcdTVBRkFcXHU1QUZCXFx1NUIwQ1xcdTVCMEJcXHU1QjE2XFx1NUIzMlxcdTVBRDBcXHU1QjJBXFx1NUIzNlxcdTVCM0VcXHU1QjQzXFx1NUI0NVxcdTVCNDBcXHU1QjUxXFx1NUI1NVxcdTVCNUFcXHU1QjVCXFx1NUI2NVxcdTVCNjlcXHU1QjcwXFx1NUI3M1xcdTVCNzVcXHU1Qjc4XFx1NjU4OFxcdTVCN0FcXHU1QjgwXFx1NUI4M1xcdTVCQTZcXHU1QkI4XFx1NUJDM1xcdTVCQzdcXHU1QkM5XFx1NUJENFxcdTVCRDBcXHU1QkU0XFx1NUJFNlxcdTVCRTJcXHU1QkRFXFx1NUJFNVxcdTVCRUJcXHU1QkYwXFx1NUJGNlxcdTVCRjNcXHU1QzA1XFx1NUMwN1xcdTVDMDhcXHU1QzBEXFx1NUMxM1xcdTVDMjBcXHU1QzIyXFx1NUMyOFxcdTVDMzhcXHU1QzM5XFx1NUM0MVxcdTVDNDZcXHU1QzRFXFx1NUM1M1wiXSxcbiAgICAgIFtcImQ2YTFcIiwgXCJcXHU1QzUwXFx1NUM0RlxcdTVCNzFcXHU1QzZDXFx1NUM2RVxcdTRFNjJcXHU1Qzc2XFx1NUM3OVxcdTVDOENcXHU1QzkxXFx1NUM5NFxcdTU5OUJcXHU1Q0FCXFx1NUNCQlxcdTVDQjZcXHU1Q0JDXFx1NUNCN1xcdTVDQzVcXHU1Q0JFXFx1NUNDN1xcdTVDRDlcXHU1Q0U5XFx1NUNGRFxcdTVDRkFcXHU1Q0VEXFx1NUQ4Q1xcdTVDRUFcXHU1RDBCXFx1NUQxNVxcdTVEMTdcXHU1RDVDXFx1NUQxRlxcdTVEMUJcXHU1RDExXFx1NUQxNFxcdTVEMjJcXHU1RDFBXFx1NUQxOVxcdTVEMThcXHU1RDRDXFx1NUQ1MlxcdTVENEVcXHU1RDRCXFx1NUQ2Q1xcdTVENzNcXHU1RDc2XFx1NUQ4N1xcdTVEODRcXHU1RDgyXFx1NURBMlxcdTVEOURcXHU1REFDXFx1NURBRVxcdTVEQkRcXHU1RDkwXFx1NURCN1xcdTVEQkNcXHU1REM5XFx1NURDRFxcdTVERDNcXHU1REQyXFx1NURENlxcdTVEREJcXHU1REVCXFx1NURGMlxcdTVERjVcXHU1RTBCXFx1NUUxQVxcdTVFMTlcXHU1RTExXFx1NUUxQlxcdTVFMzZcXHU1RTM3XFx1NUU0NFxcdTVFNDNcXHU1RTQwXFx1NUU0RVxcdTVFNTdcXHU1RTU0XFx1NUU1RlxcdTVFNjJcXHU1RTY0XFx1NUU0N1xcdTVFNzVcXHU1RTc2XFx1NUU3QVxcdTlFQkNcXHU1RTdGXFx1NUVBMFxcdTVFQzFcXHU1RUMyXFx1NUVDOFxcdTVFRDBcXHU1RUNGXCJdLFxuICAgICAgW1wiZDdhMVwiLCBcIlxcdTVFRDZcXHU1RUUzXFx1NUVERFxcdTVFREFcXHU1RURCXFx1NUVFMlxcdTVFRTFcXHU1RUU4XFx1NUVFOVxcdTVFRUNcXHU1RUYxXFx1NUVGM1xcdTVFRjBcXHU1RUY0XFx1NUVGOFxcdTVFRkVcXHU1RjAzXFx1NUYwOVxcdTVGNURcXHU1RjVDXFx1NUYwQlxcdTVGMTFcXHU1RjE2XFx1NUYyOVxcdTVGMkRcXHU1RjM4XFx1NUY0MVxcdTVGNDhcXHU1RjRDXFx1NUY0RVxcdTVGMkZcXHU1RjUxXFx1NUY1NlxcdTVGNTdcXHU1RjU5XFx1NUY2MVxcdTVGNkRcXHU1RjczXFx1NUY3N1xcdTVGODNcXHU1RjgyXFx1NUY3RlxcdTVGOEFcXHU1Rjg4XFx1NUY5MVxcdTVGODdcXHU1RjlFXFx1NUY5OVxcdTVGOThcXHU1RkEwXFx1NUZBOFxcdTVGQURcXHU1RkJDXFx1NUZENlxcdTVGRkJcXHU1RkU0XFx1NUZGOFxcdTVGRjFcXHU1RkREXFx1NjBCM1xcdTVGRkZcXHU2MDIxXFx1NjA2MFxcdTYwMTlcXHU2MDEwXFx1NjAyOVxcdTYwMEVcXHU2MDMxXFx1NjAxQlxcdTYwMTVcXHU2MDJCXFx1NjAyNlxcdTYwMEZcXHU2MDNBXFx1NjA1QVxcdTYwNDFcXHU2MDZBXFx1NjA3N1xcdTYwNUZcXHU2MDRBXFx1NjA0NlxcdTYwNERcXHU2MDYzXFx1NjA0M1xcdTYwNjRcXHU2MDQyXFx1NjA2Q1xcdTYwNkJcXHU2MDU5XFx1NjA4MVxcdTYwOERcXHU2MEU3XFx1NjA4M1xcdTYwOUFcIl0sXG4gICAgICBbXCJkOGExXCIsIFwiXFx1NjA4NFxcdTYwOUJcXHU2MDk2XFx1NjA5N1xcdTYwOTJcXHU2MEE3XFx1NjA4QlxcdTYwRTFcXHU2MEI4XFx1NjBFMFxcdTYwRDNcXHU2MEI0XFx1NUZGMFxcdTYwQkRcXHU2MEM2XFx1NjBCNVxcdTYwRDhcXHU2MTREXFx1NjExNVxcdTYxMDZcXHU2MEY2XFx1NjBGN1xcdTYxMDBcXHU2MEY0XFx1NjBGQVxcdTYxMDNcXHU2MTIxXFx1NjBGQlxcdTYwRjFcXHU2MTBEXFx1NjEwRVxcdTYxNDdcXHU2MTNFXFx1NjEyOFxcdTYxMjdcXHU2MTRBXFx1NjEzRlxcdTYxM0NcXHU2MTJDXFx1NjEzNFxcdTYxM0RcXHU2MTQyXFx1NjE0NFxcdTYxNzNcXHU2MTc3XFx1NjE1OFxcdTYxNTlcXHU2MTVBXFx1NjE2QlxcdTYxNzRcXHU2MTZGXFx1NjE2NVxcdTYxNzFcXHU2MTVGXFx1NjE1RFxcdTYxNTNcXHU2MTc1XFx1NjE5OVxcdTYxOTZcXHU2MTg3XFx1NjFBQ1xcdTYxOTRcXHU2MTlBXFx1NjE4QVxcdTYxOTFcXHU2MUFCXFx1NjFBRVxcdTYxQ0NcXHU2MUNBXFx1NjFDOVxcdTYxRjdcXHU2MUM4XFx1NjFDM1xcdTYxQzZcXHU2MUJBXFx1NjFDQlxcdTdGNzlcXHU2MUNEXFx1NjFFNlxcdTYxRTNcXHU2MUY2XFx1NjFGQVxcdTYxRjRcXHU2MUZGXFx1NjFGRFxcdTYxRkNcXHU2MUZFXFx1NjIwMFxcdTYyMDhcXHU2MjA5XFx1NjIwRFxcdTYyMENcXHU2MjE0XFx1NjIxQlwiXSxcbiAgICAgIFtcImQ5YTFcIiwgXCJcXHU2MjFFXFx1NjIyMVxcdTYyMkFcXHU2MjJFXFx1NjIzMFxcdTYyMzJcXHU2MjMzXFx1NjI0MVxcdTYyNEVcXHU2MjVFXFx1NjI2M1xcdTYyNUJcXHU2MjYwXFx1NjI2OFxcdTYyN0NcXHU2MjgyXFx1NjI4OVxcdTYyN0VcXHU2MjkyXFx1NjI5M1xcdTYyOTZcXHU2MkQ0XFx1NjI4M1xcdTYyOTRcXHU2MkQ3XFx1NjJEMVxcdTYyQkJcXHU2MkNGXFx1NjJGRlxcdTYyQzZcXHU2NEQ0XFx1NjJDOFxcdTYyRENcXHU2MkNDXFx1NjJDQVxcdTYyQzJcXHU2MkM3XFx1NjI5QlxcdTYyQzlcXHU2MzBDXFx1NjJFRVxcdTYyRjFcXHU2MzI3XFx1NjMwMlxcdTYzMDhcXHU2MkVGXFx1NjJGNVxcdTYzNTBcXHU2MzNFXFx1NjM0RFxcdTY0MUNcXHU2MzRGXFx1NjM5NlxcdTYzOEVcXHU2MzgwXFx1NjNBQlxcdTYzNzZcXHU2M0EzXFx1NjM4RlxcdTYzODlcXHU2MzlGXFx1NjNCNVxcdTYzNkJcXHU2MzY5XFx1NjNCRVxcdTYzRTlcXHU2M0MwXFx1NjNDNlxcdTYzRTNcXHU2M0M5XFx1NjNEMlxcdTYzRjZcXHU2M0M0XFx1NjQxNlxcdTY0MzRcXHU2NDA2XFx1NjQxM1xcdTY0MjZcXHU2NDM2XFx1NjUxRFxcdTY0MTdcXHU2NDI4XFx1NjQwRlxcdTY0NjdcXHU2NDZGXFx1NjQ3NlxcdTY0NEVcXHU2NTJBXFx1NjQ5NVxcdTY0OTNcXHU2NEE1XFx1NjRBOVxcdTY0ODhcXHU2NEJDXCJdLFxuICAgICAgW1wiZGFhMVwiLCBcIlxcdTY0REFcXHU2NEQyXFx1NjRDNVxcdTY0QzdcXHU2NEJCXFx1NjREOFxcdTY0QzJcXHU2NEYxXFx1NjRFN1xcdTgyMDlcXHU2NEUwXFx1NjRFMVxcdTYyQUNcXHU2NEUzXFx1NjRFRlxcdTY1MkNcXHU2NEY2XFx1NjRGNFxcdTY0RjJcXHU2NEZBXFx1NjUwMFxcdTY0RkRcXHU2NTE4XFx1NjUxQ1xcdTY1MDVcXHU2NTI0XFx1NjUyM1xcdTY1MkJcXHU2NTM0XFx1NjUzNVxcdTY1MzdcXHU2NTM2XFx1NjUzOFxcdTc1NEJcXHU2NTQ4XFx1NjU1NlxcdTY1NTVcXHU2NTREXFx1NjU1OFxcdTY1NUVcXHU2NTVEXFx1NjU3MlxcdTY1NzhcXHU2NTgyXFx1NjU4M1xcdThCOEFcXHU2NTlCXFx1NjU5RlxcdTY1QUJcXHU2NUI3XFx1NjVDM1xcdTY1QzZcXHU2NUMxXFx1NjVDNFxcdTY1Q0NcXHU2NUQyXFx1NjVEQlxcdTY1RDlcXHU2NUUwXFx1NjVFMVxcdTY1RjFcXHU2NzcyXFx1NjYwQVxcdTY2MDNcXHU2NUZCXFx1Njc3M1xcdTY2MzVcXHU2NjM2XFx1NjYzNFxcdTY2MUNcXHU2NjRGXFx1NjY0NFxcdTY2NDlcXHU2NjQxXFx1NjY1RVxcdTY2NURcXHU2NjY0XFx1NjY2N1xcdTY2NjhcXHU2NjVGXFx1NjY2MlxcdTY2NzBcXHU2NjgzXFx1NjY4OFxcdTY2OEVcXHU2Njg5XFx1NjY4NFxcdTY2OThcXHU2NjlEXFx1NjZDMVxcdTY2QjlcXHU2NkM5XFx1NjZCRVxcdTY2QkNcIl0sXG4gICAgICBbXCJkYmExXCIsIFwiXFx1NjZDNFxcdTY2QjhcXHU2NkQ2XFx1NjZEQVxcdTY2RTBcXHU2NjNGXFx1NjZFNlxcdTY2RTlcXHU2NkYwXFx1NjZGNVxcdTY2RjdcXHU2NzBGXFx1NjcxNlxcdTY3MUVcXHU2NzI2XFx1NjcyN1xcdTk3MzhcXHU2NzJFXFx1NjczRlxcdTY3MzZcXHU2NzQxXFx1NjczOFxcdTY3MzdcXHU2NzQ2XFx1Njc1RVxcdTY3NjBcXHU2NzU5XFx1Njc2M1xcdTY3NjRcXHU2Nzg5XFx1Njc3MFxcdTY3QTlcXHU2NzdDXFx1Njc2QVxcdTY3OENcXHU2NzhCXFx1NjdBNlxcdTY3QTFcXHU2Nzg1XFx1NjdCN1xcdTY3RUZcXHU2N0I0XFx1NjdFQ1xcdTY3QjNcXHU2N0U5XFx1NjdCOFxcdTY3RTRcXHU2N0RFXFx1NjdERFxcdTY3RTJcXHU2N0VFXFx1NjdCOVxcdTY3Q0VcXHU2N0M2XFx1NjdFN1xcdTZBOUNcXHU2ODFFXFx1Njg0NlxcdTY4MjlcXHU2ODQwXFx1Njg0RFxcdTY4MzJcXHU2ODRFXFx1NjhCM1xcdTY4MkJcXHU2ODU5XFx1Njg2M1xcdTY4NzdcXHU2ODdGXFx1Njg5RlxcdTY4OEZcXHU2OEFEXFx1Njg5NFxcdTY4OURcXHU2ODlCXFx1Njg4M1xcdTZBQUVcXHU2OEI5XFx1Njg3NFxcdTY4QjVcXHU2OEEwXFx1NjhCQVxcdTY5MEZcXHU2ODhEXFx1Njg3RVxcdTY5MDFcXHU2OENBXFx1NjkwOFxcdTY4RDhcXHU2OTIyXFx1NjkyNlxcdTY4RTFcXHU2OTBDXFx1NjhDRFwiXSxcbiAgICAgIFtcImRjYTFcIiwgXCJcXHU2OEQ0XFx1NjhFN1xcdTY4RDVcXHU2OTM2XFx1NjkxMlxcdTY5MDRcXHU2OEQ3XFx1NjhFM1xcdTY5MjVcXHU2OEY5XFx1NjhFMFxcdTY4RUZcXHU2OTI4XFx1NjkyQVxcdTY5MUFcXHU2OTIzXFx1NjkyMVxcdTY4QzZcXHU2OTc5XFx1Njk3N1xcdTY5NUNcXHU2OTc4XFx1Njk2QlxcdTY5NTRcXHU2OTdFXFx1Njk2RVxcdTY5MzlcXHU2OTc0XFx1NjkzRFxcdTY5NTlcXHU2OTMwXFx1Njk2MVxcdTY5NUVcXHU2OTVEXFx1Njk4MVxcdTY5NkFcXHU2OUIyXFx1NjlBRVxcdTY5RDBcXHU2OUJGXFx1NjlDMVxcdTY5RDNcXHU2OUJFXFx1NjlDRVxcdTVCRThcXHU2OUNBXFx1NjlERFxcdTY5QkJcXHU2OUMzXFx1NjlBN1xcdTZBMkVcXHU2OTkxXFx1NjlBMFxcdTY5OUNcXHU2OTk1XFx1NjlCNFxcdTY5REVcXHU2OUU4XFx1NkEwMlxcdTZBMUJcXHU2OUZGXFx1NkIwQVxcdTY5RjlcXHU2OUYyXFx1NjlFN1xcdTZBMDVcXHU2OUIxXFx1NkExRVxcdTY5RURcXHU2QTE0XFx1NjlFQlxcdTZBMEFcXHU2QTEyXFx1NkFDMVxcdTZBMjNcXHU2QTEzXFx1NkE0NFxcdTZBMENcXHU2QTcyXFx1NkEzNlxcdTZBNzhcXHU2QTQ3XFx1NkE2MlxcdTZBNTlcXHU2QTY2XFx1NkE0OFxcdTZBMzhcXHU2QTIyXFx1NkE5MFxcdTZBOERcXHU2QUEwXFx1NkE4NFxcdTZBQTJcXHU2QUEzXCJdLFxuICAgICAgW1wiZGRhMVwiLCBcIlxcdTZBOTdcXHU4NjE3XFx1NkFCQlxcdTZBQzNcXHU2QUMyXFx1NkFCOFxcdTZBQjNcXHU2QUFDXFx1NkFERVxcdTZBRDFcXHU2QURGXFx1NkFBQVxcdTZBREFcXHU2QUVBXFx1NkFGQlxcdTZCMDVcXHU4NjE2XFx1NkFGQVxcdTZCMTJcXHU2QjE2XFx1OUIzMVxcdTZCMUZcXHU2QjM4XFx1NkIzN1xcdTc2RENcXHU2QjM5XFx1OThFRVxcdTZCNDdcXHU2QjQzXFx1NkI0OVxcdTZCNTBcXHU2QjU5XFx1NkI1NFxcdTZCNUJcXHU2QjVGXFx1NkI2MVxcdTZCNzhcXHU2Qjc5XFx1NkI3RlxcdTZCODBcXHU2Qjg0XFx1NkI4M1xcdTZCOERcXHU2Qjk4XFx1NkI5NVxcdTZCOUVcXHU2QkE0XFx1NkJBQVxcdTZCQUJcXHU2QkFGXFx1NkJCMlxcdTZCQjFcXHU2QkIzXFx1NkJCN1xcdTZCQkNcXHU2QkM2XFx1NkJDQlxcdTZCRDNcXHU2QkRGXFx1NkJFQ1xcdTZCRUJcXHU2QkYzXFx1NkJFRlxcdTlFQkVcXHU2QzA4XFx1NkMxM1xcdTZDMTRcXHU2QzFCXFx1NkMyNFxcdTZDMjNcXHU2QzVFXFx1NkM1NVxcdTZDNjJcXHU2QzZBXFx1NkM4MlxcdTZDOERcXHU2QzlBXFx1NkM4MVxcdTZDOUJcXHU2QzdFXFx1NkM2OFxcdTZDNzNcXHU2QzkyXFx1NkM5MFxcdTZDQzRcXHU2Q0YxXFx1NkNEM1xcdTZDQkRcXHU2Q0Q3XFx1NkNDNVxcdTZDRERcXHU2Q0FFXFx1NkNCMVxcdTZDQkVcIl0sXG4gICAgICBbXCJkZWExXCIsIFwiXFx1NkNCQVxcdTZDREJcXHU2Q0VGXFx1NkNEOVxcdTZDRUFcXHU2RDFGXFx1ODg0RFxcdTZEMzZcXHU2RDJCXFx1NkQzRFxcdTZEMzhcXHU2RDE5XFx1NkQzNVxcdTZEMzNcXHU2RDEyXFx1NkQwQ1xcdTZENjNcXHU2RDkzXFx1NkQ2NFxcdTZENUFcXHU2RDc5XFx1NkQ1OVxcdTZEOEVcXHU2RDk1XFx1NkZFNFxcdTZEODVcXHU2REY5XFx1NkUxNVxcdTZFMEFcXHU2REI1XFx1NkRDN1xcdTZERTZcXHU2REI4XFx1NkRDNlxcdTZERUNcXHU2RERFXFx1NkRDQ1xcdTZERThcXHU2REQyXFx1NkRDNVxcdTZERkFcXHU2REQ5XFx1NkRFNFxcdTZERDVcXHU2REVBXFx1NkRFRVxcdTZFMkRcXHU2RTZFXFx1NkUyRVxcdTZFMTlcXHU2RTcyXFx1NkU1RlxcdTZFM0VcXHU2RTIzXFx1NkU2QlxcdTZFMkJcXHU2RTc2XFx1NkU0RFxcdTZFMUZcXHU2RTQzXFx1NkUzQVxcdTZFNEVcXHU2RTI0XFx1NkVGRlxcdTZFMURcXHU2RTM4XFx1NkU4MlxcdTZFQUFcXHU2RTk4XFx1NkVDOVxcdTZFQjdcXHU2RUQzXFx1NkVCRFxcdTZFQUZcXHU2RUM0XFx1NkVCMlxcdTZFRDRcXHU2RUQ1XFx1NkU4RlxcdTZFQTVcXHU2RUMyXFx1NkU5RlxcdTZGNDFcXHU2RjExXFx1NzA0Q1xcdTZFRUNcXHU2RUY4XFx1NkVGRVxcdTZGM0ZcXHU2RUYyXFx1NkYzMVxcdTZFRUZcXHU2RjMyXFx1NkVDQ1wiXSxcbiAgICAgIFtcImRmYTFcIiwgXCJcXHU2RjNFXFx1NkYxM1xcdTZFRjdcXHU2Rjg2XFx1NkY3QVxcdTZGNzhcXHU2RjgxXFx1NkY4MFxcdTZGNkZcXHU2RjVCXFx1NkZGM1xcdTZGNkRcXHU2RjgyXFx1NkY3Q1xcdTZGNThcXHU2RjhFXFx1NkY5MVxcdTZGQzJcXHU2RjY2XFx1NkZCM1xcdTZGQTNcXHU2RkExXFx1NkZBNFxcdTZGQjlcXHU2RkM2XFx1NkZBQVxcdTZGREZcXHU2RkQ1XFx1NkZFQ1xcdTZGRDRcXHU2RkQ4XFx1NkZGMVxcdTZGRUVcXHU2RkRCXFx1NzAwOVxcdTcwMEJcXHU2RkZBXFx1NzAxMVxcdTcwMDFcXHU3MDBGXFx1NkZGRVxcdTcwMUJcXHU3MDFBXFx1NkY3NFxcdTcwMURcXHU3MDE4XFx1NzAxRlxcdTcwMzBcXHU3MDNFXFx1NzAzMlxcdTcwNTFcXHU3MDYzXFx1NzA5OVxcdTcwOTJcXHU3MEFGXFx1NzBGMVxcdTcwQUNcXHU3MEI4XFx1NzBCM1xcdTcwQUVcXHU3MERGXFx1NzBDQlxcdTcwRERcXHU3MEQ5XFx1NzEwOVxcdTcwRkRcXHU3MTFDXFx1NzExOVxcdTcxNjVcXHU3MTU1XFx1NzE4OFxcdTcxNjZcXHU3MTYyXFx1NzE0Q1xcdTcxNTZcXHU3MTZDXFx1NzE4RlxcdTcxRkJcXHU3MTg0XFx1NzE5NVxcdTcxQThcXHU3MUFDXFx1NzFEN1xcdTcxQjlcXHU3MUJFXFx1NzFEMlxcdTcxQzlcXHU3MUQ0XFx1NzFDRVxcdTcxRTBcXHU3MUVDXFx1NzFFN1xcdTcxRjVcXHU3MUZDXCJdLFxuICAgICAgW1wiZTBhMVwiLCBcIlxcdTcxRjlcXHU3MUZGXFx1NzIwRFxcdTcyMTBcXHU3MjFCXFx1NzIyOFxcdTcyMkRcXHU3MjJDXFx1NzIzMFxcdTcyMzJcXHU3MjNCXFx1NzIzQ1xcdTcyM0ZcXHU3MjQwXFx1NzI0NlxcdTcyNEJcXHU3MjU4XFx1NzI3NFxcdTcyN0VcXHU3MjgyXFx1NzI4MVxcdTcyODdcXHU3MjkyXFx1NzI5NlxcdTcyQTJcXHU3MkE3XFx1NzJCOVxcdTcyQjJcXHU3MkMzXFx1NzJDNlxcdTcyQzRcXHU3MkNFXFx1NzJEMlxcdTcyRTJcXHU3MkUwXFx1NzJFMVxcdTcyRjlcXHU3MkY3XFx1NTAwRlxcdTczMTdcXHU3MzBBXFx1NzMxQ1xcdTczMTZcXHU3MzFEXFx1NzMzNFxcdTczMkZcXHU3MzI5XFx1NzMyNVxcdTczM0VcXHU3MzRFXFx1NzM0RlxcdTlFRDhcXHU3MzU3XFx1NzM2QVxcdTczNjhcXHU3MzcwXFx1NzM3OFxcdTczNzVcXHU3MzdCXFx1NzM3QVxcdTczQzhcXHU3M0IzXFx1NzNDRVxcdTczQkJcXHU3M0MwXFx1NzNFNVxcdTczRUVcXHU3M0RFXFx1NzRBMlxcdTc0MDVcXHU3NDZGXFx1NzQyNVxcdTczRjhcXHU3NDMyXFx1NzQzQVxcdTc0NTVcXHU3NDNGXFx1NzQ1RlxcdTc0NTlcXHU3NDQxXFx1NzQ1Q1xcdTc0NjlcXHU3NDcwXFx1NzQ2M1xcdTc0NkFcXHU3NDc2XFx1NzQ3RVxcdTc0OEJcXHU3NDlFXFx1NzRBN1xcdTc0Q0FcXHU3NENGXFx1NzRENFxcdTczRjFcIl0sXG4gICAgICBbXCJlMWExXCIsIFwiXFx1NzRFMFxcdTc0RTNcXHU3NEU3XFx1NzRFOVxcdTc0RUVcXHU3NEYyXFx1NzRGMFxcdTc0RjFcXHU3NEY4XFx1NzRGN1xcdTc1MDRcXHU3NTAzXFx1NzUwNVxcdTc1MENcXHU3NTBFXFx1NzUwRFxcdTc1MTVcXHU3NTEzXFx1NzUxRVxcdTc1MjZcXHU3NTJDXFx1NzUzQ1xcdTc1NDRcXHU3NTREXFx1NzU0QVxcdTc1NDlcXHU3NTVCXFx1NzU0NlxcdTc1NUFcXHU3NTY5XFx1NzU2NFxcdTc1NjdcXHU3NTZCXFx1NzU2RFxcdTc1NzhcXHU3NTc2XFx1NzU4NlxcdTc1ODdcXHU3NTc0XFx1NzU4QVxcdTc1ODlcXHU3NTgyXFx1NzU5NFxcdTc1OUFcXHU3NTlEXFx1NzVBNVxcdTc1QTNcXHU3NUMyXFx1NzVCM1xcdTc1QzNcXHU3NUI1XFx1NzVCRFxcdTc1QjhcXHU3NUJDXFx1NzVCMVxcdTc1Q0RcXHU3NUNBXFx1NzVEMlxcdTc1RDlcXHU3NUUzXFx1NzVERVxcdTc1RkVcXHU3NUZGXFx1NzVGQ1xcdTc2MDFcXHU3NUYwXFx1NzVGQVxcdTc1RjJcXHU3NUYzXFx1NzYwQlxcdTc2MERcXHU3NjA5XFx1NzYxRlxcdTc2MjdcXHU3NjIwXFx1NzYyMVxcdTc2MjJcXHU3NjI0XFx1NzYzNFxcdTc2MzBcXHU3NjNCXFx1NzY0N1xcdTc2NDhcXHU3NjQ2XFx1NzY1Q1xcdTc2NThcXHU3NjYxXFx1NzY2MlxcdTc2NjhcXHU3NjY5XFx1NzY2QVxcdTc2NjdcXHU3NjZDXFx1NzY3MFwiXSxcbiAgICAgIFtcImUyYTFcIiwgXCJcXHU3NjcyXFx1NzY3NlxcdTc2NzhcXHU3NjdDXFx1NzY4MFxcdTc2ODNcXHU3Njg4XFx1NzY4QlxcdTc2OEVcXHU3Njk2XFx1NzY5M1xcdTc2OTlcXHU3NjlBXFx1NzZCMFxcdTc2QjRcXHU3NkI4XFx1NzZCOVxcdTc2QkFcXHU3NkMyXFx1NzZDRFxcdTc2RDZcXHU3NkQyXFx1NzZERVxcdTc2RTFcXHU3NkU1XFx1NzZFN1xcdTc2RUFcXHU4NjJGXFx1NzZGQlxcdTc3MDhcXHU3NzA3XFx1NzcwNFxcdTc3MjlcXHU3NzI0XFx1NzcxRVxcdTc3MjVcXHU3NzI2XFx1NzcxQlxcdTc3MzdcXHU3NzM4XFx1Nzc0N1xcdTc3NUFcXHU3NzY4XFx1Nzc2QlxcdTc3NUJcXHU3NzY1XFx1Nzc3RlxcdTc3N0VcXHU3Nzc5XFx1Nzc4RVxcdTc3OEJcXHU3NzkxXFx1NzdBMFxcdTc3OUVcXHU3N0IwXFx1NzdCNlxcdTc3QjlcXHU3N0JGXFx1NzdCQ1xcdTc3QkRcXHU3N0JCXFx1NzdDN1xcdTc3Q0RcXHU3N0Q3XFx1NzdEQVxcdTc3RENcXHU3N0UzXFx1NzdFRVxcdTc3RkNcXHU3ODBDXFx1NzgxMlxcdTc5MjZcXHU3ODIwXFx1NzkyQVxcdTc4NDVcXHU3ODhFXFx1Nzg3NFxcdTc4ODZcXHU3ODdDXFx1Nzg5QVxcdTc4OENcXHU3OEEzXFx1NzhCNVxcdTc4QUFcXHU3OEFGXFx1NzhEMVxcdTc4QzZcXHU3OENCXFx1NzhENFxcdTc4QkVcXHU3OEJDXFx1NzhDNVxcdTc4Q0FcXHU3OEVDXCJdLFxuICAgICAgW1wiZTNhMVwiLCBcIlxcdTc4RTdcXHU3OERBXFx1NzhGRFxcdTc4RjRcXHU3OTA3XFx1NzkxMlxcdTc5MTFcXHU3OTE5XFx1NzkyQ1xcdTc5MkJcXHU3OTQwXFx1Nzk2MFxcdTc5NTdcXHU3OTVGXFx1Nzk1QVxcdTc5NTVcXHU3OTUzXFx1Nzk3QVxcdTc5N0ZcXHU3OThBXFx1Nzk5RFxcdTc5QTdcXHU5RjRCXFx1NzlBQVxcdTc5QUVcXHU3OUIzXFx1NzlCOVxcdTc5QkFcXHU3OUM5XFx1NzlENVxcdTc5RTdcXHU3OUVDXFx1NzlFMVxcdTc5RTNcXHU3QTA4XFx1N0EwRFxcdTdBMThcXHU3QTE5XFx1N0EyMFxcdTdBMUZcXHU3OTgwXFx1N0EzMVxcdTdBM0JcXHU3QTNFXFx1N0EzN1xcdTdBNDNcXHU3QTU3XFx1N0E0OVxcdTdBNjFcXHU3QTYyXFx1N0E2OVxcdTlGOURcXHU3QTcwXFx1N0E3OVxcdTdBN0RcXHU3QTg4XFx1N0E5N1xcdTdBOTVcXHU3QTk4XFx1N0E5NlxcdTdBQTlcXHU3QUM4XFx1N0FCMFxcdTdBQjZcXHU3QUM1XFx1N0FDNFxcdTdBQkZcXHU5MDgzXFx1N0FDN1xcdTdBQ0FcXHU3QUNEXFx1N0FDRlxcdTdBRDVcXHU3QUQzXFx1N0FEOVxcdTdBREFcXHU3QUREXFx1N0FFMVxcdTdBRTJcXHU3QUU2XFx1N0FFRFxcdTdBRjBcXHU3QjAyXFx1N0IwRlxcdTdCMEFcXHU3QjA2XFx1N0IzM1xcdTdCMThcXHU3QjE5XFx1N0IxRVxcdTdCMzVcXHU3QjI4XFx1N0IzNlxcdTdCNTBcIl0sXG4gICAgICBbXCJlNGExXCIsIFwiXFx1N0I3QVxcdTdCMDRcXHU3QjREXFx1N0IwQlxcdTdCNENcXHU3QjQ1XFx1N0I3NVxcdTdCNjVcXHU3Qjc0XFx1N0I2N1xcdTdCNzBcXHU3QjcxXFx1N0I2Q1xcdTdCNkVcXHU3QjlEXFx1N0I5OFxcdTdCOUZcXHU3QjhEXFx1N0I5Q1xcdTdCOUFcXHU3QjhCXFx1N0I5MlxcdTdCOEZcXHU3QjVEXFx1N0I5OVxcdTdCQ0JcXHU3QkMxXFx1N0JDQ1xcdTdCQ0ZcXHU3QkI0XFx1N0JDNlxcdTdCRERcXHU3QkU5XFx1N0MxMVxcdTdDMTRcXHU3QkU2XFx1N0JFNVxcdTdDNjBcXHU3QzAwXFx1N0MwN1xcdTdDMTNcXHU3QkYzXFx1N0JGN1xcdTdDMTdcXHU3QzBEXFx1N0JGNlxcdTdDMjNcXHU3QzI3XFx1N0MyQVxcdTdDMUZcXHU3QzM3XFx1N0MyQlxcdTdDM0RcXHU3QzRDXFx1N0M0M1xcdTdDNTRcXHU3QzRGXFx1N0M0MFxcdTdDNTBcXHU3QzU4XFx1N0M1RlxcdTdDNjRcXHU3QzU2XFx1N0M2NVxcdTdDNkNcXHU3Qzc1XFx1N0M4M1xcdTdDOTBcXHU3Q0E0XFx1N0NBRFxcdTdDQTJcXHU3Q0FCXFx1N0NBMVxcdTdDQThcXHU3Q0IzXFx1N0NCMlxcdTdDQjFcXHU3Q0FFXFx1N0NCOVxcdTdDQkRcXHU3Q0MwXFx1N0NDNVxcdTdDQzJcXHU3Q0Q4XFx1N0NEMlxcdTdDRENcXHU3Q0UyXFx1OUIzQlxcdTdDRUZcXHU3Q0YyXFx1N0NGNFxcdTdDRjZcXHU3Q0ZBXFx1N0QwNlwiXSxcbiAgICAgIFtcImU1YTFcIiwgXCJcXHU3RDAyXFx1N0QxQ1xcdTdEMTVcXHU3RDBBXFx1N0Q0NVxcdTdENEJcXHU3RDJFXFx1N0QzMlxcdTdEM0ZcXHU3RDM1XFx1N0Q0NlxcdTdENzNcXHU3RDU2XFx1N0Q0RVxcdTdENzJcXHU3RDY4XFx1N0Q2RVxcdTdENEZcXHU3RDYzXFx1N0Q5M1xcdTdEODlcXHU3RDVCXFx1N0Q4RlxcdTdEN0RcXHU3RDlCXFx1N0RCQVxcdTdEQUVcXHU3REEzXFx1N0RCNVxcdTdEQzdcXHU3REJEXFx1N0RBQlxcdTdFM0RcXHU3REEyXFx1N0RBRlxcdTdERENcXHU3REI4XFx1N0Q5RlxcdTdEQjBcXHU3REQ4XFx1N0RERFxcdTdERTRcXHU3RERFXFx1N0RGQlxcdTdERjJcXHU3REUxXFx1N0UwNVxcdTdFMEFcXHU3RTIzXFx1N0UyMVxcdTdFMTJcXHU3RTMxXFx1N0UxRlxcdTdFMDlcXHU3RTBCXFx1N0UyMlxcdTdFNDZcXHU3RTY2XFx1N0UzQlxcdTdFMzVcXHU3RTM5XFx1N0U0M1xcdTdFMzdcXHU3RTMyXFx1N0UzQVxcdTdFNjdcXHU3RTVEXFx1N0U1NlxcdTdFNUVcXHU3RTU5XFx1N0U1QVxcdTdFNzlcXHU3RTZBXFx1N0U2OVxcdTdFN0NcXHU3RTdCXFx1N0U4M1xcdTdERDVcXHU3RTdEXFx1OEZBRVxcdTdFN0ZcXHU3RTg4XFx1N0U4OVxcdTdFOENcXHU3RTkyXFx1N0U5MFxcdTdFOTNcXHU3RTk0XFx1N0U5NlxcdTdFOEVcXHU3RTlCXFx1N0U5Q1xcdTdGMzhcXHU3RjNBXCJdLFxuICAgICAgW1wiZTZhMVwiLCBcIlxcdTdGNDVcXHU3RjRDXFx1N0Y0RFxcdTdGNEVcXHU3RjUwXFx1N0Y1MVxcdTdGNTVcXHU3RjU0XFx1N0Y1OFxcdTdGNUZcXHU3RjYwXFx1N0Y2OFxcdTdGNjlcXHU3RjY3XFx1N0Y3OFxcdTdGODJcXHU3Rjg2XFx1N0Y4M1xcdTdGODhcXHU3Rjg3XFx1N0Y4Q1xcdTdGOTRcXHU3RjlFXFx1N0Y5RFxcdTdGOUFcXHU3RkEzXFx1N0ZBRlxcdTdGQjJcXHU3RkI5XFx1N0ZBRVxcdTdGQjZcXHU3RkI4XFx1OEI3MVxcdTdGQzVcXHU3RkM2XFx1N0ZDQVxcdTdGRDVcXHU3RkQ0XFx1N0ZFMVxcdTdGRTZcXHU3RkU5XFx1N0ZGM1xcdTdGRjlcXHU5OERDXFx1ODAwNlxcdTgwMDRcXHU4MDBCXFx1ODAxMlxcdTgwMThcXHU4MDE5XFx1ODAxQ1xcdTgwMjFcXHU4MDI4XFx1ODAzRlxcdTgwM0JcXHU4MDRBXFx1ODA0NlxcdTgwNTJcXHU4MDU4XFx1ODA1QVxcdTgwNUZcXHU4MDYyXFx1ODA2OFxcdTgwNzNcXHU4MDcyXFx1ODA3MFxcdTgwNzZcXHU4MDc5XFx1ODA3RFxcdTgwN0ZcXHU4MDg0XFx1ODA4NlxcdTgwODVcXHU4MDlCXFx1ODA5M1xcdTgwOUFcXHU4MEFEXFx1NTE5MFxcdTgwQUNcXHU4MERCXFx1ODBFNVxcdTgwRDlcXHU4MEREXFx1ODBDNFxcdTgwREFcXHU4MEQ2XFx1ODEwOVxcdTgwRUZcXHU4MEYxXFx1ODExQlxcdTgxMjlcXHU4MTIzXFx1ODEyRlxcdTgxNEJcIl0sXG4gICAgICBbXCJlN2ExXCIsIFwiXFx1OTY4QlxcdTgxNDZcXHU4MTNFXFx1ODE1M1xcdTgxNTFcXHU4MEZDXFx1ODE3MVxcdTgxNkVcXHU4MTY1XFx1ODE2NlxcdTgxNzRcXHU4MTgzXFx1ODE4OFxcdTgxOEFcXHU4MTgwXFx1ODE4MlxcdTgxQTBcXHU4MTk1XFx1ODFBNFxcdTgxQTNcXHU4MTVGXFx1ODE5M1xcdTgxQTlcXHU4MUIwXFx1ODFCNVxcdTgxQkVcXHU4MUI4XFx1ODFCRFxcdTgxQzBcXHU4MUMyXFx1ODFCQVxcdTgxQzlcXHU4MUNEXFx1ODFEMVxcdTgxRDlcXHU4MUQ4XFx1ODFDOFxcdTgxREFcXHU4MURGXFx1ODFFMFxcdTgxRTdcXHU4MUZBXFx1ODFGQlxcdTgxRkVcXHU4MjAxXFx1ODIwMlxcdTgyMDVcXHU4MjA3XFx1ODIwQVxcdTgyMERcXHU4MjEwXFx1ODIxNlxcdTgyMjlcXHU4MjJCXFx1ODIzOFxcdTgyMzNcXHU4MjQwXFx1ODI1OVxcdTgyNThcXHU4MjVEXFx1ODI1QVxcdTgyNUZcXHU4MjY0XFx1ODI2MlxcdTgyNjhcXHU4MjZBXFx1ODI2QlxcdTgyMkVcXHU4MjcxXFx1ODI3N1xcdTgyNzhcXHU4MjdFXFx1ODI4RFxcdTgyOTJcXHU4MkFCXFx1ODI5RlxcdTgyQkJcXHU4MkFDXFx1ODJFMVxcdTgyRTNcXHU4MkRGXFx1ODJEMlxcdTgyRjRcXHU4MkYzXFx1ODJGQVxcdTgzOTNcXHU4MzAzXFx1ODJGQlxcdTgyRjlcXHU4MkRFXFx1ODMwNlxcdTgyRENcXHU4MzA5XFx1ODJEOVwiXSxcbiAgICAgIFtcImU4YTFcIiwgXCJcXHU4MzM1XFx1ODMzNFxcdTgzMTZcXHU4MzMyXFx1ODMzMVxcdTgzNDBcXHU4MzM5XFx1ODM1MFxcdTgzNDVcXHU4MzJGXFx1ODMyQlxcdTgzMTdcXHU4MzE4XFx1ODM4NVxcdTgzOUFcXHU4M0FBXFx1ODM5RlxcdTgzQTJcXHU4Mzk2XFx1ODMyM1xcdTgzOEVcXHU4Mzg3XFx1ODM4QVxcdTgzN0NcXHU4M0I1XFx1ODM3M1xcdTgzNzVcXHU4M0EwXFx1ODM4OVxcdTgzQThcXHU4M0Y0XFx1ODQxM1xcdTgzRUJcXHU4M0NFXFx1ODNGRFxcdTg0MDNcXHU4M0Q4XFx1ODQwQlxcdTgzQzFcXHU4M0Y3XFx1ODQwN1xcdTgzRTBcXHU4M0YyXFx1ODQwRFxcdTg0MjJcXHU4NDIwXFx1ODNCRFxcdTg0MzhcXHU4NTA2XFx1ODNGQlxcdTg0NkRcXHU4NDJBXFx1ODQzQ1xcdTg1NUFcXHU4NDg0XFx1ODQ3N1xcdTg0NkJcXHU4NEFEXFx1ODQ2RVxcdTg0ODJcXHU4NDY5XFx1ODQ0NlxcdTg0MkNcXHU4NDZGXFx1ODQ3OVxcdTg0MzVcXHU4NENBXFx1ODQ2MlxcdTg0QjlcXHU4NEJGXFx1ODQ5RlxcdTg0RDlcXHU4NENEXFx1ODRCQlxcdTg0REFcXHU4NEQwXFx1ODRDMVxcdTg0QzZcXHU4NEQ2XFx1ODRBMVxcdTg1MjFcXHU4NEZGXFx1ODRGNFxcdTg1MTdcXHU4NTE4XFx1ODUyQ1xcdTg1MUZcXHU4NTE1XFx1ODUxNFxcdTg0RkNcXHU4NTQwXFx1ODU2M1xcdTg1NThcXHU4NTQ4XCJdLFxuICAgICAgW1wiZTlhMVwiLCBcIlxcdTg1NDFcXHU4NjAyXFx1ODU0QlxcdTg1NTVcXHU4NTgwXFx1ODVBNFxcdTg1ODhcXHU4NTkxXFx1ODU4QVxcdTg1QThcXHU4NTZEXFx1ODU5NFxcdTg1OUJcXHU4NUVBXFx1ODU4N1xcdTg1OUNcXHU4NTc3XFx1ODU3RVxcdTg1OTBcXHU4NUM5XFx1ODVCQVxcdTg1Q0ZcXHU4NUI5XFx1ODVEMFxcdTg1RDVcXHU4NUREXFx1ODVFNVxcdTg1RENcXHU4NUY5XFx1ODYwQVxcdTg2MTNcXHU4NjBCXFx1ODVGRVxcdTg1RkFcXHU4NjA2XFx1ODYyMlxcdTg2MUFcXHU4NjMwXFx1ODYzRlxcdTg2NERcXHU0RTU1XFx1ODY1NFxcdTg2NUZcXHU4NjY3XFx1ODY3MVxcdTg2OTNcXHU4NkEzXFx1ODZBOVxcdTg2QUFcXHU4NjhCXFx1ODY4Q1xcdTg2QjZcXHU4NkFGXFx1ODZDNFxcdTg2QzZcXHU4NkIwXFx1ODZDOVxcdTg4MjNcXHU4NkFCXFx1ODZENFxcdTg2REVcXHU4NkU5XFx1ODZFQ1xcdTg2REZcXHU4NkRCXFx1ODZFRlxcdTg3MTJcXHU4NzA2XFx1ODcwOFxcdTg3MDBcXHU4NzAzXFx1ODZGQlxcdTg3MTFcXHU4NzA5XFx1ODcwRFxcdTg2RjlcXHU4NzBBXFx1ODczNFxcdTg3M0ZcXHU4NzM3XFx1ODczQlxcdTg3MjVcXHU4NzI5XFx1ODcxQVxcdTg3NjBcXHU4NzVGXFx1ODc3OFxcdTg3NENcXHU4NzRFXFx1ODc3NFxcdTg3NTdcXHU4NzY4XFx1ODc2RVxcdTg3NTlcIl0sXG4gICAgICBbXCJlYWExXCIsIFwiXFx1ODc1M1xcdTg3NjNcXHU4NzZBXFx1ODgwNVxcdTg3QTJcXHU4NzlGXFx1ODc4MlxcdTg3QUZcXHU4N0NCXFx1ODdCRFxcdTg3QzBcXHU4N0QwXFx1OTZENlxcdTg3QUJcXHU4N0M0XFx1ODdCM1xcdTg3QzdcXHU4N0M2XFx1ODdCQlxcdTg3RUZcXHU4N0YyXFx1ODdFMFxcdTg4MEZcXHU4ODBEXFx1ODdGRVxcdTg3RjZcXHU4N0Y3XFx1ODgwRVxcdTg3RDJcXHU4ODExXFx1ODgxNlxcdTg4MTVcXHU4ODIyXFx1ODgyMVxcdTg4MzFcXHU4ODM2XFx1ODgzOVxcdTg4MjdcXHU4ODNCXFx1ODg0NFxcdTg4NDJcXHU4ODUyXFx1ODg1OVxcdTg4NUVcXHU4ODYyXFx1ODg2QlxcdTg4ODFcXHU4ODdFXFx1ODg5RVxcdTg4NzVcXHU4ODdEXFx1ODhCNVxcdTg4NzJcXHU4ODgyXFx1ODg5N1xcdTg4OTJcXHU4OEFFXFx1ODg5OVxcdTg4QTJcXHU4ODhEXFx1ODhBNFxcdTg4QjBcXHU4OEJGXFx1ODhCMVxcdTg4QzNcXHU4OEM0XFx1ODhENFxcdTg4RDhcXHU4OEQ5XFx1ODhERFxcdTg4RjlcXHU4OTAyXFx1ODhGQ1xcdTg4RjRcXHU4OEU4XFx1ODhGMlxcdTg5MDRcXHU4OTBDXFx1ODkwQVxcdTg5MTNcXHU4OTQzXFx1ODkxRVxcdTg5MjVcXHU4OTJBXFx1ODkyQlxcdTg5NDFcXHU4OTQ0XFx1ODkzQlxcdTg5MzZcXHU4OTM4XFx1ODk0Q1xcdTg5MURcXHU4OTYwXFx1ODk1RVwiXSxcbiAgICAgIFtcImViYTFcIiwgXCJcXHU4OTY2XFx1ODk2NFxcdTg5NkRcXHU4OTZBXFx1ODk2RlxcdTg5NzRcXHU4OTc3XFx1ODk3RVxcdTg5ODNcXHU4OTg4XFx1ODk4QVxcdTg5OTNcXHU4OTk4XFx1ODlBMVxcdTg5QTlcXHU4OUE2XFx1ODlBQ1xcdTg5QUZcXHU4OUIyXFx1ODlCQVxcdTg5QkRcXHU4OUJGXFx1ODlDMFxcdTg5REFcXHU4OURDXFx1ODlERFxcdTg5RTdcXHU4OUY0XFx1ODlGOFxcdThBMDNcXHU4QTE2XFx1OEExMFxcdThBMENcXHU4QTFCXFx1OEExRFxcdThBMjVcXHU4QTM2XFx1OEE0MVxcdThBNUJcXHU4QTUyXFx1OEE0NlxcdThBNDhcXHU4QTdDXFx1OEE2RFxcdThBNkNcXHU4QTYyXFx1OEE4NVxcdThBODJcXHU4QTg0XFx1OEFBOFxcdThBQTFcXHU4QTkxXFx1OEFBNVxcdThBQTZcXHU4QTlBXFx1OEFBM1xcdThBQzRcXHU4QUNEXFx1OEFDMlxcdThBREFcXHU4QUVCXFx1OEFGM1xcdThBRTdcXHU4QUU0XFx1OEFGMVxcdThCMTRcXHU4QUUwXFx1OEFFMlxcdThBRjdcXHU4QURFXFx1OEFEQlxcdThCMENcXHU4QjA3XFx1OEIxQVxcdThBRTFcXHU4QjE2XFx1OEIxMFxcdThCMTdcXHU4QjIwXFx1OEIzM1xcdTk3QUJcXHU4QjI2XFx1OEIyQlxcdThCM0VcXHU4QjI4XFx1OEI0MVxcdThCNENcXHU4QjRGXFx1OEI0RVxcdThCNDlcXHU4QjU2XFx1OEI1QlxcdThCNUFcXHU4QjZCXCJdLFxuICAgICAgW1wiZWNhMVwiLCBcIlxcdThCNUZcXHU4QjZDXFx1OEI2RlxcdThCNzRcXHU4QjdEXFx1OEI4MFxcdThCOENcXHU4QjhFXFx1OEI5MlxcdThCOTNcXHU4Qjk2XFx1OEI5OVxcdThCOUFcXHU4QzNBXFx1OEM0MVxcdThDM0ZcXHU4QzQ4XFx1OEM0Q1xcdThDNEVcXHU4QzUwXFx1OEM1NVxcdThDNjJcXHU4QzZDXFx1OEM3OFxcdThDN0FcXHU4QzgyXFx1OEM4OVxcdThDODVcXHU4QzhBXFx1OEM4RFxcdThDOEVcXHU4Qzk0XFx1OEM3Q1xcdThDOThcXHU2MjFEXFx1OENBRFxcdThDQUFcXHU4Q0JEXFx1OENCMlxcdThDQjNcXHU4Q0FFXFx1OENCNlxcdThDQzhcXHU4Q0MxXFx1OENFNFxcdThDRTNcXHU4Q0RBXFx1OENGRFxcdThDRkFcXHU4Q0ZCXFx1OEQwNFxcdThEMDVcXHU4RDBBXFx1OEQwN1xcdThEMEZcXHU4RDBEXFx1OEQxMFxcdTlGNEVcXHU4RDEzXFx1OENDRFxcdThEMTRcXHU4RDE2XFx1OEQ2N1xcdThENkRcXHU4RDcxXFx1OEQ3M1xcdThEODFcXHU4RDk5XFx1OERDMlxcdThEQkVcXHU4REJBXFx1OERDRlxcdThEREFcXHU4REQ2XFx1OERDQ1xcdThEREJcXHU4RENCXFx1OERFQVxcdThERUJcXHU4RERGXFx1OERFM1xcdThERkNcXHU4RTA4XFx1OEUwOVxcdThERkZcXHU4RTFEXFx1OEUxRVxcdThFMTBcXHU4RTFGXFx1OEU0MlxcdThFMzVcXHU4RTMwXFx1OEUzNFxcdThFNEFcIl0sXG4gICAgICBbXCJlZGExXCIsIFwiXFx1OEU0N1xcdThFNDlcXHU4RTRDXFx1OEU1MFxcdThFNDhcXHU4RTU5XFx1OEU2NFxcdThFNjBcXHU4RTJBXFx1OEU2M1xcdThFNTVcXHU4RTc2XFx1OEU3MlxcdThFN0NcXHU4RTgxXFx1OEU4N1xcdThFODVcXHU4RTg0XFx1OEU4QlxcdThFOEFcXHU4RTkzXFx1OEU5MVxcdThFOTRcXHU4RTk5XFx1OEVBQVxcdThFQTFcXHU4RUFDXFx1OEVCMFxcdThFQzZcXHU4RUIxXFx1OEVCRVxcdThFQzVcXHU4RUM4XFx1OEVDQlxcdThFREJcXHU4RUUzXFx1OEVGQ1xcdThFRkJcXHU4RUVCXFx1OEVGRVxcdThGMEFcXHU4RjA1XFx1OEYxNVxcdThGMTJcXHU4RjE5XFx1OEYxM1xcdThGMUNcXHU4RjFGXFx1OEYxQlxcdThGMENcXHU4RjI2XFx1OEYzM1xcdThGM0JcXHU4RjM5XFx1OEY0NVxcdThGNDJcXHU4RjNFXFx1OEY0Q1xcdThGNDlcXHU4RjQ2XFx1OEY0RVxcdThGNTdcXHU4RjVDXFx1OEY2MlxcdThGNjNcXHU4RjY0XFx1OEY5Q1xcdThGOUZcXHU4RkEzXFx1OEZBRFxcdThGQUZcXHU4RkI3XFx1OEZEQVxcdThGRTVcXHU4RkUyXFx1OEZFQVxcdThGRUZcXHU5MDg3XFx1OEZGNFxcdTkwMDVcXHU4RkY5XFx1OEZGQVxcdTkwMTFcXHU5MDE1XFx1OTAyMVxcdTkwMERcXHU5MDFFXFx1OTAxNlxcdTkwMEJcXHU5MDI3XFx1OTAzNlxcdTkwMzVcXHU5MDM5XFx1OEZGOFwiXSxcbiAgICAgIFtcImVlYTFcIiwgXCJcXHU5MDRGXFx1OTA1MFxcdTkwNTFcXHU5MDUyXFx1OTAwRVxcdTkwNDlcXHU5MDNFXFx1OTA1NlxcdTkwNThcXHU5MDVFXFx1OTA2OFxcdTkwNkZcXHU5MDc2XFx1OTZBOFxcdTkwNzJcXHU5MDgyXFx1OTA3RFxcdTkwODFcXHU5MDgwXFx1OTA4QVxcdTkwODlcXHU5MDhGXFx1OTBBOFxcdTkwQUZcXHU5MEIxXFx1OTBCNVxcdTkwRTJcXHU5MEU0XFx1NjI0OFxcdTkwREJcXHU5MTAyXFx1OTExMlxcdTkxMTlcXHU5MTMyXFx1OTEzMFxcdTkxNEFcXHU5MTU2XFx1OTE1OFxcdTkxNjNcXHU5MTY1XFx1OTE2OVxcdTkxNzNcXHU5MTcyXFx1OTE4QlxcdTkxODlcXHU5MTgyXFx1OTFBMlxcdTkxQUJcXHU5MUFGXFx1OTFBQVxcdTkxQjVcXHU5MUI0XFx1OTFCQVxcdTkxQzBcXHU5MUMxXFx1OTFDOVxcdTkxQ0JcXHU5MUQwXFx1OTFENlxcdTkxREZcXHU5MUUxXFx1OTFEQlxcdTkxRkNcXHU5MUY1XFx1OTFGNlxcdTkyMUVcXHU5MUZGXFx1OTIxNFxcdTkyMkNcXHU5MjE1XFx1OTIxMVxcdTkyNUVcXHU5MjU3XFx1OTI0NVxcdTkyNDlcXHU5MjY0XFx1OTI0OFxcdTkyOTVcXHU5MjNGXFx1OTI0QlxcdTkyNTBcXHU5MjlDXFx1OTI5NlxcdTkyOTNcXHU5MjlCXFx1OTI1QVxcdTkyQ0ZcXHU5MkI5XFx1OTJCN1xcdTkyRTlcXHU5MzBGXFx1OTJGQVxcdTkzNDRcXHU5MzJFXCJdLFxuICAgICAgW1wiZWZhMVwiLCBcIlxcdTkzMTlcXHU5MzIyXFx1OTMxQVxcdTkzMjNcXHU5MzNBXFx1OTMzNVxcdTkzM0JcXHU5MzVDXFx1OTM2MFxcdTkzN0NcXHU5MzZFXFx1OTM1NlxcdTkzQjBcXHU5M0FDXFx1OTNBRFxcdTkzOTRcXHU5M0I5XFx1OTNENlxcdTkzRDdcXHU5M0U4XFx1OTNFNVxcdTkzRDhcXHU5M0MzXFx1OTNERFxcdTkzRDBcXHU5M0M4XFx1OTNFNFxcdTk0MUFcXHU5NDE0XFx1OTQxM1xcdTk0MDNcXHU5NDA3XFx1OTQxMFxcdTk0MzZcXHU5NDJCXFx1OTQzNVxcdTk0MjFcXHU5NDNBXFx1OTQ0MVxcdTk0NTJcXHU5NDQ0XFx1OTQ1QlxcdTk0NjBcXHU5NDYyXFx1OTQ1RVxcdTk0NkFcXHU5MjI5XFx1OTQ3MFxcdTk0NzVcXHU5NDc3XFx1OTQ3RFxcdTk0NUFcXHU5NDdDXFx1OTQ3RVxcdTk0ODFcXHU5NDdGXFx1OTU4MlxcdTk1ODdcXHU5NThBXFx1OTU5NFxcdTk1OTZcXHU5NTk4XFx1OTU5OVxcdTk1QTBcXHU5NUE4XFx1OTVBN1xcdTk1QURcXHU5NUJDXFx1OTVCQlxcdTk1QjlcXHU5NUJFXFx1OTVDQVxcdTZGRjZcXHU5NUMzXFx1OTVDRFxcdTk1Q0NcXHU5NUQ1XFx1OTVENFxcdTk1RDZcXHU5NURDXFx1OTVFMVxcdTk1RTVcXHU5NUUyXFx1OTYyMVxcdTk2MjhcXHU5NjJFXFx1OTYyRlxcdTk2NDJcXHU5NjRDXFx1OTY0RlxcdTk2NEJcXHU5Njc3XFx1OTY1Q1xcdTk2NUVcIl0sXG4gICAgICBbXCJmMGExXCIsIFwiXFx1OTY1RFxcdTk2NUZcXHU5NjY2XFx1OTY3MlxcdTk2NkNcXHU5NjhEXFx1OTY5OFxcdTk2OTVcXHU5Njk3XFx1OTZBQVxcdTk2QTdcXHU5NkIxXFx1OTZCMlxcdTk2QjBcXHU5NkI0XFx1OTZCNlxcdTk2QjhcXHU5NkI5XFx1OTZDRVxcdTk2Q0JcXHU5NkM5XFx1OTZDRFxcdTg5NERcXHU5NkRDXFx1OTcwRFxcdTk2RDVcXHU5NkY5XFx1OTcwNFxcdTk3MDZcXHU5NzA4XFx1OTcxM1xcdTk3MEVcXHU5NzExXFx1OTcwRlxcdTk3MTZcXHU5NzE5XFx1OTcyNFxcdTk3MkFcXHU5NzMwXFx1OTczOVxcdTk3M0RcXHU5NzNFXFx1OTc0NFxcdTk3NDZcXHU5NzQ4XFx1OTc0MlxcdTk3NDlcXHU5NzVDXFx1OTc2MFxcdTk3NjRcXHU5NzY2XFx1OTc2OFxcdTUyRDJcXHU5NzZCXFx1OTc3MVxcdTk3NzlcXHU5Nzg1XFx1OTc3Q1xcdTk3ODFcXHU5NzdBXFx1OTc4NlxcdTk3OEJcXHU5NzhGXFx1OTc5MFxcdTk3OUNcXHU5N0E4XFx1OTdBNlxcdTk3QTNcXHU5N0IzXFx1OTdCNFxcdTk3QzNcXHU5N0M2XFx1OTdDOFxcdTk3Q0JcXHU5N0RDXFx1OTdFRFxcdTlGNEZcXHU5N0YyXFx1N0FERlxcdTk3RjZcXHU5N0Y1XFx1OTgwRlxcdTk4MENcXHU5ODM4XFx1OTgyNFxcdTk4MjFcXHU5ODM3XFx1OTgzRFxcdTk4NDZcXHU5ODRGXFx1OTg0QlxcdTk4NkJcXHU5ODZGXFx1OTg3MFwiXSxcbiAgICAgIFtcImYxYTFcIiwgXCJcXHU5ODcxXFx1OTg3NFxcdTk4NzNcXHU5OEFBXFx1OThBRlxcdTk4QjFcXHU5OEI2XFx1OThDNFxcdTk4QzNcXHU5OEM2XFx1OThFOVxcdTk4RUJcXHU5OTAzXFx1OTkwOVxcdTk5MTJcXHU5OTE0XFx1OTkxOFxcdTk5MjFcXHU5OTFEXFx1OTkxRVxcdTk5MjRcXHU5OTIwXFx1OTkyQ1xcdTk5MkVcXHU5OTNEXFx1OTkzRVxcdTk5NDJcXHU5OTQ5XFx1OTk0NVxcdTk5NTBcXHU5OTRCXFx1OTk1MVxcdTk5NTJcXHU5OTRDXFx1OTk1NVxcdTk5OTdcXHU5OTk4XFx1OTlBNVxcdTk5QURcXHU5OUFFXFx1OTlCQ1xcdTk5REZcXHU5OURCXFx1OTlERFxcdTk5RDhcXHU5OUQxXFx1OTlFRFxcdTk5RUVcXHU5OUYxXFx1OTlGMlxcdTk5RkJcXHU5OUY4XFx1OUEwMVxcdTlBMEZcXHU5QTA1XFx1OTlFMlxcdTlBMTlcXHU5QTJCXFx1OUEzN1xcdTlBNDVcXHU5QTQyXFx1OUE0MFxcdTlBNDNcXHU5QTNFXFx1OUE1NVxcdTlBNERcXHU5QTVCXFx1OUE1N1xcdTlBNUZcXHU5QTYyXFx1OUE2NVxcdTlBNjRcXHU5QTY5XFx1OUE2QlxcdTlBNkFcXHU5QUFEXFx1OUFCMFxcdTlBQkNcXHU5QUMwXFx1OUFDRlxcdTlBRDFcXHU5QUQzXFx1OUFENFxcdTlBREVcXHU5QURGXFx1OUFFMlxcdTlBRTNcXHU5QUU2XFx1OUFFRlxcdTlBRUJcXHU5QUVFXFx1OUFGNFxcdTlBRjFcXHU5QUY3XCJdLFxuICAgICAgW1wiZjJhMVwiLCBcIlxcdTlBRkJcXHU5QjA2XFx1OUIxOFxcdTlCMUFcXHU5QjFGXFx1OUIyMlxcdTlCMjNcXHU5QjI1XFx1OUIyN1xcdTlCMjhcXHU5QjI5XFx1OUIyQVxcdTlCMkVcXHU5QjJGXFx1OUIzMlxcdTlCNDRcXHU5QjQzXFx1OUI0RlxcdTlCNERcXHU5QjRFXFx1OUI1MVxcdTlCNThcXHU5Qjc0XFx1OUI5M1xcdTlCODNcXHU5QjkxXFx1OUI5NlxcdTlCOTdcXHU5QjlGXFx1OUJBMFxcdTlCQThcXHU5QkI0XFx1OUJDMFxcdTlCQ0FcXHU5QkI5XFx1OUJDNlxcdTlCQ0ZcXHU5QkQxXFx1OUJEMlxcdTlCRTNcXHU5QkUyXFx1OUJFNFxcdTlCRDRcXHU5QkUxXFx1OUMzQVxcdTlCRjJcXHU5QkYxXFx1OUJGMFxcdTlDMTVcXHU5QzE0XFx1OUMwOVxcdTlDMTNcXHU5QzBDXFx1OUMwNlxcdTlDMDhcXHU5QzEyXFx1OUMwQVxcdTlDMDRcXHU5QzJFXFx1OUMxQlxcdTlDMjVcXHU5QzI0XFx1OUMyMVxcdTlDMzBcXHU5QzQ3XFx1OUMzMlxcdTlDNDZcXHU5QzNFXFx1OUM1QVxcdTlDNjBcXHU5QzY3XFx1OUM3NlxcdTlDNzhcXHU5Q0U3XFx1OUNFQ1xcdTlDRjBcXHU5RDA5XFx1OUQwOFxcdTlDRUJcXHU5RDAzXFx1OUQwNlxcdTlEMkFcXHU5RDI2XFx1OURBRlxcdTlEMjNcXHU5RDFGXFx1OUQ0NFxcdTlEMTVcXHU5RDEyXFx1OUQ0MVxcdTlEM0ZcXHU5RDNFXFx1OUQ0NlxcdTlENDhcIl0sXG4gICAgICBbXCJmM2ExXCIsIFwiXFx1OUQ1RFxcdTlENUVcXHU5RDY0XFx1OUQ1MVxcdTlENTBcXHU5RDU5XFx1OUQ3MlxcdTlEODlcXHU5RDg3XFx1OURBQlxcdTlENkZcXHU5RDdBXFx1OUQ5QVxcdTlEQTRcXHU5REE5XFx1OURCMlxcdTlEQzRcXHU5REMxXFx1OURCQlxcdTlEQjhcXHU5REJBXFx1OURDNlxcdTlEQ0ZcXHU5REMyXFx1OUREOVxcdTlERDNcXHU5REY4XFx1OURFNlxcdTlERURcXHU5REVGXFx1OURGRFxcdTlFMUFcXHU5RTFCXFx1OUUxRVxcdTlFNzVcXHU5RTc5XFx1OUU3RFxcdTlFODFcXHU5RTg4XFx1OUU4QlxcdTlFOENcXHU5RTkyXFx1OUU5NVxcdTlFOTFcXHU5RTlEXFx1OUVBNVxcdTlFQTlcXHU5RUI4XFx1OUVBQVxcdTlFQURcXHU5NzYxXFx1OUVDQ1xcdTlFQ0VcXHU5RUNGXFx1OUVEMFxcdTlFRDRcXHU5RURDXFx1OUVERVxcdTlFRERcXHU5RUUwXFx1OUVFNVxcdTlFRThcXHU5RUVGXFx1OUVGNFxcdTlFRjZcXHU5RUY3XFx1OUVGOVxcdTlFRkJcXHU5RUZDXFx1OUVGRFxcdTlGMDdcXHU5RjA4XFx1NzZCN1xcdTlGMTVcXHU5RjIxXFx1OUYyQ1xcdTlGM0VcXHU5RjRBXFx1OUY1MlxcdTlGNTRcXHU5RjYzXFx1OUY1RlxcdTlGNjBcXHU5RjYxXFx1OUY2NlxcdTlGNjdcXHU5RjZDXFx1OUY2QVxcdTlGNzdcXHU5RjcyXFx1OUY3NlxcdTlGOTVcXHU5RjlDXFx1OUZBMFwiXSxcbiAgICAgIFtcImY0YTFcIiwgXCJcXHU1ODJGXFx1NjlDN1xcdTkwNTlcXHU3NDY0XFx1NTFEQ1xcdTcxOTlcIl0sXG4gICAgICBbXCJmOWExXCIsIFwiXFx1N0U4QVxcdTg5MUNcXHU5MzQ4XFx1OTI4OFxcdTg0RENcXHU0RkM5XFx1NzBCQlxcdTY2MzFcXHU2OEM4XFx1OTJGOVxcdTY2RkJcXHU1RjQ1XFx1NEUyOFxcdTRFRTFcXHU0RUZDXFx1NEYwMFxcdTRGMDNcXHU0RjM5XFx1NEY1NlxcdTRGOTJcXHU0RjhBXFx1NEY5QVxcdTRGOTRcXHU0RkNEXFx1NTA0MFxcdTUwMjJcXHU0RkZGXFx1NTAxRVxcdTUwNDZcXHU1MDcwXFx1NTA0MlxcdTUwOTRcXHU1MEY0XFx1NTBEOFxcdTUxNEFcXHU1MTY0XFx1NTE5RFxcdTUxQkVcXHU1MUVDXFx1NTIxNVxcdTUyOUNcXHU1MkE2XFx1NTJDMFxcdTUyREJcXHU1MzAwXFx1NTMwN1xcdTUzMjRcXHU1MzcyXFx1NTM5M1xcdTUzQjJcXHU1M0REXFx1RkEwRVxcdTU0OUNcXHU1NDhBXFx1NTRBOVxcdTU0RkZcXHU1NTg2XFx1NTc1OVxcdTU3NjVcXHU1N0FDXFx1NTdDOFxcdTU3QzdcXHVGQTBGXFx1RkExMFxcdTU4OUVcXHU1OEIyXFx1NTkwQlxcdTU5NTNcXHU1OTVCXFx1NTk1RFxcdTU5NjNcXHU1OUE0XFx1NTlCQVxcdTVCNTZcXHU1QkMwXFx1NzUyRlxcdTVCRDhcXHU1QkVDXFx1NUMxRVxcdTVDQTZcXHU1Q0JBXFx1NUNGNVxcdTVEMjdcXHU1RDUzXFx1RkExMVxcdTVENDJcXHU1RDZEXFx1NURCOFxcdTVEQjlcXHU1REQwXFx1NUYyMVxcdTVGMzRcXHU1RjY3XFx1NUZCN1wiXSxcbiAgICAgIFtcImZhYTFcIiwgXCJcXHU1RkRFXFx1NjA1RFxcdTYwODVcXHU2MDhBXFx1NjBERVxcdTYwRDVcXHU2MTIwXFx1NjBGMlxcdTYxMTFcXHU2MTM3XFx1NjEzMFxcdTYxOThcXHU2MjEzXFx1NjJBNlxcdTYzRjVcXHU2NDYwXFx1NjQ5RFxcdTY0Q0VcXHU2NTRFXFx1NjYwMFxcdTY2MTVcXHU2NjNCXFx1NjYwOVxcdTY2MkVcXHU2NjFFXFx1NjYyNFxcdTY2NjVcXHU2NjU3XFx1NjY1OVxcdUZBMTJcXHU2NjczXFx1NjY5OVxcdTY2QTBcXHU2NkIyXFx1NjZCRlxcdTY2RkFcXHU2NzBFXFx1RjkyOVxcdTY3NjZcXHU2N0JCXFx1Njg1MlxcdTY3QzBcXHU2ODAxXFx1Njg0NFxcdTY4Q0ZcXHVGQTEzXFx1Njk2OFxcdUZBMTRcXHU2OTk4XFx1NjlFMlxcdTZBMzBcXHU2QTZCXFx1NkE0NlxcdTZBNzNcXHU2QTdFXFx1NkFFMlxcdTZBRTRcXHU2QkQ2XFx1NkMzRlxcdTZDNUNcXHU2Qzg2XFx1NkM2RlxcdTZDREFcXHU2RDA0XFx1NkQ4N1xcdTZENkZcXHU2RDk2XFx1NkRBQ1xcdTZEQ0ZcXHU2REY4XFx1NkRGMlxcdTZERkNcXHU2RTM5XFx1NkU1Q1xcdTZFMjdcXHU2RTNDXFx1NkVCRlxcdTZGODhcXHU2RkI1XFx1NkZGNVxcdTcwMDVcXHU3MDA3XFx1NzAyOFxcdTcwODVcXHU3MEFCXFx1NzEwRlxcdTcxMDRcXHU3MTVDXFx1NzE0NlxcdTcxNDdcXHVGQTE1XFx1NzFDMVxcdTcxRkVcXHU3MkIxXCJdLFxuICAgICAgW1wiZmJhMVwiLCBcIlxcdTcyQkVcXHU3MzI0XFx1RkExNlxcdTczNzdcXHU3M0JEXFx1NzNDOVxcdTczRDZcXHU3M0UzXFx1NzNEMlxcdTc0MDdcXHU3M0Y1XFx1NzQyNlxcdTc0MkFcXHU3NDI5XFx1NzQyRVxcdTc0NjJcXHU3NDg5XFx1NzQ5RlxcdTc1MDFcXHU3NTZGXFx1NzY4MlxcdTc2OUNcXHU3NjlFXFx1NzY5QlxcdTc2QTZcXHVGQTE3XFx1Nzc0NlxcdTUyQUZcXHU3ODIxXFx1Nzg0RVxcdTc4NjRcXHU3ODdBXFx1NzkzMFxcdUZBMThcXHVGQTE5XFx1RkExQVxcdTc5OTRcXHVGQTFCXFx1Nzk5QlxcdTdBRDFcXHU3QUU3XFx1RkExQ1xcdTdBRUJcXHU3QjlFXFx1RkExRFxcdTdENDhcXHU3RDVDXFx1N0RCN1xcdTdEQTBcXHU3REQ2XFx1N0U1MlxcdTdGNDdcXHU3RkExXFx1RkExRVxcdTgzMDFcXHU4MzYyXFx1ODM3RlxcdTgzQzdcXHU4M0Y2XFx1ODQ0OFxcdTg0QjRcXHU4NTUzXFx1ODU1OVxcdTg1NkJcXHVGQTFGXFx1ODVCMFxcdUZBMjBcXHVGQTIxXFx1ODgwN1xcdTg4RjVcXHU4QTEyXFx1OEEzN1xcdThBNzlcXHU4QUE3XFx1OEFCRVxcdThBREZcXHVGQTIyXFx1OEFGNlxcdThCNTNcXHU4QjdGXFx1OENGMFxcdThDRjRcXHU4RDEyXFx1OEQ3NlxcdUZBMjNcXHU4RUNGXFx1RkEyNFxcdUZBMjVcXHU5MDY3XFx1OTBERVxcdUZBMjZcXHU5MTE1XFx1OTEyN1xcdTkxREFcIl0sXG4gICAgICBbXCJmY2ExXCIsIFwiXFx1OTFEN1xcdTkxREVcXHU5MUVEXFx1OTFFRVxcdTkxRTRcXHU5MUU1XFx1OTIwNlxcdTkyMTBcXHU5MjBBXFx1OTIzQVxcdTkyNDBcXHU5MjNDXFx1OTI0RVxcdTkyNTlcXHU5MjUxXFx1OTIzOVxcdTkyNjdcXHU5MkE3XFx1OTI3N1xcdTkyNzhcXHU5MkU3XFx1OTJEN1xcdTkyRDlcXHU5MkQwXFx1RkEyN1xcdTkyRDVcXHU5MkUwXFx1OTJEM1xcdTkzMjVcXHU5MzIxXFx1OTJGQlxcdUZBMjhcXHU5MzFFXFx1OTJGRlxcdTkzMURcXHU5MzAyXFx1OTM3MFxcdTkzNTdcXHU5M0E0XFx1OTNDNlxcdTkzREVcXHU5M0Y4XFx1OTQzMVxcdTk0NDVcXHU5NDQ4XFx1OTU5MlxcdUY5RENcXHVGQTI5XFx1OTY5RFxcdTk2QUZcXHU5NzMzXFx1OTczQlxcdTk3NDNcXHU5NzREXFx1OTc0RlxcdTk3NTFcXHU5NzU1XFx1OTg1N1xcdTk4NjVcXHVGQTJBXFx1RkEyQlxcdTk5MjdcXHVGQTJDXFx1OTk5RVxcdTlBNEVcXHU5QUQ5XFx1OUFEQ1xcdTlCNzVcXHU5QjcyXFx1OUI4RlxcdTlCQjFcXHU5QkJCXFx1OUMwMFxcdTlENzBcXHU5RDZCXFx1RkEyRFxcdTlFMTlcXHU5RUQxXCJdLFxuICAgICAgW1wiZmNmMVwiLCBcIlxcdTIxNzBcIiwgOSwgXCJcXHVGRkUyXFx1RkZFNFxcdUZGMDdcXHVGRjAyXCJdLFxuICAgICAgW1wiOGZhMmFmXCIsIFwiXFx1MDJEOFxcdTAyQzdcXHhCOFxcdTAyRDlcXHUwMkREXFx4QUZcXHUwMkRCXFx1MDJEQVxcdUZGNUVcXHUwMzg0XFx1MDM4NVwiXSxcbiAgICAgIFtcIjhmYTJjMlwiLCBcIlxceEExXFx4QTZcXHhCRlwiXSxcbiAgICAgIFtcIjhmYTJlYlwiLCBcIlxceEJBXFx4QUFcXHhBOVxceEFFXFx1MjEyMlxceEE0XFx1MjExNlwiXSxcbiAgICAgIFtcIjhmYTZlMVwiLCBcIlxcdTAzODZcXHUwMzg4XFx1MDM4OVxcdTAzOEFcXHUwM0FBXCJdLFxuICAgICAgW1wiOGZhNmU3XCIsIFwiXFx1MDM4Q1wiXSxcbiAgICAgIFtcIjhmYTZlOVwiLCBcIlxcdTAzOEVcXHUwM0FCXCJdLFxuICAgICAgW1wiOGZhNmVjXCIsIFwiXFx1MDM4RlwiXSxcbiAgICAgIFtcIjhmYTZmMVwiLCBcIlxcdTAzQUNcXHUwM0FEXFx1MDNBRVxcdTAzQUZcXHUwM0NBXFx1MDM5MFxcdTAzQ0NcXHUwM0MyXFx1MDNDRFxcdTAzQ0JcXHUwM0IwXFx1MDNDRVwiXSxcbiAgICAgIFtcIjhmYTdjMlwiLCBcIlxcdTA0MDJcIiwgMTAsIFwiXFx1MDQwRVxcdTA0MEZcIl0sXG4gICAgICBbXCI4ZmE3ZjJcIiwgXCJcXHUwNDUyXCIsIDEwLCBcIlxcdTA0NUVcXHUwNDVGXCJdLFxuICAgICAgW1wiOGZhOWExXCIsIFwiXFx4QzZcXHUwMTEwXCJdLFxuICAgICAgW1wiOGZhOWE0XCIsIFwiXFx1MDEyNlwiXSxcbiAgICAgIFtcIjhmYTlhNlwiLCBcIlxcdTAxMzJcIl0sXG4gICAgICBbXCI4ZmE5YThcIiwgXCJcXHUwMTQxXFx1MDEzRlwiXSxcbiAgICAgIFtcIjhmYTlhYlwiLCBcIlxcdTAxNEFcXHhEOFxcdTAxNTJcIl0sXG4gICAgICBbXCI4ZmE5YWZcIiwgXCJcXHUwMTY2XFx4REVcIl0sXG4gICAgICBbXCI4ZmE5YzFcIiwgXCJcXHhFNlxcdTAxMTFcXHhGMFxcdTAxMjdcXHUwMTMxXFx1MDEzM1xcdTAxMzhcXHUwMTQyXFx1MDE0MFxcdTAxNDlcXHUwMTRCXFx4RjhcXHUwMTUzXFx4REZcXHUwMTY3XFx4RkVcIl0sXG4gICAgICBbXCI4ZmFhYTFcIiwgXCJcXHhDMVxceEMwXFx4QzRcXHhDMlxcdTAxMDJcXHUwMUNEXFx1MDEwMFxcdTAxMDRcXHhDNVxceEMzXFx1MDEwNlxcdTAxMDhcXHUwMTBDXFx4QzdcXHUwMTBBXFx1MDEwRVxceEM5XFx4QzhcXHhDQlxceENBXFx1MDExQVxcdTAxMTZcXHUwMTEyXFx1MDExOFwiXSxcbiAgICAgIFtcIjhmYWFiYVwiLCBcIlxcdTAxMUNcXHUwMTFFXFx1MDEyMlxcdTAxMjBcXHUwMTI0XFx4Q0RcXHhDQ1xceENGXFx4Q0VcXHUwMUNGXFx1MDEzMFxcdTAxMkFcXHUwMTJFXFx1MDEyOFxcdTAxMzRcXHUwMTM2XFx1MDEzOVxcdTAxM0RcXHUwMTNCXFx1MDE0M1xcdTAxNDdcXHUwMTQ1XFx4RDFcXHhEM1xceEQyXFx4RDZcXHhENFxcdTAxRDFcXHUwMTUwXFx1MDE0Q1xceEQ1XFx1MDE1NFxcdTAxNThcXHUwMTU2XFx1MDE1QVxcdTAxNUNcXHUwMTYwXFx1MDE1RVxcdTAxNjRcXHUwMTYyXFx4REFcXHhEOVxceERDXFx4REJcXHUwMTZDXFx1MDFEM1xcdTAxNzBcXHUwMTZBXFx1MDE3MlxcdTAxNkVcXHUwMTY4XFx1MDFEN1xcdTAxREJcXHUwMUQ5XFx1MDFENVxcdTAxNzRcXHhERFxcdTAxNzhcXHUwMTc2XFx1MDE3OVxcdTAxN0RcXHUwMTdCXCJdLFxuICAgICAgW1wiOGZhYmExXCIsIFwiXFx4RTFcXHhFMFxceEU0XFx4RTJcXHUwMTAzXFx1MDFDRVxcdTAxMDFcXHUwMTA1XFx4RTVcXHhFM1xcdTAxMDdcXHUwMTA5XFx1MDEwRFxceEU3XFx1MDEwQlxcdTAxMEZcXHhFOVxceEU4XFx4RUJcXHhFQVxcdTAxMUJcXHUwMTE3XFx1MDExM1xcdTAxMTlcXHUwMUY1XFx1MDExRFxcdTAxMUZcIl0sXG4gICAgICBbXCI4ZmFiYmRcIiwgXCJcXHUwMTIxXFx1MDEyNVxceEVEXFx4RUNcXHhFRlxceEVFXFx1MDFEMFwiXSxcbiAgICAgIFtcIjhmYWJjNVwiLCBcIlxcdTAxMkJcXHUwMTJGXFx1MDEyOVxcdTAxMzVcXHUwMTM3XFx1MDEzQVxcdTAxM0VcXHUwMTNDXFx1MDE0NFxcdTAxNDhcXHUwMTQ2XFx4RjFcXHhGM1xceEYyXFx4RjZcXHhGNFxcdTAxRDJcXHUwMTUxXFx1MDE0RFxceEY1XFx1MDE1NVxcdTAxNTlcXHUwMTU3XFx1MDE1QlxcdTAxNURcXHUwMTYxXFx1MDE1RlxcdTAxNjVcXHUwMTYzXFx4RkFcXHhGOVxceEZDXFx4RkJcXHUwMTZEXFx1MDFENFxcdTAxNzFcXHUwMTZCXFx1MDE3M1xcdTAxNkZcXHUwMTY5XFx1MDFEOFxcdTAxRENcXHUwMURBXFx1MDFENlxcdTAxNzVcXHhGRFxceEZGXFx1MDE3N1xcdTAxN0FcXHUwMTdFXFx1MDE3Q1wiXSxcbiAgICAgIFtcIjhmYjBhMVwiLCBcIlxcdTRFMDJcXHU0RTA0XFx1NEUwNVxcdTRFMENcXHU0RTEyXFx1NEUxRlxcdTRFMjNcXHU0RTI0XFx1NEUyOFxcdTRFMkJcXHU0RTJFXFx1NEUyRlxcdTRFMzBcXHU0RTM1XFx1NEU0MFxcdTRFNDFcXHU0RTQ0XFx1NEU0N1xcdTRFNTFcXHU0RTVBXFx1NEU1Q1xcdTRFNjNcXHU0RTY4XFx1NEU2OVxcdTRFNzRcXHU0RTc1XFx1NEU3OVxcdTRFN0ZcXHU0RThEXFx1NEU5NlxcdTRFOTdcXHU0RTlEXFx1NEVBRlxcdTRFQjlcXHU0RUMzXFx1NEVEMFxcdTRFREFcXHU0RURCXFx1NEVFMFxcdTRFRTFcXHU0RUUyXFx1NEVFOFxcdTRFRUZcXHU0RUYxXFx1NEVGM1xcdTRFRjVcXHU0RUZEXFx1NEVGRVxcdTRFRkZcXHU0RjAwXFx1NEYwMlxcdTRGMDNcXHU0RjA4XFx1NEYwQlxcdTRGMENcXHU0RjEyXFx1NEYxNVxcdTRGMTZcXHU0RjE3XFx1NEYxOVxcdTRGMkVcXHU0RjMxXFx1NEY2MFxcdTRGMzNcXHU0RjM1XFx1NEYzN1xcdTRGMzlcXHU0RjNCXFx1NEYzRVxcdTRGNDBcXHU0RjQyXFx1NEY0OFxcdTRGNDlcXHU0RjRCXFx1NEY0Q1xcdTRGNTJcXHU0RjU0XFx1NEY1NlxcdTRGNThcXHU0RjVGXFx1NEY2M1xcdTRGNkFcXHU0RjZDXFx1NEY2RVxcdTRGNzFcXHU0Rjc3XFx1NEY3OFxcdTRGNzlcXHU0RjdBXFx1NEY3RFxcdTRGN0VcXHU0RjgxXFx1NEY4MlxcdTRGODRcIl0sXG4gICAgICBbXCI4ZmIxYTFcIiwgXCJcXHU0Rjg1XFx1NEY4OVxcdTRGOEFcXHU0RjhDXFx1NEY4RVxcdTRGOTBcXHU0RjkyXFx1NEY5M1xcdTRGOTRcXHU0Rjk3XFx1NEY5OVxcdTRGOUFcXHU0RjlFXFx1NEY5RlxcdTRGQjJcXHU0RkI3XFx1NEZCOVxcdTRGQkJcXHU0RkJDXFx1NEZCRFxcdTRGQkVcXHU0RkMwXFx1NEZDMVxcdTRGQzVcXHU0RkM2XFx1NEZDOFxcdTRGQzlcXHU0RkNCXFx1NEZDQ1xcdTRGQ0RcXHU0RkNGXFx1NEZEMlxcdTRGRENcXHU0RkUwXFx1NEZFMlxcdTRGRjBcXHU0RkYyXFx1NEZGQ1xcdTRGRkRcXHU0RkZGXFx1NTAwMFxcdTUwMDFcXHU1MDA0XFx1NTAwN1xcdTUwMEFcXHU1MDBDXFx1NTAwRVxcdTUwMTBcXHU1MDEzXFx1NTAxN1xcdTUwMThcXHU1MDFCXFx1NTAxQ1xcdTUwMURcXHU1MDFFXFx1NTAyMlxcdTUwMjdcXHU1MDJFXFx1NTAzMFxcdTUwMzJcXHU1MDMzXFx1NTAzNVxcdTUwNDBcXHU1MDQxXFx1NTA0MlxcdTUwNDVcXHU1MDQ2XFx1NTA0QVxcdTUwNENcXHU1MDRFXFx1NTA1MVxcdTUwNTJcXHU1MDUzXFx1NTA1N1xcdTUwNTlcXHU1MDVGXFx1NTA2MFxcdTUwNjJcXHU1MDYzXFx1NTA2NlxcdTUwNjdcXHU1MDZBXFx1NTA2RFxcdTUwNzBcXHU1MDcxXFx1NTAzQlxcdTUwODFcXHU1MDgzXFx1NTA4NFxcdTUwODZcXHU1MDhBXFx1NTA4RVxcdTUwOEZcXHU1MDkwXCJdLFxuICAgICAgW1wiOGZiMmExXCIsIFwiXFx1NTA5MlxcdTUwOTNcXHU1MDk0XFx1NTA5NlxcdTUwOUJcXHU1MDlDXFx1NTA5RVwiLCA0LCBcIlxcdTUwQUFcXHU1MEFGXFx1NTBCMFxcdTUwQjlcXHU1MEJBXFx1NTBCRFxcdTUwQzBcXHU1MEMzXFx1NTBDNFxcdTUwQzdcXHU1MENDXFx1NTBDRVxcdTUwRDBcXHU1MEQzXFx1NTBENFxcdTUwRDhcXHU1MERDXFx1NTBERFxcdTUwREZcXHU1MEUyXFx1NTBFNFxcdTUwRTZcXHU1MEU4XFx1NTBFOVxcdTUwRUZcXHU1MEYxXFx1NTBGNlxcdTUwRkFcXHU1MEZFXFx1NTEwM1xcdTUxMDZcXHU1MTA3XFx1NTEwOFxcdTUxMEJcXHU1MTBDXFx1NTEwRFxcdTUxMEVcXHU1MEYyXFx1NTExMFxcdTUxMTdcXHU1MTE5XFx1NTExQlxcdTUxMUNcXHU1MTFEXFx1NTExRVxcdTUxMjNcXHU1MTI3XFx1NTEyOFxcdTUxMkNcXHU1MTJEXFx1NTEyRlxcdTUxMzFcXHU1MTMzXFx1NTEzNFxcdTUxMzVcXHU1MTM4XFx1NTEzOVxcdTUxNDJcXHU1MTRBXFx1NTE0RlxcdTUxNTNcXHU1MTU1XFx1NTE1N1xcdTUxNThcXHU1MTVGXFx1NTE2NFxcdTUxNjZcXHU1MTdFXFx1NTE4M1xcdTUxODRcXHU1MThCXFx1NTE4RVxcdTUxOThcXHU1MTlEXFx1NTFBMVxcdTUxQTNcXHU1MUFEXFx1NTFCOFxcdTUxQkFcXHU1MUJDXFx1NTFCRVxcdTUxQkZcXHU1MUMyXCJdLFxuICAgICAgW1wiOGZiM2ExXCIsIFwiXFx1NTFDOFxcdTUxQ0ZcXHU1MUQxXFx1NTFEMlxcdTUxRDNcXHU1MUQ1XFx1NTFEOFxcdTUxREVcXHU1MUUyXFx1NTFFNVxcdTUxRUVcXHU1MUYyXFx1NTFGM1xcdTUxRjRcXHU1MUY3XFx1NTIwMVxcdTUyMDJcXHU1MjA1XFx1NTIxMlxcdTUyMTNcXHU1MjE1XFx1NTIxNlxcdTUyMThcXHU1MjIyXFx1NTIyOFxcdTUyMzFcXHU1MjMyXFx1NTIzNVxcdTUyM0NcXHU1MjQ1XFx1NTI0OVxcdTUyNTVcXHU1MjU3XFx1NTI1OFxcdTUyNUFcXHU1MjVDXFx1NTI1RlxcdTUyNjBcXHU1MjYxXFx1NTI2NlxcdTUyNkVcXHU1Mjc3XFx1NTI3OFxcdTUyNzlcXHU1MjgwXFx1NTI4MlxcdTUyODVcXHU1MjhBXFx1NTI4Q1xcdTUyOTNcXHU1Mjk1XFx1NTI5NlxcdTUyOTdcXHU1Mjk4XFx1NTI5QVxcdTUyOUNcXHU1MkE0XFx1NTJBNVxcdTUyQTZcXHU1MkE3XFx1NTJBRlxcdTUyQjBcXHU1MkI2XFx1NTJCN1xcdTUyQjhcXHU1MkJBXFx1NTJCQlxcdTUyQkRcXHU1MkMwXFx1NTJDNFxcdTUyQzZcXHU1MkM4XFx1NTJDQ1xcdTUyQ0ZcXHU1MkQxXFx1NTJENFxcdTUyRDZcXHU1MkRCXFx1NTJEQ1xcdTUyRTFcXHU1MkU1XFx1NTJFOFxcdTUyRTlcXHU1MkVBXFx1NTJFQ1xcdTUyRjBcXHU1MkYxXFx1NTJGNFxcdTUyRjZcXHU1MkY3XFx1NTMwMFxcdTUzMDNcXHU1MzBBXFx1NTMwQlwiXSxcbiAgICAgIFtcIjhmYjRhMVwiLCBcIlxcdTUzMENcXHU1MzExXFx1NTMxM1xcdTUzMThcXHU1MzFCXFx1NTMxQ1xcdTUzMUVcXHU1MzFGXFx1NTMyNVxcdTUzMjdcXHU1MzI4XFx1NTMyOVxcdTUzMkJcXHU1MzJDXFx1NTMyRFxcdTUzMzBcXHU1MzMyXFx1NTMzNVxcdTUzM0NcXHU1MzNEXFx1NTMzRVxcdTUzNDJcXHU1MzRDXFx1NTM0QlxcdTUzNTlcXHU1MzVCXFx1NTM2MVxcdTUzNjNcXHU1MzY1XFx1NTM2Q1xcdTUzNkRcXHU1MzcyXFx1NTM3OVxcdTUzN0VcXHU1MzgzXFx1NTM4N1xcdTUzODhcXHU1MzhFXFx1NTM5M1xcdTUzOTRcXHU1Mzk5XFx1NTM5RFxcdTUzQTFcXHU1M0E0XFx1NTNBQVxcdTUzQUJcXHU1M0FGXFx1NTNCMlxcdTUzQjRcXHU1M0I1XFx1NTNCN1xcdTUzQjhcXHU1M0JBXFx1NTNCRFxcdTUzQzBcXHU1M0M1XFx1NTNDRlxcdTUzRDJcXHU1M0QzXFx1NTNENVxcdTUzREFcXHU1M0REXFx1NTNERVxcdTUzRTBcXHU1M0U2XFx1NTNFN1xcdTUzRjVcXHU1NDAyXFx1NTQxM1xcdTU0MUFcXHU1NDIxXFx1NTQyN1xcdTU0MjhcXHU1NDJBXFx1NTQyRlxcdTU0MzFcXHU1NDM0XFx1NTQzNVxcdTU0NDNcXHU1NDQ0XFx1NTQ0N1xcdTU0NERcXHU1NDRGXFx1NTQ1RVxcdTU0NjJcXHU1NDY0XFx1NTQ2NlxcdTU0NjdcXHU1NDY5XFx1NTQ2QlxcdTU0NkRcXHU1NDZFXFx1NTQ3NFxcdTU0N0ZcIl0sXG4gICAgICBbXCI4ZmI1YTFcIiwgXCJcXHU1NDgxXFx1NTQ4M1xcdTU0ODVcXHU1NDg4XFx1NTQ4OVxcdTU0OERcXHU1NDkxXFx1NTQ5NVxcdTU0OTZcXHU1NDlDXFx1NTQ5RlxcdTU0QTFcXHU1NEE2XFx1NTRBN1xcdTU0QTlcXHU1NEFBXFx1NTRBRFxcdTU0QUVcXHU1NEIxXFx1NTRCN1xcdTU0QjlcXHU1NEJBXFx1NTRCQlxcdTU0QkZcXHU1NEM2XFx1NTRDQVxcdTU0Q0RcXHU1NENFXFx1NTRFMFxcdTU0RUFcXHU1NEVDXFx1NTRFRlxcdTU0RjZcXHU1NEZDXFx1NTRGRVxcdTU0RkZcXHU1NTAwXFx1NTUwMVxcdTU1MDVcXHU1NTA4XFx1NTUwOVxcdTU1MENcXHU1NTBEXFx1NTUwRVxcdTU1MTVcXHU1NTJBXFx1NTUyQlxcdTU1MzJcXHU1NTM1XFx1NTUzNlxcdTU1M0JcXHU1NTNDXFx1NTUzRFxcdTU1NDFcXHU1NTQ3XFx1NTU0OVxcdTU1NEFcXHU1NTREXFx1NTU1MFxcdTU1NTFcXHU1NTU4XFx1NTU1QVxcdTU1NUJcXHU1NTVFXFx1NTU2MFxcdTU1NjFcXHU1NTY0XFx1NTU2NlxcdTU1N0ZcXHU1NTgxXFx1NTU4MlxcdTU1ODZcXHU1NTg4XFx1NTU4RVxcdTU1OEZcXHU1NTkxXFx1NTU5MlxcdTU1OTNcXHU1NTk0XFx1NTU5N1xcdTU1QTNcXHU1NUE0XFx1NTVBRFxcdTU1QjJcXHU1NUJGXFx1NTVDMVxcdTU1QzNcXHU1NUM2XFx1NTVDOVxcdTU1Q0JcXHU1NUNDXFx1NTVDRVxcdTU1RDFcXHU1NUQyXCJdLFxuICAgICAgW1wiOGZiNmExXCIsIFwiXFx1NTVEM1xcdTU1RDdcXHU1NUQ4XFx1NTVEQlxcdTU1REVcXHU1NUUyXFx1NTVFOVxcdTU1RjZcXHU1NUZGXFx1NTYwNVxcdTU2MDhcXHU1NjBBXFx1NTYwRFwiLCA1LCBcIlxcdTU2MTlcXHU1NjJDXFx1NTYzMFxcdTU2MzNcXHU1NjM1XFx1NTYzN1xcdTU2MzlcXHU1NjNCXFx1NTYzQ1xcdTU2M0RcXHU1NjNGXFx1NTY0MFxcdTU2NDFcXHU1NjQzXFx1NTY0NFxcdTU2NDZcXHU1NjQ5XFx1NTY0QlxcdTU2NERcXHU1NjRGXFx1NTY1NFxcdTU2NUVcXHU1NjYwXFx1NTY2MVxcdTU2NjJcXHU1NjYzXFx1NTY2NlxcdTU2NjlcXHU1NjZEXFx1NTY2RlxcdTU2NzFcXHU1NjcyXFx1NTY3NVxcdTU2ODRcXHU1Njg1XFx1NTY4OFxcdTU2OEJcXHU1NjhDXFx1NTY5NVxcdTU2OTlcXHU1NjlBXFx1NTY5RFxcdTU2OUVcXHU1NjlGXFx1NTZBNlxcdTU2QTdcXHU1NkE4XFx1NTZBOVxcdTU2QUJcXHU1NkFDXFx1NTZBRFxcdTU2QjFcXHU1NkIzXFx1NTZCN1xcdTU2QkVcXHU1NkM1XFx1NTZDOVxcdTU2Q0FcXHU1NkNCXFx1NTZDRlxcdTU2RDBcXHU1NkNDXFx1NTZDRFxcdTU2RDlcXHU1NkRDXFx1NTZERFxcdTU2REZcXHU1NkUxXFx1NTZFNFwiLCA0LCBcIlxcdTU2RjFcXHU1NkVCXFx1NTZFRFwiXSxcbiAgICAgIFtcIjhmYjdhMVwiLCBcIlxcdTU2RjZcXHU1NkY3XFx1NTcwMVxcdTU3MDJcXHU1NzA3XFx1NTcwQVxcdTU3MENcXHU1NzExXFx1NTcxNVxcdTU3MUFcXHU1NzFCXFx1NTcxRFxcdTU3MjBcXHU1NzIyXFx1NTcyM1xcdTU3MjRcXHU1NzI1XFx1NTcyOVxcdTU3MkFcXHU1NzJDXFx1NTcyRVxcdTU3MkZcXHU1NzMzXFx1NTczNFxcdTU3M0RcXHU1NzNFXFx1NTczRlxcdTU3NDVcXHU1NzQ2XFx1NTc0Q1xcdTU3NERcXHU1NzUyXFx1NTc2MlxcdTU3NjVcXHU1NzY3XFx1NTc2OFxcdTU3NkJcXHU1NzZEXCIsIDQsIFwiXFx1NTc3M1xcdTU3NzRcXHU1Nzc1XFx1NTc3N1xcdTU3NzlcXHU1NzdBXFx1NTc3QlxcdTU3N0NcXHU1NzdFXFx1NTc4MVxcdTU3ODNcXHU1NzhDXFx1NTc5NFxcdTU3OTdcXHU1Nzk5XFx1NTc5QVxcdTU3OUNcXHU1NzlEXFx1NTc5RVxcdTU3OUZcXHU1N0ExXFx1NTc5NVxcdTU3QTdcXHU1N0E4XFx1NTdBOVxcdTU3QUNcXHU1N0I4XFx1NTdCRFxcdTU3QzdcXHU1N0M4XFx1NTdDQ1xcdTU3Q0ZcXHU1N0Q1XFx1NTdERFxcdTU3REVcXHU1N0U0XFx1NTdFNlxcdTU3RTdcXHU1N0U5XFx1NTdFRFxcdTU3RjBcXHU1N0Y1XFx1NTdGNlxcdTU3RjhcXHU1N0ZEXFx1NTdGRVxcdTU3RkZcXHU1ODAzXFx1NTgwNFxcdTU4MDhcXHU1ODA5XFx1NTdFMVwiXSxcbiAgICAgIFtcIjhmYjhhMVwiLCBcIlxcdTU4MENcXHU1ODBEXFx1NTgxQlxcdTU4MUVcXHU1ODFGXFx1NTgyMFxcdTU4MjZcXHU1ODI3XFx1NTgyRFxcdTU4MzJcXHU1ODM5XFx1NTgzRlxcdTU4NDlcXHU1ODRDXFx1NTg0RFxcdTU4NEZcXHU1ODUwXFx1NTg1NVxcdTU4NUZcXHU1ODYxXFx1NTg2NFxcdTU4NjdcXHU1ODY4XFx1NTg3OFxcdTU4N0NcXHU1ODdGXFx1NTg4MFxcdTU4ODFcXHU1ODg3XFx1NTg4OFxcdTU4ODlcXHU1ODhBXFx1NTg4Q1xcdTU4OERcXHU1ODhGXFx1NTg5MFxcdTU4OTRcXHU1ODk2XFx1NTg5RFxcdTU4QTBcXHU1OEExXFx1NThBMlxcdTU4QTZcXHU1OEE5XFx1NThCMVxcdTU4QjJcXHU1OEM0XFx1NThCQ1xcdTU4QzJcXHU1OEM4XFx1NThDRFxcdTU4Q0VcXHU1OEQwXFx1NThEMlxcdTU4RDRcXHU1OEQ2XFx1NThEQVxcdTU4RERcXHU1OEUxXFx1NThFMlxcdTU4RTlcXHU1OEYzXFx1NTkwNVxcdTU5MDZcXHU1OTBCXFx1NTkwQ1xcdTU5MTJcXHU1OTEzXFx1NTkxNFxcdTg2NDFcXHU1OTFEXFx1NTkyMVxcdTU5MjNcXHU1OTI0XFx1NTkyOFxcdTU5MkZcXHU1OTMwXFx1NTkzM1xcdTU5MzVcXHU1OTM2XFx1NTkzRlxcdTU5NDNcXHU1OTQ2XFx1NTk1MlxcdTU5NTNcXHU1OTU5XFx1NTk1QlxcdTU5NURcXHU1OTVFXFx1NTk1RlxcdTU5NjFcXHU1OTYzXFx1NTk2QlxcdTU5NkRcIl0sXG4gICAgICBbXCI4ZmI5YTFcIiwgXCJcXHU1OTZGXFx1NTk3MlxcdTU5NzVcXHU1OTc2XFx1NTk3OVxcdTU5N0JcXHU1OTdDXFx1NTk4QlxcdTU5OENcXHU1OThFXFx1NTk5MlxcdTU5OTVcXHU1OTk3XFx1NTk5RlxcdTU5QTRcXHU1OUE3XFx1NTlBRFxcdTU5QUVcXHU1OUFGXFx1NTlCMFxcdTU5QjNcXHU1OUI3XFx1NTlCQVxcdTU5QkNcXHU1OUMxXFx1NTlDM1xcdTU5QzRcXHU1OUM4XFx1NTlDQVxcdTU5Q0RcXHU1OUQyXFx1NTlERFxcdTU5REVcXHU1OURGXFx1NTlFM1xcdTU5RTRcXHU1OUU3XFx1NTlFRVxcdTU5RUZcXHU1OUYxXFx1NTlGMlxcdTU5RjRcXHU1OUY3XFx1NUEwMFxcdTVBMDRcXHU1QTBDXFx1NUEwRFxcdTVBMEVcXHU1QTEyXFx1NUExM1xcdTVBMUVcXHU1QTIzXFx1NUEyNFxcdTVBMjdcXHU1QTI4XFx1NUEyQVxcdTVBMkRcXHU1QTMwXFx1NUE0NFxcdTVBNDVcXHU1QTQ3XFx1NUE0OFxcdTVBNENcXHU1QTUwXFx1NUE1NVxcdTVBNUVcXHU1QTYzXFx1NUE2NVxcdTVBNjdcXHU1QTZEXFx1NUE3N1xcdTVBN0FcXHU1QTdCXFx1NUE3RVxcdTVBOEJcXHU1QTkwXFx1NUE5M1xcdTVBOTZcXHU1QTk5XFx1NUE5Q1xcdTVBOUVcXHU1QTlGXFx1NUFBMFxcdTVBQTJcXHU1QUE3XFx1NUFBQ1xcdTVBQjFcXHU1QUIyXFx1NUFCM1xcdTVBQjVcXHU1QUI4XFx1NUFCQVxcdTVBQkJcXHU1QUJGXCJdLFxuICAgICAgW1wiOGZiYWExXCIsIFwiXFx1NUFDNFxcdTVBQzZcXHU1QUM4XFx1NUFDRlxcdTVBREFcXHU1QURDXFx1NUFFMFxcdTVBRTVcXHU1QUVBXFx1NUFFRVxcdTVBRjVcXHU1QUY2XFx1NUFGRFxcdTVCMDBcXHU1QjAxXFx1NUIwOFxcdTVCMTdcXHU1QjM0XFx1NUIxOVxcdTVCMUJcXHU1QjFEXFx1NUIyMVxcdTVCMjVcXHU1QjJEXFx1NUIzOFxcdTVCNDFcXHU1QjRCXFx1NUI0Q1xcdTVCNTJcXHU1QjU2XFx1NUI1RVxcdTVCNjhcXHU1QjZFXFx1NUI2RlxcdTVCN0NcXHU1QjdEXFx1NUI3RVxcdTVCN0ZcXHU1QjgxXFx1NUI4NFxcdTVCODZcXHU1QjhBXFx1NUI4RVxcdTVCOTBcXHU1QjkxXFx1NUI5M1xcdTVCOTRcXHU1Qjk2XFx1NUJBOFxcdTVCQTlcXHU1QkFDXFx1NUJBRFxcdTVCQUZcXHU1QkIxXFx1NUJCMlxcdTVCQjdcXHU1QkJBXFx1NUJCQ1xcdTVCQzBcXHU1QkMxXFx1NUJDRFxcdTVCQ0ZcXHU1QkQ2XCIsIDQsIFwiXFx1NUJFMFxcdTVCRUZcXHU1QkYxXFx1NUJGNFxcdTVCRkRcXHU1QzBDXFx1NUMxN1xcdTVDMUVcXHU1QzFGXFx1NUMyM1xcdTVDMjZcXHU1QzI5XFx1NUMyQlxcdTVDMkNcXHU1QzJFXFx1NUMzMFxcdTVDMzJcXHU1QzM1XFx1NUMzNlxcdTVDNTlcXHU1QzVBXFx1NUM1Q1xcdTVDNjJcXHU1QzYzXFx1NUM2N1xcdTVDNjhcXHU1QzY5XCJdLFxuICAgICAgW1wiOGZiYmExXCIsIFwiXFx1NUM2RFxcdTVDNzBcXHU1Qzc0XFx1NUM3NVxcdTVDN0FcXHU1QzdCXFx1NUM3Q1xcdTVDN0RcXHU1Qzg3XFx1NUM4OFxcdTVDOEFcXHU1QzhGXFx1NUM5MlxcdTVDOURcXHU1QzlGXFx1NUNBMFxcdTVDQTJcXHU1Q0EzXFx1NUNBNlxcdTVDQUFcXHU1Q0IyXFx1NUNCNFxcdTVDQjVcXHU1Q0JBXFx1NUNDOVxcdTVDQ0JcXHU1Q0QyXFx1NUNERFxcdTVDRDdcXHU1Q0VFXFx1NUNGMVxcdTVDRjJcXHU1Q0Y0XFx1NUQwMVxcdTVEMDZcXHU1RDBEXFx1NUQxMlxcdTVEMkJcXHU1RDIzXFx1NUQyNFxcdTVEMjZcXHU1RDI3XFx1NUQzMVxcdTVEMzRcXHU1RDM5XFx1NUQzRFxcdTVEM0ZcXHU1RDQyXFx1NUQ0M1xcdTVENDZcXHU1RDQ4XFx1NUQ1NVxcdTVENTFcXHU1RDU5XFx1NUQ0QVxcdTVENUZcXHU1RDYwXFx1NUQ2MVxcdTVENjJcXHU1RDY0XFx1NUQ2QVxcdTVENkRcXHU1RDcwXFx1NUQ3OVxcdTVEN0FcXHU1RDdFXFx1NUQ3RlxcdTVEODFcXHU1RDgzXFx1NUQ4OFxcdTVEOEFcXHU1RDkyXFx1NUQ5M1xcdTVEOTRcXHU1RDk1XFx1NUQ5OVxcdTVEOUJcXHU1RDlGXFx1NURBMFxcdTVEQTdcXHU1REFCXFx1NURCMFxcdTVEQjRcXHU1REI4XFx1NURCOVxcdTVEQzNcXHU1REM3XFx1NURDQlxcdTVERDBcXHU1RENFXFx1NUREOFxcdTVERDlcXHU1REUwXFx1NURFNFwiXSxcbiAgICAgIFtcIjhmYmNhMVwiLCBcIlxcdTVERTlcXHU1REY4XFx1NURGOVxcdTVFMDBcXHU1RTA3XFx1NUUwRFxcdTVFMTJcXHU1RTE0XFx1NUUxNVxcdTVFMThcXHU1RTFGXFx1NUUyMFxcdTVFMkVcXHU1RTI4XFx1NUUzMlxcdTVFMzVcXHU1RTNFXFx1NUU0QlxcdTVFNTBcXHU1RTQ5XFx1NUU1MVxcdTVFNTZcXHU1RTU4XFx1NUU1QlxcdTVFNUNcXHU1RTVFXFx1NUU2OFxcdTVFNkFcIiwgNCwgXCJcXHU1RTcwXFx1NUU4MFxcdTVFOEJcXHU1RThFXFx1NUVBMlxcdTVFQTRcXHU1RUE1XFx1NUVBOFxcdTVFQUFcXHU1RUFDXFx1NUVCMVxcdTVFQjNcXHU1RUJEXFx1NUVCRVxcdTVFQkZcXHU1RUM2XFx1NUVDQ1xcdTVFQ0JcXHU1RUNFXFx1NUVEMVxcdTVFRDJcXHU1RUQ0XFx1NUVENVxcdTVFRENcXHU1RURFXFx1NUVFNVxcdTVFRUJcXHU1RjAyXFx1NUYwNlxcdTVGMDdcXHU1RjA4XFx1NUYwRVxcdTVGMTlcXHU1RjFDXFx1NUYxRFxcdTVGMjFcXHU1RjIyXFx1NUYyM1xcdTVGMjRcXHU1RjI4XFx1NUYyQlxcdTVGMkNcXHU1RjJFXFx1NUYzMFxcdTVGMzRcXHU1RjM2XFx1NUYzQlxcdTVGM0RcXHU1RjNGXFx1NUY0MFxcdTVGNDRcXHU1RjQ1XFx1NUY0N1xcdTVGNERcXHU1RjUwXFx1NUY1NFxcdTVGNThcXHU1RjVCXFx1NUY2MFxcdTVGNjNcXHU1RjY0XFx1NUY2N1wiXSxcbiAgICAgIFtcIjhmYmRhMVwiLCBcIlxcdTVGNkZcXHU1RjcyXFx1NUY3NFxcdTVGNzVcXHU1Rjc4XFx1NUY3QVxcdTVGN0RcXHU1RjdFXFx1NUY4OVxcdTVGOERcXHU1RjhGXFx1NUY5NlxcdTVGOUNcXHU1RjlEXFx1NUZBMlxcdTVGQTdcXHU1RkFCXFx1NUZBNFxcdTVGQUNcXHU1RkFGXFx1NUZCMFxcdTVGQjFcXHU1RkI4XFx1NUZDNFxcdTVGQzdcXHU1RkM4XFx1NUZDOVxcdTVGQ0JcXHU1RkQwXCIsIDQsIFwiXFx1NUZERVxcdTVGRTFcXHU1RkUyXFx1NUZFOFxcdTVGRTlcXHU1RkVBXFx1NUZFQ1xcdTVGRURcXHU1RkVFXFx1NUZFRlxcdTVGRjJcXHU1RkYzXFx1NUZGNlxcdTVGRkFcXHU1RkZDXFx1NjAwN1xcdTYwMEFcXHU2MDBEXFx1NjAxM1xcdTYwMTRcXHU2MDE3XFx1NjAxOFxcdTYwMUFcXHU2MDFGXFx1NjAyNFxcdTYwMkRcXHU2MDMzXFx1NjAzNVxcdTYwNDBcXHU2MDQ3XFx1NjA0OFxcdTYwNDlcXHU2MDRDXFx1NjA1MVxcdTYwNTRcXHU2MDU2XFx1NjA1N1xcdTYwNURcXHU2MDYxXFx1NjA2N1xcdTYwNzFcXHU2MDdFXFx1NjA3RlxcdTYwODJcXHU2MDg2XFx1NjA4OFxcdTYwOEFcXHU2MDhFXFx1NjA5MVxcdTYwOTNcXHU2MDk1XFx1NjA5OFxcdTYwOURcXHU2MDlFXFx1NjBBMlxcdTYwQTRcXHU2MEE1XFx1NjBBOFxcdTYwQjBcXHU2MEIxXFx1NjBCN1wiXSxcbiAgICAgIFtcIjhmYmVhMVwiLCBcIlxcdTYwQkJcXHU2MEJFXFx1NjBDMlxcdTYwQzRcXHU2MEM4XFx1NjBDOVxcdTYwQ0FcXHU2MENCXFx1NjBDRVxcdTYwQ0ZcXHU2MEQ0XFx1NjBENVxcdTYwRDlcXHU2MERCXFx1NjBERFxcdTYwREVcXHU2MEUyXFx1NjBFNVxcdTYwRjJcXHU2MEY1XFx1NjBGOFxcdTYwRkNcXHU2MEZEXFx1NjEwMlxcdTYxMDdcXHU2MTBBXFx1NjEwQ1xcdTYxMTBcIiwgNCwgXCJcXHU2MTE2XFx1NjExN1xcdTYxMTlcXHU2MTFDXFx1NjExRVxcdTYxMjJcXHU2MTJBXFx1NjEyQlxcdTYxMzBcXHU2MTMxXFx1NjEzNVxcdTYxMzZcXHU2MTM3XFx1NjEzOVxcdTYxNDFcXHU2MTQ1XFx1NjE0NlxcdTYxNDlcXHU2MTVFXFx1NjE2MFxcdTYxNkNcXHU2MTcyXFx1NjE3OFxcdTYxN0JcXHU2MTdDXFx1NjE3RlxcdTYxODBcXHU2MTgxXFx1NjE4M1xcdTYxODRcXHU2MThCXFx1NjE4RFxcdTYxOTJcXHU2MTkzXFx1NjE5N1xcdTYxOThcXHU2MTlDXFx1NjE5RFxcdTYxOUZcXHU2MUEwXFx1NjFBNVxcdTYxQThcXHU2MUFBXFx1NjFBRFxcdTYxQjhcXHU2MUI5XFx1NjFCQ1xcdTYxQzBcXHU2MUMxXFx1NjFDMlxcdTYxQ0VcXHU2MUNGXFx1NjFENVxcdTYxRENcXHU2MUREXFx1NjFERVxcdTYxREZcXHU2MUUxXFx1NjFFMlxcdTYxRTdcXHU2MUU5XFx1NjFFNVwiXSxcbiAgICAgIFtcIjhmYmZhMVwiLCBcIlxcdTYxRUNcXHU2MUVEXFx1NjFFRlxcdTYyMDFcXHU2MjAzXFx1NjIwNFxcdTYyMDdcXHU2MjEzXFx1NjIxNVxcdTYyMUNcXHU2MjIwXFx1NjIyMlxcdTYyMjNcXHU2MjI3XFx1NjIyOVxcdTYyMkJcXHU2MjM5XFx1NjIzRFxcdTYyNDJcXHU2MjQzXFx1NjI0NFxcdTYyNDZcXHU2MjRDXFx1NjI1MFxcdTYyNTFcXHU2MjUyXFx1NjI1NFxcdTYyNTZcXHU2MjVBXFx1NjI1Q1xcdTYyNjRcXHU2MjZEXFx1NjI2RlxcdTYyNzNcXHU2MjdBXFx1NjI3RFxcdTYyOERcXHU2MjhFXFx1NjI4RlxcdTYyOTBcXHU2MkE2XFx1NjJBOFxcdTYyQjNcXHU2MkI2XFx1NjJCN1xcdTYyQkFcXHU2MkJFXFx1NjJCRlxcdTYyQzRcXHU2MkNFXFx1NjJENVxcdTYyRDZcXHU2MkRBXFx1NjJFQVxcdTYyRjJcXHU2MkY0XFx1NjJGQ1xcdTYyRkRcXHU2MzAzXFx1NjMwNFxcdTYzMEFcXHU2MzBCXFx1NjMwRFxcdTYzMTBcXHU2MzEzXFx1NjMxNlxcdTYzMThcXHU2MzI5XFx1NjMyQVxcdTYzMkRcXHU2MzM1XFx1NjMzNlxcdTYzMzlcXHU2MzNDXFx1NjM0MVxcdTYzNDJcXHU2MzQzXFx1NjM0NFxcdTYzNDZcXHU2MzRBXFx1NjM0QlxcdTYzNEVcXHU2MzUyXFx1NjM1M1xcdTYzNTRcXHU2MzU4XFx1NjM1QlxcdTYzNjVcXHU2MzY2XFx1NjM2Q1xcdTYzNkRcXHU2MzcxXFx1NjM3NFxcdTYzNzVcIl0sXG4gICAgICBbXCI4ZmMwYTFcIiwgXCJcXHU2Mzc4XFx1NjM3Q1xcdTYzN0RcXHU2MzdGXFx1NjM4MlxcdTYzODRcXHU2Mzg3XFx1NjM4QVxcdTYzOTBcXHU2Mzk0XFx1NjM5NVxcdTYzOTlcXHU2MzlBXFx1NjM5RVxcdTYzQTRcXHU2M0E2XFx1NjNBRFxcdTYzQUVcXHU2M0FGXFx1NjNCRFxcdTYzQzFcXHU2M0M1XFx1NjNDOFxcdTYzQ0VcXHU2M0QxXFx1NjNEM1xcdTYzRDRcXHU2M0Q1XFx1NjNEQ1xcdTYzRTBcXHU2M0U1XFx1NjNFQVxcdTYzRUNcXHU2M0YyXFx1NjNGM1xcdTYzRjVcXHU2M0Y4XFx1NjNGOVxcdTY0MDlcXHU2NDBBXFx1NjQxMFxcdTY0MTJcXHU2NDE0XFx1NjQxOFxcdTY0MUVcXHU2NDIwXFx1NjQyMlxcdTY0MjRcXHU2NDI1XFx1NjQyOVxcdTY0MkFcXHU2NDJGXFx1NjQzMFxcdTY0MzVcXHU2NDNEXFx1NjQzRlxcdTY0NEJcXHU2NDRGXFx1NjQ1MVxcdTY0NTJcXHU2NDUzXFx1NjQ1NFxcdTY0NUFcXHU2NDVCXFx1NjQ1Q1xcdTY0NURcXHU2NDVGXFx1NjQ2MFxcdTY0NjFcXHU2NDYzXFx1NjQ2RFxcdTY0NzNcXHU2NDc0XFx1NjQ3QlxcdTY0N0RcXHU2NDg1XFx1NjQ4N1xcdTY0OEZcXHU2NDkwXFx1NjQ5MVxcdTY0OThcXHU2NDk5XFx1NjQ5QlxcdTY0OURcXHU2NDlGXFx1NjRBMVxcdTY0QTNcXHU2NEE2XFx1NjRBOFxcdTY0QUNcXHU2NEIzXFx1NjRCRFxcdTY0QkVcXHU2NEJGXCJdLFxuICAgICAgW1wiOGZjMWExXCIsIFwiXFx1NjRDNFxcdTY0QzlcXHU2NENBXFx1NjRDQlxcdTY0Q0NcXHU2NENFXFx1NjREMFxcdTY0RDFcXHU2NEQ1XFx1NjREN1xcdTY0RTRcXHU2NEU1XFx1NjRFOVxcdTY0RUFcXHU2NEVEXFx1NjRGMFxcdTY0RjVcXHU2NEY3XFx1NjRGQlxcdTY0RkZcXHU2NTAxXFx1NjUwNFxcdTY1MDhcXHU2NTA5XFx1NjUwQVxcdTY1MEZcXHU2NTEzXFx1NjUxNFxcdTY1MTZcXHU2NTE5XFx1NjUxQlxcdTY1MUVcXHU2NTFGXFx1NjUyMlxcdTY1MjZcXHU2NTI5XFx1NjUyRVxcdTY1MzFcXHU2NTNBXFx1NjUzQ1xcdTY1M0RcXHU2NTQzXFx1NjU0N1xcdTY1NDlcXHU2NTUwXFx1NjU1MlxcdTY1NTRcXHU2NTVGXFx1NjU2MFxcdTY1NjdcXHU2NTZCXFx1NjU3QVxcdTY1N0RcXHU2NTgxXFx1NjU4NVxcdTY1OEFcXHU2NTkyXFx1NjU5NVxcdTY1OThcXHU2NTlEXFx1NjVBMFxcdTY1QTNcXHU2NUE2XFx1NjVBRVxcdTY1QjJcXHU2NUIzXFx1NjVCNFxcdTY1QkZcXHU2NUMyXFx1NjVDOFxcdTY1QzlcXHU2NUNFXFx1NjVEMFxcdTY1RDRcXHU2NUQ2XFx1NjVEOFxcdTY1REZcXHU2NUYwXFx1NjVGMlxcdTY1RjRcXHU2NUY1XFx1NjVGOVxcdTY1RkVcXHU2NUZGXFx1NjYwMFxcdTY2MDRcXHU2NjA4XFx1NjYwOVxcdTY2MERcXHU2NjExXFx1NjYxMlxcdTY2MTVcXHU2NjE2XFx1NjYxRFwiXSxcbiAgICAgIFtcIjhmYzJhMVwiLCBcIlxcdTY2MUVcXHU2NjIxXFx1NjYyMlxcdTY2MjNcXHU2NjI0XFx1NjYyNlxcdTY2MjlcXHU2NjJBXFx1NjYyQlxcdTY2MkNcXHU2NjJFXFx1NjYzMFxcdTY2MzFcXHU2NjMzXFx1NjYzOVxcdTY2MzdcXHU2NjQwXFx1NjY0NVxcdTY2NDZcXHU2NjRBXFx1NjY0Q1xcdTY2NTFcXHU2NjRFXFx1NjY1N1xcdTY2NThcXHU2NjU5XFx1NjY1QlxcdTY2NUNcXHU2NjYwXFx1NjY2MVxcdTY2RkJcXHU2NjZBXFx1NjY2QlxcdTY2NkNcXHU2NjdFXFx1NjY3M1xcdTY2NzVcXHU2NjdGXFx1NjY3N1xcdTY2NzhcXHU2Njc5XFx1NjY3QlxcdTY2ODBcXHU2NjdDXFx1NjY4QlxcdTY2OENcXHU2NjhEXFx1NjY5MFxcdTY2OTJcXHU2Njk5XFx1NjY5QVxcdTY2OUJcXHU2NjlDXFx1NjY5RlxcdTY2QTBcXHU2NkE0XFx1NjZBRFxcdTY2QjFcXHU2NkIyXFx1NjZCNVxcdTY2QkJcXHU2NkJGXFx1NjZDMFxcdTY2QzJcXHU2NkMzXFx1NjZDOFxcdTY2Q0NcXHU2NkNFXFx1NjZDRlxcdTY2RDRcXHU2NkRCXFx1NjZERlxcdTY2RThcXHU2NkVCXFx1NjZFQ1xcdTY2RUVcXHU2NkZBXFx1NjcwNVxcdTY3MDdcXHU2NzBFXFx1NjcxM1xcdTY3MTlcXHU2NzFDXFx1NjcyMFxcdTY3MjJcXHU2NzMzXFx1NjczRVxcdTY3NDVcXHU2NzQ3XFx1Njc0OFxcdTY3NENcXHU2NzU0XFx1Njc1NVxcdTY3NURcIl0sXG4gICAgICBbXCI4ZmMzYTFcIiwgXCJcXHU2NzY2XFx1Njc2Q1xcdTY3NkVcXHU2Nzc0XFx1Njc3NlxcdTY3N0JcXHU2NzgxXFx1Njc4NFxcdTY3OEVcXHU2NzhGXFx1Njc5MVxcdTY3OTNcXHU2Nzk2XFx1Njc5OFxcdTY3OTlcXHU2NzlCXFx1NjdCMFxcdTY3QjFcXHU2N0IyXFx1NjdCNVxcdTY3QkJcXHU2N0JDXFx1NjdCRFxcdTY3RjlcXHU2N0MwXFx1NjdDMlxcdTY3QzNcXHU2N0M1XFx1NjdDOFxcdTY3QzlcXHU2N0QyXFx1NjdEN1xcdTY3RDlcXHU2N0RDXFx1NjdFMVxcdTY3RTZcXHU2N0YwXFx1NjdGMlxcdTY3RjZcXHU2N0Y3XFx1Njg1MlxcdTY4MTRcXHU2ODE5XFx1NjgxRFxcdTY4MUZcXHU2ODI4XFx1NjgyN1xcdTY4MkNcXHU2ODJEXFx1NjgyRlxcdTY4MzBcXHU2ODMxXFx1NjgzM1xcdTY4M0JcXHU2ODNGXFx1Njg0NFxcdTY4NDVcXHU2ODRBXFx1Njg0Q1xcdTY4NTVcXHU2ODU3XFx1Njg1OFxcdTY4NUJcXHU2ODZCXFx1Njg2RVwiLCA0LCBcIlxcdTY4NzVcXHU2ODc5XFx1Njg3QVxcdTY4N0JcXHU2ODdDXFx1Njg4MlxcdTY4ODRcXHU2ODg2XFx1Njg4OFxcdTY4OTZcXHU2ODk4XFx1Njg5QVxcdTY4OUNcXHU2OEExXFx1NjhBM1xcdTY4QTVcXHU2OEE5XFx1NjhBQVxcdTY4QUVcXHU2OEIyXFx1NjhCQlxcdTY4QzVcXHU2OEM4XFx1NjhDQ1xcdTY4Q0ZcIl0sXG4gICAgICBbXCI4ZmM0YTFcIiwgXCJcXHU2OEQwXFx1NjhEMVxcdTY4RDNcXHU2OEQ2XFx1NjhEOVxcdTY4RENcXHU2OEREXFx1NjhFNVxcdTY4RThcXHU2OEVBXFx1NjhFQlxcdTY4RUNcXHU2OEVEXFx1NjhGMFxcdTY4RjFcXHU2OEY1XFx1NjhGNlxcdTY4RkJcXHU2OEZDXFx1NjhGRFxcdTY5MDZcXHU2OTA5XFx1NjkwQVxcdTY5MTBcXHU2OTExXFx1NjkxM1xcdTY5MTZcXHU2OTE3XFx1NjkzMVxcdTY5MzNcXHU2OTM1XFx1NjkzOFxcdTY5M0JcXHU2OTQyXFx1Njk0NVxcdTY5NDlcXHU2OTRFXFx1Njk1N1xcdTY5NUJcXHU2OTYzXFx1Njk2NFxcdTY5NjVcXHU2OTY2XFx1Njk2OFxcdTY5NjlcXHU2OTZDXFx1Njk3MFxcdTY5NzFcXHU2OTcyXFx1Njk3QVxcdTY5N0JcXHU2OTdGXFx1Njk4MFxcdTY5OERcXHU2OTkyXFx1Njk5NlxcdTY5OThcXHU2OUExXFx1NjlBNVxcdTY5QTZcXHU2OUE4XFx1NjlBQlxcdTY5QURcXHU2OUFGXFx1NjlCN1xcdTY5QjhcXHU2OUJBXFx1NjlCQ1xcdTY5QzVcXHU2OUM4XFx1NjlEMVxcdTY5RDZcXHU2OUQ3XFx1NjlFMlxcdTY5RTVcXHU2OUVFXFx1NjlFRlxcdTY5RjFcXHU2OUYzXFx1NjlGNVxcdTY5RkVcXHU2QTAwXFx1NkEwMVxcdTZBMDNcXHU2QTBGXFx1NkExMVxcdTZBMTVcXHU2QTFBXFx1NkExRFxcdTZBMjBcXHU2QTI0XFx1NkEyOFxcdTZBMzBcXHU2QTMyXCJdLFxuICAgICAgW1wiOGZjNWExXCIsIFwiXFx1NkEzNFxcdTZBMzdcXHU2QTNCXFx1NkEzRVxcdTZBM0ZcXHU2QTQ1XFx1NkE0NlxcdTZBNDlcXHU2QTRBXFx1NkE0RVxcdTZBNTBcXHU2QTUxXFx1NkE1MlxcdTZBNTVcXHU2QTU2XFx1NkE1QlxcdTZBNjRcXHU2QTY3XFx1NkE2QVxcdTZBNzFcXHU2QTczXFx1NkE3RVxcdTZBODFcXHU2QTgzXFx1NkE4NlxcdTZBODdcXHU2QTg5XFx1NkE4QlxcdTZBOTFcXHU2QTlCXFx1NkE5RFxcdTZBOUVcXHU2QTlGXFx1NkFBNVxcdTZBQUJcXHU2QUFGXFx1NkFCMFxcdTZBQjFcXHU2QUI0XFx1NkFCRFxcdTZBQkVcXHU2QUJGXFx1NkFDNlxcdTZBQzlcXHU2QUM4XFx1NkFDQ1xcdTZBRDBcXHU2QUQ0XFx1NkFENVxcdTZBRDZcXHU2QURDXFx1NkFERFxcdTZBRTRcXHU2QUU3XFx1NkFFQ1xcdTZBRjBcXHU2QUYxXFx1NkFGMlxcdTZBRkNcXHU2QUZEXFx1NkIwMlxcdTZCMDNcXHU2QjA2XFx1NkIwN1xcdTZCMDlcXHU2QjBGXFx1NkIxMFxcdTZCMTFcXHU2QjE3XFx1NkIxQlxcdTZCMUVcXHU2QjI0XFx1NkIyOFxcdTZCMkJcXHU2QjJDXFx1NkIyRlxcdTZCMzVcXHU2QjM2XFx1NkIzQlxcdTZCM0ZcXHU2QjQ2XFx1NkI0QVxcdTZCNERcXHU2QjUyXFx1NkI1NlxcdTZCNThcXHU2QjVEXFx1NkI2MFxcdTZCNjdcXHU2QjZCXFx1NkI2RVxcdTZCNzBcXHU2Qjc1XFx1NkI3RFwiXSxcbiAgICAgIFtcIjhmYzZhMVwiLCBcIlxcdTZCN0VcXHU2QjgyXFx1NkI4NVxcdTZCOTdcXHU2QjlCXFx1NkI5RlxcdTZCQTBcXHU2QkEyXFx1NkJBM1xcdTZCQThcXHU2QkE5XFx1NkJBQ1xcdTZCQURcXHU2QkFFXFx1NkJCMFxcdTZCQjhcXHU2QkI5XFx1NkJCRFxcdTZCQkVcXHU2QkMzXFx1NkJDNFxcdTZCQzlcXHU2QkNDXFx1NkJENlxcdTZCREFcXHU2QkUxXFx1NkJFM1xcdTZCRTZcXHU2QkU3XFx1NkJFRVxcdTZCRjFcXHU2QkY3XFx1NkJGOVxcdTZCRkZcXHU2QzAyXFx1NkMwNFxcdTZDMDVcXHU2QzA5XFx1NkMwRFxcdTZDMEVcXHU2QzEwXFx1NkMxMlxcdTZDMTlcXHU2QzFGXFx1NkMyNlxcdTZDMjdcXHU2QzI4XFx1NkMyQ1xcdTZDMkVcXHU2QzMzXFx1NkMzNVxcdTZDMzZcXHU2QzNBXFx1NkMzQlxcdTZDM0ZcXHU2QzRBXFx1NkM0QlxcdTZDNERcXHU2QzRGXFx1NkM1MlxcdTZDNTRcXHU2QzU5XFx1NkM1QlxcdTZDNUNcXHU2QzZCXFx1NkM2RFxcdTZDNkZcXHU2Qzc0XFx1NkM3NlxcdTZDNzhcXHU2Qzc5XFx1NkM3QlxcdTZDODVcXHU2Qzg2XFx1NkM4N1xcdTZDODlcXHU2Qzk0XFx1NkM5NVxcdTZDOTdcXHU2Qzk4XFx1NkM5Q1xcdTZDOUZcXHU2Q0IwXFx1NkNCMlxcdTZDQjRcXHU2Q0MyXFx1NkNDNlxcdTZDQ0RcXHU2Q0NGXFx1NkNEMFxcdTZDRDFcXHU2Q0QyXFx1NkNENFxcdTZDRDZcIl0sXG4gICAgICBbXCI4ZmM3YTFcIiwgXCJcXHU2Q0RBXFx1NkNEQ1xcdTZDRTBcXHU2Q0U3XFx1NkNFOVxcdTZDRUJcXHU2Q0VDXFx1NkNFRVxcdTZDRjJcXHU2Q0Y0XFx1NkQwNFxcdTZEMDdcXHU2RDBBXFx1NkQwRVxcdTZEMEZcXHU2RDExXFx1NkQxM1xcdTZEMUFcXHU2RDI2XFx1NkQyN1xcdTZEMjhcXHU2QzY3XFx1NkQyRVxcdTZEMkZcXHU2RDMxXFx1NkQzOVxcdTZEM0NcXHU2RDNGXFx1NkQ1N1xcdTZENUVcXHU2RDVGXFx1NkQ2MVxcdTZENjVcXHU2RDY3XFx1NkQ2RlxcdTZENzBcXHU2RDdDXFx1NkQ4MlxcdTZEODdcXHU2RDkxXFx1NkQ5MlxcdTZEOTRcXHU2RDk2XFx1NkQ5N1xcdTZEOThcXHU2REFBXFx1NkRBQ1xcdTZEQjRcXHU2REI3XFx1NkRCOVxcdTZEQkRcXHU2REJGXFx1NkRDNFxcdTZEQzhcXHU2RENBXFx1NkRDRVxcdTZEQ0ZcXHU2REQ2XFx1NkREQlxcdTZERERcXHU2RERGXFx1NkRFMFxcdTZERTJcXHU2REU1XFx1NkRFOVxcdTZERUZcXHU2REYwXFx1NkRGNFxcdTZERjZcXHU2REZDXFx1NkUwMFxcdTZFMDRcXHU2RTFFXFx1NkUyMlxcdTZFMjdcXHU2RTMyXFx1NkUzNlxcdTZFMzlcXHU2RTNCXFx1NkUzQ1xcdTZFNDRcXHU2RTQ1XFx1NkU0OFxcdTZFNDlcXHU2RTRCXFx1NkU0RlxcdTZFNTFcXHU2RTUyXFx1NkU1M1xcdTZFNTRcXHU2RTU3XFx1NkU1Q1xcdTZFNURcXHU2RTVFXCJdLFxuICAgICAgW1wiOGZjOGExXCIsIFwiXFx1NkU2MlxcdTZFNjNcXHU2RTY4XFx1NkU3M1xcdTZFN0JcXHU2RTdEXFx1NkU4RFxcdTZFOTNcXHU2RTk5XFx1NkVBMFxcdTZFQTdcXHU2RUFEXFx1NkVBRVxcdTZFQjFcXHU2RUIzXFx1NkVCQlxcdTZFQkZcXHU2RUMwXFx1NkVDMVxcdTZFQzNcXHU2RUM3XFx1NkVDOFxcdTZFQ0FcXHU2RUNEXFx1NkVDRVxcdTZFQ0ZcXHU2RUVCXFx1NkVFRFxcdTZFRUVcXHU2RUY5XFx1NkVGQlxcdTZFRkRcXHU2RjA0XFx1NkYwOFxcdTZGMEFcXHU2RjBDXFx1NkYwRFxcdTZGMTZcXHU2RjE4XFx1NkYxQVxcdTZGMUJcXHU2RjI2XFx1NkYyOVxcdTZGMkFcXHU2RjJGXFx1NkYzMFxcdTZGMzNcXHU2RjM2XFx1NkYzQlxcdTZGM0NcXHU2RjJEXFx1NkY0RlxcdTZGNTFcXHU2RjUyXFx1NkY1M1xcdTZGNTdcXHU2RjU5XFx1NkY1QVxcdTZGNURcXHU2RjVFXFx1NkY2MVxcdTZGNjJcXHU2RjY4XFx1NkY2Q1xcdTZGN0RcXHU2RjdFXFx1NkY4M1xcdTZGODdcXHU2Rjg4XFx1NkY4QlxcdTZGOENcXHU2RjhEXFx1NkY5MFxcdTZGOTJcXHU2RjkzXFx1NkY5NFxcdTZGOTZcXHU2RjlBXFx1NkY5RlxcdTZGQTBcXHU2RkE1XFx1NkZBNlxcdTZGQTdcXHU2RkE4XFx1NkZBRVxcdTZGQUZcXHU2RkIwXFx1NkZCNVxcdTZGQjZcXHU2RkJDXFx1NkZDNVxcdTZGQzdcXHU2RkM4XFx1NkZDQVwiXSxcbiAgICAgIFtcIjhmYzlhMVwiLCBcIlxcdTZGREFcXHU2RkRFXFx1NkZFOFxcdTZGRTlcXHU2RkYwXFx1NkZGNVxcdTZGRjlcXHU2RkZDXFx1NkZGRFxcdTcwMDBcXHU3MDA1XFx1NzAwNlxcdTcwMDdcXHU3MDBEXFx1NzAxN1xcdTcwMjBcXHU3MDIzXFx1NzAyRlxcdTcwMzRcXHU3MDM3XFx1NzAzOVxcdTcwM0NcXHU3MDQzXFx1NzA0NFxcdTcwNDhcXHU3MDQ5XFx1NzA0QVxcdTcwNEJcXHU3MDU0XFx1NzA1NVxcdTcwNURcXHU3MDVFXFx1NzA0RVxcdTcwNjRcXHU3MDY1XFx1NzA2Q1xcdTcwNkVcXHU3MDc1XFx1NzA3NlxcdTcwN0VcXHU3MDgxXFx1NzA4NVxcdTcwODZcXHU3MDk0XCIsIDQsIFwiXFx1NzA5QlxcdTcwQTRcXHU3MEFCXFx1NzBCMFxcdTcwQjFcXHU3MEI0XFx1NzBCN1xcdTcwQ0FcXHU3MEQxXFx1NzBEM1xcdTcwRDRcXHU3MEQ1XFx1NzBENlxcdTcwRDhcXHU3MERDXFx1NzBFNFxcdTcwRkFcXHU3MTAzXCIsIDQsIFwiXFx1NzEwQlxcdTcxMENcXHU3MTBGXFx1NzExRVxcdTcxMjBcXHU3MTJCXFx1NzEyRFxcdTcxMkZcXHU3MTMwXFx1NzEzMVxcdTcxMzhcXHU3MTQxXFx1NzE0NVxcdTcxNDZcXHU3MTQ3XFx1NzE0QVxcdTcxNEJcXHU3MTUwXFx1NzE1MlxcdTcxNTdcXHU3MTVBXFx1NzE1Q1xcdTcxNUVcXHU3MTYwXCJdLFxuICAgICAgW1wiOGZjYWExXCIsIFwiXFx1NzE2OFxcdTcxNzlcXHU3MTgwXFx1NzE4NVxcdTcxODdcXHU3MThDXFx1NzE5MlxcdTcxOUFcXHU3MTlCXFx1NzFBMFxcdTcxQTJcXHU3MUFGXFx1NzFCMFxcdTcxQjJcXHU3MUIzXFx1NzFCQVxcdTcxQkZcXHU3MUMwXFx1NzFDMVxcdTcxQzRcXHU3MUNCXFx1NzFDQ1xcdTcxRDNcXHU3MUQ2XFx1NzFEOVxcdTcxREFcXHU3MURDXFx1NzFGOFxcdTcxRkVcXHU3MjAwXFx1NzIwN1xcdTcyMDhcXHU3MjA5XFx1NzIxM1xcdTcyMTdcXHU3MjFBXFx1NzIxRFxcdTcyMUZcXHU3MjI0XFx1NzIyQlxcdTcyMkZcXHU3MjM0XFx1NzIzOFxcdTcyMzlcXHU3MjQxXFx1NzI0MlxcdTcyNDNcXHU3MjQ1XFx1NzI0RVxcdTcyNEZcXHU3MjUwXFx1NzI1M1xcdTcyNTVcXHU3MjU2XFx1NzI1QVxcdTcyNUNcXHU3MjVFXFx1NzI2MFxcdTcyNjNcXHU3MjY4XFx1NzI2QlxcdTcyNkVcXHU3MjZGXFx1NzI3MVxcdTcyNzdcXHU3Mjc4XFx1NzI3QlxcdTcyN0NcXHU3MjdGXFx1NzI4NFxcdTcyODlcXHU3MjhEXFx1NzI4RVxcdTcyOTNcXHU3MjlCXFx1NzJBOFxcdTcyQURcXHU3MkFFXFx1NzJCMVxcdTcyQjRcXHU3MkJFXFx1NzJDMVxcdTcyQzdcXHU3MkM5XFx1NzJDQ1xcdTcyRDVcXHU3MkQ2XFx1NzJEOFxcdTcyREZcXHU3MkU1XFx1NzJGM1xcdTcyRjRcXHU3MkZBXFx1NzJGQlwiXSxcbiAgICAgIFtcIjhmY2JhMVwiLCBcIlxcdTcyRkVcXHU3MzAyXFx1NzMwNFxcdTczMDVcXHU3MzA3XFx1NzMwQlxcdTczMERcXHU3MzEyXFx1NzMxM1xcdTczMThcXHU3MzE5XFx1NzMxRVxcdTczMjJcXHU3MzI0XFx1NzMyN1xcdTczMjhcXHU3MzJDXFx1NzMzMVxcdTczMzJcXHU3MzM1XFx1NzMzQVxcdTczM0JcXHU3MzNEXFx1NzM0M1xcdTczNERcXHU3MzUwXFx1NzM1MlxcdTczNTZcXHU3MzU4XFx1NzM1RFxcdTczNUVcXHU3MzVGXFx1NzM2MFxcdTczNjZcXHU3MzY3XFx1NzM2OVxcdTczNkJcXHU3MzZDXFx1NzM2RVxcdTczNkZcXHU3MzcxXFx1NzM3N1xcdTczNzlcXHU3MzdDXFx1NzM4MFxcdTczODFcXHU3MzgzXFx1NzM4NVxcdTczODZcXHU3MzhFXFx1NzM5MFxcdTczOTNcXHU3Mzk1XFx1NzM5N1xcdTczOThcXHU3MzlDXFx1NzM5RVxcdTczOUZcXHU3M0EwXFx1NzNBMlxcdTczQTVcXHU3M0E2XFx1NzNBQVxcdTczQUJcXHU3M0FEXFx1NzNCNVxcdTczQjdcXHU3M0I5XFx1NzNCQ1xcdTczQkRcXHU3M0JGXFx1NzNDNVxcdTczQzZcXHU3M0M5XFx1NzNDQlxcdTczQ0NcXHU3M0NGXFx1NzNEMlxcdTczRDNcXHU3M0Q2XFx1NzNEOVxcdTczRERcXHU3M0UxXFx1NzNFM1xcdTczRTZcXHU3M0U3XFx1NzNFOVxcdTczRjRcXHU3M0Y1XFx1NzNGN1xcdTczRjlcXHU3M0ZBXFx1NzNGQlxcdTczRkRcIl0sXG4gICAgICBbXCI4ZmNjYTFcIiwgXCJcXHU3M0ZGXFx1NzQwMFxcdTc0MDFcXHU3NDA0XFx1NzQwN1xcdTc0MEFcXHU3NDExXFx1NzQxQVxcdTc0MUJcXHU3NDI0XFx1NzQyNlxcdTc0MjhcIiwgOSwgXCJcXHU3NDM5XFx1NzQ0MFxcdTc0NDNcXHU3NDQ0XFx1NzQ0NlxcdTc0NDdcXHU3NDRCXFx1NzQ0RFxcdTc0NTFcXHU3NDUyXFx1NzQ1N1xcdTc0NURcXHU3NDYyXFx1NzQ2NlxcdTc0NjdcXHU3NDY4XFx1NzQ2QlxcdTc0NkRcXHU3NDZFXFx1NzQ3MVxcdTc0NzJcXHU3NDgwXFx1NzQ4MVxcdTc0ODVcXHU3NDg2XFx1NzQ4N1xcdTc0ODlcXHU3NDhGXFx1NzQ5MFxcdTc0OTFcXHU3NDkyXFx1NzQ5OFxcdTc0OTlcXHU3NDlBXFx1NzQ5Q1xcdTc0OUZcXHU3NEEwXFx1NzRBMVxcdTc0QTNcXHU3NEE2XFx1NzRBOFxcdTc0QTlcXHU3NEFBXFx1NzRBQlxcdTc0QUVcXHU3NEFGXFx1NzRCMVxcdTc0QjJcXHU3NEI1XFx1NzRCOVxcdTc0QkJcXHU3NEJGXFx1NzRDOFxcdTc0QzlcXHU3NENDXFx1NzREMFxcdTc0RDNcXHU3NEQ4XFx1NzREQVxcdTc0REJcXHU3NERFXFx1NzRERlxcdTc0RTRcXHU3NEU4XFx1NzRFQVxcdTc0RUJcXHU3NEVGXFx1NzRGNFxcdTc0RkFcXHU3NEZCXFx1NzRGQ1xcdTc0RkZcXHU3NTA2XCJdLFxuICAgICAgW1wiOGZjZGExXCIsIFwiXFx1NzUxMlxcdTc1MTZcXHU3NTE3XFx1NzUyMFxcdTc1MjFcXHU3NTI0XFx1NzUyN1xcdTc1MjlcXHU3NTJBXFx1NzUyRlxcdTc1MzZcXHU3NTM5XFx1NzUzRFxcdTc1M0VcXHU3NTNGXFx1NzU0MFxcdTc1NDNcXHU3NTQ3XFx1NzU0OFxcdTc1NEVcXHU3NTUwXFx1NzU1MlxcdTc1NTdcXHU3NTVFXFx1NzU1RlxcdTc1NjFcXHU3NTZGXFx1NzU3MVxcdTc1NzlcIiwgNSwgXCJcXHU3NTgxXFx1NzU4NVxcdTc1OTBcXHU3NTkyXFx1NzU5M1xcdTc1OTVcXHU3NTk5XFx1NzU5Q1xcdTc1QTJcXHU3NUE0XFx1NzVCNFxcdTc1QkFcXHU3NUJGXFx1NzVDMFxcdTc1QzFcXHU3NUM0XFx1NzVDNlxcdTc1Q0NcXHU3NUNFXFx1NzVDRlxcdTc1RDdcXHU3NURDXFx1NzVERlxcdTc1RTBcXHU3NUUxXFx1NzVFNFxcdTc1RTdcXHU3NUVDXFx1NzVFRVxcdTc1RUZcXHU3NUYxXFx1NzVGOVxcdTc2MDBcXHU3NjAyXFx1NzYwM1xcdTc2MDRcXHU3NjA3XFx1NzYwOFxcdTc2MEFcXHU3NjBDXFx1NzYwRlxcdTc2MTJcXHU3NjEzXFx1NzYxNVxcdTc2MTZcXHU3NjE5XFx1NzYxQlxcdTc2MUNcXHU3NjFEXFx1NzYxRVxcdTc2MjNcXHU3NjI1XFx1NzYyNlxcdTc2MjlcXHU3NjJEXFx1NzYzMlxcdTc2MzNcXHU3NjM1XFx1NzYzOFxcdTc2MzlcIl0sXG4gICAgICBbXCI4ZmNlYTFcIiwgXCJcXHU3NjNBXFx1NzYzQ1xcdTc2NEFcXHU3NjQwXFx1NzY0MVxcdTc2NDNcXHU3NjQ0XFx1NzY0NVxcdTc2NDlcXHU3NjRCXFx1NzY1NVxcdTc2NTlcXHU3NjVGXFx1NzY2NFxcdTc2NjVcXHU3NjZEXFx1NzY2RVxcdTc2NkZcXHU3NjcxXFx1NzY3NFxcdTc2ODFcXHU3Njg1XFx1NzY4Q1xcdTc2OERcXHU3Njk1XFx1NzY5QlxcdTc2OUNcXHU3NjlEXFx1NzY5RlxcdTc2QTBcXHU3NkEyXCIsIDYsIFwiXFx1NzZBQVxcdTc2QURcXHU3NkJEXFx1NzZDMVxcdTc2QzVcXHU3NkM5XFx1NzZDQlxcdTc2Q0NcXHU3NkNFXFx1NzZENFxcdTc2RDlcXHU3NkUwXFx1NzZFNlxcdTc2RThcXHU3NkVDXFx1NzZGMFxcdTc2RjFcXHU3NkY2XFx1NzZGOVxcdTc2RkNcXHU3NzAwXFx1NzcwNlxcdTc3MEFcXHU3NzBFXFx1NzcxMlxcdTc3MTRcXHU3NzE1XFx1NzcxN1xcdTc3MTlcXHU3NzFBXFx1NzcxQ1xcdTc3MjJcXHU3NzI4XFx1NzcyRFxcdTc3MkVcXHU3NzJGXFx1NzczNFxcdTc3MzVcXHU3NzM2XFx1NzczOVxcdTc3M0RcXHU3NzNFXFx1Nzc0MlxcdTc3NDVcXHU3NzQ2XFx1Nzc0QVxcdTc3NERcXHU3NzRFXFx1Nzc0RlxcdTc3NTJcXHU3NzU2XFx1Nzc1N1xcdTc3NUNcXHU3NzVFXFx1Nzc1RlxcdTc3NjBcXHU3NzYyXCJdLFxuICAgICAgW1wiOGZjZmExXCIsIFwiXFx1Nzc2NFxcdTc3NjdcXHU3NzZBXFx1Nzc2Q1xcdTc3NzBcXHU3NzcyXFx1Nzc3M1xcdTc3NzRcXHU3NzdBXFx1Nzc3RFxcdTc3ODBcXHU3Nzg0XFx1Nzc4Q1xcdTc3OERcXHU3Nzk0XFx1Nzc5NVxcdTc3OTZcXHU3NzlBXFx1Nzc5RlxcdTc3QTJcXHU3N0E3XFx1NzdBQVxcdTc3QUVcXHU3N0FGXFx1NzdCMVxcdTc3QjVcXHU3N0JFXFx1NzdDM1xcdTc3QzlcXHU3N0QxXFx1NzdEMlxcdTc3RDVcXHU3N0Q5XFx1NzdERVxcdTc3REZcXHU3N0UwXFx1NzdFNFxcdTc3RTZcXHU3N0VBXFx1NzdFQ1xcdTc3RjBcXHU3N0YxXFx1NzdGNFxcdTc3RjhcXHU3N0ZCXFx1NzgwNVxcdTc4MDZcXHU3ODA5XFx1NzgwRFxcdTc4MEVcXHU3ODExXFx1NzgxRFxcdTc4MjFcXHU3ODIyXFx1NzgyM1xcdTc4MkRcXHU3ODJFXFx1NzgzMFxcdTc4MzVcXHU3ODM3XFx1Nzg0M1xcdTc4NDRcXHU3ODQ3XFx1Nzg0OFxcdTc4NENcXHU3ODRFXFx1Nzg1MlxcdTc4NUNcXHU3ODVFXFx1Nzg2MFxcdTc4NjFcXHU3ODYzXFx1Nzg2NFxcdTc4NjhcXHU3ODZBXFx1Nzg2RVxcdTc4N0FcXHU3ODdFXFx1Nzg4QVxcdTc4OEZcXHU3ODk0XFx1Nzg5OFxcdTc4QTFcXHU3ODlEXFx1Nzg5RVxcdTc4OUZcXHU3OEE0XFx1NzhBOFxcdTc4QUNcXHU3OEFEXFx1NzhCMFxcdTc4QjFcXHU3OEIyXFx1NzhCM1wiXSxcbiAgICAgIFtcIjhmZDBhMVwiLCBcIlxcdTc4QkJcXHU3OEJEXFx1NzhCRlxcdTc4QzdcXHU3OEM4XFx1NzhDOVxcdTc4Q0NcXHU3OENFXFx1NzhEMlxcdTc4RDNcXHU3OEQ1XFx1NzhENlxcdTc4RTRcXHU3OERCXFx1NzhERlxcdTc4RTBcXHU3OEUxXFx1NzhFNlxcdTc4RUFcXHU3OEYyXFx1NzhGM1xcdTc5MDBcXHU3OEY2XFx1NzhGN1xcdTc4RkFcXHU3OEZCXFx1NzhGRlxcdTc5MDZcXHU3OTBDXFx1NzkxMFxcdTc5MUFcXHU3OTFDXFx1NzkxRVxcdTc5MUZcXHU3OTIwXFx1NzkyNVxcdTc5MjdcXHU3OTI5XFx1NzkyRFxcdTc5MzFcXHU3OTM0XFx1NzkzNVxcdTc5M0JcXHU3OTNEXFx1NzkzRlxcdTc5NDRcXHU3OTQ1XFx1Nzk0NlxcdTc5NEFcXHU3OTRCXFx1Nzk0RlxcdTc5NTFcXHU3OTU0XFx1Nzk1OFxcdTc5NUJcXHU3OTVDXFx1Nzk2N1xcdTc5NjlcXHU3OTZCXFx1Nzk3MlxcdTc5NzlcXHU3OTdCXFx1Nzk3Q1xcdTc5N0VcXHU3OThCXFx1Nzk4Q1xcdTc5OTFcXHU3OTkzXFx1Nzk5NFxcdTc5OTVcXHU3OTk2XFx1Nzk5OFxcdTc5OUJcXHU3OTlDXFx1NzlBMVxcdTc5QThcXHU3OUE5XFx1NzlBQlxcdTc5QUZcXHU3OUIxXFx1NzlCNFxcdTc5QjhcXHU3OUJCXFx1NzlDMlxcdTc5QzRcXHU3OUM3XFx1NzlDOFxcdTc5Q0FcXHU3OUNGXFx1NzlENFxcdTc5RDZcXHU3OURBXFx1NzlERFxcdTc5REVcIl0sXG4gICAgICBbXCI4ZmQxYTFcIiwgXCJcXHU3OUUwXFx1NzlFMlxcdTc5RTVcXHU3OUVBXFx1NzlFQlxcdTc5RURcXHU3OUYxXFx1NzlGOFxcdTc5RkNcXHU3QTAyXFx1N0EwM1xcdTdBMDdcXHU3QTA5XFx1N0EwQVxcdTdBMENcXHU3QTExXFx1N0ExNVxcdTdBMUJcXHU3QTFFXFx1N0EyMVxcdTdBMjdcXHU3QTJCXFx1N0EyRFxcdTdBMkZcXHU3QTMwXFx1N0EzNFxcdTdBMzVcXHU3QTM4XFx1N0EzOVxcdTdBM0FcXHU3QTQ0XFx1N0E0NVxcdTdBNDdcXHU3QTQ4XFx1N0E0Q1xcdTdBNTVcXHU3QTU2XFx1N0E1OVxcdTdBNUNcXHU3QTVEXFx1N0E1RlxcdTdBNjBcXHU3QTY1XFx1N0E2N1xcdTdBNkFcXHU3QTZEXFx1N0E3NVxcdTdBNzhcXHU3QTdFXFx1N0E4MFxcdTdBODJcXHU3QTg1XFx1N0E4NlxcdTdBOEFcXHU3QThCXFx1N0E5MFxcdTdBOTFcXHU3QTk0XFx1N0E5RVxcdTdBQTBcXHU3QUEzXFx1N0FBQ1xcdTdBQjNcXHU3QUI1XFx1N0FCOVxcdTdBQkJcXHU3QUJDXFx1N0FDNlxcdTdBQzlcXHU3QUNDXFx1N0FDRVxcdTdBRDFcXHU3QURCXFx1N0FFOFxcdTdBRTlcXHU3QUVCXFx1N0FFQ1xcdTdBRjFcXHU3QUY0XFx1N0FGQlxcdTdBRkRcXHU3QUZFXFx1N0IwN1xcdTdCMTRcXHU3QjFGXFx1N0IyM1xcdTdCMjdcXHU3QjI5XFx1N0IyQVxcdTdCMkJcXHU3QjJEXFx1N0IyRVxcdTdCMkZcXHU3QjMwXCJdLFxuICAgICAgW1wiOGZkMmExXCIsIFwiXFx1N0IzMVxcdTdCMzRcXHU3QjNEXFx1N0IzRlxcdTdCNDBcXHU3QjQxXFx1N0I0N1xcdTdCNEVcXHU3QjU1XFx1N0I2MFxcdTdCNjRcXHU3QjY2XFx1N0I2OVxcdTdCNkFcXHU3QjZEXFx1N0I2RlxcdTdCNzJcXHU3QjczXFx1N0I3N1xcdTdCODRcXHU3Qjg5XFx1N0I4RVxcdTdCOTBcXHU3QjkxXFx1N0I5NlxcdTdCOUJcXHU3QjlFXFx1N0JBMFxcdTdCQTVcXHU3QkFDXFx1N0JBRlxcdTdCQjBcXHU3QkIyXFx1N0JCNVxcdTdCQjZcXHU3QkJBXFx1N0JCQlxcdTdCQkNcXHU3QkJEXFx1N0JDMlxcdTdCQzVcXHU3QkM4XFx1N0JDQVxcdTdCRDRcXHU3QkQ2XFx1N0JEN1xcdTdCRDlcXHU3QkRBXFx1N0JEQlxcdTdCRThcXHU3QkVBXFx1N0JGMlxcdTdCRjRcXHU3QkY1XFx1N0JGOFxcdTdCRjlcXHU3QkZBXFx1N0JGQ1xcdTdCRkVcXHU3QzAxXFx1N0MwMlxcdTdDMDNcXHU3QzA0XFx1N0MwNlxcdTdDMDlcXHU3QzBCXFx1N0MwQ1xcdTdDMEVcXHU3QzBGXFx1N0MxOVxcdTdDMUJcXHU3QzIwXFx1N0MyNVxcdTdDMjZcXHU3QzI4XFx1N0MyQ1xcdTdDMzFcXHU3QzMzXFx1N0MzNFxcdTdDMzZcXHU3QzM5XFx1N0MzQVxcdTdDNDZcXHU3QzRBXFx1N0M1NVxcdTdDNTFcXHU3QzUyXFx1N0M1M1xcdTdDNTlcIiwgNV0sXG4gICAgICBbXCI4ZmQzYTFcIiwgXCJcXHU3QzYxXFx1N0M2M1xcdTdDNjdcXHU3QzY5XFx1N0M2RFxcdTdDNkVcXHU3QzcwXFx1N0M3MlxcdTdDNzlcXHU3QzdDXFx1N0M3RFxcdTdDODZcXHU3Qzg3XFx1N0M4RlxcdTdDOTRcXHU3QzlFXFx1N0NBMFxcdTdDQTZcXHU3Q0IwXFx1N0NCNlxcdTdDQjdcXHU3Q0JBXFx1N0NCQlxcdTdDQkNcXHU3Q0JGXFx1N0NDNFxcdTdDQzdcXHU3Q0M4XFx1N0NDOVxcdTdDQ0RcXHU3Q0NGXFx1N0NEM1xcdTdDRDRcXHU3Q0Q1XFx1N0NEN1xcdTdDRDlcXHU3Q0RBXFx1N0NERFxcdTdDRTZcXHU3Q0U5XFx1N0NFQlxcdTdDRjVcXHU3RDAzXFx1N0QwN1xcdTdEMDhcXHU3RDA5XFx1N0QwRlxcdTdEMTFcXHU3RDEyXFx1N0QxM1xcdTdEMTZcXHU3RDFEXFx1N0QxRVxcdTdEMjNcXHU3RDI2XFx1N0QyQVxcdTdEMkRcXHU3RDMxXFx1N0QzQ1xcdTdEM0RcXHU3RDNFXFx1N0Q0MFxcdTdENDFcXHU3RDQ3XFx1N0Q0OFxcdTdENERcXHU3RDUxXFx1N0Q1M1xcdTdENTdcXHU3RDU5XFx1N0Q1QVxcdTdENUNcXHU3RDVEXFx1N0Q2NVxcdTdENjdcXHU3RDZBXFx1N0Q3MFxcdTdENzhcXHU3RDdBXFx1N0Q3QlxcdTdEN0ZcXHU3RDgxXFx1N0Q4MlxcdTdEODNcXHU3RDg1XFx1N0Q4NlxcdTdEODhcXHU3RDhCXFx1N0Q4Q1xcdTdEOERcXHU3RDkxXFx1N0Q5NlxcdTdEOTdcXHU3RDlEXCJdLFxuICAgICAgW1wiOGZkNGExXCIsIFwiXFx1N0Q5RVxcdTdEQTZcXHU3REE3XFx1N0RBQVxcdTdEQjNcXHU3REI2XFx1N0RCN1xcdTdEQjlcXHU3REMyXCIsIDQsIFwiXFx1N0RDQ1xcdTdEQ0RcXHU3RENFXFx1N0REN1xcdTdERDlcXHU3RTAwXFx1N0RFMlxcdTdERTVcXHU3REU2XFx1N0RFQVxcdTdERUJcXHU3REVEXFx1N0RGMVxcdTdERjVcXHU3REY2XFx1N0RGOVxcdTdERkFcXHU3RTA4XFx1N0UxMFxcdTdFMTFcXHU3RTE1XFx1N0UxN1xcdTdFMUNcXHU3RTFEXFx1N0UyMFxcdTdFMjdcXHU3RTI4XFx1N0UyQ1xcdTdFMkRcXHU3RTJGXFx1N0UzM1xcdTdFMzZcXHU3RTNGXFx1N0U0NFxcdTdFNDVcXHU3RTQ3XFx1N0U0RVxcdTdFNTBcXHU3RTUyXFx1N0U1OFxcdTdFNUZcXHU3RTYxXFx1N0U2MlxcdTdFNjVcXHU3RTZCXFx1N0U2RVxcdTdFNkZcXHU3RTczXFx1N0U3OFxcdTdFN0VcXHU3RTgxXFx1N0U4NlxcdTdFODdcXHU3RThBXFx1N0U4RFxcdTdFOTFcXHU3RTk1XFx1N0U5OFxcdTdFOUFcXHU3RTlEXFx1N0U5RVxcdTdGM0NcXHU3RjNCXFx1N0YzRFxcdTdGM0VcXHU3RjNGXFx1N0Y0M1xcdTdGNDRcXHU3RjQ3XFx1N0Y0RlxcdTdGNTJcXHU3RjUzXFx1N0Y1QlxcdTdGNUNcXHU3RjVEXFx1N0Y2MVxcdTdGNjNcXHU3RjY0XFx1N0Y2NVxcdTdGNjZcXHU3RjZEXCJdLFxuICAgICAgW1wiOGZkNWExXCIsIFwiXFx1N0Y3MVxcdTdGN0RcXHU3RjdFXFx1N0Y3RlxcdTdGODBcXHU3RjhCXFx1N0Y4RFxcdTdGOEZcXHU3RjkwXFx1N0Y5MVxcdTdGOTZcXHU3Rjk3XFx1N0Y5Q1xcdTdGQTFcXHU3RkEyXFx1N0ZBNlxcdTdGQUFcXHU3RkFEXFx1N0ZCNFxcdTdGQkNcXHU3RkJGXFx1N0ZDMFxcdTdGQzNcXHU3RkM4XFx1N0ZDRVxcdTdGQ0ZcXHU3RkRCXFx1N0ZERlxcdTdGRTNcXHU3RkU1XFx1N0ZFOFxcdTdGRUNcXHU3RkVFXFx1N0ZFRlxcdTdGRjJcXHU3RkZBXFx1N0ZGRFxcdTdGRkVcXHU3RkZGXFx1ODAwN1xcdTgwMDhcXHU4MDBBXFx1ODAwRFxcdTgwMEVcXHU4MDBGXFx1ODAxMVxcdTgwMTNcXHU4MDE0XFx1ODAxNlxcdTgwMURcXHU4MDFFXFx1ODAxRlxcdTgwMjBcXHU4MDI0XFx1ODAyNlxcdTgwMkNcXHU4MDJFXFx1ODAzMFxcdTgwMzRcXHU4MDM1XFx1ODAzN1xcdTgwMzlcXHU4MDNBXFx1ODAzQ1xcdTgwM0VcXHU4MDQwXFx1ODA0NFxcdTgwNjBcXHU4MDY0XFx1ODA2NlxcdTgwNkRcXHU4MDcxXFx1ODA3NVxcdTgwODFcXHU4MDg4XFx1ODA4RVxcdTgwOUNcXHU4MDlFXFx1ODBBNlxcdTgwQTdcXHU4MEFCXFx1ODBCOFxcdTgwQjlcXHU4MEM4XFx1ODBDRFxcdTgwQ0ZcXHU4MEQyXFx1ODBENFxcdTgwRDVcXHU4MEQ3XFx1ODBEOFxcdTgwRTBcXHU4MEVEXFx1ODBFRVwiXSxcbiAgICAgIFtcIjhmZDZhMVwiLCBcIlxcdTgwRjBcXHU4MEYyXFx1ODBGM1xcdTgwRjZcXHU4MEY5XFx1ODBGQVxcdTgwRkVcXHU4MTAzXFx1ODEwQlxcdTgxMTZcXHU4MTE3XFx1ODExOFxcdTgxMUNcXHU4MTFFXFx1ODEyMFxcdTgxMjRcXHU4MTI3XFx1ODEyQ1xcdTgxMzBcXHU4MTM1XFx1ODEzQVxcdTgxM0NcXHU4MTQ1XFx1ODE0N1xcdTgxNEFcXHU4MTRDXFx1ODE1MlxcdTgxNTdcXHU4MTYwXFx1ODE2MVxcdTgxNjdcXHU4MTY4XFx1ODE2OVxcdTgxNkRcXHU4MTZGXFx1ODE3N1xcdTgxODFcXHU4MTkwXFx1ODE4NFxcdTgxODVcXHU4MTg2XFx1ODE4QlxcdTgxOEVcXHU4MTk2XFx1ODE5OFxcdTgxOUJcXHU4MTlFXFx1ODFBMlxcdTgxQUVcXHU4MUIyXFx1ODFCNFxcdTgxQkJcXHU4MUNCXFx1ODFDM1xcdTgxQzVcXHU4MUNBXFx1ODFDRVxcdTgxQ0ZcXHU4MUQ1XFx1ODFEN1xcdTgxREJcXHU4MUREXFx1ODFERVxcdTgxRTFcXHU4MUU0XFx1ODFFQlxcdTgxRUNcXHU4MUYwXFx1ODFGMVxcdTgxRjJcXHU4MUY1XFx1ODFGNlxcdTgxRjhcXHU4MUY5XFx1ODFGRFxcdTgxRkZcXHU4MjAwXFx1ODIwM1xcdTgyMEZcXHU4MjEzXFx1ODIxNFxcdTgyMTlcXHU4MjFBXFx1ODIxRFxcdTgyMjFcXHU4MjIyXFx1ODIyOFxcdTgyMzJcXHU4MjM0XFx1ODIzQVxcdTgyNDNcXHU4MjQ0XFx1ODI0NVxcdTgyNDZcIl0sXG4gICAgICBbXCI4ZmQ3YTFcIiwgXCJcXHU4MjRCXFx1ODI0RVxcdTgyNEZcXHU4MjUxXFx1ODI1NlxcdTgyNUNcXHU4MjYwXFx1ODI2M1xcdTgyNjdcXHU4MjZEXFx1ODI3NFxcdTgyN0JcXHU4MjdEXFx1ODI3RlxcdTgyODBcXHU4MjgxXFx1ODI4M1xcdTgyODRcXHU4Mjg3XFx1ODI4OVxcdTgyOEFcXHU4MjhFXFx1ODI5MVxcdTgyOTRcXHU4Mjk2XFx1ODI5OFxcdTgyOUFcXHU4MjlCXFx1ODJBMFxcdTgyQTFcXHU4MkEzXFx1ODJBNFxcdTgyQTdcXHU4MkE4XFx1ODJBOVxcdTgyQUFcXHU4MkFFXFx1ODJCMFxcdTgyQjJcXHU4MkI0XFx1ODJCN1xcdTgyQkFcXHU4MkJDXFx1ODJCRVxcdTgyQkZcXHU4MkM2XFx1ODJEMFxcdTgyRDVcXHU4MkRBXFx1ODJFMFxcdTgyRTJcXHU4MkU0XFx1ODJFOFxcdTgyRUFcXHU4MkVEXFx1ODJFRlxcdTgyRjZcXHU4MkY3XFx1ODJGRFxcdTgyRkVcXHU4MzAwXFx1ODMwMVxcdTgzMDdcXHU4MzA4XFx1ODMwQVxcdTgzMEJcXHU4MzU0XFx1ODMxQlxcdTgzMURcXHU4MzFFXFx1ODMxRlxcdTgzMjFcXHU4MzIyXFx1ODMyQ1xcdTgzMkRcXHU4MzJFXFx1ODMzMFxcdTgzMzNcXHU4MzM3XFx1ODMzQVxcdTgzM0NcXHU4MzNEXFx1ODM0MlxcdTgzNDNcXHU4MzQ0XFx1ODM0N1xcdTgzNERcXHU4MzRFXFx1ODM1MVxcdTgzNTVcXHU4MzU2XFx1ODM1N1xcdTgzNzBcXHU4Mzc4XCJdLFxuICAgICAgW1wiOGZkOGExXCIsIFwiXFx1ODM3RFxcdTgzN0ZcXHU4MzgwXFx1ODM4MlxcdTgzODRcXHU4Mzg2XFx1ODM4RFxcdTgzOTJcXHU4Mzk0XFx1ODM5NVxcdTgzOThcXHU4Mzk5XFx1ODM5QlxcdTgzOUNcXHU4MzlEXFx1ODNBNlxcdTgzQTdcXHU4M0E5XFx1ODNBQ1xcdTgzQkVcXHU4M0JGXFx1ODNDMFxcdTgzQzdcXHU4M0M5XFx1ODNDRlxcdTgzRDBcXHU4M0QxXFx1ODNENFxcdTgzRERcXHU4MzUzXFx1ODNFOFxcdTgzRUFcXHU4M0Y2XFx1ODNGOFxcdTgzRjlcXHU4M0ZDXFx1ODQwMVxcdTg0MDZcXHU4NDBBXFx1ODQwRlxcdTg0MTFcXHU4NDE1XFx1ODQxOVxcdTgzQURcXHU4NDJGXFx1ODQzOVxcdTg0NDVcXHU4NDQ3XFx1ODQ0OFxcdTg0NEFcXHU4NDREXFx1ODQ0RlxcdTg0NTFcXHU4NDUyXFx1ODQ1NlxcdTg0NThcXHU4NDU5XFx1ODQ1QVxcdTg0NUNcXHU4NDYwXFx1ODQ2NFxcdTg0NjVcXHU4NDY3XFx1ODQ2QVxcdTg0NzBcXHU4NDczXFx1ODQ3NFxcdTg0NzZcXHU4NDc4XFx1ODQ3Q1xcdTg0N0RcXHU4NDgxXFx1ODQ4NVxcdTg0OTJcXHU4NDkzXFx1ODQ5NVxcdTg0OUVcXHU4NEE2XFx1ODRBOFxcdTg0QTlcXHU4NEFBXFx1ODRBRlxcdTg0QjFcXHU4NEI0XFx1ODRCQVxcdTg0QkRcXHU4NEJFXFx1ODRDMFxcdTg0QzJcXHU4NEM3XFx1ODRDOFxcdTg0Q0NcXHU4NENGXFx1ODREM1wiXSxcbiAgICAgIFtcIjhmZDlhMVwiLCBcIlxcdTg0RENcXHU4NEU3XFx1ODRFQVxcdTg0RUZcXHU4NEYwXFx1ODRGMVxcdTg0RjJcXHU4NEY3XFx1ODUzMlxcdTg0RkFcXHU4NEZCXFx1ODRGRFxcdTg1MDJcXHU4NTAzXFx1ODUwN1xcdTg1MENcXHU4NTBFXFx1ODUxMFxcdTg1MUNcXHU4NTFFXFx1ODUyMlxcdTg1MjNcXHU4NTI0XFx1ODUyNVxcdTg1MjdcXHU4NTJBXFx1ODUyQlxcdTg1MkZcXHU4NTMzXFx1ODUzNFxcdTg1MzZcXHU4NTNGXFx1ODU0NlxcdTg1NEZcIiwgNCwgXCJcXHU4NTU2XFx1ODU1OVxcdTg1NUNcIiwgNiwgXCJcXHU4NTY0XFx1ODU2QlxcdTg1NkZcXHU4NTc5XFx1ODU3QVxcdTg1N0JcXHU4NTdEXFx1ODU3RlxcdTg1ODFcXHU4NTg1XFx1ODU4NlxcdTg1ODlcXHU4NThCXFx1ODU4Q1xcdTg1OEZcXHU4NTkzXFx1ODU5OFxcdTg1OURcXHU4NTlGXFx1ODVBMFxcdTg1QTJcXHU4NUE1XFx1ODVBN1xcdTg1QjRcXHU4NUI2XFx1ODVCN1xcdTg1QjhcXHU4NUJDXFx1ODVCRFxcdTg1QkVcXHU4NUJGXFx1ODVDMlxcdTg1QzdcXHU4NUNBXFx1ODVDQlxcdTg1Q0VcXHU4NUFEXFx1ODVEOFxcdTg1REFcXHU4NURGXFx1ODVFMFxcdTg1RTZcXHU4NUU4XFx1ODVFRFxcdTg1RjNcXHU4NUY2XFx1ODVGQ1wiXSxcbiAgICAgIFtcIjhmZGFhMVwiLCBcIlxcdTg1RkZcXHU4NjAwXFx1ODYwNFxcdTg2MDVcXHU4NjBEXFx1ODYwRVxcdTg2MTBcXHU4NjExXFx1ODYxMlxcdTg2MThcXHU4NjE5XFx1ODYxQlxcdTg2MUVcXHU4NjIxXFx1ODYyN1xcdTg2MjlcXHU4NjM2XFx1ODYzOFxcdTg2M0FcXHU4NjNDXFx1ODYzRFxcdTg2NDBcXHU4NjQyXFx1ODY0NlxcdTg2NTJcXHU4NjUzXFx1ODY1NlxcdTg2NTdcXHU4NjU4XFx1ODY1OVxcdTg2NURcXHU4NjYwXCIsIDQsIFwiXFx1ODY2OVxcdTg2NkNcXHU4NjZGXFx1ODY3NVxcdTg2NzZcXHU4Njc3XFx1ODY3QVxcdTg2OERcXHU4NjkxXFx1ODY5NlxcdTg2OThcXHU4NjlBXFx1ODY5Q1xcdTg2QTFcXHU4NkE2XFx1ODZBN1xcdTg2QThcXHU4NkFEXFx1ODZCMVxcdTg2QjNcXHU4NkI0XFx1ODZCNVxcdTg2QjdcXHU4NkI4XFx1ODZCOVxcdTg2QkZcXHU4NkMwXFx1ODZDMVxcdTg2QzNcXHU4NkM1XFx1ODZEMVxcdTg2RDJcXHU4NkQ1XFx1ODZEN1xcdTg2REFcXHU4NkRDXFx1ODZFMFxcdTg2RTNcXHU4NkU1XFx1ODZFN1xcdTg2ODhcXHU4NkZBXFx1ODZGQ1xcdTg2RkRcXHU4NzA0XFx1ODcwNVxcdTg3MDdcXHU4NzBCXFx1ODcwRVxcdTg3MEZcXHU4NzEwXFx1ODcxM1xcdTg3MTRcXHU4NzE5XFx1ODcxRVxcdTg3MUZcXHU4NzIxXFx1ODcyM1wiXSxcbiAgICAgIFtcIjhmZGJhMVwiLCBcIlxcdTg3MjhcXHU4NzJFXFx1ODcyRlxcdTg3MzFcXHU4NzMyXFx1ODczOVxcdTg3M0FcXHU4NzNDXFx1ODczRFxcdTg3M0VcXHU4NzQwXFx1ODc0M1xcdTg3NDVcXHU4NzREXFx1ODc1OFxcdTg3NURcXHU4NzYxXFx1ODc2NFxcdTg3NjVcXHU4NzZGXFx1ODc3MVxcdTg3NzJcXHU4NzdCXFx1ODc4M1wiLCA2LCBcIlxcdTg3OEJcXHU4NzhDXFx1ODc5MFxcdTg3OTNcXHU4Nzk1XFx1ODc5N1xcdTg3OThcXHU4Nzk5XFx1ODc5RVxcdTg3QTBcXHU4N0EzXFx1ODdBN1xcdTg3QUNcXHU4N0FEXFx1ODdBRVxcdTg3QjFcXHU4N0I1XFx1ODdCRVxcdTg3QkZcXHU4N0MxXFx1ODdDOFxcdTg3QzlcXHU4N0NBXFx1ODdDRVxcdTg3RDVcXHU4N0Q2XFx1ODdEOVxcdTg3REFcXHU4N0RDXFx1ODdERlxcdTg3RTJcXHU4N0UzXFx1ODdFNFxcdTg3RUFcXHU4N0VCXFx1ODdFRFxcdTg3RjFcXHU4N0YzXFx1ODdGOFxcdTg3RkFcXHU4N0ZGXFx1ODgwMVxcdTg4MDNcXHU4ODA2XFx1ODgwOVxcdTg4MEFcXHU4ODBCXFx1ODgxMFxcdTg4MTlcXHU4ODEyXFx1ODgxM1xcdTg4MTRcXHU4ODE4XFx1ODgxQVxcdTg4MUJcXHU4ODFDXFx1ODgxRVxcdTg4MUZcXHU4ODI4XFx1ODgyRFxcdTg4MkVcXHU4ODMwXFx1ODgzMlxcdTg4MzVcIl0sXG4gICAgICBbXCI4ZmRjYTFcIiwgXCJcXHU4ODNBXFx1ODgzQ1xcdTg4NDFcXHU4ODQzXFx1ODg0NVxcdTg4NDhcXHU4ODQ5XFx1ODg0QVxcdTg4NEJcXHU4ODRFXFx1ODg1MVxcdTg4NTVcXHU4ODU2XFx1ODg1OFxcdTg4NUFcXHU4ODVDXFx1ODg1RlxcdTg4NjBcXHU4ODY0XFx1ODg2OVxcdTg4NzFcXHU4ODc5XFx1ODg3QlxcdTg4ODBcXHU4ODk4XFx1ODg5QVxcdTg4OUJcXHU4ODlDXFx1ODg5RlxcdTg4QTBcXHU4OEE4XFx1ODhBQVxcdTg4QkFcXHU4OEJEXFx1ODhCRVxcdTg4QzBcXHU4OENBXCIsIDQsIFwiXFx1ODhEMVxcdTg4RDJcXHU4OEQzXFx1ODhEQlxcdTg4REVcXHU4OEU3XFx1ODhFRlxcdTg4RjBcXHU4OEYxXFx1ODhGNVxcdTg4RjdcXHU4OTAxXFx1ODkwNlxcdTg5MERcXHU4OTBFXFx1ODkwRlxcdTg5MTVcXHU4OTE2XFx1ODkxOFxcdTg5MTlcXHU4OTFBXFx1ODkxQ1xcdTg5MjBcXHU4OTI2XFx1ODkyN1xcdTg5MjhcXHU4OTMwXFx1ODkzMVxcdTg5MzJcXHU4OTM1XFx1ODkzOVxcdTg5M0FcXHU4OTNFXFx1ODk0MFxcdTg5NDJcXHU4OTQ1XFx1ODk0NlxcdTg5NDlcXHU4OTRGXFx1ODk1MlxcdTg5NTdcXHU4OTVBXFx1ODk1QlxcdTg5NUNcXHU4OTYxXFx1ODk2MlxcdTg5NjNcXHU4OTZCXFx1ODk2RVxcdTg5NzBcXHU4OTczXFx1ODk3NVxcdTg5N0FcIl0sXG4gICAgICBbXCI4ZmRkYTFcIiwgXCJcXHU4OTdCXFx1ODk3Q1xcdTg5N0RcXHU4OTg5XFx1ODk4RFxcdTg5OTBcXHU4OTk0XFx1ODk5NVxcdTg5OUJcXHU4OTlDXFx1ODk5RlxcdTg5QTBcXHU4OUE1XFx1ODlCMFxcdTg5QjRcXHU4OUI1XFx1ODlCNlxcdTg5QjdcXHU4OUJDXFx1ODlENFwiLCA0LCBcIlxcdTg5RTVcXHU4OUU5XFx1ODlFQlxcdTg5RURcXHU4OUYxXFx1ODlGM1xcdTg5RjZcXHU4OUY5XFx1ODlGRFxcdTg5RkZcXHU4QTA0XFx1OEEwNVxcdThBMDdcXHU4QTBGXFx1OEExMVxcdThBMTJcXHU4QTE0XFx1OEExNVxcdThBMUVcXHU4QTIwXFx1OEEyMlxcdThBMjRcXHU4QTI2XFx1OEEyQlxcdThBMkNcXHU4QTJGXFx1OEEzNVxcdThBMzdcXHU4QTNEXFx1OEEzRVxcdThBNDBcXHU4QTQzXFx1OEE0NVxcdThBNDdcXHU4QTQ5XFx1OEE0RFxcdThBNEVcXHU4QTUzXFx1OEE1NlxcdThBNTdcXHU4QTU4XFx1OEE1Q1xcdThBNURcXHU4QTYxXFx1OEE2NVxcdThBNjdcXHU4QTc1XFx1OEE3NlxcdThBNzdcXHU4QTc5XFx1OEE3QVxcdThBN0JcXHU4QTdFXFx1OEE3RlxcdThBODBcXHU4QTgzXFx1OEE4NlxcdThBOEJcXHU4QThGXFx1OEE5MFxcdThBOTJcXHU4QTk2XFx1OEE5N1xcdThBOTlcXHU4QTlGXFx1OEFBN1xcdThBQTlcXHU4QUFFXFx1OEFBRlxcdThBQjNcIl0sXG4gICAgICBbXCI4ZmRlYTFcIiwgXCJcXHU4QUI2XFx1OEFCN1xcdThBQkJcXHU4QUJFXFx1OEFDM1xcdThBQzZcXHU4QUM4XFx1OEFDOVxcdThBQ0FcXHU4QUQxXFx1OEFEM1xcdThBRDRcXHU4QUQ1XFx1OEFEN1xcdThBRERcXHU4QURGXFx1OEFFQ1xcdThBRjBcXHU4QUY0XFx1OEFGNVxcdThBRjZcXHU4QUZDXFx1OEFGRlxcdThCMDVcXHU4QjA2XFx1OEIwQlxcdThCMTFcXHU4QjFDXFx1OEIxRVxcdThCMUZcXHU4QjBBXFx1OEIyRFxcdThCMzBcXHU4QjM3XFx1OEIzQ1xcdThCNDJcIiwgNCwgXCJcXHU4QjQ4XFx1OEI1MlxcdThCNTNcXHU4QjU0XFx1OEI1OVxcdThCNERcXHU4QjVFXFx1OEI2M1xcdThCNkRcXHU4Qjc2XFx1OEI3OFxcdThCNzlcXHU4QjdDXFx1OEI3RVxcdThCODFcXHU4Qjg0XFx1OEI4NVxcdThCOEJcXHU4QjhEXFx1OEI4RlxcdThCOTRcXHU4Qjk1XFx1OEI5Q1xcdThCOUVcXHU4QjlGXFx1OEMzOFxcdThDMzlcXHU4QzNEXFx1OEMzRVxcdThDNDVcXHU4QzQ3XFx1OEM0OVxcdThDNEJcXHU4QzRGXFx1OEM1MVxcdThDNTNcXHU4QzU0XFx1OEM1N1xcdThDNThcXHU4QzVCXFx1OEM1RFxcdThDNTlcXHU4QzYzXFx1OEM2NFxcdThDNjZcXHU4QzY4XFx1OEM2OVxcdThDNkRcXHU4QzczXFx1OEM3NVxcdThDNzZcXHU4QzdCXFx1OEM3RVxcdThDODZcIl0sXG4gICAgICBbXCI4ZmRmYTFcIiwgXCJcXHU4Qzg3XFx1OEM4QlxcdThDOTBcXHU4QzkyXFx1OEM5M1xcdThDOTlcXHU4QzlCXFx1OEM5Q1xcdThDQTRcXHU4Q0I5XFx1OENCQVxcdThDQzVcXHU4Q0M2XFx1OENDOVxcdThDQ0JcXHU4Q0NGXFx1OENENlxcdThDRDVcXHU4Q0Q5XFx1OENERFxcdThDRTFcXHU4Q0U4XFx1OENFQ1xcdThDRUZcXHU4Q0YwXFx1OENGMlxcdThDRjVcXHU4Q0Y3XFx1OENGOFxcdThDRkVcXHU4Q0ZGXFx1OEQwMVxcdThEMDNcXHU4RDA5XFx1OEQxMlxcdThEMTdcXHU4RDFCXFx1OEQ2NVxcdThENjlcXHU4RDZDXFx1OEQ2RVxcdThEN0ZcXHU4RDgyXFx1OEQ4NFxcdThEODhcXHU4RDhEXFx1OEQ5MFxcdThEOTFcXHU4RDk1XFx1OEQ5RVxcdThEOUZcXHU4REEwXFx1OERBNlxcdThEQUJcXHU4REFDXFx1OERBRlxcdThEQjJcXHU4REI1XFx1OERCN1xcdThEQjlcXHU4REJCXFx1OERDMFxcdThEQzVcXHU4REM2XFx1OERDN1xcdThEQzhcXHU4RENBXFx1OERDRVxcdThERDFcXHU4REQ0XFx1OERENVxcdThERDdcXHU4REQ5XFx1OERFNFxcdThERTVcXHU4REU3XFx1OERFQ1xcdThERjBcXHU4REJDXFx1OERGMVxcdThERjJcXHU4REY0XFx1OERGRFxcdThFMDFcXHU4RTA0XFx1OEUwNVxcdThFMDZcXHU4RTBCXFx1OEUxMVxcdThFMTRcXHU4RTE2XFx1OEUyMFxcdThFMjFcXHU4RTIyXCJdLFxuICAgICAgW1wiOGZlMGExXCIsIFwiXFx1OEUyM1xcdThFMjZcXHU4RTI3XFx1OEUzMVxcdThFMzNcXHU4RTM2XFx1OEUzN1xcdThFMzhcXHU4RTM5XFx1OEUzRFxcdThFNDBcXHU4RTQxXFx1OEU0QlxcdThFNERcXHU4RTRFXFx1OEU0RlxcdThFNTRcXHU4RTVCXFx1OEU1Q1xcdThFNURcXHU4RTVFXFx1OEU2MVxcdThFNjJcXHU4RTY5XFx1OEU2Q1xcdThFNkRcXHU4RTZGXFx1OEU3MFxcdThFNzFcXHU4RTc5XFx1OEU3QVxcdThFN0JcXHU4RTgyXFx1OEU4M1xcdThFODlcXHU4RTkwXFx1OEU5MlxcdThFOTVcXHU4RTlBXFx1OEU5QlxcdThFOURcXHU4RTlFXFx1OEVBMlxcdThFQTdcXHU4RUE5XFx1OEVBRFxcdThFQUVcXHU4RUIzXFx1OEVCNVxcdThFQkFcXHU4RUJCXFx1OEVDMFxcdThFQzFcXHU4RUMzXFx1OEVDNFxcdThFQzdcXHU4RUNGXFx1OEVEMVxcdThFRDRcXHU4RURDXFx1OEVFOFxcdThFRUVcXHU4RUYwXFx1OEVGMVxcdThFRjdcXHU4RUY5XFx1OEVGQVxcdThFRURcXHU4RjAwXFx1OEYwMlxcdThGMDdcXHU4RjA4XFx1OEYwRlxcdThGMTBcXHU4RjE2XFx1OEYxN1xcdThGMThcXHU4RjFFXFx1OEYyMFxcdThGMjFcXHU4RjIzXFx1OEYyNVxcdThGMjdcXHU4RjI4XFx1OEYyQ1xcdThGMkRcXHU4RjJFXFx1OEYzNFxcdThGMzVcXHU4RjM2XFx1OEYzN1xcdThGM0FcXHU4RjQwXFx1OEY0MVwiXSxcbiAgICAgIFtcIjhmZTFhMVwiLCBcIlxcdThGNDNcXHU4RjQ3XFx1OEY0RlxcdThGNTFcIiwgNCwgXCJcXHU4RjU4XFx1OEY1RFxcdThGNUVcXHU4RjY1XFx1OEY5RFxcdThGQTBcXHU4RkExXFx1OEZBNFxcdThGQTVcXHU4RkE2XFx1OEZCNVxcdThGQjZcXHU4RkI4XFx1OEZCRVxcdThGQzBcXHU4RkMxXFx1OEZDNlxcdThGQ0FcXHU4RkNCXFx1OEZDRFxcdThGRDBcXHU4RkQyXFx1OEZEM1xcdThGRDVcXHU4RkUwXFx1OEZFM1xcdThGRTRcXHU4RkU4XFx1OEZFRVxcdThGRjFcXHU4RkY1XFx1OEZGNlxcdThGRkJcXHU4RkZFXFx1OTAwMlxcdTkwMDRcXHU5MDA4XFx1OTAwQ1xcdTkwMThcXHU5MDFCXFx1OTAyOFxcdTkwMjlcXHU5MDJGXFx1OTAyQVxcdTkwMkNcXHU5MDJEXFx1OTAzM1xcdTkwMzRcXHU5MDM3XFx1OTAzRlxcdTkwNDNcXHU5MDQ0XFx1OTA0Q1xcdTkwNUJcXHU5MDVEXFx1OTA2MlxcdTkwNjZcXHU5MDY3XFx1OTA2Q1xcdTkwNzBcXHU5MDc0XFx1OTA3OVxcdTkwODVcXHU5MDg4XFx1OTA4QlxcdTkwOENcXHU5MDhFXFx1OTA5MFxcdTkwOTVcXHU5MDk3XFx1OTA5OFxcdTkwOTlcXHU5MDlCXFx1OTBBMFxcdTkwQTFcXHU5MEEyXFx1OTBBNVxcdTkwQjBcXHU5MEIyXFx1OTBCM1xcdTkwQjRcXHU5MEI2XFx1OTBCRFxcdTkwQ0NcXHU5MEJFXFx1OTBDM1wiXSxcbiAgICAgIFtcIjhmZTJhMVwiLCBcIlxcdTkwQzRcXHU5MEM1XFx1OTBDN1xcdTkwQzhcXHU5MEQ1XFx1OTBEN1xcdTkwRDhcXHU5MEQ5XFx1OTBEQ1xcdTkwRERcXHU5MERGXFx1OTBFNVxcdTkwRDJcXHU5MEY2XFx1OTBFQlxcdTkwRUZcXHU5MEYwXFx1OTBGNFxcdTkwRkVcXHU5MEZGXFx1OTEwMFxcdTkxMDRcXHU5MTA1XFx1OTEwNlxcdTkxMDhcXHU5MTBEXFx1OTExMFxcdTkxMTRcXHU5MTE2XFx1OTExN1xcdTkxMThcXHU5MTFBXFx1OTExQ1xcdTkxMUVcXHU5MTIwXFx1OTEyNVxcdTkxMjJcXHU5MTIzXFx1OTEyN1xcdTkxMjlcXHU5MTJFXFx1OTEyRlxcdTkxMzFcXHU5MTM0XFx1OTEzNlxcdTkxMzdcXHU5MTM5XFx1OTEzQVxcdTkxM0NcXHU5MTNEXFx1OTE0M1xcdTkxNDdcXHU5MTQ4XFx1OTE0RlxcdTkxNTNcXHU5MTU3XFx1OTE1OVxcdTkxNUFcXHU5MTVCXFx1OTE2MVxcdTkxNjRcXHU5MTY3XFx1OTE2RFxcdTkxNzRcXHU5MTc5XFx1OTE3QVxcdTkxN0JcXHU5MTgxXFx1OTE4M1xcdTkxODVcXHU5MTg2XFx1OTE4QVxcdTkxOEVcXHU5MTkxXFx1OTE5M1xcdTkxOTRcXHU5MTk1XFx1OTE5OFxcdTkxOUVcXHU5MUExXFx1OTFBNlxcdTkxQThcXHU5MUFDXFx1OTFBRFxcdTkxQUVcXHU5MUIwXFx1OTFCMVxcdTkxQjJcXHU5MUIzXFx1OTFCNlxcdTkxQkJcXHU5MUJDXFx1OTFCRFxcdTkxQkZcIl0sXG4gICAgICBbXCI4ZmUzYTFcIiwgXCJcXHU5MUMyXFx1OTFDM1xcdTkxQzVcXHU5MUQzXFx1OTFENFxcdTkxRDdcXHU5MUQ5XFx1OTFEQVxcdTkxREVcXHU5MUU0XFx1OTFFNVxcdTkxRTlcXHU5MUVBXFx1OTFFQ1wiLCA1LCBcIlxcdTkxRjdcXHU5MUY5XFx1OTFGQlxcdTkxRkRcXHU5MjAwXFx1OTIwMVxcdTkyMDRcXHU5MjA1XFx1OTIwNlxcdTkyMDdcXHU5MjA5XFx1OTIwQVxcdTkyMENcXHU5MjEwXFx1OTIxMlxcdTkyMTNcXHU5MjE2XFx1OTIxOFxcdTkyMUNcXHU5MjFEXFx1OTIyM1xcdTkyMjRcXHU5MjI1XFx1OTIyNlxcdTkyMjhcXHU5MjJFXFx1OTIyRlxcdTkyMzBcXHU5MjMzXFx1OTIzNVxcdTkyMzZcXHU5MjM4XFx1OTIzOVxcdTkyM0FcXHU5MjNDXFx1OTIzRVxcdTkyNDBcXHU5MjQyXFx1OTI0M1xcdTkyNDZcXHU5MjQ3XFx1OTI0QVxcdTkyNERcXHU5MjRFXFx1OTI0RlxcdTkyNTFcXHU5MjU4XFx1OTI1OVxcdTkyNUNcXHU5MjVEXFx1OTI2MFxcdTkyNjFcXHU5MjY1XFx1OTI2N1xcdTkyNjhcXHU5MjY5XFx1OTI2RVxcdTkyNkZcXHU5MjcwXFx1OTI3NVwiLCA0LCBcIlxcdTkyN0JcXHU5MjdDXFx1OTI3RFxcdTkyN0ZcXHU5Mjg4XFx1OTI4OVxcdTkyOEFcXHU5MjhEXFx1OTI4RVxcdTkyOTJcXHU5Mjk3XCJdLFxuICAgICAgW1wiOGZlNGExXCIsIFwiXFx1OTI5OVxcdTkyOUZcXHU5MkEwXFx1OTJBNFxcdTkyQTVcXHU5MkE3XFx1OTJBOFxcdTkyQUJcXHU5MkFGXFx1OTJCMlxcdTkyQjZcXHU5MkI4XFx1OTJCQVxcdTkyQkJcXHU5MkJDXFx1OTJCRFxcdTkyQkZcIiwgNCwgXCJcXHU5MkM1XFx1OTJDNlxcdTkyQzdcXHU5MkM4XFx1OTJDQlxcdTkyQ0NcXHU5MkNEXFx1OTJDRVxcdTkyRDBcXHU5MkQzXFx1OTJENVxcdTkyRDdcXHU5MkQ4XFx1OTJEOVxcdTkyRENcXHU5MkREXFx1OTJERlxcdTkyRTBcXHU5MkUxXFx1OTJFM1xcdTkyRTVcXHU5MkU3XFx1OTJFOFxcdTkyRUNcXHU5MkVFXFx1OTJGMFxcdTkyRjlcXHU5MkZCXFx1OTJGRlxcdTkzMDBcXHU5MzAyXFx1OTMwOFxcdTkzMERcXHU5MzExXFx1OTMxNFxcdTkzMTVcXHU5MzFDXFx1OTMxRFxcdTkzMUVcXHU5MzFGXFx1OTMyMVxcdTkzMjRcXHU5MzI1XFx1OTMyN1xcdTkzMjlcXHU5MzJBXFx1OTMzM1xcdTkzMzRcXHU5MzM2XFx1OTMzN1xcdTkzNDdcXHU5MzQ4XFx1OTM0OVxcdTkzNTBcXHU5MzUxXFx1OTM1MlxcdTkzNTVcXHU5MzU3XFx1OTM1OFxcdTkzNUFcXHU5MzVFXFx1OTM2NFxcdTkzNjVcXHU5MzY3XFx1OTM2OVxcdTkzNkFcXHU5MzZEXFx1OTM2RlxcdTkzNzBcXHU5MzcxXFx1OTM3M1xcdTkzNzRcXHU5Mzc2XCJdLFxuICAgICAgW1wiOGZlNWExXCIsIFwiXFx1OTM3QVxcdTkzN0RcXHU5MzdGXFx1OTM4MFxcdTkzODFcXHU5MzgyXFx1OTM4OFxcdTkzOEFcXHU5MzhCXFx1OTM4RFxcdTkzOEZcXHU5MzkyXFx1OTM5NVxcdTkzOThcXHU5MzlCXFx1OTM5RVxcdTkzQTFcXHU5M0EzXFx1OTNBNFxcdTkzQTZcXHU5M0E4XFx1OTNBQlxcdTkzQjRcXHU5M0I1XFx1OTNCNlxcdTkzQkFcXHU5M0E5XFx1OTNDMVxcdTkzQzRcXHU5M0M1XFx1OTNDNlxcdTkzQzdcXHU5M0M5XCIsIDQsIFwiXFx1OTNEM1xcdTkzRDlcXHU5M0RDXFx1OTNERVxcdTkzREZcXHU5M0UyXFx1OTNFNlxcdTkzRTdcXHU5M0Y5XFx1OTNGN1xcdTkzRjhcXHU5M0ZBXFx1OTNGQlxcdTkzRkRcXHU5NDAxXFx1OTQwMlxcdTk0MDRcXHU5NDA4XFx1OTQwOVxcdTk0MERcXHU5NDBFXFx1OTQwRlxcdTk0MTVcXHU5NDE2XFx1OTQxN1xcdTk0MUZcXHU5NDJFXFx1OTQyRlxcdTk0MzFcXHU5NDMyXFx1OTQzM1xcdTk0MzRcXHU5NDNCXFx1OTQzRlxcdTk0M0RcXHU5NDQzXFx1OTQ0NVxcdTk0NDhcXHU5NDRBXFx1OTQ0Q1xcdTk0NTVcXHU5NDU5XFx1OTQ1Q1xcdTk0NUZcXHU5NDYxXFx1OTQ2M1xcdTk0NjhcXHU5NDZCXFx1OTQ2RFxcdTk0NkVcXHU5NDZGXFx1OTQ3MVxcdTk0NzJcXHU5NDg0XFx1OTQ4M1xcdTk1NzhcXHU5NTc5XCJdLFxuICAgICAgW1wiOGZlNmExXCIsIFwiXFx1OTU3RVxcdTk1ODRcXHU5NTg4XFx1OTU4Q1xcdTk1OERcXHU5NThFXFx1OTU5RFxcdTk1OUVcXHU5NTlGXFx1OTVBMVxcdTk1QTZcXHU5NUE5XFx1OTVBQlxcdTk1QUNcXHU5NUI0XFx1OTVCNlxcdTk1QkFcXHU5NUJEXFx1OTVCRlxcdTk1QzZcXHU5NUM4XFx1OTVDOVxcdTk1Q0JcXHU5NUQwXFx1OTVEMVxcdTk1RDJcXHU5NUQzXFx1OTVEOVxcdTk1REFcXHU5NUREXFx1OTVERVxcdTk1REZcXHU5NUUwXFx1OTVFNFxcdTk1RTZcXHU5NjFEXFx1OTYxRVxcdTk2MjJcXHU5NjI0XFx1OTYyNVxcdTk2MjZcXHU5NjJDXFx1OTYzMVxcdTk2MzNcXHU5NjM3XFx1OTYzOFxcdTk2MzlcXHU5NjNBXFx1OTYzQ1xcdTk2M0RcXHU5NjQxXFx1OTY1MlxcdTk2NTRcXHU5NjU2XFx1OTY1N1xcdTk2NThcXHU5NjYxXFx1OTY2RVxcdTk2NzRcXHU5NjdCXFx1OTY3Q1xcdTk2N0VcXHU5NjdGXFx1OTY4MVxcdTk2ODJcXHU5NjgzXFx1OTY4NFxcdTk2ODlcXHU5NjkxXFx1OTY5NlxcdTk2OUFcXHU5NjlEXFx1OTY5RlxcdTk2QTRcXHU5NkE1XFx1OTZBNlxcdTk2QTlcXHU5NkFFXFx1OTZBRlxcdTk2QjNcXHU5NkJBXFx1OTZDQVxcdTk2RDJcXHU1REIyXFx1OTZEOFxcdTk2REFcXHU5NkREXFx1OTZERVxcdTk2REZcXHU5NkU5XFx1OTZFRlxcdTk2RjFcXHU5NkZBXFx1OTcwMlwiXSxcbiAgICAgIFtcIjhmZTdhMVwiLCBcIlxcdTk3MDNcXHU5NzA1XFx1OTcwOVxcdTk3MUFcXHU5NzFCXFx1OTcxRFxcdTk3MjFcXHU5NzIyXFx1OTcyM1xcdTk3MjhcXHU5NzMxXFx1OTczM1xcdTk3NDFcXHU5NzQzXFx1OTc0QVxcdTk3NEVcXHU5NzRGXFx1OTc1NVxcdTk3NTdcXHU5NzU4XFx1OTc1QVxcdTk3NUJcXHU5NzYzXFx1OTc2N1xcdTk3NkFcXHU5NzZFXFx1OTc3M1xcdTk3NzZcXHU5Nzc3XFx1OTc3OFxcdTk3N0JcXHU5NzdEXFx1OTc3RlxcdTk3ODBcXHU5Nzg5XFx1OTc5NVxcdTk3OTZcXHU5Nzk3XFx1OTc5OVxcdTk3OUFcXHU5NzlFXFx1OTc5RlxcdTk3QTJcXHU5N0FDXFx1OTdBRVxcdTk3QjFcXHU5N0IyXFx1OTdCNVxcdTk3QjZcXHU5N0I4XFx1OTdCOVxcdTk3QkFcXHU5N0JDXFx1OTdCRVxcdTk3QkZcXHU5N0MxXFx1OTdDNFxcdTk3QzVcXHU5N0M3XFx1OTdDOVxcdTk3Q0FcXHU5N0NDXFx1OTdDRFxcdTk3Q0VcXHU5N0QwXFx1OTdEMVxcdTk3RDRcXHU5N0Q3XFx1OTdEOFxcdTk3RDlcXHU5N0REXFx1OTdERVxcdTk3RTBcXHU5N0RCXFx1OTdFMVxcdTk3RTRcXHU5N0VGXFx1OTdGMVxcdTk3RjRcXHU5N0Y3XFx1OTdGOFxcdTk3RkFcXHU5ODA3XFx1OTgwQVxcdTk4MTlcXHU5ODBEXFx1OTgwRVxcdTk4MTRcXHU5ODE2XFx1OTgxQ1xcdTk4MUVcXHU5ODIwXFx1OTgyM1xcdTk4MjZcIl0sXG4gICAgICBbXCI4ZmU4YTFcIiwgXCJcXHU5ODJCXFx1OTgyRVxcdTk4MkZcXHU5ODMwXFx1OTgzMlxcdTk4MzNcXHU5ODM1XFx1OTgyNVxcdTk4M0VcXHU5ODQ0XFx1OTg0N1xcdTk4NEFcXHU5ODUxXFx1OTg1MlxcdTk4NTNcXHU5ODU2XFx1OTg1N1xcdTk4NTlcXHU5ODVBXFx1OTg2MlxcdTk4NjNcXHU5ODY1XFx1OTg2NlxcdTk4NkFcXHU5ODZDXFx1OThBQlxcdTk4QURcXHU5OEFFXFx1OThCMFxcdTk4QjRcXHU5OEI3XFx1OThCOFxcdTk4QkFcXHU5OEJCXFx1OThCRlxcdTk4QzJcXHU5OEM1XFx1OThDOFxcdTk4Q0NcXHU5OEUxXFx1OThFM1xcdTk4RTVcXHU5OEU2XFx1OThFN1xcdTk4RUFcXHU5OEYzXFx1OThGNlxcdTk5MDJcXHU5OTA3XFx1OTkwOFxcdTk5MTFcXHU5OTE1XFx1OTkxNlxcdTk5MTdcXHU5OTFBXFx1OTkxQlxcdTk5MUNcXHU5OTFGXFx1OTkyMlxcdTk5MjZcXHU5OTI3XFx1OTkyQlxcdTk5MzFcIiwgNCwgXCJcXHU5OTM5XFx1OTkzQVxcdTk5M0JcXHU5OTNDXFx1OTk0MFxcdTk5NDFcXHU5OTQ2XFx1OTk0N1xcdTk5NDhcXHU5OTREXFx1OTk0RVxcdTk5NTRcXHU5OTU4XFx1OTk1OVxcdTk5NUJcXHU5OTVDXFx1OTk1RVxcdTk5NUZcXHU5OTYwXFx1OTk5QlxcdTk5OURcXHU5OTlGXFx1OTlBNlxcdTk5QjBcXHU5OUIxXFx1OTlCMlxcdTk5QjVcIl0sXG4gICAgICBbXCI4ZmU5YTFcIiwgXCJcXHU5OUI5XFx1OTlCQVxcdTk5QkRcXHU5OUJGXFx1OTlDM1xcdTk5QzlcXHU5OUQzXFx1OTlENFxcdTk5RDlcXHU5OURBXFx1OTlEQ1xcdTk5REVcXHU5OUU3XFx1OTlFQVxcdTk5RUJcXHU5OUVDXFx1OTlGMFxcdTk5RjRcXHU5OUY1XFx1OTlGOVxcdTk5RkRcXHU5OUZFXFx1OUEwMlxcdTlBMDNcXHU5QTA0XFx1OUEwQlxcdTlBMENcXHU5QTEwXFx1OUExMVxcdTlBMTZcXHU5QTFFXFx1OUEyMFxcdTlBMjJcXHU5QTIzXFx1OUEyNFxcdTlBMjdcXHU5QTJEXFx1OUEyRVxcdTlBMzNcXHU5QTM1XFx1OUEzNlxcdTlBMzhcXHU5QTQ3XFx1OUE0MVxcdTlBNDRcXHU5QTRBXFx1OUE0QlxcdTlBNENcXHU5QTRFXFx1OUE1MVxcdTlBNTRcXHU5QTU2XFx1OUE1RFxcdTlBQUFcXHU5QUFDXFx1OUFBRVxcdTlBQUZcXHU5QUIyXFx1OUFCNFxcdTlBQjVcXHU5QUI2XFx1OUFCOVxcdTlBQkJcXHU5QUJFXFx1OUFCRlxcdTlBQzFcXHU5QUMzXFx1OUFDNlxcdTlBQzhcXHU5QUNFXFx1OUFEMFxcdTlBRDJcXHU5QUQ1XFx1OUFENlxcdTlBRDdcXHU5QURCXFx1OUFEQ1xcdTlBRTBcXHU5QUU0XFx1OUFFNVxcdTlBRTdcXHU5QUU5XFx1OUFFQ1xcdTlBRjJcXHU5QUYzXFx1OUFGNVxcdTlBRjlcXHU5QUZBXFx1OUFGRFxcdTlBRkZcIiwgNF0sXG4gICAgICBbXCI4ZmVhYTFcIiwgXCJcXHU5QjA0XFx1OUIwNVxcdTlCMDhcXHU5QjA5XFx1OUIwQlxcdTlCMENcXHU5QjBEXFx1OUIwRVxcdTlCMTBcXHU5QjEyXFx1OUIxNlxcdTlCMTlcXHU5QjFCXFx1OUIxQ1xcdTlCMjBcXHU5QjI2XFx1OUIyQlxcdTlCMkRcXHU5QjMzXFx1OUIzNFxcdTlCMzVcXHU5QjM3XFx1OUIzOVxcdTlCM0FcXHU5QjNEXFx1OUI0OFxcdTlCNEJcXHU5QjRDXFx1OUI1NVxcdTlCNTZcXHU5QjU3XFx1OUI1QlxcdTlCNUVcXHU5QjYxXFx1OUI2M1xcdTlCNjVcXHU5QjY2XFx1OUI2OFxcdTlCNkFcIiwgNCwgXCJcXHU5QjczXFx1OUI3NVxcdTlCNzdcXHU5Qjc4XFx1OUI3OVxcdTlCN0ZcXHU5QjgwXFx1OUI4NFxcdTlCODVcXHU5Qjg2XFx1OUI4N1xcdTlCODlcXHU5QjhBXFx1OUI4QlxcdTlCOERcXHU5QjhGXFx1OUI5MFxcdTlCOTRcXHU5QjlBXFx1OUI5RFxcdTlCOUVcXHU5QkE2XFx1OUJBN1xcdTlCQTlcXHU5QkFDXFx1OUJCMFxcdTlCQjFcXHU5QkIyXFx1OUJCN1xcdTlCQjhcXHU5QkJCXFx1OUJCQ1xcdTlCQkVcXHU5QkJGXFx1OUJDMVxcdTlCQzdcXHU5QkM4XFx1OUJDRVxcdTlCRDBcXHU5QkQ3XFx1OUJEOFxcdTlCRERcXHU5QkRGXFx1OUJFNVxcdTlCRTdcXHU5QkVBXFx1OUJFQlxcdTlCRUZcXHU5QkYzXFx1OUJGN1xcdTlCRjhcIl0sXG4gICAgICBbXCI4ZmViYTFcIiwgXCJcXHU5QkY5XFx1OUJGQVxcdTlCRkRcXHU5QkZGXFx1OUMwMFxcdTlDMDJcXHU5QzBCXFx1OUMwRlxcdTlDMTFcXHU5QzE2XFx1OUMxOFxcdTlDMTlcXHU5QzFBXFx1OUMxQ1xcdTlDMUVcXHU5QzIyXFx1OUMyM1xcdTlDMjZcIiwgNCwgXCJcXHU5QzMxXFx1OUMzNVxcdTlDMzZcXHU5QzM3XFx1OUMzRFxcdTlDNDFcXHU5QzQzXFx1OUM0NFxcdTlDNDVcXHU5QzQ5XFx1OUM0QVxcdTlDNEVcXHU5QzRGXFx1OUM1MFxcdTlDNTNcXHU5QzU0XFx1OUM1NlxcdTlDNThcXHU5QzVCXFx1OUM1RFxcdTlDNUVcXHU5QzVGXFx1OUM2M1xcdTlDNjlcXHU5QzZBXFx1OUM1Q1xcdTlDNkJcXHU5QzY4XFx1OUM2RVxcdTlDNzBcXHU5QzcyXFx1OUM3NVxcdTlDNzdcXHU5QzdCXFx1OUNFNlxcdTlDRjJcXHU5Q0Y3XFx1OUNGOVxcdTlEMEJcXHU5RDAyXFx1OUQxMVxcdTlEMTdcXHU5RDE4XFx1OUQxQ1xcdTlEMURcXHU5RDFFXFx1OUQyRlxcdTlEMzBcXHU5RDMyXFx1OUQzM1xcdTlEMzRcXHU5RDNBXFx1OUQzQ1xcdTlENDVcXHU5RDNEXFx1OUQ0MlxcdTlENDNcXHU5RDQ3XFx1OUQ0QVxcdTlENTNcXHU5RDU0XFx1OUQ1RlxcdTlENjNcXHU5RDYyXFx1OUQ2NVxcdTlENjlcXHU5RDZBXFx1OUQ2QlxcdTlENzBcXHU5RDc2XFx1OUQ3N1xcdTlEN0JcIl0sXG4gICAgICBbXCI4ZmVjYTFcIiwgXCJcXHU5RDdDXFx1OUQ3RVxcdTlEODNcXHU5RDg0XFx1OUQ4NlxcdTlEOEFcXHU5RDhEXFx1OUQ4RVxcdTlEOTJcXHU5RDkzXFx1OUQ5NVxcdTlEOTZcXHU5RDk3XFx1OUQ5OFxcdTlEQTFcXHU5REFBXFx1OURBQ1xcdTlEQUVcXHU5REIxXFx1OURCNVxcdTlEQjlcXHU5REJDXFx1OURCRlxcdTlEQzNcXHU5REM3XFx1OURDOVxcdTlEQ0FcXHU5REQ0XFx1OURENVxcdTlERDZcXHU5REQ3XFx1OUREQVxcdTlEREVcXHU5RERGXFx1OURFMFxcdTlERTVcXHU5REU3XFx1OURFOVxcdTlERUJcXHU5REVFXFx1OURGMFxcdTlERjNcXHU5REY0XFx1OURGRVxcdTlFMEFcXHU5RTAyXFx1OUUwN1xcdTlFMEVcXHU5RTEwXFx1OUUxMVxcdTlFMTJcXHU5RTE1XFx1OUUxNlxcdTlFMTlcXHU5RTFDXFx1OUUxRFxcdTlFN0FcXHU5RTdCXFx1OUU3Q1xcdTlFODBcXHU5RTgyXFx1OUU4M1xcdTlFODRcXHU5RTg1XFx1OUU4N1xcdTlFOEVcXHU5RThGXFx1OUU5NlxcdTlFOThcXHU5RTlCXFx1OUU5RVxcdTlFQTRcXHU5RUE4XFx1OUVBQ1xcdTlFQUVcXHU5RUFGXFx1OUVCMFxcdTlFQjNcXHU5RUI0XFx1OUVCNVxcdTlFQzZcXHU5RUM4XFx1OUVDQlxcdTlFRDVcXHU5RURGXFx1OUVFNFxcdTlFRTdcXHU5RUVDXFx1OUVFRFxcdTlFRUVcXHU5RUYwXFx1OUVGMVxcdTlFRjJcXHU5RUY1XCJdLFxuICAgICAgW1wiOGZlZGExXCIsIFwiXFx1OUVGOFxcdTlFRkZcXHU5RjAyXFx1OUYwM1xcdTlGMDlcXHU5RjBGXFx1OUYxMFxcdTlGMTFcXHU5RjEyXFx1OUYxNFxcdTlGMTZcXHU5RjE3XFx1OUYxOVxcdTlGMUFcXHU5RjFCXFx1OUYxRlxcdTlGMjJcXHU5RjI2XFx1OUYyQVxcdTlGMkJcXHU5RjJGXFx1OUYzMVxcdTlGMzJcXHU5RjM0XFx1OUYzN1xcdTlGMzlcXHU5RjNBXFx1OUYzQ1xcdTlGM0RcXHU5RjNGXFx1OUY0MVxcdTlGNDNcIiwgNCwgXCJcXHU5RjUzXFx1OUY1NVxcdTlGNTZcXHU5RjU3XFx1OUY1OFxcdTlGNUFcXHU5RjVEXFx1OUY1RVxcdTlGNjhcXHU5RjY5XFx1OUY2RFwiLCA0LCBcIlxcdTlGNzNcXHU5Rjc1XFx1OUY3QVxcdTlGN0RcXHU5RjhGXFx1OUY5MFxcdTlGOTFcXHU5RjkyXFx1OUY5NFxcdTlGOTZcXHU5Rjk3XFx1OUY5RVxcdTlGQTFcXHU5RkEyXFx1OUZBM1xcdTlGQTVcIl1cbiAgICBdO1xuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL3Jhdy1ib2R5L25vZGVfbW9kdWxlcy9pY29udi1saXRlL2VuY29kaW5ncy90YWJsZXMvY3A5MzYuanNvblxudmFyIHJlcXVpcmVfY3A5MzYgPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvcmF3LWJvZHkvbm9kZV9tb2R1bGVzL2ljb252LWxpdGUvZW5jb2RpbmdzL3RhYmxlcy9jcDkzNi5qc29uXCIoZXhwb3J0czIsIG1vZHVsZTIpIHtcbiAgICBtb2R1bGUyLmV4cG9ydHMgPSBbXG4gICAgICBbXCIwXCIsIFwiXFwwXCIsIDEyNywgXCJcXHUyMEFDXCJdLFxuICAgICAgW1wiODE0MFwiLCBcIlxcdTRFMDJcXHU0RTA0XFx1NEUwNVxcdTRFMDZcXHU0RTBGXFx1NEUxMlxcdTRFMTdcXHU0RTFGXFx1NEUyMFxcdTRFMjFcXHU0RTIzXFx1NEUyNlxcdTRFMjlcXHU0RTJFXFx1NEUyRlxcdTRFMzFcXHU0RTMzXFx1NEUzNVxcdTRFMzdcXHU0RTNDXFx1NEU0MFxcdTRFNDFcXHU0RTQyXFx1NEU0NFxcdTRFNDZcXHU0RTRBXFx1NEU1MVxcdTRFNTVcXHU0RTU3XFx1NEU1QVxcdTRFNUJcXHU0RTYyXFx1NEU2M1xcdTRFNjRcXHU0RTY1XFx1NEU2N1xcdTRFNjhcXHU0RTZBXCIsIDUsIFwiXFx1NEU3MlxcdTRFNzRcIiwgOSwgXCJcXHU0RTdGXCIsIDYsIFwiXFx1NEU4N1xcdTRFOEFcIl0sXG4gICAgICBbXCI4MTgwXCIsIFwiXFx1NEU5MFxcdTRFOTZcXHU0RTk3XFx1NEU5OVxcdTRFOUNcXHU0RTlEXFx1NEU5RVxcdTRFQTNcXHU0RUFBXFx1NEVBRlxcdTRFQjBcXHU0RUIxXFx1NEVCNFxcdTRFQjZcXHU0RUI3XFx1NEVCOFxcdTRFQjlcXHU0RUJDXFx1NEVCRFxcdTRFQkVcXHU0RUM4XFx1NEVDQ1xcdTRFQ0ZcXHU0RUQwXFx1NEVEMlxcdTRFREFcXHU0RURCXFx1NEVEQ1xcdTRFRTBcXHU0RUUyXFx1NEVFNlxcdTRFRTdcXHU0RUU5XFx1NEVFRFxcdTRFRUVcXHU0RUVGXFx1NEVGMVxcdTRFRjRcXHU0RUY4XFx1NEVGOVxcdTRFRkFcXHU0RUZDXFx1NEVGRVxcdTRGMDBcXHU0RjAyXCIsIDYsIFwiXFx1NEYwQlxcdTRGMENcXHU0RjEyXCIsIDQsIFwiXFx1NEYxQ1xcdTRGMURcXHU0RjIxXFx1NEYyM1xcdTRGMjhcXHU0RjI5XFx1NEYyQ1xcdTRGMkRcXHU0RjJFXFx1NEYzMVxcdTRGMzNcXHU0RjM1XFx1NEYzN1xcdTRGMzlcXHU0RjNCXFx1NEYzRVwiLCA0LCBcIlxcdTRGNDRcXHU0RjQ1XFx1NEY0N1wiLCA1LCBcIlxcdTRGNTJcXHU0RjU0XFx1NEY1NlxcdTRGNjFcXHU0RjYyXFx1NEY2NlxcdTRGNjhcXHU0RjZBXFx1NEY2QlxcdTRGNkRcXHU0RjZFXFx1NEY3MVxcdTRGNzJcXHU0Rjc1XFx1NEY3N1xcdTRGNzhcXHU0Rjc5XFx1NEY3QVxcdTRGN0RcXHU0RjgwXFx1NEY4MVxcdTRGODJcXHU0Rjg1XFx1NEY4NlxcdTRGODdcXHU0RjhBXFx1NEY4Q1xcdTRGOEVcXHU0RjkwXFx1NEY5MlxcdTRGOTNcXHU0Rjk1XFx1NEY5NlxcdTRGOThcXHU0Rjk5XFx1NEY5QVxcdTRGOUNcXHU0RjlFXFx1NEY5RlxcdTRGQTFcXHU0RkEyXCJdLFxuICAgICAgW1wiODI0MFwiLCBcIlxcdTRGQTRcXHU0RkFCXFx1NEZBRFxcdTRGQjBcIiwgNCwgXCJcXHU0RkI2XCIsIDgsIFwiXFx1NEZDMFxcdTRGQzFcXHU0RkMyXFx1NEZDNlxcdTRGQzdcXHU0RkM4XFx1NEZDOVxcdTRGQ0JcXHU0RkNDXFx1NEZDRFxcdTRGRDJcIiwgNCwgXCJcXHU0RkQ5XFx1NEZEQlxcdTRGRTBcXHU0RkUyXFx1NEZFNFxcdTRGRTVcXHU0RkU3XFx1NEZFQlxcdTRGRUNcXHU0RkYwXFx1NEZGMlxcdTRGRjRcXHU0RkY1XFx1NEZGNlxcdTRGRjdcXHU0RkY5XFx1NEZGQlxcdTRGRkNcXHU0RkZEXFx1NEZGRlwiLCAxMV0sXG4gICAgICBbXCI4MjgwXCIsIFwiXFx1NTAwQlxcdTUwMEVcXHU1MDEwXFx1NTAxMVxcdTUwMTNcXHU1MDE1XFx1NTAxNlxcdTUwMTdcXHU1MDFCXFx1NTAxRFxcdTUwMUVcXHU1MDIwXFx1NTAyMlxcdTUwMjNcXHU1MDI0XFx1NTAyN1xcdTUwMkJcXHU1MDJGXCIsIDEwLCBcIlxcdTUwM0JcXHU1MDNEXFx1NTAzRlxcdTUwNDBcXHU1MDQxXFx1NTA0MlxcdTUwNDRcXHU1MDQ1XFx1NTA0NlxcdTUwNDlcXHU1MDRBXFx1NTA0QlxcdTUwNERcXHU1MDUwXCIsIDQsIFwiXFx1NTA1NlxcdTUwNTdcXHU1MDU4XFx1NTA1OVxcdTUwNUJcXHU1MDVEXCIsIDcsIFwiXFx1NTA2NlwiLCA1LCBcIlxcdTUwNkRcIiwgOCwgXCJcXHU1MDc4XFx1NTA3OVxcdTUwN0FcXHU1MDdDXFx1NTA3RFxcdTUwODFcXHU1MDgyXFx1NTA4M1xcdTUwODRcXHU1MDg2XFx1NTA4N1xcdTUwODlcXHU1MDhBXFx1NTA4QlxcdTUwOENcXHU1MDhFXCIsIDIwLCBcIlxcdTUwQTRcXHU1MEE2XFx1NTBBQVxcdTUwQUJcXHU1MEFEXCIsIDQsIFwiXFx1NTBCM1wiLCA2LCBcIlxcdTUwQkNcIl0sXG4gICAgICBbXCI4MzQwXCIsIFwiXFx1NTBCRFwiLCAxNywgXCJcXHU1MEQwXCIsIDUsIFwiXFx1NTBEN1xcdTUwRDhcXHU1MEQ5XFx1NTBEQlwiLCAxMCwgXCJcXHU1MEU4XFx1NTBFOVxcdTUwRUFcXHU1MEVCXFx1NTBFRlxcdTUwRjBcXHU1MEYxXFx1NTBGMlxcdTUwRjRcXHU1MEY2XCIsIDQsIFwiXFx1NTBGQ1wiLCA5LCBcIlxcdTUxMDhcIl0sXG4gICAgICBbXCI4MzgwXCIsIFwiXFx1NTEwOVxcdTUxMEFcXHU1MTBDXCIsIDUsIFwiXFx1NTExM1wiLCAxMywgXCJcXHU1MTIyXCIsIDI4LCBcIlxcdTUxNDJcXHU1MTQ3XFx1NTE0QVxcdTUxNENcXHU1MTRFXFx1NTE0RlxcdTUxNTBcXHU1MTUyXFx1NTE1M1xcdTUxNTdcXHU1MTU4XFx1NTE1OVxcdTUxNUJcXHU1MTVEXCIsIDQsIFwiXFx1NTE2M1xcdTUxNjRcXHU1MTY2XFx1NTE2N1xcdTUxNjlcXHU1MTZBXFx1NTE2RlxcdTUxNzJcXHU1MTdBXFx1NTE3RVxcdTUxN0ZcXHU1MTgzXFx1NTE4NFxcdTUxODZcXHU1MTg3XFx1NTE4QVxcdTUxOEJcXHU1MThFXFx1NTE4RlxcdTUxOTBcXHU1MTkxXFx1NTE5M1xcdTUxOTRcXHU1MTk4XFx1NTE5QVxcdTUxOURcXHU1MTlFXFx1NTE5RlxcdTUxQTFcXHU1MUEzXFx1NTFBNlwiLCA0LCBcIlxcdTUxQURcXHU1MUFFXFx1NTFCNFxcdTUxQjhcXHU1MUI5XFx1NTFCQVxcdTUxQkVcXHU1MUJGXFx1NTFDMVxcdTUxQzJcXHU1MUMzXFx1NTFDNVxcdTUxQzhcXHU1MUNBXFx1NTFDRFxcdTUxQ0VcXHU1MUQwXFx1NTFEMlwiLCA1XSxcbiAgICAgIFtcIjg0NDBcIiwgXCJcXHU1MUQ4XFx1NTFEOVxcdTUxREFcXHU1MURDXFx1NTFERVxcdTUxREZcXHU1MUUyXFx1NTFFM1xcdTUxRTVcIiwgNSwgXCJcXHU1MUVDXFx1NTFFRVxcdTUxRjFcXHU1MUYyXFx1NTFGNFxcdTUxRjdcXHU1MUZFXFx1NTIwNFxcdTUyMDVcXHU1MjA5XFx1NTIwQlxcdTUyMENcXHU1MjBGXFx1NTIxMFxcdTUyMTNcXHU1MjE0XFx1NTIxNVxcdTUyMUNcXHU1MjFFXFx1NTIxRlxcdTUyMjFcXHU1MjIyXFx1NTIyM1xcdTUyMjVcXHU1MjI2XFx1NTIyN1xcdTUyMkFcXHU1MjJDXFx1NTIyRlxcdTUyMzFcXHU1MjMyXFx1NTIzNFxcdTUyMzVcXHU1MjNDXFx1NTIzRVxcdTUyNDRcIiwgNSwgXCJcXHU1MjRCXFx1NTI0RVxcdTUyNEZcXHU1MjUyXFx1NTI1M1xcdTUyNTVcXHU1MjU3XFx1NTI1OFwiXSxcbiAgICAgIFtcIjg0ODBcIiwgXCJcXHU1MjU5XFx1NTI1QVxcdTUyNUJcXHU1MjVEXFx1NTI1RlxcdTUyNjBcXHU1MjYyXFx1NTI2M1xcdTUyNjRcXHU1MjY2XFx1NTI2OFxcdTUyNkJcXHU1MjZDXFx1NTI2RFxcdTUyNkVcXHU1MjcwXFx1NTI3MVxcdTUyNzNcIiwgOSwgXCJcXHU1MjdFXFx1NTI4MFxcdTUyODNcIiwgNCwgXCJcXHU1Mjg5XCIsIDYsIFwiXFx1NTI5MVxcdTUyOTJcXHU1Mjk0XCIsIDYsIFwiXFx1NTI5Q1xcdTUyQTRcXHU1MkE1XFx1NTJBNlxcdTUyQTdcXHU1MkFFXFx1NTJBRlxcdTUyQjBcXHU1MkI0XCIsIDksIFwiXFx1NTJDMFxcdTUyQzFcXHU1MkMyXFx1NTJDNFxcdTUyQzVcXHU1MkM2XFx1NTJDOFxcdTUyQ0FcXHU1MkNDXFx1NTJDRFxcdTUyQ0VcXHU1MkNGXFx1NTJEMVxcdTUyRDNcXHU1MkQ0XFx1NTJENVxcdTUyRDdcXHU1MkQ5XCIsIDUsIFwiXFx1NTJFMFxcdTUyRTFcXHU1MkUyXFx1NTJFM1xcdTUyRTVcIiwgMTAsIFwiXFx1NTJGMVwiLCA3LCBcIlxcdTUyRkJcXHU1MkZDXFx1NTJGRFxcdTUzMDFcXHU1MzAyXFx1NTMwM1xcdTUzMDRcXHU1MzA3XFx1NTMwOVxcdTUzMEFcXHU1MzBCXFx1NTMwQ1xcdTUzMEVcIl0sXG4gICAgICBbXCI4NTQwXCIsIFwiXFx1NTMxMVxcdTUzMTJcXHU1MzEzXFx1NTMxNFxcdTUzMThcXHU1MzFCXFx1NTMxQ1xcdTUzMUVcXHU1MzFGXFx1NTMyMlxcdTUzMjRcXHU1MzI1XFx1NTMyN1xcdTUzMjhcXHU1MzI5XFx1NTMyQlxcdTUzMkNcXHU1MzJEXFx1NTMyRlwiLCA5LCBcIlxcdTUzM0NcXHU1MzNEXFx1NTM0MFxcdTUzNDJcXHU1MzQ0XFx1NTM0NlxcdTUzNEJcXHU1MzRDXFx1NTM0RFxcdTUzNTBcXHU1MzU0XFx1NTM1OFxcdTUzNTlcXHU1MzVCXFx1NTM1RFxcdTUzNjVcXHU1MzY4XFx1NTM2QVxcdTUzNkNcXHU1MzZEXFx1NTM3MlxcdTUzNzZcXHU1Mzc5XFx1NTM3QlxcdTUzN0NcXHU1MzdEXFx1NTM3RVxcdTUzODBcXHU1MzgxXFx1NTM4M1xcdTUzODdcXHU1Mzg4XFx1NTM4QVxcdTUzOEVcXHU1MzhGXCJdLFxuICAgICAgW1wiODU4MFwiLCBcIlxcdTUzOTBcIiwgNCwgXCJcXHU1Mzk2XFx1NTM5N1xcdTUzOTlcXHU1MzlCXFx1NTM5Q1xcdTUzOUVcXHU1M0EwXFx1NTNBMVxcdTUzQTRcXHU1M0E3XFx1NTNBQVxcdTUzQUJcXHU1M0FDXFx1NTNBRFxcdTUzQUZcIiwgNiwgXCJcXHU1M0I3XFx1NTNCOFxcdTUzQjlcXHU1M0JBXFx1NTNCQ1xcdTUzQkRcXHU1M0JFXFx1NTNDMFxcdTUzQzNcIiwgNCwgXCJcXHU1M0NFXFx1NTNDRlxcdTUzRDBcXHU1M0QyXFx1NTNEM1xcdTUzRDVcXHU1M0RBXFx1NTNEQ1xcdTUzRERcXHU1M0RFXFx1NTNFMVxcdTUzRTJcXHU1M0U3XFx1NTNGNFxcdTUzRkFcXHU1M0ZFXFx1NTNGRlxcdTU0MDBcXHU1NDAyXFx1NTQwNVxcdTU0MDdcXHU1NDBCXFx1NTQxNFxcdTU0MThcXHU1NDE5XFx1NTQxQVxcdTU0MUNcXHU1NDIyXFx1NTQyNFxcdTU0MjVcXHU1NDJBXFx1NTQzMFxcdTU0MzNcXHU1NDM2XFx1NTQzN1xcdTU0M0FcXHU1NDNEXFx1NTQzRlxcdTU0NDFcXHU1NDQyXFx1NTQ0NFxcdTU0NDVcXHU1NDQ3XFx1NTQ0OVxcdTU0NENcXHU1NDREXFx1NTQ0RVxcdTU0NEZcXHU1NDUxXFx1NTQ1QVxcdTU0NURcIiwgNCwgXCJcXHU1NDYzXFx1NTQ2NVxcdTU0NjdcXHU1NDY5XCIsIDcsIFwiXFx1NTQ3NFxcdTU0NzlcXHU1NDdBXFx1NTQ3RVxcdTU0N0ZcXHU1NDgxXFx1NTQ4M1xcdTU0ODVcXHU1NDg3XFx1NTQ4OFxcdTU0ODlcXHU1NDhBXFx1NTQ4RFxcdTU0OTFcXHU1NDkzXFx1NTQ5N1xcdTU0OThcXHU1NDlDXFx1NTQ5RVxcdTU0OUZcXHU1NEEwXFx1NTRBMVwiXSxcbiAgICAgIFtcIjg2NDBcIiwgXCJcXHU1NEEyXFx1NTRBNVxcdTU0QUVcXHU1NEIwXFx1NTRCMlxcdTU0QjVcXHU1NEI2XFx1NTRCN1xcdTU0QjlcXHU1NEJBXFx1NTRCQ1xcdTU0QkVcXHU1NEMzXFx1NTRDNVxcdTU0Q0FcXHU1NENCXFx1NTRENlxcdTU0RDhcXHU1NERCXFx1NTRFMFwiLCA0LCBcIlxcdTU0RUJcXHU1NEVDXFx1NTRFRlxcdTU0RjBcXHU1NEYxXFx1NTRGNFwiLCA1LCBcIlxcdTU0RkJcXHU1NEZFXFx1NTUwMFxcdTU1MDJcXHU1NTAzXFx1NTUwNFxcdTU1MDVcXHU1NTA4XFx1NTUwQVwiLCA0LCBcIlxcdTU1MTJcXHU1NTEzXFx1NTUxNVwiLCA1LCBcIlxcdTU1MUNcXHU1NTFEXFx1NTUxRVxcdTU1MUZcXHU1NTIxXFx1NTUyNVxcdTU1MjZcIl0sXG4gICAgICBbXCI4NjgwXCIsIFwiXFx1NTUyOFxcdTU1MjlcXHU1NTJCXFx1NTUyRFxcdTU1MzJcXHU1NTM0XFx1NTUzNVxcdTU1MzZcXHU1NTM4XFx1NTUzOVxcdTU1M0FcXHU1NTNCXFx1NTUzRFxcdTU1NDBcXHU1NTQyXFx1NTU0NVxcdTU1NDdcXHU1NTQ4XFx1NTU0QlwiLCA0LCBcIlxcdTU1NTFcXHU1NTUyXFx1NTU1M1xcdTU1NTRcXHU1NTU3XCIsIDQsIFwiXFx1NTU1RFxcdTU1NUVcXHU1NTVGXFx1NTU2MFxcdTU1NjJcXHU1NTYzXFx1NTU2OFxcdTU1NjlcXHU1NTZCXFx1NTU2RlwiLCA1LCBcIlxcdTU1NzlcXHU1NTdBXFx1NTU3RFxcdTU1N0ZcXHU1NTg1XFx1NTU4NlxcdTU1OENcXHU1NThEXFx1NTU4RVxcdTU1OTBcXHU1NTkyXFx1NTU5M1xcdTU1OTVcXHU1NTk2XFx1NTU5N1xcdTU1OUFcXHU1NTlCXFx1NTU5RVxcdTU1QTBcIiwgNiwgXCJcXHU1NUE4XCIsIDgsIFwiXFx1NTVCMlxcdTU1QjRcXHU1NUI2XFx1NTVCOFxcdTU1QkFcXHU1NUJDXFx1NTVCRlwiLCA0LCBcIlxcdTU1QzZcXHU1NUM3XFx1NTVDOFxcdTU1Q0FcXHU1NUNCXFx1NTVDRVxcdTU1Q0ZcXHU1NUQwXFx1NTVENVxcdTU1RDdcIiwgNCwgXCJcXHU1NURFXFx1NTVFMFxcdTU1RTJcXHU1NUU3XFx1NTVFOVxcdTU1RURcXHU1NUVFXFx1NTVGMFxcdTU1RjFcXHU1NUY0XFx1NTVGNlxcdTU1RjhcIiwgNCwgXCJcXHU1NUZGXFx1NTYwMlxcdTU2MDNcXHU1NjA0XFx1NTYwNVwiXSxcbiAgICAgIFtcIjg3NDBcIiwgXCJcXHU1NjA2XFx1NTYwN1xcdTU2MEFcXHU1NjBCXFx1NTYwRFxcdTU2MTBcIiwgNywgXCJcXHU1NjE5XFx1NTYxQVxcdTU2MUNcXHU1NjFEXFx1NTYyMFxcdTU2MjFcXHU1NjIyXFx1NTYyNVxcdTU2MjZcXHU1NjI4XFx1NTYyOVxcdTU2MkFcXHU1NjJCXFx1NTYyRVxcdTU2MkZcXHU1NjMwXFx1NTYzM1xcdTU2MzVcXHU1NjM3XFx1NTYzOFxcdTU2M0FcXHU1NjNDXFx1NTYzRFxcdTU2M0VcXHU1NjQwXCIsIDExLCBcIlxcdTU2NEZcIiwgNCwgXCJcXHU1NjU1XFx1NTY1NlxcdTU2NUFcXHU1NjVCXFx1NTY1RFwiLCA0XSxcbiAgICAgIFtcIjg3ODBcIiwgXCJcXHU1NjYzXFx1NTY2NVxcdTU2NjZcXHU1NjY3XFx1NTY2RFxcdTU2NkVcXHU1NjZGXFx1NTY3MFxcdTU2NzJcXHU1NjczXFx1NTY3NFxcdTU2NzVcXHU1Njc3XFx1NTY3OFxcdTU2NzlcXHU1NjdBXFx1NTY3RFwiLCA3LCBcIlxcdTU2ODdcIiwgNiwgXCJcXHU1NjkwXFx1NTY5MVxcdTU2OTJcXHU1Njk0XCIsIDE0LCBcIlxcdTU2QTRcIiwgMTAsIFwiXFx1NTZCMFwiLCA2LCBcIlxcdTU2QjhcXHU1NkI5XFx1NTZCQVxcdTU2QkJcXHU1NkJEXCIsIDEyLCBcIlxcdTU2Q0JcIiwgOCwgXCJcXHU1NkQ1XFx1NTZENlxcdTU2RDhcXHU1NkQ5XFx1NTZEQ1xcdTU2RTNcXHU1NkU1XCIsIDUsIFwiXFx1NTZFQ1xcdTU2RUVcXHU1NkVGXFx1NTZGMlxcdTU2RjNcXHU1NkY2XFx1NTZGN1xcdTU2RjhcXHU1NkZCXFx1NTZGQ1xcdTU3MDBcXHU1NzAxXFx1NTcwMlxcdTU3MDVcXHU1NzA3XFx1NTcwQlwiLCA2XSxcbiAgICAgIFtcIjg4NDBcIiwgXCJcXHU1NzEyXCIsIDksIFwiXFx1NTcxRFxcdTU3MUVcXHU1NzIwXFx1NTcyMVxcdTU3MjJcXHU1NzI0XFx1NTcyNVxcdTU3MjZcXHU1NzI3XFx1NTcyQlxcdTU3MzFcXHU1NzMyXFx1NTczNFwiLCA0LCBcIlxcdTU3M0NcXHU1NzNEXFx1NTczRlxcdTU3NDFcXHU1NzQzXFx1NTc0NFxcdTU3NDVcXHU1NzQ2XFx1NTc0OFxcdTU3NDlcXHU1NzRCXFx1NTc1MlwiLCA0LCBcIlxcdTU3NThcXHU1NzU5XFx1NTc2MlxcdTU3NjNcXHU1NzY1XFx1NTc2N1xcdTU3NkNcXHU1NzZFXFx1NTc3MFxcdTU3NzFcXHU1NzcyXFx1NTc3NFxcdTU3NzVcXHU1Nzc4XFx1NTc3OVxcdTU3N0FcXHU1NzdEXFx1NTc3RVxcdTU3N0ZcXHU1NzgwXCJdLFxuICAgICAgW1wiODg4MFwiLCBcIlxcdTU3ODFcXHU1Nzg3XFx1NTc4OFxcdTU3ODlcXHU1NzhBXFx1NTc4RFwiLCA0LCBcIlxcdTU3OTRcIiwgNiwgXCJcXHU1NzlDXFx1NTc5RFxcdTU3OUVcXHU1NzlGXFx1NTdBNVxcdTU3QThcXHU1N0FBXFx1NTdBQ1xcdTU3QUZcXHU1N0IwXFx1NTdCMVxcdTU3QjNcXHU1N0I1XFx1NTdCNlxcdTU3QjdcXHU1N0I5XCIsIDgsIFwiXFx1NTdDNFwiLCA2LCBcIlxcdTU3Q0NcXHU1N0NEXFx1NTdEMFxcdTU3RDFcXHU1N0QzXFx1NTdENlxcdTU3RDdcXHU1N0RCXFx1NTdEQ1xcdTU3REVcXHU1N0UxXFx1NTdFMlxcdTU3RTNcXHU1N0U1XCIsIDcsIFwiXFx1NTdFRVxcdTU3RjBcXHU1N0YxXFx1NTdGMlxcdTU3RjNcXHU1N0Y1XFx1NTdGNlxcdTU3RjdcXHU1N0ZCXFx1NTdGQ1xcdTU3RkVcXHU1N0ZGXFx1NTgwMVxcdTU4MDNcXHU1ODA0XFx1NTgwNVxcdTU4MDhcXHU1ODA5XFx1NTgwQVxcdTU4MENcXHU1ODBFXFx1NTgwRlxcdTU4MTBcXHU1ODEyXFx1NTgxM1xcdTU4MTRcXHU1ODE2XFx1NTgxN1xcdTU4MThcXHU1ODFBXFx1NTgxQlxcdTU4MUNcXHU1ODFEXFx1NTgxRlxcdTU4MjJcXHU1ODIzXFx1NTgyNVwiLCA0LCBcIlxcdTU4MkJcIiwgNCwgXCJcXHU1ODMxXFx1NTgzMlxcdTU4MzNcXHU1ODM0XFx1NTgzNlwiLCA3XSxcbiAgICAgIFtcIjg5NDBcIiwgXCJcXHU1ODNFXCIsIDUsIFwiXFx1NTg0NVwiLCA2LCBcIlxcdTU4NEVcXHU1ODRGXFx1NTg1MFxcdTU4NTJcXHU1ODUzXFx1NTg1NVxcdTU4NTZcXHU1ODU3XFx1NTg1OVwiLCA0LCBcIlxcdTU4NUZcIiwgNSwgXCJcXHU1ODY2XCIsIDQsIFwiXFx1NTg2RFwiLCAxNiwgXCJcXHU1ODdGXFx1NTg4MlxcdTU4ODRcXHU1ODg2XFx1NTg4N1xcdTU4ODhcXHU1ODhBXFx1NTg4QlxcdTU4OENcIl0sXG4gICAgICBbXCI4OTgwXCIsIFwiXFx1NTg4RFwiLCA0LCBcIlxcdTU4OTRcIiwgNCwgXCJcXHU1ODlCXFx1NTg5Q1xcdTU4OURcXHU1OEEwXCIsIDcsIFwiXFx1NThBQVwiLCAxNywgXCJcXHU1OEJEXFx1NThCRVxcdTU4QkZcXHU1OEMwXFx1NThDMlxcdTU4QzNcXHU1OEM0XFx1NThDNlwiLCAxMCwgXCJcXHU1OEQyXFx1NThEM1xcdTU4RDRcXHU1OEQ2XCIsIDEzLCBcIlxcdTU4RTVcIiwgNSwgXCJcXHU1OEVEXFx1NThFRlxcdTU4RjFcXHU1OEYyXFx1NThGNFxcdTU4RjVcXHU1OEY3XFx1NThGOFxcdTU4RkFcIiwgNywgXCJcXHU1OTAzXFx1NTkwNVxcdTU5MDZcXHU1OTA4XCIsIDQsIFwiXFx1NTkwRVxcdTU5MTBcXHU1OTExXFx1NTkxMlxcdTU5MTNcXHU1OTE3XFx1NTkxOFxcdTU5MUJcXHU1OTFEXFx1NTkxRVxcdTU5MjBcXHU1OTIxXFx1NTkyMlxcdTU5MjNcXHU1OTI2XFx1NTkyOFxcdTU5MkNcXHU1OTMwXFx1NTkzMlxcdTU5MzNcXHU1OTM1XFx1NTkzNlxcdTU5M0JcIl0sXG4gICAgICBbXCI4YTQwXCIsIFwiXFx1NTkzRFxcdTU5M0VcXHU1OTNGXFx1NTk0MFxcdTU5NDNcXHU1OTQ1XFx1NTk0NlxcdTU5NEFcXHU1OTRDXFx1NTk0RFxcdTU5NTBcXHU1OTUyXFx1NTk1M1xcdTU5NTlcXHU1OTVCXCIsIDQsIFwiXFx1NTk2MVxcdTU5NjNcXHU1OTY0XFx1NTk2NlwiLCAxMiwgXCJcXHU1OTc1XFx1NTk3N1xcdTU5N0FcXHU1OTdCXFx1NTk3Q1xcdTU5N0VcXHU1OTdGXFx1NTk4MFxcdTU5ODVcXHU1OTg5XFx1NTk4QlxcdTU5OENcXHU1OThFXFx1NTk4RlxcdTU5OTBcXHU1OTkxXFx1NTk5NFxcdTU5OTVcXHU1OTk4XFx1NTk5QVxcdTU5OUJcXHU1OTlDXFx1NTk5RFxcdTU5OUZcXHU1OUEwXFx1NTlBMVxcdTU5QTJcXHU1OUE2XCJdLFxuICAgICAgW1wiOGE4MFwiLCBcIlxcdTU5QTdcXHU1OUFDXFx1NTlBRFxcdTU5QjBcXHU1OUIxXFx1NTlCM1wiLCA1LCBcIlxcdTU5QkFcXHU1OUJDXFx1NTlCRFxcdTU5QkZcIiwgNiwgXCJcXHU1OUM3XFx1NTlDOFxcdTU5QzlcXHU1OUNDXFx1NTlDRFxcdTU5Q0VcXHU1OUNGXFx1NTlENVxcdTU5RDZcXHU1OUQ5XFx1NTlEQlxcdTU5REVcIiwgNCwgXCJcXHU1OUU0XFx1NTlFNlxcdTU5RTdcXHU1OUU5XFx1NTlFQVxcdTU5RUJcXHU1OUVEXCIsIDExLCBcIlxcdTU5RkFcXHU1OUZDXFx1NTlGRFxcdTU5RkVcXHU1QTAwXFx1NUEwMlxcdTVBMEFcXHU1QTBCXFx1NUEwRFxcdTVBMEVcXHU1QTBGXFx1NUExMFxcdTVBMTJcXHU1QTE0XFx1NUExNVxcdTVBMTZcXHU1QTE3XFx1NUExOVxcdTVBMUFcXHU1QTFCXFx1NUExRFxcdTVBMUVcXHU1QTIxXFx1NUEyMlxcdTVBMjRcXHU1QTI2XFx1NUEyN1xcdTVBMjhcXHU1QTJBXCIsIDYsIFwiXFx1NUEzM1xcdTVBMzVcXHU1QTM3XCIsIDQsIFwiXFx1NUEzRFxcdTVBM0VcXHU1QTNGXFx1NUE0MVwiLCA0LCBcIlxcdTVBNDdcXHU1QTQ4XFx1NUE0QlwiLCA5LCBcIlxcdTVBNTZcXHU1QTU3XFx1NUE1OFxcdTVBNTlcXHU1QTVCXCIsIDVdLFxuICAgICAgW1wiOGI0MFwiLCBcIlxcdTVBNjFcXHU1QTYzXFx1NUE2NFxcdTVBNjVcXHU1QTY2XFx1NUE2OFxcdTVBNjlcXHU1QTZCXCIsIDgsIFwiXFx1NUE3OFxcdTVBNzlcXHU1QTdCXFx1NUE3Q1xcdTVBN0RcXHU1QTdFXFx1NUE4MFwiLCAxNywgXCJcXHU1QTkzXCIsIDYsIFwiXFx1NUE5Q1wiLCAxMywgXCJcXHU1QUFCXFx1NUFBQ1wiXSxcbiAgICAgIFtcIjhiODBcIiwgXCJcXHU1QUFEXCIsIDQsIFwiXFx1NUFCNFxcdTVBQjZcXHU1QUI3XFx1NUFCOVwiLCA0LCBcIlxcdTVBQkZcXHU1QUMwXFx1NUFDM1wiLCA1LCBcIlxcdTVBQ0FcXHU1QUNCXFx1NUFDRFwiLCA0LCBcIlxcdTVBRDNcXHU1QUQ1XFx1NUFEN1xcdTVBRDlcXHU1QURBXFx1NUFEQlxcdTVBRERcXHU1QURFXFx1NUFERlxcdTVBRTJcXHU1QUU0XFx1NUFFNVxcdTVBRTdcXHU1QUU4XFx1NUFFQVxcdTVBRUNcIiwgNCwgXCJcXHU1QUYyXCIsIDIyLCBcIlxcdTVCMEFcIiwgMTEsIFwiXFx1NUIxOFwiLCAyNSwgXCJcXHU1QjMzXFx1NUIzNVxcdTVCMzZcXHU1QjM4XCIsIDcsIFwiXFx1NUI0MVwiLCA2XSxcbiAgICAgIFtcIjhjNDBcIiwgXCJcXHU1QjQ4XCIsIDcsIFwiXFx1NUI1MlxcdTVCNTZcXHU1QjVFXFx1NUI2MFxcdTVCNjFcXHU1QjY3XFx1NUI2OFxcdTVCNkJcXHU1QjZEXFx1NUI2RVxcdTVCNkZcXHU1QjcyXFx1NUI3NFxcdTVCNzZcXHU1Qjc3XFx1NUI3OFxcdTVCNzlcXHU1QjdCXFx1NUI3Q1xcdTVCN0VcXHU1QjdGXFx1NUI4MlxcdTVCODZcXHU1QjhBXFx1NUI4RFxcdTVCOEVcXHU1QjkwXFx1NUI5MVxcdTVCOTJcXHU1Qjk0XFx1NUI5NlxcdTVCOUZcXHU1QkE3XFx1NUJBOFxcdTVCQTlcXHU1QkFDXFx1NUJBRFxcdTVCQUVcXHU1QkFGXFx1NUJCMVxcdTVCQjJcXHU1QkI3XFx1NUJCQVxcdTVCQkJcXHU1QkJDXFx1NUJDMFxcdTVCQzFcXHU1QkMzXFx1NUJDOFxcdTVCQzlcXHU1QkNBXFx1NUJDQlxcdTVCQ0RcXHU1QkNFXFx1NUJDRlwiXSxcbiAgICAgIFtcIjhjODBcIiwgXCJcXHU1QkQxXFx1NUJENFwiLCA4LCBcIlxcdTVCRTBcXHU1QkUyXFx1NUJFM1xcdTVCRTZcXHU1QkU3XFx1NUJFOVwiLCA0LCBcIlxcdTVCRUZcXHU1QkYxXCIsIDYsIFwiXFx1NUJGRFxcdTVCRkVcXHU1QzAwXFx1NUMwMlxcdTVDMDNcXHU1QzA1XFx1NUMwN1xcdTVDMDhcXHU1QzBCXFx1NUMwQ1xcdTVDMERcXHU1QzBFXFx1NUMxMFxcdTVDMTJcXHU1QzEzXFx1NUMxN1xcdTVDMTlcXHU1QzFCXFx1NUMxRVxcdTVDMUZcXHU1QzIwXFx1NUMyMVxcdTVDMjNcXHU1QzI2XFx1NUMyOFxcdTVDMjlcXHU1QzJBXFx1NUMyQlxcdTVDMkRcXHU1QzJFXFx1NUMyRlxcdTVDMzBcXHU1QzMyXFx1NUMzM1xcdTVDMzVcXHU1QzM2XFx1NUMzN1xcdTVDNDNcXHU1QzQ0XFx1NUM0NlxcdTVDNDdcXHU1QzRDXFx1NUM0RFxcdTVDNTJcXHU1QzUzXFx1NUM1NFxcdTVDNTZcXHU1QzU3XFx1NUM1OFxcdTVDNUFcXHU1QzVCXFx1NUM1Q1xcdTVDNURcXHU1QzVGXFx1NUM2MlxcdTVDNjRcXHU1QzY3XCIsIDYsIFwiXFx1NUM3MFxcdTVDNzJcIiwgNiwgXCJcXHU1QzdCXFx1NUM3Q1xcdTVDN0RcXHU1QzdFXFx1NUM4MFxcdTVDODNcIiwgNCwgXCJcXHU1Qzg5XFx1NUM4QVxcdTVDOEJcXHU1QzhFXFx1NUM4RlxcdTVDOTJcXHU1QzkzXFx1NUM5NVxcdTVDOURcIiwgNCwgXCJcXHU1Q0E0XCIsIDRdLFxuICAgICAgW1wiOGQ0MFwiLCBcIlxcdTVDQUFcXHU1Q0FFXFx1NUNBRlxcdTVDQjBcXHU1Q0IyXFx1NUNCNFxcdTVDQjZcXHU1Q0I5XFx1NUNCQVxcdTVDQkJcXHU1Q0JDXFx1NUNCRVxcdTVDQzBcXHU1Q0MyXFx1NUNDM1xcdTVDQzVcIiwgNSwgXCJcXHU1Q0NDXCIsIDUsIFwiXFx1NUNEM1wiLCA1LCBcIlxcdTVDREFcIiwgNiwgXCJcXHU1Q0UyXFx1NUNFM1xcdTVDRTdcXHU1Q0U5XFx1NUNFQlxcdTVDRUNcXHU1Q0VFXFx1NUNFRlxcdTVDRjFcIiwgOSwgXCJcXHU1Q0ZDXCIsIDRdLFxuICAgICAgW1wiOGQ4MFwiLCBcIlxcdTVEMDFcXHU1RDA0XFx1NUQwNVxcdTVEMDhcIiwgNSwgXCJcXHU1RDBGXCIsIDQsIFwiXFx1NUQxNVxcdTVEMTdcXHU1RDE4XFx1NUQxOVxcdTVEMUFcXHU1RDFDXFx1NUQxRFxcdTVEMUZcIiwgNCwgXCJcXHU1RDI1XFx1NUQyOFxcdTVEMkFcXHU1RDJCXFx1NUQyQ1xcdTVEMkZcIiwgNCwgXCJcXHU1RDM1XCIsIDcsIFwiXFx1NUQzRlwiLCA3LCBcIlxcdTVENDhcXHU1RDQ5XFx1NUQ0RFwiLCAxMCwgXCJcXHU1RDU5XFx1NUQ1QVxcdTVENUNcXHU1RDVFXCIsIDEwLCBcIlxcdTVENkFcXHU1RDZEXFx1NUQ2RVxcdTVENzBcXHU1RDcxXFx1NUQ3MlxcdTVENzNcXHU1RDc1XCIsIDEyLCBcIlxcdTVEODNcIiwgMjEsIFwiXFx1NUQ5QVxcdTVEOUJcXHU1RDlDXFx1NUQ5RVxcdTVEOUZcXHU1REEwXCJdLFxuICAgICAgW1wiOGU0MFwiLCBcIlxcdTVEQTFcIiwgMjEsIFwiXFx1NURCOFwiLCAxMiwgXCJcXHU1REM2XCIsIDYsIFwiXFx1NURDRVwiLCAxMiwgXCJcXHU1RERDXFx1NURERlxcdTVERTBcXHU1REUzXFx1NURFNFxcdTVERUFcXHU1REVDXFx1NURFRFwiXSxcbiAgICAgIFtcIjhlODBcIiwgXCJcXHU1REYwXFx1NURGNVxcdTVERjZcXHU1REY4XCIsIDQsIFwiXFx1NURGRlxcdTVFMDBcXHU1RTA0XFx1NUUwN1xcdTVFMDlcXHU1RTBBXFx1NUUwQlxcdTVFMERcXHU1RTBFXFx1NUUxMlxcdTVFMTNcXHU1RTE3XFx1NUUxRVwiLCA3LCBcIlxcdTVFMjhcIiwgNCwgXCJcXHU1RTJGXFx1NUUzMFxcdTVFMzJcIiwgNCwgXCJcXHU1RTM5XFx1NUUzQVxcdTVFM0VcXHU1RTNGXFx1NUU0MFxcdTVFNDFcXHU1RTQzXFx1NUU0NlwiLCA1LCBcIlxcdTVFNERcIiwgNiwgXCJcXHU1RTU2XCIsIDQsIFwiXFx1NUU1Q1xcdTVFNURcXHU1RTVGXFx1NUU2MFxcdTVFNjNcIiwgMTQsIFwiXFx1NUU3NVxcdTVFNzdcXHU1RTc5XFx1NUU3RVxcdTVFODFcXHU1RTgyXFx1NUU4M1xcdTVFODVcXHU1RTg4XFx1NUU4OVxcdTVFOENcXHU1RThEXFx1NUU4RVxcdTVFOTJcXHU1RTk4XFx1NUU5QlxcdTVFOURcXHU1RUExXFx1NUVBMlxcdTVFQTNcXHU1RUE0XFx1NUVBOFwiLCA0LCBcIlxcdTVFQUVcIiwgNCwgXCJcXHU1RUI0XFx1NUVCQVxcdTVFQkJcXHU1RUJDXFx1NUVCRFxcdTVFQkZcIiwgNl0sXG4gICAgICBbXCI4ZjQwXCIsIFwiXFx1NUVDNlxcdTVFQzdcXHU1RUM4XFx1NUVDQlwiLCA1LCBcIlxcdTVFRDRcXHU1RUQ1XFx1NUVEN1xcdTVFRDhcXHU1RUQ5XFx1NUVEQVxcdTVFRENcIiwgMTEsIFwiXFx1NUVFOVxcdTVFRUJcIiwgOCwgXCJcXHU1RUY1XFx1NUVGOFxcdTVFRjlcXHU1RUZCXFx1NUVGQ1xcdTVFRkRcXHU1RjA1XFx1NUYwNlxcdTVGMDdcXHU1RjA5XFx1NUYwQ1xcdTVGMERcXHU1RjBFXFx1NUYxMFxcdTVGMTJcXHU1RjE0XFx1NUYxNlxcdTVGMTlcXHU1RjFBXFx1NUYxQ1xcdTVGMURcXHU1RjFFXFx1NUYyMVxcdTVGMjJcXHU1RjIzXFx1NUYyNFwiXSxcbiAgICAgIFtcIjhmODBcIiwgXCJcXHU1RjI4XFx1NUYyQlxcdTVGMkNcXHU1RjJFXFx1NUYzMFxcdTVGMzJcIiwgNiwgXCJcXHU1RjNCXFx1NUYzRFxcdTVGM0VcXHU1RjNGXFx1NUY0MVwiLCAxNCwgXCJcXHU1RjUxXFx1NUY1NFxcdTVGNTlcXHU1RjVBXFx1NUY1QlxcdTVGNUNcXHU1RjVFXFx1NUY1RlxcdTVGNjBcXHU1RjYzXFx1NUY2NVxcdTVGNjdcXHU1RjY4XFx1NUY2QlxcdTVGNkVcXHU1RjZGXFx1NUY3MlxcdTVGNzRcXHU1Rjc1XFx1NUY3NlxcdTVGNzhcXHU1RjdBXFx1NUY3RFxcdTVGN0VcXHU1RjdGXFx1NUY4M1xcdTVGODZcXHU1RjhEXFx1NUY4RVxcdTVGOEZcXHU1RjkxXFx1NUY5M1xcdTVGOTRcXHU1Rjk2XFx1NUY5QVxcdTVGOUJcXHU1RjlEXFx1NUY5RVxcdTVGOUZcXHU1RkEwXFx1NUZBMlwiLCA1LCBcIlxcdTVGQTlcXHU1RkFCXFx1NUZBQ1xcdTVGQUZcIiwgNSwgXCJcXHU1RkI2XFx1NUZCOFxcdTVGQjlcXHU1RkJBXFx1NUZCQlxcdTVGQkVcIiwgNCwgXCJcXHU1RkM3XFx1NUZDOFxcdTVGQ0FcXHU1RkNCXFx1NUZDRVxcdTVGRDNcXHU1RkQ0XFx1NUZENVxcdTVGREFcXHU1RkRCXFx1NUZEQ1xcdTVGREVcXHU1RkRGXFx1NUZFMlxcdTVGRTNcXHU1RkU1XFx1NUZFNlxcdTVGRThcXHU1RkU5XFx1NUZFQ1xcdTVGRUZcXHU1RkYwXFx1NUZGMlxcdTVGRjNcXHU1RkY0XFx1NUZGNlxcdTVGRjdcXHU1RkY5XFx1NUZGQVxcdTVGRkNcXHU2MDA3XCJdLFxuICAgICAgW1wiOTA0MFwiLCBcIlxcdTYwMDhcXHU2MDA5XFx1NjAwQlxcdTYwMENcXHU2MDEwXFx1NjAxMVxcdTYwMTNcXHU2MDE3XFx1NjAxOFxcdTYwMUFcXHU2MDFFXFx1NjAxRlxcdTYwMjJcXHU2MDIzXFx1NjAyNFxcdTYwMkNcXHU2MDJEXFx1NjAyRVxcdTYwMzBcIiwgNCwgXCJcXHU2MDM2XCIsIDQsIFwiXFx1NjAzRFxcdTYwM0VcXHU2MDQwXFx1NjA0NFwiLCA2LCBcIlxcdTYwNENcXHU2MDRFXFx1NjA0RlxcdTYwNTFcXHU2MDUzXFx1NjA1NFxcdTYwNTZcXHU2MDU3XFx1NjA1OFxcdTYwNUJcXHU2MDVDXFx1NjA1RVxcdTYwNUZcXHU2MDYwXFx1NjA2MVxcdTYwNjVcXHU2MDY2XFx1NjA2RVxcdTYwNzFcXHU2MDcyXFx1NjA3NFxcdTYwNzVcXHU2MDc3XFx1NjA3RVxcdTYwODBcIl0sXG4gICAgICBbXCI5MDgwXCIsIFwiXFx1NjA4MVxcdTYwODJcXHU2MDg1XFx1NjA4NlxcdTYwODdcXHU2MDg4XFx1NjA4QVxcdTYwOEJcXHU2MDhFXFx1NjA4RlxcdTYwOTBcXHU2MDkxXFx1NjA5M1xcdTYwOTVcXHU2MDk3XFx1NjA5OFxcdTYwOTlcXHU2MDlDXFx1NjA5RVxcdTYwQTFcXHU2MEEyXFx1NjBBNFxcdTYwQTVcXHU2MEE3XFx1NjBBOVxcdTYwQUFcXHU2MEFFXFx1NjBCMFxcdTYwQjNcXHU2MEI1XFx1NjBCNlxcdTYwQjdcXHU2MEI5XFx1NjBCQVxcdTYwQkRcIiwgNywgXCJcXHU2MEM3XFx1NjBDOFxcdTYwQzlcXHU2MENDXCIsIDQsIFwiXFx1NjBEMlxcdTYwRDNcXHU2MEQ0XFx1NjBENlxcdTYwRDdcXHU2MEQ5XFx1NjBEQlxcdTYwREVcXHU2MEUxXCIsIDQsIFwiXFx1NjBFQVxcdTYwRjFcXHU2MEYyXFx1NjBGNVxcdTYwRjdcXHU2MEY4XFx1NjBGQlwiLCA0LCBcIlxcdTYxMDJcXHU2MTAzXFx1NjEwNFxcdTYxMDVcXHU2MTA3XFx1NjEwQVxcdTYxMEJcXHU2MTBDXFx1NjExMFwiLCA0LCBcIlxcdTYxMTZcXHU2MTE3XFx1NjExOFxcdTYxMTlcXHU2MTFCXFx1NjExQ1xcdTYxMURcXHU2MTFFXFx1NjEyMVxcdTYxMjJcXHU2MTI1XFx1NjEyOFxcdTYxMjlcXHU2MTJBXFx1NjEyQ1wiLCAxOCwgXCJcXHU2MTQwXCIsIDZdLFxuICAgICAgW1wiOTE0MFwiLCBcIlxcdTYxNDdcXHU2MTQ5XFx1NjE0QlxcdTYxNERcXHU2MTRGXFx1NjE1MFxcdTYxNTJcXHU2MTUzXFx1NjE1NFxcdTYxNTZcIiwgNiwgXCJcXHU2MTVFXFx1NjE1RlxcdTYxNjBcXHU2MTYxXFx1NjE2M1xcdTYxNjRcXHU2MTY1XFx1NjE2NlxcdTYxNjlcIiwgNiwgXCJcXHU2MTcxXFx1NjE3MlxcdTYxNzNcXHU2MTc0XFx1NjE3NlxcdTYxNzhcIiwgMTgsIFwiXFx1NjE4Q1xcdTYxOERcXHU2MThGXCIsIDQsIFwiXFx1NjE5NVwiXSxcbiAgICAgIFtcIjkxODBcIiwgXCJcXHU2MTk2XCIsIDYsIFwiXFx1NjE5RVwiLCA4LCBcIlxcdTYxQUFcXHU2MUFCXFx1NjFBRFwiLCA5LCBcIlxcdTYxQjhcIiwgNSwgXCJcXHU2MUJGXFx1NjFDMFxcdTYxQzFcXHU2MUMzXCIsIDQsIFwiXFx1NjFDOVxcdTYxQ0NcIiwgNCwgXCJcXHU2MUQzXFx1NjFENVwiLCAxNiwgXCJcXHU2MUU3XCIsIDEzLCBcIlxcdTYxRjZcIiwgOCwgXCJcXHU2MjAwXCIsIDUsIFwiXFx1NjIwN1xcdTYyMDlcXHU2MjEzXFx1NjIxNFxcdTYyMTlcXHU2MjFDXFx1NjIxRFxcdTYyMUVcXHU2MjIwXFx1NjIyM1xcdTYyMjZcXHU2MjI3XFx1NjIyOFxcdTYyMjlcXHU2MjJCXFx1NjIyRFxcdTYyMkZcXHU2MjMwXFx1NjIzMVxcdTYyMzJcXHU2MjM1XFx1NjIzNlxcdTYyMzhcIiwgNCwgXCJcXHU2MjQyXFx1NjI0NFxcdTYyNDVcXHU2MjQ2XFx1NjI0QVwiXSxcbiAgICAgIFtcIjkyNDBcIiwgXCJcXHU2MjRGXFx1NjI1MFxcdTYyNTVcXHU2MjU2XFx1NjI1N1xcdTYyNTlcXHU2MjVBXFx1NjI1Q1wiLCA2LCBcIlxcdTYyNjRcXHU2MjY1XFx1NjI2OFxcdTYyNzFcXHU2MjcyXFx1NjI3NFxcdTYyNzVcXHU2Mjc3XFx1NjI3OFxcdTYyN0FcXHU2MjdCXFx1NjI3RFxcdTYyODFcXHU2MjgyXFx1NjI4M1xcdTYyODVcXHU2Mjg2XFx1NjI4N1xcdTYyODhcXHU2MjhCXCIsIDUsIFwiXFx1NjI5NFxcdTYyOTlcXHU2MjlDXFx1NjI5RFxcdTYyOUVcXHU2MkEzXFx1NjJBNlxcdTYyQTdcXHU2MkE5XFx1NjJBQVxcdTYyQURcXHU2MkFFXFx1NjJBRlxcdTYyQjBcXHU2MkIyXFx1NjJCM1xcdTYyQjRcXHU2MkI2XFx1NjJCN1xcdTYyQjhcXHU2MkJBXFx1NjJCRVxcdTYyQzBcXHU2MkMxXCJdLFxuICAgICAgW1wiOTI4MFwiLCBcIlxcdTYyQzNcXHU2MkNCXFx1NjJDRlxcdTYyRDFcXHU2MkQ1XFx1NjJERFxcdTYyREVcXHU2MkUwXFx1NjJFMVxcdTYyRTRcXHU2MkVBXFx1NjJFQlxcdTYyRjBcXHU2MkYyXFx1NjJGNVxcdTYyRjhcXHU2MkY5XFx1NjJGQVxcdTYyRkJcXHU2MzAwXFx1NjMwM1xcdTYzMDRcXHU2MzA1XFx1NjMwNlxcdTYzMEFcXHU2MzBCXFx1NjMwQ1xcdTYzMERcXHU2MzBGXFx1NjMxMFxcdTYzMTJcXHU2MzEzXFx1NjMxNFxcdTYzMTVcXHU2MzE3XFx1NjMxOFxcdTYzMTlcXHU2MzFDXFx1NjMyNlxcdTYzMjdcXHU2MzI5XFx1NjMyQ1xcdTYzMkRcXHU2MzJFXFx1NjMzMFxcdTYzMzFcXHU2MzMzXCIsIDUsIFwiXFx1NjMzQlxcdTYzM0NcXHU2MzNFXFx1NjMzRlxcdTYzNDBcXHU2MzQxXFx1NjM0NFxcdTYzNDdcXHU2MzQ4XFx1NjM0QVxcdTYzNTFcXHU2MzUyXFx1NjM1M1xcdTYzNTRcXHU2MzU2XCIsIDcsIFwiXFx1NjM2MFxcdTYzNjRcXHU2MzY1XFx1NjM2NlxcdTYzNjhcXHU2MzZBXFx1NjM2QlxcdTYzNkNcXHU2MzZGXFx1NjM3MFxcdTYzNzJcXHU2MzczXFx1NjM3NFxcdTYzNzVcXHU2Mzc4XFx1NjM3OVxcdTYzN0NcXHU2MzdEXFx1NjM3RVxcdTYzN0ZcXHU2MzgxXFx1NjM4M1xcdTYzODRcXHU2Mzg1XFx1NjM4NlxcdTYzOEJcXHU2MzhEXFx1NjM5MVxcdTYzOTNcXHU2Mzk0XFx1NjM5NVxcdTYzOTdcXHU2Mzk5XCIsIDYsIFwiXFx1NjNBMVxcdTYzQTRcXHU2M0E2XFx1NjNBQlxcdTYzQUZcXHU2M0IxXFx1NjNCMlxcdTYzQjVcXHU2M0I2XFx1NjNCOVxcdTYzQkJcXHU2M0JEXFx1NjNCRlxcdTYzQzBcIl0sXG4gICAgICBbXCI5MzQwXCIsIFwiXFx1NjNDMVxcdTYzQzJcXHU2M0MzXFx1NjNDNVxcdTYzQzdcXHU2M0M4XFx1NjNDQVxcdTYzQ0JcXHU2M0NDXFx1NjNEMVxcdTYzRDNcXHU2M0Q0XFx1NjNENVxcdTYzRDdcIiwgNiwgXCJcXHU2M0RGXFx1NjNFMlxcdTYzRTRcIiwgNCwgXCJcXHU2M0VCXFx1NjNFQ1xcdTYzRUVcXHU2M0VGXFx1NjNGMFxcdTYzRjFcXHU2M0YzXFx1NjNGNVxcdTYzRjdcXHU2M0Y5XFx1NjNGQVxcdTYzRkJcXHU2M0ZDXFx1NjNGRVxcdTY0MDNcXHU2NDA0XFx1NjQwNlwiLCA0LCBcIlxcdTY0MERcXHU2NDBFXFx1NjQxMVxcdTY0MTJcXHU2NDE1XCIsIDUsIFwiXFx1NjQxRFxcdTY0MUZcXHU2NDIyXFx1NjQyM1xcdTY0MjRcIl0sXG4gICAgICBbXCI5MzgwXCIsIFwiXFx1NjQyNVxcdTY0MjdcXHU2NDI4XFx1NjQyOVxcdTY0MkJcXHU2NDJFXCIsIDUsIFwiXFx1NjQzNVwiLCA0LCBcIlxcdTY0M0JcXHU2NDNDXFx1NjQzRVxcdTY0NDBcXHU2NDQyXFx1NjQ0M1xcdTY0NDlcXHU2NDRCXCIsIDYsIFwiXFx1NjQ1M1xcdTY0NTVcXHU2NDU2XFx1NjQ1N1xcdTY0NTlcIiwgNCwgXCJcXHU2NDVGXCIsIDcsIFwiXFx1NjQ2OFxcdTY0NkFcXHU2NDZCXFx1NjQ2Q1xcdTY0NkVcIiwgOSwgXCJcXHU2NDdCXCIsIDYsIFwiXFx1NjQ4M1xcdTY0ODZcXHU2NDg4XCIsIDgsIFwiXFx1NjQ5M1xcdTY0OTRcXHU2NDk3XFx1NjQ5OFxcdTY0OUFcXHU2NDlCXFx1NjQ5Q1xcdTY0OURcXHU2NDlGXCIsIDQsIFwiXFx1NjRBNVxcdTY0QTZcXHU2NEE3XFx1NjRBOFxcdTY0QUFcXHU2NEFCXFx1NjRBRlxcdTY0QjFcXHU2NEIyXFx1NjRCM1xcdTY0QjRcXHU2NEI2XFx1NjRCOVxcdTY0QkJcXHU2NEJEXFx1NjRCRVxcdTY0QkZcXHU2NEMxXFx1NjRDM1xcdTY0QzRcXHU2NEM2XCIsIDYsIFwiXFx1NjRDRlxcdTY0RDFcXHU2NEQzXFx1NjRENFxcdTY0RDVcXHU2NEQ2XFx1NjREOVxcdTY0REFcIl0sXG4gICAgICBbXCI5NDQwXCIsIFwiXFx1NjREQlxcdTY0RENcXHU2NEREXFx1NjRERlxcdTY0RTBcXHU2NEUxXFx1NjRFM1xcdTY0RTVcXHU2NEU3XCIsIDI0LCBcIlxcdTY1MDFcIiwgNywgXCJcXHU2NTBBXCIsIDcsIFwiXFx1NjUxM1wiLCA0LCBcIlxcdTY1MTlcIiwgOF0sXG4gICAgICBbXCI5NDgwXCIsIFwiXFx1NjUyMlxcdTY1MjNcXHU2NTI0XFx1NjUyNlwiLCA0LCBcIlxcdTY1MkNcXHU2NTJEXFx1NjUzMFxcdTY1MzFcXHU2NTMyXFx1NjUzM1xcdTY1MzdcXHU2NTNBXFx1NjUzQ1xcdTY1M0RcXHU2NTQwXCIsIDQsIFwiXFx1NjU0NlxcdTY1NDdcXHU2NTRBXFx1NjU0QlxcdTY1NERcXHU2NTRFXFx1NjU1MFxcdTY1NTJcXHU2NTUzXFx1NjU1NFxcdTY1NTdcXHU2NTU4XFx1NjU1QVxcdTY1NUNcXHU2NTVGXFx1NjU2MFxcdTY1NjFcXHU2NTY0XFx1NjU2NVxcdTY1NjdcXHU2NTY4XFx1NjU2OVxcdTY1NkFcXHU2NTZEXFx1NjU2RVxcdTY1NkZcXHU2NTcxXFx1NjU3M1xcdTY1NzVcXHU2NTc2XFx1NjU3OFwiLCAxNCwgXCJcXHU2NTg4XFx1NjU4OVxcdTY1OEFcXHU2NThEXFx1NjU4RVxcdTY1OEZcXHU2NTkyXFx1NjU5NFxcdTY1OTVcXHU2NTk2XFx1NjU5OFxcdTY1OUFcXHU2NTlEXFx1NjU5RVxcdTY1QTBcXHU2NUEyXFx1NjVBM1xcdTY1QTZcXHU2NUE4XFx1NjVBQVxcdTY1QUNcXHU2NUFFXFx1NjVCMVwiLCA3LCBcIlxcdTY1QkFcXHU2NUJCXFx1NjVCRVxcdTY1QkZcXHU2NUMwXFx1NjVDMlxcdTY1QzdcXHU2NUM4XFx1NjVDOVxcdTY1Q0FcXHU2NUNEXFx1NjVEMFxcdTY1RDFcXHU2NUQzXFx1NjVENFxcdTY1RDVcXHU2NUQ4XCIsIDcsIFwiXFx1NjVFMVxcdTY1RTNcXHU2NUU0XFx1NjVFQVxcdTY1RUJcIl0sXG4gICAgICBbXCI5NTQwXCIsIFwiXFx1NjVGMlxcdTY1RjNcXHU2NUY0XFx1NjVGNVxcdTY1RjhcXHU2NUY5XFx1NjVGQlwiLCA0LCBcIlxcdTY2MDFcXHU2NjA0XFx1NjYwNVxcdTY2MDdcXHU2NjA4XFx1NjYwOVxcdTY2MEJcXHU2NjBEXFx1NjYxMFxcdTY2MTFcXHU2NjEyXFx1NjYxNlxcdTY2MTdcXHU2NjE4XFx1NjYxQVxcdTY2MUJcXHU2NjFDXFx1NjYxRVxcdTY2MjFcXHU2NjIyXFx1NjYyM1xcdTY2MjRcXHU2NjI2XFx1NjYyOVxcdTY2MkFcXHU2NjJCXFx1NjYyQ1xcdTY2MkVcXHU2NjMwXFx1NjYzMlxcdTY2MzNcXHU2NjM3XCIsIDQsIFwiXFx1NjYzRFxcdTY2M0ZcXHU2NjQwXFx1NjY0MlxcdTY2NDRcIiwgNiwgXCJcXHU2NjREXFx1NjY0RVxcdTY2NTBcXHU2NjUxXFx1NjY1OFwiXSxcbiAgICAgIFtcIjk1ODBcIiwgXCJcXHU2NjU5XFx1NjY1QlxcdTY2NUNcXHU2NjVEXFx1NjY1RVxcdTY2NjBcXHU2NjYyXFx1NjY2M1xcdTY2NjVcXHU2NjY3XFx1NjY2OVwiLCA0LCBcIlxcdTY2NzFcXHU2NjcyXFx1NjY3M1xcdTY2NzVcXHU2Njc4XFx1NjY3OVxcdTY2N0JcXHU2NjdDXFx1NjY3RFxcdTY2N0ZcXHU2NjgwXFx1NjY4MVxcdTY2ODNcXHU2Njg1XFx1NjY4NlxcdTY2ODhcXHU2Njg5XFx1NjY4QVxcdTY2OEJcXHU2NjhEXFx1NjY4RVxcdTY2OEZcXHU2NjkwXFx1NjY5MlxcdTY2OTNcXHU2Njk0XFx1NjY5NVxcdTY2OThcIiwgNCwgXCJcXHU2NjlFXCIsIDgsIFwiXFx1NjZBOVwiLCA0LCBcIlxcdTY2QUZcIiwgNCwgXCJcXHU2NkI1XFx1NjZCNlxcdTY2QjdcXHU2NkI4XFx1NjZCQVxcdTY2QkJcXHU2NkJDXFx1NjZCRFxcdTY2QkZcIiwgMjUsIFwiXFx1NjZEQVxcdTY2REVcIiwgNywgXCJcXHU2NkU3XFx1NjZFOFxcdTY2RUFcIiwgNSwgXCJcXHU2NkYxXFx1NjZGNVxcdTY2RjZcXHU2NkY4XFx1NjZGQVxcdTY2RkJcXHU2NkZEXFx1NjcwMVxcdTY3MDJcXHU2NzAzXCJdLFxuICAgICAgW1wiOTY0MFwiLCBcIlxcdTY3MDRcXHU2NzA1XFx1NjcwNlxcdTY3MDdcXHU2NzBDXFx1NjcwRVxcdTY3MEZcXHU2NzExXFx1NjcxMlxcdTY3MTNcXHU2NzE2XFx1NjcxOFxcdTY3MTlcXHU2NzFBXFx1NjcxQ1xcdTY3MUVcXHU2NzIwXCIsIDUsIFwiXFx1NjcyN1xcdTY3MjlcXHU2NzJFXFx1NjczMFxcdTY3MzJcXHU2NzMzXFx1NjczNlxcdTY3MzdcXHU2NzM4XFx1NjczOVxcdTY3M0JcXHU2NzNDXFx1NjczRVxcdTY3M0ZcXHU2NzQxXFx1Njc0NFxcdTY3NDVcXHU2NzQ3XFx1Njc0QVxcdTY3NEJcXHU2NzREXFx1Njc1MlxcdTY3NTRcXHU2NzU1XFx1Njc1N1wiLCA0LCBcIlxcdTY3NURcXHU2NzYyXFx1Njc2M1xcdTY3NjRcXHU2NzY2XFx1Njc2N1xcdTY3NkJcXHU2NzZDXFx1Njc2RVxcdTY3NzFcXHU2Nzc0XFx1Njc3NlwiXSxcbiAgICAgIFtcIjk2ODBcIiwgXCJcXHU2Nzc4XFx1Njc3OVxcdTY3N0FcXHU2NzdCXFx1Njc3RFxcdTY3ODBcXHU2NzgyXFx1Njc4M1xcdTY3ODVcXHU2Nzg2XFx1Njc4OFxcdTY3OEFcXHU2NzhDXFx1Njc4RFxcdTY3OEVcXHU2NzhGXFx1Njc5MVxcdTY3OTJcXHU2NzkzXFx1Njc5NFxcdTY3OTZcXHU2Nzk5XFx1Njc5QlxcdTY3OUZcXHU2N0EwXFx1NjdBMVxcdTY3QTRcXHU2N0E2XFx1NjdBOVxcdTY3QUNcXHU2N0FFXFx1NjdCMVxcdTY3QjJcXHU2N0I0XFx1NjdCOVwiLCA3LCBcIlxcdTY3QzJcXHU2N0M1XCIsIDksIFwiXFx1NjdENVxcdTY3RDZcXHU2N0Q3XFx1NjdEQlxcdTY3REZcXHU2N0UxXFx1NjdFM1xcdTY3RTRcXHU2N0U2XFx1NjdFN1xcdTY3RThcXHU2N0VBXFx1NjdFQlxcdTY3RURcXHU2N0VFXFx1NjdGMlxcdTY3RjVcIiwgNywgXCJcXHU2N0ZFXFx1NjgwMVxcdTY4MDJcXHU2ODAzXFx1NjgwNFxcdTY4MDZcXHU2ODBEXFx1NjgxMFxcdTY4MTJcXHU2ODE0XFx1NjgxNVxcdTY4MThcIiwgNCwgXCJcXHU2ODFFXFx1NjgxRlxcdTY4MjBcXHU2ODIyXCIsIDYsIFwiXFx1NjgyQlwiLCA2LCBcIlxcdTY4MzRcXHU2ODM1XFx1NjgzNlxcdTY4M0FcXHU2ODNCXFx1NjgzRlxcdTY4NDdcXHU2ODRCXFx1Njg0RFxcdTY4NEZcXHU2ODUyXFx1Njg1NlwiLCA1XSxcbiAgICAgIFtcIjk3NDBcIiwgXCJcXHU2ODVDXFx1Njg1RFxcdTY4NUVcXHU2ODVGXFx1Njg2QVxcdTY4NkNcIiwgNywgXCJcXHU2ODc1XFx1Njg3OFwiLCA4LCBcIlxcdTY4ODJcXHU2ODg0XFx1Njg4N1wiLCA3LCBcIlxcdTY4OTBcXHU2ODkxXFx1Njg5MlxcdTY4OTRcXHU2ODk1XFx1Njg5NlxcdTY4OThcIiwgOSwgXCJcXHU2OEEzXFx1NjhBNFxcdTY4QTVcXHU2OEE5XFx1NjhBQVxcdTY4QUJcXHU2OEFDXFx1NjhBRVxcdTY4QjFcXHU2OEIyXFx1NjhCNFxcdTY4QjZcXHU2OEI3XFx1NjhCOFwiXSxcbiAgICAgIFtcIjk3ODBcIiwgXCJcXHU2OEI5XCIsIDYsIFwiXFx1NjhDMVxcdTY4QzNcIiwgNSwgXCJcXHU2OENBXFx1NjhDQ1xcdTY4Q0VcXHU2OENGXFx1NjhEMFxcdTY4RDFcXHU2OEQzXFx1NjhENFxcdTY4RDZcXHU2OEQ3XFx1NjhEOVxcdTY4REJcIiwgNCwgXCJcXHU2OEUxXFx1NjhFMlxcdTY4RTRcIiwgOSwgXCJcXHU2OEVGXFx1NjhGMlxcdTY4RjNcXHU2OEY0XFx1NjhGNlxcdTY4RjdcXHU2OEY4XFx1NjhGQlxcdTY4RkRcXHU2OEZFXFx1NjhGRlxcdTY5MDBcXHU2OTAyXFx1NjkwM1xcdTY5MDRcXHU2OTA2XCIsIDQsIFwiXFx1NjkwQ1xcdTY5MEZcXHU2OTExXFx1NjkxM1wiLCAxMSwgXCJcXHU2OTIxXFx1NjkyMlxcdTY5MjNcXHU2OTI1XCIsIDcsIFwiXFx1NjkyRVxcdTY5MkZcXHU2OTMxXFx1NjkzMlxcdTY5MzNcXHU2OTM1XFx1NjkzNlxcdTY5MzdcXHU2OTM4XFx1NjkzQVxcdTY5M0JcXHU2OTNDXFx1NjkzRVxcdTY5NDBcXHU2OTQxXFx1Njk0M1wiLCAxNiwgXCJcXHU2OTU1XFx1Njk1NlxcdTY5NThcXHU2OTU5XFx1Njk1QlxcdTY5NUNcXHU2OTVGXCJdLFxuICAgICAgW1wiOTg0MFwiLCBcIlxcdTY5NjFcXHU2OTYyXFx1Njk2NFxcdTY5NjVcXHU2OTY3XFx1Njk2OFxcdTY5NjlcXHU2OTZBXFx1Njk2Q1xcdTY5NkRcXHU2OTZGXFx1Njk3MFxcdTY5NzJcIiwgNCwgXCJcXHU2OTdBXFx1Njk3QlxcdTY5N0RcXHU2OTdFXFx1Njk3RlxcdTY5ODFcXHU2OTgzXFx1Njk4NVxcdTY5OEFcXHU2OThCXFx1Njk4Q1xcdTY5OEVcIiwgNSwgXCJcXHU2OTk2XFx1Njk5N1xcdTY5OTlcXHU2OTlBXFx1Njk5RFwiLCA5LCBcIlxcdTY5QTlcXHU2OUFBXFx1NjlBQ1xcdTY5QUVcXHU2OUFGXFx1NjlCMFxcdTY5QjJcXHU2OUIzXFx1NjlCNVxcdTY5QjZcXHU2OUI4XFx1NjlCOVxcdTY5QkFcXHU2OUJDXFx1NjlCRFwiXSxcbiAgICAgIFtcIjk4ODBcIiwgXCJcXHU2OUJFXFx1NjlCRlxcdTY5QzBcXHU2OUMyXCIsIDcsIFwiXFx1NjlDQlxcdTY5Q0RcXHU2OUNGXFx1NjlEMVxcdTY5RDJcXHU2OUQzXFx1NjlENVwiLCA1LCBcIlxcdTY5RENcXHU2OUREXFx1NjlERVxcdTY5RTFcIiwgMTEsIFwiXFx1NjlFRVxcdTY5RUZcXHU2OUYwXFx1NjlGMVxcdTY5RjNcIiwgOSwgXCJcXHU2OUZFXFx1NkEwMFwiLCA5LCBcIlxcdTZBMEJcIiwgMTEsIFwiXFx1NkExOVwiLCA1LCBcIlxcdTZBMjBcXHU2QTIyXCIsIDUsIFwiXFx1NkEyOVxcdTZBMkJcXHU2QTJDXFx1NkEyRFxcdTZBMkVcXHU2QTMwXFx1NkEzMlxcdTZBMzNcXHU2QTM0XFx1NkEzNlwiLCA2LCBcIlxcdTZBM0ZcIiwgNCwgXCJcXHU2QTQ1XFx1NkE0NlxcdTZBNDhcIiwgNywgXCJcXHU2QTUxXCIsIDYsIFwiXFx1NkE1QVwiXSxcbiAgICAgIFtcIjk5NDBcIiwgXCJcXHU2QTVDXCIsIDQsIFwiXFx1NkE2MlxcdTZBNjNcXHU2QTY0XFx1NkE2NlwiLCAxMCwgXCJcXHU2QTcyXCIsIDYsIFwiXFx1NkE3QVxcdTZBN0JcXHU2QTdEXFx1NkE3RVxcdTZBN0ZcXHU2QTgxXFx1NkE4MlxcdTZBODNcXHU2QTg1XCIsIDgsIFwiXFx1NkE4RlxcdTZBOTJcIiwgNCwgXCJcXHU2QTk4XCIsIDcsIFwiXFx1NkFBMVwiLCA1XSxcbiAgICAgIFtcIjk5ODBcIiwgXCJcXHU2QUE3XFx1NkFBOFxcdTZBQUFcXHU2QUFEXCIsIDExNCwgXCJcXHU2QjI1XFx1NkIyNlxcdTZCMjhcIiwgNl0sXG4gICAgICBbXCI5YTQwXCIsIFwiXFx1NkIyRlxcdTZCMzBcXHU2QjMxXFx1NkIzM1xcdTZCMzRcXHU2QjM1XFx1NkIzNlxcdTZCMzhcXHU2QjNCXFx1NkIzQ1xcdTZCM0RcXHU2QjNGXFx1NkI0MFxcdTZCNDFcXHU2QjQyXFx1NkI0NFxcdTZCNDVcXHU2QjQ4XFx1NkI0QVxcdTZCNEJcXHU2QjREXCIsIDExLCBcIlxcdTZCNUFcIiwgNywgXCJcXHU2QjY4XFx1NkI2OVxcdTZCNkJcIiwgMTMsIFwiXFx1NkI3QVxcdTZCN0RcXHU2QjdFXFx1NkI3RlxcdTZCODBcXHU2Qjg1XFx1NkI4OFwiXSxcbiAgICAgIFtcIjlhODBcIiwgXCJcXHU2QjhDXFx1NkI4RVxcdTZCOEZcXHU2QjkwXFx1NkI5MVxcdTZCOTRcXHU2Qjk1XFx1NkI5N1xcdTZCOThcXHU2Qjk5XFx1NkI5Q1wiLCA0LCBcIlxcdTZCQTJcIiwgNywgXCJcXHU2QkFCXCIsIDcsIFwiXFx1NkJCNlxcdTZCQjhcIiwgNiwgXCJcXHU2QkMwXFx1NkJDM1xcdTZCQzRcXHU2QkM2XCIsIDQsIFwiXFx1NkJDQ1xcdTZCQ0VcXHU2QkQwXFx1NkJEMVxcdTZCRDhcXHU2QkRBXFx1NkJEQ1wiLCA0LCBcIlxcdTZCRTJcIiwgNywgXCJcXHU2QkVDXFx1NkJFRFxcdTZCRUVcXHU2QkYwXFx1NkJGMVxcdTZCRjJcXHU2QkY0XFx1NkJGNlxcdTZCRjdcXHU2QkY4XFx1NkJGQVxcdTZCRkJcXHU2QkZDXFx1NkJGRVwiLCA2LCBcIlxcdTZDMDhcIiwgNCwgXCJcXHU2QzBFXFx1NkMxMlxcdTZDMTdcXHU2QzFDXFx1NkMxRFxcdTZDMUVcXHU2QzIwXFx1NkMyM1xcdTZDMjVcXHU2QzJCXFx1NkMyQ1xcdTZDMkRcXHU2QzMxXFx1NkMzM1xcdTZDMzZcXHU2QzM3XFx1NkMzOVxcdTZDM0FcXHU2QzNCXFx1NkMzQ1xcdTZDM0VcXHU2QzNGXFx1NkM0M1xcdTZDNDRcXHU2QzQ1XFx1NkM0OFxcdTZDNEJcIiwgNCwgXCJcXHU2QzUxXFx1NkM1MlxcdTZDNTNcXHU2QzU2XFx1NkM1OFwiXSxcbiAgICAgIFtcIjliNDBcIiwgXCJcXHU2QzU5XFx1NkM1QVxcdTZDNjJcXHU2QzYzXFx1NkM2NVxcdTZDNjZcXHU2QzY3XFx1NkM2QlwiLCA0LCBcIlxcdTZDNzFcXHU2QzczXFx1NkM3NVxcdTZDNzdcXHU2Qzc4XFx1NkM3QVxcdTZDN0JcXHU2QzdDXFx1NkM3RlxcdTZDODBcXHU2Qzg0XFx1NkM4N1xcdTZDOEFcXHU2QzhCXFx1NkM4RFxcdTZDOEVcXHU2QzkxXFx1NkM5MlxcdTZDOTVcXHU2Qzk2XFx1NkM5N1xcdTZDOThcXHU2QzlBXFx1NkM5Q1xcdTZDOURcXHU2QzlFXFx1NkNBMFxcdTZDQTJcXHU2Q0E4XFx1NkNBQ1xcdTZDQUZcXHU2Q0IwXFx1NkNCNFxcdTZDQjVcXHU2Q0I2XFx1NkNCN1xcdTZDQkFcXHU2Q0MwXFx1NkNDMVxcdTZDQzJcXHU2Q0MzXFx1NkNDNlxcdTZDQzdcXHU2Q0M4XFx1NkNDQlxcdTZDQ0RcXHU2Q0NFXFx1NkNDRlxcdTZDRDFcXHU2Q0QyXFx1NkNEOFwiXSxcbiAgICAgIFtcIjliODBcIiwgXCJcXHU2Q0Q5XFx1NkNEQVxcdTZDRENcXHU2Q0REXFx1NkNERlxcdTZDRTRcXHU2Q0U2XFx1NkNFN1xcdTZDRTlcXHU2Q0VDXFx1NkNFRFxcdTZDRjJcXHU2Q0Y0XFx1NkNGOVxcdTZDRkZcXHU2RDAwXFx1NkQwMlxcdTZEMDNcXHU2RDA1XFx1NkQwNlxcdTZEMDhcXHU2RDA5XFx1NkQwQVxcdTZEMERcXHU2RDBGXFx1NkQxMFxcdTZEMTFcXHU2RDEzXFx1NkQxNFxcdTZEMTVcXHU2RDE2XFx1NkQxOFxcdTZEMUNcXHU2RDFEXFx1NkQxRlwiLCA1LCBcIlxcdTZEMjZcXHU2RDI4XFx1NkQyOVxcdTZEMkNcXHU2RDJEXFx1NkQyRlxcdTZEMzBcXHU2RDM0XFx1NkQzNlxcdTZEMzdcXHU2RDM4XFx1NkQzQVxcdTZEM0ZcXHU2RDQwXFx1NkQ0MlxcdTZENDRcXHU2RDQ5XFx1NkQ0Q1xcdTZENTBcXHU2RDU1XFx1NkQ1NlxcdTZENTdcXHU2RDU4XFx1NkQ1QlxcdTZENURcXHU2RDVGXFx1NkQ2MVxcdTZENjJcXHU2RDY0XFx1NkQ2NVxcdTZENjdcXHU2RDY4XFx1NkQ2QlxcdTZENkNcXHU2RDZEXFx1NkQ3MFxcdTZENzFcXHU2RDcyXFx1NkQ3M1xcdTZENzVcXHU2RDc2XFx1NkQ3OVxcdTZEN0FcXHU2RDdCXFx1NkQ3RFwiLCA0LCBcIlxcdTZEODNcXHU2RDg0XFx1NkQ4NlxcdTZEODdcXHU2RDhBXFx1NkQ4QlxcdTZEOERcXHU2RDhGXFx1NkQ5MFxcdTZEOTJcXHU2RDk2XCIsIDQsIFwiXFx1NkQ5Q1xcdTZEQTJcXHU2REE1XFx1NkRBQ1xcdTZEQURcXHU2REIwXFx1NkRCMVxcdTZEQjNcXHU2REI0XFx1NkRCNlxcdTZEQjdcXHU2REI5XCIsIDUsIFwiXFx1NkRDMVxcdTZEQzJcXHU2REMzXFx1NkRDOFxcdTZEQzlcXHU2RENBXCJdLFxuICAgICAgW1wiOWM0MFwiLCBcIlxcdTZEQ0RcXHU2RENFXFx1NkRDRlxcdTZERDBcXHU2REQyXFx1NkREM1xcdTZERDRcXHU2REQ1XFx1NkREN1xcdTZEREFcXHU2RERCXFx1NkREQ1xcdTZEREZcXHU2REUyXFx1NkRFM1xcdTZERTVcXHU2REU3XFx1NkRFOFxcdTZERTlcXHU2REVBXFx1NkRFRFxcdTZERUZcXHU2REYwXFx1NkRGMlxcdTZERjRcXHU2REY1XFx1NkRGNlxcdTZERjhcXHU2REZBXFx1NkRGRFwiLCA3LCBcIlxcdTZFMDZcXHU2RTA3XFx1NkUwOFxcdTZFMDlcXHU2RTBCXFx1NkUwRlxcdTZFMTJcXHU2RTEzXFx1NkUxNVxcdTZFMThcXHU2RTE5XFx1NkUxQlxcdTZFMUNcXHU2RTFFXFx1NkUxRlxcdTZFMjJcXHU2RTI2XFx1NkUyN1xcdTZFMjhcXHU2RTJBXFx1NkUyQ1xcdTZFMkVcXHU2RTMwXFx1NkUzMVxcdTZFMzNcXHU2RTM1XCJdLFxuICAgICAgW1wiOWM4MFwiLCBcIlxcdTZFMzZcXHU2RTM3XFx1NkUzOVxcdTZFM0JcIiwgNywgXCJcXHU2RTQ1XCIsIDcsIFwiXFx1NkU0RlxcdTZFNTBcXHU2RTUxXFx1NkU1MlxcdTZFNTVcXHU2RTU3XFx1NkU1OVxcdTZFNUFcXHU2RTVDXFx1NkU1RFxcdTZFNUVcXHU2RTYwXCIsIDEwLCBcIlxcdTZFNkNcXHU2RTZEXFx1NkU2RlwiLCAxNCwgXCJcXHU2RTgwXFx1NkU4MVxcdTZFODJcXHU2RTg0XFx1NkU4N1xcdTZFODhcXHU2RThBXCIsIDQsIFwiXFx1NkU5MVwiLCA2LCBcIlxcdTZFOTlcXHU2RTlBXFx1NkU5QlxcdTZFOURcXHU2RTlFXFx1NkVBMFxcdTZFQTFcXHU2RUEzXFx1NkVBNFxcdTZFQTZcXHU2RUE4XFx1NkVBOVxcdTZFQUJcXHU2RUFDXFx1NkVBRFxcdTZFQUVcXHU2RUIwXFx1NkVCM1xcdTZFQjVcXHU2RUI4XFx1NkVCOVxcdTZFQkNcXHU2RUJFXFx1NkVCRlxcdTZFQzBcXHU2RUMzXFx1NkVDNFxcdTZFQzVcXHU2RUM2XFx1NkVDOFxcdTZFQzlcXHU2RUNBXFx1NkVDQ1xcdTZFQ0RcXHU2RUNFXFx1NkVEMFxcdTZFRDJcXHU2RUQ2XFx1NkVEOFxcdTZFRDlcXHU2RURCXFx1NkVEQ1xcdTZFRERcXHU2RUUzXFx1NkVFN1xcdTZFRUFcIiwgNV0sXG4gICAgICBbXCI5ZDQwXCIsIFwiXFx1NkVGMFxcdTZFRjFcXHU2RUYyXFx1NkVGM1xcdTZFRjVcXHU2RUY2XFx1NkVGN1xcdTZFRjhcXHU2RUZBXCIsIDcsIFwiXFx1NkYwM1xcdTZGMDRcXHU2RjA1XFx1NkYwN1xcdTZGMDhcXHU2RjBBXCIsIDQsIFwiXFx1NkYxMFxcdTZGMTFcXHU2RjEyXFx1NkYxNlwiLCA5LCBcIlxcdTZGMjFcXHU2RjIyXFx1NkYyM1xcdTZGMjVcXHU2RjI2XFx1NkYyN1xcdTZGMjhcXHU2RjJDXFx1NkYyRVxcdTZGMzBcXHU2RjMyXFx1NkYzNFxcdTZGMzVcXHU2RjM3XCIsIDYsIFwiXFx1NkYzRlxcdTZGNDBcXHU2RjQxXFx1NkY0MlwiXSxcbiAgICAgIFtcIjlkODBcIiwgXCJcXHU2RjQzXFx1NkY0NFxcdTZGNDVcXHU2RjQ4XFx1NkY0OVxcdTZGNEFcXHU2RjRDXFx1NkY0RVwiLCA5LCBcIlxcdTZGNTlcXHU2RjVBXFx1NkY1QlxcdTZGNURcXHU2RjVGXFx1NkY2MFxcdTZGNjFcXHU2RjYzXFx1NkY2NFxcdTZGNjVcXHU2RjY3XCIsIDUsIFwiXFx1NkY2RlxcdTZGNzBcXHU2RjcxXFx1NkY3M1xcdTZGNzVcXHU2Rjc2XFx1NkY3N1xcdTZGNzlcXHU2RjdCXFx1NkY3RFwiLCA2LCBcIlxcdTZGODVcXHU2Rjg2XFx1NkY4N1xcdTZGOEFcXHU2RjhCXFx1NkY4RlwiLCAxMiwgXCJcXHU2RjlEXFx1NkY5RVxcdTZGOUZcXHU2RkEwXFx1NkZBMlwiLCA0LCBcIlxcdTZGQThcIiwgMTAsIFwiXFx1NkZCNFxcdTZGQjVcXHU2RkI3XFx1NkZCOFxcdTZGQkFcIiwgNSwgXCJcXHU2RkMxXFx1NkZDM1wiLCA1LCBcIlxcdTZGQ0FcIiwgNiwgXCJcXHU2RkQzXCIsIDEwLCBcIlxcdTZGREZcXHU2RkUyXFx1NkZFM1xcdTZGRTRcXHU2RkU1XCJdLFxuICAgICAgW1wiOWU0MFwiLCBcIlxcdTZGRTZcIiwgNywgXCJcXHU2RkYwXCIsIDMyLCBcIlxcdTcwMTJcIiwgNywgXCJcXHU3MDFDXCIsIDYsIFwiXFx1NzAyNFwiLCA2XSxcbiAgICAgIFtcIjllODBcIiwgXCJcXHU3MDJCXCIsIDksIFwiXFx1NzAzNlxcdTcwMzdcXHU3MDM4XFx1NzAzQVwiLCAxNywgXCJcXHU3MDREXFx1NzA0RVxcdTcwNTBcIiwgMTMsIFwiXFx1NzA1RlwiLCAxMSwgXCJcXHU3MDZFXFx1NzA3MVxcdTcwNzJcXHU3MDczXFx1NzA3NFxcdTcwNzdcXHU3MDc5XFx1NzA3QVxcdTcwN0JcXHU3MDdEXFx1NzA4MVxcdTcwODJcXHU3MDgzXFx1NzA4NFxcdTcwODZcXHU3MDg3XFx1NzA4OFxcdTcwOEJcXHU3MDhDXFx1NzA4RFxcdTcwOEZcXHU3MDkwXFx1NzA5MVxcdTcwOTNcXHU3MDk3XFx1NzA5OFxcdTcwOUFcXHU3MDlCXFx1NzA5RVwiLCAxMiwgXCJcXHU3MEIwXFx1NzBCMlxcdTcwQjRcXHU3MEI1XFx1NzBCNlxcdTcwQkFcXHU3MEJFXFx1NzBCRlxcdTcwQzRcXHU3MEM1XFx1NzBDNlxcdTcwQzdcXHU3MEM5XFx1NzBDQlwiLCAxMiwgXCJcXHU3MERBXCJdLFxuICAgICAgW1wiOWY0MFwiLCBcIlxcdTcwRENcXHU3MEREXFx1NzBERVxcdTcwRTBcXHU3MEUxXFx1NzBFMlxcdTcwRTNcXHU3MEU1XFx1NzBFQVxcdTcwRUVcXHU3MEYwXCIsIDYsIFwiXFx1NzBGOFxcdTcwRkFcXHU3MEZCXFx1NzBGQ1xcdTcwRkVcIiwgMTAsIFwiXFx1NzEwQlwiLCA0LCBcIlxcdTcxMTFcXHU3MTEyXFx1NzExNFxcdTcxMTdcXHU3MTFCXCIsIDEwLCBcIlxcdTcxMjdcIiwgNywgXCJcXHU3MTMyXFx1NzEzM1xcdTcxMzRcIl0sXG4gICAgICBbXCI5ZjgwXCIsIFwiXFx1NzEzNVxcdTcxMzdcIiwgMTMsIFwiXFx1NzE0NlxcdTcxNDdcXHU3MTQ4XFx1NzE0OVxcdTcxNEJcXHU3MTREXFx1NzE0RlwiLCAxMiwgXCJcXHU3MTVEXFx1NzE1RlwiLCA0LCBcIlxcdTcxNjVcXHU3MTY5XCIsIDQsIFwiXFx1NzE2RlxcdTcxNzBcXHU3MTcxXFx1NzE3NFxcdTcxNzVcXHU3MTc2XFx1NzE3N1xcdTcxNzlcXHU3MTdCXFx1NzE3Q1xcdTcxN0VcIiwgNSwgXCJcXHU3MTg1XCIsIDQsIFwiXFx1NzE4QlxcdTcxOENcXHU3MThEXFx1NzE4RVxcdTcxOTBcXHU3MTkxXFx1NzE5MlxcdTcxOTNcXHU3MTk1XFx1NzE5NlxcdTcxOTdcXHU3MTlBXCIsIDQsIFwiXFx1NzFBMVwiLCA2LCBcIlxcdTcxQTlcXHU3MUFBXFx1NzFBQlxcdTcxQURcIiwgNSwgXCJcXHU3MUI0XFx1NzFCNlxcdTcxQjdcXHU3MUI4XFx1NzFCQVwiLCA4LCBcIlxcdTcxQzRcIiwgOSwgXCJcXHU3MUNGXCIsIDRdLFxuICAgICAgW1wiYTA0MFwiLCBcIlxcdTcxRDZcIiwgOSwgXCJcXHU3MUUxXFx1NzFFMlxcdTcxRTNcXHU3MUU0XFx1NzFFNlxcdTcxRThcIiwgNSwgXCJcXHU3MUVGXCIsIDksIFwiXFx1NzFGQVwiLCAxMSwgXCJcXHU3MjA3XCIsIDE5XSxcbiAgICAgIFtcImEwODBcIiwgXCJcXHU3MjFCXFx1NzIxQ1xcdTcyMUVcIiwgOSwgXCJcXHU3MjI5XFx1NzIyQlxcdTcyMkRcXHU3MjJFXFx1NzIyRlxcdTcyMzJcXHU3MjMzXFx1NzIzNFxcdTcyM0FcXHU3MjNDXFx1NzIzRVxcdTcyNDBcIiwgNiwgXCJcXHU3MjQ5XFx1NzI0QVxcdTcyNEJcXHU3MjRFXFx1NzI0RlxcdTcyNTBcXHU3MjUxXFx1NzI1M1xcdTcyNTRcXHU3MjU1XFx1NzI1N1xcdTcyNThcXHU3MjVBXFx1NzI1Q1xcdTcyNUVcXHU3MjYwXFx1NzI2M1xcdTcyNjRcXHU3MjY1XFx1NzI2OFxcdTcyNkFcXHU3MjZCXFx1NzI2Q1xcdTcyNkRcXHU3MjcwXFx1NzI3MVxcdTcyNzNcXHU3Mjc0XFx1NzI3NlxcdTcyNzdcXHU3Mjc4XFx1NzI3QlxcdTcyN0NcXHU3MjdEXFx1NzI4MlxcdTcyODNcXHU3Mjg1XCIsIDQsIFwiXFx1NzI4Q1xcdTcyOEVcXHU3MjkwXFx1NzI5MVxcdTcyOTNcIiwgMTEsIFwiXFx1NzJBMFwiLCAxMSwgXCJcXHU3MkFFXFx1NzJCMVxcdTcyQjJcXHU3MkIzXFx1NzJCNVxcdTcyQkFcIiwgNiwgXCJcXHU3MkM1XFx1NzJDNlxcdTcyQzdcXHU3MkM5XFx1NzJDQVxcdTcyQ0JcXHU3MkNDXFx1NzJDRlxcdTcyRDFcXHU3MkQzXFx1NzJENFxcdTcyRDVcXHU3MkQ2XFx1NzJEOFxcdTcyREFcXHU3MkRCXCJdLFxuICAgICAgW1wiYTFhMVwiLCBcIlxcdTMwMDBcXHUzMDAxXFx1MzAwMlxceEI3XFx1MDJDOVxcdTAyQzdcXHhBOFxcdTMwMDNcXHUzMDA1XFx1MjAxNFxcdUZGNUVcXHUyMDE2XFx1MjAyNlxcdTIwMThcXHUyMDE5XFx1MjAxQ1xcdTIwMURcXHUzMDE0XFx1MzAxNVxcdTMwMDhcIiwgNywgXCJcXHUzMDE2XFx1MzAxN1xcdTMwMTBcXHUzMDExXFx4QjFcXHhEN1xceEY3XFx1MjIzNlxcdTIyMjdcXHUyMjI4XFx1MjIxMVxcdTIyMEZcXHUyMjJBXFx1MjIyOVxcdTIyMDhcXHUyMjM3XFx1MjIxQVxcdTIyQTVcXHUyMjI1XFx1MjIyMFxcdTIzMTJcXHUyMjk5XFx1MjIyQlxcdTIyMkVcXHUyMjYxXFx1MjI0Q1xcdTIyNDhcXHUyMjNEXFx1MjIxRFxcdTIyNjBcXHUyMjZFXFx1MjI2RlxcdTIyNjRcXHUyMjY1XFx1MjIxRVxcdTIyMzVcXHUyMjM0XFx1MjY0MlxcdTI2NDBcXHhCMFxcdTIwMzJcXHUyMDMzXFx1MjEwM1xcdUZGMDRcXHhBNFxcdUZGRTBcXHVGRkUxXFx1MjAzMFxceEE3XFx1MjExNlxcdTI2MDZcXHUyNjA1XFx1MjVDQlxcdTI1Q0ZcXHUyNUNFXFx1MjVDN1xcdTI1QzZcXHUyNUExXFx1MjVBMFxcdTI1QjNcXHUyNUIyXFx1MjAzQlxcdTIxOTJcXHUyMTkwXFx1MjE5MVxcdTIxOTNcXHUzMDEzXCJdLFxuICAgICAgW1wiYTJhMVwiLCBcIlxcdTIxNzBcIiwgOV0sXG4gICAgICBbXCJhMmIxXCIsIFwiXFx1MjQ4OFwiLCAxOSwgXCJcXHUyNDc0XCIsIDE5LCBcIlxcdTI0NjBcIiwgOV0sXG4gICAgICBbXCJhMmU1XCIsIFwiXFx1MzIyMFwiLCA5XSxcbiAgICAgIFtcImEyZjFcIiwgXCJcXHUyMTYwXCIsIDExXSxcbiAgICAgIFtcImEzYTFcIiwgXCJcXHVGRjAxXFx1RkYwMlxcdUZGMDNcXHVGRkU1XFx1RkYwNVwiLCA4OCwgXCJcXHVGRkUzXCJdLFxuICAgICAgW1wiYTRhMVwiLCBcIlxcdTMwNDFcIiwgODJdLFxuICAgICAgW1wiYTVhMVwiLCBcIlxcdTMwQTFcIiwgODVdLFxuICAgICAgW1wiYTZhMVwiLCBcIlxcdTAzOTFcIiwgMTYsIFwiXFx1MDNBM1wiLCA2XSxcbiAgICAgIFtcImE2YzFcIiwgXCJcXHUwM0IxXCIsIDE2LCBcIlxcdTAzQzNcIiwgNl0sXG4gICAgICBbXCJhNmUwXCIsIFwiXFx1RkUzNVxcdUZFMzZcXHVGRTM5XFx1RkUzQVxcdUZFM0ZcXHVGRTQwXFx1RkUzRFxcdUZFM0VcXHVGRTQxXFx1RkU0MlxcdUZFNDNcXHVGRTQ0XCJdLFxuICAgICAgW1wiYTZlZVwiLCBcIlxcdUZFM0JcXHVGRTNDXFx1RkUzN1xcdUZFMzhcXHVGRTMxXCJdLFxuICAgICAgW1wiYTZmNFwiLCBcIlxcdUZFMzNcXHVGRTM0XCJdLFxuICAgICAgW1wiYTdhMVwiLCBcIlxcdTA0MTBcIiwgNSwgXCJcXHUwNDAxXFx1MDQxNlwiLCAyNV0sXG4gICAgICBbXCJhN2QxXCIsIFwiXFx1MDQzMFwiLCA1LCBcIlxcdTA0NTFcXHUwNDM2XCIsIDI1XSxcbiAgICAgIFtcImE4NDBcIiwgXCJcXHUwMkNBXFx1MDJDQlxcdTAyRDlcXHUyMDEzXFx1MjAxNVxcdTIwMjVcXHUyMDM1XFx1MjEwNVxcdTIxMDlcXHUyMTk2XFx1MjE5N1xcdTIxOThcXHUyMTk5XFx1MjIxNVxcdTIyMUZcXHUyMjIzXFx1MjI1MlxcdTIyNjZcXHUyMjY3XFx1MjJCRlxcdTI1NTBcIiwgMzUsIFwiXFx1MjU4MVwiLCA2XSxcbiAgICAgIFtcImE4ODBcIiwgXCJcXHUyNTg4XCIsIDcsIFwiXFx1MjU5M1xcdTI1OTRcXHUyNTk1XFx1MjVCQ1xcdTI1QkRcXHUyNUUyXFx1MjVFM1xcdTI1RTRcXHUyNUU1XFx1MjYwOVxcdTIyOTVcXHUzMDEyXFx1MzAxRFxcdTMwMUVcIl0sXG4gICAgICBbXCJhOGExXCIsIFwiXFx1MDEwMVxceEUxXFx1MDFDRVxceEUwXFx1MDExM1xceEU5XFx1MDExQlxceEU4XFx1MDEyQlxceEVEXFx1MDFEMFxceEVDXFx1MDE0RFxceEYzXFx1MDFEMlxceEYyXFx1MDE2QlxceEZBXFx1MDFENFxceEY5XFx1MDFENlxcdTAxRDhcXHUwMURBXFx1MDFEQ1xceEZDXFx4RUFcXHUwMjUxXCJdLFxuICAgICAgW1wiYThiZFwiLCBcIlxcdTAxNDRcXHUwMTQ4XCJdLFxuICAgICAgW1wiYThjMFwiLCBcIlxcdTAyNjFcIl0sXG4gICAgICBbXCJhOGM1XCIsIFwiXFx1MzEwNVwiLCAzNl0sXG4gICAgICBbXCJhOTQwXCIsIFwiXFx1MzAyMVwiLCA4LCBcIlxcdTMyQTNcXHUzMzhFXFx1MzM4RlxcdTMzOUNcXHUzMzlEXFx1MzM5RVxcdTMzQTFcXHUzM0M0XFx1MzNDRVxcdTMzRDFcXHUzM0QyXFx1MzNENVxcdUZFMzBcXHVGRkUyXFx1RkZFNFwiXSxcbiAgICAgIFtcImE5NTlcIiwgXCJcXHUyMTIxXFx1MzIzMVwiXSxcbiAgICAgIFtcImE5NWNcIiwgXCJcXHUyMDEwXCJdLFxuICAgICAgW1wiYTk2MFwiLCBcIlxcdTMwRkNcXHUzMDlCXFx1MzA5Q1xcdTMwRkRcXHUzMEZFXFx1MzAwNlxcdTMwOURcXHUzMDlFXFx1RkU0OVwiLCA5LCBcIlxcdUZFNTRcXHVGRTU1XFx1RkU1NlxcdUZFNTdcXHVGRTU5XCIsIDhdLFxuICAgICAgW1wiYTk4MFwiLCBcIlxcdUZFNjJcIiwgNCwgXCJcXHVGRTY4XFx1RkU2OVxcdUZFNkFcXHVGRTZCXCJdLFxuICAgICAgW1wiYTk5NlwiLCBcIlxcdTMwMDdcIl0sXG4gICAgICBbXCJhOWE0XCIsIFwiXFx1MjUwMFwiLCA3NV0sXG4gICAgICBbXCJhYTQwXCIsIFwiXFx1NzJEQ1xcdTcyRERcXHU3MkRGXFx1NzJFMlwiLCA1LCBcIlxcdTcyRUFcXHU3MkVCXFx1NzJGNVxcdTcyRjZcXHU3MkY5XFx1NzJGRFxcdTcyRkVcXHU3MkZGXFx1NzMwMFxcdTczMDJcXHU3MzA0XCIsIDUsIFwiXFx1NzMwQlxcdTczMENcXHU3MzBEXFx1NzMwRlxcdTczMTBcXHU3MzExXFx1NzMxMlxcdTczMTRcXHU3MzE4XFx1NzMxOVxcdTczMUFcXHU3MzFGXFx1NzMyMFxcdTczMjNcXHU3MzI0XFx1NzMyNlxcdTczMjdcXHU3MzI4XFx1NzMyRFxcdTczMkZcXHU3MzMwXFx1NzMzMlxcdTczMzNcXHU3MzM1XFx1NzMzNlxcdTczM0FcXHU3MzNCXFx1NzMzQ1xcdTczM0RcXHU3MzQwXCIsIDhdLFxuICAgICAgW1wiYWE4MFwiLCBcIlxcdTczNDlcXHU3MzRBXFx1NzM0QlxcdTczNENcXHU3MzRFXFx1NzM0RlxcdTczNTFcXHU3MzUzXFx1NzM1NFxcdTczNTVcXHU3MzU2XFx1NzM1OFwiLCA3LCBcIlxcdTczNjFcIiwgMTAsIFwiXFx1NzM2RVxcdTczNzBcXHU3MzcxXCJdLFxuICAgICAgW1wiYWI0MFwiLCBcIlxcdTczNzJcIiwgMTEsIFwiXFx1NzM3RlwiLCA0LCBcIlxcdTczODVcXHU3Mzg2XFx1NzM4OFxcdTczOEFcXHU3MzhDXFx1NzM4RFxcdTczOEZcXHU3MzkwXFx1NzM5MlxcdTczOTNcXHU3Mzk0XFx1NzM5NVxcdTczOTdcXHU3Mzk4XFx1NzM5OVxcdTczOUFcXHU3MzlDXFx1NzM5RFxcdTczOUVcXHU3M0EwXFx1NzNBMVxcdTczQTNcIiwgNSwgXCJcXHU3M0FBXFx1NzNBQ1xcdTczQURcXHU3M0IxXFx1NzNCNFxcdTczQjVcXHU3M0I2XFx1NzNCOFxcdTczQjlcXHU3M0JDXFx1NzNCRFxcdTczQkVcXHU3M0JGXFx1NzNDMVxcdTczQzNcIiwgNF0sXG4gICAgICBbXCJhYjgwXCIsIFwiXFx1NzNDQlxcdTczQ0NcXHU3M0NFXFx1NzNEMlwiLCA2LCBcIlxcdTczREFcXHU3M0RCXFx1NzNEQ1xcdTczRERcXHU3M0RGXFx1NzNFMVxcdTczRTJcXHU3M0UzXFx1NzNFNFxcdTczRTZcXHU3M0U4XFx1NzNFQVxcdTczRUJcXHU3M0VDXFx1NzNFRVxcdTczRUZcXHU3M0YwXFx1NzNGMVxcdTczRjNcIiwgNF0sXG4gICAgICBbXCJhYzQwXCIsIFwiXFx1NzNGOFwiLCAxMCwgXCJcXHU3NDA0XFx1NzQwN1xcdTc0MDhcXHU3NDBCXFx1NzQwQ1xcdTc0MERcXHU3NDBFXFx1NzQxMVwiLCA4LCBcIlxcdTc0MUNcIiwgNSwgXCJcXHU3NDIzXFx1NzQyNFxcdTc0MjdcXHU3NDI5XFx1NzQyQlxcdTc0MkRcXHU3NDJGXFx1NzQzMVxcdTc0MzJcXHU3NDM3XCIsIDQsIFwiXFx1NzQzRFxcdTc0M0VcXHU3NDNGXFx1NzQ0MFxcdTc0NDJcIiwgMTFdLFxuICAgICAgW1wiYWM4MFwiLCBcIlxcdTc0NEVcIiwgNiwgXCJcXHU3NDU2XFx1NzQ1OFxcdTc0NURcXHU3NDYwXCIsIDEyLCBcIlxcdTc0NkVcXHU3NDZGXFx1NzQ3MVwiLCA0LCBcIlxcdTc0NzhcXHU3NDc5XFx1NzQ3QVwiXSxcbiAgICAgIFtcImFkNDBcIiwgXCJcXHU3NDdCXFx1NzQ3Q1xcdTc0N0RcXHU3NDdGXFx1NzQ4MlxcdTc0ODRcXHU3NDg1XFx1NzQ4NlxcdTc0ODhcXHU3NDg5XFx1NzQ4QVxcdTc0OENcXHU3NDhEXFx1NzQ4RlxcdTc0OTFcIiwgMTAsIFwiXFx1NzQ5RFxcdTc0OUZcIiwgNywgXCJcXHU3NEFBXCIsIDE1LCBcIlxcdTc0QkJcIiwgMTJdLFxuICAgICAgW1wiYWQ4MFwiLCBcIlxcdTc0QzhcIiwgOSwgXCJcXHU3NEQzXCIsIDgsIFwiXFx1NzRERFxcdTc0REZcXHU3NEUxXFx1NzRFNVxcdTc0RTdcIiwgNiwgXCJcXHU3NEYwXFx1NzRGMVxcdTc0RjJcIl0sXG4gICAgICBbXCJhZTQwXCIsIFwiXFx1NzRGM1xcdTc0RjVcXHU3NEY4XCIsIDYsIFwiXFx1NzUwMFxcdTc1MDFcXHU3NTAyXFx1NzUwM1xcdTc1MDVcIiwgNywgXCJcXHU3NTBFXFx1NzUxMFxcdTc1MTJcXHU3NTE0XFx1NzUxNVxcdTc1MTZcXHU3NTE3XFx1NzUxQlxcdTc1MURcXHU3NTFFXFx1NzUyMFwiLCA0LCBcIlxcdTc1MjZcXHU3NTI3XFx1NzUyQVxcdTc1MkVcXHU3NTM0XFx1NzUzNlxcdTc1MzlcXHU3NTNDXFx1NzUzRFxcdTc1M0ZcXHU3NTQxXFx1NzU0MlxcdTc1NDNcXHU3NTQ0XFx1NzU0NlxcdTc1NDdcXHU3NTQ5XFx1NzU0QVxcdTc1NERcXHU3NTUwXFx1NzU1MVxcdTc1NTJcXHU3NTUzXFx1NzU1NVxcdTc1NTZcXHU3NTU3XFx1NzU1OFwiXSxcbiAgICAgIFtcImFlODBcIiwgXCJcXHU3NTVEXCIsIDcsIFwiXFx1NzU2N1xcdTc1NjhcXHU3NTY5XFx1NzU2QlwiLCA2LCBcIlxcdTc1NzNcXHU3NTc1XFx1NzU3NlxcdTc1NzdcXHU3NTdBXCIsIDQsIFwiXFx1NzU4MFxcdTc1ODFcXHU3NTgyXFx1NzU4NFxcdTc1ODVcXHU3NTg3XCJdLFxuICAgICAgW1wiYWY0MFwiLCBcIlxcdTc1ODhcXHU3NTg5XFx1NzU4QVxcdTc1OENcXHU3NThEXFx1NzU4RVxcdTc1OTBcXHU3NTkzXFx1NzU5NVxcdTc1OThcXHU3NTlCXFx1NzU5Q1xcdTc1OUVcXHU3NUEyXFx1NzVBNlwiLCA0LCBcIlxcdTc1QURcXHU3NUI2XFx1NzVCN1xcdTc1QkFcXHU3NUJCXFx1NzVCRlxcdTc1QzBcXHU3NUMxXFx1NzVDNlxcdTc1Q0JcXHU3NUNDXFx1NzVDRVxcdTc1Q0ZcXHU3NUQwXFx1NzVEMVxcdTc1RDNcXHU3NUQ3XFx1NzVEOVxcdTc1REFcXHU3NURDXFx1NzVERFxcdTc1REZcXHU3NUUwXFx1NzVFMVxcdTc1RTVcXHU3NUU5XFx1NzVFQ1xcdTc1RURcXHU3NUVFXFx1NzVFRlxcdTc1RjJcXHU3NUYzXFx1NzVGNVxcdTc1RjZcXHU3NUY3XFx1NzVGOFxcdTc1RkFcXHU3NUZCXFx1NzVGRFxcdTc1RkVcXHU3NjAyXFx1NzYwNFxcdTc2MDZcXHU3NjA3XCJdLFxuICAgICAgW1wiYWY4MFwiLCBcIlxcdTc2MDhcXHU3NjA5XFx1NzYwQlxcdTc2MERcXHU3NjBFXFx1NzYwRlxcdTc2MTFcXHU3NjEyXFx1NzYxM1xcdTc2MTRcXHU3NjE2XFx1NzYxQVxcdTc2MUNcXHU3NjFEXFx1NzYxRVxcdTc2MjFcXHU3NjIzXFx1NzYyN1xcdTc2MjhcXHU3NjJDXFx1NzYyRVxcdTc2MkZcXHU3NjMxXFx1NzYzMlxcdTc2MzZcXHU3NjM3XFx1NzYzOVxcdTc2M0FcXHU3NjNCXFx1NzYzRFxcdTc2NDFcXHU3NjQyXFx1NzY0NFwiXSxcbiAgICAgIFtcImIwNDBcIiwgXCJcXHU3NjQ1XCIsIDYsIFwiXFx1NzY0RVwiLCA1LCBcIlxcdTc2NTVcXHU3NjU3XCIsIDQsIFwiXFx1NzY1RFxcdTc2NUZcXHU3NjYwXFx1NzY2MVxcdTc2NjJcXHU3NjY0XCIsIDYsIFwiXFx1NzY2Q1xcdTc2NkRcXHU3NjZFXFx1NzY3MFwiLCA3LCBcIlxcdTc2NzlcXHU3NjdBXFx1NzY3Q1xcdTc2N0ZcXHU3NjgwXFx1NzY4MVxcdTc2ODNcXHU3Njg1XFx1NzY4OVxcdTc2OEFcXHU3NjhDXFx1NzY4RFxcdTc2OEZcXHU3NjkwXFx1NzY5MlxcdTc2OTRcXHU3Njk1XFx1NzY5N1xcdTc2OThcXHU3NjlBXFx1NzY5QlwiXSxcbiAgICAgIFtcImIwODBcIiwgXCJcXHU3NjlDXCIsIDcsIFwiXFx1NzZBNVwiLCA4LCBcIlxcdTc2QUZcXHU3NkIwXFx1NzZCM1xcdTc2QjVcIiwgOSwgXCJcXHU3NkMwXFx1NzZDMVxcdTc2QzNcXHU1NTRBXFx1OTYzRlxcdTU3QzNcXHU2MzI4XFx1NTRDRVxcdTU1MDlcXHU1NEMwXFx1NzY5MVxcdTc2NENcXHU4NTNDXFx1NzdFRVxcdTgyN0VcXHU3ODhEXFx1NzIzMVxcdTk2OThcXHU5NzhEXFx1NkMyOFxcdTVCODlcXHU0RkZBXFx1NjMwOVxcdTY2OTdcXHU1Q0I4XFx1ODBGQVxcdTY4NDhcXHU4MEFFXFx1NjYwMlxcdTc2Q0VcXHU1MUY5XFx1NjU1NlxcdTcxQUNcXHU3RkYxXFx1ODg4NFxcdTUwQjJcXHU1OTY1XFx1NjFDQVxcdTZGQjNcXHU4MkFEXFx1NjM0Q1xcdTYyNTJcXHU1M0VEXFx1NTQyN1xcdTdCMDZcXHU1MTZCXFx1NzVBNFxcdTVERjRcXHU2MkQ0XFx1OERDQlxcdTk3NzZcXHU2MjhBXFx1ODAxOVxcdTU3NURcXHU5NzM4XFx1N0Y2MlxcdTcyMzhcXHU3NjdEXFx1NjdDRlxcdTc2N0VcXHU2NDQ2XFx1NEY3MFxcdThEMjVcXHU2MkRDXFx1N0ExN1xcdTY1OTFcXHU3M0VEXFx1NjQyQ1xcdTYyNzNcXHU4MjJDXFx1OTg4MVxcdTY3N0ZcXHU3MjQ4XFx1NjI2RVxcdTYyQ0NcXHU0RjM0XFx1NzRFM1xcdTUzNEFcXHU1MjlFXFx1N0VDQVxcdTkwQTZcXHU1RTJFXFx1Njg4NlxcdTY5OUNcXHU4MTgwXFx1N0VEMVxcdTY4RDJcXHU3OEM1XFx1ODY4Q1xcdTk1NTFcXHU1MDhEXFx1OEMyNFxcdTgyREVcXHU4MERFXFx1NTMwNVxcdTg5MTJcXHU1MjY1XCJdLFxuICAgICAgW1wiYjE0MFwiLCBcIlxcdTc2QzRcXHU3NkM3XFx1NzZDOVxcdTc2Q0JcXHU3NkNDXFx1NzZEM1xcdTc2RDVcXHU3NkQ5XFx1NzZEQVxcdTc2RENcXHU3NkREXFx1NzZERVxcdTc2RTBcIiwgNCwgXCJcXHU3NkU2XCIsIDcsIFwiXFx1NzZGMFxcdTc2RjNcXHU3NkY1XFx1NzZGNlxcdTc2RjdcXHU3NkZBXFx1NzZGQlxcdTc2RkRcXHU3NkZGXFx1NzcwMFxcdTc3MDJcXHU3NzAzXFx1NzcwNVxcdTc3MDZcXHU3NzBBXFx1NzcwQ1xcdTc3MEVcIiwgMTAsIFwiXFx1NzcxQlxcdTc3MUNcXHU3NzFEXFx1NzcxRVxcdTc3MjFcXHU3NzIzXFx1NzcyNFxcdTc3MjVcXHU3NzI3XFx1NzcyQVxcdTc3MkJcIl0sXG4gICAgICBbXCJiMTgwXCIsIFwiXFx1NzcyQ1xcdTc3MkVcXHU3NzMwXCIsIDQsIFwiXFx1NzczOVxcdTc3M0JcXHU3NzNEXFx1NzczRVxcdTc3M0ZcXHU3NzQyXFx1Nzc0NFxcdTc3NDVcXHU3NzQ2XFx1Nzc0OFwiLCA3LCBcIlxcdTc3NTJcIiwgNywgXCJcXHU3NzVDXFx1ODU4NFxcdTk2RjlcXHU0RkREXFx1NTgyMVxcdTk5NzFcXHU1QjlEXFx1NjJCMVxcdTYyQTVcXHU2NkI0XFx1OEM3OVxcdTlDOERcXHU3MjA2XFx1Njc2RlxcdTc4OTFcXHU2MEIyXFx1NTM1MVxcdTUzMTdcXHU4Rjg4XFx1ODBDQ1xcdThEMURcXHU5NEExXFx1NTAwRFxcdTcyQzhcXHU1OTA3XFx1NjBFQlxcdTcxMTlcXHU4OEFCXFx1NTk1NFxcdTgyRUZcXHU2NzJDXFx1N0IyOFxcdTVEMjlcXHU3RUY3XFx1NzUyRFxcdTZDRjVcXHU4RTY2XFx1OEZGOFxcdTkwM0NcXHU5RjNCXFx1NkJENFxcdTkxMTlcXHU3QjE0XFx1NUY3Q1xcdTc4QTdcXHU4NEQ2XFx1ODUzRFxcdTZCRDVcXHU2QkQ5XFx1NkJENlxcdTVFMDFcXHU1RTg3XFx1NzVGOVxcdTk1RURcXHU2NTVEXFx1NUYwQVxcdTVGQzVcXHU4RjlGXFx1NThDMVxcdTgxQzJcXHU5MDdGXFx1OTY1QlxcdTk3QURcXHU4RkI5XFx1N0YxNlxcdThEMkNcXHU2MjQxXFx1NEZCRlxcdTUzRDhcXHU1MzVFXFx1OEZBOFxcdThGQTlcXHU4RkFCXFx1OTA0RFxcdTY4MDdcXHU1RjZBXFx1ODE5OFxcdTg4NjhcXHU5Q0Q2XFx1NjE4QlxcdTUyMkJcXHU3NjJBXFx1NUY2Q1xcdTY1OENcXHU2RkQyXFx1NkVFOFxcdTVCQkVcXHU2NDQ4XFx1NTE3NVxcdTUxQjBcXHU2N0M0XFx1NEUxOVxcdTc5QzlcXHU5OTdDXFx1NzBCM1wiXSxcbiAgICAgIFtcImIyNDBcIiwgXCJcXHU3NzVEXFx1Nzc1RVxcdTc3NUZcXHU3NzYwXFx1Nzc2NFxcdTc3NjdcXHU3NzY5XFx1Nzc2QVxcdTc3NkRcIiwgMTEsIFwiXFx1Nzc3QVxcdTc3N0JcXHU3NzdDXFx1Nzc4MVxcdTc3ODJcXHU3NzgzXFx1Nzc4NlwiLCA1LCBcIlxcdTc3OEZcXHU3NzkwXFx1Nzc5M1wiLCAxMSwgXCJcXHU3N0ExXFx1NzdBM1xcdTc3QTRcXHU3N0E2XFx1NzdBOFxcdTc3QUJcXHU3N0FEXFx1NzdBRVxcdTc3QUZcXHU3N0IxXFx1NzdCMlxcdTc3QjRcXHU3N0I2XCIsIDRdLFxuICAgICAgW1wiYjI4MFwiLCBcIlxcdTc3QkNcXHU3N0JFXFx1NzdDMFwiLCAxMiwgXCJcXHU3N0NFXCIsIDgsIFwiXFx1NzdEOFxcdTc3RDlcXHU3N0RBXFx1NzdERFwiLCA0LCBcIlxcdTc3RTRcXHU3NUM1XFx1NUU3NlxcdTczQkJcXHU4M0UwXFx1NjRBRFxcdTYyRThcXHU5NEI1XFx1NkNFMlxcdTUzNUFcXHU1MkMzXFx1NjQwRlxcdTk0QzJcXHU3Qjk0XFx1NEYyRlxcdTVFMUJcXHU4MjM2XFx1ODExNlxcdTgxOEFcXHU2RTI0XFx1NkNDQVxcdTlBNzNcXHU2MzU1XFx1NTM1Q1xcdTU0RkFcXHU4ODY1XFx1NTdFMFxcdTRFMERcXHU1RTAzXFx1NkI2NVxcdTdDM0ZcXHU5MEU4XFx1NjAxNlxcdTY0RTZcXHU3MzFDXFx1ODhDMVxcdTY3NTBcXHU2MjREXFx1OEQyMlxcdTc3NkNcXHU4RTI5XFx1OTFDN1xcdTVGNjlcXHU4M0RDXFx1ODUyMVxcdTk5MTBcXHU1M0MyXFx1ODY5NVxcdTZCOEJcXHU2MEVEXFx1NjBFOFxcdTcwN0ZcXHU4MkNEXFx1ODIzMVxcdTRFRDNcXHU2Q0E3XFx1ODVDRlxcdTY0Q0RcXHU3Q0Q5XFx1NjlGRFxcdTY2RjlcXHU4MzQ5XFx1NTM5NVxcdTdCNTZcXHU0RkE3XFx1NTE4Q1xcdTZENEJcXHU1QzQyXFx1OEU2RFxcdTYzRDJcXHU1M0M5XFx1ODMyQ1xcdTgzMzZcXHU2N0U1XFx1NzhCNFxcdTY0M0RcXHU1QkRGXFx1NUM5NFxcdTVERUVcXHU4QkU3XFx1NjJDNlxcdTY3RjRcXHU4QzdBXFx1NjQwMFxcdTYzQkFcXHU4NzQ5XFx1OTk4QlxcdThDMTdcXHU3RjIwXFx1OTRGMlxcdTRFQTdcXHU5NjEwXFx1OThBNFxcdTY2MENcXHU3MzE2XCJdLFxuICAgICAgW1wiYjM0MFwiLCBcIlxcdTc3RTZcXHU3N0U4XFx1NzdFQVxcdTc3RUZcXHU3N0YwXFx1NzdGMVxcdTc3RjJcXHU3N0Y0XFx1NzdGNVxcdTc3RjdcXHU3N0Y5XFx1NzdGQVxcdTc3RkJcXHU3N0ZDXFx1NzgwM1wiLCA1LCBcIlxcdTc4MEFcXHU3ODBCXFx1NzgwRVxcdTc4MEZcXHU3ODEwXFx1NzgxM1xcdTc4MTVcXHU3ODE5XFx1NzgxQlxcdTc4MUVcXHU3ODIwXFx1NzgyMVxcdTc4MjJcXHU3ODI0XFx1NzgyOFxcdTc4MkFcXHU3ODJCXFx1NzgyRVxcdTc4MkZcXHU3ODMxXFx1NzgzMlxcdTc4MzNcXHU3ODM1XFx1NzgzNlxcdTc4M0RcXHU3ODNGXFx1Nzg0MVxcdTc4NDJcXHU3ODQzXFx1Nzg0NFxcdTc4NDZcXHU3ODQ4XFx1Nzg0OVxcdTc4NEFcXHU3ODRCXFx1Nzg0RFxcdTc4NEZcXHU3ODUxXFx1Nzg1M1xcdTc4NTRcXHU3ODU4XFx1Nzg1OVxcdTc4NUFcIl0sXG4gICAgICBbXCJiMzgwXCIsIFwiXFx1Nzg1QlxcdTc4NUNcXHU3ODVFXCIsIDExLCBcIlxcdTc4NkZcIiwgNywgXCJcXHU3ODc4XFx1Nzg3OVxcdTc4N0FcXHU3ODdCXFx1Nzg3RFwiLCA2LCBcIlxcdTU3M0FcXHU1QzFEXFx1NUUzOFxcdTk1N0ZcXHU1MDdGXFx1ODBBMFxcdTUzODJcXHU2NTVFXFx1NzU0NVxcdTU1MzFcXHU1MDIxXFx1OEQ4NVxcdTYyODRcXHU5NDlFXFx1NjcxRFxcdTU2MzJcXHU2RjZFXFx1NURFMlxcdTU0MzVcXHU3MDkyXFx1OEY2NlxcdTYyNkZcXHU2NEE0XFx1NjNBM1xcdTVGN0JcXHU2Rjg4XFx1OTBGNFxcdTgxRTNcXHU4RkIwXFx1NUMxOFxcdTY2NjhcXHU1RkYxXFx1NkM4OVxcdTk2NDhcXHU4RDgxXFx1ODg2Q1xcdTY0OTFcXHU3OUYwXFx1NTdDRVxcdTZBNTlcXHU2MjEwXFx1NTQ0OFxcdTRFNThcXHU3QTBCXFx1NjBFOVxcdTZGODRcXHU4QkRBXFx1NjI3RlxcdTkwMUVcXHU5QThCXFx1NzlFNFxcdTU0MDNcXHU3NUY0XFx1NjMwMVxcdTUzMTlcXHU2QzYwXFx1OEZERlxcdTVGMUJcXHU5QTcwXFx1ODAzQlxcdTlGN0ZcXHU0Rjg4XFx1NUMzQVxcdThENjRcXHU3RkM1XFx1NjVBNVxcdTcwQkRcXHU1MTQ1XFx1NTFCMlxcdTg2NkJcXHU1RDA3XFx1NUJBMFxcdTYyQkRcXHU5MTZDXFx1NzU3NFxcdThFMENcXHU3QTIwXFx1NjEwMVxcdTdCNzlcXHU0RUM3XFx1N0VGOFxcdTc3ODVcXHU0RTExXFx1ODFFRFxcdTUyMURcXHU1MUZBXFx1NkE3MVxcdTUzQThcXHU4RTg3XFx1OTUwNFxcdTk2Q0ZcXHU2RUMxXFx1OTY2NFxcdTY5NUFcIl0sXG4gICAgICBbXCJiNDQwXCIsIFwiXFx1Nzg4NFxcdTc4ODVcXHU3ODg2XFx1Nzg4OFxcdTc4OEFcXHU3ODhCXFx1Nzg4RlxcdTc4OTBcXHU3ODkyXFx1Nzg5NFxcdTc4OTVcXHU3ODk2XFx1Nzg5OVxcdTc4OURcXHU3ODlFXFx1NzhBMFxcdTc4QTJcXHU3OEE0XFx1NzhBNlxcdTc4QThcIiwgNywgXCJcXHU3OEI1XFx1NzhCNlxcdTc4QjdcXHU3OEI4XFx1NzhCQVxcdTc4QkJcXHU3OEJDXFx1NzhCRFxcdTc4QkZcXHU3OEMwXFx1NzhDMlxcdTc4QzNcXHU3OEM0XFx1NzhDNlxcdTc4QzdcXHU3OEM4XFx1NzhDQ1xcdTc4Q0RcXHU3OENFXFx1NzhDRlxcdTc4RDFcXHU3OEQyXFx1NzhEM1xcdTc4RDZcXHU3OEQ3XFx1NzhEOFxcdTc4REFcIiwgOV0sXG4gICAgICBbXCJiNDgwXCIsIFwiXFx1NzhFNFxcdTc4RTVcXHU3OEU2XFx1NzhFN1xcdTc4RTlcXHU3OEVBXFx1NzhFQlxcdTc4RURcIiwgNCwgXCJcXHU3OEYzXFx1NzhGNVxcdTc4RjZcXHU3OEY4XFx1NzhGOVxcdTc4RkJcIiwgNSwgXCJcXHU3OTAyXFx1NzkwM1xcdTc5MDRcXHU3OTA2XCIsIDYsIFwiXFx1Nzg0MFxcdTUwQThcXHU3N0Q3XFx1NjQxMFxcdTg5RTZcXHU1OTA0XFx1NjNFM1xcdTVERERcXHU3QTdGXFx1NjkzRFxcdTRGMjBcXHU4MjM5XFx1NTU5OFxcdTRFMzJcXHU3NUFFXFx1N0E5N1xcdTVFNjJcXHU1RThBXFx1OTVFRlxcdTUyMUJcXHU1NDM5XFx1NzA4QVxcdTYzNzZcXHU5NTI0XFx1NTc4MlxcdTY2MjVcXHU2OTNGXFx1OTE4N1xcdTU1MDdcXHU2REYzXFx1N0VBRlxcdTg4MjJcXHU2MjMzXFx1N0VGMFxcdTc1QjVcXHU4MzI4XFx1NzhDMVxcdTk2Q0NcXHU4RjlFXFx1NjE0OFxcdTc0RjdcXHU4QkNEXFx1NkI2NFxcdTUyM0FcXHU4RDUwXFx1NkIyMVxcdTgwNkFcXHU4NDcxXFx1NTZGMVxcdTUzMDZcXHU0RUNFXFx1NEUxQlxcdTUxRDFcXHU3Qzk3XFx1OTE4QlxcdTdDMDdcXHU0RkMzXFx1OEU3RlxcdTdCRTFcXHU3QTlDXFx1NjQ2N1xcdTVEMTRcXHU1MEFDXFx1ODEwNlxcdTc2MDFcXHU3Q0I5XFx1NkRFQ1xcdTdGRTBcXHU2NzUxXFx1NUI1OFxcdTVCRjhcXHU3OENCXFx1NjRBRVxcdTY0MTNcXHU2M0FBXFx1NjMyQlxcdTk1MTlcXHU2NDJEXFx1OEZCRVxcdTdCNTRcXHU3NjI5XFx1NjI1M1xcdTU5MjdcXHU1NDQ2XFx1NkI3OVxcdTUwQTNcXHU2MjM0XFx1NUUyNlxcdTZCODZcXHU0RUUzXFx1OEQzN1xcdTg4OEJcXHU1Rjg1XFx1OTAyRVwiXSxcbiAgICAgIFtcImI1NDBcIiwgXCJcXHU3OTBEXCIsIDUsIFwiXFx1NzkxNFwiLCA5LCBcIlxcdTc5MUZcIiwgNCwgXCJcXHU3OTI1XCIsIDE0LCBcIlxcdTc5MzVcIiwgNCwgXCJcXHU3OTNEXFx1NzkzRlxcdTc5NDJcXHU3OTQzXFx1Nzk0NFxcdTc5NDVcXHU3OTQ3XFx1Nzk0QVwiLCA4LCBcIlxcdTc5NTRcXHU3OTU1XFx1Nzk1OFxcdTc5NTlcXHU3OTYxXFx1Nzk2M1wiXSxcbiAgICAgIFtcImI1ODBcIiwgXCJcXHU3OTY0XFx1Nzk2NlxcdTc5NjlcXHU3OTZBXFx1Nzk2QlxcdTc5NkNcXHU3OTZFXFx1Nzk3MFwiLCA2LCBcIlxcdTc5NzlcXHU3OTdCXCIsIDQsIFwiXFx1Nzk4MlxcdTc5ODNcXHU3OTg2XFx1Nzk4N1xcdTc5ODhcXHU3OTg5XFx1Nzk4QlxcdTc5OENcXHU3OThEXFx1Nzk4RVxcdTc5OTBcXHU3OTkxXFx1Nzk5MlxcdTYwMjBcXHU4MDNEXFx1NjJDNVxcdTRFMzlcXHU1MzU1XFx1OTBGOFxcdTYzQjhcXHU4MEM2XFx1NjVFNlxcdTZDMkVcXHU0RjQ2XFx1NjBFRVxcdTZERTFcXHU4QkRFXFx1NUYzOVxcdTg2Q0JcXHU1RjUzXFx1NjMyMVxcdTUxNUFcXHU4MzYxXFx1Njg2M1xcdTUyMDBcXHU2MzYzXFx1OEU0OFxcdTUwMTJcXHU1QzlCXFx1Nzk3N1xcdTVCRkNcXHU1MjMwXFx1N0EzQlxcdTYwQkNcXHU5MDUzXFx1NzZEN1xcdTVGQjdcXHU1Rjk3XFx1NzY4NFxcdThFNkNcXHU3MDZGXFx1NzY3QlxcdTdCNDlcXHU3N0FBXFx1NTFGM1xcdTkwOTNcXHU1ODI0XFx1NEY0RVxcdTZFRjRcXHU4RkVBXFx1NjU0Q1xcdTdCMUJcXHU3MkM0XFx1NkRBNFxcdTdGREZcXHU1QUUxXFx1NjJCNVxcdTVFOTVcXHU1NzMwXFx1ODQ4MlxcdTdCMkNcXHU1RTFEXFx1NUYxRlxcdTkwMTJcXHU3RjE0XFx1OThBMFxcdTYzODJcXHU2RUM3XFx1Nzg5OFxcdTcwQjlcXHU1MTc4XFx1OTc1QlxcdTU3QUJcXHU3NTM1XFx1NEY0M1xcdTc1MzhcXHU1RTk3XFx1NjBFNlxcdTU5NjBcXHU2REMwXFx1NkJCRlxcdTc4ODlcXHU1M0ZDXFx1OTZENVxcdTUxQ0JcXHU1MjAxXFx1NjM4OVxcdTU0MEFcXHU5NDkzXFx1OEMwM1xcdThEQ0NcXHU3MjM5XFx1Nzg5RlxcdTg3NzZcXHU4RkVEXFx1OEMwRFxcdTUzRTBcIl0sXG4gICAgICBbXCJiNjQwXCIsIFwiXFx1Nzk5M1wiLCA2LCBcIlxcdTc5OUJcIiwgMTEsIFwiXFx1NzlBOFwiLCAxMCwgXCJcXHU3OUI0XCIsIDQsIFwiXFx1NzlCQ1xcdTc5QkZcXHU3OUMyXFx1NzlDNFxcdTc5QzVcXHU3OUM3XFx1NzlDOFxcdTc5Q0FcXHU3OUNDXFx1NzlDRVxcdTc5Q0ZcXHU3OUQwXFx1NzlEM1xcdTc5RDRcXHU3OUQ2XFx1NzlEN1xcdTc5RDlcIiwgNSwgXCJcXHU3OUUwXFx1NzlFMVxcdTc5RTJcXHU3OUU1XFx1NzlFOFxcdTc5RUFcIl0sXG4gICAgICBbXCJiNjgwXCIsIFwiXFx1NzlFQ1xcdTc5RUVcXHU3OUYxXCIsIDYsIFwiXFx1NzlGOVxcdTc5RkFcXHU3OUZDXFx1NzlGRVxcdTc5RkZcXHU3QTAxXFx1N0EwNFxcdTdBMDVcXHU3QTA3XFx1N0EwOFxcdTdBMDlcXHU3QTBBXFx1N0EwQ1xcdTdBMEZcIiwgNCwgXCJcXHU3QTE1XFx1N0ExNlxcdTdBMThcXHU3QTE5XFx1N0ExQlxcdTdBMUNcXHU0RTAxXFx1NzZFRlxcdTUzRUVcXHU5NDg5XFx1OTg3NlxcdTlGMEVcXHU5NTJEXFx1NUI5QVxcdThCQTJcXHU0RTIyXFx1NEUxQ1xcdTUxQUNcXHU4NDYzXFx1NjFDMlxcdTUyQThcXHU2ODBCXFx1NEY5N1xcdTYwNkJcXHU1MUJCXFx1NkQxRVxcdTUxNUNcXHU2Mjk2XFx1NjU5N1xcdTk2NjFcXHU4QzQ2XFx1OTAxN1xcdTc1RDhcXHU5MEZEXFx1Nzc2M1xcdTZCRDJcXHU3MjhBXFx1NzJFQ1xcdThCRkJcXHU1ODM1XFx1Nzc3OVxcdThENENcXHU2NzVDXFx1OTU0MFxcdTgwOUFcXHU1RUE2XFx1NkUyMVxcdTU5OTJcXHU3QUVGXFx1NzdFRFxcdTk1M0JcXHU2QkI1XFx1NjVBRFxcdTdGMEVcXHU1ODA2XFx1NTE1MVxcdTk2MUZcXHU1QkY5XFx1NThBOVxcdTU0MjhcXHU4RTcyXFx1NjU2NlxcdTk4N0ZcXHU1NkU0XFx1OTQ5RFxcdTc2RkVcXHU5MDQxXFx1NjM4N1xcdTU0QzZcXHU1OTFBXFx1NTkzQVxcdTU3OUJcXHU4RUIyXFx1NjczNVxcdThERkFcXHU4MjM1XFx1NTI0MVxcdTYwRjBcXHU1ODE1XFx1ODZGRVxcdTVDRThcXHU5RTQ1XFx1NEZDNFxcdTk4OURcXHU4QkI5XFx1NUEyNVxcdTYwNzZcXHU1Mzg0XFx1NjI3Q1xcdTkwNEZcXHU5MTAyXFx1OTk3RlxcdTYwNjlcXHU4MDBDXFx1NTEzRlxcdTgwMzNcXHU1QzE0XFx1OTk3NVxcdTZEMzFcXHU0RThDXCJdLFxuICAgICAgW1wiYjc0MFwiLCBcIlxcdTdBMURcXHU3QTFGXFx1N0EyMVxcdTdBMjJcXHU3QTI0XCIsIDE0LCBcIlxcdTdBMzRcXHU3QTM1XFx1N0EzNlxcdTdBMzhcXHU3QTNBXFx1N0EzRVxcdTdBNDBcIiwgNSwgXCJcXHU3QTQ3XCIsIDksIFwiXFx1N0E1MlwiLCA0LCBcIlxcdTdBNThcIiwgMTZdLFxuICAgICAgW1wiYjc4MFwiLCBcIlxcdTdBNjlcIiwgNiwgXCJcXHU3QTcxXFx1N0E3MlxcdTdBNzNcXHU3QTc1XFx1N0E3QlxcdTdBN0NcXHU3QTdEXFx1N0E3RVxcdTdBODJcXHU3QTg1XFx1N0E4N1xcdTdBODlcXHU3QThBXFx1N0E4QlxcdTdBOENcXHU3QThFXFx1N0E4RlxcdTdBOTBcXHU3QTkzXFx1N0E5NFxcdTdBOTlcXHU3QTlBXFx1N0E5QlxcdTdBOUVcXHU3QUExXFx1N0FBMlxcdThEMzBcXHU1M0QxXFx1N0Y1QVxcdTdCNEZcXHU0RjEwXFx1NEU0RlxcdTk2MDBcXHU2Q0Q1XFx1NzNEMFxcdTg1RTlcXHU1RTA2XFx1NzU2QVxcdTdGRkJcXHU2QTBBXFx1NzdGRVxcdTk0OTJcXHU3RTQxXFx1NTFFMVxcdTcwRTZcXHU1M0NEXFx1OEZENFxcdTgzMDNcXHU4RDI5XFx1NzJBRlxcdTk5NkRcXHU2Q0RCXFx1NTc0QVxcdTgyQjNcXHU2NUI5XFx1ODBBQVxcdTYyM0ZcXHU5NjMyXFx1NTlBOFxcdTRFRkZcXHU4QkJGXFx1N0VCQVxcdTY1M0VcXHU4M0YyXFx1OTc1RVxcdTU1NjFcXHU5OERFXFx1ODBBNVxcdTUzMkFcXHU4QkZEXFx1NTQyMFxcdTgwQkFcXHU1RTlGXFx1NkNCOFxcdThEMzlcXHU4MkFDXFx1OTE1QVxcdTU0MjlcXHU2QzFCXFx1NTIwNlxcdTdFQjdcXHU1NzVGXFx1NzExQVxcdTZDN0VcXHU3Qzg5XFx1NTk0QlxcdTRFRkRcXHU1RkZGXFx1NjEyNFxcdTdDQUFcXHU0RTMwXFx1NUMwMVxcdTY3QUJcXHU4NzAyXFx1NUNGMFxcdTk1MEJcXHU5OENFXFx1NzVBRlxcdTcwRkRcXHU5MDIyXFx1NTFBRlxcdTdGMURcXHU4QkJEXFx1NTk0OVxcdTUxRTRcXHU0RjVCXFx1NTQyNlxcdTU5MkJcXHU2NTc3XFx1ODBBNFxcdTVCNzVcXHU2Mjc2XFx1NjJDMlxcdThGOTBcXHU1RTQ1XFx1NkMxRlxcdTdCMjZcXHU0RjBGXFx1NEZEOFxcdTY3MERcIl0sXG4gICAgICBbXCJiODQwXCIsIFwiXFx1N0FBM1xcdTdBQTRcXHU3QUE3XFx1N0FBOVxcdTdBQUFcXHU3QUFCXFx1N0FBRVwiLCA0LCBcIlxcdTdBQjRcIiwgMTAsIFwiXFx1N0FDMFwiLCAxMCwgXCJcXHU3QUNDXCIsIDksIFwiXFx1N0FEN1xcdTdBRDhcXHU3QURBXFx1N0FEQlxcdTdBRENcXHU3QUREXFx1N0FFMVxcdTdBRTJcXHU3QUU0XFx1N0FFN1wiLCA1LCBcIlxcdTdBRUVcXHU3QUYwXFx1N0FGMVxcdTdBRjJcXHU3QUYzXCJdLFxuICAgICAgW1wiYjg4MFwiLCBcIlxcdTdBRjRcIiwgNCwgXCJcXHU3QUZCXFx1N0FGQ1xcdTdBRkVcXHU3QjAwXFx1N0IwMVxcdTdCMDJcXHU3QjA1XFx1N0IwN1xcdTdCMDlcXHU3QjBDXFx1N0IwRFxcdTdCMEVcXHU3QjEwXFx1N0IxMlxcdTdCMTNcXHU3QjE2XFx1N0IxN1xcdTdCMThcXHU3QjFBXFx1N0IxQ1xcdTdCMURcXHU3QjFGXFx1N0IyMVxcdTdCMjJcXHU3QjIzXFx1N0IyN1xcdTdCMjlcXHU3QjJEXFx1NkQ2RVxcdTZEQUFcXHU3OThGXFx1ODhCMVxcdTVGMTdcXHU3NTJCXFx1NjI5QVxcdThGODVcXHU0RkVGXFx1OTFEQ1xcdTY1QTdcXHU4MTJGXFx1ODE1MVxcdTVFOUNcXHU4MTUwXFx1OEQ3NFxcdTUyNkZcXHU4OTg2XFx1OEQ0QlxcdTU5MERcXHU1MDg1XFx1NEVEOFxcdTk2MUNcXHU3MjM2XFx1ODE3OVxcdThEMUZcXHU1QkNDXFx1OEJBM1xcdTk2NDRcXHU1OTg3XFx1N0YxQVxcdTU0OTBcXHU1Njc2XFx1NTYwRVxcdThCRTVcXHU2NTM5XFx1Njk4MlxcdTk0OTlcXHU3NkQ2XFx1NkU4OVxcdTVFNzJcXHU3NTE4XFx1Njc0NlxcdTY3RDFcXHU3QUZGXFx1ODA5RFxcdThENzZcXHU2MTFGXFx1NzlDNlxcdTY1NjJcXHU4RDYzXFx1NTE4OFxcdTUyMUFcXHU5NEEyXFx1N0YzOFxcdTgwOUJcXHU3RUIyXFx1NUM5N1xcdTZFMkZcXHU2NzYwXFx1N0JEOVxcdTc2OEJcXHU5QUQ4XFx1ODE4RlxcdTdGOTRcXHU3Q0Q1XFx1NjQxRVxcdTk1NTBcXHU3QTNGXFx1NTQ0QVxcdTU0RTVcXHU2QjRDXFx1NjQwMVxcdTYyMDhcXHU5RTNEXFx1ODBGM1xcdTc1OTlcXHU1MjcyXFx1OTc2OVxcdTg0NUJcXHU2ODNDXFx1ODZFNFxcdTk2MDFcXHU5Njk0XFx1OTRFQ1xcdTRFMkFcXHU1NDA0XFx1N0VEOVxcdTY4MzlcXHU4RERGXFx1ODAxNVxcdTY2RjRcXHU1RTlBXFx1N0ZCOVwiXSxcbiAgICAgIFtcImI5NDBcIiwgXCJcXHU3QjJGXFx1N0IzMFxcdTdCMzJcXHU3QjM0XFx1N0IzNVxcdTdCMzZcXHU3QjM3XFx1N0IzOVxcdTdCM0JcXHU3QjNEXFx1N0IzRlwiLCA1LCBcIlxcdTdCNDZcXHU3QjQ4XFx1N0I0QVxcdTdCNERcXHU3QjRFXFx1N0I1M1xcdTdCNTVcXHU3QjU3XFx1N0I1OVxcdTdCNUNcXHU3QjVFXFx1N0I1RlxcdTdCNjFcXHU3QjYzXCIsIDEwLCBcIlxcdTdCNkZcXHU3QjcwXFx1N0I3M1xcdTdCNzRcXHU3Qjc2XFx1N0I3OFxcdTdCN0FcXHU3QjdDXFx1N0I3RFxcdTdCN0ZcXHU3QjgxXFx1N0I4MlxcdTdCODNcXHU3Qjg0XFx1N0I4NlwiLCA2LCBcIlxcdTdCOEVcXHU3QjhGXCJdLFxuICAgICAgW1wiYjk4MFwiLCBcIlxcdTdCOTFcXHU3QjkyXFx1N0I5M1xcdTdCOTZcXHU3Qjk4XFx1N0I5OVxcdTdCOUFcXHU3QjlCXFx1N0I5RVxcdTdCOUZcXHU3QkEwXFx1N0JBM1xcdTdCQTRcXHU3QkE1XFx1N0JBRVxcdTdCQUZcXHU3QkIwXFx1N0JCMlxcdTdCQjNcXHU3QkI1XFx1N0JCNlxcdTdCQjdcXHU3QkI5XCIsIDcsIFwiXFx1N0JDMlxcdTdCQzNcXHU3QkM0XFx1NTdDMlxcdTgwM0ZcXHU2ODk3XFx1NURFNVxcdTY1M0JcXHU1MjlGXFx1NjA2RFxcdTlGOUFcXHU0RjlCXFx1OEVBQ1xcdTUxNkNcXHU1QkFCXFx1NUYxM1xcdTVERTlcXHU2QzVFXFx1NjJGMVxcdThEMjFcXHU1MTcxXFx1OTRBOVxcdTUyRkVcXHU2QzlGXFx1ODJERlxcdTcyRDdcXHU1N0EyXFx1Njc4NFxcdThEMkRcXHU1OTFGXFx1OEY5Q1xcdTgzQzdcXHU1NDk1XFx1N0I4RFxcdTRGMzBcXHU2Q0JEXFx1NUI2NFxcdTU5RDFcXHU5RjEzXFx1NTNFNFxcdTg2Q0FcXHU5QUE4XFx1OEMzN1xcdTgwQTFcXHU2NTQ1XFx1OTg3RVxcdTU2RkFcXHU5NkM3XFx1NTIyRVxcdTc0RENcXHU1MjUwXFx1NUJFMVxcdTYzMDJcXHU4OTAyXFx1NEU1NlxcdTYyRDBcXHU2MDJBXFx1NjhGQVxcdTUxNzNcXHU1Qjk4XFx1NTFBMFxcdTg5QzJcXHU3QkExXFx1OTk4NlxcdTdGNTBcXHU2MEVGXFx1NzA0Q1xcdThEMkZcXHU1MTQ5XFx1NUU3RlxcdTkwMUJcXHU3NDcwXFx1ODlDNFxcdTU3MkRcXHU3ODQ1XFx1NUY1MlxcdTlGOUZcXHU5NUZBXFx1OEY2OFxcdTlCM0NcXHU4QkUxXFx1NzY3OFxcdTY4NDJcXHU2N0RDXFx1OERFQVxcdThEMzVcXHU1MjNEXFx1OEY4QVxcdTZFREFcXHU2OENEXFx1OTUwNVxcdTkwRURcXHU1NkZEXFx1Njc5Q1xcdTg4RjlcXHU4RkM3XFx1NTRDOFwiXSxcbiAgICAgIFtcImJhNDBcIiwgXCJcXHU3QkM1XFx1N0JDOFxcdTdCQzlcXHU3QkNBXFx1N0JDQlxcdTdCQ0RcXHU3QkNFXFx1N0JDRlxcdTdCRDBcXHU3QkQyXFx1N0JENFwiLCA0LCBcIlxcdTdCREJcXHU3QkRDXFx1N0JERVxcdTdCREZcXHU3QkUwXFx1N0JFMlxcdTdCRTNcXHU3QkU0XFx1N0JFN1xcdTdCRThcXHU3QkU5XFx1N0JFQlxcdTdCRUNcXHU3QkVEXFx1N0JFRlxcdTdCRjBcXHU3QkYyXCIsIDQsIFwiXFx1N0JGOFxcdTdCRjlcXHU3QkZBXFx1N0JGQlxcdTdCRkRcXHU3QkZGXCIsIDcsIFwiXFx1N0MwOFxcdTdDMDlcXHU3QzBBXFx1N0MwRFxcdTdDMEVcXHU3QzEwXCIsIDUsIFwiXFx1N0MxN1xcdTdDMThcXHU3QzE5XCJdLFxuICAgICAgW1wiYmE4MFwiLCBcIlxcdTdDMUFcIiwgNCwgXCJcXHU3QzIwXCIsIDUsIFwiXFx1N0MyOFxcdTdDMjlcXHU3QzJCXCIsIDEyLCBcIlxcdTdDMzlcIiwgNSwgXCJcXHU3QzQyXFx1OUFCOFxcdTVCNjlcXHU2RDc3XFx1NkMyNlxcdTRFQTVcXHU1QkIzXFx1OUE4N1xcdTkxNjNcXHU2MUE4XFx1OTBBRlxcdTk3RTlcXHU1NDJCXFx1NkRCNVxcdTVCRDJcXHU1MUZEXFx1NTU4QVxcdTdGNTVcXHU3RkYwXFx1NjRCQ1xcdTYzNERcXHU2NUYxXFx1NjFCRVxcdTYwOERcXHU3MTBBXFx1NkM1N1xcdTZDNDlcXHU1OTJGXFx1Njc2RFxcdTgyMkFcXHU1OEQ1XFx1NTY4RVxcdThDNkFcXHU2QkVCXFx1OTBERFxcdTU5N0RcXHU4MDE3XFx1NTNGN1xcdTZENjlcXHU1NDc1XFx1NTU5RFxcdTgzNzdcXHU4M0NGXFx1NjgzOFxcdTc5QkVcXHU1NDhDXFx1NEY1NVxcdTU0MDhcXHU3NkQyXFx1OEM4OVxcdTk2MDJcXHU2Q0IzXFx1NkRCOFxcdThENkJcXHU4OTEwXFx1OUU2NFxcdThEM0FcXHU1NjNGXFx1OUVEMVxcdTc1RDVcXHU1Rjg4XFx1NzJFMFxcdTYwNjhcXHU1NEZDXFx1NEVBOFxcdTZBMkFcXHU4ODYxXFx1NjA1MlxcdThGNzBcXHU1NEM0XFx1NzBEOFxcdTg2NzlcXHU5RTNGXFx1NkQyQVxcdTVCOEZcXHU1RjE4XFx1N0VBMlxcdTU1ODlcXHU0RkFGXFx1NzMzNFxcdTU0M0NcXHU1MzlBXFx1NTAxOVxcdTU0MEVcXHU1NDdDXFx1NEU0RVxcdTVGRkRcXHU3NDVBXFx1NThGNlxcdTg0NkJcXHU4MEUxXFx1ODc3NFxcdTcyRDBcXHU3Q0NBXFx1NkU1NlwiXSxcbiAgICAgIFtcImJiNDBcIiwgXCJcXHU3QzQzXCIsIDksIFwiXFx1N0M0RVwiLCAzNiwgXCJcXHU3Qzc1XCIsIDUsIFwiXFx1N0M3RVwiLCA5XSxcbiAgICAgIFtcImJiODBcIiwgXCJcXHU3Qzg4XFx1N0M4QVwiLCA2LCBcIlxcdTdDOTNcXHU3Qzk0XFx1N0M5NlxcdTdDOTlcXHU3QzlBXFx1N0M5QlxcdTdDQTBcXHU3Q0ExXFx1N0NBM1xcdTdDQTZcXHU3Q0E3XFx1N0NBOFxcdTdDQTlcXHU3Q0FCXFx1N0NBQ1xcdTdDQURcXHU3Q0FGXFx1N0NCMFxcdTdDQjRcIiwgNCwgXCJcXHU3Q0JBXFx1N0NCQlxcdTVGMjdcXHU4NjRFXFx1NTUyQ1xcdTYyQTRcXHU0RTkyXFx1NkNBQVxcdTYyMzdcXHU4MkIxXFx1NTREN1xcdTUzNEVcXHU3MzNFXFx1NkVEMVxcdTc1M0JcXHU1MjEyXFx1NTMxNlxcdThCRERcXHU2OUQwXFx1NUY4QVxcdTYwMDBcXHU2REVFXFx1NTc0RlxcdTZCMjJcXHU3M0FGXFx1Njg1M1xcdThGRDhcXHU3RjEzXFx1NjM2MlxcdTYwQTNcXHU1NTI0XFx1NzVFQVxcdThDNjJcXHU3MTE1XFx1NkRBM1xcdTVCQTZcXHU1RTdCXFx1ODM1MlxcdTYxNENcXHU5RUM0XFx1NzhGQVxcdTg3NTdcXHU3QzI3XFx1NzY4N1xcdTUxRjBcXHU2MEY2XFx1NzE0Q1xcdTY2NDNcXHU1RTRDXFx1NjA0RFxcdThDMEVcXHU3MDcwXFx1NjMyNVxcdThGODlcXHU1RkJEXFx1NjA2MlxcdTg2RDRcXHU1NkRFXFx1NkJDMVxcdTYwOTRcXHU2MTY3XFx1NTM0OVxcdTYwRTBcXHU2NjY2XFx1OEQzRlxcdTc5RkRcXHU0RjFBXFx1NzBFOVxcdTZDNDdcXHU4QkIzXFx1OEJGMlxcdTdFRDhcXHU4MzY0XFx1NjYwRlxcdTVBNUFcXHU5QjQyXFx1NkQ1MVxcdTZERjdcXHU4QzQxXFx1NkQzQlxcdTRGMTlcXHU3MDZCXFx1ODNCN1xcdTYyMTZcXHU2MEQxXFx1OTcwRFxcdThEMjdcXHU3OTc4XFx1NTFGQlxcdTU3M0VcXHU1N0ZBXFx1NjczQVxcdTc1NzhcXHU3QTNEXFx1NzlFRlxcdTdCOTVcIl0sXG4gICAgICBbXCJiYzQwXCIsIFwiXFx1N0NCRlxcdTdDQzBcXHU3Q0MyXFx1N0NDM1xcdTdDQzRcXHU3Q0M2XFx1N0NDOVxcdTdDQ0JcXHU3Q0NFXCIsIDYsIFwiXFx1N0NEOFxcdTdDREFcXHU3Q0RCXFx1N0NERFxcdTdDREVcXHU3Q0UxXCIsIDYsIFwiXFx1N0NFOVwiLCA1LCBcIlxcdTdDRjBcIiwgNywgXCJcXHU3Q0Y5XFx1N0NGQVxcdTdDRkNcIiwgMTMsIFwiXFx1N0QwQlwiLCA1XSxcbiAgICAgIFtcImJjODBcIiwgXCJcXHU3RDExXCIsIDE0LCBcIlxcdTdEMjFcXHU3RDIzXFx1N0QyNFxcdTdEMjVcXHU3RDI2XFx1N0QyOFxcdTdEMjlcXHU3RDJBXFx1N0QyQ1xcdTdEMkRcXHU3RDJFXFx1N0QzMFwiLCA2LCBcIlxcdTgwOENcXHU5OTY1XFx1OEZGOVxcdTZGQzBcXHU4QkE1XFx1OUUyMVxcdTU5RUNcXHU3RUU5XFx1N0YwOVxcdTU0MDlcXHU2NzgxXFx1NjhEOFxcdThGOTFcXHU3QzREXFx1OTZDNlxcdTUzQ0FcXHU2MDI1XFx1NzVCRVxcdTZDNzJcXHU1MzczXFx1NUFDOVxcdTdFQTdcXHU2MzI0XFx1NTFFMFxcdTgxMEFcXHU1REYxXFx1ODRERlxcdTYyODBcXHU1MTgwXFx1NUI2M1xcdTRGMEVcXHU3OTZEXFx1NTI0MlxcdTYwQjhcXHU2RDRFXFx1NUJDNFxcdTVCQzJcXHU4QkExXFx1OEJCMFxcdTY1RTJcXHU1RkNDXFx1OTY0NVxcdTU5OTNcXHU3RUU3XFx1N0VBQVxcdTU2MDlcXHU2N0I3XFx1NTkzOVxcdTRGNzNcXHU1QkI2XFx1NTJBMFxcdTgzNUFcXHU5ODhBXFx1OEQzRVxcdTc1MzJcXHU5NEJFXFx1NTA0N1xcdTdBM0NcXHU0RUY3XFx1NjdCNlxcdTlBN0VcXHU1QUMxXFx1NkI3Q1xcdTc2RDFcXHU1NzVBXFx1NUMxNlxcdTdCM0FcXHU5NUY0XFx1NzE0RVxcdTUxN0NcXHU4MEE5XFx1ODI3MFxcdTU5NzhcXHU3RjA0XFx1ODMyN1xcdTY4QzBcXHU2N0VDXFx1NzhCMVxcdTc4NzdcXHU2MkUzXFx1NjM2MVxcdTdCODBcXHU0RkVEXFx1NTI2QVxcdTUxQ0ZcXHU4MzUwXFx1NjlEQlxcdTkyNzRcXHU4REY1XFx1OEQzMVxcdTg5QzFcXHU5NTJFXFx1N0JBRFxcdTRFRjZcIl0sXG4gICAgICBbXCJiZDQwXCIsIFwiXFx1N0QzN1wiLCA1NCwgXCJcXHU3RDZGXCIsIDddLFxuICAgICAgW1wiYmQ4MFwiLCBcIlxcdTdENzhcIiwgMzIsIFwiXFx1NTA2NVxcdTgyMzBcXHU1MjUxXFx1OTk2RlxcdTZFMTBcXHU2RTg1XFx1NkRBN1xcdTVFRkFcXHU1MEY1XFx1NTlEQ1xcdTVDMDZcXHU2RDQ2XFx1NkM1RlxcdTc1ODZcXHU4NDhCXFx1Njg2OFxcdTU5NTZcXHU4QkIyXFx1NTMyMFxcdTkxNzFcXHU5NjREXFx1ODU0OVxcdTY5MTJcXHU3OTAxXFx1NzEyNlxcdTgwRjZcXHU0RUE0XFx1OTBDQVxcdTZENDdcXHU5QTg0XFx1NUEwN1xcdTU2QkNcXHU2NDA1XFx1OTRGMFxcdTc3RUJcXHU0RkE1XFx1ODExQVxcdTcyRTFcXHU4OUQyXFx1OTk3QVxcdTdGMzRcXHU3RURFXFx1NTI3RlxcdTY1NTlcXHU5MTc1XFx1OEY3RlxcdThGODNcXHU1M0VCXFx1N0E5NlxcdTYzRURcXHU2M0E1XFx1NzY4NlxcdTc5RjhcXHU4ODU3XFx1OTYzNlxcdTYyMkFcXHU1MkFCXFx1ODI4MlxcdTY4NTRcXHU2NzcwXFx1NjM3N1xcdTc3NkJcXHU3QUVEXFx1NkQwMVxcdTdFRDNcXHU4OUUzXFx1NTlEMFxcdTYyMTJcXHU4NUM5XFx1ODJBNVxcdTc1NENcXHU1MDFGXFx1NEVDQlxcdTc1QTVcXHU4QkVCXFx1NUM0QVxcdTVERkVcXHU3QjRCXFx1NjVBNFxcdTkxRDFcXHU0RUNBXFx1NkQyNVxcdTg5NUZcXHU3RDI3XFx1OTUyNlxcdTRFQzVcXHU4QzI4XFx1OEZEQlxcdTk3NzNcXHU2NjRCXFx1Nzk4MVxcdThGRDFcXHU3MEVDXFx1NkQ3OFwiXSxcbiAgICAgIFtcImJlNDBcIiwgXCJcXHU3RDk5XCIsIDEyLCBcIlxcdTdEQTdcIiwgNiwgXCJcXHU3REFGXCIsIDQyXSxcbiAgICAgIFtcImJlODBcIiwgXCJcXHU3RERBXCIsIDMyLCBcIlxcdTVDM0RcXHU1MkIyXFx1ODM0NlxcdTUxNjJcXHU4MzBFXFx1Nzc1QlxcdTY2NzZcXHU5Q0I4XFx1NEVBQ1xcdTYwQ0FcXHU3Q0JFXFx1N0NCM1xcdTdFQ0ZcXHU0RTk1XFx1OEI2NlxcdTY2NkZcXHU5ODg4XFx1OTc1OVxcdTU4ODNcXHU2NTZDXFx1OTU1Q1xcdTVGODRcXHU3NUM5XFx1OTc1NlxcdTdBREZcXHU3QURFXFx1NTFDMFxcdTcwQUZcXHU3QTk4XFx1NjNFQVxcdTdBNzZcXHU3RUEwXFx1NzM5NlxcdTk3RURcXHU0RTQ1XFx1NzA3OFxcdTRFNURcXHU5MTUyXFx1NTNBOVxcdTY1NTFcXHU2NUU3XFx1ODFGQ1xcdTgyMDVcXHU1NDhFXFx1NUMzMVxcdTc1OUFcXHU5N0EwXFx1NjJEOFxcdTcyRDlcXHU3NUJEXFx1NUM0NVxcdTlBNzlcXHU4M0NBXFx1NUM0MFxcdTU0ODBcXHU3N0U5XFx1NEUzRVxcdTZDQUVcXHU4MDVBXFx1NjJEMlxcdTYzNkVcXHU1REU4XFx1NTE3N1xcdThERERcXHU4RTFFXFx1OTUyRlxcdTRGRjFcXHU1M0U1XFx1NjBFN1xcdTcwQUNcXHU1MjY3XFx1NjM1MFxcdTlFNDNcXHU1QTFGXFx1NTAyNlxcdTc3MzdcXHU1Mzc3XFx1N0VFMlxcdTY0ODVcXHU2NTJCXFx1NjI4OVxcdTYzOThcXHU1MDE0XFx1NzIzNVxcdTg5QzlcXHU1MUIzXFx1OEJDMFxcdTdFRERcXHU1NzQ3XFx1ODNDQ1xcdTk0QTdcXHU1MTlCXFx1NTQxQlxcdTVDRkJcIl0sXG4gICAgICBbXCJiZjQwXCIsIFwiXFx1N0RGQlwiLCA2Ml0sXG4gICAgICBbXCJiZjgwXCIsIFwiXFx1N0UzQVxcdTdFM0NcIiwgNCwgXCJcXHU3RTQyXCIsIDQsIFwiXFx1N0U0OFwiLCAyMSwgXCJcXHU0RkNBXFx1N0FFM1xcdTZENUFcXHU5MEUxXFx1OUE4RlxcdTU1ODBcXHU1NDk2XFx1NTM2MVxcdTU0QUZcXHU1RjAwXFx1NjNFOVxcdTY5NzdcXHU1MUVGXFx1NjE2OFxcdTUyMEFcXHU1ODJBXFx1NTJEOFxcdTU3NEVcXHU3ODBEXFx1NzcwQlxcdTVFQjdcXHU2MTc3XFx1N0NFMFxcdTYyNUJcXHU2Mjk3XFx1NEVBMlxcdTcwOTVcXHU4MDAzXFx1NjJGN1xcdTcwRTRcXHU5NzYwXFx1NTc3N1xcdTgyREJcXHU2N0VGXFx1NjhGNVxcdTc4RDVcXHU5ODk3XFx1NzlEMVxcdTU4RjNcXHU1NEIzXFx1NTNFRlxcdTZFMzRcXHU1MTRCXFx1NTIzQlxcdTVCQTJcXHU4QkZFXFx1ODBBRlxcdTU1NDNcXHU1N0E2XFx1NjA3M1xcdTU3NTFcXHU1NDJEXFx1N0E3QVxcdTYwNTBcXHU1QjU0XFx1NjNBN1xcdTYyQTBcXHU1M0UzXFx1NjI2M1xcdTVCQzdcXHU2N0FGXFx1NTRFRFxcdTdBOUZcXHU4MkU2XFx1OTE3N1xcdTVFOTNcXHU4OEU0XFx1NTkzOFxcdTU3QUVcXHU2MzBFXFx1OERFOFxcdTgwRUZcXHU1NzU3XFx1N0I3N1xcdTRGQTlcXHU1RkVCXFx1NUJCRFxcdTZCM0VcXHU1MzIxXFx1N0I1MFxcdTcyQzJcXHU2ODQ2XFx1NzdGRlxcdTc3MzZcXHU2NUY3XFx1NTFCNVxcdTRFOEZcXHU3NkQ0XFx1NUNCRlxcdTdBQTVcXHU4NDc1XFx1NTk0RVxcdTlCNDFcXHU1MDgwXCJdLFxuICAgICAgW1wiYzA0MFwiLCBcIlxcdTdFNUVcIiwgMzUsIFwiXFx1N0U4M1wiLCAyMywgXCJcXHU3RTlDXFx1N0U5RFxcdTdFOUVcIl0sXG4gICAgICBbXCJjMDgwXCIsIFwiXFx1N0VBRVxcdTdFQjRcXHU3RUJCXFx1N0VCQ1xcdTdFRDZcXHU3RUU0XFx1N0VFQ1xcdTdFRjlcXHU3RjBBXFx1N0YxMFxcdTdGMUVcXHU3RjM3XFx1N0YzOVxcdTdGM0JcIiwgNiwgXCJcXHU3RjQzXFx1N0Y0NlwiLCA5LCBcIlxcdTdGNTJcXHU3RjUzXFx1OTk4OFxcdTYxMjdcXHU2RTgzXFx1NTc2NFxcdTY2MDZcXHU2MzQ2XFx1NTZGMFxcdTYyRUNcXHU2MjY5XFx1NUVEM1xcdTk2MTRcXHU1NzgzXFx1NjJDOVxcdTU1ODdcXHU4NzIxXFx1ODE0QVxcdThGQTNcXHU1NTY2XFx1ODNCMVxcdTY3NjVcXHU4RDU2XFx1ODRERFxcdTVBNkFcXHU2ODBGXFx1NjJFNlxcdTdCRUVcXHU5NjExXFx1NTE3MFxcdTZGOUNcXHU4QzMwXFx1NjNGRFxcdTg5QzhcXHU2MUQyXFx1N0YwNlxcdTcwQzJcXHU2RUU1XFx1NzQwNVxcdTY5OTRcXHU3MkZDXFx1NUVDQVxcdTkwQ0VcXHU2NzE3XFx1NkQ2QVxcdTYzNUVcXHU1MkIzXFx1NzI2MlxcdTgwMDFcXHU0RjZDXFx1NTlFNVxcdTkxNkFcXHU3MEQ5XFx1NkQ5RFxcdTUyRDJcXHU0RTUwXFx1OTZGN1xcdTk1NkRcXHU4NTdFXFx1NzhDQVxcdTdEMkZcXHU1MTIxXFx1NTc5MlxcdTY0QzJcXHU4MDhCXFx1N0M3QlxcdTZDRUFcXHU2OEYxXFx1Njk1RVxcdTUxQjdcXHU1Mzk4XFx1NjhBOFxcdTcyODFcXHU5RUNFXFx1N0JGMVxcdTcyRjhcXHU3OUJCXFx1NkYxM1xcdTc0MDZcXHU2NzRFXFx1OTFDQ1xcdTlDQTRcXHU3OTNDXFx1ODM4OVxcdTgzNTRcXHU1NDBGXFx1NjgxN1xcdTRFM0RcXHU1Mzg5XFx1NTJCMVxcdTc4M0VcXHU1Mzg2XFx1NTIyOVxcdTUwODhcXHU0RjhCXFx1NEZEMFwiXSxcbiAgICAgIFtcImMxNDBcIiwgXCJcXHU3RjU2XFx1N0Y1OVxcdTdGNUJcXHU3RjVDXFx1N0Y1RFxcdTdGNUVcXHU3RjYwXFx1N0Y2M1wiLCA0LCBcIlxcdTdGNkJcXHU3RjZDXFx1N0Y2RFxcdTdGNkZcXHU3RjcwXFx1N0Y3M1xcdTdGNzVcXHU3Rjc2XFx1N0Y3N1xcdTdGNzhcXHU3RjdBXFx1N0Y3QlxcdTdGN0NcXHU3RjdEXFx1N0Y3RlxcdTdGODBcXHU3RjgyXCIsIDcsIFwiXFx1N0Y4QlxcdTdGOERcXHU3RjhGXCIsIDQsIFwiXFx1N0Y5NVwiLCA0LCBcIlxcdTdGOUJcXHU3RjlDXFx1N0ZBMFxcdTdGQTJcXHU3RkEzXFx1N0ZBNVxcdTdGQTZcXHU3RkE4XCIsIDYsIFwiXFx1N0ZCMVwiXSxcbiAgICAgIFtcImMxODBcIiwgXCJcXHU3RkIzXCIsIDQsIFwiXFx1N0ZCQVxcdTdGQkJcXHU3RkJFXFx1N0ZDMFxcdTdGQzJcXHU3RkMzXFx1N0ZDNFxcdTdGQzZcXHU3RkM3XFx1N0ZDOFxcdTdGQzlcXHU3RkNCXFx1N0ZDRFxcdTdGQ0ZcIiwgNCwgXCJcXHU3RkQ2XFx1N0ZEN1xcdTdGRDlcIiwgNSwgXCJcXHU3RkUyXFx1N0ZFM1xcdTc1RTJcXHU3QUNCXFx1N0M5MlxcdTZDQTVcXHU5NkI2XFx1NTI5QlxcdTc0ODNcXHU1NEU5XFx1NEZFOVxcdTgwNTRcXHU4M0IyXFx1OEZERVxcdTk1NzBcXHU1RUM5XFx1NjAxQ1xcdTZEOUZcXHU1RTE4XFx1NjU1QlxcdTgxMzhcXHU5NEZFXFx1NjA0QlxcdTcwQkNcXHU3RUMzXFx1N0NBRVxcdTUxQzlcXHU2ODgxXFx1N0NCMVxcdTgyNkZcXHU0RTI0XFx1OEY4NlxcdTkxQ0ZcXHU2NjdFXFx1NEVBRVxcdThDMDVcXHU2NEE5XFx1ODA0QVxcdTUwREFcXHU3NTk3XFx1NzFDRVxcdTVCRTVcXHU4RkJEXFx1NkY2NlxcdTRFODZcXHU2NDgyXFx1OTU2M1xcdTVFRDZcXHU2NTk5XFx1NTIxN1xcdTg4QzJcXHU3MEM4XFx1NTJBM1xcdTczMEVcXHU3NDMzXFx1Njc5N1xcdTc4RjdcXHU5NzE2XFx1NEUzNFxcdTkwQkJcXHU5Q0RFXFx1NkRDQlxcdTUxREJcXHU4RDQxXFx1NTQxRFxcdTYyQ0VcXHU3M0IyXFx1ODNGMVxcdTk2RjZcXHU5Rjg0XFx1OTRDM1xcdTRGMzZcXHU3RjlBXFx1NTFDQ1xcdTcwNzVcXHU5Njc1XFx1NUNBRFxcdTk4ODZcXHU1M0U2XFx1NEVFNFxcdTZFOUNcXHU3NDA5XFx1NjlCNFxcdTc4NkJcXHU5OThGXFx1NzU1OVxcdTUyMThcXHU3NjI0XFx1NkQ0MVxcdTY3RjNcXHU1MTZEXFx1OUY5OVxcdTgwNEJcXHU1NDk5XFx1N0IzQ1xcdTdBQkZcIl0sXG4gICAgICBbXCJjMjQwXCIsIFwiXFx1N0ZFNFxcdTdGRTdcXHU3RkU4XFx1N0ZFQVxcdTdGRUJcXHU3RkVDXFx1N0ZFRFxcdTdGRUZcXHU3RkYyXFx1N0ZGNFwiLCA2LCBcIlxcdTdGRkRcXHU3RkZFXFx1N0ZGRlxcdTgwMDJcXHU4MDA3XFx1ODAwOFxcdTgwMDlcXHU4MDBBXFx1ODAwRVxcdTgwMEZcXHU4MDExXFx1ODAxM1xcdTgwMUFcXHU4MDFCXFx1ODAxRFxcdTgwMUVcXHU4MDFGXFx1ODAyMVxcdTgwMjNcXHU4MDI0XFx1ODAyQlwiLCA1LCBcIlxcdTgwMzJcXHU4MDM0XFx1ODAzOVxcdTgwM0FcXHU4MDNDXFx1ODAzRVxcdTgwNDBcXHU4MDQxXFx1ODA0NFxcdTgwNDVcXHU4MDQ3XFx1ODA0OFxcdTgwNDlcXHU4MDRFXFx1ODA0RlxcdTgwNTBcXHU4MDUxXFx1ODA1M1xcdTgwNTVcXHU4MDU2XFx1ODA1N1wiXSxcbiAgICAgIFtcImMyODBcIiwgXCJcXHU4MDU5XFx1ODA1QlwiLCAxMywgXCJcXHU4MDZCXCIsIDUsIFwiXFx1ODA3MlwiLCAxMSwgXCJcXHU5Njg2XFx1NTc4NFxcdTYyRTJcXHU5NjQ3XFx1Njk3Q1xcdTVBMDRcXHU2NDAyXFx1N0JEM1xcdTZGMEZcXHU5NjRCXFx1ODJBNlxcdTUzNjJcXHU5ODg1XFx1NUU5MFxcdTcwODlcXHU2M0IzXFx1NTM2NFxcdTg2NEZcXHU5QzgxXFx1OUU5M1xcdTc4OENcXHU5NzMyXFx1OERFRlxcdThENDJcXHU5RTdGXFx1NkY1RVxcdTc5ODRcXHU1RjU1XFx1OTY0NlxcdTYyMkVcXHU5QTc0XFx1NTQxNVxcdTk0RERcXHU0RkEzXFx1NjVDNVxcdTVDNjVcXHU1QzYxXFx1N0YxNVxcdTg2NTFcXHU2QzJGXFx1NUY4QlxcdTczODdcXHU2RUU0XFx1N0VGRlxcdTVDRTZcXHU2MzFCXFx1NUI2QVxcdTZFRTZcXHU1Mzc1XFx1NEU3MVxcdTYzQTBcXHU3NTY1XFx1NjJBMVxcdThGNkVcXHU0RjI2XFx1NEVEMVxcdTZDQTZcXHU3RUI2XFx1OEJCQVxcdTg0MURcXHU4N0JBXFx1N0Y1N1xcdTkwM0JcXHU5NTIzXFx1N0JBOVxcdTlBQTFcXHU4OEY4XFx1ODQzRFxcdTZEMUJcXHU5QTg2XFx1N0VEQ1xcdTU5ODhcXHU5RUJCXFx1NzM5QlxcdTc4MDFcXHU4NjgyXFx1OUE2Q1xcdTlBODJcXHU1NjFCXFx1NTQxN1xcdTU3Q0JcXHU0RTcwXFx1OUVBNlxcdTUzNTZcXHU4RkM4XFx1ODEwOVxcdTc3OTJcXHU5OTkyXFx1ODZFRVxcdTZFRTFcXHU4NTEzXFx1NjZGQ1xcdTYxNjJcXHU2RjJCXCJdLFxuICAgICAgW1wiYzM0MFwiLCBcIlxcdTgwN0VcXHU4MDgxXFx1ODA4MlxcdTgwODVcXHU4MDg4XFx1ODA4QVxcdTgwOERcIiwgNSwgXCJcXHU4MDk0XFx1ODA5NVxcdTgwOTdcXHU4MDk5XFx1ODA5RVxcdTgwQTNcXHU4MEE2XFx1ODBBN1xcdTgwQThcXHU4MEFDXFx1ODBCMFxcdTgwQjNcXHU4MEI1XFx1ODBCNlxcdTgwQjhcXHU4MEI5XFx1ODBCQlxcdTgwQzVcXHU4MEM3XCIsIDQsIFwiXFx1ODBDRlwiLCA2LCBcIlxcdTgwRDhcXHU4MERGXFx1ODBFMFxcdTgwRTJcXHU4MEUzXFx1ODBFNlxcdTgwRUVcXHU4MEY1XFx1ODBGN1xcdTgwRjlcXHU4MEZCXFx1ODBGRVxcdTgwRkZcXHU4MTAwXFx1ODEwMVxcdTgxMDNcXHU4MTA0XFx1ODEwNVxcdTgxMDdcXHU4MTA4XFx1ODEwQlwiXSxcbiAgICAgIFtcImMzODBcIiwgXCJcXHU4MTBDXFx1ODExNVxcdTgxMTdcXHU4MTE5XFx1ODExQlxcdTgxMUNcXHU4MTFEXFx1ODExRlwiLCAxMiwgXCJcXHU4MTJEXFx1ODEyRVxcdTgxMzBcXHU4MTMzXFx1ODEzNFxcdTgxMzVcXHU4MTM3XFx1ODEzOVwiLCA0LCBcIlxcdTgxM0ZcXHU4QzI5XFx1ODI5MlxcdTgzMkJcXHU3NkYyXFx1NkMxM1xcdTVGRDlcXHU4M0JEXFx1NzMyQlxcdTgzMDVcXHU5NTFBXFx1NkJEQlxcdTc3REJcXHU5NEM2XFx1NTM2RlxcdTgzMDJcXHU1MTkyXFx1NUUzRFxcdThDOENcXHU4RDM4XFx1NEU0OFxcdTczQUJcXHU2NzlBXFx1Njg4NVxcdTkxNzZcXHU5NzA5XFx1NzE2NFxcdTZDQTFcXHU3NzA5XFx1NUE5MlxcdTk1NDFcXHU2QkNGXFx1N0Y4RVxcdTY2MjdcXHU1QkQwXFx1NTlCOVxcdTVBOUFcXHU5NUU4XFx1OTVGN1xcdTRFRUNcXHU4NDBDXFx1ODQ5OVxcdTZBQUNcXHU3NkRGXFx1OTUzMFxcdTczMUJcXHU2OEE2XFx1NUI1RlxcdTc3MkZcXHU5MTlBXFx1OTc2MVxcdTdDRENcXHU4RkY3XFx1OEMxQ1xcdTVGMjVcXHU3QzczXFx1NzlEOFxcdTg5QzVcXHU2Q0NDXFx1ODcxQ1xcdTVCQzZcXHU1RTQyXFx1NjhDOVxcdTc3MjBcXHU3RUY1XFx1NTE5NVxcdTUxNERcXHU1MkM5XFx1NUEyOVxcdTdGMDVcXHU5NzYyXFx1ODJEN1xcdTYzQ0ZcXHU3Nzg0XFx1ODVEMFxcdTc5RDJcXHU2RTNBXFx1NUU5OVxcdTU5OTlcXHU4NTExXFx1NzA2RFxcdTZDMTFcXHU2MkJGXFx1NzZCRlxcdTY1NEZcXHU2MEFGXFx1OTVGRFxcdTY2MEVcXHU4NzlGXFx1OUUyM1xcdTk0RURcXHU1NDBEXFx1NTQ3RFxcdThDMkNcXHU2NDc4XCJdLFxuICAgICAgW1wiYzQ0MFwiLCBcIlxcdTgxNDBcIiwgNSwgXCJcXHU4MTQ3XFx1ODE0OVxcdTgxNERcXHU4MTRFXFx1ODE0RlxcdTgxNTJcXHU4MTU2XFx1ODE1N1xcdTgxNThcXHU4MTVCXCIsIDQsIFwiXFx1ODE2MVxcdTgxNjJcXHU4MTYzXFx1ODE2NFxcdTgxNjZcXHU4MTY4XFx1ODE2QVxcdTgxNkJcXHU4MTZDXFx1ODE2RlxcdTgxNzJcXHU4MTczXFx1ODE3NVxcdTgxNzZcXHU4MTc3XFx1ODE3OFxcdTgxODFcXHU4MTgzXCIsIDQsIFwiXFx1ODE4OVxcdTgxOEJcXHU4MThDXFx1ODE4RFxcdTgxOEVcXHU4MTkwXFx1ODE5MlwiLCA1LCBcIlxcdTgxOTlcXHU4MTlBXFx1ODE5RVwiLCA0LCBcIlxcdTgxQTRcXHU4MUE1XCJdLFxuICAgICAgW1wiYzQ4MFwiLCBcIlxcdTgxQTdcXHU4MUE5XFx1ODFBQlwiLCA3LCBcIlxcdTgxQjRcIiwgNSwgXCJcXHU4MUJDXFx1ODFCRFxcdTgxQkVcXHU4MUJGXFx1ODFDNFxcdTgxQzVcXHU4MUM3XFx1ODFDOFxcdTgxQzlcXHU4MUNCXFx1ODFDRFwiLCA2LCBcIlxcdTY0NzlcXHU4NjExXFx1NkEyMVxcdTgxOUNcXHU3OEU4XFx1NjQ2OVxcdTlCNTRcXHU2MkI5XFx1NjcyQlxcdTgzQUJcXHU1OEE4XFx1OUVEOFxcdTZDQUJcXHU2RjIwXFx1NUJERVxcdTk2NENcXHU4QzBCXFx1NzI1RlxcdTY3RDBcXHU2MkM3XFx1NzI2MVxcdTRFQTlcXHU1OUM2XFx1NkJDRFxcdTU4OTNcXHU2NkFFXFx1NUU1NVxcdTUyREZcXHU2MTU1XFx1NjcyOFxcdTc2RUVcXHU3NzY2XFx1NzI2N1xcdTdBNDZcXHU2MkZGXFx1NTRFQVxcdTU0NTBcXHU5NEEwXFx1OTBBM1xcdTVBMUNcXHU3RUIzXFx1NkMxNlxcdTRFNDNcXHU1OTc2XFx1ODAxMFxcdTU5NDhcXHU1MzU3XFx1NzUzN1xcdTk2QkVcXHU1NkNBXFx1NjMyMFxcdTgxMTFcXHU2MDdDXFx1OTVGOVxcdTZERDZcXHU1NDYyXFx1OTk4MVxcdTUxODVcXHU1QUU5XFx1ODBGRFxcdTU5QUVcXHU5NzEzXFx1NTAyQVxcdTZDRTVcXHU1QzNDXFx1NjJERlxcdTRGNjBcXHU1MzNGXFx1ODE3QlxcdTkwMDZcXHU2RUJBXFx1ODUyQlxcdTYyQzhcXHU1RTc0XFx1NzhCRVxcdTY0QjVcXHU2MzdCXFx1NUZGNVxcdTVBMThcXHU5MTdGXFx1OUUxRlxcdTVDM0ZcXHU2MzRGXFx1ODA0MlxcdTVCN0RcXHU1NTZFXFx1OTU0QVxcdTk1NERcXHU2RDg1XFx1NjBBOFxcdTY3RTBcXHU3MkRFXFx1NTFERFxcdTVCODFcIl0sXG4gICAgICBbXCJjNTQwXCIsIFwiXFx1ODFENFwiLCAxNCwgXCJcXHU4MUU0XFx1ODFFNVxcdTgxRTZcXHU4MUU4XFx1ODFFOVxcdTgxRUJcXHU4MUVFXCIsIDQsIFwiXFx1ODFGNVwiLCA1LCBcIlxcdTgxRkRcXHU4MUZGXFx1ODIwM1xcdTgyMDdcIiwgNCwgXCJcXHU4MjBFXFx1ODIwRlxcdTgyMTFcXHU4MjEzXFx1ODIxNVwiLCA1LCBcIlxcdTgyMURcXHU4MjIwXFx1ODIyNFxcdTgyMjVcXHU4MjI2XFx1ODIyN1xcdTgyMjlcXHU4MjJFXFx1ODIzMlxcdTgyM0FcXHU4MjNDXFx1ODIzRFxcdTgyM0ZcIl0sXG4gICAgICBbXCJjNTgwXCIsIFwiXFx1ODI0MFxcdTgyNDFcXHU4MjQyXFx1ODI0M1xcdTgyNDVcXHU4MjQ2XFx1ODI0OFxcdTgyNEFcXHU4MjRDXFx1ODI0RFxcdTgyNEVcXHU4MjUwXCIsIDcsIFwiXFx1ODI1OVxcdTgyNUJcXHU4MjVDXFx1ODI1RFxcdTgyNUVcXHU4MjYwXCIsIDcsIFwiXFx1ODI2OVxcdTYyRTdcXHU2Q0RFXFx1NzI1QlxcdTYyNkRcXHU5NEFFXFx1N0VCRFxcdTgxMTNcXHU2RDUzXFx1NTE5Q1xcdTVGMDRcXHU1OTc0XFx1NTJBQVxcdTYwMTJcXHU1OTczXFx1NjY5NlxcdTg2NTBcXHU3NTlGXFx1NjMyQVxcdTYxRTZcXHU3Q0VGXFx1OEJGQVxcdTU0RTZcXHU2QjI3XFx1OUUyNVxcdTZCQjRcXHU4NUQ1XFx1NTQ1NVxcdTUwNzZcXHU2Q0E0XFx1NTU2QVxcdThEQjRcXHU3MjJDXFx1NUUxNVxcdTYwMTVcXHU3NDM2XFx1NjJDRFxcdTYzOTJcXHU3MjRDXFx1NUY5OFxcdTZFNDNcXHU2RDNFXFx1NjUwMFxcdTZGNThcXHU3NkQ4XFx1NzhEMFxcdTc2RkNcXHU3NTU0XFx1NTIyNFxcdTUzREJcXHU0RTUzXFx1NUU5RVxcdTY1QzFcXHU4MDJBXFx1ODBENlxcdTYyOUJcXHU1NDg2XFx1NTIyOFxcdTcwQUVcXHU4ODhEXFx1OEREMVxcdTZDRTFcXHU1NDc4XFx1ODBEQVxcdTU3RjlcXHU4OEY0XFx1OEQ1NFxcdTk2NkFcXHU5MTREXFx1NEY2OVxcdTZDOUJcXHU1NUI3XFx1NzZDNlxcdTc4MzBcXHU2MkE4XFx1NzBGOVxcdTZGOEVcXHU1RjZEXFx1ODRFQ1xcdTY4REFcXHU3ODdDXFx1N0JGN1xcdTgxQThcXHU2NzBCXFx1OUU0RlxcdTYzNjdcXHU3OEIwXFx1NTc2RlxcdTc4MTJcXHU5NzM5XFx1NjI3OVxcdTYyQUJcXHU1Mjg4XFx1NzQzNVxcdTZCRDdcIl0sXG4gICAgICBbXCJjNjQwXCIsIFwiXFx1ODI2QVxcdTgyNkJcXHU4MjZDXFx1ODI2RFxcdTgyNzFcXHU4Mjc1XFx1ODI3NlxcdTgyNzdcXHU4Mjc4XFx1ODI3QlxcdTgyN0NcXHU4MjgwXFx1ODI4MVxcdTgyODNcXHU4Mjg1XFx1ODI4NlxcdTgyODdcXHU4Mjg5XFx1ODI4Q1xcdTgyOTBcXHU4MjkzXFx1ODI5NFxcdTgyOTVcXHU4Mjk2XFx1ODI5QVxcdTgyOUJcXHU4MjlFXFx1ODJBMFxcdTgyQTJcXHU4MkEzXFx1ODJBN1xcdTgyQjJcXHU4MkI1XFx1ODJCNlxcdTgyQkFcXHU4MkJCXFx1ODJCQ1xcdTgyQkZcXHU4MkMwXFx1ODJDMlxcdTgyQzNcXHU4MkM1XFx1ODJDNlxcdTgyQzlcXHU4MkQwXFx1ODJENlxcdTgyRDlcXHU4MkRBXFx1ODJERFxcdTgyRTJcXHU4MkU3XFx1ODJFOFxcdTgyRTlcXHU4MkVBXFx1ODJFQ1xcdTgyRURcXHU4MkVFXFx1ODJGMFxcdTgyRjJcXHU4MkYzXFx1ODJGNVxcdTgyRjZcXHU4MkY4XCJdLFxuICAgICAgW1wiYzY4MFwiLCBcIlxcdTgyRkFcXHU4MkZDXCIsIDQsIFwiXFx1ODMwQVxcdTgzMEJcXHU4MzBEXFx1ODMxMFxcdTgzMTJcXHU4MzEzXFx1ODMxNlxcdTgzMThcXHU4MzE5XFx1ODMxRFwiLCA5LCBcIlxcdTgzMjlcXHU4MzJBXFx1ODMyRVxcdTgzMzBcXHU4MzMyXFx1ODMzN1xcdTgzM0JcXHU4MzNEXFx1NTU2NFxcdTgxM0VcXHU3NUIyXFx1NzZBRVxcdTUzMzlcXHU3NURFXFx1NTBGQlxcdTVDNDFcXHU4QjZDXFx1N0JDN1xcdTUwNEZcXHU3MjQ3XFx1OUE5N1xcdTk4RDhcXHU2RjAyXFx1NzRFMlxcdTc5NjhcXHU2NDg3XFx1NzdBNVxcdTYyRkNcXHU5ODkxXFx1OEQyQlxcdTU0QzFcXHU4MDU4XFx1NEU1MlxcdTU3NkFcXHU4MkY5XFx1ODQwRFxcdTVFNzNcXHU1MUVEXFx1NzRGNlxcdThCQzRcXHU1QzRGXFx1NTc2MVxcdTZDRkNcXHU5ODg3XFx1NUE0NlxcdTc4MzRcXHU5QjQ0XFx1OEZFQlxcdTdDOTVcXHU1MjU2XFx1NjI1MVxcdTk0RkFcXHU0RUM2XFx1ODM4NlxcdTg0NjFcXHU4M0U5XFx1ODRCMlxcdTU3RDRcXHU2NzM0XFx1NTcwM1xcdTY2NkVcXHU2RDY2XFx1OEMzMVxcdTY2RERcXHU3MDExXFx1NjcxRlxcdTZCM0FcXHU2ODE2XFx1NjIxQVxcdTU5QkJcXHU0RTAzXFx1NTFDNFxcdTZGMDZcXHU2N0QyXFx1NkM4RlxcdTUxNzZcXHU2OENCXFx1NTk0N1xcdTZCNjdcXHU3NTY2XFx1NUQwRVxcdTgxMTBcXHU5RjUwXFx1NjVEN1xcdTc5NDhcXHU3OTQxXFx1OUE5MVxcdThENzdcXHU1QzgyXFx1NEU1RVxcdTRGMDFcXHU1NDJGXFx1NTk1MVxcdTc4MENcXHU1NjY4XFx1NkMxNFxcdThGQzRcXHU1RjAzXFx1NkM3RFxcdTZDRTNcXHU4QkFCXFx1NjM5MFwiXSxcbiAgICAgIFtcImM3NDBcIiwgXCJcXHU4MzNFXFx1ODMzRlxcdTgzNDFcXHU4MzQyXFx1ODM0NFxcdTgzNDVcXHU4MzQ4XFx1ODM0QVwiLCA0LCBcIlxcdTgzNTNcXHU4MzU1XCIsIDQsIFwiXFx1ODM1RFxcdTgzNjJcXHU4MzcwXCIsIDYsIFwiXFx1ODM3OVxcdTgzN0FcXHU4MzdFXCIsIDYsIFwiXFx1ODM4N1xcdTgzODhcXHU4MzhBXFx1ODM4QlxcdTgzOENcXHU4MzhEXFx1ODM4RlxcdTgzOTBcXHU4MzkxXFx1ODM5NFxcdTgzOTVcXHU4Mzk2XFx1ODM5N1xcdTgzOTlcXHU4MzlBXFx1ODM5RFxcdTgzOUZcXHU4M0ExXCIsIDYsIFwiXFx1ODNBQ1xcdTgzQURcXHU4M0FFXCJdLFxuICAgICAgW1wiYzc4MFwiLCBcIlxcdTgzQUZcXHU4M0I1XFx1ODNCQlxcdTgzQkVcXHU4M0JGXFx1ODNDMlxcdTgzQzNcXHU4M0M0XFx1ODNDNlxcdTgzQzhcXHU4M0M5XFx1ODNDQlxcdTgzQ0RcXHU4M0NFXFx1ODNEMFxcdTgzRDFcXHU4M0QyXFx1ODNEM1xcdTgzRDVcXHU4M0Q3XFx1ODNEOVxcdTgzREFcXHU4M0RCXFx1ODNERVxcdTgzRTJcXHU4M0UzXFx1ODNFNFxcdTgzRTZcXHU4M0U3XFx1ODNFOFxcdTgzRUJcXHU4M0VDXFx1ODNFRFxcdTYwNzBcXHU2RDNEXFx1NzI3NVxcdTYyNjZcXHU5NDhFXFx1OTRDNVxcdTUzNDNcXHU4RkMxXFx1N0I3RVxcdTRFREZcXHU4QzI2XFx1NEU3RVxcdTlFRDRcXHU5NEIxXFx1OTRCM1xcdTUyNERcXHU2RjVDXFx1OTA2M1xcdTZENDVcXHU4QzM0XFx1NTgxMVxcdTVENENcXHU2QjIwXFx1NkI0OVxcdTY3QUFcXHU1NDVCXFx1ODE1NFxcdTdGOENcXHU1ODk5XFx1ODUzN1xcdTVGM0FcXHU2MkEyXFx1NkE0N1xcdTk1MzlcXHU2NTcyXFx1NjA4NFxcdTY4NjVcXHU3N0E3XFx1NEU1NFxcdTRGQThcXHU1REU3XFx1OTc5OFxcdTY0QUNcXHU3RkQ4XFx1NUNFRFxcdTRGQ0ZcXHU3QThEXFx1NTIwN1xcdTgzMDRcXHU0RTE0XFx1NjAyRlxcdTdBODNcXHU5NEE2XFx1NEZCNVxcdTRFQjJcXHU3OUU2XFx1NzQzNFxcdTUyRTRcXHU4MkI5XFx1NjREMlxcdTc5QkRcXHU1QkREXFx1NkM4MVxcdTk3NTJcXHU4RjdCXFx1NkMyMlxcdTUwM0VcXHU1MzdGXFx1NkUwNVxcdTY0Q0VcXHU2Njc0XFx1NkMzMFxcdTYwQzVcXHU5ODc3XFx1OEJGN1xcdTVFODZcXHU3NDNDXFx1N0E3N1xcdTc5Q0JcXHU0RTE4XFx1OTBCMVxcdTc0MDNcXHU2QzQyXFx1NTZEQVxcdTkxNEJcXHU2Q0M1XFx1OEQ4QlxcdTUzM0FcXHU4NkM2XFx1NjZGMlxcdThFQUZcXHU1QzQ4XFx1OUE3MVxcdTZFMjBcIl0sXG4gICAgICBbXCJjODQwXCIsIFwiXFx1ODNFRVxcdTgzRUZcXHU4M0YzXCIsIDQsIFwiXFx1ODNGQVxcdTgzRkJcXHU4M0ZDXFx1ODNGRVxcdTgzRkZcXHU4NDAwXFx1ODQwMlxcdTg0MDVcXHU4NDA3XFx1ODQwOFxcdTg0MDlcXHU4NDBBXFx1ODQxMFxcdTg0MTJcIiwgNSwgXCJcXHU4NDE5XFx1ODQxQVxcdTg0MUJcXHU4NDFFXCIsIDUsIFwiXFx1ODQyOVwiLCA3LCBcIlxcdTg0MzJcIiwgNSwgXCJcXHU4NDM5XFx1ODQzQVxcdTg0M0JcXHU4NDNFXCIsIDcsIFwiXFx1ODQ0N1xcdTg0NDhcXHU4NDQ5XCJdLFxuICAgICAgW1wiYzg4MFwiLCBcIlxcdTg0NEFcIiwgNiwgXCJcXHU4NDUyXCIsIDQsIFwiXFx1ODQ1OFxcdTg0NURcXHU4NDVFXFx1ODQ1RlxcdTg0NjBcXHU4NDYyXFx1ODQ2NFwiLCA0LCBcIlxcdTg0NkFcXHU4NDZFXFx1ODQ2RlxcdTg0NzBcXHU4NDcyXFx1ODQ3NFxcdTg0NzdcXHU4NDc5XFx1ODQ3QlxcdTg0N0NcXHU1M0Q2XFx1NUEzNlxcdTlGOEJcXHU4REEzXFx1NTNCQlxcdTU3MDhcXHU5OEE3XFx1Njc0M1xcdTkxOUJcXHU2Q0M5XFx1NTE2OFxcdTc1Q0FcXHU2MkYzXFx1NzJBQ1xcdTUyMzhcXHU1MjlEXFx1N0YzQVxcdTcwOTRcXHU3NjM4XFx1NTM3NFxcdTlFNEFcXHU2OUI3XFx1Nzg2RVxcdTk2QzBcXHU4OEQ5XFx1N0ZBNFxcdTcxMzZcXHU3MUMzXFx1NTE4OVxcdTY3RDNcXHU3NEU0XFx1NThFNFxcdTY1MThcXHU1NkI3XFx1OEJBOVxcdTk5NzZcXHU2MjcwXFx1N0VENVxcdTYwRjlcXHU3MEVEXFx1NThFQ1xcdTRFQzFcXHU0RUJBXFx1NUZDRFxcdTk3RTdcXHU0RUZCXFx1OEJBNFxcdTUyMDNcXHU1OThBXFx1N0VBQlxcdTYyNTRcXHU0RUNEXFx1NjVFNVxcdTYyMEVcXHU4MzM4XFx1ODRDOVxcdTgzNjNcXHU4NzhEXFx1NzE5NFxcdTZFQjZcXHU1QkI5XFx1N0VEMlxcdTUxOTdcXHU2M0M5XFx1NjdENFxcdTgwODlcXHU4MzM5XFx1ODgxNVxcdTUxMTJcXHU1QjdBXFx1NTk4MlxcdThGQjFcXHU0RTczXFx1NkM1RFxcdTUxNjVcXHU4OTI1XFx1OEY2RlxcdTk2MkVcXHU4NTRBXFx1NzQ1RVxcdTk1MTBcXHU5NUYwXFx1NkRBNlxcdTgyRTVcXHU1RjMxXFx1NjQ5MlxcdTZEMTJcXHU4NDI4XFx1ODE2RVxcdTlDQzNcXHU1ODVFXFx1OEQ1QlxcdTRFMDlcXHU1M0MxXCJdLFxuICAgICAgW1wiYzk0MFwiLCBcIlxcdTg0N0RcIiwgNCwgXCJcXHU4NDgzXFx1ODQ4NFxcdTg0ODVcXHU4NDg2XFx1ODQ4QVxcdTg0OERcXHU4NDhGXCIsIDcsIFwiXFx1ODQ5OFxcdTg0OUFcXHU4NDlCXFx1ODQ5RFxcdTg0OUVcXHU4NDlGXFx1ODRBMFxcdTg0QTJcIiwgMTIsIFwiXFx1ODRCMFxcdTg0QjFcXHU4NEIzXFx1ODRCNVxcdTg0QjZcXHU4NEI3XFx1ODRCQlxcdTg0QkNcXHU4NEJFXFx1ODRDMFxcdTg0QzJcXHU4NEMzXFx1ODRDNVxcdTg0QzZcXHU4NEM3XFx1ODRDOFxcdTg0Q0JcXHU4NENDXFx1ODRDRVxcdTg0Q0ZcXHU4NEQyXFx1ODRENFxcdTg0RDVcXHU4NEQ3XCJdLFxuICAgICAgW1wiYzk4MFwiLCBcIlxcdTg0RDhcIiwgNCwgXCJcXHU4NERFXFx1ODRFMVxcdTg0RTJcXHU4NEU0XFx1ODRFN1wiLCA0LCBcIlxcdTg0RURcXHU4NEVFXFx1ODRFRlxcdTg0RjFcIiwgMTAsIFwiXFx1ODRGRFxcdTg0RkVcXHU4NTAwXFx1ODUwMVxcdTg1MDJcXHU0RjFFXFx1NjU2M1xcdTY4NTFcXHU1NUQzXFx1NEUyN1xcdTY0MTRcXHU5QTlBXFx1NjI2QlxcdTVBQzJcXHU3NDVGXFx1ODI3MlxcdTZEQTlcXHU2OEVFXFx1NTBFN1xcdTgzOEVcXHU3ODAyXFx1Njc0MFxcdTUyMzlcXHU2Qzk5XFx1N0VCMVxcdTUwQkJcXHU1NTY1XFx1NzE1RVxcdTdCNUJcXHU2NjUyXFx1NzNDQVxcdTgyRUJcXHU2NzQ5XFx1NUM3MVxcdTUyMjBcXHU3MTdEXFx1ODg2QlxcdTk1RUFcXHU5NjU1XFx1NjRDNVxcdThENjFcXHU4MUIzXFx1NTU4NFxcdTZDNTVcXHU2MjQ3XFx1N0YyRVxcdTU4OTJcXHU0RjI0XFx1NTU0NlxcdThENEZcXHU2NjRDXFx1NEUwQVxcdTVDMUFcXHU4OEYzXFx1NjhBMlxcdTYzNEVcXHU3QTBEXFx1NzBFN1xcdTgyOERcXHU1MkZBXFx1OTdGNlxcdTVDMTFcXHU1NEU4XFx1OTBCNVxcdTdFQ0RcXHU1OTYyXFx1OEQ0QVxcdTg2QzdcXHU4MjBDXFx1ODIwRFxcdThENjZcXHU2NDQ0XFx1NUMwNFxcdTYxNTFcXHU2RDg5XFx1NzkzRVxcdThCQkVcXHU3ODM3XFx1NzUzM1xcdTU0N0JcXHU0RjM4XFx1OEVBQlxcdTZERjFcXHU1QTIwXFx1N0VDNVxcdTc5NUVcXHU2Qzg4XFx1NUJBMVxcdTVBNzZcXHU3NTFBXFx1ODBCRVxcdTYxNEVcXHU2RTE3XFx1NThGMFxcdTc1MUZcXHU3NTI1XFx1NzI3MlxcdTUzNDdcXHU3RUYzXCJdLFxuICAgICAgW1wiY2E0MFwiLCBcIlxcdTg1MDNcIiwgOCwgXCJcXHU4NTBEXFx1ODUwRVxcdTg1MEZcXHU4NTEwXFx1ODUxMlxcdTg1MTRcXHU4NTE1XFx1ODUxNlxcdTg1MThcXHU4NTE5XFx1ODUxQlxcdTg1MUNcXHU4NTFEXFx1ODUxRVxcdTg1MjBcXHU4NTIyXCIsIDgsIFwiXFx1ODUyRFwiLCA5LCBcIlxcdTg1M0VcIiwgNCwgXCJcXHU4NTQ0XFx1ODU0NVxcdTg1NDZcXHU4NTQ3XFx1ODU0QlwiLCAxMF0sXG4gICAgICBbXCJjYTgwXCIsIFwiXFx1ODU1N1xcdTg1NThcXHU4NTVBXFx1ODU1QlxcdTg1NUNcXHU4NTVEXFx1ODU1RlwiLCA0LCBcIlxcdTg1NjVcXHU4NTY2XFx1ODU2N1xcdTg1NjlcIiwgOCwgXCJcXHU4NTczXFx1ODU3NVxcdTg1NzZcXHU4NTc3XFx1ODU3OFxcdTg1N0NcXHU4NTdEXFx1ODU3RlxcdTg1ODBcXHU4NTgxXFx1NzcwMVxcdTc2REJcXHU1MjY5XFx1ODBEQ1xcdTU3MjNcXHU1RTA4XFx1NTkzMVxcdTcyRUVcXHU2NUJEXFx1NkU3RlxcdThCRDdcXHU1QzM4XFx1ODY3MVxcdTUzNDFcXHU3N0YzXFx1NjJGRVxcdTY1RjZcXHU0RUMwXFx1OThERlxcdTg2ODBcXHU1QjlFXFx1OEJDNlxcdTUzRjJcXHU3N0UyXFx1NEY3RlxcdTVDNEVcXHU5QTc2XFx1NTlDQlxcdTVGMEZcXHU3OTNBXFx1NThFQlxcdTRFMTZcXHU2N0ZGXFx1NEU4QlxcdTYyRURcXHU4QTkzXFx1OTAxRFxcdTUyQkZcXHU2NjJGXFx1NTVEQ1xcdTU2NkNcXHU5MDAyXFx1NEVENVxcdTRGOERcXHU5MUNBXFx1OTk3MFxcdTZDMEZcXHU1RTAyXFx1NjA0M1xcdTVCQTRcXHU4OUM2XFx1OEJENVxcdTY1MzZcXHU2MjRCXFx1OTk5NlxcdTVCODhcXHU1QkZGXFx1NjM4OFxcdTU1MkVcXHU1M0Q3XFx1NzYyNlxcdTUxN0RcXHU4NTJDXFx1NjdBMlxcdTY4QjNcXHU2QjhBXFx1NjI5MlxcdThGOTNcXHU1M0Q0XFx1ODIxMlxcdTZERDFcXHU3NThGXFx1NEU2NlxcdThENEVcXHU1QjcwXFx1NzE5RlxcdTg1QUZcXHU2NjkxXFx1NjZEOVxcdTdGNzJcXHU4NzAwXFx1OUVDRFxcdTlGMjBcXHU1QzVFXFx1NjcyRlxcdThGRjBcXHU2ODExXFx1Njc1RlxcdTYyMERcXHU3QUQ2XFx1NTg4NVxcdTVFQjZcXHU2NTcwXFx1NkYzMVwiXSxcbiAgICAgIFtcImNiNDBcIiwgXCJcXHU4NTgyXFx1ODU4M1xcdTg1ODZcXHU4NTg4XCIsIDYsIFwiXFx1ODU5MFwiLCAxMCwgXCJcXHU4NTlEXCIsIDYsIFwiXFx1ODVBNVxcdTg1QTZcXHU4NUE3XFx1ODVBOVxcdTg1QUJcXHU4NUFDXFx1ODVBRFxcdTg1QjFcIiwgNSwgXCJcXHU4NUI4XFx1ODVCQVwiLCA2LCBcIlxcdTg1QzJcIiwgNiwgXCJcXHU4NUNBXCIsIDQsIFwiXFx1ODVEMVxcdTg1RDJcIl0sXG4gICAgICBbXCJjYjgwXCIsIFwiXFx1ODVENFxcdTg1RDZcIiwgNSwgXCJcXHU4NUREXCIsIDYsIFwiXFx1ODVFNVxcdTg1RTZcXHU4NUU3XFx1ODVFOFxcdTg1RUFcIiwgMTQsIFwiXFx1NjA1NVxcdTUyMzdcXHU4MDBEXFx1NjQ1NFxcdTg4NzBcXHU3NTI5XFx1NUUwNVxcdTY4MTNcXHU2MkY0XFx1OTcxQ1xcdTUzQ0NcXHU3MjNEXFx1OEMwMVxcdTZDMzRcXHU3NzYxXFx1N0EwRVxcdTU0MkVcXHU3N0FDXFx1OTg3QVxcdTgyMUNcXHU4QkY0XFx1Nzg1NVxcdTY3MTRcXHU3MEMxXFx1NjVBRlxcdTY0OTVcXHU1NjM2XFx1NjAxRFxcdTc5QzFcXHU1M0Y4XFx1NEUxRFxcdTZCN0JcXHU4MDg2XFx1NUJGQVxcdTU1RTNcXHU1NkRCXFx1NEYzQVxcdTRGM0NcXHU5OTcyXFx1NURGM1xcdTY3N0VcXHU4MDM4XFx1NjAwMlxcdTk4ODJcXHU5MDAxXFx1NUI4QlxcdThCQkNcXHU4QkY1XFx1NjQxQ1xcdTgyNThcXHU2NERFXFx1NTVGRFxcdTgyQ0ZcXHU5MTY1XFx1NEZEN1xcdTdEMjBcXHU5MDFGXFx1N0M5RlxcdTUwRjNcXHU1ODUxXFx1NkVBRlxcdTVCQkZcXHU4QkM5XFx1ODA4M1xcdTkxNzhcXHU4NDlDXFx1N0I5N1xcdTg2N0RcXHU5NjhCXFx1OTY4RlxcdTdFRTVcXHU5QUQzXFx1Nzg4RVxcdTVDODFcXHU3QTU3XFx1OTA0MlxcdTk2QTdcXHU3OTVGXFx1NUI1OVxcdTYzNUZcXHU3QjBCXFx1ODREMVxcdTY4QURcXHU1NTA2XFx1N0YyOVxcdTc0MTBcXHU3RDIyXFx1OTUwMVxcdTYyNDBcXHU1ODRDXFx1NEVENlxcdTVCODNcXHU1OTc5XFx1NTg1NFwiXSxcbiAgICAgIFtcImNjNDBcIiwgXCJcXHU4NUY5XFx1ODVGQVxcdTg1RkNcXHU4NUZEXFx1ODVGRVxcdTg2MDBcIiwgNCwgXCJcXHU4NjA2XCIsIDEwLCBcIlxcdTg2MTJcXHU4NjEzXFx1ODYxNFxcdTg2MTVcXHU4NjE3XCIsIDE1LCBcIlxcdTg2MjhcXHU4NjJBXCIsIDEzLCBcIlxcdTg2MzlcXHU4NjNBXFx1ODYzQlxcdTg2M0RcXHU4NjNFXFx1ODYzRlxcdTg2NDBcIl0sXG4gICAgICBbXCJjYzgwXCIsIFwiXFx1ODY0MVwiLCAxMSwgXCJcXHU4NjUyXFx1ODY1M1xcdTg2NTVcIiwgNCwgXCJcXHU4NjVCXFx1ODY1Q1xcdTg2NURcXHU4NjVGXFx1ODY2MFxcdTg2NjFcXHU4NjYzXCIsIDcsIFwiXFx1NzM2RFxcdTYzMUVcXHU4RTRCXFx1OEUwRlxcdTgwQ0VcXHU4MkQ0XFx1NjJBQ1xcdTUzRjBcXHU2Q0YwXFx1OTE1RVxcdTU5MkFcXHU2MDAxXFx1NkM3MFxcdTU3NERcXHU2NDRBXFx1OEQyQVxcdTc2MkJcXHU2RUU5XFx1NTc1QlxcdTZBODBcXHU3NUYwXFx1NkY2RFxcdThDMkRcXHU4QzA4XFx1NTc2NlxcdTZCRUZcXHU4ODkyXFx1NzhCM1xcdTYzQTJcXHU1M0Y5XFx1NzBBRFxcdTZDNjRcXHU1ODU4XFx1NjQyQVxcdTU4MDJcXHU2OEUwXFx1ODE5QlxcdTU1MTBcXHU3Q0Q2XFx1NTAxOFxcdThFQkFcXHU2RENDXFx1OEQ5RlxcdTcwRUJcXHU2MzhGXFx1NkQ5QlxcdTZFRDRcXHU3RUU2XFx1ODQwNFxcdTY4NDNcXHU5MDAzXFx1NkREOFxcdTk2NzZcXHU4QkE4XFx1NTk1N1xcdTcyNzlcXHU4NUU0XFx1ODE3RVxcdTc1QkNcXHU4QThBXFx1NjhBRlxcdTUyNTRcXHU4RTIyXFx1OTUxMVxcdTYzRDBcXHU5ODk4XFx1OEU0NFxcdTU1N0NcXHU0RjUzXFx1NjZGRlxcdTU2OEZcXHU2MEQ1XFx1NkQ5NVxcdTUyNDNcXHU1QzQ5XFx1NTkyOVxcdTZERkJcXHU1ODZCXFx1NzUzMFxcdTc1MUNcXHU2MDZDXFx1ODIxNFxcdTgxNDZcXHU2MzExXFx1Njc2MVxcdThGRTJcXHU3NzNBXFx1OERGM1xcdThEMzRcXHU5NEMxXFx1NUUxNlxcdTUzODVcXHU1NDJDXFx1NzBDM1wiXSxcbiAgICAgIFtcImNkNDBcIiwgXCJcXHU4NjZEXFx1ODY2RlxcdTg2NzBcXHU4NjcyXCIsIDYsIFwiXFx1ODY4M1wiLCA2LCBcIlxcdTg2OEVcIiwgNCwgXCJcXHU4Njk0XFx1ODY5NlwiLCA1LCBcIlxcdTg2OUVcIiwgNCwgXCJcXHU4NkE1XFx1ODZBNlxcdTg2QUJcXHU4NkFEXFx1ODZBRVxcdTg2QjJcXHU4NkIzXFx1ODZCN1xcdTg2QjhcXHU4NkI5XFx1ODZCQlwiLCA0LCBcIlxcdTg2QzFcXHU4NkMyXFx1ODZDM1xcdTg2QzVcXHU4NkM4XFx1ODZDQ1xcdTg2Q0RcXHU4NkQyXFx1ODZEM1xcdTg2RDVcXHU4NkQ2XFx1ODZEN1xcdTg2REFcXHU4NkRDXCJdLFxuICAgICAgW1wiY2Q4MFwiLCBcIlxcdTg2RERcXHU4NkUwXFx1ODZFMVxcdTg2RTJcXHU4NkUzXFx1ODZFNVxcdTg2RTZcXHU4NkU3XFx1ODZFOFxcdTg2RUFcXHU4NkVCXFx1ODZFQ1xcdTg2RUZcXHU4NkY1XFx1ODZGNlxcdTg2RjdcXHU4NkZBXFx1ODZGQlxcdTg2RkNcXHU4NkZEXFx1ODZGRlxcdTg3MDFcXHU4NzA0XFx1ODcwNVxcdTg3MDZcXHU4NzBCXFx1ODcwQ1xcdTg3MEVcXHU4NzBGXFx1ODcxMFxcdTg3MTFcXHU4NzE0XFx1ODcxNlxcdTZDNDBcXHU1RUY3XFx1NTA1Q1xcdTRFQURcXHU1RUFEXFx1NjMzQVxcdTgyNDdcXHU5MDFBXFx1Njg1MFxcdTkxNkVcXHU3N0IzXFx1NTQwQ1xcdTk0RENcXHU1RjY0XFx1N0FFNVxcdTY4NzZcXHU2MzQ1XFx1N0I1MlxcdTdFREZcXHU3NURCXFx1NTA3N1xcdTYyOTVcXHU1OTM0XFx1OTAwRlxcdTUxRjhcXHU3OUMzXFx1N0E4MVxcdTU2RkVcXHU1RjkyXFx1OTAxNFxcdTZEODJcXHU1QzYwXFx1NTcxRlxcdTU0MTBcXHU1MTU0XFx1NkU0RFxcdTU2RTJcXHU2M0E4XFx1OTg5M1xcdTgxN0ZcXHU4NzE1XFx1ODkyQVxcdTkwMDBcXHU1NDFFXFx1NUM2RlxcdTgxQzBcXHU2MkQ2XFx1NjI1OFxcdTgxMzFcXHU5RTM1XFx1OTY0MFxcdTlBNkVcXHU5QTdDXFx1NjkyRFxcdTU5QTVcXHU2MkQzXFx1NTUzRVxcdTYzMTZcXHU1NEM3XFx1ODZEOVxcdTZEM0NcXHU1QTAzXFx1NzRFNlxcdTg4OUNcXHU2QjZBXFx1NTkxNlxcdThDNENcXHU1RjJGXFx1NkU3RVxcdTczQTlcXHU5ODdEXFx1NEUzOFxcdTcwRjdcXHU1QjhDXFx1Nzg5N1xcdTYzM0RcXHU2NjVBXFx1NzY5NlxcdTYwQ0JcXHU1QjlCXFx1NUE0OVxcdTRFMDdcXHU4MTU1XFx1NkM2QVxcdTczOEJcXHU0RUExXFx1Njc4OVxcdTdGNTFcXHU1RjgwXFx1NjVGQVxcdTY3MUJcXHU1RkQ4XFx1NTk4NFxcdTVBMDFcIl0sXG4gICAgICBbXCJjZTQwXCIsIFwiXFx1ODcxOVxcdTg3MUJcXHU4NzFEXFx1ODcxRlxcdTg3MjBcXHU4NzI0XFx1ODcyNlxcdTg3MjdcXHU4NzI4XFx1ODcyQVxcdTg3MkJcXHU4NzJDXFx1ODcyRFxcdTg3MkZcXHU4NzMwXFx1ODczMlxcdTg3MzNcXHU4NzM1XFx1ODczNlxcdTg3MzhcXHU4NzM5XFx1ODczQVxcdTg3M0NcXHU4NzNEXFx1ODc0MFwiLCA2LCBcIlxcdTg3NEFcXHU4NzRCXFx1ODc0RFxcdTg3NEZcXHU4NzUwXFx1ODc1MVxcdTg3NTJcXHU4NzU0XFx1ODc1NVxcdTg3NTZcXHU4NzU4XFx1ODc1QVwiLCA1LCBcIlxcdTg3NjFcXHU4NzYyXFx1ODc2NlwiLCA3LCBcIlxcdTg3NkZcXHU4NzcxXFx1ODc3MlxcdTg3NzNcXHU4Nzc1XCJdLFxuICAgICAgW1wiY2U4MFwiLCBcIlxcdTg3NzdcXHU4Nzc4XFx1ODc3OVxcdTg3N0FcXHU4NzdGXFx1ODc4MFxcdTg3ODFcXHU4Nzg0XFx1ODc4NlxcdTg3ODdcXHU4Nzg5XFx1ODc4QVxcdTg3OENcXHU4NzhFXCIsIDQsIFwiXFx1ODc5NFxcdTg3OTVcXHU4Nzk2XFx1ODc5OFwiLCA2LCBcIlxcdTg3QTBcIiwgNCwgXCJcXHU1RENEXFx1NUZBRVxcdTUzNzFcXHU5N0U2XFx1OEZERFxcdTY4NDVcXHU1NkY0XFx1NTUyRlxcdTYwREZcXHU0RTNBXFx1NkY0RFxcdTdFRjRcXHU4MkM3XFx1ODQwRVxcdTU5RDRcXHU0RjFGXFx1NEYyQVxcdTVDM0VcXHU3RUFDXFx1NjcyQVxcdTg1MUFcXHU1NDczXFx1NzU0RlxcdTgwQzNcXHU1NTgyXFx1OUI0RlxcdTRGNERcXHU2RTJEXFx1OEMxM1xcdTVDMDlcXHU2MTcwXFx1NTM2QlxcdTc2MUZcXHU2RTI5XFx1ODY4QVxcdTY1ODdcXHU5NUZCXFx1N0VCOVxcdTU0M0JcXHU3QTMzXFx1N0QwQVxcdTk1RUVcXHU1NUUxXFx1N0ZDMVxcdTc0RUVcXHU2MzFEXFx1ODcxN1xcdTZEQTFcXHU3QTlEXFx1NjIxMVxcdTY1QTFcXHU1MzY3XFx1NjNFMVxcdTZDODNcXHU1REVCXFx1NTQ1Q1xcdTk0QThcXHU0RTRDXFx1NkM2MVxcdThCRUNcXHU1QzRCXFx1NjVFMFxcdTgyOUNcXHU2OEE3XFx1NTQzRVxcdTU0MzRcXHU2QkNCXFx1NkI2NlxcdTRFOTRcXHU2MzQyXFx1NTM0OFxcdTgyMUVcXHU0RjBEXFx1NEZBRVxcdTU3NUVcXHU2MjBBXFx1OTZGRVxcdTY2NjRcXHU3MjY5XFx1NTJGRlxcdTUyQTFcXHU2MDlGXFx1OEJFRlxcdTY2MTRcXHU3MTk5XFx1Njc5MFxcdTg5N0ZcXHU3ODUyXFx1NzdGRFxcdTY2NzBcXHU1NjNCXFx1NTQzOFxcdTk1MjFcXHU3MjdBXCJdLFxuICAgICAgW1wiY2Y0MFwiLCBcIlxcdTg3QTVcXHU4N0E2XFx1ODdBN1xcdTg3QTlcXHU4N0FBXFx1ODdBRVxcdTg3QjBcXHU4N0IxXFx1ODdCMlxcdTg3QjRcXHU4N0I2XFx1ODdCN1xcdTg3QjhcXHU4N0I5XFx1ODdCQlxcdTg3QkNcXHU4N0JFXFx1ODdCRlxcdTg3QzFcIiwgNCwgXCJcXHU4N0M3XFx1ODdDOFxcdTg3QzlcXHU4N0NDXCIsIDQsIFwiXFx1ODdENFwiLCA2LCBcIlxcdTg3RENcXHU4N0REXFx1ODdERVxcdTg3REZcXHU4N0UxXFx1ODdFMlxcdTg3RTNcXHU4N0U0XFx1ODdFNlxcdTg3RTdcXHU4N0U4XFx1ODdFOVxcdTg3RUJcXHU4N0VDXFx1ODdFRFxcdTg3RUZcIiwgOV0sXG4gICAgICBbXCJjZjgwXCIsIFwiXFx1ODdGQVxcdTg3RkJcXHU4N0ZDXFx1ODdGRFxcdTg3RkZcXHU4ODAwXFx1ODgwMVxcdTg4MDJcXHU4ODA0XCIsIDUsIFwiXFx1ODgwQlwiLCA3LCBcIlxcdTg4MTRcXHU4ODE3XFx1ODgxOFxcdTg4MTlcXHU4ODFBXFx1ODgxQ1wiLCA0LCBcIlxcdTg4MjNcXHU3QTAwXFx1NjA2RlxcdTVFMENcXHU2MDg5XFx1ODE5RFxcdTU5MTVcXHU2MERDXFx1NzE4NFxcdTcwRUZcXHU2RUFBXFx1NkM1MFxcdTcyODBcXHU2QTg0XFx1ODhBRFxcdTVFMkRcXHU0RTYwXFx1NUFCM1xcdTU1OUNcXHU5NEUzXFx1NkQxN1xcdTdDRkJcXHU5Njk5XFx1NjIwRlxcdTdFQzZcXHU3NzhFXFx1ODY3RVxcdTUzMjNcXHU5NzFFXFx1OEY5NlxcdTY2ODdcXHU1Q0UxXFx1NEZBMFxcdTcyRURcXHU0RTBCXFx1NTNBNlxcdTU5MEZcXHU1NDEzXFx1NjM4MFxcdTk1MjhcXHU1MTQ4XFx1NEVEOVxcdTlDOUNcXHU3RUE0XFx1NTRCOFxcdThEMjRcXHU4ODU0XFx1ODIzN1xcdTk1RjJcXHU2RDhFXFx1NUYyNlxcdTVBQ0NcXHU2NjNFXFx1OTY2OVxcdTczQjBcXHU3MzJFXFx1NTNCRlxcdTgxN0FcXHU5OTg1XFx1N0ZBMVxcdTVCQUFcXHU5Njc3XFx1OTY1MFxcdTdFQkZcXHU3NkY4XFx1NTNBMlxcdTk1NzZcXHU5OTk5XFx1N0JCMVxcdTg5NDRcXHU2RTU4XFx1NEU2MVxcdTdGRDRcXHU3OTY1XFx1OEJFNlxcdTYwRjNcXHU1NENEXFx1NEVBQlxcdTk4NzlcXHU1REY3XFx1NkE2MVxcdTUwQ0ZcXHU1NDExXFx1OEM2MVxcdTg0MjdcXHU3ODVEXFx1OTcwNFxcdTUyNEFcXHU1NEVFXFx1NTZBM1xcdTk1MDBcXHU2RDg4XFx1NUJCNVxcdTZEQzZcXHU2NjUzXCJdLFxuICAgICAgW1wiZDA0MFwiLCBcIlxcdTg4MjRcIiwgMTMsIFwiXFx1ODgzM1wiLCA1LCBcIlxcdTg4M0FcXHU4ODNCXFx1ODgzRFxcdTg4M0VcXHU4ODNGXFx1ODg0MVxcdTg4NDJcXHU4ODQzXFx1ODg0NlwiLCA1LCBcIlxcdTg4NEVcIiwgNSwgXCJcXHU4ODU1XFx1ODg1NlxcdTg4NThcXHU4ODVBXCIsIDYsIFwiXFx1ODg2NlxcdTg4NjdcXHU4ODZBXFx1ODg2RFxcdTg4NkZcXHU4ODcxXFx1ODg3M1xcdTg4NzRcXHU4ODc1XFx1ODg3NlxcdTg4NzhcXHU4ODc5XFx1ODg3QVwiXSxcbiAgICAgIFtcImQwODBcIiwgXCJcXHU4ODdCXFx1ODg3Q1xcdTg4ODBcXHU4ODgzXFx1ODg4NlxcdTg4ODdcXHU4ODg5XFx1ODg4QVxcdTg4OENcXHU4ODhFXFx1ODg4RlxcdTg4OTBcXHU4ODkxXFx1ODg5M1xcdTg4OTRcXHU4ODk1XFx1ODg5N1wiLCA0LCBcIlxcdTg4OURcIiwgNCwgXCJcXHU4OEEzXFx1ODhBNVwiLCA1LCBcIlxcdTVDMEZcXHU1QjVEXFx1NjgyMVxcdTgwOTZcXHU1NTc4XFx1N0IxMVxcdTY1NDhcXHU2OTU0XFx1NEU5QlxcdTZCNDdcXHU4NzRFXFx1OTc4QlxcdTUzNEZcXHU2MzFGXFx1NjQzQVxcdTkwQUFcXHU2NTlDXFx1ODBDMVxcdThDMTBcXHU1MTk5XFx1NjhCMFxcdTUzNzhcXHU4N0Y5XFx1NjFDOFxcdTZDQzRcXHU2Q0ZCXFx1OEMyMlxcdTVDNTFcXHU4NUFBXFx1ODJBRlxcdTk1MENcXHU2QjIzXFx1OEY5QlxcdTY1QjBcXHU1RkZCXFx1NUZDM1xcdTRGRTFcXHU4ODQ1XFx1NjYxRlxcdTgxNjVcXHU3MzI5XFx1NjBGQVxcdTUxNzRcXHU1MjExXFx1NTc4QlxcdTVGNjJcXHU5MEEyXFx1ODg0Q1xcdTkxOTJcXHU1RTc4XFx1Njc0RlxcdTYwMjdcXHU1OUQzXFx1NTE0NFxcdTUxRjZcXHU4MEY4XFx1NTMwOFxcdTZDNzlcXHU5NkM0XFx1NzE4QVxcdTRGMTFcXHU0RkVFXFx1N0Y5RVxcdTY3M0RcXHU1NUM1XFx1OTUwOFxcdTc5QzBcXHU4ODk2XFx1N0VFM1xcdTU4OUZcXHU2MjBDXFx1OTcwMFxcdTg2NUFcXHU1NjE4XFx1OTg3QlxcdTVGOTBcXHU4QkI4XFx1ODRDNFxcdTkxNTdcXHU1M0Q5XFx1NjVFRFxcdTVFOEZcXHU3NTVDXFx1NjA2NFxcdTdENkVcXHU1QTdGXFx1N0VFQVxcdTdFRURcXHU4RjY5XFx1NTVBN1xcdTVCQTNcXHU2MEFDXFx1NjVDQlxcdTczODRcIl0sXG4gICAgICBbXCJkMTQwXCIsIFwiXFx1ODhBQ1xcdTg4QUVcXHU4OEFGXFx1ODhCMFxcdTg4QjJcIiwgNCwgXCJcXHU4OEI4XFx1ODhCOVxcdTg4QkFcXHU4OEJCXFx1ODhCRFxcdTg4QkVcXHU4OEJGXFx1ODhDMFxcdTg4QzNcXHU4OEM0XFx1ODhDN1xcdTg4QzhcXHU4OENBXFx1ODhDQlxcdTg4Q0NcXHU4OENEXFx1ODhDRlxcdTg4RDBcXHU4OEQxXFx1ODhEM1xcdTg4RDZcXHU4OEQ3XFx1ODhEQVwiLCA0LCBcIlxcdTg4RTBcXHU4OEUxXFx1ODhFNlxcdTg4RTdcXHU4OEU5XCIsIDYsIFwiXFx1ODhGMlxcdTg4RjVcXHU4OEY2XFx1ODhGN1xcdTg4RkFcXHU4OEZCXFx1ODhGRFxcdTg4RkZcXHU4OTAwXFx1ODkwMVxcdTg5MDNcIiwgNV0sXG4gICAgICBbXCJkMTgwXCIsIFwiXFx1ODkwOVxcdTg5MEJcIiwgNCwgXCJcXHU4OTExXFx1ODkxNFwiLCA0LCBcIlxcdTg5MUNcIiwgNCwgXCJcXHU4OTIyXFx1ODkyM1xcdTg5MjRcXHU4OTI2XFx1ODkyN1xcdTg5MjhcXHU4OTI5XFx1ODkyQ1xcdTg5MkRcXHU4OTJFXFx1ODkyRlxcdTg5MzFcXHU4OTMyXFx1ODkzM1xcdTg5MzVcXHU4OTM3XFx1OTAwOVxcdTc2NjNcXHU3NzI5XFx1N0VEQVxcdTk3NzRcXHU4NTlCXFx1NUI2NlxcdTdBNzRcXHU5NkVBXFx1ODg0MFxcdTUyQ0JcXHU3MThGXFx1NUZBQVxcdTY1RUNcXHU4QkUyXFx1NUJGQlxcdTlBNkZcXHU1REUxXFx1NkI4OVxcdTZDNUJcXHU4QkFEXFx1OEJBRlxcdTkwMEFcXHU4RkM1XFx1NTM4QlxcdTYyQkNcXHU5RTI2XFx1OUUyRFxcdTU0NDBcXHU0RTJCXFx1ODJCRFxcdTcyNTlcXHU4NjlDXFx1NUQxNlxcdTg4NTlcXHU2REFGXFx1OTZDNVxcdTU0RDFcXHU0RTlBXFx1OEJCNlxcdTcxMDlcXHU1NEJEXFx1OTYwOVxcdTcwREZcXHU2REY5XFx1NzZEMFxcdTRFMjVcXHU3ODE0XFx1ODcxMlxcdTVDQTlcXHU1RUY2XFx1OEEwMFxcdTk4OUNcXHU5NjBFXFx1NzA4RVxcdTZDQkZcXHU1OTQ0XFx1NjNBOVxcdTc3M0NcXHU4ODREXFx1NkYxNFxcdTgyNzNcXHU1ODMwXFx1NzFENVxcdTUzOENcXHU3ODFBXFx1OTZDMVxcdTU1MDFcXHU1RjY2XFx1NzEzMFxcdTVCQjRcXHU4QzFBXFx1OUE4Q1xcdTZCODNcXHU1OTJFXFx1OUUyRlxcdTc5RTdcXHU2NzY4XFx1NjI2Q1xcdTRGNkZcXHU3NUExXFx1N0Y4QVxcdTZEMEJcXHU5NjMzXFx1NkMyN1xcdTRFRjBcXHU3NUQyXFx1NTE3QlxcdTY4MzdcXHU2RjNFXFx1OTA4MFxcdTgxNzBcXHU1OTk2XFx1NzQ3NlwiXSxcbiAgICAgIFtcImQyNDBcIiwgXCJcXHU4OTM4XCIsIDgsIFwiXFx1ODk0MlxcdTg5NDNcXHU4OTQ1XCIsIDI0LCBcIlxcdTg5NjBcIiwgNSwgXCJcXHU4OTY3XCIsIDE5LCBcIlxcdTg5N0NcIl0sXG4gICAgICBbXCJkMjgwXCIsIFwiXFx1ODk3RFxcdTg5N0VcXHU4OTgwXFx1ODk4MlxcdTg5ODRcXHU4OTg1XFx1ODk4N1wiLCAyNiwgXCJcXHU2NDQ3XFx1NUMyN1xcdTkwNjVcXHU3QTkxXFx1OEMyM1xcdTU5REFcXHU1NEFDXFx1ODIwMFxcdTgzNkZcXHU4OTgxXFx1ODAwMFxcdTY5MzBcXHU1NjRFXFx1ODAzNlxcdTcyMzdcXHU5MUNFXFx1NTFCNlxcdTRFNUZcXHU5ODc1XFx1NjM5NlxcdTRFMUFcXHU1M0Y2XFx1NjZGM1xcdTgxNEJcXHU1OTFDXFx1NkRCMlxcdTRFMDBcXHU1OEY5XFx1NTMzQlxcdTYzRDZcXHU5NEYxXFx1NEY5RFxcdTRGMEFcXHU4ODYzXFx1OTg5MFxcdTU5MzdcXHU5MDU3XFx1NzlGQlxcdTRFRUFcXHU4MEYwXFx1NzU5MVxcdTZDODJcXHU1QjlDXFx1NTlFOFxcdTVGNURcXHU2OTA1XFx1ODY4MVxcdTUwMUFcXHU1REYyXFx1NEU1OVxcdTc3RTNcXHU0RUU1XFx1ODI3QVxcdTYyOTFcXHU2NjEzXFx1OTA5MVxcdTVDNzlcXHU0RUJGXFx1NUY3OVxcdTgxQzZcXHU5MDM4XFx1ODA4NFxcdTc1QUJcXHU0RUE2XFx1ODhENFxcdTYxMEZcXHU2QkM1XFx1NUZDNlxcdTRFNDlcXHU3NkNBXFx1NkVBMlxcdThCRTNcXHU4QkFFXFx1OEMwQVxcdThCRDFcXHU1RjAyXFx1N0ZGQ1xcdTdGQ0NcXHU3RUNFXFx1ODMzNVxcdTgzNkJcXHU1NkUwXFx1NkJCN1xcdTk3RjNcXHU5NjM0XFx1NTlGQlxcdTU0MUZcXHU5NEY2XFx1NkRFQlxcdTVCQzVcXHU5OTZFXFx1NUMzOVxcdTVGMTVcXHU5NjkwXCJdLFxuICAgICAgW1wiZDM0MFwiLCBcIlxcdTg5QTJcIiwgMzAsIFwiXFx1ODlDM1xcdTg5Q0RcXHU4OUQzXFx1ODlENFxcdTg5RDVcXHU4OUQ3XFx1ODlEOFxcdTg5RDlcXHU4OURCXFx1ODlERFxcdTg5REZcXHU4OUUwXFx1ODlFMVxcdTg5RTJcXHU4OUU0XFx1ODlFN1xcdTg5RThcXHU4OUU5XFx1ODlFQVxcdTg5RUNcXHU4OUVEXFx1ODlFRVxcdTg5RjBcXHU4OUYxXFx1ODlGMlxcdTg5RjRcIiwgNl0sXG4gICAgICBbXCJkMzgwXCIsIFwiXFx1ODlGQlwiLCA0LCBcIlxcdThBMDFcIiwgNSwgXCJcXHU4QTA4XCIsIDIxLCBcIlxcdTUzNzBcXHU4MkYxXFx1NkEzMVxcdTVBNzRcXHU5RTcwXFx1NUU5NFxcdTdGMjhcXHU4M0I5XFx1ODQyNFxcdTg0MjVcXHU4MzY3XFx1ODc0N1xcdThGQ0VcXHU4RDYyXFx1NzZDOFxcdTVGNzFcXHU5ODk2XFx1Nzg2Q1xcdTY2MjBcXHU1NERGXFx1NjJFNVxcdTRGNjNcXHU4MUMzXFx1NzVDOFxcdTVFQjhcXHU5NkNEXFx1OEUwQVxcdTg2RjlcXHU1NDhGXFx1NkNGM1xcdTZEOENcXHU2QzM4XFx1NjA3RlxcdTUyQzdcXHU3NTI4XFx1NUU3RFxcdTRGMThcXHU2MEEwXFx1NUZFN1xcdTVDMjRcXHU3NTMxXFx1OTBBRVxcdTk0QzBcXHU3MkI5XFx1NkNCOVxcdTZFMzhcXHU5MTQ5XFx1NjcwOVxcdTUzQ0JcXHU1M0YzXFx1NEY1MVxcdTkxQzlcXHU4QkYxXFx1NTNDOFxcdTVFN0NcXHU4RkMyXFx1NkRFNFxcdTRFOEVcXHU3NkMyXFx1Njk4NlxcdTg2NUVcXHU2MTFBXFx1ODIwNlxcdTRGNTlcXHU0RkRFXFx1OTAzRVxcdTlDN0NcXHU2MTA5XFx1NkUxRFxcdTZFMTRcXHU5Njg1XFx1NEU4OFxcdTVBMzFcXHU5NkU4XFx1NEUwRVxcdTVDN0ZcXHU3OUI5XFx1NUI4N1xcdThCRURcXHU3RkJEXFx1NzM4OVxcdTU3REZcXHU4MjhCXFx1OTBDMVxcdTU0MDFcXHU5MDQ3XFx1NTVCQlxcdTVDRUFcXHU1RkExXFx1NjEwOFxcdTZCMzJcXHU3MkYxXFx1ODBCMlxcdThBODlcIl0sXG4gICAgICBbXCJkNDQwXCIsIFwiXFx1OEExRVwiLCAzMSwgXCJcXHU4QTNGXCIsIDgsIFwiXFx1OEE0OVwiLCAyMV0sXG4gICAgICBbXCJkNDgwXCIsIFwiXFx1OEE1RlwiLCAyNSwgXCJcXHU4QTdBXCIsIDYsIFwiXFx1NkQ3NFxcdTVCRDNcXHU4OEQ1XFx1OTg4NFxcdThDNkJcXHU5QTZEXFx1OUUzM1xcdTZFMEFcXHU1MUE0XFx1NTE0M1xcdTU3QTNcXHU4ODgxXFx1NTM5RlxcdTYzRjRcXHU4Rjk1XFx1NTZFRFxcdTU0NThcXHU1NzA2XFx1NzMzRlxcdTZFOTBcXHU3RjE4XFx1OEZEQ1xcdTgyRDFcXHU2MTNGXFx1NjAyOFxcdTk2NjJcXHU2NkYwXFx1N0VBNlxcdThEOEFcXHU4REMzXFx1OTRBNVxcdTVDQjNcXHU3Q0E0XFx1NjcwOFxcdTYwQTZcXHU5NjA1XFx1ODAxOFxcdTRFOTFcXHU5MEU3XFx1NTMwMFxcdTk2NjhcXHU1MTQxXFx1OEZEMFxcdTg1NzRcXHU5MTVEXFx1NjY1NVxcdTk3RjVcXHU1QjU1XFx1NTMxRFxcdTc4MzhcXHU2NzQyXFx1NjgzRFxcdTU0QzlcXHU3MDdFXFx1NUJCMFxcdThGN0RcXHU1MThEXFx1NTcyOFxcdTU0QjFcXHU2NTEyXFx1NjY4MlxcdThENUVcXHU4RDQzXFx1ODEwRlxcdTg0NkNcXHU5MDZEXFx1N0NERlxcdTUxRkZcXHU4NUZCXFx1NjdBM1xcdTY1RTlcXHU2RkExXFx1ODZBNFxcdThFODFcXHU1NjZBXFx1OTAyMFxcdTc2ODJcXHU3MDc2XFx1NzFFNVxcdThEMjNcXHU2MkU5XFx1NTIxOVxcdTZDRkRcXHU4RDNDXFx1NjAwRVxcdTU4OUVcXHU2MThFXFx1NjZGRVxcdThENjBcXHU2MjRFXFx1NTVCM1xcdTZFMjNcXHU2NzJEXFx1OEY2N1wiXSxcbiAgICAgIFtcImQ1NDBcIiwgXCJcXHU4QTgxXCIsIDcsIFwiXFx1OEE4QlwiLCA3LCBcIlxcdThBOTRcIiwgNDZdLFxuICAgICAgW1wiZDU4MFwiLCBcIlxcdThBQzNcIiwgMzIsIFwiXFx1OTRFMVxcdTk1RjhcXHU3NzI4XFx1NjgwNVxcdTY5QThcXHU1NDhCXFx1NEU0RFxcdTcwQjhcXHU4QkM4XFx1NjQ1OFxcdTY1OEJcXHU1Qjg1XFx1N0E4NFxcdTUwM0FcXHU1QkU4XFx1NzdCQlxcdTZCRTFcXHU4QTc5XFx1N0M5OFxcdTZDQkVcXHU3NkNGXFx1NjVBOVxcdThGOTdcXHU1RDJEXFx1NUM1NVxcdTg2MzhcXHU2ODA4XFx1NTM2MFxcdTYyMThcXHU3QUQ5XFx1NkU1QlxcdTdFRkRcXHU2QTFGXFx1N0FFMFxcdTVGNzBcXHU2RjMzXFx1NUYyMFxcdTYzOENcXHU2REE4XFx1Njc1NlxcdTRFMDhcXHU1RTEwXFx1OEQyNlxcdTRFRDdcXHU4MEMwXFx1NzYzNFxcdTk2OUNcXHU2MkRCXFx1NjYyRFxcdTYyN0VcXHU2Q0JDXFx1OEQ3NVxcdTcxNjdcXHU3RjY5XFx1NTE0NlxcdTgwODdcXHU1M0VDXFx1OTA2RVxcdTYyOThcXHU1NEYyXFx1ODZGMFxcdThGOTlcXHU4MDA1XFx1OTUxN1xcdTg1MTdcXHU4RkQ5XFx1NkQ1OVxcdTczQ0RcXHU2NTlGXFx1NzcxRlxcdTc1MDRcXHU3ODI3XFx1ODFGQlxcdThEMUVcXHU5NDg4XFx1NEZBNlxcdTY3OTVcXHU3NUI5XFx1OEJDQVxcdTk3MDdcXHU2MzJGXFx1OTU0N1xcdTk2MzVcXHU4NEI4XFx1NjMyM1xcdTc3NDFcXHU1RjgxXFx1NzJGMFxcdTRFODlcXHU2MDE0XFx1NjU3NFxcdTYyRUZcXHU2QjYzXFx1NjUzRlwiXSxcbiAgICAgIFtcImQ2NDBcIiwgXCJcXHU4QUU0XCIsIDM0LCBcIlxcdThCMDhcIiwgMjddLFxuICAgICAgW1wiZDY4MFwiLCBcIlxcdThCMjRcXHU4QjI1XFx1OEIyN1wiLCAzMCwgXCJcXHU1RTI3XFx1NzVDN1xcdTkwRDFcXHU4QkMxXFx1ODI5RFxcdTY3OURcXHU2NTJGXFx1NTQzMVxcdTg3MThcXHU3N0U1XFx1ODBBMlxcdTgxMDJcXHU2QzQxXFx1NEU0QlxcdTdFQzdcXHU4MDRDXFx1NzZGNFxcdTY5MERcXHU2Qjk2XFx1NjI2N1xcdTUwM0NcXHU0Rjg0XFx1NTc0MFxcdTYzMDdcXHU2QjYyXFx1OERCRVxcdTUzRUFcXHU2NUU4XFx1N0VCOFxcdTVGRDdcXHU2MzFBXFx1NjNCN1xcdTgxRjNcXHU4MUY0XFx1N0Y2RVxcdTVFMUNcXHU1Q0Q5XFx1NTIzNlxcdTY2N0FcXHU3OUU5XFx1N0ExQVxcdThEMjhcXHU3MDk5XFx1NzVENFxcdTZFREVcXHU2Q0JCXFx1N0E5MlxcdTRFMkRcXHU3NkM1XFx1NUZFMFxcdTk0OUZcXHU4ODc3XFx1N0VDOFxcdTc5Q0RcXHU4MEJGXFx1OTFDRFxcdTRFRjJcXHU0RjE3XFx1ODIxRlxcdTU0NjhcXHU1RERFXFx1NkQzMlxcdThCQ0NcXHU3Q0E1XFx1OEY3NFxcdTgwOThcXHU1RTFBXFx1NTQ5MlxcdTc2QjFcXHU1Qjk5XFx1NjYzQ1xcdTlBQTRcXHU3M0UwXFx1NjgyQVxcdTg2REJcXHU2NzMxXFx1NzMyQVxcdThCRjhcXHU4QkRCXFx1OTAxMFxcdTdBRjlcXHU3MERCXFx1NzE2RVxcdTYyQzRcXHU3N0E5XFx1NTYzMVxcdTRFM0JcXHU4NDU3XFx1NjdGMVxcdTUyQTlcXHU4NkMwXFx1OEQyRVxcdTk0RjhcXHU3QjUxXCJdLFxuICAgICAgW1wiZDc0MFwiLCBcIlxcdThCNDZcIiwgMzEsIFwiXFx1OEI2N1wiLCA0LCBcIlxcdThCNkRcIiwgMjVdLFxuICAgICAgW1wiZDc4MFwiLCBcIlxcdThCODdcIiwgMjQsIFwiXFx1OEJBQ1xcdThCQjFcXHU4QkJCXFx1OEJDN1xcdThCRDBcXHU4QkVBXFx1OEMwOVxcdThDMUVcXHU0RjRGXFx1NkNFOFxcdTc5NURcXHU5QTdCXFx1NjI5M1xcdTcyMkFcXHU2MkZEXFx1NEUxM1xcdTc4MTZcXHU4RjZDXFx1NjRCMFxcdThENUFcXHU3QkM2XFx1Njg2OVxcdTVFODRcXHU4OEM1XFx1NTk4NlxcdTY0OUVcXHU1OEVFXFx1NzJCNlxcdTY5MEVcXHU5NTI1XFx1OEZGRFxcdThENThcXHU1NzYwXFx1N0YwMFxcdThDMDZcXHU1MUM2XFx1NjM0OVxcdTYyRDlcXHU1MzUzXFx1Njg0Q1xcdTc0MjJcXHU4MzAxXFx1OTE0Q1xcdTU1NDRcXHU3NzQwXFx1NzA3Q1xcdTZENEFcXHU1MTc5XFx1NTRBOFxcdThENDRcXHU1OUZGXFx1NkVDQlxcdTZEQzRcXHU1QjVDXFx1N0QyQlxcdTRFRDRcXHU3QzdEXFx1NkVEM1xcdTVCNTBcXHU4MUVBXFx1NkUwRFxcdTVCNTdcXHU5QjAzXFx1NjhENVxcdThFMkFcXHU1Qjk3XFx1N0VGQ1xcdTYwM0JcXHU3RUI1XFx1OTBCOVxcdThENzBcXHU1OTRGXFx1NjNDRFxcdTc5REZcXHU4REIzXFx1NTM1MlxcdTY1Q0ZcXHU3OTU2XFx1OEJDNVxcdTk2M0JcXHU3RUM0XFx1OTRCQlxcdTdFODJcXHU1NjM0XFx1OTE4OVxcdTY3MDBcXHU3RjZBXFx1NUMwQVxcdTkwNzVcXHU2NjI4XFx1NURFNlxcdTRGNTBcXHU2N0RFXFx1NTA1QVxcdTRGNUNcXHU1NzUwXFx1NUVBN1wiXSxcbiAgICAgIFtcImQ4NDBcIiwgXCJcXHU4QzM4XCIsIDgsIFwiXFx1OEM0MlxcdThDNDNcXHU4QzQ0XFx1OEM0NVxcdThDNDhcXHU4QzRBXFx1OEM0QlxcdThDNERcIiwgNywgXCJcXHU4QzU2XFx1OEM1N1xcdThDNThcXHU4QzU5XFx1OEM1QlwiLCA1LCBcIlxcdThDNjNcIiwgNiwgXCJcXHU4QzZDXCIsIDYsIFwiXFx1OEM3NFxcdThDNzVcXHU4Qzc2XFx1OEM3N1xcdThDN0JcIiwgNiwgXCJcXHU4QzgzXFx1OEM4NFxcdThDODZcXHU4Qzg3XCJdLFxuICAgICAgW1wiZDg4MFwiLCBcIlxcdThDODhcXHU4QzhCXFx1OEM4RFwiLCA2LCBcIlxcdThDOTVcXHU4Qzk2XFx1OEM5N1xcdThDOTlcIiwgMjAsIFwiXFx1NEU4RFxcdTRFMENcXHU1MTQwXFx1NEUxMFxcdTVFRkZcXHU1MzQ1XFx1NEUxNVxcdTRFOThcXHU0RTFFXFx1OUIzMlxcdTVCNkNcXHU1NjY5XFx1NEUyOFxcdTc5QkFcXHU0RTNGXFx1NTMxNVxcdTRFNDdcXHU1OTJEXFx1NzIzQlxcdTUzNkVcXHU2QzEwXFx1NTZERlxcdTgwRTRcXHU5OTk3XFx1NkJEM1xcdTc3N0VcXHU5RjE3XFx1NEUzNlxcdTRFOUZcXHU5RjEwXFx1NEU1Q1xcdTRFNjlcXHU0RTkzXFx1ODI4OFxcdTVCNUJcXHU1NTZDXFx1NTYwRlxcdTRFQzRcXHU1MzhEXFx1NTM5RFxcdTUzQTNcXHU1M0E1XFx1NTNBRVxcdTk3NjVcXHU4RDVEXFx1NTMxQVxcdTUzRjVcXHU1MzI2XFx1NTMyRVxcdTUzM0VcXHU4RDVDXFx1NTM2NlxcdTUzNjNcXHU1MjAyXFx1NTIwOFxcdTUyMEVcXHU1MjJEXFx1NTIzM1xcdTUyM0ZcXHU1MjQwXFx1NTI0Q1xcdTUyNUVcXHU1MjYxXFx1NTI1Q1xcdTg0QUZcXHU1MjdEXFx1NTI4MlxcdTUyODFcXHU1MjkwXFx1NTI5M1xcdTUxODJcXHU3RjU0XFx1NEVCQlxcdTRFQzNcXHU0RUM5XFx1NEVDMlxcdTRFRThcXHU0RUUxXFx1NEVFQlxcdTRFREVcXHU0RjFCXFx1NEVGM1xcdTRGMjJcXHU0RjY0XFx1NEVGNVxcdTRGMjVcXHU0RjI3XFx1NEYwOVxcdTRGMkJcXHU0RjVFXFx1NEY2N1xcdTY1MzhcXHU0RjVBXFx1NEY1RFwiXSxcbiAgICAgIFtcImQ5NDBcIiwgXCJcXHU4Q0FFXCIsIDYyXSxcbiAgICAgIFtcImQ5ODBcIiwgXCJcXHU4Q0VEXCIsIDMyLCBcIlxcdTRGNUZcXHU0RjU3XFx1NEYzMlxcdTRGM0RcXHU0Rjc2XFx1NEY3NFxcdTRGOTFcXHU0Rjg5XFx1NEY4M1xcdTRGOEZcXHU0RjdFXFx1NEY3QlxcdTRGQUFcXHU0RjdDXFx1NEZBQ1xcdTRGOTRcXHU0RkU2XFx1NEZFOFxcdTRGRUFcXHU0RkM1XFx1NEZEQVxcdTRGRTNcXHU0RkRDXFx1NEZEMVxcdTRGREZcXHU0RkY4XFx1NTAyOVxcdTUwNENcXHU0RkYzXFx1NTAyQ1xcdTUwMEZcXHU1MDJFXFx1NTAyRFxcdTRGRkVcXHU1MDFDXFx1NTAwQ1xcdTUwMjVcXHU1MDI4XFx1NTA3RVxcdTUwNDNcXHU1MDU1XFx1NTA0OFxcdTUwNEVcXHU1MDZDXFx1NTA3QlxcdTUwQTVcXHU1MEE3XFx1NTBBOVxcdTUwQkFcXHU1MEQ2XFx1NTEwNlxcdTUwRURcXHU1MEVDXFx1NTBFNlxcdTUwRUVcXHU1MTA3XFx1NTEwQlxcdTRFRERcXHU2QzNEXFx1NEY1OFxcdTRGNjVcXHU0RkNFXFx1OUZBMFxcdTZDNDZcXHU3Qzc0XFx1NTE2RVxcdTVERkRcXHU5RUM5XFx1OTk5OFxcdTUxODFcXHU1OTE0XFx1NTJGOVxcdTUzMERcXHU4QTA3XFx1NTMxMFxcdTUxRUJcXHU1OTE5XFx1NTE1NVxcdTRFQTBcXHU1MTU2XFx1NEVCM1xcdTg4NkVcXHU4OEE0XFx1NEVCNVxcdTgxMTRcXHU4OEQyXFx1Nzk4MFxcdTVCMzRcXHU4ODAzXFx1N0ZCOFxcdTUxQUJcXHU1MUIxXFx1NTFCRFxcdTUxQkNcIl0sXG4gICAgICBbXCJkYTQwXCIsIFwiXFx1OEQwRVwiLCAxNCwgXCJcXHU4RDIwXFx1OEQ1MVxcdThENTJcXHU4RDU3XFx1OEQ1RlxcdThENjVcXHU4RDY4XFx1OEQ2OVxcdThENkFcXHU4RDZDXFx1OEQ2RVxcdThENkZcXHU4RDcxXFx1OEQ3MlxcdThENzhcIiwgOCwgXCJcXHU4RDgyXFx1OEQ4M1xcdThEODZcXHU4RDg3XFx1OEQ4OFxcdThEODlcXHU4RDhDXCIsIDQsIFwiXFx1OEQ5MlxcdThEOTNcXHU4RDk1XCIsIDksIFwiXFx1OERBMFxcdThEQTFcIl0sXG4gICAgICBbXCJkYTgwXCIsIFwiXFx1OERBMlxcdThEQTRcIiwgMTIsIFwiXFx1OERCMlxcdThEQjZcXHU4REI3XFx1OERCOVxcdThEQkJcXHU4REJEXFx1OERDMFxcdThEQzFcXHU4REMyXFx1OERDNVxcdThEQzdcXHU4REM4XFx1OERDOVxcdThEQ0FcXHU4RENEXFx1OEREMFxcdThERDJcXHU4REQzXFx1OERENFxcdTUxQzdcXHU1MTk2XFx1NTFBMlxcdTUxQTVcXHU4QkEwXFx1OEJBNlxcdThCQTdcXHU4QkFBXFx1OEJCNFxcdThCQjVcXHU4QkI3XFx1OEJDMlxcdThCQzNcXHU4QkNCXFx1OEJDRlxcdThCQ0VcXHU4QkQyXFx1OEJEM1xcdThCRDRcXHU4QkQ2XFx1OEJEOFxcdThCRDlcXHU4QkRDXFx1OEJERlxcdThCRTBcXHU4QkU0XFx1OEJFOFxcdThCRTlcXHU4QkVFXFx1OEJGMFxcdThCRjNcXHU4QkY2XFx1OEJGOVxcdThCRkNcXHU4QkZGXFx1OEMwMFxcdThDMDJcXHU4QzA0XFx1OEMwN1xcdThDMENcXHU4QzBGXFx1OEMxMVxcdThDMTJcXHU4QzE0XFx1OEMxNVxcdThDMTZcXHU4QzE5XFx1OEMxQlxcdThDMThcXHU4QzFEXFx1OEMxRlxcdThDMjBcXHU4QzIxXFx1OEMyNVxcdThDMjdcXHU4QzJBXFx1OEMyQlxcdThDMkVcXHU4QzJGXFx1OEMzMlxcdThDMzNcXHU4QzM1XFx1OEMzNlxcdTUzNjlcXHU1MzdBXFx1OTYxRFxcdTk2MjJcXHU5NjIxXFx1OTYzMVxcdTk2MkFcXHU5NjNEXFx1OTYzQ1xcdTk2NDJcXHU5NjQ5XFx1OTY1NFxcdTk2NUZcXHU5NjY3XFx1OTY2Q1xcdTk2NzJcXHU5Njc0XFx1OTY4OFxcdTk2OERcXHU5Njk3XFx1OTZCMFxcdTkwOTdcXHU5MDlCXFx1OTA5RFxcdTkwOTlcXHU5MEFDXFx1OTBBMVxcdTkwQjRcXHU5MEIzXFx1OTBCNlxcdTkwQkFcIl0sXG4gICAgICBbXCJkYjQwXCIsIFwiXFx1OERENVxcdThERDhcXHU4REQ5XFx1OEREQ1xcdThERTBcXHU4REUxXFx1OERFMlxcdThERTVcXHU4REU2XFx1OERFN1xcdThERTlcXHU4REVEXFx1OERFRVxcdThERjBcXHU4REYxXFx1OERGMlxcdThERjRcXHU4REY2XFx1OERGQ1xcdThERkVcIiwgNiwgXCJcXHU4RTA2XFx1OEUwN1xcdThFMDhcXHU4RTBCXFx1OEUwRFxcdThFMEVcXHU4RTEwXFx1OEUxMVxcdThFMTJcXHU4RTEzXFx1OEUxNVwiLCA3LCBcIlxcdThFMjBcXHU4RTIxXFx1OEUyNFwiLCA0LCBcIlxcdThFMkJcXHU4RTJEXFx1OEUzMFxcdThFMzJcXHU4RTMzXFx1OEUzNFxcdThFMzZcXHU4RTM3XFx1OEUzOFxcdThFM0JcXHU4RTNDXFx1OEUzRVwiXSxcbiAgICAgIFtcImRiODBcIiwgXCJcXHU4RTNGXFx1OEU0M1xcdThFNDVcXHU4RTQ2XFx1OEU0Q1wiLCA0LCBcIlxcdThFNTNcIiwgNSwgXCJcXHU4RTVBXCIsIDExLCBcIlxcdThFNjdcXHU4RTY4XFx1OEU2QVxcdThFNkJcXHU4RTZFXFx1OEU3MVxcdTkwQjhcXHU5MEIwXFx1OTBDRlxcdTkwQzVcXHU5MEJFXFx1OTBEMFxcdTkwQzRcXHU5MEM3XFx1OTBEM1xcdTkwRTZcXHU5MEUyXFx1OTBEQ1xcdTkwRDdcXHU5MERCXFx1OTBFQlxcdTkwRUZcXHU5MEZFXFx1OTEwNFxcdTkxMjJcXHU5MTFFXFx1OTEyM1xcdTkxMzFcXHU5MTJGXFx1OTEzOVxcdTkxNDNcXHU5MTQ2XFx1NTIwRFxcdTU5NDJcXHU1MkEyXFx1NTJBQ1xcdTUyQURcXHU1MkJFXFx1NTRGRlxcdTUyRDBcXHU1MkQ2XFx1NTJGMFxcdTUzREZcXHU3MUVFXFx1NzdDRFxcdTVFRjRcXHU1MUY1XFx1NTFGQ1xcdTlCMkZcXHU1M0I2XFx1NUYwMVxcdTc1NUFcXHU1REVGXFx1NTc0Q1xcdTU3QTlcXHU1N0ExXFx1NTg3RVxcdTU4QkNcXHU1OEM1XFx1NThEMVxcdTU3MjlcXHU1NzJDXFx1NTcyQVxcdTU3MzNcXHU1NzM5XFx1NTcyRVxcdTU3MkZcXHU1NzVDXFx1NTczQlxcdTU3NDJcXHU1NzY5XFx1NTc4NVxcdTU3NkJcXHU1Nzg2XFx1NTc3Q1xcdTU3N0JcXHU1NzY4XFx1NTc2RFxcdTU3NzZcXHU1NzczXFx1NTdBRFxcdTU3QTRcXHU1NzhDXFx1NTdCMlxcdTU3Q0ZcXHU1N0E3XFx1NTdCNFxcdTU3OTNcXHU1N0EwXFx1NTdENVxcdTU3RDhcXHU1N0RBXFx1NTdEOVxcdTU3RDJcXHU1N0I4XFx1NTdGNFxcdTU3RUZcXHU1N0Y4XFx1NTdFNFxcdTU3RERcIl0sXG4gICAgICBbXCJkYzQwXCIsIFwiXFx1OEU3M1xcdThFNzVcXHU4RTc3XCIsIDQsIFwiXFx1OEU3RFxcdThFN0VcXHU4RTgwXFx1OEU4MlxcdThFODNcXHU4RTg0XFx1OEU4NlxcdThFODhcIiwgNiwgXCJcXHU4RTkxXFx1OEU5MlxcdThFOTNcXHU4RTk1XCIsIDYsIFwiXFx1OEU5RFxcdThFOUZcIiwgMTEsIFwiXFx1OEVBRFxcdThFQUVcXHU4RUIwXFx1OEVCMVxcdThFQjNcIiwgNiwgXCJcXHU4RUJCXCIsIDddLFxuICAgICAgW1wiZGM4MFwiLCBcIlxcdThFQzNcIiwgMTAsIFwiXFx1OEVDRlwiLCAyMSwgXCJcXHU1ODBCXFx1NTgwRFxcdTU3RkRcXHU1N0VEXFx1NTgwMFxcdTU4MUVcXHU1ODE5XFx1NTg0NFxcdTU4MjBcXHU1ODY1XFx1NTg2Q1xcdTU4ODFcXHU1ODg5XFx1NTg5QVxcdTU4ODBcXHU5OUE4XFx1OUYxOVxcdTYxRkZcXHU4Mjc5XFx1ODI3RFxcdTgyN0ZcXHU4MjhGXFx1ODI4QVxcdTgyQThcXHU4Mjg0XFx1ODI4RVxcdTgyOTFcXHU4Mjk3XFx1ODI5OVxcdTgyQUJcXHU4MkI4XFx1ODJCRVxcdTgyQjBcXHU4MkM4XFx1ODJDQVxcdTgyRTNcXHU4Mjk4XFx1ODJCN1xcdTgyQUVcXHU4MkNCXFx1ODJDQ1xcdTgyQzFcXHU4MkE5XFx1ODJCNFxcdTgyQTFcXHU4MkFBXFx1ODI5RlxcdTgyQzRcXHU4MkNFXFx1ODJBNFxcdTgyRTFcXHU4MzA5XFx1ODJGN1xcdTgyRTRcXHU4MzBGXFx1ODMwN1xcdTgyRENcXHU4MkY0XFx1ODJEMlxcdTgyRDhcXHU4MzBDXFx1ODJGQlxcdTgyRDNcXHU4MzExXFx1ODMxQVxcdTgzMDZcXHU4MzE0XFx1ODMxNVxcdTgyRTBcXHU4MkQ1XFx1ODMxQ1xcdTgzNTFcXHU4MzVCXFx1ODM1Q1xcdTgzMDhcXHU4MzkyXFx1ODMzQ1xcdTgzMzRcXHU4MzMxXFx1ODM5QlxcdTgzNUVcXHU4MzJGXFx1ODM0RlxcdTgzNDdcXHU4MzQzXFx1ODM1RlxcdTgzNDBcXHU4MzE3XFx1ODM2MFxcdTgzMkRcXHU4MzNBXFx1ODMzM1xcdTgzNjZcXHU4MzY1XCJdLFxuICAgICAgW1wiZGQ0MFwiLCBcIlxcdThFRTVcIiwgNjJdLFxuICAgICAgW1wiZGQ4MFwiLCBcIlxcdThGMjRcIiwgMzIsIFwiXFx1ODM2OFxcdTgzMUJcXHU4MzY5XFx1ODM2Q1xcdTgzNkFcXHU4MzZEXFx1ODM2RVxcdTgzQjBcXHU4Mzc4XFx1ODNCM1xcdTgzQjRcXHU4M0EwXFx1ODNBQVxcdTgzOTNcXHU4MzlDXFx1ODM4NVxcdTgzN0NcXHU4M0I2XFx1ODNBOVxcdTgzN0RcXHU4M0I4XFx1ODM3QlxcdTgzOThcXHU4MzlFXFx1ODNBOFxcdTgzQkFcXHU4M0JDXFx1ODNDMVxcdTg0MDFcXHU4M0U1XFx1ODNEOFxcdTU4MDdcXHU4NDE4XFx1ODQwQlxcdTgzRERcXHU4M0ZEXFx1ODNENlxcdTg0MUNcXHU4NDM4XFx1ODQxMVxcdTg0MDZcXHU4M0Q0XFx1ODNERlxcdTg0MEZcXHU4NDAzXFx1ODNGOFxcdTgzRjlcXHU4M0VBXFx1ODNDNVxcdTgzQzBcXHU4NDI2XFx1ODNGMFxcdTgzRTFcXHU4NDVDXFx1ODQ1MVxcdTg0NUFcXHU4NDU5XFx1ODQ3M1xcdTg0ODdcXHU4NDg4XFx1ODQ3QVxcdTg0ODlcXHU4NDc4XFx1ODQzQ1xcdTg0NDZcXHU4NDY5XFx1ODQ3NlxcdTg0OENcXHU4NDhFXFx1ODQzMVxcdTg0NkRcXHU4NEMxXFx1ODRDRFxcdTg0RDBcXHU4NEU2XFx1ODRCRFxcdTg0RDNcXHU4NENBXFx1ODRCRlxcdTg0QkFcXHU4NEUwXFx1ODRBMVxcdTg0QjlcXHU4NEI0XFx1ODQ5N1xcdTg0RTVcXHU4NEUzXFx1ODUwQ1xcdTc1MERcXHU4NTM4XFx1ODRGMFxcdTg1MzlcXHU4NTFGXFx1ODUzQVwiXSxcbiAgICAgIFtcImRlNDBcIiwgXCJcXHU4RjQ1XCIsIDMyLCBcIlxcdThGNkFcXHU4RjgwXFx1OEY4Q1xcdThGOTJcXHU4RjlEXFx1OEZBMFxcdThGQTFcXHU4RkEyXFx1OEZBNFxcdThGQTVcXHU4RkE2XFx1OEZBN1xcdThGQUFcXHU4RkFDXFx1OEZBRFxcdThGQUVcXHU4RkFGXFx1OEZCMlxcdThGQjNcXHU4RkI0XFx1OEZCNVxcdThGQjdcXHU4RkI4XFx1OEZCQVxcdThGQkJcXHU4RkJDXFx1OEZCRlxcdThGQzBcXHU4RkMzXFx1OEZDNlwiXSxcbiAgICAgIFtcImRlODBcIiwgXCJcXHU4RkM5XCIsIDQsIFwiXFx1OEZDRlxcdThGRDJcXHU4RkQ2XFx1OEZEN1xcdThGREFcXHU4RkUwXFx1OEZFMVxcdThGRTNcXHU4RkU3XFx1OEZFQ1xcdThGRUZcXHU4RkYxXFx1OEZGMlxcdThGRjRcXHU4RkY1XFx1OEZGNlxcdThGRkFcXHU4RkZCXFx1OEZGQ1xcdThGRkVcXHU4RkZGXFx1OTAwN1xcdTkwMDhcXHU5MDBDXFx1OTAwRVxcdTkwMTNcXHU5MDE1XFx1OTAxOFxcdTg1NTZcXHU4NTNCXFx1ODRGRlxcdTg0RkNcXHU4NTU5XFx1ODU0OFxcdTg1NjhcXHU4NTY0XFx1ODU1RVxcdTg1N0FcXHU3N0EyXFx1ODU0M1xcdTg1NzJcXHU4NTdCXFx1ODVBNFxcdTg1QThcXHU4NTg3XFx1ODU4RlxcdTg1NzlcXHU4NUFFXFx1ODU5Q1xcdTg1ODVcXHU4NUI5XFx1ODVCN1xcdTg1QjBcXHU4NUQzXFx1ODVDMVxcdTg1RENcXHU4NUZGXFx1ODYyN1xcdTg2MDVcXHU4NjI5XFx1ODYxNlxcdTg2M0NcXHU1RUZFXFx1NUYwOFxcdTU5M0NcXHU1OTQxXFx1ODAzN1xcdTU5NTVcXHU1OTVBXFx1NTk1OFxcdTUzMEZcXHU1QzIyXFx1NUMyNVxcdTVDMkNcXHU1QzM0XFx1NjI0Q1xcdTYyNkFcXHU2MjlGXFx1NjJCQlxcdTYyQ0FcXHU2MkRBXFx1NjJEN1xcdTYyRUVcXHU2MzIyXFx1NjJGNlxcdTYzMzlcXHU2MzRCXFx1NjM0M1xcdTYzQURcXHU2M0Y2XFx1NjM3MVxcdTYzN0FcXHU2MzhFXFx1NjNCNFxcdTYzNkRcXHU2M0FDXFx1NjM4QVxcdTYzNjlcXHU2M0FFXFx1NjNCQ1xcdTYzRjJcXHU2M0Y4XFx1NjNFMFxcdTYzRkZcXHU2M0M0XFx1NjNERVxcdTYzQ0VcXHU2NDUyXFx1NjNDNlxcdTYzQkVcXHU2NDQ1XFx1NjQ0MVxcdTY0MEJcXHU2NDFCXFx1NjQyMFxcdTY0MENcXHU2NDI2XFx1NjQyMVxcdTY0NUVcXHU2NDg0XFx1NjQ2RFxcdTY0OTZcIl0sXG4gICAgICBbXCJkZjQwXCIsIFwiXFx1OTAxOVxcdTkwMUNcXHU5MDIzXFx1OTAyNFxcdTkwMjVcXHU5MDI3XCIsIDUsIFwiXFx1OTAzMFwiLCA0LCBcIlxcdTkwMzdcXHU5MDM5XFx1OTAzQVxcdTkwM0RcXHU5MDNGXFx1OTA0MFxcdTkwNDNcXHU5MDQ1XFx1OTA0NlxcdTkwNDhcIiwgNCwgXCJcXHU5MDRFXFx1OTA1NFxcdTkwNTVcXHU5MDU2XFx1OTA1OVxcdTkwNUFcXHU5MDVDXCIsIDUsIFwiXFx1OTA2NFxcdTkwNjZcXHU5MDY3XFx1OTA2OVxcdTkwNkFcXHU5MDZCXFx1OTA2Q1xcdTkwNkZcIiwgNCwgXCJcXHU5MDc2XCIsIDYsIFwiXFx1OTA3RVxcdTkwODFcIl0sXG4gICAgICBbXCJkZjgwXCIsIFwiXFx1OTA4NFxcdTkwODVcXHU5MDg2XFx1OTA4N1xcdTkwODlcXHU5MDhBXFx1OTA4Q1wiLCA0LCBcIlxcdTkwOTJcXHU5MDk0XFx1OTA5NlxcdTkwOThcXHU5MDlBXFx1OTA5Q1xcdTkwOUVcXHU5MDlGXFx1OTBBMFxcdTkwQTRcXHU5MEE1XFx1OTBBN1xcdTkwQThcXHU5MEE5XFx1OTBBQlxcdTkwQURcXHU5MEIyXFx1OTBCN1xcdTkwQkNcXHU5MEJEXFx1OTBCRlxcdTkwQzBcXHU2NDdBXFx1NjRCN1xcdTY0QjhcXHU2NDk5XFx1NjRCQVxcdTY0QzBcXHU2NEQwXFx1NjREN1xcdTY0RTRcXHU2NEUyXFx1NjUwOVxcdTY1MjVcXHU2NTJFXFx1NUYwQlxcdTVGRDJcXHU3NTE5XFx1NUYxMVxcdTUzNUZcXHU1M0YxXFx1NTNGRFxcdTUzRTlcXHU1M0U4XFx1NTNGQlxcdTU0MTJcXHU1NDE2XFx1NTQwNlxcdTU0NEJcXHU1NDUyXFx1NTQ1M1xcdTU0NTRcXHU1NDU2XFx1NTQ0M1xcdTU0MjFcXHU1NDU3XFx1NTQ1OVxcdTU0MjNcXHU1NDMyXFx1NTQ4MlxcdTU0OTRcXHU1NDc3XFx1NTQ3MVxcdTU0NjRcXHU1NDlBXFx1NTQ5QlxcdTU0ODRcXHU1NDc2XFx1NTQ2NlxcdTU0OURcXHU1NEQwXFx1NTRBRFxcdTU0QzJcXHU1NEI0XFx1NTREMlxcdTU0QTdcXHU1NEE2XFx1NTREM1xcdTU0RDRcXHU1NDcyXFx1NTRBM1xcdTU0RDVcXHU1NEJCXFx1NTRCRlxcdTU0Q0NcXHU1NEQ5XFx1NTREQVxcdTU0RENcXHU1NEE5XFx1NTRBQVxcdTU0QTRcXHU1NEREXFx1NTRDRlxcdTU0REVcXHU1NTFCXFx1NTRFN1xcdTU1MjBcXHU1NEZEXFx1NTUxNFxcdTU0RjNcXHU1NTIyXFx1NTUyM1xcdTU1MEZcXHU1NTExXFx1NTUyN1xcdTU1MkFcXHU1NTY3XFx1NTU4RlxcdTU1QjVcXHU1NTQ5XFx1NTU2RFxcdTU1NDFcXHU1NTU1XFx1NTUzRlxcdTU1NTBcXHU1NTNDXCJdLFxuICAgICAgW1wiZTA0MFwiLCBcIlxcdTkwQzJcXHU5MEMzXFx1OTBDNlxcdTkwQzhcXHU5MEM5XFx1OTBDQlxcdTkwQ0NcXHU5MENEXFx1OTBEMlxcdTkwRDRcXHU5MEQ1XFx1OTBENlxcdTkwRDhcXHU5MEQ5XFx1OTBEQVxcdTkwREVcXHU5MERGXFx1OTBFMFxcdTkwRTNcXHU5MEU0XFx1OTBFNVxcdTkwRTlcXHU5MEVBXFx1OTBFQ1xcdTkwRUVcXHU5MEYwXFx1OTBGMVxcdTkwRjJcXHU5MEYzXFx1OTBGNVxcdTkwRjZcXHU5MEY3XFx1OTBGOVxcdTkwRkFcXHU5MEZCXFx1OTBGQ1xcdTkwRkZcXHU5MTAwXFx1OTEwMVxcdTkxMDNcXHU5MTA1XCIsIDE5LCBcIlxcdTkxMUFcXHU5MTFCXFx1OTExQ1wiXSxcbiAgICAgIFtcImUwODBcIiwgXCJcXHU5MTFEXFx1OTExRlxcdTkxMjBcXHU5MTIxXFx1OTEyNFwiLCAxMCwgXCJcXHU5MTMwXFx1OTEzMlwiLCA2LCBcIlxcdTkxM0FcIiwgOCwgXCJcXHU5MTQ0XFx1NTUzN1xcdTU1NTZcXHU1NTc1XFx1NTU3NlxcdTU1NzdcXHU1NTMzXFx1NTUzMFxcdTU1NUNcXHU1NThCXFx1NTVEMlxcdTU1ODNcXHU1NUIxXFx1NTVCOVxcdTU1ODhcXHU1NTgxXFx1NTU5RlxcdTU1N0VcXHU1NUQ2XFx1NTU5MVxcdTU1N0JcXHU1NURGXFx1NTVCRFxcdTU1QkVcXHU1NTk0XFx1NTU5OVxcdTU1RUFcXHU1NUY3XFx1NTVDOVxcdTU2MUZcXHU1NUQxXFx1NTVFQlxcdTU1RUNcXHU1NUQ0XFx1NTVFNlxcdTU1RERcXHU1NUM0XFx1NTVFRlxcdTU1RTVcXHU1NUYyXFx1NTVGM1xcdTU1Q0NcXHU1NUNEXFx1NTVFOFxcdTU1RjVcXHU1NUU0XFx1OEY5NFxcdTU2MUVcXHU1NjA4XFx1NTYwQ1xcdTU2MDFcXHU1NjI0XFx1NTYyM1xcdTU1RkVcXHU1NjAwXFx1NTYyN1xcdTU2MkRcXHU1NjU4XFx1NTYzOVxcdTU2NTdcXHU1NjJDXFx1NTY0RFxcdTU2NjJcXHU1NjU5XFx1NTY1Q1xcdTU2NENcXHU1NjU0XFx1NTY4NlxcdTU2NjRcXHU1NjcxXFx1NTY2QlxcdTU2N0JcXHU1NjdDXFx1NTY4NVxcdTU2OTNcXHU1NkFGXFx1NTZENFxcdTU2RDdcXHU1NkREXFx1NTZFMVxcdTU2RjVcXHU1NkVCXFx1NTZGOVxcdTU2RkZcXHU1NzA0XFx1NTcwQVxcdTU3MDlcXHU1NzFDXFx1NUUwRlxcdTVFMTlcXHU1RTE0XFx1NUUxMVxcdTVFMzFcXHU1RTNCXFx1NUUzQ1wiXSxcbiAgICAgIFtcImUxNDBcIiwgXCJcXHU5MTQ1XFx1OTE0N1xcdTkxNDhcXHU5MTUxXFx1OTE1M1xcdTkxNTRcXHU5MTU1XFx1OTE1NlxcdTkxNThcXHU5MTU5XFx1OTE1QlxcdTkxNUNcXHU5MTVGXFx1OTE2MFxcdTkxNjZcXHU5MTY3XFx1OTE2OFxcdTkxNkJcXHU5MTZEXFx1OTE3M1xcdTkxN0FcXHU5MTdCXFx1OTE3Q1xcdTkxODBcIiwgNCwgXCJcXHU5MTg2XFx1OTE4OFxcdTkxOEFcXHU5MThFXFx1OTE4RlxcdTkxOTNcIiwgNiwgXCJcXHU5MTlDXCIsIDUsIFwiXFx1OTFBNFwiLCA1LCBcIlxcdTkxQUJcXHU5MUFDXFx1OTFCMFxcdTkxQjFcXHU5MUIyXFx1OTFCM1xcdTkxQjZcXHU5MUI3XFx1OTFCOFxcdTkxQjlcXHU5MUJCXCJdLFxuICAgICAgW1wiZTE4MFwiLCBcIlxcdTkxQkNcIiwgMTAsIFwiXFx1OTFDOFxcdTkxQ0JcXHU5MUQwXFx1OTFEMlwiLCA5LCBcIlxcdTkxRERcIiwgOCwgXCJcXHU1RTM3XFx1NUU0NFxcdTVFNTRcXHU1RTVCXFx1NUU1RVxcdTVFNjFcXHU1QzhDXFx1NUM3QVxcdTVDOERcXHU1QzkwXFx1NUM5NlxcdTVDODhcXHU1Qzk4XFx1NUM5OVxcdTVDOTFcXHU1QzlBXFx1NUM5Q1xcdTVDQjVcXHU1Q0EyXFx1NUNCRFxcdTVDQUNcXHU1Q0FCXFx1NUNCMVxcdTVDQTNcXHU1Q0MxXFx1NUNCN1xcdTVDQzRcXHU1Q0QyXFx1NUNFNFxcdTVDQ0JcXHU1Q0U1XFx1NUQwMlxcdTVEMDNcXHU1RDI3XFx1NUQyNlxcdTVEMkVcXHU1RDI0XFx1NUQxRVxcdTVEMDZcXHU1RDFCXFx1NUQ1OFxcdTVEM0VcXHU1RDM0XFx1NUQzRFxcdTVENkNcXHU1RDVCXFx1NUQ2RlxcdTVENURcXHU1RDZCXFx1NUQ0QlxcdTVENEFcXHU1RDY5XFx1NUQ3NFxcdTVEODJcXHU1RDk5XFx1NUQ5RFxcdThDNzNcXHU1REI3XFx1NURDNVxcdTVGNzNcXHU1Rjc3XFx1NUY4MlxcdTVGODdcXHU1Rjg5XFx1NUY4Q1xcdTVGOTVcXHU1Rjk5XFx1NUY5Q1xcdTVGQThcXHU1RkFEXFx1NUZCNVxcdTVGQkNcXHU4ODYyXFx1NUY2MVxcdTcyQURcXHU3MkIwXFx1NzJCNFxcdTcyQjdcXHU3MkI4XFx1NzJDM1xcdTcyQzFcXHU3MkNFXFx1NzJDRFxcdTcyRDJcXHU3MkU4XFx1NzJFRlxcdTcyRTlcXHU3MkYyXFx1NzJGNFxcdTcyRjdcXHU3MzAxXFx1NzJGM1xcdTczMDNcXHU3MkZBXCJdLFxuICAgICAgW1wiZTI0MFwiLCBcIlxcdTkxRTZcIiwgNjJdLFxuICAgICAgW1wiZTI4MFwiLCBcIlxcdTkyMjVcIiwgMzIsIFwiXFx1NzJGQlxcdTczMTdcXHU3MzEzXFx1NzMyMVxcdTczMEFcXHU3MzFFXFx1NzMxRFxcdTczMTVcXHU3MzIyXFx1NzMzOVxcdTczMjVcXHU3MzJDXFx1NzMzOFxcdTczMzFcXHU3MzUwXFx1NzM0RFxcdTczNTdcXHU3MzYwXFx1NzM2Q1xcdTczNkZcXHU3MzdFXFx1ODIxQlxcdTU5MjVcXHU5OEU3XFx1NTkyNFxcdTU5MDJcXHU5OTYzXFx1OTk2N1wiLCA1LCBcIlxcdTk5NzRcXHU5OTc3XFx1OTk3RFxcdTk5ODBcXHU5OTg0XFx1OTk4N1xcdTk5OEFcXHU5OThEXFx1OTk5MFxcdTk5OTFcXHU5OTkzXFx1OTk5NFxcdTk5OTVcXHU1RTgwXFx1NUU5MVxcdTVFOEJcXHU1RTk2XFx1NUVBNVxcdTVFQTBcXHU1RUI5XFx1NUVCNVxcdTVFQkVcXHU1RUIzXFx1OEQ1M1xcdTVFRDJcXHU1RUQxXFx1NUVEQlxcdTVFRThcXHU1RUVBXFx1ODFCQVxcdTVGQzRcXHU1RkM5XFx1NUZENlxcdTVGQ0ZcXHU2MDAzXFx1NUZFRVxcdTYwMDRcXHU1RkUxXFx1NUZFNFxcdTVGRkVcXHU2MDA1XFx1NjAwNlxcdTVGRUFcXHU1RkVEXFx1NUZGOFxcdTYwMTlcXHU2MDM1XFx1NjAyNlxcdTYwMUJcXHU2MDBGXFx1NjAwRFxcdTYwMjlcXHU2MDJCXFx1NjAwQVxcdTYwM0ZcXHU2MDIxXFx1NjA3OFxcdTYwNzlcXHU2MDdCXFx1NjA3QVxcdTYwNDJcIl0sXG4gICAgICBbXCJlMzQwXCIsIFwiXFx1OTI0NlwiLCA0NSwgXCJcXHU5Mjc1XCIsIDE2XSxcbiAgICAgIFtcImUzODBcIiwgXCJcXHU5Mjg2XCIsIDcsIFwiXFx1OTI4RlwiLCAyNCwgXCJcXHU2MDZBXFx1NjA3RFxcdTYwOTZcXHU2MDlBXFx1NjBBRFxcdTYwOURcXHU2MDgzXFx1NjA5MlxcdTYwOENcXHU2MDlCXFx1NjBFQ1xcdTYwQkJcXHU2MEIxXFx1NjBERFxcdTYwRDhcXHU2MEM2XFx1NjBEQVxcdTYwQjRcXHU2MTIwXFx1NjEyNlxcdTYxMTVcXHU2MTIzXFx1NjBGNFxcdTYxMDBcXHU2MTBFXFx1NjEyQlxcdTYxNEFcXHU2MTc1XFx1NjFBQ1xcdTYxOTRcXHU2MUE3XFx1NjFCN1xcdTYxRDRcXHU2MUY1XFx1NUZERFxcdTk2QjNcXHU5NUU5XFx1OTVFQlxcdTk1RjFcXHU5NUYzXFx1OTVGNVxcdTk1RjZcXHU5NUZDXFx1OTVGRVxcdTk2MDNcXHU5NjA0XFx1OTYwNlxcdTk2MDhcXHU5NjBBXFx1OTYwQlxcdTk2MENcXHU5NjBEXFx1OTYwRlxcdTk2MTJcXHU5NjE1XFx1OTYxNlxcdTk2MTdcXHU5NjE5XFx1OTYxQVxcdTRFMkNcXHU3MjNGXFx1NjIxNVxcdTZDMzVcXHU2QzU0XFx1NkM1Q1xcdTZDNEFcXHU2Q0EzXFx1NkM4NVxcdTZDOTBcXHU2Qzk0XFx1NkM4Q1xcdTZDNjhcXHU2QzY5XFx1NkM3NFxcdTZDNzZcXHU2Qzg2XFx1NkNBOVxcdTZDRDBcXHU2Q0Q0XFx1NkNBRFxcdTZDRjdcXHU2Q0Y4XFx1NkNGMVxcdTZDRDdcXHU2Q0IyXFx1NkNFMFxcdTZDRDZcXHU2Q0ZBXFx1NkNFQlxcdTZDRUVcXHU2Q0IxXFx1NkNEM1xcdTZDRUZcXHU2Q0ZFXCJdLFxuICAgICAgW1wiZTQ0MFwiLCBcIlxcdTkyQThcIiwgNSwgXCJcXHU5MkFGXCIsIDI0LCBcIlxcdTkyQzlcIiwgMzFdLFxuICAgICAgW1wiZTQ4MFwiLCBcIlxcdTkyRTlcIiwgMzIsIFwiXFx1NkQzOVxcdTZEMjdcXHU2RDBDXFx1NkQ0M1xcdTZENDhcXHU2RDA3XFx1NkQwNFxcdTZEMTlcXHU2RDBFXFx1NkQyQlxcdTZENERcXHU2RDJFXFx1NkQzNVxcdTZEMUFcXHU2RDRGXFx1NkQ1MlxcdTZENTRcXHU2RDMzXFx1NkQ5MVxcdTZENkZcXHU2RDlFXFx1NkRBMFxcdTZENUVcXHU2RDkzXFx1NkQ5NFxcdTZENUNcXHU2RDYwXFx1NkQ3Q1xcdTZENjNcXHU2RTFBXFx1NkRDN1xcdTZEQzVcXHU2RERFXFx1NkUwRVxcdTZEQkZcXHU2REUwXFx1NkUxMVxcdTZERTZcXHU2REREXFx1NkREOVxcdTZFMTZcXHU2REFCXFx1NkUwQ1xcdTZEQUVcXHU2RTJCXFx1NkU2RVxcdTZFNEVcXHU2RTZCXFx1NkVCMlxcdTZFNUZcXHU2RTg2XFx1NkU1M1xcdTZFNTRcXHU2RTMyXFx1NkUyNVxcdTZFNDRcXHU2RURGXFx1NkVCMVxcdTZFOThcXHU2RUUwXFx1NkYyRFxcdTZFRTJcXHU2RUE1XFx1NkVBN1xcdTZFQkRcXHU2RUJCXFx1NkVCN1xcdTZFRDdcXHU2RUI0XFx1NkVDRlxcdTZFOEZcXHU2RUMyXFx1NkU5RlxcdTZGNjJcXHU2RjQ2XFx1NkY0N1xcdTZGMjRcXHU2RjE1XFx1NkVGOVxcdTZGMkZcXHU2RjM2XFx1NkY0QlxcdTZGNzRcXHU2RjJBXFx1NkYwOVxcdTZGMjlcXHU2Rjg5XFx1NkY4RFxcdTZGOENcXHU2Rjc4XFx1NkY3MlxcdTZGN0NcXHU2RjdBXFx1NkZEMVwiXSxcbiAgICAgIFtcImU1NDBcIiwgXCJcXHU5MzBBXCIsIDUxLCBcIlxcdTkzM0ZcIiwgMTBdLFxuICAgICAgW1wiZTU4MFwiLCBcIlxcdTkzNEFcIiwgMzEsIFwiXFx1OTM2QlxcdTZGQzlcXHU2RkE3XFx1NkZCOVxcdTZGQjZcXHU2RkMyXFx1NkZFMVxcdTZGRUVcXHU2RkRFXFx1NkZFMFxcdTZGRUZcXHU3MDFBXFx1NzAyM1xcdTcwMUJcXHU3MDM5XFx1NzAzNVxcdTcwNEZcXHU3MDVFXFx1NUI4MFxcdTVCODRcXHU1Qjk1XFx1NUI5M1xcdTVCQTVcXHU1QkI4XFx1NzUyRlxcdTlBOUVcXHU2NDM0XFx1NUJFNFxcdTVCRUVcXHU4OTMwXFx1NUJGMFxcdThFNDdcXHU4QjA3XFx1OEZCNlxcdThGRDNcXHU4RkQ1XFx1OEZFNVxcdThGRUVcXHU4RkU0XFx1OEZFOVxcdThGRTZcXHU4RkYzXFx1OEZFOFxcdTkwMDVcXHU5MDA0XFx1OTAwQlxcdTkwMjZcXHU5MDExXFx1OTAwRFxcdTkwMTZcXHU5MDIxXFx1OTAzNVxcdTkwMzZcXHU5MDJEXFx1OTAyRlxcdTkwNDRcXHU5MDUxXFx1OTA1MlxcdTkwNTBcXHU5MDY4XFx1OTA1OFxcdTkwNjJcXHU5MDVCXFx1NjZCOVxcdTkwNzRcXHU5MDdEXFx1OTA4MlxcdTkwODhcXHU5MDgzXFx1OTA4QlxcdTVGNTBcXHU1RjU3XFx1NUY1NlxcdTVGNThcXHU1QzNCXFx1NTRBQlxcdTVDNTBcXHU1QzU5XFx1NUI3MVxcdTVDNjNcXHU1QzY2XFx1N0ZCQ1xcdTVGMkFcXHU1RjI5XFx1NUYyRFxcdTgyNzRcXHU1RjNDXFx1OUIzQlxcdTVDNkVcXHU1OTgxXFx1NTk4M1xcdTU5OERcXHU1OUE5XFx1NTlBQVxcdTU5QTNcIl0sXG4gICAgICBbXCJlNjQwXCIsIFwiXFx1OTM2Q1wiLCAzNCwgXCJcXHU5MzkwXCIsIDI3XSxcbiAgICAgIFtcImU2ODBcIiwgXCJcXHU5M0FDXCIsIDI5LCBcIlxcdTkzQ0JcXHU5M0NDXFx1OTNDRFxcdTU5OTdcXHU1OUNBXFx1NTlBQlxcdTU5OUVcXHU1OUE0XFx1NTlEMlxcdTU5QjJcXHU1OUFGXFx1NTlEN1xcdTU5QkVcXHU1QTA1XFx1NUEwNlxcdTU5RERcXHU1QTA4XFx1NTlFM1xcdTU5RDhcXHU1OUY5XFx1NUEwQ1xcdTVBMDlcXHU1QTMyXFx1NUEzNFxcdTVBMTFcXHU1QTIzXFx1NUExM1xcdTVBNDBcXHU1QTY3XFx1NUE0QVxcdTVBNTVcXHU1QTNDXFx1NUE2MlxcdTVBNzVcXHU4MEVDXFx1NUFBQVxcdTVBOUJcXHU1QTc3XFx1NUE3QVxcdTVBQkVcXHU1QUVCXFx1NUFCMlxcdTVBRDJcXHU1QUQ0XFx1NUFCOFxcdTVBRTBcXHU1QUUzXFx1NUFGMVxcdTVBRDZcXHU1QUU2XFx1NUFEOFxcdTVBRENcXHU1QjA5XFx1NUIxN1xcdTVCMTZcXHU1QjMyXFx1NUIzN1xcdTVCNDBcXHU1QzE1XFx1NUMxQ1xcdTVCNUFcXHU1QjY1XFx1NUI3M1xcdTVCNTFcXHU1QjUzXFx1NUI2MlxcdTlBNzVcXHU5QTc3XFx1OUE3OFxcdTlBN0FcXHU5QTdGXFx1OUE3RFxcdTlBODBcXHU5QTgxXFx1OUE4NVxcdTlBODhcXHU5QThBXFx1OUE5MFxcdTlBOTJcXHU5QTkzXFx1OUE5NlxcdTlBOThcXHU5QTlCXFx1OUE5Q1xcdTlBOURcXHU5QTlGXFx1OUFBMFxcdTlBQTJcXHU5QUEzXFx1OUFBNVxcdTlBQTdcXHU3RTlGXFx1N0VBMVxcdTdFQTNcXHU3RUE1XFx1N0VBOFxcdTdFQTlcIl0sXG4gICAgICBbXCJlNzQwXCIsIFwiXFx1OTNDRVwiLCA3LCBcIlxcdTkzRDdcIiwgNTRdLFxuICAgICAgW1wiZTc4MFwiLCBcIlxcdTk0MEVcIiwgMzIsIFwiXFx1N0VBRFxcdTdFQjBcXHU3RUJFXFx1N0VDMFxcdTdFQzFcXHU3RUMyXFx1N0VDOVxcdTdFQ0JcXHU3RUNDXFx1N0VEMFxcdTdFRDRcXHU3RUQ3XFx1N0VEQlxcdTdFRTBcXHU3RUUxXFx1N0VFOFxcdTdFRUJcXHU3RUVFXFx1N0VFRlxcdTdFRjFcXHU3RUYyXFx1N0YwRFxcdTdFRjZcXHU3RUZBXFx1N0VGQlxcdTdFRkVcXHU3RjAxXFx1N0YwMlxcdTdGMDNcXHU3RjA3XFx1N0YwOFxcdTdGMEJcXHU3RjBDXFx1N0YwRlxcdTdGMTFcXHU3RjEyXFx1N0YxN1xcdTdGMTlcXHU3RjFDXFx1N0YxQlxcdTdGMUZcXHU3RjIxXCIsIDYsIFwiXFx1N0YyQVxcdTdGMkJcXHU3RjJDXFx1N0YyRFxcdTdGMkZcIiwgNCwgXCJcXHU3RjM1XFx1NUU3QVxcdTc1N0ZcXHU1RERCXFx1NzUzRVxcdTkwOTVcXHU3MzhFXFx1NzM5MVxcdTczQUVcXHU3M0EyXFx1NzM5RlxcdTczQ0ZcXHU3M0MyXFx1NzNEMVxcdTczQjdcXHU3M0IzXFx1NzNDMFxcdTczQzlcXHU3M0M4XFx1NzNFNVxcdTczRDlcXHU5ODdDXFx1NzQwQVxcdTczRTlcXHU3M0U3XFx1NzNERVxcdTczQkFcXHU3M0YyXFx1NzQwRlxcdTc0MkFcXHU3NDVCXFx1NzQyNlxcdTc0MjVcXHU3NDI4XFx1NzQzMFxcdTc0MkVcXHU3NDJDXCJdLFxuICAgICAgW1wiZTg0MFwiLCBcIlxcdTk0MkZcIiwgMTQsIFwiXFx1OTQzRlwiLCA0MywgXCJcXHU5NDZDXFx1OTQ2RFxcdTk0NkVcXHU5NDZGXCJdLFxuICAgICAgW1wiZTg4MFwiLCBcIlxcdTk0NzBcIiwgMjAsIFwiXFx1OTQ5MVxcdTk0OTZcXHU5NDk4XFx1OTRDN1xcdTk0Q0ZcXHU5NEQzXFx1OTRENFxcdTk0REFcXHU5NEU2XFx1OTRGQlxcdTk1MUNcXHU5NTIwXFx1NzQxQlxcdTc0MUFcXHU3NDQxXFx1NzQ1Q1xcdTc0NTdcXHU3NDU1XFx1NzQ1OVxcdTc0NzdcXHU3NDZEXFx1NzQ3RVxcdTc0OUNcXHU3NDhFXFx1NzQ4MFxcdTc0ODFcXHU3NDg3XFx1NzQ4QlxcdTc0OUVcXHU3NEE4XFx1NzRBOVxcdTc0OTBcXHU3NEE3XFx1NzREMlxcdTc0QkFcXHU5N0VBXFx1OTdFQlxcdTk3RUNcXHU2NzRDXFx1Njc1M1xcdTY3NUVcXHU2NzQ4XFx1Njc2OVxcdTY3QTVcXHU2Nzg3XFx1Njc2QVxcdTY3NzNcXHU2Nzk4XFx1NjdBN1xcdTY3NzVcXHU2N0E4XFx1Njc5RVxcdTY3QURcXHU2NzhCXFx1Njc3N1xcdTY3N0NcXHU2N0YwXFx1NjgwOVxcdTY3RDhcXHU2ODBBXFx1NjdFOVxcdTY3QjBcXHU2ODBDXFx1NjdEOVxcdTY3QjVcXHU2N0RBXFx1NjdCM1xcdTY3RERcXHU2ODAwXFx1NjdDM1xcdTY3QjhcXHU2N0UyXFx1NjgwRVxcdTY3QzFcXHU2N0ZEXFx1NjgzMlxcdTY4MzNcXHU2ODYwXFx1Njg2MVxcdTY4NEVcXHU2ODYyXFx1Njg0NFxcdTY4NjRcXHU2ODgzXFx1NjgxRFxcdTY4NTVcXHU2ODY2XFx1Njg0MVxcdTY4NjdcXHU2ODQwXFx1NjgzRVxcdTY4NEFcXHU2ODQ5XFx1NjgyOVxcdTY4QjVcXHU2ODhGXFx1Njg3NFxcdTY4NzdcXHU2ODkzXFx1Njg2QlxcdTY4QzJcXHU2OTZFXFx1NjhGQ1xcdTY5MUZcXHU2OTIwXFx1NjhGOVwiXSxcbiAgICAgIFtcImU5NDBcIiwgXCJcXHU5NTI3XFx1OTUzM1xcdTk1M0RcXHU5NTQzXFx1OTU0OFxcdTk1NEJcXHU5NTU1XFx1OTU1QVxcdTk1NjBcXHU5NTZFXFx1OTU3NFxcdTk1NzVcXHU5NTc3XCIsIDcsIFwiXFx1OTU4MFwiLCA0Ml0sXG4gICAgICBbXCJlOTgwXCIsIFwiXFx1OTVBQlwiLCAzMiwgXCJcXHU2OTI0XFx1NjhGMFxcdTY5MEJcXHU2OTAxXFx1Njk1N1xcdTY4RTNcXHU2OTEwXFx1Njk3MVxcdTY5MzlcXHU2OTYwXFx1Njk0MlxcdTY5NURcXHU2OTg0XFx1Njk2QlxcdTY5ODBcXHU2OTk4XFx1Njk3OFxcdTY5MzRcXHU2OUNDXFx1Njk4N1xcdTY5ODhcXHU2OUNFXFx1Njk4OVxcdTY5NjZcXHU2OTYzXFx1Njk3OVxcdTY5OUJcXHU2OUE3XFx1NjlCQlxcdTY5QUJcXHU2OUFEXFx1NjlENFxcdTY5QjFcXHU2OUMxXFx1NjlDQVxcdTY5REZcXHU2OTk1XFx1NjlFMFxcdTY5OERcXHU2OUZGXFx1NkEyRlxcdTY5RURcXHU2QTE3XFx1NkExOFxcdTZBNjVcXHU2OUYyXFx1NkE0NFxcdTZBM0VcXHU2QUEwXFx1NkE1MFxcdTZBNUJcXHU2QTM1XFx1NkE4RVxcdTZBNzlcXHU2QTNEXFx1NkEyOFxcdTZBNThcXHU2QTdDXFx1NkE5MVxcdTZBOTBcXHU2QUE5XFx1NkE5N1xcdTZBQUJcXHU3MzM3XFx1NzM1MlxcdTZCODFcXHU2QjgyXFx1NkI4N1xcdTZCODRcXHU2QjkyXFx1NkI5M1xcdTZCOERcXHU2QjlBXFx1NkI5QlxcdTZCQTFcXHU2QkFBXFx1OEY2QlxcdThGNkRcXHU4RjcxXFx1OEY3MlxcdThGNzNcXHU4Rjc1XFx1OEY3NlxcdThGNzhcXHU4Rjc3XFx1OEY3OVxcdThGN0FcXHU4RjdDXFx1OEY3RVxcdThGODFcXHU4RjgyXFx1OEY4NFxcdThGODdcXHU4RjhCXCJdLFxuICAgICAgW1wiZWE0MFwiLCBcIlxcdTk1Q0NcIiwgMjcsIFwiXFx1OTVFQ1xcdTk1RkZcXHU5NjA3XFx1OTYxM1xcdTk2MThcXHU5NjFCXFx1OTYxRVxcdTk2MjBcXHU5NjIzXCIsIDYsIFwiXFx1OTYyQlxcdTk2MkNcXHU5NjJEXFx1OTYyRlxcdTk2MzBcXHU5NjM3XFx1OTYzOFxcdTk2MzlcXHU5NjNBXFx1OTYzRVxcdTk2NDFcXHU5NjQzXFx1OTY0QVxcdTk2NEVcXHU5NjRGXFx1OTY1MVxcdTk2NTJcXHU5NjUzXFx1OTY1NlxcdTk2NTdcIl0sXG4gICAgICBbXCJlYTgwXCIsIFwiXFx1OTY1OFxcdTk2NTlcXHU5NjVBXFx1OTY1Q1xcdTk2NURcXHU5NjVFXFx1OTY2MFxcdTk2NjNcXHU5NjY1XFx1OTY2NlxcdTk2NkJcXHU5NjZEXCIsIDQsIFwiXFx1OTY3M1xcdTk2NzhcIiwgMTIsIFwiXFx1OTY4N1xcdTk2ODlcXHU5NjhBXFx1OEY4RFxcdThGOEVcXHU4RjhGXFx1OEY5OFxcdThGOUFcXHU4RUNFXFx1NjIwQlxcdTYyMTdcXHU2MjFCXFx1NjIxRlxcdTYyMjJcXHU2MjIxXFx1NjIyNVxcdTYyMjRcXHU2MjJDXFx1ODFFN1xcdTc0RUZcXHU3NEY0XFx1NzRGRlxcdTc1MEZcXHU3NTExXFx1NzUxM1xcdTY1MzRcXHU2NUVFXFx1NjVFRlxcdTY1RjBcXHU2NjBBXFx1NjYxOVxcdTY3NzJcXHU2NjAzXFx1NjYxNVxcdTY2MDBcXHU3MDg1XFx1NjZGN1xcdTY2MURcXHU2NjM0XFx1NjYzMVxcdTY2MzZcXHU2NjM1XFx1ODAwNlxcdTY2NUZcXHU2NjU0XFx1NjY0MVxcdTY2NEZcXHU2NjU2XFx1NjY2MVxcdTY2NTdcXHU2Njc3XFx1NjY4NFxcdTY2OENcXHU2NkE3XFx1NjY5RFxcdTY2QkVcXHU2NkRCXFx1NjZEQ1xcdTY2RTZcXHU2NkU5XFx1OEQzMlxcdThEMzNcXHU4RDM2XFx1OEQzQlxcdThEM0RcXHU4RDQwXFx1OEQ0NVxcdThENDZcXHU4RDQ4XFx1OEQ0OVxcdThENDdcXHU4RDREXFx1OEQ1NVxcdThENTlcXHU4OUM3XFx1ODlDQVxcdTg5Q0JcXHU4OUNDXFx1ODlDRVxcdTg5Q0ZcXHU4OUQwXFx1ODlEMVxcdTcyNkVcXHU3MjlGXFx1NzI1RFxcdTcyNjZcXHU3MjZGXFx1NzI3RVxcdTcyN0ZcXHU3Mjg0XFx1NzI4QlxcdTcyOERcXHU3MjhGXFx1NzI5MlxcdTYzMDhcXHU2MzMyXFx1NjNCMFwiXSxcbiAgICAgIFtcImViNDBcIiwgXCJcXHU5NjhDXFx1OTY4RVxcdTk2OTFcXHU5NjkyXFx1OTY5M1xcdTk2OTVcXHU5Njk2XFx1OTY5QVxcdTk2OUJcXHU5NjlEXCIsIDksIFwiXFx1OTZBOFwiLCA3LCBcIlxcdTk2QjFcXHU5NkIyXFx1OTZCNFxcdTk2QjVcXHU5NkI3XFx1OTZCOFxcdTk2QkFcXHU5NkJCXFx1OTZCRlxcdTk2QzJcXHU5NkMzXFx1OTZDOFxcdTk2Q0FcXHU5NkNCXFx1OTZEMFxcdTk2RDFcXHU5NkQzXFx1OTZENFxcdTk2RDZcIiwgOSwgXCJcXHU5NkUxXCIsIDYsIFwiXFx1OTZFQlwiXSxcbiAgICAgIFtcImViODBcIiwgXCJcXHU5NkVDXFx1OTZFRFxcdTk2RUVcXHU5NkYwXFx1OTZGMVxcdTk2RjJcXHU5NkY0XFx1OTZGNVxcdTk2RjhcXHU5NkZBXFx1OTZGQlxcdTk2RkNcXHU5NkZEXFx1OTZGRlxcdTk3MDJcXHU5NzAzXFx1OTcwNVxcdTk3MEFcXHU5NzBCXFx1OTcwQ1xcdTk3MTBcXHU5NzExXFx1OTcxMlxcdTk3MTRcXHU5NzE1XFx1OTcxN1wiLCA0LCBcIlxcdTk3MURcXHU5NzFGXFx1OTcyMFxcdTY0M0ZcXHU2NEQ4XFx1ODAwNFxcdTZCRUFcXHU2QkYzXFx1NkJGRFxcdTZCRjVcXHU2QkY5XFx1NkMwNVxcdTZDMDdcXHU2QzA2XFx1NkMwRFxcdTZDMTVcXHU2QzE4XFx1NkMxOVxcdTZDMUFcXHU2QzIxXFx1NkMyOVxcdTZDMjRcXHU2QzJBXFx1NkMzMlxcdTY1MzVcXHU2NTU1XFx1NjU2QlxcdTcyNERcXHU3MjUyXFx1NzI1NlxcdTcyMzBcXHU4NjYyXFx1NTIxNlxcdTgwOUZcXHU4MDlDXFx1ODA5M1xcdTgwQkNcXHU2NzBBXFx1ODBCRFxcdTgwQjFcXHU4MEFCXFx1ODBBRFxcdTgwQjRcXHU4MEI3XFx1ODBFN1xcdTgwRThcXHU4MEU5XFx1ODBFQVxcdTgwREJcXHU4MEMyXFx1ODBDNFxcdTgwRDlcXHU4MENEXFx1ODBEN1xcdTY3MTBcXHU4MEREXFx1ODBFQlxcdTgwRjFcXHU4MEY0XFx1ODBFRFxcdTgxMERcXHU4MTBFXFx1ODBGMlxcdTgwRkNcXHU2NzE1XFx1ODExMlxcdThDNUFcXHU4MTM2XFx1ODExRVxcdTgxMkNcXHU4MTE4XFx1ODEzMlxcdTgxNDhcXHU4MTRDXFx1ODE1M1xcdTgxNzRcXHU4MTU5XFx1ODE1QVxcdTgxNzFcXHU4MTYwXFx1ODE2OVxcdTgxN0NcXHU4MTdEXFx1ODE2RFxcdTgxNjdcXHU1ODREXFx1NUFCNVxcdTgxODhcXHU4MTgyXFx1ODE5MVxcdTZFRDVcXHU4MUEzXFx1ODFBQVxcdTgxQ0NcXHU2NzI2XFx1ODFDQVxcdTgxQkJcIl0sXG4gICAgICBbXCJlYzQwXCIsIFwiXFx1OTcyMVwiLCA4LCBcIlxcdTk3MkJcXHU5NzJDXFx1OTcyRVxcdTk3MkZcXHU5NzMxXFx1OTczM1wiLCA0LCBcIlxcdTk3M0FcXHU5NzNCXFx1OTczQ1xcdTk3M0RcXHU5NzNGXCIsIDE4LCBcIlxcdTk3NTRcXHU5NzU1XFx1OTc1N1xcdTk3NThcXHU5NzVBXFx1OTc1Q1xcdTk3NURcXHU5NzVGXFx1OTc2M1xcdTk3NjRcXHU5NzY2XFx1OTc2N1xcdTk3NjhcXHU5NzZBXCIsIDddLFxuICAgICAgW1wiZWM4MFwiLCBcIlxcdTk3NzJcXHU5Nzc1XFx1OTc3N1wiLCA0LCBcIlxcdTk3N0RcIiwgNywgXCJcXHU5Nzg2XCIsIDQsIFwiXFx1OTc4Q1xcdTk3OEVcXHU5NzhGXFx1OTc5MFxcdTk3OTNcXHU5Nzk1XFx1OTc5NlxcdTk3OTdcXHU5Nzk5XCIsIDQsIFwiXFx1ODFDMVxcdTgxQTZcXHU2QjI0XFx1NkIzN1xcdTZCMzlcXHU2QjQzXFx1NkI0NlxcdTZCNTlcXHU5OEQxXFx1OThEMlxcdTk4RDNcXHU5OEQ1XFx1OThEOVxcdTk4REFcXHU2QkIzXFx1NUY0MFxcdTZCQzJcXHU4OUYzXFx1NjU5MFxcdTlGNTFcXHU2NTkzXFx1NjVCQ1xcdTY1QzZcXHU2NUM0XFx1NjVDM1xcdTY1Q0NcXHU2NUNFXFx1NjVEMlxcdTY1RDZcXHU3MDgwXFx1NzA5Q1xcdTcwOTZcXHU3MDlEXFx1NzBCQlxcdTcwQzBcXHU3MEI3XFx1NzBBQlxcdTcwQjFcXHU3MEU4XFx1NzBDQVxcdTcxMTBcXHU3MTEzXFx1NzExNlxcdTcxMkZcXHU3MTMxXFx1NzE3M1xcdTcxNUNcXHU3MTY4XFx1NzE0NVxcdTcxNzJcXHU3MTRBXFx1NzE3OFxcdTcxN0FcXHU3MTk4XFx1NzFCM1xcdTcxQjVcXHU3MUE4XFx1NzFBMFxcdTcxRTBcXHU3MUQ0XFx1NzFFN1xcdTcxRjlcXHU3MjFEXFx1NzIyOFxcdTcwNkNcXHU3MTE4XFx1NzE2NlxcdTcxQjlcXHU2MjNFXFx1NjIzRFxcdTYyNDNcXHU2MjQ4XFx1NjI0OVxcdTc5M0JcXHU3OTQwXFx1Nzk0NlxcdTc5NDlcXHU3OTVCXFx1Nzk1Q1xcdTc5NTNcXHU3OTVBXFx1Nzk2MlxcdTc5NTdcXHU3OTYwXFx1Nzk2RlxcdTc5NjdcXHU3OTdBXFx1Nzk4NVxcdTc5OEFcXHU3OTlBXFx1NzlBN1xcdTc5QjNcXHU1RkQxXFx1NUZEMFwiXSxcbiAgICAgIFtcImVkNDBcIiwgXCJcXHU5NzlFXFx1OTc5RlxcdTk3QTFcXHU5N0EyXFx1OTdBNFwiLCA2LCBcIlxcdTk3QUNcXHU5N0FFXFx1OTdCMFxcdTk3QjFcXHU5N0IzXFx1OTdCNVwiLCA0Nl0sXG4gICAgICBbXCJlZDgwXCIsIFwiXFx1OTdFNFxcdTk3RTVcXHU5N0U4XFx1OTdFRVwiLCA0LCBcIlxcdTk3RjRcXHU5N0Y3XCIsIDIzLCBcIlxcdTYwM0NcXHU2MDVEXFx1NjA1QVxcdTYwNjdcXHU2MDQxXFx1NjA1OVxcdTYwNjNcXHU2MEFCXFx1NjEwNlxcdTYxMERcXHU2MTVEXFx1NjFBOVxcdTYxOURcXHU2MUNCXFx1NjFEMVxcdTYyMDZcXHU4MDgwXFx1ODA3RlxcdTZDOTNcXHU2Q0Y2XFx1NkRGQ1xcdTc3RjZcXHU3N0Y4XFx1NzgwMFxcdTc4MDlcXHU3ODE3XFx1NzgxOFxcdTc4MTFcXHU2NUFCXFx1NzgyRFxcdTc4MUNcXHU3ODFEXFx1NzgzOVxcdTc4M0FcXHU3ODNCXFx1NzgxRlxcdTc4M0NcXHU3ODI1XFx1NzgyQ1xcdTc4MjNcXHU3ODI5XFx1Nzg0RVxcdTc4NkRcXHU3ODU2XFx1Nzg1N1xcdTc4MjZcXHU3ODUwXFx1Nzg0N1xcdTc4NENcXHU3ODZBXFx1Nzg5QlxcdTc4OTNcXHU3ODlBXFx1Nzg4N1xcdTc4OUNcXHU3OEExXFx1NzhBM1xcdTc4QjJcXHU3OEI5XFx1NzhBNVxcdTc4RDRcXHU3OEQ5XFx1NzhDOVxcdTc4RUNcXHU3OEYyXFx1NzkwNVxcdTc4RjRcXHU3OTEzXFx1NzkyNFxcdTc5MUVcXHU3OTM0XFx1OUY5QlxcdTlFRjlcXHU5RUZCXFx1OUVGQ1xcdTc2RjFcXHU3NzA0XFx1NzcwRFxcdTc2RjlcXHU3NzA3XFx1NzcwOFxcdTc3MUFcXHU3NzIyXFx1NzcxOVxcdTc3MkRcXHU3NzI2XFx1NzczNVxcdTc3MzhcXHU3NzUwXFx1Nzc1MVxcdTc3NDdcXHU3NzQzXFx1Nzc1QVxcdTc3NjhcIl0sXG4gICAgICBbXCJlZTQwXCIsIFwiXFx1OTgwRlwiLCA2Ml0sXG4gICAgICBbXCJlZTgwXCIsIFwiXFx1OTg0RVwiLCAzMiwgXCJcXHU3NzYyXFx1Nzc2NVxcdTc3N0ZcXHU3NzhEXFx1Nzc3RFxcdTc3ODBcXHU3NzhDXFx1Nzc5MVxcdTc3OUZcXHU3N0EwXFx1NzdCMFxcdTc3QjVcXHU3N0JEXFx1NzUzQVxcdTc1NDBcXHU3NTRFXFx1NzU0QlxcdTc1NDhcXHU3NTVCXFx1NzU3MlxcdTc1NzlcXHU3NTgzXFx1N0Y1OFxcdTdGNjFcXHU3RjVGXFx1OEE0OFxcdTdGNjhcXHU3Rjc0XFx1N0Y3MVxcdTdGNzlcXHU3RjgxXFx1N0Y3RVxcdTc2Q0RcXHU3NkU1XFx1ODgzMlxcdTk0ODVcXHU5NDg2XFx1OTQ4N1xcdTk0OEJcXHU5NDhBXFx1OTQ4Q1xcdTk0OERcXHU5NDhGXFx1OTQ5MFxcdTk0OTRcXHU5NDk3XFx1OTQ5NVxcdTk0OUFcXHU5NDlCXFx1OTQ5Q1xcdTk0QTNcXHU5NEE0XFx1OTRBQlxcdTk0QUFcXHU5NEFEXFx1OTRBQ1xcdTk0QUZcXHU5NEIwXFx1OTRCMlxcdTk0QjRcXHU5NEI2XCIsIDQsIFwiXFx1OTRCQ1xcdTk0QkRcXHU5NEJGXFx1OTRDNFxcdTk0QzhcIiwgNiwgXCJcXHU5NEQwXFx1OTREMVxcdTk0RDJcXHU5NEQ1XFx1OTRENlxcdTk0RDdcXHU5NEQ5XFx1OTREOFxcdTk0REJcXHU5NERFXFx1OTRERlxcdTk0RTBcXHU5NEUyXFx1OTRFNFxcdTk0RTVcXHU5NEU3XFx1OTRFOFxcdTk0RUFcIl0sXG4gICAgICBbXCJlZjQwXCIsIFwiXFx1OTg2RlwiLCA1LCBcIlxcdTk4OEJcXHU5ODhFXFx1OTg5MlxcdTk4OTVcXHU5ODk5XFx1OThBM1xcdTk4QThcIiwgMzcsIFwiXFx1OThDRlxcdTk4RDBcXHU5OEQ0XFx1OThENlxcdTk4RDdcXHU5OERCXFx1OThEQ1xcdTk4RERcXHU5OEUwXCIsIDRdLFxuICAgICAgW1wiZWY4MFwiLCBcIlxcdTk4RTVcXHU5OEU2XFx1OThFOVwiLCAzMCwgXCJcXHU5NEU5XFx1OTRFQlxcdTk0RUVcXHU5NEVGXFx1OTRGM1xcdTk0RjRcXHU5NEY1XFx1OTRGN1xcdTk0RjlcXHU5NEZDXFx1OTRGRFxcdTk0RkZcXHU5NTAzXFx1OTUwMlxcdTk1MDZcXHU5NTA3XFx1OTUwOVxcdTk1MEFcXHU5NTBEXFx1OTUwRVxcdTk1MEZcXHU5NTEyXCIsIDQsIFwiXFx1OTUxOFxcdTk1MUJcXHU5NTFEXFx1OTUxRVxcdTk1MUZcXHU5NTIyXFx1OTUyQVxcdTk1MkJcXHU5NTI5XFx1OTUyQ1xcdTk1MzFcXHU5NTMyXFx1OTUzNFxcdTk1MzZcXHU5NTM3XFx1OTUzOFxcdTk1M0NcXHU5NTNFXFx1OTUzRlxcdTk1NDJcXHU5NTM1XFx1OTU0NFxcdTk1NDVcXHU5NTQ2XFx1OTU0OVxcdTk1NENcXHU5NTRFXFx1OTU0RlxcdTk1NTJcXHU5NTUzXFx1OTU1NFxcdTk1NTZcXHU5NTU3XFx1OTU1OFxcdTk1NTlcXHU5NTVCXFx1OTU1RVxcdTk1NUZcXHU5NTVEXFx1OTU2MVxcdTk1NjJcXHU5NTY0XCIsIDgsIFwiXFx1OTU2RlxcdTk1NzFcXHU5NTcyXFx1OTU3M1xcdTk1M0FcXHU3N0U3XFx1NzdFQ1xcdTk2QzlcXHU3OUQ1XFx1NzlFRFxcdTc5RTNcXHU3OUVCXFx1N0EwNlxcdTVENDdcXHU3QTAzXFx1N0EwMlxcdTdBMUVcXHU3QTE0XCJdLFxuICAgICAgW1wiZjA0MFwiLCBcIlxcdTk5MDhcIiwgNCwgXCJcXHU5OTBFXFx1OTkwRlxcdTk5MTFcIiwgMjgsIFwiXFx1OTkyRlwiLCAyNl0sXG4gICAgICBbXCJmMDgwXCIsIFwiXFx1OTk0QVwiLCA5LCBcIlxcdTk5NTZcIiwgMTIsIFwiXFx1OTk2NFxcdTk5NjZcXHU5OTczXFx1OTk3OFxcdTk5NzlcXHU5OTdCXFx1OTk3RVxcdTk5ODJcXHU5OTgzXFx1OTk4OVxcdTdBMzlcXHU3QTM3XFx1N0E1MVxcdTlFQ0ZcXHU5OUE1XFx1N0E3MFxcdTc2ODhcXHU3NjhFXFx1NzY5M1xcdTc2OTlcXHU3NkE0XFx1NzRERVxcdTc0RTBcXHU3NTJDXFx1OUUyMFxcdTlFMjJcXHU5RTI4XCIsIDQsIFwiXFx1OUUzMlxcdTlFMzFcXHU5RTM2XFx1OUUzOFxcdTlFMzdcXHU5RTM5XFx1OUUzQVxcdTlFM0VcXHU5RTQxXFx1OUU0MlxcdTlFNDRcXHU5RTQ2XFx1OUU0N1xcdTlFNDhcXHU5RTQ5XFx1OUU0QlxcdTlFNENcXHU5RTRFXFx1OUU1MVxcdTlFNTVcXHU5RTU3XFx1OUU1QVxcdTlFNUJcXHU5RTVDXFx1OUU1RVxcdTlFNjNcXHU5RTY2XCIsIDYsIFwiXFx1OUU3MVxcdTlFNkRcXHU5RTczXFx1NzU5MlxcdTc1OTRcXHU3NTk2XFx1NzVBMFxcdTc1OURcXHU3NUFDXFx1NzVBM1xcdTc1QjNcXHU3NUI0XFx1NzVCOFxcdTc1QzRcXHU3NUIxXFx1NzVCMFxcdTc1QzNcXHU3NUMyXFx1NzVENlxcdTc1Q0RcXHU3NUUzXFx1NzVFOFxcdTc1RTZcXHU3NUU0XFx1NzVFQlxcdTc1RTdcXHU3NjAzXFx1NzVGMVxcdTc1RkNcXHU3NUZGXFx1NzYxMFxcdTc2MDBcXHU3NjA1XFx1NzYwQ1xcdTc2MTdcXHU3NjBBXFx1NzYyNVxcdTc2MThcXHU3NjE1XFx1NzYxOVwiXSxcbiAgICAgIFtcImYxNDBcIiwgXCJcXHU5OThDXFx1OTk4RVxcdTk5OUFcIiwgMTAsIFwiXFx1OTlBNlxcdTk5QTdcXHU5OUE5XCIsIDQ3XSxcbiAgICAgIFtcImYxODBcIiwgXCJcXHU5OUQ5XCIsIDMyLCBcIlxcdTc2MUJcXHU3NjNDXFx1NzYyMlxcdTc2MjBcXHU3NjQwXFx1NzYyRFxcdTc2MzBcXHU3NjNGXFx1NzYzNVxcdTc2NDNcXHU3NjNFXFx1NzYzM1xcdTc2NERcXHU3NjVFXFx1NzY1NFxcdTc2NUNcXHU3NjU2XFx1NzY2QlxcdTc2NkZcXHU3RkNBXFx1N0FFNlxcdTdBNzhcXHU3QTc5XFx1N0E4MFxcdTdBODZcXHU3QTg4XFx1N0E5NVxcdTdBQTZcXHU3QUEwXFx1N0FBQ1xcdTdBQThcXHU3QUFEXFx1N0FCM1xcdTg4NjRcXHU4ODY5XFx1ODg3MlxcdTg4N0RcXHU4ODdGXFx1ODg4MlxcdTg4QTJcXHU4OEM2XFx1ODhCN1xcdTg4QkNcXHU4OEM5XFx1ODhFMlxcdTg4Q0VcXHU4OEUzXFx1ODhFNVxcdTg4RjFcXHU4OTFBXFx1ODhGQ1xcdTg4RThcXHU4OEZFXFx1ODhGMFxcdTg5MjFcXHU4OTE5XFx1ODkxM1xcdTg5MUJcXHU4OTBBXFx1ODkzNFxcdTg5MkJcXHU4OTM2XFx1ODk0MVxcdTg5NjZcXHU4OTdCXFx1NzU4QlxcdTgwRTVcXHU3NkIyXFx1NzZCNFxcdTc3RENcXHU4MDEyXFx1ODAxNFxcdTgwMTZcXHU4MDFDXFx1ODAyMFxcdTgwMjJcXHU4MDI1XFx1ODAyNlxcdTgwMjdcXHU4MDI5XFx1ODAyOFxcdTgwMzFcXHU4MDBCXFx1ODAzNVxcdTgwNDNcXHU4MDQ2XFx1ODA0RFxcdTgwNTJcXHU4MDY5XFx1ODA3MVxcdTg5ODNcXHU5ODc4XFx1OTg4MFxcdTk4ODNcIl0sXG4gICAgICBbXCJmMjQwXCIsIFwiXFx1OTlGQVwiLCA2Ml0sXG4gICAgICBbXCJmMjgwXCIsIFwiXFx1OUEzOVwiLCAzMiwgXCJcXHU5ODg5XFx1OTg4Q1xcdTk4OERcXHU5ODhGXFx1OTg5NFxcdTk4OUFcXHU5ODlCXFx1OTg5RVxcdTk4OUZcXHU5OEExXFx1OThBMlxcdTk4QTVcXHU5OEE2XFx1ODY0RFxcdTg2NTRcXHU4NjZDXFx1ODY2RVxcdTg2N0ZcXHU4NjdBXFx1ODY3Q1xcdTg2N0JcXHU4NkE4XFx1ODY4RFxcdTg2OEJcXHU4NkFDXFx1ODY5RFxcdTg2QTdcXHU4NkEzXFx1ODZBQVxcdTg2OTNcXHU4NkE5XFx1ODZCNlxcdTg2QzRcXHU4NkI1XFx1ODZDRVxcdTg2QjBcXHU4NkJBXFx1ODZCMVxcdTg2QUZcXHU4NkM5XFx1ODZDRlxcdTg2QjRcXHU4NkU5XFx1ODZGMVxcdTg2RjJcXHU4NkVEXFx1ODZGM1xcdTg2RDBcXHU4NzEzXFx1ODZERVxcdTg2RjRcXHU4NkRGXFx1ODZEOFxcdTg2RDFcXHU4NzAzXFx1ODcwN1xcdTg2RjhcXHU4NzA4XFx1ODcwQVxcdTg3MERcXHU4NzA5XFx1ODcyM1xcdTg3M0JcXHU4NzFFXFx1ODcyNVxcdTg3MkVcXHU4NzFBXFx1ODczRVxcdTg3NDhcXHU4NzM0XFx1ODczMVxcdTg3MjlcXHU4NzM3XFx1ODczRlxcdTg3ODJcXHU4NzIyXFx1ODc3RFxcdTg3N0VcXHU4NzdCXFx1ODc2MFxcdTg3NzBcXHU4NzRDXFx1ODc2RVxcdTg3OEJcXHU4NzUzXFx1ODc2M1xcdTg3N0NcXHU4NzY0XFx1ODc1OVxcdTg3NjVcXHU4NzkzXFx1ODdBRlxcdTg3QThcXHU4N0QyXCJdLFxuICAgICAgW1wiZjM0MFwiLCBcIlxcdTlBNUFcIiwgMTcsIFwiXFx1OUE3MlxcdTlBODNcXHU5QTg5XFx1OUE4RFxcdTlBOEVcXHU5QTk0XFx1OUE5NVxcdTlBOTlcXHU5QUE2XFx1OUFBOVwiLCA2LCBcIlxcdTlBQjJcXHU5QUIzXFx1OUFCNFxcdTlBQjVcXHU5QUI5XFx1OUFCQlxcdTlBQkRcXHU5QUJFXFx1OUFCRlxcdTlBQzNcXHU5QUM0XFx1OUFDNlwiLCA0LCBcIlxcdTlBQ0RcXHU5QUNFXFx1OUFDRlxcdTlBRDBcXHU5QUQyXFx1OUFENFxcdTlBRDVcXHU5QUQ2XFx1OUFEN1xcdTlBRDlcXHU5QURBXFx1OUFEQlxcdTlBRENcIl0sXG4gICAgICBbXCJmMzgwXCIsIFwiXFx1OUFERFxcdTlBREVcXHU5QUUwXFx1OUFFMlxcdTlBRTNcXHU5QUU0XFx1OUFFNVxcdTlBRTdcXHU5QUU4XFx1OUFFOVxcdTlBRUFcXHU5QUVDXFx1OUFFRVxcdTlBRjBcIiwgOCwgXCJcXHU5QUZBXFx1OUFGQ1wiLCA2LCBcIlxcdTlCMDRcXHU5QjA1XFx1OUIwNlxcdTg3QzZcXHU4Nzg4XFx1ODc4NVxcdTg3QURcXHU4Nzk3XFx1ODc4M1xcdTg3QUJcXHU4N0U1XFx1ODdBQ1xcdTg3QjVcXHU4N0IzXFx1ODdDQlxcdTg3RDNcXHU4N0JEXFx1ODdEMVxcdTg3QzBcXHU4N0NBXFx1ODdEQlxcdTg3RUFcXHU4N0UwXFx1ODdFRVxcdTg4MTZcXHU4ODEzXFx1ODdGRVxcdTg4MEFcXHU4ODFCXFx1ODgyMVxcdTg4MzlcXHU4ODNDXFx1N0YzNlxcdTdGNDJcXHU3RjQ0XFx1N0Y0NVxcdTgyMTBcXHU3QUZBXFx1N0FGRFxcdTdCMDhcXHU3QjAzXFx1N0IwNFxcdTdCMTVcXHU3QjBBXFx1N0IyQlxcdTdCMEZcXHU3QjQ3XFx1N0IzOFxcdTdCMkFcXHU3QjE5XFx1N0IyRVxcdTdCMzFcXHU3QjIwXFx1N0IyNVxcdTdCMjRcXHU3QjMzXFx1N0IzRVxcdTdCMUVcXHU3QjU4XFx1N0I1QVxcdTdCNDVcXHU3Qjc1XFx1N0I0Q1xcdTdCNURcXHU3QjYwXFx1N0I2RVxcdTdCN0JcXHU3QjYyXFx1N0I3MlxcdTdCNzFcXHU3QjkwXFx1N0JBNlxcdTdCQTdcXHU3QkI4XFx1N0JBQ1xcdTdCOURcXHU3QkE4XFx1N0I4NVxcdTdCQUFcXHU3QjlDXFx1N0JBMlxcdTdCQUJcXHU3QkI0XFx1N0JEMVxcdTdCQzFcXHU3QkNDXFx1N0JERFxcdTdCREFcXHU3QkU1XFx1N0JFNlxcdTdCRUFcXHU3QzBDXFx1N0JGRVxcdTdCRkNcXHU3QzBGXFx1N0MxNlxcdTdDMEJcIl0sXG4gICAgICBbXCJmNDQwXCIsIFwiXFx1OUIwN1xcdTlCMDlcIiwgNSwgXCJcXHU5QjEwXFx1OUIxMVxcdTlCMTJcXHU5QjE0XCIsIDEwLCBcIlxcdTlCMjBcXHU5QjIxXFx1OUIyMlxcdTlCMjRcIiwgMTAsIFwiXFx1OUIzMFxcdTlCMzFcXHU5QjMzXCIsIDcsIFwiXFx1OUIzRFxcdTlCM0VcXHU5QjNGXFx1OUI0MFxcdTlCNDZcXHU5QjRBXFx1OUI0QlxcdTlCNENcXHU5QjRFXFx1OUI1MFxcdTlCNTJcXHU5QjUzXFx1OUI1NVwiLCA1XSxcbiAgICAgIFtcImY0ODBcIiwgXCJcXHU5QjVCXCIsIDMyLCBcIlxcdTdDMUZcXHU3QzJBXFx1N0MyNlxcdTdDMzhcXHU3QzQxXFx1N0M0MFxcdTgxRkVcXHU4MjAxXFx1ODIwMlxcdTgyMDRcXHU4MUVDXFx1ODg0NFxcdTgyMjFcXHU4MjIyXFx1ODIyM1xcdTgyMkRcXHU4MjJGXFx1ODIyOFxcdTgyMkJcXHU4MjM4XFx1ODIzQlxcdTgyMzNcXHU4MjM0XFx1ODIzRVxcdTgyNDRcXHU4MjQ5XFx1ODI0QlxcdTgyNEZcXHU4MjVBXFx1ODI1RlxcdTgyNjhcXHU4ODdFXFx1ODg4NVxcdTg4ODhcXHU4OEQ4XFx1ODhERlxcdTg5NUVcXHU3RjlEXFx1N0Y5RlxcdTdGQTdcXHU3RkFGXFx1N0ZCMFxcdTdGQjJcXHU3QzdDXFx1NjU0OVxcdTdDOTFcXHU3QzlEXFx1N0M5Q1xcdTdDOUVcXHU3Q0EyXFx1N0NCMlxcdTdDQkNcXHU3Q0JEXFx1N0NDMVxcdTdDQzdcXHU3Q0NDXFx1N0NDRFxcdTdDQzhcXHU3Q0M1XFx1N0NEN1xcdTdDRThcXHU4MjZFXFx1NjZBOFxcdTdGQkZcXHU3RkNFXFx1N0ZENVxcdTdGRTVcXHU3RkUxXFx1N0ZFNlxcdTdGRTlcXHU3RkVFXFx1N0ZGM1xcdTdDRjhcXHU3RDc3XFx1N0RBNlxcdTdEQUVcXHU3RTQ3XFx1N0U5QlxcdTlFQjhcXHU5RUI0XFx1OEQ3M1xcdThEODRcXHU4RDk0XFx1OEQ5MVxcdThEQjFcXHU4RDY3XFx1OEQ2RFxcdThDNDdcXHU4QzQ5XFx1OTE0QVxcdTkxNTBcXHU5MTRFXFx1OTE0RlxcdTkxNjRcIl0sXG4gICAgICBbXCJmNTQwXCIsIFwiXFx1OUI3Q1wiLCA2Ml0sXG4gICAgICBbXCJmNTgwXCIsIFwiXFx1OUJCQlwiLCAzMiwgXCJcXHU5MTYyXFx1OTE2MVxcdTkxNzBcXHU5MTY5XFx1OTE2RlxcdTkxN0RcXHU5MTdFXFx1OTE3MlxcdTkxNzRcXHU5MTc5XFx1OTE4Q1xcdTkxODVcXHU5MTkwXFx1OTE4RFxcdTkxOTFcXHU5MUEyXFx1OTFBM1xcdTkxQUFcXHU5MUFEXFx1OTFBRVxcdTkxQUZcXHU5MUI1XFx1OTFCNFxcdTkxQkFcXHU4QzU1XFx1OUU3RVxcdThEQjhcXHU4REVCXFx1OEUwNVxcdThFNTlcXHU4RTY5XFx1OERCNVxcdThEQkZcXHU4REJDXFx1OERCQVxcdThEQzRcXHU4REQ2XFx1OEREN1xcdThEREFcXHU4RERFXFx1OERDRVxcdThEQ0ZcXHU4RERCXFx1OERDNlxcdThERUNcXHU4REY3XFx1OERGOFxcdThERTNcXHU4REY5XFx1OERGQlxcdThERTRcXHU4RTA5XFx1OERGRFxcdThFMTRcXHU4RTFEXFx1OEUxRlxcdThFMkNcXHU4RTJFXFx1OEUyM1xcdThFMkZcXHU4RTNBXFx1OEU0MFxcdThFMzlcXHU4RTM1XFx1OEUzRFxcdThFMzFcXHU4RTQ5XFx1OEU0MVxcdThFNDJcXHU4RTUxXFx1OEU1MlxcdThFNEFcXHU4RTcwXFx1OEU3NlxcdThFN0NcXHU4RTZGXFx1OEU3NFxcdThFODVcXHU4RThGXFx1OEU5NFxcdThFOTBcXHU4RTlDXFx1OEU5RVxcdThDNzhcXHU4QzgyXFx1OEM4QVxcdThDODVcXHU4Qzk4XFx1OEM5NFxcdTY1OUJcXHU4OUQ2XFx1ODlERVxcdTg5REFcXHU4OURDXCJdLFxuICAgICAgW1wiZjY0MFwiLCBcIlxcdTlCRENcIiwgNjJdLFxuICAgICAgW1wiZjY4MFwiLCBcIlxcdTlDMUJcIiwgMzIsIFwiXFx1ODlFNVxcdTg5RUJcXHU4OUVGXFx1OEEzRVxcdThCMjZcXHU5NzUzXFx1OTZFOVxcdTk2RjNcXHU5NkVGXFx1OTcwNlxcdTk3MDFcXHU5NzA4XFx1OTcwRlxcdTk3MEVcXHU5NzJBXFx1OTcyRFxcdTk3MzBcXHU5NzNFXFx1OUY4MFxcdTlGODNcXHU5Rjg1XCIsIDUsIFwiXFx1OUY4Q1xcdTlFRkVcXHU5RjBCXFx1OUYwRFxcdTk2QjlcXHU5NkJDXFx1OTZCRFxcdTk2Q0VcXHU5NkQyXFx1NzdCRlxcdTk2RTBcXHU5MjhFXFx1OTJBRVxcdTkyQzhcXHU5MzNFXFx1OTM2QVxcdTkzQ0FcXHU5MzhGXFx1OTQzRVxcdTk0NkJcXHU5QzdGXFx1OUM4MlxcdTlDODVcXHU5Qzg2XFx1OUM4N1xcdTlDODhcXHU3QTIzXFx1OUM4QlxcdTlDOEVcXHU5QzkwXFx1OUM5MVxcdTlDOTJcXHU5Qzk0XFx1OUM5NVxcdTlDOUFcXHU5QzlCXFx1OUM5RVwiLCA1LCBcIlxcdTlDQTVcIiwgNCwgXCJcXHU5Q0FCXFx1OUNBRFxcdTlDQUVcXHU5Q0IwXCIsIDcsIFwiXFx1OUNCQVxcdTlDQkJcXHU5Q0JDXFx1OUNCRFxcdTlDQzRcXHU5Q0M1XFx1OUNDNlxcdTlDQzdcXHU5Q0NBXFx1OUNDQlwiXSxcbiAgICAgIFtcImY3NDBcIiwgXCJcXHU5QzNDXCIsIDYyXSxcbiAgICAgIFtcImY3ODBcIiwgXCJcXHU5QzdCXFx1OUM3RFxcdTlDN0VcXHU5QzgwXFx1OUM4M1xcdTlDODRcXHU5Qzg5XFx1OUM4QVxcdTlDOENcXHU5QzhGXFx1OUM5M1xcdTlDOTZcXHU5Qzk3XFx1OUM5OFxcdTlDOTlcXHU5QzlEXFx1OUNBQVxcdTlDQUNcXHU5Q0FGXFx1OUNCOVxcdTlDQkVcIiwgNCwgXCJcXHU5Q0M4XFx1OUNDOVxcdTlDRDFcXHU5Q0QyXFx1OUNEQVxcdTlDREJcXHU5Q0UwXFx1OUNFMVxcdTlDQ0NcIiwgNCwgXCJcXHU5Q0QzXFx1OUNENFxcdTlDRDVcXHU5Q0Q3XFx1OUNEOFxcdTlDRDlcXHU5Q0RDXFx1OUNERFxcdTlDREZcXHU5Q0UyXFx1OTc3Q1xcdTk3ODVcXHU5NzkxXFx1OTc5MlxcdTk3OTRcXHU5N0FGXFx1OTdBQlxcdTk3QTNcXHU5N0IyXFx1OTdCNFxcdTlBQjFcXHU5QUIwXFx1OUFCN1xcdTlFNThcXHU5QUI2XFx1OUFCQVxcdTlBQkNcXHU5QUMxXFx1OUFDMFxcdTlBQzVcXHU5QUMyXFx1OUFDQlxcdTlBQ0NcXHU5QUQxXFx1OUI0NVxcdTlCNDNcXHU5QjQ3XFx1OUI0OVxcdTlCNDhcXHU5QjREXFx1OUI1MVxcdTk4RThcXHU5OTBEXFx1OTkyRVxcdTk5NTVcXHU5OTU0XFx1OUFERlxcdTlBRTFcXHU5QUU2XFx1OUFFRlxcdTlBRUJcXHU5QUZCXFx1OUFFRFxcdTlBRjlcXHU5QjA4XFx1OUIwRlxcdTlCMTNcXHU5QjFGXFx1OUIyM1xcdTlFQkRcXHU5RUJFXFx1N0UzQlxcdTlFODJcXHU5RTg3XFx1OUU4OFxcdTlFOEJcXHU5RTkyXFx1OTNENlxcdTlFOURcXHU5RTlGXFx1OUVEQlxcdTlFRENcXHU5RUREXFx1OUVFMFxcdTlFREZcXHU5RUUyXFx1OUVFOVxcdTlFRTdcXHU5RUU1XFx1OUVFQVxcdTlFRUZcXHU5RjIyXFx1OUYyQ1xcdTlGMkZcXHU5RjM5XFx1OUYzN1xcdTlGM0RcXHU5RjNFXFx1OUY0NFwiXSxcbiAgICAgIFtcImY4NDBcIiwgXCJcXHU5Q0UzXCIsIDYyXSxcbiAgICAgIFtcImY4ODBcIiwgXCJcXHU5RDIyXCIsIDMyXSxcbiAgICAgIFtcImY5NDBcIiwgXCJcXHU5RDQzXCIsIDYyXSxcbiAgICAgIFtcImY5ODBcIiwgXCJcXHU5RDgyXCIsIDMyXSxcbiAgICAgIFtcImZhNDBcIiwgXCJcXHU5REEzXCIsIDYyXSxcbiAgICAgIFtcImZhODBcIiwgXCJcXHU5REUyXCIsIDMyXSxcbiAgICAgIFtcImZiNDBcIiwgXCJcXHU5RTAzXCIsIDI3LCBcIlxcdTlFMjRcXHU5RTI3XFx1OUUyRVxcdTlFMzBcXHU5RTM0XFx1OUUzQlxcdTlFM0NcXHU5RTQwXFx1OUU0RFxcdTlFNTBcXHU5RTUyXFx1OUU1M1xcdTlFNTRcXHU5RTU2XFx1OUU1OVxcdTlFNURcXHU5RTVGXFx1OUU2MFxcdTlFNjFcXHU5RTYyXFx1OUU2NVxcdTlFNkVcXHU5RTZGXFx1OUU3MlxcdTlFNzRcIiwgOSwgXCJcXHU5RTgwXCJdLFxuICAgICAgW1wiZmI4MFwiLCBcIlxcdTlFODFcXHU5RTgzXFx1OUU4NFxcdTlFODVcXHU5RTg2XFx1OUU4OVxcdTlFOEFcXHU5RThDXCIsIDUsIFwiXFx1OUU5NFwiLCA4LCBcIlxcdTlFOUVcXHU5RUEwXCIsIDUsIFwiXFx1OUVBN1xcdTlFQThcXHU5RUE5XFx1OUVBQVwiXSxcbiAgICAgIFtcImZjNDBcIiwgXCJcXHU5RUFCXCIsIDgsIFwiXFx1OUVCNVxcdTlFQjZcXHU5RUI3XFx1OUVCOVxcdTlFQkFcXHU5RUJDXFx1OUVCRlwiLCA0LCBcIlxcdTlFQzVcXHU5RUM2XFx1OUVDN1xcdTlFQzhcXHU5RUNBXFx1OUVDQlxcdTlFQ0NcXHU5RUQwXFx1OUVEMlxcdTlFRDNcXHU5RUQ1XFx1OUVENlxcdTlFRDdcXHU5RUQ5XFx1OUVEQVxcdTlFREVcXHU5RUUxXFx1OUVFM1xcdTlFRTRcXHU5RUU2XFx1OUVFOFxcdTlFRUJcXHU5RUVDXFx1OUVFRFxcdTlFRUVcXHU5RUYwXCIsIDgsIFwiXFx1OUVGQVxcdTlFRkRcXHU5RUZGXCIsIDZdLFxuICAgICAgW1wiZmM4MFwiLCBcIlxcdTlGMDZcIiwgNCwgXCJcXHU5RjBDXFx1OUYwRlxcdTlGMTFcXHU5RjEyXFx1OUYxNFxcdTlGMTVcXHU5RjE2XFx1OUYxOFxcdTlGMUFcIiwgNSwgXCJcXHU5RjIxXFx1OUYyM1wiLCA4LCBcIlxcdTlGMkRcXHU5RjJFXFx1OUYzMFxcdTlGMzFcIl0sXG4gICAgICBbXCJmZDQwXCIsIFwiXFx1OUYzMlwiLCA0LCBcIlxcdTlGMzhcXHU5RjNBXFx1OUYzQ1xcdTlGM0ZcIiwgNCwgXCJcXHU5RjQ1XCIsIDEwLCBcIlxcdTlGNTJcIiwgMzhdLFxuICAgICAgW1wiZmQ4MFwiLCBcIlxcdTlGNzlcIiwgNSwgXCJcXHU5RjgxXFx1OUY4MlxcdTlGOERcIiwgMTEsIFwiXFx1OUY5Q1xcdTlGOURcXHU5RjlFXFx1OUZBMVwiLCA0LCBcIlxcdUY5MkNcXHVGOTc5XFx1Rjk5NVxcdUY5RTdcXHVGOUYxXCJdLFxuICAgICAgW1wiZmU0MFwiLCBcIlxcdUZBMENcXHVGQTBEXFx1RkEwRVxcdUZBMEZcXHVGQTExXFx1RkExM1xcdUZBMTRcXHVGQTE4XFx1RkExRlxcdUZBMjBcXHVGQTIxXFx1RkEyM1xcdUZBMjRcXHVGQTI3XFx1RkEyOFxcdUZBMjlcIl1cbiAgICBdO1xuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL3Jhdy1ib2R5L25vZGVfbW9kdWxlcy9pY29udi1saXRlL2VuY29kaW5ncy90YWJsZXMvZ2JrLWFkZGVkLmpzb25cbnZhciByZXF1aXJlX2dia19hZGRlZCA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9yYXctYm9keS9ub2RlX21vZHVsZXMvaWNvbnYtbGl0ZS9lbmNvZGluZ3MvdGFibGVzL2diay1hZGRlZC5qc29uXCIoZXhwb3J0czIsIG1vZHVsZTIpIHtcbiAgICBtb2R1bGUyLmV4cG9ydHMgPSBbXG4gICAgICBbXCJhMTQwXCIsIFwiXFx1RTRDNlwiLCA2Ml0sXG4gICAgICBbXCJhMTgwXCIsIFwiXFx1RTUwNVwiLCAzMl0sXG4gICAgICBbXCJhMjQwXCIsIFwiXFx1RTUyNlwiLCA2Ml0sXG4gICAgICBbXCJhMjgwXCIsIFwiXFx1RTU2NVwiLCAzMl0sXG4gICAgICBbXCJhMmFiXCIsIFwiXFx1RTc2NlwiLCA1XSxcbiAgICAgIFtcImEyZTNcIiwgXCJcXHUyMEFDXFx1RTc2RFwiXSxcbiAgICAgIFtcImEyZWZcIiwgXCJcXHVFNzZFXFx1RTc2RlwiXSxcbiAgICAgIFtcImEyZmRcIiwgXCJcXHVFNzcwXFx1RTc3MVwiXSxcbiAgICAgIFtcImEzNDBcIiwgXCJcXHVFNTg2XCIsIDYyXSxcbiAgICAgIFtcImEzODBcIiwgXCJcXHVFNUM1XCIsIDMxLCBcIlxcdTMwMDBcIl0sXG4gICAgICBbXCJhNDQwXCIsIFwiXFx1RTVFNlwiLCA2Ml0sXG4gICAgICBbXCJhNDgwXCIsIFwiXFx1RTYyNVwiLCAzMl0sXG4gICAgICBbXCJhNGY0XCIsIFwiXFx1RTc3MlwiLCAxMF0sXG4gICAgICBbXCJhNTQwXCIsIFwiXFx1RTY0NlwiLCA2Ml0sXG4gICAgICBbXCJhNTgwXCIsIFwiXFx1RTY4NVwiLCAzMl0sXG4gICAgICBbXCJhNWY3XCIsIFwiXFx1RTc3RFwiLCA3XSxcbiAgICAgIFtcImE2NDBcIiwgXCJcXHVFNkE2XCIsIDYyXSxcbiAgICAgIFtcImE2ODBcIiwgXCJcXHVFNkU1XCIsIDMyXSxcbiAgICAgIFtcImE2YjlcIiwgXCJcXHVFNzg1XCIsIDddLFxuICAgICAgW1wiYTZkOVwiLCBcIlxcdUU3OERcIiwgNl0sXG4gICAgICBbXCJhNmVjXCIsIFwiXFx1RTc5NFxcdUU3OTVcIl0sXG4gICAgICBbXCJhNmYzXCIsIFwiXFx1RTc5NlwiXSxcbiAgICAgIFtcImE2ZjZcIiwgXCJcXHVFNzk3XCIsIDhdLFxuICAgICAgW1wiYTc0MFwiLCBcIlxcdUU3MDZcIiwgNjJdLFxuICAgICAgW1wiYTc4MFwiLCBcIlxcdUU3NDVcIiwgMzJdLFxuICAgICAgW1wiYTdjMlwiLCBcIlxcdUU3QTBcIiwgMTRdLFxuICAgICAgW1wiYTdmMlwiLCBcIlxcdUU3QUZcIiwgMTJdLFxuICAgICAgW1wiYTg5NlwiLCBcIlxcdUU3QkNcIiwgMTBdLFxuICAgICAgW1wiYThiY1wiLCBcIlxcdTFFM0ZcIl0sXG4gICAgICBbXCJhOGJmXCIsIFwiXFx1MDFGOVwiXSxcbiAgICAgIFtcImE4YzFcIiwgXCJcXHVFN0M5XFx1RTdDQVxcdUU3Q0JcXHVFN0NDXCJdLFxuICAgICAgW1wiYThlYVwiLCBcIlxcdUU3Q0RcIiwgMjBdLFxuICAgICAgW1wiYTk1OFwiLCBcIlxcdUU3RTJcIl0sXG4gICAgICBbXCJhOTViXCIsIFwiXFx1RTdFM1wiXSxcbiAgICAgIFtcImE5NWRcIiwgXCJcXHVFN0U0XFx1RTdFNVxcdUU3RTZcIl0sXG4gICAgICBbXCJhOTg5XCIsIFwiXFx1MzAzRVxcdTJGRjBcIiwgMTFdLFxuICAgICAgW1wiYTk5N1wiLCBcIlxcdUU3RjRcIiwgMTJdLFxuICAgICAgW1wiYTlmMFwiLCBcIlxcdUU4MDFcIiwgMTRdLFxuICAgICAgW1wiYWFhMVwiLCBcIlxcdUUwMDBcIiwgOTNdLFxuICAgICAgW1wiYWJhMVwiLCBcIlxcdUUwNUVcIiwgOTNdLFxuICAgICAgW1wiYWNhMVwiLCBcIlxcdUUwQkNcIiwgOTNdLFxuICAgICAgW1wiYWRhMVwiLCBcIlxcdUUxMUFcIiwgOTNdLFxuICAgICAgW1wiYWVhMVwiLCBcIlxcdUUxNzhcIiwgOTNdLFxuICAgICAgW1wiYWZhMVwiLCBcIlxcdUUxRDZcIiwgOTNdLFxuICAgICAgW1wiZDdmYVwiLCBcIlxcdUU4MTBcIiwgNF0sXG4gICAgICBbXCJmOGExXCIsIFwiXFx1RTIzNFwiLCA5M10sXG4gICAgICBbXCJmOWExXCIsIFwiXFx1RTI5MlwiLCA5M10sXG4gICAgICBbXCJmYWExXCIsIFwiXFx1RTJGMFwiLCA5M10sXG4gICAgICBbXCJmYmExXCIsIFwiXFx1RTM0RVwiLCA5M10sXG4gICAgICBbXCJmY2ExXCIsIFwiXFx1RTNBQ1wiLCA5M10sXG4gICAgICBbXCJmZGExXCIsIFwiXFx1RTQwQVwiLCA5M10sXG4gICAgICBbXCJmZTUwXCIsIFwiXFx1MkU4MVxcdUU4MTZcXHVFODE3XFx1RTgxOFxcdTJFODRcXHUzNDczXFx1MzQ0N1xcdTJFODhcXHUyRThCXFx1RTgxRVxcdTM1OUVcXHUzNjFBXFx1MzYwRVxcdTJFOENcXHUyRTk3XFx1Mzk2RVxcdTM5MThcXHVFODI2XFx1MzlDRlxcdTM5REZcXHUzQTczXFx1MzlEMFxcdUU4MkJcXHVFODJDXFx1M0I0RVxcdTNDNkVcXHUzQ0UwXFx1MkVBN1xcdUU4MzFcXHVFODMyXFx1MkVBQVxcdTQwNTZcXHU0MTVGXFx1MkVBRVxcdTQzMzdcXHUyRUIzXFx1MkVCNlxcdTJFQjdcXHVFODNCXFx1NDNCMVxcdTQzQUNcXHUyRUJCXFx1NDNERFxcdTQ0RDZcXHU0NjYxXFx1NDY0Q1xcdUU4NDNcIl0sXG4gICAgICBbXCJmZTgwXCIsIFwiXFx1NDcyM1xcdTQ3MjlcXHU0NzdDXFx1NDc4RFxcdTJFQ0FcXHU0OTQ3XFx1NDk3QVxcdTQ5N0RcXHU0OTgyXFx1NDk4M1xcdTQ5ODVcXHU0OTg2XFx1NDk5RlxcdTQ5OUJcXHU0OUI3XFx1NDlCNlxcdUU4NTRcXHVFODU1XFx1NENBM1xcdTRDOUZcXHU0Q0EwXFx1NENBMVxcdTRDNzdcXHU0Q0EyXFx1NEQxM1wiLCA2LCBcIlxcdTREQUVcXHVFODY0XFx1RTQ2OFwiLCA5M10sXG4gICAgICBbXCI4MTM1ZjQzN1wiLCBcIlxcdUU3QzdcIl1cbiAgICBdO1xuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL3Jhdy1ib2R5L25vZGVfbW9kdWxlcy9pY29udi1saXRlL2VuY29kaW5ncy90YWJsZXMvZ2IxODAzMC1yYW5nZXMuanNvblxudmFyIHJlcXVpcmVfZ2IxODAzMF9yYW5nZXMgPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvcmF3LWJvZHkvbm9kZV9tb2R1bGVzL2ljb252LWxpdGUvZW5jb2RpbmdzL3RhYmxlcy9nYjE4MDMwLXJhbmdlcy5qc29uXCIoZXhwb3J0czIsIG1vZHVsZTIpIHtcbiAgICBtb2R1bGUyLmV4cG9ydHMgPSB7IHVDaGFyczogWzEyOCwgMTY1LCAxNjksIDE3OCwgMTg0LCAyMTYsIDIyNiwgMjM1LCAyMzgsIDI0NCwgMjQ4LCAyNTEsIDI1MywgMjU4LCAyNzYsIDI4NCwgMzAwLCAzMjUsIDMyOSwgMzM0LCAzNjQsIDQ2MywgNDY1LCA0NjcsIDQ2OSwgNDcxLCA0NzMsIDQ3NSwgNDc3LCA1MDYsIDU5NCwgNjEwLCA3MTIsIDcxNiwgNzMwLCA5MzAsIDkzOCwgOTYyLCA5NzAsIDEwMjYsIDExMDQsIDExMDYsIDgyMDksIDgyMTUsIDgyMTgsIDgyMjIsIDgyMzEsIDgyNDEsIDgyNDQsIDgyNDYsIDgyNTIsIDgzNjUsIDg0NTIsIDg0NTQsIDg0NTgsIDg0NzEsIDg0ODIsIDg1NTYsIDg1NzAsIDg1OTYsIDg2MDIsIDg3MTMsIDg3MjAsIDg3MjIsIDg3MjYsIDg3MzEsIDg3MzcsIDg3NDAsIDg3NDIsIDg3NDgsIDg3NTEsIDg3NjAsIDg3NjYsIDg3NzcsIDg3ODEsIDg3ODcsIDg4MDIsIDg4MDgsIDg4MTYsIDg4NTQsIDg4NTgsIDg4NzAsIDg4OTYsIDg5NzksIDkzMjIsIDkzNzIsIDk1NDgsIDk1ODgsIDk2MTYsIDk2MjIsIDk2MzQsIDk2NTIsIDk2NjIsIDk2NzIsIDk2NzYsIDk2ODAsIDk3MDIsIDk3MzUsIDk3MzgsIDk3OTMsIDk3OTUsIDExOTA2LCAxMTkwOSwgMTE5MTMsIDExOTE3LCAxMTkyOCwgMTE5NDQsIDExOTQ3LCAxMTk1MSwgMTE5NTYsIDExOTYwLCAxMTk2NCwgMTE5NzksIDEyMjg0LCAxMjI5MiwgMTIzMTIsIDEyMzE5LCAxMjMzMCwgMTIzNTEsIDEyNDM2LCAxMjQ0NywgMTI1MzUsIDEyNTQzLCAxMjU4NiwgMTI4NDIsIDEyODUwLCAxMjk2NCwgMTMyMDAsIDEzMjE1LCAxMzIxOCwgMTMyNTMsIDEzMjYzLCAxMzI2NywgMTMyNzAsIDEzMzg0LCAxMzQyOCwgMTM3MjcsIDEzODM5LCAxMzg1MSwgMTQ2MTcsIDE0NzAzLCAxNDgwMSwgMTQ4MTYsIDE0OTY0LCAxNTE4MywgMTU0NzEsIDE1NTg1LCAxNjQ3MSwgMTY3MzYsIDE3MjA4LCAxNzMyNSwgMTczMzAsIDE3Mzc0LCAxNzYyMywgMTc5OTcsIDE4MDE4LCAxODIxMiwgMTgyMTgsIDE4MzAxLCAxODMxOCwgMTg3NjAsIDE4ODExLCAxODgxNCwgMTg4MjAsIDE4ODIzLCAxODg0NCwgMTg4NDgsIDE4ODcyLCAxOTU3NiwgMTk2MjAsIDE5NzM4LCAxOTg4NywgNDA4NzAsIDU5MjQ0LCA1OTMzNiwgNTkzNjcsIDU5NDEzLCA1OTQxNywgNTk0MjMsIDU5NDMxLCA1OTQzNywgNTk0NDMsIDU5NDUyLCA1OTQ2MCwgNTk0NzgsIDU5NDkzLCA2Mzc4OSwgNjM4NjYsIDYzODk0LCA2Mzk3NiwgNjM5ODYsIDY0MDE2LCA2NDAxOCwgNjQwMjEsIDY0MDI1LCA2NDAzNCwgNjQwMzcsIDY0MDQyLCA2NTA3NCwgNjUwOTMsIDY1MTA3LCA2NTExMiwgNjUxMjcsIDY1MTMyLCA2NTM3NSwgNjU1MTAsIDY1NTM2XSwgZ2JDaGFyczogWzAsIDM2LCAzOCwgNDUsIDUwLCA4MSwgODksIDk1LCA5NiwgMTAwLCAxMDMsIDEwNCwgMTA1LCAxMDksIDEyNiwgMTMzLCAxNDgsIDE3MiwgMTc1LCAxNzksIDIwOCwgMzA2LCAzMDcsIDMwOCwgMzA5LCAzMTAsIDMxMSwgMzEyLCAzMTMsIDM0MSwgNDI4LCA0NDMsIDU0NCwgNTQ1LCA1NTgsIDc0MSwgNzQyLCA3NDksIDc1MCwgODA1LCA4MTksIDgyMCwgNzkyMiwgNzkyNCwgNzkyNSwgNzkyNywgNzkzNCwgNzk0MywgNzk0NCwgNzk0NSwgNzk1MCwgODA2MiwgODE0OCwgODE0OSwgODE1MiwgODE2NCwgODE3NCwgODIzNiwgODI0MCwgODI2MiwgODI2NCwgODM3NCwgODM4MCwgODM4MSwgODM4NCwgODM4OCwgODM5MCwgODM5MiwgODM5MywgODM5NCwgODM5NiwgODQwMSwgODQwNiwgODQxNiwgODQxOSwgODQyNCwgODQzNywgODQzOSwgODQ0NSwgODQ4MiwgODQ4NSwgODQ5NiwgODUyMSwgODYwMywgODkzNiwgODk0NiwgOTA0NiwgOTA1MCwgOTA2MywgOTA2NiwgOTA3NiwgOTA5MiwgOTEwMCwgOTEwOCwgOTExMSwgOTExMywgOTEzMSwgOTE2MiwgOTE2NCwgOTIxOCwgOTIxOSwgMTEzMjksIDExMzMxLCAxMTMzNCwgMTEzMzYsIDExMzQ2LCAxMTM2MSwgMTEzNjMsIDExMzY2LCAxMTM3MCwgMTEzNzIsIDExMzc1LCAxMTM4OSwgMTE2ODIsIDExNjg2LCAxMTY4NywgMTE2OTIsIDExNjk0LCAxMTcxNCwgMTE3MTYsIDExNzIzLCAxMTcyNSwgMTE3MzAsIDExNzM2LCAxMTk4MiwgMTE5ODksIDEyMTAyLCAxMjMzNiwgMTIzNDgsIDEyMzUwLCAxMjM4NCwgMTIzOTMsIDEyMzk1LCAxMjM5NywgMTI1MTAsIDEyNTUzLCAxMjg1MSwgMTI5NjIsIDEyOTczLCAxMzczOCwgMTM4MjMsIDEzOTE5LCAxMzkzMywgMTQwODAsIDE0Mjk4LCAxNDU4NSwgMTQ2OTgsIDE1NTgzLCAxNTg0NywgMTYzMTgsIDE2NDM0LCAxNjQzOCwgMTY0ODEsIDE2NzI5LCAxNzEwMiwgMTcxMjIsIDE3MzE1LCAxNzMyMCwgMTc0MDIsIDE3NDE4LCAxNzg1OSwgMTc5MDksIDE3OTExLCAxNzkxNSwgMTc5MTYsIDE3OTM2LCAxNzkzOSwgMTc5NjEsIDE4NjY0LCAxODcwMywgMTg4MTQsIDE4OTYyLCAxOTA0MywgMzM0NjksIDMzNDcwLCAzMzQ3MSwgMzM0ODQsIDMzNDg1LCAzMzQ5MCwgMzM0OTcsIDMzNTAxLCAzMzUwNSwgMzM1MTMsIDMzNTIwLCAzMzUzNiwgMzM1NTAsIDM3ODQ1LCAzNzkyMSwgMzc5NDgsIDM4MDI5LCAzODAzOCwgMzgwNjQsIDM4MDY1LCAzODA2NiwgMzgwNjksIDM4MDc1LCAzODA3NiwgMzgwNzgsIDM5MTA4LCAzOTEwOSwgMzkxMTMsIDM5MTE0LCAzOTExNSwgMzkxMTYsIDM5MjY1LCAzOTM5NCwgMTg5ZTNdIH07XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvcmF3LWJvZHkvbm9kZV9tb2R1bGVzL2ljb252LWxpdGUvZW5jb2RpbmdzL3RhYmxlcy9jcDk0OS5qc29uXG52YXIgcmVxdWlyZV9jcDk0OSA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9yYXctYm9keS9ub2RlX21vZHVsZXMvaWNvbnYtbGl0ZS9lbmNvZGluZ3MvdGFibGVzL2NwOTQ5Lmpzb25cIihleHBvcnRzMiwgbW9kdWxlMikge1xuICAgIG1vZHVsZTIuZXhwb3J0cyA9IFtcbiAgICAgIFtcIjBcIiwgXCJcXDBcIiwgMTI3XSxcbiAgICAgIFtcIjgxNDFcIiwgXCJcXHVBQzAyXFx1QUMwM1xcdUFDMDVcXHVBQzA2XFx1QUMwQlwiLCA0LCBcIlxcdUFDMThcXHVBQzFFXFx1QUMxRlxcdUFDMjFcXHVBQzIyXFx1QUMyM1xcdUFDMjVcIiwgNiwgXCJcXHVBQzJFXFx1QUMzMlxcdUFDMzNcXHVBQzM0XCJdLFxuICAgICAgW1wiODE2MVwiLCBcIlxcdUFDMzVcXHVBQzM2XFx1QUMzN1xcdUFDM0FcXHVBQzNCXFx1QUMzRFxcdUFDM0VcXHVBQzNGXFx1QUM0MVwiLCA5LCBcIlxcdUFDNENcXHVBQzRFXCIsIDUsIFwiXFx1QUM1NVwiXSxcbiAgICAgIFtcIjgxODFcIiwgXCJcXHVBQzU2XFx1QUM1N1xcdUFDNTlcXHVBQzVBXFx1QUM1QlxcdUFDNURcIiwgMTgsIFwiXFx1QUM3MlxcdUFDNzNcXHVBQzc1XFx1QUM3NlxcdUFDNzlcXHVBQzdCXCIsIDQsIFwiXFx1QUM4MlxcdUFDODdcXHVBQzg4XFx1QUM4RFxcdUFDOEVcXHVBQzhGXFx1QUM5MVxcdUFDOTJcXHVBQzkzXFx1QUM5NVwiLCA2LCBcIlxcdUFDOUVcXHVBQ0EyXCIsIDUsIFwiXFx1QUNBQlxcdUFDQURcXHVBQ0FFXFx1QUNCMVwiLCA2LCBcIlxcdUFDQkFcXHVBQ0JFXFx1QUNCRlxcdUFDQzBcXHVBQ0MyXFx1QUNDM1xcdUFDQzVcXHVBQ0M2XFx1QUNDN1xcdUFDQzlcXHVBQ0NBXFx1QUNDQlxcdUFDQ0RcIiwgNywgXCJcXHVBQ0Q2XFx1QUNEOFwiLCA3LCBcIlxcdUFDRTJcXHVBQ0UzXFx1QUNFNVxcdUFDRTZcXHVBQ0U5XFx1QUNFQlxcdUFDRURcXHVBQ0VFXFx1QUNGMlxcdUFDRjRcXHVBQ0Y3XCIsIDQsIFwiXFx1QUNGRVxcdUFDRkZcXHVBRDAxXFx1QUQwMlxcdUFEMDNcXHVBRDA1XFx1QUQwN1wiLCA0LCBcIlxcdUFEMEVcXHVBRDEwXFx1QUQxMlxcdUFEMTNcIl0sXG4gICAgICBbXCI4MjQxXCIsIFwiXFx1QUQxNFxcdUFEMTVcXHVBRDE2XFx1QUQxN1xcdUFEMTlcXHVBRDFBXFx1QUQxQlxcdUFEMURcXHVBRDFFXFx1QUQxRlxcdUFEMjFcIiwgNywgXCJcXHVBRDJBXFx1QUQyQlxcdUFEMkVcIiwgNV0sXG4gICAgICBbXCI4MjYxXCIsIFwiXFx1QUQzNlxcdUFEMzdcXHVBRDM5XFx1QUQzQVxcdUFEM0JcXHVBRDNEXCIsIDYsIFwiXFx1QUQ0NlxcdUFENDhcXHVBRDRBXCIsIDUsIFwiXFx1QUQ1MVxcdUFENTJcXHVBRDUzXFx1QUQ1NVxcdUFENTZcXHVBRDU3XCJdLFxuICAgICAgW1wiODI4MVwiLCBcIlxcdUFENTlcIiwgNywgXCJcXHVBRDYyXFx1QUQ2NFwiLCA3LCBcIlxcdUFENkVcXHVBRDZGXFx1QUQ3MVxcdUFENzJcXHVBRDc3XFx1QUQ3OFxcdUFENzlcXHVBRDdBXFx1QUQ3RVxcdUFEODBcXHVBRDgzXCIsIDQsIFwiXFx1QUQ4QVxcdUFEOEJcXHVBRDhEXFx1QUQ4RVxcdUFEOEZcXHVBRDkxXCIsIDEwLCBcIlxcdUFEOUVcIiwgNSwgXCJcXHVBREE1XCIsIDE3LCBcIlxcdUFEQjhcIiwgNywgXCJcXHVBREMyXFx1QURDM1xcdUFEQzVcXHVBREM2XFx1QURDN1xcdUFEQzlcIiwgNiwgXCJcXHVBREQyXFx1QURENFwiLCA3LCBcIlxcdUFERERcXHVBRERFXFx1QURERlxcdUFERTFcXHVBREUyXFx1QURFM1xcdUFERTVcIiwgMThdLFxuICAgICAgW1wiODM0MVwiLCBcIlxcdUFERkFcXHVBREZCXFx1QURGRFxcdUFERkVcXHVBRTAyXCIsIDUsIFwiXFx1QUUwQVxcdUFFMENcXHVBRTBFXCIsIDUsIFwiXFx1QUUxNVwiLCA3XSxcbiAgICAgIFtcIjgzNjFcIiwgXCJcXHVBRTFEXCIsIDE4LCBcIlxcdUFFMzJcXHVBRTMzXFx1QUUzNVxcdUFFMzZcXHVBRTM5XFx1QUUzQlxcdUFFM0NcIl0sXG4gICAgICBbXCI4MzgxXCIsIFwiXFx1QUUzRFxcdUFFM0VcXHVBRTNGXFx1QUU0MlxcdUFFNDRcXHVBRTQ3XFx1QUU0OFxcdUFFNDlcXHVBRTRCXFx1QUU0RlxcdUFFNTFcXHVBRTUyXFx1QUU1M1xcdUFFNTVcXHVBRTU3XCIsIDQsIFwiXFx1QUU1RVxcdUFFNjJcXHVBRTYzXFx1QUU2NFxcdUFFNjZcXHVBRTY3XFx1QUU2QVxcdUFFNkJcXHVBRTZEXFx1QUU2RVxcdUFFNkZcXHVBRTcxXCIsIDYsIFwiXFx1QUU3QVxcdUFFN0VcIiwgNSwgXCJcXHVBRTg2XCIsIDUsIFwiXFx1QUU4RFwiLCA0NiwgXCJcXHVBRUJGXFx1QUVDMVxcdUFFQzJcXHVBRUMzXFx1QUVDNVwiLCA2LCBcIlxcdUFFQ0VcXHVBRUQyXCIsIDUsIFwiXFx1QUVEQVxcdUFFREJcXHVBRUREXCIsIDhdLFxuICAgICAgW1wiODQ0MVwiLCBcIlxcdUFFRTZcXHVBRUU3XFx1QUVFOVxcdUFFRUFcXHVBRUVDXFx1QUVFRVwiLCA1LCBcIlxcdUFFRjVcXHVBRUY2XFx1QUVGN1xcdUFFRjlcXHVBRUZBXFx1QUVGQlxcdUFFRkRcIiwgOF0sXG4gICAgICBbXCI4NDYxXCIsIFwiXFx1QUYwNlxcdUFGMDlcXHVBRjBBXFx1QUYwQlxcdUFGMENcXHVBRjBFXFx1QUYwRlxcdUFGMTFcIiwgMThdLFxuICAgICAgW1wiODQ4MVwiLCBcIlxcdUFGMjRcIiwgNywgXCJcXHVBRjJFXFx1QUYyRlxcdUFGMzFcXHVBRjMzXFx1QUYzNVwiLCA2LCBcIlxcdUFGM0VcXHVBRjQwXFx1QUY0NFxcdUFGNDVcXHVBRjQ2XFx1QUY0N1xcdUFGNEFcIiwgNSwgXCJcXHVBRjUxXCIsIDEwLCBcIlxcdUFGNUVcIiwgNSwgXCJcXHVBRjY2XCIsIDE4LCBcIlxcdUFGN0FcIiwgNSwgXCJcXHVBRjgxXFx1QUY4MlxcdUFGODNcXHVBRjg1XFx1QUY4NlxcdUFGODdcXHVBRjg5XCIsIDYsIFwiXFx1QUY5MlxcdUFGOTNcXHVBRjk0XFx1QUY5NlwiLCA1LCBcIlxcdUFGOURcIiwgMjYsIFwiXFx1QUZCQVxcdUFGQkJcXHVBRkJEXFx1QUZCRVwiXSxcbiAgICAgIFtcIjg1NDFcIiwgXCJcXHVBRkJGXFx1QUZDMVwiLCA1LCBcIlxcdUFGQ0FcXHVBRkNDXFx1QUZDRlwiLCA0LCBcIlxcdUFGRDVcIiwgNiwgXCJcXHVBRkREXCIsIDRdLFxuICAgICAgW1wiODU2MVwiLCBcIlxcdUFGRTJcIiwgNSwgXCJcXHVBRkVBXCIsIDUsIFwiXFx1QUZGMlxcdUFGRjNcXHVBRkY1XFx1QUZGNlxcdUFGRjdcXHVBRkY5XCIsIDYsIFwiXFx1QjAwMlxcdUIwMDNcIl0sXG4gICAgICBbXCI4NTgxXCIsIFwiXFx1QjAwNVwiLCA2LCBcIlxcdUIwMERcXHVCMDBFXFx1QjAwRlxcdUIwMTFcXHVCMDEyXFx1QjAxM1xcdUIwMTVcIiwgNiwgXCJcXHVCMDFFXCIsIDksIFwiXFx1QjAyOVwiLCAyNiwgXCJcXHVCMDQ2XFx1QjA0N1xcdUIwNDlcXHVCMDRCXFx1QjA0RFxcdUIwNEZcXHVCMDUwXFx1QjA1MVxcdUIwNTJcXHVCMDU2XFx1QjA1OFxcdUIwNUFcXHVCMDVCXFx1QjA1Q1xcdUIwNUVcIiwgMjksIFwiXFx1QjA3RVxcdUIwN0ZcXHVCMDgxXFx1QjA4MlxcdUIwODNcXHVCMDg1XCIsIDYsIFwiXFx1QjA4RVxcdUIwOTBcXHVCMDkyXCIsIDUsIFwiXFx1QjA5QlxcdUIwOURcXHVCMDlFXFx1QjBBM1xcdUIwQTRcIl0sXG4gICAgICBbXCI4NjQxXCIsIFwiXFx1QjBBNVxcdUIwQTZcXHVCMEE3XFx1QjBBQVxcdUIwQjBcXHVCMEIyXFx1QjBCNlxcdUIwQjdcXHVCMEI5XFx1QjBCQVxcdUIwQkJcXHVCMEJEXCIsIDYsIFwiXFx1QjBDNlxcdUIwQ0FcIiwgNSwgXCJcXHVCMEQyXCJdLFxuICAgICAgW1wiODY2MVwiLCBcIlxcdUIwRDNcXHVCMEQ1XFx1QjBENlxcdUIwRDdcXHVCMEQ5XCIsIDYsIFwiXFx1QjBFMVxcdUIwRTJcXHVCMEUzXFx1QjBFNFxcdUIwRTZcIiwgMTBdLFxuICAgICAgW1wiODY4MVwiLCBcIlxcdUIwRjFcIiwgMjIsIFwiXFx1QjEwQVxcdUIxMERcXHVCMTBFXFx1QjEwRlxcdUIxMTFcXHVCMTE0XFx1QjExNVxcdUIxMTZcXHVCMTE3XFx1QjExQVxcdUIxMUVcIiwgNCwgXCJcXHVCMTI2XFx1QjEyN1xcdUIxMjlcXHVCMTJBXFx1QjEyQlxcdUIxMkRcIiwgNiwgXCJcXHVCMTM2XFx1QjEzQVwiLCA1LCBcIlxcdUIxNDJcXHVCMTQzXFx1QjE0NVxcdUIxNDZcXHVCMTQ3XFx1QjE0OVwiLCA2LCBcIlxcdUIxNTJcXHVCMTUzXFx1QjE1NlxcdUIxNTdcXHVCMTU5XFx1QjE1QVxcdUIxNUJcXHVCMTVEXFx1QjE1RVxcdUIxNUZcXHVCMTYxXCIsIDIyLCBcIlxcdUIxN0FcXHVCMTdCXFx1QjE3RFxcdUIxN0VcXHVCMTdGXFx1QjE4MVxcdUIxODNcIiwgNCwgXCJcXHVCMThBXFx1QjE4Q1xcdUIxOEVcXHVCMThGXFx1QjE5MFxcdUIxOTFcXHVCMTk1XFx1QjE5NlxcdUIxOTdcXHVCMTk5XFx1QjE5QVxcdUIxOUJcXHVCMTlEXCJdLFxuICAgICAgW1wiODc0MVwiLCBcIlxcdUIxOUVcIiwgOSwgXCJcXHVCMUE5XCIsIDE1XSxcbiAgICAgIFtcIjg3NjFcIiwgXCJcXHVCMUI5XCIsIDE4LCBcIlxcdUIxQ0RcXHVCMUNFXFx1QjFDRlxcdUIxRDFcXHVCMUQyXFx1QjFEM1xcdUIxRDVcIl0sXG4gICAgICBbXCI4NzgxXCIsIFwiXFx1QjFENlwiLCA1LCBcIlxcdUIxREVcXHVCMUUwXCIsIDcsIFwiXFx1QjFFQVxcdUIxRUJcXHVCMUVEXFx1QjFFRVxcdUIxRUZcXHVCMUYxXCIsIDcsIFwiXFx1QjFGQVxcdUIxRkNcXHVCMUZFXCIsIDUsIFwiXFx1QjIwNlxcdUIyMDdcXHVCMjA5XFx1QjIwQVxcdUIyMERcIiwgNiwgXCJcXHVCMjE2XFx1QjIxOFxcdUIyMUFcIiwgNSwgXCJcXHVCMjIxXCIsIDE4LCBcIlxcdUIyMzVcIiwgNiwgXCJcXHVCMjNEXCIsIDI2LCBcIlxcdUIyNTlcXHVCMjVBXFx1QjI1QlxcdUIyNURcXHVCMjVFXFx1QjI1RlxcdUIyNjFcIiwgNiwgXCJcXHVCMjZBXCIsIDRdLFxuICAgICAgW1wiODg0MVwiLCBcIlxcdUIyNkZcIiwgNCwgXCJcXHVCMjc2XCIsIDUsIFwiXFx1QjI3RFwiLCA2LCBcIlxcdUIyODZcXHVCMjg3XFx1QjI4OFxcdUIyOEFcIiwgNF0sXG4gICAgICBbXCI4ODYxXCIsIFwiXFx1QjI4RlxcdUIyOTJcXHVCMjkzXFx1QjI5NVxcdUIyOTZcXHVCMjk3XFx1QjI5QlwiLCA0LCBcIlxcdUIyQTJcXHVCMkE0XFx1QjJBN1xcdUIyQThcXHVCMkE5XFx1QjJBQlxcdUIyQURcXHVCMkFFXFx1QjJBRlxcdUIyQjFcXHVCMkIyXFx1QjJCM1xcdUIyQjVcXHVCMkI2XFx1QjJCN1wiXSxcbiAgICAgIFtcIjg4ODFcIiwgXCJcXHVCMkI4XCIsIDE1LCBcIlxcdUIyQ0FcXHVCMkNCXFx1QjJDRFxcdUIyQ0VcXHVCMkNGXFx1QjJEMVxcdUIyRDNcIiwgNCwgXCJcXHVCMkRBXFx1QjJEQ1xcdUIyREVcXHVCMkRGXFx1QjJFMFxcdUIyRTFcXHVCMkUzXFx1QjJFN1xcdUIyRTlcXHVCMkVBXFx1QjJGMFxcdUIyRjFcXHVCMkYyXFx1QjJGNlxcdUIyRkNcXHVCMkZEXFx1QjJGRVxcdUIzMDJcXHVCMzAzXFx1QjMwNVxcdUIzMDZcXHVCMzA3XFx1QjMwOVwiLCA2LCBcIlxcdUIzMTJcXHVCMzE2XCIsIDUsIFwiXFx1QjMxRFwiLCA1NCwgXCJcXHVCMzU3XFx1QjM1OVxcdUIzNUFcXHVCMzVEXFx1QjM2MFxcdUIzNjFcXHVCMzYyXFx1QjM2M1wiXSxcbiAgICAgIFtcIjg5NDFcIiwgXCJcXHVCMzY2XFx1QjM2OFxcdUIzNkFcXHVCMzZDXFx1QjM2RFxcdUIzNkZcXHVCMzcyXFx1QjM3M1xcdUIzNzVcXHVCMzc2XFx1QjM3N1xcdUIzNzlcIiwgNiwgXCJcXHVCMzgyXFx1QjM4NlwiLCA1LCBcIlxcdUIzOERcIl0sXG4gICAgICBbXCI4OTYxXCIsIFwiXFx1QjM4RVxcdUIzOEZcXHVCMzkxXFx1QjM5MlxcdUIzOTNcXHVCMzk1XCIsIDEwLCBcIlxcdUIzQTJcIiwgNSwgXCJcXHVCM0E5XFx1QjNBQVxcdUIzQUJcXHVCM0FEXCJdLFxuICAgICAgW1wiODk4MVwiLCBcIlxcdUIzQUVcIiwgMjEsIFwiXFx1QjNDNlxcdUIzQzdcXHVCM0M5XFx1QjNDQVxcdUIzQ0RcXHVCM0NGXFx1QjNEMVxcdUIzRDJcXHVCM0QzXFx1QjNENlxcdUIzRDhcXHVCM0RBXFx1QjNEQ1xcdUIzREVcXHVCM0RGXFx1QjNFMVxcdUIzRTJcXHVCM0UzXFx1QjNFNVxcdUIzRTZcXHVCM0U3XFx1QjNFOVwiLCAxOCwgXCJcXHVCM0ZEXCIsIDE4LCBcIlxcdUI0MTFcIiwgNiwgXCJcXHVCNDE5XFx1QjQxQVxcdUI0MUJcXHVCNDFEXFx1QjQxRVxcdUI0MUZcXHVCNDIxXCIsIDYsIFwiXFx1QjQyQVxcdUI0MkNcIiwgNywgXCJcXHVCNDM1XCIsIDE1XSxcbiAgICAgIFtcIjhhNDFcIiwgXCJcXHVCNDQ1XCIsIDEwLCBcIlxcdUI0NTJcXHVCNDUzXFx1QjQ1NVxcdUI0NTZcXHVCNDU3XFx1QjQ1OVwiLCA2LCBcIlxcdUI0NjJcXHVCNDY0XFx1QjQ2NlwiXSxcbiAgICAgIFtcIjhhNjFcIiwgXCJcXHVCNDY3XCIsIDQsIFwiXFx1QjQ2RFwiLCAxOCwgXCJcXHVCNDgxXFx1QjQ4MlwiXSxcbiAgICAgIFtcIjhhODFcIiwgXCJcXHVCNDgzXCIsIDQsIFwiXFx1QjQ4OVwiLCAxOSwgXCJcXHVCNDlFXCIsIDUsIFwiXFx1QjRBNVxcdUI0QTZcXHVCNEE3XFx1QjRBOVxcdUI0QUFcXHVCNEFCXFx1QjRBRFwiLCA3LCBcIlxcdUI0QjZcXHVCNEI4XFx1QjRCQVwiLCA1LCBcIlxcdUI0QzFcXHVCNEMyXFx1QjRDM1xcdUI0QzVcXHVCNEM2XFx1QjRDN1xcdUI0QzlcIiwgNiwgXCJcXHVCNEQxXFx1QjREMlxcdUI0RDNcXHVCNEQ0XFx1QjRENlwiLCA1LCBcIlxcdUI0REVcXHVCNERGXFx1QjRFMVxcdUI0RTJcXHVCNEU1XFx1QjRFN1wiLCA0LCBcIlxcdUI0RUVcXHVCNEYwXFx1QjRGMlwiLCA1LCBcIlxcdUI0RjlcIiwgMjYsIFwiXFx1QjUxNlxcdUI1MTdcXHVCNTE5XFx1QjUxQVxcdUI1MURcIl0sXG4gICAgICBbXCI4YjQxXCIsIFwiXFx1QjUxRVwiLCA1LCBcIlxcdUI1MjZcXHVCNTJCXCIsIDQsIFwiXFx1QjUzMlxcdUI1MzNcXHVCNTM1XFx1QjUzNlxcdUI1MzdcXHVCNTM5XCIsIDYsIFwiXFx1QjU0MlxcdUI1NDZcIl0sXG4gICAgICBbXCI4YjYxXCIsIFwiXFx1QjU0N1xcdUI1NDhcXHVCNTQ5XFx1QjU0QVxcdUI1NEVcXHVCNTRGXFx1QjU1MVxcdUI1NTJcXHVCNTUzXFx1QjU1NVwiLCA2LCBcIlxcdUI1NUVcXHVCNTYyXCIsIDhdLFxuICAgICAgW1wiOGI4MVwiLCBcIlxcdUI1NkJcIiwgNTIsIFwiXFx1QjVBMlxcdUI1QTNcXHVCNUE1XFx1QjVBNlxcdUI1QTdcXHVCNUE5XFx1QjVBQ1xcdUI1QURcXHVCNUFFXFx1QjVBRlxcdUI1QjJcXHVCNUI2XCIsIDQsIFwiXFx1QjVCRVxcdUI1QkZcXHVCNUMxXFx1QjVDMlxcdUI1QzNcXHVCNUM1XCIsIDYsIFwiXFx1QjVDRVxcdUI1RDJcIiwgNSwgXCJcXHVCNUQ5XCIsIDE4LCBcIlxcdUI1RURcIiwgMThdLFxuICAgICAgW1wiOGM0MVwiLCBcIlxcdUI2MDBcIiwgMTUsIFwiXFx1QjYxMlxcdUI2MTNcXHVCNjE1XFx1QjYxNlxcdUI2MTdcXHVCNjE5XCIsIDRdLFxuICAgICAgW1wiOGM2MVwiLCBcIlxcdUI2MUVcIiwgNiwgXCJcXHVCNjI2XCIsIDUsIFwiXFx1QjYyRFwiLCA2LCBcIlxcdUI2MzVcIiwgNV0sXG4gICAgICBbXCI4YzgxXCIsIFwiXFx1QjYzQlwiLCAxMiwgXCJcXHVCNjQ5XCIsIDI2LCBcIlxcdUI2NjVcXHVCNjY2XFx1QjY2N1xcdUI2NjlcIiwgNTAsIFwiXFx1QjY5RVxcdUI2OUZcXHVCNkExXFx1QjZBMlxcdUI2QTNcXHVCNkE1XCIsIDUsIFwiXFx1QjZBRFxcdUI2QUVcXHVCNkFGXFx1QjZCMFxcdUI2QjJcIiwgMTZdLFxuICAgICAgW1wiOGQ0MVwiLCBcIlxcdUI2QzNcIiwgMTYsIFwiXFx1QjZENVwiLCA4XSxcbiAgICAgIFtcIjhkNjFcIiwgXCJcXHVCNkRFXCIsIDE3LCBcIlxcdUI2RjFcXHVCNkYyXFx1QjZGM1xcdUI2RjVcXHVCNkY2XFx1QjZGN1xcdUI2RjlcXHVCNkZBXCJdLFxuICAgICAgW1wiOGQ4MVwiLCBcIlxcdUI2RkJcIiwgNCwgXCJcXHVCNzAyXFx1QjcwM1xcdUI3MDRcXHVCNzA2XCIsIDMzLCBcIlxcdUI3MkFcXHVCNzJCXFx1QjcyRFxcdUI3MkVcXHVCNzMxXCIsIDYsIFwiXFx1QjczQVxcdUI3M0NcIiwgNywgXCJcXHVCNzQ1XFx1Qjc0NlxcdUI3NDdcXHVCNzQ5XFx1Qjc0QVxcdUI3NEJcXHVCNzREXCIsIDYsIFwiXFx1Qjc1NlwiLCA5LCBcIlxcdUI3NjFcXHVCNzYyXFx1Qjc2M1xcdUI3NjVcXHVCNzY2XFx1Qjc2N1xcdUI3NjlcIiwgNiwgXCJcXHVCNzcyXFx1Qjc3NFxcdUI3NzZcIiwgNSwgXCJcXHVCNzdFXFx1Qjc3RlxcdUI3ODFcXHVCNzgyXFx1Qjc4M1xcdUI3ODVcIiwgNiwgXCJcXHVCNzhFXFx1Qjc5M1xcdUI3OTRcXHVCNzk1XFx1Qjc5QVxcdUI3OUJcXHVCNzlEXFx1Qjc5RVwiXSxcbiAgICAgIFtcIjhlNDFcIiwgXCJcXHVCNzlGXFx1QjdBMVwiLCA2LCBcIlxcdUI3QUFcXHVCN0FFXCIsIDUsIFwiXFx1QjdCNlxcdUI3QjdcXHVCN0I5XCIsIDhdLFxuICAgICAgW1wiOGU2MVwiLCBcIlxcdUI3QzJcIiwgNCwgXCJcXHVCN0M4XFx1QjdDQVwiLCAxOV0sXG4gICAgICBbXCI4ZTgxXCIsIFwiXFx1QjdERVwiLCAxMywgXCJcXHVCN0VFXFx1QjdFRlxcdUI3RjFcXHVCN0YyXFx1QjdGM1xcdUI3RjVcIiwgNiwgXCJcXHVCN0ZFXFx1QjgwMlwiLCA0LCBcIlxcdUI4MEFcXHVCODBCXFx1QjgwRFxcdUI4MEVcXHVCODBGXFx1QjgxMVwiLCA2LCBcIlxcdUI4MUFcXHVCODFDXFx1QjgxRVwiLCA1LCBcIlxcdUI4MjZcXHVCODI3XFx1QjgyOVxcdUI4MkFcXHVCODJCXFx1QjgyRFwiLCA2LCBcIlxcdUI4MzZcXHVCODNBXCIsIDUsIFwiXFx1Qjg0MVxcdUI4NDJcXHVCODQzXFx1Qjg0NVwiLCAxMSwgXCJcXHVCODUyXFx1Qjg1NFwiLCA3LCBcIlxcdUI4NUVcXHVCODVGXFx1Qjg2MVxcdUI4NjJcXHVCODYzXFx1Qjg2NVwiLCA2LCBcIlxcdUI4NkVcXHVCODcwXFx1Qjg3MlwiLCA1LCBcIlxcdUI4NzlcXHVCODdBXFx1Qjg3QlxcdUI4N0RcIiwgN10sXG4gICAgICBbXCI4ZjQxXCIsIFwiXFx1Qjg4NVwiLCA3LCBcIlxcdUI4OEVcIiwgMTddLFxuICAgICAgW1wiOGY2MVwiLCBcIlxcdUI4QTBcIiwgNywgXCJcXHVCOEE5XCIsIDYsIFwiXFx1QjhCMVxcdUI4QjJcXHVCOEIzXFx1QjhCNVxcdUI4QjZcXHVCOEI3XFx1QjhCOVwiLCA0XSxcbiAgICAgIFtcIjhmODFcIiwgXCJcXHVCOEJFXFx1QjhCRlxcdUI4QzJcXHVCOEM0XFx1QjhDNlwiLCA1LCBcIlxcdUI4Q0RcXHVCOENFXFx1QjhDRlxcdUI4RDFcXHVCOEQyXFx1QjhEM1xcdUI4RDVcIiwgNywgXCJcXHVCOERFXFx1QjhFMFxcdUI4RTJcIiwgNSwgXCJcXHVCOEVBXFx1QjhFQlxcdUI4RURcXHVCOEVFXFx1QjhFRlxcdUI4RjFcIiwgNiwgXCJcXHVCOEZBXFx1QjhGQ1xcdUI4RkVcIiwgNSwgXCJcXHVCOTA1XCIsIDE4LCBcIlxcdUI5MTlcIiwgNiwgXCJcXHVCOTIxXCIsIDI2LCBcIlxcdUI5M0VcXHVCOTNGXFx1Qjk0MVxcdUI5NDJcXHVCOTQzXFx1Qjk0NVwiLCA2LCBcIlxcdUI5NERcXHVCOTRFXFx1Qjk1MFxcdUI5NTJcIiwgNV0sXG4gICAgICBbXCI5MDQxXCIsIFwiXFx1Qjk1QVxcdUI5NUJcXHVCOTVEXFx1Qjk1RVxcdUI5NUZcXHVCOTYxXCIsIDYsIFwiXFx1Qjk2QVxcdUI5NkNcXHVCOTZFXCIsIDUsIFwiXFx1Qjk3NlxcdUI5NzdcXHVCOTc5XFx1Qjk3QVxcdUI5N0JcXHVCOTdEXCJdLFxuICAgICAgW1wiOTA2MVwiLCBcIlxcdUI5N0VcIiwgNSwgXCJcXHVCOTg2XFx1Qjk4OFxcdUI5OEJcXHVCOThDXFx1Qjk4RlwiLCAxNV0sXG4gICAgICBbXCI5MDgxXCIsIFwiXFx1Qjk5RlwiLCAxMiwgXCJcXHVCOUFFXFx1QjlBRlxcdUI5QjFcXHVCOUIyXFx1QjlCM1xcdUI5QjVcIiwgNiwgXCJcXHVCOUJFXFx1QjlDMFxcdUI5QzJcIiwgNSwgXCJcXHVCOUNBXFx1QjlDQlxcdUI5Q0RcXHVCOUQzXCIsIDQsIFwiXFx1QjlEQVxcdUI5RENcXHVCOURGXFx1QjlFMFxcdUI5RTJcXHVCOUU2XFx1QjlFN1xcdUI5RTlcXHVCOUVBXFx1QjlFQlxcdUI5RURcIiwgNiwgXCJcXHVCOUY2XFx1QjlGQlwiLCA0LCBcIlxcdUJBMDJcIiwgNSwgXCJcXHVCQTA5XCIsIDExLCBcIlxcdUJBMTZcIiwgMzMsIFwiXFx1QkEzQVxcdUJBM0JcXHVCQTNEXFx1QkEzRVxcdUJBM0ZcXHVCQTQxXFx1QkE0M1xcdUJBNDRcXHVCQTQ1XFx1QkE0NlwiXSxcbiAgICAgIFtcIjkxNDFcIiwgXCJcXHVCQTQ3XFx1QkE0QVxcdUJBNENcXHVCQTRGXFx1QkE1MFxcdUJBNTFcXHVCQTUyXFx1QkE1NlxcdUJBNTdcXHVCQTU5XFx1QkE1QVxcdUJBNUJcXHVCQTVEXCIsIDYsIFwiXFx1QkE2NlxcdUJBNkFcIiwgNV0sXG4gICAgICBbXCI5MTYxXCIsIFwiXFx1QkE3MlxcdUJBNzNcXHVCQTc1XFx1QkE3NlxcdUJBNzdcXHVCQTc5XCIsIDksIFwiXFx1QkE4NlxcdUJBODhcXHVCQTg5XFx1QkE4QVxcdUJBOEJcXHVCQThEXCIsIDVdLFxuICAgICAgW1wiOTE4MVwiLCBcIlxcdUJBOTNcIiwgMjAsIFwiXFx1QkFBQVxcdUJBQURcXHVCQUFFXFx1QkFBRlxcdUJBQjFcXHVCQUIzXCIsIDQsIFwiXFx1QkFCQVxcdUJBQkNcXHVCQUJFXCIsIDUsIFwiXFx1QkFDNVxcdUJBQzZcXHVCQUM3XFx1QkFDOVwiLCAxNCwgXCJcXHVCQURBXCIsIDMzLCBcIlxcdUJBRkRcXHVCQUZFXFx1QkFGRlxcdUJCMDFcXHVCQjAyXFx1QkIwM1xcdUJCMDVcIiwgNywgXCJcXHVCQjBFXFx1QkIxMFxcdUJCMTJcIiwgNSwgXCJcXHVCQjE5XFx1QkIxQVxcdUJCMUJcXHVCQjFEXFx1QkIxRVxcdUJCMUZcXHVCQjIxXCIsIDZdLFxuICAgICAgW1wiOTI0MVwiLCBcIlxcdUJCMjhcXHVCQjJBXFx1QkIyQ1wiLCA3LCBcIlxcdUJCMzdcXHVCQjM5XFx1QkIzQVxcdUJCM0ZcIiwgNCwgXCJcXHVCQjQ2XFx1QkI0OFxcdUJCNEFcXHVCQjRCXFx1QkI0Q1xcdUJCNEVcXHVCQjUxXFx1QkI1MlwiXSxcbiAgICAgIFtcIjkyNjFcIiwgXCJcXHVCQjUzXFx1QkI1NVxcdUJCNTZcXHVCQjU3XFx1QkI1OVwiLCA3LCBcIlxcdUJCNjJcXHVCQjY0XCIsIDcsIFwiXFx1QkI2RFwiLCA0XSxcbiAgICAgIFtcIjkyODFcIiwgXCJcXHVCQjcyXCIsIDIxLCBcIlxcdUJCODlcXHVCQjhBXFx1QkI4QlxcdUJCOERcXHVCQjhFXFx1QkI4RlxcdUJCOTFcIiwgMTgsIFwiXFx1QkJBNVxcdUJCQTZcXHVCQkE3XFx1QkJBOVxcdUJCQUFcXHVCQkFCXFx1QkJBRFwiLCA2LCBcIlxcdUJCQjVcXHVCQkI2XFx1QkJCOFwiLCA3LCBcIlxcdUJCQzFcXHVCQkMyXFx1QkJDM1xcdUJCQzVcXHVCQkM2XFx1QkJDN1xcdUJCQzlcIiwgNiwgXCJcXHVCQkQxXFx1QkJEMlxcdUJCRDRcIiwgMzUsIFwiXFx1QkJGQVxcdUJCRkJcXHVCQkZEXFx1QkJGRVxcdUJDMDFcIl0sXG4gICAgICBbXCI5MzQxXCIsIFwiXFx1QkMwM1wiLCA0LCBcIlxcdUJDMEFcXHVCQzBFXFx1QkMxMFxcdUJDMTJcXHVCQzEzXFx1QkMxOVxcdUJDMUFcXHVCQzIwXFx1QkMyMVxcdUJDMjJcXHVCQzIzXFx1QkMyNlxcdUJDMjhcXHVCQzJBXFx1QkMyQlxcdUJDMkNcXHVCQzJFXFx1QkMyRlxcdUJDMzJcXHVCQzMzXFx1QkMzNVwiXSxcbiAgICAgIFtcIjkzNjFcIiwgXCJcXHVCQzM2XFx1QkMzN1xcdUJDMzlcIiwgNiwgXCJcXHVCQzQyXFx1QkM0NlxcdUJDNDdcXHVCQzQ4XFx1QkM0QVxcdUJDNEJcXHVCQzRFXFx1QkM0RlxcdUJDNTFcIiwgOF0sXG4gICAgICBbXCI5MzgxXCIsIFwiXFx1QkM1QVxcdUJDNUJcXHVCQzVDXFx1QkM1RVwiLCAzNywgXCJcXHVCQzg2XFx1QkM4N1xcdUJDODlcXHVCQzhBXFx1QkM4RFxcdUJDOEZcIiwgNCwgXCJcXHVCQzk2XFx1QkM5OFxcdUJDOUJcIiwgNCwgXCJcXHVCQ0EyXFx1QkNBM1xcdUJDQTVcXHVCQ0E2XFx1QkNBOVwiLCA2LCBcIlxcdUJDQjJcXHVCQ0I2XCIsIDUsIFwiXFx1QkNCRVxcdUJDQkZcXHVCQ0MxXFx1QkNDMlxcdUJDQzNcXHVCQ0M1XCIsIDcsIFwiXFx1QkNDRVxcdUJDRDJcXHVCQ0QzXFx1QkNENFxcdUJDRDZcXHVCQ0Q3XFx1QkNEOVxcdUJDREFcXHVCQ0RCXFx1QkNERFwiLCAyMiwgXCJcXHVCQ0Y3XFx1QkNGOVxcdUJDRkFcXHVCQ0ZCXFx1QkNGRFwiXSxcbiAgICAgIFtcIjk0NDFcIiwgXCJcXHVCQ0ZFXCIsIDUsIFwiXFx1QkQwNlxcdUJEMDhcXHVCRDBBXCIsIDUsIFwiXFx1QkQxMVxcdUJEMTJcXHVCRDEzXFx1QkQxNVwiLCA4XSxcbiAgICAgIFtcIjk0NjFcIiwgXCJcXHVCRDFFXCIsIDUsIFwiXFx1QkQyNVwiLCA2LCBcIlxcdUJEMkRcIiwgMTJdLFxuICAgICAgW1wiOTQ4MVwiLCBcIlxcdUJEM0FcIiwgNSwgXCJcXHVCRDQxXCIsIDYsIFwiXFx1QkQ0QVxcdUJENEJcXHVCRDREXFx1QkQ0RVxcdUJENEZcXHVCRDUxXCIsIDYsIFwiXFx1QkQ1QVwiLCA5LCBcIlxcdUJENjVcXHVCRDY2XFx1QkQ2N1xcdUJENjlcIiwgMjIsIFwiXFx1QkQ4MlxcdUJEODNcXHVCRDg1XFx1QkQ4NlxcdUJEOEJcIiwgNCwgXCJcXHVCRDkyXFx1QkQ5NFxcdUJEOTZcXHVCRDk3XFx1QkQ5OFxcdUJEOUJcXHVCRDlEXCIsIDYsIFwiXFx1QkRBNVwiLCAxMCwgXCJcXHVCREIxXCIsIDYsIFwiXFx1QkRCOVwiLCAyNF0sXG4gICAgICBbXCI5NTQxXCIsIFwiXFx1QkREMlxcdUJERDNcXHVCREQ2XFx1QkREN1xcdUJERDlcXHVCRERBXFx1QkREQlxcdUJERERcIiwgMTEsIFwiXFx1QkRFQVwiLCA1LCBcIlxcdUJERjFcIl0sXG4gICAgICBbXCI5NTYxXCIsIFwiXFx1QkRGMlxcdUJERjNcXHVCREY1XFx1QkRGNlxcdUJERjdcXHVCREY5XCIsIDYsIFwiXFx1QkUwMVxcdUJFMDJcXHVCRTA0XFx1QkUwNlwiLCA1LCBcIlxcdUJFMEVcXHVCRTBGXFx1QkUxMVxcdUJFMTJcXHVCRTEzXCJdLFxuICAgICAgW1wiOTU4MVwiLCBcIlxcdUJFMTVcIiwgNiwgXCJcXHVCRTFFXFx1QkUyMFwiLCAzNSwgXCJcXHVCRTQ2XFx1QkU0N1xcdUJFNDlcXHVCRTRBXFx1QkU0QlxcdUJFNERcXHVCRTRGXCIsIDQsIFwiXFx1QkU1NlxcdUJFNThcXHVCRTVDXFx1QkU1RFxcdUJFNUVcXHVCRTVGXFx1QkU2MlxcdUJFNjNcXHVCRTY1XFx1QkU2NlxcdUJFNjdcXHVCRTY5XFx1QkU2QlwiLCA0LCBcIlxcdUJFNzJcXHVCRTc2XCIsIDQsIFwiXFx1QkU3RVxcdUJFN0ZcXHVCRTgxXFx1QkU4MlxcdUJFODNcXHVCRTg1XCIsIDYsIFwiXFx1QkU4RVxcdUJFOTJcIiwgNSwgXCJcXHVCRTlBXCIsIDEzLCBcIlxcdUJFQTlcIiwgMTRdLFxuICAgICAgW1wiOTY0MVwiLCBcIlxcdUJFQjhcIiwgMjMsIFwiXFx1QkVEMlxcdUJFRDNcIl0sXG4gICAgICBbXCI5NjYxXCIsIFwiXFx1QkVENVxcdUJFRDZcXHVCRUQ5XCIsIDYsIFwiXFx1QkVFMVxcdUJFRTJcXHVCRUU2XCIsIDUsIFwiXFx1QkVFRFwiLCA4XSxcbiAgICAgIFtcIjk2ODFcIiwgXCJcXHVCRUY2XCIsIDEwLCBcIlxcdUJGMDJcIiwgNSwgXCJcXHVCRjBBXCIsIDEzLCBcIlxcdUJGMUFcXHVCRjFFXCIsIDMzLCBcIlxcdUJGNDJcXHVCRjQzXFx1QkY0NVxcdUJGNDZcXHVCRjQ3XFx1QkY0OVwiLCA2LCBcIlxcdUJGNTJcXHVCRjUzXFx1QkY1NFxcdUJGNTZcIiwgNDRdLFxuICAgICAgW1wiOTc0MVwiLCBcIlxcdUJGODNcIiwgMTYsIFwiXFx1QkY5NVwiLCA4XSxcbiAgICAgIFtcIjk3NjFcIiwgXCJcXHVCRjlFXCIsIDE3LCBcIlxcdUJGQjFcIiwgN10sXG4gICAgICBbXCI5NzgxXCIsIFwiXFx1QkZCOVwiLCAxMSwgXCJcXHVCRkM2XCIsIDUsIFwiXFx1QkZDRVxcdUJGQ0ZcXHVCRkQxXFx1QkZEMlxcdUJGRDNcXHVCRkQ1XCIsIDYsIFwiXFx1QkZERFxcdUJGREVcXHVCRkUwXFx1QkZFMlwiLCA4OSwgXCJcXHVDMDNEXFx1QzAzRVxcdUMwM0ZcIl0sXG4gICAgICBbXCI5ODQxXCIsIFwiXFx1QzA0MFwiLCAxNiwgXCJcXHVDMDUyXCIsIDUsIFwiXFx1QzA1OVxcdUMwNUFcXHVDMDVCXCJdLFxuICAgICAgW1wiOTg2MVwiLCBcIlxcdUMwNURcXHVDMDVFXFx1QzA1RlxcdUMwNjFcIiwgNiwgXCJcXHVDMDZBXCIsIDE1XSxcbiAgICAgIFtcIjk4ODFcIiwgXCJcXHVDMDdBXCIsIDIxLCBcIlxcdUMwOTJcXHVDMDkzXFx1QzA5NVxcdUMwOTZcXHVDMDk3XFx1QzA5OVwiLCA2LCBcIlxcdUMwQTJcXHVDMEE0XFx1QzBBNlwiLCA1LCBcIlxcdUMwQUVcXHVDMEIxXFx1QzBCMlxcdUMwQjdcIiwgNCwgXCJcXHVDMEJFXFx1QzBDMlxcdUMwQzNcXHVDMEM0XFx1QzBDNlxcdUMwQzdcXHVDMENBXFx1QzBDQlxcdUMwQ0RcXHVDMENFXFx1QzBDRlxcdUMwRDFcIiwgNiwgXCJcXHVDMERBXFx1QzBERVwiLCA1LCBcIlxcdUMwRTZcXHVDMEU3XFx1QzBFOVxcdUMwRUFcXHVDMEVCXFx1QzBFRFwiLCA2LCBcIlxcdUMwRjZcXHVDMEY4XFx1QzBGQVwiLCA1LCBcIlxcdUMxMDFcXHVDMTAyXFx1QzEwM1xcdUMxMDVcXHVDMTA2XFx1QzEwN1xcdUMxMDlcIiwgNiwgXCJcXHVDMTExXFx1QzExMlxcdUMxMTNcXHVDMTE0XFx1QzExNlwiLCA1LCBcIlxcdUMxMjFcXHVDMTIyXFx1QzEyNVxcdUMxMjhcXHVDMTI5XFx1QzEyQVxcdUMxMkJcXHVDMTJFXCJdLFxuICAgICAgW1wiOTk0MVwiLCBcIlxcdUMxMzJcXHVDMTMzXFx1QzEzNFxcdUMxMzVcXHVDMTM3XFx1QzEzQVxcdUMxM0JcXHVDMTNEXFx1QzEzRVxcdUMxM0ZcXHVDMTQxXCIsIDYsIFwiXFx1QzE0QVxcdUMxNEVcIiwgNSwgXCJcXHVDMTU2XFx1QzE1N1wiXSxcbiAgICAgIFtcIjk5NjFcIiwgXCJcXHVDMTU5XFx1QzE1QVxcdUMxNUJcXHVDMTVEXCIsIDYsIFwiXFx1QzE2NlxcdUMxNkFcIiwgNSwgXCJcXHVDMTcxXFx1QzE3MlxcdUMxNzNcXHVDMTc1XFx1QzE3NlxcdUMxNzdcXHVDMTc5XFx1QzE3QVxcdUMxN0JcIl0sXG4gICAgICBbXCI5OTgxXCIsIFwiXFx1QzE3Q1wiLCA4LCBcIlxcdUMxODZcIiwgNSwgXCJcXHVDMThGXFx1QzE5MVxcdUMxOTJcXHVDMTkzXFx1QzE5NVxcdUMxOTdcIiwgNCwgXCJcXHVDMTlFXFx1QzFBMFxcdUMxQTJcXHVDMUEzXFx1QzFBNFxcdUMxQTZcXHVDMUE3XFx1QzFBQVxcdUMxQUJcXHVDMUFEXFx1QzFBRVxcdUMxQUZcXHVDMUIxXCIsIDExLCBcIlxcdUMxQkVcIiwgNSwgXCJcXHVDMUM1XFx1QzFDNlxcdUMxQzdcXHVDMUM5XFx1QzFDQVxcdUMxQ0JcXHVDMUNEXCIsIDYsIFwiXFx1QzFENVxcdUMxRDZcXHVDMUQ5XCIsIDYsIFwiXFx1QzFFMVxcdUMxRTJcXHVDMUUzXFx1QzFFNVxcdUMxRTZcXHVDMUU3XFx1QzFFOVwiLCA2LCBcIlxcdUMxRjJcXHVDMUY0XCIsIDcsIFwiXFx1QzFGRVxcdUMxRkZcXHVDMjAxXFx1QzIwMlxcdUMyMDNcXHVDMjA1XCIsIDYsIFwiXFx1QzIwRVxcdUMyMTBcXHVDMjEyXCIsIDUsIFwiXFx1QzIxQVxcdUMyMUJcXHVDMjFEXFx1QzIxRVxcdUMyMjFcXHVDMjIyXFx1QzIyM1wiXSxcbiAgICAgIFtcIjlhNDFcIiwgXCJcXHVDMjI0XFx1QzIyNVxcdUMyMjZcXHVDMjI3XFx1QzIyQVxcdUMyMkNcXHVDMjJFXFx1QzIzMFxcdUMyMzNcXHVDMjM1XCIsIDE2XSxcbiAgICAgIFtcIjlhNjFcIiwgXCJcXHVDMjQ2XFx1QzI0N1xcdUMyNDlcIiwgNiwgXCJcXHVDMjUyXFx1QzI1M1xcdUMyNTVcXHVDMjU2XFx1QzI1N1xcdUMyNTlcIiwgNiwgXCJcXHVDMjYxXFx1QzI2MlxcdUMyNjNcXHVDMjY0XFx1QzI2NlwiXSxcbiAgICAgIFtcIjlhODFcIiwgXCJcXHVDMjY3XCIsIDQsIFwiXFx1QzI2RVxcdUMyNkZcXHVDMjcxXFx1QzI3MlxcdUMyNzNcXHVDMjc1XCIsIDYsIFwiXFx1QzI3RVxcdUMyODBcXHVDMjgyXCIsIDUsIFwiXFx1QzI4QVwiLCA1LCBcIlxcdUMyOTFcIiwgNiwgXCJcXHVDMjk5XFx1QzI5QVxcdUMyOUNcXHVDMjlFXCIsIDUsIFwiXFx1QzJBNlxcdUMyQTdcXHVDMkE5XFx1QzJBQVxcdUMyQUJcXHVDMkFFXCIsIDUsIFwiXFx1QzJCNlxcdUMyQjhcXHVDMkJBXCIsIDMzLCBcIlxcdUMyREVcXHVDMkRGXFx1QzJFMVxcdUMyRTJcXHVDMkU1XCIsIDUsIFwiXFx1QzJFRVxcdUMyRjBcXHVDMkYyXFx1QzJGM1xcdUMyRjRcXHVDMkY1XFx1QzJGN1xcdUMyRkFcXHVDMkZEXFx1QzJGRVxcdUMyRkZcXHVDMzAxXCIsIDYsIFwiXFx1QzMwQVxcdUMzMEJcXHVDMzBFXFx1QzMwRlwiXSxcbiAgICAgIFtcIjliNDFcIiwgXCJcXHVDMzEwXFx1QzMxMVxcdUMzMTJcXHVDMzE2XFx1QzMxN1xcdUMzMTlcXHVDMzFBXFx1QzMxQlxcdUMzMURcIiwgNiwgXCJcXHVDMzI2XFx1QzMyN1xcdUMzMkFcIiwgOF0sXG4gICAgICBbXCI5YjYxXCIsIFwiXFx1QzMzM1wiLCAxNywgXCJcXHVDMzQ2XCIsIDddLFxuICAgICAgW1wiOWI4MVwiLCBcIlxcdUMzNEVcIiwgMjUsIFwiXFx1QzM2QVxcdUMzNkJcXHVDMzZEXFx1QzM2RVxcdUMzNkZcXHVDMzcxXFx1QzM3M1wiLCA0LCBcIlxcdUMzN0FcXHVDMzdCXFx1QzM3RVwiLCA1LCBcIlxcdUMzODVcXHVDMzg2XFx1QzM4N1xcdUMzODlcXHVDMzhBXFx1QzM4QlxcdUMzOERcIiwgNTAsIFwiXFx1QzNDMVwiLCAyMiwgXCJcXHVDM0RBXCJdLFxuICAgICAgW1wiOWM0MVwiLCBcIlxcdUMzREJcXHVDM0REXFx1QzNERVxcdUMzRTFcXHVDM0UzXCIsIDQsIFwiXFx1QzNFQVxcdUMzRUJcXHVDM0VDXFx1QzNFRVwiLCA1LCBcIlxcdUMzRjZcXHVDM0Y3XFx1QzNGOVwiLCA1XSxcbiAgICAgIFtcIjljNjFcIiwgXCJcXHVDM0ZGXCIsIDgsIFwiXFx1QzQwOVwiLCA2LCBcIlxcdUM0MTFcIiwgOV0sXG4gICAgICBbXCI5YzgxXCIsIFwiXFx1QzQxQlwiLCA4LCBcIlxcdUM0MjVcIiwgNiwgXCJcXHVDNDJEXFx1QzQyRVxcdUM0MkZcXHVDNDMxXFx1QzQzMlxcdUM0MzNcXHVDNDM1XCIsIDYsIFwiXFx1QzQzRVwiLCA5LCBcIlxcdUM0NDlcIiwgMjYsIFwiXFx1QzQ2NlxcdUM0NjdcXHVDNDY5XFx1QzQ2QVxcdUM0NkJcXHVDNDZEXCIsIDYsIFwiXFx1QzQ3NlxcdUM0NzdcXHVDNDc4XFx1QzQ3QVwiLCA1LCBcIlxcdUM0ODFcIiwgMTgsIFwiXFx1QzQ5NVwiLCA2LCBcIlxcdUM0OURcIiwgMTJdLFxuICAgICAgW1wiOWQ0MVwiLCBcIlxcdUM0QUFcIiwgMTMsIFwiXFx1QzRCOVxcdUM0QkFcXHVDNEJCXFx1QzRCRFwiLCA4XSxcbiAgICAgIFtcIjlkNjFcIiwgXCJcXHVDNEM2XCIsIDI1XSxcbiAgICAgIFtcIjlkODFcIiwgXCJcXHVDNEUwXCIsIDgsIFwiXFx1QzRFQVwiLCA1LCBcIlxcdUM0RjJcXHVDNEYzXFx1QzRGNVxcdUM0RjZcXHVDNEY3XFx1QzRGOVxcdUM0RkJcXHVDNEZDXFx1QzRGRFxcdUM0RkVcXHVDNTAyXCIsIDksIFwiXFx1QzUwRFxcdUM1MEVcXHVDNTBGXFx1QzUxMVxcdUM1MTJcXHVDNTEzXFx1QzUxNVwiLCA2LCBcIlxcdUM1MURcIiwgMTAsIFwiXFx1QzUyQVxcdUM1MkJcXHVDNTJEXFx1QzUyRVxcdUM1MkZcXHVDNTMxXCIsIDYsIFwiXFx1QzUzQVxcdUM1M0NcXHVDNTNFXCIsIDUsIFwiXFx1QzU0NlxcdUM1NDdcXHVDNTRCXFx1QzU0RlxcdUM1NTBcXHVDNTUxXFx1QzU1MlxcdUM1NTZcXHVDNTVBXFx1QzU1QlxcdUM1NUNcXHVDNTVGXFx1QzU2MlxcdUM1NjNcXHVDNTY1XFx1QzU2NlxcdUM1NjdcXHVDNTY5XCIsIDYsIFwiXFx1QzU3MlxcdUM1NzZcIiwgNSwgXCJcXHVDNTdFXFx1QzU3RlxcdUM1ODFcXHVDNTgyXFx1QzU4M1xcdUM1ODVcXHVDNTg2XFx1QzU4OFxcdUM1ODlcXHVDNThBXFx1QzU4QlxcdUM1OEVcXHVDNTkwXFx1QzU5MlxcdUM1OTNcXHVDNTk0XCJdLFxuICAgICAgW1wiOWU0MVwiLCBcIlxcdUM1OTZcXHVDNTk5XFx1QzU5QVxcdUM1OUJcXHVDNTlEXFx1QzU5RVxcdUM1OUZcXHVDNUExXCIsIDcsIFwiXFx1QzVBQVwiLCA5LCBcIlxcdUM1QjZcIl0sXG4gICAgICBbXCI5ZTYxXCIsIFwiXFx1QzVCN1xcdUM1QkFcXHVDNUJGXCIsIDQsIFwiXFx1QzVDQlxcdUM1Q0RcXHVDNUNGXFx1QzVEMlxcdUM1RDNcXHVDNUQ1XFx1QzVENlxcdUM1RDdcXHVDNUQ5XCIsIDYsIFwiXFx1QzVFMlxcdUM1RTRcXHVDNUU2XFx1QzVFN1wiXSxcbiAgICAgIFtcIjllODFcIiwgXCJcXHVDNUU4XFx1QzVFOVxcdUM1RUFcXHVDNUVCXFx1QzVFRlxcdUM1RjFcXHVDNUYyXFx1QzVGM1xcdUM1RjVcXHVDNUY4XFx1QzVGOVxcdUM1RkFcXHVDNUZCXFx1QzYwMlxcdUM2MDNcXHVDNjA0XFx1QzYwOVxcdUM2MEFcXHVDNjBCXFx1QzYwRFxcdUM2MEVcXHVDNjBGXFx1QzYxMVwiLCA2LCBcIlxcdUM2MUFcXHVDNjFEXCIsIDYsIFwiXFx1QzYyNlxcdUM2MjdcXHVDNjI5XFx1QzYyQVxcdUM2MkJcXHVDNjJGXFx1QzYzMVxcdUM2MzJcXHVDNjM2XFx1QzYzOFxcdUM2M0FcXHVDNjNDXFx1QzYzRFxcdUM2M0VcXHVDNjNGXFx1QzY0MlxcdUM2NDNcXHVDNjQ1XFx1QzY0NlxcdUM2NDdcXHVDNjQ5XCIsIDYsIFwiXFx1QzY1MlxcdUM2NTZcIiwgNSwgXCJcXHVDNjVFXFx1QzY1RlxcdUM2NjFcIiwgMTAsIFwiXFx1QzY2RFxcdUM2NkVcXHVDNjcwXFx1QzY3MlwiLCA1LCBcIlxcdUM2N0FcXHVDNjdCXFx1QzY3RFxcdUM2N0VcXHVDNjdGXFx1QzY4MVwiLCA2LCBcIlxcdUM2OEFcXHVDNjhDXFx1QzY4RVwiLCA1LCBcIlxcdUM2OTZcXHVDNjk3XFx1QzY5OVxcdUM2OUFcXHVDNjlCXFx1QzY5RFwiLCA2LCBcIlxcdUM2QTZcIl0sXG4gICAgICBbXCI5ZjQxXCIsIFwiXFx1QzZBOFxcdUM2QUFcIiwgNSwgXCJcXHVDNkIyXFx1QzZCM1xcdUM2QjVcXHVDNkI2XFx1QzZCN1xcdUM2QkJcIiwgNCwgXCJcXHVDNkMyXFx1QzZDNFxcdUM2QzZcIiwgNSwgXCJcXHVDNkNFXCJdLFxuICAgICAgW1wiOWY2MVwiLCBcIlxcdUM2Q0ZcXHVDNkQxXFx1QzZEMlxcdUM2RDNcXHVDNkQ1XCIsIDYsIFwiXFx1QzZERVxcdUM2REZcXHVDNkUyXCIsIDUsIFwiXFx1QzZFQVxcdUM2RUJcXHVDNkVEXFx1QzZFRVxcdUM2RUZcXHVDNkYxXFx1QzZGMlwiXSxcbiAgICAgIFtcIjlmODFcIiwgXCJcXHVDNkYzXCIsIDQsIFwiXFx1QzZGQVxcdUM2RkJcXHVDNkZDXFx1QzZGRVwiLCA1LCBcIlxcdUM3MDZcXHVDNzA3XFx1QzcwOVxcdUM3MEFcXHVDNzBCXFx1QzcwRFwiLCA2LCBcIlxcdUM3MTZcXHVDNzE4XFx1QzcxQVwiLCA1LCBcIlxcdUM3MjJcXHVDNzIzXFx1QzcyNVxcdUM3MjZcXHVDNzI3XFx1QzcyOVwiLCA2LCBcIlxcdUM3MzJcXHVDNzM0XFx1QzczNlxcdUM3MzhcXHVDNzM5XFx1QzczQVxcdUM3M0JcXHVDNzNFXFx1QzczRlxcdUM3NDFcXHVDNzQyXFx1Qzc0M1xcdUM3NDVcIiwgNCwgXCJcXHVDNzRCXFx1Qzc0RVxcdUM3NTBcXHVDNzU5XFx1Qzc1QVxcdUM3NUJcXHVDNzVEXFx1Qzc1RVxcdUM3NUZcXHVDNzYxXCIsIDYsIFwiXFx1Qzc2OVxcdUM3NkFcXHVDNzZDXCIsIDcsIFwiXFx1Qzc3NlxcdUM3NzdcXHVDNzc5XFx1Qzc3QVxcdUM3N0JcXHVDNzdGXFx1Qzc4MFxcdUM3ODFcXHVDNzgyXFx1Qzc4NlxcdUM3OEJcXHVDNzhDXFx1Qzc4RFxcdUM3OEZcXHVDNzkyXFx1Qzc5M1xcdUM3OTVcXHVDNzk5XFx1Qzc5QlwiLCA0LCBcIlxcdUM3QTJcXHVDN0E3XCIsIDQsIFwiXFx1QzdBRVxcdUM3QUZcXHVDN0IxXFx1QzdCMlxcdUM3QjNcXHVDN0I1XFx1QzdCNlxcdUM3QjdcIl0sXG4gICAgICBbXCJhMDQxXCIsIFwiXFx1QzdCOFxcdUM3QjlcXHVDN0JBXFx1QzdCQlxcdUM3QkVcXHVDN0MyXCIsIDUsIFwiXFx1QzdDQVxcdUM3Q0JcXHVDN0NEXFx1QzdDRlxcdUM3RDFcIiwgNiwgXCJcXHVDN0Q5XFx1QzdEQVxcdUM3REJcXHVDN0RDXCJdLFxuICAgICAgW1wiYTA2MVwiLCBcIlxcdUM3REVcIiwgNSwgXCJcXHVDN0U1XFx1QzdFNlxcdUM3RTdcXHVDN0U5XFx1QzdFQVxcdUM3RUJcXHVDN0VEXCIsIDEzXSxcbiAgICAgIFtcImEwODFcIiwgXCJcXHVDN0ZCXCIsIDQsIFwiXFx1QzgwMlxcdUM4MDNcXHVDODA1XFx1QzgwNlxcdUM4MDdcXHVDODA5XFx1QzgwQlwiLCA0LCBcIlxcdUM4MTJcXHVDODE0XFx1QzgxN1wiLCA0LCBcIlxcdUM4MUVcXHVDODFGXFx1QzgyMVxcdUM4MjJcXHVDODIzXFx1QzgyNVwiLCA2LCBcIlxcdUM4MkVcXHVDODMwXFx1QzgzMlwiLCA1LCBcIlxcdUM4MzlcXHVDODNBXFx1QzgzQlxcdUM4M0RcXHVDODNFXFx1QzgzRlxcdUM4NDFcIiwgNiwgXCJcXHVDODRBXFx1Qzg0QlxcdUM4NEVcIiwgNSwgXCJcXHVDODU1XCIsIDI2LCBcIlxcdUM4NzJcXHVDODczXFx1Qzg3NVxcdUM4NzZcXHVDODc3XFx1Qzg3OVxcdUM4N0JcIiwgNCwgXCJcXHVDODgyXFx1Qzg4NFxcdUM4ODhcXHVDODg5XFx1Qzg4QVxcdUM4OEVcIiwgNSwgXCJcXHVDODk1XCIsIDcsIFwiXFx1Qzg5RVxcdUM4QTBcXHVDOEEyXFx1QzhBM1xcdUM4QTRcIl0sXG4gICAgICBbXCJhMTQxXCIsIFwiXFx1QzhBNVxcdUM4QTZcXHVDOEE3XFx1QzhBOVwiLCAxOCwgXCJcXHVDOEJFXFx1QzhCRlxcdUM4QzBcXHVDOEMxXCJdLFxuICAgICAgW1wiYTE2MVwiLCBcIlxcdUM4QzJcXHVDOEMzXFx1QzhDNVxcdUM4QzZcXHVDOEM3XFx1QzhDOVxcdUM4Q0FcXHVDOENCXFx1QzhDRFwiLCA2LCBcIlxcdUM4RDZcXHVDOEQ4XFx1QzhEQVwiLCA1LCBcIlxcdUM4RTJcXHVDOEUzXFx1QzhFNVwiXSxcbiAgICAgIFtcImExODFcIiwgXCJcXHVDOEU2XCIsIDE0LCBcIlxcdUM4RjZcIiwgNSwgXCJcXHVDOEZFXFx1QzhGRlxcdUM5MDFcXHVDOTAyXFx1QzkwM1xcdUM5MDdcIiwgNCwgXCJcXHVDOTBFXFx1MzAwMFxcdTMwMDFcXHUzMDAyXFx4QjdcXHUyMDI1XFx1MjAyNlxceEE4XFx1MzAwM1xceEFEXFx1MjAxNVxcdTIyMjVcXHVGRjNDXFx1MjIzQ1xcdTIwMThcXHUyMDE5XFx1MjAxQ1xcdTIwMURcXHUzMDE0XFx1MzAxNVxcdTMwMDhcIiwgOSwgXCJcXHhCMVxceEQ3XFx4RjdcXHUyMjYwXFx1MjI2NFxcdTIyNjVcXHUyMjFFXFx1MjIzNFxceEIwXFx1MjAzMlxcdTIwMzNcXHUyMTAzXFx1MjEyQlxcdUZGRTBcXHVGRkUxXFx1RkZFNVxcdTI2NDJcXHUyNjQwXFx1MjIyMFxcdTIyQTVcXHUyMzEyXFx1MjIwMlxcdTIyMDdcXHUyMjYxXFx1MjI1MlxceEE3XFx1MjAzQlxcdTI2MDZcXHUyNjA1XFx1MjVDQlxcdTI1Q0ZcXHUyNUNFXFx1MjVDN1xcdTI1QzZcXHUyNUExXFx1MjVBMFxcdTI1QjNcXHUyNUIyXFx1MjVCRFxcdTI1QkNcXHUyMTkyXFx1MjE5MFxcdTIxOTFcXHUyMTkzXFx1MjE5NFxcdTMwMTNcXHUyMjZBXFx1MjI2QlxcdTIyMUFcXHUyMjNEXFx1MjIxRFxcdTIyMzVcXHUyMjJCXFx1MjIyQ1xcdTIyMDhcXHUyMjBCXFx1MjI4NlxcdTIyODdcXHUyMjgyXFx1MjI4M1xcdTIyMkFcXHUyMjI5XFx1MjIyN1xcdTIyMjhcXHVGRkUyXCJdLFxuICAgICAgW1wiYTI0MVwiLCBcIlxcdUM5MTBcXHVDOTEyXCIsIDUsIFwiXFx1QzkxOVwiLCAxOF0sXG4gICAgICBbXCJhMjYxXCIsIFwiXFx1QzkyRFwiLCA2LCBcIlxcdUM5MzVcIiwgMThdLFxuICAgICAgW1wiYTI4MVwiLCBcIlxcdUM5NDhcIiwgNywgXCJcXHVDOTUyXFx1Qzk1M1xcdUM5NTVcXHVDOTU2XFx1Qzk1N1xcdUM5NTlcIiwgNiwgXCJcXHVDOTYyXFx1Qzk2NFwiLCA3LCBcIlxcdUM5NkRcXHVDOTZFXFx1Qzk2RlxcdTIxRDJcXHUyMUQ0XFx1MjIwMFxcdTIyMDNcXHhCNFxcdUZGNUVcXHUwMkM3XFx1MDJEOFxcdTAyRERcXHUwMkRBXFx1MDJEOVxceEI4XFx1MDJEQlxceEExXFx4QkZcXHUwMkQwXFx1MjIyRVxcdTIyMTFcXHUyMjBGXFx4QTRcXHUyMTA5XFx1MjAzMFxcdTI1QzFcXHUyNUMwXFx1MjVCN1xcdTI1QjZcXHUyNjY0XFx1MjY2MFxcdTI2NjFcXHUyNjY1XFx1MjY2N1xcdTI2NjNcXHUyMjk5XFx1MjVDOFxcdTI1QTNcXHUyNUQwXFx1MjVEMVxcdTI1OTJcXHUyNUE0XFx1MjVBNVxcdTI1QThcXHUyNUE3XFx1MjVBNlxcdTI1QTlcXHUyNjY4XFx1MjYwRlxcdTI2MEVcXHUyNjFDXFx1MjYxRVxceEI2XFx1MjAyMFxcdTIwMjFcXHUyMTk1XFx1MjE5N1xcdTIxOTlcXHUyMTk2XFx1MjE5OFxcdTI2NkRcXHUyNjY5XFx1MjY2QVxcdTI2NkNcXHUzMjdGXFx1MzIxQ1xcdTIxMTZcXHUzM0M3XFx1MjEyMlxcdTMzQzJcXHUzM0Q4XFx1MjEyMVxcdTIwQUNcXHhBRVwiXSxcbiAgICAgIFtcImEzNDFcIiwgXCJcXHVDOTcxXFx1Qzk3MlxcdUM5NzNcXHVDOTc1XCIsIDYsIFwiXFx1Qzk3RFwiLCAxMCwgXCJcXHVDOThBXFx1Qzk4QlxcdUM5OERcXHVDOThFXFx1Qzk4RlwiXSxcbiAgICAgIFtcImEzNjFcIiwgXCJcXHVDOTkxXCIsIDYsIFwiXFx1Qzk5QVxcdUM5OUNcXHVDOTlFXCIsIDE2XSxcbiAgICAgIFtcImEzODFcIiwgXCJcXHVDOUFGXCIsIDE2LCBcIlxcdUM5QzJcXHVDOUMzXFx1QzlDNVxcdUM5QzZcXHVDOUM5XFx1QzlDQlwiLCA0LCBcIlxcdUM5RDJcXHVDOUQ0XFx1QzlEN1xcdUM5RDhcXHVDOURCXFx1RkYwMVwiLCA1OCwgXCJcXHVGRkU2XFx1RkYzRFwiLCAzMiwgXCJcXHVGRkUzXCJdLFxuICAgICAgW1wiYTQ0MVwiLCBcIlxcdUM5REVcXHVDOURGXFx1QzlFMVxcdUM5RTNcXHVDOUU1XFx1QzlFNlxcdUM5RThcXHVDOUU5XFx1QzlFQVxcdUM5RUJcXHVDOUVFXFx1QzlGMlwiLCA1LCBcIlxcdUM5RkFcXHVDOUZCXFx1QzlGRFxcdUM5RkVcXHVDOUZGXFx1Q0EwMVxcdUNBMDJcXHVDQTAzXFx1Q0EwNFwiXSxcbiAgICAgIFtcImE0NjFcIiwgXCJcXHVDQTA1XFx1Q0EwNlxcdUNBMDdcXHVDQTBBXFx1Q0EwRVwiLCA1LCBcIlxcdUNBMTVcXHVDQTE2XFx1Q0ExN1xcdUNBMTlcIiwgMTJdLFxuICAgICAgW1wiYTQ4MVwiLCBcIlxcdUNBMjZcXHVDQTI3XFx1Q0EyOFxcdUNBMkFcIiwgMjgsIFwiXFx1MzEzMVwiLCA5M10sXG4gICAgICBbXCJhNTQxXCIsIFwiXFx1Q0E0N1wiLCA0LCBcIlxcdUNBNEVcXHVDQTRGXFx1Q0E1MVxcdUNBNTJcXHVDQTUzXFx1Q0E1NVwiLCA2LCBcIlxcdUNBNUVcXHVDQTYyXCIsIDUsIFwiXFx1Q0E2OVxcdUNBNkFcIl0sXG4gICAgICBbXCJhNTYxXCIsIFwiXFx1Q0E2QlwiLCAxNywgXCJcXHVDQTdFXCIsIDUsIFwiXFx1Q0E4NVxcdUNBODZcIl0sXG4gICAgICBbXCJhNTgxXCIsIFwiXFx1Q0E4N1wiLCAxNiwgXCJcXHVDQTk5XCIsIDE0LCBcIlxcdTIxNzBcIiwgOV0sXG4gICAgICBbXCJhNWIwXCIsIFwiXFx1MjE2MFwiLCA5XSxcbiAgICAgIFtcImE1YzFcIiwgXCJcXHUwMzkxXCIsIDE2LCBcIlxcdTAzQTNcIiwgNl0sXG4gICAgICBbXCJhNWUxXCIsIFwiXFx1MDNCMVwiLCAxNiwgXCJcXHUwM0MzXCIsIDZdLFxuICAgICAgW1wiYTY0MVwiLCBcIlxcdUNBQThcIiwgMTksIFwiXFx1Q0FCRVxcdUNBQkZcXHVDQUMxXFx1Q0FDMlxcdUNBQzNcXHVDQUM1XCJdLFxuICAgICAgW1wiYTY2MVwiLCBcIlxcdUNBQzZcIiwgNSwgXCJcXHVDQUNFXFx1Q0FEMFxcdUNBRDJcXHVDQUQ0XFx1Q0FENVxcdUNBRDZcXHVDQUQ3XFx1Q0FEQVwiLCA1LCBcIlxcdUNBRTFcIiwgNl0sXG4gICAgICBbXCJhNjgxXCIsIFwiXFx1Q0FFOFxcdUNBRTlcXHVDQUVBXFx1Q0FFQlxcdUNBRURcIiwgNiwgXCJcXHVDQUY1XCIsIDE4LCBcIlxcdUNCMDlcXHVDQjBBXFx1MjUwMFxcdTI1MDJcXHUyNTBDXFx1MjUxMFxcdTI1MThcXHUyNTE0XFx1MjUxQ1xcdTI1MkNcXHUyNTI0XFx1MjUzNFxcdTI1M0NcXHUyNTAxXFx1MjUwM1xcdTI1MEZcXHUyNTEzXFx1MjUxQlxcdTI1MTdcXHUyNTIzXFx1MjUzM1xcdTI1MkJcXHUyNTNCXFx1MjU0QlxcdTI1MjBcXHUyNTJGXFx1MjUyOFxcdTI1MzdcXHUyNTNGXFx1MjUxRFxcdTI1MzBcXHUyNTI1XFx1MjUzOFxcdTI1NDJcXHUyNTEyXFx1MjUxMVxcdTI1MUFcXHUyNTE5XFx1MjUxNlxcdTI1MTVcXHUyNTBFXFx1MjUwRFxcdTI1MUVcXHUyNTFGXFx1MjUyMVxcdTI1MjJcXHUyNTI2XFx1MjUyN1xcdTI1MjlcXHUyNTJBXFx1MjUyRFxcdTI1MkVcXHUyNTMxXFx1MjUzMlxcdTI1MzVcXHUyNTM2XFx1MjUzOVxcdTI1M0FcXHUyNTNEXFx1MjUzRVxcdTI1NDBcXHUyNTQxXFx1MjU0M1wiLCA3XSxcbiAgICAgIFtcImE3NDFcIiwgXCJcXHVDQjBCXCIsIDQsIFwiXFx1Q0IxMVxcdUNCMTJcXHVDQjEzXFx1Q0IxNVxcdUNCMTZcXHVDQjE3XFx1Q0IxOVwiLCA2LCBcIlxcdUNCMjJcIiwgN10sXG4gICAgICBbXCJhNzYxXCIsIFwiXFx1Q0IyQVwiLCAyMiwgXCJcXHVDQjQyXFx1Q0I0M1xcdUNCNDRcIl0sXG4gICAgICBbXCJhNzgxXCIsIFwiXFx1Q0I0NVxcdUNCNDZcXHVDQjQ3XFx1Q0I0QVxcdUNCNEJcXHVDQjREXFx1Q0I0RVxcdUNCNEZcXHVDQjUxXCIsIDYsIFwiXFx1Q0I1QVxcdUNCNUJcXHVDQjVDXFx1Q0I1RVwiLCA1LCBcIlxcdUNCNjVcIiwgNywgXCJcXHUzMzk1XFx1MzM5NlxcdTMzOTdcXHUyMTEzXFx1MzM5OFxcdTMzQzRcXHUzM0EzXFx1MzNBNFxcdTMzQTVcXHUzM0E2XFx1MzM5OVwiLCA5LCBcIlxcdTMzQ0FcXHUzMzhEXFx1MzM4RVxcdTMzOEZcXHUzM0NGXFx1MzM4OFxcdTMzODlcXHUzM0M4XFx1MzNBN1xcdTMzQThcXHUzM0IwXCIsIDksIFwiXFx1MzM4MFwiLCA0LCBcIlxcdTMzQkFcIiwgNSwgXCJcXHUzMzkwXCIsIDQsIFwiXFx1MjEyNlxcdTMzQzBcXHUzM0MxXFx1MzM4QVxcdTMzOEJcXHUzMzhDXFx1MzNENlxcdTMzQzVcXHUzM0FEXFx1MzNBRVxcdTMzQUZcXHUzM0RCXFx1MzNBOVxcdTMzQUFcXHUzM0FCXFx1MzNBQ1xcdTMzRERcXHUzM0QwXFx1MzNEM1xcdTMzQzNcXHUzM0M5XFx1MzNEQ1xcdTMzQzZcIl0sXG4gICAgICBbXCJhODQxXCIsIFwiXFx1Q0I2RFwiLCAxMCwgXCJcXHVDQjdBXCIsIDE0XSxcbiAgICAgIFtcImE4NjFcIiwgXCJcXHVDQjg5XCIsIDE4LCBcIlxcdUNCOURcIiwgNl0sXG4gICAgICBbXCJhODgxXCIsIFwiXFx1Q0JBNFwiLCAxOSwgXCJcXHVDQkI5XCIsIDExLCBcIlxceEM2XFx4RDBcXHhBQVxcdTAxMjZcIl0sXG4gICAgICBbXCJhOGE2XCIsIFwiXFx1MDEzMlwiXSxcbiAgICAgIFtcImE4YThcIiwgXCJcXHUwMTNGXFx1MDE0MVxceEQ4XFx1MDE1MlxceEJBXFx4REVcXHUwMTY2XFx1MDE0QVwiXSxcbiAgICAgIFtcImE4YjFcIiwgXCJcXHUzMjYwXCIsIDI3LCBcIlxcdTI0RDBcIiwgMjUsIFwiXFx1MjQ2MFwiLCAxNCwgXCJcXHhCRFxcdTIxNTNcXHUyMTU0XFx4QkNcXHhCRVxcdTIxNUJcXHUyMTVDXFx1MjE1RFxcdTIxNUVcIl0sXG4gICAgICBbXCJhOTQxXCIsIFwiXFx1Q0JDNVwiLCAxNCwgXCJcXHVDQkQ1XCIsIDEwXSxcbiAgICAgIFtcImE5NjFcIiwgXCJcXHVDQkUwXFx1Q0JFMVxcdUNCRTJcXHVDQkUzXFx1Q0JFNVxcdUNCRTZcXHVDQkU4XFx1Q0JFQVwiLCAxOF0sXG4gICAgICBbXCJhOTgxXCIsIFwiXFx1Q0JGRFwiLCAxNCwgXCJcXHVDQzBFXFx1Q0MwRlxcdUNDMTFcXHVDQzEyXFx1Q0MxM1xcdUNDMTVcIiwgNiwgXCJcXHVDQzFFXFx1Q0MxRlxcdUNDMjBcXHVDQzIzXFx1Q0MyNFxceEU2XFx1MDExMVxceEYwXFx1MDEyN1xcdTAxMzFcXHUwMTMzXFx1MDEzOFxcdTAxNDBcXHUwMTQyXFx4RjhcXHUwMTUzXFx4REZcXHhGRVxcdTAxNjdcXHUwMTRCXFx1MDE0OVxcdTMyMDBcIiwgMjcsIFwiXFx1MjQ5Q1wiLCAyNSwgXCJcXHUyNDc0XCIsIDE0LCBcIlxceEI5XFx4QjJcXHhCM1xcdTIwNzRcXHUyMDdGXFx1MjA4MVxcdTIwODJcXHUyMDgzXFx1MjA4NFwiXSxcbiAgICAgIFtcImFhNDFcIiwgXCJcXHVDQzI1XFx1Q0MyNlxcdUNDMkFcXHVDQzJCXFx1Q0MyRFxcdUNDMkZcXHVDQzMxXCIsIDYsIFwiXFx1Q0MzQVxcdUNDM0ZcIiwgNCwgXCJcXHVDQzQ2XFx1Q0M0N1xcdUNDNDlcXHVDQzRBXFx1Q0M0QlxcdUNDNERcXHVDQzRFXCJdLFxuICAgICAgW1wiYWE2MVwiLCBcIlxcdUNDNEZcIiwgNCwgXCJcXHVDQzU2XFx1Q0M1QVwiLCA1LCBcIlxcdUNDNjFcXHVDQzYyXFx1Q0M2M1xcdUNDNjVcXHVDQzY3XFx1Q0M2OVwiLCA2LCBcIlxcdUNDNzFcXHVDQzcyXCJdLFxuICAgICAgW1wiYWE4MVwiLCBcIlxcdUNDNzNcXHVDQzc0XFx1Q0M3NlwiLCAyOSwgXCJcXHUzMDQxXCIsIDgyXSxcbiAgICAgIFtcImFiNDFcIiwgXCJcXHVDQzk0XFx1Q0M5NVxcdUNDOTZcXHVDQzk3XFx1Q0M5QVxcdUNDOUJcXHVDQzlEXFx1Q0M5RVxcdUNDOUZcXHVDQ0ExXCIsIDYsIFwiXFx1Q0NBQVxcdUNDQUVcIiwgNSwgXCJcXHVDQ0I2XFx1Q0NCN1xcdUNDQjlcIl0sXG4gICAgICBbXCJhYjYxXCIsIFwiXFx1Q0NCQVxcdUNDQkJcXHVDQ0JEXCIsIDYsIFwiXFx1Q0NDNlxcdUNDQzhcXHVDQ0NBXCIsIDUsIFwiXFx1Q0NEMVxcdUNDRDJcXHVDQ0QzXFx1Q0NENVwiLCA1XSxcbiAgICAgIFtcImFiODFcIiwgXCJcXHVDQ0RCXCIsIDgsIFwiXFx1Q0NFNVwiLCA2LCBcIlxcdUNDRURcXHVDQ0VFXFx1Q0NFRlxcdUNDRjFcIiwgMTIsIFwiXFx1MzBBMVwiLCA4NV0sXG4gICAgICBbXCJhYzQxXCIsIFwiXFx1Q0NGRVxcdUNDRkZcXHVDRDAwXFx1Q0QwMlwiLCA1LCBcIlxcdUNEMEFcXHVDRDBCXFx1Q0QwRFxcdUNEMEVcXHVDRDBGXFx1Q0QxMVwiLCA2LCBcIlxcdUNEMUFcXHVDRDFDXFx1Q0QxRVxcdUNEMUZcXHVDRDIwXCJdLFxuICAgICAgW1wiYWM2MVwiLCBcIlxcdUNEMjFcXHVDRDIyXFx1Q0QyM1xcdUNEMjVcXHVDRDI2XFx1Q0QyN1xcdUNEMjlcXHVDRDJBXFx1Q0QyQlxcdUNEMkRcIiwgMTEsIFwiXFx1Q0QzQVwiLCA0XSxcbiAgICAgIFtcImFjODFcIiwgXCJcXHVDRDNGXCIsIDI4LCBcIlxcdUNENURcXHVDRDVFXFx1Q0Q1RlxcdTA0MTBcIiwgNSwgXCJcXHUwNDAxXFx1MDQxNlwiLCAyNV0sXG4gICAgICBbXCJhY2QxXCIsIFwiXFx1MDQzMFwiLCA1LCBcIlxcdTA0NTFcXHUwNDM2XCIsIDI1XSxcbiAgICAgIFtcImFkNDFcIiwgXCJcXHVDRDYxXFx1Q0Q2MlxcdUNENjNcXHVDRDY1XCIsIDYsIFwiXFx1Q0Q2RVxcdUNENzBcXHVDRDcyXCIsIDUsIFwiXFx1Q0Q3OVwiLCA3XSxcbiAgICAgIFtcImFkNjFcIiwgXCJcXHVDRDgxXCIsIDYsIFwiXFx1Q0Q4OVwiLCAxMCwgXCJcXHVDRDk2XFx1Q0Q5N1xcdUNEOTlcXHVDRDlBXFx1Q0Q5QlxcdUNEOURcXHVDRDlFXFx1Q0Q5RlwiXSxcbiAgICAgIFtcImFkODFcIiwgXCJcXHVDREEwXFx1Q0RBMVxcdUNEQTJcXHVDREEzXFx1Q0RBNlxcdUNEQThcXHVDREFBXCIsIDUsIFwiXFx1Q0RCMVwiLCAxOCwgXCJcXHVDREM1XCJdLFxuICAgICAgW1wiYWU0MVwiLCBcIlxcdUNEQzZcIiwgNSwgXCJcXHVDRENEXFx1Q0RDRVxcdUNEQ0ZcXHVDREQxXCIsIDE2XSxcbiAgICAgIFtcImFlNjFcIiwgXCJcXHVDREUyXCIsIDUsIFwiXFx1Q0RFOVxcdUNERUFcXHVDREVCXFx1Q0RFRFxcdUNERUVcXHVDREVGXFx1Q0RGMVwiLCA2LCBcIlxcdUNERkFcXHVDREZDXFx1Q0RGRVwiLCA0XSxcbiAgICAgIFtcImFlODFcIiwgXCJcXHVDRTAzXFx1Q0UwNVxcdUNFMDZcXHVDRTA3XFx1Q0UwOVxcdUNFMEFcXHVDRTBCXFx1Q0UwRFwiLCA2LCBcIlxcdUNFMTVcXHVDRTE2XFx1Q0UxN1xcdUNFMThcXHVDRTFBXCIsIDUsIFwiXFx1Q0UyMlxcdUNFMjNcXHVDRTI1XFx1Q0UyNlxcdUNFMjdcXHVDRTI5XFx1Q0UyQVxcdUNFMkJcIl0sXG4gICAgICBbXCJhZjQxXCIsIFwiXFx1Q0UyQ1xcdUNFMkRcXHVDRTJFXFx1Q0UyRlxcdUNFMzJcXHVDRTM0XFx1Q0UzNlwiLCAxOV0sXG4gICAgICBbXCJhZjYxXCIsIFwiXFx1Q0U0QVwiLCAxMywgXCJcXHVDRTVBXFx1Q0U1QlxcdUNFNURcXHVDRTVFXFx1Q0U2MlwiLCA1LCBcIlxcdUNFNkFcXHVDRTZDXCJdLFxuICAgICAgW1wiYWY4MVwiLCBcIlxcdUNFNkVcIiwgNSwgXCJcXHVDRTc2XFx1Q0U3N1xcdUNFNzlcXHVDRTdBXFx1Q0U3QlxcdUNFN0RcIiwgNiwgXCJcXHVDRTg2XFx1Q0U4OFxcdUNFOEFcIiwgNSwgXCJcXHVDRTkyXFx1Q0U5M1xcdUNFOTVcXHVDRTk2XFx1Q0U5N1xcdUNFOTlcIl0sXG4gICAgICBbXCJiMDQxXCIsIFwiXFx1Q0U5QVwiLCA1LCBcIlxcdUNFQTJcXHVDRUE2XCIsIDUsIFwiXFx1Q0VBRVwiLCAxMl0sXG4gICAgICBbXCJiMDYxXCIsIFwiXFx1Q0VCQlwiLCA1LCBcIlxcdUNFQzJcIiwgMTldLFxuICAgICAgW1wiYjA4MVwiLCBcIlxcdUNFRDZcIiwgMTMsIFwiXFx1Q0VFNlxcdUNFRTdcXHVDRUU5XFx1Q0VFQVxcdUNFRURcIiwgNiwgXCJcXHVDRUY2XFx1Q0VGQVwiLCA1LCBcIlxcdUFDMDBcXHVBQzAxXFx1QUMwNFxcdUFDMDdcXHVBQzA4XFx1QUMwOVxcdUFDMEFcXHVBQzEwXCIsIDcsIFwiXFx1QUMxOVwiLCA0LCBcIlxcdUFDMjBcXHVBQzI0XFx1QUMyQ1xcdUFDMkRcXHVBQzJGXFx1QUMzMFxcdUFDMzFcXHVBQzM4XFx1QUMzOVxcdUFDM0NcXHVBQzQwXFx1QUM0QlxcdUFDNERcXHVBQzU0XFx1QUM1OFxcdUFDNUNcXHVBQzcwXFx1QUM3MVxcdUFDNzRcXHVBQzc3XFx1QUM3OFxcdUFDN0FcXHVBQzgwXFx1QUM4MVxcdUFDODNcXHVBQzg0XFx1QUM4NVxcdUFDODZcXHVBQzg5XFx1QUM4QVxcdUFDOEJcXHVBQzhDXFx1QUM5MFxcdUFDOTRcXHVBQzlDXFx1QUM5RFxcdUFDOUZcXHVBQ0EwXFx1QUNBMVxcdUFDQThcXHVBQ0E5XFx1QUNBQVxcdUFDQUNcXHVBQ0FGXFx1QUNCMFxcdUFDQjhcXHVBQ0I5XFx1QUNCQlxcdUFDQkNcXHVBQ0JEXFx1QUNDMVxcdUFDQzRcXHVBQ0M4XFx1QUNDQ1xcdUFDRDVcXHVBQ0Q3XFx1QUNFMFxcdUFDRTFcXHVBQ0U0XFx1QUNFN1xcdUFDRThcXHVBQ0VBXFx1QUNFQ1xcdUFDRUZcXHVBQ0YwXFx1QUNGMVxcdUFDRjNcXHVBQ0Y1XFx1QUNGNlxcdUFDRkNcXHVBQ0ZEXFx1QUQwMFxcdUFEMDRcXHVBRDA2XCJdLFxuICAgICAgW1wiYjE0MVwiLCBcIlxcdUNGMDJcXHVDRjAzXFx1Q0YwNVxcdUNGMDZcXHVDRjA3XFx1Q0YwOVwiLCA2LCBcIlxcdUNGMTJcXHVDRjE0XFx1Q0YxNlwiLCA1LCBcIlxcdUNGMURcXHVDRjFFXFx1Q0YxRlxcdUNGMjFcXHVDRjIyXFx1Q0YyM1wiXSxcbiAgICAgIFtcImIxNjFcIiwgXCJcXHVDRjI1XCIsIDYsIFwiXFx1Q0YyRVxcdUNGMzJcIiwgNSwgXCJcXHVDRjM5XCIsIDExXSxcbiAgICAgIFtcImIxODFcIiwgXCJcXHVDRjQ1XCIsIDE0LCBcIlxcdUNGNTZcXHVDRjU3XFx1Q0Y1OVxcdUNGNUFcXHVDRjVCXFx1Q0Y1RFwiLCA2LCBcIlxcdUNGNjZcXHVDRjY4XFx1Q0Y2QVxcdUNGNkJcXHVDRjZDXFx1QUQwQ1xcdUFEMERcXHVBRDBGXFx1QUQxMVxcdUFEMThcXHVBRDFDXFx1QUQyMFxcdUFEMjlcXHVBRDJDXFx1QUQyRFxcdUFEMzRcXHVBRDM1XFx1QUQzOFxcdUFEM0NcXHVBRDQ0XFx1QUQ0NVxcdUFENDdcXHVBRDQ5XFx1QUQ1MFxcdUFENTRcXHVBRDU4XFx1QUQ2MVxcdUFENjNcXHVBRDZDXFx1QUQ2RFxcdUFENzBcXHVBRDczXFx1QUQ3NFxcdUFENzVcXHVBRDc2XFx1QUQ3QlxcdUFEN0NcXHVBRDdEXFx1QUQ3RlxcdUFEODFcXHVBRDgyXFx1QUQ4OFxcdUFEODlcXHVBRDhDXFx1QUQ5MFxcdUFEOUNcXHVBRDlEXFx1QURBNFxcdUFEQjdcXHVBREMwXFx1QURDMVxcdUFEQzRcXHVBREM4XFx1QUREMFxcdUFERDFcXHVBREQzXFx1QUREQ1xcdUFERTBcXHVBREU0XFx1QURGOFxcdUFERjlcXHVBREZDXFx1QURGRlxcdUFFMDBcXHVBRTAxXFx1QUUwOFxcdUFFMDlcXHVBRTBCXFx1QUUwRFxcdUFFMTRcXHVBRTMwXFx1QUUzMVxcdUFFMzRcXHVBRTM3XFx1QUUzOFxcdUFFM0FcXHVBRTQwXFx1QUU0MVxcdUFFNDNcXHVBRTQ1XFx1QUU0NlxcdUFFNEFcXHVBRTRDXFx1QUU0RFxcdUFFNEVcXHVBRTUwXFx1QUU1NFxcdUFFNTZcXHVBRTVDXFx1QUU1RFxcdUFFNUZcXHVBRTYwXFx1QUU2MVxcdUFFNjVcXHVBRTY4XFx1QUU2OVxcdUFFNkNcXHVBRTcwXFx1QUU3OFwiXSxcbiAgICAgIFtcImIyNDFcIiwgXCJcXHVDRjZEXFx1Q0Y2RVxcdUNGNkZcXHVDRjcyXFx1Q0Y3M1xcdUNGNzVcXHVDRjc2XFx1Q0Y3N1xcdUNGNzlcIiwgNiwgXCJcXHVDRjgxXFx1Q0Y4MlxcdUNGODNcXHVDRjg0XFx1Q0Y4NlwiLCA1LCBcIlxcdUNGOERcIl0sXG4gICAgICBbXCJiMjYxXCIsIFwiXFx1Q0Y4RVwiLCAxOCwgXCJcXHVDRkEyXCIsIDUsIFwiXFx1Q0ZBOVwiXSxcbiAgICAgIFtcImIyODFcIiwgXCJcXHVDRkFBXCIsIDUsIFwiXFx1Q0ZCMVwiLCAxOCwgXCJcXHVDRkM1XCIsIDYsIFwiXFx1QUU3OVxcdUFFN0JcXHVBRTdDXFx1QUU3RFxcdUFFODRcXHVBRTg1XFx1QUU4Q1xcdUFFQkNcXHVBRUJEXFx1QUVCRVxcdUFFQzBcXHVBRUM0XFx1QUVDQ1xcdUFFQ0RcXHVBRUNGXFx1QUVEMFxcdUFFRDFcXHVBRUQ4XFx1QUVEOVxcdUFFRENcXHVBRUU4XFx1QUVFQlxcdUFFRURcXHVBRUY0XFx1QUVGOFxcdUFFRkNcXHVBRjA3XFx1QUYwOFxcdUFGMERcXHVBRjEwXFx1QUYyQ1xcdUFGMkRcXHVBRjMwXFx1QUYzMlxcdUFGMzRcXHVBRjNDXFx1QUYzRFxcdUFGM0ZcXHVBRjQxXFx1QUY0MlxcdUFGNDNcXHVBRjQ4XFx1QUY0OVxcdUFGNTBcXHVBRjVDXFx1QUY1RFxcdUFGNjRcXHVBRjY1XFx1QUY3OVxcdUFGODBcXHVBRjg0XFx1QUY4OFxcdUFGOTBcXHVBRjkxXFx1QUY5NVxcdUFGOUNcXHVBRkI4XFx1QUZCOVxcdUFGQkNcXHVBRkMwXFx1QUZDN1xcdUFGQzhcXHVBRkM5XFx1QUZDQlxcdUFGQ0RcXHVBRkNFXFx1QUZENFxcdUFGRENcXHVBRkU4XFx1QUZFOVxcdUFGRjBcXHVBRkYxXFx1QUZGNFxcdUFGRjhcXHVCMDAwXFx1QjAwMVxcdUIwMDRcXHVCMDBDXFx1QjAxMFxcdUIwMTRcXHVCMDFDXFx1QjAxRFxcdUIwMjhcXHVCMDQ0XFx1QjA0NVxcdUIwNDhcXHVCMDRBXFx1QjA0Q1xcdUIwNEVcXHVCMDUzXFx1QjA1NFxcdUIwNTVcXHVCMDU3XFx1QjA1OVwiXSxcbiAgICAgIFtcImIzNDFcIiwgXCJcXHVDRkNDXCIsIDE5LCBcIlxcdUNGRTJcXHVDRkUzXFx1Q0ZFNVxcdUNGRTZcXHVDRkU3XFx1Q0ZFOVwiXSxcbiAgICAgIFtcImIzNjFcIiwgXCJcXHVDRkVBXCIsIDUsIFwiXFx1Q0ZGMlxcdUNGRjRcXHVDRkY2XCIsIDUsIFwiXFx1Q0ZGRFxcdUNGRkVcXHVDRkZGXFx1RDAwMVxcdUQwMDJcXHVEMDAzXFx1RDAwNVwiLCA1XSxcbiAgICAgIFtcImIzODFcIiwgXCJcXHVEMDBCXCIsIDUsIFwiXFx1RDAxMlwiLCA1LCBcIlxcdUQwMTlcIiwgMTksIFwiXFx1QjA1RFxcdUIwN0NcXHVCMDdEXFx1QjA4MFxcdUIwODRcXHVCMDhDXFx1QjA4RFxcdUIwOEZcXHVCMDkxXFx1QjA5OFxcdUIwOTlcXHVCMDlBXFx1QjA5Q1xcdUIwOUZcXHVCMEEwXFx1QjBBMVxcdUIwQTJcXHVCMEE4XFx1QjBBOVxcdUIwQUJcIiwgNCwgXCJcXHVCMEIxXFx1QjBCM1xcdUIwQjRcXHVCMEI1XFx1QjBCOFxcdUIwQkNcXHVCMEM0XFx1QjBDNVxcdUIwQzdcXHVCMEM4XFx1QjBDOVxcdUIwRDBcXHVCMEQxXFx1QjBENFxcdUIwRDhcXHVCMEUwXFx1QjBFNVxcdUIxMDhcXHVCMTA5XFx1QjEwQlxcdUIxMENcXHVCMTEwXFx1QjExMlxcdUIxMTNcXHVCMTE4XFx1QjExOVxcdUIxMUJcXHVCMTFDXFx1QjExRFxcdUIxMjNcXHVCMTI0XFx1QjEyNVxcdUIxMjhcXHVCMTJDXFx1QjEzNFxcdUIxMzVcXHVCMTM3XFx1QjEzOFxcdUIxMzlcXHVCMTQwXFx1QjE0MVxcdUIxNDRcXHVCMTQ4XFx1QjE1MFxcdUIxNTFcXHVCMTU0XFx1QjE1NVxcdUIxNThcXHVCMTVDXFx1QjE2MFxcdUIxNzhcXHVCMTc5XFx1QjE3Q1xcdUIxODBcXHVCMTgyXFx1QjE4OFxcdUIxODlcXHVCMThCXFx1QjE4RFxcdUIxOTJcXHVCMTkzXFx1QjE5NFxcdUIxOThcXHVCMTlDXFx1QjFBOFxcdUIxQ0NcXHVCMUQwXFx1QjFENFxcdUIxRENcXHVCMUREXCJdLFxuICAgICAgW1wiYjQ0MVwiLCBcIlxcdUQwMkVcIiwgNSwgXCJcXHVEMDM2XFx1RDAzN1xcdUQwMzlcXHVEMDNBXFx1RDAzQlxcdUQwM0RcIiwgNiwgXCJcXHVEMDQ2XFx1RDA0OFxcdUQwNEFcIiwgNV0sXG4gICAgICBbXCJiNDYxXCIsIFwiXFx1RDA1MVxcdUQwNTJcXHVEMDUzXFx1RDA1NVxcdUQwNTZcXHVEMDU3XFx1RDA1OVwiLCA2LCBcIlxcdUQwNjFcIiwgMTAsIFwiXFx1RDA2RVxcdUQwNkZcIl0sXG4gICAgICBbXCJiNDgxXCIsIFwiXFx1RDA3MVxcdUQwNzJcXHVEMDczXFx1RDA3NVwiLCA2LCBcIlxcdUQwN0VcXHVEMDdGXFx1RDA4MFxcdUQwODJcIiwgMTgsIFwiXFx1QjFERlxcdUIxRThcXHVCMUU5XFx1QjFFQ1xcdUIxRjBcXHVCMUY5XFx1QjFGQlxcdUIxRkRcXHVCMjA0XFx1QjIwNVxcdUIyMDhcXHVCMjBCXFx1QjIwQ1xcdUIyMTRcXHVCMjE1XFx1QjIxN1xcdUIyMTlcXHVCMjIwXFx1QjIzNFxcdUIyM0NcXHVCMjU4XFx1QjI1Q1xcdUIyNjBcXHVCMjY4XFx1QjI2OVxcdUIyNzRcXHVCMjc1XFx1QjI3Q1xcdUIyODRcXHVCMjg1XFx1QjI4OVxcdUIyOTBcXHVCMjkxXFx1QjI5NFxcdUIyOThcXHVCMjk5XFx1QjI5QVxcdUIyQTBcXHVCMkExXFx1QjJBM1xcdUIyQTVcXHVCMkE2XFx1QjJBQVxcdUIyQUNcXHVCMkIwXFx1QjJCNFxcdUIyQzhcXHVCMkM5XFx1QjJDQ1xcdUIyRDBcXHVCMkQyXFx1QjJEOFxcdUIyRDlcXHVCMkRCXFx1QjJERFxcdUIyRTJcXHVCMkU0XFx1QjJFNVxcdUIyRTZcXHVCMkU4XFx1QjJFQlwiLCA0LCBcIlxcdUIyRjNcXHVCMkY0XFx1QjJGNVxcdUIyRjdcIiwgNCwgXCJcXHVCMkZGXFx1QjMwMFxcdUIzMDFcXHVCMzA0XFx1QjMwOFxcdUIzMTBcXHVCMzExXFx1QjMxM1xcdUIzMTRcXHVCMzE1XFx1QjMxQ1xcdUIzNTRcXHVCMzU1XFx1QjM1NlxcdUIzNThcXHVCMzVCXFx1QjM1Q1xcdUIzNUVcXHVCMzVGXFx1QjM2NFxcdUIzNjVcIl0sXG4gICAgICBbXCJiNTQxXCIsIFwiXFx1RDA5NVwiLCAxNCwgXCJcXHVEMEE2XFx1RDBBN1xcdUQwQTlcXHVEMEFBXFx1RDBBQlxcdUQwQURcIiwgNV0sXG4gICAgICBbXCJiNTYxXCIsIFwiXFx1RDBCM1xcdUQwQjZcXHVEMEI4XFx1RDBCQVwiLCA1LCBcIlxcdUQwQzJcXHVEMEMzXFx1RDBDNVxcdUQwQzZcXHVEMEM3XFx1RDBDQVwiLCA1LCBcIlxcdUQwRDJcXHVEMEQ2XCIsIDRdLFxuICAgICAgW1wiYjU4MVwiLCBcIlxcdUQwREJcXHVEMERFXFx1RDBERlxcdUQwRTFcXHVEMEUyXFx1RDBFM1xcdUQwRTVcIiwgNiwgXCJcXHVEMEVFXFx1RDBGMlwiLCA1LCBcIlxcdUQwRjlcIiwgMTEsIFwiXFx1QjM2N1xcdUIzNjlcXHVCMzZCXFx1QjM2RVxcdUIzNzBcXHVCMzcxXFx1QjM3NFxcdUIzNzhcXHVCMzgwXFx1QjM4MVxcdUIzODNcXHVCMzg0XFx1QjM4NVxcdUIzOENcXHVCMzkwXFx1QjM5NFxcdUIzQTBcXHVCM0ExXFx1QjNBOFxcdUIzQUNcXHVCM0M0XFx1QjNDNVxcdUIzQzhcXHVCM0NCXFx1QjNDQ1xcdUIzQ0VcXHVCM0QwXFx1QjNENFxcdUIzRDVcXHVCM0Q3XFx1QjNEOVxcdUIzREJcXHVCM0REXFx1QjNFMFxcdUIzRTRcXHVCM0U4XFx1QjNGQ1xcdUI0MTBcXHVCNDE4XFx1QjQxQ1xcdUI0MjBcXHVCNDI4XFx1QjQyOVxcdUI0MkJcXHVCNDM0XFx1QjQ1MFxcdUI0NTFcXHVCNDU0XFx1QjQ1OFxcdUI0NjBcXHVCNDYxXFx1QjQ2M1xcdUI0NjVcXHVCNDZDXFx1QjQ4MFxcdUI0ODhcXHVCNDlEXFx1QjRBNFxcdUI0QThcXHVCNEFDXFx1QjRCNVxcdUI0QjdcXHVCNEI5XFx1QjRDMFxcdUI0QzRcXHVCNEM4XFx1QjREMFxcdUI0RDVcXHVCNERDXFx1QjRERFxcdUI0RTBcXHVCNEUzXFx1QjRFNFxcdUI0RTZcXHVCNEVDXFx1QjRFRFxcdUI0RUZcXHVCNEYxXFx1QjRGOFxcdUI1MTRcXHVCNTE1XFx1QjUxOFxcdUI1MUJcXHVCNTFDXFx1QjUyNFxcdUI1MjVcXHVCNTI3XFx1QjUyOFxcdUI1MjlcXHVCNTJBXFx1QjUzMFxcdUI1MzFcXHVCNTM0XFx1QjUzOFwiXSxcbiAgICAgIFtcImI2NDFcIiwgXCJcXHVEMTA1XCIsIDcsIFwiXFx1RDEwRVwiLCAxN10sXG4gICAgICBbXCJiNjYxXCIsIFwiXFx1RDEyMFwiLCAxNSwgXCJcXHVEMTMyXFx1RDEzM1xcdUQxMzVcXHVEMTM2XFx1RDEzN1xcdUQxMzlcXHVEMTNCXFx1RDEzQ1xcdUQxM0RcXHVEMTNFXCJdLFxuICAgICAgW1wiYjY4MVwiLCBcIlxcdUQxM0ZcXHVEMTQyXFx1RDE0NlwiLCA1LCBcIlxcdUQxNEVcXHVEMTRGXFx1RDE1MVxcdUQxNTJcXHVEMTUzXFx1RDE1NVwiLCA2LCBcIlxcdUQxNUVcXHVEMTYwXFx1RDE2MlwiLCA1LCBcIlxcdUQxNjlcXHVEMTZBXFx1RDE2QlxcdUQxNkRcXHVCNTQwXFx1QjU0MVxcdUI1NDNcXHVCNTQ0XFx1QjU0NVxcdUI1NEJcXHVCNTRDXFx1QjU0RFxcdUI1NTBcXHVCNTU0XFx1QjU1Q1xcdUI1NURcXHVCNTVGXFx1QjU2MFxcdUI1NjFcXHVCNUEwXFx1QjVBMVxcdUI1QTRcXHVCNUE4XFx1QjVBQVxcdUI1QUJcXHVCNUIwXFx1QjVCMVxcdUI1QjNcXHVCNUI0XFx1QjVCNVxcdUI1QkJcXHVCNUJDXFx1QjVCRFxcdUI1QzBcXHVCNUM0XFx1QjVDQ1xcdUI1Q0RcXHVCNUNGXFx1QjVEMFxcdUI1RDFcXHVCNUQ4XFx1QjVFQ1xcdUI2MTBcXHVCNjExXFx1QjYxNFxcdUI2MThcXHVCNjI1XFx1QjYyQ1xcdUI2MzRcXHVCNjQ4XFx1QjY2NFxcdUI2NjhcXHVCNjlDXFx1QjY5RFxcdUI2QTBcXHVCNkE0XFx1QjZBQlxcdUI2QUNcXHVCNkIxXFx1QjZENFxcdUI2RjBcXHVCNkY0XFx1QjZGOFxcdUI3MDBcXHVCNzAxXFx1QjcwNVxcdUI3MjhcXHVCNzI5XFx1QjcyQ1xcdUI3MkZcXHVCNzMwXFx1QjczOFxcdUI3MzlcXHVCNzNCXFx1Qjc0NFxcdUI3NDhcXHVCNzRDXFx1Qjc1NFxcdUI3NTVcXHVCNzYwXFx1Qjc2NFxcdUI3NjhcXHVCNzcwXFx1Qjc3MVxcdUI3NzNcXHVCNzc1XFx1Qjc3Q1xcdUI3N0RcXHVCNzgwXFx1Qjc4NFxcdUI3OENcXHVCNzhEXFx1Qjc4RlxcdUI3OTBcXHVCNzkxXFx1Qjc5MlxcdUI3OTZcXHVCNzk3XCJdLFxuICAgICAgW1wiYjc0MVwiLCBcIlxcdUQxNkVcIiwgMTMsIFwiXFx1RDE3RFwiLCA2LCBcIlxcdUQxODVcXHVEMTg2XFx1RDE4N1xcdUQxODlcXHVEMThBXCJdLFxuICAgICAgW1wiYjc2MVwiLCBcIlxcdUQxOEJcIiwgMjAsIFwiXFx1RDFBMlxcdUQxQTNcXHVEMUE1XFx1RDFBNlxcdUQxQTdcIl0sXG4gICAgICBbXCJiNzgxXCIsIFwiXFx1RDFBOVwiLCA2LCBcIlxcdUQxQjJcXHVEMUI0XFx1RDFCNlxcdUQxQjdcXHVEMUI4XFx1RDFCOVxcdUQxQkJcXHVEMUJEXFx1RDFCRVxcdUQxQkZcXHVEMUMxXCIsIDE0LCBcIlxcdUI3OThcXHVCNzk5XFx1Qjc5Q1xcdUI3QTBcXHVCN0E4XFx1QjdBOVxcdUI3QUJcXHVCN0FDXFx1QjdBRFxcdUI3QjRcXHVCN0I1XFx1QjdCOFxcdUI3QzdcXHVCN0M5XFx1QjdFQ1xcdUI3RURcXHVCN0YwXFx1QjdGNFxcdUI3RkNcXHVCN0ZEXFx1QjdGRlxcdUI4MDBcXHVCODAxXFx1QjgwN1xcdUI4MDhcXHVCODA5XFx1QjgwQ1xcdUI4MTBcXHVCODE4XFx1QjgxOVxcdUI4MUJcXHVCODFEXFx1QjgyNFxcdUI4MjVcXHVCODI4XFx1QjgyQ1xcdUI4MzRcXHVCODM1XFx1QjgzN1xcdUI4MzhcXHVCODM5XFx1Qjg0MFxcdUI4NDRcXHVCODUxXFx1Qjg1M1xcdUI4NUNcXHVCODVEXFx1Qjg2MFxcdUI4NjRcXHVCODZDXFx1Qjg2RFxcdUI4NkZcXHVCODcxXFx1Qjg3OFxcdUI4N0NcXHVCODhEXFx1QjhBOFxcdUI4QjBcXHVCOEI0XFx1QjhCOFxcdUI4QzBcXHVCOEMxXFx1QjhDM1xcdUI4QzVcXHVCOENDXFx1QjhEMFxcdUI4RDRcXHVCOEREXFx1QjhERlxcdUI4RTFcXHVCOEU4XFx1QjhFOVxcdUI4RUNcXHVCOEYwXFx1QjhGOFxcdUI4RjlcXHVCOEZCXFx1QjhGRFxcdUI5MDRcXHVCOTE4XFx1QjkyMFxcdUI5M0NcXHVCOTNEXFx1Qjk0MFxcdUI5NDRcXHVCOTRDXFx1Qjk0RlxcdUI5NTFcXHVCOTU4XFx1Qjk1OVxcdUI5NUNcXHVCOTYwXFx1Qjk2OFxcdUI5NjlcIl0sXG4gICAgICBbXCJiODQxXCIsIFwiXFx1RDFEMFwiLCA3LCBcIlxcdUQxRDlcIiwgMTddLFxuICAgICAgW1wiYjg2MVwiLCBcIlxcdUQxRUJcIiwgOCwgXCJcXHVEMUY1XFx1RDFGNlxcdUQxRjdcXHVEMUY5XCIsIDEzXSxcbiAgICAgIFtcImI4ODFcIiwgXCJcXHVEMjA4XFx1RDIwQVwiLCA1LCBcIlxcdUQyMTFcIiwgMjQsIFwiXFx1Qjk2QlxcdUI5NkRcXHVCOTc0XFx1Qjk3NVxcdUI5NzhcXHVCOTdDXFx1Qjk4NFxcdUI5ODVcXHVCOTg3XFx1Qjk4OVxcdUI5OEFcXHVCOThEXFx1Qjk4RVxcdUI5QUNcXHVCOUFEXFx1QjlCMFxcdUI5QjRcXHVCOUJDXFx1QjlCRFxcdUI5QkZcXHVCOUMxXFx1QjlDOFxcdUI5QzlcXHVCOUNDXFx1QjlDRVwiLCA0LCBcIlxcdUI5RDhcXHVCOUQ5XFx1QjlEQlxcdUI5RERcXHVCOURFXFx1QjlFMVxcdUI5RTNcXHVCOUU0XFx1QjlFNVxcdUI5RThcXHVCOUVDXFx1QjlGNFxcdUI5RjVcXHVCOUY3XFx1QjlGOFxcdUI5RjlcXHVCOUZBXFx1QkEwMFxcdUJBMDFcXHVCQTA4XFx1QkExNVxcdUJBMzhcXHVCQTM5XFx1QkEzQ1xcdUJBNDBcXHVCQTQyXFx1QkE0OFxcdUJBNDlcXHVCQTRCXFx1QkE0RFxcdUJBNEVcXHVCQTUzXFx1QkE1NFxcdUJBNTVcXHVCQTU4XFx1QkE1Q1xcdUJBNjRcXHVCQTY1XFx1QkE2N1xcdUJBNjhcXHVCQTY5XFx1QkE3MFxcdUJBNzFcXHVCQTc0XFx1QkE3OFxcdUJBODNcXHVCQTg0XFx1QkE4NVxcdUJBODdcXHVCQThDXFx1QkFBOFxcdUJBQTlcXHVCQUFCXFx1QkFBQ1xcdUJBQjBcXHVCQUIyXFx1QkFCOFxcdUJBQjlcXHVCQUJCXFx1QkFCRFxcdUJBQzRcXHVCQUM4XFx1QkFEOFxcdUJBRDlcXHVCQUZDXCJdLFxuICAgICAgW1wiYjk0MVwiLCBcIlxcdUQyMkFcXHVEMjJCXFx1RDIyRVxcdUQyMkZcXHVEMjMxXFx1RDIzMlxcdUQyMzNcXHVEMjM1XCIsIDYsIFwiXFx1RDIzRVxcdUQyNDBcXHVEMjQyXCIsIDUsIFwiXFx1RDI0OVxcdUQyNEFcXHVEMjRCXFx1RDI0Q1wiXSxcbiAgICAgIFtcImI5NjFcIiwgXCJcXHVEMjREXCIsIDE0LCBcIlxcdUQyNURcIiwgNiwgXCJcXHVEMjY1XFx1RDI2NlxcdUQyNjdcXHVEMjY4XCJdLFxuICAgICAgW1wiYjk4MVwiLCBcIlxcdUQyNjlcIiwgMjIsIFwiXFx1RDI4MlxcdUQyODNcXHVEMjg1XFx1RDI4NlxcdUQyODdcXHVEMjg5XFx1RDI4QVxcdUQyOEJcXHVEMjhDXFx1QkIwMFxcdUJCMDRcXHVCQjBEXFx1QkIwRlxcdUJCMTFcXHVCQjE4XFx1QkIxQ1xcdUJCMjBcXHVCQjI5XFx1QkIyQlxcdUJCMzRcXHVCQjM1XFx1QkIzNlxcdUJCMzhcXHVCQjNCXFx1QkIzQ1xcdUJCM0RcXHVCQjNFXFx1QkI0NFxcdUJCNDVcXHVCQjQ3XFx1QkI0OVxcdUJCNERcXHVCQjRGXFx1QkI1MFxcdUJCNTRcXHVCQjU4XFx1QkI2MVxcdUJCNjNcXHVCQjZDXFx1QkI4OFxcdUJCOENcXHVCQjkwXFx1QkJBNFxcdUJCQThcXHVCQkFDXFx1QkJCNFxcdUJCQjdcXHVCQkMwXFx1QkJDNFxcdUJCQzhcXHVCQkQwXFx1QkJEM1xcdUJCRjhcXHVCQkY5XFx1QkJGQ1xcdUJCRkZcXHVCQzAwXFx1QkMwMlxcdUJDMDhcXHVCQzA5XFx1QkMwQlxcdUJDMENcXHVCQzBEXFx1QkMwRlxcdUJDMTFcXHVCQzE0XCIsIDQsIFwiXFx1QkMxQlwiLCA0LCBcIlxcdUJDMjRcXHVCQzI1XFx1QkMyN1xcdUJDMjlcXHVCQzJEXFx1QkMzMFxcdUJDMzFcXHVCQzM0XFx1QkMzOFxcdUJDNDBcXHVCQzQxXFx1QkM0M1xcdUJDNDRcXHVCQzQ1XFx1QkM0OVxcdUJDNENcXHVCQzREXFx1QkM1MFxcdUJDNURcXHVCQzg0XFx1QkM4NVxcdUJDODhcXHVCQzhCXFx1QkM4Q1xcdUJDOEVcXHVCQzk0XFx1QkM5NVxcdUJDOTdcIl0sXG4gICAgICBbXCJiYTQxXCIsIFwiXFx1RDI4RFxcdUQyOEVcXHVEMjhGXFx1RDI5MlxcdUQyOTNcXHVEMjk0XFx1RDI5NlwiLCA1LCBcIlxcdUQyOURcXHVEMjlFXFx1RDI5RlxcdUQyQTFcXHVEMkEyXFx1RDJBM1xcdUQyQTVcIiwgNiwgXCJcXHVEMkFEXCJdLFxuICAgICAgW1wiYmE2MVwiLCBcIlxcdUQyQUVcXHVEMkFGXFx1RDJCMFxcdUQyQjJcIiwgNSwgXCJcXHVEMkJBXFx1RDJCQlxcdUQyQkRcXHVEMkJFXFx1RDJDMVxcdUQyQzNcIiwgNCwgXCJcXHVEMkNBXFx1RDJDQ1wiLCA1XSxcbiAgICAgIFtcImJhODFcIiwgXCJcXHVEMkQyXFx1RDJEM1xcdUQyRDVcXHVEMkQ2XFx1RDJEN1xcdUQyRDlcXHVEMkRBXFx1RDJEQlxcdUQyRERcIiwgNiwgXCJcXHVEMkU2XCIsIDksIFwiXFx1RDJGMlxcdUQyRjNcXHVEMkY1XFx1RDJGNlxcdUQyRjdcXHVEMkY5XFx1RDJGQVxcdUJDOTlcXHVCQzlBXFx1QkNBMFxcdUJDQTFcXHVCQ0E0XFx1QkNBN1xcdUJDQThcXHVCQ0IwXFx1QkNCMVxcdUJDQjNcXHVCQ0I0XFx1QkNCNVxcdUJDQkNcXHVCQ0JEXFx1QkNDMFxcdUJDQzRcXHVCQ0NEXFx1QkNDRlxcdUJDRDBcXHVCQ0QxXFx1QkNENVxcdUJDRDhcXHVCQ0RDXFx1QkNGNFxcdUJDRjVcXHVCQ0Y2XFx1QkNGOFxcdUJDRkNcXHVCRDA0XFx1QkQwNVxcdUJEMDdcXHVCRDA5XFx1QkQxMFxcdUJEMTRcXHVCRDI0XFx1QkQyQ1xcdUJENDBcXHVCRDQ4XFx1QkQ0OVxcdUJENENcXHVCRDUwXFx1QkQ1OFxcdUJENTlcXHVCRDY0XFx1QkQ2OFxcdUJEODBcXHVCRDgxXFx1QkQ4NFxcdUJEODdcXHVCRDg4XFx1QkQ4OVxcdUJEOEFcXHVCRDkwXFx1QkQ5MVxcdUJEOTNcXHVCRDk1XFx1QkQ5OVxcdUJEOUFcXHVCRDlDXFx1QkRBNFxcdUJEQjBcXHVCREI4XFx1QkRENFxcdUJERDVcXHVCREQ4XFx1QkREQ1xcdUJERTlcXHVCREYwXFx1QkRGNFxcdUJERjhcXHVCRTAwXFx1QkUwM1xcdUJFMDVcXHVCRTBDXFx1QkUwRFxcdUJFMTBcXHVCRTE0XFx1QkUxQ1xcdUJFMURcXHVCRTFGXFx1QkU0NFxcdUJFNDVcXHVCRTQ4XFx1QkU0Q1xcdUJFNEVcXHVCRTU0XFx1QkU1NVxcdUJFNTdcXHVCRTU5XFx1QkU1QVxcdUJFNUJcXHVCRTYwXFx1QkU2MVxcdUJFNjRcIl0sXG4gICAgICBbXCJiYjQxXCIsIFwiXFx1RDJGQlwiLCA0LCBcIlxcdUQzMDJcXHVEMzA0XFx1RDMwNlwiLCA1LCBcIlxcdUQzMEZcXHVEMzExXFx1RDMxMlxcdUQzMTNcXHVEMzE1XFx1RDMxN1wiLCA0LCBcIlxcdUQzMUVcXHVEMzIyXFx1RDMyM1wiXSxcbiAgICAgIFtcImJiNjFcIiwgXCJcXHVEMzI0XFx1RDMyNlxcdUQzMjdcXHVEMzJBXFx1RDMyQlxcdUQzMkRcXHVEMzJFXFx1RDMyRlxcdUQzMzFcIiwgNiwgXCJcXHVEMzNBXFx1RDMzRVwiLCA1LCBcIlxcdUQzNDZcXHVEMzQ3XFx1RDM0OFxcdUQzNDlcIl0sXG4gICAgICBbXCJiYjgxXCIsIFwiXFx1RDM0QVwiLCAzMSwgXCJcXHVCRTY4XFx1QkU2QVxcdUJFNzBcXHVCRTcxXFx1QkU3M1xcdUJFNzRcXHVCRTc1XFx1QkU3QlxcdUJFN0NcXHVCRTdEXFx1QkU4MFxcdUJFODRcXHVCRThDXFx1QkU4RFxcdUJFOEZcXHVCRTkwXFx1QkU5MVxcdUJFOThcXHVCRTk5XFx1QkVBOFxcdUJFRDBcXHVCRUQxXFx1QkVENFxcdUJFRDdcXHVCRUQ4XFx1QkVFMFxcdUJFRTNcXHVCRUU0XFx1QkVFNVxcdUJFRUNcXHVCRjAxXFx1QkYwOFxcdUJGMDlcXHVCRjE4XFx1QkYxOVxcdUJGMUJcXHVCRjFDXFx1QkYxRFxcdUJGNDBcXHVCRjQxXFx1QkY0NFxcdUJGNDhcXHVCRjUwXFx1QkY1MVxcdUJGNTVcXHVCRjk0XFx1QkZCMFxcdUJGQzVcXHVCRkNDXFx1QkZDRFxcdUJGRDBcXHVCRkQ0XFx1QkZEQ1xcdUJGREZcXHVCRkUxXFx1QzAzQ1xcdUMwNTFcXHVDMDU4XFx1QzA1Q1xcdUMwNjBcXHVDMDY4XFx1QzA2OVxcdUMwOTBcXHVDMDkxXFx1QzA5NFxcdUMwOThcXHVDMEEwXFx1QzBBMVxcdUMwQTNcXHVDMEE1XFx1QzBBQ1xcdUMwQURcXHVDMEFGXFx1QzBCMFxcdUMwQjNcXHVDMEI0XFx1QzBCNVxcdUMwQjZcXHVDMEJDXFx1QzBCRFxcdUMwQkZcXHVDMEMwXFx1QzBDMVxcdUMwQzVcXHVDMEM4XFx1QzBDOVxcdUMwQ0NcXHVDMEQwXFx1QzBEOFxcdUMwRDlcXHVDMERCXFx1QzBEQ1xcdUMwRERcXHVDMEU0XCJdLFxuICAgICAgW1wiYmM0MVwiLCBcIlxcdUQzNkFcIiwgMTcsIFwiXFx1RDM3RVxcdUQzN0ZcXHVEMzgxXFx1RDM4MlxcdUQzODNcXHVEMzg1XFx1RDM4NlxcdUQzODdcIl0sXG4gICAgICBbXCJiYzYxXCIsIFwiXFx1RDM4OFxcdUQzODlcXHVEMzhBXFx1RDM4QlxcdUQzOEVcXHVEMzkyXCIsIDUsIFwiXFx1RDM5QVxcdUQzOUJcXHVEMzlEXFx1RDM5RVxcdUQzOUZcXHVEM0ExXCIsIDYsIFwiXFx1RDNBQVxcdUQzQUNcXHVEM0FFXCJdLFxuICAgICAgW1wiYmM4MVwiLCBcIlxcdUQzQUZcIiwgNCwgXCJcXHVEM0I1XFx1RDNCNlxcdUQzQjdcXHVEM0I5XFx1RDNCQVxcdUQzQkJcXHVEM0JEXCIsIDYsIFwiXFx1RDNDNlxcdUQzQzdcXHVEM0NBXCIsIDUsIFwiXFx1RDNEMVwiLCA1LCBcIlxcdUMwRTVcXHVDMEU4XFx1QzBFQ1xcdUMwRjRcXHVDMEY1XFx1QzBGN1xcdUMwRjlcXHVDMTAwXFx1QzEwNFxcdUMxMDhcXHVDMTEwXFx1QzExNVxcdUMxMUNcIiwgNCwgXCJcXHVDMTIzXFx1QzEyNFxcdUMxMjZcXHVDMTI3XFx1QzEyQ1xcdUMxMkRcXHVDMTJGXFx1QzEzMFxcdUMxMzFcXHVDMTM2XFx1QzEzOFxcdUMxMzlcXHVDMTNDXFx1QzE0MFxcdUMxNDhcXHVDMTQ5XFx1QzE0QlxcdUMxNENcXHVDMTREXFx1QzE1NFxcdUMxNTVcXHVDMTU4XFx1QzE1Q1xcdUMxNjRcXHVDMTY1XFx1QzE2N1xcdUMxNjhcXHVDMTY5XFx1QzE3MFxcdUMxNzRcXHVDMTc4XFx1QzE4NVxcdUMxOENcXHVDMThEXFx1QzE4RVxcdUMxOTBcXHVDMTk0XFx1QzE5NlxcdUMxOUNcXHVDMTlEXFx1QzE5RlxcdUMxQTFcXHVDMUE1XFx1QzFBOFxcdUMxQTlcXHVDMUFDXFx1QzFCMFxcdUMxQkRcXHVDMUM0XFx1QzFDOFxcdUMxQ0NcXHVDMUQ0XFx1QzFEN1xcdUMxRDhcXHVDMUUwXFx1QzFFNFxcdUMxRThcXHVDMUYwXFx1QzFGMVxcdUMxRjNcXHVDMUZDXFx1QzFGRFxcdUMyMDBcXHVDMjA0XFx1QzIwQ1xcdUMyMERcXHVDMjBGXFx1QzIxMVxcdUMyMThcXHVDMjE5XFx1QzIxQ1xcdUMyMUZcXHVDMjIwXFx1QzIyOFxcdUMyMjlcXHVDMjJCXFx1QzIyRFwiXSxcbiAgICAgIFtcImJkNDFcIiwgXCJcXHVEM0Q3XFx1RDNEOVwiLCA3LCBcIlxcdUQzRTJcXHVEM0U0XCIsIDcsIFwiXFx1RDNFRVxcdUQzRUZcXHVEM0YxXFx1RDNGMlxcdUQzRjNcXHVEM0Y1XFx1RDNGNlxcdUQzRjdcIl0sXG4gICAgICBbXCJiZDYxXCIsIFwiXFx1RDNGOFxcdUQzRjlcXHVEM0ZBXFx1RDNGQlxcdUQzRkVcXHVENDAwXFx1RDQwMlwiLCA1LCBcIlxcdUQ0MDlcIiwgMTNdLFxuICAgICAgW1wiYmQ4MVwiLCBcIlxcdUQ0MTdcIiwgNSwgXCJcXHVENDFFXCIsIDI1LCBcIlxcdUMyMkZcXHVDMjMxXFx1QzIzMlxcdUMyMzRcXHVDMjQ4XFx1QzI1MFxcdUMyNTFcXHVDMjU0XFx1QzI1OFxcdUMyNjBcXHVDMjY1XFx1QzI2Q1xcdUMyNkRcXHVDMjcwXFx1QzI3NFxcdUMyN0NcXHVDMjdEXFx1QzI3RlxcdUMyODFcXHVDMjg4XFx1QzI4OVxcdUMyOTBcXHVDMjk4XFx1QzI5QlxcdUMyOURcXHVDMkE0XFx1QzJBNVxcdUMyQThcXHVDMkFDXFx1QzJBRFxcdUMyQjRcXHVDMkI1XFx1QzJCN1xcdUMyQjlcXHVDMkRDXFx1QzJERFxcdUMyRTBcXHVDMkUzXFx1QzJFNFxcdUMyRUJcXHVDMkVDXFx1QzJFRFxcdUMyRUZcXHVDMkYxXFx1QzJGNlxcdUMyRjhcXHVDMkY5XFx1QzJGQlxcdUMyRkNcXHVDMzAwXFx1QzMwOFxcdUMzMDlcXHVDMzBDXFx1QzMwRFxcdUMzMTNcXHVDMzE0XFx1QzMxNVxcdUMzMThcXHVDMzFDXFx1QzMyNFxcdUMzMjVcXHVDMzI4XFx1QzMyOVxcdUMzNDVcXHVDMzY4XFx1QzM2OVxcdUMzNkNcXHVDMzcwXFx1QzM3MlxcdUMzNzhcXHVDMzc5XFx1QzM3Q1xcdUMzN0RcXHVDMzg0XFx1QzM4OFxcdUMzOENcXHVDM0MwXFx1QzNEOFxcdUMzRDlcXHVDM0RDXFx1QzNERlxcdUMzRTBcXHVDM0UyXFx1QzNFOFxcdUMzRTlcXHVDM0VEXFx1QzNGNFxcdUMzRjVcXHVDM0Y4XFx1QzQwOFxcdUM0MTBcXHVDNDI0XFx1QzQyQ1xcdUM0MzBcIl0sXG4gICAgICBbXCJiZTQxXCIsIFwiXFx1RDQzOFwiLCA3LCBcIlxcdUQ0NDFcXHVENDQyXFx1RDQ0M1xcdUQ0NDVcIiwgMTRdLFxuICAgICAgW1wiYmU2MVwiLCBcIlxcdUQ0NTRcIiwgNywgXCJcXHVENDVEXFx1RDQ1RVxcdUQ0NUZcXHVENDYxXFx1RDQ2MlxcdUQ0NjNcXHVENDY1XCIsIDcsIFwiXFx1RDQ2RVxcdUQ0NzBcXHVENDcxXFx1RDQ3MlwiXSxcbiAgICAgIFtcImJlODFcIiwgXCJcXHVENDczXCIsIDQsIFwiXFx1RDQ3QVxcdUQ0N0JcXHVENDdEXFx1RDQ3RVxcdUQ0ODFcXHVENDgzXCIsIDQsIFwiXFx1RDQ4QVxcdUQ0OENcXHVENDhFXCIsIDUsIFwiXFx1RDQ5NVwiLCA4LCBcIlxcdUM0MzRcXHVDNDNDXFx1QzQzRFxcdUM0NDhcXHVDNDY0XFx1QzQ2NVxcdUM0NjhcXHVDNDZDXFx1QzQ3NFxcdUM0NzVcXHVDNDc5XFx1QzQ4MFxcdUM0OTRcXHVDNDlDXFx1QzRCOFxcdUM0QkNcXHVDNEU5XFx1QzRGMFxcdUM0RjFcXHVDNEY0XFx1QzRGOFxcdUM0RkFcXHVDNEZGXFx1QzUwMFxcdUM1MDFcXHVDNTBDXFx1QzUxMFxcdUM1MTRcXHVDNTFDXFx1QzUyOFxcdUM1MjlcXHVDNTJDXFx1QzUzMFxcdUM1MzhcXHVDNTM5XFx1QzUzQlxcdUM1M0RcXHVDNTQ0XFx1QzU0NVxcdUM1NDhcXHVDNTQ5XFx1QzU0QVxcdUM1NENcXHVDNTREXFx1QzU0RVxcdUM1NTNcXHVDNTU0XFx1QzU1NVxcdUM1NTdcXHVDNTU4XFx1QzU1OVxcdUM1NURcXHVDNTVFXFx1QzU2MFxcdUM1NjFcXHVDNTY0XFx1QzU2OFxcdUM1NzBcXHVDNTcxXFx1QzU3M1xcdUM1NzRcXHVDNTc1XFx1QzU3Q1xcdUM1N0RcXHVDNTgwXFx1QzU4NFxcdUM1ODdcXHVDNThDXFx1QzU4RFxcdUM1OEZcXHVDNTkxXFx1QzU5NVxcdUM1OTdcXHVDNTk4XFx1QzU5Q1xcdUM1QTBcXHVDNUE5XFx1QzVCNFxcdUM1QjVcXHVDNUI4XFx1QzVCOVxcdUM1QkJcXHVDNUJDXFx1QzVCRFxcdUM1QkVcXHVDNUM0XCIsIDYsIFwiXFx1QzVDQ1xcdUM1Q0VcIl0sXG4gICAgICBbXCJiZjQxXCIsIFwiXFx1RDQ5RVwiLCAxMCwgXCJcXHVENEFBXCIsIDE0XSxcbiAgICAgIFtcImJmNjFcIiwgXCJcXHVENEI5XCIsIDE4LCBcIlxcdUQ0Q0RcXHVENENFXFx1RDRDRlxcdUQ0RDFcXHVENEQyXFx1RDREM1xcdUQ0RDVcIl0sXG4gICAgICBbXCJiZjgxXCIsIFwiXFx1RDRENlwiLCA1LCBcIlxcdUQ0RERcXHVENERFXFx1RDRFMFwiLCA3LCBcIlxcdUQ0RTlcXHVENEVBXFx1RDRFQlxcdUQ0RURcXHVENEVFXFx1RDRFRlxcdUQ0RjFcIiwgNiwgXCJcXHVENEY5XFx1RDRGQVxcdUQ0RkNcXHVDNUQwXFx1QzVEMVxcdUM1RDRcXHVDNUQ4XFx1QzVFMFxcdUM1RTFcXHVDNUUzXFx1QzVFNVxcdUM1RUNcXHVDNUVEXFx1QzVFRVxcdUM1RjBcXHVDNUY0XFx1QzVGNlxcdUM1RjdcXHVDNUZDXCIsIDUsIFwiXFx1QzYwNVxcdUM2MDZcXHVDNjA3XFx1QzYwOFxcdUM2MENcXHVDNjEwXFx1QzYxOFxcdUM2MTlcXHVDNjFCXFx1QzYxQ1xcdUM2MjRcXHVDNjI1XFx1QzYyOFxcdUM2MkNcXHVDNjJEXFx1QzYyRVxcdUM2MzBcXHVDNjMzXFx1QzYzNFxcdUM2MzVcXHVDNjM3XFx1QzYzOVxcdUM2M0JcXHVDNjQwXFx1QzY0MVxcdUM2NDRcXHVDNjQ4XFx1QzY1MFxcdUM2NTFcXHVDNjUzXFx1QzY1NFxcdUM2NTVcXHVDNjVDXFx1QzY1RFxcdUM2NjBcXHVDNjZDXFx1QzY2RlxcdUM2NzFcXHVDNjc4XFx1QzY3OVxcdUM2N0NcXHVDNjgwXFx1QzY4OFxcdUM2ODlcXHVDNjhCXFx1QzY4RFxcdUM2OTRcXHVDNjk1XFx1QzY5OFxcdUM2OUNcXHVDNkE0XFx1QzZBNVxcdUM2QTdcXHVDNkE5XFx1QzZCMFxcdUM2QjFcXHVDNkI0XFx1QzZCOFxcdUM2QjlcXHVDNkJBXFx1QzZDMFxcdUM2QzFcXHVDNkMzXFx1QzZDNVxcdUM2Q0NcXHVDNkNEXFx1QzZEMFxcdUM2RDRcXHVDNkRDXFx1QzZERFxcdUM2RTBcXHVDNkUxXFx1QzZFOFwiXSxcbiAgICAgIFtcImMwNDFcIiwgXCJcXHVENEZFXCIsIDUsIFwiXFx1RDUwNVxcdUQ1MDZcXHVENTA3XFx1RDUwOVxcdUQ1MEFcXHVENTBCXFx1RDUwRFwiLCA2LCBcIlxcdUQ1MTZcXHVENTE4XCIsIDVdLFxuICAgICAgW1wiYzA2MVwiLCBcIlxcdUQ1MUVcIiwgMjVdLFxuICAgICAgW1wiYzA4MVwiLCBcIlxcdUQ1MzhcXHVENTM5XFx1RDUzQVxcdUQ1M0JcXHVENTNFXFx1RDUzRlxcdUQ1NDFcXHVENTQyXFx1RDU0M1xcdUQ1NDVcIiwgNiwgXCJcXHVENTRFXFx1RDU1MFxcdUQ1NTJcIiwgNSwgXCJcXHVENTVBXFx1RDU1QlxcdUQ1NURcXHVENTVFXFx1RDU1RlxcdUQ1NjFcXHVENTYyXFx1RDU2M1xcdUM2RTlcXHVDNkVDXFx1QzZGMFxcdUM2RjhcXHVDNkY5XFx1QzZGRFxcdUM3MDRcXHVDNzA1XFx1QzcwOFxcdUM3MENcXHVDNzE0XFx1QzcxNVxcdUM3MTdcXHVDNzE5XFx1QzcyMFxcdUM3MjFcXHVDNzI0XFx1QzcyOFxcdUM3MzBcXHVDNzMxXFx1QzczM1xcdUM3MzVcXHVDNzM3XFx1QzczQ1xcdUM3M0RcXHVDNzQwXFx1Qzc0NFxcdUM3NEFcXHVDNzRDXFx1Qzc0RFxcdUM3NEZcXHVDNzUxXCIsIDcsIFwiXFx1Qzc1Q1xcdUM3NjBcXHVDNzY4XFx1Qzc2QlxcdUM3NzRcXHVDNzc1XFx1Qzc3OFxcdUM3N0NcXHVDNzdEXFx1Qzc3RVxcdUM3ODNcXHVDNzg0XFx1Qzc4NVxcdUM3ODdcXHVDNzg4XFx1Qzc4OVxcdUM3OEFcXHVDNzhFXFx1Qzc5MFxcdUM3OTFcXHVDNzk0XFx1Qzc5NlxcdUM3OTdcXHVDNzk4XFx1Qzc5QVxcdUM3QTBcXHVDN0ExXFx1QzdBM1xcdUM3QTRcXHVDN0E1XFx1QzdBNlxcdUM3QUNcXHVDN0FEXFx1QzdCMFxcdUM3QjRcXHVDN0JDXFx1QzdCRFxcdUM3QkZcXHVDN0MwXFx1QzdDMVxcdUM3QzhcXHVDN0M5XFx1QzdDQ1xcdUM3Q0VcXHVDN0QwXFx1QzdEOFxcdUM3RERcXHVDN0U0XFx1QzdFOFxcdUM3RUNcXHVDODAwXFx1QzgwMVxcdUM4MDRcXHVDODA4XFx1QzgwQVwiXSxcbiAgICAgIFtcImMxNDFcIiwgXCJcXHVENTY0XFx1RDU2NlxcdUQ1NjdcXHVENTZBXFx1RDU2Q1xcdUQ1NkVcIiwgNSwgXCJcXHVENTc2XFx1RDU3N1xcdUQ1NzlcXHVENTdBXFx1RDU3QlxcdUQ1N0RcIiwgNiwgXCJcXHVENTg2XFx1RDU4QVxcdUQ1OEJcIl0sXG4gICAgICBbXCJjMTYxXCIsIFwiXFx1RDU4Q1xcdUQ1OERcXHVENThFXFx1RDU4RlxcdUQ1OTFcIiwgMTksIFwiXFx1RDVBNlxcdUQ1QTdcIl0sXG4gICAgICBbXCJjMTgxXCIsIFwiXFx1RDVBOFwiLCAzMSwgXCJcXHVDODEwXFx1QzgxMVxcdUM4MTNcXHVDODE1XFx1QzgxNlxcdUM4MUNcXHVDODFEXFx1QzgyMFxcdUM4MjRcXHVDODJDXFx1QzgyRFxcdUM4MkZcXHVDODMxXFx1QzgzOFxcdUM4M0NcXHVDODQwXFx1Qzg0OFxcdUM4NDlcXHVDODRDXFx1Qzg0RFxcdUM4NTRcXHVDODcwXFx1Qzg3MVxcdUM4NzRcXHVDODc4XFx1Qzg3QVxcdUM4ODBcXHVDODgxXFx1Qzg4M1xcdUM4ODVcXHVDODg2XFx1Qzg4N1xcdUM4OEJcXHVDODhDXFx1Qzg4RFxcdUM4OTRcXHVDODlEXFx1Qzg5RlxcdUM4QTFcXHVDOEE4XFx1QzhCQ1xcdUM4QkRcXHVDOEM0XFx1QzhDOFxcdUM4Q0NcXHVDOEQ0XFx1QzhENVxcdUM4RDdcXHVDOEQ5XFx1QzhFMFxcdUM4RTFcXHVDOEU0XFx1QzhGNVxcdUM4RkNcXHVDOEZEXFx1QzkwMFxcdUM5MDRcXHVDOTA1XFx1QzkwNlxcdUM5MENcXHVDOTBEXFx1QzkwRlxcdUM5MTFcXHVDOTE4XFx1QzkyQ1xcdUM5MzRcXHVDOTUwXFx1Qzk1MVxcdUM5NTRcXHVDOTU4XFx1Qzk2MFxcdUM5NjFcXHVDOTYzXFx1Qzk2Q1xcdUM5NzBcXHVDOTc0XFx1Qzk3Q1xcdUM5ODhcXHVDOTg5XFx1Qzk4Q1xcdUM5OTBcXHVDOTk4XFx1Qzk5OVxcdUM5OUJcXHVDOTlEXFx1QzlDMFxcdUM5QzFcXHVDOUM0XFx1QzlDN1xcdUM5QzhcXHVDOUNBXFx1QzlEMFxcdUM5RDFcXHVDOUQzXCJdLFxuICAgICAgW1wiYzI0MVwiLCBcIlxcdUQ1Q0FcXHVENUNCXFx1RDVDRFxcdUQ1Q0VcXHVENUNGXFx1RDVEMVxcdUQ1RDNcIiwgNCwgXCJcXHVENURBXFx1RDVEQ1xcdUQ1REVcIiwgNSwgXCJcXHVENUU2XFx1RDVFN1xcdUQ1RTlcXHVENUVBXFx1RDVFQlxcdUQ1RURcXHVENUVFXCJdLFxuICAgICAgW1wiYzI2MVwiLCBcIlxcdUQ1RUZcIiwgNCwgXCJcXHVENUY2XFx1RDVGOFxcdUQ1RkFcIiwgNSwgXCJcXHVENjAyXFx1RDYwM1xcdUQ2MDVcXHVENjA2XFx1RDYwN1xcdUQ2MDlcIiwgNiwgXCJcXHVENjEyXCJdLFxuICAgICAgW1wiYzI4MVwiLCBcIlxcdUQ2MTZcIiwgNSwgXCJcXHVENjFEXFx1RDYxRVxcdUQ2MUZcXHVENjIxXFx1RDYyMlxcdUQ2MjNcXHVENjI1XCIsIDcsIFwiXFx1RDYyRVwiLCA5LCBcIlxcdUQ2M0FcXHVENjNCXFx1QzlENVxcdUM5RDZcXHVDOUQ5XFx1QzlEQVxcdUM5RENcXHVDOUREXFx1QzlFMFxcdUM5RTJcXHVDOUU0XFx1QzlFN1xcdUM5RUNcXHVDOUVEXFx1QzlFRlxcdUM5RjBcXHVDOUYxXFx1QzlGOFxcdUM5RjlcXHVDOUZDXFx1Q0EwMFxcdUNBMDhcXHVDQTA5XFx1Q0EwQlxcdUNBMENcXHVDQTBEXFx1Q0ExNFxcdUNBMThcXHVDQTI5XFx1Q0E0Q1xcdUNBNERcXHVDQTUwXFx1Q0E1NFxcdUNBNUNcXHVDQTVEXFx1Q0E1RlxcdUNBNjBcXHVDQTYxXFx1Q0E2OFxcdUNBN0RcXHVDQTg0XFx1Q0E5OFxcdUNBQkNcXHVDQUJEXFx1Q0FDMFxcdUNBQzRcXHVDQUNDXFx1Q0FDRFxcdUNBQ0ZcXHVDQUQxXFx1Q0FEM1xcdUNBRDhcXHVDQUQ5XFx1Q0FFMFxcdUNBRUNcXHVDQUY0XFx1Q0IwOFxcdUNCMTBcXHVDQjE0XFx1Q0IxOFxcdUNCMjBcXHVDQjIxXFx1Q0I0MVxcdUNCNDhcXHVDQjQ5XFx1Q0I0Q1xcdUNCNTBcXHVDQjU4XFx1Q0I1OVxcdUNCNURcXHVDQjY0XFx1Q0I3OFxcdUNCNzlcXHVDQjlDXFx1Q0JCOFxcdUNCRDRcXHVDQkU0XFx1Q0JFN1xcdUNCRTlcXHVDQzBDXFx1Q0MwRFxcdUNDMTBcXHVDQzE0XFx1Q0MxQ1xcdUNDMURcXHVDQzIxXFx1Q0MyMlxcdUNDMjdcXHVDQzI4XFx1Q0MyOVxcdUNDMkNcXHVDQzJFXFx1Q0MzMFxcdUNDMzhcXHVDQzM5XFx1Q0MzQlwiXSxcbiAgICAgIFtcImMzNDFcIiwgXCJcXHVENjNEXFx1RDYzRVxcdUQ2M0ZcXHVENjQxXFx1RDY0MlxcdUQ2NDNcXHVENjQ0XFx1RDY0NlxcdUQ2NDdcXHVENjRBXFx1RDY0Q1xcdUQ2NEVcXHVENjRGXFx1RDY1MFxcdUQ2NTJcXHVENjUzXFx1RDY1NlxcdUQ2NTdcXHVENjU5XFx1RDY1QVxcdUQ2NUJcXHVENjVEXCIsIDRdLFxuICAgICAgW1wiYzM2MVwiLCBcIlxcdUQ2NjJcIiwgNCwgXCJcXHVENjY4XFx1RDY2QVwiLCA1LCBcIlxcdUQ2NzJcXHVENjczXFx1RDY3NVwiLCAxMV0sXG4gICAgICBbXCJjMzgxXCIsIFwiXFx1RDY4MVxcdUQ2ODJcXHVENjg0XFx1RDY4NlwiLCA1LCBcIlxcdUQ2OEVcXHVENjhGXFx1RDY5MVxcdUQ2OTJcXHVENjkzXFx1RDY5NVwiLCA3LCBcIlxcdUQ2OUVcXHVENkEwXFx1RDZBMlwiLCA1LCBcIlxcdUQ2QTlcXHVENkFBXFx1Q0MzQ1xcdUNDM0RcXHVDQzNFXFx1Q0M0NFxcdUNDNDVcXHVDQzQ4XFx1Q0M0Q1xcdUNDNTRcXHVDQzU1XFx1Q0M1N1xcdUNDNThcXHVDQzU5XFx1Q0M2MFxcdUNDNjRcXHVDQzY2XFx1Q0M2OFxcdUNDNzBcXHVDQzc1XFx1Q0M5OFxcdUNDOTlcXHVDQzlDXFx1Q0NBMFxcdUNDQThcXHVDQ0E5XFx1Q0NBQlxcdUNDQUNcXHVDQ0FEXFx1Q0NCNFxcdUNDQjVcXHVDQ0I4XFx1Q0NCQ1xcdUNDQzRcXHVDQ0M1XFx1Q0NDN1xcdUNDQzlcXHVDQ0QwXFx1Q0NENFxcdUNDRTRcXHVDQ0VDXFx1Q0NGMFxcdUNEMDFcXHVDRDA4XFx1Q0QwOVxcdUNEMENcXHVDRDEwXFx1Q0QxOFxcdUNEMTlcXHVDRDFCXFx1Q0QxRFxcdUNEMjRcXHVDRDI4XFx1Q0QyQ1xcdUNEMzlcXHVDRDVDXFx1Q0Q2MFxcdUNENjRcXHVDRDZDXFx1Q0Q2RFxcdUNENkZcXHVDRDcxXFx1Q0Q3OFxcdUNEODhcXHVDRDk0XFx1Q0Q5NVxcdUNEOThcXHVDRDlDXFx1Q0RBNFxcdUNEQTVcXHVDREE3XFx1Q0RBOVxcdUNEQjBcXHVDREM0XFx1Q0RDQ1xcdUNERDBcXHVDREU4XFx1Q0RFQ1xcdUNERjBcXHVDREY4XFx1Q0RGOVxcdUNERkJcXHVDREZEXFx1Q0UwNFxcdUNFMDhcXHVDRTBDXFx1Q0UxNFxcdUNFMTlcXHVDRTIwXFx1Q0UyMVxcdUNFMjRcXHVDRTI4XFx1Q0UzMFxcdUNFMzFcXHVDRTMzXFx1Q0UzNVwiXSxcbiAgICAgIFtcImM0NDFcIiwgXCJcXHVENkFCXFx1RDZBRFxcdUQ2QUVcXHVENkFGXFx1RDZCMVwiLCA3LCBcIlxcdUQ2QkFcXHVENkJDXCIsIDcsIFwiXFx1RDZDNlxcdUQ2QzdcXHVENkM5XFx1RDZDQVxcdUQ2Q0JcIl0sXG4gICAgICBbXCJjNDYxXCIsIFwiXFx1RDZDRFxcdUQ2Q0VcXHVENkNGXFx1RDZEMFxcdUQ2RDJcXHVENkQzXFx1RDZENVxcdUQ2RDZcXHVENkQ4XFx1RDZEQVwiLCA1LCBcIlxcdUQ2RTFcXHVENkUyXFx1RDZFM1xcdUQ2RTVcXHVENkU2XFx1RDZFN1xcdUQ2RTlcIiwgNF0sXG4gICAgICBbXCJjNDgxXCIsIFwiXFx1RDZFRVxcdUQ2RUZcXHVENkYxXFx1RDZGMlxcdUQ2RjNcXHVENkY0XFx1RDZGNlwiLCA1LCBcIlxcdUQ2RkVcXHVENkZGXFx1RDcwMVxcdUQ3MDJcXHVENzAzXFx1RDcwNVwiLCAxMSwgXCJcXHVENzEyXFx1RDcxM1xcdUQ3MTRcXHVDRTU4XFx1Q0U1OVxcdUNFNUNcXHVDRTVGXFx1Q0U2MFxcdUNFNjFcXHVDRTY4XFx1Q0U2OVxcdUNFNkJcXHVDRTZEXFx1Q0U3NFxcdUNFNzVcXHVDRTc4XFx1Q0U3Q1xcdUNFODRcXHVDRTg1XFx1Q0U4N1xcdUNFODlcXHVDRTkwXFx1Q0U5MVxcdUNFOTRcXHVDRTk4XFx1Q0VBMFxcdUNFQTFcXHVDRUEzXFx1Q0VBNFxcdUNFQTVcXHVDRUFDXFx1Q0VBRFxcdUNFQzFcXHVDRUU0XFx1Q0VFNVxcdUNFRThcXHVDRUVCXFx1Q0VFQ1xcdUNFRjRcXHVDRUY1XFx1Q0VGN1xcdUNFRjhcXHVDRUY5XFx1Q0YwMFxcdUNGMDFcXHVDRjA0XFx1Q0YwOFxcdUNGMTBcXHVDRjExXFx1Q0YxM1xcdUNGMTVcXHVDRjFDXFx1Q0YyMFxcdUNGMjRcXHVDRjJDXFx1Q0YyRFxcdUNGMkZcXHVDRjMwXFx1Q0YzMVxcdUNGMzhcXHVDRjU0XFx1Q0Y1NVxcdUNGNThcXHVDRjVDXFx1Q0Y2NFxcdUNGNjVcXHVDRjY3XFx1Q0Y2OVxcdUNGNzBcXHVDRjcxXFx1Q0Y3NFxcdUNGNzhcXHVDRjgwXFx1Q0Y4NVxcdUNGOENcXHVDRkExXFx1Q0ZBOFxcdUNGQjBcXHVDRkM0XFx1Q0ZFMFxcdUNGRTFcXHVDRkU0XFx1Q0ZFOFxcdUNGRjBcXHVDRkYxXFx1Q0ZGM1xcdUNGRjVcXHVDRkZDXFx1RDAwMFxcdUQwMDRcXHVEMDExXFx1RDAxOFxcdUQwMkRcXHVEMDM0XFx1RDAzNVxcdUQwMzhcXHVEMDNDXCJdLFxuICAgICAgW1wiYzU0MVwiLCBcIlxcdUQ3MTVcXHVENzE2XFx1RDcxN1xcdUQ3MUFcXHVENzFCXFx1RDcxRFxcdUQ3MUVcXHVENzFGXFx1RDcyMVwiLCA2LCBcIlxcdUQ3MkFcXHVENzJDXFx1RDcyRVwiLCA1LCBcIlxcdUQ3MzZcXHVENzM3XFx1RDczOVwiXSxcbiAgICAgIFtcImM1NjFcIiwgXCJcXHVENzNBXFx1RDczQlxcdUQ3M0RcIiwgNiwgXCJcXHVENzQ1XFx1RDc0NlxcdUQ3NDhcXHVENzRBXCIsIDUsIFwiXFx1RDc1MlxcdUQ3NTNcXHVENzU1XFx1RDc1QVwiLCA0XSxcbiAgICAgIFtcImM1ODFcIiwgXCJcXHVENzVGXFx1RDc2MlxcdUQ3NjRcXHVENzY2XFx1RDc2N1xcdUQ3NjhcXHVENzZBXFx1RDc2QlxcdUQ3NkRcXHVENzZFXFx1RDc2RlxcdUQ3NzFcXHVENzcyXFx1RDc3M1xcdUQ3NzVcIiwgNiwgXCJcXHVENzdFXFx1RDc3RlxcdUQ3ODBcXHVENzgyXCIsIDUsIFwiXFx1RDc4QVxcdUQ3OEJcXHVEMDQ0XFx1RDA0NVxcdUQwNDdcXHVEMDQ5XFx1RDA1MFxcdUQwNTRcXHVEMDU4XFx1RDA2MFxcdUQwNkNcXHVEMDZEXFx1RDA3MFxcdUQwNzRcXHVEMDdDXFx1RDA3RFxcdUQwODFcXHVEMEE0XFx1RDBBNVxcdUQwQThcXHVEMEFDXFx1RDBCNFxcdUQwQjVcXHVEMEI3XFx1RDBCOVxcdUQwQzBcXHVEMEMxXFx1RDBDNFxcdUQwQzhcXHVEMEM5XFx1RDBEMFxcdUQwRDFcXHVEMEQzXFx1RDBENFxcdUQwRDVcXHVEMERDXFx1RDBERFxcdUQwRTBcXHVEMEU0XFx1RDBFQ1xcdUQwRURcXHVEMEVGXFx1RDBGMFxcdUQwRjFcXHVEMEY4XFx1RDEwRFxcdUQxMzBcXHVEMTMxXFx1RDEzNFxcdUQxMzhcXHVEMTNBXFx1RDE0MFxcdUQxNDFcXHVEMTQzXFx1RDE0NFxcdUQxNDVcXHVEMTRDXFx1RDE0RFxcdUQxNTBcXHVEMTU0XFx1RDE1Q1xcdUQxNURcXHVEMTVGXFx1RDE2MVxcdUQxNjhcXHVEMTZDXFx1RDE3Q1xcdUQxODRcXHVEMTg4XFx1RDFBMFxcdUQxQTFcXHVEMUE0XFx1RDFBOFxcdUQxQjBcXHVEMUIxXFx1RDFCM1xcdUQxQjVcXHVEMUJBXFx1RDFCQ1xcdUQxQzBcXHVEMUQ4XFx1RDFGNFxcdUQxRjhcXHVEMjA3XFx1RDIwOVxcdUQyMTBcXHVEMjJDXFx1RDIyRFxcdUQyMzBcXHVEMjM0XFx1RDIzQ1xcdUQyM0RcXHVEMjNGXFx1RDI0MVxcdUQyNDhcXHVEMjVDXCJdLFxuICAgICAgW1wiYzY0MVwiLCBcIlxcdUQ3OERcXHVENzhFXFx1RDc4RlxcdUQ3OTFcIiwgNiwgXCJcXHVENzlBXFx1RDc5Q1xcdUQ3OUVcIiwgNV0sXG4gICAgICBbXCJjNmExXCIsIFwiXFx1RDI2NFxcdUQyODBcXHVEMjgxXFx1RDI4NFxcdUQyODhcXHVEMjkwXFx1RDI5MVxcdUQyOTVcXHVEMjlDXFx1RDJBMFxcdUQyQTRcXHVEMkFDXFx1RDJCMVxcdUQyQjhcXHVEMkI5XFx1RDJCQ1xcdUQyQkZcXHVEMkMwXFx1RDJDMlxcdUQyQzhcXHVEMkM5XFx1RDJDQlxcdUQyRDRcXHVEMkQ4XFx1RDJEQ1xcdUQyRTRcXHVEMkU1XFx1RDJGMFxcdUQyRjFcXHVEMkY0XFx1RDJGOFxcdUQzMDBcXHVEMzAxXFx1RDMwM1xcdUQzMDVcXHVEMzBDXFx1RDMwRFxcdUQzMEVcXHVEMzEwXFx1RDMxNFxcdUQzMTZcXHVEMzFDXFx1RDMxRFxcdUQzMUZcXHVEMzIwXFx1RDMyMVxcdUQzMjVcXHVEMzI4XFx1RDMyOVxcdUQzMkNcXHVEMzMwXFx1RDMzOFxcdUQzMzlcXHVEMzNCXFx1RDMzQ1xcdUQzM0RcXHVEMzQ0XFx1RDM0NVxcdUQzN0NcXHVEMzdEXFx1RDM4MFxcdUQzODRcXHVEMzhDXFx1RDM4RFxcdUQzOEZcXHVEMzkwXFx1RDM5MVxcdUQzOThcXHVEMzk5XFx1RDM5Q1xcdUQzQTBcXHVEM0E4XFx1RDNBOVxcdUQzQUJcXHVEM0FEXFx1RDNCNFxcdUQzQjhcXHVEM0JDXFx1RDNDNFxcdUQzQzVcXHVEM0M4XFx1RDNDOVxcdUQzRDBcXHVEM0Q4XFx1RDNFMVxcdUQzRTNcXHVEM0VDXFx1RDNFRFxcdUQzRjBcXHVEM0Y0XFx1RDNGQ1xcdUQzRkRcXHVEM0ZGXFx1RDQwMVwiXSxcbiAgICAgIFtcImM3YTFcIiwgXCJcXHVENDA4XFx1RDQxRFxcdUQ0NDBcXHVENDQ0XFx1RDQ1Q1xcdUQ0NjBcXHVENDY0XFx1RDQ2RFxcdUQ0NkZcXHVENDc4XFx1RDQ3OVxcdUQ0N0NcXHVENDdGXFx1RDQ4MFxcdUQ0ODJcXHVENDg4XFx1RDQ4OVxcdUQ0OEJcXHVENDhEXFx1RDQ5NFxcdUQ0QTlcXHVENENDXFx1RDREMFxcdUQ0RDRcXHVENERDXFx1RDRERlxcdUQ0RThcXHVENEVDXFx1RDRGMFxcdUQ0RjhcXHVENEZCXFx1RDRGRFxcdUQ1MDRcXHVENTA4XFx1RDUwQ1xcdUQ1MTRcXHVENTE1XFx1RDUxN1xcdUQ1M0NcXHVENTNEXFx1RDU0MFxcdUQ1NDRcXHVENTRDXFx1RDU0RFxcdUQ1NEZcXHVENTUxXFx1RDU1OFxcdUQ1NTlcXHVENTVDXFx1RDU2MFxcdUQ1NjVcXHVENTY4XFx1RDU2OVxcdUQ1NkJcXHVENTZEXFx1RDU3NFxcdUQ1NzVcXHVENTc4XFx1RDU3Q1xcdUQ1ODRcXHVENTg1XFx1RDU4N1xcdUQ1ODhcXHVENTg5XFx1RDU5MFxcdUQ1QTVcXHVENUM4XFx1RDVDOVxcdUQ1Q0NcXHVENUQwXFx1RDVEMlxcdUQ1RDhcXHVENUQ5XFx1RDVEQlxcdUQ1RERcXHVENUU0XFx1RDVFNVxcdUQ1RThcXHVENUVDXFx1RDVGNFxcdUQ1RjVcXHVENUY3XFx1RDVGOVxcdUQ2MDBcXHVENjAxXFx1RDYwNFxcdUQ2MDhcXHVENjEwXFx1RDYxMVxcdUQ2MTNcXHVENjE0XFx1RDYxNVxcdUQ2MUNcXHVENjIwXCJdLFxuICAgICAgW1wiYzhhMVwiLCBcIlxcdUQ2MjRcXHVENjJEXFx1RDYzOFxcdUQ2MzlcXHVENjNDXFx1RDY0MFxcdUQ2NDVcXHVENjQ4XFx1RDY0OVxcdUQ2NEJcXHVENjREXFx1RDY1MVxcdUQ2NTRcXHVENjU1XFx1RDY1OFxcdUQ2NUNcXHVENjY3XFx1RDY2OVxcdUQ2NzBcXHVENjcxXFx1RDY3NFxcdUQ2ODNcXHVENjg1XFx1RDY4Q1xcdUQ2OERcXHVENjkwXFx1RDY5NFxcdUQ2OURcXHVENjlGXFx1RDZBMVxcdUQ2QThcXHVENkFDXFx1RDZCMFxcdUQ2QjlcXHVENkJCXFx1RDZDNFxcdUQ2QzVcXHVENkM4XFx1RDZDQ1xcdUQ2RDFcXHVENkQ0XFx1RDZEN1xcdUQ2RDlcXHVENkUwXFx1RDZFNFxcdUQ2RThcXHVENkYwXFx1RDZGNVxcdUQ2RkNcXHVENkZEXFx1RDcwMFxcdUQ3MDRcXHVENzExXFx1RDcxOFxcdUQ3MTlcXHVENzFDXFx1RDcyMFxcdUQ3MjhcXHVENzI5XFx1RDcyQlxcdUQ3MkRcXHVENzM0XFx1RDczNVxcdUQ3MzhcXHVENzNDXFx1RDc0NFxcdUQ3NDdcXHVENzQ5XFx1RDc1MFxcdUQ3NTFcXHVENzU0XFx1RDc1NlxcdUQ3NTdcXHVENzU4XFx1RDc1OVxcdUQ3NjBcXHVENzYxXFx1RDc2M1xcdUQ3NjVcXHVENzY5XFx1RDc2Q1xcdUQ3NzBcXHVENzc0XFx1RDc3Q1xcdUQ3N0RcXHVENzgxXFx1RDc4OFxcdUQ3ODlcXHVENzhDXFx1RDc5MFxcdUQ3OThcXHVENzk5XFx1RDc5QlxcdUQ3OURcIl0sXG4gICAgICBbXCJjYWExXCIsIFwiXFx1NEYzRFxcdTRGNzNcXHU1MDQ3XFx1NTBGOVxcdTUyQTBcXHU1M0VGXFx1NTQ3NVxcdTU0RTVcXHU1NjA5XFx1NUFDMVxcdTVCQjZcXHU2Njg3XFx1NjdCNlxcdTY3QjdcXHU2N0VGXFx1NkI0Q1xcdTczQzJcXHU3NUMyXFx1N0EzQ1xcdTgyREJcXHU4MzA0XFx1ODg1N1xcdTg4ODhcXHU4QTM2XFx1OENDOFxcdThEQ0ZcXHU4RUZCXFx1OEZFNlxcdTk5RDVcXHU1MjNCXFx1NTM3NFxcdTU0MDRcXHU2MDZBXFx1NjE2NFxcdTZCQkNcXHU3M0NGXFx1ODExQVxcdTg5QkFcXHU4OUQyXFx1OTVBM1xcdTRGODNcXHU1MjBBXFx1NThCRVxcdTU5NzhcXHU1OUU2XFx1NUU3MlxcdTVFNzlcXHU2MUM3XFx1NjNDMFxcdTY3NDZcXHU2N0VDXFx1Njg3RlxcdTZGOTdcXHU3NjRFXFx1NzcwQlxcdTc4RjVcXHU3QTA4XFx1N0FGRlxcdTdDMjFcXHU4MDlEXFx1ODI2RVxcdTgyNzFcXHU4QUVCXFx1OTU5M1xcdTRFNkJcXHU1NTlEXFx1NjZGN1xcdTZFMzRcXHU3OEEzXFx1N0FFRFxcdTg0NUJcXHU4OTEwXFx1ODc0RVxcdTk3QThcXHU1MkQ4XFx1NTc0RVxcdTU4MkFcXHU1RDRDXFx1NjExRlxcdTYxQkVcXHU2MjIxXFx1NjU2MlxcdTY3RDFcXHU2QTQ0XFx1NkUxQlxcdTc1MThcXHU3NUIzXFx1NzZFM1xcdTc3QjBcXHU3RDNBXFx1OTBBRlxcdTk0NTFcXHU5NDUyXFx1OUY5NVwiXSxcbiAgICAgIFtcImNiYTFcIiwgXCJcXHU1MzIzXFx1NUNBQ1xcdTc1MzJcXHU4MERCXFx1OTI0MFxcdTk1OThcXHU1MjVCXFx1NTgwOFxcdTU5RENcXHU1Q0ExXFx1NUQxN1xcdTVFQjdcXHU1RjNBXFx1NUY0QVxcdTYxNzdcXHU2QzVGXFx1NzU3QVxcdTc1ODZcXHU3Q0UwXFx1N0Q3M1xcdTdEQjFcXHU3RjhDXFx1ODE1NFxcdTgyMjFcXHU4NTkxXFx1ODk0MVxcdThCMUJcXHU5MkZDXFx1OTY0RFxcdTlDNDdcXHU0RUNCXFx1NEVGN1xcdTUwMEJcXHU1MUYxXFx1NTg0RlxcdTYxMzdcXHU2MTNFXFx1NjE2OFxcdTY1MzlcXHU2OUVBXFx1NkYxMVxcdTc1QTVcXHU3Njg2XFx1NzZENlxcdTdCODdcXHU4MkE1XFx1ODRDQlxcdUY5MDBcXHU5M0E3XFx1OTU4QlxcdTU1ODBcXHU1QkEyXFx1NTc1MVxcdUY5MDFcXHU3Q0IzXFx1N0ZCOVxcdTkxQjVcXHU1MDI4XFx1NTNCQlxcdTVDNDVcXHU1REU4XFx1NjJEMlxcdTYzNkVcXHU2NERBXFx1NjRFN1xcdTZFMjBcXHU3MEFDXFx1Nzk1QlxcdThERERcXHU4RTFFXFx1RjkwMlxcdTkwN0RcXHU5MjQ1XFx1OTJGOFxcdTRFN0VcXHU0RUY2XFx1NTA2NVxcdTVERkVcXHU1RUZBXFx1NjEwNlxcdTY5NTdcXHU4MTcxXFx1ODY1NFxcdThFNDdcXHU5Mzc1XFx1OUEyQlxcdTRFNUVcXHU1MDkxXFx1Njc3MFxcdTY4NDBcXHU1MTA5XFx1NTI4RFxcdTUyOTJcXHU2QUEyXCJdLFxuICAgICAgW1wiY2NhMVwiLCBcIlxcdTc3QkNcXHU5MjEwXFx1OUVENFxcdTUyQUJcXHU2MDJGXFx1OEZGMlxcdTUwNDhcXHU2MUE5XFx1NjNFRFxcdTY0Q0FcXHU2ODNDXFx1NkE4NFxcdTZGQzBcXHU4MTg4XFx1ODlBMVxcdTk2OTRcXHU1ODA1XFx1NzI3RFxcdTcyQUNcXHU3NTA0XFx1N0Q3OVxcdTdFNkRcXHU4MEE5XFx1ODk4QlxcdThCNzRcXHU5MDYzXFx1OUQ1MVxcdTYyODlcXHU2QzdBXFx1NkY1NFxcdTdENTBcXHU3RjNBXFx1OEEyM1xcdTUxN0NcXHU2MTRBXFx1N0I5RFxcdThCMTlcXHU5MjU3XFx1OTM4Q1xcdTRFQUNcXHU0RkQzXFx1NTAxRVxcdTUwQkVcXHU1MTA2XFx1NTJDMVxcdTUyQ0RcXHU1MzdGXFx1NTc3MFxcdTU4ODNcXHU1RTlBXFx1NUY5MVxcdTYxNzZcXHU2MUFDXFx1NjRDRVxcdTY1NkNcXHU2NjZGXFx1NjZCQlxcdTY2RjRcXHU2ODk3XFx1NkQ4N1xcdTcwODVcXHU3MEYxXFx1NzQ5RlxcdTc0QTVcXHU3NENBXFx1NzVEOVxcdTc4NkNcXHU3OEVDXFx1N0FERlxcdTdBRjZcXHU3RDQ1XFx1N0Q5M1xcdTgwMTVcXHU4MDNGXFx1ODExQlxcdTgzOTZcXHU4QjY2XFx1OEYxNVxcdTkwMTVcXHU5M0UxXFx1OTgwM1xcdTk4MzhcXHU5QTVBXFx1OUJFOFxcdTRGQzJcXHU1NTUzXFx1NTgzQVxcdTU5NTFcXHU1QjYzXFx1NUM0NlxcdTYwQjhcXHU2MjEyXFx1Njg0MlxcdTY4QjBcIl0sXG4gICAgICBbXCJjZGExXCIsIFwiXFx1NjhFOFxcdTZFQUFcXHU3NTRDXFx1NzY3OFxcdTc4Q0VcXHU3QTNEXFx1N0NGQlxcdTdFNkJcXHU3RTdDXFx1OEEwOFxcdThBQTFcXHU4QzNGXFx1OTY4RVxcdTlEQzRcXHU1M0U0XFx1NTNFOVxcdTU0NEFcXHU1NDcxXFx1NTZGQVxcdTU5RDFcXHU1QjY0XFx1NUMzQlxcdTVFQUJcXHU2MkY3XFx1NjUzN1xcdTY1NDVcXHU2NTcyXFx1NjZBMFxcdTY3QUZcXHU2OUMxXFx1NkNCRFxcdTc1RkNcXHU3NjkwXFx1Nzc3RVxcdTdBM0ZcXHU3Rjk0XFx1ODAwM1xcdTgwQTFcXHU4MThGXFx1ODJFNlxcdTgyRkRcXHU4M0YwXFx1ODVDMVxcdTg4MzFcXHU4OEI0XFx1OEFBNVxcdUY5MDNcXHU4RjlDXFx1OTMyRVxcdTk2QzdcXHU5ODY3XFx1OUFEOFxcdTlGMTNcXHU1NEVEXFx1NjU5QlxcdTY2RjJcXHU2ODhGXFx1N0E0MFxcdThDMzdcXHU5RDYwXFx1NTZGMFxcdTU3NjRcXHU1RDExXFx1NjYwNlxcdTY4QjFcXHU2OENEXFx1NkVGRVxcdTc0MjhcXHU4ODlFXFx1OUJFNFxcdTZDNjhcXHVGOTA0XFx1OUFBOFxcdTRGOUJcXHU1MTZDXFx1NTE3MVxcdTUyOUZcXHU1QjU0XFx1NURFNVxcdTYwNTBcXHU2MDZEXFx1NjJGMVxcdTYzQTdcXHU2NTNCXFx1NzNEOVxcdTdBN0FcXHU4NkEzXFx1OENBMlxcdTk3OEZcXHU0RTMyXFx1NUJFMVxcdTYyMDhcXHU2NzlDXFx1NzREQ1wiXSxcbiAgICAgIFtcImNlYTFcIiwgXCJcXHU3OUQxXFx1ODNEM1xcdThBODdcXHU4QUIyXFx1OERFOFxcdTkwNEVcXHU5MzRCXFx1OTg0NlxcdTVFRDNcXHU2OUU4XFx1ODVGRlxcdTkwRURcXHVGOTA1XFx1NTFBMFxcdTVCOThcXHU1QkVDXFx1NjE2M1xcdTY4RkFcXHU2QjNFXFx1NzA0Q1xcdTc0MkZcXHU3NEQ4XFx1N0JBMVxcdTdGNTBcXHU4M0M1XFx1ODlDMFxcdThDQUJcXHU5NURDXFx1OTkyOFxcdTUyMkVcXHU2MDVEXFx1NjJFQ1xcdTkwMDJcXHU0RjhBXFx1NTE0OVxcdTUzMjFcXHU1OEQ5XFx1NUVFM1xcdTY2RTBcXHU2RDM4XFx1NzA5QVxcdTcyQzJcXHU3M0Q2XFx1N0I1MFxcdTgwRjFcXHU5NDVCXFx1NTM2NlxcdTYzOUJcXHU3RjZCXFx1NEU1NlxcdTUwODBcXHU1ODRBXFx1NThERVxcdTYwMkFcXHU2MTI3XFx1NjJEMFxcdTY5RDBcXHU5QjQxXFx1NUI4RlxcdTdEMThcXHU4MEIxXFx1OEY1RlxcdTRFQTRcXHU1MEQxXFx1NTRBQ1xcdTU1QUNcXHU1QjBDXFx1NURBMFxcdTVERTdcXHU2NTJBXFx1NjU0RVxcdTY4MjFcXHU2QTRCXFx1NzJFMVxcdTc2OEVcXHU3N0VGXFx1N0Q1RVxcdTdGRjlcXHU4MUEwXFx1ODU0RVxcdTg2REZcXHU4RjAzXFx1OEY0RVxcdTkwQ0FcXHU5OTAzXFx1OUE1NVxcdTlCQUJcXHU0RTE4XFx1NEU0NVxcdTRFNURcXHU0RUM3XFx1NEZGMVxcdTUxNzdcXHU1MkZFXCJdLFxuICAgICAgW1wiY2ZhMVwiLCBcIlxcdTUzNDBcXHU1M0UzXFx1NTNFNVxcdTU0OEVcXHU1NjE0XFx1NTc3NVxcdTU3QTJcXHU1QkM3XFx1NUQ4N1xcdTVFRDBcXHU2MUZDXFx1NjJEOFxcdTY1NTFcXHU2N0I4XFx1NjdFOVxcdTY5Q0JcXHU2QjUwXFx1NkJDNlxcdTZCRUNcXHU2QzQyXFx1NkU5RFxcdTcwNzhcXHU3MkQ3XFx1NzM5NlxcdTc0MDNcXHU3N0JGXFx1NzdFOVxcdTdBNzZcXHU3RDdGXFx1ODAwOVxcdTgxRkNcXHU4MjA1XFx1ODIwQVxcdTgyREZcXHU4ODYyXFx1OEIzM1xcdThDRkNcXHU4RUMwXFx1OTAxMVxcdTkwQjFcXHU5MjY0XFx1OTJCNlxcdTk5RDJcXHU5QTQ1XFx1OUNFOVxcdTlERDdcXHU5RjlDXFx1NTcwQlxcdTVDNDBcXHU4M0NBXFx1OTdBMFxcdTk3QUJcXHU5RUI0XFx1NTQxQlxcdTdBOThcXHU3RkE0XFx1ODhEOVxcdThFQ0RcXHU5MEUxXFx1NTgwMFxcdTVDNDhcXHU2Mzk4XFx1N0E5RlxcdTVCQUVcXHU1RjEzXFx1N0E3OVxcdTdBQUVcXHU4MjhFXFx1OEVBQ1xcdTUwMjZcXHU1MjM4XFx1NTJGOFxcdTUzNzdcXHU1NzA4XFx1NjJGM1xcdTYzNzJcXHU2QjBBXFx1NkRDM1xcdTc3MzdcXHU1M0E1XFx1NzM1N1xcdTg1NjhcXHU4RTc2XFx1OTVENVxcdTY3M0FcXHU2QUMzXFx1NkY3MFxcdThBNkRcXHU4RUNDXFx1OTk0QlxcdUY5MDZcXHU2Njc3XFx1NkI3OFxcdThDQjRcIl0sXG4gICAgICBbXCJkMGExXCIsIFwiXFx1OUIzQ1xcdUY5MDdcXHU1M0VCXFx1NTcyRFxcdTU5NEVcXHU2M0M2XFx1NjlGQlxcdTczRUFcXHU3ODQ1XFx1N0FCQVxcdTdBQzVcXHU3Q0ZFXFx1ODQ3NVxcdTg5OEZcXHU4RDczXFx1OTAzNVxcdTk1QThcXHU1MkZCXFx1NTc0N1xcdTc1NDdcXHU3QjYwXFx1ODNDQ1xcdTkyMUVcXHVGOTA4XFx1NkE1OFxcdTUxNEJcXHU1MjRCXFx1NTI4N1xcdTYyMUZcXHU2OEQ4XFx1Njk3NVxcdTk2OTlcXHU1MEM1XFx1NTJBNFxcdTUyRTRcXHU2MUMzXFx1NjVBNFxcdTY4MzlcXHU2OUZGXFx1NzQ3RVxcdTdCNEJcXHU4MkI5XFx1ODNFQlxcdTg5QjJcXHU4QjM5XFx1OEZEMVxcdTk5NDlcXHVGOTA5XFx1NEVDQVxcdTU5OTdcXHU2NEQyXFx1NjYxMVxcdTZBOEVcXHU3NDM0XFx1Nzk4MVxcdTc5QkRcXHU4MkE5XFx1ODg3RVxcdTg4N0ZcXHU4OTVGXFx1RjkwQVxcdTkzMjZcXHU0RjBCXFx1NTNDQVxcdTYwMjVcXHU2MjcxXFx1NkM3MlxcdTdEMUFcXHU3RDY2XFx1NEU5OFxcdTUxNjJcXHU3N0RDXFx1ODBBRlxcdTRGMDFcXHU0RjBFXFx1NTE3NlxcdTUxODBcXHU1NURDXFx1NTY2OFxcdTU3M0JcXHU1N0ZBXFx1NTdGQ1xcdTU5MTRcXHU1OTQ3XFx1NTk5M1xcdTVCQzRcXHU1QzkwXFx1NUQwRVxcdTVERjFcXHU1RTdFXFx1NUZDQ1xcdTYyODBcXHU2NUQ3XFx1NjVFM1wiXSxcbiAgICAgIFtcImQxYTFcIiwgXCJcXHU2NzFFXFx1NjcxRlxcdTY3NUVcXHU2OENCXFx1NjhDNFxcdTZBNUZcXHU2QjNBXFx1NkMyM1xcdTZDN0RcXHU2QzgyXFx1NkRDN1xcdTczOThcXHU3NDI2XFx1NzQyQVxcdTc0ODJcXHU3NEEzXFx1NzU3OFxcdTc1N0ZcXHU3ODgxXFx1NzhFRlxcdTc5NDFcXHU3OTQ3XFx1Nzk0OFxcdTc5N0FcXHU3Qjk1XFx1N0QwMFxcdTdEQkFcXHU3Rjg4XFx1ODAwNlxcdTgwMkRcXHU4MDhDXFx1OEExOFxcdThCNEZcXHU4QzQ4XFx1OEQ3N1xcdTkzMjFcXHU5MzI0XFx1OThFMlxcdTk5NTFcXHU5QTBFXFx1OUEwRlxcdTlBNjVcXHU5RTkyXFx1N0RDQVxcdTRGNzZcXHU1NDA5XFx1NjJFRVxcdTY4NTRcXHU5MUQxXFx1NTVBQlxcdTUxM0FcXHVGOTBCXFx1RjkwQ1xcdTVBMUNcXHU2MUU2XFx1RjkwRFxcdTYyQ0ZcXHU2MkZGXFx1RjkwRVwiLCA1LCBcIlxcdTkwQTNcXHVGOTE0XCIsIDQsIFwiXFx1OEFGRVxcdUY5MTlcXHVGOTFBXFx1RjkxQlxcdUY5MUNcXHU2Njk2XFx1RjkxRFxcdTcxNTZcXHVGOTFFXFx1RjkxRlxcdTk2RTNcXHVGOTIwXFx1NjM0RlxcdTYzN0FcXHU1MzU3XFx1RjkyMVxcdTY3OEZcXHU2OTYwXFx1NkU3M1xcdUY5MjJcXHU3NTM3XFx1RjkyM1xcdUY5MjRcXHVGOTI1XCJdLFxuICAgICAgW1wiZDJhMVwiLCBcIlxcdTdEMERcXHVGOTI2XFx1RjkyN1xcdTg4NzJcXHU1NkNBXFx1NUExOFxcdUY5MjhcIiwgNCwgXCJcXHU0RTQzXFx1RjkyRFxcdTUxNjdcXHU1OTQ4XFx1NjdGMFxcdTgwMTBcXHVGOTJFXFx1NTk3M1xcdTVFNzRcXHU2NDlBXFx1NzlDQVxcdTVGRjVcXHU2MDZDXFx1NjJDOFxcdTYzN0JcXHU1QkU3XFx1NUJEN1xcdTUyQUFcXHVGOTJGXFx1NTk3NFxcdTVGMjlcXHU2MDEyXFx1RjkzMFxcdUY5MzFcXHVGOTMyXFx1NzQ1OVxcdUY5MzNcIiwgNSwgXCJcXHU5OUQxXFx1RjkzOVwiLCAxMCwgXCJcXHU2RkMzXFx1Rjk0NFxcdUY5NDVcXHU4MUJGXFx1OEZCMlxcdTYwRjFcXHVGOTQ2XFx1Rjk0N1xcdTgxNjZcXHVGOTQ4XFx1Rjk0OVxcdTVDM0ZcXHVGOTRBXCIsIDcsIFwiXFx1NUFFOVxcdThBMjVcXHU2NzdCXFx1N0QxMFxcdUY5NTJcIiwgNSwgXCJcXHU4MEZEXFx1Rjk1OFxcdUY5NTlcXHU1QzNDXFx1NkNFNVxcdTUzM0ZcXHU2RUJBXFx1NTkxQVxcdTgzMzZcIl0sXG4gICAgICBbXCJkM2ExXCIsIFwiXFx1NEUzOVxcdTRFQjZcXHU0RjQ2XFx1NTVBRVxcdTU3MThcXHU1OEM3XFx1NUY1NlxcdTY1QjdcXHU2NUU2XFx1NkE4MFxcdTZCQjVcXHU2RTREXFx1NzdFRFxcdTdBRUZcXHU3QzFFXFx1N0RERVxcdTg2Q0JcXHU4ODkyXFx1OTEzMlxcdTkzNUJcXHU2NEJCXFx1NkZCRVxcdTczN0FcXHU3NUI4XFx1OTA1NFxcdTU1NTZcXHU1NzREXFx1NjFCQVxcdTY0RDRcXHU2NkM3XFx1NkRFMVxcdTZFNUJcXHU2RjZEXFx1NkZCOVxcdTc1RjBcXHU4MDQzXFx1ODFCRFxcdTg1NDFcXHU4OTgzXFx1OEFDN1xcdThCNUFcXHU5MzFGXFx1NkM5M1xcdTc1NTNcXHU3QjU0XFx1OEUwRlxcdTkwNURcXHU1NTEwXFx1NTgwMlxcdTU4NThcXHU1RTYyXFx1NjIwN1xcdTY0OUVcXHU2OEUwXFx1NzU3NlxcdTdDRDZcXHU4N0IzXFx1OUVFOFxcdTRFRTNcXHU1Nzg4XFx1NTc2RVxcdTU5MjdcXHU1QzBEXFx1NUNCMVxcdTVFMzZcXHU1Rjg1XFx1NjIzNFxcdTY0RTFcXHU3M0IzXFx1ODFGQVxcdTg4OEJcXHU4Q0I4XFx1OTY4QVxcdTlFREJcXHU1Qjg1XFx1NUZCN1xcdTYwQjNcXHU1MDEyXFx1NTIwMFxcdTUyMzBcXHU1NzE2XFx1NTgzNVxcdTU4NTdcXHU1QzBFXFx1NUM2MFxcdTVDRjZcXHU1RDhCXFx1NUVBNlxcdTVGOTJcXHU2MEJDXFx1NjMxMVxcdTYzODlcXHU2NDE3XFx1Njg0M1wiXSxcbiAgICAgIFtcImQ0YTFcIiwgXCJcXHU2OEY5XFx1NkFDMlxcdTZERDhcXHU2RTIxXFx1NkVENFxcdTZGRTRcXHU3MUZFXFx1NzZEQ1xcdTc3NzlcXHU3OUIxXFx1N0EzQlxcdTg0MDRcXHU4OUE5XFx1OENFRFxcdThERjNcXHU4RTQ4XFx1OTAwM1xcdTkwMTRcXHU5MDUzXFx1OTBGRFxcdTkzNERcXHU5Njc2XFx1OTdEQ1xcdTZCRDJcXHU3MDA2XFx1NzI1OFxcdTcyQTJcXHU3MzY4XFx1Nzc2M1xcdTc5QkZcXHU3QkU0XFx1N0U5QlxcdThCODBcXHU1OEE5XFx1NjBDN1xcdTY1NjZcXHU2NUZEXFx1NjZCRVxcdTZDOENcXHU3MTFFXFx1NzFDOVxcdThDNUFcXHU5ODEzXFx1NEU2RFxcdTdBODFcXHU0RUREXFx1NTFBQ1xcdTUxQ0RcXHU1MkQ1XFx1NTQwQ1xcdTYxQTdcXHU2NzcxXFx1Njg1MFxcdTY4REZcXHU2RDFFXFx1NkY3Q1xcdTc1QkNcXHU3N0IzXFx1N0FFNVxcdTgwRjRcXHU4NDYzXFx1OTI4NVxcdTUxNUNcXHU2NTk3XFx1Njc1Q1xcdTY3OTNcXHU3NUQ4XFx1N0FDN1xcdTgzNzNcXHVGOTVBXFx1OEM0NlxcdTkwMTdcXHU5ODJEXFx1NUM2RlxcdTgxQzBcXHU4MjlBXFx1OTA0MVxcdTkwNkZcXHU5MjBEXFx1NUY5N1xcdTVEOURcXHU2QTU5XFx1NzFDOFxcdTc2N0JcXHU3QjQ5XFx1ODVFNFxcdThCMDRcXHU5MTI3XFx1OUEzMFxcdTU1ODdcXHU2MUY2XFx1Rjk1QlxcdTc2NjlcXHU3Rjg1XCJdLFxuICAgICAgW1wiZDVhMVwiLCBcIlxcdTg2M0ZcXHU4N0JBXFx1ODhGOFxcdTkwOEZcXHVGOTVDXFx1NkQxQlxcdTcwRDlcXHU3M0RFXFx1N0Q2MVxcdTg0M0RcXHVGOTVEXFx1OTE2QVxcdTk5RjFcXHVGOTVFXFx1NEU4MlxcdTUzNzVcXHU2QjA0XFx1NkIxMlxcdTcwM0VcXHU3MjFCXFx1ODYyRFxcdTlFMUVcXHU1MjRDXFx1OEZBM1xcdTVENTBcXHU2NEU1XFx1NjUyQ1xcdTZCMTZcXHU2RkVCXFx1N0M0M1xcdTdFOUNcXHU4NUNEXFx1ODk2NFxcdTg5QkRcXHU2MkM5XFx1ODFEOFxcdTg4MUZcXHU1RUNBXFx1NjcxN1xcdTZENkFcXHU3MkZDXFx1NzQwNVxcdTc0NkZcXHU4NzgyXFx1OTBERVxcdTRGODZcXHU1RDBEXFx1NUZBMFxcdTg0MEFcXHU1MUI3XFx1NjNBMFxcdTc1NjVcXHU0RUFFXFx1NTAwNlxcdTUxNjlcXHU1MUM5XFx1Njg4MVxcdTZBMTFcXHU3Q0FFXFx1N0NCMVxcdTdDRTdcXHU4MjZGXFx1OEFEMlxcdThGMUJcXHU5MUNGXFx1NEZCNlxcdTUxMzdcXHU1MkY1XFx1NTQ0MlxcdTVFRUNcXHU2MTZFXFx1NjIzRVxcdTY1QzVcXHU2QURBXFx1NkZGRVxcdTc5MkFcXHU4NURDXFx1ODgyM1xcdTk1QURcXHU5QTYyXFx1OUE2QVxcdTlFOTdcXHU5RUNFXFx1NTI5QlxcdTY2QzZcXHU2Qjc3XFx1NzAxRFxcdTc5MkJcXHU4RjYyXFx1OTc0MlxcdTYxOTBcXHU2MjAwXFx1NjUyM1xcdTZGMjNcIl0sXG4gICAgICBbXCJkNmExXCIsIFwiXFx1NzE0OVxcdTc0ODlcXHU3REY0XFx1ODA2RlxcdTg0RUVcXHU4RjI2XFx1OTAyM1xcdTkzNEFcXHU1MUJEXFx1NTIxN1xcdTUyQTNcXHU2RDBDXFx1NzBDOFxcdTg4QzJcXHU1RUM5XFx1NjU4MlxcdTZCQUVcXHU2RkMyXFx1N0MzRVxcdTczNzVcXHU0RUU0XFx1NEYzNlxcdTU2RjlcXHVGOTVGXFx1NUNCQVxcdTVEQkFcXHU2MDFDXFx1NzNCMlxcdTdCMkRcXHU3RjlBXFx1N0ZDRVxcdTgwNDZcXHU5MDFFXFx1OTIzNFxcdTk2RjZcXHU5NzQ4XFx1OTgxOFxcdTlGNjFcXHU0RjhCXFx1NkZBN1xcdTc5QUVcXHU5MUI0XFx1OTZCN1xcdTUyREVcXHVGOTYwXFx1NjQ4OFxcdTY0QzRcXHU2QUQzXFx1NkY1RVxcdTcwMThcXHU3MjEwXFx1NzZFN1xcdTgwMDFcXHU4NjA2XFx1ODY1Q1xcdThERUZcXHU4RjA1XFx1OTczMlxcdTlCNkZcXHU5REZBXFx1OUU3NVxcdTc4OENcXHU3OTdGXFx1N0RBMFxcdTgzQzlcXHU5MzA0XFx1OUU3RlxcdTlFOTNcXHU4QUQ2XFx1NThERlxcdTVGMDRcXHU2NzI3XFx1NzAyN1xcdTc0Q0ZcXHU3QzYwXFx1ODA3RVxcdTUxMjFcXHU3MDI4XFx1NzI2MlxcdTc4Q0FcXHU4Q0MyXFx1OENEQVxcdThDRjRcXHU5NkY3XFx1NEU4NlxcdTUwREFcXHU1QkVFXFx1NUVENlxcdTY1OTlcXHU3MUNFXFx1NzY0MlxcdTc3QURcXHU4MDRBXFx1ODRGQ1wiXSxcbiAgICAgIFtcImQ3YTFcIiwgXCJcXHU5MDdDXFx1OUIyN1xcdTlGOERcXHU1OEQ4XFx1NUE0MVxcdTVDNjJcXHU2QTEzXFx1NkREQVxcdTZGMEZcXHU3NjNCXFx1N0QyRlxcdTdFMzdcXHU4NTFFXFx1ODkzOFxcdTkzRTRcXHU5NjRCXFx1NTI4OVxcdTY1RDJcXHU2N0YzXFx1NjlCNFxcdTZENDFcXHU2RTlDXFx1NzAwRlxcdTc0MDlcXHU3NDYwXFx1NzU1OVxcdTc2MjRcXHU3ODZCXFx1OEIyQ1xcdTk4NUVcXHU1MTZEXFx1NjIyRVxcdTk2NzhcXHU0Rjk2XFx1NTAyQlxcdTVEMTlcXHU2REVBXFx1N0RCOFxcdThGMkFcXHU1RjhCXFx1NjE0NFxcdTY4MTdcXHVGOTYxXFx1OTY4NlxcdTUyRDJcXHU4MDhCXFx1NTFEQ1xcdTUxQ0NcXHU2OTVFXFx1N0ExQ1xcdTdEQkVcXHU4M0YxXFx1OTY3NVxcdTRGREFcXHU1MjI5XFx1NTM5OFxcdTU0MEZcXHU1NTBFXFx1NUM2NVxcdTYwQTdcXHU2NzRFXFx1NjhBOFxcdTZENkNcXHU3MjgxXFx1NzJGOFxcdTc0MDZcXHU3NDgzXFx1Rjk2MlxcdTc1RTJcXHU3QzZDXFx1N0Y3OVxcdTdGQjhcXHU4Mzg5XFx1ODhDRlxcdTg4RTFcXHU5MUNDXFx1OTFEMFxcdTk2RTJcXHU5QkM5XFx1NTQxRFxcdTZGN0VcXHU3MUQwXFx1NzQ5OFxcdTg1RkFcXHU4RUFBXFx1OTZBM1xcdTlDNTdcXHU5RTlGXFx1Njc5N1xcdTZEQ0JcXHU3NDMzXFx1ODFFOFxcdTk3MTZcXHU3ODJDXCJdLFxuICAgICAgW1wiZDhhMVwiLCBcIlxcdTdBQ0JcXHU3QjIwXFx1N0M5MlxcdTY0NjlcXHU3NDZBXFx1NzVGMlxcdTc4QkNcXHU3OEU4XFx1OTlBQ1xcdTlCNTRcXHU5RUJCXFx1NUJERVxcdTVFNTVcXHU2RjIwXFx1ODE5Q1xcdTgzQUJcXHU5MDg4XFx1NEUwN1xcdTUzNERcXHU1QTI5XFx1NUREMlxcdTVGNEVcXHU2MTYyXFx1NjMzRFxcdTY2NjlcXHU2NkZDXFx1NkVGRlxcdTZGMkJcXHU3MDYzXFx1Nzc5RVxcdTg0MkNcXHU4NTEzXFx1ODgzQlxcdThGMTNcXHU5OTQ1XFx1OUMzQlxcdTU1MUNcXHU2MkI5XFx1NjcyQlxcdTZDQUJcXHU4MzA5XFx1ODk2QVxcdTk3N0FcXHU0RUExXFx1NTk4NFxcdTVGRDhcXHU1RkQ5XFx1NjcxQlxcdTdEQjJcXHU3RjU0XFx1ODI5MlxcdTgzMkJcXHU4M0JEXFx1OEYxRVxcdTkwOTlcXHU1N0NCXFx1NTlCOVxcdTVBOTJcXHU1QkQwXFx1NjYyN1xcdTY3OUFcXHU2ODg1XFx1NkJDRlxcdTcxNjRcXHU3Rjc1XFx1OENCN1xcdThDRTNcXHU5MDgxXFx1OUI0NVxcdTgxMDhcXHU4QzhBXFx1OTY0Q1xcdTlBNDBcXHU5RUE1XFx1NUI1RlxcdTZDMTNcXHU3MzFCXFx1NzZGMlxcdTc2REZcXHU4NDBDXFx1NTFBQVxcdTg5OTNcXHU1MTREXFx1NTE5NVxcdTUyQzlcXHU2OEM5XFx1NkM5NFxcdTc3MDRcXHU3NzIwXFx1N0RCRlxcdTdERUNcXHU5NzYyXFx1OUVCNVxcdTZFQzVcIl0sXG4gICAgICBbXCJkOWExXCIsIFwiXFx1ODUxMVxcdTUxQTVcXHU1NDBEXFx1NTQ3RFxcdTY2MEVcXHU2NjlEXFx1NjkyN1xcdTZFOUZcXHU3NkJGXFx1Nzc5MVxcdTgzMTdcXHU4NEMyXFx1ODc5RlxcdTkxNjlcXHU5Mjk4XFx1OUNGNFxcdTg4ODJcXHU0RkFFXFx1NTE5MlxcdTUyREZcXHU1OUM2XFx1NUUzRFxcdTYxNTVcXHU2NDc4XFx1NjQ3OVxcdTY2QUVcXHU2N0QwXFx1NkEyMVxcdTZCQ0RcXHU2QkRCXFx1NzI1RlxcdTcyNjFcXHU3NDQxXFx1NzczOFxcdTc3REJcXHU4MDE3XFx1ODJCQ1xcdTgzMDVcXHU4QjAwXFx1OEIyOFxcdThDOENcXHU2NzI4XFx1NkM5MFxcdTcyNjdcXHU3NkVFXFx1Nzc2NlxcdTdBNDZcXHU5REE5XFx1NkI3RlxcdTZDOTJcXHU1OTIyXFx1NjcyNlxcdTg0OTlcXHU1MzZGXFx1NTg5M1xcdTU5OTlcXHU1RURGXFx1NjNDRlxcdTY2MzRcXHU2NzczXFx1NkUzQVxcdTczMkJcXHU3QUQ3XFx1ODJEN1xcdTkzMjhcXHU1MkQ5XFx1NURFQlxcdTYxQUVcXHU2MUNCXFx1NjIwQVxcdTYyQzdcXHU2NEFCXFx1NjVFMFxcdTY5NTlcXHU2QjY2XFx1NkJDQlxcdTcxMjFcXHU3M0Y3XFx1NzU1RFxcdTdFNDZcXHU4MjFFXFx1ODMwMlxcdTg1NkFcXHU4QUEzXFx1OENCRlxcdTk3MjdcXHU5RDYxXFx1NThBOFxcdTlFRDhcXHU1MDExXFx1NTIwRVxcdTU0M0JcXHU1NTRGXFx1NjU4N1wiXSxcbiAgICAgIFtcImRhYTFcIiwgXCJcXHU2Qzc2XFx1N0QwQVxcdTdEMEJcXHU4MDVFXFx1ODY4QVxcdTk1ODBcXHU5NkVGXFx1NTJGRlxcdTZDOTVcXHU3MjY5XFx1NTQ3M1xcdTVBOUFcXHU1QzNFXFx1NUQ0QlxcdTVGNENcXHU1RkFFXFx1NjcyQVxcdTY4QjZcXHU2OTYzXFx1NkUzQ1xcdTZFNDRcXHU3NzA5XFx1N0M3M1xcdTdGOEVcXHU4NTg3XFx1OEIwRVxcdThGRjdcXHU5NzYxXFx1OUVGNFxcdTVDQjdcXHU2MEI2XFx1NjEwRFxcdTYxQUJcXHU2NTRGXFx1NjVGQlxcdTY1RkNcXHU2QzExXFx1NkNFRlxcdTczOUZcXHU3M0M5XFx1N0RFMVxcdTk1OTRcXHU1QkM2XFx1ODcxQ1xcdThCMTBcXHU1MjVEXFx1NTM1QVxcdTYyQ0RcXHU2NDBGXFx1NjRCMlxcdTY3MzRcXHU2QTM4XFx1NkNDQVxcdTczQzBcXHU3NDlFXFx1N0I5NFxcdTdDOTVcXHU3RTFCXFx1ODE4QVxcdTgyMzZcXHU4NTg0XFx1OEZFQlxcdTk2RjlcXHU5OUMxXFx1NEYzNFxcdTUzNEFcXHU1M0NEXFx1NTNEQlxcdTYyQ0NcXHU2NDJDXFx1NjUwMFxcdTY1OTFcXHU2OUMzXFx1NkNFRVxcdTZGNThcXHU3M0VEXFx1NzU1NFxcdTc2MjJcXHU3NkU0XFx1NzZGQ1xcdTc4RDBcXHU3OEZCXFx1NzkyQ1xcdTdENDZcXHU4MjJDXFx1ODdFMFxcdThGRDRcXHU5ODEyXFx1OThFRlxcdTUyQzNcXHU2MkQ0XFx1NjRBNVxcdTZFMjRcXHU2RjUxXCJdLFxuICAgICAgW1wiZGJhMVwiLCBcIlxcdTc2N0NcXHU4RENCXFx1OTFCMVxcdTkyNjJcXHU5QUVFXFx1OUI0M1xcdTUwMjNcXHU1MDhEXFx1NTc0QVxcdTU5QThcXHU1QzI4XFx1NUU0N1xcdTVGNzdcXHU2MjNGXFx1NjUzRVxcdTY1QjlcXHU2NUMxXFx1NjYwOVxcdTY3OEJcXHU2OTlDXFx1NkVDMlxcdTc4QzVcXHU3RDIxXFx1ODBBQVxcdTgxODBcXHU4MjJCXFx1ODJCM1xcdTg0QTFcXHU4NjhDXFx1OEEyQVxcdThCMTdcXHU5MEE2XFx1OTYzMlxcdTlGOTBcXHU1MDBEXFx1NEZGM1xcdUY5NjNcXHU1N0Y5XFx1NUY5OFxcdTYyRENcXHU2MzkyXFx1Njc2RlxcdTZFNDNcXHU3MTE5XFx1NzZDM1xcdTgwQ0NcXHU4MERBXFx1ODhGNFxcdTg4RjVcXHU4OTE5XFx1OENFMFxcdThGMjlcXHU5MTREXFx1OTY2QVxcdTRGMkZcXHU0RjcwXFx1NUUxQlxcdTY3Q0ZcXHU2ODIyXFx1NzY3RFxcdTc2N0VcXHU5QjQ0XFx1NUU2MVxcdTZBMEFcXHU3MTY5XFx1NzFENFxcdTc1NkFcXHVGOTY0XFx1N0U0MVxcdTg1NDNcXHU4NUU5XFx1OThEQ1xcdTRGMTBcXHU3QjRGXFx1N0Y3MFxcdTk1QTVcXHU1MUUxXFx1NUUwNlxcdTY4QjVcXHU2QzNFXFx1NkM0RVxcdTZDREJcXHU3MkFGXFx1N0JDNFxcdTgzMDNcXHU2Q0Q1XFx1NzQzQVxcdTUwRkJcXHU1Mjg4XFx1NThDMVxcdTY0RDhcXHU2QTk3XFx1NzRBN1xcdTc2NTZcIl0sXG4gICAgICBbXCJkY2ExXCIsIFwiXFx1NzhBN1xcdTg2MTdcXHU5NUUyXFx1OTczOVxcdUY5NjVcXHU1MzVFXFx1NUYwMVxcdThCOEFcXHU4RkE4XFx1OEZBRlxcdTkwOEFcXHU1MjI1XFx1NzdBNVxcdTlDNDlcXHU5RjA4XFx1NEUxOVxcdTUwMDJcXHU1MTc1XFx1NUM1QlxcdTVFNzdcXHU2NjFFXFx1NjYzQVxcdTY3QzRcXHU2OEM1XFx1NzBCM1xcdTc1MDFcXHU3NUM1XFx1NzlDOVxcdTdBRERcXHU4RjI3XFx1OTkyMFxcdTlBMDhcXHU0RkREXFx1NTgyMVxcdTU4MzFcXHU1QkY2XFx1NjY2RVxcdTZCNjVcXHU2RDExXFx1NkU3QVxcdTZGN0RcXHU3M0U0XFx1NzUyQlxcdTgzRTlcXHU4OERDXFx1ODkxM1xcdThCNUNcXHU4RjE0XFx1NEYwRlxcdTUwRDVcXHU1MzEwXFx1NTM1Q1xcdTVCOTNcXHU1RkE5XFx1NjcwRFxcdTc5OEZcXHU4MTc5XFx1ODMyRlxcdTg1MTRcXHU4OTA3XFx1ODk4NlxcdThGMzlcXHU4RjNCXFx1OTlBNVxcdTlDMTJcXHU2NzJDXFx1NEU3NlxcdTRGRjhcXHU1OTQ5XFx1NUMwMVxcdTVDRUZcXHU1Q0YwXFx1NjM2N1xcdTY4RDJcXHU3MEZEXFx1NzFBMlxcdTc0MkJcXHU3RTJCXFx1ODRFQ1xcdTg3MDJcXHU5MDIyXFx1OTJEMlxcdTlDRjNcXHU0RTBEXFx1NEVEOFxcdTRGRUZcXHU1MDg1XFx1NTI1NlxcdTUyNkZcXHU1NDI2XFx1NTQ5MFxcdTU3RTBcXHU1OTJCXFx1NUE2NlwiXSxcbiAgICAgIFtcImRkYTFcIiwgXCJcXHU1QjVBXFx1NUI3NVxcdTVCQ0NcXHU1RTlDXFx1Rjk2NlxcdTYyNzZcXHU2NTc3XFx1NjVBN1xcdTZENkVcXHU2RUE1XFx1NzIzNlxcdTdCMjZcXHU3QzNGXFx1N0YzNlxcdTgxNTBcXHU4MTUxXFx1ODE5QVxcdTgyNDBcXHU4Mjk5XFx1ODNBOVxcdThBMDNcXHU4Q0EwXFx1OENFNlxcdThDRkJcXHU4RDc0XFx1OERCQVxcdTkwRThcXHU5MURDXFx1OTYxQ1xcdTk2NDRcXHU5OUQ5XFx1OUNFN1xcdTUzMTdcXHU1MjA2XFx1NTQyOVxcdTU2NzRcXHU1OEIzXFx1NTk1NFxcdTU5NkVcXHU1RkZGXFx1NjFBNFxcdTYyNkVcXHU2NjEwXFx1NkM3RVxcdTcxMUFcXHU3NkM2XFx1N0M4OVxcdTdDREVcXHU3RDFCXFx1ODJBQ1xcdThDQzFcXHU5NkYwXFx1Rjk2N1xcdTRGNUJcXHU1RjE3XFx1NUY3RlxcdTYyQzJcXHU1RDI5XFx1NjcwQlxcdTY4REFcXHU3ODdDXFx1N0U0M1xcdTlENkNcXHU0RTE1XFx1NTA5OVxcdTUzMTVcXHU1MzJBXFx1NTM1MVxcdTU5ODNcXHU1QTYyXFx1NUU4N1xcdTYwQjJcXHU2MThBXFx1NjI0OVxcdTYyNzlcXHU2NTkwXFx1Njc4N1xcdTY5QTdcXHU2QkQ0XFx1NkJENlxcdTZCRDdcXHU2QkQ4XFx1NkNCOFxcdUY5NjhcXHU3NDM1XFx1NzVGQVxcdTc4MTJcXHU3ODkxXFx1NzlENVxcdTc5RDhcXHU3QzgzXFx1N0RDQlxcdTdGRTFcXHU4MEE1XCJdLFxuICAgICAgW1wiZGVhMVwiLCBcIlxcdTgxM0VcXHU4MUMyXFx1ODNGMlxcdTg3MUFcXHU4OEU4XFx1OEFCOVxcdThCNkNcXHU4Q0JCXFx1OTExOVxcdTk3NUVcXHU5OERCXFx1OUYzQlxcdTU2QUNcXHU1QjJBXFx1NUY2Q1xcdTY1OENcXHU2QUIzXFx1NkJBRlxcdTZENUNcXHU2RkYxXFx1NzAxNVxcdTcyNURcXHU3M0FEXFx1OENBN1xcdThDRDNcXHU5ODNCXFx1NjE5MVxcdTZDMzdcXHU4MDU4XFx1OUEwMVxcdTRFNERcXHU0RThCXFx1NEU5QlxcdTRFRDVcXHU0RjNBXFx1NEYzQ1xcdTRGN0ZcXHU0RkRGXFx1NTBGRlxcdTUzRjJcXHU1M0Y4XFx1NTUwNlxcdTU1RTNcXHU1NkRCXFx1NThFQlxcdTU5NjJcXHU1QTExXFx1NUJFQlxcdTVCRkFcXHU1QzA0XFx1NURGM1xcdTVFMkJcXHU1Rjk5XFx1NjAxRFxcdTYzNjhcXHU2NTlDXFx1NjVBRlxcdTY3RjZcXHU2N0ZCXFx1NjhBRFxcdTZCN0JcXHU2Qzk5XFx1NkNEN1xcdTZFMjNcXHU3MDA5XFx1NzM0NVxcdTc4MDJcXHU3OTNFXFx1Nzk0MFxcdTc5NjBcXHU3OUMxXFx1N0JFOVxcdTdEMTdcXHU3RDcyXFx1ODA4NlxcdTgyMERcXHU4MzhFXFx1ODREMVxcdTg2QzdcXHU4OERGXFx1OEE1MFxcdThBNUVcXHU4QjFEXFx1OENEQ1xcdThENjZcXHU4RkFEXFx1OTBBQVxcdTk4RkNcXHU5OURGXFx1OUU5RFxcdTUyNEFcXHVGOTY5XFx1NjcxNFxcdUY5NkFcIl0sXG4gICAgICBbXCJkZmExXCIsIFwiXFx1NTA5OFxcdTUyMkFcXHU1QzcxXFx1NjU2M1xcdTZDNTVcXHU3M0NBXFx1NzUyM1xcdTc1OURcXHU3Qjk3XFx1ODQ5Q1xcdTkxNzhcXHU5NzMwXFx1NEU3N1xcdTY0OTJcXHU2QkJBXFx1NzE1RVxcdTg1QTlcXHU0RTA5XFx1Rjk2QlxcdTY3NDlcXHU2OEVFXFx1NkUxN1xcdTgyOUZcXHU4NTE4XFx1ODg2QlxcdTYzRjdcXHU2RjgxXFx1OTIxMlxcdTk4QUZcXHU0RTBBXFx1NTBCN1xcdTUwQ0ZcXHU1MTFGXFx1NTU0NlxcdTU1QUFcXHU1NjE3XFx1NUI0MFxcdTVDMTlcXHU1Q0UwXFx1NUUzOFxcdTVFOEFcXHU1RUEwXFx1NUVDMlxcdTYwRjNcXHU2ODUxXFx1NkE2MVxcdTZFNThcXHU3MjNEXFx1NzI0MFxcdTcyQzBcXHU3NkY4XFx1Nzk2NVxcdTdCQjFcXHU3RkQ0XFx1ODhGM1xcdTg5RjRcXHU4QTczXFx1OEM2MVxcdThDREVcXHU5NzFDXFx1NTg1RVxcdTc0QkRcXHU4Q0ZEXFx1NTVDN1xcdUY5NkNcXHU3QTYxXFx1N0QyMlxcdTgyNzJcXHU3MjcyXFx1NzUxRlxcdTc1MjVcXHVGOTZEXFx1N0IxOVxcdTU4ODVcXHU1OEZCXFx1NURCQ1xcdTVFOEZcXHU1RUI2XFx1NUY5MFxcdTYwNTVcXHU2MjkyXFx1NjM3RlxcdTY1NERcXHU2NjkxXFx1NjZEOVxcdTY2RjhcXHU2ODE2XFx1NjhGMlxcdTcyODBcXHU3NDVFXFx1N0I2RVxcdTdENkVcXHU3REQ2XFx1N0Y3MlwiXSxcbiAgICAgIFtcImUwYTFcIiwgXCJcXHU4MEU1XFx1ODIxMlxcdTg1QUZcXHU4OTdGXFx1OEE5M1xcdTkwMURcXHU5MkU0XFx1OUVDRFxcdTlGMjBcXHU1OTE1XFx1NTk2RFxcdTVFMkRcXHU2MERDXFx1NjYxNFxcdTY2NzNcXHU2NzkwXFx1NkM1MFxcdTZEQzVcXHU2RjVGXFx1NzdGM1xcdTc4QTlcXHU4NEM2XFx1OTFDQlxcdTkzMkJcXHU0RUQ5XFx1NTBDQVxcdTUxNDhcXHU1NTg0XFx1NUIwQlxcdTVCQTNcXHU2MjQ3XFx1NjU3RVxcdTY1Q0JcXHU2RTMyXFx1NzE3RFxcdTc0MDFcXHU3NDQ0XFx1NzQ4N1xcdTc0QkZcXHU3NjZDXFx1NzlBQVxcdTdEREFcXHU3RTU1XFx1N0ZBOFxcdTgxN0FcXHU4MUIzXFx1ODIzOVxcdTg2MUFcXHU4N0VDXFx1OEE3NVxcdThERTNcXHU5MDc4XFx1OTI5MVxcdTk0MjVcXHU5OTREXFx1OUJBRVxcdTUzNjhcXHU1QzUxXFx1Njk1NFxcdTZDQzRcXHU2RDI5XFx1NkUyQlxcdTgyMENcXHU4NTlCXFx1ODkzQlxcdThBMkRcXHU4QUFBXFx1OTZFQVxcdTlGNjdcXHU1MjYxXFx1NjZCOVxcdTZCQjJcXHU3RTk2XFx1ODdGRVxcdThEMERcXHU5NTgzXFx1OTY1RFxcdTY1MURcXHU2RDg5XFx1NzFFRVxcdUY5NkVcXHU1N0NFXFx1NTlEM1xcdTVCQUNcXHU2MDI3XFx1NjBGQVxcdTYyMTBcXHU2NjFGXFx1NjY1RlxcdTczMjlcXHU3M0Y5XFx1NzZEQlxcdTc3MDFcXHU3QjZDXCJdLFxuICAgICAgW1wiZTFhMVwiLCBcIlxcdTgwNTZcXHU4MDcyXFx1ODE2NVxcdThBQTBcXHU5MTkyXFx1NEUxNlxcdTUyRTJcXHU2QjcyXFx1NkQxN1xcdTdBMDVcXHU3QjM5XFx1N0QzMFxcdUY5NkZcXHU4Q0IwXFx1NTNFQ1xcdTU2MkZcXHU1ODUxXFx1NUJCNVxcdTVDMEZcXHU1QzExXFx1NURFMlxcdTYyNDBcXHU2MzgzXFx1NjQxNFxcdTY2MkRcXHU2OEIzXFx1NkNCQ1xcdTZEODhcXHU2RUFGXFx1NzAxRlxcdTcwQTRcXHU3MUQyXFx1NzUyNlxcdTc1OEZcXHU3NThFXFx1NzYxOVxcdTdCMTFcXHU3QkUwXFx1N0MyQlxcdTdEMjBcXHU3RDM5XFx1ODUyQ1xcdTg1NkRcXHU4NjA3XFx1OEEzNFxcdTkwMERcXHU5MDYxXFx1OTBCNVxcdTkyQjdcXHU5N0Y2XFx1OUEzN1xcdTRGRDdcXHU1QzZDXFx1Njc1RlxcdTZEOTFcXHU3QzlGXFx1N0U4Q1xcdThCMTZcXHU4RDE2XFx1OTAxRlxcdTVCNkJcXHU1REZEXFx1NjQwRFxcdTg0QzBcXHU5MDVDXFx1OThFMVxcdTczODdcXHU1QjhCXFx1NjA5QVxcdTY3N0VcXHU2RERFXFx1OEExRlxcdThBQTZcXHU5MDAxXFx1OTgwQ1xcdTUyMzdcXHVGOTcwXFx1NzA1MVxcdTc4OEVcXHU5Mzk2XFx1ODg3MFxcdTkxRDdcXHU0RkVFXFx1NTNEN1xcdTU1RkRcXHU1NkRBXFx1NTc4MlxcdTU4RkRcXHU1QUMyXFx1NUI4OFxcdTVDQUJcXHU1Q0MwXFx1NUUyNVxcdTYxMDFcIl0sXG4gICAgICBbXCJlMmExXCIsIFwiXFx1NjIwRFxcdTYyNEJcXHU2Mzg4XFx1NjQxQ1xcdTY1MzZcXHU2NTc4XFx1NkEzOVxcdTZCOEFcXHU2QzM0XFx1NkQxOVxcdTZGMzFcXHU3MUU3XFx1NzJFOVxcdTczNzhcXHU3NDA3XFx1NzRCMlxcdTc2MjZcXHU3NzYxXFx1NzlDMFxcdTdBNTdcXHU3QUVBXFx1N0NCOVxcdTdEOEZcXHU3REFDXFx1N0U2MVxcdTdGOUVcXHU4MTI5XFx1ODMzMVxcdTg0OTBcXHU4NERBXFx1ODVFQVxcdTg4OTZcXHU4QUIwXFx1OEI5MFxcdThGMzhcXHU5MDQyXFx1OTA4M1xcdTkxNkNcXHU5Mjk2XFx1OTJCOVxcdTk2OEJcXHU5NkE3XFx1OTZBOFxcdTk2RDZcXHU5NzAwXFx1OTgwOFxcdTk5OTZcXHU5QUQzXFx1OUIxQVxcdTUzRDRcXHU1ODdFXFx1NTkxOVxcdTVCNzBcXHU1QkJGXFx1NkREMVxcdTZGNUFcXHU3MTlGXFx1NzQyMVxcdTc0QjlcXHU4MDg1XFx1ODNGRFxcdTVERTFcXHU1Rjg3XFx1NUZBQVxcdTYwNDJcXHU2NUVDXFx1NjgxMlxcdTY5NkZcXHU2QTUzXFx1NkI4OVxcdTZEMzVcXHU2REYzXFx1NzNFM1xcdTc2RkVcXHU3N0FDXFx1N0I0RFxcdTdEMTRcXHU4MTIzXFx1ODIxQ1xcdTgzNDBcXHU4NEY0XFx1ODU2M1xcdThBNjJcXHU4QUM0XFx1OTE4N1xcdTkzMUVcXHU5ODA2XFx1OTlCNFxcdTYyMENcXHU4ODUzXFx1OEZGMFxcdTkyNjVcXHU1RDA3XFx1NUQyN1wiXSxcbiAgICAgIFtcImUzYTFcIiwgXCJcXHU1RDY5XFx1NzQ1RlxcdTgxOURcXHU4NzY4XFx1NkZENVxcdTYyRkVcXHU3RkQyXFx1ODkzNlxcdTg5NzJcXHU0RTFFXFx1NEU1OFxcdTUwRTdcXHU1MkREXFx1NTM0N1xcdTYyN0ZcXHU2NjA3XFx1N0U2OVxcdTg4MDVcXHU5NjVFXFx1NEY4RFxcdTUzMTlcXHU1NjM2XFx1NTlDQlxcdTVBQTRcXHU1QzM4XFx1NUM0RVxcdTVDNERcXHU1RTAyXFx1NUYxMVxcdTYwNDNcXHU2NUJEXFx1NjYyRlxcdTY2NDJcXHU2N0JFXFx1NjdGNFxcdTczMUNcXHU3N0UyXFx1NzkzQVxcdTdGQzVcXHU4NDk0XFx1ODRDRFxcdTg5OTZcXHU4QTY2XFx1OEE2OVxcdThBRTFcXHU4QzU1XFx1OEM3QVxcdTU3RjRcXHU1QkQ0XFx1NUYwRlxcdTYwNkZcXHU2MkVEXFx1NjkwRFxcdTZCOTZcXHU2RTVDXFx1NzE4NFxcdTdCRDJcXHU4NzU1XFx1OEI1OFxcdThFRkVcXHU5OERGXFx1OThGRVxcdTRGMzhcXHU0RjgxXFx1NEZFMVxcdTU0N0JcXHU1QTIwXFx1NUJCOFxcdTYxM0NcXHU2NUIwXFx1NjY2OFxcdTcxRkNcXHU3NTMzXFx1Nzk1RVxcdTdEMzNcXHU4MTRFXFx1ODFFM1xcdTgzOThcXHU4NUFBXFx1ODVDRVxcdTg3MDNcXHU4QTBBXFx1OEVBQlxcdThGOUJcXHVGOTcxXFx1OEZDNVxcdTU5MzFcXHU1QkE0XFx1NUJFNlxcdTYwODlcXHU1QkU5XFx1NUMwQlxcdTVGQzNcXHU2QzgxXCJdLFxuICAgICAgW1wiZTRhMVwiLCBcIlxcdUY5NzJcXHU2REYxXFx1NzAwQlxcdTc1MUFcXHU4MkFGXFx1OEFGNlxcdTRFQzBcXHU1MzQxXFx1Rjk3M1xcdTk2RDlcXHU2QzBGXFx1NEU5RVxcdTRGQzRcXHU1MTUyXFx1NTU1RVxcdTVBMjVcXHU1Q0U4XFx1NjIxMVxcdTcyNTlcXHU4MkJEXFx1ODNBQVxcdTg2RkVcXHU4ODU5XFx1OEExRFxcdTk2M0ZcXHU5NkM1XFx1OTkxM1xcdTlEMDlcXHU5RDVEXFx1NTgwQVxcdTVDQjNcXHU1REJEXFx1NUU0NFxcdTYwRTFcXHU2MTE1XFx1NjNFMVxcdTZBMDJcXHU2RTI1XFx1OTEwMlxcdTkzNTRcXHU5ODRFXFx1OUMxMFxcdTlGNzdcXHU1Qjg5XFx1NUNCOFxcdTYzMDlcXHU2NjRGXFx1Njg0OFxcdTc3M0NcXHU5NkMxXFx1OTc4RFxcdTk4NTRcXHU5QjlGXFx1NjVBMVxcdThCMDFcXHU4RUNCXFx1OTVCQ1xcdTU1MzVcXHU1Q0E5XFx1NURENlxcdTVFQjVcXHU2Njk3XFx1NzY0Q1xcdTgzRjRcXHU5NUM3XFx1NThEM1xcdTYyQkNcXHU3MkNFXFx1OUQyOFxcdTRFRjBcXHU1OTJFXFx1NjAwRlxcdTY2M0JcXHU2QjgzXFx1NzlFN1xcdTlEMjZcXHU1MzkzXFx1NTRDMFxcdTU3QzNcXHU1RDE2XFx1NjExQlxcdTY2RDZcXHU2REFGXFx1Nzg4RFxcdTgyN0VcXHU5Njk4XFx1OTc0NFxcdTUzODRcXHU2MjdDXFx1NjM5NlxcdTZEQjJcXHU3RTBBXFx1ODE0QlxcdTk4NERcIl0sXG4gICAgICBbXCJlNWExXCIsIFwiXFx1NkFGQlxcdTdGNENcXHU5REFGXFx1OUUxQVxcdTRFNUZcXHU1MDNCXFx1NTFCNlxcdTU5MUNcXHU2MEY5XFx1NjNGNlxcdTY5MzBcXHU3MjNBXFx1ODAzNlxcdUY5NzRcXHU5MUNFXFx1NUYzMVxcdUY5NzVcXHVGOTc2XFx1N0QwNFxcdTgyRTVcXHU4NDZGXFx1ODRCQlxcdTg1RTVcXHU4RThEXFx1Rjk3N1xcdTRGNkZcXHVGOTc4XFx1Rjk3OVxcdTU4RTRcXHU1QjQzXFx1NjA1OVxcdTYzREFcXHU2NTE4XFx1NjU2RFxcdTY2OThcXHVGOTdBXFx1Njk0QVxcdTZBMjNcXHU2RDBCXFx1NzAwMVxcdTcxNkNcXHU3NUQyXFx1NzYwRFxcdTc5QjNcXHU3QTcwXFx1Rjk3QlxcdTdGOEFcXHVGOTdDXFx1ODk0NFxcdUY5N0RcXHU4QjkzXFx1OTFDMFxcdTk2N0RcXHVGOTdFXFx1OTkwQVxcdTU3MDRcXHU1RkExXFx1NjVCQ1xcdTZGMDFcXHU3NjAwXFx1NzlBNlxcdThBOUVcXHU5OUFEXFx1OUI1QVxcdTlGNkNcXHU1MTA0XFx1NjFCNlxcdTYyOTFcXHU2QThEXFx1ODFDNlxcdTUwNDNcXHU1ODMwXFx1NUY2NlxcdTcxMDlcXHU4QTAwXFx1OEFGQVxcdTVCN0NcXHU4NjE2XFx1NEZGQVxcdTUxM0NcXHU1NkI0XFx1NTk0NFxcdTYzQTlcXHU2REY5XFx1NURBQVxcdTY5NkRcXHU1MTg2XFx1NEU4OFxcdTRGNTlcXHVGOTdGXFx1Rjk4MFxcdUY5ODFcXHU1OTgyXFx1Rjk4MlwiXSxcbiAgICAgIFtcImU2YTFcIiwgXCJcXHVGOTgzXFx1NkI1RlxcdTZDNURcXHVGOTg0XFx1NzRCNVxcdTc5MTZcXHVGOTg1XFx1ODIwN1xcdTgyNDVcXHU4MzM5XFx1OEYzRlxcdThGNURcXHVGOTg2XFx1OTkxOFxcdUY5ODdcXHVGOTg4XFx1Rjk4OVxcdTRFQTZcXHVGOThBXFx1NTdERlxcdTVGNzlcXHU2NjEzXFx1Rjk4QlxcdUY5OENcXHU3NUFCXFx1N0U3OVxcdThCNkZcXHVGOThEXFx1OTAwNlxcdTlBNUJcXHU1NkE1XFx1NTgyN1xcdTU5RjhcXHU1QTFGXFx1NUJCNFxcdUY5OEVcXHU1RUY2XFx1Rjk4RlxcdUY5OTBcXHU2MzUwXFx1NjMzQlxcdUY5OTFcXHU2OTNEXFx1NkM4N1xcdTZDQkZcXHU2RDhFXFx1NkQ5M1xcdTZERjVcXHU2RjE0XFx1Rjk5MlxcdTcwREZcXHU3MTM2XFx1NzE1OVxcdUY5OTNcXHU3MUMzXFx1NzFENVxcdUY5OTRcXHU3ODRGXFx1Nzg2RlxcdUY5OTVcXHU3Qjc1XFx1N0RFM1xcdUY5OTZcXHU3RTJGXFx1Rjk5N1xcdTg4NERcXHU4RURGXFx1Rjk5OFxcdUY5OTlcXHVGOTlBXFx1OTI1QlxcdUY5OUJcXHU5Q0Y2XFx1Rjk5Q1xcdUY5OURcXHVGOTlFXFx1NjA4NVxcdTZEODVcXHVGOTlGXFx1NzFCMVxcdUY5QTBcXHVGOUExXFx1OTVCMVxcdTUzQURcXHVGOUEyXFx1RjlBM1xcdUY5QTRcXHU2N0QzXFx1RjlBNVxcdTcwOEVcXHU3MTMwXFx1NzQzMFxcdTgyNzZcXHU4MkQyXCJdLFxuICAgICAgW1wiZTdhMVwiLCBcIlxcdUY5QTZcXHU5NUJCXFx1OUFFNVxcdTlFN0RcXHU2NkM0XFx1RjlBN1xcdTcxQzFcXHU4NDQ5XFx1RjlBOFxcdUY5QTlcXHU1ODRCXFx1RjlBQVxcdUY5QUJcXHU1REI4XFx1NUY3MVxcdUY5QUNcXHU2NjIwXFx1NjY4RVxcdTY5NzlcXHU2OUFFXFx1NkMzOFxcdTZDRjNcXHU2RTM2XFx1NkY0MVxcdTZGREFcXHU3MDFCXFx1NzAyRlxcdTcxNTBcXHU3MURGXFx1NzM3MFxcdUY5QURcXHU3NDVCXFx1RjlBRVxcdTc0RDRcXHU3NkM4XFx1N0E0RVxcdTdFOTNcXHVGOUFGXFx1RjlCMFxcdTgyRjFcXHU4QTYwXFx1OEZDRVxcdUY5QjFcXHU5MzQ4XFx1RjlCMlxcdTk3MTlcXHVGOUIzXFx1RjlCNFxcdTRFNDJcXHU1MDJBXFx1RjlCNVxcdTUyMDhcXHU1M0UxXFx1NjZGM1xcdTZDNkRcXHU2RkNBXFx1NzMwQVxcdTc3N0ZcXHU3QTYyXFx1ODJBRVxcdTg1RERcXHU4NjAyXFx1RjlCNlxcdTg4RDRcXHU4QTYzXFx1OEI3RFxcdThDNkJcXHVGOUI3XFx1OTJCM1xcdUY5QjhcXHU5NzEzXFx1OTgxMFxcdTRFOTRcXHU0RjBEXFx1NEZDOVxcdTUwQjJcXHU1MzQ4XFx1NTQzRVxcdTU0MzNcXHU1NURBXFx1NTg2MlxcdTU4QkFcXHU1OTY3XFx1NUExQlxcdTVCRTRcXHU2MDlGXFx1RjlCOVxcdTYxQ0FcXHU2NTU2XFx1NjVGRlxcdTY2NjRcXHU2OEE3XFx1NkM1QVxcdTZGQjNcIl0sXG4gICAgICBbXCJlOGExXCIsIFwiXFx1NzBDRlxcdTcxQUNcXHU3MzUyXFx1N0I3RFxcdTg3MDhcXHU4QUE0XFx1OUMzMlxcdTlGMDdcXHU1QzRCXFx1NkM4M1xcdTczNDRcXHU3Mzg5XFx1OTIzQVxcdTZFQUJcXHU3NDY1XFx1NzYxRlxcdTdBNjlcXHU3RTE1XFx1ODYwQVxcdTUxNDBcXHU1OEM1XFx1NjRDMVxcdTc0RUVcXHU3NTE1XFx1NzY3MFxcdTdGQzFcXHU5MDk1XFx1OTZDRFxcdTk5NTRcXHU2RTI2XFx1NzRFNlxcdTdBQTlcXHU3QUFBXFx1ODFFNVxcdTg2RDlcXHU4Nzc4XFx1OEExQlxcdTVBNDlcXHU1QjhDXFx1NUI5QlxcdTY4QTFcXHU2OTAwXFx1NkQ2M1xcdTczQTlcXHU3NDEzXFx1NzQyQ1xcdTc4OTdcXHU3REU5XFx1N0ZFQlxcdTgxMThcXHU4MTU1XFx1ODM5RVxcdThDNENcXHU5NjJFXFx1OTgxMVxcdTY2RjBcXHU1RjgwXFx1NjVGQVxcdTY3ODlcXHU2QzZBXFx1NzM4QlxcdTUwMkRcXHU1QTAzXFx1NkI2QVxcdTc3RUVcXHU1OTE2XFx1NUQ2Q1xcdTVEQ0RcXHU3MzI1XFx1NzU0RlxcdUY5QkFcXHVGOUJCXFx1NTBFNVxcdTUxRjlcXHU1ODJGXFx1NTkyRFxcdTU5OTZcXHU1OURBXFx1NUJFNVxcdUY5QkNcXHVGOUJEXFx1NURBMlxcdTYyRDdcXHU2NDE2XFx1NjQ5M1xcdTY0RkVcXHVGOUJFXFx1NjZEQ1xcdUY5QkZcXHU2QTQ4XFx1RjlDMFxcdTcxRkZcXHU3NDY0XFx1RjlDMVwiXSxcbiAgICAgIFtcImU5YTFcIiwgXCJcXHU3QTg4XFx1N0FBRlxcdTdFNDdcXHU3RTVFXFx1ODAwMFxcdTgxNzBcXHVGOUMyXFx1ODdFRlxcdTg5ODFcXHU4QjIwXFx1OTA1OVxcdUY5QzNcXHU5MDgwXFx1OTk1MlxcdTYxN0VcXHU2QjMyXFx1NkQ3NFxcdTdFMUZcXHU4OTI1XFx1OEZCMVxcdTRGRDFcXHU1MEFEXFx1NTE5N1xcdTUyQzdcXHU1N0M3XFx1NTg4OVxcdTVCQjlcXHU1RUI4XFx1NjE0MlxcdTY5OTVcXHU2RDhDXFx1NkU2N1xcdTZFQjZcXHU3MTk0XFx1NzQ2MlxcdTc1MjhcXHU3NTJDXFx1ODA3M1xcdTgzMzhcXHU4NEM5XFx1OEUwQVxcdTkzOTRcXHU5M0RFXFx1RjlDNFxcdTRFOEVcXHU0RjUxXFx1NTA3NlxcdTUxMkFcXHU1M0M4XFx1NTNDQlxcdTUzRjNcXHU1Qjg3XFx1NUJEM1xcdTVDMjRcXHU2MTFBXFx1NjE4MlxcdTY1RjRcXHU3MjVCXFx1NzM5N1xcdTc0NDBcXHU3NkMyXFx1Nzk1MFxcdTc5OTFcXHU3OUI5XFx1N0QwNlxcdTdGQkRcXHU4MjhCXFx1ODVENVxcdTg2NUVcXHU4RkMyXFx1OTA0N1xcdTkwRjVcXHU5MUVBXFx1OTY4NVxcdTk2RThcXHU5NkU5XFx1NTJENlxcdTVGNjdcXHU2NUVEXFx1NjYzMVxcdTY4MkZcXHU3MTVDXFx1N0EzNlxcdTkwQzFcXHU5ODBBXFx1NEU5MVxcdUY5QzVcXHU2QTUyXFx1NkI5RVxcdTZGOTBcXHU3MTg5XFx1ODAxOFxcdTgyQjhcXHU4NTUzXCJdLFxuICAgICAgW1wiZWFhMVwiLCBcIlxcdTkwNEJcXHU5Njk1XFx1OTZGMlxcdTk3RkJcXHU4NTFBXFx1OUIzMVxcdTRFOTBcXHU3MThBXFx1OTZDNFxcdTUxNDNcXHU1MzlGXFx1NTRFMVxcdTU3MTNcXHU1NzEyXFx1NTdBM1xcdTVBOUJcXHU1QUM0XFx1NUJDM1xcdTYwMjhcXHU2MTNGXFx1NjNGNFxcdTZDODVcXHU2RDM5XFx1NkU3MlxcdTZFOTBcXHU3MjMwXFx1NzMzRlxcdTc0NTdcXHU4MkQxXFx1ODg4MVxcdThGNDVcXHU5MDYwXFx1RjlDNlxcdTk2NjJcXHU5ODU4XFx1OUQxQlxcdTY3MDhcXHU4RDhBXFx1OTI1RVxcdTRGNERcXHU1MDQ5XFx1NTBERVxcdTUzNzFcXHU1NzBEXFx1NTlENFxcdTVBMDFcXHU1QzA5XFx1NjE3MFxcdTY2OTBcXHU2RTJEXFx1NzIzMlxcdTc0NEJcXHU3REVGXFx1ODBDM1xcdTg0MEVcXHU4NDY2XFx1ODUzRlxcdTg3NUZcXHU4ODVCXFx1ODkxOFxcdThCMDJcXHU5MDU1XFx1OTdDQlxcdTlCNEZcXHU0RTczXFx1NEY5MVxcdTUxMTJcXHU1MTZBXFx1RjlDN1xcdTU1MkZcXHU1NUE5XFx1NUI3QVxcdTVCQTVcXHU1RTdDXFx1NUU3RFxcdTVFQkVcXHU2MEEwXFx1NjBERlxcdTYxMDhcXHU2MTA5XFx1NjNDNFxcdTY1MzhcXHU2NzA5XFx1RjlDOFxcdTY3RDRcXHU2N0RBXFx1RjlDOVxcdTY5NjFcXHU2OTYyXFx1NkNCOVxcdTZEMjdcXHVGOUNBXFx1NkUzOFxcdUY5Q0JcIl0sXG4gICAgICBbXCJlYmExXCIsIFwiXFx1NkZFMVxcdTczMzZcXHU3MzM3XFx1RjlDQ1xcdTc0NUNcXHU3NTMxXFx1RjlDRFxcdTc2NTJcXHVGOUNFXFx1RjlDRlxcdTdEQURcXHU4MUZFXFx1ODQzOFxcdTg4RDVcXHU4QTk4XFx1OEFEQlxcdThBRURcXHU4RTMwXFx1OEU0MlxcdTkwNEFcXHU5MDNFXFx1OTA3QVxcdTkxNDlcXHU5MUM5XFx1OTM2RVxcdUY5RDBcXHVGOUQxXFx1NTgwOVxcdUY5RDJcXHU2QkQzXFx1ODA4OVxcdTgwQjJcXHVGOUQzXFx1RjlENFxcdTUxNDFcXHU1OTZCXFx1NUMzOVxcdUY5RDVcXHVGOUQ2XFx1NkY2NFxcdTczQTdcXHU4MEU0XFx1OEQwN1xcdUY5RDdcXHU5MjE3XFx1OTU4RlxcdUY5RDhcXHVGOUQ5XFx1RjlEQVxcdUY5REJcXHU4MDdGXFx1NjIwRVxcdTcwMUNcXHU3RDY4XFx1ODc4RFxcdUY5RENcXHU1N0EwXFx1NjA2OVxcdTYxNDdcXHU2QkI3XFx1OEFCRVxcdTkyODBcXHU5NkIxXFx1NEU1OVxcdTU0MUZcXHU2REVCXFx1ODUyRFxcdTk2NzBcXHU5N0YzXFx1OThFRVxcdTYzRDZcXHU2Q0UzXFx1OTA5MVxcdTUxRERcXHU2MUM5XFx1ODFCQVxcdTlERjlcXHU0RjlEXFx1NTAxQVxcdTUxMDBcXHU1QjlDXFx1NjEwRlxcdTYxRkZcXHU2NEVDXFx1NjkwNVxcdTZCQzVcXHU3NTkxXFx1NzdFM1xcdTdGQTlcXHU4MjY0XFx1ODU4RlxcdTg3RkJcXHU4ODYzXFx1OEFCQ1wiXSxcbiAgICAgIFtcImVjYTFcIiwgXCJcXHU4QjcwXFx1OTFBQlxcdTRFOENcXHU0RUU1XFx1NEYwQVxcdUY5RERcXHVGOURFXFx1NTkzN1xcdTU5RThcXHVGOURGXFx1NURGMlxcdTVGMUJcXHU1RjVCXFx1NjAyMVxcdUY5RTBcXHVGOUUxXFx1RjlFMlxcdUY5RTNcXHU3MjNFXFx1NzNFNVxcdUY5RTRcXHU3NTcwXFx1NzVDRFxcdUY5RTVcXHU3OUZCXFx1RjlFNlxcdTgwMENcXHU4MDMzXFx1ODA4NFxcdTgyRTFcXHU4MzUxXFx1RjlFN1xcdUY5RThcXHU4Q0JEXFx1OENCM1xcdTkwODdcXHVGOUU5XFx1RjlFQVxcdTk4RjRcXHU5OTBDXFx1RjlFQlxcdUY5RUNcXHU3MDM3XFx1NzZDQVxcdTdGQ0FcXHU3RkNDXFx1N0ZGQ1xcdThCMUFcXHU0RUJBXFx1NEVDMVxcdTUyMDNcXHU1MzcwXFx1RjlFRFxcdTU0QkRcXHU1NkUwXFx1NTlGQlxcdTVCQzVcXHU1RjE1XFx1NUZDRFxcdTZFNkVcXHVGOUVFXFx1RjlFRlxcdTdENkFcXHU4MzM1XFx1RjlGMFxcdTg2OTNcXHU4QThEXFx1RjlGMVxcdTk3NkRcXHU5Nzc3XFx1RjlGMlxcdUY5RjNcXHU0RTAwXFx1NEY1QVxcdTRGN0VcXHU1OEY5XFx1NjVFNVxcdTZFQTJcXHU5MDM4XFx1OTNCMFxcdTk5QjlcXHU0RUZCXFx1NThFQ1xcdTU5OEFcXHU1OUQ5XFx1NjA0MVxcdUY5RjRcXHVGOUY1XFx1N0ExNFxcdUY5RjZcXHU4MzRGXFx1OENDM1xcdTUxNjVcXHU1MzQ0XCJdLFxuICAgICAgW1wiZWRhMVwiLCBcIlxcdUY5RjdcXHVGOUY4XFx1RjlGOVxcdTRFQ0RcXHU1MjY5XFx1NUI1NVxcdTgyQkZcXHU0RUQ0XFx1NTIzQVxcdTU0QThcXHU1OUM5XFx1NTlGRlxcdTVCNTBcXHU1QjU3XFx1NUI1Q1xcdTYwNjNcXHU2MTQ4XFx1NkVDQlxcdTcwOTlcXHU3MTZFXFx1NzM4NlxcdTc0RjdcXHU3NUI1XFx1NzhDMVxcdTdEMkJcXHU4MDA1XFx1ODFFQVxcdTgzMjhcXHU4NTE3XFx1ODVDOVxcdThBRUVcXHU4Q0M3XFx1OTZDQ1xcdTRGNUNcXHU1MkZBXFx1NTZCQ1xcdTY1QUJcXHU2NjI4XFx1NzA3Q1xcdTcwQjhcXHU3MjM1XFx1N0RCRFxcdTgyOERcXHU5MTRDXFx1OTZDMFxcdTlENzJcXHU1QjcxXFx1NjhFN1xcdTZCOThcXHU2RjdBXFx1NzZERVxcdTVDOTFcXHU2NkFCXFx1NkY1QlxcdTdCQjRcXHU3QzJBXFx1ODgzNlxcdTk2RENcXHU0RTA4XFx1NEVEN1xcdTUzMjBcXHU1ODM0XFx1NThCQlxcdTU4RUZcXHU1OTZDXFx1NUMwN1xcdTVFMzNcXHU1RTg0XFx1NUYzNVxcdTYzOENcXHU2NkIyXFx1Njc1NlxcdTZBMUZcXHU2QUEzXFx1NkIwQ1xcdTZGM0ZcXHU3MjQ2XFx1RjlGQVxcdTczNTBcXHU3NDhCXFx1N0FFMFxcdTdDQTdcXHU4MTc4XFx1ODFERlxcdTgxRTdcXHU4MzhBXFx1ODQ2Q1xcdTg1MjNcXHU4NTk0XFx1ODVDRlxcdTg4RERcXHU4RDEzXFx1OTFBQ1xcdTk1NzdcIl0sXG4gICAgICBbXCJlZWExXCIsIFwiXFx1OTY5Q1xcdTUxOERcXHU1NEM5XFx1NTcyOFxcdTVCQjBcXHU2MjREXFx1Njc1MFxcdTY4M0RcXHU2ODkzXFx1NkUzRFxcdTZFRDNcXHU3MDdEXFx1N0UyMVxcdTg4QzFcXHU4Q0ExXFx1OEYwOVxcdTlGNEJcXHU5RjRFXFx1NzIyRFxcdTdCOEZcXHU4QUNEXFx1OTMxQVxcdTRGNDdcXHU0RjRFXFx1NTEzMlxcdTU0ODBcXHU1OUQwXFx1NUU5NVxcdTYyQjVcXHU2Nzc1XFx1Njk2RVxcdTZBMTdcXHU2Q0FFXFx1NkUxQVxcdTcyRDlcXHU3MzJBXFx1NzVCRFxcdTdCQjhcXHU3RDM1XFx1ODJFN1xcdTgzRjlcXHU4NDU3XFx1ODVGN1xcdThBNUJcXHU4Q0FGXFx1OEU4N1xcdTkwMTlcXHU5MEI4XFx1OTZDRVxcdTlGNUZcXHU1MkUzXFx1NTQwQVxcdTVBRTFcXHU1QkMyXFx1NjQ1OFxcdTY1NzVcXHU2RUY0XFx1NzJDNFxcdUY5RkJcXHU3Njg0XFx1N0E0RFxcdTdCMUJcXHU3QzREXFx1N0UzRVxcdTdGREZcXHU4MzdCXFx1OEIyQlxcdThDQ0FcXHU4RDY0XFx1OERFMVxcdThFNUZcXHU4RkVBXFx1OEZGOVxcdTkwNjlcXHU5M0QxXFx1NEY0M1xcdTRGN0FcXHU1MEIzXFx1NTE2OFxcdTUxNzhcXHU1MjREXFx1NTI2QVxcdTU4NjFcXHU1ODdDXFx1NTk2MFxcdTVDMDhcXHU1QzU1XFx1NUVEQlxcdTYwOUJcXHU2MjMwXFx1NjgxM1xcdTZCQkZcXHU2QzA4XFx1NkZCMVwiXSxcbiAgICAgIFtcImVmYTFcIiwgXCJcXHU3MTRFXFx1NzQyMFxcdTc1MzBcXHU3NTM4XFx1NzU1MVxcdTc2NzJcXHU3QjRDXFx1N0I4QlxcdTdCQURcXHU3QkM2XFx1N0U4RlxcdThBNkVcXHU4RjNFXFx1OEY0OVxcdTkyM0ZcXHU5MjkzXFx1OTMyMlxcdTk0MkJcXHU5NkZCXFx1OTg1QVxcdTk4NkJcXHU5OTFFXFx1NTIwN1xcdTYyMkFcXHU2Mjk4XFx1NkQ1OVxcdTc2NjRcXHU3QUNBXFx1N0JDMFxcdTdENzZcXHU1MzYwXFx1NUNCRVxcdTVFOTdcXHU2RjM4XFx1NzBCOVxcdTdDOThcXHU5NzExXFx1OUI4RVxcdTlFREVcXHU2M0E1XFx1NjQ3QVxcdTg3NzZcXHU0RTAxXFx1NEU5NVxcdTRFQURcXHU1MDVDXFx1NTA3NVxcdTU0NDhcXHU1OUMzXFx1NUI5QVxcdTVFNDBcXHU1RUFEXFx1NUVGN1xcdTVGODFcXHU2MEM1XFx1NjMzQVxcdTY1M0ZcXHU2NTc0XFx1NjVDQ1xcdTY2NzZcXHU2Njc4XFx1NjdGRVxcdTY5NjhcXHU2QTg5XFx1NkI2M1xcdTZDNDBcXHU2REMwXFx1NkRFOFxcdTZFMUZcXHU2RTVFXFx1NzAxRVxcdTcwQTFcXHU3MzhFXFx1NzNGRFxcdTc1M0FcXHU3NzVCXFx1Nzg4N1xcdTc5OEVcXHU3QTBCXFx1N0E3RFxcdTdDQkVcXHU3RDhFXFx1ODI0N1xcdThBMDJcXHU4QUVBXFx1OEM5RVxcdTkxMkRcXHU5MTRBXFx1OTFEOFxcdTkyNjZcXHU5MkNDXFx1OTMyMFxcdTk3MDZcXHU5NzU2XCJdLFxuICAgICAgW1wiZjBhMVwiLCBcIlxcdTk3NUNcXHU5ODAyXFx1OUYwRVxcdTUyMzZcXHU1MjkxXFx1NTU3Q1xcdTU4MjRcXHU1RTFEXFx1NUYxRlxcdTYwOENcXHU2M0QwXFx1NjhBRlxcdTZGREZcXHU3OTZEXFx1N0IyQ1xcdTgxQ0RcXHU4NUJBXFx1ODhGRFxcdThBRjhcXHU4RTQ0XFx1OTE4RFxcdTk2NjRcXHU5NjlCXFx1OTczRFxcdTk4NENcXHU5RjRBXFx1NEZDRVxcdTUxNDZcXHU1MUNCXFx1NTJBOVxcdTU2MzJcXHU1RjE0XFx1NUY2QlxcdTYzQUFcXHU2NENEXFx1NjVFOVxcdTY2NDFcXHU2NkZBXFx1NjZGOVxcdTY3MURcXHU2ODlEXFx1NjhEN1xcdTY5RkRcXHU2RjE1XFx1NkY2RVxcdTcxNjdcXHU3MUU1XFx1NzIyQVxcdTc0QUFcXHU3NzNBXFx1Nzk1NlxcdTc5NUFcXHU3OURGXFx1N0EyMFxcdTdBOTVcXHU3Qzk3XFx1N0NERlxcdTdENDRcXHU3RTcwXFx1ODA4N1xcdTg1RkJcXHU4NkE0XFx1OEE1NFxcdThBQkZcXHU4RDk5XFx1OEU4MVxcdTkwMjBcXHU5MDZEXFx1OTFFM1xcdTk2M0JcXHU5NkQ1XFx1OUNFNVxcdTY1Q0ZcXHU3QzA3XFx1OERCM1xcdTkzQzNcXHU1QjU4XFx1NUMwQVxcdTUzNTJcXHU2MkQ5XFx1NzMxRFxcdTUwMjdcXHU1Qjk3XFx1NUY5RVxcdTYwQjBcXHU2MTZCXFx1NjhENVxcdTZERDlcXHU3NDJFXFx1N0EyRVxcdTdENDJcXHU3RDlDXFx1N0UzMVxcdTgxNkJcIl0sXG4gICAgICBbXCJmMWExXCIsIFwiXFx1OEUyQVxcdThFMzVcXHU5MzdFXFx1OTQxOFxcdTRGNTBcXHU1NzUwXFx1NURFNlxcdTVFQTdcXHU2MzJCXFx1N0Y2QVxcdTRFM0JcXHU0RjRGXFx1NEY4RlxcdTUwNUFcXHU1OUREXFx1ODBDNFxcdTU0NkFcXHU1NDY4XFx1NTVGRVxcdTU5NEZcXHU1Qjk5XFx1NURERVxcdTVFREFcXHU2NjVEXFx1NjczMVxcdTY3RjFcXHU2ODJBXFx1NkNFOFxcdTZEMzJcXHU2RTRBXFx1NkY4RFxcdTcwQjdcXHU3M0UwXFx1NzU4N1xcdTdDNENcXHU3RDAyXFx1N0QyQ1xcdTdEQTJcXHU4MjFGXFx1ODZEQlxcdThBM0JcXHU4QTg1XFx1OEQ3MFxcdThFOEFcXHU4RjMzXFx1OTAzMVxcdTkxNEVcXHU5MTUyXFx1OTQ0NFxcdTk5RDBcXHU3QUY5XFx1N0NBNVxcdTRGQ0FcXHU1MTAxXFx1NTFDNlxcdTU3QzhcXHU1QkVGXFx1NUNGQlxcdTY2NTlcXHU2QTNEXFx1NkQ1QVxcdTZFOTZcXHU2RkVDXFx1NzEwQ1xcdTc1NkZcXHU3QUUzXFx1ODgyMlxcdTkwMjFcXHU5MDc1XFx1OTZDQlxcdTk5RkZcXHU4MzAxXFx1NEUyRFxcdTRFRjJcXHU4ODQ2XFx1OTFDRFxcdTUzN0RcXHU2QURCXFx1Njk2QlxcdTZDNDFcXHU4NDdBXFx1NTg5RVxcdTYxOEVcXHU2NkZFXFx1NjJFRlxcdTcwRERcXHU3NTExXFx1NzVDN1xcdTdFNTJcXHU4NEI4XFx1OEI0OVxcdThEMDhcXHU0RTRCXFx1NTNFQVwiXSxcbiAgICAgIFtcImYyYTFcIiwgXCJcXHU1NEFCXFx1NTczMFxcdTU3NDBcXHU1RkQ3XFx1NjMwMVxcdTYzMDdcXHU2NDZGXFx1NjUyRlxcdTY1RThcXHU2NjdBXFx1Njc5RFxcdTY3QjNcXHU2QjYyXFx1NkM2MFxcdTZDOUFcXHU2RjJDXFx1NzdFNVxcdTc4MjVcXHU3OTQ5XFx1Nzk1N1xcdTdEMTlcXHU4MEEyXFx1ODEwMlxcdTgxRjNcXHU4MjlEXFx1ODJCN1xcdTg3MThcXHU4QThDXFx1RjlGQ1xcdThEMDRcXHU4REJFXFx1OTA3MlxcdTc2RjRcXHU3QTE5XFx1N0EzN1xcdTdFNTRcXHU4MDc3XFx1NTUwN1xcdTU1RDRcXHU1ODc1XFx1NjMyRlxcdTY0MjJcXHU2NjQ5XFx1NjY0QlxcdTY4NkRcXHU2OTlCXFx1NkI4NFxcdTZEMjVcXHU2RUIxXFx1NzNDRFxcdTc0NjhcXHU3NEExXFx1NzU1QlxcdTc1QjlcXHU3NkUxXFx1NzcxRVxcdTc3OEJcXHU3OUU2XFx1N0UwOVxcdTdFMURcXHU4MUZCXFx1ODUyRlxcdTg4OTdcXHU4QTNBXFx1OENEMVxcdThFRUJcXHU4RkIwXFx1OTAzMlxcdTkzQURcXHU5NjYzXFx1OTY3M1xcdTk3MDdcXHU0Rjg0XFx1NTNGMVxcdTU5RUFcXHU1QUM5XFx1NUUxOVxcdTY4NEVcXHU3NEM2XFx1NzVCRVxcdTc5RTlcXHU3QTkyXFx1ODFBM1xcdTg2RURcXHU4Q0VBXFx1OERDQ1xcdThGRURcXHU2NTlGXFx1NjcxNVxcdUY5RkRcXHU1N0Y3XFx1NkY1N1xcdTdERERcXHU4RjJGXCJdLFxuICAgICAgW1wiZjNhMVwiLCBcIlxcdTkzRjZcXHU5NkM2XFx1NUZCNVxcdTYxRjJcXHU2Rjg0XFx1NEUxNFxcdTRGOThcXHU1MDFGXFx1NTNDOVxcdTU1REZcXHU1RDZGXFx1NURFRVxcdTZCMjFcXHU2QjY0XFx1NzhDQlxcdTdCOUFcXHVGOUZFXFx1OEU0OVxcdThFQ0FcXHU5MDZFXFx1NjM0OVxcdTY0M0VcXHU3NzQwXFx1N0E4NFxcdTkzMkZcXHU5NDdGXFx1OUY2QVxcdTY0QjBcXHU2RkFGXFx1NzFFNlxcdTc0QThcXHU3NERBXFx1N0FDNFxcdTdDMTJcXHU3RTgyXFx1N0NCMlxcdTdFOThcXHU4QjlBXFx1OEQwQVxcdTk0N0RcXHU5OTEwXFx1OTk0Q1xcdTUyMzlcXHU1QkRGXFx1NjRFNlxcdTY3MkRcXHU3RDJFXFx1NTBFRFxcdTUzQzNcXHU1ODc5XFx1NjE1OFxcdTYxNTlcXHU2MUZBXFx1NjVBQ1xcdTdBRDlcXHU4QjkyXFx1OEI5NlxcdTUwMDlcXHU1MDIxXFx1NTI3NVxcdTU1MzFcXHU1QTNDXFx1NUVFMFxcdTVGNzBcXHU2MTM0XFx1NjU1RVxcdTY2MENcXHU2NjM2XFx1NjZBMlxcdTY5Q0RcXHU2RUM0XFx1NkYzMlxcdTczMTZcXHU3NjIxXFx1N0E5M1xcdTgxMzlcXHU4MjU5XFx1ODNENlxcdTg0QkNcXHU1MEI1XFx1NTdGMFxcdTVCQzBcXHU1QkU4XFx1NUY2OVxcdTYzQTFcXHU3ODI2XFx1N0RCNVxcdTgzRENcXHU4NTIxXFx1OTFDN1xcdTkxRjVcXHU1MThBXFx1NjdGNVxcdTdCNTZcIl0sXG4gICAgICBbXCJmNGExXCIsIFwiXFx1OENBQ1xcdTUxQzRcXHU1OUJCXFx1NjBCRFxcdTg2NTVcXHU1MDFDXFx1RjlGRlxcdTUyNTRcXHU1QzNBXFx1NjE3RFxcdTYyMUFcXHU2MkQzXFx1NjRGMlxcdTY1QTVcXHU2RUNDXFx1NzYyMFxcdTgxMEFcXHU4RTYwXFx1OTY1RlxcdTk2QkJcXHU0RURGXFx1NTM0M1xcdTU1OThcXHU1OTI5XFx1NURERFxcdTY0QzVcXHU2Q0M5XFx1NkRGQVxcdTczOTRcXHU3QTdGXFx1ODIxQlxcdTg1QTZcXHU4Q0U0XFx1OEUxMFxcdTkwNzdcXHU5MUU3XFx1OTVFMVxcdTk2MjFcXHU5N0M2XFx1NTFGOFxcdTU0RjJcXHU1NTg2XFx1NUZCOVxcdTY0QTRcXHU2Rjg4XFx1N0RCNFxcdThGMUZcXHU4RjREXFx1OTQzNVxcdTUwQzlcXHU1QzE2XFx1NkNCRVxcdTZERkJcXHU3NTFCXFx1NzdCQlxcdTdDM0RcXHU3QzY0XFx1OEE3OVxcdThBQzJcXHU1ODFFXFx1NTlCRVxcdTVFMTZcXHU2Mzc3XFx1NzI1MlxcdTc1OEFcXHU3NzZCXFx1OEFEQ1xcdThDQkNcXHU4RjEyXFx1NUVGM1xcdTY2NzRcXHU2REY4XFx1ODA3RFxcdTgzQzFcXHU4QUNCXFx1OTc1MVxcdTlCRDZcXHVGQTAwXFx1NTI0M1xcdTY2RkZcXHU2RDk1XFx1NkVFRlxcdTdERTBcXHU4QUU2XFx1OTAyRVxcdTkwNUVcXHU5QUQ0XFx1NTIxRFxcdTUyN0ZcXHU1NEU4XFx1NjE5NFxcdTYyODRcXHU2MkRCXFx1NjhBMlwiXSxcbiAgICAgIFtcImY1YTFcIiwgXCJcXHU2OTEyXFx1Njk1QVxcdTZBMzVcXHU3MDkyXFx1NzEyNlxcdTc4NURcXHU3OTAxXFx1NzkwRVxcdTc5RDJcXHU3QTBEXFx1ODA5NlxcdTgyNzhcXHU4MkQ1XFx1ODM0OVxcdTg1NDlcXHU4QzgyXFx1OEQ4NVxcdTkxNjJcXHU5MThCXFx1OTFBRVxcdTRGQzNcXHU1NkQxXFx1NzFFRFxcdTc3RDdcXHU4NzAwXFx1ODlGOFxcdTVCRjhcXHU1RkQ2XFx1Njc1MVxcdTkwQThcXHU1M0UyXFx1NTg1QVxcdTVCRjVcXHU2MEE0XFx1NjE4MVxcdTY0NjBcXHU3RTNEXFx1ODA3MFxcdTg1MjVcXHU5MjgzXFx1NjRBRVxcdTUwQUNcXHU1RDE0XFx1NjcwMFxcdTU4OUNcXHU2MkJEXFx1NjNBOFxcdTY5MEVcXHU2OTc4XFx1NkExRVxcdTZFNkJcXHU3NkJBXFx1NzlDQlxcdTgyQkJcXHU4NDI5XFx1OEFDRlxcdThEQThcXHU4RkZEXFx1OTExMlxcdTkxNEJcXHU5MTlDXFx1OTMxMFxcdTkzMThcXHU5MzlBXFx1OTZEQlxcdTlBMzZcXHU5QzBEXFx1NEUxMVxcdTc1NUNcXHU3OTVEXFx1N0FGQVxcdTdCNTFcXHU3QkM5XFx1N0UyRVxcdTg0QzRcXHU4RTU5XFx1OEU3NFxcdThFRjhcXHU5MDEwXFx1NjYyNVxcdTY5M0ZcXHU3NDQzXFx1NTFGQVxcdTY3MkVcXHU5RURDXFx1NTE0NVxcdTVGRTBcXHU2Qzk2XFx1ODdGMlxcdTg4NURcXHU4ODc3XFx1NjBCNFxcdTgxQjVcXHU4NDAzXCJdLFxuICAgICAgW1wiZjZhMVwiLCBcIlxcdThEMDVcXHU1M0Q2XFx1NTQzOVxcdTU2MzRcXHU1QTM2XFx1NUMzMVxcdTcwOEFcXHU3RkUwXFx1ODA1QVxcdTgxMDZcXHU4MUVEXFx1OERBM1xcdTkxODlcXHU5QTVGXFx1OURGMlxcdTUwNzRcXHU0RUM0XFx1NTNBMFxcdTYwRkJcXHU2RTJDXFx1NUM2NFxcdTRGODhcXHU1MDI0XFx1NTVFNFxcdTVDRDlcXHU1RTVGXFx1NjA2NVxcdTY4OTRcXHU2Q0JCXFx1NkRDNFxcdTcxQkVcXHU3NUQ0XFx1NzVGNFxcdTc2NjFcXHU3QTFBXFx1N0E0OVxcdTdEQzdcXHU3REZCXFx1N0Y2RVxcdTgxRjRcXHU4NkE5XFx1OEYxQ1xcdTk2QzlcXHU5OUIzXFx1OUY1MlxcdTUyNDdcXHU1MkM1XFx1OThFRFxcdTg5QUFcXHU0RTAzXFx1NjdEMlxcdTZGMDZcXHU0RkI1XFx1NUJFMlxcdTY3OTVcXHU2Qzg4XFx1NkQ3OFxcdTc0MUJcXHU3ODI3XFx1OTFERFxcdTkzN0NcXHU4N0M0XFx1NzlFNFxcdTdBMzFcXHU1RkVCXFx1NEVENlxcdTU0QTRcXHU1NTNFXFx1NThBRVxcdTU5QTVcXHU2MEYwXFx1NjI1M1xcdTYyRDZcXHU2NzM2XFx1Njk1NVxcdTgyMzVcXHU5NjQwXFx1OTlCMVxcdTk5RERcXHU1MDJDXFx1NTM1M1xcdTU1NDRcXHU1NzdDXFx1RkEwMVxcdTYyNThcXHVGQTAyXFx1NjRFMlxcdTY2NkJcXHU2N0REXFx1NkZDMVxcdTZGRUZcXHU3NDIyXFx1NzQzOFxcdThBMTdcIl0sXG4gICAgICBbXCJmN2ExXCIsIFwiXFx1OTQzOFxcdTU0NTFcXHU1NjA2XFx1NTc2NlxcdTVGNDhcXHU2MTlBXFx1NkI0RVxcdTcwNThcXHU3MEFEXFx1N0RCQlxcdThBOTVcXHU1OTZBXFx1ODEyQlxcdTYzQTJcXHU3NzA4XFx1ODAzRFxcdThDQUFcXHU1ODU0XFx1NjQyRFxcdTY5QkJcXHU1Qjk1XFx1NUUxMVxcdTZFNkZcXHVGQTAzXFx1ODU2OVxcdTUxNENcXHU1M0YwXFx1NTkyQVxcdTYwMjBcXHU2MTRCXFx1NkI4NlxcdTZDNzBcXHU2Q0YwXFx1N0IxRVxcdTgwQ0VcXHU4MkQ0XFx1OERDNlxcdTkwQjBcXHU5OEIxXFx1RkEwNFxcdTY0QzdcXHU2RkE0XFx1NjQ5MVxcdTY1MDRcXHU1MTRFXFx1NTQxMFxcdTU3MUZcXHU4QTBFXFx1NjE1RlxcdTY4NzZcXHVGQTA1XFx1NzVEQlxcdTdCNTJcXHU3RDcxXFx1OTAxQVxcdTU4MDZcXHU2OUNDXFx1ODE3RlxcdTg5MkFcXHU5MDAwXFx1OTgzOVxcdTUwNzhcXHU1OTU3XFx1NTlBQ1xcdTYyOTVcXHU5MDBGXFx1OUIyQVxcdTYxNURcXHU3Mjc5XFx1OTVENlxcdTU3NjFcXHU1QTQ2XFx1NURGNFxcdTYyOEFcXHU2NEFEXFx1NjRGQVxcdTY3NzdcXHU2Q0UyXFx1NkQzRVxcdTcyMkNcXHU3NDM2XFx1NzgzNFxcdTdGNzdcXHU4MkFEXFx1OEREQlxcdTk4MTdcXHU1MjI0XFx1NTc0MlxcdTY3N0ZcXHU3MjQ4XFx1NzRFM1xcdThDQTlcXHU4RkE2XFx1OTIxMVwiXSxcbiAgICAgIFtcImY4YTFcIiwgXCJcXHU5NjJBXFx1NTE2QlxcdTUzRURcXHU2MzRDXFx1NEY2OVxcdTU1MDRcXHU2MDk2XFx1NjU1N1xcdTZDOUJcXHU2RDdGXFx1NzI0Q1xcdTcyRkRcXHU3QTE3XFx1ODk4N1xcdThDOURcXHU1RjZEXFx1NkY4RVxcdTcwRjlcXHU4MUE4XFx1NjEwRVxcdTRGQkZcXHU1MDRGXFx1NjI0MVxcdTcyNDdcXHU3QkM3XFx1N0RFOFxcdTdGRTlcXHU5MDREXFx1OTdBRFxcdTlBMTlcXHU4Q0I2XFx1NTc2QVxcdTVFNzNcXHU2N0IwXFx1ODQwRFxcdThBNTVcXHU1NDIwXFx1NUIxNlxcdTVFNjNcXHU1RUUyXFx1NUYwQVxcdTY1ODNcXHU4MEJBXFx1ODUzRFxcdTk1ODlcXHU5NjVCXFx1NEY0OFxcdTUzMDVcXHU1MzBEXFx1NTMwRlxcdTU0ODZcXHU1NEZBXFx1NTcwM1xcdTVFMDNcXHU2MDE2XFx1NjI5QlxcdTYyQjFcXHU2MzU1XFx1RkEwNlxcdTZDRTFcXHU2RDY2XFx1NzVCMVxcdTc4MzJcXHU4MERFXFx1ODEyRlxcdTgyREVcXHU4NDYxXFx1ODRCMlxcdTg4OERcXHU4OTEyXFx1OTAwQlxcdTkyRUFcXHU5OEZEXFx1OUI5MVxcdTVFNDVcXHU2NkI0XFx1NjZERFxcdTcwMTFcXHU3MjA2XFx1RkEwN1xcdTRGRjVcXHU1MjdEXFx1NUY2QVxcdTYxNTNcXHU2NzUzXFx1NkExOVxcdTZGMDJcXHU3NEUyXFx1Nzk2OFxcdTg4NjhcXHU4Qzc5XFx1OThDN1xcdTk4QzRcXHU5QTQzXCJdLFxuICAgICAgW1wiZjlhMVwiLCBcIlxcdTU0QzFcXHU3QTFGXFx1Njk1M1xcdThBRjdcXHU4QzRBXFx1OThBOFxcdTk5QUVcXHU1RjdDXFx1NjJBQlxcdTc1QjJcXHU3NkFFXFx1ODhBQlxcdTkwN0ZcXHU5NjQyXFx1NTMzOVxcdTVGM0NcXHU1RkM1XFx1NkNDQ1xcdTczQ0NcXHU3NTYyXFx1NzU4QlxcdTdCNDZcXHU4MkZFXFx1OTk5RFxcdTRFNEZcXHU5MDNDXFx1NEUwQlxcdTRGNTVcXHU1M0E2XFx1NTkwRlxcdTVFQzhcXHU2NjMwXFx1NkNCM1xcdTc0NTVcXHU4Mzc3XFx1ODc2NlxcdThDQzBcXHU5MDUwXFx1OTcxRVxcdTlDMTVcXHU1OEQxXFx1NUI3OFxcdTg2NTBcXHU4QjE0XFx1OURCNFxcdTVCRDJcXHU2MDY4XFx1NjA4RFxcdTY1RjFcXHU2QzU3XFx1NkYyMlxcdTZGQTNcXHU3MDFBXFx1N0Y1NVxcdTdGRjBcXHU5NTkxXFx1OTU5MlxcdTk2NTBcXHU5N0QzXFx1NTI3MlxcdThGNDRcXHU1MUZEXFx1NTQyQlxcdTU0QjhcXHU1NTYzXFx1NTU4QVxcdTZBQkJcXHU2REI1XFx1N0REOFxcdTgyNjZcXHU5MjlDXFx1OTY3N1xcdTlFNzlcXHU1NDA4XFx1NTRDOFxcdTc2RDJcXHU4NkU0XFx1OTVBNFxcdTk1RDRcXHU5NjVDXFx1NEVBMlxcdTRGMDlcXHU1OUVFXFx1NUFFNlxcdTVERjdcXHU2MDUyXFx1NjI5N1xcdTY3NkRcXHU2ODQxXFx1NkM4NlxcdTZFMkZcXHU3RjM4XFx1ODA5QlxcdTgyMkFcIl0sXG4gICAgICBbXCJmYWExXCIsIFwiXFx1RkEwOFxcdUZBMDlcXHU5ODA1XFx1NEVBNVxcdTUwNTVcXHU1NEIzXFx1NTc5M1xcdTU5NUFcXHU1QjY5XFx1NUJCM1xcdTYxQzhcXHU2OTc3XFx1NkQ3N1xcdTcwMjNcXHU4N0Y5XFx1ODlFM1xcdThBNzJcXHU4QUU3XFx1OTA4MlxcdTk5RURcXHU5QUI4XFx1NTJCRVxcdTY4MzhcXHU1MDE2XFx1NUU3OFxcdTY3NEZcXHU4MzQ3XFx1ODg0Q1xcdTRFQUJcXHU1NDExXFx1NTZBRVxcdTczRTZcXHU5MTE1XFx1OTdGRlxcdTk5MDlcXHU5OTU3XFx1OTk5OVxcdTU2NTNcXHU1ODlGXFx1ODY1QlxcdThBMzFcXHU2MUIyXFx1NkFGNlxcdTczN0JcXHU4RUQyXFx1NkI0N1xcdTk2QUFcXHU5QTU3XFx1NTk1NVxcdTcyMDBcXHU4RDZCXFx1OTc2OVxcdTRGRDRcXHU1Q0Y0XFx1NUYyNlxcdTYxRjhcXHU2NjVCXFx1NkNFQlxcdTcwQUJcXHU3Mzg0XFx1NzNCOVxcdTczRkVcXHU3NzI5XFx1Nzc0RFxcdTdENDNcXHU3RDYyXFx1N0UyM1xcdTgyMzdcXHU4ODUyXFx1RkEwQVxcdThDRTJcXHU5MjQ5XFx1OTg2RlxcdTVCNTFcXHU3QTc0XFx1ODg0MFxcdTk4MDFcXHU1QUNDXFx1NEZFMFxcdTUzNTRcXHU1OTNFXFx1NUNGRFxcdTYzM0VcXHU2RDc5XFx1NzJGOVxcdTgxMDVcXHU4MTA3XFx1ODNBMlxcdTkyQ0ZcXHU5ODMwXFx1NEVBOFxcdTUxNDRcXHU1MjExXFx1NTc4QlwiXSxcbiAgICAgIFtcImZiYTFcIiwgXCJcXHU1RjYyXFx1NkNDMlxcdTZFQ0VcXHU3MDA1XFx1NzA1MFxcdTcwQUZcXHU3MTkyXFx1NzNFOVxcdTc0NjlcXHU4MzRBXFx1ODdBMlxcdTg4NjFcXHU5MDA4XFx1OTBBMlxcdTkzQTNcXHU5OUE4XFx1NTE2RVxcdTVGNTdcXHU2MEUwXFx1NjE2N1xcdTY2QjNcXHU4NTU5XFx1OEU0QVxcdTkxQUZcXHU5NzhCXFx1NEU0RVxcdTRFOTJcXHU1NDdDXFx1NThENVxcdTU4RkFcXHU1OTdEXFx1NUNCNVxcdTVGMjdcXHU2MjM2XFx1NjI0OFxcdTY2MEFcXHU2NjY3XFx1NkJFQlxcdTZENjlcXHU2RENGXFx1NkU1NlxcdTZFRjhcXHU2Rjk0XFx1NkZFMFxcdTZGRTlcXHU3MDVEXFx1NzJEMFxcdTc0MjVcXHU3NDVBXFx1NzRFMFxcdTc2OTNcXHU3OTVDXFx1N0NDQVxcdTdFMUVcXHU4MEUxXFx1ODJBNlxcdTg0NkJcXHU4NEJGXFx1ODY0RVxcdTg2NUZcXHU4Nzc0XFx1OEI3N1xcdThDNkFcXHU5M0FDXFx1OTgwMFxcdTk4NjVcXHU2MEQxXFx1NjIxNlxcdTkxNzdcXHU1QTVBXFx1NjYwRlxcdTZERjdcXHU2RTNFXFx1NzQzRlxcdTlCNDJcXHU1RkZEXFx1NjBEQVxcdTdCMEZcXHU1NEM0XFx1NUYxOFxcdTZDNUVcXHU2Q0QzXFx1NkQyQVxcdTcwRDhcXHU3RDA1XFx1ODY3OVxcdThBMENcXHU5RDNCXFx1NTMxNlxcdTU0OENcXHU1QjA1XFx1NkEzQVxcdTcwNkJcXHU3NTc1XCJdLFxuICAgICAgW1wiZmNhMVwiLCBcIlxcdTc5OERcXHU3OUJFXFx1ODJCMVxcdTgzRUZcXHU4QTcxXFx1OEI0MVxcdThDQThcXHU5Nzc0XFx1RkEwQlxcdTY0RjRcXHU2NTJCXFx1NzhCQVxcdTc4QkJcXHU3QTZCXFx1NEUzOFxcdTU1OUFcXHU1OTUwXFx1NUJBNlxcdTVFN0JcXHU2MEEzXFx1NjNEQlxcdTZCNjFcXHU2NjY1XFx1Njg1M1xcdTZFMTlcXHU3MTY1XFx1NzRCMFxcdTdEMDhcXHU5MDg0XFx1OUE2OVxcdTlDMjVcXHU2RDNCXFx1NkVEMVxcdTczM0VcXHU4QzQxXFx1OTVDQVxcdTUxRjBcXHU1RTRDXFx1NUZBOFxcdTYwNERcXHU2MEY2XFx1NjEzMFxcdTYxNENcXHU2NjQzXFx1NjY0NFxcdTY5QTVcXHU2Q0MxXFx1NkU1RlxcdTZFQzlcXHU2RjYyXFx1NzE0Q1xcdTc0OUNcXHU3Njg3XFx1N0JDMVxcdTdDMjdcXHU4MzUyXFx1ODc1N1xcdTkwNTFcXHU5NjhEXFx1OUVDM1xcdTUzMkZcXHU1NkRFXFx1NUVGQlxcdTVGOEFcXHU2MDYyXFx1NjA5NFxcdTYxRjdcXHU2NjY2XFx1NjcwM1xcdTZBOUNcXHU2REVFXFx1NkZBRVxcdTcwNzBcXHU3MzZBXFx1N0U2QVxcdTgxQkVcXHU4MzM0XFx1ODZENFxcdThBQThcXHU4Q0M0XFx1NTI4M1xcdTczNzJcXHU1Qjk2XFx1NkE2QlxcdTk0MDRcXHU1NEVFXFx1NTY4NlxcdTVCNURcXHU2NTQ4XFx1NjU4NVxcdTY2QzlcXHU2ODlGXFx1NkQ4RFxcdTZEQzZcIl0sXG4gICAgICBbXCJmZGExXCIsIFwiXFx1NzIzQlxcdTgwQjRcXHU5MTc1XFx1OUE0RFxcdTRGQUZcXHU1MDE5XFx1NTM5QVxcdTU0MEVcXHU1NDNDXFx1NTU4OVxcdTU1QzVcXHU1RTNGXFx1NUY4Q1xcdTY3M0RcXHU3MTY2XFx1NzNERFxcdTkwMDVcXHU1MkRCXFx1NTJGM1xcdTU4NjRcXHU1OENFXFx1NzEwNFxcdTcxOEZcXHU3MUZCXFx1ODVCMFxcdThBMTNcXHU2Njg4XFx1ODVBOFxcdTU1QTdcXHU2Njg0XFx1NzE0QVxcdTg0MzFcXHU1MzQ5XFx1NTU5OVxcdTZCQzFcXHU1RjU5XFx1NUZCRFxcdTYzRUVcXHU2Njg5XFx1NzE0N1xcdThBRjFcXHU4RjFEXFx1OUVCRVxcdTRGMTFcXHU2NDNBXFx1NzBDQlxcdTc1NjZcXHU4NjY3XFx1NjA2NFxcdThCNEVcXHU5REY4XFx1NTE0N1xcdTUxRjZcXHU1MzA4XFx1NkQzNlxcdTgwRjhcXHU5RUQxXFx1NjYxNVxcdTZCMjNcXHU3MDk4XFx1NzVENVxcdTU0MDNcXHU1Qzc5XFx1N0QwN1xcdThBMTZcXHU2QjIwXFx1NkIzRFxcdTZCNDZcXHU1NDM4XFx1NjA3MFxcdTZEM0RcXHU3RkQ1XFx1ODIwOFxcdTUwRDZcXHU1MURFXFx1NTU5Q1xcdTU2NkJcXHU1NkNEXFx1NTlFQ1xcdTVCMDlcXHU1RTBDXFx1NjE5OVxcdTYxOThcXHU2MjMxXFx1NjY1RVxcdTY2RTZcXHU3MTk5XFx1NzFCOVxcdTcxQkFcXHU3MkE3XFx1NzlBN1xcdTdBMDBcXHU3RkIyXFx1OEE3MFwiXVxuICAgIF07XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvcmF3LWJvZHkvbm9kZV9tb2R1bGVzL2ljb252LWxpdGUvZW5jb2RpbmdzL3RhYmxlcy9jcDk1MC5qc29uXG52YXIgcmVxdWlyZV9jcDk1MCA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9yYXctYm9keS9ub2RlX21vZHVsZXMvaWNvbnYtbGl0ZS9lbmNvZGluZ3MvdGFibGVzL2NwOTUwLmpzb25cIihleHBvcnRzMiwgbW9kdWxlMikge1xuICAgIG1vZHVsZTIuZXhwb3J0cyA9IFtcbiAgICAgIFtcIjBcIiwgXCJcXDBcIiwgMTI3XSxcbiAgICAgIFtcImExNDBcIiwgXCJcXHUzMDAwXFx1RkYwQ1xcdTMwMDFcXHUzMDAyXFx1RkYwRVxcdTIwMjdcXHVGRjFCXFx1RkYxQVxcdUZGMUZcXHVGRjAxXFx1RkUzMFxcdTIwMjZcXHUyMDI1XFx1RkU1MFxcdUZFNTFcXHVGRTUyXFx4QjdcXHVGRTU0XFx1RkU1NVxcdUZFNTZcXHVGRTU3XFx1RkY1Q1xcdTIwMTNcXHVGRTMxXFx1MjAxNFxcdUZFMzNcXHUyNTc0XFx1RkUzNFxcdUZFNEZcXHVGRjA4XFx1RkYwOVxcdUZFMzVcXHVGRTM2XFx1RkY1QlxcdUZGNURcXHVGRTM3XFx1RkUzOFxcdTMwMTRcXHUzMDE1XFx1RkUzOVxcdUZFM0FcXHUzMDEwXFx1MzAxMVxcdUZFM0JcXHVGRTNDXFx1MzAwQVxcdTMwMEJcXHVGRTNEXFx1RkUzRVxcdTMwMDhcXHUzMDA5XFx1RkUzRlxcdUZFNDBcXHUzMDBDXFx1MzAwRFxcdUZFNDFcXHVGRTQyXFx1MzAwRVxcdTMwMEZcXHVGRTQzXFx1RkU0NFxcdUZFNTlcXHVGRTVBXCJdLFxuICAgICAgW1wiYTFhMVwiLCBcIlxcdUZFNUJcXHVGRTVDXFx1RkU1RFxcdUZFNUVcXHUyMDE4XFx1MjAxOVxcdTIwMUNcXHUyMDFEXFx1MzAxRFxcdTMwMUVcXHUyMDM1XFx1MjAzMlxcdUZGMDNcXHVGRjA2XFx1RkYwQVxcdTIwM0JcXHhBN1xcdTMwMDNcXHUyNUNCXFx1MjVDRlxcdTI1QjNcXHUyNUIyXFx1MjVDRVxcdTI2MDZcXHUyNjA1XFx1MjVDN1xcdTI1QzZcXHUyNUExXFx1MjVBMFxcdTI1QkRcXHUyNUJDXFx1MzJBM1xcdTIxMDVcXHhBRlxcdUZGRTNcXHVGRjNGXFx1MDJDRFxcdUZFNDlcXHVGRTRBXFx1RkU0RFxcdUZFNEVcXHVGRTRCXFx1RkU0Q1xcdUZFNUZcXHVGRTYwXFx1RkU2MVxcdUZGMEJcXHVGRjBEXFx4RDdcXHhGN1xceEIxXFx1MjIxQVxcdUZGMUNcXHVGRjFFXFx1RkYxRFxcdTIyNjZcXHUyMjY3XFx1MjI2MFxcdTIyMUVcXHUyMjUyXFx1MjI2MVxcdUZFNjJcIiwgNCwgXCJcXHVGRjVFXFx1MjIyOVxcdTIyMkFcXHUyMkE1XFx1MjIyMFxcdTIyMUZcXHUyMkJGXFx1MzNEMlxcdTMzRDFcXHUyMjJCXFx1MjIyRVxcdTIyMzVcXHUyMjM0XFx1MjY0MFxcdTI2NDJcXHUyMjk1XFx1MjI5OVxcdTIxOTFcXHUyMTkzXFx1MjE5MFxcdTIxOTJcXHUyMTk2XFx1MjE5N1xcdTIxOTlcXHUyMTk4XFx1MjIyNVxcdTIyMjNcXHVGRjBGXCJdLFxuICAgICAgW1wiYTI0MFwiLCBcIlxcdUZGM0NcXHUyMjE1XFx1RkU2OFxcdUZGMDRcXHVGRkU1XFx1MzAxMlxcdUZGRTBcXHVGRkUxXFx1RkYwNVxcdUZGMjBcXHUyMTAzXFx1MjEwOVxcdUZFNjlcXHVGRTZBXFx1RkU2QlxcdTMzRDVcXHUzMzlDXFx1MzM5RFxcdTMzOUVcXHUzM0NFXFx1MzNBMVxcdTMzOEVcXHUzMzhGXFx1MzNDNFxceEIwXFx1NTE1OVxcdTUxNUJcXHU1MTVFXFx1NTE1RFxcdTUxNjFcXHU1MTYzXFx1NTVFN1xcdTc0RTlcXHU3Q0NFXFx1MjU4MVwiLCA3LCBcIlxcdTI1OEZcXHUyNThFXFx1MjU4RFxcdTI1OENcXHUyNThCXFx1MjU4QVxcdTI1ODlcXHUyNTNDXFx1MjUzNFxcdTI1MkNcXHUyNTI0XFx1MjUxQ1xcdTI1OTRcXHUyNTAwXFx1MjUwMlxcdTI1OTVcXHUyNTBDXFx1MjUxMFxcdTI1MTRcXHUyNTE4XFx1MjU2RFwiXSxcbiAgICAgIFtcImEyYTFcIiwgXCJcXHUyNTZFXFx1MjU3MFxcdTI1NkZcXHUyNTUwXFx1MjU1RVxcdTI1NkFcXHUyNTYxXFx1MjVFMlxcdTI1RTNcXHUyNUU1XFx1MjVFNFxcdTI1NzFcXHUyNTcyXFx1MjU3M1xcdUZGMTBcIiwgOSwgXCJcXHUyMTYwXCIsIDksIFwiXFx1MzAyMVwiLCA4LCBcIlxcdTUzNDFcXHU1MzQ0XFx1NTM0NVxcdUZGMjFcIiwgMjUsIFwiXFx1RkY0MVwiLCAyMV0sXG4gICAgICBbXCJhMzQwXCIsIFwiXFx1RkY1N1xcdUZGNThcXHVGRjU5XFx1RkY1QVxcdTAzOTFcIiwgMTYsIFwiXFx1MDNBM1wiLCA2LCBcIlxcdTAzQjFcIiwgMTYsIFwiXFx1MDNDM1wiLCA2LCBcIlxcdTMxMDVcIiwgMTBdLFxuICAgICAgW1wiYTNhMVwiLCBcIlxcdTMxMTBcIiwgMjUsIFwiXFx1MDJEOVxcdTAyQzlcXHUwMkNBXFx1MDJDN1xcdTAyQ0JcIl0sXG4gICAgICBbXCJhM2UxXCIsIFwiXFx1MjBBQ1wiXSxcbiAgICAgIFtcImE0NDBcIiwgXCJcXHU0RTAwXFx1NEU1OVxcdTRFMDFcXHU0RTAzXFx1NEU0M1xcdTRFNURcXHU0RTg2XFx1NEU4Q1xcdTRFQkFcXHU1MTNGXFx1NTE2NVxcdTUxNkJcXHU1MUUwXFx1NTIwMFxcdTUyMDFcXHU1MjlCXFx1NTMxNVxcdTUzNDFcXHU1MzVDXFx1NTNDOFxcdTRFMDlcXHU0RTBCXFx1NEUwOFxcdTRFMEFcXHU0RTJCXFx1NEUzOFxcdTUxRTFcXHU0RTQ1XFx1NEU0OFxcdTRFNUZcXHU0RTVFXFx1NEU4RVxcdTRFQTFcXHU1MTQwXFx1NTIwM1xcdTUyRkFcXHU1MzQzXFx1NTNDOVxcdTUzRTNcXHU1NzFGXFx1NThFQlxcdTU5MTVcXHU1OTI3XFx1NTk3M1xcdTVCNTBcXHU1QjUxXFx1NUI1M1xcdTVCRjhcXHU1QzBGXFx1NUMyMlxcdTVDMzhcXHU1QzcxXFx1NURERFxcdTVERTVcXHU1REYxXFx1NURGMlxcdTVERjNcXHU1REZFXFx1NUU3MlxcdTVFRkVcXHU1RjBCXFx1NUYxM1xcdTYyNERcIl0sXG4gICAgICBbXCJhNGExXCIsIFwiXFx1NEUxMVxcdTRFMTBcXHU0RTBEXFx1NEUyRFxcdTRFMzBcXHU0RTM5XFx1NEU0QlxcdTVDMzlcXHU0RTg4XFx1NEU5MVxcdTRFOTVcXHU0RTkyXFx1NEU5NFxcdTRFQTJcXHU0RUMxXFx1NEVDMFxcdTRFQzNcXHU0RUM2XFx1NEVDN1xcdTRFQ0RcXHU0RUNBXFx1NEVDQlxcdTRFQzRcXHU1MTQzXFx1NTE0MVxcdTUxNjdcXHU1MTZEXFx1NTE2RVxcdTUxNkNcXHU1MTk3XFx1NTFGNlxcdTUyMDZcXHU1MjA3XFx1NTIwOFxcdTUyRkJcXHU1MkZFXFx1NTJGRlxcdTUzMTZcXHU1MzM5XFx1NTM0OFxcdTUzNDdcXHU1MzQ1XFx1NTM1RVxcdTUzODRcXHU1M0NCXFx1NTNDQVxcdTUzQ0RcXHU1OEVDXFx1NTkyOVxcdTU5MkJcXHU1OTJBXFx1NTkyRFxcdTVCNTRcXHU1QzExXFx1NUMyNFxcdTVDM0FcXHU1QzZGXFx1NURGNFxcdTVFN0JcXHU1RUZGXFx1NUYxNFxcdTVGMTVcXHU1RkMzXFx1NjIwOFxcdTYyMzZcXHU2MjRCXFx1NjI0RVxcdTY1MkZcXHU2NTg3XFx1NjU5N1xcdTY1QTRcXHU2NUI5XFx1NjVFNVxcdTY2RjBcXHU2NzA4XFx1NjcyOFxcdTZCMjBcXHU2QjYyXFx1NkI3OVxcdTZCQ0JcXHU2QkQ0XFx1NkJEQlxcdTZDMEZcXHU2QzM0XFx1NzA2QlxcdTcyMkFcXHU3MjM2XFx1NzIzQlxcdTcyNDdcXHU3MjU5XFx1NzI1QlxcdTcyQUNcXHU3MzhCXFx1NEUxOVwiXSxcbiAgICAgIFtcImE1NDBcIiwgXCJcXHU0RTE2XFx1NEUxNVxcdTRFMTRcXHU0RTE4XFx1NEUzQlxcdTRFNERcXHU0RTRGXFx1NEU0RVxcdTRFRTVcXHU0RUQ4XFx1NEVENFxcdTRFRDVcXHU0RUQ2XFx1NEVEN1xcdTRFRTNcXHU0RUU0XFx1NEVEOVxcdTRFREVcXHU1MTQ1XFx1NTE0NFxcdTUxODlcXHU1MThBXFx1NTFBQ1xcdTUxRjlcXHU1MUZBXFx1NTFGOFxcdTUyMEFcXHU1MkEwXFx1NTI5RlxcdTUzMDVcXHU1MzA2XFx1NTMxN1xcdTUzMURcXHU0RURGXFx1NTM0QVxcdTUzNDlcXHU1MzYxXFx1NTM2MFxcdTUzNkZcXHU1MzZFXFx1NTNCQlxcdTUzRUZcXHU1M0U0XFx1NTNGM1xcdTUzRUNcXHU1M0VFXFx1NTNFOVxcdTUzRThcXHU1M0ZDXFx1NTNGOFxcdTUzRjVcXHU1M0VCXFx1NTNFNlxcdTUzRUFcXHU1M0YyXFx1NTNGMVxcdTUzRjBcXHU1M0U1XFx1NTNFRFxcdTUzRkJcXHU1NkRCXFx1NTZEQVxcdTU5MTZcIl0sXG4gICAgICBbXCJhNWExXCIsIFwiXFx1NTkyRVxcdTU5MzFcXHU1OTc0XFx1NTk3NlxcdTVCNTVcXHU1QjgzXFx1NUMzQ1xcdTVERThcXHU1REU3XFx1NURFNlxcdTVFMDJcXHU1RTAzXFx1NUU3M1xcdTVFN0NcXHU1RjAxXFx1NUYxOFxcdTVGMTdcXHU1RkM1XFx1NjIwQVxcdTYyNTNcXHU2MjU0XFx1NjI1MlxcdTYyNTFcXHU2NUE1XFx1NjVFNlxcdTY3MkVcXHU2NzJDXFx1NjcyQVxcdTY3MkJcXHU2NzJEXFx1NkI2M1xcdTZCQ0RcXHU2QzExXFx1NkMxMFxcdTZDMzhcXHU2QzQxXFx1NkM0MFxcdTZDM0VcXHU3MkFGXFx1NzM4NFxcdTczODlcXHU3NERDXFx1NzRFNlxcdTc1MThcXHU3NTFGXFx1NzUyOFxcdTc1MjlcXHU3NTMwXFx1NzUzMVxcdTc1MzJcXHU3NTMzXFx1NzU4QlxcdTc2N0RcXHU3NkFFXFx1NzZCRlxcdTc2RUVcXHU3N0RCXFx1NzdFMlxcdTc3RjNcXHU3OTNBXFx1NzlCRVxcdTdBNzRcXHU3QUNCXFx1NEUxRVxcdTRFMUZcXHU0RTUyXFx1NEU1M1xcdTRFNjlcXHU0RTk5XFx1NEVBNFxcdTRFQTZcXHU0RUE1XFx1NEVGRlxcdTRGMDlcXHU0RjE5XFx1NEYwQVxcdTRGMTVcXHU0RjBEXFx1NEYxMFxcdTRGMTFcXHU0RjBGXFx1NEVGMlxcdTRFRjZcXHU0RUZCXFx1NEVGMFxcdTRFRjNcXHU0RUZEXFx1NEYwMVxcdTRGMEJcXHU1MTQ5XFx1NTE0N1xcdTUxNDZcXHU1MTQ4XFx1NTE2OFwiXSxcbiAgICAgIFtcImE2NDBcIiwgXCJcXHU1MTcxXFx1NTE4RFxcdTUxQjBcXHU1MjE3XFx1NTIxMVxcdTUyMTJcXHU1MjBFXFx1NTIxNlxcdTUyQTNcXHU1MzA4XFx1NTMyMVxcdTUzMjBcXHU1MzcwXFx1NTM3MVxcdTU0MDlcXHU1NDBGXFx1NTQwQ1xcdTU0MEFcXHU1NDEwXFx1NTQwMVxcdTU0MEJcXHU1NDA0XFx1NTQxMVxcdTU0MERcXHU1NDA4XFx1NTQwM1xcdTU0MEVcXHU1NDA2XFx1NTQxMlxcdTU2RTBcXHU1NkRFXFx1NTZERFxcdTU3MzNcXHU1NzMwXFx1NTcyOFxcdTU3MkRcXHU1NzJDXFx1NTcyRlxcdTU3MjlcXHU1OTE5XFx1NTkxQVxcdTU5MzdcXHU1OTM4XFx1NTk4NFxcdTU5NzhcXHU1OTgzXFx1NTk3RFxcdTU5NzlcXHU1OTgyXFx1NTk4MVxcdTVCNTdcXHU1QjU4XFx1NUI4N1xcdTVCODhcXHU1Qjg1XFx1NUI4OVxcdTVCRkFcXHU1QzE2XFx1NUM3OVxcdTVEREVcXHU1RTA2XFx1NUU3NlxcdTVFNzRcIl0sXG4gICAgICBbXCJhNmExXCIsIFwiXFx1NUYwRlxcdTVGMUJcXHU1RkQ5XFx1NUZENlxcdTYyMEVcXHU2MjBDXFx1NjIwRFxcdTYyMTBcXHU2MjYzXFx1NjI1QlxcdTYyNThcXHU2NTM2XFx1NjVFOVxcdTY1RThcXHU2NUVDXFx1NjVFRFxcdTY2RjJcXHU2NkYzXFx1NjcwOVxcdTY3M0RcXHU2NzM0XFx1NjczMVxcdTY3MzVcXHU2QjIxXFx1NkI2NFxcdTZCN0JcXHU2QzE2XFx1NkM1RFxcdTZDNTdcXHU2QzU5XFx1NkM1RlxcdTZDNjBcXHU2QzUwXFx1NkM1NVxcdTZDNjFcXHU2QzVCXFx1NkM0RFxcdTZDNEVcXHU3MDcwXFx1NzI1RlxcdTcyNURcXHU3NjdFXFx1N0FGOVxcdTdDNzNcXHU3Q0Y4XFx1N0YzNlxcdTdGOEFcXHU3RkJEXFx1ODAwMVxcdTgwMDNcXHU4MDBDXFx1ODAxMlxcdTgwMzNcXHU4MDdGXFx1ODA4OVxcdTgwOEJcXHU4MDhDXFx1ODFFM1xcdTgxRUFcXHU4MUYzXFx1ODFGQ1xcdTgyMENcXHU4MjFCXFx1ODIxRlxcdTgyNkVcXHU4MjcyXFx1ODI3RVxcdTg2NkJcXHU4ODQwXFx1ODg0Q1xcdTg4NjNcXHU4OTdGXFx1OTYyMVxcdTRFMzJcXHU0RUE4XFx1NEY0RFxcdTRGNEZcXHU0RjQ3XFx1NEY1N1xcdTRGNUVcXHU0RjM0XFx1NEY1QlxcdTRGNTVcXHU0RjMwXFx1NEY1MFxcdTRGNTFcXHU0RjNEXFx1NEYzQVxcdTRGMzhcXHU0RjQzXFx1NEY1NFxcdTRGM0NcXHU0RjQ2XFx1NEY2M1wiXSxcbiAgICAgIFtcImE3NDBcIiwgXCJcXHU0RjVDXFx1NEY2MFxcdTRGMkZcXHU0RjRFXFx1NEYzNlxcdTRGNTlcXHU0RjVEXFx1NEY0OFxcdTRGNUFcXHU1MTRDXFx1NTE0QlxcdTUxNERcXHU1MTc1XFx1NTFCNlxcdTUxQjdcXHU1MjI1XFx1NTIyNFxcdTUyMjlcXHU1MjJBXFx1NTIyOFxcdTUyQUJcXHU1MkE5XFx1NTJBQVxcdTUyQUNcXHU1MzIzXFx1NTM3M1xcdTUzNzVcXHU1NDFEXFx1NTQyRFxcdTU0MUVcXHU1NDNFXFx1NTQyNlxcdTU0NEVcXHU1NDI3XFx1NTQ0NlxcdTU0NDNcXHU1NDMzXFx1NTQ0OFxcdTU0NDJcXHU1NDFCXFx1NTQyOVxcdTU0NEFcXHU1NDM5XFx1NTQzQlxcdTU0MzhcXHU1NDJFXFx1NTQzNVxcdTU0MzZcXHU1NDIwXFx1NTQzQ1xcdTU0NDBcXHU1NDMxXFx1NTQyQlxcdTU0MUZcXHU1NDJDXFx1NTZFQVxcdTU2RjBcXHU1NkU0XFx1NTZFQlxcdTU3NEFcXHU1NzUxXFx1NTc0MFxcdTU3NERcIl0sXG4gICAgICBbXCJhN2ExXCIsIFwiXFx1NTc0N1xcdTU3NEVcXHU1NzNFXFx1NTc1MFxcdTU3NEZcXHU1NzNCXFx1NThFRlxcdTU5M0VcXHU1OTlEXFx1NTk5MlxcdTU5QThcXHU1OTlFXFx1NTlBM1xcdTU5OTlcXHU1OTk2XFx1NTk4RFxcdTU5QTRcXHU1OTkzXFx1NTk4QVxcdTU5QTVcXHU1QjVEXFx1NUI1Q1xcdTVCNUFcXHU1QjVCXFx1NUI4Q1xcdTVCOEJcXHU1QjhGXFx1NUMyQ1xcdTVDNDBcXHU1QzQxXFx1NUMzRlxcdTVDM0VcXHU1QzkwXFx1NUM5MVxcdTVDOTRcXHU1QzhDXFx1NURFQlxcdTVFMENcXHU1RThGXFx1NUU4N1xcdTVFOEFcXHU1RUY3XFx1NUYwNFxcdTVGMUZcXHU1RjY0XFx1NUY2MlxcdTVGNzdcXHU1Rjc5XFx1NUZEOFxcdTVGQ0NcXHU1RkQ3XFx1NUZDRFxcdTVGRjFcXHU1RkVCXFx1NUZGOFxcdTVGRUFcXHU2MjEyXFx1NjIxMVxcdTYyODRcXHU2Mjk3XFx1NjI5NlxcdTYyODBcXHU2Mjc2XFx1NjI4OVxcdTYyNkRcXHU2MjhBXFx1NjI3Q1xcdTYyN0VcXHU2Mjc5XFx1NjI3M1xcdTYyOTJcXHU2MjZGXFx1NjI5OFxcdTYyNkVcXHU2Mjk1XFx1NjI5M1xcdTYyOTFcXHU2Mjg2XFx1NjUzOVxcdTY1M0JcXHU2NTM4XFx1NjVGMVxcdTY2RjRcXHU2NzVGXFx1Njc0RVxcdTY3NEZcXHU2NzUwXFx1Njc1MVxcdTY3NUNcXHU2NzU2XFx1Njc1RVxcdTY3NDlcXHU2NzQ2XFx1Njc2MFwiXSxcbiAgICAgIFtcImE4NDBcIiwgXCJcXHU2NzUzXFx1Njc1N1xcdTZCNjVcXHU2QkNGXFx1NkM0MlxcdTZDNUVcXHU2Qzk5XFx1NkM4MVxcdTZDODhcXHU2Qzg5XFx1NkM4NVxcdTZDOUJcXHU2QzZBXFx1NkM3QVxcdTZDOTBcXHU2QzcwXFx1NkM4Q1xcdTZDNjhcXHU2Qzk2XFx1NkM5MlxcdTZDN0RcXHU2QzgzXFx1NkM3MlxcdTZDN0VcXHU2Qzc0XFx1NkM4NlxcdTZDNzZcXHU2QzhEXFx1NkM5NFxcdTZDOThcXHU2QzgyXFx1NzA3NlxcdTcwN0NcXHU3MDdEXFx1NzA3OFxcdTcyNjJcXHU3MjYxXFx1NzI2MFxcdTcyQzRcXHU3MkMyXFx1NzM5NlxcdTc1MkNcXHU3NTJCXFx1NzUzN1xcdTc1MzhcXHU3NjgyXFx1NzZFRlxcdTc3RTNcXHU3OUMxXFx1NzlDMFxcdTc5QkZcXHU3QTc2XFx1N0NGQlxcdTdGNTVcXHU4MDk2XFx1ODA5M1xcdTgwOURcXHU4MDk4XFx1ODA5QlxcdTgwOUFcXHU4MEIyXFx1ODI2RlxcdTgyOTJcIl0sXG4gICAgICBbXCJhOGExXCIsIFwiXFx1ODI4QlxcdTgyOERcXHU4OThCXFx1ODlEMlxcdThBMDBcXHU4QzM3XFx1OEM0NlxcdThDNTVcXHU4QzlEXFx1OEQ2NFxcdThENzBcXHU4REIzXFx1OEVBQlxcdThFQ0FcXHU4RjlCXFx1OEZCMFxcdThGQzJcXHU4RkM2XFx1OEZDNVxcdThGQzRcXHU1REUxXFx1OTA5MVxcdTkwQTJcXHU5MEFBXFx1OTBBNlxcdTkwQTNcXHU5MTQ5XFx1OTFDNlxcdTkxQ0NcXHU5NjMyXFx1OTYyRVxcdTk2MzFcXHU5NjJBXFx1OTYyQ1xcdTRFMjZcXHU0RTU2XFx1NEU3M1xcdTRFOEJcXHU0RTlCXFx1NEU5RVxcdTRFQUJcXHU0RUFDXFx1NEY2RlxcdTRGOURcXHU0RjhEXFx1NEY3M1xcdTRGN0ZcXHU0RjZDXFx1NEY5QlxcdTRGOEJcXHU0Rjg2XFx1NEY4M1xcdTRGNzBcXHU0Rjc1XFx1NEY4OFxcdTRGNjlcXHU0RjdCXFx1NEY5NlxcdTRGN0VcXHU0RjhGXFx1NEY5MVxcdTRGN0FcXHU1MTU0XFx1NTE1MlxcdTUxNTVcXHU1MTY5XFx1NTE3N1xcdTUxNzZcXHU1MTc4XFx1NTFCRFxcdTUxRkRcXHU1MjNCXFx1NTIzOFxcdTUyMzdcXHU1MjNBXFx1NTIzMFxcdTUyMkVcXHU1MjM2XFx1NTI0MVxcdTUyQkVcXHU1MkJCXFx1NTM1MlxcdTUzNTRcXHU1MzUzXFx1NTM1MVxcdTUzNjZcXHU1Mzc3XFx1NTM3OFxcdTUzNzlcXHU1M0Q2XFx1NTNENFxcdTUzRDdcXHU1NDczXFx1NTQ3NVwiXSxcbiAgICAgIFtcImE5NDBcIiwgXCJcXHU1NDk2XFx1NTQ3OFxcdTU0OTVcXHU1NDgwXFx1NTQ3QlxcdTU0NzdcXHU1NDg0XFx1NTQ5MlxcdTU0ODZcXHU1NDdDXFx1NTQ5MFxcdTU0NzFcXHU1NDc2XFx1NTQ4Q1xcdTU0OUFcXHU1NDYyXFx1NTQ2OFxcdTU0OEJcXHU1NDdEXFx1NTQ4RVxcdTU2RkFcXHU1NzgzXFx1NTc3N1xcdTU3NkFcXHU1NzY5XFx1NTc2MVxcdTU3NjZcXHU1NzY0XFx1NTc3Q1xcdTU5MUNcXHU1OTQ5XFx1NTk0N1xcdTU5NDhcXHU1OTQ0XFx1NTk1NFxcdTU5QkVcXHU1OUJCXFx1NTlENFxcdTU5QjlcXHU1OUFFXFx1NTlEMVxcdTU5QzZcXHU1OUQwXFx1NTlDRFxcdTU5Q0JcXHU1OUQzXFx1NTlDQVxcdTU5QUZcXHU1OUIzXFx1NTlEMlxcdTU5QzVcXHU1QjVGXFx1NUI2NFxcdTVCNjNcXHU1Qjk3XFx1NUI5QVxcdTVCOThcXHU1QjlDXFx1NUI5OVxcdTVCOUJcXHU1QzFBXFx1NUM0OFxcdTVDNDVcIl0sXG4gICAgICBbXCJhOWExXCIsIFwiXFx1NUM0NlxcdTVDQjdcXHU1Q0ExXFx1NUNCOFxcdTVDQTlcXHU1Q0FCXFx1NUNCMVxcdTVDQjNcXHU1RTE4XFx1NUUxQVxcdTVFMTZcXHU1RTE1XFx1NUUxQlxcdTVFMTFcXHU1RTc4XFx1NUU5QVxcdTVFOTdcXHU1RTlDXFx1NUU5NVxcdTVFOTZcXHU1RUY2XFx1NUYyNlxcdTVGMjdcXHU1RjI5XFx1NUY4MFxcdTVGODFcXHU1RjdGXFx1NUY3Q1xcdTVGRERcXHU1RkUwXFx1NUZGRFxcdTVGRjVcXHU1RkZGXFx1NjAwRlxcdTYwMTRcXHU2MDJGXFx1NjAzNVxcdTYwMTZcXHU2MDJBXFx1NjAxNVxcdTYwMjFcXHU2MDI3XFx1NjAyOVxcdTYwMkJcXHU2MDFCXFx1NjIxNlxcdTYyMTVcXHU2MjNGXFx1NjIzRVxcdTYyNDBcXHU2MjdGXFx1NjJDOVxcdTYyQ0NcXHU2MkM0XFx1NjJCRlxcdTYyQzJcXHU2MkI5XFx1NjJEMlxcdTYyREJcXHU2MkFCXFx1NjJEM1xcdTYyRDRcXHU2MkNCXFx1NjJDOFxcdTYyQThcXHU2MkJEXFx1NjJCQ1xcdTYyRDBcXHU2MkQ5XFx1NjJDN1xcdTYyQ0RcXHU2MkI1XFx1NjJEQVxcdTYyQjFcXHU2MkQ4XFx1NjJENlxcdTYyRDdcXHU2MkM2XFx1NjJBQ1xcdTYyQ0VcXHU2NTNFXFx1NjVBN1xcdTY1QkNcXHU2NUZBXFx1NjYxNFxcdTY2MTNcXHU2NjBDXFx1NjYwNlxcdTY2MDJcXHU2NjBFXFx1NjYwMFxcdTY2MEZcXHU2NjE1XFx1NjYwQVwiXSxcbiAgICAgIFtcImFhNDBcIiwgXCJcXHU2NjA3XFx1NjcwRFxcdTY3MEJcXHU2NzZEXFx1Njc4QlxcdTY3OTVcXHU2NzcxXFx1Njc5Q1xcdTY3NzNcXHU2Nzc3XFx1Njc4N1xcdTY3OURcXHU2Nzk3XFx1Njc2RlxcdTY3NzBcXHU2NzdGXFx1Njc4OVxcdTY3N0VcXHU2NzkwXFx1Njc3NVxcdTY3OUFcXHU2NzkzXFx1Njc3Q1xcdTY3NkFcXHU2NzcyXFx1NkIyM1xcdTZCNjZcXHU2QjY3XFx1NkI3RlxcdTZDMTNcXHU2QzFCXFx1NkNFM1xcdTZDRThcXHU2Q0YzXFx1NkNCMVxcdTZDQ0NcXHU2Q0U1XFx1NkNCM1xcdTZDQkRcXHU2Q0JFXFx1NkNCQ1xcdTZDRTJcXHU2Q0FCXFx1NkNENVxcdTZDRDNcXHU2Q0I4XFx1NkNDNFxcdTZDQjlcXHU2Q0MxXFx1NkNBRVxcdTZDRDdcXHU2Q0M1XFx1NkNGMVxcdTZDQkZcXHU2Q0JCXFx1NkNFMVxcdTZDREJcXHU2Q0NBXFx1NkNBQ1xcdTZDRUZcXHU2Q0RDXFx1NkNENlxcdTZDRTBcIl0sXG4gICAgICBbXCJhYWExXCIsIFwiXFx1NzA5NVxcdTcwOEVcXHU3MDkyXFx1NzA4QVxcdTcwOTlcXHU3MjJDXFx1NzIyRFxcdTcyMzhcXHU3MjQ4XFx1NzI2N1xcdTcyNjlcXHU3MkMwXFx1NzJDRVxcdTcyRDlcXHU3MkQ3XFx1NzJEMFxcdTczQTlcXHU3M0E4XFx1NzM5RlxcdTczQUJcXHU3M0E1XFx1NzUzRFxcdTc1OURcXHU3NTk5XFx1NzU5QVxcdTc2ODRcXHU3NkMyXFx1NzZGMlxcdTc2RjRcXHU3N0U1XFx1NzdGRFxcdTc5M0VcXHU3OTQwXFx1Nzk0MVxcdTc5QzlcXHU3OUM4XFx1N0E3QVxcdTdBNzlcXHU3QUZBXFx1N0NGRVxcdTdGNTRcXHU3RjhDXFx1N0Y4QlxcdTgwMDVcXHU4MEJBXFx1ODBBNVxcdTgwQTJcXHU4MEIxXFx1ODBBMVxcdTgwQUJcXHU4MEE5XFx1ODBCNFxcdTgwQUFcXHU4MEFGXFx1ODFFNVxcdTgxRkVcXHU4MjBEXFx1ODJCM1xcdTgyOURcXHU4Mjk5XFx1ODJBRFxcdTgyQkRcXHU4MjlGXFx1ODJCOVxcdTgyQjFcXHU4MkFDXFx1ODJBNVxcdTgyQUZcXHU4MkI4XFx1ODJBM1xcdTgyQjBcXHU4MkJFXFx1ODJCN1xcdTg2NEVcXHU4NjcxXFx1NTIxRFxcdTg4NjhcXHU4RUNCXFx1OEZDRVxcdThGRDRcXHU4RkQxXFx1OTBCNVxcdTkwQjhcXHU5MEIxXFx1OTBCNlxcdTkxQzdcXHU5MUQxXFx1OTU3N1xcdTk1ODBcXHU5NjFDXFx1OTY0MFxcdTk2M0ZcXHU5NjNCXFx1OTY0NFwiXSxcbiAgICAgIFtcImFiNDBcIiwgXCJcXHU5NjQyXFx1OTZCOVxcdTk2RThcXHU5NzUyXFx1OTc1RVxcdTRFOUZcXHU0RUFEXFx1NEVBRVxcdTRGRTFcXHU0RkI1XFx1NEZBRlxcdTRGQkZcXHU0RkUwXFx1NEZEMVxcdTRGQ0ZcXHU0RkREXFx1NEZDM1xcdTRGQjZcXHU0RkQ4XFx1NEZERlxcdTRGQ0FcXHU0RkQ3XFx1NEZBRVxcdTRGRDBcXHU0RkM0XFx1NEZDMlxcdTRGREFcXHU0RkNFXFx1NEZERVxcdTRGQjdcXHU1MTU3XFx1NTE5MlxcdTUxOTFcXHU1MUEwXFx1NTI0RVxcdTUyNDNcXHU1MjRBXFx1NTI0RFxcdTUyNENcXHU1MjRCXFx1NTI0N1xcdTUyQzdcXHU1MkM5XFx1NTJDM1xcdTUyQzFcXHU1MzBEXFx1NTM1N1xcdTUzN0JcXHU1MzlBXFx1NTNEQlxcdTU0QUNcXHU1NEMwXFx1NTRBOFxcdTU0Q0VcXHU1NEM5XFx1NTRCOFxcdTU0QTZcXHU1NEIzXFx1NTRDN1xcdTU0QzJcXHU1NEJEXFx1NTRBQVxcdTU0QzFcIl0sXG4gICAgICBbXCJhYmExXCIsIFwiXFx1NTRDNFxcdTU0QzhcXHU1NEFGXFx1NTRBQlxcdTU0QjFcXHU1NEJCXFx1NTRBOVxcdTU0QTdcXHU1NEJGXFx1NTZGRlxcdTU3ODJcXHU1NzhCXFx1NTdBMFxcdTU3QTNcXHU1N0EyXFx1NTdDRVxcdTU3QUVcXHU1NzkzXFx1NTk1NVxcdTU5NTFcXHU1OTRGXFx1NTk0RVxcdTU5NTBcXHU1OURDXFx1NTlEOFxcdTU5RkZcXHU1OUUzXFx1NTlFOFxcdTVBMDNcXHU1OUU1XFx1NTlFQVxcdTU5REFcXHU1OUU2XFx1NUEwMVxcdTU5RkJcXHU1QjY5XFx1NUJBM1xcdTVCQTZcXHU1QkE0XFx1NUJBMlxcdTVCQTVcXHU1QzAxXFx1NUM0RVxcdTVDNEZcXHU1QzREXFx1NUM0QlxcdTVDRDlcXHU1Q0QyXFx1NURGN1xcdTVFMURcXHU1RTI1XFx1NUUxRlxcdTVFN0RcXHU1RUEwXFx1NUVBNlxcdTVFRkFcXHU1RjA4XFx1NUYyRFxcdTVGNjVcXHU1Rjg4XFx1NUY4NVxcdTVGOEFcXHU1RjhCXFx1NUY4N1xcdTVGOENcXHU1Rjg5XFx1NjAxMlxcdTYwMURcXHU2MDIwXFx1NjAyNVxcdTYwMEVcXHU2MDI4XFx1NjA0RFxcdTYwNzBcXHU2MDY4XFx1NjA2MlxcdTYwNDZcXHU2MDQzXFx1NjA2Q1xcdTYwNkJcXHU2MDZBXFx1NjA2NFxcdTYyNDFcXHU2MkRDXFx1NjMxNlxcdTYzMDlcXHU2MkZDXFx1NjJFRFxcdTYzMDFcXHU2MkVFXFx1NjJGRFxcdTYzMDdcXHU2MkYxXFx1NjJGN1wiXSxcbiAgICAgIFtcImFjNDBcIiwgXCJcXHU2MkVGXFx1NjJFQ1xcdTYyRkVcXHU2MkY0XFx1NjMxMVxcdTYzMDJcXHU2NTNGXFx1NjU0NVxcdTY1QUJcXHU2NUJEXFx1NjVFMlxcdTY2MjVcXHU2NjJEXFx1NjYyMFxcdTY2MjdcXHU2NjJGXFx1NjYxRlxcdTY2MjhcXHU2NjMxXFx1NjYyNFxcdTY2RjdcXHU2N0ZGXFx1NjdEM1xcdTY3RjFcXHU2N0Q0XFx1NjdEMFxcdTY3RUNcXHU2N0I2XFx1NjdBRlxcdTY3RjVcXHU2N0U5XFx1NjdFRlxcdTY3QzRcXHU2N0QxXFx1NjdCNFxcdTY3REFcXHU2N0U1XFx1NjdCOFxcdTY3Q0ZcXHU2N0RFXFx1NjdGM1xcdTY3QjBcXHU2N0Q5XFx1NjdFMlxcdTY3RERcXHU2N0QyXFx1NkI2QVxcdTZCODNcXHU2Qjg2XFx1NkJCNVxcdTZCRDJcXHU2QkQ3XFx1NkMxRlxcdTZDQzlcXHU2RDBCXFx1NkQzMlxcdTZEMkFcXHU2RDQxXFx1NkQyNVxcdTZEMENcXHU2RDMxXFx1NkQxRVxcdTZEMTdcIl0sXG4gICAgICBbXCJhY2ExXCIsIFwiXFx1NkQzQlxcdTZEM0RcXHU2RDNFXFx1NkQzNlxcdTZEMUJcXHU2Q0Y1XFx1NkQzOVxcdTZEMjdcXHU2RDM4XFx1NkQyOVxcdTZEMkVcXHU2RDM1XFx1NkQwRVxcdTZEMkJcXHU3MEFCXFx1NzBCQVxcdTcwQjNcXHU3MEFDXFx1NzBBRlxcdTcwQURcXHU3MEI4XFx1NzBBRVxcdTcwQTRcXHU3MjMwXFx1NzI3MlxcdTcyNkZcXHU3Mjc0XFx1NzJFOVxcdTcyRTBcXHU3MkUxXFx1NzNCN1xcdTczQ0FcXHU3M0JCXFx1NzNCMlxcdTczQ0RcXHU3M0MwXFx1NzNCM1xcdTc1MUFcXHU3NTJEXFx1NzU0RlxcdTc1NENcXHU3NTRFXFx1NzU0QlxcdTc1QUJcXHU3NUE0XFx1NzVBNVxcdTc1QTJcXHU3NUEzXFx1NzY3OFxcdTc2ODZcXHU3Njg3XFx1NzY4OFxcdTc2QzhcXHU3NkM2XFx1NzZDM1xcdTc2QzVcXHU3NzAxXFx1NzZGOVxcdTc2RjhcXHU3NzA5XFx1NzcwQlxcdTc2RkVcXHU3NkZDXFx1NzcwN1xcdTc3RENcXHU3ODAyXFx1NzgxNFxcdTc4MENcXHU3ODBEXFx1Nzk0NlxcdTc5NDlcXHU3OTQ4XFx1Nzk0N1xcdTc5QjlcXHU3OUJBXFx1NzlEMVxcdTc5RDJcXHU3OUNCXFx1N0E3RlxcdTdBODFcXHU3QUZGXFx1N0FGRFxcdTdDN0RcXHU3RDAyXFx1N0QwNVxcdTdEMDBcXHU3RDA5XFx1N0QwN1xcdTdEMDRcXHU3RDA2XFx1N0YzOFxcdTdGOEVcXHU3RkJGXFx1ODAwNFwiXSxcbiAgICAgIFtcImFkNDBcIiwgXCJcXHU4MDEwXFx1ODAwRFxcdTgwMTFcXHU4MDM2XFx1ODBENlxcdTgwRTVcXHU4MERBXFx1ODBDM1xcdTgwQzRcXHU4MENDXFx1ODBFMVxcdTgwREJcXHU4MENFXFx1ODBERVxcdTgwRTRcXHU4MEREXFx1ODFGNFxcdTgyMjJcXHU4MkU3XFx1ODMwM1xcdTgzMDVcXHU4MkUzXFx1ODJEQlxcdTgyRTZcXHU4MzA0XFx1ODJFNVxcdTgzMDJcXHU4MzA5XFx1ODJEMlxcdTgyRDdcXHU4MkYxXFx1ODMwMVxcdTgyRENcXHU4MkQ0XFx1ODJEMVxcdTgyREVcXHU4MkQzXFx1ODJERlxcdTgyRUZcXHU4MzA2XFx1ODY1MFxcdTg2NzlcXHU4NjdCXFx1ODY3QVxcdTg4NERcXHU4ODZCXFx1ODk4MVxcdTg5RDRcXHU4QTA4XFx1OEEwMlxcdThBMDNcXHU4QzlFXFx1OENBMFxcdThENzRcXHU4RDczXFx1OERCNFxcdThFQ0RcXHU4RUNDXFx1OEZGMFxcdThGRTZcXHU4RkUyXFx1OEZFQVxcdThGRTVcIl0sXG4gICAgICBbXCJhZGExXCIsIFwiXFx1OEZFRFxcdThGRUJcXHU4RkU0XFx1OEZFOFxcdTkwQ0FcXHU5MENFXFx1OTBDMVxcdTkwQzNcXHU5MTRCXFx1OTE0QVxcdTkxQ0RcXHU5NTgyXFx1OTY1MFxcdTk2NEJcXHU5NjRDXFx1OTY0RFxcdTk3NjJcXHU5NzY5XFx1OTdDQlxcdTk3RURcXHU5N0YzXFx1OTgwMVxcdTk4QThcXHU5OERCXFx1OThERlxcdTk5OTZcXHU5OTk5XFx1NEU1OFxcdTRFQjNcXHU1MDBDXFx1NTAwRFxcdTUwMjNcXHU0RkVGXFx1NTAyNlxcdTUwMjVcXHU0RkY4XFx1NTAyOVxcdTUwMTZcXHU1MDA2XFx1NTAzQ1xcdTUwMUZcXHU1MDFBXFx1NTAxMlxcdTUwMTFcXHU0RkZBXFx1NTAwMFxcdTUwMTRcXHU1MDI4XFx1NEZGMVxcdTUwMjFcXHU1MDBCXFx1NTAxOVxcdTUwMThcXHU0RkYzXFx1NEZFRVxcdTUwMkRcXHU1MDJBXFx1NEZGRVxcdTUwMkJcXHU1MDA5XFx1NTE3Q1xcdTUxQTRcXHU1MUE1XFx1NTFBMlxcdTUxQ0RcXHU1MUNDXFx1NTFDNlxcdTUxQ0JcXHU1MjU2XFx1NTI1Q1xcdTUyNTRcXHU1MjVCXFx1NTI1RFxcdTUzMkFcXHU1MzdGXFx1NTM5RlxcdTUzOURcXHU1M0RGXFx1NTRFOFxcdTU1MTBcXHU1NTAxXFx1NTUzN1xcdTU0RkNcXHU1NEU1XFx1NTRGMlxcdTU1MDZcXHU1NEZBXFx1NTUxNFxcdTU0RTlcXHU1NEVEXFx1NTRFMVxcdTU1MDlcXHU1NEVFXFx1NTRFQVwiXSxcbiAgICAgIFtcImFlNDBcIiwgXCJcXHU1NEU2XFx1NTUyN1xcdTU1MDdcXHU1NEZEXFx1NTUwRlxcdTU3MDNcXHU1NzA0XFx1NTdDMlxcdTU3RDRcXHU1N0NCXFx1NTdDM1xcdTU4MDlcXHU1OTBGXFx1NTk1N1xcdTU5NThcXHU1OTVBXFx1NUExMVxcdTVBMThcXHU1QTFDXFx1NUExRlxcdTVBMUJcXHU1QTEzXFx1NTlFQ1xcdTVBMjBcXHU1QTIzXFx1NUEyOVxcdTVBMjVcXHU1QTBDXFx1NUEwOVxcdTVCNkJcXHU1QzU4XFx1NUJCMFxcdTVCQjNcXHU1QkI2XFx1NUJCNFxcdTVCQUVcXHU1QkI1XFx1NUJCOVxcdTVCQjhcXHU1QzA0XFx1NUM1MVxcdTVDNTVcXHU1QzUwXFx1NUNFRFxcdTVDRkRcXHU1Q0ZCXFx1NUNFQVxcdTVDRThcXHU1Q0YwXFx1NUNGNlxcdTVEMDFcXHU1Q0Y0XFx1NURFRVxcdTVFMkRcXHU1RTJCXFx1NUVBQlxcdTVFQURcXHU1RUE3XFx1NUYzMVxcdTVGOTJcXHU1RjkxXFx1NUY5MFxcdTYwNTlcIl0sXG4gICAgICBbXCJhZWExXCIsIFwiXFx1NjA2M1xcdTYwNjVcXHU2MDUwXFx1NjA1NVxcdTYwNkRcXHU2MDY5XFx1NjA2RlxcdTYwODRcXHU2MDlGXFx1NjA5QVxcdTYwOERcXHU2MDk0XFx1NjA4Q1xcdTYwODVcXHU2MDk2XFx1NjI0N1xcdTYyRjNcXHU2MzA4XFx1NjJGRlxcdTYzNEVcXHU2MzNFXFx1NjMyRlxcdTYzNTVcXHU2MzQyXFx1NjM0NlxcdTYzNEZcXHU2MzQ5XFx1NjMzQVxcdTYzNTBcXHU2MzNEXFx1NjMyQVxcdTYzMkJcXHU2MzI4XFx1NjM0RFxcdTYzNENcXHU2NTQ4XFx1NjU0OVxcdTY1OTlcXHU2NUMxXFx1NjVDNVxcdTY2NDJcXHU2NjQ5XFx1NjY0RlxcdTY2NDNcXHU2NjUyXFx1NjY0Q1xcdTY2NDVcXHU2NjQxXFx1NjZGOFxcdTY3MTRcXHU2NzE1XFx1NjcxN1xcdTY4MjFcXHU2ODM4XFx1Njg0OFxcdTY4NDZcXHU2ODUzXFx1NjgzOVxcdTY4NDJcXHU2ODU0XFx1NjgyOVxcdTY4QjNcXHU2ODE3XFx1Njg0Q1xcdTY4NTFcXHU2ODNEXFx1NjdGNFxcdTY4NTBcXHU2ODQwXFx1NjgzQ1xcdTY4NDNcXHU2ODJBXFx1Njg0NVxcdTY4MTNcXHU2ODE4XFx1Njg0MVxcdTZCOEFcXHU2Qjg5XFx1NkJCN1xcdTZDMjNcXHU2QzI3XFx1NkMyOFxcdTZDMjZcXHU2QzI0XFx1NkNGMFxcdTZENkFcXHU2RDk1XFx1NkQ4OFxcdTZEODdcXHU2RDY2XFx1NkQ3OFxcdTZENzdcXHU2RDU5XFx1NkQ5M1wiXSxcbiAgICAgIFtcImFmNDBcIiwgXCJcXHU2RDZDXFx1NkQ4OVxcdTZENkVcXHU2RDVBXFx1NkQ3NFxcdTZENjlcXHU2RDhDXFx1NkQ4QVxcdTZENzlcXHU2RDg1XFx1NkQ2NVxcdTZEOTRcXHU3MENBXFx1NzBEOFxcdTcwRTRcXHU3MEQ5XFx1NzBDOFxcdTcwQ0ZcXHU3MjM5XFx1NzI3OVxcdTcyRkNcXHU3MkY5XFx1NzJGRFxcdTcyRjhcXHU3MkY3XFx1NzM4NlxcdTczRURcXHU3NDA5XFx1NzNFRVxcdTczRTBcXHU3M0VBXFx1NzNERVxcdTc1NTRcXHU3NTVEXFx1NzU1Q1xcdTc1NUFcXHU3NTU5XFx1NzVCRVxcdTc1QzVcXHU3NUM3XFx1NzVCMlxcdTc1QjNcXHU3NUJEXFx1NzVCQ1xcdTc1QjlcXHU3NUMyXFx1NzVCOFxcdTc2OEJcXHU3NkIwXFx1NzZDQVxcdTc2Q0RcXHU3NkNFXFx1NzcyOVxcdTc3MUZcXHU3NzIwXFx1NzcyOFxcdTc3RTlcXHU3ODMwXFx1NzgyN1xcdTc4MzhcXHU3ODFEXFx1NzgzNFxcdTc4MzdcIl0sXG4gICAgICBbXCJhZmExXCIsIFwiXFx1NzgyNVxcdTc4MkRcXHU3ODIwXFx1NzgxRlxcdTc4MzJcXHU3OTU1XFx1Nzk1MFxcdTc5NjBcXHU3OTVGXFx1Nzk1NlxcdTc5NUVcXHU3OTVEXFx1Nzk1N1xcdTc5NUFcXHU3OUU0XFx1NzlFM1xcdTc5RTdcXHU3OURGXFx1NzlFNlxcdTc5RTlcXHU3OUQ4XFx1N0E4NFxcdTdBODhcXHU3QUQ5XFx1N0IwNlxcdTdCMTFcXHU3Qzg5XFx1N0QyMVxcdTdEMTdcXHU3RDBCXFx1N0QwQVxcdTdEMjBcXHU3RDIyXFx1N0QxNFxcdTdEMTBcXHU3RDE1XFx1N0QxQVxcdTdEMUNcXHU3RDBEXFx1N0QxOVxcdTdEMUJcXHU3RjNBXFx1N0Y1RlxcdTdGOTRcXHU3RkM1XFx1N0ZDMVxcdTgwMDZcXHU4MDE4XFx1ODAxNVxcdTgwMTlcXHU4MDE3XFx1ODAzRFxcdTgwM0ZcXHU4MEYxXFx1ODEwMlxcdTgwRjBcXHU4MTA1XFx1ODBFRFxcdTgwRjRcXHU4MTA2XFx1ODBGOFxcdTgwRjNcXHU4MTA4XFx1ODBGRFxcdTgxMEFcXHU4MEZDXFx1ODBFRlxcdTgxRURcXHU4MUVDXFx1ODIwMFxcdTgyMTBcXHU4MjJBXFx1ODIyQlxcdTgyMjhcXHU4MjJDXFx1ODJCQlxcdTgzMkJcXHU4MzUyXFx1ODM1NFxcdTgzNEFcXHU4MzM4XFx1ODM1MFxcdTgzNDlcXHU4MzM1XFx1ODMzNFxcdTgzNEZcXHU4MzMyXFx1ODMzOVxcdTgzMzZcXHU4MzE3XFx1ODM0MFxcdTgzMzFcXHU4MzI4XFx1ODM0M1wiXSxcbiAgICAgIFtcImIwNDBcIiwgXCJcXHU4NjU0XFx1ODY4QVxcdTg2QUFcXHU4NjkzXFx1ODZBNFxcdTg2QTlcXHU4NjhDXFx1ODZBM1xcdTg2OUNcXHU4ODcwXFx1ODg3N1xcdTg4ODFcXHU4ODgyXFx1ODg3RFxcdTg4NzlcXHU4QTE4XFx1OEExMFxcdThBMEVcXHU4QTBDXFx1OEExNVxcdThBMEFcXHU4QTE3XFx1OEExM1xcdThBMTZcXHU4QTBGXFx1OEExMVxcdThDNDhcXHU4QzdBXFx1OEM3OVxcdThDQTFcXHU4Q0EyXFx1OEQ3N1xcdThFQUNcXHU4RUQyXFx1OEVENFxcdThFQ0ZcXHU4RkIxXFx1OTAwMVxcdTkwMDZcXHU4RkY3XFx1OTAwMFxcdThGRkFcXHU4RkY0XFx1OTAwM1xcdThGRkRcXHU5MDA1XFx1OEZGOFxcdTkwOTVcXHU5MEUxXFx1OTBERFxcdTkwRTJcXHU5MTUyXFx1OTE0RFxcdTkxNENcXHU5MUQ4XFx1OTFERFxcdTkxRDdcXHU5MURDXFx1OTFEOVxcdTk1ODNcXHU5NjYyXFx1OTY2M1xcdTk2NjFcIl0sXG4gICAgICBbXCJiMGExXCIsIFwiXFx1OTY1QlxcdTk2NURcXHU5NjY0XFx1OTY1OFxcdTk2NUVcXHU5NkJCXFx1OThFMlxcdTk5QUNcXHU5QUE4XFx1OUFEOFxcdTlCMjVcXHU5QjMyXFx1OUIzQ1xcdTRFN0VcXHU1MDdBXFx1NTA3RFxcdTUwNUNcXHU1MDQ3XFx1NTA0M1xcdTUwNENcXHU1MDVBXFx1NTA0OVxcdTUwNjVcXHU1MDc2XFx1NTA0RVxcdTUwNTVcXHU1MDc1XFx1NTA3NFxcdTUwNzdcXHU1MDRGXFx1NTAwRlxcdTUwNkZcXHU1MDZEXFx1NTE1Q1xcdTUxOTVcXHU1MUYwXFx1NTI2QVxcdTUyNkZcXHU1MkQyXFx1NTJEOVxcdTUyRDhcXHU1MkQ1XFx1NTMxMFxcdTUzMEZcXHU1MzE5XFx1NTMzRlxcdTUzNDBcXHU1MzNFXFx1NTNDM1xcdTY2RkNcXHU1NTQ2XFx1NTU2QVxcdTU1NjZcXHU1NTQ0XFx1NTU1RVxcdTU1NjFcXHU1NTQzXFx1NTU0QVxcdTU1MzFcXHU1NTU2XFx1NTU0RlxcdTU1NTVcXHU1NTJGXFx1NTU2NFxcdTU1MzhcXHU1NTJFXFx1NTU1Q1xcdTU1MkNcXHU1NTYzXFx1NTUzM1xcdTU1NDFcXHU1NTU3XFx1NTcwOFxcdTU3MEJcXHU1NzA5XFx1NTdERlxcdTU4MDVcXHU1ODBBXFx1NTgwNlxcdTU3RTBcXHU1N0U0XFx1NTdGQVxcdTU4MDJcXHU1ODM1XFx1NTdGN1xcdTU3RjlcXHU1OTIwXFx1NTk2MlxcdTVBMzZcXHU1QTQxXFx1NUE0OVxcdTVBNjZcXHU1QTZBXFx1NUE0MFwiXSxcbiAgICAgIFtcImIxNDBcIiwgXCJcXHU1QTNDXFx1NUE2MlxcdTVBNUFcXHU1QTQ2XFx1NUE0QVxcdTVCNzBcXHU1QkM3XFx1NUJDNVxcdTVCQzRcXHU1QkMyXFx1NUJCRlxcdTVCQzZcXHU1QzA5XFx1NUMwOFxcdTVDMDdcXHU1QzYwXFx1NUM1Q1xcdTVDNURcXHU1RDA3XFx1NUQwNlxcdTVEMEVcXHU1RDFCXFx1NUQxNlxcdTVEMjJcXHU1RDExXFx1NUQyOVxcdTVEMTRcXHU1RDE5XFx1NUQyNFxcdTVEMjdcXHU1RDE3XFx1NURFMlxcdTVFMzhcXHU1RTM2XFx1NUUzM1xcdTVFMzdcXHU1RUI3XFx1NUVCOFxcdTVFQjZcXHU1RUI1XFx1NUVCRVxcdTVGMzVcXHU1RjM3XFx1NUY1N1xcdTVGNkNcXHU1RjY5XFx1NUY2QlxcdTVGOTdcXHU1Rjk5XFx1NUY5RVxcdTVGOThcXHU1RkExXFx1NUZBMFxcdTVGOUNcXHU2MDdGXFx1NjBBM1xcdTYwODlcXHU2MEEwXFx1NjBBOFxcdTYwQ0JcXHU2MEI0XFx1NjBFNlxcdTYwQkRcIl0sXG4gICAgICBbXCJiMWExXCIsIFwiXFx1NjBDNVxcdTYwQkJcXHU2MEI1XFx1NjBEQ1xcdTYwQkNcXHU2MEQ4XFx1NjBENVxcdTYwQzZcXHU2MERGXFx1NjBCOFxcdTYwREFcXHU2MEM3XFx1NjIxQVxcdTYyMUJcXHU2MjQ4XFx1NjNBMFxcdTYzQTdcXHU2MzcyXFx1NjM5NlxcdTYzQTJcXHU2M0E1XFx1NjM3N1xcdTYzNjdcXHU2Mzk4XFx1NjNBQVxcdTYzNzFcXHU2M0E5XFx1NjM4OVxcdTYzODNcXHU2MzlCXFx1NjM2QlxcdTYzQThcXHU2Mzg0XFx1NjM4OFxcdTYzOTlcXHU2M0ExXFx1NjNBQ1xcdTYzOTJcXHU2MzhGXFx1NjM4MFxcdTYzN0JcXHU2MzY5XFx1NjM2OFxcdTYzN0FcXHU2NTVEXFx1NjU1NlxcdTY1NTFcXHU2NTU5XFx1NjU1N1xcdTU1NUZcXHU2NTRGXFx1NjU1OFxcdTY1NTVcXHU2NTU0XFx1NjU5Q1xcdTY1OUJcXHU2NUFDXFx1NjVDRlxcdTY1Q0JcXHU2NUNDXFx1NjVDRVxcdTY2NURcXHU2NjVBXFx1NjY2NFxcdTY2NjhcXHU2NjY2XFx1NjY1RVxcdTY2RjlcXHU1MkQ3XFx1NjcxQlxcdTY4ODFcXHU2OEFGXFx1NjhBMlxcdTY4OTNcXHU2OEI1XFx1Njg3RlxcdTY4NzZcXHU2OEIxXFx1NjhBN1xcdTY4OTdcXHU2OEIwXFx1Njg4M1xcdTY4QzRcXHU2OEFEXFx1Njg4NlxcdTY4ODVcXHU2ODk0XFx1Njg5RFxcdTY4QThcXHU2ODlGXFx1NjhBMVxcdTY4ODJcXHU2QjMyXFx1NkJCQVwiXSxcbiAgICAgIFtcImIyNDBcIiwgXCJcXHU2QkVCXFx1NkJFQ1xcdTZDMkJcXHU2RDhFXFx1NkRCQ1xcdTZERjNcXHU2REQ5XFx1NkRCMlxcdTZERTFcXHU2RENDXFx1NkRFNFxcdTZERkJcXHU2REZBXFx1NkUwNVxcdTZEQzdcXHU2RENCXFx1NkRBRlxcdTZERDFcXHU2REFFXFx1NkRERVxcdTZERjlcXHU2REI4XFx1NkRGN1xcdTZERjVcXHU2REM1XFx1NkREMlxcdTZFMUFcXHU2REI1XFx1NkREQVxcdTZERUJcXHU2REQ4XFx1NkRFQVxcdTZERjFcXHU2REVFXFx1NkRFOFxcdTZEQzZcXHU2REM0XFx1NkRBQVxcdTZERUNcXHU2REJGXFx1NkRFNlxcdTcwRjlcXHU3MTA5XFx1NzEwQVxcdTcwRkRcXHU3MEVGXFx1NzIzRFxcdTcyN0RcXHU3MjgxXFx1NzMxQ1xcdTczMUJcXHU3MzE2XFx1NzMxM1xcdTczMTlcXHU3Mzg3XFx1NzQwNVxcdTc0MEFcXHU3NDAzXFx1NzQwNlxcdTczRkVcXHU3NDBEXFx1NzRFMFxcdTc0RjZcIl0sXG4gICAgICBbXCJiMmExXCIsIFwiXFx1NzRGN1xcdTc1MUNcXHU3NTIyXFx1NzU2NVxcdTc1NjZcXHU3NTYyXFx1NzU3MFxcdTc1OEZcXHU3NUQ0XFx1NzVENVxcdTc1QjVcXHU3NUNBXFx1NzVDRFxcdTc2OEVcXHU3NkQ0XFx1NzZEMlxcdTc2REJcXHU3NzM3XFx1NzczRVxcdTc3M0NcXHU3NzM2XFx1NzczOFxcdTc3M0FcXHU3ODZCXFx1Nzg0M1xcdTc4NEVcXHU3OTY1XFx1Nzk2OFxcdTc5NkRcXHU3OUZCXFx1N0E5MlxcdTdBOTVcXHU3QjIwXFx1N0IyOFxcdTdCMUJcXHU3QjJDXFx1N0IyNlxcdTdCMTlcXHU3QjFFXFx1N0IyRVxcdTdDOTJcXHU3Qzk3XFx1N0M5NVxcdTdENDZcXHU3RDQzXFx1N0Q3MVxcdTdEMkVcXHU3RDM5XFx1N0QzQ1xcdTdENDBcXHU3RDMwXFx1N0QzM1xcdTdENDRcXHU3RDJGXFx1N0Q0MlxcdTdEMzJcXHU3RDMxXFx1N0YzRFxcdTdGOUVcXHU3RjlBXFx1N0ZDQ1xcdTdGQ0VcXHU3RkQyXFx1ODAxQ1xcdTgwNEFcXHU4MDQ2XFx1ODEyRlxcdTgxMTZcXHU4MTIzXFx1ODEyQlxcdTgxMjlcXHU4MTMwXFx1ODEyNFxcdTgyMDJcXHU4MjM1XFx1ODIzN1xcdTgyMzZcXHU4MjM5XFx1ODM4RVxcdTgzOUVcXHU4Mzk4XFx1ODM3OFxcdTgzQTJcXHU4Mzk2XFx1ODNCRFxcdTgzQUJcXHU4MzkyXFx1ODM4QVxcdTgzOTNcXHU4Mzg5XFx1ODNBMFxcdTgzNzdcXHU4MzdCXFx1ODM3Q1wiXSxcbiAgICAgIFtcImIzNDBcIiwgXCJcXHU4Mzg2XFx1ODNBN1xcdTg2NTVcXHU1RjZBXFx1ODZDN1xcdTg2QzBcXHU4NkI2XFx1ODZDNFxcdTg2QjVcXHU4NkM2XFx1ODZDQlxcdTg2QjFcXHU4NkFGXFx1ODZDOVxcdTg4NTNcXHU4ODlFXFx1ODg4OFxcdTg4QUJcXHU4ODkyXFx1ODg5NlxcdTg4OERcXHU4ODhCXFx1ODk5M1xcdTg5OEZcXHU4QTJBXFx1OEExRFxcdThBMjNcXHU4QTI1XFx1OEEzMVxcdThBMkRcXHU4QTFGXFx1OEExQlxcdThBMjJcXHU4QzQ5XFx1OEM1QVxcdThDQTlcXHU4Q0FDXFx1OENBQlxcdThDQThcXHU4Q0FBXFx1OENBN1xcdThENjdcXHU4RDY2XFx1OERCRVxcdThEQkFcXHU4RURCXFx1OEVERlxcdTkwMTlcXHU5MDBEXFx1OTAxQVxcdTkwMTdcXHU5MDIzXFx1OTAxRlxcdTkwMURcXHU5MDEwXFx1OTAxNVxcdTkwMUVcXHU5MDIwXFx1OTAwRlxcdTkwMjJcXHU5MDE2XFx1OTAxQlxcdTkwMTRcIl0sXG4gICAgICBbXCJiM2ExXCIsIFwiXFx1OTBFOFxcdTkwRURcXHU5MEZEXFx1OTE1N1xcdTkxQ0VcXHU5MUY1XFx1OTFFNlxcdTkxRTNcXHU5MUU3XFx1OTFFRFxcdTkxRTlcXHU5NTg5XFx1OTY2QVxcdTk2NzVcXHU5NjczXFx1OTY3OFxcdTk2NzBcXHU5Njc0XFx1OTY3NlxcdTk2NzdcXHU5NjZDXFx1OTZDMFxcdTk2RUFcXHU5NkU5XFx1N0FFMFxcdTdBREZcXHU5ODAyXFx1OTgwM1xcdTlCNUFcXHU5Q0U1XFx1OUU3NVxcdTlFN0ZcXHU5RUE1XFx1OUVCQlxcdTUwQTJcXHU1MDhEXFx1NTA4NVxcdTUwOTlcXHU1MDkxXFx1NTA4MFxcdTUwOTZcXHU1MDk4XFx1NTA5QVxcdTY3MDBcXHU1MUYxXFx1NTI3MlxcdTUyNzRcXHU1Mjc1XFx1NTI2OVxcdTUyREVcXHU1MkREXFx1NTJEQlxcdTUzNUFcXHU1M0E1XFx1NTU3QlxcdTU1ODBcXHU1NUE3XFx1NTU3Q1xcdTU1OEFcXHU1NTlEXFx1NTU5OFxcdTU1ODJcXHU1NTlDXFx1NTVBQVxcdTU1OTRcXHU1NTg3XFx1NTU4QlxcdTU1ODNcXHU1NUIzXFx1NTVBRVxcdTU1OUZcXHU1NTNFXFx1NTVCMlxcdTU1OUFcXHU1NUJCXFx1NTVBQ1xcdTU1QjFcXHU1NTdFXFx1NTU4OVxcdTU1QUJcXHU1NTk5XFx1NTcwRFxcdTU4MkZcXHU1ODJBXFx1NTgzNFxcdTU4MjRcXHU1ODMwXFx1NTgzMVxcdTU4MjFcXHU1ODFEXFx1NTgyMFxcdTU4RjlcXHU1OEZBXFx1NTk2MFwiXSxcbiAgICAgIFtcImI0NDBcIiwgXCJcXHU1QTc3XFx1NUE5QVxcdTVBN0ZcXHU1QTkyXFx1NUE5QlxcdTVBQTdcXHU1QjczXFx1NUI3MVxcdTVCRDJcXHU1QkNDXFx1NUJEM1xcdTVCRDBcXHU1QzBBXFx1NUMwQlxcdTVDMzFcXHU1RDRDXFx1NUQ1MFxcdTVEMzRcXHU1RDQ3XFx1NURGRFxcdTVFNDVcXHU1RTNEXFx1NUU0MFxcdTVFNDNcXHU1RTdFXFx1NUVDQVxcdTVFQzFcXHU1RUMyXFx1NUVDNFxcdTVGM0NcXHU1RjZEXFx1NUZBOVxcdTVGQUFcXHU1RkE4XFx1NjBEMVxcdTYwRTFcXHU2MEIyXFx1NjBCNlxcdTYwRTBcXHU2MTFDXFx1NjEyM1xcdTYwRkFcXHU2MTE1XFx1NjBGMFxcdTYwRkJcXHU2MEY0XFx1NjE2OFxcdTYwRjFcXHU2MTBFXFx1NjBGNlxcdTYxMDlcXHU2MTAwXFx1NjExMlxcdTYyMUZcXHU2MjQ5XFx1NjNBM1xcdTYzOENcXHU2M0NGXFx1NjNDMFxcdTYzRTlcXHU2M0M5XFx1NjNDNlxcdTYzQ0RcIl0sXG4gICAgICBbXCJiNGExXCIsIFwiXFx1NjNEMlxcdTYzRTNcXHU2M0QwXFx1NjNFMVxcdTYzRDZcXHU2M0VEXFx1NjNFRVxcdTYzNzZcXHU2M0Y0XFx1NjNFQVxcdTYzREJcXHU2NDUyXFx1NjNEQVxcdTYzRjlcXHU2NTVFXFx1NjU2NlxcdTY1NjJcXHU2NTYzXFx1NjU5MVxcdTY1OTBcXHU2NUFGXFx1NjY2RVxcdTY2NzBcXHU2Njc0XFx1NjY3NlxcdTY2NkZcXHU2NjkxXFx1NjY3QVxcdTY2N0VcXHU2Njc3XFx1NjZGRVxcdTY2RkZcXHU2NzFGXFx1NjcxRFxcdTY4RkFcXHU2OEQ1XFx1NjhFMFxcdTY4RDhcXHU2OEQ3XFx1NjkwNVxcdTY4REZcXHU2OEY1XFx1NjhFRVxcdTY4RTdcXHU2OEY5XFx1NjhEMlxcdTY4RjJcXHU2OEUzXFx1NjhDQlxcdTY4Q0RcXHU2OTBEXFx1NjkxMlxcdTY5MEVcXHU2OEM5XFx1NjhEQVxcdTY5NkVcXHU2OEZCXFx1NkIzRVxcdTZCM0FcXHU2QjNEXFx1NkI5OFxcdTZCOTZcXHU2QkJDXFx1NkJFRlxcdTZDMkVcXHU2QzJGXFx1NkMyQ1xcdTZFMkZcXHU2RTM4XFx1NkU1NFxcdTZFMjFcXHU2RTMyXFx1NkU2N1xcdTZFNEFcXHU2RTIwXFx1NkUyNVxcdTZFMjNcXHU2RTFCXFx1NkU1QlxcdTZFNThcXHU2RTI0XFx1NkU1NlxcdTZFNkVcXHU2RTJEXFx1NkUyNlxcdTZFNkZcXHU2RTM0XFx1NkU0RFxcdTZFM0FcXHU2RTJDXFx1NkU0M1xcdTZFMURcXHU2RTNFXFx1NkVDQlwiXSxcbiAgICAgIFtcImI1NDBcIiwgXCJcXHU2RTg5XFx1NkUxOVxcdTZFNEVcXHU2RTYzXFx1NkU0NFxcdTZFNzJcXHU2RTY5XFx1NkU1RlxcdTcxMTlcXHU3MTFBXFx1NzEyNlxcdTcxMzBcXHU3MTIxXFx1NzEzNlxcdTcxNkVcXHU3MTFDXFx1NzI0Q1xcdTcyODRcXHU3MjgwXFx1NzMzNlxcdTczMjVcXHU3MzM0XFx1NzMyOVxcdTc0M0FcXHU3NDJBXFx1NzQzM1xcdTc0MjJcXHU3NDI1XFx1NzQzNVxcdTc0MzZcXHU3NDM0XFx1NzQyRlxcdTc0MUJcXHU3NDI2XFx1NzQyOFxcdTc1MjVcXHU3NTI2XFx1NzU2QlxcdTc1NkFcXHU3NUUyXFx1NzVEQlxcdTc1RTNcXHU3NUQ5XFx1NzVEOFxcdTc1REVcXHU3NUUwXFx1NzY3QlxcdTc2N0NcXHU3Njk2XFx1NzY5M1xcdTc2QjRcXHU3NkRDXFx1Nzc0RlxcdTc3RURcXHU3ODVEXFx1Nzg2Q1xcdTc4NkZcXHU3QTBEXFx1N0EwOFxcdTdBMEJcXHU3QTA1XFx1N0EwMFxcdTdBOThcIl0sXG4gICAgICBbXCJiNWExXCIsIFwiXFx1N0E5N1xcdTdBOTZcXHU3QUU1XFx1N0FFM1xcdTdCNDlcXHU3QjU2XFx1N0I0NlxcdTdCNTBcXHU3QjUyXFx1N0I1NFxcdTdCNERcXHU3QjRCXFx1N0I0RlxcdTdCNTFcXHU3QzlGXFx1N0NBNVxcdTdENUVcXHU3RDUwXFx1N0Q2OFxcdTdENTVcXHU3RDJCXFx1N0Q2RVxcdTdENzJcXHU3RDYxXFx1N0Q2NlxcdTdENjJcXHU3RDcwXFx1N0Q3M1xcdTU1ODRcXHU3RkQ0XFx1N0ZENVxcdTgwMEJcXHU4MDUyXFx1ODA4NVxcdTgxNTVcXHU4MTU0XFx1ODE0QlxcdTgxNTFcXHU4MTRFXFx1ODEzOVxcdTgxNDZcXHU4MTNFXFx1ODE0Q1xcdTgxNTNcXHU4MTc0XFx1ODIxMlxcdTgyMUNcXHU4M0U5XFx1ODQwM1xcdTgzRjhcXHU4NDBEXFx1ODNFMFxcdTgzQzVcXHU4NDBCXFx1ODNDMVxcdTgzRUZcXHU4M0YxXFx1ODNGNFxcdTg0NTdcXHU4NDBBXFx1ODNGMFxcdTg0MENcXHU4M0NDXFx1ODNGRFxcdTgzRjJcXHU4M0NBXFx1ODQzOFxcdTg0MEVcXHU4NDA0XFx1ODNEQ1xcdTg0MDdcXHU4M0Q0XFx1ODNERlxcdTg2NUJcXHU4NkRGXFx1ODZEOVxcdTg2RURcXHU4NkQ0XFx1ODZEQlxcdTg2RTRcXHU4NkQwXFx1ODZERVxcdTg4NTdcXHU4OEMxXFx1ODhDMlxcdTg4QjFcXHU4OTgzXFx1ODk5NlxcdThBM0JcXHU4QTYwXFx1OEE1NVxcdThBNUVcXHU4QTNDXFx1OEE0MVwiXSxcbiAgICAgIFtcImI2NDBcIiwgXCJcXHU4QTU0XFx1OEE1QlxcdThBNTBcXHU4QTQ2XFx1OEEzNFxcdThBM0FcXHU4QTM2XFx1OEE1NlxcdThDNjFcXHU4QzgyXFx1OENBRlxcdThDQkNcXHU4Q0IzXFx1OENCRFxcdThDQzFcXHU4Q0JCXFx1OENDMFxcdThDQjRcXHU4Q0I3XFx1OENCNlxcdThDQkZcXHU4Q0I4XFx1OEQ4QVxcdThEODVcXHU4RDgxXFx1OERDRVxcdThERERcXHU4RENCXFx1OEREQVxcdThERDFcXHU4RENDXFx1OEREQlxcdThEQzZcXHU4RUZCXFx1OEVGOFxcdThFRkNcXHU4RjlDXFx1OTAyRVxcdTkwMzVcXHU5MDMxXFx1OTAzOFxcdTkwMzJcXHU5MDM2XFx1OTEwMlxcdTkwRjVcXHU5MTA5XFx1OTBGRVxcdTkxNjNcXHU5MTY1XFx1OTFDRlxcdTkyMTRcXHU5MjE1XFx1OTIyM1xcdTkyMDlcXHU5MjFFXFx1OTIwRFxcdTkyMTBcXHU5MjA3XFx1OTIxMVxcdTk1OTRcXHU5NThGXFx1OTU4QlxcdTk1OTFcIl0sXG4gICAgICBbXCJiNmExXCIsIFwiXFx1OTU5M1xcdTk1OTJcXHU5NThFXFx1OTY4QVxcdTk2OEVcXHU5NjhCXFx1OTY3RFxcdTk2ODVcXHU5Njg2XFx1OTY4RFxcdTk2NzJcXHU5Njg0XFx1OTZDMVxcdTk2QzVcXHU5NkM0XFx1OTZDNlxcdTk2QzdcXHU5NkVGXFx1OTZGMlxcdTk3Q0NcXHU5ODA1XFx1OTgwNlxcdTk4MDhcXHU5OEU3XFx1OThFQVxcdTk4RUZcXHU5OEU5XFx1OThGMlxcdTk4RURcXHU5OUFFXFx1OTlBRFxcdTlFQzNcXHU5RUNEXFx1OUVEMVxcdTRFODJcXHU1MEFEXFx1NTBCNVxcdTUwQjJcXHU1MEIzXFx1NTBDNVxcdTUwQkVcXHU1MEFDXFx1NTBCN1xcdTUwQkJcXHU1MEFGXFx1NTBDN1xcdTUyN0ZcXHU1Mjc3XFx1NTI3RFxcdTUyREZcXHU1MkU2XFx1NTJFNFxcdTUyRTJcXHU1MkUzXFx1NTMyRlxcdTU1REZcXHU1NUU4XFx1NTVEM1xcdTU1RTZcXHU1NUNFXFx1NTVEQ1xcdTU1QzdcXHU1NUQxXFx1NTVFM1xcdTU1RTRcXHU1NUVGXFx1NTVEQVxcdTU1RTFcXHU1NUM1XFx1NTVDNlxcdTU1RTVcXHU1NUM5XFx1NTcxMlxcdTU3MTNcXHU1ODVFXFx1NTg1MVxcdTU4NThcXHU1ODU3XFx1NTg1QVxcdTU4NTRcXHU1ODZCXFx1NTg0Q1xcdTU4NkRcXHU1ODRBXFx1NTg2MlxcdTU4NTJcXHU1ODRCXFx1NTk2N1xcdTVBQzFcXHU1QUM5XFx1NUFDQ1xcdTVBQkVcXHU1QUJEXFx1NUFCQ1wiXSxcbiAgICAgIFtcImI3NDBcIiwgXCJcXHU1QUIzXFx1NUFDMlxcdTVBQjJcXHU1RDY5XFx1NUQ2RlxcdTVFNENcXHU1RTc5XFx1NUVDOVxcdTVFQzhcXHU1RjEyXFx1NUY1OVxcdTVGQUNcXHU1RkFFXFx1NjExQVxcdTYxMEZcXHU2MTQ4XFx1NjExRlxcdTYwRjNcXHU2MTFCXFx1NjBGOVxcdTYxMDFcXHU2MTA4XFx1NjE0RVxcdTYxNENcXHU2MTQ0XFx1NjE0RFxcdTYxM0VcXHU2MTM0XFx1NjEyN1xcdTYxMERcXHU2MTA2XFx1NjEzN1xcdTYyMjFcXHU2MjIyXFx1NjQxM1xcdTY0M0VcXHU2NDFFXFx1NjQyQVxcdTY0MkRcXHU2NDNEXFx1NjQyQ1xcdTY0MEZcXHU2NDFDXFx1NjQxNFxcdTY0MERcXHU2NDM2XFx1NjQxNlxcdTY0MTdcXHU2NDA2XFx1NjU2Q1xcdTY1OUZcXHU2NUIwXFx1NjY5N1xcdTY2ODlcXHU2Njg3XFx1NjY4OFxcdTY2OTZcXHU2Njg0XFx1NjY5OFxcdTY2OERcXHU2NzAzXFx1Njk5NFxcdTY5NkRcIl0sXG4gICAgICBbXCJiN2ExXCIsIFwiXFx1Njk1QVxcdTY5NzdcXHU2OTYwXFx1Njk1NFxcdTY5NzVcXHU2OTMwXFx1Njk4MlxcdTY5NEFcXHU2OTY4XFx1Njk2QlxcdTY5NUVcXHU2OTUzXFx1Njk3OVxcdTY5ODZcXHU2OTVEXFx1Njk2M1xcdTY5NUJcXHU2QjQ3XFx1NkI3MlxcdTZCQzBcXHU2QkJGXFx1NkJEM1xcdTZCRkRcXHU2RUEyXFx1NkVBRlxcdTZFRDNcXHU2RUI2XFx1NkVDMlxcdTZFOTBcXHU2RTlEXFx1NkVDN1xcdTZFQzVcXHU2RUE1XFx1NkU5OFxcdTZFQkNcXHU2RUJBXFx1NkVBQlxcdTZFRDFcXHU2RTk2XFx1NkU5Q1xcdTZFQzRcXHU2RUQ0XFx1NkVBQVxcdTZFQTdcXHU2RUI0XFx1NzE0RVxcdTcxNTlcXHU3MTY5XFx1NzE2NFxcdTcxNDlcXHU3MTY3XFx1NzE1Q1xcdTcxNkNcXHU3MTY2XFx1NzE0Q1xcdTcxNjVcXHU3MTVFXFx1NzE0NlxcdTcxNjhcXHU3MTU2XFx1NzIzQVxcdTcyNTJcXHU3MzM3XFx1NzM0NVxcdTczM0ZcXHU3MzNFXFx1NzQ2RlxcdTc0NUFcXHU3NDU1XFx1NzQ1RlxcdTc0NUVcXHU3NDQxXFx1NzQzRlxcdTc0NTlcXHU3NDVCXFx1NzQ1Q1xcdTc1NzZcXHU3NTc4XFx1NzYwMFxcdTc1RjBcXHU3NjAxXFx1NzVGMlxcdTc1RjFcXHU3NUZBXFx1NzVGRlxcdTc1RjRcXHU3NUYzXFx1NzZERVxcdTc2REZcXHU3NzVCXFx1Nzc2QlxcdTc3NjZcXHU3NzVFXFx1Nzc2M1wiXSxcbiAgICAgIFtcImI4NDBcIiwgXCJcXHU3Nzc5XFx1Nzc2QVxcdTc3NkNcXHU3NzVDXFx1Nzc2NVxcdTc3NjhcXHU3NzYyXFx1NzdFRVxcdTc4OEVcXHU3OEIwXFx1Nzg5N1xcdTc4OThcXHU3ODhDXFx1Nzg4OVxcdTc4N0NcXHU3ODkxXFx1Nzg5M1xcdTc4N0ZcXHU3OTdBXFx1Nzk3RlxcdTc5ODFcXHU4NDJDXFx1NzlCRFxcdTdBMUNcXHU3QTFBXFx1N0EyMFxcdTdBMTRcXHU3QTFGXFx1N0ExRVxcdTdBOUZcXHU3QUEwXFx1N0I3N1xcdTdCQzBcXHU3QjYwXFx1N0I2RVxcdTdCNjdcXHU3Q0IxXFx1N0NCM1xcdTdDQjVcXHU3RDkzXFx1N0Q3OVxcdTdEOTFcXHU3RDgxXFx1N0Q4RlxcdTdENUJcXHU3RjZFXFx1N0Y2OVxcdTdGNkFcXHU3RjcyXFx1N0ZBOVxcdTdGQThcXHU3RkE0XFx1ODA1NlxcdTgwNThcXHU4MDg2XFx1ODA4NFxcdTgxNzFcXHU4MTcwXFx1ODE3OFxcdTgxNjVcXHU4MTZFXFx1ODE3M1xcdTgxNkJcIl0sXG4gICAgICBbXCJiOGExXCIsIFwiXFx1ODE3OVxcdTgxN0FcXHU4MTY2XFx1ODIwNVxcdTgyNDdcXHU4NDgyXFx1ODQ3N1xcdTg0M0RcXHU4NDMxXFx1ODQ3NVxcdTg0NjZcXHU4NDZCXFx1ODQ0OVxcdTg0NkNcXHU4NDVCXFx1ODQzQ1xcdTg0MzVcXHU4NDYxXFx1ODQ2M1xcdTg0NjlcXHU4NDZEXFx1ODQ0NlxcdTg2NUVcXHU4NjVDXFx1ODY1RlxcdTg2RjlcXHU4NzEzXFx1ODcwOFxcdTg3MDdcXHU4NzAwXFx1ODZGRVxcdTg2RkJcXHU4NzAyXFx1ODcwM1xcdTg3MDZcXHU4NzBBXFx1ODg1OVxcdTg4REZcXHU4OEQ0XFx1ODhEOVxcdTg4RENcXHU4OEQ4XFx1ODhERFxcdTg4RTFcXHU4OENBXFx1ODhENVxcdTg4RDJcXHU4OTlDXFx1ODlFM1xcdThBNkJcXHU4QTcyXFx1OEE3M1xcdThBNjZcXHU4QTY5XFx1OEE3MFxcdThBODdcXHU4QTdDXFx1OEE2M1xcdThBQTBcXHU4QTcxXFx1OEE4NVxcdThBNkRcXHU4QTYyXFx1OEE2RVxcdThBNkNcXHU4QTc5XFx1OEE3QlxcdThBM0VcXHU4QTY4XFx1OEM2MlxcdThDOEFcXHU4Qzg5XFx1OENDQVxcdThDQzdcXHU4Q0M4XFx1OENDNFxcdThDQjJcXHU4Q0MzXFx1OENDMlxcdThDQzVcXHU4REUxXFx1OERERlxcdThERThcXHU4REVGXFx1OERGM1xcdThERkFcXHU4REVBXFx1OERFNFxcdThERTZcXHU4RUIyXFx1OEYwM1xcdThGMDlcXHU4RUZFXFx1OEYwQVwiXSxcbiAgICAgIFtcImI5NDBcIiwgXCJcXHU4RjlGXFx1OEZCMlxcdTkwNEJcXHU5MDRBXFx1OTA1M1xcdTkwNDJcXHU5MDU0XFx1OTAzQ1xcdTkwNTVcXHU5MDUwXFx1OTA0N1xcdTkwNEZcXHU5MDRFXFx1OTA0RFxcdTkwNTFcXHU5MDNFXFx1OTA0MVxcdTkxMTJcXHU5MTE3XFx1OTE2Q1xcdTkxNkFcXHU5MTY5XFx1OTFDOVxcdTkyMzdcXHU5MjU3XFx1OTIzOFxcdTkyM0RcXHU5MjQwXFx1OTIzRVxcdTkyNUJcXHU5MjRCXFx1OTI2NFxcdTkyNTFcXHU5MjM0XFx1OTI0OVxcdTkyNERcXHU5MjQ1XFx1OTIzOVxcdTkyM0ZcXHU5MjVBXFx1OTU5OFxcdTk2OThcXHU5Njk0XFx1OTY5NVxcdTk2Q0RcXHU5NkNCXFx1OTZDOVxcdTk2Q0FcXHU5NkY3XFx1OTZGQlxcdTk2RjlcXHU5NkY2XFx1OTc1NlxcdTk3NzRcXHU5Nzc2XFx1OTgxMFxcdTk4MTFcXHU5ODEzXFx1OTgwQVxcdTk4MTJcXHU5ODBDXFx1OThGQ1xcdTk4RjRcIl0sXG4gICAgICBbXCJiOWExXCIsIFwiXFx1OThGRFxcdTk4RkVcXHU5OUIzXFx1OTlCMVxcdTk5QjRcXHU5QUUxXFx1OUNFOVxcdTlFODJcXHU5RjBFXFx1OUYxM1xcdTlGMjBcXHU1MEU3XFx1NTBFRVxcdTUwRTVcXHU1MEQ2XFx1NTBFRFxcdTUwREFcXHU1MEQ1XFx1NTBDRlxcdTUwRDFcXHU1MEYxXFx1NTBDRVxcdTUwRTlcXHU1MTYyXFx1NTFGM1xcdTUyODNcXHU1MjgyXFx1NTMzMVxcdTUzQURcXHU1NUZFXFx1NTYwMFxcdTU2MUJcXHU1NjE3XFx1NTVGRFxcdTU2MTRcXHU1NjA2XFx1NTYwOVxcdTU2MERcXHU1NjBFXFx1NTVGN1xcdTU2MTZcXHU1NjFGXFx1NTYwOFxcdTU2MTBcXHU1NUY2XFx1NTcxOFxcdTU3MTZcXHU1ODc1XFx1NTg3RVxcdTU4ODNcXHU1ODkzXFx1NTg4QVxcdTU4NzlcXHU1ODg1XFx1NTg3RFxcdTU4RkRcXHU1OTI1XFx1NTkyMlxcdTU5MjRcXHU1OTZBXFx1NTk2OVxcdTVBRTFcXHU1QUU2XFx1NUFFOVxcdTVBRDdcXHU1QUQ2XFx1NUFEOFxcdTVBRTNcXHU1Qjc1XFx1NUJERVxcdTVCRTdcXHU1QkUxXFx1NUJFNVxcdTVCRTZcXHU1QkU4XFx1NUJFMlxcdTVCRTRcXHU1QkRGXFx1NUMwRFxcdTVDNjJcXHU1RDg0XFx1NUQ4N1xcdTVFNUJcXHU1RTYzXFx1NUU1NVxcdTVFNTdcXHU1RTU0XFx1NUVEM1xcdTVFRDZcXHU1RjBBXFx1NUY0NlxcdTVGNzBcXHU1RkI5XFx1NjE0N1wiXSxcbiAgICAgIFtcImJhNDBcIiwgXCJcXHU2MTNGXFx1NjE0QlxcdTYxNzdcXHU2MTYyXFx1NjE2M1xcdTYxNUZcXHU2MTVBXFx1NjE1OFxcdTYxNzVcXHU2MjJBXFx1NjQ4N1xcdTY0NThcXHU2NDU0XFx1NjRBNFxcdTY0NzhcXHU2NDVGXFx1NjQ3QVxcdTY0NTFcXHU2NDY3XFx1NjQzNFxcdTY0NkRcXHU2NDdCXFx1NjU3MlxcdTY1QTFcXHU2NUQ3XFx1NjVENlxcdTY2QTJcXHU2NkE4XFx1NjY5RFxcdTY5OUNcXHU2OUE4XFx1Njk5NVxcdTY5QzFcXHU2OUFFXFx1NjlEM1xcdTY5Q0JcXHU2OTlCXFx1NjlCN1xcdTY5QkJcXHU2OUFCXFx1NjlCNFxcdTY5RDBcXHU2OUNEXFx1NjlBRFxcdTY5Q0NcXHU2OUE2XFx1NjlDM1xcdTY5QTNcXHU2QjQ5XFx1NkI0Q1xcdTZDMzNcXHU2RjMzXFx1NkYxNFxcdTZFRkVcXHU2RjEzXFx1NkVGNFxcdTZGMjlcXHU2RjNFXFx1NkYyMFxcdTZGMkNcXHU2RjBGXFx1NkYwMlxcdTZGMjJcIl0sXG4gICAgICBbXCJiYWExXCIsIFwiXFx1NkVGRlxcdTZFRUZcXHU2RjA2XFx1NkYzMVxcdTZGMzhcXHU2RjMyXFx1NkYyM1xcdTZGMTVcXHU2RjJCXFx1NkYyRlxcdTZGODhcXHU2RjJBXFx1NkVFQ1xcdTZGMDFcXHU2RUYyXFx1NkVDQ1xcdTZFRjdcXHU3MTk0XFx1NzE5OVxcdTcxN0RcXHU3MThBXFx1NzE4NFxcdTcxOTJcXHU3MjNFXFx1NzI5MlxcdTcyOTZcXHU3MzQ0XFx1NzM1MFxcdTc0NjRcXHU3NDYzXFx1NzQ2QVxcdTc0NzBcXHU3NDZEXFx1NzUwNFxcdTc1OTFcXHU3NjI3XFx1NzYwRFxcdTc2MEJcXHU3NjA5XFx1NzYxM1xcdTc2RTFcXHU3NkUzXFx1Nzc4NFxcdTc3N0RcXHU3NzdGXFx1Nzc2MVxcdTc4QzFcXHU3ODlGXFx1NzhBN1xcdTc4QjNcXHU3OEE5XFx1NzhBM1xcdTc5OEVcXHU3OThGXFx1Nzk4RFxcdTdBMkVcXHU3QTMxXFx1N0FBQVxcdTdBQTlcXHU3QUVEXFx1N0FFRlxcdTdCQTFcXHU3Qjk1XFx1N0I4QlxcdTdCNzVcXHU3Qjk3XFx1N0I5RFxcdTdCOTRcXHU3QjhGXFx1N0JCOFxcdTdCODdcXHU3Qjg0XFx1N0NCOVxcdTdDQkRcXHU3Q0JFXFx1N0RCQlxcdTdEQjBcXHU3RDlDXFx1N0RCRFxcdTdEQkVcXHU3REEwXFx1N0RDQVxcdTdEQjRcXHU3REIyXFx1N0RCMVxcdTdEQkFcXHU3REEyXFx1N0RCRlxcdTdEQjVcXHU3REI4XFx1N0RBRFxcdTdERDJcXHU3REM3XFx1N0RBQ1wiXSxcbiAgICAgIFtcImJiNDBcIiwgXCJcXHU3RjcwXFx1N0ZFMFxcdTdGRTFcXHU3RkRGXFx1ODA1RVxcdTgwNUFcXHU4MDg3XFx1ODE1MFxcdTgxODBcXHU4MThGXFx1ODE4OFxcdTgxOEFcXHU4MTdGXFx1ODE4MlxcdTgxRTdcXHU4MUZBXFx1ODIwN1xcdTgyMTRcXHU4MjFFXFx1ODI0QlxcdTg0QzlcXHU4NEJGXFx1ODRDNlxcdTg0QzRcXHU4NDk5XFx1ODQ5RVxcdTg0QjJcXHU4NDlDXFx1ODRDQlxcdTg0QjhcXHU4NEMwXFx1ODREM1xcdTg0OTBcXHU4NEJDXFx1ODREMVxcdTg0Q0FcXHU4NzNGXFx1ODcxQ1xcdTg3M0JcXHU4NzIyXFx1ODcyNVxcdTg3MzRcXHU4NzE4XFx1ODc1NVxcdTg3MzdcXHU4NzI5XFx1ODhGM1xcdTg5MDJcXHU4OEY0XFx1ODhGOVxcdTg4RjhcXHU4OEZEXFx1ODhFOFxcdTg5MUFcXHU4OEVGXFx1OEFBNlxcdThBOENcXHU4QTlFXFx1OEFBM1xcdThBOERcXHU4QUExXFx1OEE5M1xcdThBQTRcIl0sXG4gICAgICBbXCJiYmExXCIsIFwiXFx1OEFBQVxcdThBQTVcXHU4QUE4XFx1OEE5OFxcdThBOTFcXHU4QTlBXFx1OEFBN1xcdThDNkFcXHU4QzhEXFx1OEM4Q1xcdThDRDNcXHU4Q0QxXFx1OENEMlxcdThENkJcXHU4RDk5XFx1OEQ5NVxcdThERkNcXHU4RjE0XFx1OEYxMlxcdThGMTVcXHU4RjEzXFx1OEZBM1xcdTkwNjBcXHU5MDU4XFx1OTA1Q1xcdTkwNjNcXHU5MDU5XFx1OTA1RVxcdTkwNjJcXHU5MDVEXFx1OTA1QlxcdTkxMTlcXHU5MTE4XFx1OTExRVxcdTkxNzVcXHU5MTc4XFx1OTE3N1xcdTkxNzRcXHU5Mjc4XFx1OTI4MFxcdTkyODVcXHU5Mjk4XFx1OTI5NlxcdTkyN0JcXHU5MjkzXFx1OTI5Q1xcdTkyQThcXHU5MjdDXFx1OTI5MVxcdTk1QTFcXHU5NUE4XFx1OTVBOVxcdTk1QTNcXHU5NUE1XFx1OTVBNFxcdTk2OTlcXHU5NjlDXFx1OTY5QlxcdTk2Q0NcXHU5NkQyXFx1OTcwMFxcdTk3N0NcXHU5Nzg1XFx1OTdGNlxcdTk4MTdcXHU5ODE4XFx1OThBRlxcdTk4QjFcXHU5OTAzXFx1OTkwNVxcdTk5MENcXHU5OTA5XFx1OTlDMVxcdTlBQUZcXHU5QUIwXFx1OUFFNlxcdTlCNDFcXHU5QjQyXFx1OUNGNFxcdTlDRjZcXHU5Q0YzXFx1OUVCQ1xcdTlGM0JcXHU5RjRBXFx1NTEwNFxcdTUxMDBcXHU1MEZCXFx1NTBGNVxcdTUwRjlcXHU1MTAyXFx1NTEwOFxcdTUxMDlcXHU1MTA1XFx1NTFEQ1wiXSxcbiAgICAgIFtcImJjNDBcIiwgXCJcXHU1Mjg3XFx1NTI4OFxcdTUyODlcXHU1MjhEXFx1NTI4QVxcdTUyRjBcXHU1M0IyXFx1NTYyRVxcdTU2M0JcXHU1NjM5XFx1NTYzMlxcdTU2M0ZcXHU1NjM0XFx1NTYyOVxcdTU2NTNcXHU1NjRFXFx1NTY1N1xcdTU2NzRcXHU1NjM2XFx1NTYyRlxcdTU2MzBcXHU1ODgwXFx1NTg5RlxcdTU4OUVcXHU1OEIzXFx1NTg5Q1xcdTU4QUVcXHU1OEE5XFx1NThBNlxcdTU5NkRcXHU1QjA5XFx1NUFGQlxcdTVCMEJcXHU1QUY1XFx1NUIwQ1xcdTVCMDhcXHU1QkVFXFx1NUJFQ1xcdTVCRTlcXHU1QkVCXFx1NUM2NFxcdTVDNjVcXHU1RDlEXFx1NUQ5NFxcdTVFNjJcXHU1RTVGXFx1NUU2MVxcdTVFRTJcXHU1RURBXFx1NUVERlxcdTVFRERcXHU1RUUzXFx1NUVFMFxcdTVGNDhcXHU1RjcxXFx1NUZCN1xcdTVGQjVcXHU2MTc2XFx1NjE2N1xcdTYxNkVcXHU2MTVEXFx1NjE1NVxcdTYxODJcIl0sXG4gICAgICBbXCJiY2ExXCIsIFwiXFx1NjE3Q1xcdTYxNzBcXHU2MTZCXFx1NjE3RVxcdTYxQTdcXHU2MTkwXFx1NjFBQlxcdTYxOEVcXHU2MUFDXFx1NjE5QVxcdTYxQTRcXHU2MTk0XFx1NjFBRVxcdTYyMkVcXHU2NDY5XFx1NjQ2RlxcdTY0NzlcXHU2NDlFXFx1NjRCMlxcdTY0ODhcXHU2NDkwXFx1NjRCMFxcdTY0QTVcXHU2NDkzXFx1NjQ5NVxcdTY0QTlcXHU2NDkyXFx1NjRBRVxcdTY0QURcXHU2NEFCXFx1NjQ5QVxcdTY0QUNcXHU2NDk5XFx1NjRBMlxcdTY0QjNcXHU2NTc1XFx1NjU3N1xcdTY1NzhcXHU2NkFFXFx1NjZBQlxcdTY2QjRcXHU2NkIxXFx1NkEyM1xcdTZBMUZcXHU2OUU4XFx1NkEwMVxcdTZBMUVcXHU2QTE5XFx1NjlGRFxcdTZBMjFcXHU2QTEzXFx1NkEwQVxcdTY5RjNcXHU2QTAyXFx1NkEwNVxcdTY5RURcXHU2QTExXFx1NkI1MFxcdTZCNEVcXHU2QkE0XFx1NkJDNVxcdTZCQzZcXHU2RjNGXFx1NkY3Q1xcdTZGODRcXHU2RjUxXFx1NkY2NlxcdTZGNTRcXHU2Rjg2XFx1NkY2RFxcdTZGNUJcXHU2Rjc4XFx1NkY2RVxcdTZGOEVcXHU2RjdBXFx1NkY3MFxcdTZGNjRcXHU2Rjk3XFx1NkY1OFxcdTZFRDVcXHU2RjZGXFx1NkY2MFxcdTZGNUZcXHU3MTlGXFx1NzFBQ1xcdTcxQjFcXHU3MUE4XFx1NzI1NlxcdTcyOUJcXHU3MzRFXFx1NzM1N1xcdTc0NjlcXHU3NDhCXFx1NzQ4M1wiXSxcbiAgICAgIFtcImJkNDBcIiwgXCJcXHU3NDdFXFx1NzQ4MFxcdTc1N0ZcXHU3NjIwXFx1NzYyOVxcdTc2MUZcXHU3NjI0XFx1NzYyNlxcdTc2MjFcXHU3NjIyXFx1NzY5QVxcdTc2QkFcXHU3NkU0XFx1Nzc4RVxcdTc3ODdcXHU3NzhDXFx1Nzc5MVxcdTc3OEJcXHU3OENCXFx1NzhDNVxcdTc4QkFcXHU3OENBXFx1NzhCRVxcdTc4RDVcXHU3OEJDXFx1NzhEMFxcdTdBM0ZcXHU3QTNDXFx1N0E0MFxcdTdBM0RcXHU3QTM3XFx1N0EzQlxcdTdBQUZcXHU3QUFFXFx1N0JBRFxcdTdCQjFcXHU3QkM0XFx1N0JCNFxcdTdCQzZcXHU3QkM3XFx1N0JDMVxcdTdCQTBcXHU3QkNDXFx1N0NDQVxcdTdERTBcXHU3REY0XFx1N0RFRlxcdTdERkJcXHU3REQ4XFx1N0RFQ1xcdTdERERcXHU3REU4XFx1N0RFM1xcdTdEREFcXHU3RERFXFx1N0RFOVxcdTdEOUVcXHU3REQ5XFx1N0RGMlxcdTdERjlcXHU3Rjc1XFx1N0Y3N1xcdTdGQUZcIl0sXG4gICAgICBbXCJiZGExXCIsIFwiXFx1N0ZFOVxcdTgwMjZcXHU4MTlCXFx1ODE5Q1xcdTgxOURcXHU4MUEwXFx1ODE5QVxcdTgxOThcXHU4NTE3XFx1ODUzRFxcdTg1MUFcXHU4NEVFXFx1ODUyQ1xcdTg1MkRcXHU4NTEzXFx1ODUxMVxcdTg1MjNcXHU4NTIxXFx1ODUxNFxcdTg0RUNcXHU4NTI1XFx1ODRGRlxcdTg1MDZcXHU4NzgyXFx1ODc3NFxcdTg3NzZcXHU4NzYwXFx1ODc2NlxcdTg3NzhcXHU4NzY4XFx1ODc1OVxcdTg3NTdcXHU4NzRDXFx1ODc1M1xcdTg4NUJcXHU4ODVEXFx1ODkxMFxcdTg5MDdcXHU4OTEyXFx1ODkxM1xcdTg5MTVcXHU4OTBBXFx1OEFCQ1xcdThBRDJcXHU4QUM3XFx1OEFDNFxcdThBOTVcXHU4QUNCXFx1OEFGOFxcdThBQjJcXHU4QUM5XFx1OEFDMlxcdThBQkZcXHU4QUIwXFx1OEFENlxcdThBQ0RcXHU4QUI2XFx1OEFCOVxcdThBREJcXHU4QzRDXFx1OEM0RVxcdThDNkNcXHU4Q0UwXFx1OENERVxcdThDRTZcXHU4Q0U0XFx1OENFQ1xcdThDRURcXHU4Q0UyXFx1OENFM1xcdThDRENcXHU4Q0VBXFx1OENFMVxcdThENkRcXHU4RDlGXFx1OERBM1xcdThFMkJcXHU4RTEwXFx1OEUxRFxcdThFMjJcXHU4RTBGXFx1OEUyOVxcdThFMUZcXHU4RTIxXFx1OEUxRVxcdThFQkFcXHU4RjFEXFx1OEYxQlxcdThGMUZcXHU4RjI5XFx1OEYyNlxcdThGMkFcXHU4RjFDXFx1OEYxRVwiXSxcbiAgICAgIFtcImJlNDBcIiwgXCJcXHU4RjI1XFx1OTA2OVxcdTkwNkVcXHU5MDY4XFx1OTA2RFxcdTkwNzdcXHU5MTMwXFx1OTEyRFxcdTkxMjdcXHU5MTMxXFx1OTE4N1xcdTkxODlcXHU5MThCXFx1OTE4M1xcdTkyQzVcXHU5MkJCXFx1OTJCN1xcdTkyRUFcXHU5MkFDXFx1OTJFNFxcdTkyQzFcXHU5MkIzXFx1OTJCQ1xcdTkyRDJcXHU5MkM3XFx1OTJGMFxcdTkyQjJcXHU5NUFEXFx1OTVCMVxcdTk3MDRcXHU5NzA2XFx1OTcwN1xcdTk3MDlcXHU5NzYwXFx1OTc4RFxcdTk3OEJcXHU5NzhGXFx1OTgyMVxcdTk4MkJcXHU5ODFDXFx1OThCM1xcdTk5MEFcXHU5OTEzXFx1OTkxMlxcdTk5MThcXHU5OUREXFx1OTlEMFxcdTk5REZcXHU5OURCXFx1OTlEMVxcdTk5RDVcXHU5OUQyXFx1OTlEOVxcdTlBQjdcXHU5QUVFXFx1OUFFRlxcdTlCMjdcXHU5QjQ1XFx1OUI0NFxcdTlCNzdcXHU5QjZGXFx1OUQwNlxcdTlEMDlcIl0sXG4gICAgICBbXCJiZWExXCIsIFwiXFx1OUQwM1xcdTlFQTlcXHU5RUJFXFx1OUVDRVxcdTU4QThcXHU5RjUyXFx1NTExMlxcdTUxMThcXHU1MTE0XFx1NTExMFxcdTUxMTVcXHU1MTgwXFx1NTFBQVxcdTUxRERcXHU1MjkxXFx1NTI5M1xcdTUyRjNcXHU1NjU5XFx1NTY2QlxcdTU2NzlcXHU1NjY5XFx1NTY2NFxcdTU2NzhcXHU1NjZBXFx1NTY2OFxcdTU2NjVcXHU1NjcxXFx1NTY2RlxcdTU2NkNcXHU1NjYyXFx1NTY3NlxcdTU4QzFcXHU1OEJFXFx1NThDN1xcdTU4QzVcXHU1OTZFXFx1NUIxRFxcdTVCMzRcXHU1Qjc4XFx1NUJGMFxcdTVDMEVcXHU1RjRBXFx1NjFCMlxcdTYxOTFcXHU2MUE5XFx1NjE4QVxcdTYxQ0RcXHU2MUI2XFx1NjFCRVxcdTYxQ0FcXHU2MUM4XFx1NjIzMFxcdTY0QzVcXHU2NEMxXFx1NjRDQlxcdTY0QkJcXHU2NEJDXFx1NjREQVxcdTY0QzRcXHU2NEM3XFx1NjRDMlxcdTY0Q0RcXHU2NEJGXFx1NjREMlxcdTY0RDRcXHU2NEJFXFx1NjU3NFxcdTY2QzZcXHU2NkM5XFx1NjZCOVxcdTY2QzRcXHU2NkM3XFx1NjZCOFxcdTZBM0RcXHU2QTM4XFx1NkEzQVxcdTZBNTlcXHU2QTZCXFx1NkE1OFxcdTZBMzlcXHU2QTQ0XFx1NkE2MlxcdTZBNjFcXHU2QTRCXFx1NkE0N1xcdTZBMzVcXHU2QTVGXFx1NkE0OFxcdTZCNTlcXHU2Qjc3XFx1NkMwNVxcdTZGQzJcXHU2RkIxXFx1NkZBMVwiXSxcbiAgICAgIFtcImJmNDBcIiwgXCJcXHU2RkMzXFx1NkZBNFxcdTZGQzFcXHU2RkE3XFx1NkZCM1xcdTZGQzBcXHU2RkI5XFx1NkZCNlxcdTZGQTZcXHU2RkEwXFx1NkZCNFxcdTcxQkVcXHU3MUM5XFx1NzFEMFxcdTcxRDJcXHU3MUM4XFx1NzFENVxcdTcxQjlcXHU3MUNFXFx1NzFEOVxcdTcxRENcXHU3MUMzXFx1NzFDNFxcdTczNjhcXHU3NDlDXFx1NzRBM1xcdTc0OThcXHU3NDlGXFx1NzQ5RVxcdTc0RTJcXHU3NTBDXFx1NzUwRFxcdTc2MzRcXHU3NjM4XFx1NzYzQVxcdTc2RTdcXHU3NkU1XFx1NzdBMFxcdTc3OUVcXHU3NzlGXFx1NzdBNVxcdTc4RThcXHU3OERBXFx1NzhFQ1xcdTc4RTdcXHU3OUE2XFx1N0E0RFxcdTdBNEVcXHU3QTQ2XFx1N0E0Q1xcdTdBNEJcXHU3QUJBXFx1N0JEOVxcdTdDMTFcXHU3QkM5XFx1N0JFNFxcdTdCREJcXHU3QkUxXFx1N0JFOVxcdTdCRTZcXHU3Q0Q1XFx1N0NENlxcdTdFMEFcIl0sXG4gICAgICBbXCJiZmExXCIsIFwiXFx1N0UxMVxcdTdFMDhcXHU3RTFCXFx1N0UyM1xcdTdFMUVcXHU3RTFEXFx1N0UwOVxcdTdFMTBcXHU3Rjc5XFx1N0ZCMlxcdTdGRjBcXHU3RkYxXFx1N0ZFRVxcdTgwMjhcXHU4MUIzXFx1ODFBOVxcdTgxQThcXHU4MUZCXFx1ODIwOFxcdTgyNThcXHU4MjU5XFx1ODU0QVxcdTg1NTlcXHU4NTQ4XFx1ODU2OFxcdTg1NjlcXHU4NTQzXFx1ODU0OVxcdTg1NkRcXHU4NTZBXFx1ODU1RVxcdTg3ODNcXHU4NzlGXFx1ODc5RVxcdTg3QTJcXHU4NzhEXFx1ODg2MVxcdTg5MkFcXHU4OTMyXFx1ODkyNVxcdTg5MkJcXHU4OTIxXFx1ODlBQVxcdTg5QTZcXHU4QUU2XFx1OEFGQVxcdThBRUJcXHU4QUYxXFx1OEIwMFxcdThBRENcXHU4QUU3XFx1OEFFRVxcdThBRkVcXHU4QjAxXFx1OEIwMlxcdThBRjdcXHU4QUVEXFx1OEFGM1xcdThBRjZcXHU4QUZDXFx1OEM2QlxcdThDNkRcXHU4QzkzXFx1OENGNFxcdThFNDRcXHU4RTMxXFx1OEUzNFxcdThFNDJcXHU4RTM5XFx1OEUzNVxcdThGM0JcXHU4RjJGXFx1OEYzOFxcdThGMzNcXHU4RkE4XFx1OEZBNlxcdTkwNzVcXHU5MDc0XFx1OTA3OFxcdTkwNzJcXHU5MDdDXFx1OTA3QVxcdTkxMzRcXHU5MTkyXFx1OTMyMFxcdTkzMzZcXHU5MkY4XFx1OTMzM1xcdTkzMkZcXHU5MzIyXFx1OTJGQ1xcdTkzMkJcXHU5MzA0XFx1OTMxQVwiXSxcbiAgICAgIFtcImMwNDBcIiwgXCJcXHU5MzEwXFx1OTMyNlxcdTkzMjFcXHU5MzE1XFx1OTMyRVxcdTkzMTlcXHU5NUJCXFx1OTZBN1xcdTk2QThcXHU5NkFBXFx1OTZENVxcdTk3MEVcXHU5NzExXFx1OTcxNlxcdTk3MERcXHU5NzEzXFx1OTcwRlxcdTk3NUJcXHU5NzVDXFx1OTc2NlxcdTk3OThcXHU5ODMwXFx1OTgzOFxcdTk4M0JcXHU5ODM3XFx1OTgyRFxcdTk4MzlcXHU5ODI0XFx1OTkxMFxcdTk5MjhcXHU5OTFFXFx1OTkxQlxcdTk5MjFcXHU5OTFBXFx1OTlFRFxcdTk5RTJcXHU5OUYxXFx1OUFCOFxcdTlBQkNcXHU5QUZCXFx1OUFFRFxcdTlCMjhcXHU5QjkxXFx1OUQxNVxcdTlEMjNcXHU5RDI2XFx1OUQyOFxcdTlEMTJcXHU5RDFCXFx1OUVEOFxcdTlFRDRcXHU5RjhEXFx1OUY5Q1xcdTUxMkFcXHU1MTFGXFx1NTEyMVxcdTUxMzJcXHU1MkY1XFx1NTY4RVxcdTU2ODBcXHU1NjkwXFx1NTY4NVxcdTU2ODdcIl0sXG4gICAgICBbXCJjMGExXCIsIFwiXFx1NTY4RlxcdTU4RDVcXHU1OEQzXFx1NThEMVxcdTU4Q0VcXHU1QjMwXFx1NUIyQVxcdTVCMjRcXHU1QjdBXFx1NUMzN1xcdTVDNjhcXHU1REJDXFx1NURCQVxcdTVEQkRcXHU1REI4XFx1NUU2QlxcdTVGNENcXHU1RkJEXFx1NjFDOVxcdTYxQzJcXHU2MUM3XFx1NjFFNlxcdTYxQ0JcXHU2MjMyXFx1NjIzNFxcdTY0Q0VcXHU2NENBXFx1NjREOFxcdTY0RTBcXHU2NEYwXFx1NjRFNlxcdTY0RUNcXHU2NEYxXFx1NjRFMlxcdTY0RURcXHU2NTgyXFx1NjU4M1xcdTY2RDlcXHU2NkQ2XFx1NkE4MFxcdTZBOTRcXHU2QTg0XFx1NkFBMlxcdTZBOUNcXHU2QURCXFx1NkFBM1xcdTZBN0VcXHU2QTk3XFx1NkE5MFxcdTZBQTBcXHU2QjVDXFx1NkJBRVxcdTZCREFcXHU2QzA4XFx1NkZEOFxcdTZGRjFcXHU2RkRGXFx1NkZFMFxcdTZGREJcXHU2RkU0XFx1NkZFQlxcdTZGRUZcXHU2RjgwXFx1NkZFQ1xcdTZGRTFcXHU2RkU5XFx1NkZENVxcdTZGRUVcXHU2RkYwXFx1NzFFN1xcdTcxREZcXHU3MUVFXFx1NzFFNlxcdTcxRTVcXHU3MUVEXFx1NzFFQ1xcdTcxRjRcXHU3MUUwXFx1NzIzNVxcdTcyNDZcXHU3MzcwXFx1NzM3MlxcdTc0QTlcXHU3NEIwXFx1NzRBNlxcdTc0QThcXHU3NjQ2XFx1NzY0MlxcdTc2NENcXHU3NkVBXFx1NzdCM1xcdTc3QUFcXHU3N0IwXFx1NzdBQ1wiXSxcbiAgICAgIFtcImMxNDBcIiwgXCJcXHU3N0E3XFx1NzdBRFxcdTc3RUZcXHU3OEY3XFx1NzhGQVxcdTc4RjRcXHU3OEVGXFx1NzkwMVxcdTc5QTdcXHU3OUFBXFx1N0E1N1xcdTdBQkZcXHU3QzA3XFx1N0MwRFxcdTdCRkVcXHU3QkY3XFx1N0MwQ1xcdTdCRTBcXHU3Q0UwXFx1N0NEQ1xcdTdDREVcXHU3Q0UyXFx1N0NERlxcdTdDRDlcXHU3Q0REXFx1N0UyRVxcdTdFM0VcXHU3RTQ2XFx1N0UzN1xcdTdFMzJcXHU3RTQzXFx1N0UyQlxcdTdFM0RcXHU3RTMxXFx1N0U0NVxcdTdFNDFcXHU3RTM0XFx1N0UzOVxcdTdFNDhcXHU3RTM1XFx1N0UzRlxcdTdFMkZcXHU3RjQ0XFx1N0ZGM1xcdTdGRkNcXHU4MDcxXFx1ODA3MlxcdTgwNzBcXHU4MDZGXFx1ODA3M1xcdTgxQzZcXHU4MUMzXFx1ODFCQVxcdTgxQzJcXHU4MUMwXFx1ODFCRlxcdTgxQkRcXHU4MUM5XFx1ODFCRVxcdTgxRThcXHU4MjA5XFx1ODI3MVxcdTg1QUFcIl0sXG4gICAgICBbXCJjMWExXCIsIFwiXFx1ODU4NFxcdTg1N0VcXHU4NTlDXFx1ODU5MVxcdTg1OTRcXHU4NUFGXFx1ODU5QlxcdTg1ODdcXHU4NUE4XFx1ODU4QVxcdTg2NjdcXHU4N0MwXFx1ODdEMVxcdTg3QjNcXHU4N0QyXFx1ODdDNlxcdTg3QUJcXHU4N0JCXFx1ODdCQVxcdTg3QzhcXHU4N0NCXFx1ODkzQlxcdTg5MzZcXHU4OTQ0XFx1ODkzOFxcdTg5M0RcXHU4OUFDXFx1OEIwRVxcdThCMTdcXHU4QjE5XFx1OEIxQlxcdThCMEFcXHU4QjIwXFx1OEIxRFxcdThCMDRcXHU4QjEwXFx1OEM0MVxcdThDM0ZcXHU4QzczXFx1OENGQVxcdThDRkRcXHU4Q0ZDXFx1OENGOFxcdThDRkJcXHU4REE4XFx1OEU0OVxcdThFNEJcXHU4RTQ4XFx1OEU0QVxcdThGNDRcXHU4RjNFXFx1OEY0MlxcdThGNDVcXHU4RjNGXFx1OTA3RlxcdTkwN0RcXHU5MDg0XFx1OTA4MVxcdTkwODJcXHU5MDgwXFx1OTEzOVxcdTkxQTNcXHU5MTlFXFx1OTE5Q1xcdTkzNERcXHU5MzgyXFx1OTMyOFxcdTkzNzVcXHU5MzRBXFx1OTM2NVxcdTkzNEJcXHU5MzE4XFx1OTM3RVxcdTkzNkNcXHU5MzVCXFx1OTM3MFxcdTkzNUFcXHU5MzU0XFx1OTVDQVxcdTk1Q0JcXHU5NUNDXFx1OTVDOFxcdTk1QzZcXHU5NkIxXFx1OTZCOFxcdTk2RDZcXHU5NzFDXFx1OTcxRVxcdTk3QTBcXHU5N0QzXFx1OTg0NlxcdTk4QjZcXHU5OTM1XFx1OUEwMVwiXSxcbiAgICAgIFtcImMyNDBcIiwgXCJcXHU5OUZGXFx1OUJBRVxcdTlCQUJcXHU5QkFBXFx1OUJBRFxcdTlEM0JcXHU5RDNGXFx1OUU4QlxcdTlFQ0ZcXHU5RURFXFx1OUVEQ1xcdTlFRERcXHU5RURCXFx1OUYzRVxcdTlGNEJcXHU1M0UyXFx1NTY5NVxcdTU2QUVcXHU1OEQ5XFx1NThEOFxcdTVCMzhcXHU1RjVEXFx1NjFFM1xcdTYyMzNcXHU2NEY0XFx1NjRGMlxcdTY0RkVcXHU2NTA2XFx1NjRGQVxcdTY0RkJcXHU2NEY3XFx1NjVCN1xcdTY2RENcXHU2NzI2XFx1NkFCM1xcdTZBQUNcXHU2QUMzXFx1NkFCQlxcdTZBQjhcXHU2QUMyXFx1NkFBRVxcdTZBQUZcXHU2QjVGXFx1NkI3OFxcdTZCQUZcXHU3MDA5XFx1NzAwQlxcdTZGRkVcXHU3MDA2XFx1NkZGQVxcdTcwMTFcXHU3MDBGXFx1NzFGQlxcdTcxRkNcXHU3MUZFXFx1NzFGOFxcdTczNzdcXHU3Mzc1XFx1NzRBN1xcdTc0QkZcXHU3NTE1XFx1NzY1NlxcdTc2NThcIl0sXG4gICAgICBbXCJjMmExXCIsIFwiXFx1NzY1MlxcdTc3QkRcXHU3N0JGXFx1NzdCQlxcdTc3QkNcXHU3OTBFXFx1NzlBRVxcdTdBNjFcXHU3QTYyXFx1N0E2MFxcdTdBQzRcXHU3QUM1XFx1N0MyQlxcdTdDMjdcXHU3QzJBXFx1N0MxRVxcdTdDMjNcXHU3QzIxXFx1N0NFN1xcdTdFNTRcXHU3RTU1XFx1N0U1RVxcdTdFNUFcXHU3RTYxXFx1N0U1MlxcdTdFNTlcXHU3RjQ4XFx1N0ZGOVxcdTdGRkJcXHU4MDc3XFx1ODA3NlxcdTgxQ0RcXHU4MUNGXFx1ODIwQVxcdTg1Q0ZcXHU4NUE5XFx1ODVDRFxcdTg1RDBcXHU4NUM5XFx1ODVCMFxcdTg1QkFcXHU4NUI5XFx1ODVBNlxcdTg3RUZcXHU4N0VDXFx1ODdGMlxcdTg3RTBcXHU4OTg2XFx1ODlCMlxcdTg5RjRcXHU4QjI4XFx1OEIzOVxcdThCMkNcXHU4QjJCXFx1OEM1MFxcdThEMDVcXHU4RTU5XFx1OEU2M1xcdThFNjZcXHU4RTY0XFx1OEU1RlxcdThFNTVcXHU4RUMwXFx1OEY0OVxcdThGNERcXHU5MDg3XFx1OTA4M1xcdTkwODhcXHU5MUFCXFx1OTFBQ1xcdTkxRDBcXHU5Mzk0XFx1OTM4QVxcdTkzOTZcXHU5M0EyXFx1OTNCM1xcdTkzQUVcXHU5M0FDXFx1OTNCMFxcdTkzOThcXHU5MzlBXFx1OTM5N1xcdTk1RDRcXHU5NUQ2XFx1OTVEMFxcdTk1RDVcXHU5NkUyXFx1OTZEQ1xcdTk2RDlcXHU5NkRCXFx1OTZERVxcdTk3MjRcXHU5N0EzXFx1OTdBNlwiXSxcbiAgICAgIFtcImMzNDBcIiwgXCJcXHU5N0FEXFx1OTdGOVxcdTk4NERcXHU5ODRGXFx1OTg0Q1xcdTk4NEVcXHU5ODUzXFx1OThCQVxcdTk5M0VcXHU5OTNGXFx1OTkzRFxcdTk5MkVcXHU5OUE1XFx1OUEwRVxcdTlBQzFcXHU5QjAzXFx1OUIwNlxcdTlCNEZcXHU5QjRFXFx1OUI0RFxcdTlCQ0FcXHU5QkM5XFx1OUJGRFxcdTlCQzhcXHU5QkMwXFx1OUQ1MVxcdTlENURcXHU5RDYwXFx1OUVFMFxcdTlGMTVcXHU5RjJDXFx1NTEzM1xcdTU2QTVcXHU1OERFXFx1NThERlxcdTU4RTJcXHU1QkY1XFx1OUY5MFxcdTVFRUNcXHU2MUYyXFx1NjFGN1xcdTYxRjZcXHU2MUY1XFx1NjUwMFxcdTY1MEZcXHU2NkUwXFx1NjZERFxcdTZBRTVcXHU2QUREXFx1NkFEQVxcdTZBRDNcXHU3MDFCXFx1NzAxRlxcdTcwMjhcXHU3MDFBXFx1NzAxRFxcdTcwMTVcXHU3MDE4XFx1NzIwNlxcdTcyMERcXHU3MjU4XFx1NzJBMlxcdTczNzhcIl0sXG4gICAgICBbXCJjM2ExXCIsIFwiXFx1NzM3QVxcdTc0QkRcXHU3NENBXFx1NzRFM1xcdTc1ODdcXHU3NTg2XFx1NzY1RlxcdTc2NjFcXHU3N0M3XFx1NzkxOVxcdTc5QjFcXHU3QTZCXFx1N0E2OVxcdTdDM0VcXHU3QzNGXFx1N0MzOFxcdTdDM0RcXHU3QzM3XFx1N0M0MFxcdTdFNkJcXHU3RTZEXFx1N0U3OVxcdTdFNjlcXHU3RTZBXFx1N0Y4NVxcdTdFNzNcXHU3RkI2XFx1N0ZCOVxcdTdGQjhcXHU4MUQ4XFx1ODVFOVxcdTg1RERcXHU4NUVBXFx1ODVENVxcdTg1RTRcXHU4NUU1XFx1ODVGN1xcdTg3RkJcXHU4ODA1XFx1ODgwRFxcdTg3RjlcXHU4N0ZFXFx1ODk2MFxcdTg5NUZcXHU4OTU2XFx1ODk1RVxcdThCNDFcXHU4QjVDXFx1OEI1OFxcdThCNDlcXHU4QjVBXFx1OEI0RVxcdThCNEZcXHU4QjQ2XFx1OEI1OVxcdThEMDhcXHU4RDBBXFx1OEU3Q1xcdThFNzJcXHU4RTg3XFx1OEU3NlxcdThFNkNcXHU4RTdBXFx1OEU3NFxcdThGNTRcXHU4RjRFXFx1OEZBRFxcdTkwOEFcXHU5MDhCXFx1OTFCMVxcdTkxQUVcXHU5M0UxXFx1OTNEMVxcdTkzREZcXHU5M0MzXFx1OTNDOFxcdTkzRENcXHU5M0REXFx1OTNENlxcdTkzRTJcXHU5M0NEXFx1OTNEOFxcdTkzRTRcXHU5M0Q3XFx1OTNFOFxcdTk1RENcXHU5NkI0XFx1OTZFM1xcdTk3MkFcXHU5NzI3XFx1OTc2MVxcdTk3RENcXHU5N0ZCXFx1OTg1RVwiXSxcbiAgICAgIFtcImM0NDBcIiwgXCJcXHU5ODU4XFx1OTg1QlxcdTk4QkNcXHU5OTQ1XFx1OTk0OVxcdTlBMTZcXHU5QTE5XFx1OUIwRFxcdTlCRThcXHU5QkU3XFx1OUJENlxcdTlCREJcXHU5RDg5XFx1OUQ2MVxcdTlENzJcXHU5RDZBXFx1OUQ2Q1xcdTlFOTJcXHU5RTk3XFx1OUU5M1xcdTlFQjRcXHU1MkY4XFx1NTZBOFxcdTU2QjdcXHU1NkI2XFx1NTZCNFxcdTU2QkNcXHU1OEU0XFx1NUI0MFxcdTVCNDNcXHU1QjdEXFx1NUJGNlxcdTVEQzlcXHU2MUY4XFx1NjFGQVxcdTY1MThcXHU2NTE0XFx1NjUxOVxcdTY2RTZcXHU2NzI3XFx1NkFFQ1xcdTcwM0VcXHU3MDMwXFx1NzAzMlxcdTcyMTBcXHU3MzdCXFx1NzRDRlxcdTc2NjJcXHU3NjY1XFx1NzkyNlxcdTc5MkFcXHU3OTJDXFx1NzkyQlxcdTdBQzdcXHU3QUY2XFx1N0M0Q1xcdTdDNDNcXHU3QzREXFx1N0NFRlxcdTdDRjBcXHU4RkFFXFx1N0U3RFxcdTdFN0NcIl0sXG4gICAgICBbXCJjNGExXCIsIFwiXFx1N0U4MlxcdTdGNENcXHU4MDAwXFx1ODFEQVxcdTgyNjZcXHU4NUZCXFx1ODVGOVxcdTg2MTFcXHU4NUZBXFx1ODYwNlxcdTg2MEJcXHU4NjA3XFx1ODYwQVxcdTg4MTRcXHU4ODE1XFx1ODk2NFxcdTg5QkFcXHU4OUY4XFx1OEI3MFxcdThCNkNcXHU4QjY2XFx1OEI2RlxcdThCNUZcXHU4QjZCXFx1OEQwRlxcdThEMERcXHU4RTg5XFx1OEU4MVxcdThFODVcXHU4RTgyXFx1OTFCNFxcdTkxQ0JcXHU5NDE4XFx1OTQwM1xcdTkzRkRcXHU5NUUxXFx1OTczMFxcdTk4QzRcXHU5OTUyXFx1OTk1MVxcdTk5QThcXHU5QTJCXFx1OUEzMFxcdTlBMzdcXHU5QTM1XFx1OUMxM1xcdTlDMERcXHU5RTc5XFx1OUVCNVxcdTlFRThcXHU5RjJGXFx1OUY1RlxcdTlGNjNcXHU5RjYxXFx1NTEzN1xcdTUxMzhcXHU1NkMxXFx1NTZDMFxcdTU2QzJcXHU1OTE0XFx1NUM2Q1xcdTVEQ0RcXHU2MUZDXFx1NjFGRVxcdTY1MURcXHU2NTFDXFx1NjU5NVxcdTY2RTlcXHU2QUZCXFx1NkIwNFxcdTZBRkFcXHU2QkIyXFx1NzA0Q1xcdTcyMUJcXHU3MkE3XFx1NzRENlxcdTc0RDRcXHU3NjY5XFx1NzdEM1xcdTdDNTBcXHU3RThGXFx1N0U4Q1xcdTdGQkNcXHU4NjE3XFx1ODYyRFxcdTg2MUFcXHU4ODIzXFx1ODgyMlxcdTg4MjFcXHU4ODFGXFx1ODk2QVxcdTg5NkNcXHU4OUJEXFx1OEI3NFwiXSxcbiAgICAgIFtcImM1NDBcIiwgXCJcXHU4Qjc3XFx1OEI3RFxcdThEMTNcXHU4RThBXFx1OEU4RFxcdThFOEJcXHU4RjVGXFx1OEZBRlxcdTkxQkFcXHU5NDJFXFx1OTQzM1xcdTk0MzVcXHU5NDNBXFx1OTQzOFxcdTk0MzJcXHU5NDJCXFx1OTVFMlxcdTk3MzhcXHU5NzM5XFx1OTczMlxcdTk3RkZcXHU5ODY3XFx1OTg2NVxcdTk5NTdcXHU5QTQ1XFx1OUE0M1xcdTlBNDBcXHU5QTNFXFx1OUFDRlxcdTlCNTRcXHU5QjUxXFx1OUMyRFxcdTlDMjVcXHU5REFGXFx1OURCNFxcdTlEQzJcXHU5REI4XFx1OUU5RFxcdTlFRUZcXHU5RjE5XFx1OUY1Q1xcdTlGNjZcXHU5RjY3XFx1NTEzQ1xcdTUxM0JcXHU1NkM4XFx1NTZDQVxcdTU2QzlcXHU1QjdGXFx1NURENFxcdTVERDJcXHU1RjRFXFx1NjFGRlxcdTY1MjRcXHU2QjBBXFx1NkI2MVxcdTcwNTFcXHU3MDU4XFx1NzM4MFxcdTc0RTRcXHU3NThBXFx1NzY2RVxcdTc2NkNcIl0sXG4gICAgICBbXCJjNWExXCIsIFwiXFx1NzlCM1xcdTdDNjBcXHU3QzVGXFx1ODA3RVxcdTgwN0RcXHU4MURGXFx1ODk3MlxcdTg5NkZcXHU4OUZDXFx1OEI4MFxcdThEMTZcXHU4RDE3XFx1OEU5MVxcdThFOTNcXHU4RjYxXFx1OTE0OFxcdTk0NDRcXHU5NDUxXFx1OTQ1MlxcdTk3M0RcXHU5NzNFXFx1OTdDM1xcdTk3QzFcXHU5ODZCXFx1OTk1NVxcdTlBNTVcXHU5QTREXFx1OUFEMlxcdTlCMUFcXHU5QzQ5XFx1OUMzMVxcdTlDM0VcXHU5QzNCXFx1OUREM1xcdTlERDdcXHU5RjM0XFx1OUY2Q1xcdTlGNkFcXHU5Rjk0XFx1NTZDQ1xcdTVERDZcXHU2MjAwXFx1NjUyM1xcdTY1MkJcXHU2NTJBXFx1NjZFQ1xcdTZCMTBcXHU3NERBXFx1N0FDQVxcdTdDNjRcXHU3QzYzXFx1N0M2NVxcdTdFOTNcXHU3RTk2XFx1N0U5NFxcdTgxRTJcXHU4NjM4XFx1ODYzRlxcdTg4MzFcXHU4QjhBXFx1OTA5MFxcdTkwOEZcXHU5NDYzXFx1OTQ2MFxcdTk0NjRcXHU5NzY4XFx1OTg2RlxcdTk5NUNcXHU5QTVBXFx1OUE1QlxcdTlBNTdcXHU5QUQzXFx1OUFENFxcdTlBRDFcXHU5QzU0XFx1OUM1N1xcdTlDNTZcXHU5REU1XFx1OUU5RlxcdTlFRjRcXHU1NkQxXFx1NThFOVxcdTY1MkNcXHU3MDVFXFx1NzY3MVxcdTc2NzJcXHU3N0Q3XFx1N0Y1MFxcdTdGODhcXHU4ODM2XFx1ODgzOVxcdTg4NjJcXHU4QjkzXFx1OEI5MlwiXSxcbiAgICAgIFtcImM2NDBcIiwgXCJcXHU4Qjk2XFx1ODI3N1xcdThEMUJcXHU5MUMwXFx1OTQ2QVxcdTk3NDJcXHU5NzQ4XFx1OTc0NFxcdTk3QzZcXHU5ODcwXFx1OUE1RlxcdTlCMjJcXHU5QjU4XFx1OUM1RlxcdTlERjlcXHU5REZBXFx1OUU3Q1xcdTlFN0RcXHU5RjA3XFx1OUY3N1xcdTlGNzJcXHU1RUYzXFx1NkIxNlxcdTcwNjNcXHU3QzZDXFx1N0M2RVxcdTg4M0JcXHU4OUMwXFx1OEVBMVxcdTkxQzFcXHU5NDcyXFx1OTQ3MFxcdTk4NzFcXHU5OTVFXFx1OUFENlxcdTlCMjNcXHU5RUNDXFx1NzA2NFxcdTc3REFcXHU4QjlBXFx1OTQ3N1xcdTk3QzlcXHU5QTYyXFx1OUE2NVxcdTdFOUNcXHU4QjlDXFx1OEVBQVxcdTkxQzVcXHU5NDdEXFx1OTQ3RVxcdTk0N0NcXHU5Qzc3XFx1OUM3OFxcdTlFRjdcXHU4QzU0XFx1OTQ3RlxcdTlFMUFcXHU3MjI4XFx1OUE2QVxcdTlCMzFcXHU5RTFCXFx1OUUxRVxcdTdDNzJcIl0sXG4gICAgICBbXCJjOTQwXCIsIFwiXFx1NEU0MlxcdTRFNUNcXHU1MUY1XFx1NTMxQVxcdTUzODJcXHU0RTA3XFx1NEUwQ1xcdTRFNDdcXHU0RThEXFx1NTZEN1xcdUZBMENcXHU1QzZFXFx1NUY3M1xcdTRFMEZcXHU1MTg3XFx1NEUwRVxcdTRFMkVcXHU0RTkzXFx1NEVDMlxcdTRFQzlcXHU0RUM4XFx1NTE5OFxcdTUyRkNcXHU1MzZDXFx1NTNCOVxcdTU3MjBcXHU1OTAzXFx1NTkyQ1xcdTVDMTBcXHU1REZGXFx1NjVFMVxcdTZCQjNcXHU2QkNDXFx1NkMxNFxcdTcyM0ZcXHU0RTMxXFx1NEUzQ1xcdTRFRThcXHU0RURDXFx1NEVFOVxcdTRFRTFcXHU0RUREXFx1NEVEQVxcdTUyMENcXHU1MzFDXFx1NTM0Q1xcdTU3MjJcXHU1NzIzXFx1NTkxN1xcdTU5MkZcXHU1QjgxXFx1NUI4NFxcdTVDMTJcXHU1QzNCXFx1NUM3NFxcdTVDNzNcXHU1RTA0XFx1NUU4MFxcdTVFODJcXHU1RkM5XFx1NjIwOVxcdTYyNTBcXHU2QzE1XCJdLFxuICAgICAgW1wiYzlhMVwiLCBcIlxcdTZDMzZcXHU2QzQzXFx1NkMzRlxcdTZDM0JcXHU3MkFFXFx1NzJCMFxcdTczOEFcXHU3OUI4XFx1ODA4QVxcdTk2MUVcXHU0RjBFXFx1NEYxOFxcdTRGMkNcXHU0RUY1XFx1NEYxNFxcdTRFRjFcXHU0RjAwXFx1NEVGN1xcdTRGMDhcXHU0RjFEXFx1NEYwMlxcdTRGMDVcXHU0RjIyXFx1NEYxM1xcdTRGMDRcXHU0RUY0XFx1NEYxMlxcdTUxQjFcXHU1MjEzXFx1NTIwOVxcdTUyMTBcXHU1MkE2XFx1NTMyMlxcdTUzMUZcXHU1MzREXFx1NTM4QVxcdTU0MDdcXHU1NkUxXFx1NTZERlxcdTU3MkVcXHU1NzJBXFx1NTczNFxcdTU5M0NcXHU1OTgwXFx1NTk3Q1xcdTU5ODVcXHU1OTdCXFx1NTk3RVxcdTU5NzdcXHU1OTdGXFx1NUI1NlxcdTVDMTVcXHU1QzI1XFx1NUM3Q1xcdTVDN0FcXHU1QzdCXFx1NUM3RVxcdTVEREZcXHU1RTc1XFx1NUU4NFxcdTVGMDJcXHU1RjFBXFx1NUY3NFxcdTVGRDVcXHU1RkQ0XFx1NUZDRlxcdTYyNUNcXHU2MjVFXFx1NjI2NFxcdTYyNjFcXHU2MjY2XFx1NjI2MlxcdTYyNTlcXHU2MjYwXFx1NjI1QVxcdTYyNjVcXHU2NUVGXFx1NjVFRVxcdTY3M0VcXHU2NzM5XFx1NjczOFxcdTY3M0JcXHU2NzNBXFx1NjczRlxcdTY3M0NcXHU2NzMzXFx1NkMxOFxcdTZDNDZcXHU2QzUyXFx1NkM1Q1xcdTZDNEZcXHU2QzRBXFx1NkM1NFxcdTZDNEJcIl0sXG4gICAgICBbXCJjYTQwXCIsIFwiXFx1NkM0Q1xcdTcwNzFcXHU3MjVFXFx1NzJCNFxcdTcyQjVcXHU3MzhFXFx1NzUyQVxcdTc2N0ZcXHU3QTc1XFx1N0Y1MVxcdTgyNzhcXHU4MjdDXFx1ODI4MFxcdTgyN0RcXHU4MjdGXFx1ODY0RFxcdTg5N0VcXHU5MDk5XFx1OTA5N1xcdTkwOThcXHU5MDlCXFx1OTA5NFxcdTk2MjJcXHU5NjI0XFx1OTYyMFxcdTk2MjNcXHU0RjU2XFx1NEYzQlxcdTRGNjJcXHU0RjQ5XFx1NEY1M1xcdTRGNjRcXHU0RjNFXFx1NEY2N1xcdTRGNTJcXHU0RjVGXFx1NEY0MVxcdTRGNThcXHU0RjJEXFx1NEYzM1xcdTRGM0ZcXHU0RjYxXFx1NTE4RlxcdTUxQjlcXHU1MjFDXFx1NTIxRVxcdTUyMjFcXHU1MkFEXFx1NTJBRVxcdTUzMDlcXHU1MzYzXFx1NTM3MlxcdTUzOEVcXHU1MzhGXFx1NTQzMFxcdTU0MzdcXHU1NDJBXFx1NTQ1NFxcdTU0NDVcXHU1NDE5XFx1NTQxQ1xcdTU0MjVcXHU1NDE4XCJdLFxuICAgICAgW1wiY2FhMVwiLCBcIlxcdTU0M0RcXHU1NDRGXFx1NTQ0MVxcdTU0MjhcXHU1NDI0XFx1NTQ0N1xcdTU2RUVcXHU1NkU3XFx1NTZFNVxcdTU3NDFcXHU1NzQ1XFx1NTc0Q1xcdTU3NDlcXHU1NzRCXFx1NTc1MlxcdTU5MDZcXHU1OTQwXFx1NTlBNlxcdTU5OThcXHU1OUEwXFx1NTk5N1xcdTU5OEVcXHU1OUEyXFx1NTk5MFxcdTU5OEZcXHU1OUE3XFx1NTlBMVxcdTVCOEVcXHU1QjkyXFx1NUMyOFxcdTVDMkFcXHU1QzhEXFx1NUM4RlxcdTVDODhcXHU1QzhCXFx1NUM4OVxcdTVDOTJcXHU1QzhBXFx1NUM4NlxcdTVDOTNcXHU1Qzk1XFx1NURFMFxcdTVFMEFcXHU1RTBFXFx1NUU4QlxcdTVFODlcXHU1RThDXFx1NUU4OFxcdTVFOERcXHU1RjA1XFx1NUYxRFxcdTVGNzhcXHU1Rjc2XFx1NUZEMlxcdTVGRDFcXHU1RkQwXFx1NUZFRFxcdTVGRThcXHU1RkVFXFx1NUZGM1xcdTVGRTFcXHU1RkU0XFx1NUZFM1xcdTVGRkFcXHU1RkVGXFx1NUZGN1xcdTVGRkJcXHU2MDAwXFx1NUZGNFxcdTYyM0FcXHU2MjgzXFx1NjI4Q1xcdTYyOEVcXHU2MjhGXFx1NjI5NFxcdTYyODdcXHU2MjcxXFx1NjI3QlxcdTYyN0FcXHU2MjcwXFx1NjI4MVxcdTYyODhcXHU2Mjc3XFx1NjI3RFxcdTYyNzJcXHU2Mjc0XFx1NjUzN1xcdTY1RjBcXHU2NUY0XFx1NjVGM1xcdTY1RjJcXHU2NUY1XFx1Njc0NVxcdTY3NDdcIl0sXG4gICAgICBbXCJjYjQwXCIsIFwiXFx1Njc1OVxcdTY3NTVcXHU2NzRDXFx1Njc0OFxcdTY3NURcXHU2NzREXFx1Njc1QVxcdTY3NEJcXHU2QkQwXFx1NkMxOVxcdTZDMUFcXHU2Qzc4XFx1NkM2N1xcdTZDNkJcXHU2Qzg0XFx1NkM4QlxcdTZDOEZcXHU2QzcxXFx1NkM2RlxcdTZDNjlcXHU2QzlBXFx1NkM2RFxcdTZDODdcXHU2Qzk1XFx1NkM5Q1xcdTZDNjZcXHU2QzczXFx1NkM2NVxcdTZDN0JcXHU2QzhFXFx1NzA3NFxcdTcwN0FcXHU3MjYzXFx1NzJCRlxcdTcyQkRcXHU3MkMzXFx1NzJDNlxcdTcyQzFcXHU3MkJBXFx1NzJDNVxcdTczOTVcXHU3Mzk3XFx1NzM5M1xcdTczOTRcXHU3MzkyXFx1NzUzQVxcdTc1MzlcXHU3NTk0XFx1NzU5NVxcdTc2ODFcXHU3OTNEXFx1ODAzNFxcdTgwOTVcXHU4MDk5XFx1ODA5MFxcdTgwOTJcXHU4MDlDXFx1ODI5MFxcdTgyOEZcXHU4Mjg1XFx1ODI4RVxcdTgyOTFcXHU4MjkzXCJdLFxuICAgICAgW1wiY2JhMVwiLCBcIlxcdTgyOEFcXHU4MjgzXFx1ODI4NFxcdThDNzhcXHU4RkM5XFx1OEZCRlxcdTkwOUZcXHU5MEExXFx1OTBBNVxcdTkwOUVcXHU5MEE3XFx1OTBBMFxcdTk2MzBcXHU5NjI4XFx1OTYyRlxcdTk2MkRcXHU0RTMzXFx1NEY5OFxcdTRGN0NcXHU0Rjg1XFx1NEY3RFxcdTRGODBcXHU0Rjg3XFx1NEY3NlxcdTRGNzRcXHU0Rjg5XFx1NEY4NFxcdTRGNzdcXHU0RjRDXFx1NEY5N1xcdTRGNkFcXHU0RjlBXFx1NEY3OVxcdTRGODFcXHU0Rjc4XFx1NEY5MFxcdTRGOUNcXHU0Rjk0XFx1NEY5RVxcdTRGOTJcXHU0RjgyXFx1NEY5NVxcdTRGNkJcXHU0RjZFXFx1NTE5RVxcdTUxQkNcXHU1MUJFXFx1NTIzNVxcdTUyMzJcXHU1MjMzXFx1NTI0NlxcdTUyMzFcXHU1MkJDXFx1NTMwQVxcdTUzMEJcXHU1MzNDXFx1NTM5MlxcdTUzOTRcXHU1NDg3XFx1NTQ3RlxcdTU0ODFcXHU1NDkxXFx1NTQ4MlxcdTU0ODhcXHU1NDZCXFx1NTQ3QVxcdTU0N0VcXHU1NDY1XFx1NTQ2Q1xcdTU0NzRcXHU1NDY2XFx1NTQ4RFxcdTU0NkZcXHU1NDYxXFx1NTQ2MFxcdTU0OThcXHU1NDYzXFx1NTQ2N1xcdTU0NjRcXHU1NkY3XFx1NTZGOVxcdTU3NkZcXHU1NzcyXFx1NTc2RFxcdTU3NkJcXHU1NzcxXFx1NTc3MFxcdTU3NzZcXHU1NzgwXFx1NTc3NVxcdTU3N0JcXHU1NzczXFx1NTc3NFxcdTU3NjJcIl0sXG4gICAgICBbXCJjYzQwXCIsIFwiXFx1NTc2OFxcdTU3N0RcXHU1OTBDXFx1NTk0NVxcdTU5QjVcXHU1OUJBXFx1NTlDRlxcdTU5Q0VcXHU1OUIyXFx1NTlDQ1xcdTU5QzFcXHU1OUI2XFx1NTlCQ1xcdTU5QzNcXHU1OUQ2XFx1NTlCMVxcdTU5QkRcXHU1OUMwXFx1NTlDOFxcdTU5QjRcXHU1OUM3XFx1NUI2MlxcdTVCNjVcXHU1QjkzXFx1NUI5NVxcdTVDNDRcXHU1QzQ3XFx1NUNBRVxcdTVDQTRcXHU1Q0EwXFx1NUNCNVxcdTVDQUZcXHU1Q0E4XFx1NUNBQ1xcdTVDOUZcXHU1Q0EzXFx1NUNBRFxcdTVDQTJcXHU1Q0FBXFx1NUNBN1xcdTVDOURcXHU1Q0E1XFx1NUNCNlxcdTVDQjBcXHU1Q0E2XFx1NUUxN1xcdTVFMTRcXHU1RTE5XFx1NUYyOFxcdTVGMjJcXHU1RjIzXFx1NUYyNFxcdTVGNTRcXHU1RjgyXFx1NUY3RVxcdTVGN0RcXHU1RkRFXFx1NUZFNVxcdTYwMkRcXHU2MDI2XFx1NjAxOVxcdTYwMzJcXHU2MDBCXCJdLFxuICAgICAgW1wiY2NhMVwiLCBcIlxcdTYwMzRcXHU2MDBBXFx1NjAxN1xcdTYwMzNcXHU2MDFBXFx1NjAxRVxcdTYwMkNcXHU2MDIyXFx1NjAwRFxcdTYwMTBcXHU2MDJFXFx1NjAxM1xcdTYwMTFcXHU2MDBDXFx1NjAwOVxcdTYwMUNcXHU2MjE0XFx1NjIzRFxcdTYyQURcXHU2MkI0XFx1NjJEMVxcdTYyQkVcXHU2MkFBXFx1NjJCNlxcdTYyQ0FcXHU2MkFFXFx1NjJCM1xcdTYyQUZcXHU2MkJCXFx1NjJBOVxcdTYyQjBcXHU2MkI4XFx1NjUzRFxcdTY1QThcXHU2NUJCXFx1NjYwOVxcdTY1RkNcXHU2NjA0XFx1NjYxMlxcdTY2MDhcXHU2NUZCXFx1NjYwM1xcdTY2MEJcXHU2NjBEXFx1NjYwNVxcdTY1RkRcXHU2NjExXFx1NjYxMFxcdTY2RjZcXHU2NzBBXFx1Njc4NVxcdTY3NkNcXHU2NzhFXFx1Njc5MlxcdTY3NzZcXHU2NzdCXFx1Njc5OFxcdTY3ODZcXHU2Nzg0XFx1Njc3NFxcdTY3OERcXHU2NzhDXFx1Njc3QVxcdTY3OUZcXHU2NzkxXFx1Njc5OVxcdTY3ODNcXHU2NzdEXFx1Njc4MVxcdTY3NzhcXHU2Nzc5XFx1Njc5NFxcdTZCMjVcXHU2QjgwXFx1NkI3RVxcdTZCREVcXHU2QzFEXFx1NkM5M1xcdTZDRUNcXHU2Q0VCXFx1NkNFRVxcdTZDRDlcXHU2Q0I2XFx1NkNENFxcdTZDQURcXHU2Q0U3XFx1NkNCN1xcdTZDRDBcXHU2Q0MyXFx1NkNCQVxcdTZDQzNcXHU2Q0M2XFx1NkNFRFxcdTZDRjJcIl0sXG4gICAgICBbXCJjZDQwXCIsIFwiXFx1NkNEMlxcdTZDRERcXHU2Q0I0XFx1NkM4QVxcdTZDOURcXHU2QzgwXFx1NkNERVxcdTZDQzBcXHU2RDMwXFx1NkNDRFxcdTZDQzdcXHU2Q0IwXFx1NkNGOVxcdTZDQ0ZcXHU2Q0U5XFx1NkNEMVxcdTcwOTRcXHU3MDk4XFx1NzA4NVxcdTcwOTNcXHU3MDg2XFx1NzA4NFxcdTcwOTFcXHU3MDk2XFx1NzA4MlxcdTcwOUFcXHU3MDgzXFx1NzI2QVxcdTcyRDZcXHU3MkNCXFx1NzJEOFxcdTcyQzlcXHU3MkRDXFx1NzJEMlxcdTcyRDRcXHU3MkRBXFx1NzJDQ1xcdTcyRDFcXHU3M0E0XFx1NzNBMVxcdTczQURcXHU3M0E2XFx1NzNBMlxcdTczQTBcXHU3M0FDXFx1NzM5RFxcdTc0RERcXHU3NEU4XFx1NzUzRlxcdTc1NDBcXHU3NTNFXFx1NzU4Q1xcdTc1OThcXHU3NkFGXFx1NzZGM1xcdTc2RjFcXHU3NkYwXFx1NzZGNVxcdTc3RjhcXHU3N0ZDXFx1NzdGOVxcdTc3RkJcXHU3N0ZBXCJdLFxuICAgICAgW1wiY2RhMVwiLCBcIlxcdTc3RjdcXHU3OTQyXFx1NzkzRlxcdTc5QzVcXHU3QTc4XFx1N0E3QlxcdTdBRkJcXHU3Qzc1XFx1N0NGRFxcdTgwMzVcXHU4MDhGXFx1ODBBRVxcdTgwQTNcXHU4MEI4XFx1ODBCNVxcdTgwQURcXHU4MjIwXFx1ODJBMFxcdTgyQzBcXHU4MkFCXFx1ODI5QVxcdTgyOThcXHU4MjlCXFx1ODJCNVxcdTgyQTdcXHU4MkFFXFx1ODJCQ1xcdTgyOUVcXHU4MkJBXFx1ODJCNFxcdTgyQThcXHU4MkExXFx1ODJBOVxcdTgyQzJcXHU4MkE0XFx1ODJDM1xcdTgyQjZcXHU4MkEyXFx1ODY3MFxcdTg2NkZcXHU4NjZEXFx1ODY2RVxcdThDNTZcXHU4RkQyXFx1OEZDQlxcdThGRDNcXHU4RkNEXFx1OEZENlxcdThGRDVcXHU4RkQ3XFx1OTBCMlxcdTkwQjRcXHU5MEFGXFx1OTBCM1xcdTkwQjBcXHU5NjM5XFx1OTYzRFxcdTk2M0NcXHU5NjNBXFx1OTY0M1xcdTRGQ0RcXHU0RkM1XFx1NEZEM1xcdTRGQjJcXHU0RkM5XFx1NEZDQlxcdTRGQzFcXHU0RkQ0XFx1NEZEQ1xcdTRGRDlcXHU0RkJCXFx1NEZCM1xcdTRGREJcXHU0RkM3XFx1NEZENlxcdTRGQkFcXHU0RkMwXFx1NEZCOVxcdTRGRUNcXHU1MjQ0XFx1NTI0OVxcdTUyQzBcXHU1MkMyXFx1NTMzRFxcdTUzN0NcXHU1Mzk3XFx1NTM5NlxcdTUzOTlcXHU1Mzk4XFx1NTRCQVxcdTU0QTFcXHU1NEFEXFx1NTRBNVxcdTU0Q0ZcIl0sXG4gICAgICBbXCJjZTQwXCIsIFwiXFx1NTRDM1xcdTgzMERcXHU1NEI3XFx1NTRBRVxcdTU0RDZcXHU1NEI2XFx1NTRDNVxcdTU0QzZcXHU1NEEwXFx1NTQ3MFxcdTU0QkNcXHU1NEEyXFx1NTRCRVxcdTU0NzJcXHU1NERFXFx1NTRCMFxcdTU3QjVcXHU1NzlFXFx1NTc5RlxcdTU3QTRcXHU1NzhDXFx1NTc5N1xcdTU3OURcXHU1NzlCXFx1NTc5NFxcdTU3OThcXHU1NzhGXFx1NTc5OVxcdTU3QTVcXHU1NzlBXFx1NTc5NVxcdTU4RjRcXHU1OTBEXFx1NTk1M1xcdTU5RTFcXHU1OURFXFx1NTlFRVxcdTVBMDBcXHU1OUYxXFx1NTlERFxcdTU5RkFcXHU1OUZEXFx1NTlGQ1xcdTU5RjZcXHU1OUU0XFx1NTlGMlxcdTU5RjdcXHU1OURCXFx1NTlFOVxcdTU5RjNcXHU1OUY1XFx1NTlFMFxcdTU5RkVcXHU1OUY0XFx1NTlFRFxcdTVCQThcXHU1QzRDXFx1NUNEMFxcdTVDRDhcXHU1Q0NDXFx1NUNEN1xcdTVDQ0JcXHU1Q0RCXCJdLFxuICAgICAgW1wiY2VhMVwiLCBcIlxcdTVDREVcXHU1Q0RBXFx1NUNDOVxcdTVDQzdcXHU1Q0NBXFx1NUNENlxcdTVDRDNcXHU1Q0Q0XFx1NUNDRlxcdTVDQzhcXHU1Q0M2XFx1NUNDRVxcdTVDREZcXHU1Q0Y4XFx1NURGOVxcdTVFMjFcXHU1RTIyXFx1NUUyM1xcdTVFMjBcXHU1RTI0XFx1NUVCMFxcdTVFQTRcXHU1RUEyXFx1NUU5QlxcdTVFQTNcXHU1RUE1XFx1NUYwN1xcdTVGMkVcXHU1RjU2XFx1NUY4NlxcdTYwMzdcXHU2MDM5XFx1NjA1NFxcdTYwNzJcXHU2MDVFXFx1NjA0NVxcdTYwNTNcXHU2MDQ3XFx1NjA0OVxcdTYwNUJcXHU2MDRDXFx1NjA0MFxcdTYwNDJcXHU2MDVGXFx1NjAyNFxcdTYwNDRcXHU2MDU4XFx1NjA2NlxcdTYwNkVcXHU2MjQyXFx1NjI0M1xcdTYyQ0ZcXHU2MzBEXFx1NjMwQlxcdTYyRjVcXHU2MzBFXFx1NjMwM1xcdTYyRUJcXHU2MkY5XFx1NjMwRlxcdTYzMENcXHU2MkY4XFx1NjJGNlxcdTYzMDBcXHU2MzEzXFx1NjMxNFxcdTYyRkFcXHU2MzE1XFx1NjJGQlxcdTYyRjBcXHU2NTQxXFx1NjU0M1xcdTY1QUFcXHU2NUJGXFx1NjYzNlxcdTY2MjFcXHU2NjMyXFx1NjYzNVxcdTY2MUNcXHU2NjI2XFx1NjYyMlxcdTY2MzNcXHU2NjJCXFx1NjYzQVxcdTY2MURcXHU2NjM0XFx1NjYzOVxcdTY2MkVcXHU2NzBGXFx1NjcxMFxcdTY3QzFcXHU2N0YyXFx1NjdDOFxcdTY3QkFcIl0sXG4gICAgICBbXCJjZjQwXCIsIFwiXFx1NjdEQ1xcdTY3QkJcXHU2N0Y4XFx1NjdEOFxcdTY3QzBcXHU2N0I3XFx1NjdDNVxcdTY3RUJcXHU2N0U0XFx1NjdERlxcdTY3QjVcXHU2N0NEXFx1NjdCM1xcdTY3RjdcXHU2N0Y2XFx1NjdFRVxcdTY3RTNcXHU2N0MyXFx1NjdCOVxcdTY3Q0VcXHU2N0U3XFx1NjdGMFxcdTY3QjJcXHU2N0ZDXFx1NjdDNlxcdTY3RURcXHU2N0NDXFx1NjdBRVxcdTY3RTZcXHU2N0RCXFx1NjdGQVxcdTY3QzlcXHU2N0NBXFx1NjdDM1xcdTY3RUFcXHU2N0NCXFx1NkIyOFxcdTZCODJcXHU2Qjg0XFx1NkJCNlxcdTZCRDZcXHU2QkQ4XFx1NkJFMFxcdTZDMjBcXHU2QzIxXFx1NkQyOFxcdTZEMzRcXHU2RDJEXFx1NkQxRlxcdTZEM0NcXHU2RDNGXFx1NkQxMlxcdTZEMEFcXHU2Q0RBXFx1NkQzM1xcdTZEMDRcXHU2RDE5XFx1NkQzQVxcdTZEMUFcXHU2RDExXFx1NkQwMFxcdTZEMURcXHU2RDQyXCJdLFxuICAgICAgW1wiY2ZhMVwiLCBcIlxcdTZEMDFcXHU2RDE4XFx1NkQzN1xcdTZEMDNcXHU2RDBGXFx1NkQ0MFxcdTZEMDdcXHU2RDIwXFx1NkQyQ1xcdTZEMDhcXHU2RDIyXFx1NkQwOVxcdTZEMTBcXHU3MEI3XFx1NzA5RlxcdTcwQkVcXHU3MEIxXFx1NzBCMFxcdTcwQTFcXHU3MEI0XFx1NzBCNVxcdTcwQTlcXHU3MjQxXFx1NzI0OVxcdTcyNEFcXHU3MjZDXFx1NzI3MFxcdTcyNzNcXHU3MjZFXFx1NzJDQVxcdTcyRTRcXHU3MkU4XFx1NzJFQlxcdTcyREZcXHU3MkVBXFx1NzJFNlxcdTcyRTNcXHU3Mzg1XFx1NzNDQ1xcdTczQzJcXHU3M0M4XFx1NzNDNVxcdTczQjlcXHU3M0I2XFx1NzNCNVxcdTczQjRcXHU3M0VCXFx1NzNCRlxcdTczQzdcXHU3M0JFXFx1NzNDM1xcdTczQzZcXHU3M0I4XFx1NzNDQlxcdTc0RUNcXHU3NEVFXFx1NzUyRVxcdTc1NDdcXHU3NTQ4XFx1NzVBN1xcdTc1QUFcXHU3Njc5XFx1NzZDNFxcdTc3MDhcXHU3NzAzXFx1NzcwNFxcdTc3MDVcXHU3NzBBXFx1NzZGN1xcdTc2RkJcXHU3NkZBXFx1NzdFN1xcdTc3RThcXHU3ODA2XFx1NzgxMVxcdTc4MTJcXHU3ODA1XFx1NzgxMFxcdTc4MEZcXHU3ODBFXFx1NzgwOVxcdTc4MDNcXHU3ODEzXFx1Nzk0QVxcdTc5NENcXHU3OTRCXFx1Nzk0NVxcdTc5NDRcXHU3OUQ1XFx1NzlDRFxcdTc5Q0ZcXHU3OUQ2XFx1NzlDRVxcdTdBODBcIl0sXG4gICAgICBbXCJkMDQwXCIsIFwiXFx1N0E3RVxcdTdBRDFcXHU3QjAwXFx1N0IwMVxcdTdDN0FcXHU3Qzc4XFx1N0M3OVxcdTdDN0ZcXHU3QzgwXFx1N0M4MVxcdTdEMDNcXHU3RDA4XFx1N0QwMVxcdTdGNThcXHU3RjkxXFx1N0Y4RFxcdTdGQkVcXHU4MDA3XFx1ODAwRVxcdTgwMEZcXHU4MDE0XFx1ODAzN1xcdTgwRDhcXHU4MEM3XFx1ODBFMFxcdTgwRDFcXHU4MEM4XFx1ODBDMlxcdTgwRDBcXHU4MEM1XFx1ODBFM1xcdTgwRDlcXHU4MERDXFx1ODBDQVxcdTgwRDVcXHU4MEM5XFx1ODBDRlxcdTgwRDdcXHU4MEU2XFx1ODBDRFxcdTgxRkZcXHU4MjIxXFx1ODI5NFxcdTgyRDlcXHU4MkZFXFx1ODJGOVxcdTgzMDdcXHU4MkU4XFx1ODMwMFxcdTgyRDVcXHU4MzNBXFx1ODJFQlxcdTgyRDZcXHU4MkY0XFx1ODJFQ1xcdTgyRTFcXHU4MkYyXFx1ODJGNVxcdTgzMENcXHU4MkZCXFx1ODJGNlxcdTgyRjBcXHU4MkVBXCJdLFxuICAgICAgW1wiZDBhMVwiLCBcIlxcdTgyRTRcXHU4MkUwXFx1ODJGQVxcdTgyRjNcXHU4MkVEXFx1ODY3N1xcdTg2NzRcXHU4NjdDXFx1ODY3M1xcdTg4NDFcXHU4ODRFXFx1ODg2N1xcdTg4NkFcXHU4ODY5XFx1ODlEM1xcdThBMDRcXHU4QTA3XFx1OEQ3MlxcdThGRTNcXHU4RkUxXFx1OEZFRVxcdThGRTBcXHU5MEYxXFx1OTBCRFxcdTkwQkZcXHU5MEQ1XFx1OTBDNVxcdTkwQkVcXHU5MEM3XFx1OTBDQlxcdTkwQzhcXHU5MUQ0XFx1OTFEM1xcdTk2NTRcXHU5NjRGXFx1OTY1MVxcdTk2NTNcXHU5NjRBXFx1OTY0RVxcdTUwMUVcXHU1MDA1XFx1NTAwN1xcdTUwMTNcXHU1MDIyXFx1NTAzMFxcdTUwMUJcXHU0RkY1XFx1NEZGNFxcdTUwMzNcXHU1MDM3XFx1NTAyQ1xcdTRGRjZcXHU0RkY3XFx1NTAxN1xcdTUwMUNcXHU1MDIwXFx1NTAyN1xcdTUwMzVcXHU1MDJGXFx1NTAzMVxcdTUwMEVcXHU1MTVBXFx1NTE5NFxcdTUxOTNcXHU1MUNBXFx1NTFDNFxcdTUxQzVcXHU1MUM4XFx1NTFDRVxcdTUyNjFcXHU1MjVBXFx1NTI1MlxcdTUyNUVcXHU1MjVGXFx1NTI1NVxcdTUyNjJcXHU1MkNEXFx1NTMwRVxcdTUzOUVcXHU1NTI2XFx1NTRFMlxcdTU1MTdcXHU1NTEyXFx1NTRFN1xcdTU0RjNcXHU1NEU0XFx1NTUxQVxcdTU0RkZcXHU1NTA0XFx1NTUwOFxcdTU0RUJcXHU1NTExXFx1NTUwNVxcdTU0RjFcIl0sXG4gICAgICBbXCJkMTQwXCIsIFwiXFx1NTUwQVxcdTU0RkJcXHU1NEY3XFx1NTRGOFxcdTU0RTBcXHU1NTBFXFx1NTUwM1xcdTU1MEJcXHU1NzAxXFx1NTcwMlxcdTU3Q0NcXHU1ODMyXFx1NTdENVxcdTU3RDJcXHU1N0JBXFx1NTdDNlxcdTU3QkRcXHU1N0JDXFx1NTdCOFxcdTU3QjZcXHU1N0JGXFx1NTdDN1xcdTU3RDBcXHU1N0I5XFx1NTdDMVxcdTU5MEVcXHU1OTRBXFx1NUExOVxcdTVBMTZcXHU1QTJEXFx1NUEyRVxcdTVBMTVcXHU1QTBGXFx1NUExN1xcdTVBMEFcXHU1QTFFXFx1NUEzM1xcdTVCNkNcXHU1QkE3XFx1NUJBRFxcdTVCQUNcXHU1QzAzXFx1NUM1NlxcdTVDNTRcXHU1Q0VDXFx1NUNGRlxcdTVDRUVcXHU1Q0YxXFx1NUNGN1xcdTVEMDBcXHU1Q0Y5XFx1NUUyOVxcdTVFMjhcXHU1RUE4XFx1NUVBRVxcdTVFQUFcXHU1RUFDXFx1NUYzM1xcdTVGMzBcXHU1RjY3XFx1NjA1RFxcdTYwNUFcXHU2MDY3XCJdLFxuICAgICAgW1wiZDFhMVwiLCBcIlxcdTYwNDFcXHU2MEEyXFx1NjA4OFxcdTYwODBcXHU2MDkyXFx1NjA4MVxcdTYwOURcXHU2MDgzXFx1NjA5NVxcdTYwOUJcXHU2MDk3XFx1NjA4N1xcdTYwOUNcXHU2MDhFXFx1NjIxOVxcdTYyNDZcXHU2MkYyXFx1NjMxMFxcdTYzNTZcXHU2MzJDXFx1NjM0NFxcdTYzNDVcXHU2MzM2XFx1NjM0M1xcdTYzRTRcXHU2MzM5XFx1NjM0QlxcdTYzNEFcXHU2MzNDXFx1NjMyOVxcdTYzNDFcXHU2MzM0XFx1NjM1OFxcdTYzNTRcXHU2MzU5XFx1NjMyRFxcdTYzNDdcXHU2MzMzXFx1NjM1QVxcdTYzNTFcXHU2MzM4XFx1NjM1N1xcdTYzNDBcXHU2MzQ4XFx1NjU0QVxcdTY1NDZcXHU2NUM2XFx1NjVDM1xcdTY1QzRcXHU2NUMyXFx1NjY0QVxcdTY2NUZcXHU2NjQ3XFx1NjY1MVxcdTY3MTJcXHU2NzEzXFx1NjgxRlxcdTY4MUFcXHU2ODQ5XFx1NjgzMlxcdTY4MzNcXHU2ODNCXFx1Njg0QlxcdTY4NEZcXHU2ODE2XFx1NjgzMVxcdTY4MUNcXHU2ODM1XFx1NjgyQlxcdTY4MkRcXHU2ODJGXFx1Njg0RVxcdTY4NDRcXHU2ODM0XFx1NjgxRFxcdTY4MTJcXHU2ODE0XFx1NjgyNlxcdTY4MjhcXHU2ODJFXFx1Njg0RFxcdTY4M0FcXHU2ODI1XFx1NjgyMFxcdTZCMkNcXHU2QjJGXFx1NkIyRFxcdTZCMzFcXHU2QjM0XFx1NkI2RFxcdTgwODJcXHU2Qjg4XFx1NkJFNlxcdTZCRTRcIl0sXG4gICAgICBbXCJkMjQwXCIsIFwiXFx1NkJFOFxcdTZCRTNcXHU2QkUyXFx1NkJFN1xcdTZDMjVcXHU2RDdBXFx1NkQ2M1xcdTZENjRcXHU2RDc2XFx1NkQwRFxcdTZENjFcXHU2RDkyXFx1NkQ1OFxcdTZENjJcXHU2RDZEXFx1NkQ2RlxcdTZEOTFcXHU2RDhEXFx1NkRFRlxcdTZEN0ZcXHU2RDg2XFx1NkQ1RVxcdTZENjdcXHU2RDYwXFx1NkQ5N1xcdTZENzBcXHU2RDdDXFx1NkQ1RlxcdTZEODJcXHU2RDk4XFx1NkQyRlxcdTZENjhcXHU2RDhCXFx1NkQ3RVxcdTZEODBcXHU2RDg0XFx1NkQxNlxcdTZEODNcXHU2RDdCXFx1NkQ3RFxcdTZENzVcXHU2RDkwXFx1NzBEQ1xcdTcwRDNcXHU3MEQxXFx1NzBERFxcdTcwQ0JcXHU3RjM5XFx1NzBFMlxcdTcwRDdcXHU3MEQyXFx1NzBERVxcdTcwRTBcXHU3MEQ0XFx1NzBDRFxcdTcwQzVcXHU3MEM2XFx1NzBDN1xcdTcwREFcXHU3MENFXFx1NzBFMVxcdTcyNDJcXHU3Mjc4XCJdLFxuICAgICAgW1wiZDJhMVwiLCBcIlxcdTcyNzdcXHU3Mjc2XFx1NzMwMFxcdTcyRkFcXHU3MkY0XFx1NzJGRVxcdTcyRjZcXHU3MkYzXFx1NzJGQlxcdTczMDFcXHU3M0QzXFx1NzNEOVxcdTczRTVcXHU3M0Q2XFx1NzNCQ1xcdTczRTdcXHU3M0UzXFx1NzNFOVxcdTczRENcXHU3M0QyXFx1NzNEQlxcdTczRDRcXHU3M0REXFx1NzNEQVxcdTczRDdcXHU3M0Q4XFx1NzNFOFxcdTc0REVcXHU3NERGXFx1NzRGNFxcdTc0RjVcXHU3NTIxXFx1NzU1QlxcdTc1NUZcXHU3NUIwXFx1NzVDMVxcdTc1QkJcXHU3NUM0XFx1NzVDMFxcdTc1QkZcXHU3NUI2XFx1NzVCQVxcdTc2OEFcXHU3NkM5XFx1NzcxRFxcdTc3MUJcXHU3NzEwXFx1NzcxM1xcdTc3MTJcXHU3NzIzXFx1NzcxMVxcdTc3MTVcXHU3NzE5XFx1NzcxQVxcdTc3MjJcXHU3NzI3XFx1NzgyM1xcdTc4MkNcXHU3ODIyXFx1NzgzNVxcdTc4MkZcXHU3ODI4XFx1NzgyRVxcdTc4MkJcXHU3ODIxXFx1NzgyOVxcdTc4MzNcXHU3ODJBXFx1NzgzMVxcdTc5NTRcXHU3OTVCXFx1Nzk0RlxcdTc5NUNcXHU3OTUzXFx1Nzk1MlxcdTc5NTFcXHU3OUVCXFx1NzlFQ1xcdTc5RTBcXHU3OUVFXFx1NzlFRFxcdTc5RUFcXHU3OURDXFx1NzlERVxcdTc5RERcXHU3QTg2XFx1N0E4OVxcdTdBODVcXHU3QThCXFx1N0E4Q1xcdTdBOEFcXHU3QTg3XFx1N0FEOFxcdTdCMTBcIl0sXG4gICAgICBbXCJkMzQwXCIsIFwiXFx1N0IwNFxcdTdCMTNcXHU3QjA1XFx1N0IwRlxcdTdCMDhcXHU3QjBBXFx1N0IwRVxcdTdCMDlcXHU3QjEyXFx1N0M4NFxcdTdDOTFcXHU3QzhBXFx1N0M4Q1xcdTdDODhcXHU3QzhEXFx1N0M4NVxcdTdEMUVcXHU3RDFEXFx1N0QxMVxcdTdEMEVcXHU3RDE4XFx1N0QxNlxcdTdEMTNcXHU3RDFGXFx1N0QxMlxcdTdEMEZcXHU3RDBDXFx1N0Y1Q1xcdTdGNjFcXHU3RjVFXFx1N0Y2MFxcdTdGNURcXHU3RjVCXFx1N0Y5NlxcdTdGOTJcXHU3RkMzXFx1N0ZDMlxcdTdGQzBcXHU4MDE2XFx1ODAzRVxcdTgwMzlcXHU4MEZBXFx1ODBGMlxcdTgwRjlcXHU4MEY1XFx1ODEwMVxcdTgwRkJcXHU4MTAwXFx1ODIwMVxcdTgyMkZcXHU4MjI1XFx1ODMzM1xcdTgzMkRcXHU4MzQ0XFx1ODMxOVxcdTgzNTFcXHU4MzI1XFx1ODM1NlxcdTgzM0ZcXHU4MzQxXFx1ODMyNlxcdTgzMUNcXHU4MzIyXCJdLFxuICAgICAgW1wiZDNhMVwiLCBcIlxcdTgzNDJcXHU4MzRFXFx1ODMxQlxcdTgzMkFcXHU4MzA4XFx1ODMzQ1xcdTgzNERcXHU4MzE2XFx1ODMyNFxcdTgzMjBcXHU4MzM3XFx1ODMyRlxcdTgzMjlcXHU4MzQ3XFx1ODM0NVxcdTgzNENcXHU4MzUzXFx1ODMxRVxcdTgzMkNcXHU4MzRCXFx1ODMyN1xcdTgzNDhcXHU4NjUzXFx1ODY1MlxcdTg2QTJcXHU4NkE4XFx1ODY5NlxcdTg2OERcXHU4NjkxXFx1ODY5RVxcdTg2ODdcXHU4Njk3XFx1ODY4NlxcdTg2OEJcXHU4NjlBXFx1ODY4NVxcdTg2QTVcXHU4Njk5XFx1ODZBMVxcdTg2QTdcXHU4Njk1XFx1ODY5OFxcdTg2OEVcXHU4NjlEXFx1ODY5MFxcdTg2OTRcXHU4ODQzXFx1ODg0NFxcdTg4NkRcXHU4ODc1XFx1ODg3NlxcdTg4NzJcXHU4ODgwXFx1ODg3MVxcdTg4N0ZcXHU4ODZGXFx1ODg4M1xcdTg4N0VcXHU4ODc0XFx1ODg3Q1xcdThBMTJcXHU4QzQ3XFx1OEM1N1xcdThDN0JcXHU4Q0E0XFx1OENBM1xcdThENzZcXHU4RDc4XFx1OERCNVxcdThEQjdcXHU4REI2XFx1OEVEMVxcdThFRDNcXHU4RkZFXFx1OEZGNVxcdTkwMDJcXHU4RkZGXFx1OEZGQlxcdTkwMDRcXHU4RkZDXFx1OEZGNlxcdTkwRDZcXHU5MEUwXFx1OTBEOVxcdTkwREFcXHU5MEUzXFx1OTBERlxcdTkwRTVcXHU5MEQ4XFx1OTBEQlxcdTkwRDdcXHU5MERDXFx1OTBFNFxcdTkxNTBcIl0sXG4gICAgICBbXCJkNDQwXCIsIFwiXFx1OTE0RVxcdTkxNEZcXHU5MUQ1XFx1OTFFMlxcdTkxREFcXHU5NjVDXFx1OTY1RlxcdTk2QkNcXHU5OEUzXFx1OUFERlxcdTlCMkZcXHU0RTdGXFx1NTA3MFxcdTUwNkFcXHU1MDYxXFx1NTA1RVxcdTUwNjBcXHU1MDUzXFx1NTA0QlxcdTUwNURcXHU1MDcyXFx1NTA0OFxcdTUwNERcXHU1MDQxXFx1NTA1QlxcdTUwNEFcXHU1MDYyXFx1NTAxNVxcdTUwNDVcXHU1MDVGXFx1NTA2OVxcdTUwNkJcXHU1MDYzXFx1NTA2NFxcdTUwNDZcXHU1MDQwXFx1NTA2RVxcdTUwNzNcXHU1MDU3XFx1NTA1MVxcdTUxRDBcXHU1MjZCXFx1NTI2RFxcdTUyNkNcXHU1MjZFXFx1NTJENlxcdTUyRDNcXHU1MzJEXFx1NTM5Q1xcdTU1NzVcXHU1NTc2XFx1NTUzQ1xcdTU1NERcXHU1NTUwXFx1NTUzNFxcdTU1MkFcXHU1NTUxXFx1NTU2MlxcdTU1MzZcXHU1NTM1XFx1NTUzMFxcdTU1NTJcXHU1NTQ1XCJdLFxuICAgICAgW1wiZDRhMVwiLCBcIlxcdTU1MENcXHU1NTMyXFx1NTU2NVxcdTU1NEVcXHU1NTM5XFx1NTU0OFxcdTU1MkRcXHU1NTNCXFx1NTU0MFxcdTU1NEJcXHU1NzBBXFx1NTcwN1xcdTU3RkJcXHU1ODE0XFx1NTdFMlxcdTU3RjZcXHU1N0RDXFx1NTdGNFxcdTU4MDBcXHU1N0VEXFx1NTdGRFxcdTU4MDhcXHU1N0Y4XFx1NTgwQlxcdTU3RjNcXHU1N0NGXFx1NTgwN1xcdTU3RUVcXHU1N0UzXFx1NTdGMlxcdTU3RTVcXHU1N0VDXFx1NTdFMVxcdTU4MEVcXHU1N0ZDXFx1NTgxMFxcdTU3RTdcXHU1ODAxXFx1NTgwQ1xcdTU3RjFcXHU1N0U5XFx1NTdGMFxcdTU4MERcXHU1ODA0XFx1NTk1Q1xcdTVBNjBcXHU1QTU4XFx1NUE1NVxcdTVBNjdcXHU1QTVFXFx1NUEzOFxcdTVBMzVcXHU1QTZEXFx1NUE1MFxcdTVBNUZcXHU1QTY1XFx1NUE2Q1xcdTVBNTNcXHU1QTY0XFx1NUE1N1xcdTVBNDNcXHU1QTVEXFx1NUE1MlxcdTVBNDRcXHU1QTVCXFx1NUE0OFxcdTVBOEVcXHU1QTNFXFx1NUE0RFxcdTVBMzlcXHU1QTRDXFx1NUE3MFxcdTVBNjlcXHU1QTQ3XFx1NUE1MVxcdTVBNTZcXHU1QTQyXFx1NUE1Q1xcdTVCNzJcXHU1QjZFXFx1NUJDMVxcdTVCQzBcXHU1QzU5XFx1NUQxRVxcdTVEMEJcXHU1RDFEXFx1NUQxQVxcdTVEMjBcXHU1RDBDXFx1NUQyOFxcdTVEMERcXHU1RDI2XFx1NUQyNVxcdTVEMEZcIl0sXG4gICAgICBbXCJkNTQwXCIsIFwiXFx1NUQzMFxcdTVEMTJcXHU1RDIzXFx1NUQxRlxcdTVEMkVcXHU1RTNFXFx1NUUzNFxcdTVFQjFcXHU1RUI0XFx1NUVCOVxcdTVFQjJcXHU1RUIzXFx1NUYzNlxcdTVGMzhcXHU1RjlCXFx1NUY5NlxcdTVGOUZcXHU2MDhBXFx1NjA5MFxcdTYwODZcXHU2MEJFXFx1NjBCMFxcdTYwQkFcXHU2MEQzXFx1NjBENFxcdTYwQ0ZcXHU2MEU0XFx1NjBEOVxcdTYwRERcXHU2MEM4XFx1NjBCMVxcdTYwREJcXHU2MEI3XFx1NjBDQVxcdTYwQkZcXHU2MEMzXFx1NjBDRFxcdTYwQzBcXHU2MzMyXFx1NjM2NVxcdTYzOEFcXHU2MzgyXFx1NjM3RFxcdTYzQkRcXHU2MzlFXFx1NjNBRFxcdTYzOURcXHU2Mzk3XFx1NjNBQlxcdTYzOEVcXHU2MzZGXFx1NjM4N1xcdTYzOTBcXHU2MzZFXFx1NjNBRlxcdTYzNzVcXHU2MzlDXFx1NjM2RFxcdTYzQUVcXHU2MzdDXFx1NjNBNFxcdTYzM0JcXHU2MzlGXCJdLFxuICAgICAgW1wiZDVhMVwiLCBcIlxcdTYzNzhcXHU2Mzg1XFx1NjM4MVxcdTYzOTFcXHU2MzhEXFx1NjM3MFxcdTY1NTNcXHU2NUNEXFx1NjY2NVxcdTY2NjFcXHU2NjVCXFx1NjY1OVxcdTY2NUNcXHU2NjYyXFx1NjcxOFxcdTY4NzlcXHU2ODg3XFx1Njg5MFxcdTY4OUNcXHU2ODZEXFx1Njg2RVxcdTY4QUVcXHU2OEFCXFx1Njk1NlxcdTY4NkZcXHU2OEEzXFx1NjhBQ1xcdTY4QTlcXHU2ODc1XFx1Njg3NFxcdTY4QjJcXHU2ODhGXFx1Njg3N1xcdTY4OTJcXHU2ODdDXFx1Njg2QlxcdTY4NzJcXHU2OEFBXFx1Njg4MFxcdTY4NzFcXHU2ODdFXFx1Njg5QlxcdTY4OTZcXHU2ODhCXFx1NjhBMFxcdTY4ODlcXHU2OEE0XFx1Njg3OFxcdTY4N0JcXHU2ODkxXFx1Njg4Q1xcdTY4OEFcXHU2ODdEXFx1NkIzNlxcdTZCMzNcXHU2QjM3XFx1NkIzOFxcdTZCOTFcXHU2QjhGXFx1NkI4RFxcdTZCOEVcXHU2QjhDXFx1NkMyQVxcdTZEQzBcXHU2REFCXFx1NkRCNFxcdTZEQjNcXHU2RTc0XFx1NkRBQ1xcdTZERTlcXHU2REUyXFx1NkRCN1xcdTZERjZcXHU2REQ0XFx1NkUwMFxcdTZEQzhcXHU2REUwXFx1NkRERlxcdTZERDZcXHU2REJFXFx1NkRFNVxcdTZERENcXHU2REREXFx1NkREQlxcdTZERjRcXHU2RENBXFx1NkRCRFxcdTZERURcXHU2REYwXFx1NkRCQVxcdTZERDVcXHU2REMyXFx1NkRDRlxcdTZEQzlcIl0sXG4gICAgICBbXCJkNjQwXCIsIFwiXFx1NkREMFxcdTZERjJcXHU2REQzXFx1NkRGRFxcdTZERDdcXHU2RENEXFx1NkRFM1xcdTZEQkJcXHU3MEZBXFx1NzEwRFxcdTcwRjdcXHU3MTE3XFx1NzBGNFxcdTcxMENcXHU3MEYwXFx1NzEwNFxcdTcwRjNcXHU3MTEwXFx1NzBGQ1xcdTcwRkZcXHU3MTA2XFx1NzExM1xcdTcxMDBcXHU3MEY4XFx1NzBGNlxcdTcxMEJcXHU3MTAyXFx1NzEwRVxcdTcyN0VcXHU3MjdCXFx1NzI3Q1xcdTcyN0ZcXHU3MzFEXFx1NzMxN1xcdTczMDdcXHU3MzExXFx1NzMxOFxcdTczMEFcXHU3MzA4XFx1NzJGRlxcdTczMEZcXHU3MzFFXFx1NzM4OFxcdTczRjZcXHU3M0Y4XFx1NzNGNVxcdTc0MDRcXHU3NDAxXFx1NzNGRFxcdTc0MDdcXHU3NDAwXFx1NzNGQVxcdTczRkNcXHU3M0ZGXFx1NzQwQ1xcdTc0MEJcXHU3M0Y0XFx1NzQwOFxcdTc1NjRcXHU3NTYzXFx1NzVDRVxcdTc1RDJcXHU3NUNGXCJdLFxuICAgICAgW1wiZDZhMVwiLCBcIlxcdTc1Q0JcXHU3NUNDXFx1NzVEMVxcdTc1RDBcXHU3NjhGXFx1NzY4OVxcdTc2RDNcXHU3NzM5XFx1NzcyRlxcdTc3MkRcXHU3NzMxXFx1NzczMlxcdTc3MzRcXHU3NzMzXFx1NzczRFxcdTc3MjVcXHU3NzNCXFx1NzczNVxcdTc4NDhcXHU3ODUyXFx1Nzg0OVxcdTc4NERcXHU3ODRBXFx1Nzg0Q1xcdTc4MjZcXHU3ODQ1XFx1Nzg1MFxcdTc5NjRcXHU3OTY3XFx1Nzk2OVxcdTc5NkFcXHU3OTYzXFx1Nzk2QlxcdTc5NjFcXHU3OUJCXFx1NzlGQVxcdTc5RjhcXHU3OUY2XFx1NzlGN1xcdTdBOEZcXHU3QTk0XFx1N0E5MFxcdTdCMzVcXHU3QjQ3XFx1N0IzNFxcdTdCMjVcXHU3QjMwXFx1N0IyMlxcdTdCMjRcXHU3QjMzXFx1N0IxOFxcdTdCMkFcXHU3QjFEXFx1N0IzMVxcdTdCMkJcXHU3QjJEXFx1N0IyRlxcdTdCMzJcXHU3QjM4XFx1N0IxQVxcdTdCMjNcXHU3Qzk0XFx1N0M5OFxcdTdDOTZcXHU3Q0EzXFx1N0QzNVxcdTdEM0RcXHU3RDM4XFx1N0QzNlxcdTdEM0FcXHU3RDQ1XFx1N0QyQ1xcdTdEMjlcXHU3RDQxXFx1N0Q0N1xcdTdEM0VcXHU3RDNGXFx1N0Q0QVxcdTdEM0JcXHU3RDI4XFx1N0Y2M1xcdTdGOTVcXHU3RjlDXFx1N0Y5RFxcdTdGOUJcXHU3RkNBXFx1N0ZDQlxcdTdGQ0RcXHU3RkQwXFx1N0ZEMVxcdTdGQzdcXHU3RkNGXFx1N0ZDOVxcdTgwMUZcIl0sXG4gICAgICBbXCJkNzQwXCIsIFwiXFx1ODAxRVxcdTgwMUJcXHU4MDQ3XFx1ODA0M1xcdTgwNDhcXHU4MTE4XFx1ODEyNVxcdTgxMTlcXHU4MTFCXFx1ODEyRFxcdTgxMUZcXHU4MTJDXFx1ODExRVxcdTgxMjFcXHU4MTE1XFx1ODEyN1xcdTgxMURcXHU4MTIyXFx1ODIxMVxcdTgyMzhcXHU4MjMzXFx1ODIzQVxcdTgyMzRcXHU4MjMyXFx1ODI3NFxcdTgzOTBcXHU4M0EzXFx1ODNBOFxcdTgzOERcXHU4MzdBXFx1ODM3M1xcdTgzQTRcXHU4Mzc0XFx1ODM4RlxcdTgzODFcXHU4Mzk1XFx1ODM5OVxcdTgzNzVcXHU4Mzk0XFx1ODNBOVxcdTgzN0RcXHU4MzgzXFx1ODM4Q1xcdTgzOURcXHU4MzlCXFx1ODNBQVxcdTgzOEJcXHU4MzdFXFx1ODNBNVxcdTgzQUZcXHU4Mzg4XFx1ODM5N1xcdTgzQjBcXHU4MzdGXFx1ODNBNlxcdTgzODdcXHU4M0FFXFx1ODM3NlxcdTgzOUFcXHU4NjU5XFx1ODY1NlxcdTg2QkZcXHU4NkI3XCJdLFxuICAgICAgW1wiZDdhMVwiLCBcIlxcdTg2QzJcXHU4NkMxXFx1ODZDNVxcdTg2QkFcXHU4NkIwXFx1ODZDOFxcdTg2QjlcXHU4NkIzXFx1ODZCOFxcdTg2Q0NcXHU4NkI0XFx1ODZCQlxcdTg2QkNcXHU4NkMzXFx1ODZCRFxcdTg2QkVcXHU4ODUyXFx1ODg4OVxcdTg4OTVcXHU4OEE4XFx1ODhBMlxcdTg4QUFcXHU4ODlBXFx1ODg5MVxcdTg4QTFcXHU4ODlGXFx1ODg5OFxcdTg4QTdcXHU4ODk5XFx1ODg5QlxcdTg4OTdcXHU4OEE0XFx1ODhBQ1xcdTg4OENcXHU4ODkzXFx1ODg4RVxcdTg5ODJcXHU4OUQ2XFx1ODlEOVxcdTg5RDVcXHU4QTMwXFx1OEEyN1xcdThBMkNcXHU4QTFFXFx1OEMzOVxcdThDM0JcXHU4QzVDXFx1OEM1RFxcdThDN0RcXHU4Q0E1XFx1OEQ3RFxcdThEN0JcXHU4RDc5XFx1OERCQ1xcdThEQzJcXHU4REI5XFx1OERCRlxcdThEQzFcXHU4RUQ4XFx1OEVERVxcdThFRERcXHU4RURDXFx1OEVEN1xcdThFRTBcXHU4RUUxXFx1OTAyNFxcdTkwMEJcXHU5MDExXFx1OTAxQ1xcdTkwMENcXHU5MDIxXFx1OTBFRlxcdTkwRUFcXHU5MEYwXFx1OTBGNFxcdTkwRjJcXHU5MEYzXFx1OTBENFxcdTkwRUJcXHU5MEVDXFx1OTBFOVxcdTkxNTZcXHU5MTU4XFx1OTE1QVxcdTkxNTNcXHU5MTU1XFx1OTFFQ1xcdTkxRjRcXHU5MUYxXFx1OTFGM1xcdTkxRjhcXHU5MUU0XFx1OTFGOVxcdTkxRUFcIl0sXG4gICAgICBbXCJkODQwXCIsIFwiXFx1OTFFQlxcdTkxRjdcXHU5MUU4XFx1OTFFRVxcdTk1N0FcXHU5NTg2XFx1OTU4OFxcdTk2N0NcXHU5NjZEXFx1OTY2QlxcdTk2NzFcXHU5NjZGXFx1OTZCRlxcdTk3NkFcXHU5ODA0XFx1OThFNVxcdTk5OTdcXHU1MDlCXFx1NTA5NVxcdTUwOTRcXHU1MDlFXFx1NTA4QlxcdTUwQTNcXHU1MDgzXFx1NTA4Q1xcdTUwOEVcXHU1MDlEXFx1NTA2OFxcdTUwOUNcXHU1MDkyXFx1NTA4MlxcdTUwODdcXHU1MTVGXFx1NTFENFxcdTUzMTJcXHU1MzExXFx1NTNBNFxcdTUzQTdcXHU1NTkxXFx1NTVBOFxcdTU1QTVcXHU1NUFEXFx1NTU3N1xcdTU2NDVcXHU1NUEyXFx1NTU5M1xcdTU1ODhcXHU1NThGXFx1NTVCNVxcdTU1ODFcXHU1NUEzXFx1NTU5MlxcdTU1QTRcXHU1NTdEXFx1NTU4Q1xcdTU1QTZcXHU1NTdGXFx1NTU5NVxcdTU1QTFcXHU1NThFXFx1NTcwQ1xcdTU4MjlcXHU1ODM3XCJdLFxuICAgICAgW1wiZDhhMVwiLCBcIlxcdTU4MTlcXHU1ODFFXFx1NTgyN1xcdTU4MjNcXHU1ODI4XFx1NTdGNVxcdTU4NDhcXHU1ODI1XFx1NTgxQ1xcdTU4MUJcXHU1ODMzXFx1NTgzRlxcdTU4MzZcXHU1ODJFXFx1NTgzOVxcdTU4MzhcXHU1ODJEXFx1NTgyQ1xcdTU4M0JcXHU1OTYxXFx1NUFBRlxcdTVBOTRcXHU1QTlGXFx1NUE3QVxcdTVBQTJcXHU1QTlFXFx1NUE3OFxcdTVBQTZcXHU1QTdDXFx1NUFBNVxcdTVBQUNcXHU1QTk1XFx1NUFBRVxcdTVBMzdcXHU1QTg0XFx1NUE4QVxcdTVBOTdcXHU1QTgzXFx1NUE4QlxcdTVBQTlcXHU1QTdCXFx1NUE3RFxcdTVBOENcXHU1QTlDXFx1NUE4RlxcdTVBOTNcXHU1QTlEXFx1NUJFQVxcdTVCQ0RcXHU1QkNCXFx1NUJENFxcdTVCRDFcXHU1QkNBXFx1NUJDRVxcdTVDMENcXHU1QzMwXFx1NUQzN1xcdTVENDNcXHU1RDZCXFx1NUQ0MVxcdTVENEJcXHU1RDNGXFx1NUQzNVxcdTVENTFcXHU1RDRFXFx1NUQ1NVxcdTVEMzNcXHU1RDNBXFx1NUQ1MlxcdTVEM0RcXHU1RDMxXFx1NUQ1OVxcdTVENDJcXHU1RDM5XFx1NUQ0OVxcdTVEMzhcXHU1RDNDXFx1NUQzMlxcdTVEMzZcXHU1RDQwXFx1NUQ0NVxcdTVFNDRcXHU1RTQxXFx1NUY1OFxcdTVGQTZcXHU1RkE1XFx1NUZBQlxcdTYwQzlcXHU2MEI5XFx1NjBDQ1xcdTYwRTJcXHU2MENFXFx1NjBDNFxcdTYxMTRcIl0sXG4gICAgICBbXCJkOTQwXCIsIFwiXFx1NjBGMlxcdTYxMEFcXHU2MTE2XFx1NjEwNVxcdTYwRjVcXHU2MTEzXFx1NjBGOFxcdTYwRkNcXHU2MEZFXFx1NjBDMVxcdTYxMDNcXHU2MTE4XFx1NjExRFxcdTYxMTBcXHU2MEZGXFx1NjEwNFxcdTYxMEJcXHU2MjRBXFx1NjM5NFxcdTYzQjFcXHU2M0IwXFx1NjNDRVxcdTYzRTVcXHU2M0U4XFx1NjNFRlxcdTYzQzNcXHU2NDlEXFx1NjNGM1xcdTYzQ0FcXHU2M0UwXFx1NjNGNlxcdTYzRDVcXHU2M0YyXFx1NjNGNVxcdTY0NjFcXHU2M0RGXFx1NjNCRVxcdTYzRERcXHU2M0RDXFx1NjNDNFxcdTYzRDhcXHU2M0QzXFx1NjNDMlxcdTYzQzdcXHU2M0NDXFx1NjNDQlxcdTYzQzhcXHU2M0YwXFx1NjNEN1xcdTYzRDlcXHU2NTMyXFx1NjU2N1xcdTY1NkFcXHU2NTY0XFx1NjU1Q1xcdTY1NjhcXHU2NTY1XFx1NjU4Q1xcdTY1OURcXHU2NTlFXFx1NjVBRVxcdTY1RDBcXHU2NUQyXCJdLFxuICAgICAgW1wiZDlhMVwiLCBcIlxcdTY2N0NcXHU2NjZDXFx1NjY3QlxcdTY2ODBcXHU2NjcxXFx1NjY3OVxcdTY2NkFcXHU2NjcyXFx1NjcwMVxcdTY5MENcXHU2OEQzXFx1NjkwNFxcdTY4RENcXHU2OTJBXFx1NjhFQ1xcdTY4RUFcXHU2OEYxXFx1NjkwRlxcdTY4RDZcXHU2OEY3XFx1NjhFQlxcdTY4RTRcXHU2OEY2XFx1NjkxM1xcdTY5MTBcXHU2OEYzXFx1NjhFMVxcdTY5MDdcXHU2OENDXFx1NjkwOFxcdTY5NzBcXHU2OEI0XFx1NjkxMVxcdTY4RUZcXHU2OEM2XFx1NjkxNFxcdTY4RjhcXHU2OEQwXFx1NjhGRFxcdTY4RkNcXHU2OEU4XFx1NjkwQlxcdTY5MEFcXHU2OTE3XFx1NjhDRVxcdTY4QzhcXHU2OEREXFx1NjhERVxcdTY4RTZcXHU2OEY0XFx1NjhEMVxcdTY5MDZcXHU2OEQ0XFx1NjhFOVxcdTY5MTVcXHU2OTI1XFx1NjhDN1xcdTZCMzlcXHU2QjNCXFx1NkIzRlxcdTZCM0NcXHU2Qjk0XFx1NkI5N1xcdTZCOTlcXHU2Qjk1XFx1NkJCRFxcdTZCRjBcXHU2QkYyXFx1NkJGM1xcdTZDMzBcXHU2REZDXFx1NkU0NlxcdTZFNDdcXHU2RTFGXFx1NkU0OVxcdTZFODhcXHU2RTNDXFx1NkUzRFxcdTZFNDVcXHU2RTYyXFx1NkUyQlxcdTZFM0ZcXHU2RTQxXFx1NkU1RFxcdTZFNzNcXHU2RTFDXFx1NkUzM1xcdTZFNEJcXHU2RTQwXFx1NkU1MVxcdTZFM0JcXHU2RTAzXFx1NkUyRVxcdTZFNUVcIl0sXG4gICAgICBbXCJkYTQwXCIsIFwiXFx1NkU2OFxcdTZFNUNcXHU2RTYxXFx1NkUzMVxcdTZFMjhcXHU2RTYwXFx1NkU3MVxcdTZFNkJcXHU2RTM5XFx1NkUyMlxcdTZFMzBcXHU2RTUzXFx1NkU2NVxcdTZFMjdcXHU2RTc4XFx1NkU2NFxcdTZFNzdcXHU2RTU1XFx1NkU3OVxcdTZFNTJcXHU2RTY2XFx1NkUzNVxcdTZFMzZcXHU2RTVBXFx1NzEyMFxcdTcxMUVcXHU3MTJGXFx1NzBGQlxcdTcxMkVcXHU3MTMxXFx1NzEyM1xcdTcxMjVcXHU3MTIyXFx1NzEzMlxcdTcxMUZcXHU3MTI4XFx1NzEzQVxcdTcxMUJcXHU3MjRCXFx1NzI1QVxcdTcyODhcXHU3Mjg5XFx1NzI4NlxcdTcyODVcXHU3MjhCXFx1NzMxMlxcdTczMEJcXHU3MzMwXFx1NzMyMlxcdTczMzFcXHU3MzMzXFx1NzMyN1xcdTczMzJcXHU3MzJEXFx1NzMyNlxcdTczMjNcXHU3MzM1XFx1NzMwQ1xcdTc0MkVcXHU3NDJDXFx1NzQzMFxcdTc0MkJcXHU3NDE2XCJdLFxuICAgICAgW1wiZGFhMVwiLCBcIlxcdTc0MUFcXHU3NDIxXFx1NzQyRFxcdTc0MzFcXHU3NDI0XFx1NzQyM1xcdTc0MURcXHU3NDI5XFx1NzQyMFxcdTc0MzJcXHU3NEZCXFx1NzUyRlxcdTc1NkZcXHU3NTZDXFx1NzVFN1xcdTc1REFcXHU3NUUxXFx1NzVFNlxcdTc1RERcXHU3NURGXFx1NzVFNFxcdTc1RDdcXHU3Njk1XFx1NzY5MlxcdTc2REFcXHU3NzQ2XFx1Nzc0N1xcdTc3NDRcXHU3NzREXFx1Nzc0NVxcdTc3NEFcXHU3NzRFXFx1Nzc0QlxcdTc3NENcXHU3N0RFXFx1NzdFQ1xcdTc4NjBcXHU3ODY0XFx1Nzg2NVxcdTc4NUNcXHU3ODZEXFx1Nzg3MVxcdTc4NkFcXHU3ODZFXFx1Nzg3MFxcdTc4NjlcXHU3ODY4XFx1Nzg1RVxcdTc4NjJcXHU3OTc0XFx1Nzk3M1xcdTc5NzJcXHU3OTcwXFx1N0EwMlxcdTdBMEFcXHU3QTAzXFx1N0EwQ1xcdTdBMDRcXHU3QTk5XFx1N0FFNlxcdTdBRTRcXHU3QjRBXFx1N0IzQlxcdTdCNDRcXHU3QjQ4XFx1N0I0Q1xcdTdCNEVcXHU3QjQwXFx1N0I1OFxcdTdCNDVcXHU3Q0EyXFx1N0M5RVxcdTdDQThcXHU3Q0ExXFx1N0Q1OFxcdTdENkZcXHU3RDYzXFx1N0Q1M1xcdTdENTZcXHU3RDY3XFx1N0Q2QVxcdTdENEZcXHU3RDZEXFx1N0Q1Q1xcdTdENkJcXHU3RDUyXFx1N0Q1NFxcdTdENjlcXHU3RDUxXFx1N0Q1RlxcdTdENEVcXHU3RjNFXFx1N0YzRlxcdTdGNjVcIl0sXG4gICAgICBbXCJkYjQwXCIsIFwiXFx1N0Y2NlxcdTdGQTJcXHU3RkEwXFx1N0ZBMVxcdTdGRDdcXHU4MDUxXFx1ODA0RlxcdTgwNTBcXHU4MEZFXFx1ODBENFxcdTgxNDNcXHU4MTRBXFx1ODE1MlxcdTgxNEZcXHU4MTQ3XFx1ODEzRFxcdTgxNERcXHU4MTNBXFx1ODFFNlxcdTgxRUVcXHU4MUY3XFx1ODFGOFxcdTgxRjlcXHU4MjA0XFx1ODIzQ1xcdTgyM0RcXHU4MjNGXFx1ODI3NVxcdTgzM0JcXHU4M0NGXFx1ODNGOVxcdTg0MjNcXHU4M0MwXFx1ODNFOFxcdTg0MTJcXHU4M0U3XFx1ODNFNFxcdTgzRkNcXHU4M0Y2XFx1ODQxMFxcdTgzQzZcXHU4M0M4XFx1ODNFQlxcdTgzRTNcXHU4M0JGXFx1ODQwMVxcdTgzRERcXHU4M0U1XFx1ODNEOFxcdTgzRkZcXHU4M0UxXFx1ODNDQlxcdTgzQ0VcXHU4M0Q2XFx1ODNGNVxcdTgzQzlcXHU4NDA5XFx1ODQwRlxcdTgzREVcXHU4NDExXFx1ODQwNlxcdTgzQzJcXHU4M0YzXCJdLFxuICAgICAgW1wiZGJhMVwiLCBcIlxcdTgzRDVcXHU4M0ZBXFx1ODNDN1xcdTgzRDFcXHU4M0VBXFx1ODQxM1xcdTgzQzNcXHU4M0VDXFx1ODNFRVxcdTgzQzRcXHU4M0ZCXFx1ODNEN1xcdTgzRTJcXHU4NDFCXFx1ODNEQlxcdTgzRkVcXHU4NkQ4XFx1ODZFMlxcdTg2RTZcXHU4NkQzXFx1ODZFM1xcdTg2REFcXHU4NkVBXFx1ODZERFxcdTg2RUJcXHU4NkRDXFx1ODZFQ1xcdTg2RTlcXHU4NkQ3XFx1ODZFOFxcdTg2RDFcXHU4ODQ4XFx1ODg1NlxcdTg4NTVcXHU4OEJBXFx1ODhEN1xcdTg4QjlcXHU4OEI4XFx1ODhDMFxcdTg4QkVcXHU4OEI2XFx1ODhCQ1xcdTg4QjdcXHU4OEJEXFx1ODhCMlxcdTg5MDFcXHU4OEM5XFx1ODk5NVxcdTg5OThcXHU4OTk3XFx1ODlERFxcdTg5REFcXHU4OURCXFx1OEE0RVxcdThBNERcXHU4QTM5XFx1OEE1OVxcdThBNDBcXHU4QTU3XFx1OEE1OFxcdThBNDRcXHU4QTQ1XFx1OEE1MlxcdThBNDhcXHU4QTUxXFx1OEE0QVxcdThBNENcXHU4QTRGXFx1OEM1RlxcdThDODFcXHU4QzgwXFx1OENCQVxcdThDQkVcXHU4Q0IwXFx1OENCOVxcdThDQjVcXHU4RDg0XFx1OEQ4MFxcdThEODlcXHU4REQ4XFx1OEREM1xcdThEQ0RcXHU4REM3XFx1OERENlxcdThERENcXHU4RENGXFx1OERENVxcdThERDlcXHU4REM4XFx1OEREN1xcdThEQzVcXHU4RUVGXFx1OEVGN1xcdThFRkFcIl0sXG4gICAgICBbXCJkYzQwXCIsIFwiXFx1OEVGOVxcdThFRTZcXHU4RUVFXFx1OEVFNVxcdThFRjVcXHU4RUU3XFx1OEVFOFxcdThFRjZcXHU4RUVCXFx1OEVGMVxcdThFRUNcXHU4RUY0XFx1OEVFOVxcdTkwMkRcXHU5MDM0XFx1OTAyRlxcdTkxMDZcXHU5MTJDXFx1OTEwNFxcdTkwRkZcXHU5MEZDXFx1OTEwOFxcdTkwRjlcXHU5MEZCXFx1OTEwMVxcdTkxMDBcXHU5MTA3XFx1OTEwNVxcdTkxMDNcXHU5MTYxXFx1OTE2NFxcdTkxNUZcXHU5MTYyXFx1OTE2MFxcdTkyMDFcXHU5MjBBXFx1OTIyNVxcdTkyMDNcXHU5MjFBXFx1OTIyNlxcdTkyMEZcXHU5MjBDXFx1OTIwMFxcdTkyMTJcXHU5MUZGXFx1OTFGRFxcdTkyMDZcXHU5MjA0XFx1OTIyN1xcdTkyMDJcXHU5MjFDXFx1OTIyNFxcdTkyMTlcXHU5MjE3XFx1OTIwNVxcdTkyMTZcXHU5NTdCXFx1OTU4RFxcdTk1OENcXHU5NTkwXFx1OTY4N1xcdTk2N0VcXHU5Njg4XCJdLFxuICAgICAgW1wiZGNhMVwiLCBcIlxcdTk2ODlcXHU5NjgzXFx1OTY4MFxcdTk2QzJcXHU5NkM4XFx1OTZDM1xcdTk2RjFcXHU5NkYwXFx1OTc2Q1xcdTk3NzBcXHU5NzZFXFx1OTgwN1xcdTk4QTlcXHU5OEVCXFx1OUNFNlxcdTlFRjlcXHU0RTgzXFx1NEU4NFxcdTRFQjZcXHU1MEJEXFx1NTBCRlxcdTUwQzZcXHU1MEFFXFx1NTBDNFxcdTUwQ0FcXHU1MEI0XFx1NTBDOFxcdTUwQzJcXHU1MEIwXFx1NTBDMVxcdTUwQkFcXHU1MEIxXFx1NTBDQlxcdTUwQzlcXHU1MEI2XFx1NTBCOFxcdTUxRDdcXHU1MjdBXFx1NTI3OFxcdTUyN0JcXHU1MjdDXFx1NTVDM1xcdTU1REJcXHU1NUNDXFx1NTVEMFxcdTU1Q0JcXHU1NUNBXFx1NTVERFxcdTU1QzBcXHU1NUQ0XFx1NTVDNFxcdTU1RTlcXHU1NUJGXFx1NTVEMlxcdTU1OERcXHU1NUNGXFx1NTVENVxcdTU1RTJcXHU1NUQ2XFx1NTVDOFxcdTU1RjJcXHU1NUNEXFx1NTVEOVxcdTU1QzJcXHU1NzE0XFx1NTg1M1xcdTU4NjhcXHU1ODY0XFx1NTg0RlxcdTU4NERcXHU1ODQ5XFx1NTg2RlxcdTU4NTVcXHU1ODRFXFx1NTg1RFxcdTU4NTlcXHU1ODY1XFx1NTg1QlxcdTU4M0RcXHU1ODYzXFx1NTg3MVxcdTU4RkNcXHU1QUM3XFx1NUFDNFxcdTVBQ0JcXHU1QUJBXFx1NUFCOFxcdTVBQjFcXHU1QUI1XFx1NUFCMFxcdTVBQkZcXHU1QUM4XFx1NUFCQlxcdTVBQzZcIl0sXG4gICAgICBbXCJkZDQwXCIsIFwiXFx1NUFCN1xcdTVBQzBcXHU1QUNBXFx1NUFCNFxcdTVBQjZcXHU1QUNEXFx1NUFCOVxcdTVBOTBcXHU1QkQ2XFx1NUJEOFxcdTVCRDlcXHU1QzFGXFx1NUMzM1xcdTVENzFcXHU1RDYzXFx1NUQ0QVxcdTVENjVcXHU1RDcyXFx1NUQ2Q1xcdTVENUVcXHU1RDY4XFx1NUQ2N1xcdTVENjJcXHU1REYwXFx1NUU0RlxcdTVFNEVcXHU1RTRBXFx1NUU0RFxcdTVFNEJcXHU1RUM1XFx1NUVDQ1xcdTVFQzZcXHU1RUNCXFx1NUVDN1xcdTVGNDBcXHU1RkFGXFx1NUZBRFxcdTYwRjdcXHU2MTQ5XFx1NjE0QVxcdTYxMkJcXHU2MTQ1XFx1NjEzNlxcdTYxMzJcXHU2MTJFXFx1NjE0NlxcdTYxMkZcXHU2MTRGXFx1NjEyOVxcdTYxNDBcXHU2MjIwXFx1OTE2OFxcdTYyMjNcXHU2MjI1XFx1NjIyNFxcdTYzQzVcXHU2M0YxXFx1NjNFQlxcdTY0MTBcXHU2NDEyXFx1NjQwOVxcdTY0MjBcXHU2NDI0XCJdLFxuICAgICAgW1wiZGRhMVwiLCBcIlxcdTY0MzNcXHU2NDQzXFx1NjQxRlxcdTY0MTVcXHU2NDE4XFx1NjQzOVxcdTY0MzdcXHU2NDIyXFx1NjQyM1xcdTY0MENcXHU2NDI2XFx1NjQzMFxcdTY0MjhcXHU2NDQxXFx1NjQzNVxcdTY0MkZcXHU2NDBBXFx1NjQxQVxcdTY0NDBcXHU2NDI1XFx1NjQyN1xcdTY0MEJcXHU2M0U3XFx1NjQxQlxcdTY0MkVcXHU2NDIxXFx1NjQwRVxcdTY1NkZcXHU2NTkyXFx1NjVEM1xcdTY2ODZcXHU2NjhDXFx1NjY5NVxcdTY2OTBcXHU2NjhCXFx1NjY4QVxcdTY2OTlcXHU2Njk0XFx1NjY3OFxcdTY3MjBcXHU2OTY2XFx1Njk1RlxcdTY5MzhcXHU2OTRFXFx1Njk2MlxcdTY5NzFcXHU2OTNGXFx1Njk0NVxcdTY5NkFcXHU2OTM5XFx1Njk0MlxcdTY5NTdcXHU2OTU5XFx1Njk3QVxcdTY5NDhcXHU2OTQ5XFx1NjkzNVxcdTY5NkNcXHU2OTMzXFx1NjkzRFxcdTY5NjVcXHU2OEYwXFx1Njk3OFxcdTY5MzRcXHU2OTY5XFx1Njk0MFxcdTY5NkZcXHU2OTQ0XFx1Njk3NlxcdTY5NThcXHU2OTQxXFx1Njk3NFxcdTY5NENcXHU2OTNCXFx1Njk0QlxcdTY5MzdcXHU2OTVDXFx1Njk0RlxcdTY5NTFcXHU2OTMyXFx1Njk1MlxcdTY5MkZcXHU2OTdCXFx1NjkzQ1xcdTZCNDZcXHU2QjQ1XFx1NkI0M1xcdTZCNDJcXHU2QjQ4XFx1NkI0MVxcdTZCOUJcXHVGQTBEXFx1NkJGQlxcdTZCRkNcIl0sXG4gICAgICBbXCJkZTQwXCIsIFwiXFx1NkJGOVxcdTZCRjdcXHU2QkY4XFx1NkU5QlxcdTZFRDZcXHU2RUM4XFx1NkU4RlxcdTZFQzBcXHU2RTlGXFx1NkU5M1xcdTZFOTRcXHU2RUEwXFx1NkVCMVxcdTZFQjlcXHU2RUM2XFx1NkVEMlxcdTZFQkRcXHU2RUMxXFx1NkU5RVxcdTZFQzlcXHU2RUI3XFx1NkVCMFxcdTZFQ0RcXHU2RUE2XFx1NkVDRlxcdTZFQjJcXHU2RUJFXFx1NkVDM1xcdTZFRENcXHU2RUQ4XFx1NkU5OVxcdTZFOTJcXHU2RThFXFx1NkU4RFxcdTZFQTRcXHU2RUExXFx1NkVCRlxcdTZFQjNcXHU2RUQwXFx1NkVDQVxcdTZFOTdcXHU2RUFFXFx1NkVBM1xcdTcxNDdcXHU3MTU0XFx1NzE1MlxcdTcxNjNcXHU3MTYwXFx1NzE0MVxcdTcxNURcXHU3MTYyXFx1NzE3MlxcdTcxNzhcXHU3MTZBXFx1NzE2MVxcdTcxNDJcXHU3MTU4XFx1NzE0M1xcdTcxNEJcXHU3MTcwXFx1NzE1RlxcdTcxNTBcXHU3MTUzXCJdLFxuICAgICAgW1wiZGVhMVwiLCBcIlxcdTcxNDRcXHU3MTREXFx1NzE1QVxcdTcyNEZcXHU3MjhEXFx1NzI4Q1xcdTcyOTFcXHU3MjkwXFx1NzI4RVxcdTczM0NcXHU3MzQyXFx1NzMzQlxcdTczM0FcXHU3MzQwXFx1NzM0QVxcdTczNDlcXHU3NDQ0XFx1NzQ0QVxcdTc0NEJcXHU3NDUyXFx1NzQ1MVxcdTc0NTdcXHU3NDQwXFx1NzQ0RlxcdTc0NTBcXHU3NDRFXFx1NzQ0MlxcdTc0NDZcXHU3NDREXFx1NzQ1NFxcdTc0RTFcXHU3NEZGXFx1NzRGRVxcdTc0RkRcXHU3NTFEXFx1NzU3OVxcdTc1NzdcXHU2OTgzXFx1NzVFRlxcdTc2MEZcXHU3NjAzXFx1NzVGN1xcdTc1RkVcXHU3NUZDXFx1NzVGOVxcdTc1RjhcXHU3NjEwXFx1NzVGQlxcdTc1RjZcXHU3NUVEXFx1NzVGNVxcdTc1RkRcXHU3Njk5XFx1NzZCNVxcdTc2RERcXHU3NzU1XFx1Nzc1RlxcdTc3NjBcXHU3NzUyXFx1Nzc1NlxcdTc3NUFcXHU3NzY5XFx1Nzc2N1xcdTc3NTRcXHU3NzU5XFx1Nzc2RFxcdTc3RTBcXHU3ODg3XFx1Nzg5QVxcdTc4OTRcXHU3ODhGXFx1Nzg4NFxcdTc4OTVcXHU3ODg1XFx1Nzg4NlxcdTc4QTFcXHU3ODgzXFx1Nzg3OVxcdTc4OTlcXHU3ODgwXFx1Nzg5NlxcdTc4N0JcXHU3OTdDXFx1Nzk4MlxcdTc5N0RcXHU3OTc5XFx1N0ExMVxcdTdBMThcXHU3QTE5XFx1N0ExMlxcdTdBMTdcXHU3QTE1XFx1N0EyMlxcdTdBMTNcIl0sXG4gICAgICBbXCJkZjQwXCIsIFwiXFx1N0ExQlxcdTdBMTBcXHU3QUEzXFx1N0FBMlxcdTdBOUVcXHU3QUVCXFx1N0I2NlxcdTdCNjRcXHU3QjZEXFx1N0I3NFxcdTdCNjlcXHU3QjcyXFx1N0I2NVxcdTdCNzNcXHU3QjcxXFx1N0I3MFxcdTdCNjFcXHU3Qjc4XFx1N0I3NlxcdTdCNjNcXHU3Q0IyXFx1N0NCNFxcdTdDQUZcXHU3RDg4XFx1N0Q4NlxcdTdEODBcXHU3RDhEXFx1N0Q3RlxcdTdEODVcXHU3RDdBXFx1N0Q4RVxcdTdEN0JcXHU3RDgzXFx1N0Q3Q1xcdTdEOENcXHU3RDk0XFx1N0Q4NFxcdTdEN0RcXHU3RDkyXFx1N0Y2RFxcdTdGNkJcXHU3RjY3XFx1N0Y2OFxcdTdGNkNcXHU3RkE2XFx1N0ZBNVxcdTdGQTdcXHU3RkRCXFx1N0ZEQ1xcdTgwMjFcXHU4MTY0XFx1ODE2MFxcdTgxNzdcXHU4MTVDXFx1ODE2OVxcdTgxNUJcXHU4MTYyXFx1ODE3MlxcdTY3MjFcXHU4MTVFXFx1ODE3NlxcdTgxNjdcXHU4MTZGXCJdLFxuICAgICAgW1wiZGZhMVwiLCBcIlxcdTgxNDRcXHU4MTYxXFx1ODIxRFxcdTgyNDlcXHU4MjQ0XFx1ODI0MFxcdTgyNDJcXHU4MjQ1XFx1ODRGMVxcdTg0M0ZcXHU4NDU2XFx1ODQ3NlxcdTg0NzlcXHU4NDhGXFx1ODQ4RFxcdTg0NjVcXHU4NDUxXFx1ODQ0MFxcdTg0ODZcXHU4NDY3XFx1ODQzMFxcdTg0NERcXHU4NDdEXFx1ODQ1QVxcdTg0NTlcXHU4NDc0XFx1ODQ3M1xcdTg0NURcXHU4NTA3XFx1ODQ1RVxcdTg0MzdcXHU4NDNBXFx1ODQzNFxcdTg0N0FcXHU4NDQzXFx1ODQ3OFxcdTg0MzJcXHU4NDQ1XFx1ODQyOVxcdTgzRDlcXHU4NDRCXFx1ODQyRlxcdTg0NDJcXHU4NDJEXFx1ODQ1RlxcdTg0NzBcXHU4NDM5XFx1ODQ0RVxcdTg0NENcXHU4NDUyXFx1ODQ2RlxcdTg0QzVcXHU4NDhFXFx1ODQzQlxcdTg0NDdcXHU4NDM2XFx1ODQzM1xcdTg0NjhcXHU4NDdFXFx1ODQ0NFxcdTg0MkJcXHU4NDYwXFx1ODQ1NFxcdTg0NkVcXHU4NDUwXFx1ODcwQlxcdTg3MDRcXHU4NkY3XFx1ODcwQ1xcdTg2RkFcXHU4NkQ2XFx1ODZGNVxcdTg3NERcXHU4NkY4XFx1ODcwRVxcdTg3MDlcXHU4NzAxXFx1ODZGNlxcdTg3MERcXHU4NzA1XFx1ODhENlxcdTg4Q0JcXHU4OENEXFx1ODhDRVxcdTg4REVcXHU4OERCXFx1ODhEQVxcdTg4Q0NcXHU4OEQwXFx1ODk4NVxcdTg5OUJcXHU4OURGXFx1ODlFNVxcdTg5RTRcIl0sXG4gICAgICBbXCJlMDQwXCIsIFwiXFx1ODlFMVxcdTg5RTBcXHU4OUUyXFx1ODlEQ1xcdTg5RTZcXHU4QTc2XFx1OEE4NlxcdThBN0ZcXHU4QTYxXFx1OEEzRlxcdThBNzdcXHU4QTgyXFx1OEE4NFxcdThBNzVcXHU4QTgzXFx1OEE4MVxcdThBNzRcXHU4QTdBXFx1OEMzQ1xcdThDNEJcXHU4QzRBXFx1OEM2NVxcdThDNjRcXHU4QzY2XFx1OEM4NlxcdThDODRcXHU4Qzg1XFx1OENDQ1xcdThENjhcXHU4RDY5XFx1OEQ5MVxcdThEOENcXHU4RDhFXFx1OEQ4RlxcdThEOERcXHU4RDkzXFx1OEQ5NFxcdThEOTBcXHU4RDkyXFx1OERGMFxcdThERTBcXHU4REVDXFx1OERGMVxcdThERUVcXHU4REQwXFx1OERFOVxcdThERTNcXHU4REUyXFx1OERFN1xcdThERjJcXHU4REVCXFx1OERGNFxcdThGMDZcXHU4RUZGXFx1OEYwMVxcdThGMDBcXHU4RjA1XFx1OEYwN1xcdThGMDhcXHU4RjAyXFx1OEYwQlxcdTkwNTJcXHU5MDNGXCJdLFxuICAgICAgW1wiZTBhMVwiLCBcIlxcdTkwNDRcXHU5MDQ5XFx1OTAzRFxcdTkxMTBcXHU5MTBEXFx1OTEwRlxcdTkxMTFcXHU5MTE2XFx1OTExNFxcdTkxMEJcXHU5MTBFXFx1OTE2RVxcdTkxNkZcXHU5MjQ4XFx1OTI1MlxcdTkyMzBcXHU5MjNBXFx1OTI2NlxcdTkyMzNcXHU5MjY1XFx1OTI1RVxcdTkyODNcXHU5MjJFXFx1OTI0QVxcdTkyNDZcXHU5MjZEXFx1OTI2Q1xcdTkyNEZcXHU5MjYwXFx1OTI2N1xcdTkyNkZcXHU5MjM2XFx1OTI2MVxcdTkyNzBcXHU5MjMxXFx1OTI1NFxcdTkyNjNcXHU5MjUwXFx1OTI3MlxcdTkyNEVcXHU5MjUzXFx1OTI0Q1xcdTkyNTZcXHU5MjMyXFx1OTU5RlxcdTk1OUNcXHU5NTlFXFx1OTU5QlxcdTk2OTJcXHU5NjkzXFx1OTY5MVxcdTk2OTdcXHU5NkNFXFx1OTZGQVxcdTk2RkRcXHU5NkY4XFx1OTZGNVxcdTk3NzNcXHU5Nzc3XFx1OTc3OFxcdTk3NzJcXHU5ODBGXFx1OTgwRFxcdTk4MEVcXHU5OEFDXFx1OThGNlxcdTk4RjlcXHU5OUFGXFx1OTlCMlxcdTk5QjBcXHU5OUI1XFx1OUFBRFxcdTlBQUJcXHU5QjVCXFx1OUNFQVxcdTlDRURcXHU5Q0U3XFx1OUU4MFxcdTlFRkRcXHU1MEU2XFx1NTBENFxcdTUwRDdcXHU1MEU4XFx1NTBGM1xcdTUwREJcXHU1MEVBXFx1NTBERFxcdTUwRTRcXHU1MEQzXFx1NTBFQ1xcdTUwRjBcXHU1MEVGXFx1NTBFM1xcdTUwRTBcIl0sXG4gICAgICBbXCJlMTQwXCIsIFwiXFx1NTFEOFxcdTUyODBcXHU1MjgxXFx1NTJFOVxcdTUyRUJcXHU1MzMwXFx1NTNBQ1xcdTU2MjdcXHU1NjE1XFx1NTYwQ1xcdTU2MTJcXHU1NUZDXFx1NTYwRlxcdTU2MUNcXHU1NjAxXFx1NTYxM1xcdTU2MDJcXHU1NUZBXFx1NTYxRFxcdTU2MDRcXHU1NUZGXFx1NTVGOVxcdTU4ODlcXHU1ODdDXFx1NTg5MFxcdTU4OThcXHU1ODg2XFx1NTg4MVxcdTU4N0ZcXHU1ODc0XFx1NTg4QlxcdTU4N0FcXHU1ODg3XFx1NTg5MVxcdTU4OEVcXHU1ODc2XFx1NTg4MlxcdTU4ODhcXHU1ODdCXFx1NTg5NFxcdTU4OEZcXHU1OEZFXFx1NTk2QlxcdTVBRENcXHU1QUVFXFx1NUFFNVxcdTVBRDVcXHU1QUVBXFx1NUFEQVxcdTVBRURcXHU1QUVCXFx1NUFGM1xcdTVBRTJcXHU1QUUwXFx1NUFEQlxcdTVBRUNcXHU1QURFXFx1NUFERFxcdTVBRDlcXHU1QUU4XFx1NUFERlxcdTVCNzdcXHU1QkUwXCJdLFxuICAgICAgW1wiZTFhMVwiLCBcIlxcdTVCRTNcXHU1QzYzXFx1NUQ4MlxcdTVEODBcXHU1RDdEXFx1NUQ4NlxcdTVEN0FcXHU1RDgxXFx1NUQ3N1xcdTVEOEFcXHU1RDg5XFx1NUQ4OFxcdTVEN0VcXHU1RDdDXFx1NUQ4RFxcdTVENzlcXHU1RDdGXFx1NUU1OFxcdTVFNTlcXHU1RTUzXFx1NUVEOFxcdTVFRDFcXHU1RUQ3XFx1NUVDRVxcdTVFRENcXHU1RUQ1XFx1NUVEOVxcdTVFRDJcXHU1RUQ0XFx1NUY0NFxcdTVGNDNcXHU1RjZGXFx1NUZCNlxcdTYxMkNcXHU2MTI4XFx1NjE0MVxcdTYxNUVcXHU2MTcxXFx1NjE3M1xcdTYxNTJcXHU2MTUzXFx1NjE3MlxcdTYxNkNcXHU2MTgwXFx1NjE3NFxcdTYxNTRcXHU2MTdBXFx1NjE1QlxcdTYxNjVcXHU2MTNCXFx1NjE2QVxcdTYxNjFcXHU2MTU2XFx1NjIyOVxcdTYyMjdcXHU2MjJCXFx1NjQyQlxcdTY0NERcXHU2NDVCXFx1NjQ1RFxcdTY0NzRcXHU2NDc2XFx1NjQ3MlxcdTY0NzNcXHU2NDdEXFx1NjQ3NVxcdTY0NjZcXHU2NEE2XFx1NjQ0RVxcdTY0ODJcXHU2NDVFXFx1NjQ1Q1xcdTY0NEJcXHU2NDUzXFx1NjQ2MFxcdTY0NTBcXHU2NDdGXFx1NjQzRlxcdTY0NkNcXHU2NDZCXFx1NjQ1OVxcdTY0NjVcXHU2NDc3XFx1NjU3M1xcdTY1QTBcXHU2NkExXFx1NjZBMFxcdTY2OUZcXHU2NzA1XFx1NjcwNFxcdTY3MjJcXHU2OUIxXFx1NjlCNlxcdTY5QzlcIl0sXG4gICAgICBbXCJlMjQwXCIsIFwiXFx1NjlBMFxcdTY5Q0VcXHU2OTk2XFx1NjlCMFxcdTY5QUNcXHU2OUJDXFx1Njk5MVxcdTY5OTlcXHU2OThFXFx1NjlBN1xcdTY5OERcXHU2OUE5XFx1NjlCRVxcdTY5QUZcXHU2OUJGXFx1NjlDNFxcdTY5QkRcXHU2OUE0XFx1NjlENFxcdTY5QjlcXHU2OUNBXFx1Njk5QVxcdTY5Q0ZcXHU2OUIzXFx1Njk5M1xcdTY5QUFcXHU2OUExXFx1Njk5RVxcdTY5RDlcXHU2OTk3XFx1Njk5MFxcdTY5QzJcXHU2OUI1XFx1NjlBNVxcdTY5QzZcXHU2QjRBXFx1NkI0RFxcdTZCNEJcXHU2QjlFXFx1NkI5RlxcdTZCQTBcXHU2QkMzXFx1NkJDNFxcdTZCRkVcXHU2RUNFXFx1NkVGNVxcdTZFRjFcXHU2RjAzXFx1NkYyNVxcdTZFRjhcXHU2RjM3XFx1NkVGQlxcdTZGMkVcXHU2RjA5XFx1NkY0RVxcdTZGMTlcXHU2RjFBXFx1NkYyN1xcdTZGMThcXHU2RjNCXFx1NkYxMlxcdTZFRURcXHU2RjBBXCJdLFxuICAgICAgW1wiZTJhMVwiLCBcIlxcdTZGMzZcXHU2RjczXFx1NkVGOVxcdTZFRUVcXHU2RjJEXFx1NkY0MFxcdTZGMzBcXHU2RjNDXFx1NkYzNVxcdTZFRUJcXHU2RjA3XFx1NkYwRVxcdTZGNDNcXHU2RjA1XFx1NkVGRFxcdTZFRjZcXHU2RjM5XFx1NkYxQ1xcdTZFRkNcXHU2RjNBXFx1NkYxRlxcdTZGMERcXHU2RjFFXFx1NkYwOFxcdTZGMjFcXHU3MTg3XFx1NzE5MFxcdTcxODlcXHU3MTgwXFx1NzE4NVxcdTcxODJcXHU3MThGXFx1NzE3QlxcdTcxODZcXHU3MTgxXFx1NzE5N1xcdTcyNDRcXHU3MjUzXFx1NzI5N1xcdTcyOTVcXHU3MjkzXFx1NzM0M1xcdTczNERcXHU3MzUxXFx1NzM0Q1xcdTc0NjJcXHU3NDczXFx1NzQ3MVxcdTc0NzVcXHU3NDcyXFx1NzQ2N1xcdTc0NkVcXHU3NTAwXFx1NzUwMlxcdTc1MDNcXHU3NTdEXFx1NzU5MFxcdTc2MTZcXHU3NjA4XFx1NzYwQ1xcdTc2MTVcXHU3NjExXFx1NzYwQVxcdTc2MTRcXHU3NkI4XFx1Nzc4MVxcdTc3N0NcXHU3Nzg1XFx1Nzc4MlxcdTc3NkVcXHU3NzgwXFx1Nzc2RlxcdTc3N0VcXHU3NzgzXFx1NzhCMlxcdTc4QUFcXHU3OEI0XFx1NzhBRFxcdTc4QThcXHU3ODdFXFx1NzhBQlxcdTc4OUVcXHU3OEE1XFx1NzhBMFxcdTc4QUNcXHU3OEEyXFx1NzhBNFxcdTc5OThcXHU3OThBXFx1Nzk4QlxcdTc5OTZcXHU3OTk1XFx1Nzk5NFxcdTc5OTNcIl0sXG4gICAgICBbXCJlMzQwXCIsIFwiXFx1Nzk5N1xcdTc5ODhcXHU3OTkyXFx1Nzk5MFxcdTdBMkJcXHU3QTRBXFx1N0EzMFxcdTdBMkZcXHU3QTI4XFx1N0EyNlxcdTdBQThcXHU3QUFCXFx1N0FBQ1xcdTdBRUVcXHU3Qjg4XFx1N0I5Q1xcdTdCOEFcXHU3QjkxXFx1N0I5MFxcdTdCOTZcXHU3QjhEXFx1N0I4Q1xcdTdCOUJcXHU3QjhFXFx1N0I4NVxcdTdCOThcXHU1Mjg0XFx1N0I5OVxcdTdCQTRcXHU3QjgyXFx1N0NCQlxcdTdDQkZcXHU3Q0JDXFx1N0NCQVxcdTdEQTdcXHU3REI3XFx1N0RDMlxcdTdEQTNcXHU3REFBXFx1N0RDMVxcdTdEQzBcXHU3REM1XFx1N0Q5RFxcdTdEQ0VcXHU3REM0XFx1N0RDNlxcdTdEQ0JcXHU3RENDXFx1N0RBRlxcdTdEQjlcXHU3RDk2XFx1N0RCQ1xcdTdEOUZcXHU3REE2XFx1N0RBRVxcdTdEQTlcXHU3REExXFx1N0RDOVxcdTdGNzNcXHU3RkUyXFx1N0ZFM1xcdTdGRTVcXHU3RkRFXCJdLFxuICAgICAgW1wiZTNhMVwiLCBcIlxcdTgwMjRcXHU4MDVEXFx1ODA1Q1xcdTgxODlcXHU4MTg2XFx1ODE4M1xcdTgxODdcXHU4MThEXFx1ODE4Q1xcdTgxOEJcXHU4MjE1XFx1ODQ5N1xcdTg0QTRcXHU4NEExXFx1ODQ5RlxcdTg0QkFcXHU4NENFXFx1ODRDMlxcdTg0QUNcXHU4NEFFXFx1ODRBQlxcdTg0QjlcXHU4NEI0XFx1ODRDMVxcdTg0Q0RcXHU4NEFBXFx1ODQ5QVxcdTg0QjFcXHU4NEQwXFx1ODQ5RFxcdTg0QTdcXHU4NEJCXFx1ODRBMlxcdTg0OTRcXHU4NEM3XFx1ODRDQ1xcdTg0OUJcXHU4NEE5XFx1ODRBRlxcdTg0QThcXHU4NEQ2XFx1ODQ5OFxcdTg0QjZcXHU4NENGXFx1ODRBMFxcdTg0RDdcXHU4NEQ0XFx1ODREMlxcdTg0REJcXHU4NEIwXFx1ODQ5MVxcdTg2NjFcXHU4NzMzXFx1ODcyM1xcdTg3MjhcXHU4NzZCXFx1ODc0MFxcdTg3MkVcXHU4NzFFXFx1ODcyMVxcdTg3MTlcXHU4NzFCXFx1ODc0M1xcdTg3MkNcXHU4NzQxXFx1ODczRVxcdTg3NDZcXHU4NzIwXFx1ODczMlxcdTg3MkFcXHU4NzJEXFx1ODczQ1xcdTg3MTJcXHU4NzNBXFx1ODczMVxcdTg3MzVcXHU4NzQyXFx1ODcyNlxcdTg3MjdcXHU4NzM4XFx1ODcyNFxcdTg3MUFcXHU4NzMwXFx1ODcxMVxcdTg4RjdcXHU4OEU3XFx1ODhGMVxcdTg4RjJcXHU4OEZBXFx1ODhGRVxcdTg4RUVcXHU4OEZDXFx1ODhGNlxcdTg4RkJcIl0sXG4gICAgICBbXCJlNDQwXCIsIFwiXFx1ODhGMFxcdTg4RUNcXHU4OEVCXFx1ODk5RFxcdTg5QTFcXHU4OTlGXFx1ODk5RVxcdTg5RTlcXHU4OUVCXFx1ODlFOFxcdThBQUJcXHU4QTk5XFx1OEE4QlxcdThBOTJcXHU4QThGXFx1OEE5NlxcdThDM0RcXHU4QzY4XFx1OEM2OVxcdThDRDVcXHU4Q0NGXFx1OENEN1xcdThEOTZcXHU4RTA5XFx1OEUwMlxcdThERkZcXHU4RTBEXFx1OERGRFxcdThFMEFcXHU4RTAzXFx1OEUwN1xcdThFMDZcXHU4RTA1XFx1OERGRVxcdThFMDBcXHU4RTA0XFx1OEYxMFxcdThGMTFcXHU4RjBFXFx1OEYwRFxcdTkxMjNcXHU5MTFDXFx1OTEyMFxcdTkxMjJcXHU5MTFGXFx1OTExRFxcdTkxMUFcXHU5MTI0XFx1OTEyMVxcdTkxMUJcXHU5MTdBXFx1OTE3MlxcdTkxNzlcXHU5MTczXFx1OTJBNVxcdTkyQTRcXHU5Mjc2XFx1OTI5QlxcdTkyN0FcXHU5MkEwXFx1OTI5NFxcdTkyQUFcXHU5MjhEXCJdLFxuICAgICAgW1wiZTRhMVwiLCBcIlxcdTkyQTZcXHU5MjlBXFx1OTJBQlxcdTkyNzlcXHU5Mjk3XFx1OTI3RlxcdTkyQTNcXHU5MkVFXFx1OTI4RVxcdTkyODJcXHU5Mjk1XFx1OTJBMlxcdTkyN0RcXHU5Mjg4XFx1OTJBMVxcdTkyOEFcXHU5Mjg2XFx1OTI4Q1xcdTkyOTlcXHU5MkE3XFx1OTI3RVxcdTkyODdcXHU5MkE5XFx1OTI5RFxcdTkyOEJcXHU5MjJEXFx1OTY5RVxcdTk2QTFcXHU5NkZGXFx1OTc1OFxcdTk3N0RcXHU5NzdBXFx1OTc3RVxcdTk3ODNcXHU5NzgwXFx1OTc4MlxcdTk3N0JcXHU5Nzg0XFx1OTc4MVxcdTk3N0ZcXHU5N0NFXFx1OTdDRFxcdTk4MTZcXHU5OEFEXFx1OThBRVxcdTk5MDJcXHU5OTAwXFx1OTkwN1xcdTk5OURcXHU5OTlDXFx1OTlDM1xcdTk5QjlcXHU5OUJCXFx1OTlCQVxcdTk5QzJcXHU5OUJEXFx1OTlDN1xcdTlBQjFcXHU5QUUzXFx1OUFFN1xcdTlCM0VcXHU5QjNGXFx1OUI2MFxcdTlCNjFcXHU5QjVGXFx1OUNGMVxcdTlDRjJcXHU5Q0Y1XFx1OUVBN1xcdTUwRkZcXHU1MTAzXFx1NTEzMFxcdTUwRjhcXHU1MTA2XFx1NTEwN1xcdTUwRjZcXHU1MEZFXFx1NTEwQlxcdTUxMENcXHU1MEZEXFx1NTEwQVxcdTUyOEJcXHU1MjhDXFx1NTJGMVxcdTUyRUZcXHU1NjQ4XFx1NTY0MlxcdTU2NENcXHU1NjM1XFx1NTY0MVxcdTU2NEFcXHU1NjQ5XFx1NTY0NlxcdTU2NThcIl0sXG4gICAgICBbXCJlNTQwXCIsIFwiXFx1NTY1QVxcdTU2NDBcXHU1NjMzXFx1NTYzRFxcdTU2MkNcXHU1NjNFXFx1NTYzOFxcdTU2MkFcXHU1NjNBXFx1NTcxQVxcdTU4QUJcXHU1ODlEXFx1NThCMVxcdTU4QTBcXHU1OEEzXFx1NThBRlxcdTU4QUNcXHU1OEE1XFx1NThBMVxcdTU4RkZcXHU1QUZGXFx1NUFGNFxcdTVBRkRcXHU1QUY3XFx1NUFGNlxcdTVCMDNcXHU1QUY4XFx1NUIwMlxcdTVBRjlcXHU1QjAxXFx1NUIwN1xcdTVCMDVcXHU1QjBGXFx1NUM2N1xcdTVEOTlcXHU1RDk3XFx1NUQ5RlxcdTVEOTJcXHU1REEyXFx1NUQ5M1xcdTVEOTVcXHU1REEwXFx1NUQ5Q1xcdTVEQTFcXHU1RDlBXFx1NUQ5RVxcdTVFNjlcXHU1RTVEXFx1NUU2MFxcdTVFNUNcXHU3REYzXFx1NUVEQlxcdTVFREVcXHU1RUUxXFx1NUY0OVxcdTVGQjJcXHU2MThCXFx1NjE4M1xcdTYxNzlcXHU2MUIxXFx1NjFCMFxcdTYxQTJcXHU2MTg5XCJdLFxuICAgICAgW1wiZTVhMVwiLCBcIlxcdTYxOUJcXHU2MTkzXFx1NjFBRlxcdTYxQURcXHU2MTlGXFx1NjE5MlxcdTYxQUFcXHU2MUExXFx1NjE4RFxcdTYxNjZcXHU2MUIzXFx1NjIyRFxcdTY0NkVcXHU2NDcwXFx1NjQ5NlxcdTY0QTBcXHU2NDg1XFx1NjQ5N1xcdTY0OUNcXHU2NDhGXFx1NjQ4QlxcdTY0OEFcXHU2NDhDXFx1NjRBM1xcdTY0OUZcXHU2NDY4XFx1NjRCMVxcdTY0OThcXHU2NTc2XFx1NjU3QVxcdTY1NzlcXHU2NTdCXFx1NjVCMlxcdTY1QjNcXHU2NkI1XFx1NjZCMFxcdTY2QTlcXHU2NkIyXFx1NjZCN1xcdTY2QUFcXHU2NkFGXFx1NkEwMFxcdTZBMDZcXHU2QTE3XFx1NjlFNVxcdTY5RjhcXHU2QTE1XFx1NjlGMVxcdTY5RTRcXHU2QTIwXFx1NjlGRlxcdTY5RUNcXHU2OUUyXFx1NkExQlxcdTZBMURcXHU2OUZFXFx1NkEyN1xcdTY5RjJcXHU2OUVFXFx1NkExNFxcdTY5RjdcXHU2OUU3XFx1NkE0MFxcdTZBMDhcXHU2OUU2XFx1NjlGQlxcdTZBMERcXHU2OUZDXFx1NjlFQlxcdTZBMDlcXHU2QTA0XFx1NkExOFxcdTZBMjVcXHU2QTBGXFx1NjlGNlxcdTZBMjZcXHU2QTA3XFx1NjlGNFxcdTZBMTZcXHU2QjUxXFx1NkJBNVxcdTZCQTNcXHU2QkEyXFx1NkJBNlxcdTZDMDFcXHU2QzAwXFx1NkJGRlxcdTZDMDJcXHU2RjQxXFx1NkYyNlxcdTZGN0VcXHU2Rjg3XFx1NkZDNlxcdTZGOTJcIl0sXG4gICAgICBbXCJlNjQwXCIsIFwiXFx1NkY4RFxcdTZGODlcXHU2RjhDXFx1NkY2MlxcdTZGNEZcXHU2Rjg1XFx1NkY1QVxcdTZGOTZcXHU2Rjc2XFx1NkY2Q1xcdTZGODJcXHU2RjU1XFx1NkY3MlxcdTZGNTJcXHU2RjUwXFx1NkY1N1xcdTZGOTRcXHU2RjkzXFx1NkY1RFxcdTZGMDBcXHU2RjYxXFx1NkY2QlxcdTZGN0RcXHU2RjY3XFx1NkY5MFxcdTZGNTNcXHU2RjhCXFx1NkY2OVxcdTZGN0ZcXHU2Rjk1XFx1NkY2M1xcdTZGNzdcXHU2RjZBXFx1NkY3QlxcdTcxQjJcXHU3MUFGXFx1NzE5QlxcdTcxQjBcXHU3MUEwXFx1NzE5QVxcdTcxQTlcXHU3MUI1XFx1NzE5RFxcdTcxQTVcXHU3MTlFXFx1NzFBNFxcdTcxQTFcXHU3MUFBXFx1NzE5Q1xcdTcxQTdcXHU3MUIzXFx1NzI5OFxcdTcyOUFcXHU3MzU4XFx1NzM1MlxcdTczNUVcXHU3MzVGXFx1NzM2MFxcdTczNURcXHU3MzVCXFx1NzM2MVxcdTczNUFcXHU3MzU5XCJdLFxuICAgICAgW1wiZTZhMVwiLCBcIlxcdTczNjJcXHU3NDg3XFx1NzQ4OVxcdTc0OEFcXHU3NDg2XFx1NzQ4MVxcdTc0N0RcXHU3NDg1XFx1NzQ4OFxcdTc0N0NcXHU3NDc5XFx1NzUwOFxcdTc1MDdcXHU3NTdFXFx1NzYyNVxcdTc2MUVcXHU3NjE5XFx1NzYxRFxcdTc2MUNcXHU3NjIzXFx1NzYxQVxcdTc2MjhcXHU3NjFCXFx1NzY5Q1xcdTc2OURcXHU3NjlFXFx1NzY5QlxcdTc3OERcXHU3NzhGXFx1Nzc4OVxcdTc3ODhcXHU3OENEXFx1NzhCQlxcdTc4Q0ZcXHU3OENDXFx1NzhEMVxcdTc4Q0VcXHU3OEQ0XFx1NzhDOFxcdTc4QzNcXHU3OEM0XFx1NzhDOVxcdTc5OUFcXHU3OUExXFx1NzlBMFxcdTc5OUNcXHU3OUEyXFx1Nzk5QlxcdTZCNzZcXHU3QTM5XFx1N0FCMlxcdTdBQjRcXHU3QUIzXFx1N0JCN1xcdTdCQ0JcXHU3QkJFXFx1N0JBQ1xcdTdCQ0VcXHU3QkFGXFx1N0JCOVxcdTdCQ0FcXHU3QkI1XFx1N0NDNVxcdTdDQzhcXHU3Q0NDXFx1N0NDQlxcdTdERjdcXHU3RERCXFx1N0RFQVxcdTdERTdcXHU3REQ3XFx1N0RFMVxcdTdFMDNcXHU3REZBXFx1N0RFNlxcdTdERjZcXHU3REYxXFx1N0RGMFxcdTdERUVcXHU3RERGXFx1N0Y3NlxcdTdGQUNcXHU3RkIwXFx1N0ZBRFxcdTdGRURcXHU3RkVCXFx1N0ZFQVxcdTdGRUNcXHU3RkU2XFx1N0ZFOFxcdTgwNjRcXHU4MDY3XFx1ODFBM1xcdTgxOUZcIl0sXG4gICAgICBbXCJlNzQwXCIsIFwiXFx1ODE5RVxcdTgxOTVcXHU4MUEyXFx1ODE5OVxcdTgxOTdcXHU4MjE2XFx1ODI0RlxcdTgyNTNcXHU4MjUyXFx1ODI1MFxcdTgyNEVcXHU4MjUxXFx1ODUyNFxcdTg1M0JcXHU4NTBGXFx1ODUwMFxcdTg1MjlcXHU4NTBFXFx1ODUwOVxcdTg1MERcXHU4NTFGXFx1ODUwQVxcdTg1MjdcXHU4NTFDXFx1ODRGQlxcdTg1MkJcXHU4NEZBXFx1ODUwOFxcdTg1MENcXHU4NEY0XFx1ODUyQVxcdTg0RjJcXHU4NTE1XFx1ODRGN1xcdTg0RUJcXHU4NEYzXFx1ODRGQ1xcdTg1MTJcXHU4NEVBXFx1ODRFOVxcdTg1MTZcXHU4NEZFXFx1ODUyOFxcdTg1MURcXHU4NTJFXFx1ODUwMlxcdTg0RkRcXHU4NTFFXFx1ODRGNlxcdTg1MzFcXHU4NTI2XFx1ODRFN1xcdTg0RThcXHU4NEYwXFx1ODRFRlxcdTg0RjlcXHU4NTE4XFx1ODUyMFxcdTg1MzBcXHU4NTBCXFx1ODUxOVxcdTg1MkZcXHU4NjYyXCJdLFxuICAgICAgW1wiZTdhMVwiLCBcIlxcdTg3NTZcXHU4NzYzXFx1ODc2NFxcdTg3NzdcXHU4N0UxXFx1ODc3M1xcdTg3NThcXHU4NzU0XFx1ODc1QlxcdTg3NTJcXHU4NzYxXFx1ODc1QVxcdTg3NTFcXHU4NzVFXFx1ODc2RFxcdTg3NkFcXHU4NzUwXFx1ODc0RVxcdTg3NUZcXHU4NzVEXFx1ODc2RlxcdTg3NkNcXHU4NzdBXFx1ODc2RVxcdTg3NUNcXHU4NzY1XFx1ODc0RlxcdTg3N0JcXHU4Nzc1XFx1ODc2MlxcdTg3NjdcXHU4NzY5XFx1ODg1QVxcdTg5MDVcXHU4OTBDXFx1ODkxNFxcdTg5MEJcXHU4OTE3XFx1ODkxOFxcdTg5MTlcXHU4OTA2XFx1ODkxNlxcdTg5MTFcXHU4OTBFXFx1ODkwOVxcdTg5QTJcXHU4OUE0XFx1ODlBM1xcdTg5RURcXHU4OUYwXFx1ODlFQ1xcdThBQ0ZcXHU4QUM2XFx1OEFCOFxcdThBRDNcXHU4QUQxXFx1OEFENFxcdThBRDVcXHU4QUJCXFx1OEFEN1xcdThBQkVcXHU4QUMwXFx1OEFDNVxcdThBRDhcXHU4QUMzXFx1OEFCQVxcdThBQkRcXHU4QUQ5XFx1OEMzRVxcdThDNERcXHU4QzhGXFx1OENFNVxcdThDREZcXHU4Q0Q5XFx1OENFOFxcdThDREFcXHU4Q0REXFx1OENFN1xcdThEQTBcXHU4RDlDXFx1OERBMVxcdThEOUJcXHU4RTIwXFx1OEUyM1xcdThFMjVcXHU4RTI0XFx1OEUyRVxcdThFMTVcXHU4RTFCXFx1OEUxNlxcdThFMTFcXHU4RTE5XFx1OEUyNlxcdThFMjdcIl0sXG4gICAgICBbXCJlODQwXCIsIFwiXFx1OEUxNFxcdThFMTJcXHU4RTE4XFx1OEUxM1xcdThFMUNcXHU4RTE3XFx1OEUxQVxcdThGMkNcXHU4RjI0XFx1OEYxOFxcdThGMUFcXHU4RjIwXFx1OEYyM1xcdThGMTZcXHU4RjE3XFx1OTA3M1xcdTkwNzBcXHU5MDZGXFx1OTA2N1xcdTkwNkJcXHU5MTJGXFx1OTEyQlxcdTkxMjlcXHU5MTJBXFx1OTEzMlxcdTkxMjZcXHU5MTJFXFx1OTE4NVxcdTkxODZcXHU5MThBXFx1OTE4MVxcdTkxODJcXHU5MTg0XFx1OTE4MFxcdTkyRDBcXHU5MkMzXFx1OTJDNFxcdTkyQzBcXHU5MkQ5XFx1OTJCNlxcdTkyQ0ZcXHU5MkYxXFx1OTJERlxcdTkyRDhcXHU5MkU5XFx1OTJEN1xcdTkyRERcXHU5MkNDXFx1OTJFRlxcdTkyQzJcXHU5MkU4XFx1OTJDQVxcdTkyQzhcXHU5MkNFXFx1OTJFNlxcdTkyQ0RcXHU5MkQ1XFx1OTJDOVxcdTkyRTBcXHU5MkRFXFx1OTJFN1xcdTkyRDFcXHU5MkQzXCJdLFxuICAgICAgW1wiZThhMVwiLCBcIlxcdTkyQjVcXHU5MkUxXFx1OTJDNlxcdTkyQjRcXHU5NTdDXFx1OTVBQ1xcdTk1QUJcXHU5NUFFXFx1OTVCMFxcdTk2QTRcXHU5NkEyXFx1OTZEM1xcdTk3MDVcXHU5NzA4XFx1OTcwMlxcdTk3NUFcXHU5NzhBXFx1OTc4RVxcdTk3ODhcXHU5N0QwXFx1OTdDRlxcdTk4MUVcXHU5ODFEXFx1OTgyNlxcdTk4MjlcXHU5ODI4XFx1OTgyMFxcdTk4MUJcXHU5ODI3XFx1OThCMlxcdTk5MDhcXHU5OEZBXFx1OTkxMVxcdTk5MTRcXHU5OTE2XFx1OTkxN1xcdTk5MTVcXHU5OURDXFx1OTlDRFxcdTk5Q0ZcXHU5OUQzXFx1OTlENFxcdTk5Q0VcXHU5OUM5XFx1OTlENlxcdTk5RDhcXHU5OUNCXFx1OTlEN1xcdTk5Q0NcXHU5QUIzXFx1OUFFQ1xcdTlBRUJcXHU5QUYzXFx1OUFGMlxcdTlBRjFcXHU5QjQ2XFx1OUI0M1xcdTlCNjdcXHU5Qjc0XFx1OUI3MVxcdTlCNjZcXHU5Qjc2XFx1OUI3NVxcdTlCNzBcXHU5QjY4XFx1OUI2NFxcdTlCNkNcXHU5Q0ZDXFx1OUNGQVxcdTlDRkRcXHU5Q0ZGXFx1OUNGN1xcdTlEMDdcXHU5RDAwXFx1OUNGOVxcdTlDRkJcXHU5RDA4XFx1OUQwNVxcdTlEMDRcXHU5RTgzXFx1OUVEM1xcdTlGMEZcXHU5RjEwXFx1NTExQ1xcdTUxMTNcXHU1MTE3XFx1NTExQVxcdTUxMTFcXHU1MURFXFx1NTMzNFxcdTUzRTFcXHU1NjcwXFx1NTY2MFxcdTU2NkVcIl0sXG4gICAgICBbXCJlOTQwXCIsIFwiXFx1NTY3M1xcdTU2NjZcXHU1NjYzXFx1NTY2RFxcdTU2NzJcXHU1NjVFXFx1NTY3N1xcdTU3MUNcXHU1NzFCXFx1NThDOFxcdTU4QkRcXHU1OEM5XFx1NThCRlxcdTU4QkFcXHU1OEMyXFx1NThCQ1xcdTU4QzZcXHU1QjE3XFx1NUIxOVxcdTVCMUJcXHU1QjIxXFx1NUIxNFxcdTVCMTNcXHU1QjEwXFx1NUIxNlxcdTVCMjhcXHU1QjFBXFx1NUIyMFxcdTVCMUVcXHU1QkVGXFx1NURBQ1xcdTVEQjFcXHU1REE5XFx1NURBN1xcdTVEQjVcXHU1REIwXFx1NURBRVxcdTVEQUFcXHU1REE4XFx1NURCMlxcdTVEQURcXHU1REFGXFx1NURCNFxcdTVFNjdcXHU1RTY4XFx1NUU2NlxcdTVFNkZcXHU1RUU5XFx1NUVFN1xcdTVFRTZcXHU1RUU4XFx1NUVFNVxcdTVGNEJcXHU1RkJDXFx1NjE5RFxcdTYxQThcXHU2MTk2XFx1NjFDNVxcdTYxQjRcXHU2MUM2XFx1NjFDMVxcdTYxQ0NcXHU2MUJBXCJdLFxuICAgICAgW1wiZTlhMVwiLCBcIlxcdTYxQkZcXHU2MUI4XFx1NjE4Q1xcdTY0RDdcXHU2NEQ2XFx1NjREMFxcdTY0Q0ZcXHU2NEM5XFx1NjRCRFxcdTY0ODlcXHU2NEMzXFx1NjREQlxcdTY0RjNcXHU2NEQ5XFx1NjUzM1xcdTY1N0ZcXHU2NTdDXFx1NjVBMlxcdTY2QzhcXHU2NkJFXFx1NjZDMFxcdTY2Q0FcXHU2NkNCXFx1NjZDRlxcdTY2QkRcXHU2NkJCXFx1NjZCQVxcdTY2Q0NcXHU2NzIzXFx1NkEzNFxcdTZBNjZcXHU2QTQ5XFx1NkE2N1xcdTZBMzJcXHU2QTY4XFx1NkEzRVxcdTZBNURcXHU2QTZEXFx1NkE3NlxcdTZBNUJcXHU2QTUxXFx1NkEyOFxcdTZBNUFcXHU2QTNCXFx1NkEzRlxcdTZBNDFcXHU2QTZBXFx1NkE2NFxcdTZBNTBcXHU2QTRGXFx1NkE1NFxcdTZBNkZcXHU2QTY5XFx1NkE2MFxcdTZBM0NcXHU2QTVFXFx1NkE1NlxcdTZBNTVcXHU2QTREXFx1NkE0RVxcdTZBNDZcXHU2QjU1XFx1NkI1NFxcdTZCNTZcXHU2QkE3XFx1NkJBQVxcdTZCQUJcXHU2QkM4XFx1NkJDN1xcdTZDMDRcXHU2QzAzXFx1NkMwNlxcdTZGQURcXHU2RkNCXFx1NkZBM1xcdTZGQzdcXHU2RkJDXFx1NkZDRVxcdTZGQzhcXHU2RjVFXFx1NkZDNFxcdTZGQkRcXHU2RjlFXFx1NkZDQVxcdTZGQThcXHU3MDA0XFx1NkZBNVxcdTZGQUVcXHU2RkJBXFx1NkZBQ1xcdTZGQUFcXHU2RkNGXFx1NkZCRlxcdTZGQjhcIl0sXG4gICAgICBbXCJlYTQwXCIsIFwiXFx1NkZBMlxcdTZGQzlcXHU2RkFCXFx1NkZDRFxcdTZGQUZcXHU2RkIyXFx1NkZCMFxcdTcxQzVcXHU3MUMyXFx1NzFCRlxcdTcxQjhcXHU3MUQ2XFx1NzFDMFxcdTcxQzFcXHU3MUNCXFx1NzFENFxcdTcxQ0FcXHU3MUM3XFx1NzFDRlxcdTcxQkRcXHU3MUQ4XFx1NzFCQ1xcdTcxQzZcXHU3MURBXFx1NzFEQlxcdTcyOURcXHU3MjlFXFx1NzM2OVxcdTczNjZcXHU3MzY3XFx1NzM2Q1xcdTczNjVcXHU3MzZCXFx1NzM2QVxcdTc0N0ZcXHU3NDlBXFx1NzRBMFxcdTc0OTRcXHU3NDkyXFx1NzQ5NVxcdTc0QTFcXHU3NTBCXFx1NzU4MFxcdTc2MkZcXHU3NjJEXFx1NzYzMVxcdTc2M0RcXHU3NjMzXFx1NzYzQ1xcdTc2MzVcXHU3NjMyXFx1NzYzMFxcdTc2QkJcXHU3NkU2XFx1Nzc5QVxcdTc3OURcXHU3N0ExXFx1Nzc5Q1xcdTc3OUJcXHU3N0EyXFx1NzdBM1xcdTc3OTVcXHU3Nzk5XCJdLFxuICAgICAgW1wiZWFhMVwiLCBcIlxcdTc3OTdcXHU3OEREXFx1NzhFOVxcdTc4RTVcXHU3OEVBXFx1NzhERVxcdTc4RTNcXHU3OERCXFx1NzhFMVxcdTc4RTJcXHU3OEVEXFx1NzhERlxcdTc4RTBcXHU3OUE0XFx1N0E0NFxcdTdBNDhcXHU3QTQ3XFx1N0FCNlxcdTdBQjhcXHU3QUI1XFx1N0FCMVxcdTdBQjdcXHU3QkRFXFx1N0JFM1xcdTdCRTdcXHU3QkREXFx1N0JENVxcdTdCRTVcXHU3QkRBXFx1N0JFOFxcdTdCRjlcXHU3QkQ0XFx1N0JFQVxcdTdCRTJcXHU3QkRDXFx1N0JFQlxcdTdCRDhcXHU3QkRGXFx1N0NEMlxcdTdDRDRcXHU3Q0Q3XFx1N0NEMFxcdTdDRDFcXHU3RTEyXFx1N0UyMVxcdTdFMTdcXHU3RTBDXFx1N0UxRlxcdTdFMjBcXHU3RTEzXFx1N0UwRVxcdTdFMUNcXHU3RTE1XFx1N0UxQVxcdTdFMjJcXHU3RTBCXFx1N0UwRlxcdTdFMTZcXHU3RTBEXFx1N0UxNFxcdTdFMjVcXHU3RTI0XFx1N0Y0M1xcdTdGN0JcXHU3RjdDXFx1N0Y3QVxcdTdGQjFcXHU3RkVGXFx1ODAyQVxcdTgwMjlcXHU4MDZDXFx1ODFCMVxcdTgxQTZcXHU4MUFFXFx1ODFCOVxcdTgxQjVcXHU4MUFCXFx1ODFCMFxcdTgxQUNcXHU4MUI0XFx1ODFCMlxcdTgxQjdcXHU4MUE3XFx1ODFGMlxcdTgyNTVcXHU4MjU2XFx1ODI1N1xcdTg1NTZcXHU4NTQ1XFx1ODU2QlxcdTg1NERcXHU4NTUzXFx1ODU2MVxcdTg1NThcIl0sXG4gICAgICBbXCJlYjQwXCIsIFwiXFx1ODU0MFxcdTg1NDZcXHU4NTY0XFx1ODU0MVxcdTg1NjJcXHU4NTQ0XFx1ODU1MVxcdTg1NDdcXHU4NTYzXFx1ODUzRVxcdTg1NUJcXHU4NTcxXFx1ODU0RVxcdTg1NkVcXHU4NTc1XFx1ODU1NVxcdTg1NjdcXHU4NTYwXFx1ODU4Q1xcdTg1NjZcXHU4NTVEXFx1ODU1NFxcdTg1NjVcXHU4NTZDXFx1ODY2M1xcdTg2NjVcXHU4NjY0XFx1ODc5QlxcdTg3OEZcXHU4Nzk3XFx1ODc5M1xcdTg3OTJcXHU4Nzg4XFx1ODc4MVxcdTg3OTZcXHU4Nzk4XFx1ODc3OVxcdTg3ODdcXHU4N0EzXFx1ODc4NVxcdTg3OTBcXHU4NzkxXFx1ODc5RFxcdTg3ODRcXHU4Nzk0XFx1ODc5Q1xcdTg3OUFcXHU4Nzg5XFx1ODkxRVxcdTg5MjZcXHU4OTMwXFx1ODkyRFxcdTg5MkVcXHU4OTI3XFx1ODkzMVxcdTg5MjJcXHU4OTI5XFx1ODkyM1xcdTg5MkZcXHU4OTJDXFx1ODkxRlxcdTg5RjFcXHU4QUUwXCJdLFxuICAgICAgW1wiZWJhMVwiLCBcIlxcdThBRTJcXHU4QUYyXFx1OEFGNFxcdThBRjVcXHU4QUREXFx1OEIxNFxcdThBRTRcXHU4QURGXFx1OEFGMFxcdThBQzhcXHU4QURFXFx1OEFFMVxcdThBRThcXHU4QUZGXFx1OEFFRlxcdThBRkJcXHU4QzkxXFx1OEM5MlxcdThDOTBcXHU4Q0Y1XFx1OENFRVxcdThDRjFcXHU4Q0YwXFx1OENGM1xcdThENkNcXHU4RDZFXFx1OERBNVxcdThEQTdcXHU4RTMzXFx1OEUzRVxcdThFMzhcXHU4RTQwXFx1OEU0NVxcdThFMzZcXHU4RTNDXFx1OEUzRFxcdThFNDFcXHU4RTMwXFx1OEUzRlxcdThFQkRcXHU4RjM2XFx1OEYyRVxcdThGMzVcXHU4RjMyXFx1OEYzOVxcdThGMzdcXHU4RjM0XFx1OTA3NlxcdTkwNzlcXHU5MDdCXFx1OTA4NlxcdTkwRkFcXHU5MTMzXFx1OTEzNVxcdTkxMzZcXHU5MTkzXFx1OTE5MFxcdTkxOTFcXHU5MThEXFx1OTE4RlxcdTkzMjdcXHU5MzFFXFx1OTMwOFxcdTkzMUZcXHU5MzA2XFx1OTMwRlxcdTkzN0FcXHU5MzM4XFx1OTMzQ1xcdTkzMUJcXHU5MzIzXFx1OTMxMlxcdTkzMDFcXHU5MzQ2XFx1OTMyRFxcdTkzMEVcXHU5MzBEXFx1OTJDQlxcdTkzMURcXHU5MkZBXFx1OTMyNVxcdTkzMTNcXHU5MkY5XFx1OTJGN1xcdTkzMzRcXHU5MzAyXFx1OTMyNFxcdTkyRkZcXHU5MzI5XFx1OTMzOVxcdTkzMzVcXHU5MzJBXFx1OTMxNFxcdTkzMENcIl0sXG4gICAgICBbXCJlYzQwXCIsIFwiXFx1OTMwQlxcdTkyRkVcXHU5MzA5XFx1OTMwMFxcdTkyRkJcXHU5MzE2XFx1OTVCQ1xcdTk1Q0RcXHU5NUJFXFx1OTVCOVxcdTk1QkFcXHU5NUI2XFx1OTVCRlxcdTk1QjVcXHU5NUJEXFx1OTZBOVxcdTk2RDRcXHU5NzBCXFx1OTcxMlxcdTk3MTBcXHU5Nzk5XFx1OTc5N1xcdTk3OTRcXHU5N0YwXFx1OTdGOFxcdTk4MzVcXHU5ODJGXFx1OTgzMlxcdTk5MjRcXHU5OTFGXFx1OTkyN1xcdTk5MjlcXHU5OTlFXFx1OTlFRVxcdTk5RUNcXHU5OUU1XFx1OTlFNFxcdTk5RjBcXHU5OUUzXFx1OTlFQVxcdTk5RTlcXHU5OUU3XFx1OUFCOVxcdTlBQkZcXHU5QUI0XFx1OUFCQlxcdTlBRjZcXHU5QUZBXFx1OUFGOVxcdTlBRjdcXHU5QjMzXFx1OUI4MFxcdTlCODVcXHU5Qjg3XFx1OUI3Q1xcdTlCN0VcXHU5QjdCXFx1OUI4MlxcdTlCOTNcXHU5QjkyXFx1OUI5MFxcdTlCN0FcXHU5Qjk1XCJdLFxuICAgICAgW1wiZWNhMVwiLCBcIlxcdTlCN0RcXHU5Qjg4XFx1OUQyNVxcdTlEMTdcXHU5RDIwXFx1OUQxRVxcdTlEMTRcXHU5RDI5XFx1OUQxRFxcdTlEMThcXHU5RDIyXFx1OUQxMFxcdTlEMTlcXHU5RDFGXFx1OUU4OFxcdTlFODZcXHU5RTg3XFx1OUVBRVxcdTlFQURcXHU5RUQ1XFx1OUVENlxcdTlFRkFcXHU5RjEyXFx1OUYzRFxcdTUxMjZcXHU1MTI1XFx1NTEyMlxcdTUxMjRcXHU1MTIwXFx1NTEyOVxcdTUyRjRcXHU1NjkzXFx1NTY4Q1xcdTU2OERcXHU1Njg2XFx1NTY4NFxcdTU2ODNcXHU1NjdFXFx1NTY4MlxcdTU2N0ZcXHU1NjgxXFx1NThENlxcdTU4RDRcXHU1OENGXFx1NThEMlxcdTVCMkRcXHU1QjI1XFx1NUIzMlxcdTVCMjNcXHU1QjJDXFx1NUIyN1xcdTVCMjZcXHU1QjJGXFx1NUIyRVxcdTVCN0JcXHU1QkYxXFx1NUJGMlxcdTVEQjdcXHU1RTZDXFx1NUU2QVxcdTVGQkVcXHU1RkJCXFx1NjFDM1xcdTYxQjVcXHU2MUJDXFx1NjFFN1xcdTYxRTBcXHU2MUU1XFx1NjFFNFxcdTYxRThcXHU2MURFXFx1NjRFRlxcdTY0RTlcXHU2NEUzXFx1NjRFQlxcdTY0RTRcXHU2NEU4XFx1NjU4MVxcdTY1ODBcXHU2NUI2XFx1NjVEQVxcdTY2RDJcXHU2QThEXFx1NkE5NlxcdTZBODFcXHU2QUE1XFx1NkE4OVxcdTZBOUZcXHU2QTlCXFx1NkFBMVxcdTZBOUVcXHU2QTg3XFx1NkE5M1xcdTZBOEVcIl0sXG4gICAgICBbXCJlZDQwXCIsIFwiXFx1NkE5NVxcdTZBODNcXHU2QUE4XFx1NkFBNFxcdTZBOTFcXHU2QTdGXFx1NkFBNlxcdTZBOUFcXHU2QTg1XFx1NkE4Q1xcdTZBOTJcXHU2QjVCXFx1NkJBRFxcdTZDMDlcXHU2RkNDXFx1NkZBOVxcdTZGRjRcXHU2RkQ0XFx1NkZFM1xcdTZGRENcXHU2RkVEXFx1NkZFN1xcdTZGRTZcXHU2RkRFXFx1NkZGMlxcdTZGRERcXHU2RkUyXFx1NkZFOFxcdTcxRTFcXHU3MUYxXFx1NzFFOFxcdTcxRjJcXHU3MUU0XFx1NzFGMFxcdTcxRTJcXHU3MzczXFx1NzM2RVxcdTczNkZcXHU3NDk3XFx1NzRCMlxcdTc0QUJcXHU3NDkwXFx1NzRBQVxcdTc0QURcXHU3NEIxXFx1NzRBNVxcdTc0QUZcXHU3NTEwXFx1NzUxMVxcdTc1MTJcXHU3NTBGXFx1NzU4NFxcdTc2NDNcXHU3NjQ4XFx1NzY0OVxcdTc2NDdcXHU3NkE0XFx1NzZFOVxcdTc3QjVcXHU3N0FCXFx1NzdCMlxcdTc3QjdcXHU3N0I2XCJdLFxuICAgICAgW1wiZWRhMVwiLCBcIlxcdTc3QjRcXHU3N0IxXFx1NzdBOFxcdTc3RjBcXHU3OEYzXFx1NzhGRFxcdTc5MDJcXHU3OEZCXFx1NzhGQ1xcdTc4RjJcXHU3OTA1XFx1NzhGOVxcdTc4RkVcXHU3OTA0XFx1NzlBQlxcdTc5QThcXHU3QTVDXFx1N0E1QlxcdTdBNTZcXHU3QTU4XFx1N0E1NFxcdTdBNUFcXHU3QUJFXFx1N0FDMFxcdTdBQzFcXHU3QzA1XFx1N0MwRlxcdTdCRjJcXHU3QzAwXFx1N0JGRlxcdTdCRkJcXHU3QzBFXFx1N0JGNFxcdTdDMEJcXHU3QkYzXFx1N0MwMlxcdTdDMDlcXHU3QzAzXFx1N0MwMVxcdTdCRjhcXHU3QkZEXFx1N0MwNlxcdTdCRjBcXHU3QkYxXFx1N0MxMFxcdTdDMEFcXHU3Q0U4XFx1N0UyRFxcdTdFM0NcXHU3RTQyXFx1N0UzM1xcdTk4NDhcXHU3RTM4XFx1N0UyQVxcdTdFNDlcXHU3RTQwXFx1N0U0N1xcdTdFMjlcXHU3RTRDXFx1N0UzMFxcdTdFM0JcXHU3RTM2XFx1N0U0NFxcdTdFM0FcXHU3RjQ1XFx1N0Y3RlxcdTdGN0VcXHU3RjdEXFx1N0ZGNFxcdTdGRjJcXHU4MDJDXFx1ODFCQlxcdTgxQzRcXHU4MUNDXFx1ODFDQVxcdTgxQzVcXHU4MUM3XFx1ODFCQ1xcdTgxRTlcXHU4MjVCXFx1ODI1QVxcdTgyNUNcXHU4NTgzXFx1ODU4MFxcdTg1OEZcXHU4NUE3XFx1ODU5NVxcdTg1QTBcXHU4NThCXFx1ODVBM1xcdTg1N0JcXHU4NUE0XFx1ODU5QVxcdTg1OUVcIl0sXG4gICAgICBbXCJlZTQwXCIsIFwiXFx1ODU3N1xcdTg1N0NcXHU4NTg5XFx1ODVBMVxcdTg1N0FcXHU4NTc4XFx1ODU1N1xcdTg1OEVcXHU4NTk2XFx1ODU4NlxcdTg1OERcXHU4NTk5XFx1ODU5RFxcdTg1ODFcXHU4NUEyXFx1ODU4MlxcdTg1ODhcXHU4NTg1XFx1ODU3OVxcdTg1NzZcXHU4NTk4XFx1ODU5MFxcdTg1OUZcXHU4NjY4XFx1ODdCRVxcdTg3QUFcXHU4N0FEXFx1ODdDNVxcdTg3QjBcXHU4N0FDXFx1ODdCOVxcdTg3QjVcXHU4N0JDXFx1ODdBRVxcdTg3QzlcXHU4N0MzXFx1ODdDMlxcdTg3Q0NcXHU4N0I3XFx1ODdBRlxcdTg3QzRcXHU4N0NBXFx1ODdCNFxcdTg3QjZcXHU4N0JGXFx1ODdCOFxcdTg3QkRcXHU4N0RFXFx1ODdCMlxcdTg5MzVcXHU4OTMzXFx1ODkzQ1xcdTg5M0VcXHU4OTQxXFx1ODk1MlxcdTg5MzdcXHU4OTQyXFx1ODlBRFxcdTg5QUZcXHU4OUFFXFx1ODlGMlxcdTg5RjNcXHU4QjFFXCJdLFxuICAgICAgW1wiZWVhMVwiLCBcIlxcdThCMThcXHU4QjE2XFx1OEIxMVxcdThCMDVcXHU4QjBCXFx1OEIyMlxcdThCMEZcXHU4QjEyXFx1OEIxNVxcdThCMDdcXHU4QjBEXFx1OEIwOFxcdThCMDZcXHU4QjFDXFx1OEIxM1xcdThCMUFcXHU4QzRGXFx1OEM3MFxcdThDNzJcXHU4QzcxXFx1OEM2RlxcdThDOTVcXHU4Qzk0XFx1OENGOVxcdThENkZcXHU4RTRFXFx1OEU0RFxcdThFNTNcXHU4RTUwXFx1OEU0Q1xcdThFNDdcXHU4RjQzXFx1OEY0MFxcdTkwODVcXHU5MDdFXFx1OTEzOFxcdTkxOUFcXHU5MUEyXFx1OTE5QlxcdTkxOTlcXHU5MTlGXFx1OTFBMVxcdTkxOURcXHU5MUEwXFx1OTNBMVxcdTkzODNcXHU5M0FGXFx1OTM2NFxcdTkzNTZcXHU5MzQ3XFx1OTM3Q1xcdTkzNThcXHU5MzVDXFx1OTM3NlxcdTkzNDlcXHU5MzUwXFx1OTM1MVxcdTkzNjBcXHU5MzZEXFx1OTM4RlxcdTkzNENcXHU5MzZBXFx1OTM3OVxcdTkzNTdcXHU5MzU1XFx1OTM1MlxcdTkzNEZcXHU5MzcxXFx1OTM3N1xcdTkzN0JcXHU5MzYxXFx1OTM1RVxcdTkzNjNcXHU5MzY3XFx1OTM4MFxcdTkzNEVcXHU5MzU5XFx1OTVDN1xcdTk1QzBcXHU5NUM5XFx1OTVDM1xcdTk1QzVcXHU5NUI3XFx1OTZBRVxcdTk2QjBcXHU5NkFDXFx1OTcyMFxcdTk3MUZcXHU5NzE4XFx1OTcxRFxcdTk3MTlcXHU5NzlBXFx1OTdBMVxcdTk3OUNcIl0sXG4gICAgICBbXCJlZjQwXCIsIFwiXFx1OTc5RVxcdTk3OURcXHU5N0Q1XFx1OTdENFxcdTk3RjFcXHU5ODQxXFx1OTg0NFxcdTk4NEFcXHU5ODQ5XFx1OTg0NVxcdTk4NDNcXHU5OTI1XFx1OTkyQlxcdTk5MkNcXHU5OTJBXFx1OTkzM1xcdTk5MzJcXHU5OTJGXFx1OTkyRFxcdTk5MzFcXHU5OTMwXFx1OTk5OFxcdTk5QTNcXHU5OUExXFx1OUEwMlxcdTk5RkFcXHU5OUY0XFx1OTlGN1xcdTk5RjlcXHU5OUY4XFx1OTlGNlxcdTk5RkJcXHU5OUZEXFx1OTlGRVxcdTk5RkNcXHU5QTAzXFx1OUFCRVxcdTlBRkVcXHU5QUZEXFx1OUIwMVxcdTlBRkNcXHU5QjQ4XFx1OUI5QVxcdTlCQThcXHU5QjlFXFx1OUI5QlxcdTlCQTZcXHU5QkExXFx1OUJBNVxcdTlCQTRcXHU5Qjg2XFx1OUJBMlxcdTlCQTBcXHU5QkFGXFx1OUQzM1xcdTlENDFcXHU5RDY3XFx1OUQzNlxcdTlEMkVcXHU5RDJGXFx1OUQzMVxcdTlEMzhcXHU5RDMwXCJdLFxuICAgICAgW1wiZWZhMVwiLCBcIlxcdTlENDVcXHU5RDQyXFx1OUQ0M1xcdTlEM0VcXHU5RDM3XFx1OUQ0MFxcdTlEM0RcXHU3RkY1XFx1OUQyRFxcdTlFOEFcXHU5RTg5XFx1OUU4RFxcdTlFQjBcXHU5RUM4XFx1OUVEQVxcdTlFRkJcXHU5RUZGXFx1OUYyNFxcdTlGMjNcXHU5RjIyXFx1OUY1NFxcdTlGQTBcXHU1MTMxXFx1NTEyRFxcdTUxMkVcXHU1Njk4XFx1NTY5Q1xcdTU2OTdcXHU1NjlBXFx1NTY5RFxcdTU2OTlcXHU1OTcwXFx1NUIzQ1xcdTVDNjlcXHU1QzZBXFx1NURDMFxcdTVFNkRcXHU1RTZFXFx1NjFEOFxcdTYxREZcXHU2MUVEXFx1NjFFRVxcdTYxRjFcXHU2MUVBXFx1NjFGMFxcdTYxRUJcXHU2MUQ2XFx1NjFFOVxcdTY0RkZcXHU2NTA0XFx1NjRGRFxcdTY0RjhcXHU2NTAxXFx1NjUwM1xcdTY0RkNcXHU2NTk0XFx1NjVEQlxcdTY2REFcXHU2NkRCXFx1NjZEOFxcdTZBQzVcXHU2QUI5XFx1NkFCRFxcdTZBRTFcXHU2QUM2XFx1NkFCQVxcdTZBQjZcXHU2QUI3XFx1NkFDN1xcdTZBQjRcXHU2QUFEXFx1NkI1RVxcdTZCQzlcXHU2QzBCXFx1NzAwN1xcdTcwMENcXHU3MDBEXFx1NzAwMVxcdTcwMDVcXHU3MDE0XFx1NzAwRVxcdTZGRkZcXHU3MDAwXFx1NkZGQlxcdTcwMjZcXHU2RkZDXFx1NkZGN1xcdTcwMEFcXHU3MjAxXFx1NzFGRlxcdTcxRjlcXHU3MjAzXFx1NzFGRFxcdTczNzZcIl0sXG4gICAgICBbXCJmMDQwXCIsIFwiXFx1NzRCOFxcdTc0QzBcXHU3NEI1XFx1NzRDMVxcdTc0QkVcXHU3NEI2XFx1NzRCQlxcdTc0QzJcXHU3NTE0XFx1NzUxM1xcdTc2NUNcXHU3NjY0XFx1NzY1OVxcdTc2NTBcXHU3NjUzXFx1NzY1N1xcdTc2NUFcXHU3NkE2XFx1NzZCRFxcdTc2RUNcXHU3N0MyXFx1NzdCQVxcdTc4RkZcXHU3OTBDXFx1NzkxM1xcdTc5MTRcXHU3OTA5XFx1NzkxMFxcdTc5MTJcXHU3OTExXFx1NzlBRFxcdTc5QUNcXHU3QTVGXFx1N0MxQ1xcdTdDMjlcXHU3QzE5XFx1N0MyMFxcdTdDMUZcXHU3QzJEXFx1N0MxRFxcdTdDMjZcXHU3QzI4XFx1N0MyMlxcdTdDMjVcXHU3QzMwXFx1N0U1Q1xcdTdFNTBcXHU3RTU2XFx1N0U2M1xcdTdFNThcXHU3RTYyXFx1N0U1RlxcdTdFNTFcXHU3RTYwXFx1N0U1N1xcdTdFNTNcXHU3RkI1XFx1N0ZCM1xcdTdGRjdcXHU3RkY4XFx1ODA3NVxcdTgxRDFcXHU4MUQyXCJdLFxuICAgICAgW1wiZjBhMVwiLCBcIlxcdTgxRDBcXHU4MjVGXFx1ODI1RVxcdTg1QjRcXHU4NUM2XFx1ODVDMFxcdTg1QzNcXHU4NUMyXFx1ODVCM1xcdTg1QjVcXHU4NUJEXFx1ODVDN1xcdTg1QzRcXHU4NUJGXFx1ODVDQlxcdTg1Q0VcXHU4NUM4XFx1ODVDNVxcdTg1QjFcXHU4NUI2XFx1ODVEMlxcdTg2MjRcXHU4NUI4XFx1ODVCN1xcdTg1QkVcXHU4NjY5XFx1ODdFN1xcdTg3RTZcXHU4N0UyXFx1ODdEQlxcdTg3RUJcXHU4N0VBXFx1ODdFNVxcdTg3REZcXHU4N0YzXFx1ODdFNFxcdTg3RDRcXHU4N0RDXFx1ODdEM1xcdTg3RURcXHU4N0Q4XFx1ODdFM1xcdTg3QTRcXHU4N0Q3XFx1ODdEOVxcdTg4MDFcXHU4N0Y0XFx1ODdFOFxcdTg3RERcXHU4OTUzXFx1ODk0QlxcdTg5NEZcXHU4OTRDXFx1ODk0NlxcdTg5NTBcXHU4OTUxXFx1ODk0OVxcdThCMkFcXHU4QjI3XFx1OEIyM1xcdThCMzNcXHU4QjMwXFx1OEIzNVxcdThCNDdcXHU4QjJGXFx1OEIzQ1xcdThCM0VcXHU4QjMxXFx1OEIyNVxcdThCMzdcXHU4QjI2XFx1OEIzNlxcdThCMkVcXHU4QjI0XFx1OEIzQlxcdThCM0RcXHU4QjNBXFx1OEM0MlxcdThDNzVcXHU4Qzk5XFx1OEM5OFxcdThDOTdcXHU4Q0ZFXFx1OEQwNFxcdThEMDJcXHU4RDAwXFx1OEU1Q1xcdThFNjJcXHU4RTYwXFx1OEU1N1xcdThFNTZcXHU4RTVFXFx1OEU2NVxcdThFNjdcIl0sXG4gICAgICBbXCJmMTQwXCIsIFwiXFx1OEU1QlxcdThFNUFcXHU4RTYxXFx1OEU1RFxcdThFNjlcXHU4RTU0XFx1OEY0NlxcdThGNDdcXHU4RjQ4XFx1OEY0QlxcdTkxMjhcXHU5MTNBXFx1OTEzQlxcdTkxM0VcXHU5MUE4XFx1OTFBNVxcdTkxQTdcXHU5MUFGXFx1OTFBQVxcdTkzQjVcXHU5MzhDXFx1OTM5MlxcdTkzQjdcXHU5MzlCXFx1OTM5RFxcdTkzODlcXHU5M0E3XFx1OTM4RVxcdTkzQUFcXHU5MzlFXFx1OTNBNlxcdTkzOTVcXHU5Mzg4XFx1OTM5OVxcdTkzOUZcXHU5MzhEXFx1OTNCMVxcdTkzOTFcXHU5M0IyXFx1OTNBNFxcdTkzQThcXHU5M0I0XFx1OTNBM1xcdTkzQTVcXHU5NUQyXFx1OTVEM1xcdTk1RDFcXHU5NkIzXFx1OTZEN1xcdTk2REFcXHU1REMyXFx1OTZERlxcdTk2RDhcXHU5NkREXFx1OTcyM1xcdTk3MjJcXHU5NzI1XFx1OTdBQ1xcdTk3QUVcXHU5N0E4XFx1OTdBQlxcdTk3QTRcXHU5N0FBXCJdLFxuICAgICAgW1wiZjFhMVwiLCBcIlxcdTk3QTJcXHU5N0E1XFx1OTdEN1xcdTk3RDlcXHU5N0Q2XFx1OTdEOFxcdTk3RkFcXHU5ODUwXFx1OTg1MVxcdTk4NTJcXHU5OEI4XFx1OTk0MVxcdTk5M0NcXHU5OTNBXFx1OUEwRlxcdTlBMEJcXHU5QTA5XFx1OUEwRFxcdTlBMDRcXHU5QTExXFx1OUEwQVxcdTlBMDVcXHU5QTA3XFx1OUEwNlxcdTlBQzBcXHU5QURDXFx1OUIwOFxcdTlCMDRcXHU5QjA1XFx1OUIyOVxcdTlCMzVcXHU5QjRBXFx1OUI0Q1xcdTlCNEJcXHU5QkM3XFx1OUJDNlxcdTlCQzNcXHU5QkJGXFx1OUJDMVxcdTlCQjVcXHU5QkI4XFx1OUJEM1xcdTlCQjZcXHU5QkM0XFx1OUJCOVxcdTlCQkRcXHU5RDVDXFx1OUQ1M1xcdTlENEZcXHU5RDRBXFx1OUQ1QlxcdTlENEJcXHU5RDU5XFx1OUQ1NlxcdTlENENcXHU5RDU3XFx1OUQ1MlxcdTlENTRcXHU5RDVGXFx1OUQ1OFxcdTlENUFcXHU5RThFXFx1OUU4Q1xcdTlFREZcXHU5RjAxXFx1OUYwMFxcdTlGMTZcXHU5RjI1XFx1OUYyQlxcdTlGMkFcXHU5RjI5XFx1OUYyOFxcdTlGNENcXHU5RjU1XFx1NTEzNFxcdTUxMzVcXHU1Mjk2XFx1NTJGN1xcdTUzQjRcXHU1NkFCXFx1NTZBRFxcdTU2QTZcXHU1NkE3XFx1NTZBQVxcdTU2QUNcXHU1OERBXFx1NThERFxcdTU4REJcXHU1OTEyXFx1NUIzRFxcdTVCM0VcXHU1QjNGXFx1NURDM1xcdTVFNzBcIl0sXG4gICAgICBbXCJmMjQwXCIsIFwiXFx1NUZCRlxcdTYxRkJcXHU2NTA3XFx1NjUxMFxcdTY1MERcXHU2NTA5XFx1NjUwQ1xcdTY1MEVcXHU2NTg0XFx1NjVERVxcdTY1RERcXHU2NkRFXFx1NkFFN1xcdTZBRTBcXHU2QUNDXFx1NkFEMVxcdTZBRDlcXHU2QUNCXFx1NkFERlxcdTZBRENcXHU2QUQwXFx1NkFFQlxcdTZBQ0ZcXHU2QUNEXFx1NkFERVxcdTZCNjBcXHU2QkIwXFx1NkMwQ1xcdTcwMTlcXHU3MDI3XFx1NzAyMFxcdTcwMTZcXHU3MDJCXFx1NzAyMVxcdTcwMjJcXHU3MDIzXFx1NzAyOVxcdTcwMTdcXHU3MDI0XFx1NzAxQ1xcdTcwMkFcXHU3MjBDXFx1NzIwQVxcdTcyMDdcXHU3MjAyXFx1NzIwNVxcdTcyQTVcXHU3MkE2XFx1NzJBNFxcdTcyQTNcXHU3MkExXFx1NzRDQlxcdTc0QzVcXHU3NEI3XFx1NzRDM1xcdTc1MTZcXHU3NjYwXFx1NzdDOVxcdTc3Q0FcXHU3N0M0XFx1NzdGMVxcdTc5MURcXHU3OTFCXCJdLFxuICAgICAgW1wiZjJhMVwiLCBcIlxcdTc5MjFcXHU3OTFDXFx1NzkxN1xcdTc5MUVcXHU3OUIwXFx1N0E2N1xcdTdBNjhcXHU3QzMzXFx1N0MzQ1xcdTdDMzlcXHU3QzJDXFx1N0MzQlxcdTdDRUNcXHU3Q0VBXFx1N0U3NlxcdTdFNzVcXHU3RTc4XFx1N0U3MFxcdTdFNzdcXHU3RTZGXFx1N0U3QVxcdTdFNzJcXHU3RTc0XFx1N0U2OFxcdTdGNEJcXHU3RjRBXFx1N0Y4M1xcdTdGODZcXHU3RkI3XFx1N0ZGRFxcdTdGRkVcXHU4MDc4XFx1ODFEN1xcdTgxRDVcXHU4MjY0XFx1ODI2MVxcdTgyNjNcXHU4NUVCXFx1ODVGMVxcdTg1RURcXHU4NUQ5XFx1ODVFMVxcdTg1RThcXHU4NURBXFx1ODVEN1xcdTg1RUNcXHU4NUYyXFx1ODVGOFxcdTg1RDhcXHU4NURGXFx1ODVFM1xcdTg1RENcXHU4NUQxXFx1ODVGMFxcdTg1RTZcXHU4NUVGXFx1ODVERVxcdTg1RTJcXHU4ODAwXFx1ODdGQVxcdTg4MDNcXHU4N0Y2XFx1ODdGN1xcdTg4MDlcXHU4ODBDXFx1ODgwQlxcdTg4MDZcXHU4N0ZDXFx1ODgwOFxcdTg3RkZcXHU4ODBBXFx1ODgwMlxcdTg5NjJcXHU4OTVBXFx1ODk1QlxcdTg5NTdcXHU4OTYxXFx1ODk1Q1xcdTg5NThcXHU4OTVEXFx1ODk1OVxcdTg5ODhcXHU4OUI3XFx1ODlCNlxcdTg5RjZcXHU4QjUwXFx1OEI0OFxcdThCNEFcXHU4QjQwXFx1OEI1M1xcdThCNTZcXHU4QjU0XFx1OEI0QlxcdThCNTVcIl0sXG4gICAgICBbXCJmMzQwXCIsIFwiXFx1OEI1MVxcdThCNDJcXHU4QjUyXFx1OEI1N1xcdThDNDNcXHU4Qzc3XFx1OEM3NlxcdThDOUFcXHU4RDA2XFx1OEQwN1xcdThEMDlcXHU4REFDXFx1OERBQVxcdThEQURcXHU4REFCXFx1OEU2RFxcdThFNzhcXHU4RTczXFx1OEU2QVxcdThFNkZcXHU4RTdCXFx1OEVDMlxcdThGNTJcXHU4RjUxXFx1OEY0RlxcdThGNTBcXHU4RjUzXFx1OEZCNFxcdTkxNDBcXHU5MTNGXFx1OTFCMFxcdTkxQURcXHU5M0RFXFx1OTNDN1xcdTkzQ0ZcXHU5M0MyXFx1OTNEQVxcdTkzRDBcXHU5M0Y5XFx1OTNFQ1xcdTkzQ0NcXHU5M0Q5XFx1OTNBOVxcdTkzRTZcXHU5M0NBXFx1OTNENFxcdTkzRUVcXHU5M0UzXFx1OTNENVxcdTkzQzRcXHU5M0NFXFx1OTNDMFxcdTkzRDJcXHU5M0U3XFx1OTU3RFxcdTk1REFcXHU5NURCXFx1OTZFMVxcdTk3MjlcXHU5NzJCXFx1OTcyQ1xcdTk3MjhcXHU5NzI2XCJdLFxuICAgICAgW1wiZjNhMVwiLCBcIlxcdTk3QjNcXHU5N0I3XFx1OTdCNlxcdTk3RERcXHU5N0RFXFx1OTdERlxcdTk4NUNcXHU5ODU5XFx1OTg1RFxcdTk4NTdcXHU5OEJGXFx1OThCRFxcdTk4QkJcXHU5OEJFXFx1OTk0OFxcdTk5NDdcXHU5OTQzXFx1OTlBNlxcdTk5QTdcXHU5QTFBXFx1OUExNVxcdTlBMjVcXHU5QTFEXFx1OUEyNFxcdTlBMUJcXHU5QTIyXFx1OUEyMFxcdTlBMjdcXHU5QTIzXFx1OUExRVxcdTlBMUNcXHU5QTE0XFx1OUFDMlxcdTlCMEJcXHU5QjBBXFx1OUIwRVxcdTlCMENcXHU5QjM3XFx1OUJFQVxcdTlCRUJcXHU5QkUwXFx1OUJERVxcdTlCRTRcXHU5QkU2XFx1OUJFMlxcdTlCRjBcXHU5QkQ0XFx1OUJEN1xcdTlCRUNcXHU5QkRDXFx1OUJEOVxcdTlCRTVcXHU5QkQ1XFx1OUJFMVxcdTlCREFcXHU5RDc3XFx1OUQ4MVxcdTlEOEFcXHU5RDg0XFx1OUQ4OFxcdTlENzFcXHU5RDgwXFx1OUQ3OFxcdTlEODZcXHU5RDhCXFx1OUQ4Q1xcdTlEN0RcXHU5RDZCXFx1OUQ3NFxcdTlENzVcXHU5RDcwXFx1OUQ2OVxcdTlEODVcXHU5RDczXFx1OUQ3QlxcdTlEODJcXHU5RDZGXFx1OUQ3OVxcdTlEN0ZcXHU5RDg3XFx1OUQ2OFxcdTlFOTRcXHU5RTkxXFx1OUVDMFxcdTlFRkNcXHU5RjJEXFx1OUY0MFxcdTlGNDFcXHU5RjREXFx1OUY1NlxcdTlGNTdcXHU5RjU4XFx1NTMzN1xcdTU2QjJcIl0sXG4gICAgICBbXCJmNDQwXCIsIFwiXFx1NTZCNVxcdTU2QjNcXHU1OEUzXFx1NUI0NVxcdTVEQzZcXHU1REM3XFx1NUVFRVxcdTVFRUZcXHU1RkMwXFx1NUZDMVxcdTYxRjlcXHU2NTE3XFx1NjUxNlxcdTY1MTVcXHU2NTEzXFx1NjVERlxcdTY2RThcXHU2NkUzXFx1NjZFNFxcdTZBRjNcXHU2QUYwXFx1NkFFQVxcdTZBRThcXHU2QUY5XFx1NkFGMVxcdTZBRUVcXHU2QUVGXFx1NzAzQ1xcdTcwMzVcXHU3MDJGXFx1NzAzN1xcdTcwMzRcXHU3MDMxXFx1NzA0MlxcdTcwMzhcXHU3MDNGXFx1NzAzQVxcdTcwMzlcXHU3MDQwXFx1NzAzQlxcdTcwMzNcXHU3MDQxXFx1NzIxM1xcdTcyMTRcXHU3MkE4XFx1NzM3RFxcdTczN0NcXHU3NEJBXFx1NzZBQlxcdTc2QUFcXHU3NkJFXFx1NzZFRFxcdTc3Q0NcXHU3N0NFXFx1NzdDRlxcdTc3Q0RcXHU3N0YyXFx1NzkyNVxcdTc5MjNcXHU3OTI3XFx1NzkyOFxcdTc5MjRcXHU3OTI5XCJdLFxuICAgICAgW1wiZjRhMVwiLCBcIlxcdTc5QjJcXHU3QTZFXFx1N0E2Q1xcdTdBNkRcXHU3QUY3XFx1N0M0OVxcdTdDNDhcXHU3QzRBXFx1N0M0N1xcdTdDNDVcXHU3Q0VFXFx1N0U3QlxcdTdFN0VcXHU3RTgxXFx1N0U4MFxcdTdGQkFcXHU3RkZGXFx1ODA3OVxcdTgxREJcXHU4MUQ5XFx1ODIwQlxcdTgyNjhcXHU4MjY5XFx1ODYyMlxcdTg1RkZcXHU4NjAxXFx1ODVGRVxcdTg2MUJcXHU4NjAwXFx1ODVGNlxcdTg2MDRcXHU4NjA5XFx1ODYwNVxcdTg2MENcXHU4NUZEXFx1ODgxOVxcdTg4MTBcXHU4ODExXFx1ODgxN1xcdTg4MTNcXHU4ODE2XFx1ODk2M1xcdTg5NjZcXHU4OUI5XFx1ODlGN1xcdThCNjBcXHU4QjZBXFx1OEI1RFxcdThCNjhcXHU4QjYzXFx1OEI2NVxcdThCNjdcXHU4QjZEXFx1OERBRVxcdThFODZcXHU4RTg4XFx1OEU4NFxcdThGNTlcXHU4RjU2XFx1OEY1N1xcdThGNTVcXHU4RjU4XFx1OEY1QVxcdTkwOERcXHU5MTQzXFx1OTE0MVxcdTkxQjdcXHU5MUI1XFx1OTFCMlxcdTkxQjNcXHU5NDBCXFx1OTQxM1xcdTkzRkJcXHU5NDIwXFx1OTQwRlxcdTk0MTRcXHU5M0ZFXFx1OTQxNVxcdTk0MTBcXHU5NDI4XFx1OTQxOVxcdTk0MERcXHU5M0Y1XFx1OTQwMFxcdTkzRjdcXHU5NDA3XFx1OTQwRVxcdTk0MTZcXHU5NDEyXFx1OTNGQVxcdTk0MDlcXHU5M0Y4XFx1OTQwQVxcdTkzRkZcIl0sXG4gICAgICBbXCJmNTQwXCIsIFwiXFx1OTNGQ1xcdTk0MENcXHU5M0Y2XFx1OTQxMVxcdTk0MDZcXHU5NURFXFx1OTVFMFxcdTk1REZcXHU5NzJFXFx1OTcyRlxcdTk3QjlcXHU5N0JCXFx1OTdGRFxcdTk3RkVcXHU5ODYwXFx1OTg2MlxcdTk4NjNcXHU5ODVGXFx1OThDMVxcdTk4QzJcXHU5OTUwXFx1OTk0RVxcdTk5NTlcXHU5OTRDXFx1OTk0QlxcdTk5NTNcXHU5QTMyXFx1OUEzNFxcdTlBMzFcXHU5QTJDXFx1OUEyQVxcdTlBMzZcXHU5QTI5XFx1OUEyRVxcdTlBMzhcXHU5QTJEXFx1OUFDN1xcdTlBQ0FcXHU5QUM2XFx1OUIxMFxcdTlCMTJcXHU5QjExXFx1OUMwQlxcdTlDMDhcXHU5QkY3XFx1OUMwNVxcdTlDMTJcXHU5QkY4XFx1OUM0MFxcdTlDMDdcXHU5QzBFXFx1OUMwNlxcdTlDMTdcXHU5QzE0XFx1OUMwOVxcdTlEOUZcXHU5RDk5XFx1OURBNFxcdTlEOURcXHU5RDkyXFx1OUQ5OFxcdTlEOTBcXHU5RDlCXCJdLFxuICAgICAgW1wiZjVhMVwiLCBcIlxcdTlEQTBcXHU5RDk0XFx1OUQ5Q1xcdTlEQUFcXHU5RDk3XFx1OURBMVxcdTlEOUFcXHU5REEyXFx1OURBOFxcdTlEOUVcXHU5REEzXFx1OURCRlxcdTlEQTlcXHU5RDk2XFx1OURBNlxcdTlEQTdcXHU5RTk5XFx1OUU5QlxcdTlFOUFcXHU5RUU1XFx1OUVFNFxcdTlFRTdcXHU5RUU2XFx1OUYzMFxcdTlGMkVcXHU5RjVCXFx1OUY2MFxcdTlGNUVcXHU5RjVEXFx1OUY1OVxcdTlGOTFcXHU1MTNBXFx1NTEzOVxcdTUyOThcXHU1Mjk3XFx1NTZDM1xcdTU2QkRcXHU1NkJFXFx1NUI0OFxcdTVCNDdcXHU1RENCXFx1NURDRlxcdTVFRjFcXHU2MUZEXFx1NjUxQlxcdTZCMDJcXHU2QUZDXFx1NkIwM1xcdTZBRjhcXHU2QjAwXFx1NzA0M1xcdTcwNDRcXHU3MDRBXFx1NzA0OFxcdTcwNDlcXHU3MDQ1XFx1NzA0NlxcdTcyMURcXHU3MjFBXFx1NzIxOVxcdTczN0VcXHU3NTE3XFx1NzY2QVxcdTc3RDBcXHU3OTJEXFx1NzkzMVxcdTc5MkZcXHU3QzU0XFx1N0M1M1xcdTdDRjJcXHU3RThBXFx1N0U4N1xcdTdFODhcXHU3RThCXFx1N0U4NlxcdTdFOERcXHU3RjREXFx1N0ZCQlxcdTgwMzBcXHU4MUREXFx1ODYxOFxcdTg2MkFcXHU4NjI2XFx1ODYxRlxcdTg2MjNcXHU4NjFDXFx1ODYxOVxcdTg2MjdcXHU4NjJFXFx1ODYyMVxcdTg2MjBcXHU4NjI5XFx1ODYxRVxcdTg2MjVcIl0sXG4gICAgICBbXCJmNjQwXCIsIFwiXFx1ODgyOVxcdTg4MURcXHU4ODFCXFx1ODgyMFxcdTg4MjRcXHU4ODFDXFx1ODgyQlxcdTg4NEFcXHU4OTZEXFx1ODk2OVxcdTg5NkVcXHU4OTZCXFx1ODlGQVxcdThCNzlcXHU4Qjc4XFx1OEI0NVxcdThCN0FcXHU4QjdCXFx1OEQxMFxcdThEMTRcXHU4REFGXFx1OEU4RVxcdThFOENcXHU4RjVFXFx1OEY1QlxcdThGNURcXHU5MTQ2XFx1OTE0NFxcdTkxNDVcXHU5MUI5XFx1OTQzRlxcdTk0M0JcXHU5NDM2XFx1OTQyOVxcdTk0M0RcXHU5NDNDXFx1OTQzMFxcdTk0MzlcXHU5NDJBXFx1OTQzN1xcdTk0MkNcXHU5NDQwXFx1OTQzMVxcdTk1RTVcXHU5NUU0XFx1OTVFM1xcdTk3MzVcXHU5NzNBXFx1OTdCRlxcdTk3RTFcXHU5ODY0XFx1OThDOVxcdTk4QzZcXHU5OEMwXFx1OTk1OFxcdTk5NTZcXHU5QTM5XFx1OUEzRFxcdTlBNDZcXHU5QTQ0XFx1OUE0MlxcdTlBNDFcXHU5QTNBXCJdLFxuICAgICAgW1wiZjZhMVwiLCBcIlxcdTlBM0ZcXHU5QUNEXFx1OUIxNVxcdTlCMTdcXHU5QjE4XFx1OUIxNlxcdTlCM0FcXHU5QjUyXFx1OUMyQlxcdTlDMURcXHU5QzFDXFx1OUMyQ1xcdTlDMjNcXHU5QzI4XFx1OUMyOVxcdTlDMjRcXHU5QzIxXFx1OURCN1xcdTlEQjZcXHU5REJDXFx1OURDMVxcdTlEQzdcXHU5RENBXFx1OURDRlxcdTlEQkVcXHU5REM1XFx1OURDM1xcdTlEQkJcXHU5REI1XFx1OURDRVxcdTlEQjlcXHU5REJBXFx1OURBQ1xcdTlEQzhcXHU5REIxXFx1OURBRFxcdTlEQ0NcXHU5REIzXFx1OURDRFxcdTlEQjJcXHU5RTdBXFx1OUU5Q1xcdTlFRUJcXHU5RUVFXFx1OUVFRFxcdTlGMUJcXHU5RjE4XFx1OUYxQVxcdTlGMzFcXHU5RjRFXFx1OUY2NVxcdTlGNjRcXHU5RjkyXFx1NEVCOVxcdTU2QzZcXHU1NkM1XFx1NTZDQlxcdTU5NzFcXHU1QjRCXFx1NUI0Q1xcdTVERDVcXHU1REQxXFx1NUVGMlxcdTY1MjFcXHU2NTIwXFx1NjUyNlxcdTY1MjJcXHU2QjBCXFx1NkIwOFxcdTZCMDlcXHU2QzBEXFx1NzA1NVxcdTcwNTZcXHU3MDU3XFx1NzA1MlxcdTcyMUVcXHU3MjFGXFx1NzJBOVxcdTczN0ZcXHU3NEQ4XFx1NzRENVxcdTc0RDlcXHU3NEQ3XFx1NzY2RFxcdTc2QURcXHU3OTM1XFx1NzlCNFxcdTdBNzBcXHU3QTcxXFx1N0M1N1xcdTdDNUNcXHU3QzU5XFx1N0M1QlxcdTdDNUFcIl0sXG4gICAgICBbXCJmNzQwXCIsIFwiXFx1N0NGNFxcdTdDRjFcXHU3RTkxXFx1N0Y0RlxcdTdGODdcXHU4MURFXFx1ODI2QlxcdTg2MzRcXHU4NjM1XFx1ODYzM1xcdTg2MkNcXHU4NjMyXFx1ODYzNlxcdTg4MkNcXHU4ODI4XFx1ODgyNlxcdTg4MkFcXHU4ODI1XFx1ODk3MVxcdTg5QkZcXHU4OUJFXFx1ODlGQlxcdThCN0VcXHU4Qjg0XFx1OEI4MlxcdThCODZcXHU4Qjg1XFx1OEI3RlxcdThEMTVcXHU4RTk1XFx1OEU5NFxcdThFOUFcXHU4RTkyXFx1OEU5MFxcdThFOTZcXHU4RTk3XFx1OEY2MFxcdThGNjJcXHU5MTQ3XFx1OTQ0Q1xcdTk0NTBcXHU5NDRBXFx1OTQ0QlxcdTk0NEZcXHU5NDQ3XFx1OTQ0NVxcdTk0NDhcXHU5NDQ5XFx1OTQ0NlxcdTk3M0ZcXHU5N0UzXFx1OTg2QVxcdTk4NjlcXHU5OENCXFx1OTk1NFxcdTk5NUJcXHU5QTRFXFx1OUE1M1xcdTlBNTRcXHU5QTRDXFx1OUE0RlxcdTlBNDhcXHU5QTRBXCJdLFxuICAgICAgW1wiZjdhMVwiLCBcIlxcdTlBNDlcXHU5QTUyXFx1OUE1MFxcdTlBRDBcXHU5QjE5XFx1OUIyQlxcdTlCM0JcXHU5QjU2XFx1OUI1NVxcdTlDNDZcXHU5QzQ4XFx1OUMzRlxcdTlDNDRcXHU5QzM5XFx1OUMzM1xcdTlDNDFcXHU5QzNDXFx1OUMzN1xcdTlDMzRcXHU5QzMyXFx1OUMzRFxcdTlDMzZcXHU5RERCXFx1OUREMlxcdTlEREVcXHU5RERBXFx1OURDQlxcdTlERDBcXHU5RERDXFx1OUREMVxcdTlEREZcXHU5REU5XFx1OUREOVxcdTlERDhcXHU5REQ2XFx1OURGNVxcdTlERDVcXHU5REREXFx1OUVCNlxcdTlFRjBcXHU5RjM1XFx1OUYzM1xcdTlGMzJcXHU5RjQyXFx1OUY2QlxcdTlGOTVcXHU5RkEyXFx1NTEzRFxcdTUyOTlcXHU1OEU4XFx1NThFN1xcdTU5NzJcXHU1QjREXFx1NUREOFxcdTg4MkZcXHU1RjRGXFx1NjIwMVxcdTYyMDNcXHU2MjA0XFx1NjUyOVxcdTY1MjVcXHU2NTk2XFx1NjZFQlxcdTZCMTFcXHU2QjEyXFx1NkIwRlxcdTZCQ0FcXHU3MDVCXFx1NzA1QVxcdTcyMjJcXHU3MzgyXFx1NzM4MVxcdTczODNcXHU3NjcwXFx1NzdENFxcdTdDNjdcXHU3QzY2XFx1N0U5NVxcdTgyNkNcXHU4NjNBXFx1ODY0MFxcdTg2MzlcXHU4NjNDXFx1ODYzMVxcdTg2M0JcXHU4NjNFXFx1ODgzMFxcdTg4MzJcXHU4ODJFXFx1ODgzM1xcdTg5NzZcXHU4OTc0XFx1ODk3M1xcdTg5RkVcIl0sXG4gICAgICBbXCJmODQwXCIsIFwiXFx1OEI4Q1xcdThCOEVcXHU4QjhCXFx1OEI4OFxcdThDNDVcXHU4RDE5XFx1OEU5OFxcdThGNjRcXHU4RjYzXFx1OTFCQ1xcdTk0NjJcXHU5NDU1XFx1OTQ1RFxcdTk0NTdcXHU5NDVFXFx1OTdDNFxcdTk3QzVcXHU5ODAwXFx1OUE1NlxcdTlBNTlcXHU5QjFFXFx1OUIxRlxcdTlCMjBcXHU5QzUyXFx1OUM1OFxcdTlDNTBcXHU5QzRBXFx1OUM0RFxcdTlDNEJcXHU5QzU1XFx1OUM1OVxcdTlDNENcXHU5QzRFXFx1OURGQlxcdTlERjdcXHU5REVGXFx1OURFM1xcdTlERUJcXHU5REY4XFx1OURFNFxcdTlERjZcXHU5REUxXFx1OURFRVxcdTlERTZcXHU5REYyXFx1OURGMFxcdTlERTJcXHU5REVDXFx1OURGNFxcdTlERjNcXHU5REU4XFx1OURFRFxcdTlFQzJcXHU5RUQwXFx1OUVGMlxcdTlFRjNcXHU5RjA2XFx1OUYxQ1xcdTlGMzhcXHU5RjM3XFx1OUYzNlxcdTlGNDNcXHU5RjRGXCJdLFxuICAgICAgW1wiZjhhMVwiLCBcIlxcdTlGNzFcXHU5RjcwXFx1OUY2RVxcdTlGNkZcXHU1NkQzXFx1NTZDRFxcdTVCNEVcXHU1QzZEXFx1NjUyRFxcdTY2RURcXHU2NkVFXFx1NkIxM1xcdTcwNUZcXHU3MDYxXFx1NzA1RFxcdTcwNjBcXHU3MjIzXFx1NzREQlxcdTc0RTVcXHU3N0Q1XFx1NzkzOFxcdTc5QjdcXHU3OUI2XFx1N0M2QVxcdTdFOTdcXHU3Rjg5XFx1ODI2RFxcdTg2NDNcXHU4ODM4XFx1ODgzN1xcdTg4MzVcXHU4ODRCXFx1OEI5NFxcdThCOTVcXHU4RTlFXFx1OEU5RlxcdThFQTBcXHU4RTlEXFx1OTFCRVxcdTkxQkRcXHU5MUMyXFx1OTQ2QlxcdTk0NjhcXHU5NDY5XFx1OTZFNVxcdTk3NDZcXHU5NzQzXFx1OTc0N1xcdTk3QzdcXHU5N0U1XFx1OUE1RVxcdTlBRDVcXHU5QjU5XFx1OUM2M1xcdTlDNjdcXHU5QzY2XFx1OUM2MlxcdTlDNUVcXHU5QzYwXFx1OUUwMlxcdTlERkVcXHU5RTA3XFx1OUUwM1xcdTlFMDZcXHU5RTA1XFx1OUUwMFxcdTlFMDFcXHU5RTA5XFx1OURGRlxcdTlERkRcXHU5RTA0XFx1OUVBMFxcdTlGMUVcXHU5RjQ2XFx1OUY3NFxcdTlGNzVcXHU5Rjc2XFx1NTZENFxcdTY1MkVcXHU2NUI4XFx1NkIxOFxcdTZCMTlcXHU2QjE3XFx1NkIxQVxcdTcwNjJcXHU3MjI2XFx1NzJBQVxcdTc3RDhcXHU3N0Q5XFx1NzkzOVxcdTdDNjlcXHU3QzZCXFx1N0NGNlxcdTdFOUFcIl0sXG4gICAgICBbXCJmOTQwXCIsIFwiXFx1N0U5OFxcdTdFOUJcXHU3RTk5XFx1ODFFMFxcdTgxRTFcXHU4NjQ2XFx1ODY0N1xcdTg2NDhcXHU4OTc5XFx1ODk3QVxcdTg5N0NcXHU4OTdCXFx1ODlGRlxcdThCOThcXHU4Qjk5XFx1OEVBNVxcdThFQTRcXHU4RUEzXFx1OTQ2RVxcdTk0NkRcXHU5NDZGXFx1OTQ3MVxcdTk0NzNcXHU5NzQ5XFx1OTg3MlxcdTk5NUZcXHU5QzY4XFx1OUM2RVxcdTlDNkRcXHU5RTBCXFx1OUUwRFxcdTlFMTBcXHU5RTBGXFx1OUUxMlxcdTlFMTFcXHU5RUExXFx1OUVGNVxcdTlGMDlcXHU5RjQ3XFx1OUY3OFxcdTlGN0JcXHU5RjdBXFx1OUY3OVxcdTU3MUVcXHU3MDY2XFx1N0M2RlxcdTg4M0NcXHU4REIyXFx1OEVBNlxcdTkxQzNcXHU5NDc0XFx1OTQ3OFxcdTk0NzZcXHU5NDc1XFx1OUE2MFxcdTlDNzRcXHU5QzczXFx1OUM3MVxcdTlDNzVcXHU5RTE0XFx1OUUxM1xcdTlFRjZcXHU5RjBBXCJdLFxuICAgICAgW1wiZjlhMVwiLCBcIlxcdTlGQTRcXHU3MDY4XFx1NzA2NVxcdTdDRjdcXHU4NjZBXFx1ODgzRVxcdTg4M0RcXHU4ODNGXFx1OEI5RVxcdThDOUNcXHU4RUE5XFx1OEVDOVxcdTk3NEJcXHU5ODczXFx1OTg3NFxcdTk4Q0NcXHU5OTYxXFx1OTlBQlxcdTlBNjRcXHU5QTY2XFx1OUE2N1xcdTlCMjRcXHU5RTE1XFx1OUUxN1xcdTlGNDhcXHU2MjA3XFx1NkIxRVxcdTcyMjdcXHU4NjRDXFx1OEVBOFxcdTk0ODJcXHU5NDgwXFx1OTQ4MVxcdTlBNjlcXHU5QTY4XFx1OUIyRVxcdTlFMTlcXHU3MjI5XFx1ODY0QlxcdThCOUZcXHU5NDgzXFx1OUM3OVxcdTlFQjdcXHU3Njc1XFx1OUE2QlxcdTlDN0FcXHU5RTFEXFx1NzA2OVxcdTcwNkFcXHU5RUE0XFx1OUY3RVxcdTlGNDlcXHU5Rjk4XFx1Nzg4MVxcdTkyQjlcXHU4OENGXFx1NThCQlxcdTYwNTJcXHU3Q0E3XFx1NUFGQVxcdTI1NTRcXHUyNTY2XFx1MjU1N1xcdTI1NjBcXHUyNTZDXFx1MjU2M1xcdTI1NUFcXHUyNTY5XFx1MjU1RFxcdTI1NTJcXHUyNTY0XFx1MjU1NVxcdTI1NUVcXHUyNTZBXFx1MjU2MVxcdTI1NThcXHUyNTY3XFx1MjU1QlxcdTI1NTNcXHUyNTY1XFx1MjU1NlxcdTI1NUZcXHUyNTZCXFx1MjU2MlxcdTI1NTlcXHUyNTY4XFx1MjU1Q1xcdTI1NTFcXHUyNTUwXFx1MjU2RFxcdTI1NkVcXHUyNTcwXFx1MjU2RlxcdTI1OTNcIl1cbiAgICBdO1xuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL3Jhdy1ib2R5L25vZGVfbW9kdWxlcy9pY29udi1saXRlL2VuY29kaW5ncy90YWJsZXMvYmlnNS1hZGRlZC5qc29uXG52YXIgcmVxdWlyZV9iaWc1X2FkZGVkID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL3Jhdy1ib2R5L25vZGVfbW9kdWxlcy9pY29udi1saXRlL2VuY29kaW5ncy90YWJsZXMvYmlnNS1hZGRlZC5qc29uXCIoZXhwb3J0czIsIG1vZHVsZTIpIHtcbiAgICBtb2R1bGUyLmV4cG9ydHMgPSBbXG4gICAgICBbXCI4NzQwXCIsIFwiXFx1NDNGMFxcdTRDMzJcXHU0NjAzXFx1NDVBNlxcdTQ1NzhcXHV7MjcyNjd9XFx1NEQ3N1xcdTQ1QjNcXHV7MjdDQjF9XFx1NENFMlxcdXsyN0NDNX1cXHUzQjk1XFx1NDczNlxcdTQ3NDRcXHU0QzQ3XFx1NEM0MFxcdXsyNDJCRn1cXHV7MjM2MTd9XFx1ezI3MzUyfVxcdXsyNkU4Qn1cXHV7MjcwRDJ9XFx1NEM1N1xcdXsyQTM1MX1cXHU0NzRGXFx1NDVEQVxcdTRDODVcXHV7MjdDNkN9XFx1NEQwN1xcdTRBQTRcXHU0NkExXFx1ezI2QjIzfVxcdTcyMjVcXHV7MjVBNTR9XFx1ezIxQTYzfVxcdXsyM0UwNn1cXHV7MjNGNjF9XFx1NjY0RFxcdTU2RkJcIl0sXG4gICAgICBbXCI4NzY3XCIsIFwiXFx1N0Q5NVxcdTU5MURcXHV7MjhCQjl9XFx1M0RGNFxcdTk3MzRcXHV7MjdCRUZ9XFx1NUJEQlxcdXsyMUQ1RX1cXHU1QUE0XFx1MzYyNVxcdXsyOUVCMH1cXHU1QUQxXFx1NUJCN1xcdTVDRkNcXHU2NzZFXFx1ODU5M1xcdXsyOTk0NX1cXHU3NDYxXFx1NzQ5RFxcdTM4NzVcXHV7MjFENTN9XFx1ezIzNjlFfVxcdXsyNjAyMX1cXHUzRUVDXCJdLFxuICAgICAgW1wiODdhMVwiLCBcIlxcdXsyNThERX1cXHUzQUY1XFx1N0FGQ1xcdTlGOTdcXHV7MjQxNjF9XFx1ezI4OTBEfVxcdXsyMzFFQX1cXHV7MjBBOEF9XFx1ezIzMjVFfVxcdTQzMEFcXHU4NDg0XFx1OUY5NlxcdTk0MkZcXHU0OTMwXFx1ODYxM1xcdTU4OTZcXHU5NzRBXFx1OTIxOFxcdTc5RDBcXHU3QTMyXFx1NjY2MFxcdTZBMjlcXHU4ODlEXFx1NzQ0Q1xcdTdCQzVcXHU2NzgyXFx1N0EyQ1xcdTUyNEZcXHU5MDQ2XFx1MzRFNlxcdTczQzRcXHV7MjVEQjl9XFx1NzRDNlxcdTlGQzdcXHU1N0IzXFx1NDkyRlxcdTU0NENcXHU0MTMxXFx1ezIzNjhFfVxcdTU4MThcXHU3QTcyXFx1ezI3QjY1fVxcdThCOEZcXHU0NkFFXFx1ezI2RTg4fVxcdTQxODFcXHV7MjVEOTl9XFx1N0JBRVxcdXsyMjRCQ31cXHU5RkM4XFx1ezIyNEMxfVxcdXsyMjRDOX1cXHV7MjI0Q0N9XFx1OUZDOVxcdTg1MDRcXHV7MjM1QkJ9XFx1NDBCNFxcdTlGQ0FcXHU0NEUxXFx1ezJBREZGfVxcdTYyQzFcXHU3MDZFXFx1OUZDQlwiXSxcbiAgICAgIFtcIjg4NDBcIiwgXCJcXHUzMUMwXCIsIDQsIFwiXFx1ezIwMTBDfVxcdTMxQzVcXHV7MjAwRDF9XFx1ezIwMENEfVxcdTMxQzZcXHUzMUM3XFx1ezIwMENCfVxcdXsyMUZFOH1cXHUzMUM4XFx1ezIwMENBfVxcdTMxQzlcXHUzMUNBXFx1MzFDQlxcdTMxQ0NcXHV7MjAxMEV9XFx1MzFDRFxcdTMxQ0VcXHUwMTAwXFx4QzFcXHUwMUNEXFx4QzBcXHUwMTEyXFx4QzlcXHUwMTFBXFx4QzhcXHUwMTRDXFx4RDNcXHUwMUQxXFx4RDJcXHUwRkZGXFx4Q0FcXHUwMzA0XFx1MUVCRVxcdTBGRkZcXHhDQVxcdTAzMENcXHUxRUMwXFx4Q0FcXHUwMTAxXFx4RTFcXHUwMUNFXFx4RTBcXHUwMjUxXFx1MDExM1xceEU5XFx1MDExQlxceEU4XFx1MDEyQlxceEVEXFx1MDFEMFxceEVDXFx1MDE0RFxceEYzXFx1MDFEMlxceEYyXFx1MDE2QlxceEZBXFx1MDFENFxceEY5XFx1MDFENlxcdTAxRDhcXHUwMURBXCJdLFxuICAgICAgW1wiODhhMVwiLCBcIlxcdTAxRENcXHhGQ1xcdTBGRkZcXHhFQVxcdTAzMDRcXHUxRUJGXFx1MEZGRlxceEVBXFx1MDMwQ1xcdTFFQzFcXHhFQVxcdTAyNjFcXHUyM0RBXFx1MjNEQlwiXSxcbiAgICAgIFtcIjg5NDBcIiwgXCJcXHV7MkEzQTl9XFx1ezIxMTQ1fVwiXSxcbiAgICAgIFtcIjg5NDNcIiwgXCJcXHU2NTBBXCJdLFxuICAgICAgW1wiODk0NlwiLCBcIlxcdTRFM0RcXHU2RUREXFx1OUQ0RVxcdTkxREZcIl0sXG4gICAgICBbXCI4OTRjXCIsIFwiXFx1ezI3NzM1fVxcdTY0OTFcXHU0RjFBXFx1NEYyOFxcdTRGQThcXHU1MTU2XFx1NTE3NFxcdTUxOUNcXHU1MUU0XFx1NTJBMVxcdTUyQThcXHU1MzNCXFx1NTM0RVxcdTUzRDFcXHU1M0Q4XFx1NTZFMlxcdTU4RjBcXHU1OTA0XFx1NTkwN1xcdTU5MzJcXHU1OTM0XFx1NUI2NlxcdTVCOUVcXHU1QjlGXFx1NUM5QVxcdTVFODZcXHU2MDNCXFx1NjU4OVxcdTY3RkVcXHU2ODA0XFx1Njg2NVxcdTZENEVcXHU3MEJDXFx1NzUzNVxcdTdFQTRcXHU3RUFDXFx1N0VCQVxcdTdFQzdcXHU3RUNGXFx1N0VERlxcdTdGMDZcXHU3RjM3XFx1ODI3QVxcdTgyQ0ZcXHU4MzZGXFx1ODlDNlxcdThCQkVcXHU4QkUyXFx1OEY2NlxcdThGNjdcXHU4RjZFXCJdLFxuICAgICAgW1wiODlhMVwiLCBcIlxcdTc0MTFcXHU3Q0ZDXFx1N0RDRFxcdTY5NDZcXHU3QUM5XFx1NTIyN1wiXSxcbiAgICAgIFtcIjg5YWJcIiwgXCJcXHU5MThDXFx1NzhCOFxcdTkxNUVcXHU4MEJDXCJdLFxuICAgICAgW1wiODliMFwiLCBcIlxcdThEMEJcXHU4MEY2XFx1ezIwOUU3fVwiXSxcbiAgICAgIFtcIjg5YjVcIiwgXCJcXHU4MDlGXFx1OUVDN1xcdTRDQ0RcXHU5REM5XFx1OUUwQ1xcdTRDM0VcXHV7MjlERjZ9XFx1ezI3MDBFfVxcdTlFMEFcXHV7MkExMzN9XFx1MzVDMVwiXSxcbiAgICAgIFtcIjg5YzFcIiwgXCJcXHU2RTlBXFx1ODIzRVxcdTc1MTlcIl0sXG4gICAgICBbXCI4OWM1XCIsIFwiXFx1NDkxMVxcdTlBNkNcXHU5QThGXFx1OUY5OVxcdTc5ODdcXHV7Mjg0NkN9XFx1ezIxRENBfVxcdXsyMDVEMH1cXHV7MjJBRTZ9XFx1NEUyNFxcdTRFODFcXHU0RTgwXFx1NEU4N1xcdTRFQkZcXHU0RUVCXFx1NEYzN1xcdTM0NENcXHU0RkJEXFx1M0U0OFxcdTUwMDNcXHU1MDg4XFx1MzQ3RFxcdTM0OTNcXHUzNEE1XFx1NTE4NlxcdTU5MDVcXHU1MURCXFx1NTFGQ1xcdTUyMDVcXHU0RTg5XFx1NTI3OVxcdTUyOTBcXHU1MzI3XFx1MzVDN1xcdTUzQTlcXHUzNTUxXFx1NTNCMFxcdTM1NTNcXHU1M0MyXFx1NTQyM1xcdTM1NkRcXHUzNTcyXFx1MzY4MVxcdTU0OTNcXHU1NEEzXFx1NTRCNFxcdTU0QjlcXHU1NEQwXFx1NTRFRlxcdTU1MThcXHU1NTIzXFx1NTUyOFxcdTM1OThcXHU1NTNGXFx1MzVBNVxcdTM1QkZcXHU1NUQ3XFx1MzVDNVwiXSxcbiAgICAgIFtcIjhhNDBcIiwgXCJcXHV7MjdEODR9XFx1NTUyNVwiXSxcbiAgICAgIFtcIjhhNDNcIiwgXCJcXHV7MjBDNDJ9XFx1ezIwRDE1fVxcdXsyNTEyQn1cXHU1NTkwXFx1ezIyQ0M2fVxcdTM5RUNcXHV7MjAzNDF9XFx1OEU0NlxcdXsyNERCOH1cXHV7Mjk0RTV9XFx1NDA1M1xcdXsyODBCRX1cXHU3NzdBXFx1ezIyQzM4fVxcdTNBMzRcXHU0N0Q1XFx1ezI4MTVEfVxcdXsyNjlGMn1cXHV7MjRERUF9XFx1NjRERFxcdXsyMEQ3Q31cXHV7MjBGQjR9XFx1ezIwQ0Q1fVxcdXsyMTBGNH1cXHU2NDhEXFx1OEU3RVxcdXsyMEU5Nn1cXHV7MjBDMEJ9XFx1ezIwRjY0fVxcdXsyMkNBOX1cXHV7MjgyNTZ9XFx1ezI0NEQzfVwiXSxcbiAgICAgIFtcIjhhNjRcIiwgXCJcXHV7MjBENDZ9XFx1ezI5QTREfVxcdXsyODBFOX1cXHU0N0Y0XFx1ezI0RUE3fVxcdXsyMkNDMn1cXHU5QUIyXFx1M0E2N1xcdXsyOTVGNH1cXHUzRkVEXFx1MzUwNlxcdXsyNTJDN31cXHV7Mjk3RDR9XFx1ezI3OEM4fVxcdXsyMkQ0NH1cXHU5RDZFXFx1OTgxNVwiXSxcbiAgICAgIFtcIjhhNzZcIiwgXCJcXHU0M0Q5XFx1ezI2MEE1fVxcdTY0QjRcXHU1NEUzXFx1ezIyRDRDfVxcdXsyMkJDQX1cXHV7MjEwNzd9XFx1MzlGQlxcdXsyMTA2Rn1cIl0sXG4gICAgICBbXCI4YWExXCIsIFwiXFx1ezI2NkRBfVxcdXsyNjcxNn1cXHV7Mjc5QTB9XFx1NjRFQVxcdXsyNTA1Mn1cXHV7MjBDNDN9XFx1OEU2OFxcdXsyMjFBMX1cXHV7MjhCNEN9XFx1ezIwNzMxfVwiXSxcbiAgICAgIFtcIjhhYWNcIiwgXCJcXHU0ODBCXFx1ezIwMUE5fVxcdTNGRkFcXHU1ODczXFx1ezIyRDhEfVwiXSxcbiAgICAgIFtcIjhhYjJcIiwgXCJcXHV7MjQ1Qzh9XFx1ezIwNEZDfVxcdXsyNjA5N31cXHV7MjBGNEN9XFx1ezIwRDk2fVxcdTU1NzlcXHU0MEJCXFx1NDNCQVwiXSxcbiAgICAgIFtcIjhhYmJcIiwgXCJcXHU0QUI0XFx1ezIyQTY2fVxcdXsyMTA5RH1cXHU4MUFBXFx1OThGNVxcdXsyMEQ5Q31cXHU2Mzc5XFx1MzlGRVxcdXsyMjc3NX1cXHU4REMwXFx1NTZBMVxcdTY0N0NcXHUzRTQzXCJdLFxuICAgICAgW1wiOGFjOVwiLCBcIlxcdXsyQTYwMX1cXHV7MjBFMDl9XFx1ezIyQUNGfVxcdXsyMkNDOX1cIl0sXG4gICAgICBbXCI4YWNlXCIsIFwiXFx1ezIxMEM4fVxcdXsyMzlDMn1cXHUzOTkyXFx1M0EwNlxcdXsyODI5Qn1cXHUzNTc4XFx1ezI1RTQ5fVxcdXsyMjBDN31cXHU1NjUyXFx1ezIwRjMxfVxcdXsyMkNCMn1cXHV7Mjk3MjB9XFx1MzRCQ1xcdTZDM0RcXHV7MjRFM0J9XCJdLFxuICAgICAgW1wiOGFkZlwiLCBcIlxcdXsyNzU3NH1cXHV7MjJFOEJ9XFx1ezIyMjA4fVxcdXsyQTY1Qn1cXHV7MjhDQ0R9XFx1ezIwRTdBfVxcdXsyMEMzNH1cXHV7MjY4MUN9XFx1N0Y5M1xcdXsyMTBDRn1cXHV7MjI4MDN9XFx1ezIyOTM5fVxcdTM1RkJcXHV7MjUxRTN9XFx1ezIwRThDfVxcdXsyMEY4RH1cXHV7MjBFQUF9XFx1M0Y5M1xcdXsyMEYzMH1cXHV7MjBENDd9XFx1ezIxMTRGfVxcdXsyMEU0Q31cIl0sXG4gICAgICBbXCI4YWY2XCIsIFwiXFx1ezIwRUFCfVxcdXsyMEJBOX1cXHV7MjBENDh9XFx1ezIxMEMwfVxcdXsyMTEzRH1cXHUzRkY5XFx1ezIyNjk2fVxcdTY0MzJcXHV7MjBGQUR9XCJdLFxuICAgICAgW1wiOGI0MFwiLCBcIlxcdXsyMzNGNH1cXHV7Mjc2Mzl9XFx1ezIyQkNFfVxcdXsyMEQ3RX1cXHV7MjBEN0Z9XFx1ezIyQzUxfVxcdXsyMkM1NX1cXHUzQTE4XFx1ezIwRTk4fVxcdXsyMTBDN31cXHV7MjBGMkV9XFx1ezJBNjMyfVxcdXsyNkI1MH1cXHV7MjhDRDJ9XFx1ezI4RDk5fVxcdXsyOENDQX1cXHU5NUFBXFx1NTRDQ1xcdTgyQzRcXHU1NUI5XCJdLFxuICAgICAgW1wiOGI1NVwiLCBcIlxcdXsyOUVDM31cXHU5QzI2XFx1OUFCNlxcdXsyNzc1RX1cXHV7MjJERUV9XFx1NzE0MFxcdTgxNkRcXHU4MEVDXFx1NUMxQ1xcdXsyNjU3Mn1cXHU4MTM0XFx1Mzc5N1xcdTUzNUZcXHV7MjgwQkR9XFx1OTFCNlxcdXsyMEVGQX1cXHV7MjBFMEZ9XFx1ezIwRTc3fVxcdXsyMEVGQn1cXHUzNUREXFx1ezI0REVCfVxcdTM2MDlcXHV7MjBDRDZ9XFx1NTZBRlxcdXsyMjdCNX1cXHV7MjEwQzl9XFx1ezIwRTEwfVxcdXsyMEU3OH1cXHV7MjEwNzh9XFx1ezIxMTQ4fVxcdXsyODIwN31cXHV7MjE0NTV9XFx1ezIwRTc5fVxcdXsyNEU1MH1cXHV7MjJEQTR9XFx1NUE1NFxcdXsyMTAxRH1cXHV7MjEwMUV9XFx1ezIxMEY1fVxcdXsyMTBGNn1cXHU1NzlDXFx1ezIwRTExfVwiXSxcbiAgICAgIFtcIjhiYTFcIiwgXCJcXHV7Mjc2OTR9XFx1ezI4MkNEfVxcdXsyMEZCNX1cXHV7MjBFN0J9XFx1ezI1MTdFfVxcdTM3MDNcXHV7MjBGQjZ9XFx1ezIxMTgwfVxcdXsyNTJEOH1cXHV7MkEyQkR9XFx1ezI0OURBfVxcdXsyMTgzQX1cXHV7MjQxNzd9XFx1ezI4MjdDfVxcdTU4OTlcXHU1MjY4XFx1MzYxQVxcdXsyNTczRH1cXHU3QkIyXFx1NUI2OFxcdTQ4MDBcXHU0QjJDXFx1OUYyN1xcdTQ5RTdcXHU5QzFGXFx1OUI4RFxcdXsyNUI3NH1cXHV7MjMxM0R9XFx1NTVGQlxcdTM1RjJcXHU1Njg5XFx1NEUyOFxcdTU5MDJcXHV7MjFCQzF9XFx1ezJGODc4fVxcdTk3NTFcXHV7MjAwODZ9XFx1NEU1QlxcdTRFQkJcXHUzNTNFXFx1NUMyM1xcdTVGNTFcXHU1RkM0XFx1MzhGQVxcdTYyNENcXHU2NTM1XFx1NkI3QVxcdTZDMzVcXHU2QzNBXFx1NzA2Q1xcdTcyMkJcXHU0RTJDXFx1NzJBRFxcdXsyNDhFOX1cXHU3RjUyXFx1NzkzQlxcdTdDRjlcXHU3RjUzXFx1ezI2MjZBfVxcdTM0QzFcIl0sXG4gICAgICBbXCI4YmRlXCIsIFwiXFx1ezI2MzRCfVxcdTgwMDJcXHU4MDgwXFx1ezI2NjEyfVxcdXsyNjk1MX1cXHU1MzVEXFx1ODg2NFxcdTg5QzFcXHV7Mjc4QjJ9XFx1OEJBMFxcdThEMURcXHU5NDg1XFx1OTU3OFxcdTk1N0ZcXHU5NUU4XFx1ezI4RTBGfVxcdTk3RTZcXHU5ODc1XFx1OThDRVxcdTk4REVcXHU5OTYzXFx1ezI5ODEwfVxcdTlDN0NcXHU5RTFGXFx1OUVDNFxcdTZCNkZcXHVGOTA3XFx1NEUzN1xcdXsyMDA4N31cXHU5NjFEXFx1NjIzN1xcdTk0QTJcIl0sXG4gICAgICBbXCI4YzQwXCIsIFwiXFx1NTAzQlxcdTZERkVcXHV7MjlDNzN9XFx1OUZBNlxcdTNEQzlcXHU4ODhGXFx1ezI0MTRFfVxcdTcwNzdcXHU1Q0Y1XFx1NEIyMFxcdXsyNTFDRH1cXHUzNTU5XFx1ezI1RDMwfVxcdTYxMjJcXHV7MjhBMzJ9XFx1OEZBN1xcdTkxRjZcXHU3MTkxXFx1NjcxOVxcdTczQkFcXHV7MjMyODF9XFx1ezJBMTA3fVxcdTNDOEJcXHV7MjE5ODB9XFx1NEIxMFxcdTc4RTRcXHU3NDAyXFx1NTFBRVxcdXsyODcwRn1cXHU0MDA5XFx1NkE2M1xcdXsyQTJCQX1cXHU0MjIzXFx1ODYwRlxcdXsyMEE2Rn1cXHU3QTJBXFx1ezI5OTQ3fVxcdXsyOEFFQX1cXHU5NzU1XFx1NzA0RFxcdTUzMjRcXHV7MjIwN0V9XFx1OTNGNFxcdTc2RDlcXHV7Mjg5RTN9XFx1OUZBN1xcdTc3RERcXHU0RUEzXFx1NEZGMFxcdTUwQkNcXHU0RTJGXFx1NEYxN1xcdTlGQThcXHU1NDM0XFx1N0Q4QlxcdTU4OTJcXHU1OEQwXFx1ezIxREI2fVxcdTVFOTJcXHU1RTk5XFx1NUZDMlxcdXsyMjcxMn1cXHU2NThCXCJdLFxuICAgICAgW1wiOGNhMVwiLCBcIlxcdXsyMzNGOX1cXHU2OTE5XFx1NkE0M1xcdXsyM0M2M31cXHU2Q0ZGXCJdLFxuICAgICAgW1wiOGNhN1wiLCBcIlxcdTcyMDBcXHV7MjQ1MDV9XFx1NzM4Q1xcdTNFREJcXHV7MjRBMTN9XFx1NUIxNVxcdTc0QjlcXHU4QjgzXFx1ezI1Q0E0fVxcdXsyNTY5NX1cXHU3QTkzXFx1N0JFQ1xcdTdDQzNcXHU3RTZDXFx1ODJGOFxcdTg1OTdcXHU5RkE5XFx1ODg5MFxcdTlGQUFcXHU4RUI5XFx1OUZBQlxcdThGQ0ZcXHU4NTVGXFx1OTlFMFxcdTkyMjFcXHU5RkFDXFx1ezI4REI5fVxcdXsyMTQzRn1cXHU0MDcxXFx1NDJBMlxcdTVBMUFcIl0sXG4gICAgICBbXCI4Y2M5XCIsIFwiXFx1OTg2OFxcdTY3NkJcXHU0Mjc2XFx1NTczRFwiXSxcbiAgICAgIFtcIjhjY2VcIiwgXCJcXHU4NUQ2XFx1ezI0OTdCfVxcdTgyQkZcXHV7MjcxMER9XFx1NEM4MVxcdXsyNkQ3NH1cXHU1RDdCXFx1ezI2QjE1fVxcdXsyNkZCRX1cXHU5RkFEXFx1OUZBRVxcdTVCOTZcXHU5RkFGXFx1NjZFN1xcdTdFNUJcXHU2RTU3XFx1NzlDQVxcdTNEODhcXHU0NEMzXFx1ezIzMjU2fVxcdXsyMjc5Nn1cXHU0MzlBXFx1NDUzNlwiXSxcbiAgICAgIFtcIjhjZTZcIiwgXCJcXHU1Q0Q1XFx1ezIzQjFBfVxcdThBRjlcXHU1Qzc4XFx1M0QxMlxcdXsyMzU1MX1cXHU1RDc4XFx1OUZCMlxcdTcxNTdcXHU0NTU4XFx1ezI0MEVDfVxcdXsyMUUyM31cXHU0Qzc3XFx1Mzk3OFxcdTM0NEFcXHV7MjAxQTR9XFx1ezI2QzQxfVxcdThBQ0NcXHU0RkI0XFx1ezIwMjM5fVxcdTU5QkZcXHU4MTZDXFx1OTg1NlxcdXsyOThGQX1cXHU1RjNCXCJdLFxuICAgICAgW1wiOGQ0MFwiLCBcIlxcdXsyMEI5Rn1cIl0sXG4gICAgICBbXCI4ZDQyXCIsIFwiXFx1ezIyMUMxfVxcdXsyODk2RH1cXHU0MTAyXFx1NDZCQlxcdXsyOTA3OX1cXHUzRjA3XFx1OUZCM1xcdXsyQTFCNX1cXHU0MEY4XFx1MzdENlxcdTQ2RjdcXHV7MjZDNDZ9XFx1NDE3Q1xcdXsyODZCMn1cXHV7MjczRkZ9XFx1NDU2RFxcdTM4RDRcXHV7MjU0OUF9XFx1NDU2MVxcdTQ1MUJcXHU0RDg5XFx1NEM3QlxcdTRENzZcXHU0NUVBXFx1M0ZDOFxcdXsyNEIwRn1cXHUzNjYxXFx1NDRERVxcdTQ0QkRcXHU0MUVEXFx1NUQzRVxcdTVENDhcXHU1RDU2XFx1M0RGQ1xcdTM4MEZcXHU1REE0XFx1NURCOVxcdTM4MjBcXHUzODM4XFx1NUU0MlxcdTVFQkRcXHU1RjI1XFx1NUY4M1xcdTM5MDhcXHUzOTE0XFx1MzkzRlxcdTM5NERcXHU2MEQ3XFx1NjEzRFxcdTVDRTVcXHUzOTg5XFx1NjFCN1xcdTYxQjlcXHU2MUNGXFx1MzlCOFxcdTYyMkNcXHU2MjkwXFx1NjJFNVxcdTYzMThcXHUzOUY4XFx1NTZCMVwiXSxcbiAgICAgIFtcIjhkYTFcIiwgXCJcXHUzQTAzXFx1NjNFMlxcdTYzRkJcXHU2NDA3XFx1NjQ1QVxcdTNBNEJcXHU2NEMwXFx1NUQxNVxcdTU2MjFcXHU5RjlGXFx1M0E5N1xcdTY1ODZcXHUzQUJEXFx1NjVGRlxcdTY2NTNcXHUzQUYyXFx1NjY5MlxcdTNCMjJcXHU2NzE2XFx1M0I0MlxcdTY3QTRcXHU2ODAwXFx1M0I1OFxcdTY4NEFcXHU2ODg0XFx1M0I3MlxcdTNCNzFcXHUzQjdCXFx1NjkwOVxcdTY5NDNcXHU3MjVDXFx1Njk2NFxcdTY5OUZcXHU2OTg1XFx1M0JCQ1xcdTY5RDZcXHUzQkREXFx1NkE2NVxcdTZBNzRcXHU2QTcxXFx1NkE4MlxcdTNCRUNcXHU2QTk5XFx1M0JGMlxcdTZBQUJcXHU2QUI1XFx1NkFENFxcdTZBRjZcXHU2QjgxXFx1NkJDMVxcdTZCRUFcXHU2Qzc1XFx1NkNBQVxcdTNDQ0JcXHU2RDAyXFx1NkQwNlxcdTZEMjZcXHU2RDgxXFx1M0NFRlxcdTZEQTRcXHU2REIxXFx1NkUxNVxcdTZFMThcXHU2RTI5XFx1NkU4NlxcdXsyODlDMH1cXHU2RUJCXFx1NkVFMlxcdTZFREFcXHU5RjdGXFx1NkVFOFxcdTZFRTlcXHU2RjI0XFx1NkYzNFxcdTNENDZcXHV7MjNGNDF9XFx1NkY4MVxcdTZGQkVcXHUzRDZBXFx1M0Q3NVxcdTcxQjdcXHU1Qzk5XFx1M0Q4QVxcdTcwMkNcXHUzRDkxXFx1NzA1MFxcdTcwNTRcXHU3MDZGXFx1NzA3RlxcdTcwODlcXHV7MjAzMjV9XFx1NDNDMVxcdTM1RjFcXHV7MjBFRDh9XCJdLFxuICAgICAgW1wiOGU0MFwiLCBcIlxcdXsyM0VEN31cXHU1N0JFXFx1ezI2RUQzfVxcdTcxM0VcXHV7MjU3RTB9XFx1MzY0RVxcdTY5QTJcXHV7MjhCRTl9XFx1NUI3NFxcdTdBNDlcXHV7MjU4RTF9XFx1ezI5NEQ5fVxcdTdBNjVcXHU3QTdEXFx1ezI1OUFDfVxcdTdBQkJcXHU3QUIwXFx1N0FDMlxcdTdBQzNcXHU3MUQxXFx1ezI2NDhEfVxcdTQxQ0FcXHU3QURBXFx1N0FERFxcdTdBRUFcXHU0MUVGXFx1NTRCMlxcdXsyNUMwMX1cXHU3QjBCXFx1N0I1NVxcdTdCMjlcXHV7MjUzMEV9XFx1ezI1Q0ZFfVxcdTdCQTJcXHU3QjZGXFx1ODM5Q1xcdXsyNUJCNH1cXHV7MjZDN0Z9XFx1N0JEMFxcdTg0MjFcXHU3QjkyXFx1N0JCOFxcdXsyNUQyMH1cXHUzREFEXFx1ezI1QzY1fVxcdTg0OTJcXHU3QkZBXFx1N0MwNlxcdTdDMzVcXHV7MjVDQzF9XFx1N0M0NFxcdTdDODNcXHV7MjQ4ODJ9XFx1N0NBNlxcdTY2N0RcXHV7MjQ1Nzh9XFx1N0NDOVxcdTdDQzdcXHU3Q0U2XFx1N0M3NFxcdTdDRjNcXHU3Q0Y1XFx1N0NDRVwiXSxcbiAgICAgIFtcIjhlYTFcIiwgXCJcXHU3RTY3XFx1NDUxRFxcdXsyNkU0NH1cXHU3RDVEXFx1ezI2RUQ2fVxcdTc0OERcXHU3RDg5XFx1N0RBQlxcdTcxMzVcXHU3REIzXFx1N0REMlxcdXsyNDA1N31cXHV7MjYwMjl9XFx1N0RFNFxcdTNEMTNcXHU3REY1XFx1ezIxN0Y5fVxcdTdERTVcXHV7MjgzNkR9XFx1N0UxRFxcdXsyNjEyMX1cXHV7MjYxNUF9XFx1N0U2RVxcdTdFOTJcXHU0MzJCXFx1OTQ2Q1xcdTdFMjdcXHU3RjQwXFx1N0Y0MVxcdTdGNDdcXHU3OTM2XFx1ezI2MkQwfVxcdTk5RTFcXHU3Rjk3XFx1ezI2MzUxfVxcdTdGQTNcXHV7MjE2NjF9XFx1ezIwMDY4fVxcdTQ1NUNcXHV7MjM3NjZ9XFx1NDUwM1xcdXsyODMzQX1cXHU3RkZBXFx1ezI2NDg5fVxcdTgwMDVcXHU4MDA4XFx1ODAxRFxcdTgwMjhcXHU4MDJGXFx1ezJBMDg3fVxcdXsyNkNDM31cXHU4MDNCXFx1ODAzQ1xcdTgwNjFcXHV7MjI3MTR9XFx1NDk4OVxcdXsyNjYyNn1cXHV7MjNERTN9XFx1ezI2NkU4fVxcdTY3MjVcXHU4MEE3XFx1ezI4QTQ4fVxcdTgxMDdcXHU4MTFBXFx1NThCMFxcdXsyMjZGNn1cXHU2QzdGXFx1ezI2NDk4fVxcdXsyNEZCOH1cXHU2NEU3XFx1ezIxNDhBfVxcdTgyMThcXHV7MjE4NUV9XFx1NkE1M1xcdXsyNEE2NX1cXHV7MjRBOTV9XFx1NDQ3QVxcdTgyMjlcXHV7MjBCMER9XFx1ezI2QTUyfVxcdXsyM0Q3RX1cXHU0RkY5XFx1ezIxNEZEfVxcdTg0RTJcXHU4MzYyXFx1ezI2QjBBfVxcdXsyNDlBN31cXHV7MjM1MzB9XFx1ezIxNzczfVxcdXsyM0RGOH1cXHU4MkFBXFx1NjkxQlxcdXsyRjk5NH1cXHU0MURCXCJdLFxuICAgICAgW1wiOGY0MFwiLCBcIlxcdTg1NEJcXHU4MkQwXFx1ODMxQVxcdXsyMEUxNn1cXHV7MjE3QjR9XFx1MzZDMVxcdXsyMzE3RH1cXHV7MjM1NUF9XFx1ODI3QlxcdTgyRTJcXHU4MzE4XFx1ezIzRThCfVxcdXsyNkRBM31cXHV7MjZCMDV9XFx1ezI2Qjk3fVxcdXsyMzVDRX1cXHUzREJGXFx1ODMxRFxcdTU1RUNcXHU4Mzg1XFx1NDUwQlxcdXsyNkRBNX1cXHU4M0FDXFx1ODNDMVxcdTgzRDNcXHUzNDdFXFx1ezI2RUQ0fVxcdTZBNTdcXHU4NTVBXFx1MzQ5NlxcdXsyNkU0Mn1cXHV7MjJFRUZ9XFx1ODQ1OFxcdXsyNUJFNH1cXHU4NDcxXFx1M0REM1xcdTQ0RTRcXHU2QUE3XFx1ODQ0QVxcdXsyM0NCNX1cXHU3OTU4XFx1ODRBOFxcdXsyNkI5Nn1cXHV7MjZFNzd9XFx1ezI2RTQzfVxcdTg0REVcXHU4NDBGXFx1ODM5MVxcdTQ0QTBcXHU4NDkzXFx1ODRFNFxcdXsyNUM5MX1cXHU0MjQwXFx1ezI1Q0MwfVxcdTQ1NDNcXHU4NTM0XFx1NUFGMlxcdXsyNkU5OX1cXHU0NTI3XFx1ODU3M1xcdTQ1MTZcXHU2N0JGXFx1ODYxNlwiXSxcbiAgICAgIFtcIjhmYTFcIiwgXCJcXHV7Mjg2MjV9XFx1ezI4NjNCfVxcdTg1QzFcXHV7MjcwODh9XFx1ODYwMlxcdXsyMTU4Mn1cXHV7MjcwQ0R9XFx1ezJGOUIyfVxcdTQ1NkFcXHU4NjI4XFx1MzY0OFxcdXsyMThBMn1cXHU1M0Y3XFx1ezI3MzlBfVxcdTg2N0VcXHU4NzcxXFx1ezJBMEY4fVxcdTg3RUVcXHV7MjJDMjd9XFx1ODdCMVxcdTg3REFcXHU4ODBGXFx1NTY2MVxcdTg2NkNcXHU2ODU2XFx1NDYwRlxcdTg4NDVcXHU4ODQ2XFx1ezI3NUUwfVxcdXsyM0RCOX1cXHV7Mjc1RTR9XFx1ODg1RVxcdTg4OUNcXHU0NjVCXFx1ODhCNFxcdTg4QjVcXHU2M0MxXFx1ODhDNVxcdTc3NzdcXHV7Mjc3MEZ9XFx1ODk4N1xcdTg5OEFcXHU4OUE2XFx1ODlBOVxcdTg5QTdcXHU4OUJDXFx1ezI4QTI1fVxcdTg5RTdcXHV7Mjc5MjR9XFx1ezI3QUJEfVxcdThBOUNcXHU3NzkzXFx1OTFGRVxcdThBOTBcXHV7MjdBNTl9XFx1N0FFOVxcdXsyN0IzQX1cXHV7MjNGOEZ9XFx1NDcxM1xcdXsyN0IzOH1cXHU3MTdDXFx1OEIwQ1xcdThCMUZcXHV7MjU0MzB9XFx1ezI1NTY1fVxcdThCM0ZcXHU4QjRDXFx1OEI0RFxcdThBQTlcXHV7MjRBN0F9XFx1OEI5MFxcdThCOUJcXHU4QUFGXFx1ezIxNkRGfVxcdTQ2MTVcXHU4ODRGXFx1OEM5QlxcdXsyN0Q1NH1cXHV7MjdEOEZ9XFx1ezJGOUQ0fVxcdTM3MjVcXHV7MjdENTN9XFx1OENENlxcdXsyN0Q5OH1cXHV7MjdEQkR9XFx1OEQxMlxcdThEMDNcXHV7MjE5MTB9XFx1OENEQlxcdTcwNUNcXHU4RDExXFx1ezI0Q0M5fVxcdTNFRDBcXHU4RDc3XCJdLFxuICAgICAgW1wiOTA0MFwiLCBcIlxcdThEQTlcXHV7MjgwMDJ9XFx1ezIxMDE0fVxcdXsyNDk4QX1cXHUzQjdDXFx1ezI4MUJDfVxcdXsyNzEwQ31cXHU3QUU3XFx1OEVBRFxcdThFQjZcXHU4RUMzXFx1OTJENFxcdThGMTlcXHU4RjJEXFx1ezI4MzY1fVxcdXsyODQxMn1cXHU4RkE1XFx1OTMwM1xcdXsyQTI5Rn1cXHV7MjBBNTB9XFx1OEZCM1xcdTQ5MkFcXHV7Mjg5REV9XFx1ezI4NTNEfVxcdXsyM0RCQn1cXHU1RUY4XFx1ezIzMjYyfVxcdThGRjlcXHV7MkEwMTR9XFx1ezI4NkJDfVxcdXsyODUwMX1cXHV7MjIzMjV9XFx1Mzk4MFxcdXsyNkVEN31cXHU5MDM3XFx1ezI4NTNDfVxcdXsyN0FCRX1cXHU5MDYxXFx1ezI4NTZDfVxcdXsyODYwQn1cXHU5MEE4XFx1ezI4NzEzfVxcdTkwQzRcXHV7Mjg2RTZ9XFx1OTBBRVxcdTkwRkRcXHU5MTY3XFx1M0FGMFxcdTkxQTlcXHU5MUM0XFx1N0NBQ1xcdXsyODkzM31cXHV7MjFFODl9XFx1OTIwRVxcdTZDOUZcXHU5MjQxXFx1OTI2MlxcdXsyNTVCOX1cXHU5MkI5XFx1ezI4QUM2fVxcdXsyM0M5Qn1cXHV7MjhCMEN9XFx1ezI1NURCfVwiXSxcbiAgICAgIFtcIjkwYTFcIiwgXCJcXHV7MjBEMzF9XFx1OTMyQ1xcdTkzNkJcXHV7MjhBRTF9XFx1ezI4QkVCfVxcdTcwOEZcXHU1QUMzXFx1ezI4QUUyfVxcdXsyOEFFNX1cXHU0OTY1XFx1OTI0NFxcdXsyOEJFQ31cXHV7MjhDMzl9XFx1ezI4QkZGfVxcdTkzNzNcXHU5NDVCXFx1OEVCQ1xcdTk1ODVcXHU5NUE2XFx1OTQyNlxcdTk1QTBcXHU2RkY2XFx1NDJCOVxcdXsyMjY3QX1cXHV7Mjg2RDh9XFx1ezIxMjdDfVxcdXsyM0UyRX1cXHU0OURGXFx1NkMxQ1xcdTk2N0JcXHU5Njk2XFx1NDE2Q1xcdTk2QTNcXHV7MjZFRDV9XFx1NjFEQVxcdTk2QjZcXHU3OEY1XFx1ezI4QUUwfVxcdTk2QkRcXHU1M0NDXFx1NDlBMVxcdXsyNkNCOH1cXHV7MjAyNzR9XFx1ezI2NDEwfVxcdXsyOTBBRn1cXHV7MjkwRTV9XFx1ezI0QUQxfVxcdXsyMTkxNX1cXHV7MjMzMEF9XFx1OTczMVxcdTg2NDJcXHU5NzM2XFx1NEEwRlxcdTQ1M0RcXHU0NTg1XFx1ezI0QUU5fVxcdTcwNzVcXHU1QjQxXFx1OTcxQlxcdTk3NUNcXHV7MjkxRDV9XFx1OTc1N1xcdTVCNEFcXHV7MjkxRUJ9XFx1OTc1RlxcdTk0MjVcXHU1MEQwXFx1ezIzMEI3fVxcdXsyMzBCQ31cXHU5Nzg5XFx1OTc5RlxcdTk3QjFcXHU5N0JFXFx1OTdDMFxcdTk3RDJcXHU5N0UwXFx1ezI1NDZDfVxcdTk3RUVcXHU3NDFDXFx1ezI5NDMzfVxcdTk3RkZcXHU5N0Y1XFx1ezI5NDFEfVxcdXsyNzk3QX1cXHU0QUQxXFx1OTgzNFxcdTk4MzNcXHU5ODRCXFx1OTg2NlxcdTNCMEVcXHV7MjcxNzV9XFx1M0Q1MVxcdXsyMDYzMH1cXHV7MjQxNUN9XCJdLFxuICAgICAgW1wiOTE0MFwiLCBcIlxcdXsyNTcwNn1cXHU5OENBXFx1OThCN1xcdTk4QzhcXHU5OEM3XFx1NEFGRlxcdXsyNkQyN31cXHV7MjE2RDN9XFx1NTVCMFxcdTk4RTFcXHU5OEU2XFx1OThFQ1xcdTkzNzhcXHU5OTM5XFx1ezI0QTI5fVxcdTRCNzJcXHV7Mjk4NTd9XFx1ezI5OTA1fVxcdTk5RjVcXHU5QTBDXFx1OUEzQlxcdTlBMTBcXHU5QTU4XFx1ezI1NzI1fVxcdTM2QzRcXHV7MjkwQjF9XFx1ezI5QkQ1fVxcdTlBRTBcXHU5QUUyXFx1ezI5QjA1fVxcdTlBRjRcXHU0QzBFXFx1OUIxNFxcdTlCMkRcXHV7Mjg2MDB9XFx1NTAzNFxcdTlCMzRcXHV7MjY5QTh9XFx1MzhDM1xcdXsyMzA3RH1cXHU5QjUwXFx1OUI0MFxcdXsyOUQzRX1cXHU1QTQ1XFx1ezIxODYzfVxcdTlCOEVcXHV7MjQyNEJ9XFx1OUMwMlxcdTlCRkZcXHU5QzBDXFx1ezI5RTY4fVxcdTlERDRcXHV7MjlGQjd9XFx1ezJBMTkyfVxcdXsyQTFBQn1cXHV7MkEwRTF9XFx1ezJBMTIzfVxcdXsyQTFERn1cXHU5RDdFXFx1OUQ4M1xcdXsyQTEzNH1cXHU5RTBFXFx1Njg4OFwiXSxcbiAgICAgIFtcIjkxYTFcIiwgXCJcXHU5REM0XFx1ezIyMTVCfVxcdXsyQTE5M31cXHV7MkEyMjB9XFx1ezIxOTNCfVxcdXsyQTIzM31cXHU5RDM5XFx1ezJBMEI5fVxcdXsyQTJCNH1cXHU5RTkwXFx1OUU5NVxcdTlFOUVcXHU5RUEyXFx1NEQzNFxcdTlFQUFcXHU5RUFGXFx1ezI0MzY0fVxcdTlFQzFcXHUzQjYwXFx1MzlFNVxcdTNEMURcXHU0RjMyXFx1MzdCRVxcdXsyOEMyQn1cXHU5RjAyXFx1OUYwOFxcdTRCOTZcXHU5NDI0XFx1ezI2REEyfVxcdTlGMTdcXHU5RjE2XFx1OUYzOVxcdTU2OUZcXHU1NjhBXFx1OUY0NVxcdTk5QjhcXHV7MjkwOEJ9XFx1OTdGMlxcdTg0N0ZcXHU5RjYyXFx1OUY2OVxcdTdBRENcXHU5RjhFXFx1NzIxNlxcdTRCQkVcXHV7MjQ5NzV9XFx1ezI0OUJCfVxcdTcxNzdcXHV7MjQ5Rjh9XFx1ezI0MzQ4fVxcdXsyNEE1MX1cXHU3MzlFXFx1ezI4QkRBfVxcdXsyMThGQX1cXHU3OTlGXFx1ezI4OTdFfVxcdXsyOEUzNn1cXHU5MzY5XFx1OTNGM1xcdXsyOEE0NH1cXHU5MkVDXFx1OTM4MVxcdTkzQ0JcXHV7Mjg5NkN9XFx1ezI0NEI5fVxcdTcyMTdcXHUzRUVCXFx1Nzc3MlxcdTdBNDNcXHU3MEQwXFx1ezI0NDczfVxcdXsyNDNGOH1cXHU3MTdFXFx1ezIxN0VGfVxcdTcwQTNcXHV7MjE4QkV9XFx1ezIzNTk5fVxcdTNFQzdcXHV7MjE4ODV9XFx1ezI1NDJGfVxcdXsyMTdGOH1cXHUzNzIyXFx1ezIxNkZCfVxcdXsyMTgzOX1cXHUzNkUxXFx1ezIxNzc0fVxcdXsyMThEMX1cXHV7MjVGNEJ9XFx1MzcyM1xcdXsyMTZDMH1cXHU1NzVCXFx1ezI0QTI1fVxcdXsyMTNGRX1cXHV7MjEyQTh9XCJdLFxuICAgICAgW1wiOTI0MFwiLCBcIlxcdXsyMTNDNn1cXHV7MjE0QjZ9XFx1ODUwM1xcdXsyMzZBNn1cXHU4NTAzXFx1ODQ1NVxcdXsyNDk5NH1cXHV7MjcxNjV9XFx1ezIzRTMxfVxcdXsyNTU1Q31cXHV7MjNFRkJ9XFx1ezI3MDUyfVxcdTQ0RjRcXHV7MjM2RUV9XFx1ezI5OTlEfVxcdXsyNkYyNn1cXHU2N0Y5XFx1MzczM1xcdTNDMTVcXHUzREU3XFx1NTg2Q1xcdXsyMTkyMn1cXHU2ODEwXFx1NDA1N1xcdXsyMzczRn1cXHV7MjQwRTF9XFx1ezI0MDhCfVxcdXsyNDEwRn1cXHV7MjZDMjF9XFx1NTRDQlxcdTU2OUVcXHV7MjY2QjF9XFx1NTY5MlxcdXsyMEZERn1cXHV7MjBCQTh9XFx1ezIwRTBEfVxcdTkzQzZcXHV7MjhCMTN9XFx1OTM5Q1xcdTRFRjhcXHU1MTJCXFx1MzgxOVxcdXsyNDQzNn1cXHU0RUJDXFx1ezIwNDY1fVxcdXsyMDM3Rn1cXHU0RjRCXFx1NEY4QVxcdXsyNTY1MX1cXHU1QTY4XFx1ezIwMUFCfVxcdXsyMDNDQn1cXHUzOTk5XFx1ezIwMzBBfVxcdXsyMDQxNH1cXHUzNDM1XFx1NEYyOVxcdXsyMDJDMH1cXHV7MjhFQjN9XFx1ezIwMjc1fVxcdThBREFcXHV7MjAyMEN9XFx1NEU5OFwiXSxcbiAgICAgIFtcIjkyYTFcIiwgXCJcXHU1MENEXFx1NTEwRFxcdTRGQTJcXHU0RjAzXFx1ezI0QTBFfVxcdXsyM0U4QX1cXHU0RjQyXFx1NTAyRVxcdTUwNkNcXHU1MDgxXFx1NEZDQ1xcdTRGRTVcXHU1MDU4XFx1NTBGQ1xcdTUxNTlcXHU1MTVCXFx1NTE1RFxcdTUxNUVcXHU2RTc2XFx1ezIzNTk1fVxcdXsyM0UzOX1cXHV7MjNFQkZ9XFx1NkQ3MlxcdXsyMTg4NH1cXHV7MjNFODl9XFx1NTFBOFxcdTUxQzNcXHV7MjA1RTB9XFx1NDRERFxcdXsyMDRBM31cXHV7MjA0OTJ9XFx1ezIwNDkxfVxcdThEN0FcXHV7MjhBOUN9XFx1ezIwNzBFfVxcdTUyNTlcXHU1MkE0XFx1ezIwODczfVxcdTUyRTFcXHU5MzZFXFx1NDY3QVxcdTcxOENcXHV7MjQzOEN9XFx1ezIwQzIwfVxcdXsyNDlBQ31cXHV7MjEwRTR9XFx1NjlEMVxcdXsyMEUxRH1cXHU3NDc5XFx1M0VERVxcdTc0OTlcXHU3NDE0XFx1NzQ1NlxcdTczOThcXHU0QjhFXFx1ezI0QUJDfVxcdXsyNDA4RH1cXHU1M0QwXFx1MzU4NFxcdTcyMEZcXHV7MjQwQzl9XFx1NTVCNFxcdXsyMDM0NX1cXHU1NENEXFx1ezIwQkM2fVxcdTU3MURcXHU5MjVEXFx1OTZGNFxcdTkzNjZcXHU1N0REXFx1NTc4RFxcdTU3N0ZcXHUzNjNFXFx1NThDQlxcdTVBOTlcXHV7MjhBNDZ9XFx1ezIxNkZBfVxcdXsyMTc2Rn1cXHV7MjE3MTB9XFx1NUEyQ1xcdTU5QjhcXHU5MjhGXFx1NUE3RVxcdTVBQ0ZcXHU1QTEyXFx1ezI1OTQ2fVxcdXsyMTlGM31cXHV7MjE4NjF9XFx1ezI0Mjk1fVxcdTM2RjVcXHU2RDA1XFx1NzQ0M1xcdTVBMjFcXHV7MjVFODN9XCJdLFxuICAgICAgW1wiOTM0MFwiLCBcIlxcdTVBODFcXHV7MjhCRDd9XFx1ezIwNDEzfVxcdTkzRTBcXHU3NDhDXFx1ezIxMzAzfVxcdTcxMDVcXHU0OTcyXFx1OTQwOFxcdXsyODlGQn1cXHU5M0JEXFx1MzdBMFxcdTVDMUVcXHU1QzlFXFx1NUU1RVxcdTVFNDhcXHV7MjE5OTZ9XFx1ezIxOTdDfVxcdXsyM0FFRX1cXHU1RUNEXFx1NUI0RlxcdXsyMTkwM31cXHV7MjE5MDR9XFx1MzcwMVxcdXsyMThBMH1cXHUzNkREXFx1ezIxNkZFfVxcdTM2RDNcXHU4MTJBXFx1ezI4QTQ3fVxcdXsyMURCQX1cXHV7MjM0NzJ9XFx1ezI4OUE4fVxcdTVGMENcXHU1RjBFXFx1ezIxOTI3fVxcdXsyMTdBQn1cXHU1QTZCXFx1ezIxNzNCfVxcdTVCNDRcXHU4NjE0XFx1ezI3NUZEfVxcdTg4NjBcXHU2MDdFXFx1ezIyODYwfVxcdXsyMjYyQn1cXHU1RkRCXFx1M0VCOFxcdXsyMjVBRn1cXHV7MjI1QkV9XFx1ezI5MDg4fVxcdXsyNkY3M31cXHU2MUMwXFx1ezIwMDNFfVxcdXsyMDA0Nn1cXHV7MjI2MUJ9XFx1NjE5OVxcdTYxOThcXHU2MDc1XFx1ezIyQzlCfVxcdXsyMkQwN31cXHV7MjQ2RDR9XFx1ezI5MTREfVwiXSxcbiAgICAgIFtcIjkzYTFcIiwgXCJcXHU2NDcxXFx1ezI0NjY1fVxcdXsyMkI2QX1cXHUzQTI5XFx1ezIyQjIyfVxcdXsyMzQ1MH1cXHV7Mjk4RUF9XFx1ezIyRTc4fVxcdTYzMzdcXHV7MkE0NUJ9XFx1NjRCNlxcdTYzMzFcXHU2M0QxXFx1ezI0OUUzfVxcdXsyMkQ2N31cXHU2MkE0XFx1ezIyQ0ExfVxcdTY0M0JcXHU2NTZCXFx1Njk3MlxcdTNCRjRcXHV7MjMwOEV9XFx1ezIzMkFEfVxcdXsyNDk4OX1cXHV7MjMyQUJ9XFx1NTUwRFxcdXsyMzJFMH1cXHV7MjE4RDl9XFx1ezI5NDNGfVxcdTY2Q0VcXHV7MjMyODl9XFx1ezIzMUIzfVxcdTNBRTBcXHU0MTkwXFx1ezI1NTg0fVxcdXsyOEIyMn1cXHV7MjU1OEZ9XFx1ezIxNkZDfVxcdXsyNTU1Qn1cXHV7MjU0MjV9XFx1NzhFRVxcdXsyMzEwM31cXHV7MjE4MkF9XFx1ezIzMjM0fVxcdTM0NjRcXHV7MjMyMEZ9XFx1ezIzMTgyfVxcdXsyNDJDOX1cXHU2NjhFXFx1ezI2RDI0fVxcdTY2NkJcXHU0QjkzXFx1NjYzMFxcdXsyNzg3MH1cXHV7MjFERUJ9XFx1NjY2M1xcdXsyMzJEMn1cXHV7MjMyRTF9XFx1NjYxRVxcdXsyNTg3Mn1cXHUzOEQxXFx1ezIzODNBfVxcdXsyMzdCQ31cXHUzQjk5XFx1ezIzN0EyfVxcdXsyMzNGRX1cXHU3NEQwXFx1M0I5NlxcdTY3OEZcXHV7MjQ2MkF9XFx1NjhCNlxcdTY4MUVcXHUzQkM0XFx1NkFCRVxcdTM4NjNcXHV7MjM3RDV9XFx1ezI0NDg3fVxcdTZBMzNcXHU2QTUyXFx1NkFDOVxcdTZCMDVcXHV7MjE5MTJ9XFx1NjUxMVxcdTY4OThcXHU2QTRDXFx1M0JEN1xcdTZBN0FcXHU2QjU3XFx1ezIzRkMwfVxcdXsyM0M5QX1cXHU5M0EwXFx1OTJGMlxcdXsyOEJFQX1cXHV7MjhBQ0J9XCJdLFxuICAgICAgW1wiOTQ0MFwiLCBcIlxcdTkyODlcXHV7MjgwMUV9XFx1ezI4OURDfVxcdTk0NjdcXHU2REE1XFx1NkYwQlxcdXsyNDlFQ31cXHU2RDY3XFx1ezIzRjdGfVxcdTNEOEZcXHU2RTA0XFx1ezI0MDNDfVxcdTVBM0RcXHU2RTBBXFx1NTg0N1xcdTZEMjRcXHU3ODQyXFx1NzEzQlxcdXsyNDMxQX1cXHV7MjQyNzZ9XFx1NzBGMVxcdTcyNTBcXHU3Mjg3XFx1NzI5NFxcdXsyNDc4Rn1cXHV7MjQ3MjV9XFx1NTE3OVxcdXsyNEFBNH1cXHV7MjA1RUJ9XFx1NzQ3QVxcdXsyM0VGOH1cXHV7MjM2NUZ9XFx1ezI0QTRBfVxcdXsyNDkxN31cXHV7MjVGRTF9XFx1M0YwNlxcdTNFQjFcXHV7MjRBREZ9XFx1ezI4QzIzfVxcdXsyM0YzNX1cXHU2MEE3XFx1M0VGM1xcdTc0Q0NcXHU3NDNDXFx1OTM4N1xcdTc0MzdcXHU0NDlGXFx1ezI2REVBfVxcdTQ1NTFcXHU3NTgzXFx1M0Y2M1xcdXsyNENEOX1cXHV7MjREMDZ9XFx1M0Y1OFxcdTc1NTVcXHU3NjczXFx1ezJBNUM2fVxcdTNCMTlcXHU3NDY4XFx1ezI4QUNDfVxcdXsyNDlBQn1cXHV7MjQ5OEV9XFx1M0FGQlwiXSxcbiAgICAgIFtcIjk0YTFcIiwgXCJcXHUzRENEXFx1ezI0QTRFfVxcdTNFRkZcXHV7MjQ5QzV9XFx1ezI0OEYzfVxcdTkxRkFcXHU1NzMyXFx1OTM0MlxcdXsyOEFFM31cXHV7MjE4NjR9XFx1NTBERlxcdXsyNTIyMX1cXHV7MjUxRTd9XFx1Nzc3OFxcdXsyMzIzMn1cXHU3NzBFXFx1NzcwRlxcdTc3N0JcXHV7MjQ2OTd9XFx1ezIzNzgxfVxcdTNBNUVcXHV7MjQ4RjB9XFx1NzQzOFxcdTc0OUJcXHUzRUJGXFx1ezI0QUJBfVxcdXsyNEFDN31cXHU0MEM4XFx1ezI0QTk2fVxcdXsyNjFBRX1cXHU5MzA3XFx1ezI1NTgxfVxcdTc4MUVcXHU3ODhEXFx1Nzg4OFxcdTc4RDJcXHU3M0QwXFx1Nzk1OVxcdXsyNzc0MX1cXHV7MjU2RTN9XFx1NDEwRVxcdTc5OUJcXHU4NDk2XFx1NzlBNVxcdTZBMkRcXHV7MjNFRkF9XFx1N0EzQVxcdTc5RjRcXHU0MTZFXFx1ezIxNkU2fVxcdTQxMzJcXHU5MjM1XFx1NzlGMVxcdXsyMEQ0Q31cXHV7MjQ5OEN9XFx1ezIwMjk5fVxcdXsyM0RCQX1cXHV7MjE3NkV9XFx1MzU5N1xcdTU1NkJcXHUzNTcwXFx1MzZBQVxcdXsyMDFENH1cXHV7MjBDMER9XFx1N0FFMlxcdTVBNTlcXHV7MjI2RjV9XFx1ezI1QUFGfVxcdXsyNUE5Q31cXHU1QTBEXFx1ezIwMjVCfVxcdTc4RjBcXHU1QTJBXFx1ezI1QkM2fVxcdTdBRkVcXHU0MUY5XFx1N0M1RFxcdTdDNkRcXHU0MjExXFx1ezI1QkIzfVxcdXsyNUVCQ31cXHV7MjVFQTZ9XFx1N0NDRFxcdXsyNDlGOX1cXHV7MjE3QjB9XFx1N0M4RVxcdTdDN0NcXHU3Q0FFXFx1NkFCMlxcdTdERENcXHU3RTA3XFx1N0REM1xcdTdGNEVcXHV7MjYyNjF9XCJdLFxuICAgICAgW1wiOTU0MFwiLCBcIlxcdXsyNjE1Q31cXHV7MjdCNDh9XFx1N0Q5N1xcdXsyNUU4Mn1cXHU0MjZBXFx1ezI2Qjc1fVxcdXsyMDkxNn1cXHU2N0Q2XFx1ezIwMDRFfVxcdXsyMzVDRn1cXHU1N0M0XFx1ezI2NDEyfVxcdXsyNjNGOH1cXHV7MjQ5NjJ9XFx1N0ZERFxcdTdCMjdcXHV7MjA4MkN9XFx1ezI1QUU5fVxcdXsyNUQ0M31cXHU3QjBDXFx1ezI1RTBFfVxcdTk5RTZcXHU4NjQ1XFx1OUE2M1xcdTZBMUNcXHV7MjM0M0Z9XFx1MzlFMlxcdXsyNDlGN31cXHV7MjY1QUR9XFx1OUExRlxcdXsyNjVBMH1cXHU4NDgwXFx1ezI3MTI3fVxcdXsyNkNEMX1cXHU0NEVBXFx1ODEzN1xcdTQ0MDJcXHU4MEM2XFx1ODEwOVxcdTgxNDJcXHV7MjY3QjR9XFx1OThDM1xcdXsyNkE0Mn1cXHU4MjYyXFx1ODI2NVxcdXsyNkE1MX1cXHU4NDUzXFx1ezI2REE3fVxcdTg2MTBcXHV7MjcyMUJ9XFx1NUE4NlxcdTQxN0ZcXHV7MjE4NDB9XFx1NUIyQlxcdXsyMThBMX1cXHU1QUU0XFx1ezIxOEQ4fVxcdTg2QTBcXHV7MkY5QkN9XFx1ezIzRDhGfVxcdTg4MkRcXHV7Mjc0MjJ9XFx1NUEwMlwiXSxcbiAgICAgIFtcIjk1YTFcIiwgXCJcXHU4ODZFXFx1NEY0NVxcdTg4ODdcXHU4OEJGXFx1ODhFNlxcdTg5NjVcXHU4OTREXFx1ezI1NjgzfVxcdTg5NTRcXHV7Mjc3ODV9XFx1ezI3Nzg0fVxcdXsyOEJGNX1cXHV7MjhCRDl9XFx1ezI4QjlDfVxcdXsyODlGOX1cXHUzRUFEXFx1ODRBM1xcdTQ2RjVcXHU0NkNGXFx1MzdGMlxcdThBM0RcXHU4QTFDXFx1ezI5NDQ4fVxcdTVGNERcXHU5MjJCXFx1ezI0Mjg0fVxcdTY1RDRcXHU3MTI5XFx1NzBDNFxcdXsyMTg0NX1cXHU5RDZEXFx1OEM5RlxcdThDRTlcXHV7MjdEREN9XFx1NTk5QVxcdTc3QzNcXHU1OUYwXFx1NDM2RVxcdTM2RDRcXHU4RTJBXFx1OEVBN1xcdXsyNEMwOX1cXHU4RjMwXFx1OEY0QVxcdTQyRjRcXHU2QzU4XFx1NkZCQlxcdXsyMjMyMX1cXHU0ODlCXFx1NkY3OVxcdTZFOEJcXHV7MjE3REF9XFx1OUJFOVxcdTM2QjVcXHV7MjQ5MkZ9XFx1OTBCQlxcdTkwOTdcXHU1NTcxXFx1NDkwNlxcdTkxQkJcXHU5NDA0XFx1ezI4QTRCfVxcdTQwNjJcXHV7MjhBRkN9XFx1OTQyN1xcdXsyOEMxRH1cXHV7MjhDM0J9XFx1ODRFNVxcdThBMkJcXHU5NTk5XFx1OTVBN1xcdTk1OTdcXHU5NTk2XFx1ezI4RDM0fVxcdTc0NDVcXHUzRUMyXFx1ezI0OEZGfVxcdXsyNEE0Mn1cXHV7MjQzRUF9XFx1M0VFN1xcdXsyMzIyNX1cXHU5NjhGXFx1ezI4RUU3fVxcdXsyOEU2Nn1cXHV7MjhFNjV9XFx1M0VDQ1xcdXsyNDlFRH1cXHV7MjRBNzh9XFx1ezIzRkVFfVxcdTc0MTJcXHU3NDZCXFx1M0VGQ1xcdTk3NDFcXHV7MjkwQjB9XCJdLFxuICAgICAgW1wiOTY0MFwiLCBcIlxcdTY4NDdcXHU0QTFEXFx1ezI5MDkzfVxcdXsyNTdERn1cXHU5NzVEXFx1OTM2OFxcdXsyODk4OX1cXHV7MjhDMjZ9XFx1ezI4QjJGfVxcdXsyNjNCRX1cXHU5MkJBXFx1NUIxMVxcdThCNjlcXHU0OTNDXFx1NzNGOVxcdXsyNDIxQn1cXHU5NzlCXFx1OTc3MVxcdTk5MzhcXHV7MjBGMjZ9XFx1NURDMVxcdXsyOEJDNX1cXHV7MjRBQjJ9XFx1OTgxRlxcdXsyOTREQX1cXHU5MkY2XFx1ezI5NUQ3fVxcdTkxRTVcXHU0NEMwXFx1ezI4QjUwfVxcdXsyNEE2N31cXHV7MjhCNjR9XFx1OThEQ1xcdXsyOEE0NX1cXHUzRjAwXFx1OTIyQVxcdTQ5MjVcXHU4NDE0XFx1OTkzQlxcdTk5NERcXHV7MjdCMDZ9XFx1M0RGRFxcdTk5OUJcXHU0QjZGXFx1OTlBQVxcdTlBNUNcXHV7MjhCNjV9XFx1ezI1OEM4fVxcdTZBOEZcXHU5QTIxXFx1NUFGRVxcdTlBMkZcXHV7Mjk4RjF9XFx1NEI5MFxcdXsyOTk0OH1cXHU5OUJDXFx1NEJCRFxcdTRCOTdcXHU5MzdEXFx1NTg3MlxcdXsyMTMwMn1cXHU1ODIyXFx1ezI0OUI4fVwiXSxcbiAgICAgIFtcIjk2YTFcIiwgXCJcXHV7MjE0RTh9XFx1Nzg0NFxcdXsyMjcxRn1cXHV7MjNEQjh9XFx1NjhDNVxcdTNEN0RcXHU5NDU4XFx1MzkyN1xcdTYxNTBcXHV7MjI3ODF9XFx1ezIyOTZCfVxcdTYxMDdcXHU5QzRGXFx1OUM1M1xcdTlDN0JcXHU5QzM1XFx1OUMxMFxcdTlCN0ZcXHU5QkNGXFx1ezI5RTJEfVxcdTlCOUZcXHV7MkExRjV9XFx1ezJBMEZFfVxcdTlEMjFcXHU0Q0FFXFx1ezI0MTA0fVxcdTlFMThcXHU0Q0IwXFx1OUQwQ1xcdXsyQTFCNH1cXHV7MkEwRUR9XFx1ezJBMEYzfVxcdXsyOTkyRn1cXHU5REE1XFx1ODRCRFxcdXsyNkUxMn1cXHV7MjZGREZ9XFx1ezI2QjgyfVxcdTg1RkNcXHU0NTMzXFx1ezI2REE0fVxcdXsyNkU4NH1cXHV7MjZERjB9XFx1ODQyMFxcdTg1RUVcXHV7MjZFMDB9XFx1ezIzN0Q3fVxcdXsyNjA2NH1cXHU3OUUyXFx1ezIzNTlDfVxcdXsyMzY0MH1cXHU0OTJEXFx1ezI0OURFfVxcdTNENjJcXHU5M0RCXFx1OTJCRVxcdTkzNDhcXHV7MjAyQkZ9XFx1NzhCOVxcdTkyNzdcXHU5NDREXFx1NEZFNFxcdTM0NDBcXHU5MDY0XFx1ezI1NTVEfVxcdTc4M0RcXHU3ODU0XFx1NzhCNlxcdTc4NEJcXHV7MjE3NTd9XFx1ezIzMUM5fVxcdXsyNDk0MX1cXHUzNjlBXFx1NEY3MlxcdTZGREFcXHU2RkQ5XFx1NzAxRVxcdTcwMUVcXHU1NDE0XFx1ezI0MUI1fVxcdTU3QkJcXHU1OEYzXFx1NTc4QVxcdTlEMTZcXHU1N0Q3XFx1NzEzNFxcdTM0QUZcXHV7MjQxQUN9XFx1NzFFQlxcdXsyNkM0MH1cXHV7MjRGOTd9XFx1NUIyOFxcdXsyMTdCNX1cXHV7MjhBNDl9XCJdLFxuICAgICAgW1wiOTc0MFwiLCBcIlxcdTYxMENcXHU1QUNFXFx1NUEwQlxcdTQyQkNcXHV7MjQ0ODh9XFx1MzcyQ1xcdTRCN0JcXHV7Mjg5RkN9XFx1OTNCQlxcdTkzQjhcXHV7MjE4RDZ9XFx1ezIwRjFEfVxcdTg0NzJcXHV7MjZDQzB9XFx1ezIxNDEzfVxcdXsyNDJGQX1cXHV7MjJDMjZ9XFx1ezI0M0MxfVxcdTU5OTRcXHV7MjNEQjd9XFx1ezI2NzQxfVxcdTdEQThcXHV7MjYxNUJ9XFx1ezI2MEE0fVxcdXsyNDlCOX1cXHV7MjQ5OEJ9XFx1ezI4OUZBfVxcdTkyRTVcXHU3M0UyXFx1M0VFOVxcdTc0QjRcXHV7MjhCNjN9XFx1ezIxODlGfVxcdTNFRTFcXHV7MjRBQjN9XFx1NkFEOFxcdTczRjNcXHU3M0ZCXFx1M0VENlxcdXsyNEEzRX1cXHV7MjRBOTR9XFx1ezIxN0Q5fVxcdXsyNEE2Nn1cXHV7MjAzQTd9XFx1ezIxNDI0fVxcdXsyNDlFNX1cXHU3NDQ4XFx1ezI0OTE2fVxcdTcwQTVcXHV7MjQ5NzZ9XFx1OTI4NFxcdTczRTZcXHU5MzVGXFx1ezIwNEZFfVxcdTkzMzFcXHV7MjhBQ0V9XFx1ezI4QTE2fVxcdTkzODZcXHV7MjhCRTd9XFx1ezI1NUQ1fVxcdTQ5MzVcXHV7MjhBODJ9XFx1NzE2QlwiXSxcbiAgICAgIFtcIjk3YTFcIiwgXCJcXHV7MjQ5NDN9XFx1ezIwQ0ZGfVxcdTU2QTRcXHV7MjA2MUF9XFx1ezIwQkVCfVxcdXsyMENCOH1cXHU1NTAyXFx1NzlDNFxcdXsyMTdGQX1cXHU3REZFXFx1ezIxNkMyfVxcdXsyNEE1MH1cXHV7MjE4NTJ9XFx1NDUyRVxcdTk0MDFcXHUzNzBBXFx1ezI4QUMwfVxcdXsyNDlBRH1cXHU1OUIwXFx1ezIxOEJGfVxcdXsyMTg4M31cXHV7Mjc0ODR9XFx1NUFBMVxcdTM2RTJcXHV7MjNENUJ9XFx1MzZCMFxcdTkyNUZcXHU1QTc5XFx1ezI4QTgxfVxcdXsyMTg2Mn1cXHU5Mzc0XFx1M0NDRFxcdXsyMEFCNH1cXHU0QTk2XFx1Mzk4QVxcdTUwRjRcXHUzRDY5XFx1M0Q0Q1xcdXsyMTM5Q31cXHU3MTc1XFx1NDJGQlxcdXsyODIxOH1cXHU2RTBGXFx1ezI5MEU0fVxcdTQ0RUJcXHU2RDU3XFx1ezI3RTRGfVxcdTcwNjdcXHU2Q0FGXFx1M0NENlxcdXsyM0ZFRH1cXHV7MjNFMkR9XFx1NkUwMlxcdTZGMENcXHUzRDZGXFx1ezIwM0Y1fVxcdTc1NTFcXHUzNkJDXFx1MzRDOFxcdTQ2ODBcXHUzRURBXFx1NDg3MVxcdTU5QzRcXHU5MjZFXFx1NDkzRVxcdThGNDFcXHV7MjhDMUN9XFx1ezI2QkMwfVxcdTU4MTJcXHU1N0M4XFx1MzZENlxcdXsyMTQ1Mn1cXHU3MEZFXFx1ezI0MzYyfVxcdXsyNEE3MX1cXHV7MjJGRTN9XFx1ezIxMkIwfVxcdXsyMjNCRH1cXHU2OEI5XFx1Njk2N1xcdXsyMTM5OH1cXHV7MjM0RTV9XFx1ezI3QkY0fVxcdXsyMzZERn1cXHV7MjhBODN9XFx1ezIzN0Q2fVxcdXsyMzNGQX1cXHV7MjRDOUZ9XFx1NkExQVxcdXsyMzZBRH1cXHV7MjZDQjd9XFx1ODQzRVxcdTQ0REZcXHU0NENFXCJdLFxuICAgICAgW1wiOTg0MFwiLCBcIlxcdXsyNkQyNn1cXHV7MjZENTF9XFx1ezI2QzgyfVxcdXsyNkZERX1cXHU2RjE3XFx1ezI3MTA5fVxcdTgzM0RcXHV7MjE3M0F9XFx1ODNFRFxcdXsyNkM4MH1cXHV7MjcwNTN9XFx1ezIxN0RCfVxcdTU5ODlcXHU1QTgyXFx1ezIxN0IzfVxcdTVBNjFcXHU1QTcxXFx1ezIxOTA1fVxcdXsyNDFGQ31cXHUzNzJEXFx1NTlFRlxcdXsyMTczQ31cXHUzNkM3XFx1NzE4RVxcdTkzOTBcXHU2NjlBXFx1ezI0MkE1fVxcdTVBNkVcXHU1QTJCXFx1ezI0MjkzfVxcdTZBMkJcXHV7MjNFRjl9XFx1ezI3NzM2fVxcdXsyNDQ1Qn1cXHV7MjQyQ0F9XFx1NzExRFxcdXsyNDI1OX1cXHV7Mjg5RTF9XFx1NEZCMFxcdXsyNkQyOH1cXHU1Q0MyXFx1ezI0NENFfVxcdXsyN0U0RH1cXHV7MjQzQkR9XFx1NkEwQ1xcdXsyNDI1Nn1cXHV7MjEzMDR9XFx1NzBBNlxcdTcxMzNcXHV7MjQzRTl9XFx1M0RBNVxcdTZDREZcXHV7MkY4MjV9XFx1ezI0QTRGfVxcdTdFNjVcXHU1OUVCXFx1NUQyRlxcdTNERjNcXHU1RjVDXFx1ezI0QTVEfVxcdXsyMTdERn1cXHU3REE0XFx1ODQyNlwiXSxcbiAgICAgIFtcIjk4YTFcIiwgXCJcXHU1NDg1XFx1ezIzQUZBfVxcdXsyMzMwMH1cXHV7MjAyMTR9XFx1NTc3RVxcdXsyMDhENX1cXHV7MjA2MTl9XFx1M0ZFNVxcdXsyMUY5RX1cXHV7MkEyQjZ9XFx1NzAwM1xcdXsyOTE1Qn1cXHU1RDcwXFx1NzM4RlxcdTdDRDNcXHV7MjhBNTl9XFx1ezI5NDIwfVxcdTRGQzhcXHU3RkU3XFx1NzJDRFxcdTczMTBcXHV7MjdBRjR9XFx1NzMzOFxcdTczMzlcXHV7MjU2RjZ9XFx1NzM0MVxcdTczNDhcXHUzRUE5XFx1ezI3QjE4fVxcdTkwNkNcXHU3MUY1XFx1ezI0OEYyfVxcdTczRTFcXHU4MUY2XFx1M0VDQVxcdTc3MENcXHUzRUQxXFx1NkNBMlxcdTU2RkRcXHU3NDE5XFx1NzQxRVxcdTc0MUZcXHUzRUUyXFx1M0VGMFxcdTNFRjRcXHUzRUZBXFx1NzREM1xcdTNGMEVcXHUzRjUzXFx1NzU0MlxcdTc1NkRcXHU3NTcyXFx1NzU4RFxcdTNGN0NcXHU3NUM4XFx1NzVEQ1xcdTNGQzBcXHU3NjREXFx1M0ZEN1xcdTc2NzRcXHUzRkRDXFx1NzY3QVxcdXsyNEY1Q31cXHU3MTg4XFx1NTYyM1xcdTg5ODBcXHU1ODY5XFx1NDAxRFxcdTc3NDNcXHU0MDM5XFx1Njc2MVxcdTQwNDVcXHUzNURCXFx1Nzc5OFxcdTQwNkFcXHU0MDZGXFx1NUM1RVxcdTc3QkVcXHU3N0NCXFx1NThGMlxcdTc4MThcXHU3MEI5XFx1NzgxQ1xcdTQwQThcXHU3ODM5XFx1Nzg0N1xcdTc4NTFcXHU3ODY2XFx1ODQ0OFxcdXsyNTUzNX1cXHU3OTMzXFx1NjgwM1xcdTc5MzJcXHU0MTAzXCJdLFxuICAgICAgW1wiOTk0MFwiLCBcIlxcdTQxMDlcXHU3OTkxXFx1Nzk5OVxcdThGQkJcXHU3QTA2XFx1OEZCQ1xcdTQxNjdcXHU3QTkxXFx1NDFCMlxcdTdBQkNcXHU4Mjc5XFx1NDFDNFxcdTdBQ0ZcXHU3QURCXFx1NDFDRlxcdTRFMjFcXHU3QjYyXFx1N0I2Q1xcdTdCN0JcXHU3QzEyXFx1N0MxQlxcdTQyNjBcXHU0MjdBXFx1N0M3QlxcdTdDOUNcXHU0MjhDXFx1N0NCOFxcdTQyOTRcXHU3Q0VEXFx1OEY5M1xcdTcwQzBcXHV7MjBDQ0Z9XFx1N0RDRlxcdTdERDRcXHU3REQwXFx1N0RGRFxcdTdGQUVcXHU3RkI0XFx1NzI5RlxcdTQzOTdcXHU4MDIwXFx1ODAyNVxcdTdCMzlcXHU4MDJFXFx1ODAzMVxcdTgwNTRcXHUzRENDXFx1NTdCNFxcdTcwQTBcXHU4MEI3XFx1ODBFOVxcdTQzRURcXHU4MTBDXFx1NzMyQVxcdTgxMEVcXHU4MTEyXFx1NzU2MFxcdTgxMTRcXHU0NDAxXFx1M0IzOVxcdTgxNTZcXHU4MTU5XFx1ODE1QVwiXSxcbiAgICAgIFtcIjk5YTFcIiwgXCJcXHU0NDEzXFx1NTgzQVxcdTgxN0NcXHU4MTg0XFx1NDQyNVxcdTgxOTNcXHU0NDJEXFx1ODFBNVxcdTU3RUZcXHU4MUMxXFx1ODFFNFxcdTgyNTRcXHU0NDhGXFx1ODJBNlxcdTgyNzZcXHU4MkNBXFx1ODJEOFxcdTgyRkZcXHU0NEIwXFx1ODM1N1xcdTk2NjlcXHU2OThBXFx1ODQwNVxcdTcwRjVcXHU4NDY0XFx1NjBFM1xcdTg0ODhcXHU0NTA0XFx1ODRCRVxcdTg0RTFcXHU4NEY4XFx1ODUxMFxcdTg1MzhcXHU4NTUyXFx1NDUzQlxcdTg1NkZcXHU4NTcwXFx1ODVFMFxcdTQ1NzdcXHU4NjcyXFx1ODY5MlxcdTg2QjJcXHU4NkVGXFx1OTY0NVxcdTg3OEJcXHU0NjA2XFx1NDYxN1xcdTg4QUVcXHU4OEZGXFx1ODkyNFxcdTg5NDdcXHU4OTkxXFx1ezI3OTY3fVxcdThBMjlcXHU4QTM4XFx1OEE5NFxcdThBQjRcXHU4QzUxXFx1OENENFxcdThDRjJcXHU4RDFDXFx1NDc5OFxcdTU4NUZcXHU4REMzXFx1NDdFRFxcdTRFRUVcXHU4RTNBXFx1NTVEOFxcdTU3NTRcXHU4RTcxXFx1NTVGNVxcdThFQjBcXHU0ODM3XFx1OEVDRVxcdThFRTJcXHU4RUU0XFx1OEVFRFxcdThFRjJcXHU4RkI3XFx1OEZDMVxcdThGQ0FcXHU4RkNDXFx1OTAzM1xcdTk5QzRcXHU0OEFEXFx1OThFMFxcdTkyMTNcXHU0OTFFXFx1OTIyOFxcdTkyNThcXHU5MjZCXFx1OTJCMVxcdTkyQUVcXHU5MkJGXCJdLFxuICAgICAgW1wiOWE0MFwiLCBcIlxcdTkyRTNcXHU5MkVCXFx1OTJGM1xcdTkyRjRcXHU5MkZEXFx1OTM0M1xcdTkzODRcXHU5M0FEXFx1NDk0NVxcdTQ5NTFcXHU5RUJGXFx1OTQxN1xcdTUzMDFcXHU5NDFEXFx1OTQyRFxcdTk0M0VcXHU0OTZBXFx1OTQ1NFxcdTk0NzlcXHU5NTJEXFx1OTVBMlxcdTQ5QTdcXHU5NUY0XFx1OTYzM1xcdTQ5RTVcXHU2N0EwXFx1NEEyNFxcdTk3NDBcXHU0QTM1XFx1OTdCMlxcdTk3QzJcXHU1NjU0XFx1NEFFNFxcdTYwRThcXHU5OEI5XFx1NEIxOVxcdTk4RjFcXHU1ODQ0XFx1OTkwRVxcdTk5MTlcXHU1MUI0XFx1OTkxQ1xcdTk5MzdcXHU5OTQyXFx1OTk1RFxcdTk5NjJcXHU0QjcwXFx1OTlDNVxcdTRCOURcXHU5QTNDXFx1OUIwRlxcdTdBODNcXHU5QjY5XFx1OUI4MVxcdTlCRERcXHU5QkYxXFx1OUJGNFxcdTRDNkRcXHU5QzIwXFx1Mzc2RlxcdXsyMUJDMn1cXHU5RDQ5XFx1OUMzQVwiXSxcbiAgICAgIFtcIjlhYTFcIiwgXCJcXHU5RUZFXFx1NTY1MFxcdTlEOTNcXHU5REJEXFx1OURDMFxcdTlERkNcXHU5NEY2XFx1OEZCNlxcdTlFN0JcXHU5RUFDXFx1OUVCMVxcdTlFQkRcXHU5RUM2XFx1OTREQ1xcdTlFRTJcXHU5RUYxXFx1OUVGOFxcdTdBQzhcXHU5RjQ0XFx1ezIwMDk0fVxcdXsyMDJCN31cXHV7MjAzQTB9XFx1NjkxQVxcdTk0QzNcXHU1OUFDXFx1ezIwNEQ3fVxcdTU4NDBcXHU5NEMxXFx1MzdCOVxcdXsyMDVENX1cXHV7MjA2MTV9XFx1ezIwNjc2fVxcdXsyMTZCQX1cXHU1NzU3XFx1NzE3M1xcdXsyMEFDMn1cXHV7MjBBQ0R9XFx1ezIwQkJGfVxcdTU0NkFcXHV7MkY4M0J9XFx1ezIwQkNCfVxcdTU0OUVcXHV7MjBCRkJ9XFx1ezIwQzNCfVxcdXsyMEM1M31cXHV7MjBDNjV9XFx1ezIwQzdDfVxcdTYwRTdcXHV7MjBDOER9XFx1NTY3QVxcdXsyMENCNX1cXHV7MjBDRER9XFx1ezIwQ0VEfVxcdXsyMEQ2Rn1cXHV7MjBEQjJ9XFx1ezIwREM4fVxcdTY5NTVcXHU5QzJGXFx1ODdBNVxcdXsyMEUwNH1cXHV7MjBFMEV9XFx1ezIwRUQ3fVxcdXsyMEY5MH1cXHV7MjBGMkR9XFx1ezIwRTczfVxcdTVDMjBcXHV7MjBGQkN9XFx1NUUwQlxcdXsyMTA1Q31cXHV7MjEwNEZ9XFx1ezIxMDc2fVxcdTY3MUVcXHV7MjEwN0J9XFx1ezIxMDg4fVxcdXsyMTA5Nn1cXHUzNjQ3XFx1ezIxMEJGfVxcdXsyMTBEM31cXHV7MjExMkZ9XFx1ezIxMTNCfVxcdTUzNjRcXHU4NEFEXFx1ezIxMkUzfVxcdXsyMTM3NX1cXHV7MjEzMzZ9XFx1OEI4MVxcdXsyMTU3N31cXHV7MjE2MTl9XFx1ezIxN0MzfVxcdXsyMTdDN31cXHU0RTc4XFx1NzBCQlxcdXsyMTgyRH1cXHV7MjE5NkF9XCJdLFxuICAgICAgW1wiOWI0MFwiLCBcIlxcdXsyMUEyRH1cXHV7MjFBNDV9XFx1ezIxQzJBfVxcdXsyMUM3MH1cXHV7MjFDQUN9XFx1ezIxRUM4fVxcdTYyQzNcXHV7MjFFRDV9XFx1ezIxRjE1fVxcdTcxOThcXHU2ODU1XFx1ezIyMDQ1fVxcdTY5RTlcXHUzNkM4XFx1ezIyMjdDfVxcdXsyMjNEN31cXHV7MjIzRkF9XFx1ezIyNzJBfVxcdXsyMjg3MX1cXHV7MjI5NEZ9XFx1ODJGRFxcdXsyMjk2N31cXHV7MjI5OTN9XFx1ezIyQUQ1fVxcdTg5QTVcXHV7MjJBRTh9XFx1OEZBMFxcdXsyMkIwRX1cXHU5N0I4XFx1ezIyQjNGfVxcdTk4NDdcXHU5QUJEXFx1ezIyQzRDfVwiXSxcbiAgICAgIFtcIjliNjJcIiwgXCJcXHV7MjJDODh9XFx1ezIyQ0I3fVxcdXsyNUJFOH1cXHV7MjJEMDh9XFx1ezIyRDEyfVxcdXsyMkRCN31cXHV7MjJEOTV9XFx1ezIyRTQyfVxcdXsyMkY3NH1cXHV7MjJGQ0N9XFx1ezIzMDMzfVxcdXsyMzA2Nn1cXHV7MjMzMUZ9XFx1ezIzM0RFfVxcdTVGQjFcXHU2NjQ4XFx1NjZCRlxcdXsyN0E3OX1cXHV7MjM1Njd9XFx1ezIzNUYzfVxcdTcyMDFcXHV7MjQ5QkF9XFx1NzdEN1xcdXsyMzYxQX1cXHV7MjM3MTZ9XFx1N0U4N1xcdXsyMDM0Nn1cXHU1OEI1XFx1NjcwRVwiXSxcbiAgICAgIFtcIjliYTFcIiwgXCJcXHU2OTE4XFx1ezIzQUE3fVxcdXsyNzY1N31cXHV7MjVGRTJ9XFx1ezIzRTExfVxcdXsyM0VCOX1cXHV7Mjc1RkV9XFx1ezIyMDlBfVxcdTQ4RDBcXHU0QUI4XFx1ezI0MTE5fVxcdXsyOEE5QX1cXHV7MjQyRUV9XFx1ezI0MzBEfVxcdXsyNDAzQn1cXHV7MjQzMzR9XFx1ezI0Mzk2fVxcdXsyNEE0NX1cXHV7MjA1Q0F9XFx1NTFEMlxcdXsyMDYxMX1cXHU1OTlGXFx1ezIxRUE4fVxcdTNCQkVcXHV7MjNDRkZ9XFx1ezI0NDA0fVxcdXsyNDRENn1cXHU1Nzg4XFx1ezI0Njc0fVxcdTM5OUJcXHV7MjQ3MkZ9XFx1ezI4NUU4fVxcdXsyOTlDOX1cXHUzNzYyXFx1ezIyMUMzfVxcdThCNUVcXHV7MjhCNEV9XFx1OTlENlxcdXsyNDgxMn1cXHV7MjQ4RkJ9XFx1ezI0QTE1fVxcdTcyMDlcXHV7MjRBQzB9XFx1ezIwQzc4fVxcdTU5NjVcXHV7MjRFQTV9XFx1ezI0Rjg2fVxcdXsyMDc3OX1cXHU4RURBXFx1ezI1MDJDfVxcdTUyOEZcXHU1NzNGXFx1NzE3MVxcdXsyNTI5OX1cXHV7MjU0MTl9XFx1ezIzRjRBfVxcdXsyNEFBN31cXHU1NUJDXFx1ezI1NDQ2fVxcdXsyNTQ2RX1cXHV7MjZCNTJ9XFx1OTFENFxcdTM0NzNcXHV7MjU1M0Z9XFx1ezI3NjMyfVxcdXsyNTU1RX1cXHU0NzE4XFx1ezI1NTYyfVxcdXsyNTU2Nn1cXHV7MjU3Qzd9XFx1ezI0OTNGfVxcdXsyNTg1RH1cXHU1MDY2XFx1MzRGQlxcdXsyMzNDQ31cXHU2MERFXFx1ezI1OTAzfVxcdTQ3N0NcXHV7Mjg5NDh9XFx1ezI1QUFFfVxcdXsyNUI4OX1cXHV7MjVDMDZ9XFx1ezIxRDkwfVxcdTU3QTFcXHU3MTUxXFx1NkZCNlxcdXsyNjEwMn1cXHV7MjdDMTJ9XFx1OTA1NlxcdXsyNjFCMn1cXHV7MjRGOUF9XFx1OEI2MlxcdXsyNjQwMn1cXHV7MjY0NEF9XCJdLFxuICAgICAgW1wiOWM0MFwiLCBcIlxcdTVENUJcXHV7MjZCRjd9XFx1OEYzNlxcdXsyNjQ4NH1cXHV7MjE5MUN9XFx1OEFFQVxcdXsyNDlGNn1cXHV7MjY0ODh9XFx1ezIzRkVGfVxcdXsyNjUxMn1cXHU0QkMwXFx1ezI2NUJGfVxcdXsyNjZCNX1cXHV7MjI3MUJ9XFx1OTQ2NVxcdXsyNTdFMX1cXHU2MTk1XFx1NUEyN1xcdXsyRjhDRH1cXHU0RkJCXFx1NTZCOVxcdXsyNDUyMX1cXHV7MjY2RkN9XFx1NEU2QVxcdXsyNDkzNH1cXHU5NjU2XFx1NkQ4RlxcdXsyNkNCRH1cXHUzNjE4XFx1ODk3N1xcdXsyNjc5OX1cXHV7MjY4NkV9XFx1ezI2NDExfVxcdXsyNjg1RX1cXHU3MURGXFx1ezI2OEM3fVxcdTdCNDJcXHV7MjkwQzB9XFx1ezIwQTExfVxcdXsyNjkyNn1cXHU5MTA0XFx1ezI2OTM5fVxcdTdBNDVcXHU5REYwXFx1ezI2OUZBfVxcdTlBMjZcXHV7MjZBMkR9XFx1MzY1RlxcdXsyNjQ2OX1cXHV7MjAwMjF9XFx1Nzk4M1xcdXsyNkEzNH1cXHV7MjZCNUJ9XFx1NUQyQ1xcdXsyMzUxOX1cXHU4M0NGXFx1ezI2QjlEfVxcdTQ2RDBcXHV7MjZDQTR9XFx1NzUzQlxcdTg4NjVcXHV7MjZEQUV9XFx1NThCNlwiXSxcbiAgICAgIFtcIjljYTFcIiwgXCJcXHUzNzFDXFx1ezIyNThEfVxcdXsyNzA0Qn1cXHV7MjcxQ0R9XFx1M0M1NFxcdXsyNzI4MH1cXHV7MjcyODV9XFx1OTI4MVxcdXsyMjE3QX1cXHV7MjcyOEJ9XFx1OTMzMFxcdXsyNzJFNn1cXHV7MjQ5RDB9XFx1NkMzOVxcdTk0OUZcXHV7Mjc0NTB9XFx1ezIwRUY4fVxcdTg4MjdcXHU4OEY1XFx1ezIyOTI2fVxcdXsyODQ3M31cXHV7MjE3QjF9XFx1NkVCOFxcdXsyNEEyQX1cXHV7MjE4MjB9XFx1MzlBNFxcdTM2QjlcXHU1QzEwXFx1NzlFM1xcdTQ1M0ZcXHU2NkI2XFx1ezI5Q0FEfVxcdXsyOThBNH1cXHU4OTQzXFx1ezI3N0NDfVxcdXsyNzg1OH1cXHU1NkQ2XFx1NDBERlxcdXsyMTYwQX1cXHUzOUExXFx1ezIzNzJGfVxcdXsyODBFOH1cXHV7MjEzQzV9XFx1NzFBRFxcdTgzNjZcXHV7Mjc5RER9XFx1ezI5MUE4fVxcdTVBNjdcXHU0Q0I3XFx1ezI3MEFGfVxcdXsyODlBQn1cXHV7Mjc5RkR9XFx1ezI3QTBBfVxcdXsyN0IwQn1cXHV7MjdENjZ9XFx1ezI0MTdBfVxcdTdCNDNcXHU3OTdFXFx1ezI4MDA5fVxcdTZGQjVcXHV7MkEyREZ9XFx1NkEwM1xcdXsyODMxOH1cXHU1M0EyXFx1ezI2RTA3fVxcdTkzQkZcXHU2ODM2XFx1OTc1RFxcdXsyODE2Rn1cXHV7MjgwMjN9XFx1ezI2OUI1fVxcdXsyMTNFRH1cXHV7MjMyMkZ9XFx1ezI4MDQ4fVxcdTVEODVcXHV7MjhDMzB9XFx1ezI4MDgzfVxcdTU3MTVcXHU5ODIzXFx1ezI4OTQ5fVxcdTVEQUJcXHV7MjQ5ODh9XFx1NjVCRVxcdTY5RDVcXHU1M0QyXFx1ezI0QUE1fVxcdXsyM0Y4MX1cXHUzQzExXFx1NjczNlxcdXsyODA5MH1cXHV7MjgwRjR9XFx1ezI4MTJFfVxcdXsyMUZBMX1cXHV7MjgxNEZ9XCJdLFxuICAgICAgW1wiOWQ0MFwiLCBcIlxcdXsyODE4OX1cXHV7MjgxQUZ9XFx1ezI4MjFBfVxcdXsyODMwNn1cXHV7MjgzMkZ9XFx1ezI4MzhBfVxcdTM1Q0FcXHV7Mjg0Njh9XFx1ezI4NkFBfVxcdTQ4RkFcXHU2M0U2XFx1ezI4OTU2fVxcdTc4MDhcXHU5MjU1XFx1ezI4OUI4fVxcdTQzRjJcXHV7Mjg5RTd9XFx1NDNERlxcdXsyODlFOH1cXHV7MjhCNDZ9XFx1ezI4QkQ0fVxcdTU5RjhcXHV7MjhDMDl9XFx1OEYwQlxcdXsyOEZDNX1cXHV7MjkwRUN9XFx1N0I1MVxcdXsyOTExMH1cXHV7MjkxM0N9XFx1M0RGN1xcdXsyOTE1RX1cXHV7MjRBQ0F9XFx1OEZEMFxcdTcyOEZcXHU1NjhCXFx1ezI5NEU3fVxcdXsyOTVFOX1cXHV7Mjk1QjB9XFx1ezI5NUI4fVxcdXsyOTczMn1cXHV7Mjk4RDF9XFx1ezI5OTQ5fVxcdXsyOTk2QX1cXHV7Mjk5QzN9XFx1ezI5QTI4fVxcdXsyOUIwRX1cXHV7MjlENUF9XFx1ezI5RDlCfVxcdTdFOUZcXHV7MjlFRjh9XFx1ezI5RjIzfVxcdTRDQTRcXHU5NTQ3XFx1ezJBMjkzfVxcdTcxQTJcXHV7MkEyRkZ9XFx1NEQ5MVxcdTkwMTJcXHV7MkE1Q0J9XFx1NEQ5Q1xcdXsyMEM5Q31cXHU4RkJFXFx1NTVDMVwiXSxcbiAgICAgIFtcIjlkYTFcIiwgXCJcXHU4RkJBXFx1ezIyNEIwfVxcdThGQjlcXHV7MjRBOTN9XFx1NDUwOVxcdTdFN0ZcXHU2RjU2XFx1NkFCMVxcdTRFRUFcXHUzNEU0XFx1ezI4QjJDfVxcdXsyNzg5RH1cXHUzNzNBXFx1OEU4MFxcdXsyMTdGNX1cXHV7MjgwMjR9XFx1ezI4QjZDfVxcdXsyOEI5OX1cXHV7MjdBM0V9XFx1ezI2NkFGfVxcdTNERUJcXHV7Mjc2NTV9XFx1ezIzQ0I3fVxcdXsyNTYzNX1cXHV7MjU5NTZ9XFx1NEU5QVxcdXsyNUU4MX1cXHV7MjYyNTh9XFx1NTZCRlxcdXsyMEU2RH1cXHU4RTBFXFx1NUI2RFxcdXsyM0U4OH1cXHV7MjRDOUV9XFx1NjNERVxcdTYyRDBcXHV7MjE3RjZ9XFx1ezIxODdCfVxcdTY1MzBcXHU1NjJEXFx1ezI1QzRBfVxcdTU0MUFcXHV7MjUzMTF9XFx1M0RDNlxcdXsyOUQ5OH1cXHU0QzdEXFx1NTYyMlxcdTU2MUVcXHU3RjQ5XFx1ezI1RUQ4fVxcdTU5NzVcXHV7MjNENDB9XFx1ODc3MFxcdTRFMUNcXHV7MjBGRUF9XFx1ezIwRDQ5fVxcdXsyMzZCQX1cXHU4MTE3XFx1OUQ1RVxcdThEMThcXHU3NjNCXFx1OUM0NVxcdTc2NEVcXHU3N0I5XFx1OTM0NVxcdTU0MzJcXHU4MTQ4XFx1ODJGN1xcdTU2MjVcXHU4MTMyXFx1ODQxOFxcdTgwQkRcXHU1NUVBXFx1Nzk2MlxcdTU2NDNcXHU1NDE2XFx1ezIwRTlEfVxcdTM1Q0VcXHU1NjA1XFx1NTVGMVxcdTY2RjFcXHV7MjgyRTJ9XFx1MzYyRFxcdTc1MzRcXHU1NUYwXFx1NTVCQVxcdTU0OTdcXHU1NTcyXFx1ezIwQzQxfVxcdXsyMEM5Nn1cXHU1RUQwXFx1ezI1MTQ4fVxcdXsyMEU3Nn1cXHV7MjJDNjJ9XCJdLFxuICAgICAgW1wiOWU0MFwiLCBcIlxcdXsyMEVBMn1cXHU5RUFCXFx1N0Q1QVxcdTU1REVcXHV7MjEwNzV9XFx1NjI5RFxcdTk3NkRcXHU1NDk0XFx1OENDRFxcdTcxRjZcXHU5MTc2XFx1NjNGQ1xcdTYzQjlcXHU2M0ZFXFx1NTU2OVxcdXsyMkI0M31cXHU5QzcyXFx1ezIyRUIzfVxcdTUxOUFcXHUzNERGXFx1ezIwREE3fVxcdTUxQTdcXHU1NDREXFx1NTUxRVxcdTU1MTNcXHU3NjY2XFx1OEUyRFxcdXsyNjg4QX1cXHU3NUIxXFx1ODBCNlxcdTg4MDRcXHU4Nzg2XFx1ODhDN1xcdTgxQjZcXHU4NDFDXFx1ezIxMEMxfVxcdTQ0RUNcXHU3MzA0XFx1ezI0NzA2fVxcdTVCOTBcXHU4MzBCXFx1ezI2ODkzfVxcdTU2N0JcXHV7MjI2RjR9XFx1ezI3RDJGfVxcdXsyNDFBM31cXHV7MjdENzN9XFx1ezI2RUQwfVxcdXsyNzJCNn1cXHU5MTcwXFx1ezIxMUQ5fVxcdTkyMDhcXHV7MjNDRkN9XFx1ezJBNkE5fVxcdXsyMEVBQ31cXHV7MjBFRjl9XFx1NzI2NlxcdXsyMUNBMn1cXHU0NzRFXFx1ezI0RkMyfVxcdXsyN0ZGOX1cXHV7MjBGRUJ9XFx1NDBGQVwiXSxcbiAgICAgIFtcIjllYTFcIiwgXCJcXHU5QzVEXFx1NjUxRlxcdXsyMkRBMH1cXHU0OEYzXFx1ezI0N0UwfVxcdXsyOUQ3Q31cXHV7MjBGRUN9XFx1ezIwRTBBfVxcdTYwNjJcXHV7Mjc1QTN9XFx1ezIwRkVEfVwiXSxcbiAgICAgIFtcIjllYWRcIiwgXCJcXHV7MjYwNDh9XFx1ezIxMTg3fVxcdTcxQTNcXHU3RThFXFx1OUQ1MFxcdTRFMUFcXHU0RTA0XFx1MzU3N1xcdTVCMERcXHU2Q0IyXFx1NTM2N1xcdTM2QUNcXHUzOURDXFx1NTM3RFxcdTM2QTVcXHV7MjQ2MTh9XFx1NTg5QVxcdXsyNEI2RX1cXHU4MjJEXFx1NTQ0QlxcdTU3QUFcXHV7MjVBOTV9XFx1ezIwOTc5fVwiXSxcbiAgICAgIFtcIjllYzVcIiwgXCJcXHUzQTUyXFx1ezIyNDY1fVxcdTczNzRcXHV7MjlFQUN9XFx1NEQwOVxcdTlCRURcXHV7MjNDRkV9XFx1ezI5RjMwfVxcdTRDNUJcXHV7MjRGQTl9XFx1ezI5NTlFfVxcdXsyOUZERX1cXHU4NDVDXFx1ezIzREI2fVxcdXsyNzJCMn1cXHV7MjY3QjN9XFx1ezIzNzIwfVxcdTYzMkVcXHU3RDI1XFx1ezIzRUY3fVxcdXsyM0UyQ31cXHUzQTJBXFx1OTAwOFxcdTUyQ0NcXHUzRTc0XFx1MzY3QVxcdTQ1RTlcXHV7MjA0OEV9XFx1NzY0MFxcdTVBRjBcXHV7MjBFQjZ9XFx1Nzg3QVxcdXsyN0YyRX1cXHU1OEE3XFx1NDBCRlxcdTU2N0NcXHU5QjhCXFx1NUQ3NFxcdTc2NTRcXHV7MkE0MzR9XFx1OUU4NVxcdTRDRTFcXHU3NUY5XFx1MzdGQlxcdTYxMTlcXHV7MjMwREF9XFx1ezI0M0YyfVwiXSxcbiAgICAgIFtcIjllZjVcIiwgXCJcXHU1NjVEXFx1ezIxMkE5fVxcdTU3QTdcXHV7MjQ5NjN9XFx1ezI5RTA2fVxcdTUyMzRcXHV7MjcwQUV9XFx1MzVBRFxcdTZDNEFcXHU5RDdDXCJdLFxuICAgICAgW1wiOWY0MFwiLCBcIlxcdTdDNTZcXHU5QjM5XFx1NTdERVxcdXsyMTc2Q31cXHU1QzUzXFx1NjREM1xcdXsyOTREMH1cXHV7MjYzMzV9XFx1ezI3MTY0fVxcdTg2QURcXHV7MjBEMjh9XFx1ezI2RDIyfVxcdXsyNEFFMn1cXHV7MjBENzF9XCJdLFxuICAgICAgW1wiOWY0ZlwiLCBcIlxcdTUxRkVcXHV7MjFGMEZ9XFx1NUQ4RVxcdTk3MDNcXHV7MjFERDF9XFx1OUU4MVxcdTkwNENcXHU3QjFGXFx1OUIwMlxcdTVDRDFcXHU3QkEzXFx1NjI2OFxcdTYzMzVcXHU5QUZGXFx1N0JDRlxcdTlCMkFcXHU3QzdFXFx1OUIyRVxcdTdDNDJcXHU3Qzg2XFx1OUMxNVxcdTdCRkNcXHU5QjA5XFx1OUYxN1xcdTlDMUJcXHV7MjQ5M0V9XFx1OUY1QVxcdTU1NzNcXHU1QkMzXFx1NEZGRFxcdTlFOThcXHU0RkYyXFx1NTI2MFxcdTNFMDZcXHU1MkQxXFx1NTc2N1xcdTUwNTZcXHU1OUI3XFx1NUUxMlxcdTk3QzhcXHU5REFCXFx1OEY1Q1xcdTU0NjlcXHU5N0I0XFx1OTk0MFxcdTk3QkFcXHU1MzJDXFx1NjEzMFwiXSxcbiAgICAgIFtcIjlmYTFcIiwgXCJcXHU2OTJDXFx1NTNEQVxcdTlDMEFcXHU5RDAyXFx1NEMzQlxcdTk2NDFcXHU2OTgwXFx1NTBBNlxcdTc1NDZcXHV7MjE3NkR9XFx1OTlEQVxcdTUyNzNcIl0sXG4gICAgICBbXCI5ZmFlXCIsIFwiXFx1OTE1OVxcdTk2ODFcXHU5MTVDXCJdLFxuICAgICAgW1wiOWZiMlwiLCBcIlxcdTkxNTFcXHV7MjhFOTd9XFx1NjM3RlxcdXsyNkQyM31cXHU2QUNBXFx1NTYxMVxcdTkxOEVcXHU3NTdBXFx1NjI4NVxcdXsyMDNGQ31cXHU3MzRGXFx1N0M3MFxcdXsyNUMyMX1cXHV7MjNDRkR9XCJdLFxuICAgICAgW1wiOWZjMVwiLCBcIlxcdXsyNDkxOX1cXHU3NkQ2XFx1OUI5RFxcdTRFMkFcXHV7MjBDRDR9XFx1ODNCRVxcdTg4NDJcIl0sXG4gICAgICBbXCI5ZmM5XCIsIFwiXFx1NUM0QVxcdTY5QzBcXHU1MEVEXFx1NTc3QVxcdTUyMUZcXHU1REY1XFx1NEVDRVxcdTZDMzFcXHV7MjAxRjJ9XFx1NEYzOVxcdTU0OUNcXHU1NERBXFx1NTI5QVxcdThEODJcXHUzNUZFXFx1NUYwQ1xcdTM1RjNcIl0sXG4gICAgICBbXCI5ZmRiXCIsIFwiXFx1NkI1MlxcdTkxN0NcXHU5RkE1XFx1OUI5N1xcdTk4MkVcXHU5OEI0XFx1OUFCQVxcdTlFQThcXHU5RTg0XFx1NzE3QVxcdTdCMTRcIl0sXG4gICAgICBbXCI5ZmU3XCIsIFwiXFx1NkJGQVxcdTg4MThcXHU3Rjc4XCJdLFxuICAgICAgW1wiOWZlYlwiLCBcIlxcdTU2MjBcXHV7MkE2NEF9XFx1OEU3N1xcdTlGNTNcIl0sXG4gICAgICBbXCI5ZmYwXCIsIFwiXFx1OERENFxcdThFNEZcXHU5RTFDXFx1OEUwMVxcdTYyODJcXHV7MjgzN0R9XFx1OEUyOFxcdThFNzVcXHU3QUQzXFx1ezI0QTc3fVxcdTdBM0VcXHU3OEQ4XFx1NkNFQVxcdThBNjdcXHU3NjA3XCJdLFxuICAgICAgW1wiYTA0MFwiLCBcIlxcdXsyOEE1QX1cXHU5RjI2XFx1NkNDRVxcdTg3RDZcXHU3NUMzXFx1ezJBMkIyfVxcdTc4NTNcXHV7MkY4NDB9XFx1OEQwQ1xcdTcyRTJcXHU3MzcxXFx1OEIyRFxcdTczMDJcXHU3NEYxXFx1OENFQlxcdXsyNEFCQn1cXHU4NjJGXFx1NUZCQVxcdTg4QTBcXHU0NEI3XCJdLFxuICAgICAgW1wiYTA1NVwiLCBcIlxcdXsyMTgzQn1cXHV7MjZFMDV9XCJdLFxuICAgICAgW1wiYTA1OFwiLCBcIlxcdThBN0VcXHV7MjI1MUJ9XCJdLFxuICAgICAgW1wiYTA1YlwiLCBcIlxcdTYwRkRcXHU3NjY3XFx1OUFEN1xcdTlENDRcXHU5MzZFXFx1OUI4RlxcdTg3RjVcIl0sXG4gICAgICBbXCJhMDYzXCIsIFwiXFx1ODgwRlxcdThDRjdcXHU3MzJDXFx1OTcyMVxcdTlCQjBcXHUzNUQ2XFx1NzJCMlxcdTRDMDdcXHU3QzUxXFx1OTk0QVxcdXsyNjE1OX1cXHU2MTU5XFx1NEMwNFxcdTlFOTZcXHU2MTdEXCJdLFxuICAgICAgW1wiYTA3M1wiLCBcIlxcdTU3NUZcXHU2MTZGXFx1NjJBNlxcdTYyMzlcXHU2MkNFXFx1M0E1Q1xcdTYxRTJcXHU1M0FBXFx1ezIzM0Y1fVxcdTYzNjRcXHU2ODAyXFx1MzVEMlwiXSxcbiAgICAgIFtcImEwYTFcIiwgXCJcXHU1RDU3XFx1ezI4QkMyfVxcdThGREFcXHV7MjhFMzl9XCJdLFxuICAgICAgW1wiYTBhNlwiLCBcIlxcdTUwRDlcXHV7MjFENDZ9XFx1NzkwNlxcdTUzMzJcXHU5NjM4XFx1ezIwRjNCfVxcdTQwNjVcIl0sXG4gICAgICBbXCJhMGFlXCIsIFwiXFx1NzdGRVwiXSxcbiAgICAgIFtcImEwYjBcIiwgXCJcXHU3Q0MyXFx1ezI1RjFBfVxcdTdDREFcXHU3QTJEXFx1ODA2NlxcdTgwNjNcXHU3RDREXFx1NzUwNVxcdTc0RjJcXHU4OTk0XFx1ODIxQVxcdTY3MENcXHU4MDYyXFx1ezI3NDg2fVxcdTgwNUJcXHU3NEYwXFx1ODEwM1xcdTc3MjRcXHU4OTg5XFx1ezI2N0NDfVxcdTc1NTNcXHV7MjZFRDF9XFx1ODdBOVxcdTg3Q0VcXHU4MUM4XFx1ODc4Q1xcdThBNDlcXHU4Q0FEXFx1OEI0M1xcdTc3MkJcXHU3NEY4XFx1ODREQVxcdTM2MzVcXHU2OUIyXFx1OERBNlwiXSxcbiAgICAgIFtcImEwZDRcIiwgXCJcXHU4OUE5XFx1NzQ2OFxcdTZEQjlcXHU4N0MxXFx1ezI0MDExfVxcdTc0RTdcXHUzRERCXFx1NzE3NlxcdTYwQTRcXHU2MTlDXFx1M0NEMVxcdTcxNjJcXHU2MDc3XCJdLFxuICAgICAgW1wiYTBlMlwiLCBcIlxcdTdGNzFcXHV7MjhCMkR9XFx1NzI1MFxcdTYwRTlcXHU0QjdFXFx1NTIyMFxcdTNDMThcXHV7MjNDQzd9XFx1ezI1RUQ3fVxcdXsyNzY1Nn1cXHV7MjU1MzF9XFx1ezIxOTQ0fVxcdXsyMTJGRX1cXHV7Mjk5MDN9XFx1ezI2RERDfVxcdXsyNzBBRH1cXHU1Q0MxXFx1ezI2MUFEfVxcdXsyOEEwRn1cXHV7MjM2Nzd9XFx1ezIwMEVFfVxcdXsyNjg0Nn1cXHV7MjRGMEV9XFx1NDU2MlxcdTVCMUZcXHV7MjYzNEN9XFx1OUY1MFxcdTlFQTZcXHV7MjYyNkJ9XCJdLFxuICAgICAgW1wiYTNjMFwiLCBcIlxcdTI0MDBcIiwgMzEsIFwiXFx1MjQyMVwiXSxcbiAgICAgIFtcImM2YTFcIiwgXCJcXHUyNDYwXCIsIDksIFwiXFx1MjQ3NFwiLCA5LCBcIlxcdTIxNzBcIiwgOSwgXCJcXHU0RTM2XFx1NEUzRlxcdTRFODVcXHU0RUEwXFx1NTE4MlxcdTUxOTZcXHU1MUFCXFx1NTJGOVxcdTUzMzhcXHU1MzY5XFx1NTNCNlxcdTU5MEFcXHU1QjgwXFx1NUREQlxcdTJGMzNcXHU1RTdGXFx1NUVGNFxcdTVGNTBcXHU1RjYxXFx1NjUzNFxcdTY1RTBcXHU3NTkyXFx1NzY3NlxcdThGQjVcXHU5NkI2XFx4QThcXHUwMkM2XFx1MzBGRFxcdTMwRkVcXHUzMDlEXFx1MzA5RVxcdTMwMDNcXHU0RUREXFx1MzAwNVxcdTMwMDZcXHUzMDA3XFx1MzBGQ1xcdUZGM0JcXHVGRjNEXFx1MjczRFxcdTMwNDFcIiwgMjNdLFxuICAgICAgW1wiYzc0MFwiLCBcIlxcdTMwNTlcIiwgNTgsIFwiXFx1MzBBMVxcdTMwQTJcXHUzMEEzXFx1MzBBNFwiXSxcbiAgICAgIFtcImM3YTFcIiwgXCJcXHUzMEE1XCIsIDgxLCBcIlxcdTA0MTBcIiwgNSwgXCJcXHUwNDAxXFx1MDQxNlwiLCA0XSxcbiAgICAgIFtcImM4NDBcIiwgXCJcXHUwNDFCXCIsIDI2LCBcIlxcdTA0NTFcXHUwNDM2XCIsIDI1LCBcIlxcdTIxRTdcXHUyMUI4XFx1MjFCOVxcdTMxQ0ZcXHV7MjAwQ0N9XFx1NEU1QVxcdXsyMDA4QX1cXHU1MjAyXFx1NDQ5MVwiXSxcbiAgICAgIFtcImM4YTFcIiwgXCJcXHU5RkIwXFx1NTE4OFxcdTlGQjFcXHV7Mjc2MDd9XCJdLFxuICAgICAgW1wiYzhjZFwiLCBcIlxcdUZGRTJcXHVGRkU0XFx1RkYwN1xcdUZGMDJcXHUzMjMxXFx1MjExNlxcdTIxMjFcXHUzMDlCXFx1MzA5Q1xcdTJFODBcXHUyRTg0XFx1MkU4NlxcdTJFODdcXHUyRTg4XFx1MkU4QVxcdTJFOENcXHUyRThEXFx1MkU5NVxcdTJFOUNcXHUyRTlEXFx1MkVBNVxcdTJFQTdcXHUyRUFBXFx1MkVBQ1xcdTJFQUVcXHUyRUI2XFx1MkVCQ1xcdTJFQkVcXHUyRUM2XFx1MkVDQVxcdTJFQ0NcXHUyRUNEXFx1MkVDRlxcdTJFRDZcXHUyRUQ3XFx1MkVERVxcdTJFRTNcIl0sXG4gICAgICBbXCJjOGY1XCIsIFwiXFx1MDI4M1xcdTAyNTBcXHUwMjVCXFx1MDI1NFxcdTAyNzVcXHUwMTUzXFx4RjhcXHUwMTRCXFx1MDI4QVxcdTAyNkFcIl0sXG4gICAgICBbXCJmOWZlXCIsIFwiXFx1RkZFRFwiXSxcbiAgICAgIFtcImZhNDBcIiwgXCJcXHV7MjA1NDd9XFx1OTJEQlxcdXsyMDVERn1cXHV7MjNGQzV9XFx1ODU0Q1xcdTQyQjVcXHU3M0VGXFx1NTFCNVxcdTM2NDlcXHV7MjQ5NDJ9XFx1ezI4OUU0fVxcdTkzNDRcXHV7MjE5REJ9XFx1ODJFRVxcdXsyM0NDOH1cXHU3ODNDXFx1Njc0NFxcdTYyREZcXHV7MjQ5MzN9XFx1ezI4OUFBfVxcdXsyMDJBMH1cXHV7MjZCQjN9XFx1ezIxMzA1fVxcdTRGQUJcXHV7MjI0RUR9XFx1NTAwOFxcdXsyNkQyOX1cXHV7MjdBODR9XFx1ezIzNjAwfVxcdXsyNEFCMX1cXHV7MjI1MTN9XFx1NTAyOVxcdXsyMDM3RX1cXHU1RkE0XFx1ezIwMzgwfVxcdXsyMDM0N31cXHU2RURCXFx1ezIwNDFGfVxcdTUwN0RcXHU1MTAxXFx1MzQ3QVxcdTUxMEVcXHU5ODZDXFx1Mzc0M1xcdTg0MTZcXHV7MjQ5QTR9XFx1ezIwNDg3fVxcdTUxNjBcXHV7MjMzQjR9XFx1NTE2QVxcdXsyMEJGRn1cXHV7MjIwRkN9XFx1ezIwMkU1fVxcdXsyMjUzMH1cXHV7MjA1OEV9XFx1ezIzMjMzfVxcdXsyMTk4M31cXHU1QjgyXFx1ODc3RFxcdXsyMDVCM31cXHV7MjNDOTl9XFx1NTFCMlxcdTUxQjhcIl0sXG4gICAgICBbXCJmYWExXCIsIFwiXFx1OUQzNFxcdTUxQzlcXHU1MUNGXFx1NTFEMVxcdTNDRENcXHU1MUQzXFx1ezI0QUE2fVxcdTUxQjNcXHU1MUUyXFx1NTM0MlxcdTUxRURcXHU4M0NEXFx1NjkzRVxcdXsyMzcyRH1cXHU1RjdCXFx1NTIwQlxcdTUyMjZcXHU1MjNDXFx1NTJCNVxcdTUyNTdcXHU1Mjk0XFx1NTJCOVxcdTUyQzVcXHU3QzE1XFx1ODU0MlxcdTUyRTBcXHU4NjBEXFx1ezI2QjEzfVxcdTUzMDVcXHV7MjhBREV9XFx1NTU0OVxcdTZFRDlcXHV7MjNGODB9XFx1ezIwOTU0fVxcdXsyM0ZFQ31cXHU1MzMzXFx1NTM0NFxcdXsyMEJFMn1cXHU2Q0NCXFx1ezIxNzI2fVxcdTY4MUJcXHU3M0Q1XFx1NjA0QVxcdTNFQUFcXHUzOENDXFx1ezIxNkU4fVxcdTcxRERcXHU0NEEyXFx1NTM2RFxcdTUzNzRcXHV7Mjg2QUJ9XFx1NTM3RVxcdTUzN0ZcXHV7MjE1OTZ9XFx1ezIxNjEzfVxcdTc3RTZcXHU1MzkzXFx1ezI4QTlCfVxcdTUzQTBcXHU1M0FCXFx1NTNBRVxcdTczQTdcXHV7MjU3NzJ9XFx1M0Y1OVxcdTczOUNcXHU1M0MxXFx1NTNDNVxcdTZDNDlcXHU0RTQ5XFx1NTdGRVxcdTUzRDlcXHUzQUFCXFx1ezIwQjhGfVxcdTUzRTBcXHV7MjNGRUJ9XFx1ezIyREEzfVxcdTUzRjZcXHV7MjBDNzd9XFx1NTQxM1xcdTcwNzlcXHU1NTJCXFx1NjY1N1xcdTZENUJcXHU1NDZEXFx1ezI2QjUzfVxcdXsyMEQ3NH1cXHU1NTVEXFx1NTQ4RlxcdTU0QTRcXHU0N0E2XFx1ezIxNzBEfVxcdXsyMEVERH1cXHUzREI0XFx1ezIwRDREfVwiXSxcbiAgICAgIFtcImZiNDBcIiwgXCJcXHV7Mjg5QkN9XFx1ezIyNjk4fVxcdTU1NDdcXHU0Q0VEXFx1NTQyRlxcdTc0MTdcXHU1NTg2XFx1NTVBOVxcdTU2MDVcXHV7MjE4RDd9XFx1ezI0MDNBfVxcdTQ1NTJcXHV7MjQ0MzV9XFx1NjZCM1xcdXsyMTBCNH1cXHU1NjM3XFx1NjZDRFxcdXsyMzI4QX1cXHU2NkE0XFx1NjZBRFxcdTU2NERcXHU1NjRGXFx1NzhGMVxcdTU2RjFcXHU5Nzg3XFx1NTNGRVxcdTU3MDBcXHU1NkVGXFx1NTZFRFxcdXsyOEI2Nn1cXHUzNjIzXFx1ezIxMjRGfVxcdTU3NDZcXHV7MjQxQTV9XFx1NkM2RVxcdTcwOEJcXHU1NzQyXFx1MzZCMVxcdXsyNkM3RX1cXHU1N0U2XFx1ezIxNDE2fVxcdTU4MDNcXHV7MjE0NTR9XFx1ezI0MzYzfVxcdTU4MjZcXHV7MjRCRjV9XFx1NTg1Q1xcdTU4QUFcXHUzNTYxXFx1NThFMFxcdTU4RENcXHV7MjEyM0N9XFx1NThGQlxcdTVCRkZcXHU1NzQzXFx1ezJBMTUwfVxcdXsyNDI3OH1cXHU5M0QzXFx1MzVBMVxcdTU5MUZcXHU2OEE2XFx1MzZDM1xcdTZFNTlcIl0sXG4gICAgICBbXCJmYmExXCIsIFwiXFx1ezIxNjNFfVxcdTVBMjRcXHU1NTUzXFx1ezIxNjkyfVxcdTg1MDVcXHU1OUM5XFx1ezIwRDRFfVxcdXsyNkM4MX1cXHV7MjZEMkF9XFx1ezIxN0RDfVxcdTU5RDlcXHV7MjE3RkJ9XFx1ezIxN0IyfVxcdXsyNkRBNn1cXHU2RDcxXFx1ezIxODI4fVxcdXsyMTZENX1cXHU1OUY5XFx1ezI2RTQ1fVxcdTVBQUJcXHU1QTYzXFx1MzZFNlxcdXsyNDlBOX1cXHU1QTc3XFx1MzcwOFxcdTVBOTZcXHU3NDY1XFx1NUFEM1xcdXsyNkZBMX1cXHV7MjI1NTR9XFx1M0Q4NVxcdXsyMTkxMX1cXHUzNzMyXFx1ezIxNkI4fVxcdTVFODNcXHU1MkQwXFx1NUI3NlxcdTY1ODhcXHU1QjdDXFx1ezI3QTBFfVxcdTQwMDRcXHU0ODVEXFx1ezIwMjA0fVxcdTVCRDVcXHU2MTYwXFx1ezIxQTM0fVxcdXsyNTlDQ31cXHV7MjA1QTV9XFx1NUJGM1xcdTVCOURcXHU0RDEwXFx1NUMwNVxcdXsyMUI0NH1cXHU1QzEzXFx1NzNDRVxcdTVDMTRcXHV7MjFDQTV9XFx1ezI2QjI4fVxcdTVDNDlcXHU0OEREXFx1NUM4NVxcdTVDRTlcXHU1Q0VGXFx1NUQ4QlxcdXsyMURGOX1cXHV7MjFFMzd9XFx1NUQxMFxcdTVEMThcXHU1RDQ2XFx1ezIxRUE0fVxcdTVDQkFcXHU1REQ3XFx1ODJGQ1xcdTM4MkRcXHV7MjQ5MDF9XFx1ezIyMDQ5fVxcdXsyMjE3M31cXHU4Mjg3XFx1MzgzNlxcdTNCQzJcXHU1RTJFXFx1NkE4QVxcdTVFNzVcXHU1RTdBXFx1ezI0NEJDfVxcdXsyMENEM31cXHU1M0E2XFx1NEVCN1xcdTVFRDBcXHU1M0E4XFx1ezIxNzcxfVxcdTVFMDlcXHU1RUY0XFx1ezI4NDgyfVwiXSxcbiAgICAgIFtcImZjNDBcIiwgXCJcXHU1RUY5XFx1NUVGQlxcdTM4QTBcXHU1RUZDXFx1NjgzRVxcdTk0MUJcXHU1RjBEXFx1ezIwMUMxfVxcdXsyRjg5NH1cXHUzQURFXFx1NDhBRVxcdXsyMTMzQX1cXHU1RjNBXFx1ezI2ODg4fVxcdXsyMjNEMH1cXHU1RjU4XFx1ezIyNDcxfVxcdTVGNjNcXHU5N0JEXFx1ezI2RTZFfVxcdTVGNzJcXHU5MzQwXFx1ezI4QTM2fVxcdTVGQTdcXHU1REI2XFx1M0Q1RlxcdXsyNTI1MH1cXHV7MjFGNkF9XFx1ezI3MEY4fVxcdXsyMjY2OH1cXHU5MUQ2XFx1ezIwMjlFfVxcdXsyOEEyOX1cXHU2MDMxXFx1NjY4NVxcdXsyMTg3N31cXHUzOTYzXFx1M0RDN1xcdTM2MzlcXHU1NzkwXFx1ezIyN0I0fVxcdTc5NzFcXHUzRTQwXFx1NjA5RVxcdTYwQTRcXHU2MEIzXFx1ezI0OTgyfVxcdXsyNDk4Rn1cXHV7MjdBNTN9XFx1NzRBNFxcdTUwRTFcXHU1QUEwXFx1NjE2NFxcdTg0MjRcXHU2MTQyXFx1ezJGOEE2fVxcdXsyNkVEMn1cXHU2MTgxXFx1NTFGNFxcdXsyMDY1Nn1cXHU2MTg3XFx1NUJBQVxcdXsyM0ZCN31cIl0sXG4gICAgICBbXCJmY2ExXCIsIFwiXFx1ezIyODVGfVxcdTYxRDNcXHV7MjhCOUR9XFx1ezI5OTVEfVxcdTYxRDBcXHUzOTMyXFx1ezIyOTgwfVxcdXsyMjhDMX1cXHU2MDIzXFx1NjE1Q1xcdTY1MUVcXHU2MzhCXFx1ezIwMTE4fVxcdTYyQzVcXHV7MjE3NzB9XFx1NjJENVxcdXsyMkUwRH1cXHU2MzZDXFx1ezI0OURGfVxcdTNBMTdcXHU2NDM4XFx1NjNGOFxcdXsyMTM4RX1cXHV7MjE3RkN9XFx1NjQ5MFxcdTZGOEFcXHV7MjJFMzZ9XFx1OTgxNFxcdXsyNDA4Q31cXHV7MjU3MUR9XFx1NjRFMVxcdTY0RTVcXHU5NDdCXFx1M0E2NlxcdTY0M0FcXHUzQTU3XFx1NjU0RFxcdTZGMTZcXHV7MjRBMjh9XFx1ezI0QTIzfVxcdTY1ODVcXHU2NTZEXFx1NjU1RlxcdXsyMzA3RX1cXHU2NUI1XFx1ezI0OTQwfVxcdTRCMzdcXHU2NUQxXFx1NDBEOFxcdXsyMTgyOX1cXHU2NUUwXFx1NjVFM1xcdTVGREZcXHV7MjM0MDB9XFx1NjYxOFxcdXsyMzFGN31cXHV7MjMxRjh9XFx1NjY0NFxcdXsyMzFBNH1cXHV7MjMxQTV9XFx1NjY0QlxcdXsyMEU3NX1cXHU2NjY3XFx1ezI1MUU2fVxcdTY2NzNcXHU2Njc0XFx1ezIxRTNEfVxcdXsyMzIzMX1cXHV7Mjg1RjR9XFx1ezIzMUM4fVxcdXsyNTMxM31cXHU3N0M1XFx1ezIyOEY3fVxcdTk5QTRcXHU2NzAyXFx1ezI0MzlDfVxcdXsyNEEyMX1cXHUzQjJCXFx1NjlGQVxcdXsyMzdDMn1cXHU2NzVFXFx1Njc2N1xcdTY3NjJcXHV7MjQxQ0R9XFx1ezI5MEVEfVxcdTY3RDdcXHU0NEU5XFx1NjgyMlxcdTZFNTBcXHU5MjNDXFx1NjgwMVxcdXsyMzNFNn1cXHV7MjZEQTB9XFx1Njg1RFwiXSxcbiAgICAgIFtcImZkNDBcIiwgXCJcXHV7MjM0NkZ9XFx1NjlFMVxcdTZBMEJcXHV7MjhBREZ9XFx1Njk3M1xcdTY4QzNcXHV7MjM1Q0R9XFx1NjkwMVxcdTY5MDBcXHUzRDMyXFx1M0EwMVxcdXsyMzYzQ31cXHUzQjgwXFx1NjdBQ1xcdTY5NjFcXHV7MjhBNEF9XFx1NDJGQ1xcdTY5MzZcXHU2OTk4XFx1M0JBMVxcdXsyMDNDOX1cXHU4MzYzXFx1NTA5MFxcdTY5RjlcXHV7MjM2NTl9XFx1ezIyMTJBfVxcdTZBNDVcXHV7MjM3MDN9XFx1NkE5RFxcdTNCRjNcXHU2N0IxXFx1NkFDOFxcdXsyOTE5Q31cXHUzQzBEXFx1NkIxRFxcdXsyMDkyM31cXHU2MERFXFx1NkIzNVxcdTZCNzRcXHV7MjI3Q0R9XFx1NkVCNVxcdXsyM0FEQn1cXHV7MjAzQjV9XFx1ezIxOTU4fVxcdTM3NDBcXHU1NDIxXFx1ezIzQjVBfVxcdTZCRTFcXHV7MjNFRkN9XFx1NkJEQ1xcdTZDMzdcXHV7MjI0OEJ9XFx1ezI0OEYxfVxcdXsyNkI1MX1cXHU2QzVBXFx1ODIyNlxcdTZDNzlcXHV7MjNEQkN9XFx1NDRDNVxcdXsyM0RCRH1cXHV7MjQxQTR9XFx1ezI0OTBDfVxcdXsyNDkwMH1cIl0sXG4gICAgICBbXCJmZGExXCIsIFwiXFx1ezIzQ0M5fVxcdTM2RTVcXHUzQ0VCXFx1ezIwRDMyfVxcdTlCODNcXHV7MjMxRjl9XFx1ezIyNDkxfVxcdTdGOEZcXHU2ODM3XFx1ezI2RDI1fVxcdXsyNkRBMX1cXHV7MjZERUJ9XFx1NkQ5NlxcdTZENUNcXHU2RTdDXFx1NkYwNFxcdXsyNDk3Rn1cXHV7MjQwODV9XFx1ezI2RTcyfVxcdTg1MzNcXHV7MjZGNzR9XFx1NTFDN1xcdTZDOUNcXHU2RTFEXFx1ODQyRVxcdXsyOEIyMX1cXHU2RTJGXFx1ezIzRTJGfVxcdTc0NTNcXHV7MjNGODJ9XFx1NzlDQ1xcdTZFNEZcXHU1QTkxXFx1ezIzMDRCfVxcdTZGRjhcXHUzNzBEXFx1NkY5RFxcdXsyM0UzMH1cXHU2RUZBXFx1ezIxNDk3fVxcdXsyNDAzRH1cXHU0NTU1XFx1OTNGMFxcdTZGNDRcXHU2RjVDXFx1M0Q0RVxcdTZGNzRcXHV7MjkxNzB9XFx1M0QzQlxcdTZGOUZcXHV7MjQxNDR9XFx1NkZEM1xcdXsyNDA5MX1cXHV7MjQxNTV9XFx1ezI0MDM5fVxcdXsyM0ZGMH1cXHV7MjNGQjR9XFx1ezI0MTNGfVxcdTUxREZcXHV7MjQxNTZ9XFx1ezI0MTU3fVxcdXsyNDE0MH1cXHV7MjYxRER9XFx1NzA0QlxcdTcwN0VcXHU3MEE3XFx1NzA4MVxcdTcwQ0NcXHU3MEQ1XFx1NzBENlxcdTcwREZcXHU0MTA0XFx1M0RFOFxcdTcxQjRcXHU3MTk2XFx1ezI0Mjc3fVxcdTcxMkJcXHU3MTQ1XFx1NUE4OFxcdTcxNEFcXHU3MTZFXFx1NUM5Q1xcdXsyNDM2NX1cXHU3MTRGXFx1OTM2MlxcdXsyNDJDMX1cXHU3MTJDXFx1ezI0NDVBfVxcdXsyNEEyN31cXHV7MjRBMjJ9XFx1NzFCQVxcdXsyOEJFOH1cXHU3MEJEXFx1NzIwRVwiXSxcbiAgICAgIFtcImZlNDBcIiwgXCJcXHU5NDQyXFx1NzIxNVxcdTU5MTFcXHU5NDQzXFx1NzIyNFxcdTkzNDFcXHV7MjU2MDV9XFx1NzIyRVxcdTcyNDBcXHV7MjQ5NzR9XFx1NjhCRFxcdTcyNTVcXHU3MjU3XFx1M0U1NVxcdXsyMzA0NH1cXHU2ODBEXFx1NkYzRFxcdTcyODJcXHU3MzJBXFx1NzMyQlxcdXsyNDgyM31cXHV7Mjg4MkJ9XFx1NDhFRFxcdXsyODgwNH1cXHU3MzI4XFx1NzMyRVxcdTczQ0ZcXHU3M0FBXFx1ezIwQzNBfVxcdXsyNkEyRX1cXHU3M0M5XFx1NzQ0OVxcdXsyNDFFMn1cXHV7MjE2RTd9XFx1ezI0QTI0fVxcdTY2MjNcXHUzNkM1XFx1ezI0OUI3fVxcdXsyNDk4RH1cXHV7MjQ5RkJ9XFx1NzNGN1xcdTc0MTVcXHU2OTAzXFx1ezI0QTI2fVxcdTc0MzlcXHV7MjA1QzN9XFx1M0VEN1xcdTc0NUNcXHV7MjI4QUR9XFx1NzQ2MFxcdXsyOEVCMn1cXHU3NDQ3XFx1NzNFNFxcdTc0NzZcXHU4M0I5XFx1NzQ2Q1xcdTM3MzBcXHU3NDc0XFx1OTNGMVxcdTZBMkNcXHU3NDgyXFx1NDk1M1xcdXsyNEE4Q31cIl0sXG4gICAgICBbXCJmZWExXCIsIFwiXFx1ezI0MTVGfVxcdXsyNEE3OX1cXHV7MjhCOEZ9XFx1NUI0NlxcdXsyOEMwM31cXHV7MjE4OUV9XFx1NzRDOFxcdXsyMTk4OH1cXHU3NTBFXFx1NzRFOVxcdTc1MUVcXHV7MjhFRDl9XFx1ezIxQTRCfVxcdTVCRDdcXHV7MjhFQUN9XFx1OTM4NVxcdTc1NERcXHU3NTRBXFx1NzU2N1xcdTc1NkVcXHV7MjRGODJ9XFx1M0YwNFxcdXsyNEQxM31cXHU3NThFXFx1NzQ1RFxcdTc1OUVcXHU3NUI0XFx1NzYwMlxcdTc2MkNcXHU3NjUxXFx1NzY0RlxcdTc2NkZcXHU3Njc2XFx1ezI2M0Y1fVxcdTc2OTBcXHU4MUVGXFx1MzdGOFxcdXsyNjkxMX1cXHV7MjY5MEV9XFx1NzZBMVxcdTc2QTVcXHU3NkI3XFx1NzZDQ1xcdXsyNkY5Rn1cXHU4NDYyXFx1ezI1MDlEfVxcdXsyNTE3RH1cXHV7MjFFMUN9XFx1NzcxRVxcdTc3MjZcXHU3NzQwXFx1NjRBRlxcdXsyNTIyMH1cXHU3NzU4XFx1ezIzMkFDfVxcdTc3QUZcXHV7Mjg5NjR9XFx1ezI4OTY4fVxcdXsyMTZDMX1cXHU3N0Y0XFx1NzgwOVxcdXsyMTM3Nn1cXHV7MjRBMTJ9XFx1NjhDQVxcdTc4QUZcXHU3OEM3XFx1NzhEM1xcdTk2QTVcXHU3OTJFXFx1ezI1NUUwfVxcdTc4RDdcXHU3OTM0XFx1NzhCMVxcdXsyNzYwQ31cXHU4RkI4XFx1ODg4NFxcdXsyOEIyQn1cXHV7MjYwODN9XFx1ezIyNjFDfVxcdTc5ODZcXHU4OTAwXFx1NjkwMlxcdTc5ODBcXHV7MjU4NTd9XFx1Nzk5RFxcdXsyN0IzOX1cXHU3OTNDXFx1NzlBOVxcdTZFMkFcXHV7MjcxMjZ9XFx1M0VBOFxcdTc5QzZcXHV7MjkxMER9XFx1NzlENFwiXVxuICAgIF07XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvcmF3LWJvZHkvbm9kZV9tb2R1bGVzL2ljb252LWxpdGUvZW5jb2RpbmdzL2RiY3MtZGF0YS5qc1xudmFyIHJlcXVpcmVfZGJjc19kYXRhID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL3Jhdy1ib2R5L25vZGVfbW9kdWxlcy9pY29udi1saXRlL2VuY29kaW5ncy9kYmNzLWRhdGEuanNcIihleHBvcnRzMiwgbW9kdWxlMikge1xuICAgIFwidXNlIHN0cmljdFwiO1xuICAgIG1vZHVsZTIuZXhwb3J0cyA9IHtcbiAgICAgIC8vID09IEphcGFuZXNlL1NoaWZ0SklTID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgICAgIC8vIEFsbCBqYXBhbmVzZSBlbmNvZGluZ3MgYXJlIGJhc2VkIG9uIEpJUyBYIHNldCBvZiBzdGFuZGFyZHM6XG4gICAgICAvLyBKSVMgWCAwMjAxIC0gU2luZ2xlLWJ5dGUgZW5jb2Rpbmcgb2YgQVNDSUkgKyBcdTAwQTUgKyBLYW5hIGNoYXJzIGF0IDB4QTEtMHhERi5cbiAgICAgIC8vIEpJUyBYIDAyMDggLSBNYWluIHNldCBvZiA2ODc5IGNoYXJhY3RlcnMsIHBsYWNlZCBpbiA5NHg5NCBwbGFuZSwgdG8gYmUgZW5jb2RlZCBieSAyIGJ5dGVzLiBcbiAgICAgIC8vICAgICAgICAgICAgICBIYXMgc2V2ZXJhbCB2YXJpYXRpb25zIGluIDE5NzgsIDE5ODMsIDE5OTAgYW5kIDE5OTcuXG4gICAgICAvLyBKSVMgWCAwMjEyIC0gU3VwcGxlbWVudGFyeSBwbGFuZSBvZiA2MDY3IGNoYXJzIGluIDk0eDk0IHBsYW5lLiAxOTkwLiBFZmZlY3RpdmVseSBkZWFkLlxuICAgICAgLy8gSklTIFggMDIxMyAtIEV4dGVuc2lvbiBhbmQgbW9kZXJuIHJlcGxhY2VtZW50IG9mIDAyMDggYW5kIDAyMTIuIFRvdGFsIGNoYXJzOiAxMTIzMy5cbiAgICAgIC8vICAgICAgICAgICAgICAyIHBsYW5lcywgZmlyc3QgaXMgc3VwZXJzZXQgb2YgMDIwOCwgc2Vjb25kIC0gcmV2aXNlZCAwMjEyLlxuICAgICAgLy8gICAgICAgICAgICAgIEludHJvZHVjZWQgaW4gMjAwMCwgcmV2aXNlZCAyMDA0LiBTb21lIGNoYXJhY3RlcnMgYXJlIGluIFVuaWNvZGUgUGxhbmUgMiAoMHgyeHh4eClcbiAgICAgIC8vIEJ5dGUgZW5jb2RpbmdzIGFyZTpcbiAgICAgIC8vICAqIFNoaWZ0X0pJUzogQ29tcGF0aWJsZSB3aXRoIDAyMDEsIHVzZXMgbm90IGRlZmluZWQgY2hhcnMgaW4gdG9wIGhhbGYgYXMgbGVhZCBieXRlcyBmb3IgZG91YmxlLWJ5dGVcbiAgICAgIC8vICAgICAgICAgICAgICAgZW5jb2Rpbmcgb2YgMDIwOC4gTGVhZCBieXRlIHJhbmdlczogMHg4MS0weDlGLCAweEUwLTB4RUY7IFRyYWlsIGJ5dGUgcmFuZ2VzOiAweDQwLTB4N0UsIDB4ODAtMHg5RSwgMHg5Ri0weEZDLlxuICAgICAgLy8gICAgICAgICAgICAgICBXaW5kb3dzIENQOTMyIGlzIGEgc3VwZXJzZXQgb2YgU2hpZnRfSklTLiBTb21lIGNvbXBhbmllcyBhZGRlZCBtb3JlIGNoYXJzLCBub3RhYmx5IEtEREkuXG4gICAgICAvLyAgKiBFVUMtSlA6ICAgIFVwIHRvIDMgYnl0ZXMgcGVyIGNoYXJhY3Rlci4gVXNlZCBtb3N0bHkgb24gKm5peGVzLlxuICAgICAgLy8gICAgICAgICAgICAgICAweDAwLTB4N0YgICAgICAgLSBsb3dlciBwYXJ0IG9mIDAyMDFcbiAgICAgIC8vICAgICAgICAgICAgICAgMHg4RSwgMHhBMS0weERGIC0gdXBwZXIgcGFydCBvZiAwMjAxXG4gICAgICAvLyAgICAgICAgICAgICAgICgweEExLTB4RkUpeDIgICAtIDAyMDggcGxhbmUgKDk0eDk0KS5cbiAgICAgIC8vICAgICAgICAgICAgICAgMHg4RiwgKDB4QTEtMHhGRSl4MiAtIDAyMTIgcGxhbmUgKDk0eDk0KS5cbiAgICAgIC8vICAqIEpJUyBYIDIwODogNy1iaXQsIGRpcmVjdCBlbmNvZGluZyBvZiAwMjA4LiBCeXRlIHJhbmdlczogMHgyMS0weDdFICg5NCB2YWx1ZXMpLiBVbmNvbW1vbi5cbiAgICAgIC8vICAgICAgICAgICAgICAgVXNlZCBhcy1pcyBpbiBJU08yMDIyIGZhbWlseS5cbiAgICAgIC8vICAqIElTTzIwMjItSlA6IFN0YXRlZnVsIGVuY29kaW5nLCB3aXRoIGVzY2FwZSBzZXF1ZW5jZXMgdG8gc3dpdGNoIGJldHdlZW4gQVNDSUksIFxuICAgICAgLy8gICAgICAgICAgICAgICAgMDIwMS0xOTc2IFJvbWFuLCAwMjA4LTE5NzgsIDAyMDgtMTk4My5cbiAgICAgIC8vICAqIElTTzIwMjItSlAtMTogQWRkcyBlc2Mgc2VxIGZvciAwMjEyLTE5OTAuXG4gICAgICAvLyAgKiBJU08yMDIyLUpQLTI6IEFkZHMgZXNjIHNlcSBmb3IgR0IyMzEzLTE5ODAsIEtTWDEwMDEtMTk5MiwgSVNPODg1OS0xLCBJU084ODU5LTcuXG4gICAgICAvLyAgKiBJU08yMDIyLUpQLTM6IEFkZHMgZXNjIHNlcSBmb3IgMDIwMS0xOTc2IEthbmEgc2V0LCAwMjEzLTIwMDAgUGxhbmVzIDEsIDIuXG4gICAgICAvLyAgKiBJU08yMDIyLUpQLTIwMDQ6IEFkZHMgMDIxMy0yMDA0IFBsYW5lIDEuXG4gICAgICAvL1xuICAgICAgLy8gQWZ0ZXIgSklTIFggMDIxMyBhcHBlYXJlZCwgU2hpZnRfSklTLTIwMDQsIEVVQy1KSVNYMDIxMyBhbmQgSVNPMjAyMi1KUC0yMDA0IGZvbGxvd2VkLCB3aXRoIGp1c3QgY2hhbmdpbmcgdGhlIHBsYW5lcy5cbiAgICAgIC8vXG4gICAgICAvLyBPdmVyYWxsLCBpdCBzZWVtcyB0aGF0IGl0J3MgYSBtZXNzIDooIGh0dHA6Ly93d3c4LnBsYWxhLm9yLmpwL3RrdWJvdGExL3VuaWNvZGUtc3ltYm9scy1tYXAyLmh0bWxcbiAgICAgIFwic2hpZnRqaXNcIjoge1xuICAgICAgICB0eXBlOiBcIl9kYmNzXCIsXG4gICAgICAgIHRhYmxlOiBmdW5jdGlvbigpIHtcbiAgICAgICAgICByZXR1cm4gcmVxdWlyZV9zaGlmdGppcygpO1xuICAgICAgICB9LFxuICAgICAgICBlbmNvZGVBZGQ6IHsgXCJcXHhBNVwiOiA5MiwgXCJcXHUyMDNFXCI6IDEyNiB9LFxuICAgICAgICBlbmNvZGVTa2lwVmFsczogW3sgZnJvbTogNjA3MzYsIHRvOiA2MzgwOCB9XVxuICAgICAgfSxcbiAgICAgIFwiY3NzaGlmdGppc1wiOiBcInNoaWZ0amlzXCIsXG4gICAgICBcIm1za2FuamlcIjogXCJzaGlmdGppc1wiLFxuICAgICAgXCJzamlzXCI6IFwic2hpZnRqaXNcIixcbiAgICAgIFwid2luZG93czMxalwiOiBcInNoaWZ0amlzXCIsXG4gICAgICBcIm1zMzFqXCI6IFwic2hpZnRqaXNcIixcbiAgICAgIFwieHNqaXNcIjogXCJzaGlmdGppc1wiLFxuICAgICAgXCJ3aW5kb3dzOTMyXCI6IFwic2hpZnRqaXNcIixcbiAgICAgIFwibXM5MzJcIjogXCJzaGlmdGppc1wiLFxuICAgICAgXCI5MzJcIjogXCJzaGlmdGppc1wiLFxuICAgICAgXCJjcDkzMlwiOiBcInNoaWZ0amlzXCIsXG4gICAgICBcImV1Y2pwXCI6IHtcbiAgICAgICAgdHlwZTogXCJfZGJjc1wiLFxuICAgICAgICB0YWJsZTogZnVuY3Rpb24oKSB7XG4gICAgICAgICAgcmV0dXJuIHJlcXVpcmVfZXVjanAoKTtcbiAgICAgICAgfSxcbiAgICAgICAgZW5jb2RlQWRkOiB7IFwiXFx4QTVcIjogOTIsIFwiXFx1MjAzRVwiOiAxMjYgfVxuICAgICAgfSxcbiAgICAgIC8vIFRPRE86IEtEREkgZXh0ZW5zaW9uIHRvIFNoaWZ0X0pJU1xuICAgICAgLy8gVE9ETzogSUJNIENDU0lEIDk0MiA9IENQOTMyLCBidXQgRjAtRjkgY3VzdG9tIGNoYXJzIGFuZCBvdGhlciBjaGFyIGNoYW5nZXMuXG4gICAgICAvLyBUT0RPOiBJQk0gQ0NTSUQgOTQzID0gU2hpZnRfSklTID0gQ1A5MzIgd2l0aCBvcmlnaW5hbCBTaGlmdF9KSVMgbG93ZXIgMTI4IGNoYXJzLlxuICAgICAgLy8gPT0gQ2hpbmVzZS9HQksgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgICAgLy8gaHR0cDovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9HQktcbiAgICAgIC8vIFdlIG1vc3RseSBpbXBsZW1lbnQgVzNDIHJlY29tbWVuZGF0aW9uOiBodHRwczovL3d3dy53My5vcmcvVFIvZW5jb2RpbmcvI2diay1lbmNvZGVyXG4gICAgICAvLyBPbGRlc3QgR0IyMzEyICgxOTgxLCB+NzYwMCBjaGFycykgaXMgYSBzdWJzZXQgb2YgQ1A5MzZcbiAgICAgIFwiZ2IyMzEyXCI6IFwiY3A5MzZcIixcbiAgICAgIFwiZ2IyMzEyODBcIjogXCJjcDkzNlwiLFxuICAgICAgXCJnYjIzMTIxOTgwXCI6IFwiY3A5MzZcIixcbiAgICAgIFwiY3NnYjIzMTJcIjogXCJjcDkzNlwiLFxuICAgICAgXCJjc2lzbzU4Z2IyMzEyODBcIjogXCJjcDkzNlwiLFxuICAgICAgXCJldWNjblwiOiBcImNwOTM2XCIsXG4gICAgICAvLyBNaWNyb3NvZnQncyBDUDkzNiBpcyBhIHN1YnNldCBhbmQgYXBwcm94aW1hdGlvbiBvZiBHQksuXG4gICAgICBcIndpbmRvd3M5MzZcIjogXCJjcDkzNlwiLFxuICAgICAgXCJtczkzNlwiOiBcImNwOTM2XCIsXG4gICAgICBcIjkzNlwiOiBcImNwOTM2XCIsXG4gICAgICBcImNwOTM2XCI6IHtcbiAgICAgICAgdHlwZTogXCJfZGJjc1wiLFxuICAgICAgICB0YWJsZTogZnVuY3Rpb24oKSB7XG4gICAgICAgICAgcmV0dXJuIHJlcXVpcmVfY3A5MzYoKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIC8vIEdCSyAofjIyMDAwIGNoYXJzKSBpcyBhbiBleHRlbnNpb24gb2YgQ1A5MzYgdGhhdCBhZGRlZCB1c2VyLW1hcHBlZCBjaGFycyBhbmQgc29tZSBvdGhlci5cbiAgICAgIFwiZ2JrXCI6IHtcbiAgICAgICAgdHlwZTogXCJfZGJjc1wiLFxuICAgICAgICB0YWJsZTogZnVuY3Rpb24oKSB7XG4gICAgICAgICAgcmV0dXJuIHJlcXVpcmVfY3A5MzYoKS5jb25jYXQocmVxdWlyZV9nYmtfYWRkZWQoKSk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcInhnYmtcIjogXCJnYmtcIixcbiAgICAgIFwiaXNvaXI1OFwiOiBcImdia1wiLFxuICAgICAgLy8gR0IxODAzMCBpcyBhbiBhbGdvcml0aG1pYyBleHRlbnNpb24gb2YgR0JLLlxuICAgICAgLy8gTWFpbiBzb3VyY2U6IGh0dHBzOi8vd3d3LnczLm9yZy9UUi9lbmNvZGluZy8jZ2JrLWVuY29kZXJcbiAgICAgIC8vIGh0dHA6Ly9pY3UtcHJvamVjdC5vcmcvZG9jcy9wYXBlcnMvZ2IxODAzMC5odG1sXG4gICAgICAvLyBodHRwOi8vc291cmNlLmljdS1wcm9qZWN0Lm9yZy9yZXBvcy9pY3UvZGF0YS90cnVuay9jaGFyc2V0L2RhdGEveG1sL2diLTE4MDMwLTIwMDAueG1sXG4gICAgICAvLyBodHRwOi8vd3d3LmtobmdhaS5jb20vY2hpbmVzZS9jaGFybWFwL3RibGdiay5waHA/cGFnZT0wXG4gICAgICBcImdiMTgwMzBcIjoge1xuICAgICAgICB0eXBlOiBcIl9kYmNzXCIsXG4gICAgICAgIHRhYmxlOiBmdW5jdGlvbigpIHtcbiAgICAgICAgICByZXR1cm4gcmVxdWlyZV9jcDkzNigpLmNvbmNhdChyZXF1aXJlX2dia19hZGRlZCgpKTtcbiAgICAgICAgfSxcbiAgICAgICAgZ2IxODAzMDogZnVuY3Rpb24oKSB7XG4gICAgICAgICAgcmV0dXJuIHJlcXVpcmVfZ2IxODAzMF9yYW5nZXMoKTtcbiAgICAgICAgfSxcbiAgICAgICAgZW5jb2RlU2tpcFZhbHM6IFsxMjhdLFxuICAgICAgICBlbmNvZGVBZGQ6IHsgXCJcXHUyMEFDXCI6IDQxNjk5IH1cbiAgICAgIH0sXG4gICAgICBcImNoaW5lc2VcIjogXCJnYjE4MDMwXCIsXG4gICAgICAvLyA9PSBLb3JlYW4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICAgICAvLyBFVUMtS1IsIEtTX0NfNTYwMSBhbmQgS1MgWCAxMDAxIGFyZSBleGFjdGx5IHRoZSBzYW1lLlxuICAgICAgXCJ3aW5kb3dzOTQ5XCI6IFwiY3A5NDlcIixcbiAgICAgIFwibXM5NDlcIjogXCJjcDk0OVwiLFxuICAgICAgXCI5NDlcIjogXCJjcDk0OVwiLFxuICAgICAgXCJjcDk0OVwiOiB7XG4gICAgICAgIHR5cGU6IFwiX2RiY3NcIixcbiAgICAgICAgdGFibGU6IGZ1bmN0aW9uKCkge1xuICAgICAgICAgIHJldHVybiByZXF1aXJlX2NwOTQ5KCk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcImNzZXVja3JcIjogXCJjcDk0OVwiLFxuICAgICAgXCJjc2tzYzU2MDExOTg3XCI6IFwiY3A5NDlcIixcbiAgICAgIFwiZXVja3JcIjogXCJjcDk0OVwiLFxuICAgICAgXCJpc29pcjE0OVwiOiBcImNwOTQ5XCIsXG4gICAgICBcImtvcmVhblwiOiBcImNwOTQ5XCIsXG4gICAgICBcImtzYzU2MDExOTg3XCI6IFwiY3A5NDlcIixcbiAgICAgIFwia3NjNTYwMTE5ODlcIjogXCJjcDk0OVwiLFxuICAgICAgXCJrc2M1NjAxXCI6IFwiY3A5NDlcIixcbiAgICAgIC8vID09IEJpZzUvVGFpd2FuL0hvbmcgS29uZyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgICAgIC8vIFRoZXJlIGFyZSBsb3RzIG9mIHRhYmxlcyBmb3IgQmlnNSBhbmQgY3A5NTAuIFBsZWFzZSBzZWUgdGhlIGZvbGxvd2luZyBsaW5rcyBmb3IgaGlzdG9yeTpcbiAgICAgIC8vIGh0dHA6Ly9tb3p0dy5vcmcvZG9jcy9iaWc1LyAgaHR0cDovL3d3dy5oYWlibGUuZGUvYnJ1bm8vY2hhcnNldHMvY29udmVyc2lvbi10YWJsZXMvQmlnNS5odG1sXG4gICAgICAvLyBWYXJpYXRpb25zLCBpbiByb3VnaGx5IG51bWJlciBvZiBkZWZpbmVkIGNoYXJzOlxuICAgICAgLy8gICogV2luZG93cyBDUCA5NTA6IE1pY3Jvc29mdCB2YXJpYW50IG9mIEJpZzUuIENhbm9uaWNhbDogaHR0cDovL3d3dy51bmljb2RlLm9yZy9QdWJsaWMvTUFQUElOR1MvVkVORE9SUy9NSUNTRlQvV0lORE9XUy9DUDk1MC5UWFRcbiAgICAgIC8vICAqIFdpbmRvd3MgQ1AgOTUxOiBNaWNyb3NvZnQgdmFyaWFudCBvZiBCaWc1LUhLU0NTLTIwMDEuIFNlZW1zIHRvIGJlIG5ldmVyIHB1YmxpYy4gaHR0cDovL21lLmFiZWxjaGV1bmcub3JnL2FydGljbGVzL3Jlc2VhcmNoL3doYXQtaXMtY3A5NTEvXG4gICAgICAvLyAgKiBCaWc1LTIwMDMgKFRhaXdhbiBzdGFuZGFyZCkgYWxtb3N0IHN1cGVyc2V0IG9mIGNwOTUwLlxuICAgICAgLy8gICogVW5pY29kZS1hdC1vbiAoVUFPKSAvIE1vemlsbGEgMS44LiBGYWxsaW5nIG91dCBvZiB1c2Ugb24gdGhlIFdlYi4gTm90IHN1cHBvcnRlZCBieSBvdGhlciBicm93c2Vycy5cbiAgICAgIC8vICAqIEJpZzUtSEtTQ1MgKC0yMDAxLCAtMjAwNCwgLTIwMDgpLiBIb25nIEtvbmcgc3RhbmRhcmQuIFxuICAgICAgLy8gICAgbWFueSB1bmljb2RlIGNvZGUgcG9pbnRzIG1vdmVkIGZyb20gUFVBIHRvIFN1cHBsZW1lbnRhcnkgcGxhbmUgKFUrMlhYWFgpIG92ZXIgdGhlIHllYXJzLlxuICAgICAgLy8gICAgUGx1cywgaXQgaGFzIDQgY29tYmluaW5nIHNlcXVlbmNlcy5cbiAgICAgIC8vICAgIFNlZW1zIHRoYXQgTW96aWxsYSByZWZ1c2VkIHRvIHN1cHBvcnQgaXQgZm9yIDEwIHlycy4gaHR0cHM6Ly9idWd6aWxsYS5tb3ppbGxhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYyNDMxIGh0dHBzOi8vYnVnemlsbGEubW96aWxsYS5vcmcvc2hvd19idWcuY2dpP2lkPTMxMDI5OVxuICAgICAgLy8gICAgYmVjYXVzZSBiaWc1LWhrc2NzIGlzIHRoZSBvbmx5IGVuY29kaW5nIHRvIGluY2x1ZGUgYXN0cmFsIGNoYXJhY3RlcnMgaW4gbm9uLWFsZ29yaXRobWljIHdheS5cbiAgICAgIC8vICAgIEltcGxlbWVudGF0aW9ucyBhcmUgbm90IGNvbnNpc3RlbnQgd2l0aGluIGJyb3dzZXJzOyBzb21ldGltZXMgbGFiZWxlZCBhcyBqdXN0IGJpZzUuXG4gICAgICAvLyAgICBNUyBJbnRlcm5ldCBFeHBsb3JlciBzd2l0Y2hlcyBmcm9tIGJpZzUgdG8gYmlnNS1oa3NjcyB3aGVuIGEgcGF0Y2ggYXBwbGllZC5cbiAgICAgIC8vICAgIEdyZWF0IGRpc2N1c3Npb24gJiByZWNhcCBvZiB3aGF0J3MgZ29pbmcgb24gaHR0cHM6Ly9idWd6aWxsYS5tb3ppbGxhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTEyNDcwI2MzMVxuICAgICAgLy8gICAgSW4gdGhlIGVuY29kZXIsIGl0IG1pZ2h0IG1ha2Ugc2Vuc2UgdG8gc3VwcG9ydCBlbmNvZGluZyBvbGQgUFVBIG1hcHBpbmdzIHRvIEJpZzUgYnl0ZXMgc2VxLXMuXG4gICAgICAvLyAgICBPZmZpY2lhbCBzcGVjOiBodHRwOi8vd3d3Lm9nY2lvLmdvdi5oay9lbi9idXNpbmVzcy90ZWNoX3Byb21vdGlvbi9jY2xpL3Rlcm1zL2RvYy8yMDAzY21wXzIwMDgudHh0XG4gICAgICAvLyAgICAgICAgICAgICAgICAgICBodHRwOi8vd3d3Lm9nY2lvLmdvdi5oay90Yy9idXNpbmVzcy90ZWNoX3Byb21vdGlvbi9jY2xpL3Rlcm1zL2RvYy9oa3Njcy0yMDA4LWJpZzUtaXNvLnR4dFxuICAgICAgLy8gXG4gICAgICAvLyBDdXJyZW50IHVuZGVyc3RhbmRpbmcgb2YgaG93IHRvIGRlYWwgd2l0aCBCaWc1KC1IS1NDUykgaXMgaW4gdGhlIEVuY29kaW5nIFN0YW5kYXJkLCBodHRwOi8vZW5jb2Rpbmcuc3BlYy53aGF0d2cub3JnLyNiaWc1LWVuY29kZXJcbiAgICAgIC8vIFVuaWNvZGUgbWFwcGluZyAoaHR0cDovL3d3dy51bmljb2RlLm9yZy9QdWJsaWMvTUFQUElOR1MvT0JTT0xFVEUvRUFTVEFTSUEvT1RIRVIvQklHNS5UWFQpIGlzIHNhaWQgdG8gYmUgd3JvbmcuXG4gICAgICBcIndpbmRvd3M5NTBcIjogXCJjcDk1MFwiLFxuICAgICAgXCJtczk1MFwiOiBcImNwOTUwXCIsXG4gICAgICBcIjk1MFwiOiBcImNwOTUwXCIsXG4gICAgICBcImNwOTUwXCI6IHtcbiAgICAgICAgdHlwZTogXCJfZGJjc1wiLFxuICAgICAgICB0YWJsZTogZnVuY3Rpb24oKSB7XG4gICAgICAgICAgcmV0dXJuIHJlcXVpcmVfY3A5NTAoKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIC8vIEJpZzUgaGFzIG1hbnkgdmFyaWF0aW9ucyBhbmQgaXMgYW4gZXh0ZW5zaW9uIG9mIGNwOTUwLiBXZSB1c2UgRW5jb2RpbmcgU3RhbmRhcmQncyBhcyBhIGNvbnNlbnN1cy5cbiAgICAgIFwiYmlnNVwiOiBcImJpZzVoa3Njc1wiLFxuICAgICAgXCJiaWc1aGtzY3NcIjoge1xuICAgICAgICB0eXBlOiBcIl9kYmNzXCIsXG4gICAgICAgIHRhYmxlOiBmdW5jdGlvbigpIHtcbiAgICAgICAgICByZXR1cm4gcmVxdWlyZV9jcDk1MCgpLmNvbmNhdChyZXF1aXJlX2JpZzVfYWRkZWQoKSk7XG4gICAgICAgIH0sXG4gICAgICAgIGVuY29kZVNraXBWYWxzOiBbXG4gICAgICAgICAgLy8gQWx0aG91Z2ggRW5jb2RpbmcgU3RhbmRhcmQgc2F5cyB3ZSBzaG91bGQgYXZvaWQgZW5jb2RpbmcgdG8gSEtTQ1MgYXJlYSAoU2VlIFN0ZXAgMSBvZlxuICAgICAgICAgIC8vIGh0dHBzOi8vZW5jb2Rpbmcuc3BlYy53aGF0d2cub3JnLyNpbmRleC1iaWc1LXBvaW50ZXIpLCB3ZSBzdGlsbCBkbyBpdCB0byBpbmNyZWFzZSBjb21wYXRpYmlsaXR5IHdpdGggSUNVLlxuICAgICAgICAgIC8vIEJ1dCBpZiBhIHNpbmdsZSB1bmljb2RlIHBvaW50IGNhbiBiZSBlbmNvZGVkIGJvdGggYXMgSEtTQ1MgYW5kIHJlZ3VsYXIgQmlnNSwgd2UgcHJlZmVyIHRoZSBsYXR0ZXIuXG4gICAgICAgICAgMzY0NTcsXG4gICAgICAgICAgMzY0NjMsXG4gICAgICAgICAgMzY0NzgsXG4gICAgICAgICAgMzY1MjMsXG4gICAgICAgICAgMzY1MzIsXG4gICAgICAgICAgMzY1NTcsXG4gICAgICAgICAgMzY1NjAsXG4gICAgICAgICAgMzY2OTUsXG4gICAgICAgICAgMzY3MTMsXG4gICAgICAgICAgMzY3MTgsXG4gICAgICAgICAgMzY4MTEsXG4gICAgICAgICAgMzY4NjIsXG4gICAgICAgICAgMzY5NzMsXG4gICAgICAgICAgMzY5ODYsXG4gICAgICAgICAgMzcwNjAsXG4gICAgICAgICAgMzcwODQsXG4gICAgICAgICAgMzcxMDUsXG4gICAgICAgICAgMzczMTEsXG4gICAgICAgICAgMzc1NTEsXG4gICAgICAgICAgMzc1NTIsXG4gICAgICAgICAgMzc1NTMsXG4gICAgICAgICAgMzc1NTQsXG4gICAgICAgICAgMzc1ODUsXG4gICAgICAgICAgMzc5NTksXG4gICAgICAgICAgMzgwOTAsXG4gICAgICAgICAgMzgzNjEsXG4gICAgICAgICAgMzg2NTIsXG4gICAgICAgICAgMzkyODUsXG4gICAgICAgICAgMzk3OTgsXG4gICAgICAgICAgMzk4MDAsXG4gICAgICAgICAgMzk4MDMsXG4gICAgICAgICAgMzk4NzgsXG4gICAgICAgICAgMzk5MDIsXG4gICAgICAgICAgMzk5MTYsXG4gICAgICAgICAgMzk5MjYsXG4gICAgICAgICAgNDAwMDIsXG4gICAgICAgICAgNDAwMTksXG4gICAgICAgICAgNDAwMzQsXG4gICAgICAgICAgNDAwNDAsXG4gICAgICAgICAgNDAwNDMsXG4gICAgICAgICAgNDAwNTUsXG4gICAgICAgICAgNDAxMjQsXG4gICAgICAgICAgNDAxMjUsXG4gICAgICAgICAgNDAxNDQsXG4gICAgICAgICAgNDAyNzksXG4gICAgICAgICAgNDAyODIsXG4gICAgICAgICAgNDAzODgsXG4gICAgICAgICAgNDA0MzEsXG4gICAgICAgICAgNDA0NDMsXG4gICAgICAgICAgNDA2MTcsXG4gICAgICAgICAgNDA2ODcsXG4gICAgICAgICAgNDA3MDEsXG4gICAgICAgICAgNDA4MDAsXG4gICAgICAgICAgNDA5MDcsXG4gICAgICAgICAgNDEwNzksXG4gICAgICAgICAgNDExODAsXG4gICAgICAgICAgNDExODMsXG4gICAgICAgICAgMzY4MTIsXG4gICAgICAgICAgMzc1NzYsXG4gICAgICAgICAgMzg0NjgsXG4gICAgICAgICAgMzg2MzcsXG4gICAgICAgICAgLy8gU3RlcCAyIG9mIGh0dHBzOi8vZW5jb2Rpbmcuc3BlYy53aGF0d2cub3JnLyNpbmRleC1iaWc1LXBvaW50ZXI6IFVzZSBsYXN0IHBvaW50ZXIgZm9yIFUrMjU1MCwgVSsyNTVFLCBVKzI1NjEsIFUrMjU2QSwgVSs1MzQxLCBvciBVKzUzNDVcbiAgICAgICAgICA0MTYzNixcbiAgICAgICAgICA0MTYzNyxcbiAgICAgICAgICA0MTYzOSxcbiAgICAgICAgICA0MTYzOCxcbiAgICAgICAgICA0MTY3NixcbiAgICAgICAgICA0MTY3OFxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAgXCJjbmJpZzVcIjogXCJiaWc1aGtzY3NcIixcbiAgICAgIFwiY3NiaWc1XCI6IFwiYmlnNWhrc2NzXCIsXG4gICAgICBcInh4YmlnNVwiOiBcImJpZzVoa3Njc1wiXG4gICAgfTtcbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9yYXctYm9keS9ub2RlX21vZHVsZXMvaWNvbnYtbGl0ZS9lbmNvZGluZ3MvaW5kZXguanNcbnZhciByZXF1aXJlX2VuY29kaW5ncyA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9yYXctYm9keS9ub2RlX21vZHVsZXMvaWNvbnYtbGl0ZS9lbmNvZGluZ3MvaW5kZXguanNcIihleHBvcnRzMiwgbW9kdWxlMikge1xuICAgIFwidXNlIHN0cmljdFwiO1xuICAgIHZhciBtb2R1bGVzID0gW1xuICAgICAgcmVxdWlyZV9pbnRlcm5hbCgpLFxuICAgICAgcmVxdWlyZV91dGYzMigpLFxuICAgICAgcmVxdWlyZV91dGYxNigpLFxuICAgICAgcmVxdWlyZV91dGY3KCksXG4gICAgICByZXF1aXJlX3NiY3NfY29kZWMoKSxcbiAgICAgIHJlcXVpcmVfc2Jjc19kYXRhKCksXG4gICAgICByZXF1aXJlX3NiY3NfZGF0YV9nZW5lcmF0ZWQoKSxcbiAgICAgIHJlcXVpcmVfZGJjc19jb2RlYygpLFxuICAgICAgcmVxdWlyZV9kYmNzX2RhdGEoKVxuICAgIF07XG4gICAgZm9yIChpID0gMDsgaSA8IG1vZHVsZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIG1vZHVsZTIgPSBtb2R1bGVzW2ldO1xuICAgICAgZm9yIChlbmMgaW4gbW9kdWxlMilcbiAgICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChtb2R1bGUyLCBlbmMpKVxuICAgICAgICAgIGV4cG9ydHMyW2VuY10gPSBtb2R1bGUyW2VuY107XG4gICAgfVxuICAgIHZhciBtb2R1bGUyO1xuICAgIHZhciBlbmM7XG4gICAgdmFyIGk7XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvcmF3LWJvZHkvbm9kZV9tb2R1bGVzL2ljb252LWxpdGUvbGliL3N0cmVhbXMuanNcbnZhciByZXF1aXJlX3N0cmVhbXMgPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvcmF3LWJvZHkvbm9kZV9tb2R1bGVzL2ljb252LWxpdGUvbGliL3N0cmVhbXMuanNcIihleHBvcnRzMiwgbW9kdWxlMikge1xuICAgIFwidXNlIHN0cmljdFwiO1xuICAgIHZhciBCdWZmZXIyID0gcmVxdWlyZV9zYWZlcigpLkJ1ZmZlcjtcbiAgICBtb2R1bGUyLmV4cG9ydHMgPSBmdW5jdGlvbihzdHJlYW1fbW9kdWxlKSB7XG4gICAgICB2YXIgVHJhbnNmb3JtID0gc3RyZWFtX21vZHVsZS5UcmFuc2Zvcm07XG4gICAgICBmdW5jdGlvbiBJY29udkxpdGVFbmNvZGVyU3RyZWFtKGNvbnYsIG9wdGlvbnMpIHtcbiAgICAgICAgdGhpcy5jb252ID0gY29udjtcbiAgICAgICAgb3B0aW9ucyA9IG9wdGlvbnMgfHwge307XG4gICAgICAgIG9wdGlvbnMuZGVjb2RlU3RyaW5ncyA9IGZhbHNlO1xuICAgICAgICBUcmFuc2Zvcm0uY2FsbCh0aGlzLCBvcHRpb25zKTtcbiAgICAgIH1cbiAgICAgIEljb252TGl0ZUVuY29kZXJTdHJlYW0ucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShUcmFuc2Zvcm0ucHJvdG90eXBlLCB7XG4gICAgICAgIGNvbnN0cnVjdG9yOiB7IHZhbHVlOiBJY29udkxpdGVFbmNvZGVyU3RyZWFtIH1cbiAgICAgIH0pO1xuICAgICAgSWNvbnZMaXRlRW5jb2RlclN0cmVhbS5wcm90b3R5cGUuX3RyYW5zZm9ybSA9IGZ1bmN0aW9uKGNodW5rLCBlbmNvZGluZywgZG9uZSkge1xuICAgICAgICBpZiAodHlwZW9mIGNodW5rICE9IFwic3RyaW5nXCIpXG4gICAgICAgICAgcmV0dXJuIGRvbmUobmV3IEVycm9yKFwiSWNvbnYgZW5jb2Rpbmcgc3RyZWFtIG5lZWRzIHN0cmluZ3MgYXMgaXRzIGlucHV0LlwiKSk7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgdmFyIHJlcyA9IHRoaXMuY29udi53cml0ZShjaHVuayk7XG4gICAgICAgICAgaWYgKHJlcyAmJiByZXMubGVuZ3RoKSB0aGlzLnB1c2gocmVzKTtcbiAgICAgICAgICBkb25lKCk7XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICBkb25lKGUpO1xuICAgICAgICB9XG4gICAgICB9O1xuICAgICAgSWNvbnZMaXRlRW5jb2RlclN0cmVhbS5wcm90b3R5cGUuX2ZsdXNoID0gZnVuY3Rpb24oZG9uZSkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIHZhciByZXMgPSB0aGlzLmNvbnYuZW5kKCk7XG4gICAgICAgICAgaWYgKHJlcyAmJiByZXMubGVuZ3RoKSB0aGlzLnB1c2gocmVzKTtcbiAgICAgICAgICBkb25lKCk7XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICBkb25lKGUpO1xuICAgICAgICB9XG4gICAgICB9O1xuICAgICAgSWNvbnZMaXRlRW5jb2RlclN0cmVhbS5wcm90b3R5cGUuY29sbGVjdCA9IGZ1bmN0aW9uKGNiKSB7XG4gICAgICAgIHZhciBjaHVua3MgPSBbXTtcbiAgICAgICAgdGhpcy5vbihcImVycm9yXCIsIGNiKTtcbiAgICAgICAgdGhpcy5vbihcImRhdGFcIiwgZnVuY3Rpb24oY2h1bmspIHtcbiAgICAgICAgICBjaHVua3MucHVzaChjaHVuayk7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLm9uKFwiZW5kXCIsIGZ1bmN0aW9uKCkge1xuICAgICAgICAgIGNiKG51bGwsIEJ1ZmZlcjIuY29uY2F0KGNodW5rcykpO1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICB9O1xuICAgICAgZnVuY3Rpb24gSWNvbnZMaXRlRGVjb2RlclN0cmVhbShjb252LCBvcHRpb25zKSB7XG4gICAgICAgIHRoaXMuY29udiA9IGNvbnY7XG4gICAgICAgIG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9O1xuICAgICAgICBvcHRpb25zLmVuY29kaW5nID0gdGhpcy5lbmNvZGluZyA9IFwidXRmOFwiO1xuICAgICAgICBUcmFuc2Zvcm0uY2FsbCh0aGlzLCBvcHRpb25zKTtcbiAgICAgIH1cbiAgICAgIEljb252TGl0ZURlY29kZXJTdHJlYW0ucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShUcmFuc2Zvcm0ucHJvdG90eXBlLCB7XG4gICAgICAgIGNvbnN0cnVjdG9yOiB7IHZhbHVlOiBJY29udkxpdGVEZWNvZGVyU3RyZWFtIH1cbiAgICAgIH0pO1xuICAgICAgSWNvbnZMaXRlRGVjb2RlclN0cmVhbS5wcm90b3R5cGUuX3RyYW5zZm9ybSA9IGZ1bmN0aW9uKGNodW5rLCBlbmNvZGluZywgZG9uZSkge1xuICAgICAgICBpZiAoIUJ1ZmZlcjIuaXNCdWZmZXIoY2h1bmspICYmICEoY2h1bmsgaW5zdGFuY2VvZiBVaW50OEFycmF5KSlcbiAgICAgICAgICByZXR1cm4gZG9uZShuZXcgRXJyb3IoXCJJY29udiBkZWNvZGluZyBzdHJlYW0gbmVlZHMgYnVmZmVycyBhcyBpdHMgaW5wdXQuXCIpKTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICB2YXIgcmVzID0gdGhpcy5jb252LndyaXRlKGNodW5rKTtcbiAgICAgICAgICBpZiAocmVzICYmIHJlcy5sZW5ndGgpIHRoaXMucHVzaChyZXMsIHRoaXMuZW5jb2RpbmcpO1xuICAgICAgICAgIGRvbmUoKTtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgIGRvbmUoZSk7XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgICBJY29udkxpdGVEZWNvZGVyU3RyZWFtLnByb3RvdHlwZS5fZmx1c2ggPSBmdW5jdGlvbihkb25lKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgdmFyIHJlcyA9IHRoaXMuY29udi5lbmQoKTtcbiAgICAgICAgICBpZiAocmVzICYmIHJlcy5sZW5ndGgpIHRoaXMucHVzaChyZXMsIHRoaXMuZW5jb2RpbmcpO1xuICAgICAgICAgIGRvbmUoKTtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgIGRvbmUoZSk7XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgICBJY29udkxpdGVEZWNvZGVyU3RyZWFtLnByb3RvdHlwZS5jb2xsZWN0ID0gZnVuY3Rpb24oY2IpIHtcbiAgICAgICAgdmFyIHJlcyA9IFwiXCI7XG4gICAgICAgIHRoaXMub24oXCJlcnJvclwiLCBjYik7XG4gICAgICAgIHRoaXMub24oXCJkYXRhXCIsIGZ1bmN0aW9uKGNodW5rKSB7XG4gICAgICAgICAgcmVzICs9IGNodW5rO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5vbihcImVuZFwiLCBmdW5jdGlvbigpIHtcbiAgICAgICAgICBjYihudWxsLCByZXMpO1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICB9O1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgSWNvbnZMaXRlRW5jb2RlclN0cmVhbSxcbiAgICAgICAgSWNvbnZMaXRlRGVjb2RlclN0cmVhbVxuICAgICAgfTtcbiAgICB9O1xuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL3Jhdy1ib2R5L25vZGVfbW9kdWxlcy9pY29udi1saXRlL2xpYi9pbmRleC5qc1xudmFyIHJlcXVpcmVfbGliID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL3Jhdy1ib2R5L25vZGVfbW9kdWxlcy9pY29udi1saXRlL2xpYi9pbmRleC5qc1wiKGV4cG9ydHMyLCBtb2R1bGUyKSB7XG4gICAgXCJ1c2Ugc3RyaWN0XCI7XG4gICAgdmFyIEJ1ZmZlcjIgPSByZXF1aXJlX3NhZmVyKCkuQnVmZmVyO1xuICAgIHZhciBib21IYW5kbGluZyA9IHJlcXVpcmVfYm9tX2hhbmRsaW5nKCk7XG4gICAgdmFyIGljb252ID0gbW9kdWxlMi5leHBvcnRzO1xuICAgIGljb252LmVuY29kaW5ncyA9IG51bGw7XG4gICAgaWNvbnYuZGVmYXVsdENoYXJVbmljb2RlID0gXCJcXHVGRkZEXCI7XG4gICAgaWNvbnYuZGVmYXVsdENoYXJTaW5nbGVCeXRlID0gXCI/XCI7XG4gICAgaWNvbnYuZW5jb2RlID0gZnVuY3Rpb24gZW5jb2RlKHN0ciwgZW5jb2RpbmcsIG9wdGlvbnMpIHtcbiAgICAgIHN0ciA9IFwiXCIgKyAoc3RyIHx8IFwiXCIpO1xuICAgICAgdmFyIGVuY29kZXIgPSBpY29udi5nZXRFbmNvZGVyKGVuY29kaW5nLCBvcHRpb25zKTtcbiAgICAgIHZhciByZXMgPSBlbmNvZGVyLndyaXRlKHN0cik7XG4gICAgICB2YXIgdHJhaWwgPSBlbmNvZGVyLmVuZCgpO1xuICAgICAgcmV0dXJuIHRyYWlsICYmIHRyYWlsLmxlbmd0aCA+IDAgPyBCdWZmZXIyLmNvbmNhdChbcmVzLCB0cmFpbF0pIDogcmVzO1xuICAgIH07XG4gICAgaWNvbnYuZGVjb2RlID0gZnVuY3Rpb24gZGVjb2RlKGJ1ZiwgZW5jb2RpbmcsIG9wdGlvbnMpIHtcbiAgICAgIGlmICh0eXBlb2YgYnVmID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgIGlmICghaWNvbnYuc2tpcERlY29kZVdhcm5pbmcpIHtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKFwiSWNvbnYtbGl0ZSB3YXJuaW5nOiBkZWNvZGUoKS1pbmcgc3RyaW5ncyBpcyBkZXByZWNhdGVkLiBSZWZlciB0byBodHRwczovL2dpdGh1Yi5jb20vYXNodHVjaGtpbi9pY29udi1saXRlL3dpa2kvVXNlLUJ1ZmZlcnMtd2hlbi1kZWNvZGluZ1wiKTtcbiAgICAgICAgICBpY29udi5za2lwRGVjb2RlV2FybmluZyA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgYnVmID0gQnVmZmVyMi5mcm9tKFwiXCIgKyAoYnVmIHx8IFwiXCIpLCBcImJpbmFyeVwiKTtcbiAgICAgIH1cbiAgICAgIHZhciBkZWNvZGVyID0gaWNvbnYuZ2V0RGVjb2RlcihlbmNvZGluZywgb3B0aW9ucyk7XG4gICAgICB2YXIgcmVzID0gZGVjb2Rlci53cml0ZShidWYpO1xuICAgICAgdmFyIHRyYWlsID0gZGVjb2Rlci5lbmQoKTtcbiAgICAgIHJldHVybiB0cmFpbCA/IHJlcyArIHRyYWlsIDogcmVzO1xuICAgIH07XG4gICAgaWNvbnYuZW5jb2RpbmdFeGlzdHMgPSBmdW5jdGlvbiBlbmNvZGluZ0V4aXN0cyhlbmMpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGljb252LmdldENvZGVjKGVuYyk7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgfTtcbiAgICBpY29udi50b0VuY29kaW5nID0gaWNvbnYuZW5jb2RlO1xuICAgIGljb252LmZyb21FbmNvZGluZyA9IGljb252LmRlY29kZTtcbiAgICBpY29udi5fY29kZWNEYXRhQ2FjaGUgPSB7fTtcbiAgICBpY29udi5nZXRDb2RlYyA9IGZ1bmN0aW9uIGdldENvZGVjKGVuY29kaW5nKSB7XG4gICAgICBpZiAoIWljb252LmVuY29kaW5ncylcbiAgICAgICAgaWNvbnYuZW5jb2RpbmdzID0gcmVxdWlyZV9lbmNvZGluZ3MoKTtcbiAgICAgIHZhciBlbmMgPSBpY29udi5fY2Fub25pY2FsaXplRW5jb2RpbmcoZW5jb2RpbmcpO1xuICAgICAgdmFyIGNvZGVjT3B0aW9ucyA9IHt9O1xuICAgICAgd2hpbGUgKHRydWUpIHtcbiAgICAgICAgdmFyIGNvZGVjID0gaWNvbnYuX2NvZGVjRGF0YUNhY2hlW2VuY107XG4gICAgICAgIGlmIChjb2RlYylcbiAgICAgICAgICByZXR1cm4gY29kZWM7XG4gICAgICAgIHZhciBjb2RlY0RlZiA9IGljb252LmVuY29kaW5nc1tlbmNdO1xuICAgICAgICBzd2l0Y2ggKHR5cGVvZiBjb2RlY0RlZikge1xuICAgICAgICAgIGNhc2UgXCJzdHJpbmdcIjpcbiAgICAgICAgICAgIGVuYyA9IGNvZGVjRGVmO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBcIm9iamVjdFwiOlxuICAgICAgICAgICAgZm9yICh2YXIga2V5IGluIGNvZGVjRGVmKVxuICAgICAgICAgICAgICBjb2RlY09wdGlvbnNba2V5XSA9IGNvZGVjRGVmW2tleV07XG4gICAgICAgICAgICBpZiAoIWNvZGVjT3B0aW9ucy5lbmNvZGluZ05hbWUpXG4gICAgICAgICAgICAgIGNvZGVjT3B0aW9ucy5lbmNvZGluZ05hbWUgPSBlbmM7XG4gICAgICAgICAgICBlbmMgPSBjb2RlY0RlZi50eXBlO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBcImZ1bmN0aW9uXCI6XG4gICAgICAgICAgICBpZiAoIWNvZGVjT3B0aW9ucy5lbmNvZGluZ05hbWUpXG4gICAgICAgICAgICAgIGNvZGVjT3B0aW9ucy5lbmNvZGluZ05hbWUgPSBlbmM7XG4gICAgICAgICAgICBjb2RlYyA9IG5ldyBjb2RlY0RlZihjb2RlY09wdGlvbnMsIGljb252KTtcbiAgICAgICAgICAgIGljb252Ll9jb2RlY0RhdGFDYWNoZVtjb2RlY09wdGlvbnMuZW5jb2RpbmdOYW1lXSA9IGNvZGVjO1xuICAgICAgICAgICAgcmV0dXJuIGNvZGVjO1xuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJFbmNvZGluZyBub3QgcmVjb2duaXplZDogJ1wiICsgZW5jb2RpbmcgKyBcIicgKHNlYXJjaGVkIGFzOiAnXCIgKyBlbmMgKyBcIicpXCIpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfTtcbiAgICBpY29udi5fY2Fub25pY2FsaXplRW5jb2RpbmcgPSBmdW5jdGlvbihlbmNvZGluZykge1xuICAgICAgcmV0dXJuIChcIlwiICsgZW5jb2RpbmcpLnRvTG93ZXJDYXNlKCkucmVwbGFjZSgvOlxcZHs0fSR8W14wLTlhLXpdL2csIFwiXCIpO1xuICAgIH07XG4gICAgaWNvbnYuZ2V0RW5jb2RlciA9IGZ1bmN0aW9uIGdldEVuY29kZXIoZW5jb2RpbmcsIG9wdGlvbnMpIHtcbiAgICAgIHZhciBjb2RlYyA9IGljb252LmdldENvZGVjKGVuY29kaW5nKSwgZW5jb2RlciA9IG5ldyBjb2RlYy5lbmNvZGVyKG9wdGlvbnMsIGNvZGVjKTtcbiAgICAgIGlmIChjb2RlYy5ib21Bd2FyZSAmJiBvcHRpb25zICYmIG9wdGlvbnMuYWRkQk9NKVxuICAgICAgICBlbmNvZGVyID0gbmV3IGJvbUhhbmRsaW5nLlByZXBlbmRCT00oZW5jb2Rlciwgb3B0aW9ucyk7XG4gICAgICByZXR1cm4gZW5jb2RlcjtcbiAgICB9O1xuICAgIGljb252LmdldERlY29kZXIgPSBmdW5jdGlvbiBnZXREZWNvZGVyKGVuY29kaW5nLCBvcHRpb25zKSB7XG4gICAgICB2YXIgY29kZWMgPSBpY29udi5nZXRDb2RlYyhlbmNvZGluZyksIGRlY29kZXIgPSBuZXcgY29kZWMuZGVjb2RlcihvcHRpb25zLCBjb2RlYyk7XG4gICAgICBpZiAoY29kZWMuYm9tQXdhcmUgJiYgIShvcHRpb25zICYmIG9wdGlvbnMuc3RyaXBCT00gPT09IGZhbHNlKSlcbiAgICAgICAgZGVjb2RlciA9IG5ldyBib21IYW5kbGluZy5TdHJpcEJPTShkZWNvZGVyLCBvcHRpb25zKTtcbiAgICAgIHJldHVybiBkZWNvZGVyO1xuICAgIH07XG4gICAgaWNvbnYuZW5hYmxlU3RyZWFtaW5nQVBJID0gZnVuY3Rpb24gZW5hYmxlU3RyZWFtaW5nQVBJKHN0cmVhbV9tb2R1bGUyKSB7XG4gICAgICBpZiAoaWNvbnYuc3VwcG9ydHNTdHJlYW1zKVxuICAgICAgICByZXR1cm47XG4gICAgICB2YXIgc3RyZWFtcyA9IHJlcXVpcmVfc3RyZWFtcygpKHN0cmVhbV9tb2R1bGUyKTtcbiAgICAgIGljb252Lkljb252TGl0ZUVuY29kZXJTdHJlYW0gPSBzdHJlYW1zLkljb252TGl0ZUVuY29kZXJTdHJlYW07XG4gICAgICBpY29udi5JY29udkxpdGVEZWNvZGVyU3RyZWFtID0gc3RyZWFtcy5JY29udkxpdGVEZWNvZGVyU3RyZWFtO1xuICAgICAgaWNvbnYuZW5jb2RlU3RyZWFtID0gZnVuY3Rpb24gZW5jb2RlU3RyZWFtKGVuY29kaW5nLCBvcHRpb25zKSB7XG4gICAgICAgIHJldHVybiBuZXcgaWNvbnYuSWNvbnZMaXRlRW5jb2RlclN0cmVhbShpY29udi5nZXRFbmNvZGVyKGVuY29kaW5nLCBvcHRpb25zKSwgb3B0aW9ucyk7XG4gICAgICB9O1xuICAgICAgaWNvbnYuZGVjb2RlU3RyZWFtID0gZnVuY3Rpb24gZGVjb2RlU3RyZWFtKGVuY29kaW5nLCBvcHRpb25zKSB7XG4gICAgICAgIHJldHVybiBuZXcgaWNvbnYuSWNvbnZMaXRlRGVjb2RlclN0cmVhbShpY29udi5nZXREZWNvZGVyKGVuY29kaW5nLCBvcHRpb25zKSwgb3B0aW9ucyk7XG4gICAgICB9O1xuICAgICAgaWNvbnYuc3VwcG9ydHNTdHJlYW1zID0gdHJ1ZTtcbiAgICB9O1xuICAgIHZhciBzdHJlYW1fbW9kdWxlO1xuICAgIHRyeSB7XG4gICAgICBzdHJlYW1fbW9kdWxlID0gcmVxdWlyZShcInN0cmVhbVwiKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgfVxuICAgIGlmIChzdHJlYW1fbW9kdWxlICYmIHN0cmVhbV9tb2R1bGUuVHJhbnNmb3JtKSB7XG4gICAgICBpY29udi5lbmFibGVTdHJlYW1pbmdBUEkoc3RyZWFtX21vZHVsZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGljb252LmVuY29kZVN0cmVhbSA9IGljb252LmRlY29kZVN0cmVhbSA9IGZ1bmN0aW9uKCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJpY29udi1saXRlIFN0cmVhbWluZyBBUEkgaXMgbm90IGVuYWJsZWQuIFVzZSBpY29udi5lbmFibGVTdHJlYW1pbmdBUEkocmVxdWlyZSgnc3RyZWFtJykpOyB0byBlbmFibGUgaXQuXCIpO1xuICAgICAgfTtcbiAgICB9XG4gICAgaWYgKGZhbHNlKSB7XG4gICAgICBjb25zb2xlLmVycm9yKFwiaWNvbnYtbGl0ZSB3YXJuaW5nOiBqcyBmaWxlcyB1c2Ugbm9uLXV0ZjggZW5jb2RpbmcuIFNlZSBodHRwczovL2dpdGh1Yi5jb20vYXNodHVjaGtpbi9pY29udi1saXRlL3dpa2kvSmF2YXNjcmlwdC1zb3VyY2UtZmlsZS1lbmNvZGluZ3MgZm9yIG1vcmUgaW5mby5cIik7XG4gICAgfVxuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL3VucGlwZS9pbmRleC5qc1xudmFyIHJlcXVpcmVfdW5waXBlID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL3VucGlwZS9pbmRleC5qc1wiKGV4cG9ydHMyLCBtb2R1bGUyKSB7XG4gICAgXCJ1c2Ugc3RyaWN0XCI7XG4gICAgbW9kdWxlMi5leHBvcnRzID0gdW5waXBlO1xuICAgIGZ1bmN0aW9uIGhhc1BpcGVEYXRhTGlzdGVuZXJzKHN0cmVhbSkge1xuICAgICAgdmFyIGxpc3RlbmVycyA9IHN0cmVhbS5saXN0ZW5lcnMoXCJkYXRhXCIpO1xuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsaXN0ZW5lcnMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgaWYgKGxpc3RlbmVyc1tpXS5uYW1lID09PSBcIm9uZGF0YVwiKSB7XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgZnVuY3Rpb24gdW5waXBlKHN0cmVhbSkge1xuICAgICAgaWYgKCFzdHJlYW0pIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcImFyZ3VtZW50IHN0cmVhbSBpcyByZXF1aXJlZFwiKTtcbiAgICAgIH1cbiAgICAgIGlmICh0eXBlb2Ygc3RyZWFtLnVucGlwZSA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgIHN0cmVhbS51bnBpcGUoKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgaWYgKCFoYXNQaXBlRGF0YUxpc3RlbmVycyhzdHJlYW0pKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHZhciBsaXN0ZW5lcjtcbiAgICAgIHZhciBsaXN0ZW5lcnMgPSBzdHJlYW0ubGlzdGVuZXJzKFwiY2xvc2VcIik7XG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxpc3RlbmVycy5sZW5ndGg7IGkrKykge1xuICAgICAgICBsaXN0ZW5lciA9IGxpc3RlbmVyc1tpXTtcbiAgICAgICAgaWYgKGxpc3RlbmVyLm5hbWUgIT09IFwiY2xlYW51cFwiICYmIGxpc3RlbmVyLm5hbWUgIT09IFwib25jbG9zZVwiKSB7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgbGlzdGVuZXIuY2FsbChzdHJlYW0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9yYXctYm9keS9pbmRleC5qc1xudmFyIHJlcXVpcmVfcmF3X2JvZHkgPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvcmF3LWJvZHkvaW5kZXguanNcIihleHBvcnRzMiwgbW9kdWxlMikge1xuICAgIFwidXNlIHN0cmljdFwiO1xuICAgIHZhciBhc3luY0hvb2tzID0gdHJ5UmVxdWlyZUFzeW5jSG9va3MoKTtcbiAgICB2YXIgYnl0ZXMgPSByZXF1aXJlX2J5dGVzKCk7XG4gICAgdmFyIGNyZWF0ZUVycm9yID0gcmVxdWlyZV9odHRwX2Vycm9ycygpO1xuICAgIHZhciBpY29udiA9IHJlcXVpcmVfbGliKCk7XG4gICAgdmFyIHVucGlwZSA9IHJlcXVpcmVfdW5waXBlKCk7XG4gICAgbW9kdWxlMi5leHBvcnRzID0gZ2V0UmF3Qm9keTI7XG4gICAgdmFyIElDT05WX0VOQ09ESU5HX01FU1NBR0VfUkVHRVhQID0gL15FbmNvZGluZyBub3QgcmVjb2duaXplZDogLztcbiAgICBmdW5jdGlvbiBnZXREZWNvZGVyKGVuY29kaW5nKSB7XG4gICAgICBpZiAoIWVuY29kaW5nKSByZXR1cm4gbnVsbDtcbiAgICAgIHRyeSB7XG4gICAgICAgIHJldHVybiBpY29udi5nZXREZWNvZGVyKGVuY29kaW5nKTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgaWYgKCFJQ09OVl9FTkNPRElOR19NRVNTQUdFX1JFR0VYUC50ZXN0KGUubWVzc2FnZSkpIHRocm93IGU7XG4gICAgICAgIHRocm93IGNyZWF0ZUVycm9yKDQxNSwgXCJzcGVjaWZpZWQgZW5jb2RpbmcgdW5zdXBwb3J0ZWRcIiwge1xuICAgICAgICAgIGVuY29kaW5nLFxuICAgICAgICAgIHR5cGU6IFwiZW5jb2RpbmcudW5zdXBwb3J0ZWRcIlxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gZ2V0UmF3Qm9keTIoc3RyZWFtLCBvcHRpb25zLCBjYWxsYmFjaykge1xuICAgICAgdmFyIGRvbmUgPSBjYWxsYmFjaztcbiAgICAgIHZhciBvcHRzID0gb3B0aW9ucyB8fCB7fTtcbiAgICAgIGlmIChzdHJlYW0gPT09IHZvaWQgMCkge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiYXJndW1lbnQgc3RyZWFtIGlzIHJlcXVpcmVkXCIpO1xuICAgICAgfSBlbHNlIGlmICh0eXBlb2Ygc3RyZWFtICE9PSBcIm9iamVjdFwiIHx8IHN0cmVhbSA9PT0gbnVsbCB8fCB0eXBlb2Ygc3RyZWFtLm9uICE9PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcImFyZ3VtZW50IHN0cmVhbSBtdXN0IGJlIGEgc3RyZWFtXCIpO1xuICAgICAgfVxuICAgICAgaWYgKG9wdGlvbnMgPT09IHRydWUgfHwgdHlwZW9mIG9wdGlvbnMgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgb3B0cyA9IHtcbiAgICAgICAgICBlbmNvZGluZzogb3B0aW9uc1xuICAgICAgICB9O1xuICAgICAgfVxuICAgICAgaWYgKHR5cGVvZiBvcHRpb25zID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgZG9uZSA9IG9wdGlvbnM7XG4gICAgICAgIG9wdHMgPSB7fTtcbiAgICAgIH1cbiAgICAgIGlmIChkb25lICE9PSB2b2lkIDAgJiYgdHlwZW9mIGRvbmUgIT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiYXJndW1lbnQgY2FsbGJhY2sgbXVzdCBiZSBhIGZ1bmN0aW9uXCIpO1xuICAgICAgfVxuICAgICAgaWYgKCFkb25lICYmICFnbG9iYWwuUHJvbWlzZSkge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiYXJndW1lbnQgY2FsbGJhY2sgaXMgcmVxdWlyZWRcIik7XG4gICAgICB9XG4gICAgICB2YXIgZW5jb2RpbmcgPSBvcHRzLmVuY29kaW5nICE9PSB0cnVlID8gb3B0cy5lbmNvZGluZyA6IFwidXRmLThcIjtcbiAgICAgIHZhciBsaW1pdCA9IGJ5dGVzLnBhcnNlKG9wdHMubGltaXQpO1xuICAgICAgdmFyIGxlbmd0aCA9IG9wdHMubGVuZ3RoICE9IG51bGwgJiYgIWlzTmFOKG9wdHMubGVuZ3RoKSA/IHBhcnNlSW50KG9wdHMubGVuZ3RoLCAxMCkgOiBudWxsO1xuICAgICAgaWYgKGRvbmUpIHtcbiAgICAgICAgcmV0dXJuIHJlYWRTdHJlYW0oc3RyZWFtLCBlbmNvZGluZywgbGVuZ3RoLCBsaW1pdCwgd3JhcChkb25lKSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24gZXhlY3V0b3IocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICAgIHJlYWRTdHJlYW0oc3RyZWFtLCBlbmNvZGluZywgbGVuZ3RoLCBsaW1pdCwgZnVuY3Rpb24gb25SZWFkKGVycjIsIGJ1Zikge1xuICAgICAgICAgIGlmIChlcnIyKSByZXR1cm4gcmVqZWN0KGVycjIpO1xuICAgICAgICAgIHJlc29sdmUoYnVmKTtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9XG4gICAgZnVuY3Rpb24gaGFsdChzdHJlYW0pIHtcbiAgICAgIHVucGlwZShzdHJlYW0pO1xuICAgICAgaWYgKHR5cGVvZiBzdHJlYW0ucGF1c2UgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICBzdHJlYW0ucGF1c2UoKTtcbiAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gcmVhZFN0cmVhbShzdHJlYW0sIGVuY29kaW5nLCBsZW5ndGgsIGxpbWl0LCBjYWxsYmFjaykge1xuICAgICAgdmFyIGNvbXBsZXRlID0gZmFsc2U7XG4gICAgICB2YXIgc3luYyA9IHRydWU7XG4gICAgICBpZiAobGltaXQgIT09IG51bGwgJiYgbGVuZ3RoICE9PSBudWxsICYmIGxlbmd0aCA+IGxpbWl0KSB7XG4gICAgICAgIHJldHVybiBkb25lKGNyZWF0ZUVycm9yKDQxMywgXCJyZXF1ZXN0IGVudGl0eSB0b28gbGFyZ2VcIiwge1xuICAgICAgICAgIGV4cGVjdGVkOiBsZW5ndGgsXG4gICAgICAgICAgbGVuZ3RoLFxuICAgICAgICAgIGxpbWl0LFxuICAgICAgICAgIHR5cGU6IFwiZW50aXR5LnRvby5sYXJnZVwiXG4gICAgICAgIH0pKTtcbiAgICAgIH1cbiAgICAgIHZhciBzdGF0ZSA9IHN0cmVhbS5fcmVhZGFibGVTdGF0ZTtcbiAgICAgIGlmIChzdHJlYW0uX2RlY29kZXIgfHwgc3RhdGUgJiYgKHN0YXRlLmVuY29kaW5nIHx8IHN0YXRlLmRlY29kZXIpKSB7XG4gICAgICAgIHJldHVybiBkb25lKGNyZWF0ZUVycm9yKDUwMCwgXCJzdHJlYW0gZW5jb2Rpbmcgc2hvdWxkIG5vdCBiZSBzZXRcIiwge1xuICAgICAgICAgIHR5cGU6IFwic3RyZWFtLmVuY29kaW5nLnNldFwiXG4gICAgICAgIH0pKTtcbiAgICAgIH1cbiAgICAgIGlmICh0eXBlb2Ygc3RyZWFtLnJlYWRhYmxlICE9PSBcInVuZGVmaW5lZFwiICYmICFzdHJlYW0ucmVhZGFibGUpIHtcbiAgICAgICAgcmV0dXJuIGRvbmUoY3JlYXRlRXJyb3IoNTAwLCBcInN0cmVhbSBpcyBub3QgcmVhZGFibGVcIiwge1xuICAgICAgICAgIHR5cGU6IFwic3RyZWFtLm5vdC5yZWFkYWJsZVwiXG4gICAgICAgIH0pKTtcbiAgICAgIH1cbiAgICAgIHZhciByZWNlaXZlZCA9IDA7XG4gICAgICB2YXIgZGVjb2RlcjtcbiAgICAgIHRyeSB7XG4gICAgICAgIGRlY29kZXIgPSBnZXREZWNvZGVyKGVuY29kaW5nKTtcbiAgICAgIH0gY2F0Y2ggKGVycjIpIHtcbiAgICAgICAgcmV0dXJuIGRvbmUoZXJyMik7XG4gICAgICB9XG4gICAgICB2YXIgYnVmZmVyID0gZGVjb2RlciA/IFwiXCIgOiBbXTtcbiAgICAgIHN0cmVhbS5vbihcImFib3J0ZWRcIiwgb25BYm9ydGVkKTtcbiAgICAgIHN0cmVhbS5vbihcImNsb3NlXCIsIGNsZWFudXApO1xuICAgICAgc3RyZWFtLm9uKFwiZGF0YVwiLCBvbkRhdGEpO1xuICAgICAgc3RyZWFtLm9uKFwiZW5kXCIsIG9uRW5kKTtcbiAgICAgIHN0cmVhbS5vbihcImVycm9yXCIsIG9uRW5kKTtcbiAgICAgIHN5bmMgPSBmYWxzZTtcbiAgICAgIGZ1bmN0aW9uIGRvbmUoKSB7XG4gICAgICAgIHZhciBhcmdzID0gbmV3IEFycmF5KGFyZ3VtZW50cy5sZW5ndGgpO1xuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGFyZ3MubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICBhcmdzW2ldID0gYXJndW1lbnRzW2ldO1xuICAgICAgICB9XG4gICAgICAgIGNvbXBsZXRlID0gdHJ1ZTtcbiAgICAgICAgaWYgKHN5bmMpIHtcbiAgICAgICAgICBwcm9jZXNzLm5leHRUaWNrKGludm9rZUNhbGxiYWNrKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpbnZva2VDYWxsYmFjaygpO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGludm9rZUNhbGxiYWNrKCkge1xuICAgICAgICAgIGNsZWFudXAoKTtcbiAgICAgICAgICBpZiAoYXJnc1swXSkge1xuICAgICAgICAgICAgaGFsdChzdHJlYW0pO1xuICAgICAgICAgIH1cbiAgICAgICAgICBjYWxsYmFjay5hcHBseShudWxsLCBhcmdzKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgZnVuY3Rpb24gb25BYm9ydGVkKCkge1xuICAgICAgICBpZiAoY29tcGxldGUpIHJldHVybjtcbiAgICAgICAgZG9uZShjcmVhdGVFcnJvcig0MDAsIFwicmVxdWVzdCBhYm9ydGVkXCIsIHtcbiAgICAgICAgICBjb2RlOiBcIkVDT05OQUJPUlRFRFwiLFxuICAgICAgICAgIGV4cGVjdGVkOiBsZW5ndGgsXG4gICAgICAgICAgbGVuZ3RoLFxuICAgICAgICAgIHJlY2VpdmVkLFxuICAgICAgICAgIHR5cGU6IFwicmVxdWVzdC5hYm9ydGVkXCJcbiAgICAgICAgfSkpO1xuICAgICAgfVxuICAgICAgZnVuY3Rpb24gb25EYXRhKGNodW5rKSB7XG4gICAgICAgIGlmIChjb21wbGV0ZSkgcmV0dXJuO1xuICAgICAgICByZWNlaXZlZCArPSBjaHVuay5sZW5ndGg7XG4gICAgICAgIGlmIChsaW1pdCAhPT0gbnVsbCAmJiByZWNlaXZlZCA+IGxpbWl0KSB7XG4gICAgICAgICAgZG9uZShjcmVhdGVFcnJvcig0MTMsIFwicmVxdWVzdCBlbnRpdHkgdG9vIGxhcmdlXCIsIHtcbiAgICAgICAgICAgIGxpbWl0LFxuICAgICAgICAgICAgcmVjZWl2ZWQsXG4gICAgICAgICAgICB0eXBlOiBcImVudGl0eS50b28ubGFyZ2VcIlxuICAgICAgICAgIH0pKTtcbiAgICAgICAgfSBlbHNlIGlmIChkZWNvZGVyKSB7XG4gICAgICAgICAgYnVmZmVyICs9IGRlY29kZXIud3JpdGUoY2h1bmspO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGJ1ZmZlci5wdXNoKGNodW5rKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgZnVuY3Rpb24gb25FbmQoZXJyMikge1xuICAgICAgICBpZiAoY29tcGxldGUpIHJldHVybjtcbiAgICAgICAgaWYgKGVycjIpIHJldHVybiBkb25lKGVycjIpO1xuICAgICAgICBpZiAobGVuZ3RoICE9PSBudWxsICYmIHJlY2VpdmVkICE9PSBsZW5ndGgpIHtcbiAgICAgICAgICBkb25lKGNyZWF0ZUVycm9yKDQwMCwgXCJyZXF1ZXN0IHNpemUgZGlkIG5vdCBtYXRjaCBjb250ZW50IGxlbmd0aFwiLCB7XG4gICAgICAgICAgICBleHBlY3RlZDogbGVuZ3RoLFxuICAgICAgICAgICAgbGVuZ3RoLFxuICAgICAgICAgICAgcmVjZWl2ZWQsXG4gICAgICAgICAgICB0eXBlOiBcInJlcXVlc3Quc2l6ZS5pbnZhbGlkXCJcbiAgICAgICAgICB9KSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdmFyIHN0cmluZyA9IGRlY29kZXIgPyBidWZmZXIgKyAoZGVjb2Rlci5lbmQoKSB8fCBcIlwiKSA6IEJ1ZmZlci5jb25jYXQoYnVmZmVyKTtcbiAgICAgICAgICBkb25lKG51bGwsIHN0cmluZyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGZ1bmN0aW9uIGNsZWFudXAoKSB7XG4gICAgICAgIGJ1ZmZlciA9IG51bGw7XG4gICAgICAgIHN0cmVhbS5yZW1vdmVMaXN0ZW5lcihcImFib3J0ZWRcIiwgb25BYm9ydGVkKTtcbiAgICAgICAgc3RyZWFtLnJlbW92ZUxpc3RlbmVyKFwiZGF0YVwiLCBvbkRhdGEpO1xuICAgICAgICBzdHJlYW0ucmVtb3ZlTGlzdGVuZXIoXCJlbmRcIiwgb25FbmQpO1xuICAgICAgICBzdHJlYW0ucmVtb3ZlTGlzdGVuZXIoXCJlcnJvclwiLCBvbkVuZCk7XG4gICAgICAgIHN0cmVhbS5yZW1vdmVMaXN0ZW5lcihcImNsb3NlXCIsIGNsZWFudXApO1xuICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiB0cnlSZXF1aXJlQXN5bmNIb29rcygpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHJldHVybiByZXF1aXJlKFwiYXN5bmNfaG9va3NcIik7XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIHJldHVybiB7fTtcbiAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gd3JhcChmbikge1xuICAgICAgdmFyIHJlcztcbiAgICAgIGlmIChhc3luY0hvb2tzLkFzeW5jUmVzb3VyY2UpIHtcbiAgICAgICAgcmVzID0gbmV3IGFzeW5jSG9va3MuQXN5bmNSZXNvdXJjZShmbi5uYW1lIHx8IFwiYm91bmQtYW5vbnltb3VzLWZuXCIpO1xuICAgICAgfVxuICAgICAgaWYgKCFyZXMgfHwgIXJlcy5ydW5JbkFzeW5jU2NvcGUpIHtcbiAgICAgICAgcmV0dXJuIGZuO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHJlcy5ydW5JbkFzeW5jU2NvcGUuYmluZChyZXMsIGZuLCBudWxsKTtcbiAgICB9XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvY29udGVudC10eXBlL2luZGV4LmpzXG52YXIgcmVxdWlyZV9jb250ZW50X3R5cGUgPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvY29udGVudC10eXBlL2luZGV4LmpzXCIoZXhwb3J0czIpIHtcbiAgICBcInVzZSBzdHJpY3RcIjtcbiAgICB2YXIgUEFSQU1fUkVHRVhQID0gLzsgKihbISMkJSYnKisuXl9gfH4wLTlBLVphLXotXSspICo9ICooXCIoPzpbXFx1MDAwYlxcdTAwMjBcXHUwMDIxXFx1MDAyMy1cXHUwMDViXFx1MDA1ZC1cXHUwMDdlXFx1MDA4MC1cXHUwMGZmXXxcXFxcW1xcdTAwMGJcXHUwMDIwLVxcdTAwZmZdKSpcInxbISMkJSYnKisuXl9gfH4wLTlBLVphLXotXSspICovZztcbiAgICB2YXIgVEVYVF9SRUdFWFAgPSAvXltcXHUwMDBiXFx1MDAyMC1cXHUwMDdlXFx1MDA4MC1cXHUwMGZmXSskLztcbiAgICB2YXIgVE9LRU5fUkVHRVhQID0gL15bISMkJSYnKisuXl9gfH4wLTlBLVphLXotXSskLztcbiAgICB2YXIgUUVTQ19SRUdFWFAgPSAvXFxcXChbXFx1MDAwYlxcdTAwMjAtXFx1MDBmZl0pL2c7XG4gICAgdmFyIFFVT1RFX1JFR0VYUCA9IC8oW1xcXFxcIl0pL2c7XG4gICAgdmFyIFRZUEVfUkVHRVhQID0gL15bISMkJSYnKisuXl9gfH4wLTlBLVphLXotXStcXC9bISMkJSYnKisuXl9gfH4wLTlBLVphLXotXSskLztcbiAgICBleHBvcnRzMi5mb3JtYXQgPSBmb3JtYXQ7XG4gICAgZXhwb3J0czIucGFyc2UgPSBwYXJzZTtcbiAgICBmdW5jdGlvbiBmb3JtYXQob2JqKSB7XG4gICAgICBpZiAoIW9iaiB8fCB0eXBlb2Ygb2JqICE9PSBcIm9iamVjdFwiKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJhcmd1bWVudCBvYmogaXMgcmVxdWlyZWRcIik7XG4gICAgICB9XG4gICAgICB2YXIgcGFyYW1ldGVycyA9IG9iai5wYXJhbWV0ZXJzO1xuICAgICAgdmFyIHR5cGUgPSBvYmoudHlwZTtcbiAgICAgIGlmICghdHlwZSB8fCAhVFlQRV9SRUdFWFAudGVzdCh0eXBlKSkge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiaW52YWxpZCB0eXBlXCIpO1xuICAgICAgfVxuICAgICAgdmFyIHN0cmluZyA9IHR5cGU7XG4gICAgICBpZiAocGFyYW1ldGVycyAmJiB0eXBlb2YgcGFyYW1ldGVycyA9PT0gXCJvYmplY3RcIikge1xuICAgICAgICB2YXIgcGFyYW07XG4gICAgICAgIHZhciBwYXJhbXMgPSBPYmplY3Qua2V5cyhwYXJhbWV0ZXJzKS5zb3J0KCk7XG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcGFyYW1zLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgcGFyYW0gPSBwYXJhbXNbaV07XG4gICAgICAgICAgaWYgKCFUT0tFTl9SRUdFWFAudGVzdChwYXJhbSkpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJpbnZhbGlkIHBhcmFtZXRlciBuYW1lXCIpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBzdHJpbmcgKz0gXCI7IFwiICsgcGFyYW0gKyBcIj1cIiArIHFzdHJpbmcocGFyYW1ldGVyc1twYXJhbV0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gc3RyaW5nO1xuICAgIH1cbiAgICBmdW5jdGlvbiBwYXJzZShzdHJpbmcpIHtcbiAgICAgIGlmICghc3RyaW5nKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJhcmd1bWVudCBzdHJpbmcgaXMgcmVxdWlyZWRcIik7XG4gICAgICB9XG4gICAgICB2YXIgaGVhZGVyID0gdHlwZW9mIHN0cmluZyA9PT0gXCJvYmplY3RcIiA/IGdldGNvbnRlbnR0eXBlKHN0cmluZykgOiBzdHJpbmc7XG4gICAgICBpZiAodHlwZW9mIGhlYWRlciAhPT0gXCJzdHJpbmdcIikge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiYXJndW1lbnQgc3RyaW5nIGlzIHJlcXVpcmVkIHRvIGJlIGEgc3RyaW5nXCIpO1xuICAgICAgfVxuICAgICAgdmFyIGluZGV4ID0gaGVhZGVyLmluZGV4T2YoXCI7XCIpO1xuICAgICAgdmFyIHR5cGUgPSBpbmRleCAhPT0gLTEgPyBoZWFkZXIuc2xpY2UoMCwgaW5kZXgpLnRyaW0oKSA6IGhlYWRlci50cmltKCk7XG4gICAgICBpZiAoIVRZUEVfUkVHRVhQLnRlc3QodHlwZSkpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcImludmFsaWQgbWVkaWEgdHlwZVwiKTtcbiAgICAgIH1cbiAgICAgIHZhciBvYmogPSBuZXcgQ29udGVudFR5cGUodHlwZS50b0xvd2VyQ2FzZSgpKTtcbiAgICAgIGlmIChpbmRleCAhPT0gLTEpIHtcbiAgICAgICAgdmFyIGtleTtcbiAgICAgICAgdmFyIG1hdGNoO1xuICAgICAgICB2YXIgdmFsdWU7XG4gICAgICAgIFBBUkFNX1JFR0VYUC5sYXN0SW5kZXggPSBpbmRleDtcbiAgICAgICAgd2hpbGUgKG1hdGNoID0gUEFSQU1fUkVHRVhQLmV4ZWMoaGVhZGVyKSkge1xuICAgICAgICAgIGlmIChtYXRjaC5pbmRleCAhPT0gaW5kZXgpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJpbnZhbGlkIHBhcmFtZXRlciBmb3JtYXRcIik7XG4gICAgICAgICAgfVxuICAgICAgICAgIGluZGV4ICs9IG1hdGNoWzBdLmxlbmd0aDtcbiAgICAgICAgICBrZXkgPSBtYXRjaFsxXS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICAgIHZhbHVlID0gbWF0Y2hbMl07XG4gICAgICAgICAgaWYgKHZhbHVlLmNoYXJDb2RlQXQoMCkgPT09IDM0KSB7XG4gICAgICAgICAgICB2YWx1ZSA9IHZhbHVlLnNsaWNlKDEsIC0xKTtcbiAgICAgICAgICAgIGlmICh2YWx1ZS5pbmRleE9mKFwiXFxcXFwiKSAhPT0gLTEpIHtcbiAgICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZS5yZXBsYWNlKFFFU0NfUkVHRVhQLCBcIiQxXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBvYmoucGFyYW1ldGVyc1trZXldID0gdmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGluZGV4ICE9PSBoZWFkZXIubGVuZ3RoKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcImludmFsaWQgcGFyYW1ldGVyIGZvcm1hdFwiKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIG9iajtcbiAgICB9XG4gICAgZnVuY3Rpb24gZ2V0Y29udGVudHR5cGUob2JqKSB7XG4gICAgICB2YXIgaGVhZGVyO1xuICAgICAgaWYgKHR5cGVvZiBvYmouZ2V0SGVhZGVyID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgaGVhZGVyID0gb2JqLmdldEhlYWRlcihcImNvbnRlbnQtdHlwZVwiKTtcbiAgICAgIH0gZWxzZSBpZiAodHlwZW9mIG9iai5oZWFkZXJzID09PSBcIm9iamVjdFwiKSB7XG4gICAgICAgIGhlYWRlciA9IG9iai5oZWFkZXJzICYmIG9iai5oZWFkZXJzW1wiY29udGVudC10eXBlXCJdO1xuICAgICAgfVxuICAgICAgaWYgKHR5cGVvZiBoZWFkZXIgIT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcImNvbnRlbnQtdHlwZSBoZWFkZXIgaXMgbWlzc2luZyBmcm9tIG9iamVjdFwiKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBoZWFkZXI7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHFzdHJpbmcodmFsKSB7XG4gICAgICB2YXIgc3RyID0gU3RyaW5nKHZhbCk7XG4gICAgICBpZiAoVE9LRU5fUkVHRVhQLnRlc3Qoc3RyKSkge1xuICAgICAgICByZXR1cm4gc3RyO1xuICAgICAgfVxuICAgICAgaWYgKHN0ci5sZW5ndGggPiAwICYmICFURVhUX1JFR0VYUC50ZXN0KHN0cikpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcImludmFsaWQgcGFyYW1ldGVyIHZhbHVlXCIpO1xuICAgICAgfVxuICAgICAgcmV0dXJuICdcIicgKyBzdHIucmVwbGFjZShRVU9URV9SRUdFWFAsIFwiXFxcXCQxXCIpICsgJ1wiJztcbiAgICB9XG4gICAgZnVuY3Rpb24gQ29udGVudFR5cGUodHlwZSkge1xuICAgICAgdGhpcy5wYXJhbWV0ZXJzID0gLyogQF9fUFVSRV9fICovIE9iamVjdC5jcmVhdGUobnVsbCk7XG4gICAgICB0aGlzLnR5cGUgPSB0eXBlO1xuICAgIH1cbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9tcy9pbmRleC5qc1xudmFyIHJlcXVpcmVfbXMgPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvbXMvaW5kZXguanNcIihleHBvcnRzMiwgbW9kdWxlMikge1xuICAgIHZhciBzID0gMWUzO1xuICAgIHZhciBtID0gcyAqIDYwO1xuICAgIHZhciBoID0gbSAqIDYwO1xuICAgIHZhciBkID0gaCAqIDI0O1xuICAgIHZhciB3ID0gZCAqIDc7XG4gICAgdmFyIHkgPSBkICogMzY1LjI1O1xuICAgIG1vZHVsZTIuZXhwb3J0cyA9IGZ1bmN0aW9uKHZhbCwgb3B0aW9ucykge1xuICAgICAgb3B0aW9ucyA9IG9wdGlvbnMgfHwge307XG4gICAgICB2YXIgdHlwZSA9IHR5cGVvZiB2YWw7XG4gICAgICBpZiAodHlwZSA9PT0gXCJzdHJpbmdcIiAmJiB2YWwubGVuZ3RoID4gMCkge1xuICAgICAgICByZXR1cm4gcGFyc2UodmFsKTtcbiAgICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gXCJudW1iZXJcIiAmJiBpc0Zpbml0ZSh2YWwpKSB7XG4gICAgICAgIHJldHVybiBvcHRpb25zLmxvbmcgPyBmbXRMb25nKHZhbCkgOiBmbXRTaG9ydCh2YWwpO1xuICAgICAgfVxuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBcInZhbCBpcyBub3QgYSBub24tZW1wdHkgc3RyaW5nIG9yIGEgdmFsaWQgbnVtYmVyLiB2YWw9XCIgKyBKU09OLnN0cmluZ2lmeSh2YWwpXG4gICAgICApO1xuICAgIH07XG4gICAgZnVuY3Rpb24gcGFyc2Uoc3RyKSB7XG4gICAgICBzdHIgPSBTdHJpbmcoc3RyKTtcbiAgICAgIGlmIChzdHIubGVuZ3RoID4gMTAwKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHZhciBtYXRjaCA9IC9eKC0/KD86XFxkKyk/XFwuP1xcZCspICoobWlsbGlzZWNvbmRzP3xtc2Vjcz98bXN8c2Vjb25kcz98c2Vjcz98c3xtaW51dGVzP3xtaW5zP3xtfGhvdXJzP3xocnM/fGh8ZGF5cz98ZHx3ZWVrcz98d3x5ZWFycz98eXJzP3x5KT8kL2kuZXhlYyhcbiAgICAgICAgc3RyXG4gICAgICApO1xuICAgICAgaWYgKCFtYXRjaCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICB2YXIgbiA9IHBhcnNlRmxvYXQobWF0Y2hbMV0pO1xuICAgICAgdmFyIHR5cGUgPSAobWF0Y2hbMl0gfHwgXCJtc1wiKS50b0xvd2VyQ2FzZSgpO1xuICAgICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICAgIGNhc2UgXCJ5ZWFyc1wiOlxuICAgICAgICBjYXNlIFwieWVhclwiOlxuICAgICAgICBjYXNlIFwieXJzXCI6XG4gICAgICAgIGNhc2UgXCJ5clwiOlxuICAgICAgICBjYXNlIFwieVwiOlxuICAgICAgICAgIHJldHVybiBuICogeTtcbiAgICAgICAgY2FzZSBcIndlZWtzXCI6XG4gICAgICAgIGNhc2UgXCJ3ZWVrXCI6XG4gICAgICAgIGNhc2UgXCJ3XCI6XG4gICAgICAgICAgcmV0dXJuIG4gKiB3O1xuICAgICAgICBjYXNlIFwiZGF5c1wiOlxuICAgICAgICBjYXNlIFwiZGF5XCI6XG4gICAgICAgIGNhc2UgXCJkXCI6XG4gICAgICAgICAgcmV0dXJuIG4gKiBkO1xuICAgICAgICBjYXNlIFwiaG91cnNcIjpcbiAgICAgICAgY2FzZSBcImhvdXJcIjpcbiAgICAgICAgY2FzZSBcImhyc1wiOlxuICAgICAgICBjYXNlIFwiaHJcIjpcbiAgICAgICAgY2FzZSBcImhcIjpcbiAgICAgICAgICByZXR1cm4gbiAqIGg7XG4gICAgICAgIGNhc2UgXCJtaW51dGVzXCI6XG4gICAgICAgIGNhc2UgXCJtaW51dGVcIjpcbiAgICAgICAgY2FzZSBcIm1pbnNcIjpcbiAgICAgICAgY2FzZSBcIm1pblwiOlxuICAgICAgICBjYXNlIFwibVwiOlxuICAgICAgICAgIHJldHVybiBuICogbTtcbiAgICAgICAgY2FzZSBcInNlY29uZHNcIjpcbiAgICAgICAgY2FzZSBcInNlY29uZFwiOlxuICAgICAgICBjYXNlIFwic2Vjc1wiOlxuICAgICAgICBjYXNlIFwic2VjXCI6XG4gICAgICAgIGNhc2UgXCJzXCI6XG4gICAgICAgICAgcmV0dXJuIG4gKiBzO1xuICAgICAgICBjYXNlIFwibWlsbGlzZWNvbmRzXCI6XG4gICAgICAgIGNhc2UgXCJtaWxsaXNlY29uZFwiOlxuICAgICAgICBjYXNlIFwibXNlY3NcIjpcbiAgICAgICAgY2FzZSBcIm1zZWNcIjpcbiAgICAgICAgY2FzZSBcIm1zXCI6XG4gICAgICAgICAgcmV0dXJuIG47XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgcmV0dXJuIHZvaWQgMDtcbiAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gZm10U2hvcnQobXMpIHtcbiAgICAgIHZhciBtc0FicyA9IE1hdGguYWJzKG1zKTtcbiAgICAgIGlmIChtc0FicyA+PSBkKSB7XG4gICAgICAgIHJldHVybiBNYXRoLnJvdW5kKG1zIC8gZCkgKyBcImRcIjtcbiAgICAgIH1cbiAgICAgIGlmIChtc0FicyA+PSBoKSB7XG4gICAgICAgIHJldHVybiBNYXRoLnJvdW5kKG1zIC8gaCkgKyBcImhcIjtcbiAgICAgIH1cbiAgICAgIGlmIChtc0FicyA+PSBtKSB7XG4gICAgICAgIHJldHVybiBNYXRoLnJvdW5kKG1zIC8gbSkgKyBcIm1cIjtcbiAgICAgIH1cbiAgICAgIGlmIChtc0FicyA+PSBzKSB7XG4gICAgICAgIHJldHVybiBNYXRoLnJvdW5kKG1zIC8gcykgKyBcInNcIjtcbiAgICAgIH1cbiAgICAgIHJldHVybiBtcyArIFwibXNcIjtcbiAgICB9XG4gICAgZnVuY3Rpb24gZm10TG9uZyhtcykge1xuICAgICAgdmFyIG1zQWJzID0gTWF0aC5hYnMobXMpO1xuICAgICAgaWYgKG1zQWJzID49IGQpIHtcbiAgICAgICAgcmV0dXJuIHBsdXJhbChtcywgbXNBYnMsIGQsIFwiZGF5XCIpO1xuICAgICAgfVxuICAgICAgaWYgKG1zQWJzID49IGgpIHtcbiAgICAgICAgcmV0dXJuIHBsdXJhbChtcywgbXNBYnMsIGgsIFwiaG91clwiKTtcbiAgICAgIH1cbiAgICAgIGlmIChtc0FicyA+PSBtKSB7XG4gICAgICAgIHJldHVybiBwbHVyYWwobXMsIG1zQWJzLCBtLCBcIm1pbnV0ZVwiKTtcbiAgICAgIH1cbiAgICAgIGlmIChtc0FicyA+PSBzKSB7XG4gICAgICAgIHJldHVybiBwbHVyYWwobXMsIG1zQWJzLCBzLCBcInNlY29uZFwiKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBtcyArIFwiIG1zXCI7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHBsdXJhbChtcywgbXNBYnMsIG4sIG5hbWUpIHtcbiAgICAgIHZhciBpc1BsdXJhbCA9IG1zQWJzID49IG4gKiAxLjU7XG4gICAgICByZXR1cm4gTWF0aC5yb3VuZChtcyAvIG4pICsgXCIgXCIgKyBuYW1lICsgKGlzUGx1cmFsID8gXCJzXCIgOiBcIlwiKTtcbiAgICB9XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvZGVidWcvc3JjL2NvbW1vbi5qc1xudmFyIHJlcXVpcmVfY29tbW9uID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL2RlYnVnL3NyYy9jb21tb24uanNcIihleHBvcnRzMiwgbW9kdWxlMikge1xuICAgIGZ1bmN0aW9uIHNldHVwKGVudikge1xuICAgICAgY3JlYXRlRGVidWcuZGVidWcgPSBjcmVhdGVEZWJ1ZztcbiAgICAgIGNyZWF0ZURlYnVnLmRlZmF1bHQgPSBjcmVhdGVEZWJ1ZztcbiAgICAgIGNyZWF0ZURlYnVnLmNvZXJjZSA9IGNvZXJjZTI7XG4gICAgICBjcmVhdGVEZWJ1Zy5kaXNhYmxlID0gZGlzYWJsZTtcbiAgICAgIGNyZWF0ZURlYnVnLmVuYWJsZSA9IGVuYWJsZTtcbiAgICAgIGNyZWF0ZURlYnVnLmVuYWJsZWQgPSBlbmFibGVkO1xuICAgICAgY3JlYXRlRGVidWcuaHVtYW5pemUgPSByZXF1aXJlX21zKCk7XG4gICAgICBjcmVhdGVEZWJ1Zy5kZXN0cm95ID0gZGVzdHJveTtcbiAgICAgIE9iamVjdC5rZXlzKGVudikuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgICAgIGNyZWF0ZURlYnVnW2tleV0gPSBlbnZba2V5XTtcbiAgICAgIH0pO1xuICAgICAgY3JlYXRlRGVidWcubmFtZXMgPSBbXTtcbiAgICAgIGNyZWF0ZURlYnVnLnNraXBzID0gW107XG4gICAgICBjcmVhdGVEZWJ1Zy5mb3JtYXR0ZXJzID0ge307XG4gICAgICBmdW5jdGlvbiBzZWxlY3RDb2xvcihuYW1lc3BhY2UpIHtcbiAgICAgICAgbGV0IGhhc2ggPSAwO1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG5hbWVzcGFjZS5sZW5ndGg7IGkrKykge1xuICAgICAgICAgIGhhc2ggPSAoaGFzaCA8PCA1KSAtIGhhc2ggKyBuYW1lc3BhY2UuY2hhckNvZGVBdChpKTtcbiAgICAgICAgICBoYXNoIHw9IDA7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGNyZWF0ZURlYnVnLmNvbG9yc1tNYXRoLmFicyhoYXNoKSAlIGNyZWF0ZURlYnVnLmNvbG9ycy5sZW5ndGhdO1xuICAgICAgfVxuICAgICAgY3JlYXRlRGVidWcuc2VsZWN0Q29sb3IgPSBzZWxlY3RDb2xvcjtcbiAgICAgIGZ1bmN0aW9uIGNyZWF0ZURlYnVnKG5hbWVzcGFjZSkge1xuICAgICAgICBsZXQgcHJldlRpbWU7XG4gICAgICAgIGxldCBlbmFibGVPdmVycmlkZSA9IG51bGw7XG4gICAgICAgIGxldCBuYW1lc3BhY2VzQ2FjaGU7XG4gICAgICAgIGxldCBlbmFibGVkQ2FjaGU7XG4gICAgICAgIGZ1bmN0aW9uIGRlYnVnKC4uLmFyZ3MpIHtcbiAgICAgICAgICBpZiAoIWRlYnVnLmVuYWJsZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG4gICAgICAgICAgY29uc3Qgc2VsZjIgPSBkZWJ1ZztcbiAgICAgICAgICBjb25zdCBjdXJyID0gTnVtYmVyKC8qIEBfX1BVUkVfXyAqLyBuZXcgRGF0ZSgpKTtcbiAgICAgICAgICBjb25zdCBtcyA9IGN1cnIgLSAocHJldlRpbWUgfHwgY3Vycik7XG4gICAgICAgICAgc2VsZjIuZGlmZiA9IG1zO1xuICAgICAgICAgIHNlbGYyLnByZXYgPSBwcmV2VGltZTtcbiAgICAgICAgICBzZWxmMi5jdXJyID0gY3VycjtcbiAgICAgICAgICBwcmV2VGltZSA9IGN1cnI7XG4gICAgICAgICAgYXJnc1swXSA9IGNyZWF0ZURlYnVnLmNvZXJjZShhcmdzWzBdKTtcbiAgICAgICAgICBpZiAodHlwZW9mIGFyZ3NbMF0gIT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICAgIGFyZ3MudW5zaGlmdChcIiVPXCIpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBsZXQgaW5kZXggPSAwO1xuICAgICAgICAgIGFyZ3NbMF0gPSBhcmdzWzBdLnJlcGxhY2UoLyUoW2EtekEtWiVdKS9nLCAobWF0Y2gsIGZvcm1hdCkgPT4ge1xuICAgICAgICAgICAgaWYgKG1hdGNoID09PSBcIiUlXCIpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIFwiJVwiO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaW5kZXgrKztcbiAgICAgICAgICAgIGNvbnN0IGZvcm1hdHRlciA9IGNyZWF0ZURlYnVnLmZvcm1hdHRlcnNbZm9ybWF0XTtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgZm9ybWF0dGVyID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgICAgICAgY29uc3QgdmFsID0gYXJnc1tpbmRleF07XG4gICAgICAgICAgICAgIG1hdGNoID0gZm9ybWF0dGVyLmNhbGwoc2VsZjIsIHZhbCk7XG4gICAgICAgICAgICAgIGFyZ3Muc3BsaWNlKGluZGV4LCAxKTtcbiAgICAgICAgICAgICAgaW5kZXgtLTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBtYXRjaDtcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBjcmVhdGVEZWJ1Zy5mb3JtYXRBcmdzLmNhbGwoc2VsZjIsIGFyZ3MpO1xuICAgICAgICAgIGNvbnN0IGxvZ0ZuID0gc2VsZjIubG9nIHx8IGNyZWF0ZURlYnVnLmxvZztcbiAgICAgICAgICBsb2dGbi5hcHBseShzZWxmMiwgYXJncyk7XG4gICAgICAgIH1cbiAgICAgICAgZGVidWcubmFtZXNwYWNlID0gbmFtZXNwYWNlO1xuICAgICAgICBkZWJ1Zy51c2VDb2xvcnMgPSBjcmVhdGVEZWJ1Zy51c2VDb2xvcnMoKTtcbiAgICAgICAgZGVidWcuY29sb3IgPSBjcmVhdGVEZWJ1Zy5zZWxlY3RDb2xvcihuYW1lc3BhY2UpO1xuICAgICAgICBkZWJ1Zy5leHRlbmQgPSBleHRlbmQ7XG4gICAgICAgIGRlYnVnLmRlc3Ryb3kgPSBjcmVhdGVEZWJ1Zy5kZXN0cm95O1xuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZGVidWcsIFwiZW5hYmxlZFwiLCB7XG4gICAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgICBjb25maWd1cmFibGU6IGZhbHNlLFxuICAgICAgICAgIGdldDogKCkgPT4ge1xuICAgICAgICAgICAgaWYgKGVuYWJsZU92ZXJyaWRlICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgIHJldHVybiBlbmFibGVPdmVycmlkZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChuYW1lc3BhY2VzQ2FjaGUgIT09IGNyZWF0ZURlYnVnLm5hbWVzcGFjZXMpIHtcbiAgICAgICAgICAgICAgbmFtZXNwYWNlc0NhY2hlID0gY3JlYXRlRGVidWcubmFtZXNwYWNlcztcbiAgICAgICAgICAgICAgZW5hYmxlZENhY2hlID0gY3JlYXRlRGVidWcuZW5hYmxlZChuYW1lc3BhY2UpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGVuYWJsZWRDYWNoZTtcbiAgICAgICAgICB9LFxuICAgICAgICAgIHNldDogKHYpID0+IHtcbiAgICAgICAgICAgIGVuYWJsZU92ZXJyaWRlID0gdjtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICBpZiAodHlwZW9mIGNyZWF0ZURlYnVnLmluaXQgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICAgIGNyZWF0ZURlYnVnLmluaXQoZGVidWcpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBkZWJ1ZztcbiAgICAgIH1cbiAgICAgIGZ1bmN0aW9uIGV4dGVuZChuYW1lc3BhY2UsIGRlbGltaXRlcikge1xuICAgICAgICBjb25zdCBuZXdEZWJ1ZyA9IGNyZWF0ZURlYnVnKHRoaXMubmFtZXNwYWNlICsgKHR5cGVvZiBkZWxpbWl0ZXIgPT09IFwidW5kZWZpbmVkXCIgPyBcIjpcIiA6IGRlbGltaXRlcikgKyBuYW1lc3BhY2UpO1xuICAgICAgICBuZXdEZWJ1Zy5sb2cgPSB0aGlzLmxvZztcbiAgICAgICAgcmV0dXJuIG5ld0RlYnVnO1xuICAgICAgfVxuICAgICAgZnVuY3Rpb24gZW5hYmxlKG5hbWVzcGFjZXMpIHtcbiAgICAgICAgY3JlYXRlRGVidWcuc2F2ZShuYW1lc3BhY2VzKTtcbiAgICAgICAgY3JlYXRlRGVidWcubmFtZXNwYWNlcyA9IG5hbWVzcGFjZXM7XG4gICAgICAgIGNyZWF0ZURlYnVnLm5hbWVzID0gW107XG4gICAgICAgIGNyZWF0ZURlYnVnLnNraXBzID0gW107XG4gICAgICAgIGNvbnN0IHNwbGl0ID0gKHR5cGVvZiBuYW1lc3BhY2VzID09PSBcInN0cmluZ1wiID8gbmFtZXNwYWNlcyA6IFwiXCIpLnRyaW0oKS5yZXBsYWNlKFwiIFwiLCBcIixcIikuc3BsaXQoXCIsXCIpLmZpbHRlcihCb29sZWFuKTtcbiAgICAgICAgZm9yIChjb25zdCBucyBvZiBzcGxpdCkge1xuICAgICAgICAgIGlmIChuc1swXSA9PT0gXCItXCIpIHtcbiAgICAgICAgICAgIGNyZWF0ZURlYnVnLnNraXBzLnB1c2gobnMuc2xpY2UoMSkpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjcmVhdGVEZWJ1Zy5uYW1lcy5wdXNoKG5zKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGZ1bmN0aW9uIG1hdGNoZXNUZW1wbGF0ZShzZWFyY2gsIHRlbXBsYXRlKSB7XG4gICAgICAgIGxldCBzZWFyY2hJbmRleCA9IDA7XG4gICAgICAgIGxldCB0ZW1wbGF0ZUluZGV4ID0gMDtcbiAgICAgICAgbGV0IHN0YXJJbmRleCA9IC0xO1xuICAgICAgICBsZXQgbWF0Y2hJbmRleCA9IDA7XG4gICAgICAgIHdoaWxlIChzZWFyY2hJbmRleCA8IHNlYXJjaC5sZW5ndGgpIHtcbiAgICAgICAgICBpZiAodGVtcGxhdGVJbmRleCA8IHRlbXBsYXRlLmxlbmd0aCAmJiAodGVtcGxhdGVbdGVtcGxhdGVJbmRleF0gPT09IHNlYXJjaFtzZWFyY2hJbmRleF0gfHwgdGVtcGxhdGVbdGVtcGxhdGVJbmRleF0gPT09IFwiKlwiKSkge1xuICAgICAgICAgICAgaWYgKHRlbXBsYXRlW3RlbXBsYXRlSW5kZXhdID09PSBcIipcIikge1xuICAgICAgICAgICAgICBzdGFySW5kZXggPSB0ZW1wbGF0ZUluZGV4O1xuICAgICAgICAgICAgICBtYXRjaEluZGV4ID0gc2VhcmNoSW5kZXg7XG4gICAgICAgICAgICAgIHRlbXBsYXRlSW5kZXgrKztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHNlYXJjaEluZGV4Kys7XG4gICAgICAgICAgICAgIHRlbXBsYXRlSW5kZXgrKztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2UgaWYgKHN0YXJJbmRleCAhPT0gLTEpIHtcbiAgICAgICAgICAgIHRlbXBsYXRlSW5kZXggPSBzdGFySW5kZXggKyAxO1xuICAgICAgICAgICAgbWF0Y2hJbmRleCsrO1xuICAgICAgICAgICAgc2VhcmNoSW5kZXggPSBtYXRjaEluZGV4O1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHdoaWxlICh0ZW1wbGF0ZUluZGV4IDwgdGVtcGxhdGUubGVuZ3RoICYmIHRlbXBsYXRlW3RlbXBsYXRlSW5kZXhdID09PSBcIipcIikge1xuICAgICAgICAgIHRlbXBsYXRlSW5kZXgrKztcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGVtcGxhdGVJbmRleCA9PT0gdGVtcGxhdGUubGVuZ3RoO1xuICAgICAgfVxuICAgICAgZnVuY3Rpb24gZGlzYWJsZSgpIHtcbiAgICAgICAgY29uc3QgbmFtZXNwYWNlcyA9IFtcbiAgICAgICAgICAuLi5jcmVhdGVEZWJ1Zy5uYW1lcyxcbiAgICAgICAgICAuLi5jcmVhdGVEZWJ1Zy5za2lwcy5tYXAoKG5hbWVzcGFjZSkgPT4gXCItXCIgKyBuYW1lc3BhY2UpXG4gICAgICAgIF0uam9pbihcIixcIik7XG4gICAgICAgIGNyZWF0ZURlYnVnLmVuYWJsZShcIlwiKTtcbiAgICAgICAgcmV0dXJuIG5hbWVzcGFjZXM7XG4gICAgICB9XG4gICAgICBmdW5jdGlvbiBlbmFibGVkKG5hbWUpIHtcbiAgICAgICAgZm9yIChjb25zdCBza2lwIG9mIGNyZWF0ZURlYnVnLnNraXBzKSB7XG4gICAgICAgICAgaWYgKG1hdGNoZXNUZW1wbGF0ZShuYW1lLCBza2lwKSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBmb3IgKGNvbnN0IG5zIG9mIGNyZWF0ZURlYnVnLm5hbWVzKSB7XG4gICAgICAgICAgaWYgKG1hdGNoZXNUZW1wbGF0ZShuYW1lLCBucykpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgICBmdW5jdGlvbiBjb2VyY2UyKHZhbCkge1xuICAgICAgICBpZiAodmFsIGluc3RhbmNlb2YgRXJyb3IpIHtcbiAgICAgICAgICByZXR1cm4gdmFsLnN0YWNrIHx8IHZhbC5tZXNzYWdlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB2YWw7XG4gICAgICB9XG4gICAgICBmdW5jdGlvbiBkZXN0cm95KCkge1xuICAgICAgICBjb25zb2xlLndhcm4oXCJJbnN0YW5jZSBtZXRob2QgYGRlYnVnLmRlc3Ryb3koKWAgaXMgZGVwcmVjYXRlZCBhbmQgbm8gbG9uZ2VyIGRvZXMgYW55dGhpbmcuIEl0IHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmV4dCBtYWpvciB2ZXJzaW9uIG9mIGBkZWJ1Z2AuXCIpO1xuICAgICAgfVxuICAgICAgY3JlYXRlRGVidWcuZW5hYmxlKGNyZWF0ZURlYnVnLmxvYWQoKSk7XG4gICAgICByZXR1cm4gY3JlYXRlRGVidWc7XG4gICAgfVxuICAgIG1vZHVsZTIuZXhwb3J0cyA9IHNldHVwO1xuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL2RlYnVnL3NyYy9icm93c2VyLmpzXG52YXIgcmVxdWlyZV9icm93c2VyID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL2RlYnVnL3NyYy9icm93c2VyLmpzXCIoZXhwb3J0czIsIG1vZHVsZTIpIHtcbiAgICBleHBvcnRzMi5mb3JtYXRBcmdzID0gZm9ybWF0QXJncztcbiAgICBleHBvcnRzMi5zYXZlID0gc2F2ZTtcbiAgICBleHBvcnRzMi5sb2FkID0gbG9hZDtcbiAgICBleHBvcnRzMi51c2VDb2xvcnMgPSB1c2VDb2xvcnM7XG4gICAgZXhwb3J0czIuc3RvcmFnZSA9IGxvY2Fsc3RvcmFnZSgpO1xuICAgIGV4cG9ydHMyLmRlc3Ryb3kgPSAvKiBAX19QVVJFX18gKi8gKCgpID0+IHtcbiAgICAgIGxldCB3YXJuZWQgPSBmYWxzZTtcbiAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgIGlmICghd2FybmVkKSB7XG4gICAgICAgICAgd2FybmVkID0gdHJ1ZTtcbiAgICAgICAgICBjb25zb2xlLndhcm4oXCJJbnN0YW5jZSBtZXRob2QgYGRlYnVnLmRlc3Ryb3koKWAgaXMgZGVwcmVjYXRlZCBhbmQgbm8gbG9uZ2VyIGRvZXMgYW55dGhpbmcuIEl0IHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmV4dCBtYWpvciB2ZXJzaW9uIG9mIGBkZWJ1Z2AuXCIpO1xuICAgICAgICB9XG4gICAgICB9O1xuICAgIH0pKCk7XG4gICAgZXhwb3J0czIuY29sb3JzID0gW1xuICAgICAgXCIjMDAwMENDXCIsXG4gICAgICBcIiMwMDAwRkZcIixcbiAgICAgIFwiIzAwMzNDQ1wiLFxuICAgICAgXCIjMDAzM0ZGXCIsXG4gICAgICBcIiMwMDY2Q0NcIixcbiAgICAgIFwiIzAwNjZGRlwiLFxuICAgICAgXCIjMDA5OUNDXCIsXG4gICAgICBcIiMwMDk5RkZcIixcbiAgICAgIFwiIzAwQ0MwMFwiLFxuICAgICAgXCIjMDBDQzMzXCIsXG4gICAgICBcIiMwMENDNjZcIixcbiAgICAgIFwiIzAwQ0M5OVwiLFxuICAgICAgXCIjMDBDQ0NDXCIsXG4gICAgICBcIiMwMENDRkZcIixcbiAgICAgIFwiIzMzMDBDQ1wiLFxuICAgICAgXCIjMzMwMEZGXCIsXG4gICAgICBcIiMzMzMzQ0NcIixcbiAgICAgIFwiIzMzMzNGRlwiLFxuICAgICAgXCIjMzM2NkNDXCIsXG4gICAgICBcIiMzMzY2RkZcIixcbiAgICAgIFwiIzMzOTlDQ1wiLFxuICAgICAgXCIjMzM5OUZGXCIsXG4gICAgICBcIiMzM0NDMDBcIixcbiAgICAgIFwiIzMzQ0MzM1wiLFxuICAgICAgXCIjMzNDQzY2XCIsXG4gICAgICBcIiMzM0NDOTlcIixcbiAgICAgIFwiIzMzQ0NDQ1wiLFxuICAgICAgXCIjMzNDQ0ZGXCIsXG4gICAgICBcIiM2NjAwQ0NcIixcbiAgICAgIFwiIzY2MDBGRlwiLFxuICAgICAgXCIjNjYzM0NDXCIsXG4gICAgICBcIiM2NjMzRkZcIixcbiAgICAgIFwiIzY2Q0MwMFwiLFxuICAgICAgXCIjNjZDQzMzXCIsXG4gICAgICBcIiM5OTAwQ0NcIixcbiAgICAgIFwiIzk5MDBGRlwiLFxuICAgICAgXCIjOTkzM0NDXCIsXG4gICAgICBcIiM5OTMzRkZcIixcbiAgICAgIFwiIzk5Q0MwMFwiLFxuICAgICAgXCIjOTlDQzMzXCIsXG4gICAgICBcIiNDQzAwMDBcIixcbiAgICAgIFwiI0NDMDAzM1wiLFxuICAgICAgXCIjQ0MwMDY2XCIsXG4gICAgICBcIiNDQzAwOTlcIixcbiAgICAgIFwiI0NDMDBDQ1wiLFxuICAgICAgXCIjQ0MwMEZGXCIsXG4gICAgICBcIiNDQzMzMDBcIixcbiAgICAgIFwiI0NDMzMzM1wiLFxuICAgICAgXCIjQ0MzMzY2XCIsXG4gICAgICBcIiNDQzMzOTlcIixcbiAgICAgIFwiI0NDMzNDQ1wiLFxuICAgICAgXCIjQ0MzM0ZGXCIsXG4gICAgICBcIiNDQzY2MDBcIixcbiAgICAgIFwiI0NDNjYzM1wiLFxuICAgICAgXCIjQ0M5OTAwXCIsXG4gICAgICBcIiNDQzk5MzNcIixcbiAgICAgIFwiI0NDQ0MwMFwiLFxuICAgICAgXCIjQ0NDQzMzXCIsXG4gICAgICBcIiNGRjAwMDBcIixcbiAgICAgIFwiI0ZGMDAzM1wiLFxuICAgICAgXCIjRkYwMDY2XCIsXG4gICAgICBcIiNGRjAwOTlcIixcbiAgICAgIFwiI0ZGMDBDQ1wiLFxuICAgICAgXCIjRkYwMEZGXCIsXG4gICAgICBcIiNGRjMzMDBcIixcbiAgICAgIFwiI0ZGMzMzM1wiLFxuICAgICAgXCIjRkYzMzY2XCIsXG4gICAgICBcIiNGRjMzOTlcIixcbiAgICAgIFwiI0ZGMzNDQ1wiLFxuICAgICAgXCIjRkYzM0ZGXCIsXG4gICAgICBcIiNGRjY2MDBcIixcbiAgICAgIFwiI0ZGNjYzM1wiLFxuICAgICAgXCIjRkY5OTAwXCIsXG4gICAgICBcIiNGRjk5MzNcIixcbiAgICAgIFwiI0ZGQ0MwMFwiLFxuICAgICAgXCIjRkZDQzMzXCJcbiAgICBdO1xuICAgIGZ1bmN0aW9uIHVzZUNvbG9ycygpIHtcbiAgICAgIGlmICh0eXBlb2Ygd2luZG93ICE9PSBcInVuZGVmaW5lZFwiICYmIHdpbmRvdy5wcm9jZXNzICYmICh3aW5kb3cucHJvY2Vzcy50eXBlID09PSBcInJlbmRlcmVyXCIgfHwgd2luZG93LnByb2Nlc3MuX19ud2pzKSkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIGlmICh0eXBlb2YgbmF2aWdhdG9yICE9PSBcInVuZGVmaW5lZFwiICYmIG5hdmlnYXRvci51c2VyQWdlbnQgJiYgbmF2aWdhdG9yLnVzZXJBZ2VudC50b0xvd2VyQ2FzZSgpLm1hdGNoKC8oZWRnZXx0cmlkZW50KVxcLyhcXGQrKS8pKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIGxldCBtO1xuICAgICAgcmV0dXJuIHR5cGVvZiBkb2N1bWVudCAhPT0gXCJ1bmRlZmluZWRcIiAmJiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQgJiYgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlICYmIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5XZWJraXRBcHBlYXJhbmNlIHx8IC8vIElzIGZpcmVidWc/IGh0dHA6Ly9zdGFja292ZXJmbG93LmNvbS9hLzM5ODEyMC8zNzY3NzNcbiAgICAgIHR5cGVvZiB3aW5kb3cgIT09IFwidW5kZWZpbmVkXCIgJiYgd2luZG93LmNvbnNvbGUgJiYgKHdpbmRvdy5jb25zb2xlLmZpcmVidWcgfHwgd2luZG93LmNvbnNvbGUuZXhjZXB0aW9uICYmIHdpbmRvdy5jb25zb2xlLnRhYmxlKSB8fCAvLyBJcyBmaXJlZm94ID49IHYzMT9cbiAgICAgIC8vIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvVG9vbHMvV2ViX0NvbnNvbGUjU3R5bGluZ19tZXNzYWdlc1xuICAgICAgdHlwZW9mIG5hdmlnYXRvciAhPT0gXCJ1bmRlZmluZWRcIiAmJiBuYXZpZ2F0b3IudXNlckFnZW50ICYmIChtID0gbmF2aWdhdG9yLnVzZXJBZ2VudC50b0xvd2VyQ2FzZSgpLm1hdGNoKC9maXJlZm94XFwvKFxcZCspLykpICYmIHBhcnNlSW50KG1bMV0sIDEwKSA+PSAzMSB8fCAvLyBEb3VibGUgY2hlY2sgd2Via2l0IGluIHVzZXJBZ2VudCBqdXN0IGluIGNhc2Ugd2UgYXJlIGluIGEgd29ya2VyXG4gICAgICB0eXBlb2YgbmF2aWdhdG9yICE9PSBcInVuZGVmaW5lZFwiICYmIG5hdmlnYXRvci51c2VyQWdlbnQgJiYgbmF2aWdhdG9yLnVzZXJBZ2VudC50b0xvd2VyQ2FzZSgpLm1hdGNoKC9hcHBsZXdlYmtpdFxcLyhcXGQrKS8pO1xuICAgIH1cbiAgICBmdW5jdGlvbiBmb3JtYXRBcmdzKGFyZ3MpIHtcbiAgICAgIGFyZ3NbMF0gPSAodGhpcy51c2VDb2xvcnMgPyBcIiVjXCIgOiBcIlwiKSArIHRoaXMubmFtZXNwYWNlICsgKHRoaXMudXNlQ29sb3JzID8gXCIgJWNcIiA6IFwiIFwiKSArIGFyZ3NbMF0gKyAodGhpcy51c2VDb2xvcnMgPyBcIiVjIFwiIDogXCIgXCIpICsgXCIrXCIgKyBtb2R1bGUyLmV4cG9ydHMuaHVtYW5pemUodGhpcy5kaWZmKTtcbiAgICAgIGlmICghdGhpcy51c2VDb2xvcnMpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgY29uc3QgYyA9IFwiY29sb3I6IFwiICsgdGhpcy5jb2xvcjtcbiAgICAgIGFyZ3Muc3BsaWNlKDEsIDAsIGMsIFwiY29sb3I6IGluaGVyaXRcIik7XG4gICAgICBsZXQgaW5kZXggPSAwO1xuICAgICAgbGV0IGxhc3RDID0gMDtcbiAgICAgIGFyZ3NbMF0ucmVwbGFjZSgvJVthLXpBLVolXS9nLCAobWF0Y2gpID0+IHtcbiAgICAgICAgaWYgKG1hdGNoID09PSBcIiUlXCIpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaW5kZXgrKztcbiAgICAgICAgaWYgKG1hdGNoID09PSBcIiVjXCIpIHtcbiAgICAgICAgICBsYXN0QyA9IGluZGV4O1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIGFyZ3Muc3BsaWNlKGxhc3RDLCAwLCBjKTtcbiAgICB9XG4gICAgZXhwb3J0czIubG9nID0gY29uc29sZS5kZWJ1ZyB8fCBjb25zb2xlLmxvZyB8fCAoKCkgPT4ge1xuICAgIH0pO1xuICAgIGZ1bmN0aW9uIHNhdmUobmFtZXNwYWNlcykge1xuICAgICAgdHJ5IHtcbiAgICAgICAgaWYgKG5hbWVzcGFjZXMpIHtcbiAgICAgICAgICBleHBvcnRzMi5zdG9yYWdlLnNldEl0ZW0oXCJkZWJ1Z1wiLCBuYW1lc3BhY2VzKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBleHBvcnRzMi5zdG9yYWdlLnJlbW92ZUl0ZW0oXCJkZWJ1Z1wiKTtcbiAgICAgICAgfVxuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gbG9hZCgpIHtcbiAgICAgIGxldCByO1xuICAgICAgdHJ5IHtcbiAgICAgICAgciA9IGV4cG9ydHMyLnN0b3JhZ2UuZ2V0SXRlbShcImRlYnVnXCIpO1xuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIH1cbiAgICAgIGlmICghciAmJiB0eXBlb2YgcHJvY2VzcyAhPT0gXCJ1bmRlZmluZWRcIiAmJiBcImVudlwiIGluIHByb2Nlc3MpIHtcbiAgICAgICAgciA9IHByb2Nlc3MuZW52LkRFQlVHO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHI7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGxvY2Fsc3RvcmFnZSgpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHJldHVybiBsb2NhbFN0b3JhZ2U7XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgfVxuICAgIH1cbiAgICBtb2R1bGUyLmV4cG9ydHMgPSByZXF1aXJlX2NvbW1vbigpKGV4cG9ydHMyKTtcbiAgICB2YXIgeyBmb3JtYXR0ZXJzIH0gPSBtb2R1bGUyLmV4cG9ydHM7XG4gICAgZm9ybWF0dGVycy5qID0gZnVuY3Rpb24odikge1xuICAgICAgdHJ5IHtcbiAgICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHYpO1xuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgcmV0dXJuIFwiW1VuZXhwZWN0ZWRKU09OUGFyc2VFcnJvcl06IFwiICsgZXJyb3IubWVzc2FnZTtcbiAgICAgIH1cbiAgICB9O1xuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL2hhcy1mbGFnL2luZGV4LmpzXG52YXIgcmVxdWlyZV9oYXNfZmxhZyA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9oYXMtZmxhZy9pbmRleC5qc1wiKGV4cG9ydHMyLCBtb2R1bGUyKSB7XG4gICAgXCJ1c2Ugc3RyaWN0XCI7XG4gICAgbW9kdWxlMi5leHBvcnRzID0gKGZsYWcsIGFyZ3YgPSBwcm9jZXNzLmFyZ3YpID0+IHtcbiAgICAgIGNvbnN0IHByZWZpeCA9IGZsYWcuc3RhcnRzV2l0aChcIi1cIikgPyBcIlwiIDogZmxhZy5sZW5ndGggPT09IDEgPyBcIi1cIiA6IFwiLS1cIjtcbiAgICAgIGNvbnN0IHBvc2l0aW9uID0gYXJndi5pbmRleE9mKHByZWZpeCArIGZsYWcpO1xuICAgICAgY29uc3QgdGVybWluYXRvclBvc2l0aW9uID0gYXJndi5pbmRleE9mKFwiLS1cIik7XG4gICAgICByZXR1cm4gcG9zaXRpb24gIT09IC0xICYmICh0ZXJtaW5hdG9yUG9zaXRpb24gPT09IC0xIHx8IHBvc2l0aW9uIDwgdGVybWluYXRvclBvc2l0aW9uKTtcbiAgICB9O1xuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL3N1cHBvcnRzLWNvbG9yL2luZGV4LmpzXG52YXIgcmVxdWlyZV9zdXBwb3J0c19jb2xvciA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9zdXBwb3J0cy1jb2xvci9pbmRleC5qc1wiKGV4cG9ydHMyLCBtb2R1bGUyKSB7XG4gICAgXCJ1c2Ugc3RyaWN0XCI7XG4gICAgdmFyIG9zID0gcmVxdWlyZShcIm9zXCIpO1xuICAgIHZhciB0dHkgPSByZXF1aXJlKFwidHR5XCIpO1xuICAgIHZhciBoYXNGbGFnID0gcmVxdWlyZV9oYXNfZmxhZygpO1xuICAgIHZhciB7IGVudiB9ID0gcHJvY2VzcztcbiAgICB2YXIgZm9yY2VDb2xvcjtcbiAgICBpZiAoaGFzRmxhZyhcIm5vLWNvbG9yXCIpIHx8IGhhc0ZsYWcoXCJuby1jb2xvcnNcIikgfHwgaGFzRmxhZyhcImNvbG9yPWZhbHNlXCIpIHx8IGhhc0ZsYWcoXCJjb2xvcj1uZXZlclwiKSkge1xuICAgICAgZm9yY2VDb2xvciA9IDA7XG4gICAgfSBlbHNlIGlmIChoYXNGbGFnKFwiY29sb3JcIikgfHwgaGFzRmxhZyhcImNvbG9yc1wiKSB8fCBoYXNGbGFnKFwiY29sb3I9dHJ1ZVwiKSB8fCBoYXNGbGFnKFwiY29sb3I9YWx3YXlzXCIpKSB7XG4gICAgICBmb3JjZUNvbG9yID0gMTtcbiAgICB9XG4gICAgaWYgKFwiRk9SQ0VfQ09MT1JcIiBpbiBlbnYpIHtcbiAgICAgIGlmIChlbnYuRk9SQ0VfQ09MT1IgPT09IFwidHJ1ZVwiKSB7XG4gICAgICAgIGZvcmNlQ29sb3IgPSAxO1xuICAgICAgfSBlbHNlIGlmIChlbnYuRk9SQ0VfQ09MT1IgPT09IFwiZmFsc2VcIikge1xuICAgICAgICBmb3JjZUNvbG9yID0gMDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGZvcmNlQ29sb3IgPSBlbnYuRk9SQ0VfQ09MT1IubGVuZ3RoID09PSAwID8gMSA6IE1hdGgubWluKHBhcnNlSW50KGVudi5GT1JDRV9DT0xPUiwgMTApLCAzKTtcbiAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gdHJhbnNsYXRlTGV2ZWwobGV2ZWwpIHtcbiAgICAgIGlmIChsZXZlbCA9PT0gMCkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgICByZXR1cm4ge1xuICAgICAgICBsZXZlbCxcbiAgICAgICAgaGFzQmFzaWM6IHRydWUsXG4gICAgICAgIGhhczI1NjogbGV2ZWwgPj0gMixcbiAgICAgICAgaGFzMTZtOiBsZXZlbCA+PSAzXG4gICAgICB9O1xuICAgIH1cbiAgICBmdW5jdGlvbiBzdXBwb3J0c0NvbG9yKGhhdmVTdHJlYW0sIHN0cmVhbUlzVFRZKSB7XG4gICAgICBpZiAoZm9yY2VDb2xvciA9PT0gMCkge1xuICAgICAgICByZXR1cm4gMDtcbiAgICAgIH1cbiAgICAgIGlmIChoYXNGbGFnKFwiY29sb3I9MTZtXCIpIHx8IGhhc0ZsYWcoXCJjb2xvcj1mdWxsXCIpIHx8IGhhc0ZsYWcoXCJjb2xvcj10cnVlY29sb3JcIikpIHtcbiAgICAgICAgcmV0dXJuIDM7XG4gICAgICB9XG4gICAgICBpZiAoaGFzRmxhZyhcImNvbG9yPTI1NlwiKSkge1xuICAgICAgICByZXR1cm4gMjtcbiAgICAgIH1cbiAgICAgIGlmIChoYXZlU3RyZWFtICYmICFzdHJlYW1Jc1RUWSAmJiBmb3JjZUNvbG9yID09PSB2b2lkIDApIHtcbiAgICAgICAgcmV0dXJuIDA7XG4gICAgICB9XG4gICAgICBjb25zdCBtaW4gPSBmb3JjZUNvbG9yIHx8IDA7XG4gICAgICBpZiAoZW52LlRFUk0gPT09IFwiZHVtYlwiKSB7XG4gICAgICAgIHJldHVybiBtaW47XG4gICAgICB9XG4gICAgICBpZiAocHJvY2Vzcy5wbGF0Zm9ybSA9PT0gXCJ3aW4zMlwiKSB7XG4gICAgICAgIGNvbnN0IG9zUmVsZWFzZSA9IG9zLnJlbGVhc2UoKS5zcGxpdChcIi5cIik7XG4gICAgICAgIGlmIChOdW1iZXIob3NSZWxlYXNlWzBdKSA+PSAxMCAmJiBOdW1iZXIob3NSZWxlYXNlWzJdKSA+PSAxMDU4Nikge1xuICAgICAgICAgIHJldHVybiBOdW1iZXIob3NSZWxlYXNlWzJdKSA+PSAxNDkzMSA/IDMgOiAyO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiAxO1xuICAgICAgfVxuICAgICAgaWYgKFwiQ0lcIiBpbiBlbnYpIHtcbiAgICAgICAgaWYgKFtcIlRSQVZJU1wiLCBcIkNJUkNMRUNJXCIsIFwiQVBQVkVZT1JcIiwgXCJHSVRMQUJfQ0lcIiwgXCJHSVRIVUJfQUNUSU9OU1wiLCBcIkJVSUxES0lURVwiXS5zb21lKChzaWduKSA9PiBzaWduIGluIGVudikgfHwgZW52LkNJX05BTUUgPT09IFwiY29kZXNoaXBcIikge1xuICAgICAgICAgIHJldHVybiAxO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBtaW47XG4gICAgICB9XG4gICAgICBpZiAoXCJURUFNQ0lUWV9WRVJTSU9OXCIgaW4gZW52KSB7XG4gICAgICAgIHJldHVybiAvXig5XFwuKDAqWzEtOV1cXGQqKVxcLnxcXGR7Mix9XFwuKS8udGVzdChlbnYuVEVBTUNJVFlfVkVSU0lPTikgPyAxIDogMDtcbiAgICAgIH1cbiAgICAgIGlmIChlbnYuQ09MT1JURVJNID09PSBcInRydWVjb2xvclwiKSB7XG4gICAgICAgIHJldHVybiAzO1xuICAgICAgfVxuICAgICAgaWYgKFwiVEVSTV9QUk9HUkFNXCIgaW4gZW52KSB7XG4gICAgICAgIGNvbnN0IHZlcnNpb24gPSBwYXJzZUludCgoZW52LlRFUk1fUFJPR1JBTV9WRVJTSU9OIHx8IFwiXCIpLnNwbGl0KFwiLlwiKVswXSwgMTApO1xuICAgICAgICBzd2l0Y2ggKGVudi5URVJNX1BST0dSQU0pIHtcbiAgICAgICAgICBjYXNlIFwiaVRlcm0uYXBwXCI6XG4gICAgICAgICAgICByZXR1cm4gdmVyc2lvbiA+PSAzID8gMyA6IDI7XG4gICAgICAgICAgY2FzZSBcIkFwcGxlX1Rlcm1pbmFsXCI6XG4gICAgICAgICAgICByZXR1cm4gMjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKC8tMjU2KGNvbG9yKT8kL2kudGVzdChlbnYuVEVSTSkpIHtcbiAgICAgICAgcmV0dXJuIDI7XG4gICAgICB9XG4gICAgICBpZiAoL15zY3JlZW58Xnh0ZXJtfF52dDEwMHxednQyMjB8XnJ4dnR8Y29sb3J8YW5zaXxjeWd3aW58bGludXgvaS50ZXN0KGVudi5URVJNKSkge1xuICAgICAgICByZXR1cm4gMTtcbiAgICAgIH1cbiAgICAgIGlmIChcIkNPTE9SVEVSTVwiIGluIGVudikge1xuICAgICAgICByZXR1cm4gMTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBtaW47XG4gICAgfVxuICAgIGZ1bmN0aW9uIGdldFN1cHBvcnRMZXZlbChzdHJlYW0pIHtcbiAgICAgIGNvbnN0IGxldmVsID0gc3VwcG9ydHNDb2xvcihzdHJlYW0sIHN0cmVhbSAmJiBzdHJlYW0uaXNUVFkpO1xuICAgICAgcmV0dXJuIHRyYW5zbGF0ZUxldmVsKGxldmVsKTtcbiAgICB9XG4gICAgbW9kdWxlMi5leHBvcnRzID0ge1xuICAgICAgc3VwcG9ydHNDb2xvcjogZ2V0U3VwcG9ydExldmVsLFxuICAgICAgc3Rkb3V0OiB0cmFuc2xhdGVMZXZlbChzdXBwb3J0c0NvbG9yKHRydWUsIHR0eS5pc2F0dHkoMSkpKSxcbiAgICAgIHN0ZGVycjogdHJhbnNsYXRlTGV2ZWwoc3VwcG9ydHNDb2xvcih0cnVlLCB0dHkuaXNhdHR5KDIpKSlcbiAgICB9O1xuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL2RlYnVnL3NyYy9ub2RlLmpzXG52YXIgcmVxdWlyZV9ub2RlID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL2RlYnVnL3NyYy9ub2RlLmpzXCIoZXhwb3J0czIsIG1vZHVsZTIpIHtcbiAgICB2YXIgdHR5ID0gcmVxdWlyZShcInR0eVwiKTtcbiAgICB2YXIgdXRpbDIgPSByZXF1aXJlKFwidXRpbFwiKTtcbiAgICBleHBvcnRzMi5pbml0ID0gaW5pdDtcbiAgICBleHBvcnRzMi5sb2cgPSBsb2c7XG4gICAgZXhwb3J0czIuZm9ybWF0QXJncyA9IGZvcm1hdEFyZ3M7XG4gICAgZXhwb3J0czIuc2F2ZSA9IHNhdmU7XG4gICAgZXhwb3J0czIubG9hZCA9IGxvYWQ7XG4gICAgZXhwb3J0czIudXNlQ29sb3JzID0gdXNlQ29sb3JzO1xuICAgIGV4cG9ydHMyLmRlc3Ryb3kgPSB1dGlsMi5kZXByZWNhdGUoXG4gICAgICAoKSA9PiB7XG4gICAgICB9LFxuICAgICAgXCJJbnN0YW5jZSBtZXRob2QgYGRlYnVnLmRlc3Ryb3koKWAgaXMgZGVwcmVjYXRlZCBhbmQgbm8gbG9uZ2VyIGRvZXMgYW55dGhpbmcuIEl0IHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmV4dCBtYWpvciB2ZXJzaW9uIG9mIGBkZWJ1Z2AuXCJcbiAgICApO1xuICAgIGV4cG9ydHMyLmNvbG9ycyA9IFs2LCAyLCAzLCA0LCA1LCAxXTtcbiAgICB0cnkge1xuICAgICAgY29uc3Qgc3VwcG9ydHNDb2xvciA9IHJlcXVpcmVfc3VwcG9ydHNfY29sb3IoKTtcbiAgICAgIGlmIChzdXBwb3J0c0NvbG9yICYmIChzdXBwb3J0c0NvbG9yLnN0ZGVyciB8fCBzdXBwb3J0c0NvbG9yKS5sZXZlbCA+PSAyKSB7XG4gICAgICAgIGV4cG9ydHMyLmNvbG9ycyA9IFtcbiAgICAgICAgICAyMCxcbiAgICAgICAgICAyMSxcbiAgICAgICAgICAyNixcbiAgICAgICAgICAyNyxcbiAgICAgICAgICAzMixcbiAgICAgICAgICAzMyxcbiAgICAgICAgICAzOCxcbiAgICAgICAgICAzOSxcbiAgICAgICAgICA0MCxcbiAgICAgICAgICA0MSxcbiAgICAgICAgICA0MixcbiAgICAgICAgICA0MyxcbiAgICAgICAgICA0NCxcbiAgICAgICAgICA0NSxcbiAgICAgICAgICA1NixcbiAgICAgICAgICA1NyxcbiAgICAgICAgICA2MixcbiAgICAgICAgICA2MyxcbiAgICAgICAgICA2OCxcbiAgICAgICAgICA2OSxcbiAgICAgICAgICA3NCxcbiAgICAgICAgICA3NSxcbiAgICAgICAgICA3NixcbiAgICAgICAgICA3NyxcbiAgICAgICAgICA3OCxcbiAgICAgICAgICA3OSxcbiAgICAgICAgICA4MCxcbiAgICAgICAgICA4MSxcbiAgICAgICAgICA5MixcbiAgICAgICAgICA5MyxcbiAgICAgICAgICA5OCxcbiAgICAgICAgICA5OSxcbiAgICAgICAgICAxMTIsXG4gICAgICAgICAgMTEzLFxuICAgICAgICAgIDEyOCxcbiAgICAgICAgICAxMjksXG4gICAgICAgICAgMTM0LFxuICAgICAgICAgIDEzNSxcbiAgICAgICAgICAxNDgsXG4gICAgICAgICAgMTQ5LFxuICAgICAgICAgIDE2MCxcbiAgICAgICAgICAxNjEsXG4gICAgICAgICAgMTYyLFxuICAgICAgICAgIDE2MyxcbiAgICAgICAgICAxNjQsXG4gICAgICAgICAgMTY1LFxuICAgICAgICAgIDE2NixcbiAgICAgICAgICAxNjcsXG4gICAgICAgICAgMTY4LFxuICAgICAgICAgIDE2OSxcbiAgICAgICAgICAxNzAsXG4gICAgICAgICAgMTcxLFxuICAgICAgICAgIDE3MixcbiAgICAgICAgICAxNzMsXG4gICAgICAgICAgMTc4LFxuICAgICAgICAgIDE3OSxcbiAgICAgICAgICAxODQsXG4gICAgICAgICAgMTg1LFxuICAgICAgICAgIDE5NixcbiAgICAgICAgICAxOTcsXG4gICAgICAgICAgMTk4LFxuICAgICAgICAgIDE5OSxcbiAgICAgICAgICAyMDAsXG4gICAgICAgICAgMjAxLFxuICAgICAgICAgIDIwMixcbiAgICAgICAgICAyMDMsXG4gICAgICAgICAgMjA0LFxuICAgICAgICAgIDIwNSxcbiAgICAgICAgICAyMDYsXG4gICAgICAgICAgMjA3LFxuICAgICAgICAgIDIwOCxcbiAgICAgICAgICAyMDksXG4gICAgICAgICAgMjE0LFxuICAgICAgICAgIDIxNSxcbiAgICAgICAgICAyMjAsXG4gICAgICAgICAgMjIxXG4gICAgICAgIF07XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICB9XG4gICAgZXhwb3J0czIuaW5zcGVjdE9wdHMgPSBPYmplY3Qua2V5cyhwcm9jZXNzLmVudikuZmlsdGVyKChrZXkpID0+IHtcbiAgICAgIHJldHVybiAvXmRlYnVnXy9pLnRlc3Qoa2V5KTtcbiAgICB9KS5yZWR1Y2UoKG9iaiwga2V5KSA9PiB7XG4gICAgICBjb25zdCBwcm9wID0ga2V5LnN1YnN0cmluZyg2KS50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoL18oW2Etel0pL2csIChfMiwgaykgPT4ge1xuICAgICAgICByZXR1cm4gay50b1VwcGVyQ2FzZSgpO1xuICAgICAgfSk7XG4gICAgICBsZXQgdmFsID0gcHJvY2Vzcy5lbnZba2V5XTtcbiAgICAgIGlmICgvXih5ZXN8b258dHJ1ZXxlbmFibGVkKSQvaS50ZXN0KHZhbCkpIHtcbiAgICAgICAgdmFsID0gdHJ1ZTtcbiAgICAgIH0gZWxzZSBpZiAoL14obm98b2ZmfGZhbHNlfGRpc2FibGVkKSQvaS50ZXN0KHZhbCkpIHtcbiAgICAgICAgdmFsID0gZmFsc2U7XG4gICAgICB9IGVsc2UgaWYgKHZhbCA9PT0gXCJudWxsXCIpIHtcbiAgICAgICAgdmFsID0gbnVsbDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHZhbCA9IE51bWJlcih2YWwpO1xuICAgICAgfVxuICAgICAgb2JqW3Byb3BdID0gdmFsO1xuICAgICAgcmV0dXJuIG9iajtcbiAgICB9LCB7fSk7XG4gICAgZnVuY3Rpb24gdXNlQ29sb3JzKCkge1xuICAgICAgcmV0dXJuIFwiY29sb3JzXCIgaW4gZXhwb3J0czIuaW5zcGVjdE9wdHMgPyBCb29sZWFuKGV4cG9ydHMyLmluc3BlY3RPcHRzLmNvbG9ycykgOiB0dHkuaXNhdHR5KHByb2Nlc3Muc3RkZXJyLmZkKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gZm9ybWF0QXJncyhhcmdzKSB7XG4gICAgICBjb25zdCB7IG5hbWVzcGFjZTogbmFtZSwgdXNlQ29sb3JzOiB1c2VDb2xvcnMyIH0gPSB0aGlzO1xuICAgICAgaWYgKHVzZUNvbG9yczIpIHtcbiAgICAgICAgY29uc3QgYyA9IHRoaXMuY29sb3I7XG4gICAgICAgIGNvbnN0IGNvbG9yQ29kZSA9IFwiXFx4MUJbM1wiICsgKGMgPCA4ID8gYyA6IFwiODs1O1wiICsgYyk7XG4gICAgICAgIGNvbnN0IHByZWZpeCA9IGAgICR7Y29sb3JDb2RlfTsxbSR7bmFtZX0gXFx4MUJbMG1gO1xuICAgICAgICBhcmdzWzBdID0gcHJlZml4ICsgYXJnc1swXS5zcGxpdChcIlxcblwiKS5qb2luKFwiXFxuXCIgKyBwcmVmaXgpO1xuICAgICAgICBhcmdzLnB1c2goY29sb3JDb2RlICsgXCJtK1wiICsgbW9kdWxlMi5leHBvcnRzLmh1bWFuaXplKHRoaXMuZGlmZikgKyBcIlxceDFCWzBtXCIpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYXJnc1swXSA9IGdldERhdGUoKSArIG5hbWUgKyBcIiBcIiArIGFyZ3NbMF07XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIGdldERhdGUoKSB7XG4gICAgICBpZiAoZXhwb3J0czIuaW5zcGVjdE9wdHMuaGlkZURhdGUpIHtcbiAgICAgICAgcmV0dXJuIFwiXCI7XG4gICAgICB9XG4gICAgICByZXR1cm4gKC8qIEBfX1BVUkVfXyAqLyBuZXcgRGF0ZSgpKS50b0lTT1N0cmluZygpICsgXCIgXCI7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGxvZyguLi5hcmdzKSB7XG4gICAgICByZXR1cm4gcHJvY2Vzcy5zdGRlcnIud3JpdGUodXRpbDIuZm9ybWF0V2l0aE9wdGlvbnMoZXhwb3J0czIuaW5zcGVjdE9wdHMsIC4uLmFyZ3MpICsgXCJcXG5cIik7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHNhdmUobmFtZXNwYWNlcykge1xuICAgICAgaWYgKG5hbWVzcGFjZXMpIHtcbiAgICAgICAgcHJvY2Vzcy5lbnYuREVCVUcgPSBuYW1lc3BhY2VzO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZGVsZXRlIHByb2Nlc3MuZW52LkRFQlVHO1xuICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiBsb2FkKCkge1xuICAgICAgcmV0dXJuIHByb2Nlc3MuZW52LkRFQlVHO1xuICAgIH1cbiAgICBmdW5jdGlvbiBpbml0KGRlYnVnKSB7XG4gICAgICBkZWJ1Zy5pbnNwZWN0T3B0cyA9IHt9O1xuICAgICAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKGV4cG9ydHMyLmluc3BlY3RPcHRzKTtcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwga2V5cy5sZW5ndGg7IGkrKykge1xuICAgICAgICBkZWJ1Zy5pbnNwZWN0T3B0c1trZXlzW2ldXSA9IGV4cG9ydHMyLmluc3BlY3RPcHRzW2tleXNbaV1dO1xuICAgICAgfVxuICAgIH1cbiAgICBtb2R1bGUyLmV4cG9ydHMgPSByZXF1aXJlX2NvbW1vbigpKGV4cG9ydHMyKTtcbiAgICB2YXIgeyBmb3JtYXR0ZXJzIH0gPSBtb2R1bGUyLmV4cG9ydHM7XG4gICAgZm9ybWF0dGVycy5vID0gZnVuY3Rpb24odikge1xuICAgICAgdGhpcy5pbnNwZWN0T3B0cy5jb2xvcnMgPSB0aGlzLnVzZUNvbG9ycztcbiAgICAgIHJldHVybiB1dGlsMi5pbnNwZWN0KHYsIHRoaXMuaW5zcGVjdE9wdHMpLnNwbGl0KFwiXFxuXCIpLm1hcCgoc3RyKSA9PiBzdHIudHJpbSgpKS5qb2luKFwiIFwiKTtcbiAgICB9O1xuICAgIGZvcm1hdHRlcnMuTyA9IGZ1bmN0aW9uKHYpIHtcbiAgICAgIHRoaXMuaW5zcGVjdE9wdHMuY29sb3JzID0gdGhpcy51c2VDb2xvcnM7XG4gICAgICByZXR1cm4gdXRpbDIuaW5zcGVjdCh2LCB0aGlzLmluc3BlY3RPcHRzKTtcbiAgICB9O1xuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL2RlYnVnL3NyYy9pbmRleC5qc1xudmFyIHJlcXVpcmVfc3JjID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL2RlYnVnL3NyYy9pbmRleC5qc1wiKGV4cG9ydHMyLCBtb2R1bGUyKSB7XG4gICAgaWYgKHR5cGVvZiBwcm9jZXNzID09PSBcInVuZGVmaW5lZFwiIHx8IHByb2Nlc3MudHlwZSA9PT0gXCJyZW5kZXJlclwiIHx8IHByb2Nlc3MuYnJvd3NlciA9PT0gdHJ1ZSB8fCBwcm9jZXNzLl9fbndqcykge1xuICAgICAgbW9kdWxlMi5leHBvcnRzID0gcmVxdWlyZV9icm93c2VyKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIG1vZHVsZTIuZXhwb3J0cyA9IHJlcXVpcmVfbm9kZSgpO1xuICAgIH1cbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9lZS1maXJzdC9pbmRleC5qc1xudmFyIHJlcXVpcmVfZWVfZmlyc3QgPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvZWUtZmlyc3QvaW5kZXguanNcIihleHBvcnRzMiwgbW9kdWxlMikge1xuICAgIFwidXNlIHN0cmljdFwiO1xuICAgIG1vZHVsZTIuZXhwb3J0cyA9IGZpcnN0O1xuICAgIGZ1bmN0aW9uIGZpcnN0KHN0dWZmLCBkb25lKSB7XG4gICAgICBpZiAoIUFycmF5LmlzQXJyYXkoc3R1ZmYpKVxuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiYXJnIG11c3QgYmUgYW4gYXJyYXkgb2YgW2VlLCBldmVudHMuLi5dIGFycmF5c1wiKTtcbiAgICAgIHZhciBjbGVhbnVwcyA9IFtdO1xuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzdHVmZi5sZW5ndGg7IGkrKykge1xuICAgICAgICB2YXIgYXJyID0gc3R1ZmZbaV07XG4gICAgICAgIGlmICghQXJyYXkuaXNBcnJheShhcnIpIHx8IGFyci5sZW5ndGggPCAyKVxuICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJlYWNoIGFycmF5IG1lbWJlciBtdXN0IGJlIFtlZSwgZXZlbnRzLi4uXVwiKTtcbiAgICAgICAgdmFyIGVlID0gYXJyWzBdO1xuICAgICAgICBmb3IgKHZhciBqID0gMTsgaiA8IGFyci5sZW5ndGg7IGorKykge1xuICAgICAgICAgIHZhciBldmVudCA9IGFycltqXTtcbiAgICAgICAgICB2YXIgZm4gPSBsaXN0ZW5lcihldmVudCwgY2FsbGJhY2spO1xuICAgICAgICAgIGVlLm9uKGV2ZW50LCBmbik7XG4gICAgICAgICAgY2xlYW51cHMucHVzaCh7XG4gICAgICAgICAgICBlZSxcbiAgICAgICAgICAgIGV2ZW50LFxuICAgICAgICAgICAgZm5cbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgZnVuY3Rpb24gY2FsbGJhY2soKSB7XG4gICAgICAgIGNsZWFudXAoKTtcbiAgICAgICAgZG9uZS5hcHBseShudWxsLCBhcmd1bWVudHMpO1xuICAgICAgfVxuICAgICAgZnVuY3Rpb24gY2xlYW51cCgpIHtcbiAgICAgICAgdmFyIHg7XG4gICAgICAgIGZvciAodmFyIGkyID0gMDsgaTIgPCBjbGVhbnVwcy5sZW5ndGg7IGkyKyspIHtcbiAgICAgICAgICB4ID0gY2xlYW51cHNbaTJdO1xuICAgICAgICAgIHguZWUucmVtb3ZlTGlzdGVuZXIoeC5ldmVudCwgeC5mbik7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGZ1bmN0aW9uIHRodW5rKGZuMikge1xuICAgICAgICBkb25lID0gZm4yO1xuICAgICAgfVxuICAgICAgdGh1bmsuY2FuY2VsID0gY2xlYW51cDtcbiAgICAgIHJldHVybiB0aHVuaztcbiAgICB9XG4gICAgZnVuY3Rpb24gbGlzdGVuZXIoZXZlbnQsIGRvbmUpIHtcbiAgICAgIHJldHVybiBmdW5jdGlvbiBvbmV2ZW50KGFyZzEpIHtcbiAgICAgICAgdmFyIGFyZ3MgPSBuZXcgQXJyYXkoYXJndW1lbnRzLmxlbmd0aCk7XG4gICAgICAgIHZhciBlZSA9IHRoaXM7XG4gICAgICAgIHZhciBlcnIyID0gZXZlbnQgPT09IFwiZXJyb3JcIiA/IGFyZzEgOiBudWxsO1xuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGFyZ3MubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICBhcmdzW2ldID0gYXJndW1lbnRzW2ldO1xuICAgICAgICB9XG4gICAgICAgIGRvbmUoZXJyMiwgZWUsIGV2ZW50LCBhcmdzKTtcbiAgICAgIH07XG4gICAgfVxuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL29uLWZpbmlzaGVkL2luZGV4LmpzXG52YXIgcmVxdWlyZV9vbl9maW5pc2hlZCA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9vbi1maW5pc2hlZC9pbmRleC5qc1wiKGV4cG9ydHMyLCBtb2R1bGUyKSB7XG4gICAgXCJ1c2Ugc3RyaWN0XCI7XG4gICAgbW9kdWxlMi5leHBvcnRzID0gb25GaW5pc2hlZDtcbiAgICBtb2R1bGUyLmV4cG9ydHMuaXNGaW5pc2hlZCA9IGlzRmluaXNoZWQ7XG4gICAgdmFyIGFzeW5jSG9va3MgPSB0cnlSZXF1aXJlQXN5bmNIb29rcygpO1xuICAgIHZhciBmaXJzdCA9IHJlcXVpcmVfZWVfZmlyc3QoKTtcbiAgICB2YXIgZGVmZXIgPSB0eXBlb2Ygc2V0SW1tZWRpYXRlID09PSBcImZ1bmN0aW9uXCIgPyBzZXRJbW1lZGlhdGUgOiBmdW5jdGlvbihmbikge1xuICAgICAgcHJvY2Vzcy5uZXh0VGljayhmbi5iaW5kLmFwcGx5KGZuLCBhcmd1bWVudHMpKTtcbiAgICB9O1xuICAgIGZ1bmN0aW9uIG9uRmluaXNoZWQobXNnLCBsaXN0ZW5lcikge1xuICAgICAgaWYgKGlzRmluaXNoZWQobXNnKSAhPT0gZmFsc2UpIHtcbiAgICAgICAgZGVmZXIobGlzdGVuZXIsIG51bGwsIG1zZyk7XG4gICAgICAgIHJldHVybiBtc2c7XG4gICAgICB9XG4gICAgICBhdHRhY2hMaXN0ZW5lcihtc2csIHdyYXAobGlzdGVuZXIpKTtcbiAgICAgIHJldHVybiBtc2c7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGlzRmluaXNoZWQobXNnKSB7XG4gICAgICB2YXIgc29ja2V0ID0gbXNnLnNvY2tldDtcbiAgICAgIGlmICh0eXBlb2YgbXNnLmZpbmlzaGVkID09PSBcImJvb2xlYW5cIikge1xuICAgICAgICByZXR1cm4gQm9vbGVhbihtc2cuZmluaXNoZWQgfHwgc29ja2V0ICYmICFzb2NrZXQud3JpdGFibGUpO1xuICAgICAgfVxuICAgICAgaWYgKHR5cGVvZiBtc2cuY29tcGxldGUgPT09IFwiYm9vbGVhblwiKSB7XG4gICAgICAgIHJldHVybiBCb29sZWFuKG1zZy51cGdyYWRlIHx8ICFzb2NrZXQgfHwgIXNvY2tldC5yZWFkYWJsZSB8fCBtc2cuY29tcGxldGUgJiYgIW1zZy5yZWFkYWJsZSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gdm9pZCAwO1xuICAgIH1cbiAgICBmdW5jdGlvbiBhdHRhY2hGaW5pc2hlZExpc3RlbmVyKG1zZywgY2FsbGJhY2spIHtcbiAgICAgIHZhciBlZU1zZztcbiAgICAgIHZhciBlZVNvY2tldDtcbiAgICAgIHZhciBmaW5pc2hlZCA9IGZhbHNlO1xuICAgICAgZnVuY3Rpb24gb25GaW5pc2goZXJyb3IpIHtcbiAgICAgICAgZWVNc2cuY2FuY2VsKCk7XG4gICAgICAgIGVlU29ja2V0LmNhbmNlbCgpO1xuICAgICAgICBmaW5pc2hlZCA9IHRydWU7XG4gICAgICAgIGNhbGxiYWNrKGVycm9yKTtcbiAgICAgIH1cbiAgICAgIGVlTXNnID0gZWVTb2NrZXQgPSBmaXJzdChbW21zZywgXCJlbmRcIiwgXCJmaW5pc2hcIl1dLCBvbkZpbmlzaCk7XG4gICAgICBmdW5jdGlvbiBvblNvY2tldChzb2NrZXQpIHtcbiAgICAgICAgbXNnLnJlbW92ZUxpc3RlbmVyKFwic29ja2V0XCIsIG9uU29ja2V0KTtcbiAgICAgICAgaWYgKGZpbmlzaGVkKSByZXR1cm47XG4gICAgICAgIGlmIChlZU1zZyAhPT0gZWVTb2NrZXQpIHJldHVybjtcbiAgICAgICAgZWVTb2NrZXQgPSBmaXJzdChbW3NvY2tldCwgXCJlcnJvclwiLCBcImNsb3NlXCJdXSwgb25GaW5pc2gpO1xuICAgICAgfVxuICAgICAgaWYgKG1zZy5zb2NrZXQpIHtcbiAgICAgICAgb25Tb2NrZXQobXNnLnNvY2tldCk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIG1zZy5vbihcInNvY2tldFwiLCBvblNvY2tldCk7XG4gICAgICBpZiAobXNnLnNvY2tldCA9PT0gdm9pZCAwKSB7XG4gICAgICAgIHBhdGNoQXNzaWduU29ja2V0KG1zZywgb25Tb2NrZXQpO1xuICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiBhdHRhY2hMaXN0ZW5lcihtc2csIGxpc3RlbmVyKSB7XG4gICAgICB2YXIgYXR0YWNoZWQgPSBtc2cuX19vbkZpbmlzaGVkO1xuICAgICAgaWYgKCFhdHRhY2hlZCB8fCAhYXR0YWNoZWQucXVldWUpIHtcbiAgICAgICAgYXR0YWNoZWQgPSBtc2cuX19vbkZpbmlzaGVkID0gY3JlYXRlTGlzdGVuZXIobXNnKTtcbiAgICAgICAgYXR0YWNoRmluaXNoZWRMaXN0ZW5lcihtc2csIGF0dGFjaGVkKTtcbiAgICAgIH1cbiAgICAgIGF0dGFjaGVkLnF1ZXVlLnB1c2gobGlzdGVuZXIpO1xuICAgIH1cbiAgICBmdW5jdGlvbiBjcmVhdGVMaXN0ZW5lcihtc2cpIHtcbiAgICAgIGZ1bmN0aW9uIGxpc3RlbmVyKGVycjIpIHtcbiAgICAgICAgaWYgKG1zZy5fX29uRmluaXNoZWQgPT09IGxpc3RlbmVyKSBtc2cuX19vbkZpbmlzaGVkID0gbnVsbDtcbiAgICAgICAgaWYgKCFsaXN0ZW5lci5xdWV1ZSkgcmV0dXJuO1xuICAgICAgICB2YXIgcXVldWUgPSBsaXN0ZW5lci5xdWV1ZTtcbiAgICAgICAgbGlzdGVuZXIucXVldWUgPSBudWxsO1xuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHF1ZXVlLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgcXVldWVbaV0oZXJyMiwgbXNnKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgbGlzdGVuZXIucXVldWUgPSBbXTtcbiAgICAgIHJldHVybiBsaXN0ZW5lcjtcbiAgICB9XG4gICAgZnVuY3Rpb24gcGF0Y2hBc3NpZ25Tb2NrZXQocmVzLCBjYWxsYmFjaykge1xuICAgICAgdmFyIGFzc2lnblNvY2tldCA9IHJlcy5hc3NpZ25Tb2NrZXQ7XG4gICAgICBpZiAodHlwZW9mIGFzc2lnblNvY2tldCAhPT0gXCJmdW5jdGlvblwiKSByZXR1cm47XG4gICAgICByZXMuYXNzaWduU29ja2V0ID0gZnVuY3Rpb24gX2Fzc2lnblNvY2tldChzb2NrZXQpIHtcbiAgICAgICAgYXNzaWduU29ja2V0LmNhbGwodGhpcywgc29ja2V0KTtcbiAgICAgICAgY2FsbGJhY2soc29ja2V0KTtcbiAgICAgIH07XG4gICAgfVxuICAgIGZ1bmN0aW9uIHRyeVJlcXVpcmVBc3luY0hvb2tzKCkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgcmV0dXJuIHJlcXVpcmUoXCJhc3luY19ob29rc1wiKTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgcmV0dXJuIHt9O1xuICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiB3cmFwKGZuKSB7XG4gICAgICB2YXIgcmVzO1xuICAgICAgaWYgKGFzeW5jSG9va3MuQXN5bmNSZXNvdXJjZSkge1xuICAgICAgICByZXMgPSBuZXcgYXN5bmNIb29rcy5Bc3luY1Jlc291cmNlKGZuLm5hbWUgfHwgXCJib3VuZC1hbm9ueW1vdXMtZm5cIik7XG4gICAgICB9XG4gICAgICBpZiAoIXJlcyB8fCAhcmVzLnJ1bkluQXN5bmNTY29wZSkge1xuICAgICAgICByZXR1cm4gZm47XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzLnJ1bkluQXN5bmNTY29wZS5iaW5kKHJlcywgZm4sIG51bGwpO1xuICAgIH1cbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9ib2R5LXBhcnNlci9ub2RlX21vZHVsZXMvaWNvbnYtbGl0ZS9saWIvYm9tLWhhbmRsaW5nLmpzXG52YXIgcmVxdWlyZV9ib21faGFuZGxpbmcyID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL2JvZHktcGFyc2VyL25vZGVfbW9kdWxlcy9pY29udi1saXRlL2xpYi9ib20taGFuZGxpbmcuanNcIihleHBvcnRzMikge1xuICAgIFwidXNlIHN0cmljdFwiO1xuICAgIHZhciBCT01DaGFyID0gXCJcXHVGRUZGXCI7XG4gICAgZXhwb3J0czIuUHJlcGVuZEJPTSA9IFByZXBlbmRCT01XcmFwcGVyO1xuICAgIGZ1bmN0aW9uIFByZXBlbmRCT01XcmFwcGVyKGVuY29kZXIsIG9wdGlvbnMpIHtcbiAgICAgIHRoaXMuZW5jb2RlciA9IGVuY29kZXI7XG4gICAgICB0aGlzLmFkZEJPTSA9IHRydWU7XG4gICAgfVxuICAgIFByZXBlbmRCT01XcmFwcGVyLnByb3RvdHlwZS53cml0ZSA9IGZ1bmN0aW9uKHN0cikge1xuICAgICAgaWYgKHRoaXMuYWRkQk9NKSB7XG4gICAgICAgIHN0ciA9IEJPTUNoYXIgKyBzdHI7XG4gICAgICAgIHRoaXMuYWRkQk9NID0gZmFsc2U7XG4gICAgICB9XG4gICAgICByZXR1cm4gdGhpcy5lbmNvZGVyLndyaXRlKHN0cik7XG4gICAgfTtcbiAgICBQcmVwZW5kQk9NV3JhcHBlci5wcm90b3R5cGUuZW5kID0gZnVuY3Rpb24oKSB7XG4gICAgICByZXR1cm4gdGhpcy5lbmNvZGVyLmVuZCgpO1xuICAgIH07XG4gICAgZXhwb3J0czIuU3RyaXBCT00gPSBTdHJpcEJPTVdyYXBwZXI7XG4gICAgZnVuY3Rpb24gU3RyaXBCT01XcmFwcGVyKGRlY29kZXIsIG9wdGlvbnMpIHtcbiAgICAgIHRoaXMuZGVjb2RlciA9IGRlY29kZXI7XG4gICAgICB0aGlzLnBhc3MgPSBmYWxzZTtcbiAgICAgIHRoaXMub3B0aW9ucyA9IG9wdGlvbnMgfHwge307XG4gICAgfVxuICAgIFN0cmlwQk9NV3JhcHBlci5wcm90b3R5cGUud3JpdGUgPSBmdW5jdGlvbihidWYpIHtcbiAgICAgIHZhciByZXMgPSB0aGlzLmRlY29kZXIud3JpdGUoYnVmKTtcbiAgICAgIGlmICh0aGlzLnBhc3MgfHwgIXJlcylcbiAgICAgICAgcmV0dXJuIHJlcztcbiAgICAgIGlmIChyZXNbMF0gPT09IEJPTUNoYXIpIHtcbiAgICAgICAgcmVzID0gcmVzLnNsaWNlKDEpO1xuICAgICAgICBpZiAodHlwZW9mIHRoaXMub3B0aW9ucy5zdHJpcEJPTSA9PT0gXCJmdW5jdGlvblwiKVxuICAgICAgICAgIHRoaXMub3B0aW9ucy5zdHJpcEJPTSgpO1xuICAgICAgfVxuICAgICAgdGhpcy5wYXNzID0gdHJ1ZTtcbiAgICAgIHJldHVybiByZXM7XG4gICAgfTtcbiAgICBTdHJpcEJPTVdyYXBwZXIucHJvdG90eXBlLmVuZCA9IGZ1bmN0aW9uKCkge1xuICAgICAgcmV0dXJuIHRoaXMuZGVjb2Rlci5lbmQoKTtcbiAgICB9O1xuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL2JvZHktcGFyc2VyL25vZGVfbW9kdWxlcy9pY29udi1saXRlL2VuY29kaW5ncy9pbnRlcm5hbC5qc1xudmFyIHJlcXVpcmVfaW50ZXJuYWwyID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL2JvZHktcGFyc2VyL25vZGVfbW9kdWxlcy9pY29udi1saXRlL2VuY29kaW5ncy9pbnRlcm5hbC5qc1wiKGV4cG9ydHMyLCBtb2R1bGUyKSB7XG4gICAgXCJ1c2Ugc3RyaWN0XCI7XG4gICAgdmFyIEJ1ZmZlcjIgPSByZXF1aXJlX3NhZmVyKCkuQnVmZmVyO1xuICAgIG1vZHVsZTIuZXhwb3J0cyA9IHtcbiAgICAgIC8vIEVuY29kaW5nc1xuICAgICAgdXRmODogeyB0eXBlOiBcIl9pbnRlcm5hbFwiLCBib21Bd2FyZTogdHJ1ZSB9LFxuICAgICAgY2VzdTg6IHsgdHlwZTogXCJfaW50ZXJuYWxcIiwgYm9tQXdhcmU6IHRydWUgfSxcbiAgICAgIHVuaWNvZGUxMXV0Zjg6IFwidXRmOFwiLFxuICAgICAgdWNzMjogeyB0eXBlOiBcIl9pbnRlcm5hbFwiLCBib21Bd2FyZTogdHJ1ZSB9LFxuICAgICAgdXRmMTZsZTogXCJ1Y3MyXCIsXG4gICAgICBiaW5hcnk6IHsgdHlwZTogXCJfaW50ZXJuYWxcIiB9LFxuICAgICAgYmFzZTY0OiB7IHR5cGU6IFwiX2ludGVybmFsXCIgfSxcbiAgICAgIGhleDogeyB0eXBlOiBcIl9pbnRlcm5hbFwiIH0sXG4gICAgICAvLyBDb2RlYy5cbiAgICAgIF9pbnRlcm5hbDogSW50ZXJuYWxDb2RlY1xuICAgIH07XG4gICAgZnVuY3Rpb24gSW50ZXJuYWxDb2RlYyhjb2RlY09wdGlvbnMsIGljb252KSB7XG4gICAgICB0aGlzLmVuYyA9IGNvZGVjT3B0aW9ucy5lbmNvZGluZ05hbWU7XG4gICAgICB0aGlzLmJvbUF3YXJlID0gY29kZWNPcHRpb25zLmJvbUF3YXJlO1xuICAgICAgaWYgKHRoaXMuZW5jID09PSBcImJhc2U2NFwiKVxuICAgICAgICB0aGlzLmVuY29kZXIgPSBJbnRlcm5hbEVuY29kZXJCYXNlNjQ7XG4gICAgICBlbHNlIGlmICh0aGlzLmVuYyA9PT0gXCJjZXN1OFwiKSB7XG4gICAgICAgIHRoaXMuZW5jID0gXCJ1dGY4XCI7XG4gICAgICAgIHRoaXMuZW5jb2RlciA9IEludGVybmFsRW5jb2RlckNlc3U4O1xuICAgICAgICBpZiAoQnVmZmVyMi5mcm9tKFwiZWRhMGJkZWRiMmE5XCIsIFwiaGV4XCIpLnRvU3RyaW5nKCkgIT09IFwiXFx1ezFGNEE5fVwiKSB7XG4gICAgICAgICAgdGhpcy5kZWNvZGVyID0gSW50ZXJuYWxEZWNvZGVyQ2VzdTg7XG4gICAgICAgICAgdGhpcy5kZWZhdWx0Q2hhclVuaWNvZGUgPSBpY29udi5kZWZhdWx0Q2hhclVuaWNvZGU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgSW50ZXJuYWxDb2RlYy5wcm90b3R5cGUuZW5jb2RlciA9IEludGVybmFsRW5jb2RlcjtcbiAgICBJbnRlcm5hbENvZGVjLnByb3RvdHlwZS5kZWNvZGVyID0gSW50ZXJuYWxEZWNvZGVyO1xuICAgIHZhciBTdHJpbmdEZWNvZGVyID0gcmVxdWlyZShcInN0cmluZ19kZWNvZGVyXCIpLlN0cmluZ0RlY29kZXI7XG4gICAgaWYgKCFTdHJpbmdEZWNvZGVyLnByb3RvdHlwZS5lbmQpXG4gICAgICBTdHJpbmdEZWNvZGVyLnByb3RvdHlwZS5lbmQgPSBmdW5jdGlvbigpIHtcbiAgICAgIH07XG4gICAgZnVuY3Rpb24gSW50ZXJuYWxEZWNvZGVyKG9wdGlvbnMsIGNvZGVjKSB7XG4gICAgICB0aGlzLmRlY29kZXIgPSBuZXcgU3RyaW5nRGVjb2Rlcihjb2RlYy5lbmMpO1xuICAgIH1cbiAgICBJbnRlcm5hbERlY29kZXIucHJvdG90eXBlLndyaXRlID0gZnVuY3Rpb24oYnVmKSB7XG4gICAgICBpZiAoIUJ1ZmZlcjIuaXNCdWZmZXIoYnVmKSkge1xuICAgICAgICBidWYgPSBCdWZmZXIyLmZyb20oYnVmKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0aGlzLmRlY29kZXIud3JpdGUoYnVmKTtcbiAgICB9O1xuICAgIEludGVybmFsRGVjb2Rlci5wcm90b3R5cGUuZW5kID0gZnVuY3Rpb24oKSB7XG4gICAgICByZXR1cm4gdGhpcy5kZWNvZGVyLmVuZCgpO1xuICAgIH07XG4gICAgZnVuY3Rpb24gSW50ZXJuYWxFbmNvZGVyKG9wdGlvbnMsIGNvZGVjKSB7XG4gICAgICB0aGlzLmVuYyA9IGNvZGVjLmVuYztcbiAgICB9XG4gICAgSW50ZXJuYWxFbmNvZGVyLnByb3RvdHlwZS53cml0ZSA9IGZ1bmN0aW9uKHN0cikge1xuICAgICAgcmV0dXJuIEJ1ZmZlcjIuZnJvbShzdHIsIHRoaXMuZW5jKTtcbiAgICB9O1xuICAgIEludGVybmFsRW5jb2Rlci5wcm90b3R5cGUuZW5kID0gZnVuY3Rpb24oKSB7XG4gICAgfTtcbiAgICBmdW5jdGlvbiBJbnRlcm5hbEVuY29kZXJCYXNlNjQob3B0aW9ucywgY29kZWMpIHtcbiAgICAgIHRoaXMucHJldlN0ciA9IFwiXCI7XG4gICAgfVxuICAgIEludGVybmFsRW5jb2RlckJhc2U2NC5wcm90b3R5cGUud3JpdGUgPSBmdW5jdGlvbihzdHIpIHtcbiAgICAgIHN0ciA9IHRoaXMucHJldlN0ciArIHN0cjtcbiAgICAgIHZhciBjb21wbGV0ZVF1YWRzID0gc3RyLmxlbmd0aCAtIHN0ci5sZW5ndGggJSA0O1xuICAgICAgdGhpcy5wcmV2U3RyID0gc3RyLnNsaWNlKGNvbXBsZXRlUXVhZHMpO1xuICAgICAgc3RyID0gc3RyLnNsaWNlKDAsIGNvbXBsZXRlUXVhZHMpO1xuICAgICAgcmV0dXJuIEJ1ZmZlcjIuZnJvbShzdHIsIFwiYmFzZTY0XCIpO1xuICAgIH07XG4gICAgSW50ZXJuYWxFbmNvZGVyQmFzZTY0LnByb3RvdHlwZS5lbmQgPSBmdW5jdGlvbigpIHtcbiAgICAgIHJldHVybiBCdWZmZXIyLmZyb20odGhpcy5wcmV2U3RyLCBcImJhc2U2NFwiKTtcbiAgICB9O1xuICAgIGZ1bmN0aW9uIEludGVybmFsRW5jb2RlckNlc3U4KG9wdGlvbnMsIGNvZGVjKSB7XG4gICAgfVxuICAgIEludGVybmFsRW5jb2RlckNlc3U4LnByb3RvdHlwZS53cml0ZSA9IGZ1bmN0aW9uKHN0cikge1xuICAgICAgdmFyIGJ1ZiA9IEJ1ZmZlcjIuYWxsb2Moc3RyLmxlbmd0aCAqIDMpLCBidWZJZHggPSAwO1xuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzdHIubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgdmFyIGNoYXJDb2RlID0gc3RyLmNoYXJDb2RlQXQoaSk7XG4gICAgICAgIGlmIChjaGFyQ29kZSA8IDEyOClcbiAgICAgICAgICBidWZbYnVmSWR4KytdID0gY2hhckNvZGU7XG4gICAgICAgIGVsc2UgaWYgKGNoYXJDb2RlIDwgMjA0OCkge1xuICAgICAgICAgIGJ1ZltidWZJZHgrK10gPSAxOTIgKyAoY2hhckNvZGUgPj4+IDYpO1xuICAgICAgICAgIGJ1ZltidWZJZHgrK10gPSAxMjggKyAoY2hhckNvZGUgJiA2Myk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgYnVmW2J1ZklkeCsrXSA9IDIyNCArIChjaGFyQ29kZSA+Pj4gMTIpO1xuICAgICAgICAgIGJ1ZltidWZJZHgrK10gPSAxMjggKyAoY2hhckNvZGUgPj4+IDYgJiA2Myk7XG4gICAgICAgICAgYnVmW2J1ZklkeCsrXSA9IDEyOCArIChjaGFyQ29kZSAmIDYzKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIGJ1Zi5zbGljZSgwLCBidWZJZHgpO1xuICAgIH07XG4gICAgSW50ZXJuYWxFbmNvZGVyQ2VzdTgucHJvdG90eXBlLmVuZCA9IGZ1bmN0aW9uKCkge1xuICAgIH07XG4gICAgZnVuY3Rpb24gSW50ZXJuYWxEZWNvZGVyQ2VzdTgob3B0aW9ucywgY29kZWMpIHtcbiAgICAgIHRoaXMuYWNjID0gMDtcbiAgICAgIHRoaXMuY29udEJ5dGVzID0gMDtcbiAgICAgIHRoaXMuYWNjQnl0ZXMgPSAwO1xuICAgICAgdGhpcy5kZWZhdWx0Q2hhclVuaWNvZGUgPSBjb2RlYy5kZWZhdWx0Q2hhclVuaWNvZGU7XG4gICAgfVxuICAgIEludGVybmFsRGVjb2RlckNlc3U4LnByb3RvdHlwZS53cml0ZSA9IGZ1bmN0aW9uKGJ1Zikge1xuICAgICAgdmFyIGFjYyA9IHRoaXMuYWNjLCBjb250Qnl0ZXMgPSB0aGlzLmNvbnRCeXRlcywgYWNjQnl0ZXMgPSB0aGlzLmFjY0J5dGVzLCByZXMgPSBcIlwiO1xuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBidWYubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgdmFyIGN1ckJ5dGUgPSBidWZbaV07XG4gICAgICAgIGlmICgoY3VyQnl0ZSAmIDE5MikgIT09IDEyOCkge1xuICAgICAgICAgIGlmIChjb250Qnl0ZXMgPiAwKSB7XG4gICAgICAgICAgICByZXMgKz0gdGhpcy5kZWZhdWx0Q2hhclVuaWNvZGU7XG4gICAgICAgICAgICBjb250Qnl0ZXMgPSAwO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoY3VyQnl0ZSA8IDEyOCkge1xuICAgICAgICAgICAgcmVzICs9IFN0cmluZy5mcm9tQ2hhckNvZGUoY3VyQnl0ZSk7XG4gICAgICAgICAgfSBlbHNlIGlmIChjdXJCeXRlIDwgMjI0KSB7XG4gICAgICAgICAgICBhY2MgPSBjdXJCeXRlICYgMzE7XG4gICAgICAgICAgICBjb250Qnl0ZXMgPSAxO1xuICAgICAgICAgICAgYWNjQnl0ZXMgPSAxO1xuICAgICAgICAgIH0gZWxzZSBpZiAoY3VyQnl0ZSA8IDI0MCkge1xuICAgICAgICAgICAgYWNjID0gY3VyQnl0ZSAmIDE1O1xuICAgICAgICAgICAgY29udEJ5dGVzID0gMjtcbiAgICAgICAgICAgIGFjY0J5dGVzID0gMTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmVzICs9IHRoaXMuZGVmYXVsdENoYXJVbmljb2RlO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpZiAoY29udEJ5dGVzID4gMCkge1xuICAgICAgICAgICAgYWNjID0gYWNjIDw8IDYgfCBjdXJCeXRlICYgNjM7XG4gICAgICAgICAgICBjb250Qnl0ZXMtLTtcbiAgICAgICAgICAgIGFjY0J5dGVzKys7XG4gICAgICAgICAgICBpZiAoY29udEJ5dGVzID09PSAwKSB7XG4gICAgICAgICAgICAgIGlmIChhY2NCeXRlcyA9PT0gMiAmJiBhY2MgPCAxMjggJiYgYWNjID4gMClcbiAgICAgICAgICAgICAgICByZXMgKz0gdGhpcy5kZWZhdWx0Q2hhclVuaWNvZGU7XG4gICAgICAgICAgICAgIGVsc2UgaWYgKGFjY0J5dGVzID09PSAzICYmIGFjYyA8IDIwNDgpXG4gICAgICAgICAgICAgICAgcmVzICs9IHRoaXMuZGVmYXVsdENoYXJVbmljb2RlO1xuICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgcmVzICs9IFN0cmluZy5mcm9tQ2hhckNvZGUoYWNjKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmVzICs9IHRoaXMuZGVmYXVsdENoYXJVbmljb2RlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgdGhpcy5hY2MgPSBhY2M7XG4gICAgICB0aGlzLmNvbnRCeXRlcyA9IGNvbnRCeXRlcztcbiAgICAgIHRoaXMuYWNjQnl0ZXMgPSBhY2NCeXRlcztcbiAgICAgIHJldHVybiByZXM7XG4gICAgfTtcbiAgICBJbnRlcm5hbERlY29kZXJDZXN1OC5wcm90b3R5cGUuZW5kID0gZnVuY3Rpb24oKSB7XG4gICAgICB2YXIgcmVzID0gMDtcbiAgICAgIGlmICh0aGlzLmNvbnRCeXRlcyA+IDApXG4gICAgICAgIHJlcyArPSB0aGlzLmRlZmF1bHRDaGFyVW5pY29kZTtcbiAgICAgIHJldHVybiByZXM7XG4gICAgfTtcbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9ib2R5LXBhcnNlci9ub2RlX21vZHVsZXMvaWNvbnYtbGl0ZS9lbmNvZGluZ3MvdXRmMzIuanNcbnZhciByZXF1aXJlX3V0ZjMyMiA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9ib2R5LXBhcnNlci9ub2RlX21vZHVsZXMvaWNvbnYtbGl0ZS9lbmNvZGluZ3MvdXRmMzIuanNcIihleHBvcnRzMikge1xuICAgIFwidXNlIHN0cmljdFwiO1xuICAgIHZhciBCdWZmZXIyID0gcmVxdWlyZV9zYWZlcigpLkJ1ZmZlcjtcbiAgICBleHBvcnRzMi5fdXRmMzIgPSBVdGYzMkNvZGVjO1xuICAgIGZ1bmN0aW9uIFV0ZjMyQ29kZWMoY29kZWNPcHRpb25zLCBpY29udikge1xuICAgICAgdGhpcy5pY29udiA9IGljb252O1xuICAgICAgdGhpcy5ib21Bd2FyZSA9IHRydWU7XG4gICAgICB0aGlzLmlzTEUgPSBjb2RlY09wdGlvbnMuaXNMRTtcbiAgICB9XG4gICAgZXhwb3J0czIudXRmMzJsZSA9IHsgdHlwZTogXCJfdXRmMzJcIiwgaXNMRTogdHJ1ZSB9O1xuICAgIGV4cG9ydHMyLnV0ZjMyYmUgPSB7IHR5cGU6IFwiX3V0ZjMyXCIsIGlzTEU6IGZhbHNlIH07XG4gICAgZXhwb3J0czIudWNzNGxlID0gXCJ1dGYzMmxlXCI7XG4gICAgZXhwb3J0czIudWNzNGJlID0gXCJ1dGYzMmJlXCI7XG4gICAgVXRmMzJDb2RlYy5wcm90b3R5cGUuZW5jb2RlciA9IFV0ZjMyRW5jb2RlcjtcbiAgICBVdGYzMkNvZGVjLnByb3RvdHlwZS5kZWNvZGVyID0gVXRmMzJEZWNvZGVyO1xuICAgIGZ1bmN0aW9uIFV0ZjMyRW5jb2RlcihvcHRpb25zLCBjb2RlYykge1xuICAgICAgdGhpcy5pc0xFID0gY29kZWMuaXNMRTtcbiAgICAgIHRoaXMuaGlnaFN1cnJvZ2F0ZSA9IDA7XG4gICAgfVxuICAgIFV0ZjMyRW5jb2Rlci5wcm90b3R5cGUud3JpdGUgPSBmdW5jdGlvbihzdHIpIHtcbiAgICAgIHZhciBzcmMgPSBCdWZmZXIyLmZyb20oc3RyLCBcInVjczJcIik7XG4gICAgICB2YXIgZHN0ID0gQnVmZmVyMi5hbGxvYyhzcmMubGVuZ3RoICogMik7XG4gICAgICB2YXIgd3JpdGUzMiA9IHRoaXMuaXNMRSA/IGRzdC53cml0ZVVJbnQzMkxFIDogZHN0LndyaXRlVUludDMyQkU7XG4gICAgICB2YXIgb2Zmc2V0ID0gMDtcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc3JjLmxlbmd0aDsgaSArPSAyKSB7XG4gICAgICAgIHZhciBjb2RlID0gc3JjLnJlYWRVSW50MTZMRShpKTtcbiAgICAgICAgdmFyIGlzSGlnaFN1cnJvZ2F0ZSA9IDU1Mjk2IDw9IGNvZGUgJiYgY29kZSA8IDU2MzIwO1xuICAgICAgICB2YXIgaXNMb3dTdXJyb2dhdGUgPSA1NjMyMCA8PSBjb2RlICYmIGNvZGUgPCA1NzM0NDtcbiAgICAgICAgaWYgKHRoaXMuaGlnaFN1cnJvZ2F0ZSkge1xuICAgICAgICAgIGlmIChpc0hpZ2hTdXJyb2dhdGUgfHwgIWlzTG93U3Vycm9nYXRlKSB7XG4gICAgICAgICAgICB3cml0ZTMyLmNhbGwoZHN0LCB0aGlzLmhpZ2hTdXJyb2dhdGUsIG9mZnNldCk7XG4gICAgICAgICAgICBvZmZzZXQgKz0gNDtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdmFyIGNvZGVwb2ludCA9ICh0aGlzLmhpZ2hTdXJyb2dhdGUgLSA1NTI5NiA8PCAxMCB8IGNvZGUgLSA1NjMyMCkgKyA2NTUzNjtcbiAgICAgICAgICAgIHdyaXRlMzIuY2FsbChkc3QsIGNvZGVwb2ludCwgb2Zmc2V0KTtcbiAgICAgICAgICAgIG9mZnNldCArPSA0O1xuICAgICAgICAgICAgdGhpcy5oaWdoU3Vycm9nYXRlID0gMDtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoaXNIaWdoU3Vycm9nYXRlKVxuICAgICAgICAgIHRoaXMuaGlnaFN1cnJvZ2F0ZSA9IGNvZGU7XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgIHdyaXRlMzIuY2FsbChkc3QsIGNvZGUsIG9mZnNldCk7XG4gICAgICAgICAgb2Zmc2V0ICs9IDQ7XG4gICAgICAgICAgdGhpcy5oaWdoU3Vycm9nYXRlID0gMDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKG9mZnNldCA8IGRzdC5sZW5ndGgpXG4gICAgICAgIGRzdCA9IGRzdC5zbGljZSgwLCBvZmZzZXQpO1xuICAgICAgcmV0dXJuIGRzdDtcbiAgICB9O1xuICAgIFV0ZjMyRW5jb2Rlci5wcm90b3R5cGUuZW5kID0gZnVuY3Rpb24oKSB7XG4gICAgICBpZiAoIXRoaXMuaGlnaFN1cnJvZ2F0ZSlcbiAgICAgICAgcmV0dXJuO1xuICAgICAgdmFyIGJ1ZiA9IEJ1ZmZlcjIuYWxsb2MoNCk7XG4gICAgICBpZiAodGhpcy5pc0xFKVxuICAgICAgICBidWYud3JpdGVVSW50MzJMRSh0aGlzLmhpZ2hTdXJyb2dhdGUsIDApO1xuICAgICAgZWxzZVxuICAgICAgICBidWYud3JpdGVVSW50MzJCRSh0aGlzLmhpZ2hTdXJyb2dhdGUsIDApO1xuICAgICAgdGhpcy5oaWdoU3Vycm9nYXRlID0gMDtcbiAgICAgIHJldHVybiBidWY7XG4gICAgfTtcbiAgICBmdW5jdGlvbiBVdGYzMkRlY29kZXIob3B0aW9ucywgY29kZWMpIHtcbiAgICAgIHRoaXMuaXNMRSA9IGNvZGVjLmlzTEU7XG4gICAgICB0aGlzLmJhZENoYXIgPSBjb2RlYy5pY29udi5kZWZhdWx0Q2hhclVuaWNvZGUuY2hhckNvZGVBdCgwKTtcbiAgICAgIHRoaXMub3ZlcmZsb3cgPSBbXTtcbiAgICB9XG4gICAgVXRmMzJEZWNvZGVyLnByb3RvdHlwZS53cml0ZSA9IGZ1bmN0aW9uKHNyYykge1xuICAgICAgaWYgKHNyYy5sZW5ndGggPT09IDApXG4gICAgICAgIHJldHVybiBcIlwiO1xuICAgICAgdmFyIGkgPSAwO1xuICAgICAgdmFyIGNvZGVwb2ludCA9IDA7XG4gICAgICB2YXIgZHN0ID0gQnVmZmVyMi5hbGxvYyhzcmMubGVuZ3RoICsgNCk7XG4gICAgICB2YXIgb2Zmc2V0ID0gMDtcbiAgICAgIHZhciBpc0xFID0gdGhpcy5pc0xFO1xuICAgICAgdmFyIG92ZXJmbG93ID0gdGhpcy5vdmVyZmxvdztcbiAgICAgIHZhciBiYWRDaGFyID0gdGhpcy5iYWRDaGFyO1xuICAgICAgaWYgKG92ZXJmbG93Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgZm9yICg7IGkgPCBzcmMubGVuZ3RoICYmIG92ZXJmbG93Lmxlbmd0aCA8IDQ7IGkrKylcbiAgICAgICAgICBvdmVyZmxvdy5wdXNoKHNyY1tpXSk7XG4gICAgICAgIGlmIChvdmVyZmxvdy5sZW5ndGggPT09IDQpIHtcbiAgICAgICAgICBpZiAoaXNMRSkge1xuICAgICAgICAgICAgY29kZXBvaW50ID0gb3ZlcmZsb3dbaV0gfCBvdmVyZmxvd1tpICsgMV0gPDwgOCB8IG92ZXJmbG93W2kgKyAyXSA8PCAxNiB8IG92ZXJmbG93W2kgKyAzXSA8PCAyNDtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29kZXBvaW50ID0gb3ZlcmZsb3dbaSArIDNdIHwgb3ZlcmZsb3dbaSArIDJdIDw8IDggfCBvdmVyZmxvd1tpICsgMV0gPDwgMTYgfCBvdmVyZmxvd1tpXSA8PCAyNDtcbiAgICAgICAgICB9XG4gICAgICAgICAgb3ZlcmZsb3cubGVuZ3RoID0gMDtcbiAgICAgICAgICBvZmZzZXQgPSBfd3JpdGVDb2RlcG9pbnQoZHN0LCBvZmZzZXQsIGNvZGVwb2ludCwgYmFkQ2hhcik7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGZvciAoOyBpIDwgc3JjLmxlbmd0aCAtIDM7IGkgKz0gNCkge1xuICAgICAgICBpZiAoaXNMRSkge1xuICAgICAgICAgIGNvZGVwb2ludCA9IHNyY1tpXSB8IHNyY1tpICsgMV0gPDwgOCB8IHNyY1tpICsgMl0gPDwgMTYgfCBzcmNbaSArIDNdIDw8IDI0O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvZGVwb2ludCA9IHNyY1tpICsgM10gfCBzcmNbaSArIDJdIDw8IDggfCBzcmNbaSArIDFdIDw8IDE2IHwgc3JjW2ldIDw8IDI0O1xuICAgICAgICB9XG4gICAgICAgIG9mZnNldCA9IF93cml0ZUNvZGVwb2ludChkc3QsIG9mZnNldCwgY29kZXBvaW50LCBiYWRDaGFyKTtcbiAgICAgIH1cbiAgICAgIGZvciAoOyBpIDwgc3JjLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIG92ZXJmbG93LnB1c2goc3JjW2ldKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBkc3Quc2xpY2UoMCwgb2Zmc2V0KS50b1N0cmluZyhcInVjczJcIik7XG4gICAgfTtcbiAgICBmdW5jdGlvbiBfd3JpdGVDb2RlcG9pbnQoZHN0LCBvZmZzZXQsIGNvZGVwb2ludCwgYmFkQ2hhcikge1xuICAgICAgaWYgKGNvZGVwb2ludCA8IDAgfHwgY29kZXBvaW50ID4gMTExNDExMSkge1xuICAgICAgICBjb2RlcG9pbnQgPSBiYWRDaGFyO1xuICAgICAgfVxuICAgICAgaWYgKGNvZGVwb2ludCA+PSA2NTUzNikge1xuICAgICAgICBjb2RlcG9pbnQgLT0gNjU1MzY7XG4gICAgICAgIHZhciBoaWdoID0gNTUyOTYgfCBjb2RlcG9pbnQgPj4gMTA7XG4gICAgICAgIGRzdFtvZmZzZXQrK10gPSBoaWdoICYgMjU1O1xuICAgICAgICBkc3Rbb2Zmc2V0KytdID0gaGlnaCA+PiA4O1xuICAgICAgICB2YXIgY29kZXBvaW50ID0gNTYzMjAgfCBjb2RlcG9pbnQgJiAxMDIzO1xuICAgICAgfVxuICAgICAgZHN0W29mZnNldCsrXSA9IGNvZGVwb2ludCAmIDI1NTtcbiAgICAgIGRzdFtvZmZzZXQrK10gPSBjb2RlcG9pbnQgPj4gODtcbiAgICAgIHJldHVybiBvZmZzZXQ7XG4gICAgfVxuICAgIFV0ZjMyRGVjb2Rlci5wcm90b3R5cGUuZW5kID0gZnVuY3Rpb24oKSB7XG4gICAgICB0aGlzLm92ZXJmbG93Lmxlbmd0aCA9IDA7XG4gICAgfTtcbiAgICBleHBvcnRzMi51dGYzMiA9IFV0ZjMyQXV0b0NvZGVjO1xuICAgIGV4cG9ydHMyLnVjczQgPSBcInV0ZjMyXCI7XG4gICAgZnVuY3Rpb24gVXRmMzJBdXRvQ29kZWMob3B0aW9ucywgaWNvbnYpIHtcbiAgICAgIHRoaXMuaWNvbnYgPSBpY29udjtcbiAgICB9XG4gICAgVXRmMzJBdXRvQ29kZWMucHJvdG90eXBlLmVuY29kZXIgPSBVdGYzMkF1dG9FbmNvZGVyO1xuICAgIFV0ZjMyQXV0b0NvZGVjLnByb3RvdHlwZS5kZWNvZGVyID0gVXRmMzJBdXRvRGVjb2RlcjtcbiAgICBmdW5jdGlvbiBVdGYzMkF1dG9FbmNvZGVyKG9wdGlvbnMsIGNvZGVjKSB7XG4gICAgICBvcHRpb25zID0gb3B0aW9ucyB8fCB7fTtcbiAgICAgIGlmIChvcHRpb25zLmFkZEJPTSA9PT0gdm9pZCAwKVxuICAgICAgICBvcHRpb25zLmFkZEJPTSA9IHRydWU7XG4gICAgICB0aGlzLmVuY29kZXIgPSBjb2RlYy5pY29udi5nZXRFbmNvZGVyKG9wdGlvbnMuZGVmYXVsdEVuY29kaW5nIHx8IFwidXRmLTMybGVcIiwgb3B0aW9ucyk7XG4gICAgfVxuICAgIFV0ZjMyQXV0b0VuY29kZXIucHJvdG90eXBlLndyaXRlID0gZnVuY3Rpb24oc3RyKSB7XG4gICAgICByZXR1cm4gdGhpcy5lbmNvZGVyLndyaXRlKHN0cik7XG4gICAgfTtcbiAgICBVdGYzMkF1dG9FbmNvZGVyLnByb3RvdHlwZS5lbmQgPSBmdW5jdGlvbigpIHtcbiAgICAgIHJldHVybiB0aGlzLmVuY29kZXIuZW5kKCk7XG4gICAgfTtcbiAgICBmdW5jdGlvbiBVdGYzMkF1dG9EZWNvZGVyKG9wdGlvbnMsIGNvZGVjKSB7XG4gICAgICB0aGlzLmRlY29kZXIgPSBudWxsO1xuICAgICAgdGhpcy5pbml0aWFsQnVmcyA9IFtdO1xuICAgICAgdGhpcy5pbml0aWFsQnVmc0xlbiA9IDA7XG4gICAgICB0aGlzLm9wdGlvbnMgPSBvcHRpb25zIHx8IHt9O1xuICAgICAgdGhpcy5pY29udiA9IGNvZGVjLmljb252O1xuICAgIH1cbiAgICBVdGYzMkF1dG9EZWNvZGVyLnByb3RvdHlwZS53cml0ZSA9IGZ1bmN0aW9uKGJ1Zikge1xuICAgICAgaWYgKCF0aGlzLmRlY29kZXIpIHtcbiAgICAgICAgdGhpcy5pbml0aWFsQnVmcy5wdXNoKGJ1Zik7XG4gICAgICAgIHRoaXMuaW5pdGlhbEJ1ZnNMZW4gKz0gYnVmLmxlbmd0aDtcbiAgICAgICAgaWYgKHRoaXMuaW5pdGlhbEJ1ZnNMZW4gPCAzMilcbiAgICAgICAgICByZXR1cm4gXCJcIjtcbiAgICAgICAgdmFyIGVuY29kaW5nID0gZGV0ZWN0RW5jb2RpbmcodGhpcy5pbml0aWFsQnVmcywgdGhpcy5vcHRpb25zLmRlZmF1bHRFbmNvZGluZyk7XG4gICAgICAgIHRoaXMuZGVjb2RlciA9IHRoaXMuaWNvbnYuZ2V0RGVjb2RlcihlbmNvZGluZywgdGhpcy5vcHRpb25zKTtcbiAgICAgICAgdmFyIHJlc1N0ciA9IFwiXCI7XG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5pbml0aWFsQnVmcy5sZW5ndGg7IGkrKylcbiAgICAgICAgICByZXNTdHIgKz0gdGhpcy5kZWNvZGVyLndyaXRlKHRoaXMuaW5pdGlhbEJ1ZnNbaV0pO1xuICAgICAgICB0aGlzLmluaXRpYWxCdWZzLmxlbmd0aCA9IHRoaXMuaW5pdGlhbEJ1ZnNMZW4gPSAwO1xuICAgICAgICByZXR1cm4gcmVzU3RyO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRoaXMuZGVjb2Rlci53cml0ZShidWYpO1xuICAgIH07XG4gICAgVXRmMzJBdXRvRGVjb2Rlci5wcm90b3R5cGUuZW5kID0gZnVuY3Rpb24oKSB7XG4gICAgICBpZiAoIXRoaXMuZGVjb2Rlcikge1xuICAgICAgICB2YXIgZW5jb2RpbmcgPSBkZXRlY3RFbmNvZGluZyh0aGlzLmluaXRpYWxCdWZzLCB0aGlzLm9wdGlvbnMuZGVmYXVsdEVuY29kaW5nKTtcbiAgICAgICAgdGhpcy5kZWNvZGVyID0gdGhpcy5pY29udi5nZXREZWNvZGVyKGVuY29kaW5nLCB0aGlzLm9wdGlvbnMpO1xuICAgICAgICB2YXIgcmVzU3RyID0gXCJcIjtcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLmluaXRpYWxCdWZzLmxlbmd0aDsgaSsrKVxuICAgICAgICAgIHJlc1N0ciArPSB0aGlzLmRlY29kZXIud3JpdGUodGhpcy5pbml0aWFsQnVmc1tpXSk7XG4gICAgICAgIHZhciB0cmFpbCA9IHRoaXMuZGVjb2Rlci5lbmQoKTtcbiAgICAgICAgaWYgKHRyYWlsKVxuICAgICAgICAgIHJlc1N0ciArPSB0cmFpbDtcbiAgICAgICAgdGhpcy5pbml0aWFsQnVmcy5sZW5ndGggPSB0aGlzLmluaXRpYWxCdWZzTGVuID0gMDtcbiAgICAgICAgcmV0dXJuIHJlc1N0cjtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0aGlzLmRlY29kZXIuZW5kKCk7XG4gICAgfTtcbiAgICBmdW5jdGlvbiBkZXRlY3RFbmNvZGluZyhidWZzLCBkZWZhdWx0RW5jb2RpbmcpIHtcbiAgICAgIHZhciBiID0gW107XG4gICAgICB2YXIgY2hhcnNQcm9jZXNzZWQgPSAwO1xuICAgICAgdmFyIGludmFsaWRMRSA9IDAsIGludmFsaWRCRSA9IDA7XG4gICAgICB2YXIgYm1wQ2hhcnNMRSA9IDAsIGJtcENoYXJzQkUgPSAwO1xuICAgICAgb3V0ZXJfbG9vcDpcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBidWZzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgdmFyIGJ1ZiA9IGJ1ZnNbaV07XG4gICAgICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBidWYubGVuZ3RoOyBqKyspIHtcbiAgICAgICAgICAgIGIucHVzaChidWZbal0pO1xuICAgICAgICAgICAgaWYgKGIubGVuZ3RoID09PSA0KSB7XG4gICAgICAgICAgICAgIGlmIChjaGFyc1Byb2Nlc3NlZCA9PT0gMCkge1xuICAgICAgICAgICAgICAgIGlmIChiWzBdID09PSAyNTUgJiYgYlsxXSA9PT0gMjU0ICYmIGJbMl0gPT09IDAgJiYgYlszXSA9PT0gMCkge1xuICAgICAgICAgICAgICAgICAgcmV0dXJuIFwidXRmLTMybGVcIjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKGJbMF0gPT09IDAgJiYgYlsxXSA9PT0gMCAmJiBiWzJdID09PSAyNTQgJiYgYlszXSA9PT0gMjU1KSB7XG4gICAgICAgICAgICAgICAgICByZXR1cm4gXCJ1dGYtMzJiZVwiO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBpZiAoYlswXSAhPT0gMCB8fCBiWzFdID4gMTYpIGludmFsaWRCRSsrO1xuICAgICAgICAgICAgICBpZiAoYlszXSAhPT0gMCB8fCBiWzJdID4gMTYpIGludmFsaWRMRSsrO1xuICAgICAgICAgICAgICBpZiAoYlswXSA9PT0gMCAmJiBiWzFdID09PSAwICYmIChiWzJdICE9PSAwIHx8IGJbM10gIT09IDApKSBibXBDaGFyc0JFKys7XG4gICAgICAgICAgICAgIGlmICgoYlswXSAhPT0gMCB8fCBiWzFdICE9PSAwKSAmJiBiWzJdID09PSAwICYmIGJbM10gPT09IDApIGJtcENoYXJzTEUrKztcbiAgICAgICAgICAgICAgYi5sZW5ndGggPSAwO1xuICAgICAgICAgICAgICBjaGFyc1Byb2Nlc3NlZCsrO1xuICAgICAgICAgICAgICBpZiAoY2hhcnNQcm9jZXNzZWQgPj0gMTAwKSB7XG4gICAgICAgICAgICAgICAgYnJlYWsgb3V0ZXJfbG9vcDtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgaWYgKGJtcENoYXJzQkUgLSBpbnZhbGlkQkUgPiBibXBDaGFyc0xFIC0gaW52YWxpZExFKSByZXR1cm4gXCJ1dGYtMzJiZVwiO1xuICAgICAgaWYgKGJtcENoYXJzQkUgLSBpbnZhbGlkQkUgPCBibXBDaGFyc0xFIC0gaW52YWxpZExFKSByZXR1cm4gXCJ1dGYtMzJsZVwiO1xuICAgICAgcmV0dXJuIGRlZmF1bHRFbmNvZGluZyB8fCBcInV0Zi0zMmxlXCI7XG4gICAgfVxuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL2JvZHktcGFyc2VyL25vZGVfbW9kdWxlcy9pY29udi1saXRlL2VuY29kaW5ncy91dGYxNi5qc1xudmFyIHJlcXVpcmVfdXRmMTYyID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL2JvZHktcGFyc2VyL25vZGVfbW9kdWxlcy9pY29udi1saXRlL2VuY29kaW5ncy91dGYxNi5qc1wiKGV4cG9ydHMyKSB7XG4gICAgXCJ1c2Ugc3RyaWN0XCI7XG4gICAgdmFyIEJ1ZmZlcjIgPSByZXF1aXJlX3NhZmVyKCkuQnVmZmVyO1xuICAgIGV4cG9ydHMyLnV0ZjE2YmUgPSBVdGYxNkJFQ29kZWM7XG4gICAgZnVuY3Rpb24gVXRmMTZCRUNvZGVjKCkge1xuICAgIH1cbiAgICBVdGYxNkJFQ29kZWMucHJvdG90eXBlLmVuY29kZXIgPSBVdGYxNkJFRW5jb2RlcjtcbiAgICBVdGYxNkJFQ29kZWMucHJvdG90eXBlLmRlY29kZXIgPSBVdGYxNkJFRGVjb2RlcjtcbiAgICBVdGYxNkJFQ29kZWMucHJvdG90eXBlLmJvbUF3YXJlID0gdHJ1ZTtcbiAgICBmdW5jdGlvbiBVdGYxNkJFRW5jb2RlcigpIHtcbiAgICB9XG4gICAgVXRmMTZCRUVuY29kZXIucHJvdG90eXBlLndyaXRlID0gZnVuY3Rpb24oc3RyKSB7XG4gICAgICB2YXIgYnVmID0gQnVmZmVyMi5mcm9tKHN0ciwgXCJ1Y3MyXCIpO1xuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBidWYubGVuZ3RoOyBpICs9IDIpIHtcbiAgICAgICAgdmFyIHRtcCA9IGJ1ZltpXTtcbiAgICAgICAgYnVmW2ldID0gYnVmW2kgKyAxXTtcbiAgICAgICAgYnVmW2kgKyAxXSA9IHRtcDtcbiAgICAgIH1cbiAgICAgIHJldHVybiBidWY7XG4gICAgfTtcbiAgICBVdGYxNkJFRW5jb2Rlci5wcm90b3R5cGUuZW5kID0gZnVuY3Rpb24oKSB7XG4gICAgfTtcbiAgICBmdW5jdGlvbiBVdGYxNkJFRGVjb2RlcigpIHtcbiAgICAgIHRoaXMub3ZlcmZsb3dCeXRlID0gLTE7XG4gICAgfVxuICAgIFV0ZjE2QkVEZWNvZGVyLnByb3RvdHlwZS53cml0ZSA9IGZ1bmN0aW9uKGJ1Zikge1xuICAgICAgaWYgKGJ1Zi5sZW5ndGggPT0gMClcbiAgICAgICAgcmV0dXJuIFwiXCI7XG4gICAgICB2YXIgYnVmMiA9IEJ1ZmZlcjIuYWxsb2MoYnVmLmxlbmd0aCArIDEpLCBpID0gMCwgaiA9IDA7XG4gICAgICBpZiAodGhpcy5vdmVyZmxvd0J5dGUgIT09IC0xKSB7XG4gICAgICAgIGJ1ZjJbMF0gPSBidWZbMF07XG4gICAgICAgIGJ1ZjJbMV0gPSB0aGlzLm92ZXJmbG93Qnl0ZTtcbiAgICAgICAgaSA9IDE7XG4gICAgICAgIGogPSAyO1xuICAgICAgfVxuICAgICAgZm9yICg7IGkgPCBidWYubGVuZ3RoIC0gMTsgaSArPSAyLCBqICs9IDIpIHtcbiAgICAgICAgYnVmMltqXSA9IGJ1ZltpICsgMV07XG4gICAgICAgIGJ1ZjJbaiArIDFdID0gYnVmW2ldO1xuICAgICAgfVxuICAgICAgdGhpcy5vdmVyZmxvd0J5dGUgPSBpID09IGJ1Zi5sZW5ndGggLSAxID8gYnVmW2J1Zi5sZW5ndGggLSAxXSA6IC0xO1xuICAgICAgcmV0dXJuIGJ1ZjIuc2xpY2UoMCwgaikudG9TdHJpbmcoXCJ1Y3MyXCIpO1xuICAgIH07XG4gICAgVXRmMTZCRURlY29kZXIucHJvdG90eXBlLmVuZCA9IGZ1bmN0aW9uKCkge1xuICAgICAgdGhpcy5vdmVyZmxvd0J5dGUgPSAtMTtcbiAgICB9O1xuICAgIGV4cG9ydHMyLnV0ZjE2ID0gVXRmMTZDb2RlYztcbiAgICBmdW5jdGlvbiBVdGYxNkNvZGVjKGNvZGVjT3B0aW9ucywgaWNvbnYpIHtcbiAgICAgIHRoaXMuaWNvbnYgPSBpY29udjtcbiAgICB9XG4gICAgVXRmMTZDb2RlYy5wcm90b3R5cGUuZW5jb2RlciA9IFV0ZjE2RW5jb2RlcjtcbiAgICBVdGYxNkNvZGVjLnByb3RvdHlwZS5kZWNvZGVyID0gVXRmMTZEZWNvZGVyO1xuICAgIGZ1bmN0aW9uIFV0ZjE2RW5jb2RlcihvcHRpb25zLCBjb2RlYykge1xuICAgICAgb3B0aW9ucyA9IG9wdGlvbnMgfHwge307XG4gICAgICBpZiAob3B0aW9ucy5hZGRCT00gPT09IHZvaWQgMClcbiAgICAgICAgb3B0aW9ucy5hZGRCT00gPSB0cnVlO1xuICAgICAgdGhpcy5lbmNvZGVyID0gY29kZWMuaWNvbnYuZ2V0RW5jb2RlcihcInV0Zi0xNmxlXCIsIG9wdGlvbnMpO1xuICAgIH1cbiAgICBVdGYxNkVuY29kZXIucHJvdG90eXBlLndyaXRlID0gZnVuY3Rpb24oc3RyKSB7XG4gICAgICByZXR1cm4gdGhpcy5lbmNvZGVyLndyaXRlKHN0cik7XG4gICAgfTtcbiAgICBVdGYxNkVuY29kZXIucHJvdG90eXBlLmVuZCA9IGZ1bmN0aW9uKCkge1xuICAgICAgcmV0dXJuIHRoaXMuZW5jb2Rlci5lbmQoKTtcbiAgICB9O1xuICAgIGZ1bmN0aW9uIFV0ZjE2RGVjb2RlcihvcHRpb25zLCBjb2RlYykge1xuICAgICAgdGhpcy5kZWNvZGVyID0gbnVsbDtcbiAgICAgIHRoaXMuaW5pdGlhbEJ1ZnMgPSBbXTtcbiAgICAgIHRoaXMuaW5pdGlhbEJ1ZnNMZW4gPSAwO1xuICAgICAgdGhpcy5vcHRpb25zID0gb3B0aW9ucyB8fCB7fTtcbiAgICAgIHRoaXMuaWNvbnYgPSBjb2RlYy5pY29udjtcbiAgICB9XG4gICAgVXRmMTZEZWNvZGVyLnByb3RvdHlwZS53cml0ZSA9IGZ1bmN0aW9uKGJ1Zikge1xuICAgICAgaWYgKCF0aGlzLmRlY29kZXIpIHtcbiAgICAgICAgdGhpcy5pbml0aWFsQnVmcy5wdXNoKGJ1Zik7XG4gICAgICAgIHRoaXMuaW5pdGlhbEJ1ZnNMZW4gKz0gYnVmLmxlbmd0aDtcbiAgICAgICAgaWYgKHRoaXMuaW5pdGlhbEJ1ZnNMZW4gPCAxNilcbiAgICAgICAgICByZXR1cm4gXCJcIjtcbiAgICAgICAgdmFyIGVuY29kaW5nID0gZGV0ZWN0RW5jb2RpbmcodGhpcy5pbml0aWFsQnVmcywgdGhpcy5vcHRpb25zLmRlZmF1bHRFbmNvZGluZyk7XG4gICAgICAgIHRoaXMuZGVjb2RlciA9IHRoaXMuaWNvbnYuZ2V0RGVjb2RlcihlbmNvZGluZywgdGhpcy5vcHRpb25zKTtcbiAgICAgICAgdmFyIHJlc1N0ciA9IFwiXCI7XG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5pbml0aWFsQnVmcy5sZW5ndGg7IGkrKylcbiAgICAgICAgICByZXNTdHIgKz0gdGhpcy5kZWNvZGVyLndyaXRlKHRoaXMuaW5pdGlhbEJ1ZnNbaV0pO1xuICAgICAgICB0aGlzLmluaXRpYWxCdWZzLmxlbmd0aCA9IHRoaXMuaW5pdGlhbEJ1ZnNMZW4gPSAwO1xuICAgICAgICByZXR1cm4gcmVzU3RyO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRoaXMuZGVjb2Rlci53cml0ZShidWYpO1xuICAgIH07XG4gICAgVXRmMTZEZWNvZGVyLnByb3RvdHlwZS5lbmQgPSBmdW5jdGlvbigpIHtcbiAgICAgIGlmICghdGhpcy5kZWNvZGVyKSB7XG4gICAgICAgIHZhciBlbmNvZGluZyA9IGRldGVjdEVuY29kaW5nKHRoaXMuaW5pdGlhbEJ1ZnMsIHRoaXMub3B0aW9ucy5kZWZhdWx0RW5jb2RpbmcpO1xuICAgICAgICB0aGlzLmRlY29kZXIgPSB0aGlzLmljb252LmdldERlY29kZXIoZW5jb2RpbmcsIHRoaXMub3B0aW9ucyk7XG4gICAgICAgIHZhciByZXNTdHIgPSBcIlwiO1xuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuaW5pdGlhbEJ1ZnMubGVuZ3RoOyBpKyspXG4gICAgICAgICAgcmVzU3RyICs9IHRoaXMuZGVjb2Rlci53cml0ZSh0aGlzLmluaXRpYWxCdWZzW2ldKTtcbiAgICAgICAgdmFyIHRyYWlsID0gdGhpcy5kZWNvZGVyLmVuZCgpO1xuICAgICAgICBpZiAodHJhaWwpXG4gICAgICAgICAgcmVzU3RyICs9IHRyYWlsO1xuICAgICAgICB0aGlzLmluaXRpYWxCdWZzLmxlbmd0aCA9IHRoaXMuaW5pdGlhbEJ1ZnNMZW4gPSAwO1xuICAgICAgICByZXR1cm4gcmVzU3RyO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRoaXMuZGVjb2Rlci5lbmQoKTtcbiAgICB9O1xuICAgIGZ1bmN0aW9uIGRldGVjdEVuY29kaW5nKGJ1ZnMsIGRlZmF1bHRFbmNvZGluZykge1xuICAgICAgdmFyIGIgPSBbXTtcbiAgICAgIHZhciBjaGFyc1Byb2Nlc3NlZCA9IDA7XG4gICAgICB2YXIgYXNjaWlDaGFyc0xFID0gMCwgYXNjaWlDaGFyc0JFID0gMDtcbiAgICAgIG91dGVyX2xvb3A6XG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYnVmcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgIHZhciBidWYgPSBidWZzW2ldO1xuICAgICAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgYnVmLmxlbmd0aDsgaisrKSB7XG4gICAgICAgICAgICBiLnB1c2goYnVmW2pdKTtcbiAgICAgICAgICAgIGlmIChiLmxlbmd0aCA9PT0gMikge1xuICAgICAgICAgICAgICBpZiAoY2hhcnNQcm9jZXNzZWQgPT09IDApIHtcbiAgICAgICAgICAgICAgICBpZiAoYlswXSA9PT0gMjU1ICYmIGJbMV0gPT09IDI1NCkgcmV0dXJuIFwidXRmLTE2bGVcIjtcbiAgICAgICAgICAgICAgICBpZiAoYlswXSA9PT0gMjU0ICYmIGJbMV0gPT09IDI1NSkgcmV0dXJuIFwidXRmLTE2YmVcIjtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBpZiAoYlswXSA9PT0gMCAmJiBiWzFdICE9PSAwKSBhc2NpaUNoYXJzQkUrKztcbiAgICAgICAgICAgICAgaWYgKGJbMF0gIT09IDAgJiYgYlsxXSA9PT0gMCkgYXNjaWlDaGFyc0xFKys7XG4gICAgICAgICAgICAgIGIubGVuZ3RoID0gMDtcbiAgICAgICAgICAgICAgY2hhcnNQcm9jZXNzZWQrKztcbiAgICAgICAgICAgICAgaWYgKGNoYXJzUHJvY2Vzc2VkID49IDEwMCkge1xuICAgICAgICAgICAgICAgIGJyZWFrIG91dGVyX2xvb3A7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIGlmIChhc2NpaUNoYXJzQkUgPiBhc2NpaUNoYXJzTEUpIHJldHVybiBcInV0Zi0xNmJlXCI7XG4gICAgICBpZiAoYXNjaWlDaGFyc0JFIDwgYXNjaWlDaGFyc0xFKSByZXR1cm4gXCJ1dGYtMTZsZVwiO1xuICAgICAgcmV0dXJuIGRlZmF1bHRFbmNvZGluZyB8fCBcInV0Zi0xNmxlXCI7XG4gICAgfVxuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL2JvZHktcGFyc2VyL25vZGVfbW9kdWxlcy9pY29udi1saXRlL2VuY29kaW5ncy91dGY3LmpzXG52YXIgcmVxdWlyZV91dGY3MiA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9ib2R5LXBhcnNlci9ub2RlX21vZHVsZXMvaWNvbnYtbGl0ZS9lbmNvZGluZ3MvdXRmNy5qc1wiKGV4cG9ydHMyKSB7XG4gICAgXCJ1c2Ugc3RyaWN0XCI7XG4gICAgdmFyIEJ1ZmZlcjIgPSByZXF1aXJlX3NhZmVyKCkuQnVmZmVyO1xuICAgIGV4cG9ydHMyLnV0ZjcgPSBVdGY3Q29kZWM7XG4gICAgZXhwb3J0czIudW5pY29kZTExdXRmNyA9IFwidXRmN1wiO1xuICAgIGZ1bmN0aW9uIFV0ZjdDb2RlYyhjb2RlY09wdGlvbnMsIGljb252KSB7XG4gICAgICB0aGlzLmljb252ID0gaWNvbnY7XG4gICAgfVxuICAgIFV0ZjdDb2RlYy5wcm90b3R5cGUuZW5jb2RlciA9IFV0ZjdFbmNvZGVyO1xuICAgIFV0ZjdDb2RlYy5wcm90b3R5cGUuZGVjb2RlciA9IFV0ZjdEZWNvZGVyO1xuICAgIFV0ZjdDb2RlYy5wcm90b3R5cGUuYm9tQXdhcmUgPSB0cnVlO1xuICAgIHZhciBub25EaXJlY3RDaGFycyA9IC9bXkEtWmEtejAtOSdcXChcXCksLVxcLlxcLzpcXD8gXFxuXFxyXFx0XSsvZztcbiAgICBmdW5jdGlvbiBVdGY3RW5jb2RlcihvcHRpb25zLCBjb2RlYykge1xuICAgICAgdGhpcy5pY29udiA9IGNvZGVjLmljb252O1xuICAgIH1cbiAgICBVdGY3RW5jb2Rlci5wcm90b3R5cGUud3JpdGUgPSBmdW5jdGlvbihzdHIpIHtcbiAgICAgIHJldHVybiBCdWZmZXIyLmZyb20oc3RyLnJlcGxhY2Uobm9uRGlyZWN0Q2hhcnMsIGZ1bmN0aW9uKGNodW5rKSB7XG4gICAgICAgIHJldHVybiBcIitcIiArIChjaHVuayA9PT0gXCIrXCIgPyBcIlwiIDogdGhpcy5pY29udi5lbmNvZGUoY2h1bmssIFwidXRmMTYtYmVcIikudG9TdHJpbmcoXCJiYXNlNjRcIikucmVwbGFjZSgvPSskLywgXCJcIikpICsgXCItXCI7XG4gICAgICB9LmJpbmQodGhpcykpKTtcbiAgICB9O1xuICAgIFV0ZjdFbmNvZGVyLnByb3RvdHlwZS5lbmQgPSBmdW5jdGlvbigpIHtcbiAgICB9O1xuICAgIGZ1bmN0aW9uIFV0ZjdEZWNvZGVyKG9wdGlvbnMsIGNvZGVjKSB7XG4gICAgICB0aGlzLmljb252ID0gY29kZWMuaWNvbnY7XG4gICAgICB0aGlzLmluQmFzZTY0ID0gZmFsc2U7XG4gICAgICB0aGlzLmJhc2U2NEFjY3VtID0gXCJcIjtcbiAgICB9XG4gICAgdmFyIGJhc2U2NFJlZ2V4MiA9IC9bQS1aYS16MC05XFwvK10vO1xuICAgIHZhciBiYXNlNjRDaGFycyA9IFtdO1xuICAgIGZvciAoaSA9IDA7IGkgPCAyNTY7IGkrKylcbiAgICAgIGJhc2U2NENoYXJzW2ldID0gYmFzZTY0UmVnZXgyLnRlc3QoU3RyaW5nLmZyb21DaGFyQ29kZShpKSk7XG4gICAgdmFyIGk7XG4gICAgdmFyIHBsdXNDaGFyID0gXCIrXCIuY2hhckNvZGVBdCgwKTtcbiAgICB2YXIgbWludXNDaGFyID0gXCItXCIuY2hhckNvZGVBdCgwKTtcbiAgICB2YXIgYW5kQ2hhciA9IFwiJlwiLmNoYXJDb2RlQXQoMCk7XG4gICAgVXRmN0RlY29kZXIucHJvdG90eXBlLndyaXRlID0gZnVuY3Rpb24oYnVmKSB7XG4gICAgICB2YXIgcmVzID0gXCJcIiwgbGFzdEkgPSAwLCBpbkJhc2U2NCA9IHRoaXMuaW5CYXNlNjQsIGJhc2U2NEFjY3VtID0gdGhpcy5iYXNlNjRBY2N1bTtcbiAgICAgIGZvciAodmFyIGkyID0gMDsgaTIgPCBidWYubGVuZ3RoOyBpMisrKSB7XG4gICAgICAgIGlmICghaW5CYXNlNjQpIHtcbiAgICAgICAgICBpZiAoYnVmW2kyXSA9PSBwbHVzQ2hhcikge1xuICAgICAgICAgICAgcmVzICs9IHRoaXMuaWNvbnYuZGVjb2RlKGJ1Zi5zbGljZShsYXN0SSwgaTIpLCBcImFzY2lpXCIpO1xuICAgICAgICAgICAgbGFzdEkgPSBpMiArIDE7XG4gICAgICAgICAgICBpbkJhc2U2NCA9IHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGlmICghYmFzZTY0Q2hhcnNbYnVmW2kyXV0pIHtcbiAgICAgICAgICAgIGlmIChpMiA9PSBsYXN0SSAmJiBidWZbaTJdID09IG1pbnVzQ2hhcikge1xuICAgICAgICAgICAgICByZXMgKz0gXCIrXCI7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICB2YXIgYjY0c3RyID0gYmFzZTY0QWNjdW0gKyB0aGlzLmljb252LmRlY29kZShidWYuc2xpY2UobGFzdEksIGkyKSwgXCJhc2NpaVwiKTtcbiAgICAgICAgICAgICAgcmVzICs9IHRoaXMuaWNvbnYuZGVjb2RlKEJ1ZmZlcjIuZnJvbShiNjRzdHIsIFwiYmFzZTY0XCIpLCBcInV0ZjE2LWJlXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGJ1ZltpMl0gIT0gbWludXNDaGFyKVxuICAgICAgICAgICAgICBpMi0tO1xuICAgICAgICAgICAgbGFzdEkgPSBpMiArIDE7XG4gICAgICAgICAgICBpbkJhc2U2NCA9IGZhbHNlO1xuICAgICAgICAgICAgYmFzZTY0QWNjdW0gPSBcIlwiO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKCFpbkJhc2U2NCkge1xuICAgICAgICByZXMgKz0gdGhpcy5pY29udi5kZWNvZGUoYnVmLnNsaWNlKGxhc3RJKSwgXCJhc2NpaVwiKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHZhciBiNjRzdHIgPSBiYXNlNjRBY2N1bSArIHRoaXMuaWNvbnYuZGVjb2RlKGJ1Zi5zbGljZShsYXN0SSksIFwiYXNjaWlcIik7XG4gICAgICAgIHZhciBjYW5CZURlY29kZWQgPSBiNjRzdHIubGVuZ3RoIC0gYjY0c3RyLmxlbmd0aCAlIDg7XG4gICAgICAgIGJhc2U2NEFjY3VtID0gYjY0c3RyLnNsaWNlKGNhbkJlRGVjb2RlZCk7XG4gICAgICAgIGI2NHN0ciA9IGI2NHN0ci5zbGljZSgwLCBjYW5CZURlY29kZWQpO1xuICAgICAgICByZXMgKz0gdGhpcy5pY29udi5kZWNvZGUoQnVmZmVyMi5mcm9tKGI2NHN0ciwgXCJiYXNlNjRcIiksIFwidXRmMTYtYmVcIik7XG4gICAgICB9XG4gICAgICB0aGlzLmluQmFzZTY0ID0gaW5CYXNlNjQ7XG4gICAgICB0aGlzLmJhc2U2NEFjY3VtID0gYmFzZTY0QWNjdW07XG4gICAgICByZXR1cm4gcmVzO1xuICAgIH07XG4gICAgVXRmN0RlY29kZXIucHJvdG90eXBlLmVuZCA9IGZ1bmN0aW9uKCkge1xuICAgICAgdmFyIHJlcyA9IFwiXCI7XG4gICAgICBpZiAodGhpcy5pbkJhc2U2NCAmJiB0aGlzLmJhc2U2NEFjY3VtLmxlbmd0aCA+IDApXG4gICAgICAgIHJlcyA9IHRoaXMuaWNvbnYuZGVjb2RlKEJ1ZmZlcjIuZnJvbSh0aGlzLmJhc2U2NEFjY3VtLCBcImJhc2U2NFwiKSwgXCJ1dGYxNi1iZVwiKTtcbiAgICAgIHRoaXMuaW5CYXNlNjQgPSBmYWxzZTtcbiAgICAgIHRoaXMuYmFzZTY0QWNjdW0gPSBcIlwiO1xuICAgICAgcmV0dXJuIHJlcztcbiAgICB9O1xuICAgIGV4cG9ydHMyLnV0ZjdpbWFwID0gVXRmN0lNQVBDb2RlYztcbiAgICBmdW5jdGlvbiBVdGY3SU1BUENvZGVjKGNvZGVjT3B0aW9ucywgaWNvbnYpIHtcbiAgICAgIHRoaXMuaWNvbnYgPSBpY29udjtcbiAgICB9XG4gICAgVXRmN0lNQVBDb2RlYy5wcm90b3R5cGUuZW5jb2RlciA9IFV0ZjdJTUFQRW5jb2RlcjtcbiAgICBVdGY3SU1BUENvZGVjLnByb3RvdHlwZS5kZWNvZGVyID0gVXRmN0lNQVBEZWNvZGVyO1xuICAgIFV0ZjdJTUFQQ29kZWMucHJvdG90eXBlLmJvbUF3YXJlID0gdHJ1ZTtcbiAgICBmdW5jdGlvbiBVdGY3SU1BUEVuY29kZXIob3B0aW9ucywgY29kZWMpIHtcbiAgICAgIHRoaXMuaWNvbnYgPSBjb2RlYy5pY29udjtcbiAgICAgIHRoaXMuaW5CYXNlNjQgPSBmYWxzZTtcbiAgICAgIHRoaXMuYmFzZTY0QWNjdW0gPSBCdWZmZXIyLmFsbG9jKDYpO1xuICAgICAgdGhpcy5iYXNlNjRBY2N1bUlkeCA9IDA7XG4gICAgfVxuICAgIFV0ZjdJTUFQRW5jb2Rlci5wcm90b3R5cGUud3JpdGUgPSBmdW5jdGlvbihzdHIpIHtcbiAgICAgIHZhciBpbkJhc2U2NCA9IHRoaXMuaW5CYXNlNjQsIGJhc2U2NEFjY3VtID0gdGhpcy5iYXNlNjRBY2N1bSwgYmFzZTY0QWNjdW1JZHggPSB0aGlzLmJhc2U2NEFjY3VtSWR4LCBidWYgPSBCdWZmZXIyLmFsbG9jKHN0ci5sZW5ndGggKiA1ICsgMTApLCBidWZJZHggPSAwO1xuICAgICAgZm9yICh2YXIgaTIgPSAwOyBpMiA8IHN0ci5sZW5ndGg7IGkyKyspIHtcbiAgICAgICAgdmFyIHVDaGFyID0gc3RyLmNoYXJDb2RlQXQoaTIpO1xuICAgICAgICBpZiAoMzIgPD0gdUNoYXIgJiYgdUNoYXIgPD0gMTI2KSB7XG4gICAgICAgICAgaWYgKGluQmFzZTY0KSB7XG4gICAgICAgICAgICBpZiAoYmFzZTY0QWNjdW1JZHggPiAwKSB7XG4gICAgICAgICAgICAgIGJ1ZklkeCArPSBidWYud3JpdGUoYmFzZTY0QWNjdW0uc2xpY2UoMCwgYmFzZTY0QWNjdW1JZHgpLnRvU3RyaW5nKFwiYmFzZTY0XCIpLnJlcGxhY2UoL1xcLy9nLCBcIixcIikucmVwbGFjZSgvPSskLywgXCJcIiksIGJ1ZklkeCk7XG4gICAgICAgICAgICAgIGJhc2U2NEFjY3VtSWR4ID0gMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJ1ZltidWZJZHgrK10gPSBtaW51c0NoYXI7XG4gICAgICAgICAgICBpbkJhc2U2NCA9IGZhbHNlO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoIWluQmFzZTY0KSB7XG4gICAgICAgICAgICBidWZbYnVmSWR4KytdID0gdUNoYXI7XG4gICAgICAgICAgICBpZiAodUNoYXIgPT09IGFuZENoYXIpXG4gICAgICAgICAgICAgIGJ1ZltidWZJZHgrK10gPSBtaW51c0NoYXI7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGlmICghaW5CYXNlNjQpIHtcbiAgICAgICAgICAgIGJ1ZltidWZJZHgrK10gPSBhbmRDaGFyO1xuICAgICAgICAgICAgaW5CYXNlNjQgPSB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoaW5CYXNlNjQpIHtcbiAgICAgICAgICAgIGJhc2U2NEFjY3VtW2Jhc2U2NEFjY3VtSWR4KytdID0gdUNoYXIgPj4gODtcbiAgICAgICAgICAgIGJhc2U2NEFjY3VtW2Jhc2U2NEFjY3VtSWR4KytdID0gdUNoYXIgJiAyNTU7XG4gICAgICAgICAgICBpZiAoYmFzZTY0QWNjdW1JZHggPT0gYmFzZTY0QWNjdW0ubGVuZ3RoKSB7XG4gICAgICAgICAgICAgIGJ1ZklkeCArPSBidWYud3JpdGUoYmFzZTY0QWNjdW0udG9TdHJpbmcoXCJiYXNlNjRcIikucmVwbGFjZSgvXFwvL2csIFwiLFwiKSwgYnVmSWR4KTtcbiAgICAgICAgICAgICAgYmFzZTY0QWNjdW1JZHggPSAwO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgdGhpcy5pbkJhc2U2NCA9IGluQmFzZTY0O1xuICAgICAgdGhpcy5iYXNlNjRBY2N1bUlkeCA9IGJhc2U2NEFjY3VtSWR4O1xuICAgICAgcmV0dXJuIGJ1Zi5zbGljZSgwLCBidWZJZHgpO1xuICAgIH07XG4gICAgVXRmN0lNQVBFbmNvZGVyLnByb3RvdHlwZS5lbmQgPSBmdW5jdGlvbigpIHtcbiAgICAgIHZhciBidWYgPSBCdWZmZXIyLmFsbG9jKDEwKSwgYnVmSWR4ID0gMDtcbiAgICAgIGlmICh0aGlzLmluQmFzZTY0KSB7XG4gICAgICAgIGlmICh0aGlzLmJhc2U2NEFjY3VtSWR4ID4gMCkge1xuICAgICAgICAgIGJ1ZklkeCArPSBidWYud3JpdGUodGhpcy5iYXNlNjRBY2N1bS5zbGljZSgwLCB0aGlzLmJhc2U2NEFjY3VtSWR4KS50b1N0cmluZyhcImJhc2U2NFwiKS5yZXBsYWNlKC9cXC8vZywgXCIsXCIpLnJlcGxhY2UoLz0rJC8sIFwiXCIpLCBidWZJZHgpO1xuICAgICAgICAgIHRoaXMuYmFzZTY0QWNjdW1JZHggPSAwO1xuICAgICAgICB9XG4gICAgICAgIGJ1ZltidWZJZHgrK10gPSBtaW51c0NoYXI7XG4gICAgICAgIHRoaXMuaW5CYXNlNjQgPSBmYWxzZTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBidWYuc2xpY2UoMCwgYnVmSWR4KTtcbiAgICB9O1xuICAgIGZ1bmN0aW9uIFV0ZjdJTUFQRGVjb2RlcihvcHRpb25zLCBjb2RlYykge1xuICAgICAgdGhpcy5pY29udiA9IGNvZGVjLmljb252O1xuICAgICAgdGhpcy5pbkJhc2U2NCA9IGZhbHNlO1xuICAgICAgdGhpcy5iYXNlNjRBY2N1bSA9IFwiXCI7XG4gICAgfVxuICAgIHZhciBiYXNlNjRJTUFQQ2hhcnMgPSBiYXNlNjRDaGFycy5zbGljZSgpO1xuICAgIGJhc2U2NElNQVBDaGFyc1tcIixcIi5jaGFyQ29kZUF0KDApXSA9IHRydWU7XG4gICAgVXRmN0lNQVBEZWNvZGVyLnByb3RvdHlwZS53cml0ZSA9IGZ1bmN0aW9uKGJ1Zikge1xuICAgICAgdmFyIHJlcyA9IFwiXCIsIGxhc3RJID0gMCwgaW5CYXNlNjQgPSB0aGlzLmluQmFzZTY0LCBiYXNlNjRBY2N1bSA9IHRoaXMuYmFzZTY0QWNjdW07XG4gICAgICBmb3IgKHZhciBpMiA9IDA7IGkyIDwgYnVmLmxlbmd0aDsgaTIrKykge1xuICAgICAgICBpZiAoIWluQmFzZTY0KSB7XG4gICAgICAgICAgaWYgKGJ1ZltpMl0gPT0gYW5kQ2hhcikge1xuICAgICAgICAgICAgcmVzICs9IHRoaXMuaWNvbnYuZGVjb2RlKGJ1Zi5zbGljZShsYXN0SSwgaTIpLCBcImFzY2lpXCIpO1xuICAgICAgICAgICAgbGFzdEkgPSBpMiArIDE7XG4gICAgICAgICAgICBpbkJhc2U2NCA9IHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGlmICghYmFzZTY0SU1BUENoYXJzW2J1ZltpMl1dKSB7XG4gICAgICAgICAgICBpZiAoaTIgPT0gbGFzdEkgJiYgYnVmW2kyXSA9PSBtaW51c0NoYXIpIHtcbiAgICAgICAgICAgICAgcmVzICs9IFwiJlwiO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgdmFyIGI2NHN0ciA9IGJhc2U2NEFjY3VtICsgdGhpcy5pY29udi5kZWNvZGUoYnVmLnNsaWNlKGxhc3RJLCBpMiksIFwiYXNjaWlcIikucmVwbGFjZSgvLC9nLCBcIi9cIik7XG4gICAgICAgICAgICAgIHJlcyArPSB0aGlzLmljb252LmRlY29kZShCdWZmZXIyLmZyb20oYjY0c3RyLCBcImJhc2U2NFwiKSwgXCJ1dGYxNi1iZVwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChidWZbaTJdICE9IG1pbnVzQ2hhcilcbiAgICAgICAgICAgICAgaTItLTtcbiAgICAgICAgICAgIGxhc3RJID0gaTIgKyAxO1xuICAgICAgICAgICAgaW5CYXNlNjQgPSBmYWxzZTtcbiAgICAgICAgICAgIGJhc2U2NEFjY3VtID0gXCJcIjtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmICghaW5CYXNlNjQpIHtcbiAgICAgICAgcmVzICs9IHRoaXMuaWNvbnYuZGVjb2RlKGJ1Zi5zbGljZShsYXN0SSksIFwiYXNjaWlcIik7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB2YXIgYjY0c3RyID0gYmFzZTY0QWNjdW0gKyB0aGlzLmljb252LmRlY29kZShidWYuc2xpY2UobGFzdEkpLCBcImFzY2lpXCIpLnJlcGxhY2UoLywvZywgXCIvXCIpO1xuICAgICAgICB2YXIgY2FuQmVEZWNvZGVkID0gYjY0c3RyLmxlbmd0aCAtIGI2NHN0ci5sZW5ndGggJSA4O1xuICAgICAgICBiYXNlNjRBY2N1bSA9IGI2NHN0ci5zbGljZShjYW5CZURlY29kZWQpO1xuICAgICAgICBiNjRzdHIgPSBiNjRzdHIuc2xpY2UoMCwgY2FuQmVEZWNvZGVkKTtcbiAgICAgICAgcmVzICs9IHRoaXMuaWNvbnYuZGVjb2RlKEJ1ZmZlcjIuZnJvbShiNjRzdHIsIFwiYmFzZTY0XCIpLCBcInV0ZjE2LWJlXCIpO1xuICAgICAgfVxuICAgICAgdGhpcy5pbkJhc2U2NCA9IGluQmFzZTY0O1xuICAgICAgdGhpcy5iYXNlNjRBY2N1bSA9IGJhc2U2NEFjY3VtO1xuICAgICAgcmV0dXJuIHJlcztcbiAgICB9O1xuICAgIFV0ZjdJTUFQRGVjb2Rlci5wcm90b3R5cGUuZW5kID0gZnVuY3Rpb24oKSB7XG4gICAgICB2YXIgcmVzID0gXCJcIjtcbiAgICAgIGlmICh0aGlzLmluQmFzZTY0ICYmIHRoaXMuYmFzZTY0QWNjdW0ubGVuZ3RoID4gMClcbiAgICAgICAgcmVzID0gdGhpcy5pY29udi5kZWNvZGUoQnVmZmVyMi5mcm9tKHRoaXMuYmFzZTY0QWNjdW0sIFwiYmFzZTY0XCIpLCBcInV0ZjE2LWJlXCIpO1xuICAgICAgdGhpcy5pbkJhc2U2NCA9IGZhbHNlO1xuICAgICAgdGhpcy5iYXNlNjRBY2N1bSA9IFwiXCI7XG4gICAgICByZXR1cm4gcmVzO1xuICAgIH07XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvYm9keS1wYXJzZXIvbm9kZV9tb2R1bGVzL2ljb252LWxpdGUvZW5jb2RpbmdzL3NiY3MtY29kZWMuanNcbnZhciByZXF1aXJlX3NiY3NfY29kZWMyID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL2JvZHktcGFyc2VyL25vZGVfbW9kdWxlcy9pY29udi1saXRlL2VuY29kaW5ncy9zYmNzLWNvZGVjLmpzXCIoZXhwb3J0czIpIHtcbiAgICBcInVzZSBzdHJpY3RcIjtcbiAgICB2YXIgQnVmZmVyMiA9IHJlcXVpcmVfc2FmZXIoKS5CdWZmZXI7XG4gICAgZXhwb3J0czIuX3NiY3MgPSBTQkNTQ29kZWM7XG4gICAgZnVuY3Rpb24gU0JDU0NvZGVjKGNvZGVjT3B0aW9ucywgaWNvbnYpIHtcbiAgICAgIGlmICghY29kZWNPcHRpb25zKVxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJTQkNTIGNvZGVjIGlzIGNhbGxlZCB3aXRob3V0IHRoZSBkYXRhLlwiKTtcbiAgICAgIGlmICghY29kZWNPcHRpb25zLmNoYXJzIHx8IGNvZGVjT3B0aW9ucy5jaGFycy5sZW5ndGggIT09IDEyOCAmJiBjb2RlY09wdGlvbnMuY2hhcnMubGVuZ3RoICE9PSAyNTYpXG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIkVuY29kaW5nICdcIiArIGNvZGVjT3B0aW9ucy50eXBlICsgXCInIGhhcyBpbmNvcnJlY3QgJ2NoYXJzJyAobXVzdCBiZSBvZiBsZW4gMTI4IG9yIDI1NilcIik7XG4gICAgICBpZiAoY29kZWNPcHRpb25zLmNoYXJzLmxlbmd0aCA9PT0gMTI4KSB7XG4gICAgICAgIHZhciBhc2NpaVN0cmluZyA9IFwiXCI7XG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTI4OyBpKyspXG4gICAgICAgICAgYXNjaWlTdHJpbmcgKz0gU3RyaW5nLmZyb21DaGFyQ29kZShpKTtcbiAgICAgICAgY29kZWNPcHRpb25zLmNoYXJzID0gYXNjaWlTdHJpbmcgKyBjb2RlY09wdGlvbnMuY2hhcnM7XG4gICAgICB9XG4gICAgICB0aGlzLmRlY29kZUJ1ZiA9IEJ1ZmZlcjIuZnJvbShjb2RlY09wdGlvbnMuY2hhcnMsIFwidWNzMlwiKTtcbiAgICAgIHZhciBlbmNvZGVCdWYgPSBCdWZmZXIyLmFsbG9jKDY1NTM2LCBpY29udi5kZWZhdWx0Q2hhclNpbmdsZUJ5dGUuY2hhckNvZGVBdCgwKSk7XG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNvZGVjT3B0aW9ucy5jaGFycy5sZW5ndGg7IGkrKylcbiAgICAgICAgZW5jb2RlQnVmW2NvZGVjT3B0aW9ucy5jaGFycy5jaGFyQ29kZUF0KGkpXSA9IGk7XG4gICAgICB0aGlzLmVuY29kZUJ1ZiA9IGVuY29kZUJ1ZjtcbiAgICB9XG4gICAgU0JDU0NvZGVjLnByb3RvdHlwZS5lbmNvZGVyID0gU0JDU0VuY29kZXI7XG4gICAgU0JDU0NvZGVjLnByb3RvdHlwZS5kZWNvZGVyID0gU0JDU0RlY29kZXI7XG4gICAgZnVuY3Rpb24gU0JDU0VuY29kZXIob3B0aW9ucywgY29kZWMpIHtcbiAgICAgIHRoaXMuZW5jb2RlQnVmID0gY29kZWMuZW5jb2RlQnVmO1xuICAgIH1cbiAgICBTQkNTRW5jb2Rlci5wcm90b3R5cGUud3JpdGUgPSBmdW5jdGlvbihzdHIpIHtcbiAgICAgIHZhciBidWYgPSBCdWZmZXIyLmFsbG9jKHN0ci5sZW5ndGgpO1xuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzdHIubGVuZ3RoOyBpKyspXG4gICAgICAgIGJ1ZltpXSA9IHRoaXMuZW5jb2RlQnVmW3N0ci5jaGFyQ29kZUF0KGkpXTtcbiAgICAgIHJldHVybiBidWY7XG4gICAgfTtcbiAgICBTQkNTRW5jb2Rlci5wcm90b3R5cGUuZW5kID0gZnVuY3Rpb24oKSB7XG4gICAgfTtcbiAgICBmdW5jdGlvbiBTQkNTRGVjb2RlcihvcHRpb25zLCBjb2RlYykge1xuICAgICAgdGhpcy5kZWNvZGVCdWYgPSBjb2RlYy5kZWNvZGVCdWY7XG4gICAgfVxuICAgIFNCQ1NEZWNvZGVyLnByb3RvdHlwZS53cml0ZSA9IGZ1bmN0aW9uKGJ1Zikge1xuICAgICAgdmFyIGRlY29kZUJ1ZiA9IHRoaXMuZGVjb2RlQnVmO1xuICAgICAgdmFyIG5ld0J1ZiA9IEJ1ZmZlcjIuYWxsb2MoYnVmLmxlbmd0aCAqIDIpO1xuICAgICAgdmFyIGlkeDEgPSAwLCBpZHgyID0gMDtcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYnVmLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGlkeDEgPSBidWZbaV0gKiAyO1xuICAgICAgICBpZHgyID0gaSAqIDI7XG4gICAgICAgIG5ld0J1ZltpZHgyXSA9IGRlY29kZUJ1ZltpZHgxXTtcbiAgICAgICAgbmV3QnVmW2lkeDIgKyAxXSA9IGRlY29kZUJ1ZltpZHgxICsgMV07XG4gICAgICB9XG4gICAgICByZXR1cm4gbmV3QnVmLnRvU3RyaW5nKFwidWNzMlwiKTtcbiAgICB9O1xuICAgIFNCQ1NEZWNvZGVyLnByb3RvdHlwZS5lbmQgPSBmdW5jdGlvbigpIHtcbiAgICB9O1xuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL2JvZHktcGFyc2VyL25vZGVfbW9kdWxlcy9pY29udi1saXRlL2VuY29kaW5ncy9zYmNzLWRhdGEuanNcbnZhciByZXF1aXJlX3NiY3NfZGF0YTIgPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvYm9keS1wYXJzZXIvbm9kZV9tb2R1bGVzL2ljb252LWxpdGUvZW5jb2RpbmdzL3NiY3MtZGF0YS5qc1wiKGV4cG9ydHMyLCBtb2R1bGUyKSB7XG4gICAgXCJ1c2Ugc3RyaWN0XCI7XG4gICAgbW9kdWxlMi5leHBvcnRzID0ge1xuICAgICAgLy8gTm90IHN1cHBvcnRlZCBieSBpY29udiwgbm90IHN1cmUgd2h5LlxuICAgICAgXCIxMDAyOVwiOiBcIm1hY2NlbnRldXJvXCIsXG4gICAgICBcIm1hY2NlbnRldXJvXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwiX3NiY3NcIixcbiAgICAgICAgXCJjaGFyc1wiOiBcIlxceEM0XFx1MDEwMFxcdTAxMDFcXHhDOVxcdTAxMDRcXHhENlxceERDXFx4RTFcXHUwMTA1XFx1MDEwQ1xceEU0XFx1MDEwRFxcdTAxMDZcXHUwMTA3XFx4RTlcXHUwMTc5XFx1MDE3QVxcdTAxMEVcXHhFRFxcdTAxMEZcXHUwMTEyXFx1MDExM1xcdTAxMTZcXHhGM1xcdTAxMTdcXHhGNFxceEY2XFx4RjVcXHhGQVxcdTAxMUFcXHUwMTFCXFx4RkNcXHUyMDIwXFx4QjBcXHUwMTE4XFx4QTNcXHhBN1xcdTIwMjJcXHhCNlxceERGXFx4QUVcXHhBOVxcdTIxMjJcXHUwMTE5XFx4QThcXHUyMjYwXFx1MDEyM1xcdTAxMkVcXHUwMTJGXFx1MDEyQVxcdTIyNjRcXHUyMjY1XFx1MDEyQlxcdTAxMzZcXHUyMjAyXFx1MjIxMVxcdTAxNDJcXHUwMTNCXFx1MDEzQ1xcdTAxM0RcXHUwMTNFXFx1MDEzOVxcdTAxM0FcXHUwMTQ1XFx1MDE0NlxcdTAxNDNcXHhBQ1xcdTIyMUFcXHUwMTQ0XFx1MDE0N1xcdTIyMDZcXHhBQlxceEJCXFx1MjAyNlxceEEwXFx1MDE0OFxcdTAxNTBcXHhENVxcdTAxNTFcXHUwMTRDXFx1MjAxM1xcdTIwMTRcXHUyMDFDXFx1MjAxRFxcdTIwMThcXHUyMDE5XFx4RjdcXHUyNUNBXFx1MDE0RFxcdTAxNTRcXHUwMTU1XFx1MDE1OFxcdTIwMzlcXHUyMDNBXFx1MDE1OVxcdTAxNTZcXHUwMTU3XFx1MDE2MFxcdTIwMUFcXHUyMDFFXFx1MDE2MVxcdTAxNUFcXHUwMTVCXFx4QzFcXHUwMTY0XFx1MDE2NVxceENEXFx1MDE3RFxcdTAxN0VcXHUwMTZBXFx4RDNcXHhENFxcdTAxNkJcXHUwMTZFXFx4REFcXHUwMTZGXFx1MDE3MFxcdTAxNzFcXHUwMTcyXFx1MDE3M1xceEREXFx4RkRcXHUwMTM3XFx1MDE3QlxcdTAxNDFcXHUwMTdDXFx1MDEyMlxcdTAyQzdcIlxuICAgICAgfSxcbiAgICAgIFwiODA4XCI6IFwiY3A4MDhcIixcbiAgICAgIFwiaWJtODA4XCI6IFwiY3A4MDhcIixcbiAgICAgIFwiY3A4MDhcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJfc2Jjc1wiLFxuICAgICAgICBcImNoYXJzXCI6IFwiXFx1MDQxMFxcdTA0MTFcXHUwNDEyXFx1MDQxM1xcdTA0MTRcXHUwNDE1XFx1MDQxNlxcdTA0MTdcXHUwNDE4XFx1MDQxOVxcdTA0MUFcXHUwNDFCXFx1MDQxQ1xcdTA0MURcXHUwNDFFXFx1MDQxRlxcdTA0MjBcXHUwNDIxXFx1MDQyMlxcdTA0MjNcXHUwNDI0XFx1MDQyNVxcdTA0MjZcXHUwNDI3XFx1MDQyOFxcdTA0MjlcXHUwNDJBXFx1MDQyQlxcdTA0MkNcXHUwNDJEXFx1MDQyRVxcdTA0MkZcXHUwNDMwXFx1MDQzMVxcdTA0MzJcXHUwNDMzXFx1MDQzNFxcdTA0MzVcXHUwNDM2XFx1MDQzN1xcdTA0MzhcXHUwNDM5XFx1MDQzQVxcdTA0M0JcXHUwNDNDXFx1MDQzRFxcdTA0M0VcXHUwNDNGXFx1MjU5MVxcdTI1OTJcXHUyNTkzXFx1MjUwMlxcdTI1MjRcXHUyNTYxXFx1MjU2MlxcdTI1NTZcXHUyNTU1XFx1MjU2M1xcdTI1NTFcXHUyNTU3XFx1MjU1RFxcdTI1NUNcXHUyNTVCXFx1MjUxMFxcdTI1MTRcXHUyNTM0XFx1MjUyQ1xcdTI1MUNcXHUyNTAwXFx1MjUzQ1xcdTI1NUVcXHUyNTVGXFx1MjU1QVxcdTI1NTRcXHUyNTY5XFx1MjU2NlxcdTI1NjBcXHUyNTUwXFx1MjU2Q1xcdTI1NjdcXHUyNTY4XFx1MjU2NFxcdTI1NjVcXHUyNTU5XFx1MjU1OFxcdTI1NTJcXHUyNTUzXFx1MjU2QlxcdTI1NkFcXHUyNTE4XFx1MjUwQ1xcdTI1ODhcXHUyNTg0XFx1MjU4Q1xcdTI1OTBcXHUyNTgwXFx1MDQ0MFxcdTA0NDFcXHUwNDQyXFx1MDQ0M1xcdTA0NDRcXHUwNDQ1XFx1MDQ0NlxcdTA0NDdcXHUwNDQ4XFx1MDQ0OVxcdTA0NEFcXHUwNDRCXFx1MDQ0Q1xcdTA0NERcXHUwNDRFXFx1MDQ0RlxcdTA0MDFcXHUwNDUxXFx1MDQwNFxcdTA0NTRcXHUwNDA3XFx1MDQ1N1xcdTA0MEVcXHUwNDVFXFx4QjBcXHUyMjE5XFx4QjdcXHUyMjFBXFx1MjExNlxcdTIwQUNcXHUyNUEwXFx4QTBcIlxuICAgICAgfSxcbiAgICAgIFwibWlrXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwiX3NiY3NcIixcbiAgICAgICAgXCJjaGFyc1wiOiBcIlxcdTA0MTBcXHUwNDExXFx1MDQxMlxcdTA0MTNcXHUwNDE0XFx1MDQxNVxcdTA0MTZcXHUwNDE3XFx1MDQxOFxcdTA0MTlcXHUwNDFBXFx1MDQxQlxcdTA0MUNcXHUwNDFEXFx1MDQxRVxcdTA0MUZcXHUwNDIwXFx1MDQyMVxcdTA0MjJcXHUwNDIzXFx1MDQyNFxcdTA0MjVcXHUwNDI2XFx1MDQyN1xcdTA0MjhcXHUwNDI5XFx1MDQyQVxcdTA0MkJcXHUwNDJDXFx1MDQyRFxcdTA0MkVcXHUwNDJGXFx1MDQzMFxcdTA0MzFcXHUwNDMyXFx1MDQzM1xcdTA0MzRcXHUwNDM1XFx1MDQzNlxcdTA0MzdcXHUwNDM4XFx1MDQzOVxcdTA0M0FcXHUwNDNCXFx1MDQzQ1xcdTA0M0RcXHUwNDNFXFx1MDQzRlxcdTA0NDBcXHUwNDQxXFx1MDQ0MlxcdTA0NDNcXHUwNDQ0XFx1MDQ0NVxcdTA0NDZcXHUwNDQ3XFx1MDQ0OFxcdTA0NDlcXHUwNDRBXFx1MDQ0QlxcdTA0NENcXHUwNDREXFx1MDQ0RVxcdTA0NEZcXHUyNTE0XFx1MjUzNFxcdTI1MkNcXHUyNTFDXFx1MjUwMFxcdTI1M0NcXHUyNTYzXFx1MjU1MVxcdTI1NUFcXHUyNTU0XFx1MjU2OVxcdTI1NjZcXHUyNTYwXFx1MjU1MFxcdTI1NkNcXHUyNTEwXFx1MjU5MVxcdTI1OTJcXHUyNTkzXFx1MjUwMlxcdTI1MjRcXHUyMTE2XFx4QTdcXHUyNTU3XFx1MjU1RFxcdTI1MThcXHUyNTBDXFx1MjU4OFxcdTI1ODRcXHUyNThDXFx1MjU5MFxcdTI1ODBcXHUwM0IxXFx4REZcXHUwMzkzXFx1MDNDMFxcdTAzQTNcXHUwM0MzXFx4QjVcXHUwM0M0XFx1MDNBNlxcdTAzOThcXHUwM0E5XFx1MDNCNFxcdTIyMUVcXHUwM0M2XFx1MDNCNVxcdTIyMjlcXHUyMjYxXFx4QjFcXHUyMjY1XFx1MjI2NFxcdTIzMjBcXHUyMzIxXFx4RjdcXHUyMjQ4XFx4QjBcXHUyMjE5XFx4QjdcXHUyMjFBXFx1MjA3RlxceEIyXFx1MjVBMFxceEEwXCJcbiAgICAgIH0sXG4gICAgICBcImNwNzIwXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwiX3NiY3NcIixcbiAgICAgICAgXCJjaGFyc1wiOiBcIlxceDgwXFx4ODFcXHhFOVxceEUyXFx4ODRcXHhFMFxceDg2XFx4RTdcXHhFQVxceEVCXFx4RThcXHhFRlxceEVFXFx4OERcXHg4RVxceDhGXFx4OTBcXHUwNjUxXFx1MDY1MlxceEY0XFx4QTRcXHUwNjQwXFx4RkJcXHhGOVxcdTA2MjFcXHUwNjIyXFx1MDYyM1xcdTA2MjRcXHhBM1xcdTA2MjVcXHUwNjI2XFx1MDYyN1xcdTA2MjhcXHUwNjI5XFx1MDYyQVxcdTA2MkJcXHUwNjJDXFx1MDYyRFxcdTA2MkVcXHUwNjJGXFx1MDYzMFxcdTA2MzFcXHUwNjMyXFx1MDYzM1xcdTA2MzRcXHUwNjM1XFx4QUJcXHhCQlxcdTI1OTFcXHUyNTkyXFx1MjU5M1xcdTI1MDJcXHUyNTI0XFx1MjU2MVxcdTI1NjJcXHUyNTU2XFx1MjU1NVxcdTI1NjNcXHUyNTUxXFx1MjU1N1xcdTI1NURcXHUyNTVDXFx1MjU1QlxcdTI1MTBcXHUyNTE0XFx1MjUzNFxcdTI1MkNcXHUyNTFDXFx1MjUwMFxcdTI1M0NcXHUyNTVFXFx1MjU1RlxcdTI1NUFcXHUyNTU0XFx1MjU2OVxcdTI1NjZcXHUyNTYwXFx1MjU1MFxcdTI1NkNcXHUyNTY3XFx1MjU2OFxcdTI1NjRcXHUyNTY1XFx1MjU1OVxcdTI1NThcXHUyNTUyXFx1MjU1M1xcdTI1NkJcXHUyNTZBXFx1MjUxOFxcdTI1MENcXHUyNTg4XFx1MjU4NFxcdTI1OENcXHUyNTkwXFx1MjU4MFxcdTA2MzZcXHUwNjM3XFx1MDYzOFxcdTA2MzlcXHUwNjNBXFx1MDY0MVxceEI1XFx1MDY0MlxcdTA2NDNcXHUwNjQ0XFx1MDY0NVxcdTA2NDZcXHUwNjQ3XFx1MDY0OFxcdTA2NDlcXHUwNjRBXFx1MjI2MVxcdTA2NEJcXHUwNjRDXFx1MDY0RFxcdTA2NEVcXHUwNjRGXFx1MDY1MFxcdTIyNDhcXHhCMFxcdTIyMTlcXHhCN1xcdTIyMUFcXHUyMDdGXFx4QjJcXHUyNUEwXFx4QTBcIlxuICAgICAgfSxcbiAgICAgIC8vIEFsaWFzZXMgb2YgZ2VuZXJhdGVkIGVuY29kaW5ncy5cbiAgICAgIFwiYXNjaWk4Yml0XCI6IFwiYXNjaWlcIixcbiAgICAgIFwidXNhc2NpaVwiOiBcImFzY2lpXCIsXG4gICAgICBcImFuc2l4MzRcIjogXCJhc2NpaVwiLFxuICAgICAgXCJhbnNpeDM0MTk2OFwiOiBcImFzY2lpXCIsXG4gICAgICBcImFuc2l4MzQxOTg2XCI6IFwiYXNjaWlcIixcbiAgICAgIFwiY3Nhc2NpaVwiOiBcImFzY2lpXCIsXG4gICAgICBcImNwMzY3XCI6IFwiYXNjaWlcIixcbiAgICAgIFwiaWJtMzY3XCI6IFwiYXNjaWlcIixcbiAgICAgIFwiaXNvaXI2XCI6IFwiYXNjaWlcIixcbiAgICAgIFwiaXNvNjQ2dXNcIjogXCJhc2NpaVwiLFxuICAgICAgXCJpc282NDZpcnZcIjogXCJhc2NpaVwiLFxuICAgICAgXCJ1c1wiOiBcImFzY2lpXCIsXG4gICAgICBcImxhdGluMVwiOiBcImlzbzg4NTkxXCIsXG4gICAgICBcImxhdGluMlwiOiBcImlzbzg4NTkyXCIsXG4gICAgICBcImxhdGluM1wiOiBcImlzbzg4NTkzXCIsXG4gICAgICBcImxhdGluNFwiOiBcImlzbzg4NTk0XCIsXG4gICAgICBcImxhdGluNVwiOiBcImlzbzg4NTk5XCIsXG4gICAgICBcImxhdGluNlwiOiBcImlzbzg4NTkxMFwiLFxuICAgICAgXCJsYXRpbjdcIjogXCJpc284ODU5MTNcIixcbiAgICAgIFwibGF0aW44XCI6IFwiaXNvODg1OTE0XCIsXG4gICAgICBcImxhdGluOVwiOiBcImlzbzg4NTkxNVwiLFxuICAgICAgXCJsYXRpbjEwXCI6IFwiaXNvODg1OTE2XCIsXG4gICAgICBcImNzaXNvbGF0aW4xXCI6IFwiaXNvODg1OTFcIixcbiAgICAgIFwiY3Npc29sYXRpbjJcIjogXCJpc284ODU5MlwiLFxuICAgICAgXCJjc2lzb2xhdGluM1wiOiBcImlzbzg4NTkzXCIsXG4gICAgICBcImNzaXNvbGF0aW40XCI6IFwiaXNvODg1OTRcIixcbiAgICAgIFwiY3Npc29sYXRpbmN5cmlsbGljXCI6IFwiaXNvODg1OTVcIixcbiAgICAgIFwiY3Npc29sYXRpbmFyYWJpY1wiOiBcImlzbzg4NTk2XCIsXG4gICAgICBcImNzaXNvbGF0aW5ncmVla1wiOiBcImlzbzg4NTk3XCIsXG4gICAgICBcImNzaXNvbGF0aW5oZWJyZXdcIjogXCJpc284ODU5OFwiLFxuICAgICAgXCJjc2lzb2xhdGluNVwiOiBcImlzbzg4NTk5XCIsXG4gICAgICBcImNzaXNvbGF0aW42XCI6IFwiaXNvODg1OTEwXCIsXG4gICAgICBcImwxXCI6IFwiaXNvODg1OTFcIixcbiAgICAgIFwibDJcIjogXCJpc284ODU5MlwiLFxuICAgICAgXCJsM1wiOiBcImlzbzg4NTkzXCIsXG4gICAgICBcImw0XCI6IFwiaXNvODg1OTRcIixcbiAgICAgIFwibDVcIjogXCJpc284ODU5OVwiLFxuICAgICAgXCJsNlwiOiBcImlzbzg4NTkxMFwiLFxuICAgICAgXCJsN1wiOiBcImlzbzg4NTkxM1wiLFxuICAgICAgXCJsOFwiOiBcImlzbzg4NTkxNFwiLFxuICAgICAgXCJsOVwiOiBcImlzbzg4NTkxNVwiLFxuICAgICAgXCJsMTBcIjogXCJpc284ODU5MTZcIixcbiAgICAgIFwiaXNvaXIxNFwiOiBcImlzbzY0NmpwXCIsXG4gICAgICBcImlzb2lyNTdcIjogXCJpc282NDZjblwiLFxuICAgICAgXCJpc29pcjEwMFwiOiBcImlzbzg4NTkxXCIsXG4gICAgICBcImlzb2lyMTAxXCI6IFwiaXNvODg1OTJcIixcbiAgICAgIFwiaXNvaXIxMDlcIjogXCJpc284ODU5M1wiLFxuICAgICAgXCJpc29pcjExMFwiOiBcImlzbzg4NTk0XCIsXG4gICAgICBcImlzb2lyMTQ0XCI6IFwiaXNvODg1OTVcIixcbiAgICAgIFwiaXNvaXIxMjdcIjogXCJpc284ODU5NlwiLFxuICAgICAgXCJpc29pcjEyNlwiOiBcImlzbzg4NTk3XCIsXG4gICAgICBcImlzb2lyMTM4XCI6IFwiaXNvODg1OThcIixcbiAgICAgIFwiaXNvaXIxNDhcIjogXCJpc284ODU5OVwiLFxuICAgICAgXCJpc29pcjE1N1wiOiBcImlzbzg4NTkxMFwiLFxuICAgICAgXCJpc29pcjE2NlwiOiBcInRpczYyMFwiLFxuICAgICAgXCJpc29pcjE3OVwiOiBcImlzbzg4NTkxM1wiLFxuICAgICAgXCJpc29pcjE5OVwiOiBcImlzbzg4NTkxNFwiLFxuICAgICAgXCJpc29pcjIwM1wiOiBcImlzbzg4NTkxNVwiLFxuICAgICAgXCJpc29pcjIyNlwiOiBcImlzbzg4NTkxNlwiLFxuICAgICAgXCJjcDgxOVwiOiBcImlzbzg4NTkxXCIsXG4gICAgICBcImlibTgxOVwiOiBcImlzbzg4NTkxXCIsXG4gICAgICBcImN5cmlsbGljXCI6IFwiaXNvODg1OTVcIixcbiAgICAgIFwiYXJhYmljXCI6IFwiaXNvODg1OTZcIixcbiAgICAgIFwiYXJhYmljOFwiOiBcImlzbzg4NTk2XCIsXG4gICAgICBcImVjbWExMTRcIjogXCJpc284ODU5NlwiLFxuICAgICAgXCJhc21vNzA4XCI6IFwiaXNvODg1OTZcIixcbiAgICAgIFwiZ3JlZWtcIjogXCJpc284ODU5N1wiLFxuICAgICAgXCJncmVlazhcIjogXCJpc284ODU5N1wiLFxuICAgICAgXCJlY21hMTE4XCI6IFwiaXNvODg1OTdcIixcbiAgICAgIFwiZWxvdDkyOFwiOiBcImlzbzg4NTk3XCIsXG4gICAgICBcImhlYnJld1wiOiBcImlzbzg4NTk4XCIsXG4gICAgICBcImhlYnJldzhcIjogXCJpc284ODU5OFwiLFxuICAgICAgXCJ0dXJraXNoXCI6IFwiaXNvODg1OTlcIixcbiAgICAgIFwidHVya2lzaDhcIjogXCJpc284ODU5OVwiLFxuICAgICAgXCJ0aGFpXCI6IFwiaXNvODg1OTExXCIsXG4gICAgICBcInRoYWk4XCI6IFwiaXNvODg1OTExXCIsXG4gICAgICBcImNlbHRpY1wiOiBcImlzbzg4NTkxNFwiLFxuICAgICAgXCJjZWx0aWM4XCI6IFwiaXNvODg1OTE0XCIsXG4gICAgICBcImlzb2NlbHRpY1wiOiBcImlzbzg4NTkxNFwiLFxuICAgICAgXCJ0aXM2MjAwXCI6IFwidGlzNjIwXCIsXG4gICAgICBcInRpczYyMDI1MjkxXCI6IFwidGlzNjIwXCIsXG4gICAgICBcInRpczYyMDI1MzMwXCI6IFwidGlzNjIwXCIsXG4gICAgICBcIjEwMDAwXCI6IFwibWFjcm9tYW5cIixcbiAgICAgIFwiMTAwMDZcIjogXCJtYWNncmVla1wiLFxuICAgICAgXCIxMDAwN1wiOiBcIm1hY2N5cmlsbGljXCIsXG4gICAgICBcIjEwMDc5XCI6IFwibWFjaWNlbGFuZFwiLFxuICAgICAgXCIxMDA4MVwiOiBcIm1hY3R1cmtpc2hcIixcbiAgICAgIFwiY3NwYzhjb2RlcGFnZTQzN1wiOiBcImNwNDM3XCIsXG4gICAgICBcImNzcGM3NzViYWx0aWNcIjogXCJjcDc3NVwiLFxuICAgICAgXCJjc3BjODUwbXVsdGlsaW5ndWFsXCI6IFwiY3A4NTBcIixcbiAgICAgIFwiY3NwY3A4NTJcIjogXCJjcDg1MlwiLFxuICAgICAgXCJjc3BjODYybGF0aW5oZWJyZXdcIjogXCJjcDg2MlwiLFxuICAgICAgXCJjcGdyXCI6IFwiY3A4NjlcIixcbiAgICAgIFwibXNlZVwiOiBcImNwMTI1MFwiLFxuICAgICAgXCJtc2N5cmxcIjogXCJjcDEyNTFcIixcbiAgICAgIFwibXNhbnNpXCI6IFwiY3AxMjUyXCIsXG4gICAgICBcIm1zZ3JlZWtcIjogXCJjcDEyNTNcIixcbiAgICAgIFwibXN0dXJrXCI6IFwiY3AxMjU0XCIsXG4gICAgICBcIm1zaGViclwiOiBcImNwMTI1NVwiLFxuICAgICAgXCJtc2FyYWJcIjogXCJjcDEyNTZcIixcbiAgICAgIFwid2luYmFsdHJpbVwiOiBcImNwMTI1N1wiLFxuICAgICAgXCJjcDIwODY2XCI6IFwia29pOHJcIixcbiAgICAgIFwiMjA4NjZcIjogXCJrb2k4clwiLFxuICAgICAgXCJpYm04NzhcIjogXCJrb2k4clwiLFxuICAgICAgXCJjc2tvaThyXCI6IFwia29pOHJcIixcbiAgICAgIFwiY3AyMTg2NlwiOiBcImtvaTh1XCIsXG4gICAgICBcIjIxODY2XCI6IFwia29pOHVcIixcbiAgICAgIFwiaWJtMTE2OFwiOiBcImtvaTh1XCIsXG4gICAgICBcInN0cmsxMDQ4MjAwMlwiOiBcInJrMTA0OFwiLFxuICAgICAgXCJ0Y3ZuNTcxMlwiOiBcInRjdm5cIixcbiAgICAgIFwidGN2bjU3MTIxXCI6IFwidGN2blwiLFxuICAgICAgXCJnYjE5ODg4MFwiOiBcImlzbzY0NmNuXCIsXG4gICAgICBcImNuXCI6IFwiaXNvNjQ2Y25cIixcbiAgICAgIFwiY3Npc28xNGppc2M2MjIwcm9cIjogXCJpc282NDZqcFwiLFxuICAgICAgXCJqaXNjNjIyMDE5Njlyb1wiOiBcImlzbzY0NmpwXCIsXG4gICAgICBcImpwXCI6IFwiaXNvNjQ2anBcIixcbiAgICAgIFwiY3NocHJvbWFuOFwiOiBcImhwcm9tYW44XCIsXG4gICAgICBcInI4XCI6IFwiaHByb21hbjhcIixcbiAgICAgIFwicm9tYW44XCI6IFwiaHByb21hbjhcIixcbiAgICAgIFwieHJvbWFuOFwiOiBcImhwcm9tYW44XCIsXG4gICAgICBcImlibTEwNTFcIjogXCJocHJvbWFuOFwiLFxuICAgICAgXCJtYWNcIjogXCJtYWNpbnRvc2hcIixcbiAgICAgIFwiY3NtYWNpbnRvc2hcIjogXCJtYWNpbnRvc2hcIlxuICAgIH07XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvYm9keS1wYXJzZXIvbm9kZV9tb2R1bGVzL2ljb252LWxpdGUvZW5jb2RpbmdzL3NiY3MtZGF0YS1nZW5lcmF0ZWQuanNcbnZhciByZXF1aXJlX3NiY3NfZGF0YV9nZW5lcmF0ZWQyID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL2JvZHktcGFyc2VyL25vZGVfbW9kdWxlcy9pY29udi1saXRlL2VuY29kaW5ncy9zYmNzLWRhdGEtZ2VuZXJhdGVkLmpzXCIoZXhwb3J0czIsIG1vZHVsZTIpIHtcbiAgICBcInVzZSBzdHJpY3RcIjtcbiAgICBtb2R1bGUyLmV4cG9ydHMgPSB7XG4gICAgICBcIjQzN1wiOiBcImNwNDM3XCIsXG4gICAgICBcIjczN1wiOiBcImNwNzM3XCIsXG4gICAgICBcIjc3NVwiOiBcImNwNzc1XCIsXG4gICAgICBcIjg1MFwiOiBcImNwODUwXCIsXG4gICAgICBcIjg1MlwiOiBcImNwODUyXCIsXG4gICAgICBcIjg1NVwiOiBcImNwODU1XCIsXG4gICAgICBcIjg1NlwiOiBcImNwODU2XCIsXG4gICAgICBcIjg1N1wiOiBcImNwODU3XCIsXG4gICAgICBcIjg1OFwiOiBcImNwODU4XCIsXG4gICAgICBcIjg2MFwiOiBcImNwODYwXCIsXG4gICAgICBcIjg2MVwiOiBcImNwODYxXCIsXG4gICAgICBcIjg2MlwiOiBcImNwODYyXCIsXG4gICAgICBcIjg2M1wiOiBcImNwODYzXCIsXG4gICAgICBcIjg2NFwiOiBcImNwODY0XCIsXG4gICAgICBcIjg2NVwiOiBcImNwODY1XCIsXG4gICAgICBcIjg2NlwiOiBcImNwODY2XCIsXG4gICAgICBcIjg2OVwiOiBcImNwODY5XCIsXG4gICAgICBcIjg3NFwiOiBcIndpbmRvd3M4NzRcIixcbiAgICAgIFwiOTIyXCI6IFwiY3A5MjJcIixcbiAgICAgIFwiMTA0NlwiOiBcImNwMTA0NlwiLFxuICAgICAgXCIxMTI0XCI6IFwiY3AxMTI0XCIsXG4gICAgICBcIjExMjVcIjogXCJjcDExMjVcIixcbiAgICAgIFwiMTEyOVwiOiBcImNwMTEyOVwiLFxuICAgICAgXCIxMTMzXCI6IFwiY3AxMTMzXCIsXG4gICAgICBcIjExNjFcIjogXCJjcDExNjFcIixcbiAgICAgIFwiMTE2MlwiOiBcImNwMTE2MlwiLFxuICAgICAgXCIxMTYzXCI6IFwiY3AxMTYzXCIsXG4gICAgICBcIjEyNTBcIjogXCJ3aW5kb3dzMTI1MFwiLFxuICAgICAgXCIxMjUxXCI6IFwid2luZG93czEyNTFcIixcbiAgICAgIFwiMTI1MlwiOiBcIndpbmRvd3MxMjUyXCIsXG4gICAgICBcIjEyNTNcIjogXCJ3aW5kb3dzMTI1M1wiLFxuICAgICAgXCIxMjU0XCI6IFwid2luZG93czEyNTRcIixcbiAgICAgIFwiMTI1NVwiOiBcIndpbmRvd3MxMjU1XCIsXG4gICAgICBcIjEyNTZcIjogXCJ3aW5kb3dzMTI1NlwiLFxuICAgICAgXCIxMjU3XCI6IFwid2luZG93czEyNTdcIixcbiAgICAgIFwiMTI1OFwiOiBcIndpbmRvd3MxMjU4XCIsXG4gICAgICBcIjI4NTkxXCI6IFwiaXNvODg1OTFcIixcbiAgICAgIFwiMjg1OTJcIjogXCJpc284ODU5MlwiLFxuICAgICAgXCIyODU5M1wiOiBcImlzbzg4NTkzXCIsXG4gICAgICBcIjI4NTk0XCI6IFwiaXNvODg1OTRcIixcbiAgICAgIFwiMjg1OTVcIjogXCJpc284ODU5NVwiLFxuICAgICAgXCIyODU5NlwiOiBcImlzbzg4NTk2XCIsXG4gICAgICBcIjI4NTk3XCI6IFwiaXNvODg1OTdcIixcbiAgICAgIFwiMjg1OThcIjogXCJpc284ODU5OFwiLFxuICAgICAgXCIyODU5OVwiOiBcImlzbzg4NTk5XCIsXG4gICAgICBcIjI4NjAwXCI6IFwiaXNvODg1OTEwXCIsXG4gICAgICBcIjI4NjAxXCI6IFwiaXNvODg1OTExXCIsXG4gICAgICBcIjI4NjAzXCI6IFwiaXNvODg1OTEzXCIsXG4gICAgICBcIjI4NjA0XCI6IFwiaXNvODg1OTE0XCIsXG4gICAgICBcIjI4NjA1XCI6IFwiaXNvODg1OTE1XCIsXG4gICAgICBcIjI4NjA2XCI6IFwiaXNvODg1OTE2XCIsXG4gICAgICBcIndpbmRvd3M4NzRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJfc2Jjc1wiLFxuICAgICAgICBcImNoYXJzXCI6IFwiXFx1MjBBQ1xcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHUyMDI2XFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHUyMDE4XFx1MjAxOVxcdTIwMUNcXHUyMDFEXFx1MjAyMlxcdTIwMTNcXHUyMDE0XFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHhBMFxcdTBFMDFcXHUwRTAyXFx1MEUwM1xcdTBFMDRcXHUwRTA1XFx1MEUwNlxcdTBFMDdcXHUwRTA4XFx1MEUwOVxcdTBFMEFcXHUwRTBCXFx1MEUwQ1xcdTBFMERcXHUwRTBFXFx1MEUwRlxcdTBFMTBcXHUwRTExXFx1MEUxMlxcdTBFMTNcXHUwRTE0XFx1MEUxNVxcdTBFMTZcXHUwRTE3XFx1MEUxOFxcdTBFMTlcXHUwRTFBXFx1MEUxQlxcdTBFMUNcXHUwRTFEXFx1MEUxRVxcdTBFMUZcXHUwRTIwXFx1MEUyMVxcdTBFMjJcXHUwRTIzXFx1MEUyNFxcdTBFMjVcXHUwRTI2XFx1MEUyN1xcdTBFMjhcXHUwRTI5XFx1MEUyQVxcdTBFMkJcXHUwRTJDXFx1MEUyRFxcdTBFMkVcXHUwRTJGXFx1MEUzMFxcdTBFMzFcXHUwRTMyXFx1MEUzM1xcdTBFMzRcXHUwRTM1XFx1MEUzNlxcdTBFMzdcXHUwRTM4XFx1MEUzOVxcdTBFM0FcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1MEUzRlxcdTBFNDBcXHUwRTQxXFx1MEU0MlxcdTBFNDNcXHUwRTQ0XFx1MEU0NVxcdTBFNDZcXHUwRTQ3XFx1MEU0OFxcdTBFNDlcXHUwRTRBXFx1MEU0QlxcdTBFNENcXHUwRTREXFx1MEU0RVxcdTBFNEZcXHUwRTUwXFx1MEU1MVxcdTBFNTJcXHUwRTUzXFx1MEU1NFxcdTBFNTVcXHUwRTU2XFx1MEU1N1xcdTBFNThcXHUwRTU5XFx1MEU1QVxcdTBFNUJcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXCJcbiAgICAgIH0sXG4gICAgICBcIndpbjg3NFwiOiBcIndpbmRvd3M4NzRcIixcbiAgICAgIFwiY3A4NzRcIjogXCJ3aW5kb3dzODc0XCIsXG4gICAgICBcIndpbmRvd3MxMjUwXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwiX3NiY3NcIixcbiAgICAgICAgXCJjaGFyc1wiOiBcIlxcdTIwQUNcXHVGRkZEXFx1MjAxQVxcdUZGRkRcXHUyMDFFXFx1MjAyNlxcdTIwMjBcXHUyMDIxXFx1RkZGRFxcdTIwMzBcXHUwMTYwXFx1MjAzOVxcdTAxNUFcXHUwMTY0XFx1MDE3RFxcdTAxNzlcXHVGRkZEXFx1MjAxOFxcdTIwMTlcXHUyMDFDXFx1MjAxRFxcdTIwMjJcXHUyMDEzXFx1MjAxNFxcdUZGRkRcXHUyMTIyXFx1MDE2MVxcdTIwM0FcXHUwMTVCXFx1MDE2NVxcdTAxN0VcXHUwMTdBXFx4QTBcXHUwMkM3XFx1MDJEOFxcdTAxNDFcXHhBNFxcdTAxMDRcXHhBNlxceEE3XFx4QThcXHhBOVxcdTAxNUVcXHhBQlxceEFDXFx4QURcXHhBRVxcdTAxN0JcXHhCMFxceEIxXFx1MDJEQlxcdTAxNDJcXHhCNFxceEI1XFx4QjZcXHhCN1xceEI4XFx1MDEwNVxcdTAxNUZcXHhCQlxcdTAxM0RcXHUwMkREXFx1MDEzRVxcdTAxN0NcXHUwMTU0XFx4QzFcXHhDMlxcdTAxMDJcXHhDNFxcdTAxMzlcXHUwMTA2XFx4QzdcXHUwMTBDXFx4QzlcXHUwMTE4XFx4Q0JcXHUwMTFBXFx4Q0RcXHhDRVxcdTAxMEVcXHUwMTEwXFx1MDE0M1xcdTAxNDdcXHhEM1xceEQ0XFx1MDE1MFxceEQ2XFx4RDdcXHUwMTU4XFx1MDE2RVxceERBXFx1MDE3MFxceERDXFx4RERcXHUwMTYyXFx4REZcXHUwMTU1XFx4RTFcXHhFMlxcdTAxMDNcXHhFNFxcdTAxM0FcXHUwMTA3XFx4RTdcXHUwMTBEXFx4RTlcXHUwMTE5XFx4RUJcXHUwMTFCXFx4RURcXHhFRVxcdTAxMEZcXHUwMTExXFx1MDE0NFxcdTAxNDhcXHhGM1xceEY0XFx1MDE1MVxceEY2XFx4RjdcXHUwMTU5XFx1MDE2RlxceEZBXFx1MDE3MVxceEZDXFx4RkRcXHUwMTYzXFx1MDJEOVwiXG4gICAgICB9LFxuICAgICAgXCJ3aW4xMjUwXCI6IFwid2luZG93czEyNTBcIixcbiAgICAgIFwiY3AxMjUwXCI6IFwid2luZG93czEyNTBcIixcbiAgICAgIFwid2luZG93czEyNTFcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJfc2Jjc1wiLFxuICAgICAgICBcImNoYXJzXCI6IFwiXFx1MDQwMlxcdTA0MDNcXHUyMDFBXFx1MDQ1M1xcdTIwMUVcXHUyMDI2XFx1MjAyMFxcdTIwMjFcXHUyMEFDXFx1MjAzMFxcdTA0MDlcXHUyMDM5XFx1MDQwQVxcdTA0MENcXHUwNDBCXFx1MDQwRlxcdTA0NTJcXHUyMDE4XFx1MjAxOVxcdTIwMUNcXHUyMDFEXFx1MjAyMlxcdTIwMTNcXHUyMDE0XFx1RkZGRFxcdTIxMjJcXHUwNDU5XFx1MjAzQVxcdTA0NUFcXHUwNDVDXFx1MDQ1QlxcdTA0NUZcXHhBMFxcdTA0MEVcXHUwNDVFXFx1MDQwOFxceEE0XFx1MDQ5MFxceEE2XFx4QTdcXHUwNDAxXFx4QTlcXHUwNDA0XFx4QUJcXHhBQ1xceEFEXFx4QUVcXHUwNDA3XFx4QjBcXHhCMVxcdTA0MDZcXHUwNDU2XFx1MDQ5MVxceEI1XFx4QjZcXHhCN1xcdTA0NTFcXHUyMTE2XFx1MDQ1NFxceEJCXFx1MDQ1OFxcdTA0MDVcXHUwNDU1XFx1MDQ1N1xcdTA0MTBcXHUwNDExXFx1MDQxMlxcdTA0MTNcXHUwNDE0XFx1MDQxNVxcdTA0MTZcXHUwNDE3XFx1MDQxOFxcdTA0MTlcXHUwNDFBXFx1MDQxQlxcdTA0MUNcXHUwNDFEXFx1MDQxRVxcdTA0MUZcXHUwNDIwXFx1MDQyMVxcdTA0MjJcXHUwNDIzXFx1MDQyNFxcdTA0MjVcXHUwNDI2XFx1MDQyN1xcdTA0MjhcXHUwNDI5XFx1MDQyQVxcdTA0MkJcXHUwNDJDXFx1MDQyRFxcdTA0MkVcXHUwNDJGXFx1MDQzMFxcdTA0MzFcXHUwNDMyXFx1MDQzM1xcdTA0MzRcXHUwNDM1XFx1MDQzNlxcdTA0MzdcXHUwNDM4XFx1MDQzOVxcdTA0M0FcXHUwNDNCXFx1MDQzQ1xcdTA0M0RcXHUwNDNFXFx1MDQzRlxcdTA0NDBcXHUwNDQxXFx1MDQ0MlxcdTA0NDNcXHUwNDQ0XFx1MDQ0NVxcdTA0NDZcXHUwNDQ3XFx1MDQ0OFxcdTA0NDlcXHUwNDRBXFx1MDQ0QlxcdTA0NENcXHUwNDREXFx1MDQ0RVxcdTA0NEZcIlxuICAgICAgfSxcbiAgICAgIFwid2luMTI1MVwiOiBcIndpbmRvd3MxMjUxXCIsXG4gICAgICBcImNwMTI1MVwiOiBcIndpbmRvd3MxMjUxXCIsXG4gICAgICBcIndpbmRvd3MxMjUyXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwiX3NiY3NcIixcbiAgICAgICAgXCJjaGFyc1wiOiBcIlxcdTIwQUNcXHVGRkZEXFx1MjAxQVxcdTAxOTJcXHUyMDFFXFx1MjAyNlxcdTIwMjBcXHUyMDIxXFx1MDJDNlxcdTIwMzBcXHUwMTYwXFx1MjAzOVxcdTAxNTJcXHVGRkZEXFx1MDE3RFxcdUZGRkRcXHVGRkZEXFx1MjAxOFxcdTIwMTlcXHUyMDFDXFx1MjAxRFxcdTIwMjJcXHUyMDEzXFx1MjAxNFxcdTAyRENcXHUyMTIyXFx1MDE2MVxcdTIwM0FcXHUwMTUzXFx1RkZGRFxcdTAxN0VcXHUwMTc4XFx4QTBcXHhBMVxceEEyXFx4QTNcXHhBNFxceEE1XFx4QTZcXHhBN1xceEE4XFx4QTlcXHhBQVxceEFCXFx4QUNcXHhBRFxceEFFXFx4QUZcXHhCMFxceEIxXFx4QjJcXHhCM1xceEI0XFx4QjVcXHhCNlxceEI3XFx4QjhcXHhCOVxceEJBXFx4QkJcXHhCQ1xceEJEXFx4QkVcXHhCRlxceEMwXFx4QzFcXHhDMlxceEMzXFx4QzRcXHhDNVxceEM2XFx4QzdcXHhDOFxceEM5XFx4Q0FcXHhDQlxceENDXFx4Q0RcXHhDRVxceENGXFx4RDBcXHhEMVxceEQyXFx4RDNcXHhENFxceEQ1XFx4RDZcXHhEN1xceEQ4XFx4RDlcXHhEQVxceERCXFx4RENcXHhERFxceERFXFx4REZcXHhFMFxceEUxXFx4RTJcXHhFM1xceEU0XFx4RTVcXHhFNlxceEU3XFx4RThcXHhFOVxceEVBXFx4RUJcXHhFQ1xceEVEXFx4RUVcXHhFRlxceEYwXFx4RjFcXHhGMlxceEYzXFx4RjRcXHhGNVxceEY2XFx4RjdcXHhGOFxceEY5XFx4RkFcXHhGQlxceEZDXFx4RkRcXHhGRVxceEZGXCJcbiAgICAgIH0sXG4gICAgICBcIndpbjEyNTJcIjogXCJ3aW5kb3dzMTI1MlwiLFxuICAgICAgXCJjcDEyNTJcIjogXCJ3aW5kb3dzMTI1MlwiLFxuICAgICAgXCJ3aW5kb3dzMTI1M1wiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIl9zYmNzXCIsXG4gICAgICAgIFwiY2hhcnNcIjogXCJcXHUyMEFDXFx1RkZGRFxcdTIwMUFcXHUwMTkyXFx1MjAxRVxcdTIwMjZcXHUyMDIwXFx1MjAyMVxcdUZGRkRcXHUyMDMwXFx1RkZGRFxcdTIwMzlcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdTIwMThcXHUyMDE5XFx1MjAxQ1xcdTIwMURcXHUyMDIyXFx1MjAxM1xcdTIwMTRcXHVGRkZEXFx1MjEyMlxcdUZGRkRcXHUyMDNBXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxceEEwXFx1MDM4NVxcdTAzODZcXHhBM1xceEE0XFx4QTVcXHhBNlxceEE3XFx4QThcXHhBOVxcdUZGRkRcXHhBQlxceEFDXFx4QURcXHhBRVxcdTIwMTVcXHhCMFxceEIxXFx4QjJcXHhCM1xcdTAzODRcXHhCNVxceEI2XFx4QjdcXHUwMzg4XFx1MDM4OVxcdTAzOEFcXHhCQlxcdTAzOENcXHhCRFxcdTAzOEVcXHUwMzhGXFx1MDM5MFxcdTAzOTFcXHUwMzkyXFx1MDM5M1xcdTAzOTRcXHUwMzk1XFx1MDM5NlxcdTAzOTdcXHUwMzk4XFx1MDM5OVxcdTAzOUFcXHUwMzlCXFx1MDM5Q1xcdTAzOURcXHUwMzlFXFx1MDM5RlxcdTAzQTBcXHUwM0ExXFx1RkZGRFxcdTAzQTNcXHUwM0E0XFx1MDNBNVxcdTAzQTZcXHUwM0E3XFx1MDNBOFxcdTAzQTlcXHUwM0FBXFx1MDNBQlxcdTAzQUNcXHUwM0FEXFx1MDNBRVxcdTAzQUZcXHUwM0IwXFx1MDNCMVxcdTAzQjJcXHUwM0IzXFx1MDNCNFxcdTAzQjVcXHUwM0I2XFx1MDNCN1xcdTAzQjhcXHUwM0I5XFx1MDNCQVxcdTAzQkJcXHUwM0JDXFx1MDNCRFxcdTAzQkVcXHUwM0JGXFx1MDNDMFxcdTAzQzFcXHUwM0MyXFx1MDNDM1xcdTAzQzRcXHUwM0M1XFx1MDNDNlxcdTAzQzdcXHUwM0M4XFx1MDNDOVxcdTAzQ0FcXHUwM0NCXFx1MDNDQ1xcdTAzQ0RcXHUwM0NFXFx1RkZGRFwiXG4gICAgICB9LFxuICAgICAgXCJ3aW4xMjUzXCI6IFwid2luZG93czEyNTNcIixcbiAgICAgIFwiY3AxMjUzXCI6IFwid2luZG93czEyNTNcIixcbiAgICAgIFwid2luZG93czEyNTRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJfc2Jjc1wiLFxuICAgICAgICBcImNoYXJzXCI6IFwiXFx1MjBBQ1xcdUZGRkRcXHUyMDFBXFx1MDE5MlxcdTIwMUVcXHUyMDI2XFx1MjAyMFxcdTIwMjFcXHUwMkM2XFx1MjAzMFxcdTAxNjBcXHUyMDM5XFx1MDE1MlxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHUyMDE4XFx1MjAxOVxcdTIwMUNcXHUyMDFEXFx1MjAyMlxcdTIwMTNcXHUyMDE0XFx1MDJEQ1xcdTIxMjJcXHUwMTYxXFx1MjAzQVxcdTAxNTNcXHVGRkZEXFx1RkZGRFxcdTAxNzhcXHhBMFxceEExXFx4QTJcXHhBM1xceEE0XFx4QTVcXHhBNlxceEE3XFx4QThcXHhBOVxceEFBXFx4QUJcXHhBQ1xceEFEXFx4QUVcXHhBRlxceEIwXFx4QjFcXHhCMlxceEIzXFx4QjRcXHhCNVxceEI2XFx4QjdcXHhCOFxceEI5XFx4QkFcXHhCQlxceEJDXFx4QkRcXHhCRVxceEJGXFx4QzBcXHhDMVxceEMyXFx4QzNcXHhDNFxceEM1XFx4QzZcXHhDN1xceEM4XFx4QzlcXHhDQVxceENCXFx4Q0NcXHhDRFxceENFXFx4Q0ZcXHUwMTFFXFx4RDFcXHhEMlxceEQzXFx4RDRcXHhENVxceEQ2XFx4RDdcXHhEOFxceEQ5XFx4REFcXHhEQlxceERDXFx1MDEzMFxcdTAxNUVcXHhERlxceEUwXFx4RTFcXHhFMlxceEUzXFx4RTRcXHhFNVxceEU2XFx4RTdcXHhFOFxceEU5XFx4RUFcXHhFQlxceEVDXFx4RURcXHhFRVxceEVGXFx1MDExRlxceEYxXFx4RjJcXHhGM1xceEY0XFx4RjVcXHhGNlxceEY3XFx4RjhcXHhGOVxceEZBXFx4RkJcXHhGQ1xcdTAxMzFcXHUwMTVGXFx4RkZcIlxuICAgICAgfSxcbiAgICAgIFwid2luMTI1NFwiOiBcIndpbmRvd3MxMjU0XCIsXG4gICAgICBcImNwMTI1NFwiOiBcIndpbmRvd3MxMjU0XCIsXG4gICAgICBcIndpbmRvd3MxMjU1XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwiX3NiY3NcIixcbiAgICAgICAgXCJjaGFyc1wiOiBcIlxcdTIwQUNcXHVGRkZEXFx1MjAxQVxcdTAxOTJcXHUyMDFFXFx1MjAyNlxcdTIwMjBcXHUyMDIxXFx1MDJDNlxcdTIwMzBcXHVGRkZEXFx1MjAzOVxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1MjAxOFxcdTIwMTlcXHUyMDFDXFx1MjAxRFxcdTIwMjJcXHUyMDEzXFx1MjAxNFxcdTAyRENcXHUyMTIyXFx1RkZGRFxcdTIwM0FcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx4QTBcXHhBMVxceEEyXFx4QTNcXHUyMEFBXFx4QTVcXHhBNlxceEE3XFx4QThcXHhBOVxceEQ3XFx4QUJcXHhBQ1xceEFEXFx4QUVcXHhBRlxceEIwXFx4QjFcXHhCMlxceEIzXFx4QjRcXHhCNVxceEI2XFx4QjdcXHhCOFxceEI5XFx4RjdcXHhCQlxceEJDXFx4QkRcXHhCRVxceEJGXFx1MDVCMFxcdTA1QjFcXHUwNUIyXFx1MDVCM1xcdTA1QjRcXHUwNUI1XFx1MDVCNlxcdTA1QjdcXHUwNUI4XFx1MDVCOVxcdTA1QkFcXHUwNUJCXFx1MDVCQ1xcdTA1QkRcXHUwNUJFXFx1MDVCRlxcdTA1QzBcXHUwNUMxXFx1MDVDMlxcdTA1QzNcXHUwNUYwXFx1MDVGMVxcdTA1RjJcXHUwNUYzXFx1MDVGNFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHUwNUQwXFx1MDVEMVxcdTA1RDJcXHUwNUQzXFx1MDVENFxcdTA1RDVcXHUwNUQ2XFx1MDVEN1xcdTA1RDhcXHUwNUQ5XFx1MDVEQVxcdTA1REJcXHUwNURDXFx1MDVERFxcdTA1REVcXHUwNURGXFx1MDVFMFxcdTA1RTFcXHUwNUUyXFx1MDVFM1xcdTA1RTRcXHUwNUU1XFx1MDVFNlxcdTA1RTdcXHUwNUU4XFx1MDVFOVxcdTA1RUFcXHVGRkZEXFx1RkZGRFxcdTIwMEVcXHUyMDBGXFx1RkZGRFwiXG4gICAgICB9LFxuICAgICAgXCJ3aW4xMjU1XCI6IFwid2luZG93czEyNTVcIixcbiAgICAgIFwiY3AxMjU1XCI6IFwid2luZG93czEyNTVcIixcbiAgICAgIFwid2luZG93czEyNTZcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJfc2Jjc1wiLFxuICAgICAgICBcImNoYXJzXCI6IFwiXFx1MjBBQ1xcdTA2N0VcXHUyMDFBXFx1MDE5MlxcdTIwMUVcXHUyMDI2XFx1MjAyMFxcdTIwMjFcXHUwMkM2XFx1MjAzMFxcdTA2NzlcXHUyMDM5XFx1MDE1MlxcdTA2ODZcXHUwNjk4XFx1MDY4OFxcdTA2QUZcXHUyMDE4XFx1MjAxOVxcdTIwMUNcXHUyMDFEXFx1MjAyMlxcdTIwMTNcXHUyMDE0XFx1MDZBOVxcdTIxMjJcXHUwNjkxXFx1MjAzQVxcdTAxNTNcXHUyMDBDXFx1MjAwRFxcdTA2QkFcXHhBMFxcdTA2MENcXHhBMlxceEEzXFx4QTRcXHhBNVxceEE2XFx4QTdcXHhBOFxceEE5XFx1MDZCRVxceEFCXFx4QUNcXHhBRFxceEFFXFx4QUZcXHhCMFxceEIxXFx4QjJcXHhCM1xceEI0XFx4QjVcXHhCNlxceEI3XFx4QjhcXHhCOVxcdTA2MUJcXHhCQlxceEJDXFx4QkRcXHhCRVxcdTA2MUZcXHUwNkMxXFx1MDYyMVxcdTA2MjJcXHUwNjIzXFx1MDYyNFxcdTA2MjVcXHUwNjI2XFx1MDYyN1xcdTA2MjhcXHUwNjI5XFx1MDYyQVxcdTA2MkJcXHUwNjJDXFx1MDYyRFxcdTA2MkVcXHUwNjJGXFx1MDYzMFxcdTA2MzFcXHUwNjMyXFx1MDYzM1xcdTA2MzRcXHUwNjM1XFx1MDYzNlxceEQ3XFx1MDYzN1xcdTA2MzhcXHUwNjM5XFx1MDYzQVxcdTA2NDBcXHUwNjQxXFx1MDY0MlxcdTA2NDNcXHhFMFxcdTA2NDRcXHhFMlxcdTA2NDVcXHUwNjQ2XFx1MDY0N1xcdTA2NDhcXHhFN1xceEU4XFx4RTlcXHhFQVxceEVCXFx1MDY0OVxcdTA2NEFcXHhFRVxceEVGXFx1MDY0QlxcdTA2NENcXHUwNjREXFx1MDY0RVxceEY0XFx1MDY0RlxcdTA2NTBcXHhGN1xcdTA2NTFcXHhGOVxcdTA2NTJcXHhGQlxceEZDXFx1MjAwRVxcdTIwMEZcXHUwNkQyXCJcbiAgICAgIH0sXG4gICAgICBcIndpbjEyNTZcIjogXCJ3aW5kb3dzMTI1NlwiLFxuICAgICAgXCJjcDEyNTZcIjogXCJ3aW5kb3dzMTI1NlwiLFxuICAgICAgXCJ3aW5kb3dzMTI1N1wiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIl9zYmNzXCIsXG4gICAgICAgIFwiY2hhcnNcIjogXCJcXHUyMEFDXFx1RkZGRFxcdTIwMUFcXHVGRkZEXFx1MjAxRVxcdTIwMjZcXHUyMDIwXFx1MjAyMVxcdUZGRkRcXHUyMDMwXFx1RkZGRFxcdTIwMzlcXHVGRkZEXFx4QThcXHUwMkM3XFx4QjhcXHVGRkZEXFx1MjAxOFxcdTIwMTlcXHUyMDFDXFx1MjAxRFxcdTIwMjJcXHUyMDEzXFx1MjAxNFxcdUZGRkRcXHUyMTIyXFx1RkZGRFxcdTIwM0FcXHVGRkZEXFx4QUZcXHUwMkRCXFx1RkZGRFxceEEwXFx1RkZGRFxceEEyXFx4QTNcXHhBNFxcdUZGRkRcXHhBNlxceEE3XFx4RDhcXHhBOVxcdTAxNTZcXHhBQlxceEFDXFx4QURcXHhBRVxceEM2XFx4QjBcXHhCMVxceEIyXFx4QjNcXHhCNFxceEI1XFx4QjZcXHhCN1xceEY4XFx4QjlcXHUwMTU3XFx4QkJcXHhCQ1xceEJEXFx4QkVcXHhFNlxcdTAxMDRcXHUwMTJFXFx1MDEwMFxcdTAxMDZcXHhDNFxceEM1XFx1MDExOFxcdTAxMTJcXHUwMTBDXFx4QzlcXHUwMTc5XFx1MDExNlxcdTAxMjJcXHUwMTM2XFx1MDEyQVxcdTAxM0JcXHUwMTYwXFx1MDE0M1xcdTAxNDVcXHhEM1xcdTAxNENcXHhENVxceEQ2XFx4RDdcXHUwMTcyXFx1MDE0MVxcdTAxNUFcXHUwMTZBXFx4RENcXHUwMTdCXFx1MDE3RFxceERGXFx1MDEwNVxcdTAxMkZcXHUwMTAxXFx1MDEwN1xceEU0XFx4RTVcXHUwMTE5XFx1MDExM1xcdTAxMERcXHhFOVxcdTAxN0FcXHUwMTE3XFx1MDEyM1xcdTAxMzdcXHUwMTJCXFx1MDEzQ1xcdTAxNjFcXHUwMTQ0XFx1MDE0NlxceEYzXFx1MDE0RFxceEY1XFx4RjZcXHhGN1xcdTAxNzNcXHUwMTQyXFx1MDE1QlxcdTAxNkJcXHhGQ1xcdTAxN0NcXHUwMTdFXFx1MDJEOVwiXG4gICAgICB9LFxuICAgICAgXCJ3aW4xMjU3XCI6IFwid2luZG93czEyNTdcIixcbiAgICAgIFwiY3AxMjU3XCI6IFwid2luZG93czEyNTdcIixcbiAgICAgIFwid2luZG93czEyNThcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJfc2Jjc1wiLFxuICAgICAgICBcImNoYXJzXCI6IFwiXFx1MjBBQ1xcdUZGRkRcXHUyMDFBXFx1MDE5MlxcdTIwMUVcXHUyMDI2XFx1MjAyMFxcdTIwMjFcXHUwMkM2XFx1MjAzMFxcdUZGRkRcXHUyMDM5XFx1MDE1MlxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHUyMDE4XFx1MjAxOVxcdTIwMUNcXHUyMDFEXFx1MjAyMlxcdTIwMTNcXHUyMDE0XFx1MDJEQ1xcdTIxMjJcXHVGRkZEXFx1MjAzQVxcdTAxNTNcXHVGRkZEXFx1RkZGRFxcdTAxNzhcXHhBMFxceEExXFx4QTJcXHhBM1xceEE0XFx4QTVcXHhBNlxceEE3XFx4QThcXHhBOVxceEFBXFx4QUJcXHhBQ1xceEFEXFx4QUVcXHhBRlxceEIwXFx4QjFcXHhCMlxceEIzXFx4QjRcXHhCNVxceEI2XFx4QjdcXHhCOFxceEI5XFx4QkFcXHhCQlxceEJDXFx4QkRcXHhCRVxceEJGXFx4QzBcXHhDMVxceEMyXFx1MDEwMlxceEM0XFx4QzVcXHhDNlxceEM3XFx4QzhcXHhDOVxceENBXFx4Q0JcXHUwMzAwXFx4Q0RcXHhDRVxceENGXFx1MDExMFxceEQxXFx1MDMwOVxceEQzXFx4RDRcXHUwMUEwXFx4RDZcXHhEN1xceEQ4XFx4RDlcXHhEQVxceERCXFx4RENcXHUwMUFGXFx1MDMwM1xceERGXFx4RTBcXHhFMVxceEUyXFx1MDEwM1xceEU0XFx4RTVcXHhFNlxceEU3XFx4RThcXHhFOVxceEVBXFx4RUJcXHUwMzAxXFx4RURcXHhFRVxceEVGXFx1MDExMVxceEYxXFx1MDMyM1xceEYzXFx4RjRcXHUwMUExXFx4RjZcXHhGN1xceEY4XFx4RjlcXHhGQVxceEZCXFx4RkNcXHUwMUIwXFx1MjBBQlxceEZGXCJcbiAgICAgIH0sXG4gICAgICBcIndpbjEyNThcIjogXCJ3aW5kb3dzMTI1OFwiLFxuICAgICAgXCJjcDEyNThcIjogXCJ3aW5kb3dzMTI1OFwiLFxuICAgICAgXCJpc284ODU5MVwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIl9zYmNzXCIsXG4gICAgICAgIFwiY2hhcnNcIjogXCJcXHg4MFxceDgxXFx4ODJcXHg4M1xceDg0XFx4ODVcXHg4NlxceDg3XFx4ODhcXHg4OVxceDhBXFx4OEJcXHg4Q1xceDhEXFx4OEVcXHg4RlxceDkwXFx4OTFcXHg5MlxceDkzXFx4OTRcXHg5NVxceDk2XFx4OTdcXHg5OFxceDk5XFx4OUFcXHg5QlxceDlDXFx4OURcXHg5RVxceDlGXFx4QTBcXHhBMVxceEEyXFx4QTNcXHhBNFxceEE1XFx4QTZcXHhBN1xceEE4XFx4QTlcXHhBQVxceEFCXFx4QUNcXHhBRFxceEFFXFx4QUZcXHhCMFxceEIxXFx4QjJcXHhCM1xceEI0XFx4QjVcXHhCNlxceEI3XFx4QjhcXHhCOVxceEJBXFx4QkJcXHhCQ1xceEJEXFx4QkVcXHhCRlxceEMwXFx4QzFcXHhDMlxceEMzXFx4QzRcXHhDNVxceEM2XFx4QzdcXHhDOFxceEM5XFx4Q0FcXHhDQlxceENDXFx4Q0RcXHhDRVxceENGXFx4RDBcXHhEMVxceEQyXFx4RDNcXHhENFxceEQ1XFx4RDZcXHhEN1xceEQ4XFx4RDlcXHhEQVxceERCXFx4RENcXHhERFxceERFXFx4REZcXHhFMFxceEUxXFx4RTJcXHhFM1xceEU0XFx4RTVcXHhFNlxceEU3XFx4RThcXHhFOVxceEVBXFx4RUJcXHhFQ1xceEVEXFx4RUVcXHhFRlxceEYwXFx4RjFcXHhGMlxceEYzXFx4RjRcXHhGNVxceEY2XFx4RjdcXHhGOFxceEY5XFx4RkFcXHhGQlxceEZDXFx4RkRcXHhGRVxceEZGXCJcbiAgICAgIH0sXG4gICAgICBcImNwMjg1OTFcIjogXCJpc284ODU5MVwiLFxuICAgICAgXCJpc284ODU5MlwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIl9zYmNzXCIsXG4gICAgICAgIFwiY2hhcnNcIjogXCJcXHg4MFxceDgxXFx4ODJcXHg4M1xceDg0XFx4ODVcXHg4NlxceDg3XFx4ODhcXHg4OVxceDhBXFx4OEJcXHg4Q1xceDhEXFx4OEVcXHg4RlxceDkwXFx4OTFcXHg5MlxceDkzXFx4OTRcXHg5NVxceDk2XFx4OTdcXHg5OFxceDk5XFx4OUFcXHg5QlxceDlDXFx4OURcXHg5RVxceDlGXFx4QTBcXHUwMTA0XFx1MDJEOFxcdTAxNDFcXHhBNFxcdTAxM0RcXHUwMTVBXFx4QTdcXHhBOFxcdTAxNjBcXHUwMTVFXFx1MDE2NFxcdTAxNzlcXHhBRFxcdTAxN0RcXHUwMTdCXFx4QjBcXHUwMTA1XFx1MDJEQlxcdTAxNDJcXHhCNFxcdTAxM0VcXHUwMTVCXFx1MDJDN1xceEI4XFx1MDE2MVxcdTAxNUZcXHUwMTY1XFx1MDE3QVxcdTAyRERcXHUwMTdFXFx1MDE3Q1xcdTAxNTRcXHhDMVxceEMyXFx1MDEwMlxceEM0XFx1MDEzOVxcdTAxMDZcXHhDN1xcdTAxMENcXHhDOVxcdTAxMThcXHhDQlxcdTAxMUFcXHhDRFxceENFXFx1MDEwRVxcdTAxMTBcXHUwMTQzXFx1MDE0N1xceEQzXFx4RDRcXHUwMTUwXFx4RDZcXHhEN1xcdTAxNThcXHUwMTZFXFx4REFcXHUwMTcwXFx4RENcXHhERFxcdTAxNjJcXHhERlxcdTAxNTVcXHhFMVxceEUyXFx1MDEwM1xceEU0XFx1MDEzQVxcdTAxMDdcXHhFN1xcdTAxMERcXHhFOVxcdTAxMTlcXHhFQlxcdTAxMUJcXHhFRFxceEVFXFx1MDEwRlxcdTAxMTFcXHUwMTQ0XFx1MDE0OFxceEYzXFx4RjRcXHUwMTUxXFx4RjZcXHhGN1xcdTAxNTlcXHUwMTZGXFx4RkFcXHUwMTcxXFx4RkNcXHhGRFxcdTAxNjNcXHUwMkQ5XCJcbiAgICAgIH0sXG4gICAgICBcImNwMjg1OTJcIjogXCJpc284ODU5MlwiLFxuICAgICAgXCJpc284ODU5M1wiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIl9zYmNzXCIsXG4gICAgICAgIFwiY2hhcnNcIjogXCJcXHg4MFxceDgxXFx4ODJcXHg4M1xceDg0XFx4ODVcXHg4NlxceDg3XFx4ODhcXHg4OVxceDhBXFx4OEJcXHg4Q1xceDhEXFx4OEVcXHg4RlxceDkwXFx4OTFcXHg5MlxceDkzXFx4OTRcXHg5NVxceDk2XFx4OTdcXHg5OFxceDk5XFx4OUFcXHg5QlxceDlDXFx4OURcXHg5RVxceDlGXFx4QTBcXHUwMTI2XFx1MDJEOFxceEEzXFx4QTRcXHVGRkZEXFx1MDEyNFxceEE3XFx4QThcXHUwMTMwXFx1MDE1RVxcdTAxMUVcXHUwMTM0XFx4QURcXHVGRkZEXFx1MDE3QlxceEIwXFx1MDEyN1xceEIyXFx4QjNcXHhCNFxceEI1XFx1MDEyNVxceEI3XFx4QjhcXHUwMTMxXFx1MDE1RlxcdTAxMUZcXHUwMTM1XFx4QkRcXHVGRkZEXFx1MDE3Q1xceEMwXFx4QzFcXHhDMlxcdUZGRkRcXHhDNFxcdTAxMEFcXHUwMTA4XFx4QzdcXHhDOFxceEM5XFx4Q0FcXHhDQlxceENDXFx4Q0RcXHhDRVxceENGXFx1RkZGRFxceEQxXFx4RDJcXHhEM1xceEQ0XFx1MDEyMFxceEQ2XFx4RDdcXHUwMTFDXFx4RDlcXHhEQVxceERCXFx4RENcXHUwMTZDXFx1MDE1Q1xceERGXFx4RTBcXHhFMVxceEUyXFx1RkZGRFxceEU0XFx1MDEwQlxcdTAxMDlcXHhFN1xceEU4XFx4RTlcXHhFQVxceEVCXFx4RUNcXHhFRFxceEVFXFx4RUZcXHVGRkZEXFx4RjFcXHhGMlxceEYzXFx4RjRcXHUwMTIxXFx4RjZcXHhGN1xcdTAxMURcXHhGOVxceEZBXFx4RkJcXHhGQ1xcdTAxNkRcXHUwMTVEXFx1MDJEOVwiXG4gICAgICB9LFxuICAgICAgXCJjcDI4NTkzXCI6IFwiaXNvODg1OTNcIixcbiAgICAgIFwiaXNvODg1OTRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJfc2Jjc1wiLFxuICAgICAgICBcImNoYXJzXCI6IFwiXFx4ODBcXHg4MVxceDgyXFx4ODNcXHg4NFxceDg1XFx4ODZcXHg4N1xceDg4XFx4ODlcXHg4QVxceDhCXFx4OENcXHg4RFxceDhFXFx4OEZcXHg5MFxceDkxXFx4OTJcXHg5M1xceDk0XFx4OTVcXHg5NlxceDk3XFx4OThcXHg5OVxceDlBXFx4OUJcXHg5Q1xceDlEXFx4OUVcXHg5RlxceEEwXFx1MDEwNFxcdTAxMzhcXHUwMTU2XFx4QTRcXHUwMTI4XFx1MDEzQlxceEE3XFx4QThcXHUwMTYwXFx1MDExMlxcdTAxMjJcXHUwMTY2XFx4QURcXHUwMTdEXFx4QUZcXHhCMFxcdTAxMDVcXHUwMkRCXFx1MDE1N1xceEI0XFx1MDEyOVxcdTAxM0NcXHUwMkM3XFx4QjhcXHUwMTYxXFx1MDExM1xcdTAxMjNcXHUwMTY3XFx1MDE0QVxcdTAxN0VcXHUwMTRCXFx1MDEwMFxceEMxXFx4QzJcXHhDM1xceEM0XFx4QzVcXHhDNlxcdTAxMkVcXHUwMTBDXFx4QzlcXHUwMTE4XFx4Q0JcXHUwMTE2XFx4Q0RcXHhDRVxcdTAxMkFcXHUwMTEwXFx1MDE0NVxcdTAxNENcXHUwMTM2XFx4RDRcXHhENVxceEQ2XFx4RDdcXHhEOFxcdTAxNzJcXHhEQVxceERCXFx4RENcXHUwMTY4XFx1MDE2QVxceERGXFx1MDEwMVxceEUxXFx4RTJcXHhFM1xceEU0XFx4RTVcXHhFNlxcdTAxMkZcXHUwMTBEXFx4RTlcXHUwMTE5XFx4RUJcXHUwMTE3XFx4RURcXHhFRVxcdTAxMkJcXHUwMTExXFx1MDE0NlxcdTAxNERcXHUwMTM3XFx4RjRcXHhGNVxceEY2XFx4RjdcXHhGOFxcdTAxNzNcXHhGQVxceEZCXFx4RkNcXHUwMTY5XFx1MDE2QlxcdTAyRDlcIlxuICAgICAgfSxcbiAgICAgIFwiY3AyODU5NFwiOiBcImlzbzg4NTk0XCIsXG4gICAgICBcImlzbzg4NTk1XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwiX3NiY3NcIixcbiAgICAgICAgXCJjaGFyc1wiOiBcIlxceDgwXFx4ODFcXHg4MlxceDgzXFx4ODRcXHg4NVxceDg2XFx4ODdcXHg4OFxceDg5XFx4OEFcXHg4QlxceDhDXFx4OERcXHg4RVxceDhGXFx4OTBcXHg5MVxceDkyXFx4OTNcXHg5NFxceDk1XFx4OTZcXHg5N1xceDk4XFx4OTlcXHg5QVxceDlCXFx4OUNcXHg5RFxceDlFXFx4OUZcXHhBMFxcdTA0MDFcXHUwNDAyXFx1MDQwM1xcdTA0MDRcXHUwNDA1XFx1MDQwNlxcdTA0MDdcXHUwNDA4XFx1MDQwOVxcdTA0MEFcXHUwNDBCXFx1MDQwQ1xceEFEXFx1MDQwRVxcdTA0MEZcXHUwNDEwXFx1MDQxMVxcdTA0MTJcXHUwNDEzXFx1MDQxNFxcdTA0MTVcXHUwNDE2XFx1MDQxN1xcdTA0MThcXHUwNDE5XFx1MDQxQVxcdTA0MUJcXHUwNDFDXFx1MDQxRFxcdTA0MUVcXHUwNDFGXFx1MDQyMFxcdTA0MjFcXHUwNDIyXFx1MDQyM1xcdTA0MjRcXHUwNDI1XFx1MDQyNlxcdTA0MjdcXHUwNDI4XFx1MDQyOVxcdTA0MkFcXHUwNDJCXFx1MDQyQ1xcdTA0MkRcXHUwNDJFXFx1MDQyRlxcdTA0MzBcXHUwNDMxXFx1MDQzMlxcdTA0MzNcXHUwNDM0XFx1MDQzNVxcdTA0MzZcXHUwNDM3XFx1MDQzOFxcdTA0MzlcXHUwNDNBXFx1MDQzQlxcdTA0M0NcXHUwNDNEXFx1MDQzRVxcdTA0M0ZcXHUwNDQwXFx1MDQ0MVxcdTA0NDJcXHUwNDQzXFx1MDQ0NFxcdTA0NDVcXHUwNDQ2XFx1MDQ0N1xcdTA0NDhcXHUwNDQ5XFx1MDQ0QVxcdTA0NEJcXHUwNDRDXFx1MDQ0RFxcdTA0NEVcXHUwNDRGXFx1MjExNlxcdTA0NTFcXHUwNDUyXFx1MDQ1M1xcdTA0NTRcXHUwNDU1XFx1MDQ1NlxcdTA0NTdcXHUwNDU4XFx1MDQ1OVxcdTA0NUFcXHUwNDVCXFx1MDQ1Q1xceEE3XFx1MDQ1RVxcdTA0NUZcIlxuICAgICAgfSxcbiAgICAgIFwiY3AyODU5NVwiOiBcImlzbzg4NTk1XCIsXG4gICAgICBcImlzbzg4NTk2XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwiX3NiY3NcIixcbiAgICAgICAgXCJjaGFyc1wiOiBcIlxceDgwXFx4ODFcXHg4MlxceDgzXFx4ODRcXHg4NVxceDg2XFx4ODdcXHg4OFxceDg5XFx4OEFcXHg4QlxceDhDXFx4OERcXHg4RVxceDhGXFx4OTBcXHg5MVxceDkyXFx4OTNcXHg5NFxceDk1XFx4OTZcXHg5N1xceDk4XFx4OTlcXHg5QVxceDlCXFx4OUNcXHg5RFxceDlFXFx4OUZcXHhBMFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxceEE0XFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdTA2MENcXHhBRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHUwNjFCXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1MDYxRlxcdUZGRkRcXHUwNjIxXFx1MDYyMlxcdTA2MjNcXHUwNjI0XFx1MDYyNVxcdTA2MjZcXHUwNjI3XFx1MDYyOFxcdTA2MjlcXHUwNjJBXFx1MDYyQlxcdTA2MkNcXHUwNjJEXFx1MDYyRVxcdTA2MkZcXHUwNjMwXFx1MDYzMVxcdTA2MzJcXHUwNjMzXFx1MDYzNFxcdTA2MzVcXHUwNjM2XFx1MDYzN1xcdTA2MzhcXHUwNjM5XFx1MDYzQVxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1MDY0MFxcdTA2NDFcXHUwNjQyXFx1MDY0M1xcdTA2NDRcXHUwNjQ1XFx1MDY0NlxcdTA2NDdcXHUwNjQ4XFx1MDY0OVxcdTA2NEFcXHUwNjRCXFx1MDY0Q1xcdTA2NERcXHUwNjRFXFx1MDY0RlxcdTA2NTBcXHUwNjUxXFx1MDY1MlxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcIlxuICAgICAgfSxcbiAgICAgIFwiY3AyODU5NlwiOiBcImlzbzg4NTk2XCIsXG4gICAgICBcImlzbzg4NTk3XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwiX3NiY3NcIixcbiAgICAgICAgXCJjaGFyc1wiOiBcIlxceDgwXFx4ODFcXHg4MlxceDgzXFx4ODRcXHg4NVxceDg2XFx4ODdcXHg4OFxceDg5XFx4OEFcXHg4QlxceDhDXFx4OERcXHg4RVxceDhGXFx4OTBcXHg5MVxceDkyXFx4OTNcXHg5NFxceDk1XFx4OTZcXHg5N1xceDk4XFx4OTlcXHg5QVxceDlCXFx4OUNcXHg5RFxceDlFXFx4OUZcXHhBMFxcdTIwMThcXHUyMDE5XFx4QTNcXHUyMEFDXFx1MjBBRlxceEE2XFx4QTdcXHhBOFxceEE5XFx1MDM3QVxceEFCXFx4QUNcXHhBRFxcdUZGRkRcXHUyMDE1XFx4QjBcXHhCMVxceEIyXFx4QjNcXHUwMzg0XFx1MDM4NVxcdTAzODZcXHhCN1xcdTAzODhcXHUwMzg5XFx1MDM4QVxceEJCXFx1MDM4Q1xceEJEXFx1MDM4RVxcdTAzOEZcXHUwMzkwXFx1MDM5MVxcdTAzOTJcXHUwMzkzXFx1MDM5NFxcdTAzOTVcXHUwMzk2XFx1MDM5N1xcdTAzOThcXHUwMzk5XFx1MDM5QVxcdTAzOUJcXHUwMzlDXFx1MDM5RFxcdTAzOUVcXHUwMzlGXFx1MDNBMFxcdTAzQTFcXHVGRkZEXFx1MDNBM1xcdTAzQTRcXHUwM0E1XFx1MDNBNlxcdTAzQTdcXHUwM0E4XFx1MDNBOVxcdTAzQUFcXHUwM0FCXFx1MDNBQ1xcdTAzQURcXHUwM0FFXFx1MDNBRlxcdTAzQjBcXHUwM0IxXFx1MDNCMlxcdTAzQjNcXHUwM0I0XFx1MDNCNVxcdTAzQjZcXHUwM0I3XFx1MDNCOFxcdTAzQjlcXHUwM0JBXFx1MDNCQlxcdTAzQkNcXHUwM0JEXFx1MDNCRVxcdTAzQkZcXHUwM0MwXFx1MDNDMVxcdTAzQzJcXHUwM0MzXFx1MDNDNFxcdTAzQzVcXHUwM0M2XFx1MDNDN1xcdTAzQzhcXHUwM0M5XFx1MDNDQVxcdTAzQ0JcXHUwM0NDXFx1MDNDRFxcdTAzQ0VcXHVGRkZEXCJcbiAgICAgIH0sXG4gICAgICBcImNwMjg1OTdcIjogXCJpc284ODU5N1wiLFxuICAgICAgXCJpc284ODU5OFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIl9zYmNzXCIsXG4gICAgICAgIFwiY2hhcnNcIjogXCJcXHg4MFxceDgxXFx4ODJcXHg4M1xceDg0XFx4ODVcXHg4NlxceDg3XFx4ODhcXHg4OVxceDhBXFx4OEJcXHg4Q1xceDhEXFx4OEVcXHg4RlxceDkwXFx4OTFcXHg5MlxceDkzXFx4OTRcXHg5NVxceDk2XFx4OTdcXHg5OFxceDk5XFx4OUFcXHg5QlxceDlDXFx4OURcXHg5RVxceDlGXFx4QTBcXHVGRkZEXFx4QTJcXHhBM1xceEE0XFx4QTVcXHhBNlxceEE3XFx4QThcXHhBOVxceEQ3XFx4QUJcXHhBQ1xceEFEXFx4QUVcXHhBRlxceEIwXFx4QjFcXHhCMlxceEIzXFx4QjRcXHhCNVxceEI2XFx4QjdcXHhCOFxceEI5XFx4RjdcXHhCQlxceEJDXFx4QkRcXHhCRVxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1MjAxN1xcdTA1RDBcXHUwNUQxXFx1MDVEMlxcdTA1RDNcXHUwNUQ0XFx1MDVENVxcdTA1RDZcXHUwNUQ3XFx1MDVEOFxcdTA1RDlcXHUwNURBXFx1MDVEQlxcdTA1RENcXHUwNUREXFx1MDVERVxcdTA1REZcXHUwNUUwXFx1MDVFMVxcdTA1RTJcXHUwNUUzXFx1MDVFNFxcdTA1RTVcXHUwNUU2XFx1MDVFN1xcdTA1RThcXHUwNUU5XFx1MDVFQVxcdUZGRkRcXHVGRkZEXFx1MjAwRVxcdTIwMEZcXHVGRkZEXCJcbiAgICAgIH0sXG4gICAgICBcImNwMjg1OThcIjogXCJpc284ODU5OFwiLFxuICAgICAgXCJpc284ODU5OVwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIl9zYmNzXCIsXG4gICAgICAgIFwiY2hhcnNcIjogXCJcXHg4MFxceDgxXFx4ODJcXHg4M1xceDg0XFx4ODVcXHg4NlxceDg3XFx4ODhcXHg4OVxceDhBXFx4OEJcXHg4Q1xceDhEXFx4OEVcXHg4RlxceDkwXFx4OTFcXHg5MlxceDkzXFx4OTRcXHg5NVxceDk2XFx4OTdcXHg5OFxceDk5XFx4OUFcXHg5QlxceDlDXFx4OURcXHg5RVxceDlGXFx4QTBcXHhBMVxceEEyXFx4QTNcXHhBNFxceEE1XFx4QTZcXHhBN1xceEE4XFx4QTlcXHhBQVxceEFCXFx4QUNcXHhBRFxceEFFXFx4QUZcXHhCMFxceEIxXFx4QjJcXHhCM1xceEI0XFx4QjVcXHhCNlxceEI3XFx4QjhcXHhCOVxceEJBXFx4QkJcXHhCQ1xceEJEXFx4QkVcXHhCRlxceEMwXFx4QzFcXHhDMlxceEMzXFx4QzRcXHhDNVxceEM2XFx4QzdcXHhDOFxceEM5XFx4Q0FcXHhDQlxceENDXFx4Q0RcXHhDRVxceENGXFx1MDExRVxceEQxXFx4RDJcXHhEM1xceEQ0XFx4RDVcXHhENlxceEQ3XFx4RDhcXHhEOVxceERBXFx4REJcXHhEQ1xcdTAxMzBcXHUwMTVFXFx4REZcXHhFMFxceEUxXFx4RTJcXHhFM1xceEU0XFx4RTVcXHhFNlxceEU3XFx4RThcXHhFOVxceEVBXFx4RUJcXHhFQ1xceEVEXFx4RUVcXHhFRlxcdTAxMUZcXHhGMVxceEYyXFx4RjNcXHhGNFxceEY1XFx4RjZcXHhGN1xceEY4XFx4RjlcXHhGQVxceEZCXFx4RkNcXHUwMTMxXFx1MDE1RlxceEZGXCJcbiAgICAgIH0sXG4gICAgICBcImNwMjg1OTlcIjogXCJpc284ODU5OVwiLFxuICAgICAgXCJpc284ODU5MTBcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJfc2Jjc1wiLFxuICAgICAgICBcImNoYXJzXCI6IFwiXFx4ODBcXHg4MVxceDgyXFx4ODNcXHg4NFxceDg1XFx4ODZcXHg4N1xceDg4XFx4ODlcXHg4QVxceDhCXFx4OENcXHg4RFxceDhFXFx4OEZcXHg5MFxceDkxXFx4OTJcXHg5M1xceDk0XFx4OTVcXHg5NlxceDk3XFx4OThcXHg5OVxceDlBXFx4OUJcXHg5Q1xceDlEXFx4OUVcXHg5RlxceEEwXFx1MDEwNFxcdTAxMTJcXHUwMTIyXFx1MDEyQVxcdTAxMjhcXHUwMTM2XFx4QTdcXHUwMTNCXFx1MDExMFxcdTAxNjBcXHUwMTY2XFx1MDE3RFxceEFEXFx1MDE2QVxcdTAxNEFcXHhCMFxcdTAxMDVcXHUwMTEzXFx1MDEyM1xcdTAxMkJcXHUwMTI5XFx1MDEzN1xceEI3XFx1MDEzQ1xcdTAxMTFcXHUwMTYxXFx1MDE2N1xcdTAxN0VcXHUyMDE1XFx1MDE2QlxcdTAxNEJcXHUwMTAwXFx4QzFcXHhDMlxceEMzXFx4QzRcXHhDNVxceEM2XFx1MDEyRVxcdTAxMENcXHhDOVxcdTAxMThcXHhDQlxcdTAxMTZcXHhDRFxceENFXFx4Q0ZcXHhEMFxcdTAxNDVcXHUwMTRDXFx4RDNcXHhENFxceEQ1XFx4RDZcXHUwMTY4XFx4RDhcXHUwMTcyXFx4REFcXHhEQlxceERDXFx4RERcXHhERVxceERGXFx1MDEwMVxceEUxXFx4RTJcXHhFM1xceEU0XFx4RTVcXHhFNlxcdTAxMkZcXHUwMTBEXFx4RTlcXHUwMTE5XFx4RUJcXHUwMTE3XFx4RURcXHhFRVxceEVGXFx4RjBcXHUwMTQ2XFx1MDE0RFxceEYzXFx4RjRcXHhGNVxceEY2XFx1MDE2OVxceEY4XFx1MDE3M1xceEZBXFx4RkJcXHhGQ1xceEZEXFx4RkVcXHUwMTM4XCJcbiAgICAgIH0sXG4gICAgICBcImNwMjg2MDBcIjogXCJpc284ODU5MTBcIixcbiAgICAgIFwiaXNvODg1OTExXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwiX3NiY3NcIixcbiAgICAgICAgXCJjaGFyc1wiOiBcIlxceDgwXFx4ODFcXHg4MlxceDgzXFx4ODRcXHg4NVxceDg2XFx4ODdcXHg4OFxceDg5XFx4OEFcXHg4QlxceDhDXFx4OERcXHg4RVxceDhGXFx4OTBcXHg5MVxceDkyXFx4OTNcXHg5NFxceDk1XFx4OTZcXHg5N1xceDk4XFx4OTlcXHg5QVxceDlCXFx4OUNcXHg5RFxceDlFXFx4OUZcXHhBMFxcdTBFMDFcXHUwRTAyXFx1MEUwM1xcdTBFMDRcXHUwRTA1XFx1MEUwNlxcdTBFMDdcXHUwRTA4XFx1MEUwOVxcdTBFMEFcXHUwRTBCXFx1MEUwQ1xcdTBFMERcXHUwRTBFXFx1MEUwRlxcdTBFMTBcXHUwRTExXFx1MEUxMlxcdTBFMTNcXHUwRTE0XFx1MEUxNVxcdTBFMTZcXHUwRTE3XFx1MEUxOFxcdTBFMTlcXHUwRTFBXFx1MEUxQlxcdTBFMUNcXHUwRTFEXFx1MEUxRVxcdTBFMUZcXHUwRTIwXFx1MEUyMVxcdTBFMjJcXHUwRTIzXFx1MEUyNFxcdTBFMjVcXHUwRTI2XFx1MEUyN1xcdTBFMjhcXHUwRTI5XFx1MEUyQVxcdTBFMkJcXHUwRTJDXFx1MEUyRFxcdTBFMkVcXHUwRTJGXFx1MEUzMFxcdTBFMzFcXHUwRTMyXFx1MEUzM1xcdTBFMzRcXHUwRTM1XFx1MEUzNlxcdTBFMzdcXHUwRTM4XFx1MEUzOVxcdTBFM0FcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1MEUzRlxcdTBFNDBcXHUwRTQxXFx1MEU0MlxcdTBFNDNcXHUwRTQ0XFx1MEU0NVxcdTBFNDZcXHUwRTQ3XFx1MEU0OFxcdTBFNDlcXHUwRTRBXFx1MEU0QlxcdTBFNENcXHUwRTREXFx1MEU0RVxcdTBFNEZcXHUwRTUwXFx1MEU1MVxcdTBFNTJcXHUwRTUzXFx1MEU1NFxcdTBFNTVcXHUwRTU2XFx1MEU1N1xcdTBFNThcXHUwRTU5XFx1MEU1QVxcdTBFNUJcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXCJcbiAgICAgIH0sXG4gICAgICBcImNwMjg2MDFcIjogXCJpc284ODU5MTFcIixcbiAgICAgIFwiaXNvODg1OTEzXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwiX3NiY3NcIixcbiAgICAgICAgXCJjaGFyc1wiOiBcIlxceDgwXFx4ODFcXHg4MlxceDgzXFx4ODRcXHg4NVxceDg2XFx4ODdcXHg4OFxceDg5XFx4OEFcXHg4QlxceDhDXFx4OERcXHg4RVxceDhGXFx4OTBcXHg5MVxceDkyXFx4OTNcXHg5NFxceDk1XFx4OTZcXHg5N1xceDk4XFx4OTlcXHg5QVxceDlCXFx4OUNcXHg5RFxceDlFXFx4OUZcXHhBMFxcdTIwMURcXHhBMlxceEEzXFx4QTRcXHUyMDFFXFx4QTZcXHhBN1xceEQ4XFx4QTlcXHUwMTU2XFx4QUJcXHhBQ1xceEFEXFx4QUVcXHhDNlxceEIwXFx4QjFcXHhCMlxceEIzXFx1MjAxQ1xceEI1XFx4QjZcXHhCN1xceEY4XFx4QjlcXHUwMTU3XFx4QkJcXHhCQ1xceEJEXFx4QkVcXHhFNlxcdTAxMDRcXHUwMTJFXFx1MDEwMFxcdTAxMDZcXHhDNFxceEM1XFx1MDExOFxcdTAxMTJcXHUwMTBDXFx4QzlcXHUwMTc5XFx1MDExNlxcdTAxMjJcXHUwMTM2XFx1MDEyQVxcdTAxM0JcXHUwMTYwXFx1MDE0M1xcdTAxNDVcXHhEM1xcdTAxNENcXHhENVxceEQ2XFx4RDdcXHUwMTcyXFx1MDE0MVxcdTAxNUFcXHUwMTZBXFx4RENcXHUwMTdCXFx1MDE3RFxceERGXFx1MDEwNVxcdTAxMkZcXHUwMTAxXFx1MDEwN1xceEU0XFx4RTVcXHUwMTE5XFx1MDExM1xcdTAxMERcXHhFOVxcdTAxN0FcXHUwMTE3XFx1MDEyM1xcdTAxMzdcXHUwMTJCXFx1MDEzQ1xcdTAxNjFcXHUwMTQ0XFx1MDE0NlxceEYzXFx1MDE0RFxceEY1XFx4RjZcXHhGN1xcdTAxNzNcXHUwMTQyXFx1MDE1QlxcdTAxNkJcXHhGQ1xcdTAxN0NcXHUwMTdFXFx1MjAxOVwiXG4gICAgICB9LFxuICAgICAgXCJjcDI4NjAzXCI6IFwiaXNvODg1OTEzXCIsXG4gICAgICBcImlzbzg4NTkxNFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIl9zYmNzXCIsXG4gICAgICAgIFwiY2hhcnNcIjogXCJcXHg4MFxceDgxXFx4ODJcXHg4M1xceDg0XFx4ODVcXHg4NlxceDg3XFx4ODhcXHg4OVxceDhBXFx4OEJcXHg4Q1xceDhEXFx4OEVcXHg4RlxceDkwXFx4OTFcXHg5MlxceDkzXFx4OTRcXHg5NVxceDk2XFx4OTdcXHg5OFxceDk5XFx4OUFcXHg5QlxceDlDXFx4OURcXHg5RVxceDlGXFx4QTBcXHUxRTAyXFx1MUUwM1xceEEzXFx1MDEwQVxcdTAxMEJcXHUxRTBBXFx4QTdcXHUxRTgwXFx4QTlcXHUxRTgyXFx1MUUwQlxcdTFFRjJcXHhBRFxceEFFXFx1MDE3OFxcdTFFMUVcXHUxRTFGXFx1MDEyMFxcdTAxMjFcXHUxRTQwXFx1MUU0MVxceEI2XFx1MUU1NlxcdTFFODFcXHUxRTU3XFx1MUU4M1xcdTFFNjBcXHUxRUYzXFx1MUU4NFxcdTFFODVcXHUxRTYxXFx4QzBcXHhDMVxceEMyXFx4QzNcXHhDNFxceEM1XFx4QzZcXHhDN1xceEM4XFx4QzlcXHhDQVxceENCXFx4Q0NcXHhDRFxceENFXFx4Q0ZcXHUwMTc0XFx4RDFcXHhEMlxceEQzXFx4RDRcXHhENVxceEQ2XFx1MUU2QVxceEQ4XFx4RDlcXHhEQVxceERCXFx4RENcXHhERFxcdTAxNzZcXHhERlxceEUwXFx4RTFcXHhFMlxceEUzXFx4RTRcXHhFNVxceEU2XFx4RTdcXHhFOFxceEU5XFx4RUFcXHhFQlxceEVDXFx4RURcXHhFRVxceEVGXFx1MDE3NVxceEYxXFx4RjJcXHhGM1xceEY0XFx4RjVcXHhGNlxcdTFFNkJcXHhGOFxceEY5XFx4RkFcXHhGQlxceEZDXFx4RkRcXHUwMTc3XFx4RkZcIlxuICAgICAgfSxcbiAgICAgIFwiY3AyODYwNFwiOiBcImlzbzg4NTkxNFwiLFxuICAgICAgXCJpc284ODU5MTVcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJfc2Jjc1wiLFxuICAgICAgICBcImNoYXJzXCI6IFwiXFx4ODBcXHg4MVxceDgyXFx4ODNcXHg4NFxceDg1XFx4ODZcXHg4N1xceDg4XFx4ODlcXHg4QVxceDhCXFx4OENcXHg4RFxceDhFXFx4OEZcXHg5MFxceDkxXFx4OTJcXHg5M1xceDk0XFx4OTVcXHg5NlxceDk3XFx4OThcXHg5OVxceDlBXFx4OUJcXHg5Q1xceDlEXFx4OUVcXHg5RlxceEEwXFx4QTFcXHhBMlxceEEzXFx1MjBBQ1xceEE1XFx1MDE2MFxceEE3XFx1MDE2MVxceEE5XFx4QUFcXHhBQlxceEFDXFx4QURcXHhBRVxceEFGXFx4QjBcXHhCMVxceEIyXFx4QjNcXHUwMTdEXFx4QjVcXHhCNlxceEI3XFx1MDE3RVxceEI5XFx4QkFcXHhCQlxcdTAxNTJcXHUwMTUzXFx1MDE3OFxceEJGXFx4QzBcXHhDMVxceEMyXFx4QzNcXHhDNFxceEM1XFx4QzZcXHhDN1xceEM4XFx4QzlcXHhDQVxceENCXFx4Q0NcXHhDRFxceENFXFx4Q0ZcXHhEMFxceEQxXFx4RDJcXHhEM1xceEQ0XFx4RDVcXHhENlxceEQ3XFx4RDhcXHhEOVxceERBXFx4REJcXHhEQ1xceEREXFx4REVcXHhERlxceEUwXFx4RTFcXHhFMlxceEUzXFx4RTRcXHhFNVxceEU2XFx4RTdcXHhFOFxceEU5XFx4RUFcXHhFQlxceEVDXFx4RURcXHhFRVxceEVGXFx4RjBcXHhGMVxceEYyXFx4RjNcXHhGNFxceEY1XFx4RjZcXHhGN1xceEY4XFx4RjlcXHhGQVxceEZCXFx4RkNcXHhGRFxceEZFXFx4RkZcIlxuICAgICAgfSxcbiAgICAgIFwiY3AyODYwNVwiOiBcImlzbzg4NTkxNVwiLFxuICAgICAgXCJpc284ODU5MTZcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJfc2Jjc1wiLFxuICAgICAgICBcImNoYXJzXCI6IFwiXFx4ODBcXHg4MVxceDgyXFx4ODNcXHg4NFxceDg1XFx4ODZcXHg4N1xceDg4XFx4ODlcXHg4QVxceDhCXFx4OENcXHg4RFxceDhFXFx4OEZcXHg5MFxceDkxXFx4OTJcXHg5M1xceDk0XFx4OTVcXHg5NlxceDk3XFx4OThcXHg5OVxceDlBXFx4OUJcXHg5Q1xceDlEXFx4OUVcXHg5RlxceEEwXFx1MDEwNFxcdTAxMDVcXHUwMTQxXFx1MjBBQ1xcdTIwMUVcXHUwMTYwXFx4QTdcXHUwMTYxXFx4QTlcXHUwMjE4XFx4QUJcXHUwMTc5XFx4QURcXHUwMTdBXFx1MDE3QlxceEIwXFx4QjFcXHUwMTBDXFx1MDE0MlxcdTAxN0RcXHUyMDFEXFx4QjZcXHhCN1xcdTAxN0VcXHUwMTBEXFx1MDIxOVxceEJCXFx1MDE1MlxcdTAxNTNcXHUwMTc4XFx1MDE3Q1xceEMwXFx4QzFcXHhDMlxcdTAxMDJcXHhDNFxcdTAxMDZcXHhDNlxceEM3XFx4QzhcXHhDOVxceENBXFx4Q0JcXHhDQ1xceENEXFx4Q0VcXHhDRlxcdTAxMTBcXHUwMTQzXFx4RDJcXHhEM1xceEQ0XFx1MDE1MFxceEQ2XFx1MDE1QVxcdTAxNzBcXHhEOVxceERBXFx4REJcXHhEQ1xcdTAxMThcXHUwMjFBXFx4REZcXHhFMFxceEUxXFx4RTJcXHUwMTAzXFx4RTRcXHUwMTA3XFx4RTZcXHhFN1xceEU4XFx4RTlcXHhFQVxceEVCXFx4RUNcXHhFRFxceEVFXFx4RUZcXHUwMTExXFx1MDE0NFxceEYyXFx4RjNcXHhGNFxcdTAxNTFcXHhGNlxcdTAxNUJcXHUwMTcxXFx4RjlcXHhGQVxceEZCXFx4RkNcXHUwMTE5XFx1MDIxQlxceEZGXCJcbiAgICAgIH0sXG4gICAgICBcImNwMjg2MDZcIjogXCJpc284ODU5MTZcIixcbiAgICAgIFwiY3A0MzdcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJfc2Jjc1wiLFxuICAgICAgICBcImNoYXJzXCI6IFwiXFx4QzdcXHhGQ1xceEU5XFx4RTJcXHhFNFxceEUwXFx4RTVcXHhFN1xceEVBXFx4RUJcXHhFOFxceEVGXFx4RUVcXHhFQ1xceEM0XFx4QzVcXHhDOVxceEU2XFx4QzZcXHhGNFxceEY2XFx4RjJcXHhGQlxceEY5XFx4RkZcXHhENlxceERDXFx4QTJcXHhBM1xceEE1XFx1MjBBN1xcdTAxOTJcXHhFMVxceEVEXFx4RjNcXHhGQVxceEYxXFx4RDFcXHhBQVxceEJBXFx4QkZcXHUyMzEwXFx4QUNcXHhCRFxceEJDXFx4QTFcXHhBQlxceEJCXFx1MjU5MVxcdTI1OTJcXHUyNTkzXFx1MjUwMlxcdTI1MjRcXHUyNTYxXFx1MjU2MlxcdTI1NTZcXHUyNTU1XFx1MjU2M1xcdTI1NTFcXHUyNTU3XFx1MjU1RFxcdTI1NUNcXHUyNTVCXFx1MjUxMFxcdTI1MTRcXHUyNTM0XFx1MjUyQ1xcdTI1MUNcXHUyNTAwXFx1MjUzQ1xcdTI1NUVcXHUyNTVGXFx1MjU1QVxcdTI1NTRcXHUyNTY5XFx1MjU2NlxcdTI1NjBcXHUyNTUwXFx1MjU2Q1xcdTI1NjdcXHUyNTY4XFx1MjU2NFxcdTI1NjVcXHUyNTU5XFx1MjU1OFxcdTI1NTJcXHUyNTUzXFx1MjU2QlxcdTI1NkFcXHUyNTE4XFx1MjUwQ1xcdTI1ODhcXHUyNTg0XFx1MjU4Q1xcdTI1OTBcXHUyNTgwXFx1MDNCMVxceERGXFx1MDM5M1xcdTAzQzBcXHUwM0EzXFx1MDNDM1xceEI1XFx1MDNDNFxcdTAzQTZcXHUwMzk4XFx1MDNBOVxcdTAzQjRcXHUyMjFFXFx1MDNDNlxcdTAzQjVcXHUyMjI5XFx1MjI2MVxceEIxXFx1MjI2NVxcdTIyNjRcXHUyMzIwXFx1MjMyMVxceEY3XFx1MjI0OFxceEIwXFx1MjIxOVxceEI3XFx1MjIxQVxcdTIwN0ZcXHhCMlxcdTI1QTBcXHhBMFwiXG4gICAgICB9LFxuICAgICAgXCJpYm00MzdcIjogXCJjcDQzN1wiLFxuICAgICAgXCJjc2libTQzN1wiOiBcImNwNDM3XCIsXG4gICAgICBcImNwNzM3XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwiX3NiY3NcIixcbiAgICAgICAgXCJjaGFyc1wiOiBcIlxcdTAzOTFcXHUwMzkyXFx1MDM5M1xcdTAzOTRcXHUwMzk1XFx1MDM5NlxcdTAzOTdcXHUwMzk4XFx1MDM5OVxcdTAzOUFcXHUwMzlCXFx1MDM5Q1xcdTAzOURcXHUwMzlFXFx1MDM5RlxcdTAzQTBcXHUwM0ExXFx1MDNBM1xcdTAzQTRcXHUwM0E1XFx1MDNBNlxcdTAzQTdcXHUwM0E4XFx1MDNBOVxcdTAzQjFcXHUwM0IyXFx1MDNCM1xcdTAzQjRcXHUwM0I1XFx1MDNCNlxcdTAzQjdcXHUwM0I4XFx1MDNCOVxcdTAzQkFcXHUwM0JCXFx1MDNCQ1xcdTAzQkRcXHUwM0JFXFx1MDNCRlxcdTAzQzBcXHUwM0MxXFx1MDNDM1xcdTAzQzJcXHUwM0M0XFx1MDNDNVxcdTAzQzZcXHUwM0M3XFx1MDNDOFxcdTI1OTFcXHUyNTkyXFx1MjU5M1xcdTI1MDJcXHUyNTI0XFx1MjU2MVxcdTI1NjJcXHUyNTU2XFx1MjU1NVxcdTI1NjNcXHUyNTUxXFx1MjU1N1xcdTI1NURcXHUyNTVDXFx1MjU1QlxcdTI1MTBcXHUyNTE0XFx1MjUzNFxcdTI1MkNcXHUyNTFDXFx1MjUwMFxcdTI1M0NcXHUyNTVFXFx1MjU1RlxcdTI1NUFcXHUyNTU0XFx1MjU2OVxcdTI1NjZcXHUyNTYwXFx1MjU1MFxcdTI1NkNcXHUyNTY3XFx1MjU2OFxcdTI1NjRcXHUyNTY1XFx1MjU1OVxcdTI1NThcXHUyNTUyXFx1MjU1M1xcdTI1NkJcXHUyNTZBXFx1MjUxOFxcdTI1MENcXHUyNTg4XFx1MjU4NFxcdTI1OENcXHUyNTkwXFx1MjU4MFxcdTAzQzlcXHUwM0FDXFx1MDNBRFxcdTAzQUVcXHUwM0NBXFx1MDNBRlxcdTAzQ0NcXHUwM0NEXFx1MDNDQlxcdTAzQ0VcXHUwMzg2XFx1MDM4OFxcdTAzODlcXHUwMzhBXFx1MDM4Q1xcdTAzOEVcXHUwMzhGXFx4QjFcXHUyMjY1XFx1MjI2NFxcdTAzQUFcXHUwM0FCXFx4RjdcXHUyMjQ4XFx4QjBcXHUyMjE5XFx4QjdcXHUyMjFBXFx1MjA3RlxceEIyXFx1MjVBMFxceEEwXCJcbiAgICAgIH0sXG4gICAgICBcImlibTczN1wiOiBcImNwNzM3XCIsXG4gICAgICBcImNzaWJtNzM3XCI6IFwiY3A3MzdcIixcbiAgICAgIFwiY3A3NzVcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJfc2Jjc1wiLFxuICAgICAgICBcImNoYXJzXCI6IFwiXFx1MDEwNlxceEZDXFx4RTlcXHUwMTAxXFx4RTRcXHUwMTIzXFx4RTVcXHUwMTA3XFx1MDE0MlxcdTAxMTNcXHUwMTU2XFx1MDE1N1xcdTAxMkJcXHUwMTc5XFx4QzRcXHhDNVxceEM5XFx4RTZcXHhDNlxcdTAxNERcXHhGNlxcdTAxMjJcXHhBMlxcdTAxNUFcXHUwMTVCXFx4RDZcXHhEQ1xceEY4XFx4QTNcXHhEOFxceEQ3XFx4QTRcXHUwMTAwXFx1MDEyQVxceEYzXFx1MDE3QlxcdTAxN0NcXHUwMTdBXFx1MjAxRFxceEE2XFx4QTlcXHhBRVxceEFDXFx4QkRcXHhCQ1xcdTAxNDFcXHhBQlxceEJCXFx1MjU5MVxcdTI1OTJcXHUyNTkzXFx1MjUwMlxcdTI1MjRcXHUwMTA0XFx1MDEwQ1xcdTAxMThcXHUwMTE2XFx1MjU2M1xcdTI1NTFcXHUyNTU3XFx1MjU1RFxcdTAxMkVcXHUwMTYwXFx1MjUxMFxcdTI1MTRcXHUyNTM0XFx1MjUyQ1xcdTI1MUNcXHUyNTAwXFx1MjUzQ1xcdTAxNzJcXHUwMTZBXFx1MjU1QVxcdTI1NTRcXHUyNTY5XFx1MjU2NlxcdTI1NjBcXHUyNTUwXFx1MjU2Q1xcdTAxN0RcXHUwMTA1XFx1MDEwRFxcdTAxMTlcXHUwMTE3XFx1MDEyRlxcdTAxNjFcXHUwMTczXFx1MDE2QlxcdTAxN0VcXHUyNTE4XFx1MjUwQ1xcdTI1ODhcXHUyNTg0XFx1MjU4Q1xcdTI1OTBcXHUyNTgwXFx4RDNcXHhERlxcdTAxNENcXHUwMTQzXFx4RjVcXHhENVxceEI1XFx1MDE0NFxcdTAxMzZcXHUwMTM3XFx1MDEzQlxcdTAxM0NcXHUwMTQ2XFx1MDExMlxcdTAxNDVcXHUyMDE5XFx4QURcXHhCMVxcdTIwMUNcXHhCRVxceEI2XFx4QTdcXHhGN1xcdTIwMUVcXHhCMFxcdTIyMTlcXHhCN1xceEI5XFx4QjNcXHhCMlxcdTI1QTBcXHhBMFwiXG4gICAgICB9LFxuICAgICAgXCJpYm03NzVcIjogXCJjcDc3NVwiLFxuICAgICAgXCJjc2libTc3NVwiOiBcImNwNzc1XCIsXG4gICAgICBcImNwODUwXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwiX3NiY3NcIixcbiAgICAgICAgXCJjaGFyc1wiOiBcIlxceEM3XFx4RkNcXHhFOVxceEUyXFx4RTRcXHhFMFxceEU1XFx4RTdcXHhFQVxceEVCXFx4RThcXHhFRlxceEVFXFx4RUNcXHhDNFxceEM1XFx4QzlcXHhFNlxceEM2XFx4RjRcXHhGNlxceEYyXFx4RkJcXHhGOVxceEZGXFx4RDZcXHhEQ1xceEY4XFx4QTNcXHhEOFxceEQ3XFx1MDE5MlxceEUxXFx4RURcXHhGM1xceEZBXFx4RjFcXHhEMVxceEFBXFx4QkFcXHhCRlxceEFFXFx4QUNcXHhCRFxceEJDXFx4QTFcXHhBQlxceEJCXFx1MjU5MVxcdTI1OTJcXHUyNTkzXFx1MjUwMlxcdTI1MjRcXHhDMVxceEMyXFx4QzBcXHhBOVxcdTI1NjNcXHUyNTUxXFx1MjU1N1xcdTI1NURcXHhBMlxceEE1XFx1MjUxMFxcdTI1MTRcXHUyNTM0XFx1MjUyQ1xcdTI1MUNcXHUyNTAwXFx1MjUzQ1xceEUzXFx4QzNcXHUyNTVBXFx1MjU1NFxcdTI1NjlcXHUyNTY2XFx1MjU2MFxcdTI1NTBcXHUyNTZDXFx4QTRcXHhGMFxceEQwXFx4Q0FcXHhDQlxceEM4XFx1MDEzMVxceENEXFx4Q0VcXHhDRlxcdTI1MThcXHUyNTBDXFx1MjU4OFxcdTI1ODRcXHhBNlxceENDXFx1MjU4MFxceEQzXFx4REZcXHhENFxceEQyXFx4RjVcXHhENVxceEI1XFx4RkVcXHhERVxceERBXFx4REJcXHhEOVxceEZEXFx4RERcXHhBRlxceEI0XFx4QURcXHhCMVxcdTIwMTdcXHhCRVxceEI2XFx4QTdcXHhGN1xceEI4XFx4QjBcXHhBOFxceEI3XFx4QjlcXHhCM1xceEIyXFx1MjVBMFxceEEwXCJcbiAgICAgIH0sXG4gICAgICBcImlibTg1MFwiOiBcImNwODUwXCIsXG4gICAgICBcImNzaWJtODUwXCI6IFwiY3A4NTBcIixcbiAgICAgIFwiY3A4NTJcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJfc2Jjc1wiLFxuICAgICAgICBcImNoYXJzXCI6IFwiXFx4QzdcXHhGQ1xceEU5XFx4RTJcXHhFNFxcdTAxNkZcXHUwMTA3XFx4RTdcXHUwMTQyXFx4RUJcXHUwMTUwXFx1MDE1MVxceEVFXFx1MDE3OVxceEM0XFx1MDEwNlxceEM5XFx1MDEzOVxcdTAxM0FcXHhGNFxceEY2XFx1MDEzRFxcdTAxM0VcXHUwMTVBXFx1MDE1QlxceEQ2XFx4RENcXHUwMTY0XFx1MDE2NVxcdTAxNDFcXHhEN1xcdTAxMERcXHhFMVxceEVEXFx4RjNcXHhGQVxcdTAxMDRcXHUwMTA1XFx1MDE3RFxcdTAxN0VcXHUwMTE4XFx1MDExOVxceEFDXFx1MDE3QVxcdTAxMENcXHUwMTVGXFx4QUJcXHhCQlxcdTI1OTFcXHUyNTkyXFx1MjU5M1xcdTI1MDJcXHUyNTI0XFx4QzFcXHhDMlxcdTAxMUFcXHUwMTVFXFx1MjU2M1xcdTI1NTFcXHUyNTU3XFx1MjU1RFxcdTAxN0JcXHUwMTdDXFx1MjUxMFxcdTI1MTRcXHUyNTM0XFx1MjUyQ1xcdTI1MUNcXHUyNTAwXFx1MjUzQ1xcdTAxMDJcXHUwMTAzXFx1MjU1QVxcdTI1NTRcXHUyNTY5XFx1MjU2NlxcdTI1NjBcXHUyNTUwXFx1MjU2Q1xceEE0XFx1MDExMVxcdTAxMTBcXHUwMTBFXFx4Q0JcXHUwMTBGXFx1MDE0N1xceENEXFx4Q0VcXHUwMTFCXFx1MjUxOFxcdTI1MENcXHUyNTg4XFx1MjU4NFxcdTAxNjJcXHUwMTZFXFx1MjU4MFxceEQzXFx4REZcXHhENFxcdTAxNDNcXHUwMTQ0XFx1MDE0OFxcdTAxNjBcXHUwMTYxXFx1MDE1NFxceERBXFx1MDE1NVxcdTAxNzBcXHhGRFxceEREXFx1MDE2M1xceEI0XFx4QURcXHUwMkREXFx1MDJEQlxcdTAyQzdcXHUwMkQ4XFx4QTdcXHhGN1xceEI4XFx4QjBcXHhBOFxcdTAyRDlcXHUwMTcxXFx1MDE1OFxcdTAxNTlcXHUyNUEwXFx4QTBcIlxuICAgICAgfSxcbiAgICAgIFwiaWJtODUyXCI6IFwiY3A4NTJcIixcbiAgICAgIFwiY3NpYm04NTJcIjogXCJjcDg1MlwiLFxuICAgICAgXCJjcDg1NVwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIl9zYmNzXCIsXG4gICAgICAgIFwiY2hhcnNcIjogXCJcXHUwNDUyXFx1MDQwMlxcdTA0NTNcXHUwNDAzXFx1MDQ1MVxcdTA0MDFcXHUwNDU0XFx1MDQwNFxcdTA0NTVcXHUwNDA1XFx1MDQ1NlxcdTA0MDZcXHUwNDU3XFx1MDQwN1xcdTA0NThcXHUwNDA4XFx1MDQ1OVxcdTA0MDlcXHUwNDVBXFx1MDQwQVxcdTA0NUJcXHUwNDBCXFx1MDQ1Q1xcdTA0MENcXHUwNDVFXFx1MDQwRVxcdTA0NUZcXHUwNDBGXFx1MDQ0RVxcdTA0MkVcXHUwNDRBXFx1MDQyQVxcdTA0MzBcXHUwNDEwXFx1MDQzMVxcdTA0MTFcXHUwNDQ2XFx1MDQyNlxcdTA0MzRcXHUwNDE0XFx1MDQzNVxcdTA0MTVcXHUwNDQ0XFx1MDQyNFxcdTA0MzNcXHUwNDEzXFx4QUJcXHhCQlxcdTI1OTFcXHUyNTkyXFx1MjU5M1xcdTI1MDJcXHUyNTI0XFx1MDQ0NVxcdTA0MjVcXHUwNDM4XFx1MDQxOFxcdTI1NjNcXHUyNTUxXFx1MjU1N1xcdTI1NURcXHUwNDM5XFx1MDQxOVxcdTI1MTBcXHUyNTE0XFx1MjUzNFxcdTI1MkNcXHUyNTFDXFx1MjUwMFxcdTI1M0NcXHUwNDNBXFx1MDQxQVxcdTI1NUFcXHUyNTU0XFx1MjU2OVxcdTI1NjZcXHUyNTYwXFx1MjU1MFxcdTI1NkNcXHhBNFxcdTA0M0JcXHUwNDFCXFx1MDQzQ1xcdTA0MUNcXHUwNDNEXFx1MDQxRFxcdTA0M0VcXHUwNDFFXFx1MDQzRlxcdTI1MThcXHUyNTBDXFx1MjU4OFxcdTI1ODRcXHUwNDFGXFx1MDQ0RlxcdTI1ODBcXHUwNDJGXFx1MDQ0MFxcdTA0MjBcXHUwNDQxXFx1MDQyMVxcdTA0NDJcXHUwNDIyXFx1MDQ0M1xcdTA0MjNcXHUwNDM2XFx1MDQxNlxcdTA0MzJcXHUwNDEyXFx1MDQ0Q1xcdTA0MkNcXHUyMTE2XFx4QURcXHUwNDRCXFx1MDQyQlxcdTA0MzdcXHUwNDE3XFx1MDQ0OFxcdTA0MjhcXHUwNDREXFx1MDQyRFxcdTA0NDlcXHUwNDI5XFx1MDQ0N1xcdTA0MjdcXHhBN1xcdTI1QTBcXHhBMFwiXG4gICAgICB9LFxuICAgICAgXCJpYm04NTVcIjogXCJjcDg1NVwiLFxuICAgICAgXCJjc2libTg1NVwiOiBcImNwODU1XCIsXG4gICAgICBcImNwODU2XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwiX3NiY3NcIixcbiAgICAgICAgXCJjaGFyc1wiOiBcIlxcdTA1RDBcXHUwNUQxXFx1MDVEMlxcdTA1RDNcXHUwNUQ0XFx1MDVENVxcdTA1RDZcXHUwNUQ3XFx1MDVEOFxcdTA1RDlcXHUwNURBXFx1MDVEQlxcdTA1RENcXHUwNUREXFx1MDVERVxcdTA1REZcXHUwNUUwXFx1MDVFMVxcdTA1RTJcXHUwNUUzXFx1MDVFNFxcdTA1RTVcXHUwNUU2XFx1MDVFN1xcdTA1RThcXHUwNUU5XFx1MDVFQVxcdUZGRkRcXHhBM1xcdUZGRkRcXHhEN1xcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHhBRVxceEFDXFx4QkRcXHhCQ1xcdUZGRkRcXHhBQlxceEJCXFx1MjU5MVxcdTI1OTJcXHUyNTkzXFx1MjUwMlxcdTI1MjRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHhBOVxcdTI1NjNcXHUyNTUxXFx1MjU1N1xcdTI1NURcXHhBMlxceEE1XFx1MjUxMFxcdTI1MTRcXHUyNTM0XFx1MjUyQ1xcdTI1MUNcXHUyNTAwXFx1MjUzQ1xcdUZGRkRcXHVGRkZEXFx1MjU1QVxcdTI1NTRcXHUyNTY5XFx1MjU2NlxcdTI1NjBcXHUyNTUwXFx1MjU2Q1xceEE0XFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1MjUxOFxcdTI1MENcXHUyNTg4XFx1MjU4NFxceEE2XFx1RkZGRFxcdTI1ODBcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHhCNVxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHhBRlxceEI0XFx4QURcXHhCMVxcdTIwMTdcXHhCRVxceEI2XFx4QTdcXHhGN1xceEI4XFx4QjBcXHhBOFxceEI3XFx4QjlcXHhCM1xceEIyXFx1MjVBMFxceEEwXCJcbiAgICAgIH0sXG4gICAgICBcImlibTg1NlwiOiBcImNwODU2XCIsXG4gICAgICBcImNzaWJtODU2XCI6IFwiY3A4NTZcIixcbiAgICAgIFwiY3A4NTdcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJfc2Jjc1wiLFxuICAgICAgICBcImNoYXJzXCI6IFwiXFx4QzdcXHhGQ1xceEU5XFx4RTJcXHhFNFxceEUwXFx4RTVcXHhFN1xceEVBXFx4RUJcXHhFOFxceEVGXFx4RUVcXHUwMTMxXFx4QzRcXHhDNVxceEM5XFx4RTZcXHhDNlxceEY0XFx4RjZcXHhGMlxceEZCXFx4RjlcXHUwMTMwXFx4RDZcXHhEQ1xceEY4XFx4QTNcXHhEOFxcdTAxNUVcXHUwMTVGXFx4RTFcXHhFRFxceEYzXFx4RkFcXHhGMVxceEQxXFx1MDExRVxcdTAxMUZcXHhCRlxceEFFXFx4QUNcXHhCRFxceEJDXFx4QTFcXHhBQlxceEJCXFx1MjU5MVxcdTI1OTJcXHUyNTkzXFx1MjUwMlxcdTI1MjRcXHhDMVxceEMyXFx4QzBcXHhBOVxcdTI1NjNcXHUyNTUxXFx1MjU1N1xcdTI1NURcXHhBMlxceEE1XFx1MjUxMFxcdTI1MTRcXHUyNTM0XFx1MjUyQ1xcdTI1MUNcXHUyNTAwXFx1MjUzQ1xceEUzXFx4QzNcXHUyNTVBXFx1MjU1NFxcdTI1NjlcXHUyNTY2XFx1MjU2MFxcdTI1NTBcXHUyNTZDXFx4QTRcXHhCQVxceEFBXFx4Q0FcXHhDQlxceEM4XFx1RkZGRFxceENEXFx4Q0VcXHhDRlxcdTI1MThcXHUyNTBDXFx1MjU4OFxcdTI1ODRcXHhBNlxceENDXFx1MjU4MFxceEQzXFx4REZcXHhENFxceEQyXFx4RjVcXHhENVxceEI1XFx1RkZGRFxceEQ3XFx4REFcXHhEQlxceEQ5XFx4RUNcXHhGRlxceEFGXFx4QjRcXHhBRFxceEIxXFx1RkZGRFxceEJFXFx4QjZcXHhBN1xceEY3XFx4QjhcXHhCMFxceEE4XFx4QjdcXHhCOVxceEIzXFx4QjJcXHUyNUEwXFx4QTBcIlxuICAgICAgfSxcbiAgICAgIFwiaWJtODU3XCI6IFwiY3A4NTdcIixcbiAgICAgIFwiY3NpYm04NTdcIjogXCJjcDg1N1wiLFxuICAgICAgXCJjcDg1OFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIl9zYmNzXCIsXG4gICAgICAgIFwiY2hhcnNcIjogXCJcXHhDN1xceEZDXFx4RTlcXHhFMlxceEU0XFx4RTBcXHhFNVxceEU3XFx4RUFcXHhFQlxceEU4XFx4RUZcXHhFRVxceEVDXFx4QzRcXHhDNVxceEM5XFx4RTZcXHhDNlxceEY0XFx4RjZcXHhGMlxceEZCXFx4RjlcXHhGRlxceEQ2XFx4RENcXHhGOFxceEEzXFx4RDhcXHhEN1xcdTAxOTJcXHhFMVxceEVEXFx4RjNcXHhGQVxceEYxXFx4RDFcXHhBQVxceEJBXFx4QkZcXHhBRVxceEFDXFx4QkRcXHhCQ1xceEExXFx4QUJcXHhCQlxcdTI1OTFcXHUyNTkyXFx1MjU5M1xcdTI1MDJcXHUyNTI0XFx4QzFcXHhDMlxceEMwXFx4QTlcXHUyNTYzXFx1MjU1MVxcdTI1NTdcXHUyNTVEXFx4QTJcXHhBNVxcdTI1MTBcXHUyNTE0XFx1MjUzNFxcdTI1MkNcXHUyNTFDXFx1MjUwMFxcdTI1M0NcXHhFM1xceEMzXFx1MjU1QVxcdTI1NTRcXHUyNTY5XFx1MjU2NlxcdTI1NjBcXHUyNTUwXFx1MjU2Q1xceEE0XFx4RjBcXHhEMFxceENBXFx4Q0JcXHhDOFxcdTIwQUNcXHhDRFxceENFXFx4Q0ZcXHUyNTE4XFx1MjUwQ1xcdTI1ODhcXHUyNTg0XFx4QTZcXHhDQ1xcdTI1ODBcXHhEM1xceERGXFx4RDRcXHhEMlxceEY1XFx4RDVcXHhCNVxceEZFXFx4REVcXHhEQVxceERCXFx4RDlcXHhGRFxceEREXFx4QUZcXHhCNFxceEFEXFx4QjFcXHUyMDE3XFx4QkVcXHhCNlxceEE3XFx4RjdcXHhCOFxceEIwXFx4QThcXHhCN1xceEI5XFx4QjNcXHhCMlxcdTI1QTBcXHhBMFwiXG4gICAgICB9LFxuICAgICAgXCJpYm04NThcIjogXCJjcDg1OFwiLFxuICAgICAgXCJjc2libTg1OFwiOiBcImNwODU4XCIsXG4gICAgICBcImNwODYwXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwiX3NiY3NcIixcbiAgICAgICAgXCJjaGFyc1wiOiBcIlxceEM3XFx4RkNcXHhFOVxceEUyXFx4RTNcXHhFMFxceEMxXFx4RTdcXHhFQVxceENBXFx4RThcXHhDRFxceEQ0XFx4RUNcXHhDM1xceEMyXFx4QzlcXHhDMFxceEM4XFx4RjRcXHhGNVxceEYyXFx4REFcXHhGOVxceENDXFx4RDVcXHhEQ1xceEEyXFx4QTNcXHhEOVxcdTIwQTdcXHhEM1xceEUxXFx4RURcXHhGM1xceEZBXFx4RjFcXHhEMVxceEFBXFx4QkFcXHhCRlxceEQyXFx4QUNcXHhCRFxceEJDXFx4QTFcXHhBQlxceEJCXFx1MjU5MVxcdTI1OTJcXHUyNTkzXFx1MjUwMlxcdTI1MjRcXHUyNTYxXFx1MjU2MlxcdTI1NTZcXHUyNTU1XFx1MjU2M1xcdTI1NTFcXHUyNTU3XFx1MjU1RFxcdTI1NUNcXHUyNTVCXFx1MjUxMFxcdTI1MTRcXHUyNTM0XFx1MjUyQ1xcdTI1MUNcXHUyNTAwXFx1MjUzQ1xcdTI1NUVcXHUyNTVGXFx1MjU1QVxcdTI1NTRcXHUyNTY5XFx1MjU2NlxcdTI1NjBcXHUyNTUwXFx1MjU2Q1xcdTI1NjdcXHUyNTY4XFx1MjU2NFxcdTI1NjVcXHUyNTU5XFx1MjU1OFxcdTI1NTJcXHUyNTUzXFx1MjU2QlxcdTI1NkFcXHUyNTE4XFx1MjUwQ1xcdTI1ODhcXHUyNTg0XFx1MjU4Q1xcdTI1OTBcXHUyNTgwXFx1MDNCMVxceERGXFx1MDM5M1xcdTAzQzBcXHUwM0EzXFx1MDNDM1xceEI1XFx1MDNDNFxcdTAzQTZcXHUwMzk4XFx1MDNBOVxcdTAzQjRcXHUyMjFFXFx1MDNDNlxcdTAzQjVcXHUyMjI5XFx1MjI2MVxceEIxXFx1MjI2NVxcdTIyNjRcXHUyMzIwXFx1MjMyMVxceEY3XFx1MjI0OFxceEIwXFx1MjIxOVxceEI3XFx1MjIxQVxcdTIwN0ZcXHhCMlxcdTI1QTBcXHhBMFwiXG4gICAgICB9LFxuICAgICAgXCJpYm04NjBcIjogXCJjcDg2MFwiLFxuICAgICAgXCJjc2libTg2MFwiOiBcImNwODYwXCIsXG4gICAgICBcImNwODYxXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwiX3NiY3NcIixcbiAgICAgICAgXCJjaGFyc1wiOiBcIlxceEM3XFx4RkNcXHhFOVxceEUyXFx4RTRcXHhFMFxceEU1XFx4RTdcXHhFQVxceEVCXFx4RThcXHhEMFxceEYwXFx4REVcXHhDNFxceEM1XFx4QzlcXHhFNlxceEM2XFx4RjRcXHhGNlxceEZFXFx4RkJcXHhERFxceEZEXFx4RDZcXHhEQ1xceEY4XFx4QTNcXHhEOFxcdTIwQTdcXHUwMTkyXFx4RTFcXHhFRFxceEYzXFx4RkFcXHhDMVxceENEXFx4RDNcXHhEQVxceEJGXFx1MjMxMFxceEFDXFx4QkRcXHhCQ1xceEExXFx4QUJcXHhCQlxcdTI1OTFcXHUyNTkyXFx1MjU5M1xcdTI1MDJcXHUyNTI0XFx1MjU2MVxcdTI1NjJcXHUyNTU2XFx1MjU1NVxcdTI1NjNcXHUyNTUxXFx1MjU1N1xcdTI1NURcXHUyNTVDXFx1MjU1QlxcdTI1MTBcXHUyNTE0XFx1MjUzNFxcdTI1MkNcXHUyNTFDXFx1MjUwMFxcdTI1M0NcXHUyNTVFXFx1MjU1RlxcdTI1NUFcXHUyNTU0XFx1MjU2OVxcdTI1NjZcXHUyNTYwXFx1MjU1MFxcdTI1NkNcXHUyNTY3XFx1MjU2OFxcdTI1NjRcXHUyNTY1XFx1MjU1OVxcdTI1NThcXHUyNTUyXFx1MjU1M1xcdTI1NkJcXHUyNTZBXFx1MjUxOFxcdTI1MENcXHUyNTg4XFx1MjU4NFxcdTI1OENcXHUyNTkwXFx1MjU4MFxcdTAzQjFcXHhERlxcdTAzOTNcXHUwM0MwXFx1MDNBM1xcdTAzQzNcXHhCNVxcdTAzQzRcXHUwM0E2XFx1MDM5OFxcdTAzQTlcXHUwM0I0XFx1MjIxRVxcdTAzQzZcXHUwM0I1XFx1MjIyOVxcdTIyNjFcXHhCMVxcdTIyNjVcXHUyMjY0XFx1MjMyMFxcdTIzMjFcXHhGN1xcdTIyNDhcXHhCMFxcdTIyMTlcXHhCN1xcdTIyMUFcXHUyMDdGXFx4QjJcXHUyNUEwXFx4QTBcIlxuICAgICAgfSxcbiAgICAgIFwiaWJtODYxXCI6IFwiY3A4NjFcIixcbiAgICAgIFwiY3NpYm04NjFcIjogXCJjcDg2MVwiLFxuICAgICAgXCJjcDg2MlwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIl9zYmNzXCIsXG4gICAgICAgIFwiY2hhcnNcIjogXCJcXHUwNUQwXFx1MDVEMVxcdTA1RDJcXHUwNUQzXFx1MDVENFxcdTA1RDVcXHUwNUQ2XFx1MDVEN1xcdTA1RDhcXHUwNUQ5XFx1MDVEQVxcdTA1REJcXHUwNURDXFx1MDVERFxcdTA1REVcXHUwNURGXFx1MDVFMFxcdTA1RTFcXHUwNUUyXFx1MDVFM1xcdTA1RTRcXHUwNUU1XFx1MDVFNlxcdTA1RTdcXHUwNUU4XFx1MDVFOVxcdTA1RUFcXHhBMlxceEEzXFx4QTVcXHUyMEE3XFx1MDE5MlxceEUxXFx4RURcXHhGM1xceEZBXFx4RjFcXHhEMVxceEFBXFx4QkFcXHhCRlxcdTIzMTBcXHhBQ1xceEJEXFx4QkNcXHhBMVxceEFCXFx4QkJcXHUyNTkxXFx1MjU5MlxcdTI1OTNcXHUyNTAyXFx1MjUyNFxcdTI1NjFcXHUyNTYyXFx1MjU1NlxcdTI1NTVcXHUyNTYzXFx1MjU1MVxcdTI1NTdcXHUyNTVEXFx1MjU1Q1xcdTI1NUJcXHUyNTEwXFx1MjUxNFxcdTI1MzRcXHUyNTJDXFx1MjUxQ1xcdTI1MDBcXHUyNTNDXFx1MjU1RVxcdTI1NUZcXHUyNTVBXFx1MjU1NFxcdTI1NjlcXHUyNTY2XFx1MjU2MFxcdTI1NTBcXHUyNTZDXFx1MjU2N1xcdTI1NjhcXHUyNTY0XFx1MjU2NVxcdTI1NTlcXHUyNTU4XFx1MjU1MlxcdTI1NTNcXHUyNTZCXFx1MjU2QVxcdTI1MThcXHUyNTBDXFx1MjU4OFxcdTI1ODRcXHUyNThDXFx1MjU5MFxcdTI1ODBcXHUwM0IxXFx4REZcXHUwMzkzXFx1MDNDMFxcdTAzQTNcXHUwM0MzXFx4QjVcXHUwM0M0XFx1MDNBNlxcdTAzOThcXHUwM0E5XFx1MDNCNFxcdTIyMUVcXHUwM0M2XFx1MDNCNVxcdTIyMjlcXHUyMjYxXFx4QjFcXHUyMjY1XFx1MjI2NFxcdTIzMjBcXHUyMzIxXFx4RjdcXHUyMjQ4XFx4QjBcXHUyMjE5XFx4QjdcXHUyMjFBXFx1MjA3RlxceEIyXFx1MjVBMFxceEEwXCJcbiAgICAgIH0sXG4gICAgICBcImlibTg2MlwiOiBcImNwODYyXCIsXG4gICAgICBcImNzaWJtODYyXCI6IFwiY3A4NjJcIixcbiAgICAgIFwiY3A4NjNcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJfc2Jjc1wiLFxuICAgICAgICBcImNoYXJzXCI6IFwiXFx4QzdcXHhGQ1xceEU5XFx4RTJcXHhDMlxceEUwXFx4QjZcXHhFN1xceEVBXFx4RUJcXHhFOFxceEVGXFx4RUVcXHUyMDE3XFx4QzBcXHhBN1xceEM5XFx4QzhcXHhDQVxceEY0XFx4Q0JcXHhDRlxceEZCXFx4RjlcXHhBNFxceEQ0XFx4RENcXHhBMlxceEEzXFx4RDlcXHhEQlxcdTAxOTJcXHhBNlxceEI0XFx4RjNcXHhGQVxceEE4XFx4QjhcXHhCM1xceEFGXFx4Q0VcXHUyMzEwXFx4QUNcXHhCRFxceEJDXFx4QkVcXHhBQlxceEJCXFx1MjU5MVxcdTI1OTJcXHUyNTkzXFx1MjUwMlxcdTI1MjRcXHUyNTYxXFx1MjU2MlxcdTI1NTZcXHUyNTU1XFx1MjU2M1xcdTI1NTFcXHUyNTU3XFx1MjU1RFxcdTI1NUNcXHUyNTVCXFx1MjUxMFxcdTI1MTRcXHUyNTM0XFx1MjUyQ1xcdTI1MUNcXHUyNTAwXFx1MjUzQ1xcdTI1NUVcXHUyNTVGXFx1MjU1QVxcdTI1NTRcXHUyNTY5XFx1MjU2NlxcdTI1NjBcXHUyNTUwXFx1MjU2Q1xcdTI1NjdcXHUyNTY4XFx1MjU2NFxcdTI1NjVcXHUyNTU5XFx1MjU1OFxcdTI1NTJcXHUyNTUzXFx1MjU2QlxcdTI1NkFcXHUyNTE4XFx1MjUwQ1xcdTI1ODhcXHUyNTg0XFx1MjU4Q1xcdTI1OTBcXHUyNTgwXFx1MDNCMVxceERGXFx1MDM5M1xcdTAzQzBcXHUwM0EzXFx1MDNDM1xceEI1XFx1MDNDNFxcdTAzQTZcXHUwMzk4XFx1MDNBOVxcdTAzQjRcXHUyMjFFXFx1MDNDNlxcdTAzQjVcXHUyMjI5XFx1MjI2MVxceEIxXFx1MjI2NVxcdTIyNjRcXHUyMzIwXFx1MjMyMVxceEY3XFx1MjI0OFxceEIwXFx1MjIxOVxceEI3XFx1MjIxQVxcdTIwN0ZcXHhCMlxcdTI1QTBcXHhBMFwiXG4gICAgICB9LFxuICAgICAgXCJpYm04NjNcIjogXCJjcDg2M1wiLFxuICAgICAgXCJjc2libTg2M1wiOiBcImNwODYzXCIsXG4gICAgICBcImNwODY0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwiX3NiY3NcIixcbiAgICAgICAgXCJjaGFyc1wiOiBcIlxcMFx1MDAwMVx1MDAwMlx1MDAwM1x1MDAwNFx1MDAwNVx1MDAwNlxceDA3XFxiXHRcXG5cXHZcXGZcXHJcdTAwMEVcdTAwMEZcdTAwMTBcdTAwMTFcdTAwMTJcdTAwMTNcdTAwMTRcdTAwMTVcdTAwMTZcdTAwMTdcdTAwMThcdTAwMTlcdTAwMUFcXHgxQlx1MDAxQ1x1MDAxRFx1MDAxRVx1MDAxRiAhXFxcIiMkXFx1MDY2QSYnKCkqKywtLi8wMTIzNDU2Nzg5Ojs8PT4/QEFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaW1xcXFxdXl9gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXp7fH1+XFx4N0ZcXHhCMFxceEI3XFx1MjIxOVxcdTIyMUFcXHUyNTkyXFx1MjUwMFxcdTI1MDJcXHUyNTNDXFx1MjUyNFxcdTI1MkNcXHUyNTFDXFx1MjUzNFxcdTI1MTBcXHUyNTBDXFx1MjUxNFxcdTI1MThcXHUwM0IyXFx1MjIxRVxcdTAzQzZcXHhCMVxceEJEXFx4QkNcXHUyMjQ4XFx4QUJcXHhCQlxcdUZFRjdcXHVGRUY4XFx1RkZGRFxcdUZGRkRcXHVGRUZCXFx1RkVGQ1xcdUZGRkRcXHhBMFxceEFEXFx1RkU4MlxceEEzXFx4QTRcXHVGRTg0XFx1RkZGRFxcdUZGRkRcXHVGRThFXFx1RkU4RlxcdUZFOTVcXHVGRTk5XFx1MDYwQ1xcdUZFOURcXHVGRUExXFx1RkVBNVxcdTA2NjBcXHUwNjYxXFx1MDY2MlxcdTA2NjNcXHUwNjY0XFx1MDY2NVxcdTA2NjZcXHUwNjY3XFx1MDY2OFxcdTA2NjlcXHVGRUQxXFx1MDYxQlxcdUZFQjFcXHVGRUI1XFx1RkVCOVxcdTA2MUZcXHhBMlxcdUZFODBcXHVGRTgxXFx1RkU4M1xcdUZFODVcXHVGRUNBXFx1RkU4QlxcdUZFOERcXHVGRTkxXFx1RkU5M1xcdUZFOTdcXHVGRTlCXFx1RkU5RlxcdUZFQTNcXHVGRUE3XFx1RkVBOVxcdUZFQUJcXHVGRUFEXFx1RkVBRlxcdUZFQjNcXHVGRUI3XFx1RkVCQlxcdUZFQkZcXHVGRUMxXFx1RkVDNVxcdUZFQ0JcXHVGRUNGXFx4QTZcXHhBQ1xceEY3XFx4RDdcXHVGRUM5XFx1MDY0MFxcdUZFRDNcXHVGRUQ3XFx1RkVEQlxcdUZFREZcXHVGRUUzXFx1RkVFN1xcdUZFRUJcXHVGRUVEXFx1RkVFRlxcdUZFRjNcXHVGRUJEXFx1RkVDQ1xcdUZFQ0VcXHVGRUNEXFx1RkVFMVxcdUZFN0RcXHUwNjUxXFx1RkVFNVxcdUZFRTlcXHVGRUVDXFx1RkVGMFxcdUZFRjJcXHVGRUQwXFx1RkVENVxcdUZFRjVcXHVGRUY2XFx1RkVERFxcdUZFRDlcXHVGRUYxXFx1MjVBMFxcdUZGRkRcIlxuICAgICAgfSxcbiAgICAgIFwiaWJtODY0XCI6IFwiY3A4NjRcIixcbiAgICAgIFwiY3NpYm04NjRcIjogXCJjcDg2NFwiLFxuICAgICAgXCJjcDg2NVwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIl9zYmNzXCIsXG4gICAgICAgIFwiY2hhcnNcIjogXCJcXHhDN1xceEZDXFx4RTlcXHhFMlxceEU0XFx4RTBcXHhFNVxceEU3XFx4RUFcXHhFQlxceEU4XFx4RUZcXHhFRVxceEVDXFx4QzRcXHhDNVxceEM5XFx4RTZcXHhDNlxceEY0XFx4RjZcXHhGMlxceEZCXFx4RjlcXHhGRlxceEQ2XFx4RENcXHhGOFxceEEzXFx4RDhcXHUyMEE3XFx1MDE5MlxceEUxXFx4RURcXHhGM1xceEZBXFx4RjFcXHhEMVxceEFBXFx4QkFcXHhCRlxcdTIzMTBcXHhBQ1xceEJEXFx4QkNcXHhBMVxceEFCXFx4QTRcXHUyNTkxXFx1MjU5MlxcdTI1OTNcXHUyNTAyXFx1MjUyNFxcdTI1NjFcXHUyNTYyXFx1MjU1NlxcdTI1NTVcXHUyNTYzXFx1MjU1MVxcdTI1NTdcXHUyNTVEXFx1MjU1Q1xcdTI1NUJcXHUyNTEwXFx1MjUxNFxcdTI1MzRcXHUyNTJDXFx1MjUxQ1xcdTI1MDBcXHUyNTNDXFx1MjU1RVxcdTI1NUZcXHUyNTVBXFx1MjU1NFxcdTI1NjlcXHUyNTY2XFx1MjU2MFxcdTI1NTBcXHUyNTZDXFx1MjU2N1xcdTI1NjhcXHUyNTY0XFx1MjU2NVxcdTI1NTlcXHUyNTU4XFx1MjU1MlxcdTI1NTNcXHUyNTZCXFx1MjU2QVxcdTI1MThcXHUyNTBDXFx1MjU4OFxcdTI1ODRcXHUyNThDXFx1MjU5MFxcdTI1ODBcXHUwM0IxXFx4REZcXHUwMzkzXFx1MDNDMFxcdTAzQTNcXHUwM0MzXFx4QjVcXHUwM0M0XFx1MDNBNlxcdTAzOThcXHUwM0E5XFx1MDNCNFxcdTIyMUVcXHUwM0M2XFx1MDNCNVxcdTIyMjlcXHUyMjYxXFx4QjFcXHUyMjY1XFx1MjI2NFxcdTIzMjBcXHUyMzIxXFx4RjdcXHUyMjQ4XFx4QjBcXHUyMjE5XFx4QjdcXHUyMjFBXFx1MjA3RlxceEIyXFx1MjVBMFxceEEwXCJcbiAgICAgIH0sXG4gICAgICBcImlibTg2NVwiOiBcImNwODY1XCIsXG4gICAgICBcImNzaWJtODY1XCI6IFwiY3A4NjVcIixcbiAgICAgIFwiY3A4NjZcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJfc2Jjc1wiLFxuICAgICAgICBcImNoYXJzXCI6IFwiXFx1MDQxMFxcdTA0MTFcXHUwNDEyXFx1MDQxM1xcdTA0MTRcXHUwNDE1XFx1MDQxNlxcdTA0MTdcXHUwNDE4XFx1MDQxOVxcdTA0MUFcXHUwNDFCXFx1MDQxQ1xcdTA0MURcXHUwNDFFXFx1MDQxRlxcdTA0MjBcXHUwNDIxXFx1MDQyMlxcdTA0MjNcXHUwNDI0XFx1MDQyNVxcdTA0MjZcXHUwNDI3XFx1MDQyOFxcdTA0MjlcXHUwNDJBXFx1MDQyQlxcdTA0MkNcXHUwNDJEXFx1MDQyRVxcdTA0MkZcXHUwNDMwXFx1MDQzMVxcdTA0MzJcXHUwNDMzXFx1MDQzNFxcdTA0MzVcXHUwNDM2XFx1MDQzN1xcdTA0MzhcXHUwNDM5XFx1MDQzQVxcdTA0M0JcXHUwNDNDXFx1MDQzRFxcdTA0M0VcXHUwNDNGXFx1MjU5MVxcdTI1OTJcXHUyNTkzXFx1MjUwMlxcdTI1MjRcXHUyNTYxXFx1MjU2MlxcdTI1NTZcXHUyNTU1XFx1MjU2M1xcdTI1NTFcXHUyNTU3XFx1MjU1RFxcdTI1NUNcXHUyNTVCXFx1MjUxMFxcdTI1MTRcXHUyNTM0XFx1MjUyQ1xcdTI1MUNcXHUyNTAwXFx1MjUzQ1xcdTI1NUVcXHUyNTVGXFx1MjU1QVxcdTI1NTRcXHUyNTY5XFx1MjU2NlxcdTI1NjBcXHUyNTUwXFx1MjU2Q1xcdTI1NjdcXHUyNTY4XFx1MjU2NFxcdTI1NjVcXHUyNTU5XFx1MjU1OFxcdTI1NTJcXHUyNTUzXFx1MjU2QlxcdTI1NkFcXHUyNTE4XFx1MjUwQ1xcdTI1ODhcXHUyNTg0XFx1MjU4Q1xcdTI1OTBcXHUyNTgwXFx1MDQ0MFxcdTA0NDFcXHUwNDQyXFx1MDQ0M1xcdTA0NDRcXHUwNDQ1XFx1MDQ0NlxcdTA0NDdcXHUwNDQ4XFx1MDQ0OVxcdTA0NEFcXHUwNDRCXFx1MDQ0Q1xcdTA0NERcXHUwNDRFXFx1MDQ0RlxcdTA0MDFcXHUwNDUxXFx1MDQwNFxcdTA0NTRcXHUwNDA3XFx1MDQ1N1xcdTA0MEVcXHUwNDVFXFx4QjBcXHUyMjE5XFx4QjdcXHUyMjFBXFx1MjExNlxceEE0XFx1MjVBMFxceEEwXCJcbiAgICAgIH0sXG4gICAgICBcImlibTg2NlwiOiBcImNwODY2XCIsXG4gICAgICBcImNzaWJtODY2XCI6IFwiY3A4NjZcIixcbiAgICAgIFwiY3A4NjlcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJfc2Jjc1wiLFxuICAgICAgICBcImNoYXJzXCI6IFwiXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1MDM4NlxcdUZGRkRcXHhCN1xceEFDXFx4QTZcXHUyMDE4XFx1MjAxOVxcdTAzODhcXHUyMDE1XFx1MDM4OVxcdTAzOEFcXHUwM0FBXFx1MDM4Q1xcdUZGRkRcXHVGRkZEXFx1MDM4RVxcdTAzQUJcXHhBOVxcdTAzOEZcXHhCMlxceEIzXFx1MDNBQ1xceEEzXFx1MDNBRFxcdTAzQUVcXHUwM0FGXFx1MDNDQVxcdTAzOTBcXHUwM0NDXFx1MDNDRFxcdTAzOTFcXHUwMzkyXFx1MDM5M1xcdTAzOTRcXHUwMzk1XFx1MDM5NlxcdTAzOTdcXHhCRFxcdTAzOThcXHUwMzk5XFx4QUJcXHhCQlxcdTI1OTFcXHUyNTkyXFx1MjU5M1xcdTI1MDJcXHUyNTI0XFx1MDM5QVxcdTAzOUJcXHUwMzlDXFx1MDM5RFxcdTI1NjNcXHUyNTUxXFx1MjU1N1xcdTI1NURcXHUwMzlFXFx1MDM5RlxcdTI1MTBcXHUyNTE0XFx1MjUzNFxcdTI1MkNcXHUyNTFDXFx1MjUwMFxcdTI1M0NcXHUwM0EwXFx1MDNBMVxcdTI1NUFcXHUyNTU0XFx1MjU2OVxcdTI1NjZcXHUyNTYwXFx1MjU1MFxcdTI1NkNcXHUwM0EzXFx1MDNBNFxcdTAzQTVcXHUwM0E2XFx1MDNBN1xcdTAzQThcXHUwM0E5XFx1MDNCMVxcdTAzQjJcXHUwM0IzXFx1MjUxOFxcdTI1MENcXHUyNTg4XFx1MjU4NFxcdTAzQjRcXHUwM0I1XFx1MjU4MFxcdTAzQjZcXHUwM0I3XFx1MDNCOFxcdTAzQjlcXHUwM0JBXFx1MDNCQlxcdTAzQkNcXHUwM0JEXFx1MDNCRVxcdTAzQkZcXHUwM0MwXFx1MDNDMVxcdTAzQzNcXHUwM0MyXFx1MDNDNFxcdTAzODRcXHhBRFxceEIxXFx1MDNDNVxcdTAzQzZcXHUwM0M3XFx4QTdcXHUwM0M4XFx1MDM4NVxceEIwXFx4QThcXHUwM0M5XFx1MDNDQlxcdTAzQjBcXHUwM0NFXFx1MjVBMFxceEEwXCJcbiAgICAgIH0sXG4gICAgICBcImlibTg2OVwiOiBcImNwODY5XCIsXG4gICAgICBcImNzaWJtODY5XCI6IFwiY3A4NjlcIixcbiAgICAgIFwiY3A5MjJcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJfc2Jjc1wiLFxuICAgICAgICBcImNoYXJzXCI6IFwiXFx4ODBcXHg4MVxceDgyXFx4ODNcXHg4NFxceDg1XFx4ODZcXHg4N1xceDg4XFx4ODlcXHg4QVxceDhCXFx4OENcXHg4RFxceDhFXFx4OEZcXHg5MFxceDkxXFx4OTJcXHg5M1xceDk0XFx4OTVcXHg5NlxceDk3XFx4OThcXHg5OVxceDlBXFx4OUJcXHg5Q1xceDlEXFx4OUVcXHg5RlxceEEwXFx4QTFcXHhBMlxceEEzXFx4QTRcXHhBNVxceEE2XFx4QTdcXHhBOFxceEE5XFx4QUFcXHhBQlxceEFDXFx4QURcXHhBRVxcdTIwM0VcXHhCMFxceEIxXFx4QjJcXHhCM1xceEI0XFx4QjVcXHhCNlxceEI3XFx4QjhcXHhCOVxceEJBXFx4QkJcXHhCQ1xceEJEXFx4QkVcXHhCRlxceEMwXFx4QzFcXHhDMlxceEMzXFx4QzRcXHhDNVxceEM2XFx4QzdcXHhDOFxceEM5XFx4Q0FcXHhDQlxceENDXFx4Q0RcXHhDRVxceENGXFx1MDE2MFxceEQxXFx4RDJcXHhEM1xceEQ0XFx4RDVcXHhENlxceEQ3XFx4RDhcXHhEOVxceERBXFx4REJcXHhEQ1xceEREXFx1MDE3RFxceERGXFx4RTBcXHhFMVxceEUyXFx4RTNcXHhFNFxceEU1XFx4RTZcXHhFN1xceEU4XFx4RTlcXHhFQVxceEVCXFx4RUNcXHhFRFxceEVFXFx4RUZcXHUwMTYxXFx4RjFcXHhGMlxceEYzXFx4RjRcXHhGNVxceEY2XFx4RjdcXHhGOFxceEY5XFx4RkFcXHhGQlxceEZDXFx4RkRcXHUwMTdFXFx4RkZcIlxuICAgICAgfSxcbiAgICAgIFwiaWJtOTIyXCI6IFwiY3A5MjJcIixcbiAgICAgIFwiY3NpYm05MjJcIjogXCJjcDkyMlwiLFxuICAgICAgXCJjcDEwNDZcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJfc2Jjc1wiLFxuICAgICAgICBcImNoYXJzXCI6IFwiXFx1RkU4OFxceEQ3XFx4RjdcXHVGOEY2XFx1RjhGNVxcdUY4RjRcXHVGOEY3XFx1RkU3MVxceDg4XFx1MjVBMFxcdTI1MDJcXHUyNTAwXFx1MjUxMFxcdTI1MENcXHUyNTE0XFx1MjUxOFxcdUZFNzlcXHVGRTdCXFx1RkU3RFxcdUZFN0ZcXHVGRTc3XFx1RkU4QVxcdUZFRjBcXHVGRUYzXFx1RkVGMlxcdUZFQ0VcXHVGRUNGXFx1RkVEMFxcdUZFRjZcXHVGRUY4XFx1RkVGQVxcdUZFRkNcXHhBMFxcdUY4RkFcXHVGOEY5XFx1RjhGOFxceEE0XFx1RjhGQlxcdUZFOEJcXHVGRTkxXFx1RkU5N1xcdUZFOUJcXHVGRTlGXFx1RkVBM1xcdTA2MENcXHhBRFxcdUZFQTdcXHVGRUIzXFx1MDY2MFxcdTA2NjFcXHUwNjYyXFx1MDY2M1xcdTA2NjRcXHUwNjY1XFx1MDY2NlxcdTA2NjdcXHUwNjY4XFx1MDY2OVxcdUZFQjdcXHUwNjFCXFx1RkVCQlxcdUZFQkZcXHVGRUNBXFx1MDYxRlxcdUZFQ0JcXHUwNjIxXFx1MDYyMlxcdTA2MjNcXHUwNjI0XFx1MDYyNVxcdTA2MjZcXHUwNjI3XFx1MDYyOFxcdTA2MjlcXHUwNjJBXFx1MDYyQlxcdTA2MkNcXHUwNjJEXFx1MDYyRVxcdTA2MkZcXHUwNjMwXFx1MDYzMVxcdTA2MzJcXHUwNjMzXFx1MDYzNFxcdTA2MzVcXHUwNjM2XFx1MDYzN1xcdUZFQzdcXHUwNjM5XFx1MDYzQVxcdUZFQ0NcXHVGRTgyXFx1RkU4NFxcdUZFOEVcXHVGRUQzXFx1MDY0MFxcdTA2NDFcXHUwNjQyXFx1MDY0M1xcdTA2NDRcXHUwNjQ1XFx1MDY0NlxcdTA2NDdcXHUwNjQ4XFx1MDY0OVxcdTA2NEFcXHUwNjRCXFx1MDY0Q1xcdTA2NERcXHUwNjRFXFx1MDY0RlxcdTA2NTBcXHUwNjUxXFx1MDY1MlxcdUZFRDdcXHVGRURCXFx1RkVERlxcdUY4RkNcXHVGRUY1XFx1RkVGN1xcdUZFRjlcXHVGRUZCXFx1RkVFM1xcdUZFRTdcXHVGRUVDXFx1RkVFOVxcdUZGRkRcIlxuICAgICAgfSxcbiAgICAgIFwiaWJtMTA0NlwiOiBcImNwMTA0NlwiLFxuICAgICAgXCJjc2libTEwNDZcIjogXCJjcDEwNDZcIixcbiAgICAgIFwiY3AxMTI0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwiX3NiY3NcIixcbiAgICAgICAgXCJjaGFyc1wiOiBcIlxceDgwXFx4ODFcXHg4MlxceDgzXFx4ODRcXHg4NVxceDg2XFx4ODdcXHg4OFxceDg5XFx4OEFcXHg4QlxceDhDXFx4OERcXHg4RVxceDhGXFx4OTBcXHg5MVxceDkyXFx4OTNcXHg5NFxceDk1XFx4OTZcXHg5N1xceDk4XFx4OTlcXHg5QVxceDlCXFx4OUNcXHg5RFxceDlFXFx4OUZcXHhBMFxcdTA0MDFcXHUwNDAyXFx1MDQ5MFxcdTA0MDRcXHUwNDA1XFx1MDQwNlxcdTA0MDdcXHUwNDA4XFx1MDQwOVxcdTA0MEFcXHUwNDBCXFx1MDQwQ1xceEFEXFx1MDQwRVxcdTA0MEZcXHUwNDEwXFx1MDQxMVxcdTA0MTJcXHUwNDEzXFx1MDQxNFxcdTA0MTVcXHUwNDE2XFx1MDQxN1xcdTA0MThcXHUwNDE5XFx1MDQxQVxcdTA0MUJcXHUwNDFDXFx1MDQxRFxcdTA0MUVcXHUwNDFGXFx1MDQyMFxcdTA0MjFcXHUwNDIyXFx1MDQyM1xcdTA0MjRcXHUwNDI1XFx1MDQyNlxcdTA0MjdcXHUwNDI4XFx1MDQyOVxcdTA0MkFcXHUwNDJCXFx1MDQyQ1xcdTA0MkRcXHUwNDJFXFx1MDQyRlxcdTA0MzBcXHUwNDMxXFx1MDQzMlxcdTA0MzNcXHUwNDM0XFx1MDQzNVxcdTA0MzZcXHUwNDM3XFx1MDQzOFxcdTA0MzlcXHUwNDNBXFx1MDQzQlxcdTA0M0NcXHUwNDNEXFx1MDQzRVxcdTA0M0ZcXHUwNDQwXFx1MDQ0MVxcdTA0NDJcXHUwNDQzXFx1MDQ0NFxcdTA0NDVcXHUwNDQ2XFx1MDQ0N1xcdTA0NDhcXHUwNDQ5XFx1MDQ0QVxcdTA0NEJcXHUwNDRDXFx1MDQ0RFxcdTA0NEVcXHUwNDRGXFx1MjExNlxcdTA0NTFcXHUwNDUyXFx1MDQ5MVxcdTA0NTRcXHUwNDU1XFx1MDQ1NlxcdTA0NTdcXHUwNDU4XFx1MDQ1OVxcdTA0NUFcXHUwNDVCXFx1MDQ1Q1xceEE3XFx1MDQ1RVxcdTA0NUZcIlxuICAgICAgfSxcbiAgICAgIFwiaWJtMTEyNFwiOiBcImNwMTEyNFwiLFxuICAgICAgXCJjc2libTExMjRcIjogXCJjcDExMjRcIixcbiAgICAgIFwiY3AxMTI1XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwiX3NiY3NcIixcbiAgICAgICAgXCJjaGFyc1wiOiBcIlxcdTA0MTBcXHUwNDExXFx1MDQxMlxcdTA0MTNcXHUwNDE0XFx1MDQxNVxcdTA0MTZcXHUwNDE3XFx1MDQxOFxcdTA0MTlcXHUwNDFBXFx1MDQxQlxcdTA0MUNcXHUwNDFEXFx1MDQxRVxcdTA0MUZcXHUwNDIwXFx1MDQyMVxcdTA0MjJcXHUwNDIzXFx1MDQyNFxcdTA0MjVcXHUwNDI2XFx1MDQyN1xcdTA0MjhcXHUwNDI5XFx1MDQyQVxcdTA0MkJcXHUwNDJDXFx1MDQyRFxcdTA0MkVcXHUwNDJGXFx1MDQzMFxcdTA0MzFcXHUwNDMyXFx1MDQzM1xcdTA0MzRcXHUwNDM1XFx1MDQzNlxcdTA0MzdcXHUwNDM4XFx1MDQzOVxcdTA0M0FcXHUwNDNCXFx1MDQzQ1xcdTA0M0RcXHUwNDNFXFx1MDQzRlxcdTI1OTFcXHUyNTkyXFx1MjU5M1xcdTI1MDJcXHUyNTI0XFx1MjU2MVxcdTI1NjJcXHUyNTU2XFx1MjU1NVxcdTI1NjNcXHUyNTUxXFx1MjU1N1xcdTI1NURcXHUyNTVDXFx1MjU1QlxcdTI1MTBcXHUyNTE0XFx1MjUzNFxcdTI1MkNcXHUyNTFDXFx1MjUwMFxcdTI1M0NcXHUyNTVFXFx1MjU1RlxcdTI1NUFcXHUyNTU0XFx1MjU2OVxcdTI1NjZcXHUyNTYwXFx1MjU1MFxcdTI1NkNcXHUyNTY3XFx1MjU2OFxcdTI1NjRcXHUyNTY1XFx1MjU1OVxcdTI1NThcXHUyNTUyXFx1MjU1M1xcdTI1NkJcXHUyNTZBXFx1MjUxOFxcdTI1MENcXHUyNTg4XFx1MjU4NFxcdTI1OENcXHUyNTkwXFx1MjU4MFxcdTA0NDBcXHUwNDQxXFx1MDQ0MlxcdTA0NDNcXHUwNDQ0XFx1MDQ0NVxcdTA0NDZcXHUwNDQ3XFx1MDQ0OFxcdTA0NDlcXHUwNDRBXFx1MDQ0QlxcdTA0NENcXHUwNDREXFx1MDQ0RVxcdTA0NEZcXHUwNDAxXFx1MDQ1MVxcdTA0OTBcXHUwNDkxXFx1MDQwNFxcdTA0NTRcXHUwNDA2XFx1MDQ1NlxcdTA0MDdcXHUwNDU3XFx4QjdcXHUyMjFBXFx1MjExNlxceEE0XFx1MjVBMFxceEEwXCJcbiAgICAgIH0sXG4gICAgICBcImlibTExMjVcIjogXCJjcDExMjVcIixcbiAgICAgIFwiY3NpYm0xMTI1XCI6IFwiY3AxMTI1XCIsXG4gICAgICBcImNwMTEyOVwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIl9zYmNzXCIsXG4gICAgICAgIFwiY2hhcnNcIjogXCJcXHg4MFxceDgxXFx4ODJcXHg4M1xceDg0XFx4ODVcXHg4NlxceDg3XFx4ODhcXHg4OVxceDhBXFx4OEJcXHg4Q1xceDhEXFx4OEVcXHg4RlxceDkwXFx4OTFcXHg5MlxceDkzXFx4OTRcXHg5NVxceDk2XFx4OTdcXHg5OFxceDk5XFx4OUFcXHg5QlxceDlDXFx4OURcXHg5RVxceDlGXFx4QTBcXHhBMVxceEEyXFx4QTNcXHhBNFxceEE1XFx4QTZcXHhBN1xcdTAxNTNcXHhBOVxceEFBXFx4QUJcXHhBQ1xceEFEXFx4QUVcXHhBRlxceEIwXFx4QjFcXHhCMlxceEIzXFx1MDE3OFxceEI1XFx4QjZcXHhCN1xcdTAxNTJcXHhCOVxceEJBXFx4QkJcXHhCQ1xceEJEXFx4QkVcXHhCRlxceEMwXFx4QzFcXHhDMlxcdTAxMDJcXHhDNFxceEM1XFx4QzZcXHhDN1xceEM4XFx4QzlcXHhDQVxceENCXFx1MDMwMFxceENEXFx4Q0VcXHhDRlxcdTAxMTBcXHhEMVxcdTAzMDlcXHhEM1xceEQ0XFx1MDFBMFxceEQ2XFx4RDdcXHhEOFxceEQ5XFx4REFcXHhEQlxceERDXFx1MDFBRlxcdTAzMDNcXHhERlxceEUwXFx4RTFcXHhFMlxcdTAxMDNcXHhFNFxceEU1XFx4RTZcXHhFN1xceEU4XFx4RTlcXHhFQVxceEVCXFx1MDMwMVxceEVEXFx4RUVcXHhFRlxcdTAxMTFcXHhGMVxcdTAzMjNcXHhGM1xceEY0XFx1MDFBMVxceEY2XFx4RjdcXHhGOFxceEY5XFx4RkFcXHhGQlxceEZDXFx1MDFCMFxcdTIwQUJcXHhGRlwiXG4gICAgICB9LFxuICAgICAgXCJpYm0xMTI5XCI6IFwiY3AxMTI5XCIsXG4gICAgICBcImNzaWJtMTEyOVwiOiBcImNwMTEyOVwiLFxuICAgICAgXCJjcDExMzNcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJfc2Jjc1wiLFxuICAgICAgICBcImNoYXJzXCI6IFwiXFx4ODBcXHg4MVxceDgyXFx4ODNcXHg4NFxceDg1XFx4ODZcXHg4N1xceDg4XFx4ODlcXHg4QVxceDhCXFx4OENcXHg4RFxceDhFXFx4OEZcXHg5MFxceDkxXFx4OTJcXHg5M1xceDk0XFx4OTVcXHg5NlxceDk3XFx4OThcXHg5OVxceDlBXFx4OUJcXHg5Q1xceDlEXFx4OUVcXHg5RlxceEEwXFx1MEU4MVxcdTBFODJcXHUwRTg0XFx1MEU4N1xcdTBFODhcXHUwRUFBXFx1MEU4QVxcdTBFOERcXHUwRTk0XFx1MEU5NVxcdTBFOTZcXHUwRTk3XFx1MEU5OVxcdTBFOUFcXHUwRTlCXFx1MEU5Q1xcdTBFOURcXHUwRTlFXFx1MEU5RlxcdTBFQTFcXHUwRUEyXFx1MEVBM1xcdTBFQTVcXHUwRUE3XFx1MEVBQlxcdTBFQURcXHUwRUFFXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1MEVBRlxcdTBFQjBcXHUwRUIyXFx1MEVCM1xcdTBFQjRcXHUwRUI1XFx1MEVCNlxcdTBFQjdcXHUwRUI4XFx1MEVCOVxcdTBFQkNcXHUwRUIxXFx1MEVCQlxcdTBFQkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHUwRUMwXFx1MEVDMVxcdTBFQzJcXHUwRUMzXFx1MEVDNFxcdTBFQzhcXHUwRUM5XFx1MEVDQVxcdTBFQ0JcXHUwRUNDXFx1MEVDRFxcdTBFQzZcXHVGRkZEXFx1MEVEQ1xcdTBFRERcXHUyMEFEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdTBFRDBcXHUwRUQxXFx1MEVEMlxcdTBFRDNcXHUwRUQ0XFx1MEVENVxcdTBFRDZcXHUwRUQ3XFx1MEVEOFxcdTBFRDlcXHVGRkZEXFx1RkZGRFxceEEyXFx4QUNcXHhBNlxcdUZGRkRcIlxuICAgICAgfSxcbiAgICAgIFwiaWJtMTEzM1wiOiBcImNwMTEzM1wiLFxuICAgICAgXCJjc2libTExMzNcIjogXCJjcDExMzNcIixcbiAgICAgIFwiY3AxMTYxXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwiX3NiY3NcIixcbiAgICAgICAgXCJjaGFyc1wiOiBcIlxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1MEU0OFxcdTBFMDFcXHUwRTAyXFx1MEUwM1xcdTBFMDRcXHUwRTA1XFx1MEUwNlxcdTBFMDdcXHUwRTA4XFx1MEUwOVxcdTBFMEFcXHUwRTBCXFx1MEUwQ1xcdTBFMERcXHUwRTBFXFx1MEUwRlxcdTBFMTBcXHUwRTExXFx1MEUxMlxcdTBFMTNcXHUwRTE0XFx1MEUxNVxcdTBFMTZcXHUwRTE3XFx1MEUxOFxcdTBFMTlcXHUwRTFBXFx1MEUxQlxcdTBFMUNcXHUwRTFEXFx1MEUxRVxcdTBFMUZcXHUwRTIwXFx1MEUyMVxcdTBFMjJcXHUwRTIzXFx1MEUyNFxcdTBFMjVcXHUwRTI2XFx1MEUyN1xcdTBFMjhcXHUwRTI5XFx1MEUyQVxcdTBFMkJcXHUwRTJDXFx1MEUyRFxcdTBFMkVcXHUwRTJGXFx1MEUzMFxcdTBFMzFcXHUwRTMyXFx1MEUzM1xcdTBFMzRcXHUwRTM1XFx1MEUzNlxcdTBFMzdcXHUwRTM4XFx1MEUzOVxcdTBFM0FcXHUwRTQ5XFx1MEU0QVxcdTBFNEJcXHUyMEFDXFx1MEUzRlxcdTBFNDBcXHUwRTQxXFx1MEU0MlxcdTBFNDNcXHUwRTQ0XFx1MEU0NVxcdTBFNDZcXHUwRTQ3XFx1MEU0OFxcdTBFNDlcXHUwRTRBXFx1MEU0QlxcdTBFNENcXHUwRTREXFx1MEU0RVxcdTBFNEZcXHUwRTUwXFx1MEU1MVxcdTBFNTJcXHUwRTUzXFx1MEU1NFxcdTBFNTVcXHUwRTU2XFx1MEU1N1xcdTBFNThcXHUwRTU5XFx1MEU1QVxcdTBFNUJcXHhBMlxceEFDXFx4QTZcXHhBMFwiXG4gICAgICB9LFxuICAgICAgXCJpYm0xMTYxXCI6IFwiY3AxMTYxXCIsXG4gICAgICBcImNzaWJtMTE2MVwiOiBcImNwMTE2MVwiLFxuICAgICAgXCJjcDExNjJcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJfc2Jjc1wiLFxuICAgICAgICBcImNoYXJzXCI6IFwiXFx1MjBBQ1xceDgxXFx4ODJcXHg4M1xceDg0XFx1MjAyNlxceDg2XFx4ODdcXHg4OFxceDg5XFx4OEFcXHg4QlxceDhDXFx4OERcXHg4RVxceDhGXFx4OTBcXHUyMDE4XFx1MjAxOVxcdTIwMUNcXHUyMDFEXFx1MjAyMlxcdTIwMTNcXHUyMDE0XFx4OThcXHg5OVxceDlBXFx4OUJcXHg5Q1xceDlEXFx4OUVcXHg5RlxceEEwXFx1MEUwMVxcdTBFMDJcXHUwRTAzXFx1MEUwNFxcdTBFMDVcXHUwRTA2XFx1MEUwN1xcdTBFMDhcXHUwRTA5XFx1MEUwQVxcdTBFMEJcXHUwRTBDXFx1MEUwRFxcdTBFMEVcXHUwRTBGXFx1MEUxMFxcdTBFMTFcXHUwRTEyXFx1MEUxM1xcdTBFMTRcXHUwRTE1XFx1MEUxNlxcdTBFMTdcXHUwRTE4XFx1MEUxOVxcdTBFMUFcXHUwRTFCXFx1MEUxQ1xcdTBFMURcXHUwRTFFXFx1MEUxRlxcdTBFMjBcXHUwRTIxXFx1MEUyMlxcdTBFMjNcXHUwRTI0XFx1MEUyNVxcdTBFMjZcXHUwRTI3XFx1MEUyOFxcdTBFMjlcXHUwRTJBXFx1MEUyQlxcdTBFMkNcXHUwRTJEXFx1MEUyRVxcdTBFMkZcXHUwRTMwXFx1MEUzMVxcdTBFMzJcXHUwRTMzXFx1MEUzNFxcdTBFMzVcXHUwRTM2XFx1MEUzN1xcdTBFMzhcXHUwRTM5XFx1MEUzQVxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHUwRTNGXFx1MEU0MFxcdTBFNDFcXHUwRTQyXFx1MEU0M1xcdTBFNDRcXHUwRTQ1XFx1MEU0NlxcdTBFNDdcXHUwRTQ4XFx1MEU0OVxcdTBFNEFcXHUwRTRCXFx1MEU0Q1xcdTBFNERcXHUwRTRFXFx1MEU0RlxcdTBFNTBcXHUwRTUxXFx1MEU1MlxcdTBFNTNcXHUwRTU0XFx1MEU1NVxcdTBFNTZcXHUwRTU3XFx1MEU1OFxcdTBFNTlcXHUwRTVBXFx1MEU1QlxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcIlxuICAgICAgfSxcbiAgICAgIFwiaWJtMTE2MlwiOiBcImNwMTE2MlwiLFxuICAgICAgXCJjc2libTExNjJcIjogXCJjcDExNjJcIixcbiAgICAgIFwiY3AxMTYzXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwiX3NiY3NcIixcbiAgICAgICAgXCJjaGFyc1wiOiBcIlxceDgwXFx4ODFcXHg4MlxceDgzXFx4ODRcXHg4NVxceDg2XFx4ODdcXHg4OFxceDg5XFx4OEFcXHg4QlxceDhDXFx4OERcXHg4RVxceDhGXFx4OTBcXHg5MVxceDkyXFx4OTNcXHg5NFxceDk1XFx4OTZcXHg5N1xceDk4XFx4OTlcXHg5QVxceDlCXFx4OUNcXHg5RFxceDlFXFx4OUZcXHhBMFxceEExXFx4QTJcXHhBM1xcdTIwQUNcXHhBNVxceEE2XFx4QTdcXHUwMTUzXFx4QTlcXHhBQVxceEFCXFx4QUNcXHhBRFxceEFFXFx4QUZcXHhCMFxceEIxXFx4QjJcXHhCM1xcdTAxNzhcXHhCNVxceEI2XFx4QjdcXHUwMTUyXFx4QjlcXHhCQVxceEJCXFx4QkNcXHhCRFxceEJFXFx4QkZcXHhDMFxceEMxXFx4QzJcXHUwMTAyXFx4QzRcXHhDNVxceEM2XFx4QzdcXHhDOFxceEM5XFx4Q0FcXHhDQlxcdTAzMDBcXHhDRFxceENFXFx4Q0ZcXHUwMTEwXFx4RDFcXHUwMzA5XFx4RDNcXHhENFxcdTAxQTBcXHhENlxceEQ3XFx4RDhcXHhEOVxceERBXFx4REJcXHhEQ1xcdTAxQUZcXHUwMzAzXFx4REZcXHhFMFxceEUxXFx4RTJcXHUwMTAzXFx4RTRcXHhFNVxceEU2XFx4RTdcXHhFOFxceEU5XFx4RUFcXHhFQlxcdTAzMDFcXHhFRFxceEVFXFx4RUZcXHUwMTExXFx4RjFcXHUwMzIzXFx4RjNcXHhGNFxcdTAxQTFcXHhGNlxceEY3XFx4RjhcXHhGOVxceEZBXFx4RkJcXHhGQ1xcdTAxQjBcXHUyMEFCXFx4RkZcIlxuICAgICAgfSxcbiAgICAgIFwiaWJtMTE2M1wiOiBcImNwMTE2M1wiLFxuICAgICAgXCJjc2libTExNjNcIjogXCJjcDExNjNcIixcbiAgICAgIFwibWFjY3JvYXRpYW5cIjoge1xuICAgICAgICBcInR5cGVcIjogXCJfc2Jjc1wiLFxuICAgICAgICBcImNoYXJzXCI6IFwiXFx4QzRcXHhDNVxceEM3XFx4QzlcXHhEMVxceEQ2XFx4RENcXHhFMVxceEUwXFx4RTJcXHhFNFxceEUzXFx4RTVcXHhFN1xceEU5XFx4RThcXHhFQVxceEVCXFx4RURcXHhFQ1xceEVFXFx4RUZcXHhGMVxceEYzXFx4RjJcXHhGNFxceEY2XFx4RjVcXHhGQVxceEY5XFx4RkJcXHhGQ1xcdTIwMjBcXHhCMFxceEEyXFx4QTNcXHhBN1xcdTIwMjJcXHhCNlxceERGXFx4QUVcXHUwMTYwXFx1MjEyMlxceEI0XFx4QThcXHUyMjYwXFx1MDE3RFxceEQ4XFx1MjIxRVxceEIxXFx1MjI2NFxcdTIyNjVcXHUyMjA2XFx4QjVcXHUyMjAyXFx1MjIxMVxcdTIyMEZcXHUwMTYxXFx1MjIyQlxceEFBXFx4QkFcXHUyMTI2XFx1MDE3RVxceEY4XFx4QkZcXHhBMVxceEFDXFx1MjIxQVxcdTAxOTJcXHUyMjQ4XFx1MDEwNlxceEFCXFx1MDEwQ1xcdTIwMjZcXHhBMFxceEMwXFx4QzNcXHhENVxcdTAxNTJcXHUwMTUzXFx1MDExMFxcdTIwMTRcXHUyMDFDXFx1MjAxRFxcdTIwMThcXHUyMDE5XFx4RjdcXHUyNUNBXFx1RkZGRFxceEE5XFx1MjA0NFxceEE0XFx1MjAzOVxcdTIwM0FcXHhDNlxceEJCXFx1MjAxM1xceEI3XFx1MjAxQVxcdTIwMUVcXHUyMDMwXFx4QzJcXHUwMTA3XFx4QzFcXHUwMTBEXFx4QzhcXHhDRFxceENFXFx4Q0ZcXHhDQ1xceEQzXFx4RDRcXHUwMTExXFx4RDJcXHhEQVxceERCXFx4RDlcXHUwMTMxXFx1MDJDNlxcdTAyRENcXHhBRlxcdTAzQzBcXHhDQlxcdTAyREFcXHhCOFxceENBXFx4RTZcXHUwMkM3XCJcbiAgICAgIH0sXG4gICAgICBcIm1hY2N5cmlsbGljXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwiX3NiY3NcIixcbiAgICAgICAgXCJjaGFyc1wiOiBcIlxcdTA0MTBcXHUwNDExXFx1MDQxMlxcdTA0MTNcXHUwNDE0XFx1MDQxNVxcdTA0MTZcXHUwNDE3XFx1MDQxOFxcdTA0MTlcXHUwNDFBXFx1MDQxQlxcdTA0MUNcXHUwNDFEXFx1MDQxRVxcdTA0MUZcXHUwNDIwXFx1MDQyMVxcdTA0MjJcXHUwNDIzXFx1MDQyNFxcdTA0MjVcXHUwNDI2XFx1MDQyN1xcdTA0MjhcXHUwNDI5XFx1MDQyQVxcdTA0MkJcXHUwNDJDXFx1MDQyRFxcdTA0MkVcXHUwNDJGXFx1MjAyMFxceEIwXFx4QTJcXHhBM1xceEE3XFx1MjAyMlxceEI2XFx1MDQwNlxceEFFXFx4QTlcXHUyMTIyXFx1MDQwMlxcdTA0NTJcXHUyMjYwXFx1MDQwM1xcdTA0NTNcXHUyMjFFXFx4QjFcXHUyMjY0XFx1MjI2NVxcdTA0NTZcXHhCNVxcdTIyMDJcXHUwNDA4XFx1MDQwNFxcdTA0NTRcXHUwNDA3XFx1MDQ1N1xcdTA0MDlcXHUwNDU5XFx1MDQwQVxcdTA0NUFcXHUwNDU4XFx1MDQwNVxceEFDXFx1MjIxQVxcdTAxOTJcXHUyMjQ4XFx1MjIwNlxceEFCXFx4QkJcXHUyMDI2XFx4QTBcXHUwNDBCXFx1MDQ1QlxcdTA0MENcXHUwNDVDXFx1MDQ1NVxcdTIwMTNcXHUyMDE0XFx1MjAxQ1xcdTIwMURcXHUyMDE4XFx1MjAxOVxceEY3XFx1MjAxRVxcdTA0MEVcXHUwNDVFXFx1MDQwRlxcdTA0NUZcXHUyMTE2XFx1MDQwMVxcdTA0NTFcXHUwNDRGXFx1MDQzMFxcdTA0MzFcXHUwNDMyXFx1MDQzM1xcdTA0MzRcXHUwNDM1XFx1MDQzNlxcdTA0MzdcXHUwNDM4XFx1MDQzOVxcdTA0M0FcXHUwNDNCXFx1MDQzQ1xcdTA0M0RcXHUwNDNFXFx1MDQzRlxcdTA0NDBcXHUwNDQxXFx1MDQ0MlxcdTA0NDNcXHUwNDQ0XFx1MDQ0NVxcdTA0NDZcXHUwNDQ3XFx1MDQ0OFxcdTA0NDlcXHUwNDRBXFx1MDQ0QlxcdTA0NENcXHUwNDREXFx1MDQ0RVxceEE0XCJcbiAgICAgIH0sXG4gICAgICBcIm1hY2dyZWVrXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwiX3NiY3NcIixcbiAgICAgICAgXCJjaGFyc1wiOiBcIlxceEM0XFx4QjlcXHhCMlxceEM5XFx4QjNcXHhENlxceERDXFx1MDM4NVxceEUwXFx4RTJcXHhFNFxcdTAzODRcXHhBOFxceEU3XFx4RTlcXHhFOFxceEVBXFx4RUJcXHhBM1xcdTIxMjJcXHhFRVxceEVGXFx1MjAyMlxceEJEXFx1MjAzMFxceEY0XFx4RjZcXHhBNlxceEFEXFx4RjlcXHhGQlxceEZDXFx1MjAyMFxcdTAzOTNcXHUwMzk0XFx1MDM5OFxcdTAzOUJcXHUwMzlFXFx1MDNBMFxceERGXFx4QUVcXHhBOVxcdTAzQTNcXHUwM0FBXFx4QTdcXHUyMjYwXFx4QjBcXHUwMzg3XFx1MDM5MVxceEIxXFx1MjI2NFxcdTIyNjVcXHhBNVxcdTAzOTJcXHUwMzk1XFx1MDM5NlxcdTAzOTdcXHUwMzk5XFx1MDM5QVxcdTAzOUNcXHUwM0E2XFx1MDNBQlxcdTAzQThcXHUwM0E5XFx1MDNBQ1xcdTAzOURcXHhBQ1xcdTAzOUZcXHUwM0ExXFx1MjI0OFxcdTAzQTRcXHhBQlxceEJCXFx1MjAyNlxceEEwXFx1MDNBNVxcdTAzQTdcXHUwMzg2XFx1MDM4OFxcdTAxNTNcXHUyMDEzXFx1MjAxNVxcdTIwMUNcXHUyMDFEXFx1MjAxOFxcdTIwMTlcXHhGN1xcdTAzODlcXHUwMzhBXFx1MDM4Q1xcdTAzOEVcXHUwM0FEXFx1MDNBRVxcdTAzQUZcXHUwM0NDXFx1MDM4RlxcdTAzQ0RcXHUwM0IxXFx1MDNCMlxcdTAzQzhcXHUwM0I0XFx1MDNCNVxcdTAzQzZcXHUwM0IzXFx1MDNCN1xcdTAzQjlcXHUwM0JFXFx1MDNCQVxcdTAzQkJcXHUwM0JDXFx1MDNCRFxcdTAzQkZcXHUwM0MwXFx1MDNDRVxcdTAzQzFcXHUwM0MzXFx1MDNDNFxcdTAzQjhcXHUwM0M5XFx1MDNDMlxcdTAzQzdcXHUwM0M1XFx1MDNCNlxcdTAzQ0FcXHUwM0NCXFx1MDM5MFxcdTAzQjBcXHVGRkZEXCJcbiAgICAgIH0sXG4gICAgICBcIm1hY2ljZWxhbmRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJfc2Jjc1wiLFxuICAgICAgICBcImNoYXJzXCI6IFwiXFx4QzRcXHhDNVxceEM3XFx4QzlcXHhEMVxceEQ2XFx4RENcXHhFMVxceEUwXFx4RTJcXHhFNFxceEUzXFx4RTVcXHhFN1xceEU5XFx4RThcXHhFQVxceEVCXFx4RURcXHhFQ1xceEVFXFx4RUZcXHhGMVxceEYzXFx4RjJcXHhGNFxceEY2XFx4RjVcXHhGQVxceEY5XFx4RkJcXHhGQ1xceEREXFx4QjBcXHhBMlxceEEzXFx4QTdcXHUyMDIyXFx4QjZcXHhERlxceEFFXFx4QTlcXHUyMTIyXFx4QjRcXHhBOFxcdTIyNjBcXHhDNlxceEQ4XFx1MjIxRVxceEIxXFx1MjI2NFxcdTIyNjVcXHhBNVxceEI1XFx1MjIwMlxcdTIyMTFcXHUyMjBGXFx1MDNDMFxcdTIyMkJcXHhBQVxceEJBXFx1MjEyNlxceEU2XFx4RjhcXHhCRlxceEExXFx4QUNcXHUyMjFBXFx1MDE5MlxcdTIyNDhcXHUyMjA2XFx4QUJcXHhCQlxcdTIwMjZcXHhBMFxceEMwXFx4QzNcXHhENVxcdTAxNTJcXHUwMTUzXFx1MjAxM1xcdTIwMTRcXHUyMDFDXFx1MjAxRFxcdTIwMThcXHUyMDE5XFx4RjdcXHUyNUNBXFx4RkZcXHUwMTc4XFx1MjA0NFxceEE0XFx4RDBcXHhGMFxceERFXFx4RkVcXHhGRFxceEI3XFx1MjAxQVxcdTIwMUVcXHUyMDMwXFx4QzJcXHhDQVxceEMxXFx4Q0JcXHhDOFxceENEXFx4Q0VcXHhDRlxceENDXFx4RDNcXHhENFxcdUZGRkRcXHhEMlxceERBXFx4REJcXHhEOVxcdTAxMzFcXHUwMkM2XFx1MDJEQ1xceEFGXFx1MDJEOFxcdTAyRDlcXHUwMkRBXFx4QjhcXHUwMkREXFx1MDJEQlxcdTAyQzdcIlxuICAgICAgfSxcbiAgICAgIFwibWFjcm9tYW5cIjoge1xuICAgICAgICBcInR5cGVcIjogXCJfc2Jjc1wiLFxuICAgICAgICBcImNoYXJzXCI6IFwiXFx4QzRcXHhDNVxceEM3XFx4QzlcXHhEMVxceEQ2XFx4RENcXHhFMVxceEUwXFx4RTJcXHhFNFxceEUzXFx4RTVcXHhFN1xceEU5XFx4RThcXHhFQVxceEVCXFx4RURcXHhFQ1xceEVFXFx4RUZcXHhGMVxceEYzXFx4RjJcXHhGNFxceEY2XFx4RjVcXHhGQVxceEY5XFx4RkJcXHhGQ1xcdTIwMjBcXHhCMFxceEEyXFx4QTNcXHhBN1xcdTIwMjJcXHhCNlxceERGXFx4QUVcXHhBOVxcdTIxMjJcXHhCNFxceEE4XFx1MjI2MFxceEM2XFx4RDhcXHUyMjFFXFx4QjFcXHUyMjY0XFx1MjI2NVxceEE1XFx4QjVcXHUyMjAyXFx1MjIxMVxcdTIyMEZcXHUwM0MwXFx1MjIyQlxceEFBXFx4QkFcXHUyMTI2XFx4RTZcXHhGOFxceEJGXFx4QTFcXHhBQ1xcdTIyMUFcXHUwMTkyXFx1MjI0OFxcdTIyMDZcXHhBQlxceEJCXFx1MjAyNlxceEEwXFx4QzBcXHhDM1xceEQ1XFx1MDE1MlxcdTAxNTNcXHUyMDEzXFx1MjAxNFxcdTIwMUNcXHUyMDFEXFx1MjAxOFxcdTIwMTlcXHhGN1xcdTI1Q0FcXHhGRlxcdTAxNzhcXHUyMDQ0XFx4QTRcXHUyMDM5XFx1MjAzQVxcdUZCMDFcXHVGQjAyXFx1MjAyMVxceEI3XFx1MjAxQVxcdTIwMUVcXHUyMDMwXFx4QzJcXHhDQVxceEMxXFx4Q0JcXHhDOFxceENEXFx4Q0VcXHhDRlxceENDXFx4RDNcXHhENFxcdUZGRkRcXHhEMlxceERBXFx4REJcXHhEOVxcdTAxMzFcXHUwMkM2XFx1MDJEQ1xceEFGXFx1MDJEOFxcdTAyRDlcXHUwMkRBXFx4QjhcXHUwMkREXFx1MDJEQlxcdTAyQzdcIlxuICAgICAgfSxcbiAgICAgIFwibWFjcm9tYW5pYVwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIl9zYmNzXCIsXG4gICAgICAgIFwiY2hhcnNcIjogXCJcXHhDNFxceEM1XFx4QzdcXHhDOVxceEQxXFx4RDZcXHhEQ1xceEUxXFx4RTBcXHhFMlxceEU0XFx4RTNcXHhFNVxceEU3XFx4RTlcXHhFOFxceEVBXFx4RUJcXHhFRFxceEVDXFx4RUVcXHhFRlxceEYxXFx4RjNcXHhGMlxceEY0XFx4RjZcXHhGNVxceEZBXFx4RjlcXHhGQlxceEZDXFx1MjAyMFxceEIwXFx4QTJcXHhBM1xceEE3XFx1MjAyMlxceEI2XFx4REZcXHhBRVxceEE5XFx1MjEyMlxceEI0XFx4QThcXHUyMjYwXFx1MDEwMlxcdTAxNUVcXHUyMjFFXFx4QjFcXHUyMjY0XFx1MjI2NVxceEE1XFx4QjVcXHUyMjAyXFx1MjIxMVxcdTIyMEZcXHUwM0MwXFx1MjIyQlxceEFBXFx4QkFcXHUyMTI2XFx1MDEwM1xcdTAxNUZcXHhCRlxceEExXFx4QUNcXHUyMjFBXFx1MDE5MlxcdTIyNDhcXHUyMjA2XFx4QUJcXHhCQlxcdTIwMjZcXHhBMFxceEMwXFx4QzNcXHhENVxcdTAxNTJcXHUwMTUzXFx1MjAxM1xcdTIwMTRcXHUyMDFDXFx1MjAxRFxcdTIwMThcXHUyMDE5XFx4RjdcXHUyNUNBXFx4RkZcXHUwMTc4XFx1MjA0NFxceEE0XFx1MjAzOVxcdTIwM0FcXHUwMTYyXFx1MDE2M1xcdTIwMjFcXHhCN1xcdTIwMUFcXHUyMDFFXFx1MjAzMFxceEMyXFx4Q0FcXHhDMVxceENCXFx4QzhcXHhDRFxceENFXFx4Q0ZcXHhDQ1xceEQzXFx4RDRcXHVGRkZEXFx4RDJcXHhEQVxceERCXFx4RDlcXHUwMTMxXFx1MDJDNlxcdTAyRENcXHhBRlxcdTAyRDhcXHUwMkQ5XFx1MDJEQVxceEI4XFx1MDJERFxcdTAyREJcXHUwMkM3XCJcbiAgICAgIH0sXG4gICAgICBcIm1hY3RoYWlcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJfc2Jjc1wiLFxuICAgICAgICBcImNoYXJzXCI6IFwiXFx4QUJcXHhCQlxcdTIwMjZcXHVGODhDXFx1Rjg4RlxcdUY4OTJcXHVGODk1XFx1Rjg5OFxcdUY4OEJcXHVGODhFXFx1Rjg5MVxcdUY4OTRcXHVGODk3XFx1MjAxQ1xcdTIwMURcXHVGODk5XFx1RkZGRFxcdTIwMjJcXHVGODg0XFx1Rjg4OVxcdUY4ODVcXHVGODg2XFx1Rjg4N1xcdUY4ODhcXHVGODhBXFx1Rjg4RFxcdUY4OTBcXHVGODkzXFx1Rjg5NlxcdTIwMThcXHUyMDE5XFx1RkZGRFxceEEwXFx1MEUwMVxcdTBFMDJcXHUwRTAzXFx1MEUwNFxcdTBFMDVcXHUwRTA2XFx1MEUwN1xcdTBFMDhcXHUwRTA5XFx1MEUwQVxcdTBFMEJcXHUwRTBDXFx1MEUwRFxcdTBFMEVcXHUwRTBGXFx1MEUxMFxcdTBFMTFcXHUwRTEyXFx1MEUxM1xcdTBFMTRcXHUwRTE1XFx1MEUxNlxcdTBFMTdcXHUwRTE4XFx1MEUxOVxcdTBFMUFcXHUwRTFCXFx1MEUxQ1xcdTBFMURcXHUwRTFFXFx1MEUxRlxcdTBFMjBcXHUwRTIxXFx1MEUyMlxcdTBFMjNcXHUwRTI0XFx1MEUyNVxcdTBFMjZcXHUwRTI3XFx1MEUyOFxcdTBFMjlcXHUwRTJBXFx1MEUyQlxcdTBFMkNcXHUwRTJEXFx1MEUyRVxcdTBFMkZcXHUwRTMwXFx1MEUzMVxcdTBFMzJcXHUwRTMzXFx1MEUzNFxcdTBFMzVcXHUwRTM2XFx1MEUzN1xcdTBFMzhcXHUwRTM5XFx1MEUzQVxcdUZFRkZcXHUyMDBCXFx1MjAxM1xcdTIwMTRcXHUwRTNGXFx1MEU0MFxcdTBFNDFcXHUwRTQyXFx1MEU0M1xcdTBFNDRcXHUwRTQ1XFx1MEU0NlxcdTBFNDdcXHUwRTQ4XFx1MEU0OVxcdTBFNEFcXHUwRTRCXFx1MEU0Q1xcdTBFNERcXHUyMTIyXFx1MEU0RlxcdTBFNTBcXHUwRTUxXFx1MEU1MlxcdTBFNTNcXHUwRTU0XFx1MEU1NVxcdTBFNTZcXHUwRTU3XFx1MEU1OFxcdTBFNTlcXHhBRVxceEE5XFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFwiXG4gICAgICB9LFxuICAgICAgXCJtYWN0dXJraXNoXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwiX3NiY3NcIixcbiAgICAgICAgXCJjaGFyc1wiOiBcIlxceEM0XFx4QzVcXHhDN1xceEM5XFx4RDFcXHhENlxceERDXFx4RTFcXHhFMFxceEUyXFx4RTRcXHhFM1xceEU1XFx4RTdcXHhFOVxceEU4XFx4RUFcXHhFQlxceEVEXFx4RUNcXHhFRVxceEVGXFx4RjFcXHhGM1xceEYyXFx4RjRcXHhGNlxceEY1XFx4RkFcXHhGOVxceEZCXFx4RkNcXHUyMDIwXFx4QjBcXHhBMlxceEEzXFx4QTdcXHUyMDIyXFx4QjZcXHhERlxceEFFXFx4QTlcXHUyMTIyXFx4QjRcXHhBOFxcdTIyNjBcXHhDNlxceEQ4XFx1MjIxRVxceEIxXFx1MjI2NFxcdTIyNjVcXHhBNVxceEI1XFx1MjIwMlxcdTIyMTFcXHUyMjBGXFx1MDNDMFxcdTIyMkJcXHhBQVxceEJBXFx1MjEyNlxceEU2XFx4RjhcXHhCRlxceEExXFx4QUNcXHUyMjFBXFx1MDE5MlxcdTIyNDhcXHUyMjA2XFx4QUJcXHhCQlxcdTIwMjZcXHhBMFxceEMwXFx4QzNcXHhENVxcdTAxNTJcXHUwMTUzXFx1MjAxM1xcdTIwMTRcXHUyMDFDXFx1MjAxRFxcdTIwMThcXHUyMDE5XFx4RjdcXHUyNUNBXFx4RkZcXHUwMTc4XFx1MDExRVxcdTAxMUZcXHUwMTMwXFx1MDEzMVxcdTAxNUVcXHUwMTVGXFx1MjAyMVxceEI3XFx1MjAxQVxcdTIwMUVcXHUyMDMwXFx4QzJcXHhDQVxceEMxXFx4Q0JcXHhDOFxceENEXFx4Q0VcXHhDRlxceENDXFx4RDNcXHhENFxcdUZGRkRcXHhEMlxceERBXFx4REJcXHhEOVxcdUZGRkRcXHUwMkM2XFx1MDJEQ1xceEFGXFx1MDJEOFxcdTAyRDlcXHUwMkRBXFx4QjhcXHUwMkREXFx1MDJEQlxcdTAyQzdcIlxuICAgICAgfSxcbiAgICAgIFwibWFjdWtyYWluZVwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIl9zYmNzXCIsXG4gICAgICAgIFwiY2hhcnNcIjogXCJcXHUwNDEwXFx1MDQxMVxcdTA0MTJcXHUwNDEzXFx1MDQxNFxcdTA0MTVcXHUwNDE2XFx1MDQxN1xcdTA0MThcXHUwNDE5XFx1MDQxQVxcdTA0MUJcXHUwNDFDXFx1MDQxRFxcdTA0MUVcXHUwNDFGXFx1MDQyMFxcdTA0MjFcXHUwNDIyXFx1MDQyM1xcdTA0MjRcXHUwNDI1XFx1MDQyNlxcdTA0MjdcXHUwNDI4XFx1MDQyOVxcdTA0MkFcXHUwNDJCXFx1MDQyQ1xcdTA0MkRcXHUwNDJFXFx1MDQyRlxcdTIwMjBcXHhCMFxcdTA0OTBcXHhBM1xceEE3XFx1MjAyMlxceEI2XFx1MDQwNlxceEFFXFx4QTlcXHUyMTIyXFx1MDQwMlxcdTA0NTJcXHUyMjYwXFx1MDQwM1xcdTA0NTNcXHUyMjFFXFx4QjFcXHUyMjY0XFx1MjI2NVxcdTA0NTZcXHhCNVxcdTA0OTFcXHUwNDA4XFx1MDQwNFxcdTA0NTRcXHUwNDA3XFx1MDQ1N1xcdTA0MDlcXHUwNDU5XFx1MDQwQVxcdTA0NUFcXHUwNDU4XFx1MDQwNVxceEFDXFx1MjIxQVxcdTAxOTJcXHUyMjQ4XFx1MjIwNlxceEFCXFx4QkJcXHUyMDI2XFx4QTBcXHUwNDBCXFx1MDQ1QlxcdTA0MENcXHUwNDVDXFx1MDQ1NVxcdTIwMTNcXHUyMDE0XFx1MjAxQ1xcdTIwMURcXHUyMDE4XFx1MjAxOVxceEY3XFx1MjAxRVxcdTA0MEVcXHUwNDVFXFx1MDQwRlxcdTA0NUZcXHUyMTE2XFx1MDQwMVxcdTA0NTFcXHUwNDRGXFx1MDQzMFxcdTA0MzFcXHUwNDMyXFx1MDQzM1xcdTA0MzRcXHUwNDM1XFx1MDQzNlxcdTA0MzdcXHUwNDM4XFx1MDQzOVxcdTA0M0FcXHUwNDNCXFx1MDQzQ1xcdTA0M0RcXHUwNDNFXFx1MDQzRlxcdTA0NDBcXHUwNDQxXFx1MDQ0MlxcdTA0NDNcXHUwNDQ0XFx1MDQ0NVxcdTA0NDZcXHUwNDQ3XFx1MDQ0OFxcdTA0NDlcXHUwNDRBXFx1MDQ0QlxcdTA0NENcXHUwNDREXFx1MDQ0RVxceEE0XCJcbiAgICAgIH0sXG4gICAgICBcImtvaThyXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwiX3NiY3NcIixcbiAgICAgICAgXCJjaGFyc1wiOiBcIlxcdTI1MDBcXHUyNTAyXFx1MjUwQ1xcdTI1MTBcXHUyNTE0XFx1MjUxOFxcdTI1MUNcXHUyNTI0XFx1MjUyQ1xcdTI1MzRcXHUyNTNDXFx1MjU4MFxcdTI1ODRcXHUyNTg4XFx1MjU4Q1xcdTI1OTBcXHUyNTkxXFx1MjU5MlxcdTI1OTNcXHUyMzIwXFx1MjVBMFxcdTIyMTlcXHUyMjFBXFx1MjI0OFxcdTIyNjRcXHUyMjY1XFx4QTBcXHUyMzIxXFx4QjBcXHhCMlxceEI3XFx4RjdcXHUyNTUwXFx1MjU1MVxcdTI1NTJcXHUwNDUxXFx1MjU1M1xcdTI1NTRcXHUyNTU1XFx1MjU1NlxcdTI1NTdcXHUyNTU4XFx1MjU1OVxcdTI1NUFcXHUyNTVCXFx1MjU1Q1xcdTI1NURcXHUyNTVFXFx1MjU1RlxcdTI1NjBcXHUyNTYxXFx1MDQwMVxcdTI1NjJcXHUyNTYzXFx1MjU2NFxcdTI1NjVcXHUyNTY2XFx1MjU2N1xcdTI1NjhcXHUyNTY5XFx1MjU2QVxcdTI1NkJcXHUyNTZDXFx4QTlcXHUwNDRFXFx1MDQzMFxcdTA0MzFcXHUwNDQ2XFx1MDQzNFxcdTA0MzVcXHUwNDQ0XFx1MDQzM1xcdTA0NDVcXHUwNDM4XFx1MDQzOVxcdTA0M0FcXHUwNDNCXFx1MDQzQ1xcdTA0M0RcXHUwNDNFXFx1MDQzRlxcdTA0NEZcXHUwNDQwXFx1MDQ0MVxcdTA0NDJcXHUwNDQzXFx1MDQzNlxcdTA0MzJcXHUwNDRDXFx1MDQ0QlxcdTA0MzdcXHUwNDQ4XFx1MDQ0RFxcdTA0NDlcXHUwNDQ3XFx1MDQ0QVxcdTA0MkVcXHUwNDEwXFx1MDQxMVxcdTA0MjZcXHUwNDE0XFx1MDQxNVxcdTA0MjRcXHUwNDEzXFx1MDQyNVxcdTA0MThcXHUwNDE5XFx1MDQxQVxcdTA0MUJcXHUwNDFDXFx1MDQxRFxcdTA0MUVcXHUwNDFGXFx1MDQyRlxcdTA0MjBcXHUwNDIxXFx1MDQyMlxcdTA0MjNcXHUwNDE2XFx1MDQxMlxcdTA0MkNcXHUwNDJCXFx1MDQxN1xcdTA0MjhcXHUwNDJEXFx1MDQyOVxcdTA0MjdcXHUwNDJBXCJcbiAgICAgIH0sXG4gICAgICBcImtvaTh1XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwiX3NiY3NcIixcbiAgICAgICAgXCJjaGFyc1wiOiBcIlxcdTI1MDBcXHUyNTAyXFx1MjUwQ1xcdTI1MTBcXHUyNTE0XFx1MjUxOFxcdTI1MUNcXHUyNTI0XFx1MjUyQ1xcdTI1MzRcXHUyNTNDXFx1MjU4MFxcdTI1ODRcXHUyNTg4XFx1MjU4Q1xcdTI1OTBcXHUyNTkxXFx1MjU5MlxcdTI1OTNcXHUyMzIwXFx1MjVBMFxcdTIyMTlcXHUyMjFBXFx1MjI0OFxcdTIyNjRcXHUyMjY1XFx4QTBcXHUyMzIxXFx4QjBcXHhCMlxceEI3XFx4RjdcXHUyNTUwXFx1MjU1MVxcdTI1NTJcXHUwNDUxXFx1MDQ1NFxcdTI1NTRcXHUwNDU2XFx1MDQ1N1xcdTI1NTdcXHUyNTU4XFx1MjU1OVxcdTI1NUFcXHUyNTVCXFx1MDQ5MVxcdTI1NURcXHUyNTVFXFx1MjU1RlxcdTI1NjBcXHUyNTYxXFx1MDQwMVxcdTA0MDRcXHUyNTYzXFx1MDQwNlxcdTA0MDdcXHUyNTY2XFx1MjU2N1xcdTI1NjhcXHUyNTY5XFx1MjU2QVxcdTA0OTBcXHUyNTZDXFx4QTlcXHUwNDRFXFx1MDQzMFxcdTA0MzFcXHUwNDQ2XFx1MDQzNFxcdTA0MzVcXHUwNDQ0XFx1MDQzM1xcdTA0NDVcXHUwNDM4XFx1MDQzOVxcdTA0M0FcXHUwNDNCXFx1MDQzQ1xcdTA0M0RcXHUwNDNFXFx1MDQzRlxcdTA0NEZcXHUwNDQwXFx1MDQ0MVxcdTA0NDJcXHUwNDQzXFx1MDQzNlxcdTA0MzJcXHUwNDRDXFx1MDQ0QlxcdTA0MzdcXHUwNDQ4XFx1MDQ0RFxcdTA0NDlcXHUwNDQ3XFx1MDQ0QVxcdTA0MkVcXHUwNDEwXFx1MDQxMVxcdTA0MjZcXHUwNDE0XFx1MDQxNVxcdTA0MjRcXHUwNDEzXFx1MDQyNVxcdTA0MThcXHUwNDE5XFx1MDQxQVxcdTA0MUJcXHUwNDFDXFx1MDQxRFxcdTA0MUVcXHUwNDFGXFx1MDQyRlxcdTA0MjBcXHUwNDIxXFx1MDQyMlxcdTA0MjNcXHUwNDE2XFx1MDQxMlxcdTA0MkNcXHUwNDJCXFx1MDQxN1xcdTA0MjhcXHUwNDJEXFx1MDQyOVxcdTA0MjdcXHUwNDJBXCJcbiAgICAgIH0sXG4gICAgICBcImtvaThydVwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIl9zYmNzXCIsXG4gICAgICAgIFwiY2hhcnNcIjogXCJcXHUyNTAwXFx1MjUwMlxcdTI1MENcXHUyNTEwXFx1MjUxNFxcdTI1MThcXHUyNTFDXFx1MjUyNFxcdTI1MkNcXHUyNTM0XFx1MjUzQ1xcdTI1ODBcXHUyNTg0XFx1MjU4OFxcdTI1OENcXHUyNTkwXFx1MjU5MVxcdTI1OTJcXHUyNTkzXFx1MjMyMFxcdTI1QTBcXHUyMjE5XFx1MjIxQVxcdTIyNDhcXHUyMjY0XFx1MjI2NVxceEEwXFx1MjMyMVxceEIwXFx4QjJcXHhCN1xceEY3XFx1MjU1MFxcdTI1NTFcXHUyNTUyXFx1MDQ1MVxcdTA0NTRcXHUyNTU0XFx1MDQ1NlxcdTA0NTdcXHUyNTU3XFx1MjU1OFxcdTI1NTlcXHUyNTVBXFx1MjU1QlxcdTA0OTFcXHUwNDVFXFx1MjU1RVxcdTI1NUZcXHUyNTYwXFx1MjU2MVxcdTA0MDFcXHUwNDA0XFx1MjU2M1xcdTA0MDZcXHUwNDA3XFx1MjU2NlxcdTI1NjdcXHUyNTY4XFx1MjU2OVxcdTI1NkFcXHUwNDkwXFx1MDQwRVxceEE5XFx1MDQ0RVxcdTA0MzBcXHUwNDMxXFx1MDQ0NlxcdTA0MzRcXHUwNDM1XFx1MDQ0NFxcdTA0MzNcXHUwNDQ1XFx1MDQzOFxcdTA0MzlcXHUwNDNBXFx1MDQzQlxcdTA0M0NcXHUwNDNEXFx1MDQzRVxcdTA0M0ZcXHUwNDRGXFx1MDQ0MFxcdTA0NDFcXHUwNDQyXFx1MDQ0M1xcdTA0MzZcXHUwNDMyXFx1MDQ0Q1xcdTA0NEJcXHUwNDM3XFx1MDQ0OFxcdTA0NERcXHUwNDQ5XFx1MDQ0N1xcdTA0NEFcXHUwNDJFXFx1MDQxMFxcdTA0MTFcXHUwNDI2XFx1MDQxNFxcdTA0MTVcXHUwNDI0XFx1MDQxM1xcdTA0MjVcXHUwNDE4XFx1MDQxOVxcdTA0MUFcXHUwNDFCXFx1MDQxQ1xcdTA0MURcXHUwNDFFXFx1MDQxRlxcdTA0MkZcXHUwNDIwXFx1MDQyMVxcdTA0MjJcXHUwNDIzXFx1MDQxNlxcdTA0MTJcXHUwNDJDXFx1MDQyQlxcdTA0MTdcXHUwNDI4XFx1MDQyRFxcdTA0MjlcXHUwNDI3XFx1MDQyQVwiXG4gICAgICB9LFxuICAgICAgXCJrb2k4dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIl9zYmNzXCIsXG4gICAgICAgIFwiY2hhcnNcIjogXCJcXHUwNDlCXFx1MDQ5M1xcdTIwMUFcXHUwNDkyXFx1MjAxRVxcdTIwMjZcXHUyMDIwXFx1MjAyMVxcdUZGRkRcXHUyMDMwXFx1MDRCM1xcdTIwMzlcXHUwNEIyXFx1MDRCN1xcdTA0QjZcXHVGRkZEXFx1MDQ5QVxcdTIwMThcXHUyMDE5XFx1MjAxQ1xcdTIwMURcXHUyMDIyXFx1MjAxM1xcdTIwMTRcXHVGRkZEXFx1MjEyMlxcdUZGRkRcXHUyMDNBXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHUwNEVGXFx1MDRFRVxcdTA0NTFcXHhBNFxcdTA0RTNcXHhBNlxceEE3XFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx4QUJcXHhBQ1xceEFEXFx4QUVcXHVGRkZEXFx4QjBcXHhCMVxceEIyXFx1MDQwMVxcdUZGRkRcXHUwNEUyXFx4QjZcXHhCN1xcdUZGRkRcXHUyMTE2XFx1RkZGRFxceEJCXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx4QTlcXHUwNDRFXFx1MDQzMFxcdTA0MzFcXHUwNDQ2XFx1MDQzNFxcdTA0MzVcXHUwNDQ0XFx1MDQzM1xcdTA0NDVcXHUwNDM4XFx1MDQzOVxcdTA0M0FcXHUwNDNCXFx1MDQzQ1xcdTA0M0RcXHUwNDNFXFx1MDQzRlxcdTA0NEZcXHUwNDQwXFx1MDQ0MVxcdTA0NDJcXHUwNDQzXFx1MDQzNlxcdTA0MzJcXHUwNDRDXFx1MDQ0QlxcdTA0MzdcXHUwNDQ4XFx1MDQ0RFxcdTA0NDlcXHUwNDQ3XFx1MDQ0QVxcdTA0MkVcXHUwNDEwXFx1MDQxMVxcdTA0MjZcXHUwNDE0XFx1MDQxNVxcdTA0MjRcXHUwNDEzXFx1MDQyNVxcdTA0MThcXHUwNDE5XFx1MDQxQVxcdTA0MUJcXHUwNDFDXFx1MDQxRFxcdTA0MUVcXHUwNDFGXFx1MDQyRlxcdTA0MjBcXHUwNDIxXFx1MDQyMlxcdTA0MjNcXHUwNDE2XFx1MDQxMlxcdTA0MkNcXHUwNDJCXFx1MDQxN1xcdTA0MjhcXHUwNDJEXFx1MDQyOVxcdTA0MjdcXHUwNDJBXCJcbiAgICAgIH0sXG4gICAgICBcImFybXNjaWk4XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwiX3NiY3NcIixcbiAgICAgICAgXCJjaGFyc1wiOiBcIlxceDgwXFx4ODFcXHg4MlxceDgzXFx4ODRcXHg4NVxceDg2XFx4ODdcXHg4OFxceDg5XFx4OEFcXHg4QlxceDhDXFx4OERcXHg4RVxceDhGXFx4OTBcXHg5MVxceDkyXFx4OTNcXHg5NFxceDk1XFx4OTZcXHg5N1xceDk4XFx4OTlcXHg5QVxceDlCXFx4OUNcXHg5RFxceDlFXFx4OUZcXHhBMFxcdUZGRkRcXHUwNTg3XFx1MDU4OSkoXFx4QkJcXHhBQlxcdTIwMTQuXFx1MDU1RCwtXFx1MDU4QVxcdTIwMjZcXHUwNTVDXFx1MDU1QlxcdTA1NUVcXHUwNTMxXFx1MDU2MVxcdTA1MzJcXHUwNTYyXFx1MDUzM1xcdTA1NjNcXHUwNTM0XFx1MDU2NFxcdTA1MzVcXHUwNTY1XFx1MDUzNlxcdTA1NjZcXHUwNTM3XFx1MDU2N1xcdTA1MzhcXHUwNTY4XFx1MDUzOVxcdTA1NjlcXHUwNTNBXFx1MDU2QVxcdTA1M0JcXHUwNTZCXFx1MDUzQ1xcdTA1NkNcXHUwNTNEXFx1MDU2RFxcdTA1M0VcXHUwNTZFXFx1MDUzRlxcdTA1NkZcXHUwNTQwXFx1MDU3MFxcdTA1NDFcXHUwNTcxXFx1MDU0MlxcdTA1NzJcXHUwNTQzXFx1MDU3M1xcdTA1NDRcXHUwNTc0XFx1MDU0NVxcdTA1NzVcXHUwNTQ2XFx1MDU3NlxcdTA1NDdcXHUwNTc3XFx1MDU0OFxcdTA1NzhcXHUwNTQ5XFx1MDU3OVxcdTA1NEFcXHUwNTdBXFx1MDU0QlxcdTA1N0JcXHUwNTRDXFx1MDU3Q1xcdTA1NERcXHUwNTdEXFx1MDU0RVxcdTA1N0VcXHUwNTRGXFx1MDU3RlxcdTA1NTBcXHUwNTgwXFx1MDU1MVxcdTA1ODFcXHUwNTUyXFx1MDU4MlxcdTA1NTNcXHUwNTgzXFx1MDU1NFxcdTA1ODRcXHUwNTU1XFx1MDU4NVxcdTA1NTZcXHUwNTg2XFx1MDU1QVxcdUZGRkRcIlxuICAgICAgfSxcbiAgICAgIFwicmsxMDQ4XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwiX3NiY3NcIixcbiAgICAgICAgXCJjaGFyc1wiOiBcIlxcdTA0MDJcXHUwNDAzXFx1MjAxQVxcdTA0NTNcXHUyMDFFXFx1MjAyNlxcdTIwMjBcXHUyMDIxXFx1MjBBQ1xcdTIwMzBcXHUwNDA5XFx1MjAzOVxcdTA0MEFcXHUwNDlBXFx1MDRCQVxcdTA0MEZcXHUwNDUyXFx1MjAxOFxcdTIwMTlcXHUyMDFDXFx1MjAxRFxcdTIwMjJcXHUyMDEzXFx1MjAxNFxcdUZGRkRcXHUyMTIyXFx1MDQ1OVxcdTIwM0FcXHUwNDVBXFx1MDQ5QlxcdTA0QkJcXHUwNDVGXFx4QTBcXHUwNEIwXFx1MDRCMVxcdTA0RDhcXHhBNFxcdTA0RThcXHhBNlxceEE3XFx1MDQwMVxceEE5XFx1MDQ5MlxceEFCXFx4QUNcXHhBRFxceEFFXFx1MDRBRVxceEIwXFx4QjFcXHUwNDA2XFx1MDQ1NlxcdTA0RTlcXHhCNVxceEI2XFx4QjdcXHUwNDUxXFx1MjExNlxcdTA0OTNcXHhCQlxcdTA0RDlcXHUwNEEyXFx1MDRBM1xcdTA0QUZcXHUwNDEwXFx1MDQxMVxcdTA0MTJcXHUwNDEzXFx1MDQxNFxcdTA0MTVcXHUwNDE2XFx1MDQxN1xcdTA0MThcXHUwNDE5XFx1MDQxQVxcdTA0MUJcXHUwNDFDXFx1MDQxRFxcdTA0MUVcXHUwNDFGXFx1MDQyMFxcdTA0MjFcXHUwNDIyXFx1MDQyM1xcdTA0MjRcXHUwNDI1XFx1MDQyNlxcdTA0MjdcXHUwNDI4XFx1MDQyOVxcdTA0MkFcXHUwNDJCXFx1MDQyQ1xcdTA0MkRcXHUwNDJFXFx1MDQyRlxcdTA0MzBcXHUwNDMxXFx1MDQzMlxcdTA0MzNcXHUwNDM0XFx1MDQzNVxcdTA0MzZcXHUwNDM3XFx1MDQzOFxcdTA0MzlcXHUwNDNBXFx1MDQzQlxcdTA0M0NcXHUwNDNEXFx1MDQzRVxcdTA0M0ZcXHUwNDQwXFx1MDQ0MVxcdTA0NDJcXHUwNDQzXFx1MDQ0NFxcdTA0NDVcXHUwNDQ2XFx1MDQ0N1xcdTA0NDhcXHUwNDQ5XFx1MDQ0QVxcdTA0NEJcXHUwNDRDXFx1MDQ0RFxcdTA0NEVcXHUwNDRGXCJcbiAgICAgIH0sXG4gICAgICBcInRjdm5cIjoge1xuICAgICAgICBcInR5cGVcIjogXCJfc2Jjc1wiLFxuICAgICAgICBcImNoYXJzXCI6IFwiXFwwXFx4REFcXHUxRUU0XHUwMDAzXFx1MUVFQVxcdTFFRUNcXHUxRUVFXFx4MDdcXGJcdFxcblxcdlxcZlxcclx1MDAwRVx1MDAwRlx1MDAxMFxcdTFFRThcXHUxRUYwXFx1MUVGMlxcdTFFRjZcXHUxRUY4XFx4RERcXHUxRUY0XHUwMDE4XHUwMDE5XHUwMDFBXFx4MUJcdTAwMUNcdTAwMURcdTAwMUVcdTAwMUYgIVxcXCIjJCUmJygpKissLS4vMDEyMzQ1Njc4OTo7PD0+P0BBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWltcXFxcXV5fYGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6e3x9flxceDdGXFx4QzBcXHUxRUEyXFx4QzNcXHhDMVxcdTFFQTBcXHUxRUI2XFx1MUVBQ1xceEM4XFx1MUVCQVxcdTFFQkNcXHhDOVxcdTFFQjhcXHUxRUM2XFx4Q0NcXHUxRUM4XFx1MDEyOFxceENEXFx1MUVDQVxceEQyXFx1MUVDRVxceEQ1XFx4RDNcXHUxRUNDXFx1MUVEOFxcdTFFRENcXHUxRURFXFx1MUVFMFxcdTFFREFcXHUxRUUyXFx4RDlcXHUxRUU2XFx1MDE2OFxceEEwXFx1MDEwMlxceEMyXFx4Q0FcXHhENFxcdTAxQTBcXHUwMUFGXFx1MDExMFxcdTAxMDNcXHhFMlxceEVBXFx4RjRcXHUwMUExXFx1MDFCMFxcdTAxMTFcXHUxRUIwXFx1MDMwMFxcdTAzMDlcXHUwMzAzXFx1MDMwMVxcdTAzMjNcXHhFMFxcdTFFQTNcXHhFM1xceEUxXFx1MUVBMVxcdTFFQjJcXHUxRUIxXFx1MUVCM1xcdTFFQjVcXHUxRUFGXFx1MUVCNFxcdTFFQUVcXHUxRUE2XFx1MUVBOFxcdTFFQUFcXHUxRUE0XFx1MUVDMFxcdTFFQjdcXHUxRUE3XFx1MUVBOVxcdTFFQUJcXHUxRUE1XFx1MUVBRFxceEU4XFx1MUVDMlxcdTFFQkJcXHUxRUJEXFx4RTlcXHUxRUI5XFx1MUVDMVxcdTFFQzNcXHUxRUM1XFx1MUVCRlxcdTFFQzdcXHhFQ1xcdTFFQzlcXHUxRUM0XFx1MUVCRVxcdTFFRDJcXHUwMTI5XFx4RURcXHUxRUNCXFx4RjJcXHUxRUQ0XFx1MUVDRlxceEY1XFx4RjNcXHUxRUNEXFx1MUVEM1xcdTFFRDVcXHUxRUQ3XFx1MUVEMVxcdTFFRDlcXHUxRUREXFx1MUVERlxcdTFFRTFcXHUxRURCXFx1MUVFM1xceEY5XFx1MUVENlxcdTFFRTdcXHUwMTY5XFx4RkFcXHUxRUU1XFx1MUVFQlxcdTFFRURcXHUxRUVGXFx1MUVFOVxcdTFFRjFcXHUxRUYzXFx1MUVGN1xcdTFFRjlcXHhGRFxcdTFFRjVcXHUxRUQwXCJcbiAgICAgIH0sXG4gICAgICBcImdlb3JnaWFuYWNhZGVteVwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIl9zYmNzXCIsXG4gICAgICAgIFwiY2hhcnNcIjogXCJcXHg4MFxceDgxXFx1MjAxQVxcdTAxOTJcXHUyMDFFXFx1MjAyNlxcdTIwMjBcXHUyMDIxXFx1MDJDNlxcdTIwMzBcXHUwMTYwXFx1MjAzOVxcdTAxNTJcXHg4RFxceDhFXFx4OEZcXHg5MFxcdTIwMThcXHUyMDE5XFx1MjAxQ1xcdTIwMURcXHUyMDIyXFx1MjAxM1xcdTIwMTRcXHUwMkRDXFx1MjEyMlxcdTAxNjFcXHUyMDNBXFx1MDE1M1xceDlEXFx4OUVcXHUwMTc4XFx4QTBcXHhBMVxceEEyXFx4QTNcXHhBNFxceEE1XFx4QTZcXHhBN1xceEE4XFx4QTlcXHhBQVxceEFCXFx4QUNcXHhBRFxceEFFXFx4QUZcXHhCMFxceEIxXFx4QjJcXHhCM1xceEI0XFx4QjVcXHhCNlxceEI3XFx4QjhcXHhCOVxceEJBXFx4QkJcXHhCQ1xceEJEXFx4QkVcXHhCRlxcdTEwRDBcXHUxMEQxXFx1MTBEMlxcdTEwRDNcXHUxMEQ0XFx1MTBENVxcdTEwRDZcXHUxMEQ3XFx1MTBEOFxcdTEwRDlcXHUxMERBXFx1MTBEQlxcdTEwRENcXHUxMEREXFx1MTBERVxcdTEwREZcXHUxMEUwXFx1MTBFMVxcdTEwRTJcXHUxMEUzXFx1MTBFNFxcdTEwRTVcXHUxMEU2XFx1MTBFN1xcdTEwRThcXHUxMEU5XFx1MTBFQVxcdTEwRUJcXHUxMEVDXFx1MTBFRFxcdTEwRUVcXHUxMEVGXFx1MTBGMFxcdTEwRjFcXHUxMEYyXFx1MTBGM1xcdTEwRjRcXHUxMEY1XFx1MTBGNlxceEU3XFx4RThcXHhFOVxceEVBXFx4RUJcXHhFQ1xceEVEXFx4RUVcXHhFRlxceEYwXFx4RjFcXHhGMlxceEYzXFx4RjRcXHhGNVxceEY2XFx4RjdcXHhGOFxceEY5XFx4RkFcXHhGQlxceEZDXFx4RkRcXHhGRVxceEZGXCJcbiAgICAgIH0sXG4gICAgICBcImdlb3JnaWFucHNcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJfc2Jjc1wiLFxuICAgICAgICBcImNoYXJzXCI6IFwiXFx4ODBcXHg4MVxcdTIwMUFcXHUwMTkyXFx1MjAxRVxcdTIwMjZcXHUyMDIwXFx1MjAyMVxcdTAyQzZcXHUyMDMwXFx1MDE2MFxcdTIwMzlcXHUwMTUyXFx4OERcXHg4RVxceDhGXFx4OTBcXHUyMDE4XFx1MjAxOVxcdTIwMUNcXHUyMDFEXFx1MjAyMlxcdTIwMTNcXHUyMDE0XFx1MDJEQ1xcdTIxMjJcXHUwMTYxXFx1MjAzQVxcdTAxNTNcXHg5RFxceDlFXFx1MDE3OFxceEEwXFx4QTFcXHhBMlxceEEzXFx4QTRcXHhBNVxceEE2XFx4QTdcXHhBOFxceEE5XFx4QUFcXHhBQlxceEFDXFx4QURcXHhBRVxceEFGXFx4QjBcXHhCMVxceEIyXFx4QjNcXHhCNFxceEI1XFx4QjZcXHhCN1xceEI4XFx4QjlcXHhCQVxceEJCXFx4QkNcXHhCRFxceEJFXFx4QkZcXHUxMEQwXFx1MTBEMVxcdTEwRDJcXHUxMEQzXFx1MTBENFxcdTEwRDVcXHUxMEQ2XFx1MTBGMVxcdTEwRDdcXHUxMEQ4XFx1MTBEOVxcdTEwREFcXHUxMERCXFx1MTBEQ1xcdTEwRjJcXHUxMEREXFx1MTBERVxcdTEwREZcXHUxMEUwXFx1MTBFMVxcdTEwRTJcXHUxMEYzXFx1MTBFM1xcdTEwRTRcXHUxMEU1XFx1MTBFNlxcdTEwRTdcXHUxMEU4XFx1MTBFOVxcdTEwRUFcXHUxMEVCXFx1MTBFQ1xcdTEwRURcXHUxMEVFXFx1MTBGNFxcdTEwRUZcXHUxMEYwXFx1MTBGNVxceEU2XFx4RTdcXHhFOFxceEU5XFx4RUFcXHhFQlxceEVDXFx4RURcXHhFRVxceEVGXFx4RjBcXHhGMVxceEYyXFx4RjNcXHhGNFxceEY1XFx4RjZcXHhGN1xceEY4XFx4RjlcXHhGQVxceEZCXFx4RkNcXHhGRFxceEZFXFx4RkZcIlxuICAgICAgfSxcbiAgICAgIFwicHQxNTRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJfc2Jjc1wiLFxuICAgICAgICBcImNoYXJzXCI6IFwiXFx1MDQ5NlxcdTA0OTJcXHUwNEVFXFx1MDQ5M1xcdTIwMUVcXHUyMDI2XFx1MDRCNlxcdTA0QUVcXHUwNEIyXFx1MDRBRlxcdTA0QTBcXHUwNEUyXFx1MDRBMlxcdTA0OUFcXHUwNEJBXFx1MDRCOFxcdTA0OTdcXHUyMDE4XFx1MjAxOVxcdTIwMUNcXHUyMDFEXFx1MjAyMlxcdTIwMTNcXHUyMDE0XFx1MDRCM1xcdTA0QjdcXHUwNEExXFx1MDRFM1xcdTA0QTNcXHUwNDlCXFx1MDRCQlxcdTA0QjlcXHhBMFxcdTA0MEVcXHUwNDVFXFx1MDQwOFxcdTA0RThcXHUwNDk4XFx1MDRCMFxceEE3XFx1MDQwMVxceEE5XFx1MDREOFxceEFCXFx4QUNcXHUwNEVGXFx4QUVcXHUwNDlDXFx4QjBcXHUwNEIxXFx1MDQwNlxcdTA0NTZcXHUwNDk5XFx1MDRFOVxceEI2XFx4QjdcXHUwNDUxXFx1MjExNlxcdTA0RDlcXHhCQlxcdTA0NThcXHUwNEFBXFx1MDRBQlxcdTA0OURcXHUwNDEwXFx1MDQxMVxcdTA0MTJcXHUwNDEzXFx1MDQxNFxcdTA0MTVcXHUwNDE2XFx1MDQxN1xcdTA0MThcXHUwNDE5XFx1MDQxQVxcdTA0MUJcXHUwNDFDXFx1MDQxRFxcdTA0MUVcXHUwNDFGXFx1MDQyMFxcdTA0MjFcXHUwNDIyXFx1MDQyM1xcdTA0MjRcXHUwNDI1XFx1MDQyNlxcdTA0MjdcXHUwNDI4XFx1MDQyOVxcdTA0MkFcXHUwNDJCXFx1MDQyQ1xcdTA0MkRcXHUwNDJFXFx1MDQyRlxcdTA0MzBcXHUwNDMxXFx1MDQzMlxcdTA0MzNcXHUwNDM0XFx1MDQzNVxcdTA0MzZcXHUwNDM3XFx1MDQzOFxcdTA0MzlcXHUwNDNBXFx1MDQzQlxcdTA0M0NcXHUwNDNEXFx1MDQzRVxcdTA0M0ZcXHUwNDQwXFx1MDQ0MVxcdTA0NDJcXHUwNDQzXFx1MDQ0NFxcdTA0NDVcXHUwNDQ2XFx1MDQ0N1xcdTA0NDhcXHUwNDQ5XFx1MDQ0QVxcdTA0NEJcXHUwNDRDXFx1MDQ0RFxcdTA0NEVcXHUwNDRGXCJcbiAgICAgIH0sXG4gICAgICBcInZpc2NpaVwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIl9zYmNzXCIsXG4gICAgICAgIFwiY2hhcnNcIjogXCJcXDBcdTAwMDFcXHUxRUIyXHUwMDAzXHUwMDA0XFx1MUVCNFxcdTFFQUFcXHgwN1xcYlx0XFxuXFx2XFxmXFxyXHUwMDBFXHUwMDBGXHUwMDEwXHUwMDExXHUwMDEyXHUwMDEzXFx1MUVGNlx1MDAxNVx1MDAxNlx1MDAxN1x1MDAxOFxcdTFFRjhcdTAwMUFcXHgxQlx1MDAxQ1x1MDAxRFxcdTFFRjRcdTAwMUYgIVxcXCIjJCUmJygpKissLS4vMDEyMzQ1Njc4OTo7PD0+P0BBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWltcXFxcXV5fYGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6e3x9flxceDdGXFx1MUVBMFxcdTFFQUVcXHUxRUIwXFx1MUVCNlxcdTFFQTRcXHUxRUE2XFx1MUVBOFxcdTFFQUNcXHUxRUJDXFx1MUVCOFxcdTFFQkVcXHUxRUMwXFx1MUVDMlxcdTFFQzRcXHUxRUM2XFx1MUVEMFxcdTFFRDJcXHUxRUQ0XFx1MUVENlxcdTFFRDhcXHUxRUUyXFx1MUVEQVxcdTFFRENcXHUxRURFXFx1MUVDQVxcdTFFQ0VcXHUxRUNDXFx1MUVDOFxcdTFFRTZcXHUwMTY4XFx1MUVFNFxcdTFFRjJcXHhENVxcdTFFQUZcXHUxRUIxXFx1MUVCN1xcdTFFQTVcXHUxRUE3XFx1MUVBOVxcdTFFQURcXHUxRUJEXFx1MUVCOVxcdTFFQkZcXHUxRUMxXFx1MUVDM1xcdTFFQzVcXHUxRUM3XFx1MUVEMVxcdTFFRDNcXHUxRUQ1XFx1MUVEN1xcdTFFRTBcXHUwMUEwXFx1MUVEOVxcdTFFRERcXHUxRURGXFx1MUVDQlxcdTFFRjBcXHUxRUU4XFx1MUVFQVxcdTFFRUNcXHUwMUExXFx1MUVEQlxcdTAxQUZcXHhDMFxceEMxXFx4QzJcXHhDM1xcdTFFQTJcXHUwMTAyXFx1MUVCM1xcdTFFQjVcXHhDOFxceEM5XFx4Q0FcXHUxRUJBXFx4Q0NcXHhDRFxcdTAxMjhcXHUxRUYzXFx1MDExMFxcdTFFRTlcXHhEMlxceEQzXFx4RDRcXHUxRUExXFx1MUVGN1xcdTFFRUJcXHUxRUVEXFx4RDlcXHhEQVxcdTFFRjlcXHUxRUY1XFx4RERcXHUxRUUxXFx1MDFCMFxceEUwXFx4RTFcXHhFMlxceEUzXFx1MUVBM1xcdTAxMDNcXHUxRUVGXFx1MUVBQlxceEU4XFx4RTlcXHhFQVxcdTFFQkJcXHhFQ1xceEVEXFx1MDEyOVxcdTFFQzlcXHUwMTExXFx1MUVGMVxceEYyXFx4RjNcXHhGNFxceEY1XFx1MUVDRlxcdTFFQ0RcXHUxRUU1XFx4RjlcXHhGQVxcdTAxNjlcXHUxRUU3XFx4RkRcXHUxRUUzXFx1MUVFRVwiXG4gICAgICB9LFxuICAgICAgXCJpc282NDZjblwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIl9zYmNzXCIsXG4gICAgICAgIFwiY2hhcnNcIjogXCJcXDBcdTAwMDFcdTAwMDJcdTAwMDNcdTAwMDRcdTAwMDVcdTAwMDZcXHgwN1xcYlx0XFxuXFx2XFxmXFxyXHUwMDBFXHUwMDBGXHUwMDEwXHUwMDExXHUwMDEyXHUwMDEzXHUwMDE0XHUwMDE1XHUwMDE2XHUwMDE3XHUwMDE4XHUwMDE5XHUwMDFBXFx4MUJcdTAwMUNcdTAwMURcdTAwMUVcdTAwMUYgIVxcXCIjXFx4QTUlJicoKSorLC0uLzAxMjM0NTY3ODk6Ozw9Pj9AQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpbXFxcXF1eX2BhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ent8fVxcdTIwM0VcXHg3RlxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXCJcbiAgICAgIH0sXG4gICAgICBcImlzbzY0NmpwXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwiX3NiY3NcIixcbiAgICAgICAgXCJjaGFyc1wiOiBcIlxcMFx1MDAwMVx1MDAwMlx1MDAwM1x1MDAwNFx1MDAwNVx1MDAwNlxceDA3XFxiXHRcXG5cXHZcXGZcXHJcdTAwMEVcdTAwMEZcdTAwMTBcdTAwMTFcdTAwMTJcdTAwMTNcdTAwMTRcdTAwMTVcdTAwMTZcdTAwMTdcdTAwMThcdTAwMTlcdTAwMUFcXHgxQlx1MDAxQ1x1MDAxRFx1MDAxRVx1MDAxRiAhXFxcIiMkJSYnKCkqKywtLi8wMTIzNDU2Nzg5Ojs8PT4/QEFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaW1xceEE1XV5fYGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6e3x9XFx1MjAzRVxceDdGXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcIlxuICAgICAgfSxcbiAgICAgIFwiaHByb21hbjhcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJfc2Jjc1wiLFxuICAgICAgICBcImNoYXJzXCI6IFwiXFx4ODBcXHg4MVxceDgyXFx4ODNcXHg4NFxceDg1XFx4ODZcXHg4N1xceDg4XFx4ODlcXHg4QVxceDhCXFx4OENcXHg4RFxceDhFXFx4OEZcXHg5MFxceDkxXFx4OTJcXHg5M1xceDk0XFx4OTVcXHg5NlxceDk3XFx4OThcXHg5OVxceDlBXFx4OUJcXHg5Q1xceDlEXFx4OUVcXHg5RlxceEEwXFx4QzBcXHhDMlxceEM4XFx4Q0FcXHhDQlxceENFXFx4Q0ZcXHhCNFxcdTAyQ0JcXHUwMkM2XFx4QThcXHUwMkRDXFx4RDlcXHhEQlxcdTIwQTRcXHhBRlxceEREXFx4RkRcXHhCMFxceEM3XFx4RTdcXHhEMVxceEYxXFx4QTFcXHhCRlxceEE0XFx4QTNcXHhBNVxceEE3XFx1MDE5MlxceEEyXFx4RTJcXHhFQVxceEY0XFx4RkJcXHhFMVxceEU5XFx4RjNcXHhGQVxceEUwXFx4RThcXHhGMlxceEY5XFx4RTRcXHhFQlxceEY2XFx4RkNcXHhDNVxceEVFXFx4RDhcXHhDNlxceEU1XFx4RURcXHhGOFxceEU2XFx4QzRcXHhFQ1xceEQ2XFx4RENcXHhDOVxceEVGXFx4REZcXHhENFxceEMxXFx4QzNcXHhFM1xceEQwXFx4RjBcXHhDRFxceENDXFx4RDNcXHhEMlxceEQ1XFx4RjVcXHUwMTYwXFx1MDE2MVxceERBXFx1MDE3OFxceEZGXFx4REVcXHhGRVxceEI3XFx4QjVcXHhCNlxceEJFXFx1MjAxNFxceEJDXFx4QkRcXHhBQVxceEJBXFx4QUJcXHUyNUEwXFx4QkJcXHhCMVxcdUZGRkRcIlxuICAgICAgfSxcbiAgICAgIFwibWFjaW50b3NoXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwiX3NiY3NcIixcbiAgICAgICAgXCJjaGFyc1wiOiBcIlxceEM0XFx4QzVcXHhDN1xceEM5XFx4RDFcXHhENlxceERDXFx4RTFcXHhFMFxceEUyXFx4RTRcXHhFM1xceEU1XFx4RTdcXHhFOVxceEU4XFx4RUFcXHhFQlxceEVEXFx4RUNcXHhFRVxceEVGXFx4RjFcXHhGM1xceEYyXFx4RjRcXHhGNlxceEY1XFx4RkFcXHhGOVxceEZCXFx4RkNcXHUyMDIwXFx4QjBcXHhBMlxceEEzXFx4QTdcXHUyMDIyXFx4QjZcXHhERlxceEFFXFx4QTlcXHUyMTIyXFx4QjRcXHhBOFxcdTIyNjBcXHhDNlxceEQ4XFx1MjIxRVxceEIxXFx1MjI2NFxcdTIyNjVcXHhBNVxceEI1XFx1MjIwMlxcdTIyMTFcXHUyMjBGXFx1MDNDMFxcdTIyMkJcXHhBQVxceEJBXFx1MjEyNlxceEU2XFx4RjhcXHhCRlxceEExXFx4QUNcXHUyMjFBXFx1MDE5MlxcdTIyNDhcXHUyMjA2XFx4QUJcXHhCQlxcdTIwMjZcXHhBMFxceEMwXFx4QzNcXHhENVxcdTAxNTJcXHUwMTUzXFx1MjAxM1xcdTIwMTRcXHUyMDFDXFx1MjAxRFxcdTIwMThcXHUyMDE5XFx4RjdcXHUyNUNBXFx4RkZcXHUwMTc4XFx1MjA0NFxceEE0XFx1MjAzOVxcdTIwM0FcXHVGQjAxXFx1RkIwMlxcdTIwMjFcXHhCN1xcdTIwMUFcXHUyMDFFXFx1MjAzMFxceEMyXFx4Q0FcXHhDMVxceENCXFx4QzhcXHhDRFxceENFXFx4Q0ZcXHhDQ1xceEQzXFx4RDRcXHVGRkZEXFx4RDJcXHhEQVxceERCXFx4RDlcXHUwMTMxXFx1MDJDNlxcdTAyRENcXHhBRlxcdTAyRDhcXHUwMkQ5XFx1MDJEQVxceEI4XFx1MDJERFxcdTAyREJcXHUwMkM3XCJcbiAgICAgIH0sXG4gICAgICBcImFzY2lpXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwiX3NiY3NcIixcbiAgICAgICAgXCJjaGFyc1wiOiBcIlxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXCJcbiAgICAgIH0sXG4gICAgICBcInRpczYyMFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIl9zYmNzXCIsXG4gICAgICAgIFwiY2hhcnNcIjogXCJcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdUZGRkRcXHUwRTAxXFx1MEUwMlxcdTBFMDNcXHUwRTA0XFx1MEUwNVxcdTBFMDZcXHUwRTA3XFx1MEUwOFxcdTBFMDlcXHUwRTBBXFx1MEUwQlxcdTBFMENcXHUwRTBEXFx1MEUwRVxcdTBFMEZcXHUwRTEwXFx1MEUxMVxcdTBFMTJcXHUwRTEzXFx1MEUxNFxcdTBFMTVcXHUwRTE2XFx1MEUxN1xcdTBFMThcXHUwRTE5XFx1MEUxQVxcdTBFMUJcXHUwRTFDXFx1MEUxRFxcdTBFMUVcXHUwRTFGXFx1MEUyMFxcdTBFMjFcXHUwRTIyXFx1MEUyM1xcdTBFMjRcXHUwRTI1XFx1MEUyNlxcdTBFMjdcXHUwRTI4XFx1MEUyOVxcdTBFMkFcXHUwRTJCXFx1MEUyQ1xcdTBFMkRcXHUwRTJFXFx1MEUyRlxcdTBFMzBcXHUwRTMxXFx1MEUzMlxcdTBFMzNcXHUwRTM0XFx1MEUzNVxcdTBFMzZcXHUwRTM3XFx1MEUzOFxcdTBFMzlcXHUwRTNBXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFxcdTBFM0ZcXHUwRTQwXFx1MEU0MVxcdTBFNDJcXHUwRTQzXFx1MEU0NFxcdTBFNDVcXHUwRTQ2XFx1MEU0N1xcdTBFNDhcXHUwRTQ5XFx1MEU0QVxcdTBFNEJcXHUwRTRDXFx1MEU0RFxcdTBFNEVcXHUwRTRGXFx1MEU1MFxcdTBFNTFcXHUwRTUyXFx1MEU1M1xcdTBFNTRcXHUwRTU1XFx1MEU1NlxcdTBFNTdcXHUwRTU4XFx1MEU1OVxcdTBFNUFcXHUwRTVCXFx1RkZGRFxcdUZGRkRcXHVGRkZEXFx1RkZGRFwiXG4gICAgICB9XG4gICAgfTtcbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9ib2R5LXBhcnNlci9ub2RlX21vZHVsZXMvaWNvbnYtbGl0ZS9lbmNvZGluZ3MvZGJjcy1jb2RlYy5qc1xudmFyIHJlcXVpcmVfZGJjc19jb2RlYzIgPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvYm9keS1wYXJzZXIvbm9kZV9tb2R1bGVzL2ljb252LWxpdGUvZW5jb2RpbmdzL2RiY3MtY29kZWMuanNcIihleHBvcnRzMikge1xuICAgIFwidXNlIHN0cmljdFwiO1xuICAgIHZhciBCdWZmZXIyID0gcmVxdWlyZV9zYWZlcigpLkJ1ZmZlcjtcbiAgICBleHBvcnRzMi5fZGJjcyA9IERCQ1NDb2RlYztcbiAgICB2YXIgVU5BU1NJR05FRCA9IC0xO1xuICAgIHZhciBHQjE4MDMwX0NPREUgPSAtMjtcbiAgICB2YXIgU0VRX1NUQVJUID0gLTEwO1xuICAgIHZhciBOT0RFX1NUQVJUID0gLTFlMztcbiAgICB2YXIgVU5BU1NJR05FRF9OT0RFID0gbmV3IEFycmF5KDI1Nik7XG4gICAgdmFyIERFRl9DSEFSID0gLTE7XG4gICAgZm9yIChpID0gMDsgaSA8IDI1NjsgaSsrKVxuICAgICAgVU5BU1NJR05FRF9OT0RFW2ldID0gVU5BU1NJR05FRDtcbiAgICB2YXIgaTtcbiAgICBmdW5jdGlvbiBEQkNTQ29kZWMoY29kZWNPcHRpb25zLCBpY29udikge1xuICAgICAgdGhpcy5lbmNvZGluZ05hbWUgPSBjb2RlY09wdGlvbnMuZW5jb2RpbmdOYW1lO1xuICAgICAgaWYgKCFjb2RlY09wdGlvbnMpXG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIkRCQ1MgY29kZWMgaXMgY2FsbGVkIHdpdGhvdXQgdGhlIGRhdGEuXCIpO1xuICAgICAgaWYgKCFjb2RlY09wdGlvbnMudGFibGUpXG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIkVuY29kaW5nICdcIiArIHRoaXMuZW5jb2RpbmdOYW1lICsgXCInIGhhcyBubyBkYXRhLlwiKTtcbiAgICAgIHZhciBtYXBwaW5nVGFibGUgPSBjb2RlY09wdGlvbnMudGFibGUoKTtcbiAgICAgIHRoaXMuZGVjb2RlVGFibGVzID0gW107XG4gICAgICB0aGlzLmRlY29kZVRhYmxlc1swXSA9IFVOQVNTSUdORURfTk9ERS5zbGljZSgwKTtcbiAgICAgIHRoaXMuZGVjb2RlVGFibGVTZXEgPSBbXTtcbiAgICAgIGZvciAodmFyIGkyID0gMDsgaTIgPCBtYXBwaW5nVGFibGUubGVuZ3RoOyBpMisrKVxuICAgICAgICB0aGlzLl9hZGREZWNvZGVDaHVuayhtYXBwaW5nVGFibGVbaTJdKTtcbiAgICAgIGlmICh0eXBlb2YgY29kZWNPcHRpb25zLmdiMTgwMzAgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICB0aGlzLmdiMTgwMzAgPSBjb2RlY09wdGlvbnMuZ2IxODAzMCgpO1xuICAgICAgICB2YXIgY29tbW9uVGhpcmRCeXRlTm9kZUlkeCA9IHRoaXMuZGVjb2RlVGFibGVzLmxlbmd0aDtcbiAgICAgICAgdGhpcy5kZWNvZGVUYWJsZXMucHVzaChVTkFTU0lHTkVEX05PREUuc2xpY2UoMCkpO1xuICAgICAgICB2YXIgY29tbW9uRm91cnRoQnl0ZU5vZGVJZHggPSB0aGlzLmRlY29kZVRhYmxlcy5sZW5ndGg7XG4gICAgICAgIHRoaXMuZGVjb2RlVGFibGVzLnB1c2goVU5BU1NJR05FRF9OT0RFLnNsaWNlKDApKTtcbiAgICAgICAgdmFyIGZpcnN0Qnl0ZU5vZGUgPSB0aGlzLmRlY29kZVRhYmxlc1swXTtcbiAgICAgICAgZm9yICh2YXIgaTIgPSAxMjk7IGkyIDw9IDI1NDsgaTIrKykge1xuICAgICAgICAgIHZhciBzZWNvbmRCeXRlTm9kZSA9IHRoaXMuZGVjb2RlVGFibGVzW05PREVfU1RBUlQgLSBmaXJzdEJ5dGVOb2RlW2kyXV07XG4gICAgICAgICAgZm9yICh2YXIgaiA9IDQ4OyBqIDw9IDU3OyBqKyspIHtcbiAgICAgICAgICAgIGlmIChzZWNvbmRCeXRlTm9kZVtqXSA9PT0gVU5BU1NJR05FRCkge1xuICAgICAgICAgICAgICBzZWNvbmRCeXRlTm9kZVtqXSA9IE5PREVfU1RBUlQgLSBjb21tb25UaGlyZEJ5dGVOb2RlSWR4O1xuICAgICAgICAgICAgfSBlbHNlIGlmIChzZWNvbmRCeXRlTm9kZVtqXSA+IE5PREVfU1RBUlQpIHtcbiAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiZ2IxODAzMCBkZWNvZGUgdGFibGVzIGNvbmZsaWN0IGF0IGJ5dGUgMlwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHZhciB0aGlyZEJ5dGVOb2RlID0gdGhpcy5kZWNvZGVUYWJsZXNbTk9ERV9TVEFSVCAtIHNlY29uZEJ5dGVOb2RlW2pdXTtcbiAgICAgICAgICAgIGZvciAodmFyIGsgPSAxMjk7IGsgPD0gMjU0OyBrKyspIHtcbiAgICAgICAgICAgICAgaWYgKHRoaXJkQnl0ZU5vZGVba10gPT09IFVOQVNTSUdORUQpIHtcbiAgICAgICAgICAgICAgICB0aGlyZEJ5dGVOb2RlW2tdID0gTk9ERV9TVEFSVCAtIGNvbW1vbkZvdXJ0aEJ5dGVOb2RlSWR4O1xuICAgICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXJkQnl0ZU5vZGVba10gPT09IE5PREVfU1RBUlQgLSBjb21tb25Gb3VydGhCeXRlTm9kZUlkeCkge1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXJkQnl0ZU5vZGVba10gPiBOT0RFX1NUQVJUKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiZ2IxODAzMCBkZWNvZGUgdGFibGVzIGNvbmZsaWN0IGF0IGJ5dGUgM1wiKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB2YXIgZm91cnRoQnl0ZU5vZGUgPSB0aGlzLmRlY29kZVRhYmxlc1tOT0RFX1NUQVJUIC0gdGhpcmRCeXRlTm9kZVtrXV07XG4gICAgICAgICAgICAgIGZvciAodmFyIGwgPSA0ODsgbCA8PSA1NzsgbCsrKSB7XG4gICAgICAgICAgICAgICAgaWYgKGZvdXJ0aEJ5dGVOb2RlW2xdID09PSBVTkFTU0lHTkVEKVxuICAgICAgICAgICAgICAgICAgZm91cnRoQnl0ZU5vZGVbbF0gPSBHQjE4MDMwX0NPREU7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHRoaXMuZGVmYXVsdENoYXJVbmljb2RlID0gaWNvbnYuZGVmYXVsdENoYXJVbmljb2RlO1xuICAgICAgdGhpcy5lbmNvZGVUYWJsZSA9IFtdO1xuICAgICAgdGhpcy5lbmNvZGVUYWJsZVNlcSA9IFtdO1xuICAgICAgdmFyIHNraXBFbmNvZGVDaGFycyA9IHt9O1xuICAgICAgaWYgKGNvZGVjT3B0aW9ucy5lbmNvZGVTa2lwVmFscylcbiAgICAgICAgZm9yICh2YXIgaTIgPSAwOyBpMiA8IGNvZGVjT3B0aW9ucy5lbmNvZGVTa2lwVmFscy5sZW5ndGg7IGkyKyspIHtcbiAgICAgICAgICB2YXIgdmFsID0gY29kZWNPcHRpb25zLmVuY29kZVNraXBWYWxzW2kyXTtcbiAgICAgICAgICBpZiAodHlwZW9mIHZhbCA9PT0gXCJudW1iZXJcIilcbiAgICAgICAgICAgIHNraXBFbmNvZGVDaGFyc1t2YWxdID0gdHJ1ZTtcbiAgICAgICAgICBlbHNlXG4gICAgICAgICAgICBmb3IgKHZhciBqID0gdmFsLmZyb207IGogPD0gdmFsLnRvOyBqKyspXG4gICAgICAgICAgICAgIHNraXBFbmNvZGVDaGFyc1tqXSA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIHRoaXMuX2ZpbGxFbmNvZGVUYWJsZSgwLCAwLCBza2lwRW5jb2RlQ2hhcnMpO1xuICAgICAgaWYgKGNvZGVjT3B0aW9ucy5lbmNvZGVBZGQpIHtcbiAgICAgICAgZm9yICh2YXIgdUNoYXIgaW4gY29kZWNPcHRpb25zLmVuY29kZUFkZClcbiAgICAgICAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGNvZGVjT3B0aW9ucy5lbmNvZGVBZGQsIHVDaGFyKSlcbiAgICAgICAgICAgIHRoaXMuX3NldEVuY29kZUNoYXIodUNoYXIuY2hhckNvZGVBdCgwKSwgY29kZWNPcHRpb25zLmVuY29kZUFkZFt1Q2hhcl0pO1xuICAgICAgfVxuICAgICAgdGhpcy5kZWZDaGFyU0IgPSB0aGlzLmVuY29kZVRhYmxlWzBdW2ljb252LmRlZmF1bHRDaGFyU2luZ2xlQnl0ZS5jaGFyQ29kZUF0KDApXTtcbiAgICAgIGlmICh0aGlzLmRlZkNoYXJTQiA9PT0gVU5BU1NJR05FRCkgdGhpcy5kZWZDaGFyU0IgPSB0aGlzLmVuY29kZVRhYmxlWzBdW1wiP1wiXTtcbiAgICAgIGlmICh0aGlzLmRlZkNoYXJTQiA9PT0gVU5BU1NJR05FRCkgdGhpcy5kZWZDaGFyU0IgPSBcIj9cIi5jaGFyQ29kZUF0KDApO1xuICAgIH1cbiAgICBEQkNTQ29kZWMucHJvdG90eXBlLmVuY29kZXIgPSBEQkNTRW5jb2RlcjtcbiAgICBEQkNTQ29kZWMucHJvdG90eXBlLmRlY29kZXIgPSBEQkNTRGVjb2RlcjtcbiAgICBEQkNTQ29kZWMucHJvdG90eXBlLl9nZXREZWNvZGVUcmllTm9kZSA9IGZ1bmN0aW9uKGFkZHIpIHtcbiAgICAgIHZhciBieXRlcyA9IFtdO1xuICAgICAgZm9yICg7IGFkZHIgPiAwOyBhZGRyID4+Pj0gOClcbiAgICAgICAgYnl0ZXMucHVzaChhZGRyICYgMjU1KTtcbiAgICAgIGlmIChieXRlcy5sZW5ndGggPT0gMClcbiAgICAgICAgYnl0ZXMucHVzaCgwKTtcbiAgICAgIHZhciBub2RlID0gdGhpcy5kZWNvZGVUYWJsZXNbMF07XG4gICAgICBmb3IgKHZhciBpMiA9IGJ5dGVzLmxlbmd0aCAtIDE7IGkyID4gMDsgaTItLSkge1xuICAgICAgICB2YXIgdmFsID0gbm9kZVtieXRlc1tpMl1dO1xuICAgICAgICBpZiAodmFsID09IFVOQVNTSUdORUQpIHtcbiAgICAgICAgICBub2RlW2J5dGVzW2kyXV0gPSBOT0RFX1NUQVJUIC0gdGhpcy5kZWNvZGVUYWJsZXMubGVuZ3RoO1xuICAgICAgICAgIHRoaXMuZGVjb2RlVGFibGVzLnB1c2gobm9kZSA9IFVOQVNTSUdORURfTk9ERS5zbGljZSgwKSk7XG4gICAgICAgIH0gZWxzZSBpZiAodmFsIDw9IE5PREVfU1RBUlQpIHtcbiAgICAgICAgICBub2RlID0gdGhpcy5kZWNvZGVUYWJsZXNbTk9ERV9TVEFSVCAtIHZhbF07XG4gICAgICAgIH0gZWxzZVxuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIk92ZXJ3cml0ZSBieXRlIGluIFwiICsgdGhpcy5lbmNvZGluZ05hbWUgKyBcIiwgYWRkcjogXCIgKyBhZGRyLnRvU3RyaW5nKDE2KSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gbm9kZTtcbiAgICB9O1xuICAgIERCQ1NDb2RlYy5wcm90b3R5cGUuX2FkZERlY29kZUNodW5rID0gZnVuY3Rpb24oY2h1bmspIHtcbiAgICAgIHZhciBjdXJBZGRyID0gcGFyc2VJbnQoY2h1bmtbMF0sIDE2KTtcbiAgICAgIHZhciB3cml0ZVRhYmxlID0gdGhpcy5fZ2V0RGVjb2RlVHJpZU5vZGUoY3VyQWRkcik7XG4gICAgICBjdXJBZGRyID0gY3VyQWRkciAmIDI1NTtcbiAgICAgIGZvciAodmFyIGsgPSAxOyBrIDwgY2h1bmsubGVuZ3RoOyBrKyspIHtcbiAgICAgICAgdmFyIHBhcnQgPSBjaHVua1trXTtcbiAgICAgICAgaWYgKHR5cGVvZiBwYXJ0ID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgZm9yICh2YXIgbCA9IDA7IGwgPCBwYXJ0Lmxlbmd0aDsgKSB7XG4gICAgICAgICAgICB2YXIgY29kZSA9IHBhcnQuY2hhckNvZGVBdChsKyspO1xuICAgICAgICAgICAgaWYgKDU1Mjk2IDw9IGNvZGUgJiYgY29kZSA8IDU2MzIwKSB7XG4gICAgICAgICAgICAgIHZhciBjb2RlVHJhaWwgPSBwYXJ0LmNoYXJDb2RlQXQobCsrKTtcbiAgICAgICAgICAgICAgaWYgKDU2MzIwIDw9IGNvZGVUcmFpbCAmJiBjb2RlVHJhaWwgPCA1NzM0NClcbiAgICAgICAgICAgICAgICB3cml0ZVRhYmxlW2N1ckFkZHIrK10gPSA2NTUzNiArIChjb2RlIC0gNTUyOTYpICogMTAyNCArIChjb2RlVHJhaWwgLSA1NjMyMCk7XG4gICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJJbmNvcnJlY3Qgc3Vycm9nYXRlIHBhaXIgaW4gXCIgKyB0aGlzLmVuY29kaW5nTmFtZSArIFwiIGF0IGNodW5rIFwiICsgY2h1bmtbMF0pO1xuICAgICAgICAgICAgfSBlbHNlIGlmICg0MDgwIDwgY29kZSAmJiBjb2RlIDw9IDQwOTUpIHtcbiAgICAgICAgICAgICAgdmFyIGxlbiA9IDQwOTUgLSBjb2RlICsgMjtcbiAgICAgICAgICAgICAgdmFyIHNlcSA9IFtdO1xuICAgICAgICAgICAgICBmb3IgKHZhciBtID0gMDsgbSA8IGxlbjsgbSsrKVxuICAgICAgICAgICAgICAgIHNlcS5wdXNoKHBhcnQuY2hhckNvZGVBdChsKyspKTtcbiAgICAgICAgICAgICAgd3JpdGVUYWJsZVtjdXJBZGRyKytdID0gU0VRX1NUQVJUIC0gdGhpcy5kZWNvZGVUYWJsZVNlcS5sZW5ndGg7XG4gICAgICAgICAgICAgIHRoaXMuZGVjb2RlVGFibGVTZXEucHVzaChzZXEpO1xuICAgICAgICAgICAgfSBlbHNlXG4gICAgICAgICAgICAgIHdyaXRlVGFibGVbY3VyQWRkcisrXSA9IGNvZGU7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiBwYXJ0ID09PSBcIm51bWJlclwiKSB7XG4gICAgICAgICAgdmFyIGNoYXJDb2RlID0gd3JpdGVUYWJsZVtjdXJBZGRyIC0gMV0gKyAxO1xuICAgICAgICAgIGZvciAodmFyIGwgPSAwOyBsIDwgcGFydDsgbCsrKVxuICAgICAgICAgICAgd3JpdGVUYWJsZVtjdXJBZGRyKytdID0gY2hhckNvZGUrKztcbiAgICAgICAgfSBlbHNlXG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiSW5jb3JyZWN0IHR5cGUgJ1wiICsgdHlwZW9mIHBhcnQgKyBcIicgZ2l2ZW4gaW4gXCIgKyB0aGlzLmVuY29kaW5nTmFtZSArIFwiIGF0IGNodW5rIFwiICsgY2h1bmtbMF0pO1xuICAgICAgfVxuICAgICAgaWYgKGN1ckFkZHIgPiAyNTUpXG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIkluY29ycmVjdCBjaHVuayBpbiBcIiArIHRoaXMuZW5jb2RpbmdOYW1lICsgXCIgYXQgYWRkciBcIiArIGNodW5rWzBdICsgXCI6IHRvbyBsb25nXCIgKyBjdXJBZGRyKTtcbiAgICB9O1xuICAgIERCQ1NDb2RlYy5wcm90b3R5cGUuX2dldEVuY29kZUJ1Y2tldCA9IGZ1bmN0aW9uKHVDb2RlKSB7XG4gICAgICB2YXIgaGlnaCA9IHVDb2RlID4+IDg7XG4gICAgICBpZiAodGhpcy5lbmNvZGVUYWJsZVtoaWdoXSA9PT0gdm9pZCAwKVxuICAgICAgICB0aGlzLmVuY29kZVRhYmxlW2hpZ2hdID0gVU5BU1NJR05FRF9OT0RFLnNsaWNlKDApO1xuICAgICAgcmV0dXJuIHRoaXMuZW5jb2RlVGFibGVbaGlnaF07XG4gICAgfTtcbiAgICBEQkNTQ29kZWMucHJvdG90eXBlLl9zZXRFbmNvZGVDaGFyID0gZnVuY3Rpb24odUNvZGUsIGRiY3NDb2RlKSB7XG4gICAgICB2YXIgYnVja2V0ID0gdGhpcy5fZ2V0RW5jb2RlQnVja2V0KHVDb2RlKTtcbiAgICAgIHZhciBsb3cgPSB1Q29kZSAmIDI1NTtcbiAgICAgIGlmIChidWNrZXRbbG93XSA8PSBTRVFfU1RBUlQpXG4gICAgICAgIHRoaXMuZW5jb2RlVGFibGVTZXFbU0VRX1NUQVJUIC0gYnVja2V0W2xvd11dW0RFRl9DSEFSXSA9IGRiY3NDb2RlO1xuICAgICAgZWxzZSBpZiAoYnVja2V0W2xvd10gPT0gVU5BU1NJR05FRClcbiAgICAgICAgYnVja2V0W2xvd10gPSBkYmNzQ29kZTtcbiAgICB9O1xuICAgIERCQ1NDb2RlYy5wcm90b3R5cGUuX3NldEVuY29kZVNlcXVlbmNlID0gZnVuY3Rpb24oc2VxLCBkYmNzQ29kZSkge1xuICAgICAgdmFyIHVDb2RlID0gc2VxWzBdO1xuICAgICAgdmFyIGJ1Y2tldCA9IHRoaXMuX2dldEVuY29kZUJ1Y2tldCh1Q29kZSk7XG4gICAgICB2YXIgbG93ID0gdUNvZGUgJiAyNTU7XG4gICAgICB2YXIgbm9kZTtcbiAgICAgIGlmIChidWNrZXRbbG93XSA8PSBTRVFfU1RBUlQpIHtcbiAgICAgICAgbm9kZSA9IHRoaXMuZW5jb2RlVGFibGVTZXFbU0VRX1NUQVJUIC0gYnVja2V0W2xvd11dO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbm9kZSA9IHt9O1xuICAgICAgICBpZiAoYnVja2V0W2xvd10gIT09IFVOQVNTSUdORUQpIG5vZGVbREVGX0NIQVJdID0gYnVja2V0W2xvd107XG4gICAgICAgIGJ1Y2tldFtsb3ddID0gU0VRX1NUQVJUIC0gdGhpcy5lbmNvZGVUYWJsZVNlcS5sZW5ndGg7XG4gICAgICAgIHRoaXMuZW5jb2RlVGFibGVTZXEucHVzaChub2RlKTtcbiAgICAgIH1cbiAgICAgIGZvciAodmFyIGogPSAxOyBqIDwgc2VxLmxlbmd0aCAtIDE7IGorKykge1xuICAgICAgICB2YXIgb2xkVmFsID0gbm9kZVt1Q29kZV07XG4gICAgICAgIGlmICh0eXBlb2Ygb2xkVmFsID09PSBcIm9iamVjdFwiKVxuICAgICAgICAgIG5vZGUgPSBvbGRWYWw7XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgIG5vZGUgPSBub2RlW3VDb2RlXSA9IHt9O1xuICAgICAgICAgIGlmIChvbGRWYWwgIT09IHZvaWQgMClcbiAgICAgICAgICAgIG5vZGVbREVGX0NIQVJdID0gb2xkVmFsO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICB1Q29kZSA9IHNlcVtzZXEubGVuZ3RoIC0gMV07XG4gICAgICBub2RlW3VDb2RlXSA9IGRiY3NDb2RlO1xuICAgIH07XG4gICAgREJDU0NvZGVjLnByb3RvdHlwZS5fZmlsbEVuY29kZVRhYmxlID0gZnVuY3Rpb24obm9kZUlkeCwgcHJlZml4LCBza2lwRW5jb2RlQ2hhcnMpIHtcbiAgICAgIHZhciBub2RlID0gdGhpcy5kZWNvZGVUYWJsZXNbbm9kZUlkeF07XG4gICAgICB2YXIgaGFzVmFsdWVzID0gZmFsc2U7XG4gICAgICB2YXIgc3ViTm9kZUVtcHR5ID0ge307XG4gICAgICBmb3IgKHZhciBpMiA9IDA7IGkyIDwgMjU2OyBpMisrKSB7XG4gICAgICAgIHZhciB1Q29kZSA9IG5vZGVbaTJdO1xuICAgICAgICB2YXIgbWJDb2RlID0gcHJlZml4ICsgaTI7XG4gICAgICAgIGlmIChza2lwRW5jb2RlQ2hhcnNbbWJDb2RlXSlcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgaWYgKHVDb2RlID49IDApIHtcbiAgICAgICAgICB0aGlzLl9zZXRFbmNvZGVDaGFyKHVDb2RlLCBtYkNvZGUpO1xuICAgICAgICAgIGhhc1ZhbHVlcyA9IHRydWU7XG4gICAgICAgIH0gZWxzZSBpZiAodUNvZGUgPD0gTk9ERV9TVEFSVCkge1xuICAgICAgICAgIHZhciBzdWJOb2RlSWR4ID0gTk9ERV9TVEFSVCAtIHVDb2RlO1xuICAgICAgICAgIGlmICghc3ViTm9kZUVtcHR5W3N1Yk5vZGVJZHhdKSB7XG4gICAgICAgICAgICB2YXIgbmV3UHJlZml4ID0gbWJDb2RlIDw8IDggPj4+IDA7XG4gICAgICAgICAgICBpZiAodGhpcy5fZmlsbEVuY29kZVRhYmxlKHN1Yk5vZGVJZHgsIG5ld1ByZWZpeCwgc2tpcEVuY29kZUNoYXJzKSlcbiAgICAgICAgICAgICAgaGFzVmFsdWVzID0gdHJ1ZTtcbiAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgc3ViTm9kZUVtcHR5W3N1Yk5vZGVJZHhdID0gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAodUNvZGUgPD0gU0VRX1NUQVJUKSB7XG4gICAgICAgICAgdGhpcy5fc2V0RW5jb2RlU2VxdWVuY2UodGhpcy5kZWNvZGVUYWJsZVNlcVtTRVFfU1RBUlQgLSB1Q29kZV0sIG1iQ29kZSk7XG4gICAgICAgICAgaGFzVmFsdWVzID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIGhhc1ZhbHVlcztcbiAgICB9O1xuICAgIGZ1bmN0aW9uIERCQ1NFbmNvZGVyKG9wdGlvbnMsIGNvZGVjKSB7XG4gICAgICB0aGlzLmxlYWRTdXJyb2dhdGUgPSAtMTtcbiAgICAgIHRoaXMuc2VxT2JqID0gdm9pZCAwO1xuICAgICAgdGhpcy5lbmNvZGVUYWJsZSA9IGNvZGVjLmVuY29kZVRhYmxlO1xuICAgICAgdGhpcy5lbmNvZGVUYWJsZVNlcSA9IGNvZGVjLmVuY29kZVRhYmxlU2VxO1xuICAgICAgdGhpcy5kZWZhdWx0Q2hhclNpbmdsZUJ5dGUgPSBjb2RlYy5kZWZDaGFyU0I7XG4gICAgICB0aGlzLmdiMTgwMzAgPSBjb2RlYy5nYjE4MDMwO1xuICAgIH1cbiAgICBEQkNTRW5jb2Rlci5wcm90b3R5cGUud3JpdGUgPSBmdW5jdGlvbihzdHIpIHtcbiAgICAgIHZhciBuZXdCdWYgPSBCdWZmZXIyLmFsbG9jKHN0ci5sZW5ndGggKiAodGhpcy5nYjE4MDMwID8gNCA6IDMpKSwgbGVhZFN1cnJvZ2F0ZSA9IHRoaXMubGVhZFN1cnJvZ2F0ZSwgc2VxT2JqID0gdGhpcy5zZXFPYmosIG5leHRDaGFyID0gLTEsIGkyID0gMCwgaiA9IDA7XG4gICAgICB3aGlsZSAodHJ1ZSkge1xuICAgICAgICBpZiAobmV4dENoYXIgPT09IC0xKSB7XG4gICAgICAgICAgaWYgKGkyID09IHN0ci5sZW5ndGgpIGJyZWFrO1xuICAgICAgICAgIHZhciB1Q29kZSA9IHN0ci5jaGFyQ29kZUF0KGkyKyspO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHZhciB1Q29kZSA9IG5leHRDaGFyO1xuICAgICAgICAgIG5leHRDaGFyID0gLTE7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKDU1Mjk2IDw9IHVDb2RlICYmIHVDb2RlIDwgNTczNDQpIHtcbiAgICAgICAgICBpZiAodUNvZGUgPCA1NjMyMCkge1xuICAgICAgICAgICAgaWYgKGxlYWRTdXJyb2dhdGUgPT09IC0xKSB7XG4gICAgICAgICAgICAgIGxlYWRTdXJyb2dhdGUgPSB1Q29kZTtcbiAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBsZWFkU3Vycm9nYXRlID0gdUNvZGU7XG4gICAgICAgICAgICAgIHVDb2RlID0gVU5BU1NJR05FRDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKGxlYWRTdXJyb2dhdGUgIT09IC0xKSB7XG4gICAgICAgICAgICAgIHVDb2RlID0gNjU1MzYgKyAobGVhZFN1cnJvZ2F0ZSAtIDU1Mjk2KSAqIDEwMjQgKyAodUNvZGUgLSA1NjMyMCk7XG4gICAgICAgICAgICAgIGxlYWRTdXJyb2dhdGUgPSAtMTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHVDb2RlID0gVU5BU1NJR05FRDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAobGVhZFN1cnJvZ2F0ZSAhPT0gLTEpIHtcbiAgICAgICAgICBuZXh0Q2hhciA9IHVDb2RlO1xuICAgICAgICAgIHVDb2RlID0gVU5BU1NJR05FRDtcbiAgICAgICAgICBsZWFkU3Vycm9nYXRlID0gLTE7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGRiY3NDb2RlID0gVU5BU1NJR05FRDtcbiAgICAgICAgaWYgKHNlcU9iaiAhPT0gdm9pZCAwICYmIHVDb2RlICE9IFVOQVNTSUdORUQpIHtcbiAgICAgICAgICB2YXIgcmVzQ29kZSA9IHNlcU9ialt1Q29kZV07XG4gICAgICAgICAgaWYgKHR5cGVvZiByZXNDb2RlID09PSBcIm9iamVjdFwiKSB7XG4gICAgICAgICAgICBzZXFPYmogPSByZXNDb2RlO1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgcmVzQ29kZSA9PSBcIm51bWJlclwiKSB7XG4gICAgICAgICAgICBkYmNzQ29kZSA9IHJlc0NvZGU7XG4gICAgICAgICAgfSBlbHNlIGlmIChyZXNDb2RlID09IHZvaWQgMCkge1xuICAgICAgICAgICAgcmVzQ29kZSA9IHNlcU9ialtERUZfQ0hBUl07XG4gICAgICAgICAgICBpZiAocmVzQ29kZSAhPT0gdm9pZCAwKSB7XG4gICAgICAgICAgICAgIGRiY3NDb2RlID0gcmVzQ29kZTtcbiAgICAgICAgICAgICAgbmV4dENoYXIgPSB1Q29kZTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIHNlcU9iaiA9IHZvaWQgMDtcbiAgICAgICAgfSBlbHNlIGlmICh1Q29kZSA+PSAwKSB7XG4gICAgICAgICAgdmFyIHN1YnRhYmxlID0gdGhpcy5lbmNvZGVUYWJsZVt1Q29kZSA+PiA4XTtcbiAgICAgICAgICBpZiAoc3VidGFibGUgIT09IHZvaWQgMClcbiAgICAgICAgICAgIGRiY3NDb2RlID0gc3VidGFibGVbdUNvZGUgJiAyNTVdO1xuICAgICAgICAgIGlmIChkYmNzQ29kZSA8PSBTRVFfU1RBUlQpIHtcbiAgICAgICAgICAgIHNlcU9iaiA9IHRoaXMuZW5jb2RlVGFibGVTZXFbU0VRX1NUQVJUIC0gZGJjc0NvZGVdO1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChkYmNzQ29kZSA9PSBVTkFTU0lHTkVEICYmIHRoaXMuZ2IxODAzMCkge1xuICAgICAgICAgICAgdmFyIGlkeCA9IGZpbmRJZHgodGhpcy5nYjE4MDMwLnVDaGFycywgdUNvZGUpO1xuICAgICAgICAgICAgaWYgKGlkeCAhPSAtMSkge1xuICAgICAgICAgICAgICB2YXIgZGJjc0NvZGUgPSB0aGlzLmdiMTgwMzAuZ2JDaGFyc1tpZHhdICsgKHVDb2RlIC0gdGhpcy5nYjE4MDMwLnVDaGFyc1tpZHhdKTtcbiAgICAgICAgICAgICAgbmV3QnVmW2orK10gPSAxMjkgKyBNYXRoLmZsb29yKGRiY3NDb2RlIC8gMTI2MDApO1xuICAgICAgICAgICAgICBkYmNzQ29kZSA9IGRiY3NDb2RlICUgMTI2MDA7XG4gICAgICAgICAgICAgIG5ld0J1ZltqKytdID0gNDggKyBNYXRoLmZsb29yKGRiY3NDb2RlIC8gMTI2MCk7XG4gICAgICAgICAgICAgIGRiY3NDb2RlID0gZGJjc0NvZGUgJSAxMjYwO1xuICAgICAgICAgICAgICBuZXdCdWZbaisrXSA9IDEyOSArIE1hdGguZmxvb3IoZGJjc0NvZGUgLyAxMCk7XG4gICAgICAgICAgICAgIGRiY3NDb2RlID0gZGJjc0NvZGUgJSAxMDtcbiAgICAgICAgICAgICAgbmV3QnVmW2orK10gPSA0OCArIGRiY3NDb2RlO1xuICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRiY3NDb2RlID09PSBVTkFTU0lHTkVEKVxuICAgICAgICAgIGRiY3NDb2RlID0gdGhpcy5kZWZhdWx0Q2hhclNpbmdsZUJ5dGU7XG4gICAgICAgIGlmIChkYmNzQ29kZSA8IDI1Nikge1xuICAgICAgICAgIG5ld0J1ZltqKytdID0gZGJjc0NvZGU7XG4gICAgICAgIH0gZWxzZSBpZiAoZGJjc0NvZGUgPCA2NTUzNikge1xuICAgICAgICAgIG5ld0J1ZltqKytdID0gZGJjc0NvZGUgPj4gODtcbiAgICAgICAgICBuZXdCdWZbaisrXSA9IGRiY3NDb2RlICYgMjU1O1xuICAgICAgICB9IGVsc2UgaWYgKGRiY3NDb2RlIDwgMTY3NzcyMTYpIHtcbiAgICAgICAgICBuZXdCdWZbaisrXSA9IGRiY3NDb2RlID4+IDE2O1xuICAgICAgICAgIG5ld0J1ZltqKytdID0gZGJjc0NvZGUgPj4gOCAmIDI1NTtcbiAgICAgICAgICBuZXdCdWZbaisrXSA9IGRiY3NDb2RlICYgMjU1O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIG5ld0J1ZltqKytdID0gZGJjc0NvZGUgPj4+IDI0O1xuICAgICAgICAgIG5ld0J1ZltqKytdID0gZGJjc0NvZGUgPj4+IDE2ICYgMjU1O1xuICAgICAgICAgIG5ld0J1ZltqKytdID0gZGJjc0NvZGUgPj4+IDggJiAyNTU7XG4gICAgICAgICAgbmV3QnVmW2orK10gPSBkYmNzQ29kZSAmIDI1NTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgdGhpcy5zZXFPYmogPSBzZXFPYmo7XG4gICAgICB0aGlzLmxlYWRTdXJyb2dhdGUgPSBsZWFkU3Vycm9nYXRlO1xuICAgICAgcmV0dXJuIG5ld0J1Zi5zbGljZSgwLCBqKTtcbiAgICB9O1xuICAgIERCQ1NFbmNvZGVyLnByb3RvdHlwZS5lbmQgPSBmdW5jdGlvbigpIHtcbiAgICAgIGlmICh0aGlzLmxlYWRTdXJyb2dhdGUgPT09IC0xICYmIHRoaXMuc2VxT2JqID09PSB2b2lkIDApXG4gICAgICAgIHJldHVybjtcbiAgICAgIHZhciBuZXdCdWYgPSBCdWZmZXIyLmFsbG9jKDEwKSwgaiA9IDA7XG4gICAgICBpZiAodGhpcy5zZXFPYmopIHtcbiAgICAgICAgdmFyIGRiY3NDb2RlID0gdGhpcy5zZXFPYmpbREVGX0NIQVJdO1xuICAgICAgICBpZiAoZGJjc0NvZGUgIT09IHZvaWQgMCkge1xuICAgICAgICAgIGlmIChkYmNzQ29kZSA8IDI1Nikge1xuICAgICAgICAgICAgbmV3QnVmW2orK10gPSBkYmNzQ29kZTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbmV3QnVmW2orK10gPSBkYmNzQ29kZSA+PiA4O1xuICAgICAgICAgICAgbmV3QnVmW2orK10gPSBkYmNzQ29kZSAmIDI1NTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zZXFPYmogPSB2b2lkIDA7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5sZWFkU3Vycm9nYXRlICE9PSAtMSkge1xuICAgICAgICBuZXdCdWZbaisrXSA9IHRoaXMuZGVmYXVsdENoYXJTaW5nbGVCeXRlO1xuICAgICAgICB0aGlzLmxlYWRTdXJyb2dhdGUgPSAtMTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBuZXdCdWYuc2xpY2UoMCwgaik7XG4gICAgfTtcbiAgICBEQkNTRW5jb2Rlci5wcm90b3R5cGUuZmluZElkeCA9IGZpbmRJZHg7XG4gICAgZnVuY3Rpb24gREJDU0RlY29kZXIob3B0aW9ucywgY29kZWMpIHtcbiAgICAgIHRoaXMubm9kZUlkeCA9IDA7XG4gICAgICB0aGlzLnByZXZCeXRlcyA9IFtdO1xuICAgICAgdGhpcy5kZWNvZGVUYWJsZXMgPSBjb2RlYy5kZWNvZGVUYWJsZXM7XG4gICAgICB0aGlzLmRlY29kZVRhYmxlU2VxID0gY29kZWMuZGVjb2RlVGFibGVTZXE7XG4gICAgICB0aGlzLmRlZmF1bHRDaGFyVW5pY29kZSA9IGNvZGVjLmRlZmF1bHRDaGFyVW5pY29kZTtcbiAgICAgIHRoaXMuZ2IxODAzMCA9IGNvZGVjLmdiMTgwMzA7XG4gICAgfVxuICAgIERCQ1NEZWNvZGVyLnByb3RvdHlwZS53cml0ZSA9IGZ1bmN0aW9uKGJ1Zikge1xuICAgICAgdmFyIG5ld0J1ZiA9IEJ1ZmZlcjIuYWxsb2MoYnVmLmxlbmd0aCAqIDIpLCBub2RlSWR4ID0gdGhpcy5ub2RlSWR4LCBwcmV2Qnl0ZXMgPSB0aGlzLnByZXZCeXRlcywgcHJldk9mZnNldCA9IHRoaXMucHJldkJ5dGVzLmxlbmd0aCwgc2VxU3RhcnQgPSAtdGhpcy5wcmV2Qnl0ZXMubGVuZ3RoLCB1Q29kZTtcbiAgICAgIGZvciAodmFyIGkyID0gMCwgaiA9IDA7IGkyIDwgYnVmLmxlbmd0aDsgaTIrKykge1xuICAgICAgICB2YXIgY3VyQnl0ZSA9IGkyID49IDAgPyBidWZbaTJdIDogcHJldkJ5dGVzW2kyICsgcHJldk9mZnNldF07XG4gICAgICAgIHZhciB1Q29kZSA9IHRoaXMuZGVjb2RlVGFibGVzW25vZGVJZHhdW2N1ckJ5dGVdO1xuICAgICAgICBpZiAodUNvZGUgPj0gMCkge1xuICAgICAgICB9IGVsc2UgaWYgKHVDb2RlID09PSBVTkFTU0lHTkVEKSB7XG4gICAgICAgICAgdUNvZGUgPSB0aGlzLmRlZmF1bHRDaGFyVW5pY29kZS5jaGFyQ29kZUF0KDApO1xuICAgICAgICAgIGkyID0gc2VxU3RhcnQ7XG4gICAgICAgIH0gZWxzZSBpZiAodUNvZGUgPT09IEdCMTgwMzBfQ09ERSkge1xuICAgICAgICAgIGlmIChpMiA+PSAzKSB7XG4gICAgICAgICAgICB2YXIgcHRyID0gKGJ1ZltpMiAtIDNdIC0gMTI5KSAqIDEyNjAwICsgKGJ1ZltpMiAtIDJdIC0gNDgpICogMTI2MCArIChidWZbaTIgLSAxXSAtIDEyOSkgKiAxMCArIChjdXJCeXRlIC0gNDgpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB2YXIgcHRyID0gKHByZXZCeXRlc1tpMiAtIDMgKyBwcmV2T2Zmc2V0XSAtIDEyOSkgKiAxMjYwMCArICgoaTIgLSAyID49IDAgPyBidWZbaTIgLSAyXSA6IHByZXZCeXRlc1tpMiAtIDIgKyBwcmV2T2Zmc2V0XSkgLSA0OCkgKiAxMjYwICsgKChpMiAtIDEgPj0gMCA/IGJ1ZltpMiAtIDFdIDogcHJldkJ5dGVzW2kyIC0gMSArIHByZXZPZmZzZXRdKSAtIDEyOSkgKiAxMCArIChjdXJCeXRlIC0gNDgpO1xuICAgICAgICAgIH1cbiAgICAgICAgICB2YXIgaWR4ID0gZmluZElkeCh0aGlzLmdiMTgwMzAuZ2JDaGFycywgcHRyKTtcbiAgICAgICAgICB1Q29kZSA9IHRoaXMuZ2IxODAzMC51Q2hhcnNbaWR4XSArIHB0ciAtIHRoaXMuZ2IxODAzMC5nYkNoYXJzW2lkeF07XG4gICAgICAgIH0gZWxzZSBpZiAodUNvZGUgPD0gTk9ERV9TVEFSVCkge1xuICAgICAgICAgIG5vZGVJZHggPSBOT0RFX1NUQVJUIC0gdUNvZGU7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH0gZWxzZSBpZiAodUNvZGUgPD0gU0VRX1NUQVJUKSB7XG4gICAgICAgICAgdmFyIHNlcSA9IHRoaXMuZGVjb2RlVGFibGVTZXFbU0VRX1NUQVJUIC0gdUNvZGVdO1xuICAgICAgICAgIGZvciAodmFyIGsgPSAwOyBrIDwgc2VxLmxlbmd0aCAtIDE7IGsrKykge1xuICAgICAgICAgICAgdUNvZGUgPSBzZXFba107XG4gICAgICAgICAgICBuZXdCdWZbaisrXSA9IHVDb2RlICYgMjU1O1xuICAgICAgICAgICAgbmV3QnVmW2orK10gPSB1Q29kZSA+PiA4O1xuICAgICAgICAgIH1cbiAgICAgICAgICB1Q29kZSA9IHNlcVtzZXEubGVuZ3RoIC0gMV07XG4gICAgICAgIH0gZWxzZVxuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcImljb252LWxpdGUgaW50ZXJuYWwgZXJyb3I6IGludmFsaWQgZGVjb2RpbmcgdGFibGUgdmFsdWUgXCIgKyB1Q29kZSArIFwiIGF0IFwiICsgbm9kZUlkeCArIFwiL1wiICsgY3VyQnl0ZSk7XG4gICAgICAgIGlmICh1Q29kZSA+PSA2NTUzNikge1xuICAgICAgICAgIHVDb2RlIC09IDY1NTM2O1xuICAgICAgICAgIHZhciB1Q29kZUxlYWQgPSA1NTI5NiB8IHVDb2RlID4+IDEwO1xuICAgICAgICAgIG5ld0J1ZltqKytdID0gdUNvZGVMZWFkICYgMjU1O1xuICAgICAgICAgIG5ld0J1ZltqKytdID0gdUNvZGVMZWFkID4+IDg7XG4gICAgICAgICAgdUNvZGUgPSA1NjMyMCB8IHVDb2RlICYgMTAyMztcbiAgICAgICAgfVxuICAgICAgICBuZXdCdWZbaisrXSA9IHVDb2RlICYgMjU1O1xuICAgICAgICBuZXdCdWZbaisrXSA9IHVDb2RlID4+IDg7XG4gICAgICAgIG5vZGVJZHggPSAwO1xuICAgICAgICBzZXFTdGFydCA9IGkyICsgMTtcbiAgICAgIH1cbiAgICAgIHRoaXMubm9kZUlkeCA9IG5vZGVJZHg7XG4gICAgICB0aGlzLnByZXZCeXRlcyA9IHNlcVN0YXJ0ID49IDAgPyBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChidWYsIHNlcVN0YXJ0KSA6IHByZXZCeXRlcy5zbGljZShzZXFTdGFydCArIHByZXZPZmZzZXQpLmNvbmNhdChBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChidWYpKTtcbiAgICAgIHJldHVybiBuZXdCdWYuc2xpY2UoMCwgaikudG9TdHJpbmcoXCJ1Y3MyXCIpO1xuICAgIH07XG4gICAgREJDU0RlY29kZXIucHJvdG90eXBlLmVuZCA9IGZ1bmN0aW9uKCkge1xuICAgICAgdmFyIHJldCA9IFwiXCI7XG4gICAgICB3aGlsZSAodGhpcy5wcmV2Qnl0ZXMubGVuZ3RoID4gMCkge1xuICAgICAgICByZXQgKz0gdGhpcy5kZWZhdWx0Q2hhclVuaWNvZGU7XG4gICAgICAgIHZhciBieXRlc0FyciA9IHRoaXMucHJldkJ5dGVzLnNsaWNlKDEpO1xuICAgICAgICB0aGlzLnByZXZCeXRlcyA9IFtdO1xuICAgICAgICB0aGlzLm5vZGVJZHggPSAwO1xuICAgICAgICBpZiAoYnl0ZXNBcnIubGVuZ3RoID4gMClcbiAgICAgICAgICByZXQgKz0gdGhpcy53cml0ZShieXRlc0Fycik7XG4gICAgICB9XG4gICAgICB0aGlzLnByZXZCeXRlcyA9IFtdO1xuICAgICAgdGhpcy5ub2RlSWR4ID0gMDtcbiAgICAgIHJldHVybiByZXQ7XG4gICAgfTtcbiAgICBmdW5jdGlvbiBmaW5kSWR4KHRhYmxlLCB2YWwpIHtcbiAgICAgIGlmICh0YWJsZVswXSA+IHZhbClcbiAgICAgICAgcmV0dXJuIC0xO1xuICAgICAgdmFyIGwgPSAwLCByID0gdGFibGUubGVuZ3RoO1xuICAgICAgd2hpbGUgKGwgPCByIC0gMSkge1xuICAgICAgICB2YXIgbWlkID0gbCArIChyIC0gbCArIDEgPj4gMSk7XG4gICAgICAgIGlmICh0YWJsZVttaWRdIDw9IHZhbClcbiAgICAgICAgICBsID0gbWlkO1xuICAgICAgICBlbHNlXG4gICAgICAgICAgciA9IG1pZDtcbiAgICAgIH1cbiAgICAgIHJldHVybiBsO1xuICAgIH1cbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9ib2R5LXBhcnNlci9ub2RlX21vZHVsZXMvaWNvbnYtbGl0ZS9lbmNvZGluZ3MvdGFibGVzL3NoaWZ0amlzLmpzb25cbnZhciByZXF1aXJlX3NoaWZ0amlzMiA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9ib2R5LXBhcnNlci9ub2RlX21vZHVsZXMvaWNvbnYtbGl0ZS9lbmNvZGluZ3MvdGFibGVzL3NoaWZ0amlzLmpzb25cIihleHBvcnRzMiwgbW9kdWxlMikge1xuICAgIG1vZHVsZTIuZXhwb3J0cyA9IFtcbiAgICAgIFtcIjBcIiwgXCJcXDBcIiwgMTI4XSxcbiAgICAgIFtcImExXCIsIFwiXFx1RkY2MVwiLCA2Ml0sXG4gICAgICBbXCI4MTQwXCIsIFwiXFx1MzAwMFxcdTMwMDFcXHUzMDAyXFx1RkYwQ1xcdUZGMEVcXHUzMEZCXFx1RkYxQVxcdUZGMUJcXHVGRjFGXFx1RkYwMVxcdTMwOUJcXHUzMDlDXFx4QjRcXHVGRjQwXFx4QThcXHVGRjNFXFx1RkZFM1xcdUZGM0ZcXHUzMEZEXFx1MzBGRVxcdTMwOURcXHUzMDlFXFx1MzAwM1xcdTRFRERcXHUzMDA1XFx1MzAwNlxcdTMwMDdcXHUzMEZDXFx1MjAxNVxcdTIwMTBcXHVGRjBGXFx1RkYzQ1xcdUZGNUVcXHUyMjI1XFx1RkY1Q1xcdTIwMjZcXHUyMDI1XFx1MjAxOFxcdTIwMTlcXHUyMDFDXFx1MjAxRFxcdUZGMDhcXHVGRjA5XFx1MzAxNFxcdTMwMTVcXHVGRjNCXFx1RkYzRFxcdUZGNUJcXHVGRjVEXFx1MzAwOFwiLCA5LCBcIlxcdUZGMEJcXHVGRjBEXFx4QjFcXHhEN1wiXSxcbiAgICAgIFtcIjgxODBcIiwgXCJcXHhGN1xcdUZGMURcXHUyMjYwXFx1RkYxQ1xcdUZGMUVcXHUyMjY2XFx1MjI2N1xcdTIyMUVcXHUyMjM0XFx1MjY0MlxcdTI2NDBcXHhCMFxcdTIwMzJcXHUyMDMzXFx1MjEwM1xcdUZGRTVcXHVGRjA0XFx1RkZFMFxcdUZGRTFcXHVGRjA1XFx1RkYwM1xcdUZGMDZcXHVGRjBBXFx1RkYyMFxceEE3XFx1MjYwNlxcdTI2MDVcXHUyNUNCXFx1MjVDRlxcdTI1Q0VcXHUyNUM3XFx1MjVDNlxcdTI1QTFcXHUyNUEwXFx1MjVCM1xcdTI1QjJcXHUyNUJEXFx1MjVCQ1xcdTIwM0JcXHUzMDEyXFx1MjE5MlxcdTIxOTBcXHUyMTkxXFx1MjE5M1xcdTMwMTNcIl0sXG4gICAgICBbXCI4MWI4XCIsIFwiXFx1MjIwOFxcdTIyMEJcXHUyMjg2XFx1MjI4N1xcdTIyODJcXHUyMjgzXFx1MjIyQVxcdTIyMjlcIl0sXG4gICAgICBbXCI4MWM4XCIsIFwiXFx1MjIyN1xcdTIyMjhcXHVGRkUyXFx1MjFEMlxcdTIxRDRcXHUyMjAwXFx1MjIwM1wiXSxcbiAgICAgIFtcIjgxZGFcIiwgXCJcXHUyMjIwXFx1MjJBNVxcdTIzMTJcXHUyMjAyXFx1MjIwN1xcdTIyNjFcXHUyMjUyXFx1MjI2QVxcdTIyNkJcXHUyMjFBXFx1MjIzRFxcdTIyMURcXHUyMjM1XFx1MjIyQlxcdTIyMkNcIl0sXG4gICAgICBbXCI4MWYwXCIsIFwiXFx1MjEyQlxcdTIwMzBcXHUyNjZGXFx1MjY2RFxcdTI2NkFcXHUyMDIwXFx1MjAyMVxceEI2XCJdLFxuICAgICAgW1wiODFmY1wiLCBcIlxcdTI1RUZcIl0sXG4gICAgICBbXCI4MjRmXCIsIFwiXFx1RkYxMFwiLCA5XSxcbiAgICAgIFtcIjgyNjBcIiwgXCJcXHVGRjIxXCIsIDI1XSxcbiAgICAgIFtcIjgyODFcIiwgXCJcXHVGRjQxXCIsIDI1XSxcbiAgICAgIFtcIjgyOWZcIiwgXCJcXHUzMDQxXCIsIDgyXSxcbiAgICAgIFtcIjgzNDBcIiwgXCJcXHUzMEExXCIsIDYyXSxcbiAgICAgIFtcIjgzODBcIiwgXCJcXHUzMEUwXCIsIDIyXSxcbiAgICAgIFtcIjgzOWZcIiwgXCJcXHUwMzkxXCIsIDE2LCBcIlxcdTAzQTNcIiwgNl0sXG4gICAgICBbXCI4M2JmXCIsIFwiXFx1MDNCMVwiLCAxNiwgXCJcXHUwM0MzXCIsIDZdLFxuICAgICAgW1wiODQ0MFwiLCBcIlxcdTA0MTBcIiwgNSwgXCJcXHUwNDAxXFx1MDQxNlwiLCAyNV0sXG4gICAgICBbXCI4NDcwXCIsIFwiXFx1MDQzMFwiLCA1LCBcIlxcdTA0NTFcXHUwNDM2XCIsIDddLFxuICAgICAgW1wiODQ4MFwiLCBcIlxcdTA0M0VcIiwgMTddLFxuICAgICAgW1wiODQ5ZlwiLCBcIlxcdTI1MDBcXHUyNTAyXFx1MjUwQ1xcdTI1MTBcXHUyNTE4XFx1MjUxNFxcdTI1MUNcXHUyNTJDXFx1MjUyNFxcdTI1MzRcXHUyNTNDXFx1MjUwMVxcdTI1MDNcXHUyNTBGXFx1MjUxM1xcdTI1MUJcXHUyNTE3XFx1MjUyM1xcdTI1MzNcXHUyNTJCXFx1MjUzQlxcdTI1NEJcXHUyNTIwXFx1MjUyRlxcdTI1MjhcXHUyNTM3XFx1MjUzRlxcdTI1MURcXHUyNTMwXFx1MjUyNVxcdTI1MzhcXHUyNTQyXCJdLFxuICAgICAgW1wiODc0MFwiLCBcIlxcdTI0NjBcIiwgMTksIFwiXFx1MjE2MFwiLCA5XSxcbiAgICAgIFtcIjg3NWZcIiwgXCJcXHUzMzQ5XFx1MzMxNFxcdTMzMjJcXHUzMzREXFx1MzMxOFxcdTMzMjdcXHUzMzAzXFx1MzMzNlxcdTMzNTFcXHUzMzU3XFx1MzMwRFxcdTMzMjZcXHUzMzIzXFx1MzMyQlxcdTMzNEFcXHUzMzNCXFx1MzM5Q1xcdTMzOURcXHUzMzlFXFx1MzM4RVxcdTMzOEZcXHUzM0M0XFx1MzNBMVwiXSxcbiAgICAgIFtcIjg3N2VcIiwgXCJcXHUzMzdCXCJdLFxuICAgICAgW1wiODc4MFwiLCBcIlxcdTMwMURcXHUzMDFGXFx1MjExNlxcdTMzQ0RcXHUyMTIxXFx1MzJBNFwiLCA0LCBcIlxcdTMyMzFcXHUzMjMyXFx1MzIzOVxcdTMzN0VcXHUzMzdEXFx1MzM3Q1xcdTIyNTJcXHUyMjYxXFx1MjIyQlxcdTIyMkVcXHUyMjExXFx1MjIxQVxcdTIyQTVcXHUyMjIwXFx1MjIxRlxcdTIyQkZcXHUyMjM1XFx1MjIyOVxcdTIyMkFcIl0sXG4gICAgICBbXCI4ODlmXCIsIFwiXFx1NEU5Q1xcdTU1MTZcXHU1QTAzXFx1OTYzRlxcdTU0QzBcXHU2MTFCXFx1NjMyOFxcdTU5RjZcXHU5MDIyXFx1ODQ3NVxcdTgzMUNcXHU3QTUwXFx1NjBBQVxcdTYzRTFcXHU2RTI1XFx1NjVFRFxcdTg0NjZcXHU4MkE2XFx1OUJGNVxcdTY4OTNcXHU1NzI3XFx1NjVBMVxcdTYyNzFcXHU1QjlCXFx1NTlEMFxcdTg2N0JcXHU5OEY0XFx1N0Q2MlxcdTdEQkVcXHU5QjhFXFx1NjIxNlxcdTdDOUZcXHU4OEI3XFx1NUI4OVxcdTVFQjVcXHU2MzA5XFx1NjY5N1xcdTY4NDhcXHU5NUM3XFx1OTc4RFxcdTY3NEZcXHU0RUU1XFx1NEYwQVxcdTRGNERcXHU0RjlEXFx1NTA0OVxcdTU2RjJcXHU1OTM3XFx1NTlENFxcdTVBMDFcXHU1QzA5XFx1NjBERlxcdTYxMEZcXHU2MTcwXFx1NjYxM1xcdTY5MDVcXHU3MEJBXFx1NzU0RlxcdTc1NzBcXHU3OUZCXFx1N0RBRFxcdTdERUZcXHU4MEMzXFx1ODQwRVxcdTg4NjNcXHU4QjAyXFx1OTA1NVxcdTkwN0FcXHU1MzNCXFx1NEU5NVxcdTRFQTVcXHU1N0RGXFx1ODBCMlxcdTkwQzFcXHU3OEVGXFx1NEUwMFxcdTU4RjFcXHU2RUEyXFx1OTAzOFxcdTdBMzJcXHU4MzI4XFx1ODI4QlxcdTlDMkZcXHU1MTQxXFx1NTM3MFxcdTU0QkRcXHU1NEUxXFx1NTZFMFxcdTU5RkJcXHU1RjE1XFx1OThGMlxcdTZERUJcXHU4MEU0XFx1ODUyRFwiXSxcbiAgICAgIFtcIjg5NDBcIiwgXCJcXHU5NjYyXFx1OTY3MFxcdTk2QTBcXHU5N0ZCXFx1NTQwQlxcdTUzRjNcXHU1Qjg3XFx1NzBDRlxcdTdGQkRcXHU4RkMyXFx1OTZFOFxcdTUzNkZcXHU5RDVDXFx1N0FCQVxcdTRFMTFcXHU3ODkzXFx1ODFGQ1xcdTZFMjZcXHU1NjE4XFx1NTUwNFxcdTZCMURcXHU4NTFBXFx1OUMzQlxcdTU5RTVcXHU1M0E5XFx1NkQ2NlxcdTc0RENcXHU5NThGXFx1NTY0MlxcdTRFOTFcXHU5MDRCXFx1OTZGMlxcdTgzNEZcXHU5OTBDXFx1NTNFMVxcdTU1QjZcXHU1QjMwXFx1NUY3MVxcdTY2MjBcXHU2NkYzXFx1NjgwNFxcdTZDMzhcXHU2Q0YzXFx1NkQyOVxcdTc0NUJcXHU3NkM4XFx1N0E0RVxcdTk4MzRcXHU4MkYxXFx1ODg1QlxcdThBNjBcXHU5MkVEXFx1NkRCMlxcdTc1QUJcXHU3NkNBXFx1OTlDNVxcdTYwQTZcXHU4QjAxXFx1OEQ4QVxcdTk1QjJcXHU2OThFXFx1NTNBRFxcdTUxODZcIl0sXG4gICAgICBbXCI4OTgwXCIsIFwiXFx1NTcxMlxcdTU4MzBcXHU1OTQ0XFx1NUJCNFxcdTVFRjZcXHU2MDI4XFx1NjNBOVxcdTYzRjRcXHU2Q0JGXFx1NkYxNFxcdTcwOEVcXHU3MTE0XFx1NzE1OVxcdTcxRDVcXHU3MzNGXFx1N0UwMVxcdTgyNzZcXHU4MkQxXFx1ODU5N1xcdTkwNjBcXHU5MjVCXFx1OUQxQlxcdTU4NjlcXHU2NUJDXFx1NkM1QVxcdTc1MjVcXHU1MUY5XFx1NTkyRVxcdTU5NjVcXHU1RjgwXFx1NUZEQ1xcdTYyQkNcXHU2NUZBXFx1NkEyQVxcdTZCMjdcXHU2QkI0XFx1NzM4QlxcdTdGQzFcXHU4OTU2XFx1OUQyQ1xcdTlEMEVcXHU5RUM0XFx1NUNBMVxcdTZDOTZcXHU4MzdCXFx1NTEwNFxcdTVDNEJcXHU2MUI2XFx1ODFDNlxcdTY4NzZcXHU3MjYxXFx1NEU1OVxcdTRGRkFcXHU1Mzc4XFx1NjA2OVxcdTZFMjlcXHU3QTRGXFx1OTdGM1xcdTRFMEJcXHU1MzE2XFx1NEVFRVxcdTRGNTVcXHU0RjNEXFx1NEZBMVxcdTRGNzNcXHU1MkEwXFx1NTNFRlxcdTU2MDlcXHU1OTBGXFx1NUFDMVxcdTVCQjZcXHU1QkUxXFx1NzlEMVxcdTY2ODdcXHU2NzlDXFx1NjdCNlxcdTZCNENcXHU2Q0IzXFx1NzA2QlxcdTczQzJcXHU3OThEXFx1NzlCRVxcdTdBM0NcXHU3Qjg3XFx1ODJCMVxcdTgyREJcXHU4MzA0XFx1ODM3N1xcdTgzRUZcXHU4M0QzXFx1ODc2NlxcdThBQjJcXHU1NjI5XFx1OENBOFxcdThGRTZcXHU5MDRFXFx1OTcxRVxcdTg2OEFcXHU0RkM0XFx1NUNFOFxcdTYyMTFcXHU3MjU5XFx1NzUzQlxcdTgxRTVcXHU4MkJEXFx1ODZGRVxcdThDQzBcXHU5NkM1XFx1OTkxM1xcdTk5RDVcXHU0RUNCXFx1NEYxQVxcdTg5RTNcXHU1NkRFXFx1NTg0QVxcdTU4Q0FcXHU1RUZCXFx1NUZFQlxcdTYwMkFcXHU2MDk0XFx1NjA2MlxcdTYxRDBcXHU2MjEyXFx1NjJEMFxcdTY1MzlcIl0sXG4gICAgICBbXCI4YTQwXCIsIFwiXFx1OUI0MVxcdTY2NjZcXHU2OEIwXFx1NkQ3N1xcdTcwNzBcXHU3NTRDXFx1NzY4NlxcdTdENzVcXHU4MkE1XFx1ODdGOVxcdTk1OEJcXHU5NjhFXFx1OEM5RFxcdTUxRjFcXHU1MkJFXFx1NTkxNlxcdTU0QjNcXHU1QkIzXFx1NUQxNlxcdTYxNjhcXHU2OTgyXFx1NkRBRlxcdTc4OERcXHU4NENCXFx1ODg1N1xcdThBNzJcXHU5M0E3XFx1OUFCOFxcdTZENkNcXHU5OUE4XFx1ODZEOVxcdTU3QTNcXHU2N0ZGXFx1ODZDRVxcdTkyMEVcXHU1MjgzXFx1NTY4N1xcdTU0MDRcXHU1RUQzXFx1NjJFMVxcdTY0QjlcXHU2ODNDXFx1NjgzOFxcdTZCQkJcXHU3MzcyXFx1NzhCQVxcdTdBNkJcXHU4OTlBXFx1ODlEMlxcdThENkJcXHU4RjAzXFx1OTBFRFxcdTk1QTNcXHU5Njk0XFx1OTc2OVxcdTVCNjZcXHU1Q0IzXFx1Njk3RFxcdTk4NERcXHU5ODRFXFx1NjM5QlxcdTdCMjBcXHU2QTJCXCJdLFxuICAgICAgW1wiOGE4MFwiLCBcIlxcdTZBN0ZcXHU2OEI2XFx1OUMwRFxcdTZGNUZcXHU1MjcyXFx1NTU5RFxcdTYwNzBcXHU2MkVDXFx1NkQzQlxcdTZFMDdcXHU2RUQxXFx1ODQ1QlxcdTg5MTBcXHU4RjQ0XFx1NEUxNFxcdTlDMzlcXHU1M0Y2XFx1NjkxQlxcdTZBM0FcXHU5Nzg0XFx1NjgyQVxcdTUxNUNcXHU3QUMzXFx1ODRCMlxcdTkxRENcXHU5MzhDXFx1NTY1QlxcdTlEMjhcXHU2ODIyXFx1ODMwNVxcdTg0MzFcXHU3Q0E1XFx1NTIwOFxcdTgyQzVcXHU3NEU2XFx1NEU3RVxcdTRGODNcXHU1MUEwXFx1NUJEMlxcdTUyMEFcXHU1MkQ4XFx1NTJFN1xcdTVERkJcXHU1NTlBXFx1NTgyQVxcdTU5RTZcXHU1QjhDXFx1NUI5OFxcdTVCREJcXHU1RTcyXFx1NUU3OVxcdTYwQTNcXHU2MTFGXFx1NjE2M1xcdTYxQkVcXHU2M0RCXFx1NjU2MlxcdTY3RDFcXHU2ODUzXFx1NjhGQVxcdTZCM0VcXHU2QjUzXFx1NkM1N1xcdTZGMjJcXHU2Rjk3XFx1NkY0NVxcdTc0QjBcXHU3NTE4XFx1NzZFM1xcdTc3MEJcXHU3QUZGXFx1N0JBMVxcdTdDMjFcXHU3REU5XFx1N0YzNlxcdTdGRjBcXHU4MDlEXFx1ODI2NlxcdTgzOUVcXHU4OUIzXFx1OEFDQ1xcdThDQUJcXHU5MDg0XFx1OTQ1MVxcdTk1OTNcXHU5NTkxXFx1OTVBMlxcdTk2NjVcXHU5N0QzXFx1OTkyOFxcdTgyMThcXHU0RTM4XFx1NTQyQlxcdTVDQjhcXHU1RENDXFx1NzNBOVxcdTc2NENcXHU3NzNDXFx1NUNBOVxcdTdGRUJcXHU4RDBCXFx1OTZDMVxcdTk4MTFcXHU5ODU0XFx1OTg1OFxcdTRGMDFcXHU0RjBFXFx1NTM3MVxcdTU1OUNcXHU1NjY4XFx1NTdGQVxcdTU5NDdcXHU1QjA5XFx1NUJDNFxcdTVDOTBcXHU1RTBDXFx1NUU3RVxcdTVGQ0NcXHU2M0VFXFx1NjczQVxcdTY1RDdcXHU2NUUyXFx1NjcxRlxcdTY4Q0JcXHU2OEM0XCJdLFxuICAgICAgW1wiOGI0MFwiLCBcIlxcdTZBNUZcXHU1RTMwXFx1NkJDNVxcdTZDMTdcXHU2QzdEXFx1NzU3RlxcdTc5NDhcXHU1QjYzXFx1N0EwMFxcdTdEMDBcXHU1RkJEXFx1ODk4RlxcdThBMThcXHU4Q0I0XFx1OEQ3N1xcdThFQ0NcXHU4RjFEXFx1OThFMlxcdTlBMEVcXHU5QjNDXFx1NEU4MFxcdTUwN0RcXHU1MTAwXFx1NTk5M1xcdTVCOUNcXHU2MjJGXFx1NjI4MFxcdTY0RUNcXHU2QjNBXFx1NzJBMFxcdTc1OTFcXHU3OTQ3XFx1N0ZBOVxcdTg3RkJcXHU4QUJDXFx1OEI3MFxcdTYzQUNcXHU4M0NBXFx1OTdBMFxcdTU0MDlcXHU1NDAzXFx1NTVBQlxcdTY4NTRcXHU2QTU4XFx1OEE3MFxcdTc4MjdcXHU2Nzc1XFx1OUVDRFxcdTUzNzRcXHU1QkEyXFx1ODExQVxcdTg2NTBcXHU5MDA2XFx1NEUxOFxcdTRFNDVcXHU0RUM3XFx1NEYxMVxcdTUzQ0FcXHU1NDM4XFx1NUJBRVxcdTVGMTNcXHU2MDI1XFx1NjU1MVwiXSxcbiAgICAgIFtcIjhiODBcIiwgXCJcXHU2NzNEXFx1NkM0MlxcdTZDNzJcXHU2Q0UzXFx1NzA3OFxcdTc0MDNcXHU3QTc2XFx1N0FBRVxcdTdCMDhcXHU3RDFBXFx1N0NGRVxcdTdENjZcXHU2NUU3XFx1NzI1QlxcdTUzQkJcXHU1QzQ1XFx1NURFOFxcdTYyRDJcXHU2MkUwXFx1NjMxOVxcdTZFMjBcXHU4NjVBXFx1OEEzMVxcdThERERcXHU5MkY4XFx1NkYwMVxcdTc5QTZcXHU5QjVBXFx1NEVBOFxcdTRFQUJcXHU0RUFDXFx1NEY5QlxcdTRGQTBcXHU1MEQxXFx1NTE0N1xcdTdBRjZcXHU1MTcxXFx1NTFGNlxcdTUzNTRcXHU1MzIxXFx1NTM3RlxcdTUzRUJcXHU1NUFDXFx1NTg4M1xcdTVDRTFcXHU1RjM3XFx1NUY0QVxcdTYwMkZcXHU2MDUwXFx1NjA2RFxcdTYzMUZcXHU2NTU5XFx1NkE0QlxcdTZDQzFcXHU3MkMyXFx1NzJFRFxcdTc3RUZcXHU4MEY4XFx1ODEwNVxcdTgyMDhcXHU4NTRFXFx1OTBGN1xcdTkzRTFcXHU5N0ZGXFx1OTk1N1xcdTlBNUFcXHU0RUYwXFx1NTFERFxcdTVDMkRcXHU2NjgxXFx1Njk2RFxcdTVDNDBcXHU2NkYyXFx1Njk3NVxcdTczODlcXHU2ODUwXFx1N0M4MVxcdTUwQzVcXHU1MkU0XFx1NTc0N1xcdTVERkVcXHU5MzI2XFx1NjVBNFxcdTZCMjNcXHU2QjNEXFx1NzQzNFxcdTc5ODFcXHU3OUJEXFx1N0I0QlxcdTdEQ0FcXHU4MkI5XFx1ODNDQ1xcdTg4N0ZcXHU4OTVGXFx1OEIzOVxcdThGRDFcXHU5MUQxXFx1NTQxRlxcdTkyODBcXHU0RTVEXFx1NTAzNlxcdTUzRTVcXHU1MzNBXFx1NzJEN1xcdTczOTZcXHU3N0U5XFx1ODJFNlxcdThFQUZcXHU5OUM2XFx1OTlDOFxcdTk5RDJcXHU1MTc3XFx1NjExQVxcdTg2NUVcXHU1NUIwXFx1N0E3QVxcdTUwNzZcXHU1QkQzXFx1OTA0N1xcdTk2ODVcXHU0RTMyXFx1NkFEQlxcdTkxRTdcXHU1QzUxXFx1NUM0OFwiXSxcbiAgICAgIFtcIjhjNDBcIiwgXCJcXHU2Mzk4XFx1N0E5RlxcdTZDOTNcXHU5Nzc0XFx1OEY2MVxcdTdBQUFcXHU3MThBXFx1OTY4OFxcdTdDODJcXHU2ODE3XFx1N0U3MFxcdTY4NTFcXHU5MzZDXFx1NTJGMlxcdTU0MUJcXHU4NUFCXFx1OEExM1xcdTdGQTRcXHU4RUNEXFx1OTBFMVxcdTUzNjZcXHU4ODg4XFx1Nzk0MVxcdTRGQzJcXHU1MEJFXFx1NTIxMVxcdTUxNDRcXHU1NTUzXFx1NTcyRFxcdTczRUFcXHU1NzhCXFx1NTk1MVxcdTVGNjJcXHU1Rjg0XFx1NjA3NVxcdTYxNzZcXHU2MTY3XFx1NjFBOVxcdTYzQjJcXHU2NDNBXFx1NjU2Q1xcdTY2NkZcXHU2ODQyXFx1NkUxM1xcdTc1NjZcXHU3QTNEXFx1N0NGQlxcdTdENENcXHU3RDk5XFx1N0U0QlxcdTdGNkJcXHU4MzBFXFx1ODM0QVxcdTg2Q0RcXHU4QTA4XFx1OEE2M1xcdThCNjZcXHU4RUZEXFx1OTgxQVxcdTlEOEZcXHU4MkI4XFx1OEZDRVxcdTlCRThcIl0sXG4gICAgICBbXCI4YzgwXCIsIFwiXFx1NTI4N1xcdTYyMUZcXHU2NDgzXFx1NkZDMFxcdTk2OTlcXHU2ODQxXFx1NTA5MVxcdTZCMjBcXHU2QzdBXFx1NkY1NFxcdTdBNzRcXHU3RDUwXFx1ODg0MFxcdThBMjNcXHU2NzA4XFx1NEVGNlxcdTUwMzlcXHU1MDI2XFx1NTA2NVxcdTUxN0NcXHU1MjM4XFx1NTI2M1xcdTU1QTdcXHU1NzBGXFx1NTgwNVxcdTVBQ0NcXHU1RUZBXFx1NjFCMlxcdTYxRjhcXHU2MkYzXFx1NjM3MlxcdTY5MUNcXHU2QTI5XFx1NzI3RFxcdTcyQUNcXHU3MzJFXFx1NzgxNFxcdTc4NkZcXHU3RDc5XFx1NzcwQ1xcdTgwQTlcXHU4OThCXFx1OEIxOVxcdThDRTJcXHU4RUQyXFx1OTA2M1xcdTkzNzVcXHU5NjdBXFx1OTg1NVxcdTlBMTNcXHU5RTc4XFx1NTE0M1xcdTUzOUZcXHU1M0IzXFx1NUU3QlxcdTVGMjZcXHU2RTFCXFx1NkU5MFxcdTczODRcXHU3M0ZFXFx1N0Q0M1xcdTgyMzdcXHU4QTAwXFx1OEFGQVxcdTk2NTBcXHU0RTRFXFx1NTAwQlxcdTUzRTRcXHU1NDdDXFx1NTZGQVxcdTU5RDFcXHU1QjY0XFx1NURGMVxcdTVFQUJcXHU1RjI3XFx1NjIzOFxcdTY1NDVcXHU2N0FGXFx1NkU1NlxcdTcyRDBcXHU3Q0NBXFx1ODhCNFxcdTgwQTFcXHU4MEUxXFx1ODNGMFxcdTg2NEVcXHU4QTg3XFx1OERFOFxcdTkyMzdcXHU5NkM3XFx1OTg2N1xcdTlGMTNcXHU0RTk0XFx1NEU5MlxcdTRGMERcXHU1MzQ4XFx1NTQ0OVxcdTU0M0VcXHU1QTJGXFx1NUY4Q1xcdTVGQTFcXHU2MDlGXFx1NjhBN1xcdTZBOEVcXHU3NDVBXFx1Nzg4MVxcdThBOUVcXHU4QUE0XFx1OEI3N1xcdTkxOTBcXHU0RTVFXFx1OUJDOVxcdTRFQTRcXHU0RjdDXFx1NEZBRlxcdTUwMTlcXHU1MDE2XFx1NTE0OVxcdTUxNkNcXHU1MjlGXFx1NTJCOVxcdTUyRkVcXHU1MzlBXFx1NTNFM1xcdTU0MTFcIl0sXG4gICAgICBbXCI4ZDQwXCIsIFwiXFx1NTQwRVxcdTU1ODlcXHU1NzUxXFx1NTdBMlxcdTU5N0RcXHU1QjU0XFx1NUI1RFxcdTVCOEZcXHU1REU1XFx1NURFN1xcdTVERjdcXHU1RTc4XFx1NUU4M1xcdTVFOUFcXHU1RUI3XFx1NUYxOFxcdTYwNTJcXHU2MTRDXFx1NjI5N1xcdTYyRDhcXHU2M0E3XFx1NjUzQlxcdTY2MDJcXHU2NjQzXFx1NjZGNFxcdTY3NkRcXHU2ODIxXFx1Njg5N1xcdTY5Q0JcXHU2QzVGXFx1NkQyQVxcdTZENjlcXHU2RTJGXFx1NkU5RFxcdTc1MzJcXHU3Njg3XFx1Nzg2Q1xcdTdBM0ZcXHU3Q0UwXFx1N0QwNVxcdTdEMThcXHU3RDVFXFx1N0RCMVxcdTgwMTVcXHU4MDAzXFx1ODBBRlxcdTgwQjFcXHU4MTU0XFx1ODE4RlxcdTgyMkFcXHU4MzUyXFx1ODg0Q1xcdTg4NjFcXHU4QjFCXFx1OENBMlxcdThDRkNcXHU5MENBXFx1OTE3NVxcdTkyNzFcXHU3ODNGXFx1OTJGQ1xcdTk1QTRcXHU5NjREXCJdLFxuICAgICAgW1wiOGQ4MFwiLCBcIlxcdTk4MDVcXHU5OTk5XFx1OUFEOFxcdTlEM0JcXHU1MjVCXFx1NTJBQlxcdTUzRjdcXHU1NDA4XFx1NThENVxcdTYyRjdcXHU2RkUwXFx1OEM2QVxcdThGNUZcXHU5RUI5XFx1NTE0QlxcdTUyM0JcXHU1NDRBXFx1NTZGRFxcdTdBNDBcXHU5MTc3XFx1OUQ2MFxcdTlFRDJcXHU3MzQ0XFx1NkYwOVxcdTgxNzBcXHU3NTExXFx1NUZGRFxcdTYwREFcXHU5QUE4XFx1NzJEQlxcdThGQkNcXHU2QjY0XFx1OTgwM1xcdTRFQ0FcXHU1NkYwXFx1NTc2NFxcdTU4QkVcXHU1QTVBXFx1NjA2OFxcdTYxQzdcXHU2NjBGXFx1NjYwNlxcdTY4MzlcXHU2OEIxXFx1NkRGN1xcdTc1RDVcXHU3RDNBXFx1ODI2RVxcdTlCNDJcXHU0RTlCXFx1NEY1MFxcdTUzQzlcXHU1NTA2XFx1NUQ2RlxcdTVERTZcXHU1REVFXFx1NjdGQlxcdTZDOTlcXHU3NDczXFx1NzgwMlxcdThBNTBcXHU5Mzk2XFx1ODhERlxcdTU3NTBcXHU1RUE3XFx1NjMyQlxcdTUwQjVcXHU1MEFDXFx1NTE4RFxcdTY3MDBcXHU1NEM5XFx1NTg1RVxcdTU5QkJcXHU1QkIwXFx1NUY2OVxcdTYyNERcXHU2M0ExXFx1NjgzRFxcdTZCNzNcXHU2RTA4XFx1NzA3RFxcdTkxQzdcXHU3MjgwXFx1NzgxNVxcdTc4MjZcXHU3OTZEXFx1NjU4RVxcdTdEMzBcXHU4M0RDXFx1ODhDMVxcdThGMDlcXHU5NjlCXFx1NTI2NFxcdTU3MjhcXHU2NzUwXFx1N0Y2QVxcdThDQTFcXHU1MUI0XFx1NTc0MlxcdTk2MkFcXHU1ODNBXFx1Njk4QVxcdTgwQjRcXHU1NEIyXFx1NUQwRVxcdTU3RkNcXHU3ODk1XFx1OURGQVxcdTRGNUNcXHU1MjRBXFx1NTQ4QlxcdTY0M0VcXHU2NjI4XFx1NjcxNFxcdTY3RjVcXHU3QTg0XFx1N0I1NlxcdTdEMjJcXHU5MzJGXFx1Njg1Q1xcdTlCQURcXHU3QjM5XFx1NTMxOVxcdTUxOEFcXHU1MjM3XCJdLFxuICAgICAgW1wiOGU0MFwiLCBcIlxcdTVCREZcXHU2MkY2XFx1NjRBRVxcdTY0RTZcXHU2NzJEXFx1NkJCQVxcdTg1QTlcXHU5NkQxXFx1NzY5MFxcdTlCRDZcXHU2MzRDXFx1OTMwNlxcdTlCQUJcXHU3NkJGXFx1NjY1MlxcdTRFMDlcXHU1MDk4XFx1NTNDMlxcdTVDNzFcXHU2MEU4XFx1NjQ5MlxcdTY1NjNcXHU2ODVGXFx1NzFFNlxcdTczQ0FcXHU3NTIzXFx1N0I5N1xcdTdFODJcXHU4Njk1XFx1OEI4M1xcdThDREJcXHU5MTc4XFx1OTkxMFxcdTY1QUNcXHU2NkFCXFx1NkI4QlxcdTRFRDVcXHU0RUQ0XFx1NEYzQVxcdTRGN0ZcXHU1MjNBXFx1NTNGOFxcdTUzRjJcXHU1NUUzXFx1NTZEQlxcdTU4RUJcXHU1OUNCXFx1NTlDOVxcdTU5RkZcXHU1QjUwXFx1NUM0RFxcdTVFMDJcXHU1RTJCXFx1NUZEN1xcdTYwMURcXHU2MzA3XFx1NjUyRlxcdTVCNUNcXHU2NUFGXFx1NjVCRFxcdTY1RThcXHU2NzlEXFx1NkI2MlwiXSxcbiAgICAgIFtcIjhlODBcIiwgXCJcXHU2QjdCXFx1NkMwRlxcdTczNDVcXHU3OTQ5XFx1NzlDMVxcdTdDRjhcXHU3RDE5XFx1N0QyQlxcdTgwQTJcXHU4MTAyXFx1ODFGM1xcdTg5OTZcXHU4QTVFXFx1OEE2OVxcdThBNjZcXHU4QThDXFx1OEFFRVxcdThDQzdcXHU4Q0RDXFx1OTZDQ1xcdTk4RkNcXHU2QjZGXFx1NEU4QlxcdTRGM0NcXHU0RjhEXFx1NTE1MFxcdTVCNTdcXHU1QkZBXFx1NjE0OFxcdTYzMDFcXHU2NjQyXFx1NkIyMVxcdTZFQ0JcXHU2Q0JCXFx1NzIzRVxcdTc0QkRcXHU3NUQ0XFx1NzhDMVxcdTc5M0FcXHU4MDBDXFx1ODAzM1xcdTgxRUFcXHU4NDk0XFx1OEY5RVxcdTZDNTBcXHU5RTdGXFx1NUYwRlxcdThCNThcXHU5RDJCXFx1N0FGQVxcdThFRjhcXHU1QjhEXFx1OTZFQlxcdTRFMDNcXHU1M0YxXFx1NTdGN1xcdTU5MzFcXHU1QUM5XFx1NUJBNFxcdTYwODlcXHU2RTdGXFx1NkYwNlxcdTc1QkVcXHU4Q0VBXFx1NUI5RlxcdTg1MDBcXHU3QkUwXFx1NTA3MlxcdTY3RjRcXHU4MjlEXFx1NUM2MVxcdTg1NEFcXHU3RTFFXFx1ODIwRVxcdTUxOTlcXHU1QzA0XFx1NjM2OFxcdThENjZcXHU2NTlDXFx1NzE2RVxcdTc5M0VcXHU3RDE3XFx1ODAwNVxcdThCMURcXHU4RUNBXFx1OTA2RVxcdTg2QzdcXHU5MEFBXFx1NTAxRlxcdTUyRkFcXHU1QzNBXFx1Njc1M1xcdTcwN0NcXHU3MjM1XFx1OTE0Q1xcdTkxQzhcXHU5MzJCXFx1ODJFNVxcdTVCQzJcXHU1RjMxXFx1NjBGOVxcdTRFM0JcXHU1M0Q2XFx1NUI4OFxcdTYyNEJcXHU2NzMxXFx1NkI4QVxcdTcyRTlcXHU3M0UwXFx1N0EyRVxcdTgxNkJcXHU4REEzXFx1OTE1MlxcdTk5OTZcXHU1MTEyXFx1NTNEN1xcdTU0NkFcXHU1QkZGXFx1NjM4OFxcdTZBMzlcXHU3REFDXFx1OTcwMFxcdTU2REFcXHU1M0NFXFx1NTQ2OFwiXSxcbiAgICAgIFtcIjhmNDBcIiwgXCJcXHU1Qjk3XFx1NUMzMVxcdTVEREVcXHU0RkVFXFx1NjEwMVxcdTYyRkVcXHU2RDMyXFx1NzlDMFxcdTc5Q0JcXHU3RDQyXFx1N0U0RFxcdTdGRDJcXHU4MUVEXFx1ODIxRlxcdTg0OTBcXHU4ODQ2XFx1ODk3MlxcdThCOTBcXHU4RTc0XFx1OEYyRlxcdTkwMzFcXHU5MTRCXFx1OTE2Q1xcdTk2QzZcXHU5MTlDXFx1NEVDMFxcdTRGNEZcXHU1MTQ1XFx1NTM0MVxcdTVGOTNcXHU2MjBFXFx1NjdENFxcdTZDNDFcXHU2RTBCXFx1NzM2M1xcdTdFMjZcXHU5MUNEXFx1OTI4M1xcdTUzRDRcXHU1OTE5XFx1NUJCRlxcdTZERDFcXHU3OTVEXFx1N0UyRVxcdTdDOUJcXHU1ODdFXFx1NzE5RlxcdTUxRkFcXHU4ODUzXFx1OEZGMFxcdTRGQ0FcXHU1Q0ZCXFx1NjYyNVxcdTc3QUNcXHU3QUUzXFx1ODIxQ1xcdTk5RkZcXHU1MUM2XFx1NUZBQVxcdTY1RUNcXHU2OTZGXFx1NkI4OVxcdTZERjNcIl0sXG4gICAgICBbXCI4ZjgwXCIsIFwiXFx1NkU5NlxcdTZGNjRcXHU3NkZFXFx1N0QxNFxcdTVERTFcXHU5MDc1XFx1OTE4N1xcdTk4MDZcXHU1MUU2XFx1NTIxRFxcdTYyNDBcXHU2NjkxXFx1NjZEOVxcdTZFMUFcXHU1RUI2XFx1N0REMlxcdTdGNzJcXHU2NkY4XFx1ODVBRlxcdTg1RjdcXHU4QUY4XFx1NTJBOVxcdTUzRDlcXHU1OTczXFx1NUU4RlxcdTVGOTBcXHU2MDU1XFx1OTJFNFxcdTk2NjRcXHU1MEI3XFx1NTExRlxcdTUyRERcXHU1MzIwXFx1NTM0N1xcdTUzRUNcXHU1NEU4XFx1NTU0NlxcdTU1MzFcXHU1NjE3XFx1NTk2OFxcdTU5QkVcXHU1QTNDXFx1NUJCNVxcdTVDMDZcXHU1QzBGXFx1NUMxMVxcdTVDMUFcXHU1RTg0XFx1NUU4QVxcdTVFRTBcXHU1RjcwXFx1NjI3RlxcdTYyODRcXHU2MkRCXFx1NjM4Q1xcdTYzNzdcXHU2NjA3XFx1NjYwQ1xcdTY2MkRcXHU2Njc2XFx1Njc3RVxcdTY4QTJcXHU2QTFGXFx1NkEzNVxcdTZDQkNcXHU2RDg4XFx1NkUwOVxcdTZFNThcXHU3MTNDXFx1NzEyNlxcdTcxNjdcXHU3NUM3XFx1NzcwMVxcdTc4NURcXHU3OTAxXFx1Nzk2NVxcdTc5RjBcXHU3QUUwXFx1N0IxMVxcdTdDQTdcXHU3RDM5XFx1ODA5NlxcdTgzRDZcXHU4NDhCXFx1ODU0OVxcdTg4NURcXHU4OEYzXFx1OEExRlxcdThBM0NcXHU4QTU0XFx1OEE3M1xcdThDNjFcXHU4Q0RFXFx1OTFBNFxcdTkyNjZcXHU5MzdFXFx1OTQxOFxcdTk2OUNcXHU5Nzk4XFx1NEUwQVxcdTRFMDhcXHU0RTFFXFx1NEU1N1xcdTUxOTdcXHU1MjcwXFx1NTdDRVxcdTU4MzRcXHU1OENDXFx1NUIyMlxcdTVFMzhcXHU2MEM1XFx1NjRGRVxcdTY3NjFcXHU2NzU2XFx1NkQ0NFxcdTcyQjZcXHU3NTczXFx1N0E2M1xcdTg0QjhcXHU4QjcyXFx1OTFCOFxcdTkzMjBcXHU1NjMxXFx1NTdGNFxcdTk4RkVcIl0sXG4gICAgICBbXCI5MDQwXCIsIFwiXFx1NjJFRFxcdTY5MERcXHU2Qjk2XFx1NzFFRFxcdTdFNTRcXHU4MDc3XFx1ODI3MlxcdTg5RTZcXHU5OERGXFx1ODc1NVxcdThGQjFcXHU1QzNCXFx1NEYzOFxcdTRGRTFcXHU0RkI1XFx1NTUwN1xcdTVBMjBcXHU1QkREXFx1NUJFOVxcdTVGQzNcXHU2MTRFXFx1NjMyRlxcdTY1QjBcXHU2NjRCXFx1NjhFRVxcdTY5OUJcXHU2RDc4XFx1NkRGMVxcdTc1MzNcXHU3NUI5XFx1NzcxRlxcdTc5NUVcXHU3OUU2XFx1N0QzM1xcdTgxRTNcXHU4MkFGXFx1ODVBQVxcdTg5QUFcXHU4QTNBXFx1OEVBQlxcdThGOUJcXHU5MDMyXFx1OTFERFxcdTk3MDdcXHU0RUJBXFx1NEVDMVxcdTUyMDNcXHU1ODc1XFx1NThFQ1xcdTVDMEJcXHU3NTFBXFx1NUMzRFxcdTgxNEVcXHU4QTBBXFx1OEZDNVxcdTk2NjNcXHU5NzZEXFx1N0IyNVxcdThBQ0ZcXHU5ODA4XFx1OTE2MlxcdTU2RjNcXHU1M0E4XCJdLFxuICAgICAgW1wiOTA4MFwiLCBcIlxcdTkwMTdcXHU1NDM5XFx1NTc4MlxcdTVFMjVcXHU2M0E4XFx1NkMzNFxcdTcwOEFcXHU3NzYxXFx1N0M4QlxcdTdGRTBcXHU4ODcwXFx1OTA0MlxcdTkxNTRcXHU5MzEwXFx1OTMxOFxcdTk2OEZcXHU3NDVFXFx1OUFDNFxcdTVEMDdcXHU1RDY5XFx1NjU3MFxcdTY3QTJcXHU4REE4XFx1OTZEQlxcdTYzNkVcXHU2NzQ5XFx1NjkxOVxcdTgzQzVcXHU5ODE3XFx1OTZDMFxcdTg4RkVcXHU2Rjg0XFx1NjQ3QVxcdTVCRjhcXHU0RTE2XFx1NzAyQ1xcdTc1NURcXHU2NjJGXFx1NTFDNFxcdTUyMzZcXHU1MkUyXFx1NTlEM1xcdTVGODFcXHU2MDI3XFx1NjIxMFxcdTY1M0ZcXHU2NTc0XFx1NjYxRlxcdTY2NzRcXHU2OEYyXFx1NjgxNlxcdTZCNjNcXHU2RTA1XFx1NzI3MlxcdTc1MUZcXHU3NkRCXFx1N0NCRVxcdTgwNTZcXHU1OEYwXFx1ODhGRFxcdTg5N0ZcXHU4QUEwXFx1OEE5M1xcdThBQ0JcXHU5MDFEXFx1OTE5MlxcdTk3NTJcXHU5NzU5XFx1NjU4OVxcdTdBMEVcXHU4MTA2XFx1OTZCQlxcdTVFMkRcXHU2MERDXFx1NjIxQVxcdTY1QTVcXHU2NjE0XFx1Njc5MFxcdTc3RjNcXHU3QTREXFx1N0M0RFxcdTdFM0VcXHU4MTBBXFx1OENBQ1xcdThENjRcXHU4REUxXFx1OEU1RlxcdTc4QTlcXHU1MjA3XFx1NjJEOVxcdTYzQTVcXHU2NDQyXFx1NjI5OFxcdThBMkRcXHU3QTgzXFx1N0JDMFxcdThBQUNcXHU5NkVBXFx1N0Q3NlxcdTgyMENcXHU4NzQ5XFx1NEVEOVxcdTUxNDhcXHU1MzQzXFx1NTM2MFxcdTVCQTNcXHU1QzAyXFx1NUMxNlxcdTVERERcXHU2MjI2XFx1NjI0N1xcdTY0QjBcXHU2ODEzXFx1NjgzNFxcdTZDQzlcXHU2RDQ1XFx1NkQxN1xcdTY3RDNcXHU2RjVDXFx1NzE0RVxcdTcxN0RcXHU2NUNCXFx1N0E3RlxcdTdCQURcXHU3RERBXCJdLFxuICAgICAgW1wiOTE0MFwiLCBcIlxcdTdFNEFcXHU3RkE4XFx1ODE3QVxcdTgyMUJcXHU4MjM5XFx1ODVBNlxcdThBNkVcXHU4Q0NFXFx1OERGNVxcdTkwNzhcXHU5MDc3XFx1OTJBRFxcdTkyOTFcXHU5NTgzXFx1OUJBRVxcdTUyNERcXHU1NTg0XFx1NkYzOFxcdTcxMzZcXHU1MTY4XFx1Nzk4NVxcdTdFNTVcXHU4MUIzXFx1N0NDRVxcdTU2NENcXHU1ODUxXFx1NUNBOFxcdTYzQUFcXHU2NkZFXFx1NjZGRFxcdTY5NUFcXHU3MkQ5XFx1NzU4RlxcdTc1OEVcXHU3OTBFXFx1Nzk1NlxcdTc5REZcXHU3Qzk3XFx1N0QyMFxcdTdENDRcXHU4NjA3XFx1OEEzNFxcdTk2M0JcXHU5MDYxXFx1OUYyMFxcdTUwRTdcXHU1Mjc1XFx1NTNDQ1xcdTUzRTJcXHU1MDA5XFx1NTVBQVxcdTU4RUVcXHU1OTRGXFx1NzIzRFxcdTVCOEJcXHU1QzY0XFx1NTMxRFxcdTYwRTNcXHU2MEYzXFx1NjM1Q1xcdTYzODNcXHU2MzNGXFx1NjNCQlwiXSxcbiAgICAgIFtcIjkxODBcIiwgXCJcXHU2NENEXFx1NjVFOVxcdTY2RjlcXHU1REUzXFx1NjlDRFxcdTY5RkRcXHU2RjE1XFx1NzFFNVxcdTRFODlcXHU3NUU5XFx1NzZGOFxcdTdBOTNcXHU3Q0RGXFx1N0RDRlxcdTdEOUNcXHU4MDYxXFx1ODM0OVxcdTgzNThcXHU4NDZDXFx1ODRCQ1xcdTg1RkJcXHU4OEM1XFx1OEQ3MFxcdTkwMDFcXHU5MDZEXFx1OTM5N1xcdTk3MUNcXHU5QTEyXFx1NTBDRlxcdTU4OTdcXHU2MThFXFx1ODFEM1xcdTg1MzVcXHU4RDA4XFx1OTAyMFxcdTRGQzNcXHU1MDc0XFx1NTI0N1xcdTUzNzNcXHU2MDZGXFx1NjM0OVxcdTY3NUZcXHU2RTJDXFx1OERCM1xcdTkwMUZcXHU0RkQ3XFx1NUM1RVxcdThDQ0FcXHU2NUNGXFx1N0Q5QVxcdTUzNTJcXHU4ODk2XFx1NTE3NlxcdTYzQzNcXHU1QjU4XFx1NUI2QlxcdTVDMEFcXHU2NDBEXFx1Njc1MVxcdTkwNUNcXHU0RUQ2XFx1NTkxQVxcdTU5MkFcXHU2QzcwXFx1OEE1MVxcdTU1M0VcXHU1ODE1XFx1NTlBNVxcdTYwRjBcXHU2MjUzXFx1NjdDMVxcdTgyMzVcXHU2OTU1XFx1OTY0MFxcdTk5QzRcXHU5QTI4XFx1NEY1M1xcdTU4MDZcXHU1QkZFXFx1ODAxMFxcdTVDQjFcXHU1RTJGXFx1NUY4NVxcdTYwMjBcXHU2MTRCXFx1NjIzNFxcdTY2RkZcXHU2Q0YwXFx1NkVERVxcdTgwQ0VcXHU4MTdGXFx1ODJENFxcdTg4OEJcXHU4Q0I4XFx1OTAwMFxcdTkwMkVcXHU5NjhBXFx1OUVEQlxcdTlCREJcXHU0RUUzXFx1NTNGMFxcdTU5MjdcXHU3QjJDXFx1OTE4RFxcdTk4NENcXHU5REY5XFx1NkVERFxcdTcwMjdcXHU1MzUzXFx1NTU0NFxcdTVCODVcXHU2MjU4XFx1NjI5RVxcdTYyRDNcXHU2Q0EyXFx1NkZFRlxcdTc0MjJcXHU4QTE3XFx1OTQzOFxcdTZGQzFcXHU4QUZFXFx1ODMzOFxcdTUxRTdcXHU4NkY4XFx1NTNFQVwiXSxcbiAgICAgIFtcIjkyNDBcIiwgXCJcXHU1M0U5XFx1NEY0NlxcdTkwNTRcXHU4RkIwXFx1NTk2QVxcdTgxMzFcXHU1REZEXFx1N0FFQVxcdThGQkZcXHU2OERBXFx1OEMzN1xcdTcyRjhcXHU5QzQ4XFx1NkEzRFxcdThBQjBcXHU0RTM5XFx1NTM1OFxcdTU2MDZcXHU1NzY2XFx1NjJDNVxcdTYzQTJcXHU2NUU2XFx1NkI0RVxcdTZERTFcXHU2RTVCXFx1NzBBRFxcdTc3RURcXHU3QUVGXFx1N0JBQVxcdTdEQkJcXHU4MDNEXFx1ODBDNlxcdTg2Q0JcXHU4QTk1XFx1OTM1QlxcdTU2RTNcXHU1OEM3XFx1NUYzRVxcdTY1QURcXHU2Njk2XFx1NkE4MFxcdTZCQjVcXHU3NTM3XFx1OEFDN1xcdTUwMjRcXHU3N0U1XFx1NTczMFxcdTVGMUJcXHU2MDY1XFx1NjY3QVxcdTZDNjBcXHU3NUY0XFx1N0ExQVxcdTdGNkVcXHU4MUY0XFx1ODcxOFxcdTkwNDVcXHU5OUIzXFx1N0JDOVxcdTc1NUNcXHU3QUY5XFx1N0I1MVxcdTg0QzRcIl0sXG4gICAgICBbXCI5MjgwXCIsIFwiXFx1OTAxMFxcdTc5RTlcXHU3QTkyXFx1ODMzNlxcdTVBRTFcXHU3NzQwXFx1NEUyRFxcdTRFRjJcXHU1Qjk5XFx1NUZFMFxcdTYyQkRcXHU2NjNDXFx1NjdGMVxcdTZDRThcXHU4NjZCXFx1ODg3N1xcdThBM0JcXHU5MTRFXFx1OTJGM1xcdTk5RDBcXHU2QTE3XFx1NzAyNlxcdTczMkFcXHU4MkU3XFx1ODQ1N1xcdThDQUZcXHU0RTAxXFx1NTE0NlxcdTUxQ0JcXHU1NThCXFx1NUJGNVxcdTVFMTZcXHU1RTMzXFx1NUU4MVxcdTVGMTRcXHU1RjM1XFx1NUY2QlxcdTVGQjRcXHU2MUYyXFx1NjMxMVxcdTY2QTJcXHU2NzFEXFx1NkY2RVxcdTcyNTJcXHU3NTNBXFx1NzczQVxcdTgwNzRcXHU4MTM5XFx1ODE3OFxcdTg3NzZcXHU4QUJGXFx1OEFEQ1xcdThEODVcXHU4REYzXFx1OTI5QVxcdTk1NzdcXHU5ODAyXFx1OUNFNVxcdTUyQzVcXHU2MzU3XFx1NzZGNFxcdTY3MTVcXHU2Qzg4XFx1NzNDRFxcdThDQzNcXHU5M0FFXFx1OTY3M1xcdTZEMjVcXHU1ODlDXFx1NjkwRVxcdTY5Q0NcXHU4RkZEXFx1OTM5QVxcdTc1REJcXHU5MDFBXFx1NTg1QVxcdTY4MDJcXHU2M0I0XFx1NjlGQlxcdTRGNDNcXHU2RjJDXFx1NjdEOFxcdThGQkJcXHU4NTI2XFx1N0RCNFxcdTkzNTRcXHU2OTNGXFx1NkY3MFxcdTU3NkFcXHU1OEY3XFx1NUIyQ1xcdTdEMkNcXHU3MjJBXFx1NTQwQVxcdTkxRTNcXHU5REI0XFx1NEVBRFxcdTRGNEVcXHU1MDVDXFx1NTA3NVxcdTUyNDNcXHU4QzlFXFx1NTQ0OFxcdTU4MjRcXHU1QjlBXFx1NUUxRFxcdTVFOTVcXHU1RUFEXFx1NUVGN1xcdTVGMUZcXHU2MDhDXFx1NjJCNVxcdTYzM0FcXHU2M0QwXFx1NjhBRlxcdTZDNDBcXHU3ODg3XFx1Nzk4RVxcdTdBMEJcXHU3REUwXFx1ODI0N1xcdThBMDJcXHU4QUU2XFx1OEU0NFxcdTkwMTNcIl0sXG4gICAgICBbXCI5MzQwXCIsIFwiXFx1OTBCOFxcdTkxMkRcXHU5MUQ4XFx1OUYwRVxcdTZDRTVcXHU2NDU4XFx1NjRFMlxcdTY1NzVcXHU2RUY0XFx1NzY4NFxcdTdCMUJcXHU5MDY5XFx1OTNEMVxcdTZFQkFcXHU1NEYyXFx1NUZCOVxcdTY0QTRcXHU4RjREXFx1OEZFRFxcdTkyNDRcXHU1MTc4XFx1NTg2QlxcdTU5MjlcXHU1QzU1XFx1NUU5N1xcdTZERkJcXHU3RThGXFx1NzUxQ1xcdThDQkNcXHU4RUUyXFx1OTg1QlxcdTcwQjlcXHU0RjFEXFx1NkJCRlxcdTZGQjFcXHU3NTMwXFx1OTZGQlxcdTUxNEVcXHU1NDEwXFx1NTgzNVxcdTU4NTdcXHU1OUFDXFx1NUM2MFxcdTVGOTJcXHU2NTk3XFx1Njc1Q1xcdTZFMjFcXHU3NjdCXFx1ODNERlxcdThDRURcXHU5MDE0XFx1OTBGRFxcdTkzNERcXHU3ODI1XFx1NzgzQVxcdTUyQUFcXHU1RUE2XFx1NTcxRlxcdTU5NzRcXHU2MDEyXFx1NTAxMlxcdTUxNUFcXHU1MUFDXCJdLFxuICAgICAgW1wiOTM4MFwiLCBcIlxcdTUxQ0RcXHU1MjAwXFx1NTUxMFxcdTU4NTRcXHU1ODU4XFx1NTk1N1xcdTVCOTVcXHU1Q0Y2XFx1NUQ4QlxcdTYwQkNcXHU2Mjk1XFx1NjQyRFxcdTY3NzFcXHU2ODQzXFx1NjhCQ1xcdTY4REZcXHU3NkQ3XFx1NkREOFxcdTZFNkZcXHU2RDlCXFx1NzA2RlxcdTcxQzhcXHU1RjUzXFx1NzVEOFxcdTc5NzdcXHU3QjQ5XFx1N0I1NFxcdTdCNTJcXHU3Q0Q2XFx1N0Q3MVxcdTUyMzBcXHU4NDYzXFx1ODU2OVxcdTg1RTRcXHU4QTBFXFx1OEIwNFxcdThDNDZcXHU4RTBGXFx1OTAwM1xcdTkwMEZcXHU5NDE5XFx1OTY3NlxcdTk4MkRcXHU5QTMwXFx1OTVEOFxcdTUwQ0RcXHU1MkQ1XFx1NTQwQ1xcdTU4MDJcXHU1QzBFXFx1NjFBN1xcdTY0OUVcXHU2RDFFXFx1NzdCM1xcdTdBRTVcXHU4MEY0XFx1ODQwNFxcdTkwNTNcXHU5Mjg1XFx1NUNFMFxcdTlEMDdcXHU1MzNGXFx1NUY5N1xcdTVGQjNcXHU2RDlDXFx1NzI3OVxcdTc3NjNcXHU3OUJGXFx1N0JFNFxcdTZCRDJcXHU3MkVDXFx1OEFBRFxcdTY4MDNcXHU2QTYxXFx1NTFGOFxcdTdBODFcXHU2OTM0XFx1NUM0QVxcdTlDRjZcXHU4MkVCXFx1NUJDNVxcdTkxNDlcXHU3MDFFXFx1NTY3OFxcdTVDNkZcXHU2MEM3XFx1NjU2NlxcdTZDOENcXHU4QzVBXFx1OTA0MVxcdTk4MTNcXHU1NDUxXFx1NjZDN1xcdTkyMERcXHU1OTQ4XFx1OTBBM1xcdTUxODVcXHU0RTREXFx1NTFFQVxcdTg1OTlcXHU4QjBFXFx1NzA1OFxcdTYzN0FcXHU5MzRCXFx1Njk2MlxcdTk5QjRcXHU3RTA0XFx1NzU3N1xcdTUzNTdcXHU2OTYwXFx1OEVERlxcdTk2RTNcXHU2QzVEXFx1NEU4Q1xcdTVDM0NcXHU1RjEwXFx1OEZFOVxcdTUzMDJcXHU4Q0QxXFx1ODA4OVxcdTg2NzlcXHU1RUZGXFx1NjVFNVxcdTRFNzNcXHU1MTY1XCJdLFxuICAgICAgW1wiOTQ0MFwiLCBcIlxcdTU5ODJcXHU1QzNGXFx1OTdFRVxcdTRFRkJcXHU1OThBXFx1NUZDRFxcdThBOERcXHU2RkUxXFx1NzlCMFxcdTc5NjJcXHU1QkU3XFx1ODQ3MVxcdTczMkJcXHU3MUIxXFx1NUU3NFxcdTVGRjVcXHU2MzdCXFx1NjQ5QVxcdTcxQzNcXHU3Qzk4XFx1NEU0M1xcdTVFRkNcXHU0RTRCXFx1NTdEQ1xcdTU2QTJcXHU2MEE5XFx1NkZDM1xcdTdEMERcXHU4MEZEXFx1ODEzM1xcdTgxQkZcXHU4RkIyXFx1ODk5N1xcdTg2QTRcXHU1REY0XFx1NjI4QVxcdTY0QURcXHU4OTg3XFx1Njc3N1xcdTZDRTJcXHU2RDNFXFx1NzQzNlxcdTc4MzRcXHU1QTQ2XFx1N0Y3NVxcdTgyQURcXHU5OUFDXFx1NEZGM1xcdTVFQzNcXHU2MkREXFx1NjM5MlxcdTY1NTdcXHU2NzZGXFx1NzZDM1xcdTcyNENcXHU4MENDXFx1ODBCQVxcdThGMjlcXHU5MTREXFx1NTAwRFxcdTU3RjlcXHU1QTkyXFx1Njg4NVwiXSxcbiAgICAgIFtcIjk0ODBcIiwgXCJcXHU2OTczXFx1NzE2NFxcdTcyRkRcXHU4Q0I3XFx1NThGMlxcdThDRTBcXHU5NjZBXFx1OTAxOVxcdTg3N0ZcXHU3OUU0XFx1NzdFN1xcdTg0MjlcXHU0RjJGXFx1NTI2NVxcdTUzNUFcXHU2MkNEXFx1NjdDRlxcdTZDQ0FcXHU3NjdEXFx1N0I5NFxcdTdDOTVcXHU4MjM2XFx1ODU4NFxcdThGRUJcXHU2NkREXFx1NkYyMFxcdTcyMDZcXHU3RTFCXFx1ODNBQlxcdTk5QzFcXHU5RUE2XFx1NTFGRFxcdTdCQjFcXHU3ODcyXFx1N0JCOFxcdTgwODdcXHU3QjQ4XFx1NkFFOFxcdTVFNjFcXHU4MDhDXFx1NzU1MVxcdTc1NjBcXHU1MTZCXFx1OTI2MlxcdTZFOENcXHU3NjdBXFx1OTE5N1xcdTlBRUFcXHU0RjEwXFx1N0Y3MFxcdTYyOUNcXHU3QjRGXFx1OTVBNVxcdTlDRTlcXHU1NjdBXFx1NTg1OVxcdTg2RTRcXHU5NkJDXFx1NEYzNFxcdTUyMjRcXHU1MzRBXFx1NTNDRFxcdTUzREJcXHU1RTA2XFx1NjQyQ1xcdTY1OTFcXHU2NzdGXFx1NkMzRVxcdTZDNEVcXHU3MjQ4XFx1NzJBRlxcdTczRURcXHU3NTU0XFx1N0U0MVxcdTgyMkNcXHU4NUU5XFx1OENBOVxcdTdCQzRcXHU5MUM2XFx1NzE2OVxcdTk4MTJcXHU5OEVGXFx1NjMzRFxcdTY2NjlcXHU3NTZBXFx1NzZFNFxcdTc4RDBcXHU4NTQzXFx1ODZFRVxcdTUzMkFcXHU1MzUxXFx1NTQyNlxcdTU5ODNcXHU1RTg3XFx1NUY3Q1xcdTYwQjJcXHU2MjQ5XFx1NjI3OVxcdTYyQUJcXHU2NTkwXFx1NkJENFxcdTZDQ0NcXHU3NUIyXFx1NzZBRVxcdTc4OTFcXHU3OUQ4XFx1N0RDQlxcdTdGNzdcXHU4MEE1XFx1ODhBQlxcdThBQjlcXHU4Q0JCXFx1OTA3RlxcdTk3NUVcXHU5OERCXFx1NkEwQlxcdTdDMzhcXHU1MDk5XFx1NUMzRVxcdTVGQUVcXHU2Nzg3XFx1NkJEOFxcdTc0MzVcXHU3NzA5XFx1N0Y4RVwiXSxcbiAgICAgIFtcIjk1NDBcIiwgXCJcXHU5RjNCXFx1NjdDQVxcdTdBMTdcXHU1MzM5XFx1NzU4QlxcdTlBRURcXHU1RjY2XFx1ODE5RFxcdTgzRjFcXHU4MDk4XFx1NUYzQ1xcdTVGQzVcXHU3NTYyXFx1N0I0NlxcdTkwM0NcXHU2ODY3XFx1NTlFQlxcdTVBOUJcXHU3RDEwXFx1NzY3RVxcdThCMkNcXHU0RkY1XFx1NUY2QVxcdTZBMTlcXHU2QzM3XFx1NkYwMlxcdTc0RTJcXHU3OTY4XFx1ODg2OFxcdThBNTVcXHU4Qzc5XFx1NUVERlxcdTYzQ0ZcXHU3NUM1XFx1NzlEMlxcdTgyRDdcXHU5MzI4XFx1OTJGMlxcdTg0OUNcXHU4NkVEXFx1OUMyRFxcdTU0QzFcXHU1RjZDXFx1NjU4Q1xcdTZENUNcXHU3MDE1XFx1OENBN1xcdThDRDNcXHU5ODNCXFx1NjU0RlxcdTc0RjZcXHU0RTBEXFx1NEVEOFxcdTU3RTBcXHU1OTJCXFx1NUE2NlxcdTVCQ0NcXHU1MUE4XFx1NUUwM1xcdTVFOUNcXHU2MDE2XFx1NjI3NlxcdTY1NzdcIl0sXG4gICAgICBbXCI5NTgwXCIsIFwiXFx1NjVBN1xcdTY2NkVcXHU2RDZFXFx1NzIzNlxcdTdCMjZcXHU4MTUwXFx1ODE5QVxcdTgyOTlcXHU4QjVDXFx1OENBMFxcdThDRTZcXHU4RDc0XFx1OTYxQ1xcdTk2NDRcXHU0RkFFXFx1NjRBQlxcdTZCNjZcXHU4MjFFXFx1ODQ2MVxcdTg1NkFcXHU5MEU4XFx1NUMwMVxcdTY5NTNcXHU5OEE4XFx1ODQ3QVxcdTg1NTdcXHU0RjBGXFx1NTI2RlxcdTVGQTlcXHU1RTQ1XFx1NjcwRFxcdTc5OEZcXHU4MTc5XFx1ODkwN1xcdTg5ODZcXHU2REY1XFx1NUYxN1xcdTYyNTVcXHU2Q0I4XFx1NEVDRlxcdTcyNjlcXHU5QjkyXFx1NTIwNlxcdTU0M0JcXHU1Njc0XFx1NThCM1xcdTYxQTRcXHU2MjZFXFx1NzExQVxcdTU5NkVcXHU3Qzg5XFx1N0NERVxcdTdEMUJcXHU5NkYwXFx1NjU4N1xcdTgwNUVcXHU0RTE5XFx1NEY3NVxcdTUxNzVcXHU1ODQwXFx1NUU2M1xcdTVFNzNcXHU1RjBBXFx1NjdDNFxcdTRFMjZcXHU4NTNEXFx1OTU4OVxcdTk2NUJcXHU3QzczXFx1OTgwMVxcdTUwRkJcXHU1OEMxXFx1NzY1NlxcdTc4QTdcXHU1MjI1XFx1NzdBNVxcdTg1MTFcXHU3Qjg2XFx1NTA0RlxcdTU5MDlcXHU3MjQ3XFx1N0JDN1xcdTdERThcXHU4RkJBXFx1OEZENFxcdTkwNERcXHU0RkJGXFx1NTJDOVxcdTVBMjlcXHU1RjAxXFx1OTdBRFxcdTRGRERcXHU4MjE3XFx1OTJFQVxcdTU3MDNcXHU2MzU1XFx1NkI2OVxcdTc1MkJcXHU4OERDXFx1OEYxNFxcdTdBNDJcXHU1MkRGXFx1NTg5M1xcdTYxNTVcXHU2MjBBXFx1NjZBRVxcdTZCQ0RcXHU3QzNGXFx1ODNFOVxcdTUwMjNcXHU0RkY4XFx1NTMwNVxcdTU0NDZcXHU1ODMxXFx1NTk0OVxcdTVCOURcXHU1Q0YwXFx1NUNFRlxcdTVEMjlcXHU1RTk2XFx1NjJCMVxcdTYzNjdcXHU2NTNFXFx1NjVCOVxcdTY3MEJcIl0sXG4gICAgICBbXCI5NjQwXCIsIFwiXFx1NkNENVxcdTZDRTFcXHU3MEY5XFx1NzgzMlxcdTdFMkJcXHU4MERFXFx1ODJCM1xcdTg0MENcXHU4NEVDXFx1ODcwMlxcdTg5MTJcXHU4QTJBXFx1OEM0QVxcdTkwQTZcXHU5MkQyXFx1OThGRFxcdTlDRjNcXHU5RDZDXFx1NEU0RlxcdTRFQTFcXHU1MDhEXFx1NTI1NlxcdTU3NEFcXHU1OUE4XFx1NUUzRFxcdTVGRDhcXHU1RkQ5XFx1NjIzRlxcdTY2QjRcXHU2NzFCXFx1NjdEMFxcdTY4RDJcXHU1MTkyXFx1N0QyMVxcdTgwQUFcXHU4MUE4XFx1OEIwMFxcdThDOENcXHU4Q0JGXFx1OTI3RVxcdTk2MzJcXHU1NDIwXFx1OTgyQ1xcdTUzMTdcXHU1MEQ1XFx1NTM1Q1xcdTU4QThcXHU2NEIyXFx1NjczNFxcdTcyNjdcXHU3NzY2XFx1N0E0NlxcdTkxRTZcXHU1MkMzXFx1NkNBMVxcdTZCODZcXHU1ODAwXFx1NUU0Q1xcdTU5NTRcXHU2NzJDXFx1N0ZGQlxcdTUxRTFcXHU3NkM2XCJdLFxuICAgICAgW1wiOTY4MFwiLCBcIlxcdTY0NjlcXHU3OEU4XFx1OUI1NFxcdTlFQkJcXHU1N0NCXFx1NTlCOVxcdTY2MjdcXHU2NzlBXFx1NkJDRVxcdTU0RTlcXHU2OUQ5XFx1NUU1NVxcdTgxOUNcXHU2Nzk1XFx1OUJBQVxcdTY3RkVcXHU5QzUyXFx1Njg1RFxcdTRFQTZcXHU0RkUzXFx1NTNDOFxcdTYyQjlcXHU2NzJCXFx1NkNBQlxcdThGQzRcXHU0RkFEXFx1N0U2RFxcdTlFQkZcXHU0RTA3XFx1NjE2MlxcdTZFODBcXHU2RjJCXFx1ODUxM1xcdTU0NzNcXHU2NzJBXFx1OUI0NVxcdTVERjNcXHU3Qjk1XFx1NUNBQ1xcdTVCQzZcXHU4NzFDXFx1NkU0QVxcdTg0RDFcXHU3QTE0XFx1ODEwOFxcdTU5OTlcXHU3QzhEXFx1NkMxMVxcdTc3MjBcXHU1MkQ5XFx1NTkyMlxcdTcxMjFcXHU3MjVGXFx1NzdEQlxcdTk3MjdcXHU5RDYxXFx1NjkwQlxcdTVBN0ZcXHU1QTE4XFx1NTFBNVxcdTU0MERcXHU1NDdEXFx1NjYwRVxcdTc2REZcXHU4RkY3XFx1OTI5OFxcdTlDRjRcXHU1OUVBXFx1NzI1RFxcdTZFQzVcXHU1MTREXFx1NjhDOVxcdTdEQkZcXHU3REVDXFx1OTc2MlxcdTlFQkFcXHU2NDc4XFx1NkEyMVxcdTgzMDJcXHU1OTg0XFx1NUI1RlxcdTZCREJcXHU3MzFCXFx1NzZGMlxcdTdEQjJcXHU4MDE3XFx1ODQ5OVxcdTUxMzJcXHU2NzI4XFx1OUVEOVxcdTc2RUVcXHU2NzYyXFx1NTJGRlxcdTk5MDVcXHU1QzI0XFx1NjIzQlxcdTdDN0VcXHU4Q0IwXFx1NTU0RlxcdTYwQjZcXHU3RDBCXFx1OTU4MFxcdTUzMDFcXHU0RTVGXFx1NTFCNlxcdTU5MUNcXHU3MjNBXFx1ODAzNlxcdTkxQ0VcXHU1RjI1XFx1NzdFMlxcdTUzODRcXHU1Rjc5XFx1N0QwNFxcdTg1QUNcXHU4QTMzXFx1OEU4RFxcdTk3NTZcXHU2N0YzXFx1ODVBRVxcdTk0NTNcXHU2MTA5XFx1NjEwOFxcdTZDQjlcXHU3NjUyXCJdLFxuICAgICAgW1wiOTc0MFwiLCBcIlxcdThBRURcXHU4RjM4XFx1NTUyRlxcdTRGNTFcXHU1MTJBXFx1NTJDN1xcdTUzQ0JcXHU1QkE1XFx1NUU3RFxcdTYwQTBcXHU2MTgyXFx1NjNENlxcdTY3MDlcXHU2N0RBXFx1NkU2N1xcdTZEOENcXHU3MzM2XFx1NzMzN1xcdTc1MzFcXHU3OTUwXFx1ODhENVxcdThBOThcXHU5MDRBXFx1OTA5MVxcdTkwRjVcXHU5NkM0XFx1ODc4RFxcdTU5MTVcXHU0RTg4XFx1NEY1OVxcdTRFMEVcXHU4QTg5XFx1OEYzRlxcdTk4MTBcXHU1MEFEXFx1NUU3Q1xcdTU5OTZcXHU1QkI5XFx1NUVCOFxcdTYzREFcXHU2M0ZBXFx1NjRDMVxcdTY2RENcXHU2OTRBXFx1NjlEOFxcdTZEMEJcXHU2RUI2XFx1NzE5NFxcdTc1MjhcXHU3QUFGXFx1N0Y4QVxcdTgwMDBcXHU4NDQ5XFx1ODRDOVxcdTg5ODFcXHU4QjIxXFx1OEUwQVxcdTkwNjVcXHU5NjdEXFx1OTkwQVxcdTYxN0VcXHU2MjkxXFx1NkIzMlwiXSxcbiAgICAgIFtcIjk3ODBcIiwgXCJcXHU2QzgzXFx1NkQ3NFxcdTdGQ0NcXHU3RkZDXFx1NkRDMFxcdTdGODVcXHU4N0JBXFx1ODhGOFxcdTY3NjVcXHU4M0IxXFx1OTgzQ1xcdTk2RjdcXHU2RDFCXFx1N0Q2MVxcdTg0M0RcXHU5MTZBXFx1NEU3MVxcdTUzNzVcXHU1RDUwXFx1NkIwNFxcdTZGRUJcXHU4NUNEXFx1ODYyRFxcdTg5QTdcXHU1MjI5XFx1NTQwRlxcdTVDNjVcXHU2NzRFXFx1NjhBOFxcdTc0MDZcXHU3NDgzXFx1NzVFMlxcdTg4Q0ZcXHU4OEUxXFx1OTFDQ1xcdTk2RTJcXHU5Njc4XFx1NUY4QlxcdTczODdcXHU3QUNCXFx1ODQ0RVxcdTYzQTBcXHU3NTY1XFx1NTI4OVxcdTZENDFcXHU2RTlDXFx1NzQwOVxcdTc1NTlcXHU3ODZCXFx1N0M5MlxcdTk2ODZcXHU3QURDXFx1OUY4RFxcdTRGQjZcXHU2MTZFXFx1NjVDNVxcdTg2NUNcXHU0RTg2XFx1NEVBRVxcdTUwREFcXHU0RTIxXFx1NTFDQ1xcdTVCRUVcXHU2NTk5XFx1Njg4MVxcdTZEQkNcXHU3MzFGXFx1NzY0MlxcdTc3QURcXHU3QTFDXFx1N0NFN1xcdTgyNkZcXHU4QUQyXFx1OTA3Q1xcdTkxQ0ZcXHU5Njc1XFx1OTgxOFxcdTUyOUJcXHU3REQxXFx1NTAyQlxcdTUzOThcXHU2Nzk3XFx1NkRDQlxcdTcxRDBcXHU3NDMzXFx1ODFFOFxcdThGMkFcXHU5NkEzXFx1OUM1N1xcdTlFOUZcXHU3NDYwXFx1NTg0MVxcdTZEOTlcXHU3RDJGXFx1OTg1RVxcdTRFRTRcXHU0RjM2XFx1NEY4QlxcdTUxQjdcXHU1MkIxXFx1NURCQVxcdTYwMUNcXHU3M0IyXFx1NzkzQ1xcdTgyRDNcXHU5MjM0XFx1OTZCN1xcdTk2RjZcXHU5NzBBXFx1OUU5N1xcdTlGNjJcXHU2NkE2XFx1NkI3NFxcdTUyMTdcXHU1MkEzXFx1NzBDOFxcdTg4QzJcXHU1RUM5XFx1NjA0QlxcdTYxOTBcXHU2RjIzXFx1NzE0OVxcdTdDM0VcXHU3REY0XFx1ODA2RlwiXSxcbiAgICAgIFtcIjk4NDBcIiwgXCJcXHU4NEVFXFx1OTAyM1xcdTkzMkNcXHU1NDQyXFx1OUI2RlxcdTZBRDNcXHU3MDg5XFx1OENDMlxcdThERUZcXHU5NzMyXFx1NTJCNFxcdTVBNDFcXHU1RUNBXFx1NUYwNFxcdTY3MTdcXHU2OTdDXFx1Njk5NFxcdTZENkFcXHU2RjBGXFx1NzI2MlxcdTcyRkNcXHU3QkVEXFx1ODAwMVxcdTgwN0VcXHU4NzRCXFx1OTBDRVxcdTUxNkRcXHU5RTkzXFx1Nzk4NFxcdTgwOEJcXHU5MzMyXFx1OEFENlxcdTUwMkRcXHU1NDhDXFx1OEE3MVxcdTZCNkFcXHU4Q0M0XFx1ODEwN1xcdTYwRDFcXHU2N0EwXFx1OURGMlxcdTRFOTlcXHU0RTk4XFx1OUMxMFxcdThBNkJcXHU4NUMxXFx1ODU2OFxcdTY5MDBcXHU2RTdFXFx1Nzg5N1xcdTgxNTVcIl0sXG4gICAgICBbXCI5ODlmXCIsIFwiXFx1NUYwQ1xcdTRFMTBcXHU0RTE1XFx1NEUyQVxcdTRFMzFcXHU0RTM2XFx1NEUzQ1xcdTRFM0ZcXHU0RTQyXFx1NEU1NlxcdTRFNThcXHU0RTgyXFx1NEU4NVxcdThDNkJcXHU0RThBXFx1ODIxMlxcdTVGMERcXHU0RThFXFx1NEU5RVxcdTRFOUZcXHU0RUEwXFx1NEVBMlxcdTRFQjBcXHU0RUIzXFx1NEVCNlxcdTRFQ0VcXHU0RUNEXFx1NEVDNFxcdTRFQzZcXHU0RUMyXFx1NEVEN1xcdTRFREVcXHU0RUVEXFx1NEVERlxcdTRFRjdcXHU0RjA5XFx1NEY1QVxcdTRGMzBcXHU0RjVCXFx1NEY1RFxcdTRGNTdcXHU0RjQ3XFx1NEY3NlxcdTRGODhcXHU0RjhGXFx1NEY5OFxcdTRGN0JcXHU0RjY5XFx1NEY3MFxcdTRGOTFcXHU0RjZGXFx1NEY4NlxcdTRGOTZcXHU1MTE4XFx1NEZENFxcdTRGREZcXHU0RkNFXFx1NEZEOFxcdTRGREJcXHU0RkQxXFx1NEZEQVxcdTRGRDBcXHU0RkU0XFx1NEZFNVxcdTUwMUFcXHU1MDI4XFx1NTAxNFxcdTUwMkFcXHU1MDI1XFx1NTAwNVxcdTRGMUNcXHU0RkY2XFx1NTAyMVxcdTUwMjlcXHU1MDJDXFx1NEZGRVxcdTRGRUZcXHU1MDExXFx1NTAwNlxcdTUwNDNcXHU1MDQ3XFx1NjcwM1xcdTUwNTVcXHU1MDUwXFx1NTA0OFxcdTUwNUFcXHU1MDU2XFx1NTA2Q1xcdTUwNzhcXHU1MDgwXFx1NTA5QVxcdTUwODVcXHU1MEI0XFx1NTBCMlwiXSxcbiAgICAgIFtcIjk5NDBcIiwgXCJcXHU1MEM5XFx1NTBDQVxcdTUwQjNcXHU1MEMyXFx1NTBENlxcdTUwREVcXHU1MEU1XFx1NTBFRFxcdTUwRTNcXHU1MEVFXFx1NTBGOVxcdTUwRjVcXHU1MTA5XFx1NTEwMVxcdTUxMDJcXHU1MTE2XFx1NTExNVxcdTUxMTRcXHU1MTFBXFx1NTEyMVxcdTUxM0FcXHU1MTM3XFx1NTEzQ1xcdTUxM0JcXHU1MTNGXFx1NTE0MFxcdTUxNTJcXHU1MTRDXFx1NTE1NFxcdTUxNjJcXHU3QUY4XFx1NTE2OVxcdTUxNkFcXHU1MTZFXFx1NTE4MFxcdTUxODJcXHU1NkQ4XFx1NTE4Q1xcdTUxODlcXHU1MThGXFx1NTE5MVxcdTUxOTNcXHU1MTk1XFx1NTE5NlxcdTUxQTRcXHU1MUE2XFx1NTFBMlxcdTUxQTlcXHU1MUFBXFx1NTFBQlxcdTUxQjNcXHU1MUIxXFx1NTFCMlxcdTUxQjBcXHU1MUI1XFx1NTFCRFxcdTUxQzVcXHU1MUM5XFx1NTFEQlxcdTUxRTBcXHU4NjU1XFx1NTFFOVxcdTUxRURcIl0sXG4gICAgICBbXCI5OTgwXCIsIFwiXFx1NTFGMFxcdTUxRjVcXHU1MUZFXFx1NTIwNFxcdTUyMEJcXHU1MjE0XFx1NTIwRVxcdTUyMjdcXHU1MjJBXFx1NTIyRVxcdTUyMzNcXHU1MjM5XFx1NTI0RlxcdTUyNDRcXHU1MjRCXFx1NTI0Q1xcdTUyNUVcXHU1MjU0XFx1NTI2QVxcdTUyNzRcXHU1MjY5XFx1NTI3M1xcdTUyN0ZcXHU1MjdEXFx1NTI4RFxcdTUyOTRcXHU1MjkyXFx1NTI3MVxcdTUyODhcXHU1MjkxXFx1OEZBOFxcdThGQTdcXHU1MkFDXFx1NTJBRFxcdTUyQkNcXHU1MkI1XFx1NTJDMVxcdTUyQ0RcXHU1MkQ3XFx1NTJERVxcdTUyRTNcXHU1MkU2XFx1OThFRFxcdTUyRTBcXHU1MkYzXFx1NTJGNVxcdTUyRjhcXHU1MkY5XFx1NTMwNlxcdTUzMDhcXHU3NTM4XFx1NTMwRFxcdTUzMTBcXHU1MzBGXFx1NTMxNVxcdTUzMUFcXHU1MzIzXFx1NTMyRlxcdTUzMzFcXHU1MzMzXFx1NTMzOFxcdTUzNDBcXHU1MzQ2XFx1NTM0NVxcdTRFMTdcXHU1MzQ5XFx1NTM0RFxcdTUxRDZcXHU1MzVFXFx1NTM2OVxcdTUzNkVcXHU1OTE4XFx1NTM3QlxcdTUzNzdcXHU1MzgyXFx1NTM5NlxcdTUzQTBcXHU1M0E2XFx1NTNBNVxcdTUzQUVcXHU1M0IwXFx1NTNCNlxcdTUzQzNcXHU3QzEyXFx1OTZEOVxcdTUzREZcXHU2NkZDXFx1NzFFRVxcdTUzRUVcXHU1M0U4XFx1NTNFRFxcdTUzRkFcXHU1NDAxXFx1NTQzRFxcdTU0NDBcXHU1NDJDXFx1NTQyRFxcdTU0M0NcXHU1NDJFXFx1NTQzNlxcdTU0MjlcXHU1NDFEXFx1NTQ0RVxcdTU0OEZcXHU1NDc1XFx1NTQ4RVxcdTU0NUZcXHU1NDcxXFx1NTQ3N1xcdTU0NzBcXHU1NDkyXFx1NTQ3QlxcdTU0ODBcXHU1NDc2XFx1NTQ4NFxcdTU0OTBcXHU1NDg2XFx1NTRDN1xcdTU0QTJcXHU1NEI4XFx1NTRBNVxcdTU0QUNcXHU1NEM0XFx1NTRDOFxcdTU0QThcIl0sXG4gICAgICBbXCI5YTQwXCIsIFwiXFx1NTRBQlxcdTU0QzJcXHU1NEE0XFx1NTRCRVxcdTU0QkNcXHU1NEQ4XFx1NTRFNVxcdTU0RTZcXHU1NTBGXFx1NTUxNFxcdTU0RkRcXHU1NEVFXFx1NTRFRFxcdTU0RkFcXHU1NEUyXFx1NTUzOVxcdTU1NDBcXHU1NTYzXFx1NTU0Q1xcdTU1MkVcXHU1NTVDXFx1NTU0NVxcdTU1NTZcXHU1NTU3XFx1NTUzOFxcdTU1MzNcXHU1NTVEXFx1NTU5OVxcdTU1ODBcXHU1NEFGXFx1NTU4QVxcdTU1OUZcXHU1NTdCXFx1NTU3RVxcdTU1OThcXHU1NTlFXFx1NTVBRVxcdTU1N0NcXHU1NTgzXFx1NTVBOVxcdTU1ODdcXHU1NUE4XFx1NTVEQVxcdTU1QzVcXHU1NURGXFx1NTVDNFxcdTU1RENcXHU1NUU0XFx1NTVENFxcdTU2MTRcXHU1NUY3XFx1NTYxNlxcdTU1RkVcXHU1NUZEXFx1NTYxQlxcdTU1RjlcXHU1NjRFXFx1NTY1MFxcdTcxREZcXHU1NjM0XFx1NTYzNlxcdTU2MzJcXHU1NjM4XCJdLFxuICAgICAgW1wiOWE4MFwiLCBcIlxcdTU2NkJcXHU1NjY0XFx1NTYyRlxcdTU2NkNcXHU1NjZBXFx1NTY4NlxcdTU2ODBcXHU1NjhBXFx1NTZBMFxcdTU2OTRcXHU1NjhGXFx1NTZBNVxcdTU2QUVcXHU1NkI2XFx1NTZCNFxcdTU2QzJcXHU1NkJDXFx1NTZDMVxcdTU2QzNcXHU1NkMwXFx1NTZDOFxcdTU2Q0VcXHU1NkQxXFx1NTZEM1xcdTU2RDdcXHU1NkVFXFx1NTZGOVxcdTU3MDBcXHU1NkZGXFx1NTcwNFxcdTU3MDlcXHU1NzA4XFx1NTcwQlxcdTU3MERcXHU1NzEzXFx1NTcxOFxcdTU3MTZcXHU1NUM3XFx1NTcxQ1xcdTU3MjZcXHU1NzM3XFx1NTczOFxcdTU3NEVcXHU1NzNCXFx1NTc0MFxcdTU3NEZcXHU1NzY5XFx1NTdDMFxcdTU3ODhcXHU1NzYxXFx1NTc3RlxcdTU3ODlcXHU1NzkzXFx1NTdBMFxcdTU3QjNcXHU1N0E0XFx1NTdBQVxcdTU3QjBcXHU1N0MzXFx1NTdDNlxcdTU3RDRcXHU1N0QyXFx1NTdEM1xcdTU4MEFcXHU1N0Q2XFx1NTdFM1xcdTU4MEJcXHU1ODE5XFx1NTgxRFxcdTU4NzJcXHU1ODIxXFx1NTg2MlxcdTU4NEJcXHU1ODcwXFx1NkJDMFxcdTU4NTJcXHU1ODNEXFx1NTg3OVxcdTU4ODVcXHU1OEI5XFx1NTg5RlxcdTU4QUJcXHU1OEJBXFx1NThERVxcdTU4QkJcXHU1OEI4XFx1NThBRVxcdTU4QzVcXHU1OEQzXFx1NThEMVxcdTU4RDdcXHU1OEQ5XFx1NThEOFxcdTU4RTVcXHU1OERDXFx1NThFNFxcdTU4REZcXHU1OEVGXFx1NThGQVxcdTU4RjlcXHU1OEZCXFx1NThGQ1xcdTU4RkRcXHU1OTAyXFx1NTkwQVxcdTU5MTBcXHU1OTFCXFx1NjhBNlxcdTU5MjVcXHU1OTJDXFx1NTkyRFxcdTU5MzJcXHU1OTM4XFx1NTkzRVxcdTdBRDJcXHU1OTU1XFx1NTk1MFxcdTU5NEVcXHU1OTVBXFx1NTk1OFxcdTU5NjJcXHU1OTYwXFx1NTk2N1xcdTU5NkNcXHU1OTY5XCJdLFxuICAgICAgW1wiOWI0MFwiLCBcIlxcdTU5NzhcXHU1OTgxXFx1NTk5RFxcdTRGNUVcXHU0RkFCXFx1NTlBM1xcdTU5QjJcXHU1OUM2XFx1NTlFOFxcdTU5RENcXHU1OThEXFx1NTlEOVxcdTU5REFcXHU1QTI1XFx1NUExRlxcdTVBMTFcXHU1QTFDXFx1NUEwOVxcdTVBMUFcXHU1QTQwXFx1NUE2Q1xcdTVBNDlcXHU1QTM1XFx1NUEzNlxcdTVBNjJcXHU1QTZBXFx1NUE5QVxcdTVBQkNcXHU1QUJFXFx1NUFDQlxcdTVBQzJcXHU1QUJEXFx1NUFFM1xcdTVBRDdcXHU1QUU2XFx1NUFFOVxcdTVBRDZcXHU1QUZBXFx1NUFGQlxcdTVCMENcXHU1QjBCXFx1NUIxNlxcdTVCMzJcXHU1QUQwXFx1NUIyQVxcdTVCMzZcXHU1QjNFXFx1NUI0M1xcdTVCNDVcXHU1QjQwXFx1NUI1MVxcdTVCNTVcXHU1QjVBXFx1NUI1QlxcdTVCNjVcXHU1QjY5XFx1NUI3MFxcdTVCNzNcXHU1Qjc1XFx1NUI3OFxcdTY1ODhcXHU1QjdBXFx1NUI4MFwiXSxcbiAgICAgIFtcIjliODBcIiwgXCJcXHU1QjgzXFx1NUJBNlxcdTVCQjhcXHU1QkMzXFx1NUJDN1xcdTVCQzlcXHU1QkQ0XFx1NUJEMFxcdTVCRTRcXHU1QkU2XFx1NUJFMlxcdTVCREVcXHU1QkU1XFx1NUJFQlxcdTVCRjBcXHU1QkY2XFx1NUJGM1xcdTVDMDVcXHU1QzA3XFx1NUMwOFxcdTVDMERcXHU1QzEzXFx1NUMyMFxcdTVDMjJcXHU1QzI4XFx1NUMzOFxcdTVDMzlcXHU1QzQxXFx1NUM0NlxcdTVDNEVcXHU1QzUzXFx1NUM1MFxcdTVDNEZcXHU1QjcxXFx1NUM2Q1xcdTVDNkVcXHU0RTYyXFx1NUM3NlxcdTVDNzlcXHU1QzhDXFx1NUM5MVxcdTVDOTRcXHU1OTlCXFx1NUNBQlxcdTVDQkJcXHU1Q0I2XFx1NUNCQ1xcdTVDQjdcXHU1Q0M1XFx1NUNCRVxcdTVDQzdcXHU1Q0Q5XFx1NUNFOVxcdTVDRkRcXHU1Q0ZBXFx1NUNFRFxcdTVEOENcXHU1Q0VBXFx1NUQwQlxcdTVEMTVcXHU1RDE3XFx1NUQ1Q1xcdTVEMUZcXHU1RDFCXFx1NUQxMVxcdTVEMTRcXHU1RDIyXFx1NUQxQVxcdTVEMTlcXHU1RDE4XFx1NUQ0Q1xcdTVENTJcXHU1RDRFXFx1NUQ0QlxcdTVENkNcXHU1RDczXFx1NUQ3NlxcdTVEODdcXHU1RDg0XFx1NUQ4MlxcdTVEQTJcXHU1RDlEXFx1NURBQ1xcdTVEQUVcXHU1REJEXFx1NUQ5MFxcdTVEQjdcXHU1REJDXFx1NURDOVxcdTVEQ0RcXHU1REQzXFx1NUREMlxcdTVERDZcXHU1RERCXFx1NURFQlxcdTVERjJcXHU1REY1XFx1NUUwQlxcdTVFMUFcXHU1RTE5XFx1NUUxMVxcdTVFMUJcXHU1RTM2XFx1NUUzN1xcdTVFNDRcXHU1RTQzXFx1NUU0MFxcdTVFNEVcXHU1RTU3XFx1NUU1NFxcdTVFNUZcXHU1RTYyXFx1NUU2NFxcdTVFNDdcXHU1RTc1XFx1NUU3NlxcdTVFN0FcXHU5RUJDXFx1NUU3RlxcdTVFQTBcXHU1RUMxXFx1NUVDMlxcdTVFQzhcXHU1RUQwXFx1NUVDRlwiXSxcbiAgICAgIFtcIjljNDBcIiwgXCJcXHU1RUQ2XFx1NUVFM1xcdTVFRERcXHU1RURBXFx1NUVEQlxcdTVFRTJcXHU1RUUxXFx1NUVFOFxcdTVFRTlcXHU1RUVDXFx1NUVGMVxcdTVFRjNcXHU1RUYwXFx1NUVGNFxcdTVFRjhcXHU1RUZFXFx1NUYwM1xcdTVGMDlcXHU1RjVEXFx1NUY1Q1xcdTVGMEJcXHU1RjExXFx1NUYxNlxcdTVGMjlcXHU1RjJEXFx1NUYzOFxcdTVGNDFcXHU1RjQ4XFx1NUY0Q1xcdTVGNEVcXHU1RjJGXFx1NUY1MVxcdTVGNTZcXHU1RjU3XFx1NUY1OVxcdTVGNjFcXHU1RjZEXFx1NUY3M1xcdTVGNzdcXHU1RjgzXFx1NUY4MlxcdTVGN0ZcXHU1RjhBXFx1NUY4OFxcdTVGOTFcXHU1Rjg3XFx1NUY5RVxcdTVGOTlcXHU1Rjk4XFx1NUZBMFxcdTVGQThcXHU1RkFEXFx1NUZCQ1xcdTVGRDZcXHU1RkZCXFx1NUZFNFxcdTVGRjhcXHU1RkYxXFx1NUZERFxcdTYwQjNcXHU1RkZGXFx1NjAyMVxcdTYwNjBcIl0sXG4gICAgICBbXCI5YzgwXCIsIFwiXFx1NjAxOVxcdTYwMTBcXHU2MDI5XFx1NjAwRVxcdTYwMzFcXHU2MDFCXFx1NjAxNVxcdTYwMkJcXHU2MDI2XFx1NjAwRlxcdTYwM0FcXHU2MDVBXFx1NjA0MVxcdTYwNkFcXHU2MDc3XFx1NjA1RlxcdTYwNEFcXHU2MDQ2XFx1NjA0RFxcdTYwNjNcXHU2MDQzXFx1NjA2NFxcdTYwNDJcXHU2MDZDXFx1NjA2QlxcdTYwNTlcXHU2MDgxXFx1NjA4RFxcdTYwRTdcXHU2MDgzXFx1NjA5QVxcdTYwODRcXHU2MDlCXFx1NjA5NlxcdTYwOTdcXHU2MDkyXFx1NjBBN1xcdTYwOEJcXHU2MEUxXFx1NjBCOFxcdTYwRTBcXHU2MEQzXFx1NjBCNFxcdTVGRjBcXHU2MEJEXFx1NjBDNlxcdTYwQjVcXHU2MEQ4XFx1NjE0RFxcdTYxMTVcXHU2MTA2XFx1NjBGNlxcdTYwRjdcXHU2MTAwXFx1NjBGNFxcdTYwRkFcXHU2MTAzXFx1NjEyMVxcdTYwRkJcXHU2MEYxXFx1NjEwRFxcdTYxMEVcXHU2MTQ3XFx1NjEzRVxcdTYxMjhcXHU2MTI3XFx1NjE0QVxcdTYxM0ZcXHU2MTNDXFx1NjEyQ1xcdTYxMzRcXHU2MTNEXFx1NjE0MlxcdTYxNDRcXHU2MTczXFx1NjE3N1xcdTYxNThcXHU2MTU5XFx1NjE1QVxcdTYxNkJcXHU2MTc0XFx1NjE2RlxcdTYxNjVcXHU2MTcxXFx1NjE1RlxcdTYxNURcXHU2MTUzXFx1NjE3NVxcdTYxOTlcXHU2MTk2XFx1NjE4N1xcdTYxQUNcXHU2MTk0XFx1NjE5QVxcdTYxOEFcXHU2MTkxXFx1NjFBQlxcdTYxQUVcXHU2MUNDXFx1NjFDQVxcdTYxQzlcXHU2MUY3XFx1NjFDOFxcdTYxQzNcXHU2MUM2XFx1NjFCQVxcdTYxQ0JcXHU3Rjc5XFx1NjFDRFxcdTYxRTZcXHU2MUUzXFx1NjFGNlxcdTYxRkFcXHU2MUY0XFx1NjFGRlxcdTYxRkRcXHU2MUZDXFx1NjFGRVxcdTYyMDBcXHU2MjA4XFx1NjIwOVxcdTYyMERcXHU2MjBDXFx1NjIxNFxcdTYyMUJcIl0sXG4gICAgICBbXCI5ZDQwXCIsIFwiXFx1NjIxRVxcdTYyMjFcXHU2MjJBXFx1NjIyRVxcdTYyMzBcXHU2MjMyXFx1NjIzM1xcdTYyNDFcXHU2MjRFXFx1NjI1RVxcdTYyNjNcXHU2MjVCXFx1NjI2MFxcdTYyNjhcXHU2MjdDXFx1NjI4MlxcdTYyODlcXHU2MjdFXFx1NjI5MlxcdTYyOTNcXHU2Mjk2XFx1NjJENFxcdTYyODNcXHU2Mjk0XFx1NjJEN1xcdTYyRDFcXHU2MkJCXFx1NjJDRlxcdTYyRkZcXHU2MkM2XFx1NjRENFxcdTYyQzhcXHU2MkRDXFx1NjJDQ1xcdTYyQ0FcXHU2MkMyXFx1NjJDN1xcdTYyOUJcXHU2MkM5XFx1NjMwQ1xcdTYyRUVcXHU2MkYxXFx1NjMyN1xcdTYzMDJcXHU2MzA4XFx1NjJFRlxcdTYyRjVcXHU2MzUwXFx1NjMzRVxcdTYzNERcXHU2NDFDXFx1NjM0RlxcdTYzOTZcXHU2MzhFXFx1NjM4MFxcdTYzQUJcXHU2Mzc2XFx1NjNBM1xcdTYzOEZcXHU2Mzg5XFx1NjM5RlxcdTYzQjVcXHU2MzZCXCJdLFxuICAgICAgW1wiOWQ4MFwiLCBcIlxcdTYzNjlcXHU2M0JFXFx1NjNFOVxcdTYzQzBcXHU2M0M2XFx1NjNFM1xcdTYzQzlcXHU2M0QyXFx1NjNGNlxcdTYzQzRcXHU2NDE2XFx1NjQzNFxcdTY0MDZcXHU2NDEzXFx1NjQyNlxcdTY0MzZcXHU2NTFEXFx1NjQxN1xcdTY0MjhcXHU2NDBGXFx1NjQ2N1xcdTY0NkZcXHU2NDc2XFx1NjQ0RVxcdTY1MkFcXHU2NDk1XFx1NjQ5M1xcdTY0QTVcXHU2NEE5XFx1NjQ4OFxcdTY0QkNcXHU2NERBXFx1NjREMlxcdTY0QzVcXHU2NEM3XFx1NjRCQlxcdTY0RDhcXHU2NEMyXFx1NjRGMVxcdTY0RTdcXHU4MjA5XFx1NjRFMFxcdTY0RTFcXHU2MkFDXFx1NjRFM1xcdTY0RUZcXHU2NTJDXFx1NjRGNlxcdTY0RjRcXHU2NEYyXFx1NjRGQVxcdTY1MDBcXHU2NEZEXFx1NjUxOFxcdTY1MUNcXHU2NTA1XFx1NjUyNFxcdTY1MjNcXHU2NTJCXFx1NjUzNFxcdTY1MzVcXHU2NTM3XFx1NjUzNlxcdTY1MzhcXHU3NTRCXFx1NjU0OFxcdTY1NTZcXHU2NTU1XFx1NjU0RFxcdTY1NThcXHU2NTVFXFx1NjU1RFxcdTY1NzJcXHU2NTc4XFx1NjU4MlxcdTY1ODNcXHU4QjhBXFx1NjU5QlxcdTY1OUZcXHU2NUFCXFx1NjVCN1xcdTY1QzNcXHU2NUM2XFx1NjVDMVxcdTY1QzRcXHU2NUNDXFx1NjVEMlxcdTY1REJcXHU2NUQ5XFx1NjVFMFxcdTY1RTFcXHU2NUYxXFx1Njc3MlxcdTY2MEFcXHU2NjAzXFx1NjVGQlxcdTY3NzNcXHU2NjM1XFx1NjYzNlxcdTY2MzRcXHU2NjFDXFx1NjY0RlxcdTY2NDRcXHU2NjQ5XFx1NjY0MVxcdTY2NUVcXHU2NjVEXFx1NjY2NFxcdTY2NjdcXHU2NjY4XFx1NjY1RlxcdTY2NjJcXHU2NjcwXFx1NjY4M1xcdTY2ODhcXHU2NjhFXFx1NjY4OVxcdTY2ODRcXHU2Njk4XFx1NjY5RFxcdTY2QzFcXHU2NkI5XFx1NjZDOVxcdTY2QkVcXHU2NkJDXCJdLFxuICAgICAgW1wiOWU0MFwiLCBcIlxcdTY2QzRcXHU2NkI4XFx1NjZENlxcdTY2REFcXHU2NkUwXFx1NjYzRlxcdTY2RTZcXHU2NkU5XFx1NjZGMFxcdTY2RjVcXHU2NkY3XFx1NjcwRlxcdTY3MTZcXHU2NzFFXFx1NjcyNlxcdTY3MjdcXHU5NzM4XFx1NjcyRVxcdTY3M0ZcXHU2NzM2XFx1Njc0MVxcdTY3MzhcXHU2NzM3XFx1Njc0NlxcdTY3NUVcXHU2NzYwXFx1Njc1OVxcdTY3NjNcXHU2NzY0XFx1Njc4OVxcdTY3NzBcXHU2N0E5XFx1Njc3Q1xcdTY3NkFcXHU2NzhDXFx1Njc4QlxcdTY3QTZcXHU2N0ExXFx1Njc4NVxcdTY3QjdcXHU2N0VGXFx1NjdCNFxcdTY3RUNcXHU2N0IzXFx1NjdFOVxcdTY3QjhcXHU2N0U0XFx1NjdERVxcdTY3RERcXHU2N0UyXFx1NjdFRVxcdTY3QjlcXHU2N0NFXFx1NjdDNlxcdTY3RTdcXHU2QTlDXFx1NjgxRVxcdTY4NDZcXHU2ODI5XFx1Njg0MFxcdTY4NERcXHU2ODMyXFx1Njg0RVwiXSxcbiAgICAgIFtcIjllODBcIiwgXCJcXHU2OEIzXFx1NjgyQlxcdTY4NTlcXHU2ODYzXFx1Njg3N1xcdTY4N0ZcXHU2ODlGXFx1Njg4RlxcdTY4QURcXHU2ODk0XFx1Njg5RFxcdTY4OUJcXHU2ODgzXFx1NkFBRVxcdTY4QjlcXHU2ODc0XFx1NjhCNVxcdTY4QTBcXHU2OEJBXFx1NjkwRlxcdTY4OERcXHU2ODdFXFx1NjkwMVxcdTY4Q0FcXHU2OTA4XFx1NjhEOFxcdTY5MjJcXHU2OTI2XFx1NjhFMVxcdTY5MENcXHU2OENEXFx1NjhENFxcdTY4RTdcXHU2OEQ1XFx1NjkzNlxcdTY5MTJcXHU2OTA0XFx1NjhEN1xcdTY4RTNcXHU2OTI1XFx1NjhGOVxcdTY4RTBcXHU2OEVGXFx1NjkyOFxcdTY5MkFcXHU2OTFBXFx1NjkyM1xcdTY5MjFcXHU2OEM2XFx1Njk3OVxcdTY5NzdcXHU2OTVDXFx1Njk3OFxcdTY5NkJcXHU2OTU0XFx1Njk3RVxcdTY5NkVcXHU2OTM5XFx1Njk3NFxcdTY5M0RcXHU2OTU5XFx1NjkzMFxcdTY5NjFcXHU2OTVFXFx1Njk1RFxcdTY5ODFcXHU2OTZBXFx1NjlCMlxcdTY5QUVcXHU2OUQwXFx1NjlCRlxcdTY5QzFcXHU2OUQzXFx1NjlCRVxcdTY5Q0VcXHU1QkU4XFx1NjlDQVxcdTY5RERcXHU2OUJCXFx1NjlDM1xcdTY5QTdcXHU2QTJFXFx1Njk5MVxcdTY5QTBcXHU2OTlDXFx1Njk5NVxcdTY5QjRcXHU2OURFXFx1NjlFOFxcdTZBMDJcXHU2QTFCXFx1NjlGRlxcdTZCMEFcXHU2OUY5XFx1NjlGMlxcdTY5RTdcXHU2QTA1XFx1NjlCMVxcdTZBMUVcXHU2OUVEXFx1NkExNFxcdTY5RUJcXHU2QTBBXFx1NkExMlxcdTZBQzFcXHU2QTIzXFx1NkExM1xcdTZBNDRcXHU2QTBDXFx1NkE3MlxcdTZBMzZcXHU2QTc4XFx1NkE0N1xcdTZBNjJcXHU2QTU5XFx1NkE2NlxcdTZBNDhcXHU2QTM4XFx1NkEyMlxcdTZBOTBcXHU2QThEXFx1NkFBMFxcdTZBODRcXHU2QUEyXFx1NkFBM1wiXSxcbiAgICAgIFtcIjlmNDBcIiwgXCJcXHU2QTk3XFx1ODYxN1xcdTZBQkJcXHU2QUMzXFx1NkFDMlxcdTZBQjhcXHU2QUIzXFx1NkFBQ1xcdTZBREVcXHU2QUQxXFx1NkFERlxcdTZBQUFcXHU2QURBXFx1NkFFQVxcdTZBRkJcXHU2QjA1XFx1ODYxNlxcdTZBRkFcXHU2QjEyXFx1NkIxNlxcdTlCMzFcXHU2QjFGXFx1NkIzOFxcdTZCMzdcXHU3NkRDXFx1NkIzOVxcdTk4RUVcXHU2QjQ3XFx1NkI0M1xcdTZCNDlcXHU2QjUwXFx1NkI1OVxcdTZCNTRcXHU2QjVCXFx1NkI1RlxcdTZCNjFcXHU2Qjc4XFx1NkI3OVxcdTZCN0ZcXHU2QjgwXFx1NkI4NFxcdTZCODNcXHU2QjhEXFx1NkI5OFxcdTZCOTVcXHU2QjlFXFx1NkJBNFxcdTZCQUFcXHU2QkFCXFx1NkJBRlxcdTZCQjJcXHU2QkIxXFx1NkJCM1xcdTZCQjdcXHU2QkJDXFx1NkJDNlxcdTZCQ0JcXHU2QkQzXFx1NkJERlxcdTZCRUNcXHU2QkVCXFx1NkJGM1xcdTZCRUZcIl0sXG4gICAgICBbXCI5ZjgwXCIsIFwiXFx1OUVCRVxcdTZDMDhcXHU2QzEzXFx1NkMxNFxcdTZDMUJcXHU2QzI0XFx1NkMyM1xcdTZDNUVcXHU2QzU1XFx1NkM2MlxcdTZDNkFcXHU2QzgyXFx1NkM4RFxcdTZDOUFcXHU2QzgxXFx1NkM5QlxcdTZDN0VcXHU2QzY4XFx1NkM3M1xcdTZDOTJcXHU2QzkwXFx1NkNDNFxcdTZDRjFcXHU2Q0QzXFx1NkNCRFxcdTZDRDdcXHU2Q0M1XFx1NkNERFxcdTZDQUVcXHU2Q0IxXFx1NkNCRVxcdTZDQkFcXHU2Q0RCXFx1NkNFRlxcdTZDRDlcXHU2Q0VBXFx1NkQxRlxcdTg4NERcXHU2RDM2XFx1NkQyQlxcdTZEM0RcXHU2RDM4XFx1NkQxOVxcdTZEMzVcXHU2RDMzXFx1NkQxMlxcdTZEMENcXHU2RDYzXFx1NkQ5M1xcdTZENjRcXHU2RDVBXFx1NkQ3OVxcdTZENTlcXHU2RDhFXFx1NkQ5NVxcdTZGRTRcXHU2RDg1XFx1NkRGOVxcdTZFMTVcXHU2RTBBXFx1NkRCNVxcdTZEQzdcXHU2REU2XFx1NkRCOFxcdTZEQzZcXHU2REVDXFx1NkRERVxcdTZEQ0NcXHU2REU4XFx1NkREMlxcdTZEQzVcXHU2REZBXFx1NkREOVxcdTZERTRcXHU2REQ1XFx1NkRFQVxcdTZERUVcXHU2RTJEXFx1NkU2RVxcdTZFMkVcXHU2RTE5XFx1NkU3MlxcdTZFNUZcXHU2RTNFXFx1NkUyM1xcdTZFNkJcXHU2RTJCXFx1NkU3NlxcdTZFNERcXHU2RTFGXFx1NkU0M1xcdTZFM0FcXHU2RTRFXFx1NkUyNFxcdTZFRkZcXHU2RTFEXFx1NkUzOFxcdTZFODJcXHU2RUFBXFx1NkU5OFxcdTZFQzlcXHU2RUI3XFx1NkVEM1xcdTZFQkRcXHU2RUFGXFx1NkVDNFxcdTZFQjJcXHU2RUQ0XFx1NkVENVxcdTZFOEZcXHU2RUE1XFx1NkVDMlxcdTZFOUZcXHU2RjQxXFx1NkYxMVxcdTcwNENcXHU2RUVDXFx1NkVGOFxcdTZFRkVcXHU2RjNGXFx1NkVGMlxcdTZGMzFcXHU2RUVGXFx1NkYzMlxcdTZFQ0NcIl0sXG4gICAgICBbXCJlMDQwXCIsIFwiXFx1NkYzRVxcdTZGMTNcXHU2RUY3XFx1NkY4NlxcdTZGN0FcXHU2Rjc4XFx1NkY4MVxcdTZGODBcXHU2RjZGXFx1NkY1QlxcdTZGRjNcXHU2RjZEXFx1NkY4MlxcdTZGN0NcXHU2RjU4XFx1NkY4RVxcdTZGOTFcXHU2RkMyXFx1NkY2NlxcdTZGQjNcXHU2RkEzXFx1NkZBMVxcdTZGQTRcXHU2RkI5XFx1NkZDNlxcdTZGQUFcXHU2RkRGXFx1NkZENVxcdTZGRUNcXHU2RkQ0XFx1NkZEOFxcdTZGRjFcXHU2RkVFXFx1NkZEQlxcdTcwMDlcXHU3MDBCXFx1NkZGQVxcdTcwMTFcXHU3MDAxXFx1NzAwRlxcdTZGRkVcXHU3MDFCXFx1NzAxQVxcdTZGNzRcXHU3MDFEXFx1NzAxOFxcdTcwMUZcXHU3MDMwXFx1NzAzRVxcdTcwMzJcXHU3MDUxXFx1NzA2M1xcdTcwOTlcXHU3MDkyXFx1NzBBRlxcdTcwRjFcXHU3MEFDXFx1NzBCOFxcdTcwQjNcXHU3MEFFXFx1NzBERlxcdTcwQ0JcXHU3MEREXCJdLFxuICAgICAgW1wiZTA4MFwiLCBcIlxcdTcwRDlcXHU3MTA5XFx1NzBGRFxcdTcxMUNcXHU3MTE5XFx1NzE2NVxcdTcxNTVcXHU3MTg4XFx1NzE2NlxcdTcxNjJcXHU3MTRDXFx1NzE1NlxcdTcxNkNcXHU3MThGXFx1NzFGQlxcdTcxODRcXHU3MTk1XFx1NzFBOFxcdTcxQUNcXHU3MUQ3XFx1NzFCOVxcdTcxQkVcXHU3MUQyXFx1NzFDOVxcdTcxRDRcXHU3MUNFXFx1NzFFMFxcdTcxRUNcXHU3MUU3XFx1NzFGNVxcdTcxRkNcXHU3MUY5XFx1NzFGRlxcdTcyMERcXHU3MjEwXFx1NzIxQlxcdTcyMjhcXHU3MjJEXFx1NzIyQ1xcdTcyMzBcXHU3MjMyXFx1NzIzQlxcdTcyM0NcXHU3MjNGXFx1NzI0MFxcdTcyNDZcXHU3MjRCXFx1NzI1OFxcdTcyNzRcXHU3MjdFXFx1NzI4MlxcdTcyODFcXHU3Mjg3XFx1NzI5MlxcdTcyOTZcXHU3MkEyXFx1NzJBN1xcdTcyQjlcXHU3MkIyXFx1NzJDM1xcdTcyQzZcXHU3MkM0XFx1NzJDRVxcdTcyRDJcXHU3MkUyXFx1NzJFMFxcdTcyRTFcXHU3MkY5XFx1NzJGN1xcdTUwMEZcXHU3MzE3XFx1NzMwQVxcdTczMUNcXHU3MzE2XFx1NzMxRFxcdTczMzRcXHU3MzJGXFx1NzMyOVxcdTczMjVcXHU3MzNFXFx1NzM0RVxcdTczNEZcXHU5RUQ4XFx1NzM1N1xcdTczNkFcXHU3MzY4XFx1NzM3MFxcdTczNzhcXHU3Mzc1XFx1NzM3QlxcdTczN0FcXHU3M0M4XFx1NzNCM1xcdTczQ0VcXHU3M0JCXFx1NzNDMFxcdTczRTVcXHU3M0VFXFx1NzNERVxcdTc0QTJcXHU3NDA1XFx1NzQ2RlxcdTc0MjVcXHU3M0Y4XFx1NzQzMlxcdTc0M0FcXHU3NDU1XFx1NzQzRlxcdTc0NUZcXHU3NDU5XFx1NzQ0MVxcdTc0NUNcXHU3NDY5XFx1NzQ3MFxcdTc0NjNcXHU3NDZBXFx1NzQ3NlxcdTc0N0VcXHU3NDhCXFx1NzQ5RVxcdTc0QTdcXHU3NENBXFx1NzRDRlxcdTc0RDRcXHU3M0YxXCJdLFxuICAgICAgW1wiZTE0MFwiLCBcIlxcdTc0RTBcXHU3NEUzXFx1NzRFN1xcdTc0RTlcXHU3NEVFXFx1NzRGMlxcdTc0RjBcXHU3NEYxXFx1NzRGOFxcdTc0RjdcXHU3NTA0XFx1NzUwM1xcdTc1MDVcXHU3NTBDXFx1NzUwRVxcdTc1MERcXHU3NTE1XFx1NzUxM1xcdTc1MUVcXHU3NTI2XFx1NzUyQ1xcdTc1M0NcXHU3NTQ0XFx1NzU0RFxcdTc1NEFcXHU3NTQ5XFx1NzU1QlxcdTc1NDZcXHU3NTVBXFx1NzU2OVxcdTc1NjRcXHU3NTY3XFx1NzU2QlxcdTc1NkRcXHU3NTc4XFx1NzU3NlxcdTc1ODZcXHU3NTg3XFx1NzU3NFxcdTc1OEFcXHU3NTg5XFx1NzU4MlxcdTc1OTRcXHU3NTlBXFx1NzU5RFxcdTc1QTVcXHU3NUEzXFx1NzVDMlxcdTc1QjNcXHU3NUMzXFx1NzVCNVxcdTc1QkRcXHU3NUI4XFx1NzVCQ1xcdTc1QjFcXHU3NUNEXFx1NzVDQVxcdTc1RDJcXHU3NUQ5XFx1NzVFM1xcdTc1REVcXHU3NUZFXFx1NzVGRlwiXSxcbiAgICAgIFtcImUxODBcIiwgXCJcXHU3NUZDXFx1NzYwMVxcdTc1RjBcXHU3NUZBXFx1NzVGMlxcdTc1RjNcXHU3NjBCXFx1NzYwRFxcdTc2MDlcXHU3NjFGXFx1NzYyN1xcdTc2MjBcXHU3NjIxXFx1NzYyMlxcdTc2MjRcXHU3NjM0XFx1NzYzMFxcdTc2M0JcXHU3NjQ3XFx1NzY0OFxcdTc2NDZcXHU3NjVDXFx1NzY1OFxcdTc2NjFcXHU3NjYyXFx1NzY2OFxcdTc2NjlcXHU3NjZBXFx1NzY2N1xcdTc2NkNcXHU3NjcwXFx1NzY3MlxcdTc2NzZcXHU3Njc4XFx1NzY3Q1xcdTc2ODBcXHU3NjgzXFx1NzY4OFxcdTc2OEJcXHU3NjhFXFx1NzY5NlxcdTc2OTNcXHU3Njk5XFx1NzY5QVxcdTc2QjBcXHU3NkI0XFx1NzZCOFxcdTc2QjlcXHU3NkJBXFx1NzZDMlxcdTc2Q0RcXHU3NkQ2XFx1NzZEMlxcdTc2REVcXHU3NkUxXFx1NzZFNVxcdTc2RTdcXHU3NkVBXFx1ODYyRlxcdTc2RkJcXHU3NzA4XFx1NzcwN1xcdTc3MDRcXHU3NzI5XFx1NzcyNFxcdTc3MUVcXHU3NzI1XFx1NzcyNlxcdTc3MUJcXHU3NzM3XFx1NzczOFxcdTc3NDdcXHU3NzVBXFx1Nzc2OFxcdTc3NkJcXHU3NzVCXFx1Nzc2NVxcdTc3N0ZcXHU3NzdFXFx1Nzc3OVxcdTc3OEVcXHU3NzhCXFx1Nzc5MVxcdTc3QTBcXHU3NzlFXFx1NzdCMFxcdTc3QjZcXHU3N0I5XFx1NzdCRlxcdTc3QkNcXHU3N0JEXFx1NzdCQlxcdTc3QzdcXHU3N0NEXFx1NzdEN1xcdTc3REFcXHU3N0RDXFx1NzdFM1xcdTc3RUVcXHU3N0ZDXFx1NzgwQ1xcdTc4MTJcXHU3OTI2XFx1NzgyMFxcdTc5MkFcXHU3ODQ1XFx1Nzg4RVxcdTc4NzRcXHU3ODg2XFx1Nzg3Q1xcdTc4OUFcXHU3ODhDXFx1NzhBM1xcdTc4QjVcXHU3OEFBXFx1NzhBRlxcdTc4RDFcXHU3OEM2XFx1NzhDQlxcdTc4RDRcXHU3OEJFXFx1NzhCQ1xcdTc4QzVcXHU3OENBXFx1NzhFQ1wiXSxcbiAgICAgIFtcImUyNDBcIiwgXCJcXHU3OEU3XFx1NzhEQVxcdTc4RkRcXHU3OEY0XFx1NzkwN1xcdTc5MTJcXHU3OTExXFx1NzkxOVxcdTc5MkNcXHU3OTJCXFx1Nzk0MFxcdTc5NjBcXHU3OTU3XFx1Nzk1RlxcdTc5NUFcXHU3OTU1XFx1Nzk1M1xcdTc5N0FcXHU3OTdGXFx1Nzk4QVxcdTc5OURcXHU3OUE3XFx1OUY0QlxcdTc5QUFcXHU3OUFFXFx1NzlCM1xcdTc5QjlcXHU3OUJBXFx1NzlDOVxcdTc5RDVcXHU3OUU3XFx1NzlFQ1xcdTc5RTFcXHU3OUUzXFx1N0EwOFxcdTdBMERcXHU3QTE4XFx1N0ExOVxcdTdBMjBcXHU3QTFGXFx1Nzk4MFxcdTdBMzFcXHU3QTNCXFx1N0EzRVxcdTdBMzdcXHU3QTQzXFx1N0E1N1xcdTdBNDlcXHU3QTYxXFx1N0E2MlxcdTdBNjlcXHU5RjlEXFx1N0E3MFxcdTdBNzlcXHU3QTdEXFx1N0E4OFxcdTdBOTdcXHU3QTk1XFx1N0E5OFxcdTdBOTZcXHU3QUE5XFx1N0FDOFxcdTdBQjBcIl0sXG4gICAgICBbXCJlMjgwXCIsIFwiXFx1N0FCNlxcdTdBQzVcXHU3QUM0XFx1N0FCRlxcdTkwODNcXHU3QUM3XFx1N0FDQVxcdTdBQ0RcXHU3QUNGXFx1N0FENVxcdTdBRDNcXHU3QUQ5XFx1N0FEQVxcdTdBRERcXHU3QUUxXFx1N0FFMlxcdTdBRTZcXHU3QUVEXFx1N0FGMFxcdTdCMDJcXHU3QjBGXFx1N0IwQVxcdTdCMDZcXHU3QjMzXFx1N0IxOFxcdTdCMTlcXHU3QjFFXFx1N0IzNVxcdTdCMjhcXHU3QjM2XFx1N0I1MFxcdTdCN0FcXHU3QjA0XFx1N0I0RFxcdTdCMEJcXHU3QjRDXFx1N0I0NVxcdTdCNzVcXHU3QjY1XFx1N0I3NFxcdTdCNjdcXHU3QjcwXFx1N0I3MVxcdTdCNkNcXHU3QjZFXFx1N0I5RFxcdTdCOThcXHU3QjlGXFx1N0I4RFxcdTdCOUNcXHU3QjlBXFx1N0I4QlxcdTdCOTJcXHU3QjhGXFx1N0I1RFxcdTdCOTlcXHU3QkNCXFx1N0JDMVxcdTdCQ0NcXHU3QkNGXFx1N0JCNFxcdTdCQzZcXHU3QkREXFx1N0JFOVxcdTdDMTFcXHU3QzE0XFx1N0JFNlxcdTdCRTVcXHU3QzYwXFx1N0MwMFxcdTdDMDdcXHU3QzEzXFx1N0JGM1xcdTdCRjdcXHU3QzE3XFx1N0MwRFxcdTdCRjZcXHU3QzIzXFx1N0MyN1xcdTdDMkFcXHU3QzFGXFx1N0MzN1xcdTdDMkJcXHU3QzNEXFx1N0M0Q1xcdTdDNDNcXHU3QzU0XFx1N0M0RlxcdTdDNDBcXHU3QzUwXFx1N0M1OFxcdTdDNUZcXHU3QzY0XFx1N0M1NlxcdTdDNjVcXHU3QzZDXFx1N0M3NVxcdTdDODNcXHU3QzkwXFx1N0NBNFxcdTdDQURcXHU3Q0EyXFx1N0NBQlxcdTdDQTFcXHU3Q0E4XFx1N0NCM1xcdTdDQjJcXHU3Q0IxXFx1N0NBRVxcdTdDQjlcXHU3Q0JEXFx1N0NDMFxcdTdDQzVcXHU3Q0MyXFx1N0NEOFxcdTdDRDJcXHU3Q0RDXFx1N0NFMlxcdTlCM0JcXHU3Q0VGXFx1N0NGMlxcdTdDRjRcXHU3Q0Y2XFx1N0NGQVxcdTdEMDZcIl0sXG4gICAgICBbXCJlMzQwXCIsIFwiXFx1N0QwMlxcdTdEMUNcXHU3RDE1XFx1N0QwQVxcdTdENDVcXHU3RDRCXFx1N0QyRVxcdTdEMzJcXHU3RDNGXFx1N0QzNVxcdTdENDZcXHU3RDczXFx1N0Q1NlxcdTdENEVcXHU3RDcyXFx1N0Q2OFxcdTdENkVcXHU3RDRGXFx1N0Q2M1xcdTdEOTNcXHU3RDg5XFx1N0Q1QlxcdTdEOEZcXHU3RDdEXFx1N0Q5QlxcdTdEQkFcXHU3REFFXFx1N0RBM1xcdTdEQjVcXHU3REM3XFx1N0RCRFxcdTdEQUJcXHU3RTNEXFx1N0RBMlxcdTdEQUZcXHU3RERDXFx1N0RCOFxcdTdEOUZcXHU3REIwXFx1N0REOFxcdTdERERcXHU3REU0XFx1N0RERVxcdTdERkJcXHU3REYyXFx1N0RFMVxcdTdFMDVcXHU3RTBBXFx1N0UyM1xcdTdFMjFcXHU3RTEyXFx1N0UzMVxcdTdFMUZcXHU3RTA5XFx1N0UwQlxcdTdFMjJcXHU3RTQ2XFx1N0U2NlxcdTdFM0JcXHU3RTM1XFx1N0UzOVxcdTdFNDNcXHU3RTM3XCJdLFxuICAgICAgW1wiZTM4MFwiLCBcIlxcdTdFMzJcXHU3RTNBXFx1N0U2N1xcdTdFNURcXHU3RTU2XFx1N0U1RVxcdTdFNTlcXHU3RTVBXFx1N0U3OVxcdTdFNkFcXHU3RTY5XFx1N0U3Q1xcdTdFN0JcXHU3RTgzXFx1N0RENVxcdTdFN0RcXHU4RkFFXFx1N0U3RlxcdTdFODhcXHU3RTg5XFx1N0U4Q1xcdTdFOTJcXHU3RTkwXFx1N0U5M1xcdTdFOTRcXHU3RTk2XFx1N0U4RVxcdTdFOUJcXHU3RTlDXFx1N0YzOFxcdTdGM0FcXHU3RjQ1XFx1N0Y0Q1xcdTdGNERcXHU3RjRFXFx1N0Y1MFxcdTdGNTFcXHU3RjU1XFx1N0Y1NFxcdTdGNThcXHU3RjVGXFx1N0Y2MFxcdTdGNjhcXHU3RjY5XFx1N0Y2N1xcdTdGNzhcXHU3RjgyXFx1N0Y4NlxcdTdGODNcXHU3Rjg4XFx1N0Y4N1xcdTdGOENcXHU3Rjk0XFx1N0Y5RVxcdTdGOURcXHU3RjlBXFx1N0ZBM1xcdTdGQUZcXHU3RkIyXFx1N0ZCOVxcdTdGQUVcXHU3RkI2XFx1N0ZCOFxcdThCNzFcXHU3RkM1XFx1N0ZDNlxcdTdGQ0FcXHU3RkQ1XFx1N0ZENFxcdTdGRTFcXHU3RkU2XFx1N0ZFOVxcdTdGRjNcXHU3RkY5XFx1OThEQ1xcdTgwMDZcXHU4MDA0XFx1ODAwQlxcdTgwMTJcXHU4MDE4XFx1ODAxOVxcdTgwMUNcXHU4MDIxXFx1ODAyOFxcdTgwM0ZcXHU4MDNCXFx1ODA0QVxcdTgwNDZcXHU4MDUyXFx1ODA1OFxcdTgwNUFcXHU4MDVGXFx1ODA2MlxcdTgwNjhcXHU4MDczXFx1ODA3MlxcdTgwNzBcXHU4MDc2XFx1ODA3OVxcdTgwN0RcXHU4MDdGXFx1ODA4NFxcdTgwODZcXHU4MDg1XFx1ODA5QlxcdTgwOTNcXHU4MDlBXFx1ODBBRFxcdTUxOTBcXHU4MEFDXFx1ODBEQlxcdTgwRTVcXHU4MEQ5XFx1ODBERFxcdTgwQzRcXHU4MERBXFx1ODBENlxcdTgxMDlcXHU4MEVGXFx1ODBGMVxcdTgxMUJcXHU4MTI5XFx1ODEyM1xcdTgxMkZcXHU4MTRCXCJdLFxuICAgICAgW1wiZTQ0MFwiLCBcIlxcdTk2OEJcXHU4MTQ2XFx1ODEzRVxcdTgxNTNcXHU4MTUxXFx1ODBGQ1xcdTgxNzFcXHU4MTZFXFx1ODE2NVxcdTgxNjZcXHU4MTc0XFx1ODE4M1xcdTgxODhcXHU4MThBXFx1ODE4MFxcdTgxODJcXHU4MUEwXFx1ODE5NVxcdTgxQTRcXHU4MUEzXFx1ODE1RlxcdTgxOTNcXHU4MUE5XFx1ODFCMFxcdTgxQjVcXHU4MUJFXFx1ODFCOFxcdTgxQkRcXHU4MUMwXFx1ODFDMlxcdTgxQkFcXHU4MUM5XFx1ODFDRFxcdTgxRDFcXHU4MUQ5XFx1ODFEOFxcdTgxQzhcXHU4MURBXFx1ODFERlxcdTgxRTBcXHU4MUU3XFx1ODFGQVxcdTgxRkJcXHU4MUZFXFx1ODIwMVxcdTgyMDJcXHU4MjA1XFx1ODIwN1xcdTgyMEFcXHU4MjBEXFx1ODIxMFxcdTgyMTZcXHU4MjI5XFx1ODIyQlxcdTgyMzhcXHU4MjMzXFx1ODI0MFxcdTgyNTlcXHU4MjU4XFx1ODI1RFxcdTgyNUFcXHU4MjVGXFx1ODI2NFwiXSxcbiAgICAgIFtcImU0ODBcIiwgXCJcXHU4MjYyXFx1ODI2OFxcdTgyNkFcXHU4MjZCXFx1ODIyRVxcdTgyNzFcXHU4Mjc3XFx1ODI3OFxcdTgyN0VcXHU4MjhEXFx1ODI5MlxcdTgyQUJcXHU4MjlGXFx1ODJCQlxcdTgyQUNcXHU4MkUxXFx1ODJFM1xcdTgyREZcXHU4MkQyXFx1ODJGNFxcdTgyRjNcXHU4MkZBXFx1ODM5M1xcdTgzMDNcXHU4MkZCXFx1ODJGOVxcdTgyREVcXHU4MzA2XFx1ODJEQ1xcdTgzMDlcXHU4MkQ5XFx1ODMzNVxcdTgzMzRcXHU4MzE2XFx1ODMzMlxcdTgzMzFcXHU4MzQwXFx1ODMzOVxcdTgzNTBcXHU4MzQ1XFx1ODMyRlxcdTgzMkJcXHU4MzE3XFx1ODMxOFxcdTgzODVcXHU4MzlBXFx1ODNBQVxcdTgzOUZcXHU4M0EyXFx1ODM5NlxcdTgzMjNcXHU4MzhFXFx1ODM4N1xcdTgzOEFcXHU4MzdDXFx1ODNCNVxcdTgzNzNcXHU4Mzc1XFx1ODNBMFxcdTgzODlcXHU4M0E4XFx1ODNGNFxcdTg0MTNcXHU4M0VCXFx1ODNDRVxcdTgzRkRcXHU4NDAzXFx1ODNEOFxcdTg0MEJcXHU4M0MxXFx1ODNGN1xcdTg0MDdcXHU4M0UwXFx1ODNGMlxcdTg0MERcXHU4NDIyXFx1ODQyMFxcdTgzQkRcXHU4NDM4XFx1ODUwNlxcdTgzRkJcXHU4NDZEXFx1ODQyQVxcdTg0M0NcXHU4NTVBXFx1ODQ4NFxcdTg0NzdcXHU4NDZCXFx1ODRBRFxcdTg0NkVcXHU4NDgyXFx1ODQ2OVxcdTg0NDZcXHU4NDJDXFx1ODQ2RlxcdTg0NzlcXHU4NDM1XFx1ODRDQVxcdTg0NjJcXHU4NEI5XFx1ODRCRlxcdTg0OUZcXHU4NEQ5XFx1ODRDRFxcdTg0QkJcXHU4NERBXFx1ODREMFxcdTg0QzFcXHU4NEM2XFx1ODRENlxcdTg0QTFcXHU4NTIxXFx1ODRGRlxcdTg0RjRcXHU4NTE3XFx1ODUxOFxcdTg1MkNcXHU4NTFGXFx1ODUxNVxcdTg1MTRcXHU4NEZDXFx1ODU0MFxcdTg1NjNcXHU4NTU4XFx1ODU0OFwiXSxcbiAgICAgIFtcImU1NDBcIiwgXCJcXHU4NTQxXFx1ODYwMlxcdTg1NEJcXHU4NTU1XFx1ODU4MFxcdTg1QTRcXHU4NTg4XFx1ODU5MVxcdTg1OEFcXHU4NUE4XFx1ODU2RFxcdTg1OTRcXHU4NTlCXFx1ODVFQVxcdTg1ODdcXHU4NTlDXFx1ODU3N1xcdTg1N0VcXHU4NTkwXFx1ODVDOVxcdTg1QkFcXHU4NUNGXFx1ODVCOVxcdTg1RDBcXHU4NUQ1XFx1ODVERFxcdTg1RTVcXHU4NURDXFx1ODVGOVxcdTg2MEFcXHU4NjEzXFx1ODYwQlxcdTg1RkVcXHU4NUZBXFx1ODYwNlxcdTg2MjJcXHU4NjFBXFx1ODYzMFxcdTg2M0ZcXHU4NjREXFx1NEU1NVxcdTg2NTRcXHU4NjVGXFx1ODY2N1xcdTg2NzFcXHU4NjkzXFx1ODZBM1xcdTg2QTlcXHU4NkFBXFx1ODY4QlxcdTg2OENcXHU4NkI2XFx1ODZBRlxcdTg2QzRcXHU4NkM2XFx1ODZCMFxcdTg2QzlcXHU4ODIzXFx1ODZBQlxcdTg2RDRcXHU4NkRFXFx1ODZFOVxcdTg2RUNcIl0sXG4gICAgICBbXCJlNTgwXCIsIFwiXFx1ODZERlxcdTg2REJcXHU4NkVGXFx1ODcxMlxcdTg3MDZcXHU4NzA4XFx1ODcwMFxcdTg3MDNcXHU4NkZCXFx1ODcxMVxcdTg3MDlcXHU4NzBEXFx1ODZGOVxcdTg3MEFcXHU4NzM0XFx1ODczRlxcdTg3MzdcXHU4NzNCXFx1ODcyNVxcdTg3MjlcXHU4NzFBXFx1ODc2MFxcdTg3NUZcXHU4Nzc4XFx1ODc0Q1xcdTg3NEVcXHU4Nzc0XFx1ODc1N1xcdTg3NjhcXHU4NzZFXFx1ODc1OVxcdTg3NTNcXHU4NzYzXFx1ODc2QVxcdTg4MDVcXHU4N0EyXFx1ODc5RlxcdTg3ODJcXHU4N0FGXFx1ODdDQlxcdTg3QkRcXHU4N0MwXFx1ODdEMFxcdTk2RDZcXHU4N0FCXFx1ODdDNFxcdTg3QjNcXHU4N0M3XFx1ODdDNlxcdTg3QkJcXHU4N0VGXFx1ODdGMlxcdTg3RTBcXHU4ODBGXFx1ODgwRFxcdTg3RkVcXHU4N0Y2XFx1ODdGN1xcdTg4MEVcXHU4N0QyXFx1ODgxMVxcdTg4MTZcXHU4ODE1XFx1ODgyMlxcdTg4MjFcXHU4ODMxXFx1ODgzNlxcdTg4MzlcXHU4ODI3XFx1ODgzQlxcdTg4NDRcXHU4ODQyXFx1ODg1MlxcdTg4NTlcXHU4ODVFXFx1ODg2MlxcdTg4NkJcXHU4ODgxXFx1ODg3RVxcdTg4OUVcXHU4ODc1XFx1ODg3RFxcdTg4QjVcXHU4ODcyXFx1ODg4MlxcdTg4OTdcXHU4ODkyXFx1ODhBRVxcdTg4OTlcXHU4OEEyXFx1ODg4RFxcdTg4QTRcXHU4OEIwXFx1ODhCRlxcdTg4QjFcXHU4OEMzXFx1ODhDNFxcdTg4RDRcXHU4OEQ4XFx1ODhEOVxcdTg4RERcXHU4OEY5XFx1ODkwMlxcdTg4RkNcXHU4OEY0XFx1ODhFOFxcdTg4RjJcXHU4OTA0XFx1ODkwQ1xcdTg5MEFcXHU4OTEzXFx1ODk0M1xcdTg5MUVcXHU4OTI1XFx1ODkyQVxcdTg5MkJcXHU4OTQxXFx1ODk0NFxcdTg5M0JcXHU4OTM2XFx1ODkzOFxcdTg5NENcXHU4OTFEXFx1ODk2MFxcdTg5NUVcIl0sXG4gICAgICBbXCJlNjQwXCIsIFwiXFx1ODk2NlxcdTg5NjRcXHU4OTZEXFx1ODk2QVxcdTg5NkZcXHU4OTc0XFx1ODk3N1xcdTg5N0VcXHU4OTgzXFx1ODk4OFxcdTg5OEFcXHU4OTkzXFx1ODk5OFxcdTg5QTFcXHU4OUE5XFx1ODlBNlxcdTg5QUNcXHU4OUFGXFx1ODlCMlxcdTg5QkFcXHU4OUJEXFx1ODlCRlxcdTg5QzBcXHU4OURBXFx1ODlEQ1xcdTg5RERcXHU4OUU3XFx1ODlGNFxcdTg5RjhcXHU4QTAzXFx1OEExNlxcdThBMTBcXHU4QTBDXFx1OEExQlxcdThBMURcXHU4QTI1XFx1OEEzNlxcdThBNDFcXHU4QTVCXFx1OEE1MlxcdThBNDZcXHU4QTQ4XFx1OEE3Q1xcdThBNkRcXHU4QTZDXFx1OEE2MlxcdThBODVcXHU4QTgyXFx1OEE4NFxcdThBQThcXHU4QUExXFx1OEE5MVxcdThBQTVcXHU4QUE2XFx1OEE5QVxcdThBQTNcXHU4QUM0XFx1OEFDRFxcdThBQzJcXHU4QURBXFx1OEFFQlxcdThBRjNcXHU4QUU3XCJdLFxuICAgICAgW1wiZTY4MFwiLCBcIlxcdThBRTRcXHU4QUYxXFx1OEIxNFxcdThBRTBcXHU4QUUyXFx1OEFGN1xcdThBREVcXHU4QURCXFx1OEIwQ1xcdThCMDdcXHU4QjFBXFx1OEFFMVxcdThCMTZcXHU4QjEwXFx1OEIxN1xcdThCMjBcXHU4QjMzXFx1OTdBQlxcdThCMjZcXHU4QjJCXFx1OEIzRVxcdThCMjhcXHU4QjQxXFx1OEI0Q1xcdThCNEZcXHU4QjRFXFx1OEI0OVxcdThCNTZcXHU4QjVCXFx1OEI1QVxcdThCNkJcXHU4QjVGXFx1OEI2Q1xcdThCNkZcXHU4Qjc0XFx1OEI3RFxcdThCODBcXHU4QjhDXFx1OEI4RVxcdThCOTJcXHU4QjkzXFx1OEI5NlxcdThCOTlcXHU4QjlBXFx1OEMzQVxcdThDNDFcXHU4QzNGXFx1OEM0OFxcdThDNENcXHU4QzRFXFx1OEM1MFxcdThDNTVcXHU4QzYyXFx1OEM2Q1xcdThDNzhcXHU4QzdBXFx1OEM4MlxcdThDODlcXHU4Qzg1XFx1OEM4QVxcdThDOERcXHU4QzhFXFx1OEM5NFxcdThDN0NcXHU4Qzk4XFx1NjIxRFxcdThDQURcXHU4Q0FBXFx1OENCRFxcdThDQjJcXHU4Q0IzXFx1OENBRVxcdThDQjZcXHU4Q0M4XFx1OENDMVxcdThDRTRcXHU4Q0UzXFx1OENEQVxcdThDRkRcXHU4Q0ZBXFx1OENGQlxcdThEMDRcXHU4RDA1XFx1OEQwQVxcdThEMDdcXHU4RDBGXFx1OEQwRFxcdThEMTBcXHU5RjRFXFx1OEQxM1xcdThDQ0RcXHU4RDE0XFx1OEQxNlxcdThENjdcXHU4RDZEXFx1OEQ3MVxcdThENzNcXHU4RDgxXFx1OEQ5OVxcdThEQzJcXHU4REJFXFx1OERCQVxcdThEQ0ZcXHU4RERBXFx1OERENlxcdThEQ0NcXHU4RERCXFx1OERDQlxcdThERUFcXHU4REVCXFx1OERERlxcdThERTNcXHU4REZDXFx1OEUwOFxcdThFMDlcXHU4REZGXFx1OEUxRFxcdThFMUVcXHU4RTEwXFx1OEUxRlxcdThFNDJcXHU4RTM1XFx1OEUzMFxcdThFMzRcXHU4RTRBXCJdLFxuICAgICAgW1wiZTc0MFwiLCBcIlxcdThFNDdcXHU4RTQ5XFx1OEU0Q1xcdThFNTBcXHU4RTQ4XFx1OEU1OVxcdThFNjRcXHU4RTYwXFx1OEUyQVxcdThFNjNcXHU4RTU1XFx1OEU3NlxcdThFNzJcXHU4RTdDXFx1OEU4MVxcdThFODdcXHU4RTg1XFx1OEU4NFxcdThFOEJcXHU4RThBXFx1OEU5M1xcdThFOTFcXHU4RTk0XFx1OEU5OVxcdThFQUFcXHU4RUExXFx1OEVBQ1xcdThFQjBcXHU4RUM2XFx1OEVCMVxcdThFQkVcXHU4RUM1XFx1OEVDOFxcdThFQ0JcXHU4RURCXFx1OEVFM1xcdThFRkNcXHU4RUZCXFx1OEVFQlxcdThFRkVcXHU4RjBBXFx1OEYwNVxcdThGMTVcXHU4RjEyXFx1OEYxOVxcdThGMTNcXHU4RjFDXFx1OEYxRlxcdThGMUJcXHU4RjBDXFx1OEYyNlxcdThGMzNcXHU4RjNCXFx1OEYzOVxcdThGNDVcXHU4RjQyXFx1OEYzRVxcdThGNENcXHU4RjQ5XFx1OEY0NlxcdThGNEVcXHU4RjU3XFx1OEY1Q1wiXSxcbiAgICAgIFtcImU3ODBcIiwgXCJcXHU4RjYyXFx1OEY2M1xcdThGNjRcXHU4RjlDXFx1OEY5RlxcdThGQTNcXHU4RkFEXFx1OEZBRlxcdThGQjdcXHU4RkRBXFx1OEZFNVxcdThGRTJcXHU4RkVBXFx1OEZFRlxcdTkwODdcXHU4RkY0XFx1OTAwNVxcdThGRjlcXHU4RkZBXFx1OTAxMVxcdTkwMTVcXHU5MDIxXFx1OTAwRFxcdTkwMUVcXHU5MDE2XFx1OTAwQlxcdTkwMjdcXHU5MDM2XFx1OTAzNVxcdTkwMzlcXHU4RkY4XFx1OTA0RlxcdTkwNTBcXHU5MDUxXFx1OTA1MlxcdTkwMEVcXHU5MDQ5XFx1OTAzRVxcdTkwNTZcXHU5MDU4XFx1OTA1RVxcdTkwNjhcXHU5MDZGXFx1OTA3NlxcdTk2QThcXHU5MDcyXFx1OTA4MlxcdTkwN0RcXHU5MDgxXFx1OTA4MFxcdTkwOEFcXHU5MDg5XFx1OTA4RlxcdTkwQThcXHU5MEFGXFx1OTBCMVxcdTkwQjVcXHU5MEUyXFx1OTBFNFxcdTYyNDhcXHU5MERCXFx1OTEwMlxcdTkxMTJcXHU5MTE5XFx1OTEzMlxcdTkxMzBcXHU5MTRBXFx1OTE1NlxcdTkxNThcXHU5MTYzXFx1OTE2NVxcdTkxNjlcXHU5MTczXFx1OTE3MlxcdTkxOEJcXHU5MTg5XFx1OTE4MlxcdTkxQTJcXHU5MUFCXFx1OTFBRlxcdTkxQUFcXHU5MUI1XFx1OTFCNFxcdTkxQkFcXHU5MUMwXFx1OTFDMVxcdTkxQzlcXHU5MUNCXFx1OTFEMFxcdTkxRDZcXHU5MURGXFx1OTFFMVxcdTkxREJcXHU5MUZDXFx1OTFGNVxcdTkxRjZcXHU5MjFFXFx1OTFGRlxcdTkyMTRcXHU5MjJDXFx1OTIxNVxcdTkyMTFcXHU5MjVFXFx1OTI1N1xcdTkyNDVcXHU5MjQ5XFx1OTI2NFxcdTkyNDhcXHU5Mjk1XFx1OTIzRlxcdTkyNEJcXHU5MjUwXFx1OTI5Q1xcdTkyOTZcXHU5MjkzXFx1OTI5QlxcdTkyNUFcXHU5MkNGXFx1OTJCOVxcdTkyQjdcXHU5MkU5XFx1OTMwRlxcdTkyRkFcXHU5MzQ0XFx1OTMyRVwiXSxcbiAgICAgIFtcImU4NDBcIiwgXCJcXHU5MzE5XFx1OTMyMlxcdTkzMUFcXHU5MzIzXFx1OTMzQVxcdTkzMzVcXHU5MzNCXFx1OTM1Q1xcdTkzNjBcXHU5MzdDXFx1OTM2RVxcdTkzNTZcXHU5M0IwXFx1OTNBQ1xcdTkzQURcXHU5Mzk0XFx1OTNCOVxcdTkzRDZcXHU5M0Q3XFx1OTNFOFxcdTkzRTVcXHU5M0Q4XFx1OTNDM1xcdTkzRERcXHU5M0QwXFx1OTNDOFxcdTkzRTRcXHU5NDFBXFx1OTQxNFxcdTk0MTNcXHU5NDAzXFx1OTQwN1xcdTk0MTBcXHU5NDM2XFx1OTQyQlxcdTk0MzVcXHU5NDIxXFx1OTQzQVxcdTk0NDFcXHU5NDUyXFx1OTQ0NFxcdTk0NUJcXHU5NDYwXFx1OTQ2MlxcdTk0NUVcXHU5NDZBXFx1OTIyOVxcdTk0NzBcXHU5NDc1XFx1OTQ3N1xcdTk0N0RcXHU5NDVBXFx1OTQ3Q1xcdTk0N0VcXHU5NDgxXFx1OTQ3RlxcdTk1ODJcXHU5NTg3XFx1OTU4QVxcdTk1OTRcXHU5NTk2XFx1OTU5OFxcdTk1OTlcIl0sXG4gICAgICBbXCJlODgwXCIsIFwiXFx1OTVBMFxcdTk1QThcXHU5NUE3XFx1OTVBRFxcdTk1QkNcXHU5NUJCXFx1OTVCOVxcdTk1QkVcXHU5NUNBXFx1NkZGNlxcdTk1QzNcXHU5NUNEXFx1OTVDQ1xcdTk1RDVcXHU5NUQ0XFx1OTVENlxcdTk1RENcXHU5NUUxXFx1OTVFNVxcdTk1RTJcXHU5NjIxXFx1OTYyOFxcdTk2MkVcXHU5NjJGXFx1OTY0MlxcdTk2NENcXHU5NjRGXFx1OTY0QlxcdTk2NzdcXHU5NjVDXFx1OTY1RVxcdTk2NURcXHU5NjVGXFx1OTY2NlxcdTk2NzJcXHU5NjZDXFx1OTY4RFxcdTk2OThcXHU5Njk1XFx1OTY5N1xcdTk2QUFcXHU5NkE3XFx1OTZCMVxcdTk2QjJcXHU5NkIwXFx1OTZCNFxcdTk2QjZcXHU5NkI4XFx1OTZCOVxcdTk2Q0VcXHU5NkNCXFx1OTZDOVxcdTk2Q0RcXHU4OTREXFx1OTZEQ1xcdTk3MERcXHU5NkQ1XFx1OTZGOVxcdTk3MDRcXHU5NzA2XFx1OTcwOFxcdTk3MTNcXHU5NzBFXFx1OTcxMVxcdTk3MEZcXHU5NzE2XFx1OTcxOVxcdTk3MjRcXHU5NzJBXFx1OTczMFxcdTk3MzlcXHU5NzNEXFx1OTczRVxcdTk3NDRcXHU5NzQ2XFx1OTc0OFxcdTk3NDJcXHU5NzQ5XFx1OTc1Q1xcdTk3NjBcXHU5NzY0XFx1OTc2NlxcdTk3NjhcXHU1MkQyXFx1OTc2QlxcdTk3NzFcXHU5Nzc5XFx1OTc4NVxcdTk3N0NcXHU5NzgxXFx1OTc3QVxcdTk3ODZcXHU5NzhCXFx1OTc4RlxcdTk3OTBcXHU5NzlDXFx1OTdBOFxcdTk3QTZcXHU5N0EzXFx1OTdCM1xcdTk3QjRcXHU5N0MzXFx1OTdDNlxcdTk3QzhcXHU5N0NCXFx1OTdEQ1xcdTk3RURcXHU5RjRGXFx1OTdGMlxcdTdBREZcXHU5N0Y2XFx1OTdGNVxcdTk4MEZcXHU5ODBDXFx1OTgzOFxcdTk4MjRcXHU5ODIxXFx1OTgzN1xcdTk4M0RcXHU5ODQ2XFx1OTg0RlxcdTk4NEJcXHU5ODZCXFx1OTg2RlxcdTk4NzBcIl0sXG4gICAgICBbXCJlOTQwXCIsIFwiXFx1OTg3MVxcdTk4NzRcXHU5ODczXFx1OThBQVxcdTk4QUZcXHU5OEIxXFx1OThCNlxcdTk4QzRcXHU5OEMzXFx1OThDNlxcdTk4RTlcXHU5OEVCXFx1OTkwM1xcdTk5MDlcXHU5OTEyXFx1OTkxNFxcdTk5MThcXHU5OTIxXFx1OTkxRFxcdTk5MUVcXHU5OTI0XFx1OTkyMFxcdTk5MkNcXHU5OTJFXFx1OTkzRFxcdTk5M0VcXHU5OTQyXFx1OTk0OVxcdTk5NDVcXHU5OTUwXFx1OTk0QlxcdTk5NTFcXHU5OTUyXFx1OTk0Q1xcdTk5NTVcXHU5OTk3XFx1OTk5OFxcdTk5QTVcXHU5OUFEXFx1OTlBRVxcdTk5QkNcXHU5OURGXFx1OTlEQlxcdTk5RERcXHU5OUQ4XFx1OTlEMVxcdTk5RURcXHU5OUVFXFx1OTlGMVxcdTk5RjJcXHU5OUZCXFx1OTlGOFxcdTlBMDFcXHU5QTBGXFx1OUEwNVxcdTk5RTJcXHU5QTE5XFx1OUEyQlxcdTlBMzdcXHU5QTQ1XFx1OUE0MlxcdTlBNDBcXHU5QTQzXCJdLFxuICAgICAgW1wiZTk4MFwiLCBcIlxcdTlBM0VcXHU5QTU1XFx1OUE0RFxcdTlBNUJcXHU5QTU3XFx1OUE1RlxcdTlBNjJcXHU5QTY1XFx1OUE2NFxcdTlBNjlcXHU5QTZCXFx1OUE2QVxcdTlBQURcXHU5QUIwXFx1OUFCQ1xcdTlBQzBcXHU5QUNGXFx1OUFEMVxcdTlBRDNcXHU5QUQ0XFx1OUFERVxcdTlBREZcXHU5QUUyXFx1OUFFM1xcdTlBRTZcXHU5QUVGXFx1OUFFQlxcdTlBRUVcXHU5QUY0XFx1OUFGMVxcdTlBRjdcXHU5QUZCXFx1OUIwNlxcdTlCMThcXHU5QjFBXFx1OUIxRlxcdTlCMjJcXHU5QjIzXFx1OUIyNVxcdTlCMjdcXHU5QjI4XFx1OUIyOVxcdTlCMkFcXHU5QjJFXFx1OUIyRlxcdTlCMzJcXHU5QjQ0XFx1OUI0M1xcdTlCNEZcXHU5QjREXFx1OUI0RVxcdTlCNTFcXHU5QjU4XFx1OUI3NFxcdTlCOTNcXHU5QjgzXFx1OUI5MVxcdTlCOTZcXHU5Qjk3XFx1OUI5RlxcdTlCQTBcXHU5QkE4XFx1OUJCNFxcdTlCQzBcXHU5QkNBXFx1OUJCOVxcdTlCQzZcXHU5QkNGXFx1OUJEMVxcdTlCRDJcXHU5QkUzXFx1OUJFMlxcdTlCRTRcXHU5QkQ0XFx1OUJFMVxcdTlDM0FcXHU5QkYyXFx1OUJGMVxcdTlCRjBcXHU5QzE1XFx1OUMxNFxcdTlDMDlcXHU5QzEzXFx1OUMwQ1xcdTlDMDZcXHU5QzA4XFx1OUMxMlxcdTlDMEFcXHU5QzA0XFx1OUMyRVxcdTlDMUJcXHU5QzI1XFx1OUMyNFxcdTlDMjFcXHU5QzMwXFx1OUM0N1xcdTlDMzJcXHU5QzQ2XFx1OUMzRVxcdTlDNUFcXHU5QzYwXFx1OUM2N1xcdTlDNzZcXHU5Qzc4XFx1OUNFN1xcdTlDRUNcXHU5Q0YwXFx1OUQwOVxcdTlEMDhcXHU5Q0VCXFx1OUQwM1xcdTlEMDZcXHU5RDJBXFx1OUQyNlxcdTlEQUZcXHU5RDIzXFx1OUQxRlxcdTlENDRcXHU5RDE1XFx1OUQxMlxcdTlENDFcXHU5RDNGXFx1OUQzRVxcdTlENDZcXHU5RDQ4XCJdLFxuICAgICAgW1wiZWE0MFwiLCBcIlxcdTlENURcXHU5RDVFXFx1OUQ2NFxcdTlENTFcXHU5RDUwXFx1OUQ1OVxcdTlENzJcXHU5RDg5XFx1OUQ4N1xcdTlEQUJcXHU5RDZGXFx1OUQ3QVxcdTlEOUFcXHU5REE0XFx1OURBOVxcdTlEQjJcXHU5REM0XFx1OURDMVxcdTlEQkJcXHU5REI4XFx1OURCQVxcdTlEQzZcXHU5RENGXFx1OURDMlxcdTlERDlcXHU5REQzXFx1OURGOFxcdTlERTZcXHU5REVEXFx1OURFRlxcdTlERkRcXHU5RTFBXFx1OUUxQlxcdTlFMUVcXHU5RTc1XFx1OUU3OVxcdTlFN0RcXHU5RTgxXFx1OUU4OFxcdTlFOEJcXHU5RThDXFx1OUU5MlxcdTlFOTVcXHU5RTkxXFx1OUU5RFxcdTlFQTVcXHU5RUE5XFx1OUVCOFxcdTlFQUFcXHU5RUFEXFx1OTc2MVxcdTlFQ0NcXHU5RUNFXFx1OUVDRlxcdTlFRDBcXHU5RUQ0XFx1OUVEQ1xcdTlFREVcXHU5RUREXFx1OUVFMFxcdTlFRTVcXHU5RUU4XFx1OUVFRlwiXSxcbiAgICAgIFtcImVhODBcIiwgXCJcXHU5RUY0XFx1OUVGNlxcdTlFRjdcXHU5RUY5XFx1OUVGQlxcdTlFRkNcXHU5RUZEXFx1OUYwN1xcdTlGMDhcXHU3NkI3XFx1OUYxNVxcdTlGMjFcXHU5RjJDXFx1OUYzRVxcdTlGNEFcXHU5RjUyXFx1OUY1NFxcdTlGNjNcXHU5RjVGXFx1OUY2MFxcdTlGNjFcXHU5RjY2XFx1OUY2N1xcdTlGNkNcXHU5RjZBXFx1OUY3N1xcdTlGNzJcXHU5Rjc2XFx1OUY5NVxcdTlGOUNcXHU5RkEwXFx1NTgyRlxcdTY5QzdcXHU5MDU5XFx1NzQ2NFxcdTUxRENcXHU3MTk5XCJdLFxuICAgICAgW1wiZWQ0MFwiLCBcIlxcdTdFOEFcXHU4OTFDXFx1OTM0OFxcdTkyODhcXHU4NERDXFx1NEZDOVxcdTcwQkJcXHU2NjMxXFx1NjhDOFxcdTkyRjlcXHU2NkZCXFx1NUY0NVxcdTRFMjhcXHU0RUUxXFx1NEVGQ1xcdTRGMDBcXHU0RjAzXFx1NEYzOVxcdTRGNTZcXHU0RjkyXFx1NEY4QVxcdTRGOUFcXHU0Rjk0XFx1NEZDRFxcdTUwNDBcXHU1MDIyXFx1NEZGRlxcdTUwMUVcXHU1MDQ2XFx1NTA3MFxcdTUwNDJcXHU1MDk0XFx1NTBGNFxcdTUwRDhcXHU1MTRBXFx1NTE2NFxcdTUxOURcXHU1MUJFXFx1NTFFQ1xcdTUyMTVcXHU1MjlDXFx1NTJBNlxcdTUyQzBcXHU1MkRCXFx1NTMwMFxcdTUzMDdcXHU1MzI0XFx1NTM3MlxcdTUzOTNcXHU1M0IyXFx1NTNERFxcdUZBMEVcXHU1NDlDXFx1NTQ4QVxcdTU0QTlcXHU1NEZGXFx1NTU4NlxcdTU3NTlcXHU1NzY1XFx1NTdBQ1xcdTU3QzhcXHU1N0M3XFx1RkEwRlwiXSxcbiAgICAgIFtcImVkODBcIiwgXCJcXHVGQTEwXFx1NTg5RVxcdTU4QjJcXHU1OTBCXFx1NTk1M1xcdTU5NUJcXHU1OTVEXFx1NTk2M1xcdTU5QTRcXHU1OUJBXFx1NUI1NlxcdTVCQzBcXHU3NTJGXFx1NUJEOFxcdTVCRUNcXHU1QzFFXFx1NUNBNlxcdTVDQkFcXHU1Q0Y1XFx1NUQyN1xcdTVENTNcXHVGQTExXFx1NUQ0MlxcdTVENkRcXHU1REI4XFx1NURCOVxcdTVERDBcXHU1RjIxXFx1NUYzNFxcdTVGNjdcXHU1RkI3XFx1NUZERVxcdTYwNURcXHU2MDg1XFx1NjA4QVxcdTYwREVcXHU2MEQ1XFx1NjEyMFxcdTYwRjJcXHU2MTExXFx1NjEzN1xcdTYxMzBcXHU2MTk4XFx1NjIxM1xcdTYyQTZcXHU2M0Y1XFx1NjQ2MFxcdTY0OURcXHU2NENFXFx1NjU0RVxcdTY2MDBcXHU2NjE1XFx1NjYzQlxcdTY2MDlcXHU2NjJFXFx1NjYxRVxcdTY2MjRcXHU2NjY1XFx1NjY1N1xcdTY2NTlcXHVGQTEyXFx1NjY3M1xcdTY2OTlcXHU2NkEwXFx1NjZCMlxcdTY2QkZcXHU2NkZBXFx1NjcwRVxcdUY5MjlcXHU2NzY2XFx1NjdCQlxcdTY4NTJcXHU2N0MwXFx1NjgwMVxcdTY4NDRcXHU2OENGXFx1RkExM1xcdTY5NjhcXHVGQTE0XFx1Njk5OFxcdTY5RTJcXHU2QTMwXFx1NkE2QlxcdTZBNDZcXHU2QTczXFx1NkE3RVxcdTZBRTJcXHU2QUU0XFx1NkJENlxcdTZDM0ZcXHU2QzVDXFx1NkM4NlxcdTZDNkZcXHU2Q0RBXFx1NkQwNFxcdTZEODdcXHU2RDZGXFx1NkQ5NlxcdTZEQUNcXHU2RENGXFx1NkRGOFxcdTZERjJcXHU2REZDXFx1NkUzOVxcdTZFNUNcXHU2RTI3XFx1NkUzQ1xcdTZFQkZcXHU2Rjg4XFx1NkZCNVxcdTZGRjVcXHU3MDA1XFx1NzAwN1xcdTcwMjhcXHU3MDg1XFx1NzBBQlxcdTcxMEZcXHU3MTA0XFx1NzE1Q1xcdTcxNDZcXHU3MTQ3XFx1RkExNVxcdTcxQzFcXHU3MUZFXFx1NzJCMVwiXSxcbiAgICAgIFtcImVlNDBcIiwgXCJcXHU3MkJFXFx1NzMyNFxcdUZBMTZcXHU3Mzc3XFx1NzNCRFxcdTczQzlcXHU3M0Q2XFx1NzNFM1xcdTczRDJcXHU3NDA3XFx1NzNGNVxcdTc0MjZcXHU3NDJBXFx1NzQyOVxcdTc0MkVcXHU3NDYyXFx1NzQ4OVxcdTc0OUZcXHU3NTAxXFx1NzU2RlxcdTc2ODJcXHU3NjlDXFx1NzY5RVxcdTc2OUJcXHU3NkE2XFx1RkExN1xcdTc3NDZcXHU1MkFGXFx1NzgyMVxcdTc4NEVcXHU3ODY0XFx1Nzg3QVxcdTc5MzBcXHVGQTE4XFx1RkExOVxcdUZBMUFcXHU3OTk0XFx1RkExQlxcdTc5OUJcXHU3QUQxXFx1N0FFN1xcdUZBMUNcXHU3QUVCXFx1N0I5RVxcdUZBMURcXHU3RDQ4XFx1N0Q1Q1xcdTdEQjdcXHU3REEwXFx1N0RENlxcdTdFNTJcXHU3RjQ3XFx1N0ZBMVxcdUZBMUVcXHU4MzAxXFx1ODM2MlxcdTgzN0ZcXHU4M0M3XFx1ODNGNlxcdTg0NDhcXHU4NEI0XFx1ODU1M1xcdTg1NTlcIl0sXG4gICAgICBbXCJlZTgwXCIsIFwiXFx1ODU2QlxcdUZBMUZcXHU4NUIwXFx1RkEyMFxcdUZBMjFcXHU4ODA3XFx1ODhGNVxcdThBMTJcXHU4QTM3XFx1OEE3OVxcdThBQTdcXHU4QUJFXFx1OEFERlxcdUZBMjJcXHU4QUY2XFx1OEI1M1xcdThCN0ZcXHU4Q0YwXFx1OENGNFxcdThEMTJcXHU4RDc2XFx1RkEyM1xcdThFQ0ZcXHVGQTI0XFx1RkEyNVxcdTkwNjdcXHU5MERFXFx1RkEyNlxcdTkxMTVcXHU5MTI3XFx1OTFEQVxcdTkxRDdcXHU5MURFXFx1OTFFRFxcdTkxRUVcXHU5MUU0XFx1OTFFNVxcdTkyMDZcXHU5MjEwXFx1OTIwQVxcdTkyM0FcXHU5MjQwXFx1OTIzQ1xcdTkyNEVcXHU5MjU5XFx1OTI1MVxcdTkyMzlcXHU5MjY3XFx1OTJBN1xcdTkyNzdcXHU5Mjc4XFx1OTJFN1xcdTkyRDdcXHU5MkQ5XFx1OTJEMFxcdUZBMjdcXHU5MkQ1XFx1OTJFMFxcdTkyRDNcXHU5MzI1XFx1OTMyMVxcdTkyRkJcXHVGQTI4XFx1OTMxRVxcdTkyRkZcXHU5MzFEXFx1OTMwMlxcdTkzNzBcXHU5MzU3XFx1OTNBNFxcdTkzQzZcXHU5M0RFXFx1OTNGOFxcdTk0MzFcXHU5NDQ1XFx1OTQ0OFxcdTk1OTJcXHVGOURDXFx1RkEyOVxcdTk2OURcXHU5NkFGXFx1OTczM1xcdTk3M0JcXHU5NzQzXFx1OTc0RFxcdTk3NEZcXHU5NzUxXFx1OTc1NVxcdTk4NTdcXHU5ODY1XFx1RkEyQVxcdUZBMkJcXHU5OTI3XFx1RkEyQ1xcdTk5OUVcXHU5QTRFXFx1OUFEOVxcdTlBRENcXHU5Qjc1XFx1OUI3MlxcdTlCOEZcXHU5QkIxXFx1OUJCQlxcdTlDMDBcXHU5RDcwXFx1OUQ2QlxcdUZBMkRcXHU5RTE5XFx1OUVEMVwiXSxcbiAgICAgIFtcImVlZWZcIiwgXCJcXHUyMTcwXCIsIDksIFwiXFx1RkZFMlxcdUZGRTRcXHVGRjA3XFx1RkYwMlwiXSxcbiAgICAgIFtcImYwNDBcIiwgXCJcXHVFMDAwXCIsIDYyXSxcbiAgICAgIFtcImYwODBcIiwgXCJcXHVFMDNGXCIsIDEyNF0sXG4gICAgICBbXCJmMTQwXCIsIFwiXFx1RTBCQ1wiLCA2Ml0sXG4gICAgICBbXCJmMTgwXCIsIFwiXFx1RTBGQlwiLCAxMjRdLFxuICAgICAgW1wiZjI0MFwiLCBcIlxcdUUxNzhcIiwgNjJdLFxuICAgICAgW1wiZjI4MFwiLCBcIlxcdUUxQjdcIiwgMTI0XSxcbiAgICAgIFtcImYzNDBcIiwgXCJcXHVFMjM0XCIsIDYyXSxcbiAgICAgIFtcImYzODBcIiwgXCJcXHVFMjczXCIsIDEyNF0sXG4gICAgICBbXCJmNDQwXCIsIFwiXFx1RTJGMFwiLCA2Ml0sXG4gICAgICBbXCJmNDgwXCIsIFwiXFx1RTMyRlwiLCAxMjRdLFxuICAgICAgW1wiZjU0MFwiLCBcIlxcdUUzQUNcIiwgNjJdLFxuICAgICAgW1wiZjU4MFwiLCBcIlxcdUUzRUJcIiwgMTI0XSxcbiAgICAgIFtcImY2NDBcIiwgXCJcXHVFNDY4XCIsIDYyXSxcbiAgICAgIFtcImY2ODBcIiwgXCJcXHVFNEE3XCIsIDEyNF0sXG4gICAgICBbXCJmNzQwXCIsIFwiXFx1RTUyNFwiLCA2Ml0sXG4gICAgICBbXCJmNzgwXCIsIFwiXFx1RTU2M1wiLCAxMjRdLFxuICAgICAgW1wiZjg0MFwiLCBcIlxcdUU1RTBcIiwgNjJdLFxuICAgICAgW1wiZjg4MFwiLCBcIlxcdUU2MUZcIiwgMTI0XSxcbiAgICAgIFtcImY5NDBcIiwgXCJcXHVFNjlDXCJdLFxuICAgICAgW1wiZmE0MFwiLCBcIlxcdTIxNzBcIiwgOSwgXCJcXHUyMTYwXCIsIDksIFwiXFx1RkZFMlxcdUZGRTRcXHVGRjA3XFx1RkYwMlxcdTMyMzFcXHUyMTE2XFx1MjEyMVxcdTIyMzVcXHU3RThBXFx1ODkxQ1xcdTkzNDhcXHU5Mjg4XFx1ODREQ1xcdTRGQzlcXHU3MEJCXFx1NjYzMVxcdTY4QzhcXHU5MkY5XFx1NjZGQlxcdTVGNDVcXHU0RTI4XFx1NEVFMVxcdTRFRkNcXHU0RjAwXFx1NEYwM1xcdTRGMzlcXHU0RjU2XFx1NEY5MlxcdTRGOEFcXHU0RjlBXFx1NEY5NFxcdTRGQ0RcXHU1MDQwXFx1NTAyMlxcdTRGRkZcXHU1MDFFXFx1NTA0NlxcdTUwNzBcXHU1MDQyXFx1NTA5NFxcdTUwRjRcXHU1MEQ4XFx1NTE0QVwiXSxcbiAgICAgIFtcImZhODBcIiwgXCJcXHU1MTY0XFx1NTE5RFxcdTUxQkVcXHU1MUVDXFx1NTIxNVxcdTUyOUNcXHU1MkE2XFx1NTJDMFxcdTUyREJcXHU1MzAwXFx1NTMwN1xcdTUzMjRcXHU1MzcyXFx1NTM5M1xcdTUzQjJcXHU1M0REXFx1RkEwRVxcdTU0OUNcXHU1NDhBXFx1NTRBOVxcdTU0RkZcXHU1NTg2XFx1NTc1OVxcdTU3NjVcXHU1N0FDXFx1NTdDOFxcdTU3QzdcXHVGQTBGXFx1RkExMFxcdTU4OUVcXHU1OEIyXFx1NTkwQlxcdTU5NTNcXHU1OTVCXFx1NTk1RFxcdTU5NjNcXHU1OUE0XFx1NTlCQVxcdTVCNTZcXHU1QkMwXFx1NzUyRlxcdTVCRDhcXHU1QkVDXFx1NUMxRVxcdTVDQTZcXHU1Q0JBXFx1NUNGNVxcdTVEMjdcXHU1RDUzXFx1RkExMVxcdTVENDJcXHU1RDZEXFx1NURCOFxcdTVEQjlcXHU1REQwXFx1NUYyMVxcdTVGMzRcXHU1RjY3XFx1NUZCN1xcdTVGREVcXHU2MDVEXFx1NjA4NVxcdTYwOEFcXHU2MERFXFx1NjBENVxcdTYxMjBcXHU2MEYyXFx1NjExMVxcdTYxMzdcXHU2MTMwXFx1NjE5OFxcdTYyMTNcXHU2MkE2XFx1NjNGNVxcdTY0NjBcXHU2NDlEXFx1NjRDRVxcdTY1NEVcXHU2NjAwXFx1NjYxNVxcdTY2M0JcXHU2NjA5XFx1NjYyRVxcdTY2MUVcXHU2NjI0XFx1NjY2NVxcdTY2NTdcXHU2NjU5XFx1RkExMlxcdTY2NzNcXHU2Njk5XFx1NjZBMFxcdTY2QjJcXHU2NkJGXFx1NjZGQVxcdTY3MEVcXHVGOTI5XFx1Njc2NlxcdTY3QkJcXHU2ODUyXFx1NjdDMFxcdTY4MDFcXHU2ODQ0XFx1NjhDRlxcdUZBMTNcXHU2OTY4XFx1RkExNFxcdTY5OThcXHU2OUUyXFx1NkEzMFxcdTZBNkJcXHU2QTQ2XFx1NkE3M1xcdTZBN0VcXHU2QUUyXFx1NkFFNFxcdTZCRDZcXHU2QzNGXFx1NkM1Q1xcdTZDODZcXHU2QzZGXFx1NkNEQVxcdTZEMDRcXHU2RDg3XFx1NkQ2RlwiXSxcbiAgICAgIFtcImZiNDBcIiwgXCJcXHU2RDk2XFx1NkRBQ1xcdTZEQ0ZcXHU2REY4XFx1NkRGMlxcdTZERkNcXHU2RTM5XFx1NkU1Q1xcdTZFMjdcXHU2RTNDXFx1NkVCRlxcdTZGODhcXHU2RkI1XFx1NkZGNVxcdTcwMDVcXHU3MDA3XFx1NzAyOFxcdTcwODVcXHU3MEFCXFx1NzEwRlxcdTcxMDRcXHU3MTVDXFx1NzE0NlxcdTcxNDdcXHVGQTE1XFx1NzFDMVxcdTcxRkVcXHU3MkIxXFx1NzJCRVxcdTczMjRcXHVGQTE2XFx1NzM3N1xcdTczQkRcXHU3M0M5XFx1NzNENlxcdTczRTNcXHU3M0QyXFx1NzQwN1xcdTczRjVcXHU3NDI2XFx1NzQyQVxcdTc0MjlcXHU3NDJFXFx1NzQ2MlxcdTc0ODlcXHU3NDlGXFx1NzUwMVxcdTc1NkZcXHU3NjgyXFx1NzY5Q1xcdTc2OUVcXHU3NjlCXFx1NzZBNlxcdUZBMTdcXHU3NzQ2XFx1NTJBRlxcdTc4MjFcXHU3ODRFXFx1Nzg2NFxcdTc4N0FcXHU3OTMwXFx1RkExOFxcdUZBMTlcIl0sXG4gICAgICBbXCJmYjgwXCIsIFwiXFx1RkExQVxcdTc5OTRcXHVGQTFCXFx1Nzk5QlxcdTdBRDFcXHU3QUU3XFx1RkExQ1xcdTdBRUJcXHU3QjlFXFx1RkExRFxcdTdENDhcXHU3RDVDXFx1N0RCN1xcdTdEQTBcXHU3REQ2XFx1N0U1MlxcdTdGNDdcXHU3RkExXFx1RkExRVxcdTgzMDFcXHU4MzYyXFx1ODM3RlxcdTgzQzdcXHU4M0Y2XFx1ODQ0OFxcdTg0QjRcXHU4NTUzXFx1ODU1OVxcdTg1NkJcXHVGQTFGXFx1ODVCMFxcdUZBMjBcXHVGQTIxXFx1ODgwN1xcdTg4RjVcXHU4QTEyXFx1OEEzN1xcdThBNzlcXHU4QUE3XFx1OEFCRVxcdThBREZcXHVGQTIyXFx1OEFGNlxcdThCNTNcXHU4QjdGXFx1OENGMFxcdThDRjRcXHU4RDEyXFx1OEQ3NlxcdUZBMjNcXHU4RUNGXFx1RkEyNFxcdUZBMjVcXHU5MDY3XFx1OTBERVxcdUZBMjZcXHU5MTE1XFx1OTEyN1xcdTkxREFcXHU5MUQ3XFx1OTFERVxcdTkxRURcXHU5MUVFXFx1OTFFNFxcdTkxRTVcXHU5MjA2XFx1OTIxMFxcdTkyMEFcXHU5MjNBXFx1OTI0MFxcdTkyM0NcXHU5MjRFXFx1OTI1OVxcdTkyNTFcXHU5MjM5XFx1OTI2N1xcdTkyQTdcXHU5Mjc3XFx1OTI3OFxcdTkyRTdcXHU5MkQ3XFx1OTJEOVxcdTkyRDBcXHVGQTI3XFx1OTJENVxcdTkyRTBcXHU5MkQzXFx1OTMyNVxcdTkzMjFcXHU5MkZCXFx1RkEyOFxcdTkzMUVcXHU5MkZGXFx1OTMxRFxcdTkzMDJcXHU5MzcwXFx1OTM1N1xcdTkzQTRcXHU5M0M2XFx1OTNERVxcdTkzRjhcXHU5NDMxXFx1OTQ0NVxcdTk0NDhcXHU5NTkyXFx1RjlEQ1xcdUZBMjlcXHU5NjlEXFx1OTZBRlxcdTk3MzNcXHU5NzNCXFx1OTc0M1xcdTk3NERcXHU5NzRGXFx1OTc1MVxcdTk3NTVcXHU5ODU3XFx1OTg2NVxcdUZBMkFcXHVGQTJCXFx1OTkyN1xcdUZBMkNcXHU5OTlFXFx1OUE0RVxcdTlBRDlcIl0sXG4gICAgICBbXCJmYzQwXCIsIFwiXFx1OUFEQ1xcdTlCNzVcXHU5QjcyXFx1OUI4RlxcdTlCQjFcXHU5QkJCXFx1OUMwMFxcdTlENzBcXHU5RDZCXFx1RkEyRFxcdTlFMTlcXHU5RUQxXCJdXG4gICAgXTtcbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9ib2R5LXBhcnNlci9ub2RlX21vZHVsZXMvaWNvbnYtbGl0ZS9lbmNvZGluZ3MvdGFibGVzL2V1Y2pwLmpzb25cbnZhciByZXF1aXJlX2V1Y2pwMiA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9ib2R5LXBhcnNlci9ub2RlX21vZHVsZXMvaWNvbnYtbGl0ZS9lbmNvZGluZ3MvdGFibGVzL2V1Y2pwLmpzb25cIihleHBvcnRzMiwgbW9kdWxlMikge1xuICAgIG1vZHVsZTIuZXhwb3J0cyA9IFtcbiAgICAgIFtcIjBcIiwgXCJcXDBcIiwgMTI3XSxcbiAgICAgIFtcIjhlYTFcIiwgXCJcXHVGRjYxXCIsIDYyXSxcbiAgICAgIFtcImExYTFcIiwgXCJcXHUzMDAwXFx1MzAwMVxcdTMwMDJcXHVGRjBDXFx1RkYwRVxcdTMwRkJcXHVGRjFBXFx1RkYxQlxcdUZGMUZcXHVGRjAxXFx1MzA5QlxcdTMwOUNcXHhCNFxcdUZGNDBcXHhBOFxcdUZGM0VcXHVGRkUzXFx1RkYzRlxcdTMwRkRcXHUzMEZFXFx1MzA5RFxcdTMwOUVcXHUzMDAzXFx1NEVERFxcdTMwMDVcXHUzMDA2XFx1MzAwN1xcdTMwRkNcXHUyMDE1XFx1MjAxMFxcdUZGMEZcXHVGRjNDXFx1RkY1RVxcdTIyMjVcXHVGRjVDXFx1MjAyNlxcdTIwMjVcXHUyMDE4XFx1MjAxOVxcdTIwMUNcXHUyMDFEXFx1RkYwOFxcdUZGMDlcXHUzMDE0XFx1MzAxNVxcdUZGM0JcXHVGRjNEXFx1RkY1QlxcdUZGNURcXHUzMDA4XCIsIDksIFwiXFx1RkYwQlxcdUZGMERcXHhCMVxceEQ3XFx4RjdcXHVGRjFEXFx1MjI2MFxcdUZGMUNcXHVGRjFFXFx1MjI2NlxcdTIyNjdcXHUyMjFFXFx1MjIzNFxcdTI2NDJcXHUyNjQwXFx4QjBcXHUyMDMyXFx1MjAzM1xcdTIxMDNcXHVGRkU1XFx1RkYwNFxcdUZGRTBcXHVGRkUxXFx1RkYwNVxcdUZGMDNcXHVGRjA2XFx1RkYwQVxcdUZGMjBcXHhBN1xcdTI2MDZcXHUyNjA1XFx1MjVDQlxcdTI1Q0ZcXHUyNUNFXFx1MjVDN1wiXSxcbiAgICAgIFtcImEyYTFcIiwgXCJcXHUyNUM2XFx1MjVBMVxcdTI1QTBcXHUyNUIzXFx1MjVCMlxcdTI1QkRcXHUyNUJDXFx1MjAzQlxcdTMwMTJcXHUyMTkyXFx1MjE5MFxcdTIxOTFcXHUyMTkzXFx1MzAxM1wiXSxcbiAgICAgIFtcImEyYmFcIiwgXCJcXHUyMjA4XFx1MjIwQlxcdTIyODZcXHUyMjg3XFx1MjI4MlxcdTIyODNcXHUyMjJBXFx1MjIyOVwiXSxcbiAgICAgIFtcImEyY2FcIiwgXCJcXHUyMjI3XFx1MjIyOFxcdUZGRTJcXHUyMUQyXFx1MjFENFxcdTIyMDBcXHUyMjAzXCJdLFxuICAgICAgW1wiYTJkY1wiLCBcIlxcdTIyMjBcXHUyMkE1XFx1MjMxMlxcdTIyMDJcXHUyMjA3XFx1MjI2MVxcdTIyNTJcXHUyMjZBXFx1MjI2QlxcdTIyMUFcXHUyMjNEXFx1MjIxRFxcdTIyMzVcXHUyMjJCXFx1MjIyQ1wiXSxcbiAgICAgIFtcImEyZjJcIiwgXCJcXHUyMTJCXFx1MjAzMFxcdTI2NkZcXHUyNjZEXFx1MjY2QVxcdTIwMjBcXHUyMDIxXFx4QjZcIl0sXG4gICAgICBbXCJhMmZlXCIsIFwiXFx1MjVFRlwiXSxcbiAgICAgIFtcImEzYjBcIiwgXCJcXHVGRjEwXCIsIDldLFxuICAgICAgW1wiYTNjMVwiLCBcIlxcdUZGMjFcIiwgMjVdLFxuICAgICAgW1wiYTNlMVwiLCBcIlxcdUZGNDFcIiwgMjVdLFxuICAgICAgW1wiYTRhMVwiLCBcIlxcdTMwNDFcIiwgODJdLFxuICAgICAgW1wiYTVhMVwiLCBcIlxcdTMwQTFcIiwgODVdLFxuICAgICAgW1wiYTZhMVwiLCBcIlxcdTAzOTFcIiwgMTYsIFwiXFx1MDNBM1wiLCA2XSxcbiAgICAgIFtcImE2YzFcIiwgXCJcXHUwM0IxXCIsIDE2LCBcIlxcdTAzQzNcIiwgNl0sXG4gICAgICBbXCJhN2ExXCIsIFwiXFx1MDQxMFwiLCA1LCBcIlxcdTA0MDFcXHUwNDE2XCIsIDI1XSxcbiAgICAgIFtcImE3ZDFcIiwgXCJcXHUwNDMwXCIsIDUsIFwiXFx1MDQ1MVxcdTA0MzZcIiwgMjVdLFxuICAgICAgW1wiYThhMVwiLCBcIlxcdTI1MDBcXHUyNTAyXFx1MjUwQ1xcdTI1MTBcXHUyNTE4XFx1MjUxNFxcdTI1MUNcXHUyNTJDXFx1MjUyNFxcdTI1MzRcXHUyNTNDXFx1MjUwMVxcdTI1MDNcXHUyNTBGXFx1MjUxM1xcdTI1MUJcXHUyNTE3XFx1MjUyM1xcdTI1MzNcXHUyNTJCXFx1MjUzQlxcdTI1NEJcXHUyNTIwXFx1MjUyRlxcdTI1MjhcXHUyNTM3XFx1MjUzRlxcdTI1MURcXHUyNTMwXFx1MjUyNVxcdTI1MzhcXHUyNTQyXCJdLFxuICAgICAgW1wiYWRhMVwiLCBcIlxcdTI0NjBcIiwgMTksIFwiXFx1MjE2MFwiLCA5XSxcbiAgICAgIFtcImFkYzBcIiwgXCJcXHUzMzQ5XFx1MzMxNFxcdTMzMjJcXHUzMzREXFx1MzMxOFxcdTMzMjdcXHUzMzAzXFx1MzMzNlxcdTMzNTFcXHUzMzU3XFx1MzMwRFxcdTMzMjZcXHUzMzIzXFx1MzMyQlxcdTMzNEFcXHUzMzNCXFx1MzM5Q1xcdTMzOURcXHUzMzlFXFx1MzM4RVxcdTMzOEZcXHUzM0M0XFx1MzNBMVwiXSxcbiAgICAgIFtcImFkZGZcIiwgXCJcXHUzMzdCXFx1MzAxRFxcdTMwMUZcXHUyMTE2XFx1MzNDRFxcdTIxMjFcXHUzMkE0XCIsIDQsIFwiXFx1MzIzMVxcdTMyMzJcXHUzMjM5XFx1MzM3RVxcdTMzN0RcXHUzMzdDXFx1MjI1MlxcdTIyNjFcXHUyMjJCXFx1MjIyRVxcdTIyMTFcXHUyMjFBXFx1MjJBNVxcdTIyMjBcXHUyMjFGXFx1MjJCRlxcdTIyMzVcXHUyMjI5XFx1MjIyQVwiXSxcbiAgICAgIFtcImIwYTFcIiwgXCJcXHU0RTlDXFx1NTUxNlxcdTVBMDNcXHU5NjNGXFx1NTRDMFxcdTYxMUJcXHU2MzI4XFx1NTlGNlxcdTkwMjJcXHU4NDc1XFx1ODMxQ1xcdTdBNTBcXHU2MEFBXFx1NjNFMVxcdTZFMjVcXHU2NUVEXFx1ODQ2NlxcdTgyQTZcXHU5QkY1XFx1Njg5M1xcdTU3MjdcXHU2NUExXFx1NjI3MVxcdTVCOUJcXHU1OUQwXFx1ODY3QlxcdTk4RjRcXHU3RDYyXFx1N0RCRVxcdTlCOEVcXHU2MjE2XFx1N0M5RlxcdTg4QjdcXHU1Qjg5XFx1NUVCNVxcdTYzMDlcXHU2Njk3XFx1Njg0OFxcdTk1QzdcXHU5NzhEXFx1Njc0RlxcdTRFRTVcXHU0RjBBXFx1NEY0RFxcdTRGOURcXHU1MDQ5XFx1NTZGMlxcdTU5MzdcXHU1OUQ0XFx1NUEwMVxcdTVDMDlcXHU2MERGXFx1NjEwRlxcdTYxNzBcXHU2NjEzXFx1NjkwNVxcdTcwQkFcXHU3NTRGXFx1NzU3MFxcdTc5RkJcXHU3REFEXFx1N0RFRlxcdTgwQzNcXHU4NDBFXFx1ODg2M1xcdThCMDJcXHU5MDU1XFx1OTA3QVxcdTUzM0JcXHU0RTk1XFx1NEVBNVxcdTU3REZcXHU4MEIyXFx1OTBDMVxcdTc4RUZcXHU0RTAwXFx1NThGMVxcdTZFQTJcXHU5MDM4XFx1N0EzMlxcdTgzMjhcXHU4MjhCXFx1OUMyRlxcdTUxNDFcXHU1MzcwXFx1NTRCRFxcdTU0RTFcXHU1NkUwXFx1NTlGQlxcdTVGMTVcXHU5OEYyXFx1NkRFQlxcdTgwRTRcXHU4NTJEXCJdLFxuICAgICAgW1wiYjFhMVwiLCBcIlxcdTk2NjJcXHU5NjcwXFx1OTZBMFxcdTk3RkJcXHU1NDBCXFx1NTNGM1xcdTVCODdcXHU3MENGXFx1N0ZCRFxcdThGQzJcXHU5NkU4XFx1NTM2RlxcdTlENUNcXHU3QUJBXFx1NEUxMVxcdTc4OTNcXHU4MUZDXFx1NkUyNlxcdTU2MThcXHU1NTA0XFx1NkIxRFxcdTg1MUFcXHU5QzNCXFx1NTlFNVxcdTUzQTlcXHU2RDY2XFx1NzREQ1xcdTk1OEZcXHU1NjQyXFx1NEU5MVxcdTkwNEJcXHU5NkYyXFx1ODM0RlxcdTk5MENcXHU1M0UxXFx1NTVCNlxcdTVCMzBcXHU1RjcxXFx1NjYyMFxcdTY2RjNcXHU2ODA0XFx1NkMzOFxcdTZDRjNcXHU2RDI5XFx1NzQ1QlxcdTc2QzhcXHU3QTRFXFx1OTgzNFxcdTgyRjFcXHU4ODVCXFx1OEE2MFxcdTkyRURcXHU2REIyXFx1NzVBQlxcdTc2Q0FcXHU5OUM1XFx1NjBBNlxcdThCMDFcXHU4RDhBXFx1OTVCMlxcdTY5OEVcXHU1M0FEXFx1NTE4NlxcdTU3MTJcXHU1ODMwXFx1NTk0NFxcdTVCQjRcXHU1RUY2XFx1NjAyOFxcdTYzQTlcXHU2M0Y0XFx1NkNCRlxcdTZGMTRcXHU3MDhFXFx1NzExNFxcdTcxNTlcXHU3MUQ1XFx1NzMzRlxcdTdFMDFcXHU4Mjc2XFx1ODJEMVxcdTg1OTdcXHU5MDYwXFx1OTI1QlxcdTlEMUJcXHU1ODY5XFx1NjVCQ1xcdTZDNUFcXHU3NTI1XFx1NTFGOVxcdTU5MkVcXHU1OTY1XFx1NUY4MFxcdTVGRENcIl0sXG4gICAgICBbXCJiMmExXCIsIFwiXFx1NjJCQ1xcdTY1RkFcXHU2QTJBXFx1NkIyN1xcdTZCQjRcXHU3MzhCXFx1N0ZDMVxcdTg5NTZcXHU5RDJDXFx1OUQwRVxcdTlFQzRcXHU1Q0ExXFx1NkM5NlxcdTgzN0JcXHU1MTA0XFx1NUM0QlxcdTYxQjZcXHU4MUM2XFx1Njg3NlxcdTcyNjFcXHU0RTU5XFx1NEZGQVxcdTUzNzhcXHU2MDY5XFx1NkUyOVxcdTdBNEZcXHU5N0YzXFx1NEUwQlxcdTUzMTZcXHU0RUVFXFx1NEY1NVxcdTRGM0RcXHU0RkExXFx1NEY3M1xcdTUyQTBcXHU1M0VGXFx1NTYwOVxcdTU5MEZcXHU1QUMxXFx1NUJCNlxcdTVCRTFcXHU3OUQxXFx1NjY4N1xcdTY3OUNcXHU2N0I2XFx1NkI0Q1xcdTZDQjNcXHU3MDZCXFx1NzNDMlxcdTc5OERcXHU3OUJFXFx1N0EzQ1xcdTdCODdcXHU4MkIxXFx1ODJEQlxcdTgzMDRcXHU4Mzc3XFx1ODNFRlxcdTgzRDNcXHU4NzY2XFx1OEFCMlxcdTU2MjlcXHU4Q0E4XFx1OEZFNlxcdTkwNEVcXHU5NzFFXFx1ODY4QVxcdTRGQzRcXHU1Q0U4XFx1NjIxMVxcdTcyNTlcXHU3NTNCXFx1ODFFNVxcdTgyQkRcXHU4NkZFXFx1OENDMFxcdTk2QzVcXHU5OTEzXFx1OTlENVxcdTRFQ0JcXHU0RjFBXFx1ODlFM1xcdTU2REVcXHU1ODRBXFx1NThDQVxcdTVFRkJcXHU1RkVCXFx1NjAyQVxcdTYwOTRcXHU2MDYyXFx1NjFEMFxcdTYyMTJcXHU2MkQwXFx1NjUzOVwiXSxcbiAgICAgIFtcImIzYTFcIiwgXCJcXHU5QjQxXFx1NjY2NlxcdTY4QjBcXHU2RDc3XFx1NzA3MFxcdTc1NENcXHU3Njg2XFx1N0Q3NVxcdTgyQTVcXHU4N0Y5XFx1OTU4QlxcdTk2OEVcXHU4QzlEXFx1NTFGMVxcdTUyQkVcXHU1OTE2XFx1NTRCM1xcdTVCQjNcXHU1RDE2XFx1NjE2OFxcdTY5ODJcXHU2REFGXFx1Nzg4RFxcdTg0Q0JcXHU4ODU3XFx1OEE3MlxcdTkzQTdcXHU5QUI4XFx1NkQ2Q1xcdTk5QThcXHU4NkQ5XFx1NTdBM1xcdTY3RkZcXHU4NkNFXFx1OTIwRVxcdTUyODNcXHU1Njg3XFx1NTQwNFxcdTVFRDNcXHU2MkUxXFx1NjRCOVxcdTY4M0NcXHU2ODM4XFx1NkJCQlxcdTczNzJcXHU3OEJBXFx1N0E2QlxcdTg5OUFcXHU4OUQyXFx1OEQ2QlxcdThGMDNcXHU5MEVEXFx1OTVBM1xcdTk2OTRcXHU5NzY5XFx1NUI2NlxcdTVDQjNcXHU2OTdEXFx1OTg0RFxcdTk4NEVcXHU2MzlCXFx1N0IyMFxcdTZBMkJcXHU2QTdGXFx1NjhCNlxcdTlDMERcXHU2RjVGXFx1NTI3MlxcdTU1OURcXHU2MDcwXFx1NjJFQ1xcdTZEM0JcXHU2RTA3XFx1NkVEMVxcdTg0NUJcXHU4OTEwXFx1OEY0NFxcdTRFMTRcXHU5QzM5XFx1NTNGNlxcdTY5MUJcXHU2QTNBXFx1OTc4NFxcdTY4MkFcXHU1MTVDXFx1N0FDM1xcdTg0QjJcXHU5MURDXFx1OTM4Q1xcdTU2NUJcXHU5RDI4XFx1NjgyMlxcdTgzMDVcXHU4NDMxXCJdLFxuICAgICAgW1wiYjRhMVwiLCBcIlxcdTdDQTVcXHU1MjA4XFx1ODJDNVxcdTc0RTZcXHU0RTdFXFx1NEY4M1xcdTUxQTBcXHU1QkQyXFx1NTIwQVxcdTUyRDhcXHU1MkU3XFx1NURGQlxcdTU1OUFcXHU1ODJBXFx1NTlFNlxcdTVCOENcXHU1Qjk4XFx1NUJEQlxcdTVFNzJcXHU1RTc5XFx1NjBBM1xcdTYxMUZcXHU2MTYzXFx1NjFCRVxcdTYzREJcXHU2NTYyXFx1NjdEMVxcdTY4NTNcXHU2OEZBXFx1NkIzRVxcdTZCNTNcXHU2QzU3XFx1NkYyMlxcdTZGOTdcXHU2RjQ1XFx1NzRCMFxcdTc1MThcXHU3NkUzXFx1NzcwQlxcdTdBRkZcXHU3QkExXFx1N0MyMVxcdTdERTlcXHU3RjM2XFx1N0ZGMFxcdTgwOURcXHU4MjY2XFx1ODM5RVxcdTg5QjNcXHU4QUNDXFx1OENBQlxcdTkwODRcXHU5NDUxXFx1OTU5M1xcdTk1OTFcXHU5NUEyXFx1OTY2NVxcdTk3RDNcXHU5OTI4XFx1ODIxOFxcdTRFMzhcXHU1NDJCXFx1NUNCOFxcdTVEQ0NcXHU3M0E5XFx1NzY0Q1xcdTc3M0NcXHU1Q0E5XFx1N0ZFQlxcdThEMEJcXHU5NkMxXFx1OTgxMVxcdTk4NTRcXHU5ODU4XFx1NEYwMVxcdTRGMEVcXHU1MzcxXFx1NTU5Q1xcdTU2NjhcXHU1N0ZBXFx1NTk0N1xcdTVCMDlcXHU1QkM0XFx1NUM5MFxcdTVFMENcXHU1RTdFXFx1NUZDQ1xcdTYzRUVcXHU2NzNBXFx1NjVEN1xcdTY1RTJcXHU2NzFGXFx1NjhDQlxcdTY4QzRcIl0sXG4gICAgICBbXCJiNWExXCIsIFwiXFx1NkE1RlxcdTVFMzBcXHU2QkM1XFx1NkMxN1xcdTZDN0RcXHU3NTdGXFx1Nzk0OFxcdTVCNjNcXHU3QTAwXFx1N0QwMFxcdTVGQkRcXHU4OThGXFx1OEExOFxcdThDQjRcXHU4RDc3XFx1OEVDQ1xcdThGMURcXHU5OEUyXFx1OUEwRVxcdTlCM0NcXHU0RTgwXFx1NTA3RFxcdTUxMDBcXHU1OTkzXFx1NUI5Q1xcdTYyMkZcXHU2MjgwXFx1NjRFQ1xcdTZCM0FcXHU3MkEwXFx1NzU5MVxcdTc5NDdcXHU3RkE5XFx1ODdGQlxcdThBQkNcXHU4QjcwXFx1NjNBQ1xcdTgzQ0FcXHU5N0EwXFx1NTQwOVxcdTU0MDNcXHU1NUFCXFx1Njg1NFxcdTZBNThcXHU4QTcwXFx1NzgyN1xcdTY3NzVcXHU5RUNEXFx1NTM3NFxcdTVCQTJcXHU4MTFBXFx1ODY1MFxcdTkwMDZcXHU0RTE4XFx1NEU0NVxcdTRFQzdcXHU0RjExXFx1NTNDQVxcdTU0MzhcXHU1QkFFXFx1NUYxM1xcdTYwMjVcXHU2NTUxXFx1NjczRFxcdTZDNDJcXHU2QzcyXFx1NkNFM1xcdTcwNzhcXHU3NDAzXFx1N0E3NlxcdTdBQUVcXHU3QjA4XFx1N0QxQVxcdTdDRkVcXHU3RDY2XFx1NjVFN1xcdTcyNUJcXHU1M0JCXFx1NUM0NVxcdTVERThcXHU2MkQyXFx1NjJFMFxcdTYzMTlcXHU2RTIwXFx1ODY1QVxcdThBMzFcXHU4REREXFx1OTJGOFxcdTZGMDFcXHU3OUE2XFx1OUI1QVxcdTRFQThcXHU0RUFCXFx1NEVBQ1wiXSxcbiAgICAgIFtcImI2YTFcIiwgXCJcXHU0RjlCXFx1NEZBMFxcdTUwRDFcXHU1MTQ3XFx1N0FGNlxcdTUxNzFcXHU1MUY2XFx1NTM1NFxcdTUzMjFcXHU1MzdGXFx1NTNFQlxcdTU1QUNcXHU1ODgzXFx1NUNFMVxcdTVGMzdcXHU1RjRBXFx1NjAyRlxcdTYwNTBcXHU2MDZEXFx1NjMxRlxcdTY1NTlcXHU2QTRCXFx1NkNDMVxcdTcyQzJcXHU3MkVEXFx1NzdFRlxcdTgwRjhcXHU4MTA1XFx1ODIwOFxcdTg1NEVcXHU5MEY3XFx1OTNFMVxcdTk3RkZcXHU5OTU3XFx1OUE1QVxcdTRFRjBcXHU1MUREXFx1NUMyRFxcdTY2ODFcXHU2OTZEXFx1NUM0MFxcdTY2RjJcXHU2OTc1XFx1NzM4OVxcdTY4NTBcXHU3QzgxXFx1NTBDNVxcdTUyRTRcXHU1NzQ3XFx1NURGRVxcdTkzMjZcXHU2NUE0XFx1NkIyM1xcdTZCM0RcXHU3NDM0XFx1Nzk4MVxcdTc5QkRcXHU3QjRCXFx1N0RDQVxcdTgyQjlcXHU4M0NDXFx1ODg3RlxcdTg5NUZcXHU4QjM5XFx1OEZEMVxcdTkxRDFcXHU1NDFGXFx1OTI4MFxcdTRFNURcXHU1MDM2XFx1NTNFNVxcdTUzM0FcXHU3MkQ3XFx1NzM5NlxcdTc3RTlcXHU4MkU2XFx1OEVBRlxcdTk5QzZcXHU5OUM4XFx1OTlEMlxcdTUxNzdcXHU2MTFBXFx1ODY1RVxcdTU1QjBcXHU3QTdBXFx1NTA3NlxcdTVCRDNcXHU5MDQ3XFx1OTY4NVxcdTRFMzJcXHU2QURCXFx1OTFFN1xcdTVDNTFcXHU1QzQ4XCJdLFxuICAgICAgW1wiYjdhMVwiLCBcIlxcdTYzOThcXHU3QTlGXFx1NkM5M1xcdTk3NzRcXHU4RjYxXFx1N0FBQVxcdTcxOEFcXHU5Njg4XFx1N0M4MlxcdTY4MTdcXHU3RTcwXFx1Njg1MVxcdTkzNkNcXHU1MkYyXFx1NTQxQlxcdTg1QUJcXHU4QTEzXFx1N0ZBNFxcdThFQ0RcXHU5MEUxXFx1NTM2NlxcdTg4ODhcXHU3OTQxXFx1NEZDMlxcdTUwQkVcXHU1MjExXFx1NTE0NFxcdTU1NTNcXHU1NzJEXFx1NzNFQVxcdTU3OEJcXHU1OTUxXFx1NUY2MlxcdTVGODRcXHU2MDc1XFx1NjE3NlxcdTYxNjdcXHU2MUE5XFx1NjNCMlxcdTY0M0FcXHU2NTZDXFx1NjY2RlxcdTY4NDJcXHU2RTEzXFx1NzU2NlxcdTdBM0RcXHU3Q0ZCXFx1N0Q0Q1xcdTdEOTlcXHU3RTRCXFx1N0Y2QlxcdTgzMEVcXHU4MzRBXFx1ODZDRFxcdThBMDhcXHU4QTYzXFx1OEI2NlxcdThFRkRcXHU5ODFBXFx1OUQ4RlxcdTgyQjhcXHU4RkNFXFx1OUJFOFxcdTUyODdcXHU2MjFGXFx1NjQ4M1xcdTZGQzBcXHU5Njk5XFx1Njg0MVxcdTUwOTFcXHU2QjIwXFx1NkM3QVxcdTZGNTRcXHU3QTc0XFx1N0Q1MFxcdTg4NDBcXHU4QTIzXFx1NjcwOFxcdTRFRjZcXHU1MDM5XFx1NTAyNlxcdTUwNjVcXHU1MTdDXFx1NTIzOFxcdTUyNjNcXHU1NUE3XFx1NTcwRlxcdTU4MDVcXHU1QUNDXFx1NUVGQVxcdTYxQjJcXHU2MUY4XFx1NjJGM1xcdTYzNzJcIl0sXG4gICAgICBbXCJiOGExXCIsIFwiXFx1NjkxQ1xcdTZBMjlcXHU3MjdEXFx1NzJBQ1xcdTczMkVcXHU3ODE0XFx1Nzg2RlxcdTdENzlcXHU3NzBDXFx1ODBBOVxcdTg5OEJcXHU4QjE5XFx1OENFMlxcdThFRDJcXHU5MDYzXFx1OTM3NVxcdTk2N0FcXHU5ODU1XFx1OUExM1xcdTlFNzhcXHU1MTQzXFx1NTM5RlxcdTUzQjNcXHU1RTdCXFx1NUYyNlxcdTZFMUJcXHU2RTkwXFx1NzM4NFxcdTczRkVcXHU3RDQzXFx1ODIzN1xcdThBMDBcXHU4QUZBXFx1OTY1MFxcdTRFNEVcXHU1MDBCXFx1NTNFNFxcdTU0N0NcXHU1NkZBXFx1NTlEMVxcdTVCNjRcXHU1REYxXFx1NUVBQlxcdTVGMjdcXHU2MjM4XFx1NjU0NVxcdTY3QUZcXHU2RTU2XFx1NzJEMFxcdTdDQ0FcXHU4OEI0XFx1ODBBMVxcdTgwRTFcXHU4M0YwXFx1ODY0RVxcdThBODdcXHU4REU4XFx1OTIzN1xcdTk2QzdcXHU5ODY3XFx1OUYxM1xcdTRFOTRcXHU0RTkyXFx1NEYwRFxcdTUzNDhcXHU1NDQ5XFx1NTQzRVxcdTVBMkZcXHU1RjhDXFx1NUZBMVxcdTYwOUZcXHU2OEE3XFx1NkE4RVxcdTc0NUFcXHU3ODgxXFx1OEE5RVxcdThBQTRcXHU4Qjc3XFx1OTE5MFxcdTRFNUVcXHU5QkM5XFx1NEVBNFxcdTRGN0NcXHU0RkFGXFx1NTAxOVxcdTUwMTZcXHU1MTQ5XFx1NTE2Q1xcdTUyOUZcXHU1MkI5XFx1NTJGRVxcdTUzOUFcXHU1M0UzXFx1NTQxMVwiXSxcbiAgICAgIFtcImI5YTFcIiwgXCJcXHU1NDBFXFx1NTU4OVxcdTU3NTFcXHU1N0EyXFx1NTk3RFxcdTVCNTRcXHU1QjVEXFx1NUI4RlxcdTVERTVcXHU1REU3XFx1NURGN1xcdTVFNzhcXHU1RTgzXFx1NUU5QVxcdTVFQjdcXHU1RjE4XFx1NjA1MlxcdTYxNENcXHU2Mjk3XFx1NjJEOFxcdTYzQTdcXHU2NTNCXFx1NjYwMlxcdTY2NDNcXHU2NkY0XFx1Njc2RFxcdTY4MjFcXHU2ODk3XFx1NjlDQlxcdTZDNUZcXHU2RDJBXFx1NkQ2OVxcdTZFMkZcXHU2RTlEXFx1NzUzMlxcdTc2ODdcXHU3ODZDXFx1N0EzRlxcdTdDRTBcXHU3RDA1XFx1N0QxOFxcdTdENUVcXHU3REIxXFx1ODAxNVxcdTgwMDNcXHU4MEFGXFx1ODBCMVxcdTgxNTRcXHU4MThGXFx1ODIyQVxcdTgzNTJcXHU4ODRDXFx1ODg2MVxcdThCMUJcXHU4Q0EyXFx1OENGQ1xcdTkwQ0FcXHU5MTc1XFx1OTI3MVxcdTc4M0ZcXHU5MkZDXFx1OTVBNFxcdTk2NERcXHU5ODA1XFx1OTk5OVxcdTlBRDhcXHU5RDNCXFx1NTI1QlxcdTUyQUJcXHU1M0Y3XFx1NTQwOFxcdTU4RDVcXHU2MkY3XFx1NkZFMFxcdThDNkFcXHU4RjVGXFx1OUVCOVxcdTUxNEJcXHU1MjNCXFx1NTQ0QVxcdTU2RkRcXHU3QTQwXFx1OTE3N1xcdTlENjBcXHU5RUQyXFx1NzM0NFxcdTZGMDlcXHU4MTcwXFx1NzUxMVxcdTVGRkRcXHU2MERBXFx1OUFBOFxcdTcyREJcXHU4RkJDXCJdLFxuICAgICAgW1wiYmFhMVwiLCBcIlxcdTZCNjRcXHU5ODAzXFx1NEVDQVxcdTU2RjBcXHU1NzY0XFx1NThCRVxcdTVBNUFcXHU2MDY4XFx1NjFDN1xcdTY2MEZcXHU2NjA2XFx1NjgzOVxcdTY4QjFcXHU2REY3XFx1NzVENVxcdTdEM0FcXHU4MjZFXFx1OUI0MlxcdTRFOUJcXHU0RjUwXFx1NTNDOVxcdTU1MDZcXHU1RDZGXFx1NURFNlxcdTVERUVcXHU2N0ZCXFx1NkM5OVxcdTc0NzNcXHU3ODAyXFx1OEE1MFxcdTkzOTZcXHU4OERGXFx1NTc1MFxcdTVFQTdcXHU2MzJCXFx1NTBCNVxcdTUwQUNcXHU1MThEXFx1NjcwMFxcdTU0QzlcXHU1ODVFXFx1NTlCQlxcdTVCQjBcXHU1RjY5XFx1NjI0RFxcdTYzQTFcXHU2ODNEXFx1NkI3M1xcdTZFMDhcXHU3MDdEXFx1OTFDN1xcdTcyODBcXHU3ODE1XFx1NzgyNlxcdTc5NkRcXHU2NThFXFx1N0QzMFxcdTgzRENcXHU4OEMxXFx1OEYwOVxcdTk2OUJcXHU1MjY0XFx1NTcyOFxcdTY3NTBcXHU3RjZBXFx1OENBMVxcdTUxQjRcXHU1NzQyXFx1OTYyQVxcdTU4M0FcXHU2OThBXFx1ODBCNFxcdTU0QjJcXHU1RDBFXFx1NTdGQ1xcdTc4OTVcXHU5REZBXFx1NEY1Q1xcdTUyNEFcXHU1NDhCXFx1NjQzRVxcdTY2MjhcXHU2NzE0XFx1NjdGNVxcdTdBODRcXHU3QjU2XFx1N0QyMlxcdTkzMkZcXHU2ODVDXFx1OUJBRFxcdTdCMzlcXHU1MzE5XFx1NTE4QVxcdTUyMzdcIl0sXG4gICAgICBbXCJiYmExXCIsIFwiXFx1NUJERlxcdTYyRjZcXHU2NEFFXFx1NjRFNlxcdTY3MkRcXHU2QkJBXFx1ODVBOVxcdTk2RDFcXHU3NjkwXFx1OUJENlxcdTYzNENcXHU5MzA2XFx1OUJBQlxcdTc2QkZcXHU2NjUyXFx1NEUwOVxcdTUwOThcXHU1M0MyXFx1NUM3MVxcdTYwRThcXHU2NDkyXFx1NjU2M1xcdTY4NUZcXHU3MUU2XFx1NzNDQVxcdTc1MjNcXHU3Qjk3XFx1N0U4MlxcdTg2OTVcXHU4QjgzXFx1OENEQlxcdTkxNzhcXHU5OTEwXFx1NjVBQ1xcdTY2QUJcXHU2QjhCXFx1NEVENVxcdTRFRDRcXHU0RjNBXFx1NEY3RlxcdTUyM0FcXHU1M0Y4XFx1NTNGMlxcdTU1RTNcXHU1NkRCXFx1NThFQlxcdTU5Q0JcXHU1OUM5XFx1NTlGRlxcdTVCNTBcXHU1QzREXFx1NUUwMlxcdTVFMkJcXHU1RkQ3XFx1NjAxRFxcdTYzMDdcXHU2NTJGXFx1NUI1Q1xcdTY1QUZcXHU2NUJEXFx1NjVFOFxcdTY3OURcXHU2QjYyXFx1NkI3QlxcdTZDMEZcXHU3MzQ1XFx1Nzk0OVxcdTc5QzFcXHU3Q0Y4XFx1N0QxOVxcdTdEMkJcXHU4MEEyXFx1ODEwMlxcdTgxRjNcXHU4OTk2XFx1OEE1RVxcdThBNjlcXHU4QTY2XFx1OEE4Q1xcdThBRUVcXHU4Q0M3XFx1OENEQ1xcdTk2Q0NcXHU5OEZDXFx1NkI2RlxcdTRFOEJcXHU0RjNDXFx1NEY4RFxcdTUxNTBcXHU1QjU3XFx1NUJGQVxcdTYxNDhcXHU2MzAxXFx1NjY0MlwiXSxcbiAgICAgIFtcImJjYTFcIiwgXCJcXHU2QjIxXFx1NkVDQlxcdTZDQkJcXHU3MjNFXFx1NzRCRFxcdTc1RDRcXHU3OEMxXFx1NzkzQVxcdTgwMENcXHU4MDMzXFx1ODFFQVxcdTg0OTRcXHU4RjlFXFx1NkM1MFxcdTlFN0ZcXHU1RjBGXFx1OEI1OFxcdTlEMkJcXHU3QUZBXFx1OEVGOFxcdTVCOERcXHU5NkVCXFx1NEUwM1xcdTUzRjFcXHU1N0Y3XFx1NTkzMVxcdTVBQzlcXHU1QkE0XFx1NjA4OVxcdTZFN0ZcXHU2RjA2XFx1NzVCRVxcdThDRUFcXHU1QjlGXFx1ODUwMFxcdTdCRTBcXHU1MDcyXFx1NjdGNFxcdTgyOURcXHU1QzYxXFx1ODU0QVxcdTdFMUVcXHU4MjBFXFx1NTE5OVxcdTVDMDRcXHU2MzY4XFx1OEQ2NlxcdTY1OUNcXHU3MTZFXFx1NzkzRVxcdTdEMTdcXHU4MDA1XFx1OEIxRFxcdThFQ0FcXHU5MDZFXFx1ODZDN1xcdTkwQUFcXHU1MDFGXFx1NTJGQVxcdTVDM0FcXHU2NzUzXFx1NzA3Q1xcdTcyMzVcXHU5MTRDXFx1OTFDOFxcdTkzMkJcXHU4MkU1XFx1NUJDMlxcdTVGMzFcXHU2MEY5XFx1NEUzQlxcdTUzRDZcXHU1Qjg4XFx1NjI0QlxcdTY3MzFcXHU2QjhBXFx1NzJFOVxcdTczRTBcXHU3QTJFXFx1ODE2QlxcdThEQTNcXHU5MTUyXFx1OTk5NlxcdTUxMTJcXHU1M0Q3XFx1NTQ2QVxcdTVCRkZcXHU2Mzg4XFx1NkEzOVxcdTdEQUNcXHU5NzAwXFx1NTZEQVxcdTUzQ0VcXHU1NDY4XCJdLFxuICAgICAgW1wiYmRhMVwiLCBcIlxcdTVCOTdcXHU1QzMxXFx1NURERVxcdTRGRUVcXHU2MTAxXFx1NjJGRVxcdTZEMzJcXHU3OUMwXFx1NzlDQlxcdTdENDJcXHU3RTREXFx1N0ZEMlxcdTgxRURcXHU4MjFGXFx1ODQ5MFxcdTg4NDZcXHU4OTcyXFx1OEI5MFxcdThFNzRcXHU4RjJGXFx1OTAzMVxcdTkxNEJcXHU5MTZDXFx1OTZDNlxcdTkxOUNcXHU0RUMwXFx1NEY0RlxcdTUxNDVcXHU1MzQxXFx1NUY5M1xcdTYyMEVcXHU2N0Q0XFx1NkM0MVxcdTZFMEJcXHU3MzYzXFx1N0UyNlxcdTkxQ0RcXHU5MjgzXFx1NTNENFxcdTU5MTlcXHU1QkJGXFx1NkREMVxcdTc5NURcXHU3RTJFXFx1N0M5QlxcdTU4N0VcXHU3MTlGXFx1NTFGQVxcdTg4NTNcXHU4RkYwXFx1NEZDQVxcdTVDRkJcXHU2NjI1XFx1NzdBQ1xcdTdBRTNcXHU4MjFDXFx1OTlGRlxcdTUxQzZcXHU1RkFBXFx1NjVFQ1xcdTY5NkZcXHU2Qjg5XFx1NkRGM1xcdTZFOTZcXHU2RjY0XFx1NzZGRVxcdTdEMTRcXHU1REUxXFx1OTA3NVxcdTkxODdcXHU5ODA2XFx1NTFFNlxcdTUyMURcXHU2MjQwXFx1NjY5MVxcdTY2RDlcXHU2RTFBXFx1NUVCNlxcdTdERDJcXHU3RjcyXFx1NjZGOFxcdTg1QUZcXHU4NUY3XFx1OEFGOFxcdTUyQTlcXHU1M0Q5XFx1NTk3M1xcdTVFOEZcXHU1RjkwXFx1NjA1NVxcdTkyRTRcXHU5NjY0XFx1NTBCN1xcdTUxMUZcIl0sXG4gICAgICBbXCJiZWExXCIsIFwiXFx1NTJERFxcdTUzMjBcXHU1MzQ3XFx1NTNFQ1xcdTU0RThcXHU1NTQ2XFx1NTUzMVxcdTU2MTdcXHU1OTY4XFx1NTlCRVxcdTVBM0NcXHU1QkI1XFx1NUMwNlxcdTVDMEZcXHU1QzExXFx1NUMxQVxcdTVFODRcXHU1RThBXFx1NUVFMFxcdTVGNzBcXHU2MjdGXFx1NjI4NFxcdTYyREJcXHU2MzhDXFx1NjM3N1xcdTY2MDdcXHU2NjBDXFx1NjYyRFxcdTY2NzZcXHU2NzdFXFx1NjhBMlxcdTZBMUZcXHU2QTM1XFx1NkNCQ1xcdTZEODhcXHU2RTA5XFx1NkU1OFxcdTcxM0NcXHU3MTI2XFx1NzE2N1xcdTc1QzdcXHU3NzAxXFx1Nzg1RFxcdTc5MDFcXHU3OTY1XFx1NzlGMFxcdTdBRTBcXHU3QjExXFx1N0NBN1xcdTdEMzlcXHU4MDk2XFx1ODNENlxcdTg0OEJcXHU4NTQ5XFx1ODg1RFxcdTg4RjNcXHU4QTFGXFx1OEEzQ1xcdThBNTRcXHU4QTczXFx1OEM2MVxcdThDREVcXHU5MUE0XFx1OTI2NlxcdTkzN0VcXHU5NDE4XFx1OTY5Q1xcdTk3OThcXHU0RTBBXFx1NEUwOFxcdTRFMUVcXHU0RTU3XFx1NTE5N1xcdTUyNzBcXHU1N0NFXFx1NTgzNFxcdTU4Q0NcXHU1QjIyXFx1NUUzOFxcdTYwQzVcXHU2NEZFXFx1Njc2MVxcdTY3NTZcXHU2RDQ0XFx1NzJCNlxcdTc1NzNcXHU3QTYzXFx1ODRCOFxcdThCNzJcXHU5MUI4XFx1OTMyMFxcdTU2MzFcXHU1N0Y0XFx1OThGRVwiXSxcbiAgICAgIFtcImJmYTFcIiwgXCJcXHU2MkVEXFx1NjkwRFxcdTZCOTZcXHU3MUVEXFx1N0U1NFxcdTgwNzdcXHU4MjcyXFx1ODlFNlxcdTk4REZcXHU4NzU1XFx1OEZCMVxcdTVDM0JcXHU0RjM4XFx1NEZFMVxcdTRGQjVcXHU1NTA3XFx1NUEyMFxcdTVCRERcXHU1QkU5XFx1NUZDM1xcdTYxNEVcXHU2MzJGXFx1NjVCMFxcdTY2NEJcXHU2OEVFXFx1Njk5QlxcdTZENzhcXHU2REYxXFx1NzUzM1xcdTc1QjlcXHU3NzFGXFx1Nzk1RVxcdTc5RTZcXHU3RDMzXFx1ODFFM1xcdTgyQUZcXHU4NUFBXFx1ODlBQVxcdThBM0FcXHU4RUFCXFx1OEY5QlxcdTkwMzJcXHU5MUREXFx1OTcwN1xcdTRFQkFcXHU0RUMxXFx1NTIwM1xcdTU4NzVcXHU1OEVDXFx1NUMwQlxcdTc1MUFcXHU1QzNEXFx1ODE0RVxcdThBMEFcXHU4RkM1XFx1OTY2M1xcdTk3NkRcXHU3QjI1XFx1OEFDRlxcdTk4MDhcXHU5MTYyXFx1NTZGM1xcdTUzQThcXHU5MDE3XFx1NTQzOVxcdTU3ODJcXHU1RTI1XFx1NjNBOFxcdTZDMzRcXHU3MDhBXFx1Nzc2MVxcdTdDOEJcXHU3RkUwXFx1ODg3MFxcdTkwNDJcXHU5MTU0XFx1OTMxMFxcdTkzMThcXHU5NjhGXFx1NzQ1RVxcdTlBQzRcXHU1RDA3XFx1NUQ2OVxcdTY1NzBcXHU2N0EyXFx1OERBOFxcdTk2REJcXHU2MzZFXFx1Njc0OVxcdTY5MTlcXHU4M0M1XFx1OTgxN1xcdTk2QzBcXHU4OEZFXCJdLFxuICAgICAgW1wiYzBhMVwiLCBcIlxcdTZGODRcXHU2NDdBXFx1NUJGOFxcdTRFMTZcXHU3MDJDXFx1NzU1RFxcdTY2MkZcXHU1MUM0XFx1NTIzNlxcdTUyRTJcXHU1OUQzXFx1NUY4MVxcdTYwMjdcXHU2MjEwXFx1NjUzRlxcdTY1NzRcXHU2NjFGXFx1NjY3NFxcdTY4RjJcXHU2ODE2XFx1NkI2M1xcdTZFMDVcXHU3MjcyXFx1NzUxRlxcdTc2REJcXHU3Q0JFXFx1ODA1NlxcdTU4RjBcXHU4OEZEXFx1ODk3RlxcdThBQTBcXHU4QTkzXFx1OEFDQlxcdTkwMURcXHU5MTkyXFx1OTc1MlxcdTk3NTlcXHU2NTg5XFx1N0EwRVxcdTgxMDZcXHU5NkJCXFx1NUUyRFxcdTYwRENcXHU2MjFBXFx1NjVBNVxcdTY2MTRcXHU2NzkwXFx1NzdGM1xcdTdBNERcXHU3QzREXFx1N0UzRVxcdTgxMEFcXHU4Q0FDXFx1OEQ2NFxcdThERTFcXHU4RTVGXFx1NzhBOVxcdTUyMDdcXHU2MkQ5XFx1NjNBNVxcdTY0NDJcXHU2Mjk4XFx1OEEyRFxcdTdBODNcXHU3QkMwXFx1OEFBQ1xcdTk2RUFcXHU3RDc2XFx1ODIwQ1xcdTg3NDlcXHU0RUQ5XFx1NTE0OFxcdTUzNDNcXHU1MzYwXFx1NUJBM1xcdTVDMDJcXHU1QzE2XFx1NURERFxcdTYyMjZcXHU2MjQ3XFx1NjRCMFxcdTY4MTNcXHU2ODM0XFx1NkNDOVxcdTZENDVcXHU2RDE3XFx1NjdEM1xcdTZGNUNcXHU3MTRFXFx1NzE3RFxcdTY1Q0JcXHU3QTdGXFx1N0JBRFxcdTdEREFcIl0sXG4gICAgICBbXCJjMWExXCIsIFwiXFx1N0U0QVxcdTdGQThcXHU4MTdBXFx1ODIxQlxcdTgyMzlcXHU4NUE2XFx1OEE2RVxcdThDQ0VcXHU4REY1XFx1OTA3OFxcdTkwNzdcXHU5MkFEXFx1OTI5MVxcdTk1ODNcXHU5QkFFXFx1NTI0RFxcdTU1ODRcXHU2RjM4XFx1NzEzNlxcdTUxNjhcXHU3OTg1XFx1N0U1NVxcdTgxQjNcXHU3Q0NFXFx1NTY0Q1xcdTU4NTFcXHU1Q0E4XFx1NjNBQVxcdTY2RkVcXHU2NkZEXFx1Njk1QVxcdTcyRDlcXHU3NThGXFx1NzU4RVxcdTc5MEVcXHU3OTU2XFx1NzlERlxcdTdDOTdcXHU3RDIwXFx1N0Q0NFxcdTg2MDdcXHU4QTM0XFx1OTYzQlxcdTkwNjFcXHU5RjIwXFx1NTBFN1xcdTUyNzVcXHU1M0NDXFx1NTNFMlxcdTUwMDlcXHU1NUFBXFx1NThFRVxcdTU5NEZcXHU3MjNEXFx1NUI4QlxcdTVDNjRcXHU1MzFEXFx1NjBFM1xcdTYwRjNcXHU2MzVDXFx1NjM4M1xcdTYzM0ZcXHU2M0JCXFx1NjRDRFxcdTY1RTlcXHU2NkY5XFx1NURFM1xcdTY5Q0RcXHU2OUZEXFx1NkYxNVxcdTcxRTVcXHU0RTg5XFx1NzVFOVxcdTc2RjhcXHU3QTkzXFx1N0NERlxcdTdEQ0ZcXHU3RDlDXFx1ODA2MVxcdTgzNDlcXHU4MzU4XFx1ODQ2Q1xcdTg0QkNcXHU4NUZCXFx1ODhDNVxcdThENzBcXHU5MDAxXFx1OTA2RFxcdTkzOTdcXHU5NzFDXFx1OUExMlxcdTUwQ0ZcXHU1ODk3XFx1NjE4RVwiXSxcbiAgICAgIFtcImMyYTFcIiwgXCJcXHU4MUQzXFx1ODUzNVxcdThEMDhcXHU5MDIwXFx1NEZDM1xcdTUwNzRcXHU1MjQ3XFx1NTM3M1xcdTYwNkZcXHU2MzQ5XFx1Njc1RlxcdTZFMkNcXHU4REIzXFx1OTAxRlxcdTRGRDdcXHU1QzVFXFx1OENDQVxcdTY1Q0ZcXHU3RDlBXFx1NTM1MlxcdTg4OTZcXHU1MTc2XFx1NjNDM1xcdTVCNThcXHU1QjZCXFx1NUMwQVxcdTY0MERcXHU2NzUxXFx1OTA1Q1xcdTRFRDZcXHU1OTFBXFx1NTkyQVxcdTZDNzBcXHU4QTUxXFx1NTUzRVxcdTU4MTVcXHU1OUE1XFx1NjBGMFxcdTYyNTNcXHU2N0MxXFx1ODIzNVxcdTY5NTVcXHU5NjQwXFx1OTlDNFxcdTlBMjhcXHU0RjUzXFx1NTgwNlxcdTVCRkVcXHU4MDEwXFx1NUNCMVxcdTVFMkZcXHU1Rjg1XFx1NjAyMFxcdTYxNEJcXHU2MjM0XFx1NjZGRlxcdTZDRjBcXHU2RURFXFx1ODBDRVxcdTgxN0ZcXHU4MkQ0XFx1ODg4QlxcdThDQjhcXHU5MDAwXFx1OTAyRVxcdTk2OEFcXHU5RURCXFx1OUJEQlxcdTRFRTNcXHU1M0YwXFx1NTkyN1xcdTdCMkNcXHU5MThEXFx1OTg0Q1xcdTlERjlcXHU2RUREXFx1NzAyN1xcdTUzNTNcXHU1NTQ0XFx1NUI4NVxcdTYyNThcXHU2MjlFXFx1NjJEM1xcdTZDQTJcXHU2RkVGXFx1NzQyMlxcdThBMTdcXHU5NDM4XFx1NkZDMVxcdThBRkVcXHU4MzM4XFx1NTFFN1xcdTg2RjhcXHU1M0VBXCJdLFxuICAgICAgW1wiYzNhMVwiLCBcIlxcdTUzRTlcXHU0RjQ2XFx1OTA1NFxcdThGQjBcXHU1OTZBXFx1ODEzMVxcdTVERkRcXHU3QUVBXFx1OEZCRlxcdTY4REFcXHU4QzM3XFx1NzJGOFxcdTlDNDhcXHU2QTNEXFx1OEFCMFxcdTRFMzlcXHU1MzU4XFx1NTYwNlxcdTU3NjZcXHU2MkM1XFx1NjNBMlxcdTY1RTZcXHU2QjRFXFx1NkRFMVxcdTZFNUJcXHU3MEFEXFx1NzdFRFxcdTdBRUZcXHU3QkFBXFx1N0RCQlxcdTgwM0RcXHU4MEM2XFx1ODZDQlxcdThBOTVcXHU5MzVCXFx1NTZFM1xcdTU4QzdcXHU1RjNFXFx1NjVBRFxcdTY2OTZcXHU2QTgwXFx1NkJCNVxcdTc1MzdcXHU4QUM3XFx1NTAyNFxcdTc3RTVcXHU1NzMwXFx1NUYxQlxcdTYwNjVcXHU2NjdBXFx1NkM2MFxcdTc1RjRcXHU3QTFBXFx1N0Y2RVxcdTgxRjRcXHU4NzE4XFx1OTA0NVxcdTk5QjNcXHU3QkM5XFx1NzU1Q1xcdTdBRjlcXHU3QjUxXFx1ODRDNFxcdTkwMTBcXHU3OUU5XFx1N0E5MlxcdTgzMzZcXHU1QUUxXFx1Nzc0MFxcdTRFMkRcXHU0RUYyXFx1NUI5OVxcdTVGRTBcXHU2MkJEXFx1NjYzQ1xcdTY3RjFcXHU2Q0U4XFx1ODY2QlxcdTg4NzdcXHU4QTNCXFx1OTE0RVxcdTkyRjNcXHU5OUQwXFx1NkExN1xcdTcwMjZcXHU3MzJBXFx1ODJFN1xcdTg0NTdcXHU4Q0FGXFx1NEUwMVxcdTUxNDZcXHU1MUNCXFx1NTU4QlxcdTVCRjVcIl0sXG4gICAgICBbXCJjNGExXCIsIFwiXFx1NUUxNlxcdTVFMzNcXHU1RTgxXFx1NUYxNFxcdTVGMzVcXHU1RjZCXFx1NUZCNFxcdTYxRjJcXHU2MzExXFx1NjZBMlxcdTY3MURcXHU2RjZFXFx1NzI1MlxcdTc1M0FcXHU3NzNBXFx1ODA3NFxcdTgxMzlcXHU4MTc4XFx1ODc3NlxcdThBQkZcXHU4QURDXFx1OEQ4NVxcdThERjNcXHU5MjlBXFx1OTU3N1xcdTk4MDJcXHU5Q0U1XFx1NTJDNVxcdTYzNTdcXHU3NkY0XFx1NjcxNVxcdTZDODhcXHU3M0NEXFx1OENDM1xcdTkzQUVcXHU5NjczXFx1NkQyNVxcdTU4OUNcXHU2OTBFXFx1NjlDQ1xcdThGRkRcXHU5MzlBXFx1NzVEQlxcdTkwMUFcXHU1ODVBXFx1NjgwMlxcdTYzQjRcXHU2OUZCXFx1NEY0M1xcdTZGMkNcXHU2N0Q4XFx1OEZCQlxcdTg1MjZcXHU3REI0XFx1OTM1NFxcdTY5M0ZcXHU2RjcwXFx1NTc2QVxcdTU4RjdcXHU1QjJDXFx1N0QyQ1xcdTcyMkFcXHU1NDBBXFx1OTFFM1xcdTlEQjRcXHU0RUFEXFx1NEY0RVxcdTUwNUNcXHU1MDc1XFx1NTI0M1xcdThDOUVcXHU1NDQ4XFx1NTgyNFxcdTVCOUFcXHU1RTFEXFx1NUU5NVxcdTVFQURcXHU1RUY3XFx1NUYxRlxcdTYwOENcXHU2MkI1XFx1NjMzQVxcdTYzRDBcXHU2OEFGXFx1NkM0MFxcdTc4ODdcXHU3OThFXFx1N0EwQlxcdTdERTBcXHU4MjQ3XFx1OEEwMlxcdThBRTZcXHU4RTQ0XFx1OTAxM1wiXSxcbiAgICAgIFtcImM1YTFcIiwgXCJcXHU5MEI4XFx1OTEyRFxcdTkxRDhcXHU5RjBFXFx1NkNFNVxcdTY0NThcXHU2NEUyXFx1NjU3NVxcdTZFRjRcXHU3Njg0XFx1N0IxQlxcdTkwNjlcXHU5M0QxXFx1NkVCQVxcdTU0RjJcXHU1RkI5XFx1NjRBNFxcdThGNERcXHU4RkVEXFx1OTI0NFxcdTUxNzhcXHU1ODZCXFx1NTkyOVxcdTVDNTVcXHU1RTk3XFx1NkRGQlxcdTdFOEZcXHU3NTFDXFx1OENCQ1xcdThFRTJcXHU5ODVCXFx1NzBCOVxcdTRGMURcXHU2QkJGXFx1NkZCMVxcdTc1MzBcXHU5NkZCXFx1NTE0RVxcdTU0MTBcXHU1ODM1XFx1NTg1N1xcdTU5QUNcXHU1QzYwXFx1NUY5MlxcdTY1OTdcXHU2NzVDXFx1NkUyMVxcdTc2N0JcXHU4M0RGXFx1OENFRFxcdTkwMTRcXHU5MEZEXFx1OTM0RFxcdTc4MjVcXHU3ODNBXFx1NTJBQVxcdTVFQTZcXHU1NzFGXFx1NTk3NFxcdTYwMTJcXHU1MDEyXFx1NTE1QVxcdTUxQUNcXHU1MUNEXFx1NTIwMFxcdTU1MTBcXHU1ODU0XFx1NTg1OFxcdTU5NTdcXHU1Qjk1XFx1NUNGNlxcdTVEOEJcXHU2MEJDXFx1NjI5NVxcdTY0MkRcXHU2NzcxXFx1Njg0M1xcdTY4QkNcXHU2OERGXFx1NzZEN1xcdTZERDhcXHU2RTZGXFx1NkQ5QlxcdTcwNkZcXHU3MUM4XFx1NUY1M1xcdTc1RDhcXHU3OTc3XFx1N0I0OVxcdTdCNTRcXHU3QjUyXFx1N0NENlxcdTdENzFcXHU1MjMwXCJdLFxuICAgICAgW1wiYzZhMVwiLCBcIlxcdTg0NjNcXHU4NTY5XFx1ODVFNFxcdThBMEVcXHU4QjA0XFx1OEM0NlxcdThFMEZcXHU5MDAzXFx1OTAwRlxcdTk0MTlcXHU5Njc2XFx1OTgyRFxcdTlBMzBcXHU5NUQ4XFx1NTBDRFxcdTUyRDVcXHU1NDBDXFx1NTgwMlxcdTVDMEVcXHU2MUE3XFx1NjQ5RVxcdTZEMUVcXHU3N0IzXFx1N0FFNVxcdTgwRjRcXHU4NDA0XFx1OTA1M1xcdTkyODVcXHU1Q0UwXFx1OUQwN1xcdTUzM0ZcXHU1Rjk3XFx1NUZCM1xcdTZEOUNcXHU3Mjc5XFx1Nzc2M1xcdTc5QkZcXHU3QkU0XFx1NkJEMlxcdTcyRUNcXHU4QUFEXFx1NjgwM1xcdTZBNjFcXHU1MUY4XFx1N0E4MVxcdTY5MzRcXHU1QzRBXFx1OUNGNlxcdTgyRUJcXHU1QkM1XFx1OTE0OVxcdTcwMUVcXHU1Njc4XFx1NUM2RlxcdTYwQzdcXHU2NTY2XFx1NkM4Q1xcdThDNUFcXHU5MDQxXFx1OTgxM1xcdTU0NTFcXHU2NkM3XFx1OTIwRFxcdTU5NDhcXHU5MEEzXFx1NTE4NVxcdTRFNERcXHU1MUVBXFx1ODU5OVxcdThCMEVcXHU3MDU4XFx1NjM3QVxcdTkzNEJcXHU2OTYyXFx1OTlCNFxcdTdFMDRcXHU3NTc3XFx1NTM1N1xcdTY5NjBcXHU4RURGXFx1OTZFM1xcdTZDNURcXHU0RThDXFx1NUMzQ1xcdTVGMTBcXHU4RkU5XFx1NTMwMlxcdThDRDFcXHU4MDg5XFx1ODY3OVxcdTVFRkZcXHU2NUU1XFx1NEU3M1xcdTUxNjVcIl0sXG4gICAgICBbXCJjN2ExXCIsIFwiXFx1NTk4MlxcdTVDM0ZcXHU5N0VFXFx1NEVGQlxcdTU5OEFcXHU1RkNEXFx1OEE4RFxcdTZGRTFcXHU3OUIwXFx1Nzk2MlxcdTVCRTdcXHU4NDcxXFx1NzMyQlxcdTcxQjFcXHU1RTc0XFx1NUZGNVxcdTYzN0JcXHU2NDlBXFx1NzFDM1xcdTdDOThcXHU0RTQzXFx1NUVGQ1xcdTRFNEJcXHU1N0RDXFx1NTZBMlxcdTYwQTlcXHU2RkMzXFx1N0QwRFxcdTgwRkRcXHU4MTMzXFx1ODFCRlxcdThGQjJcXHU4OTk3XFx1ODZBNFxcdTVERjRcXHU2MjhBXFx1NjRBRFxcdTg5ODdcXHU2Nzc3XFx1NkNFMlxcdTZEM0VcXHU3NDM2XFx1NzgzNFxcdTVBNDZcXHU3Rjc1XFx1ODJBRFxcdTk5QUNcXHU0RkYzXFx1NUVDM1xcdTYyRERcXHU2MzkyXFx1NjU1N1xcdTY3NkZcXHU3NkMzXFx1NzI0Q1xcdTgwQ0NcXHU4MEJBXFx1OEYyOVxcdTkxNERcXHU1MDBEXFx1NTdGOVxcdTVBOTJcXHU2ODg1XFx1Njk3M1xcdTcxNjRcXHU3MkZEXFx1OENCN1xcdTU4RjJcXHU4Q0UwXFx1OTY2QVxcdTkwMTlcXHU4NzdGXFx1NzlFNFxcdTc3RTdcXHU4NDI5XFx1NEYyRlxcdTUyNjVcXHU1MzVBXFx1NjJDRFxcdTY3Q0ZcXHU2Q0NBXFx1NzY3RFxcdTdCOTRcXHU3Qzk1XFx1ODIzNlxcdTg1ODRcXHU4RkVCXFx1NjZERFxcdTZGMjBcXHU3MjA2XFx1N0UxQlxcdTgzQUJcXHU5OUMxXFx1OUVBNlwiXSxcbiAgICAgIFtcImM4YTFcIiwgXCJcXHU1MUZEXFx1N0JCMVxcdTc4NzJcXHU3QkI4XFx1ODA4N1xcdTdCNDhcXHU2QUU4XFx1NUU2MVxcdTgwOENcXHU3NTUxXFx1NzU2MFxcdTUxNkJcXHU5MjYyXFx1NkU4Q1xcdTc2N0FcXHU5MTk3XFx1OUFFQVxcdTRGMTBcXHU3RjcwXFx1NjI5Q1xcdTdCNEZcXHU5NUE1XFx1OUNFOVxcdTU2N0FcXHU1ODU5XFx1ODZFNFxcdTk2QkNcXHU0RjM0XFx1NTIyNFxcdTUzNEFcXHU1M0NEXFx1NTNEQlxcdTVFMDZcXHU2NDJDXFx1NjU5MVxcdTY3N0ZcXHU2QzNFXFx1NkM0RVxcdTcyNDhcXHU3MkFGXFx1NzNFRFxcdTc1NTRcXHU3RTQxXFx1ODIyQ1xcdTg1RTlcXHU4Q0E5XFx1N0JDNFxcdTkxQzZcXHU3MTY5XFx1OTgxMlxcdTk4RUZcXHU2MzNEXFx1NjY2OVxcdTc1NkFcXHU3NkU0XFx1NzhEMFxcdTg1NDNcXHU4NkVFXFx1NTMyQVxcdTUzNTFcXHU1NDI2XFx1NTk4M1xcdTVFODdcXHU1RjdDXFx1NjBCMlxcdTYyNDlcXHU2Mjc5XFx1NjJBQlxcdTY1OTBcXHU2QkQ0XFx1NkNDQ1xcdTc1QjJcXHU3NkFFXFx1Nzg5MVxcdTc5RDhcXHU3RENCXFx1N0Y3N1xcdTgwQTVcXHU4OEFCXFx1OEFCOVxcdThDQkJcXHU5MDdGXFx1OTc1RVxcdTk4REJcXHU2QTBCXFx1N0MzOFxcdTUwOTlcXHU1QzNFXFx1NUZBRVxcdTY3ODdcXHU2QkQ4XFx1NzQzNVxcdTc3MDlcXHU3RjhFXCJdLFxuICAgICAgW1wiYzlhMVwiLCBcIlxcdTlGM0JcXHU2N0NBXFx1N0ExN1xcdTUzMzlcXHU3NThCXFx1OUFFRFxcdTVGNjZcXHU4MTlEXFx1ODNGMVxcdTgwOThcXHU1RjNDXFx1NUZDNVxcdTc1NjJcXHU3QjQ2XFx1OTAzQ1xcdTY4NjdcXHU1OUVCXFx1NUE5QlxcdTdEMTBcXHU3NjdFXFx1OEIyQ1xcdTRGRjVcXHU1RjZBXFx1NkExOVxcdTZDMzdcXHU2RjAyXFx1NzRFMlxcdTc5NjhcXHU4ODY4XFx1OEE1NVxcdThDNzlcXHU1RURGXFx1NjNDRlxcdTc1QzVcXHU3OUQyXFx1ODJEN1xcdTkzMjhcXHU5MkYyXFx1ODQ5Q1xcdTg2RURcXHU5QzJEXFx1NTRDMVxcdTVGNkNcXHU2NThDXFx1NkQ1Q1xcdTcwMTVcXHU4Q0E3XFx1OENEM1xcdTk4M0JcXHU2NTRGXFx1NzRGNlxcdTRFMERcXHU0RUQ4XFx1NTdFMFxcdTU5MkJcXHU1QTY2XFx1NUJDQ1xcdTUxQThcXHU1RTAzXFx1NUU5Q1xcdTYwMTZcXHU2Mjc2XFx1NjU3N1xcdTY1QTdcXHU2NjZFXFx1NkQ2RVxcdTcyMzZcXHU3QjI2XFx1ODE1MFxcdTgxOUFcXHU4Mjk5XFx1OEI1Q1xcdThDQTBcXHU4Q0U2XFx1OEQ3NFxcdTk2MUNcXHU5NjQ0XFx1NEZBRVxcdTY0QUJcXHU2QjY2XFx1ODIxRVxcdTg0NjFcXHU4NTZBXFx1OTBFOFxcdTVDMDFcXHU2OTUzXFx1OThBOFxcdTg0N0FcXHU4NTU3XFx1NEYwRlxcdTUyNkZcXHU1RkE5XFx1NUU0NVxcdTY3MERcIl0sXG4gICAgICBbXCJjYWExXCIsIFwiXFx1Nzk4RlxcdTgxNzlcXHU4OTA3XFx1ODk4NlxcdTZERjVcXHU1RjE3XFx1NjI1NVxcdTZDQjhcXHU0RUNGXFx1NzI2OVxcdTlCOTJcXHU1MjA2XFx1NTQzQlxcdTU2NzRcXHU1OEIzXFx1NjFBNFxcdTYyNkVcXHU3MTFBXFx1NTk2RVxcdTdDODlcXHU3Q0RFXFx1N0QxQlxcdTk2RjBcXHU2NTg3XFx1ODA1RVxcdTRFMTlcXHU0Rjc1XFx1NTE3NVxcdTU4NDBcXHU1RTYzXFx1NUU3M1xcdTVGMEFcXHU2N0M0XFx1NEUyNlxcdTg1M0RcXHU5NTg5XFx1OTY1QlxcdTdDNzNcXHU5ODAxXFx1NTBGQlxcdTU4QzFcXHU3NjU2XFx1NzhBN1xcdTUyMjVcXHU3N0E1XFx1ODUxMVxcdTdCODZcXHU1MDRGXFx1NTkwOVxcdTcyNDdcXHU3QkM3XFx1N0RFOFxcdThGQkFcXHU4RkQ0XFx1OTA0RFxcdTRGQkZcXHU1MkM5XFx1NUEyOVxcdTVGMDFcXHU5N0FEXFx1NEZERFxcdTgyMTdcXHU5MkVBXFx1NTcwM1xcdTYzNTVcXHU2QjY5XFx1NzUyQlxcdTg4RENcXHU4RjE0XFx1N0E0MlxcdTUyREZcXHU1ODkzXFx1NjE1NVxcdTYyMEFcXHU2NkFFXFx1NkJDRFxcdTdDM0ZcXHU4M0U5XFx1NTAyM1xcdTRGRjhcXHU1MzA1XFx1NTQ0NlxcdTU4MzFcXHU1OTQ5XFx1NUI5RFxcdTVDRjBcXHU1Q0VGXFx1NUQyOVxcdTVFOTZcXHU2MkIxXFx1NjM2N1xcdTY1M0VcXHU2NUI5XFx1NjcwQlwiXSxcbiAgICAgIFtcImNiYTFcIiwgXCJcXHU2Q0Q1XFx1NkNFMVxcdTcwRjlcXHU3ODMyXFx1N0UyQlxcdTgwREVcXHU4MkIzXFx1ODQwQ1xcdTg0RUNcXHU4NzAyXFx1ODkxMlxcdThBMkFcXHU4QzRBXFx1OTBBNlxcdTkyRDJcXHU5OEZEXFx1OUNGM1xcdTlENkNcXHU0RTRGXFx1NEVBMVxcdTUwOERcXHU1MjU2XFx1NTc0QVxcdTU5QThcXHU1RTNEXFx1NUZEOFxcdTVGRDlcXHU2MjNGXFx1NjZCNFxcdTY3MUJcXHU2N0QwXFx1NjhEMlxcdTUxOTJcXHU3RDIxXFx1ODBBQVxcdTgxQThcXHU4QjAwXFx1OEM4Q1xcdThDQkZcXHU5MjdFXFx1OTYzMlxcdTU0MjBcXHU5ODJDXFx1NTMxN1xcdTUwRDVcXHU1MzVDXFx1NThBOFxcdTY0QjJcXHU2NzM0XFx1NzI2N1xcdTc3NjZcXHU3QTQ2XFx1OTFFNlxcdTUyQzNcXHU2Q0ExXFx1NkI4NlxcdTU4MDBcXHU1RTRDXFx1NTk1NFxcdTY3MkNcXHU3RkZCXFx1NTFFMVxcdTc2QzZcXHU2NDY5XFx1NzhFOFxcdTlCNTRcXHU5RUJCXFx1NTdDQlxcdTU5QjlcXHU2NjI3XFx1Njc5QVxcdTZCQ0VcXHU1NEU5XFx1NjlEOVxcdTVFNTVcXHU4MTlDXFx1Njc5NVxcdTlCQUFcXHU2N0ZFXFx1OUM1MlxcdTY4NURcXHU0RUE2XFx1NEZFM1xcdTUzQzhcXHU2MkI5XFx1NjcyQlxcdTZDQUJcXHU4RkM0XFx1NEZBRFxcdTdFNkRcXHU5RUJGXFx1NEUwN1xcdTYxNjJcXHU2RTgwXCJdLFxuICAgICAgW1wiY2NhMVwiLCBcIlxcdTZGMkJcXHU4NTEzXFx1NTQ3M1xcdTY3MkFcXHU5QjQ1XFx1NURGM1xcdTdCOTVcXHU1Q0FDXFx1NUJDNlxcdTg3MUNcXHU2RTRBXFx1ODREMVxcdTdBMTRcXHU4MTA4XFx1NTk5OVxcdTdDOERcXHU2QzExXFx1NzcyMFxcdTUyRDlcXHU1OTIyXFx1NzEyMVxcdTcyNUZcXHU3N0RCXFx1OTcyN1xcdTlENjFcXHU2OTBCXFx1NUE3RlxcdTVBMThcXHU1MUE1XFx1NTQwRFxcdTU0N0RcXHU2NjBFXFx1NzZERlxcdThGRjdcXHU5Mjk4XFx1OUNGNFxcdTU5RUFcXHU3MjVEXFx1NkVDNVxcdTUxNERcXHU2OEM5XFx1N0RCRlxcdTdERUNcXHU5NzYyXFx1OUVCQVxcdTY0NzhcXHU2QTIxXFx1ODMwMlxcdTU5ODRcXHU1QjVGXFx1NkJEQlxcdTczMUJcXHU3NkYyXFx1N0RCMlxcdTgwMTdcXHU4NDk5XFx1NTEzMlxcdTY3MjhcXHU5RUQ5XFx1NzZFRVxcdTY3NjJcXHU1MkZGXFx1OTkwNVxcdTVDMjRcXHU2MjNCXFx1N0M3RVxcdThDQjBcXHU1NTRGXFx1NjBCNlxcdTdEMEJcXHU5NTgwXFx1NTMwMVxcdTRFNUZcXHU1MUI2XFx1NTkxQ1xcdTcyM0FcXHU4MDM2XFx1OTFDRVxcdTVGMjVcXHU3N0UyXFx1NTM4NFxcdTVGNzlcXHU3RDA0XFx1ODVBQ1xcdThBMzNcXHU4RThEXFx1OTc1NlxcdTY3RjNcXHU4NUFFXFx1OTQ1M1xcdTYxMDlcXHU2MTA4XFx1NkNCOVxcdTc2NTJcIl0sXG4gICAgICBbXCJjZGExXCIsIFwiXFx1OEFFRFxcdThGMzhcXHU1NTJGXFx1NEY1MVxcdTUxMkFcXHU1MkM3XFx1NTNDQlxcdTVCQTVcXHU1RTdEXFx1NjBBMFxcdTYxODJcXHU2M0Q2XFx1NjcwOVxcdTY3REFcXHU2RTY3XFx1NkQ4Q1xcdTczMzZcXHU3MzM3XFx1NzUzMVxcdTc5NTBcXHU4OEQ1XFx1OEE5OFxcdTkwNEFcXHU5MDkxXFx1OTBGNVxcdTk2QzRcXHU4NzhEXFx1NTkxNVxcdTRFODhcXHU0RjU5XFx1NEUwRVxcdThBODlcXHU4RjNGXFx1OTgxMFxcdTUwQURcXHU1RTdDXFx1NTk5NlxcdTVCQjlcXHU1RUI4XFx1NjNEQVxcdTYzRkFcXHU2NEMxXFx1NjZEQ1xcdTY5NEFcXHU2OUQ4XFx1NkQwQlxcdTZFQjZcXHU3MTk0XFx1NzUyOFxcdTdBQUZcXHU3RjhBXFx1ODAwMFxcdTg0NDlcXHU4NEM5XFx1ODk4MVxcdThCMjFcXHU4RTBBXFx1OTA2NVxcdTk2N0RcXHU5OTBBXFx1NjE3RVxcdTYyOTFcXHU2QjMyXFx1NkM4M1xcdTZENzRcXHU3RkNDXFx1N0ZGQ1xcdTZEQzBcXHU3Rjg1XFx1ODdCQVxcdTg4RjhcXHU2NzY1XFx1ODNCMVxcdTk4M0NcXHU5NkY3XFx1NkQxQlxcdTdENjFcXHU4NDNEXFx1OTE2QVxcdTRFNzFcXHU1Mzc1XFx1NUQ1MFxcdTZCMDRcXHU2RkVCXFx1ODVDRFxcdTg2MkRcXHU4OUE3XFx1NTIyOVxcdTU0MEZcXHU1QzY1XFx1Njc0RVxcdTY4QThcXHU3NDA2XFx1NzQ4M1wiXSxcbiAgICAgIFtcImNlYTFcIiwgXCJcXHU3NUUyXFx1ODhDRlxcdTg4RTFcXHU5MUNDXFx1OTZFMlxcdTk2NzhcXHU1RjhCXFx1NzM4N1xcdTdBQ0JcXHU4NDRFXFx1NjNBMFxcdTc1NjVcXHU1Mjg5XFx1NkQ0MVxcdTZFOUNcXHU3NDA5XFx1NzU1OVxcdTc4NkJcXHU3QzkyXFx1OTY4NlxcdTdBRENcXHU5RjhEXFx1NEZCNlxcdTYxNkVcXHU2NUM1XFx1ODY1Q1xcdTRFODZcXHU0RUFFXFx1NTBEQVxcdTRFMjFcXHU1MUNDXFx1NUJFRVxcdTY1OTlcXHU2ODgxXFx1NkRCQ1xcdTczMUZcXHU3NjQyXFx1NzdBRFxcdTdBMUNcXHU3Q0U3XFx1ODI2RlxcdThBRDJcXHU5MDdDXFx1OTFDRlxcdTk2NzVcXHU5ODE4XFx1NTI5QlxcdTdERDFcXHU1MDJCXFx1NTM5OFxcdTY3OTdcXHU2RENCXFx1NzFEMFxcdTc0MzNcXHU4MUU4XFx1OEYyQVxcdTk2QTNcXHU5QzU3XFx1OUU5RlxcdTc0NjBcXHU1ODQxXFx1NkQ5OVxcdTdEMkZcXHU5ODVFXFx1NEVFNFxcdTRGMzZcXHU0RjhCXFx1NTFCN1xcdTUyQjFcXHU1REJBXFx1NjAxQ1xcdTczQjJcXHU3OTNDXFx1ODJEM1xcdTkyMzRcXHU5NkI3XFx1OTZGNlxcdTk3MEFcXHU5RTk3XFx1OUY2MlxcdTY2QTZcXHU2Qjc0XFx1NTIxN1xcdTUyQTNcXHU3MEM4XFx1ODhDMlxcdTVFQzlcXHU2MDRCXFx1NjE5MFxcdTZGMjNcXHU3MTQ5XFx1N0MzRVxcdTdERjRcXHU4MDZGXCJdLFxuICAgICAgW1wiY2ZhMVwiLCBcIlxcdTg0RUVcXHU5MDIzXFx1OTMyQ1xcdTU0NDJcXHU5QjZGXFx1NkFEM1xcdTcwODlcXHU4Q0MyXFx1OERFRlxcdTk3MzJcXHU1MkI0XFx1NUE0MVxcdTVFQ0FcXHU1RjA0XFx1NjcxN1xcdTY5N0NcXHU2OTk0XFx1NkQ2QVxcdTZGMEZcXHU3MjYyXFx1NzJGQ1xcdTdCRURcXHU4MDAxXFx1ODA3RVxcdTg3NEJcXHU5MENFXFx1NTE2RFxcdTlFOTNcXHU3OTg0XFx1ODA4QlxcdTkzMzJcXHU4QUQ2XFx1NTAyRFxcdTU0OENcXHU4QTcxXFx1NkI2QVxcdThDQzRcXHU4MTA3XFx1NjBEMVxcdTY3QTBcXHU5REYyXFx1NEU5OVxcdTRFOThcXHU5QzEwXFx1OEE2QlxcdTg1QzFcXHU4NTY4XFx1NjkwMFxcdTZFN0VcXHU3ODk3XFx1ODE1NVwiXSxcbiAgICAgIFtcImQwYTFcIiwgXCJcXHU1RjBDXFx1NEUxMFxcdTRFMTVcXHU0RTJBXFx1NEUzMVxcdTRFMzZcXHU0RTNDXFx1NEUzRlxcdTRFNDJcXHU0RTU2XFx1NEU1OFxcdTRFODJcXHU0RTg1XFx1OEM2QlxcdTRFOEFcXHU4MjEyXFx1NUYwRFxcdTRFOEVcXHU0RTlFXFx1NEU5RlxcdTRFQTBcXHU0RUEyXFx1NEVCMFxcdTRFQjNcXHU0RUI2XFx1NEVDRVxcdTRFQ0RcXHU0RUM0XFx1NEVDNlxcdTRFQzJcXHU0RUQ3XFx1NEVERVxcdTRFRURcXHU0RURGXFx1NEVGN1xcdTRGMDlcXHU0RjVBXFx1NEYzMFxcdTRGNUJcXHU0RjVEXFx1NEY1N1xcdTRGNDdcXHU0Rjc2XFx1NEY4OFxcdTRGOEZcXHU0Rjk4XFx1NEY3QlxcdTRGNjlcXHU0RjcwXFx1NEY5MVxcdTRGNkZcXHU0Rjg2XFx1NEY5NlxcdTUxMThcXHU0RkQ0XFx1NEZERlxcdTRGQ0VcXHU0RkQ4XFx1NEZEQlxcdTRGRDFcXHU0RkRBXFx1NEZEMFxcdTRGRTRcXHU0RkU1XFx1NTAxQVxcdTUwMjhcXHU1MDE0XFx1NTAyQVxcdTUwMjVcXHU1MDA1XFx1NEYxQ1xcdTRGRjZcXHU1MDIxXFx1NTAyOVxcdTUwMkNcXHU0RkZFXFx1NEZFRlxcdTUwMTFcXHU1MDA2XFx1NTA0M1xcdTUwNDdcXHU2NzAzXFx1NTA1NVxcdTUwNTBcXHU1MDQ4XFx1NTA1QVxcdTUwNTZcXHU1MDZDXFx1NTA3OFxcdTUwODBcXHU1MDlBXFx1NTA4NVxcdTUwQjRcXHU1MEIyXCJdLFxuICAgICAgW1wiZDFhMVwiLCBcIlxcdTUwQzlcXHU1MENBXFx1NTBCM1xcdTUwQzJcXHU1MEQ2XFx1NTBERVxcdTUwRTVcXHU1MEVEXFx1NTBFM1xcdTUwRUVcXHU1MEY5XFx1NTBGNVxcdTUxMDlcXHU1MTAxXFx1NTEwMlxcdTUxMTZcXHU1MTE1XFx1NTExNFxcdTUxMUFcXHU1MTIxXFx1NTEzQVxcdTUxMzdcXHU1MTNDXFx1NTEzQlxcdTUxM0ZcXHU1MTQwXFx1NTE1MlxcdTUxNENcXHU1MTU0XFx1NTE2MlxcdTdBRjhcXHU1MTY5XFx1NTE2QVxcdTUxNkVcXHU1MTgwXFx1NTE4MlxcdTU2RDhcXHU1MThDXFx1NTE4OVxcdTUxOEZcXHU1MTkxXFx1NTE5M1xcdTUxOTVcXHU1MTk2XFx1NTFBNFxcdTUxQTZcXHU1MUEyXFx1NTFBOVxcdTUxQUFcXHU1MUFCXFx1NTFCM1xcdTUxQjFcXHU1MUIyXFx1NTFCMFxcdTUxQjVcXHU1MUJEXFx1NTFDNVxcdTUxQzlcXHU1MURCXFx1NTFFMFxcdTg2NTVcXHU1MUU5XFx1NTFFRFxcdTUxRjBcXHU1MUY1XFx1NTFGRVxcdTUyMDRcXHU1MjBCXFx1NTIxNFxcdTUyMEVcXHU1MjI3XFx1NTIyQVxcdTUyMkVcXHU1MjMzXFx1NTIzOVxcdTUyNEZcXHU1MjQ0XFx1NTI0QlxcdTUyNENcXHU1MjVFXFx1NTI1NFxcdTUyNkFcXHU1Mjc0XFx1NTI2OVxcdTUyNzNcXHU1MjdGXFx1NTI3RFxcdTUyOERcXHU1Mjk0XFx1NTI5MlxcdTUyNzFcXHU1Mjg4XFx1NTI5MVxcdThGQThcIl0sXG4gICAgICBbXCJkMmExXCIsIFwiXFx1OEZBN1xcdTUyQUNcXHU1MkFEXFx1NTJCQ1xcdTUyQjVcXHU1MkMxXFx1NTJDRFxcdTUyRDdcXHU1MkRFXFx1NTJFM1xcdTUyRTZcXHU5OEVEXFx1NTJFMFxcdTUyRjNcXHU1MkY1XFx1NTJGOFxcdTUyRjlcXHU1MzA2XFx1NTMwOFxcdTc1MzhcXHU1MzBEXFx1NTMxMFxcdTUzMEZcXHU1MzE1XFx1NTMxQVxcdTUzMjNcXHU1MzJGXFx1NTMzMVxcdTUzMzNcXHU1MzM4XFx1NTM0MFxcdTUzNDZcXHU1MzQ1XFx1NEUxN1xcdTUzNDlcXHU1MzREXFx1NTFENlxcdTUzNUVcXHU1MzY5XFx1NTM2RVxcdTU5MThcXHU1MzdCXFx1NTM3N1xcdTUzODJcXHU1Mzk2XFx1NTNBMFxcdTUzQTZcXHU1M0E1XFx1NTNBRVxcdTUzQjBcXHU1M0I2XFx1NTNDM1xcdTdDMTJcXHU5NkQ5XFx1NTNERlxcdTY2RkNcXHU3MUVFXFx1NTNFRVxcdTUzRThcXHU1M0VEXFx1NTNGQVxcdTU0MDFcXHU1NDNEXFx1NTQ0MFxcdTU0MkNcXHU1NDJEXFx1NTQzQ1xcdTU0MkVcXHU1NDM2XFx1NTQyOVxcdTU0MURcXHU1NDRFXFx1NTQ4RlxcdTU0NzVcXHU1NDhFXFx1NTQ1RlxcdTU0NzFcXHU1NDc3XFx1NTQ3MFxcdTU0OTJcXHU1NDdCXFx1NTQ4MFxcdTU0NzZcXHU1NDg0XFx1NTQ5MFxcdTU0ODZcXHU1NEM3XFx1NTRBMlxcdTU0QjhcXHU1NEE1XFx1NTRBQ1xcdTU0QzRcXHU1NEM4XFx1NTRBOFwiXSxcbiAgICAgIFtcImQzYTFcIiwgXCJcXHU1NEFCXFx1NTRDMlxcdTU0QTRcXHU1NEJFXFx1NTRCQ1xcdTU0RDhcXHU1NEU1XFx1NTRFNlxcdTU1MEZcXHU1NTE0XFx1NTRGRFxcdTU0RUVcXHU1NEVEXFx1NTRGQVxcdTU0RTJcXHU1NTM5XFx1NTU0MFxcdTU1NjNcXHU1NTRDXFx1NTUyRVxcdTU1NUNcXHU1NTQ1XFx1NTU1NlxcdTU1NTdcXHU1NTM4XFx1NTUzM1xcdTU1NURcXHU1NTk5XFx1NTU4MFxcdTU0QUZcXHU1NThBXFx1NTU5RlxcdTU1N0JcXHU1NTdFXFx1NTU5OFxcdTU1OUVcXHU1NUFFXFx1NTU3Q1xcdTU1ODNcXHU1NUE5XFx1NTU4N1xcdTU1QThcXHU1NURBXFx1NTVDNVxcdTU1REZcXHU1NUM0XFx1NTVEQ1xcdTU1RTRcXHU1NUQ0XFx1NTYxNFxcdTU1RjdcXHU1NjE2XFx1NTVGRVxcdTU1RkRcXHU1NjFCXFx1NTVGOVxcdTU2NEVcXHU1NjUwXFx1NzFERlxcdTU2MzRcXHU1NjM2XFx1NTYzMlxcdTU2MzhcXHU1NjZCXFx1NTY2NFxcdTU2MkZcXHU1NjZDXFx1NTY2QVxcdTU2ODZcXHU1NjgwXFx1NTY4QVxcdTU2QTBcXHU1Njk0XFx1NTY4RlxcdTU2QTVcXHU1NkFFXFx1NTZCNlxcdTU2QjRcXHU1NkMyXFx1NTZCQ1xcdTU2QzFcXHU1NkMzXFx1NTZDMFxcdTU2QzhcXHU1NkNFXFx1NTZEMVxcdTU2RDNcXHU1NkQ3XFx1NTZFRVxcdTU2RjlcXHU1NzAwXFx1NTZGRlxcdTU3MDRcXHU1NzA5XCJdLFxuICAgICAgW1wiZDRhMVwiLCBcIlxcdTU3MDhcXHU1NzBCXFx1NTcwRFxcdTU3MTNcXHU1NzE4XFx1NTcxNlxcdTU1QzdcXHU1NzFDXFx1NTcyNlxcdTU3MzdcXHU1NzM4XFx1NTc0RVxcdTU3M0JcXHU1NzQwXFx1NTc0RlxcdTU3NjlcXHU1N0MwXFx1NTc4OFxcdTU3NjFcXHU1NzdGXFx1NTc4OVxcdTU3OTNcXHU1N0EwXFx1NTdCM1xcdTU3QTRcXHU1N0FBXFx1NTdCMFxcdTU3QzNcXHU1N0M2XFx1NTdENFxcdTU3RDJcXHU1N0QzXFx1NTgwQVxcdTU3RDZcXHU1N0UzXFx1NTgwQlxcdTU4MTlcXHU1ODFEXFx1NTg3MlxcdTU4MjFcXHU1ODYyXFx1NTg0QlxcdTU4NzBcXHU2QkMwXFx1NTg1MlxcdTU4M0RcXHU1ODc5XFx1NTg4NVxcdTU4QjlcXHU1ODlGXFx1NThBQlxcdTU4QkFcXHU1OERFXFx1NThCQlxcdTU4QjhcXHU1OEFFXFx1NThDNVxcdTU4RDNcXHU1OEQxXFx1NThEN1xcdTU4RDlcXHU1OEQ4XFx1NThFNVxcdTU4RENcXHU1OEU0XFx1NThERlxcdTU4RUZcXHU1OEZBXFx1NThGOVxcdTU4RkJcXHU1OEZDXFx1NThGRFxcdTU5MDJcXHU1OTBBXFx1NTkxMFxcdTU5MUJcXHU2OEE2XFx1NTkyNVxcdTU5MkNcXHU1OTJEXFx1NTkzMlxcdTU5MzhcXHU1OTNFXFx1N0FEMlxcdTU5NTVcXHU1OTUwXFx1NTk0RVxcdTU5NUFcXHU1OTU4XFx1NTk2MlxcdTU5NjBcXHU1OTY3XFx1NTk2Q1xcdTU5NjlcIl0sXG4gICAgICBbXCJkNWExXCIsIFwiXFx1NTk3OFxcdTU5ODFcXHU1OTlEXFx1NEY1RVxcdTRGQUJcXHU1OUEzXFx1NTlCMlxcdTU5QzZcXHU1OUU4XFx1NTlEQ1xcdTU5OERcXHU1OUQ5XFx1NTlEQVxcdTVBMjVcXHU1QTFGXFx1NUExMVxcdTVBMUNcXHU1QTA5XFx1NUExQVxcdTVBNDBcXHU1QTZDXFx1NUE0OVxcdTVBMzVcXHU1QTM2XFx1NUE2MlxcdTVBNkFcXHU1QTlBXFx1NUFCQ1xcdTVBQkVcXHU1QUNCXFx1NUFDMlxcdTVBQkRcXHU1QUUzXFx1NUFEN1xcdTVBRTZcXHU1QUU5XFx1NUFENlxcdTVBRkFcXHU1QUZCXFx1NUIwQ1xcdTVCMEJcXHU1QjE2XFx1NUIzMlxcdTVBRDBcXHU1QjJBXFx1NUIzNlxcdTVCM0VcXHU1QjQzXFx1NUI0NVxcdTVCNDBcXHU1QjUxXFx1NUI1NVxcdTVCNUFcXHU1QjVCXFx1NUI2NVxcdTVCNjlcXHU1QjcwXFx1NUI3M1xcdTVCNzVcXHU1Qjc4XFx1NjU4OFxcdTVCN0FcXHU1QjgwXFx1NUI4M1xcdTVCQTZcXHU1QkI4XFx1NUJDM1xcdTVCQzdcXHU1QkM5XFx1NUJENFxcdTVCRDBcXHU1QkU0XFx1NUJFNlxcdTVCRTJcXHU1QkRFXFx1NUJFNVxcdTVCRUJcXHU1QkYwXFx1NUJGNlxcdTVCRjNcXHU1QzA1XFx1NUMwN1xcdTVDMDhcXHU1QzBEXFx1NUMxM1xcdTVDMjBcXHU1QzIyXFx1NUMyOFxcdTVDMzhcXHU1QzM5XFx1NUM0MVxcdTVDNDZcXHU1QzRFXFx1NUM1M1wiXSxcbiAgICAgIFtcImQ2YTFcIiwgXCJcXHU1QzUwXFx1NUM0RlxcdTVCNzFcXHU1QzZDXFx1NUM2RVxcdTRFNjJcXHU1Qzc2XFx1NUM3OVxcdTVDOENcXHU1QzkxXFx1NUM5NFxcdTU5OUJcXHU1Q0FCXFx1NUNCQlxcdTVDQjZcXHU1Q0JDXFx1NUNCN1xcdTVDQzVcXHU1Q0JFXFx1NUNDN1xcdTVDRDlcXHU1Q0U5XFx1NUNGRFxcdTVDRkFcXHU1Q0VEXFx1NUQ4Q1xcdTVDRUFcXHU1RDBCXFx1NUQxNVxcdTVEMTdcXHU1RDVDXFx1NUQxRlxcdTVEMUJcXHU1RDExXFx1NUQxNFxcdTVEMjJcXHU1RDFBXFx1NUQxOVxcdTVEMThcXHU1RDRDXFx1NUQ1MlxcdTVENEVcXHU1RDRCXFx1NUQ2Q1xcdTVENzNcXHU1RDc2XFx1NUQ4N1xcdTVEODRcXHU1RDgyXFx1NURBMlxcdTVEOURcXHU1REFDXFx1NURBRVxcdTVEQkRcXHU1RDkwXFx1NURCN1xcdTVEQkNcXHU1REM5XFx1NURDRFxcdTVERDNcXHU1REQyXFx1NURENlxcdTVEREJcXHU1REVCXFx1NURGMlxcdTVERjVcXHU1RTBCXFx1NUUxQVxcdTVFMTlcXHU1RTExXFx1NUUxQlxcdTVFMzZcXHU1RTM3XFx1NUU0NFxcdTVFNDNcXHU1RTQwXFx1NUU0RVxcdTVFNTdcXHU1RTU0XFx1NUU1RlxcdTVFNjJcXHU1RTY0XFx1NUU0N1xcdTVFNzVcXHU1RTc2XFx1NUU3QVxcdTlFQkNcXHU1RTdGXFx1NUVBMFxcdTVFQzFcXHU1RUMyXFx1NUVDOFxcdTVFRDBcXHU1RUNGXCJdLFxuICAgICAgW1wiZDdhMVwiLCBcIlxcdTVFRDZcXHU1RUUzXFx1NUVERFxcdTVFREFcXHU1RURCXFx1NUVFMlxcdTVFRTFcXHU1RUU4XFx1NUVFOVxcdTVFRUNcXHU1RUYxXFx1NUVGM1xcdTVFRjBcXHU1RUY0XFx1NUVGOFxcdTVFRkVcXHU1RjAzXFx1NUYwOVxcdTVGNURcXHU1RjVDXFx1NUYwQlxcdTVGMTFcXHU1RjE2XFx1NUYyOVxcdTVGMkRcXHU1RjM4XFx1NUY0MVxcdTVGNDhcXHU1RjRDXFx1NUY0RVxcdTVGMkZcXHU1RjUxXFx1NUY1NlxcdTVGNTdcXHU1RjU5XFx1NUY2MVxcdTVGNkRcXHU1RjczXFx1NUY3N1xcdTVGODNcXHU1RjgyXFx1NUY3RlxcdTVGOEFcXHU1Rjg4XFx1NUY5MVxcdTVGODdcXHU1RjlFXFx1NUY5OVxcdTVGOThcXHU1RkEwXFx1NUZBOFxcdTVGQURcXHU1RkJDXFx1NUZENlxcdTVGRkJcXHU1RkU0XFx1NUZGOFxcdTVGRjFcXHU1RkREXFx1NjBCM1xcdTVGRkZcXHU2MDIxXFx1NjA2MFxcdTYwMTlcXHU2MDEwXFx1NjAyOVxcdTYwMEVcXHU2MDMxXFx1NjAxQlxcdTYwMTVcXHU2MDJCXFx1NjAyNlxcdTYwMEZcXHU2MDNBXFx1NjA1QVxcdTYwNDFcXHU2MDZBXFx1NjA3N1xcdTYwNUZcXHU2MDRBXFx1NjA0NlxcdTYwNERcXHU2MDYzXFx1NjA0M1xcdTYwNjRcXHU2MDQyXFx1NjA2Q1xcdTYwNkJcXHU2MDU5XFx1NjA4MVxcdTYwOERcXHU2MEU3XFx1NjA4M1xcdTYwOUFcIl0sXG4gICAgICBbXCJkOGExXCIsIFwiXFx1NjA4NFxcdTYwOUJcXHU2MDk2XFx1NjA5N1xcdTYwOTJcXHU2MEE3XFx1NjA4QlxcdTYwRTFcXHU2MEI4XFx1NjBFMFxcdTYwRDNcXHU2MEI0XFx1NUZGMFxcdTYwQkRcXHU2MEM2XFx1NjBCNVxcdTYwRDhcXHU2MTREXFx1NjExNVxcdTYxMDZcXHU2MEY2XFx1NjBGN1xcdTYxMDBcXHU2MEY0XFx1NjBGQVxcdTYxMDNcXHU2MTIxXFx1NjBGQlxcdTYwRjFcXHU2MTBEXFx1NjEwRVxcdTYxNDdcXHU2MTNFXFx1NjEyOFxcdTYxMjdcXHU2MTRBXFx1NjEzRlxcdTYxM0NcXHU2MTJDXFx1NjEzNFxcdTYxM0RcXHU2MTQyXFx1NjE0NFxcdTYxNzNcXHU2MTc3XFx1NjE1OFxcdTYxNTlcXHU2MTVBXFx1NjE2QlxcdTYxNzRcXHU2MTZGXFx1NjE2NVxcdTYxNzFcXHU2MTVGXFx1NjE1RFxcdTYxNTNcXHU2MTc1XFx1NjE5OVxcdTYxOTZcXHU2MTg3XFx1NjFBQ1xcdTYxOTRcXHU2MTlBXFx1NjE4QVxcdTYxOTFcXHU2MUFCXFx1NjFBRVxcdTYxQ0NcXHU2MUNBXFx1NjFDOVxcdTYxRjdcXHU2MUM4XFx1NjFDM1xcdTYxQzZcXHU2MUJBXFx1NjFDQlxcdTdGNzlcXHU2MUNEXFx1NjFFNlxcdTYxRTNcXHU2MUY2XFx1NjFGQVxcdTYxRjRcXHU2MUZGXFx1NjFGRFxcdTYxRkNcXHU2MUZFXFx1NjIwMFxcdTYyMDhcXHU2MjA5XFx1NjIwRFxcdTYyMENcXHU2MjE0XFx1NjIxQlwiXSxcbiAgICAgIFtcImQ5YTFcIiwgXCJcXHU2MjFFXFx1NjIyMVxcdTYyMkFcXHU2MjJFXFx1NjIzMFxcdTYyMzJcXHU2MjMzXFx1NjI0MVxcdTYyNEVcXHU2MjVFXFx1NjI2M1xcdTYyNUJcXHU2MjYwXFx1NjI2OFxcdTYyN0NcXHU2MjgyXFx1NjI4OVxcdTYyN0VcXHU2MjkyXFx1NjI5M1xcdTYyOTZcXHU2MkQ0XFx1NjI4M1xcdTYyOTRcXHU2MkQ3XFx1NjJEMVxcdTYyQkJcXHU2MkNGXFx1NjJGRlxcdTYyQzZcXHU2NEQ0XFx1NjJDOFxcdTYyRENcXHU2MkNDXFx1NjJDQVxcdTYyQzJcXHU2MkM3XFx1NjI5QlxcdTYyQzlcXHU2MzBDXFx1NjJFRVxcdTYyRjFcXHU2MzI3XFx1NjMwMlxcdTYzMDhcXHU2MkVGXFx1NjJGNVxcdTYzNTBcXHU2MzNFXFx1NjM0RFxcdTY0MUNcXHU2MzRGXFx1NjM5NlxcdTYzOEVcXHU2MzgwXFx1NjNBQlxcdTYzNzZcXHU2M0EzXFx1NjM4RlxcdTYzODlcXHU2MzlGXFx1NjNCNVxcdTYzNkJcXHU2MzY5XFx1NjNCRVxcdTYzRTlcXHU2M0MwXFx1NjNDNlxcdTYzRTNcXHU2M0M5XFx1NjNEMlxcdTYzRjZcXHU2M0M0XFx1NjQxNlxcdTY0MzRcXHU2NDA2XFx1NjQxM1xcdTY0MjZcXHU2NDM2XFx1NjUxRFxcdTY0MTdcXHU2NDI4XFx1NjQwRlxcdTY0NjdcXHU2NDZGXFx1NjQ3NlxcdTY0NEVcXHU2NTJBXFx1NjQ5NVxcdTY0OTNcXHU2NEE1XFx1NjRBOVxcdTY0ODhcXHU2NEJDXCJdLFxuICAgICAgW1wiZGFhMVwiLCBcIlxcdTY0REFcXHU2NEQyXFx1NjRDNVxcdTY0QzdcXHU2NEJCXFx1NjREOFxcdTY0QzJcXHU2NEYxXFx1NjRFN1xcdTgyMDlcXHU2NEUwXFx1NjRFMVxcdTYyQUNcXHU2NEUzXFx1NjRFRlxcdTY1MkNcXHU2NEY2XFx1NjRGNFxcdTY0RjJcXHU2NEZBXFx1NjUwMFxcdTY0RkRcXHU2NTE4XFx1NjUxQ1xcdTY1MDVcXHU2NTI0XFx1NjUyM1xcdTY1MkJcXHU2NTM0XFx1NjUzNVxcdTY1MzdcXHU2NTM2XFx1NjUzOFxcdTc1NEJcXHU2NTQ4XFx1NjU1NlxcdTY1NTVcXHU2NTREXFx1NjU1OFxcdTY1NUVcXHU2NTVEXFx1NjU3MlxcdTY1NzhcXHU2NTgyXFx1NjU4M1xcdThCOEFcXHU2NTlCXFx1NjU5RlxcdTY1QUJcXHU2NUI3XFx1NjVDM1xcdTY1QzZcXHU2NUMxXFx1NjVDNFxcdTY1Q0NcXHU2NUQyXFx1NjVEQlxcdTY1RDlcXHU2NUUwXFx1NjVFMVxcdTY1RjFcXHU2NzcyXFx1NjYwQVxcdTY2MDNcXHU2NUZCXFx1Njc3M1xcdTY2MzVcXHU2NjM2XFx1NjYzNFxcdTY2MUNcXHU2NjRGXFx1NjY0NFxcdTY2NDlcXHU2NjQxXFx1NjY1RVxcdTY2NURcXHU2NjY0XFx1NjY2N1xcdTY2NjhcXHU2NjVGXFx1NjY2MlxcdTY2NzBcXHU2NjgzXFx1NjY4OFxcdTY2OEVcXHU2Njg5XFx1NjY4NFxcdTY2OThcXHU2NjlEXFx1NjZDMVxcdTY2QjlcXHU2NkM5XFx1NjZCRVxcdTY2QkNcIl0sXG4gICAgICBbXCJkYmExXCIsIFwiXFx1NjZDNFxcdTY2QjhcXHU2NkQ2XFx1NjZEQVxcdTY2RTBcXHU2NjNGXFx1NjZFNlxcdTY2RTlcXHU2NkYwXFx1NjZGNVxcdTY2RjdcXHU2NzBGXFx1NjcxNlxcdTY3MUVcXHU2NzI2XFx1NjcyN1xcdTk3MzhcXHU2NzJFXFx1NjczRlxcdTY3MzZcXHU2NzQxXFx1NjczOFxcdTY3MzdcXHU2NzQ2XFx1Njc1RVxcdTY3NjBcXHU2NzU5XFx1Njc2M1xcdTY3NjRcXHU2Nzg5XFx1Njc3MFxcdTY3QTlcXHU2NzdDXFx1Njc2QVxcdTY3OENcXHU2NzhCXFx1NjdBNlxcdTY3QTFcXHU2Nzg1XFx1NjdCN1xcdTY3RUZcXHU2N0I0XFx1NjdFQ1xcdTY3QjNcXHU2N0U5XFx1NjdCOFxcdTY3RTRcXHU2N0RFXFx1NjdERFxcdTY3RTJcXHU2N0VFXFx1NjdCOVxcdTY3Q0VcXHU2N0M2XFx1NjdFN1xcdTZBOUNcXHU2ODFFXFx1Njg0NlxcdTY4MjlcXHU2ODQwXFx1Njg0RFxcdTY4MzJcXHU2ODRFXFx1NjhCM1xcdTY4MkJcXHU2ODU5XFx1Njg2M1xcdTY4NzdcXHU2ODdGXFx1Njg5RlxcdTY4OEZcXHU2OEFEXFx1Njg5NFxcdTY4OURcXHU2ODlCXFx1Njg4M1xcdTZBQUVcXHU2OEI5XFx1Njg3NFxcdTY4QjVcXHU2OEEwXFx1NjhCQVxcdTY5MEZcXHU2ODhEXFx1Njg3RVxcdTY5MDFcXHU2OENBXFx1NjkwOFxcdTY4RDhcXHU2OTIyXFx1NjkyNlxcdTY4RTFcXHU2OTBDXFx1NjhDRFwiXSxcbiAgICAgIFtcImRjYTFcIiwgXCJcXHU2OEQ0XFx1NjhFN1xcdTY4RDVcXHU2OTM2XFx1NjkxMlxcdTY5MDRcXHU2OEQ3XFx1NjhFM1xcdTY5MjVcXHU2OEY5XFx1NjhFMFxcdTY4RUZcXHU2OTI4XFx1NjkyQVxcdTY5MUFcXHU2OTIzXFx1NjkyMVxcdTY4QzZcXHU2OTc5XFx1Njk3N1xcdTY5NUNcXHU2OTc4XFx1Njk2QlxcdTY5NTRcXHU2OTdFXFx1Njk2RVxcdTY5MzlcXHU2OTc0XFx1NjkzRFxcdTY5NTlcXHU2OTMwXFx1Njk2MVxcdTY5NUVcXHU2OTVEXFx1Njk4MVxcdTY5NkFcXHU2OUIyXFx1NjlBRVxcdTY5RDBcXHU2OUJGXFx1NjlDMVxcdTY5RDNcXHU2OUJFXFx1NjlDRVxcdTVCRThcXHU2OUNBXFx1NjlERFxcdTY5QkJcXHU2OUMzXFx1NjlBN1xcdTZBMkVcXHU2OTkxXFx1NjlBMFxcdTY5OUNcXHU2OTk1XFx1NjlCNFxcdTY5REVcXHU2OUU4XFx1NkEwMlxcdTZBMUJcXHU2OUZGXFx1NkIwQVxcdTY5RjlcXHU2OUYyXFx1NjlFN1xcdTZBMDVcXHU2OUIxXFx1NkExRVxcdTY5RURcXHU2QTE0XFx1NjlFQlxcdTZBMEFcXHU2QTEyXFx1NkFDMVxcdTZBMjNcXHU2QTEzXFx1NkE0NFxcdTZBMENcXHU2QTcyXFx1NkEzNlxcdTZBNzhcXHU2QTQ3XFx1NkE2MlxcdTZBNTlcXHU2QTY2XFx1NkE0OFxcdTZBMzhcXHU2QTIyXFx1NkE5MFxcdTZBOERcXHU2QUEwXFx1NkE4NFxcdTZBQTJcXHU2QUEzXCJdLFxuICAgICAgW1wiZGRhMVwiLCBcIlxcdTZBOTdcXHU4NjE3XFx1NkFCQlxcdTZBQzNcXHU2QUMyXFx1NkFCOFxcdTZBQjNcXHU2QUFDXFx1NkFERVxcdTZBRDFcXHU2QURGXFx1NkFBQVxcdTZBREFcXHU2QUVBXFx1NkFGQlxcdTZCMDVcXHU4NjE2XFx1NkFGQVxcdTZCMTJcXHU2QjE2XFx1OUIzMVxcdTZCMUZcXHU2QjM4XFx1NkIzN1xcdTc2RENcXHU2QjM5XFx1OThFRVxcdTZCNDdcXHU2QjQzXFx1NkI0OVxcdTZCNTBcXHU2QjU5XFx1NkI1NFxcdTZCNUJcXHU2QjVGXFx1NkI2MVxcdTZCNzhcXHU2Qjc5XFx1NkI3RlxcdTZCODBcXHU2Qjg0XFx1NkI4M1xcdTZCOERcXHU2Qjk4XFx1NkI5NVxcdTZCOUVcXHU2QkE0XFx1NkJBQVxcdTZCQUJcXHU2QkFGXFx1NkJCMlxcdTZCQjFcXHU2QkIzXFx1NkJCN1xcdTZCQkNcXHU2QkM2XFx1NkJDQlxcdTZCRDNcXHU2QkRGXFx1NkJFQ1xcdTZCRUJcXHU2QkYzXFx1NkJFRlxcdTlFQkVcXHU2QzA4XFx1NkMxM1xcdTZDMTRcXHU2QzFCXFx1NkMyNFxcdTZDMjNcXHU2QzVFXFx1NkM1NVxcdTZDNjJcXHU2QzZBXFx1NkM4MlxcdTZDOERcXHU2QzlBXFx1NkM4MVxcdTZDOUJcXHU2QzdFXFx1NkM2OFxcdTZDNzNcXHU2QzkyXFx1NkM5MFxcdTZDQzRcXHU2Q0YxXFx1NkNEM1xcdTZDQkRcXHU2Q0Q3XFx1NkNDNVxcdTZDRERcXHU2Q0FFXFx1NkNCMVxcdTZDQkVcIl0sXG4gICAgICBbXCJkZWExXCIsIFwiXFx1NkNCQVxcdTZDREJcXHU2Q0VGXFx1NkNEOVxcdTZDRUFcXHU2RDFGXFx1ODg0RFxcdTZEMzZcXHU2RDJCXFx1NkQzRFxcdTZEMzhcXHU2RDE5XFx1NkQzNVxcdTZEMzNcXHU2RDEyXFx1NkQwQ1xcdTZENjNcXHU2RDkzXFx1NkQ2NFxcdTZENUFcXHU2RDc5XFx1NkQ1OVxcdTZEOEVcXHU2RDk1XFx1NkZFNFxcdTZEODVcXHU2REY5XFx1NkUxNVxcdTZFMEFcXHU2REI1XFx1NkRDN1xcdTZERTZcXHU2REI4XFx1NkRDNlxcdTZERUNcXHU2RERFXFx1NkRDQ1xcdTZERThcXHU2REQyXFx1NkRDNVxcdTZERkFcXHU2REQ5XFx1NkRFNFxcdTZERDVcXHU2REVBXFx1NkRFRVxcdTZFMkRcXHU2RTZFXFx1NkUyRVxcdTZFMTlcXHU2RTcyXFx1NkU1RlxcdTZFM0VcXHU2RTIzXFx1NkU2QlxcdTZFMkJcXHU2RTc2XFx1NkU0RFxcdTZFMUZcXHU2RTQzXFx1NkUzQVxcdTZFNEVcXHU2RTI0XFx1NkVGRlxcdTZFMURcXHU2RTM4XFx1NkU4MlxcdTZFQUFcXHU2RTk4XFx1NkVDOVxcdTZFQjdcXHU2RUQzXFx1NkVCRFxcdTZFQUZcXHU2RUM0XFx1NkVCMlxcdTZFRDRcXHU2RUQ1XFx1NkU4RlxcdTZFQTVcXHU2RUMyXFx1NkU5RlxcdTZGNDFcXHU2RjExXFx1NzA0Q1xcdTZFRUNcXHU2RUY4XFx1NkVGRVxcdTZGM0ZcXHU2RUYyXFx1NkYzMVxcdTZFRUZcXHU2RjMyXFx1NkVDQ1wiXSxcbiAgICAgIFtcImRmYTFcIiwgXCJcXHU2RjNFXFx1NkYxM1xcdTZFRjdcXHU2Rjg2XFx1NkY3QVxcdTZGNzhcXHU2RjgxXFx1NkY4MFxcdTZGNkZcXHU2RjVCXFx1NkZGM1xcdTZGNkRcXHU2RjgyXFx1NkY3Q1xcdTZGNThcXHU2RjhFXFx1NkY5MVxcdTZGQzJcXHU2RjY2XFx1NkZCM1xcdTZGQTNcXHU2RkExXFx1NkZBNFxcdTZGQjlcXHU2RkM2XFx1NkZBQVxcdTZGREZcXHU2RkQ1XFx1NkZFQ1xcdTZGRDRcXHU2RkQ4XFx1NkZGMVxcdTZGRUVcXHU2RkRCXFx1NzAwOVxcdTcwMEJcXHU2RkZBXFx1NzAxMVxcdTcwMDFcXHU3MDBGXFx1NkZGRVxcdTcwMUJcXHU3MDFBXFx1NkY3NFxcdTcwMURcXHU3MDE4XFx1NzAxRlxcdTcwMzBcXHU3MDNFXFx1NzAzMlxcdTcwNTFcXHU3MDYzXFx1NzA5OVxcdTcwOTJcXHU3MEFGXFx1NzBGMVxcdTcwQUNcXHU3MEI4XFx1NzBCM1xcdTcwQUVcXHU3MERGXFx1NzBDQlxcdTcwRERcXHU3MEQ5XFx1NzEwOVxcdTcwRkRcXHU3MTFDXFx1NzExOVxcdTcxNjVcXHU3MTU1XFx1NzE4OFxcdTcxNjZcXHU3MTYyXFx1NzE0Q1xcdTcxNTZcXHU3MTZDXFx1NzE4RlxcdTcxRkJcXHU3MTg0XFx1NzE5NVxcdTcxQThcXHU3MUFDXFx1NzFEN1xcdTcxQjlcXHU3MUJFXFx1NzFEMlxcdTcxQzlcXHU3MUQ0XFx1NzFDRVxcdTcxRTBcXHU3MUVDXFx1NzFFN1xcdTcxRjVcXHU3MUZDXCJdLFxuICAgICAgW1wiZTBhMVwiLCBcIlxcdTcxRjlcXHU3MUZGXFx1NzIwRFxcdTcyMTBcXHU3MjFCXFx1NzIyOFxcdTcyMkRcXHU3MjJDXFx1NzIzMFxcdTcyMzJcXHU3MjNCXFx1NzIzQ1xcdTcyM0ZcXHU3MjQwXFx1NzI0NlxcdTcyNEJcXHU3MjU4XFx1NzI3NFxcdTcyN0VcXHU3MjgyXFx1NzI4MVxcdTcyODdcXHU3MjkyXFx1NzI5NlxcdTcyQTJcXHU3MkE3XFx1NzJCOVxcdTcyQjJcXHU3MkMzXFx1NzJDNlxcdTcyQzRcXHU3MkNFXFx1NzJEMlxcdTcyRTJcXHU3MkUwXFx1NzJFMVxcdTcyRjlcXHU3MkY3XFx1NTAwRlxcdTczMTdcXHU3MzBBXFx1NzMxQ1xcdTczMTZcXHU3MzFEXFx1NzMzNFxcdTczMkZcXHU3MzI5XFx1NzMyNVxcdTczM0VcXHU3MzRFXFx1NzM0RlxcdTlFRDhcXHU3MzU3XFx1NzM2QVxcdTczNjhcXHU3MzcwXFx1NzM3OFxcdTczNzVcXHU3MzdCXFx1NzM3QVxcdTczQzhcXHU3M0IzXFx1NzNDRVxcdTczQkJcXHU3M0MwXFx1NzNFNVxcdTczRUVcXHU3M0RFXFx1NzRBMlxcdTc0MDVcXHU3NDZGXFx1NzQyNVxcdTczRjhcXHU3NDMyXFx1NzQzQVxcdTc0NTVcXHU3NDNGXFx1NzQ1RlxcdTc0NTlcXHU3NDQxXFx1NzQ1Q1xcdTc0NjlcXHU3NDcwXFx1NzQ2M1xcdTc0NkFcXHU3NDc2XFx1NzQ3RVxcdTc0OEJcXHU3NDlFXFx1NzRBN1xcdTc0Q0FcXHU3NENGXFx1NzRENFxcdTczRjFcIl0sXG4gICAgICBbXCJlMWExXCIsIFwiXFx1NzRFMFxcdTc0RTNcXHU3NEU3XFx1NzRFOVxcdTc0RUVcXHU3NEYyXFx1NzRGMFxcdTc0RjFcXHU3NEY4XFx1NzRGN1xcdTc1MDRcXHU3NTAzXFx1NzUwNVxcdTc1MENcXHU3NTBFXFx1NzUwRFxcdTc1MTVcXHU3NTEzXFx1NzUxRVxcdTc1MjZcXHU3NTJDXFx1NzUzQ1xcdTc1NDRcXHU3NTREXFx1NzU0QVxcdTc1NDlcXHU3NTVCXFx1NzU0NlxcdTc1NUFcXHU3NTY5XFx1NzU2NFxcdTc1NjdcXHU3NTZCXFx1NzU2RFxcdTc1NzhcXHU3NTc2XFx1NzU4NlxcdTc1ODdcXHU3NTc0XFx1NzU4QVxcdTc1ODlcXHU3NTgyXFx1NzU5NFxcdTc1OUFcXHU3NTlEXFx1NzVBNVxcdTc1QTNcXHU3NUMyXFx1NzVCM1xcdTc1QzNcXHU3NUI1XFx1NzVCRFxcdTc1QjhcXHU3NUJDXFx1NzVCMVxcdTc1Q0RcXHU3NUNBXFx1NzVEMlxcdTc1RDlcXHU3NUUzXFx1NzVERVxcdTc1RkVcXHU3NUZGXFx1NzVGQ1xcdTc2MDFcXHU3NUYwXFx1NzVGQVxcdTc1RjJcXHU3NUYzXFx1NzYwQlxcdTc2MERcXHU3NjA5XFx1NzYxRlxcdTc2MjdcXHU3NjIwXFx1NzYyMVxcdTc2MjJcXHU3NjI0XFx1NzYzNFxcdTc2MzBcXHU3NjNCXFx1NzY0N1xcdTc2NDhcXHU3NjQ2XFx1NzY1Q1xcdTc2NThcXHU3NjYxXFx1NzY2MlxcdTc2NjhcXHU3NjY5XFx1NzY2QVxcdTc2NjdcXHU3NjZDXFx1NzY3MFwiXSxcbiAgICAgIFtcImUyYTFcIiwgXCJcXHU3NjcyXFx1NzY3NlxcdTc2NzhcXHU3NjdDXFx1NzY4MFxcdTc2ODNcXHU3Njg4XFx1NzY4QlxcdTc2OEVcXHU3Njk2XFx1NzY5M1xcdTc2OTlcXHU3NjlBXFx1NzZCMFxcdTc2QjRcXHU3NkI4XFx1NzZCOVxcdTc2QkFcXHU3NkMyXFx1NzZDRFxcdTc2RDZcXHU3NkQyXFx1NzZERVxcdTc2RTFcXHU3NkU1XFx1NzZFN1xcdTc2RUFcXHU4NjJGXFx1NzZGQlxcdTc3MDhcXHU3NzA3XFx1NzcwNFxcdTc3MjlcXHU3NzI0XFx1NzcxRVxcdTc3MjVcXHU3NzI2XFx1NzcxQlxcdTc3MzdcXHU3NzM4XFx1Nzc0N1xcdTc3NUFcXHU3NzY4XFx1Nzc2QlxcdTc3NUJcXHU3NzY1XFx1Nzc3RlxcdTc3N0VcXHU3Nzc5XFx1Nzc4RVxcdTc3OEJcXHU3NzkxXFx1NzdBMFxcdTc3OUVcXHU3N0IwXFx1NzdCNlxcdTc3QjlcXHU3N0JGXFx1NzdCQ1xcdTc3QkRcXHU3N0JCXFx1NzdDN1xcdTc3Q0RcXHU3N0Q3XFx1NzdEQVxcdTc3RENcXHU3N0UzXFx1NzdFRVxcdTc3RkNcXHU3ODBDXFx1NzgxMlxcdTc5MjZcXHU3ODIwXFx1NzkyQVxcdTc4NDVcXHU3ODhFXFx1Nzg3NFxcdTc4ODZcXHU3ODdDXFx1Nzg5QVxcdTc4OENcXHU3OEEzXFx1NzhCNVxcdTc4QUFcXHU3OEFGXFx1NzhEMVxcdTc4QzZcXHU3OENCXFx1NzhENFxcdTc4QkVcXHU3OEJDXFx1NzhDNVxcdTc4Q0FcXHU3OEVDXCJdLFxuICAgICAgW1wiZTNhMVwiLCBcIlxcdTc4RTdcXHU3OERBXFx1NzhGRFxcdTc4RjRcXHU3OTA3XFx1NzkxMlxcdTc5MTFcXHU3OTE5XFx1NzkyQ1xcdTc5MkJcXHU3OTQwXFx1Nzk2MFxcdTc5NTdcXHU3OTVGXFx1Nzk1QVxcdTc5NTVcXHU3OTUzXFx1Nzk3QVxcdTc5N0ZcXHU3OThBXFx1Nzk5RFxcdTc5QTdcXHU5RjRCXFx1NzlBQVxcdTc5QUVcXHU3OUIzXFx1NzlCOVxcdTc5QkFcXHU3OUM5XFx1NzlENVxcdTc5RTdcXHU3OUVDXFx1NzlFMVxcdTc5RTNcXHU3QTA4XFx1N0EwRFxcdTdBMThcXHU3QTE5XFx1N0EyMFxcdTdBMUZcXHU3OTgwXFx1N0EzMVxcdTdBM0JcXHU3QTNFXFx1N0EzN1xcdTdBNDNcXHU3QTU3XFx1N0E0OVxcdTdBNjFcXHU3QTYyXFx1N0E2OVxcdTlGOURcXHU3QTcwXFx1N0E3OVxcdTdBN0RcXHU3QTg4XFx1N0E5N1xcdTdBOTVcXHU3QTk4XFx1N0E5NlxcdTdBQTlcXHU3QUM4XFx1N0FCMFxcdTdBQjZcXHU3QUM1XFx1N0FDNFxcdTdBQkZcXHU5MDgzXFx1N0FDN1xcdTdBQ0FcXHU3QUNEXFx1N0FDRlxcdTdBRDVcXHU3QUQzXFx1N0FEOVxcdTdBREFcXHU3QUREXFx1N0FFMVxcdTdBRTJcXHU3QUU2XFx1N0FFRFxcdTdBRjBcXHU3QjAyXFx1N0IwRlxcdTdCMEFcXHU3QjA2XFx1N0IzM1xcdTdCMThcXHU3QjE5XFx1N0IxRVxcdTdCMzVcXHU3QjI4XFx1N0IzNlxcdTdCNTBcIl0sXG4gICAgICBbXCJlNGExXCIsIFwiXFx1N0I3QVxcdTdCMDRcXHU3QjREXFx1N0IwQlxcdTdCNENcXHU3QjQ1XFx1N0I3NVxcdTdCNjVcXHU3Qjc0XFx1N0I2N1xcdTdCNzBcXHU3QjcxXFx1N0I2Q1xcdTdCNkVcXHU3QjlEXFx1N0I5OFxcdTdCOUZcXHU3QjhEXFx1N0I5Q1xcdTdCOUFcXHU3QjhCXFx1N0I5MlxcdTdCOEZcXHU3QjVEXFx1N0I5OVxcdTdCQ0JcXHU3QkMxXFx1N0JDQ1xcdTdCQ0ZcXHU3QkI0XFx1N0JDNlxcdTdCRERcXHU3QkU5XFx1N0MxMVxcdTdDMTRcXHU3QkU2XFx1N0JFNVxcdTdDNjBcXHU3QzAwXFx1N0MwN1xcdTdDMTNcXHU3QkYzXFx1N0JGN1xcdTdDMTdcXHU3QzBEXFx1N0JGNlxcdTdDMjNcXHU3QzI3XFx1N0MyQVxcdTdDMUZcXHU3QzM3XFx1N0MyQlxcdTdDM0RcXHU3QzRDXFx1N0M0M1xcdTdDNTRcXHU3QzRGXFx1N0M0MFxcdTdDNTBcXHU3QzU4XFx1N0M1RlxcdTdDNjRcXHU3QzU2XFx1N0M2NVxcdTdDNkNcXHU3Qzc1XFx1N0M4M1xcdTdDOTBcXHU3Q0E0XFx1N0NBRFxcdTdDQTJcXHU3Q0FCXFx1N0NBMVxcdTdDQThcXHU3Q0IzXFx1N0NCMlxcdTdDQjFcXHU3Q0FFXFx1N0NCOVxcdTdDQkRcXHU3Q0MwXFx1N0NDNVxcdTdDQzJcXHU3Q0Q4XFx1N0NEMlxcdTdDRENcXHU3Q0UyXFx1OUIzQlxcdTdDRUZcXHU3Q0YyXFx1N0NGNFxcdTdDRjZcXHU3Q0ZBXFx1N0QwNlwiXSxcbiAgICAgIFtcImU1YTFcIiwgXCJcXHU3RDAyXFx1N0QxQ1xcdTdEMTVcXHU3RDBBXFx1N0Q0NVxcdTdENEJcXHU3RDJFXFx1N0QzMlxcdTdEM0ZcXHU3RDM1XFx1N0Q0NlxcdTdENzNcXHU3RDU2XFx1N0Q0RVxcdTdENzJcXHU3RDY4XFx1N0Q2RVxcdTdENEZcXHU3RDYzXFx1N0Q5M1xcdTdEODlcXHU3RDVCXFx1N0Q4RlxcdTdEN0RcXHU3RDlCXFx1N0RCQVxcdTdEQUVcXHU3REEzXFx1N0RCNVxcdTdEQzdcXHU3REJEXFx1N0RBQlxcdTdFM0RcXHU3REEyXFx1N0RBRlxcdTdERENcXHU3REI4XFx1N0Q5RlxcdTdEQjBcXHU3REQ4XFx1N0RERFxcdTdERTRcXHU3RERFXFx1N0RGQlxcdTdERjJcXHU3REUxXFx1N0UwNVxcdTdFMEFcXHU3RTIzXFx1N0UyMVxcdTdFMTJcXHU3RTMxXFx1N0UxRlxcdTdFMDlcXHU3RTBCXFx1N0UyMlxcdTdFNDZcXHU3RTY2XFx1N0UzQlxcdTdFMzVcXHU3RTM5XFx1N0U0M1xcdTdFMzdcXHU3RTMyXFx1N0UzQVxcdTdFNjdcXHU3RTVEXFx1N0U1NlxcdTdFNUVcXHU3RTU5XFx1N0U1QVxcdTdFNzlcXHU3RTZBXFx1N0U2OVxcdTdFN0NcXHU3RTdCXFx1N0U4M1xcdTdERDVcXHU3RTdEXFx1OEZBRVxcdTdFN0ZcXHU3RTg4XFx1N0U4OVxcdTdFOENcXHU3RTkyXFx1N0U5MFxcdTdFOTNcXHU3RTk0XFx1N0U5NlxcdTdFOEVcXHU3RTlCXFx1N0U5Q1xcdTdGMzhcXHU3RjNBXCJdLFxuICAgICAgW1wiZTZhMVwiLCBcIlxcdTdGNDVcXHU3RjRDXFx1N0Y0RFxcdTdGNEVcXHU3RjUwXFx1N0Y1MVxcdTdGNTVcXHU3RjU0XFx1N0Y1OFxcdTdGNUZcXHU3RjYwXFx1N0Y2OFxcdTdGNjlcXHU3RjY3XFx1N0Y3OFxcdTdGODJcXHU3Rjg2XFx1N0Y4M1xcdTdGODhcXHU3Rjg3XFx1N0Y4Q1xcdTdGOTRcXHU3RjlFXFx1N0Y5RFxcdTdGOUFcXHU3RkEzXFx1N0ZBRlxcdTdGQjJcXHU3RkI5XFx1N0ZBRVxcdTdGQjZcXHU3RkI4XFx1OEI3MVxcdTdGQzVcXHU3RkM2XFx1N0ZDQVxcdTdGRDVcXHU3RkQ0XFx1N0ZFMVxcdTdGRTZcXHU3RkU5XFx1N0ZGM1xcdTdGRjlcXHU5OERDXFx1ODAwNlxcdTgwMDRcXHU4MDBCXFx1ODAxMlxcdTgwMThcXHU4MDE5XFx1ODAxQ1xcdTgwMjFcXHU4MDI4XFx1ODAzRlxcdTgwM0JcXHU4MDRBXFx1ODA0NlxcdTgwNTJcXHU4MDU4XFx1ODA1QVxcdTgwNUZcXHU4MDYyXFx1ODA2OFxcdTgwNzNcXHU4MDcyXFx1ODA3MFxcdTgwNzZcXHU4MDc5XFx1ODA3RFxcdTgwN0ZcXHU4MDg0XFx1ODA4NlxcdTgwODVcXHU4MDlCXFx1ODA5M1xcdTgwOUFcXHU4MEFEXFx1NTE5MFxcdTgwQUNcXHU4MERCXFx1ODBFNVxcdTgwRDlcXHU4MEREXFx1ODBDNFxcdTgwREFcXHU4MEQ2XFx1ODEwOVxcdTgwRUZcXHU4MEYxXFx1ODExQlxcdTgxMjlcXHU4MTIzXFx1ODEyRlxcdTgxNEJcIl0sXG4gICAgICBbXCJlN2ExXCIsIFwiXFx1OTY4QlxcdTgxNDZcXHU4MTNFXFx1ODE1M1xcdTgxNTFcXHU4MEZDXFx1ODE3MVxcdTgxNkVcXHU4MTY1XFx1ODE2NlxcdTgxNzRcXHU4MTgzXFx1ODE4OFxcdTgxOEFcXHU4MTgwXFx1ODE4MlxcdTgxQTBcXHU4MTk1XFx1ODFBNFxcdTgxQTNcXHU4MTVGXFx1ODE5M1xcdTgxQTlcXHU4MUIwXFx1ODFCNVxcdTgxQkVcXHU4MUI4XFx1ODFCRFxcdTgxQzBcXHU4MUMyXFx1ODFCQVxcdTgxQzlcXHU4MUNEXFx1ODFEMVxcdTgxRDlcXHU4MUQ4XFx1ODFDOFxcdTgxREFcXHU4MURGXFx1ODFFMFxcdTgxRTdcXHU4MUZBXFx1ODFGQlxcdTgxRkVcXHU4MjAxXFx1ODIwMlxcdTgyMDVcXHU4MjA3XFx1ODIwQVxcdTgyMERcXHU4MjEwXFx1ODIxNlxcdTgyMjlcXHU4MjJCXFx1ODIzOFxcdTgyMzNcXHU4MjQwXFx1ODI1OVxcdTgyNThcXHU4MjVEXFx1ODI1QVxcdTgyNUZcXHU4MjY0XFx1ODI2MlxcdTgyNjhcXHU4MjZBXFx1ODI2QlxcdTgyMkVcXHU4MjcxXFx1ODI3N1xcdTgyNzhcXHU4MjdFXFx1ODI4RFxcdTgyOTJcXHU4MkFCXFx1ODI5RlxcdTgyQkJcXHU4MkFDXFx1ODJFMVxcdTgyRTNcXHU4MkRGXFx1ODJEMlxcdTgyRjRcXHU4MkYzXFx1ODJGQVxcdTgzOTNcXHU4MzAzXFx1ODJGQlxcdTgyRjlcXHU4MkRFXFx1ODMwNlxcdTgyRENcXHU4MzA5XFx1ODJEOVwiXSxcbiAgICAgIFtcImU4YTFcIiwgXCJcXHU4MzM1XFx1ODMzNFxcdTgzMTZcXHU4MzMyXFx1ODMzMVxcdTgzNDBcXHU4MzM5XFx1ODM1MFxcdTgzNDVcXHU4MzJGXFx1ODMyQlxcdTgzMTdcXHU4MzE4XFx1ODM4NVxcdTgzOUFcXHU4M0FBXFx1ODM5RlxcdTgzQTJcXHU4Mzk2XFx1ODMyM1xcdTgzOEVcXHU4Mzg3XFx1ODM4QVxcdTgzN0NcXHU4M0I1XFx1ODM3M1xcdTgzNzVcXHU4M0EwXFx1ODM4OVxcdTgzQThcXHU4M0Y0XFx1ODQxM1xcdTgzRUJcXHU4M0NFXFx1ODNGRFxcdTg0MDNcXHU4M0Q4XFx1ODQwQlxcdTgzQzFcXHU4M0Y3XFx1ODQwN1xcdTgzRTBcXHU4M0YyXFx1ODQwRFxcdTg0MjJcXHU4NDIwXFx1ODNCRFxcdTg0MzhcXHU4NTA2XFx1ODNGQlxcdTg0NkRcXHU4NDJBXFx1ODQzQ1xcdTg1NUFcXHU4NDg0XFx1ODQ3N1xcdTg0NkJcXHU4NEFEXFx1ODQ2RVxcdTg0ODJcXHU4NDY5XFx1ODQ0NlxcdTg0MkNcXHU4NDZGXFx1ODQ3OVxcdTg0MzVcXHU4NENBXFx1ODQ2MlxcdTg0QjlcXHU4NEJGXFx1ODQ5RlxcdTg0RDlcXHU4NENEXFx1ODRCQlxcdTg0REFcXHU4NEQwXFx1ODRDMVxcdTg0QzZcXHU4NEQ2XFx1ODRBMVxcdTg1MjFcXHU4NEZGXFx1ODRGNFxcdTg1MTdcXHU4NTE4XFx1ODUyQ1xcdTg1MUZcXHU4NTE1XFx1ODUxNFxcdTg0RkNcXHU4NTQwXFx1ODU2M1xcdTg1NThcXHU4NTQ4XCJdLFxuICAgICAgW1wiZTlhMVwiLCBcIlxcdTg1NDFcXHU4NjAyXFx1ODU0QlxcdTg1NTVcXHU4NTgwXFx1ODVBNFxcdTg1ODhcXHU4NTkxXFx1ODU4QVxcdTg1QThcXHU4NTZEXFx1ODU5NFxcdTg1OUJcXHU4NUVBXFx1ODU4N1xcdTg1OUNcXHU4NTc3XFx1ODU3RVxcdTg1OTBcXHU4NUM5XFx1ODVCQVxcdTg1Q0ZcXHU4NUI5XFx1ODVEMFxcdTg1RDVcXHU4NUREXFx1ODVFNVxcdTg1RENcXHU4NUY5XFx1ODYwQVxcdTg2MTNcXHU4NjBCXFx1ODVGRVxcdTg1RkFcXHU4NjA2XFx1ODYyMlxcdTg2MUFcXHU4NjMwXFx1ODYzRlxcdTg2NERcXHU0RTU1XFx1ODY1NFxcdTg2NUZcXHU4NjY3XFx1ODY3MVxcdTg2OTNcXHU4NkEzXFx1ODZBOVxcdTg2QUFcXHU4NjhCXFx1ODY4Q1xcdTg2QjZcXHU4NkFGXFx1ODZDNFxcdTg2QzZcXHU4NkIwXFx1ODZDOVxcdTg4MjNcXHU4NkFCXFx1ODZENFxcdTg2REVcXHU4NkU5XFx1ODZFQ1xcdTg2REZcXHU4NkRCXFx1ODZFRlxcdTg3MTJcXHU4NzA2XFx1ODcwOFxcdTg3MDBcXHU4NzAzXFx1ODZGQlxcdTg3MTFcXHU4NzA5XFx1ODcwRFxcdTg2RjlcXHU4NzBBXFx1ODczNFxcdTg3M0ZcXHU4NzM3XFx1ODczQlxcdTg3MjVcXHU4NzI5XFx1ODcxQVxcdTg3NjBcXHU4NzVGXFx1ODc3OFxcdTg3NENcXHU4NzRFXFx1ODc3NFxcdTg3NTdcXHU4NzY4XFx1ODc2RVxcdTg3NTlcIl0sXG4gICAgICBbXCJlYWExXCIsIFwiXFx1ODc1M1xcdTg3NjNcXHU4NzZBXFx1ODgwNVxcdTg3QTJcXHU4NzlGXFx1ODc4MlxcdTg3QUZcXHU4N0NCXFx1ODdCRFxcdTg3QzBcXHU4N0QwXFx1OTZENlxcdTg3QUJcXHU4N0M0XFx1ODdCM1xcdTg3QzdcXHU4N0M2XFx1ODdCQlxcdTg3RUZcXHU4N0YyXFx1ODdFMFxcdTg4MEZcXHU4ODBEXFx1ODdGRVxcdTg3RjZcXHU4N0Y3XFx1ODgwRVxcdTg3RDJcXHU4ODExXFx1ODgxNlxcdTg4MTVcXHU4ODIyXFx1ODgyMVxcdTg4MzFcXHU4ODM2XFx1ODgzOVxcdTg4MjdcXHU4ODNCXFx1ODg0NFxcdTg4NDJcXHU4ODUyXFx1ODg1OVxcdTg4NUVcXHU4ODYyXFx1ODg2QlxcdTg4ODFcXHU4ODdFXFx1ODg5RVxcdTg4NzVcXHU4ODdEXFx1ODhCNVxcdTg4NzJcXHU4ODgyXFx1ODg5N1xcdTg4OTJcXHU4OEFFXFx1ODg5OVxcdTg4QTJcXHU4ODhEXFx1ODhBNFxcdTg4QjBcXHU4OEJGXFx1ODhCMVxcdTg4QzNcXHU4OEM0XFx1ODhENFxcdTg4RDhcXHU4OEQ5XFx1ODhERFxcdTg4RjlcXHU4OTAyXFx1ODhGQ1xcdTg4RjRcXHU4OEU4XFx1ODhGMlxcdTg5MDRcXHU4OTBDXFx1ODkwQVxcdTg5MTNcXHU4OTQzXFx1ODkxRVxcdTg5MjVcXHU4OTJBXFx1ODkyQlxcdTg5NDFcXHU4OTQ0XFx1ODkzQlxcdTg5MzZcXHU4OTM4XFx1ODk0Q1xcdTg5MURcXHU4OTYwXFx1ODk1RVwiXSxcbiAgICAgIFtcImViYTFcIiwgXCJcXHU4OTY2XFx1ODk2NFxcdTg5NkRcXHU4OTZBXFx1ODk2RlxcdTg5NzRcXHU4OTc3XFx1ODk3RVxcdTg5ODNcXHU4OTg4XFx1ODk4QVxcdTg5OTNcXHU4OTk4XFx1ODlBMVxcdTg5QTlcXHU4OUE2XFx1ODlBQ1xcdTg5QUZcXHU4OUIyXFx1ODlCQVxcdTg5QkRcXHU4OUJGXFx1ODlDMFxcdTg5REFcXHU4OURDXFx1ODlERFxcdTg5RTdcXHU4OUY0XFx1ODlGOFxcdThBMDNcXHU4QTE2XFx1OEExMFxcdThBMENcXHU4QTFCXFx1OEExRFxcdThBMjVcXHU4QTM2XFx1OEE0MVxcdThBNUJcXHU4QTUyXFx1OEE0NlxcdThBNDhcXHU4QTdDXFx1OEE2RFxcdThBNkNcXHU4QTYyXFx1OEE4NVxcdThBODJcXHU4QTg0XFx1OEFBOFxcdThBQTFcXHU4QTkxXFx1OEFBNVxcdThBQTZcXHU4QTlBXFx1OEFBM1xcdThBQzRcXHU4QUNEXFx1OEFDMlxcdThBREFcXHU4QUVCXFx1OEFGM1xcdThBRTdcXHU4QUU0XFx1OEFGMVxcdThCMTRcXHU4QUUwXFx1OEFFMlxcdThBRjdcXHU4QURFXFx1OEFEQlxcdThCMENcXHU4QjA3XFx1OEIxQVxcdThBRTFcXHU4QjE2XFx1OEIxMFxcdThCMTdcXHU4QjIwXFx1OEIzM1xcdTk3QUJcXHU4QjI2XFx1OEIyQlxcdThCM0VcXHU4QjI4XFx1OEI0MVxcdThCNENcXHU4QjRGXFx1OEI0RVxcdThCNDlcXHU4QjU2XFx1OEI1QlxcdThCNUFcXHU4QjZCXCJdLFxuICAgICAgW1wiZWNhMVwiLCBcIlxcdThCNUZcXHU4QjZDXFx1OEI2RlxcdThCNzRcXHU4QjdEXFx1OEI4MFxcdThCOENcXHU4QjhFXFx1OEI5MlxcdThCOTNcXHU4Qjk2XFx1OEI5OVxcdThCOUFcXHU4QzNBXFx1OEM0MVxcdThDM0ZcXHU4QzQ4XFx1OEM0Q1xcdThDNEVcXHU4QzUwXFx1OEM1NVxcdThDNjJcXHU4QzZDXFx1OEM3OFxcdThDN0FcXHU4QzgyXFx1OEM4OVxcdThDODVcXHU4QzhBXFx1OEM4RFxcdThDOEVcXHU4Qzk0XFx1OEM3Q1xcdThDOThcXHU2MjFEXFx1OENBRFxcdThDQUFcXHU4Q0JEXFx1OENCMlxcdThDQjNcXHU4Q0FFXFx1OENCNlxcdThDQzhcXHU4Q0MxXFx1OENFNFxcdThDRTNcXHU4Q0RBXFx1OENGRFxcdThDRkFcXHU4Q0ZCXFx1OEQwNFxcdThEMDVcXHU4RDBBXFx1OEQwN1xcdThEMEZcXHU4RDBEXFx1OEQxMFxcdTlGNEVcXHU4RDEzXFx1OENDRFxcdThEMTRcXHU4RDE2XFx1OEQ2N1xcdThENkRcXHU4RDcxXFx1OEQ3M1xcdThEODFcXHU4RDk5XFx1OERDMlxcdThEQkVcXHU4REJBXFx1OERDRlxcdThEREFcXHU4REQ2XFx1OERDQ1xcdThEREJcXHU4RENCXFx1OERFQVxcdThERUJcXHU4RERGXFx1OERFM1xcdThERkNcXHU4RTA4XFx1OEUwOVxcdThERkZcXHU4RTFEXFx1OEUxRVxcdThFMTBcXHU4RTFGXFx1OEU0MlxcdThFMzVcXHU4RTMwXFx1OEUzNFxcdThFNEFcIl0sXG4gICAgICBbXCJlZGExXCIsIFwiXFx1OEU0N1xcdThFNDlcXHU4RTRDXFx1OEU1MFxcdThFNDhcXHU4RTU5XFx1OEU2NFxcdThFNjBcXHU4RTJBXFx1OEU2M1xcdThFNTVcXHU4RTc2XFx1OEU3MlxcdThFN0NcXHU4RTgxXFx1OEU4N1xcdThFODVcXHU4RTg0XFx1OEU4QlxcdThFOEFcXHU4RTkzXFx1OEU5MVxcdThFOTRcXHU4RTk5XFx1OEVBQVxcdThFQTFcXHU4RUFDXFx1OEVCMFxcdThFQzZcXHU4RUIxXFx1OEVCRVxcdThFQzVcXHU4RUM4XFx1OEVDQlxcdThFREJcXHU4RUUzXFx1OEVGQ1xcdThFRkJcXHU4RUVCXFx1OEVGRVxcdThGMEFcXHU4RjA1XFx1OEYxNVxcdThGMTJcXHU4RjE5XFx1OEYxM1xcdThGMUNcXHU4RjFGXFx1OEYxQlxcdThGMENcXHU4RjI2XFx1OEYzM1xcdThGM0JcXHU4RjM5XFx1OEY0NVxcdThGNDJcXHU4RjNFXFx1OEY0Q1xcdThGNDlcXHU4RjQ2XFx1OEY0RVxcdThGNTdcXHU4RjVDXFx1OEY2MlxcdThGNjNcXHU4RjY0XFx1OEY5Q1xcdThGOUZcXHU4RkEzXFx1OEZBRFxcdThGQUZcXHU4RkI3XFx1OEZEQVxcdThGRTVcXHU4RkUyXFx1OEZFQVxcdThGRUZcXHU5MDg3XFx1OEZGNFxcdTkwMDVcXHU4RkY5XFx1OEZGQVxcdTkwMTFcXHU5MDE1XFx1OTAyMVxcdTkwMERcXHU5MDFFXFx1OTAxNlxcdTkwMEJcXHU5MDI3XFx1OTAzNlxcdTkwMzVcXHU5MDM5XFx1OEZGOFwiXSxcbiAgICAgIFtcImVlYTFcIiwgXCJcXHU5MDRGXFx1OTA1MFxcdTkwNTFcXHU5MDUyXFx1OTAwRVxcdTkwNDlcXHU5MDNFXFx1OTA1NlxcdTkwNThcXHU5MDVFXFx1OTA2OFxcdTkwNkZcXHU5MDc2XFx1OTZBOFxcdTkwNzJcXHU5MDgyXFx1OTA3RFxcdTkwODFcXHU5MDgwXFx1OTA4QVxcdTkwODlcXHU5MDhGXFx1OTBBOFxcdTkwQUZcXHU5MEIxXFx1OTBCNVxcdTkwRTJcXHU5MEU0XFx1NjI0OFxcdTkwREJcXHU5MTAyXFx1OTExMlxcdTkxMTlcXHU5MTMyXFx1OTEzMFxcdTkxNEFcXHU5MTU2XFx1OTE1OFxcdTkxNjNcXHU5MTY1XFx1OTE2OVxcdTkxNzNcXHU5MTcyXFx1OTE4QlxcdTkxODlcXHU5MTgyXFx1OTFBMlxcdTkxQUJcXHU5MUFGXFx1OTFBQVxcdTkxQjVcXHU5MUI0XFx1OTFCQVxcdTkxQzBcXHU5MUMxXFx1OTFDOVxcdTkxQ0JcXHU5MUQwXFx1OTFENlxcdTkxREZcXHU5MUUxXFx1OTFEQlxcdTkxRkNcXHU5MUY1XFx1OTFGNlxcdTkyMUVcXHU5MUZGXFx1OTIxNFxcdTkyMkNcXHU5MjE1XFx1OTIxMVxcdTkyNUVcXHU5MjU3XFx1OTI0NVxcdTkyNDlcXHU5MjY0XFx1OTI0OFxcdTkyOTVcXHU5MjNGXFx1OTI0QlxcdTkyNTBcXHU5MjlDXFx1OTI5NlxcdTkyOTNcXHU5MjlCXFx1OTI1QVxcdTkyQ0ZcXHU5MkI5XFx1OTJCN1xcdTkyRTlcXHU5MzBGXFx1OTJGQVxcdTkzNDRcXHU5MzJFXCJdLFxuICAgICAgW1wiZWZhMVwiLCBcIlxcdTkzMTlcXHU5MzIyXFx1OTMxQVxcdTkzMjNcXHU5MzNBXFx1OTMzNVxcdTkzM0JcXHU5MzVDXFx1OTM2MFxcdTkzN0NcXHU5MzZFXFx1OTM1NlxcdTkzQjBcXHU5M0FDXFx1OTNBRFxcdTkzOTRcXHU5M0I5XFx1OTNENlxcdTkzRDdcXHU5M0U4XFx1OTNFNVxcdTkzRDhcXHU5M0MzXFx1OTNERFxcdTkzRDBcXHU5M0M4XFx1OTNFNFxcdTk0MUFcXHU5NDE0XFx1OTQxM1xcdTk0MDNcXHU5NDA3XFx1OTQxMFxcdTk0MzZcXHU5NDJCXFx1OTQzNVxcdTk0MjFcXHU5NDNBXFx1OTQ0MVxcdTk0NTJcXHU5NDQ0XFx1OTQ1QlxcdTk0NjBcXHU5NDYyXFx1OTQ1RVxcdTk0NkFcXHU5MjI5XFx1OTQ3MFxcdTk0NzVcXHU5NDc3XFx1OTQ3RFxcdTk0NUFcXHU5NDdDXFx1OTQ3RVxcdTk0ODFcXHU5NDdGXFx1OTU4MlxcdTk1ODdcXHU5NThBXFx1OTU5NFxcdTk1OTZcXHU5NTk4XFx1OTU5OVxcdTk1QTBcXHU5NUE4XFx1OTVBN1xcdTk1QURcXHU5NUJDXFx1OTVCQlxcdTk1QjlcXHU5NUJFXFx1OTVDQVxcdTZGRjZcXHU5NUMzXFx1OTVDRFxcdTk1Q0NcXHU5NUQ1XFx1OTVENFxcdTk1RDZcXHU5NURDXFx1OTVFMVxcdTk1RTVcXHU5NUUyXFx1OTYyMVxcdTk2MjhcXHU5NjJFXFx1OTYyRlxcdTk2NDJcXHU5NjRDXFx1OTY0RlxcdTk2NEJcXHU5Njc3XFx1OTY1Q1xcdTk2NUVcIl0sXG4gICAgICBbXCJmMGExXCIsIFwiXFx1OTY1RFxcdTk2NUZcXHU5NjY2XFx1OTY3MlxcdTk2NkNcXHU5NjhEXFx1OTY5OFxcdTk2OTVcXHU5Njk3XFx1OTZBQVxcdTk2QTdcXHU5NkIxXFx1OTZCMlxcdTk2QjBcXHU5NkI0XFx1OTZCNlxcdTk2QjhcXHU5NkI5XFx1OTZDRVxcdTk2Q0JcXHU5NkM5XFx1OTZDRFxcdTg5NERcXHU5NkRDXFx1OTcwRFxcdTk2RDVcXHU5NkY5XFx1OTcwNFxcdTk3MDZcXHU5NzA4XFx1OTcxM1xcdTk3MEVcXHU5NzExXFx1OTcwRlxcdTk3MTZcXHU5NzE5XFx1OTcyNFxcdTk3MkFcXHU5NzMwXFx1OTczOVxcdTk3M0RcXHU5NzNFXFx1OTc0NFxcdTk3NDZcXHU5NzQ4XFx1OTc0MlxcdTk3NDlcXHU5NzVDXFx1OTc2MFxcdTk3NjRcXHU5NzY2XFx1OTc2OFxcdTUyRDJcXHU5NzZCXFx1OTc3MVxcdTk3NzlcXHU5Nzg1XFx1OTc3Q1xcdTk3ODFcXHU5NzdBXFx1OTc4NlxcdTk3OEJcXHU5NzhGXFx1OTc5MFxcdTk3OUNcXHU5N0E4XFx1OTdBNlxcdTk3QTNcXHU5N0IzXFx1OTdCNFxcdTk3QzNcXHU5N0M2XFx1OTdDOFxcdTk3Q0JcXHU5N0RDXFx1OTdFRFxcdTlGNEZcXHU5N0YyXFx1N0FERlxcdTk3RjZcXHU5N0Y1XFx1OTgwRlxcdTk4MENcXHU5ODM4XFx1OTgyNFxcdTk4MjFcXHU5ODM3XFx1OTgzRFxcdTk4NDZcXHU5ODRGXFx1OTg0QlxcdTk4NkJcXHU5ODZGXFx1OTg3MFwiXSxcbiAgICAgIFtcImYxYTFcIiwgXCJcXHU5ODcxXFx1OTg3NFxcdTk4NzNcXHU5OEFBXFx1OThBRlxcdTk4QjFcXHU5OEI2XFx1OThDNFxcdTk4QzNcXHU5OEM2XFx1OThFOVxcdTk4RUJcXHU5OTAzXFx1OTkwOVxcdTk5MTJcXHU5OTE0XFx1OTkxOFxcdTk5MjFcXHU5OTFEXFx1OTkxRVxcdTk5MjRcXHU5OTIwXFx1OTkyQ1xcdTk5MkVcXHU5OTNEXFx1OTkzRVxcdTk5NDJcXHU5OTQ5XFx1OTk0NVxcdTk5NTBcXHU5OTRCXFx1OTk1MVxcdTk5NTJcXHU5OTRDXFx1OTk1NVxcdTk5OTdcXHU5OTk4XFx1OTlBNVxcdTk5QURcXHU5OUFFXFx1OTlCQ1xcdTk5REZcXHU5OURCXFx1OTlERFxcdTk5RDhcXHU5OUQxXFx1OTlFRFxcdTk5RUVcXHU5OUYxXFx1OTlGMlxcdTk5RkJcXHU5OUY4XFx1OUEwMVxcdTlBMEZcXHU5QTA1XFx1OTlFMlxcdTlBMTlcXHU5QTJCXFx1OUEzN1xcdTlBNDVcXHU5QTQyXFx1OUE0MFxcdTlBNDNcXHU5QTNFXFx1OUE1NVxcdTlBNERcXHU5QTVCXFx1OUE1N1xcdTlBNUZcXHU5QTYyXFx1OUE2NVxcdTlBNjRcXHU5QTY5XFx1OUE2QlxcdTlBNkFcXHU5QUFEXFx1OUFCMFxcdTlBQkNcXHU5QUMwXFx1OUFDRlxcdTlBRDFcXHU5QUQzXFx1OUFENFxcdTlBREVcXHU5QURGXFx1OUFFMlxcdTlBRTNcXHU5QUU2XFx1OUFFRlxcdTlBRUJcXHU5QUVFXFx1OUFGNFxcdTlBRjFcXHU5QUY3XCJdLFxuICAgICAgW1wiZjJhMVwiLCBcIlxcdTlBRkJcXHU5QjA2XFx1OUIxOFxcdTlCMUFcXHU5QjFGXFx1OUIyMlxcdTlCMjNcXHU5QjI1XFx1OUIyN1xcdTlCMjhcXHU5QjI5XFx1OUIyQVxcdTlCMkVcXHU5QjJGXFx1OUIzMlxcdTlCNDRcXHU5QjQzXFx1OUI0RlxcdTlCNERcXHU5QjRFXFx1OUI1MVxcdTlCNThcXHU5Qjc0XFx1OUI5M1xcdTlCODNcXHU5QjkxXFx1OUI5NlxcdTlCOTdcXHU5QjlGXFx1OUJBMFxcdTlCQThcXHU5QkI0XFx1OUJDMFxcdTlCQ0FcXHU5QkI5XFx1OUJDNlxcdTlCQ0ZcXHU5QkQxXFx1OUJEMlxcdTlCRTNcXHU5QkUyXFx1OUJFNFxcdTlCRDRcXHU5QkUxXFx1OUMzQVxcdTlCRjJcXHU5QkYxXFx1OUJGMFxcdTlDMTVcXHU5QzE0XFx1OUMwOVxcdTlDMTNcXHU5QzBDXFx1OUMwNlxcdTlDMDhcXHU5QzEyXFx1OUMwQVxcdTlDMDRcXHU5QzJFXFx1OUMxQlxcdTlDMjVcXHU5QzI0XFx1OUMyMVxcdTlDMzBcXHU5QzQ3XFx1OUMzMlxcdTlDNDZcXHU5QzNFXFx1OUM1QVxcdTlDNjBcXHU5QzY3XFx1OUM3NlxcdTlDNzhcXHU5Q0U3XFx1OUNFQ1xcdTlDRjBcXHU5RDA5XFx1OUQwOFxcdTlDRUJcXHU5RDAzXFx1OUQwNlxcdTlEMkFcXHU5RDI2XFx1OURBRlxcdTlEMjNcXHU5RDFGXFx1OUQ0NFxcdTlEMTVcXHU5RDEyXFx1OUQ0MVxcdTlEM0ZcXHU5RDNFXFx1OUQ0NlxcdTlENDhcIl0sXG4gICAgICBbXCJmM2ExXCIsIFwiXFx1OUQ1RFxcdTlENUVcXHU5RDY0XFx1OUQ1MVxcdTlENTBcXHU5RDU5XFx1OUQ3MlxcdTlEODlcXHU5RDg3XFx1OURBQlxcdTlENkZcXHU5RDdBXFx1OUQ5QVxcdTlEQTRcXHU5REE5XFx1OURCMlxcdTlEQzRcXHU5REMxXFx1OURCQlxcdTlEQjhcXHU5REJBXFx1OURDNlxcdTlEQ0ZcXHU5REMyXFx1OUREOVxcdTlERDNcXHU5REY4XFx1OURFNlxcdTlERURcXHU5REVGXFx1OURGRFxcdTlFMUFcXHU5RTFCXFx1OUUxRVxcdTlFNzVcXHU5RTc5XFx1OUU3RFxcdTlFODFcXHU5RTg4XFx1OUU4QlxcdTlFOENcXHU5RTkyXFx1OUU5NVxcdTlFOTFcXHU5RTlEXFx1OUVBNVxcdTlFQTlcXHU5RUI4XFx1OUVBQVxcdTlFQURcXHU5NzYxXFx1OUVDQ1xcdTlFQ0VcXHU5RUNGXFx1OUVEMFxcdTlFRDRcXHU5RURDXFx1OUVERVxcdTlFRERcXHU5RUUwXFx1OUVFNVxcdTlFRThcXHU5RUVGXFx1OUVGNFxcdTlFRjZcXHU5RUY3XFx1OUVGOVxcdTlFRkJcXHU5RUZDXFx1OUVGRFxcdTlGMDdcXHU5RjA4XFx1NzZCN1xcdTlGMTVcXHU5RjIxXFx1OUYyQ1xcdTlGM0VcXHU5RjRBXFx1OUY1MlxcdTlGNTRcXHU5RjYzXFx1OUY1RlxcdTlGNjBcXHU5RjYxXFx1OUY2NlxcdTlGNjdcXHU5RjZDXFx1OUY2QVxcdTlGNzdcXHU5RjcyXFx1OUY3NlxcdTlGOTVcXHU5RjlDXFx1OUZBMFwiXSxcbiAgICAgIFtcImY0YTFcIiwgXCJcXHU1ODJGXFx1NjlDN1xcdTkwNTlcXHU3NDY0XFx1NTFEQ1xcdTcxOTlcIl0sXG4gICAgICBbXCJmOWExXCIsIFwiXFx1N0U4QVxcdTg5MUNcXHU5MzQ4XFx1OTI4OFxcdTg0RENcXHU0RkM5XFx1NzBCQlxcdTY2MzFcXHU2OEM4XFx1OTJGOVxcdTY2RkJcXHU1RjQ1XFx1NEUyOFxcdTRFRTFcXHU0RUZDXFx1NEYwMFxcdTRGMDNcXHU0RjM5XFx1NEY1NlxcdTRGOTJcXHU0RjhBXFx1NEY5QVxcdTRGOTRcXHU0RkNEXFx1NTA0MFxcdTUwMjJcXHU0RkZGXFx1NTAxRVxcdTUwNDZcXHU1MDcwXFx1NTA0MlxcdTUwOTRcXHU1MEY0XFx1NTBEOFxcdTUxNEFcXHU1MTY0XFx1NTE5RFxcdTUxQkVcXHU1MUVDXFx1NTIxNVxcdTUyOUNcXHU1MkE2XFx1NTJDMFxcdTUyREJcXHU1MzAwXFx1NTMwN1xcdTUzMjRcXHU1MzcyXFx1NTM5M1xcdTUzQjJcXHU1M0REXFx1RkEwRVxcdTU0OUNcXHU1NDhBXFx1NTRBOVxcdTU0RkZcXHU1NTg2XFx1NTc1OVxcdTU3NjVcXHU1N0FDXFx1NTdDOFxcdTU3QzdcXHVGQTBGXFx1RkExMFxcdTU4OUVcXHU1OEIyXFx1NTkwQlxcdTU5NTNcXHU1OTVCXFx1NTk1RFxcdTU5NjNcXHU1OUE0XFx1NTlCQVxcdTVCNTZcXHU1QkMwXFx1NzUyRlxcdTVCRDhcXHU1QkVDXFx1NUMxRVxcdTVDQTZcXHU1Q0JBXFx1NUNGNVxcdTVEMjdcXHU1RDUzXFx1RkExMVxcdTVENDJcXHU1RDZEXFx1NURCOFxcdTVEQjlcXHU1REQwXFx1NUYyMVxcdTVGMzRcXHU1RjY3XFx1NUZCN1wiXSxcbiAgICAgIFtcImZhYTFcIiwgXCJcXHU1RkRFXFx1NjA1RFxcdTYwODVcXHU2MDhBXFx1NjBERVxcdTYwRDVcXHU2MTIwXFx1NjBGMlxcdTYxMTFcXHU2MTM3XFx1NjEzMFxcdTYxOThcXHU2MjEzXFx1NjJBNlxcdTYzRjVcXHU2NDYwXFx1NjQ5RFxcdTY0Q0VcXHU2NTRFXFx1NjYwMFxcdTY2MTVcXHU2NjNCXFx1NjYwOVxcdTY2MkVcXHU2NjFFXFx1NjYyNFxcdTY2NjVcXHU2NjU3XFx1NjY1OVxcdUZBMTJcXHU2NjczXFx1NjY5OVxcdTY2QTBcXHU2NkIyXFx1NjZCRlxcdTY2RkFcXHU2NzBFXFx1RjkyOVxcdTY3NjZcXHU2N0JCXFx1Njg1MlxcdTY3QzBcXHU2ODAxXFx1Njg0NFxcdTY4Q0ZcXHVGQTEzXFx1Njk2OFxcdUZBMTRcXHU2OTk4XFx1NjlFMlxcdTZBMzBcXHU2QTZCXFx1NkE0NlxcdTZBNzNcXHU2QTdFXFx1NkFFMlxcdTZBRTRcXHU2QkQ2XFx1NkMzRlxcdTZDNUNcXHU2Qzg2XFx1NkM2RlxcdTZDREFcXHU2RDA0XFx1NkQ4N1xcdTZENkZcXHU2RDk2XFx1NkRBQ1xcdTZEQ0ZcXHU2REY4XFx1NkRGMlxcdTZERkNcXHU2RTM5XFx1NkU1Q1xcdTZFMjdcXHU2RTNDXFx1NkVCRlxcdTZGODhcXHU2RkI1XFx1NkZGNVxcdTcwMDVcXHU3MDA3XFx1NzAyOFxcdTcwODVcXHU3MEFCXFx1NzEwRlxcdTcxMDRcXHU3MTVDXFx1NzE0NlxcdTcxNDdcXHVGQTE1XFx1NzFDMVxcdTcxRkVcXHU3MkIxXCJdLFxuICAgICAgW1wiZmJhMVwiLCBcIlxcdTcyQkVcXHU3MzI0XFx1RkExNlxcdTczNzdcXHU3M0JEXFx1NzNDOVxcdTczRDZcXHU3M0UzXFx1NzNEMlxcdTc0MDdcXHU3M0Y1XFx1NzQyNlxcdTc0MkFcXHU3NDI5XFx1NzQyRVxcdTc0NjJcXHU3NDg5XFx1NzQ5RlxcdTc1MDFcXHU3NTZGXFx1NzY4MlxcdTc2OUNcXHU3NjlFXFx1NzY5QlxcdTc2QTZcXHVGQTE3XFx1Nzc0NlxcdTUyQUZcXHU3ODIxXFx1Nzg0RVxcdTc4NjRcXHU3ODdBXFx1NzkzMFxcdUZBMThcXHVGQTE5XFx1RkExQVxcdTc5OTRcXHVGQTFCXFx1Nzk5QlxcdTdBRDFcXHU3QUU3XFx1RkExQ1xcdTdBRUJcXHU3QjlFXFx1RkExRFxcdTdENDhcXHU3RDVDXFx1N0RCN1xcdTdEQTBcXHU3REQ2XFx1N0U1MlxcdTdGNDdcXHU3RkExXFx1RkExRVxcdTgzMDFcXHU4MzYyXFx1ODM3RlxcdTgzQzdcXHU4M0Y2XFx1ODQ0OFxcdTg0QjRcXHU4NTUzXFx1ODU1OVxcdTg1NkJcXHVGQTFGXFx1ODVCMFxcdUZBMjBcXHVGQTIxXFx1ODgwN1xcdTg4RjVcXHU4QTEyXFx1OEEzN1xcdThBNzlcXHU4QUE3XFx1OEFCRVxcdThBREZcXHVGQTIyXFx1OEFGNlxcdThCNTNcXHU4QjdGXFx1OENGMFxcdThDRjRcXHU4RDEyXFx1OEQ3NlxcdUZBMjNcXHU4RUNGXFx1RkEyNFxcdUZBMjVcXHU5MDY3XFx1OTBERVxcdUZBMjZcXHU5MTE1XFx1OTEyN1xcdTkxREFcIl0sXG4gICAgICBbXCJmY2ExXCIsIFwiXFx1OTFEN1xcdTkxREVcXHU5MUVEXFx1OTFFRVxcdTkxRTRcXHU5MUU1XFx1OTIwNlxcdTkyMTBcXHU5MjBBXFx1OTIzQVxcdTkyNDBcXHU5MjNDXFx1OTI0RVxcdTkyNTlcXHU5MjUxXFx1OTIzOVxcdTkyNjdcXHU5MkE3XFx1OTI3N1xcdTkyNzhcXHU5MkU3XFx1OTJEN1xcdTkyRDlcXHU5MkQwXFx1RkEyN1xcdTkyRDVcXHU5MkUwXFx1OTJEM1xcdTkzMjVcXHU5MzIxXFx1OTJGQlxcdUZBMjhcXHU5MzFFXFx1OTJGRlxcdTkzMURcXHU5MzAyXFx1OTM3MFxcdTkzNTdcXHU5M0E0XFx1OTNDNlxcdTkzREVcXHU5M0Y4XFx1OTQzMVxcdTk0NDVcXHU5NDQ4XFx1OTU5MlxcdUY5RENcXHVGQTI5XFx1OTY5RFxcdTk2QUZcXHU5NzMzXFx1OTczQlxcdTk3NDNcXHU5NzREXFx1OTc0RlxcdTk3NTFcXHU5NzU1XFx1OTg1N1xcdTk4NjVcXHVGQTJBXFx1RkEyQlxcdTk5MjdcXHVGQTJDXFx1OTk5RVxcdTlBNEVcXHU5QUQ5XFx1OUFEQ1xcdTlCNzVcXHU5QjcyXFx1OUI4RlxcdTlCQjFcXHU5QkJCXFx1OUMwMFxcdTlENzBcXHU5RDZCXFx1RkEyRFxcdTlFMTlcXHU5RUQxXCJdLFxuICAgICAgW1wiZmNmMVwiLCBcIlxcdTIxNzBcIiwgOSwgXCJcXHVGRkUyXFx1RkZFNFxcdUZGMDdcXHVGRjAyXCJdLFxuICAgICAgW1wiOGZhMmFmXCIsIFwiXFx1MDJEOFxcdTAyQzdcXHhCOFxcdTAyRDlcXHUwMkREXFx4QUZcXHUwMkRCXFx1MDJEQVxcdUZGNUVcXHUwMzg0XFx1MDM4NVwiXSxcbiAgICAgIFtcIjhmYTJjMlwiLCBcIlxceEExXFx4QTZcXHhCRlwiXSxcbiAgICAgIFtcIjhmYTJlYlwiLCBcIlxceEJBXFx4QUFcXHhBOVxceEFFXFx1MjEyMlxceEE0XFx1MjExNlwiXSxcbiAgICAgIFtcIjhmYTZlMVwiLCBcIlxcdTAzODZcXHUwMzg4XFx1MDM4OVxcdTAzOEFcXHUwM0FBXCJdLFxuICAgICAgW1wiOGZhNmU3XCIsIFwiXFx1MDM4Q1wiXSxcbiAgICAgIFtcIjhmYTZlOVwiLCBcIlxcdTAzOEVcXHUwM0FCXCJdLFxuICAgICAgW1wiOGZhNmVjXCIsIFwiXFx1MDM4RlwiXSxcbiAgICAgIFtcIjhmYTZmMVwiLCBcIlxcdTAzQUNcXHUwM0FEXFx1MDNBRVxcdTAzQUZcXHUwM0NBXFx1MDM5MFxcdTAzQ0NcXHUwM0MyXFx1MDNDRFxcdTAzQ0JcXHUwM0IwXFx1MDNDRVwiXSxcbiAgICAgIFtcIjhmYTdjMlwiLCBcIlxcdTA0MDJcIiwgMTAsIFwiXFx1MDQwRVxcdTA0MEZcIl0sXG4gICAgICBbXCI4ZmE3ZjJcIiwgXCJcXHUwNDUyXCIsIDEwLCBcIlxcdTA0NUVcXHUwNDVGXCJdLFxuICAgICAgW1wiOGZhOWExXCIsIFwiXFx4QzZcXHUwMTEwXCJdLFxuICAgICAgW1wiOGZhOWE0XCIsIFwiXFx1MDEyNlwiXSxcbiAgICAgIFtcIjhmYTlhNlwiLCBcIlxcdTAxMzJcIl0sXG4gICAgICBbXCI4ZmE5YThcIiwgXCJcXHUwMTQxXFx1MDEzRlwiXSxcbiAgICAgIFtcIjhmYTlhYlwiLCBcIlxcdTAxNEFcXHhEOFxcdTAxNTJcIl0sXG4gICAgICBbXCI4ZmE5YWZcIiwgXCJcXHUwMTY2XFx4REVcIl0sXG4gICAgICBbXCI4ZmE5YzFcIiwgXCJcXHhFNlxcdTAxMTFcXHhGMFxcdTAxMjdcXHUwMTMxXFx1MDEzM1xcdTAxMzhcXHUwMTQyXFx1MDE0MFxcdTAxNDlcXHUwMTRCXFx4RjhcXHUwMTUzXFx4REZcXHUwMTY3XFx4RkVcIl0sXG4gICAgICBbXCI4ZmFhYTFcIiwgXCJcXHhDMVxceEMwXFx4QzRcXHhDMlxcdTAxMDJcXHUwMUNEXFx1MDEwMFxcdTAxMDRcXHhDNVxceEMzXFx1MDEwNlxcdTAxMDhcXHUwMTBDXFx4QzdcXHUwMTBBXFx1MDEwRVxceEM5XFx4QzhcXHhDQlxceENBXFx1MDExQVxcdTAxMTZcXHUwMTEyXFx1MDExOFwiXSxcbiAgICAgIFtcIjhmYWFiYVwiLCBcIlxcdTAxMUNcXHUwMTFFXFx1MDEyMlxcdTAxMjBcXHUwMTI0XFx4Q0RcXHhDQ1xceENGXFx4Q0VcXHUwMUNGXFx1MDEzMFxcdTAxMkFcXHUwMTJFXFx1MDEyOFxcdTAxMzRcXHUwMTM2XFx1MDEzOVxcdTAxM0RcXHUwMTNCXFx1MDE0M1xcdTAxNDdcXHUwMTQ1XFx4RDFcXHhEM1xceEQyXFx4RDZcXHhENFxcdTAxRDFcXHUwMTUwXFx1MDE0Q1xceEQ1XFx1MDE1NFxcdTAxNThcXHUwMTU2XFx1MDE1QVxcdTAxNUNcXHUwMTYwXFx1MDE1RVxcdTAxNjRcXHUwMTYyXFx4REFcXHhEOVxceERDXFx4REJcXHUwMTZDXFx1MDFEM1xcdTAxNzBcXHUwMTZBXFx1MDE3MlxcdTAxNkVcXHUwMTY4XFx1MDFEN1xcdTAxREJcXHUwMUQ5XFx1MDFENVxcdTAxNzRcXHhERFxcdTAxNzhcXHUwMTc2XFx1MDE3OVxcdTAxN0RcXHUwMTdCXCJdLFxuICAgICAgW1wiOGZhYmExXCIsIFwiXFx4RTFcXHhFMFxceEU0XFx4RTJcXHUwMTAzXFx1MDFDRVxcdTAxMDFcXHUwMTA1XFx4RTVcXHhFM1xcdTAxMDdcXHUwMTA5XFx1MDEwRFxceEU3XFx1MDEwQlxcdTAxMEZcXHhFOVxceEU4XFx4RUJcXHhFQVxcdTAxMUJcXHUwMTE3XFx1MDExM1xcdTAxMTlcXHUwMUY1XFx1MDExRFxcdTAxMUZcIl0sXG4gICAgICBbXCI4ZmFiYmRcIiwgXCJcXHUwMTIxXFx1MDEyNVxceEVEXFx4RUNcXHhFRlxceEVFXFx1MDFEMFwiXSxcbiAgICAgIFtcIjhmYWJjNVwiLCBcIlxcdTAxMkJcXHUwMTJGXFx1MDEyOVxcdTAxMzVcXHUwMTM3XFx1MDEzQVxcdTAxM0VcXHUwMTNDXFx1MDE0NFxcdTAxNDhcXHUwMTQ2XFx4RjFcXHhGM1xceEYyXFx4RjZcXHhGNFxcdTAxRDJcXHUwMTUxXFx1MDE0RFxceEY1XFx1MDE1NVxcdTAxNTlcXHUwMTU3XFx1MDE1QlxcdTAxNURcXHUwMTYxXFx1MDE1RlxcdTAxNjVcXHUwMTYzXFx4RkFcXHhGOVxceEZDXFx4RkJcXHUwMTZEXFx1MDFENFxcdTAxNzFcXHUwMTZCXFx1MDE3M1xcdTAxNkZcXHUwMTY5XFx1MDFEOFxcdTAxRENcXHUwMURBXFx1MDFENlxcdTAxNzVcXHhGRFxceEZGXFx1MDE3N1xcdTAxN0FcXHUwMTdFXFx1MDE3Q1wiXSxcbiAgICAgIFtcIjhmYjBhMVwiLCBcIlxcdTRFMDJcXHU0RTA0XFx1NEUwNVxcdTRFMENcXHU0RTEyXFx1NEUxRlxcdTRFMjNcXHU0RTI0XFx1NEUyOFxcdTRFMkJcXHU0RTJFXFx1NEUyRlxcdTRFMzBcXHU0RTM1XFx1NEU0MFxcdTRFNDFcXHU0RTQ0XFx1NEU0N1xcdTRFNTFcXHU0RTVBXFx1NEU1Q1xcdTRFNjNcXHU0RTY4XFx1NEU2OVxcdTRFNzRcXHU0RTc1XFx1NEU3OVxcdTRFN0ZcXHU0RThEXFx1NEU5NlxcdTRFOTdcXHU0RTlEXFx1NEVBRlxcdTRFQjlcXHU0RUMzXFx1NEVEMFxcdTRFREFcXHU0RURCXFx1NEVFMFxcdTRFRTFcXHU0RUUyXFx1NEVFOFxcdTRFRUZcXHU0RUYxXFx1NEVGM1xcdTRFRjVcXHU0RUZEXFx1NEVGRVxcdTRFRkZcXHU0RjAwXFx1NEYwMlxcdTRGMDNcXHU0RjA4XFx1NEYwQlxcdTRGMENcXHU0RjEyXFx1NEYxNVxcdTRGMTZcXHU0RjE3XFx1NEYxOVxcdTRGMkVcXHU0RjMxXFx1NEY2MFxcdTRGMzNcXHU0RjM1XFx1NEYzN1xcdTRGMzlcXHU0RjNCXFx1NEYzRVxcdTRGNDBcXHU0RjQyXFx1NEY0OFxcdTRGNDlcXHU0RjRCXFx1NEY0Q1xcdTRGNTJcXHU0RjU0XFx1NEY1NlxcdTRGNThcXHU0RjVGXFx1NEY2M1xcdTRGNkFcXHU0RjZDXFx1NEY2RVxcdTRGNzFcXHU0Rjc3XFx1NEY3OFxcdTRGNzlcXHU0RjdBXFx1NEY3RFxcdTRGN0VcXHU0RjgxXFx1NEY4MlxcdTRGODRcIl0sXG4gICAgICBbXCI4ZmIxYTFcIiwgXCJcXHU0Rjg1XFx1NEY4OVxcdTRGOEFcXHU0RjhDXFx1NEY4RVxcdTRGOTBcXHU0RjkyXFx1NEY5M1xcdTRGOTRcXHU0Rjk3XFx1NEY5OVxcdTRGOUFcXHU0RjlFXFx1NEY5RlxcdTRGQjJcXHU0RkI3XFx1NEZCOVxcdTRGQkJcXHU0RkJDXFx1NEZCRFxcdTRGQkVcXHU0RkMwXFx1NEZDMVxcdTRGQzVcXHU0RkM2XFx1NEZDOFxcdTRGQzlcXHU0RkNCXFx1NEZDQ1xcdTRGQ0RcXHU0RkNGXFx1NEZEMlxcdTRGRENcXHU0RkUwXFx1NEZFMlxcdTRGRjBcXHU0RkYyXFx1NEZGQ1xcdTRGRkRcXHU0RkZGXFx1NTAwMFxcdTUwMDFcXHU1MDA0XFx1NTAwN1xcdTUwMEFcXHU1MDBDXFx1NTAwRVxcdTUwMTBcXHU1MDEzXFx1NTAxN1xcdTUwMThcXHU1MDFCXFx1NTAxQ1xcdTUwMURcXHU1MDFFXFx1NTAyMlxcdTUwMjdcXHU1MDJFXFx1NTAzMFxcdTUwMzJcXHU1MDMzXFx1NTAzNVxcdTUwNDBcXHU1MDQxXFx1NTA0MlxcdTUwNDVcXHU1MDQ2XFx1NTA0QVxcdTUwNENcXHU1MDRFXFx1NTA1MVxcdTUwNTJcXHU1MDUzXFx1NTA1N1xcdTUwNTlcXHU1MDVGXFx1NTA2MFxcdTUwNjJcXHU1MDYzXFx1NTA2NlxcdTUwNjdcXHU1MDZBXFx1NTA2RFxcdTUwNzBcXHU1MDcxXFx1NTAzQlxcdTUwODFcXHU1MDgzXFx1NTA4NFxcdTUwODZcXHU1MDhBXFx1NTA4RVxcdTUwOEZcXHU1MDkwXCJdLFxuICAgICAgW1wiOGZiMmExXCIsIFwiXFx1NTA5MlxcdTUwOTNcXHU1MDk0XFx1NTA5NlxcdTUwOUJcXHU1MDlDXFx1NTA5RVwiLCA0LCBcIlxcdTUwQUFcXHU1MEFGXFx1NTBCMFxcdTUwQjlcXHU1MEJBXFx1NTBCRFxcdTUwQzBcXHU1MEMzXFx1NTBDNFxcdTUwQzdcXHU1MENDXFx1NTBDRVxcdTUwRDBcXHU1MEQzXFx1NTBENFxcdTUwRDhcXHU1MERDXFx1NTBERFxcdTUwREZcXHU1MEUyXFx1NTBFNFxcdTUwRTZcXHU1MEU4XFx1NTBFOVxcdTUwRUZcXHU1MEYxXFx1NTBGNlxcdTUwRkFcXHU1MEZFXFx1NTEwM1xcdTUxMDZcXHU1MTA3XFx1NTEwOFxcdTUxMEJcXHU1MTBDXFx1NTEwRFxcdTUxMEVcXHU1MEYyXFx1NTExMFxcdTUxMTdcXHU1MTE5XFx1NTExQlxcdTUxMUNcXHU1MTFEXFx1NTExRVxcdTUxMjNcXHU1MTI3XFx1NTEyOFxcdTUxMkNcXHU1MTJEXFx1NTEyRlxcdTUxMzFcXHU1MTMzXFx1NTEzNFxcdTUxMzVcXHU1MTM4XFx1NTEzOVxcdTUxNDJcXHU1MTRBXFx1NTE0RlxcdTUxNTNcXHU1MTU1XFx1NTE1N1xcdTUxNThcXHU1MTVGXFx1NTE2NFxcdTUxNjZcXHU1MTdFXFx1NTE4M1xcdTUxODRcXHU1MThCXFx1NTE4RVxcdTUxOThcXHU1MTlEXFx1NTFBMVxcdTUxQTNcXHU1MUFEXFx1NTFCOFxcdTUxQkFcXHU1MUJDXFx1NTFCRVxcdTUxQkZcXHU1MUMyXCJdLFxuICAgICAgW1wiOGZiM2ExXCIsIFwiXFx1NTFDOFxcdTUxQ0ZcXHU1MUQxXFx1NTFEMlxcdTUxRDNcXHU1MUQ1XFx1NTFEOFxcdTUxREVcXHU1MUUyXFx1NTFFNVxcdTUxRUVcXHU1MUYyXFx1NTFGM1xcdTUxRjRcXHU1MUY3XFx1NTIwMVxcdTUyMDJcXHU1MjA1XFx1NTIxMlxcdTUyMTNcXHU1MjE1XFx1NTIxNlxcdTUyMThcXHU1MjIyXFx1NTIyOFxcdTUyMzFcXHU1MjMyXFx1NTIzNVxcdTUyM0NcXHU1MjQ1XFx1NTI0OVxcdTUyNTVcXHU1MjU3XFx1NTI1OFxcdTUyNUFcXHU1MjVDXFx1NTI1RlxcdTUyNjBcXHU1MjYxXFx1NTI2NlxcdTUyNkVcXHU1Mjc3XFx1NTI3OFxcdTUyNzlcXHU1MjgwXFx1NTI4MlxcdTUyODVcXHU1MjhBXFx1NTI4Q1xcdTUyOTNcXHU1Mjk1XFx1NTI5NlxcdTUyOTdcXHU1Mjk4XFx1NTI5QVxcdTUyOUNcXHU1MkE0XFx1NTJBNVxcdTUyQTZcXHU1MkE3XFx1NTJBRlxcdTUyQjBcXHU1MkI2XFx1NTJCN1xcdTUyQjhcXHU1MkJBXFx1NTJCQlxcdTUyQkRcXHU1MkMwXFx1NTJDNFxcdTUyQzZcXHU1MkM4XFx1NTJDQ1xcdTUyQ0ZcXHU1MkQxXFx1NTJENFxcdTUyRDZcXHU1MkRCXFx1NTJEQ1xcdTUyRTFcXHU1MkU1XFx1NTJFOFxcdTUyRTlcXHU1MkVBXFx1NTJFQ1xcdTUyRjBcXHU1MkYxXFx1NTJGNFxcdTUyRjZcXHU1MkY3XFx1NTMwMFxcdTUzMDNcXHU1MzBBXFx1NTMwQlwiXSxcbiAgICAgIFtcIjhmYjRhMVwiLCBcIlxcdTUzMENcXHU1MzExXFx1NTMxM1xcdTUzMThcXHU1MzFCXFx1NTMxQ1xcdTUzMUVcXHU1MzFGXFx1NTMyNVxcdTUzMjdcXHU1MzI4XFx1NTMyOVxcdTUzMkJcXHU1MzJDXFx1NTMyRFxcdTUzMzBcXHU1MzMyXFx1NTMzNVxcdTUzM0NcXHU1MzNEXFx1NTMzRVxcdTUzNDJcXHU1MzRDXFx1NTM0QlxcdTUzNTlcXHU1MzVCXFx1NTM2MVxcdTUzNjNcXHU1MzY1XFx1NTM2Q1xcdTUzNkRcXHU1MzcyXFx1NTM3OVxcdTUzN0VcXHU1MzgzXFx1NTM4N1xcdTUzODhcXHU1MzhFXFx1NTM5M1xcdTUzOTRcXHU1Mzk5XFx1NTM5RFxcdTUzQTFcXHU1M0E0XFx1NTNBQVxcdTUzQUJcXHU1M0FGXFx1NTNCMlxcdTUzQjRcXHU1M0I1XFx1NTNCN1xcdTUzQjhcXHU1M0JBXFx1NTNCRFxcdTUzQzBcXHU1M0M1XFx1NTNDRlxcdTUzRDJcXHU1M0QzXFx1NTNENVxcdTUzREFcXHU1M0REXFx1NTNERVxcdTUzRTBcXHU1M0U2XFx1NTNFN1xcdTUzRjVcXHU1NDAyXFx1NTQxM1xcdTU0MUFcXHU1NDIxXFx1NTQyN1xcdTU0MjhcXHU1NDJBXFx1NTQyRlxcdTU0MzFcXHU1NDM0XFx1NTQzNVxcdTU0NDNcXHU1NDQ0XFx1NTQ0N1xcdTU0NERcXHU1NDRGXFx1NTQ1RVxcdTU0NjJcXHU1NDY0XFx1NTQ2NlxcdTU0NjdcXHU1NDY5XFx1NTQ2QlxcdTU0NkRcXHU1NDZFXFx1NTQ3NFxcdTU0N0ZcIl0sXG4gICAgICBbXCI4ZmI1YTFcIiwgXCJcXHU1NDgxXFx1NTQ4M1xcdTU0ODVcXHU1NDg4XFx1NTQ4OVxcdTU0OERcXHU1NDkxXFx1NTQ5NVxcdTU0OTZcXHU1NDlDXFx1NTQ5RlxcdTU0QTFcXHU1NEE2XFx1NTRBN1xcdTU0QTlcXHU1NEFBXFx1NTRBRFxcdTU0QUVcXHU1NEIxXFx1NTRCN1xcdTU0QjlcXHU1NEJBXFx1NTRCQlxcdTU0QkZcXHU1NEM2XFx1NTRDQVxcdTU0Q0RcXHU1NENFXFx1NTRFMFxcdTU0RUFcXHU1NEVDXFx1NTRFRlxcdTU0RjZcXHU1NEZDXFx1NTRGRVxcdTU0RkZcXHU1NTAwXFx1NTUwMVxcdTU1MDVcXHU1NTA4XFx1NTUwOVxcdTU1MENcXHU1NTBEXFx1NTUwRVxcdTU1MTVcXHU1NTJBXFx1NTUyQlxcdTU1MzJcXHU1NTM1XFx1NTUzNlxcdTU1M0JcXHU1NTNDXFx1NTUzRFxcdTU1NDFcXHU1NTQ3XFx1NTU0OVxcdTU1NEFcXHU1NTREXFx1NTU1MFxcdTU1NTFcXHU1NTU4XFx1NTU1QVxcdTU1NUJcXHU1NTVFXFx1NTU2MFxcdTU1NjFcXHU1NTY0XFx1NTU2NlxcdTU1N0ZcXHU1NTgxXFx1NTU4MlxcdTU1ODZcXHU1NTg4XFx1NTU4RVxcdTU1OEZcXHU1NTkxXFx1NTU5MlxcdTU1OTNcXHU1NTk0XFx1NTU5N1xcdTU1QTNcXHU1NUE0XFx1NTVBRFxcdTU1QjJcXHU1NUJGXFx1NTVDMVxcdTU1QzNcXHU1NUM2XFx1NTVDOVxcdTU1Q0JcXHU1NUNDXFx1NTVDRVxcdTU1RDFcXHU1NUQyXCJdLFxuICAgICAgW1wiOGZiNmExXCIsIFwiXFx1NTVEM1xcdTU1RDdcXHU1NUQ4XFx1NTVEQlxcdTU1REVcXHU1NUUyXFx1NTVFOVxcdTU1RjZcXHU1NUZGXFx1NTYwNVxcdTU2MDhcXHU1NjBBXFx1NTYwRFwiLCA1LCBcIlxcdTU2MTlcXHU1NjJDXFx1NTYzMFxcdTU2MzNcXHU1NjM1XFx1NTYzN1xcdTU2MzlcXHU1NjNCXFx1NTYzQ1xcdTU2M0RcXHU1NjNGXFx1NTY0MFxcdTU2NDFcXHU1NjQzXFx1NTY0NFxcdTU2NDZcXHU1NjQ5XFx1NTY0QlxcdTU2NERcXHU1NjRGXFx1NTY1NFxcdTU2NUVcXHU1NjYwXFx1NTY2MVxcdTU2NjJcXHU1NjYzXFx1NTY2NlxcdTU2NjlcXHU1NjZEXFx1NTY2RlxcdTU2NzFcXHU1NjcyXFx1NTY3NVxcdTU2ODRcXHU1Njg1XFx1NTY4OFxcdTU2OEJcXHU1NjhDXFx1NTY5NVxcdTU2OTlcXHU1NjlBXFx1NTY5RFxcdTU2OUVcXHU1NjlGXFx1NTZBNlxcdTU2QTdcXHU1NkE4XFx1NTZBOVxcdTU2QUJcXHU1NkFDXFx1NTZBRFxcdTU2QjFcXHU1NkIzXFx1NTZCN1xcdTU2QkVcXHU1NkM1XFx1NTZDOVxcdTU2Q0FcXHU1NkNCXFx1NTZDRlxcdTU2RDBcXHU1NkNDXFx1NTZDRFxcdTU2RDlcXHU1NkRDXFx1NTZERFxcdTU2REZcXHU1NkUxXFx1NTZFNFwiLCA0LCBcIlxcdTU2RjFcXHU1NkVCXFx1NTZFRFwiXSxcbiAgICAgIFtcIjhmYjdhMVwiLCBcIlxcdTU2RjZcXHU1NkY3XFx1NTcwMVxcdTU3MDJcXHU1NzA3XFx1NTcwQVxcdTU3MENcXHU1NzExXFx1NTcxNVxcdTU3MUFcXHU1NzFCXFx1NTcxRFxcdTU3MjBcXHU1NzIyXFx1NTcyM1xcdTU3MjRcXHU1NzI1XFx1NTcyOVxcdTU3MkFcXHU1NzJDXFx1NTcyRVxcdTU3MkZcXHU1NzMzXFx1NTczNFxcdTU3M0RcXHU1NzNFXFx1NTczRlxcdTU3NDVcXHU1NzQ2XFx1NTc0Q1xcdTU3NERcXHU1NzUyXFx1NTc2MlxcdTU3NjVcXHU1NzY3XFx1NTc2OFxcdTU3NkJcXHU1NzZEXCIsIDQsIFwiXFx1NTc3M1xcdTU3NzRcXHU1Nzc1XFx1NTc3N1xcdTU3NzlcXHU1NzdBXFx1NTc3QlxcdTU3N0NcXHU1NzdFXFx1NTc4MVxcdTU3ODNcXHU1NzhDXFx1NTc5NFxcdTU3OTdcXHU1Nzk5XFx1NTc5QVxcdTU3OUNcXHU1NzlEXFx1NTc5RVxcdTU3OUZcXHU1N0ExXFx1NTc5NVxcdTU3QTdcXHU1N0E4XFx1NTdBOVxcdTU3QUNcXHU1N0I4XFx1NTdCRFxcdTU3QzdcXHU1N0M4XFx1NTdDQ1xcdTU3Q0ZcXHU1N0Q1XFx1NTdERFxcdTU3REVcXHU1N0U0XFx1NTdFNlxcdTU3RTdcXHU1N0U5XFx1NTdFRFxcdTU3RjBcXHU1N0Y1XFx1NTdGNlxcdTU3RjhcXHU1N0ZEXFx1NTdGRVxcdTU3RkZcXHU1ODAzXFx1NTgwNFxcdTU4MDhcXHU1ODA5XFx1NTdFMVwiXSxcbiAgICAgIFtcIjhmYjhhMVwiLCBcIlxcdTU4MENcXHU1ODBEXFx1NTgxQlxcdTU4MUVcXHU1ODFGXFx1NTgyMFxcdTU4MjZcXHU1ODI3XFx1NTgyRFxcdTU4MzJcXHU1ODM5XFx1NTgzRlxcdTU4NDlcXHU1ODRDXFx1NTg0RFxcdTU4NEZcXHU1ODUwXFx1NTg1NVxcdTU4NUZcXHU1ODYxXFx1NTg2NFxcdTU4NjdcXHU1ODY4XFx1NTg3OFxcdTU4N0NcXHU1ODdGXFx1NTg4MFxcdTU4ODFcXHU1ODg3XFx1NTg4OFxcdTU4ODlcXHU1ODhBXFx1NTg4Q1xcdTU4OERcXHU1ODhGXFx1NTg5MFxcdTU4OTRcXHU1ODk2XFx1NTg5RFxcdTU4QTBcXHU1OEExXFx1NThBMlxcdTU4QTZcXHU1OEE5XFx1NThCMVxcdTU4QjJcXHU1OEM0XFx1NThCQ1xcdTU4QzJcXHU1OEM4XFx1NThDRFxcdTU4Q0VcXHU1OEQwXFx1NThEMlxcdTU4RDRcXHU1OEQ2XFx1NThEQVxcdTU4RERcXHU1OEUxXFx1NThFMlxcdTU4RTlcXHU1OEYzXFx1NTkwNVxcdTU5MDZcXHU1OTBCXFx1NTkwQ1xcdTU5MTJcXHU1OTEzXFx1NTkxNFxcdTg2NDFcXHU1OTFEXFx1NTkyMVxcdTU5MjNcXHU1OTI0XFx1NTkyOFxcdTU5MkZcXHU1OTMwXFx1NTkzM1xcdTU5MzVcXHU1OTM2XFx1NTkzRlxcdTU5NDNcXHU1OTQ2XFx1NTk1MlxcdTU5NTNcXHU1OTU5XFx1NTk1QlxcdTU5NURcXHU1OTVFXFx1NTk1RlxcdTU5NjFcXHU1OTYzXFx1NTk2QlxcdTU5NkRcIl0sXG4gICAgICBbXCI4ZmI5YTFcIiwgXCJcXHU1OTZGXFx1NTk3MlxcdTU5NzVcXHU1OTc2XFx1NTk3OVxcdTU5N0JcXHU1OTdDXFx1NTk4QlxcdTU5OENcXHU1OThFXFx1NTk5MlxcdTU5OTVcXHU1OTk3XFx1NTk5RlxcdTU5QTRcXHU1OUE3XFx1NTlBRFxcdTU5QUVcXHU1OUFGXFx1NTlCMFxcdTU5QjNcXHU1OUI3XFx1NTlCQVxcdTU5QkNcXHU1OUMxXFx1NTlDM1xcdTU5QzRcXHU1OUM4XFx1NTlDQVxcdTU5Q0RcXHU1OUQyXFx1NTlERFxcdTU5REVcXHU1OURGXFx1NTlFM1xcdTU5RTRcXHU1OUU3XFx1NTlFRVxcdTU5RUZcXHU1OUYxXFx1NTlGMlxcdTU5RjRcXHU1OUY3XFx1NUEwMFxcdTVBMDRcXHU1QTBDXFx1NUEwRFxcdTVBMEVcXHU1QTEyXFx1NUExM1xcdTVBMUVcXHU1QTIzXFx1NUEyNFxcdTVBMjdcXHU1QTI4XFx1NUEyQVxcdTVBMkRcXHU1QTMwXFx1NUE0NFxcdTVBNDVcXHU1QTQ3XFx1NUE0OFxcdTVBNENcXHU1QTUwXFx1NUE1NVxcdTVBNUVcXHU1QTYzXFx1NUE2NVxcdTVBNjdcXHU1QTZEXFx1NUE3N1xcdTVBN0FcXHU1QTdCXFx1NUE3RVxcdTVBOEJcXHU1QTkwXFx1NUE5M1xcdTVBOTZcXHU1QTk5XFx1NUE5Q1xcdTVBOUVcXHU1QTlGXFx1NUFBMFxcdTVBQTJcXHU1QUE3XFx1NUFBQ1xcdTVBQjFcXHU1QUIyXFx1NUFCM1xcdTVBQjVcXHU1QUI4XFx1NUFCQVxcdTVBQkJcXHU1QUJGXCJdLFxuICAgICAgW1wiOGZiYWExXCIsIFwiXFx1NUFDNFxcdTVBQzZcXHU1QUM4XFx1NUFDRlxcdTVBREFcXHU1QURDXFx1NUFFMFxcdTVBRTVcXHU1QUVBXFx1NUFFRVxcdTVBRjVcXHU1QUY2XFx1NUFGRFxcdTVCMDBcXHU1QjAxXFx1NUIwOFxcdTVCMTdcXHU1QjM0XFx1NUIxOVxcdTVCMUJcXHU1QjFEXFx1NUIyMVxcdTVCMjVcXHU1QjJEXFx1NUIzOFxcdTVCNDFcXHU1QjRCXFx1NUI0Q1xcdTVCNTJcXHU1QjU2XFx1NUI1RVxcdTVCNjhcXHU1QjZFXFx1NUI2RlxcdTVCN0NcXHU1QjdEXFx1NUI3RVxcdTVCN0ZcXHU1QjgxXFx1NUI4NFxcdTVCODZcXHU1QjhBXFx1NUI4RVxcdTVCOTBcXHU1QjkxXFx1NUI5M1xcdTVCOTRcXHU1Qjk2XFx1NUJBOFxcdTVCQTlcXHU1QkFDXFx1NUJBRFxcdTVCQUZcXHU1QkIxXFx1NUJCMlxcdTVCQjdcXHU1QkJBXFx1NUJCQ1xcdTVCQzBcXHU1QkMxXFx1NUJDRFxcdTVCQ0ZcXHU1QkQ2XCIsIDQsIFwiXFx1NUJFMFxcdTVCRUZcXHU1QkYxXFx1NUJGNFxcdTVCRkRcXHU1QzBDXFx1NUMxN1xcdTVDMUVcXHU1QzFGXFx1NUMyM1xcdTVDMjZcXHU1QzI5XFx1NUMyQlxcdTVDMkNcXHU1QzJFXFx1NUMzMFxcdTVDMzJcXHU1QzM1XFx1NUMzNlxcdTVDNTlcXHU1QzVBXFx1NUM1Q1xcdTVDNjJcXHU1QzYzXFx1NUM2N1xcdTVDNjhcXHU1QzY5XCJdLFxuICAgICAgW1wiOGZiYmExXCIsIFwiXFx1NUM2RFxcdTVDNzBcXHU1Qzc0XFx1NUM3NVxcdTVDN0FcXHU1QzdCXFx1NUM3Q1xcdTVDN0RcXHU1Qzg3XFx1NUM4OFxcdTVDOEFcXHU1QzhGXFx1NUM5MlxcdTVDOURcXHU1QzlGXFx1NUNBMFxcdTVDQTJcXHU1Q0EzXFx1NUNBNlxcdTVDQUFcXHU1Q0IyXFx1NUNCNFxcdTVDQjVcXHU1Q0JBXFx1NUNDOVxcdTVDQ0JcXHU1Q0QyXFx1NUNERFxcdTVDRDdcXHU1Q0VFXFx1NUNGMVxcdTVDRjJcXHU1Q0Y0XFx1NUQwMVxcdTVEMDZcXHU1RDBEXFx1NUQxMlxcdTVEMkJcXHU1RDIzXFx1NUQyNFxcdTVEMjZcXHU1RDI3XFx1NUQzMVxcdTVEMzRcXHU1RDM5XFx1NUQzRFxcdTVEM0ZcXHU1RDQyXFx1NUQ0M1xcdTVENDZcXHU1RDQ4XFx1NUQ1NVxcdTVENTFcXHU1RDU5XFx1NUQ0QVxcdTVENUZcXHU1RDYwXFx1NUQ2MVxcdTVENjJcXHU1RDY0XFx1NUQ2QVxcdTVENkRcXHU1RDcwXFx1NUQ3OVxcdTVEN0FcXHU1RDdFXFx1NUQ3RlxcdTVEODFcXHU1RDgzXFx1NUQ4OFxcdTVEOEFcXHU1RDkyXFx1NUQ5M1xcdTVEOTRcXHU1RDk1XFx1NUQ5OVxcdTVEOUJcXHU1RDlGXFx1NURBMFxcdTVEQTdcXHU1REFCXFx1NURCMFxcdTVEQjRcXHU1REI4XFx1NURCOVxcdTVEQzNcXHU1REM3XFx1NURDQlxcdTVERDBcXHU1RENFXFx1NUREOFxcdTVERDlcXHU1REUwXFx1NURFNFwiXSxcbiAgICAgIFtcIjhmYmNhMVwiLCBcIlxcdTVERTlcXHU1REY4XFx1NURGOVxcdTVFMDBcXHU1RTA3XFx1NUUwRFxcdTVFMTJcXHU1RTE0XFx1NUUxNVxcdTVFMThcXHU1RTFGXFx1NUUyMFxcdTVFMkVcXHU1RTI4XFx1NUUzMlxcdTVFMzVcXHU1RTNFXFx1NUU0QlxcdTVFNTBcXHU1RTQ5XFx1NUU1MVxcdTVFNTZcXHU1RTU4XFx1NUU1QlxcdTVFNUNcXHU1RTVFXFx1NUU2OFxcdTVFNkFcIiwgNCwgXCJcXHU1RTcwXFx1NUU4MFxcdTVFOEJcXHU1RThFXFx1NUVBMlxcdTVFQTRcXHU1RUE1XFx1NUVBOFxcdTVFQUFcXHU1RUFDXFx1NUVCMVxcdTVFQjNcXHU1RUJEXFx1NUVCRVxcdTVFQkZcXHU1RUM2XFx1NUVDQ1xcdTVFQ0JcXHU1RUNFXFx1NUVEMVxcdTVFRDJcXHU1RUQ0XFx1NUVENVxcdTVFRENcXHU1RURFXFx1NUVFNVxcdTVFRUJcXHU1RjAyXFx1NUYwNlxcdTVGMDdcXHU1RjA4XFx1NUYwRVxcdTVGMTlcXHU1RjFDXFx1NUYxRFxcdTVGMjFcXHU1RjIyXFx1NUYyM1xcdTVGMjRcXHU1RjI4XFx1NUYyQlxcdTVGMkNcXHU1RjJFXFx1NUYzMFxcdTVGMzRcXHU1RjM2XFx1NUYzQlxcdTVGM0RcXHU1RjNGXFx1NUY0MFxcdTVGNDRcXHU1RjQ1XFx1NUY0N1xcdTVGNERcXHU1RjUwXFx1NUY1NFxcdTVGNThcXHU1RjVCXFx1NUY2MFxcdTVGNjNcXHU1RjY0XFx1NUY2N1wiXSxcbiAgICAgIFtcIjhmYmRhMVwiLCBcIlxcdTVGNkZcXHU1RjcyXFx1NUY3NFxcdTVGNzVcXHU1Rjc4XFx1NUY3QVxcdTVGN0RcXHU1RjdFXFx1NUY4OVxcdTVGOERcXHU1RjhGXFx1NUY5NlxcdTVGOUNcXHU1RjlEXFx1NUZBMlxcdTVGQTdcXHU1RkFCXFx1NUZBNFxcdTVGQUNcXHU1RkFGXFx1NUZCMFxcdTVGQjFcXHU1RkI4XFx1NUZDNFxcdTVGQzdcXHU1RkM4XFx1NUZDOVxcdTVGQ0JcXHU1RkQwXCIsIDQsIFwiXFx1NUZERVxcdTVGRTFcXHU1RkUyXFx1NUZFOFxcdTVGRTlcXHU1RkVBXFx1NUZFQ1xcdTVGRURcXHU1RkVFXFx1NUZFRlxcdTVGRjJcXHU1RkYzXFx1NUZGNlxcdTVGRkFcXHU1RkZDXFx1NjAwN1xcdTYwMEFcXHU2MDBEXFx1NjAxM1xcdTYwMTRcXHU2MDE3XFx1NjAxOFxcdTYwMUFcXHU2MDFGXFx1NjAyNFxcdTYwMkRcXHU2MDMzXFx1NjAzNVxcdTYwNDBcXHU2MDQ3XFx1NjA0OFxcdTYwNDlcXHU2MDRDXFx1NjA1MVxcdTYwNTRcXHU2MDU2XFx1NjA1N1xcdTYwNURcXHU2MDYxXFx1NjA2N1xcdTYwNzFcXHU2MDdFXFx1NjA3RlxcdTYwODJcXHU2MDg2XFx1NjA4OFxcdTYwOEFcXHU2MDhFXFx1NjA5MVxcdTYwOTNcXHU2MDk1XFx1NjA5OFxcdTYwOURcXHU2MDlFXFx1NjBBMlxcdTYwQTRcXHU2MEE1XFx1NjBBOFxcdTYwQjBcXHU2MEIxXFx1NjBCN1wiXSxcbiAgICAgIFtcIjhmYmVhMVwiLCBcIlxcdTYwQkJcXHU2MEJFXFx1NjBDMlxcdTYwQzRcXHU2MEM4XFx1NjBDOVxcdTYwQ0FcXHU2MENCXFx1NjBDRVxcdTYwQ0ZcXHU2MEQ0XFx1NjBENVxcdTYwRDlcXHU2MERCXFx1NjBERFxcdTYwREVcXHU2MEUyXFx1NjBFNVxcdTYwRjJcXHU2MEY1XFx1NjBGOFxcdTYwRkNcXHU2MEZEXFx1NjEwMlxcdTYxMDdcXHU2MTBBXFx1NjEwQ1xcdTYxMTBcIiwgNCwgXCJcXHU2MTE2XFx1NjExN1xcdTYxMTlcXHU2MTFDXFx1NjExRVxcdTYxMjJcXHU2MTJBXFx1NjEyQlxcdTYxMzBcXHU2MTMxXFx1NjEzNVxcdTYxMzZcXHU2MTM3XFx1NjEzOVxcdTYxNDFcXHU2MTQ1XFx1NjE0NlxcdTYxNDlcXHU2MTVFXFx1NjE2MFxcdTYxNkNcXHU2MTcyXFx1NjE3OFxcdTYxN0JcXHU2MTdDXFx1NjE3RlxcdTYxODBcXHU2MTgxXFx1NjE4M1xcdTYxODRcXHU2MThCXFx1NjE4RFxcdTYxOTJcXHU2MTkzXFx1NjE5N1xcdTYxOThcXHU2MTlDXFx1NjE5RFxcdTYxOUZcXHU2MUEwXFx1NjFBNVxcdTYxQThcXHU2MUFBXFx1NjFBRFxcdTYxQjhcXHU2MUI5XFx1NjFCQ1xcdTYxQzBcXHU2MUMxXFx1NjFDMlxcdTYxQ0VcXHU2MUNGXFx1NjFENVxcdTYxRENcXHU2MUREXFx1NjFERVxcdTYxREZcXHU2MUUxXFx1NjFFMlxcdTYxRTdcXHU2MUU5XFx1NjFFNVwiXSxcbiAgICAgIFtcIjhmYmZhMVwiLCBcIlxcdTYxRUNcXHU2MUVEXFx1NjFFRlxcdTYyMDFcXHU2MjAzXFx1NjIwNFxcdTYyMDdcXHU2MjEzXFx1NjIxNVxcdTYyMUNcXHU2MjIwXFx1NjIyMlxcdTYyMjNcXHU2MjI3XFx1NjIyOVxcdTYyMkJcXHU2MjM5XFx1NjIzRFxcdTYyNDJcXHU2MjQzXFx1NjI0NFxcdTYyNDZcXHU2MjRDXFx1NjI1MFxcdTYyNTFcXHU2MjUyXFx1NjI1NFxcdTYyNTZcXHU2MjVBXFx1NjI1Q1xcdTYyNjRcXHU2MjZEXFx1NjI2RlxcdTYyNzNcXHU2MjdBXFx1NjI3RFxcdTYyOERcXHU2MjhFXFx1NjI4RlxcdTYyOTBcXHU2MkE2XFx1NjJBOFxcdTYyQjNcXHU2MkI2XFx1NjJCN1xcdTYyQkFcXHU2MkJFXFx1NjJCRlxcdTYyQzRcXHU2MkNFXFx1NjJENVxcdTYyRDZcXHU2MkRBXFx1NjJFQVxcdTYyRjJcXHU2MkY0XFx1NjJGQ1xcdTYyRkRcXHU2MzAzXFx1NjMwNFxcdTYzMEFcXHU2MzBCXFx1NjMwRFxcdTYzMTBcXHU2MzEzXFx1NjMxNlxcdTYzMThcXHU2MzI5XFx1NjMyQVxcdTYzMkRcXHU2MzM1XFx1NjMzNlxcdTYzMzlcXHU2MzNDXFx1NjM0MVxcdTYzNDJcXHU2MzQzXFx1NjM0NFxcdTYzNDZcXHU2MzRBXFx1NjM0QlxcdTYzNEVcXHU2MzUyXFx1NjM1M1xcdTYzNTRcXHU2MzU4XFx1NjM1QlxcdTYzNjVcXHU2MzY2XFx1NjM2Q1xcdTYzNkRcXHU2MzcxXFx1NjM3NFxcdTYzNzVcIl0sXG4gICAgICBbXCI4ZmMwYTFcIiwgXCJcXHU2Mzc4XFx1NjM3Q1xcdTYzN0RcXHU2MzdGXFx1NjM4MlxcdTYzODRcXHU2Mzg3XFx1NjM4QVxcdTYzOTBcXHU2Mzk0XFx1NjM5NVxcdTYzOTlcXHU2MzlBXFx1NjM5RVxcdTYzQTRcXHU2M0E2XFx1NjNBRFxcdTYzQUVcXHU2M0FGXFx1NjNCRFxcdTYzQzFcXHU2M0M1XFx1NjNDOFxcdTYzQ0VcXHU2M0QxXFx1NjNEM1xcdTYzRDRcXHU2M0Q1XFx1NjNEQ1xcdTYzRTBcXHU2M0U1XFx1NjNFQVxcdTYzRUNcXHU2M0YyXFx1NjNGM1xcdTYzRjVcXHU2M0Y4XFx1NjNGOVxcdTY0MDlcXHU2NDBBXFx1NjQxMFxcdTY0MTJcXHU2NDE0XFx1NjQxOFxcdTY0MUVcXHU2NDIwXFx1NjQyMlxcdTY0MjRcXHU2NDI1XFx1NjQyOVxcdTY0MkFcXHU2NDJGXFx1NjQzMFxcdTY0MzVcXHU2NDNEXFx1NjQzRlxcdTY0NEJcXHU2NDRGXFx1NjQ1MVxcdTY0NTJcXHU2NDUzXFx1NjQ1NFxcdTY0NUFcXHU2NDVCXFx1NjQ1Q1xcdTY0NURcXHU2NDVGXFx1NjQ2MFxcdTY0NjFcXHU2NDYzXFx1NjQ2RFxcdTY0NzNcXHU2NDc0XFx1NjQ3QlxcdTY0N0RcXHU2NDg1XFx1NjQ4N1xcdTY0OEZcXHU2NDkwXFx1NjQ5MVxcdTY0OThcXHU2NDk5XFx1NjQ5QlxcdTY0OURcXHU2NDlGXFx1NjRBMVxcdTY0QTNcXHU2NEE2XFx1NjRBOFxcdTY0QUNcXHU2NEIzXFx1NjRCRFxcdTY0QkVcXHU2NEJGXCJdLFxuICAgICAgW1wiOGZjMWExXCIsIFwiXFx1NjRDNFxcdTY0QzlcXHU2NENBXFx1NjRDQlxcdTY0Q0NcXHU2NENFXFx1NjREMFxcdTY0RDFcXHU2NEQ1XFx1NjREN1xcdTY0RTRcXHU2NEU1XFx1NjRFOVxcdTY0RUFcXHU2NEVEXFx1NjRGMFxcdTY0RjVcXHU2NEY3XFx1NjRGQlxcdTY0RkZcXHU2NTAxXFx1NjUwNFxcdTY1MDhcXHU2NTA5XFx1NjUwQVxcdTY1MEZcXHU2NTEzXFx1NjUxNFxcdTY1MTZcXHU2NTE5XFx1NjUxQlxcdTY1MUVcXHU2NTFGXFx1NjUyMlxcdTY1MjZcXHU2NTI5XFx1NjUyRVxcdTY1MzFcXHU2NTNBXFx1NjUzQ1xcdTY1M0RcXHU2NTQzXFx1NjU0N1xcdTY1NDlcXHU2NTUwXFx1NjU1MlxcdTY1NTRcXHU2NTVGXFx1NjU2MFxcdTY1NjdcXHU2NTZCXFx1NjU3QVxcdTY1N0RcXHU2NTgxXFx1NjU4NVxcdTY1OEFcXHU2NTkyXFx1NjU5NVxcdTY1OThcXHU2NTlEXFx1NjVBMFxcdTY1QTNcXHU2NUE2XFx1NjVBRVxcdTY1QjJcXHU2NUIzXFx1NjVCNFxcdTY1QkZcXHU2NUMyXFx1NjVDOFxcdTY1QzlcXHU2NUNFXFx1NjVEMFxcdTY1RDRcXHU2NUQ2XFx1NjVEOFxcdTY1REZcXHU2NUYwXFx1NjVGMlxcdTY1RjRcXHU2NUY1XFx1NjVGOVxcdTY1RkVcXHU2NUZGXFx1NjYwMFxcdTY2MDRcXHU2NjA4XFx1NjYwOVxcdTY2MERcXHU2NjExXFx1NjYxMlxcdTY2MTVcXHU2NjE2XFx1NjYxRFwiXSxcbiAgICAgIFtcIjhmYzJhMVwiLCBcIlxcdTY2MUVcXHU2NjIxXFx1NjYyMlxcdTY2MjNcXHU2NjI0XFx1NjYyNlxcdTY2MjlcXHU2NjJBXFx1NjYyQlxcdTY2MkNcXHU2NjJFXFx1NjYzMFxcdTY2MzFcXHU2NjMzXFx1NjYzOVxcdTY2MzdcXHU2NjQwXFx1NjY0NVxcdTY2NDZcXHU2NjRBXFx1NjY0Q1xcdTY2NTFcXHU2NjRFXFx1NjY1N1xcdTY2NThcXHU2NjU5XFx1NjY1QlxcdTY2NUNcXHU2NjYwXFx1NjY2MVxcdTY2RkJcXHU2NjZBXFx1NjY2QlxcdTY2NkNcXHU2NjdFXFx1NjY3M1xcdTY2NzVcXHU2NjdGXFx1NjY3N1xcdTY2NzhcXHU2Njc5XFx1NjY3QlxcdTY2ODBcXHU2NjdDXFx1NjY4QlxcdTY2OENcXHU2NjhEXFx1NjY5MFxcdTY2OTJcXHU2Njk5XFx1NjY5QVxcdTY2OUJcXHU2NjlDXFx1NjY5RlxcdTY2QTBcXHU2NkE0XFx1NjZBRFxcdTY2QjFcXHU2NkIyXFx1NjZCNVxcdTY2QkJcXHU2NkJGXFx1NjZDMFxcdTY2QzJcXHU2NkMzXFx1NjZDOFxcdTY2Q0NcXHU2NkNFXFx1NjZDRlxcdTY2RDRcXHU2NkRCXFx1NjZERlxcdTY2RThcXHU2NkVCXFx1NjZFQ1xcdTY2RUVcXHU2NkZBXFx1NjcwNVxcdTY3MDdcXHU2NzBFXFx1NjcxM1xcdTY3MTlcXHU2NzFDXFx1NjcyMFxcdTY3MjJcXHU2NzMzXFx1NjczRVxcdTY3NDVcXHU2NzQ3XFx1Njc0OFxcdTY3NENcXHU2NzU0XFx1Njc1NVxcdTY3NURcIl0sXG4gICAgICBbXCI4ZmMzYTFcIiwgXCJcXHU2NzY2XFx1Njc2Q1xcdTY3NkVcXHU2Nzc0XFx1Njc3NlxcdTY3N0JcXHU2NzgxXFx1Njc4NFxcdTY3OEVcXHU2NzhGXFx1Njc5MVxcdTY3OTNcXHU2Nzk2XFx1Njc5OFxcdTY3OTlcXHU2NzlCXFx1NjdCMFxcdTY3QjFcXHU2N0IyXFx1NjdCNVxcdTY3QkJcXHU2N0JDXFx1NjdCRFxcdTY3RjlcXHU2N0MwXFx1NjdDMlxcdTY3QzNcXHU2N0M1XFx1NjdDOFxcdTY3QzlcXHU2N0QyXFx1NjdEN1xcdTY3RDlcXHU2N0RDXFx1NjdFMVxcdTY3RTZcXHU2N0YwXFx1NjdGMlxcdTY3RjZcXHU2N0Y3XFx1Njg1MlxcdTY4MTRcXHU2ODE5XFx1NjgxRFxcdTY4MUZcXHU2ODI4XFx1NjgyN1xcdTY4MkNcXHU2ODJEXFx1NjgyRlxcdTY4MzBcXHU2ODMxXFx1NjgzM1xcdTY4M0JcXHU2ODNGXFx1Njg0NFxcdTY4NDVcXHU2ODRBXFx1Njg0Q1xcdTY4NTVcXHU2ODU3XFx1Njg1OFxcdTY4NUJcXHU2ODZCXFx1Njg2RVwiLCA0LCBcIlxcdTY4NzVcXHU2ODc5XFx1Njg3QVxcdTY4N0JcXHU2ODdDXFx1Njg4MlxcdTY4ODRcXHU2ODg2XFx1Njg4OFxcdTY4OTZcXHU2ODk4XFx1Njg5QVxcdTY4OUNcXHU2OEExXFx1NjhBM1xcdTY4QTVcXHU2OEE5XFx1NjhBQVxcdTY4QUVcXHU2OEIyXFx1NjhCQlxcdTY4QzVcXHU2OEM4XFx1NjhDQ1xcdTY4Q0ZcIl0sXG4gICAgICBbXCI4ZmM0YTFcIiwgXCJcXHU2OEQwXFx1NjhEMVxcdTY4RDNcXHU2OEQ2XFx1NjhEOVxcdTY4RENcXHU2OEREXFx1NjhFNVxcdTY4RThcXHU2OEVBXFx1NjhFQlxcdTY4RUNcXHU2OEVEXFx1NjhGMFxcdTY4RjFcXHU2OEY1XFx1NjhGNlxcdTY4RkJcXHU2OEZDXFx1NjhGRFxcdTY5MDZcXHU2OTA5XFx1NjkwQVxcdTY5MTBcXHU2OTExXFx1NjkxM1xcdTY5MTZcXHU2OTE3XFx1NjkzMVxcdTY5MzNcXHU2OTM1XFx1NjkzOFxcdTY5M0JcXHU2OTQyXFx1Njk0NVxcdTY5NDlcXHU2OTRFXFx1Njk1N1xcdTY5NUJcXHU2OTYzXFx1Njk2NFxcdTY5NjVcXHU2OTY2XFx1Njk2OFxcdTY5NjlcXHU2OTZDXFx1Njk3MFxcdTY5NzFcXHU2OTcyXFx1Njk3QVxcdTY5N0JcXHU2OTdGXFx1Njk4MFxcdTY5OERcXHU2OTkyXFx1Njk5NlxcdTY5OThcXHU2OUExXFx1NjlBNVxcdTY5QTZcXHU2OUE4XFx1NjlBQlxcdTY5QURcXHU2OUFGXFx1NjlCN1xcdTY5QjhcXHU2OUJBXFx1NjlCQ1xcdTY5QzVcXHU2OUM4XFx1NjlEMVxcdTY5RDZcXHU2OUQ3XFx1NjlFMlxcdTY5RTVcXHU2OUVFXFx1NjlFRlxcdTY5RjFcXHU2OUYzXFx1NjlGNVxcdTY5RkVcXHU2QTAwXFx1NkEwMVxcdTZBMDNcXHU2QTBGXFx1NkExMVxcdTZBMTVcXHU2QTFBXFx1NkExRFxcdTZBMjBcXHU2QTI0XFx1NkEyOFxcdTZBMzBcXHU2QTMyXCJdLFxuICAgICAgW1wiOGZjNWExXCIsIFwiXFx1NkEzNFxcdTZBMzdcXHU2QTNCXFx1NkEzRVxcdTZBM0ZcXHU2QTQ1XFx1NkE0NlxcdTZBNDlcXHU2QTRBXFx1NkE0RVxcdTZBNTBcXHU2QTUxXFx1NkE1MlxcdTZBNTVcXHU2QTU2XFx1NkE1QlxcdTZBNjRcXHU2QTY3XFx1NkE2QVxcdTZBNzFcXHU2QTczXFx1NkE3RVxcdTZBODFcXHU2QTgzXFx1NkE4NlxcdTZBODdcXHU2QTg5XFx1NkE4QlxcdTZBOTFcXHU2QTlCXFx1NkE5RFxcdTZBOUVcXHU2QTlGXFx1NkFBNVxcdTZBQUJcXHU2QUFGXFx1NkFCMFxcdTZBQjFcXHU2QUI0XFx1NkFCRFxcdTZBQkVcXHU2QUJGXFx1NkFDNlxcdTZBQzlcXHU2QUM4XFx1NkFDQ1xcdTZBRDBcXHU2QUQ0XFx1NkFENVxcdTZBRDZcXHU2QURDXFx1NkFERFxcdTZBRTRcXHU2QUU3XFx1NkFFQ1xcdTZBRjBcXHU2QUYxXFx1NkFGMlxcdTZBRkNcXHU2QUZEXFx1NkIwMlxcdTZCMDNcXHU2QjA2XFx1NkIwN1xcdTZCMDlcXHU2QjBGXFx1NkIxMFxcdTZCMTFcXHU2QjE3XFx1NkIxQlxcdTZCMUVcXHU2QjI0XFx1NkIyOFxcdTZCMkJcXHU2QjJDXFx1NkIyRlxcdTZCMzVcXHU2QjM2XFx1NkIzQlxcdTZCM0ZcXHU2QjQ2XFx1NkI0QVxcdTZCNERcXHU2QjUyXFx1NkI1NlxcdTZCNThcXHU2QjVEXFx1NkI2MFxcdTZCNjdcXHU2QjZCXFx1NkI2RVxcdTZCNzBcXHU2Qjc1XFx1NkI3RFwiXSxcbiAgICAgIFtcIjhmYzZhMVwiLCBcIlxcdTZCN0VcXHU2QjgyXFx1NkI4NVxcdTZCOTdcXHU2QjlCXFx1NkI5RlxcdTZCQTBcXHU2QkEyXFx1NkJBM1xcdTZCQThcXHU2QkE5XFx1NkJBQ1xcdTZCQURcXHU2QkFFXFx1NkJCMFxcdTZCQjhcXHU2QkI5XFx1NkJCRFxcdTZCQkVcXHU2QkMzXFx1NkJDNFxcdTZCQzlcXHU2QkNDXFx1NkJENlxcdTZCREFcXHU2QkUxXFx1NkJFM1xcdTZCRTZcXHU2QkU3XFx1NkJFRVxcdTZCRjFcXHU2QkY3XFx1NkJGOVxcdTZCRkZcXHU2QzAyXFx1NkMwNFxcdTZDMDVcXHU2QzA5XFx1NkMwRFxcdTZDMEVcXHU2QzEwXFx1NkMxMlxcdTZDMTlcXHU2QzFGXFx1NkMyNlxcdTZDMjdcXHU2QzI4XFx1NkMyQ1xcdTZDMkVcXHU2QzMzXFx1NkMzNVxcdTZDMzZcXHU2QzNBXFx1NkMzQlxcdTZDM0ZcXHU2QzRBXFx1NkM0QlxcdTZDNERcXHU2QzRGXFx1NkM1MlxcdTZDNTRcXHU2QzU5XFx1NkM1QlxcdTZDNUNcXHU2QzZCXFx1NkM2RFxcdTZDNkZcXHU2Qzc0XFx1NkM3NlxcdTZDNzhcXHU2Qzc5XFx1NkM3QlxcdTZDODVcXHU2Qzg2XFx1NkM4N1xcdTZDODlcXHU2Qzk0XFx1NkM5NVxcdTZDOTdcXHU2Qzk4XFx1NkM5Q1xcdTZDOUZcXHU2Q0IwXFx1NkNCMlxcdTZDQjRcXHU2Q0MyXFx1NkNDNlxcdTZDQ0RcXHU2Q0NGXFx1NkNEMFxcdTZDRDFcXHU2Q0QyXFx1NkNENFxcdTZDRDZcIl0sXG4gICAgICBbXCI4ZmM3YTFcIiwgXCJcXHU2Q0RBXFx1NkNEQ1xcdTZDRTBcXHU2Q0U3XFx1NkNFOVxcdTZDRUJcXHU2Q0VDXFx1NkNFRVxcdTZDRjJcXHU2Q0Y0XFx1NkQwNFxcdTZEMDdcXHU2RDBBXFx1NkQwRVxcdTZEMEZcXHU2RDExXFx1NkQxM1xcdTZEMUFcXHU2RDI2XFx1NkQyN1xcdTZEMjhcXHU2QzY3XFx1NkQyRVxcdTZEMkZcXHU2RDMxXFx1NkQzOVxcdTZEM0NcXHU2RDNGXFx1NkQ1N1xcdTZENUVcXHU2RDVGXFx1NkQ2MVxcdTZENjVcXHU2RDY3XFx1NkQ2RlxcdTZENzBcXHU2RDdDXFx1NkQ4MlxcdTZEODdcXHU2RDkxXFx1NkQ5MlxcdTZEOTRcXHU2RDk2XFx1NkQ5N1xcdTZEOThcXHU2REFBXFx1NkRBQ1xcdTZEQjRcXHU2REI3XFx1NkRCOVxcdTZEQkRcXHU2REJGXFx1NkRDNFxcdTZEQzhcXHU2RENBXFx1NkRDRVxcdTZEQ0ZcXHU2REQ2XFx1NkREQlxcdTZERERcXHU2RERGXFx1NkRFMFxcdTZERTJcXHU2REU1XFx1NkRFOVxcdTZERUZcXHU2REYwXFx1NkRGNFxcdTZERjZcXHU2REZDXFx1NkUwMFxcdTZFMDRcXHU2RTFFXFx1NkUyMlxcdTZFMjdcXHU2RTMyXFx1NkUzNlxcdTZFMzlcXHU2RTNCXFx1NkUzQ1xcdTZFNDRcXHU2RTQ1XFx1NkU0OFxcdTZFNDlcXHU2RTRCXFx1NkU0RlxcdTZFNTFcXHU2RTUyXFx1NkU1M1xcdTZFNTRcXHU2RTU3XFx1NkU1Q1xcdTZFNURcXHU2RTVFXCJdLFxuICAgICAgW1wiOGZjOGExXCIsIFwiXFx1NkU2MlxcdTZFNjNcXHU2RTY4XFx1NkU3M1xcdTZFN0JcXHU2RTdEXFx1NkU4RFxcdTZFOTNcXHU2RTk5XFx1NkVBMFxcdTZFQTdcXHU2RUFEXFx1NkVBRVxcdTZFQjFcXHU2RUIzXFx1NkVCQlxcdTZFQkZcXHU2RUMwXFx1NkVDMVxcdTZFQzNcXHU2RUM3XFx1NkVDOFxcdTZFQ0FcXHU2RUNEXFx1NkVDRVxcdTZFQ0ZcXHU2RUVCXFx1NkVFRFxcdTZFRUVcXHU2RUY5XFx1NkVGQlxcdTZFRkRcXHU2RjA0XFx1NkYwOFxcdTZGMEFcXHU2RjBDXFx1NkYwRFxcdTZGMTZcXHU2RjE4XFx1NkYxQVxcdTZGMUJcXHU2RjI2XFx1NkYyOVxcdTZGMkFcXHU2RjJGXFx1NkYzMFxcdTZGMzNcXHU2RjM2XFx1NkYzQlxcdTZGM0NcXHU2RjJEXFx1NkY0RlxcdTZGNTFcXHU2RjUyXFx1NkY1M1xcdTZGNTdcXHU2RjU5XFx1NkY1QVxcdTZGNURcXHU2RjVFXFx1NkY2MVxcdTZGNjJcXHU2RjY4XFx1NkY2Q1xcdTZGN0RcXHU2RjdFXFx1NkY4M1xcdTZGODdcXHU2Rjg4XFx1NkY4QlxcdTZGOENcXHU2RjhEXFx1NkY5MFxcdTZGOTJcXHU2RjkzXFx1NkY5NFxcdTZGOTZcXHU2RjlBXFx1NkY5RlxcdTZGQTBcXHU2RkE1XFx1NkZBNlxcdTZGQTdcXHU2RkE4XFx1NkZBRVxcdTZGQUZcXHU2RkIwXFx1NkZCNVxcdTZGQjZcXHU2RkJDXFx1NkZDNVxcdTZGQzdcXHU2RkM4XFx1NkZDQVwiXSxcbiAgICAgIFtcIjhmYzlhMVwiLCBcIlxcdTZGREFcXHU2RkRFXFx1NkZFOFxcdTZGRTlcXHU2RkYwXFx1NkZGNVxcdTZGRjlcXHU2RkZDXFx1NkZGRFxcdTcwMDBcXHU3MDA1XFx1NzAwNlxcdTcwMDdcXHU3MDBEXFx1NzAxN1xcdTcwMjBcXHU3MDIzXFx1NzAyRlxcdTcwMzRcXHU3MDM3XFx1NzAzOVxcdTcwM0NcXHU3MDQzXFx1NzA0NFxcdTcwNDhcXHU3MDQ5XFx1NzA0QVxcdTcwNEJcXHU3MDU0XFx1NzA1NVxcdTcwNURcXHU3MDVFXFx1NzA0RVxcdTcwNjRcXHU3MDY1XFx1NzA2Q1xcdTcwNkVcXHU3MDc1XFx1NzA3NlxcdTcwN0VcXHU3MDgxXFx1NzA4NVxcdTcwODZcXHU3MDk0XCIsIDQsIFwiXFx1NzA5QlxcdTcwQTRcXHU3MEFCXFx1NzBCMFxcdTcwQjFcXHU3MEI0XFx1NzBCN1xcdTcwQ0FcXHU3MEQxXFx1NzBEM1xcdTcwRDRcXHU3MEQ1XFx1NzBENlxcdTcwRDhcXHU3MERDXFx1NzBFNFxcdTcwRkFcXHU3MTAzXCIsIDQsIFwiXFx1NzEwQlxcdTcxMENcXHU3MTBGXFx1NzExRVxcdTcxMjBcXHU3MTJCXFx1NzEyRFxcdTcxMkZcXHU3MTMwXFx1NzEzMVxcdTcxMzhcXHU3MTQxXFx1NzE0NVxcdTcxNDZcXHU3MTQ3XFx1NzE0QVxcdTcxNEJcXHU3MTUwXFx1NzE1MlxcdTcxNTdcXHU3MTVBXFx1NzE1Q1xcdTcxNUVcXHU3MTYwXCJdLFxuICAgICAgW1wiOGZjYWExXCIsIFwiXFx1NzE2OFxcdTcxNzlcXHU3MTgwXFx1NzE4NVxcdTcxODdcXHU3MThDXFx1NzE5MlxcdTcxOUFcXHU3MTlCXFx1NzFBMFxcdTcxQTJcXHU3MUFGXFx1NzFCMFxcdTcxQjJcXHU3MUIzXFx1NzFCQVxcdTcxQkZcXHU3MUMwXFx1NzFDMVxcdTcxQzRcXHU3MUNCXFx1NzFDQ1xcdTcxRDNcXHU3MUQ2XFx1NzFEOVxcdTcxREFcXHU3MURDXFx1NzFGOFxcdTcxRkVcXHU3MjAwXFx1NzIwN1xcdTcyMDhcXHU3MjA5XFx1NzIxM1xcdTcyMTdcXHU3MjFBXFx1NzIxRFxcdTcyMUZcXHU3MjI0XFx1NzIyQlxcdTcyMkZcXHU3MjM0XFx1NzIzOFxcdTcyMzlcXHU3MjQxXFx1NzI0MlxcdTcyNDNcXHU3MjQ1XFx1NzI0RVxcdTcyNEZcXHU3MjUwXFx1NzI1M1xcdTcyNTVcXHU3MjU2XFx1NzI1QVxcdTcyNUNcXHU3MjVFXFx1NzI2MFxcdTcyNjNcXHU3MjY4XFx1NzI2QlxcdTcyNkVcXHU3MjZGXFx1NzI3MVxcdTcyNzdcXHU3Mjc4XFx1NzI3QlxcdTcyN0NcXHU3MjdGXFx1NzI4NFxcdTcyODlcXHU3MjhEXFx1NzI4RVxcdTcyOTNcXHU3MjlCXFx1NzJBOFxcdTcyQURcXHU3MkFFXFx1NzJCMVxcdTcyQjRcXHU3MkJFXFx1NzJDMVxcdTcyQzdcXHU3MkM5XFx1NzJDQ1xcdTcyRDVcXHU3MkQ2XFx1NzJEOFxcdTcyREZcXHU3MkU1XFx1NzJGM1xcdTcyRjRcXHU3MkZBXFx1NzJGQlwiXSxcbiAgICAgIFtcIjhmY2JhMVwiLCBcIlxcdTcyRkVcXHU3MzAyXFx1NzMwNFxcdTczMDVcXHU3MzA3XFx1NzMwQlxcdTczMERcXHU3MzEyXFx1NzMxM1xcdTczMThcXHU3MzE5XFx1NzMxRVxcdTczMjJcXHU3MzI0XFx1NzMyN1xcdTczMjhcXHU3MzJDXFx1NzMzMVxcdTczMzJcXHU3MzM1XFx1NzMzQVxcdTczM0JcXHU3MzNEXFx1NzM0M1xcdTczNERcXHU3MzUwXFx1NzM1MlxcdTczNTZcXHU3MzU4XFx1NzM1RFxcdTczNUVcXHU3MzVGXFx1NzM2MFxcdTczNjZcXHU3MzY3XFx1NzM2OVxcdTczNkJcXHU3MzZDXFx1NzM2RVxcdTczNkZcXHU3MzcxXFx1NzM3N1xcdTczNzlcXHU3MzdDXFx1NzM4MFxcdTczODFcXHU3MzgzXFx1NzM4NVxcdTczODZcXHU3MzhFXFx1NzM5MFxcdTczOTNcXHU3Mzk1XFx1NzM5N1xcdTczOThcXHU3MzlDXFx1NzM5RVxcdTczOUZcXHU3M0EwXFx1NzNBMlxcdTczQTVcXHU3M0E2XFx1NzNBQVxcdTczQUJcXHU3M0FEXFx1NzNCNVxcdTczQjdcXHU3M0I5XFx1NzNCQ1xcdTczQkRcXHU3M0JGXFx1NzNDNVxcdTczQzZcXHU3M0M5XFx1NzNDQlxcdTczQ0NcXHU3M0NGXFx1NzNEMlxcdTczRDNcXHU3M0Q2XFx1NzNEOVxcdTczRERcXHU3M0UxXFx1NzNFM1xcdTczRTZcXHU3M0U3XFx1NzNFOVxcdTczRjRcXHU3M0Y1XFx1NzNGN1xcdTczRjlcXHU3M0ZBXFx1NzNGQlxcdTczRkRcIl0sXG4gICAgICBbXCI4ZmNjYTFcIiwgXCJcXHU3M0ZGXFx1NzQwMFxcdTc0MDFcXHU3NDA0XFx1NzQwN1xcdTc0MEFcXHU3NDExXFx1NzQxQVxcdTc0MUJcXHU3NDI0XFx1NzQyNlxcdTc0MjhcIiwgOSwgXCJcXHU3NDM5XFx1NzQ0MFxcdTc0NDNcXHU3NDQ0XFx1NzQ0NlxcdTc0NDdcXHU3NDRCXFx1NzQ0RFxcdTc0NTFcXHU3NDUyXFx1NzQ1N1xcdTc0NURcXHU3NDYyXFx1NzQ2NlxcdTc0NjdcXHU3NDY4XFx1NzQ2QlxcdTc0NkRcXHU3NDZFXFx1NzQ3MVxcdTc0NzJcXHU3NDgwXFx1NzQ4MVxcdTc0ODVcXHU3NDg2XFx1NzQ4N1xcdTc0ODlcXHU3NDhGXFx1NzQ5MFxcdTc0OTFcXHU3NDkyXFx1NzQ5OFxcdTc0OTlcXHU3NDlBXFx1NzQ5Q1xcdTc0OUZcXHU3NEEwXFx1NzRBMVxcdTc0QTNcXHU3NEE2XFx1NzRBOFxcdTc0QTlcXHU3NEFBXFx1NzRBQlxcdTc0QUVcXHU3NEFGXFx1NzRCMVxcdTc0QjJcXHU3NEI1XFx1NzRCOVxcdTc0QkJcXHU3NEJGXFx1NzRDOFxcdTc0QzlcXHU3NENDXFx1NzREMFxcdTc0RDNcXHU3NEQ4XFx1NzREQVxcdTc0REJcXHU3NERFXFx1NzRERlxcdTc0RTRcXHU3NEU4XFx1NzRFQVxcdTc0RUJcXHU3NEVGXFx1NzRGNFxcdTc0RkFcXHU3NEZCXFx1NzRGQ1xcdTc0RkZcXHU3NTA2XCJdLFxuICAgICAgW1wiOGZjZGExXCIsIFwiXFx1NzUxMlxcdTc1MTZcXHU3NTE3XFx1NzUyMFxcdTc1MjFcXHU3NTI0XFx1NzUyN1xcdTc1MjlcXHU3NTJBXFx1NzUyRlxcdTc1MzZcXHU3NTM5XFx1NzUzRFxcdTc1M0VcXHU3NTNGXFx1NzU0MFxcdTc1NDNcXHU3NTQ3XFx1NzU0OFxcdTc1NEVcXHU3NTUwXFx1NzU1MlxcdTc1NTdcXHU3NTVFXFx1NzU1RlxcdTc1NjFcXHU3NTZGXFx1NzU3MVxcdTc1NzlcIiwgNSwgXCJcXHU3NTgxXFx1NzU4NVxcdTc1OTBcXHU3NTkyXFx1NzU5M1xcdTc1OTVcXHU3NTk5XFx1NzU5Q1xcdTc1QTJcXHU3NUE0XFx1NzVCNFxcdTc1QkFcXHU3NUJGXFx1NzVDMFxcdTc1QzFcXHU3NUM0XFx1NzVDNlxcdTc1Q0NcXHU3NUNFXFx1NzVDRlxcdTc1RDdcXHU3NURDXFx1NzVERlxcdTc1RTBcXHU3NUUxXFx1NzVFNFxcdTc1RTdcXHU3NUVDXFx1NzVFRVxcdTc1RUZcXHU3NUYxXFx1NzVGOVxcdTc2MDBcXHU3NjAyXFx1NzYwM1xcdTc2MDRcXHU3NjA3XFx1NzYwOFxcdTc2MEFcXHU3NjBDXFx1NzYwRlxcdTc2MTJcXHU3NjEzXFx1NzYxNVxcdTc2MTZcXHU3NjE5XFx1NzYxQlxcdTc2MUNcXHU3NjFEXFx1NzYxRVxcdTc2MjNcXHU3NjI1XFx1NzYyNlxcdTc2MjlcXHU3NjJEXFx1NzYzMlxcdTc2MzNcXHU3NjM1XFx1NzYzOFxcdTc2MzlcIl0sXG4gICAgICBbXCI4ZmNlYTFcIiwgXCJcXHU3NjNBXFx1NzYzQ1xcdTc2NEFcXHU3NjQwXFx1NzY0MVxcdTc2NDNcXHU3NjQ0XFx1NzY0NVxcdTc2NDlcXHU3NjRCXFx1NzY1NVxcdTc2NTlcXHU3NjVGXFx1NzY2NFxcdTc2NjVcXHU3NjZEXFx1NzY2RVxcdTc2NkZcXHU3NjcxXFx1NzY3NFxcdTc2ODFcXHU3Njg1XFx1NzY4Q1xcdTc2OERcXHU3Njk1XFx1NzY5QlxcdTc2OUNcXHU3NjlEXFx1NzY5RlxcdTc2QTBcXHU3NkEyXCIsIDYsIFwiXFx1NzZBQVxcdTc2QURcXHU3NkJEXFx1NzZDMVxcdTc2QzVcXHU3NkM5XFx1NzZDQlxcdTc2Q0NcXHU3NkNFXFx1NzZENFxcdTc2RDlcXHU3NkUwXFx1NzZFNlxcdTc2RThcXHU3NkVDXFx1NzZGMFxcdTc2RjFcXHU3NkY2XFx1NzZGOVxcdTc2RkNcXHU3NzAwXFx1NzcwNlxcdTc3MEFcXHU3NzBFXFx1NzcxMlxcdTc3MTRcXHU3NzE1XFx1NzcxN1xcdTc3MTlcXHU3NzFBXFx1NzcxQ1xcdTc3MjJcXHU3NzI4XFx1NzcyRFxcdTc3MkVcXHU3NzJGXFx1NzczNFxcdTc3MzVcXHU3NzM2XFx1NzczOVxcdTc3M0RcXHU3NzNFXFx1Nzc0MlxcdTc3NDVcXHU3NzQ2XFx1Nzc0QVxcdTc3NERcXHU3NzRFXFx1Nzc0RlxcdTc3NTJcXHU3NzU2XFx1Nzc1N1xcdTc3NUNcXHU3NzVFXFx1Nzc1RlxcdTc3NjBcXHU3NzYyXCJdLFxuICAgICAgW1wiOGZjZmExXCIsIFwiXFx1Nzc2NFxcdTc3NjdcXHU3NzZBXFx1Nzc2Q1xcdTc3NzBcXHU3NzcyXFx1Nzc3M1xcdTc3NzRcXHU3NzdBXFx1Nzc3RFxcdTc3ODBcXHU3Nzg0XFx1Nzc4Q1xcdTc3OERcXHU3Nzk0XFx1Nzc5NVxcdTc3OTZcXHU3NzlBXFx1Nzc5RlxcdTc3QTJcXHU3N0E3XFx1NzdBQVxcdTc3QUVcXHU3N0FGXFx1NzdCMVxcdTc3QjVcXHU3N0JFXFx1NzdDM1xcdTc3QzlcXHU3N0QxXFx1NzdEMlxcdTc3RDVcXHU3N0Q5XFx1NzdERVxcdTc3REZcXHU3N0UwXFx1NzdFNFxcdTc3RTZcXHU3N0VBXFx1NzdFQ1xcdTc3RjBcXHU3N0YxXFx1NzdGNFxcdTc3RjhcXHU3N0ZCXFx1NzgwNVxcdTc4MDZcXHU3ODA5XFx1NzgwRFxcdTc4MEVcXHU3ODExXFx1NzgxRFxcdTc4MjFcXHU3ODIyXFx1NzgyM1xcdTc4MkRcXHU3ODJFXFx1NzgzMFxcdTc4MzVcXHU3ODM3XFx1Nzg0M1xcdTc4NDRcXHU3ODQ3XFx1Nzg0OFxcdTc4NENcXHU3ODRFXFx1Nzg1MlxcdTc4NUNcXHU3ODVFXFx1Nzg2MFxcdTc4NjFcXHU3ODYzXFx1Nzg2NFxcdTc4NjhcXHU3ODZBXFx1Nzg2RVxcdTc4N0FcXHU3ODdFXFx1Nzg4QVxcdTc4OEZcXHU3ODk0XFx1Nzg5OFxcdTc4QTFcXHU3ODlEXFx1Nzg5RVxcdTc4OUZcXHU3OEE0XFx1NzhBOFxcdTc4QUNcXHU3OEFEXFx1NzhCMFxcdTc4QjFcXHU3OEIyXFx1NzhCM1wiXSxcbiAgICAgIFtcIjhmZDBhMVwiLCBcIlxcdTc4QkJcXHU3OEJEXFx1NzhCRlxcdTc4QzdcXHU3OEM4XFx1NzhDOVxcdTc4Q0NcXHU3OENFXFx1NzhEMlxcdTc4RDNcXHU3OEQ1XFx1NzhENlxcdTc4RTRcXHU3OERCXFx1NzhERlxcdTc4RTBcXHU3OEUxXFx1NzhFNlxcdTc4RUFcXHU3OEYyXFx1NzhGM1xcdTc5MDBcXHU3OEY2XFx1NzhGN1xcdTc4RkFcXHU3OEZCXFx1NzhGRlxcdTc5MDZcXHU3OTBDXFx1NzkxMFxcdTc5MUFcXHU3OTFDXFx1NzkxRVxcdTc5MUZcXHU3OTIwXFx1NzkyNVxcdTc5MjdcXHU3OTI5XFx1NzkyRFxcdTc5MzFcXHU3OTM0XFx1NzkzNVxcdTc5M0JcXHU3OTNEXFx1NzkzRlxcdTc5NDRcXHU3OTQ1XFx1Nzk0NlxcdTc5NEFcXHU3OTRCXFx1Nzk0RlxcdTc5NTFcXHU3OTU0XFx1Nzk1OFxcdTc5NUJcXHU3OTVDXFx1Nzk2N1xcdTc5NjlcXHU3OTZCXFx1Nzk3MlxcdTc5NzlcXHU3OTdCXFx1Nzk3Q1xcdTc5N0VcXHU3OThCXFx1Nzk4Q1xcdTc5OTFcXHU3OTkzXFx1Nzk5NFxcdTc5OTVcXHU3OTk2XFx1Nzk5OFxcdTc5OUJcXHU3OTlDXFx1NzlBMVxcdTc5QThcXHU3OUE5XFx1NzlBQlxcdTc5QUZcXHU3OUIxXFx1NzlCNFxcdTc5QjhcXHU3OUJCXFx1NzlDMlxcdTc5QzRcXHU3OUM3XFx1NzlDOFxcdTc5Q0FcXHU3OUNGXFx1NzlENFxcdTc5RDZcXHU3OURBXFx1NzlERFxcdTc5REVcIl0sXG4gICAgICBbXCI4ZmQxYTFcIiwgXCJcXHU3OUUwXFx1NzlFMlxcdTc5RTVcXHU3OUVBXFx1NzlFQlxcdTc5RURcXHU3OUYxXFx1NzlGOFxcdTc5RkNcXHU3QTAyXFx1N0EwM1xcdTdBMDdcXHU3QTA5XFx1N0EwQVxcdTdBMENcXHU3QTExXFx1N0ExNVxcdTdBMUJcXHU3QTFFXFx1N0EyMVxcdTdBMjdcXHU3QTJCXFx1N0EyRFxcdTdBMkZcXHU3QTMwXFx1N0EzNFxcdTdBMzVcXHU3QTM4XFx1N0EzOVxcdTdBM0FcXHU3QTQ0XFx1N0E0NVxcdTdBNDdcXHU3QTQ4XFx1N0E0Q1xcdTdBNTVcXHU3QTU2XFx1N0E1OVxcdTdBNUNcXHU3QTVEXFx1N0E1RlxcdTdBNjBcXHU3QTY1XFx1N0E2N1xcdTdBNkFcXHU3QTZEXFx1N0E3NVxcdTdBNzhcXHU3QTdFXFx1N0E4MFxcdTdBODJcXHU3QTg1XFx1N0E4NlxcdTdBOEFcXHU3QThCXFx1N0E5MFxcdTdBOTFcXHU3QTk0XFx1N0E5RVxcdTdBQTBcXHU3QUEzXFx1N0FBQ1xcdTdBQjNcXHU3QUI1XFx1N0FCOVxcdTdBQkJcXHU3QUJDXFx1N0FDNlxcdTdBQzlcXHU3QUNDXFx1N0FDRVxcdTdBRDFcXHU3QURCXFx1N0FFOFxcdTdBRTlcXHU3QUVCXFx1N0FFQ1xcdTdBRjFcXHU3QUY0XFx1N0FGQlxcdTdBRkRcXHU3QUZFXFx1N0IwN1xcdTdCMTRcXHU3QjFGXFx1N0IyM1xcdTdCMjdcXHU3QjI5XFx1N0IyQVxcdTdCMkJcXHU3QjJEXFx1N0IyRVxcdTdCMkZcXHU3QjMwXCJdLFxuICAgICAgW1wiOGZkMmExXCIsIFwiXFx1N0IzMVxcdTdCMzRcXHU3QjNEXFx1N0IzRlxcdTdCNDBcXHU3QjQxXFx1N0I0N1xcdTdCNEVcXHU3QjU1XFx1N0I2MFxcdTdCNjRcXHU3QjY2XFx1N0I2OVxcdTdCNkFcXHU3QjZEXFx1N0I2RlxcdTdCNzJcXHU3QjczXFx1N0I3N1xcdTdCODRcXHU3Qjg5XFx1N0I4RVxcdTdCOTBcXHU3QjkxXFx1N0I5NlxcdTdCOUJcXHU3QjlFXFx1N0JBMFxcdTdCQTVcXHU3QkFDXFx1N0JBRlxcdTdCQjBcXHU3QkIyXFx1N0JCNVxcdTdCQjZcXHU3QkJBXFx1N0JCQlxcdTdCQkNcXHU3QkJEXFx1N0JDMlxcdTdCQzVcXHU3QkM4XFx1N0JDQVxcdTdCRDRcXHU3QkQ2XFx1N0JEN1xcdTdCRDlcXHU3QkRBXFx1N0JEQlxcdTdCRThcXHU3QkVBXFx1N0JGMlxcdTdCRjRcXHU3QkY1XFx1N0JGOFxcdTdCRjlcXHU3QkZBXFx1N0JGQ1xcdTdCRkVcXHU3QzAxXFx1N0MwMlxcdTdDMDNcXHU3QzA0XFx1N0MwNlxcdTdDMDlcXHU3QzBCXFx1N0MwQ1xcdTdDMEVcXHU3QzBGXFx1N0MxOVxcdTdDMUJcXHU3QzIwXFx1N0MyNVxcdTdDMjZcXHU3QzI4XFx1N0MyQ1xcdTdDMzFcXHU3QzMzXFx1N0MzNFxcdTdDMzZcXHU3QzM5XFx1N0MzQVxcdTdDNDZcXHU3QzRBXFx1N0M1NVxcdTdDNTFcXHU3QzUyXFx1N0M1M1xcdTdDNTlcIiwgNV0sXG4gICAgICBbXCI4ZmQzYTFcIiwgXCJcXHU3QzYxXFx1N0M2M1xcdTdDNjdcXHU3QzY5XFx1N0M2RFxcdTdDNkVcXHU3QzcwXFx1N0M3MlxcdTdDNzlcXHU3QzdDXFx1N0M3RFxcdTdDODZcXHU3Qzg3XFx1N0M4RlxcdTdDOTRcXHU3QzlFXFx1N0NBMFxcdTdDQTZcXHU3Q0IwXFx1N0NCNlxcdTdDQjdcXHU3Q0JBXFx1N0NCQlxcdTdDQkNcXHU3Q0JGXFx1N0NDNFxcdTdDQzdcXHU3Q0M4XFx1N0NDOVxcdTdDQ0RcXHU3Q0NGXFx1N0NEM1xcdTdDRDRcXHU3Q0Q1XFx1N0NEN1xcdTdDRDlcXHU3Q0RBXFx1N0NERFxcdTdDRTZcXHU3Q0U5XFx1N0NFQlxcdTdDRjVcXHU3RDAzXFx1N0QwN1xcdTdEMDhcXHU3RDA5XFx1N0QwRlxcdTdEMTFcXHU3RDEyXFx1N0QxM1xcdTdEMTZcXHU3RDFEXFx1N0QxRVxcdTdEMjNcXHU3RDI2XFx1N0QyQVxcdTdEMkRcXHU3RDMxXFx1N0QzQ1xcdTdEM0RcXHU3RDNFXFx1N0Q0MFxcdTdENDFcXHU3RDQ3XFx1N0Q0OFxcdTdENERcXHU3RDUxXFx1N0Q1M1xcdTdENTdcXHU3RDU5XFx1N0Q1QVxcdTdENUNcXHU3RDVEXFx1N0Q2NVxcdTdENjdcXHU3RDZBXFx1N0Q3MFxcdTdENzhcXHU3RDdBXFx1N0Q3QlxcdTdEN0ZcXHU3RDgxXFx1N0Q4MlxcdTdEODNcXHU3RDg1XFx1N0Q4NlxcdTdEODhcXHU3RDhCXFx1N0Q4Q1xcdTdEOERcXHU3RDkxXFx1N0Q5NlxcdTdEOTdcXHU3RDlEXCJdLFxuICAgICAgW1wiOGZkNGExXCIsIFwiXFx1N0Q5RVxcdTdEQTZcXHU3REE3XFx1N0RBQVxcdTdEQjNcXHU3REI2XFx1N0RCN1xcdTdEQjlcXHU3REMyXCIsIDQsIFwiXFx1N0RDQ1xcdTdEQ0RcXHU3RENFXFx1N0REN1xcdTdERDlcXHU3RTAwXFx1N0RFMlxcdTdERTVcXHU3REU2XFx1N0RFQVxcdTdERUJcXHU3REVEXFx1N0RGMVxcdTdERjVcXHU3REY2XFx1N0RGOVxcdTdERkFcXHU3RTA4XFx1N0UxMFxcdTdFMTFcXHU3RTE1XFx1N0UxN1xcdTdFMUNcXHU3RTFEXFx1N0UyMFxcdTdFMjdcXHU3RTI4XFx1N0UyQ1xcdTdFMkRcXHU3RTJGXFx1N0UzM1xcdTdFMzZcXHU3RTNGXFx1N0U0NFxcdTdFNDVcXHU3RTQ3XFx1N0U0RVxcdTdFNTBcXHU3RTUyXFx1N0U1OFxcdTdFNUZcXHU3RTYxXFx1N0U2MlxcdTdFNjVcXHU3RTZCXFx1N0U2RVxcdTdFNkZcXHU3RTczXFx1N0U3OFxcdTdFN0VcXHU3RTgxXFx1N0U4NlxcdTdFODdcXHU3RThBXFx1N0U4RFxcdTdFOTFcXHU3RTk1XFx1N0U5OFxcdTdFOUFcXHU3RTlEXFx1N0U5RVxcdTdGM0NcXHU3RjNCXFx1N0YzRFxcdTdGM0VcXHU3RjNGXFx1N0Y0M1xcdTdGNDRcXHU3RjQ3XFx1N0Y0RlxcdTdGNTJcXHU3RjUzXFx1N0Y1QlxcdTdGNUNcXHU3RjVEXFx1N0Y2MVxcdTdGNjNcXHU3RjY0XFx1N0Y2NVxcdTdGNjZcXHU3RjZEXCJdLFxuICAgICAgW1wiOGZkNWExXCIsIFwiXFx1N0Y3MVxcdTdGN0RcXHU3RjdFXFx1N0Y3RlxcdTdGODBcXHU3RjhCXFx1N0Y4RFxcdTdGOEZcXHU3RjkwXFx1N0Y5MVxcdTdGOTZcXHU3Rjk3XFx1N0Y5Q1xcdTdGQTFcXHU3RkEyXFx1N0ZBNlxcdTdGQUFcXHU3RkFEXFx1N0ZCNFxcdTdGQkNcXHU3RkJGXFx1N0ZDMFxcdTdGQzNcXHU3RkM4XFx1N0ZDRVxcdTdGQ0ZcXHU3RkRCXFx1N0ZERlxcdTdGRTNcXHU3RkU1XFx1N0ZFOFxcdTdGRUNcXHU3RkVFXFx1N0ZFRlxcdTdGRjJcXHU3RkZBXFx1N0ZGRFxcdTdGRkVcXHU3RkZGXFx1ODAwN1xcdTgwMDhcXHU4MDBBXFx1ODAwRFxcdTgwMEVcXHU4MDBGXFx1ODAxMVxcdTgwMTNcXHU4MDE0XFx1ODAxNlxcdTgwMURcXHU4MDFFXFx1ODAxRlxcdTgwMjBcXHU4MDI0XFx1ODAyNlxcdTgwMkNcXHU4MDJFXFx1ODAzMFxcdTgwMzRcXHU4MDM1XFx1ODAzN1xcdTgwMzlcXHU4MDNBXFx1ODAzQ1xcdTgwM0VcXHU4MDQwXFx1ODA0NFxcdTgwNjBcXHU4MDY0XFx1ODA2NlxcdTgwNkRcXHU4MDcxXFx1ODA3NVxcdTgwODFcXHU4MDg4XFx1ODA4RVxcdTgwOUNcXHU4MDlFXFx1ODBBNlxcdTgwQTdcXHU4MEFCXFx1ODBCOFxcdTgwQjlcXHU4MEM4XFx1ODBDRFxcdTgwQ0ZcXHU4MEQyXFx1ODBENFxcdTgwRDVcXHU4MEQ3XFx1ODBEOFxcdTgwRTBcXHU4MEVEXFx1ODBFRVwiXSxcbiAgICAgIFtcIjhmZDZhMVwiLCBcIlxcdTgwRjBcXHU4MEYyXFx1ODBGM1xcdTgwRjZcXHU4MEY5XFx1ODBGQVxcdTgwRkVcXHU4MTAzXFx1ODEwQlxcdTgxMTZcXHU4MTE3XFx1ODExOFxcdTgxMUNcXHU4MTFFXFx1ODEyMFxcdTgxMjRcXHU4MTI3XFx1ODEyQ1xcdTgxMzBcXHU4MTM1XFx1ODEzQVxcdTgxM0NcXHU4MTQ1XFx1ODE0N1xcdTgxNEFcXHU4MTRDXFx1ODE1MlxcdTgxNTdcXHU4MTYwXFx1ODE2MVxcdTgxNjdcXHU4MTY4XFx1ODE2OVxcdTgxNkRcXHU4MTZGXFx1ODE3N1xcdTgxODFcXHU4MTkwXFx1ODE4NFxcdTgxODVcXHU4MTg2XFx1ODE4QlxcdTgxOEVcXHU4MTk2XFx1ODE5OFxcdTgxOUJcXHU4MTlFXFx1ODFBMlxcdTgxQUVcXHU4MUIyXFx1ODFCNFxcdTgxQkJcXHU4MUNCXFx1ODFDM1xcdTgxQzVcXHU4MUNBXFx1ODFDRVxcdTgxQ0ZcXHU4MUQ1XFx1ODFEN1xcdTgxREJcXHU4MUREXFx1ODFERVxcdTgxRTFcXHU4MUU0XFx1ODFFQlxcdTgxRUNcXHU4MUYwXFx1ODFGMVxcdTgxRjJcXHU4MUY1XFx1ODFGNlxcdTgxRjhcXHU4MUY5XFx1ODFGRFxcdTgxRkZcXHU4MjAwXFx1ODIwM1xcdTgyMEZcXHU4MjEzXFx1ODIxNFxcdTgyMTlcXHU4MjFBXFx1ODIxRFxcdTgyMjFcXHU4MjIyXFx1ODIyOFxcdTgyMzJcXHU4MjM0XFx1ODIzQVxcdTgyNDNcXHU4MjQ0XFx1ODI0NVxcdTgyNDZcIl0sXG4gICAgICBbXCI4ZmQ3YTFcIiwgXCJcXHU4MjRCXFx1ODI0RVxcdTgyNEZcXHU4MjUxXFx1ODI1NlxcdTgyNUNcXHU4MjYwXFx1ODI2M1xcdTgyNjdcXHU4MjZEXFx1ODI3NFxcdTgyN0JcXHU4MjdEXFx1ODI3RlxcdTgyODBcXHU4MjgxXFx1ODI4M1xcdTgyODRcXHU4Mjg3XFx1ODI4OVxcdTgyOEFcXHU4MjhFXFx1ODI5MVxcdTgyOTRcXHU4Mjk2XFx1ODI5OFxcdTgyOUFcXHU4MjlCXFx1ODJBMFxcdTgyQTFcXHU4MkEzXFx1ODJBNFxcdTgyQTdcXHU4MkE4XFx1ODJBOVxcdTgyQUFcXHU4MkFFXFx1ODJCMFxcdTgyQjJcXHU4MkI0XFx1ODJCN1xcdTgyQkFcXHU4MkJDXFx1ODJCRVxcdTgyQkZcXHU4MkM2XFx1ODJEMFxcdTgyRDVcXHU4MkRBXFx1ODJFMFxcdTgyRTJcXHU4MkU0XFx1ODJFOFxcdTgyRUFcXHU4MkVEXFx1ODJFRlxcdTgyRjZcXHU4MkY3XFx1ODJGRFxcdTgyRkVcXHU4MzAwXFx1ODMwMVxcdTgzMDdcXHU4MzA4XFx1ODMwQVxcdTgzMEJcXHU4MzU0XFx1ODMxQlxcdTgzMURcXHU4MzFFXFx1ODMxRlxcdTgzMjFcXHU4MzIyXFx1ODMyQ1xcdTgzMkRcXHU4MzJFXFx1ODMzMFxcdTgzMzNcXHU4MzM3XFx1ODMzQVxcdTgzM0NcXHU4MzNEXFx1ODM0MlxcdTgzNDNcXHU4MzQ0XFx1ODM0N1xcdTgzNERcXHU4MzRFXFx1ODM1MVxcdTgzNTVcXHU4MzU2XFx1ODM1N1xcdTgzNzBcXHU4Mzc4XCJdLFxuICAgICAgW1wiOGZkOGExXCIsIFwiXFx1ODM3RFxcdTgzN0ZcXHU4MzgwXFx1ODM4MlxcdTgzODRcXHU4Mzg2XFx1ODM4RFxcdTgzOTJcXHU4Mzk0XFx1ODM5NVxcdTgzOThcXHU4Mzk5XFx1ODM5QlxcdTgzOUNcXHU4MzlEXFx1ODNBNlxcdTgzQTdcXHU4M0E5XFx1ODNBQ1xcdTgzQkVcXHU4M0JGXFx1ODNDMFxcdTgzQzdcXHU4M0M5XFx1ODNDRlxcdTgzRDBcXHU4M0QxXFx1ODNENFxcdTgzRERcXHU4MzUzXFx1ODNFOFxcdTgzRUFcXHU4M0Y2XFx1ODNGOFxcdTgzRjlcXHU4M0ZDXFx1ODQwMVxcdTg0MDZcXHU4NDBBXFx1ODQwRlxcdTg0MTFcXHU4NDE1XFx1ODQxOVxcdTgzQURcXHU4NDJGXFx1ODQzOVxcdTg0NDVcXHU4NDQ3XFx1ODQ0OFxcdTg0NEFcXHU4NDREXFx1ODQ0RlxcdTg0NTFcXHU4NDUyXFx1ODQ1NlxcdTg0NThcXHU4NDU5XFx1ODQ1QVxcdTg0NUNcXHU4NDYwXFx1ODQ2NFxcdTg0NjVcXHU4NDY3XFx1ODQ2QVxcdTg0NzBcXHU4NDczXFx1ODQ3NFxcdTg0NzZcXHU4NDc4XFx1ODQ3Q1xcdTg0N0RcXHU4NDgxXFx1ODQ4NVxcdTg0OTJcXHU4NDkzXFx1ODQ5NVxcdTg0OUVcXHU4NEE2XFx1ODRBOFxcdTg0QTlcXHU4NEFBXFx1ODRBRlxcdTg0QjFcXHU4NEI0XFx1ODRCQVxcdTg0QkRcXHU4NEJFXFx1ODRDMFxcdTg0QzJcXHU4NEM3XFx1ODRDOFxcdTg0Q0NcXHU4NENGXFx1ODREM1wiXSxcbiAgICAgIFtcIjhmZDlhMVwiLCBcIlxcdTg0RENcXHU4NEU3XFx1ODRFQVxcdTg0RUZcXHU4NEYwXFx1ODRGMVxcdTg0RjJcXHU4NEY3XFx1ODUzMlxcdTg0RkFcXHU4NEZCXFx1ODRGRFxcdTg1MDJcXHU4NTAzXFx1ODUwN1xcdTg1MENcXHU4NTBFXFx1ODUxMFxcdTg1MUNcXHU4NTFFXFx1ODUyMlxcdTg1MjNcXHU4NTI0XFx1ODUyNVxcdTg1MjdcXHU4NTJBXFx1ODUyQlxcdTg1MkZcXHU4NTMzXFx1ODUzNFxcdTg1MzZcXHU4NTNGXFx1ODU0NlxcdTg1NEZcIiwgNCwgXCJcXHU4NTU2XFx1ODU1OVxcdTg1NUNcIiwgNiwgXCJcXHU4NTY0XFx1ODU2QlxcdTg1NkZcXHU4NTc5XFx1ODU3QVxcdTg1N0JcXHU4NTdEXFx1ODU3RlxcdTg1ODFcXHU4NTg1XFx1ODU4NlxcdTg1ODlcXHU4NThCXFx1ODU4Q1xcdTg1OEZcXHU4NTkzXFx1ODU5OFxcdTg1OURcXHU4NTlGXFx1ODVBMFxcdTg1QTJcXHU4NUE1XFx1ODVBN1xcdTg1QjRcXHU4NUI2XFx1ODVCN1xcdTg1QjhcXHU4NUJDXFx1ODVCRFxcdTg1QkVcXHU4NUJGXFx1ODVDMlxcdTg1QzdcXHU4NUNBXFx1ODVDQlxcdTg1Q0VcXHU4NUFEXFx1ODVEOFxcdTg1REFcXHU4NURGXFx1ODVFMFxcdTg1RTZcXHU4NUU4XFx1ODVFRFxcdTg1RjNcXHU4NUY2XFx1ODVGQ1wiXSxcbiAgICAgIFtcIjhmZGFhMVwiLCBcIlxcdTg1RkZcXHU4NjAwXFx1ODYwNFxcdTg2MDVcXHU4NjBEXFx1ODYwRVxcdTg2MTBcXHU4NjExXFx1ODYxMlxcdTg2MThcXHU4NjE5XFx1ODYxQlxcdTg2MUVcXHU4NjIxXFx1ODYyN1xcdTg2MjlcXHU4NjM2XFx1ODYzOFxcdTg2M0FcXHU4NjNDXFx1ODYzRFxcdTg2NDBcXHU4NjQyXFx1ODY0NlxcdTg2NTJcXHU4NjUzXFx1ODY1NlxcdTg2NTdcXHU4NjU4XFx1ODY1OVxcdTg2NURcXHU4NjYwXCIsIDQsIFwiXFx1ODY2OVxcdTg2NkNcXHU4NjZGXFx1ODY3NVxcdTg2NzZcXHU4Njc3XFx1ODY3QVxcdTg2OERcXHU4NjkxXFx1ODY5NlxcdTg2OThcXHU4NjlBXFx1ODY5Q1xcdTg2QTFcXHU4NkE2XFx1ODZBN1xcdTg2QThcXHU4NkFEXFx1ODZCMVxcdTg2QjNcXHU4NkI0XFx1ODZCNVxcdTg2QjdcXHU4NkI4XFx1ODZCOVxcdTg2QkZcXHU4NkMwXFx1ODZDMVxcdTg2QzNcXHU4NkM1XFx1ODZEMVxcdTg2RDJcXHU4NkQ1XFx1ODZEN1xcdTg2REFcXHU4NkRDXFx1ODZFMFxcdTg2RTNcXHU4NkU1XFx1ODZFN1xcdTg2ODhcXHU4NkZBXFx1ODZGQ1xcdTg2RkRcXHU4NzA0XFx1ODcwNVxcdTg3MDdcXHU4NzBCXFx1ODcwRVxcdTg3MEZcXHU4NzEwXFx1ODcxM1xcdTg3MTRcXHU4NzE5XFx1ODcxRVxcdTg3MUZcXHU4NzIxXFx1ODcyM1wiXSxcbiAgICAgIFtcIjhmZGJhMVwiLCBcIlxcdTg3MjhcXHU4NzJFXFx1ODcyRlxcdTg3MzFcXHU4NzMyXFx1ODczOVxcdTg3M0FcXHU4NzNDXFx1ODczRFxcdTg3M0VcXHU4NzQwXFx1ODc0M1xcdTg3NDVcXHU4NzREXFx1ODc1OFxcdTg3NURcXHU4NzYxXFx1ODc2NFxcdTg3NjVcXHU4NzZGXFx1ODc3MVxcdTg3NzJcXHU4NzdCXFx1ODc4M1wiLCA2LCBcIlxcdTg3OEJcXHU4NzhDXFx1ODc5MFxcdTg3OTNcXHU4Nzk1XFx1ODc5N1xcdTg3OThcXHU4Nzk5XFx1ODc5RVxcdTg3QTBcXHU4N0EzXFx1ODdBN1xcdTg3QUNcXHU4N0FEXFx1ODdBRVxcdTg3QjFcXHU4N0I1XFx1ODdCRVxcdTg3QkZcXHU4N0MxXFx1ODdDOFxcdTg3QzlcXHU4N0NBXFx1ODdDRVxcdTg3RDVcXHU4N0Q2XFx1ODdEOVxcdTg3REFcXHU4N0RDXFx1ODdERlxcdTg3RTJcXHU4N0UzXFx1ODdFNFxcdTg3RUFcXHU4N0VCXFx1ODdFRFxcdTg3RjFcXHU4N0YzXFx1ODdGOFxcdTg3RkFcXHU4N0ZGXFx1ODgwMVxcdTg4MDNcXHU4ODA2XFx1ODgwOVxcdTg4MEFcXHU4ODBCXFx1ODgxMFxcdTg4MTlcXHU4ODEyXFx1ODgxM1xcdTg4MTRcXHU4ODE4XFx1ODgxQVxcdTg4MUJcXHU4ODFDXFx1ODgxRVxcdTg4MUZcXHU4ODI4XFx1ODgyRFxcdTg4MkVcXHU4ODMwXFx1ODgzMlxcdTg4MzVcIl0sXG4gICAgICBbXCI4ZmRjYTFcIiwgXCJcXHU4ODNBXFx1ODgzQ1xcdTg4NDFcXHU4ODQzXFx1ODg0NVxcdTg4NDhcXHU4ODQ5XFx1ODg0QVxcdTg4NEJcXHU4ODRFXFx1ODg1MVxcdTg4NTVcXHU4ODU2XFx1ODg1OFxcdTg4NUFcXHU4ODVDXFx1ODg1RlxcdTg4NjBcXHU4ODY0XFx1ODg2OVxcdTg4NzFcXHU4ODc5XFx1ODg3QlxcdTg4ODBcXHU4ODk4XFx1ODg5QVxcdTg4OUJcXHU4ODlDXFx1ODg5RlxcdTg4QTBcXHU4OEE4XFx1ODhBQVxcdTg4QkFcXHU4OEJEXFx1ODhCRVxcdTg4QzBcXHU4OENBXCIsIDQsIFwiXFx1ODhEMVxcdTg4RDJcXHU4OEQzXFx1ODhEQlxcdTg4REVcXHU4OEU3XFx1ODhFRlxcdTg4RjBcXHU4OEYxXFx1ODhGNVxcdTg4RjdcXHU4OTAxXFx1ODkwNlxcdTg5MERcXHU4OTBFXFx1ODkwRlxcdTg5MTVcXHU4OTE2XFx1ODkxOFxcdTg5MTlcXHU4OTFBXFx1ODkxQ1xcdTg5MjBcXHU4OTI2XFx1ODkyN1xcdTg5MjhcXHU4OTMwXFx1ODkzMVxcdTg5MzJcXHU4OTM1XFx1ODkzOVxcdTg5M0FcXHU4OTNFXFx1ODk0MFxcdTg5NDJcXHU4OTQ1XFx1ODk0NlxcdTg5NDlcXHU4OTRGXFx1ODk1MlxcdTg5NTdcXHU4OTVBXFx1ODk1QlxcdTg5NUNcXHU4OTYxXFx1ODk2MlxcdTg5NjNcXHU4OTZCXFx1ODk2RVxcdTg5NzBcXHU4OTczXFx1ODk3NVxcdTg5N0FcIl0sXG4gICAgICBbXCI4ZmRkYTFcIiwgXCJcXHU4OTdCXFx1ODk3Q1xcdTg5N0RcXHU4OTg5XFx1ODk4RFxcdTg5OTBcXHU4OTk0XFx1ODk5NVxcdTg5OUJcXHU4OTlDXFx1ODk5RlxcdTg5QTBcXHU4OUE1XFx1ODlCMFxcdTg5QjRcXHU4OUI1XFx1ODlCNlxcdTg5QjdcXHU4OUJDXFx1ODlENFwiLCA0LCBcIlxcdTg5RTVcXHU4OUU5XFx1ODlFQlxcdTg5RURcXHU4OUYxXFx1ODlGM1xcdTg5RjZcXHU4OUY5XFx1ODlGRFxcdTg5RkZcXHU4QTA0XFx1OEEwNVxcdThBMDdcXHU4QTBGXFx1OEExMVxcdThBMTJcXHU4QTE0XFx1OEExNVxcdThBMUVcXHU4QTIwXFx1OEEyMlxcdThBMjRcXHU4QTI2XFx1OEEyQlxcdThBMkNcXHU4QTJGXFx1OEEzNVxcdThBMzdcXHU4QTNEXFx1OEEzRVxcdThBNDBcXHU4QTQzXFx1OEE0NVxcdThBNDdcXHU4QTQ5XFx1OEE0RFxcdThBNEVcXHU4QTUzXFx1OEE1NlxcdThBNTdcXHU4QTU4XFx1OEE1Q1xcdThBNURcXHU4QTYxXFx1OEE2NVxcdThBNjdcXHU4QTc1XFx1OEE3NlxcdThBNzdcXHU4QTc5XFx1OEE3QVxcdThBN0JcXHU4QTdFXFx1OEE3RlxcdThBODBcXHU4QTgzXFx1OEE4NlxcdThBOEJcXHU4QThGXFx1OEE5MFxcdThBOTJcXHU4QTk2XFx1OEE5N1xcdThBOTlcXHU4QTlGXFx1OEFBN1xcdThBQTlcXHU4QUFFXFx1OEFBRlxcdThBQjNcIl0sXG4gICAgICBbXCI4ZmRlYTFcIiwgXCJcXHU4QUI2XFx1OEFCN1xcdThBQkJcXHU4QUJFXFx1OEFDM1xcdThBQzZcXHU4QUM4XFx1OEFDOVxcdThBQ0FcXHU4QUQxXFx1OEFEM1xcdThBRDRcXHU4QUQ1XFx1OEFEN1xcdThBRERcXHU4QURGXFx1OEFFQ1xcdThBRjBcXHU4QUY0XFx1OEFGNVxcdThBRjZcXHU4QUZDXFx1OEFGRlxcdThCMDVcXHU4QjA2XFx1OEIwQlxcdThCMTFcXHU4QjFDXFx1OEIxRVxcdThCMUZcXHU4QjBBXFx1OEIyRFxcdThCMzBcXHU4QjM3XFx1OEIzQ1xcdThCNDJcIiwgNCwgXCJcXHU4QjQ4XFx1OEI1MlxcdThCNTNcXHU4QjU0XFx1OEI1OVxcdThCNERcXHU4QjVFXFx1OEI2M1xcdThCNkRcXHU4Qjc2XFx1OEI3OFxcdThCNzlcXHU4QjdDXFx1OEI3RVxcdThCODFcXHU4Qjg0XFx1OEI4NVxcdThCOEJcXHU4QjhEXFx1OEI4RlxcdThCOTRcXHU4Qjk1XFx1OEI5Q1xcdThCOUVcXHU4QjlGXFx1OEMzOFxcdThDMzlcXHU4QzNEXFx1OEMzRVxcdThDNDVcXHU4QzQ3XFx1OEM0OVxcdThDNEJcXHU4QzRGXFx1OEM1MVxcdThDNTNcXHU4QzU0XFx1OEM1N1xcdThDNThcXHU4QzVCXFx1OEM1RFxcdThDNTlcXHU4QzYzXFx1OEM2NFxcdThDNjZcXHU4QzY4XFx1OEM2OVxcdThDNkRcXHU4QzczXFx1OEM3NVxcdThDNzZcXHU4QzdCXFx1OEM3RVxcdThDODZcIl0sXG4gICAgICBbXCI4ZmRmYTFcIiwgXCJcXHU4Qzg3XFx1OEM4QlxcdThDOTBcXHU4QzkyXFx1OEM5M1xcdThDOTlcXHU4QzlCXFx1OEM5Q1xcdThDQTRcXHU4Q0I5XFx1OENCQVxcdThDQzVcXHU4Q0M2XFx1OENDOVxcdThDQ0JcXHU4Q0NGXFx1OENENlxcdThDRDVcXHU4Q0Q5XFx1OENERFxcdThDRTFcXHU4Q0U4XFx1OENFQ1xcdThDRUZcXHU4Q0YwXFx1OENGMlxcdThDRjVcXHU4Q0Y3XFx1OENGOFxcdThDRkVcXHU4Q0ZGXFx1OEQwMVxcdThEMDNcXHU4RDA5XFx1OEQxMlxcdThEMTdcXHU4RDFCXFx1OEQ2NVxcdThENjlcXHU4RDZDXFx1OEQ2RVxcdThEN0ZcXHU4RDgyXFx1OEQ4NFxcdThEODhcXHU4RDhEXFx1OEQ5MFxcdThEOTFcXHU4RDk1XFx1OEQ5RVxcdThEOUZcXHU4REEwXFx1OERBNlxcdThEQUJcXHU4REFDXFx1OERBRlxcdThEQjJcXHU4REI1XFx1OERCN1xcdThEQjlcXHU4REJCXFx1OERDMFxcdThEQzVcXHU4REM2XFx1OERDN1xcdThEQzhcXHU4RENBXFx1OERDRVxcdThERDFcXHU4REQ0XFx1OERENVxcdThERDdcXHU4REQ5XFx1OERFNFxcdThERTVcXHU4REU3XFx1OERFQ1xcdThERjBcXHU4REJDXFx1OERGMVxcdThERjJcXHU4REY0XFx1OERGRFxcdThFMDFcXHU4RTA0XFx1OEUwNVxcdThFMDZcXHU4RTBCXFx1OEUxMVxcdThFMTRcXHU4RTE2XFx1OEUyMFxcdThFMjFcXHU4RTIyXCJdLFxuICAgICAgW1wiOGZlMGExXCIsIFwiXFx1OEUyM1xcdThFMjZcXHU4RTI3XFx1OEUzMVxcdThFMzNcXHU4RTM2XFx1OEUzN1xcdThFMzhcXHU4RTM5XFx1OEUzRFxcdThFNDBcXHU4RTQxXFx1OEU0QlxcdThFNERcXHU4RTRFXFx1OEU0RlxcdThFNTRcXHU4RTVCXFx1OEU1Q1xcdThFNURcXHU4RTVFXFx1OEU2MVxcdThFNjJcXHU4RTY5XFx1OEU2Q1xcdThFNkRcXHU4RTZGXFx1OEU3MFxcdThFNzFcXHU4RTc5XFx1OEU3QVxcdThFN0JcXHU4RTgyXFx1OEU4M1xcdThFODlcXHU4RTkwXFx1OEU5MlxcdThFOTVcXHU4RTlBXFx1OEU5QlxcdThFOURcXHU4RTlFXFx1OEVBMlxcdThFQTdcXHU4RUE5XFx1OEVBRFxcdThFQUVcXHU4RUIzXFx1OEVCNVxcdThFQkFcXHU4RUJCXFx1OEVDMFxcdThFQzFcXHU4RUMzXFx1OEVDNFxcdThFQzdcXHU4RUNGXFx1OEVEMVxcdThFRDRcXHU4RURDXFx1OEVFOFxcdThFRUVcXHU4RUYwXFx1OEVGMVxcdThFRjdcXHU4RUY5XFx1OEVGQVxcdThFRURcXHU4RjAwXFx1OEYwMlxcdThGMDdcXHU4RjA4XFx1OEYwRlxcdThGMTBcXHU4RjE2XFx1OEYxN1xcdThGMThcXHU4RjFFXFx1OEYyMFxcdThGMjFcXHU4RjIzXFx1OEYyNVxcdThGMjdcXHU4RjI4XFx1OEYyQ1xcdThGMkRcXHU4RjJFXFx1OEYzNFxcdThGMzVcXHU4RjM2XFx1OEYzN1xcdThGM0FcXHU4RjQwXFx1OEY0MVwiXSxcbiAgICAgIFtcIjhmZTFhMVwiLCBcIlxcdThGNDNcXHU4RjQ3XFx1OEY0RlxcdThGNTFcIiwgNCwgXCJcXHU4RjU4XFx1OEY1RFxcdThGNUVcXHU4RjY1XFx1OEY5RFxcdThGQTBcXHU4RkExXFx1OEZBNFxcdThGQTVcXHU4RkE2XFx1OEZCNVxcdThGQjZcXHU4RkI4XFx1OEZCRVxcdThGQzBcXHU4RkMxXFx1OEZDNlxcdThGQ0FcXHU4RkNCXFx1OEZDRFxcdThGRDBcXHU4RkQyXFx1OEZEM1xcdThGRDVcXHU4RkUwXFx1OEZFM1xcdThGRTRcXHU4RkU4XFx1OEZFRVxcdThGRjFcXHU4RkY1XFx1OEZGNlxcdThGRkJcXHU4RkZFXFx1OTAwMlxcdTkwMDRcXHU5MDA4XFx1OTAwQ1xcdTkwMThcXHU5MDFCXFx1OTAyOFxcdTkwMjlcXHU5MDJGXFx1OTAyQVxcdTkwMkNcXHU5MDJEXFx1OTAzM1xcdTkwMzRcXHU5MDM3XFx1OTAzRlxcdTkwNDNcXHU5MDQ0XFx1OTA0Q1xcdTkwNUJcXHU5MDVEXFx1OTA2MlxcdTkwNjZcXHU5MDY3XFx1OTA2Q1xcdTkwNzBcXHU5MDc0XFx1OTA3OVxcdTkwODVcXHU5MDg4XFx1OTA4QlxcdTkwOENcXHU5MDhFXFx1OTA5MFxcdTkwOTVcXHU5MDk3XFx1OTA5OFxcdTkwOTlcXHU5MDlCXFx1OTBBMFxcdTkwQTFcXHU5MEEyXFx1OTBBNVxcdTkwQjBcXHU5MEIyXFx1OTBCM1xcdTkwQjRcXHU5MEI2XFx1OTBCRFxcdTkwQ0NcXHU5MEJFXFx1OTBDM1wiXSxcbiAgICAgIFtcIjhmZTJhMVwiLCBcIlxcdTkwQzRcXHU5MEM1XFx1OTBDN1xcdTkwQzhcXHU5MEQ1XFx1OTBEN1xcdTkwRDhcXHU5MEQ5XFx1OTBEQ1xcdTkwRERcXHU5MERGXFx1OTBFNVxcdTkwRDJcXHU5MEY2XFx1OTBFQlxcdTkwRUZcXHU5MEYwXFx1OTBGNFxcdTkwRkVcXHU5MEZGXFx1OTEwMFxcdTkxMDRcXHU5MTA1XFx1OTEwNlxcdTkxMDhcXHU5MTBEXFx1OTExMFxcdTkxMTRcXHU5MTE2XFx1OTExN1xcdTkxMThcXHU5MTFBXFx1OTExQ1xcdTkxMUVcXHU5MTIwXFx1OTEyNVxcdTkxMjJcXHU5MTIzXFx1OTEyN1xcdTkxMjlcXHU5MTJFXFx1OTEyRlxcdTkxMzFcXHU5MTM0XFx1OTEzNlxcdTkxMzdcXHU5MTM5XFx1OTEzQVxcdTkxM0NcXHU5MTNEXFx1OTE0M1xcdTkxNDdcXHU5MTQ4XFx1OTE0RlxcdTkxNTNcXHU5MTU3XFx1OTE1OVxcdTkxNUFcXHU5MTVCXFx1OTE2MVxcdTkxNjRcXHU5MTY3XFx1OTE2RFxcdTkxNzRcXHU5MTc5XFx1OTE3QVxcdTkxN0JcXHU5MTgxXFx1OTE4M1xcdTkxODVcXHU5MTg2XFx1OTE4QVxcdTkxOEVcXHU5MTkxXFx1OTE5M1xcdTkxOTRcXHU5MTk1XFx1OTE5OFxcdTkxOUVcXHU5MUExXFx1OTFBNlxcdTkxQThcXHU5MUFDXFx1OTFBRFxcdTkxQUVcXHU5MUIwXFx1OTFCMVxcdTkxQjJcXHU5MUIzXFx1OTFCNlxcdTkxQkJcXHU5MUJDXFx1OTFCRFxcdTkxQkZcIl0sXG4gICAgICBbXCI4ZmUzYTFcIiwgXCJcXHU5MUMyXFx1OTFDM1xcdTkxQzVcXHU5MUQzXFx1OTFENFxcdTkxRDdcXHU5MUQ5XFx1OTFEQVxcdTkxREVcXHU5MUU0XFx1OTFFNVxcdTkxRTlcXHU5MUVBXFx1OTFFQ1wiLCA1LCBcIlxcdTkxRjdcXHU5MUY5XFx1OTFGQlxcdTkxRkRcXHU5MjAwXFx1OTIwMVxcdTkyMDRcXHU5MjA1XFx1OTIwNlxcdTkyMDdcXHU5MjA5XFx1OTIwQVxcdTkyMENcXHU5MjEwXFx1OTIxMlxcdTkyMTNcXHU5MjE2XFx1OTIxOFxcdTkyMUNcXHU5MjFEXFx1OTIyM1xcdTkyMjRcXHU5MjI1XFx1OTIyNlxcdTkyMjhcXHU5MjJFXFx1OTIyRlxcdTkyMzBcXHU5MjMzXFx1OTIzNVxcdTkyMzZcXHU5MjM4XFx1OTIzOVxcdTkyM0FcXHU5MjNDXFx1OTIzRVxcdTkyNDBcXHU5MjQyXFx1OTI0M1xcdTkyNDZcXHU5MjQ3XFx1OTI0QVxcdTkyNERcXHU5MjRFXFx1OTI0RlxcdTkyNTFcXHU5MjU4XFx1OTI1OVxcdTkyNUNcXHU5MjVEXFx1OTI2MFxcdTkyNjFcXHU5MjY1XFx1OTI2N1xcdTkyNjhcXHU5MjY5XFx1OTI2RVxcdTkyNkZcXHU5MjcwXFx1OTI3NVwiLCA0LCBcIlxcdTkyN0JcXHU5MjdDXFx1OTI3RFxcdTkyN0ZcXHU5Mjg4XFx1OTI4OVxcdTkyOEFcXHU5MjhEXFx1OTI4RVxcdTkyOTJcXHU5Mjk3XCJdLFxuICAgICAgW1wiOGZlNGExXCIsIFwiXFx1OTI5OVxcdTkyOUZcXHU5MkEwXFx1OTJBNFxcdTkyQTVcXHU5MkE3XFx1OTJBOFxcdTkyQUJcXHU5MkFGXFx1OTJCMlxcdTkyQjZcXHU5MkI4XFx1OTJCQVxcdTkyQkJcXHU5MkJDXFx1OTJCRFxcdTkyQkZcIiwgNCwgXCJcXHU5MkM1XFx1OTJDNlxcdTkyQzdcXHU5MkM4XFx1OTJDQlxcdTkyQ0NcXHU5MkNEXFx1OTJDRVxcdTkyRDBcXHU5MkQzXFx1OTJENVxcdTkyRDdcXHU5MkQ4XFx1OTJEOVxcdTkyRENcXHU5MkREXFx1OTJERlxcdTkyRTBcXHU5MkUxXFx1OTJFM1xcdTkyRTVcXHU5MkU3XFx1OTJFOFxcdTkyRUNcXHU5MkVFXFx1OTJGMFxcdTkyRjlcXHU5MkZCXFx1OTJGRlxcdTkzMDBcXHU5MzAyXFx1OTMwOFxcdTkzMERcXHU5MzExXFx1OTMxNFxcdTkzMTVcXHU5MzFDXFx1OTMxRFxcdTkzMUVcXHU5MzFGXFx1OTMyMVxcdTkzMjRcXHU5MzI1XFx1OTMyN1xcdTkzMjlcXHU5MzJBXFx1OTMzM1xcdTkzMzRcXHU5MzM2XFx1OTMzN1xcdTkzNDdcXHU5MzQ4XFx1OTM0OVxcdTkzNTBcXHU5MzUxXFx1OTM1MlxcdTkzNTVcXHU5MzU3XFx1OTM1OFxcdTkzNUFcXHU5MzVFXFx1OTM2NFxcdTkzNjVcXHU5MzY3XFx1OTM2OVxcdTkzNkFcXHU5MzZEXFx1OTM2RlxcdTkzNzBcXHU5MzcxXFx1OTM3M1xcdTkzNzRcXHU5Mzc2XCJdLFxuICAgICAgW1wiOGZlNWExXCIsIFwiXFx1OTM3QVxcdTkzN0RcXHU5MzdGXFx1OTM4MFxcdTkzODFcXHU5MzgyXFx1OTM4OFxcdTkzOEFcXHU5MzhCXFx1OTM4RFxcdTkzOEZcXHU5MzkyXFx1OTM5NVxcdTkzOThcXHU5MzlCXFx1OTM5RVxcdTkzQTFcXHU5M0EzXFx1OTNBNFxcdTkzQTZcXHU5M0E4XFx1OTNBQlxcdTkzQjRcXHU5M0I1XFx1OTNCNlxcdTkzQkFcXHU5M0E5XFx1OTNDMVxcdTkzQzRcXHU5M0M1XFx1OTNDNlxcdTkzQzdcXHU5M0M5XCIsIDQsIFwiXFx1OTNEM1xcdTkzRDlcXHU5M0RDXFx1OTNERVxcdTkzREZcXHU5M0UyXFx1OTNFNlxcdTkzRTdcXHU5M0Y5XFx1OTNGN1xcdTkzRjhcXHU5M0ZBXFx1OTNGQlxcdTkzRkRcXHU5NDAxXFx1OTQwMlxcdTk0MDRcXHU5NDA4XFx1OTQwOVxcdTk0MERcXHU5NDBFXFx1OTQwRlxcdTk0MTVcXHU5NDE2XFx1OTQxN1xcdTk0MUZcXHU5NDJFXFx1OTQyRlxcdTk0MzFcXHU5NDMyXFx1OTQzM1xcdTk0MzRcXHU5NDNCXFx1OTQzRlxcdTk0M0RcXHU5NDQzXFx1OTQ0NVxcdTk0NDhcXHU5NDRBXFx1OTQ0Q1xcdTk0NTVcXHU5NDU5XFx1OTQ1Q1xcdTk0NUZcXHU5NDYxXFx1OTQ2M1xcdTk0NjhcXHU5NDZCXFx1OTQ2RFxcdTk0NkVcXHU5NDZGXFx1OTQ3MVxcdTk0NzJcXHU5NDg0XFx1OTQ4M1xcdTk1NzhcXHU5NTc5XCJdLFxuICAgICAgW1wiOGZlNmExXCIsIFwiXFx1OTU3RVxcdTk1ODRcXHU5NTg4XFx1OTU4Q1xcdTk1OERcXHU5NThFXFx1OTU5RFxcdTk1OUVcXHU5NTlGXFx1OTVBMVxcdTk1QTZcXHU5NUE5XFx1OTVBQlxcdTk1QUNcXHU5NUI0XFx1OTVCNlxcdTk1QkFcXHU5NUJEXFx1OTVCRlxcdTk1QzZcXHU5NUM4XFx1OTVDOVxcdTk1Q0JcXHU5NUQwXFx1OTVEMVxcdTk1RDJcXHU5NUQzXFx1OTVEOVxcdTk1REFcXHU5NUREXFx1OTVERVxcdTk1REZcXHU5NUUwXFx1OTVFNFxcdTk1RTZcXHU5NjFEXFx1OTYxRVxcdTk2MjJcXHU5NjI0XFx1OTYyNVxcdTk2MjZcXHU5NjJDXFx1OTYzMVxcdTk2MzNcXHU5NjM3XFx1OTYzOFxcdTk2MzlcXHU5NjNBXFx1OTYzQ1xcdTk2M0RcXHU5NjQxXFx1OTY1MlxcdTk2NTRcXHU5NjU2XFx1OTY1N1xcdTk2NThcXHU5NjYxXFx1OTY2RVxcdTk2NzRcXHU5NjdCXFx1OTY3Q1xcdTk2N0VcXHU5NjdGXFx1OTY4MVxcdTk2ODJcXHU5NjgzXFx1OTY4NFxcdTk2ODlcXHU5NjkxXFx1OTY5NlxcdTk2OUFcXHU5NjlEXFx1OTY5RlxcdTk2QTRcXHU5NkE1XFx1OTZBNlxcdTk2QTlcXHU5NkFFXFx1OTZBRlxcdTk2QjNcXHU5NkJBXFx1OTZDQVxcdTk2RDJcXHU1REIyXFx1OTZEOFxcdTk2REFcXHU5NkREXFx1OTZERVxcdTk2REZcXHU5NkU5XFx1OTZFRlxcdTk2RjFcXHU5NkZBXFx1OTcwMlwiXSxcbiAgICAgIFtcIjhmZTdhMVwiLCBcIlxcdTk3MDNcXHU5NzA1XFx1OTcwOVxcdTk3MUFcXHU5NzFCXFx1OTcxRFxcdTk3MjFcXHU5NzIyXFx1OTcyM1xcdTk3MjhcXHU5NzMxXFx1OTczM1xcdTk3NDFcXHU5NzQzXFx1OTc0QVxcdTk3NEVcXHU5NzRGXFx1OTc1NVxcdTk3NTdcXHU5NzU4XFx1OTc1QVxcdTk3NUJcXHU5NzYzXFx1OTc2N1xcdTk3NkFcXHU5NzZFXFx1OTc3M1xcdTk3NzZcXHU5Nzc3XFx1OTc3OFxcdTk3N0JcXHU5NzdEXFx1OTc3RlxcdTk3ODBcXHU5Nzg5XFx1OTc5NVxcdTk3OTZcXHU5Nzk3XFx1OTc5OVxcdTk3OUFcXHU5NzlFXFx1OTc5RlxcdTk3QTJcXHU5N0FDXFx1OTdBRVxcdTk3QjFcXHU5N0IyXFx1OTdCNVxcdTk3QjZcXHU5N0I4XFx1OTdCOVxcdTk3QkFcXHU5N0JDXFx1OTdCRVxcdTk3QkZcXHU5N0MxXFx1OTdDNFxcdTk3QzVcXHU5N0M3XFx1OTdDOVxcdTk3Q0FcXHU5N0NDXFx1OTdDRFxcdTk3Q0VcXHU5N0QwXFx1OTdEMVxcdTk3RDRcXHU5N0Q3XFx1OTdEOFxcdTk3RDlcXHU5N0REXFx1OTdERVxcdTk3RTBcXHU5N0RCXFx1OTdFMVxcdTk3RTRcXHU5N0VGXFx1OTdGMVxcdTk3RjRcXHU5N0Y3XFx1OTdGOFxcdTk3RkFcXHU5ODA3XFx1OTgwQVxcdTk4MTlcXHU5ODBEXFx1OTgwRVxcdTk4MTRcXHU5ODE2XFx1OTgxQ1xcdTk4MUVcXHU5ODIwXFx1OTgyM1xcdTk4MjZcIl0sXG4gICAgICBbXCI4ZmU4YTFcIiwgXCJcXHU5ODJCXFx1OTgyRVxcdTk4MkZcXHU5ODMwXFx1OTgzMlxcdTk4MzNcXHU5ODM1XFx1OTgyNVxcdTk4M0VcXHU5ODQ0XFx1OTg0N1xcdTk4NEFcXHU5ODUxXFx1OTg1MlxcdTk4NTNcXHU5ODU2XFx1OTg1N1xcdTk4NTlcXHU5ODVBXFx1OTg2MlxcdTk4NjNcXHU5ODY1XFx1OTg2NlxcdTk4NkFcXHU5ODZDXFx1OThBQlxcdTk4QURcXHU5OEFFXFx1OThCMFxcdTk4QjRcXHU5OEI3XFx1OThCOFxcdTk4QkFcXHU5OEJCXFx1OThCRlxcdTk4QzJcXHU5OEM1XFx1OThDOFxcdTk4Q0NcXHU5OEUxXFx1OThFM1xcdTk4RTVcXHU5OEU2XFx1OThFN1xcdTk4RUFcXHU5OEYzXFx1OThGNlxcdTk5MDJcXHU5OTA3XFx1OTkwOFxcdTk5MTFcXHU5OTE1XFx1OTkxNlxcdTk5MTdcXHU5OTFBXFx1OTkxQlxcdTk5MUNcXHU5OTFGXFx1OTkyMlxcdTk5MjZcXHU5OTI3XFx1OTkyQlxcdTk5MzFcIiwgNCwgXCJcXHU5OTM5XFx1OTkzQVxcdTk5M0JcXHU5OTNDXFx1OTk0MFxcdTk5NDFcXHU5OTQ2XFx1OTk0N1xcdTk5NDhcXHU5OTREXFx1OTk0RVxcdTk5NTRcXHU5OTU4XFx1OTk1OVxcdTk5NUJcXHU5OTVDXFx1OTk1RVxcdTk5NUZcXHU5OTYwXFx1OTk5QlxcdTk5OURcXHU5OTlGXFx1OTlBNlxcdTk5QjBcXHU5OUIxXFx1OTlCMlxcdTk5QjVcIl0sXG4gICAgICBbXCI4ZmU5YTFcIiwgXCJcXHU5OUI5XFx1OTlCQVxcdTk5QkRcXHU5OUJGXFx1OTlDM1xcdTk5QzlcXHU5OUQzXFx1OTlENFxcdTk5RDlcXHU5OURBXFx1OTlEQ1xcdTk5REVcXHU5OUU3XFx1OTlFQVxcdTk5RUJcXHU5OUVDXFx1OTlGMFxcdTk5RjRcXHU5OUY1XFx1OTlGOVxcdTk5RkRcXHU5OUZFXFx1OUEwMlxcdTlBMDNcXHU5QTA0XFx1OUEwQlxcdTlBMENcXHU5QTEwXFx1OUExMVxcdTlBMTZcXHU5QTFFXFx1OUEyMFxcdTlBMjJcXHU5QTIzXFx1OUEyNFxcdTlBMjdcXHU5QTJEXFx1OUEyRVxcdTlBMzNcXHU5QTM1XFx1OUEzNlxcdTlBMzhcXHU5QTQ3XFx1OUE0MVxcdTlBNDRcXHU5QTRBXFx1OUE0QlxcdTlBNENcXHU5QTRFXFx1OUE1MVxcdTlBNTRcXHU5QTU2XFx1OUE1RFxcdTlBQUFcXHU5QUFDXFx1OUFBRVxcdTlBQUZcXHU5QUIyXFx1OUFCNFxcdTlBQjVcXHU5QUI2XFx1OUFCOVxcdTlBQkJcXHU5QUJFXFx1OUFCRlxcdTlBQzFcXHU5QUMzXFx1OUFDNlxcdTlBQzhcXHU5QUNFXFx1OUFEMFxcdTlBRDJcXHU5QUQ1XFx1OUFENlxcdTlBRDdcXHU5QURCXFx1OUFEQ1xcdTlBRTBcXHU5QUU0XFx1OUFFNVxcdTlBRTdcXHU5QUU5XFx1OUFFQ1xcdTlBRjJcXHU5QUYzXFx1OUFGNVxcdTlBRjlcXHU5QUZBXFx1OUFGRFxcdTlBRkZcIiwgNF0sXG4gICAgICBbXCI4ZmVhYTFcIiwgXCJcXHU5QjA0XFx1OUIwNVxcdTlCMDhcXHU5QjA5XFx1OUIwQlxcdTlCMENcXHU5QjBEXFx1OUIwRVxcdTlCMTBcXHU5QjEyXFx1OUIxNlxcdTlCMTlcXHU5QjFCXFx1OUIxQ1xcdTlCMjBcXHU5QjI2XFx1OUIyQlxcdTlCMkRcXHU5QjMzXFx1OUIzNFxcdTlCMzVcXHU5QjM3XFx1OUIzOVxcdTlCM0FcXHU5QjNEXFx1OUI0OFxcdTlCNEJcXHU5QjRDXFx1OUI1NVxcdTlCNTZcXHU5QjU3XFx1OUI1QlxcdTlCNUVcXHU5QjYxXFx1OUI2M1xcdTlCNjVcXHU5QjY2XFx1OUI2OFxcdTlCNkFcIiwgNCwgXCJcXHU5QjczXFx1OUI3NVxcdTlCNzdcXHU5Qjc4XFx1OUI3OVxcdTlCN0ZcXHU5QjgwXFx1OUI4NFxcdTlCODVcXHU5Qjg2XFx1OUI4N1xcdTlCODlcXHU5QjhBXFx1OUI4QlxcdTlCOERcXHU5QjhGXFx1OUI5MFxcdTlCOTRcXHU5QjlBXFx1OUI5RFxcdTlCOUVcXHU5QkE2XFx1OUJBN1xcdTlCQTlcXHU5QkFDXFx1OUJCMFxcdTlCQjFcXHU5QkIyXFx1OUJCN1xcdTlCQjhcXHU5QkJCXFx1OUJCQ1xcdTlCQkVcXHU5QkJGXFx1OUJDMVxcdTlCQzdcXHU5QkM4XFx1OUJDRVxcdTlCRDBcXHU5QkQ3XFx1OUJEOFxcdTlCRERcXHU5QkRGXFx1OUJFNVxcdTlCRTdcXHU5QkVBXFx1OUJFQlxcdTlCRUZcXHU5QkYzXFx1OUJGN1xcdTlCRjhcIl0sXG4gICAgICBbXCI4ZmViYTFcIiwgXCJcXHU5QkY5XFx1OUJGQVxcdTlCRkRcXHU5QkZGXFx1OUMwMFxcdTlDMDJcXHU5QzBCXFx1OUMwRlxcdTlDMTFcXHU5QzE2XFx1OUMxOFxcdTlDMTlcXHU5QzFBXFx1OUMxQ1xcdTlDMUVcXHU5QzIyXFx1OUMyM1xcdTlDMjZcIiwgNCwgXCJcXHU5QzMxXFx1OUMzNVxcdTlDMzZcXHU5QzM3XFx1OUMzRFxcdTlDNDFcXHU5QzQzXFx1OUM0NFxcdTlDNDVcXHU5QzQ5XFx1OUM0QVxcdTlDNEVcXHU5QzRGXFx1OUM1MFxcdTlDNTNcXHU5QzU0XFx1OUM1NlxcdTlDNThcXHU5QzVCXFx1OUM1RFxcdTlDNUVcXHU5QzVGXFx1OUM2M1xcdTlDNjlcXHU5QzZBXFx1OUM1Q1xcdTlDNkJcXHU5QzY4XFx1OUM2RVxcdTlDNzBcXHU5QzcyXFx1OUM3NVxcdTlDNzdcXHU5QzdCXFx1OUNFNlxcdTlDRjJcXHU5Q0Y3XFx1OUNGOVxcdTlEMEJcXHU5RDAyXFx1OUQxMVxcdTlEMTdcXHU5RDE4XFx1OUQxQ1xcdTlEMURcXHU5RDFFXFx1OUQyRlxcdTlEMzBcXHU5RDMyXFx1OUQzM1xcdTlEMzRcXHU5RDNBXFx1OUQzQ1xcdTlENDVcXHU5RDNEXFx1OUQ0MlxcdTlENDNcXHU5RDQ3XFx1OUQ0QVxcdTlENTNcXHU5RDU0XFx1OUQ1RlxcdTlENjNcXHU5RDYyXFx1OUQ2NVxcdTlENjlcXHU5RDZBXFx1OUQ2QlxcdTlENzBcXHU5RDc2XFx1OUQ3N1xcdTlEN0JcIl0sXG4gICAgICBbXCI4ZmVjYTFcIiwgXCJcXHU5RDdDXFx1OUQ3RVxcdTlEODNcXHU5RDg0XFx1OUQ4NlxcdTlEOEFcXHU5RDhEXFx1OUQ4RVxcdTlEOTJcXHU5RDkzXFx1OUQ5NVxcdTlEOTZcXHU5RDk3XFx1OUQ5OFxcdTlEQTFcXHU5REFBXFx1OURBQ1xcdTlEQUVcXHU5REIxXFx1OURCNVxcdTlEQjlcXHU5REJDXFx1OURCRlxcdTlEQzNcXHU5REM3XFx1OURDOVxcdTlEQ0FcXHU5REQ0XFx1OURENVxcdTlERDZcXHU5REQ3XFx1OUREQVxcdTlEREVcXHU5RERGXFx1OURFMFxcdTlERTVcXHU5REU3XFx1OURFOVxcdTlERUJcXHU5REVFXFx1OURGMFxcdTlERjNcXHU5REY0XFx1OURGRVxcdTlFMEFcXHU5RTAyXFx1OUUwN1xcdTlFMEVcXHU5RTEwXFx1OUUxMVxcdTlFMTJcXHU5RTE1XFx1OUUxNlxcdTlFMTlcXHU5RTFDXFx1OUUxRFxcdTlFN0FcXHU5RTdCXFx1OUU3Q1xcdTlFODBcXHU5RTgyXFx1OUU4M1xcdTlFODRcXHU5RTg1XFx1OUU4N1xcdTlFOEVcXHU5RThGXFx1OUU5NlxcdTlFOThcXHU5RTlCXFx1OUU5RVxcdTlFQTRcXHU5RUE4XFx1OUVBQ1xcdTlFQUVcXHU5RUFGXFx1OUVCMFxcdTlFQjNcXHU5RUI0XFx1OUVCNVxcdTlFQzZcXHU5RUM4XFx1OUVDQlxcdTlFRDVcXHU5RURGXFx1OUVFNFxcdTlFRTdcXHU5RUVDXFx1OUVFRFxcdTlFRUVcXHU5RUYwXFx1OUVGMVxcdTlFRjJcXHU5RUY1XCJdLFxuICAgICAgW1wiOGZlZGExXCIsIFwiXFx1OUVGOFxcdTlFRkZcXHU5RjAyXFx1OUYwM1xcdTlGMDlcXHU5RjBGXFx1OUYxMFxcdTlGMTFcXHU5RjEyXFx1OUYxNFxcdTlGMTZcXHU5RjE3XFx1OUYxOVxcdTlGMUFcXHU5RjFCXFx1OUYxRlxcdTlGMjJcXHU5RjI2XFx1OUYyQVxcdTlGMkJcXHU5RjJGXFx1OUYzMVxcdTlGMzJcXHU5RjM0XFx1OUYzN1xcdTlGMzlcXHU5RjNBXFx1OUYzQ1xcdTlGM0RcXHU5RjNGXFx1OUY0MVxcdTlGNDNcIiwgNCwgXCJcXHU5RjUzXFx1OUY1NVxcdTlGNTZcXHU5RjU3XFx1OUY1OFxcdTlGNUFcXHU5RjVEXFx1OUY1RVxcdTlGNjhcXHU5RjY5XFx1OUY2RFwiLCA0LCBcIlxcdTlGNzNcXHU5Rjc1XFx1OUY3QVxcdTlGN0RcXHU5RjhGXFx1OUY5MFxcdTlGOTFcXHU5RjkyXFx1OUY5NFxcdTlGOTZcXHU5Rjk3XFx1OUY5RVxcdTlGQTFcXHU5RkEyXFx1OUZBM1xcdTlGQTVcIl1cbiAgICBdO1xuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL2JvZHktcGFyc2VyL25vZGVfbW9kdWxlcy9pY29udi1saXRlL2VuY29kaW5ncy90YWJsZXMvY3A5MzYuanNvblxudmFyIHJlcXVpcmVfY3A5MzYyID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL2JvZHktcGFyc2VyL25vZGVfbW9kdWxlcy9pY29udi1saXRlL2VuY29kaW5ncy90YWJsZXMvY3A5MzYuanNvblwiKGV4cG9ydHMyLCBtb2R1bGUyKSB7XG4gICAgbW9kdWxlMi5leHBvcnRzID0gW1xuICAgICAgW1wiMFwiLCBcIlxcMFwiLCAxMjcsIFwiXFx1MjBBQ1wiXSxcbiAgICAgIFtcIjgxNDBcIiwgXCJcXHU0RTAyXFx1NEUwNFxcdTRFMDVcXHU0RTA2XFx1NEUwRlxcdTRFMTJcXHU0RTE3XFx1NEUxRlxcdTRFMjBcXHU0RTIxXFx1NEUyM1xcdTRFMjZcXHU0RTI5XFx1NEUyRVxcdTRFMkZcXHU0RTMxXFx1NEUzM1xcdTRFMzVcXHU0RTM3XFx1NEUzQ1xcdTRFNDBcXHU0RTQxXFx1NEU0MlxcdTRFNDRcXHU0RTQ2XFx1NEU0QVxcdTRFNTFcXHU0RTU1XFx1NEU1N1xcdTRFNUFcXHU0RTVCXFx1NEU2MlxcdTRFNjNcXHU0RTY0XFx1NEU2NVxcdTRFNjdcXHU0RTY4XFx1NEU2QVwiLCA1LCBcIlxcdTRFNzJcXHU0RTc0XCIsIDksIFwiXFx1NEU3RlwiLCA2LCBcIlxcdTRFODdcXHU0RThBXCJdLFxuICAgICAgW1wiODE4MFwiLCBcIlxcdTRFOTBcXHU0RTk2XFx1NEU5N1xcdTRFOTlcXHU0RTlDXFx1NEU5RFxcdTRFOUVcXHU0RUEzXFx1NEVBQVxcdTRFQUZcXHU0RUIwXFx1NEVCMVxcdTRFQjRcXHU0RUI2XFx1NEVCN1xcdTRFQjhcXHU0RUI5XFx1NEVCQ1xcdTRFQkRcXHU0RUJFXFx1NEVDOFxcdTRFQ0NcXHU0RUNGXFx1NEVEMFxcdTRFRDJcXHU0RURBXFx1NEVEQlxcdTRFRENcXHU0RUUwXFx1NEVFMlxcdTRFRTZcXHU0RUU3XFx1NEVFOVxcdTRFRURcXHU0RUVFXFx1NEVFRlxcdTRFRjFcXHU0RUY0XFx1NEVGOFxcdTRFRjlcXHU0RUZBXFx1NEVGQ1xcdTRFRkVcXHU0RjAwXFx1NEYwMlwiLCA2LCBcIlxcdTRGMEJcXHU0RjBDXFx1NEYxMlwiLCA0LCBcIlxcdTRGMUNcXHU0RjFEXFx1NEYyMVxcdTRGMjNcXHU0RjI4XFx1NEYyOVxcdTRGMkNcXHU0RjJEXFx1NEYyRVxcdTRGMzFcXHU0RjMzXFx1NEYzNVxcdTRGMzdcXHU0RjM5XFx1NEYzQlxcdTRGM0VcIiwgNCwgXCJcXHU0RjQ0XFx1NEY0NVxcdTRGNDdcIiwgNSwgXCJcXHU0RjUyXFx1NEY1NFxcdTRGNTZcXHU0RjYxXFx1NEY2MlxcdTRGNjZcXHU0RjY4XFx1NEY2QVxcdTRGNkJcXHU0RjZEXFx1NEY2RVxcdTRGNzFcXHU0RjcyXFx1NEY3NVxcdTRGNzdcXHU0Rjc4XFx1NEY3OVxcdTRGN0FcXHU0RjdEXFx1NEY4MFxcdTRGODFcXHU0RjgyXFx1NEY4NVxcdTRGODZcXHU0Rjg3XFx1NEY4QVxcdTRGOENcXHU0RjhFXFx1NEY5MFxcdTRGOTJcXHU0RjkzXFx1NEY5NVxcdTRGOTZcXHU0Rjk4XFx1NEY5OVxcdTRGOUFcXHU0RjlDXFx1NEY5RVxcdTRGOUZcXHU0RkExXFx1NEZBMlwiXSxcbiAgICAgIFtcIjgyNDBcIiwgXCJcXHU0RkE0XFx1NEZBQlxcdTRGQURcXHU0RkIwXCIsIDQsIFwiXFx1NEZCNlwiLCA4LCBcIlxcdTRGQzBcXHU0RkMxXFx1NEZDMlxcdTRGQzZcXHU0RkM3XFx1NEZDOFxcdTRGQzlcXHU0RkNCXFx1NEZDQ1xcdTRGQ0RcXHU0RkQyXCIsIDQsIFwiXFx1NEZEOVxcdTRGREJcXHU0RkUwXFx1NEZFMlxcdTRGRTRcXHU0RkU1XFx1NEZFN1xcdTRGRUJcXHU0RkVDXFx1NEZGMFxcdTRGRjJcXHU0RkY0XFx1NEZGNVxcdTRGRjZcXHU0RkY3XFx1NEZGOVxcdTRGRkJcXHU0RkZDXFx1NEZGRFxcdTRGRkZcIiwgMTFdLFxuICAgICAgW1wiODI4MFwiLCBcIlxcdTUwMEJcXHU1MDBFXFx1NTAxMFxcdTUwMTFcXHU1MDEzXFx1NTAxNVxcdTUwMTZcXHU1MDE3XFx1NTAxQlxcdTUwMURcXHU1MDFFXFx1NTAyMFxcdTUwMjJcXHU1MDIzXFx1NTAyNFxcdTUwMjdcXHU1MDJCXFx1NTAyRlwiLCAxMCwgXCJcXHU1MDNCXFx1NTAzRFxcdTUwM0ZcXHU1MDQwXFx1NTA0MVxcdTUwNDJcXHU1MDQ0XFx1NTA0NVxcdTUwNDZcXHU1MDQ5XFx1NTA0QVxcdTUwNEJcXHU1MDREXFx1NTA1MFwiLCA0LCBcIlxcdTUwNTZcXHU1MDU3XFx1NTA1OFxcdTUwNTlcXHU1MDVCXFx1NTA1RFwiLCA3LCBcIlxcdTUwNjZcIiwgNSwgXCJcXHU1MDZEXCIsIDgsIFwiXFx1NTA3OFxcdTUwNzlcXHU1MDdBXFx1NTA3Q1xcdTUwN0RcXHU1MDgxXFx1NTA4MlxcdTUwODNcXHU1MDg0XFx1NTA4NlxcdTUwODdcXHU1MDg5XFx1NTA4QVxcdTUwOEJcXHU1MDhDXFx1NTA4RVwiLCAyMCwgXCJcXHU1MEE0XFx1NTBBNlxcdTUwQUFcXHU1MEFCXFx1NTBBRFwiLCA0LCBcIlxcdTUwQjNcIiwgNiwgXCJcXHU1MEJDXCJdLFxuICAgICAgW1wiODM0MFwiLCBcIlxcdTUwQkRcIiwgMTcsIFwiXFx1NTBEMFwiLCA1LCBcIlxcdTUwRDdcXHU1MEQ4XFx1NTBEOVxcdTUwREJcIiwgMTAsIFwiXFx1NTBFOFxcdTUwRTlcXHU1MEVBXFx1NTBFQlxcdTUwRUZcXHU1MEYwXFx1NTBGMVxcdTUwRjJcXHU1MEY0XFx1NTBGNlwiLCA0LCBcIlxcdTUwRkNcIiwgOSwgXCJcXHU1MTA4XCJdLFxuICAgICAgW1wiODM4MFwiLCBcIlxcdTUxMDlcXHU1MTBBXFx1NTEwQ1wiLCA1LCBcIlxcdTUxMTNcIiwgMTMsIFwiXFx1NTEyMlwiLCAyOCwgXCJcXHU1MTQyXFx1NTE0N1xcdTUxNEFcXHU1MTRDXFx1NTE0RVxcdTUxNEZcXHU1MTUwXFx1NTE1MlxcdTUxNTNcXHU1MTU3XFx1NTE1OFxcdTUxNTlcXHU1MTVCXFx1NTE1RFwiLCA0LCBcIlxcdTUxNjNcXHU1MTY0XFx1NTE2NlxcdTUxNjdcXHU1MTY5XFx1NTE2QVxcdTUxNkZcXHU1MTcyXFx1NTE3QVxcdTUxN0VcXHU1MTdGXFx1NTE4M1xcdTUxODRcXHU1MTg2XFx1NTE4N1xcdTUxOEFcXHU1MThCXFx1NTE4RVxcdTUxOEZcXHU1MTkwXFx1NTE5MVxcdTUxOTNcXHU1MTk0XFx1NTE5OFxcdTUxOUFcXHU1MTlEXFx1NTE5RVxcdTUxOUZcXHU1MUExXFx1NTFBM1xcdTUxQTZcIiwgNCwgXCJcXHU1MUFEXFx1NTFBRVxcdTUxQjRcXHU1MUI4XFx1NTFCOVxcdTUxQkFcXHU1MUJFXFx1NTFCRlxcdTUxQzFcXHU1MUMyXFx1NTFDM1xcdTUxQzVcXHU1MUM4XFx1NTFDQVxcdTUxQ0RcXHU1MUNFXFx1NTFEMFxcdTUxRDJcIiwgNV0sXG4gICAgICBbXCI4NDQwXCIsIFwiXFx1NTFEOFxcdTUxRDlcXHU1MURBXFx1NTFEQ1xcdTUxREVcXHU1MURGXFx1NTFFMlxcdTUxRTNcXHU1MUU1XCIsIDUsIFwiXFx1NTFFQ1xcdTUxRUVcXHU1MUYxXFx1NTFGMlxcdTUxRjRcXHU1MUY3XFx1NTFGRVxcdTUyMDRcXHU1MjA1XFx1NTIwOVxcdTUyMEJcXHU1MjBDXFx1NTIwRlxcdTUyMTBcXHU1MjEzXFx1NTIxNFxcdTUyMTVcXHU1MjFDXFx1NTIxRVxcdTUyMUZcXHU1MjIxXFx1NTIyMlxcdTUyMjNcXHU1MjI1XFx1NTIyNlxcdTUyMjdcXHU1MjJBXFx1NTIyQ1xcdTUyMkZcXHU1MjMxXFx1NTIzMlxcdTUyMzRcXHU1MjM1XFx1NTIzQ1xcdTUyM0VcXHU1MjQ0XCIsIDUsIFwiXFx1NTI0QlxcdTUyNEVcXHU1MjRGXFx1NTI1MlxcdTUyNTNcXHU1MjU1XFx1NTI1N1xcdTUyNThcIl0sXG4gICAgICBbXCI4NDgwXCIsIFwiXFx1NTI1OVxcdTUyNUFcXHU1MjVCXFx1NTI1RFxcdTUyNUZcXHU1MjYwXFx1NTI2MlxcdTUyNjNcXHU1MjY0XFx1NTI2NlxcdTUyNjhcXHU1MjZCXFx1NTI2Q1xcdTUyNkRcXHU1MjZFXFx1NTI3MFxcdTUyNzFcXHU1MjczXCIsIDksIFwiXFx1NTI3RVxcdTUyODBcXHU1MjgzXCIsIDQsIFwiXFx1NTI4OVwiLCA2LCBcIlxcdTUyOTFcXHU1MjkyXFx1NTI5NFwiLCA2LCBcIlxcdTUyOUNcXHU1MkE0XFx1NTJBNVxcdTUyQTZcXHU1MkE3XFx1NTJBRVxcdTUyQUZcXHU1MkIwXFx1NTJCNFwiLCA5LCBcIlxcdTUyQzBcXHU1MkMxXFx1NTJDMlxcdTUyQzRcXHU1MkM1XFx1NTJDNlxcdTUyQzhcXHU1MkNBXFx1NTJDQ1xcdTUyQ0RcXHU1MkNFXFx1NTJDRlxcdTUyRDFcXHU1MkQzXFx1NTJENFxcdTUyRDVcXHU1MkQ3XFx1NTJEOVwiLCA1LCBcIlxcdTUyRTBcXHU1MkUxXFx1NTJFMlxcdTUyRTNcXHU1MkU1XCIsIDEwLCBcIlxcdTUyRjFcIiwgNywgXCJcXHU1MkZCXFx1NTJGQ1xcdTUyRkRcXHU1MzAxXFx1NTMwMlxcdTUzMDNcXHU1MzA0XFx1NTMwN1xcdTUzMDlcXHU1MzBBXFx1NTMwQlxcdTUzMENcXHU1MzBFXCJdLFxuICAgICAgW1wiODU0MFwiLCBcIlxcdTUzMTFcXHU1MzEyXFx1NTMxM1xcdTUzMTRcXHU1MzE4XFx1NTMxQlxcdTUzMUNcXHU1MzFFXFx1NTMxRlxcdTUzMjJcXHU1MzI0XFx1NTMyNVxcdTUzMjdcXHU1MzI4XFx1NTMyOVxcdTUzMkJcXHU1MzJDXFx1NTMyRFxcdTUzMkZcIiwgOSwgXCJcXHU1MzNDXFx1NTMzRFxcdTUzNDBcXHU1MzQyXFx1NTM0NFxcdTUzNDZcXHU1MzRCXFx1NTM0Q1xcdTUzNERcXHU1MzUwXFx1NTM1NFxcdTUzNThcXHU1MzU5XFx1NTM1QlxcdTUzNURcXHU1MzY1XFx1NTM2OFxcdTUzNkFcXHU1MzZDXFx1NTM2RFxcdTUzNzJcXHU1Mzc2XFx1NTM3OVxcdTUzN0JcXHU1MzdDXFx1NTM3RFxcdTUzN0VcXHU1MzgwXFx1NTM4MVxcdTUzODNcXHU1Mzg3XFx1NTM4OFxcdTUzOEFcXHU1MzhFXFx1NTM4RlwiXSxcbiAgICAgIFtcIjg1ODBcIiwgXCJcXHU1MzkwXCIsIDQsIFwiXFx1NTM5NlxcdTUzOTdcXHU1Mzk5XFx1NTM5QlxcdTUzOUNcXHU1MzlFXFx1NTNBMFxcdTUzQTFcXHU1M0E0XFx1NTNBN1xcdTUzQUFcXHU1M0FCXFx1NTNBQ1xcdTUzQURcXHU1M0FGXCIsIDYsIFwiXFx1NTNCN1xcdTUzQjhcXHU1M0I5XFx1NTNCQVxcdTUzQkNcXHU1M0JEXFx1NTNCRVxcdTUzQzBcXHU1M0MzXCIsIDQsIFwiXFx1NTNDRVxcdTUzQ0ZcXHU1M0QwXFx1NTNEMlxcdTUzRDNcXHU1M0Q1XFx1NTNEQVxcdTUzRENcXHU1M0REXFx1NTNERVxcdTUzRTFcXHU1M0UyXFx1NTNFN1xcdTUzRjRcXHU1M0ZBXFx1NTNGRVxcdTUzRkZcXHU1NDAwXFx1NTQwMlxcdTU0MDVcXHU1NDA3XFx1NTQwQlxcdTU0MTRcXHU1NDE4XFx1NTQxOVxcdTU0MUFcXHU1NDFDXFx1NTQyMlxcdTU0MjRcXHU1NDI1XFx1NTQyQVxcdTU0MzBcXHU1NDMzXFx1NTQzNlxcdTU0MzdcXHU1NDNBXFx1NTQzRFxcdTU0M0ZcXHU1NDQxXFx1NTQ0MlxcdTU0NDRcXHU1NDQ1XFx1NTQ0N1xcdTU0NDlcXHU1NDRDXFx1NTQ0RFxcdTU0NEVcXHU1NDRGXFx1NTQ1MVxcdTU0NUFcXHU1NDVEXCIsIDQsIFwiXFx1NTQ2M1xcdTU0NjVcXHU1NDY3XFx1NTQ2OVwiLCA3LCBcIlxcdTU0NzRcXHU1NDc5XFx1NTQ3QVxcdTU0N0VcXHU1NDdGXFx1NTQ4MVxcdTU0ODNcXHU1NDg1XFx1NTQ4N1xcdTU0ODhcXHU1NDg5XFx1NTQ4QVxcdTU0OERcXHU1NDkxXFx1NTQ5M1xcdTU0OTdcXHU1NDk4XFx1NTQ5Q1xcdTU0OUVcXHU1NDlGXFx1NTRBMFxcdTU0QTFcIl0sXG4gICAgICBbXCI4NjQwXCIsIFwiXFx1NTRBMlxcdTU0QTVcXHU1NEFFXFx1NTRCMFxcdTU0QjJcXHU1NEI1XFx1NTRCNlxcdTU0QjdcXHU1NEI5XFx1NTRCQVxcdTU0QkNcXHU1NEJFXFx1NTRDM1xcdTU0QzVcXHU1NENBXFx1NTRDQlxcdTU0RDZcXHU1NEQ4XFx1NTREQlxcdTU0RTBcIiwgNCwgXCJcXHU1NEVCXFx1NTRFQ1xcdTU0RUZcXHU1NEYwXFx1NTRGMVxcdTU0RjRcIiwgNSwgXCJcXHU1NEZCXFx1NTRGRVxcdTU1MDBcXHU1NTAyXFx1NTUwM1xcdTU1MDRcXHU1NTA1XFx1NTUwOFxcdTU1MEFcIiwgNCwgXCJcXHU1NTEyXFx1NTUxM1xcdTU1MTVcIiwgNSwgXCJcXHU1NTFDXFx1NTUxRFxcdTU1MUVcXHU1NTFGXFx1NTUyMVxcdTU1MjVcXHU1NTI2XCJdLFxuICAgICAgW1wiODY4MFwiLCBcIlxcdTU1MjhcXHU1NTI5XFx1NTUyQlxcdTU1MkRcXHU1NTMyXFx1NTUzNFxcdTU1MzVcXHU1NTM2XFx1NTUzOFxcdTU1MzlcXHU1NTNBXFx1NTUzQlxcdTU1M0RcXHU1NTQwXFx1NTU0MlxcdTU1NDVcXHU1NTQ3XFx1NTU0OFxcdTU1NEJcIiwgNCwgXCJcXHU1NTUxXFx1NTU1MlxcdTU1NTNcXHU1NTU0XFx1NTU1N1wiLCA0LCBcIlxcdTU1NURcXHU1NTVFXFx1NTU1RlxcdTU1NjBcXHU1NTYyXFx1NTU2M1xcdTU1NjhcXHU1NTY5XFx1NTU2QlxcdTU1NkZcIiwgNSwgXCJcXHU1NTc5XFx1NTU3QVxcdTU1N0RcXHU1NTdGXFx1NTU4NVxcdTU1ODZcXHU1NThDXFx1NTU4RFxcdTU1OEVcXHU1NTkwXFx1NTU5MlxcdTU1OTNcXHU1NTk1XFx1NTU5NlxcdTU1OTdcXHU1NTlBXFx1NTU5QlxcdTU1OUVcXHU1NUEwXCIsIDYsIFwiXFx1NTVBOFwiLCA4LCBcIlxcdTU1QjJcXHU1NUI0XFx1NTVCNlxcdTU1QjhcXHU1NUJBXFx1NTVCQ1xcdTU1QkZcIiwgNCwgXCJcXHU1NUM2XFx1NTVDN1xcdTU1QzhcXHU1NUNBXFx1NTVDQlxcdTU1Q0VcXHU1NUNGXFx1NTVEMFxcdTU1RDVcXHU1NUQ3XCIsIDQsIFwiXFx1NTVERVxcdTU1RTBcXHU1NUUyXFx1NTVFN1xcdTU1RTlcXHU1NUVEXFx1NTVFRVxcdTU1RjBcXHU1NUYxXFx1NTVGNFxcdTU1RjZcXHU1NUY4XCIsIDQsIFwiXFx1NTVGRlxcdTU2MDJcXHU1NjAzXFx1NTYwNFxcdTU2MDVcIl0sXG4gICAgICBbXCI4NzQwXCIsIFwiXFx1NTYwNlxcdTU2MDdcXHU1NjBBXFx1NTYwQlxcdTU2MERcXHU1NjEwXCIsIDcsIFwiXFx1NTYxOVxcdTU2MUFcXHU1NjFDXFx1NTYxRFxcdTU2MjBcXHU1NjIxXFx1NTYyMlxcdTU2MjVcXHU1NjI2XFx1NTYyOFxcdTU2MjlcXHU1NjJBXFx1NTYyQlxcdTU2MkVcXHU1NjJGXFx1NTYzMFxcdTU2MzNcXHU1NjM1XFx1NTYzN1xcdTU2MzhcXHU1NjNBXFx1NTYzQ1xcdTU2M0RcXHU1NjNFXFx1NTY0MFwiLCAxMSwgXCJcXHU1NjRGXCIsIDQsIFwiXFx1NTY1NVxcdTU2NTZcXHU1NjVBXFx1NTY1QlxcdTU2NURcIiwgNF0sXG4gICAgICBbXCI4NzgwXCIsIFwiXFx1NTY2M1xcdTU2NjVcXHU1NjY2XFx1NTY2N1xcdTU2NkRcXHU1NjZFXFx1NTY2RlxcdTU2NzBcXHU1NjcyXFx1NTY3M1xcdTU2NzRcXHU1Njc1XFx1NTY3N1xcdTU2NzhcXHU1Njc5XFx1NTY3QVxcdTU2N0RcIiwgNywgXCJcXHU1Njg3XCIsIDYsIFwiXFx1NTY5MFxcdTU2OTFcXHU1NjkyXFx1NTY5NFwiLCAxNCwgXCJcXHU1NkE0XCIsIDEwLCBcIlxcdTU2QjBcIiwgNiwgXCJcXHU1NkI4XFx1NTZCOVxcdTU2QkFcXHU1NkJCXFx1NTZCRFwiLCAxMiwgXCJcXHU1NkNCXCIsIDgsIFwiXFx1NTZENVxcdTU2RDZcXHU1NkQ4XFx1NTZEOVxcdTU2RENcXHU1NkUzXFx1NTZFNVwiLCA1LCBcIlxcdTU2RUNcXHU1NkVFXFx1NTZFRlxcdTU2RjJcXHU1NkYzXFx1NTZGNlxcdTU2RjdcXHU1NkY4XFx1NTZGQlxcdTU2RkNcXHU1NzAwXFx1NTcwMVxcdTU3MDJcXHU1NzA1XFx1NTcwN1xcdTU3MEJcIiwgNl0sXG4gICAgICBbXCI4ODQwXCIsIFwiXFx1NTcxMlwiLCA5LCBcIlxcdTU3MURcXHU1NzFFXFx1NTcyMFxcdTU3MjFcXHU1NzIyXFx1NTcyNFxcdTU3MjVcXHU1NzI2XFx1NTcyN1xcdTU3MkJcXHU1NzMxXFx1NTczMlxcdTU3MzRcIiwgNCwgXCJcXHU1NzNDXFx1NTczRFxcdTU3M0ZcXHU1NzQxXFx1NTc0M1xcdTU3NDRcXHU1NzQ1XFx1NTc0NlxcdTU3NDhcXHU1NzQ5XFx1NTc0QlxcdTU3NTJcIiwgNCwgXCJcXHU1NzU4XFx1NTc1OVxcdTU3NjJcXHU1NzYzXFx1NTc2NVxcdTU3NjdcXHU1NzZDXFx1NTc2RVxcdTU3NzBcXHU1NzcxXFx1NTc3MlxcdTU3NzRcXHU1Nzc1XFx1NTc3OFxcdTU3NzlcXHU1NzdBXFx1NTc3RFxcdTU3N0VcXHU1NzdGXFx1NTc4MFwiXSxcbiAgICAgIFtcIjg4ODBcIiwgXCJcXHU1NzgxXFx1NTc4N1xcdTU3ODhcXHU1Nzg5XFx1NTc4QVxcdTU3OERcIiwgNCwgXCJcXHU1Nzk0XCIsIDYsIFwiXFx1NTc5Q1xcdTU3OURcXHU1NzlFXFx1NTc5RlxcdTU3QTVcXHU1N0E4XFx1NTdBQVxcdTU3QUNcXHU1N0FGXFx1NTdCMFxcdTU3QjFcXHU1N0IzXFx1NTdCNVxcdTU3QjZcXHU1N0I3XFx1NTdCOVwiLCA4LCBcIlxcdTU3QzRcIiwgNiwgXCJcXHU1N0NDXFx1NTdDRFxcdTU3RDBcXHU1N0QxXFx1NTdEM1xcdTU3RDZcXHU1N0Q3XFx1NTdEQlxcdTU3RENcXHU1N0RFXFx1NTdFMVxcdTU3RTJcXHU1N0UzXFx1NTdFNVwiLCA3LCBcIlxcdTU3RUVcXHU1N0YwXFx1NTdGMVxcdTU3RjJcXHU1N0YzXFx1NTdGNVxcdTU3RjZcXHU1N0Y3XFx1NTdGQlxcdTU3RkNcXHU1N0ZFXFx1NTdGRlxcdTU4MDFcXHU1ODAzXFx1NTgwNFxcdTU4MDVcXHU1ODA4XFx1NTgwOVxcdTU4MEFcXHU1ODBDXFx1NTgwRVxcdTU4MEZcXHU1ODEwXFx1NTgxMlxcdTU4MTNcXHU1ODE0XFx1NTgxNlxcdTU4MTdcXHU1ODE4XFx1NTgxQVxcdTU4MUJcXHU1ODFDXFx1NTgxRFxcdTU4MUZcXHU1ODIyXFx1NTgyM1xcdTU4MjVcIiwgNCwgXCJcXHU1ODJCXCIsIDQsIFwiXFx1NTgzMVxcdTU4MzJcXHU1ODMzXFx1NTgzNFxcdTU4MzZcIiwgN10sXG4gICAgICBbXCI4OTQwXCIsIFwiXFx1NTgzRVwiLCA1LCBcIlxcdTU4NDVcIiwgNiwgXCJcXHU1ODRFXFx1NTg0RlxcdTU4NTBcXHU1ODUyXFx1NTg1M1xcdTU4NTVcXHU1ODU2XFx1NTg1N1xcdTU4NTlcIiwgNCwgXCJcXHU1ODVGXCIsIDUsIFwiXFx1NTg2NlwiLCA0LCBcIlxcdTU4NkRcIiwgMTYsIFwiXFx1NTg3RlxcdTU4ODJcXHU1ODg0XFx1NTg4NlxcdTU4ODdcXHU1ODg4XFx1NTg4QVxcdTU4OEJcXHU1ODhDXCJdLFxuICAgICAgW1wiODk4MFwiLCBcIlxcdTU4OERcIiwgNCwgXCJcXHU1ODk0XCIsIDQsIFwiXFx1NTg5QlxcdTU4OUNcXHU1ODlEXFx1NThBMFwiLCA3LCBcIlxcdTU4QUFcIiwgMTcsIFwiXFx1NThCRFxcdTU4QkVcXHU1OEJGXFx1NThDMFxcdTU4QzJcXHU1OEMzXFx1NThDNFxcdTU4QzZcIiwgMTAsIFwiXFx1NThEMlxcdTU4RDNcXHU1OEQ0XFx1NThENlwiLCAxMywgXCJcXHU1OEU1XCIsIDUsIFwiXFx1NThFRFxcdTU4RUZcXHU1OEYxXFx1NThGMlxcdTU4RjRcXHU1OEY1XFx1NThGN1xcdTU4RjhcXHU1OEZBXCIsIDcsIFwiXFx1NTkwM1xcdTU5MDVcXHU1OTA2XFx1NTkwOFwiLCA0LCBcIlxcdTU5MEVcXHU1OTEwXFx1NTkxMVxcdTU5MTJcXHU1OTEzXFx1NTkxN1xcdTU5MThcXHU1OTFCXFx1NTkxRFxcdTU5MUVcXHU1OTIwXFx1NTkyMVxcdTU5MjJcXHU1OTIzXFx1NTkyNlxcdTU5MjhcXHU1OTJDXFx1NTkzMFxcdTU5MzJcXHU1OTMzXFx1NTkzNVxcdTU5MzZcXHU1OTNCXCJdLFxuICAgICAgW1wiOGE0MFwiLCBcIlxcdTU5M0RcXHU1OTNFXFx1NTkzRlxcdTU5NDBcXHU1OTQzXFx1NTk0NVxcdTU5NDZcXHU1OTRBXFx1NTk0Q1xcdTU5NERcXHU1OTUwXFx1NTk1MlxcdTU5NTNcXHU1OTU5XFx1NTk1QlwiLCA0LCBcIlxcdTU5NjFcXHU1OTYzXFx1NTk2NFxcdTU5NjZcIiwgMTIsIFwiXFx1NTk3NVxcdTU5NzdcXHU1OTdBXFx1NTk3QlxcdTU5N0NcXHU1OTdFXFx1NTk3RlxcdTU5ODBcXHU1OTg1XFx1NTk4OVxcdTU5OEJcXHU1OThDXFx1NTk4RVxcdTU5OEZcXHU1OTkwXFx1NTk5MVxcdTU5OTRcXHU1OTk1XFx1NTk5OFxcdTU5OUFcXHU1OTlCXFx1NTk5Q1xcdTU5OURcXHU1OTlGXFx1NTlBMFxcdTU5QTFcXHU1OUEyXFx1NTlBNlwiXSxcbiAgICAgIFtcIjhhODBcIiwgXCJcXHU1OUE3XFx1NTlBQ1xcdTU5QURcXHU1OUIwXFx1NTlCMVxcdTU5QjNcIiwgNSwgXCJcXHU1OUJBXFx1NTlCQ1xcdTU5QkRcXHU1OUJGXCIsIDYsIFwiXFx1NTlDN1xcdTU5QzhcXHU1OUM5XFx1NTlDQ1xcdTU5Q0RcXHU1OUNFXFx1NTlDRlxcdTU5RDVcXHU1OUQ2XFx1NTlEOVxcdTU5REJcXHU1OURFXCIsIDQsIFwiXFx1NTlFNFxcdTU5RTZcXHU1OUU3XFx1NTlFOVxcdTU5RUFcXHU1OUVCXFx1NTlFRFwiLCAxMSwgXCJcXHU1OUZBXFx1NTlGQ1xcdTU5RkRcXHU1OUZFXFx1NUEwMFxcdTVBMDJcXHU1QTBBXFx1NUEwQlxcdTVBMERcXHU1QTBFXFx1NUEwRlxcdTVBMTBcXHU1QTEyXFx1NUExNFxcdTVBMTVcXHU1QTE2XFx1NUExN1xcdTVBMTlcXHU1QTFBXFx1NUExQlxcdTVBMURcXHU1QTFFXFx1NUEyMVxcdTVBMjJcXHU1QTI0XFx1NUEyNlxcdTVBMjdcXHU1QTI4XFx1NUEyQVwiLCA2LCBcIlxcdTVBMzNcXHU1QTM1XFx1NUEzN1wiLCA0LCBcIlxcdTVBM0RcXHU1QTNFXFx1NUEzRlxcdTVBNDFcIiwgNCwgXCJcXHU1QTQ3XFx1NUE0OFxcdTVBNEJcIiwgOSwgXCJcXHU1QTU2XFx1NUE1N1xcdTVBNThcXHU1QTU5XFx1NUE1QlwiLCA1XSxcbiAgICAgIFtcIjhiNDBcIiwgXCJcXHU1QTYxXFx1NUE2M1xcdTVBNjRcXHU1QTY1XFx1NUE2NlxcdTVBNjhcXHU1QTY5XFx1NUE2QlwiLCA4LCBcIlxcdTVBNzhcXHU1QTc5XFx1NUE3QlxcdTVBN0NcXHU1QTdEXFx1NUE3RVxcdTVBODBcIiwgMTcsIFwiXFx1NUE5M1wiLCA2LCBcIlxcdTVBOUNcIiwgMTMsIFwiXFx1NUFBQlxcdTVBQUNcIl0sXG4gICAgICBbXCI4YjgwXCIsIFwiXFx1NUFBRFwiLCA0LCBcIlxcdTVBQjRcXHU1QUI2XFx1NUFCN1xcdTVBQjlcIiwgNCwgXCJcXHU1QUJGXFx1NUFDMFxcdTVBQzNcIiwgNSwgXCJcXHU1QUNBXFx1NUFDQlxcdTVBQ0RcIiwgNCwgXCJcXHU1QUQzXFx1NUFENVxcdTVBRDdcXHU1QUQ5XFx1NUFEQVxcdTVBREJcXHU1QUREXFx1NUFERVxcdTVBREZcXHU1QUUyXFx1NUFFNFxcdTVBRTVcXHU1QUU3XFx1NUFFOFxcdTVBRUFcXHU1QUVDXCIsIDQsIFwiXFx1NUFGMlwiLCAyMiwgXCJcXHU1QjBBXCIsIDExLCBcIlxcdTVCMThcIiwgMjUsIFwiXFx1NUIzM1xcdTVCMzVcXHU1QjM2XFx1NUIzOFwiLCA3LCBcIlxcdTVCNDFcIiwgNl0sXG4gICAgICBbXCI4YzQwXCIsIFwiXFx1NUI0OFwiLCA3LCBcIlxcdTVCNTJcXHU1QjU2XFx1NUI1RVxcdTVCNjBcXHU1QjYxXFx1NUI2N1xcdTVCNjhcXHU1QjZCXFx1NUI2RFxcdTVCNkVcXHU1QjZGXFx1NUI3MlxcdTVCNzRcXHU1Qjc2XFx1NUI3N1xcdTVCNzhcXHU1Qjc5XFx1NUI3QlxcdTVCN0NcXHU1QjdFXFx1NUI3RlxcdTVCODJcXHU1Qjg2XFx1NUI4QVxcdTVCOERcXHU1QjhFXFx1NUI5MFxcdTVCOTFcXHU1QjkyXFx1NUI5NFxcdTVCOTZcXHU1QjlGXFx1NUJBN1xcdTVCQThcXHU1QkE5XFx1NUJBQ1xcdTVCQURcXHU1QkFFXFx1NUJBRlxcdTVCQjFcXHU1QkIyXFx1NUJCN1xcdTVCQkFcXHU1QkJCXFx1NUJCQ1xcdTVCQzBcXHU1QkMxXFx1NUJDM1xcdTVCQzhcXHU1QkM5XFx1NUJDQVxcdTVCQ0JcXHU1QkNEXFx1NUJDRVxcdTVCQ0ZcIl0sXG4gICAgICBbXCI4YzgwXCIsIFwiXFx1NUJEMVxcdTVCRDRcIiwgOCwgXCJcXHU1QkUwXFx1NUJFMlxcdTVCRTNcXHU1QkU2XFx1NUJFN1xcdTVCRTlcIiwgNCwgXCJcXHU1QkVGXFx1NUJGMVwiLCA2LCBcIlxcdTVCRkRcXHU1QkZFXFx1NUMwMFxcdTVDMDJcXHU1QzAzXFx1NUMwNVxcdTVDMDdcXHU1QzA4XFx1NUMwQlxcdTVDMENcXHU1QzBEXFx1NUMwRVxcdTVDMTBcXHU1QzEyXFx1NUMxM1xcdTVDMTdcXHU1QzE5XFx1NUMxQlxcdTVDMUVcXHU1QzFGXFx1NUMyMFxcdTVDMjFcXHU1QzIzXFx1NUMyNlxcdTVDMjhcXHU1QzI5XFx1NUMyQVxcdTVDMkJcXHU1QzJEXFx1NUMyRVxcdTVDMkZcXHU1QzMwXFx1NUMzMlxcdTVDMzNcXHU1QzM1XFx1NUMzNlxcdTVDMzdcXHU1QzQzXFx1NUM0NFxcdTVDNDZcXHU1QzQ3XFx1NUM0Q1xcdTVDNERcXHU1QzUyXFx1NUM1M1xcdTVDNTRcXHU1QzU2XFx1NUM1N1xcdTVDNThcXHU1QzVBXFx1NUM1QlxcdTVDNUNcXHU1QzVEXFx1NUM1RlxcdTVDNjJcXHU1QzY0XFx1NUM2N1wiLCA2LCBcIlxcdTVDNzBcXHU1QzcyXCIsIDYsIFwiXFx1NUM3QlxcdTVDN0NcXHU1QzdEXFx1NUM3RVxcdTVDODBcXHU1QzgzXCIsIDQsIFwiXFx1NUM4OVxcdTVDOEFcXHU1QzhCXFx1NUM4RVxcdTVDOEZcXHU1QzkyXFx1NUM5M1xcdTVDOTVcXHU1QzlEXCIsIDQsIFwiXFx1NUNBNFwiLCA0XSxcbiAgICAgIFtcIjhkNDBcIiwgXCJcXHU1Q0FBXFx1NUNBRVxcdTVDQUZcXHU1Q0IwXFx1NUNCMlxcdTVDQjRcXHU1Q0I2XFx1NUNCOVxcdTVDQkFcXHU1Q0JCXFx1NUNCQ1xcdTVDQkVcXHU1Q0MwXFx1NUNDMlxcdTVDQzNcXHU1Q0M1XCIsIDUsIFwiXFx1NUNDQ1wiLCA1LCBcIlxcdTVDRDNcIiwgNSwgXCJcXHU1Q0RBXCIsIDYsIFwiXFx1NUNFMlxcdTVDRTNcXHU1Q0U3XFx1NUNFOVxcdTVDRUJcXHU1Q0VDXFx1NUNFRVxcdTVDRUZcXHU1Q0YxXCIsIDksIFwiXFx1NUNGQ1wiLCA0XSxcbiAgICAgIFtcIjhkODBcIiwgXCJcXHU1RDAxXFx1NUQwNFxcdTVEMDVcXHU1RDA4XCIsIDUsIFwiXFx1NUQwRlwiLCA0LCBcIlxcdTVEMTVcXHU1RDE3XFx1NUQxOFxcdTVEMTlcXHU1RDFBXFx1NUQxQ1xcdTVEMURcXHU1RDFGXCIsIDQsIFwiXFx1NUQyNVxcdTVEMjhcXHU1RDJBXFx1NUQyQlxcdTVEMkNcXHU1RDJGXCIsIDQsIFwiXFx1NUQzNVwiLCA3LCBcIlxcdTVEM0ZcIiwgNywgXCJcXHU1RDQ4XFx1NUQ0OVxcdTVENERcIiwgMTAsIFwiXFx1NUQ1OVxcdTVENUFcXHU1RDVDXFx1NUQ1RVwiLCAxMCwgXCJcXHU1RDZBXFx1NUQ2RFxcdTVENkVcXHU1RDcwXFx1NUQ3MVxcdTVENzJcXHU1RDczXFx1NUQ3NVwiLCAxMiwgXCJcXHU1RDgzXCIsIDIxLCBcIlxcdTVEOUFcXHU1RDlCXFx1NUQ5Q1xcdTVEOUVcXHU1RDlGXFx1NURBMFwiXSxcbiAgICAgIFtcIjhlNDBcIiwgXCJcXHU1REExXCIsIDIxLCBcIlxcdTVEQjhcIiwgMTIsIFwiXFx1NURDNlwiLCA2LCBcIlxcdTVEQ0VcIiwgMTIsIFwiXFx1NUREQ1xcdTVEREZcXHU1REUwXFx1NURFM1xcdTVERTRcXHU1REVBXFx1NURFQ1xcdTVERURcIl0sXG4gICAgICBbXCI4ZTgwXCIsIFwiXFx1NURGMFxcdTVERjVcXHU1REY2XFx1NURGOFwiLCA0LCBcIlxcdTVERkZcXHU1RTAwXFx1NUUwNFxcdTVFMDdcXHU1RTA5XFx1NUUwQVxcdTVFMEJcXHU1RTBEXFx1NUUwRVxcdTVFMTJcXHU1RTEzXFx1NUUxN1xcdTVFMUVcIiwgNywgXCJcXHU1RTI4XCIsIDQsIFwiXFx1NUUyRlxcdTVFMzBcXHU1RTMyXCIsIDQsIFwiXFx1NUUzOVxcdTVFM0FcXHU1RTNFXFx1NUUzRlxcdTVFNDBcXHU1RTQxXFx1NUU0M1xcdTVFNDZcIiwgNSwgXCJcXHU1RTREXCIsIDYsIFwiXFx1NUU1NlwiLCA0LCBcIlxcdTVFNUNcXHU1RTVEXFx1NUU1RlxcdTVFNjBcXHU1RTYzXCIsIDE0LCBcIlxcdTVFNzVcXHU1RTc3XFx1NUU3OVxcdTVFN0VcXHU1RTgxXFx1NUU4MlxcdTVFODNcXHU1RTg1XFx1NUU4OFxcdTVFODlcXHU1RThDXFx1NUU4RFxcdTVFOEVcXHU1RTkyXFx1NUU5OFxcdTVFOUJcXHU1RTlEXFx1NUVBMVxcdTVFQTJcXHU1RUEzXFx1NUVBNFxcdTVFQThcIiwgNCwgXCJcXHU1RUFFXCIsIDQsIFwiXFx1NUVCNFxcdTVFQkFcXHU1RUJCXFx1NUVCQ1xcdTVFQkRcXHU1RUJGXCIsIDZdLFxuICAgICAgW1wiOGY0MFwiLCBcIlxcdTVFQzZcXHU1RUM3XFx1NUVDOFxcdTVFQ0JcIiwgNSwgXCJcXHU1RUQ0XFx1NUVENVxcdTVFRDdcXHU1RUQ4XFx1NUVEOVxcdTVFREFcXHU1RURDXCIsIDExLCBcIlxcdTVFRTlcXHU1RUVCXCIsIDgsIFwiXFx1NUVGNVxcdTVFRjhcXHU1RUY5XFx1NUVGQlxcdTVFRkNcXHU1RUZEXFx1NUYwNVxcdTVGMDZcXHU1RjA3XFx1NUYwOVxcdTVGMENcXHU1RjBEXFx1NUYwRVxcdTVGMTBcXHU1RjEyXFx1NUYxNFxcdTVGMTZcXHU1RjE5XFx1NUYxQVxcdTVGMUNcXHU1RjFEXFx1NUYxRVxcdTVGMjFcXHU1RjIyXFx1NUYyM1xcdTVGMjRcIl0sXG4gICAgICBbXCI4ZjgwXCIsIFwiXFx1NUYyOFxcdTVGMkJcXHU1RjJDXFx1NUYyRVxcdTVGMzBcXHU1RjMyXCIsIDYsIFwiXFx1NUYzQlxcdTVGM0RcXHU1RjNFXFx1NUYzRlxcdTVGNDFcIiwgMTQsIFwiXFx1NUY1MVxcdTVGNTRcXHU1RjU5XFx1NUY1QVxcdTVGNUJcXHU1RjVDXFx1NUY1RVxcdTVGNUZcXHU1RjYwXFx1NUY2M1xcdTVGNjVcXHU1RjY3XFx1NUY2OFxcdTVGNkJcXHU1RjZFXFx1NUY2RlxcdTVGNzJcXHU1Rjc0XFx1NUY3NVxcdTVGNzZcXHU1Rjc4XFx1NUY3QVxcdTVGN0RcXHU1RjdFXFx1NUY3RlxcdTVGODNcXHU1Rjg2XFx1NUY4RFxcdTVGOEVcXHU1RjhGXFx1NUY5MVxcdTVGOTNcXHU1Rjk0XFx1NUY5NlxcdTVGOUFcXHU1RjlCXFx1NUY5RFxcdTVGOUVcXHU1RjlGXFx1NUZBMFxcdTVGQTJcIiwgNSwgXCJcXHU1RkE5XFx1NUZBQlxcdTVGQUNcXHU1RkFGXCIsIDUsIFwiXFx1NUZCNlxcdTVGQjhcXHU1RkI5XFx1NUZCQVxcdTVGQkJcXHU1RkJFXCIsIDQsIFwiXFx1NUZDN1xcdTVGQzhcXHU1RkNBXFx1NUZDQlxcdTVGQ0VcXHU1RkQzXFx1NUZENFxcdTVGRDVcXHU1RkRBXFx1NUZEQlxcdTVGRENcXHU1RkRFXFx1NUZERlxcdTVGRTJcXHU1RkUzXFx1NUZFNVxcdTVGRTZcXHU1RkU4XFx1NUZFOVxcdTVGRUNcXHU1RkVGXFx1NUZGMFxcdTVGRjJcXHU1RkYzXFx1NUZGNFxcdTVGRjZcXHU1RkY3XFx1NUZGOVxcdTVGRkFcXHU1RkZDXFx1NjAwN1wiXSxcbiAgICAgIFtcIjkwNDBcIiwgXCJcXHU2MDA4XFx1NjAwOVxcdTYwMEJcXHU2MDBDXFx1NjAxMFxcdTYwMTFcXHU2MDEzXFx1NjAxN1xcdTYwMThcXHU2MDFBXFx1NjAxRVxcdTYwMUZcXHU2MDIyXFx1NjAyM1xcdTYwMjRcXHU2MDJDXFx1NjAyRFxcdTYwMkVcXHU2MDMwXCIsIDQsIFwiXFx1NjAzNlwiLCA0LCBcIlxcdTYwM0RcXHU2MDNFXFx1NjA0MFxcdTYwNDRcIiwgNiwgXCJcXHU2MDRDXFx1NjA0RVxcdTYwNEZcXHU2MDUxXFx1NjA1M1xcdTYwNTRcXHU2MDU2XFx1NjA1N1xcdTYwNThcXHU2MDVCXFx1NjA1Q1xcdTYwNUVcXHU2MDVGXFx1NjA2MFxcdTYwNjFcXHU2MDY1XFx1NjA2NlxcdTYwNkVcXHU2MDcxXFx1NjA3MlxcdTYwNzRcXHU2MDc1XFx1NjA3N1xcdTYwN0VcXHU2MDgwXCJdLFxuICAgICAgW1wiOTA4MFwiLCBcIlxcdTYwODFcXHU2MDgyXFx1NjA4NVxcdTYwODZcXHU2MDg3XFx1NjA4OFxcdTYwOEFcXHU2MDhCXFx1NjA4RVxcdTYwOEZcXHU2MDkwXFx1NjA5MVxcdTYwOTNcXHU2MDk1XFx1NjA5N1xcdTYwOThcXHU2MDk5XFx1NjA5Q1xcdTYwOUVcXHU2MEExXFx1NjBBMlxcdTYwQTRcXHU2MEE1XFx1NjBBN1xcdTYwQTlcXHU2MEFBXFx1NjBBRVxcdTYwQjBcXHU2MEIzXFx1NjBCNVxcdTYwQjZcXHU2MEI3XFx1NjBCOVxcdTYwQkFcXHU2MEJEXCIsIDcsIFwiXFx1NjBDN1xcdTYwQzhcXHU2MEM5XFx1NjBDQ1wiLCA0LCBcIlxcdTYwRDJcXHU2MEQzXFx1NjBENFxcdTYwRDZcXHU2MEQ3XFx1NjBEOVxcdTYwREJcXHU2MERFXFx1NjBFMVwiLCA0LCBcIlxcdTYwRUFcXHU2MEYxXFx1NjBGMlxcdTYwRjVcXHU2MEY3XFx1NjBGOFxcdTYwRkJcIiwgNCwgXCJcXHU2MTAyXFx1NjEwM1xcdTYxMDRcXHU2MTA1XFx1NjEwN1xcdTYxMEFcXHU2MTBCXFx1NjEwQ1xcdTYxMTBcIiwgNCwgXCJcXHU2MTE2XFx1NjExN1xcdTYxMThcXHU2MTE5XFx1NjExQlxcdTYxMUNcXHU2MTFEXFx1NjExRVxcdTYxMjFcXHU2MTIyXFx1NjEyNVxcdTYxMjhcXHU2MTI5XFx1NjEyQVxcdTYxMkNcIiwgMTgsIFwiXFx1NjE0MFwiLCA2XSxcbiAgICAgIFtcIjkxNDBcIiwgXCJcXHU2MTQ3XFx1NjE0OVxcdTYxNEJcXHU2MTREXFx1NjE0RlxcdTYxNTBcXHU2MTUyXFx1NjE1M1xcdTYxNTRcXHU2MTU2XCIsIDYsIFwiXFx1NjE1RVxcdTYxNUZcXHU2MTYwXFx1NjE2MVxcdTYxNjNcXHU2MTY0XFx1NjE2NVxcdTYxNjZcXHU2MTY5XCIsIDYsIFwiXFx1NjE3MVxcdTYxNzJcXHU2MTczXFx1NjE3NFxcdTYxNzZcXHU2MTc4XCIsIDE4LCBcIlxcdTYxOENcXHU2MThEXFx1NjE4RlwiLCA0LCBcIlxcdTYxOTVcIl0sXG4gICAgICBbXCI5MTgwXCIsIFwiXFx1NjE5NlwiLCA2LCBcIlxcdTYxOUVcIiwgOCwgXCJcXHU2MUFBXFx1NjFBQlxcdTYxQURcIiwgOSwgXCJcXHU2MUI4XCIsIDUsIFwiXFx1NjFCRlxcdTYxQzBcXHU2MUMxXFx1NjFDM1wiLCA0LCBcIlxcdTYxQzlcXHU2MUNDXCIsIDQsIFwiXFx1NjFEM1xcdTYxRDVcIiwgMTYsIFwiXFx1NjFFN1wiLCAxMywgXCJcXHU2MUY2XCIsIDgsIFwiXFx1NjIwMFwiLCA1LCBcIlxcdTYyMDdcXHU2MjA5XFx1NjIxM1xcdTYyMTRcXHU2MjE5XFx1NjIxQ1xcdTYyMURcXHU2MjFFXFx1NjIyMFxcdTYyMjNcXHU2MjI2XFx1NjIyN1xcdTYyMjhcXHU2MjI5XFx1NjIyQlxcdTYyMkRcXHU2MjJGXFx1NjIzMFxcdTYyMzFcXHU2MjMyXFx1NjIzNVxcdTYyMzZcXHU2MjM4XCIsIDQsIFwiXFx1NjI0MlxcdTYyNDRcXHU2MjQ1XFx1NjI0NlxcdTYyNEFcIl0sXG4gICAgICBbXCI5MjQwXCIsIFwiXFx1NjI0RlxcdTYyNTBcXHU2MjU1XFx1NjI1NlxcdTYyNTdcXHU2MjU5XFx1NjI1QVxcdTYyNUNcIiwgNiwgXCJcXHU2MjY0XFx1NjI2NVxcdTYyNjhcXHU2MjcxXFx1NjI3MlxcdTYyNzRcXHU2Mjc1XFx1NjI3N1xcdTYyNzhcXHU2MjdBXFx1NjI3QlxcdTYyN0RcXHU2MjgxXFx1NjI4MlxcdTYyODNcXHU2Mjg1XFx1NjI4NlxcdTYyODdcXHU2Mjg4XFx1NjI4QlwiLCA1LCBcIlxcdTYyOTRcXHU2Mjk5XFx1NjI5Q1xcdTYyOURcXHU2MjlFXFx1NjJBM1xcdTYyQTZcXHU2MkE3XFx1NjJBOVxcdTYyQUFcXHU2MkFEXFx1NjJBRVxcdTYyQUZcXHU2MkIwXFx1NjJCMlxcdTYyQjNcXHU2MkI0XFx1NjJCNlxcdTYyQjdcXHU2MkI4XFx1NjJCQVxcdTYyQkVcXHU2MkMwXFx1NjJDMVwiXSxcbiAgICAgIFtcIjkyODBcIiwgXCJcXHU2MkMzXFx1NjJDQlxcdTYyQ0ZcXHU2MkQxXFx1NjJENVxcdTYyRERcXHU2MkRFXFx1NjJFMFxcdTYyRTFcXHU2MkU0XFx1NjJFQVxcdTYyRUJcXHU2MkYwXFx1NjJGMlxcdTYyRjVcXHU2MkY4XFx1NjJGOVxcdTYyRkFcXHU2MkZCXFx1NjMwMFxcdTYzMDNcXHU2MzA0XFx1NjMwNVxcdTYzMDZcXHU2MzBBXFx1NjMwQlxcdTYzMENcXHU2MzBEXFx1NjMwRlxcdTYzMTBcXHU2MzEyXFx1NjMxM1xcdTYzMTRcXHU2MzE1XFx1NjMxN1xcdTYzMThcXHU2MzE5XFx1NjMxQ1xcdTYzMjZcXHU2MzI3XFx1NjMyOVxcdTYzMkNcXHU2MzJEXFx1NjMyRVxcdTYzMzBcXHU2MzMxXFx1NjMzM1wiLCA1LCBcIlxcdTYzM0JcXHU2MzNDXFx1NjMzRVxcdTYzM0ZcXHU2MzQwXFx1NjM0MVxcdTYzNDRcXHU2MzQ3XFx1NjM0OFxcdTYzNEFcXHU2MzUxXFx1NjM1MlxcdTYzNTNcXHU2MzU0XFx1NjM1NlwiLCA3LCBcIlxcdTYzNjBcXHU2MzY0XFx1NjM2NVxcdTYzNjZcXHU2MzY4XFx1NjM2QVxcdTYzNkJcXHU2MzZDXFx1NjM2RlxcdTYzNzBcXHU2MzcyXFx1NjM3M1xcdTYzNzRcXHU2Mzc1XFx1NjM3OFxcdTYzNzlcXHU2MzdDXFx1NjM3RFxcdTYzN0VcXHU2MzdGXFx1NjM4MVxcdTYzODNcXHU2Mzg0XFx1NjM4NVxcdTYzODZcXHU2MzhCXFx1NjM4RFxcdTYzOTFcXHU2MzkzXFx1NjM5NFxcdTYzOTVcXHU2Mzk3XFx1NjM5OVwiLCA2LCBcIlxcdTYzQTFcXHU2M0E0XFx1NjNBNlxcdTYzQUJcXHU2M0FGXFx1NjNCMVxcdTYzQjJcXHU2M0I1XFx1NjNCNlxcdTYzQjlcXHU2M0JCXFx1NjNCRFxcdTYzQkZcXHU2M0MwXCJdLFxuICAgICAgW1wiOTM0MFwiLCBcIlxcdTYzQzFcXHU2M0MyXFx1NjNDM1xcdTYzQzVcXHU2M0M3XFx1NjNDOFxcdTYzQ0FcXHU2M0NCXFx1NjNDQ1xcdTYzRDFcXHU2M0QzXFx1NjNENFxcdTYzRDVcXHU2M0Q3XCIsIDYsIFwiXFx1NjNERlxcdTYzRTJcXHU2M0U0XCIsIDQsIFwiXFx1NjNFQlxcdTYzRUNcXHU2M0VFXFx1NjNFRlxcdTYzRjBcXHU2M0YxXFx1NjNGM1xcdTYzRjVcXHU2M0Y3XFx1NjNGOVxcdTYzRkFcXHU2M0ZCXFx1NjNGQ1xcdTYzRkVcXHU2NDAzXFx1NjQwNFxcdTY0MDZcIiwgNCwgXCJcXHU2NDBEXFx1NjQwRVxcdTY0MTFcXHU2NDEyXFx1NjQxNVwiLCA1LCBcIlxcdTY0MURcXHU2NDFGXFx1NjQyMlxcdTY0MjNcXHU2NDI0XCJdLFxuICAgICAgW1wiOTM4MFwiLCBcIlxcdTY0MjVcXHU2NDI3XFx1NjQyOFxcdTY0MjlcXHU2NDJCXFx1NjQyRVwiLCA1LCBcIlxcdTY0MzVcIiwgNCwgXCJcXHU2NDNCXFx1NjQzQ1xcdTY0M0VcXHU2NDQwXFx1NjQ0MlxcdTY0NDNcXHU2NDQ5XFx1NjQ0QlwiLCA2LCBcIlxcdTY0NTNcXHU2NDU1XFx1NjQ1NlxcdTY0NTdcXHU2NDU5XCIsIDQsIFwiXFx1NjQ1RlwiLCA3LCBcIlxcdTY0NjhcXHU2NDZBXFx1NjQ2QlxcdTY0NkNcXHU2NDZFXCIsIDksIFwiXFx1NjQ3QlwiLCA2LCBcIlxcdTY0ODNcXHU2NDg2XFx1NjQ4OFwiLCA4LCBcIlxcdTY0OTNcXHU2NDk0XFx1NjQ5N1xcdTY0OThcXHU2NDlBXFx1NjQ5QlxcdTY0OUNcXHU2NDlEXFx1NjQ5RlwiLCA0LCBcIlxcdTY0QTVcXHU2NEE2XFx1NjRBN1xcdTY0QThcXHU2NEFBXFx1NjRBQlxcdTY0QUZcXHU2NEIxXFx1NjRCMlxcdTY0QjNcXHU2NEI0XFx1NjRCNlxcdTY0QjlcXHU2NEJCXFx1NjRCRFxcdTY0QkVcXHU2NEJGXFx1NjRDMVxcdTY0QzNcXHU2NEM0XFx1NjRDNlwiLCA2LCBcIlxcdTY0Q0ZcXHU2NEQxXFx1NjREM1xcdTY0RDRcXHU2NEQ1XFx1NjRENlxcdTY0RDlcXHU2NERBXCJdLFxuICAgICAgW1wiOTQ0MFwiLCBcIlxcdTY0REJcXHU2NERDXFx1NjRERFxcdTY0REZcXHU2NEUwXFx1NjRFMVxcdTY0RTNcXHU2NEU1XFx1NjRFN1wiLCAyNCwgXCJcXHU2NTAxXCIsIDcsIFwiXFx1NjUwQVwiLCA3LCBcIlxcdTY1MTNcIiwgNCwgXCJcXHU2NTE5XCIsIDhdLFxuICAgICAgW1wiOTQ4MFwiLCBcIlxcdTY1MjJcXHU2NTIzXFx1NjUyNFxcdTY1MjZcIiwgNCwgXCJcXHU2NTJDXFx1NjUyRFxcdTY1MzBcXHU2NTMxXFx1NjUzMlxcdTY1MzNcXHU2NTM3XFx1NjUzQVxcdTY1M0NcXHU2NTNEXFx1NjU0MFwiLCA0LCBcIlxcdTY1NDZcXHU2NTQ3XFx1NjU0QVxcdTY1NEJcXHU2NTREXFx1NjU0RVxcdTY1NTBcXHU2NTUyXFx1NjU1M1xcdTY1NTRcXHU2NTU3XFx1NjU1OFxcdTY1NUFcXHU2NTVDXFx1NjU1RlxcdTY1NjBcXHU2NTYxXFx1NjU2NFxcdTY1NjVcXHU2NTY3XFx1NjU2OFxcdTY1NjlcXHU2NTZBXFx1NjU2RFxcdTY1NkVcXHU2NTZGXFx1NjU3MVxcdTY1NzNcXHU2NTc1XFx1NjU3NlxcdTY1NzhcIiwgMTQsIFwiXFx1NjU4OFxcdTY1ODlcXHU2NThBXFx1NjU4RFxcdTY1OEVcXHU2NThGXFx1NjU5MlxcdTY1OTRcXHU2NTk1XFx1NjU5NlxcdTY1OThcXHU2NTlBXFx1NjU5RFxcdTY1OUVcXHU2NUEwXFx1NjVBMlxcdTY1QTNcXHU2NUE2XFx1NjVBOFxcdTY1QUFcXHU2NUFDXFx1NjVBRVxcdTY1QjFcIiwgNywgXCJcXHU2NUJBXFx1NjVCQlxcdTY1QkVcXHU2NUJGXFx1NjVDMFxcdTY1QzJcXHU2NUM3XFx1NjVDOFxcdTY1QzlcXHU2NUNBXFx1NjVDRFxcdTY1RDBcXHU2NUQxXFx1NjVEM1xcdTY1RDRcXHU2NUQ1XFx1NjVEOFwiLCA3LCBcIlxcdTY1RTFcXHU2NUUzXFx1NjVFNFxcdTY1RUFcXHU2NUVCXCJdLFxuICAgICAgW1wiOTU0MFwiLCBcIlxcdTY1RjJcXHU2NUYzXFx1NjVGNFxcdTY1RjVcXHU2NUY4XFx1NjVGOVxcdTY1RkJcIiwgNCwgXCJcXHU2NjAxXFx1NjYwNFxcdTY2MDVcXHU2NjA3XFx1NjYwOFxcdTY2MDlcXHU2NjBCXFx1NjYwRFxcdTY2MTBcXHU2NjExXFx1NjYxMlxcdTY2MTZcXHU2NjE3XFx1NjYxOFxcdTY2MUFcXHU2NjFCXFx1NjYxQ1xcdTY2MUVcXHU2NjIxXFx1NjYyMlxcdTY2MjNcXHU2NjI0XFx1NjYyNlxcdTY2MjlcXHU2NjJBXFx1NjYyQlxcdTY2MkNcXHU2NjJFXFx1NjYzMFxcdTY2MzJcXHU2NjMzXFx1NjYzN1wiLCA0LCBcIlxcdTY2M0RcXHU2NjNGXFx1NjY0MFxcdTY2NDJcXHU2NjQ0XCIsIDYsIFwiXFx1NjY0RFxcdTY2NEVcXHU2NjUwXFx1NjY1MVxcdTY2NThcIl0sXG4gICAgICBbXCI5NTgwXCIsIFwiXFx1NjY1OVxcdTY2NUJcXHU2NjVDXFx1NjY1RFxcdTY2NUVcXHU2NjYwXFx1NjY2MlxcdTY2NjNcXHU2NjY1XFx1NjY2N1xcdTY2NjlcIiwgNCwgXCJcXHU2NjcxXFx1NjY3MlxcdTY2NzNcXHU2Njc1XFx1NjY3OFxcdTY2NzlcXHU2NjdCXFx1NjY3Q1xcdTY2N0RcXHU2NjdGXFx1NjY4MFxcdTY2ODFcXHU2NjgzXFx1NjY4NVxcdTY2ODZcXHU2Njg4XFx1NjY4OVxcdTY2OEFcXHU2NjhCXFx1NjY4RFxcdTY2OEVcXHU2NjhGXFx1NjY5MFxcdTY2OTJcXHU2NjkzXFx1NjY5NFxcdTY2OTVcXHU2Njk4XCIsIDQsIFwiXFx1NjY5RVwiLCA4LCBcIlxcdTY2QTlcIiwgNCwgXCJcXHU2NkFGXCIsIDQsIFwiXFx1NjZCNVxcdTY2QjZcXHU2NkI3XFx1NjZCOFxcdTY2QkFcXHU2NkJCXFx1NjZCQ1xcdTY2QkRcXHU2NkJGXCIsIDI1LCBcIlxcdTY2REFcXHU2NkRFXCIsIDcsIFwiXFx1NjZFN1xcdTY2RThcXHU2NkVBXCIsIDUsIFwiXFx1NjZGMVxcdTY2RjVcXHU2NkY2XFx1NjZGOFxcdTY2RkFcXHU2NkZCXFx1NjZGRFxcdTY3MDFcXHU2NzAyXFx1NjcwM1wiXSxcbiAgICAgIFtcIjk2NDBcIiwgXCJcXHU2NzA0XFx1NjcwNVxcdTY3MDZcXHU2NzA3XFx1NjcwQ1xcdTY3MEVcXHU2NzBGXFx1NjcxMVxcdTY3MTJcXHU2NzEzXFx1NjcxNlxcdTY3MThcXHU2NzE5XFx1NjcxQVxcdTY3MUNcXHU2NzFFXFx1NjcyMFwiLCA1LCBcIlxcdTY3MjdcXHU2NzI5XFx1NjcyRVxcdTY3MzBcXHU2NzMyXFx1NjczM1xcdTY3MzZcXHU2NzM3XFx1NjczOFxcdTY3MzlcXHU2NzNCXFx1NjczQ1xcdTY3M0VcXHU2NzNGXFx1Njc0MVxcdTY3NDRcXHU2NzQ1XFx1Njc0N1xcdTY3NEFcXHU2NzRCXFx1Njc0RFxcdTY3NTJcXHU2NzU0XFx1Njc1NVxcdTY3NTdcIiwgNCwgXCJcXHU2NzVEXFx1Njc2MlxcdTY3NjNcXHU2NzY0XFx1Njc2NlxcdTY3NjdcXHU2NzZCXFx1Njc2Q1xcdTY3NkVcXHU2NzcxXFx1Njc3NFxcdTY3NzZcIl0sXG4gICAgICBbXCI5NjgwXCIsIFwiXFx1Njc3OFxcdTY3NzlcXHU2NzdBXFx1Njc3QlxcdTY3N0RcXHU2NzgwXFx1Njc4MlxcdTY3ODNcXHU2Nzg1XFx1Njc4NlxcdTY3ODhcXHU2NzhBXFx1Njc4Q1xcdTY3OERcXHU2NzhFXFx1Njc4RlxcdTY3OTFcXHU2NzkyXFx1Njc5M1xcdTY3OTRcXHU2Nzk2XFx1Njc5OVxcdTY3OUJcXHU2NzlGXFx1NjdBMFxcdTY3QTFcXHU2N0E0XFx1NjdBNlxcdTY3QTlcXHU2N0FDXFx1NjdBRVxcdTY3QjFcXHU2N0IyXFx1NjdCNFxcdTY3QjlcIiwgNywgXCJcXHU2N0MyXFx1NjdDNVwiLCA5LCBcIlxcdTY3RDVcXHU2N0Q2XFx1NjdEN1xcdTY3REJcXHU2N0RGXFx1NjdFMVxcdTY3RTNcXHU2N0U0XFx1NjdFNlxcdTY3RTdcXHU2N0U4XFx1NjdFQVxcdTY3RUJcXHU2N0VEXFx1NjdFRVxcdTY3RjJcXHU2N0Y1XCIsIDcsIFwiXFx1NjdGRVxcdTY4MDFcXHU2ODAyXFx1NjgwM1xcdTY4MDRcXHU2ODA2XFx1NjgwRFxcdTY4MTBcXHU2ODEyXFx1NjgxNFxcdTY4MTVcXHU2ODE4XCIsIDQsIFwiXFx1NjgxRVxcdTY4MUZcXHU2ODIwXFx1NjgyMlwiLCA2LCBcIlxcdTY4MkJcIiwgNiwgXCJcXHU2ODM0XFx1NjgzNVxcdTY4MzZcXHU2ODNBXFx1NjgzQlxcdTY4M0ZcXHU2ODQ3XFx1Njg0QlxcdTY4NERcXHU2ODRGXFx1Njg1MlxcdTY4NTZcIiwgNV0sXG4gICAgICBbXCI5NzQwXCIsIFwiXFx1Njg1Q1xcdTY4NURcXHU2ODVFXFx1Njg1RlxcdTY4NkFcXHU2ODZDXCIsIDcsIFwiXFx1Njg3NVxcdTY4NzhcIiwgOCwgXCJcXHU2ODgyXFx1Njg4NFxcdTY4ODdcIiwgNywgXCJcXHU2ODkwXFx1Njg5MVxcdTY4OTJcXHU2ODk0XFx1Njg5NVxcdTY4OTZcXHU2ODk4XCIsIDksIFwiXFx1NjhBM1xcdTY4QTRcXHU2OEE1XFx1NjhBOVxcdTY4QUFcXHU2OEFCXFx1NjhBQ1xcdTY4QUVcXHU2OEIxXFx1NjhCMlxcdTY4QjRcXHU2OEI2XFx1NjhCN1xcdTY4QjhcIl0sXG4gICAgICBbXCI5NzgwXCIsIFwiXFx1NjhCOVwiLCA2LCBcIlxcdTY4QzFcXHU2OEMzXCIsIDUsIFwiXFx1NjhDQVxcdTY4Q0NcXHU2OENFXFx1NjhDRlxcdTY4RDBcXHU2OEQxXFx1NjhEM1xcdTY4RDRcXHU2OEQ2XFx1NjhEN1xcdTY4RDlcXHU2OERCXCIsIDQsIFwiXFx1NjhFMVxcdTY4RTJcXHU2OEU0XCIsIDksIFwiXFx1NjhFRlxcdTY4RjJcXHU2OEYzXFx1NjhGNFxcdTY4RjZcXHU2OEY3XFx1NjhGOFxcdTY4RkJcXHU2OEZEXFx1NjhGRVxcdTY4RkZcXHU2OTAwXFx1NjkwMlxcdTY5MDNcXHU2OTA0XFx1NjkwNlwiLCA0LCBcIlxcdTY5MENcXHU2OTBGXFx1NjkxMVxcdTY5MTNcIiwgMTEsIFwiXFx1NjkyMVxcdTY5MjJcXHU2OTIzXFx1NjkyNVwiLCA3LCBcIlxcdTY5MkVcXHU2OTJGXFx1NjkzMVxcdTY5MzJcXHU2OTMzXFx1NjkzNVxcdTY5MzZcXHU2OTM3XFx1NjkzOFxcdTY5M0FcXHU2OTNCXFx1NjkzQ1xcdTY5M0VcXHU2OTQwXFx1Njk0MVxcdTY5NDNcIiwgMTYsIFwiXFx1Njk1NVxcdTY5NTZcXHU2OTU4XFx1Njk1OVxcdTY5NUJcXHU2OTVDXFx1Njk1RlwiXSxcbiAgICAgIFtcIjk4NDBcIiwgXCJcXHU2OTYxXFx1Njk2MlxcdTY5NjRcXHU2OTY1XFx1Njk2N1xcdTY5NjhcXHU2OTY5XFx1Njk2QVxcdTY5NkNcXHU2OTZEXFx1Njk2RlxcdTY5NzBcXHU2OTcyXCIsIDQsIFwiXFx1Njk3QVxcdTY5N0JcXHU2OTdEXFx1Njk3RVxcdTY5N0ZcXHU2OTgxXFx1Njk4M1xcdTY5ODVcXHU2OThBXFx1Njk4QlxcdTY5OENcXHU2OThFXCIsIDUsIFwiXFx1Njk5NlxcdTY5OTdcXHU2OTk5XFx1Njk5QVxcdTY5OURcIiwgOSwgXCJcXHU2OUE5XFx1NjlBQVxcdTY5QUNcXHU2OUFFXFx1NjlBRlxcdTY5QjBcXHU2OUIyXFx1NjlCM1xcdTY5QjVcXHU2OUI2XFx1NjlCOFxcdTY5QjlcXHU2OUJBXFx1NjlCQ1xcdTY5QkRcIl0sXG4gICAgICBbXCI5ODgwXCIsIFwiXFx1NjlCRVxcdTY5QkZcXHU2OUMwXFx1NjlDMlwiLCA3LCBcIlxcdTY5Q0JcXHU2OUNEXFx1NjlDRlxcdTY5RDFcXHU2OUQyXFx1NjlEM1xcdTY5RDVcIiwgNSwgXCJcXHU2OURDXFx1NjlERFxcdTY5REVcXHU2OUUxXCIsIDExLCBcIlxcdTY5RUVcXHU2OUVGXFx1NjlGMFxcdTY5RjFcXHU2OUYzXCIsIDksIFwiXFx1NjlGRVxcdTZBMDBcIiwgOSwgXCJcXHU2QTBCXCIsIDExLCBcIlxcdTZBMTlcIiwgNSwgXCJcXHU2QTIwXFx1NkEyMlwiLCA1LCBcIlxcdTZBMjlcXHU2QTJCXFx1NkEyQ1xcdTZBMkRcXHU2QTJFXFx1NkEzMFxcdTZBMzJcXHU2QTMzXFx1NkEzNFxcdTZBMzZcIiwgNiwgXCJcXHU2QTNGXCIsIDQsIFwiXFx1NkE0NVxcdTZBNDZcXHU2QTQ4XCIsIDcsIFwiXFx1NkE1MVwiLCA2LCBcIlxcdTZBNUFcIl0sXG4gICAgICBbXCI5OTQwXCIsIFwiXFx1NkE1Q1wiLCA0LCBcIlxcdTZBNjJcXHU2QTYzXFx1NkE2NFxcdTZBNjZcIiwgMTAsIFwiXFx1NkE3MlwiLCA2LCBcIlxcdTZBN0FcXHU2QTdCXFx1NkE3RFxcdTZBN0VcXHU2QTdGXFx1NkE4MVxcdTZBODJcXHU2QTgzXFx1NkE4NVwiLCA4LCBcIlxcdTZBOEZcXHU2QTkyXCIsIDQsIFwiXFx1NkE5OFwiLCA3LCBcIlxcdTZBQTFcIiwgNV0sXG4gICAgICBbXCI5OTgwXCIsIFwiXFx1NkFBN1xcdTZBQThcXHU2QUFBXFx1NkFBRFwiLCAxMTQsIFwiXFx1NkIyNVxcdTZCMjZcXHU2QjI4XCIsIDZdLFxuICAgICAgW1wiOWE0MFwiLCBcIlxcdTZCMkZcXHU2QjMwXFx1NkIzMVxcdTZCMzNcXHU2QjM0XFx1NkIzNVxcdTZCMzZcXHU2QjM4XFx1NkIzQlxcdTZCM0NcXHU2QjNEXFx1NkIzRlxcdTZCNDBcXHU2QjQxXFx1NkI0MlxcdTZCNDRcXHU2QjQ1XFx1NkI0OFxcdTZCNEFcXHU2QjRCXFx1NkI0RFwiLCAxMSwgXCJcXHU2QjVBXCIsIDcsIFwiXFx1NkI2OFxcdTZCNjlcXHU2QjZCXCIsIDEzLCBcIlxcdTZCN0FcXHU2QjdEXFx1NkI3RVxcdTZCN0ZcXHU2QjgwXFx1NkI4NVxcdTZCODhcIl0sXG4gICAgICBbXCI5YTgwXCIsIFwiXFx1NkI4Q1xcdTZCOEVcXHU2QjhGXFx1NkI5MFxcdTZCOTFcXHU2Qjk0XFx1NkI5NVxcdTZCOTdcXHU2Qjk4XFx1NkI5OVxcdTZCOUNcIiwgNCwgXCJcXHU2QkEyXCIsIDcsIFwiXFx1NkJBQlwiLCA3LCBcIlxcdTZCQjZcXHU2QkI4XCIsIDYsIFwiXFx1NkJDMFxcdTZCQzNcXHU2QkM0XFx1NkJDNlwiLCA0LCBcIlxcdTZCQ0NcXHU2QkNFXFx1NkJEMFxcdTZCRDFcXHU2QkQ4XFx1NkJEQVxcdTZCRENcIiwgNCwgXCJcXHU2QkUyXCIsIDcsIFwiXFx1NkJFQ1xcdTZCRURcXHU2QkVFXFx1NkJGMFxcdTZCRjFcXHU2QkYyXFx1NkJGNFxcdTZCRjZcXHU2QkY3XFx1NkJGOFxcdTZCRkFcXHU2QkZCXFx1NkJGQ1xcdTZCRkVcIiwgNiwgXCJcXHU2QzA4XCIsIDQsIFwiXFx1NkMwRVxcdTZDMTJcXHU2QzE3XFx1NkMxQ1xcdTZDMURcXHU2QzFFXFx1NkMyMFxcdTZDMjNcXHU2QzI1XFx1NkMyQlxcdTZDMkNcXHU2QzJEXFx1NkMzMVxcdTZDMzNcXHU2QzM2XFx1NkMzN1xcdTZDMzlcXHU2QzNBXFx1NkMzQlxcdTZDM0NcXHU2QzNFXFx1NkMzRlxcdTZDNDNcXHU2QzQ0XFx1NkM0NVxcdTZDNDhcXHU2QzRCXCIsIDQsIFwiXFx1NkM1MVxcdTZDNTJcXHU2QzUzXFx1NkM1NlxcdTZDNThcIl0sXG4gICAgICBbXCI5YjQwXCIsIFwiXFx1NkM1OVxcdTZDNUFcXHU2QzYyXFx1NkM2M1xcdTZDNjVcXHU2QzY2XFx1NkM2N1xcdTZDNkJcIiwgNCwgXCJcXHU2QzcxXFx1NkM3M1xcdTZDNzVcXHU2Qzc3XFx1NkM3OFxcdTZDN0FcXHU2QzdCXFx1NkM3Q1xcdTZDN0ZcXHU2QzgwXFx1NkM4NFxcdTZDODdcXHU2QzhBXFx1NkM4QlxcdTZDOERcXHU2QzhFXFx1NkM5MVxcdTZDOTJcXHU2Qzk1XFx1NkM5NlxcdTZDOTdcXHU2Qzk4XFx1NkM5QVxcdTZDOUNcXHU2QzlEXFx1NkM5RVxcdTZDQTBcXHU2Q0EyXFx1NkNBOFxcdTZDQUNcXHU2Q0FGXFx1NkNCMFxcdTZDQjRcXHU2Q0I1XFx1NkNCNlxcdTZDQjdcXHU2Q0JBXFx1NkNDMFxcdTZDQzFcXHU2Q0MyXFx1NkNDM1xcdTZDQzZcXHU2Q0M3XFx1NkNDOFxcdTZDQ0JcXHU2Q0NEXFx1NkNDRVxcdTZDQ0ZcXHU2Q0QxXFx1NkNEMlxcdTZDRDhcIl0sXG4gICAgICBbXCI5YjgwXCIsIFwiXFx1NkNEOVxcdTZDREFcXHU2Q0RDXFx1NkNERFxcdTZDREZcXHU2Q0U0XFx1NkNFNlxcdTZDRTdcXHU2Q0U5XFx1NkNFQ1xcdTZDRURcXHU2Q0YyXFx1NkNGNFxcdTZDRjlcXHU2Q0ZGXFx1NkQwMFxcdTZEMDJcXHU2RDAzXFx1NkQwNVxcdTZEMDZcXHU2RDA4XFx1NkQwOVxcdTZEMEFcXHU2RDBEXFx1NkQwRlxcdTZEMTBcXHU2RDExXFx1NkQxM1xcdTZEMTRcXHU2RDE1XFx1NkQxNlxcdTZEMThcXHU2RDFDXFx1NkQxRFxcdTZEMUZcIiwgNSwgXCJcXHU2RDI2XFx1NkQyOFxcdTZEMjlcXHU2RDJDXFx1NkQyRFxcdTZEMkZcXHU2RDMwXFx1NkQzNFxcdTZEMzZcXHU2RDM3XFx1NkQzOFxcdTZEM0FcXHU2RDNGXFx1NkQ0MFxcdTZENDJcXHU2RDQ0XFx1NkQ0OVxcdTZENENcXHU2RDUwXFx1NkQ1NVxcdTZENTZcXHU2RDU3XFx1NkQ1OFxcdTZENUJcXHU2RDVEXFx1NkQ1RlxcdTZENjFcXHU2RDYyXFx1NkQ2NFxcdTZENjVcXHU2RDY3XFx1NkQ2OFxcdTZENkJcXHU2RDZDXFx1NkQ2RFxcdTZENzBcXHU2RDcxXFx1NkQ3MlxcdTZENzNcXHU2RDc1XFx1NkQ3NlxcdTZENzlcXHU2RDdBXFx1NkQ3QlxcdTZEN0RcIiwgNCwgXCJcXHU2RDgzXFx1NkQ4NFxcdTZEODZcXHU2RDg3XFx1NkQ4QVxcdTZEOEJcXHU2RDhEXFx1NkQ4RlxcdTZEOTBcXHU2RDkyXFx1NkQ5NlwiLCA0LCBcIlxcdTZEOUNcXHU2REEyXFx1NkRBNVxcdTZEQUNcXHU2REFEXFx1NkRCMFxcdTZEQjFcXHU2REIzXFx1NkRCNFxcdTZEQjZcXHU2REI3XFx1NkRCOVwiLCA1LCBcIlxcdTZEQzFcXHU2REMyXFx1NkRDM1xcdTZEQzhcXHU2REM5XFx1NkRDQVwiXSxcbiAgICAgIFtcIjljNDBcIiwgXCJcXHU2RENEXFx1NkRDRVxcdTZEQ0ZcXHU2REQwXFx1NkREMlxcdTZERDNcXHU2REQ0XFx1NkRENVxcdTZERDdcXHU2RERBXFx1NkREQlxcdTZERENcXHU2RERGXFx1NkRFMlxcdTZERTNcXHU2REU1XFx1NkRFN1xcdTZERThcXHU2REU5XFx1NkRFQVxcdTZERURcXHU2REVGXFx1NkRGMFxcdTZERjJcXHU2REY0XFx1NkRGNVxcdTZERjZcXHU2REY4XFx1NkRGQVxcdTZERkRcIiwgNywgXCJcXHU2RTA2XFx1NkUwN1xcdTZFMDhcXHU2RTA5XFx1NkUwQlxcdTZFMEZcXHU2RTEyXFx1NkUxM1xcdTZFMTVcXHU2RTE4XFx1NkUxOVxcdTZFMUJcXHU2RTFDXFx1NkUxRVxcdTZFMUZcXHU2RTIyXFx1NkUyNlxcdTZFMjdcXHU2RTI4XFx1NkUyQVxcdTZFMkNcXHU2RTJFXFx1NkUzMFxcdTZFMzFcXHU2RTMzXFx1NkUzNVwiXSxcbiAgICAgIFtcIjljODBcIiwgXCJcXHU2RTM2XFx1NkUzN1xcdTZFMzlcXHU2RTNCXCIsIDcsIFwiXFx1NkU0NVwiLCA3LCBcIlxcdTZFNEZcXHU2RTUwXFx1NkU1MVxcdTZFNTJcXHU2RTU1XFx1NkU1N1xcdTZFNTlcXHU2RTVBXFx1NkU1Q1xcdTZFNURcXHU2RTVFXFx1NkU2MFwiLCAxMCwgXCJcXHU2RTZDXFx1NkU2RFxcdTZFNkZcIiwgMTQsIFwiXFx1NkU4MFxcdTZFODFcXHU2RTgyXFx1NkU4NFxcdTZFODdcXHU2RTg4XFx1NkU4QVwiLCA0LCBcIlxcdTZFOTFcIiwgNiwgXCJcXHU2RTk5XFx1NkU5QVxcdTZFOUJcXHU2RTlEXFx1NkU5RVxcdTZFQTBcXHU2RUExXFx1NkVBM1xcdTZFQTRcXHU2RUE2XFx1NkVBOFxcdTZFQTlcXHU2RUFCXFx1NkVBQ1xcdTZFQURcXHU2RUFFXFx1NkVCMFxcdTZFQjNcXHU2RUI1XFx1NkVCOFxcdTZFQjlcXHU2RUJDXFx1NkVCRVxcdTZFQkZcXHU2RUMwXFx1NkVDM1xcdTZFQzRcXHU2RUM1XFx1NkVDNlxcdTZFQzhcXHU2RUM5XFx1NkVDQVxcdTZFQ0NcXHU2RUNEXFx1NkVDRVxcdTZFRDBcXHU2RUQyXFx1NkVENlxcdTZFRDhcXHU2RUQ5XFx1NkVEQlxcdTZFRENcXHU2RUREXFx1NkVFM1xcdTZFRTdcXHU2RUVBXCIsIDVdLFxuICAgICAgW1wiOWQ0MFwiLCBcIlxcdTZFRjBcXHU2RUYxXFx1NkVGMlxcdTZFRjNcXHU2RUY1XFx1NkVGNlxcdTZFRjdcXHU2RUY4XFx1NkVGQVwiLCA3LCBcIlxcdTZGMDNcXHU2RjA0XFx1NkYwNVxcdTZGMDdcXHU2RjA4XFx1NkYwQVwiLCA0LCBcIlxcdTZGMTBcXHU2RjExXFx1NkYxMlxcdTZGMTZcIiwgOSwgXCJcXHU2RjIxXFx1NkYyMlxcdTZGMjNcXHU2RjI1XFx1NkYyNlxcdTZGMjdcXHU2RjI4XFx1NkYyQ1xcdTZGMkVcXHU2RjMwXFx1NkYzMlxcdTZGMzRcXHU2RjM1XFx1NkYzN1wiLCA2LCBcIlxcdTZGM0ZcXHU2RjQwXFx1NkY0MVxcdTZGNDJcIl0sXG4gICAgICBbXCI5ZDgwXCIsIFwiXFx1NkY0M1xcdTZGNDRcXHU2RjQ1XFx1NkY0OFxcdTZGNDlcXHU2RjRBXFx1NkY0Q1xcdTZGNEVcIiwgOSwgXCJcXHU2RjU5XFx1NkY1QVxcdTZGNUJcXHU2RjVEXFx1NkY1RlxcdTZGNjBcXHU2RjYxXFx1NkY2M1xcdTZGNjRcXHU2RjY1XFx1NkY2N1wiLCA1LCBcIlxcdTZGNkZcXHU2RjcwXFx1NkY3MVxcdTZGNzNcXHU2Rjc1XFx1NkY3NlxcdTZGNzdcXHU2Rjc5XFx1NkY3QlxcdTZGN0RcIiwgNiwgXCJcXHU2Rjg1XFx1NkY4NlxcdTZGODdcXHU2RjhBXFx1NkY4QlxcdTZGOEZcIiwgMTIsIFwiXFx1NkY5RFxcdTZGOUVcXHU2RjlGXFx1NkZBMFxcdTZGQTJcIiwgNCwgXCJcXHU2RkE4XCIsIDEwLCBcIlxcdTZGQjRcXHU2RkI1XFx1NkZCN1xcdTZGQjhcXHU2RkJBXCIsIDUsIFwiXFx1NkZDMVxcdTZGQzNcIiwgNSwgXCJcXHU2RkNBXCIsIDYsIFwiXFx1NkZEM1wiLCAxMCwgXCJcXHU2RkRGXFx1NkZFMlxcdTZGRTNcXHU2RkU0XFx1NkZFNVwiXSxcbiAgICAgIFtcIjllNDBcIiwgXCJcXHU2RkU2XCIsIDcsIFwiXFx1NkZGMFwiLCAzMiwgXCJcXHU3MDEyXCIsIDcsIFwiXFx1NzAxQ1wiLCA2LCBcIlxcdTcwMjRcIiwgNl0sXG4gICAgICBbXCI5ZTgwXCIsIFwiXFx1NzAyQlwiLCA5LCBcIlxcdTcwMzZcXHU3MDM3XFx1NzAzOFxcdTcwM0FcIiwgMTcsIFwiXFx1NzA0RFxcdTcwNEVcXHU3MDUwXCIsIDEzLCBcIlxcdTcwNUZcIiwgMTEsIFwiXFx1NzA2RVxcdTcwNzFcXHU3MDcyXFx1NzA3M1xcdTcwNzRcXHU3MDc3XFx1NzA3OVxcdTcwN0FcXHU3MDdCXFx1NzA3RFxcdTcwODFcXHU3MDgyXFx1NzA4M1xcdTcwODRcXHU3MDg2XFx1NzA4N1xcdTcwODhcXHU3MDhCXFx1NzA4Q1xcdTcwOERcXHU3MDhGXFx1NzA5MFxcdTcwOTFcXHU3MDkzXFx1NzA5N1xcdTcwOThcXHU3MDlBXFx1NzA5QlxcdTcwOUVcIiwgMTIsIFwiXFx1NzBCMFxcdTcwQjJcXHU3MEI0XFx1NzBCNVxcdTcwQjZcXHU3MEJBXFx1NzBCRVxcdTcwQkZcXHU3MEM0XFx1NzBDNVxcdTcwQzZcXHU3MEM3XFx1NzBDOVxcdTcwQ0JcIiwgMTIsIFwiXFx1NzBEQVwiXSxcbiAgICAgIFtcIjlmNDBcIiwgXCJcXHU3MERDXFx1NzBERFxcdTcwREVcXHU3MEUwXFx1NzBFMVxcdTcwRTJcXHU3MEUzXFx1NzBFNVxcdTcwRUFcXHU3MEVFXFx1NzBGMFwiLCA2LCBcIlxcdTcwRjhcXHU3MEZBXFx1NzBGQlxcdTcwRkNcXHU3MEZFXCIsIDEwLCBcIlxcdTcxMEJcIiwgNCwgXCJcXHU3MTExXFx1NzExMlxcdTcxMTRcXHU3MTE3XFx1NzExQlwiLCAxMCwgXCJcXHU3MTI3XCIsIDcsIFwiXFx1NzEzMlxcdTcxMzNcXHU3MTM0XCJdLFxuICAgICAgW1wiOWY4MFwiLCBcIlxcdTcxMzVcXHU3MTM3XCIsIDEzLCBcIlxcdTcxNDZcXHU3MTQ3XFx1NzE0OFxcdTcxNDlcXHU3MTRCXFx1NzE0RFxcdTcxNEZcIiwgMTIsIFwiXFx1NzE1RFxcdTcxNUZcIiwgNCwgXCJcXHU3MTY1XFx1NzE2OVwiLCA0LCBcIlxcdTcxNkZcXHU3MTcwXFx1NzE3MVxcdTcxNzRcXHU3MTc1XFx1NzE3NlxcdTcxNzdcXHU3MTc5XFx1NzE3QlxcdTcxN0NcXHU3MTdFXCIsIDUsIFwiXFx1NzE4NVwiLCA0LCBcIlxcdTcxOEJcXHU3MThDXFx1NzE4RFxcdTcxOEVcXHU3MTkwXFx1NzE5MVxcdTcxOTJcXHU3MTkzXFx1NzE5NVxcdTcxOTZcXHU3MTk3XFx1NzE5QVwiLCA0LCBcIlxcdTcxQTFcIiwgNiwgXCJcXHU3MUE5XFx1NzFBQVxcdTcxQUJcXHU3MUFEXCIsIDUsIFwiXFx1NzFCNFxcdTcxQjZcXHU3MUI3XFx1NzFCOFxcdTcxQkFcIiwgOCwgXCJcXHU3MUM0XCIsIDksIFwiXFx1NzFDRlwiLCA0XSxcbiAgICAgIFtcImEwNDBcIiwgXCJcXHU3MUQ2XCIsIDksIFwiXFx1NzFFMVxcdTcxRTJcXHU3MUUzXFx1NzFFNFxcdTcxRTZcXHU3MUU4XCIsIDUsIFwiXFx1NzFFRlwiLCA5LCBcIlxcdTcxRkFcIiwgMTEsIFwiXFx1NzIwN1wiLCAxOV0sXG4gICAgICBbXCJhMDgwXCIsIFwiXFx1NzIxQlxcdTcyMUNcXHU3MjFFXCIsIDksIFwiXFx1NzIyOVxcdTcyMkJcXHU3MjJEXFx1NzIyRVxcdTcyMkZcXHU3MjMyXFx1NzIzM1xcdTcyMzRcXHU3MjNBXFx1NzIzQ1xcdTcyM0VcXHU3MjQwXCIsIDYsIFwiXFx1NzI0OVxcdTcyNEFcXHU3MjRCXFx1NzI0RVxcdTcyNEZcXHU3MjUwXFx1NzI1MVxcdTcyNTNcXHU3MjU0XFx1NzI1NVxcdTcyNTdcXHU3MjU4XFx1NzI1QVxcdTcyNUNcXHU3MjVFXFx1NzI2MFxcdTcyNjNcXHU3MjY0XFx1NzI2NVxcdTcyNjhcXHU3MjZBXFx1NzI2QlxcdTcyNkNcXHU3MjZEXFx1NzI3MFxcdTcyNzFcXHU3MjczXFx1NzI3NFxcdTcyNzZcXHU3Mjc3XFx1NzI3OFxcdTcyN0JcXHU3MjdDXFx1NzI3RFxcdTcyODJcXHU3MjgzXFx1NzI4NVwiLCA0LCBcIlxcdTcyOENcXHU3MjhFXFx1NzI5MFxcdTcyOTFcXHU3MjkzXCIsIDExLCBcIlxcdTcyQTBcIiwgMTEsIFwiXFx1NzJBRVxcdTcyQjFcXHU3MkIyXFx1NzJCM1xcdTcyQjVcXHU3MkJBXCIsIDYsIFwiXFx1NzJDNVxcdTcyQzZcXHU3MkM3XFx1NzJDOVxcdTcyQ0FcXHU3MkNCXFx1NzJDQ1xcdTcyQ0ZcXHU3MkQxXFx1NzJEM1xcdTcyRDRcXHU3MkQ1XFx1NzJENlxcdTcyRDhcXHU3MkRBXFx1NzJEQlwiXSxcbiAgICAgIFtcImExYTFcIiwgXCJcXHUzMDAwXFx1MzAwMVxcdTMwMDJcXHhCN1xcdTAyQzlcXHUwMkM3XFx4QThcXHUzMDAzXFx1MzAwNVxcdTIwMTRcXHVGRjVFXFx1MjAxNlxcdTIwMjZcXHUyMDE4XFx1MjAxOVxcdTIwMUNcXHUyMDFEXFx1MzAxNFxcdTMwMTVcXHUzMDA4XCIsIDcsIFwiXFx1MzAxNlxcdTMwMTdcXHUzMDEwXFx1MzAxMVxceEIxXFx4RDdcXHhGN1xcdTIyMzZcXHUyMjI3XFx1MjIyOFxcdTIyMTFcXHUyMjBGXFx1MjIyQVxcdTIyMjlcXHUyMjA4XFx1MjIzN1xcdTIyMUFcXHUyMkE1XFx1MjIyNVxcdTIyMjBcXHUyMzEyXFx1MjI5OVxcdTIyMkJcXHUyMjJFXFx1MjI2MVxcdTIyNENcXHUyMjQ4XFx1MjIzRFxcdTIyMURcXHUyMjYwXFx1MjI2RVxcdTIyNkZcXHUyMjY0XFx1MjI2NVxcdTIyMUVcXHUyMjM1XFx1MjIzNFxcdTI2NDJcXHUyNjQwXFx4QjBcXHUyMDMyXFx1MjAzM1xcdTIxMDNcXHVGRjA0XFx4QTRcXHVGRkUwXFx1RkZFMVxcdTIwMzBcXHhBN1xcdTIxMTZcXHUyNjA2XFx1MjYwNVxcdTI1Q0JcXHUyNUNGXFx1MjVDRVxcdTI1QzdcXHUyNUM2XFx1MjVBMVxcdTI1QTBcXHUyNUIzXFx1MjVCMlxcdTIwM0JcXHUyMTkyXFx1MjE5MFxcdTIxOTFcXHUyMTkzXFx1MzAxM1wiXSxcbiAgICAgIFtcImEyYTFcIiwgXCJcXHUyMTcwXCIsIDldLFxuICAgICAgW1wiYTJiMVwiLCBcIlxcdTI0ODhcIiwgMTksIFwiXFx1MjQ3NFwiLCAxOSwgXCJcXHUyNDYwXCIsIDldLFxuICAgICAgW1wiYTJlNVwiLCBcIlxcdTMyMjBcIiwgOV0sXG4gICAgICBbXCJhMmYxXCIsIFwiXFx1MjE2MFwiLCAxMV0sXG4gICAgICBbXCJhM2ExXCIsIFwiXFx1RkYwMVxcdUZGMDJcXHVGRjAzXFx1RkZFNVxcdUZGMDVcIiwgODgsIFwiXFx1RkZFM1wiXSxcbiAgICAgIFtcImE0YTFcIiwgXCJcXHUzMDQxXCIsIDgyXSxcbiAgICAgIFtcImE1YTFcIiwgXCJcXHUzMEExXCIsIDg1XSxcbiAgICAgIFtcImE2YTFcIiwgXCJcXHUwMzkxXCIsIDE2LCBcIlxcdTAzQTNcIiwgNl0sXG4gICAgICBbXCJhNmMxXCIsIFwiXFx1MDNCMVwiLCAxNiwgXCJcXHUwM0MzXCIsIDZdLFxuICAgICAgW1wiYTZlMFwiLCBcIlxcdUZFMzVcXHVGRTM2XFx1RkUzOVxcdUZFM0FcXHVGRTNGXFx1RkU0MFxcdUZFM0RcXHVGRTNFXFx1RkU0MVxcdUZFNDJcXHVGRTQzXFx1RkU0NFwiXSxcbiAgICAgIFtcImE2ZWVcIiwgXCJcXHVGRTNCXFx1RkUzQ1xcdUZFMzdcXHVGRTM4XFx1RkUzMVwiXSxcbiAgICAgIFtcImE2ZjRcIiwgXCJcXHVGRTMzXFx1RkUzNFwiXSxcbiAgICAgIFtcImE3YTFcIiwgXCJcXHUwNDEwXCIsIDUsIFwiXFx1MDQwMVxcdTA0MTZcIiwgMjVdLFxuICAgICAgW1wiYTdkMVwiLCBcIlxcdTA0MzBcIiwgNSwgXCJcXHUwNDUxXFx1MDQzNlwiLCAyNV0sXG4gICAgICBbXCJhODQwXCIsIFwiXFx1MDJDQVxcdTAyQ0JcXHUwMkQ5XFx1MjAxM1xcdTIwMTVcXHUyMDI1XFx1MjAzNVxcdTIxMDVcXHUyMTA5XFx1MjE5NlxcdTIxOTdcXHUyMTk4XFx1MjE5OVxcdTIyMTVcXHUyMjFGXFx1MjIyM1xcdTIyNTJcXHUyMjY2XFx1MjI2N1xcdTIyQkZcXHUyNTUwXCIsIDM1LCBcIlxcdTI1ODFcIiwgNl0sXG4gICAgICBbXCJhODgwXCIsIFwiXFx1MjU4OFwiLCA3LCBcIlxcdTI1OTNcXHUyNTk0XFx1MjU5NVxcdTI1QkNcXHUyNUJEXFx1MjVFMlxcdTI1RTNcXHUyNUU0XFx1MjVFNVxcdTI2MDlcXHUyMjk1XFx1MzAxMlxcdTMwMURcXHUzMDFFXCJdLFxuICAgICAgW1wiYThhMVwiLCBcIlxcdTAxMDFcXHhFMVxcdTAxQ0VcXHhFMFxcdTAxMTNcXHhFOVxcdTAxMUJcXHhFOFxcdTAxMkJcXHhFRFxcdTAxRDBcXHhFQ1xcdTAxNERcXHhGM1xcdTAxRDJcXHhGMlxcdTAxNkJcXHhGQVxcdTAxRDRcXHhGOVxcdTAxRDZcXHUwMUQ4XFx1MDFEQVxcdTAxRENcXHhGQ1xceEVBXFx1MDI1MVwiXSxcbiAgICAgIFtcImE4YmRcIiwgXCJcXHUwMTQ0XFx1MDE0OFwiXSxcbiAgICAgIFtcImE4YzBcIiwgXCJcXHUwMjYxXCJdLFxuICAgICAgW1wiYThjNVwiLCBcIlxcdTMxMDVcIiwgMzZdLFxuICAgICAgW1wiYTk0MFwiLCBcIlxcdTMwMjFcIiwgOCwgXCJcXHUzMkEzXFx1MzM4RVxcdTMzOEZcXHUzMzlDXFx1MzM5RFxcdTMzOUVcXHUzM0ExXFx1MzNDNFxcdTMzQ0VcXHUzM0QxXFx1MzNEMlxcdTMzRDVcXHVGRTMwXFx1RkZFMlxcdUZGRTRcIl0sXG4gICAgICBbXCJhOTU5XCIsIFwiXFx1MjEyMVxcdTMyMzFcIl0sXG4gICAgICBbXCJhOTVjXCIsIFwiXFx1MjAxMFwiXSxcbiAgICAgIFtcImE5NjBcIiwgXCJcXHUzMEZDXFx1MzA5QlxcdTMwOUNcXHUzMEZEXFx1MzBGRVxcdTMwMDZcXHUzMDlEXFx1MzA5RVxcdUZFNDlcIiwgOSwgXCJcXHVGRTU0XFx1RkU1NVxcdUZFNTZcXHVGRTU3XFx1RkU1OVwiLCA4XSxcbiAgICAgIFtcImE5ODBcIiwgXCJcXHVGRTYyXCIsIDQsIFwiXFx1RkU2OFxcdUZFNjlcXHVGRTZBXFx1RkU2QlwiXSxcbiAgICAgIFtcImE5OTZcIiwgXCJcXHUzMDA3XCJdLFxuICAgICAgW1wiYTlhNFwiLCBcIlxcdTI1MDBcIiwgNzVdLFxuICAgICAgW1wiYWE0MFwiLCBcIlxcdTcyRENcXHU3MkREXFx1NzJERlxcdTcyRTJcIiwgNSwgXCJcXHU3MkVBXFx1NzJFQlxcdTcyRjVcXHU3MkY2XFx1NzJGOVxcdTcyRkRcXHU3MkZFXFx1NzJGRlxcdTczMDBcXHU3MzAyXFx1NzMwNFwiLCA1LCBcIlxcdTczMEJcXHU3MzBDXFx1NzMwRFxcdTczMEZcXHU3MzEwXFx1NzMxMVxcdTczMTJcXHU3MzE0XFx1NzMxOFxcdTczMTlcXHU3MzFBXFx1NzMxRlxcdTczMjBcXHU3MzIzXFx1NzMyNFxcdTczMjZcXHU3MzI3XFx1NzMyOFxcdTczMkRcXHU3MzJGXFx1NzMzMFxcdTczMzJcXHU3MzMzXFx1NzMzNVxcdTczMzZcXHU3MzNBXFx1NzMzQlxcdTczM0NcXHU3MzNEXFx1NzM0MFwiLCA4XSxcbiAgICAgIFtcImFhODBcIiwgXCJcXHU3MzQ5XFx1NzM0QVxcdTczNEJcXHU3MzRDXFx1NzM0RVxcdTczNEZcXHU3MzUxXFx1NzM1M1xcdTczNTRcXHU3MzU1XFx1NzM1NlxcdTczNThcIiwgNywgXCJcXHU3MzYxXCIsIDEwLCBcIlxcdTczNkVcXHU3MzcwXFx1NzM3MVwiXSxcbiAgICAgIFtcImFiNDBcIiwgXCJcXHU3MzcyXCIsIDExLCBcIlxcdTczN0ZcIiwgNCwgXCJcXHU3Mzg1XFx1NzM4NlxcdTczODhcXHU3MzhBXFx1NzM4Q1xcdTczOERcXHU3MzhGXFx1NzM5MFxcdTczOTJcXHU3MzkzXFx1NzM5NFxcdTczOTVcXHU3Mzk3XFx1NzM5OFxcdTczOTlcXHU3MzlBXFx1NzM5Q1xcdTczOURcXHU3MzlFXFx1NzNBMFxcdTczQTFcXHU3M0EzXCIsIDUsIFwiXFx1NzNBQVxcdTczQUNcXHU3M0FEXFx1NzNCMVxcdTczQjRcXHU3M0I1XFx1NzNCNlxcdTczQjhcXHU3M0I5XFx1NzNCQ1xcdTczQkRcXHU3M0JFXFx1NzNCRlxcdTczQzFcXHU3M0MzXCIsIDRdLFxuICAgICAgW1wiYWI4MFwiLCBcIlxcdTczQ0JcXHU3M0NDXFx1NzNDRVxcdTczRDJcIiwgNiwgXCJcXHU3M0RBXFx1NzNEQlxcdTczRENcXHU3M0REXFx1NzNERlxcdTczRTFcXHU3M0UyXFx1NzNFM1xcdTczRTRcXHU3M0U2XFx1NzNFOFxcdTczRUFcXHU3M0VCXFx1NzNFQ1xcdTczRUVcXHU3M0VGXFx1NzNGMFxcdTczRjFcXHU3M0YzXCIsIDRdLFxuICAgICAgW1wiYWM0MFwiLCBcIlxcdTczRjhcIiwgMTAsIFwiXFx1NzQwNFxcdTc0MDdcXHU3NDA4XFx1NzQwQlxcdTc0MENcXHU3NDBEXFx1NzQwRVxcdTc0MTFcIiwgOCwgXCJcXHU3NDFDXCIsIDUsIFwiXFx1NzQyM1xcdTc0MjRcXHU3NDI3XFx1NzQyOVxcdTc0MkJcXHU3NDJEXFx1NzQyRlxcdTc0MzFcXHU3NDMyXFx1NzQzN1wiLCA0LCBcIlxcdTc0M0RcXHU3NDNFXFx1NzQzRlxcdTc0NDBcXHU3NDQyXCIsIDExXSxcbiAgICAgIFtcImFjODBcIiwgXCJcXHU3NDRFXCIsIDYsIFwiXFx1NzQ1NlxcdTc0NThcXHU3NDVEXFx1NzQ2MFwiLCAxMiwgXCJcXHU3NDZFXFx1NzQ2RlxcdTc0NzFcIiwgNCwgXCJcXHU3NDc4XFx1NzQ3OVxcdTc0N0FcIl0sXG4gICAgICBbXCJhZDQwXCIsIFwiXFx1NzQ3QlxcdTc0N0NcXHU3NDdEXFx1NzQ3RlxcdTc0ODJcXHU3NDg0XFx1NzQ4NVxcdTc0ODZcXHU3NDg4XFx1NzQ4OVxcdTc0OEFcXHU3NDhDXFx1NzQ4RFxcdTc0OEZcXHU3NDkxXCIsIDEwLCBcIlxcdTc0OURcXHU3NDlGXCIsIDcsIFwiXFx1NzRBQVwiLCAxNSwgXCJcXHU3NEJCXCIsIDEyXSxcbiAgICAgIFtcImFkODBcIiwgXCJcXHU3NEM4XCIsIDksIFwiXFx1NzREM1wiLCA4LCBcIlxcdTc0RERcXHU3NERGXFx1NzRFMVxcdTc0RTVcXHU3NEU3XCIsIDYsIFwiXFx1NzRGMFxcdTc0RjFcXHU3NEYyXCJdLFxuICAgICAgW1wiYWU0MFwiLCBcIlxcdTc0RjNcXHU3NEY1XFx1NzRGOFwiLCA2LCBcIlxcdTc1MDBcXHU3NTAxXFx1NzUwMlxcdTc1MDNcXHU3NTA1XCIsIDcsIFwiXFx1NzUwRVxcdTc1MTBcXHU3NTEyXFx1NzUxNFxcdTc1MTVcXHU3NTE2XFx1NzUxN1xcdTc1MUJcXHU3NTFEXFx1NzUxRVxcdTc1MjBcIiwgNCwgXCJcXHU3NTI2XFx1NzUyN1xcdTc1MkFcXHU3NTJFXFx1NzUzNFxcdTc1MzZcXHU3NTM5XFx1NzUzQ1xcdTc1M0RcXHU3NTNGXFx1NzU0MVxcdTc1NDJcXHU3NTQzXFx1NzU0NFxcdTc1NDZcXHU3NTQ3XFx1NzU0OVxcdTc1NEFcXHU3NTREXFx1NzU1MFxcdTc1NTFcXHU3NTUyXFx1NzU1M1xcdTc1NTVcXHU3NTU2XFx1NzU1N1xcdTc1NThcIl0sXG4gICAgICBbXCJhZTgwXCIsIFwiXFx1NzU1RFwiLCA3LCBcIlxcdTc1NjdcXHU3NTY4XFx1NzU2OVxcdTc1NkJcIiwgNiwgXCJcXHU3NTczXFx1NzU3NVxcdTc1NzZcXHU3NTc3XFx1NzU3QVwiLCA0LCBcIlxcdTc1ODBcXHU3NTgxXFx1NzU4MlxcdTc1ODRcXHU3NTg1XFx1NzU4N1wiXSxcbiAgICAgIFtcImFmNDBcIiwgXCJcXHU3NTg4XFx1NzU4OVxcdTc1OEFcXHU3NThDXFx1NzU4RFxcdTc1OEVcXHU3NTkwXFx1NzU5M1xcdTc1OTVcXHU3NTk4XFx1NzU5QlxcdTc1OUNcXHU3NTlFXFx1NzVBMlxcdTc1QTZcIiwgNCwgXCJcXHU3NUFEXFx1NzVCNlxcdTc1QjdcXHU3NUJBXFx1NzVCQlxcdTc1QkZcXHU3NUMwXFx1NzVDMVxcdTc1QzZcXHU3NUNCXFx1NzVDQ1xcdTc1Q0VcXHU3NUNGXFx1NzVEMFxcdTc1RDFcXHU3NUQzXFx1NzVEN1xcdTc1RDlcXHU3NURBXFx1NzVEQ1xcdTc1RERcXHU3NURGXFx1NzVFMFxcdTc1RTFcXHU3NUU1XFx1NzVFOVxcdTc1RUNcXHU3NUVEXFx1NzVFRVxcdTc1RUZcXHU3NUYyXFx1NzVGM1xcdTc1RjVcXHU3NUY2XFx1NzVGN1xcdTc1RjhcXHU3NUZBXFx1NzVGQlxcdTc1RkRcXHU3NUZFXFx1NzYwMlxcdTc2MDRcXHU3NjA2XFx1NzYwN1wiXSxcbiAgICAgIFtcImFmODBcIiwgXCJcXHU3NjA4XFx1NzYwOVxcdTc2MEJcXHU3NjBEXFx1NzYwRVxcdTc2MEZcXHU3NjExXFx1NzYxMlxcdTc2MTNcXHU3NjE0XFx1NzYxNlxcdTc2MUFcXHU3NjFDXFx1NzYxRFxcdTc2MUVcXHU3NjIxXFx1NzYyM1xcdTc2MjdcXHU3NjI4XFx1NzYyQ1xcdTc2MkVcXHU3NjJGXFx1NzYzMVxcdTc2MzJcXHU3NjM2XFx1NzYzN1xcdTc2MzlcXHU3NjNBXFx1NzYzQlxcdTc2M0RcXHU3NjQxXFx1NzY0MlxcdTc2NDRcIl0sXG4gICAgICBbXCJiMDQwXCIsIFwiXFx1NzY0NVwiLCA2LCBcIlxcdTc2NEVcIiwgNSwgXCJcXHU3NjU1XFx1NzY1N1wiLCA0LCBcIlxcdTc2NURcXHU3NjVGXFx1NzY2MFxcdTc2NjFcXHU3NjYyXFx1NzY2NFwiLCA2LCBcIlxcdTc2NkNcXHU3NjZEXFx1NzY2RVxcdTc2NzBcIiwgNywgXCJcXHU3Njc5XFx1NzY3QVxcdTc2N0NcXHU3NjdGXFx1NzY4MFxcdTc2ODFcXHU3NjgzXFx1NzY4NVxcdTc2ODlcXHU3NjhBXFx1NzY4Q1xcdTc2OERcXHU3NjhGXFx1NzY5MFxcdTc2OTJcXHU3Njk0XFx1NzY5NVxcdTc2OTdcXHU3Njk4XFx1NzY5QVxcdTc2OUJcIl0sXG4gICAgICBbXCJiMDgwXCIsIFwiXFx1NzY5Q1wiLCA3LCBcIlxcdTc2QTVcIiwgOCwgXCJcXHU3NkFGXFx1NzZCMFxcdTc2QjNcXHU3NkI1XCIsIDksIFwiXFx1NzZDMFxcdTc2QzFcXHU3NkMzXFx1NTU0QVxcdTk2M0ZcXHU1N0MzXFx1NjMyOFxcdTU0Q0VcXHU1NTA5XFx1NTRDMFxcdTc2OTFcXHU3NjRDXFx1ODUzQ1xcdTc3RUVcXHU4MjdFXFx1Nzg4RFxcdTcyMzFcXHU5Njk4XFx1OTc4RFxcdTZDMjhcXHU1Qjg5XFx1NEZGQVxcdTYzMDlcXHU2Njk3XFx1NUNCOFxcdTgwRkFcXHU2ODQ4XFx1ODBBRVxcdTY2MDJcXHU3NkNFXFx1NTFGOVxcdTY1NTZcXHU3MUFDXFx1N0ZGMVxcdTg4ODRcXHU1MEIyXFx1NTk2NVxcdTYxQ0FcXHU2RkIzXFx1ODJBRFxcdTYzNENcXHU2MjUyXFx1NTNFRFxcdTU0MjdcXHU3QjA2XFx1NTE2QlxcdTc1QTRcXHU1REY0XFx1NjJENFxcdThEQ0JcXHU5Nzc2XFx1NjI4QVxcdTgwMTlcXHU1NzVEXFx1OTczOFxcdTdGNjJcXHU3MjM4XFx1NzY3RFxcdTY3Q0ZcXHU3NjdFXFx1NjQ0NlxcdTRGNzBcXHU4RDI1XFx1NjJEQ1xcdTdBMTdcXHU2NTkxXFx1NzNFRFxcdTY0MkNcXHU2MjczXFx1ODIyQ1xcdTk4ODFcXHU2NzdGXFx1NzI0OFxcdTYyNkVcXHU2MkNDXFx1NEYzNFxcdTc0RTNcXHU1MzRBXFx1NTI5RVxcdTdFQ0FcXHU5MEE2XFx1NUUyRVxcdTY4ODZcXHU2OTlDXFx1ODE4MFxcdTdFRDFcXHU2OEQyXFx1NzhDNVxcdTg2OENcXHU5NTUxXFx1NTA4RFxcdThDMjRcXHU4MkRFXFx1ODBERVxcdTUzMDVcXHU4OTEyXFx1NTI2NVwiXSxcbiAgICAgIFtcImIxNDBcIiwgXCJcXHU3NkM0XFx1NzZDN1xcdTc2QzlcXHU3NkNCXFx1NzZDQ1xcdTc2RDNcXHU3NkQ1XFx1NzZEOVxcdTc2REFcXHU3NkRDXFx1NzZERFxcdTc2REVcXHU3NkUwXCIsIDQsIFwiXFx1NzZFNlwiLCA3LCBcIlxcdTc2RjBcXHU3NkYzXFx1NzZGNVxcdTc2RjZcXHU3NkY3XFx1NzZGQVxcdTc2RkJcXHU3NkZEXFx1NzZGRlxcdTc3MDBcXHU3NzAyXFx1NzcwM1xcdTc3MDVcXHU3NzA2XFx1NzcwQVxcdTc3MENcXHU3NzBFXCIsIDEwLCBcIlxcdTc3MUJcXHU3NzFDXFx1NzcxRFxcdTc3MUVcXHU3NzIxXFx1NzcyM1xcdTc3MjRcXHU3NzI1XFx1NzcyN1xcdTc3MkFcXHU3NzJCXCJdLFxuICAgICAgW1wiYjE4MFwiLCBcIlxcdTc3MkNcXHU3NzJFXFx1NzczMFwiLCA0LCBcIlxcdTc3MzlcXHU3NzNCXFx1NzczRFxcdTc3M0VcXHU3NzNGXFx1Nzc0MlxcdTc3NDRcXHU3NzQ1XFx1Nzc0NlxcdTc3NDhcIiwgNywgXCJcXHU3NzUyXCIsIDcsIFwiXFx1Nzc1Q1xcdTg1ODRcXHU5NkY5XFx1NEZERFxcdTU4MjFcXHU5OTcxXFx1NUI5RFxcdTYyQjFcXHU2MkE1XFx1NjZCNFxcdThDNzlcXHU5QzhEXFx1NzIwNlxcdTY3NkZcXHU3ODkxXFx1NjBCMlxcdTUzNTFcXHU1MzE3XFx1OEY4OFxcdTgwQ0NcXHU4RDFEXFx1OTRBMVxcdTUwMERcXHU3MkM4XFx1NTkwN1xcdTYwRUJcXHU3MTE5XFx1ODhBQlxcdTU5NTRcXHU4MkVGXFx1NjcyQ1xcdTdCMjhcXHU1RDI5XFx1N0VGN1xcdTc1MkRcXHU2Q0Y1XFx1OEU2NlxcdThGRjhcXHU5MDNDXFx1OUYzQlxcdTZCRDRcXHU5MTE5XFx1N0IxNFxcdTVGN0NcXHU3OEE3XFx1ODRENlxcdTg1M0RcXHU2QkQ1XFx1NkJEOVxcdTZCRDZcXHU1RTAxXFx1NUU4N1xcdTc1RjlcXHU5NUVEXFx1NjU1RFxcdTVGMEFcXHU1RkM1XFx1OEY5RlxcdTU4QzFcXHU4MUMyXFx1OTA3RlxcdTk2NUJcXHU5N0FEXFx1OEZCOVxcdTdGMTZcXHU4RDJDXFx1NjI0MVxcdTRGQkZcXHU1M0Q4XFx1NTM1RVxcdThGQThcXHU4RkE5XFx1OEZBQlxcdTkwNERcXHU2ODA3XFx1NUY2QVxcdTgxOThcXHU4ODY4XFx1OUNENlxcdTYxOEJcXHU1MjJCXFx1NzYyQVxcdTVGNkNcXHU2NThDXFx1NkZEMlxcdTZFRThcXHU1QkJFXFx1NjQ0OFxcdTUxNzVcXHU1MUIwXFx1NjdDNFxcdTRFMTlcXHU3OUM5XFx1OTk3Q1xcdTcwQjNcIl0sXG4gICAgICBbXCJiMjQwXCIsIFwiXFx1Nzc1RFxcdTc3NUVcXHU3NzVGXFx1Nzc2MFxcdTc3NjRcXHU3NzY3XFx1Nzc2OVxcdTc3NkFcXHU3NzZEXCIsIDExLCBcIlxcdTc3N0FcXHU3NzdCXFx1Nzc3Q1xcdTc3ODFcXHU3NzgyXFx1Nzc4M1xcdTc3ODZcIiwgNSwgXCJcXHU3NzhGXFx1Nzc5MFxcdTc3OTNcIiwgMTEsIFwiXFx1NzdBMVxcdTc3QTNcXHU3N0E0XFx1NzdBNlxcdTc3QThcXHU3N0FCXFx1NzdBRFxcdTc3QUVcXHU3N0FGXFx1NzdCMVxcdTc3QjJcXHU3N0I0XFx1NzdCNlwiLCA0XSxcbiAgICAgIFtcImIyODBcIiwgXCJcXHU3N0JDXFx1NzdCRVxcdTc3QzBcIiwgMTIsIFwiXFx1NzdDRVwiLCA4LCBcIlxcdTc3RDhcXHU3N0Q5XFx1NzdEQVxcdTc3RERcIiwgNCwgXCJcXHU3N0U0XFx1NzVDNVxcdTVFNzZcXHU3M0JCXFx1ODNFMFxcdTY0QURcXHU2MkU4XFx1OTRCNVxcdTZDRTJcXHU1MzVBXFx1NTJDM1xcdTY0MEZcXHU5NEMyXFx1N0I5NFxcdTRGMkZcXHU1RTFCXFx1ODIzNlxcdTgxMTZcXHU4MThBXFx1NkUyNFxcdTZDQ0FcXHU5QTczXFx1NjM1NVxcdTUzNUNcXHU1NEZBXFx1ODg2NVxcdTU3RTBcXHU0RTBEXFx1NUUwM1xcdTZCNjVcXHU3QzNGXFx1OTBFOFxcdTYwMTZcXHU2NEU2XFx1NzMxQ1xcdTg4QzFcXHU2NzUwXFx1NjI0RFxcdThEMjJcXHU3NzZDXFx1OEUyOVxcdTkxQzdcXHU1RjY5XFx1ODNEQ1xcdTg1MjFcXHU5OTEwXFx1NTNDMlxcdTg2OTVcXHU2QjhCXFx1NjBFRFxcdTYwRThcXHU3MDdGXFx1ODJDRFxcdTgyMzFcXHU0RUQzXFx1NkNBN1xcdTg1Q0ZcXHU2NENEXFx1N0NEOVxcdTY5RkRcXHU2NkY5XFx1ODM0OVxcdTUzOTVcXHU3QjU2XFx1NEZBN1xcdTUxOENcXHU2RDRCXFx1NUM0MlxcdThFNkRcXHU2M0QyXFx1NTNDOVxcdTgzMkNcXHU4MzM2XFx1NjdFNVxcdTc4QjRcXHU2NDNEXFx1NUJERlxcdTVDOTRcXHU1REVFXFx1OEJFN1xcdTYyQzZcXHU2N0Y0XFx1OEM3QVxcdTY0MDBcXHU2M0JBXFx1ODc0OVxcdTk5OEJcXHU4QzE3XFx1N0YyMFxcdTk0RjJcXHU0RUE3XFx1OTYxMFxcdTk4QTRcXHU2NjBDXFx1NzMxNlwiXSxcbiAgICAgIFtcImIzNDBcIiwgXCJcXHU3N0U2XFx1NzdFOFxcdTc3RUFcXHU3N0VGXFx1NzdGMFxcdTc3RjFcXHU3N0YyXFx1NzdGNFxcdTc3RjVcXHU3N0Y3XFx1NzdGOVxcdTc3RkFcXHU3N0ZCXFx1NzdGQ1xcdTc4MDNcIiwgNSwgXCJcXHU3ODBBXFx1NzgwQlxcdTc4MEVcXHU3ODBGXFx1NzgxMFxcdTc4MTNcXHU3ODE1XFx1NzgxOVxcdTc4MUJcXHU3ODFFXFx1NzgyMFxcdTc4MjFcXHU3ODIyXFx1NzgyNFxcdTc4MjhcXHU3ODJBXFx1NzgyQlxcdTc4MkVcXHU3ODJGXFx1NzgzMVxcdTc4MzJcXHU3ODMzXFx1NzgzNVxcdTc4MzZcXHU3ODNEXFx1NzgzRlxcdTc4NDFcXHU3ODQyXFx1Nzg0M1xcdTc4NDRcXHU3ODQ2XFx1Nzg0OFxcdTc4NDlcXHU3ODRBXFx1Nzg0QlxcdTc4NERcXHU3ODRGXFx1Nzg1MVxcdTc4NTNcXHU3ODU0XFx1Nzg1OFxcdTc4NTlcXHU3ODVBXCJdLFxuICAgICAgW1wiYjM4MFwiLCBcIlxcdTc4NUJcXHU3ODVDXFx1Nzg1RVwiLCAxMSwgXCJcXHU3ODZGXCIsIDcsIFwiXFx1Nzg3OFxcdTc4NzlcXHU3ODdBXFx1Nzg3QlxcdTc4N0RcIiwgNiwgXCJcXHU1NzNBXFx1NUMxRFxcdTVFMzhcXHU5NTdGXFx1NTA3RlxcdTgwQTBcXHU1MzgyXFx1NjU1RVxcdTc1NDVcXHU1NTMxXFx1NTAyMVxcdThEODVcXHU2Mjg0XFx1OTQ5RVxcdTY3MURcXHU1NjMyXFx1NkY2RVxcdTVERTJcXHU1NDM1XFx1NzA5MlxcdThGNjZcXHU2MjZGXFx1NjRBNFxcdTYzQTNcXHU1RjdCXFx1NkY4OFxcdTkwRjRcXHU4MUUzXFx1OEZCMFxcdTVDMThcXHU2NjY4XFx1NUZGMVxcdTZDODlcXHU5NjQ4XFx1OEQ4MVxcdTg4NkNcXHU2NDkxXFx1NzlGMFxcdTU3Q0VcXHU2QTU5XFx1NjIxMFxcdTU0NDhcXHU0RTU4XFx1N0EwQlxcdTYwRTlcXHU2Rjg0XFx1OEJEQVxcdTYyN0ZcXHU5MDFFXFx1OUE4QlxcdTc5RTRcXHU1NDAzXFx1NzVGNFxcdTYzMDFcXHU1MzE5XFx1NkM2MFxcdThGREZcXHU1RjFCXFx1OUE3MFxcdTgwM0JcXHU5RjdGXFx1NEY4OFxcdTVDM0FcXHU4RDY0XFx1N0ZDNVxcdTY1QTVcXHU3MEJEXFx1NTE0NVxcdTUxQjJcXHU4NjZCXFx1NUQwN1xcdTVCQTBcXHU2MkJEXFx1OTE2Q1xcdTc1NzRcXHU4RTBDXFx1N0EyMFxcdTYxMDFcXHU3Qjc5XFx1NEVDN1xcdTdFRjhcXHU3Nzg1XFx1NEUxMVxcdTgxRURcXHU1MjFEXFx1NTFGQVxcdTZBNzFcXHU1M0E4XFx1OEU4N1xcdTk1MDRcXHU5NkNGXFx1NkVDMVxcdTk2NjRcXHU2OTVBXCJdLFxuICAgICAgW1wiYjQ0MFwiLCBcIlxcdTc4ODRcXHU3ODg1XFx1Nzg4NlxcdTc4ODhcXHU3ODhBXFx1Nzg4QlxcdTc4OEZcXHU3ODkwXFx1Nzg5MlxcdTc4OTRcXHU3ODk1XFx1Nzg5NlxcdTc4OTlcXHU3ODlEXFx1Nzg5RVxcdTc4QTBcXHU3OEEyXFx1NzhBNFxcdTc4QTZcXHU3OEE4XCIsIDcsIFwiXFx1NzhCNVxcdTc4QjZcXHU3OEI3XFx1NzhCOFxcdTc4QkFcXHU3OEJCXFx1NzhCQ1xcdTc4QkRcXHU3OEJGXFx1NzhDMFxcdTc4QzJcXHU3OEMzXFx1NzhDNFxcdTc4QzZcXHU3OEM3XFx1NzhDOFxcdTc4Q0NcXHU3OENEXFx1NzhDRVxcdTc4Q0ZcXHU3OEQxXFx1NzhEMlxcdTc4RDNcXHU3OEQ2XFx1NzhEN1xcdTc4RDhcXHU3OERBXCIsIDldLFxuICAgICAgW1wiYjQ4MFwiLCBcIlxcdTc4RTRcXHU3OEU1XFx1NzhFNlxcdTc4RTdcXHU3OEU5XFx1NzhFQVxcdTc4RUJcXHU3OEVEXCIsIDQsIFwiXFx1NzhGM1xcdTc4RjVcXHU3OEY2XFx1NzhGOFxcdTc4RjlcXHU3OEZCXCIsIDUsIFwiXFx1NzkwMlxcdTc5MDNcXHU3OTA0XFx1NzkwNlwiLCA2LCBcIlxcdTc4NDBcXHU1MEE4XFx1NzdEN1xcdTY0MTBcXHU4OUU2XFx1NTkwNFxcdTYzRTNcXHU1REREXFx1N0E3RlxcdTY5M0RcXHU0RjIwXFx1ODIzOVxcdTU1OThcXHU0RTMyXFx1NzVBRVxcdTdBOTdcXHU1RTYyXFx1NUU4QVxcdTk1RUZcXHU1MjFCXFx1NTQzOVxcdTcwOEFcXHU2Mzc2XFx1OTUyNFxcdTU3ODJcXHU2NjI1XFx1NjkzRlxcdTkxODdcXHU1NTA3XFx1NkRGM1xcdTdFQUZcXHU4ODIyXFx1NjIzM1xcdTdFRjBcXHU3NUI1XFx1ODMyOFxcdTc4QzFcXHU5NkNDXFx1OEY5RVxcdTYxNDhcXHU3NEY3XFx1OEJDRFxcdTZCNjRcXHU1MjNBXFx1OEQ1MFxcdTZCMjFcXHU4MDZBXFx1ODQ3MVxcdTU2RjFcXHU1MzA2XFx1NEVDRVxcdTRFMUJcXHU1MUQxXFx1N0M5N1xcdTkxOEJcXHU3QzA3XFx1NEZDM1xcdThFN0ZcXHU3QkUxXFx1N0E5Q1xcdTY0NjdcXHU1RDE0XFx1NTBBQ1xcdTgxMDZcXHU3NjAxXFx1N0NCOVxcdTZERUNcXHU3RkUwXFx1Njc1MVxcdTVCNThcXHU1QkY4XFx1NzhDQlxcdTY0QUVcXHU2NDEzXFx1NjNBQVxcdTYzMkJcXHU5NTE5XFx1NjQyRFxcdThGQkVcXHU3QjU0XFx1NzYyOVxcdTYyNTNcXHU1OTI3XFx1NTQ0NlxcdTZCNzlcXHU1MEEzXFx1NjIzNFxcdTVFMjZcXHU2Qjg2XFx1NEVFM1xcdThEMzdcXHU4ODhCXFx1NUY4NVxcdTkwMkVcIl0sXG4gICAgICBbXCJiNTQwXCIsIFwiXFx1NzkwRFwiLCA1LCBcIlxcdTc5MTRcIiwgOSwgXCJcXHU3OTFGXCIsIDQsIFwiXFx1NzkyNVwiLCAxNCwgXCJcXHU3OTM1XCIsIDQsIFwiXFx1NzkzRFxcdTc5M0ZcXHU3OTQyXFx1Nzk0M1xcdTc5NDRcXHU3OTQ1XFx1Nzk0N1xcdTc5NEFcIiwgOCwgXCJcXHU3OTU0XFx1Nzk1NVxcdTc5NThcXHU3OTU5XFx1Nzk2MVxcdTc5NjNcIl0sXG4gICAgICBbXCJiNTgwXCIsIFwiXFx1Nzk2NFxcdTc5NjZcXHU3OTY5XFx1Nzk2QVxcdTc5NkJcXHU3OTZDXFx1Nzk2RVxcdTc5NzBcIiwgNiwgXCJcXHU3OTc5XFx1Nzk3QlwiLCA0LCBcIlxcdTc5ODJcXHU3OTgzXFx1Nzk4NlxcdTc5ODdcXHU3OTg4XFx1Nzk4OVxcdTc5OEJcXHU3OThDXFx1Nzk4RFxcdTc5OEVcXHU3OTkwXFx1Nzk5MVxcdTc5OTJcXHU2MDIwXFx1ODAzRFxcdTYyQzVcXHU0RTM5XFx1NTM1NVxcdTkwRjhcXHU2M0I4XFx1ODBDNlxcdTY1RTZcXHU2QzJFXFx1NEY0NlxcdTYwRUVcXHU2REUxXFx1OEJERVxcdTVGMzlcXHU4NkNCXFx1NUY1M1xcdTYzMjFcXHU1MTVBXFx1ODM2MVxcdTY4NjNcXHU1MjAwXFx1NjM2M1xcdThFNDhcXHU1MDEyXFx1NUM5QlxcdTc5NzdcXHU1QkZDXFx1NTIzMFxcdTdBM0JcXHU2MEJDXFx1OTA1M1xcdTc2RDdcXHU1RkI3XFx1NUY5N1xcdTc2ODRcXHU4RTZDXFx1NzA2RlxcdTc2N0JcXHU3QjQ5XFx1NzdBQVxcdTUxRjNcXHU5MDkzXFx1NTgyNFxcdTRGNEVcXHU2RUY0XFx1OEZFQVxcdTY1NENcXHU3QjFCXFx1NzJDNFxcdTZEQTRcXHU3RkRGXFx1NUFFMVxcdTYyQjVcXHU1RTk1XFx1NTczMFxcdTg0ODJcXHU3QjJDXFx1NUUxRFxcdTVGMUZcXHU5MDEyXFx1N0YxNFxcdTk4QTBcXHU2MzgyXFx1NkVDN1xcdTc4OThcXHU3MEI5XFx1NTE3OFxcdTk3NUJcXHU1N0FCXFx1NzUzNVxcdTRGNDNcXHU3NTM4XFx1NUU5N1xcdTYwRTZcXHU1OTYwXFx1NkRDMFxcdTZCQkZcXHU3ODg5XFx1NTNGQ1xcdTk2RDVcXHU1MUNCXFx1NTIwMVxcdTYzODlcXHU1NDBBXFx1OTQ5M1xcdThDMDNcXHU4RENDXFx1NzIzOVxcdTc4OUZcXHU4Nzc2XFx1OEZFRFxcdThDMERcXHU1M0UwXCJdLFxuICAgICAgW1wiYjY0MFwiLCBcIlxcdTc5OTNcIiwgNiwgXCJcXHU3OTlCXCIsIDExLCBcIlxcdTc5QThcIiwgMTAsIFwiXFx1NzlCNFwiLCA0LCBcIlxcdTc5QkNcXHU3OUJGXFx1NzlDMlxcdTc5QzRcXHU3OUM1XFx1NzlDN1xcdTc5QzhcXHU3OUNBXFx1NzlDQ1xcdTc5Q0VcXHU3OUNGXFx1NzlEMFxcdTc5RDNcXHU3OUQ0XFx1NzlENlxcdTc5RDdcXHU3OUQ5XCIsIDUsIFwiXFx1NzlFMFxcdTc5RTFcXHU3OUUyXFx1NzlFNVxcdTc5RThcXHU3OUVBXCJdLFxuICAgICAgW1wiYjY4MFwiLCBcIlxcdTc5RUNcXHU3OUVFXFx1NzlGMVwiLCA2LCBcIlxcdTc5RjlcXHU3OUZBXFx1NzlGQ1xcdTc5RkVcXHU3OUZGXFx1N0EwMVxcdTdBMDRcXHU3QTA1XFx1N0EwN1xcdTdBMDhcXHU3QTA5XFx1N0EwQVxcdTdBMENcXHU3QTBGXCIsIDQsIFwiXFx1N0ExNVxcdTdBMTZcXHU3QTE4XFx1N0ExOVxcdTdBMUJcXHU3QTFDXFx1NEUwMVxcdTc2RUZcXHU1M0VFXFx1OTQ4OVxcdTk4NzZcXHU5RjBFXFx1OTUyRFxcdTVCOUFcXHU4QkEyXFx1NEUyMlxcdTRFMUNcXHU1MUFDXFx1ODQ2M1xcdTYxQzJcXHU1MkE4XFx1NjgwQlxcdTRGOTdcXHU2MDZCXFx1NTFCQlxcdTZEMUVcXHU1MTVDXFx1NjI5NlxcdTY1OTdcXHU5NjYxXFx1OEM0NlxcdTkwMTdcXHU3NUQ4XFx1OTBGRFxcdTc3NjNcXHU2QkQyXFx1NzI4QVxcdTcyRUNcXHU4QkZCXFx1NTgzNVxcdTc3NzlcXHU4RDRDXFx1Njc1Q1xcdTk1NDBcXHU4MDlBXFx1NUVBNlxcdTZFMjFcXHU1OTkyXFx1N0FFRlxcdTc3RURcXHU5NTNCXFx1NkJCNVxcdTY1QURcXHU3RjBFXFx1NTgwNlxcdTUxNTFcXHU5NjFGXFx1NUJGOVxcdTU4QTlcXHU1NDI4XFx1OEU3MlxcdTY1NjZcXHU5ODdGXFx1NTZFNFxcdTk0OURcXHU3NkZFXFx1OTA0MVxcdTYzODdcXHU1NEM2XFx1NTkxQVxcdTU5M0FcXHU1NzlCXFx1OEVCMlxcdTY3MzVcXHU4REZBXFx1ODIzNVxcdTUyNDFcXHU2MEYwXFx1NTgxNVxcdTg2RkVcXHU1Q0U4XFx1OUU0NVxcdTRGQzRcXHU5ODlEXFx1OEJCOVxcdTVBMjVcXHU2MDc2XFx1NTM4NFxcdTYyN0NcXHU5MDRGXFx1OTEwMlxcdTk5N0ZcXHU2MDY5XFx1ODAwQ1xcdTUxM0ZcXHU4MDMzXFx1NUMxNFxcdTk5NzVcXHU2RDMxXFx1NEU4Q1wiXSxcbiAgICAgIFtcImI3NDBcIiwgXCJcXHU3QTFEXFx1N0ExRlxcdTdBMjFcXHU3QTIyXFx1N0EyNFwiLCAxNCwgXCJcXHU3QTM0XFx1N0EzNVxcdTdBMzZcXHU3QTM4XFx1N0EzQVxcdTdBM0VcXHU3QTQwXCIsIDUsIFwiXFx1N0E0N1wiLCA5LCBcIlxcdTdBNTJcIiwgNCwgXCJcXHU3QTU4XCIsIDE2XSxcbiAgICAgIFtcImI3ODBcIiwgXCJcXHU3QTY5XCIsIDYsIFwiXFx1N0E3MVxcdTdBNzJcXHU3QTczXFx1N0E3NVxcdTdBN0JcXHU3QTdDXFx1N0E3RFxcdTdBN0VcXHU3QTgyXFx1N0E4NVxcdTdBODdcXHU3QTg5XFx1N0E4QVxcdTdBOEJcXHU3QThDXFx1N0E4RVxcdTdBOEZcXHU3QTkwXFx1N0E5M1xcdTdBOTRcXHU3QTk5XFx1N0E5QVxcdTdBOUJcXHU3QTlFXFx1N0FBMVxcdTdBQTJcXHU4RDMwXFx1NTNEMVxcdTdGNUFcXHU3QjRGXFx1NEYxMFxcdTRFNEZcXHU5NjAwXFx1NkNENVxcdTczRDBcXHU4NUU5XFx1NUUwNlxcdTc1NkFcXHU3RkZCXFx1NkEwQVxcdTc3RkVcXHU5NDkyXFx1N0U0MVxcdTUxRTFcXHU3MEU2XFx1NTNDRFxcdThGRDRcXHU4MzAzXFx1OEQyOVxcdTcyQUZcXHU5OTZEXFx1NkNEQlxcdTU3NEFcXHU4MkIzXFx1NjVCOVxcdTgwQUFcXHU2MjNGXFx1OTYzMlxcdTU5QThcXHU0RUZGXFx1OEJCRlxcdTdFQkFcXHU2NTNFXFx1ODNGMlxcdTk3NUVcXHU1NTYxXFx1OThERVxcdTgwQTVcXHU1MzJBXFx1OEJGRFxcdTU0MjBcXHU4MEJBXFx1NUU5RlxcdTZDQjhcXHU4RDM5XFx1ODJBQ1xcdTkxNUFcXHU1NDI5XFx1NkMxQlxcdTUyMDZcXHU3RUI3XFx1NTc1RlxcdTcxMUFcXHU2QzdFXFx1N0M4OVxcdTU5NEJcXHU0RUZEXFx1NUZGRlxcdTYxMjRcXHU3Q0FBXFx1NEUzMFxcdTVDMDFcXHU2N0FCXFx1ODcwMlxcdTVDRjBcXHU5NTBCXFx1OThDRVxcdTc1QUZcXHU3MEZEXFx1OTAyMlxcdTUxQUZcXHU3RjFEXFx1OEJCRFxcdTU5NDlcXHU1MUU0XFx1NEY1QlxcdTU0MjZcXHU1OTJCXFx1NjU3N1xcdTgwQTRcXHU1Qjc1XFx1NjI3NlxcdTYyQzJcXHU4RjkwXFx1NUU0NVxcdTZDMUZcXHU3QjI2XFx1NEYwRlxcdTRGRDhcXHU2NzBEXCJdLFxuICAgICAgW1wiYjg0MFwiLCBcIlxcdTdBQTNcXHU3QUE0XFx1N0FBN1xcdTdBQTlcXHU3QUFBXFx1N0FBQlxcdTdBQUVcIiwgNCwgXCJcXHU3QUI0XCIsIDEwLCBcIlxcdTdBQzBcIiwgMTAsIFwiXFx1N0FDQ1wiLCA5LCBcIlxcdTdBRDdcXHU3QUQ4XFx1N0FEQVxcdTdBREJcXHU3QURDXFx1N0FERFxcdTdBRTFcXHU3QUUyXFx1N0FFNFxcdTdBRTdcIiwgNSwgXCJcXHU3QUVFXFx1N0FGMFxcdTdBRjFcXHU3QUYyXFx1N0FGM1wiXSxcbiAgICAgIFtcImI4ODBcIiwgXCJcXHU3QUY0XCIsIDQsIFwiXFx1N0FGQlxcdTdBRkNcXHU3QUZFXFx1N0IwMFxcdTdCMDFcXHU3QjAyXFx1N0IwNVxcdTdCMDdcXHU3QjA5XFx1N0IwQ1xcdTdCMERcXHU3QjBFXFx1N0IxMFxcdTdCMTJcXHU3QjEzXFx1N0IxNlxcdTdCMTdcXHU3QjE4XFx1N0IxQVxcdTdCMUNcXHU3QjFEXFx1N0IxRlxcdTdCMjFcXHU3QjIyXFx1N0IyM1xcdTdCMjdcXHU3QjI5XFx1N0IyRFxcdTZENkVcXHU2REFBXFx1Nzk4RlxcdTg4QjFcXHU1RjE3XFx1NzUyQlxcdTYyOUFcXHU4Rjg1XFx1NEZFRlxcdTkxRENcXHU2NUE3XFx1ODEyRlxcdTgxNTFcXHU1RTlDXFx1ODE1MFxcdThENzRcXHU1MjZGXFx1ODk4NlxcdThENEJcXHU1OTBEXFx1NTA4NVxcdTRFRDhcXHU5NjFDXFx1NzIzNlxcdTgxNzlcXHU4RDFGXFx1NUJDQ1xcdThCQTNcXHU5NjQ0XFx1NTk4N1xcdTdGMUFcXHU1NDkwXFx1NTY3NlxcdTU2MEVcXHU4QkU1XFx1NjUzOVxcdTY5ODJcXHU5NDk5XFx1NzZENlxcdTZFODlcXHU1RTcyXFx1NzUxOFxcdTY3NDZcXHU2N0QxXFx1N0FGRlxcdTgwOURcXHU4RDc2XFx1NjExRlxcdTc5QzZcXHU2NTYyXFx1OEQ2M1xcdTUxODhcXHU1MjFBXFx1OTRBMlxcdTdGMzhcXHU4MDlCXFx1N0VCMlxcdTVDOTdcXHU2RTJGXFx1Njc2MFxcdTdCRDlcXHU3NjhCXFx1OUFEOFxcdTgxOEZcXHU3Rjk0XFx1N0NENVxcdTY0MUVcXHU5NTUwXFx1N0EzRlxcdTU0NEFcXHU1NEU1XFx1NkI0Q1xcdTY0MDFcXHU2MjA4XFx1OUUzRFxcdTgwRjNcXHU3NTk5XFx1NTI3MlxcdTk3NjlcXHU4NDVCXFx1NjgzQ1xcdTg2RTRcXHU5NjAxXFx1OTY5NFxcdTk0RUNcXHU0RTJBXFx1NTQwNFxcdTdFRDlcXHU2ODM5XFx1OERERlxcdTgwMTVcXHU2NkY0XFx1NUU5QVxcdTdGQjlcIl0sXG4gICAgICBbXCJiOTQwXCIsIFwiXFx1N0IyRlxcdTdCMzBcXHU3QjMyXFx1N0IzNFxcdTdCMzVcXHU3QjM2XFx1N0IzN1xcdTdCMzlcXHU3QjNCXFx1N0IzRFxcdTdCM0ZcIiwgNSwgXCJcXHU3QjQ2XFx1N0I0OFxcdTdCNEFcXHU3QjREXFx1N0I0RVxcdTdCNTNcXHU3QjU1XFx1N0I1N1xcdTdCNTlcXHU3QjVDXFx1N0I1RVxcdTdCNUZcXHU3QjYxXFx1N0I2M1wiLCAxMCwgXCJcXHU3QjZGXFx1N0I3MFxcdTdCNzNcXHU3Qjc0XFx1N0I3NlxcdTdCNzhcXHU3QjdBXFx1N0I3Q1xcdTdCN0RcXHU3QjdGXFx1N0I4MVxcdTdCODJcXHU3QjgzXFx1N0I4NFxcdTdCODZcIiwgNiwgXCJcXHU3QjhFXFx1N0I4RlwiXSxcbiAgICAgIFtcImI5ODBcIiwgXCJcXHU3QjkxXFx1N0I5MlxcdTdCOTNcXHU3Qjk2XFx1N0I5OFxcdTdCOTlcXHU3QjlBXFx1N0I5QlxcdTdCOUVcXHU3QjlGXFx1N0JBMFxcdTdCQTNcXHU3QkE0XFx1N0JBNVxcdTdCQUVcXHU3QkFGXFx1N0JCMFxcdTdCQjJcXHU3QkIzXFx1N0JCNVxcdTdCQjZcXHU3QkI3XFx1N0JCOVwiLCA3LCBcIlxcdTdCQzJcXHU3QkMzXFx1N0JDNFxcdTU3QzJcXHU4MDNGXFx1Njg5N1xcdTVERTVcXHU2NTNCXFx1NTI5RlxcdTYwNkRcXHU5RjlBXFx1NEY5QlxcdThFQUNcXHU1MTZDXFx1NUJBQlxcdTVGMTNcXHU1REU5XFx1NkM1RVxcdTYyRjFcXHU4RDIxXFx1NTE3MVxcdTk0QTlcXHU1MkZFXFx1NkM5RlxcdTgyREZcXHU3MkQ3XFx1NTdBMlxcdTY3ODRcXHU4RDJEXFx1NTkxRlxcdThGOUNcXHU4M0M3XFx1NTQ5NVxcdTdCOERcXHU0RjMwXFx1NkNCRFxcdTVCNjRcXHU1OUQxXFx1OUYxM1xcdTUzRTRcXHU4NkNBXFx1OUFBOFxcdThDMzdcXHU4MEExXFx1NjU0NVxcdTk4N0VcXHU1NkZBXFx1OTZDN1xcdTUyMkVcXHU3NERDXFx1NTI1MFxcdTVCRTFcXHU2MzAyXFx1ODkwMlxcdTRFNTZcXHU2MkQwXFx1NjAyQVxcdTY4RkFcXHU1MTczXFx1NUI5OFxcdTUxQTBcXHU4OUMyXFx1N0JBMVxcdTk5ODZcXHU3RjUwXFx1NjBFRlxcdTcwNENcXHU4RDJGXFx1NTE0OVxcdTVFN0ZcXHU5MDFCXFx1NzQ3MFxcdTg5QzRcXHU1NzJEXFx1Nzg0NVxcdTVGNTJcXHU5RjlGXFx1OTVGQVxcdThGNjhcXHU5QjNDXFx1OEJFMVxcdTc2NzhcXHU2ODQyXFx1NjdEQ1xcdThERUFcXHU4RDM1XFx1NTIzRFxcdThGOEFcXHU2RURBXFx1NjhDRFxcdTk1MDVcXHU5MEVEXFx1NTZGRFxcdTY3OUNcXHU4OEY5XFx1OEZDN1xcdTU0QzhcIl0sXG4gICAgICBbXCJiYTQwXCIsIFwiXFx1N0JDNVxcdTdCQzhcXHU3QkM5XFx1N0JDQVxcdTdCQ0JcXHU3QkNEXFx1N0JDRVxcdTdCQ0ZcXHU3QkQwXFx1N0JEMlxcdTdCRDRcIiwgNCwgXCJcXHU3QkRCXFx1N0JEQ1xcdTdCREVcXHU3QkRGXFx1N0JFMFxcdTdCRTJcXHU3QkUzXFx1N0JFNFxcdTdCRTdcXHU3QkU4XFx1N0JFOVxcdTdCRUJcXHU3QkVDXFx1N0JFRFxcdTdCRUZcXHU3QkYwXFx1N0JGMlwiLCA0LCBcIlxcdTdCRjhcXHU3QkY5XFx1N0JGQVxcdTdCRkJcXHU3QkZEXFx1N0JGRlwiLCA3LCBcIlxcdTdDMDhcXHU3QzA5XFx1N0MwQVxcdTdDMERcXHU3QzBFXFx1N0MxMFwiLCA1LCBcIlxcdTdDMTdcXHU3QzE4XFx1N0MxOVwiXSxcbiAgICAgIFtcImJhODBcIiwgXCJcXHU3QzFBXCIsIDQsIFwiXFx1N0MyMFwiLCA1LCBcIlxcdTdDMjhcXHU3QzI5XFx1N0MyQlwiLCAxMiwgXCJcXHU3QzM5XCIsIDUsIFwiXFx1N0M0MlxcdTlBQjhcXHU1QjY5XFx1NkQ3N1xcdTZDMjZcXHU0RUE1XFx1NUJCM1xcdTlBODdcXHU5MTYzXFx1NjFBOFxcdTkwQUZcXHU5N0U5XFx1NTQyQlxcdTZEQjVcXHU1QkQyXFx1NTFGRFxcdTU1OEFcXHU3RjU1XFx1N0ZGMFxcdTY0QkNcXHU2MzREXFx1NjVGMVxcdTYxQkVcXHU2MDhEXFx1NzEwQVxcdTZDNTdcXHU2QzQ5XFx1NTkyRlxcdTY3NkRcXHU4MjJBXFx1NThENVxcdTU2OEVcXHU4QzZBXFx1NkJFQlxcdTkwRERcXHU1OTdEXFx1ODAxN1xcdTUzRjdcXHU2RDY5XFx1NTQ3NVxcdTU1OURcXHU4Mzc3XFx1ODNDRlxcdTY4MzhcXHU3OUJFXFx1NTQ4Q1xcdTRGNTVcXHU1NDA4XFx1NzZEMlxcdThDODlcXHU5NjAyXFx1NkNCM1xcdTZEQjhcXHU4RDZCXFx1ODkxMFxcdTlFNjRcXHU4RDNBXFx1NTYzRlxcdTlFRDFcXHU3NUQ1XFx1NUY4OFxcdTcyRTBcXHU2MDY4XFx1NTRGQ1xcdTRFQThcXHU2QTJBXFx1ODg2MVxcdTYwNTJcXHU4RjcwXFx1NTRDNFxcdTcwRDhcXHU4Njc5XFx1OUUzRlxcdTZEMkFcXHU1QjhGXFx1NUYxOFxcdTdFQTJcXHU1NTg5XFx1NEZBRlxcdTczMzRcXHU1NDNDXFx1NTM5QVxcdTUwMTlcXHU1NDBFXFx1NTQ3Q1xcdTRFNEVcXHU1RkZEXFx1NzQ1QVxcdTU4RjZcXHU4NDZCXFx1ODBFMVxcdTg3NzRcXHU3MkQwXFx1N0NDQVxcdTZFNTZcIl0sXG4gICAgICBbXCJiYjQwXCIsIFwiXFx1N0M0M1wiLCA5LCBcIlxcdTdDNEVcIiwgMzYsIFwiXFx1N0M3NVwiLCA1LCBcIlxcdTdDN0VcIiwgOV0sXG4gICAgICBbXCJiYjgwXCIsIFwiXFx1N0M4OFxcdTdDOEFcIiwgNiwgXCJcXHU3QzkzXFx1N0M5NFxcdTdDOTZcXHU3Qzk5XFx1N0M5QVxcdTdDOUJcXHU3Q0EwXFx1N0NBMVxcdTdDQTNcXHU3Q0E2XFx1N0NBN1xcdTdDQThcXHU3Q0E5XFx1N0NBQlxcdTdDQUNcXHU3Q0FEXFx1N0NBRlxcdTdDQjBcXHU3Q0I0XCIsIDQsIFwiXFx1N0NCQVxcdTdDQkJcXHU1RjI3XFx1ODY0RVxcdTU1MkNcXHU2MkE0XFx1NEU5MlxcdTZDQUFcXHU2MjM3XFx1ODJCMVxcdTU0RDdcXHU1MzRFXFx1NzMzRVxcdTZFRDFcXHU3NTNCXFx1NTIxMlxcdTUzMTZcXHU4QkREXFx1NjlEMFxcdTVGOEFcXHU2MDAwXFx1NkRFRVxcdTU3NEZcXHU2QjIyXFx1NzNBRlxcdTY4NTNcXHU4RkQ4XFx1N0YxM1xcdTYzNjJcXHU2MEEzXFx1NTUyNFxcdTc1RUFcXHU4QzYyXFx1NzExNVxcdTZEQTNcXHU1QkE2XFx1NUU3QlxcdTgzNTJcXHU2MTRDXFx1OUVDNFxcdTc4RkFcXHU4NzU3XFx1N0MyN1xcdTc2ODdcXHU1MUYwXFx1NjBGNlxcdTcxNENcXHU2NjQzXFx1NUU0Q1xcdTYwNERcXHU4QzBFXFx1NzA3MFxcdTYzMjVcXHU4Rjg5XFx1NUZCRFxcdTYwNjJcXHU4NkQ0XFx1NTZERVxcdTZCQzFcXHU2MDk0XFx1NjE2N1xcdTUzNDlcXHU2MEUwXFx1NjY2NlxcdThEM0ZcXHU3OUZEXFx1NEYxQVxcdTcwRTlcXHU2QzQ3XFx1OEJCM1xcdThCRjJcXHU3RUQ4XFx1ODM2NFxcdTY2MEZcXHU1QTVBXFx1OUI0MlxcdTZENTFcXHU2REY3XFx1OEM0MVxcdTZEM0JcXHU0RjE5XFx1NzA2QlxcdTgzQjdcXHU2MjE2XFx1NjBEMVxcdTk3MERcXHU4RDI3XFx1Nzk3OFxcdTUxRkJcXHU1NzNFXFx1NTdGQVxcdTY3M0FcXHU3NTc4XFx1N0EzRFxcdTc5RUZcXHU3Qjk1XCJdLFxuICAgICAgW1wiYmM0MFwiLCBcIlxcdTdDQkZcXHU3Q0MwXFx1N0NDMlxcdTdDQzNcXHU3Q0M0XFx1N0NDNlxcdTdDQzlcXHU3Q0NCXFx1N0NDRVwiLCA2LCBcIlxcdTdDRDhcXHU3Q0RBXFx1N0NEQlxcdTdDRERcXHU3Q0RFXFx1N0NFMVwiLCA2LCBcIlxcdTdDRTlcIiwgNSwgXCJcXHU3Q0YwXCIsIDcsIFwiXFx1N0NGOVxcdTdDRkFcXHU3Q0ZDXCIsIDEzLCBcIlxcdTdEMEJcIiwgNV0sXG4gICAgICBbXCJiYzgwXCIsIFwiXFx1N0QxMVwiLCAxNCwgXCJcXHU3RDIxXFx1N0QyM1xcdTdEMjRcXHU3RDI1XFx1N0QyNlxcdTdEMjhcXHU3RDI5XFx1N0QyQVxcdTdEMkNcXHU3RDJEXFx1N0QyRVxcdTdEMzBcIiwgNiwgXCJcXHU4MDhDXFx1OTk2NVxcdThGRjlcXHU2RkMwXFx1OEJBNVxcdTlFMjFcXHU1OUVDXFx1N0VFOVxcdTdGMDlcXHU1NDA5XFx1Njc4MVxcdTY4RDhcXHU4RjkxXFx1N0M0RFxcdTk2QzZcXHU1M0NBXFx1NjAyNVxcdTc1QkVcXHU2QzcyXFx1NTM3M1xcdTVBQzlcXHU3RUE3XFx1NjMyNFxcdTUxRTBcXHU4MTBBXFx1NURGMVxcdTg0REZcXHU2MjgwXFx1NTE4MFxcdTVCNjNcXHU0RjBFXFx1Nzk2RFxcdTUyNDJcXHU2MEI4XFx1NkQ0RVxcdTVCQzRcXHU1QkMyXFx1OEJBMVxcdThCQjBcXHU2NUUyXFx1NUZDQ1xcdTk2NDVcXHU1OTkzXFx1N0VFN1xcdTdFQUFcXHU1NjA5XFx1NjdCN1xcdTU5MzlcXHU0RjczXFx1NUJCNlxcdTUyQTBcXHU4MzVBXFx1OTg4QVxcdThEM0VcXHU3NTMyXFx1OTRCRVxcdTUwNDdcXHU3QTNDXFx1NEVGN1xcdTY3QjZcXHU5QTdFXFx1NUFDMVxcdTZCN0NcXHU3NkQxXFx1NTc1QVxcdTVDMTZcXHU3QjNBXFx1OTVGNFxcdTcxNEVcXHU1MTdDXFx1ODBBOVxcdTgyNzBcXHU1OTc4XFx1N0YwNFxcdTgzMjdcXHU2OEMwXFx1NjdFQ1xcdTc4QjFcXHU3ODc3XFx1NjJFM1xcdTYzNjFcXHU3QjgwXFx1NEZFRFxcdTUyNkFcXHU1MUNGXFx1ODM1MFxcdTY5REJcXHU5Mjc0XFx1OERGNVxcdThEMzFcXHU4OUMxXFx1OTUyRVxcdTdCQURcXHU0RUY2XCJdLFxuICAgICAgW1wiYmQ0MFwiLCBcIlxcdTdEMzdcIiwgNTQsIFwiXFx1N0Q2RlwiLCA3XSxcbiAgICAgIFtcImJkODBcIiwgXCJcXHU3RDc4XCIsIDMyLCBcIlxcdTUwNjVcXHU4MjMwXFx1NTI1MVxcdTk5NkZcXHU2RTEwXFx1NkU4NVxcdTZEQTdcXHU1RUZBXFx1NTBGNVxcdTU5RENcXHU1QzA2XFx1NkQ0NlxcdTZDNUZcXHU3NTg2XFx1ODQ4QlxcdTY4NjhcXHU1OTU2XFx1OEJCMlxcdTUzMjBcXHU5MTcxXFx1OTY0RFxcdTg1NDlcXHU2OTEyXFx1NzkwMVxcdTcxMjZcXHU4MEY2XFx1NEVBNFxcdTkwQ0FcXHU2RDQ3XFx1OUE4NFxcdTVBMDdcXHU1NkJDXFx1NjQwNVxcdTk0RjBcXHU3N0VCXFx1NEZBNVxcdTgxMUFcXHU3MkUxXFx1ODlEMlxcdTk5N0FcXHU3RjM0XFx1N0VERVxcdTUyN0ZcXHU2NTU5XFx1OTE3NVxcdThGN0ZcXHU4RjgzXFx1NTNFQlxcdTdBOTZcXHU2M0VEXFx1NjNBNVxcdTc2ODZcXHU3OUY4XFx1ODg1N1xcdTk2MzZcXHU2MjJBXFx1NTJBQlxcdTgyODJcXHU2ODU0XFx1Njc3MFxcdTYzNzdcXHU3NzZCXFx1N0FFRFxcdTZEMDFcXHU3RUQzXFx1ODlFM1xcdTU5RDBcXHU2MjEyXFx1ODVDOVxcdTgyQTVcXHU3NTRDXFx1NTAxRlxcdTRFQ0JcXHU3NUE1XFx1OEJFQlxcdTVDNEFcXHU1REZFXFx1N0I0QlxcdTY1QTRcXHU5MUQxXFx1NEVDQVxcdTZEMjVcXHU4OTVGXFx1N0QyN1xcdTk1MjZcXHU0RUM1XFx1OEMyOFxcdThGREJcXHU5NzczXFx1NjY0QlxcdTc5ODFcXHU4RkQxXFx1NzBFQ1xcdTZENzhcIl0sXG4gICAgICBbXCJiZTQwXCIsIFwiXFx1N0Q5OVwiLCAxMiwgXCJcXHU3REE3XCIsIDYsIFwiXFx1N0RBRlwiLCA0Ml0sXG4gICAgICBbXCJiZTgwXCIsIFwiXFx1N0REQVwiLCAzMiwgXCJcXHU1QzNEXFx1NTJCMlxcdTgzNDZcXHU1MTYyXFx1ODMwRVxcdTc3NUJcXHU2Njc2XFx1OUNCOFxcdTRFQUNcXHU2MENBXFx1N0NCRVxcdTdDQjNcXHU3RUNGXFx1NEU5NVxcdThCNjZcXHU2NjZGXFx1OTg4OFxcdTk3NTlcXHU1ODgzXFx1NjU2Q1xcdTk1NUNcXHU1Rjg0XFx1NzVDOVxcdTk3NTZcXHU3QURGXFx1N0FERVxcdTUxQzBcXHU3MEFGXFx1N0E5OFxcdTYzRUFcXHU3QTc2XFx1N0VBMFxcdTczOTZcXHU5N0VEXFx1NEU0NVxcdTcwNzhcXHU0RTVEXFx1OTE1MlxcdTUzQTlcXHU2NTUxXFx1NjVFN1xcdTgxRkNcXHU4MjA1XFx1NTQ4RVxcdTVDMzFcXHU3NTlBXFx1OTdBMFxcdTYyRDhcXHU3MkQ5XFx1NzVCRFxcdTVDNDVcXHU5QTc5XFx1ODNDQVxcdTVDNDBcXHU1NDgwXFx1NzdFOVxcdTRFM0VcXHU2Q0FFXFx1ODA1QVxcdTYyRDJcXHU2MzZFXFx1NURFOFxcdTUxNzdcXHU4REREXFx1OEUxRVxcdTk1MkZcXHU0RkYxXFx1NTNFNVxcdTYwRTdcXHU3MEFDXFx1NTI2N1xcdTYzNTBcXHU5RTQzXFx1NUExRlxcdTUwMjZcXHU3NzM3XFx1NTM3N1xcdTdFRTJcXHU2NDg1XFx1NjUyQlxcdTYyODlcXHU2Mzk4XFx1NTAxNFxcdTcyMzVcXHU4OUM5XFx1NTFCM1xcdThCQzBcXHU3RUREXFx1NTc0N1xcdTgzQ0NcXHU5NEE3XFx1NTE5QlxcdTU0MUJcXHU1Q0ZCXCJdLFxuICAgICAgW1wiYmY0MFwiLCBcIlxcdTdERkJcIiwgNjJdLFxuICAgICAgW1wiYmY4MFwiLCBcIlxcdTdFM0FcXHU3RTNDXCIsIDQsIFwiXFx1N0U0MlwiLCA0LCBcIlxcdTdFNDhcIiwgMjEsIFwiXFx1NEZDQVxcdTdBRTNcXHU2RDVBXFx1OTBFMVxcdTlBOEZcXHU1NTgwXFx1NTQ5NlxcdTUzNjFcXHU1NEFGXFx1NUYwMFxcdTYzRTlcXHU2OTc3XFx1NTFFRlxcdTYxNjhcXHU1MjBBXFx1NTgyQVxcdTUyRDhcXHU1NzRFXFx1NzgwRFxcdTc3MEJcXHU1RUI3XFx1NjE3N1xcdTdDRTBcXHU2MjVCXFx1NjI5N1xcdTRFQTJcXHU3MDk1XFx1ODAwM1xcdTYyRjdcXHU3MEU0XFx1OTc2MFxcdTU3NzdcXHU4MkRCXFx1NjdFRlxcdTY4RjVcXHU3OEQ1XFx1OTg5N1xcdTc5RDFcXHU1OEYzXFx1NTRCM1xcdTUzRUZcXHU2RTM0XFx1NTE0QlxcdTUyM0JcXHU1QkEyXFx1OEJGRVxcdTgwQUZcXHU1NTQzXFx1NTdBNlxcdTYwNzNcXHU1NzUxXFx1NTQyRFxcdTdBN0FcXHU2MDUwXFx1NUI1NFxcdTYzQTdcXHU2MkEwXFx1NTNFM1xcdTYyNjNcXHU1QkM3XFx1NjdBRlxcdTU0RURcXHU3QTlGXFx1ODJFNlxcdTkxNzdcXHU1RTkzXFx1ODhFNFxcdTU5MzhcXHU1N0FFXFx1NjMwRVxcdThERThcXHU4MEVGXFx1NTc1N1xcdTdCNzdcXHU0RkE5XFx1NUZFQlxcdTVCQkRcXHU2QjNFXFx1NTMyMVxcdTdCNTBcXHU3MkMyXFx1Njg0NlxcdTc3RkZcXHU3NzM2XFx1NjVGN1xcdTUxQjVcXHU0RThGXFx1NzZENFxcdTVDQkZcXHU3QUE1XFx1ODQ3NVxcdTU5NEVcXHU5QjQxXFx1NTA4MFwiXSxcbiAgICAgIFtcImMwNDBcIiwgXCJcXHU3RTVFXCIsIDM1LCBcIlxcdTdFODNcIiwgMjMsIFwiXFx1N0U5Q1xcdTdFOURcXHU3RTlFXCJdLFxuICAgICAgW1wiYzA4MFwiLCBcIlxcdTdFQUVcXHU3RUI0XFx1N0VCQlxcdTdFQkNcXHU3RUQ2XFx1N0VFNFxcdTdFRUNcXHU3RUY5XFx1N0YwQVxcdTdGMTBcXHU3RjFFXFx1N0YzN1xcdTdGMzlcXHU3RjNCXCIsIDYsIFwiXFx1N0Y0M1xcdTdGNDZcIiwgOSwgXCJcXHU3RjUyXFx1N0Y1M1xcdTk5ODhcXHU2MTI3XFx1NkU4M1xcdTU3NjRcXHU2NjA2XFx1NjM0NlxcdTU2RjBcXHU2MkVDXFx1NjI2OVxcdTVFRDNcXHU5NjE0XFx1NTc4M1xcdTYyQzlcXHU1NTg3XFx1ODcyMVxcdTgxNEFcXHU4RkEzXFx1NTU2NlxcdTgzQjFcXHU2NzY1XFx1OEQ1NlxcdTg0RERcXHU1QTZBXFx1NjgwRlxcdTYyRTZcXHU3QkVFXFx1OTYxMVxcdTUxNzBcXHU2RjlDXFx1OEMzMFxcdTYzRkRcXHU4OUM4XFx1NjFEMlxcdTdGMDZcXHU3MEMyXFx1NkVFNVxcdTc0MDVcXHU2OTk0XFx1NzJGQ1xcdTVFQ0FcXHU5MENFXFx1NjcxN1xcdTZENkFcXHU2MzVFXFx1NTJCM1xcdTcyNjJcXHU4MDAxXFx1NEY2Q1xcdTU5RTVcXHU5MTZBXFx1NzBEOVxcdTZEOURcXHU1MkQyXFx1NEU1MFxcdTk2RjdcXHU5NTZEXFx1ODU3RVxcdTc4Q0FcXHU3RDJGXFx1NTEyMVxcdTU3OTJcXHU2NEMyXFx1ODA4QlxcdTdDN0JcXHU2Q0VBXFx1NjhGMVxcdTY5NUVcXHU1MUI3XFx1NTM5OFxcdTY4QThcXHU3MjgxXFx1OUVDRVxcdTdCRjFcXHU3MkY4XFx1NzlCQlxcdTZGMTNcXHU3NDA2XFx1Njc0RVxcdTkxQ0NcXHU5Q0E0XFx1NzkzQ1xcdTgzODlcXHU4MzU0XFx1NTQwRlxcdTY4MTdcXHU0RTNEXFx1NTM4OVxcdTUyQjFcXHU3ODNFXFx1NTM4NlxcdTUyMjlcXHU1MDg4XFx1NEY4QlxcdTRGRDBcIl0sXG4gICAgICBbXCJjMTQwXCIsIFwiXFx1N0Y1NlxcdTdGNTlcXHU3RjVCXFx1N0Y1Q1xcdTdGNURcXHU3RjVFXFx1N0Y2MFxcdTdGNjNcIiwgNCwgXCJcXHU3RjZCXFx1N0Y2Q1xcdTdGNkRcXHU3RjZGXFx1N0Y3MFxcdTdGNzNcXHU3Rjc1XFx1N0Y3NlxcdTdGNzdcXHU3Rjc4XFx1N0Y3QVxcdTdGN0JcXHU3RjdDXFx1N0Y3RFxcdTdGN0ZcXHU3RjgwXFx1N0Y4MlwiLCA3LCBcIlxcdTdGOEJcXHU3RjhEXFx1N0Y4RlwiLCA0LCBcIlxcdTdGOTVcIiwgNCwgXCJcXHU3RjlCXFx1N0Y5Q1xcdTdGQTBcXHU3RkEyXFx1N0ZBM1xcdTdGQTVcXHU3RkE2XFx1N0ZBOFwiLCA2LCBcIlxcdTdGQjFcIl0sXG4gICAgICBbXCJjMTgwXCIsIFwiXFx1N0ZCM1wiLCA0LCBcIlxcdTdGQkFcXHU3RkJCXFx1N0ZCRVxcdTdGQzBcXHU3RkMyXFx1N0ZDM1xcdTdGQzRcXHU3RkM2XFx1N0ZDN1xcdTdGQzhcXHU3RkM5XFx1N0ZDQlxcdTdGQ0RcXHU3RkNGXCIsIDQsIFwiXFx1N0ZENlxcdTdGRDdcXHU3RkQ5XCIsIDUsIFwiXFx1N0ZFMlxcdTdGRTNcXHU3NUUyXFx1N0FDQlxcdTdDOTJcXHU2Q0E1XFx1OTZCNlxcdTUyOUJcXHU3NDgzXFx1NTRFOVxcdTRGRTlcXHU4MDU0XFx1ODNCMlxcdThGREVcXHU5NTcwXFx1NUVDOVxcdTYwMUNcXHU2RDlGXFx1NUUxOFxcdTY1NUJcXHU4MTM4XFx1OTRGRVxcdTYwNEJcXHU3MEJDXFx1N0VDM1xcdTdDQUVcXHU1MUM5XFx1Njg4MVxcdTdDQjFcXHU4MjZGXFx1NEUyNFxcdThGODZcXHU5MUNGXFx1NjY3RVxcdTRFQUVcXHU4QzA1XFx1NjRBOVxcdTgwNEFcXHU1MERBXFx1NzU5N1xcdTcxQ0VcXHU1QkU1XFx1OEZCRFxcdTZGNjZcXHU0RTg2XFx1NjQ4MlxcdTk1NjNcXHU1RUQ2XFx1NjU5OVxcdTUyMTdcXHU4OEMyXFx1NzBDOFxcdTUyQTNcXHU3MzBFXFx1NzQzM1xcdTY3OTdcXHU3OEY3XFx1OTcxNlxcdTRFMzRcXHU5MEJCXFx1OUNERVxcdTZEQ0JcXHU1MURCXFx1OEQ0MVxcdTU0MURcXHU2MkNFXFx1NzNCMlxcdTgzRjFcXHU5NkY2XFx1OUY4NFxcdTk0QzNcXHU0RjM2XFx1N0Y5QVxcdTUxQ0NcXHU3MDc1XFx1OTY3NVxcdTVDQURcXHU5ODg2XFx1NTNFNlxcdTRFRTRcXHU2RTlDXFx1NzQwOVxcdTY5QjRcXHU3ODZCXFx1OTk4RlxcdTc1NTlcXHU1MjE4XFx1NzYyNFxcdTZENDFcXHU2N0YzXFx1NTE2RFxcdTlGOTlcXHU4MDRCXFx1NTQ5OVxcdTdCM0NcXHU3QUJGXCJdLFxuICAgICAgW1wiYzI0MFwiLCBcIlxcdTdGRTRcXHU3RkU3XFx1N0ZFOFxcdTdGRUFcXHU3RkVCXFx1N0ZFQ1xcdTdGRURcXHU3RkVGXFx1N0ZGMlxcdTdGRjRcIiwgNiwgXCJcXHU3RkZEXFx1N0ZGRVxcdTdGRkZcXHU4MDAyXFx1ODAwN1xcdTgwMDhcXHU4MDA5XFx1ODAwQVxcdTgwMEVcXHU4MDBGXFx1ODAxMVxcdTgwMTNcXHU4MDFBXFx1ODAxQlxcdTgwMURcXHU4MDFFXFx1ODAxRlxcdTgwMjFcXHU4MDIzXFx1ODAyNFxcdTgwMkJcIiwgNSwgXCJcXHU4MDMyXFx1ODAzNFxcdTgwMzlcXHU4MDNBXFx1ODAzQ1xcdTgwM0VcXHU4MDQwXFx1ODA0MVxcdTgwNDRcXHU4MDQ1XFx1ODA0N1xcdTgwNDhcXHU4MDQ5XFx1ODA0RVxcdTgwNEZcXHU4MDUwXFx1ODA1MVxcdTgwNTNcXHU4MDU1XFx1ODA1NlxcdTgwNTdcIl0sXG4gICAgICBbXCJjMjgwXCIsIFwiXFx1ODA1OVxcdTgwNUJcIiwgMTMsIFwiXFx1ODA2QlwiLCA1LCBcIlxcdTgwNzJcIiwgMTEsIFwiXFx1OTY4NlxcdTU3ODRcXHU2MkUyXFx1OTY0N1xcdTY5N0NcXHU1QTA0XFx1NjQwMlxcdTdCRDNcXHU2RjBGXFx1OTY0QlxcdTgyQTZcXHU1MzYyXFx1OTg4NVxcdTVFOTBcXHU3MDg5XFx1NjNCM1xcdTUzNjRcXHU4NjRGXFx1OUM4MVxcdTlFOTNcXHU3ODhDXFx1OTczMlxcdThERUZcXHU4RDQyXFx1OUU3RlxcdTZGNUVcXHU3OTg0XFx1NUY1NVxcdTk2NDZcXHU2MjJFXFx1OUE3NFxcdTU0MTVcXHU5NEREXFx1NEZBM1xcdTY1QzVcXHU1QzY1XFx1NUM2MVxcdTdGMTVcXHU4NjUxXFx1NkMyRlxcdTVGOEJcXHU3Mzg3XFx1NkVFNFxcdTdFRkZcXHU1Q0U2XFx1NjMxQlxcdTVCNkFcXHU2RUU2XFx1NTM3NVxcdTRFNzFcXHU2M0EwXFx1NzU2NVxcdTYyQTFcXHU4RjZFXFx1NEYyNlxcdTRFRDFcXHU2Q0E2XFx1N0VCNlxcdThCQkFcXHU4NDFEXFx1ODdCQVxcdTdGNTdcXHU5MDNCXFx1OTUyM1xcdTdCQTlcXHU5QUExXFx1ODhGOFxcdTg0M0RcXHU2RDFCXFx1OUE4NlxcdTdFRENcXHU1OTg4XFx1OUVCQlxcdTczOUJcXHU3ODAxXFx1ODY4MlxcdTlBNkNcXHU5QTgyXFx1NTYxQlxcdTU0MTdcXHU1N0NCXFx1NEU3MFxcdTlFQTZcXHU1MzU2XFx1OEZDOFxcdTgxMDlcXHU3NzkyXFx1OTk5MlxcdTg2RUVcXHU2RUUxXFx1ODUxM1xcdTY2RkNcXHU2MTYyXFx1NkYyQlwiXSxcbiAgICAgIFtcImMzNDBcIiwgXCJcXHU4MDdFXFx1ODA4MVxcdTgwODJcXHU4MDg1XFx1ODA4OFxcdTgwOEFcXHU4MDhEXCIsIDUsIFwiXFx1ODA5NFxcdTgwOTVcXHU4MDk3XFx1ODA5OVxcdTgwOUVcXHU4MEEzXFx1ODBBNlxcdTgwQTdcXHU4MEE4XFx1ODBBQ1xcdTgwQjBcXHU4MEIzXFx1ODBCNVxcdTgwQjZcXHU4MEI4XFx1ODBCOVxcdTgwQkJcXHU4MEM1XFx1ODBDN1wiLCA0LCBcIlxcdTgwQ0ZcIiwgNiwgXCJcXHU4MEQ4XFx1ODBERlxcdTgwRTBcXHU4MEUyXFx1ODBFM1xcdTgwRTZcXHU4MEVFXFx1ODBGNVxcdTgwRjdcXHU4MEY5XFx1ODBGQlxcdTgwRkVcXHU4MEZGXFx1ODEwMFxcdTgxMDFcXHU4MTAzXFx1ODEwNFxcdTgxMDVcXHU4MTA3XFx1ODEwOFxcdTgxMEJcIl0sXG4gICAgICBbXCJjMzgwXCIsIFwiXFx1ODEwQ1xcdTgxMTVcXHU4MTE3XFx1ODExOVxcdTgxMUJcXHU4MTFDXFx1ODExRFxcdTgxMUZcIiwgMTIsIFwiXFx1ODEyRFxcdTgxMkVcXHU4MTMwXFx1ODEzM1xcdTgxMzRcXHU4MTM1XFx1ODEzN1xcdTgxMzlcIiwgNCwgXCJcXHU4MTNGXFx1OEMyOVxcdTgyOTJcXHU4MzJCXFx1NzZGMlxcdTZDMTNcXHU1RkQ5XFx1ODNCRFxcdTczMkJcXHU4MzA1XFx1OTUxQVxcdTZCREJcXHU3N0RCXFx1OTRDNlxcdTUzNkZcXHU4MzAyXFx1NTE5MlxcdTVFM0RcXHU4QzhDXFx1OEQzOFxcdTRFNDhcXHU3M0FCXFx1Njc5QVxcdTY4ODVcXHU5MTc2XFx1OTcwOVxcdTcxNjRcXHU2Q0ExXFx1NzcwOVxcdTVBOTJcXHU5NTQxXFx1NkJDRlxcdTdGOEVcXHU2NjI3XFx1NUJEMFxcdTU5QjlcXHU1QTlBXFx1OTVFOFxcdTk1RjdcXHU0RUVDXFx1ODQwQ1xcdTg0OTlcXHU2QUFDXFx1NzZERlxcdTk1MzBcXHU3MzFCXFx1NjhBNlxcdTVCNUZcXHU3NzJGXFx1OTE5QVxcdTk3NjFcXHU3Q0RDXFx1OEZGN1xcdThDMUNcXHU1RjI1XFx1N0M3M1xcdTc5RDhcXHU4OUM1XFx1NkNDQ1xcdTg3MUNcXHU1QkM2XFx1NUU0MlxcdTY4QzlcXHU3NzIwXFx1N0VGNVxcdTUxOTVcXHU1MTREXFx1NTJDOVxcdTVBMjlcXHU3RjA1XFx1OTc2MlxcdTgyRDdcXHU2M0NGXFx1Nzc4NFxcdTg1RDBcXHU3OUQyXFx1NkUzQVxcdTVFOTlcXHU1OTk5XFx1ODUxMVxcdTcwNkRcXHU2QzExXFx1NjJCRlxcdTc2QkZcXHU2NTRGXFx1NjBBRlxcdTk1RkRcXHU2NjBFXFx1ODc5RlxcdTlFMjNcXHU5NEVEXFx1NTQwRFxcdTU0N0RcXHU4QzJDXFx1NjQ3OFwiXSxcbiAgICAgIFtcImM0NDBcIiwgXCJcXHU4MTQwXCIsIDUsIFwiXFx1ODE0N1xcdTgxNDlcXHU4MTREXFx1ODE0RVxcdTgxNEZcXHU4MTUyXFx1ODE1NlxcdTgxNTdcXHU4MTU4XFx1ODE1QlwiLCA0LCBcIlxcdTgxNjFcXHU4MTYyXFx1ODE2M1xcdTgxNjRcXHU4MTY2XFx1ODE2OFxcdTgxNkFcXHU4MTZCXFx1ODE2Q1xcdTgxNkZcXHU4MTcyXFx1ODE3M1xcdTgxNzVcXHU4MTc2XFx1ODE3N1xcdTgxNzhcXHU4MTgxXFx1ODE4M1wiLCA0LCBcIlxcdTgxODlcXHU4MThCXFx1ODE4Q1xcdTgxOERcXHU4MThFXFx1ODE5MFxcdTgxOTJcIiwgNSwgXCJcXHU4MTk5XFx1ODE5QVxcdTgxOUVcIiwgNCwgXCJcXHU4MUE0XFx1ODFBNVwiXSxcbiAgICAgIFtcImM0ODBcIiwgXCJcXHU4MUE3XFx1ODFBOVxcdTgxQUJcIiwgNywgXCJcXHU4MUI0XCIsIDUsIFwiXFx1ODFCQ1xcdTgxQkRcXHU4MUJFXFx1ODFCRlxcdTgxQzRcXHU4MUM1XFx1ODFDN1xcdTgxQzhcXHU4MUM5XFx1ODFDQlxcdTgxQ0RcIiwgNiwgXCJcXHU2NDc5XFx1ODYxMVxcdTZBMjFcXHU4MTlDXFx1NzhFOFxcdTY0NjlcXHU5QjU0XFx1NjJCOVxcdTY3MkJcXHU4M0FCXFx1NThBOFxcdTlFRDhcXHU2Q0FCXFx1NkYyMFxcdTVCREVcXHU5NjRDXFx1OEMwQlxcdTcyNUZcXHU2N0QwXFx1NjJDN1xcdTcyNjFcXHU0RUE5XFx1NTlDNlxcdTZCQ0RcXHU1ODkzXFx1NjZBRVxcdTVFNTVcXHU1MkRGXFx1NjE1NVxcdTY3MjhcXHU3NkVFXFx1Nzc2NlxcdTcyNjdcXHU3QTQ2XFx1NjJGRlxcdTU0RUFcXHU1NDUwXFx1OTRBMFxcdTkwQTNcXHU1QTFDXFx1N0VCM1xcdTZDMTZcXHU0RTQzXFx1NTk3NlxcdTgwMTBcXHU1OTQ4XFx1NTM1N1xcdTc1MzdcXHU5NkJFXFx1NTZDQVxcdTYzMjBcXHU4MTExXFx1NjA3Q1xcdTk1RjlcXHU2REQ2XFx1NTQ2MlxcdTk5ODFcXHU1MTg1XFx1NUFFOVxcdTgwRkRcXHU1OUFFXFx1OTcxM1xcdTUwMkFcXHU2Q0U1XFx1NUMzQ1xcdTYyREZcXHU0RjYwXFx1NTMzRlxcdTgxN0JcXHU5MDA2XFx1NkVCQVxcdTg1MkJcXHU2MkM4XFx1NUU3NFxcdTc4QkVcXHU2NEI1XFx1NjM3QlxcdTVGRjVcXHU1QTE4XFx1OTE3RlxcdTlFMUZcXHU1QzNGXFx1NjM0RlxcdTgwNDJcXHU1QjdEXFx1NTU2RVxcdTk1NEFcXHU5NTREXFx1NkQ4NVxcdTYwQThcXHU2N0UwXFx1NzJERVxcdTUxRERcXHU1QjgxXCJdLFxuICAgICAgW1wiYzU0MFwiLCBcIlxcdTgxRDRcIiwgMTQsIFwiXFx1ODFFNFxcdTgxRTVcXHU4MUU2XFx1ODFFOFxcdTgxRTlcXHU4MUVCXFx1ODFFRVwiLCA0LCBcIlxcdTgxRjVcIiwgNSwgXCJcXHU4MUZEXFx1ODFGRlxcdTgyMDNcXHU4MjA3XCIsIDQsIFwiXFx1ODIwRVxcdTgyMEZcXHU4MjExXFx1ODIxM1xcdTgyMTVcIiwgNSwgXCJcXHU4MjFEXFx1ODIyMFxcdTgyMjRcXHU4MjI1XFx1ODIyNlxcdTgyMjdcXHU4MjI5XFx1ODIyRVxcdTgyMzJcXHU4MjNBXFx1ODIzQ1xcdTgyM0RcXHU4MjNGXCJdLFxuICAgICAgW1wiYzU4MFwiLCBcIlxcdTgyNDBcXHU4MjQxXFx1ODI0MlxcdTgyNDNcXHU4MjQ1XFx1ODI0NlxcdTgyNDhcXHU4MjRBXFx1ODI0Q1xcdTgyNERcXHU4MjRFXFx1ODI1MFwiLCA3LCBcIlxcdTgyNTlcXHU4MjVCXFx1ODI1Q1xcdTgyNURcXHU4MjVFXFx1ODI2MFwiLCA3LCBcIlxcdTgyNjlcXHU2MkU3XFx1NkNERVxcdTcyNUJcXHU2MjZEXFx1OTRBRVxcdTdFQkRcXHU4MTEzXFx1NkQ1M1xcdTUxOUNcXHU1RjA0XFx1NTk3NFxcdTUyQUFcXHU2MDEyXFx1NTk3M1xcdTY2OTZcXHU4NjUwXFx1NzU5RlxcdTYzMkFcXHU2MUU2XFx1N0NFRlxcdThCRkFcXHU1NEU2XFx1NkIyN1xcdTlFMjVcXHU2QkI0XFx1ODVENVxcdTU0NTVcXHU1MDc2XFx1NkNBNFxcdTU1NkFcXHU4REI0XFx1NzIyQ1xcdTVFMTVcXHU2MDE1XFx1NzQzNlxcdTYyQ0RcXHU2MzkyXFx1NzI0Q1xcdTVGOThcXHU2RTQzXFx1NkQzRVxcdTY1MDBcXHU2RjU4XFx1NzZEOFxcdTc4RDBcXHU3NkZDXFx1NzU1NFxcdTUyMjRcXHU1M0RCXFx1NEU1M1xcdTVFOUVcXHU2NUMxXFx1ODAyQVxcdTgwRDZcXHU2MjlCXFx1NTQ4NlxcdTUyMjhcXHU3MEFFXFx1ODg4RFxcdThERDFcXHU2Q0UxXFx1NTQ3OFxcdTgwREFcXHU1N0Y5XFx1ODhGNFxcdThENTRcXHU5NjZBXFx1OTE0RFxcdTRGNjlcXHU2QzlCXFx1NTVCN1xcdTc2QzZcXHU3ODMwXFx1NjJBOFxcdTcwRjlcXHU2RjhFXFx1NUY2RFxcdTg0RUNcXHU2OERBXFx1Nzg3Q1xcdTdCRjdcXHU4MUE4XFx1NjcwQlxcdTlFNEZcXHU2MzY3XFx1NzhCMFxcdTU3NkZcXHU3ODEyXFx1OTczOVxcdTYyNzlcXHU2MkFCXFx1NTI4OFxcdTc0MzVcXHU2QkQ3XCJdLFxuICAgICAgW1wiYzY0MFwiLCBcIlxcdTgyNkFcXHU4MjZCXFx1ODI2Q1xcdTgyNkRcXHU4MjcxXFx1ODI3NVxcdTgyNzZcXHU4Mjc3XFx1ODI3OFxcdTgyN0JcXHU4MjdDXFx1ODI4MFxcdTgyODFcXHU4MjgzXFx1ODI4NVxcdTgyODZcXHU4Mjg3XFx1ODI4OVxcdTgyOENcXHU4MjkwXFx1ODI5M1xcdTgyOTRcXHU4Mjk1XFx1ODI5NlxcdTgyOUFcXHU4MjlCXFx1ODI5RVxcdTgyQTBcXHU4MkEyXFx1ODJBM1xcdTgyQTdcXHU4MkIyXFx1ODJCNVxcdTgyQjZcXHU4MkJBXFx1ODJCQlxcdTgyQkNcXHU4MkJGXFx1ODJDMFxcdTgyQzJcXHU4MkMzXFx1ODJDNVxcdTgyQzZcXHU4MkM5XFx1ODJEMFxcdTgyRDZcXHU4MkQ5XFx1ODJEQVxcdTgyRERcXHU4MkUyXFx1ODJFN1xcdTgyRThcXHU4MkU5XFx1ODJFQVxcdTgyRUNcXHU4MkVEXFx1ODJFRVxcdTgyRjBcXHU4MkYyXFx1ODJGM1xcdTgyRjVcXHU4MkY2XFx1ODJGOFwiXSxcbiAgICAgIFtcImM2ODBcIiwgXCJcXHU4MkZBXFx1ODJGQ1wiLCA0LCBcIlxcdTgzMEFcXHU4MzBCXFx1ODMwRFxcdTgzMTBcXHU4MzEyXFx1ODMxM1xcdTgzMTZcXHU4MzE4XFx1ODMxOVxcdTgzMURcIiwgOSwgXCJcXHU4MzI5XFx1ODMyQVxcdTgzMkVcXHU4MzMwXFx1ODMzMlxcdTgzMzdcXHU4MzNCXFx1ODMzRFxcdTU1NjRcXHU4MTNFXFx1NzVCMlxcdTc2QUVcXHU1MzM5XFx1NzVERVxcdTUwRkJcXHU1QzQxXFx1OEI2Q1xcdTdCQzdcXHU1MDRGXFx1NzI0N1xcdTlBOTdcXHU5OEQ4XFx1NkYwMlxcdTc0RTJcXHU3OTY4XFx1NjQ4N1xcdTc3QTVcXHU2MkZDXFx1OTg5MVxcdThEMkJcXHU1NEMxXFx1ODA1OFxcdTRFNTJcXHU1NzZBXFx1ODJGOVxcdTg0MERcXHU1RTczXFx1NTFFRFxcdTc0RjZcXHU4QkM0XFx1NUM0RlxcdTU3NjFcXHU2Q0ZDXFx1OTg4N1xcdTVBNDZcXHU3ODM0XFx1OUI0NFxcdThGRUJcXHU3Qzk1XFx1NTI1NlxcdTYyNTFcXHU5NEZBXFx1NEVDNlxcdTgzODZcXHU4NDYxXFx1ODNFOVxcdTg0QjJcXHU1N0Q0XFx1NjczNFxcdTU3MDNcXHU2NjZFXFx1NkQ2NlxcdThDMzFcXHU2NkREXFx1NzAxMVxcdTY3MUZcXHU2QjNBXFx1NjgxNlxcdTYyMUFcXHU1OUJCXFx1NEUwM1xcdTUxQzRcXHU2RjA2XFx1NjdEMlxcdTZDOEZcXHU1MTc2XFx1NjhDQlxcdTU5NDdcXHU2QjY3XFx1NzU2NlxcdTVEMEVcXHU4MTEwXFx1OUY1MFxcdTY1RDdcXHU3OTQ4XFx1Nzk0MVxcdTlBOTFcXHU4RDc3XFx1NUM4MlxcdTRFNUVcXHU0RjAxXFx1NTQyRlxcdTU5NTFcXHU3ODBDXFx1NTY2OFxcdTZDMTRcXHU4RkM0XFx1NUYwM1xcdTZDN0RcXHU2Q0UzXFx1OEJBQlxcdTYzOTBcIl0sXG4gICAgICBbXCJjNzQwXCIsIFwiXFx1ODMzRVxcdTgzM0ZcXHU4MzQxXFx1ODM0MlxcdTgzNDRcXHU4MzQ1XFx1ODM0OFxcdTgzNEFcIiwgNCwgXCJcXHU4MzUzXFx1ODM1NVwiLCA0LCBcIlxcdTgzNURcXHU4MzYyXFx1ODM3MFwiLCA2LCBcIlxcdTgzNzlcXHU4MzdBXFx1ODM3RVwiLCA2LCBcIlxcdTgzODdcXHU4Mzg4XFx1ODM4QVxcdTgzOEJcXHU4MzhDXFx1ODM4RFxcdTgzOEZcXHU4MzkwXFx1ODM5MVxcdTgzOTRcXHU4Mzk1XFx1ODM5NlxcdTgzOTdcXHU4Mzk5XFx1ODM5QVxcdTgzOURcXHU4MzlGXFx1ODNBMVwiLCA2LCBcIlxcdTgzQUNcXHU4M0FEXFx1ODNBRVwiXSxcbiAgICAgIFtcImM3ODBcIiwgXCJcXHU4M0FGXFx1ODNCNVxcdTgzQkJcXHU4M0JFXFx1ODNCRlxcdTgzQzJcXHU4M0MzXFx1ODNDNFxcdTgzQzZcXHU4M0M4XFx1ODNDOVxcdTgzQ0JcXHU4M0NEXFx1ODNDRVxcdTgzRDBcXHU4M0QxXFx1ODNEMlxcdTgzRDNcXHU4M0Q1XFx1ODNEN1xcdTgzRDlcXHU4M0RBXFx1ODNEQlxcdTgzREVcXHU4M0UyXFx1ODNFM1xcdTgzRTRcXHU4M0U2XFx1ODNFN1xcdTgzRThcXHU4M0VCXFx1ODNFQ1xcdTgzRURcXHU2MDcwXFx1NkQzRFxcdTcyNzVcXHU2MjY2XFx1OTQ4RVxcdTk0QzVcXHU1MzQzXFx1OEZDMVxcdTdCN0VcXHU0RURGXFx1OEMyNlxcdTRFN0VcXHU5RUQ0XFx1OTRCMVxcdTk0QjNcXHU1MjREXFx1NkY1Q1xcdTkwNjNcXHU2RDQ1XFx1OEMzNFxcdTU4MTFcXHU1RDRDXFx1NkIyMFxcdTZCNDlcXHU2N0FBXFx1NTQ1QlxcdTgxNTRcXHU3RjhDXFx1NTg5OVxcdTg1MzdcXHU1RjNBXFx1NjJBMlxcdTZBNDdcXHU5NTM5XFx1NjU3MlxcdTYwODRcXHU2ODY1XFx1NzdBN1xcdTRFNTRcXHU0RkE4XFx1NURFN1xcdTk3OThcXHU2NEFDXFx1N0ZEOFxcdTVDRURcXHU0RkNGXFx1N0E4RFxcdTUyMDdcXHU4MzA0XFx1NEUxNFxcdTYwMkZcXHU3QTgzXFx1OTRBNlxcdTRGQjVcXHU0RUIyXFx1NzlFNlxcdTc0MzRcXHU1MkU0XFx1ODJCOVxcdTY0RDJcXHU3OUJEXFx1NUJERFxcdTZDODFcXHU5NzUyXFx1OEY3QlxcdTZDMjJcXHU1MDNFXFx1NTM3RlxcdTZFMDVcXHU2NENFXFx1NjY3NFxcdTZDMzBcXHU2MEM1XFx1OTg3N1xcdThCRjdcXHU1RTg2XFx1NzQzQ1xcdTdBNzdcXHU3OUNCXFx1NEUxOFxcdTkwQjFcXHU3NDAzXFx1NkM0MlxcdTU2REFcXHU5MTRCXFx1NkNDNVxcdThEOEJcXHU1MzNBXFx1ODZDNlxcdTY2RjJcXHU4RUFGXFx1NUM0OFxcdTlBNzFcXHU2RTIwXCJdLFxuICAgICAgW1wiYzg0MFwiLCBcIlxcdTgzRUVcXHU4M0VGXFx1ODNGM1wiLCA0LCBcIlxcdTgzRkFcXHU4M0ZCXFx1ODNGQ1xcdTgzRkVcXHU4M0ZGXFx1ODQwMFxcdTg0MDJcXHU4NDA1XFx1ODQwN1xcdTg0MDhcXHU4NDA5XFx1ODQwQVxcdTg0MTBcXHU4NDEyXCIsIDUsIFwiXFx1ODQxOVxcdTg0MUFcXHU4NDFCXFx1ODQxRVwiLCA1LCBcIlxcdTg0MjlcIiwgNywgXCJcXHU4NDMyXCIsIDUsIFwiXFx1ODQzOVxcdTg0M0FcXHU4NDNCXFx1ODQzRVwiLCA3LCBcIlxcdTg0NDdcXHU4NDQ4XFx1ODQ0OVwiXSxcbiAgICAgIFtcImM4ODBcIiwgXCJcXHU4NDRBXCIsIDYsIFwiXFx1ODQ1MlwiLCA0LCBcIlxcdTg0NThcXHU4NDVEXFx1ODQ1RVxcdTg0NUZcXHU4NDYwXFx1ODQ2MlxcdTg0NjRcIiwgNCwgXCJcXHU4NDZBXFx1ODQ2RVxcdTg0NkZcXHU4NDcwXFx1ODQ3MlxcdTg0NzRcXHU4NDc3XFx1ODQ3OVxcdTg0N0JcXHU4NDdDXFx1NTNENlxcdTVBMzZcXHU5RjhCXFx1OERBM1xcdTUzQkJcXHU1NzA4XFx1OThBN1xcdTY3NDNcXHU5MTlCXFx1NkNDOVxcdTUxNjhcXHU3NUNBXFx1NjJGM1xcdTcyQUNcXHU1MjM4XFx1NTI5RFxcdTdGM0FcXHU3MDk0XFx1NzYzOFxcdTUzNzRcXHU5RTRBXFx1NjlCN1xcdTc4NkVcXHU5NkMwXFx1ODhEOVxcdTdGQTRcXHU3MTM2XFx1NzFDM1xcdTUxODlcXHU2N0QzXFx1NzRFNFxcdTU4RTRcXHU2NTE4XFx1NTZCN1xcdThCQTlcXHU5OTc2XFx1NjI3MFxcdTdFRDVcXHU2MEY5XFx1NzBFRFxcdTU4RUNcXHU0RUMxXFx1NEVCQVxcdTVGQ0RcXHU5N0U3XFx1NEVGQlxcdThCQTRcXHU1MjAzXFx1NTk4QVxcdTdFQUJcXHU2MjU0XFx1NEVDRFxcdTY1RTVcXHU2MjBFXFx1ODMzOFxcdTg0QzlcXHU4MzYzXFx1ODc4RFxcdTcxOTRcXHU2RUI2XFx1NUJCOVxcdTdFRDJcXHU1MTk3XFx1NjNDOVxcdTY3RDRcXHU4MDg5XFx1ODMzOVxcdTg4MTVcXHU1MTEyXFx1NUI3QVxcdTU5ODJcXHU4RkIxXFx1NEU3M1xcdTZDNURcXHU1MTY1XFx1ODkyNVxcdThGNkZcXHU5NjJFXFx1ODU0QVxcdTc0NUVcXHU5NTEwXFx1OTVGMFxcdTZEQTZcXHU4MkU1XFx1NUYzMVxcdTY0OTJcXHU2RDEyXFx1ODQyOFxcdTgxNkVcXHU5Q0MzXFx1NTg1RVxcdThENUJcXHU0RTA5XFx1NTNDMVwiXSxcbiAgICAgIFtcImM5NDBcIiwgXCJcXHU4NDdEXCIsIDQsIFwiXFx1ODQ4M1xcdTg0ODRcXHU4NDg1XFx1ODQ4NlxcdTg0OEFcXHU4NDhEXFx1ODQ4RlwiLCA3LCBcIlxcdTg0OThcXHU4NDlBXFx1ODQ5QlxcdTg0OURcXHU4NDlFXFx1ODQ5RlxcdTg0QTBcXHU4NEEyXCIsIDEyLCBcIlxcdTg0QjBcXHU4NEIxXFx1ODRCM1xcdTg0QjVcXHU4NEI2XFx1ODRCN1xcdTg0QkJcXHU4NEJDXFx1ODRCRVxcdTg0QzBcXHU4NEMyXFx1ODRDM1xcdTg0QzVcXHU4NEM2XFx1ODRDN1xcdTg0QzhcXHU4NENCXFx1ODRDQ1xcdTg0Q0VcXHU4NENGXFx1ODREMlxcdTg0RDRcXHU4NEQ1XFx1ODREN1wiXSxcbiAgICAgIFtcImM5ODBcIiwgXCJcXHU4NEQ4XCIsIDQsIFwiXFx1ODRERVxcdTg0RTFcXHU4NEUyXFx1ODRFNFxcdTg0RTdcIiwgNCwgXCJcXHU4NEVEXFx1ODRFRVxcdTg0RUZcXHU4NEYxXCIsIDEwLCBcIlxcdTg0RkRcXHU4NEZFXFx1ODUwMFxcdTg1MDFcXHU4NTAyXFx1NEYxRVxcdTY1NjNcXHU2ODUxXFx1NTVEM1xcdTRFMjdcXHU2NDE0XFx1OUE5QVxcdTYyNkJcXHU1QUMyXFx1NzQ1RlxcdTgyNzJcXHU2REE5XFx1NjhFRVxcdTUwRTdcXHU4MzhFXFx1NzgwMlxcdTY3NDBcXHU1MjM5XFx1NkM5OVxcdTdFQjFcXHU1MEJCXFx1NTU2NVxcdTcxNUVcXHU3QjVCXFx1NjY1MlxcdTczQ0FcXHU4MkVCXFx1Njc0OVxcdTVDNzFcXHU1MjIwXFx1NzE3RFxcdTg4NkJcXHU5NUVBXFx1OTY1NVxcdTY0QzVcXHU4RDYxXFx1ODFCM1xcdTU1ODRcXHU2QzU1XFx1NjI0N1xcdTdGMkVcXHU1ODkyXFx1NEYyNFxcdTU1NDZcXHU4RDRGXFx1NjY0Q1xcdTRFMEFcXHU1QzFBXFx1ODhGM1xcdTY4QTJcXHU2MzRFXFx1N0EwRFxcdTcwRTdcXHU4MjhEXFx1NTJGQVxcdTk3RjZcXHU1QzExXFx1NTRFOFxcdTkwQjVcXHU3RUNEXFx1NTk2MlxcdThENEFcXHU4NkM3XFx1ODIwQ1xcdTgyMERcXHU4RDY2XFx1NjQ0NFxcdTVDMDRcXHU2MTUxXFx1NkQ4OVxcdTc5M0VcXHU4QkJFXFx1NzgzN1xcdTc1MzNcXHU1NDdCXFx1NEYzOFxcdThFQUJcXHU2REYxXFx1NUEyMFxcdTdFQzVcXHU3OTVFXFx1NkM4OFxcdTVCQTFcXHU1QTc2XFx1NzUxQVxcdTgwQkVcXHU2MTRFXFx1NkUxN1xcdTU4RjBcXHU3NTFGXFx1NzUyNVxcdTcyNzJcXHU1MzQ3XFx1N0VGM1wiXSxcbiAgICAgIFtcImNhNDBcIiwgXCJcXHU4NTAzXCIsIDgsIFwiXFx1ODUwRFxcdTg1MEVcXHU4NTBGXFx1ODUxMFxcdTg1MTJcXHU4NTE0XFx1ODUxNVxcdTg1MTZcXHU4NTE4XFx1ODUxOVxcdTg1MUJcXHU4NTFDXFx1ODUxRFxcdTg1MUVcXHU4NTIwXFx1ODUyMlwiLCA4LCBcIlxcdTg1MkRcIiwgOSwgXCJcXHU4NTNFXCIsIDQsIFwiXFx1ODU0NFxcdTg1NDVcXHU4NTQ2XFx1ODU0N1xcdTg1NEJcIiwgMTBdLFxuICAgICAgW1wiY2E4MFwiLCBcIlxcdTg1NTdcXHU4NTU4XFx1ODU1QVxcdTg1NUJcXHU4NTVDXFx1ODU1RFxcdTg1NUZcIiwgNCwgXCJcXHU4NTY1XFx1ODU2NlxcdTg1NjdcXHU4NTY5XCIsIDgsIFwiXFx1ODU3M1xcdTg1NzVcXHU4NTc2XFx1ODU3N1xcdTg1NzhcXHU4NTdDXFx1ODU3RFxcdTg1N0ZcXHU4NTgwXFx1ODU4MVxcdTc3MDFcXHU3NkRCXFx1NTI2OVxcdTgwRENcXHU1NzIzXFx1NUUwOFxcdTU5MzFcXHU3MkVFXFx1NjVCRFxcdTZFN0ZcXHU4QkQ3XFx1NUMzOFxcdTg2NzFcXHU1MzQxXFx1NzdGM1xcdTYyRkVcXHU2NUY2XFx1NEVDMFxcdTk4REZcXHU4NjgwXFx1NUI5RVxcdThCQzZcXHU1M0YyXFx1NzdFMlxcdTRGN0ZcXHU1QzRFXFx1OUE3NlxcdTU5Q0JcXHU1RjBGXFx1NzkzQVxcdTU4RUJcXHU0RTE2XFx1NjdGRlxcdTRFOEJcXHU2MkVEXFx1OEE5M1xcdTkwMURcXHU1MkJGXFx1NjYyRlxcdTU1RENcXHU1NjZDXFx1OTAwMlxcdTRFRDVcXHU0RjhEXFx1OTFDQVxcdTk5NzBcXHU2QzBGXFx1NUUwMlxcdTYwNDNcXHU1QkE0XFx1ODlDNlxcdThCRDVcXHU2NTM2XFx1NjI0QlxcdTk5OTZcXHU1Qjg4XFx1NUJGRlxcdTYzODhcXHU1NTJFXFx1NTNEN1xcdTc2MjZcXHU1MTdEXFx1ODUyQ1xcdTY3QTJcXHU2OEIzXFx1NkI4QVxcdTYyOTJcXHU4RjkzXFx1NTNENFxcdTgyMTJcXHU2REQxXFx1NzU4RlxcdTRFNjZcXHU4RDRFXFx1NUI3MFxcdTcxOUZcXHU4NUFGXFx1NjY5MVxcdTY2RDlcXHU3RjcyXFx1ODcwMFxcdTlFQ0RcXHU5RjIwXFx1NUM1RVxcdTY3MkZcXHU4RkYwXFx1NjgxMVxcdTY3NUZcXHU2MjBEXFx1N0FENlxcdTU4ODVcXHU1RUI2XFx1NjU3MFxcdTZGMzFcIl0sXG4gICAgICBbXCJjYjQwXCIsIFwiXFx1ODU4MlxcdTg1ODNcXHU4NTg2XFx1ODU4OFwiLCA2LCBcIlxcdTg1OTBcIiwgMTAsIFwiXFx1ODU5RFwiLCA2LCBcIlxcdTg1QTVcXHU4NUE2XFx1ODVBN1xcdTg1QTlcXHU4NUFCXFx1ODVBQ1xcdTg1QURcXHU4NUIxXCIsIDUsIFwiXFx1ODVCOFxcdTg1QkFcIiwgNiwgXCJcXHU4NUMyXCIsIDYsIFwiXFx1ODVDQVwiLCA0LCBcIlxcdTg1RDFcXHU4NUQyXCJdLFxuICAgICAgW1wiY2I4MFwiLCBcIlxcdTg1RDRcXHU4NUQ2XCIsIDUsIFwiXFx1ODVERFwiLCA2LCBcIlxcdTg1RTVcXHU4NUU2XFx1ODVFN1xcdTg1RThcXHU4NUVBXCIsIDE0LCBcIlxcdTYwNTVcXHU1MjM3XFx1ODAwRFxcdTY0NTRcXHU4ODcwXFx1NzUyOVxcdTVFMDVcXHU2ODEzXFx1NjJGNFxcdTk3MUNcXHU1M0NDXFx1NzIzRFxcdThDMDFcXHU2QzM0XFx1Nzc2MVxcdTdBMEVcXHU1NDJFXFx1NzdBQ1xcdTk4N0FcXHU4MjFDXFx1OEJGNFxcdTc4NTVcXHU2NzE0XFx1NzBDMVxcdTY1QUZcXHU2NDk1XFx1NTYzNlxcdTYwMURcXHU3OUMxXFx1NTNGOFxcdTRFMURcXHU2QjdCXFx1ODA4NlxcdTVCRkFcXHU1NUUzXFx1NTZEQlxcdTRGM0FcXHU0RjNDXFx1OTk3MlxcdTVERjNcXHU2NzdFXFx1ODAzOFxcdTYwMDJcXHU5ODgyXFx1OTAwMVxcdTVCOEJcXHU4QkJDXFx1OEJGNVxcdTY0MUNcXHU4MjU4XFx1NjRERVxcdTU1RkRcXHU4MkNGXFx1OTE2NVxcdTRGRDdcXHU3RDIwXFx1OTAxRlxcdTdDOUZcXHU1MEYzXFx1NTg1MVxcdTZFQUZcXHU1QkJGXFx1OEJDOVxcdTgwODNcXHU5MTc4XFx1ODQ5Q1xcdTdCOTdcXHU4NjdEXFx1OTY4QlxcdTk2OEZcXHU3RUU1XFx1OUFEM1xcdTc4OEVcXHU1QzgxXFx1N0E1N1xcdTkwNDJcXHU5NkE3XFx1Nzk1RlxcdTVCNTlcXHU2MzVGXFx1N0IwQlxcdTg0RDFcXHU2OEFEXFx1NTUwNlxcdTdGMjlcXHU3NDEwXFx1N0QyMlxcdTk1MDFcXHU2MjQwXFx1NTg0Q1xcdTRFRDZcXHU1QjgzXFx1NTk3OVxcdTU4NTRcIl0sXG4gICAgICBbXCJjYzQwXCIsIFwiXFx1ODVGOVxcdTg1RkFcXHU4NUZDXFx1ODVGRFxcdTg1RkVcXHU4NjAwXCIsIDQsIFwiXFx1ODYwNlwiLCAxMCwgXCJcXHU4NjEyXFx1ODYxM1xcdTg2MTRcXHU4NjE1XFx1ODYxN1wiLCAxNSwgXCJcXHU4NjI4XFx1ODYyQVwiLCAxMywgXCJcXHU4NjM5XFx1ODYzQVxcdTg2M0JcXHU4NjNEXFx1ODYzRVxcdTg2M0ZcXHU4NjQwXCJdLFxuICAgICAgW1wiY2M4MFwiLCBcIlxcdTg2NDFcIiwgMTEsIFwiXFx1ODY1MlxcdTg2NTNcXHU4NjU1XCIsIDQsIFwiXFx1ODY1QlxcdTg2NUNcXHU4NjVEXFx1ODY1RlxcdTg2NjBcXHU4NjYxXFx1ODY2M1wiLCA3LCBcIlxcdTczNkRcXHU2MzFFXFx1OEU0QlxcdThFMEZcXHU4MENFXFx1ODJENFxcdTYyQUNcXHU1M0YwXFx1NkNGMFxcdTkxNUVcXHU1OTJBXFx1NjAwMVxcdTZDNzBcXHU1NzREXFx1NjQ0QVxcdThEMkFcXHU3NjJCXFx1NkVFOVxcdTU3NUJcXHU2QTgwXFx1NzVGMFxcdTZGNkRcXHU4QzJEXFx1OEMwOFxcdTU3NjZcXHU2QkVGXFx1ODg5MlxcdTc4QjNcXHU2M0EyXFx1NTNGOVxcdTcwQURcXHU2QzY0XFx1NTg1OFxcdTY0MkFcXHU1ODAyXFx1NjhFMFxcdTgxOUJcXHU1NTEwXFx1N0NENlxcdTUwMThcXHU4RUJBXFx1NkRDQ1xcdThEOUZcXHU3MEVCXFx1NjM4RlxcdTZEOUJcXHU2RUQ0XFx1N0VFNlxcdTg0MDRcXHU2ODQzXFx1OTAwM1xcdTZERDhcXHU5Njc2XFx1OEJBOFxcdTU5NTdcXHU3Mjc5XFx1ODVFNFxcdTgxN0VcXHU3NUJDXFx1OEE4QVxcdTY4QUZcXHU1MjU0XFx1OEUyMlxcdTk1MTFcXHU2M0QwXFx1OTg5OFxcdThFNDRcXHU1NTdDXFx1NEY1M1xcdTY2RkZcXHU1NjhGXFx1NjBENVxcdTZEOTVcXHU1MjQzXFx1NUM0OVxcdTU5MjlcXHU2REZCXFx1NTg2QlxcdTc1MzBcXHU3NTFDXFx1NjA2Q1xcdTgyMTRcXHU4MTQ2XFx1NjMxMVxcdTY3NjFcXHU4RkUyXFx1NzczQVxcdThERjNcXHU4RDM0XFx1OTRDMVxcdTVFMTZcXHU1Mzg1XFx1NTQyQ1xcdTcwQzNcIl0sXG4gICAgICBbXCJjZDQwXCIsIFwiXFx1ODY2RFxcdTg2NkZcXHU4NjcwXFx1ODY3MlwiLCA2LCBcIlxcdTg2ODNcIiwgNiwgXCJcXHU4NjhFXCIsIDQsIFwiXFx1ODY5NFxcdTg2OTZcIiwgNSwgXCJcXHU4NjlFXCIsIDQsIFwiXFx1ODZBNVxcdTg2QTZcXHU4NkFCXFx1ODZBRFxcdTg2QUVcXHU4NkIyXFx1ODZCM1xcdTg2QjdcXHU4NkI4XFx1ODZCOVxcdTg2QkJcIiwgNCwgXCJcXHU4NkMxXFx1ODZDMlxcdTg2QzNcXHU4NkM1XFx1ODZDOFxcdTg2Q0NcXHU4NkNEXFx1ODZEMlxcdTg2RDNcXHU4NkQ1XFx1ODZENlxcdTg2RDdcXHU4NkRBXFx1ODZEQ1wiXSxcbiAgICAgIFtcImNkODBcIiwgXCJcXHU4NkREXFx1ODZFMFxcdTg2RTFcXHU4NkUyXFx1ODZFM1xcdTg2RTVcXHU4NkU2XFx1ODZFN1xcdTg2RThcXHU4NkVBXFx1ODZFQlxcdTg2RUNcXHU4NkVGXFx1ODZGNVxcdTg2RjZcXHU4NkY3XFx1ODZGQVxcdTg2RkJcXHU4NkZDXFx1ODZGRFxcdTg2RkZcXHU4NzAxXFx1ODcwNFxcdTg3MDVcXHU4NzA2XFx1ODcwQlxcdTg3MENcXHU4NzBFXFx1ODcwRlxcdTg3MTBcXHU4NzExXFx1ODcxNFxcdTg3MTZcXHU2QzQwXFx1NUVGN1xcdTUwNUNcXHU0RUFEXFx1NUVBRFxcdTYzM0FcXHU4MjQ3XFx1OTAxQVxcdTY4NTBcXHU5MTZFXFx1NzdCM1xcdTU0MENcXHU5NERDXFx1NUY2NFxcdTdBRTVcXHU2ODc2XFx1NjM0NVxcdTdCNTJcXHU3RURGXFx1NzVEQlxcdTUwNzdcXHU2Mjk1XFx1NTkzNFxcdTkwMEZcXHU1MUY4XFx1NzlDM1xcdTdBODFcXHU1NkZFXFx1NUY5MlxcdTkwMTRcXHU2RDgyXFx1NUM2MFxcdTU3MUZcXHU1NDEwXFx1NTE1NFxcdTZFNERcXHU1NkUyXFx1NjNBOFxcdTk4OTNcXHU4MTdGXFx1ODcxNVxcdTg5MkFcXHU5MDAwXFx1NTQxRVxcdTVDNkZcXHU4MUMwXFx1NjJENlxcdTYyNThcXHU4MTMxXFx1OUUzNVxcdTk2NDBcXHU5QTZFXFx1OUE3Q1xcdTY5MkRcXHU1OUE1XFx1NjJEM1xcdTU1M0VcXHU2MzE2XFx1NTRDN1xcdTg2RDlcXHU2RDNDXFx1NUEwM1xcdTc0RTZcXHU4ODlDXFx1NkI2QVxcdTU5MTZcXHU4QzRDXFx1NUYyRlxcdTZFN0VcXHU3M0E5XFx1OTg3RFxcdTRFMzhcXHU3MEY3XFx1NUI4Q1xcdTc4OTdcXHU2MzNEXFx1NjY1QVxcdTc2OTZcXHU2MENCXFx1NUI5QlxcdTVBNDlcXHU0RTA3XFx1ODE1NVxcdTZDNkFcXHU3MzhCXFx1NEVBMVxcdTY3ODlcXHU3RjUxXFx1NUY4MFxcdTY1RkFcXHU2NzFCXFx1NUZEOFxcdTU5ODRcXHU1QTAxXCJdLFxuICAgICAgW1wiY2U0MFwiLCBcIlxcdTg3MTlcXHU4NzFCXFx1ODcxRFxcdTg3MUZcXHU4NzIwXFx1ODcyNFxcdTg3MjZcXHU4NzI3XFx1ODcyOFxcdTg3MkFcXHU4NzJCXFx1ODcyQ1xcdTg3MkRcXHU4NzJGXFx1ODczMFxcdTg3MzJcXHU4NzMzXFx1ODczNVxcdTg3MzZcXHU4NzM4XFx1ODczOVxcdTg3M0FcXHU4NzNDXFx1ODczRFxcdTg3NDBcIiwgNiwgXCJcXHU4NzRBXFx1ODc0QlxcdTg3NERcXHU4NzRGXFx1ODc1MFxcdTg3NTFcXHU4NzUyXFx1ODc1NFxcdTg3NTVcXHU4NzU2XFx1ODc1OFxcdTg3NUFcIiwgNSwgXCJcXHU4NzYxXFx1ODc2MlxcdTg3NjZcIiwgNywgXCJcXHU4NzZGXFx1ODc3MVxcdTg3NzJcXHU4NzczXFx1ODc3NVwiXSxcbiAgICAgIFtcImNlODBcIiwgXCJcXHU4Nzc3XFx1ODc3OFxcdTg3NzlcXHU4NzdBXFx1ODc3RlxcdTg3ODBcXHU4NzgxXFx1ODc4NFxcdTg3ODZcXHU4Nzg3XFx1ODc4OVxcdTg3OEFcXHU4NzhDXFx1ODc4RVwiLCA0LCBcIlxcdTg3OTRcXHU4Nzk1XFx1ODc5NlxcdTg3OThcIiwgNiwgXCJcXHU4N0EwXCIsIDQsIFwiXFx1NURDRFxcdTVGQUVcXHU1MzcxXFx1OTdFNlxcdThGRERcXHU2ODQ1XFx1NTZGNFxcdTU1MkZcXHU2MERGXFx1NEUzQVxcdTZGNERcXHU3RUY0XFx1ODJDN1xcdTg0MEVcXHU1OUQ0XFx1NEYxRlxcdTRGMkFcXHU1QzNFXFx1N0VBQ1xcdTY3MkFcXHU4NTFBXFx1NTQ3M1xcdTc1NEZcXHU4MEMzXFx1NTU4MlxcdTlCNEZcXHU0RjREXFx1NkUyRFxcdThDMTNcXHU1QzA5XFx1NjE3MFxcdTUzNkJcXHU3NjFGXFx1NkUyOVxcdTg2OEFcXHU2NTg3XFx1OTVGQlxcdTdFQjlcXHU1NDNCXFx1N0EzM1xcdTdEMEFcXHU5NUVFXFx1NTVFMVxcdTdGQzFcXHU3NEVFXFx1NjMxRFxcdTg3MTdcXHU2REExXFx1N0E5RFxcdTYyMTFcXHU2NUExXFx1NTM2N1xcdTYzRTFcXHU2QzgzXFx1NURFQlxcdTU0NUNcXHU5NEE4XFx1NEU0Q1xcdTZDNjFcXHU4QkVDXFx1NUM0QlxcdTY1RTBcXHU4MjlDXFx1NjhBN1xcdTU0M0VcXHU1NDM0XFx1NkJDQlxcdTZCNjZcXHU0RTk0XFx1NjM0MlxcdTUzNDhcXHU4MjFFXFx1NEYwRFxcdTRGQUVcXHU1NzVFXFx1NjIwQVxcdTk2RkVcXHU2NjY0XFx1NzI2OVxcdTUyRkZcXHU1MkExXFx1NjA5RlxcdThCRUZcXHU2NjE0XFx1NzE5OVxcdTY3OTBcXHU4OTdGXFx1Nzg1MlxcdTc3RkRcXHU2NjcwXFx1NTYzQlxcdTU0MzhcXHU5NTIxXFx1NzI3QVwiXSxcbiAgICAgIFtcImNmNDBcIiwgXCJcXHU4N0E1XFx1ODdBNlxcdTg3QTdcXHU4N0E5XFx1ODdBQVxcdTg3QUVcXHU4N0IwXFx1ODdCMVxcdTg3QjJcXHU4N0I0XFx1ODdCNlxcdTg3QjdcXHU4N0I4XFx1ODdCOVxcdTg3QkJcXHU4N0JDXFx1ODdCRVxcdTg3QkZcXHU4N0MxXCIsIDQsIFwiXFx1ODdDN1xcdTg3QzhcXHU4N0M5XFx1ODdDQ1wiLCA0LCBcIlxcdTg3RDRcIiwgNiwgXCJcXHU4N0RDXFx1ODdERFxcdTg3REVcXHU4N0RGXFx1ODdFMVxcdTg3RTJcXHU4N0UzXFx1ODdFNFxcdTg3RTZcXHU4N0U3XFx1ODdFOFxcdTg3RTlcXHU4N0VCXFx1ODdFQ1xcdTg3RURcXHU4N0VGXCIsIDldLFxuICAgICAgW1wiY2Y4MFwiLCBcIlxcdTg3RkFcXHU4N0ZCXFx1ODdGQ1xcdTg3RkRcXHU4N0ZGXFx1ODgwMFxcdTg4MDFcXHU4ODAyXFx1ODgwNFwiLCA1LCBcIlxcdTg4MEJcIiwgNywgXCJcXHU4ODE0XFx1ODgxN1xcdTg4MThcXHU4ODE5XFx1ODgxQVxcdTg4MUNcIiwgNCwgXCJcXHU4ODIzXFx1N0EwMFxcdTYwNkZcXHU1RTBDXFx1NjA4OVxcdTgxOURcXHU1OTE1XFx1NjBEQ1xcdTcxODRcXHU3MEVGXFx1NkVBQVxcdTZDNTBcXHU3MjgwXFx1NkE4NFxcdTg4QURcXHU1RTJEXFx1NEU2MFxcdTVBQjNcXHU1NTlDXFx1OTRFM1xcdTZEMTdcXHU3Q0ZCXFx1OTY5OVxcdTYyMEZcXHU3RUM2XFx1Nzc4RVxcdTg2N0VcXHU1MzIzXFx1OTcxRVxcdThGOTZcXHU2Njg3XFx1NUNFMVxcdTRGQTBcXHU3MkVEXFx1NEUwQlxcdTUzQTZcXHU1OTBGXFx1NTQxM1xcdTYzODBcXHU5NTI4XFx1NTE0OFxcdTRFRDlcXHU5QzlDXFx1N0VBNFxcdTU0QjhcXHU4RDI0XFx1ODg1NFxcdTgyMzdcXHU5NUYyXFx1NkQ4RVxcdTVGMjZcXHU1QUNDXFx1NjYzRVxcdTk2NjlcXHU3M0IwXFx1NzMyRVxcdTUzQkZcXHU4MTdBXFx1OTk4NVxcdTdGQTFcXHU1QkFBXFx1OTY3N1xcdTk2NTBcXHU3RUJGXFx1NzZGOFxcdTUzQTJcXHU5NTc2XFx1OTk5OVxcdTdCQjFcXHU4OTQ0XFx1NkU1OFxcdTRFNjFcXHU3RkQ0XFx1Nzk2NVxcdThCRTZcXHU2MEYzXFx1NTRDRFxcdTRFQUJcXHU5ODc5XFx1NURGN1xcdTZBNjFcXHU1MENGXFx1NTQxMVxcdThDNjFcXHU4NDI3XFx1Nzg1RFxcdTk3MDRcXHU1MjRBXFx1NTRFRVxcdTU2QTNcXHU5NTAwXFx1NkQ4OFxcdTVCQjVcXHU2REM2XFx1NjY1M1wiXSxcbiAgICAgIFtcImQwNDBcIiwgXCJcXHU4ODI0XCIsIDEzLCBcIlxcdTg4MzNcIiwgNSwgXCJcXHU4ODNBXFx1ODgzQlxcdTg4M0RcXHU4ODNFXFx1ODgzRlxcdTg4NDFcXHU4ODQyXFx1ODg0M1xcdTg4NDZcIiwgNSwgXCJcXHU4ODRFXCIsIDUsIFwiXFx1ODg1NVxcdTg4NTZcXHU4ODU4XFx1ODg1QVwiLCA2LCBcIlxcdTg4NjZcXHU4ODY3XFx1ODg2QVxcdTg4NkRcXHU4ODZGXFx1ODg3MVxcdTg4NzNcXHU4ODc0XFx1ODg3NVxcdTg4NzZcXHU4ODc4XFx1ODg3OVxcdTg4N0FcIl0sXG4gICAgICBbXCJkMDgwXCIsIFwiXFx1ODg3QlxcdTg4N0NcXHU4ODgwXFx1ODg4M1xcdTg4ODZcXHU4ODg3XFx1ODg4OVxcdTg4OEFcXHU4ODhDXFx1ODg4RVxcdTg4OEZcXHU4ODkwXFx1ODg5MVxcdTg4OTNcXHU4ODk0XFx1ODg5NVxcdTg4OTdcIiwgNCwgXCJcXHU4ODlEXCIsIDQsIFwiXFx1ODhBM1xcdTg4QTVcIiwgNSwgXCJcXHU1QzBGXFx1NUI1RFxcdTY4MjFcXHU4MDk2XFx1NTU3OFxcdTdCMTFcXHU2NTQ4XFx1Njk1NFxcdTRFOUJcXHU2QjQ3XFx1ODc0RVxcdTk3OEJcXHU1MzRGXFx1NjMxRlxcdTY0M0FcXHU5MEFBXFx1NjU5Q1xcdTgwQzFcXHU4QzEwXFx1NTE5OVxcdTY4QjBcXHU1Mzc4XFx1ODdGOVxcdTYxQzhcXHU2Q0M0XFx1NkNGQlxcdThDMjJcXHU1QzUxXFx1ODVBQVxcdTgyQUZcXHU5NTBDXFx1NkIyM1xcdThGOUJcXHU2NUIwXFx1NUZGQlxcdTVGQzNcXHU0RkUxXFx1ODg0NVxcdTY2MUZcXHU4MTY1XFx1NzMyOVxcdTYwRkFcXHU1MTc0XFx1NTIxMVxcdTU3OEJcXHU1RjYyXFx1OTBBMlxcdTg4NENcXHU5MTkyXFx1NUU3OFxcdTY3NEZcXHU2MDI3XFx1NTlEM1xcdTUxNDRcXHU1MUY2XFx1ODBGOFxcdTUzMDhcXHU2Qzc5XFx1OTZDNFxcdTcxOEFcXHU0RjExXFx1NEZFRVxcdTdGOUVcXHU2NzNEXFx1NTVDNVxcdTk1MDhcXHU3OUMwXFx1ODg5NlxcdTdFRTNcXHU1ODlGXFx1NjIwQ1xcdTk3MDBcXHU4NjVBXFx1NTYxOFxcdTk4N0JcXHU1RjkwXFx1OEJCOFxcdTg0QzRcXHU5MTU3XFx1NTNEOVxcdTY1RURcXHU1RThGXFx1NzU1Q1xcdTYwNjRcXHU3RDZFXFx1NUE3RlxcdTdFRUFcXHU3RUVEXFx1OEY2OVxcdTU1QTdcXHU1QkEzXFx1NjBBQ1xcdTY1Q0JcXHU3Mzg0XCJdLFxuICAgICAgW1wiZDE0MFwiLCBcIlxcdTg4QUNcXHU4OEFFXFx1ODhBRlxcdTg4QjBcXHU4OEIyXCIsIDQsIFwiXFx1ODhCOFxcdTg4QjlcXHU4OEJBXFx1ODhCQlxcdTg4QkRcXHU4OEJFXFx1ODhCRlxcdTg4QzBcXHU4OEMzXFx1ODhDNFxcdTg4QzdcXHU4OEM4XFx1ODhDQVxcdTg4Q0JcXHU4OENDXFx1ODhDRFxcdTg4Q0ZcXHU4OEQwXFx1ODhEMVxcdTg4RDNcXHU4OEQ2XFx1ODhEN1xcdTg4REFcIiwgNCwgXCJcXHU4OEUwXFx1ODhFMVxcdTg4RTZcXHU4OEU3XFx1ODhFOVwiLCA2LCBcIlxcdTg4RjJcXHU4OEY1XFx1ODhGNlxcdTg4RjdcXHU4OEZBXFx1ODhGQlxcdTg4RkRcXHU4OEZGXFx1ODkwMFxcdTg5MDFcXHU4OTAzXCIsIDVdLFxuICAgICAgW1wiZDE4MFwiLCBcIlxcdTg5MDlcXHU4OTBCXCIsIDQsIFwiXFx1ODkxMVxcdTg5MTRcIiwgNCwgXCJcXHU4OTFDXCIsIDQsIFwiXFx1ODkyMlxcdTg5MjNcXHU4OTI0XFx1ODkyNlxcdTg5MjdcXHU4OTI4XFx1ODkyOVxcdTg5MkNcXHU4OTJEXFx1ODkyRVxcdTg5MkZcXHU4OTMxXFx1ODkzMlxcdTg5MzNcXHU4OTM1XFx1ODkzN1xcdTkwMDlcXHU3NjYzXFx1NzcyOVxcdTdFREFcXHU5Nzc0XFx1ODU5QlxcdTVCNjZcXHU3QTc0XFx1OTZFQVxcdTg4NDBcXHU1MkNCXFx1NzE4RlxcdTVGQUFcXHU2NUVDXFx1OEJFMlxcdTVCRkJcXHU5QTZGXFx1NURFMVxcdTZCODlcXHU2QzVCXFx1OEJBRFxcdThCQUZcXHU5MDBBXFx1OEZDNVxcdTUzOEJcXHU2MkJDXFx1OUUyNlxcdTlFMkRcXHU1NDQwXFx1NEUyQlxcdTgyQkRcXHU3MjU5XFx1ODY5Q1xcdTVEMTZcXHU4ODU5XFx1NkRBRlxcdTk2QzVcXHU1NEQxXFx1NEU5QVxcdThCQjZcXHU3MTA5XFx1NTRCRFxcdTk2MDlcXHU3MERGXFx1NkRGOVxcdTc2RDBcXHU0RTI1XFx1NzgxNFxcdTg3MTJcXHU1Q0E5XFx1NUVGNlxcdThBMDBcXHU5ODlDXFx1OTYwRVxcdTcwOEVcXHU2Q0JGXFx1NTk0NFxcdTYzQTlcXHU3NzNDXFx1ODg0RFxcdTZGMTRcXHU4MjczXFx1NTgzMFxcdTcxRDVcXHU1MzhDXFx1NzgxQVxcdTk2QzFcXHU1NTAxXFx1NUY2NlxcdTcxMzBcXHU1QkI0XFx1OEMxQVxcdTlBOENcXHU2QjgzXFx1NTkyRVxcdTlFMkZcXHU3OUU3XFx1Njc2OFxcdTYyNkNcXHU0RjZGXFx1NzVBMVxcdTdGOEFcXHU2RDBCXFx1OTYzM1xcdTZDMjdcXHU0RUYwXFx1NzVEMlxcdTUxN0JcXHU2ODM3XFx1NkYzRVxcdTkwODBcXHU4MTcwXFx1NTk5NlxcdTc0NzZcIl0sXG4gICAgICBbXCJkMjQwXCIsIFwiXFx1ODkzOFwiLCA4LCBcIlxcdTg5NDJcXHU4OTQzXFx1ODk0NVwiLCAyNCwgXCJcXHU4OTYwXCIsIDUsIFwiXFx1ODk2N1wiLCAxOSwgXCJcXHU4OTdDXCJdLFxuICAgICAgW1wiZDI4MFwiLCBcIlxcdTg5N0RcXHU4OTdFXFx1ODk4MFxcdTg5ODJcXHU4OTg0XFx1ODk4NVxcdTg5ODdcIiwgMjYsIFwiXFx1NjQ0N1xcdTVDMjdcXHU5MDY1XFx1N0E5MVxcdThDMjNcXHU1OURBXFx1NTRBQ1xcdTgyMDBcXHU4MzZGXFx1ODk4MVxcdTgwMDBcXHU2OTMwXFx1NTY0RVxcdTgwMzZcXHU3MjM3XFx1OTFDRVxcdTUxQjZcXHU0RTVGXFx1OTg3NVxcdTYzOTZcXHU0RTFBXFx1NTNGNlxcdTY2RjNcXHU4MTRCXFx1NTkxQ1xcdTZEQjJcXHU0RTAwXFx1NThGOVxcdTUzM0JcXHU2M0Q2XFx1OTRGMVxcdTRGOURcXHU0RjBBXFx1ODg2M1xcdTk4OTBcXHU1OTM3XFx1OTA1N1xcdTc5RkJcXHU0RUVBXFx1ODBGMFxcdTc1OTFcXHU2QzgyXFx1NUI5Q1xcdTU5RThcXHU1RjVEXFx1NjkwNVxcdTg2ODFcXHU1MDFBXFx1NURGMlxcdTRFNTlcXHU3N0UzXFx1NEVFNVxcdTgyN0FcXHU2MjkxXFx1NjYxM1xcdTkwOTFcXHU1Qzc5XFx1NEVCRlxcdTVGNzlcXHU4MUM2XFx1OTAzOFxcdTgwODRcXHU3NUFCXFx1NEVBNlxcdTg4RDRcXHU2MTBGXFx1NkJDNVxcdTVGQzZcXHU0RTQ5XFx1NzZDQVxcdTZFQTJcXHU4QkUzXFx1OEJBRVxcdThDMEFcXHU4QkQxXFx1NUYwMlxcdTdGRkNcXHU3RkNDXFx1N0VDRVxcdTgzMzVcXHU4MzZCXFx1NTZFMFxcdTZCQjdcXHU5N0YzXFx1OTYzNFxcdTU5RkJcXHU1NDFGXFx1OTRGNlxcdTZERUJcXHU1QkM1XFx1OTk2RVxcdTVDMzlcXHU1RjE1XFx1OTY5MFwiXSxcbiAgICAgIFtcImQzNDBcIiwgXCJcXHU4OUEyXCIsIDMwLCBcIlxcdTg5QzNcXHU4OUNEXFx1ODlEM1xcdTg5RDRcXHU4OUQ1XFx1ODlEN1xcdTg5RDhcXHU4OUQ5XFx1ODlEQlxcdTg5RERcXHU4OURGXFx1ODlFMFxcdTg5RTFcXHU4OUUyXFx1ODlFNFxcdTg5RTdcXHU4OUU4XFx1ODlFOVxcdTg5RUFcXHU4OUVDXFx1ODlFRFxcdTg5RUVcXHU4OUYwXFx1ODlGMVxcdTg5RjJcXHU4OUY0XCIsIDZdLFxuICAgICAgW1wiZDM4MFwiLCBcIlxcdTg5RkJcIiwgNCwgXCJcXHU4QTAxXCIsIDUsIFwiXFx1OEEwOFwiLCAyMSwgXCJcXHU1MzcwXFx1ODJGMVxcdTZBMzFcXHU1QTc0XFx1OUU3MFxcdTVFOTRcXHU3RjI4XFx1ODNCOVxcdTg0MjRcXHU4NDI1XFx1ODM2N1xcdTg3NDdcXHU4RkNFXFx1OEQ2MlxcdTc2QzhcXHU1RjcxXFx1OTg5NlxcdTc4NkNcXHU2NjIwXFx1NTRERlxcdTYyRTVcXHU0RjYzXFx1ODFDM1xcdTc1QzhcXHU1RUI4XFx1OTZDRFxcdThFMEFcXHU4NkY5XFx1NTQ4RlxcdTZDRjNcXHU2RDhDXFx1NkMzOFxcdTYwN0ZcXHU1MkM3XFx1NzUyOFxcdTVFN0RcXHU0RjE4XFx1NjBBMFxcdTVGRTdcXHU1QzI0XFx1NzUzMVxcdTkwQUVcXHU5NEMwXFx1NzJCOVxcdTZDQjlcXHU2RTM4XFx1OTE0OVxcdTY3MDlcXHU1M0NCXFx1NTNGM1xcdTRGNTFcXHU5MUM5XFx1OEJGMVxcdTUzQzhcXHU1RTdDXFx1OEZDMlxcdTZERTRcXHU0RThFXFx1NzZDMlxcdTY5ODZcXHU4NjVFXFx1NjExQVxcdTgyMDZcXHU0RjU5XFx1NEZERVxcdTkwM0VcXHU5QzdDXFx1NjEwOVxcdTZFMURcXHU2RTE0XFx1OTY4NVxcdTRFODhcXHU1QTMxXFx1OTZFOFxcdTRFMEVcXHU1QzdGXFx1NzlCOVxcdTVCODdcXHU4QkVEXFx1N0ZCRFxcdTczODlcXHU1N0RGXFx1ODI4QlxcdTkwQzFcXHU1NDAxXFx1OTA0N1xcdTU1QkJcXHU1Q0VBXFx1NUZBMVxcdTYxMDhcXHU2QjMyXFx1NzJGMVxcdTgwQjJcXHU4QTg5XCJdLFxuICAgICAgW1wiZDQ0MFwiLCBcIlxcdThBMUVcIiwgMzEsIFwiXFx1OEEzRlwiLCA4LCBcIlxcdThBNDlcIiwgMjFdLFxuICAgICAgW1wiZDQ4MFwiLCBcIlxcdThBNUZcIiwgMjUsIFwiXFx1OEE3QVwiLCA2LCBcIlxcdTZENzRcXHU1QkQzXFx1ODhENVxcdTk4ODRcXHU4QzZCXFx1OUE2RFxcdTlFMzNcXHU2RTBBXFx1NTFBNFxcdTUxNDNcXHU1N0EzXFx1ODg4MVxcdTUzOUZcXHU2M0Y0XFx1OEY5NVxcdTU2RURcXHU1NDU4XFx1NTcwNlxcdTczM0ZcXHU2RTkwXFx1N0YxOFxcdThGRENcXHU4MkQxXFx1NjEzRlxcdTYwMjhcXHU5NjYyXFx1NjZGMFxcdTdFQTZcXHU4RDhBXFx1OERDM1xcdTk0QTVcXHU1Q0IzXFx1N0NBNFxcdTY3MDhcXHU2MEE2XFx1OTYwNVxcdTgwMThcXHU0RTkxXFx1OTBFN1xcdTUzMDBcXHU5NjY4XFx1NTE0MVxcdThGRDBcXHU4NTc0XFx1OTE1RFxcdTY2NTVcXHU5N0Y1XFx1NUI1NVxcdTUzMURcXHU3ODM4XFx1Njc0MlxcdTY4M0RcXHU1NEM5XFx1NzA3RVxcdTVCQjBcXHU4RjdEXFx1NTE4RFxcdTU3MjhcXHU1NEIxXFx1NjUxMlxcdTY2ODJcXHU4RDVFXFx1OEQ0M1xcdTgxMEZcXHU4NDZDXFx1OTA2RFxcdTdDREZcXHU1MUZGXFx1ODVGQlxcdTY3QTNcXHU2NUU5XFx1NkZBMVxcdTg2QTRcXHU4RTgxXFx1NTY2QVxcdTkwMjBcXHU3NjgyXFx1NzA3NlxcdTcxRTVcXHU4RDIzXFx1NjJFOVxcdTUyMTlcXHU2Q0ZEXFx1OEQzQ1xcdTYwMEVcXHU1ODlFXFx1NjE4RVxcdTY2RkVcXHU4RDYwXFx1NjI0RVxcdTU1QjNcXHU2RTIzXFx1NjcyRFxcdThGNjdcIl0sXG4gICAgICBbXCJkNTQwXCIsIFwiXFx1OEE4MVwiLCA3LCBcIlxcdThBOEJcIiwgNywgXCJcXHU4QTk0XCIsIDQ2XSxcbiAgICAgIFtcImQ1ODBcIiwgXCJcXHU4QUMzXCIsIDMyLCBcIlxcdTk0RTFcXHU5NUY4XFx1NzcyOFxcdTY4MDVcXHU2OUE4XFx1NTQ4QlxcdTRFNERcXHU3MEI4XFx1OEJDOFxcdTY0NThcXHU2NThCXFx1NUI4NVxcdTdBODRcXHU1MDNBXFx1NUJFOFxcdTc3QkJcXHU2QkUxXFx1OEE3OVxcdTdDOThcXHU2Q0JFXFx1NzZDRlxcdTY1QTlcXHU4Rjk3XFx1NUQyRFxcdTVDNTVcXHU4NjM4XFx1NjgwOFxcdTUzNjBcXHU2MjE4XFx1N0FEOVxcdTZFNUJcXHU3RUZEXFx1NkExRlxcdTdBRTBcXHU1RjcwXFx1NkYzM1xcdTVGMjBcXHU2MzhDXFx1NkRBOFxcdTY3NTZcXHU0RTA4XFx1NUUxMFxcdThEMjZcXHU0RUQ3XFx1ODBDMFxcdTc2MzRcXHU5NjlDXFx1NjJEQlxcdTY2MkRcXHU2MjdFXFx1NkNCQ1xcdThENzVcXHU3MTY3XFx1N0Y2OVxcdTUxNDZcXHU4MDg3XFx1NTNFQ1xcdTkwNkVcXHU2Mjk4XFx1NTRGMlxcdTg2RjBcXHU4Rjk5XFx1ODAwNVxcdTk1MTdcXHU4NTE3XFx1OEZEOVxcdTZENTlcXHU3M0NEXFx1NjU5RlxcdTc3MUZcXHU3NTA0XFx1NzgyN1xcdTgxRkJcXHU4RDFFXFx1OTQ4OFxcdTRGQTZcXHU2Nzk1XFx1NzVCOVxcdThCQ0FcXHU5NzA3XFx1NjMyRlxcdTk1NDdcXHU5NjM1XFx1ODRCOFxcdTYzMjNcXHU3NzQxXFx1NUY4MVxcdTcyRjBcXHU0RTg5XFx1NjAxNFxcdTY1NzRcXHU2MkVGXFx1NkI2M1xcdTY1M0ZcIl0sXG4gICAgICBbXCJkNjQwXCIsIFwiXFx1OEFFNFwiLCAzNCwgXCJcXHU4QjA4XCIsIDI3XSxcbiAgICAgIFtcImQ2ODBcIiwgXCJcXHU4QjI0XFx1OEIyNVxcdThCMjdcIiwgMzAsIFwiXFx1NUUyN1xcdTc1QzdcXHU5MEQxXFx1OEJDMVxcdTgyOURcXHU2NzlEXFx1NjUyRlxcdTU0MzFcXHU4NzE4XFx1NzdFNVxcdTgwQTJcXHU4MTAyXFx1NkM0MVxcdTRFNEJcXHU3RUM3XFx1ODA0Q1xcdTc2RjRcXHU2OTBEXFx1NkI5NlxcdTYyNjdcXHU1MDNDXFx1NEY4NFxcdTU3NDBcXHU2MzA3XFx1NkI2MlxcdThEQkVcXHU1M0VBXFx1NjVFOFxcdTdFQjhcXHU1RkQ3XFx1NjMxQVxcdTYzQjdcXHU4MUYzXFx1ODFGNFxcdTdGNkVcXHU1RTFDXFx1NUNEOVxcdTUyMzZcXHU2NjdBXFx1NzlFOVxcdTdBMUFcXHU4RDI4XFx1NzA5OVxcdTc1RDRcXHU2RURFXFx1NkNCQlxcdTdBOTJcXHU0RTJEXFx1NzZDNVxcdTVGRTBcXHU5NDlGXFx1ODg3N1xcdTdFQzhcXHU3OUNEXFx1ODBCRlxcdTkxQ0RcXHU0RUYyXFx1NEYxN1xcdTgyMUZcXHU1NDY4XFx1NURERVxcdTZEMzJcXHU4QkNDXFx1N0NBNVxcdThGNzRcXHU4MDk4XFx1NUUxQVxcdTU0OTJcXHU3NkIxXFx1NUI5OVxcdTY2M0NcXHU5QUE0XFx1NzNFMFxcdTY4MkFcXHU4NkRCXFx1NjczMVxcdTczMkFcXHU4QkY4XFx1OEJEQlxcdTkwMTBcXHU3QUY5XFx1NzBEQlxcdTcxNkVcXHU2MkM0XFx1NzdBOVxcdTU2MzFcXHU0RTNCXFx1ODQ1N1xcdTY3RjFcXHU1MkE5XFx1ODZDMFxcdThEMkVcXHU5NEY4XFx1N0I1MVwiXSxcbiAgICAgIFtcImQ3NDBcIiwgXCJcXHU4QjQ2XCIsIDMxLCBcIlxcdThCNjdcIiwgNCwgXCJcXHU4QjZEXCIsIDI1XSxcbiAgICAgIFtcImQ3ODBcIiwgXCJcXHU4Qjg3XCIsIDI0LCBcIlxcdThCQUNcXHU4QkIxXFx1OEJCQlxcdThCQzdcXHU4QkQwXFx1OEJFQVxcdThDMDlcXHU4QzFFXFx1NEY0RlxcdTZDRThcXHU3OTVEXFx1OUE3QlxcdTYyOTNcXHU3MjJBXFx1NjJGRFxcdTRFMTNcXHU3ODE2XFx1OEY2Q1xcdTY0QjBcXHU4RDVBXFx1N0JDNlxcdTY4NjlcXHU1RTg0XFx1ODhDNVxcdTU5ODZcXHU2NDlFXFx1NThFRVxcdTcyQjZcXHU2OTBFXFx1OTUyNVxcdThGRkRcXHU4RDU4XFx1NTc2MFxcdTdGMDBcXHU4QzA2XFx1NTFDNlxcdTYzNDlcXHU2MkQ5XFx1NTM1M1xcdTY4NENcXHU3NDIyXFx1ODMwMVxcdTkxNENcXHU1NTQ0XFx1Nzc0MFxcdTcwN0NcXHU2RDRBXFx1NTE3OVxcdTU0QThcXHU4RDQ0XFx1NTlGRlxcdTZFQ0JcXHU2REM0XFx1NUI1Q1xcdTdEMkJcXHU0RUQ0XFx1N0M3RFxcdTZFRDNcXHU1QjUwXFx1ODFFQVxcdTZFMERcXHU1QjU3XFx1OUIwM1xcdTY4RDVcXHU4RTJBXFx1NUI5N1xcdTdFRkNcXHU2MDNCXFx1N0VCNVxcdTkwQjlcXHU4RDcwXFx1NTk0RlxcdTYzQ0RcXHU3OURGXFx1OERCM1xcdTUzNTJcXHU2NUNGXFx1Nzk1NlxcdThCQzVcXHU5NjNCXFx1N0VDNFxcdTk0QkJcXHU3RTgyXFx1NTYzNFxcdTkxODlcXHU2NzAwXFx1N0Y2QVxcdTVDMEFcXHU5MDc1XFx1NjYyOFxcdTVERTZcXHU0RjUwXFx1NjdERVxcdTUwNUFcXHU0RjVDXFx1NTc1MFxcdTVFQTdcIl0sXG4gICAgICBbXCJkODQwXCIsIFwiXFx1OEMzOFwiLCA4LCBcIlxcdThDNDJcXHU4QzQzXFx1OEM0NFxcdThDNDVcXHU4QzQ4XFx1OEM0QVxcdThDNEJcXHU4QzREXCIsIDcsIFwiXFx1OEM1NlxcdThDNTdcXHU4QzU4XFx1OEM1OVxcdThDNUJcIiwgNSwgXCJcXHU4QzYzXCIsIDYsIFwiXFx1OEM2Q1wiLCA2LCBcIlxcdThDNzRcXHU4Qzc1XFx1OEM3NlxcdThDNzdcXHU4QzdCXCIsIDYsIFwiXFx1OEM4M1xcdThDODRcXHU4Qzg2XFx1OEM4N1wiXSxcbiAgICAgIFtcImQ4ODBcIiwgXCJcXHU4Qzg4XFx1OEM4QlxcdThDOERcIiwgNiwgXCJcXHU4Qzk1XFx1OEM5NlxcdThDOTdcXHU4Qzk5XCIsIDIwLCBcIlxcdTRFOERcXHU0RTBDXFx1NTE0MFxcdTRFMTBcXHU1RUZGXFx1NTM0NVxcdTRFMTVcXHU0RTk4XFx1NEUxRVxcdTlCMzJcXHU1QjZDXFx1NTY2OVxcdTRFMjhcXHU3OUJBXFx1NEUzRlxcdTUzMTVcXHU0RTQ3XFx1NTkyRFxcdTcyM0JcXHU1MzZFXFx1NkMxMFxcdTU2REZcXHU4MEU0XFx1OTk5N1xcdTZCRDNcXHU3NzdFXFx1OUYxN1xcdTRFMzZcXHU0RTlGXFx1OUYxMFxcdTRFNUNcXHU0RTY5XFx1NEU5M1xcdTgyODhcXHU1QjVCXFx1NTU2Q1xcdTU2MEZcXHU0RUM0XFx1NTM4RFxcdTUzOURcXHU1M0EzXFx1NTNBNVxcdTUzQUVcXHU5NzY1XFx1OEQ1RFxcdTUzMUFcXHU1M0Y1XFx1NTMyNlxcdTUzMkVcXHU1MzNFXFx1OEQ1Q1xcdTUzNjZcXHU1MzYzXFx1NTIwMlxcdTUyMDhcXHU1MjBFXFx1NTIyRFxcdTUyMzNcXHU1MjNGXFx1NTI0MFxcdTUyNENcXHU1MjVFXFx1NTI2MVxcdTUyNUNcXHU4NEFGXFx1NTI3RFxcdTUyODJcXHU1MjgxXFx1NTI5MFxcdTUyOTNcXHU1MTgyXFx1N0Y1NFxcdTRFQkJcXHU0RUMzXFx1NEVDOVxcdTRFQzJcXHU0RUU4XFx1NEVFMVxcdTRFRUJcXHU0RURFXFx1NEYxQlxcdTRFRjNcXHU0RjIyXFx1NEY2NFxcdTRFRjVcXHU0RjI1XFx1NEYyN1xcdTRGMDlcXHU0RjJCXFx1NEY1RVxcdTRGNjdcXHU2NTM4XFx1NEY1QVxcdTRGNURcIl0sXG4gICAgICBbXCJkOTQwXCIsIFwiXFx1OENBRVwiLCA2Ml0sXG4gICAgICBbXCJkOTgwXCIsIFwiXFx1OENFRFwiLCAzMiwgXCJcXHU0RjVGXFx1NEY1N1xcdTRGMzJcXHU0RjNEXFx1NEY3NlxcdTRGNzRcXHU0RjkxXFx1NEY4OVxcdTRGODNcXHU0RjhGXFx1NEY3RVxcdTRGN0JcXHU0RkFBXFx1NEY3Q1xcdTRGQUNcXHU0Rjk0XFx1NEZFNlxcdTRGRThcXHU0RkVBXFx1NEZDNVxcdTRGREFcXHU0RkUzXFx1NEZEQ1xcdTRGRDFcXHU0RkRGXFx1NEZGOFxcdTUwMjlcXHU1MDRDXFx1NEZGM1xcdTUwMkNcXHU1MDBGXFx1NTAyRVxcdTUwMkRcXHU0RkZFXFx1NTAxQ1xcdTUwMENcXHU1MDI1XFx1NTAyOFxcdTUwN0VcXHU1MDQzXFx1NTA1NVxcdTUwNDhcXHU1MDRFXFx1NTA2Q1xcdTUwN0JcXHU1MEE1XFx1NTBBN1xcdTUwQTlcXHU1MEJBXFx1NTBENlxcdTUxMDZcXHU1MEVEXFx1NTBFQ1xcdTUwRTZcXHU1MEVFXFx1NTEwN1xcdTUxMEJcXHU0RUREXFx1NkMzRFxcdTRGNThcXHU0RjY1XFx1NEZDRVxcdTlGQTBcXHU2QzQ2XFx1N0M3NFxcdTUxNkVcXHU1REZEXFx1OUVDOVxcdTk5OThcXHU1MTgxXFx1NTkxNFxcdTUyRjlcXHU1MzBEXFx1OEEwN1xcdTUzMTBcXHU1MUVCXFx1NTkxOVxcdTUxNTVcXHU0RUEwXFx1NTE1NlxcdTRFQjNcXHU4ODZFXFx1ODhBNFxcdTRFQjVcXHU4MTE0XFx1ODhEMlxcdTc5ODBcXHU1QjM0XFx1ODgwM1xcdTdGQjhcXHU1MUFCXFx1NTFCMVxcdTUxQkRcXHU1MUJDXCJdLFxuICAgICAgW1wiZGE0MFwiLCBcIlxcdThEMEVcIiwgMTQsIFwiXFx1OEQyMFxcdThENTFcXHU4RDUyXFx1OEQ1N1xcdThENUZcXHU4RDY1XFx1OEQ2OFxcdThENjlcXHU4RDZBXFx1OEQ2Q1xcdThENkVcXHU4RDZGXFx1OEQ3MVxcdThENzJcXHU4RDc4XCIsIDgsIFwiXFx1OEQ4MlxcdThEODNcXHU4RDg2XFx1OEQ4N1xcdThEODhcXHU4RDg5XFx1OEQ4Q1wiLCA0LCBcIlxcdThEOTJcXHU4RDkzXFx1OEQ5NVwiLCA5LCBcIlxcdThEQTBcXHU4REExXCJdLFxuICAgICAgW1wiZGE4MFwiLCBcIlxcdThEQTJcXHU4REE0XCIsIDEyLCBcIlxcdThEQjJcXHU4REI2XFx1OERCN1xcdThEQjlcXHU4REJCXFx1OERCRFxcdThEQzBcXHU4REMxXFx1OERDMlxcdThEQzVcXHU4REM3XFx1OERDOFxcdThEQzlcXHU4RENBXFx1OERDRFxcdThERDBcXHU4REQyXFx1OEREM1xcdThERDRcXHU1MUM3XFx1NTE5NlxcdTUxQTJcXHU1MUE1XFx1OEJBMFxcdThCQTZcXHU4QkE3XFx1OEJBQVxcdThCQjRcXHU4QkI1XFx1OEJCN1xcdThCQzJcXHU4QkMzXFx1OEJDQlxcdThCQ0ZcXHU4QkNFXFx1OEJEMlxcdThCRDNcXHU4QkQ0XFx1OEJENlxcdThCRDhcXHU4QkQ5XFx1OEJEQ1xcdThCREZcXHU4QkUwXFx1OEJFNFxcdThCRThcXHU4QkU5XFx1OEJFRVxcdThCRjBcXHU4QkYzXFx1OEJGNlxcdThCRjlcXHU4QkZDXFx1OEJGRlxcdThDMDBcXHU4QzAyXFx1OEMwNFxcdThDMDdcXHU4QzBDXFx1OEMwRlxcdThDMTFcXHU4QzEyXFx1OEMxNFxcdThDMTVcXHU4QzE2XFx1OEMxOVxcdThDMUJcXHU4QzE4XFx1OEMxRFxcdThDMUZcXHU4QzIwXFx1OEMyMVxcdThDMjVcXHU4QzI3XFx1OEMyQVxcdThDMkJcXHU4QzJFXFx1OEMyRlxcdThDMzJcXHU4QzMzXFx1OEMzNVxcdThDMzZcXHU1MzY5XFx1NTM3QVxcdTk2MURcXHU5NjIyXFx1OTYyMVxcdTk2MzFcXHU5NjJBXFx1OTYzRFxcdTk2M0NcXHU5NjQyXFx1OTY0OVxcdTk2NTRcXHU5NjVGXFx1OTY2N1xcdTk2NkNcXHU5NjcyXFx1OTY3NFxcdTk2ODhcXHU5NjhEXFx1OTY5N1xcdTk2QjBcXHU5MDk3XFx1OTA5QlxcdTkwOURcXHU5MDk5XFx1OTBBQ1xcdTkwQTFcXHU5MEI0XFx1OTBCM1xcdTkwQjZcXHU5MEJBXCJdLFxuICAgICAgW1wiZGI0MFwiLCBcIlxcdThERDVcXHU4REQ4XFx1OEREOVxcdThERENcXHU4REUwXFx1OERFMVxcdThERTJcXHU4REU1XFx1OERFNlxcdThERTdcXHU4REU5XFx1OERFRFxcdThERUVcXHU4REYwXFx1OERGMVxcdThERjJcXHU4REY0XFx1OERGNlxcdThERkNcXHU4REZFXCIsIDYsIFwiXFx1OEUwNlxcdThFMDdcXHU4RTA4XFx1OEUwQlxcdThFMERcXHU4RTBFXFx1OEUxMFxcdThFMTFcXHU4RTEyXFx1OEUxM1xcdThFMTVcIiwgNywgXCJcXHU4RTIwXFx1OEUyMVxcdThFMjRcIiwgNCwgXCJcXHU4RTJCXFx1OEUyRFxcdThFMzBcXHU4RTMyXFx1OEUzM1xcdThFMzRcXHU4RTM2XFx1OEUzN1xcdThFMzhcXHU4RTNCXFx1OEUzQ1xcdThFM0VcIl0sXG4gICAgICBbXCJkYjgwXCIsIFwiXFx1OEUzRlxcdThFNDNcXHU4RTQ1XFx1OEU0NlxcdThFNENcIiwgNCwgXCJcXHU4RTUzXCIsIDUsIFwiXFx1OEU1QVwiLCAxMSwgXCJcXHU4RTY3XFx1OEU2OFxcdThFNkFcXHU4RTZCXFx1OEU2RVxcdThFNzFcXHU5MEI4XFx1OTBCMFxcdTkwQ0ZcXHU5MEM1XFx1OTBCRVxcdTkwRDBcXHU5MEM0XFx1OTBDN1xcdTkwRDNcXHU5MEU2XFx1OTBFMlxcdTkwRENcXHU5MEQ3XFx1OTBEQlxcdTkwRUJcXHU5MEVGXFx1OTBGRVxcdTkxMDRcXHU5MTIyXFx1OTExRVxcdTkxMjNcXHU5MTMxXFx1OTEyRlxcdTkxMzlcXHU5MTQzXFx1OTE0NlxcdTUyMERcXHU1OTQyXFx1NTJBMlxcdTUyQUNcXHU1MkFEXFx1NTJCRVxcdTU0RkZcXHU1MkQwXFx1NTJENlxcdTUyRjBcXHU1M0RGXFx1NzFFRVxcdTc3Q0RcXHU1RUY0XFx1NTFGNVxcdTUxRkNcXHU5QjJGXFx1NTNCNlxcdTVGMDFcXHU3NTVBXFx1NURFRlxcdTU3NENcXHU1N0E5XFx1NTdBMVxcdTU4N0VcXHU1OEJDXFx1NThDNVxcdTU4RDFcXHU1NzI5XFx1NTcyQ1xcdTU3MkFcXHU1NzMzXFx1NTczOVxcdTU3MkVcXHU1NzJGXFx1NTc1Q1xcdTU3M0JcXHU1NzQyXFx1NTc2OVxcdTU3ODVcXHU1NzZCXFx1NTc4NlxcdTU3N0NcXHU1NzdCXFx1NTc2OFxcdTU3NkRcXHU1Nzc2XFx1NTc3M1xcdTU3QURcXHU1N0E0XFx1NTc4Q1xcdTU3QjJcXHU1N0NGXFx1NTdBN1xcdTU3QjRcXHU1NzkzXFx1NTdBMFxcdTU3RDVcXHU1N0Q4XFx1NTdEQVxcdTU3RDlcXHU1N0QyXFx1NTdCOFxcdTU3RjRcXHU1N0VGXFx1NTdGOFxcdTU3RTRcXHU1N0REXCJdLFxuICAgICAgW1wiZGM0MFwiLCBcIlxcdThFNzNcXHU4RTc1XFx1OEU3N1wiLCA0LCBcIlxcdThFN0RcXHU4RTdFXFx1OEU4MFxcdThFODJcXHU4RTgzXFx1OEU4NFxcdThFODZcXHU4RTg4XCIsIDYsIFwiXFx1OEU5MVxcdThFOTJcXHU4RTkzXFx1OEU5NVwiLCA2LCBcIlxcdThFOURcXHU4RTlGXCIsIDExLCBcIlxcdThFQURcXHU4RUFFXFx1OEVCMFxcdThFQjFcXHU4RUIzXCIsIDYsIFwiXFx1OEVCQlwiLCA3XSxcbiAgICAgIFtcImRjODBcIiwgXCJcXHU4RUMzXCIsIDEwLCBcIlxcdThFQ0ZcIiwgMjEsIFwiXFx1NTgwQlxcdTU4MERcXHU1N0ZEXFx1NTdFRFxcdTU4MDBcXHU1ODFFXFx1NTgxOVxcdTU4NDRcXHU1ODIwXFx1NTg2NVxcdTU4NkNcXHU1ODgxXFx1NTg4OVxcdTU4OUFcXHU1ODgwXFx1OTlBOFxcdTlGMTlcXHU2MUZGXFx1ODI3OVxcdTgyN0RcXHU4MjdGXFx1ODI4RlxcdTgyOEFcXHU4MkE4XFx1ODI4NFxcdTgyOEVcXHU4MjkxXFx1ODI5N1xcdTgyOTlcXHU4MkFCXFx1ODJCOFxcdTgyQkVcXHU4MkIwXFx1ODJDOFxcdTgyQ0FcXHU4MkUzXFx1ODI5OFxcdTgyQjdcXHU4MkFFXFx1ODJDQlxcdTgyQ0NcXHU4MkMxXFx1ODJBOVxcdTgyQjRcXHU4MkExXFx1ODJBQVxcdTgyOUZcXHU4MkM0XFx1ODJDRVxcdTgyQTRcXHU4MkUxXFx1ODMwOVxcdTgyRjdcXHU4MkU0XFx1ODMwRlxcdTgzMDdcXHU4MkRDXFx1ODJGNFxcdTgyRDJcXHU4MkQ4XFx1ODMwQ1xcdTgyRkJcXHU4MkQzXFx1ODMxMVxcdTgzMUFcXHU4MzA2XFx1ODMxNFxcdTgzMTVcXHU4MkUwXFx1ODJENVxcdTgzMUNcXHU4MzUxXFx1ODM1QlxcdTgzNUNcXHU4MzA4XFx1ODM5MlxcdTgzM0NcXHU4MzM0XFx1ODMzMVxcdTgzOUJcXHU4MzVFXFx1ODMyRlxcdTgzNEZcXHU4MzQ3XFx1ODM0M1xcdTgzNUZcXHU4MzQwXFx1ODMxN1xcdTgzNjBcXHU4MzJEXFx1ODMzQVxcdTgzMzNcXHU4MzY2XFx1ODM2NVwiXSxcbiAgICAgIFtcImRkNDBcIiwgXCJcXHU4RUU1XCIsIDYyXSxcbiAgICAgIFtcImRkODBcIiwgXCJcXHU4RjI0XCIsIDMyLCBcIlxcdTgzNjhcXHU4MzFCXFx1ODM2OVxcdTgzNkNcXHU4MzZBXFx1ODM2RFxcdTgzNkVcXHU4M0IwXFx1ODM3OFxcdTgzQjNcXHU4M0I0XFx1ODNBMFxcdTgzQUFcXHU4MzkzXFx1ODM5Q1xcdTgzODVcXHU4MzdDXFx1ODNCNlxcdTgzQTlcXHU4MzdEXFx1ODNCOFxcdTgzN0JcXHU4Mzk4XFx1ODM5RVxcdTgzQThcXHU4M0JBXFx1ODNCQ1xcdTgzQzFcXHU4NDAxXFx1ODNFNVxcdTgzRDhcXHU1ODA3XFx1ODQxOFxcdTg0MEJcXHU4M0REXFx1ODNGRFxcdTgzRDZcXHU4NDFDXFx1ODQzOFxcdTg0MTFcXHU4NDA2XFx1ODNENFxcdTgzREZcXHU4NDBGXFx1ODQwM1xcdTgzRjhcXHU4M0Y5XFx1ODNFQVxcdTgzQzVcXHU4M0MwXFx1ODQyNlxcdTgzRjBcXHU4M0UxXFx1ODQ1Q1xcdTg0NTFcXHU4NDVBXFx1ODQ1OVxcdTg0NzNcXHU4NDg3XFx1ODQ4OFxcdTg0N0FcXHU4NDg5XFx1ODQ3OFxcdTg0M0NcXHU4NDQ2XFx1ODQ2OVxcdTg0NzZcXHU4NDhDXFx1ODQ4RVxcdTg0MzFcXHU4NDZEXFx1ODRDMVxcdTg0Q0RcXHU4NEQwXFx1ODRFNlxcdTg0QkRcXHU4NEQzXFx1ODRDQVxcdTg0QkZcXHU4NEJBXFx1ODRFMFxcdTg0QTFcXHU4NEI5XFx1ODRCNFxcdTg0OTdcXHU4NEU1XFx1ODRFM1xcdTg1MENcXHU3NTBEXFx1ODUzOFxcdTg0RjBcXHU4NTM5XFx1ODUxRlxcdTg1M0FcIl0sXG4gICAgICBbXCJkZTQwXCIsIFwiXFx1OEY0NVwiLCAzMiwgXCJcXHU4RjZBXFx1OEY4MFxcdThGOENcXHU4RjkyXFx1OEY5RFxcdThGQTBcXHU4RkExXFx1OEZBMlxcdThGQTRcXHU4RkE1XFx1OEZBNlxcdThGQTdcXHU4RkFBXFx1OEZBQ1xcdThGQURcXHU4RkFFXFx1OEZBRlxcdThGQjJcXHU4RkIzXFx1OEZCNFxcdThGQjVcXHU4RkI3XFx1OEZCOFxcdThGQkFcXHU4RkJCXFx1OEZCQ1xcdThGQkZcXHU4RkMwXFx1OEZDM1xcdThGQzZcIl0sXG4gICAgICBbXCJkZTgwXCIsIFwiXFx1OEZDOVwiLCA0LCBcIlxcdThGQ0ZcXHU4RkQyXFx1OEZENlxcdThGRDdcXHU4RkRBXFx1OEZFMFxcdThGRTFcXHU4RkUzXFx1OEZFN1xcdThGRUNcXHU4RkVGXFx1OEZGMVxcdThGRjJcXHU4RkY0XFx1OEZGNVxcdThGRjZcXHU4RkZBXFx1OEZGQlxcdThGRkNcXHU4RkZFXFx1OEZGRlxcdTkwMDdcXHU5MDA4XFx1OTAwQ1xcdTkwMEVcXHU5MDEzXFx1OTAxNVxcdTkwMThcXHU4NTU2XFx1ODUzQlxcdTg0RkZcXHU4NEZDXFx1ODU1OVxcdTg1NDhcXHU4NTY4XFx1ODU2NFxcdTg1NUVcXHU4NTdBXFx1NzdBMlxcdTg1NDNcXHU4NTcyXFx1ODU3QlxcdTg1QTRcXHU4NUE4XFx1ODU4N1xcdTg1OEZcXHU4NTc5XFx1ODVBRVxcdTg1OUNcXHU4NTg1XFx1ODVCOVxcdTg1QjdcXHU4NUIwXFx1ODVEM1xcdTg1QzFcXHU4NURDXFx1ODVGRlxcdTg2MjdcXHU4NjA1XFx1ODYyOVxcdTg2MTZcXHU4NjNDXFx1NUVGRVxcdTVGMDhcXHU1OTNDXFx1NTk0MVxcdTgwMzdcXHU1OTU1XFx1NTk1QVxcdTU5NThcXHU1MzBGXFx1NUMyMlxcdTVDMjVcXHU1QzJDXFx1NUMzNFxcdTYyNENcXHU2MjZBXFx1NjI5RlxcdTYyQkJcXHU2MkNBXFx1NjJEQVxcdTYyRDdcXHU2MkVFXFx1NjMyMlxcdTYyRjZcXHU2MzM5XFx1NjM0QlxcdTYzNDNcXHU2M0FEXFx1NjNGNlxcdTYzNzFcXHU2MzdBXFx1NjM4RVxcdTYzQjRcXHU2MzZEXFx1NjNBQ1xcdTYzOEFcXHU2MzY5XFx1NjNBRVxcdTYzQkNcXHU2M0YyXFx1NjNGOFxcdTYzRTBcXHU2M0ZGXFx1NjNDNFxcdTYzREVcXHU2M0NFXFx1NjQ1MlxcdTYzQzZcXHU2M0JFXFx1NjQ0NVxcdTY0NDFcXHU2NDBCXFx1NjQxQlxcdTY0MjBcXHU2NDBDXFx1NjQyNlxcdTY0MjFcXHU2NDVFXFx1NjQ4NFxcdTY0NkRcXHU2NDk2XCJdLFxuICAgICAgW1wiZGY0MFwiLCBcIlxcdTkwMTlcXHU5MDFDXFx1OTAyM1xcdTkwMjRcXHU5MDI1XFx1OTAyN1wiLCA1LCBcIlxcdTkwMzBcIiwgNCwgXCJcXHU5MDM3XFx1OTAzOVxcdTkwM0FcXHU5MDNEXFx1OTAzRlxcdTkwNDBcXHU5MDQzXFx1OTA0NVxcdTkwNDZcXHU5MDQ4XCIsIDQsIFwiXFx1OTA0RVxcdTkwNTRcXHU5MDU1XFx1OTA1NlxcdTkwNTlcXHU5MDVBXFx1OTA1Q1wiLCA1LCBcIlxcdTkwNjRcXHU5MDY2XFx1OTA2N1xcdTkwNjlcXHU5MDZBXFx1OTA2QlxcdTkwNkNcXHU5MDZGXCIsIDQsIFwiXFx1OTA3NlwiLCA2LCBcIlxcdTkwN0VcXHU5MDgxXCJdLFxuICAgICAgW1wiZGY4MFwiLCBcIlxcdTkwODRcXHU5MDg1XFx1OTA4NlxcdTkwODdcXHU5MDg5XFx1OTA4QVxcdTkwOENcIiwgNCwgXCJcXHU5MDkyXFx1OTA5NFxcdTkwOTZcXHU5MDk4XFx1OTA5QVxcdTkwOUNcXHU5MDlFXFx1OTA5RlxcdTkwQTBcXHU5MEE0XFx1OTBBNVxcdTkwQTdcXHU5MEE4XFx1OTBBOVxcdTkwQUJcXHU5MEFEXFx1OTBCMlxcdTkwQjdcXHU5MEJDXFx1OTBCRFxcdTkwQkZcXHU5MEMwXFx1NjQ3QVxcdTY0QjdcXHU2NEI4XFx1NjQ5OVxcdTY0QkFcXHU2NEMwXFx1NjREMFxcdTY0RDdcXHU2NEU0XFx1NjRFMlxcdTY1MDlcXHU2NTI1XFx1NjUyRVxcdTVGMEJcXHU1RkQyXFx1NzUxOVxcdTVGMTFcXHU1MzVGXFx1NTNGMVxcdTUzRkRcXHU1M0U5XFx1NTNFOFxcdTUzRkJcXHU1NDEyXFx1NTQxNlxcdTU0MDZcXHU1NDRCXFx1NTQ1MlxcdTU0NTNcXHU1NDU0XFx1NTQ1NlxcdTU0NDNcXHU1NDIxXFx1NTQ1N1xcdTU0NTlcXHU1NDIzXFx1NTQzMlxcdTU0ODJcXHU1NDk0XFx1NTQ3N1xcdTU0NzFcXHU1NDY0XFx1NTQ5QVxcdTU0OUJcXHU1NDg0XFx1NTQ3NlxcdTU0NjZcXHU1NDlEXFx1NTREMFxcdTU0QURcXHU1NEMyXFx1NTRCNFxcdTU0RDJcXHU1NEE3XFx1NTRBNlxcdTU0RDNcXHU1NEQ0XFx1NTQ3MlxcdTU0QTNcXHU1NEQ1XFx1NTRCQlxcdTU0QkZcXHU1NENDXFx1NTREOVxcdTU0REFcXHU1NERDXFx1NTRBOVxcdTU0QUFcXHU1NEE0XFx1NTRERFxcdTU0Q0ZcXHU1NERFXFx1NTUxQlxcdTU0RTdcXHU1NTIwXFx1NTRGRFxcdTU1MTRcXHU1NEYzXFx1NTUyMlxcdTU1MjNcXHU1NTBGXFx1NTUxMVxcdTU1MjdcXHU1NTJBXFx1NTU2N1xcdTU1OEZcXHU1NUI1XFx1NTU0OVxcdTU1NkRcXHU1NTQxXFx1NTU1NVxcdTU1M0ZcXHU1NTUwXFx1NTUzQ1wiXSxcbiAgICAgIFtcImUwNDBcIiwgXCJcXHU5MEMyXFx1OTBDM1xcdTkwQzZcXHU5MEM4XFx1OTBDOVxcdTkwQ0JcXHU5MENDXFx1OTBDRFxcdTkwRDJcXHU5MEQ0XFx1OTBENVxcdTkwRDZcXHU5MEQ4XFx1OTBEOVxcdTkwREFcXHU5MERFXFx1OTBERlxcdTkwRTBcXHU5MEUzXFx1OTBFNFxcdTkwRTVcXHU5MEU5XFx1OTBFQVxcdTkwRUNcXHU5MEVFXFx1OTBGMFxcdTkwRjFcXHU5MEYyXFx1OTBGM1xcdTkwRjVcXHU5MEY2XFx1OTBGN1xcdTkwRjlcXHU5MEZBXFx1OTBGQlxcdTkwRkNcXHU5MEZGXFx1OTEwMFxcdTkxMDFcXHU5MTAzXFx1OTEwNVwiLCAxOSwgXCJcXHU5MTFBXFx1OTExQlxcdTkxMUNcIl0sXG4gICAgICBbXCJlMDgwXCIsIFwiXFx1OTExRFxcdTkxMUZcXHU5MTIwXFx1OTEyMVxcdTkxMjRcIiwgMTAsIFwiXFx1OTEzMFxcdTkxMzJcIiwgNiwgXCJcXHU5MTNBXCIsIDgsIFwiXFx1OTE0NFxcdTU1MzdcXHU1NTU2XFx1NTU3NVxcdTU1NzZcXHU1NTc3XFx1NTUzM1xcdTU1MzBcXHU1NTVDXFx1NTU4QlxcdTU1RDJcXHU1NTgzXFx1NTVCMVxcdTU1QjlcXHU1NTg4XFx1NTU4MVxcdTU1OUZcXHU1NTdFXFx1NTVENlxcdTU1OTFcXHU1NTdCXFx1NTVERlxcdTU1QkRcXHU1NUJFXFx1NTU5NFxcdTU1OTlcXHU1NUVBXFx1NTVGN1xcdTU1QzlcXHU1NjFGXFx1NTVEMVxcdTU1RUJcXHU1NUVDXFx1NTVENFxcdTU1RTZcXHU1NUREXFx1NTVDNFxcdTU1RUZcXHU1NUU1XFx1NTVGMlxcdTU1RjNcXHU1NUNDXFx1NTVDRFxcdTU1RThcXHU1NUY1XFx1NTVFNFxcdThGOTRcXHU1NjFFXFx1NTYwOFxcdTU2MENcXHU1NjAxXFx1NTYyNFxcdTU2MjNcXHU1NUZFXFx1NTYwMFxcdTU2MjdcXHU1NjJEXFx1NTY1OFxcdTU2MzlcXHU1NjU3XFx1NTYyQ1xcdTU2NERcXHU1NjYyXFx1NTY1OVxcdTU2NUNcXHU1NjRDXFx1NTY1NFxcdTU2ODZcXHU1NjY0XFx1NTY3MVxcdTU2NkJcXHU1NjdCXFx1NTY3Q1xcdTU2ODVcXHU1NjkzXFx1NTZBRlxcdTU2RDRcXHU1NkQ3XFx1NTZERFxcdTU2RTFcXHU1NkY1XFx1NTZFQlxcdTU2RjlcXHU1NkZGXFx1NTcwNFxcdTU3MEFcXHU1NzA5XFx1NTcxQ1xcdTVFMEZcXHU1RTE5XFx1NUUxNFxcdTVFMTFcXHU1RTMxXFx1NUUzQlxcdTVFM0NcIl0sXG4gICAgICBbXCJlMTQwXCIsIFwiXFx1OTE0NVxcdTkxNDdcXHU5MTQ4XFx1OTE1MVxcdTkxNTNcXHU5MTU0XFx1OTE1NVxcdTkxNTZcXHU5MTU4XFx1OTE1OVxcdTkxNUJcXHU5MTVDXFx1OTE1RlxcdTkxNjBcXHU5MTY2XFx1OTE2N1xcdTkxNjhcXHU5MTZCXFx1OTE2RFxcdTkxNzNcXHU5MTdBXFx1OTE3QlxcdTkxN0NcXHU5MTgwXCIsIDQsIFwiXFx1OTE4NlxcdTkxODhcXHU5MThBXFx1OTE4RVxcdTkxOEZcXHU5MTkzXCIsIDYsIFwiXFx1OTE5Q1wiLCA1LCBcIlxcdTkxQTRcIiwgNSwgXCJcXHU5MUFCXFx1OTFBQ1xcdTkxQjBcXHU5MUIxXFx1OTFCMlxcdTkxQjNcXHU5MUI2XFx1OTFCN1xcdTkxQjhcXHU5MUI5XFx1OTFCQlwiXSxcbiAgICAgIFtcImUxODBcIiwgXCJcXHU5MUJDXCIsIDEwLCBcIlxcdTkxQzhcXHU5MUNCXFx1OTFEMFxcdTkxRDJcIiwgOSwgXCJcXHU5MUREXCIsIDgsIFwiXFx1NUUzN1xcdTVFNDRcXHU1RTU0XFx1NUU1QlxcdTVFNUVcXHU1RTYxXFx1NUM4Q1xcdTVDN0FcXHU1QzhEXFx1NUM5MFxcdTVDOTZcXHU1Qzg4XFx1NUM5OFxcdTVDOTlcXHU1QzkxXFx1NUM5QVxcdTVDOUNcXHU1Q0I1XFx1NUNBMlxcdTVDQkRcXHU1Q0FDXFx1NUNBQlxcdTVDQjFcXHU1Q0EzXFx1NUNDMVxcdTVDQjdcXHU1Q0M0XFx1NUNEMlxcdTVDRTRcXHU1Q0NCXFx1NUNFNVxcdTVEMDJcXHU1RDAzXFx1NUQyN1xcdTVEMjZcXHU1RDJFXFx1NUQyNFxcdTVEMUVcXHU1RDA2XFx1NUQxQlxcdTVENThcXHU1RDNFXFx1NUQzNFxcdTVEM0RcXHU1RDZDXFx1NUQ1QlxcdTVENkZcXHU1RDVEXFx1NUQ2QlxcdTVENEJcXHU1RDRBXFx1NUQ2OVxcdTVENzRcXHU1RDgyXFx1NUQ5OVxcdTVEOURcXHU4QzczXFx1NURCN1xcdTVEQzVcXHU1RjczXFx1NUY3N1xcdTVGODJcXHU1Rjg3XFx1NUY4OVxcdTVGOENcXHU1Rjk1XFx1NUY5OVxcdTVGOUNcXHU1RkE4XFx1NUZBRFxcdTVGQjVcXHU1RkJDXFx1ODg2MlxcdTVGNjFcXHU3MkFEXFx1NzJCMFxcdTcyQjRcXHU3MkI3XFx1NzJCOFxcdTcyQzNcXHU3MkMxXFx1NzJDRVxcdTcyQ0RcXHU3MkQyXFx1NzJFOFxcdTcyRUZcXHU3MkU5XFx1NzJGMlxcdTcyRjRcXHU3MkY3XFx1NzMwMVxcdTcyRjNcXHU3MzAzXFx1NzJGQVwiXSxcbiAgICAgIFtcImUyNDBcIiwgXCJcXHU5MUU2XCIsIDYyXSxcbiAgICAgIFtcImUyODBcIiwgXCJcXHU5MjI1XCIsIDMyLCBcIlxcdTcyRkJcXHU3MzE3XFx1NzMxM1xcdTczMjFcXHU3MzBBXFx1NzMxRVxcdTczMURcXHU3MzE1XFx1NzMyMlxcdTczMzlcXHU3MzI1XFx1NzMyQ1xcdTczMzhcXHU3MzMxXFx1NzM1MFxcdTczNERcXHU3MzU3XFx1NzM2MFxcdTczNkNcXHU3MzZGXFx1NzM3RVxcdTgyMUJcXHU1OTI1XFx1OThFN1xcdTU5MjRcXHU1OTAyXFx1OTk2M1xcdTk5NjdcIiwgNSwgXCJcXHU5OTc0XFx1OTk3N1xcdTk5N0RcXHU5OTgwXFx1OTk4NFxcdTk5ODdcXHU5OThBXFx1OTk4RFxcdTk5OTBcXHU5OTkxXFx1OTk5M1xcdTk5OTRcXHU5OTk1XFx1NUU4MFxcdTVFOTFcXHU1RThCXFx1NUU5NlxcdTVFQTVcXHU1RUEwXFx1NUVCOVxcdTVFQjVcXHU1RUJFXFx1NUVCM1xcdThENTNcXHU1RUQyXFx1NUVEMVxcdTVFREJcXHU1RUU4XFx1NUVFQVxcdTgxQkFcXHU1RkM0XFx1NUZDOVxcdTVGRDZcXHU1RkNGXFx1NjAwM1xcdTVGRUVcXHU2MDA0XFx1NUZFMVxcdTVGRTRcXHU1RkZFXFx1NjAwNVxcdTYwMDZcXHU1RkVBXFx1NUZFRFxcdTVGRjhcXHU2MDE5XFx1NjAzNVxcdTYwMjZcXHU2MDFCXFx1NjAwRlxcdTYwMERcXHU2MDI5XFx1NjAyQlxcdTYwMEFcXHU2MDNGXFx1NjAyMVxcdTYwNzhcXHU2MDc5XFx1NjA3QlxcdTYwN0FcXHU2MDQyXCJdLFxuICAgICAgW1wiZTM0MFwiLCBcIlxcdTkyNDZcIiwgNDUsIFwiXFx1OTI3NVwiLCAxNl0sXG4gICAgICBbXCJlMzgwXCIsIFwiXFx1OTI4NlwiLCA3LCBcIlxcdTkyOEZcIiwgMjQsIFwiXFx1NjA2QVxcdTYwN0RcXHU2MDk2XFx1NjA5QVxcdTYwQURcXHU2MDlEXFx1NjA4M1xcdTYwOTJcXHU2MDhDXFx1NjA5QlxcdTYwRUNcXHU2MEJCXFx1NjBCMVxcdTYwRERcXHU2MEQ4XFx1NjBDNlxcdTYwREFcXHU2MEI0XFx1NjEyMFxcdTYxMjZcXHU2MTE1XFx1NjEyM1xcdTYwRjRcXHU2MTAwXFx1NjEwRVxcdTYxMkJcXHU2MTRBXFx1NjE3NVxcdTYxQUNcXHU2MTk0XFx1NjFBN1xcdTYxQjdcXHU2MUQ0XFx1NjFGNVxcdTVGRERcXHU5NkIzXFx1OTVFOVxcdTk1RUJcXHU5NUYxXFx1OTVGM1xcdTk1RjVcXHU5NUY2XFx1OTVGQ1xcdTk1RkVcXHU5NjAzXFx1OTYwNFxcdTk2MDZcXHU5NjA4XFx1OTYwQVxcdTk2MEJcXHU5NjBDXFx1OTYwRFxcdTk2MEZcXHU5NjEyXFx1OTYxNVxcdTk2MTZcXHU5NjE3XFx1OTYxOVxcdTk2MUFcXHU0RTJDXFx1NzIzRlxcdTYyMTVcXHU2QzM1XFx1NkM1NFxcdTZDNUNcXHU2QzRBXFx1NkNBM1xcdTZDODVcXHU2QzkwXFx1NkM5NFxcdTZDOENcXHU2QzY4XFx1NkM2OVxcdTZDNzRcXHU2Qzc2XFx1NkM4NlxcdTZDQTlcXHU2Q0QwXFx1NkNENFxcdTZDQURcXHU2Q0Y3XFx1NkNGOFxcdTZDRjFcXHU2Q0Q3XFx1NkNCMlxcdTZDRTBcXHU2Q0Q2XFx1NkNGQVxcdTZDRUJcXHU2Q0VFXFx1NkNCMVxcdTZDRDNcXHU2Q0VGXFx1NkNGRVwiXSxcbiAgICAgIFtcImU0NDBcIiwgXCJcXHU5MkE4XCIsIDUsIFwiXFx1OTJBRlwiLCAyNCwgXCJcXHU5MkM5XCIsIDMxXSxcbiAgICAgIFtcImU0ODBcIiwgXCJcXHU5MkU5XCIsIDMyLCBcIlxcdTZEMzlcXHU2RDI3XFx1NkQwQ1xcdTZENDNcXHU2RDQ4XFx1NkQwN1xcdTZEMDRcXHU2RDE5XFx1NkQwRVxcdTZEMkJcXHU2RDREXFx1NkQyRVxcdTZEMzVcXHU2RDFBXFx1NkQ0RlxcdTZENTJcXHU2RDU0XFx1NkQzM1xcdTZEOTFcXHU2RDZGXFx1NkQ5RVxcdTZEQTBcXHU2RDVFXFx1NkQ5M1xcdTZEOTRcXHU2RDVDXFx1NkQ2MFxcdTZEN0NcXHU2RDYzXFx1NkUxQVxcdTZEQzdcXHU2REM1XFx1NkRERVxcdTZFMEVcXHU2REJGXFx1NkRFMFxcdTZFMTFcXHU2REU2XFx1NkRERFxcdTZERDlcXHU2RTE2XFx1NkRBQlxcdTZFMENcXHU2REFFXFx1NkUyQlxcdTZFNkVcXHU2RTRFXFx1NkU2QlxcdTZFQjJcXHU2RTVGXFx1NkU4NlxcdTZFNTNcXHU2RTU0XFx1NkUzMlxcdTZFMjVcXHU2RTQ0XFx1NkVERlxcdTZFQjFcXHU2RTk4XFx1NkVFMFxcdTZGMkRcXHU2RUUyXFx1NkVBNVxcdTZFQTdcXHU2RUJEXFx1NkVCQlxcdTZFQjdcXHU2RUQ3XFx1NkVCNFxcdTZFQ0ZcXHU2RThGXFx1NkVDMlxcdTZFOUZcXHU2RjYyXFx1NkY0NlxcdTZGNDdcXHU2RjI0XFx1NkYxNVxcdTZFRjlcXHU2RjJGXFx1NkYzNlxcdTZGNEJcXHU2Rjc0XFx1NkYyQVxcdTZGMDlcXHU2RjI5XFx1NkY4OVxcdTZGOERcXHU2RjhDXFx1NkY3OFxcdTZGNzJcXHU2RjdDXFx1NkY3QVxcdTZGRDFcIl0sXG4gICAgICBbXCJlNTQwXCIsIFwiXFx1OTMwQVwiLCA1MSwgXCJcXHU5MzNGXCIsIDEwXSxcbiAgICAgIFtcImU1ODBcIiwgXCJcXHU5MzRBXCIsIDMxLCBcIlxcdTkzNkJcXHU2RkM5XFx1NkZBN1xcdTZGQjlcXHU2RkI2XFx1NkZDMlxcdTZGRTFcXHU2RkVFXFx1NkZERVxcdTZGRTBcXHU2RkVGXFx1NzAxQVxcdTcwMjNcXHU3MDFCXFx1NzAzOVxcdTcwMzVcXHU3MDRGXFx1NzA1RVxcdTVCODBcXHU1Qjg0XFx1NUI5NVxcdTVCOTNcXHU1QkE1XFx1NUJCOFxcdTc1MkZcXHU5QTlFXFx1NjQzNFxcdTVCRTRcXHU1QkVFXFx1ODkzMFxcdTVCRjBcXHU4RTQ3XFx1OEIwN1xcdThGQjZcXHU4RkQzXFx1OEZENVxcdThGRTVcXHU4RkVFXFx1OEZFNFxcdThGRTlcXHU4RkU2XFx1OEZGM1xcdThGRThcXHU5MDA1XFx1OTAwNFxcdTkwMEJcXHU5MDI2XFx1OTAxMVxcdTkwMERcXHU5MDE2XFx1OTAyMVxcdTkwMzVcXHU5MDM2XFx1OTAyRFxcdTkwMkZcXHU5MDQ0XFx1OTA1MVxcdTkwNTJcXHU5MDUwXFx1OTA2OFxcdTkwNThcXHU5MDYyXFx1OTA1QlxcdTY2QjlcXHU5MDc0XFx1OTA3RFxcdTkwODJcXHU5MDg4XFx1OTA4M1xcdTkwOEJcXHU1RjUwXFx1NUY1N1xcdTVGNTZcXHU1RjU4XFx1NUMzQlxcdTU0QUJcXHU1QzUwXFx1NUM1OVxcdTVCNzFcXHU1QzYzXFx1NUM2NlxcdTdGQkNcXHU1RjJBXFx1NUYyOVxcdTVGMkRcXHU4Mjc0XFx1NUYzQ1xcdTlCM0JcXHU1QzZFXFx1NTk4MVxcdTU5ODNcXHU1OThEXFx1NTlBOVxcdTU5QUFcXHU1OUEzXCJdLFxuICAgICAgW1wiZTY0MFwiLCBcIlxcdTkzNkNcIiwgMzQsIFwiXFx1OTM5MFwiLCAyN10sXG4gICAgICBbXCJlNjgwXCIsIFwiXFx1OTNBQ1wiLCAyOSwgXCJcXHU5M0NCXFx1OTNDQ1xcdTkzQ0RcXHU1OTk3XFx1NTlDQVxcdTU5QUJcXHU1OTlFXFx1NTlBNFxcdTU5RDJcXHU1OUIyXFx1NTlBRlxcdTU5RDdcXHU1OUJFXFx1NUEwNVxcdTVBMDZcXHU1OUREXFx1NUEwOFxcdTU5RTNcXHU1OUQ4XFx1NTlGOVxcdTVBMENcXHU1QTA5XFx1NUEzMlxcdTVBMzRcXHU1QTExXFx1NUEyM1xcdTVBMTNcXHU1QTQwXFx1NUE2N1xcdTVBNEFcXHU1QTU1XFx1NUEzQ1xcdTVBNjJcXHU1QTc1XFx1ODBFQ1xcdTVBQUFcXHU1QTlCXFx1NUE3N1xcdTVBN0FcXHU1QUJFXFx1NUFFQlxcdTVBQjJcXHU1QUQyXFx1NUFENFxcdTVBQjhcXHU1QUUwXFx1NUFFM1xcdTVBRjFcXHU1QUQ2XFx1NUFFNlxcdTVBRDhcXHU1QURDXFx1NUIwOVxcdTVCMTdcXHU1QjE2XFx1NUIzMlxcdTVCMzdcXHU1QjQwXFx1NUMxNVxcdTVDMUNcXHU1QjVBXFx1NUI2NVxcdTVCNzNcXHU1QjUxXFx1NUI1M1xcdTVCNjJcXHU5QTc1XFx1OUE3N1xcdTlBNzhcXHU5QTdBXFx1OUE3RlxcdTlBN0RcXHU5QTgwXFx1OUE4MVxcdTlBODVcXHU5QTg4XFx1OUE4QVxcdTlBOTBcXHU5QTkyXFx1OUE5M1xcdTlBOTZcXHU5QTk4XFx1OUE5QlxcdTlBOUNcXHU5QTlEXFx1OUE5RlxcdTlBQTBcXHU5QUEyXFx1OUFBM1xcdTlBQTVcXHU5QUE3XFx1N0U5RlxcdTdFQTFcXHU3RUEzXFx1N0VBNVxcdTdFQThcXHU3RUE5XCJdLFxuICAgICAgW1wiZTc0MFwiLCBcIlxcdTkzQ0VcIiwgNywgXCJcXHU5M0Q3XCIsIDU0XSxcbiAgICAgIFtcImU3ODBcIiwgXCJcXHU5NDBFXCIsIDMyLCBcIlxcdTdFQURcXHU3RUIwXFx1N0VCRVxcdTdFQzBcXHU3RUMxXFx1N0VDMlxcdTdFQzlcXHU3RUNCXFx1N0VDQ1xcdTdFRDBcXHU3RUQ0XFx1N0VEN1xcdTdFREJcXHU3RUUwXFx1N0VFMVxcdTdFRThcXHU3RUVCXFx1N0VFRVxcdTdFRUZcXHU3RUYxXFx1N0VGMlxcdTdGMERcXHU3RUY2XFx1N0VGQVxcdTdFRkJcXHU3RUZFXFx1N0YwMVxcdTdGMDJcXHU3RjAzXFx1N0YwN1xcdTdGMDhcXHU3RjBCXFx1N0YwQ1xcdTdGMEZcXHU3RjExXFx1N0YxMlxcdTdGMTdcXHU3RjE5XFx1N0YxQ1xcdTdGMUJcXHU3RjFGXFx1N0YyMVwiLCA2LCBcIlxcdTdGMkFcXHU3RjJCXFx1N0YyQ1xcdTdGMkRcXHU3RjJGXCIsIDQsIFwiXFx1N0YzNVxcdTVFN0FcXHU3NTdGXFx1NUREQlxcdTc1M0VcXHU5MDk1XFx1NzM4RVxcdTczOTFcXHU3M0FFXFx1NzNBMlxcdTczOUZcXHU3M0NGXFx1NzNDMlxcdTczRDFcXHU3M0I3XFx1NzNCM1xcdTczQzBcXHU3M0M5XFx1NzNDOFxcdTczRTVcXHU3M0Q5XFx1OTg3Q1xcdTc0MEFcXHU3M0U5XFx1NzNFN1xcdTczREVcXHU3M0JBXFx1NzNGMlxcdTc0MEZcXHU3NDJBXFx1NzQ1QlxcdTc0MjZcXHU3NDI1XFx1NzQyOFxcdTc0MzBcXHU3NDJFXFx1NzQyQ1wiXSxcbiAgICAgIFtcImU4NDBcIiwgXCJcXHU5NDJGXCIsIDE0LCBcIlxcdTk0M0ZcIiwgNDMsIFwiXFx1OTQ2Q1xcdTk0NkRcXHU5NDZFXFx1OTQ2RlwiXSxcbiAgICAgIFtcImU4ODBcIiwgXCJcXHU5NDcwXCIsIDIwLCBcIlxcdTk0OTFcXHU5NDk2XFx1OTQ5OFxcdTk0QzdcXHU5NENGXFx1OTREM1xcdTk0RDRcXHU5NERBXFx1OTRFNlxcdTk0RkJcXHU5NTFDXFx1OTUyMFxcdTc0MUJcXHU3NDFBXFx1NzQ0MVxcdTc0NUNcXHU3NDU3XFx1NzQ1NVxcdTc0NTlcXHU3NDc3XFx1NzQ2RFxcdTc0N0VcXHU3NDlDXFx1NzQ4RVxcdTc0ODBcXHU3NDgxXFx1NzQ4N1xcdTc0OEJcXHU3NDlFXFx1NzRBOFxcdTc0QTlcXHU3NDkwXFx1NzRBN1xcdTc0RDJcXHU3NEJBXFx1OTdFQVxcdTk3RUJcXHU5N0VDXFx1Njc0Q1xcdTY3NTNcXHU2NzVFXFx1Njc0OFxcdTY3NjlcXHU2N0E1XFx1Njc4N1xcdTY3NkFcXHU2NzczXFx1Njc5OFxcdTY3QTdcXHU2Nzc1XFx1NjdBOFxcdTY3OUVcXHU2N0FEXFx1Njc4QlxcdTY3NzdcXHU2NzdDXFx1NjdGMFxcdTY4MDlcXHU2N0Q4XFx1NjgwQVxcdTY3RTlcXHU2N0IwXFx1NjgwQ1xcdTY3RDlcXHU2N0I1XFx1NjdEQVxcdTY3QjNcXHU2N0REXFx1NjgwMFxcdTY3QzNcXHU2N0I4XFx1NjdFMlxcdTY4MEVcXHU2N0MxXFx1NjdGRFxcdTY4MzJcXHU2ODMzXFx1Njg2MFxcdTY4NjFcXHU2ODRFXFx1Njg2MlxcdTY4NDRcXHU2ODY0XFx1Njg4M1xcdTY4MURcXHU2ODU1XFx1Njg2NlxcdTY4NDFcXHU2ODY3XFx1Njg0MFxcdTY4M0VcXHU2ODRBXFx1Njg0OVxcdTY4MjlcXHU2OEI1XFx1Njg4RlxcdTY4NzRcXHU2ODc3XFx1Njg5M1xcdTY4NkJcXHU2OEMyXFx1Njk2RVxcdTY4RkNcXHU2OTFGXFx1NjkyMFxcdTY4RjlcIl0sXG4gICAgICBbXCJlOTQwXCIsIFwiXFx1OTUyN1xcdTk1MzNcXHU5NTNEXFx1OTU0M1xcdTk1NDhcXHU5NTRCXFx1OTU1NVxcdTk1NUFcXHU5NTYwXFx1OTU2RVxcdTk1NzRcXHU5NTc1XFx1OTU3N1wiLCA3LCBcIlxcdTk1ODBcIiwgNDJdLFxuICAgICAgW1wiZTk4MFwiLCBcIlxcdTk1QUJcIiwgMzIsIFwiXFx1NjkyNFxcdTY4RjBcXHU2OTBCXFx1NjkwMVxcdTY5NTdcXHU2OEUzXFx1NjkxMFxcdTY5NzFcXHU2OTM5XFx1Njk2MFxcdTY5NDJcXHU2OTVEXFx1Njk4NFxcdTY5NkJcXHU2OTgwXFx1Njk5OFxcdTY5NzhcXHU2OTM0XFx1NjlDQ1xcdTY5ODdcXHU2OTg4XFx1NjlDRVxcdTY5ODlcXHU2OTY2XFx1Njk2M1xcdTY5NzlcXHU2OTlCXFx1NjlBN1xcdTY5QkJcXHU2OUFCXFx1NjlBRFxcdTY5RDRcXHU2OUIxXFx1NjlDMVxcdTY5Q0FcXHU2OURGXFx1Njk5NVxcdTY5RTBcXHU2OThEXFx1NjlGRlxcdTZBMkZcXHU2OUVEXFx1NkExN1xcdTZBMThcXHU2QTY1XFx1NjlGMlxcdTZBNDRcXHU2QTNFXFx1NkFBMFxcdTZBNTBcXHU2QTVCXFx1NkEzNVxcdTZBOEVcXHU2QTc5XFx1NkEzRFxcdTZBMjhcXHU2QTU4XFx1NkE3Q1xcdTZBOTFcXHU2QTkwXFx1NkFBOVxcdTZBOTdcXHU2QUFCXFx1NzMzN1xcdTczNTJcXHU2QjgxXFx1NkI4MlxcdTZCODdcXHU2Qjg0XFx1NkI5MlxcdTZCOTNcXHU2QjhEXFx1NkI5QVxcdTZCOUJcXHU2QkExXFx1NkJBQVxcdThGNkJcXHU4RjZEXFx1OEY3MVxcdThGNzJcXHU4RjczXFx1OEY3NVxcdThGNzZcXHU4Rjc4XFx1OEY3N1xcdThGNzlcXHU4RjdBXFx1OEY3Q1xcdThGN0VcXHU4RjgxXFx1OEY4MlxcdThGODRcXHU4Rjg3XFx1OEY4QlwiXSxcbiAgICAgIFtcImVhNDBcIiwgXCJcXHU5NUNDXCIsIDI3LCBcIlxcdTk1RUNcXHU5NUZGXFx1OTYwN1xcdTk2MTNcXHU5NjE4XFx1OTYxQlxcdTk2MUVcXHU5NjIwXFx1OTYyM1wiLCA2LCBcIlxcdTk2MkJcXHU5NjJDXFx1OTYyRFxcdTk2MkZcXHU5NjMwXFx1OTYzN1xcdTk2MzhcXHU5NjM5XFx1OTYzQVxcdTk2M0VcXHU5NjQxXFx1OTY0M1xcdTk2NEFcXHU5NjRFXFx1OTY0RlxcdTk2NTFcXHU5NjUyXFx1OTY1M1xcdTk2NTZcXHU5NjU3XCJdLFxuICAgICAgW1wiZWE4MFwiLCBcIlxcdTk2NThcXHU5NjU5XFx1OTY1QVxcdTk2NUNcXHU5NjVEXFx1OTY1RVxcdTk2NjBcXHU5NjYzXFx1OTY2NVxcdTk2NjZcXHU5NjZCXFx1OTY2RFwiLCA0LCBcIlxcdTk2NzNcXHU5Njc4XCIsIDEyLCBcIlxcdTk2ODdcXHU5Njg5XFx1OTY4QVxcdThGOERcXHU4RjhFXFx1OEY4RlxcdThGOThcXHU4RjlBXFx1OEVDRVxcdTYyMEJcXHU2MjE3XFx1NjIxQlxcdTYyMUZcXHU2MjIyXFx1NjIyMVxcdTYyMjVcXHU2MjI0XFx1NjIyQ1xcdTgxRTdcXHU3NEVGXFx1NzRGNFxcdTc0RkZcXHU3NTBGXFx1NzUxMVxcdTc1MTNcXHU2NTM0XFx1NjVFRVxcdTY1RUZcXHU2NUYwXFx1NjYwQVxcdTY2MTlcXHU2NzcyXFx1NjYwM1xcdTY2MTVcXHU2NjAwXFx1NzA4NVxcdTY2RjdcXHU2NjFEXFx1NjYzNFxcdTY2MzFcXHU2NjM2XFx1NjYzNVxcdTgwMDZcXHU2NjVGXFx1NjY1NFxcdTY2NDFcXHU2NjRGXFx1NjY1NlxcdTY2NjFcXHU2NjU3XFx1NjY3N1xcdTY2ODRcXHU2NjhDXFx1NjZBN1xcdTY2OURcXHU2NkJFXFx1NjZEQlxcdTY2RENcXHU2NkU2XFx1NjZFOVxcdThEMzJcXHU4RDMzXFx1OEQzNlxcdThEM0JcXHU4RDNEXFx1OEQ0MFxcdThENDVcXHU4RDQ2XFx1OEQ0OFxcdThENDlcXHU4RDQ3XFx1OEQ0RFxcdThENTVcXHU4RDU5XFx1ODlDN1xcdTg5Q0FcXHU4OUNCXFx1ODlDQ1xcdTg5Q0VcXHU4OUNGXFx1ODlEMFxcdTg5RDFcXHU3MjZFXFx1NzI5RlxcdTcyNURcXHU3MjY2XFx1NzI2RlxcdTcyN0VcXHU3MjdGXFx1NzI4NFxcdTcyOEJcXHU3MjhEXFx1NzI4RlxcdTcyOTJcXHU2MzA4XFx1NjMzMlxcdTYzQjBcIl0sXG4gICAgICBbXCJlYjQwXCIsIFwiXFx1OTY4Q1xcdTk2OEVcXHU5NjkxXFx1OTY5MlxcdTk2OTNcXHU5Njk1XFx1OTY5NlxcdTk2OUFcXHU5NjlCXFx1OTY5RFwiLCA5LCBcIlxcdTk2QThcIiwgNywgXCJcXHU5NkIxXFx1OTZCMlxcdTk2QjRcXHU5NkI1XFx1OTZCN1xcdTk2QjhcXHU5NkJBXFx1OTZCQlxcdTk2QkZcXHU5NkMyXFx1OTZDM1xcdTk2QzhcXHU5NkNBXFx1OTZDQlxcdTk2RDBcXHU5NkQxXFx1OTZEM1xcdTk2RDRcXHU5NkQ2XCIsIDksIFwiXFx1OTZFMVwiLCA2LCBcIlxcdTk2RUJcIl0sXG4gICAgICBbXCJlYjgwXCIsIFwiXFx1OTZFQ1xcdTk2RURcXHU5NkVFXFx1OTZGMFxcdTk2RjFcXHU5NkYyXFx1OTZGNFxcdTk2RjVcXHU5NkY4XFx1OTZGQVxcdTk2RkJcXHU5NkZDXFx1OTZGRFxcdTk2RkZcXHU5NzAyXFx1OTcwM1xcdTk3MDVcXHU5NzBBXFx1OTcwQlxcdTk3MENcXHU5NzEwXFx1OTcxMVxcdTk3MTJcXHU5NzE0XFx1OTcxNVxcdTk3MTdcIiwgNCwgXCJcXHU5NzFEXFx1OTcxRlxcdTk3MjBcXHU2NDNGXFx1NjREOFxcdTgwMDRcXHU2QkVBXFx1NkJGM1xcdTZCRkRcXHU2QkY1XFx1NkJGOVxcdTZDMDVcXHU2QzA3XFx1NkMwNlxcdTZDMERcXHU2QzE1XFx1NkMxOFxcdTZDMTlcXHU2QzFBXFx1NkMyMVxcdTZDMjlcXHU2QzI0XFx1NkMyQVxcdTZDMzJcXHU2NTM1XFx1NjU1NVxcdTY1NkJcXHU3MjREXFx1NzI1MlxcdTcyNTZcXHU3MjMwXFx1ODY2MlxcdTUyMTZcXHU4MDlGXFx1ODA5Q1xcdTgwOTNcXHU4MEJDXFx1NjcwQVxcdTgwQkRcXHU4MEIxXFx1ODBBQlxcdTgwQURcXHU4MEI0XFx1ODBCN1xcdTgwRTdcXHU4MEU4XFx1ODBFOVxcdTgwRUFcXHU4MERCXFx1ODBDMlxcdTgwQzRcXHU4MEQ5XFx1ODBDRFxcdTgwRDdcXHU2NzEwXFx1ODBERFxcdTgwRUJcXHU4MEYxXFx1ODBGNFxcdTgwRURcXHU4MTBEXFx1ODEwRVxcdTgwRjJcXHU4MEZDXFx1NjcxNVxcdTgxMTJcXHU4QzVBXFx1ODEzNlxcdTgxMUVcXHU4MTJDXFx1ODExOFxcdTgxMzJcXHU4MTQ4XFx1ODE0Q1xcdTgxNTNcXHU4MTc0XFx1ODE1OVxcdTgxNUFcXHU4MTcxXFx1ODE2MFxcdTgxNjlcXHU4MTdDXFx1ODE3RFxcdTgxNkRcXHU4MTY3XFx1NTg0RFxcdTVBQjVcXHU4MTg4XFx1ODE4MlxcdTgxOTFcXHU2RUQ1XFx1ODFBM1xcdTgxQUFcXHU4MUNDXFx1NjcyNlxcdTgxQ0FcXHU4MUJCXCJdLFxuICAgICAgW1wiZWM0MFwiLCBcIlxcdTk3MjFcIiwgOCwgXCJcXHU5NzJCXFx1OTcyQ1xcdTk3MkVcXHU5NzJGXFx1OTczMVxcdTk3MzNcIiwgNCwgXCJcXHU5NzNBXFx1OTczQlxcdTk3M0NcXHU5NzNEXFx1OTczRlwiLCAxOCwgXCJcXHU5NzU0XFx1OTc1NVxcdTk3NTdcXHU5NzU4XFx1OTc1QVxcdTk3NUNcXHU5NzVEXFx1OTc1RlxcdTk3NjNcXHU5NzY0XFx1OTc2NlxcdTk3NjdcXHU5NzY4XFx1OTc2QVwiLCA3XSxcbiAgICAgIFtcImVjODBcIiwgXCJcXHU5NzcyXFx1OTc3NVxcdTk3NzdcIiwgNCwgXCJcXHU5NzdEXCIsIDcsIFwiXFx1OTc4NlwiLCA0LCBcIlxcdTk3OENcXHU5NzhFXFx1OTc4RlxcdTk3OTBcXHU5NzkzXFx1OTc5NVxcdTk3OTZcXHU5Nzk3XFx1OTc5OVwiLCA0LCBcIlxcdTgxQzFcXHU4MUE2XFx1NkIyNFxcdTZCMzdcXHU2QjM5XFx1NkI0M1xcdTZCNDZcXHU2QjU5XFx1OThEMVxcdTk4RDJcXHU5OEQzXFx1OThENVxcdTk4RDlcXHU5OERBXFx1NkJCM1xcdTVGNDBcXHU2QkMyXFx1ODlGM1xcdTY1OTBcXHU5RjUxXFx1NjU5M1xcdTY1QkNcXHU2NUM2XFx1NjVDNFxcdTY1QzNcXHU2NUNDXFx1NjVDRVxcdTY1RDJcXHU2NUQ2XFx1NzA4MFxcdTcwOUNcXHU3MDk2XFx1NzA5RFxcdTcwQkJcXHU3MEMwXFx1NzBCN1xcdTcwQUJcXHU3MEIxXFx1NzBFOFxcdTcwQ0FcXHU3MTEwXFx1NzExM1xcdTcxMTZcXHU3MTJGXFx1NzEzMVxcdTcxNzNcXHU3MTVDXFx1NzE2OFxcdTcxNDVcXHU3MTcyXFx1NzE0QVxcdTcxNzhcXHU3MTdBXFx1NzE5OFxcdTcxQjNcXHU3MUI1XFx1NzFBOFxcdTcxQTBcXHU3MUUwXFx1NzFENFxcdTcxRTdcXHU3MUY5XFx1NzIxRFxcdTcyMjhcXHU3MDZDXFx1NzExOFxcdTcxNjZcXHU3MUI5XFx1NjIzRVxcdTYyM0RcXHU2MjQzXFx1NjI0OFxcdTYyNDlcXHU3OTNCXFx1Nzk0MFxcdTc5NDZcXHU3OTQ5XFx1Nzk1QlxcdTc5NUNcXHU3OTUzXFx1Nzk1QVxcdTc5NjJcXHU3OTU3XFx1Nzk2MFxcdTc5NkZcXHU3OTY3XFx1Nzk3QVxcdTc5ODVcXHU3OThBXFx1Nzk5QVxcdTc5QTdcXHU3OUIzXFx1NUZEMVxcdTVGRDBcIl0sXG4gICAgICBbXCJlZDQwXCIsIFwiXFx1OTc5RVxcdTk3OUZcXHU5N0ExXFx1OTdBMlxcdTk3QTRcIiwgNiwgXCJcXHU5N0FDXFx1OTdBRVxcdTk3QjBcXHU5N0IxXFx1OTdCM1xcdTk3QjVcIiwgNDZdLFxuICAgICAgW1wiZWQ4MFwiLCBcIlxcdTk3RTRcXHU5N0U1XFx1OTdFOFxcdTk3RUVcIiwgNCwgXCJcXHU5N0Y0XFx1OTdGN1wiLCAyMywgXCJcXHU2MDNDXFx1NjA1RFxcdTYwNUFcXHU2MDY3XFx1NjA0MVxcdTYwNTlcXHU2MDYzXFx1NjBBQlxcdTYxMDZcXHU2MTBEXFx1NjE1RFxcdTYxQTlcXHU2MTlEXFx1NjFDQlxcdTYxRDFcXHU2MjA2XFx1ODA4MFxcdTgwN0ZcXHU2QzkzXFx1NkNGNlxcdTZERkNcXHU3N0Y2XFx1NzdGOFxcdTc4MDBcXHU3ODA5XFx1NzgxN1xcdTc4MThcXHU3ODExXFx1NjVBQlxcdTc4MkRcXHU3ODFDXFx1NzgxRFxcdTc4MzlcXHU3ODNBXFx1NzgzQlxcdTc4MUZcXHU3ODNDXFx1NzgyNVxcdTc4MkNcXHU3ODIzXFx1NzgyOVxcdTc4NEVcXHU3ODZEXFx1Nzg1NlxcdTc4NTdcXHU3ODI2XFx1Nzg1MFxcdTc4NDdcXHU3ODRDXFx1Nzg2QVxcdTc4OUJcXHU3ODkzXFx1Nzg5QVxcdTc4ODdcXHU3ODlDXFx1NzhBMVxcdTc4QTNcXHU3OEIyXFx1NzhCOVxcdTc4QTVcXHU3OEQ0XFx1NzhEOVxcdTc4QzlcXHU3OEVDXFx1NzhGMlxcdTc5MDVcXHU3OEY0XFx1NzkxM1xcdTc5MjRcXHU3OTFFXFx1NzkzNFxcdTlGOUJcXHU5RUY5XFx1OUVGQlxcdTlFRkNcXHU3NkYxXFx1NzcwNFxcdTc3MERcXHU3NkY5XFx1NzcwN1xcdTc3MDhcXHU3NzFBXFx1NzcyMlxcdTc3MTlcXHU3NzJEXFx1NzcyNlxcdTc3MzVcXHU3NzM4XFx1Nzc1MFxcdTc3NTFcXHU3NzQ3XFx1Nzc0M1xcdTc3NUFcXHU3NzY4XCJdLFxuICAgICAgW1wiZWU0MFwiLCBcIlxcdTk4MEZcIiwgNjJdLFxuICAgICAgW1wiZWU4MFwiLCBcIlxcdTk4NEVcIiwgMzIsIFwiXFx1Nzc2MlxcdTc3NjVcXHU3NzdGXFx1Nzc4RFxcdTc3N0RcXHU3NzgwXFx1Nzc4Q1xcdTc3OTFcXHU3NzlGXFx1NzdBMFxcdTc3QjBcXHU3N0I1XFx1NzdCRFxcdTc1M0FcXHU3NTQwXFx1NzU0RVxcdTc1NEJcXHU3NTQ4XFx1NzU1QlxcdTc1NzJcXHU3NTc5XFx1NzU4M1xcdTdGNThcXHU3RjYxXFx1N0Y1RlxcdThBNDhcXHU3RjY4XFx1N0Y3NFxcdTdGNzFcXHU3Rjc5XFx1N0Y4MVxcdTdGN0VcXHU3NkNEXFx1NzZFNVxcdTg4MzJcXHU5NDg1XFx1OTQ4NlxcdTk0ODdcXHU5NDhCXFx1OTQ4QVxcdTk0OENcXHU5NDhEXFx1OTQ4RlxcdTk0OTBcXHU5NDk0XFx1OTQ5N1xcdTk0OTVcXHU5NDlBXFx1OTQ5QlxcdTk0OUNcXHU5NEEzXFx1OTRBNFxcdTk0QUJcXHU5NEFBXFx1OTRBRFxcdTk0QUNcXHU5NEFGXFx1OTRCMFxcdTk0QjJcXHU5NEI0XFx1OTRCNlwiLCA0LCBcIlxcdTk0QkNcXHU5NEJEXFx1OTRCRlxcdTk0QzRcXHU5NEM4XCIsIDYsIFwiXFx1OTREMFxcdTk0RDFcXHU5NEQyXFx1OTRENVxcdTk0RDZcXHU5NEQ3XFx1OTREOVxcdTk0RDhcXHU5NERCXFx1OTRERVxcdTk0REZcXHU5NEUwXFx1OTRFMlxcdTk0RTRcXHU5NEU1XFx1OTRFN1xcdTk0RThcXHU5NEVBXCJdLFxuICAgICAgW1wiZWY0MFwiLCBcIlxcdTk4NkZcIiwgNSwgXCJcXHU5ODhCXFx1OTg4RVxcdTk4OTJcXHU5ODk1XFx1OTg5OVxcdTk4QTNcXHU5OEE4XCIsIDM3LCBcIlxcdTk4Q0ZcXHU5OEQwXFx1OThENFxcdTk4RDZcXHU5OEQ3XFx1OThEQlxcdTk4RENcXHU5OEREXFx1OThFMFwiLCA0XSxcbiAgICAgIFtcImVmODBcIiwgXCJcXHU5OEU1XFx1OThFNlxcdTk4RTlcIiwgMzAsIFwiXFx1OTRFOVxcdTk0RUJcXHU5NEVFXFx1OTRFRlxcdTk0RjNcXHU5NEY0XFx1OTRGNVxcdTk0RjdcXHU5NEY5XFx1OTRGQ1xcdTk0RkRcXHU5NEZGXFx1OTUwM1xcdTk1MDJcXHU5NTA2XFx1OTUwN1xcdTk1MDlcXHU5NTBBXFx1OTUwRFxcdTk1MEVcXHU5NTBGXFx1OTUxMlwiLCA0LCBcIlxcdTk1MThcXHU5NTFCXFx1OTUxRFxcdTk1MUVcXHU5NTFGXFx1OTUyMlxcdTk1MkFcXHU5NTJCXFx1OTUyOVxcdTk1MkNcXHU5NTMxXFx1OTUzMlxcdTk1MzRcXHU5NTM2XFx1OTUzN1xcdTk1MzhcXHU5NTNDXFx1OTUzRVxcdTk1M0ZcXHU5NTQyXFx1OTUzNVxcdTk1NDRcXHU5NTQ1XFx1OTU0NlxcdTk1NDlcXHU5NTRDXFx1OTU0RVxcdTk1NEZcXHU5NTUyXFx1OTU1M1xcdTk1NTRcXHU5NTU2XFx1OTU1N1xcdTk1NThcXHU5NTU5XFx1OTU1QlxcdTk1NUVcXHU5NTVGXFx1OTU1RFxcdTk1NjFcXHU5NTYyXFx1OTU2NFwiLCA4LCBcIlxcdTk1NkZcXHU5NTcxXFx1OTU3MlxcdTk1NzNcXHU5NTNBXFx1NzdFN1xcdTc3RUNcXHU5NkM5XFx1NzlENVxcdTc5RURcXHU3OUUzXFx1NzlFQlxcdTdBMDZcXHU1RDQ3XFx1N0EwM1xcdTdBMDJcXHU3QTFFXFx1N0ExNFwiXSxcbiAgICAgIFtcImYwNDBcIiwgXCJcXHU5OTA4XCIsIDQsIFwiXFx1OTkwRVxcdTk5MEZcXHU5OTExXCIsIDI4LCBcIlxcdTk5MkZcIiwgMjZdLFxuICAgICAgW1wiZjA4MFwiLCBcIlxcdTk5NEFcIiwgOSwgXCJcXHU5OTU2XCIsIDEyLCBcIlxcdTk5NjRcXHU5OTY2XFx1OTk3M1xcdTk5NzhcXHU5OTc5XFx1OTk3QlxcdTk5N0VcXHU5OTgyXFx1OTk4M1xcdTk5ODlcXHU3QTM5XFx1N0EzN1xcdTdBNTFcXHU5RUNGXFx1OTlBNVxcdTdBNzBcXHU3Njg4XFx1NzY4RVxcdTc2OTNcXHU3Njk5XFx1NzZBNFxcdTc0REVcXHU3NEUwXFx1NzUyQ1xcdTlFMjBcXHU5RTIyXFx1OUUyOFwiLCA0LCBcIlxcdTlFMzJcXHU5RTMxXFx1OUUzNlxcdTlFMzhcXHU5RTM3XFx1OUUzOVxcdTlFM0FcXHU5RTNFXFx1OUU0MVxcdTlFNDJcXHU5RTQ0XFx1OUU0NlxcdTlFNDdcXHU5RTQ4XFx1OUU0OVxcdTlFNEJcXHU5RTRDXFx1OUU0RVxcdTlFNTFcXHU5RTU1XFx1OUU1N1xcdTlFNUFcXHU5RTVCXFx1OUU1Q1xcdTlFNUVcXHU5RTYzXFx1OUU2NlwiLCA2LCBcIlxcdTlFNzFcXHU5RTZEXFx1OUU3M1xcdTc1OTJcXHU3NTk0XFx1NzU5NlxcdTc1QTBcXHU3NTlEXFx1NzVBQ1xcdTc1QTNcXHU3NUIzXFx1NzVCNFxcdTc1QjhcXHU3NUM0XFx1NzVCMVxcdTc1QjBcXHU3NUMzXFx1NzVDMlxcdTc1RDZcXHU3NUNEXFx1NzVFM1xcdTc1RThcXHU3NUU2XFx1NzVFNFxcdTc1RUJcXHU3NUU3XFx1NzYwM1xcdTc1RjFcXHU3NUZDXFx1NzVGRlxcdTc2MTBcXHU3NjAwXFx1NzYwNVxcdTc2MENcXHU3NjE3XFx1NzYwQVxcdTc2MjVcXHU3NjE4XFx1NzYxNVxcdTc2MTlcIl0sXG4gICAgICBbXCJmMTQwXCIsIFwiXFx1OTk4Q1xcdTk5OEVcXHU5OTlBXCIsIDEwLCBcIlxcdTk5QTZcXHU5OUE3XFx1OTlBOVwiLCA0N10sXG4gICAgICBbXCJmMTgwXCIsIFwiXFx1OTlEOVwiLCAzMiwgXCJcXHU3NjFCXFx1NzYzQ1xcdTc2MjJcXHU3NjIwXFx1NzY0MFxcdTc2MkRcXHU3NjMwXFx1NzYzRlxcdTc2MzVcXHU3NjQzXFx1NzYzRVxcdTc2MzNcXHU3NjREXFx1NzY1RVxcdTc2NTRcXHU3NjVDXFx1NzY1NlxcdTc2NkJcXHU3NjZGXFx1N0ZDQVxcdTdBRTZcXHU3QTc4XFx1N0E3OVxcdTdBODBcXHU3QTg2XFx1N0E4OFxcdTdBOTVcXHU3QUE2XFx1N0FBMFxcdTdBQUNcXHU3QUE4XFx1N0FBRFxcdTdBQjNcXHU4ODY0XFx1ODg2OVxcdTg4NzJcXHU4ODdEXFx1ODg3RlxcdTg4ODJcXHU4OEEyXFx1ODhDNlxcdTg4QjdcXHU4OEJDXFx1ODhDOVxcdTg4RTJcXHU4OENFXFx1ODhFM1xcdTg4RTVcXHU4OEYxXFx1ODkxQVxcdTg4RkNcXHU4OEU4XFx1ODhGRVxcdTg4RjBcXHU4OTIxXFx1ODkxOVxcdTg5MTNcXHU4OTFCXFx1ODkwQVxcdTg5MzRcXHU4OTJCXFx1ODkzNlxcdTg5NDFcXHU4OTY2XFx1ODk3QlxcdTc1OEJcXHU4MEU1XFx1NzZCMlxcdTc2QjRcXHU3N0RDXFx1ODAxMlxcdTgwMTRcXHU4MDE2XFx1ODAxQ1xcdTgwMjBcXHU4MDIyXFx1ODAyNVxcdTgwMjZcXHU4MDI3XFx1ODAyOVxcdTgwMjhcXHU4MDMxXFx1ODAwQlxcdTgwMzVcXHU4MDQzXFx1ODA0NlxcdTgwNERcXHU4MDUyXFx1ODA2OVxcdTgwNzFcXHU4OTgzXFx1OTg3OFxcdTk4ODBcXHU5ODgzXCJdLFxuICAgICAgW1wiZjI0MFwiLCBcIlxcdTk5RkFcIiwgNjJdLFxuICAgICAgW1wiZjI4MFwiLCBcIlxcdTlBMzlcIiwgMzIsIFwiXFx1OTg4OVxcdTk4OENcXHU5ODhEXFx1OTg4RlxcdTk4OTRcXHU5ODlBXFx1OTg5QlxcdTk4OUVcXHU5ODlGXFx1OThBMVxcdTk4QTJcXHU5OEE1XFx1OThBNlxcdTg2NERcXHU4NjU0XFx1ODY2Q1xcdTg2NkVcXHU4NjdGXFx1ODY3QVxcdTg2N0NcXHU4NjdCXFx1ODZBOFxcdTg2OERcXHU4NjhCXFx1ODZBQ1xcdTg2OURcXHU4NkE3XFx1ODZBM1xcdTg2QUFcXHU4NjkzXFx1ODZBOVxcdTg2QjZcXHU4NkM0XFx1ODZCNVxcdTg2Q0VcXHU4NkIwXFx1ODZCQVxcdTg2QjFcXHU4NkFGXFx1ODZDOVxcdTg2Q0ZcXHU4NkI0XFx1ODZFOVxcdTg2RjFcXHU4NkYyXFx1ODZFRFxcdTg2RjNcXHU4NkQwXFx1ODcxM1xcdTg2REVcXHU4NkY0XFx1ODZERlxcdTg2RDhcXHU4NkQxXFx1ODcwM1xcdTg3MDdcXHU4NkY4XFx1ODcwOFxcdTg3MEFcXHU4NzBEXFx1ODcwOVxcdTg3MjNcXHU4NzNCXFx1ODcxRVxcdTg3MjVcXHU4NzJFXFx1ODcxQVxcdTg3M0VcXHU4NzQ4XFx1ODczNFxcdTg3MzFcXHU4NzI5XFx1ODczN1xcdTg3M0ZcXHU4NzgyXFx1ODcyMlxcdTg3N0RcXHU4NzdFXFx1ODc3QlxcdTg3NjBcXHU4NzcwXFx1ODc0Q1xcdTg3NkVcXHU4NzhCXFx1ODc1M1xcdTg3NjNcXHU4NzdDXFx1ODc2NFxcdTg3NTlcXHU4NzY1XFx1ODc5M1xcdTg3QUZcXHU4N0E4XFx1ODdEMlwiXSxcbiAgICAgIFtcImYzNDBcIiwgXCJcXHU5QTVBXCIsIDE3LCBcIlxcdTlBNzJcXHU5QTgzXFx1OUE4OVxcdTlBOERcXHU5QThFXFx1OUE5NFxcdTlBOTVcXHU5QTk5XFx1OUFBNlxcdTlBQTlcIiwgNiwgXCJcXHU5QUIyXFx1OUFCM1xcdTlBQjRcXHU5QUI1XFx1OUFCOVxcdTlBQkJcXHU5QUJEXFx1OUFCRVxcdTlBQkZcXHU5QUMzXFx1OUFDNFxcdTlBQzZcIiwgNCwgXCJcXHU5QUNEXFx1OUFDRVxcdTlBQ0ZcXHU5QUQwXFx1OUFEMlxcdTlBRDRcXHU5QUQ1XFx1OUFENlxcdTlBRDdcXHU5QUQ5XFx1OUFEQVxcdTlBREJcXHU5QURDXCJdLFxuICAgICAgW1wiZjM4MFwiLCBcIlxcdTlBRERcXHU5QURFXFx1OUFFMFxcdTlBRTJcXHU5QUUzXFx1OUFFNFxcdTlBRTVcXHU5QUU3XFx1OUFFOFxcdTlBRTlcXHU5QUVBXFx1OUFFQ1xcdTlBRUVcXHU5QUYwXCIsIDgsIFwiXFx1OUFGQVxcdTlBRkNcIiwgNiwgXCJcXHU5QjA0XFx1OUIwNVxcdTlCMDZcXHU4N0M2XFx1ODc4OFxcdTg3ODVcXHU4N0FEXFx1ODc5N1xcdTg3ODNcXHU4N0FCXFx1ODdFNVxcdTg3QUNcXHU4N0I1XFx1ODdCM1xcdTg3Q0JcXHU4N0QzXFx1ODdCRFxcdTg3RDFcXHU4N0MwXFx1ODdDQVxcdTg3REJcXHU4N0VBXFx1ODdFMFxcdTg3RUVcXHU4ODE2XFx1ODgxM1xcdTg3RkVcXHU4ODBBXFx1ODgxQlxcdTg4MjFcXHU4ODM5XFx1ODgzQ1xcdTdGMzZcXHU3RjQyXFx1N0Y0NFxcdTdGNDVcXHU4MjEwXFx1N0FGQVxcdTdBRkRcXHU3QjA4XFx1N0IwM1xcdTdCMDRcXHU3QjE1XFx1N0IwQVxcdTdCMkJcXHU3QjBGXFx1N0I0N1xcdTdCMzhcXHU3QjJBXFx1N0IxOVxcdTdCMkVcXHU3QjMxXFx1N0IyMFxcdTdCMjVcXHU3QjI0XFx1N0IzM1xcdTdCM0VcXHU3QjFFXFx1N0I1OFxcdTdCNUFcXHU3QjQ1XFx1N0I3NVxcdTdCNENcXHU3QjVEXFx1N0I2MFxcdTdCNkVcXHU3QjdCXFx1N0I2MlxcdTdCNzJcXHU3QjcxXFx1N0I5MFxcdTdCQTZcXHU3QkE3XFx1N0JCOFxcdTdCQUNcXHU3QjlEXFx1N0JBOFxcdTdCODVcXHU3QkFBXFx1N0I5Q1xcdTdCQTJcXHU3QkFCXFx1N0JCNFxcdTdCRDFcXHU3QkMxXFx1N0JDQ1xcdTdCRERcXHU3QkRBXFx1N0JFNVxcdTdCRTZcXHU3QkVBXFx1N0MwQ1xcdTdCRkVcXHU3QkZDXFx1N0MwRlxcdTdDMTZcXHU3QzBCXCJdLFxuICAgICAgW1wiZjQ0MFwiLCBcIlxcdTlCMDdcXHU5QjA5XCIsIDUsIFwiXFx1OUIxMFxcdTlCMTFcXHU5QjEyXFx1OUIxNFwiLCAxMCwgXCJcXHU5QjIwXFx1OUIyMVxcdTlCMjJcXHU5QjI0XCIsIDEwLCBcIlxcdTlCMzBcXHU5QjMxXFx1OUIzM1wiLCA3LCBcIlxcdTlCM0RcXHU5QjNFXFx1OUIzRlxcdTlCNDBcXHU5QjQ2XFx1OUI0QVxcdTlCNEJcXHU5QjRDXFx1OUI0RVxcdTlCNTBcXHU5QjUyXFx1OUI1M1xcdTlCNTVcIiwgNV0sXG4gICAgICBbXCJmNDgwXCIsIFwiXFx1OUI1QlwiLCAzMiwgXCJcXHU3QzFGXFx1N0MyQVxcdTdDMjZcXHU3QzM4XFx1N0M0MVxcdTdDNDBcXHU4MUZFXFx1ODIwMVxcdTgyMDJcXHU4MjA0XFx1ODFFQ1xcdTg4NDRcXHU4MjIxXFx1ODIyMlxcdTgyMjNcXHU4MjJEXFx1ODIyRlxcdTgyMjhcXHU4MjJCXFx1ODIzOFxcdTgyM0JcXHU4MjMzXFx1ODIzNFxcdTgyM0VcXHU4MjQ0XFx1ODI0OVxcdTgyNEJcXHU4MjRGXFx1ODI1QVxcdTgyNUZcXHU4MjY4XFx1ODg3RVxcdTg4ODVcXHU4ODg4XFx1ODhEOFxcdTg4REZcXHU4OTVFXFx1N0Y5RFxcdTdGOUZcXHU3RkE3XFx1N0ZBRlxcdTdGQjBcXHU3RkIyXFx1N0M3Q1xcdTY1NDlcXHU3QzkxXFx1N0M5RFxcdTdDOUNcXHU3QzlFXFx1N0NBMlxcdTdDQjJcXHU3Q0JDXFx1N0NCRFxcdTdDQzFcXHU3Q0M3XFx1N0NDQ1xcdTdDQ0RcXHU3Q0M4XFx1N0NDNVxcdTdDRDdcXHU3Q0U4XFx1ODI2RVxcdTY2QThcXHU3RkJGXFx1N0ZDRVxcdTdGRDVcXHU3RkU1XFx1N0ZFMVxcdTdGRTZcXHU3RkU5XFx1N0ZFRVxcdTdGRjNcXHU3Q0Y4XFx1N0Q3N1xcdTdEQTZcXHU3REFFXFx1N0U0N1xcdTdFOUJcXHU5RUI4XFx1OUVCNFxcdThENzNcXHU4RDg0XFx1OEQ5NFxcdThEOTFcXHU4REIxXFx1OEQ2N1xcdThENkRcXHU4QzQ3XFx1OEM0OVxcdTkxNEFcXHU5MTUwXFx1OTE0RVxcdTkxNEZcXHU5MTY0XCJdLFxuICAgICAgW1wiZjU0MFwiLCBcIlxcdTlCN0NcIiwgNjJdLFxuICAgICAgW1wiZjU4MFwiLCBcIlxcdTlCQkJcIiwgMzIsIFwiXFx1OTE2MlxcdTkxNjFcXHU5MTcwXFx1OTE2OVxcdTkxNkZcXHU5MTdEXFx1OTE3RVxcdTkxNzJcXHU5MTc0XFx1OTE3OVxcdTkxOENcXHU5MTg1XFx1OTE5MFxcdTkxOERcXHU5MTkxXFx1OTFBMlxcdTkxQTNcXHU5MUFBXFx1OTFBRFxcdTkxQUVcXHU5MUFGXFx1OTFCNVxcdTkxQjRcXHU5MUJBXFx1OEM1NVxcdTlFN0VcXHU4REI4XFx1OERFQlxcdThFMDVcXHU4RTU5XFx1OEU2OVxcdThEQjVcXHU4REJGXFx1OERCQ1xcdThEQkFcXHU4REM0XFx1OERENlxcdThERDdcXHU4RERBXFx1OERERVxcdThEQ0VcXHU4RENGXFx1OEREQlxcdThEQzZcXHU4REVDXFx1OERGN1xcdThERjhcXHU4REUzXFx1OERGOVxcdThERkJcXHU4REU0XFx1OEUwOVxcdThERkRcXHU4RTE0XFx1OEUxRFxcdThFMUZcXHU4RTJDXFx1OEUyRVxcdThFMjNcXHU4RTJGXFx1OEUzQVxcdThFNDBcXHU4RTM5XFx1OEUzNVxcdThFM0RcXHU4RTMxXFx1OEU0OVxcdThFNDFcXHU4RTQyXFx1OEU1MVxcdThFNTJcXHU4RTRBXFx1OEU3MFxcdThFNzZcXHU4RTdDXFx1OEU2RlxcdThFNzRcXHU4RTg1XFx1OEU4RlxcdThFOTRcXHU4RTkwXFx1OEU5Q1xcdThFOUVcXHU4Qzc4XFx1OEM4MlxcdThDOEFcXHU4Qzg1XFx1OEM5OFxcdThDOTRcXHU2NTlCXFx1ODlENlxcdTg5REVcXHU4OURBXFx1ODlEQ1wiXSxcbiAgICAgIFtcImY2NDBcIiwgXCJcXHU5QkRDXCIsIDYyXSxcbiAgICAgIFtcImY2ODBcIiwgXCJcXHU5QzFCXCIsIDMyLCBcIlxcdTg5RTVcXHU4OUVCXFx1ODlFRlxcdThBM0VcXHU4QjI2XFx1OTc1M1xcdTk2RTlcXHU5NkYzXFx1OTZFRlxcdTk3MDZcXHU5NzAxXFx1OTcwOFxcdTk3MEZcXHU5NzBFXFx1OTcyQVxcdTk3MkRcXHU5NzMwXFx1OTczRVxcdTlGODBcXHU5RjgzXFx1OUY4NVwiLCA1LCBcIlxcdTlGOENcXHU5RUZFXFx1OUYwQlxcdTlGMERcXHU5NkI5XFx1OTZCQ1xcdTk2QkRcXHU5NkNFXFx1OTZEMlxcdTc3QkZcXHU5NkUwXFx1OTI4RVxcdTkyQUVcXHU5MkM4XFx1OTMzRVxcdTkzNkFcXHU5M0NBXFx1OTM4RlxcdTk0M0VcXHU5NDZCXFx1OUM3RlxcdTlDODJcXHU5Qzg1XFx1OUM4NlxcdTlDODdcXHU5Qzg4XFx1N0EyM1xcdTlDOEJcXHU5QzhFXFx1OUM5MFxcdTlDOTFcXHU5QzkyXFx1OUM5NFxcdTlDOTVcXHU5QzlBXFx1OUM5QlxcdTlDOUVcIiwgNSwgXCJcXHU5Q0E1XCIsIDQsIFwiXFx1OUNBQlxcdTlDQURcXHU5Q0FFXFx1OUNCMFwiLCA3LCBcIlxcdTlDQkFcXHU5Q0JCXFx1OUNCQ1xcdTlDQkRcXHU5Q0M0XFx1OUNDNVxcdTlDQzZcXHU5Q0M3XFx1OUNDQVxcdTlDQ0JcIl0sXG4gICAgICBbXCJmNzQwXCIsIFwiXFx1OUMzQ1wiLCA2Ml0sXG4gICAgICBbXCJmNzgwXCIsIFwiXFx1OUM3QlxcdTlDN0RcXHU5QzdFXFx1OUM4MFxcdTlDODNcXHU5Qzg0XFx1OUM4OVxcdTlDOEFcXHU5QzhDXFx1OUM4RlxcdTlDOTNcXHU5Qzk2XFx1OUM5N1xcdTlDOThcXHU5Qzk5XFx1OUM5RFxcdTlDQUFcXHU5Q0FDXFx1OUNBRlxcdTlDQjlcXHU5Q0JFXCIsIDQsIFwiXFx1OUNDOFxcdTlDQzlcXHU5Q0QxXFx1OUNEMlxcdTlDREFcXHU5Q0RCXFx1OUNFMFxcdTlDRTFcXHU5Q0NDXCIsIDQsIFwiXFx1OUNEM1xcdTlDRDRcXHU5Q0Q1XFx1OUNEN1xcdTlDRDhcXHU5Q0Q5XFx1OUNEQ1xcdTlDRERcXHU5Q0RGXFx1OUNFMlxcdTk3N0NcXHU5Nzg1XFx1OTc5MVxcdTk3OTJcXHU5Nzk0XFx1OTdBRlxcdTk3QUJcXHU5N0EzXFx1OTdCMlxcdTk3QjRcXHU5QUIxXFx1OUFCMFxcdTlBQjdcXHU5RTU4XFx1OUFCNlxcdTlBQkFcXHU5QUJDXFx1OUFDMVxcdTlBQzBcXHU5QUM1XFx1OUFDMlxcdTlBQ0JcXHU5QUNDXFx1OUFEMVxcdTlCNDVcXHU5QjQzXFx1OUI0N1xcdTlCNDlcXHU5QjQ4XFx1OUI0RFxcdTlCNTFcXHU5OEU4XFx1OTkwRFxcdTk5MkVcXHU5OTU1XFx1OTk1NFxcdTlBREZcXHU5QUUxXFx1OUFFNlxcdTlBRUZcXHU5QUVCXFx1OUFGQlxcdTlBRURcXHU5QUY5XFx1OUIwOFxcdTlCMEZcXHU5QjEzXFx1OUIxRlxcdTlCMjNcXHU5RUJEXFx1OUVCRVxcdTdFM0JcXHU5RTgyXFx1OUU4N1xcdTlFODhcXHU5RThCXFx1OUU5MlxcdTkzRDZcXHU5RTlEXFx1OUU5RlxcdTlFREJcXHU5RURDXFx1OUVERFxcdTlFRTBcXHU5RURGXFx1OUVFMlxcdTlFRTlcXHU5RUU3XFx1OUVFNVxcdTlFRUFcXHU5RUVGXFx1OUYyMlxcdTlGMkNcXHU5RjJGXFx1OUYzOVxcdTlGMzdcXHU5RjNEXFx1OUYzRVxcdTlGNDRcIl0sXG4gICAgICBbXCJmODQwXCIsIFwiXFx1OUNFM1wiLCA2Ml0sXG4gICAgICBbXCJmODgwXCIsIFwiXFx1OUQyMlwiLCAzMl0sXG4gICAgICBbXCJmOTQwXCIsIFwiXFx1OUQ0M1wiLCA2Ml0sXG4gICAgICBbXCJmOTgwXCIsIFwiXFx1OUQ4MlwiLCAzMl0sXG4gICAgICBbXCJmYTQwXCIsIFwiXFx1OURBM1wiLCA2Ml0sXG4gICAgICBbXCJmYTgwXCIsIFwiXFx1OURFMlwiLCAzMl0sXG4gICAgICBbXCJmYjQwXCIsIFwiXFx1OUUwM1wiLCAyNywgXCJcXHU5RTI0XFx1OUUyN1xcdTlFMkVcXHU5RTMwXFx1OUUzNFxcdTlFM0JcXHU5RTNDXFx1OUU0MFxcdTlFNERcXHU5RTUwXFx1OUU1MlxcdTlFNTNcXHU5RTU0XFx1OUU1NlxcdTlFNTlcXHU5RTVEXFx1OUU1RlxcdTlFNjBcXHU5RTYxXFx1OUU2MlxcdTlFNjVcXHU5RTZFXFx1OUU2RlxcdTlFNzJcXHU5RTc0XCIsIDksIFwiXFx1OUU4MFwiXSxcbiAgICAgIFtcImZiODBcIiwgXCJcXHU5RTgxXFx1OUU4M1xcdTlFODRcXHU5RTg1XFx1OUU4NlxcdTlFODlcXHU5RThBXFx1OUU4Q1wiLCA1LCBcIlxcdTlFOTRcIiwgOCwgXCJcXHU5RTlFXFx1OUVBMFwiLCA1LCBcIlxcdTlFQTdcXHU5RUE4XFx1OUVBOVxcdTlFQUFcIl0sXG4gICAgICBbXCJmYzQwXCIsIFwiXFx1OUVBQlwiLCA4LCBcIlxcdTlFQjVcXHU5RUI2XFx1OUVCN1xcdTlFQjlcXHU5RUJBXFx1OUVCQ1xcdTlFQkZcIiwgNCwgXCJcXHU5RUM1XFx1OUVDNlxcdTlFQzdcXHU5RUM4XFx1OUVDQVxcdTlFQ0JcXHU5RUNDXFx1OUVEMFxcdTlFRDJcXHU5RUQzXFx1OUVENVxcdTlFRDZcXHU5RUQ3XFx1OUVEOVxcdTlFREFcXHU5RURFXFx1OUVFMVxcdTlFRTNcXHU5RUU0XFx1OUVFNlxcdTlFRThcXHU5RUVCXFx1OUVFQ1xcdTlFRURcXHU5RUVFXFx1OUVGMFwiLCA4LCBcIlxcdTlFRkFcXHU5RUZEXFx1OUVGRlwiLCA2XSxcbiAgICAgIFtcImZjODBcIiwgXCJcXHU5RjA2XCIsIDQsIFwiXFx1OUYwQ1xcdTlGMEZcXHU5RjExXFx1OUYxMlxcdTlGMTRcXHU5RjE1XFx1OUYxNlxcdTlGMThcXHU5RjFBXCIsIDUsIFwiXFx1OUYyMVxcdTlGMjNcIiwgOCwgXCJcXHU5RjJEXFx1OUYyRVxcdTlGMzBcXHU5RjMxXCJdLFxuICAgICAgW1wiZmQ0MFwiLCBcIlxcdTlGMzJcIiwgNCwgXCJcXHU5RjM4XFx1OUYzQVxcdTlGM0NcXHU5RjNGXCIsIDQsIFwiXFx1OUY0NVwiLCAxMCwgXCJcXHU5RjUyXCIsIDM4XSxcbiAgICAgIFtcImZkODBcIiwgXCJcXHU5Rjc5XCIsIDUsIFwiXFx1OUY4MVxcdTlGODJcXHU5RjhEXCIsIDExLCBcIlxcdTlGOUNcXHU5RjlEXFx1OUY5RVxcdTlGQTFcIiwgNCwgXCJcXHVGOTJDXFx1Rjk3OVxcdUY5OTVcXHVGOUU3XFx1RjlGMVwiXSxcbiAgICAgIFtcImZlNDBcIiwgXCJcXHVGQTBDXFx1RkEwRFxcdUZBMEVcXHVGQTBGXFx1RkExMVxcdUZBMTNcXHVGQTE0XFx1RkExOFxcdUZBMUZcXHVGQTIwXFx1RkEyMVxcdUZBMjNcXHVGQTI0XFx1RkEyN1xcdUZBMjhcXHVGQTI5XCJdXG4gICAgXTtcbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9ib2R5LXBhcnNlci9ub2RlX21vZHVsZXMvaWNvbnYtbGl0ZS9lbmNvZGluZ3MvdGFibGVzL2diay1hZGRlZC5qc29uXG52YXIgcmVxdWlyZV9nYmtfYWRkZWQyID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL2JvZHktcGFyc2VyL25vZGVfbW9kdWxlcy9pY29udi1saXRlL2VuY29kaW5ncy90YWJsZXMvZ2JrLWFkZGVkLmpzb25cIihleHBvcnRzMiwgbW9kdWxlMikge1xuICAgIG1vZHVsZTIuZXhwb3J0cyA9IFtcbiAgICAgIFtcImExNDBcIiwgXCJcXHVFNEM2XCIsIDYyXSxcbiAgICAgIFtcImExODBcIiwgXCJcXHVFNTA1XCIsIDMyXSxcbiAgICAgIFtcImEyNDBcIiwgXCJcXHVFNTI2XCIsIDYyXSxcbiAgICAgIFtcImEyODBcIiwgXCJcXHVFNTY1XCIsIDMyXSxcbiAgICAgIFtcImEyYWJcIiwgXCJcXHVFNzY2XCIsIDVdLFxuICAgICAgW1wiYTJlM1wiLCBcIlxcdTIwQUNcXHVFNzZEXCJdLFxuICAgICAgW1wiYTJlZlwiLCBcIlxcdUU3NkVcXHVFNzZGXCJdLFxuICAgICAgW1wiYTJmZFwiLCBcIlxcdUU3NzBcXHVFNzcxXCJdLFxuICAgICAgW1wiYTM0MFwiLCBcIlxcdUU1ODZcIiwgNjJdLFxuICAgICAgW1wiYTM4MFwiLCBcIlxcdUU1QzVcIiwgMzEsIFwiXFx1MzAwMFwiXSxcbiAgICAgIFtcImE0NDBcIiwgXCJcXHVFNUU2XCIsIDYyXSxcbiAgICAgIFtcImE0ODBcIiwgXCJcXHVFNjI1XCIsIDMyXSxcbiAgICAgIFtcImE0ZjRcIiwgXCJcXHVFNzcyXCIsIDEwXSxcbiAgICAgIFtcImE1NDBcIiwgXCJcXHVFNjQ2XCIsIDYyXSxcbiAgICAgIFtcImE1ODBcIiwgXCJcXHVFNjg1XCIsIDMyXSxcbiAgICAgIFtcImE1ZjdcIiwgXCJcXHVFNzdEXCIsIDddLFxuICAgICAgW1wiYTY0MFwiLCBcIlxcdUU2QTZcIiwgNjJdLFxuICAgICAgW1wiYTY4MFwiLCBcIlxcdUU2RTVcIiwgMzJdLFxuICAgICAgW1wiYTZiOVwiLCBcIlxcdUU3ODVcIiwgN10sXG4gICAgICBbXCJhNmQ5XCIsIFwiXFx1RTc4RFwiLCA2XSxcbiAgICAgIFtcImE2ZWNcIiwgXCJcXHVFNzk0XFx1RTc5NVwiXSxcbiAgICAgIFtcImE2ZjNcIiwgXCJcXHVFNzk2XCJdLFxuICAgICAgW1wiYTZmNlwiLCBcIlxcdUU3OTdcIiwgOF0sXG4gICAgICBbXCJhNzQwXCIsIFwiXFx1RTcwNlwiLCA2Ml0sXG4gICAgICBbXCJhNzgwXCIsIFwiXFx1RTc0NVwiLCAzMl0sXG4gICAgICBbXCJhN2MyXCIsIFwiXFx1RTdBMFwiLCAxNF0sXG4gICAgICBbXCJhN2YyXCIsIFwiXFx1RTdBRlwiLCAxMl0sXG4gICAgICBbXCJhODk2XCIsIFwiXFx1RTdCQ1wiLCAxMF0sXG4gICAgICBbXCJhOGJjXCIsIFwiXFx1MUUzRlwiXSxcbiAgICAgIFtcImE4YmZcIiwgXCJcXHUwMUY5XCJdLFxuICAgICAgW1wiYThjMVwiLCBcIlxcdUU3QzlcXHVFN0NBXFx1RTdDQlxcdUU3Q0NcIl0sXG4gICAgICBbXCJhOGVhXCIsIFwiXFx1RTdDRFwiLCAyMF0sXG4gICAgICBbXCJhOTU4XCIsIFwiXFx1RTdFMlwiXSxcbiAgICAgIFtcImE5NWJcIiwgXCJcXHVFN0UzXCJdLFxuICAgICAgW1wiYTk1ZFwiLCBcIlxcdUU3RTRcXHVFN0U1XFx1RTdFNlwiXSxcbiAgICAgIFtcImE5ODlcIiwgXCJcXHUzMDNFXFx1MkZGMFwiLCAxMV0sXG4gICAgICBbXCJhOTk3XCIsIFwiXFx1RTdGNFwiLCAxMl0sXG4gICAgICBbXCJhOWYwXCIsIFwiXFx1RTgwMVwiLCAxNF0sXG4gICAgICBbXCJhYWExXCIsIFwiXFx1RTAwMFwiLCA5M10sXG4gICAgICBbXCJhYmExXCIsIFwiXFx1RTA1RVwiLCA5M10sXG4gICAgICBbXCJhY2ExXCIsIFwiXFx1RTBCQ1wiLCA5M10sXG4gICAgICBbXCJhZGExXCIsIFwiXFx1RTExQVwiLCA5M10sXG4gICAgICBbXCJhZWExXCIsIFwiXFx1RTE3OFwiLCA5M10sXG4gICAgICBbXCJhZmExXCIsIFwiXFx1RTFENlwiLCA5M10sXG4gICAgICBbXCJkN2ZhXCIsIFwiXFx1RTgxMFwiLCA0XSxcbiAgICAgIFtcImY4YTFcIiwgXCJcXHVFMjM0XCIsIDkzXSxcbiAgICAgIFtcImY5YTFcIiwgXCJcXHVFMjkyXCIsIDkzXSxcbiAgICAgIFtcImZhYTFcIiwgXCJcXHVFMkYwXCIsIDkzXSxcbiAgICAgIFtcImZiYTFcIiwgXCJcXHVFMzRFXCIsIDkzXSxcbiAgICAgIFtcImZjYTFcIiwgXCJcXHVFM0FDXCIsIDkzXSxcbiAgICAgIFtcImZkYTFcIiwgXCJcXHVFNDBBXCIsIDkzXSxcbiAgICAgIFtcImZlNTBcIiwgXCJcXHUyRTgxXFx1RTgxNlxcdUU4MTdcXHVFODE4XFx1MkU4NFxcdTM0NzNcXHUzNDQ3XFx1MkU4OFxcdTJFOEJcXHVFODFFXFx1MzU5RVxcdTM2MUFcXHUzNjBFXFx1MkU4Q1xcdTJFOTdcXHUzOTZFXFx1MzkxOFxcdUU4MjZcXHUzOUNGXFx1MzlERlxcdTNBNzNcXHUzOUQwXFx1RTgyQlxcdUU4MkNcXHUzQjRFXFx1M0M2RVxcdTNDRTBcXHUyRUE3XFx1RTgzMVxcdUU4MzJcXHUyRUFBXFx1NDA1NlxcdTQxNUZcXHUyRUFFXFx1NDMzN1xcdTJFQjNcXHUyRUI2XFx1MkVCN1xcdUU4M0JcXHU0M0IxXFx1NDNBQ1xcdTJFQkJcXHU0M0REXFx1NDRENlxcdTQ2NjFcXHU0NjRDXFx1RTg0M1wiXSxcbiAgICAgIFtcImZlODBcIiwgXCJcXHU0NzIzXFx1NDcyOVxcdTQ3N0NcXHU0NzhEXFx1MkVDQVxcdTQ5NDdcXHU0OTdBXFx1NDk3RFxcdTQ5ODJcXHU0OTgzXFx1NDk4NVxcdTQ5ODZcXHU0OTlGXFx1NDk5QlxcdTQ5QjdcXHU0OUI2XFx1RTg1NFxcdUU4NTVcXHU0Q0EzXFx1NEM5RlxcdTRDQTBcXHU0Q0ExXFx1NEM3N1xcdTRDQTJcXHU0RDEzXCIsIDYsIFwiXFx1NERBRVxcdUU4NjRcXHVFNDY4XCIsIDkzXSxcbiAgICAgIFtcIjgxMzVmNDM3XCIsIFwiXFx1RTdDN1wiXVxuICAgIF07XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvYm9keS1wYXJzZXIvbm9kZV9tb2R1bGVzL2ljb252LWxpdGUvZW5jb2RpbmdzL3RhYmxlcy9nYjE4MDMwLXJhbmdlcy5qc29uXG52YXIgcmVxdWlyZV9nYjE4MDMwX3JhbmdlczIgPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvYm9keS1wYXJzZXIvbm9kZV9tb2R1bGVzL2ljb252LWxpdGUvZW5jb2RpbmdzL3RhYmxlcy9nYjE4MDMwLXJhbmdlcy5qc29uXCIoZXhwb3J0czIsIG1vZHVsZTIpIHtcbiAgICBtb2R1bGUyLmV4cG9ydHMgPSB7IHVDaGFyczogWzEyOCwgMTY1LCAxNjksIDE3OCwgMTg0LCAyMTYsIDIyNiwgMjM1LCAyMzgsIDI0NCwgMjQ4LCAyNTEsIDI1MywgMjU4LCAyNzYsIDI4NCwgMzAwLCAzMjUsIDMyOSwgMzM0LCAzNjQsIDQ2MywgNDY1LCA0NjcsIDQ2OSwgNDcxLCA0NzMsIDQ3NSwgNDc3LCA1MDYsIDU5NCwgNjEwLCA3MTIsIDcxNiwgNzMwLCA5MzAsIDkzOCwgOTYyLCA5NzAsIDEwMjYsIDExMDQsIDExMDYsIDgyMDksIDgyMTUsIDgyMTgsIDgyMjIsIDgyMzEsIDgyNDEsIDgyNDQsIDgyNDYsIDgyNTIsIDgzNjUsIDg0NTIsIDg0NTQsIDg0NTgsIDg0NzEsIDg0ODIsIDg1NTYsIDg1NzAsIDg1OTYsIDg2MDIsIDg3MTMsIDg3MjAsIDg3MjIsIDg3MjYsIDg3MzEsIDg3MzcsIDg3NDAsIDg3NDIsIDg3NDgsIDg3NTEsIDg3NjAsIDg3NjYsIDg3NzcsIDg3ODEsIDg3ODcsIDg4MDIsIDg4MDgsIDg4MTYsIDg4NTQsIDg4NTgsIDg4NzAsIDg4OTYsIDg5NzksIDkzMjIsIDkzNzIsIDk1NDgsIDk1ODgsIDk2MTYsIDk2MjIsIDk2MzQsIDk2NTIsIDk2NjIsIDk2NzIsIDk2NzYsIDk2ODAsIDk3MDIsIDk3MzUsIDk3MzgsIDk3OTMsIDk3OTUsIDExOTA2LCAxMTkwOSwgMTE5MTMsIDExOTE3LCAxMTkyOCwgMTE5NDQsIDExOTQ3LCAxMTk1MSwgMTE5NTYsIDExOTYwLCAxMTk2NCwgMTE5NzksIDEyMjg0LCAxMjI5MiwgMTIzMTIsIDEyMzE5LCAxMjMzMCwgMTIzNTEsIDEyNDM2LCAxMjQ0NywgMTI1MzUsIDEyNTQzLCAxMjU4NiwgMTI4NDIsIDEyODUwLCAxMjk2NCwgMTMyMDAsIDEzMjE1LCAxMzIxOCwgMTMyNTMsIDEzMjYzLCAxMzI2NywgMTMyNzAsIDEzMzg0LCAxMzQyOCwgMTM3MjcsIDEzODM5LCAxMzg1MSwgMTQ2MTcsIDE0NzAzLCAxNDgwMSwgMTQ4MTYsIDE0OTY0LCAxNTE4MywgMTU0NzEsIDE1NTg1LCAxNjQ3MSwgMTY3MzYsIDE3MjA4LCAxNzMyNSwgMTczMzAsIDE3Mzc0LCAxNzYyMywgMTc5OTcsIDE4MDE4LCAxODIxMiwgMTgyMTgsIDE4MzAxLCAxODMxOCwgMTg3NjAsIDE4ODExLCAxODgxNCwgMTg4MjAsIDE4ODIzLCAxODg0NCwgMTg4NDgsIDE4ODcyLCAxOTU3NiwgMTk2MjAsIDE5NzM4LCAxOTg4NywgNDA4NzAsIDU5MjQ0LCA1OTMzNiwgNTkzNjcsIDU5NDEzLCA1OTQxNywgNTk0MjMsIDU5NDMxLCA1OTQzNywgNTk0NDMsIDU5NDUyLCA1OTQ2MCwgNTk0NzgsIDU5NDkzLCA2Mzc4OSwgNjM4NjYsIDYzODk0LCA2Mzk3NiwgNjM5ODYsIDY0MDE2LCA2NDAxOCwgNjQwMjEsIDY0MDI1LCA2NDAzNCwgNjQwMzcsIDY0MDQyLCA2NTA3NCwgNjUwOTMsIDY1MTA3LCA2NTExMiwgNjUxMjcsIDY1MTMyLCA2NTM3NSwgNjU1MTAsIDY1NTM2XSwgZ2JDaGFyczogWzAsIDM2LCAzOCwgNDUsIDUwLCA4MSwgODksIDk1LCA5NiwgMTAwLCAxMDMsIDEwNCwgMTA1LCAxMDksIDEyNiwgMTMzLCAxNDgsIDE3MiwgMTc1LCAxNzksIDIwOCwgMzA2LCAzMDcsIDMwOCwgMzA5LCAzMTAsIDMxMSwgMzEyLCAzMTMsIDM0MSwgNDI4LCA0NDMsIDU0NCwgNTQ1LCA1NTgsIDc0MSwgNzQyLCA3NDksIDc1MCwgODA1LCA4MTksIDgyMCwgNzkyMiwgNzkyNCwgNzkyNSwgNzkyNywgNzkzNCwgNzk0MywgNzk0NCwgNzk0NSwgNzk1MCwgODA2MiwgODE0OCwgODE0OSwgODE1MiwgODE2NCwgODE3NCwgODIzNiwgODI0MCwgODI2MiwgODI2NCwgODM3NCwgODM4MCwgODM4MSwgODM4NCwgODM4OCwgODM5MCwgODM5MiwgODM5MywgODM5NCwgODM5NiwgODQwMSwgODQwNiwgODQxNiwgODQxOSwgODQyNCwgODQzNywgODQzOSwgODQ0NSwgODQ4MiwgODQ4NSwgODQ5NiwgODUyMSwgODYwMywgODkzNiwgODk0NiwgOTA0NiwgOTA1MCwgOTA2MywgOTA2NiwgOTA3NiwgOTA5MiwgOTEwMCwgOTEwOCwgOTExMSwgOTExMywgOTEzMSwgOTE2MiwgOTE2NCwgOTIxOCwgOTIxOSwgMTEzMjksIDExMzMxLCAxMTMzNCwgMTEzMzYsIDExMzQ2LCAxMTM2MSwgMTEzNjMsIDExMzY2LCAxMTM3MCwgMTEzNzIsIDExMzc1LCAxMTM4OSwgMTE2ODIsIDExNjg2LCAxMTY4NywgMTE2OTIsIDExNjk0LCAxMTcxNCwgMTE3MTYsIDExNzIzLCAxMTcyNSwgMTE3MzAsIDExNzM2LCAxMTk4MiwgMTE5ODksIDEyMTAyLCAxMjMzNiwgMTIzNDgsIDEyMzUwLCAxMjM4NCwgMTIzOTMsIDEyMzk1LCAxMjM5NywgMTI1MTAsIDEyNTUzLCAxMjg1MSwgMTI5NjIsIDEyOTczLCAxMzczOCwgMTM4MjMsIDEzOTE5LCAxMzkzMywgMTQwODAsIDE0Mjk4LCAxNDU4NSwgMTQ2OTgsIDE1NTgzLCAxNTg0NywgMTYzMTgsIDE2NDM0LCAxNjQzOCwgMTY0ODEsIDE2NzI5LCAxNzEwMiwgMTcxMjIsIDE3MzE1LCAxNzMyMCwgMTc0MDIsIDE3NDE4LCAxNzg1OSwgMTc5MDksIDE3OTExLCAxNzkxNSwgMTc5MTYsIDE3OTM2LCAxNzkzOSwgMTc5NjEsIDE4NjY0LCAxODcwMywgMTg4MTQsIDE4OTYyLCAxOTA0MywgMzM0NjksIDMzNDcwLCAzMzQ3MSwgMzM0ODQsIDMzNDg1LCAzMzQ5MCwgMzM0OTcsIDMzNTAxLCAzMzUwNSwgMzM1MTMsIDMzNTIwLCAzMzUzNiwgMzM1NTAsIDM3ODQ1LCAzNzkyMSwgMzc5NDgsIDM4MDI5LCAzODAzOCwgMzgwNjQsIDM4MDY1LCAzODA2NiwgMzgwNjksIDM4MDc1LCAzODA3NiwgMzgwNzgsIDM5MTA4LCAzOTEwOSwgMzkxMTMsIDM5MTE0LCAzOTExNSwgMzkxMTYsIDM5MjY1LCAzOTM5NCwgMTg5ZTNdIH07XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvYm9keS1wYXJzZXIvbm9kZV9tb2R1bGVzL2ljb252LWxpdGUvZW5jb2RpbmdzL3RhYmxlcy9jcDk0OS5qc29uXG52YXIgcmVxdWlyZV9jcDk0OTIgPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvYm9keS1wYXJzZXIvbm9kZV9tb2R1bGVzL2ljb252LWxpdGUvZW5jb2RpbmdzL3RhYmxlcy9jcDk0OS5qc29uXCIoZXhwb3J0czIsIG1vZHVsZTIpIHtcbiAgICBtb2R1bGUyLmV4cG9ydHMgPSBbXG4gICAgICBbXCIwXCIsIFwiXFwwXCIsIDEyN10sXG4gICAgICBbXCI4MTQxXCIsIFwiXFx1QUMwMlxcdUFDMDNcXHVBQzA1XFx1QUMwNlxcdUFDMEJcIiwgNCwgXCJcXHVBQzE4XFx1QUMxRVxcdUFDMUZcXHVBQzIxXFx1QUMyMlxcdUFDMjNcXHVBQzI1XCIsIDYsIFwiXFx1QUMyRVxcdUFDMzJcXHVBQzMzXFx1QUMzNFwiXSxcbiAgICAgIFtcIjgxNjFcIiwgXCJcXHVBQzM1XFx1QUMzNlxcdUFDMzdcXHVBQzNBXFx1QUMzQlxcdUFDM0RcXHVBQzNFXFx1QUMzRlxcdUFDNDFcIiwgOSwgXCJcXHVBQzRDXFx1QUM0RVwiLCA1LCBcIlxcdUFDNTVcIl0sXG4gICAgICBbXCI4MTgxXCIsIFwiXFx1QUM1NlxcdUFDNTdcXHVBQzU5XFx1QUM1QVxcdUFDNUJcXHVBQzVEXCIsIDE4LCBcIlxcdUFDNzJcXHVBQzczXFx1QUM3NVxcdUFDNzZcXHVBQzc5XFx1QUM3QlwiLCA0LCBcIlxcdUFDODJcXHVBQzg3XFx1QUM4OFxcdUFDOERcXHVBQzhFXFx1QUM4RlxcdUFDOTFcXHVBQzkyXFx1QUM5M1xcdUFDOTVcIiwgNiwgXCJcXHVBQzlFXFx1QUNBMlwiLCA1LCBcIlxcdUFDQUJcXHVBQ0FEXFx1QUNBRVxcdUFDQjFcIiwgNiwgXCJcXHVBQ0JBXFx1QUNCRVxcdUFDQkZcXHVBQ0MwXFx1QUNDMlxcdUFDQzNcXHVBQ0M1XFx1QUNDNlxcdUFDQzdcXHVBQ0M5XFx1QUNDQVxcdUFDQ0JcXHVBQ0NEXCIsIDcsIFwiXFx1QUNENlxcdUFDRDhcIiwgNywgXCJcXHVBQ0UyXFx1QUNFM1xcdUFDRTVcXHVBQ0U2XFx1QUNFOVxcdUFDRUJcXHVBQ0VEXFx1QUNFRVxcdUFDRjJcXHVBQ0Y0XFx1QUNGN1wiLCA0LCBcIlxcdUFDRkVcXHVBQ0ZGXFx1QUQwMVxcdUFEMDJcXHVBRDAzXFx1QUQwNVxcdUFEMDdcIiwgNCwgXCJcXHVBRDBFXFx1QUQxMFxcdUFEMTJcXHVBRDEzXCJdLFxuICAgICAgW1wiODI0MVwiLCBcIlxcdUFEMTRcXHVBRDE1XFx1QUQxNlxcdUFEMTdcXHVBRDE5XFx1QUQxQVxcdUFEMUJcXHVBRDFEXFx1QUQxRVxcdUFEMUZcXHVBRDIxXCIsIDcsIFwiXFx1QUQyQVxcdUFEMkJcXHVBRDJFXCIsIDVdLFxuICAgICAgW1wiODI2MVwiLCBcIlxcdUFEMzZcXHVBRDM3XFx1QUQzOVxcdUFEM0FcXHVBRDNCXFx1QUQzRFwiLCA2LCBcIlxcdUFENDZcXHVBRDQ4XFx1QUQ0QVwiLCA1LCBcIlxcdUFENTFcXHVBRDUyXFx1QUQ1M1xcdUFENTVcXHVBRDU2XFx1QUQ1N1wiXSxcbiAgICAgIFtcIjgyODFcIiwgXCJcXHVBRDU5XCIsIDcsIFwiXFx1QUQ2MlxcdUFENjRcIiwgNywgXCJcXHVBRDZFXFx1QUQ2RlxcdUFENzFcXHVBRDcyXFx1QUQ3N1xcdUFENzhcXHVBRDc5XFx1QUQ3QVxcdUFEN0VcXHVBRDgwXFx1QUQ4M1wiLCA0LCBcIlxcdUFEOEFcXHVBRDhCXFx1QUQ4RFxcdUFEOEVcXHVBRDhGXFx1QUQ5MVwiLCAxMCwgXCJcXHVBRDlFXCIsIDUsIFwiXFx1QURBNVwiLCAxNywgXCJcXHVBREI4XCIsIDcsIFwiXFx1QURDMlxcdUFEQzNcXHVBREM1XFx1QURDNlxcdUFEQzdcXHVBREM5XCIsIDYsIFwiXFx1QUREMlxcdUFERDRcIiwgNywgXCJcXHVBREREXFx1QURERVxcdUFEREZcXHVBREUxXFx1QURFMlxcdUFERTNcXHVBREU1XCIsIDE4XSxcbiAgICAgIFtcIjgzNDFcIiwgXCJcXHVBREZBXFx1QURGQlxcdUFERkRcXHVBREZFXFx1QUUwMlwiLCA1LCBcIlxcdUFFMEFcXHVBRTBDXFx1QUUwRVwiLCA1LCBcIlxcdUFFMTVcIiwgN10sXG4gICAgICBbXCI4MzYxXCIsIFwiXFx1QUUxRFwiLCAxOCwgXCJcXHVBRTMyXFx1QUUzM1xcdUFFMzVcXHVBRTM2XFx1QUUzOVxcdUFFM0JcXHVBRTNDXCJdLFxuICAgICAgW1wiODM4MVwiLCBcIlxcdUFFM0RcXHVBRTNFXFx1QUUzRlxcdUFFNDJcXHVBRTQ0XFx1QUU0N1xcdUFFNDhcXHVBRTQ5XFx1QUU0QlxcdUFFNEZcXHVBRTUxXFx1QUU1MlxcdUFFNTNcXHVBRTU1XFx1QUU1N1wiLCA0LCBcIlxcdUFFNUVcXHVBRTYyXFx1QUU2M1xcdUFFNjRcXHVBRTY2XFx1QUU2N1xcdUFFNkFcXHVBRTZCXFx1QUU2RFxcdUFFNkVcXHVBRTZGXFx1QUU3MVwiLCA2LCBcIlxcdUFFN0FcXHVBRTdFXCIsIDUsIFwiXFx1QUU4NlwiLCA1LCBcIlxcdUFFOERcIiwgNDYsIFwiXFx1QUVCRlxcdUFFQzFcXHVBRUMyXFx1QUVDM1xcdUFFQzVcIiwgNiwgXCJcXHVBRUNFXFx1QUVEMlwiLCA1LCBcIlxcdUFFREFcXHVBRURCXFx1QUVERFwiLCA4XSxcbiAgICAgIFtcIjg0NDFcIiwgXCJcXHVBRUU2XFx1QUVFN1xcdUFFRTlcXHVBRUVBXFx1QUVFQ1xcdUFFRUVcIiwgNSwgXCJcXHVBRUY1XFx1QUVGNlxcdUFFRjdcXHVBRUY5XFx1QUVGQVxcdUFFRkJcXHVBRUZEXCIsIDhdLFxuICAgICAgW1wiODQ2MVwiLCBcIlxcdUFGMDZcXHVBRjA5XFx1QUYwQVxcdUFGMEJcXHVBRjBDXFx1QUYwRVxcdUFGMEZcXHVBRjExXCIsIDE4XSxcbiAgICAgIFtcIjg0ODFcIiwgXCJcXHVBRjI0XCIsIDcsIFwiXFx1QUYyRVxcdUFGMkZcXHVBRjMxXFx1QUYzM1xcdUFGMzVcIiwgNiwgXCJcXHVBRjNFXFx1QUY0MFxcdUFGNDRcXHVBRjQ1XFx1QUY0NlxcdUFGNDdcXHVBRjRBXCIsIDUsIFwiXFx1QUY1MVwiLCAxMCwgXCJcXHVBRjVFXCIsIDUsIFwiXFx1QUY2NlwiLCAxOCwgXCJcXHVBRjdBXCIsIDUsIFwiXFx1QUY4MVxcdUFGODJcXHVBRjgzXFx1QUY4NVxcdUFGODZcXHVBRjg3XFx1QUY4OVwiLCA2LCBcIlxcdUFGOTJcXHVBRjkzXFx1QUY5NFxcdUFGOTZcIiwgNSwgXCJcXHVBRjlEXCIsIDI2LCBcIlxcdUFGQkFcXHVBRkJCXFx1QUZCRFxcdUFGQkVcIl0sXG4gICAgICBbXCI4NTQxXCIsIFwiXFx1QUZCRlxcdUFGQzFcIiwgNSwgXCJcXHVBRkNBXFx1QUZDQ1xcdUFGQ0ZcIiwgNCwgXCJcXHVBRkQ1XCIsIDYsIFwiXFx1QUZERFwiLCA0XSxcbiAgICAgIFtcIjg1NjFcIiwgXCJcXHVBRkUyXCIsIDUsIFwiXFx1QUZFQVwiLCA1LCBcIlxcdUFGRjJcXHVBRkYzXFx1QUZGNVxcdUFGRjZcXHVBRkY3XFx1QUZGOVwiLCA2LCBcIlxcdUIwMDJcXHVCMDAzXCJdLFxuICAgICAgW1wiODU4MVwiLCBcIlxcdUIwMDVcIiwgNiwgXCJcXHVCMDBEXFx1QjAwRVxcdUIwMEZcXHVCMDExXFx1QjAxMlxcdUIwMTNcXHVCMDE1XCIsIDYsIFwiXFx1QjAxRVwiLCA5LCBcIlxcdUIwMjlcIiwgMjYsIFwiXFx1QjA0NlxcdUIwNDdcXHVCMDQ5XFx1QjA0QlxcdUIwNERcXHVCMDRGXFx1QjA1MFxcdUIwNTFcXHVCMDUyXFx1QjA1NlxcdUIwNThcXHVCMDVBXFx1QjA1QlxcdUIwNUNcXHVCMDVFXCIsIDI5LCBcIlxcdUIwN0VcXHVCMDdGXFx1QjA4MVxcdUIwODJcXHVCMDgzXFx1QjA4NVwiLCA2LCBcIlxcdUIwOEVcXHVCMDkwXFx1QjA5MlwiLCA1LCBcIlxcdUIwOUJcXHVCMDlEXFx1QjA5RVxcdUIwQTNcXHVCMEE0XCJdLFxuICAgICAgW1wiODY0MVwiLCBcIlxcdUIwQTVcXHVCMEE2XFx1QjBBN1xcdUIwQUFcXHVCMEIwXFx1QjBCMlxcdUIwQjZcXHVCMEI3XFx1QjBCOVxcdUIwQkFcXHVCMEJCXFx1QjBCRFwiLCA2LCBcIlxcdUIwQzZcXHVCMENBXCIsIDUsIFwiXFx1QjBEMlwiXSxcbiAgICAgIFtcIjg2NjFcIiwgXCJcXHVCMEQzXFx1QjBENVxcdUIwRDZcXHVCMEQ3XFx1QjBEOVwiLCA2LCBcIlxcdUIwRTFcXHVCMEUyXFx1QjBFM1xcdUIwRTRcXHVCMEU2XCIsIDEwXSxcbiAgICAgIFtcIjg2ODFcIiwgXCJcXHVCMEYxXCIsIDIyLCBcIlxcdUIxMEFcXHVCMTBEXFx1QjEwRVxcdUIxMEZcXHVCMTExXFx1QjExNFxcdUIxMTVcXHVCMTE2XFx1QjExN1xcdUIxMUFcXHVCMTFFXCIsIDQsIFwiXFx1QjEyNlxcdUIxMjdcXHVCMTI5XFx1QjEyQVxcdUIxMkJcXHVCMTJEXCIsIDYsIFwiXFx1QjEzNlxcdUIxM0FcIiwgNSwgXCJcXHVCMTQyXFx1QjE0M1xcdUIxNDVcXHVCMTQ2XFx1QjE0N1xcdUIxNDlcIiwgNiwgXCJcXHVCMTUyXFx1QjE1M1xcdUIxNTZcXHVCMTU3XFx1QjE1OVxcdUIxNUFcXHVCMTVCXFx1QjE1RFxcdUIxNUVcXHVCMTVGXFx1QjE2MVwiLCAyMiwgXCJcXHVCMTdBXFx1QjE3QlxcdUIxN0RcXHVCMTdFXFx1QjE3RlxcdUIxODFcXHVCMTgzXCIsIDQsIFwiXFx1QjE4QVxcdUIxOENcXHVCMThFXFx1QjE4RlxcdUIxOTBcXHVCMTkxXFx1QjE5NVxcdUIxOTZcXHVCMTk3XFx1QjE5OVxcdUIxOUFcXHVCMTlCXFx1QjE5RFwiXSxcbiAgICAgIFtcIjg3NDFcIiwgXCJcXHVCMTlFXCIsIDksIFwiXFx1QjFBOVwiLCAxNV0sXG4gICAgICBbXCI4NzYxXCIsIFwiXFx1QjFCOVwiLCAxOCwgXCJcXHVCMUNEXFx1QjFDRVxcdUIxQ0ZcXHVCMUQxXFx1QjFEMlxcdUIxRDNcXHVCMUQ1XCJdLFxuICAgICAgW1wiODc4MVwiLCBcIlxcdUIxRDZcIiwgNSwgXCJcXHVCMURFXFx1QjFFMFwiLCA3LCBcIlxcdUIxRUFcXHVCMUVCXFx1QjFFRFxcdUIxRUVcXHVCMUVGXFx1QjFGMVwiLCA3LCBcIlxcdUIxRkFcXHVCMUZDXFx1QjFGRVwiLCA1LCBcIlxcdUIyMDZcXHVCMjA3XFx1QjIwOVxcdUIyMEFcXHVCMjBEXCIsIDYsIFwiXFx1QjIxNlxcdUIyMThcXHVCMjFBXCIsIDUsIFwiXFx1QjIyMVwiLCAxOCwgXCJcXHVCMjM1XCIsIDYsIFwiXFx1QjIzRFwiLCAyNiwgXCJcXHVCMjU5XFx1QjI1QVxcdUIyNUJcXHVCMjVEXFx1QjI1RVxcdUIyNUZcXHVCMjYxXCIsIDYsIFwiXFx1QjI2QVwiLCA0XSxcbiAgICAgIFtcIjg4NDFcIiwgXCJcXHVCMjZGXCIsIDQsIFwiXFx1QjI3NlwiLCA1LCBcIlxcdUIyN0RcIiwgNiwgXCJcXHVCMjg2XFx1QjI4N1xcdUIyODhcXHVCMjhBXCIsIDRdLFxuICAgICAgW1wiODg2MVwiLCBcIlxcdUIyOEZcXHVCMjkyXFx1QjI5M1xcdUIyOTVcXHVCMjk2XFx1QjI5N1xcdUIyOUJcIiwgNCwgXCJcXHVCMkEyXFx1QjJBNFxcdUIyQTdcXHVCMkE4XFx1QjJBOVxcdUIyQUJcXHVCMkFEXFx1QjJBRVxcdUIyQUZcXHVCMkIxXFx1QjJCMlxcdUIyQjNcXHVCMkI1XFx1QjJCNlxcdUIyQjdcIl0sXG4gICAgICBbXCI4ODgxXCIsIFwiXFx1QjJCOFwiLCAxNSwgXCJcXHVCMkNBXFx1QjJDQlxcdUIyQ0RcXHVCMkNFXFx1QjJDRlxcdUIyRDFcXHVCMkQzXCIsIDQsIFwiXFx1QjJEQVxcdUIyRENcXHVCMkRFXFx1QjJERlxcdUIyRTBcXHVCMkUxXFx1QjJFM1xcdUIyRTdcXHVCMkU5XFx1QjJFQVxcdUIyRjBcXHVCMkYxXFx1QjJGMlxcdUIyRjZcXHVCMkZDXFx1QjJGRFxcdUIyRkVcXHVCMzAyXFx1QjMwM1xcdUIzMDVcXHVCMzA2XFx1QjMwN1xcdUIzMDlcIiwgNiwgXCJcXHVCMzEyXFx1QjMxNlwiLCA1LCBcIlxcdUIzMURcIiwgNTQsIFwiXFx1QjM1N1xcdUIzNTlcXHVCMzVBXFx1QjM1RFxcdUIzNjBcXHVCMzYxXFx1QjM2MlxcdUIzNjNcIl0sXG4gICAgICBbXCI4OTQxXCIsIFwiXFx1QjM2NlxcdUIzNjhcXHVCMzZBXFx1QjM2Q1xcdUIzNkRcXHVCMzZGXFx1QjM3MlxcdUIzNzNcXHVCMzc1XFx1QjM3NlxcdUIzNzdcXHVCMzc5XCIsIDYsIFwiXFx1QjM4MlxcdUIzODZcIiwgNSwgXCJcXHVCMzhEXCJdLFxuICAgICAgW1wiODk2MVwiLCBcIlxcdUIzOEVcXHVCMzhGXFx1QjM5MVxcdUIzOTJcXHVCMzkzXFx1QjM5NVwiLCAxMCwgXCJcXHVCM0EyXCIsIDUsIFwiXFx1QjNBOVxcdUIzQUFcXHVCM0FCXFx1QjNBRFwiXSxcbiAgICAgIFtcIjg5ODFcIiwgXCJcXHVCM0FFXCIsIDIxLCBcIlxcdUIzQzZcXHVCM0M3XFx1QjNDOVxcdUIzQ0FcXHVCM0NEXFx1QjNDRlxcdUIzRDFcXHVCM0QyXFx1QjNEM1xcdUIzRDZcXHVCM0Q4XFx1QjNEQVxcdUIzRENcXHVCM0RFXFx1QjNERlxcdUIzRTFcXHVCM0UyXFx1QjNFM1xcdUIzRTVcXHVCM0U2XFx1QjNFN1xcdUIzRTlcIiwgMTgsIFwiXFx1QjNGRFwiLCAxOCwgXCJcXHVCNDExXCIsIDYsIFwiXFx1QjQxOVxcdUI0MUFcXHVCNDFCXFx1QjQxRFxcdUI0MUVcXHVCNDFGXFx1QjQyMVwiLCA2LCBcIlxcdUI0MkFcXHVCNDJDXCIsIDcsIFwiXFx1QjQzNVwiLCAxNV0sXG4gICAgICBbXCI4YTQxXCIsIFwiXFx1QjQ0NVwiLCAxMCwgXCJcXHVCNDUyXFx1QjQ1M1xcdUI0NTVcXHVCNDU2XFx1QjQ1N1xcdUI0NTlcIiwgNiwgXCJcXHVCNDYyXFx1QjQ2NFxcdUI0NjZcIl0sXG4gICAgICBbXCI4YTYxXCIsIFwiXFx1QjQ2N1wiLCA0LCBcIlxcdUI0NkRcIiwgMTgsIFwiXFx1QjQ4MVxcdUI0ODJcIl0sXG4gICAgICBbXCI4YTgxXCIsIFwiXFx1QjQ4M1wiLCA0LCBcIlxcdUI0ODlcIiwgMTksIFwiXFx1QjQ5RVwiLCA1LCBcIlxcdUI0QTVcXHVCNEE2XFx1QjRBN1xcdUI0QTlcXHVCNEFBXFx1QjRBQlxcdUI0QURcIiwgNywgXCJcXHVCNEI2XFx1QjRCOFxcdUI0QkFcIiwgNSwgXCJcXHVCNEMxXFx1QjRDMlxcdUI0QzNcXHVCNEM1XFx1QjRDNlxcdUI0QzdcXHVCNEM5XCIsIDYsIFwiXFx1QjREMVxcdUI0RDJcXHVCNEQzXFx1QjRENFxcdUI0RDZcIiwgNSwgXCJcXHVCNERFXFx1QjRERlxcdUI0RTFcXHVCNEUyXFx1QjRFNVxcdUI0RTdcIiwgNCwgXCJcXHVCNEVFXFx1QjRGMFxcdUI0RjJcIiwgNSwgXCJcXHVCNEY5XCIsIDI2LCBcIlxcdUI1MTZcXHVCNTE3XFx1QjUxOVxcdUI1MUFcXHVCNTFEXCJdLFxuICAgICAgW1wiOGI0MVwiLCBcIlxcdUI1MUVcIiwgNSwgXCJcXHVCNTI2XFx1QjUyQlwiLCA0LCBcIlxcdUI1MzJcXHVCNTMzXFx1QjUzNVxcdUI1MzZcXHVCNTM3XFx1QjUzOVwiLCA2LCBcIlxcdUI1NDJcXHVCNTQ2XCJdLFxuICAgICAgW1wiOGI2MVwiLCBcIlxcdUI1NDdcXHVCNTQ4XFx1QjU0OVxcdUI1NEFcXHVCNTRFXFx1QjU0RlxcdUI1NTFcXHVCNTUyXFx1QjU1M1xcdUI1NTVcIiwgNiwgXCJcXHVCNTVFXFx1QjU2MlwiLCA4XSxcbiAgICAgIFtcIjhiODFcIiwgXCJcXHVCNTZCXCIsIDUyLCBcIlxcdUI1QTJcXHVCNUEzXFx1QjVBNVxcdUI1QTZcXHVCNUE3XFx1QjVBOVxcdUI1QUNcXHVCNUFEXFx1QjVBRVxcdUI1QUZcXHVCNUIyXFx1QjVCNlwiLCA0LCBcIlxcdUI1QkVcXHVCNUJGXFx1QjVDMVxcdUI1QzJcXHVCNUMzXFx1QjVDNVwiLCA2LCBcIlxcdUI1Q0VcXHVCNUQyXCIsIDUsIFwiXFx1QjVEOVwiLCAxOCwgXCJcXHVCNUVEXCIsIDE4XSxcbiAgICAgIFtcIjhjNDFcIiwgXCJcXHVCNjAwXCIsIDE1LCBcIlxcdUI2MTJcXHVCNjEzXFx1QjYxNVxcdUI2MTZcXHVCNjE3XFx1QjYxOVwiLCA0XSxcbiAgICAgIFtcIjhjNjFcIiwgXCJcXHVCNjFFXCIsIDYsIFwiXFx1QjYyNlwiLCA1LCBcIlxcdUI2MkRcIiwgNiwgXCJcXHVCNjM1XCIsIDVdLFxuICAgICAgW1wiOGM4MVwiLCBcIlxcdUI2M0JcIiwgMTIsIFwiXFx1QjY0OVwiLCAyNiwgXCJcXHVCNjY1XFx1QjY2NlxcdUI2NjdcXHVCNjY5XCIsIDUwLCBcIlxcdUI2OUVcXHVCNjlGXFx1QjZBMVxcdUI2QTJcXHVCNkEzXFx1QjZBNVwiLCA1LCBcIlxcdUI2QURcXHVCNkFFXFx1QjZBRlxcdUI2QjBcXHVCNkIyXCIsIDE2XSxcbiAgICAgIFtcIjhkNDFcIiwgXCJcXHVCNkMzXCIsIDE2LCBcIlxcdUI2RDVcIiwgOF0sXG4gICAgICBbXCI4ZDYxXCIsIFwiXFx1QjZERVwiLCAxNywgXCJcXHVCNkYxXFx1QjZGMlxcdUI2RjNcXHVCNkY1XFx1QjZGNlxcdUI2RjdcXHVCNkY5XFx1QjZGQVwiXSxcbiAgICAgIFtcIjhkODFcIiwgXCJcXHVCNkZCXCIsIDQsIFwiXFx1QjcwMlxcdUI3MDNcXHVCNzA0XFx1QjcwNlwiLCAzMywgXCJcXHVCNzJBXFx1QjcyQlxcdUI3MkRcXHVCNzJFXFx1QjczMVwiLCA2LCBcIlxcdUI3M0FcXHVCNzNDXCIsIDcsIFwiXFx1Qjc0NVxcdUI3NDZcXHVCNzQ3XFx1Qjc0OVxcdUI3NEFcXHVCNzRCXFx1Qjc0RFwiLCA2LCBcIlxcdUI3NTZcIiwgOSwgXCJcXHVCNzYxXFx1Qjc2MlxcdUI3NjNcXHVCNzY1XFx1Qjc2NlxcdUI3NjdcXHVCNzY5XCIsIDYsIFwiXFx1Qjc3MlxcdUI3NzRcXHVCNzc2XCIsIDUsIFwiXFx1Qjc3RVxcdUI3N0ZcXHVCNzgxXFx1Qjc4MlxcdUI3ODNcXHVCNzg1XCIsIDYsIFwiXFx1Qjc4RVxcdUI3OTNcXHVCNzk0XFx1Qjc5NVxcdUI3OUFcXHVCNzlCXFx1Qjc5RFxcdUI3OUVcIl0sXG4gICAgICBbXCI4ZTQxXCIsIFwiXFx1Qjc5RlxcdUI3QTFcIiwgNiwgXCJcXHVCN0FBXFx1QjdBRVwiLCA1LCBcIlxcdUI3QjZcXHVCN0I3XFx1QjdCOVwiLCA4XSxcbiAgICAgIFtcIjhlNjFcIiwgXCJcXHVCN0MyXCIsIDQsIFwiXFx1QjdDOFxcdUI3Q0FcIiwgMTldLFxuICAgICAgW1wiOGU4MVwiLCBcIlxcdUI3REVcIiwgMTMsIFwiXFx1QjdFRVxcdUI3RUZcXHVCN0YxXFx1QjdGMlxcdUI3RjNcXHVCN0Y1XCIsIDYsIFwiXFx1QjdGRVxcdUI4MDJcIiwgNCwgXCJcXHVCODBBXFx1QjgwQlxcdUI4MERcXHVCODBFXFx1QjgwRlxcdUI4MTFcIiwgNiwgXCJcXHVCODFBXFx1QjgxQ1xcdUI4MUVcIiwgNSwgXCJcXHVCODI2XFx1QjgyN1xcdUI4MjlcXHVCODJBXFx1QjgyQlxcdUI4MkRcIiwgNiwgXCJcXHVCODM2XFx1QjgzQVwiLCA1LCBcIlxcdUI4NDFcXHVCODQyXFx1Qjg0M1xcdUI4NDVcIiwgMTEsIFwiXFx1Qjg1MlxcdUI4NTRcIiwgNywgXCJcXHVCODVFXFx1Qjg1RlxcdUI4NjFcXHVCODYyXFx1Qjg2M1xcdUI4NjVcIiwgNiwgXCJcXHVCODZFXFx1Qjg3MFxcdUI4NzJcIiwgNSwgXCJcXHVCODc5XFx1Qjg3QVxcdUI4N0JcXHVCODdEXCIsIDddLFxuICAgICAgW1wiOGY0MVwiLCBcIlxcdUI4ODVcIiwgNywgXCJcXHVCODhFXCIsIDE3XSxcbiAgICAgIFtcIjhmNjFcIiwgXCJcXHVCOEEwXCIsIDcsIFwiXFx1QjhBOVwiLCA2LCBcIlxcdUI4QjFcXHVCOEIyXFx1QjhCM1xcdUI4QjVcXHVCOEI2XFx1QjhCN1xcdUI4QjlcIiwgNF0sXG4gICAgICBbXCI4ZjgxXCIsIFwiXFx1QjhCRVxcdUI4QkZcXHVCOEMyXFx1QjhDNFxcdUI4QzZcIiwgNSwgXCJcXHVCOENEXFx1QjhDRVxcdUI4Q0ZcXHVCOEQxXFx1QjhEMlxcdUI4RDNcXHVCOEQ1XCIsIDcsIFwiXFx1QjhERVxcdUI4RTBcXHVCOEUyXCIsIDUsIFwiXFx1QjhFQVxcdUI4RUJcXHVCOEVEXFx1QjhFRVxcdUI4RUZcXHVCOEYxXCIsIDYsIFwiXFx1QjhGQVxcdUI4RkNcXHVCOEZFXCIsIDUsIFwiXFx1QjkwNVwiLCAxOCwgXCJcXHVCOTE5XCIsIDYsIFwiXFx1QjkyMVwiLCAyNiwgXCJcXHVCOTNFXFx1QjkzRlxcdUI5NDFcXHVCOTQyXFx1Qjk0M1xcdUI5NDVcIiwgNiwgXCJcXHVCOTREXFx1Qjk0RVxcdUI5NTBcXHVCOTUyXCIsIDVdLFxuICAgICAgW1wiOTA0MVwiLCBcIlxcdUI5NUFcXHVCOTVCXFx1Qjk1RFxcdUI5NUVcXHVCOTVGXFx1Qjk2MVwiLCA2LCBcIlxcdUI5NkFcXHVCOTZDXFx1Qjk2RVwiLCA1LCBcIlxcdUI5NzZcXHVCOTc3XFx1Qjk3OVxcdUI5N0FcXHVCOTdCXFx1Qjk3RFwiXSxcbiAgICAgIFtcIjkwNjFcIiwgXCJcXHVCOTdFXCIsIDUsIFwiXFx1Qjk4NlxcdUI5ODhcXHVCOThCXFx1Qjk4Q1xcdUI5OEZcIiwgMTVdLFxuICAgICAgW1wiOTA4MVwiLCBcIlxcdUI5OUZcIiwgMTIsIFwiXFx1QjlBRVxcdUI5QUZcXHVCOUIxXFx1QjlCMlxcdUI5QjNcXHVCOUI1XCIsIDYsIFwiXFx1QjlCRVxcdUI5QzBcXHVCOUMyXCIsIDUsIFwiXFx1QjlDQVxcdUI5Q0JcXHVCOUNEXFx1QjlEM1wiLCA0LCBcIlxcdUI5REFcXHVCOURDXFx1QjlERlxcdUI5RTBcXHVCOUUyXFx1QjlFNlxcdUI5RTdcXHVCOUU5XFx1QjlFQVxcdUI5RUJcXHVCOUVEXCIsIDYsIFwiXFx1QjlGNlxcdUI5RkJcIiwgNCwgXCJcXHVCQTAyXCIsIDUsIFwiXFx1QkEwOVwiLCAxMSwgXCJcXHVCQTE2XCIsIDMzLCBcIlxcdUJBM0FcXHVCQTNCXFx1QkEzRFxcdUJBM0VcXHVCQTNGXFx1QkE0MVxcdUJBNDNcXHVCQTQ0XFx1QkE0NVxcdUJBNDZcIl0sXG4gICAgICBbXCI5MTQxXCIsIFwiXFx1QkE0N1xcdUJBNEFcXHVCQTRDXFx1QkE0RlxcdUJBNTBcXHVCQTUxXFx1QkE1MlxcdUJBNTZcXHVCQTU3XFx1QkE1OVxcdUJBNUFcXHVCQTVCXFx1QkE1RFwiLCA2LCBcIlxcdUJBNjZcXHVCQTZBXCIsIDVdLFxuICAgICAgW1wiOTE2MVwiLCBcIlxcdUJBNzJcXHVCQTczXFx1QkE3NVxcdUJBNzZcXHVCQTc3XFx1QkE3OVwiLCA5LCBcIlxcdUJBODZcXHVCQTg4XFx1QkE4OVxcdUJBOEFcXHVCQThCXFx1QkE4RFwiLCA1XSxcbiAgICAgIFtcIjkxODFcIiwgXCJcXHVCQTkzXCIsIDIwLCBcIlxcdUJBQUFcXHVCQUFEXFx1QkFBRVxcdUJBQUZcXHVCQUIxXFx1QkFCM1wiLCA0LCBcIlxcdUJBQkFcXHVCQUJDXFx1QkFCRVwiLCA1LCBcIlxcdUJBQzVcXHVCQUM2XFx1QkFDN1xcdUJBQzlcIiwgMTQsIFwiXFx1QkFEQVwiLCAzMywgXCJcXHVCQUZEXFx1QkFGRVxcdUJBRkZcXHVCQjAxXFx1QkIwMlxcdUJCMDNcXHVCQjA1XCIsIDcsIFwiXFx1QkIwRVxcdUJCMTBcXHVCQjEyXCIsIDUsIFwiXFx1QkIxOVxcdUJCMUFcXHVCQjFCXFx1QkIxRFxcdUJCMUVcXHVCQjFGXFx1QkIyMVwiLCA2XSxcbiAgICAgIFtcIjkyNDFcIiwgXCJcXHVCQjI4XFx1QkIyQVxcdUJCMkNcIiwgNywgXCJcXHVCQjM3XFx1QkIzOVxcdUJCM0FcXHVCQjNGXCIsIDQsIFwiXFx1QkI0NlxcdUJCNDhcXHVCQjRBXFx1QkI0QlxcdUJCNENcXHVCQjRFXFx1QkI1MVxcdUJCNTJcIl0sXG4gICAgICBbXCI5MjYxXCIsIFwiXFx1QkI1M1xcdUJCNTVcXHVCQjU2XFx1QkI1N1xcdUJCNTlcIiwgNywgXCJcXHVCQjYyXFx1QkI2NFwiLCA3LCBcIlxcdUJCNkRcIiwgNF0sXG4gICAgICBbXCI5MjgxXCIsIFwiXFx1QkI3MlwiLCAyMSwgXCJcXHVCQjg5XFx1QkI4QVxcdUJCOEJcXHVCQjhEXFx1QkI4RVxcdUJCOEZcXHVCQjkxXCIsIDE4LCBcIlxcdUJCQTVcXHVCQkE2XFx1QkJBN1xcdUJCQTlcXHVCQkFBXFx1QkJBQlxcdUJCQURcIiwgNiwgXCJcXHVCQkI1XFx1QkJCNlxcdUJCQjhcIiwgNywgXCJcXHVCQkMxXFx1QkJDMlxcdUJCQzNcXHVCQkM1XFx1QkJDNlxcdUJCQzdcXHVCQkM5XCIsIDYsIFwiXFx1QkJEMVxcdUJCRDJcXHVCQkQ0XCIsIDM1LCBcIlxcdUJCRkFcXHVCQkZCXFx1QkJGRFxcdUJCRkVcXHVCQzAxXCJdLFxuICAgICAgW1wiOTM0MVwiLCBcIlxcdUJDMDNcIiwgNCwgXCJcXHVCQzBBXFx1QkMwRVxcdUJDMTBcXHVCQzEyXFx1QkMxM1xcdUJDMTlcXHVCQzFBXFx1QkMyMFxcdUJDMjFcXHVCQzIyXFx1QkMyM1xcdUJDMjZcXHVCQzI4XFx1QkMyQVxcdUJDMkJcXHVCQzJDXFx1QkMyRVxcdUJDMkZcXHVCQzMyXFx1QkMzM1xcdUJDMzVcIl0sXG4gICAgICBbXCI5MzYxXCIsIFwiXFx1QkMzNlxcdUJDMzdcXHVCQzM5XCIsIDYsIFwiXFx1QkM0MlxcdUJDNDZcXHVCQzQ3XFx1QkM0OFxcdUJDNEFcXHVCQzRCXFx1QkM0RVxcdUJDNEZcXHVCQzUxXCIsIDhdLFxuICAgICAgW1wiOTM4MVwiLCBcIlxcdUJDNUFcXHVCQzVCXFx1QkM1Q1xcdUJDNUVcIiwgMzcsIFwiXFx1QkM4NlxcdUJDODdcXHVCQzg5XFx1QkM4QVxcdUJDOERcXHVCQzhGXCIsIDQsIFwiXFx1QkM5NlxcdUJDOThcXHVCQzlCXCIsIDQsIFwiXFx1QkNBMlxcdUJDQTNcXHVCQ0E1XFx1QkNBNlxcdUJDQTlcIiwgNiwgXCJcXHVCQ0IyXFx1QkNCNlwiLCA1LCBcIlxcdUJDQkVcXHVCQ0JGXFx1QkNDMVxcdUJDQzJcXHVCQ0MzXFx1QkNDNVwiLCA3LCBcIlxcdUJDQ0VcXHVCQ0QyXFx1QkNEM1xcdUJDRDRcXHVCQ0Q2XFx1QkNEN1xcdUJDRDlcXHVCQ0RBXFx1QkNEQlxcdUJDRERcIiwgMjIsIFwiXFx1QkNGN1xcdUJDRjlcXHVCQ0ZBXFx1QkNGQlxcdUJDRkRcIl0sXG4gICAgICBbXCI5NDQxXCIsIFwiXFx1QkNGRVwiLCA1LCBcIlxcdUJEMDZcXHVCRDA4XFx1QkQwQVwiLCA1LCBcIlxcdUJEMTFcXHVCRDEyXFx1QkQxM1xcdUJEMTVcIiwgOF0sXG4gICAgICBbXCI5NDYxXCIsIFwiXFx1QkQxRVwiLCA1LCBcIlxcdUJEMjVcIiwgNiwgXCJcXHVCRDJEXCIsIDEyXSxcbiAgICAgIFtcIjk0ODFcIiwgXCJcXHVCRDNBXCIsIDUsIFwiXFx1QkQ0MVwiLCA2LCBcIlxcdUJENEFcXHVCRDRCXFx1QkQ0RFxcdUJENEVcXHVCRDRGXFx1QkQ1MVwiLCA2LCBcIlxcdUJENUFcIiwgOSwgXCJcXHVCRDY1XFx1QkQ2NlxcdUJENjdcXHVCRDY5XCIsIDIyLCBcIlxcdUJEODJcXHVCRDgzXFx1QkQ4NVxcdUJEODZcXHVCRDhCXCIsIDQsIFwiXFx1QkQ5MlxcdUJEOTRcXHVCRDk2XFx1QkQ5N1xcdUJEOThcXHVCRDlCXFx1QkQ5RFwiLCA2LCBcIlxcdUJEQTVcIiwgMTAsIFwiXFx1QkRCMVwiLCA2LCBcIlxcdUJEQjlcIiwgMjRdLFxuICAgICAgW1wiOTU0MVwiLCBcIlxcdUJERDJcXHVCREQzXFx1QkRENlxcdUJERDdcXHVCREQ5XFx1QkREQVxcdUJEREJcXHVCREREXCIsIDExLCBcIlxcdUJERUFcIiwgNSwgXCJcXHVCREYxXCJdLFxuICAgICAgW1wiOTU2MVwiLCBcIlxcdUJERjJcXHVCREYzXFx1QkRGNVxcdUJERjZcXHVCREY3XFx1QkRGOVwiLCA2LCBcIlxcdUJFMDFcXHVCRTAyXFx1QkUwNFxcdUJFMDZcIiwgNSwgXCJcXHVCRTBFXFx1QkUwRlxcdUJFMTFcXHVCRTEyXFx1QkUxM1wiXSxcbiAgICAgIFtcIjk1ODFcIiwgXCJcXHVCRTE1XCIsIDYsIFwiXFx1QkUxRVxcdUJFMjBcIiwgMzUsIFwiXFx1QkU0NlxcdUJFNDdcXHVCRTQ5XFx1QkU0QVxcdUJFNEJcXHVCRTREXFx1QkU0RlwiLCA0LCBcIlxcdUJFNTZcXHVCRTU4XFx1QkU1Q1xcdUJFNURcXHVCRTVFXFx1QkU1RlxcdUJFNjJcXHVCRTYzXFx1QkU2NVxcdUJFNjZcXHVCRTY3XFx1QkU2OVxcdUJFNkJcIiwgNCwgXCJcXHVCRTcyXFx1QkU3NlwiLCA0LCBcIlxcdUJFN0VcXHVCRTdGXFx1QkU4MVxcdUJFODJcXHVCRTgzXFx1QkU4NVwiLCA2LCBcIlxcdUJFOEVcXHVCRTkyXCIsIDUsIFwiXFx1QkU5QVwiLCAxMywgXCJcXHVCRUE5XCIsIDE0XSxcbiAgICAgIFtcIjk2NDFcIiwgXCJcXHVCRUI4XCIsIDIzLCBcIlxcdUJFRDJcXHVCRUQzXCJdLFxuICAgICAgW1wiOTY2MVwiLCBcIlxcdUJFRDVcXHVCRUQ2XFx1QkVEOVwiLCA2LCBcIlxcdUJFRTFcXHVCRUUyXFx1QkVFNlwiLCA1LCBcIlxcdUJFRURcIiwgOF0sXG4gICAgICBbXCI5NjgxXCIsIFwiXFx1QkVGNlwiLCAxMCwgXCJcXHVCRjAyXCIsIDUsIFwiXFx1QkYwQVwiLCAxMywgXCJcXHVCRjFBXFx1QkYxRVwiLCAzMywgXCJcXHVCRjQyXFx1QkY0M1xcdUJGNDVcXHVCRjQ2XFx1QkY0N1xcdUJGNDlcIiwgNiwgXCJcXHVCRjUyXFx1QkY1M1xcdUJGNTRcXHVCRjU2XCIsIDQ0XSxcbiAgICAgIFtcIjk3NDFcIiwgXCJcXHVCRjgzXCIsIDE2LCBcIlxcdUJGOTVcIiwgOF0sXG4gICAgICBbXCI5NzYxXCIsIFwiXFx1QkY5RVwiLCAxNywgXCJcXHVCRkIxXCIsIDddLFxuICAgICAgW1wiOTc4MVwiLCBcIlxcdUJGQjlcIiwgMTEsIFwiXFx1QkZDNlwiLCA1LCBcIlxcdUJGQ0VcXHVCRkNGXFx1QkZEMVxcdUJGRDJcXHVCRkQzXFx1QkZENVwiLCA2LCBcIlxcdUJGRERcXHVCRkRFXFx1QkZFMFxcdUJGRTJcIiwgODksIFwiXFx1QzAzRFxcdUMwM0VcXHVDMDNGXCJdLFxuICAgICAgW1wiOTg0MVwiLCBcIlxcdUMwNDBcIiwgMTYsIFwiXFx1QzA1MlwiLCA1LCBcIlxcdUMwNTlcXHVDMDVBXFx1QzA1QlwiXSxcbiAgICAgIFtcIjk4NjFcIiwgXCJcXHVDMDVEXFx1QzA1RVxcdUMwNUZcXHVDMDYxXCIsIDYsIFwiXFx1QzA2QVwiLCAxNV0sXG4gICAgICBbXCI5ODgxXCIsIFwiXFx1QzA3QVwiLCAyMSwgXCJcXHVDMDkyXFx1QzA5M1xcdUMwOTVcXHVDMDk2XFx1QzA5N1xcdUMwOTlcIiwgNiwgXCJcXHVDMEEyXFx1QzBBNFxcdUMwQTZcIiwgNSwgXCJcXHVDMEFFXFx1QzBCMVxcdUMwQjJcXHVDMEI3XCIsIDQsIFwiXFx1QzBCRVxcdUMwQzJcXHVDMEMzXFx1QzBDNFxcdUMwQzZcXHVDMEM3XFx1QzBDQVxcdUMwQ0JcXHVDMENEXFx1QzBDRVxcdUMwQ0ZcXHVDMEQxXCIsIDYsIFwiXFx1QzBEQVxcdUMwREVcIiwgNSwgXCJcXHVDMEU2XFx1QzBFN1xcdUMwRTlcXHVDMEVBXFx1QzBFQlxcdUMwRURcIiwgNiwgXCJcXHVDMEY2XFx1QzBGOFxcdUMwRkFcIiwgNSwgXCJcXHVDMTAxXFx1QzEwMlxcdUMxMDNcXHVDMTA1XFx1QzEwNlxcdUMxMDdcXHVDMTA5XCIsIDYsIFwiXFx1QzExMVxcdUMxMTJcXHVDMTEzXFx1QzExNFxcdUMxMTZcIiwgNSwgXCJcXHVDMTIxXFx1QzEyMlxcdUMxMjVcXHVDMTI4XFx1QzEyOVxcdUMxMkFcXHVDMTJCXFx1QzEyRVwiXSxcbiAgICAgIFtcIjk5NDFcIiwgXCJcXHVDMTMyXFx1QzEzM1xcdUMxMzRcXHVDMTM1XFx1QzEzN1xcdUMxM0FcXHVDMTNCXFx1QzEzRFxcdUMxM0VcXHVDMTNGXFx1QzE0MVwiLCA2LCBcIlxcdUMxNEFcXHVDMTRFXCIsIDUsIFwiXFx1QzE1NlxcdUMxNTdcIl0sXG4gICAgICBbXCI5OTYxXCIsIFwiXFx1QzE1OVxcdUMxNUFcXHVDMTVCXFx1QzE1RFwiLCA2LCBcIlxcdUMxNjZcXHVDMTZBXCIsIDUsIFwiXFx1QzE3MVxcdUMxNzJcXHVDMTczXFx1QzE3NVxcdUMxNzZcXHVDMTc3XFx1QzE3OVxcdUMxN0FcXHVDMTdCXCJdLFxuICAgICAgW1wiOTk4MVwiLCBcIlxcdUMxN0NcIiwgOCwgXCJcXHVDMTg2XCIsIDUsIFwiXFx1QzE4RlxcdUMxOTFcXHVDMTkyXFx1QzE5M1xcdUMxOTVcXHVDMTk3XCIsIDQsIFwiXFx1QzE5RVxcdUMxQTBcXHVDMUEyXFx1QzFBM1xcdUMxQTRcXHVDMUE2XFx1QzFBN1xcdUMxQUFcXHVDMUFCXFx1QzFBRFxcdUMxQUVcXHVDMUFGXFx1QzFCMVwiLCAxMSwgXCJcXHVDMUJFXCIsIDUsIFwiXFx1QzFDNVxcdUMxQzZcXHVDMUM3XFx1QzFDOVxcdUMxQ0FcXHVDMUNCXFx1QzFDRFwiLCA2LCBcIlxcdUMxRDVcXHVDMUQ2XFx1QzFEOVwiLCA2LCBcIlxcdUMxRTFcXHVDMUUyXFx1QzFFM1xcdUMxRTVcXHVDMUU2XFx1QzFFN1xcdUMxRTlcIiwgNiwgXCJcXHVDMUYyXFx1QzFGNFwiLCA3LCBcIlxcdUMxRkVcXHVDMUZGXFx1QzIwMVxcdUMyMDJcXHVDMjAzXFx1QzIwNVwiLCA2LCBcIlxcdUMyMEVcXHVDMjEwXFx1QzIxMlwiLCA1LCBcIlxcdUMyMUFcXHVDMjFCXFx1QzIxRFxcdUMyMUVcXHVDMjIxXFx1QzIyMlxcdUMyMjNcIl0sXG4gICAgICBbXCI5YTQxXCIsIFwiXFx1QzIyNFxcdUMyMjVcXHVDMjI2XFx1QzIyN1xcdUMyMkFcXHVDMjJDXFx1QzIyRVxcdUMyMzBcXHVDMjMzXFx1QzIzNVwiLCAxNl0sXG4gICAgICBbXCI5YTYxXCIsIFwiXFx1QzI0NlxcdUMyNDdcXHVDMjQ5XCIsIDYsIFwiXFx1QzI1MlxcdUMyNTNcXHVDMjU1XFx1QzI1NlxcdUMyNTdcXHVDMjU5XCIsIDYsIFwiXFx1QzI2MVxcdUMyNjJcXHVDMjYzXFx1QzI2NFxcdUMyNjZcIl0sXG4gICAgICBbXCI5YTgxXCIsIFwiXFx1QzI2N1wiLCA0LCBcIlxcdUMyNkVcXHVDMjZGXFx1QzI3MVxcdUMyNzJcXHVDMjczXFx1QzI3NVwiLCA2LCBcIlxcdUMyN0VcXHVDMjgwXFx1QzI4MlwiLCA1LCBcIlxcdUMyOEFcIiwgNSwgXCJcXHVDMjkxXCIsIDYsIFwiXFx1QzI5OVxcdUMyOUFcXHVDMjlDXFx1QzI5RVwiLCA1LCBcIlxcdUMyQTZcXHVDMkE3XFx1QzJBOVxcdUMyQUFcXHVDMkFCXFx1QzJBRVwiLCA1LCBcIlxcdUMyQjZcXHVDMkI4XFx1QzJCQVwiLCAzMywgXCJcXHVDMkRFXFx1QzJERlxcdUMyRTFcXHVDMkUyXFx1QzJFNVwiLCA1LCBcIlxcdUMyRUVcXHVDMkYwXFx1QzJGMlxcdUMyRjNcXHVDMkY0XFx1QzJGNVxcdUMyRjdcXHVDMkZBXFx1QzJGRFxcdUMyRkVcXHVDMkZGXFx1QzMwMVwiLCA2LCBcIlxcdUMzMEFcXHVDMzBCXFx1QzMwRVxcdUMzMEZcIl0sXG4gICAgICBbXCI5YjQxXCIsIFwiXFx1QzMxMFxcdUMzMTFcXHVDMzEyXFx1QzMxNlxcdUMzMTdcXHVDMzE5XFx1QzMxQVxcdUMzMUJcXHVDMzFEXCIsIDYsIFwiXFx1QzMyNlxcdUMzMjdcXHVDMzJBXCIsIDhdLFxuICAgICAgW1wiOWI2MVwiLCBcIlxcdUMzMzNcIiwgMTcsIFwiXFx1QzM0NlwiLCA3XSxcbiAgICAgIFtcIjliODFcIiwgXCJcXHVDMzRFXCIsIDI1LCBcIlxcdUMzNkFcXHVDMzZCXFx1QzM2RFxcdUMzNkVcXHVDMzZGXFx1QzM3MVxcdUMzNzNcIiwgNCwgXCJcXHVDMzdBXFx1QzM3QlxcdUMzN0VcIiwgNSwgXCJcXHVDMzg1XFx1QzM4NlxcdUMzODdcXHVDMzg5XFx1QzM4QVxcdUMzOEJcXHVDMzhEXCIsIDUwLCBcIlxcdUMzQzFcIiwgMjIsIFwiXFx1QzNEQVwiXSxcbiAgICAgIFtcIjljNDFcIiwgXCJcXHVDM0RCXFx1QzNERFxcdUMzREVcXHVDM0UxXFx1QzNFM1wiLCA0LCBcIlxcdUMzRUFcXHVDM0VCXFx1QzNFQ1xcdUMzRUVcIiwgNSwgXCJcXHVDM0Y2XFx1QzNGN1xcdUMzRjlcIiwgNV0sXG4gICAgICBbXCI5YzYxXCIsIFwiXFx1QzNGRlwiLCA4LCBcIlxcdUM0MDlcIiwgNiwgXCJcXHVDNDExXCIsIDldLFxuICAgICAgW1wiOWM4MVwiLCBcIlxcdUM0MUJcIiwgOCwgXCJcXHVDNDI1XCIsIDYsIFwiXFx1QzQyRFxcdUM0MkVcXHVDNDJGXFx1QzQzMVxcdUM0MzJcXHVDNDMzXFx1QzQzNVwiLCA2LCBcIlxcdUM0M0VcIiwgOSwgXCJcXHVDNDQ5XCIsIDI2LCBcIlxcdUM0NjZcXHVDNDY3XFx1QzQ2OVxcdUM0NkFcXHVDNDZCXFx1QzQ2RFwiLCA2LCBcIlxcdUM0NzZcXHVDNDc3XFx1QzQ3OFxcdUM0N0FcIiwgNSwgXCJcXHVDNDgxXCIsIDE4LCBcIlxcdUM0OTVcIiwgNiwgXCJcXHVDNDlEXCIsIDEyXSxcbiAgICAgIFtcIjlkNDFcIiwgXCJcXHVDNEFBXCIsIDEzLCBcIlxcdUM0QjlcXHVDNEJBXFx1QzRCQlxcdUM0QkRcIiwgOF0sXG4gICAgICBbXCI5ZDYxXCIsIFwiXFx1QzRDNlwiLCAyNV0sXG4gICAgICBbXCI5ZDgxXCIsIFwiXFx1QzRFMFwiLCA4LCBcIlxcdUM0RUFcIiwgNSwgXCJcXHVDNEYyXFx1QzRGM1xcdUM0RjVcXHVDNEY2XFx1QzRGN1xcdUM0RjlcXHVDNEZCXFx1QzRGQ1xcdUM0RkRcXHVDNEZFXFx1QzUwMlwiLCA5LCBcIlxcdUM1MERcXHVDNTBFXFx1QzUwRlxcdUM1MTFcXHVDNTEyXFx1QzUxM1xcdUM1MTVcIiwgNiwgXCJcXHVDNTFEXCIsIDEwLCBcIlxcdUM1MkFcXHVDNTJCXFx1QzUyRFxcdUM1MkVcXHVDNTJGXFx1QzUzMVwiLCA2LCBcIlxcdUM1M0FcXHVDNTNDXFx1QzUzRVwiLCA1LCBcIlxcdUM1NDZcXHVDNTQ3XFx1QzU0QlxcdUM1NEZcXHVDNTUwXFx1QzU1MVxcdUM1NTJcXHVDNTU2XFx1QzU1QVxcdUM1NUJcXHVDNTVDXFx1QzU1RlxcdUM1NjJcXHVDNTYzXFx1QzU2NVxcdUM1NjZcXHVDNTY3XFx1QzU2OVwiLCA2LCBcIlxcdUM1NzJcXHVDNTc2XCIsIDUsIFwiXFx1QzU3RVxcdUM1N0ZcXHVDNTgxXFx1QzU4MlxcdUM1ODNcXHVDNTg1XFx1QzU4NlxcdUM1ODhcXHVDNTg5XFx1QzU4QVxcdUM1OEJcXHVDNThFXFx1QzU5MFxcdUM1OTJcXHVDNTkzXFx1QzU5NFwiXSxcbiAgICAgIFtcIjllNDFcIiwgXCJcXHVDNTk2XFx1QzU5OVxcdUM1OUFcXHVDNTlCXFx1QzU5RFxcdUM1OUVcXHVDNTlGXFx1QzVBMVwiLCA3LCBcIlxcdUM1QUFcIiwgOSwgXCJcXHVDNUI2XCJdLFxuICAgICAgW1wiOWU2MVwiLCBcIlxcdUM1QjdcXHVDNUJBXFx1QzVCRlwiLCA0LCBcIlxcdUM1Q0JcXHVDNUNEXFx1QzVDRlxcdUM1RDJcXHVDNUQzXFx1QzVENVxcdUM1RDZcXHVDNUQ3XFx1QzVEOVwiLCA2LCBcIlxcdUM1RTJcXHVDNUU0XFx1QzVFNlxcdUM1RTdcIl0sXG4gICAgICBbXCI5ZTgxXCIsIFwiXFx1QzVFOFxcdUM1RTlcXHVDNUVBXFx1QzVFQlxcdUM1RUZcXHVDNUYxXFx1QzVGMlxcdUM1RjNcXHVDNUY1XFx1QzVGOFxcdUM1RjlcXHVDNUZBXFx1QzVGQlxcdUM2MDJcXHVDNjAzXFx1QzYwNFxcdUM2MDlcXHVDNjBBXFx1QzYwQlxcdUM2MERcXHVDNjBFXFx1QzYwRlxcdUM2MTFcIiwgNiwgXCJcXHVDNjFBXFx1QzYxRFwiLCA2LCBcIlxcdUM2MjZcXHVDNjI3XFx1QzYyOVxcdUM2MkFcXHVDNjJCXFx1QzYyRlxcdUM2MzFcXHVDNjMyXFx1QzYzNlxcdUM2MzhcXHVDNjNBXFx1QzYzQ1xcdUM2M0RcXHVDNjNFXFx1QzYzRlxcdUM2NDJcXHVDNjQzXFx1QzY0NVxcdUM2NDZcXHVDNjQ3XFx1QzY0OVwiLCA2LCBcIlxcdUM2NTJcXHVDNjU2XCIsIDUsIFwiXFx1QzY1RVxcdUM2NUZcXHVDNjYxXCIsIDEwLCBcIlxcdUM2NkRcXHVDNjZFXFx1QzY3MFxcdUM2NzJcIiwgNSwgXCJcXHVDNjdBXFx1QzY3QlxcdUM2N0RcXHVDNjdFXFx1QzY3RlxcdUM2ODFcIiwgNiwgXCJcXHVDNjhBXFx1QzY4Q1xcdUM2OEVcIiwgNSwgXCJcXHVDNjk2XFx1QzY5N1xcdUM2OTlcXHVDNjlBXFx1QzY5QlxcdUM2OURcIiwgNiwgXCJcXHVDNkE2XCJdLFxuICAgICAgW1wiOWY0MVwiLCBcIlxcdUM2QThcXHVDNkFBXCIsIDUsIFwiXFx1QzZCMlxcdUM2QjNcXHVDNkI1XFx1QzZCNlxcdUM2QjdcXHVDNkJCXCIsIDQsIFwiXFx1QzZDMlxcdUM2QzRcXHVDNkM2XCIsIDUsIFwiXFx1QzZDRVwiXSxcbiAgICAgIFtcIjlmNjFcIiwgXCJcXHVDNkNGXFx1QzZEMVxcdUM2RDJcXHVDNkQzXFx1QzZENVwiLCA2LCBcIlxcdUM2REVcXHVDNkRGXFx1QzZFMlwiLCA1LCBcIlxcdUM2RUFcXHVDNkVCXFx1QzZFRFxcdUM2RUVcXHVDNkVGXFx1QzZGMVxcdUM2RjJcIl0sXG4gICAgICBbXCI5ZjgxXCIsIFwiXFx1QzZGM1wiLCA0LCBcIlxcdUM2RkFcXHVDNkZCXFx1QzZGQ1xcdUM2RkVcIiwgNSwgXCJcXHVDNzA2XFx1QzcwN1xcdUM3MDlcXHVDNzBBXFx1QzcwQlxcdUM3MERcIiwgNiwgXCJcXHVDNzE2XFx1QzcxOFxcdUM3MUFcIiwgNSwgXCJcXHVDNzIyXFx1QzcyM1xcdUM3MjVcXHVDNzI2XFx1QzcyN1xcdUM3MjlcIiwgNiwgXCJcXHVDNzMyXFx1QzczNFxcdUM3MzZcXHVDNzM4XFx1QzczOVxcdUM3M0FcXHVDNzNCXFx1QzczRVxcdUM3M0ZcXHVDNzQxXFx1Qzc0MlxcdUM3NDNcXHVDNzQ1XCIsIDQsIFwiXFx1Qzc0QlxcdUM3NEVcXHVDNzUwXFx1Qzc1OVxcdUM3NUFcXHVDNzVCXFx1Qzc1RFxcdUM3NUVcXHVDNzVGXFx1Qzc2MVwiLCA2LCBcIlxcdUM3NjlcXHVDNzZBXFx1Qzc2Q1wiLCA3LCBcIlxcdUM3NzZcXHVDNzc3XFx1Qzc3OVxcdUM3N0FcXHVDNzdCXFx1Qzc3RlxcdUM3ODBcXHVDNzgxXFx1Qzc4MlxcdUM3ODZcXHVDNzhCXFx1Qzc4Q1xcdUM3OERcXHVDNzhGXFx1Qzc5MlxcdUM3OTNcXHVDNzk1XFx1Qzc5OVxcdUM3OUJcIiwgNCwgXCJcXHVDN0EyXFx1QzdBN1wiLCA0LCBcIlxcdUM3QUVcXHVDN0FGXFx1QzdCMVxcdUM3QjJcXHVDN0IzXFx1QzdCNVxcdUM3QjZcXHVDN0I3XCJdLFxuICAgICAgW1wiYTA0MVwiLCBcIlxcdUM3QjhcXHVDN0I5XFx1QzdCQVxcdUM3QkJcXHVDN0JFXFx1QzdDMlwiLCA1LCBcIlxcdUM3Q0FcXHVDN0NCXFx1QzdDRFxcdUM3Q0ZcXHVDN0QxXCIsIDYsIFwiXFx1QzdEOVxcdUM3REFcXHVDN0RCXFx1QzdEQ1wiXSxcbiAgICAgIFtcImEwNjFcIiwgXCJcXHVDN0RFXCIsIDUsIFwiXFx1QzdFNVxcdUM3RTZcXHVDN0U3XFx1QzdFOVxcdUM3RUFcXHVDN0VCXFx1QzdFRFwiLCAxM10sXG4gICAgICBbXCJhMDgxXCIsIFwiXFx1QzdGQlwiLCA0LCBcIlxcdUM4MDJcXHVDODAzXFx1QzgwNVxcdUM4MDZcXHVDODA3XFx1QzgwOVxcdUM4MEJcIiwgNCwgXCJcXHVDODEyXFx1QzgxNFxcdUM4MTdcIiwgNCwgXCJcXHVDODFFXFx1QzgxRlxcdUM4MjFcXHVDODIyXFx1QzgyM1xcdUM4MjVcIiwgNiwgXCJcXHVDODJFXFx1QzgzMFxcdUM4MzJcIiwgNSwgXCJcXHVDODM5XFx1QzgzQVxcdUM4M0JcXHVDODNEXFx1QzgzRVxcdUM4M0ZcXHVDODQxXCIsIDYsIFwiXFx1Qzg0QVxcdUM4NEJcXHVDODRFXCIsIDUsIFwiXFx1Qzg1NVwiLCAyNiwgXCJcXHVDODcyXFx1Qzg3M1xcdUM4NzVcXHVDODc2XFx1Qzg3N1xcdUM4NzlcXHVDODdCXCIsIDQsIFwiXFx1Qzg4MlxcdUM4ODRcXHVDODg4XFx1Qzg4OVxcdUM4OEFcXHVDODhFXCIsIDUsIFwiXFx1Qzg5NVwiLCA3LCBcIlxcdUM4OUVcXHVDOEEwXFx1QzhBMlxcdUM4QTNcXHVDOEE0XCJdLFxuICAgICAgW1wiYTE0MVwiLCBcIlxcdUM4QTVcXHVDOEE2XFx1QzhBN1xcdUM4QTlcIiwgMTgsIFwiXFx1QzhCRVxcdUM4QkZcXHVDOEMwXFx1QzhDMVwiXSxcbiAgICAgIFtcImExNjFcIiwgXCJcXHVDOEMyXFx1QzhDM1xcdUM4QzVcXHVDOEM2XFx1QzhDN1xcdUM4QzlcXHVDOENBXFx1QzhDQlxcdUM4Q0RcIiwgNiwgXCJcXHVDOEQ2XFx1QzhEOFxcdUM4REFcIiwgNSwgXCJcXHVDOEUyXFx1QzhFM1xcdUM4RTVcIl0sXG4gICAgICBbXCJhMTgxXCIsIFwiXFx1QzhFNlwiLCAxNCwgXCJcXHVDOEY2XCIsIDUsIFwiXFx1QzhGRVxcdUM4RkZcXHVDOTAxXFx1QzkwMlxcdUM5MDNcXHVDOTA3XCIsIDQsIFwiXFx1QzkwRVxcdTMwMDBcXHUzMDAxXFx1MzAwMlxceEI3XFx1MjAyNVxcdTIwMjZcXHhBOFxcdTMwMDNcXHhBRFxcdTIwMTVcXHUyMjI1XFx1RkYzQ1xcdTIyM0NcXHUyMDE4XFx1MjAxOVxcdTIwMUNcXHUyMDFEXFx1MzAxNFxcdTMwMTVcXHUzMDA4XCIsIDksIFwiXFx4QjFcXHhEN1xceEY3XFx1MjI2MFxcdTIyNjRcXHUyMjY1XFx1MjIxRVxcdTIyMzRcXHhCMFxcdTIwMzJcXHUyMDMzXFx1MjEwM1xcdTIxMkJcXHVGRkUwXFx1RkZFMVxcdUZGRTVcXHUyNjQyXFx1MjY0MFxcdTIyMjBcXHUyMkE1XFx1MjMxMlxcdTIyMDJcXHUyMjA3XFx1MjI2MVxcdTIyNTJcXHhBN1xcdTIwM0JcXHUyNjA2XFx1MjYwNVxcdTI1Q0JcXHUyNUNGXFx1MjVDRVxcdTI1QzdcXHUyNUM2XFx1MjVBMVxcdTI1QTBcXHUyNUIzXFx1MjVCMlxcdTI1QkRcXHUyNUJDXFx1MjE5MlxcdTIxOTBcXHUyMTkxXFx1MjE5M1xcdTIxOTRcXHUzMDEzXFx1MjI2QVxcdTIyNkJcXHUyMjFBXFx1MjIzRFxcdTIyMURcXHUyMjM1XFx1MjIyQlxcdTIyMkNcXHUyMjA4XFx1MjIwQlxcdTIyODZcXHUyMjg3XFx1MjI4MlxcdTIyODNcXHUyMjJBXFx1MjIyOVxcdTIyMjdcXHUyMjI4XFx1RkZFMlwiXSxcbiAgICAgIFtcImEyNDFcIiwgXCJcXHVDOTEwXFx1QzkxMlwiLCA1LCBcIlxcdUM5MTlcIiwgMThdLFxuICAgICAgW1wiYTI2MVwiLCBcIlxcdUM5MkRcIiwgNiwgXCJcXHVDOTM1XCIsIDE4XSxcbiAgICAgIFtcImEyODFcIiwgXCJcXHVDOTQ4XCIsIDcsIFwiXFx1Qzk1MlxcdUM5NTNcXHVDOTU1XFx1Qzk1NlxcdUM5NTdcXHVDOTU5XCIsIDYsIFwiXFx1Qzk2MlxcdUM5NjRcIiwgNywgXCJcXHVDOTZEXFx1Qzk2RVxcdUM5NkZcXHUyMUQyXFx1MjFENFxcdTIyMDBcXHUyMjAzXFx4QjRcXHVGRjVFXFx1MDJDN1xcdTAyRDhcXHUwMkREXFx1MDJEQVxcdTAyRDlcXHhCOFxcdTAyREJcXHhBMVxceEJGXFx1MDJEMFxcdTIyMkVcXHUyMjExXFx1MjIwRlxceEE0XFx1MjEwOVxcdTIwMzBcXHUyNUMxXFx1MjVDMFxcdTI1QjdcXHUyNUI2XFx1MjY2NFxcdTI2NjBcXHUyNjYxXFx1MjY2NVxcdTI2NjdcXHUyNjYzXFx1MjI5OVxcdTI1QzhcXHUyNUEzXFx1MjVEMFxcdTI1RDFcXHUyNTkyXFx1MjVBNFxcdTI1QTVcXHUyNUE4XFx1MjVBN1xcdTI1QTZcXHUyNUE5XFx1MjY2OFxcdTI2MEZcXHUyNjBFXFx1MjYxQ1xcdTI2MUVcXHhCNlxcdTIwMjBcXHUyMDIxXFx1MjE5NVxcdTIxOTdcXHUyMTk5XFx1MjE5NlxcdTIxOThcXHUyNjZEXFx1MjY2OVxcdTI2NkFcXHUyNjZDXFx1MzI3RlxcdTMyMUNcXHUyMTE2XFx1MzNDN1xcdTIxMjJcXHUzM0MyXFx1MzNEOFxcdTIxMjFcXHUyMEFDXFx4QUVcIl0sXG4gICAgICBbXCJhMzQxXCIsIFwiXFx1Qzk3MVxcdUM5NzJcXHVDOTczXFx1Qzk3NVwiLCA2LCBcIlxcdUM5N0RcIiwgMTAsIFwiXFx1Qzk4QVxcdUM5OEJcXHVDOThEXFx1Qzk4RVxcdUM5OEZcIl0sXG4gICAgICBbXCJhMzYxXCIsIFwiXFx1Qzk5MVwiLCA2LCBcIlxcdUM5OUFcXHVDOTlDXFx1Qzk5RVwiLCAxNl0sXG4gICAgICBbXCJhMzgxXCIsIFwiXFx1QzlBRlwiLCAxNiwgXCJcXHVDOUMyXFx1QzlDM1xcdUM5QzVcXHVDOUM2XFx1QzlDOVxcdUM5Q0JcIiwgNCwgXCJcXHVDOUQyXFx1QzlENFxcdUM5RDdcXHVDOUQ4XFx1QzlEQlxcdUZGMDFcIiwgNTgsIFwiXFx1RkZFNlxcdUZGM0RcIiwgMzIsIFwiXFx1RkZFM1wiXSxcbiAgICAgIFtcImE0NDFcIiwgXCJcXHVDOURFXFx1QzlERlxcdUM5RTFcXHVDOUUzXFx1QzlFNVxcdUM5RTZcXHVDOUU4XFx1QzlFOVxcdUM5RUFcXHVDOUVCXFx1QzlFRVxcdUM5RjJcIiwgNSwgXCJcXHVDOUZBXFx1QzlGQlxcdUM5RkRcXHVDOUZFXFx1QzlGRlxcdUNBMDFcXHVDQTAyXFx1Q0EwM1xcdUNBMDRcIl0sXG4gICAgICBbXCJhNDYxXCIsIFwiXFx1Q0EwNVxcdUNBMDZcXHVDQTA3XFx1Q0EwQVxcdUNBMEVcIiwgNSwgXCJcXHVDQTE1XFx1Q0ExNlxcdUNBMTdcXHVDQTE5XCIsIDEyXSxcbiAgICAgIFtcImE0ODFcIiwgXCJcXHVDQTI2XFx1Q0EyN1xcdUNBMjhcXHVDQTJBXCIsIDI4LCBcIlxcdTMxMzFcIiwgOTNdLFxuICAgICAgW1wiYTU0MVwiLCBcIlxcdUNBNDdcIiwgNCwgXCJcXHVDQTRFXFx1Q0E0RlxcdUNBNTFcXHVDQTUyXFx1Q0E1M1xcdUNBNTVcIiwgNiwgXCJcXHVDQTVFXFx1Q0E2MlwiLCA1LCBcIlxcdUNBNjlcXHVDQTZBXCJdLFxuICAgICAgW1wiYTU2MVwiLCBcIlxcdUNBNkJcIiwgMTcsIFwiXFx1Q0E3RVwiLCA1LCBcIlxcdUNBODVcXHVDQTg2XCJdLFxuICAgICAgW1wiYTU4MVwiLCBcIlxcdUNBODdcIiwgMTYsIFwiXFx1Q0E5OVwiLCAxNCwgXCJcXHUyMTcwXCIsIDldLFxuICAgICAgW1wiYTViMFwiLCBcIlxcdTIxNjBcIiwgOV0sXG4gICAgICBbXCJhNWMxXCIsIFwiXFx1MDM5MVwiLCAxNiwgXCJcXHUwM0EzXCIsIDZdLFxuICAgICAgW1wiYTVlMVwiLCBcIlxcdTAzQjFcIiwgMTYsIFwiXFx1MDNDM1wiLCA2XSxcbiAgICAgIFtcImE2NDFcIiwgXCJcXHVDQUE4XCIsIDE5LCBcIlxcdUNBQkVcXHVDQUJGXFx1Q0FDMVxcdUNBQzJcXHVDQUMzXFx1Q0FDNVwiXSxcbiAgICAgIFtcImE2NjFcIiwgXCJcXHVDQUM2XCIsIDUsIFwiXFx1Q0FDRVxcdUNBRDBcXHVDQUQyXFx1Q0FENFxcdUNBRDVcXHVDQUQ2XFx1Q0FEN1xcdUNBREFcIiwgNSwgXCJcXHVDQUUxXCIsIDZdLFxuICAgICAgW1wiYTY4MVwiLCBcIlxcdUNBRThcXHVDQUU5XFx1Q0FFQVxcdUNBRUJcXHVDQUVEXCIsIDYsIFwiXFx1Q0FGNVwiLCAxOCwgXCJcXHVDQjA5XFx1Q0IwQVxcdTI1MDBcXHUyNTAyXFx1MjUwQ1xcdTI1MTBcXHUyNTE4XFx1MjUxNFxcdTI1MUNcXHUyNTJDXFx1MjUyNFxcdTI1MzRcXHUyNTNDXFx1MjUwMVxcdTI1MDNcXHUyNTBGXFx1MjUxM1xcdTI1MUJcXHUyNTE3XFx1MjUyM1xcdTI1MzNcXHUyNTJCXFx1MjUzQlxcdTI1NEJcXHUyNTIwXFx1MjUyRlxcdTI1MjhcXHUyNTM3XFx1MjUzRlxcdTI1MURcXHUyNTMwXFx1MjUyNVxcdTI1MzhcXHUyNTQyXFx1MjUxMlxcdTI1MTFcXHUyNTFBXFx1MjUxOVxcdTI1MTZcXHUyNTE1XFx1MjUwRVxcdTI1MERcXHUyNTFFXFx1MjUxRlxcdTI1MjFcXHUyNTIyXFx1MjUyNlxcdTI1MjdcXHUyNTI5XFx1MjUyQVxcdTI1MkRcXHUyNTJFXFx1MjUzMVxcdTI1MzJcXHUyNTM1XFx1MjUzNlxcdTI1MzlcXHUyNTNBXFx1MjUzRFxcdTI1M0VcXHUyNTQwXFx1MjU0MVxcdTI1NDNcIiwgN10sXG4gICAgICBbXCJhNzQxXCIsIFwiXFx1Q0IwQlwiLCA0LCBcIlxcdUNCMTFcXHVDQjEyXFx1Q0IxM1xcdUNCMTVcXHVDQjE2XFx1Q0IxN1xcdUNCMTlcIiwgNiwgXCJcXHVDQjIyXCIsIDddLFxuICAgICAgW1wiYTc2MVwiLCBcIlxcdUNCMkFcIiwgMjIsIFwiXFx1Q0I0MlxcdUNCNDNcXHVDQjQ0XCJdLFxuICAgICAgW1wiYTc4MVwiLCBcIlxcdUNCNDVcXHVDQjQ2XFx1Q0I0N1xcdUNCNEFcXHVDQjRCXFx1Q0I0RFxcdUNCNEVcXHVDQjRGXFx1Q0I1MVwiLCA2LCBcIlxcdUNCNUFcXHVDQjVCXFx1Q0I1Q1xcdUNCNUVcIiwgNSwgXCJcXHVDQjY1XCIsIDcsIFwiXFx1MzM5NVxcdTMzOTZcXHUzMzk3XFx1MjExM1xcdTMzOThcXHUzM0M0XFx1MzNBM1xcdTMzQTRcXHUzM0E1XFx1MzNBNlxcdTMzOTlcIiwgOSwgXCJcXHUzM0NBXFx1MzM4RFxcdTMzOEVcXHUzMzhGXFx1MzNDRlxcdTMzODhcXHUzMzg5XFx1MzNDOFxcdTMzQTdcXHUzM0E4XFx1MzNCMFwiLCA5LCBcIlxcdTMzODBcIiwgNCwgXCJcXHUzM0JBXCIsIDUsIFwiXFx1MzM5MFwiLCA0LCBcIlxcdTIxMjZcXHUzM0MwXFx1MzNDMVxcdTMzOEFcXHUzMzhCXFx1MzM4Q1xcdTMzRDZcXHUzM0M1XFx1MzNBRFxcdTMzQUVcXHUzM0FGXFx1MzNEQlxcdTMzQTlcXHUzM0FBXFx1MzNBQlxcdTMzQUNcXHUzM0REXFx1MzNEMFxcdTMzRDNcXHUzM0MzXFx1MzNDOVxcdTMzRENcXHUzM0M2XCJdLFxuICAgICAgW1wiYTg0MVwiLCBcIlxcdUNCNkRcIiwgMTAsIFwiXFx1Q0I3QVwiLCAxNF0sXG4gICAgICBbXCJhODYxXCIsIFwiXFx1Q0I4OVwiLCAxOCwgXCJcXHVDQjlEXCIsIDZdLFxuICAgICAgW1wiYTg4MVwiLCBcIlxcdUNCQTRcIiwgMTksIFwiXFx1Q0JCOVwiLCAxMSwgXCJcXHhDNlxceEQwXFx4QUFcXHUwMTI2XCJdLFxuICAgICAgW1wiYThhNlwiLCBcIlxcdTAxMzJcIl0sXG4gICAgICBbXCJhOGE4XCIsIFwiXFx1MDEzRlxcdTAxNDFcXHhEOFxcdTAxNTJcXHhCQVxceERFXFx1MDE2NlxcdTAxNEFcIl0sXG4gICAgICBbXCJhOGIxXCIsIFwiXFx1MzI2MFwiLCAyNywgXCJcXHUyNEQwXCIsIDI1LCBcIlxcdTI0NjBcIiwgMTQsIFwiXFx4QkRcXHUyMTUzXFx1MjE1NFxceEJDXFx4QkVcXHUyMTVCXFx1MjE1Q1xcdTIxNURcXHUyMTVFXCJdLFxuICAgICAgW1wiYTk0MVwiLCBcIlxcdUNCQzVcIiwgMTQsIFwiXFx1Q0JENVwiLCAxMF0sXG4gICAgICBbXCJhOTYxXCIsIFwiXFx1Q0JFMFxcdUNCRTFcXHVDQkUyXFx1Q0JFM1xcdUNCRTVcXHVDQkU2XFx1Q0JFOFxcdUNCRUFcIiwgMThdLFxuICAgICAgW1wiYTk4MVwiLCBcIlxcdUNCRkRcIiwgMTQsIFwiXFx1Q0MwRVxcdUNDMEZcXHVDQzExXFx1Q0MxMlxcdUNDMTNcXHVDQzE1XCIsIDYsIFwiXFx1Q0MxRVxcdUNDMUZcXHVDQzIwXFx1Q0MyM1xcdUNDMjRcXHhFNlxcdTAxMTFcXHhGMFxcdTAxMjdcXHUwMTMxXFx1MDEzM1xcdTAxMzhcXHUwMTQwXFx1MDE0MlxceEY4XFx1MDE1M1xceERGXFx4RkVcXHUwMTY3XFx1MDE0QlxcdTAxNDlcXHUzMjAwXCIsIDI3LCBcIlxcdTI0OUNcIiwgMjUsIFwiXFx1MjQ3NFwiLCAxNCwgXCJcXHhCOVxceEIyXFx4QjNcXHUyMDc0XFx1MjA3RlxcdTIwODFcXHUyMDgyXFx1MjA4M1xcdTIwODRcIl0sXG4gICAgICBbXCJhYTQxXCIsIFwiXFx1Q0MyNVxcdUNDMjZcXHVDQzJBXFx1Q0MyQlxcdUNDMkRcXHVDQzJGXFx1Q0MzMVwiLCA2LCBcIlxcdUNDM0FcXHVDQzNGXCIsIDQsIFwiXFx1Q0M0NlxcdUNDNDdcXHVDQzQ5XFx1Q0M0QVxcdUNDNEJcXHVDQzREXFx1Q0M0RVwiXSxcbiAgICAgIFtcImFhNjFcIiwgXCJcXHVDQzRGXCIsIDQsIFwiXFx1Q0M1NlxcdUNDNUFcIiwgNSwgXCJcXHVDQzYxXFx1Q0M2MlxcdUNDNjNcXHVDQzY1XFx1Q0M2N1xcdUNDNjlcIiwgNiwgXCJcXHVDQzcxXFx1Q0M3MlwiXSxcbiAgICAgIFtcImFhODFcIiwgXCJcXHVDQzczXFx1Q0M3NFxcdUNDNzZcIiwgMjksIFwiXFx1MzA0MVwiLCA4Ml0sXG4gICAgICBbXCJhYjQxXCIsIFwiXFx1Q0M5NFxcdUNDOTVcXHVDQzk2XFx1Q0M5N1xcdUNDOUFcXHVDQzlCXFx1Q0M5RFxcdUNDOUVcXHVDQzlGXFx1Q0NBMVwiLCA2LCBcIlxcdUNDQUFcXHVDQ0FFXCIsIDUsIFwiXFx1Q0NCNlxcdUNDQjdcXHVDQ0I5XCJdLFxuICAgICAgW1wiYWI2MVwiLCBcIlxcdUNDQkFcXHVDQ0JCXFx1Q0NCRFwiLCA2LCBcIlxcdUNDQzZcXHVDQ0M4XFx1Q0NDQVwiLCA1LCBcIlxcdUNDRDFcXHVDQ0QyXFx1Q0NEM1xcdUNDRDVcIiwgNV0sXG4gICAgICBbXCJhYjgxXCIsIFwiXFx1Q0NEQlwiLCA4LCBcIlxcdUNDRTVcIiwgNiwgXCJcXHVDQ0VEXFx1Q0NFRVxcdUNDRUZcXHVDQ0YxXCIsIDEyLCBcIlxcdTMwQTFcIiwgODVdLFxuICAgICAgW1wiYWM0MVwiLCBcIlxcdUNDRkVcXHVDQ0ZGXFx1Q0QwMFxcdUNEMDJcIiwgNSwgXCJcXHVDRDBBXFx1Q0QwQlxcdUNEMERcXHVDRDBFXFx1Q0QwRlxcdUNEMTFcIiwgNiwgXCJcXHVDRDFBXFx1Q0QxQ1xcdUNEMUVcXHVDRDFGXFx1Q0QyMFwiXSxcbiAgICAgIFtcImFjNjFcIiwgXCJcXHVDRDIxXFx1Q0QyMlxcdUNEMjNcXHVDRDI1XFx1Q0QyNlxcdUNEMjdcXHVDRDI5XFx1Q0QyQVxcdUNEMkJcXHVDRDJEXCIsIDExLCBcIlxcdUNEM0FcIiwgNF0sXG4gICAgICBbXCJhYzgxXCIsIFwiXFx1Q0QzRlwiLCAyOCwgXCJcXHVDRDVEXFx1Q0Q1RVxcdUNENUZcXHUwNDEwXCIsIDUsIFwiXFx1MDQwMVxcdTA0MTZcIiwgMjVdLFxuICAgICAgW1wiYWNkMVwiLCBcIlxcdTA0MzBcIiwgNSwgXCJcXHUwNDUxXFx1MDQzNlwiLCAyNV0sXG4gICAgICBbXCJhZDQxXCIsIFwiXFx1Q0Q2MVxcdUNENjJcXHVDRDYzXFx1Q0Q2NVwiLCA2LCBcIlxcdUNENkVcXHVDRDcwXFx1Q0Q3MlwiLCA1LCBcIlxcdUNENzlcIiwgN10sXG4gICAgICBbXCJhZDYxXCIsIFwiXFx1Q0Q4MVwiLCA2LCBcIlxcdUNEODlcIiwgMTAsIFwiXFx1Q0Q5NlxcdUNEOTdcXHVDRDk5XFx1Q0Q5QVxcdUNEOUJcXHVDRDlEXFx1Q0Q5RVxcdUNEOUZcIl0sXG4gICAgICBbXCJhZDgxXCIsIFwiXFx1Q0RBMFxcdUNEQTFcXHVDREEyXFx1Q0RBM1xcdUNEQTZcXHVDREE4XFx1Q0RBQVwiLCA1LCBcIlxcdUNEQjFcIiwgMTgsIFwiXFx1Q0RDNVwiXSxcbiAgICAgIFtcImFlNDFcIiwgXCJcXHVDREM2XCIsIDUsIFwiXFx1Q0RDRFxcdUNEQ0VcXHVDRENGXFx1Q0REMVwiLCAxNl0sXG4gICAgICBbXCJhZTYxXCIsIFwiXFx1Q0RFMlwiLCA1LCBcIlxcdUNERTlcXHVDREVBXFx1Q0RFQlxcdUNERURcXHVDREVFXFx1Q0RFRlxcdUNERjFcIiwgNiwgXCJcXHVDREZBXFx1Q0RGQ1xcdUNERkVcIiwgNF0sXG4gICAgICBbXCJhZTgxXCIsIFwiXFx1Q0UwM1xcdUNFMDVcXHVDRTA2XFx1Q0UwN1xcdUNFMDlcXHVDRTBBXFx1Q0UwQlxcdUNFMERcIiwgNiwgXCJcXHVDRTE1XFx1Q0UxNlxcdUNFMTdcXHVDRTE4XFx1Q0UxQVwiLCA1LCBcIlxcdUNFMjJcXHVDRTIzXFx1Q0UyNVxcdUNFMjZcXHVDRTI3XFx1Q0UyOVxcdUNFMkFcXHVDRTJCXCJdLFxuICAgICAgW1wiYWY0MVwiLCBcIlxcdUNFMkNcXHVDRTJEXFx1Q0UyRVxcdUNFMkZcXHVDRTMyXFx1Q0UzNFxcdUNFMzZcIiwgMTldLFxuICAgICAgW1wiYWY2MVwiLCBcIlxcdUNFNEFcIiwgMTMsIFwiXFx1Q0U1QVxcdUNFNUJcXHVDRTVEXFx1Q0U1RVxcdUNFNjJcIiwgNSwgXCJcXHVDRTZBXFx1Q0U2Q1wiXSxcbiAgICAgIFtcImFmODFcIiwgXCJcXHVDRTZFXCIsIDUsIFwiXFx1Q0U3NlxcdUNFNzdcXHVDRTc5XFx1Q0U3QVxcdUNFN0JcXHVDRTdEXCIsIDYsIFwiXFx1Q0U4NlxcdUNFODhcXHVDRThBXCIsIDUsIFwiXFx1Q0U5MlxcdUNFOTNcXHVDRTk1XFx1Q0U5NlxcdUNFOTdcXHVDRTk5XCJdLFxuICAgICAgW1wiYjA0MVwiLCBcIlxcdUNFOUFcIiwgNSwgXCJcXHVDRUEyXFx1Q0VBNlwiLCA1LCBcIlxcdUNFQUVcIiwgMTJdLFxuICAgICAgW1wiYjA2MVwiLCBcIlxcdUNFQkJcIiwgNSwgXCJcXHVDRUMyXCIsIDE5XSxcbiAgICAgIFtcImIwODFcIiwgXCJcXHVDRUQ2XCIsIDEzLCBcIlxcdUNFRTZcXHVDRUU3XFx1Q0VFOVxcdUNFRUFcXHVDRUVEXCIsIDYsIFwiXFx1Q0VGNlxcdUNFRkFcIiwgNSwgXCJcXHVBQzAwXFx1QUMwMVxcdUFDMDRcXHVBQzA3XFx1QUMwOFxcdUFDMDlcXHVBQzBBXFx1QUMxMFwiLCA3LCBcIlxcdUFDMTlcIiwgNCwgXCJcXHVBQzIwXFx1QUMyNFxcdUFDMkNcXHVBQzJEXFx1QUMyRlxcdUFDMzBcXHVBQzMxXFx1QUMzOFxcdUFDMzlcXHVBQzNDXFx1QUM0MFxcdUFDNEJcXHVBQzREXFx1QUM1NFxcdUFDNThcXHVBQzVDXFx1QUM3MFxcdUFDNzFcXHVBQzc0XFx1QUM3N1xcdUFDNzhcXHVBQzdBXFx1QUM4MFxcdUFDODFcXHVBQzgzXFx1QUM4NFxcdUFDODVcXHVBQzg2XFx1QUM4OVxcdUFDOEFcXHVBQzhCXFx1QUM4Q1xcdUFDOTBcXHVBQzk0XFx1QUM5Q1xcdUFDOURcXHVBQzlGXFx1QUNBMFxcdUFDQTFcXHVBQ0E4XFx1QUNBOVxcdUFDQUFcXHVBQ0FDXFx1QUNBRlxcdUFDQjBcXHVBQ0I4XFx1QUNCOVxcdUFDQkJcXHVBQ0JDXFx1QUNCRFxcdUFDQzFcXHVBQ0M0XFx1QUNDOFxcdUFDQ0NcXHVBQ0Q1XFx1QUNEN1xcdUFDRTBcXHVBQ0UxXFx1QUNFNFxcdUFDRTdcXHVBQ0U4XFx1QUNFQVxcdUFDRUNcXHVBQ0VGXFx1QUNGMFxcdUFDRjFcXHVBQ0YzXFx1QUNGNVxcdUFDRjZcXHVBQ0ZDXFx1QUNGRFxcdUFEMDBcXHVBRDA0XFx1QUQwNlwiXSxcbiAgICAgIFtcImIxNDFcIiwgXCJcXHVDRjAyXFx1Q0YwM1xcdUNGMDVcXHVDRjA2XFx1Q0YwN1xcdUNGMDlcIiwgNiwgXCJcXHVDRjEyXFx1Q0YxNFxcdUNGMTZcIiwgNSwgXCJcXHVDRjFEXFx1Q0YxRVxcdUNGMUZcXHVDRjIxXFx1Q0YyMlxcdUNGMjNcIl0sXG4gICAgICBbXCJiMTYxXCIsIFwiXFx1Q0YyNVwiLCA2LCBcIlxcdUNGMkVcXHVDRjMyXCIsIDUsIFwiXFx1Q0YzOVwiLCAxMV0sXG4gICAgICBbXCJiMTgxXCIsIFwiXFx1Q0Y0NVwiLCAxNCwgXCJcXHVDRjU2XFx1Q0Y1N1xcdUNGNTlcXHVDRjVBXFx1Q0Y1QlxcdUNGNURcIiwgNiwgXCJcXHVDRjY2XFx1Q0Y2OFxcdUNGNkFcXHVDRjZCXFx1Q0Y2Q1xcdUFEMENcXHVBRDBEXFx1QUQwRlxcdUFEMTFcXHVBRDE4XFx1QUQxQ1xcdUFEMjBcXHVBRDI5XFx1QUQyQ1xcdUFEMkRcXHVBRDM0XFx1QUQzNVxcdUFEMzhcXHVBRDNDXFx1QUQ0NFxcdUFENDVcXHVBRDQ3XFx1QUQ0OVxcdUFENTBcXHVBRDU0XFx1QUQ1OFxcdUFENjFcXHVBRDYzXFx1QUQ2Q1xcdUFENkRcXHVBRDcwXFx1QUQ3M1xcdUFENzRcXHVBRDc1XFx1QUQ3NlxcdUFEN0JcXHVBRDdDXFx1QUQ3RFxcdUFEN0ZcXHVBRDgxXFx1QUQ4MlxcdUFEODhcXHVBRDg5XFx1QUQ4Q1xcdUFEOTBcXHVBRDlDXFx1QUQ5RFxcdUFEQTRcXHVBREI3XFx1QURDMFxcdUFEQzFcXHVBREM0XFx1QURDOFxcdUFERDBcXHVBREQxXFx1QUREM1xcdUFERENcXHVBREUwXFx1QURFNFxcdUFERjhcXHVBREY5XFx1QURGQ1xcdUFERkZcXHVBRTAwXFx1QUUwMVxcdUFFMDhcXHVBRTA5XFx1QUUwQlxcdUFFMERcXHVBRTE0XFx1QUUzMFxcdUFFMzFcXHVBRTM0XFx1QUUzN1xcdUFFMzhcXHVBRTNBXFx1QUU0MFxcdUFFNDFcXHVBRTQzXFx1QUU0NVxcdUFFNDZcXHVBRTRBXFx1QUU0Q1xcdUFFNERcXHVBRTRFXFx1QUU1MFxcdUFFNTRcXHVBRTU2XFx1QUU1Q1xcdUFFNURcXHVBRTVGXFx1QUU2MFxcdUFFNjFcXHVBRTY1XFx1QUU2OFxcdUFFNjlcXHVBRTZDXFx1QUU3MFxcdUFFNzhcIl0sXG4gICAgICBbXCJiMjQxXCIsIFwiXFx1Q0Y2RFxcdUNGNkVcXHVDRjZGXFx1Q0Y3MlxcdUNGNzNcXHVDRjc1XFx1Q0Y3NlxcdUNGNzdcXHVDRjc5XCIsIDYsIFwiXFx1Q0Y4MVxcdUNGODJcXHVDRjgzXFx1Q0Y4NFxcdUNGODZcIiwgNSwgXCJcXHVDRjhEXCJdLFxuICAgICAgW1wiYjI2MVwiLCBcIlxcdUNGOEVcIiwgMTgsIFwiXFx1Q0ZBMlwiLCA1LCBcIlxcdUNGQTlcIl0sXG4gICAgICBbXCJiMjgxXCIsIFwiXFx1Q0ZBQVwiLCA1LCBcIlxcdUNGQjFcIiwgMTgsIFwiXFx1Q0ZDNVwiLCA2LCBcIlxcdUFFNzlcXHVBRTdCXFx1QUU3Q1xcdUFFN0RcXHVBRTg0XFx1QUU4NVxcdUFFOENcXHVBRUJDXFx1QUVCRFxcdUFFQkVcXHVBRUMwXFx1QUVDNFxcdUFFQ0NcXHVBRUNEXFx1QUVDRlxcdUFFRDBcXHVBRUQxXFx1QUVEOFxcdUFFRDlcXHVBRURDXFx1QUVFOFxcdUFFRUJcXHVBRUVEXFx1QUVGNFxcdUFFRjhcXHVBRUZDXFx1QUYwN1xcdUFGMDhcXHVBRjBEXFx1QUYxMFxcdUFGMkNcXHVBRjJEXFx1QUYzMFxcdUFGMzJcXHVBRjM0XFx1QUYzQ1xcdUFGM0RcXHVBRjNGXFx1QUY0MVxcdUFGNDJcXHVBRjQzXFx1QUY0OFxcdUFGNDlcXHVBRjUwXFx1QUY1Q1xcdUFGNURcXHVBRjY0XFx1QUY2NVxcdUFGNzlcXHVBRjgwXFx1QUY4NFxcdUFGODhcXHVBRjkwXFx1QUY5MVxcdUFGOTVcXHVBRjlDXFx1QUZCOFxcdUFGQjlcXHVBRkJDXFx1QUZDMFxcdUFGQzdcXHVBRkM4XFx1QUZDOVxcdUFGQ0JcXHVBRkNEXFx1QUZDRVxcdUFGRDRcXHVBRkRDXFx1QUZFOFxcdUFGRTlcXHVBRkYwXFx1QUZGMVxcdUFGRjRcXHVBRkY4XFx1QjAwMFxcdUIwMDFcXHVCMDA0XFx1QjAwQ1xcdUIwMTBcXHVCMDE0XFx1QjAxQ1xcdUIwMURcXHVCMDI4XFx1QjA0NFxcdUIwNDVcXHVCMDQ4XFx1QjA0QVxcdUIwNENcXHVCMDRFXFx1QjA1M1xcdUIwNTRcXHVCMDU1XFx1QjA1N1xcdUIwNTlcIl0sXG4gICAgICBbXCJiMzQxXCIsIFwiXFx1Q0ZDQ1wiLCAxOSwgXCJcXHVDRkUyXFx1Q0ZFM1xcdUNGRTVcXHVDRkU2XFx1Q0ZFN1xcdUNGRTlcIl0sXG4gICAgICBbXCJiMzYxXCIsIFwiXFx1Q0ZFQVwiLCA1LCBcIlxcdUNGRjJcXHVDRkY0XFx1Q0ZGNlwiLCA1LCBcIlxcdUNGRkRcXHVDRkZFXFx1Q0ZGRlxcdUQwMDFcXHVEMDAyXFx1RDAwM1xcdUQwMDVcIiwgNV0sXG4gICAgICBbXCJiMzgxXCIsIFwiXFx1RDAwQlwiLCA1LCBcIlxcdUQwMTJcIiwgNSwgXCJcXHVEMDE5XCIsIDE5LCBcIlxcdUIwNURcXHVCMDdDXFx1QjA3RFxcdUIwODBcXHVCMDg0XFx1QjA4Q1xcdUIwOERcXHVCMDhGXFx1QjA5MVxcdUIwOThcXHVCMDk5XFx1QjA5QVxcdUIwOUNcXHVCMDlGXFx1QjBBMFxcdUIwQTFcXHVCMEEyXFx1QjBBOFxcdUIwQTlcXHVCMEFCXCIsIDQsIFwiXFx1QjBCMVxcdUIwQjNcXHVCMEI0XFx1QjBCNVxcdUIwQjhcXHVCMEJDXFx1QjBDNFxcdUIwQzVcXHVCMEM3XFx1QjBDOFxcdUIwQzlcXHVCMEQwXFx1QjBEMVxcdUIwRDRcXHVCMEQ4XFx1QjBFMFxcdUIwRTVcXHVCMTA4XFx1QjEwOVxcdUIxMEJcXHVCMTBDXFx1QjExMFxcdUIxMTJcXHVCMTEzXFx1QjExOFxcdUIxMTlcXHVCMTFCXFx1QjExQ1xcdUIxMURcXHVCMTIzXFx1QjEyNFxcdUIxMjVcXHVCMTI4XFx1QjEyQ1xcdUIxMzRcXHVCMTM1XFx1QjEzN1xcdUIxMzhcXHVCMTM5XFx1QjE0MFxcdUIxNDFcXHVCMTQ0XFx1QjE0OFxcdUIxNTBcXHVCMTUxXFx1QjE1NFxcdUIxNTVcXHVCMTU4XFx1QjE1Q1xcdUIxNjBcXHVCMTc4XFx1QjE3OVxcdUIxN0NcXHVCMTgwXFx1QjE4MlxcdUIxODhcXHVCMTg5XFx1QjE4QlxcdUIxOERcXHVCMTkyXFx1QjE5M1xcdUIxOTRcXHVCMTk4XFx1QjE5Q1xcdUIxQThcXHVCMUNDXFx1QjFEMFxcdUIxRDRcXHVCMURDXFx1QjFERFwiXSxcbiAgICAgIFtcImI0NDFcIiwgXCJcXHVEMDJFXCIsIDUsIFwiXFx1RDAzNlxcdUQwMzdcXHVEMDM5XFx1RDAzQVxcdUQwM0JcXHVEMDNEXCIsIDYsIFwiXFx1RDA0NlxcdUQwNDhcXHVEMDRBXCIsIDVdLFxuICAgICAgW1wiYjQ2MVwiLCBcIlxcdUQwNTFcXHVEMDUyXFx1RDA1M1xcdUQwNTVcXHVEMDU2XFx1RDA1N1xcdUQwNTlcIiwgNiwgXCJcXHVEMDYxXCIsIDEwLCBcIlxcdUQwNkVcXHVEMDZGXCJdLFxuICAgICAgW1wiYjQ4MVwiLCBcIlxcdUQwNzFcXHVEMDcyXFx1RDA3M1xcdUQwNzVcIiwgNiwgXCJcXHVEMDdFXFx1RDA3RlxcdUQwODBcXHVEMDgyXCIsIDE4LCBcIlxcdUIxREZcXHVCMUU4XFx1QjFFOVxcdUIxRUNcXHVCMUYwXFx1QjFGOVxcdUIxRkJcXHVCMUZEXFx1QjIwNFxcdUIyMDVcXHVCMjA4XFx1QjIwQlxcdUIyMENcXHVCMjE0XFx1QjIxNVxcdUIyMTdcXHVCMjE5XFx1QjIyMFxcdUIyMzRcXHVCMjNDXFx1QjI1OFxcdUIyNUNcXHVCMjYwXFx1QjI2OFxcdUIyNjlcXHVCMjc0XFx1QjI3NVxcdUIyN0NcXHVCMjg0XFx1QjI4NVxcdUIyODlcXHVCMjkwXFx1QjI5MVxcdUIyOTRcXHVCMjk4XFx1QjI5OVxcdUIyOUFcXHVCMkEwXFx1QjJBMVxcdUIyQTNcXHVCMkE1XFx1QjJBNlxcdUIyQUFcXHVCMkFDXFx1QjJCMFxcdUIyQjRcXHVCMkM4XFx1QjJDOVxcdUIyQ0NcXHVCMkQwXFx1QjJEMlxcdUIyRDhcXHVCMkQ5XFx1QjJEQlxcdUIyRERcXHVCMkUyXFx1QjJFNFxcdUIyRTVcXHVCMkU2XFx1QjJFOFxcdUIyRUJcIiwgNCwgXCJcXHVCMkYzXFx1QjJGNFxcdUIyRjVcXHVCMkY3XCIsIDQsIFwiXFx1QjJGRlxcdUIzMDBcXHVCMzAxXFx1QjMwNFxcdUIzMDhcXHVCMzEwXFx1QjMxMVxcdUIzMTNcXHVCMzE0XFx1QjMxNVxcdUIzMUNcXHVCMzU0XFx1QjM1NVxcdUIzNTZcXHVCMzU4XFx1QjM1QlxcdUIzNUNcXHVCMzVFXFx1QjM1RlxcdUIzNjRcXHVCMzY1XCJdLFxuICAgICAgW1wiYjU0MVwiLCBcIlxcdUQwOTVcIiwgMTQsIFwiXFx1RDBBNlxcdUQwQTdcXHVEMEE5XFx1RDBBQVxcdUQwQUJcXHVEMEFEXCIsIDVdLFxuICAgICAgW1wiYjU2MVwiLCBcIlxcdUQwQjNcXHVEMEI2XFx1RDBCOFxcdUQwQkFcIiwgNSwgXCJcXHVEMEMyXFx1RDBDM1xcdUQwQzVcXHVEMEM2XFx1RDBDN1xcdUQwQ0FcIiwgNSwgXCJcXHVEMEQyXFx1RDBENlwiLCA0XSxcbiAgICAgIFtcImI1ODFcIiwgXCJcXHVEMERCXFx1RDBERVxcdUQwREZcXHVEMEUxXFx1RDBFMlxcdUQwRTNcXHVEMEU1XCIsIDYsIFwiXFx1RDBFRVxcdUQwRjJcIiwgNSwgXCJcXHVEMEY5XCIsIDExLCBcIlxcdUIzNjdcXHVCMzY5XFx1QjM2QlxcdUIzNkVcXHVCMzcwXFx1QjM3MVxcdUIzNzRcXHVCMzc4XFx1QjM4MFxcdUIzODFcXHVCMzgzXFx1QjM4NFxcdUIzODVcXHVCMzhDXFx1QjM5MFxcdUIzOTRcXHVCM0EwXFx1QjNBMVxcdUIzQThcXHVCM0FDXFx1QjNDNFxcdUIzQzVcXHVCM0M4XFx1QjNDQlxcdUIzQ0NcXHVCM0NFXFx1QjNEMFxcdUIzRDRcXHVCM0Q1XFx1QjNEN1xcdUIzRDlcXHVCM0RCXFx1QjNERFxcdUIzRTBcXHVCM0U0XFx1QjNFOFxcdUIzRkNcXHVCNDEwXFx1QjQxOFxcdUI0MUNcXHVCNDIwXFx1QjQyOFxcdUI0MjlcXHVCNDJCXFx1QjQzNFxcdUI0NTBcXHVCNDUxXFx1QjQ1NFxcdUI0NThcXHVCNDYwXFx1QjQ2MVxcdUI0NjNcXHVCNDY1XFx1QjQ2Q1xcdUI0ODBcXHVCNDg4XFx1QjQ5RFxcdUI0QTRcXHVCNEE4XFx1QjRBQ1xcdUI0QjVcXHVCNEI3XFx1QjRCOVxcdUI0QzBcXHVCNEM0XFx1QjRDOFxcdUI0RDBcXHVCNEQ1XFx1QjREQ1xcdUI0RERcXHVCNEUwXFx1QjRFM1xcdUI0RTRcXHVCNEU2XFx1QjRFQ1xcdUI0RURcXHVCNEVGXFx1QjRGMVxcdUI0RjhcXHVCNTE0XFx1QjUxNVxcdUI1MThcXHVCNTFCXFx1QjUxQ1xcdUI1MjRcXHVCNTI1XFx1QjUyN1xcdUI1MjhcXHVCNTI5XFx1QjUyQVxcdUI1MzBcXHVCNTMxXFx1QjUzNFxcdUI1MzhcIl0sXG4gICAgICBbXCJiNjQxXCIsIFwiXFx1RDEwNVwiLCA3LCBcIlxcdUQxMEVcIiwgMTddLFxuICAgICAgW1wiYjY2MVwiLCBcIlxcdUQxMjBcIiwgMTUsIFwiXFx1RDEzMlxcdUQxMzNcXHVEMTM1XFx1RDEzNlxcdUQxMzdcXHVEMTM5XFx1RDEzQlxcdUQxM0NcXHVEMTNEXFx1RDEzRVwiXSxcbiAgICAgIFtcImI2ODFcIiwgXCJcXHVEMTNGXFx1RDE0MlxcdUQxNDZcIiwgNSwgXCJcXHVEMTRFXFx1RDE0RlxcdUQxNTFcXHVEMTUyXFx1RDE1M1xcdUQxNTVcIiwgNiwgXCJcXHVEMTVFXFx1RDE2MFxcdUQxNjJcIiwgNSwgXCJcXHVEMTY5XFx1RDE2QVxcdUQxNkJcXHVEMTZEXFx1QjU0MFxcdUI1NDFcXHVCNTQzXFx1QjU0NFxcdUI1NDVcXHVCNTRCXFx1QjU0Q1xcdUI1NERcXHVCNTUwXFx1QjU1NFxcdUI1NUNcXHVCNTVEXFx1QjU1RlxcdUI1NjBcXHVCNTYxXFx1QjVBMFxcdUI1QTFcXHVCNUE0XFx1QjVBOFxcdUI1QUFcXHVCNUFCXFx1QjVCMFxcdUI1QjFcXHVCNUIzXFx1QjVCNFxcdUI1QjVcXHVCNUJCXFx1QjVCQ1xcdUI1QkRcXHVCNUMwXFx1QjVDNFxcdUI1Q0NcXHVCNUNEXFx1QjVDRlxcdUI1RDBcXHVCNUQxXFx1QjVEOFxcdUI1RUNcXHVCNjEwXFx1QjYxMVxcdUI2MTRcXHVCNjE4XFx1QjYyNVxcdUI2MkNcXHVCNjM0XFx1QjY0OFxcdUI2NjRcXHVCNjY4XFx1QjY5Q1xcdUI2OURcXHVCNkEwXFx1QjZBNFxcdUI2QUJcXHVCNkFDXFx1QjZCMVxcdUI2RDRcXHVCNkYwXFx1QjZGNFxcdUI2RjhcXHVCNzAwXFx1QjcwMVxcdUI3MDVcXHVCNzI4XFx1QjcyOVxcdUI3MkNcXHVCNzJGXFx1QjczMFxcdUI3MzhcXHVCNzM5XFx1QjczQlxcdUI3NDRcXHVCNzQ4XFx1Qjc0Q1xcdUI3NTRcXHVCNzU1XFx1Qjc2MFxcdUI3NjRcXHVCNzY4XFx1Qjc3MFxcdUI3NzFcXHVCNzczXFx1Qjc3NVxcdUI3N0NcXHVCNzdEXFx1Qjc4MFxcdUI3ODRcXHVCNzhDXFx1Qjc4RFxcdUI3OEZcXHVCNzkwXFx1Qjc5MVxcdUI3OTJcXHVCNzk2XFx1Qjc5N1wiXSxcbiAgICAgIFtcImI3NDFcIiwgXCJcXHVEMTZFXCIsIDEzLCBcIlxcdUQxN0RcIiwgNiwgXCJcXHVEMTg1XFx1RDE4NlxcdUQxODdcXHVEMTg5XFx1RDE4QVwiXSxcbiAgICAgIFtcImI3NjFcIiwgXCJcXHVEMThCXCIsIDIwLCBcIlxcdUQxQTJcXHVEMUEzXFx1RDFBNVxcdUQxQTZcXHVEMUE3XCJdLFxuICAgICAgW1wiYjc4MVwiLCBcIlxcdUQxQTlcIiwgNiwgXCJcXHVEMUIyXFx1RDFCNFxcdUQxQjZcXHVEMUI3XFx1RDFCOFxcdUQxQjlcXHVEMUJCXFx1RDFCRFxcdUQxQkVcXHVEMUJGXFx1RDFDMVwiLCAxNCwgXCJcXHVCNzk4XFx1Qjc5OVxcdUI3OUNcXHVCN0EwXFx1QjdBOFxcdUI3QTlcXHVCN0FCXFx1QjdBQ1xcdUI3QURcXHVCN0I0XFx1QjdCNVxcdUI3QjhcXHVCN0M3XFx1QjdDOVxcdUI3RUNcXHVCN0VEXFx1QjdGMFxcdUI3RjRcXHVCN0ZDXFx1QjdGRFxcdUI3RkZcXHVCODAwXFx1QjgwMVxcdUI4MDdcXHVCODA4XFx1QjgwOVxcdUI4MENcXHVCODEwXFx1QjgxOFxcdUI4MTlcXHVCODFCXFx1QjgxRFxcdUI4MjRcXHVCODI1XFx1QjgyOFxcdUI4MkNcXHVCODM0XFx1QjgzNVxcdUI4MzdcXHVCODM4XFx1QjgzOVxcdUI4NDBcXHVCODQ0XFx1Qjg1MVxcdUI4NTNcXHVCODVDXFx1Qjg1RFxcdUI4NjBcXHVCODY0XFx1Qjg2Q1xcdUI4NkRcXHVCODZGXFx1Qjg3MVxcdUI4NzhcXHVCODdDXFx1Qjg4RFxcdUI4QThcXHVCOEIwXFx1QjhCNFxcdUI4QjhcXHVCOEMwXFx1QjhDMVxcdUI4QzNcXHVCOEM1XFx1QjhDQ1xcdUI4RDBcXHVCOEQ0XFx1QjhERFxcdUI4REZcXHVCOEUxXFx1QjhFOFxcdUI4RTlcXHVCOEVDXFx1QjhGMFxcdUI4RjhcXHVCOEY5XFx1QjhGQlxcdUI4RkRcXHVCOTA0XFx1QjkxOFxcdUI5MjBcXHVCOTNDXFx1QjkzRFxcdUI5NDBcXHVCOTQ0XFx1Qjk0Q1xcdUI5NEZcXHVCOTUxXFx1Qjk1OFxcdUI5NTlcXHVCOTVDXFx1Qjk2MFxcdUI5NjhcXHVCOTY5XCJdLFxuICAgICAgW1wiYjg0MVwiLCBcIlxcdUQxRDBcIiwgNywgXCJcXHVEMUQ5XCIsIDE3XSxcbiAgICAgIFtcImI4NjFcIiwgXCJcXHVEMUVCXCIsIDgsIFwiXFx1RDFGNVxcdUQxRjZcXHVEMUY3XFx1RDFGOVwiLCAxM10sXG4gICAgICBbXCJiODgxXCIsIFwiXFx1RDIwOFxcdUQyMEFcIiwgNSwgXCJcXHVEMjExXCIsIDI0LCBcIlxcdUI5NkJcXHVCOTZEXFx1Qjk3NFxcdUI5NzVcXHVCOTc4XFx1Qjk3Q1xcdUI5ODRcXHVCOTg1XFx1Qjk4N1xcdUI5ODlcXHVCOThBXFx1Qjk4RFxcdUI5OEVcXHVCOUFDXFx1QjlBRFxcdUI5QjBcXHVCOUI0XFx1QjlCQ1xcdUI5QkRcXHVCOUJGXFx1QjlDMVxcdUI5QzhcXHVCOUM5XFx1QjlDQ1xcdUI5Q0VcIiwgNCwgXCJcXHVCOUQ4XFx1QjlEOVxcdUI5REJcXHVCOUREXFx1QjlERVxcdUI5RTFcXHVCOUUzXFx1QjlFNFxcdUI5RTVcXHVCOUU4XFx1QjlFQ1xcdUI5RjRcXHVCOUY1XFx1QjlGN1xcdUI5RjhcXHVCOUY5XFx1QjlGQVxcdUJBMDBcXHVCQTAxXFx1QkEwOFxcdUJBMTVcXHVCQTM4XFx1QkEzOVxcdUJBM0NcXHVCQTQwXFx1QkE0MlxcdUJBNDhcXHVCQTQ5XFx1QkE0QlxcdUJBNERcXHVCQTRFXFx1QkE1M1xcdUJBNTRcXHVCQTU1XFx1QkE1OFxcdUJBNUNcXHVCQTY0XFx1QkE2NVxcdUJBNjdcXHVCQTY4XFx1QkE2OVxcdUJBNzBcXHVCQTcxXFx1QkE3NFxcdUJBNzhcXHVCQTgzXFx1QkE4NFxcdUJBODVcXHVCQTg3XFx1QkE4Q1xcdUJBQThcXHVCQUE5XFx1QkFBQlxcdUJBQUNcXHVCQUIwXFx1QkFCMlxcdUJBQjhcXHVCQUI5XFx1QkFCQlxcdUJBQkRcXHVCQUM0XFx1QkFDOFxcdUJBRDhcXHVCQUQ5XFx1QkFGQ1wiXSxcbiAgICAgIFtcImI5NDFcIiwgXCJcXHVEMjJBXFx1RDIyQlxcdUQyMkVcXHVEMjJGXFx1RDIzMVxcdUQyMzJcXHVEMjMzXFx1RDIzNVwiLCA2LCBcIlxcdUQyM0VcXHVEMjQwXFx1RDI0MlwiLCA1LCBcIlxcdUQyNDlcXHVEMjRBXFx1RDI0QlxcdUQyNENcIl0sXG4gICAgICBbXCJiOTYxXCIsIFwiXFx1RDI0RFwiLCAxNCwgXCJcXHVEMjVEXCIsIDYsIFwiXFx1RDI2NVxcdUQyNjZcXHVEMjY3XFx1RDI2OFwiXSxcbiAgICAgIFtcImI5ODFcIiwgXCJcXHVEMjY5XCIsIDIyLCBcIlxcdUQyODJcXHVEMjgzXFx1RDI4NVxcdUQyODZcXHVEMjg3XFx1RDI4OVxcdUQyOEFcXHVEMjhCXFx1RDI4Q1xcdUJCMDBcXHVCQjA0XFx1QkIwRFxcdUJCMEZcXHVCQjExXFx1QkIxOFxcdUJCMUNcXHVCQjIwXFx1QkIyOVxcdUJCMkJcXHVCQjM0XFx1QkIzNVxcdUJCMzZcXHVCQjM4XFx1QkIzQlxcdUJCM0NcXHVCQjNEXFx1QkIzRVxcdUJCNDRcXHVCQjQ1XFx1QkI0N1xcdUJCNDlcXHVCQjREXFx1QkI0RlxcdUJCNTBcXHVCQjU0XFx1QkI1OFxcdUJCNjFcXHVCQjYzXFx1QkI2Q1xcdUJCODhcXHVCQjhDXFx1QkI5MFxcdUJCQTRcXHVCQkE4XFx1QkJBQ1xcdUJCQjRcXHVCQkI3XFx1QkJDMFxcdUJCQzRcXHVCQkM4XFx1QkJEMFxcdUJCRDNcXHVCQkY4XFx1QkJGOVxcdUJCRkNcXHVCQkZGXFx1QkMwMFxcdUJDMDJcXHVCQzA4XFx1QkMwOVxcdUJDMEJcXHVCQzBDXFx1QkMwRFxcdUJDMEZcXHVCQzExXFx1QkMxNFwiLCA0LCBcIlxcdUJDMUJcIiwgNCwgXCJcXHVCQzI0XFx1QkMyNVxcdUJDMjdcXHVCQzI5XFx1QkMyRFxcdUJDMzBcXHVCQzMxXFx1QkMzNFxcdUJDMzhcXHVCQzQwXFx1QkM0MVxcdUJDNDNcXHVCQzQ0XFx1QkM0NVxcdUJDNDlcXHVCQzRDXFx1QkM0RFxcdUJDNTBcXHVCQzVEXFx1QkM4NFxcdUJDODVcXHVCQzg4XFx1QkM4QlxcdUJDOENcXHVCQzhFXFx1QkM5NFxcdUJDOTVcXHVCQzk3XCJdLFxuICAgICAgW1wiYmE0MVwiLCBcIlxcdUQyOERcXHVEMjhFXFx1RDI4RlxcdUQyOTJcXHVEMjkzXFx1RDI5NFxcdUQyOTZcIiwgNSwgXCJcXHVEMjlEXFx1RDI5RVxcdUQyOUZcXHVEMkExXFx1RDJBMlxcdUQyQTNcXHVEMkE1XCIsIDYsIFwiXFx1RDJBRFwiXSxcbiAgICAgIFtcImJhNjFcIiwgXCJcXHVEMkFFXFx1RDJBRlxcdUQyQjBcXHVEMkIyXCIsIDUsIFwiXFx1RDJCQVxcdUQyQkJcXHVEMkJEXFx1RDJCRVxcdUQyQzFcXHVEMkMzXCIsIDQsIFwiXFx1RDJDQVxcdUQyQ0NcIiwgNV0sXG4gICAgICBbXCJiYTgxXCIsIFwiXFx1RDJEMlxcdUQyRDNcXHVEMkQ1XFx1RDJENlxcdUQyRDdcXHVEMkQ5XFx1RDJEQVxcdUQyREJcXHVEMkREXCIsIDYsIFwiXFx1RDJFNlwiLCA5LCBcIlxcdUQyRjJcXHVEMkYzXFx1RDJGNVxcdUQyRjZcXHVEMkY3XFx1RDJGOVxcdUQyRkFcXHVCQzk5XFx1QkM5QVxcdUJDQTBcXHVCQ0ExXFx1QkNBNFxcdUJDQTdcXHVCQ0E4XFx1QkNCMFxcdUJDQjFcXHVCQ0IzXFx1QkNCNFxcdUJDQjVcXHVCQ0JDXFx1QkNCRFxcdUJDQzBcXHVCQ0M0XFx1QkNDRFxcdUJDQ0ZcXHVCQ0QwXFx1QkNEMVxcdUJDRDVcXHVCQ0Q4XFx1QkNEQ1xcdUJDRjRcXHVCQ0Y1XFx1QkNGNlxcdUJDRjhcXHVCQ0ZDXFx1QkQwNFxcdUJEMDVcXHVCRDA3XFx1QkQwOVxcdUJEMTBcXHVCRDE0XFx1QkQyNFxcdUJEMkNcXHVCRDQwXFx1QkQ0OFxcdUJENDlcXHVCRDRDXFx1QkQ1MFxcdUJENThcXHVCRDU5XFx1QkQ2NFxcdUJENjhcXHVCRDgwXFx1QkQ4MVxcdUJEODRcXHVCRDg3XFx1QkQ4OFxcdUJEODlcXHVCRDhBXFx1QkQ5MFxcdUJEOTFcXHVCRDkzXFx1QkQ5NVxcdUJEOTlcXHVCRDlBXFx1QkQ5Q1xcdUJEQTRcXHVCREIwXFx1QkRCOFxcdUJERDRcXHVCREQ1XFx1QkREOFxcdUJERENcXHVCREU5XFx1QkRGMFxcdUJERjRcXHVCREY4XFx1QkUwMFxcdUJFMDNcXHVCRTA1XFx1QkUwQ1xcdUJFMERcXHVCRTEwXFx1QkUxNFxcdUJFMUNcXHVCRTFEXFx1QkUxRlxcdUJFNDRcXHVCRTQ1XFx1QkU0OFxcdUJFNENcXHVCRTRFXFx1QkU1NFxcdUJFNTVcXHVCRTU3XFx1QkU1OVxcdUJFNUFcXHVCRTVCXFx1QkU2MFxcdUJFNjFcXHVCRTY0XCJdLFxuICAgICAgW1wiYmI0MVwiLCBcIlxcdUQyRkJcIiwgNCwgXCJcXHVEMzAyXFx1RDMwNFxcdUQzMDZcIiwgNSwgXCJcXHVEMzBGXFx1RDMxMVxcdUQzMTJcXHVEMzEzXFx1RDMxNVxcdUQzMTdcIiwgNCwgXCJcXHVEMzFFXFx1RDMyMlxcdUQzMjNcIl0sXG4gICAgICBbXCJiYjYxXCIsIFwiXFx1RDMyNFxcdUQzMjZcXHVEMzI3XFx1RDMyQVxcdUQzMkJcXHVEMzJEXFx1RDMyRVxcdUQzMkZcXHVEMzMxXCIsIDYsIFwiXFx1RDMzQVxcdUQzM0VcIiwgNSwgXCJcXHVEMzQ2XFx1RDM0N1xcdUQzNDhcXHVEMzQ5XCJdLFxuICAgICAgW1wiYmI4MVwiLCBcIlxcdUQzNEFcIiwgMzEsIFwiXFx1QkU2OFxcdUJFNkFcXHVCRTcwXFx1QkU3MVxcdUJFNzNcXHVCRTc0XFx1QkU3NVxcdUJFN0JcXHVCRTdDXFx1QkU3RFxcdUJFODBcXHVCRTg0XFx1QkU4Q1xcdUJFOERcXHVCRThGXFx1QkU5MFxcdUJFOTFcXHVCRTk4XFx1QkU5OVxcdUJFQThcXHVCRUQwXFx1QkVEMVxcdUJFRDRcXHVCRUQ3XFx1QkVEOFxcdUJFRTBcXHVCRUUzXFx1QkVFNFxcdUJFRTVcXHVCRUVDXFx1QkYwMVxcdUJGMDhcXHVCRjA5XFx1QkYxOFxcdUJGMTlcXHVCRjFCXFx1QkYxQ1xcdUJGMURcXHVCRjQwXFx1QkY0MVxcdUJGNDRcXHVCRjQ4XFx1QkY1MFxcdUJGNTFcXHVCRjU1XFx1QkY5NFxcdUJGQjBcXHVCRkM1XFx1QkZDQ1xcdUJGQ0RcXHVCRkQwXFx1QkZENFxcdUJGRENcXHVCRkRGXFx1QkZFMVxcdUMwM0NcXHVDMDUxXFx1QzA1OFxcdUMwNUNcXHVDMDYwXFx1QzA2OFxcdUMwNjlcXHVDMDkwXFx1QzA5MVxcdUMwOTRcXHVDMDk4XFx1QzBBMFxcdUMwQTFcXHVDMEEzXFx1QzBBNVxcdUMwQUNcXHVDMEFEXFx1QzBBRlxcdUMwQjBcXHVDMEIzXFx1QzBCNFxcdUMwQjVcXHVDMEI2XFx1QzBCQ1xcdUMwQkRcXHVDMEJGXFx1QzBDMFxcdUMwQzFcXHVDMEM1XFx1QzBDOFxcdUMwQzlcXHVDMENDXFx1QzBEMFxcdUMwRDhcXHVDMEQ5XFx1QzBEQlxcdUMwRENcXHVDMEREXFx1QzBFNFwiXSxcbiAgICAgIFtcImJjNDFcIiwgXCJcXHVEMzZBXCIsIDE3LCBcIlxcdUQzN0VcXHVEMzdGXFx1RDM4MVxcdUQzODJcXHVEMzgzXFx1RDM4NVxcdUQzODZcXHVEMzg3XCJdLFxuICAgICAgW1wiYmM2MVwiLCBcIlxcdUQzODhcXHVEMzg5XFx1RDM4QVxcdUQzOEJcXHVEMzhFXFx1RDM5MlwiLCA1LCBcIlxcdUQzOUFcXHVEMzlCXFx1RDM5RFxcdUQzOUVcXHVEMzlGXFx1RDNBMVwiLCA2LCBcIlxcdUQzQUFcXHVEM0FDXFx1RDNBRVwiXSxcbiAgICAgIFtcImJjODFcIiwgXCJcXHVEM0FGXCIsIDQsIFwiXFx1RDNCNVxcdUQzQjZcXHVEM0I3XFx1RDNCOVxcdUQzQkFcXHVEM0JCXFx1RDNCRFwiLCA2LCBcIlxcdUQzQzZcXHVEM0M3XFx1RDNDQVwiLCA1LCBcIlxcdUQzRDFcIiwgNSwgXCJcXHVDMEU1XFx1QzBFOFxcdUMwRUNcXHVDMEY0XFx1QzBGNVxcdUMwRjdcXHVDMEY5XFx1QzEwMFxcdUMxMDRcXHVDMTA4XFx1QzExMFxcdUMxMTVcXHVDMTFDXCIsIDQsIFwiXFx1QzEyM1xcdUMxMjRcXHVDMTI2XFx1QzEyN1xcdUMxMkNcXHVDMTJEXFx1QzEyRlxcdUMxMzBcXHVDMTMxXFx1QzEzNlxcdUMxMzhcXHVDMTM5XFx1QzEzQ1xcdUMxNDBcXHVDMTQ4XFx1QzE0OVxcdUMxNEJcXHVDMTRDXFx1QzE0RFxcdUMxNTRcXHVDMTU1XFx1QzE1OFxcdUMxNUNcXHVDMTY0XFx1QzE2NVxcdUMxNjdcXHVDMTY4XFx1QzE2OVxcdUMxNzBcXHVDMTc0XFx1QzE3OFxcdUMxODVcXHVDMThDXFx1QzE4RFxcdUMxOEVcXHVDMTkwXFx1QzE5NFxcdUMxOTZcXHVDMTlDXFx1QzE5RFxcdUMxOUZcXHVDMUExXFx1QzFBNVxcdUMxQThcXHVDMUE5XFx1QzFBQ1xcdUMxQjBcXHVDMUJEXFx1QzFDNFxcdUMxQzhcXHVDMUNDXFx1QzFENFxcdUMxRDdcXHVDMUQ4XFx1QzFFMFxcdUMxRTRcXHVDMUU4XFx1QzFGMFxcdUMxRjFcXHVDMUYzXFx1QzFGQ1xcdUMxRkRcXHVDMjAwXFx1QzIwNFxcdUMyMENcXHVDMjBEXFx1QzIwRlxcdUMyMTFcXHVDMjE4XFx1QzIxOVxcdUMyMUNcXHVDMjFGXFx1QzIyMFxcdUMyMjhcXHVDMjI5XFx1QzIyQlxcdUMyMkRcIl0sXG4gICAgICBbXCJiZDQxXCIsIFwiXFx1RDNEN1xcdUQzRDlcIiwgNywgXCJcXHVEM0UyXFx1RDNFNFwiLCA3LCBcIlxcdUQzRUVcXHVEM0VGXFx1RDNGMVxcdUQzRjJcXHVEM0YzXFx1RDNGNVxcdUQzRjZcXHVEM0Y3XCJdLFxuICAgICAgW1wiYmQ2MVwiLCBcIlxcdUQzRjhcXHVEM0Y5XFx1RDNGQVxcdUQzRkJcXHVEM0ZFXFx1RDQwMFxcdUQ0MDJcIiwgNSwgXCJcXHVENDA5XCIsIDEzXSxcbiAgICAgIFtcImJkODFcIiwgXCJcXHVENDE3XCIsIDUsIFwiXFx1RDQxRVwiLCAyNSwgXCJcXHVDMjJGXFx1QzIzMVxcdUMyMzJcXHVDMjM0XFx1QzI0OFxcdUMyNTBcXHVDMjUxXFx1QzI1NFxcdUMyNThcXHVDMjYwXFx1QzI2NVxcdUMyNkNcXHVDMjZEXFx1QzI3MFxcdUMyNzRcXHVDMjdDXFx1QzI3RFxcdUMyN0ZcXHVDMjgxXFx1QzI4OFxcdUMyODlcXHVDMjkwXFx1QzI5OFxcdUMyOUJcXHVDMjlEXFx1QzJBNFxcdUMyQTVcXHVDMkE4XFx1QzJBQ1xcdUMyQURcXHVDMkI0XFx1QzJCNVxcdUMyQjdcXHVDMkI5XFx1QzJEQ1xcdUMyRERcXHVDMkUwXFx1QzJFM1xcdUMyRTRcXHVDMkVCXFx1QzJFQ1xcdUMyRURcXHVDMkVGXFx1QzJGMVxcdUMyRjZcXHVDMkY4XFx1QzJGOVxcdUMyRkJcXHVDMkZDXFx1QzMwMFxcdUMzMDhcXHVDMzA5XFx1QzMwQ1xcdUMzMERcXHVDMzEzXFx1QzMxNFxcdUMzMTVcXHVDMzE4XFx1QzMxQ1xcdUMzMjRcXHVDMzI1XFx1QzMyOFxcdUMzMjlcXHVDMzQ1XFx1QzM2OFxcdUMzNjlcXHVDMzZDXFx1QzM3MFxcdUMzNzJcXHVDMzc4XFx1QzM3OVxcdUMzN0NcXHVDMzdEXFx1QzM4NFxcdUMzODhcXHVDMzhDXFx1QzNDMFxcdUMzRDhcXHVDM0Q5XFx1QzNEQ1xcdUMzREZcXHVDM0UwXFx1QzNFMlxcdUMzRThcXHVDM0U5XFx1QzNFRFxcdUMzRjRcXHVDM0Y1XFx1QzNGOFxcdUM0MDhcXHVDNDEwXFx1QzQyNFxcdUM0MkNcXHVDNDMwXCJdLFxuICAgICAgW1wiYmU0MVwiLCBcIlxcdUQ0MzhcIiwgNywgXCJcXHVENDQxXFx1RDQ0MlxcdUQ0NDNcXHVENDQ1XCIsIDE0XSxcbiAgICAgIFtcImJlNjFcIiwgXCJcXHVENDU0XCIsIDcsIFwiXFx1RDQ1RFxcdUQ0NUVcXHVENDVGXFx1RDQ2MVxcdUQ0NjJcXHVENDYzXFx1RDQ2NVwiLCA3LCBcIlxcdUQ0NkVcXHVENDcwXFx1RDQ3MVxcdUQ0NzJcIl0sXG4gICAgICBbXCJiZTgxXCIsIFwiXFx1RDQ3M1wiLCA0LCBcIlxcdUQ0N0FcXHVENDdCXFx1RDQ3RFxcdUQ0N0VcXHVENDgxXFx1RDQ4M1wiLCA0LCBcIlxcdUQ0OEFcXHVENDhDXFx1RDQ4RVwiLCA1LCBcIlxcdUQ0OTVcIiwgOCwgXCJcXHVDNDM0XFx1QzQzQ1xcdUM0M0RcXHVDNDQ4XFx1QzQ2NFxcdUM0NjVcXHVDNDY4XFx1QzQ2Q1xcdUM0NzRcXHVDNDc1XFx1QzQ3OVxcdUM0ODBcXHVDNDk0XFx1QzQ5Q1xcdUM0QjhcXHVDNEJDXFx1QzRFOVxcdUM0RjBcXHVDNEYxXFx1QzRGNFxcdUM0RjhcXHVDNEZBXFx1QzRGRlxcdUM1MDBcXHVDNTAxXFx1QzUwQ1xcdUM1MTBcXHVDNTE0XFx1QzUxQ1xcdUM1MjhcXHVDNTI5XFx1QzUyQ1xcdUM1MzBcXHVDNTM4XFx1QzUzOVxcdUM1M0JcXHVDNTNEXFx1QzU0NFxcdUM1NDVcXHVDNTQ4XFx1QzU0OVxcdUM1NEFcXHVDNTRDXFx1QzU0RFxcdUM1NEVcXHVDNTUzXFx1QzU1NFxcdUM1NTVcXHVDNTU3XFx1QzU1OFxcdUM1NTlcXHVDNTVEXFx1QzU1RVxcdUM1NjBcXHVDNTYxXFx1QzU2NFxcdUM1NjhcXHVDNTcwXFx1QzU3MVxcdUM1NzNcXHVDNTc0XFx1QzU3NVxcdUM1N0NcXHVDNTdEXFx1QzU4MFxcdUM1ODRcXHVDNTg3XFx1QzU4Q1xcdUM1OERcXHVDNThGXFx1QzU5MVxcdUM1OTVcXHVDNTk3XFx1QzU5OFxcdUM1OUNcXHVDNUEwXFx1QzVBOVxcdUM1QjRcXHVDNUI1XFx1QzVCOFxcdUM1QjlcXHVDNUJCXFx1QzVCQ1xcdUM1QkRcXHVDNUJFXFx1QzVDNFwiLCA2LCBcIlxcdUM1Q0NcXHVDNUNFXCJdLFxuICAgICAgW1wiYmY0MVwiLCBcIlxcdUQ0OUVcIiwgMTAsIFwiXFx1RDRBQVwiLCAxNF0sXG4gICAgICBbXCJiZjYxXCIsIFwiXFx1RDRCOVwiLCAxOCwgXCJcXHVENENEXFx1RDRDRVxcdUQ0Q0ZcXHVENEQxXFx1RDREMlxcdUQ0RDNcXHVENEQ1XCJdLFxuICAgICAgW1wiYmY4MVwiLCBcIlxcdUQ0RDZcIiwgNSwgXCJcXHVENEREXFx1RDRERVxcdUQ0RTBcIiwgNywgXCJcXHVENEU5XFx1RDRFQVxcdUQ0RUJcXHVENEVEXFx1RDRFRVxcdUQ0RUZcXHVENEYxXCIsIDYsIFwiXFx1RDRGOVxcdUQ0RkFcXHVENEZDXFx1QzVEMFxcdUM1RDFcXHVDNUQ0XFx1QzVEOFxcdUM1RTBcXHVDNUUxXFx1QzVFM1xcdUM1RTVcXHVDNUVDXFx1QzVFRFxcdUM1RUVcXHVDNUYwXFx1QzVGNFxcdUM1RjZcXHVDNUY3XFx1QzVGQ1wiLCA1LCBcIlxcdUM2MDVcXHVDNjA2XFx1QzYwN1xcdUM2MDhcXHVDNjBDXFx1QzYxMFxcdUM2MThcXHVDNjE5XFx1QzYxQlxcdUM2MUNcXHVDNjI0XFx1QzYyNVxcdUM2MjhcXHVDNjJDXFx1QzYyRFxcdUM2MkVcXHVDNjMwXFx1QzYzM1xcdUM2MzRcXHVDNjM1XFx1QzYzN1xcdUM2MzlcXHVDNjNCXFx1QzY0MFxcdUM2NDFcXHVDNjQ0XFx1QzY0OFxcdUM2NTBcXHVDNjUxXFx1QzY1M1xcdUM2NTRcXHVDNjU1XFx1QzY1Q1xcdUM2NURcXHVDNjYwXFx1QzY2Q1xcdUM2NkZcXHVDNjcxXFx1QzY3OFxcdUM2NzlcXHVDNjdDXFx1QzY4MFxcdUM2ODhcXHVDNjg5XFx1QzY4QlxcdUM2OERcXHVDNjk0XFx1QzY5NVxcdUM2OThcXHVDNjlDXFx1QzZBNFxcdUM2QTVcXHVDNkE3XFx1QzZBOVxcdUM2QjBcXHVDNkIxXFx1QzZCNFxcdUM2QjhcXHVDNkI5XFx1QzZCQVxcdUM2QzBcXHVDNkMxXFx1QzZDM1xcdUM2QzVcXHVDNkNDXFx1QzZDRFxcdUM2RDBcXHVDNkQ0XFx1QzZEQ1xcdUM2RERcXHVDNkUwXFx1QzZFMVxcdUM2RThcIl0sXG4gICAgICBbXCJjMDQxXCIsIFwiXFx1RDRGRVwiLCA1LCBcIlxcdUQ1MDVcXHVENTA2XFx1RDUwN1xcdUQ1MDlcXHVENTBBXFx1RDUwQlxcdUQ1MERcIiwgNiwgXCJcXHVENTE2XFx1RDUxOFwiLCA1XSxcbiAgICAgIFtcImMwNjFcIiwgXCJcXHVENTFFXCIsIDI1XSxcbiAgICAgIFtcImMwODFcIiwgXCJcXHVENTM4XFx1RDUzOVxcdUQ1M0FcXHVENTNCXFx1RDUzRVxcdUQ1M0ZcXHVENTQxXFx1RDU0MlxcdUQ1NDNcXHVENTQ1XCIsIDYsIFwiXFx1RDU0RVxcdUQ1NTBcXHVENTUyXCIsIDUsIFwiXFx1RDU1QVxcdUQ1NUJcXHVENTVEXFx1RDU1RVxcdUQ1NUZcXHVENTYxXFx1RDU2MlxcdUQ1NjNcXHVDNkU5XFx1QzZFQ1xcdUM2RjBcXHVDNkY4XFx1QzZGOVxcdUM2RkRcXHVDNzA0XFx1QzcwNVxcdUM3MDhcXHVDNzBDXFx1QzcxNFxcdUM3MTVcXHVDNzE3XFx1QzcxOVxcdUM3MjBcXHVDNzIxXFx1QzcyNFxcdUM3MjhcXHVDNzMwXFx1QzczMVxcdUM3MzNcXHVDNzM1XFx1QzczN1xcdUM3M0NcXHVDNzNEXFx1Qzc0MFxcdUM3NDRcXHVDNzRBXFx1Qzc0Q1xcdUM3NERcXHVDNzRGXFx1Qzc1MVwiLCA3LCBcIlxcdUM3NUNcXHVDNzYwXFx1Qzc2OFxcdUM3NkJcXHVDNzc0XFx1Qzc3NVxcdUM3NzhcXHVDNzdDXFx1Qzc3RFxcdUM3N0VcXHVDNzgzXFx1Qzc4NFxcdUM3ODVcXHVDNzg3XFx1Qzc4OFxcdUM3ODlcXHVDNzhBXFx1Qzc4RVxcdUM3OTBcXHVDNzkxXFx1Qzc5NFxcdUM3OTZcXHVDNzk3XFx1Qzc5OFxcdUM3OUFcXHVDN0EwXFx1QzdBMVxcdUM3QTNcXHVDN0E0XFx1QzdBNVxcdUM3QTZcXHVDN0FDXFx1QzdBRFxcdUM3QjBcXHVDN0I0XFx1QzdCQ1xcdUM3QkRcXHVDN0JGXFx1QzdDMFxcdUM3QzFcXHVDN0M4XFx1QzdDOVxcdUM3Q0NcXHVDN0NFXFx1QzdEMFxcdUM3RDhcXHVDN0REXFx1QzdFNFxcdUM3RThcXHVDN0VDXFx1QzgwMFxcdUM4MDFcXHVDODA0XFx1QzgwOFxcdUM4MEFcIl0sXG4gICAgICBbXCJjMTQxXCIsIFwiXFx1RDU2NFxcdUQ1NjZcXHVENTY3XFx1RDU2QVxcdUQ1NkNcXHVENTZFXCIsIDUsIFwiXFx1RDU3NlxcdUQ1NzdcXHVENTc5XFx1RDU3QVxcdUQ1N0JcXHVENTdEXCIsIDYsIFwiXFx1RDU4NlxcdUQ1OEFcXHVENThCXCJdLFxuICAgICAgW1wiYzE2MVwiLCBcIlxcdUQ1OENcXHVENThEXFx1RDU4RVxcdUQ1OEZcXHVENTkxXCIsIDE5LCBcIlxcdUQ1QTZcXHVENUE3XCJdLFxuICAgICAgW1wiYzE4MVwiLCBcIlxcdUQ1QThcIiwgMzEsIFwiXFx1QzgxMFxcdUM4MTFcXHVDODEzXFx1QzgxNVxcdUM4MTZcXHVDODFDXFx1QzgxRFxcdUM4MjBcXHVDODI0XFx1QzgyQ1xcdUM4MkRcXHVDODJGXFx1QzgzMVxcdUM4MzhcXHVDODNDXFx1Qzg0MFxcdUM4NDhcXHVDODQ5XFx1Qzg0Q1xcdUM4NERcXHVDODU0XFx1Qzg3MFxcdUM4NzFcXHVDODc0XFx1Qzg3OFxcdUM4N0FcXHVDODgwXFx1Qzg4MVxcdUM4ODNcXHVDODg1XFx1Qzg4NlxcdUM4ODdcXHVDODhCXFx1Qzg4Q1xcdUM4OERcXHVDODk0XFx1Qzg5RFxcdUM4OUZcXHVDOEExXFx1QzhBOFxcdUM4QkNcXHVDOEJEXFx1QzhDNFxcdUM4QzhcXHVDOENDXFx1QzhENFxcdUM4RDVcXHVDOEQ3XFx1QzhEOVxcdUM4RTBcXHVDOEUxXFx1QzhFNFxcdUM4RjVcXHVDOEZDXFx1QzhGRFxcdUM5MDBcXHVDOTA0XFx1QzkwNVxcdUM5MDZcXHVDOTBDXFx1QzkwRFxcdUM5MEZcXHVDOTExXFx1QzkxOFxcdUM5MkNcXHVDOTM0XFx1Qzk1MFxcdUM5NTFcXHVDOTU0XFx1Qzk1OFxcdUM5NjBcXHVDOTYxXFx1Qzk2M1xcdUM5NkNcXHVDOTcwXFx1Qzk3NFxcdUM5N0NcXHVDOTg4XFx1Qzk4OVxcdUM5OENcXHVDOTkwXFx1Qzk5OFxcdUM5OTlcXHVDOTlCXFx1Qzk5RFxcdUM5QzBcXHVDOUMxXFx1QzlDNFxcdUM5QzdcXHVDOUM4XFx1QzlDQVxcdUM5RDBcXHVDOUQxXFx1QzlEM1wiXSxcbiAgICAgIFtcImMyNDFcIiwgXCJcXHVENUNBXFx1RDVDQlxcdUQ1Q0RcXHVENUNFXFx1RDVDRlxcdUQ1RDFcXHVENUQzXCIsIDQsIFwiXFx1RDVEQVxcdUQ1RENcXHVENURFXCIsIDUsIFwiXFx1RDVFNlxcdUQ1RTdcXHVENUU5XFx1RDVFQVxcdUQ1RUJcXHVENUVEXFx1RDVFRVwiXSxcbiAgICAgIFtcImMyNjFcIiwgXCJcXHVENUVGXCIsIDQsIFwiXFx1RDVGNlxcdUQ1RjhcXHVENUZBXCIsIDUsIFwiXFx1RDYwMlxcdUQ2MDNcXHVENjA1XFx1RDYwNlxcdUQ2MDdcXHVENjA5XCIsIDYsIFwiXFx1RDYxMlwiXSxcbiAgICAgIFtcImMyODFcIiwgXCJcXHVENjE2XCIsIDUsIFwiXFx1RDYxRFxcdUQ2MUVcXHVENjFGXFx1RDYyMVxcdUQ2MjJcXHVENjIzXFx1RDYyNVwiLCA3LCBcIlxcdUQ2MkVcIiwgOSwgXCJcXHVENjNBXFx1RDYzQlxcdUM5RDVcXHVDOUQ2XFx1QzlEOVxcdUM5REFcXHVDOURDXFx1QzlERFxcdUM5RTBcXHVDOUUyXFx1QzlFNFxcdUM5RTdcXHVDOUVDXFx1QzlFRFxcdUM5RUZcXHVDOUYwXFx1QzlGMVxcdUM5RjhcXHVDOUY5XFx1QzlGQ1xcdUNBMDBcXHVDQTA4XFx1Q0EwOVxcdUNBMEJcXHVDQTBDXFx1Q0EwRFxcdUNBMTRcXHVDQTE4XFx1Q0EyOVxcdUNBNENcXHVDQTREXFx1Q0E1MFxcdUNBNTRcXHVDQTVDXFx1Q0E1RFxcdUNBNUZcXHVDQTYwXFx1Q0E2MVxcdUNBNjhcXHVDQTdEXFx1Q0E4NFxcdUNBOThcXHVDQUJDXFx1Q0FCRFxcdUNBQzBcXHVDQUM0XFx1Q0FDQ1xcdUNBQ0RcXHVDQUNGXFx1Q0FEMVxcdUNBRDNcXHVDQUQ4XFx1Q0FEOVxcdUNBRTBcXHVDQUVDXFx1Q0FGNFxcdUNCMDhcXHVDQjEwXFx1Q0IxNFxcdUNCMThcXHVDQjIwXFx1Q0IyMVxcdUNCNDFcXHVDQjQ4XFx1Q0I0OVxcdUNCNENcXHVDQjUwXFx1Q0I1OFxcdUNCNTlcXHVDQjVEXFx1Q0I2NFxcdUNCNzhcXHVDQjc5XFx1Q0I5Q1xcdUNCQjhcXHVDQkQ0XFx1Q0JFNFxcdUNCRTdcXHVDQkU5XFx1Q0MwQ1xcdUNDMERcXHVDQzEwXFx1Q0MxNFxcdUNDMUNcXHVDQzFEXFx1Q0MyMVxcdUNDMjJcXHVDQzI3XFx1Q0MyOFxcdUNDMjlcXHVDQzJDXFx1Q0MyRVxcdUNDMzBcXHVDQzM4XFx1Q0MzOVxcdUNDM0JcIl0sXG4gICAgICBbXCJjMzQxXCIsIFwiXFx1RDYzRFxcdUQ2M0VcXHVENjNGXFx1RDY0MVxcdUQ2NDJcXHVENjQzXFx1RDY0NFxcdUQ2NDZcXHVENjQ3XFx1RDY0QVxcdUQ2NENcXHVENjRFXFx1RDY0RlxcdUQ2NTBcXHVENjUyXFx1RDY1M1xcdUQ2NTZcXHVENjU3XFx1RDY1OVxcdUQ2NUFcXHVENjVCXFx1RDY1RFwiLCA0XSxcbiAgICAgIFtcImMzNjFcIiwgXCJcXHVENjYyXCIsIDQsIFwiXFx1RDY2OFxcdUQ2NkFcIiwgNSwgXCJcXHVENjcyXFx1RDY3M1xcdUQ2NzVcIiwgMTFdLFxuICAgICAgW1wiYzM4MVwiLCBcIlxcdUQ2ODFcXHVENjgyXFx1RDY4NFxcdUQ2ODZcIiwgNSwgXCJcXHVENjhFXFx1RDY4RlxcdUQ2OTFcXHVENjkyXFx1RDY5M1xcdUQ2OTVcIiwgNywgXCJcXHVENjlFXFx1RDZBMFxcdUQ2QTJcIiwgNSwgXCJcXHVENkE5XFx1RDZBQVxcdUNDM0NcXHVDQzNEXFx1Q0MzRVxcdUNDNDRcXHVDQzQ1XFx1Q0M0OFxcdUNDNENcXHVDQzU0XFx1Q0M1NVxcdUNDNTdcXHVDQzU4XFx1Q0M1OVxcdUNDNjBcXHVDQzY0XFx1Q0M2NlxcdUNDNjhcXHVDQzcwXFx1Q0M3NVxcdUNDOThcXHVDQzk5XFx1Q0M5Q1xcdUNDQTBcXHVDQ0E4XFx1Q0NBOVxcdUNDQUJcXHVDQ0FDXFx1Q0NBRFxcdUNDQjRcXHVDQ0I1XFx1Q0NCOFxcdUNDQkNcXHVDQ0M0XFx1Q0NDNVxcdUNDQzdcXHVDQ0M5XFx1Q0NEMFxcdUNDRDRcXHVDQ0U0XFx1Q0NFQ1xcdUNDRjBcXHVDRDAxXFx1Q0QwOFxcdUNEMDlcXHVDRDBDXFx1Q0QxMFxcdUNEMThcXHVDRDE5XFx1Q0QxQlxcdUNEMURcXHVDRDI0XFx1Q0QyOFxcdUNEMkNcXHVDRDM5XFx1Q0Q1Q1xcdUNENjBcXHVDRDY0XFx1Q0Q2Q1xcdUNENkRcXHVDRDZGXFx1Q0Q3MVxcdUNENzhcXHVDRDg4XFx1Q0Q5NFxcdUNEOTVcXHVDRDk4XFx1Q0Q5Q1xcdUNEQTRcXHVDREE1XFx1Q0RBN1xcdUNEQTlcXHVDREIwXFx1Q0RDNFxcdUNEQ0NcXHVDREQwXFx1Q0RFOFxcdUNERUNcXHVDREYwXFx1Q0RGOFxcdUNERjlcXHVDREZCXFx1Q0RGRFxcdUNFMDRcXHVDRTA4XFx1Q0UwQ1xcdUNFMTRcXHVDRTE5XFx1Q0UyMFxcdUNFMjFcXHVDRTI0XFx1Q0UyOFxcdUNFMzBcXHVDRTMxXFx1Q0UzM1xcdUNFMzVcIl0sXG4gICAgICBbXCJjNDQxXCIsIFwiXFx1RDZBQlxcdUQ2QURcXHVENkFFXFx1RDZBRlxcdUQ2QjFcIiwgNywgXCJcXHVENkJBXFx1RDZCQ1wiLCA3LCBcIlxcdUQ2QzZcXHVENkM3XFx1RDZDOVxcdUQ2Q0FcXHVENkNCXCJdLFxuICAgICAgW1wiYzQ2MVwiLCBcIlxcdUQ2Q0RcXHVENkNFXFx1RDZDRlxcdUQ2RDBcXHVENkQyXFx1RDZEM1xcdUQ2RDVcXHVENkQ2XFx1RDZEOFxcdUQ2REFcIiwgNSwgXCJcXHVENkUxXFx1RDZFMlxcdUQ2RTNcXHVENkU1XFx1RDZFNlxcdUQ2RTdcXHVENkU5XCIsIDRdLFxuICAgICAgW1wiYzQ4MVwiLCBcIlxcdUQ2RUVcXHVENkVGXFx1RDZGMVxcdUQ2RjJcXHVENkYzXFx1RDZGNFxcdUQ2RjZcIiwgNSwgXCJcXHVENkZFXFx1RDZGRlxcdUQ3MDFcXHVENzAyXFx1RDcwM1xcdUQ3MDVcIiwgMTEsIFwiXFx1RDcxMlxcdUQ3MTNcXHVENzE0XFx1Q0U1OFxcdUNFNTlcXHVDRTVDXFx1Q0U1RlxcdUNFNjBcXHVDRTYxXFx1Q0U2OFxcdUNFNjlcXHVDRTZCXFx1Q0U2RFxcdUNFNzRcXHVDRTc1XFx1Q0U3OFxcdUNFN0NcXHVDRTg0XFx1Q0U4NVxcdUNFODdcXHVDRTg5XFx1Q0U5MFxcdUNFOTFcXHVDRTk0XFx1Q0U5OFxcdUNFQTBcXHVDRUExXFx1Q0VBM1xcdUNFQTRcXHVDRUE1XFx1Q0VBQ1xcdUNFQURcXHVDRUMxXFx1Q0VFNFxcdUNFRTVcXHVDRUU4XFx1Q0VFQlxcdUNFRUNcXHVDRUY0XFx1Q0VGNVxcdUNFRjdcXHVDRUY4XFx1Q0VGOVxcdUNGMDBcXHVDRjAxXFx1Q0YwNFxcdUNGMDhcXHVDRjEwXFx1Q0YxMVxcdUNGMTNcXHVDRjE1XFx1Q0YxQ1xcdUNGMjBcXHVDRjI0XFx1Q0YyQ1xcdUNGMkRcXHVDRjJGXFx1Q0YzMFxcdUNGMzFcXHVDRjM4XFx1Q0Y1NFxcdUNGNTVcXHVDRjU4XFx1Q0Y1Q1xcdUNGNjRcXHVDRjY1XFx1Q0Y2N1xcdUNGNjlcXHVDRjcwXFx1Q0Y3MVxcdUNGNzRcXHVDRjc4XFx1Q0Y4MFxcdUNGODVcXHVDRjhDXFx1Q0ZBMVxcdUNGQThcXHVDRkIwXFx1Q0ZDNFxcdUNGRTBcXHVDRkUxXFx1Q0ZFNFxcdUNGRThcXHVDRkYwXFx1Q0ZGMVxcdUNGRjNcXHVDRkY1XFx1Q0ZGQ1xcdUQwMDBcXHVEMDA0XFx1RDAxMVxcdUQwMThcXHVEMDJEXFx1RDAzNFxcdUQwMzVcXHVEMDM4XFx1RDAzQ1wiXSxcbiAgICAgIFtcImM1NDFcIiwgXCJcXHVENzE1XFx1RDcxNlxcdUQ3MTdcXHVENzFBXFx1RDcxQlxcdUQ3MURcXHVENzFFXFx1RDcxRlxcdUQ3MjFcIiwgNiwgXCJcXHVENzJBXFx1RDcyQ1xcdUQ3MkVcIiwgNSwgXCJcXHVENzM2XFx1RDczN1xcdUQ3MzlcIl0sXG4gICAgICBbXCJjNTYxXCIsIFwiXFx1RDczQVxcdUQ3M0JcXHVENzNEXCIsIDYsIFwiXFx1RDc0NVxcdUQ3NDZcXHVENzQ4XFx1RDc0QVwiLCA1LCBcIlxcdUQ3NTJcXHVENzUzXFx1RDc1NVxcdUQ3NUFcIiwgNF0sXG4gICAgICBbXCJjNTgxXCIsIFwiXFx1RDc1RlxcdUQ3NjJcXHVENzY0XFx1RDc2NlxcdUQ3NjdcXHVENzY4XFx1RDc2QVxcdUQ3NkJcXHVENzZEXFx1RDc2RVxcdUQ3NkZcXHVENzcxXFx1RDc3MlxcdUQ3NzNcXHVENzc1XCIsIDYsIFwiXFx1RDc3RVxcdUQ3N0ZcXHVENzgwXFx1RDc4MlwiLCA1LCBcIlxcdUQ3OEFcXHVENzhCXFx1RDA0NFxcdUQwNDVcXHVEMDQ3XFx1RDA0OVxcdUQwNTBcXHVEMDU0XFx1RDA1OFxcdUQwNjBcXHVEMDZDXFx1RDA2RFxcdUQwNzBcXHVEMDc0XFx1RDA3Q1xcdUQwN0RcXHVEMDgxXFx1RDBBNFxcdUQwQTVcXHVEMEE4XFx1RDBBQ1xcdUQwQjRcXHVEMEI1XFx1RDBCN1xcdUQwQjlcXHVEMEMwXFx1RDBDMVxcdUQwQzRcXHVEMEM4XFx1RDBDOVxcdUQwRDBcXHVEMEQxXFx1RDBEM1xcdUQwRDRcXHVEMEQ1XFx1RDBEQ1xcdUQwRERcXHVEMEUwXFx1RDBFNFxcdUQwRUNcXHVEMEVEXFx1RDBFRlxcdUQwRjBcXHVEMEYxXFx1RDBGOFxcdUQxMERcXHVEMTMwXFx1RDEzMVxcdUQxMzRcXHVEMTM4XFx1RDEzQVxcdUQxNDBcXHVEMTQxXFx1RDE0M1xcdUQxNDRcXHVEMTQ1XFx1RDE0Q1xcdUQxNERcXHVEMTUwXFx1RDE1NFxcdUQxNUNcXHVEMTVEXFx1RDE1RlxcdUQxNjFcXHVEMTY4XFx1RDE2Q1xcdUQxN0NcXHVEMTg0XFx1RDE4OFxcdUQxQTBcXHVEMUExXFx1RDFBNFxcdUQxQThcXHVEMUIwXFx1RDFCMVxcdUQxQjNcXHVEMUI1XFx1RDFCQVxcdUQxQkNcXHVEMUMwXFx1RDFEOFxcdUQxRjRcXHVEMUY4XFx1RDIwN1xcdUQyMDlcXHVEMjEwXFx1RDIyQ1xcdUQyMkRcXHVEMjMwXFx1RDIzNFxcdUQyM0NcXHVEMjNEXFx1RDIzRlxcdUQyNDFcXHVEMjQ4XFx1RDI1Q1wiXSxcbiAgICAgIFtcImM2NDFcIiwgXCJcXHVENzhEXFx1RDc4RVxcdUQ3OEZcXHVENzkxXCIsIDYsIFwiXFx1RDc5QVxcdUQ3OUNcXHVENzlFXCIsIDVdLFxuICAgICAgW1wiYzZhMVwiLCBcIlxcdUQyNjRcXHVEMjgwXFx1RDI4MVxcdUQyODRcXHVEMjg4XFx1RDI5MFxcdUQyOTFcXHVEMjk1XFx1RDI5Q1xcdUQyQTBcXHVEMkE0XFx1RDJBQ1xcdUQyQjFcXHVEMkI4XFx1RDJCOVxcdUQyQkNcXHVEMkJGXFx1RDJDMFxcdUQyQzJcXHVEMkM4XFx1RDJDOVxcdUQyQ0JcXHVEMkQ0XFx1RDJEOFxcdUQyRENcXHVEMkU0XFx1RDJFNVxcdUQyRjBcXHVEMkYxXFx1RDJGNFxcdUQyRjhcXHVEMzAwXFx1RDMwMVxcdUQzMDNcXHVEMzA1XFx1RDMwQ1xcdUQzMERcXHVEMzBFXFx1RDMxMFxcdUQzMTRcXHVEMzE2XFx1RDMxQ1xcdUQzMURcXHVEMzFGXFx1RDMyMFxcdUQzMjFcXHVEMzI1XFx1RDMyOFxcdUQzMjlcXHVEMzJDXFx1RDMzMFxcdUQzMzhcXHVEMzM5XFx1RDMzQlxcdUQzM0NcXHVEMzNEXFx1RDM0NFxcdUQzNDVcXHVEMzdDXFx1RDM3RFxcdUQzODBcXHVEMzg0XFx1RDM4Q1xcdUQzOERcXHVEMzhGXFx1RDM5MFxcdUQzOTFcXHVEMzk4XFx1RDM5OVxcdUQzOUNcXHVEM0EwXFx1RDNBOFxcdUQzQTlcXHVEM0FCXFx1RDNBRFxcdUQzQjRcXHVEM0I4XFx1RDNCQ1xcdUQzQzRcXHVEM0M1XFx1RDNDOFxcdUQzQzlcXHVEM0QwXFx1RDNEOFxcdUQzRTFcXHVEM0UzXFx1RDNFQ1xcdUQzRURcXHVEM0YwXFx1RDNGNFxcdUQzRkNcXHVEM0ZEXFx1RDNGRlxcdUQ0MDFcIl0sXG4gICAgICBbXCJjN2ExXCIsIFwiXFx1RDQwOFxcdUQ0MURcXHVENDQwXFx1RDQ0NFxcdUQ0NUNcXHVENDYwXFx1RDQ2NFxcdUQ0NkRcXHVENDZGXFx1RDQ3OFxcdUQ0NzlcXHVENDdDXFx1RDQ3RlxcdUQ0ODBcXHVENDgyXFx1RDQ4OFxcdUQ0ODlcXHVENDhCXFx1RDQ4RFxcdUQ0OTRcXHVENEE5XFx1RDRDQ1xcdUQ0RDBcXHVENEQ0XFx1RDREQ1xcdUQ0REZcXHVENEU4XFx1RDRFQ1xcdUQ0RjBcXHVENEY4XFx1RDRGQlxcdUQ0RkRcXHVENTA0XFx1RDUwOFxcdUQ1MENcXHVENTE0XFx1RDUxNVxcdUQ1MTdcXHVENTNDXFx1RDUzRFxcdUQ1NDBcXHVENTQ0XFx1RDU0Q1xcdUQ1NERcXHVENTRGXFx1RDU1MVxcdUQ1NThcXHVENTU5XFx1RDU1Q1xcdUQ1NjBcXHVENTY1XFx1RDU2OFxcdUQ1NjlcXHVENTZCXFx1RDU2RFxcdUQ1NzRcXHVENTc1XFx1RDU3OFxcdUQ1N0NcXHVENTg0XFx1RDU4NVxcdUQ1ODdcXHVENTg4XFx1RDU4OVxcdUQ1OTBcXHVENUE1XFx1RDVDOFxcdUQ1QzlcXHVENUNDXFx1RDVEMFxcdUQ1RDJcXHVENUQ4XFx1RDVEOVxcdUQ1REJcXHVENUREXFx1RDVFNFxcdUQ1RTVcXHVENUU4XFx1RDVFQ1xcdUQ1RjRcXHVENUY1XFx1RDVGN1xcdUQ1RjlcXHVENjAwXFx1RDYwMVxcdUQ2MDRcXHVENjA4XFx1RDYxMFxcdUQ2MTFcXHVENjEzXFx1RDYxNFxcdUQ2MTVcXHVENjFDXFx1RDYyMFwiXSxcbiAgICAgIFtcImM4YTFcIiwgXCJcXHVENjI0XFx1RDYyRFxcdUQ2MzhcXHVENjM5XFx1RDYzQ1xcdUQ2NDBcXHVENjQ1XFx1RDY0OFxcdUQ2NDlcXHVENjRCXFx1RDY0RFxcdUQ2NTFcXHVENjU0XFx1RDY1NVxcdUQ2NThcXHVENjVDXFx1RDY2N1xcdUQ2NjlcXHVENjcwXFx1RDY3MVxcdUQ2NzRcXHVENjgzXFx1RDY4NVxcdUQ2OENcXHVENjhEXFx1RDY5MFxcdUQ2OTRcXHVENjlEXFx1RDY5RlxcdUQ2QTFcXHVENkE4XFx1RDZBQ1xcdUQ2QjBcXHVENkI5XFx1RDZCQlxcdUQ2QzRcXHVENkM1XFx1RDZDOFxcdUQ2Q0NcXHVENkQxXFx1RDZENFxcdUQ2RDdcXHVENkQ5XFx1RDZFMFxcdUQ2RTRcXHVENkU4XFx1RDZGMFxcdUQ2RjVcXHVENkZDXFx1RDZGRFxcdUQ3MDBcXHVENzA0XFx1RDcxMVxcdUQ3MThcXHVENzE5XFx1RDcxQ1xcdUQ3MjBcXHVENzI4XFx1RDcyOVxcdUQ3MkJcXHVENzJEXFx1RDczNFxcdUQ3MzVcXHVENzM4XFx1RDczQ1xcdUQ3NDRcXHVENzQ3XFx1RDc0OVxcdUQ3NTBcXHVENzUxXFx1RDc1NFxcdUQ3NTZcXHVENzU3XFx1RDc1OFxcdUQ3NTlcXHVENzYwXFx1RDc2MVxcdUQ3NjNcXHVENzY1XFx1RDc2OVxcdUQ3NkNcXHVENzcwXFx1RDc3NFxcdUQ3N0NcXHVENzdEXFx1RDc4MVxcdUQ3ODhcXHVENzg5XFx1RDc4Q1xcdUQ3OTBcXHVENzk4XFx1RDc5OVxcdUQ3OUJcXHVENzlEXCJdLFxuICAgICAgW1wiY2FhMVwiLCBcIlxcdTRGM0RcXHU0RjczXFx1NTA0N1xcdTUwRjlcXHU1MkEwXFx1NTNFRlxcdTU0NzVcXHU1NEU1XFx1NTYwOVxcdTVBQzFcXHU1QkI2XFx1NjY4N1xcdTY3QjZcXHU2N0I3XFx1NjdFRlxcdTZCNENcXHU3M0MyXFx1NzVDMlxcdTdBM0NcXHU4MkRCXFx1ODMwNFxcdTg4NTdcXHU4ODg4XFx1OEEzNlxcdThDQzhcXHU4RENGXFx1OEVGQlxcdThGRTZcXHU5OUQ1XFx1NTIzQlxcdTUzNzRcXHU1NDA0XFx1NjA2QVxcdTYxNjRcXHU2QkJDXFx1NzNDRlxcdTgxMUFcXHU4OUJBXFx1ODlEMlxcdTk1QTNcXHU0RjgzXFx1NTIwQVxcdTU4QkVcXHU1OTc4XFx1NTlFNlxcdTVFNzJcXHU1RTc5XFx1NjFDN1xcdTYzQzBcXHU2NzQ2XFx1NjdFQ1xcdTY4N0ZcXHU2Rjk3XFx1NzY0RVxcdTc3MEJcXHU3OEY1XFx1N0EwOFxcdTdBRkZcXHU3QzIxXFx1ODA5RFxcdTgyNkVcXHU4MjcxXFx1OEFFQlxcdTk1OTNcXHU0RTZCXFx1NTU5RFxcdTY2RjdcXHU2RTM0XFx1NzhBM1xcdTdBRURcXHU4NDVCXFx1ODkxMFxcdTg3NEVcXHU5N0E4XFx1NTJEOFxcdTU3NEVcXHU1ODJBXFx1NUQ0Q1xcdTYxMUZcXHU2MUJFXFx1NjIyMVxcdTY1NjJcXHU2N0QxXFx1NkE0NFxcdTZFMUJcXHU3NTE4XFx1NzVCM1xcdTc2RTNcXHU3N0IwXFx1N0QzQVxcdTkwQUZcXHU5NDUxXFx1OTQ1MlxcdTlGOTVcIl0sXG4gICAgICBbXCJjYmExXCIsIFwiXFx1NTMyM1xcdTVDQUNcXHU3NTMyXFx1ODBEQlxcdTkyNDBcXHU5NTk4XFx1NTI1QlxcdTU4MDhcXHU1OURDXFx1NUNBMVxcdTVEMTdcXHU1RUI3XFx1NUYzQVxcdTVGNEFcXHU2MTc3XFx1NkM1RlxcdTc1N0FcXHU3NTg2XFx1N0NFMFxcdTdENzNcXHU3REIxXFx1N0Y4Q1xcdTgxNTRcXHU4MjIxXFx1ODU5MVxcdTg5NDFcXHU4QjFCXFx1OTJGQ1xcdTk2NERcXHU5QzQ3XFx1NEVDQlxcdTRFRjdcXHU1MDBCXFx1NTFGMVxcdTU4NEZcXHU2MTM3XFx1NjEzRVxcdTYxNjhcXHU2NTM5XFx1NjlFQVxcdTZGMTFcXHU3NUE1XFx1NzY4NlxcdTc2RDZcXHU3Qjg3XFx1ODJBNVxcdTg0Q0JcXHVGOTAwXFx1OTNBN1xcdTk1OEJcXHU1NTgwXFx1NUJBMlxcdTU3NTFcXHVGOTAxXFx1N0NCM1xcdTdGQjlcXHU5MUI1XFx1NTAyOFxcdTUzQkJcXHU1QzQ1XFx1NURFOFxcdTYyRDJcXHU2MzZFXFx1NjREQVxcdTY0RTdcXHU2RTIwXFx1NzBBQ1xcdTc5NUJcXHU4REREXFx1OEUxRVxcdUY5MDJcXHU5MDdEXFx1OTI0NVxcdTkyRjhcXHU0RTdFXFx1NEVGNlxcdTUwNjVcXHU1REZFXFx1NUVGQVxcdTYxMDZcXHU2OTU3XFx1ODE3MVxcdTg2NTRcXHU4RTQ3XFx1OTM3NVxcdTlBMkJcXHU0RTVFXFx1NTA5MVxcdTY3NzBcXHU2ODQwXFx1NTEwOVxcdTUyOERcXHU1MjkyXFx1NkFBMlwiXSxcbiAgICAgIFtcImNjYTFcIiwgXCJcXHU3N0JDXFx1OTIxMFxcdTlFRDRcXHU1MkFCXFx1NjAyRlxcdThGRjJcXHU1MDQ4XFx1NjFBOVxcdTYzRURcXHU2NENBXFx1NjgzQ1xcdTZBODRcXHU2RkMwXFx1ODE4OFxcdTg5QTFcXHU5Njk0XFx1NTgwNVxcdTcyN0RcXHU3MkFDXFx1NzUwNFxcdTdENzlcXHU3RTZEXFx1ODBBOVxcdTg5OEJcXHU4Qjc0XFx1OTA2M1xcdTlENTFcXHU2Mjg5XFx1NkM3QVxcdTZGNTRcXHU3RDUwXFx1N0YzQVxcdThBMjNcXHU1MTdDXFx1NjE0QVxcdTdCOURcXHU4QjE5XFx1OTI1N1xcdTkzOENcXHU0RUFDXFx1NEZEM1xcdTUwMUVcXHU1MEJFXFx1NTEwNlxcdTUyQzFcXHU1MkNEXFx1NTM3RlxcdTU3NzBcXHU1ODgzXFx1NUU5QVxcdTVGOTFcXHU2MTc2XFx1NjFBQ1xcdTY0Q0VcXHU2NTZDXFx1NjY2RlxcdTY2QkJcXHU2NkY0XFx1Njg5N1xcdTZEODdcXHU3MDg1XFx1NzBGMVxcdTc0OUZcXHU3NEE1XFx1NzRDQVxcdTc1RDlcXHU3ODZDXFx1NzhFQ1xcdTdBREZcXHU3QUY2XFx1N0Q0NVxcdTdEOTNcXHU4MDE1XFx1ODAzRlxcdTgxMUJcXHU4Mzk2XFx1OEI2NlxcdThGMTVcXHU5MDE1XFx1OTNFMVxcdTk4MDNcXHU5ODM4XFx1OUE1QVxcdTlCRThcXHU0RkMyXFx1NTU1M1xcdTU4M0FcXHU1OTUxXFx1NUI2M1xcdTVDNDZcXHU2MEI4XFx1NjIxMlxcdTY4NDJcXHU2OEIwXCJdLFxuICAgICAgW1wiY2RhMVwiLCBcIlxcdTY4RThcXHU2RUFBXFx1NzU0Q1xcdTc2NzhcXHU3OENFXFx1N0EzRFxcdTdDRkJcXHU3RTZCXFx1N0U3Q1xcdThBMDhcXHU4QUExXFx1OEMzRlxcdTk2OEVcXHU5REM0XFx1NTNFNFxcdTUzRTlcXHU1NDRBXFx1NTQ3MVxcdTU2RkFcXHU1OUQxXFx1NUI2NFxcdTVDM0JcXHU1RUFCXFx1NjJGN1xcdTY1MzdcXHU2NTQ1XFx1NjU3MlxcdTY2QTBcXHU2N0FGXFx1NjlDMVxcdTZDQkRcXHU3NUZDXFx1NzY5MFxcdTc3N0VcXHU3QTNGXFx1N0Y5NFxcdTgwMDNcXHU4MEExXFx1ODE4RlxcdTgyRTZcXHU4MkZEXFx1ODNGMFxcdTg1QzFcXHU4ODMxXFx1ODhCNFxcdThBQTVcXHVGOTAzXFx1OEY5Q1xcdTkzMkVcXHU5NkM3XFx1OTg2N1xcdTlBRDhcXHU5RjEzXFx1NTRFRFxcdTY1OUJcXHU2NkYyXFx1Njg4RlxcdTdBNDBcXHU4QzM3XFx1OUQ2MFxcdTU2RjBcXHU1NzY0XFx1NUQxMVxcdTY2MDZcXHU2OEIxXFx1NjhDRFxcdTZFRkVcXHU3NDI4XFx1ODg5RVxcdTlCRTRcXHU2QzY4XFx1RjkwNFxcdTlBQThcXHU0RjlCXFx1NTE2Q1xcdTUxNzFcXHU1MjlGXFx1NUI1NFxcdTVERTVcXHU2MDUwXFx1NjA2RFxcdTYyRjFcXHU2M0E3XFx1NjUzQlxcdTczRDlcXHU3QTdBXFx1ODZBM1xcdThDQTJcXHU5NzhGXFx1NEUzMlxcdTVCRTFcXHU2MjA4XFx1Njc5Q1xcdTc0RENcIl0sXG4gICAgICBbXCJjZWExXCIsIFwiXFx1NzlEMVxcdTgzRDNcXHU4QTg3XFx1OEFCMlxcdThERThcXHU5MDRFXFx1OTM0QlxcdTk4NDZcXHU1RUQzXFx1NjlFOFxcdTg1RkZcXHU5MEVEXFx1RjkwNVxcdTUxQTBcXHU1Qjk4XFx1NUJFQ1xcdTYxNjNcXHU2OEZBXFx1NkIzRVxcdTcwNENcXHU3NDJGXFx1NzREOFxcdTdCQTFcXHU3RjUwXFx1ODNDNVxcdTg5QzBcXHU4Q0FCXFx1OTVEQ1xcdTk5MjhcXHU1MjJFXFx1NjA1RFxcdTYyRUNcXHU5MDAyXFx1NEY4QVxcdTUxNDlcXHU1MzIxXFx1NThEOVxcdTVFRTNcXHU2NkUwXFx1NkQzOFxcdTcwOUFcXHU3MkMyXFx1NzNENlxcdTdCNTBcXHU4MEYxXFx1OTQ1QlxcdTUzNjZcXHU2MzlCXFx1N0Y2QlxcdTRFNTZcXHU1MDgwXFx1NTg0QVxcdTU4REVcXHU2MDJBXFx1NjEyN1xcdTYyRDBcXHU2OUQwXFx1OUI0MVxcdTVCOEZcXHU3RDE4XFx1ODBCMVxcdThGNUZcXHU0RUE0XFx1NTBEMVxcdTU0QUNcXHU1NUFDXFx1NUIwQ1xcdTVEQTBcXHU1REU3XFx1NjUyQVxcdTY1NEVcXHU2ODIxXFx1NkE0QlxcdTcyRTFcXHU3NjhFXFx1NzdFRlxcdTdENUVcXHU3RkY5XFx1ODFBMFxcdTg1NEVcXHU4NkRGXFx1OEYwM1xcdThGNEVcXHU5MENBXFx1OTkwM1xcdTlBNTVcXHU5QkFCXFx1NEUxOFxcdTRFNDVcXHU0RTVEXFx1NEVDN1xcdTRGRjFcXHU1MTc3XFx1NTJGRVwiXSxcbiAgICAgIFtcImNmYTFcIiwgXCJcXHU1MzQwXFx1NTNFM1xcdTUzRTVcXHU1NDhFXFx1NTYxNFxcdTU3NzVcXHU1N0EyXFx1NUJDN1xcdTVEODdcXHU1RUQwXFx1NjFGQ1xcdTYyRDhcXHU2NTUxXFx1NjdCOFxcdTY3RTlcXHU2OUNCXFx1NkI1MFxcdTZCQzZcXHU2QkVDXFx1NkM0MlxcdTZFOURcXHU3MDc4XFx1NzJEN1xcdTczOTZcXHU3NDAzXFx1NzdCRlxcdTc3RTlcXHU3QTc2XFx1N0Q3RlxcdTgwMDlcXHU4MUZDXFx1ODIwNVxcdTgyMEFcXHU4MkRGXFx1ODg2MlxcdThCMzNcXHU4Q0ZDXFx1OEVDMFxcdTkwMTFcXHU5MEIxXFx1OTI2NFxcdTkyQjZcXHU5OUQyXFx1OUE0NVxcdTlDRTlcXHU5REQ3XFx1OUY5Q1xcdTU3MEJcXHU1QzQwXFx1ODNDQVxcdTk3QTBcXHU5N0FCXFx1OUVCNFxcdTU0MUJcXHU3QTk4XFx1N0ZBNFxcdTg4RDlcXHU4RUNEXFx1OTBFMVxcdTU4MDBcXHU1QzQ4XFx1NjM5OFxcdTdBOUZcXHU1QkFFXFx1NUYxM1xcdTdBNzlcXHU3QUFFXFx1ODI4RVxcdThFQUNcXHU1MDI2XFx1NTIzOFxcdTUyRjhcXHU1Mzc3XFx1NTcwOFxcdTYyRjNcXHU2MzcyXFx1NkIwQVxcdTZEQzNcXHU3NzM3XFx1NTNBNVxcdTczNTdcXHU4NTY4XFx1OEU3NlxcdTk1RDVcXHU2NzNBXFx1NkFDM1xcdTZGNzBcXHU4QTZEXFx1OEVDQ1xcdTk5NEJcXHVGOTA2XFx1NjY3N1xcdTZCNzhcXHU4Q0I0XCJdLFxuICAgICAgW1wiZDBhMVwiLCBcIlxcdTlCM0NcXHVGOTA3XFx1NTNFQlxcdTU3MkRcXHU1OTRFXFx1NjNDNlxcdTY5RkJcXHU3M0VBXFx1Nzg0NVxcdTdBQkFcXHU3QUM1XFx1N0NGRVxcdTg0NzVcXHU4OThGXFx1OEQ3M1xcdTkwMzVcXHU5NUE4XFx1NTJGQlxcdTU3NDdcXHU3NTQ3XFx1N0I2MFxcdTgzQ0NcXHU5MjFFXFx1RjkwOFxcdTZBNThcXHU1MTRCXFx1NTI0QlxcdTUyODdcXHU2MjFGXFx1NjhEOFxcdTY5NzVcXHU5Njk5XFx1NTBDNVxcdTUyQTRcXHU1MkU0XFx1NjFDM1xcdTY1QTRcXHU2ODM5XFx1NjlGRlxcdTc0N0VcXHU3QjRCXFx1ODJCOVxcdTgzRUJcXHU4OUIyXFx1OEIzOVxcdThGRDFcXHU5OTQ5XFx1RjkwOVxcdTRFQ0FcXHU1OTk3XFx1NjREMlxcdTY2MTFcXHU2QThFXFx1NzQzNFxcdTc5ODFcXHU3OUJEXFx1ODJBOVxcdTg4N0VcXHU4ODdGXFx1ODk1RlxcdUY5MEFcXHU5MzI2XFx1NEYwQlxcdTUzQ0FcXHU2MDI1XFx1NjI3MVxcdTZDNzJcXHU3RDFBXFx1N0Q2NlxcdTRFOThcXHU1MTYyXFx1NzdEQ1xcdTgwQUZcXHU0RjAxXFx1NEYwRVxcdTUxNzZcXHU1MTgwXFx1NTVEQ1xcdTU2NjhcXHU1NzNCXFx1NTdGQVxcdTU3RkNcXHU1OTE0XFx1NTk0N1xcdTU5OTNcXHU1QkM0XFx1NUM5MFxcdTVEMEVcXHU1REYxXFx1NUU3RVxcdTVGQ0NcXHU2MjgwXFx1NjVEN1xcdTY1RTNcIl0sXG4gICAgICBbXCJkMWExXCIsIFwiXFx1NjcxRVxcdTY3MUZcXHU2NzVFXFx1NjhDQlxcdTY4QzRcXHU2QTVGXFx1NkIzQVxcdTZDMjNcXHU2QzdEXFx1NkM4MlxcdTZEQzdcXHU3Mzk4XFx1NzQyNlxcdTc0MkFcXHU3NDgyXFx1NzRBM1xcdTc1NzhcXHU3NTdGXFx1Nzg4MVxcdTc4RUZcXHU3OTQxXFx1Nzk0N1xcdTc5NDhcXHU3OTdBXFx1N0I5NVxcdTdEMDBcXHU3REJBXFx1N0Y4OFxcdTgwMDZcXHU4MDJEXFx1ODA4Q1xcdThBMThcXHU4QjRGXFx1OEM0OFxcdThENzdcXHU5MzIxXFx1OTMyNFxcdTk4RTJcXHU5OTUxXFx1OUEwRVxcdTlBMEZcXHU5QTY1XFx1OUU5MlxcdTdEQ0FcXHU0Rjc2XFx1NTQwOVxcdTYyRUVcXHU2ODU0XFx1OTFEMVxcdTU1QUJcXHU1MTNBXFx1RjkwQlxcdUY5MENcXHU1QTFDXFx1NjFFNlxcdUY5MERcXHU2MkNGXFx1NjJGRlxcdUY5MEVcIiwgNSwgXCJcXHU5MEEzXFx1RjkxNFwiLCA0LCBcIlxcdThBRkVcXHVGOTE5XFx1RjkxQVxcdUY5MUJcXHVGOTFDXFx1NjY5NlxcdUY5MURcXHU3MTU2XFx1RjkxRVxcdUY5MUZcXHU5NkUzXFx1RjkyMFxcdTYzNEZcXHU2MzdBXFx1NTM1N1xcdUY5MjFcXHU2NzhGXFx1Njk2MFxcdTZFNzNcXHVGOTIyXFx1NzUzN1xcdUY5MjNcXHVGOTI0XFx1RjkyNVwiXSxcbiAgICAgIFtcImQyYTFcIiwgXCJcXHU3RDBEXFx1RjkyNlxcdUY5MjdcXHU4ODcyXFx1NTZDQVxcdTVBMThcXHVGOTI4XCIsIDQsIFwiXFx1NEU0M1xcdUY5MkRcXHU1MTY3XFx1NTk0OFxcdTY3RjBcXHU4MDEwXFx1RjkyRVxcdTU5NzNcXHU1RTc0XFx1NjQ5QVxcdTc5Q0FcXHU1RkY1XFx1NjA2Q1xcdTYyQzhcXHU2MzdCXFx1NUJFN1xcdTVCRDdcXHU1MkFBXFx1RjkyRlxcdTU5NzRcXHU1RjI5XFx1NjAxMlxcdUY5MzBcXHVGOTMxXFx1RjkzMlxcdTc0NTlcXHVGOTMzXCIsIDUsIFwiXFx1OTlEMVxcdUY5MzlcIiwgMTAsIFwiXFx1NkZDM1xcdUY5NDRcXHVGOTQ1XFx1ODFCRlxcdThGQjJcXHU2MEYxXFx1Rjk0NlxcdUY5NDdcXHU4MTY2XFx1Rjk0OFxcdUY5NDlcXHU1QzNGXFx1Rjk0QVwiLCA3LCBcIlxcdTVBRTlcXHU4QTI1XFx1Njc3QlxcdTdEMTBcXHVGOTUyXCIsIDUsIFwiXFx1ODBGRFxcdUY5NThcXHVGOTU5XFx1NUMzQ1xcdTZDRTVcXHU1MzNGXFx1NkVCQVxcdTU5MUFcXHU4MzM2XCJdLFxuICAgICAgW1wiZDNhMVwiLCBcIlxcdTRFMzlcXHU0RUI2XFx1NEY0NlxcdTU1QUVcXHU1NzE4XFx1NThDN1xcdTVGNTZcXHU2NUI3XFx1NjVFNlxcdTZBODBcXHU2QkI1XFx1NkU0RFxcdTc3RURcXHU3QUVGXFx1N0MxRVxcdTdEREVcXHU4NkNCXFx1ODg5MlxcdTkxMzJcXHU5MzVCXFx1NjRCQlxcdTZGQkVcXHU3MzdBXFx1NzVCOFxcdTkwNTRcXHU1NTU2XFx1NTc0RFxcdTYxQkFcXHU2NEQ0XFx1NjZDN1xcdTZERTFcXHU2RTVCXFx1NkY2RFxcdTZGQjlcXHU3NUYwXFx1ODA0M1xcdTgxQkRcXHU4NTQxXFx1ODk4M1xcdThBQzdcXHU4QjVBXFx1OTMxRlxcdTZDOTNcXHU3NTUzXFx1N0I1NFxcdThFMEZcXHU5MDVEXFx1NTUxMFxcdTU4MDJcXHU1ODU4XFx1NUU2MlxcdTYyMDdcXHU2NDlFXFx1NjhFMFxcdTc1NzZcXHU3Q0Q2XFx1ODdCM1xcdTlFRThcXHU0RUUzXFx1NTc4OFxcdTU3NkVcXHU1OTI3XFx1NUMwRFxcdTVDQjFcXHU1RTM2XFx1NUY4NVxcdTYyMzRcXHU2NEUxXFx1NzNCM1xcdTgxRkFcXHU4ODhCXFx1OENCOFxcdTk2OEFcXHU5RURCXFx1NUI4NVxcdTVGQjdcXHU2MEIzXFx1NTAxMlxcdTUyMDBcXHU1MjMwXFx1NTcxNlxcdTU4MzVcXHU1ODU3XFx1NUMwRVxcdTVDNjBcXHU1Q0Y2XFx1NUQ4QlxcdTVFQTZcXHU1RjkyXFx1NjBCQ1xcdTYzMTFcXHU2Mzg5XFx1NjQxN1xcdTY4NDNcIl0sXG4gICAgICBbXCJkNGExXCIsIFwiXFx1NjhGOVxcdTZBQzJcXHU2REQ4XFx1NkUyMVxcdTZFRDRcXHU2RkU0XFx1NzFGRVxcdTc2RENcXHU3Nzc5XFx1NzlCMVxcdTdBM0JcXHU4NDA0XFx1ODlBOVxcdThDRURcXHU4REYzXFx1OEU0OFxcdTkwMDNcXHU5MDE0XFx1OTA1M1xcdTkwRkRcXHU5MzREXFx1OTY3NlxcdTk3RENcXHU2QkQyXFx1NzAwNlxcdTcyNThcXHU3MkEyXFx1NzM2OFxcdTc3NjNcXHU3OUJGXFx1N0JFNFxcdTdFOUJcXHU4QjgwXFx1NThBOVxcdTYwQzdcXHU2NTY2XFx1NjVGRFxcdTY2QkVcXHU2QzhDXFx1NzExRVxcdTcxQzlcXHU4QzVBXFx1OTgxM1xcdTRFNkRcXHU3QTgxXFx1NEVERFxcdTUxQUNcXHU1MUNEXFx1NTJENVxcdTU0MENcXHU2MUE3XFx1Njc3MVxcdTY4NTBcXHU2OERGXFx1NkQxRVxcdTZGN0NcXHU3NUJDXFx1NzdCM1xcdTdBRTVcXHU4MEY0XFx1ODQ2M1xcdTkyODVcXHU1MTVDXFx1NjU5N1xcdTY3NUNcXHU2NzkzXFx1NzVEOFxcdTdBQzdcXHU4MzczXFx1Rjk1QVxcdThDNDZcXHU5MDE3XFx1OTgyRFxcdTVDNkZcXHU4MUMwXFx1ODI5QVxcdTkwNDFcXHU5MDZGXFx1OTIwRFxcdTVGOTdcXHU1RDlEXFx1NkE1OVxcdTcxQzhcXHU3NjdCXFx1N0I0OVxcdTg1RTRcXHU4QjA0XFx1OTEyN1xcdTlBMzBcXHU1NTg3XFx1NjFGNlxcdUY5NUJcXHU3NjY5XFx1N0Y4NVwiXSxcbiAgICAgIFtcImQ1YTFcIiwgXCJcXHU4NjNGXFx1ODdCQVxcdTg4RjhcXHU5MDhGXFx1Rjk1Q1xcdTZEMUJcXHU3MEQ5XFx1NzNERVxcdTdENjFcXHU4NDNEXFx1Rjk1RFxcdTkxNkFcXHU5OUYxXFx1Rjk1RVxcdTRFODJcXHU1Mzc1XFx1NkIwNFxcdTZCMTJcXHU3MDNFXFx1NzIxQlxcdTg2MkRcXHU5RTFFXFx1NTI0Q1xcdThGQTNcXHU1RDUwXFx1NjRFNVxcdTY1MkNcXHU2QjE2XFx1NkZFQlxcdTdDNDNcXHU3RTlDXFx1ODVDRFxcdTg5NjRcXHU4OUJEXFx1NjJDOVxcdTgxRDhcXHU4ODFGXFx1NUVDQVxcdTY3MTdcXHU2RDZBXFx1NzJGQ1xcdTc0MDVcXHU3NDZGXFx1ODc4MlxcdTkwREVcXHU0Rjg2XFx1NUQwRFxcdTVGQTBcXHU4NDBBXFx1NTFCN1xcdTYzQTBcXHU3NTY1XFx1NEVBRVxcdTUwMDZcXHU1MTY5XFx1NTFDOVxcdTY4ODFcXHU2QTExXFx1N0NBRVxcdTdDQjFcXHU3Q0U3XFx1ODI2RlxcdThBRDJcXHU4RjFCXFx1OTFDRlxcdTRGQjZcXHU1MTM3XFx1NTJGNVxcdTU0NDJcXHU1RUVDXFx1NjE2RVxcdTYyM0VcXHU2NUM1XFx1NkFEQVxcdTZGRkVcXHU3OTJBXFx1ODVEQ1xcdTg4MjNcXHU5NUFEXFx1OUE2MlxcdTlBNkFcXHU5RTk3XFx1OUVDRVxcdTUyOUJcXHU2NkM2XFx1NkI3N1xcdTcwMURcXHU3OTJCXFx1OEY2MlxcdTk3NDJcXHU2MTkwXFx1NjIwMFxcdTY1MjNcXHU2RjIzXCJdLFxuICAgICAgW1wiZDZhMVwiLCBcIlxcdTcxNDlcXHU3NDg5XFx1N0RGNFxcdTgwNkZcXHU4NEVFXFx1OEYyNlxcdTkwMjNcXHU5MzRBXFx1NTFCRFxcdTUyMTdcXHU1MkEzXFx1NkQwQ1xcdTcwQzhcXHU4OEMyXFx1NUVDOVxcdTY1ODJcXHU2QkFFXFx1NkZDMlxcdTdDM0VcXHU3Mzc1XFx1NEVFNFxcdTRGMzZcXHU1NkY5XFx1Rjk1RlxcdTVDQkFcXHU1REJBXFx1NjAxQ1xcdTczQjJcXHU3QjJEXFx1N0Y5QVxcdTdGQ0VcXHU4MDQ2XFx1OTAxRVxcdTkyMzRcXHU5NkY2XFx1OTc0OFxcdTk4MThcXHU5RjYxXFx1NEY4QlxcdTZGQTdcXHU3OUFFXFx1OTFCNFxcdTk2QjdcXHU1MkRFXFx1Rjk2MFxcdTY0ODhcXHU2NEM0XFx1NkFEM1xcdTZGNUVcXHU3MDE4XFx1NzIxMFxcdTc2RTdcXHU4MDAxXFx1ODYwNlxcdTg2NUNcXHU4REVGXFx1OEYwNVxcdTk3MzJcXHU5QjZGXFx1OURGQVxcdTlFNzVcXHU3ODhDXFx1Nzk3RlxcdTdEQTBcXHU4M0M5XFx1OTMwNFxcdTlFN0ZcXHU5RTkzXFx1OEFENlxcdTU4REZcXHU1RjA0XFx1NjcyN1xcdTcwMjdcXHU3NENGXFx1N0M2MFxcdTgwN0VcXHU1MTIxXFx1NzAyOFxcdTcyNjJcXHU3OENBXFx1OENDMlxcdThDREFcXHU4Q0Y0XFx1OTZGN1xcdTRFODZcXHU1MERBXFx1NUJFRVxcdTVFRDZcXHU2NTk5XFx1NzFDRVxcdTc2NDJcXHU3N0FEXFx1ODA0QVxcdTg0RkNcIl0sXG4gICAgICBbXCJkN2ExXCIsIFwiXFx1OTA3Q1xcdTlCMjdcXHU5RjhEXFx1NThEOFxcdTVBNDFcXHU1QzYyXFx1NkExM1xcdTZEREFcXHU2RjBGXFx1NzYzQlxcdTdEMkZcXHU3RTM3XFx1ODUxRVxcdTg5MzhcXHU5M0U0XFx1OTY0QlxcdTUyODlcXHU2NUQyXFx1NjdGM1xcdTY5QjRcXHU2RDQxXFx1NkU5Q1xcdTcwMEZcXHU3NDA5XFx1NzQ2MFxcdTc1NTlcXHU3NjI0XFx1Nzg2QlxcdThCMkNcXHU5ODVFXFx1NTE2RFxcdTYyMkVcXHU5Njc4XFx1NEY5NlxcdTUwMkJcXHU1RDE5XFx1NkRFQVxcdTdEQjhcXHU4RjJBXFx1NUY4QlxcdTYxNDRcXHU2ODE3XFx1Rjk2MVxcdTk2ODZcXHU1MkQyXFx1ODA4QlxcdTUxRENcXHU1MUNDXFx1Njk1RVxcdTdBMUNcXHU3REJFXFx1ODNGMVxcdTk2NzVcXHU0RkRBXFx1NTIyOVxcdTUzOThcXHU1NDBGXFx1NTUwRVxcdTVDNjVcXHU2MEE3XFx1Njc0RVxcdTY4QThcXHU2RDZDXFx1NzI4MVxcdTcyRjhcXHU3NDA2XFx1NzQ4M1xcdUY5NjJcXHU3NUUyXFx1N0M2Q1xcdTdGNzlcXHU3RkI4XFx1ODM4OVxcdTg4Q0ZcXHU4OEUxXFx1OTFDQ1xcdTkxRDBcXHU5NkUyXFx1OUJDOVxcdTU0MURcXHU2RjdFXFx1NzFEMFxcdTc0OThcXHU4NUZBXFx1OEVBQVxcdTk2QTNcXHU5QzU3XFx1OUU5RlxcdTY3OTdcXHU2RENCXFx1NzQzM1xcdTgxRThcXHU5NzE2XFx1NzgyQ1wiXSxcbiAgICAgIFtcImQ4YTFcIiwgXCJcXHU3QUNCXFx1N0IyMFxcdTdDOTJcXHU2NDY5XFx1NzQ2QVxcdTc1RjJcXHU3OEJDXFx1NzhFOFxcdTk5QUNcXHU5QjU0XFx1OUVCQlxcdTVCREVcXHU1RTU1XFx1NkYyMFxcdTgxOUNcXHU4M0FCXFx1OTA4OFxcdTRFMDdcXHU1MzREXFx1NUEyOVxcdTVERDJcXHU1RjRFXFx1NjE2MlxcdTYzM0RcXHU2NjY5XFx1NjZGQ1xcdTZFRkZcXHU2RjJCXFx1NzA2M1xcdTc3OUVcXHU4NDJDXFx1ODUxM1xcdTg4M0JcXHU4RjEzXFx1OTk0NVxcdTlDM0JcXHU1NTFDXFx1NjJCOVxcdTY3MkJcXHU2Q0FCXFx1ODMwOVxcdTg5NkFcXHU5NzdBXFx1NEVBMVxcdTU5ODRcXHU1RkQ4XFx1NUZEOVxcdTY3MUJcXHU3REIyXFx1N0Y1NFxcdTgyOTJcXHU4MzJCXFx1ODNCRFxcdThGMUVcXHU5MDk5XFx1NTdDQlxcdTU5QjlcXHU1QTkyXFx1NUJEMFxcdTY2MjdcXHU2NzlBXFx1Njg4NVxcdTZCQ0ZcXHU3MTY0XFx1N0Y3NVxcdThDQjdcXHU4Q0UzXFx1OTA4MVxcdTlCNDVcXHU4MTA4XFx1OEM4QVxcdTk2NENcXHU5QTQwXFx1OUVBNVxcdTVCNUZcXHU2QzEzXFx1NzMxQlxcdTc2RjJcXHU3NkRGXFx1ODQwQ1xcdTUxQUFcXHU4OTkzXFx1NTE0RFxcdTUxOTVcXHU1MkM5XFx1NjhDOVxcdTZDOTRcXHU3NzA0XFx1NzcyMFxcdTdEQkZcXHU3REVDXFx1OTc2MlxcdTlFQjVcXHU2RUM1XCJdLFxuICAgICAgW1wiZDlhMVwiLCBcIlxcdTg1MTFcXHU1MUE1XFx1NTQwRFxcdTU0N0RcXHU2NjBFXFx1NjY5RFxcdTY5MjdcXHU2RTlGXFx1NzZCRlxcdTc3OTFcXHU4MzE3XFx1ODRDMlxcdTg3OUZcXHU5MTY5XFx1OTI5OFxcdTlDRjRcXHU4ODgyXFx1NEZBRVxcdTUxOTJcXHU1MkRGXFx1NTlDNlxcdTVFM0RcXHU2MTU1XFx1NjQ3OFxcdTY0NzlcXHU2NkFFXFx1NjdEMFxcdTZBMjFcXHU2QkNEXFx1NkJEQlxcdTcyNUZcXHU3MjYxXFx1NzQ0MVxcdTc3MzhcXHU3N0RCXFx1ODAxN1xcdTgyQkNcXHU4MzA1XFx1OEIwMFxcdThCMjhcXHU4QzhDXFx1NjcyOFxcdTZDOTBcXHU3MjY3XFx1NzZFRVxcdTc3NjZcXHU3QTQ2XFx1OURBOVxcdTZCN0ZcXHU2QzkyXFx1NTkyMlxcdTY3MjZcXHU4NDk5XFx1NTM2RlxcdTU4OTNcXHU1OTk5XFx1NUVERlxcdTYzQ0ZcXHU2NjM0XFx1Njc3M1xcdTZFM0FcXHU3MzJCXFx1N0FEN1xcdTgyRDdcXHU5MzI4XFx1NTJEOVxcdTVERUJcXHU2MUFFXFx1NjFDQlxcdTYyMEFcXHU2MkM3XFx1NjRBQlxcdTY1RTBcXHU2OTU5XFx1NkI2NlxcdTZCQ0JcXHU3MTIxXFx1NzNGN1xcdTc1NURcXHU3RTQ2XFx1ODIxRVxcdTgzMDJcXHU4NTZBXFx1OEFBM1xcdThDQkZcXHU5NzI3XFx1OUQ2MVxcdTU4QThcXHU5RUQ4XFx1NTAxMVxcdTUyMEVcXHU1NDNCXFx1NTU0RlxcdTY1ODdcIl0sXG4gICAgICBbXCJkYWExXCIsIFwiXFx1NkM3NlxcdTdEMEFcXHU3RDBCXFx1ODA1RVxcdTg2OEFcXHU5NTgwXFx1OTZFRlxcdTUyRkZcXHU2Qzk1XFx1NzI2OVxcdTU0NzNcXHU1QTlBXFx1NUMzRVxcdTVENEJcXHU1RjRDXFx1NUZBRVxcdTY3MkFcXHU2OEI2XFx1Njk2M1xcdTZFM0NcXHU2RTQ0XFx1NzcwOVxcdTdDNzNcXHU3RjhFXFx1ODU4N1xcdThCMEVcXHU4RkY3XFx1OTc2MVxcdTlFRjRcXHU1Q0I3XFx1NjBCNlxcdTYxMERcXHU2MUFCXFx1NjU0RlxcdTY1RkJcXHU2NUZDXFx1NkMxMVxcdTZDRUZcXHU3MzlGXFx1NzNDOVxcdTdERTFcXHU5NTk0XFx1NUJDNlxcdTg3MUNcXHU4QjEwXFx1NTI1RFxcdTUzNUFcXHU2MkNEXFx1NjQwRlxcdTY0QjJcXHU2NzM0XFx1NkEzOFxcdTZDQ0FcXHU3M0MwXFx1NzQ5RVxcdTdCOTRcXHU3Qzk1XFx1N0UxQlxcdTgxOEFcXHU4MjM2XFx1ODU4NFxcdThGRUJcXHU5NkY5XFx1OTlDMVxcdTRGMzRcXHU1MzRBXFx1NTNDRFxcdTUzREJcXHU2MkNDXFx1NjQyQ1xcdTY1MDBcXHU2NTkxXFx1NjlDM1xcdTZDRUVcXHU2RjU4XFx1NzNFRFxcdTc1NTRcXHU3NjIyXFx1NzZFNFxcdTc2RkNcXHU3OEQwXFx1NzhGQlxcdTc5MkNcXHU3RDQ2XFx1ODIyQ1xcdTg3RTBcXHU4RkQ0XFx1OTgxMlxcdTk4RUZcXHU1MkMzXFx1NjJENFxcdTY0QTVcXHU2RTI0XFx1NkY1MVwiXSxcbiAgICAgIFtcImRiYTFcIiwgXCJcXHU3NjdDXFx1OERDQlxcdTkxQjFcXHU5MjYyXFx1OUFFRVxcdTlCNDNcXHU1MDIzXFx1NTA4RFxcdTU3NEFcXHU1OUE4XFx1NUMyOFxcdTVFNDdcXHU1Rjc3XFx1NjIzRlxcdTY1M0VcXHU2NUI5XFx1NjVDMVxcdTY2MDlcXHU2NzhCXFx1Njk5Q1xcdTZFQzJcXHU3OEM1XFx1N0QyMVxcdTgwQUFcXHU4MTgwXFx1ODIyQlxcdTgyQjNcXHU4NEExXFx1ODY4Q1xcdThBMkFcXHU4QjE3XFx1OTBBNlxcdTk2MzJcXHU5RjkwXFx1NTAwRFxcdTRGRjNcXHVGOTYzXFx1NTdGOVxcdTVGOThcXHU2MkRDXFx1NjM5MlxcdTY3NkZcXHU2RTQzXFx1NzExOVxcdTc2QzNcXHU4MENDXFx1ODBEQVxcdTg4RjRcXHU4OEY1XFx1ODkxOVxcdThDRTBcXHU4RjI5XFx1OTE0RFxcdTk2NkFcXHU0RjJGXFx1NEY3MFxcdTVFMUJcXHU2N0NGXFx1NjgyMlxcdTc2N0RcXHU3NjdFXFx1OUI0NFxcdTVFNjFcXHU2QTBBXFx1NzE2OVxcdTcxRDRcXHU3NTZBXFx1Rjk2NFxcdTdFNDFcXHU4NTQzXFx1ODVFOVxcdTk4RENcXHU0RjEwXFx1N0I0RlxcdTdGNzBcXHU5NUE1XFx1NTFFMVxcdTVFMDZcXHU2OEI1XFx1NkMzRVxcdTZDNEVcXHU2Q0RCXFx1NzJBRlxcdTdCQzRcXHU4MzAzXFx1NkNENVxcdTc0M0FcXHU1MEZCXFx1NTI4OFxcdTU4QzFcXHU2NEQ4XFx1NkE5N1xcdTc0QTdcXHU3NjU2XCJdLFxuICAgICAgW1wiZGNhMVwiLCBcIlxcdTc4QTdcXHU4NjE3XFx1OTVFMlxcdTk3MzlcXHVGOTY1XFx1NTM1RVxcdTVGMDFcXHU4QjhBXFx1OEZBOFxcdThGQUZcXHU5MDhBXFx1NTIyNVxcdTc3QTVcXHU5QzQ5XFx1OUYwOFxcdTRFMTlcXHU1MDAyXFx1NTE3NVxcdTVDNUJcXHU1RTc3XFx1NjYxRVxcdTY2M0FcXHU2N0M0XFx1NjhDNVxcdTcwQjNcXHU3NTAxXFx1NzVDNVxcdTc5QzlcXHU3QUREXFx1OEYyN1xcdTk5MjBcXHU5QTA4XFx1NEZERFxcdTU4MjFcXHU1ODMxXFx1NUJGNlxcdTY2NkVcXHU2QjY1XFx1NkQxMVxcdTZFN0FcXHU2RjdEXFx1NzNFNFxcdTc1MkJcXHU4M0U5XFx1ODhEQ1xcdTg5MTNcXHU4QjVDXFx1OEYxNFxcdTRGMEZcXHU1MEQ1XFx1NTMxMFxcdTUzNUNcXHU1QjkzXFx1NUZBOVxcdTY3MERcXHU3OThGXFx1ODE3OVxcdTgzMkZcXHU4NTE0XFx1ODkwN1xcdTg5ODZcXHU4RjM5XFx1OEYzQlxcdTk5QTVcXHU5QzEyXFx1NjcyQ1xcdTRFNzZcXHU0RkY4XFx1NTk0OVxcdTVDMDFcXHU1Q0VGXFx1NUNGMFxcdTYzNjdcXHU2OEQyXFx1NzBGRFxcdTcxQTJcXHU3NDJCXFx1N0UyQlxcdTg0RUNcXHU4NzAyXFx1OTAyMlxcdTkyRDJcXHU5Q0YzXFx1NEUwRFxcdTRFRDhcXHU0RkVGXFx1NTA4NVxcdTUyNTZcXHU1MjZGXFx1NTQyNlxcdTU0OTBcXHU1N0UwXFx1NTkyQlxcdTVBNjZcIl0sXG4gICAgICBbXCJkZGExXCIsIFwiXFx1NUI1QVxcdTVCNzVcXHU1QkNDXFx1NUU5Q1xcdUY5NjZcXHU2Mjc2XFx1NjU3N1xcdTY1QTdcXHU2RDZFXFx1NkVBNVxcdTcyMzZcXHU3QjI2XFx1N0MzRlxcdTdGMzZcXHU4MTUwXFx1ODE1MVxcdTgxOUFcXHU4MjQwXFx1ODI5OVxcdTgzQTlcXHU4QTAzXFx1OENBMFxcdThDRTZcXHU4Q0ZCXFx1OEQ3NFxcdThEQkFcXHU5MEU4XFx1OTFEQ1xcdTk2MUNcXHU5NjQ0XFx1OTlEOVxcdTlDRTdcXHU1MzE3XFx1NTIwNlxcdTU0MjlcXHU1Njc0XFx1NThCM1xcdTU5NTRcXHU1OTZFXFx1NUZGRlxcdTYxQTRcXHU2MjZFXFx1NjYxMFxcdTZDN0VcXHU3MTFBXFx1NzZDNlxcdTdDODlcXHU3Q0RFXFx1N0QxQlxcdTgyQUNcXHU4Q0MxXFx1OTZGMFxcdUY5NjdcXHU0RjVCXFx1NUYxN1xcdTVGN0ZcXHU2MkMyXFx1NUQyOVxcdTY3MEJcXHU2OERBXFx1Nzg3Q1xcdTdFNDNcXHU5RDZDXFx1NEUxNVxcdTUwOTlcXHU1MzE1XFx1NTMyQVxcdTUzNTFcXHU1OTgzXFx1NUE2MlxcdTVFODdcXHU2MEIyXFx1NjE4QVxcdTYyNDlcXHU2Mjc5XFx1NjU5MFxcdTY3ODdcXHU2OUE3XFx1NkJENFxcdTZCRDZcXHU2QkQ3XFx1NkJEOFxcdTZDQjhcXHVGOTY4XFx1NzQzNVxcdTc1RkFcXHU3ODEyXFx1Nzg5MVxcdTc5RDVcXHU3OUQ4XFx1N0M4M1xcdTdEQ0JcXHU3RkUxXFx1ODBBNVwiXSxcbiAgICAgIFtcImRlYTFcIiwgXCJcXHU4MTNFXFx1ODFDMlxcdTgzRjJcXHU4NzFBXFx1ODhFOFxcdThBQjlcXHU4QjZDXFx1OENCQlxcdTkxMTlcXHU5NzVFXFx1OThEQlxcdTlGM0JcXHU1NkFDXFx1NUIyQVxcdTVGNkNcXHU2NThDXFx1NkFCM1xcdTZCQUZcXHU2RDVDXFx1NkZGMVxcdTcwMTVcXHU3MjVEXFx1NzNBRFxcdThDQTdcXHU4Q0QzXFx1OTgzQlxcdTYxOTFcXHU2QzM3XFx1ODA1OFxcdTlBMDFcXHU0RTREXFx1NEU4QlxcdTRFOUJcXHU0RUQ1XFx1NEYzQVxcdTRGM0NcXHU0RjdGXFx1NEZERlxcdTUwRkZcXHU1M0YyXFx1NTNGOFxcdTU1MDZcXHU1NUUzXFx1NTZEQlxcdTU4RUJcXHU1OTYyXFx1NUExMVxcdTVCRUJcXHU1QkZBXFx1NUMwNFxcdTVERjNcXHU1RTJCXFx1NUY5OVxcdTYwMURcXHU2MzY4XFx1NjU5Q1xcdTY1QUZcXHU2N0Y2XFx1NjdGQlxcdTY4QURcXHU2QjdCXFx1NkM5OVxcdTZDRDdcXHU2RTIzXFx1NzAwOVxcdTczNDVcXHU3ODAyXFx1NzkzRVxcdTc5NDBcXHU3OTYwXFx1NzlDMVxcdTdCRTlcXHU3RDE3XFx1N0Q3MlxcdTgwODZcXHU4MjBEXFx1ODM4RVxcdTg0RDFcXHU4NkM3XFx1ODhERlxcdThBNTBcXHU4QTVFXFx1OEIxRFxcdThDRENcXHU4RDY2XFx1OEZBRFxcdTkwQUFcXHU5OEZDXFx1OTlERlxcdTlFOURcXHU1MjRBXFx1Rjk2OVxcdTY3MTRcXHVGOTZBXCJdLFxuICAgICAgW1wiZGZhMVwiLCBcIlxcdTUwOThcXHU1MjJBXFx1NUM3MVxcdTY1NjNcXHU2QzU1XFx1NzNDQVxcdTc1MjNcXHU3NTlEXFx1N0I5N1xcdTg0OUNcXHU5MTc4XFx1OTczMFxcdTRFNzdcXHU2NDkyXFx1NkJCQVxcdTcxNUVcXHU4NUE5XFx1NEUwOVxcdUY5NkJcXHU2NzQ5XFx1NjhFRVxcdTZFMTdcXHU4MjlGXFx1ODUxOFxcdTg4NkJcXHU2M0Y3XFx1NkY4MVxcdTkyMTJcXHU5OEFGXFx1NEUwQVxcdTUwQjdcXHU1MENGXFx1NTExRlxcdTU1NDZcXHU1NUFBXFx1NTYxN1xcdTVCNDBcXHU1QzE5XFx1NUNFMFxcdTVFMzhcXHU1RThBXFx1NUVBMFxcdTVFQzJcXHU2MEYzXFx1Njg1MVxcdTZBNjFcXHU2RTU4XFx1NzIzRFxcdTcyNDBcXHU3MkMwXFx1NzZGOFxcdTc5NjVcXHU3QkIxXFx1N0ZENFxcdTg4RjNcXHU4OUY0XFx1OEE3M1xcdThDNjFcXHU4Q0RFXFx1OTcxQ1xcdTU4NUVcXHU3NEJEXFx1OENGRFxcdTU1QzdcXHVGOTZDXFx1N0E2MVxcdTdEMjJcXHU4MjcyXFx1NzI3MlxcdTc1MUZcXHU3NTI1XFx1Rjk2RFxcdTdCMTlcXHU1ODg1XFx1NThGQlxcdTVEQkNcXHU1RThGXFx1NUVCNlxcdTVGOTBcXHU2MDU1XFx1NjI5MlxcdTYzN0ZcXHU2NTREXFx1NjY5MVxcdTY2RDlcXHU2NkY4XFx1NjgxNlxcdTY4RjJcXHU3MjgwXFx1NzQ1RVxcdTdCNkVcXHU3RDZFXFx1N0RENlxcdTdGNzJcIl0sXG4gICAgICBbXCJlMGExXCIsIFwiXFx1ODBFNVxcdTgyMTJcXHU4NUFGXFx1ODk3RlxcdThBOTNcXHU5MDFEXFx1OTJFNFxcdTlFQ0RcXHU5RjIwXFx1NTkxNVxcdTU5NkRcXHU1RTJEXFx1NjBEQ1xcdTY2MTRcXHU2NjczXFx1Njc5MFxcdTZDNTBcXHU2REM1XFx1NkY1RlxcdTc3RjNcXHU3OEE5XFx1ODRDNlxcdTkxQ0JcXHU5MzJCXFx1NEVEOVxcdTUwQ0FcXHU1MTQ4XFx1NTU4NFxcdTVCMEJcXHU1QkEzXFx1NjI0N1xcdTY1N0VcXHU2NUNCXFx1NkUzMlxcdTcxN0RcXHU3NDAxXFx1NzQ0NFxcdTc0ODdcXHU3NEJGXFx1NzY2Q1xcdTc5QUFcXHU3RERBXFx1N0U1NVxcdTdGQThcXHU4MTdBXFx1ODFCM1xcdTgyMzlcXHU4NjFBXFx1ODdFQ1xcdThBNzVcXHU4REUzXFx1OTA3OFxcdTkyOTFcXHU5NDI1XFx1OTk0RFxcdTlCQUVcXHU1MzY4XFx1NUM1MVxcdTY5NTRcXHU2Q0M0XFx1NkQyOVxcdTZFMkJcXHU4MjBDXFx1ODU5QlxcdTg5M0JcXHU4QTJEXFx1OEFBQVxcdTk2RUFcXHU5RjY3XFx1NTI2MVxcdTY2QjlcXHU2QkIyXFx1N0U5NlxcdTg3RkVcXHU4RDBEXFx1OTU4M1xcdTk2NURcXHU2NTFEXFx1NkQ4OVxcdTcxRUVcXHVGOTZFXFx1NTdDRVxcdTU5RDNcXHU1QkFDXFx1NjAyN1xcdTYwRkFcXHU2MjEwXFx1NjYxRlxcdTY2NUZcXHU3MzI5XFx1NzNGOVxcdTc2REJcXHU3NzAxXFx1N0I2Q1wiXSxcbiAgICAgIFtcImUxYTFcIiwgXCJcXHU4MDU2XFx1ODA3MlxcdTgxNjVcXHU4QUEwXFx1OTE5MlxcdTRFMTZcXHU1MkUyXFx1NkI3MlxcdTZEMTdcXHU3QTA1XFx1N0IzOVxcdTdEMzBcXHVGOTZGXFx1OENCMFxcdTUzRUNcXHU1NjJGXFx1NTg1MVxcdTVCQjVcXHU1QzBGXFx1NUMxMVxcdTVERTJcXHU2MjQwXFx1NjM4M1xcdTY0MTRcXHU2NjJEXFx1NjhCM1xcdTZDQkNcXHU2RDg4XFx1NkVBRlxcdTcwMUZcXHU3MEE0XFx1NzFEMlxcdTc1MjZcXHU3NThGXFx1NzU4RVxcdTc2MTlcXHU3QjExXFx1N0JFMFxcdTdDMkJcXHU3RDIwXFx1N0QzOVxcdTg1MkNcXHU4NTZEXFx1ODYwN1xcdThBMzRcXHU5MDBEXFx1OTA2MVxcdTkwQjVcXHU5MkI3XFx1OTdGNlxcdTlBMzdcXHU0RkQ3XFx1NUM2Q1xcdTY3NUZcXHU2RDkxXFx1N0M5RlxcdTdFOENcXHU4QjE2XFx1OEQxNlxcdTkwMUZcXHU1QjZCXFx1NURGRFxcdTY0MERcXHU4NEMwXFx1OTA1Q1xcdTk4RTFcXHU3Mzg3XFx1NUI4QlxcdTYwOUFcXHU2NzdFXFx1NkRERVxcdThBMUZcXHU4QUE2XFx1OTAwMVxcdTk4MENcXHU1MjM3XFx1Rjk3MFxcdTcwNTFcXHU3ODhFXFx1OTM5NlxcdTg4NzBcXHU5MUQ3XFx1NEZFRVxcdTUzRDdcXHU1NUZEXFx1NTZEQVxcdTU3ODJcXHU1OEZEXFx1NUFDMlxcdTVCODhcXHU1Q0FCXFx1NUNDMFxcdTVFMjVcXHU2MTAxXCJdLFxuICAgICAgW1wiZTJhMVwiLCBcIlxcdTYyMERcXHU2MjRCXFx1NjM4OFxcdTY0MUNcXHU2NTM2XFx1NjU3OFxcdTZBMzlcXHU2QjhBXFx1NkMzNFxcdTZEMTlcXHU2RjMxXFx1NzFFN1xcdTcyRTlcXHU3Mzc4XFx1NzQwN1xcdTc0QjJcXHU3NjI2XFx1Nzc2MVxcdTc5QzBcXHU3QTU3XFx1N0FFQVxcdTdDQjlcXHU3RDhGXFx1N0RBQ1xcdTdFNjFcXHU3RjlFXFx1ODEyOVxcdTgzMzFcXHU4NDkwXFx1ODREQVxcdTg1RUFcXHU4ODk2XFx1OEFCMFxcdThCOTBcXHU4RjM4XFx1OTA0MlxcdTkwODNcXHU5MTZDXFx1OTI5NlxcdTkyQjlcXHU5NjhCXFx1OTZBN1xcdTk2QThcXHU5NkQ2XFx1OTcwMFxcdTk4MDhcXHU5OTk2XFx1OUFEM1xcdTlCMUFcXHU1M0Q0XFx1NTg3RVxcdTU5MTlcXHU1QjcwXFx1NUJCRlxcdTZERDFcXHU2RjVBXFx1NzE5RlxcdTc0MjFcXHU3NEI5XFx1ODA4NVxcdTgzRkRcXHU1REUxXFx1NUY4N1xcdTVGQUFcXHU2MDQyXFx1NjVFQ1xcdTY4MTJcXHU2OTZGXFx1NkE1M1xcdTZCODlcXHU2RDM1XFx1NkRGM1xcdTczRTNcXHU3NkZFXFx1NzdBQ1xcdTdCNERcXHU3RDE0XFx1ODEyM1xcdTgyMUNcXHU4MzQwXFx1ODRGNFxcdTg1NjNcXHU4QTYyXFx1OEFDNFxcdTkxODdcXHU5MzFFXFx1OTgwNlxcdTk5QjRcXHU2MjBDXFx1ODg1M1xcdThGRjBcXHU5MjY1XFx1NUQwN1xcdTVEMjdcIl0sXG4gICAgICBbXCJlM2ExXCIsIFwiXFx1NUQ2OVxcdTc0NUZcXHU4MTlEXFx1ODc2OFxcdTZGRDVcXHU2MkZFXFx1N0ZEMlxcdTg5MzZcXHU4OTcyXFx1NEUxRVxcdTRFNThcXHU1MEU3XFx1NTJERFxcdTUzNDdcXHU2MjdGXFx1NjYwN1xcdTdFNjlcXHU4ODA1XFx1OTY1RVxcdTRGOERcXHU1MzE5XFx1NTYzNlxcdTU5Q0JcXHU1QUE0XFx1NUMzOFxcdTVDNEVcXHU1QzREXFx1NUUwMlxcdTVGMTFcXHU2MDQzXFx1NjVCRFxcdTY2MkZcXHU2NjQyXFx1NjdCRVxcdTY3RjRcXHU3MzFDXFx1NzdFMlxcdTc5M0FcXHU3RkM1XFx1ODQ5NFxcdTg0Q0RcXHU4OTk2XFx1OEE2NlxcdThBNjlcXHU4QUUxXFx1OEM1NVxcdThDN0FcXHU1N0Y0XFx1NUJENFxcdTVGMEZcXHU2MDZGXFx1NjJFRFxcdTY5MERcXHU2Qjk2XFx1NkU1Q1xcdTcxODRcXHU3QkQyXFx1ODc1NVxcdThCNThcXHU4RUZFXFx1OThERlxcdTk4RkVcXHU0RjM4XFx1NEY4MVxcdTRGRTFcXHU1NDdCXFx1NUEyMFxcdTVCQjhcXHU2MTNDXFx1NjVCMFxcdTY2NjhcXHU3MUZDXFx1NzUzM1xcdTc5NUVcXHU3RDMzXFx1ODE0RVxcdTgxRTNcXHU4Mzk4XFx1ODVBQVxcdTg1Q0VcXHU4NzAzXFx1OEEwQVxcdThFQUJcXHU4RjlCXFx1Rjk3MVxcdThGQzVcXHU1OTMxXFx1NUJBNFxcdTVCRTZcXHU2MDg5XFx1NUJFOVxcdTVDMEJcXHU1RkMzXFx1NkM4MVwiXSxcbiAgICAgIFtcImU0YTFcIiwgXCJcXHVGOTcyXFx1NkRGMVxcdTcwMEJcXHU3NTFBXFx1ODJBRlxcdThBRjZcXHU0RUMwXFx1NTM0MVxcdUY5NzNcXHU5NkQ5XFx1NkMwRlxcdTRFOUVcXHU0RkM0XFx1NTE1MlxcdTU1NUVcXHU1QTI1XFx1NUNFOFxcdTYyMTFcXHU3MjU5XFx1ODJCRFxcdTgzQUFcXHU4NkZFXFx1ODg1OVxcdThBMURcXHU5NjNGXFx1OTZDNVxcdTk5MTNcXHU5RDA5XFx1OUQ1RFxcdTU4MEFcXHU1Q0IzXFx1NURCRFxcdTVFNDRcXHU2MEUxXFx1NjExNVxcdTYzRTFcXHU2QTAyXFx1NkUyNVxcdTkxMDJcXHU5MzU0XFx1OTg0RVxcdTlDMTBcXHU5Rjc3XFx1NUI4OVxcdTVDQjhcXHU2MzA5XFx1NjY0RlxcdTY4NDhcXHU3NzNDXFx1OTZDMVxcdTk3OERcXHU5ODU0XFx1OUI5RlxcdTY1QTFcXHU4QjAxXFx1OEVDQlxcdTk1QkNcXHU1NTM1XFx1NUNBOVxcdTVERDZcXHU1RUI1XFx1NjY5N1xcdTc2NENcXHU4M0Y0XFx1OTVDN1xcdTU4RDNcXHU2MkJDXFx1NzJDRVxcdTlEMjhcXHU0RUYwXFx1NTkyRVxcdTYwMEZcXHU2NjNCXFx1NkI4M1xcdTc5RTdcXHU5RDI2XFx1NTM5M1xcdTU0QzBcXHU1N0MzXFx1NUQxNlxcdTYxMUJcXHU2NkQ2XFx1NkRBRlxcdTc4OERcXHU4MjdFXFx1OTY5OFxcdTk3NDRcXHU1Mzg0XFx1NjI3Q1xcdTYzOTZcXHU2REIyXFx1N0UwQVxcdTgxNEJcXHU5ODREXCJdLFxuICAgICAgW1wiZTVhMVwiLCBcIlxcdTZBRkJcXHU3RjRDXFx1OURBRlxcdTlFMUFcXHU0RTVGXFx1NTAzQlxcdTUxQjZcXHU1OTFDXFx1NjBGOVxcdTYzRjZcXHU2OTMwXFx1NzIzQVxcdTgwMzZcXHVGOTc0XFx1OTFDRVxcdTVGMzFcXHVGOTc1XFx1Rjk3NlxcdTdEMDRcXHU4MkU1XFx1ODQ2RlxcdTg0QkJcXHU4NUU1XFx1OEU4RFxcdUY5NzdcXHU0RjZGXFx1Rjk3OFxcdUY5NzlcXHU1OEU0XFx1NUI0M1xcdTYwNTlcXHU2M0RBXFx1NjUxOFxcdTY1NkRcXHU2Njk4XFx1Rjk3QVxcdTY5NEFcXHU2QTIzXFx1NkQwQlxcdTcwMDFcXHU3MTZDXFx1NzVEMlxcdTc2MERcXHU3OUIzXFx1N0E3MFxcdUY5N0JcXHU3RjhBXFx1Rjk3Q1xcdTg5NDRcXHVGOTdEXFx1OEI5M1xcdTkxQzBcXHU5NjdEXFx1Rjk3RVxcdTk5MEFcXHU1NzA0XFx1NUZBMVxcdTY1QkNcXHU2RjAxXFx1NzYwMFxcdTc5QTZcXHU4QTlFXFx1OTlBRFxcdTlCNUFcXHU5RjZDXFx1NTEwNFxcdTYxQjZcXHU2MjkxXFx1NkE4RFxcdTgxQzZcXHU1MDQzXFx1NTgzMFxcdTVGNjZcXHU3MTA5XFx1OEEwMFxcdThBRkFcXHU1QjdDXFx1ODYxNlxcdTRGRkFcXHU1MTNDXFx1NTZCNFxcdTU5NDRcXHU2M0E5XFx1NkRGOVxcdTVEQUFcXHU2OTZEXFx1NTE4NlxcdTRFODhcXHU0RjU5XFx1Rjk3RlxcdUY5ODBcXHVGOTgxXFx1NTk4MlxcdUY5ODJcIl0sXG4gICAgICBbXCJlNmExXCIsIFwiXFx1Rjk4M1xcdTZCNUZcXHU2QzVEXFx1Rjk4NFxcdTc0QjVcXHU3OTE2XFx1Rjk4NVxcdTgyMDdcXHU4MjQ1XFx1ODMzOVxcdThGM0ZcXHU4RjVEXFx1Rjk4NlxcdTk5MThcXHVGOTg3XFx1Rjk4OFxcdUY5ODlcXHU0RUE2XFx1Rjk4QVxcdTU3REZcXHU1Rjc5XFx1NjYxM1xcdUY5OEJcXHVGOThDXFx1NzVBQlxcdTdFNzlcXHU4QjZGXFx1Rjk4RFxcdTkwMDZcXHU5QTVCXFx1NTZBNVxcdTU4MjdcXHU1OUY4XFx1NUExRlxcdTVCQjRcXHVGOThFXFx1NUVGNlxcdUY5OEZcXHVGOTkwXFx1NjM1MFxcdTYzM0JcXHVGOTkxXFx1NjkzRFxcdTZDODdcXHU2Q0JGXFx1NkQ4RVxcdTZEOTNcXHU2REY1XFx1NkYxNFxcdUY5OTJcXHU3MERGXFx1NzEzNlxcdTcxNTlcXHVGOTkzXFx1NzFDM1xcdTcxRDVcXHVGOTk0XFx1Nzg0RlxcdTc4NkZcXHVGOTk1XFx1N0I3NVxcdTdERTNcXHVGOTk2XFx1N0UyRlxcdUY5OTdcXHU4ODREXFx1OEVERlxcdUY5OThcXHVGOTk5XFx1Rjk5QVxcdTkyNUJcXHVGOTlCXFx1OUNGNlxcdUY5OUNcXHVGOTlEXFx1Rjk5RVxcdTYwODVcXHU2RDg1XFx1Rjk5RlxcdTcxQjFcXHVGOUEwXFx1RjlBMVxcdTk1QjFcXHU1M0FEXFx1RjlBMlxcdUY5QTNcXHVGOUE0XFx1NjdEM1xcdUY5QTVcXHU3MDhFXFx1NzEzMFxcdTc0MzBcXHU4Mjc2XFx1ODJEMlwiXSxcbiAgICAgIFtcImU3YTFcIiwgXCJcXHVGOUE2XFx1OTVCQlxcdTlBRTVcXHU5RTdEXFx1NjZDNFxcdUY5QTdcXHU3MUMxXFx1ODQ0OVxcdUY5QThcXHVGOUE5XFx1NTg0QlxcdUY5QUFcXHVGOUFCXFx1NURCOFxcdTVGNzFcXHVGOUFDXFx1NjYyMFxcdTY2OEVcXHU2OTc5XFx1NjlBRVxcdTZDMzhcXHU2Q0YzXFx1NkUzNlxcdTZGNDFcXHU2RkRBXFx1NzAxQlxcdTcwMkZcXHU3MTUwXFx1NzFERlxcdTczNzBcXHVGOUFEXFx1NzQ1QlxcdUY5QUVcXHU3NEQ0XFx1NzZDOFxcdTdBNEVcXHU3RTkzXFx1RjlBRlxcdUY5QjBcXHU4MkYxXFx1OEE2MFxcdThGQ0VcXHVGOUIxXFx1OTM0OFxcdUY5QjJcXHU5NzE5XFx1RjlCM1xcdUY5QjRcXHU0RTQyXFx1NTAyQVxcdUY5QjVcXHU1MjA4XFx1NTNFMVxcdTY2RjNcXHU2QzZEXFx1NkZDQVxcdTczMEFcXHU3NzdGXFx1N0E2MlxcdTgyQUVcXHU4NUREXFx1ODYwMlxcdUY5QjZcXHU4OEQ0XFx1OEE2M1xcdThCN0RcXHU4QzZCXFx1RjlCN1xcdTkyQjNcXHVGOUI4XFx1OTcxM1xcdTk4MTBcXHU0RTk0XFx1NEYwRFxcdTRGQzlcXHU1MEIyXFx1NTM0OFxcdTU0M0VcXHU1NDMzXFx1NTVEQVxcdTU4NjJcXHU1OEJBXFx1NTk2N1xcdTVBMUJcXHU1QkU0XFx1NjA5RlxcdUY5QjlcXHU2MUNBXFx1NjU1NlxcdTY1RkZcXHU2NjY0XFx1NjhBN1xcdTZDNUFcXHU2RkIzXCJdLFxuICAgICAgW1wiZThhMVwiLCBcIlxcdTcwQ0ZcXHU3MUFDXFx1NzM1MlxcdTdCN0RcXHU4NzA4XFx1OEFBNFxcdTlDMzJcXHU5RjA3XFx1NUM0QlxcdTZDODNcXHU3MzQ0XFx1NzM4OVxcdTkyM0FcXHU2RUFCXFx1NzQ2NVxcdTc2MUZcXHU3QTY5XFx1N0UxNVxcdTg2MEFcXHU1MTQwXFx1NThDNVxcdTY0QzFcXHU3NEVFXFx1NzUxNVxcdTc2NzBcXHU3RkMxXFx1OTA5NVxcdTk2Q0RcXHU5OTU0XFx1NkUyNlxcdTc0RTZcXHU3QUE5XFx1N0FBQVxcdTgxRTVcXHU4NkQ5XFx1ODc3OFxcdThBMUJcXHU1QTQ5XFx1NUI4Q1xcdTVCOUJcXHU2OEExXFx1NjkwMFxcdTZENjNcXHU3M0E5XFx1NzQxM1xcdTc0MkNcXHU3ODk3XFx1N0RFOVxcdTdGRUJcXHU4MTE4XFx1ODE1NVxcdTgzOUVcXHU4QzRDXFx1OTYyRVxcdTk4MTFcXHU2NkYwXFx1NUY4MFxcdTY1RkFcXHU2Nzg5XFx1NkM2QVxcdTczOEJcXHU1MDJEXFx1NUEwM1xcdTZCNkFcXHU3N0VFXFx1NTkxNlxcdTVENkNcXHU1RENEXFx1NzMyNVxcdTc1NEZcXHVGOUJBXFx1RjlCQlxcdTUwRTVcXHU1MUY5XFx1NTgyRlxcdTU5MkRcXHU1OTk2XFx1NTlEQVxcdTVCRTVcXHVGOUJDXFx1RjlCRFxcdTVEQTJcXHU2MkQ3XFx1NjQxNlxcdTY0OTNcXHU2NEZFXFx1RjlCRVxcdTY2RENcXHVGOUJGXFx1NkE0OFxcdUY5QzBcXHU3MUZGXFx1NzQ2NFxcdUY5QzFcIl0sXG4gICAgICBbXCJlOWExXCIsIFwiXFx1N0E4OFxcdTdBQUZcXHU3RTQ3XFx1N0U1RVxcdTgwMDBcXHU4MTcwXFx1RjlDMlxcdTg3RUZcXHU4OTgxXFx1OEIyMFxcdTkwNTlcXHVGOUMzXFx1OTA4MFxcdTk5NTJcXHU2MTdFXFx1NkIzMlxcdTZENzRcXHU3RTFGXFx1ODkyNVxcdThGQjFcXHU0RkQxXFx1NTBBRFxcdTUxOTdcXHU1MkM3XFx1NTdDN1xcdTU4ODlcXHU1QkI5XFx1NUVCOFxcdTYxNDJcXHU2OTk1XFx1NkQ4Q1xcdTZFNjdcXHU2RUI2XFx1NzE5NFxcdTc0NjJcXHU3NTI4XFx1NzUyQ1xcdTgwNzNcXHU4MzM4XFx1ODRDOVxcdThFMEFcXHU5Mzk0XFx1OTNERVxcdUY5QzRcXHU0RThFXFx1NEY1MVxcdTUwNzZcXHU1MTJBXFx1NTNDOFxcdTUzQ0JcXHU1M0YzXFx1NUI4N1xcdTVCRDNcXHU1QzI0XFx1NjExQVxcdTYxODJcXHU2NUY0XFx1NzI1QlxcdTczOTdcXHU3NDQwXFx1NzZDMlxcdTc5NTBcXHU3OTkxXFx1NzlCOVxcdTdEMDZcXHU3RkJEXFx1ODI4QlxcdTg1RDVcXHU4NjVFXFx1OEZDMlxcdTkwNDdcXHU5MEY1XFx1OTFFQVxcdTk2ODVcXHU5NkU4XFx1OTZFOVxcdTUyRDZcXHU1RjY3XFx1NjVFRFxcdTY2MzFcXHU2ODJGXFx1NzE1Q1xcdTdBMzZcXHU5MEMxXFx1OTgwQVxcdTRFOTFcXHVGOUM1XFx1NkE1MlxcdTZCOUVcXHU2RjkwXFx1NzE4OVxcdTgwMThcXHU4MkI4XFx1ODU1M1wiXSxcbiAgICAgIFtcImVhYTFcIiwgXCJcXHU5MDRCXFx1OTY5NVxcdTk2RjJcXHU5N0ZCXFx1ODUxQVxcdTlCMzFcXHU0RTkwXFx1NzE4QVxcdTk2QzRcXHU1MTQzXFx1NTM5RlxcdTU0RTFcXHU1NzEzXFx1NTcxMlxcdTU3QTNcXHU1QTlCXFx1NUFDNFxcdTVCQzNcXHU2MDI4XFx1NjEzRlxcdTYzRjRcXHU2Qzg1XFx1NkQzOVxcdTZFNzJcXHU2RTkwXFx1NzIzMFxcdTczM0ZcXHU3NDU3XFx1ODJEMVxcdTg4ODFcXHU4RjQ1XFx1OTA2MFxcdUY5QzZcXHU5NjYyXFx1OTg1OFxcdTlEMUJcXHU2NzA4XFx1OEQ4QVxcdTkyNUVcXHU0RjREXFx1NTA0OVxcdTUwREVcXHU1MzcxXFx1NTcwRFxcdTU5RDRcXHU1QTAxXFx1NUMwOVxcdTYxNzBcXHU2NjkwXFx1NkUyRFxcdTcyMzJcXHU3NDRCXFx1N0RFRlxcdTgwQzNcXHU4NDBFXFx1ODQ2NlxcdTg1M0ZcXHU4NzVGXFx1ODg1QlxcdTg5MThcXHU4QjAyXFx1OTA1NVxcdTk3Q0JcXHU5QjRGXFx1NEU3M1xcdTRGOTFcXHU1MTEyXFx1NTE2QVxcdUY5QzdcXHU1NTJGXFx1NTVBOVxcdTVCN0FcXHU1QkE1XFx1NUU3Q1xcdTVFN0RcXHU1RUJFXFx1NjBBMFxcdTYwREZcXHU2MTA4XFx1NjEwOVxcdTYzQzRcXHU2NTM4XFx1NjcwOVxcdUY5QzhcXHU2N0Q0XFx1NjdEQVxcdUY5QzlcXHU2OTYxXFx1Njk2MlxcdTZDQjlcXHU2RDI3XFx1RjlDQVxcdTZFMzhcXHVGOUNCXCJdLFxuICAgICAgW1wiZWJhMVwiLCBcIlxcdTZGRTFcXHU3MzM2XFx1NzMzN1xcdUY5Q0NcXHU3NDVDXFx1NzUzMVxcdUY5Q0RcXHU3NjUyXFx1RjlDRVxcdUY5Q0ZcXHU3REFEXFx1ODFGRVxcdTg0MzhcXHU4OEQ1XFx1OEE5OFxcdThBREJcXHU4QUVEXFx1OEUzMFxcdThFNDJcXHU5MDRBXFx1OTAzRVxcdTkwN0FcXHU5MTQ5XFx1OTFDOVxcdTkzNkVcXHVGOUQwXFx1RjlEMVxcdTU4MDlcXHVGOUQyXFx1NkJEM1xcdTgwODlcXHU4MEIyXFx1RjlEM1xcdUY5RDRcXHU1MTQxXFx1NTk2QlxcdTVDMzlcXHVGOUQ1XFx1RjlENlxcdTZGNjRcXHU3M0E3XFx1ODBFNFxcdThEMDdcXHVGOUQ3XFx1OTIxN1xcdTk1OEZcXHVGOUQ4XFx1RjlEOVxcdUY5REFcXHVGOURCXFx1ODA3RlxcdTYyMEVcXHU3MDFDXFx1N0Q2OFxcdTg3OERcXHVGOURDXFx1NTdBMFxcdTYwNjlcXHU2MTQ3XFx1NkJCN1xcdThBQkVcXHU5MjgwXFx1OTZCMVxcdTRFNTlcXHU1NDFGXFx1NkRFQlxcdTg1MkRcXHU5NjcwXFx1OTdGM1xcdTk4RUVcXHU2M0Q2XFx1NkNFM1xcdTkwOTFcXHU1MUREXFx1NjFDOVxcdTgxQkFcXHU5REY5XFx1NEY5RFxcdTUwMUFcXHU1MTAwXFx1NUI5Q1xcdTYxMEZcXHU2MUZGXFx1NjRFQ1xcdTY5MDVcXHU2QkM1XFx1NzU5MVxcdTc3RTNcXHU3RkE5XFx1ODI2NFxcdTg1OEZcXHU4N0ZCXFx1ODg2M1xcdThBQkNcIl0sXG4gICAgICBbXCJlY2ExXCIsIFwiXFx1OEI3MFxcdTkxQUJcXHU0RThDXFx1NEVFNVxcdTRGMEFcXHVGOUREXFx1RjlERVxcdTU5MzdcXHU1OUU4XFx1RjlERlxcdTVERjJcXHU1RjFCXFx1NUY1QlxcdTYwMjFcXHVGOUUwXFx1RjlFMVxcdUY5RTJcXHVGOUUzXFx1NzIzRVxcdTczRTVcXHVGOUU0XFx1NzU3MFxcdTc1Q0RcXHVGOUU1XFx1NzlGQlxcdUY5RTZcXHU4MDBDXFx1ODAzM1xcdTgwODRcXHU4MkUxXFx1ODM1MVxcdUY5RTdcXHVGOUU4XFx1OENCRFxcdThDQjNcXHU5MDg3XFx1RjlFOVxcdUY5RUFcXHU5OEY0XFx1OTkwQ1xcdUY5RUJcXHVGOUVDXFx1NzAzN1xcdTc2Q0FcXHU3RkNBXFx1N0ZDQ1xcdTdGRkNcXHU4QjFBXFx1NEVCQVxcdTRFQzFcXHU1MjAzXFx1NTM3MFxcdUY5RURcXHU1NEJEXFx1NTZFMFxcdTU5RkJcXHU1QkM1XFx1NUYxNVxcdTVGQ0RcXHU2RTZFXFx1RjlFRVxcdUY5RUZcXHU3RDZBXFx1ODMzNVxcdUY5RjBcXHU4NjkzXFx1OEE4RFxcdUY5RjFcXHU5NzZEXFx1OTc3N1xcdUY5RjJcXHVGOUYzXFx1NEUwMFxcdTRGNUFcXHU0RjdFXFx1NThGOVxcdTY1RTVcXHU2RUEyXFx1OTAzOFxcdTkzQjBcXHU5OUI5XFx1NEVGQlxcdTU4RUNcXHU1OThBXFx1NTlEOVxcdTYwNDFcXHVGOUY0XFx1RjlGNVxcdTdBMTRcXHVGOUY2XFx1ODM0RlxcdThDQzNcXHU1MTY1XFx1NTM0NFwiXSxcbiAgICAgIFtcImVkYTFcIiwgXCJcXHVGOUY3XFx1RjlGOFxcdUY5RjlcXHU0RUNEXFx1NTI2OVxcdTVCNTVcXHU4MkJGXFx1NEVENFxcdTUyM0FcXHU1NEE4XFx1NTlDOVxcdTU5RkZcXHU1QjUwXFx1NUI1N1xcdTVCNUNcXHU2MDYzXFx1NjE0OFxcdTZFQ0JcXHU3MDk5XFx1NzE2RVxcdTczODZcXHU3NEY3XFx1NzVCNVxcdTc4QzFcXHU3RDJCXFx1ODAwNVxcdTgxRUFcXHU4MzI4XFx1ODUxN1xcdTg1QzlcXHU4QUVFXFx1OENDN1xcdTk2Q0NcXHU0RjVDXFx1NTJGQVxcdTU2QkNcXHU2NUFCXFx1NjYyOFxcdTcwN0NcXHU3MEI4XFx1NzIzNVxcdTdEQkRcXHU4MjhEXFx1OTE0Q1xcdTk2QzBcXHU5RDcyXFx1NUI3MVxcdTY4RTdcXHU2Qjk4XFx1NkY3QVxcdTc2REVcXHU1QzkxXFx1NjZBQlxcdTZGNUJcXHU3QkI0XFx1N0MyQVxcdTg4MzZcXHU5NkRDXFx1NEUwOFxcdTRFRDdcXHU1MzIwXFx1NTgzNFxcdTU4QkJcXHU1OEVGXFx1NTk2Q1xcdTVDMDdcXHU1RTMzXFx1NUU4NFxcdTVGMzVcXHU2MzhDXFx1NjZCMlxcdTY3NTZcXHU2QTFGXFx1NkFBM1xcdTZCMENcXHU2RjNGXFx1NzI0NlxcdUY5RkFcXHU3MzUwXFx1NzQ4QlxcdTdBRTBcXHU3Q0E3XFx1ODE3OFxcdTgxREZcXHU4MUU3XFx1ODM4QVxcdTg0NkNcXHU4NTIzXFx1ODU5NFxcdTg1Q0ZcXHU4OEREXFx1OEQxM1xcdTkxQUNcXHU5NTc3XCJdLFxuICAgICAgW1wiZWVhMVwiLCBcIlxcdTk2OUNcXHU1MThEXFx1NTRDOVxcdTU3MjhcXHU1QkIwXFx1NjI0RFxcdTY3NTBcXHU2ODNEXFx1Njg5M1xcdTZFM0RcXHU2RUQzXFx1NzA3RFxcdTdFMjFcXHU4OEMxXFx1OENBMVxcdThGMDlcXHU5RjRCXFx1OUY0RVxcdTcyMkRcXHU3QjhGXFx1OEFDRFxcdTkzMUFcXHU0RjQ3XFx1NEY0RVxcdTUxMzJcXHU1NDgwXFx1NTlEMFxcdTVFOTVcXHU2MkI1XFx1Njc3NVxcdTY5NkVcXHU2QTE3XFx1NkNBRVxcdTZFMUFcXHU3MkQ5XFx1NzMyQVxcdTc1QkRcXHU3QkI4XFx1N0QzNVxcdTgyRTdcXHU4M0Y5XFx1ODQ1N1xcdTg1RjdcXHU4QTVCXFx1OENBRlxcdThFODdcXHU5MDE5XFx1OTBCOFxcdTk2Q0VcXHU5RjVGXFx1NTJFM1xcdTU0MEFcXHU1QUUxXFx1NUJDMlxcdTY0NThcXHU2NTc1XFx1NkVGNFxcdTcyQzRcXHVGOUZCXFx1NzY4NFxcdTdBNERcXHU3QjFCXFx1N0M0RFxcdTdFM0VcXHU3RkRGXFx1ODM3QlxcdThCMkJcXHU4Q0NBXFx1OEQ2NFxcdThERTFcXHU4RTVGXFx1OEZFQVxcdThGRjlcXHU5MDY5XFx1OTNEMVxcdTRGNDNcXHU0RjdBXFx1NTBCM1xcdTUxNjhcXHU1MTc4XFx1NTI0RFxcdTUyNkFcXHU1ODYxXFx1NTg3Q1xcdTU5NjBcXHU1QzA4XFx1NUM1NVxcdTVFREJcXHU2MDlCXFx1NjIzMFxcdTY4MTNcXHU2QkJGXFx1NkMwOFxcdTZGQjFcIl0sXG4gICAgICBbXCJlZmExXCIsIFwiXFx1NzE0RVxcdTc0MjBcXHU3NTMwXFx1NzUzOFxcdTc1NTFcXHU3NjcyXFx1N0I0Q1xcdTdCOEJcXHU3QkFEXFx1N0JDNlxcdTdFOEZcXHU4QTZFXFx1OEYzRVxcdThGNDlcXHU5MjNGXFx1OTI5M1xcdTkzMjJcXHU5NDJCXFx1OTZGQlxcdTk4NUFcXHU5ODZCXFx1OTkxRVxcdTUyMDdcXHU2MjJBXFx1NjI5OFxcdTZENTlcXHU3NjY0XFx1N0FDQVxcdTdCQzBcXHU3RDc2XFx1NTM2MFxcdTVDQkVcXHU1RTk3XFx1NkYzOFxcdTcwQjlcXHU3Qzk4XFx1OTcxMVxcdTlCOEVcXHU5RURFXFx1NjNBNVxcdTY0N0FcXHU4Nzc2XFx1NEUwMVxcdTRFOTVcXHU0RUFEXFx1NTA1Q1xcdTUwNzVcXHU1NDQ4XFx1NTlDM1xcdTVCOUFcXHU1RTQwXFx1NUVBRFxcdTVFRjdcXHU1RjgxXFx1NjBDNVxcdTYzM0FcXHU2NTNGXFx1NjU3NFxcdTY1Q0NcXHU2Njc2XFx1NjY3OFxcdTY3RkVcXHU2OTY4XFx1NkE4OVxcdTZCNjNcXHU2QzQwXFx1NkRDMFxcdTZERThcXHU2RTFGXFx1NkU1RVxcdTcwMUVcXHU3MEExXFx1NzM4RVxcdTczRkRcXHU3NTNBXFx1Nzc1QlxcdTc4ODdcXHU3OThFXFx1N0EwQlxcdTdBN0RcXHU3Q0JFXFx1N0Q4RVxcdTgyNDdcXHU4QTAyXFx1OEFFQVxcdThDOUVcXHU5MTJEXFx1OTE0QVxcdTkxRDhcXHU5MjY2XFx1OTJDQ1xcdTkzMjBcXHU5NzA2XFx1OTc1NlwiXSxcbiAgICAgIFtcImYwYTFcIiwgXCJcXHU5NzVDXFx1OTgwMlxcdTlGMEVcXHU1MjM2XFx1NTI5MVxcdTU1N0NcXHU1ODI0XFx1NUUxRFxcdTVGMUZcXHU2MDhDXFx1NjNEMFxcdTY4QUZcXHU2RkRGXFx1Nzk2RFxcdTdCMkNcXHU4MUNEXFx1ODVCQVxcdTg4RkRcXHU4QUY4XFx1OEU0NFxcdTkxOERcXHU5NjY0XFx1OTY5QlxcdTk3M0RcXHU5ODRDXFx1OUY0QVxcdTRGQ0VcXHU1MTQ2XFx1NTFDQlxcdTUyQTlcXHU1NjMyXFx1NUYxNFxcdTVGNkJcXHU2M0FBXFx1NjRDRFxcdTY1RTlcXHU2NjQxXFx1NjZGQVxcdTY2RjlcXHU2NzFEXFx1Njg5RFxcdTY4RDdcXHU2OUZEXFx1NkYxNVxcdTZGNkVcXHU3MTY3XFx1NzFFNVxcdTcyMkFcXHU3NEFBXFx1NzczQVxcdTc5NTZcXHU3OTVBXFx1NzlERlxcdTdBMjBcXHU3QTk1XFx1N0M5N1xcdTdDREZcXHU3RDQ0XFx1N0U3MFxcdTgwODdcXHU4NUZCXFx1ODZBNFxcdThBNTRcXHU4QUJGXFx1OEQ5OVxcdThFODFcXHU5MDIwXFx1OTA2RFxcdTkxRTNcXHU5NjNCXFx1OTZENVxcdTlDRTVcXHU2NUNGXFx1N0MwN1xcdThEQjNcXHU5M0MzXFx1NUI1OFxcdTVDMEFcXHU1MzUyXFx1NjJEOVxcdTczMURcXHU1MDI3XFx1NUI5N1xcdTVGOUVcXHU2MEIwXFx1NjE2QlxcdTY4RDVcXHU2REQ5XFx1NzQyRVxcdTdBMkVcXHU3RDQyXFx1N0Q5Q1xcdTdFMzFcXHU4MTZCXCJdLFxuICAgICAgW1wiZjFhMVwiLCBcIlxcdThFMkFcXHU4RTM1XFx1OTM3RVxcdTk0MThcXHU0RjUwXFx1NTc1MFxcdTVERTZcXHU1RUE3XFx1NjMyQlxcdTdGNkFcXHU0RTNCXFx1NEY0RlxcdTRGOEZcXHU1MDVBXFx1NTlERFxcdTgwQzRcXHU1NDZBXFx1NTQ2OFxcdTU1RkVcXHU1OTRGXFx1NUI5OVxcdTVEREVcXHU1RURBXFx1NjY1RFxcdTY3MzFcXHU2N0YxXFx1NjgyQVxcdTZDRThcXHU2RDMyXFx1NkU0QVxcdTZGOERcXHU3MEI3XFx1NzNFMFxcdTc1ODdcXHU3QzRDXFx1N0QwMlxcdTdEMkNcXHU3REEyXFx1ODIxRlxcdTg2REJcXHU4QTNCXFx1OEE4NVxcdThENzBcXHU4RThBXFx1OEYzM1xcdTkwMzFcXHU5MTRFXFx1OTE1MlxcdTk0NDRcXHU5OUQwXFx1N0FGOVxcdTdDQTVcXHU0RkNBXFx1NTEwMVxcdTUxQzZcXHU1N0M4XFx1NUJFRlxcdTVDRkJcXHU2NjU5XFx1NkEzRFxcdTZENUFcXHU2RTk2XFx1NkZFQ1xcdTcxMENcXHU3NTZGXFx1N0FFM1xcdTg4MjJcXHU5MDIxXFx1OTA3NVxcdTk2Q0JcXHU5OUZGXFx1ODMwMVxcdTRFMkRcXHU0RUYyXFx1ODg0NlxcdTkxQ0RcXHU1MzdEXFx1NkFEQlxcdTY5NkJcXHU2QzQxXFx1ODQ3QVxcdTU4OUVcXHU2MThFXFx1NjZGRVxcdTYyRUZcXHU3MEREXFx1NzUxMVxcdTc1QzdcXHU3RTUyXFx1ODRCOFxcdThCNDlcXHU4RDA4XFx1NEU0QlxcdTUzRUFcIl0sXG4gICAgICBbXCJmMmExXCIsIFwiXFx1NTRBQlxcdTU3MzBcXHU1NzQwXFx1NUZEN1xcdTYzMDFcXHU2MzA3XFx1NjQ2RlxcdTY1MkZcXHU2NUU4XFx1NjY3QVxcdTY3OURcXHU2N0IzXFx1NkI2MlxcdTZDNjBcXHU2QzlBXFx1NkYyQ1xcdTc3RTVcXHU3ODI1XFx1Nzk0OVxcdTc5NTdcXHU3RDE5XFx1ODBBMlxcdTgxMDJcXHU4MUYzXFx1ODI5RFxcdTgyQjdcXHU4NzE4XFx1OEE4Q1xcdUY5RkNcXHU4RDA0XFx1OERCRVxcdTkwNzJcXHU3NkY0XFx1N0ExOVxcdTdBMzdcXHU3RTU0XFx1ODA3N1xcdTU1MDdcXHU1NUQ0XFx1NTg3NVxcdTYzMkZcXHU2NDIyXFx1NjY0OVxcdTY2NEJcXHU2ODZEXFx1Njk5QlxcdTZCODRcXHU2RDI1XFx1NkVCMVxcdTczQ0RcXHU3NDY4XFx1NzRBMVxcdTc1NUJcXHU3NUI5XFx1NzZFMVxcdTc3MUVcXHU3NzhCXFx1NzlFNlxcdTdFMDlcXHU3RTFEXFx1ODFGQlxcdTg1MkZcXHU4ODk3XFx1OEEzQVxcdThDRDFcXHU4RUVCXFx1OEZCMFxcdTkwMzJcXHU5M0FEXFx1OTY2M1xcdTk2NzNcXHU5NzA3XFx1NEY4NFxcdTUzRjFcXHU1OUVBXFx1NUFDOVxcdTVFMTlcXHU2ODRFXFx1NzRDNlxcdTc1QkVcXHU3OUU5XFx1N0E5MlxcdTgxQTNcXHU4NkVEXFx1OENFQVxcdThEQ0NcXHU4RkVEXFx1NjU5RlxcdTY3MTVcXHVGOUZEXFx1NTdGN1xcdTZGNTdcXHU3REREXFx1OEYyRlwiXSxcbiAgICAgIFtcImYzYTFcIiwgXCJcXHU5M0Y2XFx1OTZDNlxcdTVGQjVcXHU2MUYyXFx1NkY4NFxcdTRFMTRcXHU0Rjk4XFx1NTAxRlxcdTUzQzlcXHU1NURGXFx1NUQ2RlxcdTVERUVcXHU2QjIxXFx1NkI2NFxcdTc4Q0JcXHU3QjlBXFx1RjlGRVxcdThFNDlcXHU4RUNBXFx1OTA2RVxcdTYzNDlcXHU2NDNFXFx1Nzc0MFxcdTdBODRcXHU5MzJGXFx1OTQ3RlxcdTlGNkFcXHU2NEIwXFx1NkZBRlxcdTcxRTZcXHU3NEE4XFx1NzREQVxcdTdBQzRcXHU3QzEyXFx1N0U4MlxcdTdDQjJcXHU3RTk4XFx1OEI5QVxcdThEMEFcXHU5NDdEXFx1OTkxMFxcdTk5NENcXHU1MjM5XFx1NUJERlxcdTY0RTZcXHU2NzJEXFx1N0QyRVxcdTUwRURcXHU1M0MzXFx1NTg3OVxcdTYxNThcXHU2MTU5XFx1NjFGQVxcdTY1QUNcXHU3QUQ5XFx1OEI5MlxcdThCOTZcXHU1MDA5XFx1NTAyMVxcdTUyNzVcXHU1NTMxXFx1NUEzQ1xcdTVFRTBcXHU1RjcwXFx1NjEzNFxcdTY1NUVcXHU2NjBDXFx1NjYzNlxcdTY2QTJcXHU2OUNEXFx1NkVDNFxcdTZGMzJcXHU3MzE2XFx1NzYyMVxcdTdBOTNcXHU4MTM5XFx1ODI1OVxcdTgzRDZcXHU4NEJDXFx1NTBCNVxcdTU3RjBcXHU1QkMwXFx1NUJFOFxcdTVGNjlcXHU2M0ExXFx1NzgyNlxcdTdEQjVcXHU4M0RDXFx1ODUyMVxcdTkxQzdcXHU5MUY1XFx1NTE4QVxcdTY3RjVcXHU3QjU2XCJdLFxuICAgICAgW1wiZjRhMVwiLCBcIlxcdThDQUNcXHU1MUM0XFx1NTlCQlxcdTYwQkRcXHU4NjU1XFx1NTAxQ1xcdUY5RkZcXHU1MjU0XFx1NUMzQVxcdTYxN0RcXHU2MjFBXFx1NjJEM1xcdTY0RjJcXHU2NUE1XFx1NkVDQ1xcdTc2MjBcXHU4MTBBXFx1OEU2MFxcdTk2NUZcXHU5NkJCXFx1NEVERlxcdTUzNDNcXHU1NTk4XFx1NTkyOVxcdTVERERcXHU2NEM1XFx1NkNDOVxcdTZERkFcXHU3Mzk0XFx1N0E3RlxcdTgyMUJcXHU4NUE2XFx1OENFNFxcdThFMTBcXHU5MDc3XFx1OTFFN1xcdTk1RTFcXHU5NjIxXFx1OTdDNlxcdTUxRjhcXHU1NEYyXFx1NTU4NlxcdTVGQjlcXHU2NEE0XFx1NkY4OFxcdTdEQjRcXHU4RjFGXFx1OEY0RFxcdTk0MzVcXHU1MEM5XFx1NUMxNlxcdTZDQkVcXHU2REZCXFx1NzUxQlxcdTc3QkJcXHU3QzNEXFx1N0M2NFxcdThBNzlcXHU4QUMyXFx1NTgxRVxcdTU5QkVcXHU1RTE2XFx1NjM3N1xcdTcyNTJcXHU3NThBXFx1Nzc2QlxcdThBRENcXHU4Q0JDXFx1OEYxMlxcdTVFRjNcXHU2Njc0XFx1NkRGOFxcdTgwN0RcXHU4M0MxXFx1OEFDQlxcdTk3NTFcXHU5QkQ2XFx1RkEwMFxcdTUyNDNcXHU2NkZGXFx1NkQ5NVxcdTZFRUZcXHU3REUwXFx1OEFFNlxcdTkwMkVcXHU5MDVFXFx1OUFENFxcdTUyMURcXHU1MjdGXFx1NTRFOFxcdTYxOTRcXHU2Mjg0XFx1NjJEQlxcdTY4QTJcIl0sXG4gICAgICBbXCJmNWExXCIsIFwiXFx1NjkxMlxcdTY5NUFcXHU2QTM1XFx1NzA5MlxcdTcxMjZcXHU3ODVEXFx1NzkwMVxcdTc5MEVcXHU3OUQyXFx1N0EwRFxcdTgwOTZcXHU4Mjc4XFx1ODJENVxcdTgzNDlcXHU4NTQ5XFx1OEM4MlxcdThEODVcXHU5MTYyXFx1OTE4QlxcdTkxQUVcXHU0RkMzXFx1NTZEMVxcdTcxRURcXHU3N0Q3XFx1ODcwMFxcdTg5RjhcXHU1QkY4XFx1NUZENlxcdTY3NTFcXHU5MEE4XFx1NTNFMlxcdTU4NUFcXHU1QkY1XFx1NjBBNFxcdTYxODFcXHU2NDYwXFx1N0UzRFxcdTgwNzBcXHU4NTI1XFx1OTI4M1xcdTY0QUVcXHU1MEFDXFx1NUQxNFxcdTY3MDBcXHU1ODlDXFx1NjJCRFxcdTYzQThcXHU2OTBFXFx1Njk3OFxcdTZBMUVcXHU2RTZCXFx1NzZCQVxcdTc5Q0JcXHU4MkJCXFx1ODQyOVxcdThBQ0ZcXHU4REE4XFx1OEZGRFxcdTkxMTJcXHU5MTRCXFx1OTE5Q1xcdTkzMTBcXHU5MzE4XFx1OTM5QVxcdTk2REJcXHU5QTM2XFx1OUMwRFxcdTRFMTFcXHU3NTVDXFx1Nzk1RFxcdTdBRkFcXHU3QjUxXFx1N0JDOVxcdTdFMkVcXHU4NEM0XFx1OEU1OVxcdThFNzRcXHU4RUY4XFx1OTAxMFxcdTY2MjVcXHU2OTNGXFx1NzQ0M1xcdTUxRkFcXHU2NzJFXFx1OUVEQ1xcdTUxNDVcXHU1RkUwXFx1NkM5NlxcdTg3RjJcXHU4ODVEXFx1ODg3N1xcdTYwQjRcXHU4MUI1XFx1ODQwM1wiXSxcbiAgICAgIFtcImY2YTFcIiwgXCJcXHU4RDA1XFx1NTNENlxcdTU0MzlcXHU1NjM0XFx1NUEzNlxcdTVDMzFcXHU3MDhBXFx1N0ZFMFxcdTgwNUFcXHU4MTA2XFx1ODFFRFxcdThEQTNcXHU5MTg5XFx1OUE1RlxcdTlERjJcXHU1MDc0XFx1NEVDNFxcdTUzQTBcXHU2MEZCXFx1NkUyQ1xcdTVDNjRcXHU0Rjg4XFx1NTAyNFxcdTU1RTRcXHU1Q0Q5XFx1NUU1RlxcdTYwNjVcXHU2ODk0XFx1NkNCQlxcdTZEQzRcXHU3MUJFXFx1NzVENFxcdTc1RjRcXHU3NjYxXFx1N0ExQVxcdTdBNDlcXHU3REM3XFx1N0RGQlxcdTdGNkVcXHU4MUY0XFx1ODZBOVxcdThGMUNcXHU5NkM5XFx1OTlCM1xcdTlGNTJcXHU1MjQ3XFx1NTJDNVxcdTk4RURcXHU4OUFBXFx1NEUwM1xcdTY3RDJcXHU2RjA2XFx1NEZCNVxcdTVCRTJcXHU2Nzk1XFx1NkM4OFxcdTZENzhcXHU3NDFCXFx1NzgyN1xcdTkxRERcXHU5MzdDXFx1ODdDNFxcdTc5RTRcXHU3QTMxXFx1NUZFQlxcdTRFRDZcXHU1NEE0XFx1NTUzRVxcdTU4QUVcXHU1OUE1XFx1NjBGMFxcdTYyNTNcXHU2MkQ2XFx1NjczNlxcdTY5NTVcXHU4MjM1XFx1OTY0MFxcdTk5QjFcXHU5OUREXFx1NTAyQ1xcdTUzNTNcXHU1NTQ0XFx1NTc3Q1xcdUZBMDFcXHU2MjU4XFx1RkEwMlxcdTY0RTJcXHU2NjZCXFx1NjdERFxcdTZGQzFcXHU2RkVGXFx1NzQyMlxcdTc0MzhcXHU4QTE3XCJdLFxuICAgICAgW1wiZjdhMVwiLCBcIlxcdTk0MzhcXHU1NDUxXFx1NTYwNlxcdTU3NjZcXHU1RjQ4XFx1NjE5QVxcdTZCNEVcXHU3MDU4XFx1NzBBRFxcdTdEQkJcXHU4QTk1XFx1NTk2QVxcdTgxMkJcXHU2M0EyXFx1NzcwOFxcdTgwM0RcXHU4Q0FBXFx1NTg1NFxcdTY0MkRcXHU2OUJCXFx1NUI5NVxcdTVFMTFcXHU2RTZGXFx1RkEwM1xcdTg1NjlcXHU1MTRDXFx1NTNGMFxcdTU5MkFcXHU2MDIwXFx1NjE0QlxcdTZCODZcXHU2QzcwXFx1NkNGMFxcdTdCMUVcXHU4MENFXFx1ODJENFxcdThEQzZcXHU5MEIwXFx1OThCMVxcdUZBMDRcXHU2NEM3XFx1NkZBNFxcdTY0OTFcXHU2NTA0XFx1NTE0RVxcdTU0MTBcXHU1NzFGXFx1OEEwRVxcdTYxNUZcXHU2ODc2XFx1RkEwNVxcdTc1REJcXHU3QjUyXFx1N0Q3MVxcdTkwMUFcXHU1ODA2XFx1NjlDQ1xcdTgxN0ZcXHU4OTJBXFx1OTAwMFxcdTk4MzlcXHU1MDc4XFx1NTk1N1xcdTU5QUNcXHU2Mjk1XFx1OTAwRlxcdTlCMkFcXHU2MTVEXFx1NzI3OVxcdTk1RDZcXHU1NzYxXFx1NUE0NlxcdTVERjRcXHU2MjhBXFx1NjRBRFxcdTY0RkFcXHU2Nzc3XFx1NkNFMlxcdTZEM0VcXHU3MjJDXFx1NzQzNlxcdTc4MzRcXHU3Rjc3XFx1ODJBRFxcdThEREJcXHU5ODE3XFx1NTIyNFxcdTU3NDJcXHU2NzdGXFx1NzI0OFxcdTc0RTNcXHU4Q0E5XFx1OEZBNlxcdTkyMTFcIl0sXG4gICAgICBbXCJmOGExXCIsIFwiXFx1OTYyQVxcdTUxNkJcXHU1M0VEXFx1NjM0Q1xcdTRGNjlcXHU1NTA0XFx1NjA5NlxcdTY1NTdcXHU2QzlCXFx1NkQ3RlxcdTcyNENcXHU3MkZEXFx1N0ExN1xcdTg5ODdcXHU4QzlEXFx1NUY2RFxcdTZGOEVcXHU3MEY5XFx1ODFBOFxcdTYxMEVcXHU0RkJGXFx1NTA0RlxcdTYyNDFcXHU3MjQ3XFx1N0JDN1xcdTdERThcXHU3RkU5XFx1OTA0RFxcdTk3QURcXHU5QTE5XFx1OENCNlxcdTU3NkFcXHU1RTczXFx1NjdCMFxcdTg0MERcXHU4QTU1XFx1NTQyMFxcdTVCMTZcXHU1RTYzXFx1NUVFMlxcdTVGMEFcXHU2NTgzXFx1ODBCQVxcdTg1M0RcXHU5NTg5XFx1OTY1QlxcdTRGNDhcXHU1MzA1XFx1NTMwRFxcdTUzMEZcXHU1NDg2XFx1NTRGQVxcdTU3MDNcXHU1RTAzXFx1NjAxNlxcdTYyOUJcXHU2MkIxXFx1NjM1NVxcdUZBMDZcXHU2Q0UxXFx1NkQ2NlxcdTc1QjFcXHU3ODMyXFx1ODBERVxcdTgxMkZcXHU4MkRFXFx1ODQ2MVxcdTg0QjJcXHU4ODhEXFx1ODkxMlxcdTkwMEJcXHU5MkVBXFx1OThGRFxcdTlCOTFcXHU1RTQ1XFx1NjZCNFxcdTY2RERcXHU3MDExXFx1NzIwNlxcdUZBMDdcXHU0RkY1XFx1NTI3RFxcdTVGNkFcXHU2MTUzXFx1Njc1M1xcdTZBMTlcXHU2RjAyXFx1NzRFMlxcdTc5NjhcXHU4ODY4XFx1OEM3OVxcdTk4QzdcXHU5OEM0XFx1OUE0M1wiXSxcbiAgICAgIFtcImY5YTFcIiwgXCJcXHU1NEMxXFx1N0ExRlxcdTY5NTNcXHU4QUY3XFx1OEM0QVxcdTk4QThcXHU5OUFFXFx1NUY3Q1xcdTYyQUJcXHU3NUIyXFx1NzZBRVxcdTg4QUJcXHU5MDdGXFx1OTY0MlxcdTUzMzlcXHU1RjNDXFx1NUZDNVxcdTZDQ0NcXHU3M0NDXFx1NzU2MlxcdTc1OEJcXHU3QjQ2XFx1ODJGRVxcdTk5OURcXHU0RTRGXFx1OTAzQ1xcdTRFMEJcXHU0RjU1XFx1NTNBNlxcdTU5MEZcXHU1RUM4XFx1NjYzMFxcdTZDQjNcXHU3NDU1XFx1ODM3N1xcdTg3NjZcXHU4Q0MwXFx1OTA1MFxcdTk3MUVcXHU5QzE1XFx1NThEMVxcdTVCNzhcXHU4NjUwXFx1OEIxNFxcdTlEQjRcXHU1QkQyXFx1NjA2OFxcdTYwOERcXHU2NUYxXFx1NkM1N1xcdTZGMjJcXHU2RkEzXFx1NzAxQVxcdTdGNTVcXHU3RkYwXFx1OTU5MVxcdTk1OTJcXHU5NjUwXFx1OTdEM1xcdTUyNzJcXHU4RjQ0XFx1NTFGRFxcdTU0MkJcXHU1NEI4XFx1NTU2M1xcdTU1OEFcXHU2QUJCXFx1NkRCNVxcdTdERDhcXHU4MjY2XFx1OTI5Q1xcdTk2NzdcXHU5RTc5XFx1NTQwOFxcdTU0QzhcXHU3NkQyXFx1ODZFNFxcdTk1QTRcXHU5NUQ0XFx1OTY1Q1xcdTRFQTJcXHU0RjA5XFx1NTlFRVxcdTVBRTZcXHU1REY3XFx1NjA1MlxcdTYyOTdcXHU2NzZEXFx1Njg0MVxcdTZDODZcXHU2RTJGXFx1N0YzOFxcdTgwOUJcXHU4MjJBXCJdLFxuICAgICAgW1wiZmFhMVwiLCBcIlxcdUZBMDhcXHVGQTA5XFx1OTgwNVxcdTRFQTVcXHU1MDU1XFx1NTRCM1xcdTU3OTNcXHU1OTVBXFx1NUI2OVxcdTVCQjNcXHU2MUM4XFx1Njk3N1xcdTZENzdcXHU3MDIzXFx1ODdGOVxcdTg5RTNcXHU4QTcyXFx1OEFFN1xcdTkwODJcXHU5OUVEXFx1OUFCOFxcdTUyQkVcXHU2ODM4XFx1NTAxNlxcdTVFNzhcXHU2NzRGXFx1ODM0N1xcdTg4NENcXHU0RUFCXFx1NTQxMVxcdTU2QUVcXHU3M0U2XFx1OTExNVxcdTk3RkZcXHU5OTA5XFx1OTk1N1xcdTk5OTlcXHU1NjUzXFx1NTg5RlxcdTg2NUJcXHU4QTMxXFx1NjFCMlxcdTZBRjZcXHU3MzdCXFx1OEVEMlxcdTZCNDdcXHU5NkFBXFx1OUE1N1xcdTU5NTVcXHU3MjAwXFx1OEQ2QlxcdTk3NjlcXHU0RkQ0XFx1NUNGNFxcdTVGMjZcXHU2MUY4XFx1NjY1QlxcdTZDRUJcXHU3MEFCXFx1NzM4NFxcdTczQjlcXHU3M0ZFXFx1NzcyOVxcdTc3NERcXHU3RDQzXFx1N0Q2MlxcdTdFMjNcXHU4MjM3XFx1ODg1MlxcdUZBMEFcXHU4Q0UyXFx1OTI0OVxcdTk4NkZcXHU1QjUxXFx1N0E3NFxcdTg4NDBcXHU5ODAxXFx1NUFDQ1xcdTRGRTBcXHU1MzU0XFx1NTkzRVxcdTVDRkRcXHU2MzNFXFx1NkQ3OVxcdTcyRjlcXHU4MTA1XFx1ODEwN1xcdTgzQTJcXHU5MkNGXFx1OTgzMFxcdTRFQThcXHU1MTQ0XFx1NTIxMVxcdTU3OEJcIl0sXG4gICAgICBbXCJmYmExXCIsIFwiXFx1NUY2MlxcdTZDQzJcXHU2RUNFXFx1NzAwNVxcdTcwNTBcXHU3MEFGXFx1NzE5MlxcdTczRTlcXHU3NDY5XFx1ODM0QVxcdTg3QTJcXHU4ODYxXFx1OTAwOFxcdTkwQTJcXHU5M0EzXFx1OTlBOFxcdTUxNkVcXHU1RjU3XFx1NjBFMFxcdTYxNjdcXHU2NkIzXFx1ODU1OVxcdThFNEFcXHU5MUFGXFx1OTc4QlxcdTRFNEVcXHU0RTkyXFx1NTQ3Q1xcdTU4RDVcXHU1OEZBXFx1NTk3RFxcdTVDQjVcXHU1RjI3XFx1NjIzNlxcdTYyNDhcXHU2NjBBXFx1NjY2N1xcdTZCRUJcXHU2RDY5XFx1NkRDRlxcdTZFNTZcXHU2RUY4XFx1NkY5NFxcdTZGRTBcXHU2RkU5XFx1NzA1RFxcdTcyRDBcXHU3NDI1XFx1NzQ1QVxcdTc0RTBcXHU3NjkzXFx1Nzk1Q1xcdTdDQ0FcXHU3RTFFXFx1ODBFMVxcdTgyQTZcXHU4NDZCXFx1ODRCRlxcdTg2NEVcXHU4NjVGXFx1ODc3NFxcdThCNzdcXHU4QzZBXFx1OTNBQ1xcdTk4MDBcXHU5ODY1XFx1NjBEMVxcdTYyMTZcXHU5MTc3XFx1NUE1QVxcdTY2MEZcXHU2REY3XFx1NkUzRVxcdTc0M0ZcXHU5QjQyXFx1NUZGRFxcdTYwREFcXHU3QjBGXFx1NTRDNFxcdTVGMThcXHU2QzVFXFx1NkNEM1xcdTZEMkFcXHU3MEQ4XFx1N0QwNVxcdTg2NzlcXHU4QTBDXFx1OUQzQlxcdTUzMTZcXHU1NDhDXFx1NUIwNVxcdTZBM0FcXHU3MDZCXFx1NzU3NVwiXSxcbiAgICAgIFtcImZjYTFcIiwgXCJcXHU3OThEXFx1NzlCRVxcdTgyQjFcXHU4M0VGXFx1OEE3MVxcdThCNDFcXHU4Q0E4XFx1OTc3NFxcdUZBMEJcXHU2NEY0XFx1NjUyQlxcdTc4QkFcXHU3OEJCXFx1N0E2QlxcdTRFMzhcXHU1NTlBXFx1NTk1MFxcdTVCQTZcXHU1RTdCXFx1NjBBM1xcdTYzREJcXHU2QjYxXFx1NjY2NVxcdTY4NTNcXHU2RTE5XFx1NzE2NVxcdTc0QjBcXHU3RDA4XFx1OTA4NFxcdTlBNjlcXHU5QzI1XFx1NkQzQlxcdTZFRDFcXHU3MzNFXFx1OEM0MVxcdTk1Q0FcXHU1MUYwXFx1NUU0Q1xcdTVGQThcXHU2MDREXFx1NjBGNlxcdTYxMzBcXHU2MTRDXFx1NjY0M1xcdTY2NDRcXHU2OUE1XFx1NkNDMVxcdTZFNUZcXHU2RUM5XFx1NkY2MlxcdTcxNENcXHU3NDlDXFx1NzY4N1xcdTdCQzFcXHU3QzI3XFx1ODM1MlxcdTg3NTdcXHU5MDUxXFx1OTY4RFxcdTlFQzNcXHU1MzJGXFx1NTZERVxcdTVFRkJcXHU1RjhBXFx1NjA2MlxcdTYwOTRcXHU2MUY3XFx1NjY2NlxcdTY3MDNcXHU2QTlDXFx1NkRFRVxcdTZGQUVcXHU3MDcwXFx1NzM2QVxcdTdFNkFcXHU4MUJFXFx1ODMzNFxcdTg2RDRcXHU4QUE4XFx1OENDNFxcdTUyODNcXHU3MzcyXFx1NUI5NlxcdTZBNkJcXHU5NDA0XFx1NTRFRVxcdTU2ODZcXHU1QjVEXFx1NjU0OFxcdTY1ODVcXHU2NkM5XFx1Njg5RlxcdTZEOERcXHU2REM2XCJdLFxuICAgICAgW1wiZmRhMVwiLCBcIlxcdTcyM0JcXHU4MEI0XFx1OTE3NVxcdTlBNERcXHU0RkFGXFx1NTAxOVxcdTUzOUFcXHU1NDBFXFx1NTQzQ1xcdTU1ODlcXHU1NUM1XFx1NUUzRlxcdTVGOENcXHU2NzNEXFx1NzE2NlxcdTczRERcXHU5MDA1XFx1NTJEQlxcdTUyRjNcXHU1ODY0XFx1NThDRVxcdTcxMDRcXHU3MThGXFx1NzFGQlxcdTg1QjBcXHU4QTEzXFx1NjY4OFxcdTg1QThcXHU1NUE3XFx1NjY4NFxcdTcxNEFcXHU4NDMxXFx1NTM0OVxcdTU1OTlcXHU2QkMxXFx1NUY1OVxcdTVGQkRcXHU2M0VFXFx1NjY4OVxcdTcxNDdcXHU4QUYxXFx1OEYxRFxcdTlFQkVcXHU0RjExXFx1NjQzQVxcdTcwQ0JcXHU3NTY2XFx1ODY2N1xcdTYwNjRcXHU4QjRFXFx1OURGOFxcdTUxNDdcXHU1MUY2XFx1NTMwOFxcdTZEMzZcXHU4MEY4XFx1OUVEMVxcdTY2MTVcXHU2QjIzXFx1NzA5OFxcdTc1RDVcXHU1NDAzXFx1NUM3OVxcdTdEMDdcXHU4QTE2XFx1NkIyMFxcdTZCM0RcXHU2QjQ2XFx1NTQzOFxcdTYwNzBcXHU2RDNEXFx1N0ZENVxcdTgyMDhcXHU1MEQ2XFx1NTFERVxcdTU1OUNcXHU1NjZCXFx1NTZDRFxcdTU5RUNcXHU1QjA5XFx1NUUwQ1xcdTYxOTlcXHU2MTk4XFx1NjIzMVxcdTY2NUVcXHU2NkU2XFx1NzE5OVxcdTcxQjlcXHU3MUJBXFx1NzJBN1xcdTc5QTdcXHU3QTAwXFx1N0ZCMlxcdThBNzBcIl1cbiAgICBdO1xuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL2JvZHktcGFyc2VyL25vZGVfbW9kdWxlcy9pY29udi1saXRlL2VuY29kaW5ncy90YWJsZXMvY3A5NTAuanNvblxudmFyIHJlcXVpcmVfY3A5NTAyID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL2JvZHktcGFyc2VyL25vZGVfbW9kdWxlcy9pY29udi1saXRlL2VuY29kaW5ncy90YWJsZXMvY3A5NTAuanNvblwiKGV4cG9ydHMyLCBtb2R1bGUyKSB7XG4gICAgbW9kdWxlMi5leHBvcnRzID0gW1xuICAgICAgW1wiMFwiLCBcIlxcMFwiLCAxMjddLFxuICAgICAgW1wiYTE0MFwiLCBcIlxcdTMwMDBcXHVGRjBDXFx1MzAwMVxcdTMwMDJcXHVGRjBFXFx1MjAyN1xcdUZGMUJcXHVGRjFBXFx1RkYxRlxcdUZGMDFcXHVGRTMwXFx1MjAyNlxcdTIwMjVcXHVGRTUwXFx1RkU1MVxcdUZFNTJcXHhCN1xcdUZFNTRcXHVGRTU1XFx1RkU1NlxcdUZFNTdcXHVGRjVDXFx1MjAxM1xcdUZFMzFcXHUyMDE0XFx1RkUzM1xcdTI1NzRcXHVGRTM0XFx1RkU0RlxcdUZGMDhcXHVGRjA5XFx1RkUzNVxcdUZFMzZcXHVGRjVCXFx1RkY1RFxcdUZFMzdcXHVGRTM4XFx1MzAxNFxcdTMwMTVcXHVGRTM5XFx1RkUzQVxcdTMwMTBcXHUzMDExXFx1RkUzQlxcdUZFM0NcXHUzMDBBXFx1MzAwQlxcdUZFM0RcXHVGRTNFXFx1MzAwOFxcdTMwMDlcXHVGRTNGXFx1RkU0MFxcdTMwMENcXHUzMDBEXFx1RkU0MVxcdUZFNDJcXHUzMDBFXFx1MzAwRlxcdUZFNDNcXHVGRTQ0XFx1RkU1OVxcdUZFNUFcIl0sXG4gICAgICBbXCJhMWExXCIsIFwiXFx1RkU1QlxcdUZFNUNcXHVGRTVEXFx1RkU1RVxcdTIwMThcXHUyMDE5XFx1MjAxQ1xcdTIwMURcXHUzMDFEXFx1MzAxRVxcdTIwMzVcXHUyMDMyXFx1RkYwM1xcdUZGMDZcXHVGRjBBXFx1MjAzQlxceEE3XFx1MzAwM1xcdTI1Q0JcXHUyNUNGXFx1MjVCM1xcdTI1QjJcXHUyNUNFXFx1MjYwNlxcdTI2MDVcXHUyNUM3XFx1MjVDNlxcdTI1QTFcXHUyNUEwXFx1MjVCRFxcdTI1QkNcXHUzMkEzXFx1MjEwNVxceEFGXFx1RkZFM1xcdUZGM0ZcXHUwMkNEXFx1RkU0OVxcdUZFNEFcXHVGRTREXFx1RkU0RVxcdUZFNEJcXHVGRTRDXFx1RkU1RlxcdUZFNjBcXHVGRTYxXFx1RkYwQlxcdUZGMERcXHhEN1xceEY3XFx4QjFcXHUyMjFBXFx1RkYxQ1xcdUZGMUVcXHVGRjFEXFx1MjI2NlxcdTIyNjdcXHUyMjYwXFx1MjIxRVxcdTIyNTJcXHUyMjYxXFx1RkU2MlwiLCA0LCBcIlxcdUZGNUVcXHUyMjI5XFx1MjIyQVxcdTIyQTVcXHUyMjIwXFx1MjIxRlxcdTIyQkZcXHUzM0QyXFx1MzNEMVxcdTIyMkJcXHUyMjJFXFx1MjIzNVxcdTIyMzRcXHUyNjQwXFx1MjY0MlxcdTIyOTVcXHUyMjk5XFx1MjE5MVxcdTIxOTNcXHUyMTkwXFx1MjE5MlxcdTIxOTZcXHUyMTk3XFx1MjE5OVxcdTIxOThcXHUyMjI1XFx1MjIyM1xcdUZGMEZcIl0sXG4gICAgICBbXCJhMjQwXCIsIFwiXFx1RkYzQ1xcdTIyMTVcXHVGRTY4XFx1RkYwNFxcdUZGRTVcXHUzMDEyXFx1RkZFMFxcdUZGRTFcXHVGRjA1XFx1RkYyMFxcdTIxMDNcXHUyMTA5XFx1RkU2OVxcdUZFNkFcXHVGRTZCXFx1MzNENVxcdTMzOUNcXHUzMzlEXFx1MzM5RVxcdTMzQ0VcXHUzM0ExXFx1MzM4RVxcdTMzOEZcXHUzM0M0XFx4QjBcXHU1MTU5XFx1NTE1QlxcdTUxNUVcXHU1MTVEXFx1NTE2MVxcdTUxNjNcXHU1NUU3XFx1NzRFOVxcdTdDQ0VcXHUyNTgxXCIsIDcsIFwiXFx1MjU4RlxcdTI1OEVcXHUyNThEXFx1MjU4Q1xcdTI1OEJcXHUyNThBXFx1MjU4OVxcdTI1M0NcXHUyNTM0XFx1MjUyQ1xcdTI1MjRcXHUyNTFDXFx1MjU5NFxcdTI1MDBcXHUyNTAyXFx1MjU5NVxcdTI1MENcXHUyNTEwXFx1MjUxNFxcdTI1MThcXHUyNTZEXCJdLFxuICAgICAgW1wiYTJhMVwiLCBcIlxcdTI1NkVcXHUyNTcwXFx1MjU2RlxcdTI1NTBcXHUyNTVFXFx1MjU2QVxcdTI1NjFcXHUyNUUyXFx1MjVFM1xcdTI1RTVcXHUyNUU0XFx1MjU3MVxcdTI1NzJcXHUyNTczXFx1RkYxMFwiLCA5LCBcIlxcdTIxNjBcIiwgOSwgXCJcXHUzMDIxXCIsIDgsIFwiXFx1NTM0MVxcdTUzNDRcXHU1MzQ1XFx1RkYyMVwiLCAyNSwgXCJcXHVGRjQxXCIsIDIxXSxcbiAgICAgIFtcImEzNDBcIiwgXCJcXHVGRjU3XFx1RkY1OFxcdUZGNTlcXHVGRjVBXFx1MDM5MVwiLCAxNiwgXCJcXHUwM0EzXCIsIDYsIFwiXFx1MDNCMVwiLCAxNiwgXCJcXHUwM0MzXCIsIDYsIFwiXFx1MzEwNVwiLCAxMF0sXG4gICAgICBbXCJhM2ExXCIsIFwiXFx1MzExMFwiLCAyNSwgXCJcXHUwMkQ5XFx1MDJDOVxcdTAyQ0FcXHUwMkM3XFx1MDJDQlwiXSxcbiAgICAgIFtcImEzZTFcIiwgXCJcXHUyMEFDXCJdLFxuICAgICAgW1wiYTQ0MFwiLCBcIlxcdTRFMDBcXHU0RTU5XFx1NEUwMVxcdTRFMDNcXHU0RTQzXFx1NEU1RFxcdTRFODZcXHU0RThDXFx1NEVCQVxcdTUxM0ZcXHU1MTY1XFx1NTE2QlxcdTUxRTBcXHU1MjAwXFx1NTIwMVxcdTUyOUJcXHU1MzE1XFx1NTM0MVxcdTUzNUNcXHU1M0M4XFx1NEUwOVxcdTRFMEJcXHU0RTA4XFx1NEUwQVxcdTRFMkJcXHU0RTM4XFx1NTFFMVxcdTRFNDVcXHU0RTQ4XFx1NEU1RlxcdTRFNUVcXHU0RThFXFx1NEVBMVxcdTUxNDBcXHU1MjAzXFx1NTJGQVxcdTUzNDNcXHU1M0M5XFx1NTNFM1xcdTU3MUZcXHU1OEVCXFx1NTkxNVxcdTU5MjdcXHU1OTczXFx1NUI1MFxcdTVCNTFcXHU1QjUzXFx1NUJGOFxcdTVDMEZcXHU1QzIyXFx1NUMzOFxcdTVDNzFcXHU1REREXFx1NURFNVxcdTVERjFcXHU1REYyXFx1NURGM1xcdTVERkVcXHU1RTcyXFx1NUVGRVxcdTVGMEJcXHU1RjEzXFx1NjI0RFwiXSxcbiAgICAgIFtcImE0YTFcIiwgXCJcXHU0RTExXFx1NEUxMFxcdTRFMERcXHU0RTJEXFx1NEUzMFxcdTRFMzlcXHU0RTRCXFx1NUMzOVxcdTRFODhcXHU0RTkxXFx1NEU5NVxcdTRFOTJcXHU0RTk0XFx1NEVBMlxcdTRFQzFcXHU0RUMwXFx1NEVDM1xcdTRFQzZcXHU0RUM3XFx1NEVDRFxcdTRFQ0FcXHU0RUNCXFx1NEVDNFxcdTUxNDNcXHU1MTQxXFx1NTE2N1xcdTUxNkRcXHU1MTZFXFx1NTE2Q1xcdTUxOTdcXHU1MUY2XFx1NTIwNlxcdTUyMDdcXHU1MjA4XFx1NTJGQlxcdTUyRkVcXHU1MkZGXFx1NTMxNlxcdTUzMzlcXHU1MzQ4XFx1NTM0N1xcdTUzNDVcXHU1MzVFXFx1NTM4NFxcdTUzQ0JcXHU1M0NBXFx1NTNDRFxcdTU4RUNcXHU1OTI5XFx1NTkyQlxcdTU5MkFcXHU1OTJEXFx1NUI1NFxcdTVDMTFcXHU1QzI0XFx1NUMzQVxcdTVDNkZcXHU1REY0XFx1NUU3QlxcdTVFRkZcXHU1RjE0XFx1NUYxNVxcdTVGQzNcXHU2MjA4XFx1NjIzNlxcdTYyNEJcXHU2MjRFXFx1NjUyRlxcdTY1ODdcXHU2NTk3XFx1NjVBNFxcdTY1QjlcXHU2NUU1XFx1NjZGMFxcdTY3MDhcXHU2NzI4XFx1NkIyMFxcdTZCNjJcXHU2Qjc5XFx1NkJDQlxcdTZCRDRcXHU2QkRCXFx1NkMwRlxcdTZDMzRcXHU3MDZCXFx1NzIyQVxcdTcyMzZcXHU3MjNCXFx1NzI0N1xcdTcyNTlcXHU3MjVCXFx1NzJBQ1xcdTczOEJcXHU0RTE5XCJdLFxuICAgICAgW1wiYTU0MFwiLCBcIlxcdTRFMTZcXHU0RTE1XFx1NEUxNFxcdTRFMThcXHU0RTNCXFx1NEU0RFxcdTRFNEZcXHU0RTRFXFx1NEVFNVxcdTRFRDhcXHU0RUQ0XFx1NEVENVxcdTRFRDZcXHU0RUQ3XFx1NEVFM1xcdTRFRTRcXHU0RUQ5XFx1NEVERVxcdTUxNDVcXHU1MTQ0XFx1NTE4OVxcdTUxOEFcXHU1MUFDXFx1NTFGOVxcdTUxRkFcXHU1MUY4XFx1NTIwQVxcdTUyQTBcXHU1MjlGXFx1NTMwNVxcdTUzMDZcXHU1MzE3XFx1NTMxRFxcdTRFREZcXHU1MzRBXFx1NTM0OVxcdTUzNjFcXHU1MzYwXFx1NTM2RlxcdTUzNkVcXHU1M0JCXFx1NTNFRlxcdTUzRTRcXHU1M0YzXFx1NTNFQ1xcdTUzRUVcXHU1M0U5XFx1NTNFOFxcdTUzRkNcXHU1M0Y4XFx1NTNGNVxcdTUzRUJcXHU1M0U2XFx1NTNFQVxcdTUzRjJcXHU1M0YxXFx1NTNGMFxcdTUzRTVcXHU1M0VEXFx1NTNGQlxcdTU2REJcXHU1NkRBXFx1NTkxNlwiXSxcbiAgICAgIFtcImE1YTFcIiwgXCJcXHU1OTJFXFx1NTkzMVxcdTU5NzRcXHU1OTc2XFx1NUI1NVxcdTVCODNcXHU1QzNDXFx1NURFOFxcdTVERTdcXHU1REU2XFx1NUUwMlxcdTVFMDNcXHU1RTczXFx1NUU3Q1xcdTVGMDFcXHU1RjE4XFx1NUYxN1xcdTVGQzVcXHU2MjBBXFx1NjI1M1xcdTYyNTRcXHU2MjUyXFx1NjI1MVxcdTY1QTVcXHU2NUU2XFx1NjcyRVxcdTY3MkNcXHU2NzJBXFx1NjcyQlxcdTY3MkRcXHU2QjYzXFx1NkJDRFxcdTZDMTFcXHU2QzEwXFx1NkMzOFxcdTZDNDFcXHU2QzQwXFx1NkMzRVxcdTcyQUZcXHU3Mzg0XFx1NzM4OVxcdTc0RENcXHU3NEU2XFx1NzUxOFxcdTc1MUZcXHU3NTI4XFx1NzUyOVxcdTc1MzBcXHU3NTMxXFx1NzUzMlxcdTc1MzNcXHU3NThCXFx1NzY3RFxcdTc2QUVcXHU3NkJGXFx1NzZFRVxcdTc3REJcXHU3N0UyXFx1NzdGM1xcdTc5M0FcXHU3OUJFXFx1N0E3NFxcdTdBQ0JcXHU0RTFFXFx1NEUxRlxcdTRFNTJcXHU0RTUzXFx1NEU2OVxcdTRFOTlcXHU0RUE0XFx1NEVBNlxcdTRFQTVcXHU0RUZGXFx1NEYwOVxcdTRGMTlcXHU0RjBBXFx1NEYxNVxcdTRGMERcXHU0RjEwXFx1NEYxMVxcdTRGMEZcXHU0RUYyXFx1NEVGNlxcdTRFRkJcXHU0RUYwXFx1NEVGM1xcdTRFRkRcXHU0RjAxXFx1NEYwQlxcdTUxNDlcXHU1MTQ3XFx1NTE0NlxcdTUxNDhcXHU1MTY4XCJdLFxuICAgICAgW1wiYTY0MFwiLCBcIlxcdTUxNzFcXHU1MThEXFx1NTFCMFxcdTUyMTdcXHU1MjExXFx1NTIxMlxcdTUyMEVcXHU1MjE2XFx1NTJBM1xcdTUzMDhcXHU1MzIxXFx1NTMyMFxcdTUzNzBcXHU1MzcxXFx1NTQwOVxcdTU0MEZcXHU1NDBDXFx1NTQwQVxcdTU0MTBcXHU1NDAxXFx1NTQwQlxcdTU0MDRcXHU1NDExXFx1NTQwRFxcdTU0MDhcXHU1NDAzXFx1NTQwRVxcdTU0MDZcXHU1NDEyXFx1NTZFMFxcdTU2REVcXHU1NkREXFx1NTczM1xcdTU3MzBcXHU1NzI4XFx1NTcyRFxcdTU3MkNcXHU1NzJGXFx1NTcyOVxcdTU5MTlcXHU1OTFBXFx1NTkzN1xcdTU5MzhcXHU1OTg0XFx1NTk3OFxcdTU5ODNcXHU1OTdEXFx1NTk3OVxcdTU5ODJcXHU1OTgxXFx1NUI1N1xcdTVCNThcXHU1Qjg3XFx1NUI4OFxcdTVCODVcXHU1Qjg5XFx1NUJGQVxcdTVDMTZcXHU1Qzc5XFx1NURERVxcdTVFMDZcXHU1RTc2XFx1NUU3NFwiXSxcbiAgICAgIFtcImE2YTFcIiwgXCJcXHU1RjBGXFx1NUYxQlxcdTVGRDlcXHU1RkQ2XFx1NjIwRVxcdTYyMENcXHU2MjBEXFx1NjIxMFxcdTYyNjNcXHU2MjVCXFx1NjI1OFxcdTY1MzZcXHU2NUU5XFx1NjVFOFxcdTY1RUNcXHU2NUVEXFx1NjZGMlxcdTY2RjNcXHU2NzA5XFx1NjczRFxcdTY3MzRcXHU2NzMxXFx1NjczNVxcdTZCMjFcXHU2QjY0XFx1NkI3QlxcdTZDMTZcXHU2QzVEXFx1NkM1N1xcdTZDNTlcXHU2QzVGXFx1NkM2MFxcdTZDNTBcXHU2QzU1XFx1NkM2MVxcdTZDNUJcXHU2QzREXFx1NkM0RVxcdTcwNzBcXHU3MjVGXFx1NzI1RFxcdTc2N0VcXHU3QUY5XFx1N0M3M1xcdTdDRjhcXHU3RjM2XFx1N0Y4QVxcdTdGQkRcXHU4MDAxXFx1ODAwM1xcdTgwMENcXHU4MDEyXFx1ODAzM1xcdTgwN0ZcXHU4MDg5XFx1ODA4QlxcdTgwOENcXHU4MUUzXFx1ODFFQVxcdTgxRjNcXHU4MUZDXFx1ODIwQ1xcdTgyMUJcXHU4MjFGXFx1ODI2RVxcdTgyNzJcXHU4MjdFXFx1ODY2QlxcdTg4NDBcXHU4ODRDXFx1ODg2M1xcdTg5N0ZcXHU5NjIxXFx1NEUzMlxcdTRFQThcXHU0RjREXFx1NEY0RlxcdTRGNDdcXHU0RjU3XFx1NEY1RVxcdTRGMzRcXHU0RjVCXFx1NEY1NVxcdTRGMzBcXHU0RjUwXFx1NEY1MVxcdTRGM0RcXHU0RjNBXFx1NEYzOFxcdTRGNDNcXHU0RjU0XFx1NEYzQ1xcdTRGNDZcXHU0RjYzXCJdLFxuICAgICAgW1wiYTc0MFwiLCBcIlxcdTRGNUNcXHU0RjYwXFx1NEYyRlxcdTRGNEVcXHU0RjM2XFx1NEY1OVxcdTRGNURcXHU0RjQ4XFx1NEY1QVxcdTUxNENcXHU1MTRCXFx1NTE0RFxcdTUxNzVcXHU1MUI2XFx1NTFCN1xcdTUyMjVcXHU1MjI0XFx1NTIyOVxcdTUyMkFcXHU1MjI4XFx1NTJBQlxcdTUyQTlcXHU1MkFBXFx1NTJBQ1xcdTUzMjNcXHU1MzczXFx1NTM3NVxcdTU0MURcXHU1NDJEXFx1NTQxRVxcdTU0M0VcXHU1NDI2XFx1NTQ0RVxcdTU0MjdcXHU1NDQ2XFx1NTQ0M1xcdTU0MzNcXHU1NDQ4XFx1NTQ0MlxcdTU0MUJcXHU1NDI5XFx1NTQ0QVxcdTU0MzlcXHU1NDNCXFx1NTQzOFxcdTU0MkVcXHU1NDM1XFx1NTQzNlxcdTU0MjBcXHU1NDNDXFx1NTQ0MFxcdTU0MzFcXHU1NDJCXFx1NTQxRlxcdTU0MkNcXHU1NkVBXFx1NTZGMFxcdTU2RTRcXHU1NkVCXFx1NTc0QVxcdTU3NTFcXHU1NzQwXFx1NTc0RFwiXSxcbiAgICAgIFtcImE3YTFcIiwgXCJcXHU1NzQ3XFx1NTc0RVxcdTU3M0VcXHU1NzUwXFx1NTc0RlxcdTU3M0JcXHU1OEVGXFx1NTkzRVxcdTU5OURcXHU1OTkyXFx1NTlBOFxcdTU5OUVcXHU1OUEzXFx1NTk5OVxcdTU5OTZcXHU1OThEXFx1NTlBNFxcdTU5OTNcXHU1OThBXFx1NTlBNVxcdTVCNURcXHU1QjVDXFx1NUI1QVxcdTVCNUJcXHU1QjhDXFx1NUI4QlxcdTVCOEZcXHU1QzJDXFx1NUM0MFxcdTVDNDFcXHU1QzNGXFx1NUMzRVxcdTVDOTBcXHU1QzkxXFx1NUM5NFxcdTVDOENcXHU1REVCXFx1NUUwQ1xcdTVFOEZcXHU1RTg3XFx1NUU4QVxcdTVFRjdcXHU1RjA0XFx1NUYxRlxcdTVGNjRcXHU1RjYyXFx1NUY3N1xcdTVGNzlcXHU1RkQ4XFx1NUZDQ1xcdTVGRDdcXHU1RkNEXFx1NUZGMVxcdTVGRUJcXHU1RkY4XFx1NUZFQVxcdTYyMTJcXHU2MjExXFx1NjI4NFxcdTYyOTdcXHU2Mjk2XFx1NjI4MFxcdTYyNzZcXHU2Mjg5XFx1NjI2RFxcdTYyOEFcXHU2MjdDXFx1NjI3RVxcdTYyNzlcXHU2MjczXFx1NjI5MlxcdTYyNkZcXHU2Mjk4XFx1NjI2RVxcdTYyOTVcXHU2MjkzXFx1NjI5MVxcdTYyODZcXHU2NTM5XFx1NjUzQlxcdTY1MzhcXHU2NUYxXFx1NjZGNFxcdTY3NUZcXHU2NzRFXFx1Njc0RlxcdTY3NTBcXHU2NzUxXFx1Njc1Q1xcdTY3NTZcXHU2NzVFXFx1Njc0OVxcdTY3NDZcXHU2NzYwXCJdLFxuICAgICAgW1wiYTg0MFwiLCBcIlxcdTY3NTNcXHU2NzU3XFx1NkI2NVxcdTZCQ0ZcXHU2QzQyXFx1NkM1RVxcdTZDOTlcXHU2QzgxXFx1NkM4OFxcdTZDODlcXHU2Qzg1XFx1NkM5QlxcdTZDNkFcXHU2QzdBXFx1NkM5MFxcdTZDNzBcXHU2QzhDXFx1NkM2OFxcdTZDOTZcXHU2QzkyXFx1NkM3RFxcdTZDODNcXHU2QzcyXFx1NkM3RVxcdTZDNzRcXHU2Qzg2XFx1NkM3NlxcdTZDOERcXHU2Qzk0XFx1NkM5OFxcdTZDODJcXHU3MDc2XFx1NzA3Q1xcdTcwN0RcXHU3MDc4XFx1NzI2MlxcdTcyNjFcXHU3MjYwXFx1NzJDNFxcdTcyQzJcXHU3Mzk2XFx1NzUyQ1xcdTc1MkJcXHU3NTM3XFx1NzUzOFxcdTc2ODJcXHU3NkVGXFx1NzdFM1xcdTc5QzFcXHU3OUMwXFx1NzlCRlxcdTdBNzZcXHU3Q0ZCXFx1N0Y1NVxcdTgwOTZcXHU4MDkzXFx1ODA5RFxcdTgwOThcXHU4MDlCXFx1ODA5QVxcdTgwQjJcXHU4MjZGXFx1ODI5MlwiXSxcbiAgICAgIFtcImE4YTFcIiwgXCJcXHU4MjhCXFx1ODI4RFxcdTg5OEJcXHU4OUQyXFx1OEEwMFxcdThDMzdcXHU4QzQ2XFx1OEM1NVxcdThDOURcXHU4RDY0XFx1OEQ3MFxcdThEQjNcXHU4RUFCXFx1OEVDQVxcdThGOUJcXHU4RkIwXFx1OEZDMlxcdThGQzZcXHU4RkM1XFx1OEZDNFxcdTVERTFcXHU5MDkxXFx1OTBBMlxcdTkwQUFcXHU5MEE2XFx1OTBBM1xcdTkxNDlcXHU5MUM2XFx1OTFDQ1xcdTk2MzJcXHU5NjJFXFx1OTYzMVxcdTk2MkFcXHU5NjJDXFx1NEUyNlxcdTRFNTZcXHU0RTczXFx1NEU4QlxcdTRFOUJcXHU0RTlFXFx1NEVBQlxcdTRFQUNcXHU0RjZGXFx1NEY5RFxcdTRGOERcXHU0RjczXFx1NEY3RlxcdTRGNkNcXHU0RjlCXFx1NEY4QlxcdTRGODZcXHU0RjgzXFx1NEY3MFxcdTRGNzVcXHU0Rjg4XFx1NEY2OVxcdTRGN0JcXHU0Rjk2XFx1NEY3RVxcdTRGOEZcXHU0RjkxXFx1NEY3QVxcdTUxNTRcXHU1MTUyXFx1NTE1NVxcdTUxNjlcXHU1MTc3XFx1NTE3NlxcdTUxNzhcXHU1MUJEXFx1NTFGRFxcdTUyM0JcXHU1MjM4XFx1NTIzN1xcdTUyM0FcXHU1MjMwXFx1NTIyRVxcdTUyMzZcXHU1MjQxXFx1NTJCRVxcdTUyQkJcXHU1MzUyXFx1NTM1NFxcdTUzNTNcXHU1MzUxXFx1NTM2NlxcdTUzNzdcXHU1Mzc4XFx1NTM3OVxcdTUzRDZcXHU1M0Q0XFx1NTNEN1xcdTU0NzNcXHU1NDc1XCJdLFxuICAgICAgW1wiYTk0MFwiLCBcIlxcdTU0OTZcXHU1NDc4XFx1NTQ5NVxcdTU0ODBcXHU1NDdCXFx1NTQ3N1xcdTU0ODRcXHU1NDkyXFx1NTQ4NlxcdTU0N0NcXHU1NDkwXFx1NTQ3MVxcdTU0NzZcXHU1NDhDXFx1NTQ5QVxcdTU0NjJcXHU1NDY4XFx1NTQ4QlxcdTU0N0RcXHU1NDhFXFx1NTZGQVxcdTU3ODNcXHU1Nzc3XFx1NTc2QVxcdTU3NjlcXHU1NzYxXFx1NTc2NlxcdTU3NjRcXHU1NzdDXFx1NTkxQ1xcdTU5NDlcXHU1OTQ3XFx1NTk0OFxcdTU5NDRcXHU1OTU0XFx1NTlCRVxcdTU5QkJcXHU1OUQ0XFx1NTlCOVxcdTU5QUVcXHU1OUQxXFx1NTlDNlxcdTU5RDBcXHU1OUNEXFx1NTlDQlxcdTU5RDNcXHU1OUNBXFx1NTlBRlxcdTU5QjNcXHU1OUQyXFx1NTlDNVxcdTVCNUZcXHU1QjY0XFx1NUI2M1xcdTVCOTdcXHU1QjlBXFx1NUI5OFxcdTVCOUNcXHU1Qjk5XFx1NUI5QlxcdTVDMUFcXHU1QzQ4XFx1NUM0NVwiXSxcbiAgICAgIFtcImE5YTFcIiwgXCJcXHU1QzQ2XFx1NUNCN1xcdTVDQTFcXHU1Q0I4XFx1NUNBOVxcdTVDQUJcXHU1Q0IxXFx1NUNCM1xcdTVFMThcXHU1RTFBXFx1NUUxNlxcdTVFMTVcXHU1RTFCXFx1NUUxMVxcdTVFNzhcXHU1RTlBXFx1NUU5N1xcdTVFOUNcXHU1RTk1XFx1NUU5NlxcdTVFRjZcXHU1RjI2XFx1NUYyN1xcdTVGMjlcXHU1RjgwXFx1NUY4MVxcdTVGN0ZcXHU1RjdDXFx1NUZERFxcdTVGRTBcXHU1RkZEXFx1NUZGNVxcdTVGRkZcXHU2MDBGXFx1NjAxNFxcdTYwMkZcXHU2MDM1XFx1NjAxNlxcdTYwMkFcXHU2MDE1XFx1NjAyMVxcdTYwMjdcXHU2MDI5XFx1NjAyQlxcdTYwMUJcXHU2MjE2XFx1NjIxNVxcdTYyM0ZcXHU2MjNFXFx1NjI0MFxcdTYyN0ZcXHU2MkM5XFx1NjJDQ1xcdTYyQzRcXHU2MkJGXFx1NjJDMlxcdTYyQjlcXHU2MkQyXFx1NjJEQlxcdTYyQUJcXHU2MkQzXFx1NjJENFxcdTYyQ0JcXHU2MkM4XFx1NjJBOFxcdTYyQkRcXHU2MkJDXFx1NjJEMFxcdTYyRDlcXHU2MkM3XFx1NjJDRFxcdTYyQjVcXHU2MkRBXFx1NjJCMVxcdTYyRDhcXHU2MkQ2XFx1NjJEN1xcdTYyQzZcXHU2MkFDXFx1NjJDRVxcdTY1M0VcXHU2NUE3XFx1NjVCQ1xcdTY1RkFcXHU2NjE0XFx1NjYxM1xcdTY2MENcXHU2NjA2XFx1NjYwMlxcdTY2MEVcXHU2NjAwXFx1NjYwRlxcdTY2MTVcXHU2NjBBXCJdLFxuICAgICAgW1wiYWE0MFwiLCBcIlxcdTY2MDdcXHU2NzBEXFx1NjcwQlxcdTY3NkRcXHU2NzhCXFx1Njc5NVxcdTY3NzFcXHU2NzlDXFx1Njc3M1xcdTY3NzdcXHU2Nzg3XFx1Njc5RFxcdTY3OTdcXHU2NzZGXFx1Njc3MFxcdTY3N0ZcXHU2Nzg5XFx1Njc3RVxcdTY3OTBcXHU2Nzc1XFx1Njc5QVxcdTY3OTNcXHU2NzdDXFx1Njc2QVxcdTY3NzJcXHU2QjIzXFx1NkI2NlxcdTZCNjdcXHU2QjdGXFx1NkMxM1xcdTZDMUJcXHU2Q0UzXFx1NkNFOFxcdTZDRjNcXHU2Q0IxXFx1NkNDQ1xcdTZDRTVcXHU2Q0IzXFx1NkNCRFxcdTZDQkVcXHU2Q0JDXFx1NkNFMlxcdTZDQUJcXHU2Q0Q1XFx1NkNEM1xcdTZDQjhcXHU2Q0M0XFx1NkNCOVxcdTZDQzFcXHU2Q0FFXFx1NkNEN1xcdTZDQzVcXHU2Q0YxXFx1NkNCRlxcdTZDQkJcXHU2Q0UxXFx1NkNEQlxcdTZDQ0FcXHU2Q0FDXFx1NkNFRlxcdTZDRENcXHU2Q0Q2XFx1NkNFMFwiXSxcbiAgICAgIFtcImFhYTFcIiwgXCJcXHU3MDk1XFx1NzA4RVxcdTcwOTJcXHU3MDhBXFx1NzA5OVxcdTcyMkNcXHU3MjJEXFx1NzIzOFxcdTcyNDhcXHU3MjY3XFx1NzI2OVxcdTcyQzBcXHU3MkNFXFx1NzJEOVxcdTcyRDdcXHU3MkQwXFx1NzNBOVxcdTczQThcXHU3MzlGXFx1NzNBQlxcdTczQTVcXHU3NTNEXFx1NzU5RFxcdTc1OTlcXHU3NTlBXFx1NzY4NFxcdTc2QzJcXHU3NkYyXFx1NzZGNFxcdTc3RTVcXHU3N0ZEXFx1NzkzRVxcdTc5NDBcXHU3OTQxXFx1NzlDOVxcdTc5QzhcXHU3QTdBXFx1N0E3OVxcdTdBRkFcXHU3Q0ZFXFx1N0Y1NFxcdTdGOENcXHU3RjhCXFx1ODAwNVxcdTgwQkFcXHU4MEE1XFx1ODBBMlxcdTgwQjFcXHU4MEExXFx1ODBBQlxcdTgwQTlcXHU4MEI0XFx1ODBBQVxcdTgwQUZcXHU4MUU1XFx1ODFGRVxcdTgyMERcXHU4MkIzXFx1ODI5RFxcdTgyOTlcXHU4MkFEXFx1ODJCRFxcdTgyOUZcXHU4MkI5XFx1ODJCMVxcdTgyQUNcXHU4MkE1XFx1ODJBRlxcdTgyQjhcXHU4MkEzXFx1ODJCMFxcdTgyQkVcXHU4MkI3XFx1ODY0RVxcdTg2NzFcXHU1MjFEXFx1ODg2OFxcdThFQ0JcXHU4RkNFXFx1OEZENFxcdThGRDFcXHU5MEI1XFx1OTBCOFxcdTkwQjFcXHU5MEI2XFx1OTFDN1xcdTkxRDFcXHU5NTc3XFx1OTU4MFxcdTk2MUNcXHU5NjQwXFx1OTYzRlxcdTk2M0JcXHU5NjQ0XCJdLFxuICAgICAgW1wiYWI0MFwiLCBcIlxcdTk2NDJcXHU5NkI5XFx1OTZFOFxcdTk3NTJcXHU5NzVFXFx1NEU5RlxcdTRFQURcXHU0RUFFXFx1NEZFMVxcdTRGQjVcXHU0RkFGXFx1NEZCRlxcdTRGRTBcXHU0RkQxXFx1NEZDRlxcdTRGRERcXHU0RkMzXFx1NEZCNlxcdTRGRDhcXHU0RkRGXFx1NEZDQVxcdTRGRDdcXHU0RkFFXFx1NEZEMFxcdTRGQzRcXHU0RkMyXFx1NEZEQVxcdTRGQ0VcXHU0RkRFXFx1NEZCN1xcdTUxNTdcXHU1MTkyXFx1NTE5MVxcdTUxQTBcXHU1MjRFXFx1NTI0M1xcdTUyNEFcXHU1MjREXFx1NTI0Q1xcdTUyNEJcXHU1MjQ3XFx1NTJDN1xcdTUyQzlcXHU1MkMzXFx1NTJDMVxcdTUzMERcXHU1MzU3XFx1NTM3QlxcdTUzOUFcXHU1M0RCXFx1NTRBQ1xcdTU0QzBcXHU1NEE4XFx1NTRDRVxcdTU0QzlcXHU1NEI4XFx1NTRBNlxcdTU0QjNcXHU1NEM3XFx1NTRDMlxcdTU0QkRcXHU1NEFBXFx1NTRDMVwiXSxcbiAgICAgIFtcImFiYTFcIiwgXCJcXHU1NEM0XFx1NTRDOFxcdTU0QUZcXHU1NEFCXFx1NTRCMVxcdTU0QkJcXHU1NEE5XFx1NTRBN1xcdTU0QkZcXHU1NkZGXFx1NTc4MlxcdTU3OEJcXHU1N0EwXFx1NTdBM1xcdTU3QTJcXHU1N0NFXFx1NTdBRVxcdTU3OTNcXHU1OTU1XFx1NTk1MVxcdTU5NEZcXHU1OTRFXFx1NTk1MFxcdTU5RENcXHU1OUQ4XFx1NTlGRlxcdTU5RTNcXHU1OUU4XFx1NUEwM1xcdTU5RTVcXHU1OUVBXFx1NTlEQVxcdTU5RTZcXHU1QTAxXFx1NTlGQlxcdTVCNjlcXHU1QkEzXFx1NUJBNlxcdTVCQTRcXHU1QkEyXFx1NUJBNVxcdTVDMDFcXHU1QzRFXFx1NUM0RlxcdTVDNERcXHU1QzRCXFx1NUNEOVxcdTVDRDJcXHU1REY3XFx1NUUxRFxcdTVFMjVcXHU1RTFGXFx1NUU3RFxcdTVFQTBcXHU1RUE2XFx1NUVGQVxcdTVGMDhcXHU1RjJEXFx1NUY2NVxcdTVGODhcXHU1Rjg1XFx1NUY4QVxcdTVGOEJcXHU1Rjg3XFx1NUY4Q1xcdTVGODlcXHU2MDEyXFx1NjAxRFxcdTYwMjBcXHU2MDI1XFx1NjAwRVxcdTYwMjhcXHU2MDREXFx1NjA3MFxcdTYwNjhcXHU2MDYyXFx1NjA0NlxcdTYwNDNcXHU2MDZDXFx1NjA2QlxcdTYwNkFcXHU2MDY0XFx1NjI0MVxcdTYyRENcXHU2MzE2XFx1NjMwOVxcdTYyRkNcXHU2MkVEXFx1NjMwMVxcdTYyRUVcXHU2MkZEXFx1NjMwN1xcdTYyRjFcXHU2MkY3XCJdLFxuICAgICAgW1wiYWM0MFwiLCBcIlxcdTYyRUZcXHU2MkVDXFx1NjJGRVxcdTYyRjRcXHU2MzExXFx1NjMwMlxcdTY1M0ZcXHU2NTQ1XFx1NjVBQlxcdTY1QkRcXHU2NUUyXFx1NjYyNVxcdTY2MkRcXHU2NjIwXFx1NjYyN1xcdTY2MkZcXHU2NjFGXFx1NjYyOFxcdTY2MzFcXHU2NjI0XFx1NjZGN1xcdTY3RkZcXHU2N0QzXFx1NjdGMVxcdTY3RDRcXHU2N0QwXFx1NjdFQ1xcdTY3QjZcXHU2N0FGXFx1NjdGNVxcdTY3RTlcXHU2N0VGXFx1NjdDNFxcdTY3RDFcXHU2N0I0XFx1NjdEQVxcdTY3RTVcXHU2N0I4XFx1NjdDRlxcdTY3REVcXHU2N0YzXFx1NjdCMFxcdTY3RDlcXHU2N0UyXFx1NjdERFxcdTY3RDJcXHU2QjZBXFx1NkI4M1xcdTZCODZcXHU2QkI1XFx1NkJEMlxcdTZCRDdcXHU2QzFGXFx1NkNDOVxcdTZEMEJcXHU2RDMyXFx1NkQyQVxcdTZENDFcXHU2RDI1XFx1NkQwQ1xcdTZEMzFcXHU2RDFFXFx1NkQxN1wiXSxcbiAgICAgIFtcImFjYTFcIiwgXCJcXHU2RDNCXFx1NkQzRFxcdTZEM0VcXHU2RDM2XFx1NkQxQlxcdTZDRjVcXHU2RDM5XFx1NkQyN1xcdTZEMzhcXHU2RDI5XFx1NkQyRVxcdTZEMzVcXHU2RDBFXFx1NkQyQlxcdTcwQUJcXHU3MEJBXFx1NzBCM1xcdTcwQUNcXHU3MEFGXFx1NzBBRFxcdTcwQjhcXHU3MEFFXFx1NzBBNFxcdTcyMzBcXHU3MjcyXFx1NzI2RlxcdTcyNzRcXHU3MkU5XFx1NzJFMFxcdTcyRTFcXHU3M0I3XFx1NzNDQVxcdTczQkJcXHU3M0IyXFx1NzNDRFxcdTczQzBcXHU3M0IzXFx1NzUxQVxcdTc1MkRcXHU3NTRGXFx1NzU0Q1xcdTc1NEVcXHU3NTRCXFx1NzVBQlxcdTc1QTRcXHU3NUE1XFx1NzVBMlxcdTc1QTNcXHU3Njc4XFx1NzY4NlxcdTc2ODdcXHU3Njg4XFx1NzZDOFxcdTc2QzZcXHU3NkMzXFx1NzZDNVxcdTc3MDFcXHU3NkY5XFx1NzZGOFxcdTc3MDlcXHU3NzBCXFx1NzZGRVxcdTc2RkNcXHU3NzA3XFx1NzdEQ1xcdTc4MDJcXHU3ODE0XFx1NzgwQ1xcdTc4MERcXHU3OTQ2XFx1Nzk0OVxcdTc5NDhcXHU3OTQ3XFx1NzlCOVxcdTc5QkFcXHU3OUQxXFx1NzlEMlxcdTc5Q0JcXHU3QTdGXFx1N0E4MVxcdTdBRkZcXHU3QUZEXFx1N0M3RFxcdTdEMDJcXHU3RDA1XFx1N0QwMFxcdTdEMDlcXHU3RDA3XFx1N0QwNFxcdTdEMDZcXHU3RjM4XFx1N0Y4RVxcdTdGQkZcXHU4MDA0XCJdLFxuICAgICAgW1wiYWQ0MFwiLCBcIlxcdTgwMTBcXHU4MDBEXFx1ODAxMVxcdTgwMzZcXHU4MEQ2XFx1ODBFNVxcdTgwREFcXHU4MEMzXFx1ODBDNFxcdTgwQ0NcXHU4MEUxXFx1ODBEQlxcdTgwQ0VcXHU4MERFXFx1ODBFNFxcdTgwRERcXHU4MUY0XFx1ODIyMlxcdTgyRTdcXHU4MzAzXFx1ODMwNVxcdTgyRTNcXHU4MkRCXFx1ODJFNlxcdTgzMDRcXHU4MkU1XFx1ODMwMlxcdTgzMDlcXHU4MkQyXFx1ODJEN1xcdTgyRjFcXHU4MzAxXFx1ODJEQ1xcdTgyRDRcXHU4MkQxXFx1ODJERVxcdTgyRDNcXHU4MkRGXFx1ODJFRlxcdTgzMDZcXHU4NjUwXFx1ODY3OVxcdTg2N0JcXHU4NjdBXFx1ODg0RFxcdTg4NkJcXHU4OTgxXFx1ODlENFxcdThBMDhcXHU4QTAyXFx1OEEwM1xcdThDOUVcXHU4Q0EwXFx1OEQ3NFxcdThENzNcXHU4REI0XFx1OEVDRFxcdThFQ0NcXHU4RkYwXFx1OEZFNlxcdThGRTJcXHU4RkVBXFx1OEZFNVwiXSxcbiAgICAgIFtcImFkYTFcIiwgXCJcXHU4RkVEXFx1OEZFQlxcdThGRTRcXHU4RkU4XFx1OTBDQVxcdTkwQ0VcXHU5MEMxXFx1OTBDM1xcdTkxNEJcXHU5MTRBXFx1OTFDRFxcdTk1ODJcXHU5NjUwXFx1OTY0QlxcdTk2NENcXHU5NjREXFx1OTc2MlxcdTk3NjlcXHU5N0NCXFx1OTdFRFxcdTk3RjNcXHU5ODAxXFx1OThBOFxcdTk4REJcXHU5OERGXFx1OTk5NlxcdTk5OTlcXHU0RTU4XFx1NEVCM1xcdTUwMENcXHU1MDBEXFx1NTAyM1xcdTRGRUZcXHU1MDI2XFx1NTAyNVxcdTRGRjhcXHU1MDI5XFx1NTAxNlxcdTUwMDZcXHU1MDNDXFx1NTAxRlxcdTUwMUFcXHU1MDEyXFx1NTAxMVxcdTRGRkFcXHU1MDAwXFx1NTAxNFxcdTUwMjhcXHU0RkYxXFx1NTAyMVxcdTUwMEJcXHU1MDE5XFx1NTAxOFxcdTRGRjNcXHU0RkVFXFx1NTAyRFxcdTUwMkFcXHU0RkZFXFx1NTAyQlxcdTUwMDlcXHU1MTdDXFx1NTFBNFxcdTUxQTVcXHU1MUEyXFx1NTFDRFxcdTUxQ0NcXHU1MUM2XFx1NTFDQlxcdTUyNTZcXHU1MjVDXFx1NTI1NFxcdTUyNUJcXHU1MjVEXFx1NTMyQVxcdTUzN0ZcXHU1MzlGXFx1NTM5RFxcdTUzREZcXHU1NEU4XFx1NTUxMFxcdTU1MDFcXHU1NTM3XFx1NTRGQ1xcdTU0RTVcXHU1NEYyXFx1NTUwNlxcdTU0RkFcXHU1NTE0XFx1NTRFOVxcdTU0RURcXHU1NEUxXFx1NTUwOVxcdTU0RUVcXHU1NEVBXCJdLFxuICAgICAgW1wiYWU0MFwiLCBcIlxcdTU0RTZcXHU1NTI3XFx1NTUwN1xcdTU0RkRcXHU1NTBGXFx1NTcwM1xcdTU3MDRcXHU1N0MyXFx1NTdENFxcdTU3Q0JcXHU1N0MzXFx1NTgwOVxcdTU5MEZcXHU1OTU3XFx1NTk1OFxcdTU5NUFcXHU1QTExXFx1NUExOFxcdTVBMUNcXHU1QTFGXFx1NUExQlxcdTVBMTNcXHU1OUVDXFx1NUEyMFxcdTVBMjNcXHU1QTI5XFx1NUEyNVxcdTVBMENcXHU1QTA5XFx1NUI2QlxcdTVDNThcXHU1QkIwXFx1NUJCM1xcdTVCQjZcXHU1QkI0XFx1NUJBRVxcdTVCQjVcXHU1QkI5XFx1NUJCOFxcdTVDMDRcXHU1QzUxXFx1NUM1NVxcdTVDNTBcXHU1Q0VEXFx1NUNGRFxcdTVDRkJcXHU1Q0VBXFx1NUNFOFxcdTVDRjBcXHU1Q0Y2XFx1NUQwMVxcdTVDRjRcXHU1REVFXFx1NUUyRFxcdTVFMkJcXHU1RUFCXFx1NUVBRFxcdTVFQTdcXHU1RjMxXFx1NUY5MlxcdTVGOTFcXHU1RjkwXFx1NjA1OVwiXSxcbiAgICAgIFtcImFlYTFcIiwgXCJcXHU2MDYzXFx1NjA2NVxcdTYwNTBcXHU2MDU1XFx1NjA2RFxcdTYwNjlcXHU2MDZGXFx1NjA4NFxcdTYwOUZcXHU2MDlBXFx1NjA4RFxcdTYwOTRcXHU2MDhDXFx1NjA4NVxcdTYwOTZcXHU2MjQ3XFx1NjJGM1xcdTYzMDhcXHU2MkZGXFx1NjM0RVxcdTYzM0VcXHU2MzJGXFx1NjM1NVxcdTYzNDJcXHU2MzQ2XFx1NjM0RlxcdTYzNDlcXHU2MzNBXFx1NjM1MFxcdTYzM0RcXHU2MzJBXFx1NjMyQlxcdTYzMjhcXHU2MzREXFx1NjM0Q1xcdTY1NDhcXHU2NTQ5XFx1NjU5OVxcdTY1QzFcXHU2NUM1XFx1NjY0MlxcdTY2NDlcXHU2NjRGXFx1NjY0M1xcdTY2NTJcXHU2NjRDXFx1NjY0NVxcdTY2NDFcXHU2NkY4XFx1NjcxNFxcdTY3MTVcXHU2NzE3XFx1NjgyMVxcdTY4MzhcXHU2ODQ4XFx1Njg0NlxcdTY4NTNcXHU2ODM5XFx1Njg0MlxcdTY4NTRcXHU2ODI5XFx1NjhCM1xcdTY4MTdcXHU2ODRDXFx1Njg1MVxcdTY4M0RcXHU2N0Y0XFx1Njg1MFxcdTY4NDBcXHU2ODNDXFx1Njg0M1xcdTY4MkFcXHU2ODQ1XFx1NjgxM1xcdTY4MThcXHU2ODQxXFx1NkI4QVxcdTZCODlcXHU2QkI3XFx1NkMyM1xcdTZDMjdcXHU2QzI4XFx1NkMyNlxcdTZDMjRcXHU2Q0YwXFx1NkQ2QVxcdTZEOTVcXHU2RDg4XFx1NkQ4N1xcdTZENjZcXHU2RDc4XFx1NkQ3N1xcdTZENTlcXHU2RDkzXCJdLFxuICAgICAgW1wiYWY0MFwiLCBcIlxcdTZENkNcXHU2RDg5XFx1NkQ2RVxcdTZENUFcXHU2RDc0XFx1NkQ2OVxcdTZEOENcXHU2RDhBXFx1NkQ3OVxcdTZEODVcXHU2RDY1XFx1NkQ5NFxcdTcwQ0FcXHU3MEQ4XFx1NzBFNFxcdTcwRDlcXHU3MEM4XFx1NzBDRlxcdTcyMzlcXHU3Mjc5XFx1NzJGQ1xcdTcyRjlcXHU3MkZEXFx1NzJGOFxcdTcyRjdcXHU3Mzg2XFx1NzNFRFxcdTc0MDlcXHU3M0VFXFx1NzNFMFxcdTczRUFcXHU3M0RFXFx1NzU1NFxcdTc1NURcXHU3NTVDXFx1NzU1QVxcdTc1NTlcXHU3NUJFXFx1NzVDNVxcdTc1QzdcXHU3NUIyXFx1NzVCM1xcdTc1QkRcXHU3NUJDXFx1NzVCOVxcdTc1QzJcXHU3NUI4XFx1NzY4QlxcdTc2QjBcXHU3NkNBXFx1NzZDRFxcdTc2Q0VcXHU3NzI5XFx1NzcxRlxcdTc3MjBcXHU3NzI4XFx1NzdFOVxcdTc4MzBcXHU3ODI3XFx1NzgzOFxcdTc4MURcXHU3ODM0XFx1NzgzN1wiXSxcbiAgICAgIFtcImFmYTFcIiwgXCJcXHU3ODI1XFx1NzgyRFxcdTc4MjBcXHU3ODFGXFx1NzgzMlxcdTc5NTVcXHU3OTUwXFx1Nzk2MFxcdTc5NUZcXHU3OTU2XFx1Nzk1RVxcdTc5NURcXHU3OTU3XFx1Nzk1QVxcdTc5RTRcXHU3OUUzXFx1NzlFN1xcdTc5REZcXHU3OUU2XFx1NzlFOVxcdTc5RDhcXHU3QTg0XFx1N0E4OFxcdTdBRDlcXHU3QjA2XFx1N0IxMVxcdTdDODlcXHU3RDIxXFx1N0QxN1xcdTdEMEJcXHU3RDBBXFx1N0QyMFxcdTdEMjJcXHU3RDE0XFx1N0QxMFxcdTdEMTVcXHU3RDFBXFx1N0QxQ1xcdTdEMERcXHU3RDE5XFx1N0QxQlxcdTdGM0FcXHU3RjVGXFx1N0Y5NFxcdTdGQzVcXHU3RkMxXFx1ODAwNlxcdTgwMThcXHU4MDE1XFx1ODAxOVxcdTgwMTdcXHU4MDNEXFx1ODAzRlxcdTgwRjFcXHU4MTAyXFx1ODBGMFxcdTgxMDVcXHU4MEVEXFx1ODBGNFxcdTgxMDZcXHU4MEY4XFx1ODBGM1xcdTgxMDhcXHU4MEZEXFx1ODEwQVxcdTgwRkNcXHU4MEVGXFx1ODFFRFxcdTgxRUNcXHU4MjAwXFx1ODIxMFxcdTgyMkFcXHU4MjJCXFx1ODIyOFxcdTgyMkNcXHU4MkJCXFx1ODMyQlxcdTgzNTJcXHU4MzU0XFx1ODM0QVxcdTgzMzhcXHU4MzUwXFx1ODM0OVxcdTgzMzVcXHU4MzM0XFx1ODM0RlxcdTgzMzJcXHU4MzM5XFx1ODMzNlxcdTgzMTdcXHU4MzQwXFx1ODMzMVxcdTgzMjhcXHU4MzQzXCJdLFxuICAgICAgW1wiYjA0MFwiLCBcIlxcdTg2NTRcXHU4NjhBXFx1ODZBQVxcdTg2OTNcXHU4NkE0XFx1ODZBOVxcdTg2OENcXHU4NkEzXFx1ODY5Q1xcdTg4NzBcXHU4ODc3XFx1ODg4MVxcdTg4ODJcXHU4ODdEXFx1ODg3OVxcdThBMThcXHU4QTEwXFx1OEEwRVxcdThBMENcXHU4QTE1XFx1OEEwQVxcdThBMTdcXHU4QTEzXFx1OEExNlxcdThBMEZcXHU4QTExXFx1OEM0OFxcdThDN0FcXHU4Qzc5XFx1OENBMVxcdThDQTJcXHU4RDc3XFx1OEVBQ1xcdThFRDJcXHU4RUQ0XFx1OEVDRlxcdThGQjFcXHU5MDAxXFx1OTAwNlxcdThGRjdcXHU5MDAwXFx1OEZGQVxcdThGRjRcXHU5MDAzXFx1OEZGRFxcdTkwMDVcXHU4RkY4XFx1OTA5NVxcdTkwRTFcXHU5MEREXFx1OTBFMlxcdTkxNTJcXHU5MTREXFx1OTE0Q1xcdTkxRDhcXHU5MUREXFx1OTFEN1xcdTkxRENcXHU5MUQ5XFx1OTU4M1xcdTk2NjJcXHU5NjYzXFx1OTY2MVwiXSxcbiAgICAgIFtcImIwYTFcIiwgXCJcXHU5NjVCXFx1OTY1RFxcdTk2NjRcXHU5NjU4XFx1OTY1RVxcdTk2QkJcXHU5OEUyXFx1OTlBQ1xcdTlBQThcXHU5QUQ4XFx1OUIyNVxcdTlCMzJcXHU5QjNDXFx1NEU3RVxcdTUwN0FcXHU1MDdEXFx1NTA1Q1xcdTUwNDdcXHU1MDQzXFx1NTA0Q1xcdTUwNUFcXHU1MDQ5XFx1NTA2NVxcdTUwNzZcXHU1MDRFXFx1NTA1NVxcdTUwNzVcXHU1MDc0XFx1NTA3N1xcdTUwNEZcXHU1MDBGXFx1NTA2RlxcdTUwNkRcXHU1MTVDXFx1NTE5NVxcdTUxRjBcXHU1MjZBXFx1NTI2RlxcdTUyRDJcXHU1MkQ5XFx1NTJEOFxcdTUyRDVcXHU1MzEwXFx1NTMwRlxcdTUzMTlcXHU1MzNGXFx1NTM0MFxcdTUzM0VcXHU1M0MzXFx1NjZGQ1xcdTU1NDZcXHU1NTZBXFx1NTU2NlxcdTU1NDRcXHU1NTVFXFx1NTU2MVxcdTU1NDNcXHU1NTRBXFx1NTUzMVxcdTU1NTZcXHU1NTRGXFx1NTU1NVxcdTU1MkZcXHU1NTY0XFx1NTUzOFxcdTU1MkVcXHU1NTVDXFx1NTUyQ1xcdTU1NjNcXHU1NTMzXFx1NTU0MVxcdTU1NTdcXHU1NzA4XFx1NTcwQlxcdTU3MDlcXHU1N0RGXFx1NTgwNVxcdTU4MEFcXHU1ODA2XFx1NTdFMFxcdTU3RTRcXHU1N0ZBXFx1NTgwMlxcdTU4MzVcXHU1N0Y3XFx1NTdGOVxcdTU5MjBcXHU1OTYyXFx1NUEzNlxcdTVBNDFcXHU1QTQ5XFx1NUE2NlxcdTVBNkFcXHU1QTQwXCJdLFxuICAgICAgW1wiYjE0MFwiLCBcIlxcdTVBM0NcXHU1QTYyXFx1NUE1QVxcdTVBNDZcXHU1QTRBXFx1NUI3MFxcdTVCQzdcXHU1QkM1XFx1NUJDNFxcdTVCQzJcXHU1QkJGXFx1NUJDNlxcdTVDMDlcXHU1QzA4XFx1NUMwN1xcdTVDNjBcXHU1QzVDXFx1NUM1RFxcdTVEMDdcXHU1RDA2XFx1NUQwRVxcdTVEMUJcXHU1RDE2XFx1NUQyMlxcdTVEMTFcXHU1RDI5XFx1NUQxNFxcdTVEMTlcXHU1RDI0XFx1NUQyN1xcdTVEMTdcXHU1REUyXFx1NUUzOFxcdTVFMzZcXHU1RTMzXFx1NUUzN1xcdTVFQjdcXHU1RUI4XFx1NUVCNlxcdTVFQjVcXHU1RUJFXFx1NUYzNVxcdTVGMzdcXHU1RjU3XFx1NUY2Q1xcdTVGNjlcXHU1RjZCXFx1NUY5N1xcdTVGOTlcXHU1RjlFXFx1NUY5OFxcdTVGQTFcXHU1RkEwXFx1NUY5Q1xcdTYwN0ZcXHU2MEEzXFx1NjA4OVxcdTYwQTBcXHU2MEE4XFx1NjBDQlxcdTYwQjRcXHU2MEU2XFx1NjBCRFwiXSxcbiAgICAgIFtcImIxYTFcIiwgXCJcXHU2MEM1XFx1NjBCQlxcdTYwQjVcXHU2MERDXFx1NjBCQ1xcdTYwRDhcXHU2MEQ1XFx1NjBDNlxcdTYwREZcXHU2MEI4XFx1NjBEQVxcdTYwQzdcXHU2MjFBXFx1NjIxQlxcdTYyNDhcXHU2M0EwXFx1NjNBN1xcdTYzNzJcXHU2Mzk2XFx1NjNBMlxcdTYzQTVcXHU2Mzc3XFx1NjM2N1xcdTYzOThcXHU2M0FBXFx1NjM3MVxcdTYzQTlcXHU2Mzg5XFx1NjM4M1xcdTYzOUJcXHU2MzZCXFx1NjNBOFxcdTYzODRcXHU2Mzg4XFx1NjM5OVxcdTYzQTFcXHU2M0FDXFx1NjM5MlxcdTYzOEZcXHU2MzgwXFx1NjM3QlxcdTYzNjlcXHU2MzY4XFx1NjM3QVxcdTY1NURcXHU2NTU2XFx1NjU1MVxcdTY1NTlcXHU2NTU3XFx1NTU1RlxcdTY1NEZcXHU2NTU4XFx1NjU1NVxcdTY1NTRcXHU2NTlDXFx1NjU5QlxcdTY1QUNcXHU2NUNGXFx1NjVDQlxcdTY1Q0NcXHU2NUNFXFx1NjY1RFxcdTY2NUFcXHU2NjY0XFx1NjY2OFxcdTY2NjZcXHU2NjVFXFx1NjZGOVxcdTUyRDdcXHU2NzFCXFx1Njg4MVxcdTY4QUZcXHU2OEEyXFx1Njg5M1xcdTY4QjVcXHU2ODdGXFx1Njg3NlxcdTY4QjFcXHU2OEE3XFx1Njg5N1xcdTY4QjBcXHU2ODgzXFx1NjhDNFxcdTY4QURcXHU2ODg2XFx1Njg4NVxcdTY4OTRcXHU2ODlEXFx1NjhBOFxcdTY4OUZcXHU2OEExXFx1Njg4MlxcdTZCMzJcXHU2QkJBXCJdLFxuICAgICAgW1wiYjI0MFwiLCBcIlxcdTZCRUJcXHU2QkVDXFx1NkMyQlxcdTZEOEVcXHU2REJDXFx1NkRGM1xcdTZERDlcXHU2REIyXFx1NkRFMVxcdTZEQ0NcXHU2REU0XFx1NkRGQlxcdTZERkFcXHU2RTA1XFx1NkRDN1xcdTZEQ0JcXHU2REFGXFx1NkREMVxcdTZEQUVcXHU2RERFXFx1NkRGOVxcdTZEQjhcXHU2REY3XFx1NkRGNVxcdTZEQzVcXHU2REQyXFx1NkUxQVxcdTZEQjVcXHU2RERBXFx1NkRFQlxcdTZERDhcXHU2REVBXFx1NkRGMVxcdTZERUVcXHU2REU4XFx1NkRDNlxcdTZEQzRcXHU2REFBXFx1NkRFQ1xcdTZEQkZcXHU2REU2XFx1NzBGOVxcdTcxMDlcXHU3MTBBXFx1NzBGRFxcdTcwRUZcXHU3MjNEXFx1NzI3RFxcdTcyODFcXHU3MzFDXFx1NzMxQlxcdTczMTZcXHU3MzEzXFx1NzMxOVxcdTczODdcXHU3NDA1XFx1NzQwQVxcdTc0MDNcXHU3NDA2XFx1NzNGRVxcdTc0MERcXHU3NEUwXFx1NzRGNlwiXSxcbiAgICAgIFtcImIyYTFcIiwgXCJcXHU3NEY3XFx1NzUxQ1xcdTc1MjJcXHU3NTY1XFx1NzU2NlxcdTc1NjJcXHU3NTcwXFx1NzU4RlxcdTc1RDRcXHU3NUQ1XFx1NzVCNVxcdTc1Q0FcXHU3NUNEXFx1NzY4RVxcdTc2RDRcXHU3NkQyXFx1NzZEQlxcdTc3MzdcXHU3NzNFXFx1NzczQ1xcdTc3MzZcXHU3NzM4XFx1NzczQVxcdTc4NkJcXHU3ODQzXFx1Nzg0RVxcdTc5NjVcXHU3OTY4XFx1Nzk2RFxcdTc5RkJcXHU3QTkyXFx1N0E5NVxcdTdCMjBcXHU3QjI4XFx1N0IxQlxcdTdCMkNcXHU3QjI2XFx1N0IxOVxcdTdCMUVcXHU3QjJFXFx1N0M5MlxcdTdDOTdcXHU3Qzk1XFx1N0Q0NlxcdTdENDNcXHU3RDcxXFx1N0QyRVxcdTdEMzlcXHU3RDNDXFx1N0Q0MFxcdTdEMzBcXHU3RDMzXFx1N0Q0NFxcdTdEMkZcXHU3RDQyXFx1N0QzMlxcdTdEMzFcXHU3RjNEXFx1N0Y5RVxcdTdGOUFcXHU3RkNDXFx1N0ZDRVxcdTdGRDJcXHU4MDFDXFx1ODA0QVxcdTgwNDZcXHU4MTJGXFx1ODExNlxcdTgxMjNcXHU4MTJCXFx1ODEyOVxcdTgxMzBcXHU4MTI0XFx1ODIwMlxcdTgyMzVcXHU4MjM3XFx1ODIzNlxcdTgyMzlcXHU4MzhFXFx1ODM5RVxcdTgzOThcXHU4Mzc4XFx1ODNBMlxcdTgzOTZcXHU4M0JEXFx1ODNBQlxcdTgzOTJcXHU4MzhBXFx1ODM5M1xcdTgzODlcXHU4M0EwXFx1ODM3N1xcdTgzN0JcXHU4MzdDXCJdLFxuICAgICAgW1wiYjM0MFwiLCBcIlxcdTgzODZcXHU4M0E3XFx1ODY1NVxcdTVGNkFcXHU4NkM3XFx1ODZDMFxcdTg2QjZcXHU4NkM0XFx1ODZCNVxcdTg2QzZcXHU4NkNCXFx1ODZCMVxcdTg2QUZcXHU4NkM5XFx1ODg1M1xcdTg4OUVcXHU4ODg4XFx1ODhBQlxcdTg4OTJcXHU4ODk2XFx1ODg4RFxcdTg4OEJcXHU4OTkzXFx1ODk4RlxcdThBMkFcXHU4QTFEXFx1OEEyM1xcdThBMjVcXHU4QTMxXFx1OEEyRFxcdThBMUZcXHU4QTFCXFx1OEEyMlxcdThDNDlcXHU4QzVBXFx1OENBOVxcdThDQUNcXHU4Q0FCXFx1OENBOFxcdThDQUFcXHU4Q0E3XFx1OEQ2N1xcdThENjZcXHU4REJFXFx1OERCQVxcdThFREJcXHU4RURGXFx1OTAxOVxcdTkwMERcXHU5MDFBXFx1OTAxN1xcdTkwMjNcXHU5MDFGXFx1OTAxRFxcdTkwMTBcXHU5MDE1XFx1OTAxRVxcdTkwMjBcXHU5MDBGXFx1OTAyMlxcdTkwMTZcXHU5MDFCXFx1OTAxNFwiXSxcbiAgICAgIFtcImIzYTFcIiwgXCJcXHU5MEU4XFx1OTBFRFxcdTkwRkRcXHU5MTU3XFx1OTFDRVxcdTkxRjVcXHU5MUU2XFx1OTFFM1xcdTkxRTdcXHU5MUVEXFx1OTFFOVxcdTk1ODlcXHU5NjZBXFx1OTY3NVxcdTk2NzNcXHU5Njc4XFx1OTY3MFxcdTk2NzRcXHU5Njc2XFx1OTY3N1xcdTk2NkNcXHU5NkMwXFx1OTZFQVxcdTk2RTlcXHU3QUUwXFx1N0FERlxcdTk4MDJcXHU5ODAzXFx1OUI1QVxcdTlDRTVcXHU5RTc1XFx1OUU3RlxcdTlFQTVcXHU5RUJCXFx1NTBBMlxcdTUwOERcXHU1MDg1XFx1NTA5OVxcdTUwOTFcXHU1MDgwXFx1NTA5NlxcdTUwOThcXHU1MDlBXFx1NjcwMFxcdTUxRjFcXHU1MjcyXFx1NTI3NFxcdTUyNzVcXHU1MjY5XFx1NTJERVxcdTUyRERcXHU1MkRCXFx1NTM1QVxcdTUzQTVcXHU1NTdCXFx1NTU4MFxcdTU1QTdcXHU1NTdDXFx1NTU4QVxcdTU1OURcXHU1NTk4XFx1NTU4MlxcdTU1OUNcXHU1NUFBXFx1NTU5NFxcdTU1ODdcXHU1NThCXFx1NTU4M1xcdTU1QjNcXHU1NUFFXFx1NTU5RlxcdTU1M0VcXHU1NUIyXFx1NTU5QVxcdTU1QkJcXHU1NUFDXFx1NTVCMVxcdTU1N0VcXHU1NTg5XFx1NTVBQlxcdTU1OTlcXHU1NzBEXFx1NTgyRlxcdTU4MkFcXHU1ODM0XFx1NTgyNFxcdTU4MzBcXHU1ODMxXFx1NTgyMVxcdTU4MURcXHU1ODIwXFx1NThGOVxcdTU4RkFcXHU1OTYwXCJdLFxuICAgICAgW1wiYjQ0MFwiLCBcIlxcdTVBNzdcXHU1QTlBXFx1NUE3RlxcdTVBOTJcXHU1QTlCXFx1NUFBN1xcdTVCNzNcXHU1QjcxXFx1NUJEMlxcdTVCQ0NcXHU1QkQzXFx1NUJEMFxcdTVDMEFcXHU1QzBCXFx1NUMzMVxcdTVENENcXHU1RDUwXFx1NUQzNFxcdTVENDdcXHU1REZEXFx1NUU0NVxcdTVFM0RcXHU1RTQwXFx1NUU0M1xcdTVFN0VcXHU1RUNBXFx1NUVDMVxcdTVFQzJcXHU1RUM0XFx1NUYzQ1xcdTVGNkRcXHU1RkE5XFx1NUZBQVxcdTVGQThcXHU2MEQxXFx1NjBFMVxcdTYwQjJcXHU2MEI2XFx1NjBFMFxcdTYxMUNcXHU2MTIzXFx1NjBGQVxcdTYxMTVcXHU2MEYwXFx1NjBGQlxcdTYwRjRcXHU2MTY4XFx1NjBGMVxcdTYxMEVcXHU2MEY2XFx1NjEwOVxcdTYxMDBcXHU2MTEyXFx1NjIxRlxcdTYyNDlcXHU2M0EzXFx1NjM4Q1xcdTYzQ0ZcXHU2M0MwXFx1NjNFOVxcdTYzQzlcXHU2M0M2XFx1NjNDRFwiXSxcbiAgICAgIFtcImI0YTFcIiwgXCJcXHU2M0QyXFx1NjNFM1xcdTYzRDBcXHU2M0UxXFx1NjNENlxcdTYzRURcXHU2M0VFXFx1NjM3NlxcdTYzRjRcXHU2M0VBXFx1NjNEQlxcdTY0NTJcXHU2M0RBXFx1NjNGOVxcdTY1NUVcXHU2NTY2XFx1NjU2MlxcdTY1NjNcXHU2NTkxXFx1NjU5MFxcdTY1QUZcXHU2NjZFXFx1NjY3MFxcdTY2NzRcXHU2Njc2XFx1NjY2RlxcdTY2OTFcXHU2NjdBXFx1NjY3RVxcdTY2NzdcXHU2NkZFXFx1NjZGRlxcdTY3MUZcXHU2NzFEXFx1NjhGQVxcdTY4RDVcXHU2OEUwXFx1NjhEOFxcdTY4RDdcXHU2OTA1XFx1NjhERlxcdTY4RjVcXHU2OEVFXFx1NjhFN1xcdTY4RjlcXHU2OEQyXFx1NjhGMlxcdTY4RTNcXHU2OENCXFx1NjhDRFxcdTY5MERcXHU2OTEyXFx1NjkwRVxcdTY4QzlcXHU2OERBXFx1Njk2RVxcdTY4RkJcXHU2QjNFXFx1NkIzQVxcdTZCM0RcXHU2Qjk4XFx1NkI5NlxcdTZCQkNcXHU2QkVGXFx1NkMyRVxcdTZDMkZcXHU2QzJDXFx1NkUyRlxcdTZFMzhcXHU2RTU0XFx1NkUyMVxcdTZFMzJcXHU2RTY3XFx1NkU0QVxcdTZFMjBcXHU2RTI1XFx1NkUyM1xcdTZFMUJcXHU2RTVCXFx1NkU1OFxcdTZFMjRcXHU2RTU2XFx1NkU2RVxcdTZFMkRcXHU2RTI2XFx1NkU2RlxcdTZFMzRcXHU2RTREXFx1NkUzQVxcdTZFMkNcXHU2RTQzXFx1NkUxRFxcdTZFM0VcXHU2RUNCXCJdLFxuICAgICAgW1wiYjU0MFwiLCBcIlxcdTZFODlcXHU2RTE5XFx1NkU0RVxcdTZFNjNcXHU2RTQ0XFx1NkU3MlxcdTZFNjlcXHU2RTVGXFx1NzExOVxcdTcxMUFcXHU3MTI2XFx1NzEzMFxcdTcxMjFcXHU3MTM2XFx1NzE2RVxcdTcxMUNcXHU3MjRDXFx1NzI4NFxcdTcyODBcXHU3MzM2XFx1NzMyNVxcdTczMzRcXHU3MzI5XFx1NzQzQVxcdTc0MkFcXHU3NDMzXFx1NzQyMlxcdTc0MjVcXHU3NDM1XFx1NzQzNlxcdTc0MzRcXHU3NDJGXFx1NzQxQlxcdTc0MjZcXHU3NDI4XFx1NzUyNVxcdTc1MjZcXHU3NTZCXFx1NzU2QVxcdTc1RTJcXHU3NURCXFx1NzVFM1xcdTc1RDlcXHU3NUQ4XFx1NzVERVxcdTc1RTBcXHU3NjdCXFx1NzY3Q1xcdTc2OTZcXHU3NjkzXFx1NzZCNFxcdTc2RENcXHU3NzRGXFx1NzdFRFxcdTc4NURcXHU3ODZDXFx1Nzg2RlxcdTdBMERcXHU3QTA4XFx1N0EwQlxcdTdBMDVcXHU3QTAwXFx1N0E5OFwiXSxcbiAgICAgIFtcImI1YTFcIiwgXCJcXHU3QTk3XFx1N0E5NlxcdTdBRTVcXHU3QUUzXFx1N0I0OVxcdTdCNTZcXHU3QjQ2XFx1N0I1MFxcdTdCNTJcXHU3QjU0XFx1N0I0RFxcdTdCNEJcXHU3QjRGXFx1N0I1MVxcdTdDOUZcXHU3Q0E1XFx1N0Q1RVxcdTdENTBcXHU3RDY4XFx1N0Q1NVxcdTdEMkJcXHU3RDZFXFx1N0Q3MlxcdTdENjFcXHU3RDY2XFx1N0Q2MlxcdTdENzBcXHU3RDczXFx1NTU4NFxcdTdGRDRcXHU3RkQ1XFx1ODAwQlxcdTgwNTJcXHU4MDg1XFx1ODE1NVxcdTgxNTRcXHU4MTRCXFx1ODE1MVxcdTgxNEVcXHU4MTM5XFx1ODE0NlxcdTgxM0VcXHU4MTRDXFx1ODE1M1xcdTgxNzRcXHU4MjEyXFx1ODIxQ1xcdTgzRTlcXHU4NDAzXFx1ODNGOFxcdTg0MERcXHU4M0UwXFx1ODNDNVxcdTg0MEJcXHU4M0MxXFx1ODNFRlxcdTgzRjFcXHU4M0Y0XFx1ODQ1N1xcdTg0MEFcXHU4M0YwXFx1ODQwQ1xcdTgzQ0NcXHU4M0ZEXFx1ODNGMlxcdTgzQ0FcXHU4NDM4XFx1ODQwRVxcdTg0MDRcXHU4M0RDXFx1ODQwN1xcdTgzRDRcXHU4M0RGXFx1ODY1QlxcdTg2REZcXHU4NkQ5XFx1ODZFRFxcdTg2RDRcXHU4NkRCXFx1ODZFNFxcdTg2RDBcXHU4NkRFXFx1ODg1N1xcdTg4QzFcXHU4OEMyXFx1ODhCMVxcdTg5ODNcXHU4OTk2XFx1OEEzQlxcdThBNjBcXHU4QTU1XFx1OEE1RVxcdThBM0NcXHU4QTQxXCJdLFxuICAgICAgW1wiYjY0MFwiLCBcIlxcdThBNTRcXHU4QTVCXFx1OEE1MFxcdThBNDZcXHU4QTM0XFx1OEEzQVxcdThBMzZcXHU4QTU2XFx1OEM2MVxcdThDODJcXHU4Q0FGXFx1OENCQ1xcdThDQjNcXHU4Q0JEXFx1OENDMVxcdThDQkJcXHU4Q0MwXFx1OENCNFxcdThDQjdcXHU4Q0I2XFx1OENCRlxcdThDQjhcXHU4RDhBXFx1OEQ4NVxcdThEODFcXHU4RENFXFx1OERERFxcdThEQ0JcXHU4RERBXFx1OEREMVxcdThEQ0NcXHU4RERCXFx1OERDNlxcdThFRkJcXHU4RUY4XFx1OEVGQ1xcdThGOUNcXHU5MDJFXFx1OTAzNVxcdTkwMzFcXHU5MDM4XFx1OTAzMlxcdTkwMzZcXHU5MTAyXFx1OTBGNVxcdTkxMDlcXHU5MEZFXFx1OTE2M1xcdTkxNjVcXHU5MUNGXFx1OTIxNFxcdTkyMTVcXHU5MjIzXFx1OTIwOVxcdTkyMUVcXHU5MjBEXFx1OTIxMFxcdTkyMDdcXHU5MjExXFx1OTU5NFxcdTk1OEZcXHU5NThCXFx1OTU5MVwiXSxcbiAgICAgIFtcImI2YTFcIiwgXCJcXHU5NTkzXFx1OTU5MlxcdTk1OEVcXHU5NjhBXFx1OTY4RVxcdTk2OEJcXHU5NjdEXFx1OTY4NVxcdTk2ODZcXHU5NjhEXFx1OTY3MlxcdTk2ODRcXHU5NkMxXFx1OTZDNVxcdTk2QzRcXHU5NkM2XFx1OTZDN1xcdTk2RUZcXHU5NkYyXFx1OTdDQ1xcdTk4MDVcXHU5ODA2XFx1OTgwOFxcdTk4RTdcXHU5OEVBXFx1OThFRlxcdTk4RTlcXHU5OEYyXFx1OThFRFxcdTk5QUVcXHU5OUFEXFx1OUVDM1xcdTlFQ0RcXHU5RUQxXFx1NEU4MlxcdTUwQURcXHU1MEI1XFx1NTBCMlxcdTUwQjNcXHU1MEM1XFx1NTBCRVxcdTUwQUNcXHU1MEI3XFx1NTBCQlxcdTUwQUZcXHU1MEM3XFx1NTI3RlxcdTUyNzdcXHU1MjdEXFx1NTJERlxcdTUyRTZcXHU1MkU0XFx1NTJFMlxcdTUyRTNcXHU1MzJGXFx1NTVERlxcdTU1RThcXHU1NUQzXFx1NTVFNlxcdTU1Q0VcXHU1NURDXFx1NTVDN1xcdTU1RDFcXHU1NUUzXFx1NTVFNFxcdTU1RUZcXHU1NURBXFx1NTVFMVxcdTU1QzVcXHU1NUM2XFx1NTVFNVxcdTU1QzlcXHU1NzEyXFx1NTcxM1xcdTU4NUVcXHU1ODUxXFx1NTg1OFxcdTU4NTdcXHU1ODVBXFx1NTg1NFxcdTU4NkJcXHU1ODRDXFx1NTg2RFxcdTU4NEFcXHU1ODYyXFx1NTg1MlxcdTU4NEJcXHU1OTY3XFx1NUFDMVxcdTVBQzlcXHU1QUNDXFx1NUFCRVxcdTVBQkRcXHU1QUJDXCJdLFxuICAgICAgW1wiYjc0MFwiLCBcIlxcdTVBQjNcXHU1QUMyXFx1NUFCMlxcdTVENjlcXHU1RDZGXFx1NUU0Q1xcdTVFNzlcXHU1RUM5XFx1NUVDOFxcdTVGMTJcXHU1RjU5XFx1NUZBQ1xcdTVGQUVcXHU2MTFBXFx1NjEwRlxcdTYxNDhcXHU2MTFGXFx1NjBGM1xcdTYxMUJcXHU2MEY5XFx1NjEwMVxcdTYxMDhcXHU2MTRFXFx1NjE0Q1xcdTYxNDRcXHU2MTREXFx1NjEzRVxcdTYxMzRcXHU2MTI3XFx1NjEwRFxcdTYxMDZcXHU2MTM3XFx1NjIyMVxcdTYyMjJcXHU2NDEzXFx1NjQzRVxcdTY0MUVcXHU2NDJBXFx1NjQyRFxcdTY0M0RcXHU2NDJDXFx1NjQwRlxcdTY0MUNcXHU2NDE0XFx1NjQwRFxcdTY0MzZcXHU2NDE2XFx1NjQxN1xcdTY0MDZcXHU2NTZDXFx1NjU5RlxcdTY1QjBcXHU2Njk3XFx1NjY4OVxcdTY2ODdcXHU2Njg4XFx1NjY5NlxcdTY2ODRcXHU2Njk4XFx1NjY4RFxcdTY3MDNcXHU2OTk0XFx1Njk2RFwiXSxcbiAgICAgIFtcImI3YTFcIiwgXCJcXHU2OTVBXFx1Njk3N1xcdTY5NjBcXHU2OTU0XFx1Njk3NVxcdTY5MzBcXHU2OTgyXFx1Njk0QVxcdTY5NjhcXHU2OTZCXFx1Njk1RVxcdTY5NTNcXHU2OTc5XFx1Njk4NlxcdTY5NURcXHU2OTYzXFx1Njk1QlxcdTZCNDdcXHU2QjcyXFx1NkJDMFxcdTZCQkZcXHU2QkQzXFx1NkJGRFxcdTZFQTJcXHU2RUFGXFx1NkVEM1xcdTZFQjZcXHU2RUMyXFx1NkU5MFxcdTZFOURcXHU2RUM3XFx1NkVDNVxcdTZFQTVcXHU2RTk4XFx1NkVCQ1xcdTZFQkFcXHU2RUFCXFx1NkVEMVxcdTZFOTZcXHU2RTlDXFx1NkVDNFxcdTZFRDRcXHU2RUFBXFx1NkVBN1xcdTZFQjRcXHU3MTRFXFx1NzE1OVxcdTcxNjlcXHU3MTY0XFx1NzE0OVxcdTcxNjdcXHU3MTVDXFx1NzE2Q1xcdTcxNjZcXHU3MTRDXFx1NzE2NVxcdTcxNUVcXHU3MTQ2XFx1NzE2OFxcdTcxNTZcXHU3MjNBXFx1NzI1MlxcdTczMzdcXHU3MzQ1XFx1NzMzRlxcdTczM0VcXHU3NDZGXFx1NzQ1QVxcdTc0NTVcXHU3NDVGXFx1NzQ1RVxcdTc0NDFcXHU3NDNGXFx1NzQ1OVxcdTc0NUJcXHU3NDVDXFx1NzU3NlxcdTc1NzhcXHU3NjAwXFx1NzVGMFxcdTc2MDFcXHU3NUYyXFx1NzVGMVxcdTc1RkFcXHU3NUZGXFx1NzVGNFxcdTc1RjNcXHU3NkRFXFx1NzZERlxcdTc3NUJcXHU3NzZCXFx1Nzc2NlxcdTc3NUVcXHU3NzYzXCJdLFxuICAgICAgW1wiYjg0MFwiLCBcIlxcdTc3NzlcXHU3NzZBXFx1Nzc2Q1xcdTc3NUNcXHU3NzY1XFx1Nzc2OFxcdTc3NjJcXHU3N0VFXFx1Nzg4RVxcdTc4QjBcXHU3ODk3XFx1Nzg5OFxcdTc4OENcXHU3ODg5XFx1Nzg3Q1xcdTc4OTFcXHU3ODkzXFx1Nzg3RlxcdTc5N0FcXHU3OTdGXFx1Nzk4MVxcdTg0MkNcXHU3OUJEXFx1N0ExQ1xcdTdBMUFcXHU3QTIwXFx1N0ExNFxcdTdBMUZcXHU3QTFFXFx1N0E5RlxcdTdBQTBcXHU3Qjc3XFx1N0JDMFxcdTdCNjBcXHU3QjZFXFx1N0I2N1xcdTdDQjFcXHU3Q0IzXFx1N0NCNVxcdTdEOTNcXHU3RDc5XFx1N0Q5MVxcdTdEODFcXHU3RDhGXFx1N0Q1QlxcdTdGNkVcXHU3RjY5XFx1N0Y2QVxcdTdGNzJcXHU3RkE5XFx1N0ZBOFxcdTdGQTRcXHU4MDU2XFx1ODA1OFxcdTgwODZcXHU4MDg0XFx1ODE3MVxcdTgxNzBcXHU4MTc4XFx1ODE2NVxcdTgxNkVcXHU4MTczXFx1ODE2QlwiXSxcbiAgICAgIFtcImI4YTFcIiwgXCJcXHU4MTc5XFx1ODE3QVxcdTgxNjZcXHU4MjA1XFx1ODI0N1xcdTg0ODJcXHU4NDc3XFx1ODQzRFxcdTg0MzFcXHU4NDc1XFx1ODQ2NlxcdTg0NkJcXHU4NDQ5XFx1ODQ2Q1xcdTg0NUJcXHU4NDNDXFx1ODQzNVxcdTg0NjFcXHU4NDYzXFx1ODQ2OVxcdTg0NkRcXHU4NDQ2XFx1ODY1RVxcdTg2NUNcXHU4NjVGXFx1ODZGOVxcdTg3MTNcXHU4NzA4XFx1ODcwN1xcdTg3MDBcXHU4NkZFXFx1ODZGQlxcdTg3MDJcXHU4NzAzXFx1ODcwNlxcdTg3MEFcXHU4ODU5XFx1ODhERlxcdTg4RDRcXHU4OEQ5XFx1ODhEQ1xcdTg4RDhcXHU4OEREXFx1ODhFMVxcdTg4Q0FcXHU4OEQ1XFx1ODhEMlxcdTg5OUNcXHU4OUUzXFx1OEE2QlxcdThBNzJcXHU4QTczXFx1OEE2NlxcdThBNjlcXHU4QTcwXFx1OEE4N1xcdThBN0NcXHU4QTYzXFx1OEFBMFxcdThBNzFcXHU4QTg1XFx1OEE2RFxcdThBNjJcXHU4QTZFXFx1OEE2Q1xcdThBNzlcXHU4QTdCXFx1OEEzRVxcdThBNjhcXHU4QzYyXFx1OEM4QVxcdThDODlcXHU4Q0NBXFx1OENDN1xcdThDQzhcXHU4Q0M0XFx1OENCMlxcdThDQzNcXHU4Q0MyXFx1OENDNVxcdThERTFcXHU4RERGXFx1OERFOFxcdThERUZcXHU4REYzXFx1OERGQVxcdThERUFcXHU4REU0XFx1OERFNlxcdThFQjJcXHU4RjAzXFx1OEYwOVxcdThFRkVcXHU4RjBBXCJdLFxuICAgICAgW1wiYjk0MFwiLCBcIlxcdThGOUZcXHU4RkIyXFx1OTA0QlxcdTkwNEFcXHU5MDUzXFx1OTA0MlxcdTkwNTRcXHU5MDNDXFx1OTA1NVxcdTkwNTBcXHU5MDQ3XFx1OTA0RlxcdTkwNEVcXHU5MDREXFx1OTA1MVxcdTkwM0VcXHU5MDQxXFx1OTExMlxcdTkxMTdcXHU5MTZDXFx1OTE2QVxcdTkxNjlcXHU5MUM5XFx1OTIzN1xcdTkyNTdcXHU5MjM4XFx1OTIzRFxcdTkyNDBcXHU5MjNFXFx1OTI1QlxcdTkyNEJcXHU5MjY0XFx1OTI1MVxcdTkyMzRcXHU5MjQ5XFx1OTI0RFxcdTkyNDVcXHU5MjM5XFx1OTIzRlxcdTkyNUFcXHU5NTk4XFx1OTY5OFxcdTk2OTRcXHU5Njk1XFx1OTZDRFxcdTk2Q0JcXHU5NkM5XFx1OTZDQVxcdTk2RjdcXHU5NkZCXFx1OTZGOVxcdTk2RjZcXHU5NzU2XFx1OTc3NFxcdTk3NzZcXHU5ODEwXFx1OTgxMVxcdTk4MTNcXHU5ODBBXFx1OTgxMlxcdTk4MENcXHU5OEZDXFx1OThGNFwiXSxcbiAgICAgIFtcImI5YTFcIiwgXCJcXHU5OEZEXFx1OThGRVxcdTk5QjNcXHU5OUIxXFx1OTlCNFxcdTlBRTFcXHU5Q0U5XFx1OUU4MlxcdTlGMEVcXHU5RjEzXFx1OUYyMFxcdTUwRTdcXHU1MEVFXFx1NTBFNVxcdTUwRDZcXHU1MEVEXFx1NTBEQVxcdTUwRDVcXHU1MENGXFx1NTBEMVxcdTUwRjFcXHU1MENFXFx1NTBFOVxcdTUxNjJcXHU1MUYzXFx1NTI4M1xcdTUyODJcXHU1MzMxXFx1NTNBRFxcdTU1RkVcXHU1NjAwXFx1NTYxQlxcdTU2MTdcXHU1NUZEXFx1NTYxNFxcdTU2MDZcXHU1NjA5XFx1NTYwRFxcdTU2MEVcXHU1NUY3XFx1NTYxNlxcdTU2MUZcXHU1NjA4XFx1NTYxMFxcdTU1RjZcXHU1NzE4XFx1NTcxNlxcdTU4NzVcXHU1ODdFXFx1NTg4M1xcdTU4OTNcXHU1ODhBXFx1NTg3OVxcdTU4ODVcXHU1ODdEXFx1NThGRFxcdTU5MjVcXHU1OTIyXFx1NTkyNFxcdTU5NkFcXHU1OTY5XFx1NUFFMVxcdTVBRTZcXHU1QUU5XFx1NUFEN1xcdTVBRDZcXHU1QUQ4XFx1NUFFM1xcdTVCNzVcXHU1QkRFXFx1NUJFN1xcdTVCRTFcXHU1QkU1XFx1NUJFNlxcdTVCRThcXHU1QkUyXFx1NUJFNFxcdTVCREZcXHU1QzBEXFx1NUM2MlxcdTVEODRcXHU1RDg3XFx1NUU1QlxcdTVFNjNcXHU1RTU1XFx1NUU1N1xcdTVFNTRcXHU1RUQzXFx1NUVENlxcdTVGMEFcXHU1RjQ2XFx1NUY3MFxcdTVGQjlcXHU2MTQ3XCJdLFxuICAgICAgW1wiYmE0MFwiLCBcIlxcdTYxM0ZcXHU2MTRCXFx1NjE3N1xcdTYxNjJcXHU2MTYzXFx1NjE1RlxcdTYxNUFcXHU2MTU4XFx1NjE3NVxcdTYyMkFcXHU2NDg3XFx1NjQ1OFxcdTY0NTRcXHU2NEE0XFx1NjQ3OFxcdTY0NUZcXHU2NDdBXFx1NjQ1MVxcdTY0NjdcXHU2NDM0XFx1NjQ2RFxcdTY0N0JcXHU2NTcyXFx1NjVBMVxcdTY1RDdcXHU2NUQ2XFx1NjZBMlxcdTY2QThcXHU2NjlEXFx1Njk5Q1xcdTY5QThcXHU2OTk1XFx1NjlDMVxcdTY5QUVcXHU2OUQzXFx1NjlDQlxcdTY5OUJcXHU2OUI3XFx1NjlCQlxcdTY5QUJcXHU2OUI0XFx1NjlEMFxcdTY5Q0RcXHU2OUFEXFx1NjlDQ1xcdTY5QTZcXHU2OUMzXFx1NjlBM1xcdTZCNDlcXHU2QjRDXFx1NkMzM1xcdTZGMzNcXHU2RjE0XFx1NkVGRVxcdTZGMTNcXHU2RUY0XFx1NkYyOVxcdTZGM0VcXHU2RjIwXFx1NkYyQ1xcdTZGMEZcXHU2RjAyXFx1NkYyMlwiXSxcbiAgICAgIFtcImJhYTFcIiwgXCJcXHU2RUZGXFx1NkVFRlxcdTZGMDZcXHU2RjMxXFx1NkYzOFxcdTZGMzJcXHU2RjIzXFx1NkYxNVxcdTZGMkJcXHU2RjJGXFx1NkY4OFxcdTZGMkFcXHU2RUVDXFx1NkYwMVxcdTZFRjJcXHU2RUNDXFx1NkVGN1xcdTcxOTRcXHU3MTk5XFx1NzE3RFxcdTcxOEFcXHU3MTg0XFx1NzE5MlxcdTcyM0VcXHU3MjkyXFx1NzI5NlxcdTczNDRcXHU3MzUwXFx1NzQ2NFxcdTc0NjNcXHU3NDZBXFx1NzQ3MFxcdTc0NkRcXHU3NTA0XFx1NzU5MVxcdTc2MjdcXHU3NjBEXFx1NzYwQlxcdTc2MDlcXHU3NjEzXFx1NzZFMVxcdTc2RTNcXHU3Nzg0XFx1Nzc3RFxcdTc3N0ZcXHU3NzYxXFx1NzhDMVxcdTc4OUZcXHU3OEE3XFx1NzhCM1xcdTc4QTlcXHU3OEEzXFx1Nzk4RVxcdTc5OEZcXHU3OThEXFx1N0EyRVxcdTdBMzFcXHU3QUFBXFx1N0FBOVxcdTdBRURcXHU3QUVGXFx1N0JBMVxcdTdCOTVcXHU3QjhCXFx1N0I3NVxcdTdCOTdcXHU3QjlEXFx1N0I5NFxcdTdCOEZcXHU3QkI4XFx1N0I4N1xcdTdCODRcXHU3Q0I5XFx1N0NCRFxcdTdDQkVcXHU3REJCXFx1N0RCMFxcdTdEOUNcXHU3REJEXFx1N0RCRVxcdTdEQTBcXHU3RENBXFx1N0RCNFxcdTdEQjJcXHU3REIxXFx1N0RCQVxcdTdEQTJcXHU3REJGXFx1N0RCNVxcdTdEQjhcXHU3REFEXFx1N0REMlxcdTdEQzdcXHU3REFDXCJdLFxuICAgICAgW1wiYmI0MFwiLCBcIlxcdTdGNzBcXHU3RkUwXFx1N0ZFMVxcdTdGREZcXHU4MDVFXFx1ODA1QVxcdTgwODdcXHU4MTUwXFx1ODE4MFxcdTgxOEZcXHU4MTg4XFx1ODE4QVxcdTgxN0ZcXHU4MTgyXFx1ODFFN1xcdTgxRkFcXHU4MjA3XFx1ODIxNFxcdTgyMUVcXHU4MjRCXFx1ODRDOVxcdTg0QkZcXHU4NEM2XFx1ODRDNFxcdTg0OTlcXHU4NDlFXFx1ODRCMlxcdTg0OUNcXHU4NENCXFx1ODRCOFxcdTg0QzBcXHU4NEQzXFx1ODQ5MFxcdTg0QkNcXHU4NEQxXFx1ODRDQVxcdTg3M0ZcXHU4NzFDXFx1ODczQlxcdTg3MjJcXHU4NzI1XFx1ODczNFxcdTg3MThcXHU4NzU1XFx1ODczN1xcdTg3MjlcXHU4OEYzXFx1ODkwMlxcdTg4RjRcXHU4OEY5XFx1ODhGOFxcdTg4RkRcXHU4OEU4XFx1ODkxQVxcdTg4RUZcXHU4QUE2XFx1OEE4Q1xcdThBOUVcXHU4QUEzXFx1OEE4RFxcdThBQTFcXHU4QTkzXFx1OEFBNFwiXSxcbiAgICAgIFtcImJiYTFcIiwgXCJcXHU4QUFBXFx1OEFBNVxcdThBQThcXHU4QTk4XFx1OEE5MVxcdThBOUFcXHU4QUE3XFx1OEM2QVxcdThDOERcXHU4QzhDXFx1OENEM1xcdThDRDFcXHU4Q0QyXFx1OEQ2QlxcdThEOTlcXHU4RDk1XFx1OERGQ1xcdThGMTRcXHU4RjEyXFx1OEYxNVxcdThGMTNcXHU4RkEzXFx1OTA2MFxcdTkwNThcXHU5MDVDXFx1OTA2M1xcdTkwNTlcXHU5MDVFXFx1OTA2MlxcdTkwNURcXHU5MDVCXFx1OTExOVxcdTkxMThcXHU5MTFFXFx1OTE3NVxcdTkxNzhcXHU5MTc3XFx1OTE3NFxcdTkyNzhcXHU5MjgwXFx1OTI4NVxcdTkyOThcXHU5Mjk2XFx1OTI3QlxcdTkyOTNcXHU5MjlDXFx1OTJBOFxcdTkyN0NcXHU5MjkxXFx1OTVBMVxcdTk1QThcXHU5NUE5XFx1OTVBM1xcdTk1QTVcXHU5NUE0XFx1OTY5OVxcdTk2OUNcXHU5NjlCXFx1OTZDQ1xcdTk2RDJcXHU5NzAwXFx1OTc3Q1xcdTk3ODVcXHU5N0Y2XFx1OTgxN1xcdTk4MThcXHU5OEFGXFx1OThCMVxcdTk5MDNcXHU5OTA1XFx1OTkwQ1xcdTk5MDlcXHU5OUMxXFx1OUFBRlxcdTlBQjBcXHU5QUU2XFx1OUI0MVxcdTlCNDJcXHU5Q0Y0XFx1OUNGNlxcdTlDRjNcXHU5RUJDXFx1OUYzQlxcdTlGNEFcXHU1MTA0XFx1NTEwMFxcdTUwRkJcXHU1MEY1XFx1NTBGOVxcdTUxMDJcXHU1MTA4XFx1NTEwOVxcdTUxMDVcXHU1MURDXCJdLFxuICAgICAgW1wiYmM0MFwiLCBcIlxcdTUyODdcXHU1Mjg4XFx1NTI4OVxcdTUyOERcXHU1MjhBXFx1NTJGMFxcdTUzQjJcXHU1NjJFXFx1NTYzQlxcdTU2MzlcXHU1NjMyXFx1NTYzRlxcdTU2MzRcXHU1NjI5XFx1NTY1M1xcdTU2NEVcXHU1NjU3XFx1NTY3NFxcdTU2MzZcXHU1NjJGXFx1NTYzMFxcdTU4ODBcXHU1ODlGXFx1NTg5RVxcdTU4QjNcXHU1ODlDXFx1NThBRVxcdTU4QTlcXHU1OEE2XFx1NTk2RFxcdTVCMDlcXHU1QUZCXFx1NUIwQlxcdTVBRjVcXHU1QjBDXFx1NUIwOFxcdTVCRUVcXHU1QkVDXFx1NUJFOVxcdTVCRUJcXHU1QzY0XFx1NUM2NVxcdTVEOURcXHU1RDk0XFx1NUU2MlxcdTVFNUZcXHU1RTYxXFx1NUVFMlxcdTVFREFcXHU1RURGXFx1NUVERFxcdTVFRTNcXHU1RUUwXFx1NUY0OFxcdTVGNzFcXHU1RkI3XFx1NUZCNVxcdTYxNzZcXHU2MTY3XFx1NjE2RVxcdTYxNURcXHU2MTU1XFx1NjE4MlwiXSxcbiAgICAgIFtcImJjYTFcIiwgXCJcXHU2MTdDXFx1NjE3MFxcdTYxNkJcXHU2MTdFXFx1NjFBN1xcdTYxOTBcXHU2MUFCXFx1NjE4RVxcdTYxQUNcXHU2MTlBXFx1NjFBNFxcdTYxOTRcXHU2MUFFXFx1NjIyRVxcdTY0NjlcXHU2NDZGXFx1NjQ3OVxcdTY0OUVcXHU2NEIyXFx1NjQ4OFxcdTY0OTBcXHU2NEIwXFx1NjRBNVxcdTY0OTNcXHU2NDk1XFx1NjRBOVxcdTY0OTJcXHU2NEFFXFx1NjRBRFxcdTY0QUJcXHU2NDlBXFx1NjRBQ1xcdTY0OTlcXHU2NEEyXFx1NjRCM1xcdTY1NzVcXHU2NTc3XFx1NjU3OFxcdTY2QUVcXHU2NkFCXFx1NjZCNFxcdTY2QjFcXHU2QTIzXFx1NkExRlxcdTY5RThcXHU2QTAxXFx1NkExRVxcdTZBMTlcXHU2OUZEXFx1NkEyMVxcdTZBMTNcXHU2QTBBXFx1NjlGM1xcdTZBMDJcXHU2QTA1XFx1NjlFRFxcdTZBMTFcXHU2QjUwXFx1NkI0RVxcdTZCQTRcXHU2QkM1XFx1NkJDNlxcdTZGM0ZcXHU2RjdDXFx1NkY4NFxcdTZGNTFcXHU2RjY2XFx1NkY1NFxcdTZGODZcXHU2RjZEXFx1NkY1QlxcdTZGNzhcXHU2RjZFXFx1NkY4RVxcdTZGN0FcXHU2RjcwXFx1NkY2NFxcdTZGOTdcXHU2RjU4XFx1NkVENVxcdTZGNkZcXHU2RjYwXFx1NkY1RlxcdTcxOUZcXHU3MUFDXFx1NzFCMVxcdTcxQThcXHU3MjU2XFx1NzI5QlxcdTczNEVcXHU3MzU3XFx1NzQ2OVxcdTc0OEJcXHU3NDgzXCJdLFxuICAgICAgW1wiYmQ0MFwiLCBcIlxcdTc0N0VcXHU3NDgwXFx1NzU3RlxcdTc2MjBcXHU3NjI5XFx1NzYxRlxcdTc2MjRcXHU3NjI2XFx1NzYyMVxcdTc2MjJcXHU3NjlBXFx1NzZCQVxcdTc2RTRcXHU3NzhFXFx1Nzc4N1xcdTc3OENcXHU3NzkxXFx1Nzc4QlxcdTc4Q0JcXHU3OEM1XFx1NzhCQVxcdTc4Q0FcXHU3OEJFXFx1NzhENVxcdTc4QkNcXHU3OEQwXFx1N0EzRlxcdTdBM0NcXHU3QTQwXFx1N0EzRFxcdTdBMzdcXHU3QTNCXFx1N0FBRlxcdTdBQUVcXHU3QkFEXFx1N0JCMVxcdTdCQzRcXHU3QkI0XFx1N0JDNlxcdTdCQzdcXHU3QkMxXFx1N0JBMFxcdTdCQ0NcXHU3Q0NBXFx1N0RFMFxcdTdERjRcXHU3REVGXFx1N0RGQlxcdTdERDhcXHU3REVDXFx1N0RERFxcdTdERThcXHU3REUzXFx1N0REQVxcdTdEREVcXHU3REU5XFx1N0Q5RVxcdTdERDlcXHU3REYyXFx1N0RGOVxcdTdGNzVcXHU3Rjc3XFx1N0ZBRlwiXSxcbiAgICAgIFtcImJkYTFcIiwgXCJcXHU3RkU5XFx1ODAyNlxcdTgxOUJcXHU4MTlDXFx1ODE5RFxcdTgxQTBcXHU4MTlBXFx1ODE5OFxcdTg1MTdcXHU4NTNEXFx1ODUxQVxcdTg0RUVcXHU4NTJDXFx1ODUyRFxcdTg1MTNcXHU4NTExXFx1ODUyM1xcdTg1MjFcXHU4NTE0XFx1ODRFQ1xcdTg1MjVcXHU4NEZGXFx1ODUwNlxcdTg3ODJcXHU4Nzc0XFx1ODc3NlxcdTg3NjBcXHU4NzY2XFx1ODc3OFxcdTg3NjhcXHU4NzU5XFx1ODc1N1xcdTg3NENcXHU4NzUzXFx1ODg1QlxcdTg4NURcXHU4OTEwXFx1ODkwN1xcdTg5MTJcXHU4OTEzXFx1ODkxNVxcdTg5MEFcXHU4QUJDXFx1OEFEMlxcdThBQzdcXHU4QUM0XFx1OEE5NVxcdThBQ0JcXHU4QUY4XFx1OEFCMlxcdThBQzlcXHU4QUMyXFx1OEFCRlxcdThBQjBcXHU4QUQ2XFx1OEFDRFxcdThBQjZcXHU4QUI5XFx1OEFEQlxcdThDNENcXHU4QzRFXFx1OEM2Q1xcdThDRTBcXHU4Q0RFXFx1OENFNlxcdThDRTRcXHU4Q0VDXFx1OENFRFxcdThDRTJcXHU4Q0UzXFx1OENEQ1xcdThDRUFcXHU4Q0UxXFx1OEQ2RFxcdThEOUZcXHU4REEzXFx1OEUyQlxcdThFMTBcXHU4RTFEXFx1OEUyMlxcdThFMEZcXHU4RTI5XFx1OEUxRlxcdThFMjFcXHU4RTFFXFx1OEVCQVxcdThGMURcXHU4RjFCXFx1OEYxRlxcdThGMjlcXHU4RjI2XFx1OEYyQVxcdThGMUNcXHU4RjFFXCJdLFxuICAgICAgW1wiYmU0MFwiLCBcIlxcdThGMjVcXHU5MDY5XFx1OTA2RVxcdTkwNjhcXHU5MDZEXFx1OTA3N1xcdTkxMzBcXHU5MTJEXFx1OTEyN1xcdTkxMzFcXHU5MTg3XFx1OTE4OVxcdTkxOEJcXHU5MTgzXFx1OTJDNVxcdTkyQkJcXHU5MkI3XFx1OTJFQVxcdTkyQUNcXHU5MkU0XFx1OTJDMVxcdTkyQjNcXHU5MkJDXFx1OTJEMlxcdTkyQzdcXHU5MkYwXFx1OTJCMlxcdTk1QURcXHU5NUIxXFx1OTcwNFxcdTk3MDZcXHU5NzA3XFx1OTcwOVxcdTk3NjBcXHU5NzhEXFx1OTc4QlxcdTk3OEZcXHU5ODIxXFx1OTgyQlxcdTk4MUNcXHU5OEIzXFx1OTkwQVxcdTk5MTNcXHU5OTEyXFx1OTkxOFxcdTk5RERcXHU5OUQwXFx1OTlERlxcdTk5REJcXHU5OUQxXFx1OTlENVxcdTk5RDJcXHU5OUQ5XFx1OUFCN1xcdTlBRUVcXHU5QUVGXFx1OUIyN1xcdTlCNDVcXHU5QjQ0XFx1OUI3N1xcdTlCNkZcXHU5RDA2XFx1OUQwOVwiXSxcbiAgICAgIFtcImJlYTFcIiwgXCJcXHU5RDAzXFx1OUVBOVxcdTlFQkVcXHU5RUNFXFx1NThBOFxcdTlGNTJcXHU1MTEyXFx1NTExOFxcdTUxMTRcXHU1MTEwXFx1NTExNVxcdTUxODBcXHU1MUFBXFx1NTFERFxcdTUyOTFcXHU1MjkzXFx1NTJGM1xcdTU2NTlcXHU1NjZCXFx1NTY3OVxcdTU2NjlcXHU1NjY0XFx1NTY3OFxcdTU2NkFcXHU1NjY4XFx1NTY2NVxcdTU2NzFcXHU1NjZGXFx1NTY2Q1xcdTU2NjJcXHU1Njc2XFx1NThDMVxcdTU4QkVcXHU1OEM3XFx1NThDNVxcdTU5NkVcXHU1QjFEXFx1NUIzNFxcdTVCNzhcXHU1QkYwXFx1NUMwRVxcdTVGNEFcXHU2MUIyXFx1NjE5MVxcdTYxQTlcXHU2MThBXFx1NjFDRFxcdTYxQjZcXHU2MUJFXFx1NjFDQVxcdTYxQzhcXHU2MjMwXFx1NjRDNVxcdTY0QzFcXHU2NENCXFx1NjRCQlxcdTY0QkNcXHU2NERBXFx1NjRDNFxcdTY0QzdcXHU2NEMyXFx1NjRDRFxcdTY0QkZcXHU2NEQyXFx1NjRENFxcdTY0QkVcXHU2NTc0XFx1NjZDNlxcdTY2QzlcXHU2NkI5XFx1NjZDNFxcdTY2QzdcXHU2NkI4XFx1NkEzRFxcdTZBMzhcXHU2QTNBXFx1NkE1OVxcdTZBNkJcXHU2QTU4XFx1NkEzOVxcdTZBNDRcXHU2QTYyXFx1NkE2MVxcdTZBNEJcXHU2QTQ3XFx1NkEzNVxcdTZBNUZcXHU2QTQ4XFx1NkI1OVxcdTZCNzdcXHU2QzA1XFx1NkZDMlxcdTZGQjFcXHU2RkExXCJdLFxuICAgICAgW1wiYmY0MFwiLCBcIlxcdTZGQzNcXHU2RkE0XFx1NkZDMVxcdTZGQTdcXHU2RkIzXFx1NkZDMFxcdTZGQjlcXHU2RkI2XFx1NkZBNlxcdTZGQTBcXHU2RkI0XFx1NzFCRVxcdTcxQzlcXHU3MUQwXFx1NzFEMlxcdTcxQzhcXHU3MUQ1XFx1NzFCOVxcdTcxQ0VcXHU3MUQ5XFx1NzFEQ1xcdTcxQzNcXHU3MUM0XFx1NzM2OFxcdTc0OUNcXHU3NEEzXFx1NzQ5OFxcdTc0OUZcXHU3NDlFXFx1NzRFMlxcdTc1MENcXHU3NTBEXFx1NzYzNFxcdTc2MzhcXHU3NjNBXFx1NzZFN1xcdTc2RTVcXHU3N0EwXFx1Nzc5RVxcdTc3OUZcXHU3N0E1XFx1NzhFOFxcdTc4REFcXHU3OEVDXFx1NzhFN1xcdTc5QTZcXHU3QTREXFx1N0E0RVxcdTdBNDZcXHU3QTRDXFx1N0E0QlxcdTdBQkFcXHU3QkQ5XFx1N0MxMVxcdTdCQzlcXHU3QkU0XFx1N0JEQlxcdTdCRTFcXHU3QkU5XFx1N0JFNlxcdTdDRDVcXHU3Q0Q2XFx1N0UwQVwiXSxcbiAgICAgIFtcImJmYTFcIiwgXCJcXHU3RTExXFx1N0UwOFxcdTdFMUJcXHU3RTIzXFx1N0UxRVxcdTdFMURcXHU3RTA5XFx1N0UxMFxcdTdGNzlcXHU3RkIyXFx1N0ZGMFxcdTdGRjFcXHU3RkVFXFx1ODAyOFxcdTgxQjNcXHU4MUE5XFx1ODFBOFxcdTgxRkJcXHU4MjA4XFx1ODI1OFxcdTgyNTlcXHU4NTRBXFx1ODU1OVxcdTg1NDhcXHU4NTY4XFx1ODU2OVxcdTg1NDNcXHU4NTQ5XFx1ODU2RFxcdTg1NkFcXHU4NTVFXFx1ODc4M1xcdTg3OUZcXHU4NzlFXFx1ODdBMlxcdTg3OERcXHU4ODYxXFx1ODkyQVxcdTg5MzJcXHU4OTI1XFx1ODkyQlxcdTg5MjFcXHU4OUFBXFx1ODlBNlxcdThBRTZcXHU4QUZBXFx1OEFFQlxcdThBRjFcXHU4QjAwXFx1OEFEQ1xcdThBRTdcXHU4QUVFXFx1OEFGRVxcdThCMDFcXHU4QjAyXFx1OEFGN1xcdThBRURcXHU4QUYzXFx1OEFGNlxcdThBRkNcXHU4QzZCXFx1OEM2RFxcdThDOTNcXHU4Q0Y0XFx1OEU0NFxcdThFMzFcXHU4RTM0XFx1OEU0MlxcdThFMzlcXHU4RTM1XFx1OEYzQlxcdThGMkZcXHU4RjM4XFx1OEYzM1xcdThGQThcXHU4RkE2XFx1OTA3NVxcdTkwNzRcXHU5MDc4XFx1OTA3MlxcdTkwN0NcXHU5MDdBXFx1OTEzNFxcdTkxOTJcXHU5MzIwXFx1OTMzNlxcdTkyRjhcXHU5MzMzXFx1OTMyRlxcdTkzMjJcXHU5MkZDXFx1OTMyQlxcdTkzMDRcXHU5MzFBXCJdLFxuICAgICAgW1wiYzA0MFwiLCBcIlxcdTkzMTBcXHU5MzI2XFx1OTMyMVxcdTkzMTVcXHU5MzJFXFx1OTMxOVxcdTk1QkJcXHU5NkE3XFx1OTZBOFxcdTk2QUFcXHU5NkQ1XFx1OTcwRVxcdTk3MTFcXHU5NzE2XFx1OTcwRFxcdTk3MTNcXHU5NzBGXFx1OTc1QlxcdTk3NUNcXHU5NzY2XFx1OTc5OFxcdTk4MzBcXHU5ODM4XFx1OTgzQlxcdTk4MzdcXHU5ODJEXFx1OTgzOVxcdTk4MjRcXHU5OTEwXFx1OTkyOFxcdTk5MUVcXHU5OTFCXFx1OTkyMVxcdTk5MUFcXHU5OUVEXFx1OTlFMlxcdTk5RjFcXHU5QUI4XFx1OUFCQ1xcdTlBRkJcXHU5QUVEXFx1OUIyOFxcdTlCOTFcXHU5RDE1XFx1OUQyM1xcdTlEMjZcXHU5RDI4XFx1OUQxMlxcdTlEMUJcXHU5RUQ4XFx1OUVENFxcdTlGOERcXHU5RjlDXFx1NTEyQVxcdTUxMUZcXHU1MTIxXFx1NTEzMlxcdTUyRjVcXHU1NjhFXFx1NTY4MFxcdTU2OTBcXHU1Njg1XFx1NTY4N1wiXSxcbiAgICAgIFtcImMwYTFcIiwgXCJcXHU1NjhGXFx1NThENVxcdTU4RDNcXHU1OEQxXFx1NThDRVxcdTVCMzBcXHU1QjJBXFx1NUIyNFxcdTVCN0FcXHU1QzM3XFx1NUM2OFxcdTVEQkNcXHU1REJBXFx1NURCRFxcdTVEQjhcXHU1RTZCXFx1NUY0Q1xcdTVGQkRcXHU2MUM5XFx1NjFDMlxcdTYxQzdcXHU2MUU2XFx1NjFDQlxcdTYyMzJcXHU2MjM0XFx1NjRDRVxcdTY0Q0FcXHU2NEQ4XFx1NjRFMFxcdTY0RjBcXHU2NEU2XFx1NjRFQ1xcdTY0RjFcXHU2NEUyXFx1NjRFRFxcdTY1ODJcXHU2NTgzXFx1NjZEOVxcdTY2RDZcXHU2QTgwXFx1NkE5NFxcdTZBODRcXHU2QUEyXFx1NkE5Q1xcdTZBREJcXHU2QUEzXFx1NkE3RVxcdTZBOTdcXHU2QTkwXFx1NkFBMFxcdTZCNUNcXHU2QkFFXFx1NkJEQVxcdTZDMDhcXHU2RkQ4XFx1NkZGMVxcdTZGREZcXHU2RkUwXFx1NkZEQlxcdTZGRTRcXHU2RkVCXFx1NkZFRlxcdTZGODBcXHU2RkVDXFx1NkZFMVxcdTZGRTlcXHU2RkQ1XFx1NkZFRVxcdTZGRjBcXHU3MUU3XFx1NzFERlxcdTcxRUVcXHU3MUU2XFx1NzFFNVxcdTcxRURcXHU3MUVDXFx1NzFGNFxcdTcxRTBcXHU3MjM1XFx1NzI0NlxcdTczNzBcXHU3MzcyXFx1NzRBOVxcdTc0QjBcXHU3NEE2XFx1NzRBOFxcdTc2NDZcXHU3NjQyXFx1NzY0Q1xcdTc2RUFcXHU3N0IzXFx1NzdBQVxcdTc3QjBcXHU3N0FDXCJdLFxuICAgICAgW1wiYzE0MFwiLCBcIlxcdTc3QTdcXHU3N0FEXFx1NzdFRlxcdTc4RjdcXHU3OEZBXFx1NzhGNFxcdTc4RUZcXHU3OTAxXFx1NzlBN1xcdTc5QUFcXHU3QTU3XFx1N0FCRlxcdTdDMDdcXHU3QzBEXFx1N0JGRVxcdTdCRjdcXHU3QzBDXFx1N0JFMFxcdTdDRTBcXHU3Q0RDXFx1N0NERVxcdTdDRTJcXHU3Q0RGXFx1N0NEOVxcdTdDRERcXHU3RTJFXFx1N0UzRVxcdTdFNDZcXHU3RTM3XFx1N0UzMlxcdTdFNDNcXHU3RTJCXFx1N0UzRFxcdTdFMzFcXHU3RTQ1XFx1N0U0MVxcdTdFMzRcXHU3RTM5XFx1N0U0OFxcdTdFMzVcXHU3RTNGXFx1N0UyRlxcdTdGNDRcXHU3RkYzXFx1N0ZGQ1xcdTgwNzFcXHU4MDcyXFx1ODA3MFxcdTgwNkZcXHU4MDczXFx1ODFDNlxcdTgxQzNcXHU4MUJBXFx1ODFDMlxcdTgxQzBcXHU4MUJGXFx1ODFCRFxcdTgxQzlcXHU4MUJFXFx1ODFFOFxcdTgyMDlcXHU4MjcxXFx1ODVBQVwiXSxcbiAgICAgIFtcImMxYTFcIiwgXCJcXHU4NTg0XFx1ODU3RVxcdTg1OUNcXHU4NTkxXFx1ODU5NFxcdTg1QUZcXHU4NTlCXFx1ODU4N1xcdTg1QThcXHU4NThBXFx1ODY2N1xcdTg3QzBcXHU4N0QxXFx1ODdCM1xcdTg3RDJcXHU4N0M2XFx1ODdBQlxcdTg3QkJcXHU4N0JBXFx1ODdDOFxcdTg3Q0JcXHU4OTNCXFx1ODkzNlxcdTg5NDRcXHU4OTM4XFx1ODkzRFxcdTg5QUNcXHU4QjBFXFx1OEIxN1xcdThCMTlcXHU4QjFCXFx1OEIwQVxcdThCMjBcXHU4QjFEXFx1OEIwNFxcdThCMTBcXHU4QzQxXFx1OEMzRlxcdThDNzNcXHU4Q0ZBXFx1OENGRFxcdThDRkNcXHU4Q0Y4XFx1OENGQlxcdThEQThcXHU4RTQ5XFx1OEU0QlxcdThFNDhcXHU4RTRBXFx1OEY0NFxcdThGM0VcXHU4RjQyXFx1OEY0NVxcdThGM0ZcXHU5MDdGXFx1OTA3RFxcdTkwODRcXHU5MDgxXFx1OTA4MlxcdTkwODBcXHU5MTM5XFx1OTFBM1xcdTkxOUVcXHU5MTlDXFx1OTM0RFxcdTkzODJcXHU5MzI4XFx1OTM3NVxcdTkzNEFcXHU5MzY1XFx1OTM0QlxcdTkzMThcXHU5MzdFXFx1OTM2Q1xcdTkzNUJcXHU5MzcwXFx1OTM1QVxcdTkzNTRcXHU5NUNBXFx1OTVDQlxcdTk1Q0NcXHU5NUM4XFx1OTVDNlxcdTk2QjFcXHU5NkI4XFx1OTZENlxcdTk3MUNcXHU5NzFFXFx1OTdBMFxcdTk3RDNcXHU5ODQ2XFx1OThCNlxcdTk5MzVcXHU5QTAxXCJdLFxuICAgICAgW1wiYzI0MFwiLCBcIlxcdTk5RkZcXHU5QkFFXFx1OUJBQlxcdTlCQUFcXHU5QkFEXFx1OUQzQlxcdTlEM0ZcXHU5RThCXFx1OUVDRlxcdTlFREVcXHU5RURDXFx1OUVERFxcdTlFREJcXHU5RjNFXFx1OUY0QlxcdTUzRTJcXHU1Njk1XFx1NTZBRVxcdTU4RDlcXHU1OEQ4XFx1NUIzOFxcdTVGNURcXHU2MUUzXFx1NjIzM1xcdTY0RjRcXHU2NEYyXFx1NjRGRVxcdTY1MDZcXHU2NEZBXFx1NjRGQlxcdTY0RjdcXHU2NUI3XFx1NjZEQ1xcdTY3MjZcXHU2QUIzXFx1NkFBQ1xcdTZBQzNcXHU2QUJCXFx1NkFCOFxcdTZBQzJcXHU2QUFFXFx1NkFBRlxcdTZCNUZcXHU2Qjc4XFx1NkJBRlxcdTcwMDlcXHU3MDBCXFx1NkZGRVxcdTcwMDZcXHU2RkZBXFx1NzAxMVxcdTcwMEZcXHU3MUZCXFx1NzFGQ1xcdTcxRkVcXHU3MUY4XFx1NzM3N1xcdTczNzVcXHU3NEE3XFx1NzRCRlxcdTc1MTVcXHU3NjU2XFx1NzY1OFwiXSxcbiAgICAgIFtcImMyYTFcIiwgXCJcXHU3NjUyXFx1NzdCRFxcdTc3QkZcXHU3N0JCXFx1NzdCQ1xcdTc5MEVcXHU3OUFFXFx1N0E2MVxcdTdBNjJcXHU3QTYwXFx1N0FDNFxcdTdBQzVcXHU3QzJCXFx1N0MyN1xcdTdDMkFcXHU3QzFFXFx1N0MyM1xcdTdDMjFcXHU3Q0U3XFx1N0U1NFxcdTdFNTVcXHU3RTVFXFx1N0U1QVxcdTdFNjFcXHU3RTUyXFx1N0U1OVxcdTdGNDhcXHU3RkY5XFx1N0ZGQlxcdTgwNzdcXHU4MDc2XFx1ODFDRFxcdTgxQ0ZcXHU4MjBBXFx1ODVDRlxcdTg1QTlcXHU4NUNEXFx1ODVEMFxcdTg1QzlcXHU4NUIwXFx1ODVCQVxcdTg1QjlcXHU4NUE2XFx1ODdFRlxcdTg3RUNcXHU4N0YyXFx1ODdFMFxcdTg5ODZcXHU4OUIyXFx1ODlGNFxcdThCMjhcXHU4QjM5XFx1OEIyQ1xcdThCMkJcXHU4QzUwXFx1OEQwNVxcdThFNTlcXHU4RTYzXFx1OEU2NlxcdThFNjRcXHU4RTVGXFx1OEU1NVxcdThFQzBcXHU4RjQ5XFx1OEY0RFxcdTkwODdcXHU5MDgzXFx1OTA4OFxcdTkxQUJcXHU5MUFDXFx1OTFEMFxcdTkzOTRcXHU5MzhBXFx1OTM5NlxcdTkzQTJcXHU5M0IzXFx1OTNBRVxcdTkzQUNcXHU5M0IwXFx1OTM5OFxcdTkzOUFcXHU5Mzk3XFx1OTVENFxcdTk1RDZcXHU5NUQwXFx1OTVENVxcdTk2RTJcXHU5NkRDXFx1OTZEOVxcdTk2REJcXHU5NkRFXFx1OTcyNFxcdTk3QTNcXHU5N0E2XCJdLFxuICAgICAgW1wiYzM0MFwiLCBcIlxcdTk3QURcXHU5N0Y5XFx1OTg0RFxcdTk4NEZcXHU5ODRDXFx1OTg0RVxcdTk4NTNcXHU5OEJBXFx1OTkzRVxcdTk5M0ZcXHU5OTNEXFx1OTkyRVxcdTk5QTVcXHU5QTBFXFx1OUFDMVxcdTlCMDNcXHU5QjA2XFx1OUI0RlxcdTlCNEVcXHU5QjREXFx1OUJDQVxcdTlCQzlcXHU5QkZEXFx1OUJDOFxcdTlCQzBcXHU5RDUxXFx1OUQ1RFxcdTlENjBcXHU5RUUwXFx1OUYxNVxcdTlGMkNcXHU1MTMzXFx1NTZBNVxcdTU4REVcXHU1OERGXFx1NThFMlxcdTVCRjVcXHU5RjkwXFx1NUVFQ1xcdTYxRjJcXHU2MUY3XFx1NjFGNlxcdTYxRjVcXHU2NTAwXFx1NjUwRlxcdTY2RTBcXHU2NkREXFx1NkFFNVxcdTZBRERcXHU2QURBXFx1NkFEM1xcdTcwMUJcXHU3MDFGXFx1NzAyOFxcdTcwMUFcXHU3MDFEXFx1NzAxNVxcdTcwMThcXHU3MjA2XFx1NzIwRFxcdTcyNThcXHU3MkEyXFx1NzM3OFwiXSxcbiAgICAgIFtcImMzYTFcIiwgXCJcXHU3MzdBXFx1NzRCRFxcdTc0Q0FcXHU3NEUzXFx1NzU4N1xcdTc1ODZcXHU3NjVGXFx1NzY2MVxcdTc3QzdcXHU3OTE5XFx1NzlCMVxcdTdBNkJcXHU3QTY5XFx1N0MzRVxcdTdDM0ZcXHU3QzM4XFx1N0MzRFxcdTdDMzdcXHU3QzQwXFx1N0U2QlxcdTdFNkRcXHU3RTc5XFx1N0U2OVxcdTdFNkFcXHU3Rjg1XFx1N0U3M1xcdTdGQjZcXHU3RkI5XFx1N0ZCOFxcdTgxRDhcXHU4NUU5XFx1ODVERFxcdTg1RUFcXHU4NUQ1XFx1ODVFNFxcdTg1RTVcXHU4NUY3XFx1ODdGQlxcdTg4MDVcXHU4ODBEXFx1ODdGOVxcdTg3RkVcXHU4OTYwXFx1ODk1RlxcdTg5NTZcXHU4OTVFXFx1OEI0MVxcdThCNUNcXHU4QjU4XFx1OEI0OVxcdThCNUFcXHU4QjRFXFx1OEI0RlxcdThCNDZcXHU4QjU5XFx1OEQwOFxcdThEMEFcXHU4RTdDXFx1OEU3MlxcdThFODdcXHU4RTc2XFx1OEU2Q1xcdThFN0FcXHU4RTc0XFx1OEY1NFxcdThGNEVcXHU4RkFEXFx1OTA4QVxcdTkwOEJcXHU5MUIxXFx1OTFBRVxcdTkzRTFcXHU5M0QxXFx1OTNERlxcdTkzQzNcXHU5M0M4XFx1OTNEQ1xcdTkzRERcXHU5M0Q2XFx1OTNFMlxcdTkzQ0RcXHU5M0Q4XFx1OTNFNFxcdTkzRDdcXHU5M0U4XFx1OTVEQ1xcdTk2QjRcXHU5NkUzXFx1OTcyQVxcdTk3MjdcXHU5NzYxXFx1OTdEQ1xcdTk3RkJcXHU5ODVFXCJdLFxuICAgICAgW1wiYzQ0MFwiLCBcIlxcdTk4NThcXHU5ODVCXFx1OThCQ1xcdTk5NDVcXHU5OTQ5XFx1OUExNlxcdTlBMTlcXHU5QjBEXFx1OUJFOFxcdTlCRTdcXHU5QkQ2XFx1OUJEQlxcdTlEODlcXHU5RDYxXFx1OUQ3MlxcdTlENkFcXHU5RDZDXFx1OUU5MlxcdTlFOTdcXHU5RTkzXFx1OUVCNFxcdTUyRjhcXHU1NkE4XFx1NTZCN1xcdTU2QjZcXHU1NkI0XFx1NTZCQ1xcdTU4RTRcXHU1QjQwXFx1NUI0M1xcdTVCN0RcXHU1QkY2XFx1NURDOVxcdTYxRjhcXHU2MUZBXFx1NjUxOFxcdTY1MTRcXHU2NTE5XFx1NjZFNlxcdTY3MjdcXHU2QUVDXFx1NzAzRVxcdTcwMzBcXHU3MDMyXFx1NzIxMFxcdTczN0JcXHU3NENGXFx1NzY2MlxcdTc2NjVcXHU3OTI2XFx1NzkyQVxcdTc5MkNcXHU3OTJCXFx1N0FDN1xcdTdBRjZcXHU3QzRDXFx1N0M0M1xcdTdDNERcXHU3Q0VGXFx1N0NGMFxcdThGQUVcXHU3RTdEXFx1N0U3Q1wiXSxcbiAgICAgIFtcImM0YTFcIiwgXCJcXHU3RTgyXFx1N0Y0Q1xcdTgwMDBcXHU4MURBXFx1ODI2NlxcdTg1RkJcXHU4NUY5XFx1ODYxMVxcdTg1RkFcXHU4NjA2XFx1ODYwQlxcdTg2MDdcXHU4NjBBXFx1ODgxNFxcdTg4MTVcXHU4OTY0XFx1ODlCQVxcdTg5RjhcXHU4QjcwXFx1OEI2Q1xcdThCNjZcXHU4QjZGXFx1OEI1RlxcdThCNkJcXHU4RDBGXFx1OEQwRFxcdThFODlcXHU4RTgxXFx1OEU4NVxcdThFODJcXHU5MUI0XFx1OTFDQlxcdTk0MThcXHU5NDAzXFx1OTNGRFxcdTk1RTFcXHU5NzMwXFx1OThDNFxcdTk5NTJcXHU5OTUxXFx1OTlBOFxcdTlBMkJcXHU5QTMwXFx1OUEzN1xcdTlBMzVcXHU5QzEzXFx1OUMwRFxcdTlFNzlcXHU5RUI1XFx1OUVFOFxcdTlGMkZcXHU5RjVGXFx1OUY2M1xcdTlGNjFcXHU1MTM3XFx1NTEzOFxcdTU2QzFcXHU1NkMwXFx1NTZDMlxcdTU5MTRcXHU1QzZDXFx1NURDRFxcdTYxRkNcXHU2MUZFXFx1NjUxRFxcdTY1MUNcXHU2NTk1XFx1NjZFOVxcdTZBRkJcXHU2QjA0XFx1NkFGQVxcdTZCQjJcXHU3MDRDXFx1NzIxQlxcdTcyQTdcXHU3NEQ2XFx1NzRENFxcdTc2NjlcXHU3N0QzXFx1N0M1MFxcdTdFOEZcXHU3RThDXFx1N0ZCQ1xcdTg2MTdcXHU4NjJEXFx1ODYxQVxcdTg4MjNcXHU4ODIyXFx1ODgyMVxcdTg4MUZcXHU4OTZBXFx1ODk2Q1xcdTg5QkRcXHU4Qjc0XCJdLFxuICAgICAgW1wiYzU0MFwiLCBcIlxcdThCNzdcXHU4QjdEXFx1OEQxM1xcdThFOEFcXHU4RThEXFx1OEU4QlxcdThGNUZcXHU4RkFGXFx1OTFCQVxcdTk0MkVcXHU5NDMzXFx1OTQzNVxcdTk0M0FcXHU5NDM4XFx1OTQzMlxcdTk0MkJcXHU5NUUyXFx1OTczOFxcdTk3MzlcXHU5NzMyXFx1OTdGRlxcdTk4NjdcXHU5ODY1XFx1OTk1N1xcdTlBNDVcXHU5QTQzXFx1OUE0MFxcdTlBM0VcXHU5QUNGXFx1OUI1NFxcdTlCNTFcXHU5QzJEXFx1OUMyNVxcdTlEQUZcXHU5REI0XFx1OURDMlxcdTlEQjhcXHU5RTlEXFx1OUVFRlxcdTlGMTlcXHU5RjVDXFx1OUY2NlxcdTlGNjdcXHU1MTNDXFx1NTEzQlxcdTU2QzhcXHU1NkNBXFx1NTZDOVxcdTVCN0ZcXHU1REQ0XFx1NUREMlxcdTVGNEVcXHU2MUZGXFx1NjUyNFxcdTZCMEFcXHU2QjYxXFx1NzA1MVxcdTcwNThcXHU3MzgwXFx1NzRFNFxcdTc1OEFcXHU3NjZFXFx1NzY2Q1wiXSxcbiAgICAgIFtcImM1YTFcIiwgXCJcXHU3OUIzXFx1N0M2MFxcdTdDNUZcXHU4MDdFXFx1ODA3RFxcdTgxREZcXHU4OTcyXFx1ODk2RlxcdTg5RkNcXHU4QjgwXFx1OEQxNlxcdThEMTdcXHU4RTkxXFx1OEU5M1xcdThGNjFcXHU5MTQ4XFx1OTQ0NFxcdTk0NTFcXHU5NDUyXFx1OTczRFxcdTk3M0VcXHU5N0MzXFx1OTdDMVxcdTk4NkJcXHU5OTU1XFx1OUE1NVxcdTlBNERcXHU5QUQyXFx1OUIxQVxcdTlDNDlcXHU5QzMxXFx1OUMzRVxcdTlDM0JcXHU5REQzXFx1OUREN1xcdTlGMzRcXHU5RjZDXFx1OUY2QVxcdTlGOTRcXHU1NkNDXFx1NURENlxcdTYyMDBcXHU2NTIzXFx1NjUyQlxcdTY1MkFcXHU2NkVDXFx1NkIxMFxcdTc0REFcXHU3QUNBXFx1N0M2NFxcdTdDNjNcXHU3QzY1XFx1N0U5M1xcdTdFOTZcXHU3RTk0XFx1ODFFMlxcdTg2MzhcXHU4NjNGXFx1ODgzMVxcdThCOEFcXHU5MDkwXFx1OTA4RlxcdTk0NjNcXHU5NDYwXFx1OTQ2NFxcdTk3NjhcXHU5ODZGXFx1OTk1Q1xcdTlBNUFcXHU5QTVCXFx1OUE1N1xcdTlBRDNcXHU5QUQ0XFx1OUFEMVxcdTlDNTRcXHU5QzU3XFx1OUM1NlxcdTlERTVcXHU5RTlGXFx1OUVGNFxcdTU2RDFcXHU1OEU5XFx1NjUyQ1xcdTcwNUVcXHU3NjcxXFx1NzY3MlxcdTc3RDdcXHU3RjUwXFx1N0Y4OFxcdTg4MzZcXHU4ODM5XFx1ODg2MlxcdThCOTNcXHU4QjkyXCJdLFxuICAgICAgW1wiYzY0MFwiLCBcIlxcdThCOTZcXHU4Mjc3XFx1OEQxQlxcdTkxQzBcXHU5NDZBXFx1OTc0MlxcdTk3NDhcXHU5NzQ0XFx1OTdDNlxcdTk4NzBcXHU5QTVGXFx1OUIyMlxcdTlCNThcXHU5QzVGXFx1OURGOVxcdTlERkFcXHU5RTdDXFx1OUU3RFxcdTlGMDdcXHU5Rjc3XFx1OUY3MlxcdTVFRjNcXHU2QjE2XFx1NzA2M1xcdTdDNkNcXHU3QzZFXFx1ODgzQlxcdTg5QzBcXHU4RUExXFx1OTFDMVxcdTk0NzJcXHU5NDcwXFx1OTg3MVxcdTk5NUVcXHU5QUQ2XFx1OUIyM1xcdTlFQ0NcXHU3MDY0XFx1NzdEQVxcdThCOUFcXHU5NDc3XFx1OTdDOVxcdTlBNjJcXHU5QTY1XFx1N0U5Q1xcdThCOUNcXHU4RUFBXFx1OTFDNVxcdTk0N0RcXHU5NDdFXFx1OTQ3Q1xcdTlDNzdcXHU5Qzc4XFx1OUVGN1xcdThDNTRcXHU5NDdGXFx1OUUxQVxcdTcyMjhcXHU5QTZBXFx1OUIzMVxcdTlFMUJcXHU5RTFFXFx1N0M3MlwiXSxcbiAgICAgIFtcImM5NDBcIiwgXCJcXHU0RTQyXFx1NEU1Q1xcdTUxRjVcXHU1MzFBXFx1NTM4MlxcdTRFMDdcXHU0RTBDXFx1NEU0N1xcdTRFOERcXHU1NkQ3XFx1RkEwQ1xcdTVDNkVcXHU1RjczXFx1NEUwRlxcdTUxODdcXHU0RTBFXFx1NEUyRVxcdTRFOTNcXHU0RUMyXFx1NEVDOVxcdTRFQzhcXHU1MTk4XFx1NTJGQ1xcdTUzNkNcXHU1M0I5XFx1NTcyMFxcdTU5MDNcXHU1OTJDXFx1NUMxMFxcdTVERkZcXHU2NUUxXFx1NkJCM1xcdTZCQ0NcXHU2QzE0XFx1NzIzRlxcdTRFMzFcXHU0RTNDXFx1NEVFOFxcdTRFRENcXHU0RUU5XFx1NEVFMVxcdTRFRERcXHU0RURBXFx1NTIwQ1xcdTUzMUNcXHU1MzRDXFx1NTcyMlxcdTU3MjNcXHU1OTE3XFx1NTkyRlxcdTVCODFcXHU1Qjg0XFx1NUMxMlxcdTVDM0JcXHU1Qzc0XFx1NUM3M1xcdTVFMDRcXHU1RTgwXFx1NUU4MlxcdTVGQzlcXHU2MjA5XFx1NjI1MFxcdTZDMTVcIl0sXG4gICAgICBbXCJjOWExXCIsIFwiXFx1NkMzNlxcdTZDNDNcXHU2QzNGXFx1NkMzQlxcdTcyQUVcXHU3MkIwXFx1NzM4QVxcdTc5QjhcXHU4MDhBXFx1OTYxRVxcdTRGMEVcXHU0RjE4XFx1NEYyQ1xcdTRFRjVcXHU0RjE0XFx1NEVGMVxcdTRGMDBcXHU0RUY3XFx1NEYwOFxcdTRGMURcXHU0RjAyXFx1NEYwNVxcdTRGMjJcXHU0RjEzXFx1NEYwNFxcdTRFRjRcXHU0RjEyXFx1NTFCMVxcdTUyMTNcXHU1MjA5XFx1NTIxMFxcdTUyQTZcXHU1MzIyXFx1NTMxRlxcdTUzNERcXHU1MzhBXFx1NTQwN1xcdTU2RTFcXHU1NkRGXFx1NTcyRVxcdTU3MkFcXHU1NzM0XFx1NTkzQ1xcdTU5ODBcXHU1OTdDXFx1NTk4NVxcdTU5N0JcXHU1OTdFXFx1NTk3N1xcdTU5N0ZcXHU1QjU2XFx1NUMxNVxcdTVDMjVcXHU1QzdDXFx1NUM3QVxcdTVDN0JcXHU1QzdFXFx1NURERlxcdTVFNzVcXHU1RTg0XFx1NUYwMlxcdTVGMUFcXHU1Rjc0XFx1NUZENVxcdTVGRDRcXHU1RkNGXFx1NjI1Q1xcdTYyNUVcXHU2MjY0XFx1NjI2MVxcdTYyNjZcXHU2MjYyXFx1NjI1OVxcdTYyNjBcXHU2MjVBXFx1NjI2NVxcdTY1RUZcXHU2NUVFXFx1NjczRVxcdTY3MzlcXHU2NzM4XFx1NjczQlxcdTY3M0FcXHU2NzNGXFx1NjczQ1xcdTY3MzNcXHU2QzE4XFx1NkM0NlxcdTZDNTJcXHU2QzVDXFx1NkM0RlxcdTZDNEFcXHU2QzU0XFx1NkM0QlwiXSxcbiAgICAgIFtcImNhNDBcIiwgXCJcXHU2QzRDXFx1NzA3MVxcdTcyNUVcXHU3MkI0XFx1NzJCNVxcdTczOEVcXHU3NTJBXFx1NzY3RlxcdTdBNzVcXHU3RjUxXFx1ODI3OFxcdTgyN0NcXHU4MjgwXFx1ODI3RFxcdTgyN0ZcXHU4NjREXFx1ODk3RVxcdTkwOTlcXHU5MDk3XFx1OTA5OFxcdTkwOUJcXHU5MDk0XFx1OTYyMlxcdTk2MjRcXHU5NjIwXFx1OTYyM1xcdTRGNTZcXHU0RjNCXFx1NEY2MlxcdTRGNDlcXHU0RjUzXFx1NEY2NFxcdTRGM0VcXHU0RjY3XFx1NEY1MlxcdTRGNUZcXHU0RjQxXFx1NEY1OFxcdTRGMkRcXHU0RjMzXFx1NEYzRlxcdTRGNjFcXHU1MThGXFx1NTFCOVxcdTUyMUNcXHU1MjFFXFx1NTIyMVxcdTUyQURcXHU1MkFFXFx1NTMwOVxcdTUzNjNcXHU1MzcyXFx1NTM4RVxcdTUzOEZcXHU1NDMwXFx1NTQzN1xcdTU0MkFcXHU1NDU0XFx1NTQ0NVxcdTU0MTlcXHU1NDFDXFx1NTQyNVxcdTU0MThcIl0sXG4gICAgICBbXCJjYWExXCIsIFwiXFx1NTQzRFxcdTU0NEZcXHU1NDQxXFx1NTQyOFxcdTU0MjRcXHU1NDQ3XFx1NTZFRVxcdTU2RTdcXHU1NkU1XFx1NTc0MVxcdTU3NDVcXHU1NzRDXFx1NTc0OVxcdTU3NEJcXHU1NzUyXFx1NTkwNlxcdTU5NDBcXHU1OUE2XFx1NTk5OFxcdTU5QTBcXHU1OTk3XFx1NTk4RVxcdTU5QTJcXHU1OTkwXFx1NTk4RlxcdTU5QTdcXHU1OUExXFx1NUI4RVxcdTVCOTJcXHU1QzI4XFx1NUMyQVxcdTVDOERcXHU1QzhGXFx1NUM4OFxcdTVDOEJcXHU1Qzg5XFx1NUM5MlxcdTVDOEFcXHU1Qzg2XFx1NUM5M1xcdTVDOTVcXHU1REUwXFx1NUUwQVxcdTVFMEVcXHU1RThCXFx1NUU4OVxcdTVFOENcXHU1RTg4XFx1NUU4RFxcdTVGMDVcXHU1RjFEXFx1NUY3OFxcdTVGNzZcXHU1RkQyXFx1NUZEMVxcdTVGRDBcXHU1RkVEXFx1NUZFOFxcdTVGRUVcXHU1RkYzXFx1NUZFMVxcdTVGRTRcXHU1RkUzXFx1NUZGQVxcdTVGRUZcXHU1RkY3XFx1NUZGQlxcdTYwMDBcXHU1RkY0XFx1NjIzQVxcdTYyODNcXHU2MjhDXFx1NjI4RVxcdTYyOEZcXHU2Mjk0XFx1NjI4N1xcdTYyNzFcXHU2MjdCXFx1NjI3QVxcdTYyNzBcXHU2MjgxXFx1NjI4OFxcdTYyNzdcXHU2MjdEXFx1NjI3MlxcdTYyNzRcXHU2NTM3XFx1NjVGMFxcdTY1RjRcXHU2NUYzXFx1NjVGMlxcdTY1RjVcXHU2NzQ1XFx1Njc0N1wiXSxcbiAgICAgIFtcImNiNDBcIiwgXCJcXHU2NzU5XFx1Njc1NVxcdTY3NENcXHU2NzQ4XFx1Njc1RFxcdTY3NERcXHU2NzVBXFx1Njc0QlxcdTZCRDBcXHU2QzE5XFx1NkMxQVxcdTZDNzhcXHU2QzY3XFx1NkM2QlxcdTZDODRcXHU2QzhCXFx1NkM4RlxcdTZDNzFcXHU2QzZGXFx1NkM2OVxcdTZDOUFcXHU2QzZEXFx1NkM4N1xcdTZDOTVcXHU2QzlDXFx1NkM2NlxcdTZDNzNcXHU2QzY1XFx1NkM3QlxcdTZDOEVcXHU3MDc0XFx1NzA3QVxcdTcyNjNcXHU3MkJGXFx1NzJCRFxcdTcyQzNcXHU3MkM2XFx1NzJDMVxcdTcyQkFcXHU3MkM1XFx1NzM5NVxcdTczOTdcXHU3MzkzXFx1NzM5NFxcdTczOTJcXHU3NTNBXFx1NzUzOVxcdTc1OTRcXHU3NTk1XFx1NzY4MVxcdTc5M0RcXHU4MDM0XFx1ODA5NVxcdTgwOTlcXHU4MDkwXFx1ODA5MlxcdTgwOUNcXHU4MjkwXFx1ODI4RlxcdTgyODVcXHU4MjhFXFx1ODI5MVxcdTgyOTNcIl0sXG4gICAgICBbXCJjYmExXCIsIFwiXFx1ODI4QVxcdTgyODNcXHU4Mjg0XFx1OEM3OFxcdThGQzlcXHU4RkJGXFx1OTA5RlxcdTkwQTFcXHU5MEE1XFx1OTA5RVxcdTkwQTdcXHU5MEEwXFx1OTYzMFxcdTk2MjhcXHU5NjJGXFx1OTYyRFxcdTRFMzNcXHU0Rjk4XFx1NEY3Q1xcdTRGODVcXHU0RjdEXFx1NEY4MFxcdTRGODdcXHU0Rjc2XFx1NEY3NFxcdTRGODlcXHU0Rjg0XFx1NEY3N1xcdTRGNENcXHU0Rjk3XFx1NEY2QVxcdTRGOUFcXHU0Rjc5XFx1NEY4MVxcdTRGNzhcXHU0RjkwXFx1NEY5Q1xcdTRGOTRcXHU0RjlFXFx1NEY5MlxcdTRGODJcXHU0Rjk1XFx1NEY2QlxcdTRGNkVcXHU1MTlFXFx1NTFCQ1xcdTUxQkVcXHU1MjM1XFx1NTIzMlxcdTUyMzNcXHU1MjQ2XFx1NTIzMVxcdTUyQkNcXHU1MzBBXFx1NTMwQlxcdTUzM0NcXHU1MzkyXFx1NTM5NFxcdTU0ODdcXHU1NDdGXFx1NTQ4MVxcdTU0OTFcXHU1NDgyXFx1NTQ4OFxcdTU0NkJcXHU1NDdBXFx1NTQ3RVxcdTU0NjVcXHU1NDZDXFx1NTQ3NFxcdTU0NjZcXHU1NDhEXFx1NTQ2RlxcdTU0NjFcXHU1NDYwXFx1NTQ5OFxcdTU0NjNcXHU1NDY3XFx1NTQ2NFxcdTU2RjdcXHU1NkY5XFx1NTc2RlxcdTU3NzJcXHU1NzZEXFx1NTc2QlxcdTU3NzFcXHU1NzcwXFx1NTc3NlxcdTU3ODBcXHU1Nzc1XFx1NTc3QlxcdTU3NzNcXHU1Nzc0XFx1NTc2MlwiXSxcbiAgICAgIFtcImNjNDBcIiwgXCJcXHU1NzY4XFx1NTc3RFxcdTU5MENcXHU1OTQ1XFx1NTlCNVxcdTU5QkFcXHU1OUNGXFx1NTlDRVxcdTU5QjJcXHU1OUNDXFx1NTlDMVxcdTU5QjZcXHU1OUJDXFx1NTlDM1xcdTU5RDZcXHU1OUIxXFx1NTlCRFxcdTU5QzBcXHU1OUM4XFx1NTlCNFxcdTU5QzdcXHU1QjYyXFx1NUI2NVxcdTVCOTNcXHU1Qjk1XFx1NUM0NFxcdTVDNDdcXHU1Q0FFXFx1NUNBNFxcdTVDQTBcXHU1Q0I1XFx1NUNBRlxcdTVDQThcXHU1Q0FDXFx1NUM5RlxcdTVDQTNcXHU1Q0FEXFx1NUNBMlxcdTVDQUFcXHU1Q0E3XFx1NUM5RFxcdTVDQTVcXHU1Q0I2XFx1NUNCMFxcdTVDQTZcXHU1RTE3XFx1NUUxNFxcdTVFMTlcXHU1RjI4XFx1NUYyMlxcdTVGMjNcXHU1RjI0XFx1NUY1NFxcdTVGODJcXHU1RjdFXFx1NUY3RFxcdTVGREVcXHU1RkU1XFx1NjAyRFxcdTYwMjZcXHU2MDE5XFx1NjAzMlxcdTYwMEJcIl0sXG4gICAgICBbXCJjY2ExXCIsIFwiXFx1NjAzNFxcdTYwMEFcXHU2MDE3XFx1NjAzM1xcdTYwMUFcXHU2MDFFXFx1NjAyQ1xcdTYwMjJcXHU2MDBEXFx1NjAxMFxcdTYwMkVcXHU2MDEzXFx1NjAxMVxcdTYwMENcXHU2MDA5XFx1NjAxQ1xcdTYyMTRcXHU2MjNEXFx1NjJBRFxcdTYyQjRcXHU2MkQxXFx1NjJCRVxcdTYyQUFcXHU2MkI2XFx1NjJDQVxcdTYyQUVcXHU2MkIzXFx1NjJBRlxcdTYyQkJcXHU2MkE5XFx1NjJCMFxcdTYyQjhcXHU2NTNEXFx1NjVBOFxcdTY1QkJcXHU2NjA5XFx1NjVGQ1xcdTY2MDRcXHU2NjEyXFx1NjYwOFxcdTY1RkJcXHU2NjAzXFx1NjYwQlxcdTY2MERcXHU2NjA1XFx1NjVGRFxcdTY2MTFcXHU2NjEwXFx1NjZGNlxcdTY3MEFcXHU2Nzg1XFx1Njc2Q1xcdTY3OEVcXHU2NzkyXFx1Njc3NlxcdTY3N0JcXHU2Nzk4XFx1Njc4NlxcdTY3ODRcXHU2Nzc0XFx1Njc4RFxcdTY3OENcXHU2NzdBXFx1Njc5RlxcdTY3OTFcXHU2Nzk5XFx1Njc4M1xcdTY3N0RcXHU2NzgxXFx1Njc3OFxcdTY3NzlcXHU2Nzk0XFx1NkIyNVxcdTZCODBcXHU2QjdFXFx1NkJERVxcdTZDMURcXHU2QzkzXFx1NkNFQ1xcdTZDRUJcXHU2Q0VFXFx1NkNEOVxcdTZDQjZcXHU2Q0Q0XFx1NkNBRFxcdTZDRTdcXHU2Q0I3XFx1NkNEMFxcdTZDQzJcXHU2Q0JBXFx1NkNDM1xcdTZDQzZcXHU2Q0VEXFx1NkNGMlwiXSxcbiAgICAgIFtcImNkNDBcIiwgXCJcXHU2Q0QyXFx1NkNERFxcdTZDQjRcXHU2QzhBXFx1NkM5RFxcdTZDODBcXHU2Q0RFXFx1NkNDMFxcdTZEMzBcXHU2Q0NEXFx1NkNDN1xcdTZDQjBcXHU2Q0Y5XFx1NkNDRlxcdTZDRTlcXHU2Q0QxXFx1NzA5NFxcdTcwOThcXHU3MDg1XFx1NzA5M1xcdTcwODZcXHU3MDg0XFx1NzA5MVxcdTcwOTZcXHU3MDgyXFx1NzA5QVxcdTcwODNcXHU3MjZBXFx1NzJENlxcdTcyQ0JcXHU3MkQ4XFx1NzJDOVxcdTcyRENcXHU3MkQyXFx1NzJENFxcdTcyREFcXHU3MkNDXFx1NzJEMVxcdTczQTRcXHU3M0ExXFx1NzNBRFxcdTczQTZcXHU3M0EyXFx1NzNBMFxcdTczQUNcXHU3MzlEXFx1NzRERFxcdTc0RThcXHU3NTNGXFx1NzU0MFxcdTc1M0VcXHU3NThDXFx1NzU5OFxcdTc2QUZcXHU3NkYzXFx1NzZGMVxcdTc2RjBcXHU3NkY1XFx1NzdGOFxcdTc3RkNcXHU3N0Y5XFx1NzdGQlxcdTc3RkFcIl0sXG4gICAgICBbXCJjZGExXCIsIFwiXFx1NzdGN1xcdTc5NDJcXHU3OTNGXFx1NzlDNVxcdTdBNzhcXHU3QTdCXFx1N0FGQlxcdTdDNzVcXHU3Q0ZEXFx1ODAzNVxcdTgwOEZcXHU4MEFFXFx1ODBBM1xcdTgwQjhcXHU4MEI1XFx1ODBBRFxcdTgyMjBcXHU4MkEwXFx1ODJDMFxcdTgyQUJcXHU4MjlBXFx1ODI5OFxcdTgyOUJcXHU4MkI1XFx1ODJBN1xcdTgyQUVcXHU4MkJDXFx1ODI5RVxcdTgyQkFcXHU4MkI0XFx1ODJBOFxcdTgyQTFcXHU4MkE5XFx1ODJDMlxcdTgyQTRcXHU4MkMzXFx1ODJCNlxcdTgyQTJcXHU4NjcwXFx1ODY2RlxcdTg2NkRcXHU4NjZFXFx1OEM1NlxcdThGRDJcXHU4RkNCXFx1OEZEM1xcdThGQ0RcXHU4RkQ2XFx1OEZENVxcdThGRDdcXHU5MEIyXFx1OTBCNFxcdTkwQUZcXHU5MEIzXFx1OTBCMFxcdTk2MzlcXHU5NjNEXFx1OTYzQ1xcdTk2M0FcXHU5NjQzXFx1NEZDRFxcdTRGQzVcXHU0RkQzXFx1NEZCMlxcdTRGQzlcXHU0RkNCXFx1NEZDMVxcdTRGRDRcXHU0RkRDXFx1NEZEOVxcdTRGQkJcXHU0RkIzXFx1NEZEQlxcdTRGQzdcXHU0RkQ2XFx1NEZCQVxcdTRGQzBcXHU0RkI5XFx1NEZFQ1xcdTUyNDRcXHU1MjQ5XFx1NTJDMFxcdTUyQzJcXHU1MzNEXFx1NTM3Q1xcdTUzOTdcXHU1Mzk2XFx1NTM5OVxcdTUzOThcXHU1NEJBXFx1NTRBMVxcdTU0QURcXHU1NEE1XFx1NTRDRlwiXSxcbiAgICAgIFtcImNlNDBcIiwgXCJcXHU1NEMzXFx1ODMwRFxcdTU0QjdcXHU1NEFFXFx1NTRENlxcdTU0QjZcXHU1NEM1XFx1NTRDNlxcdTU0QTBcXHU1NDcwXFx1NTRCQ1xcdTU0QTJcXHU1NEJFXFx1NTQ3MlxcdTU0REVcXHU1NEIwXFx1NTdCNVxcdTU3OUVcXHU1NzlGXFx1NTdBNFxcdTU3OENcXHU1Nzk3XFx1NTc5RFxcdTU3OUJcXHU1Nzk0XFx1NTc5OFxcdTU3OEZcXHU1Nzk5XFx1NTdBNVxcdTU3OUFcXHU1Nzk1XFx1NThGNFxcdTU5MERcXHU1OTUzXFx1NTlFMVxcdTU5REVcXHU1OUVFXFx1NUEwMFxcdTU5RjFcXHU1OUREXFx1NTlGQVxcdTU5RkRcXHU1OUZDXFx1NTlGNlxcdTU5RTRcXHU1OUYyXFx1NTlGN1xcdTU5REJcXHU1OUU5XFx1NTlGM1xcdTU5RjVcXHU1OUUwXFx1NTlGRVxcdTU5RjRcXHU1OUVEXFx1NUJBOFxcdTVDNENcXHU1Q0QwXFx1NUNEOFxcdTVDQ0NcXHU1Q0Q3XFx1NUNDQlxcdTVDREJcIl0sXG4gICAgICBbXCJjZWExXCIsIFwiXFx1NUNERVxcdTVDREFcXHU1Q0M5XFx1NUNDN1xcdTVDQ0FcXHU1Q0Q2XFx1NUNEM1xcdTVDRDRcXHU1Q0NGXFx1NUNDOFxcdTVDQzZcXHU1Q0NFXFx1NUNERlxcdTVDRjhcXHU1REY5XFx1NUUyMVxcdTVFMjJcXHU1RTIzXFx1NUUyMFxcdTVFMjRcXHU1RUIwXFx1NUVBNFxcdTVFQTJcXHU1RTlCXFx1NUVBM1xcdTVFQTVcXHU1RjA3XFx1NUYyRVxcdTVGNTZcXHU1Rjg2XFx1NjAzN1xcdTYwMzlcXHU2MDU0XFx1NjA3MlxcdTYwNUVcXHU2MDQ1XFx1NjA1M1xcdTYwNDdcXHU2MDQ5XFx1NjA1QlxcdTYwNENcXHU2MDQwXFx1NjA0MlxcdTYwNUZcXHU2MDI0XFx1NjA0NFxcdTYwNThcXHU2MDY2XFx1NjA2RVxcdTYyNDJcXHU2MjQzXFx1NjJDRlxcdTYzMERcXHU2MzBCXFx1NjJGNVxcdTYzMEVcXHU2MzAzXFx1NjJFQlxcdTYyRjlcXHU2MzBGXFx1NjMwQ1xcdTYyRjhcXHU2MkY2XFx1NjMwMFxcdTYzMTNcXHU2MzE0XFx1NjJGQVxcdTYzMTVcXHU2MkZCXFx1NjJGMFxcdTY1NDFcXHU2NTQzXFx1NjVBQVxcdTY1QkZcXHU2NjM2XFx1NjYyMVxcdTY2MzJcXHU2NjM1XFx1NjYxQ1xcdTY2MjZcXHU2NjIyXFx1NjYzM1xcdTY2MkJcXHU2NjNBXFx1NjYxRFxcdTY2MzRcXHU2NjM5XFx1NjYyRVxcdTY3MEZcXHU2NzEwXFx1NjdDMVxcdTY3RjJcXHU2N0M4XFx1NjdCQVwiXSxcbiAgICAgIFtcImNmNDBcIiwgXCJcXHU2N0RDXFx1NjdCQlxcdTY3RjhcXHU2N0Q4XFx1NjdDMFxcdTY3QjdcXHU2N0M1XFx1NjdFQlxcdTY3RTRcXHU2N0RGXFx1NjdCNVxcdTY3Q0RcXHU2N0IzXFx1NjdGN1xcdTY3RjZcXHU2N0VFXFx1NjdFM1xcdTY3QzJcXHU2N0I5XFx1NjdDRVxcdTY3RTdcXHU2N0YwXFx1NjdCMlxcdTY3RkNcXHU2N0M2XFx1NjdFRFxcdTY3Q0NcXHU2N0FFXFx1NjdFNlxcdTY3REJcXHU2N0ZBXFx1NjdDOVxcdTY3Q0FcXHU2N0MzXFx1NjdFQVxcdTY3Q0JcXHU2QjI4XFx1NkI4MlxcdTZCODRcXHU2QkI2XFx1NkJENlxcdTZCRDhcXHU2QkUwXFx1NkMyMFxcdTZDMjFcXHU2RDI4XFx1NkQzNFxcdTZEMkRcXHU2RDFGXFx1NkQzQ1xcdTZEM0ZcXHU2RDEyXFx1NkQwQVxcdTZDREFcXHU2RDMzXFx1NkQwNFxcdTZEMTlcXHU2RDNBXFx1NkQxQVxcdTZEMTFcXHU2RDAwXFx1NkQxRFxcdTZENDJcIl0sXG4gICAgICBbXCJjZmExXCIsIFwiXFx1NkQwMVxcdTZEMThcXHU2RDM3XFx1NkQwM1xcdTZEMEZcXHU2RDQwXFx1NkQwN1xcdTZEMjBcXHU2RDJDXFx1NkQwOFxcdTZEMjJcXHU2RDA5XFx1NkQxMFxcdTcwQjdcXHU3MDlGXFx1NzBCRVxcdTcwQjFcXHU3MEIwXFx1NzBBMVxcdTcwQjRcXHU3MEI1XFx1NzBBOVxcdTcyNDFcXHU3MjQ5XFx1NzI0QVxcdTcyNkNcXHU3MjcwXFx1NzI3M1xcdTcyNkVcXHU3MkNBXFx1NzJFNFxcdTcyRThcXHU3MkVCXFx1NzJERlxcdTcyRUFcXHU3MkU2XFx1NzJFM1xcdTczODVcXHU3M0NDXFx1NzNDMlxcdTczQzhcXHU3M0M1XFx1NzNCOVxcdTczQjZcXHU3M0I1XFx1NzNCNFxcdTczRUJcXHU3M0JGXFx1NzNDN1xcdTczQkVcXHU3M0MzXFx1NzNDNlxcdTczQjhcXHU3M0NCXFx1NzRFQ1xcdTc0RUVcXHU3NTJFXFx1NzU0N1xcdTc1NDhcXHU3NUE3XFx1NzVBQVxcdTc2NzlcXHU3NkM0XFx1NzcwOFxcdTc3MDNcXHU3NzA0XFx1NzcwNVxcdTc3MEFcXHU3NkY3XFx1NzZGQlxcdTc2RkFcXHU3N0U3XFx1NzdFOFxcdTc4MDZcXHU3ODExXFx1NzgxMlxcdTc4MDVcXHU3ODEwXFx1NzgwRlxcdTc4MEVcXHU3ODA5XFx1NzgwM1xcdTc4MTNcXHU3OTRBXFx1Nzk0Q1xcdTc5NEJcXHU3OTQ1XFx1Nzk0NFxcdTc5RDVcXHU3OUNEXFx1NzlDRlxcdTc5RDZcXHU3OUNFXFx1N0E4MFwiXSxcbiAgICAgIFtcImQwNDBcIiwgXCJcXHU3QTdFXFx1N0FEMVxcdTdCMDBcXHU3QjAxXFx1N0M3QVxcdTdDNzhcXHU3Qzc5XFx1N0M3RlxcdTdDODBcXHU3QzgxXFx1N0QwM1xcdTdEMDhcXHU3RDAxXFx1N0Y1OFxcdTdGOTFcXHU3RjhEXFx1N0ZCRVxcdTgwMDdcXHU4MDBFXFx1ODAwRlxcdTgwMTRcXHU4MDM3XFx1ODBEOFxcdTgwQzdcXHU4MEUwXFx1ODBEMVxcdTgwQzhcXHU4MEMyXFx1ODBEMFxcdTgwQzVcXHU4MEUzXFx1ODBEOVxcdTgwRENcXHU4MENBXFx1ODBENVxcdTgwQzlcXHU4MENGXFx1ODBEN1xcdTgwRTZcXHU4MENEXFx1ODFGRlxcdTgyMjFcXHU4Mjk0XFx1ODJEOVxcdTgyRkVcXHU4MkY5XFx1ODMwN1xcdTgyRThcXHU4MzAwXFx1ODJENVxcdTgzM0FcXHU4MkVCXFx1ODJENlxcdTgyRjRcXHU4MkVDXFx1ODJFMVxcdTgyRjJcXHU4MkY1XFx1ODMwQ1xcdTgyRkJcXHU4MkY2XFx1ODJGMFxcdTgyRUFcIl0sXG4gICAgICBbXCJkMGExXCIsIFwiXFx1ODJFNFxcdTgyRTBcXHU4MkZBXFx1ODJGM1xcdTgyRURcXHU4Njc3XFx1ODY3NFxcdTg2N0NcXHU4NjczXFx1ODg0MVxcdTg4NEVcXHU4ODY3XFx1ODg2QVxcdTg4NjlcXHU4OUQzXFx1OEEwNFxcdThBMDdcXHU4RDcyXFx1OEZFM1xcdThGRTFcXHU4RkVFXFx1OEZFMFxcdTkwRjFcXHU5MEJEXFx1OTBCRlxcdTkwRDVcXHU5MEM1XFx1OTBCRVxcdTkwQzdcXHU5MENCXFx1OTBDOFxcdTkxRDRcXHU5MUQzXFx1OTY1NFxcdTk2NEZcXHU5NjUxXFx1OTY1M1xcdTk2NEFcXHU5NjRFXFx1NTAxRVxcdTUwMDVcXHU1MDA3XFx1NTAxM1xcdTUwMjJcXHU1MDMwXFx1NTAxQlxcdTRGRjVcXHU0RkY0XFx1NTAzM1xcdTUwMzdcXHU1MDJDXFx1NEZGNlxcdTRGRjdcXHU1MDE3XFx1NTAxQ1xcdTUwMjBcXHU1MDI3XFx1NTAzNVxcdTUwMkZcXHU1MDMxXFx1NTAwRVxcdTUxNUFcXHU1MTk0XFx1NTE5M1xcdTUxQ0FcXHU1MUM0XFx1NTFDNVxcdTUxQzhcXHU1MUNFXFx1NTI2MVxcdTUyNUFcXHU1MjUyXFx1NTI1RVxcdTUyNUZcXHU1MjU1XFx1NTI2MlxcdTUyQ0RcXHU1MzBFXFx1NTM5RVxcdTU1MjZcXHU1NEUyXFx1NTUxN1xcdTU1MTJcXHU1NEU3XFx1NTRGM1xcdTU0RTRcXHU1NTFBXFx1NTRGRlxcdTU1MDRcXHU1NTA4XFx1NTRFQlxcdTU1MTFcXHU1NTA1XFx1NTRGMVwiXSxcbiAgICAgIFtcImQxNDBcIiwgXCJcXHU1NTBBXFx1NTRGQlxcdTU0RjdcXHU1NEY4XFx1NTRFMFxcdTU1MEVcXHU1NTAzXFx1NTUwQlxcdTU3MDFcXHU1NzAyXFx1NTdDQ1xcdTU4MzJcXHU1N0Q1XFx1NTdEMlxcdTU3QkFcXHU1N0M2XFx1NTdCRFxcdTU3QkNcXHU1N0I4XFx1NTdCNlxcdTU3QkZcXHU1N0M3XFx1NTdEMFxcdTU3QjlcXHU1N0MxXFx1NTkwRVxcdTU5NEFcXHU1QTE5XFx1NUExNlxcdTVBMkRcXHU1QTJFXFx1NUExNVxcdTVBMEZcXHU1QTE3XFx1NUEwQVxcdTVBMUVcXHU1QTMzXFx1NUI2Q1xcdTVCQTdcXHU1QkFEXFx1NUJBQ1xcdTVDMDNcXHU1QzU2XFx1NUM1NFxcdTVDRUNcXHU1Q0ZGXFx1NUNFRVxcdTVDRjFcXHU1Q0Y3XFx1NUQwMFxcdTVDRjlcXHU1RTI5XFx1NUUyOFxcdTVFQThcXHU1RUFFXFx1NUVBQVxcdTVFQUNcXHU1RjMzXFx1NUYzMFxcdTVGNjdcXHU2MDVEXFx1NjA1QVxcdTYwNjdcIl0sXG4gICAgICBbXCJkMWExXCIsIFwiXFx1NjA0MVxcdTYwQTJcXHU2MDg4XFx1NjA4MFxcdTYwOTJcXHU2MDgxXFx1NjA5RFxcdTYwODNcXHU2MDk1XFx1NjA5QlxcdTYwOTdcXHU2MDg3XFx1NjA5Q1xcdTYwOEVcXHU2MjE5XFx1NjI0NlxcdTYyRjJcXHU2MzEwXFx1NjM1NlxcdTYzMkNcXHU2MzQ0XFx1NjM0NVxcdTYzMzZcXHU2MzQzXFx1NjNFNFxcdTYzMzlcXHU2MzRCXFx1NjM0QVxcdTYzM0NcXHU2MzI5XFx1NjM0MVxcdTYzMzRcXHU2MzU4XFx1NjM1NFxcdTYzNTlcXHU2MzJEXFx1NjM0N1xcdTYzMzNcXHU2MzVBXFx1NjM1MVxcdTYzMzhcXHU2MzU3XFx1NjM0MFxcdTYzNDhcXHU2NTRBXFx1NjU0NlxcdTY1QzZcXHU2NUMzXFx1NjVDNFxcdTY1QzJcXHU2NjRBXFx1NjY1RlxcdTY2NDdcXHU2NjUxXFx1NjcxMlxcdTY3MTNcXHU2ODFGXFx1NjgxQVxcdTY4NDlcXHU2ODMyXFx1NjgzM1xcdTY4M0JcXHU2ODRCXFx1Njg0RlxcdTY4MTZcXHU2ODMxXFx1NjgxQ1xcdTY4MzVcXHU2ODJCXFx1NjgyRFxcdTY4MkZcXHU2ODRFXFx1Njg0NFxcdTY4MzRcXHU2ODFEXFx1NjgxMlxcdTY4MTRcXHU2ODI2XFx1NjgyOFxcdTY4MkVcXHU2ODREXFx1NjgzQVxcdTY4MjVcXHU2ODIwXFx1NkIyQ1xcdTZCMkZcXHU2QjJEXFx1NkIzMVxcdTZCMzRcXHU2QjZEXFx1ODA4MlxcdTZCODhcXHU2QkU2XFx1NkJFNFwiXSxcbiAgICAgIFtcImQyNDBcIiwgXCJcXHU2QkU4XFx1NkJFM1xcdTZCRTJcXHU2QkU3XFx1NkMyNVxcdTZEN0FcXHU2RDYzXFx1NkQ2NFxcdTZENzZcXHU2RDBEXFx1NkQ2MVxcdTZEOTJcXHU2RDU4XFx1NkQ2MlxcdTZENkRcXHU2RDZGXFx1NkQ5MVxcdTZEOERcXHU2REVGXFx1NkQ3RlxcdTZEODZcXHU2RDVFXFx1NkQ2N1xcdTZENjBcXHU2RDk3XFx1NkQ3MFxcdTZEN0NcXHU2RDVGXFx1NkQ4MlxcdTZEOThcXHU2RDJGXFx1NkQ2OFxcdTZEOEJcXHU2RDdFXFx1NkQ4MFxcdTZEODRcXHU2RDE2XFx1NkQ4M1xcdTZEN0JcXHU2RDdEXFx1NkQ3NVxcdTZEOTBcXHU3MERDXFx1NzBEM1xcdTcwRDFcXHU3MEREXFx1NzBDQlxcdTdGMzlcXHU3MEUyXFx1NzBEN1xcdTcwRDJcXHU3MERFXFx1NzBFMFxcdTcwRDRcXHU3MENEXFx1NzBDNVxcdTcwQzZcXHU3MEM3XFx1NzBEQVxcdTcwQ0VcXHU3MEUxXFx1NzI0MlxcdTcyNzhcIl0sXG4gICAgICBbXCJkMmExXCIsIFwiXFx1NzI3N1xcdTcyNzZcXHU3MzAwXFx1NzJGQVxcdTcyRjRcXHU3MkZFXFx1NzJGNlxcdTcyRjNcXHU3MkZCXFx1NzMwMVxcdTczRDNcXHU3M0Q5XFx1NzNFNVxcdTczRDZcXHU3M0JDXFx1NzNFN1xcdTczRTNcXHU3M0U5XFx1NzNEQ1xcdTczRDJcXHU3M0RCXFx1NzNENFxcdTczRERcXHU3M0RBXFx1NzNEN1xcdTczRDhcXHU3M0U4XFx1NzRERVxcdTc0REZcXHU3NEY0XFx1NzRGNVxcdTc1MjFcXHU3NTVCXFx1NzU1RlxcdTc1QjBcXHU3NUMxXFx1NzVCQlxcdTc1QzRcXHU3NUMwXFx1NzVCRlxcdTc1QjZcXHU3NUJBXFx1NzY4QVxcdTc2QzlcXHU3NzFEXFx1NzcxQlxcdTc3MTBcXHU3NzEzXFx1NzcxMlxcdTc3MjNcXHU3NzExXFx1NzcxNVxcdTc3MTlcXHU3NzFBXFx1NzcyMlxcdTc3MjdcXHU3ODIzXFx1NzgyQ1xcdTc4MjJcXHU3ODM1XFx1NzgyRlxcdTc4MjhcXHU3ODJFXFx1NzgyQlxcdTc4MjFcXHU3ODI5XFx1NzgzM1xcdTc4MkFcXHU3ODMxXFx1Nzk1NFxcdTc5NUJcXHU3OTRGXFx1Nzk1Q1xcdTc5NTNcXHU3OTUyXFx1Nzk1MVxcdTc5RUJcXHU3OUVDXFx1NzlFMFxcdTc5RUVcXHU3OUVEXFx1NzlFQVxcdTc5RENcXHU3OURFXFx1NzlERFxcdTdBODZcXHU3QTg5XFx1N0E4NVxcdTdBOEJcXHU3QThDXFx1N0E4QVxcdTdBODdcXHU3QUQ4XFx1N0IxMFwiXSxcbiAgICAgIFtcImQzNDBcIiwgXCJcXHU3QjA0XFx1N0IxM1xcdTdCMDVcXHU3QjBGXFx1N0IwOFxcdTdCMEFcXHU3QjBFXFx1N0IwOVxcdTdCMTJcXHU3Qzg0XFx1N0M5MVxcdTdDOEFcXHU3QzhDXFx1N0M4OFxcdTdDOERcXHU3Qzg1XFx1N0QxRVxcdTdEMURcXHU3RDExXFx1N0QwRVxcdTdEMThcXHU3RDE2XFx1N0QxM1xcdTdEMUZcXHU3RDEyXFx1N0QwRlxcdTdEMENcXHU3RjVDXFx1N0Y2MVxcdTdGNUVcXHU3RjYwXFx1N0Y1RFxcdTdGNUJcXHU3Rjk2XFx1N0Y5MlxcdTdGQzNcXHU3RkMyXFx1N0ZDMFxcdTgwMTZcXHU4MDNFXFx1ODAzOVxcdTgwRkFcXHU4MEYyXFx1ODBGOVxcdTgwRjVcXHU4MTAxXFx1ODBGQlxcdTgxMDBcXHU4MjAxXFx1ODIyRlxcdTgyMjVcXHU4MzMzXFx1ODMyRFxcdTgzNDRcXHU4MzE5XFx1ODM1MVxcdTgzMjVcXHU4MzU2XFx1ODMzRlxcdTgzNDFcXHU4MzI2XFx1ODMxQ1xcdTgzMjJcIl0sXG4gICAgICBbXCJkM2ExXCIsIFwiXFx1ODM0MlxcdTgzNEVcXHU4MzFCXFx1ODMyQVxcdTgzMDhcXHU4MzNDXFx1ODM0RFxcdTgzMTZcXHU4MzI0XFx1ODMyMFxcdTgzMzdcXHU4MzJGXFx1ODMyOVxcdTgzNDdcXHU4MzQ1XFx1ODM0Q1xcdTgzNTNcXHU4MzFFXFx1ODMyQ1xcdTgzNEJcXHU4MzI3XFx1ODM0OFxcdTg2NTNcXHU4NjUyXFx1ODZBMlxcdTg2QThcXHU4Njk2XFx1ODY4RFxcdTg2OTFcXHU4NjlFXFx1ODY4N1xcdTg2OTdcXHU4Njg2XFx1ODY4QlxcdTg2OUFcXHU4Njg1XFx1ODZBNVxcdTg2OTlcXHU4NkExXFx1ODZBN1xcdTg2OTVcXHU4Njk4XFx1ODY4RVxcdTg2OURcXHU4NjkwXFx1ODY5NFxcdTg4NDNcXHU4ODQ0XFx1ODg2RFxcdTg4NzVcXHU4ODc2XFx1ODg3MlxcdTg4ODBcXHU4ODcxXFx1ODg3RlxcdTg4NkZcXHU4ODgzXFx1ODg3RVxcdTg4NzRcXHU4ODdDXFx1OEExMlxcdThDNDdcXHU4QzU3XFx1OEM3QlxcdThDQTRcXHU4Q0EzXFx1OEQ3NlxcdThENzhcXHU4REI1XFx1OERCN1xcdThEQjZcXHU4RUQxXFx1OEVEM1xcdThGRkVcXHU4RkY1XFx1OTAwMlxcdThGRkZcXHU4RkZCXFx1OTAwNFxcdThGRkNcXHU4RkY2XFx1OTBENlxcdTkwRTBcXHU5MEQ5XFx1OTBEQVxcdTkwRTNcXHU5MERGXFx1OTBFNVxcdTkwRDhcXHU5MERCXFx1OTBEN1xcdTkwRENcXHU5MEU0XFx1OTE1MFwiXSxcbiAgICAgIFtcImQ0NDBcIiwgXCJcXHU5MTRFXFx1OTE0RlxcdTkxRDVcXHU5MUUyXFx1OTFEQVxcdTk2NUNcXHU5NjVGXFx1OTZCQ1xcdTk4RTNcXHU5QURGXFx1OUIyRlxcdTRFN0ZcXHU1MDcwXFx1NTA2QVxcdTUwNjFcXHU1MDVFXFx1NTA2MFxcdTUwNTNcXHU1MDRCXFx1NTA1RFxcdTUwNzJcXHU1MDQ4XFx1NTA0RFxcdTUwNDFcXHU1MDVCXFx1NTA0QVxcdTUwNjJcXHU1MDE1XFx1NTA0NVxcdTUwNUZcXHU1MDY5XFx1NTA2QlxcdTUwNjNcXHU1MDY0XFx1NTA0NlxcdTUwNDBcXHU1MDZFXFx1NTA3M1xcdTUwNTdcXHU1MDUxXFx1NTFEMFxcdTUyNkJcXHU1MjZEXFx1NTI2Q1xcdTUyNkVcXHU1MkQ2XFx1NTJEM1xcdTUzMkRcXHU1MzlDXFx1NTU3NVxcdTU1NzZcXHU1NTNDXFx1NTU0RFxcdTU1NTBcXHU1NTM0XFx1NTUyQVxcdTU1NTFcXHU1NTYyXFx1NTUzNlxcdTU1MzVcXHU1NTMwXFx1NTU1MlxcdTU1NDVcIl0sXG4gICAgICBbXCJkNGExXCIsIFwiXFx1NTUwQ1xcdTU1MzJcXHU1NTY1XFx1NTU0RVxcdTU1MzlcXHU1NTQ4XFx1NTUyRFxcdTU1M0JcXHU1NTQwXFx1NTU0QlxcdTU3MEFcXHU1NzA3XFx1NTdGQlxcdTU4MTRcXHU1N0UyXFx1NTdGNlxcdTU3RENcXHU1N0Y0XFx1NTgwMFxcdTU3RURcXHU1N0ZEXFx1NTgwOFxcdTU3RjhcXHU1ODBCXFx1NTdGM1xcdTU3Q0ZcXHU1ODA3XFx1NTdFRVxcdTU3RTNcXHU1N0YyXFx1NTdFNVxcdTU3RUNcXHU1N0UxXFx1NTgwRVxcdTU3RkNcXHU1ODEwXFx1NTdFN1xcdTU4MDFcXHU1ODBDXFx1NTdGMVxcdTU3RTlcXHU1N0YwXFx1NTgwRFxcdTU4MDRcXHU1OTVDXFx1NUE2MFxcdTVBNThcXHU1QTU1XFx1NUE2N1xcdTVBNUVcXHU1QTM4XFx1NUEzNVxcdTVBNkRcXHU1QTUwXFx1NUE1RlxcdTVBNjVcXHU1QTZDXFx1NUE1M1xcdTVBNjRcXHU1QTU3XFx1NUE0M1xcdTVBNURcXHU1QTUyXFx1NUE0NFxcdTVBNUJcXHU1QTQ4XFx1NUE4RVxcdTVBM0VcXHU1QTREXFx1NUEzOVxcdTVBNENcXHU1QTcwXFx1NUE2OVxcdTVBNDdcXHU1QTUxXFx1NUE1NlxcdTVBNDJcXHU1QTVDXFx1NUI3MlxcdTVCNkVcXHU1QkMxXFx1NUJDMFxcdTVDNTlcXHU1RDFFXFx1NUQwQlxcdTVEMURcXHU1RDFBXFx1NUQyMFxcdTVEMENcXHU1RDI4XFx1NUQwRFxcdTVEMjZcXHU1RDI1XFx1NUQwRlwiXSxcbiAgICAgIFtcImQ1NDBcIiwgXCJcXHU1RDMwXFx1NUQxMlxcdTVEMjNcXHU1RDFGXFx1NUQyRVxcdTVFM0VcXHU1RTM0XFx1NUVCMVxcdTVFQjRcXHU1RUI5XFx1NUVCMlxcdTVFQjNcXHU1RjM2XFx1NUYzOFxcdTVGOUJcXHU1Rjk2XFx1NUY5RlxcdTYwOEFcXHU2MDkwXFx1NjA4NlxcdTYwQkVcXHU2MEIwXFx1NjBCQVxcdTYwRDNcXHU2MEQ0XFx1NjBDRlxcdTYwRTRcXHU2MEQ5XFx1NjBERFxcdTYwQzhcXHU2MEIxXFx1NjBEQlxcdTYwQjdcXHU2MENBXFx1NjBCRlxcdTYwQzNcXHU2MENEXFx1NjBDMFxcdTYzMzJcXHU2MzY1XFx1NjM4QVxcdTYzODJcXHU2MzdEXFx1NjNCRFxcdTYzOUVcXHU2M0FEXFx1NjM5RFxcdTYzOTdcXHU2M0FCXFx1NjM4RVxcdTYzNkZcXHU2Mzg3XFx1NjM5MFxcdTYzNkVcXHU2M0FGXFx1NjM3NVxcdTYzOUNcXHU2MzZEXFx1NjNBRVxcdTYzN0NcXHU2M0E0XFx1NjMzQlxcdTYzOUZcIl0sXG4gICAgICBbXCJkNWExXCIsIFwiXFx1NjM3OFxcdTYzODVcXHU2MzgxXFx1NjM5MVxcdTYzOERcXHU2MzcwXFx1NjU1M1xcdTY1Q0RcXHU2NjY1XFx1NjY2MVxcdTY2NUJcXHU2NjU5XFx1NjY1Q1xcdTY2NjJcXHU2NzE4XFx1Njg3OVxcdTY4ODdcXHU2ODkwXFx1Njg5Q1xcdTY4NkRcXHU2ODZFXFx1NjhBRVxcdTY4QUJcXHU2OTU2XFx1Njg2RlxcdTY4QTNcXHU2OEFDXFx1NjhBOVxcdTY4NzVcXHU2ODc0XFx1NjhCMlxcdTY4OEZcXHU2ODc3XFx1Njg5MlxcdTY4N0NcXHU2ODZCXFx1Njg3MlxcdTY4QUFcXHU2ODgwXFx1Njg3MVxcdTY4N0VcXHU2ODlCXFx1Njg5NlxcdTY4OEJcXHU2OEEwXFx1Njg4OVxcdTY4QTRcXHU2ODc4XFx1Njg3QlxcdTY4OTFcXHU2ODhDXFx1Njg4QVxcdTY4N0RcXHU2QjM2XFx1NkIzM1xcdTZCMzdcXHU2QjM4XFx1NkI5MVxcdTZCOEZcXHU2QjhEXFx1NkI4RVxcdTZCOENcXHU2QzJBXFx1NkRDMFxcdTZEQUJcXHU2REI0XFx1NkRCM1xcdTZFNzRcXHU2REFDXFx1NkRFOVxcdTZERTJcXHU2REI3XFx1NkRGNlxcdTZERDRcXHU2RTAwXFx1NkRDOFxcdTZERTBcXHU2RERGXFx1NkRENlxcdTZEQkVcXHU2REU1XFx1NkREQ1xcdTZERERcXHU2RERCXFx1NkRGNFxcdTZEQ0FcXHU2REJEXFx1NkRFRFxcdTZERjBcXHU2REJBXFx1NkRENVxcdTZEQzJcXHU2RENGXFx1NkRDOVwiXSxcbiAgICAgIFtcImQ2NDBcIiwgXCJcXHU2REQwXFx1NkRGMlxcdTZERDNcXHU2REZEXFx1NkREN1xcdTZEQ0RcXHU2REUzXFx1NkRCQlxcdTcwRkFcXHU3MTBEXFx1NzBGN1xcdTcxMTdcXHU3MEY0XFx1NzEwQ1xcdTcwRjBcXHU3MTA0XFx1NzBGM1xcdTcxMTBcXHU3MEZDXFx1NzBGRlxcdTcxMDZcXHU3MTEzXFx1NzEwMFxcdTcwRjhcXHU3MEY2XFx1NzEwQlxcdTcxMDJcXHU3MTBFXFx1NzI3RVxcdTcyN0JcXHU3MjdDXFx1NzI3RlxcdTczMURcXHU3MzE3XFx1NzMwN1xcdTczMTFcXHU3MzE4XFx1NzMwQVxcdTczMDhcXHU3MkZGXFx1NzMwRlxcdTczMUVcXHU3Mzg4XFx1NzNGNlxcdTczRjhcXHU3M0Y1XFx1NzQwNFxcdTc0MDFcXHU3M0ZEXFx1NzQwN1xcdTc0MDBcXHU3M0ZBXFx1NzNGQ1xcdTczRkZcXHU3NDBDXFx1NzQwQlxcdTczRjRcXHU3NDA4XFx1NzU2NFxcdTc1NjNcXHU3NUNFXFx1NzVEMlxcdTc1Q0ZcIl0sXG4gICAgICBbXCJkNmExXCIsIFwiXFx1NzVDQlxcdTc1Q0NcXHU3NUQxXFx1NzVEMFxcdTc2OEZcXHU3Njg5XFx1NzZEM1xcdTc3MzlcXHU3NzJGXFx1NzcyRFxcdTc3MzFcXHU3NzMyXFx1NzczNFxcdTc3MzNcXHU3NzNEXFx1NzcyNVxcdTc3M0JcXHU3NzM1XFx1Nzg0OFxcdTc4NTJcXHU3ODQ5XFx1Nzg0RFxcdTc4NEFcXHU3ODRDXFx1NzgyNlxcdTc4NDVcXHU3ODUwXFx1Nzk2NFxcdTc5NjdcXHU3OTY5XFx1Nzk2QVxcdTc5NjNcXHU3OTZCXFx1Nzk2MVxcdTc5QkJcXHU3OUZBXFx1NzlGOFxcdTc5RjZcXHU3OUY3XFx1N0E4RlxcdTdBOTRcXHU3QTkwXFx1N0IzNVxcdTdCNDdcXHU3QjM0XFx1N0IyNVxcdTdCMzBcXHU3QjIyXFx1N0IyNFxcdTdCMzNcXHU3QjE4XFx1N0IyQVxcdTdCMURcXHU3QjMxXFx1N0IyQlxcdTdCMkRcXHU3QjJGXFx1N0IzMlxcdTdCMzhcXHU3QjFBXFx1N0IyM1xcdTdDOTRcXHU3Qzk4XFx1N0M5NlxcdTdDQTNcXHU3RDM1XFx1N0QzRFxcdTdEMzhcXHU3RDM2XFx1N0QzQVxcdTdENDVcXHU3RDJDXFx1N0QyOVxcdTdENDFcXHU3RDQ3XFx1N0QzRVxcdTdEM0ZcXHU3RDRBXFx1N0QzQlxcdTdEMjhcXHU3RjYzXFx1N0Y5NVxcdTdGOUNcXHU3RjlEXFx1N0Y5QlxcdTdGQ0FcXHU3RkNCXFx1N0ZDRFxcdTdGRDBcXHU3RkQxXFx1N0ZDN1xcdTdGQ0ZcXHU3RkM5XFx1ODAxRlwiXSxcbiAgICAgIFtcImQ3NDBcIiwgXCJcXHU4MDFFXFx1ODAxQlxcdTgwNDdcXHU4MDQzXFx1ODA0OFxcdTgxMThcXHU4MTI1XFx1ODExOVxcdTgxMUJcXHU4MTJEXFx1ODExRlxcdTgxMkNcXHU4MTFFXFx1ODEyMVxcdTgxMTVcXHU4MTI3XFx1ODExRFxcdTgxMjJcXHU4MjExXFx1ODIzOFxcdTgyMzNcXHU4MjNBXFx1ODIzNFxcdTgyMzJcXHU4Mjc0XFx1ODM5MFxcdTgzQTNcXHU4M0E4XFx1ODM4RFxcdTgzN0FcXHU4MzczXFx1ODNBNFxcdTgzNzRcXHU4MzhGXFx1ODM4MVxcdTgzOTVcXHU4Mzk5XFx1ODM3NVxcdTgzOTRcXHU4M0E5XFx1ODM3RFxcdTgzODNcXHU4MzhDXFx1ODM5RFxcdTgzOUJcXHU4M0FBXFx1ODM4QlxcdTgzN0VcXHU4M0E1XFx1ODNBRlxcdTgzODhcXHU4Mzk3XFx1ODNCMFxcdTgzN0ZcXHU4M0E2XFx1ODM4N1xcdTgzQUVcXHU4Mzc2XFx1ODM5QVxcdTg2NTlcXHU4NjU2XFx1ODZCRlxcdTg2QjdcIl0sXG4gICAgICBbXCJkN2ExXCIsIFwiXFx1ODZDMlxcdTg2QzFcXHU4NkM1XFx1ODZCQVxcdTg2QjBcXHU4NkM4XFx1ODZCOVxcdTg2QjNcXHU4NkI4XFx1ODZDQ1xcdTg2QjRcXHU4NkJCXFx1ODZCQ1xcdTg2QzNcXHU4NkJEXFx1ODZCRVxcdTg4NTJcXHU4ODg5XFx1ODg5NVxcdTg4QThcXHU4OEEyXFx1ODhBQVxcdTg4OUFcXHU4ODkxXFx1ODhBMVxcdTg4OUZcXHU4ODk4XFx1ODhBN1xcdTg4OTlcXHU4ODlCXFx1ODg5N1xcdTg4QTRcXHU4OEFDXFx1ODg4Q1xcdTg4OTNcXHU4ODhFXFx1ODk4MlxcdTg5RDZcXHU4OUQ5XFx1ODlENVxcdThBMzBcXHU4QTI3XFx1OEEyQ1xcdThBMUVcXHU4QzM5XFx1OEMzQlxcdThDNUNcXHU4QzVEXFx1OEM3RFxcdThDQTVcXHU4RDdEXFx1OEQ3QlxcdThENzlcXHU4REJDXFx1OERDMlxcdThEQjlcXHU4REJGXFx1OERDMVxcdThFRDhcXHU4RURFXFx1OEVERFxcdThFRENcXHU4RUQ3XFx1OEVFMFxcdThFRTFcXHU5MDI0XFx1OTAwQlxcdTkwMTFcXHU5MDFDXFx1OTAwQ1xcdTkwMjFcXHU5MEVGXFx1OTBFQVxcdTkwRjBcXHU5MEY0XFx1OTBGMlxcdTkwRjNcXHU5MEQ0XFx1OTBFQlxcdTkwRUNcXHU5MEU5XFx1OTE1NlxcdTkxNThcXHU5MTVBXFx1OTE1M1xcdTkxNTVcXHU5MUVDXFx1OTFGNFxcdTkxRjFcXHU5MUYzXFx1OTFGOFxcdTkxRTRcXHU5MUY5XFx1OTFFQVwiXSxcbiAgICAgIFtcImQ4NDBcIiwgXCJcXHU5MUVCXFx1OTFGN1xcdTkxRThcXHU5MUVFXFx1OTU3QVxcdTk1ODZcXHU5NTg4XFx1OTY3Q1xcdTk2NkRcXHU5NjZCXFx1OTY3MVxcdTk2NkZcXHU5NkJGXFx1OTc2QVxcdTk4MDRcXHU5OEU1XFx1OTk5N1xcdTUwOUJcXHU1MDk1XFx1NTA5NFxcdTUwOUVcXHU1MDhCXFx1NTBBM1xcdTUwODNcXHU1MDhDXFx1NTA4RVxcdTUwOURcXHU1MDY4XFx1NTA5Q1xcdTUwOTJcXHU1MDgyXFx1NTA4N1xcdTUxNUZcXHU1MUQ0XFx1NTMxMlxcdTUzMTFcXHU1M0E0XFx1NTNBN1xcdTU1OTFcXHU1NUE4XFx1NTVBNVxcdTU1QURcXHU1NTc3XFx1NTY0NVxcdTU1QTJcXHU1NTkzXFx1NTU4OFxcdTU1OEZcXHU1NUI1XFx1NTU4MVxcdTU1QTNcXHU1NTkyXFx1NTVBNFxcdTU1N0RcXHU1NThDXFx1NTVBNlxcdTU1N0ZcXHU1NTk1XFx1NTVBMVxcdTU1OEVcXHU1NzBDXFx1NTgyOVxcdTU4MzdcIl0sXG4gICAgICBbXCJkOGExXCIsIFwiXFx1NTgxOVxcdTU4MUVcXHU1ODI3XFx1NTgyM1xcdTU4MjhcXHU1N0Y1XFx1NTg0OFxcdTU4MjVcXHU1ODFDXFx1NTgxQlxcdTU4MzNcXHU1ODNGXFx1NTgzNlxcdTU4MkVcXHU1ODM5XFx1NTgzOFxcdTU4MkRcXHU1ODJDXFx1NTgzQlxcdTU5NjFcXHU1QUFGXFx1NUE5NFxcdTVBOUZcXHU1QTdBXFx1NUFBMlxcdTVBOUVcXHU1QTc4XFx1NUFBNlxcdTVBN0NcXHU1QUE1XFx1NUFBQ1xcdTVBOTVcXHU1QUFFXFx1NUEzN1xcdTVBODRcXHU1QThBXFx1NUE5N1xcdTVBODNcXHU1QThCXFx1NUFBOVxcdTVBN0JcXHU1QTdEXFx1NUE4Q1xcdTVBOUNcXHU1QThGXFx1NUE5M1xcdTVBOURcXHU1QkVBXFx1NUJDRFxcdTVCQ0JcXHU1QkQ0XFx1NUJEMVxcdTVCQ0FcXHU1QkNFXFx1NUMwQ1xcdTVDMzBcXHU1RDM3XFx1NUQ0M1xcdTVENkJcXHU1RDQxXFx1NUQ0QlxcdTVEM0ZcXHU1RDM1XFx1NUQ1MVxcdTVENEVcXHU1RDU1XFx1NUQzM1xcdTVEM0FcXHU1RDUyXFx1NUQzRFxcdTVEMzFcXHU1RDU5XFx1NUQ0MlxcdTVEMzlcXHU1RDQ5XFx1NUQzOFxcdTVEM0NcXHU1RDMyXFx1NUQzNlxcdTVENDBcXHU1RDQ1XFx1NUU0NFxcdTVFNDFcXHU1RjU4XFx1NUZBNlxcdTVGQTVcXHU1RkFCXFx1NjBDOVxcdTYwQjlcXHU2MENDXFx1NjBFMlxcdTYwQ0VcXHU2MEM0XFx1NjExNFwiXSxcbiAgICAgIFtcImQ5NDBcIiwgXCJcXHU2MEYyXFx1NjEwQVxcdTYxMTZcXHU2MTA1XFx1NjBGNVxcdTYxMTNcXHU2MEY4XFx1NjBGQ1xcdTYwRkVcXHU2MEMxXFx1NjEwM1xcdTYxMThcXHU2MTFEXFx1NjExMFxcdTYwRkZcXHU2MTA0XFx1NjEwQlxcdTYyNEFcXHU2Mzk0XFx1NjNCMVxcdTYzQjBcXHU2M0NFXFx1NjNFNVxcdTYzRThcXHU2M0VGXFx1NjNDM1xcdTY0OURcXHU2M0YzXFx1NjNDQVxcdTYzRTBcXHU2M0Y2XFx1NjNENVxcdTYzRjJcXHU2M0Y1XFx1NjQ2MVxcdTYzREZcXHU2M0JFXFx1NjNERFxcdTYzRENcXHU2M0M0XFx1NjNEOFxcdTYzRDNcXHU2M0MyXFx1NjNDN1xcdTYzQ0NcXHU2M0NCXFx1NjNDOFxcdTYzRjBcXHU2M0Q3XFx1NjNEOVxcdTY1MzJcXHU2NTY3XFx1NjU2QVxcdTY1NjRcXHU2NTVDXFx1NjU2OFxcdTY1NjVcXHU2NThDXFx1NjU5RFxcdTY1OUVcXHU2NUFFXFx1NjVEMFxcdTY1RDJcIl0sXG4gICAgICBbXCJkOWExXCIsIFwiXFx1NjY3Q1xcdTY2NkNcXHU2NjdCXFx1NjY4MFxcdTY2NzFcXHU2Njc5XFx1NjY2QVxcdTY2NzJcXHU2NzAxXFx1NjkwQ1xcdTY4RDNcXHU2OTA0XFx1NjhEQ1xcdTY5MkFcXHU2OEVDXFx1NjhFQVxcdTY4RjFcXHU2OTBGXFx1NjhENlxcdTY4RjdcXHU2OEVCXFx1NjhFNFxcdTY4RjZcXHU2OTEzXFx1NjkxMFxcdTY4RjNcXHU2OEUxXFx1NjkwN1xcdTY4Q0NcXHU2OTA4XFx1Njk3MFxcdTY4QjRcXHU2OTExXFx1NjhFRlxcdTY4QzZcXHU2OTE0XFx1NjhGOFxcdTY4RDBcXHU2OEZEXFx1NjhGQ1xcdTY4RThcXHU2OTBCXFx1NjkwQVxcdTY5MTdcXHU2OENFXFx1NjhDOFxcdTY4RERcXHU2OERFXFx1NjhFNlxcdTY4RjRcXHU2OEQxXFx1NjkwNlxcdTY4RDRcXHU2OEU5XFx1NjkxNVxcdTY5MjVcXHU2OEM3XFx1NkIzOVxcdTZCM0JcXHU2QjNGXFx1NkIzQ1xcdTZCOTRcXHU2Qjk3XFx1NkI5OVxcdTZCOTVcXHU2QkJEXFx1NkJGMFxcdTZCRjJcXHU2QkYzXFx1NkMzMFxcdTZERkNcXHU2RTQ2XFx1NkU0N1xcdTZFMUZcXHU2RTQ5XFx1NkU4OFxcdTZFM0NcXHU2RTNEXFx1NkU0NVxcdTZFNjJcXHU2RTJCXFx1NkUzRlxcdTZFNDFcXHU2RTVEXFx1NkU3M1xcdTZFMUNcXHU2RTMzXFx1NkU0QlxcdTZFNDBcXHU2RTUxXFx1NkUzQlxcdTZFMDNcXHU2RTJFXFx1NkU1RVwiXSxcbiAgICAgIFtcImRhNDBcIiwgXCJcXHU2RTY4XFx1NkU1Q1xcdTZFNjFcXHU2RTMxXFx1NkUyOFxcdTZFNjBcXHU2RTcxXFx1NkU2QlxcdTZFMzlcXHU2RTIyXFx1NkUzMFxcdTZFNTNcXHU2RTY1XFx1NkUyN1xcdTZFNzhcXHU2RTY0XFx1NkU3N1xcdTZFNTVcXHU2RTc5XFx1NkU1MlxcdTZFNjZcXHU2RTM1XFx1NkUzNlxcdTZFNUFcXHU3MTIwXFx1NzExRVxcdTcxMkZcXHU3MEZCXFx1NzEyRVxcdTcxMzFcXHU3MTIzXFx1NzEyNVxcdTcxMjJcXHU3MTMyXFx1NzExRlxcdTcxMjhcXHU3MTNBXFx1NzExQlxcdTcyNEJcXHU3MjVBXFx1NzI4OFxcdTcyODlcXHU3Mjg2XFx1NzI4NVxcdTcyOEJcXHU3MzEyXFx1NzMwQlxcdTczMzBcXHU3MzIyXFx1NzMzMVxcdTczMzNcXHU3MzI3XFx1NzMzMlxcdTczMkRcXHU3MzI2XFx1NzMyM1xcdTczMzVcXHU3MzBDXFx1NzQyRVxcdTc0MkNcXHU3NDMwXFx1NzQyQlxcdTc0MTZcIl0sXG4gICAgICBbXCJkYWExXCIsIFwiXFx1NzQxQVxcdTc0MjFcXHU3NDJEXFx1NzQzMVxcdTc0MjRcXHU3NDIzXFx1NzQxRFxcdTc0MjlcXHU3NDIwXFx1NzQzMlxcdTc0RkJcXHU3NTJGXFx1NzU2RlxcdTc1NkNcXHU3NUU3XFx1NzVEQVxcdTc1RTFcXHU3NUU2XFx1NzVERFxcdTc1REZcXHU3NUU0XFx1NzVEN1xcdTc2OTVcXHU3NjkyXFx1NzZEQVxcdTc3NDZcXHU3NzQ3XFx1Nzc0NFxcdTc3NERcXHU3NzQ1XFx1Nzc0QVxcdTc3NEVcXHU3NzRCXFx1Nzc0Q1xcdTc3REVcXHU3N0VDXFx1Nzg2MFxcdTc4NjRcXHU3ODY1XFx1Nzg1Q1xcdTc4NkRcXHU3ODcxXFx1Nzg2QVxcdTc4NkVcXHU3ODcwXFx1Nzg2OVxcdTc4NjhcXHU3ODVFXFx1Nzg2MlxcdTc5NzRcXHU3OTczXFx1Nzk3MlxcdTc5NzBcXHU3QTAyXFx1N0EwQVxcdTdBMDNcXHU3QTBDXFx1N0EwNFxcdTdBOTlcXHU3QUU2XFx1N0FFNFxcdTdCNEFcXHU3QjNCXFx1N0I0NFxcdTdCNDhcXHU3QjRDXFx1N0I0RVxcdTdCNDBcXHU3QjU4XFx1N0I0NVxcdTdDQTJcXHU3QzlFXFx1N0NBOFxcdTdDQTFcXHU3RDU4XFx1N0Q2RlxcdTdENjNcXHU3RDUzXFx1N0Q1NlxcdTdENjdcXHU3RDZBXFx1N0Q0RlxcdTdENkRcXHU3RDVDXFx1N0Q2QlxcdTdENTJcXHU3RDU0XFx1N0Q2OVxcdTdENTFcXHU3RDVGXFx1N0Q0RVxcdTdGM0VcXHU3RjNGXFx1N0Y2NVwiXSxcbiAgICAgIFtcImRiNDBcIiwgXCJcXHU3RjY2XFx1N0ZBMlxcdTdGQTBcXHU3RkExXFx1N0ZEN1xcdTgwNTFcXHU4MDRGXFx1ODA1MFxcdTgwRkVcXHU4MEQ0XFx1ODE0M1xcdTgxNEFcXHU4MTUyXFx1ODE0RlxcdTgxNDdcXHU4MTNEXFx1ODE0RFxcdTgxM0FcXHU4MUU2XFx1ODFFRVxcdTgxRjdcXHU4MUY4XFx1ODFGOVxcdTgyMDRcXHU4MjNDXFx1ODIzRFxcdTgyM0ZcXHU4Mjc1XFx1ODMzQlxcdTgzQ0ZcXHU4M0Y5XFx1ODQyM1xcdTgzQzBcXHU4M0U4XFx1ODQxMlxcdTgzRTdcXHU4M0U0XFx1ODNGQ1xcdTgzRjZcXHU4NDEwXFx1ODNDNlxcdTgzQzhcXHU4M0VCXFx1ODNFM1xcdTgzQkZcXHU4NDAxXFx1ODNERFxcdTgzRTVcXHU4M0Q4XFx1ODNGRlxcdTgzRTFcXHU4M0NCXFx1ODNDRVxcdTgzRDZcXHU4M0Y1XFx1ODNDOVxcdTg0MDlcXHU4NDBGXFx1ODNERVxcdTg0MTFcXHU4NDA2XFx1ODNDMlxcdTgzRjNcIl0sXG4gICAgICBbXCJkYmExXCIsIFwiXFx1ODNENVxcdTgzRkFcXHU4M0M3XFx1ODNEMVxcdTgzRUFcXHU4NDEzXFx1ODNDM1xcdTgzRUNcXHU4M0VFXFx1ODNDNFxcdTgzRkJcXHU4M0Q3XFx1ODNFMlxcdTg0MUJcXHU4M0RCXFx1ODNGRVxcdTg2RDhcXHU4NkUyXFx1ODZFNlxcdTg2RDNcXHU4NkUzXFx1ODZEQVxcdTg2RUFcXHU4NkREXFx1ODZFQlxcdTg2RENcXHU4NkVDXFx1ODZFOVxcdTg2RDdcXHU4NkU4XFx1ODZEMVxcdTg4NDhcXHU4ODU2XFx1ODg1NVxcdTg4QkFcXHU4OEQ3XFx1ODhCOVxcdTg4QjhcXHU4OEMwXFx1ODhCRVxcdTg4QjZcXHU4OEJDXFx1ODhCN1xcdTg4QkRcXHU4OEIyXFx1ODkwMVxcdTg4QzlcXHU4OTk1XFx1ODk5OFxcdTg5OTdcXHU4OUREXFx1ODlEQVxcdTg5REJcXHU4QTRFXFx1OEE0RFxcdThBMzlcXHU4QTU5XFx1OEE0MFxcdThBNTdcXHU4QTU4XFx1OEE0NFxcdThBNDVcXHU4QTUyXFx1OEE0OFxcdThBNTFcXHU4QTRBXFx1OEE0Q1xcdThBNEZcXHU4QzVGXFx1OEM4MVxcdThDODBcXHU4Q0JBXFx1OENCRVxcdThDQjBcXHU4Q0I5XFx1OENCNVxcdThEODRcXHU4RDgwXFx1OEQ4OVxcdThERDhcXHU4REQzXFx1OERDRFxcdThEQzdcXHU4REQ2XFx1OEREQ1xcdThEQ0ZcXHU4REQ1XFx1OEREOVxcdThEQzhcXHU4REQ3XFx1OERDNVxcdThFRUZcXHU4RUY3XFx1OEVGQVwiXSxcbiAgICAgIFtcImRjNDBcIiwgXCJcXHU4RUY5XFx1OEVFNlxcdThFRUVcXHU4RUU1XFx1OEVGNVxcdThFRTdcXHU4RUU4XFx1OEVGNlxcdThFRUJcXHU4RUYxXFx1OEVFQ1xcdThFRjRcXHU4RUU5XFx1OTAyRFxcdTkwMzRcXHU5MDJGXFx1OTEwNlxcdTkxMkNcXHU5MTA0XFx1OTBGRlxcdTkwRkNcXHU5MTA4XFx1OTBGOVxcdTkwRkJcXHU5MTAxXFx1OTEwMFxcdTkxMDdcXHU5MTA1XFx1OTEwM1xcdTkxNjFcXHU5MTY0XFx1OTE1RlxcdTkxNjJcXHU5MTYwXFx1OTIwMVxcdTkyMEFcXHU5MjI1XFx1OTIwM1xcdTkyMUFcXHU5MjI2XFx1OTIwRlxcdTkyMENcXHU5MjAwXFx1OTIxMlxcdTkxRkZcXHU5MUZEXFx1OTIwNlxcdTkyMDRcXHU5MjI3XFx1OTIwMlxcdTkyMUNcXHU5MjI0XFx1OTIxOVxcdTkyMTdcXHU5MjA1XFx1OTIxNlxcdTk1N0JcXHU5NThEXFx1OTU4Q1xcdTk1OTBcXHU5Njg3XFx1OTY3RVxcdTk2ODhcIl0sXG4gICAgICBbXCJkY2ExXCIsIFwiXFx1OTY4OVxcdTk2ODNcXHU5NjgwXFx1OTZDMlxcdTk2QzhcXHU5NkMzXFx1OTZGMVxcdTk2RjBcXHU5NzZDXFx1OTc3MFxcdTk3NkVcXHU5ODA3XFx1OThBOVxcdTk4RUJcXHU5Q0U2XFx1OUVGOVxcdTRFODNcXHU0RTg0XFx1NEVCNlxcdTUwQkRcXHU1MEJGXFx1NTBDNlxcdTUwQUVcXHU1MEM0XFx1NTBDQVxcdTUwQjRcXHU1MEM4XFx1NTBDMlxcdTUwQjBcXHU1MEMxXFx1NTBCQVxcdTUwQjFcXHU1MENCXFx1NTBDOVxcdTUwQjZcXHU1MEI4XFx1NTFEN1xcdTUyN0FcXHU1Mjc4XFx1NTI3QlxcdTUyN0NcXHU1NUMzXFx1NTVEQlxcdTU1Q0NcXHU1NUQwXFx1NTVDQlxcdTU1Q0FcXHU1NUREXFx1NTVDMFxcdTU1RDRcXHU1NUM0XFx1NTVFOVxcdTU1QkZcXHU1NUQyXFx1NTU4RFxcdTU1Q0ZcXHU1NUQ1XFx1NTVFMlxcdTU1RDZcXHU1NUM4XFx1NTVGMlxcdTU1Q0RcXHU1NUQ5XFx1NTVDMlxcdTU3MTRcXHU1ODUzXFx1NTg2OFxcdTU4NjRcXHU1ODRGXFx1NTg0RFxcdTU4NDlcXHU1ODZGXFx1NTg1NVxcdTU4NEVcXHU1ODVEXFx1NTg1OVxcdTU4NjVcXHU1ODVCXFx1NTgzRFxcdTU4NjNcXHU1ODcxXFx1NThGQ1xcdTVBQzdcXHU1QUM0XFx1NUFDQlxcdTVBQkFcXHU1QUI4XFx1NUFCMVxcdTVBQjVcXHU1QUIwXFx1NUFCRlxcdTVBQzhcXHU1QUJCXFx1NUFDNlwiXSxcbiAgICAgIFtcImRkNDBcIiwgXCJcXHU1QUI3XFx1NUFDMFxcdTVBQ0FcXHU1QUI0XFx1NUFCNlxcdTVBQ0RcXHU1QUI5XFx1NUE5MFxcdTVCRDZcXHU1QkQ4XFx1NUJEOVxcdTVDMUZcXHU1QzMzXFx1NUQ3MVxcdTVENjNcXHU1RDRBXFx1NUQ2NVxcdTVENzJcXHU1RDZDXFx1NUQ1RVxcdTVENjhcXHU1RDY3XFx1NUQ2MlxcdTVERjBcXHU1RTRGXFx1NUU0RVxcdTVFNEFcXHU1RTREXFx1NUU0QlxcdTVFQzVcXHU1RUNDXFx1NUVDNlxcdTVFQ0JcXHU1RUM3XFx1NUY0MFxcdTVGQUZcXHU1RkFEXFx1NjBGN1xcdTYxNDlcXHU2MTRBXFx1NjEyQlxcdTYxNDVcXHU2MTM2XFx1NjEzMlxcdTYxMkVcXHU2MTQ2XFx1NjEyRlxcdTYxNEZcXHU2MTI5XFx1NjE0MFxcdTYyMjBcXHU5MTY4XFx1NjIyM1xcdTYyMjVcXHU2MjI0XFx1NjNDNVxcdTYzRjFcXHU2M0VCXFx1NjQxMFxcdTY0MTJcXHU2NDA5XFx1NjQyMFxcdTY0MjRcIl0sXG4gICAgICBbXCJkZGExXCIsIFwiXFx1NjQzM1xcdTY0NDNcXHU2NDFGXFx1NjQxNVxcdTY0MThcXHU2NDM5XFx1NjQzN1xcdTY0MjJcXHU2NDIzXFx1NjQwQ1xcdTY0MjZcXHU2NDMwXFx1NjQyOFxcdTY0NDFcXHU2NDM1XFx1NjQyRlxcdTY0MEFcXHU2NDFBXFx1NjQ0MFxcdTY0MjVcXHU2NDI3XFx1NjQwQlxcdTYzRTdcXHU2NDFCXFx1NjQyRVxcdTY0MjFcXHU2NDBFXFx1NjU2RlxcdTY1OTJcXHU2NUQzXFx1NjY4NlxcdTY2OENcXHU2Njk1XFx1NjY5MFxcdTY2OEJcXHU2NjhBXFx1NjY5OVxcdTY2OTRcXHU2Njc4XFx1NjcyMFxcdTY5NjZcXHU2OTVGXFx1NjkzOFxcdTY5NEVcXHU2OTYyXFx1Njk3MVxcdTY5M0ZcXHU2OTQ1XFx1Njk2QVxcdTY5MzlcXHU2OTQyXFx1Njk1N1xcdTY5NTlcXHU2OTdBXFx1Njk0OFxcdTY5NDlcXHU2OTM1XFx1Njk2Q1xcdTY5MzNcXHU2OTNEXFx1Njk2NVxcdTY4RjBcXHU2OTc4XFx1NjkzNFxcdTY5NjlcXHU2OTQwXFx1Njk2RlxcdTY5NDRcXHU2OTc2XFx1Njk1OFxcdTY5NDFcXHU2OTc0XFx1Njk0Q1xcdTY5M0JcXHU2OTRCXFx1NjkzN1xcdTY5NUNcXHU2OTRGXFx1Njk1MVxcdTY5MzJcXHU2OTUyXFx1NjkyRlxcdTY5N0JcXHU2OTNDXFx1NkI0NlxcdTZCNDVcXHU2QjQzXFx1NkI0MlxcdTZCNDhcXHU2QjQxXFx1NkI5QlxcdUZBMERcXHU2QkZCXFx1NkJGQ1wiXSxcbiAgICAgIFtcImRlNDBcIiwgXCJcXHU2QkY5XFx1NkJGN1xcdTZCRjhcXHU2RTlCXFx1NkVENlxcdTZFQzhcXHU2RThGXFx1NkVDMFxcdTZFOUZcXHU2RTkzXFx1NkU5NFxcdTZFQTBcXHU2RUIxXFx1NkVCOVxcdTZFQzZcXHU2RUQyXFx1NkVCRFxcdTZFQzFcXHU2RTlFXFx1NkVDOVxcdTZFQjdcXHU2RUIwXFx1NkVDRFxcdTZFQTZcXHU2RUNGXFx1NkVCMlxcdTZFQkVcXHU2RUMzXFx1NkVEQ1xcdTZFRDhcXHU2RTk5XFx1NkU5MlxcdTZFOEVcXHU2RThEXFx1NkVBNFxcdTZFQTFcXHU2RUJGXFx1NkVCM1xcdTZFRDBcXHU2RUNBXFx1NkU5N1xcdTZFQUVcXHU2RUEzXFx1NzE0N1xcdTcxNTRcXHU3MTUyXFx1NzE2M1xcdTcxNjBcXHU3MTQxXFx1NzE1RFxcdTcxNjJcXHU3MTcyXFx1NzE3OFxcdTcxNkFcXHU3MTYxXFx1NzE0MlxcdTcxNThcXHU3MTQzXFx1NzE0QlxcdTcxNzBcXHU3MTVGXFx1NzE1MFxcdTcxNTNcIl0sXG4gICAgICBbXCJkZWExXCIsIFwiXFx1NzE0NFxcdTcxNERcXHU3MTVBXFx1NzI0RlxcdTcyOERcXHU3MjhDXFx1NzI5MVxcdTcyOTBcXHU3MjhFXFx1NzMzQ1xcdTczNDJcXHU3MzNCXFx1NzMzQVxcdTczNDBcXHU3MzRBXFx1NzM0OVxcdTc0NDRcXHU3NDRBXFx1NzQ0QlxcdTc0NTJcXHU3NDUxXFx1NzQ1N1xcdTc0NDBcXHU3NDRGXFx1NzQ1MFxcdTc0NEVcXHU3NDQyXFx1NzQ0NlxcdTc0NERcXHU3NDU0XFx1NzRFMVxcdTc0RkZcXHU3NEZFXFx1NzRGRFxcdTc1MURcXHU3NTc5XFx1NzU3N1xcdTY5ODNcXHU3NUVGXFx1NzYwRlxcdTc2MDNcXHU3NUY3XFx1NzVGRVxcdTc1RkNcXHU3NUY5XFx1NzVGOFxcdTc2MTBcXHU3NUZCXFx1NzVGNlxcdTc1RURcXHU3NUY1XFx1NzVGRFxcdTc2OTlcXHU3NkI1XFx1NzZERFxcdTc3NTVcXHU3NzVGXFx1Nzc2MFxcdTc3NTJcXHU3NzU2XFx1Nzc1QVxcdTc3NjlcXHU3NzY3XFx1Nzc1NFxcdTc3NTlcXHU3NzZEXFx1NzdFMFxcdTc4ODdcXHU3ODlBXFx1Nzg5NFxcdTc4OEZcXHU3ODg0XFx1Nzg5NVxcdTc4ODVcXHU3ODg2XFx1NzhBMVxcdTc4ODNcXHU3ODc5XFx1Nzg5OVxcdTc4ODBcXHU3ODk2XFx1Nzg3QlxcdTc5N0NcXHU3OTgyXFx1Nzk3RFxcdTc5NzlcXHU3QTExXFx1N0ExOFxcdTdBMTlcXHU3QTEyXFx1N0ExN1xcdTdBMTVcXHU3QTIyXFx1N0ExM1wiXSxcbiAgICAgIFtcImRmNDBcIiwgXCJcXHU3QTFCXFx1N0ExMFxcdTdBQTNcXHU3QUEyXFx1N0E5RVxcdTdBRUJcXHU3QjY2XFx1N0I2NFxcdTdCNkRcXHU3Qjc0XFx1N0I2OVxcdTdCNzJcXHU3QjY1XFx1N0I3M1xcdTdCNzFcXHU3QjcwXFx1N0I2MVxcdTdCNzhcXHU3Qjc2XFx1N0I2M1xcdTdDQjJcXHU3Q0I0XFx1N0NBRlxcdTdEODhcXHU3RDg2XFx1N0Q4MFxcdTdEOERcXHU3RDdGXFx1N0Q4NVxcdTdEN0FcXHU3RDhFXFx1N0Q3QlxcdTdEODNcXHU3RDdDXFx1N0Q4Q1xcdTdEOTRcXHU3RDg0XFx1N0Q3RFxcdTdEOTJcXHU3RjZEXFx1N0Y2QlxcdTdGNjdcXHU3RjY4XFx1N0Y2Q1xcdTdGQTZcXHU3RkE1XFx1N0ZBN1xcdTdGREJcXHU3RkRDXFx1ODAyMVxcdTgxNjRcXHU4MTYwXFx1ODE3N1xcdTgxNUNcXHU4MTY5XFx1ODE1QlxcdTgxNjJcXHU4MTcyXFx1NjcyMVxcdTgxNUVcXHU4MTc2XFx1ODE2N1xcdTgxNkZcIl0sXG4gICAgICBbXCJkZmExXCIsIFwiXFx1ODE0NFxcdTgxNjFcXHU4MjFEXFx1ODI0OVxcdTgyNDRcXHU4MjQwXFx1ODI0MlxcdTgyNDVcXHU4NEYxXFx1ODQzRlxcdTg0NTZcXHU4NDc2XFx1ODQ3OVxcdTg0OEZcXHU4NDhEXFx1ODQ2NVxcdTg0NTFcXHU4NDQwXFx1ODQ4NlxcdTg0NjdcXHU4NDMwXFx1ODQ0RFxcdTg0N0RcXHU4NDVBXFx1ODQ1OVxcdTg0NzRcXHU4NDczXFx1ODQ1RFxcdTg1MDdcXHU4NDVFXFx1ODQzN1xcdTg0M0FcXHU4NDM0XFx1ODQ3QVxcdTg0NDNcXHU4NDc4XFx1ODQzMlxcdTg0NDVcXHU4NDI5XFx1ODNEOVxcdTg0NEJcXHU4NDJGXFx1ODQ0MlxcdTg0MkRcXHU4NDVGXFx1ODQ3MFxcdTg0MzlcXHU4NDRFXFx1ODQ0Q1xcdTg0NTJcXHU4NDZGXFx1ODRDNVxcdTg0OEVcXHU4NDNCXFx1ODQ0N1xcdTg0MzZcXHU4NDMzXFx1ODQ2OFxcdTg0N0VcXHU4NDQ0XFx1ODQyQlxcdTg0NjBcXHU4NDU0XFx1ODQ2RVxcdTg0NTBcXHU4NzBCXFx1ODcwNFxcdTg2RjdcXHU4NzBDXFx1ODZGQVxcdTg2RDZcXHU4NkY1XFx1ODc0RFxcdTg2RjhcXHU4NzBFXFx1ODcwOVxcdTg3MDFcXHU4NkY2XFx1ODcwRFxcdTg3MDVcXHU4OEQ2XFx1ODhDQlxcdTg4Q0RcXHU4OENFXFx1ODhERVxcdTg4REJcXHU4OERBXFx1ODhDQ1xcdTg4RDBcXHU4OTg1XFx1ODk5QlxcdTg5REZcXHU4OUU1XFx1ODlFNFwiXSxcbiAgICAgIFtcImUwNDBcIiwgXCJcXHU4OUUxXFx1ODlFMFxcdTg5RTJcXHU4OURDXFx1ODlFNlxcdThBNzZcXHU4QTg2XFx1OEE3RlxcdThBNjFcXHU4QTNGXFx1OEE3N1xcdThBODJcXHU4QTg0XFx1OEE3NVxcdThBODNcXHU4QTgxXFx1OEE3NFxcdThBN0FcXHU4QzNDXFx1OEM0QlxcdThDNEFcXHU4QzY1XFx1OEM2NFxcdThDNjZcXHU4Qzg2XFx1OEM4NFxcdThDODVcXHU4Q0NDXFx1OEQ2OFxcdThENjlcXHU4RDkxXFx1OEQ4Q1xcdThEOEVcXHU4RDhGXFx1OEQ4RFxcdThEOTNcXHU4RDk0XFx1OEQ5MFxcdThEOTJcXHU4REYwXFx1OERFMFxcdThERUNcXHU4REYxXFx1OERFRVxcdThERDBcXHU4REU5XFx1OERFM1xcdThERTJcXHU4REU3XFx1OERGMlxcdThERUJcXHU4REY0XFx1OEYwNlxcdThFRkZcXHU4RjAxXFx1OEYwMFxcdThGMDVcXHU4RjA3XFx1OEYwOFxcdThGMDJcXHU4RjBCXFx1OTA1MlxcdTkwM0ZcIl0sXG4gICAgICBbXCJlMGExXCIsIFwiXFx1OTA0NFxcdTkwNDlcXHU5MDNEXFx1OTExMFxcdTkxMERcXHU5MTBGXFx1OTExMVxcdTkxMTZcXHU5MTE0XFx1OTEwQlxcdTkxMEVcXHU5MTZFXFx1OTE2RlxcdTkyNDhcXHU5MjUyXFx1OTIzMFxcdTkyM0FcXHU5MjY2XFx1OTIzM1xcdTkyNjVcXHU5MjVFXFx1OTI4M1xcdTkyMkVcXHU5MjRBXFx1OTI0NlxcdTkyNkRcXHU5MjZDXFx1OTI0RlxcdTkyNjBcXHU5MjY3XFx1OTI2RlxcdTkyMzZcXHU5MjYxXFx1OTI3MFxcdTkyMzFcXHU5MjU0XFx1OTI2M1xcdTkyNTBcXHU5MjcyXFx1OTI0RVxcdTkyNTNcXHU5MjRDXFx1OTI1NlxcdTkyMzJcXHU5NTlGXFx1OTU5Q1xcdTk1OUVcXHU5NTlCXFx1OTY5MlxcdTk2OTNcXHU5NjkxXFx1OTY5N1xcdTk2Q0VcXHU5NkZBXFx1OTZGRFxcdTk2RjhcXHU5NkY1XFx1OTc3M1xcdTk3NzdcXHU5Nzc4XFx1OTc3MlxcdTk4MEZcXHU5ODBEXFx1OTgwRVxcdTk4QUNcXHU5OEY2XFx1OThGOVxcdTk5QUZcXHU5OUIyXFx1OTlCMFxcdTk5QjVcXHU5QUFEXFx1OUFBQlxcdTlCNUJcXHU5Q0VBXFx1OUNFRFxcdTlDRTdcXHU5RTgwXFx1OUVGRFxcdTUwRTZcXHU1MEQ0XFx1NTBEN1xcdTUwRThcXHU1MEYzXFx1NTBEQlxcdTUwRUFcXHU1MEREXFx1NTBFNFxcdTUwRDNcXHU1MEVDXFx1NTBGMFxcdTUwRUZcXHU1MEUzXFx1NTBFMFwiXSxcbiAgICAgIFtcImUxNDBcIiwgXCJcXHU1MUQ4XFx1NTI4MFxcdTUyODFcXHU1MkU5XFx1NTJFQlxcdTUzMzBcXHU1M0FDXFx1NTYyN1xcdTU2MTVcXHU1NjBDXFx1NTYxMlxcdTU1RkNcXHU1NjBGXFx1NTYxQ1xcdTU2MDFcXHU1NjEzXFx1NTYwMlxcdTU1RkFcXHU1NjFEXFx1NTYwNFxcdTU1RkZcXHU1NUY5XFx1NTg4OVxcdTU4N0NcXHU1ODkwXFx1NTg5OFxcdTU4ODZcXHU1ODgxXFx1NTg3RlxcdTU4NzRcXHU1ODhCXFx1NTg3QVxcdTU4ODdcXHU1ODkxXFx1NTg4RVxcdTU4NzZcXHU1ODgyXFx1NTg4OFxcdTU4N0JcXHU1ODk0XFx1NTg4RlxcdTU4RkVcXHU1OTZCXFx1NUFEQ1xcdTVBRUVcXHU1QUU1XFx1NUFENVxcdTVBRUFcXHU1QURBXFx1NUFFRFxcdTVBRUJcXHU1QUYzXFx1NUFFMlxcdTVBRTBcXHU1QURCXFx1NUFFQ1xcdTVBREVcXHU1QUREXFx1NUFEOVxcdTVBRThcXHU1QURGXFx1NUI3N1xcdTVCRTBcIl0sXG4gICAgICBbXCJlMWExXCIsIFwiXFx1NUJFM1xcdTVDNjNcXHU1RDgyXFx1NUQ4MFxcdTVEN0RcXHU1RDg2XFx1NUQ3QVxcdTVEODFcXHU1RDc3XFx1NUQ4QVxcdTVEODlcXHU1RDg4XFx1NUQ3RVxcdTVEN0NcXHU1RDhEXFx1NUQ3OVxcdTVEN0ZcXHU1RTU4XFx1NUU1OVxcdTVFNTNcXHU1RUQ4XFx1NUVEMVxcdTVFRDdcXHU1RUNFXFx1NUVEQ1xcdTVFRDVcXHU1RUQ5XFx1NUVEMlxcdTVFRDRcXHU1RjQ0XFx1NUY0M1xcdTVGNkZcXHU1RkI2XFx1NjEyQ1xcdTYxMjhcXHU2MTQxXFx1NjE1RVxcdTYxNzFcXHU2MTczXFx1NjE1MlxcdTYxNTNcXHU2MTcyXFx1NjE2Q1xcdTYxODBcXHU2MTc0XFx1NjE1NFxcdTYxN0FcXHU2MTVCXFx1NjE2NVxcdTYxM0JcXHU2MTZBXFx1NjE2MVxcdTYxNTZcXHU2MjI5XFx1NjIyN1xcdTYyMkJcXHU2NDJCXFx1NjQ0RFxcdTY0NUJcXHU2NDVEXFx1NjQ3NFxcdTY0NzZcXHU2NDcyXFx1NjQ3M1xcdTY0N0RcXHU2NDc1XFx1NjQ2NlxcdTY0QTZcXHU2NDRFXFx1NjQ4MlxcdTY0NUVcXHU2NDVDXFx1NjQ0QlxcdTY0NTNcXHU2NDYwXFx1NjQ1MFxcdTY0N0ZcXHU2NDNGXFx1NjQ2Q1xcdTY0NkJcXHU2NDU5XFx1NjQ2NVxcdTY0NzdcXHU2NTczXFx1NjVBMFxcdTY2QTFcXHU2NkEwXFx1NjY5RlxcdTY3MDVcXHU2NzA0XFx1NjcyMlxcdTY5QjFcXHU2OUI2XFx1NjlDOVwiXSxcbiAgICAgIFtcImUyNDBcIiwgXCJcXHU2OUEwXFx1NjlDRVxcdTY5OTZcXHU2OUIwXFx1NjlBQ1xcdTY5QkNcXHU2OTkxXFx1Njk5OVxcdTY5OEVcXHU2OUE3XFx1Njk4RFxcdTY5QTlcXHU2OUJFXFx1NjlBRlxcdTY5QkZcXHU2OUM0XFx1NjlCRFxcdTY5QTRcXHU2OUQ0XFx1NjlCOVxcdTY5Q0FcXHU2OTlBXFx1NjlDRlxcdTY5QjNcXHU2OTkzXFx1NjlBQVxcdTY5QTFcXHU2OTlFXFx1NjlEOVxcdTY5OTdcXHU2OTkwXFx1NjlDMlxcdTY5QjVcXHU2OUE1XFx1NjlDNlxcdTZCNEFcXHU2QjREXFx1NkI0QlxcdTZCOUVcXHU2QjlGXFx1NkJBMFxcdTZCQzNcXHU2QkM0XFx1NkJGRVxcdTZFQ0VcXHU2RUY1XFx1NkVGMVxcdTZGMDNcXHU2RjI1XFx1NkVGOFxcdTZGMzdcXHU2RUZCXFx1NkYyRVxcdTZGMDlcXHU2RjRFXFx1NkYxOVxcdTZGMUFcXHU2RjI3XFx1NkYxOFxcdTZGM0JcXHU2RjEyXFx1NkVFRFxcdTZGMEFcIl0sXG4gICAgICBbXCJlMmExXCIsIFwiXFx1NkYzNlxcdTZGNzNcXHU2RUY5XFx1NkVFRVxcdTZGMkRcXHU2RjQwXFx1NkYzMFxcdTZGM0NcXHU2RjM1XFx1NkVFQlxcdTZGMDdcXHU2RjBFXFx1NkY0M1xcdTZGMDVcXHU2RUZEXFx1NkVGNlxcdTZGMzlcXHU2RjFDXFx1NkVGQ1xcdTZGM0FcXHU2RjFGXFx1NkYwRFxcdTZGMUVcXHU2RjA4XFx1NkYyMVxcdTcxODdcXHU3MTkwXFx1NzE4OVxcdTcxODBcXHU3MTg1XFx1NzE4MlxcdTcxOEZcXHU3MTdCXFx1NzE4NlxcdTcxODFcXHU3MTk3XFx1NzI0NFxcdTcyNTNcXHU3Mjk3XFx1NzI5NVxcdTcyOTNcXHU3MzQzXFx1NzM0RFxcdTczNTFcXHU3MzRDXFx1NzQ2MlxcdTc0NzNcXHU3NDcxXFx1NzQ3NVxcdTc0NzJcXHU3NDY3XFx1NzQ2RVxcdTc1MDBcXHU3NTAyXFx1NzUwM1xcdTc1N0RcXHU3NTkwXFx1NzYxNlxcdTc2MDhcXHU3NjBDXFx1NzYxNVxcdTc2MTFcXHU3NjBBXFx1NzYxNFxcdTc2QjhcXHU3NzgxXFx1Nzc3Q1xcdTc3ODVcXHU3NzgyXFx1Nzc2RVxcdTc3ODBcXHU3NzZGXFx1Nzc3RVxcdTc3ODNcXHU3OEIyXFx1NzhBQVxcdTc4QjRcXHU3OEFEXFx1NzhBOFxcdTc4N0VcXHU3OEFCXFx1Nzg5RVxcdTc4QTVcXHU3OEEwXFx1NzhBQ1xcdTc4QTJcXHU3OEE0XFx1Nzk5OFxcdTc5OEFcXHU3OThCXFx1Nzk5NlxcdTc5OTVcXHU3OTk0XFx1Nzk5M1wiXSxcbiAgICAgIFtcImUzNDBcIiwgXCJcXHU3OTk3XFx1Nzk4OFxcdTc5OTJcXHU3OTkwXFx1N0EyQlxcdTdBNEFcXHU3QTMwXFx1N0EyRlxcdTdBMjhcXHU3QTI2XFx1N0FBOFxcdTdBQUJcXHU3QUFDXFx1N0FFRVxcdTdCODhcXHU3QjlDXFx1N0I4QVxcdTdCOTFcXHU3QjkwXFx1N0I5NlxcdTdCOERcXHU3QjhDXFx1N0I5QlxcdTdCOEVcXHU3Qjg1XFx1N0I5OFxcdTUyODRcXHU3Qjk5XFx1N0JBNFxcdTdCODJcXHU3Q0JCXFx1N0NCRlxcdTdDQkNcXHU3Q0JBXFx1N0RBN1xcdTdEQjdcXHU3REMyXFx1N0RBM1xcdTdEQUFcXHU3REMxXFx1N0RDMFxcdTdEQzVcXHU3RDlEXFx1N0RDRVxcdTdEQzRcXHU3REM2XFx1N0RDQlxcdTdEQ0NcXHU3REFGXFx1N0RCOVxcdTdEOTZcXHU3REJDXFx1N0Q5RlxcdTdEQTZcXHU3REFFXFx1N0RBOVxcdTdEQTFcXHU3REM5XFx1N0Y3M1xcdTdGRTJcXHU3RkUzXFx1N0ZFNVxcdTdGREVcIl0sXG4gICAgICBbXCJlM2ExXCIsIFwiXFx1ODAyNFxcdTgwNURcXHU4MDVDXFx1ODE4OVxcdTgxODZcXHU4MTgzXFx1ODE4N1xcdTgxOERcXHU4MThDXFx1ODE4QlxcdTgyMTVcXHU4NDk3XFx1ODRBNFxcdTg0QTFcXHU4NDlGXFx1ODRCQVxcdTg0Q0VcXHU4NEMyXFx1ODRBQ1xcdTg0QUVcXHU4NEFCXFx1ODRCOVxcdTg0QjRcXHU4NEMxXFx1ODRDRFxcdTg0QUFcXHU4NDlBXFx1ODRCMVxcdTg0RDBcXHU4NDlEXFx1ODRBN1xcdTg0QkJcXHU4NEEyXFx1ODQ5NFxcdTg0QzdcXHU4NENDXFx1ODQ5QlxcdTg0QTlcXHU4NEFGXFx1ODRBOFxcdTg0RDZcXHU4NDk4XFx1ODRCNlxcdTg0Q0ZcXHU4NEEwXFx1ODREN1xcdTg0RDRcXHU4NEQyXFx1ODREQlxcdTg0QjBcXHU4NDkxXFx1ODY2MVxcdTg3MzNcXHU4NzIzXFx1ODcyOFxcdTg3NkJcXHU4NzQwXFx1ODcyRVxcdTg3MUVcXHU4NzIxXFx1ODcxOVxcdTg3MUJcXHU4NzQzXFx1ODcyQ1xcdTg3NDFcXHU4NzNFXFx1ODc0NlxcdTg3MjBcXHU4NzMyXFx1ODcyQVxcdTg3MkRcXHU4NzNDXFx1ODcxMlxcdTg3M0FcXHU4NzMxXFx1ODczNVxcdTg3NDJcXHU4NzI2XFx1ODcyN1xcdTg3MzhcXHU4NzI0XFx1ODcxQVxcdTg3MzBcXHU4NzExXFx1ODhGN1xcdTg4RTdcXHU4OEYxXFx1ODhGMlxcdTg4RkFcXHU4OEZFXFx1ODhFRVxcdTg4RkNcXHU4OEY2XFx1ODhGQlwiXSxcbiAgICAgIFtcImU0NDBcIiwgXCJcXHU4OEYwXFx1ODhFQ1xcdTg4RUJcXHU4OTlEXFx1ODlBMVxcdTg5OUZcXHU4OTlFXFx1ODlFOVxcdTg5RUJcXHU4OUU4XFx1OEFBQlxcdThBOTlcXHU4QThCXFx1OEE5MlxcdThBOEZcXHU4QTk2XFx1OEMzRFxcdThDNjhcXHU4QzY5XFx1OENENVxcdThDQ0ZcXHU4Q0Q3XFx1OEQ5NlxcdThFMDlcXHU4RTAyXFx1OERGRlxcdThFMERcXHU4REZEXFx1OEUwQVxcdThFMDNcXHU4RTA3XFx1OEUwNlxcdThFMDVcXHU4REZFXFx1OEUwMFxcdThFMDRcXHU4RjEwXFx1OEYxMVxcdThGMEVcXHU4RjBEXFx1OTEyM1xcdTkxMUNcXHU5MTIwXFx1OTEyMlxcdTkxMUZcXHU5MTFEXFx1OTExQVxcdTkxMjRcXHU5MTIxXFx1OTExQlxcdTkxN0FcXHU5MTcyXFx1OTE3OVxcdTkxNzNcXHU5MkE1XFx1OTJBNFxcdTkyNzZcXHU5MjlCXFx1OTI3QVxcdTkyQTBcXHU5Mjk0XFx1OTJBQVxcdTkyOERcIl0sXG4gICAgICBbXCJlNGExXCIsIFwiXFx1OTJBNlxcdTkyOUFcXHU5MkFCXFx1OTI3OVxcdTkyOTdcXHU5MjdGXFx1OTJBM1xcdTkyRUVcXHU5MjhFXFx1OTI4MlxcdTkyOTVcXHU5MkEyXFx1OTI3RFxcdTkyODhcXHU5MkExXFx1OTI4QVxcdTkyODZcXHU5MjhDXFx1OTI5OVxcdTkyQTdcXHU5MjdFXFx1OTI4N1xcdTkyQTlcXHU5MjlEXFx1OTI4QlxcdTkyMkRcXHU5NjlFXFx1OTZBMVxcdTk2RkZcXHU5NzU4XFx1OTc3RFxcdTk3N0FcXHU5NzdFXFx1OTc4M1xcdTk3ODBcXHU5NzgyXFx1OTc3QlxcdTk3ODRcXHU5NzgxXFx1OTc3RlxcdTk3Q0VcXHU5N0NEXFx1OTgxNlxcdTk4QURcXHU5OEFFXFx1OTkwMlxcdTk5MDBcXHU5OTA3XFx1OTk5RFxcdTk5OUNcXHU5OUMzXFx1OTlCOVxcdTk5QkJcXHU5OUJBXFx1OTlDMlxcdTk5QkRcXHU5OUM3XFx1OUFCMVxcdTlBRTNcXHU5QUU3XFx1OUIzRVxcdTlCM0ZcXHU5QjYwXFx1OUI2MVxcdTlCNUZcXHU5Q0YxXFx1OUNGMlxcdTlDRjVcXHU5RUE3XFx1NTBGRlxcdTUxMDNcXHU1MTMwXFx1NTBGOFxcdTUxMDZcXHU1MTA3XFx1NTBGNlxcdTUwRkVcXHU1MTBCXFx1NTEwQ1xcdTUwRkRcXHU1MTBBXFx1NTI4QlxcdTUyOENcXHU1MkYxXFx1NTJFRlxcdTU2NDhcXHU1NjQyXFx1NTY0Q1xcdTU2MzVcXHU1NjQxXFx1NTY0QVxcdTU2NDlcXHU1NjQ2XFx1NTY1OFwiXSxcbiAgICAgIFtcImU1NDBcIiwgXCJcXHU1NjVBXFx1NTY0MFxcdTU2MzNcXHU1NjNEXFx1NTYyQ1xcdTU2M0VcXHU1NjM4XFx1NTYyQVxcdTU2M0FcXHU1NzFBXFx1NThBQlxcdTU4OURcXHU1OEIxXFx1NThBMFxcdTU4QTNcXHU1OEFGXFx1NThBQ1xcdTU4QTVcXHU1OEExXFx1NThGRlxcdTVBRkZcXHU1QUY0XFx1NUFGRFxcdTVBRjdcXHU1QUY2XFx1NUIwM1xcdTVBRjhcXHU1QjAyXFx1NUFGOVxcdTVCMDFcXHU1QjA3XFx1NUIwNVxcdTVCMEZcXHU1QzY3XFx1NUQ5OVxcdTVEOTdcXHU1RDlGXFx1NUQ5MlxcdTVEQTJcXHU1RDkzXFx1NUQ5NVxcdTVEQTBcXHU1RDlDXFx1NURBMVxcdTVEOUFcXHU1RDlFXFx1NUU2OVxcdTVFNURcXHU1RTYwXFx1NUU1Q1xcdTdERjNcXHU1RURCXFx1NUVERVxcdTVFRTFcXHU1RjQ5XFx1NUZCMlxcdTYxOEJcXHU2MTgzXFx1NjE3OVxcdTYxQjFcXHU2MUIwXFx1NjFBMlxcdTYxODlcIl0sXG4gICAgICBbXCJlNWExXCIsIFwiXFx1NjE5QlxcdTYxOTNcXHU2MUFGXFx1NjFBRFxcdTYxOUZcXHU2MTkyXFx1NjFBQVxcdTYxQTFcXHU2MThEXFx1NjE2NlxcdTYxQjNcXHU2MjJEXFx1NjQ2RVxcdTY0NzBcXHU2NDk2XFx1NjRBMFxcdTY0ODVcXHU2NDk3XFx1NjQ5Q1xcdTY0OEZcXHU2NDhCXFx1NjQ4QVxcdTY0OENcXHU2NEEzXFx1NjQ5RlxcdTY0NjhcXHU2NEIxXFx1NjQ5OFxcdTY1NzZcXHU2NTdBXFx1NjU3OVxcdTY1N0JcXHU2NUIyXFx1NjVCM1xcdTY2QjVcXHU2NkIwXFx1NjZBOVxcdTY2QjJcXHU2NkI3XFx1NjZBQVxcdTY2QUZcXHU2QTAwXFx1NkEwNlxcdTZBMTdcXHU2OUU1XFx1NjlGOFxcdTZBMTVcXHU2OUYxXFx1NjlFNFxcdTZBMjBcXHU2OUZGXFx1NjlFQ1xcdTY5RTJcXHU2QTFCXFx1NkExRFxcdTY5RkVcXHU2QTI3XFx1NjlGMlxcdTY5RUVcXHU2QTE0XFx1NjlGN1xcdTY5RTdcXHU2QTQwXFx1NkEwOFxcdTY5RTZcXHU2OUZCXFx1NkEwRFxcdTY5RkNcXHU2OUVCXFx1NkEwOVxcdTZBMDRcXHU2QTE4XFx1NkEyNVxcdTZBMEZcXHU2OUY2XFx1NkEyNlxcdTZBMDdcXHU2OUY0XFx1NkExNlxcdTZCNTFcXHU2QkE1XFx1NkJBM1xcdTZCQTJcXHU2QkE2XFx1NkMwMVxcdTZDMDBcXHU2QkZGXFx1NkMwMlxcdTZGNDFcXHU2RjI2XFx1NkY3RVxcdTZGODdcXHU2RkM2XFx1NkY5MlwiXSxcbiAgICAgIFtcImU2NDBcIiwgXCJcXHU2RjhEXFx1NkY4OVxcdTZGOENcXHU2RjYyXFx1NkY0RlxcdTZGODVcXHU2RjVBXFx1NkY5NlxcdTZGNzZcXHU2RjZDXFx1NkY4MlxcdTZGNTVcXHU2RjcyXFx1NkY1MlxcdTZGNTBcXHU2RjU3XFx1NkY5NFxcdTZGOTNcXHU2RjVEXFx1NkYwMFxcdTZGNjFcXHU2RjZCXFx1NkY3RFxcdTZGNjdcXHU2RjkwXFx1NkY1M1xcdTZGOEJcXHU2RjY5XFx1NkY3RlxcdTZGOTVcXHU2RjYzXFx1NkY3N1xcdTZGNkFcXHU2RjdCXFx1NzFCMlxcdTcxQUZcXHU3MTlCXFx1NzFCMFxcdTcxQTBcXHU3MTlBXFx1NzFBOVxcdTcxQjVcXHU3MTlEXFx1NzFBNVxcdTcxOUVcXHU3MUE0XFx1NzFBMVxcdTcxQUFcXHU3MTlDXFx1NzFBN1xcdTcxQjNcXHU3Mjk4XFx1NzI5QVxcdTczNThcXHU3MzUyXFx1NzM1RVxcdTczNUZcXHU3MzYwXFx1NzM1RFxcdTczNUJcXHU3MzYxXFx1NzM1QVxcdTczNTlcIl0sXG4gICAgICBbXCJlNmExXCIsIFwiXFx1NzM2MlxcdTc0ODdcXHU3NDg5XFx1NzQ4QVxcdTc0ODZcXHU3NDgxXFx1NzQ3RFxcdTc0ODVcXHU3NDg4XFx1NzQ3Q1xcdTc0NzlcXHU3NTA4XFx1NzUwN1xcdTc1N0VcXHU3NjI1XFx1NzYxRVxcdTc2MTlcXHU3NjFEXFx1NzYxQ1xcdTc2MjNcXHU3NjFBXFx1NzYyOFxcdTc2MUJcXHU3NjlDXFx1NzY5RFxcdTc2OUVcXHU3NjlCXFx1Nzc4RFxcdTc3OEZcXHU3Nzg5XFx1Nzc4OFxcdTc4Q0RcXHU3OEJCXFx1NzhDRlxcdTc4Q0NcXHU3OEQxXFx1NzhDRVxcdTc4RDRcXHU3OEM4XFx1NzhDM1xcdTc4QzRcXHU3OEM5XFx1Nzk5QVxcdTc5QTFcXHU3OUEwXFx1Nzk5Q1xcdTc5QTJcXHU3OTlCXFx1NkI3NlxcdTdBMzlcXHU3QUIyXFx1N0FCNFxcdTdBQjNcXHU3QkI3XFx1N0JDQlxcdTdCQkVcXHU3QkFDXFx1N0JDRVxcdTdCQUZcXHU3QkI5XFx1N0JDQVxcdTdCQjVcXHU3Q0M1XFx1N0NDOFxcdTdDQ0NcXHU3Q0NCXFx1N0RGN1xcdTdEREJcXHU3REVBXFx1N0RFN1xcdTdERDdcXHU3REUxXFx1N0UwM1xcdTdERkFcXHU3REU2XFx1N0RGNlxcdTdERjFcXHU3REYwXFx1N0RFRVxcdTdEREZcXHU3Rjc2XFx1N0ZBQ1xcdTdGQjBcXHU3RkFEXFx1N0ZFRFxcdTdGRUJcXHU3RkVBXFx1N0ZFQ1xcdTdGRTZcXHU3RkU4XFx1ODA2NFxcdTgwNjdcXHU4MUEzXFx1ODE5RlwiXSxcbiAgICAgIFtcImU3NDBcIiwgXCJcXHU4MTlFXFx1ODE5NVxcdTgxQTJcXHU4MTk5XFx1ODE5N1xcdTgyMTZcXHU4MjRGXFx1ODI1M1xcdTgyNTJcXHU4MjUwXFx1ODI0RVxcdTgyNTFcXHU4NTI0XFx1ODUzQlxcdTg1MEZcXHU4NTAwXFx1ODUyOVxcdTg1MEVcXHU4NTA5XFx1ODUwRFxcdTg1MUZcXHU4NTBBXFx1ODUyN1xcdTg1MUNcXHU4NEZCXFx1ODUyQlxcdTg0RkFcXHU4NTA4XFx1ODUwQ1xcdTg0RjRcXHU4NTJBXFx1ODRGMlxcdTg1MTVcXHU4NEY3XFx1ODRFQlxcdTg0RjNcXHU4NEZDXFx1ODUxMlxcdTg0RUFcXHU4NEU5XFx1ODUxNlxcdTg0RkVcXHU4NTI4XFx1ODUxRFxcdTg1MkVcXHU4NTAyXFx1ODRGRFxcdTg1MUVcXHU4NEY2XFx1ODUzMVxcdTg1MjZcXHU4NEU3XFx1ODRFOFxcdTg0RjBcXHU4NEVGXFx1ODRGOVxcdTg1MThcXHU4NTIwXFx1ODUzMFxcdTg1MEJcXHU4NTE5XFx1ODUyRlxcdTg2NjJcIl0sXG4gICAgICBbXCJlN2ExXCIsIFwiXFx1ODc1NlxcdTg3NjNcXHU4NzY0XFx1ODc3N1xcdTg3RTFcXHU4NzczXFx1ODc1OFxcdTg3NTRcXHU4NzVCXFx1ODc1MlxcdTg3NjFcXHU4NzVBXFx1ODc1MVxcdTg3NUVcXHU4NzZEXFx1ODc2QVxcdTg3NTBcXHU4NzRFXFx1ODc1RlxcdTg3NURcXHU4NzZGXFx1ODc2Q1xcdTg3N0FcXHU4NzZFXFx1ODc1Q1xcdTg3NjVcXHU4NzRGXFx1ODc3QlxcdTg3NzVcXHU4NzYyXFx1ODc2N1xcdTg3NjlcXHU4ODVBXFx1ODkwNVxcdTg5MENcXHU4OTE0XFx1ODkwQlxcdTg5MTdcXHU4OTE4XFx1ODkxOVxcdTg5MDZcXHU4OTE2XFx1ODkxMVxcdTg5MEVcXHU4OTA5XFx1ODlBMlxcdTg5QTRcXHU4OUEzXFx1ODlFRFxcdTg5RjBcXHU4OUVDXFx1OEFDRlxcdThBQzZcXHU4QUI4XFx1OEFEM1xcdThBRDFcXHU4QUQ0XFx1OEFENVxcdThBQkJcXHU4QUQ3XFx1OEFCRVxcdThBQzBcXHU4QUM1XFx1OEFEOFxcdThBQzNcXHU4QUJBXFx1OEFCRFxcdThBRDlcXHU4QzNFXFx1OEM0RFxcdThDOEZcXHU4Q0U1XFx1OENERlxcdThDRDlcXHU4Q0U4XFx1OENEQVxcdThDRERcXHU4Q0U3XFx1OERBMFxcdThEOUNcXHU4REExXFx1OEQ5QlxcdThFMjBcXHU4RTIzXFx1OEUyNVxcdThFMjRcXHU4RTJFXFx1OEUxNVxcdThFMUJcXHU4RTE2XFx1OEUxMVxcdThFMTlcXHU4RTI2XFx1OEUyN1wiXSxcbiAgICAgIFtcImU4NDBcIiwgXCJcXHU4RTE0XFx1OEUxMlxcdThFMThcXHU4RTEzXFx1OEUxQ1xcdThFMTdcXHU4RTFBXFx1OEYyQ1xcdThGMjRcXHU4RjE4XFx1OEYxQVxcdThGMjBcXHU4RjIzXFx1OEYxNlxcdThGMTdcXHU5MDczXFx1OTA3MFxcdTkwNkZcXHU5MDY3XFx1OTA2QlxcdTkxMkZcXHU5MTJCXFx1OTEyOVxcdTkxMkFcXHU5MTMyXFx1OTEyNlxcdTkxMkVcXHU5MTg1XFx1OTE4NlxcdTkxOEFcXHU5MTgxXFx1OTE4MlxcdTkxODRcXHU5MTgwXFx1OTJEMFxcdTkyQzNcXHU5MkM0XFx1OTJDMFxcdTkyRDlcXHU5MkI2XFx1OTJDRlxcdTkyRjFcXHU5MkRGXFx1OTJEOFxcdTkyRTlcXHU5MkQ3XFx1OTJERFxcdTkyQ0NcXHU5MkVGXFx1OTJDMlxcdTkyRThcXHU5MkNBXFx1OTJDOFxcdTkyQ0VcXHU5MkU2XFx1OTJDRFxcdTkyRDVcXHU5MkM5XFx1OTJFMFxcdTkyREVcXHU5MkU3XFx1OTJEMVxcdTkyRDNcIl0sXG4gICAgICBbXCJlOGExXCIsIFwiXFx1OTJCNVxcdTkyRTFcXHU5MkM2XFx1OTJCNFxcdTk1N0NcXHU5NUFDXFx1OTVBQlxcdTk1QUVcXHU5NUIwXFx1OTZBNFxcdTk2QTJcXHU5NkQzXFx1OTcwNVxcdTk3MDhcXHU5NzAyXFx1OTc1QVxcdTk3OEFcXHU5NzhFXFx1OTc4OFxcdTk3RDBcXHU5N0NGXFx1OTgxRVxcdTk4MURcXHU5ODI2XFx1OTgyOVxcdTk4MjhcXHU5ODIwXFx1OTgxQlxcdTk4MjdcXHU5OEIyXFx1OTkwOFxcdTk4RkFcXHU5OTExXFx1OTkxNFxcdTk5MTZcXHU5OTE3XFx1OTkxNVxcdTk5RENcXHU5OUNEXFx1OTlDRlxcdTk5RDNcXHU5OUQ0XFx1OTlDRVxcdTk5QzlcXHU5OUQ2XFx1OTlEOFxcdTk5Q0JcXHU5OUQ3XFx1OTlDQ1xcdTlBQjNcXHU5QUVDXFx1OUFFQlxcdTlBRjNcXHU5QUYyXFx1OUFGMVxcdTlCNDZcXHU5QjQzXFx1OUI2N1xcdTlCNzRcXHU5QjcxXFx1OUI2NlxcdTlCNzZcXHU5Qjc1XFx1OUI3MFxcdTlCNjhcXHU5QjY0XFx1OUI2Q1xcdTlDRkNcXHU5Q0ZBXFx1OUNGRFxcdTlDRkZcXHU5Q0Y3XFx1OUQwN1xcdTlEMDBcXHU5Q0Y5XFx1OUNGQlxcdTlEMDhcXHU5RDA1XFx1OUQwNFxcdTlFODNcXHU5RUQzXFx1OUYwRlxcdTlGMTBcXHU1MTFDXFx1NTExM1xcdTUxMTdcXHU1MTFBXFx1NTExMVxcdTUxREVcXHU1MzM0XFx1NTNFMVxcdTU2NzBcXHU1NjYwXFx1NTY2RVwiXSxcbiAgICAgIFtcImU5NDBcIiwgXCJcXHU1NjczXFx1NTY2NlxcdTU2NjNcXHU1NjZEXFx1NTY3MlxcdTU2NUVcXHU1Njc3XFx1NTcxQ1xcdTU3MUJcXHU1OEM4XFx1NThCRFxcdTU4QzlcXHU1OEJGXFx1NThCQVxcdTU4QzJcXHU1OEJDXFx1NThDNlxcdTVCMTdcXHU1QjE5XFx1NUIxQlxcdTVCMjFcXHU1QjE0XFx1NUIxM1xcdTVCMTBcXHU1QjE2XFx1NUIyOFxcdTVCMUFcXHU1QjIwXFx1NUIxRVxcdTVCRUZcXHU1REFDXFx1NURCMVxcdTVEQTlcXHU1REE3XFx1NURCNVxcdTVEQjBcXHU1REFFXFx1NURBQVxcdTVEQThcXHU1REIyXFx1NURBRFxcdTVEQUZcXHU1REI0XFx1NUU2N1xcdTVFNjhcXHU1RTY2XFx1NUU2RlxcdTVFRTlcXHU1RUU3XFx1NUVFNlxcdTVFRThcXHU1RUU1XFx1NUY0QlxcdTVGQkNcXHU2MTlEXFx1NjFBOFxcdTYxOTZcXHU2MUM1XFx1NjFCNFxcdTYxQzZcXHU2MUMxXFx1NjFDQ1xcdTYxQkFcIl0sXG4gICAgICBbXCJlOWExXCIsIFwiXFx1NjFCRlxcdTYxQjhcXHU2MThDXFx1NjREN1xcdTY0RDZcXHU2NEQwXFx1NjRDRlxcdTY0QzlcXHU2NEJEXFx1NjQ4OVxcdTY0QzNcXHU2NERCXFx1NjRGM1xcdTY0RDlcXHU2NTMzXFx1NjU3RlxcdTY1N0NcXHU2NUEyXFx1NjZDOFxcdTY2QkVcXHU2NkMwXFx1NjZDQVxcdTY2Q0JcXHU2NkNGXFx1NjZCRFxcdTY2QkJcXHU2NkJBXFx1NjZDQ1xcdTY3MjNcXHU2QTM0XFx1NkE2NlxcdTZBNDlcXHU2QTY3XFx1NkEzMlxcdTZBNjhcXHU2QTNFXFx1NkE1RFxcdTZBNkRcXHU2QTc2XFx1NkE1QlxcdTZBNTFcXHU2QTI4XFx1NkE1QVxcdTZBM0JcXHU2QTNGXFx1NkE0MVxcdTZBNkFcXHU2QTY0XFx1NkE1MFxcdTZBNEZcXHU2QTU0XFx1NkE2RlxcdTZBNjlcXHU2QTYwXFx1NkEzQ1xcdTZBNUVcXHU2QTU2XFx1NkE1NVxcdTZBNERcXHU2QTRFXFx1NkE0NlxcdTZCNTVcXHU2QjU0XFx1NkI1NlxcdTZCQTdcXHU2QkFBXFx1NkJBQlxcdTZCQzhcXHU2QkM3XFx1NkMwNFxcdTZDMDNcXHU2QzA2XFx1NkZBRFxcdTZGQ0JcXHU2RkEzXFx1NkZDN1xcdTZGQkNcXHU2RkNFXFx1NkZDOFxcdTZGNUVcXHU2RkM0XFx1NkZCRFxcdTZGOUVcXHU2RkNBXFx1NkZBOFxcdTcwMDRcXHU2RkE1XFx1NkZBRVxcdTZGQkFcXHU2RkFDXFx1NkZBQVxcdTZGQ0ZcXHU2RkJGXFx1NkZCOFwiXSxcbiAgICAgIFtcImVhNDBcIiwgXCJcXHU2RkEyXFx1NkZDOVxcdTZGQUJcXHU2RkNEXFx1NkZBRlxcdTZGQjJcXHU2RkIwXFx1NzFDNVxcdTcxQzJcXHU3MUJGXFx1NzFCOFxcdTcxRDZcXHU3MUMwXFx1NzFDMVxcdTcxQ0JcXHU3MUQ0XFx1NzFDQVxcdTcxQzdcXHU3MUNGXFx1NzFCRFxcdTcxRDhcXHU3MUJDXFx1NzFDNlxcdTcxREFcXHU3MURCXFx1NzI5RFxcdTcyOUVcXHU3MzY5XFx1NzM2NlxcdTczNjdcXHU3MzZDXFx1NzM2NVxcdTczNkJcXHU3MzZBXFx1NzQ3RlxcdTc0OUFcXHU3NEEwXFx1NzQ5NFxcdTc0OTJcXHU3NDk1XFx1NzRBMVxcdTc1MEJcXHU3NTgwXFx1NzYyRlxcdTc2MkRcXHU3NjMxXFx1NzYzRFxcdTc2MzNcXHU3NjNDXFx1NzYzNVxcdTc2MzJcXHU3NjMwXFx1NzZCQlxcdTc2RTZcXHU3NzlBXFx1Nzc5RFxcdTc3QTFcXHU3NzlDXFx1Nzc5QlxcdTc3QTJcXHU3N0EzXFx1Nzc5NVxcdTc3OTlcIl0sXG4gICAgICBbXCJlYWExXCIsIFwiXFx1Nzc5N1xcdTc4RERcXHU3OEU5XFx1NzhFNVxcdTc4RUFcXHU3OERFXFx1NzhFM1xcdTc4REJcXHU3OEUxXFx1NzhFMlxcdTc4RURcXHU3OERGXFx1NzhFMFxcdTc5QTRcXHU3QTQ0XFx1N0E0OFxcdTdBNDdcXHU3QUI2XFx1N0FCOFxcdTdBQjVcXHU3QUIxXFx1N0FCN1xcdTdCREVcXHU3QkUzXFx1N0JFN1xcdTdCRERcXHU3QkQ1XFx1N0JFNVxcdTdCREFcXHU3QkU4XFx1N0JGOVxcdTdCRDRcXHU3QkVBXFx1N0JFMlxcdTdCRENcXHU3QkVCXFx1N0JEOFxcdTdCREZcXHU3Q0QyXFx1N0NENFxcdTdDRDdcXHU3Q0QwXFx1N0NEMVxcdTdFMTJcXHU3RTIxXFx1N0UxN1xcdTdFMENcXHU3RTFGXFx1N0UyMFxcdTdFMTNcXHU3RTBFXFx1N0UxQ1xcdTdFMTVcXHU3RTFBXFx1N0UyMlxcdTdFMEJcXHU3RTBGXFx1N0UxNlxcdTdFMERcXHU3RTE0XFx1N0UyNVxcdTdFMjRcXHU3RjQzXFx1N0Y3QlxcdTdGN0NcXHU3RjdBXFx1N0ZCMVxcdTdGRUZcXHU4MDJBXFx1ODAyOVxcdTgwNkNcXHU4MUIxXFx1ODFBNlxcdTgxQUVcXHU4MUI5XFx1ODFCNVxcdTgxQUJcXHU4MUIwXFx1ODFBQ1xcdTgxQjRcXHU4MUIyXFx1ODFCN1xcdTgxQTdcXHU4MUYyXFx1ODI1NVxcdTgyNTZcXHU4MjU3XFx1ODU1NlxcdTg1NDVcXHU4NTZCXFx1ODU0RFxcdTg1NTNcXHU4NTYxXFx1ODU1OFwiXSxcbiAgICAgIFtcImViNDBcIiwgXCJcXHU4NTQwXFx1ODU0NlxcdTg1NjRcXHU4NTQxXFx1ODU2MlxcdTg1NDRcXHU4NTUxXFx1ODU0N1xcdTg1NjNcXHU4NTNFXFx1ODU1QlxcdTg1NzFcXHU4NTRFXFx1ODU2RVxcdTg1NzVcXHU4NTU1XFx1ODU2N1xcdTg1NjBcXHU4NThDXFx1ODU2NlxcdTg1NURcXHU4NTU0XFx1ODU2NVxcdTg1NkNcXHU4NjYzXFx1ODY2NVxcdTg2NjRcXHU4NzlCXFx1ODc4RlxcdTg3OTdcXHU4NzkzXFx1ODc5MlxcdTg3ODhcXHU4NzgxXFx1ODc5NlxcdTg3OThcXHU4Nzc5XFx1ODc4N1xcdTg3QTNcXHU4Nzg1XFx1ODc5MFxcdTg3OTFcXHU4NzlEXFx1ODc4NFxcdTg3OTRcXHU4NzlDXFx1ODc5QVxcdTg3ODlcXHU4OTFFXFx1ODkyNlxcdTg5MzBcXHU4OTJEXFx1ODkyRVxcdTg5MjdcXHU4OTMxXFx1ODkyMlxcdTg5MjlcXHU4OTIzXFx1ODkyRlxcdTg5MkNcXHU4OTFGXFx1ODlGMVxcdThBRTBcIl0sXG4gICAgICBbXCJlYmExXCIsIFwiXFx1OEFFMlxcdThBRjJcXHU4QUY0XFx1OEFGNVxcdThBRERcXHU4QjE0XFx1OEFFNFxcdThBREZcXHU4QUYwXFx1OEFDOFxcdThBREVcXHU4QUUxXFx1OEFFOFxcdThBRkZcXHU4QUVGXFx1OEFGQlxcdThDOTFcXHU4QzkyXFx1OEM5MFxcdThDRjVcXHU4Q0VFXFx1OENGMVxcdThDRjBcXHU4Q0YzXFx1OEQ2Q1xcdThENkVcXHU4REE1XFx1OERBN1xcdThFMzNcXHU4RTNFXFx1OEUzOFxcdThFNDBcXHU4RTQ1XFx1OEUzNlxcdThFM0NcXHU4RTNEXFx1OEU0MVxcdThFMzBcXHU4RTNGXFx1OEVCRFxcdThGMzZcXHU4RjJFXFx1OEYzNVxcdThGMzJcXHU4RjM5XFx1OEYzN1xcdThGMzRcXHU5MDc2XFx1OTA3OVxcdTkwN0JcXHU5MDg2XFx1OTBGQVxcdTkxMzNcXHU5MTM1XFx1OTEzNlxcdTkxOTNcXHU5MTkwXFx1OTE5MVxcdTkxOERcXHU5MThGXFx1OTMyN1xcdTkzMUVcXHU5MzA4XFx1OTMxRlxcdTkzMDZcXHU5MzBGXFx1OTM3QVxcdTkzMzhcXHU5MzNDXFx1OTMxQlxcdTkzMjNcXHU5MzEyXFx1OTMwMVxcdTkzNDZcXHU5MzJEXFx1OTMwRVxcdTkzMERcXHU5MkNCXFx1OTMxRFxcdTkyRkFcXHU5MzI1XFx1OTMxM1xcdTkyRjlcXHU5MkY3XFx1OTMzNFxcdTkzMDJcXHU5MzI0XFx1OTJGRlxcdTkzMjlcXHU5MzM5XFx1OTMzNVxcdTkzMkFcXHU5MzE0XFx1OTMwQ1wiXSxcbiAgICAgIFtcImVjNDBcIiwgXCJcXHU5MzBCXFx1OTJGRVxcdTkzMDlcXHU5MzAwXFx1OTJGQlxcdTkzMTZcXHU5NUJDXFx1OTVDRFxcdTk1QkVcXHU5NUI5XFx1OTVCQVxcdTk1QjZcXHU5NUJGXFx1OTVCNVxcdTk1QkRcXHU5NkE5XFx1OTZENFxcdTk3MEJcXHU5NzEyXFx1OTcxMFxcdTk3OTlcXHU5Nzk3XFx1OTc5NFxcdTk3RjBcXHU5N0Y4XFx1OTgzNVxcdTk4MkZcXHU5ODMyXFx1OTkyNFxcdTk5MUZcXHU5OTI3XFx1OTkyOVxcdTk5OUVcXHU5OUVFXFx1OTlFQ1xcdTk5RTVcXHU5OUU0XFx1OTlGMFxcdTk5RTNcXHU5OUVBXFx1OTlFOVxcdTk5RTdcXHU5QUI5XFx1OUFCRlxcdTlBQjRcXHU5QUJCXFx1OUFGNlxcdTlBRkFcXHU5QUY5XFx1OUFGN1xcdTlCMzNcXHU5QjgwXFx1OUI4NVxcdTlCODdcXHU5QjdDXFx1OUI3RVxcdTlCN0JcXHU5QjgyXFx1OUI5M1xcdTlCOTJcXHU5QjkwXFx1OUI3QVxcdTlCOTVcIl0sXG4gICAgICBbXCJlY2ExXCIsIFwiXFx1OUI3RFxcdTlCODhcXHU5RDI1XFx1OUQxN1xcdTlEMjBcXHU5RDFFXFx1OUQxNFxcdTlEMjlcXHU5RDFEXFx1OUQxOFxcdTlEMjJcXHU5RDEwXFx1OUQxOVxcdTlEMUZcXHU5RTg4XFx1OUU4NlxcdTlFODdcXHU5RUFFXFx1OUVBRFxcdTlFRDVcXHU5RUQ2XFx1OUVGQVxcdTlGMTJcXHU5RjNEXFx1NTEyNlxcdTUxMjVcXHU1MTIyXFx1NTEyNFxcdTUxMjBcXHU1MTI5XFx1NTJGNFxcdTU2OTNcXHU1NjhDXFx1NTY4RFxcdTU2ODZcXHU1Njg0XFx1NTY4M1xcdTU2N0VcXHU1NjgyXFx1NTY3RlxcdTU2ODFcXHU1OEQ2XFx1NThENFxcdTU4Q0ZcXHU1OEQyXFx1NUIyRFxcdTVCMjVcXHU1QjMyXFx1NUIyM1xcdTVCMkNcXHU1QjI3XFx1NUIyNlxcdTVCMkZcXHU1QjJFXFx1NUI3QlxcdTVCRjFcXHU1QkYyXFx1NURCN1xcdTVFNkNcXHU1RTZBXFx1NUZCRVxcdTVGQkJcXHU2MUMzXFx1NjFCNVxcdTYxQkNcXHU2MUU3XFx1NjFFMFxcdTYxRTVcXHU2MUU0XFx1NjFFOFxcdTYxREVcXHU2NEVGXFx1NjRFOVxcdTY0RTNcXHU2NEVCXFx1NjRFNFxcdTY0RThcXHU2NTgxXFx1NjU4MFxcdTY1QjZcXHU2NURBXFx1NjZEMlxcdTZBOERcXHU2QTk2XFx1NkE4MVxcdTZBQTVcXHU2QTg5XFx1NkE5RlxcdTZBOUJcXHU2QUExXFx1NkE5RVxcdTZBODdcXHU2QTkzXFx1NkE4RVwiXSxcbiAgICAgIFtcImVkNDBcIiwgXCJcXHU2QTk1XFx1NkE4M1xcdTZBQThcXHU2QUE0XFx1NkE5MVxcdTZBN0ZcXHU2QUE2XFx1NkE5QVxcdTZBODVcXHU2QThDXFx1NkE5MlxcdTZCNUJcXHU2QkFEXFx1NkMwOVxcdTZGQ0NcXHU2RkE5XFx1NkZGNFxcdTZGRDRcXHU2RkUzXFx1NkZEQ1xcdTZGRURcXHU2RkU3XFx1NkZFNlxcdTZGREVcXHU2RkYyXFx1NkZERFxcdTZGRTJcXHU2RkU4XFx1NzFFMVxcdTcxRjFcXHU3MUU4XFx1NzFGMlxcdTcxRTRcXHU3MUYwXFx1NzFFMlxcdTczNzNcXHU3MzZFXFx1NzM2RlxcdTc0OTdcXHU3NEIyXFx1NzRBQlxcdTc0OTBcXHU3NEFBXFx1NzRBRFxcdTc0QjFcXHU3NEE1XFx1NzRBRlxcdTc1MTBcXHU3NTExXFx1NzUxMlxcdTc1MEZcXHU3NTg0XFx1NzY0M1xcdTc2NDhcXHU3NjQ5XFx1NzY0N1xcdTc2QTRcXHU3NkU5XFx1NzdCNVxcdTc3QUJcXHU3N0IyXFx1NzdCN1xcdTc3QjZcIl0sXG4gICAgICBbXCJlZGExXCIsIFwiXFx1NzdCNFxcdTc3QjFcXHU3N0E4XFx1NzdGMFxcdTc4RjNcXHU3OEZEXFx1NzkwMlxcdTc4RkJcXHU3OEZDXFx1NzhGMlxcdTc5MDVcXHU3OEY5XFx1NzhGRVxcdTc5MDRcXHU3OUFCXFx1NzlBOFxcdTdBNUNcXHU3QTVCXFx1N0E1NlxcdTdBNThcXHU3QTU0XFx1N0E1QVxcdTdBQkVcXHU3QUMwXFx1N0FDMVxcdTdDMDVcXHU3QzBGXFx1N0JGMlxcdTdDMDBcXHU3QkZGXFx1N0JGQlxcdTdDMEVcXHU3QkY0XFx1N0MwQlxcdTdCRjNcXHU3QzAyXFx1N0MwOVxcdTdDMDNcXHU3QzAxXFx1N0JGOFxcdTdCRkRcXHU3QzA2XFx1N0JGMFxcdTdCRjFcXHU3QzEwXFx1N0MwQVxcdTdDRThcXHU3RTJEXFx1N0UzQ1xcdTdFNDJcXHU3RTMzXFx1OTg0OFxcdTdFMzhcXHU3RTJBXFx1N0U0OVxcdTdFNDBcXHU3RTQ3XFx1N0UyOVxcdTdFNENcXHU3RTMwXFx1N0UzQlxcdTdFMzZcXHU3RTQ0XFx1N0UzQVxcdTdGNDVcXHU3RjdGXFx1N0Y3RVxcdTdGN0RcXHU3RkY0XFx1N0ZGMlxcdTgwMkNcXHU4MUJCXFx1ODFDNFxcdTgxQ0NcXHU4MUNBXFx1ODFDNVxcdTgxQzdcXHU4MUJDXFx1ODFFOVxcdTgyNUJcXHU4MjVBXFx1ODI1Q1xcdTg1ODNcXHU4NTgwXFx1ODU4RlxcdTg1QTdcXHU4NTk1XFx1ODVBMFxcdTg1OEJcXHU4NUEzXFx1ODU3QlxcdTg1QTRcXHU4NTlBXFx1ODU5RVwiXSxcbiAgICAgIFtcImVlNDBcIiwgXCJcXHU4NTc3XFx1ODU3Q1xcdTg1ODlcXHU4NUExXFx1ODU3QVxcdTg1NzhcXHU4NTU3XFx1ODU4RVxcdTg1OTZcXHU4NTg2XFx1ODU4RFxcdTg1OTlcXHU4NTlEXFx1ODU4MVxcdTg1QTJcXHU4NTgyXFx1ODU4OFxcdTg1ODVcXHU4NTc5XFx1ODU3NlxcdTg1OThcXHU4NTkwXFx1ODU5RlxcdTg2NjhcXHU4N0JFXFx1ODdBQVxcdTg3QURcXHU4N0M1XFx1ODdCMFxcdTg3QUNcXHU4N0I5XFx1ODdCNVxcdTg3QkNcXHU4N0FFXFx1ODdDOVxcdTg3QzNcXHU4N0MyXFx1ODdDQ1xcdTg3QjdcXHU4N0FGXFx1ODdDNFxcdTg3Q0FcXHU4N0I0XFx1ODdCNlxcdTg3QkZcXHU4N0I4XFx1ODdCRFxcdTg3REVcXHU4N0IyXFx1ODkzNVxcdTg5MzNcXHU4OTNDXFx1ODkzRVxcdTg5NDFcXHU4OTUyXFx1ODkzN1xcdTg5NDJcXHU4OUFEXFx1ODlBRlxcdTg5QUVcXHU4OUYyXFx1ODlGM1xcdThCMUVcIl0sXG4gICAgICBbXCJlZWExXCIsIFwiXFx1OEIxOFxcdThCMTZcXHU4QjExXFx1OEIwNVxcdThCMEJcXHU4QjIyXFx1OEIwRlxcdThCMTJcXHU4QjE1XFx1OEIwN1xcdThCMERcXHU4QjA4XFx1OEIwNlxcdThCMUNcXHU4QjEzXFx1OEIxQVxcdThDNEZcXHU4QzcwXFx1OEM3MlxcdThDNzFcXHU4QzZGXFx1OEM5NVxcdThDOTRcXHU4Q0Y5XFx1OEQ2RlxcdThFNEVcXHU4RTREXFx1OEU1M1xcdThFNTBcXHU4RTRDXFx1OEU0N1xcdThGNDNcXHU4RjQwXFx1OTA4NVxcdTkwN0VcXHU5MTM4XFx1OTE5QVxcdTkxQTJcXHU5MTlCXFx1OTE5OVxcdTkxOUZcXHU5MUExXFx1OTE5RFxcdTkxQTBcXHU5M0ExXFx1OTM4M1xcdTkzQUZcXHU5MzY0XFx1OTM1NlxcdTkzNDdcXHU5MzdDXFx1OTM1OFxcdTkzNUNcXHU5Mzc2XFx1OTM0OVxcdTkzNTBcXHU5MzUxXFx1OTM2MFxcdTkzNkRcXHU5MzhGXFx1OTM0Q1xcdTkzNkFcXHU5Mzc5XFx1OTM1N1xcdTkzNTVcXHU5MzUyXFx1OTM0RlxcdTkzNzFcXHU5Mzc3XFx1OTM3QlxcdTkzNjFcXHU5MzVFXFx1OTM2M1xcdTkzNjdcXHU5MzgwXFx1OTM0RVxcdTkzNTlcXHU5NUM3XFx1OTVDMFxcdTk1QzlcXHU5NUMzXFx1OTVDNVxcdTk1QjdcXHU5NkFFXFx1OTZCMFxcdTk2QUNcXHU5NzIwXFx1OTcxRlxcdTk3MThcXHU5NzFEXFx1OTcxOVxcdTk3OUFcXHU5N0ExXFx1OTc5Q1wiXSxcbiAgICAgIFtcImVmNDBcIiwgXCJcXHU5NzlFXFx1OTc5RFxcdTk3RDVcXHU5N0Q0XFx1OTdGMVxcdTk4NDFcXHU5ODQ0XFx1OTg0QVxcdTk4NDlcXHU5ODQ1XFx1OTg0M1xcdTk5MjVcXHU5OTJCXFx1OTkyQ1xcdTk5MkFcXHU5OTMzXFx1OTkzMlxcdTk5MkZcXHU5OTJEXFx1OTkzMVxcdTk5MzBcXHU5OTk4XFx1OTlBM1xcdTk5QTFcXHU5QTAyXFx1OTlGQVxcdTk5RjRcXHU5OUY3XFx1OTlGOVxcdTk5RjhcXHU5OUY2XFx1OTlGQlxcdTk5RkRcXHU5OUZFXFx1OTlGQ1xcdTlBMDNcXHU5QUJFXFx1OUFGRVxcdTlBRkRcXHU5QjAxXFx1OUFGQ1xcdTlCNDhcXHU5QjlBXFx1OUJBOFxcdTlCOUVcXHU5QjlCXFx1OUJBNlxcdTlCQTFcXHU5QkE1XFx1OUJBNFxcdTlCODZcXHU5QkEyXFx1OUJBMFxcdTlCQUZcXHU5RDMzXFx1OUQ0MVxcdTlENjdcXHU5RDM2XFx1OUQyRVxcdTlEMkZcXHU5RDMxXFx1OUQzOFxcdTlEMzBcIl0sXG4gICAgICBbXCJlZmExXCIsIFwiXFx1OUQ0NVxcdTlENDJcXHU5RDQzXFx1OUQzRVxcdTlEMzdcXHU5RDQwXFx1OUQzRFxcdTdGRjVcXHU5RDJEXFx1OUU4QVxcdTlFODlcXHU5RThEXFx1OUVCMFxcdTlFQzhcXHU5RURBXFx1OUVGQlxcdTlFRkZcXHU5RjI0XFx1OUYyM1xcdTlGMjJcXHU5RjU0XFx1OUZBMFxcdTUxMzFcXHU1MTJEXFx1NTEyRVxcdTU2OThcXHU1NjlDXFx1NTY5N1xcdTU2OUFcXHU1NjlEXFx1NTY5OVxcdTU5NzBcXHU1QjNDXFx1NUM2OVxcdTVDNkFcXHU1REMwXFx1NUU2RFxcdTVFNkVcXHU2MUQ4XFx1NjFERlxcdTYxRURcXHU2MUVFXFx1NjFGMVxcdTYxRUFcXHU2MUYwXFx1NjFFQlxcdTYxRDZcXHU2MUU5XFx1NjRGRlxcdTY1MDRcXHU2NEZEXFx1NjRGOFxcdTY1MDFcXHU2NTAzXFx1NjRGQ1xcdTY1OTRcXHU2NURCXFx1NjZEQVxcdTY2REJcXHU2NkQ4XFx1NkFDNVxcdTZBQjlcXHU2QUJEXFx1NkFFMVxcdTZBQzZcXHU2QUJBXFx1NkFCNlxcdTZBQjdcXHU2QUM3XFx1NkFCNFxcdTZBQURcXHU2QjVFXFx1NkJDOVxcdTZDMEJcXHU3MDA3XFx1NzAwQ1xcdTcwMERcXHU3MDAxXFx1NzAwNVxcdTcwMTRcXHU3MDBFXFx1NkZGRlxcdTcwMDBcXHU2RkZCXFx1NzAyNlxcdTZGRkNcXHU2RkY3XFx1NzAwQVxcdTcyMDFcXHU3MUZGXFx1NzFGOVxcdTcyMDNcXHU3MUZEXFx1NzM3NlwiXSxcbiAgICAgIFtcImYwNDBcIiwgXCJcXHU3NEI4XFx1NzRDMFxcdTc0QjVcXHU3NEMxXFx1NzRCRVxcdTc0QjZcXHU3NEJCXFx1NzRDMlxcdTc1MTRcXHU3NTEzXFx1NzY1Q1xcdTc2NjRcXHU3NjU5XFx1NzY1MFxcdTc2NTNcXHU3NjU3XFx1NzY1QVxcdTc2QTZcXHU3NkJEXFx1NzZFQ1xcdTc3QzJcXHU3N0JBXFx1NzhGRlxcdTc5MENcXHU3OTEzXFx1NzkxNFxcdTc5MDlcXHU3OTEwXFx1NzkxMlxcdTc5MTFcXHU3OUFEXFx1NzlBQ1xcdTdBNUZcXHU3QzFDXFx1N0MyOVxcdTdDMTlcXHU3QzIwXFx1N0MxRlxcdTdDMkRcXHU3QzFEXFx1N0MyNlxcdTdDMjhcXHU3QzIyXFx1N0MyNVxcdTdDMzBcXHU3RTVDXFx1N0U1MFxcdTdFNTZcXHU3RTYzXFx1N0U1OFxcdTdFNjJcXHU3RTVGXFx1N0U1MVxcdTdFNjBcXHU3RTU3XFx1N0U1M1xcdTdGQjVcXHU3RkIzXFx1N0ZGN1xcdTdGRjhcXHU4MDc1XFx1ODFEMVxcdTgxRDJcIl0sXG4gICAgICBbXCJmMGExXCIsIFwiXFx1ODFEMFxcdTgyNUZcXHU4MjVFXFx1ODVCNFxcdTg1QzZcXHU4NUMwXFx1ODVDM1xcdTg1QzJcXHU4NUIzXFx1ODVCNVxcdTg1QkRcXHU4NUM3XFx1ODVDNFxcdTg1QkZcXHU4NUNCXFx1ODVDRVxcdTg1QzhcXHU4NUM1XFx1ODVCMVxcdTg1QjZcXHU4NUQyXFx1ODYyNFxcdTg1QjhcXHU4NUI3XFx1ODVCRVxcdTg2NjlcXHU4N0U3XFx1ODdFNlxcdTg3RTJcXHU4N0RCXFx1ODdFQlxcdTg3RUFcXHU4N0U1XFx1ODdERlxcdTg3RjNcXHU4N0U0XFx1ODdENFxcdTg3RENcXHU4N0QzXFx1ODdFRFxcdTg3RDhcXHU4N0UzXFx1ODdBNFxcdTg3RDdcXHU4N0Q5XFx1ODgwMVxcdTg3RjRcXHU4N0U4XFx1ODdERFxcdTg5NTNcXHU4OTRCXFx1ODk0RlxcdTg5NENcXHU4OTQ2XFx1ODk1MFxcdTg5NTFcXHU4OTQ5XFx1OEIyQVxcdThCMjdcXHU4QjIzXFx1OEIzM1xcdThCMzBcXHU4QjM1XFx1OEI0N1xcdThCMkZcXHU4QjNDXFx1OEIzRVxcdThCMzFcXHU4QjI1XFx1OEIzN1xcdThCMjZcXHU4QjM2XFx1OEIyRVxcdThCMjRcXHU4QjNCXFx1OEIzRFxcdThCM0FcXHU4QzQyXFx1OEM3NVxcdThDOTlcXHU4Qzk4XFx1OEM5N1xcdThDRkVcXHU4RDA0XFx1OEQwMlxcdThEMDBcXHU4RTVDXFx1OEU2MlxcdThFNjBcXHU4RTU3XFx1OEU1NlxcdThFNUVcXHU4RTY1XFx1OEU2N1wiXSxcbiAgICAgIFtcImYxNDBcIiwgXCJcXHU4RTVCXFx1OEU1QVxcdThFNjFcXHU4RTVEXFx1OEU2OVxcdThFNTRcXHU4RjQ2XFx1OEY0N1xcdThGNDhcXHU4RjRCXFx1OTEyOFxcdTkxM0FcXHU5MTNCXFx1OTEzRVxcdTkxQThcXHU5MUE1XFx1OTFBN1xcdTkxQUZcXHU5MUFBXFx1OTNCNVxcdTkzOENcXHU5MzkyXFx1OTNCN1xcdTkzOUJcXHU5MzlEXFx1OTM4OVxcdTkzQTdcXHU5MzhFXFx1OTNBQVxcdTkzOUVcXHU5M0E2XFx1OTM5NVxcdTkzODhcXHU5Mzk5XFx1OTM5RlxcdTkzOERcXHU5M0IxXFx1OTM5MVxcdTkzQjJcXHU5M0E0XFx1OTNBOFxcdTkzQjRcXHU5M0EzXFx1OTNBNVxcdTk1RDJcXHU5NUQzXFx1OTVEMVxcdTk2QjNcXHU5NkQ3XFx1OTZEQVxcdTVEQzJcXHU5NkRGXFx1OTZEOFxcdTk2RERcXHU5NzIzXFx1OTcyMlxcdTk3MjVcXHU5N0FDXFx1OTdBRVxcdTk3QThcXHU5N0FCXFx1OTdBNFxcdTk3QUFcIl0sXG4gICAgICBbXCJmMWExXCIsIFwiXFx1OTdBMlxcdTk3QTVcXHU5N0Q3XFx1OTdEOVxcdTk3RDZcXHU5N0Q4XFx1OTdGQVxcdTk4NTBcXHU5ODUxXFx1OTg1MlxcdTk4QjhcXHU5OTQxXFx1OTkzQ1xcdTk5M0FcXHU5QTBGXFx1OUEwQlxcdTlBMDlcXHU5QTBEXFx1OUEwNFxcdTlBMTFcXHU5QTBBXFx1OUEwNVxcdTlBMDdcXHU5QTA2XFx1OUFDMFxcdTlBRENcXHU5QjA4XFx1OUIwNFxcdTlCMDVcXHU5QjI5XFx1OUIzNVxcdTlCNEFcXHU5QjRDXFx1OUI0QlxcdTlCQzdcXHU5QkM2XFx1OUJDM1xcdTlCQkZcXHU5QkMxXFx1OUJCNVxcdTlCQjhcXHU5QkQzXFx1OUJCNlxcdTlCQzRcXHU5QkI5XFx1OUJCRFxcdTlENUNcXHU5RDUzXFx1OUQ0RlxcdTlENEFcXHU5RDVCXFx1OUQ0QlxcdTlENTlcXHU5RDU2XFx1OUQ0Q1xcdTlENTdcXHU5RDUyXFx1OUQ1NFxcdTlENUZcXHU5RDU4XFx1OUQ1QVxcdTlFOEVcXHU5RThDXFx1OUVERlxcdTlGMDFcXHU5RjAwXFx1OUYxNlxcdTlGMjVcXHU5RjJCXFx1OUYyQVxcdTlGMjlcXHU5RjI4XFx1OUY0Q1xcdTlGNTVcXHU1MTM0XFx1NTEzNVxcdTUyOTZcXHU1MkY3XFx1NTNCNFxcdTU2QUJcXHU1NkFEXFx1NTZBNlxcdTU2QTdcXHU1NkFBXFx1NTZBQ1xcdTU4REFcXHU1OEREXFx1NThEQlxcdTU5MTJcXHU1QjNEXFx1NUIzRVxcdTVCM0ZcXHU1REMzXFx1NUU3MFwiXSxcbiAgICAgIFtcImYyNDBcIiwgXCJcXHU1RkJGXFx1NjFGQlxcdTY1MDdcXHU2NTEwXFx1NjUwRFxcdTY1MDlcXHU2NTBDXFx1NjUwRVxcdTY1ODRcXHU2NURFXFx1NjVERFxcdTY2REVcXHU2QUU3XFx1NkFFMFxcdTZBQ0NcXHU2QUQxXFx1NkFEOVxcdTZBQ0JcXHU2QURGXFx1NkFEQ1xcdTZBRDBcXHU2QUVCXFx1NkFDRlxcdTZBQ0RcXHU2QURFXFx1NkI2MFxcdTZCQjBcXHU2QzBDXFx1NzAxOVxcdTcwMjdcXHU3MDIwXFx1NzAxNlxcdTcwMkJcXHU3MDIxXFx1NzAyMlxcdTcwMjNcXHU3MDI5XFx1NzAxN1xcdTcwMjRcXHU3MDFDXFx1NzAyQVxcdTcyMENcXHU3MjBBXFx1NzIwN1xcdTcyMDJcXHU3MjA1XFx1NzJBNVxcdTcyQTZcXHU3MkE0XFx1NzJBM1xcdTcyQTFcXHU3NENCXFx1NzRDNVxcdTc0QjdcXHU3NEMzXFx1NzUxNlxcdTc2NjBcXHU3N0M5XFx1NzdDQVxcdTc3QzRcXHU3N0YxXFx1NzkxRFxcdTc5MUJcIl0sXG4gICAgICBbXCJmMmExXCIsIFwiXFx1NzkyMVxcdTc5MUNcXHU3OTE3XFx1NzkxRVxcdTc5QjBcXHU3QTY3XFx1N0E2OFxcdTdDMzNcXHU3QzNDXFx1N0MzOVxcdTdDMkNcXHU3QzNCXFx1N0NFQ1xcdTdDRUFcXHU3RTc2XFx1N0U3NVxcdTdFNzhcXHU3RTcwXFx1N0U3N1xcdTdFNkZcXHU3RTdBXFx1N0U3MlxcdTdFNzRcXHU3RTY4XFx1N0Y0QlxcdTdGNEFcXHU3RjgzXFx1N0Y4NlxcdTdGQjdcXHU3RkZEXFx1N0ZGRVxcdTgwNzhcXHU4MUQ3XFx1ODFENVxcdTgyNjRcXHU4MjYxXFx1ODI2M1xcdTg1RUJcXHU4NUYxXFx1ODVFRFxcdTg1RDlcXHU4NUUxXFx1ODVFOFxcdTg1REFcXHU4NUQ3XFx1ODVFQ1xcdTg1RjJcXHU4NUY4XFx1ODVEOFxcdTg1REZcXHU4NUUzXFx1ODVEQ1xcdTg1RDFcXHU4NUYwXFx1ODVFNlxcdTg1RUZcXHU4NURFXFx1ODVFMlxcdTg4MDBcXHU4N0ZBXFx1ODgwM1xcdTg3RjZcXHU4N0Y3XFx1ODgwOVxcdTg4MENcXHU4ODBCXFx1ODgwNlxcdTg3RkNcXHU4ODA4XFx1ODdGRlxcdTg4MEFcXHU4ODAyXFx1ODk2MlxcdTg5NUFcXHU4OTVCXFx1ODk1N1xcdTg5NjFcXHU4OTVDXFx1ODk1OFxcdTg5NURcXHU4OTU5XFx1ODk4OFxcdTg5QjdcXHU4OUI2XFx1ODlGNlxcdThCNTBcXHU4QjQ4XFx1OEI0QVxcdThCNDBcXHU4QjUzXFx1OEI1NlxcdThCNTRcXHU4QjRCXFx1OEI1NVwiXSxcbiAgICAgIFtcImYzNDBcIiwgXCJcXHU4QjUxXFx1OEI0MlxcdThCNTJcXHU4QjU3XFx1OEM0M1xcdThDNzdcXHU4Qzc2XFx1OEM5QVxcdThEMDZcXHU4RDA3XFx1OEQwOVxcdThEQUNcXHU4REFBXFx1OERBRFxcdThEQUJcXHU4RTZEXFx1OEU3OFxcdThFNzNcXHU4RTZBXFx1OEU2RlxcdThFN0JcXHU4RUMyXFx1OEY1MlxcdThGNTFcXHU4RjRGXFx1OEY1MFxcdThGNTNcXHU4RkI0XFx1OTE0MFxcdTkxM0ZcXHU5MUIwXFx1OTFBRFxcdTkzREVcXHU5M0M3XFx1OTNDRlxcdTkzQzJcXHU5M0RBXFx1OTNEMFxcdTkzRjlcXHU5M0VDXFx1OTNDQ1xcdTkzRDlcXHU5M0E5XFx1OTNFNlxcdTkzQ0FcXHU5M0Q0XFx1OTNFRVxcdTkzRTNcXHU5M0Q1XFx1OTNDNFxcdTkzQ0VcXHU5M0MwXFx1OTNEMlxcdTkzRTdcXHU5NTdEXFx1OTVEQVxcdTk1REJcXHU5NkUxXFx1OTcyOVxcdTk3MkJcXHU5NzJDXFx1OTcyOFxcdTk3MjZcIl0sXG4gICAgICBbXCJmM2ExXCIsIFwiXFx1OTdCM1xcdTk3QjdcXHU5N0I2XFx1OTdERFxcdTk3REVcXHU5N0RGXFx1OTg1Q1xcdTk4NTlcXHU5ODVEXFx1OTg1N1xcdTk4QkZcXHU5OEJEXFx1OThCQlxcdTk4QkVcXHU5OTQ4XFx1OTk0N1xcdTk5NDNcXHU5OUE2XFx1OTlBN1xcdTlBMUFcXHU5QTE1XFx1OUEyNVxcdTlBMURcXHU5QTI0XFx1OUExQlxcdTlBMjJcXHU5QTIwXFx1OUEyN1xcdTlBMjNcXHU5QTFFXFx1OUExQ1xcdTlBMTRcXHU5QUMyXFx1OUIwQlxcdTlCMEFcXHU5QjBFXFx1OUIwQ1xcdTlCMzdcXHU5QkVBXFx1OUJFQlxcdTlCRTBcXHU5QkRFXFx1OUJFNFxcdTlCRTZcXHU5QkUyXFx1OUJGMFxcdTlCRDRcXHU5QkQ3XFx1OUJFQ1xcdTlCRENcXHU5QkQ5XFx1OUJFNVxcdTlCRDVcXHU5QkUxXFx1OUJEQVxcdTlENzdcXHU5RDgxXFx1OUQ4QVxcdTlEODRcXHU5RDg4XFx1OUQ3MVxcdTlEODBcXHU5RDc4XFx1OUQ4NlxcdTlEOEJcXHU5RDhDXFx1OUQ3RFxcdTlENkJcXHU5RDc0XFx1OUQ3NVxcdTlENzBcXHU5RDY5XFx1OUQ4NVxcdTlENzNcXHU5RDdCXFx1OUQ4MlxcdTlENkZcXHU5RDc5XFx1OUQ3RlxcdTlEODdcXHU5RDY4XFx1OUU5NFxcdTlFOTFcXHU5RUMwXFx1OUVGQ1xcdTlGMkRcXHU5RjQwXFx1OUY0MVxcdTlGNERcXHU5RjU2XFx1OUY1N1xcdTlGNThcXHU1MzM3XFx1NTZCMlwiXSxcbiAgICAgIFtcImY0NDBcIiwgXCJcXHU1NkI1XFx1NTZCM1xcdTU4RTNcXHU1QjQ1XFx1NURDNlxcdTVEQzdcXHU1RUVFXFx1NUVFRlxcdTVGQzBcXHU1RkMxXFx1NjFGOVxcdTY1MTdcXHU2NTE2XFx1NjUxNVxcdTY1MTNcXHU2NURGXFx1NjZFOFxcdTY2RTNcXHU2NkU0XFx1NkFGM1xcdTZBRjBcXHU2QUVBXFx1NkFFOFxcdTZBRjlcXHU2QUYxXFx1NkFFRVxcdTZBRUZcXHU3MDNDXFx1NzAzNVxcdTcwMkZcXHU3MDM3XFx1NzAzNFxcdTcwMzFcXHU3MDQyXFx1NzAzOFxcdTcwM0ZcXHU3MDNBXFx1NzAzOVxcdTcwNDBcXHU3MDNCXFx1NzAzM1xcdTcwNDFcXHU3MjEzXFx1NzIxNFxcdTcyQThcXHU3MzdEXFx1NzM3Q1xcdTc0QkFcXHU3NkFCXFx1NzZBQVxcdTc2QkVcXHU3NkVEXFx1NzdDQ1xcdTc3Q0VcXHU3N0NGXFx1NzdDRFxcdTc3RjJcXHU3OTI1XFx1NzkyM1xcdTc5MjdcXHU3OTI4XFx1NzkyNFxcdTc5MjlcIl0sXG4gICAgICBbXCJmNGExXCIsIFwiXFx1NzlCMlxcdTdBNkVcXHU3QTZDXFx1N0E2RFxcdTdBRjdcXHU3QzQ5XFx1N0M0OFxcdTdDNEFcXHU3QzQ3XFx1N0M0NVxcdTdDRUVcXHU3RTdCXFx1N0U3RVxcdTdFODFcXHU3RTgwXFx1N0ZCQVxcdTdGRkZcXHU4MDc5XFx1ODFEQlxcdTgxRDlcXHU4MjBCXFx1ODI2OFxcdTgyNjlcXHU4NjIyXFx1ODVGRlxcdTg2MDFcXHU4NUZFXFx1ODYxQlxcdTg2MDBcXHU4NUY2XFx1ODYwNFxcdTg2MDlcXHU4NjA1XFx1ODYwQ1xcdTg1RkRcXHU4ODE5XFx1ODgxMFxcdTg4MTFcXHU4ODE3XFx1ODgxM1xcdTg4MTZcXHU4OTYzXFx1ODk2NlxcdTg5QjlcXHU4OUY3XFx1OEI2MFxcdThCNkFcXHU4QjVEXFx1OEI2OFxcdThCNjNcXHU4QjY1XFx1OEI2N1xcdThCNkRcXHU4REFFXFx1OEU4NlxcdThFODhcXHU4RTg0XFx1OEY1OVxcdThGNTZcXHU4RjU3XFx1OEY1NVxcdThGNThcXHU4RjVBXFx1OTA4RFxcdTkxNDNcXHU5MTQxXFx1OTFCN1xcdTkxQjVcXHU5MUIyXFx1OTFCM1xcdTk0MEJcXHU5NDEzXFx1OTNGQlxcdTk0MjBcXHU5NDBGXFx1OTQxNFxcdTkzRkVcXHU5NDE1XFx1OTQxMFxcdTk0MjhcXHU5NDE5XFx1OTQwRFxcdTkzRjVcXHU5NDAwXFx1OTNGN1xcdTk0MDdcXHU5NDBFXFx1OTQxNlxcdTk0MTJcXHU5M0ZBXFx1OTQwOVxcdTkzRjhcXHU5NDBBXFx1OTNGRlwiXSxcbiAgICAgIFtcImY1NDBcIiwgXCJcXHU5M0ZDXFx1OTQwQ1xcdTkzRjZcXHU5NDExXFx1OTQwNlxcdTk1REVcXHU5NUUwXFx1OTVERlxcdTk3MkVcXHU5NzJGXFx1OTdCOVxcdTk3QkJcXHU5N0ZEXFx1OTdGRVxcdTk4NjBcXHU5ODYyXFx1OTg2M1xcdTk4NUZcXHU5OEMxXFx1OThDMlxcdTk5NTBcXHU5OTRFXFx1OTk1OVxcdTk5NENcXHU5OTRCXFx1OTk1M1xcdTlBMzJcXHU5QTM0XFx1OUEzMVxcdTlBMkNcXHU5QTJBXFx1OUEzNlxcdTlBMjlcXHU5QTJFXFx1OUEzOFxcdTlBMkRcXHU5QUM3XFx1OUFDQVxcdTlBQzZcXHU5QjEwXFx1OUIxMlxcdTlCMTFcXHU5QzBCXFx1OUMwOFxcdTlCRjdcXHU5QzA1XFx1OUMxMlxcdTlCRjhcXHU5QzQwXFx1OUMwN1xcdTlDMEVcXHU5QzA2XFx1OUMxN1xcdTlDMTRcXHU5QzA5XFx1OUQ5RlxcdTlEOTlcXHU5REE0XFx1OUQ5RFxcdTlEOTJcXHU5RDk4XFx1OUQ5MFxcdTlEOUJcIl0sXG4gICAgICBbXCJmNWExXCIsIFwiXFx1OURBMFxcdTlEOTRcXHU5RDlDXFx1OURBQVxcdTlEOTdcXHU5REExXFx1OUQ5QVxcdTlEQTJcXHU5REE4XFx1OUQ5RVxcdTlEQTNcXHU5REJGXFx1OURBOVxcdTlEOTZcXHU5REE2XFx1OURBN1xcdTlFOTlcXHU5RTlCXFx1OUU5QVxcdTlFRTVcXHU5RUU0XFx1OUVFN1xcdTlFRTZcXHU5RjMwXFx1OUYyRVxcdTlGNUJcXHU5RjYwXFx1OUY1RVxcdTlGNURcXHU5RjU5XFx1OUY5MVxcdTUxM0FcXHU1MTM5XFx1NTI5OFxcdTUyOTdcXHU1NkMzXFx1NTZCRFxcdTU2QkVcXHU1QjQ4XFx1NUI0N1xcdTVEQ0JcXHU1RENGXFx1NUVGMVxcdTYxRkRcXHU2NTFCXFx1NkIwMlxcdTZBRkNcXHU2QjAzXFx1NkFGOFxcdTZCMDBcXHU3MDQzXFx1NzA0NFxcdTcwNEFcXHU3MDQ4XFx1NzA0OVxcdTcwNDVcXHU3MDQ2XFx1NzIxRFxcdTcyMUFcXHU3MjE5XFx1NzM3RVxcdTc1MTdcXHU3NjZBXFx1NzdEMFxcdTc5MkRcXHU3OTMxXFx1NzkyRlxcdTdDNTRcXHU3QzUzXFx1N0NGMlxcdTdFOEFcXHU3RTg3XFx1N0U4OFxcdTdFOEJcXHU3RTg2XFx1N0U4RFxcdTdGNERcXHU3RkJCXFx1ODAzMFxcdTgxRERcXHU4NjE4XFx1ODYyQVxcdTg2MjZcXHU4NjFGXFx1ODYyM1xcdTg2MUNcXHU4NjE5XFx1ODYyN1xcdTg2MkVcXHU4NjIxXFx1ODYyMFxcdTg2MjlcXHU4NjFFXFx1ODYyNVwiXSxcbiAgICAgIFtcImY2NDBcIiwgXCJcXHU4ODI5XFx1ODgxRFxcdTg4MUJcXHU4ODIwXFx1ODgyNFxcdTg4MUNcXHU4ODJCXFx1ODg0QVxcdTg5NkRcXHU4OTY5XFx1ODk2RVxcdTg5NkJcXHU4OUZBXFx1OEI3OVxcdThCNzhcXHU4QjQ1XFx1OEI3QVxcdThCN0JcXHU4RDEwXFx1OEQxNFxcdThEQUZcXHU4RThFXFx1OEU4Q1xcdThGNUVcXHU4RjVCXFx1OEY1RFxcdTkxNDZcXHU5MTQ0XFx1OTE0NVxcdTkxQjlcXHU5NDNGXFx1OTQzQlxcdTk0MzZcXHU5NDI5XFx1OTQzRFxcdTk0M0NcXHU5NDMwXFx1OTQzOVxcdTk0MkFcXHU5NDM3XFx1OTQyQ1xcdTk0NDBcXHU5NDMxXFx1OTVFNVxcdTk1RTRcXHU5NUUzXFx1OTczNVxcdTk3M0FcXHU5N0JGXFx1OTdFMVxcdTk4NjRcXHU5OEM5XFx1OThDNlxcdTk4QzBcXHU5OTU4XFx1OTk1NlxcdTlBMzlcXHU5QTNEXFx1OUE0NlxcdTlBNDRcXHU5QTQyXFx1OUE0MVxcdTlBM0FcIl0sXG4gICAgICBbXCJmNmExXCIsIFwiXFx1OUEzRlxcdTlBQ0RcXHU5QjE1XFx1OUIxN1xcdTlCMThcXHU5QjE2XFx1OUIzQVxcdTlCNTJcXHU5QzJCXFx1OUMxRFxcdTlDMUNcXHU5QzJDXFx1OUMyM1xcdTlDMjhcXHU5QzI5XFx1OUMyNFxcdTlDMjFcXHU5REI3XFx1OURCNlxcdTlEQkNcXHU5REMxXFx1OURDN1xcdTlEQ0FcXHU5RENGXFx1OURCRVxcdTlEQzVcXHU5REMzXFx1OURCQlxcdTlEQjVcXHU5RENFXFx1OURCOVxcdTlEQkFcXHU5REFDXFx1OURDOFxcdTlEQjFcXHU5REFEXFx1OURDQ1xcdTlEQjNcXHU5RENEXFx1OURCMlxcdTlFN0FcXHU5RTlDXFx1OUVFQlxcdTlFRUVcXHU5RUVEXFx1OUYxQlxcdTlGMThcXHU5RjFBXFx1OUYzMVxcdTlGNEVcXHU5RjY1XFx1OUY2NFxcdTlGOTJcXHU0RUI5XFx1NTZDNlxcdTU2QzVcXHU1NkNCXFx1NTk3MVxcdTVCNEJcXHU1QjRDXFx1NURENVxcdTVERDFcXHU1RUYyXFx1NjUyMVxcdTY1MjBcXHU2NTI2XFx1NjUyMlxcdTZCMEJcXHU2QjA4XFx1NkIwOVxcdTZDMERcXHU3MDU1XFx1NzA1NlxcdTcwNTdcXHU3MDUyXFx1NzIxRVxcdTcyMUZcXHU3MkE5XFx1NzM3RlxcdTc0RDhcXHU3NEQ1XFx1NzREOVxcdTc0RDdcXHU3NjZEXFx1NzZBRFxcdTc5MzVcXHU3OUI0XFx1N0E3MFxcdTdBNzFcXHU3QzU3XFx1N0M1Q1xcdTdDNTlcXHU3QzVCXFx1N0M1QVwiXSxcbiAgICAgIFtcImY3NDBcIiwgXCJcXHU3Q0Y0XFx1N0NGMVxcdTdFOTFcXHU3RjRGXFx1N0Y4N1xcdTgxREVcXHU4MjZCXFx1ODYzNFxcdTg2MzVcXHU4NjMzXFx1ODYyQ1xcdTg2MzJcXHU4NjM2XFx1ODgyQ1xcdTg4MjhcXHU4ODI2XFx1ODgyQVxcdTg4MjVcXHU4OTcxXFx1ODlCRlxcdTg5QkVcXHU4OUZCXFx1OEI3RVxcdThCODRcXHU4QjgyXFx1OEI4NlxcdThCODVcXHU4QjdGXFx1OEQxNVxcdThFOTVcXHU4RTk0XFx1OEU5QVxcdThFOTJcXHU4RTkwXFx1OEU5NlxcdThFOTdcXHU4RjYwXFx1OEY2MlxcdTkxNDdcXHU5NDRDXFx1OTQ1MFxcdTk0NEFcXHU5NDRCXFx1OTQ0RlxcdTk0NDdcXHU5NDQ1XFx1OTQ0OFxcdTk0NDlcXHU5NDQ2XFx1OTczRlxcdTk3RTNcXHU5ODZBXFx1OTg2OVxcdTk4Q0JcXHU5OTU0XFx1OTk1QlxcdTlBNEVcXHU5QTUzXFx1OUE1NFxcdTlBNENcXHU5QTRGXFx1OUE0OFxcdTlBNEFcIl0sXG4gICAgICBbXCJmN2ExXCIsIFwiXFx1OUE0OVxcdTlBNTJcXHU5QTUwXFx1OUFEMFxcdTlCMTlcXHU5QjJCXFx1OUIzQlxcdTlCNTZcXHU5QjU1XFx1OUM0NlxcdTlDNDhcXHU5QzNGXFx1OUM0NFxcdTlDMzlcXHU5QzMzXFx1OUM0MVxcdTlDM0NcXHU5QzM3XFx1OUMzNFxcdTlDMzJcXHU5QzNEXFx1OUMzNlxcdTlEREJcXHU5REQyXFx1OURERVxcdTlEREFcXHU5RENCXFx1OUREMFxcdTlERENcXHU5REQxXFx1OURERlxcdTlERTlcXHU5REQ5XFx1OUREOFxcdTlERDZcXHU5REY1XFx1OURENVxcdTlERERcXHU5RUI2XFx1OUVGMFxcdTlGMzVcXHU5RjMzXFx1OUYzMlxcdTlGNDJcXHU5RjZCXFx1OUY5NVxcdTlGQTJcXHU1MTNEXFx1NTI5OVxcdTU4RThcXHU1OEU3XFx1NTk3MlxcdTVCNERcXHU1REQ4XFx1ODgyRlxcdTVGNEZcXHU2MjAxXFx1NjIwM1xcdTYyMDRcXHU2NTI5XFx1NjUyNVxcdTY1OTZcXHU2NkVCXFx1NkIxMVxcdTZCMTJcXHU2QjBGXFx1NkJDQVxcdTcwNUJcXHU3MDVBXFx1NzIyMlxcdTczODJcXHU3MzgxXFx1NzM4M1xcdTc2NzBcXHU3N0Q0XFx1N0M2N1xcdTdDNjZcXHU3RTk1XFx1ODI2Q1xcdTg2M0FcXHU4NjQwXFx1ODYzOVxcdTg2M0NcXHU4NjMxXFx1ODYzQlxcdTg2M0VcXHU4ODMwXFx1ODgzMlxcdTg4MkVcXHU4ODMzXFx1ODk3NlxcdTg5NzRcXHU4OTczXFx1ODlGRVwiXSxcbiAgICAgIFtcImY4NDBcIiwgXCJcXHU4QjhDXFx1OEI4RVxcdThCOEJcXHU4Qjg4XFx1OEM0NVxcdThEMTlcXHU4RTk4XFx1OEY2NFxcdThGNjNcXHU5MUJDXFx1OTQ2MlxcdTk0NTVcXHU5NDVEXFx1OTQ1N1xcdTk0NUVcXHU5N0M0XFx1OTdDNVxcdTk4MDBcXHU5QTU2XFx1OUE1OVxcdTlCMUVcXHU5QjFGXFx1OUIyMFxcdTlDNTJcXHU5QzU4XFx1OUM1MFxcdTlDNEFcXHU5QzREXFx1OUM0QlxcdTlDNTVcXHU5QzU5XFx1OUM0Q1xcdTlDNEVcXHU5REZCXFx1OURGN1xcdTlERUZcXHU5REUzXFx1OURFQlxcdTlERjhcXHU5REU0XFx1OURGNlxcdTlERTFcXHU5REVFXFx1OURFNlxcdTlERjJcXHU5REYwXFx1OURFMlxcdTlERUNcXHU5REY0XFx1OURGM1xcdTlERThcXHU5REVEXFx1OUVDMlxcdTlFRDBcXHU5RUYyXFx1OUVGM1xcdTlGMDZcXHU5RjFDXFx1OUYzOFxcdTlGMzdcXHU5RjM2XFx1OUY0M1xcdTlGNEZcIl0sXG4gICAgICBbXCJmOGExXCIsIFwiXFx1OUY3MVxcdTlGNzBcXHU5RjZFXFx1OUY2RlxcdTU2RDNcXHU1NkNEXFx1NUI0RVxcdTVDNkRcXHU2NTJEXFx1NjZFRFxcdTY2RUVcXHU2QjEzXFx1NzA1RlxcdTcwNjFcXHU3MDVEXFx1NzA2MFxcdTcyMjNcXHU3NERCXFx1NzRFNVxcdTc3RDVcXHU3OTM4XFx1NzlCN1xcdTc5QjZcXHU3QzZBXFx1N0U5N1xcdTdGODlcXHU4MjZEXFx1ODY0M1xcdTg4MzhcXHU4ODM3XFx1ODgzNVxcdTg4NEJcXHU4Qjk0XFx1OEI5NVxcdThFOUVcXHU4RTlGXFx1OEVBMFxcdThFOURcXHU5MUJFXFx1OTFCRFxcdTkxQzJcXHU5NDZCXFx1OTQ2OFxcdTk0NjlcXHU5NkU1XFx1OTc0NlxcdTk3NDNcXHU5NzQ3XFx1OTdDN1xcdTk3RTVcXHU5QTVFXFx1OUFENVxcdTlCNTlcXHU5QzYzXFx1OUM2N1xcdTlDNjZcXHU5QzYyXFx1OUM1RVxcdTlDNjBcXHU5RTAyXFx1OURGRVxcdTlFMDdcXHU5RTAzXFx1OUUwNlxcdTlFMDVcXHU5RTAwXFx1OUUwMVxcdTlFMDlcXHU5REZGXFx1OURGRFxcdTlFMDRcXHU5RUEwXFx1OUYxRVxcdTlGNDZcXHU5Rjc0XFx1OUY3NVxcdTlGNzZcXHU1NkQ0XFx1NjUyRVxcdTY1QjhcXHU2QjE4XFx1NkIxOVxcdTZCMTdcXHU2QjFBXFx1NzA2MlxcdTcyMjZcXHU3MkFBXFx1NzdEOFxcdTc3RDlcXHU3OTM5XFx1N0M2OVxcdTdDNkJcXHU3Q0Y2XFx1N0U5QVwiXSxcbiAgICAgIFtcImY5NDBcIiwgXCJcXHU3RTk4XFx1N0U5QlxcdTdFOTlcXHU4MUUwXFx1ODFFMVxcdTg2NDZcXHU4NjQ3XFx1ODY0OFxcdTg5NzlcXHU4OTdBXFx1ODk3Q1xcdTg5N0JcXHU4OUZGXFx1OEI5OFxcdThCOTlcXHU4RUE1XFx1OEVBNFxcdThFQTNcXHU5NDZFXFx1OTQ2RFxcdTk0NkZcXHU5NDcxXFx1OTQ3M1xcdTk3NDlcXHU5ODcyXFx1OTk1RlxcdTlDNjhcXHU5QzZFXFx1OUM2RFxcdTlFMEJcXHU5RTBEXFx1OUUxMFxcdTlFMEZcXHU5RTEyXFx1OUUxMVxcdTlFQTFcXHU5RUY1XFx1OUYwOVxcdTlGNDdcXHU5Rjc4XFx1OUY3QlxcdTlGN0FcXHU5Rjc5XFx1NTcxRVxcdTcwNjZcXHU3QzZGXFx1ODgzQ1xcdThEQjJcXHU4RUE2XFx1OTFDM1xcdTk0NzRcXHU5NDc4XFx1OTQ3NlxcdTk0NzVcXHU5QTYwXFx1OUM3NFxcdTlDNzNcXHU5QzcxXFx1OUM3NVxcdTlFMTRcXHU5RTEzXFx1OUVGNlxcdTlGMEFcIl0sXG4gICAgICBbXCJmOWExXCIsIFwiXFx1OUZBNFxcdTcwNjhcXHU3MDY1XFx1N0NGN1xcdTg2NkFcXHU4ODNFXFx1ODgzRFxcdTg4M0ZcXHU4QjlFXFx1OEM5Q1xcdThFQTlcXHU4RUM5XFx1OTc0QlxcdTk4NzNcXHU5ODc0XFx1OThDQ1xcdTk5NjFcXHU5OUFCXFx1OUE2NFxcdTlBNjZcXHU5QTY3XFx1OUIyNFxcdTlFMTVcXHU5RTE3XFx1OUY0OFxcdTYyMDdcXHU2QjFFXFx1NzIyN1xcdTg2NENcXHU4RUE4XFx1OTQ4MlxcdTk0ODBcXHU5NDgxXFx1OUE2OVxcdTlBNjhcXHU5QjJFXFx1OUUxOVxcdTcyMjlcXHU4NjRCXFx1OEI5RlxcdTk0ODNcXHU5Qzc5XFx1OUVCN1xcdTc2NzVcXHU5QTZCXFx1OUM3QVxcdTlFMURcXHU3MDY5XFx1NzA2QVxcdTlFQTRcXHU5RjdFXFx1OUY0OVxcdTlGOThcXHU3ODgxXFx1OTJCOVxcdTg4Q0ZcXHU1OEJCXFx1NjA1MlxcdTdDQTdcXHU1QUZBXFx1MjU1NFxcdTI1NjZcXHUyNTU3XFx1MjU2MFxcdTI1NkNcXHUyNTYzXFx1MjU1QVxcdTI1NjlcXHUyNTVEXFx1MjU1MlxcdTI1NjRcXHUyNTU1XFx1MjU1RVxcdTI1NkFcXHUyNTYxXFx1MjU1OFxcdTI1NjdcXHUyNTVCXFx1MjU1M1xcdTI1NjVcXHUyNTU2XFx1MjU1RlxcdTI1NkJcXHUyNTYyXFx1MjU1OVxcdTI1NjhcXHUyNTVDXFx1MjU1MVxcdTI1NTBcXHUyNTZEXFx1MjU2RVxcdTI1NzBcXHUyNTZGXFx1MjU5M1wiXVxuICAgIF07XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvYm9keS1wYXJzZXIvbm9kZV9tb2R1bGVzL2ljb252LWxpdGUvZW5jb2RpbmdzL3RhYmxlcy9iaWc1LWFkZGVkLmpzb25cbnZhciByZXF1aXJlX2JpZzVfYWRkZWQyID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL2JvZHktcGFyc2VyL25vZGVfbW9kdWxlcy9pY29udi1saXRlL2VuY29kaW5ncy90YWJsZXMvYmlnNS1hZGRlZC5qc29uXCIoZXhwb3J0czIsIG1vZHVsZTIpIHtcbiAgICBtb2R1bGUyLmV4cG9ydHMgPSBbXG4gICAgICBbXCI4NzQwXCIsIFwiXFx1NDNGMFxcdTRDMzJcXHU0NjAzXFx1NDVBNlxcdTQ1NzhcXHV7MjcyNjd9XFx1NEQ3N1xcdTQ1QjNcXHV7MjdDQjF9XFx1NENFMlxcdXsyN0NDNX1cXHUzQjk1XFx1NDczNlxcdTQ3NDRcXHU0QzQ3XFx1NEM0MFxcdXsyNDJCRn1cXHV7MjM2MTd9XFx1ezI3MzUyfVxcdXsyNkU4Qn1cXHV7MjcwRDJ9XFx1NEM1N1xcdXsyQTM1MX1cXHU0NzRGXFx1NDVEQVxcdTRDODVcXHV7MjdDNkN9XFx1NEQwN1xcdTRBQTRcXHU0NkExXFx1ezI2QjIzfVxcdTcyMjVcXHV7MjVBNTR9XFx1ezIxQTYzfVxcdXsyM0UwNn1cXHV7MjNGNjF9XFx1NjY0RFxcdTU2RkJcIl0sXG4gICAgICBbXCI4NzY3XCIsIFwiXFx1N0Q5NVxcdTU5MURcXHV7MjhCQjl9XFx1M0RGNFxcdTk3MzRcXHV7MjdCRUZ9XFx1NUJEQlxcdXsyMUQ1RX1cXHU1QUE0XFx1MzYyNVxcdXsyOUVCMH1cXHU1QUQxXFx1NUJCN1xcdTVDRkNcXHU2NzZFXFx1ODU5M1xcdXsyOTk0NX1cXHU3NDYxXFx1NzQ5RFxcdTM4NzVcXHV7MjFENTN9XFx1ezIzNjlFfVxcdXsyNjAyMX1cXHUzRUVDXCJdLFxuICAgICAgW1wiODdhMVwiLCBcIlxcdXsyNThERX1cXHUzQUY1XFx1N0FGQ1xcdTlGOTdcXHV7MjQxNjF9XFx1ezI4OTBEfVxcdXsyMzFFQX1cXHV7MjBBOEF9XFx1ezIzMjVFfVxcdTQzMEFcXHU4NDg0XFx1OUY5NlxcdTk0MkZcXHU0OTMwXFx1ODYxM1xcdTU4OTZcXHU5NzRBXFx1OTIxOFxcdTc5RDBcXHU3QTMyXFx1NjY2MFxcdTZBMjlcXHU4ODlEXFx1NzQ0Q1xcdTdCQzVcXHU2NzgyXFx1N0EyQ1xcdTUyNEZcXHU5MDQ2XFx1MzRFNlxcdTczQzRcXHV7MjVEQjl9XFx1NzRDNlxcdTlGQzdcXHU1N0IzXFx1NDkyRlxcdTU0NENcXHU0MTMxXFx1ezIzNjhFfVxcdTU4MThcXHU3QTcyXFx1ezI3QjY1fVxcdThCOEZcXHU0NkFFXFx1ezI2RTg4fVxcdTQxODFcXHV7MjVEOTl9XFx1N0JBRVxcdXsyMjRCQ31cXHU5RkM4XFx1ezIyNEMxfVxcdXsyMjRDOX1cXHV7MjI0Q0N9XFx1OUZDOVxcdTg1MDRcXHV7MjM1QkJ9XFx1NDBCNFxcdTlGQ0FcXHU0NEUxXFx1ezJBREZGfVxcdTYyQzFcXHU3MDZFXFx1OUZDQlwiXSxcbiAgICAgIFtcIjg4NDBcIiwgXCJcXHUzMUMwXCIsIDQsIFwiXFx1ezIwMTBDfVxcdTMxQzVcXHV7MjAwRDF9XFx1ezIwMENEfVxcdTMxQzZcXHUzMUM3XFx1ezIwMENCfVxcdXsyMUZFOH1cXHUzMUM4XFx1ezIwMENBfVxcdTMxQzlcXHUzMUNBXFx1MzFDQlxcdTMxQ0NcXHV7MjAxMEV9XFx1MzFDRFxcdTMxQ0VcXHUwMTAwXFx4QzFcXHUwMUNEXFx4QzBcXHUwMTEyXFx4QzlcXHUwMTFBXFx4QzhcXHUwMTRDXFx4RDNcXHUwMUQxXFx4RDJcXHUwRkZGXFx4Q0FcXHUwMzA0XFx1MUVCRVxcdTBGRkZcXHhDQVxcdTAzMENcXHUxRUMwXFx4Q0FcXHUwMTAxXFx4RTFcXHUwMUNFXFx4RTBcXHUwMjUxXFx1MDExM1xceEU5XFx1MDExQlxceEU4XFx1MDEyQlxceEVEXFx1MDFEMFxceEVDXFx1MDE0RFxceEYzXFx1MDFEMlxceEYyXFx1MDE2QlxceEZBXFx1MDFENFxceEY5XFx1MDFENlxcdTAxRDhcXHUwMURBXCJdLFxuICAgICAgW1wiODhhMVwiLCBcIlxcdTAxRENcXHhGQ1xcdTBGRkZcXHhFQVxcdTAzMDRcXHUxRUJGXFx1MEZGRlxceEVBXFx1MDMwQ1xcdTFFQzFcXHhFQVxcdTAyNjFcXHUyM0RBXFx1MjNEQlwiXSxcbiAgICAgIFtcIjg5NDBcIiwgXCJcXHV7MkEzQTl9XFx1ezIxMTQ1fVwiXSxcbiAgICAgIFtcIjg5NDNcIiwgXCJcXHU2NTBBXCJdLFxuICAgICAgW1wiODk0NlwiLCBcIlxcdTRFM0RcXHU2RUREXFx1OUQ0RVxcdTkxREZcIl0sXG4gICAgICBbXCI4OTRjXCIsIFwiXFx1ezI3NzM1fVxcdTY0OTFcXHU0RjFBXFx1NEYyOFxcdTRGQThcXHU1MTU2XFx1NTE3NFxcdTUxOUNcXHU1MUU0XFx1NTJBMVxcdTUyQThcXHU1MzNCXFx1NTM0RVxcdTUzRDFcXHU1M0Q4XFx1NTZFMlxcdTU4RjBcXHU1OTA0XFx1NTkwN1xcdTU5MzJcXHU1OTM0XFx1NUI2NlxcdTVCOUVcXHU1QjlGXFx1NUM5QVxcdTVFODZcXHU2MDNCXFx1NjU4OVxcdTY3RkVcXHU2ODA0XFx1Njg2NVxcdTZENEVcXHU3MEJDXFx1NzUzNVxcdTdFQTRcXHU3RUFDXFx1N0VCQVxcdTdFQzdcXHU3RUNGXFx1N0VERlxcdTdGMDZcXHU3RjM3XFx1ODI3QVxcdTgyQ0ZcXHU4MzZGXFx1ODlDNlxcdThCQkVcXHU4QkUyXFx1OEY2NlxcdThGNjdcXHU4RjZFXCJdLFxuICAgICAgW1wiODlhMVwiLCBcIlxcdTc0MTFcXHU3Q0ZDXFx1N0RDRFxcdTY5NDZcXHU3QUM5XFx1NTIyN1wiXSxcbiAgICAgIFtcIjg5YWJcIiwgXCJcXHU5MThDXFx1NzhCOFxcdTkxNUVcXHU4MEJDXCJdLFxuICAgICAgW1wiODliMFwiLCBcIlxcdThEMEJcXHU4MEY2XFx1ezIwOUU3fVwiXSxcbiAgICAgIFtcIjg5YjVcIiwgXCJcXHU4MDlGXFx1OUVDN1xcdTRDQ0RcXHU5REM5XFx1OUUwQ1xcdTRDM0VcXHV7MjlERjZ9XFx1ezI3MDBFfVxcdTlFMEFcXHV7MkExMzN9XFx1MzVDMVwiXSxcbiAgICAgIFtcIjg5YzFcIiwgXCJcXHU2RTlBXFx1ODIzRVxcdTc1MTlcIl0sXG4gICAgICBbXCI4OWM1XCIsIFwiXFx1NDkxMVxcdTlBNkNcXHU5QThGXFx1OUY5OVxcdTc5ODdcXHV7Mjg0NkN9XFx1ezIxRENBfVxcdXsyMDVEMH1cXHV7MjJBRTZ9XFx1NEUyNFxcdTRFODFcXHU0RTgwXFx1NEU4N1xcdTRFQkZcXHU0RUVCXFx1NEYzN1xcdTM0NENcXHU0RkJEXFx1M0U0OFxcdTUwMDNcXHU1MDg4XFx1MzQ3RFxcdTM0OTNcXHUzNEE1XFx1NTE4NlxcdTU5MDVcXHU1MURCXFx1NTFGQ1xcdTUyMDVcXHU0RTg5XFx1NTI3OVxcdTUyOTBcXHU1MzI3XFx1MzVDN1xcdTUzQTlcXHUzNTUxXFx1NTNCMFxcdTM1NTNcXHU1M0MyXFx1NTQyM1xcdTM1NkRcXHUzNTcyXFx1MzY4MVxcdTU0OTNcXHU1NEEzXFx1NTRCNFxcdTU0QjlcXHU1NEQwXFx1NTRFRlxcdTU1MThcXHU1NTIzXFx1NTUyOFxcdTM1OThcXHU1NTNGXFx1MzVBNVxcdTM1QkZcXHU1NUQ3XFx1MzVDNVwiXSxcbiAgICAgIFtcIjhhNDBcIiwgXCJcXHV7MjdEODR9XFx1NTUyNVwiXSxcbiAgICAgIFtcIjhhNDNcIiwgXCJcXHV7MjBDNDJ9XFx1ezIwRDE1fVxcdXsyNTEyQn1cXHU1NTkwXFx1ezIyQ0M2fVxcdTM5RUNcXHV7MjAzNDF9XFx1OEU0NlxcdXsyNERCOH1cXHV7Mjk0RTV9XFx1NDA1M1xcdXsyODBCRX1cXHU3NzdBXFx1ezIyQzM4fVxcdTNBMzRcXHU0N0Q1XFx1ezI4MTVEfVxcdXsyNjlGMn1cXHV7MjRERUF9XFx1NjRERFxcdXsyMEQ3Q31cXHV7MjBGQjR9XFx1ezIwQ0Q1fVxcdXsyMTBGNH1cXHU2NDhEXFx1OEU3RVxcdXsyMEU5Nn1cXHV7MjBDMEJ9XFx1ezIwRjY0fVxcdXsyMkNBOX1cXHV7MjgyNTZ9XFx1ezI0NEQzfVwiXSxcbiAgICAgIFtcIjhhNjRcIiwgXCJcXHV7MjBENDZ9XFx1ezI5QTREfVxcdXsyODBFOX1cXHU0N0Y0XFx1ezI0RUE3fVxcdXsyMkNDMn1cXHU5QUIyXFx1M0E2N1xcdXsyOTVGNH1cXHUzRkVEXFx1MzUwNlxcdXsyNTJDN31cXHV7Mjk3RDR9XFx1ezI3OEM4fVxcdXsyMkQ0NH1cXHU5RDZFXFx1OTgxNVwiXSxcbiAgICAgIFtcIjhhNzZcIiwgXCJcXHU0M0Q5XFx1ezI2MEE1fVxcdTY0QjRcXHU1NEUzXFx1ezIyRDRDfVxcdXsyMkJDQX1cXHV7MjEwNzd9XFx1MzlGQlxcdXsyMTA2Rn1cIl0sXG4gICAgICBbXCI4YWExXCIsIFwiXFx1ezI2NkRBfVxcdXsyNjcxNn1cXHV7Mjc5QTB9XFx1NjRFQVxcdXsyNTA1Mn1cXHV7MjBDNDN9XFx1OEU2OFxcdXsyMjFBMX1cXHV7MjhCNEN9XFx1ezIwNzMxfVwiXSxcbiAgICAgIFtcIjhhYWNcIiwgXCJcXHU0ODBCXFx1ezIwMUE5fVxcdTNGRkFcXHU1ODczXFx1ezIyRDhEfVwiXSxcbiAgICAgIFtcIjhhYjJcIiwgXCJcXHV7MjQ1Qzh9XFx1ezIwNEZDfVxcdXsyNjA5N31cXHV7MjBGNEN9XFx1ezIwRDk2fVxcdTU1NzlcXHU0MEJCXFx1NDNCQVwiXSxcbiAgICAgIFtcIjhhYmJcIiwgXCJcXHU0QUI0XFx1ezIyQTY2fVxcdXsyMTA5RH1cXHU4MUFBXFx1OThGNVxcdXsyMEQ5Q31cXHU2Mzc5XFx1MzlGRVxcdXsyMjc3NX1cXHU4REMwXFx1NTZBMVxcdTY0N0NcXHUzRTQzXCJdLFxuICAgICAgW1wiOGFjOVwiLCBcIlxcdXsyQTYwMX1cXHV7MjBFMDl9XFx1ezIyQUNGfVxcdXsyMkNDOX1cIl0sXG4gICAgICBbXCI4YWNlXCIsIFwiXFx1ezIxMEM4fVxcdXsyMzlDMn1cXHUzOTkyXFx1M0EwNlxcdXsyODI5Qn1cXHUzNTc4XFx1ezI1RTQ5fVxcdXsyMjBDN31cXHU1NjUyXFx1ezIwRjMxfVxcdXsyMkNCMn1cXHV7Mjk3MjB9XFx1MzRCQ1xcdTZDM0RcXHV7MjRFM0J9XCJdLFxuICAgICAgW1wiOGFkZlwiLCBcIlxcdXsyNzU3NH1cXHV7MjJFOEJ9XFx1ezIyMjA4fVxcdXsyQTY1Qn1cXHV7MjhDQ0R9XFx1ezIwRTdBfVxcdXsyMEMzNH1cXHV7MjY4MUN9XFx1N0Y5M1xcdXsyMTBDRn1cXHV7MjI4MDN9XFx1ezIyOTM5fVxcdTM1RkJcXHV7MjUxRTN9XFx1ezIwRThDfVxcdXsyMEY4RH1cXHV7MjBFQUF9XFx1M0Y5M1xcdXsyMEYzMH1cXHV7MjBENDd9XFx1ezIxMTRGfVxcdXsyMEU0Q31cIl0sXG4gICAgICBbXCI4YWY2XCIsIFwiXFx1ezIwRUFCfVxcdXsyMEJBOX1cXHV7MjBENDh9XFx1ezIxMEMwfVxcdXsyMTEzRH1cXHUzRkY5XFx1ezIyNjk2fVxcdTY0MzJcXHV7MjBGQUR9XCJdLFxuICAgICAgW1wiOGI0MFwiLCBcIlxcdXsyMzNGNH1cXHV7Mjc2Mzl9XFx1ezIyQkNFfVxcdXsyMEQ3RX1cXHV7MjBEN0Z9XFx1ezIyQzUxfVxcdXsyMkM1NX1cXHUzQTE4XFx1ezIwRTk4fVxcdXsyMTBDN31cXHV7MjBGMkV9XFx1ezJBNjMyfVxcdXsyNkI1MH1cXHV7MjhDRDJ9XFx1ezI4RDk5fVxcdXsyOENDQX1cXHU5NUFBXFx1NTRDQ1xcdTgyQzRcXHU1NUI5XCJdLFxuICAgICAgW1wiOGI1NVwiLCBcIlxcdXsyOUVDM31cXHU5QzI2XFx1OUFCNlxcdXsyNzc1RX1cXHV7MjJERUV9XFx1NzE0MFxcdTgxNkRcXHU4MEVDXFx1NUMxQ1xcdXsyNjU3Mn1cXHU4MTM0XFx1Mzc5N1xcdTUzNUZcXHV7MjgwQkR9XFx1OTFCNlxcdXsyMEVGQX1cXHV7MjBFMEZ9XFx1ezIwRTc3fVxcdXsyMEVGQn1cXHUzNUREXFx1ezI0REVCfVxcdTM2MDlcXHV7MjBDRDZ9XFx1NTZBRlxcdXsyMjdCNX1cXHV7MjEwQzl9XFx1ezIwRTEwfVxcdXsyMEU3OH1cXHV7MjEwNzh9XFx1ezIxMTQ4fVxcdXsyODIwN31cXHV7MjE0NTV9XFx1ezIwRTc5fVxcdXsyNEU1MH1cXHV7MjJEQTR9XFx1NUE1NFxcdXsyMTAxRH1cXHV7MjEwMUV9XFx1ezIxMEY1fVxcdXsyMTBGNn1cXHU1NzlDXFx1ezIwRTExfVwiXSxcbiAgICAgIFtcIjhiYTFcIiwgXCJcXHV7Mjc2OTR9XFx1ezI4MkNEfVxcdXsyMEZCNX1cXHV7MjBFN0J9XFx1ezI1MTdFfVxcdTM3MDNcXHV7MjBGQjZ9XFx1ezIxMTgwfVxcdXsyNTJEOH1cXHV7MkEyQkR9XFx1ezI0OURBfVxcdXsyMTgzQX1cXHV7MjQxNzd9XFx1ezI4MjdDfVxcdTU4OTlcXHU1MjY4XFx1MzYxQVxcdXsyNTczRH1cXHU3QkIyXFx1NUI2OFxcdTQ4MDBcXHU0QjJDXFx1OUYyN1xcdTQ5RTdcXHU5QzFGXFx1OUI4RFxcdXsyNUI3NH1cXHV7MjMxM0R9XFx1NTVGQlxcdTM1RjJcXHU1Njg5XFx1NEUyOFxcdTU5MDJcXHV7MjFCQzF9XFx1ezJGODc4fVxcdTk3NTFcXHV7MjAwODZ9XFx1NEU1QlxcdTRFQkJcXHUzNTNFXFx1NUMyM1xcdTVGNTFcXHU1RkM0XFx1MzhGQVxcdTYyNENcXHU2NTM1XFx1NkI3QVxcdTZDMzVcXHU2QzNBXFx1NzA2Q1xcdTcyMkJcXHU0RTJDXFx1NzJBRFxcdXsyNDhFOX1cXHU3RjUyXFx1NzkzQlxcdTdDRjlcXHU3RjUzXFx1ezI2MjZBfVxcdTM0QzFcIl0sXG4gICAgICBbXCI4YmRlXCIsIFwiXFx1ezI2MzRCfVxcdTgwMDJcXHU4MDgwXFx1ezI2NjEyfVxcdXsyNjk1MX1cXHU1MzVEXFx1ODg2NFxcdTg5QzFcXHV7Mjc4QjJ9XFx1OEJBMFxcdThEMURcXHU5NDg1XFx1OTU3OFxcdTk1N0ZcXHU5NUU4XFx1ezI4RTBGfVxcdTk3RTZcXHU5ODc1XFx1OThDRVxcdTk4REVcXHU5OTYzXFx1ezI5ODEwfVxcdTlDN0NcXHU5RTFGXFx1OUVDNFxcdTZCNkZcXHVGOTA3XFx1NEUzN1xcdXsyMDA4N31cXHU5NjFEXFx1NjIzN1xcdTk0QTJcIl0sXG4gICAgICBbXCI4YzQwXCIsIFwiXFx1NTAzQlxcdTZERkVcXHV7MjlDNzN9XFx1OUZBNlxcdTNEQzlcXHU4ODhGXFx1ezI0MTRFfVxcdTcwNzdcXHU1Q0Y1XFx1NEIyMFxcdXsyNTFDRH1cXHUzNTU5XFx1ezI1RDMwfVxcdTYxMjJcXHV7MjhBMzJ9XFx1OEZBN1xcdTkxRjZcXHU3MTkxXFx1NjcxOVxcdTczQkFcXHV7MjMyODF9XFx1ezJBMTA3fVxcdTNDOEJcXHV7MjE5ODB9XFx1NEIxMFxcdTc4RTRcXHU3NDAyXFx1NTFBRVxcdXsyODcwRn1cXHU0MDA5XFx1NkE2M1xcdXsyQTJCQX1cXHU0MjIzXFx1ODYwRlxcdXsyMEE2Rn1cXHU3QTJBXFx1ezI5OTQ3fVxcdXsyOEFFQX1cXHU5NzU1XFx1NzA0RFxcdTUzMjRcXHV7MjIwN0V9XFx1OTNGNFxcdTc2RDlcXHV7Mjg5RTN9XFx1OUZBN1xcdTc3RERcXHU0RUEzXFx1NEZGMFxcdTUwQkNcXHU0RTJGXFx1NEYxN1xcdTlGQThcXHU1NDM0XFx1N0Q4QlxcdTU4OTJcXHU1OEQwXFx1ezIxREI2fVxcdTVFOTJcXHU1RTk5XFx1NUZDMlxcdXsyMjcxMn1cXHU2NThCXCJdLFxuICAgICAgW1wiOGNhMVwiLCBcIlxcdXsyMzNGOX1cXHU2OTE5XFx1NkE0M1xcdXsyM0M2M31cXHU2Q0ZGXCJdLFxuICAgICAgW1wiOGNhN1wiLCBcIlxcdTcyMDBcXHV7MjQ1MDV9XFx1NzM4Q1xcdTNFREJcXHV7MjRBMTN9XFx1NUIxNVxcdTc0QjlcXHU4QjgzXFx1ezI1Q0E0fVxcdXsyNTY5NX1cXHU3QTkzXFx1N0JFQ1xcdTdDQzNcXHU3RTZDXFx1ODJGOFxcdTg1OTdcXHU5RkE5XFx1ODg5MFxcdTlGQUFcXHU4RUI5XFx1OUZBQlxcdThGQ0ZcXHU4NTVGXFx1OTlFMFxcdTkyMjFcXHU5RkFDXFx1ezI4REI5fVxcdXsyMTQzRn1cXHU0MDcxXFx1NDJBMlxcdTVBMUFcIl0sXG4gICAgICBbXCI4Y2M5XCIsIFwiXFx1OTg2OFxcdTY3NkJcXHU0Mjc2XFx1NTczRFwiXSxcbiAgICAgIFtcIjhjY2VcIiwgXCJcXHU4NUQ2XFx1ezI0OTdCfVxcdTgyQkZcXHV7MjcxMER9XFx1NEM4MVxcdXsyNkQ3NH1cXHU1RDdCXFx1ezI2QjE1fVxcdXsyNkZCRX1cXHU5RkFEXFx1OUZBRVxcdTVCOTZcXHU5RkFGXFx1NjZFN1xcdTdFNUJcXHU2RTU3XFx1NzlDQVxcdTNEODhcXHU0NEMzXFx1ezIzMjU2fVxcdXsyMjc5Nn1cXHU0MzlBXFx1NDUzNlwiXSxcbiAgICAgIFtcIjhjZTZcIiwgXCJcXHU1Q0Q1XFx1ezIzQjFBfVxcdThBRjlcXHU1Qzc4XFx1M0QxMlxcdXsyMzU1MX1cXHU1RDc4XFx1OUZCMlxcdTcxNTdcXHU0NTU4XFx1ezI0MEVDfVxcdXsyMUUyM31cXHU0Qzc3XFx1Mzk3OFxcdTM0NEFcXHV7MjAxQTR9XFx1ezI2QzQxfVxcdThBQ0NcXHU0RkI0XFx1ezIwMjM5fVxcdTU5QkZcXHU4MTZDXFx1OTg1NlxcdXsyOThGQX1cXHU1RjNCXCJdLFxuICAgICAgW1wiOGQ0MFwiLCBcIlxcdXsyMEI5Rn1cIl0sXG4gICAgICBbXCI4ZDQyXCIsIFwiXFx1ezIyMUMxfVxcdXsyODk2RH1cXHU0MTAyXFx1NDZCQlxcdXsyOTA3OX1cXHUzRjA3XFx1OUZCM1xcdXsyQTFCNX1cXHU0MEY4XFx1MzdENlxcdTQ2RjdcXHV7MjZDNDZ9XFx1NDE3Q1xcdXsyODZCMn1cXHV7MjczRkZ9XFx1NDU2RFxcdTM4RDRcXHV7MjU0OUF9XFx1NDU2MVxcdTQ1MUJcXHU0RDg5XFx1NEM3QlxcdTRENzZcXHU0NUVBXFx1M0ZDOFxcdXsyNEIwRn1cXHUzNjYxXFx1NDRERVxcdTQ0QkRcXHU0MUVEXFx1NUQzRVxcdTVENDhcXHU1RDU2XFx1M0RGQ1xcdTM4MEZcXHU1REE0XFx1NURCOVxcdTM4MjBcXHUzODM4XFx1NUU0MlxcdTVFQkRcXHU1RjI1XFx1NUY4M1xcdTM5MDhcXHUzOTE0XFx1MzkzRlxcdTM5NERcXHU2MEQ3XFx1NjEzRFxcdTVDRTVcXHUzOTg5XFx1NjFCN1xcdTYxQjlcXHU2MUNGXFx1MzlCOFxcdTYyMkNcXHU2MjkwXFx1NjJFNVxcdTYzMThcXHUzOUY4XFx1NTZCMVwiXSxcbiAgICAgIFtcIjhkYTFcIiwgXCJcXHUzQTAzXFx1NjNFMlxcdTYzRkJcXHU2NDA3XFx1NjQ1QVxcdTNBNEJcXHU2NEMwXFx1NUQxNVxcdTU2MjFcXHU5RjlGXFx1M0E5N1xcdTY1ODZcXHUzQUJEXFx1NjVGRlxcdTY2NTNcXHUzQUYyXFx1NjY5MlxcdTNCMjJcXHU2NzE2XFx1M0I0MlxcdTY3QTRcXHU2ODAwXFx1M0I1OFxcdTY4NEFcXHU2ODg0XFx1M0I3MlxcdTNCNzFcXHUzQjdCXFx1NjkwOVxcdTY5NDNcXHU3MjVDXFx1Njk2NFxcdTY5OUZcXHU2OTg1XFx1M0JCQ1xcdTY5RDZcXHUzQkREXFx1NkE2NVxcdTZBNzRcXHU2QTcxXFx1NkE4MlxcdTNCRUNcXHU2QTk5XFx1M0JGMlxcdTZBQUJcXHU2QUI1XFx1NkFENFxcdTZBRjZcXHU2QjgxXFx1NkJDMVxcdTZCRUFcXHU2Qzc1XFx1NkNBQVxcdTNDQ0JcXHU2RDAyXFx1NkQwNlxcdTZEMjZcXHU2RDgxXFx1M0NFRlxcdTZEQTRcXHU2REIxXFx1NkUxNVxcdTZFMThcXHU2RTI5XFx1NkU4NlxcdXsyODlDMH1cXHU2RUJCXFx1NkVFMlxcdTZFREFcXHU5RjdGXFx1NkVFOFxcdTZFRTlcXHU2RjI0XFx1NkYzNFxcdTNENDZcXHV7MjNGNDF9XFx1NkY4MVxcdTZGQkVcXHUzRDZBXFx1M0Q3NVxcdTcxQjdcXHU1Qzk5XFx1M0Q4QVxcdTcwMkNcXHUzRDkxXFx1NzA1MFxcdTcwNTRcXHU3MDZGXFx1NzA3RlxcdTcwODlcXHV7MjAzMjV9XFx1NDNDMVxcdTM1RjFcXHV7MjBFRDh9XCJdLFxuICAgICAgW1wiOGU0MFwiLCBcIlxcdXsyM0VEN31cXHU1N0JFXFx1ezI2RUQzfVxcdTcxM0VcXHV7MjU3RTB9XFx1MzY0RVxcdTY5QTJcXHV7MjhCRTl9XFx1NUI3NFxcdTdBNDlcXHV7MjU4RTF9XFx1ezI5NEQ5fVxcdTdBNjVcXHU3QTdEXFx1ezI1OUFDfVxcdTdBQkJcXHU3QUIwXFx1N0FDMlxcdTdBQzNcXHU3MUQxXFx1ezI2NDhEfVxcdTQxQ0FcXHU3QURBXFx1N0FERFxcdTdBRUFcXHU0MUVGXFx1NTRCMlxcdXsyNUMwMX1cXHU3QjBCXFx1N0I1NVxcdTdCMjlcXHV7MjUzMEV9XFx1ezI1Q0ZFfVxcdTdCQTJcXHU3QjZGXFx1ODM5Q1xcdXsyNUJCNH1cXHV7MjZDN0Z9XFx1N0JEMFxcdTg0MjFcXHU3QjkyXFx1N0JCOFxcdXsyNUQyMH1cXHUzREFEXFx1ezI1QzY1fVxcdTg0OTJcXHU3QkZBXFx1N0MwNlxcdTdDMzVcXHV7MjVDQzF9XFx1N0M0NFxcdTdDODNcXHV7MjQ4ODJ9XFx1N0NBNlxcdTY2N0RcXHV7MjQ1Nzh9XFx1N0NDOVxcdTdDQzdcXHU3Q0U2XFx1N0M3NFxcdTdDRjNcXHU3Q0Y1XFx1N0NDRVwiXSxcbiAgICAgIFtcIjhlYTFcIiwgXCJcXHU3RTY3XFx1NDUxRFxcdXsyNkU0NH1cXHU3RDVEXFx1ezI2RUQ2fVxcdTc0OERcXHU3RDg5XFx1N0RBQlxcdTcxMzVcXHU3REIzXFx1N0REMlxcdXsyNDA1N31cXHV7MjYwMjl9XFx1N0RFNFxcdTNEMTNcXHU3REY1XFx1ezIxN0Y5fVxcdTdERTVcXHV7MjgzNkR9XFx1N0UxRFxcdXsyNjEyMX1cXHV7MjYxNUF9XFx1N0U2RVxcdTdFOTJcXHU0MzJCXFx1OTQ2Q1xcdTdFMjdcXHU3RjQwXFx1N0Y0MVxcdTdGNDdcXHU3OTM2XFx1ezI2MkQwfVxcdTk5RTFcXHU3Rjk3XFx1ezI2MzUxfVxcdTdGQTNcXHV7MjE2NjF9XFx1ezIwMDY4fVxcdTQ1NUNcXHV7MjM3NjZ9XFx1NDUwM1xcdXsyODMzQX1cXHU3RkZBXFx1ezI2NDg5fVxcdTgwMDVcXHU4MDA4XFx1ODAxRFxcdTgwMjhcXHU4MDJGXFx1ezJBMDg3fVxcdXsyNkNDM31cXHU4MDNCXFx1ODAzQ1xcdTgwNjFcXHV7MjI3MTR9XFx1NDk4OVxcdXsyNjYyNn1cXHV7MjNERTN9XFx1ezI2NkU4fVxcdTY3MjVcXHU4MEE3XFx1ezI4QTQ4fVxcdTgxMDdcXHU4MTFBXFx1NThCMFxcdXsyMjZGNn1cXHU2QzdGXFx1ezI2NDk4fVxcdXsyNEZCOH1cXHU2NEU3XFx1ezIxNDhBfVxcdTgyMThcXHV7MjE4NUV9XFx1NkE1M1xcdXsyNEE2NX1cXHV7MjRBOTV9XFx1NDQ3QVxcdTgyMjlcXHV7MjBCMER9XFx1ezI2QTUyfVxcdXsyM0Q3RX1cXHU0RkY5XFx1ezIxNEZEfVxcdTg0RTJcXHU4MzYyXFx1ezI2QjBBfVxcdXsyNDlBN31cXHV7MjM1MzB9XFx1ezIxNzczfVxcdXsyM0RGOH1cXHU4MkFBXFx1NjkxQlxcdXsyRjk5NH1cXHU0MURCXCJdLFxuICAgICAgW1wiOGY0MFwiLCBcIlxcdTg1NEJcXHU4MkQwXFx1ODMxQVxcdXsyMEUxNn1cXHV7MjE3QjR9XFx1MzZDMVxcdXsyMzE3RH1cXHV7MjM1NUF9XFx1ODI3QlxcdTgyRTJcXHU4MzE4XFx1ezIzRThCfVxcdXsyNkRBM31cXHV7MjZCMDV9XFx1ezI2Qjk3fVxcdXsyMzVDRX1cXHUzREJGXFx1ODMxRFxcdTU1RUNcXHU4Mzg1XFx1NDUwQlxcdXsyNkRBNX1cXHU4M0FDXFx1ODNDMVxcdTgzRDNcXHUzNDdFXFx1ezI2RUQ0fVxcdTZBNTdcXHU4NTVBXFx1MzQ5NlxcdXsyNkU0Mn1cXHV7MjJFRUZ9XFx1ODQ1OFxcdXsyNUJFNH1cXHU4NDcxXFx1M0REM1xcdTQ0RTRcXHU2QUE3XFx1ODQ0QVxcdXsyM0NCNX1cXHU3OTU4XFx1ODRBOFxcdXsyNkI5Nn1cXHV7MjZFNzd9XFx1ezI2RTQzfVxcdTg0REVcXHU4NDBGXFx1ODM5MVxcdTQ0QTBcXHU4NDkzXFx1ODRFNFxcdXsyNUM5MX1cXHU0MjQwXFx1ezI1Q0MwfVxcdTQ1NDNcXHU4NTM0XFx1NUFGMlxcdXsyNkU5OX1cXHU0NTI3XFx1ODU3M1xcdTQ1MTZcXHU2N0JGXFx1ODYxNlwiXSxcbiAgICAgIFtcIjhmYTFcIiwgXCJcXHV7Mjg2MjV9XFx1ezI4NjNCfVxcdTg1QzFcXHV7MjcwODh9XFx1ODYwMlxcdXsyMTU4Mn1cXHV7MjcwQ0R9XFx1ezJGOUIyfVxcdTQ1NkFcXHU4NjI4XFx1MzY0OFxcdXsyMThBMn1cXHU1M0Y3XFx1ezI3MzlBfVxcdTg2N0VcXHU4NzcxXFx1ezJBMEY4fVxcdTg3RUVcXHV7MjJDMjd9XFx1ODdCMVxcdTg3REFcXHU4ODBGXFx1NTY2MVxcdTg2NkNcXHU2ODU2XFx1NDYwRlxcdTg4NDVcXHU4ODQ2XFx1ezI3NUUwfVxcdXsyM0RCOX1cXHV7Mjc1RTR9XFx1ODg1RVxcdTg4OUNcXHU0NjVCXFx1ODhCNFxcdTg4QjVcXHU2M0MxXFx1ODhDNVxcdTc3NzdcXHV7Mjc3MEZ9XFx1ODk4N1xcdTg5OEFcXHU4OUE2XFx1ODlBOVxcdTg5QTdcXHU4OUJDXFx1ezI4QTI1fVxcdTg5RTdcXHV7Mjc5MjR9XFx1ezI3QUJEfVxcdThBOUNcXHU3NzkzXFx1OTFGRVxcdThBOTBcXHV7MjdBNTl9XFx1N0FFOVxcdXsyN0IzQX1cXHV7MjNGOEZ9XFx1NDcxM1xcdXsyN0IzOH1cXHU3MTdDXFx1OEIwQ1xcdThCMUZcXHV7MjU0MzB9XFx1ezI1NTY1fVxcdThCM0ZcXHU4QjRDXFx1OEI0RFxcdThBQTlcXHV7MjRBN0F9XFx1OEI5MFxcdThCOUJcXHU4QUFGXFx1ezIxNkRGfVxcdTQ2MTVcXHU4ODRGXFx1OEM5QlxcdXsyN0Q1NH1cXHV7MjdEOEZ9XFx1ezJGOUQ0fVxcdTM3MjVcXHV7MjdENTN9XFx1OENENlxcdXsyN0Q5OH1cXHV7MjdEQkR9XFx1OEQxMlxcdThEMDNcXHV7MjE5MTB9XFx1OENEQlxcdTcwNUNcXHU4RDExXFx1ezI0Q0M5fVxcdTNFRDBcXHU4RDc3XCJdLFxuICAgICAgW1wiOTA0MFwiLCBcIlxcdThEQTlcXHV7MjgwMDJ9XFx1ezIxMDE0fVxcdXsyNDk4QX1cXHUzQjdDXFx1ezI4MUJDfVxcdXsyNzEwQ31cXHU3QUU3XFx1OEVBRFxcdThFQjZcXHU4RUMzXFx1OTJENFxcdThGMTlcXHU4RjJEXFx1ezI4MzY1fVxcdXsyODQxMn1cXHU4RkE1XFx1OTMwM1xcdXsyQTI5Rn1cXHV7MjBBNTB9XFx1OEZCM1xcdTQ5MkFcXHV7Mjg5REV9XFx1ezI4NTNEfVxcdXsyM0RCQn1cXHU1RUY4XFx1ezIzMjYyfVxcdThGRjlcXHV7MkEwMTR9XFx1ezI4NkJDfVxcdXsyODUwMX1cXHV7MjIzMjV9XFx1Mzk4MFxcdXsyNkVEN31cXHU5MDM3XFx1ezI4NTNDfVxcdXsyN0FCRX1cXHU5MDYxXFx1ezI4NTZDfVxcdXsyODYwQn1cXHU5MEE4XFx1ezI4NzEzfVxcdTkwQzRcXHV7Mjg2RTZ9XFx1OTBBRVxcdTkwRkRcXHU5MTY3XFx1M0FGMFxcdTkxQTlcXHU5MUM0XFx1N0NBQ1xcdXsyODkzM31cXHV7MjFFODl9XFx1OTIwRVxcdTZDOUZcXHU5MjQxXFx1OTI2MlxcdXsyNTVCOX1cXHU5MkI5XFx1ezI4QUM2fVxcdXsyM0M5Qn1cXHV7MjhCMEN9XFx1ezI1NURCfVwiXSxcbiAgICAgIFtcIjkwYTFcIiwgXCJcXHV7MjBEMzF9XFx1OTMyQ1xcdTkzNkJcXHV7MjhBRTF9XFx1ezI4QkVCfVxcdTcwOEZcXHU1QUMzXFx1ezI4QUUyfVxcdXsyOEFFNX1cXHU0OTY1XFx1OTI0NFxcdXsyOEJFQ31cXHV7MjhDMzl9XFx1ezI4QkZGfVxcdTkzNzNcXHU5NDVCXFx1OEVCQ1xcdTk1ODVcXHU5NUE2XFx1OTQyNlxcdTk1QTBcXHU2RkY2XFx1NDJCOVxcdXsyMjY3QX1cXHV7Mjg2RDh9XFx1ezIxMjdDfVxcdXsyM0UyRX1cXHU0OURGXFx1NkMxQ1xcdTk2N0JcXHU5Njk2XFx1NDE2Q1xcdTk2QTNcXHV7MjZFRDV9XFx1NjFEQVxcdTk2QjZcXHU3OEY1XFx1ezI4QUUwfVxcdTk2QkRcXHU1M0NDXFx1NDlBMVxcdXsyNkNCOH1cXHV7MjAyNzR9XFx1ezI2NDEwfVxcdXsyOTBBRn1cXHV7MjkwRTV9XFx1ezI0QUQxfVxcdXsyMTkxNX1cXHV7MjMzMEF9XFx1OTczMVxcdTg2NDJcXHU5NzM2XFx1NEEwRlxcdTQ1M0RcXHU0NTg1XFx1ezI0QUU5fVxcdTcwNzVcXHU1QjQxXFx1OTcxQlxcdTk3NUNcXHV7MjkxRDV9XFx1OTc1N1xcdTVCNEFcXHV7MjkxRUJ9XFx1OTc1RlxcdTk0MjVcXHU1MEQwXFx1ezIzMEI3fVxcdXsyMzBCQ31cXHU5Nzg5XFx1OTc5RlxcdTk3QjFcXHU5N0JFXFx1OTdDMFxcdTk3RDJcXHU5N0UwXFx1ezI1NDZDfVxcdTk3RUVcXHU3NDFDXFx1ezI5NDMzfVxcdTk3RkZcXHU5N0Y1XFx1ezI5NDFEfVxcdXsyNzk3QX1cXHU0QUQxXFx1OTgzNFxcdTk4MzNcXHU5ODRCXFx1OTg2NlxcdTNCMEVcXHV7MjcxNzV9XFx1M0Q1MVxcdXsyMDYzMH1cXHV7MjQxNUN9XCJdLFxuICAgICAgW1wiOTE0MFwiLCBcIlxcdXsyNTcwNn1cXHU5OENBXFx1OThCN1xcdTk4QzhcXHU5OEM3XFx1NEFGRlxcdXsyNkQyN31cXHV7MjE2RDN9XFx1NTVCMFxcdTk4RTFcXHU5OEU2XFx1OThFQ1xcdTkzNzhcXHU5OTM5XFx1ezI0QTI5fVxcdTRCNzJcXHV7Mjk4NTd9XFx1ezI5OTA1fVxcdTk5RjVcXHU5QTBDXFx1OUEzQlxcdTlBMTBcXHU5QTU4XFx1ezI1NzI1fVxcdTM2QzRcXHV7MjkwQjF9XFx1ezI5QkQ1fVxcdTlBRTBcXHU5QUUyXFx1ezI5QjA1fVxcdTlBRjRcXHU0QzBFXFx1OUIxNFxcdTlCMkRcXHV7Mjg2MDB9XFx1NTAzNFxcdTlCMzRcXHV7MjY5QTh9XFx1MzhDM1xcdXsyMzA3RH1cXHU5QjUwXFx1OUI0MFxcdXsyOUQzRX1cXHU1QTQ1XFx1ezIxODYzfVxcdTlCOEVcXHV7MjQyNEJ9XFx1OUMwMlxcdTlCRkZcXHU5QzBDXFx1ezI5RTY4fVxcdTlERDRcXHV7MjlGQjd9XFx1ezJBMTkyfVxcdXsyQTFBQn1cXHV7MkEwRTF9XFx1ezJBMTIzfVxcdXsyQTFERn1cXHU5RDdFXFx1OUQ4M1xcdXsyQTEzNH1cXHU5RTBFXFx1Njg4OFwiXSxcbiAgICAgIFtcIjkxYTFcIiwgXCJcXHU5REM0XFx1ezIyMTVCfVxcdXsyQTE5M31cXHV7MkEyMjB9XFx1ezIxOTNCfVxcdXsyQTIzM31cXHU5RDM5XFx1ezJBMEI5fVxcdXsyQTJCNH1cXHU5RTkwXFx1OUU5NVxcdTlFOUVcXHU5RUEyXFx1NEQzNFxcdTlFQUFcXHU5RUFGXFx1ezI0MzY0fVxcdTlFQzFcXHUzQjYwXFx1MzlFNVxcdTNEMURcXHU0RjMyXFx1MzdCRVxcdXsyOEMyQn1cXHU5RjAyXFx1OUYwOFxcdTRCOTZcXHU5NDI0XFx1ezI2REEyfVxcdTlGMTdcXHU5RjE2XFx1OUYzOVxcdTU2OUZcXHU1NjhBXFx1OUY0NVxcdTk5QjhcXHV7MjkwOEJ9XFx1OTdGMlxcdTg0N0ZcXHU5RjYyXFx1OUY2OVxcdTdBRENcXHU5RjhFXFx1NzIxNlxcdTRCQkVcXHV7MjQ5NzV9XFx1ezI0OUJCfVxcdTcxNzdcXHV7MjQ5Rjh9XFx1ezI0MzQ4fVxcdXsyNEE1MX1cXHU3MzlFXFx1ezI4QkRBfVxcdXsyMThGQX1cXHU3OTlGXFx1ezI4OTdFfVxcdXsyOEUzNn1cXHU5MzY5XFx1OTNGM1xcdXsyOEE0NH1cXHU5MkVDXFx1OTM4MVxcdTkzQ0JcXHV7Mjg5NkN9XFx1ezI0NEI5fVxcdTcyMTdcXHUzRUVCXFx1Nzc3MlxcdTdBNDNcXHU3MEQwXFx1ezI0NDczfVxcdXsyNDNGOH1cXHU3MTdFXFx1ezIxN0VGfVxcdTcwQTNcXHV7MjE4QkV9XFx1ezIzNTk5fVxcdTNFQzdcXHV7MjE4ODV9XFx1ezI1NDJGfVxcdXsyMTdGOH1cXHUzNzIyXFx1ezIxNkZCfVxcdXsyMTgzOX1cXHUzNkUxXFx1ezIxNzc0fVxcdXsyMThEMX1cXHV7MjVGNEJ9XFx1MzcyM1xcdXsyMTZDMH1cXHU1NzVCXFx1ezI0QTI1fVxcdXsyMTNGRX1cXHV7MjEyQTh9XCJdLFxuICAgICAgW1wiOTI0MFwiLCBcIlxcdXsyMTNDNn1cXHV7MjE0QjZ9XFx1ODUwM1xcdXsyMzZBNn1cXHU4NTAzXFx1ODQ1NVxcdXsyNDk5NH1cXHV7MjcxNjV9XFx1ezIzRTMxfVxcdXsyNTU1Q31cXHV7MjNFRkJ9XFx1ezI3MDUyfVxcdTQ0RjRcXHV7MjM2RUV9XFx1ezI5OTlEfVxcdXsyNkYyNn1cXHU2N0Y5XFx1MzczM1xcdTNDMTVcXHUzREU3XFx1NTg2Q1xcdXsyMTkyMn1cXHU2ODEwXFx1NDA1N1xcdXsyMzczRn1cXHV7MjQwRTF9XFx1ezI0MDhCfVxcdXsyNDEwRn1cXHV7MjZDMjF9XFx1NTRDQlxcdTU2OUVcXHV7MjY2QjF9XFx1NTY5MlxcdXsyMEZERn1cXHV7MjBCQTh9XFx1ezIwRTBEfVxcdTkzQzZcXHV7MjhCMTN9XFx1OTM5Q1xcdTRFRjhcXHU1MTJCXFx1MzgxOVxcdXsyNDQzNn1cXHU0RUJDXFx1ezIwNDY1fVxcdXsyMDM3Rn1cXHU0RjRCXFx1NEY4QVxcdXsyNTY1MX1cXHU1QTY4XFx1ezIwMUFCfVxcdXsyMDNDQn1cXHUzOTk5XFx1ezIwMzBBfVxcdXsyMDQxNH1cXHUzNDM1XFx1NEYyOVxcdXsyMDJDMH1cXHV7MjhFQjN9XFx1ezIwMjc1fVxcdThBREFcXHV7MjAyMEN9XFx1NEU5OFwiXSxcbiAgICAgIFtcIjkyYTFcIiwgXCJcXHU1MENEXFx1NTEwRFxcdTRGQTJcXHU0RjAzXFx1ezI0QTBFfVxcdXsyM0U4QX1cXHU0RjQyXFx1NTAyRVxcdTUwNkNcXHU1MDgxXFx1NEZDQ1xcdTRGRTVcXHU1MDU4XFx1NTBGQ1xcdTUxNTlcXHU1MTVCXFx1NTE1RFxcdTUxNUVcXHU2RTc2XFx1ezIzNTk1fVxcdXsyM0UzOX1cXHV7MjNFQkZ9XFx1NkQ3MlxcdXsyMTg4NH1cXHV7MjNFODl9XFx1NTFBOFxcdTUxQzNcXHV7MjA1RTB9XFx1NDRERFxcdXsyMDRBM31cXHV7MjA0OTJ9XFx1ezIwNDkxfVxcdThEN0FcXHV7MjhBOUN9XFx1ezIwNzBFfVxcdTUyNTlcXHU1MkE0XFx1ezIwODczfVxcdTUyRTFcXHU5MzZFXFx1NDY3QVxcdTcxOENcXHV7MjQzOEN9XFx1ezIwQzIwfVxcdXsyNDlBQ31cXHV7MjEwRTR9XFx1NjlEMVxcdXsyMEUxRH1cXHU3NDc5XFx1M0VERVxcdTc0OTlcXHU3NDE0XFx1NzQ1NlxcdTczOThcXHU0QjhFXFx1ezI0QUJDfVxcdXsyNDA4RH1cXHU1M0QwXFx1MzU4NFxcdTcyMEZcXHV7MjQwQzl9XFx1NTVCNFxcdXsyMDM0NX1cXHU1NENEXFx1ezIwQkM2fVxcdTU3MURcXHU5MjVEXFx1OTZGNFxcdTkzNjZcXHU1N0REXFx1NTc4RFxcdTU3N0ZcXHUzNjNFXFx1NThDQlxcdTVBOTlcXHV7MjhBNDZ9XFx1ezIxNkZBfVxcdXsyMTc2Rn1cXHV7MjE3MTB9XFx1NUEyQ1xcdTU5QjhcXHU5MjhGXFx1NUE3RVxcdTVBQ0ZcXHU1QTEyXFx1ezI1OTQ2fVxcdXsyMTlGM31cXHV7MjE4NjF9XFx1ezI0Mjk1fVxcdTM2RjVcXHU2RDA1XFx1NzQ0M1xcdTVBMjFcXHV7MjVFODN9XCJdLFxuICAgICAgW1wiOTM0MFwiLCBcIlxcdTVBODFcXHV7MjhCRDd9XFx1ezIwNDEzfVxcdTkzRTBcXHU3NDhDXFx1ezIxMzAzfVxcdTcxMDVcXHU0OTcyXFx1OTQwOFxcdXsyODlGQn1cXHU5M0JEXFx1MzdBMFxcdTVDMUVcXHU1QzlFXFx1NUU1RVxcdTVFNDhcXHV7MjE5OTZ9XFx1ezIxOTdDfVxcdXsyM0FFRX1cXHU1RUNEXFx1NUI0RlxcdXsyMTkwM31cXHV7MjE5MDR9XFx1MzcwMVxcdXsyMThBMH1cXHUzNkREXFx1ezIxNkZFfVxcdTM2RDNcXHU4MTJBXFx1ezI4QTQ3fVxcdXsyMURCQX1cXHV7MjM0NzJ9XFx1ezI4OUE4fVxcdTVGMENcXHU1RjBFXFx1ezIxOTI3fVxcdXsyMTdBQn1cXHU1QTZCXFx1ezIxNzNCfVxcdTVCNDRcXHU4NjE0XFx1ezI3NUZEfVxcdTg4NjBcXHU2MDdFXFx1ezIyODYwfVxcdXsyMjYyQn1cXHU1RkRCXFx1M0VCOFxcdXsyMjVBRn1cXHV7MjI1QkV9XFx1ezI5MDg4fVxcdXsyNkY3M31cXHU2MUMwXFx1ezIwMDNFfVxcdXsyMDA0Nn1cXHV7MjI2MUJ9XFx1NjE5OVxcdTYxOThcXHU2MDc1XFx1ezIyQzlCfVxcdXsyMkQwN31cXHV7MjQ2RDR9XFx1ezI5MTREfVwiXSxcbiAgICAgIFtcIjkzYTFcIiwgXCJcXHU2NDcxXFx1ezI0NjY1fVxcdXsyMkI2QX1cXHUzQTI5XFx1ezIyQjIyfVxcdXsyMzQ1MH1cXHV7Mjk4RUF9XFx1ezIyRTc4fVxcdTYzMzdcXHV7MkE0NUJ9XFx1NjRCNlxcdTYzMzFcXHU2M0QxXFx1ezI0OUUzfVxcdXsyMkQ2N31cXHU2MkE0XFx1ezIyQ0ExfVxcdTY0M0JcXHU2NTZCXFx1Njk3MlxcdTNCRjRcXHV7MjMwOEV9XFx1ezIzMkFEfVxcdXsyNDk4OX1cXHV7MjMyQUJ9XFx1NTUwRFxcdXsyMzJFMH1cXHV7MjE4RDl9XFx1ezI5NDNGfVxcdTY2Q0VcXHV7MjMyODl9XFx1ezIzMUIzfVxcdTNBRTBcXHU0MTkwXFx1ezI1NTg0fVxcdXsyOEIyMn1cXHV7MjU1OEZ9XFx1ezIxNkZDfVxcdXsyNTU1Qn1cXHV7MjU0MjV9XFx1NzhFRVxcdXsyMzEwM31cXHV7MjE4MkF9XFx1ezIzMjM0fVxcdTM0NjRcXHV7MjMyMEZ9XFx1ezIzMTgyfVxcdXsyNDJDOX1cXHU2NjhFXFx1ezI2RDI0fVxcdTY2NkJcXHU0QjkzXFx1NjYzMFxcdXsyNzg3MH1cXHV7MjFERUJ9XFx1NjY2M1xcdXsyMzJEMn1cXHV7MjMyRTF9XFx1NjYxRVxcdXsyNTg3Mn1cXHUzOEQxXFx1ezIzODNBfVxcdXsyMzdCQ31cXHUzQjk5XFx1ezIzN0EyfVxcdXsyMzNGRX1cXHU3NEQwXFx1M0I5NlxcdTY3OEZcXHV7MjQ2MkF9XFx1NjhCNlxcdTY4MUVcXHUzQkM0XFx1NkFCRVxcdTM4NjNcXHV7MjM3RDV9XFx1ezI0NDg3fVxcdTZBMzNcXHU2QTUyXFx1NkFDOVxcdTZCMDVcXHV7MjE5MTJ9XFx1NjUxMVxcdTY4OThcXHU2QTRDXFx1M0JEN1xcdTZBN0FcXHU2QjU3XFx1ezIzRkMwfVxcdXsyM0M5QX1cXHU5M0EwXFx1OTJGMlxcdXsyOEJFQX1cXHV7MjhBQ0J9XCJdLFxuICAgICAgW1wiOTQ0MFwiLCBcIlxcdTkyODlcXHV7MjgwMUV9XFx1ezI4OURDfVxcdTk0NjdcXHU2REE1XFx1NkYwQlxcdXsyNDlFQ31cXHU2RDY3XFx1ezIzRjdGfVxcdTNEOEZcXHU2RTA0XFx1ezI0MDNDfVxcdTVBM0RcXHU2RTBBXFx1NTg0N1xcdTZEMjRcXHU3ODQyXFx1NzEzQlxcdXsyNDMxQX1cXHV7MjQyNzZ9XFx1NzBGMVxcdTcyNTBcXHU3Mjg3XFx1NzI5NFxcdXsyNDc4Rn1cXHV7MjQ3MjV9XFx1NTE3OVxcdXsyNEFBNH1cXHV7MjA1RUJ9XFx1NzQ3QVxcdXsyM0VGOH1cXHV7MjM2NUZ9XFx1ezI0QTRBfVxcdXsyNDkxN31cXHV7MjVGRTF9XFx1M0YwNlxcdTNFQjFcXHV7MjRBREZ9XFx1ezI4QzIzfVxcdXsyM0YzNX1cXHU2MEE3XFx1M0VGM1xcdTc0Q0NcXHU3NDNDXFx1OTM4N1xcdTc0MzdcXHU0NDlGXFx1ezI2REVBfVxcdTQ1NTFcXHU3NTgzXFx1M0Y2M1xcdXsyNENEOX1cXHV7MjREMDZ9XFx1M0Y1OFxcdTc1NTVcXHU3NjczXFx1ezJBNUM2fVxcdTNCMTlcXHU3NDY4XFx1ezI4QUNDfVxcdXsyNDlBQn1cXHV7MjQ5OEV9XFx1M0FGQlwiXSxcbiAgICAgIFtcIjk0YTFcIiwgXCJcXHUzRENEXFx1ezI0QTRFfVxcdTNFRkZcXHV7MjQ5QzV9XFx1ezI0OEYzfVxcdTkxRkFcXHU1NzMyXFx1OTM0MlxcdXsyOEFFM31cXHV7MjE4NjR9XFx1NTBERlxcdXsyNTIyMX1cXHV7MjUxRTd9XFx1Nzc3OFxcdXsyMzIzMn1cXHU3NzBFXFx1NzcwRlxcdTc3N0JcXHV7MjQ2OTd9XFx1ezIzNzgxfVxcdTNBNUVcXHV7MjQ4RjB9XFx1NzQzOFxcdTc0OUJcXHUzRUJGXFx1ezI0QUJBfVxcdXsyNEFDN31cXHU0MEM4XFx1ezI0QTk2fVxcdXsyNjFBRX1cXHU5MzA3XFx1ezI1NTgxfVxcdTc4MUVcXHU3ODhEXFx1Nzg4OFxcdTc4RDJcXHU3M0QwXFx1Nzk1OVxcdXsyNzc0MX1cXHV7MjU2RTN9XFx1NDEwRVxcdTc5OUJcXHU4NDk2XFx1NzlBNVxcdTZBMkRcXHV7MjNFRkF9XFx1N0EzQVxcdTc5RjRcXHU0MTZFXFx1ezIxNkU2fVxcdTQxMzJcXHU5MjM1XFx1NzlGMVxcdXsyMEQ0Q31cXHV7MjQ5OEN9XFx1ezIwMjk5fVxcdXsyM0RCQX1cXHV7MjE3NkV9XFx1MzU5N1xcdTU1NkJcXHUzNTcwXFx1MzZBQVxcdXsyMDFENH1cXHV7MjBDMER9XFx1N0FFMlxcdTVBNTlcXHV7MjI2RjV9XFx1ezI1QUFGfVxcdXsyNUE5Q31cXHU1QTBEXFx1ezIwMjVCfVxcdTc4RjBcXHU1QTJBXFx1ezI1QkM2fVxcdTdBRkVcXHU0MUY5XFx1N0M1RFxcdTdDNkRcXHU0MjExXFx1ezI1QkIzfVxcdXsyNUVCQ31cXHV7MjVFQTZ9XFx1N0NDRFxcdXsyNDlGOX1cXHV7MjE3QjB9XFx1N0M4RVxcdTdDN0NcXHU3Q0FFXFx1NkFCMlxcdTdERENcXHU3RTA3XFx1N0REM1xcdTdGNEVcXHV7MjYyNjF9XCJdLFxuICAgICAgW1wiOTU0MFwiLCBcIlxcdXsyNjE1Q31cXHV7MjdCNDh9XFx1N0Q5N1xcdXsyNUU4Mn1cXHU0MjZBXFx1ezI2Qjc1fVxcdXsyMDkxNn1cXHU2N0Q2XFx1ezIwMDRFfVxcdXsyMzVDRn1cXHU1N0M0XFx1ezI2NDEyfVxcdXsyNjNGOH1cXHV7MjQ5NjJ9XFx1N0ZERFxcdTdCMjdcXHV7MjA4MkN9XFx1ezI1QUU5fVxcdXsyNUQ0M31cXHU3QjBDXFx1ezI1RTBFfVxcdTk5RTZcXHU4NjQ1XFx1OUE2M1xcdTZBMUNcXHV7MjM0M0Z9XFx1MzlFMlxcdXsyNDlGN31cXHV7MjY1QUR9XFx1OUExRlxcdXsyNjVBMH1cXHU4NDgwXFx1ezI3MTI3fVxcdXsyNkNEMX1cXHU0NEVBXFx1ODEzN1xcdTQ0MDJcXHU4MEM2XFx1ODEwOVxcdTgxNDJcXHV7MjY3QjR9XFx1OThDM1xcdXsyNkE0Mn1cXHU4MjYyXFx1ODI2NVxcdXsyNkE1MX1cXHU4NDUzXFx1ezI2REE3fVxcdTg2MTBcXHV7MjcyMUJ9XFx1NUE4NlxcdTQxN0ZcXHV7MjE4NDB9XFx1NUIyQlxcdXsyMThBMX1cXHU1QUU0XFx1ezIxOEQ4fVxcdTg2QTBcXHV7MkY5QkN9XFx1ezIzRDhGfVxcdTg4MkRcXHV7Mjc0MjJ9XFx1NUEwMlwiXSxcbiAgICAgIFtcIjk1YTFcIiwgXCJcXHU4ODZFXFx1NEY0NVxcdTg4ODdcXHU4OEJGXFx1ODhFNlxcdTg5NjVcXHU4OTREXFx1ezI1NjgzfVxcdTg5NTRcXHV7Mjc3ODV9XFx1ezI3Nzg0fVxcdXsyOEJGNX1cXHV7MjhCRDl9XFx1ezI4QjlDfVxcdXsyODlGOX1cXHUzRUFEXFx1ODRBM1xcdTQ2RjVcXHU0NkNGXFx1MzdGMlxcdThBM0RcXHU4QTFDXFx1ezI5NDQ4fVxcdTVGNERcXHU5MjJCXFx1ezI0Mjg0fVxcdTY1RDRcXHU3MTI5XFx1NzBDNFxcdXsyMTg0NX1cXHU5RDZEXFx1OEM5RlxcdThDRTlcXHV7MjdEREN9XFx1NTk5QVxcdTc3QzNcXHU1OUYwXFx1NDM2RVxcdTM2RDRcXHU4RTJBXFx1OEVBN1xcdXsyNEMwOX1cXHU4RjMwXFx1OEY0QVxcdTQyRjRcXHU2QzU4XFx1NkZCQlxcdXsyMjMyMX1cXHU0ODlCXFx1NkY3OVxcdTZFOEJcXHV7MjE3REF9XFx1OUJFOVxcdTM2QjVcXHV7MjQ5MkZ9XFx1OTBCQlxcdTkwOTdcXHU1NTcxXFx1NDkwNlxcdTkxQkJcXHU5NDA0XFx1ezI4QTRCfVxcdTQwNjJcXHV7MjhBRkN9XFx1OTQyN1xcdXsyOEMxRH1cXHV7MjhDM0J9XFx1ODRFNVxcdThBMkJcXHU5NTk5XFx1OTVBN1xcdTk1OTdcXHU5NTk2XFx1ezI4RDM0fVxcdTc0NDVcXHUzRUMyXFx1ezI0OEZGfVxcdXsyNEE0Mn1cXHV7MjQzRUF9XFx1M0VFN1xcdXsyMzIyNX1cXHU5NjhGXFx1ezI4RUU3fVxcdXsyOEU2Nn1cXHV7MjhFNjV9XFx1M0VDQ1xcdXsyNDlFRH1cXHV7MjRBNzh9XFx1ezIzRkVFfVxcdTc0MTJcXHU3NDZCXFx1M0VGQ1xcdTk3NDFcXHV7MjkwQjB9XCJdLFxuICAgICAgW1wiOTY0MFwiLCBcIlxcdTY4NDdcXHU0QTFEXFx1ezI5MDkzfVxcdXsyNTdERn1cXHU5NzVEXFx1OTM2OFxcdXsyODk4OX1cXHV7MjhDMjZ9XFx1ezI4QjJGfVxcdXsyNjNCRX1cXHU5MkJBXFx1NUIxMVxcdThCNjlcXHU0OTNDXFx1NzNGOVxcdXsyNDIxQn1cXHU5NzlCXFx1OTc3MVxcdTk5MzhcXHV7MjBGMjZ9XFx1NURDMVxcdXsyOEJDNX1cXHV7MjRBQjJ9XFx1OTgxRlxcdXsyOTREQX1cXHU5MkY2XFx1ezI5NUQ3fVxcdTkxRTVcXHU0NEMwXFx1ezI4QjUwfVxcdXsyNEE2N31cXHV7MjhCNjR9XFx1OThEQ1xcdXsyOEE0NX1cXHUzRjAwXFx1OTIyQVxcdTQ5MjVcXHU4NDE0XFx1OTkzQlxcdTk5NERcXHV7MjdCMDZ9XFx1M0RGRFxcdTk5OUJcXHU0QjZGXFx1OTlBQVxcdTlBNUNcXHV7MjhCNjV9XFx1ezI1OEM4fVxcdTZBOEZcXHU5QTIxXFx1NUFGRVxcdTlBMkZcXHV7Mjk4RjF9XFx1NEI5MFxcdXsyOTk0OH1cXHU5OUJDXFx1NEJCRFxcdTRCOTdcXHU5MzdEXFx1NTg3MlxcdXsyMTMwMn1cXHU1ODIyXFx1ezI0OUI4fVwiXSxcbiAgICAgIFtcIjk2YTFcIiwgXCJcXHV7MjE0RTh9XFx1Nzg0NFxcdXsyMjcxRn1cXHV7MjNEQjh9XFx1NjhDNVxcdTNEN0RcXHU5NDU4XFx1MzkyN1xcdTYxNTBcXHV7MjI3ODF9XFx1ezIyOTZCfVxcdTYxMDdcXHU5QzRGXFx1OUM1M1xcdTlDN0JcXHU5QzM1XFx1OUMxMFxcdTlCN0ZcXHU5QkNGXFx1ezI5RTJEfVxcdTlCOUZcXHV7MkExRjV9XFx1ezJBMEZFfVxcdTlEMjFcXHU0Q0FFXFx1ezI0MTA0fVxcdTlFMThcXHU0Q0IwXFx1OUQwQ1xcdXsyQTFCNH1cXHV7MkEwRUR9XFx1ezJBMEYzfVxcdXsyOTkyRn1cXHU5REE1XFx1ODRCRFxcdXsyNkUxMn1cXHV7MjZGREZ9XFx1ezI2QjgyfVxcdTg1RkNcXHU0NTMzXFx1ezI2REE0fVxcdXsyNkU4NH1cXHV7MjZERjB9XFx1ODQyMFxcdTg1RUVcXHV7MjZFMDB9XFx1ezIzN0Q3fVxcdXsyNjA2NH1cXHU3OUUyXFx1ezIzNTlDfVxcdXsyMzY0MH1cXHU0OTJEXFx1ezI0OURFfVxcdTNENjJcXHU5M0RCXFx1OTJCRVxcdTkzNDhcXHV7MjAyQkZ9XFx1NzhCOVxcdTkyNzdcXHU5NDREXFx1NEZFNFxcdTM0NDBcXHU5MDY0XFx1ezI1NTVEfVxcdTc4M0RcXHU3ODU0XFx1NzhCNlxcdTc4NEJcXHV7MjE3NTd9XFx1ezIzMUM5fVxcdXsyNDk0MX1cXHUzNjlBXFx1NEY3MlxcdTZGREFcXHU2RkQ5XFx1NzAxRVxcdTcwMUVcXHU1NDE0XFx1ezI0MUI1fVxcdTU3QkJcXHU1OEYzXFx1NTc4QVxcdTlEMTZcXHU1N0Q3XFx1NzEzNFxcdTM0QUZcXHV7MjQxQUN9XFx1NzFFQlxcdXsyNkM0MH1cXHV7MjRGOTd9XFx1NUIyOFxcdXsyMTdCNX1cXHV7MjhBNDl9XCJdLFxuICAgICAgW1wiOTc0MFwiLCBcIlxcdTYxMENcXHU1QUNFXFx1NUEwQlxcdTQyQkNcXHV7MjQ0ODh9XFx1MzcyQ1xcdTRCN0JcXHV7Mjg5RkN9XFx1OTNCQlxcdTkzQjhcXHV7MjE4RDZ9XFx1ezIwRjFEfVxcdTg0NzJcXHV7MjZDQzB9XFx1ezIxNDEzfVxcdXsyNDJGQX1cXHV7MjJDMjZ9XFx1ezI0M0MxfVxcdTU5OTRcXHV7MjNEQjd9XFx1ezI2NzQxfVxcdTdEQThcXHV7MjYxNUJ9XFx1ezI2MEE0fVxcdXsyNDlCOX1cXHV7MjQ5OEJ9XFx1ezI4OUZBfVxcdTkyRTVcXHU3M0UyXFx1M0VFOVxcdTc0QjRcXHV7MjhCNjN9XFx1ezIxODlGfVxcdTNFRTFcXHV7MjRBQjN9XFx1NkFEOFxcdTczRjNcXHU3M0ZCXFx1M0VENlxcdXsyNEEzRX1cXHV7MjRBOTR9XFx1ezIxN0Q5fVxcdXsyNEE2Nn1cXHV7MjAzQTd9XFx1ezIxNDI0fVxcdXsyNDlFNX1cXHU3NDQ4XFx1ezI0OTE2fVxcdTcwQTVcXHV7MjQ5NzZ9XFx1OTI4NFxcdTczRTZcXHU5MzVGXFx1ezIwNEZFfVxcdTkzMzFcXHV7MjhBQ0V9XFx1ezI4QTE2fVxcdTkzODZcXHV7MjhCRTd9XFx1ezI1NUQ1fVxcdTQ5MzVcXHV7MjhBODJ9XFx1NzE2QlwiXSxcbiAgICAgIFtcIjk3YTFcIiwgXCJcXHV7MjQ5NDN9XFx1ezIwQ0ZGfVxcdTU2QTRcXHV7MjA2MUF9XFx1ezIwQkVCfVxcdXsyMENCOH1cXHU1NTAyXFx1NzlDNFxcdXsyMTdGQX1cXHU3REZFXFx1ezIxNkMyfVxcdXsyNEE1MH1cXHV7MjE4NTJ9XFx1NDUyRVxcdTk0MDFcXHUzNzBBXFx1ezI4QUMwfVxcdXsyNDlBRH1cXHU1OUIwXFx1ezIxOEJGfVxcdXsyMTg4M31cXHV7Mjc0ODR9XFx1NUFBMVxcdTM2RTJcXHV7MjNENUJ9XFx1MzZCMFxcdTkyNUZcXHU1QTc5XFx1ezI4QTgxfVxcdXsyMTg2Mn1cXHU5Mzc0XFx1M0NDRFxcdXsyMEFCNH1cXHU0QTk2XFx1Mzk4QVxcdTUwRjRcXHUzRDY5XFx1M0Q0Q1xcdXsyMTM5Q31cXHU3MTc1XFx1NDJGQlxcdXsyODIxOH1cXHU2RTBGXFx1ezI5MEU0fVxcdTQ0RUJcXHU2RDU3XFx1ezI3RTRGfVxcdTcwNjdcXHU2Q0FGXFx1M0NENlxcdXsyM0ZFRH1cXHV7MjNFMkR9XFx1NkUwMlxcdTZGMENcXHUzRDZGXFx1ezIwM0Y1fVxcdTc1NTFcXHUzNkJDXFx1MzRDOFxcdTQ2ODBcXHUzRURBXFx1NDg3MVxcdTU5QzRcXHU5MjZFXFx1NDkzRVxcdThGNDFcXHV7MjhDMUN9XFx1ezI2QkMwfVxcdTU4MTJcXHU1N0M4XFx1MzZENlxcdXsyMTQ1Mn1cXHU3MEZFXFx1ezI0MzYyfVxcdXsyNEE3MX1cXHV7MjJGRTN9XFx1ezIxMkIwfVxcdXsyMjNCRH1cXHU2OEI5XFx1Njk2N1xcdXsyMTM5OH1cXHV7MjM0RTV9XFx1ezI3QkY0fVxcdXsyMzZERn1cXHV7MjhBODN9XFx1ezIzN0Q2fVxcdXsyMzNGQX1cXHV7MjRDOUZ9XFx1NkExQVxcdXsyMzZBRH1cXHV7MjZDQjd9XFx1ODQzRVxcdTQ0REZcXHU0NENFXCJdLFxuICAgICAgW1wiOTg0MFwiLCBcIlxcdXsyNkQyNn1cXHV7MjZENTF9XFx1ezI2QzgyfVxcdXsyNkZERX1cXHU2RjE3XFx1ezI3MTA5fVxcdTgzM0RcXHV7MjE3M0F9XFx1ODNFRFxcdXsyNkM4MH1cXHV7MjcwNTN9XFx1ezIxN0RCfVxcdTU5ODlcXHU1QTgyXFx1ezIxN0IzfVxcdTVBNjFcXHU1QTcxXFx1ezIxOTA1fVxcdXsyNDFGQ31cXHUzNzJEXFx1NTlFRlxcdXsyMTczQ31cXHUzNkM3XFx1NzE4RVxcdTkzOTBcXHU2NjlBXFx1ezI0MkE1fVxcdTVBNkVcXHU1QTJCXFx1ezI0MjkzfVxcdTZBMkJcXHV7MjNFRjl9XFx1ezI3NzM2fVxcdXsyNDQ1Qn1cXHV7MjQyQ0F9XFx1NzExRFxcdXsyNDI1OX1cXHV7Mjg5RTF9XFx1NEZCMFxcdXsyNkQyOH1cXHU1Q0MyXFx1ezI0NENFfVxcdXsyN0U0RH1cXHV7MjQzQkR9XFx1NkEwQ1xcdXsyNDI1Nn1cXHV7MjEzMDR9XFx1NzBBNlxcdTcxMzNcXHV7MjQzRTl9XFx1M0RBNVxcdTZDREZcXHV7MkY4MjV9XFx1ezI0QTRGfVxcdTdFNjVcXHU1OUVCXFx1NUQyRlxcdTNERjNcXHU1RjVDXFx1ezI0QTVEfVxcdXsyMTdERn1cXHU3REE0XFx1ODQyNlwiXSxcbiAgICAgIFtcIjk4YTFcIiwgXCJcXHU1NDg1XFx1ezIzQUZBfVxcdXsyMzMwMH1cXHV7MjAyMTR9XFx1NTc3RVxcdXsyMDhENX1cXHV7MjA2MTl9XFx1M0ZFNVxcdXsyMUY5RX1cXHV7MkEyQjZ9XFx1NzAwM1xcdXsyOTE1Qn1cXHU1RDcwXFx1NzM4RlxcdTdDRDNcXHV7MjhBNTl9XFx1ezI5NDIwfVxcdTRGQzhcXHU3RkU3XFx1NzJDRFxcdTczMTBcXHV7MjdBRjR9XFx1NzMzOFxcdTczMzlcXHV7MjU2RjZ9XFx1NzM0MVxcdTczNDhcXHUzRUE5XFx1ezI3QjE4fVxcdTkwNkNcXHU3MUY1XFx1ezI0OEYyfVxcdTczRTFcXHU4MUY2XFx1M0VDQVxcdTc3MENcXHUzRUQxXFx1NkNBMlxcdTU2RkRcXHU3NDE5XFx1NzQxRVxcdTc0MUZcXHUzRUUyXFx1M0VGMFxcdTNFRjRcXHUzRUZBXFx1NzREM1xcdTNGMEVcXHUzRjUzXFx1NzU0MlxcdTc1NkRcXHU3NTcyXFx1NzU4RFxcdTNGN0NcXHU3NUM4XFx1NzVEQ1xcdTNGQzBcXHU3NjREXFx1M0ZEN1xcdTc2NzRcXHUzRkRDXFx1NzY3QVxcdXsyNEY1Q31cXHU3MTg4XFx1NTYyM1xcdTg5ODBcXHU1ODY5XFx1NDAxRFxcdTc3NDNcXHU0MDM5XFx1Njc2MVxcdTQwNDVcXHUzNURCXFx1Nzc5OFxcdTQwNkFcXHU0MDZGXFx1NUM1RVxcdTc3QkVcXHU3N0NCXFx1NThGMlxcdTc4MThcXHU3MEI5XFx1NzgxQ1xcdTQwQThcXHU3ODM5XFx1Nzg0N1xcdTc4NTFcXHU3ODY2XFx1ODQ0OFxcdXsyNTUzNX1cXHU3OTMzXFx1NjgwM1xcdTc5MzJcXHU0MTAzXCJdLFxuICAgICAgW1wiOTk0MFwiLCBcIlxcdTQxMDlcXHU3OTkxXFx1Nzk5OVxcdThGQkJcXHU3QTA2XFx1OEZCQ1xcdTQxNjdcXHU3QTkxXFx1NDFCMlxcdTdBQkNcXHU4Mjc5XFx1NDFDNFxcdTdBQ0ZcXHU3QURCXFx1NDFDRlxcdTRFMjFcXHU3QjYyXFx1N0I2Q1xcdTdCN0JcXHU3QzEyXFx1N0MxQlxcdTQyNjBcXHU0MjdBXFx1N0M3QlxcdTdDOUNcXHU0MjhDXFx1N0NCOFxcdTQyOTRcXHU3Q0VEXFx1OEY5M1xcdTcwQzBcXHV7MjBDQ0Z9XFx1N0RDRlxcdTdERDRcXHU3REQwXFx1N0RGRFxcdTdGQUVcXHU3RkI0XFx1NzI5RlxcdTQzOTdcXHU4MDIwXFx1ODAyNVxcdTdCMzlcXHU4MDJFXFx1ODAzMVxcdTgwNTRcXHUzRENDXFx1NTdCNFxcdTcwQTBcXHU4MEI3XFx1ODBFOVxcdTQzRURcXHU4MTBDXFx1NzMyQVxcdTgxMEVcXHU4MTEyXFx1NzU2MFxcdTgxMTRcXHU0NDAxXFx1M0IzOVxcdTgxNTZcXHU4MTU5XFx1ODE1QVwiXSxcbiAgICAgIFtcIjk5YTFcIiwgXCJcXHU0NDEzXFx1NTgzQVxcdTgxN0NcXHU4MTg0XFx1NDQyNVxcdTgxOTNcXHU0NDJEXFx1ODFBNVxcdTU3RUZcXHU4MUMxXFx1ODFFNFxcdTgyNTRcXHU0NDhGXFx1ODJBNlxcdTgyNzZcXHU4MkNBXFx1ODJEOFxcdTgyRkZcXHU0NEIwXFx1ODM1N1xcdTk2NjlcXHU2OThBXFx1ODQwNVxcdTcwRjVcXHU4NDY0XFx1NjBFM1xcdTg0ODhcXHU0NTA0XFx1ODRCRVxcdTg0RTFcXHU4NEY4XFx1ODUxMFxcdTg1MzhcXHU4NTUyXFx1NDUzQlxcdTg1NkZcXHU4NTcwXFx1ODVFMFxcdTQ1NzdcXHU4NjcyXFx1ODY5MlxcdTg2QjJcXHU4NkVGXFx1OTY0NVxcdTg3OEJcXHU0NjA2XFx1NDYxN1xcdTg4QUVcXHU4OEZGXFx1ODkyNFxcdTg5NDdcXHU4OTkxXFx1ezI3OTY3fVxcdThBMjlcXHU4QTM4XFx1OEE5NFxcdThBQjRcXHU4QzUxXFx1OENENFxcdThDRjJcXHU4RDFDXFx1NDc5OFxcdTU4NUZcXHU4REMzXFx1NDdFRFxcdTRFRUVcXHU4RTNBXFx1NTVEOFxcdTU3NTRcXHU4RTcxXFx1NTVGNVxcdThFQjBcXHU0ODM3XFx1OEVDRVxcdThFRTJcXHU4RUU0XFx1OEVFRFxcdThFRjJcXHU4RkI3XFx1OEZDMVxcdThGQ0FcXHU4RkNDXFx1OTAzM1xcdTk5QzRcXHU0OEFEXFx1OThFMFxcdTkyMTNcXHU0OTFFXFx1OTIyOFxcdTkyNThcXHU5MjZCXFx1OTJCMVxcdTkyQUVcXHU5MkJGXCJdLFxuICAgICAgW1wiOWE0MFwiLCBcIlxcdTkyRTNcXHU5MkVCXFx1OTJGM1xcdTkyRjRcXHU5MkZEXFx1OTM0M1xcdTkzODRcXHU5M0FEXFx1NDk0NVxcdTQ5NTFcXHU5RUJGXFx1OTQxN1xcdTUzMDFcXHU5NDFEXFx1OTQyRFxcdTk0M0VcXHU0OTZBXFx1OTQ1NFxcdTk0NzlcXHU5NTJEXFx1OTVBMlxcdTQ5QTdcXHU5NUY0XFx1OTYzM1xcdTQ5RTVcXHU2N0EwXFx1NEEyNFxcdTk3NDBcXHU0QTM1XFx1OTdCMlxcdTk3QzJcXHU1NjU0XFx1NEFFNFxcdTYwRThcXHU5OEI5XFx1NEIxOVxcdTk4RjFcXHU1ODQ0XFx1OTkwRVxcdTk5MTlcXHU1MUI0XFx1OTkxQ1xcdTk5MzdcXHU5OTQyXFx1OTk1RFxcdTk5NjJcXHU0QjcwXFx1OTlDNVxcdTRCOURcXHU5QTNDXFx1OUIwRlxcdTdBODNcXHU5QjY5XFx1OUI4MVxcdTlCRERcXHU5QkYxXFx1OUJGNFxcdTRDNkRcXHU5QzIwXFx1Mzc2RlxcdXsyMUJDMn1cXHU5RDQ5XFx1OUMzQVwiXSxcbiAgICAgIFtcIjlhYTFcIiwgXCJcXHU5RUZFXFx1NTY1MFxcdTlEOTNcXHU5REJEXFx1OURDMFxcdTlERkNcXHU5NEY2XFx1OEZCNlxcdTlFN0JcXHU5RUFDXFx1OUVCMVxcdTlFQkRcXHU5RUM2XFx1OTREQ1xcdTlFRTJcXHU5RUYxXFx1OUVGOFxcdTdBQzhcXHU5RjQ0XFx1ezIwMDk0fVxcdXsyMDJCN31cXHV7MjAzQTB9XFx1NjkxQVxcdTk0QzNcXHU1OUFDXFx1ezIwNEQ3fVxcdTU4NDBcXHU5NEMxXFx1MzdCOVxcdXsyMDVENX1cXHV7MjA2MTV9XFx1ezIwNjc2fVxcdXsyMTZCQX1cXHU1NzU3XFx1NzE3M1xcdXsyMEFDMn1cXHV7MjBBQ0R9XFx1ezIwQkJGfVxcdTU0NkFcXHV7MkY4M0J9XFx1ezIwQkNCfVxcdTU0OUVcXHV7MjBCRkJ9XFx1ezIwQzNCfVxcdXsyMEM1M31cXHV7MjBDNjV9XFx1ezIwQzdDfVxcdTYwRTdcXHV7MjBDOER9XFx1NTY3QVxcdXsyMENCNX1cXHV7MjBDRER9XFx1ezIwQ0VEfVxcdXsyMEQ2Rn1cXHV7MjBEQjJ9XFx1ezIwREM4fVxcdTY5NTVcXHU5QzJGXFx1ODdBNVxcdXsyMEUwNH1cXHV7MjBFMEV9XFx1ezIwRUQ3fVxcdXsyMEY5MH1cXHV7MjBGMkR9XFx1ezIwRTczfVxcdTVDMjBcXHV7MjBGQkN9XFx1NUUwQlxcdXsyMTA1Q31cXHV7MjEwNEZ9XFx1ezIxMDc2fVxcdTY3MUVcXHV7MjEwN0J9XFx1ezIxMDg4fVxcdXsyMTA5Nn1cXHUzNjQ3XFx1ezIxMEJGfVxcdXsyMTBEM31cXHV7MjExMkZ9XFx1ezIxMTNCfVxcdTUzNjRcXHU4NEFEXFx1ezIxMkUzfVxcdXsyMTM3NX1cXHV7MjEzMzZ9XFx1OEI4MVxcdXsyMTU3N31cXHV7MjE2MTl9XFx1ezIxN0MzfVxcdXsyMTdDN31cXHU0RTc4XFx1NzBCQlxcdXsyMTgyRH1cXHV7MjE5NkF9XCJdLFxuICAgICAgW1wiOWI0MFwiLCBcIlxcdXsyMUEyRH1cXHV7MjFBNDV9XFx1ezIxQzJBfVxcdXsyMUM3MH1cXHV7MjFDQUN9XFx1ezIxRUM4fVxcdTYyQzNcXHV7MjFFRDV9XFx1ezIxRjE1fVxcdTcxOThcXHU2ODU1XFx1ezIyMDQ1fVxcdTY5RTlcXHUzNkM4XFx1ezIyMjdDfVxcdXsyMjNEN31cXHV7MjIzRkF9XFx1ezIyNzJBfVxcdXsyMjg3MX1cXHV7MjI5NEZ9XFx1ODJGRFxcdXsyMjk2N31cXHV7MjI5OTN9XFx1ezIyQUQ1fVxcdTg5QTVcXHV7MjJBRTh9XFx1OEZBMFxcdXsyMkIwRX1cXHU5N0I4XFx1ezIyQjNGfVxcdTk4NDdcXHU5QUJEXFx1ezIyQzRDfVwiXSxcbiAgICAgIFtcIjliNjJcIiwgXCJcXHV7MjJDODh9XFx1ezIyQ0I3fVxcdXsyNUJFOH1cXHV7MjJEMDh9XFx1ezIyRDEyfVxcdXsyMkRCN31cXHV7MjJEOTV9XFx1ezIyRTQyfVxcdXsyMkY3NH1cXHV7MjJGQ0N9XFx1ezIzMDMzfVxcdXsyMzA2Nn1cXHV7MjMzMUZ9XFx1ezIzM0RFfVxcdTVGQjFcXHU2NjQ4XFx1NjZCRlxcdXsyN0E3OX1cXHV7MjM1Njd9XFx1ezIzNUYzfVxcdTcyMDFcXHV7MjQ5QkF9XFx1NzdEN1xcdXsyMzYxQX1cXHV7MjM3MTZ9XFx1N0U4N1xcdXsyMDM0Nn1cXHU1OEI1XFx1NjcwRVwiXSxcbiAgICAgIFtcIjliYTFcIiwgXCJcXHU2OTE4XFx1ezIzQUE3fVxcdXsyNzY1N31cXHV7MjVGRTJ9XFx1ezIzRTExfVxcdXsyM0VCOX1cXHV7Mjc1RkV9XFx1ezIyMDlBfVxcdTQ4RDBcXHU0QUI4XFx1ezI0MTE5fVxcdXsyOEE5QX1cXHV7MjQyRUV9XFx1ezI0MzBEfVxcdXsyNDAzQn1cXHV7MjQzMzR9XFx1ezI0Mzk2fVxcdXsyNEE0NX1cXHV7MjA1Q0F9XFx1NTFEMlxcdXsyMDYxMX1cXHU1OTlGXFx1ezIxRUE4fVxcdTNCQkVcXHV7MjNDRkZ9XFx1ezI0NDA0fVxcdXsyNDRENn1cXHU1Nzg4XFx1ezI0Njc0fVxcdTM5OUJcXHV7MjQ3MkZ9XFx1ezI4NUU4fVxcdXsyOTlDOX1cXHUzNzYyXFx1ezIyMUMzfVxcdThCNUVcXHV7MjhCNEV9XFx1OTlENlxcdXsyNDgxMn1cXHV7MjQ4RkJ9XFx1ezI0QTE1fVxcdTcyMDlcXHV7MjRBQzB9XFx1ezIwQzc4fVxcdTU5NjVcXHV7MjRFQTV9XFx1ezI0Rjg2fVxcdXsyMDc3OX1cXHU4RURBXFx1ezI1MDJDfVxcdTUyOEZcXHU1NzNGXFx1NzE3MVxcdXsyNTI5OX1cXHV7MjU0MTl9XFx1ezIzRjRBfVxcdXsyNEFBN31cXHU1NUJDXFx1ezI1NDQ2fVxcdXsyNTQ2RX1cXHV7MjZCNTJ9XFx1OTFENFxcdTM0NzNcXHV7MjU1M0Z9XFx1ezI3NjMyfVxcdXsyNTU1RX1cXHU0NzE4XFx1ezI1NTYyfVxcdXsyNTU2Nn1cXHV7MjU3Qzd9XFx1ezI0OTNGfVxcdXsyNTg1RH1cXHU1MDY2XFx1MzRGQlxcdXsyMzNDQ31cXHU2MERFXFx1ezI1OTAzfVxcdTQ3N0NcXHV7Mjg5NDh9XFx1ezI1QUFFfVxcdXsyNUI4OX1cXHV7MjVDMDZ9XFx1ezIxRDkwfVxcdTU3QTFcXHU3MTUxXFx1NkZCNlxcdXsyNjEwMn1cXHV7MjdDMTJ9XFx1OTA1NlxcdXsyNjFCMn1cXHV7MjRGOUF9XFx1OEI2MlxcdXsyNjQwMn1cXHV7MjY0NEF9XCJdLFxuICAgICAgW1wiOWM0MFwiLCBcIlxcdTVENUJcXHV7MjZCRjd9XFx1OEYzNlxcdXsyNjQ4NH1cXHV7MjE5MUN9XFx1OEFFQVxcdXsyNDlGNn1cXHV7MjY0ODh9XFx1ezIzRkVGfVxcdXsyNjUxMn1cXHU0QkMwXFx1ezI2NUJGfVxcdXsyNjZCNX1cXHV7MjI3MUJ9XFx1OTQ2NVxcdXsyNTdFMX1cXHU2MTk1XFx1NUEyN1xcdXsyRjhDRH1cXHU0RkJCXFx1NTZCOVxcdXsyNDUyMX1cXHV7MjY2RkN9XFx1NEU2QVxcdXsyNDkzNH1cXHU5NjU2XFx1NkQ4RlxcdXsyNkNCRH1cXHUzNjE4XFx1ODk3N1xcdXsyNjc5OX1cXHV7MjY4NkV9XFx1ezI2NDExfVxcdXsyNjg1RX1cXHU3MURGXFx1ezI2OEM3fVxcdTdCNDJcXHV7MjkwQzB9XFx1ezIwQTExfVxcdXsyNjkyNn1cXHU5MTA0XFx1ezI2OTM5fVxcdTdBNDVcXHU5REYwXFx1ezI2OUZBfVxcdTlBMjZcXHV7MjZBMkR9XFx1MzY1RlxcdXsyNjQ2OX1cXHV7MjAwMjF9XFx1Nzk4M1xcdXsyNkEzNH1cXHV7MjZCNUJ9XFx1NUQyQ1xcdXsyMzUxOX1cXHU4M0NGXFx1ezI2QjlEfVxcdTQ2RDBcXHV7MjZDQTR9XFx1NzUzQlxcdTg4NjVcXHV7MjZEQUV9XFx1NThCNlwiXSxcbiAgICAgIFtcIjljYTFcIiwgXCJcXHUzNzFDXFx1ezIyNThEfVxcdXsyNzA0Qn1cXHV7MjcxQ0R9XFx1M0M1NFxcdXsyNzI4MH1cXHV7MjcyODV9XFx1OTI4MVxcdXsyMjE3QX1cXHV7MjcyOEJ9XFx1OTMzMFxcdXsyNzJFNn1cXHV7MjQ5RDB9XFx1NkMzOVxcdTk0OUZcXHV7Mjc0NTB9XFx1ezIwRUY4fVxcdTg4MjdcXHU4OEY1XFx1ezIyOTI2fVxcdXsyODQ3M31cXHV7MjE3QjF9XFx1NkVCOFxcdXsyNEEyQX1cXHV7MjE4MjB9XFx1MzlBNFxcdTM2QjlcXHU1QzEwXFx1NzlFM1xcdTQ1M0ZcXHU2NkI2XFx1ezI5Q0FEfVxcdXsyOThBNH1cXHU4OTQzXFx1ezI3N0NDfVxcdXsyNzg1OH1cXHU1NkQ2XFx1NDBERlxcdXsyMTYwQX1cXHUzOUExXFx1ezIzNzJGfVxcdXsyODBFOH1cXHV7MjEzQzV9XFx1NzFBRFxcdTgzNjZcXHV7Mjc5RER9XFx1ezI5MUE4fVxcdTVBNjdcXHU0Q0I3XFx1ezI3MEFGfVxcdXsyODlBQn1cXHV7Mjc5RkR9XFx1ezI3QTBBfVxcdXsyN0IwQn1cXHV7MjdENjZ9XFx1ezI0MTdBfVxcdTdCNDNcXHU3OTdFXFx1ezI4MDA5fVxcdTZGQjVcXHV7MkEyREZ9XFx1NkEwM1xcdXsyODMxOH1cXHU1M0EyXFx1ezI2RTA3fVxcdTkzQkZcXHU2ODM2XFx1OTc1RFxcdXsyODE2Rn1cXHV7MjgwMjN9XFx1ezI2OUI1fVxcdXsyMTNFRH1cXHV7MjMyMkZ9XFx1ezI4MDQ4fVxcdTVEODVcXHV7MjhDMzB9XFx1ezI4MDgzfVxcdTU3MTVcXHU5ODIzXFx1ezI4OTQ5fVxcdTVEQUJcXHV7MjQ5ODh9XFx1NjVCRVxcdTY5RDVcXHU1M0QyXFx1ezI0QUE1fVxcdXsyM0Y4MX1cXHUzQzExXFx1NjczNlxcdXsyODA5MH1cXHV7MjgwRjR9XFx1ezI4MTJFfVxcdXsyMUZBMX1cXHV7MjgxNEZ9XCJdLFxuICAgICAgW1wiOWQ0MFwiLCBcIlxcdXsyODE4OX1cXHV7MjgxQUZ9XFx1ezI4MjFBfVxcdXsyODMwNn1cXHV7MjgzMkZ9XFx1ezI4MzhBfVxcdTM1Q0FcXHV7Mjg0Njh9XFx1ezI4NkFBfVxcdTQ4RkFcXHU2M0U2XFx1ezI4OTU2fVxcdTc4MDhcXHU5MjU1XFx1ezI4OUI4fVxcdTQzRjJcXHV7Mjg5RTd9XFx1NDNERlxcdXsyODlFOH1cXHV7MjhCNDZ9XFx1ezI4QkQ0fVxcdTU5RjhcXHV7MjhDMDl9XFx1OEYwQlxcdXsyOEZDNX1cXHV7MjkwRUN9XFx1N0I1MVxcdXsyOTExMH1cXHV7MjkxM0N9XFx1M0RGN1xcdXsyOTE1RX1cXHV7MjRBQ0F9XFx1OEZEMFxcdTcyOEZcXHU1NjhCXFx1ezI5NEU3fVxcdXsyOTVFOX1cXHV7Mjk1QjB9XFx1ezI5NUI4fVxcdXsyOTczMn1cXHV7Mjk4RDF9XFx1ezI5OTQ5fVxcdXsyOTk2QX1cXHV7Mjk5QzN9XFx1ezI5QTI4fVxcdXsyOUIwRX1cXHV7MjlENUF9XFx1ezI5RDlCfVxcdTdFOUZcXHV7MjlFRjh9XFx1ezI5RjIzfVxcdTRDQTRcXHU5NTQ3XFx1ezJBMjkzfVxcdTcxQTJcXHV7MkEyRkZ9XFx1NEQ5MVxcdTkwMTJcXHV7MkE1Q0J9XFx1NEQ5Q1xcdXsyMEM5Q31cXHU4RkJFXFx1NTVDMVwiXSxcbiAgICAgIFtcIjlkYTFcIiwgXCJcXHU4RkJBXFx1ezIyNEIwfVxcdThGQjlcXHV7MjRBOTN9XFx1NDUwOVxcdTdFN0ZcXHU2RjU2XFx1NkFCMVxcdTRFRUFcXHUzNEU0XFx1ezI4QjJDfVxcdXsyNzg5RH1cXHUzNzNBXFx1OEU4MFxcdXsyMTdGNX1cXHV7MjgwMjR9XFx1ezI4QjZDfVxcdXsyOEI5OX1cXHV7MjdBM0V9XFx1ezI2NkFGfVxcdTNERUJcXHV7Mjc2NTV9XFx1ezIzQ0I3fVxcdXsyNTYzNX1cXHV7MjU5NTZ9XFx1NEU5QVxcdXsyNUU4MX1cXHV7MjYyNTh9XFx1NTZCRlxcdXsyMEU2RH1cXHU4RTBFXFx1NUI2RFxcdXsyM0U4OH1cXHV7MjRDOUV9XFx1NjNERVxcdTYyRDBcXHV7MjE3RjZ9XFx1ezIxODdCfVxcdTY1MzBcXHU1NjJEXFx1ezI1QzRBfVxcdTU0MUFcXHV7MjUzMTF9XFx1M0RDNlxcdXsyOUQ5OH1cXHU0QzdEXFx1NTYyMlxcdTU2MUVcXHU3RjQ5XFx1ezI1RUQ4fVxcdTU5NzVcXHV7MjNENDB9XFx1ODc3MFxcdTRFMUNcXHV7MjBGRUF9XFx1ezIwRDQ5fVxcdXsyMzZCQX1cXHU4MTE3XFx1OUQ1RVxcdThEMThcXHU3NjNCXFx1OUM0NVxcdTc2NEVcXHU3N0I5XFx1OTM0NVxcdTU0MzJcXHU4MTQ4XFx1ODJGN1xcdTU2MjVcXHU4MTMyXFx1ODQxOFxcdTgwQkRcXHU1NUVBXFx1Nzk2MlxcdTU2NDNcXHU1NDE2XFx1ezIwRTlEfVxcdTM1Q0VcXHU1NjA1XFx1NTVGMVxcdTY2RjFcXHV7MjgyRTJ9XFx1MzYyRFxcdTc1MzRcXHU1NUYwXFx1NTVCQVxcdTU0OTdcXHU1NTcyXFx1ezIwQzQxfVxcdXsyMEM5Nn1cXHU1RUQwXFx1ezI1MTQ4fVxcdXsyMEU3Nn1cXHV7MjJDNjJ9XCJdLFxuICAgICAgW1wiOWU0MFwiLCBcIlxcdXsyMEVBMn1cXHU5RUFCXFx1N0Q1QVxcdTU1REVcXHV7MjEwNzV9XFx1NjI5RFxcdTk3NkRcXHU1NDk0XFx1OENDRFxcdTcxRjZcXHU5MTc2XFx1NjNGQ1xcdTYzQjlcXHU2M0ZFXFx1NTU2OVxcdXsyMkI0M31cXHU5QzcyXFx1ezIyRUIzfVxcdTUxOUFcXHUzNERGXFx1ezIwREE3fVxcdTUxQTdcXHU1NDREXFx1NTUxRVxcdTU1MTNcXHU3NjY2XFx1OEUyRFxcdXsyNjg4QX1cXHU3NUIxXFx1ODBCNlxcdTg4MDRcXHU4Nzg2XFx1ODhDN1xcdTgxQjZcXHU4NDFDXFx1ezIxMEMxfVxcdTQ0RUNcXHU3MzA0XFx1ezI0NzA2fVxcdTVCOTBcXHU4MzBCXFx1ezI2ODkzfVxcdTU2N0JcXHV7MjI2RjR9XFx1ezI3RDJGfVxcdXsyNDFBM31cXHV7MjdENzN9XFx1ezI2RUQwfVxcdXsyNzJCNn1cXHU5MTcwXFx1ezIxMUQ5fVxcdTkyMDhcXHV7MjNDRkN9XFx1ezJBNkE5fVxcdXsyMEVBQ31cXHV7MjBFRjl9XFx1NzI2NlxcdXsyMUNBMn1cXHU0NzRFXFx1ezI0RkMyfVxcdXsyN0ZGOX1cXHV7MjBGRUJ9XFx1NDBGQVwiXSxcbiAgICAgIFtcIjllYTFcIiwgXCJcXHU5QzVEXFx1NjUxRlxcdXsyMkRBMH1cXHU0OEYzXFx1ezI0N0UwfVxcdXsyOUQ3Q31cXHV7MjBGRUN9XFx1ezIwRTBBfVxcdTYwNjJcXHV7Mjc1QTN9XFx1ezIwRkVEfVwiXSxcbiAgICAgIFtcIjllYWRcIiwgXCJcXHV7MjYwNDh9XFx1ezIxMTg3fVxcdTcxQTNcXHU3RThFXFx1OUQ1MFxcdTRFMUFcXHU0RTA0XFx1MzU3N1xcdTVCMERcXHU2Q0IyXFx1NTM2N1xcdTM2QUNcXHUzOURDXFx1NTM3RFxcdTM2QTVcXHV7MjQ2MTh9XFx1NTg5QVxcdXsyNEI2RX1cXHU4MjJEXFx1NTQ0QlxcdTU3QUFcXHV7MjVBOTV9XFx1ezIwOTc5fVwiXSxcbiAgICAgIFtcIjllYzVcIiwgXCJcXHUzQTUyXFx1ezIyNDY1fVxcdTczNzRcXHV7MjlFQUN9XFx1NEQwOVxcdTlCRURcXHV7MjNDRkV9XFx1ezI5RjMwfVxcdTRDNUJcXHV7MjRGQTl9XFx1ezI5NTlFfVxcdXsyOUZERX1cXHU4NDVDXFx1ezIzREI2fVxcdXsyNzJCMn1cXHV7MjY3QjN9XFx1ezIzNzIwfVxcdTYzMkVcXHU3RDI1XFx1ezIzRUY3fVxcdXsyM0UyQ31cXHUzQTJBXFx1OTAwOFxcdTUyQ0NcXHUzRTc0XFx1MzY3QVxcdTQ1RTlcXHV7MjA0OEV9XFx1NzY0MFxcdTVBRjBcXHV7MjBFQjZ9XFx1Nzg3QVxcdXsyN0YyRX1cXHU1OEE3XFx1NDBCRlxcdTU2N0NcXHU5QjhCXFx1NUQ3NFxcdTc2NTRcXHV7MkE0MzR9XFx1OUU4NVxcdTRDRTFcXHU3NUY5XFx1MzdGQlxcdTYxMTlcXHV7MjMwREF9XFx1ezI0M0YyfVwiXSxcbiAgICAgIFtcIjllZjVcIiwgXCJcXHU1NjVEXFx1ezIxMkE5fVxcdTU3QTdcXHV7MjQ5NjN9XFx1ezI5RTA2fVxcdTUyMzRcXHV7MjcwQUV9XFx1MzVBRFxcdTZDNEFcXHU5RDdDXCJdLFxuICAgICAgW1wiOWY0MFwiLCBcIlxcdTdDNTZcXHU5QjM5XFx1NTdERVxcdXsyMTc2Q31cXHU1QzUzXFx1NjREM1xcdXsyOTREMH1cXHV7MjYzMzV9XFx1ezI3MTY0fVxcdTg2QURcXHV7MjBEMjh9XFx1ezI2RDIyfVxcdXsyNEFFMn1cXHV7MjBENzF9XCJdLFxuICAgICAgW1wiOWY0ZlwiLCBcIlxcdTUxRkVcXHV7MjFGMEZ9XFx1NUQ4RVxcdTk3MDNcXHV7MjFERDF9XFx1OUU4MVxcdTkwNENcXHU3QjFGXFx1OUIwMlxcdTVDRDFcXHU3QkEzXFx1NjI2OFxcdTYzMzVcXHU5QUZGXFx1N0JDRlxcdTlCMkFcXHU3QzdFXFx1OUIyRVxcdTdDNDJcXHU3Qzg2XFx1OUMxNVxcdTdCRkNcXHU5QjA5XFx1OUYxN1xcdTlDMUJcXHV7MjQ5M0V9XFx1OUY1QVxcdTU1NzNcXHU1QkMzXFx1NEZGRFxcdTlFOThcXHU0RkYyXFx1NTI2MFxcdTNFMDZcXHU1MkQxXFx1NTc2N1xcdTUwNTZcXHU1OUI3XFx1NUUxMlxcdTk3QzhcXHU5REFCXFx1OEY1Q1xcdTU0NjlcXHU5N0I0XFx1OTk0MFxcdTk3QkFcXHU1MzJDXFx1NjEzMFwiXSxcbiAgICAgIFtcIjlmYTFcIiwgXCJcXHU2OTJDXFx1NTNEQVxcdTlDMEFcXHU5RDAyXFx1NEMzQlxcdTk2NDFcXHU2OTgwXFx1NTBBNlxcdTc1NDZcXHV7MjE3NkR9XFx1OTlEQVxcdTUyNzNcIl0sXG4gICAgICBbXCI5ZmFlXCIsIFwiXFx1OTE1OVxcdTk2ODFcXHU5MTVDXCJdLFxuICAgICAgW1wiOWZiMlwiLCBcIlxcdTkxNTFcXHV7MjhFOTd9XFx1NjM3RlxcdXsyNkQyM31cXHU2QUNBXFx1NTYxMVxcdTkxOEVcXHU3NTdBXFx1NjI4NVxcdXsyMDNGQ31cXHU3MzRGXFx1N0M3MFxcdXsyNUMyMX1cXHV7MjNDRkR9XCJdLFxuICAgICAgW1wiOWZjMVwiLCBcIlxcdXsyNDkxOX1cXHU3NkQ2XFx1OUI5RFxcdTRFMkFcXHV7MjBDRDR9XFx1ODNCRVxcdTg4NDJcIl0sXG4gICAgICBbXCI5ZmM5XCIsIFwiXFx1NUM0QVxcdTY5QzBcXHU1MEVEXFx1NTc3QVxcdTUyMUZcXHU1REY1XFx1NEVDRVxcdTZDMzFcXHV7MjAxRjJ9XFx1NEYzOVxcdTU0OUNcXHU1NERBXFx1NTI5QVxcdThEODJcXHUzNUZFXFx1NUYwQ1xcdTM1RjNcIl0sXG4gICAgICBbXCI5ZmRiXCIsIFwiXFx1NkI1MlxcdTkxN0NcXHU5RkE1XFx1OUI5N1xcdTk4MkVcXHU5OEI0XFx1OUFCQVxcdTlFQThcXHU5RTg0XFx1NzE3QVxcdTdCMTRcIl0sXG4gICAgICBbXCI5ZmU3XCIsIFwiXFx1NkJGQVxcdTg4MThcXHU3Rjc4XCJdLFxuICAgICAgW1wiOWZlYlwiLCBcIlxcdTU2MjBcXHV7MkE2NEF9XFx1OEU3N1xcdTlGNTNcIl0sXG4gICAgICBbXCI5ZmYwXCIsIFwiXFx1OERENFxcdThFNEZcXHU5RTFDXFx1OEUwMVxcdTYyODJcXHV7MjgzN0R9XFx1OEUyOFxcdThFNzVcXHU3QUQzXFx1ezI0QTc3fVxcdTdBM0VcXHU3OEQ4XFx1NkNFQVxcdThBNjdcXHU3NjA3XCJdLFxuICAgICAgW1wiYTA0MFwiLCBcIlxcdXsyOEE1QX1cXHU5RjI2XFx1NkNDRVxcdTg3RDZcXHU3NUMzXFx1ezJBMkIyfVxcdTc4NTNcXHV7MkY4NDB9XFx1OEQwQ1xcdTcyRTJcXHU3MzcxXFx1OEIyRFxcdTczMDJcXHU3NEYxXFx1OENFQlxcdXsyNEFCQn1cXHU4NjJGXFx1NUZCQVxcdTg4QTBcXHU0NEI3XCJdLFxuICAgICAgW1wiYTA1NVwiLCBcIlxcdXsyMTgzQn1cXHV7MjZFMDV9XCJdLFxuICAgICAgW1wiYTA1OFwiLCBcIlxcdThBN0VcXHV7MjI1MUJ9XCJdLFxuICAgICAgW1wiYTA1YlwiLCBcIlxcdTYwRkRcXHU3NjY3XFx1OUFEN1xcdTlENDRcXHU5MzZFXFx1OUI4RlxcdTg3RjVcIl0sXG4gICAgICBbXCJhMDYzXCIsIFwiXFx1ODgwRlxcdThDRjdcXHU3MzJDXFx1OTcyMVxcdTlCQjBcXHUzNUQ2XFx1NzJCMlxcdTRDMDdcXHU3QzUxXFx1OTk0QVxcdXsyNjE1OX1cXHU2MTU5XFx1NEMwNFxcdTlFOTZcXHU2MTdEXCJdLFxuICAgICAgW1wiYTA3M1wiLCBcIlxcdTU3NUZcXHU2MTZGXFx1NjJBNlxcdTYyMzlcXHU2MkNFXFx1M0E1Q1xcdTYxRTJcXHU1M0FBXFx1ezIzM0Y1fVxcdTYzNjRcXHU2ODAyXFx1MzVEMlwiXSxcbiAgICAgIFtcImEwYTFcIiwgXCJcXHU1RDU3XFx1ezI4QkMyfVxcdThGREFcXHV7MjhFMzl9XCJdLFxuICAgICAgW1wiYTBhNlwiLCBcIlxcdTUwRDlcXHV7MjFENDZ9XFx1NzkwNlxcdTUzMzJcXHU5NjM4XFx1ezIwRjNCfVxcdTQwNjVcIl0sXG4gICAgICBbXCJhMGFlXCIsIFwiXFx1NzdGRVwiXSxcbiAgICAgIFtcImEwYjBcIiwgXCJcXHU3Q0MyXFx1ezI1RjFBfVxcdTdDREFcXHU3QTJEXFx1ODA2NlxcdTgwNjNcXHU3RDREXFx1NzUwNVxcdTc0RjJcXHU4OTk0XFx1ODIxQVxcdTY3MENcXHU4MDYyXFx1ezI3NDg2fVxcdTgwNUJcXHU3NEYwXFx1ODEwM1xcdTc3MjRcXHU4OTg5XFx1ezI2N0NDfVxcdTc1NTNcXHV7MjZFRDF9XFx1ODdBOVxcdTg3Q0VcXHU4MUM4XFx1ODc4Q1xcdThBNDlcXHU4Q0FEXFx1OEI0M1xcdTc3MkJcXHU3NEY4XFx1ODREQVxcdTM2MzVcXHU2OUIyXFx1OERBNlwiXSxcbiAgICAgIFtcImEwZDRcIiwgXCJcXHU4OUE5XFx1NzQ2OFxcdTZEQjlcXHU4N0MxXFx1ezI0MDExfVxcdTc0RTdcXHUzRERCXFx1NzE3NlxcdTYwQTRcXHU2MTlDXFx1M0NEMVxcdTcxNjJcXHU2MDc3XCJdLFxuICAgICAgW1wiYTBlMlwiLCBcIlxcdTdGNzFcXHV7MjhCMkR9XFx1NzI1MFxcdTYwRTlcXHU0QjdFXFx1NTIyMFxcdTNDMThcXHV7MjNDQzd9XFx1ezI1RUQ3fVxcdXsyNzY1Nn1cXHV7MjU1MzF9XFx1ezIxOTQ0fVxcdXsyMTJGRX1cXHV7Mjk5MDN9XFx1ezI2RERDfVxcdXsyNzBBRH1cXHU1Q0MxXFx1ezI2MUFEfVxcdXsyOEEwRn1cXHV7MjM2Nzd9XFx1ezIwMEVFfVxcdXsyNjg0Nn1cXHV7MjRGMEV9XFx1NDU2MlxcdTVCMUZcXHV7MjYzNEN9XFx1OUY1MFxcdTlFQTZcXHV7MjYyNkJ9XCJdLFxuICAgICAgW1wiYTNjMFwiLCBcIlxcdTI0MDBcIiwgMzEsIFwiXFx1MjQyMVwiXSxcbiAgICAgIFtcImM2YTFcIiwgXCJcXHUyNDYwXCIsIDksIFwiXFx1MjQ3NFwiLCA5LCBcIlxcdTIxNzBcIiwgOSwgXCJcXHU0RTM2XFx1NEUzRlxcdTRFODVcXHU0RUEwXFx1NTE4MlxcdTUxOTZcXHU1MUFCXFx1NTJGOVxcdTUzMzhcXHU1MzY5XFx1NTNCNlxcdTU5MEFcXHU1QjgwXFx1NUREQlxcdTJGMzNcXHU1RTdGXFx1NUVGNFxcdTVGNTBcXHU1RjYxXFx1NjUzNFxcdTY1RTBcXHU3NTkyXFx1NzY3NlxcdThGQjVcXHU5NkI2XFx4QThcXHUwMkM2XFx1MzBGRFxcdTMwRkVcXHUzMDlEXFx1MzA5RVxcdTMwMDNcXHU0RUREXFx1MzAwNVxcdTMwMDZcXHUzMDA3XFx1MzBGQ1xcdUZGM0JcXHVGRjNEXFx1MjczRFxcdTMwNDFcIiwgMjNdLFxuICAgICAgW1wiYzc0MFwiLCBcIlxcdTMwNTlcIiwgNTgsIFwiXFx1MzBBMVxcdTMwQTJcXHUzMEEzXFx1MzBBNFwiXSxcbiAgICAgIFtcImM3YTFcIiwgXCJcXHUzMEE1XCIsIDgxLCBcIlxcdTA0MTBcIiwgNSwgXCJcXHUwNDAxXFx1MDQxNlwiLCA0XSxcbiAgICAgIFtcImM4NDBcIiwgXCJcXHUwNDFCXCIsIDI2LCBcIlxcdTA0NTFcXHUwNDM2XCIsIDI1LCBcIlxcdTIxRTdcXHUyMUI4XFx1MjFCOVxcdTMxQ0ZcXHV7MjAwQ0N9XFx1NEU1QVxcdXsyMDA4QX1cXHU1MjAyXFx1NDQ5MVwiXSxcbiAgICAgIFtcImM4YTFcIiwgXCJcXHU5RkIwXFx1NTE4OFxcdTlGQjFcXHV7Mjc2MDd9XCJdLFxuICAgICAgW1wiYzhjZFwiLCBcIlxcdUZGRTJcXHVGRkU0XFx1RkYwN1xcdUZGMDJcXHUzMjMxXFx1MjExNlxcdTIxMjFcXHUzMDlCXFx1MzA5Q1xcdTJFODBcXHUyRTg0XFx1MkU4NlxcdTJFODdcXHUyRTg4XFx1MkU4QVxcdTJFOENcXHUyRThEXFx1MkU5NVxcdTJFOUNcXHUyRTlEXFx1MkVBNVxcdTJFQTdcXHUyRUFBXFx1MkVBQ1xcdTJFQUVcXHUyRUI2XFx1MkVCQ1xcdTJFQkVcXHUyRUM2XFx1MkVDQVxcdTJFQ0NcXHUyRUNEXFx1MkVDRlxcdTJFRDZcXHUyRUQ3XFx1MkVERVxcdTJFRTNcIl0sXG4gICAgICBbXCJjOGY1XCIsIFwiXFx1MDI4M1xcdTAyNTBcXHUwMjVCXFx1MDI1NFxcdTAyNzVcXHUwMTUzXFx4RjhcXHUwMTRCXFx1MDI4QVxcdTAyNkFcIl0sXG4gICAgICBbXCJmOWZlXCIsIFwiXFx1RkZFRFwiXSxcbiAgICAgIFtcImZhNDBcIiwgXCJcXHV7MjA1NDd9XFx1OTJEQlxcdXsyMDVERn1cXHV7MjNGQzV9XFx1ODU0Q1xcdTQyQjVcXHU3M0VGXFx1NTFCNVxcdTM2NDlcXHV7MjQ5NDJ9XFx1ezI4OUU0fVxcdTkzNDRcXHV7MjE5REJ9XFx1ODJFRVxcdXsyM0NDOH1cXHU3ODNDXFx1Njc0NFxcdTYyREZcXHV7MjQ5MzN9XFx1ezI4OUFBfVxcdXsyMDJBMH1cXHV7MjZCQjN9XFx1ezIxMzA1fVxcdTRGQUJcXHV7MjI0RUR9XFx1NTAwOFxcdXsyNkQyOX1cXHV7MjdBODR9XFx1ezIzNjAwfVxcdXsyNEFCMX1cXHV7MjI1MTN9XFx1NTAyOVxcdXsyMDM3RX1cXHU1RkE0XFx1ezIwMzgwfVxcdXsyMDM0N31cXHU2RURCXFx1ezIwNDFGfVxcdTUwN0RcXHU1MTAxXFx1MzQ3QVxcdTUxMEVcXHU5ODZDXFx1Mzc0M1xcdTg0MTZcXHV7MjQ5QTR9XFx1ezIwNDg3fVxcdTUxNjBcXHV7MjMzQjR9XFx1NTE2QVxcdXsyMEJGRn1cXHV7MjIwRkN9XFx1ezIwMkU1fVxcdXsyMjUzMH1cXHV7MjA1OEV9XFx1ezIzMjMzfVxcdXsyMTk4M31cXHU1QjgyXFx1ODc3RFxcdXsyMDVCM31cXHV7MjNDOTl9XFx1NTFCMlxcdTUxQjhcIl0sXG4gICAgICBbXCJmYWExXCIsIFwiXFx1OUQzNFxcdTUxQzlcXHU1MUNGXFx1NTFEMVxcdTNDRENcXHU1MUQzXFx1ezI0QUE2fVxcdTUxQjNcXHU1MUUyXFx1NTM0MlxcdTUxRURcXHU4M0NEXFx1NjkzRVxcdXsyMzcyRH1cXHU1RjdCXFx1NTIwQlxcdTUyMjZcXHU1MjNDXFx1NTJCNVxcdTUyNTdcXHU1Mjk0XFx1NTJCOVxcdTUyQzVcXHU3QzE1XFx1ODU0MlxcdTUyRTBcXHU4NjBEXFx1ezI2QjEzfVxcdTUzMDVcXHV7MjhBREV9XFx1NTU0OVxcdTZFRDlcXHV7MjNGODB9XFx1ezIwOTU0fVxcdXsyM0ZFQ31cXHU1MzMzXFx1NTM0NFxcdXsyMEJFMn1cXHU2Q0NCXFx1ezIxNzI2fVxcdTY4MUJcXHU3M0Q1XFx1NjA0QVxcdTNFQUFcXHUzOENDXFx1ezIxNkU4fVxcdTcxRERcXHU0NEEyXFx1NTM2RFxcdTUzNzRcXHV7Mjg2QUJ9XFx1NTM3RVxcdTUzN0ZcXHV7MjE1OTZ9XFx1ezIxNjEzfVxcdTc3RTZcXHU1MzkzXFx1ezI4QTlCfVxcdTUzQTBcXHU1M0FCXFx1NTNBRVxcdTczQTdcXHV7MjU3NzJ9XFx1M0Y1OVxcdTczOUNcXHU1M0MxXFx1NTNDNVxcdTZDNDlcXHU0RTQ5XFx1NTdGRVxcdTUzRDlcXHUzQUFCXFx1ezIwQjhGfVxcdTUzRTBcXHV7MjNGRUJ9XFx1ezIyREEzfVxcdTUzRjZcXHV7MjBDNzd9XFx1NTQxM1xcdTcwNzlcXHU1NTJCXFx1NjY1N1xcdTZENUJcXHU1NDZEXFx1ezI2QjUzfVxcdXsyMEQ3NH1cXHU1NTVEXFx1NTQ4RlxcdTU0QTRcXHU0N0E2XFx1ezIxNzBEfVxcdXsyMEVERH1cXHUzREI0XFx1ezIwRDREfVwiXSxcbiAgICAgIFtcImZiNDBcIiwgXCJcXHV7Mjg5QkN9XFx1ezIyNjk4fVxcdTU1NDdcXHU0Q0VEXFx1NTQyRlxcdTc0MTdcXHU1NTg2XFx1NTVBOVxcdTU2MDVcXHV7MjE4RDd9XFx1ezI0MDNBfVxcdTQ1NTJcXHV7MjQ0MzV9XFx1NjZCM1xcdXsyMTBCNH1cXHU1NjM3XFx1NjZDRFxcdXsyMzI4QX1cXHU2NkE0XFx1NjZBRFxcdTU2NERcXHU1NjRGXFx1NzhGMVxcdTU2RjFcXHU5Nzg3XFx1NTNGRVxcdTU3MDBcXHU1NkVGXFx1NTZFRFxcdXsyOEI2Nn1cXHUzNjIzXFx1ezIxMjRGfVxcdTU3NDZcXHV7MjQxQTV9XFx1NkM2RVxcdTcwOEJcXHU1NzQyXFx1MzZCMVxcdXsyNkM3RX1cXHU1N0U2XFx1ezIxNDE2fVxcdTU4MDNcXHV7MjE0NTR9XFx1ezI0MzYzfVxcdTU4MjZcXHV7MjRCRjV9XFx1NTg1Q1xcdTU4QUFcXHUzNTYxXFx1NThFMFxcdTU4RENcXHV7MjEyM0N9XFx1NThGQlxcdTVCRkZcXHU1NzQzXFx1ezJBMTUwfVxcdXsyNDI3OH1cXHU5M0QzXFx1MzVBMVxcdTU5MUZcXHU2OEE2XFx1MzZDM1xcdTZFNTlcIl0sXG4gICAgICBbXCJmYmExXCIsIFwiXFx1ezIxNjNFfVxcdTVBMjRcXHU1NTUzXFx1ezIxNjkyfVxcdTg1MDVcXHU1OUM5XFx1ezIwRDRFfVxcdXsyNkM4MX1cXHV7MjZEMkF9XFx1ezIxN0RDfVxcdTU5RDlcXHV7MjE3RkJ9XFx1ezIxN0IyfVxcdXsyNkRBNn1cXHU2RDcxXFx1ezIxODI4fVxcdXsyMTZENX1cXHU1OUY5XFx1ezI2RTQ1fVxcdTVBQUJcXHU1QTYzXFx1MzZFNlxcdXsyNDlBOX1cXHU1QTc3XFx1MzcwOFxcdTVBOTZcXHU3NDY1XFx1NUFEM1xcdXsyNkZBMX1cXHV7MjI1NTR9XFx1M0Q4NVxcdXsyMTkxMX1cXHUzNzMyXFx1ezIxNkI4fVxcdTVFODNcXHU1MkQwXFx1NUI3NlxcdTY1ODhcXHU1QjdDXFx1ezI3QTBFfVxcdTQwMDRcXHU0ODVEXFx1ezIwMjA0fVxcdTVCRDVcXHU2MTYwXFx1ezIxQTM0fVxcdXsyNTlDQ31cXHV7MjA1QTV9XFx1NUJGM1xcdTVCOURcXHU0RDEwXFx1NUMwNVxcdXsyMUI0NH1cXHU1QzEzXFx1NzNDRVxcdTVDMTRcXHV7MjFDQTV9XFx1ezI2QjI4fVxcdTVDNDlcXHU0OEREXFx1NUM4NVxcdTVDRTlcXHU1Q0VGXFx1NUQ4QlxcdXsyMURGOX1cXHV7MjFFMzd9XFx1NUQxMFxcdTVEMThcXHU1RDQ2XFx1ezIxRUE0fVxcdTVDQkFcXHU1REQ3XFx1ODJGQ1xcdTM4MkRcXHV7MjQ5MDF9XFx1ezIyMDQ5fVxcdXsyMjE3M31cXHU4Mjg3XFx1MzgzNlxcdTNCQzJcXHU1RTJFXFx1NkE4QVxcdTVFNzVcXHU1RTdBXFx1ezI0NEJDfVxcdXsyMENEM31cXHU1M0E2XFx1NEVCN1xcdTVFRDBcXHU1M0E4XFx1ezIxNzcxfVxcdTVFMDlcXHU1RUY0XFx1ezI4NDgyfVwiXSxcbiAgICAgIFtcImZjNDBcIiwgXCJcXHU1RUY5XFx1NUVGQlxcdTM4QTBcXHU1RUZDXFx1NjgzRVxcdTk0MUJcXHU1RjBEXFx1ezIwMUMxfVxcdXsyRjg5NH1cXHUzQURFXFx1NDhBRVxcdXsyMTMzQX1cXHU1RjNBXFx1ezI2ODg4fVxcdXsyMjNEMH1cXHU1RjU4XFx1ezIyNDcxfVxcdTVGNjNcXHU5N0JEXFx1ezI2RTZFfVxcdTVGNzJcXHU5MzQwXFx1ezI4QTM2fVxcdTVGQTdcXHU1REI2XFx1M0Q1RlxcdXsyNTI1MH1cXHV7MjFGNkF9XFx1ezI3MEY4fVxcdXsyMjY2OH1cXHU5MUQ2XFx1ezIwMjlFfVxcdXsyOEEyOX1cXHU2MDMxXFx1NjY4NVxcdXsyMTg3N31cXHUzOTYzXFx1M0RDN1xcdTM2MzlcXHU1NzkwXFx1ezIyN0I0fVxcdTc5NzFcXHUzRTQwXFx1NjA5RVxcdTYwQTRcXHU2MEIzXFx1ezI0OTgyfVxcdXsyNDk4Rn1cXHV7MjdBNTN9XFx1NzRBNFxcdTUwRTFcXHU1QUEwXFx1NjE2NFxcdTg0MjRcXHU2MTQyXFx1ezJGOEE2fVxcdXsyNkVEMn1cXHU2MTgxXFx1NTFGNFxcdXsyMDY1Nn1cXHU2MTg3XFx1NUJBQVxcdXsyM0ZCN31cIl0sXG4gICAgICBbXCJmY2ExXCIsIFwiXFx1ezIyODVGfVxcdTYxRDNcXHV7MjhCOUR9XFx1ezI5OTVEfVxcdTYxRDBcXHUzOTMyXFx1ezIyOTgwfVxcdXsyMjhDMX1cXHU2MDIzXFx1NjE1Q1xcdTY1MUVcXHU2MzhCXFx1ezIwMTE4fVxcdTYyQzVcXHV7MjE3NzB9XFx1NjJENVxcdXsyMkUwRH1cXHU2MzZDXFx1ezI0OURGfVxcdTNBMTdcXHU2NDM4XFx1NjNGOFxcdXsyMTM4RX1cXHV7MjE3RkN9XFx1NjQ5MFxcdTZGOEFcXHV7MjJFMzZ9XFx1OTgxNFxcdXsyNDA4Q31cXHV7MjU3MUR9XFx1NjRFMVxcdTY0RTVcXHU5NDdCXFx1M0E2NlxcdTY0M0FcXHUzQTU3XFx1NjU0RFxcdTZGMTZcXHV7MjRBMjh9XFx1ezI0QTIzfVxcdTY1ODVcXHU2NTZEXFx1NjU1RlxcdXsyMzA3RX1cXHU2NUI1XFx1ezI0OTQwfVxcdTRCMzdcXHU2NUQxXFx1NDBEOFxcdXsyMTgyOX1cXHU2NUUwXFx1NjVFM1xcdTVGREZcXHV7MjM0MDB9XFx1NjYxOFxcdXsyMzFGN31cXHV7MjMxRjh9XFx1NjY0NFxcdXsyMzFBNH1cXHV7MjMxQTV9XFx1NjY0QlxcdXsyMEU3NX1cXHU2NjY3XFx1ezI1MUU2fVxcdTY2NzNcXHU2Njc0XFx1ezIxRTNEfVxcdXsyMzIzMX1cXHV7Mjg1RjR9XFx1ezIzMUM4fVxcdXsyNTMxM31cXHU3N0M1XFx1ezIyOEY3fVxcdTk5QTRcXHU2NzAyXFx1ezI0MzlDfVxcdXsyNEEyMX1cXHUzQjJCXFx1NjlGQVxcdXsyMzdDMn1cXHU2NzVFXFx1Njc2N1xcdTY3NjJcXHV7MjQxQ0R9XFx1ezI5MEVEfVxcdTY3RDdcXHU0NEU5XFx1NjgyMlxcdTZFNTBcXHU5MjNDXFx1NjgwMVxcdXsyMzNFNn1cXHV7MjZEQTB9XFx1Njg1RFwiXSxcbiAgICAgIFtcImZkNDBcIiwgXCJcXHV7MjM0NkZ9XFx1NjlFMVxcdTZBMEJcXHV7MjhBREZ9XFx1Njk3M1xcdTY4QzNcXHV7MjM1Q0R9XFx1NjkwMVxcdTY5MDBcXHUzRDMyXFx1M0EwMVxcdXsyMzYzQ31cXHUzQjgwXFx1NjdBQ1xcdTY5NjFcXHV7MjhBNEF9XFx1NDJGQ1xcdTY5MzZcXHU2OTk4XFx1M0JBMVxcdXsyMDNDOX1cXHU4MzYzXFx1NTA5MFxcdTY5RjlcXHV7MjM2NTl9XFx1ezIyMTJBfVxcdTZBNDVcXHV7MjM3MDN9XFx1NkE5RFxcdTNCRjNcXHU2N0IxXFx1NkFDOFxcdXsyOTE5Q31cXHUzQzBEXFx1NkIxRFxcdXsyMDkyM31cXHU2MERFXFx1NkIzNVxcdTZCNzRcXHV7MjI3Q0R9XFx1NkVCNVxcdXsyM0FEQn1cXHV7MjAzQjV9XFx1ezIxOTU4fVxcdTM3NDBcXHU1NDIxXFx1ezIzQjVBfVxcdTZCRTFcXHV7MjNFRkN9XFx1NkJEQ1xcdTZDMzdcXHV7MjI0OEJ9XFx1ezI0OEYxfVxcdXsyNkI1MX1cXHU2QzVBXFx1ODIyNlxcdTZDNzlcXHV7MjNEQkN9XFx1NDRDNVxcdXsyM0RCRH1cXHV7MjQxQTR9XFx1ezI0OTBDfVxcdXsyNDkwMH1cIl0sXG4gICAgICBbXCJmZGExXCIsIFwiXFx1ezIzQ0M5fVxcdTM2RTVcXHUzQ0VCXFx1ezIwRDMyfVxcdTlCODNcXHV7MjMxRjl9XFx1ezIyNDkxfVxcdTdGOEZcXHU2ODM3XFx1ezI2RDI1fVxcdXsyNkRBMX1cXHV7MjZERUJ9XFx1NkQ5NlxcdTZENUNcXHU2RTdDXFx1NkYwNFxcdXsyNDk3Rn1cXHV7MjQwODV9XFx1ezI2RTcyfVxcdTg1MzNcXHV7MjZGNzR9XFx1NTFDN1xcdTZDOUNcXHU2RTFEXFx1ODQyRVxcdXsyOEIyMX1cXHU2RTJGXFx1ezIzRTJGfVxcdTc0NTNcXHV7MjNGODJ9XFx1NzlDQ1xcdTZFNEZcXHU1QTkxXFx1ezIzMDRCfVxcdTZGRjhcXHUzNzBEXFx1NkY5RFxcdXsyM0UzMH1cXHU2RUZBXFx1ezIxNDk3fVxcdXsyNDAzRH1cXHU0NTU1XFx1OTNGMFxcdTZGNDRcXHU2RjVDXFx1M0Q0RVxcdTZGNzRcXHV7MjkxNzB9XFx1M0QzQlxcdTZGOUZcXHV7MjQxNDR9XFx1NkZEM1xcdXsyNDA5MX1cXHV7MjQxNTV9XFx1ezI0MDM5fVxcdXsyM0ZGMH1cXHV7MjNGQjR9XFx1ezI0MTNGfVxcdTUxREZcXHV7MjQxNTZ9XFx1ezI0MTU3fVxcdXsyNDE0MH1cXHV7MjYxRER9XFx1NzA0QlxcdTcwN0VcXHU3MEE3XFx1NzA4MVxcdTcwQ0NcXHU3MEQ1XFx1NzBENlxcdTcwREZcXHU0MTA0XFx1M0RFOFxcdTcxQjRcXHU3MTk2XFx1ezI0Mjc3fVxcdTcxMkJcXHU3MTQ1XFx1NUE4OFxcdTcxNEFcXHU3MTZFXFx1NUM5Q1xcdXsyNDM2NX1cXHU3MTRGXFx1OTM2MlxcdXsyNDJDMX1cXHU3MTJDXFx1ezI0NDVBfVxcdXsyNEEyN31cXHV7MjRBMjJ9XFx1NzFCQVxcdXsyOEJFOH1cXHU3MEJEXFx1NzIwRVwiXSxcbiAgICAgIFtcImZlNDBcIiwgXCJcXHU5NDQyXFx1NzIxNVxcdTU5MTFcXHU5NDQzXFx1NzIyNFxcdTkzNDFcXHV7MjU2MDV9XFx1NzIyRVxcdTcyNDBcXHV7MjQ5NzR9XFx1NjhCRFxcdTcyNTVcXHU3MjU3XFx1M0U1NVxcdXsyMzA0NH1cXHU2ODBEXFx1NkYzRFxcdTcyODJcXHU3MzJBXFx1NzMyQlxcdXsyNDgyM31cXHV7Mjg4MkJ9XFx1NDhFRFxcdXsyODgwNH1cXHU3MzI4XFx1NzMyRVxcdTczQ0ZcXHU3M0FBXFx1ezIwQzNBfVxcdXsyNkEyRX1cXHU3M0M5XFx1NzQ0OVxcdXsyNDFFMn1cXHV7MjE2RTd9XFx1ezI0QTI0fVxcdTY2MjNcXHUzNkM1XFx1ezI0OUI3fVxcdXsyNDk4RH1cXHV7MjQ5RkJ9XFx1NzNGN1xcdTc0MTVcXHU2OTAzXFx1ezI0QTI2fVxcdTc0MzlcXHV7MjA1QzN9XFx1M0VEN1xcdTc0NUNcXHV7MjI4QUR9XFx1NzQ2MFxcdXsyOEVCMn1cXHU3NDQ3XFx1NzNFNFxcdTc0NzZcXHU4M0I5XFx1NzQ2Q1xcdTM3MzBcXHU3NDc0XFx1OTNGMVxcdTZBMkNcXHU3NDgyXFx1NDk1M1xcdXsyNEE4Q31cIl0sXG4gICAgICBbXCJmZWExXCIsIFwiXFx1ezI0MTVGfVxcdXsyNEE3OX1cXHV7MjhCOEZ9XFx1NUI0NlxcdXsyOEMwM31cXHV7MjE4OUV9XFx1NzRDOFxcdXsyMTk4OH1cXHU3NTBFXFx1NzRFOVxcdTc1MUVcXHV7MjhFRDl9XFx1ezIxQTRCfVxcdTVCRDdcXHV7MjhFQUN9XFx1OTM4NVxcdTc1NERcXHU3NTRBXFx1NzU2N1xcdTc1NkVcXHV7MjRGODJ9XFx1M0YwNFxcdXsyNEQxM31cXHU3NThFXFx1NzQ1RFxcdTc1OUVcXHU3NUI0XFx1NzYwMlxcdTc2MkNcXHU3NjUxXFx1NzY0RlxcdTc2NkZcXHU3Njc2XFx1ezI2M0Y1fVxcdTc2OTBcXHU4MUVGXFx1MzdGOFxcdXsyNjkxMX1cXHV7MjY5MEV9XFx1NzZBMVxcdTc2QTVcXHU3NkI3XFx1NzZDQ1xcdXsyNkY5Rn1cXHU4NDYyXFx1ezI1MDlEfVxcdXsyNTE3RH1cXHV7MjFFMUN9XFx1NzcxRVxcdTc3MjZcXHU3NzQwXFx1NjRBRlxcdXsyNTIyMH1cXHU3NzU4XFx1ezIzMkFDfVxcdTc3QUZcXHV7Mjg5NjR9XFx1ezI4OTY4fVxcdXsyMTZDMX1cXHU3N0Y0XFx1NzgwOVxcdXsyMTM3Nn1cXHV7MjRBMTJ9XFx1NjhDQVxcdTc4QUZcXHU3OEM3XFx1NzhEM1xcdTk2QTVcXHU3OTJFXFx1ezI1NUUwfVxcdTc4RDdcXHU3OTM0XFx1NzhCMVxcdXsyNzYwQ31cXHU4RkI4XFx1ODg4NFxcdXsyOEIyQn1cXHV7MjYwODN9XFx1ezIyNjFDfVxcdTc5ODZcXHU4OTAwXFx1NjkwMlxcdTc5ODBcXHV7MjU4NTd9XFx1Nzk5RFxcdXsyN0IzOX1cXHU3OTNDXFx1NzlBOVxcdTZFMkFcXHV7MjcxMjZ9XFx1M0VBOFxcdTc5QzZcXHV7MjkxMER9XFx1NzlENFwiXVxuICAgIF07XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvYm9keS1wYXJzZXIvbm9kZV9tb2R1bGVzL2ljb252LWxpdGUvZW5jb2RpbmdzL2RiY3MtZGF0YS5qc1xudmFyIHJlcXVpcmVfZGJjc19kYXRhMiA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9ib2R5LXBhcnNlci9ub2RlX21vZHVsZXMvaWNvbnYtbGl0ZS9lbmNvZGluZ3MvZGJjcy1kYXRhLmpzXCIoZXhwb3J0czIsIG1vZHVsZTIpIHtcbiAgICBcInVzZSBzdHJpY3RcIjtcbiAgICBtb2R1bGUyLmV4cG9ydHMgPSB7XG4gICAgICAvLyA9PSBKYXBhbmVzZS9TaGlmdEpJUyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICAgICAvLyBBbGwgamFwYW5lc2UgZW5jb2RpbmdzIGFyZSBiYXNlZCBvbiBKSVMgWCBzZXQgb2Ygc3RhbmRhcmRzOlxuICAgICAgLy8gSklTIFggMDIwMSAtIFNpbmdsZS1ieXRlIGVuY29kaW5nIG9mIEFTQ0lJICsgXHUwMEE1ICsgS2FuYSBjaGFycyBhdCAweEExLTB4REYuXG4gICAgICAvLyBKSVMgWCAwMjA4IC0gTWFpbiBzZXQgb2YgNjg3OSBjaGFyYWN0ZXJzLCBwbGFjZWQgaW4gOTR4OTQgcGxhbmUsIHRvIGJlIGVuY29kZWQgYnkgMiBieXRlcy4gXG4gICAgICAvLyAgICAgICAgICAgICAgSGFzIHNldmVyYWwgdmFyaWF0aW9ucyBpbiAxOTc4LCAxOTgzLCAxOTkwIGFuZCAxOTk3LlxuICAgICAgLy8gSklTIFggMDIxMiAtIFN1cHBsZW1lbnRhcnkgcGxhbmUgb2YgNjA2NyBjaGFycyBpbiA5NHg5NCBwbGFuZS4gMTk5MC4gRWZmZWN0aXZlbHkgZGVhZC5cbiAgICAgIC8vIEpJUyBYIDAyMTMgLSBFeHRlbnNpb24gYW5kIG1vZGVybiByZXBsYWNlbWVudCBvZiAwMjA4IGFuZCAwMjEyLiBUb3RhbCBjaGFyczogMTEyMzMuXG4gICAgICAvLyAgICAgICAgICAgICAgMiBwbGFuZXMsIGZpcnN0IGlzIHN1cGVyc2V0IG9mIDAyMDgsIHNlY29uZCAtIHJldmlzZWQgMDIxMi5cbiAgICAgIC8vICAgICAgICAgICAgICBJbnRyb2R1Y2VkIGluIDIwMDAsIHJldmlzZWQgMjAwNC4gU29tZSBjaGFyYWN0ZXJzIGFyZSBpbiBVbmljb2RlIFBsYW5lIDIgKDB4Mnh4eHgpXG4gICAgICAvLyBCeXRlIGVuY29kaW5ncyBhcmU6XG4gICAgICAvLyAgKiBTaGlmdF9KSVM6IENvbXBhdGlibGUgd2l0aCAwMjAxLCB1c2VzIG5vdCBkZWZpbmVkIGNoYXJzIGluIHRvcCBoYWxmIGFzIGxlYWQgYnl0ZXMgZm9yIGRvdWJsZS1ieXRlXG4gICAgICAvLyAgICAgICAgICAgICAgIGVuY29kaW5nIG9mIDAyMDguIExlYWQgYnl0ZSByYW5nZXM6IDB4ODEtMHg5RiwgMHhFMC0weEVGOyBUcmFpbCBieXRlIHJhbmdlczogMHg0MC0weDdFLCAweDgwLTB4OUUsIDB4OUYtMHhGQy5cbiAgICAgIC8vICAgICAgICAgICAgICAgV2luZG93cyBDUDkzMiBpcyBhIHN1cGVyc2V0IG9mIFNoaWZ0X0pJUy4gU29tZSBjb21wYW5pZXMgYWRkZWQgbW9yZSBjaGFycywgbm90YWJseSBLRERJLlxuICAgICAgLy8gICogRVVDLUpQOiAgICBVcCB0byAzIGJ5dGVzIHBlciBjaGFyYWN0ZXIuIFVzZWQgbW9zdGx5IG9uICpuaXhlcy5cbiAgICAgIC8vICAgICAgICAgICAgICAgMHgwMC0weDdGICAgICAgIC0gbG93ZXIgcGFydCBvZiAwMjAxXG4gICAgICAvLyAgICAgICAgICAgICAgIDB4OEUsIDB4QTEtMHhERiAtIHVwcGVyIHBhcnQgb2YgMDIwMVxuICAgICAgLy8gICAgICAgICAgICAgICAoMHhBMS0weEZFKXgyICAgLSAwMjA4IHBsYW5lICg5NHg5NCkuXG4gICAgICAvLyAgICAgICAgICAgICAgIDB4OEYsICgweEExLTB4RkUpeDIgLSAwMjEyIHBsYW5lICg5NHg5NCkuXG4gICAgICAvLyAgKiBKSVMgWCAyMDg6IDctYml0LCBkaXJlY3QgZW5jb2Rpbmcgb2YgMDIwOC4gQnl0ZSByYW5nZXM6IDB4MjEtMHg3RSAoOTQgdmFsdWVzKS4gVW5jb21tb24uXG4gICAgICAvLyAgICAgICAgICAgICAgIFVzZWQgYXMtaXMgaW4gSVNPMjAyMiBmYW1pbHkuXG4gICAgICAvLyAgKiBJU08yMDIyLUpQOiBTdGF0ZWZ1bCBlbmNvZGluZywgd2l0aCBlc2NhcGUgc2VxdWVuY2VzIHRvIHN3aXRjaCBiZXR3ZWVuIEFTQ0lJLCBcbiAgICAgIC8vICAgICAgICAgICAgICAgIDAyMDEtMTk3NiBSb21hbiwgMDIwOC0xOTc4LCAwMjA4LTE5ODMuXG4gICAgICAvLyAgKiBJU08yMDIyLUpQLTE6IEFkZHMgZXNjIHNlcSBmb3IgMDIxMi0xOTkwLlxuICAgICAgLy8gICogSVNPMjAyMi1KUC0yOiBBZGRzIGVzYyBzZXEgZm9yIEdCMjMxMy0xOTgwLCBLU1gxMDAxLTE5OTIsIElTTzg4NTktMSwgSVNPODg1OS03LlxuICAgICAgLy8gICogSVNPMjAyMi1KUC0zOiBBZGRzIGVzYyBzZXEgZm9yIDAyMDEtMTk3NiBLYW5hIHNldCwgMDIxMy0yMDAwIFBsYW5lcyAxLCAyLlxuICAgICAgLy8gICogSVNPMjAyMi1KUC0yMDA0OiBBZGRzIDAyMTMtMjAwNCBQbGFuZSAxLlxuICAgICAgLy9cbiAgICAgIC8vIEFmdGVyIEpJUyBYIDAyMTMgYXBwZWFyZWQsIFNoaWZ0X0pJUy0yMDA0LCBFVUMtSklTWDAyMTMgYW5kIElTTzIwMjItSlAtMjAwNCBmb2xsb3dlZCwgd2l0aCBqdXN0IGNoYW5naW5nIHRoZSBwbGFuZXMuXG4gICAgICAvL1xuICAgICAgLy8gT3ZlcmFsbCwgaXQgc2VlbXMgdGhhdCBpdCdzIGEgbWVzcyA6KCBodHRwOi8vd3d3OC5wbGFsYS5vci5qcC90a3Vib3RhMS91bmljb2RlLXN5bWJvbHMtbWFwMi5odG1sXG4gICAgICBcInNoaWZ0amlzXCI6IHtcbiAgICAgICAgdHlwZTogXCJfZGJjc1wiLFxuICAgICAgICB0YWJsZTogZnVuY3Rpb24oKSB7XG4gICAgICAgICAgcmV0dXJuIHJlcXVpcmVfc2hpZnRqaXMyKCk7XG4gICAgICAgIH0sXG4gICAgICAgIGVuY29kZUFkZDogeyBcIlxceEE1XCI6IDkyLCBcIlxcdTIwM0VcIjogMTI2IH0sXG4gICAgICAgIGVuY29kZVNraXBWYWxzOiBbeyBmcm9tOiA2MDczNiwgdG86IDYzODA4IH1dXG4gICAgICB9LFxuICAgICAgXCJjc3NoaWZ0amlzXCI6IFwic2hpZnRqaXNcIixcbiAgICAgIFwibXNrYW5qaVwiOiBcInNoaWZ0amlzXCIsXG4gICAgICBcInNqaXNcIjogXCJzaGlmdGppc1wiLFxuICAgICAgXCJ3aW5kb3dzMzFqXCI6IFwic2hpZnRqaXNcIixcbiAgICAgIFwibXMzMWpcIjogXCJzaGlmdGppc1wiLFxuICAgICAgXCJ4c2ppc1wiOiBcInNoaWZ0amlzXCIsXG4gICAgICBcIndpbmRvd3M5MzJcIjogXCJzaGlmdGppc1wiLFxuICAgICAgXCJtczkzMlwiOiBcInNoaWZ0amlzXCIsXG4gICAgICBcIjkzMlwiOiBcInNoaWZ0amlzXCIsXG4gICAgICBcImNwOTMyXCI6IFwic2hpZnRqaXNcIixcbiAgICAgIFwiZXVjanBcIjoge1xuICAgICAgICB0eXBlOiBcIl9kYmNzXCIsXG4gICAgICAgIHRhYmxlOiBmdW5jdGlvbigpIHtcbiAgICAgICAgICByZXR1cm4gcmVxdWlyZV9ldWNqcDIoKTtcbiAgICAgICAgfSxcbiAgICAgICAgZW5jb2RlQWRkOiB7IFwiXFx4QTVcIjogOTIsIFwiXFx1MjAzRVwiOiAxMjYgfVxuICAgICAgfSxcbiAgICAgIC8vIFRPRE86IEtEREkgZXh0ZW5zaW9uIHRvIFNoaWZ0X0pJU1xuICAgICAgLy8gVE9ETzogSUJNIENDU0lEIDk0MiA9IENQOTMyLCBidXQgRjAtRjkgY3VzdG9tIGNoYXJzIGFuZCBvdGhlciBjaGFyIGNoYW5nZXMuXG4gICAgICAvLyBUT0RPOiBJQk0gQ0NTSUQgOTQzID0gU2hpZnRfSklTID0gQ1A5MzIgd2l0aCBvcmlnaW5hbCBTaGlmdF9KSVMgbG93ZXIgMTI4IGNoYXJzLlxuICAgICAgLy8gPT0gQ2hpbmVzZS9HQksgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgICAgLy8gaHR0cDovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9HQktcbiAgICAgIC8vIFdlIG1vc3RseSBpbXBsZW1lbnQgVzNDIHJlY29tbWVuZGF0aW9uOiBodHRwczovL3d3dy53My5vcmcvVFIvZW5jb2RpbmcvI2diay1lbmNvZGVyXG4gICAgICAvLyBPbGRlc3QgR0IyMzEyICgxOTgxLCB+NzYwMCBjaGFycykgaXMgYSBzdWJzZXQgb2YgQ1A5MzZcbiAgICAgIFwiZ2IyMzEyXCI6IFwiY3A5MzZcIixcbiAgICAgIFwiZ2IyMzEyODBcIjogXCJjcDkzNlwiLFxuICAgICAgXCJnYjIzMTIxOTgwXCI6IFwiY3A5MzZcIixcbiAgICAgIFwiY3NnYjIzMTJcIjogXCJjcDkzNlwiLFxuICAgICAgXCJjc2lzbzU4Z2IyMzEyODBcIjogXCJjcDkzNlwiLFxuICAgICAgXCJldWNjblwiOiBcImNwOTM2XCIsXG4gICAgICAvLyBNaWNyb3NvZnQncyBDUDkzNiBpcyBhIHN1YnNldCBhbmQgYXBwcm94aW1hdGlvbiBvZiBHQksuXG4gICAgICBcIndpbmRvd3M5MzZcIjogXCJjcDkzNlwiLFxuICAgICAgXCJtczkzNlwiOiBcImNwOTM2XCIsXG4gICAgICBcIjkzNlwiOiBcImNwOTM2XCIsXG4gICAgICBcImNwOTM2XCI6IHtcbiAgICAgICAgdHlwZTogXCJfZGJjc1wiLFxuICAgICAgICB0YWJsZTogZnVuY3Rpb24oKSB7XG4gICAgICAgICAgcmV0dXJuIHJlcXVpcmVfY3A5MzYyKCk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICAvLyBHQksgKH4yMjAwMCBjaGFycykgaXMgYW4gZXh0ZW5zaW9uIG9mIENQOTM2IHRoYXQgYWRkZWQgdXNlci1tYXBwZWQgY2hhcnMgYW5kIHNvbWUgb3RoZXIuXG4gICAgICBcImdia1wiOiB7XG4gICAgICAgIHR5cGU6IFwiX2RiY3NcIixcbiAgICAgICAgdGFibGU6IGZ1bmN0aW9uKCkge1xuICAgICAgICAgIHJldHVybiByZXF1aXJlX2NwOTM2MigpLmNvbmNhdChyZXF1aXJlX2dia19hZGRlZDIoKSk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcInhnYmtcIjogXCJnYmtcIixcbiAgICAgIFwiaXNvaXI1OFwiOiBcImdia1wiLFxuICAgICAgLy8gR0IxODAzMCBpcyBhbiBhbGdvcml0aG1pYyBleHRlbnNpb24gb2YgR0JLLlxuICAgICAgLy8gTWFpbiBzb3VyY2U6IGh0dHBzOi8vd3d3LnczLm9yZy9UUi9lbmNvZGluZy8jZ2JrLWVuY29kZXJcbiAgICAgIC8vIGh0dHA6Ly9pY3UtcHJvamVjdC5vcmcvZG9jcy9wYXBlcnMvZ2IxODAzMC5odG1sXG4gICAgICAvLyBodHRwOi8vc291cmNlLmljdS1wcm9qZWN0Lm9yZy9yZXBvcy9pY3UvZGF0YS90cnVuay9jaGFyc2V0L2RhdGEveG1sL2diLTE4MDMwLTIwMDAueG1sXG4gICAgICAvLyBodHRwOi8vd3d3LmtobmdhaS5jb20vY2hpbmVzZS9jaGFybWFwL3RibGdiay5waHA/cGFnZT0wXG4gICAgICBcImdiMTgwMzBcIjoge1xuICAgICAgICB0eXBlOiBcIl9kYmNzXCIsXG4gICAgICAgIHRhYmxlOiBmdW5jdGlvbigpIHtcbiAgICAgICAgICByZXR1cm4gcmVxdWlyZV9jcDkzNjIoKS5jb25jYXQocmVxdWlyZV9nYmtfYWRkZWQyKCkpO1xuICAgICAgICB9LFxuICAgICAgICBnYjE4MDMwOiBmdW5jdGlvbigpIHtcbiAgICAgICAgICByZXR1cm4gcmVxdWlyZV9nYjE4MDMwX3JhbmdlczIoKTtcbiAgICAgICAgfSxcbiAgICAgICAgZW5jb2RlU2tpcFZhbHM6IFsxMjhdLFxuICAgICAgICBlbmNvZGVBZGQ6IHsgXCJcXHUyMEFDXCI6IDQxNjk5IH1cbiAgICAgIH0sXG4gICAgICBcImNoaW5lc2VcIjogXCJnYjE4MDMwXCIsXG4gICAgICAvLyA9PSBLb3JlYW4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICAgICAvLyBFVUMtS1IsIEtTX0NfNTYwMSBhbmQgS1MgWCAxMDAxIGFyZSBleGFjdGx5IHRoZSBzYW1lLlxuICAgICAgXCJ3aW5kb3dzOTQ5XCI6IFwiY3A5NDlcIixcbiAgICAgIFwibXM5NDlcIjogXCJjcDk0OVwiLFxuICAgICAgXCI5NDlcIjogXCJjcDk0OVwiLFxuICAgICAgXCJjcDk0OVwiOiB7XG4gICAgICAgIHR5cGU6IFwiX2RiY3NcIixcbiAgICAgICAgdGFibGU6IGZ1bmN0aW9uKCkge1xuICAgICAgICAgIHJldHVybiByZXF1aXJlX2NwOTQ5MigpO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJjc2V1Y2tyXCI6IFwiY3A5NDlcIixcbiAgICAgIFwiY3Nrc2M1NjAxMTk4N1wiOiBcImNwOTQ5XCIsXG4gICAgICBcImV1Y2tyXCI6IFwiY3A5NDlcIixcbiAgICAgIFwiaXNvaXIxNDlcIjogXCJjcDk0OVwiLFxuICAgICAgXCJrb3JlYW5cIjogXCJjcDk0OVwiLFxuICAgICAgXCJrc2M1NjAxMTk4N1wiOiBcImNwOTQ5XCIsXG4gICAgICBcImtzYzU2MDExOTg5XCI6IFwiY3A5NDlcIixcbiAgICAgIFwia3NjNTYwMVwiOiBcImNwOTQ5XCIsXG4gICAgICAvLyA9PSBCaWc1L1RhaXdhbi9Ib25nIEtvbmcgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICAgICAvLyBUaGVyZSBhcmUgbG90cyBvZiB0YWJsZXMgZm9yIEJpZzUgYW5kIGNwOTUwLiBQbGVhc2Ugc2VlIHRoZSBmb2xsb3dpbmcgbGlua3MgZm9yIGhpc3Rvcnk6XG4gICAgICAvLyBodHRwOi8vbW96dHcub3JnL2RvY3MvYmlnNS8gIGh0dHA6Ly93d3cuaGFpYmxlLmRlL2JydW5vL2NoYXJzZXRzL2NvbnZlcnNpb24tdGFibGVzL0JpZzUuaHRtbFxuICAgICAgLy8gVmFyaWF0aW9ucywgaW4gcm91Z2hseSBudW1iZXIgb2YgZGVmaW5lZCBjaGFyczpcbiAgICAgIC8vICAqIFdpbmRvd3MgQ1AgOTUwOiBNaWNyb3NvZnQgdmFyaWFudCBvZiBCaWc1LiBDYW5vbmljYWw6IGh0dHA6Ly93d3cudW5pY29kZS5vcmcvUHVibGljL01BUFBJTkdTL1ZFTkRPUlMvTUlDU0ZUL1dJTkRPV1MvQ1A5NTAuVFhUXG4gICAgICAvLyAgKiBXaW5kb3dzIENQIDk1MTogTWljcm9zb2Z0IHZhcmlhbnQgb2YgQmlnNS1IS1NDUy0yMDAxLiBTZWVtcyB0byBiZSBuZXZlciBwdWJsaWMuIGh0dHA6Ly9tZS5hYmVsY2hldW5nLm9yZy9hcnRpY2xlcy9yZXNlYXJjaC93aGF0LWlzLWNwOTUxL1xuICAgICAgLy8gICogQmlnNS0yMDAzIChUYWl3YW4gc3RhbmRhcmQpIGFsbW9zdCBzdXBlcnNldCBvZiBjcDk1MC5cbiAgICAgIC8vICAqIFVuaWNvZGUtYXQtb24gKFVBTykgLyBNb3ppbGxhIDEuOC4gRmFsbGluZyBvdXQgb2YgdXNlIG9uIHRoZSBXZWIuIE5vdCBzdXBwb3J0ZWQgYnkgb3RoZXIgYnJvd3NlcnMuXG4gICAgICAvLyAgKiBCaWc1LUhLU0NTICgtMjAwMSwgLTIwMDQsIC0yMDA4KS4gSG9uZyBLb25nIHN0YW5kYXJkLiBcbiAgICAgIC8vICAgIG1hbnkgdW5pY29kZSBjb2RlIHBvaW50cyBtb3ZlZCBmcm9tIFBVQSB0byBTdXBwbGVtZW50YXJ5IHBsYW5lIChVKzJYWFhYKSBvdmVyIHRoZSB5ZWFycy5cbiAgICAgIC8vICAgIFBsdXMsIGl0IGhhcyA0IGNvbWJpbmluZyBzZXF1ZW5jZXMuXG4gICAgICAvLyAgICBTZWVtcyB0aGF0IE1vemlsbGEgcmVmdXNlZCB0byBzdXBwb3J0IGl0IGZvciAxMCB5cnMuIGh0dHBzOi8vYnVnemlsbGEubW96aWxsYS5vcmcvc2hvd19idWcuY2dpP2lkPTE2MjQzMSBodHRwczovL2J1Z3ppbGxhLm1vemlsbGEub3JnL3Nob3dfYnVnLmNnaT9pZD0zMTAyOTlcbiAgICAgIC8vICAgIGJlY2F1c2UgYmlnNS1oa3NjcyBpcyB0aGUgb25seSBlbmNvZGluZyB0byBpbmNsdWRlIGFzdHJhbCBjaGFyYWN0ZXJzIGluIG5vbi1hbGdvcml0aG1pYyB3YXkuXG4gICAgICAvLyAgICBJbXBsZW1lbnRhdGlvbnMgYXJlIG5vdCBjb25zaXN0ZW50IHdpdGhpbiBicm93c2Vyczsgc29tZXRpbWVzIGxhYmVsZWQgYXMganVzdCBiaWc1LlxuICAgICAgLy8gICAgTVMgSW50ZXJuZXQgRXhwbG9yZXIgc3dpdGNoZXMgZnJvbSBiaWc1IHRvIGJpZzUtaGtzY3Mgd2hlbiBhIHBhdGNoIGFwcGxpZWQuXG4gICAgICAvLyAgICBHcmVhdCBkaXNjdXNzaW9uICYgcmVjYXAgb2Ygd2hhdCdzIGdvaW5nIG9uIGh0dHBzOi8vYnVnemlsbGEubW96aWxsYS5vcmcvc2hvd19idWcuY2dpP2lkPTkxMjQ3MCNjMzFcbiAgICAgIC8vICAgIEluIHRoZSBlbmNvZGVyLCBpdCBtaWdodCBtYWtlIHNlbnNlIHRvIHN1cHBvcnQgZW5jb2Rpbmcgb2xkIFBVQSBtYXBwaW5ncyB0byBCaWc1IGJ5dGVzIHNlcS1zLlxuICAgICAgLy8gICAgT2ZmaWNpYWwgc3BlYzogaHR0cDovL3d3dy5vZ2Npby5nb3YuaGsvZW4vYnVzaW5lc3MvdGVjaF9wcm9tb3Rpb24vY2NsaS90ZXJtcy9kb2MvMjAwM2NtcF8yMDA4LnR4dFxuICAgICAgLy8gICAgICAgICAgICAgICAgICAgaHR0cDovL3d3dy5vZ2Npby5nb3YuaGsvdGMvYnVzaW5lc3MvdGVjaF9wcm9tb3Rpb24vY2NsaS90ZXJtcy9kb2MvaGtzY3MtMjAwOC1iaWc1LWlzby50eHRcbiAgICAgIC8vIFxuICAgICAgLy8gQ3VycmVudCB1bmRlcnN0YW5kaW5nIG9mIGhvdyB0byBkZWFsIHdpdGggQmlnNSgtSEtTQ1MpIGlzIGluIHRoZSBFbmNvZGluZyBTdGFuZGFyZCwgaHR0cDovL2VuY29kaW5nLnNwZWMud2hhdHdnLm9yZy8jYmlnNS1lbmNvZGVyXG4gICAgICAvLyBVbmljb2RlIG1hcHBpbmcgKGh0dHA6Ly93d3cudW5pY29kZS5vcmcvUHVibGljL01BUFBJTkdTL09CU09MRVRFL0VBU1RBU0lBL09USEVSL0JJRzUuVFhUKSBpcyBzYWlkIHRvIGJlIHdyb25nLlxuICAgICAgXCJ3aW5kb3dzOTUwXCI6IFwiY3A5NTBcIixcbiAgICAgIFwibXM5NTBcIjogXCJjcDk1MFwiLFxuICAgICAgXCI5NTBcIjogXCJjcDk1MFwiLFxuICAgICAgXCJjcDk1MFwiOiB7XG4gICAgICAgIHR5cGU6IFwiX2RiY3NcIixcbiAgICAgICAgdGFibGU6IGZ1bmN0aW9uKCkge1xuICAgICAgICAgIHJldHVybiByZXF1aXJlX2NwOTUwMigpO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgLy8gQmlnNSBoYXMgbWFueSB2YXJpYXRpb25zIGFuZCBpcyBhbiBleHRlbnNpb24gb2YgY3A5NTAuIFdlIHVzZSBFbmNvZGluZyBTdGFuZGFyZCdzIGFzIGEgY29uc2Vuc3VzLlxuICAgICAgXCJiaWc1XCI6IFwiYmlnNWhrc2NzXCIsXG4gICAgICBcImJpZzVoa3Njc1wiOiB7XG4gICAgICAgIHR5cGU6IFwiX2RiY3NcIixcbiAgICAgICAgdGFibGU6IGZ1bmN0aW9uKCkge1xuICAgICAgICAgIHJldHVybiByZXF1aXJlX2NwOTUwMigpLmNvbmNhdChyZXF1aXJlX2JpZzVfYWRkZWQyKCkpO1xuICAgICAgICB9LFxuICAgICAgICBlbmNvZGVTa2lwVmFsczogW1xuICAgICAgICAgIC8vIEFsdGhvdWdoIEVuY29kaW5nIFN0YW5kYXJkIHNheXMgd2Ugc2hvdWxkIGF2b2lkIGVuY29kaW5nIHRvIEhLU0NTIGFyZWEgKFNlZSBTdGVwIDEgb2ZcbiAgICAgICAgICAvLyBodHRwczovL2VuY29kaW5nLnNwZWMud2hhdHdnLm9yZy8jaW5kZXgtYmlnNS1wb2ludGVyKSwgd2Ugc3RpbGwgZG8gaXQgdG8gaW5jcmVhc2UgY29tcGF0aWJpbGl0eSB3aXRoIElDVS5cbiAgICAgICAgICAvLyBCdXQgaWYgYSBzaW5nbGUgdW5pY29kZSBwb2ludCBjYW4gYmUgZW5jb2RlZCBib3RoIGFzIEhLU0NTIGFuZCByZWd1bGFyIEJpZzUsIHdlIHByZWZlciB0aGUgbGF0dGVyLlxuICAgICAgICAgIDM2NDU3LFxuICAgICAgICAgIDM2NDYzLFxuICAgICAgICAgIDM2NDc4LFxuICAgICAgICAgIDM2NTIzLFxuICAgICAgICAgIDM2NTMyLFxuICAgICAgICAgIDM2NTU3LFxuICAgICAgICAgIDM2NTYwLFxuICAgICAgICAgIDM2Njk1LFxuICAgICAgICAgIDM2NzEzLFxuICAgICAgICAgIDM2NzE4LFxuICAgICAgICAgIDM2ODExLFxuICAgICAgICAgIDM2ODYyLFxuICAgICAgICAgIDM2OTczLFxuICAgICAgICAgIDM2OTg2LFxuICAgICAgICAgIDM3MDYwLFxuICAgICAgICAgIDM3MDg0LFxuICAgICAgICAgIDM3MTA1LFxuICAgICAgICAgIDM3MzExLFxuICAgICAgICAgIDM3NTUxLFxuICAgICAgICAgIDM3NTUyLFxuICAgICAgICAgIDM3NTUzLFxuICAgICAgICAgIDM3NTU0LFxuICAgICAgICAgIDM3NTg1LFxuICAgICAgICAgIDM3OTU5LFxuICAgICAgICAgIDM4MDkwLFxuICAgICAgICAgIDM4MzYxLFxuICAgICAgICAgIDM4NjUyLFxuICAgICAgICAgIDM5Mjg1LFxuICAgICAgICAgIDM5Nzk4LFxuICAgICAgICAgIDM5ODAwLFxuICAgICAgICAgIDM5ODAzLFxuICAgICAgICAgIDM5ODc4LFxuICAgICAgICAgIDM5OTAyLFxuICAgICAgICAgIDM5OTE2LFxuICAgICAgICAgIDM5OTI2LFxuICAgICAgICAgIDQwMDAyLFxuICAgICAgICAgIDQwMDE5LFxuICAgICAgICAgIDQwMDM0LFxuICAgICAgICAgIDQwMDQwLFxuICAgICAgICAgIDQwMDQzLFxuICAgICAgICAgIDQwMDU1LFxuICAgICAgICAgIDQwMTI0LFxuICAgICAgICAgIDQwMTI1LFxuICAgICAgICAgIDQwMTQ0LFxuICAgICAgICAgIDQwMjc5LFxuICAgICAgICAgIDQwMjgyLFxuICAgICAgICAgIDQwMzg4LFxuICAgICAgICAgIDQwNDMxLFxuICAgICAgICAgIDQwNDQzLFxuICAgICAgICAgIDQwNjE3LFxuICAgICAgICAgIDQwNjg3LFxuICAgICAgICAgIDQwNzAxLFxuICAgICAgICAgIDQwODAwLFxuICAgICAgICAgIDQwOTA3LFxuICAgICAgICAgIDQxMDc5LFxuICAgICAgICAgIDQxMTgwLFxuICAgICAgICAgIDQxMTgzLFxuICAgICAgICAgIDM2ODEyLFxuICAgICAgICAgIDM3NTc2LFxuICAgICAgICAgIDM4NDY4LFxuICAgICAgICAgIDM4NjM3LFxuICAgICAgICAgIC8vIFN0ZXAgMiBvZiBodHRwczovL2VuY29kaW5nLnNwZWMud2hhdHdnLm9yZy8jaW5kZXgtYmlnNS1wb2ludGVyOiBVc2UgbGFzdCBwb2ludGVyIGZvciBVKzI1NTAsIFUrMjU1RSwgVSsyNTYxLCBVKzI1NkEsIFUrNTM0MSwgb3IgVSs1MzQ1XG4gICAgICAgICAgNDE2MzYsXG4gICAgICAgICAgNDE2MzcsXG4gICAgICAgICAgNDE2MzksXG4gICAgICAgICAgNDE2MzgsXG4gICAgICAgICAgNDE2NzYsXG4gICAgICAgICAgNDE2NzhcbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIFwiY25iaWc1XCI6IFwiYmlnNWhrc2NzXCIsXG4gICAgICBcImNzYmlnNVwiOiBcImJpZzVoa3Njc1wiLFxuICAgICAgXCJ4eGJpZzVcIjogXCJiaWc1aGtzY3NcIlxuICAgIH07XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvYm9keS1wYXJzZXIvbm9kZV9tb2R1bGVzL2ljb252LWxpdGUvZW5jb2RpbmdzL2luZGV4LmpzXG52YXIgcmVxdWlyZV9lbmNvZGluZ3MyID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL2JvZHktcGFyc2VyL25vZGVfbW9kdWxlcy9pY29udi1saXRlL2VuY29kaW5ncy9pbmRleC5qc1wiKGV4cG9ydHMyLCBtb2R1bGUyKSB7XG4gICAgXCJ1c2Ugc3RyaWN0XCI7XG4gICAgdmFyIG1vZHVsZXMgPSBbXG4gICAgICByZXF1aXJlX2ludGVybmFsMigpLFxuICAgICAgcmVxdWlyZV91dGYzMjIoKSxcbiAgICAgIHJlcXVpcmVfdXRmMTYyKCksXG4gICAgICByZXF1aXJlX3V0ZjcyKCksXG4gICAgICByZXF1aXJlX3NiY3NfY29kZWMyKCksXG4gICAgICByZXF1aXJlX3NiY3NfZGF0YTIoKSxcbiAgICAgIHJlcXVpcmVfc2Jjc19kYXRhX2dlbmVyYXRlZDIoKSxcbiAgICAgIHJlcXVpcmVfZGJjc19jb2RlYzIoKSxcbiAgICAgIHJlcXVpcmVfZGJjc19kYXRhMigpXG4gICAgXTtcbiAgICBmb3IgKGkgPSAwOyBpIDwgbW9kdWxlcy5sZW5ndGg7IGkrKykge1xuICAgICAgbW9kdWxlMiA9IG1vZHVsZXNbaV07XG4gICAgICBmb3IgKGVuYyBpbiBtb2R1bGUyKVxuICAgICAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG1vZHVsZTIsIGVuYykpXG4gICAgICAgICAgZXhwb3J0czJbZW5jXSA9IG1vZHVsZTJbZW5jXTtcbiAgICB9XG4gICAgdmFyIG1vZHVsZTI7XG4gICAgdmFyIGVuYztcbiAgICB2YXIgaTtcbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9ib2R5LXBhcnNlci9ub2RlX21vZHVsZXMvaWNvbnYtbGl0ZS9saWIvc3RyZWFtcy5qc1xudmFyIHJlcXVpcmVfc3RyZWFtczIgPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvYm9keS1wYXJzZXIvbm9kZV9tb2R1bGVzL2ljb252LWxpdGUvbGliL3N0cmVhbXMuanNcIihleHBvcnRzMiwgbW9kdWxlMikge1xuICAgIFwidXNlIHN0cmljdFwiO1xuICAgIHZhciBCdWZmZXIyID0gcmVxdWlyZV9zYWZlcigpLkJ1ZmZlcjtcbiAgICBtb2R1bGUyLmV4cG9ydHMgPSBmdW5jdGlvbihzdHJlYW1fbW9kdWxlKSB7XG4gICAgICB2YXIgVHJhbnNmb3JtID0gc3RyZWFtX21vZHVsZS5UcmFuc2Zvcm07XG4gICAgICBmdW5jdGlvbiBJY29udkxpdGVFbmNvZGVyU3RyZWFtKGNvbnYsIG9wdGlvbnMpIHtcbiAgICAgICAgdGhpcy5jb252ID0gY29udjtcbiAgICAgICAgb3B0aW9ucyA9IG9wdGlvbnMgfHwge307XG4gICAgICAgIG9wdGlvbnMuZGVjb2RlU3RyaW5ncyA9IGZhbHNlO1xuICAgICAgICBUcmFuc2Zvcm0uY2FsbCh0aGlzLCBvcHRpb25zKTtcbiAgICAgIH1cbiAgICAgIEljb252TGl0ZUVuY29kZXJTdHJlYW0ucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShUcmFuc2Zvcm0ucHJvdG90eXBlLCB7XG4gICAgICAgIGNvbnN0cnVjdG9yOiB7IHZhbHVlOiBJY29udkxpdGVFbmNvZGVyU3RyZWFtIH1cbiAgICAgIH0pO1xuICAgICAgSWNvbnZMaXRlRW5jb2RlclN0cmVhbS5wcm90b3R5cGUuX3RyYW5zZm9ybSA9IGZ1bmN0aW9uKGNodW5rLCBlbmNvZGluZywgZG9uZSkge1xuICAgICAgICBpZiAodHlwZW9mIGNodW5rICE9IFwic3RyaW5nXCIpXG4gICAgICAgICAgcmV0dXJuIGRvbmUobmV3IEVycm9yKFwiSWNvbnYgZW5jb2Rpbmcgc3RyZWFtIG5lZWRzIHN0cmluZ3MgYXMgaXRzIGlucHV0LlwiKSk7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgdmFyIHJlcyA9IHRoaXMuY29udi53cml0ZShjaHVuayk7XG4gICAgICAgICAgaWYgKHJlcyAmJiByZXMubGVuZ3RoKSB0aGlzLnB1c2gocmVzKTtcbiAgICAgICAgICBkb25lKCk7XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICBkb25lKGUpO1xuICAgICAgICB9XG4gICAgICB9O1xuICAgICAgSWNvbnZMaXRlRW5jb2RlclN0cmVhbS5wcm90b3R5cGUuX2ZsdXNoID0gZnVuY3Rpb24oZG9uZSkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIHZhciByZXMgPSB0aGlzLmNvbnYuZW5kKCk7XG4gICAgICAgICAgaWYgKHJlcyAmJiByZXMubGVuZ3RoKSB0aGlzLnB1c2gocmVzKTtcbiAgICAgICAgICBkb25lKCk7XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICBkb25lKGUpO1xuICAgICAgICB9XG4gICAgICB9O1xuICAgICAgSWNvbnZMaXRlRW5jb2RlclN0cmVhbS5wcm90b3R5cGUuY29sbGVjdCA9IGZ1bmN0aW9uKGNiKSB7XG4gICAgICAgIHZhciBjaHVua3MgPSBbXTtcbiAgICAgICAgdGhpcy5vbihcImVycm9yXCIsIGNiKTtcbiAgICAgICAgdGhpcy5vbihcImRhdGFcIiwgZnVuY3Rpb24oY2h1bmspIHtcbiAgICAgICAgICBjaHVua3MucHVzaChjaHVuayk7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLm9uKFwiZW5kXCIsIGZ1bmN0aW9uKCkge1xuICAgICAgICAgIGNiKG51bGwsIEJ1ZmZlcjIuY29uY2F0KGNodW5rcykpO1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICB9O1xuICAgICAgZnVuY3Rpb24gSWNvbnZMaXRlRGVjb2RlclN0cmVhbShjb252LCBvcHRpb25zKSB7XG4gICAgICAgIHRoaXMuY29udiA9IGNvbnY7XG4gICAgICAgIG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9O1xuICAgICAgICBvcHRpb25zLmVuY29kaW5nID0gdGhpcy5lbmNvZGluZyA9IFwidXRmOFwiO1xuICAgICAgICBUcmFuc2Zvcm0uY2FsbCh0aGlzLCBvcHRpb25zKTtcbiAgICAgIH1cbiAgICAgIEljb252TGl0ZURlY29kZXJTdHJlYW0ucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShUcmFuc2Zvcm0ucHJvdG90eXBlLCB7XG4gICAgICAgIGNvbnN0cnVjdG9yOiB7IHZhbHVlOiBJY29udkxpdGVEZWNvZGVyU3RyZWFtIH1cbiAgICAgIH0pO1xuICAgICAgSWNvbnZMaXRlRGVjb2RlclN0cmVhbS5wcm90b3R5cGUuX3RyYW5zZm9ybSA9IGZ1bmN0aW9uKGNodW5rLCBlbmNvZGluZywgZG9uZSkge1xuICAgICAgICBpZiAoIUJ1ZmZlcjIuaXNCdWZmZXIoY2h1bmspICYmICEoY2h1bmsgaW5zdGFuY2VvZiBVaW50OEFycmF5KSlcbiAgICAgICAgICByZXR1cm4gZG9uZShuZXcgRXJyb3IoXCJJY29udiBkZWNvZGluZyBzdHJlYW0gbmVlZHMgYnVmZmVycyBhcyBpdHMgaW5wdXQuXCIpKTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICB2YXIgcmVzID0gdGhpcy5jb252LndyaXRlKGNodW5rKTtcbiAgICAgICAgICBpZiAocmVzICYmIHJlcy5sZW5ndGgpIHRoaXMucHVzaChyZXMsIHRoaXMuZW5jb2RpbmcpO1xuICAgICAgICAgIGRvbmUoKTtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgIGRvbmUoZSk7XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgICBJY29udkxpdGVEZWNvZGVyU3RyZWFtLnByb3RvdHlwZS5fZmx1c2ggPSBmdW5jdGlvbihkb25lKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgdmFyIHJlcyA9IHRoaXMuY29udi5lbmQoKTtcbiAgICAgICAgICBpZiAocmVzICYmIHJlcy5sZW5ndGgpIHRoaXMucHVzaChyZXMsIHRoaXMuZW5jb2RpbmcpO1xuICAgICAgICAgIGRvbmUoKTtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgIGRvbmUoZSk7XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgICBJY29udkxpdGVEZWNvZGVyU3RyZWFtLnByb3RvdHlwZS5jb2xsZWN0ID0gZnVuY3Rpb24oY2IpIHtcbiAgICAgICAgdmFyIHJlcyA9IFwiXCI7XG4gICAgICAgIHRoaXMub24oXCJlcnJvclwiLCBjYik7XG4gICAgICAgIHRoaXMub24oXCJkYXRhXCIsIGZ1bmN0aW9uKGNodW5rKSB7XG4gICAgICAgICAgcmVzICs9IGNodW5rO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5vbihcImVuZFwiLCBmdW5jdGlvbigpIHtcbiAgICAgICAgICBjYihudWxsLCByZXMpO1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICB9O1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgSWNvbnZMaXRlRW5jb2RlclN0cmVhbSxcbiAgICAgICAgSWNvbnZMaXRlRGVjb2RlclN0cmVhbVxuICAgICAgfTtcbiAgICB9O1xuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL2JvZHktcGFyc2VyL25vZGVfbW9kdWxlcy9pY29udi1saXRlL2xpYi9pbmRleC5qc1xudmFyIHJlcXVpcmVfbGliMiA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9ib2R5LXBhcnNlci9ub2RlX21vZHVsZXMvaWNvbnYtbGl0ZS9saWIvaW5kZXguanNcIihleHBvcnRzMiwgbW9kdWxlMikge1xuICAgIFwidXNlIHN0cmljdFwiO1xuICAgIHZhciBCdWZmZXIyID0gcmVxdWlyZV9zYWZlcigpLkJ1ZmZlcjtcbiAgICB2YXIgYm9tSGFuZGxpbmcgPSByZXF1aXJlX2JvbV9oYW5kbGluZzIoKTtcbiAgICB2YXIgaWNvbnYgPSBtb2R1bGUyLmV4cG9ydHM7XG4gICAgaWNvbnYuZW5jb2RpbmdzID0gbnVsbDtcbiAgICBpY29udi5kZWZhdWx0Q2hhclVuaWNvZGUgPSBcIlxcdUZGRkRcIjtcbiAgICBpY29udi5kZWZhdWx0Q2hhclNpbmdsZUJ5dGUgPSBcIj9cIjtcbiAgICBpY29udi5lbmNvZGUgPSBmdW5jdGlvbiBlbmNvZGUoc3RyLCBlbmNvZGluZywgb3B0aW9ucykge1xuICAgICAgc3RyID0gXCJcIiArIChzdHIgfHwgXCJcIik7XG4gICAgICB2YXIgZW5jb2RlciA9IGljb252LmdldEVuY29kZXIoZW5jb2RpbmcsIG9wdGlvbnMpO1xuICAgICAgdmFyIHJlcyA9IGVuY29kZXIud3JpdGUoc3RyKTtcbiAgICAgIHZhciB0cmFpbCA9IGVuY29kZXIuZW5kKCk7XG4gICAgICByZXR1cm4gdHJhaWwgJiYgdHJhaWwubGVuZ3RoID4gMCA/IEJ1ZmZlcjIuY29uY2F0KFtyZXMsIHRyYWlsXSkgOiByZXM7XG4gICAgfTtcbiAgICBpY29udi5kZWNvZGUgPSBmdW5jdGlvbiBkZWNvZGUoYnVmLCBlbmNvZGluZywgb3B0aW9ucykge1xuICAgICAgaWYgKHR5cGVvZiBidWYgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgaWYgKCFpY29udi5za2lwRGVjb2RlV2FybmluZykge1xuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXCJJY29udi1saXRlIHdhcm5pbmc6IGRlY29kZSgpLWluZyBzdHJpbmdzIGlzIGRlcHJlY2F0ZWQuIFJlZmVyIHRvIGh0dHBzOi8vZ2l0aHViLmNvbS9hc2h0dWNoa2luL2ljb252LWxpdGUvd2lraS9Vc2UtQnVmZmVycy13aGVuLWRlY29kaW5nXCIpO1xuICAgICAgICAgIGljb252LnNraXBEZWNvZGVXYXJuaW5nID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICBidWYgPSBCdWZmZXIyLmZyb20oXCJcIiArIChidWYgfHwgXCJcIiksIFwiYmluYXJ5XCIpO1xuICAgICAgfVxuICAgICAgdmFyIGRlY29kZXIgPSBpY29udi5nZXREZWNvZGVyKGVuY29kaW5nLCBvcHRpb25zKTtcbiAgICAgIHZhciByZXMgPSBkZWNvZGVyLndyaXRlKGJ1Zik7XG4gICAgICB2YXIgdHJhaWwgPSBkZWNvZGVyLmVuZCgpO1xuICAgICAgcmV0dXJuIHRyYWlsID8gcmVzICsgdHJhaWwgOiByZXM7XG4gICAgfTtcbiAgICBpY29udi5lbmNvZGluZ0V4aXN0cyA9IGZ1bmN0aW9uIGVuY29kaW5nRXhpc3RzKGVuYykge1xuICAgICAgdHJ5IHtcbiAgICAgICAgaWNvbnYuZ2V0Q29kZWMoZW5jKTtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9O1xuICAgIGljb252LnRvRW5jb2RpbmcgPSBpY29udi5lbmNvZGU7XG4gICAgaWNvbnYuZnJvbUVuY29kaW5nID0gaWNvbnYuZGVjb2RlO1xuICAgIGljb252Ll9jb2RlY0RhdGFDYWNoZSA9IHt9O1xuICAgIGljb252LmdldENvZGVjID0gZnVuY3Rpb24gZ2V0Q29kZWMoZW5jb2RpbmcpIHtcbiAgICAgIGlmICghaWNvbnYuZW5jb2RpbmdzKVxuICAgICAgICBpY29udi5lbmNvZGluZ3MgPSByZXF1aXJlX2VuY29kaW5nczIoKTtcbiAgICAgIHZhciBlbmMgPSBpY29udi5fY2Fub25pY2FsaXplRW5jb2RpbmcoZW5jb2RpbmcpO1xuICAgICAgdmFyIGNvZGVjT3B0aW9ucyA9IHt9O1xuICAgICAgd2hpbGUgKHRydWUpIHtcbiAgICAgICAgdmFyIGNvZGVjID0gaWNvbnYuX2NvZGVjRGF0YUNhY2hlW2VuY107XG4gICAgICAgIGlmIChjb2RlYylcbiAgICAgICAgICByZXR1cm4gY29kZWM7XG4gICAgICAgIHZhciBjb2RlY0RlZiA9IGljb252LmVuY29kaW5nc1tlbmNdO1xuICAgICAgICBzd2l0Y2ggKHR5cGVvZiBjb2RlY0RlZikge1xuICAgICAgICAgIGNhc2UgXCJzdHJpbmdcIjpcbiAgICAgICAgICAgIGVuYyA9IGNvZGVjRGVmO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBcIm9iamVjdFwiOlxuICAgICAgICAgICAgZm9yICh2YXIga2V5IGluIGNvZGVjRGVmKVxuICAgICAgICAgICAgICBjb2RlY09wdGlvbnNba2V5XSA9IGNvZGVjRGVmW2tleV07XG4gICAgICAgICAgICBpZiAoIWNvZGVjT3B0aW9ucy5lbmNvZGluZ05hbWUpXG4gICAgICAgICAgICAgIGNvZGVjT3B0aW9ucy5lbmNvZGluZ05hbWUgPSBlbmM7XG4gICAgICAgICAgICBlbmMgPSBjb2RlY0RlZi50eXBlO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBcImZ1bmN0aW9uXCI6XG4gICAgICAgICAgICBpZiAoIWNvZGVjT3B0aW9ucy5lbmNvZGluZ05hbWUpXG4gICAgICAgICAgICAgIGNvZGVjT3B0aW9ucy5lbmNvZGluZ05hbWUgPSBlbmM7XG4gICAgICAgICAgICBjb2RlYyA9IG5ldyBjb2RlY0RlZihjb2RlY09wdGlvbnMsIGljb252KTtcbiAgICAgICAgICAgIGljb252Ll9jb2RlY0RhdGFDYWNoZVtjb2RlY09wdGlvbnMuZW5jb2RpbmdOYW1lXSA9IGNvZGVjO1xuICAgICAgICAgICAgcmV0dXJuIGNvZGVjO1xuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJFbmNvZGluZyBub3QgcmVjb2duaXplZDogJ1wiICsgZW5jb2RpbmcgKyBcIicgKHNlYXJjaGVkIGFzOiAnXCIgKyBlbmMgKyBcIicpXCIpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfTtcbiAgICBpY29udi5fY2Fub25pY2FsaXplRW5jb2RpbmcgPSBmdW5jdGlvbihlbmNvZGluZykge1xuICAgICAgcmV0dXJuIChcIlwiICsgZW5jb2RpbmcpLnRvTG93ZXJDYXNlKCkucmVwbGFjZSgvOlxcZHs0fSR8W14wLTlhLXpdL2csIFwiXCIpO1xuICAgIH07XG4gICAgaWNvbnYuZ2V0RW5jb2RlciA9IGZ1bmN0aW9uIGdldEVuY29kZXIoZW5jb2RpbmcsIG9wdGlvbnMpIHtcbiAgICAgIHZhciBjb2RlYyA9IGljb252LmdldENvZGVjKGVuY29kaW5nKSwgZW5jb2RlciA9IG5ldyBjb2RlYy5lbmNvZGVyKG9wdGlvbnMsIGNvZGVjKTtcbiAgICAgIGlmIChjb2RlYy5ib21Bd2FyZSAmJiBvcHRpb25zICYmIG9wdGlvbnMuYWRkQk9NKVxuICAgICAgICBlbmNvZGVyID0gbmV3IGJvbUhhbmRsaW5nLlByZXBlbmRCT00oZW5jb2Rlciwgb3B0aW9ucyk7XG4gICAgICByZXR1cm4gZW5jb2RlcjtcbiAgICB9O1xuICAgIGljb252LmdldERlY29kZXIgPSBmdW5jdGlvbiBnZXREZWNvZGVyKGVuY29kaW5nLCBvcHRpb25zKSB7XG4gICAgICB2YXIgY29kZWMgPSBpY29udi5nZXRDb2RlYyhlbmNvZGluZyksIGRlY29kZXIgPSBuZXcgY29kZWMuZGVjb2RlcihvcHRpb25zLCBjb2RlYyk7XG4gICAgICBpZiAoY29kZWMuYm9tQXdhcmUgJiYgIShvcHRpb25zICYmIG9wdGlvbnMuc3RyaXBCT00gPT09IGZhbHNlKSlcbiAgICAgICAgZGVjb2RlciA9IG5ldyBib21IYW5kbGluZy5TdHJpcEJPTShkZWNvZGVyLCBvcHRpb25zKTtcbiAgICAgIHJldHVybiBkZWNvZGVyO1xuICAgIH07XG4gICAgaWNvbnYuZW5hYmxlU3RyZWFtaW5nQVBJID0gZnVuY3Rpb24gZW5hYmxlU3RyZWFtaW5nQVBJKHN0cmVhbV9tb2R1bGUyKSB7XG4gICAgICBpZiAoaWNvbnYuc3VwcG9ydHNTdHJlYW1zKVxuICAgICAgICByZXR1cm47XG4gICAgICB2YXIgc3RyZWFtcyA9IHJlcXVpcmVfc3RyZWFtczIoKShzdHJlYW1fbW9kdWxlMik7XG4gICAgICBpY29udi5JY29udkxpdGVFbmNvZGVyU3RyZWFtID0gc3RyZWFtcy5JY29udkxpdGVFbmNvZGVyU3RyZWFtO1xuICAgICAgaWNvbnYuSWNvbnZMaXRlRGVjb2RlclN0cmVhbSA9IHN0cmVhbXMuSWNvbnZMaXRlRGVjb2RlclN0cmVhbTtcbiAgICAgIGljb252LmVuY29kZVN0cmVhbSA9IGZ1bmN0aW9uIGVuY29kZVN0cmVhbShlbmNvZGluZywgb3B0aW9ucykge1xuICAgICAgICByZXR1cm4gbmV3IGljb252Lkljb252TGl0ZUVuY29kZXJTdHJlYW0oaWNvbnYuZ2V0RW5jb2RlcihlbmNvZGluZywgb3B0aW9ucyksIG9wdGlvbnMpO1xuICAgICAgfTtcbiAgICAgIGljb252LmRlY29kZVN0cmVhbSA9IGZ1bmN0aW9uIGRlY29kZVN0cmVhbShlbmNvZGluZywgb3B0aW9ucykge1xuICAgICAgICByZXR1cm4gbmV3IGljb252Lkljb252TGl0ZURlY29kZXJTdHJlYW0oaWNvbnYuZ2V0RGVjb2RlcihlbmNvZGluZywgb3B0aW9ucyksIG9wdGlvbnMpO1xuICAgICAgfTtcbiAgICAgIGljb252LnN1cHBvcnRzU3RyZWFtcyA9IHRydWU7XG4gICAgfTtcbiAgICB2YXIgc3RyZWFtX21vZHVsZTtcbiAgICB0cnkge1xuICAgICAgc3RyZWFtX21vZHVsZSA9IHJlcXVpcmUoXCJzdHJlYW1cIik7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgIH1cbiAgICBpZiAoc3RyZWFtX21vZHVsZSAmJiBzdHJlYW1fbW9kdWxlLlRyYW5zZm9ybSkge1xuICAgICAgaWNvbnYuZW5hYmxlU3RyZWFtaW5nQVBJKHN0cmVhbV9tb2R1bGUpO1xuICAgIH0gZWxzZSB7XG4gICAgICBpY29udi5lbmNvZGVTdHJlYW0gPSBpY29udi5kZWNvZGVTdHJlYW0gPSBmdW5jdGlvbigpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiaWNvbnYtbGl0ZSBTdHJlYW1pbmcgQVBJIGlzIG5vdCBlbmFibGVkLiBVc2UgaWNvbnYuZW5hYmxlU3RyZWFtaW5nQVBJKHJlcXVpcmUoJ3N0cmVhbScpKTsgdG8gZW5hYmxlIGl0LlwiKTtcbiAgICAgIH07XG4gICAgfVxuICAgIGlmIChmYWxzZSkge1xuICAgICAgY29uc29sZS5lcnJvcihcImljb252LWxpdGUgd2FybmluZzoganMgZmlsZXMgdXNlIG5vbi11dGY4IGVuY29kaW5nLiBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2FzaHR1Y2hraW4vaWNvbnYtbGl0ZS93aWtpL0phdmFzY3JpcHQtc291cmNlLWZpbGUtZW5jb2RpbmdzIGZvciBtb3JlIGluZm8uXCIpO1xuICAgIH1cbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9ib2R5LXBhcnNlci9saWIvcmVhZC5qc1xudmFyIHJlcXVpcmVfcmVhZCA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9ib2R5LXBhcnNlci9saWIvcmVhZC5qc1wiKGV4cG9ydHMyLCBtb2R1bGUyKSB7XG4gICAgXCJ1c2Ugc3RyaWN0XCI7XG4gICAgdmFyIGNyZWF0ZUVycm9yID0gcmVxdWlyZV9odHRwX2Vycm9ycygpO1xuICAgIHZhciBnZXRCb2R5ID0gcmVxdWlyZV9yYXdfYm9keSgpO1xuICAgIHZhciBpY29udiA9IHJlcXVpcmVfbGliMigpO1xuICAgIHZhciBvbkZpbmlzaGVkID0gcmVxdWlyZV9vbl9maW5pc2hlZCgpO1xuICAgIHZhciB6bGliID0gcmVxdWlyZShcIm5vZGU6emxpYlwiKTtcbiAgICBtb2R1bGUyLmV4cG9ydHMgPSByZWFkO1xuICAgIGZ1bmN0aW9uIHJlYWQocmVxLCByZXMsIG5leHQsIHBhcnNlLCBkZWJ1Zywgb3B0aW9ucykge1xuICAgICAgdmFyIGxlbmd0aDtcbiAgICAgIHZhciBvcHRzID0gb3B0aW9ucztcbiAgICAgIHZhciBzdHJlYW07XG4gICAgICB2YXIgZW5jb2RpbmcgPSBvcHRzLmVuY29kaW5nICE9PSBudWxsID8gb3B0cy5lbmNvZGluZyA6IG51bGw7XG4gICAgICB2YXIgdmVyaWZ5ID0gb3B0cy52ZXJpZnk7XG4gICAgICB0cnkge1xuICAgICAgICBzdHJlYW0gPSBjb250ZW50c3RyZWFtKHJlcSwgZGVidWcsIG9wdHMuaW5mbGF0ZSk7XG4gICAgICAgIGxlbmd0aCA9IHN0cmVhbS5sZW5ndGg7XG4gICAgICAgIHN0cmVhbS5sZW5ndGggPSB2b2lkIDA7XG4gICAgICB9IGNhdGNoIChlcnIyKSB7XG4gICAgICAgIHJldHVybiBuZXh0KGVycjIpO1xuICAgICAgfVxuICAgICAgb3B0cy5sZW5ndGggPSBsZW5ndGg7XG4gICAgICBvcHRzLmVuY29kaW5nID0gdmVyaWZ5ID8gbnVsbCA6IGVuY29kaW5nO1xuICAgICAgaWYgKG9wdHMuZW5jb2RpbmcgPT09IG51bGwgJiYgZW5jb2RpbmcgIT09IG51bGwgJiYgIWljb252LmVuY29kaW5nRXhpc3RzKGVuY29kaW5nKSkge1xuICAgICAgICByZXR1cm4gbmV4dChjcmVhdGVFcnJvcig0MTUsICd1bnN1cHBvcnRlZCBjaGFyc2V0IFwiJyArIGVuY29kaW5nLnRvVXBwZXJDYXNlKCkgKyAnXCInLCB7XG4gICAgICAgICAgY2hhcnNldDogZW5jb2RpbmcudG9Mb3dlckNhc2UoKSxcbiAgICAgICAgICB0eXBlOiBcImNoYXJzZXQudW5zdXBwb3J0ZWRcIlxuICAgICAgICB9KSk7XG4gICAgICB9XG4gICAgICBkZWJ1ZyhcInJlYWQgYm9keVwiKTtcbiAgICAgIGdldEJvZHkoc3RyZWFtLCBvcHRzLCBmdW5jdGlvbihlcnJvciwgYm9keSkge1xuICAgICAgICBpZiAoZXJyb3IpIHtcbiAgICAgICAgICB2YXIgX2Vycm9yO1xuICAgICAgICAgIGlmIChlcnJvci50eXBlID09PSBcImVuY29kaW5nLnVuc3VwcG9ydGVkXCIpIHtcbiAgICAgICAgICAgIF9lcnJvciA9IGNyZWF0ZUVycm9yKDQxNSwgJ3Vuc3VwcG9ydGVkIGNoYXJzZXQgXCInICsgZW5jb2RpbmcudG9VcHBlckNhc2UoKSArICdcIicsIHtcbiAgICAgICAgICAgICAgY2hhcnNldDogZW5jb2RpbmcudG9Mb3dlckNhc2UoKSxcbiAgICAgICAgICAgICAgdHlwZTogXCJjaGFyc2V0LnVuc3VwcG9ydGVkXCJcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBfZXJyb3IgPSBjcmVhdGVFcnJvcig0MDAsIGVycm9yKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHN0cmVhbSAhPT0gcmVxKSB7XG4gICAgICAgICAgICByZXEudW5waXBlKCk7XG4gICAgICAgICAgICBzdHJlYW0uZGVzdHJveSgpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBkdW1wKHJlcSwgZnVuY3Rpb24gb25maW5pc2hlZCgpIHtcbiAgICAgICAgICAgIG5leHQoY3JlYXRlRXJyb3IoNDAwLCBfZXJyb3IpKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHZlcmlmeSkge1xuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBkZWJ1ZyhcInZlcmlmeSBib2R5XCIpO1xuICAgICAgICAgICAgdmVyaWZ5KHJlcSwgcmVzLCBib2R5LCBlbmNvZGluZyk7XG4gICAgICAgICAgfSBjYXRjaCAoZXJyMikge1xuICAgICAgICAgICAgbmV4dChjcmVhdGVFcnJvcig0MDMsIGVycjIsIHtcbiAgICAgICAgICAgICAgYm9keSxcbiAgICAgICAgICAgICAgdHlwZTogZXJyMi50eXBlIHx8IFwiZW50aXR5LnZlcmlmeS5mYWlsZWRcIlxuICAgICAgICAgICAgfSkpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB2YXIgc3RyID0gYm9keTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBkZWJ1ZyhcInBhcnNlIGJvZHlcIik7XG4gICAgICAgICAgc3RyID0gdHlwZW9mIGJvZHkgIT09IFwic3RyaW5nXCIgJiYgZW5jb2RpbmcgIT09IG51bGwgPyBpY29udi5kZWNvZGUoYm9keSwgZW5jb2RpbmcpIDogYm9keTtcbiAgICAgICAgICByZXEuYm9keSA9IHBhcnNlKHN0ciwgZW5jb2RpbmcpO1xuICAgICAgICB9IGNhdGNoIChlcnIyKSB7XG4gICAgICAgICAgbmV4dChjcmVhdGVFcnJvcig0MDAsIGVycjIsIHtcbiAgICAgICAgICAgIGJvZHk6IHN0cixcbiAgICAgICAgICAgIHR5cGU6IGVycjIudHlwZSB8fCBcImVudGl0eS5wYXJzZS5mYWlsZWRcIlxuICAgICAgICAgIH0pKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgbmV4dCgpO1xuICAgICAgfSk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGNvbnRlbnRzdHJlYW0ocmVxLCBkZWJ1ZywgaW5mbGF0ZSkge1xuICAgICAgdmFyIGVuY29kaW5nID0gKHJlcS5oZWFkZXJzW1wiY29udGVudC1lbmNvZGluZ1wiXSB8fCBcImlkZW50aXR5XCIpLnRvTG93ZXJDYXNlKCk7XG4gICAgICB2YXIgbGVuZ3RoID0gcmVxLmhlYWRlcnNbXCJjb250ZW50LWxlbmd0aFwiXTtcbiAgICAgIGRlYnVnKCdjb250ZW50LWVuY29kaW5nIFwiJXNcIicsIGVuY29kaW5nKTtcbiAgICAgIGlmIChpbmZsYXRlID09PSBmYWxzZSAmJiBlbmNvZGluZyAhPT0gXCJpZGVudGl0eVwiKSB7XG4gICAgICAgIHRocm93IGNyZWF0ZUVycm9yKDQxNSwgXCJjb250ZW50IGVuY29kaW5nIHVuc3VwcG9ydGVkXCIsIHtcbiAgICAgICAgICBlbmNvZGluZyxcbiAgICAgICAgICB0eXBlOiBcImVuY29kaW5nLnVuc3VwcG9ydGVkXCJcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICBpZiAoZW5jb2RpbmcgPT09IFwiaWRlbnRpdHlcIikge1xuICAgICAgICByZXEubGVuZ3RoID0gbGVuZ3RoO1xuICAgICAgICByZXR1cm4gcmVxO1xuICAgICAgfVxuICAgICAgdmFyIHN0cmVhbSA9IGNyZWF0ZURlY29tcHJlc3Npb25TdHJlYW0oZW5jb2RpbmcsIGRlYnVnKTtcbiAgICAgIHJlcS5waXBlKHN0cmVhbSk7XG4gICAgICByZXR1cm4gc3RyZWFtO1xuICAgIH1cbiAgICBmdW5jdGlvbiBjcmVhdGVEZWNvbXByZXNzaW9uU3RyZWFtKGVuY29kaW5nLCBkZWJ1Zykge1xuICAgICAgc3dpdGNoIChlbmNvZGluZykge1xuICAgICAgICBjYXNlIFwiZGVmbGF0ZVwiOlxuICAgICAgICAgIGRlYnVnKFwiaW5mbGF0ZSBib2R5XCIpO1xuICAgICAgICAgIHJldHVybiB6bGliLmNyZWF0ZUluZmxhdGUoKTtcbiAgICAgICAgY2FzZSBcImd6aXBcIjpcbiAgICAgICAgICBkZWJ1ZyhcImd1bnppcCBib2R5XCIpO1xuICAgICAgICAgIHJldHVybiB6bGliLmNyZWF0ZUd1bnppcCgpO1xuICAgICAgICBjYXNlIFwiYnJcIjpcbiAgICAgICAgICBkZWJ1ZyhcImJyb3RsaSBkZWNvbXByZXNzIGJvZHlcIik7XG4gICAgICAgICAgcmV0dXJuIHpsaWIuY3JlYXRlQnJvdGxpRGVjb21wcmVzcygpO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHRocm93IGNyZWF0ZUVycm9yKDQxNSwgJ3Vuc3VwcG9ydGVkIGNvbnRlbnQgZW5jb2RpbmcgXCInICsgZW5jb2RpbmcgKyAnXCInLCB7XG4gICAgICAgICAgICBlbmNvZGluZyxcbiAgICAgICAgICAgIHR5cGU6IFwiZW5jb2RpbmcudW5zdXBwb3J0ZWRcIlxuICAgICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiBkdW1wKHJlcSwgY2FsbGJhY2spIHtcbiAgICAgIGlmIChvbkZpbmlzaGVkLmlzRmluaXNoZWQocmVxKSkge1xuICAgICAgICBjYWxsYmFjayhudWxsKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG9uRmluaXNoZWQocmVxLCBjYWxsYmFjayk7XG4gICAgICAgIHJlcS5yZXN1bWUoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvdHlwZS1pcy9ub2RlX21vZHVsZXMvbWltZS1kYi9kYi5qc29uXG52YXIgcmVxdWlyZV9kYiA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy90eXBlLWlzL25vZGVfbW9kdWxlcy9taW1lLWRiL2RiLmpzb25cIihleHBvcnRzMiwgbW9kdWxlMikge1xuICAgIG1vZHVsZTIuZXhwb3J0cyA9IHtcbiAgICAgIFwiYXBwbGljYXRpb24vMWQtaW50ZXJsZWF2ZWQtcGFyaXR5ZmVjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vM2dwZGFzaC1xb2UtcmVwb3J0K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNoYXJzZXQ6IFwiVVRGLThcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi8zZ3BwLWltcyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uLzNncHBoYWwranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vM2dwcGhhbGZvcm1zK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2EybFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2FjZStjYm9yXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vYWNlK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2FjZS1ncm91cGNvbW0rY2JvclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2FjZS10cmwrY2JvclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2FjdGl2ZW1lc3NhZ2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9hY3Rpdml0eStqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9haWYrY2JvclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2FpZitqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9hbHRvLWNkbmkranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vYWx0by1jZG5pZmlsdGVyK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2FsdG8tY29zdG1hcCtqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9hbHRvLWNvc3RtYXBmaWx0ZXIranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vYWx0by1kaXJlY3RvcnkranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vYWx0by1lbmRwb2ludGNvc3QranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vYWx0by1lbmRwb2ludGNvc3RwYXJhbXMranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vYWx0by1lbmRwb2ludHByb3AranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vYWx0by1lbmRwb2ludHByb3BwYXJhbXMranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vYWx0by1lcnJvcitqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9hbHRvLW5ldHdvcmttYXAranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vYWx0by1uZXR3b3JrbWFwZmlsdGVyK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2FsdG8tcHJvcG1hcCtqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9hbHRvLXByb3BtYXBwYXJhbXMranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vYWx0by10aXBzK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2FsdG8tdGlwc3BhcmFtcytqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9hbHRvLXVwZGF0ZXN0cmVhbWNvbnRyb2wranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vYWx0by11cGRhdGVzdHJlYW1wYXJhbXMranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vYW1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vYW5kcmV3LWluc2V0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZXpcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2FwcGluc3RhbGxlclwiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImFwcGluc3RhbGxlclwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vYXBwbGVmaWxlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vYXBwbGl4d2FyZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYXdcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2FwcHhcIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJhcHB4XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9hcHB4YnVuZGxlXCI6IHtcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYXBweGJ1bmRsZVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vYXQrand0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vYXRmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vYXRmeFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2F0b20reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJhdG9tXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9hdG9tY2F0K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYXRvbWNhdFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vYXRvbWRlbGV0ZWQreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJhdG9tZGVsZXRlZFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vYXRvbWljbWFpbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2F0b21zdmMreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJhdG9tc3ZjXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9hdHNjLWR3ZCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImR3ZFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vYXRzYy1keW5hbWljLWV2ZW50LW1lc3NhZ2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9hdHNjLWhlbGQreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJoZWxkXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9hdHNjLXJkdCtqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9hdHNjLXJzYXQreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJyc2F0XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9hdHhtbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2F1dGgtcG9saWN5K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vYXV0b21hdGlvbm1sLWFtbCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImFtbFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vYXV0b21hdGlvbm1sLWFtbHgremlwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYW1seFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vYmFjbmV0LXhkZCt6aXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9iYXRjaC1zbXRwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vYmRvY1wiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImJkb2NcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2JlZXAreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY2hhcnNldDogXCJVVEYtOFwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2J1ZnJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9jMnBhXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vY2FsZW5kYXIranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vY2FsZW5kYXIreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ4Y3NcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2NhbGwtY29tcGxldGlvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2NhbHMtMTg0MFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2NhcHRpdmUranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vY2JvclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2Nib3Itc2VxXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vY2NjZXhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9jY21wK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vY2N4bWwreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJjY3htbFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vY2RhK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNoYXJzZXQ6IFwiVVRGLThcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9jZGZ4K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY2RmeFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vY2RtaS1jYXBhYmlsaXR5XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY2RtaWFcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2NkbWktY29udGFpbmVyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY2RtaWNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2NkbWktZG9tYWluXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY2RtaWRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2NkbWktb2JqZWN0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY2RtaW9cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2NkbWktcXVldWVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJjZG1pcVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vY2RuaVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2NlK2Nib3JcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9jZWFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9jZWEtMjAxOCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2NlbGxtbCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2Nmd1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2NpZC1lZGhvYytjYm9yLXNlcVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2NpdHkranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vY2l0eStqc29uLXNlcVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2NsclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2NsdWUreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9jbHVlX2luZm8reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9jbXNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9jbnJwK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vY29hcC1lYXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9jb2FwLWdyb3VwK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2NvYXAtcGF5bG9hZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2NvbW1vbmdyb3VuZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2NvbmNpc2UtcHJvYmxlbS1kZXRhaWxzK2Nib3JcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9jb25mZXJlbmNlLWluZm8reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9jb3NlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vY29zZS1rZXlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9jb3NlLWtleS1zZXRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9jb3NlLXg1MDlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9jcGwreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJjcGxcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2NzcmF0dHJzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vY3N0YSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2NzdGFkYXRhK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vY3N2bStqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9jdS1zZWVtZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY3VcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2N3bFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImN3bFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vY3dsK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2N3bCt5YW1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vY3d0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vY3liZXJjYXNoXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZGFydFwiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZGFzaCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1wZFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZGFzaC1wYXRjaCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1wcFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZGFzaGRlbHRhXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZGF2bW91bnQreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJkYXZtb3VudFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZGNhLXJmdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2RjZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2RlYy1keFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2RpYWxvZy1pbmZvK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZGljb21cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJkY21cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2RpY29tK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2RpY29tK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZGlpXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZGl0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZG5zXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZG5zK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2Rucy1tZXNzYWdlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZG9jYm9vayt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZGJrXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9kb3RzK2Nib3JcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9kcG9wK2p3dFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2Rza3BwK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZHNzYytkZXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJkc3NjXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9kc3NjK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieGRzc2NcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2R2Y3NcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9lYXQrY3d0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZWF0K2p3dFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2VhdC1idW4rY2JvclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2VhdC1idW4ranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZWF0LXVjcytjYm9yXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZWF0LXVjcytqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9lY21hc2NyaXB0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImVjbWFcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2VkaG9jK2Nib3Itc2VxXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZWRpLWNvbnNlbnRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9lZGkteDEyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZWRpZmFjdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2VcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2VmaVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2VsbStqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY2hhcnNldDogXCJVVEYtOFwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2VsbSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2VtZXJnZW5jeWNhbGxkYXRhLmNhcCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjaGFyc2V0OiBcIlVURi04XCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZW1lcmdlbmN5Y2FsbGRhdGEuY29tbWVudCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2VtZXJnZW5jeWNhbGxkYXRhLmNvbnRyb2wreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9lbWVyZ2VuY3ljYWxsZGF0YS5kZXZpY2VpbmZvK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZW1lcmdlbmN5Y2FsbGRhdGEuZWNhbGwubXNkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZW1lcmdlbmN5Y2FsbGRhdGEubGVnYWN5ZXNuK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2VtZXJnZW5jeWNhbGxkYXRhLnByb3ZpZGVyaW5mbyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2VtZXJnZW5jeWNhbGxkYXRhLnNlcnZpY2VpbmZvK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZW1lcmdlbmN5Y2FsbGRhdGEuc3Vic2NyaWJlcmluZm8reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9lbWVyZ2VuY3ljYWxsZGF0YS52ZWRzK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZW1tYSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImVtbWFcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2Vtb3Rpb25tbCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImVtb3Rpb25tbFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZW5jYXBydHBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9lbnRpdHktc3RhdGVtZW50K2p3dFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2VwcCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2VwdWIremlwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZXB1YlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZXNob3BcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9leGlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJleGlcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2V4cGVjdC1jdC1yZXBvcnQranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZXhwcmVzc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImV4cFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZmFzdGluZm9zZXRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9mYXN0c29hcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2ZkZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImZkZlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZmR0K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZmR0XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9maGlyK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjaGFyc2V0OiBcIlVURi04XCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZmhpcit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjaGFyc2V0OiBcIlVURi04XCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZmlkby50cnVzdGVkLWFwcHMranNvblwiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZml0c1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2ZsZXhmZWNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9mb250LXNmbnRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9mb250LXRkcGZyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicGZyXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9mb250LXdvZmZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9mcmFtZXdvcmstYXR0cmlidXRlcyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2dlbytqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJnZW9qc29uXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9nZW8ranNvbi1zZXFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9nZW9wYWNrYWdlK3NxbGl0ZTNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9nZW9wb3NlK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2dlb3hhY21sK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2dlb3hhY21sK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZ2x0Zi1idWZmZXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9nbWwreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJnbWxcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2duYXAtYmluZGluZy1qd3NcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9nbmFwLWJpbmRpbmctandzZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2duYXAtYmluZGluZy1yb3RhdGlvbi1qd3NcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9nbmFwLWJpbmRpbmctcm90YXRpb24tandzZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2dweCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZ3B4XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9ncmliXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZ3hmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJneGZcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2d6aXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJnelwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vaDIyNFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2hlbGQreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9oanNvblwiOiB7XG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImhqc29uXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9obDd2Mit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjaGFyc2V0OiBcIlVURi04XCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vaHR0cFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2h5cGVyc3R1ZGlvXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic3RrXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9pYmUta2V5LXJlcXVlc3QreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9pYmUtcGtnLXJlcGx5K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vaWJlLXBwLWRhdGFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9pZ2VzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vaW0taXNjb21wb3NpbmcreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY2hhcnNldDogXCJVVEYtOFwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2luZGV4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vaW5kZXguY21kXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vaW5kZXgub2JqXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vaW5kZXgucmVzcG9uc2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9pbmRleC52bmRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9pbmttbCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImlua1wiLCBcImlua21sXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9pb3RwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vaXBmaXhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJpcGZpeFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vaXBwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vaXN1cFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2l0cyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIml0c1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vamF2YS1hcmNoaXZlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiamFyXCIsIFwid2FyXCIsIFwiZWFyXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9qYXZhLXNlcmlhbGl6ZWQtb2JqZWN0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzZXJcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2phdmEtdm1cIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImNsYXNzXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9qYXZhc2NyaXB0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBjaGFyc2V0OiBcIlVURi04XCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wianNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2pmMmZlZWQranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vam9zZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2pvc2UranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vanJkK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2pzY2FsZW5kYXIranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vanNjb250YWN0K2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjaGFyc2V0OiBcIlVURi04XCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wianNvblwiLCBcIm1hcFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vanNvbi1wYXRjaCtqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9qc29uLXNlcVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2pzb241XCI6IHtcbiAgICAgICAgZXh0ZW5zaW9uczogW1wianNvbjVcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2pzb25tbCtqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImpzb25tbFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vanNvbnBhdGhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9qd2sranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vandrLXNldCtqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9qd2stc2V0K2p3dFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2p3dFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2twbWwtcmVxdWVzdCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2twbWwtcmVzcG9uc2UreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9sZCtqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJqc29ubGRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2xncit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImxnclwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbGluay1mb3JtYXRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9saW5rc2V0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbGlua3NldCtqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9sb2FkLWNvbnRyb2wreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9sb2dvdXQrand0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbG9zdCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImxvc3R4bWxcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2xvc3RzeW5jK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbHBmK3ppcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2VcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2x4ZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL21hYy1iaW5oZXg0MFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImhxeFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbWFjLWNvbXBhY3Rwcm9cIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImNwdFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbWFjd3JpdGVpaVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL21hZHMreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtYWRzXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9tYW5pZmVzdCtqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY2hhcnNldDogXCJVVEYtOFwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIndlYm1hbmlmZXN0XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9tYXJjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibXJjXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9tYXJjeG1sK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibXJjeFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbWF0aGVtYXRpY2FcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtYVwiLCBcIm5iXCIsIFwibWJcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL21hdGhtbCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1hdGhtbFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbWF0aG1sLWNvbnRlbnQreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9tYXRobWwtcHJlc2VudGF0aW9uK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbWJtcy1hc3NvY2lhdGVkLXByb2NlZHVyZS1kZXNjcmlwdGlvbit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL21ibXMtZGVyZWdpc3Rlcit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL21ibXMtZW52ZWxvcGUreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9tYm1zLW1zayt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL21ibXMtbXNrLXJlc3BvbnNlK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbWJtcy1wcm90ZWN0aW9uLWRlc2NyaXB0aW9uK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbWJtcy1yZWNlcHRpb24tcmVwb3J0K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbWJtcy1yZWdpc3Rlcit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL21ibXMtcmVnaXN0ZXItcmVzcG9uc2UreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9tYm1zLXNjaGVkdWxlK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbWJtcy11c2VyLXNlcnZpY2UtZGVzY3JpcHRpb24reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9tYm94XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibWJveFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbWVkaWEtcG9saWN5LWRhdGFzZXQreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtcGZcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL21lZGlhX2NvbnRyb2wreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9tZWRpYXNlcnZlcmNvbnRyb2wreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtc2NtbFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbWVyZ2UtcGF0Y2granNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbWV0YWxpbmsreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1ldGFsaW5rXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9tZXRhbGluazQreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtZXRhNFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbWV0cyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1ldHNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL21mNFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL21pa2V5XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbWlwY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL21pc3NpbmctYmxvY2tzK2Nib3Itc2VxXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbW10LWFlaSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1hZWlcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL21tdC11c2QreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtdXNkXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9tb2RzK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibW9kc1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbW9zcy1rZXlzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbW9zcy1zaWduYXR1cmVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9tb3Nza2V5LWRhdGFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9tb3Nza2V5LXJlcXVlc3RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9tcDIxXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibTIxXCIsIFwibXAyMVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbXA0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibXA0XCIsIFwibXBnNFwiLCBcIm1wNHNcIiwgXCJtNHBcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL21wZWc0LWdlbmVyaWNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9tcGVnNC1pb2RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9tcGVnNC1pb2QteG10XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbXJiLWNvbnN1bWVyK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbXJiLXB1Ymxpc2greG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9tc2MtaXZyK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNoYXJzZXQ6IFwiVVRGLThcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9tc2MtbWl4ZXIreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY2hhcnNldDogXCJVVEYtOFwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL21zaXhcIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtc2l4XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9tc2l4YnVuZGxlXCI6IHtcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibXNpeGJ1bmRsZVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbXN3b3JkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZG9jXCIsIFwiZG90XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9tdWQranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbXVsdGlwYXJ0LWNvcmVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9teGZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJteGZcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL24tcXVhZHNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJucVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbi10cmlwbGVzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibnRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL25hc2RhdGFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9uZXdzLWNoZWNrZ3JvdXBzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY2hhcnNldDogXCJVUy1BU0NJSVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9uZXdzLWdyb3VwaW5mb1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNoYXJzZXQ6IFwiVVMtQVNDSUlcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbmV3cy10cmFuc21pc3Npb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9ubHNtbCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL25vZGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJjanNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL25zc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL29hdXRoLWF1dGh6LXJlcStqd3RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9vYmxpdmlvdXMtZG5zLW1lc3NhZ2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9vY3NwLXJlcXVlc3RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9vY3NwLXJlc3BvbnNlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJiaW5cIiwgXCJkbXNcIiwgXCJscmZcIiwgXCJtYXJcIiwgXCJzb1wiLCBcImRpc3RcIiwgXCJkaXN0elwiLCBcInBrZ1wiLCBcImJwa1wiLCBcImR1bXBcIiwgXCJlbGNcIiwgXCJkZXBsb3lcIiwgXCJleGVcIiwgXCJkbGxcIiwgXCJkZWJcIiwgXCJkbWdcIiwgXCJpc29cIiwgXCJpbWdcIiwgXCJtc2lcIiwgXCJtc3BcIiwgXCJtc21cIiwgXCJidWZmZXJcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL29kYVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm9kYVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vb2RtK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vb2R4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vb2VicHMtcGFja2FnZSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm9wZlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vb2dnXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wib2d4XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9vaHR0cC1rZXlzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vb21kb2MreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm9tZG9jXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9vbmVub3RlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJvbmV0b2NcIiwgXCJvbmV0b2MyXCIsIFwib25ldG1wXCIsIFwib25lcGtnXCIsIFwib25lXCIsIFwib25lYVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vb3BjLW5vZGVzZXQreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9vc2NvcmVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9veHBzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wib3hwc1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcDIxXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcDIxK3ppcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2VcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3AycC1vdmVybGF5K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicmVsb1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcGFyaXR5ZmVjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcGFzc3BvcnRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9wYXRjaC1vcHMtZXJyb3IreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ4ZXJcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3BkZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInBkZlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcGR4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcGVtLWNlcnRpZmljYXRlLWNoYWluXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcGdwLWVuY3J5cHRlZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInBncFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcGdwLWtleXNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJhc2NcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3BncC1zaWduYXR1cmVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzaWdcIiwgXCJhc2NcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3BpY3MtcnVsZXNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInByZlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcGlkZit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjaGFyc2V0OiBcIlVURi04XCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcGlkZi1kaWZmK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNoYXJzZXQ6IFwiVVRGLThcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9wa2NzMTBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwMTBcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3BrY3MxMlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3BrY3M3LW1pbWVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwN21cIiwgXCJwN2NcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3BrY3M3LXNpZ25hdHVyZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInA3c1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcGtjczhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwOFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcGtjczgtZW5jcnlwdGVkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcGtpeC1hdHRyLWNlcnRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJhY1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcGtpeC1jZXJ0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY2VyXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9wa2l4LWNybFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImNybFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcGtpeC1wa2lwYXRoXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicGtpcGF0aFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcGtpeGNtcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInBraVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcGxzK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicGxzXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9wb2Mtc2V0dGluZ3MreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY2hhcnNldDogXCJVVEYtOFwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3Bvc3RzY3JpcHRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImFpXCIsIFwiZXBzXCIsIFwicHNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3Bwc3AtdHJhY2tlcitqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9wcml2YXRlLXRva2VuLWlzc3Vlci1kaXJlY3RvcnlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9wcml2YXRlLXRva2VuLXJlcXVlc3RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9wcml2YXRlLXRva2VuLXJlc3BvbnNlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcHJvYmxlbStqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9wcm9ibGVtK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcHJvdmVuYW5jZSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInByb3Z4XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9wcm92aWRlZC1jbGFpbXMrand0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcHJzLmFsdmVzdHJhbmQudGl0cmF4LXNoZWV0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcHJzLmN3d1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImN3d1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcHJzLmN5blwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNoYXJzZXQ6IFwiNy1CSVRcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcHJzLmhwdWIremlwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcHJzLmltcGxpZWQtZG9jdW1lbnQreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9wcnMuaW1wbGllZC1leGVjdXRhYmxlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcHJzLmltcGxpZWQtb2JqZWN0K2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3Bycy5pbXBsaWVkLW9iamVjdCtqc29uLXNlcVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3Bycy5pbXBsaWVkLW9iamVjdCt5YW1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcHJzLmltcGxpZWQtc3RydWN0dXJlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcHJzLm1heWZpbGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9wcnMubnByZW5kXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcHJzLnBsdWNrZXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9wcnMucmRmLXhtbC1jcnlwdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3Bycy52Y2ZiemlwMlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3Bycy54c2YreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ4c2ZcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3Bza2MreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwc2tjeG1sXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9wdmQranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcXNpZ1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3JhbWwreWFtbFwiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicmFtbFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcmFwdG9yZmVjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcmRhcCtqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9yZGYreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJyZGZcIiwgXCJvd2xcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3JlZ2luZm8reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJyaWZcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3JlbGF4LW5nLWNvbXBhY3Qtc3ludGF4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicm5jXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9yZW1vdGUtcHJpbnRpbmdcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3JlcHV0b24ranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcmVzb2x2ZS1yZXNwb25zZStqd3RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9yZXNvdXJjZS1saXN0cyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInJsXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9yZXNvdXJjZS1saXN0cy1kaWZmK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicmxkXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9yZmMreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9yaXNjb3NcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9ybG1pK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcmxzLXNlcnZpY2VzK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicnNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3JvdXRlLWFwZCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInJhcGRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3JvdXRlLXMtdHNpZCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNsc1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcm91dGUtdXNkK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicnVzZFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcnBraS1jaGVja2xpc3RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9ycGtpLWdob3N0YnVzdGVyc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImdiclwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcnBraS1tYW5pZmVzdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1mdFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcnBraS1wdWJsaWNhdGlvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3Jwa2ktcm9hXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicm9hXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9ycGtpLXNpZ25lZC10YWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9ycGtpLXVwZG93blwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3JzZCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicnNkXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9yc3MreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInJzc1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcnRmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJydGZcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3J0cGxvb3BiYWNrXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcnR4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vc2FtbGFzc2VydGlvbit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3NhbWxtZXRhZGF0YSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3NhcmlmK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3NhcmlmLWV4dGVybmFsLXByb3BlcnRpZXMranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vc2JlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vc2JtbCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNibWxcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3NjYWlwK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vc2NpbStqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9zY3ZwLWN2LXJlcXVlc3RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzY3FcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3NjdnAtY3YtcmVzcG9uc2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzY3NcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3NjdnAtdnAtcmVxdWVzdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNwcVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vc2N2cC12cC1yZXNwb25zZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNwcFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vc2RwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic2RwXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9zZWNldmVudCtqd3RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9zZW5tbCtjYm9yXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vc2VubWwranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vc2VubWwreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzZW5tbHhcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3Nlbm1sLWV0Y2grY2JvclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3Nlbm1sLWV0Y2granNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vc2VubWwtZXhpXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vc2Vuc21sK2Nib3JcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9zZW5zbWwranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vc2Vuc21sK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic2Vuc21seFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vc2Vuc21sLWV4aVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3NlcCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3NlcC1leGlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9zZXNzaW9uLWluZm9cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9zZXQtcGF5bWVudFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3NldC1wYXltZW50LWluaXRpYXRpb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzZXRwYXlcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3NldC1yZWdpc3RyYXRpb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9zZXQtcmVnaXN0cmF0aW9uLWluaXRpYXRpb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzZXRyZWdcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3NnbWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9zZ21sLW9wZW4tY2F0YWxvZ1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3NoZit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNoZlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vc2lldmVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzaXZcIiwgXCJzaWV2ZVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vc2ltcGxlLWZpbHRlcit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3NpbXBsZS1tZXNzYWdlLXN1bW1hcnlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9zaW1wbGVzeW1ib2xjb250YWluZXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9zaXBjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vc2xhdGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9zbWlsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9zbWlsK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic21pXCIsIFwic21pbFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vc21wdGUzMzZtXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vc29hcCtmYXN0aW5mb3NldFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3NvYXAreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9zcGFycWwtcXVlcnlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJycVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vc3BhcnFsLXJlc3VsdHMreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzcnhcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3NwZHgranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vc3Bpcml0cy1ldmVudCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3NxbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNxbFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vc3Jnc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImdyYW1cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3NyZ3MreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJncnhtbFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vc3J1K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic3J1XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9zc2RsK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzc2RsXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9zc2xrZXlsb2dmaWxlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vc3NtbCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNzbWxcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3N0MjExMC00MVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3N0aXgranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vc3RyYXR1bVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3N3aWQrY2JvclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3N3aWQreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzd2lkdGFnXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi90YW1wLWFwZXgtdXBkYXRlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdGFtcC1hcGV4LXVwZGF0ZS1jb25maXJtXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdGFtcC1jb21tdW5pdHktdXBkYXRlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdGFtcC1jb21tdW5pdHktdXBkYXRlLWNvbmZpcm1cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi90YW1wLWVycm9yXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdGFtcC1zZXF1ZW5jZS1hZGp1c3RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi90YW1wLXNlcXVlbmNlLWFkanVzdC1jb25maXJtXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdGFtcC1zdGF0dXMtcXVlcnlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi90YW1wLXN0YXR1cy1yZXNwb25zZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3RhbXAtdXBkYXRlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdGFtcC11cGRhdGUtY29uZmlybVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3RhclwiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdGF4aWkranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdGQranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdGVpK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1widGVpXCIsIFwidGVpY29ycHVzXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi90ZXRyYV9pc2lcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi90aHJhdWQreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ0ZmlcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3RpbWVzdGFtcC1xdWVyeVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3RpbWVzdGFtcC1yZXBseVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3RpbWVzdGFtcGVkLWRhdGFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ0c2RcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3Rsc3JwdCtnemlwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdGxzcnB0K2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3RtK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3RuYXV0aGxpc3RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi90b2MrY2JvclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3Rva2VuLWludHJvc3BlY3Rpb24rand0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdG9tbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1widG9tbFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdHJpY2tsZS1pY2Utc2RwZnJhZ1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3RyaWdcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ0cmlnXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi90cnVzdC1jaGFpbitqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi90cnVzdC1tYXJrK2p3dFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3RydXN0LW1hcmstZGVsZWdhdGlvbitqd3RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi90dG1sK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1widHRtbFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdHZlLXRyaWdnZXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi90emlmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdHppZi1sZWFwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdWJqc29uXCI6IHtcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1widWJqXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi91Y2NzK2Nib3JcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi91amNzK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3VscGZlY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3VyYy1ncnBzaGVldCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3VyYy1yZXNzaGVldCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInJzaGVldFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdXJjLXRhcmdldGRlc2MreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ0ZFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdXJjLXVpc29ja2V0ZGVzYyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdmMrY29zZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZjK2p3dFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZjYXJkK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZjYXJkK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdmVtbWlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92aXZpZGVuY2Uuc2NyaXB0ZmlsZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjEwMDBtaW5kcy5kZWNpc2lvbi1tb2RlbCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIjFrbVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjFvYlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLXByb3NlK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAtcHJvc2UtcGMzYSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLXByb3NlLXBjM2FjaCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLXByb3NlLXBjM2NoK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAtcHJvc2UtcGM4K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAtdjJ4LWxvY2FsLXNlcnZpY2UtaW5mb3JtYXRpb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC41Z25hc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLjVnc2EyeFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLjVnc2EyeC1sb2NhbC1zZXJ2aWNlLWluZm9ybWF0aW9uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAuNWdzdjJ4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAuNWdzdjJ4LWxvY2FsLXNlcnZpY2UtaW5mb3JtYXRpb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5hY2Nlc3MtdHJhbnNmZXItZXZlbnRzK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAuYnNmK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAuY3JzK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAuY3VycmVudC1sb2NhdGlvbi1kaXNjb3ZlcnkreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5nbW9wK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAuZ3RwY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLmludGVyd29ya2luZy1kYXRhXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAubHBwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAubWMtc2lnbmFsbGluZy1lYXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5tY2RhdGEtYWZmaWxpYXRpb24tY29tbWFuZCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLm1jZGF0YS1pbmZvK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAubWNkYXRhLW1zZ3N0b3JlLWN0cmwtcmVxdWVzdCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLm1jZGF0YS1wYXlsb2FkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAubWNkYXRhLXJlZ3JvdXAreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5tY2RhdGEtc2VydmljZS1jb25maWcreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5tY2RhdGEtc2lnbmFsbGluZ1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLm1jZGF0YS11ZS1jb25maWcreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5tY2RhdGEtdXNlci1wcm9maWxlK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAubWNwdHQtYWZmaWxpYXRpb24tY29tbWFuZCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLm1jcHR0LWZsb29yLXJlcXVlc3QreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5tY3B0dC1pbmZvK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAubWNwdHQtbG9jYXRpb24taW5mbyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLm1jcHR0LW1ibXMtdXNhZ2UtaW5mbyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLm1jcHR0LXJlZ3JvdXAreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5tY3B0dC1zZXJ2aWNlLWNvbmZpZyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLm1jcHR0LXNpZ25lZCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLm1jcHR0LXVlLWNvbmZpZyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLm1jcHR0LXVlLWluaXQtY29uZmlnK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAubWNwdHQtdXNlci1wcm9maWxlK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAubWN2aWRlby1hZmZpbGlhdGlvbi1jb21tYW5kK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAubWN2aWRlby1pbmZvK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAubWN2aWRlby1sb2NhdGlvbi1pbmZvK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAubWN2aWRlby1tYm1zLXVzYWdlLWluZm8reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5tY3ZpZGVvLXJlZ3JvdXAreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5tY3ZpZGVvLXNlcnZpY2UtY29uZmlnK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAubWN2aWRlby10cmFuc21pc3Npb24tcmVxdWVzdCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLm1jdmlkZW8tdWUtY29uZmlnK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAubWN2aWRlby11c2VyLXByb2ZpbGUreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5taWQtY2FsbCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLm5nYXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5wZmNwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAucGljLWJ3LWxhcmdlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicGxiXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5waWMtYnctc21hbGxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwc2JcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLnBpYy1idy12YXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwdmJcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLnBpbmFwcC1pbmZvK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAuczFhcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLnNlYWwtZ3JvdXAtZG9jK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAuc2VhbC1pbmZvK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAuc2VhbC1sb2NhdGlvbi1pbmZvK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAuc2VhbC1tYm1zLXVzYWdlLWluZm8reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5zZWFsLW5ldHdvcmstcW9zLW1hbmFnZW1lbnQtaW5mbyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLnNlYWwtdWUtY29uZmlnLWluZm8reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5zZWFsLXVuaWNhc3QtaW5mbyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLnNlYWwtdXNlci1wcm9maWxlLWluZm8reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5zbXNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5zbXMreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5zcnZjYy1leHQreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5zcnZjYy1pbmZvK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAuc3RhdGUtYW5kLWV2ZW50LWluZm8reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC51c3NkK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAudjJ4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAudmFlLWluZm8reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcDIuYmNtY3NpbmZvK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAyLnNtc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwMi50Y2FwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widGNhcFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNsaWdodHNzb2Z0d2FyZS5pbWFnZXNjYWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM20ucG9zdC1pdC1ub3Rlc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInB3blwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFjY3BhYy5zaW1wbHkuYXNvXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYXNvXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYWNjcGFjLnNpbXBseS5pbXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJpbXBcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hY20uYWRkcmVzc3hmZXIranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFjbS5jaGF0Ym90K2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hY3Vjb2JvbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImFjdVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFjdWNvcnBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJhdGNcIiwgXCJhY3V0Y1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFkb2JlLmFpci1hcHBsaWNhdGlvbi1pbnN0YWxsZXItcGFja2FnZSt6aXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImFpclwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFkb2JlLmZsYXNoLm1vdmllXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFkb2JlLmZvcm1zY2VudHJhbC5mY2R0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZmNkdFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFkb2JlLmZ4cFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImZ4cFwiLCBcImZ4cGxcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hZG9iZS5wYXJ0aWFsLXVwbG9hZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hZG9iZS54ZHAreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ4ZHBcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hZG9iZS54ZmRmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ4ZmRmXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYWV0aGVyLmltcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hZnBjLmFmcGxpbmVkYXRhXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFmcGMuYWZwbGluZWRhdGEtcGFnZWRlZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hZnBjLmNtb2NhLWNtcmVzb3VyY2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYWZwYy5mb2NhLWNoYXJzZXRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYWZwYy5mb2NhLWNvZGVkZm9udFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hZnBjLmZvY2EtY29kZXBhZ2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYWZwYy5tb2RjYVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hZnBjLm1vZGNhLWNtdGFibGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYWZwYy5tb2RjYS1mb3JtZGVmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFmcGMubW9kY2EtbWVkaXVtbWFwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFmcGMubW9kY2Etb2JqZWN0Y29udGFpbmVyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFmcGMubW9kY2Etb3ZlcmxheVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hZnBjLm1vZGNhLXBhZ2VzZWdtZW50XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFnZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImFnZVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFoLWJhcmNvZGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5haGVhZC5zcGFjZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImFoZWFkXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYWlyemlwLmZpbGVzZWN1cmUuYXpmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYXpmXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYWlyemlwLmZpbGVzZWN1cmUuYXpzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYXpzXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYW1hZGV1cytqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYW1hem9uLmVib29rXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJhendcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hbWF6b24ubW9iaTgtZWJvb2tcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYW1lcmljYW5keW5hbWljcy5hY2NcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJhY2NcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hbWlnYS5hbWlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJhbWlcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hbXVuZHNlbi5tYXplK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFuZHJvaWQub3RhXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFuZHJvaWQucGFja2FnZS1hcmNoaXZlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJhcGtcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hbmtpXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFuc2VyLXdlYi1jZXJ0aWZpY2F0ZS1pc3N1ZS1pbml0aWF0aW9uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY2lpXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYW5zZXItd2ViLWZ1bmRzLXRyYW5zZmVyLWluaXRpYXRpb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImZ0aVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFudGl4LmdhbWUtY29tcG9uZW50XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYXR4XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYXBhY2hlLmFycm93LmZpbGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYXBhY2hlLmFycm93LnN0cmVhbVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hcGFjaGUucGFycXVldFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hcGFjaGUudGhyaWZ0LmJpbmFyeVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hcGFjaGUudGhyaWZ0LmNvbXBhY3RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYXBhY2hlLnRocmlmdC5qc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFwZXhsYW5nXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFwaStqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYXBsZXh0b3Iud2FycnAranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFwb3RoZWtlbmRlLnJlc2VydmF0aW9uK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hcHBsZS5pbnN0YWxsZXIreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtcGtnXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYXBwbGUua2V5bm90ZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImtleVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFwcGxlLm1wZWd1cmxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtM3U4XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYXBwbGUubnVtYmVyc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm51bWJlcnNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hcHBsZS5wYWdlc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInBhZ2VzXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYXBwbGUucGtwYXNzXCI6IHtcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicGtwYXNzXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYXJhc3RyYS5zd2lcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hcmlzdGFuZXR3b3Jrcy5zd2lcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzd2lcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hcnRpc2FuK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hcnRzcXVhcmVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYXN0cmFlYS1zb2Z0d2FyZS5pb3RhXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiaW90YVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmF1ZGlvZ3JhcGhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJhZXBcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hdXRvZGVzay5mYnhcIjoge1xuICAgICAgICBleHRlbnNpb25zOiBbXCJmYnhcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hdXRvcGFja2FnZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hdmFsb24ranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmF2aXN0YXIreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYmFsc2FtaXEuYm1tbCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImJtbWxcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5iYWxzYW1pcS5ibXByXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmJhbmFuYS1hY2NvdW50aW5nXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmJiZi51c3AuZXJyb3JcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYmJmLnVzcC5tc2dcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYmJmLnVzcC5tc2cranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmJla2l0enVyLXN0ZWNoK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5iZWxpZ2h0c29mdC5saHpkK3ppcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2VcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5iZWxpZ2h0c29mdC5saHpsK3ppcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2VcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5iaW50Lm1lZC1jb250ZW50XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmJpb3BheC5yZGYreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYmxpbmstaWRiLXZhbHVlLXdyYXBwZXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYmx1ZWljZS5tdWx0aXBhc3NcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtcG1cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ibHVldG9vdGguZXAub29iXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmJsdWV0b290aC5sZS5vb2JcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYm1pXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYm1pXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYnBmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmJwZjNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYnVzaW5lc3NvYmplY3RzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicmVwXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYnl1LnVhcGkranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmJ6aXAzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmMzdm9jLnNjaGVkdWxlK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmNhYi1qc2NyaXB0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmNhbm9uLWNwZGxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuY2Fub24tbGlwc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jYXBhc3lzdGVtcy1wZytqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuY2VuZGlvLnRoaW5saW5jLmNsaWVudGNvbmZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuY2VudHVyeS1zeXN0ZW1zLnRjcF9zdHJlYW1cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuY2hlbWRyYXcreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJjZHhtbFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmNoZXNzLXBnblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jaGlwbnV0cy5rYXJhb2tlLW1tZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1tZFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmNpZWRpXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmNpbmRlcmVsbGFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJjZHlcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jaXJwYWNrLmlzZG4tZXh0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmNpdGF0aW9uc3R5bGVzLnN0eWxlK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY3NsXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuY2xheW1vcmVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJjbGFcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jbG9hbnRvLnJwOVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInJwOVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmNsb25rLmM0Z3JvdXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJjNGdcIiwgXCJjNGRcIiwgXCJjNGZcIiwgXCJjNHBcIiwgXCJjNHVcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jbHVldHJ1c3QuY2FydG9tb2JpbGUtY29uZmlnXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYzExYW1jXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuY2x1ZXRydXN0LmNhcnRvbW9iaWxlLWNvbmZpZy1wa2dcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJjMTFhbXpcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jbmNmLmhlbG0uY2hhcnQuY29udGVudC52MS50YXIrZ3ppcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jbmNmLmhlbG0uY2hhcnQucHJvdmVuYW5jZS52MS5wcm92XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmNuY2YuaGVsbS5jb25maWcudjEranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmNvZmZlZXNjcmlwdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jb2xsYWJpby54b2RvY3VtZW50cy5kb2N1bWVudFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jb2xsYWJpby54b2RvY3VtZW50cy5kb2N1bWVudC10ZW1wbGF0ZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jb2xsYWJpby54b2RvY3VtZW50cy5wcmVzZW50YXRpb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuY29sbGFiaW8ueG9kb2N1bWVudHMucHJlc2VudGF0aW9uLXRlbXBsYXRlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmNvbGxhYmlvLnhvZG9jdW1lbnRzLnNwcmVhZHNoZWV0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmNvbGxhYmlvLnhvZG9jdW1lbnRzLnNwcmVhZHNoZWV0LXRlbXBsYXRlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmNvbGxlY3Rpb24ranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmNvbGxlY3Rpb24uZG9jK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jb2xsZWN0aW9uLm5leHQranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmNvbWljYm9vayt6aXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuY29taWNib29rLXJhclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jb21tZXJjZS1iYXR0ZWxsZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jb21tb25zcGFjZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImNzcFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmNvbnRhY3QuY21zZ1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImNkYmNtc2dcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jb3Jlb3MuaWduaXRpb24ranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmNvc21vY2FsbGVyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY21jXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuY3JpY2suY2xpY2tlclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImNsa3hcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jcmljay5jbGlja2VyLmtleWJvYXJkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY2xra1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmNyaWNrLmNsaWNrZXIucGFsZXR0ZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImNsa3BcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jcmljay5jbGlja2VyLnRlbXBsYXRlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY2xrdFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmNyaWNrLmNsaWNrZXIud29yZGJhbmtcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJjbGt3XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuY3JpdGljYWx0b29scy53YnMreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ3YnNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jcnlwdGlpLnBpcGUranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmNyeXB0by1zaGFkZS1maWxlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmNyeXB0b21hdG9yLmVuY3J5cHRlZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jcnlwdG9tYXRvci52YXVsdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jdGMtcG9zbWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwbWxcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jdGN0LndzK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmN1cHMtcGRmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmN1cHMtcG9zdHNjcmlwdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jdXBzLXBwZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInBwZFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmN1cHMtcmFzdGVyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmN1cHMtcmF3XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmN1cmxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuY3VybC5jYXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImNhclwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmN1cmwucGN1cmxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInBjdXJsXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuY3lhbi5kZWFuLnJvb3QreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuY3liYW5rXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmN5Y2xvbmVkeCtqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuY3ljbG9uZWR4K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmQybC5jb3Vyc2VwYWNrYWdlMXAwK3ppcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2VcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5kM20tZGF0YXNldFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5kM20tcHJvYmxlbVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5kYXJ0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJkYXJ0XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZGF0YS12aXNpb24ucmR6XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicmR6XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZGF0YWxvZ1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5kYXRhcGFja2FnZStqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZGF0YXJlc291cmNlK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5kYmZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJkYmZcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5kY21wK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZGNtcFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmRlYmlhbi5iaW5hcnktcGFja2FnZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5kZWNlLmRhdGFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ1dmZcIiwgXCJ1dnZmXCIsIFwidXZkXCIsIFwidXZ2ZFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmRlY2UudHRtbCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInV2dFwiLCBcInV2dnRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5kZWNlLnVuc3BlY2lmaWVkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widXZ4XCIsIFwidXZ2eFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmRlY2UuemlwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widXZ6XCIsIFwidXZ2elwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmRlbm92by5mY3NlbGF5b3V0LWxpbmtcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJmZV9sYXVuY2hcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5kZXNtdW1lLm1vdmllXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmRpci1iaS5wbGF0ZS1kbC1ub3N1ZmZpeFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5kbS5kZWxlZ2F0aW9uK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmRuYVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImRuYVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmRvY3VtZW50K2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5kb2xieS5tbHBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1scFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmRvbGJ5Lm1vYmlsZS4xXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmRvbGJ5Lm1vYmlsZS4yXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmRvcmVtaXIuc2NvcmVjbG91ZC1iaW5hcnktZG9jdW1lbnRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZHBncmFwaFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImRwZ1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmRyZWFtZmFjdG9yeVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImRmYWNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5kcml2ZStqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZHMta2V5cG9pbnRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImtweHhcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5kdGcubG9jYWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZHRnLmxvY2FsLmZsYXNoXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmR0Zy5sb2NhbC5odG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmR2Yi5haXRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJhaXRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5kdmIuZHZiaXNsK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmR2Yi5kdmJqXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmR2Yi5lc2djb250YWluZXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZHZiLmlwZGNkZnRub3RpZmFjY2Vzc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5kdmIuaXBkY2VzZ2FjY2Vzc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5kdmIuaXBkY2VzZ2FjY2VzczJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZHZiLmlwZGNlc2dwZGRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZHZiLmlwZGNyb2FtaW5nXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmR2Yi5pcHR2LmFsZmVjLWJhc2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZHZiLmlwdHYuYWxmZWMtZW5oYW5jZW1lbnRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZHZiLm5vdGlmLWFnZ3JlZ2F0ZS1yb290K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmR2Yi5ub3RpZi1jb250YWluZXIreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZHZiLm5vdGlmLWdlbmVyaWMreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZHZiLm5vdGlmLWlhLW1zZ2xpc3QreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZHZiLm5vdGlmLWlhLXJlZ2lzdHJhdGlvbi1yZXF1ZXN0K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmR2Yi5ub3RpZi1pYS1yZWdpc3RyYXRpb24tcmVzcG9uc2UreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZHZiLm5vdGlmLWluaXQreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZHZiLnBmclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5kdmIuc2VydmljZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInN2Y1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmR4clwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5keW5hZ2VvXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZ2VvXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZHpyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmVhc3lrYXJhb2tlLmNkZ2Rvd25sb2FkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmVjZGlzLXVwZGF0ZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5lY2lwLnJscFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5lY2xpcHNlLmRpdHRvK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5lY293aW4uY2hhcnRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtYWdcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5lY293aW4uZmlsZXJlcXVlc3RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZWNvd2luLmZpbGV1cGRhdGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZWNvd2luLnNlcmllc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5lY293aW4uc2VyaWVzcmVxdWVzdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5lY293aW4uc2VyaWVzdXBkYXRlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmVmaS5pbWdcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZWZpLmlzb1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5lbG4remlwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmVtY2xpZW50LmFjY2Vzc3JlcXVlc3QreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZW5saXZlblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm5tbFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmVucGhhc2UuZW52b3lcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZXByaW50cy5kYXRhK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmVwc29uLmVzZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImVzZlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmVwc29uLm1zZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1zZlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmVwc29uLnF1aWNrYW5pbWVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJxYW1cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5lcHNvbi5zYWx0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic2x0XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZXBzb24uc3NmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic3NmXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZXJpY3Nzb24ucXVpY2tjYWxsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmVyb2ZzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmVzcGFzcy1lc3Bhc3MremlwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmVzemlnbm8zK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZXMzXCIsIFwiZXQzXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZXRzaS5hb2MreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZXRzaS5hc2ljLWUremlwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmV0c2kuYXNpYy1zK3ppcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2VcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ldHNpLmN1Zyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ldHNpLmlwdHZjb21tYW5kK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmV0c2kuaXB0dmRpc2NvdmVyeSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ldHNpLmlwdHZwcm9maWxlK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmV0c2kuaXB0dnNhZC1iYyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ldHNpLmlwdHZzYWQtY29kK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmV0c2kuaXB0dnNhZC1ucHZyK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmV0c2kuaXB0dnNlcnZpY2UreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZXRzaS5pcHR2c3luYyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ldHNpLmlwdHZ1ZXByb2ZpbGUreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZXRzaS5tY2lkK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmV0c2kubWhlZzVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZXRzaS5vdmVybG9hZC1jb250cm9sLXBvbGljeS1kYXRhc2V0K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmV0c2kucHN0bit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ldHNpLnNjaSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ldHNpLnNpbXNlcnZzK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmV0c2kudGltZXN0YW1wLXRva2VuXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmV0c2kudHNsK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmV0c2kudHNsLmRlclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ldS5rYXNwYXJpYW4uY2FyK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ldWRvcmEuZGF0YVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ldm9sdi5lY2lnLnByb2ZpbGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZXZvbHYuZWNpZy5zZXR0aW5nc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ldm9sdi5lY2lnLnRoZW1lXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmV4c3RyZWFtLWVtcG93ZXIremlwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmV4c3RyZWFtLXBhY2thZ2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZXpwaXgtYWxidW1cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJlejJcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5lenBpeC1wYWNrYWdlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZXozXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZi1zZWN1cmUubW9iaWxlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmZhbWlseXNlYXJjaC5nZWRjb20remlwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmZhc3Rjb3B5LWRpc2staW1hZ2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZmRmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJmZGZcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5mZHNuLm1zZWVkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibXNlZWRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5mZHNuLnNlZWRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzZWVkXCIsIFwiZGF0YWxlc3NcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5mZHNuLnN0YXRpb254bWwreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY2hhcnNldDogXCJYTUwtQkFTRURcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZmZzbnNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZmljbGFiLmZsYit6aXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZmlsbWl0LnpmY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5maW50c1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5maXJlbW9ua2V5cy5jbG91ZGNlbGxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZmxvZ3JhcGhpdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImdwaFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmZsdXh0aW1lLmNsaXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJmdGNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5mb250LWZvbnRmb3JnZS1zZmRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZnJhbWVtYWtlclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImZtXCIsIFwiZnJhbWVcIiwgXCJtYWtlclwiLCBcImJvb2tcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5mcmVlbG9nLmNvbWljXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmZyb2dhbnMuZm5jXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJmbmNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5mcm9nYW5zLmx0ZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibHRmXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZnNjLndlYmxhdW5jaFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImZzY1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmZ1amlmaWxtLmZiLmRvY3V3b3Jrc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5mdWppZmlsbS5mYi5kb2N1d29ya3MuYmluZGVyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmZ1amlmaWxtLmZiLmRvY3V3b3Jrcy5jb250YWluZXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZnVqaWZpbG0uZmIuamZpK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmZ1aml0c3Uub2FzeXNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJvYXNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5mdWppdHN1Lm9hc3lzMlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm9hMlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmZ1aml0c3Uub2FzeXMzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wib2EzXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZnVqaXRzdS5vYXN5c2dwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZmc1XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZnVqaXRzdS5vYXN5c3Byc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImJoMlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmZ1aml4ZXJveC5hcnQtZXhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZnVqaXhlcm94LmFydDRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZnVqaXhlcm94LmRkZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImRkZFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmZ1aml4ZXJveC5kb2N1d29ya3NcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ4ZHdcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5mdWppeGVyb3guZG9jdXdvcmtzLmJpbmRlclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInhiZFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmZ1aml4ZXJveC5kb2N1d29ya3MuY29udGFpbmVyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmZ1aml4ZXJveC5oYnBsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmZ1dC1taXNuZXRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZnV0b2luK2Nib3JcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZnV0b2luK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5mdXp6eXNoZWV0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZnpzXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ2E0Z2gucGFzc3BvcnQrand0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmdlbm9tYXRpeC50dXhlZG9cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ0eGRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5nZW5vemlwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmdlbnRpY3MuZ3JkK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5nZW50b28uY2F0bWV0YWRhdGEreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ2VudG9vLmVidWlsZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5nZW50b28uZWNsYXNzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmdlbnRvby5ncGtnXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmdlbnRvby5tYW5pZmVzdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5nZW50b28ucGtnbWV0YWRhdGEreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ2VudG9vLnhwYWtcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ2VvK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmdlb2N1YmUreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5nZW9nZWJyYS5maWxlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZ2diXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ2VvZ2VicmEucGluYm9hcmRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ2VvZ2VicmEuc2xpZGVzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZ2dzXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ2VvZ2VicmEudG9vbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImdndFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmdlb21ldHJ5LWV4cGxvcmVyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZ2V4XCIsIFwiZ3JlXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ2VvbmV4dFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImd4dFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmdlb3BsYW5cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJnMndcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5nZW9zcGFjZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImczd1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmdlcmJlclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5nbG9iYWxwbGF0Zm9ybS5jYXJkLWNvbnRlbnQtbWd0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmdsb2JhbHBsYXRmb3JtLmNhcmQtY29udGVudC1tZ3QtcmVzcG9uc2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ214XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZ214XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ251LnRhbGVyLmV4Y2hhbmdlK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5nbnUudGFsZXIubWVyY2hhbnQranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmdvb2dsZS1hcHBzLmF1ZGlvXCI6IHt9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ29vZ2xlLWFwcHMuZG9jdW1lbnRcIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJnZG9jXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ29vZ2xlLWFwcHMuZHJhd2luZ1wiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImdkcmF3XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ29vZ2xlLWFwcHMuZHJpdmUtc2RrXCI6IHtcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmdvb2dsZS1hcHBzLmZpbGVcIjoge30sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5nb29nbGUtYXBwcy5mb2xkZXJcIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ29vZ2xlLWFwcHMuZm9ybVwiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImdmb3JtXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ29vZ2xlLWFwcHMuZnVzaW9udGFibGVcIjoge30sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5nb29nbGUtYXBwcy5qYW1cIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJnamFtXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ29vZ2xlLWFwcHMubWFpbC1sYXlvdXRcIjoge30sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5nb29nbGUtYXBwcy5tYXBcIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJnbWFwXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ29vZ2xlLWFwcHMucGhvdG9cIjoge30sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5nb29nbGUtYXBwcy5wcmVzZW50YXRpb25cIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJnc2xpZGVzXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ29vZ2xlLWFwcHMuc2NyaXB0XCI6IHtcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZ3NjcmlwdFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmdvb2dsZS1hcHBzLnNob3J0Y3V0XCI6IHt9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ29vZ2xlLWFwcHMuc2l0ZVwiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImdzaXRlXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ29vZ2xlLWFwcHMuc3ByZWFkc2hlZXRcIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJnc2hlZXRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5nb29nbGUtYXBwcy51bmtub3duXCI6IHt9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ29vZ2xlLWFwcHMudmlkZW9cIjoge30sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5nb29nbGUtZWFydGgua21sK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wia21sXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ29vZ2xlLWVhcnRoLmttelwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImttelwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmdvdi5zay5lLWZvcm0reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5nb3Yuc2suZS1mb3JtK3ppcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2VcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5nb3Yuc2sueG1sZGF0YWNvbnRhaW5lcit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInhkY2ZcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ncHhzZWUubWFwK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmdyYWZlcVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImdxZlwiLCBcImdxc1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmdyaWRtcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ncm9vdmUtYWNjb3VudFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImdhY1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmdyb292ZS1oZWxwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZ2hmXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ3Jvb3ZlLWlkZW50aXR5LW1lc3NhZ2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJnaW1cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ncm9vdmUtaW5qZWN0b3JcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJncnZcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ncm9vdmUtdG9vbC1tZXNzYWdlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZ3RtXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ3Jvb3ZlLXRvb2wtdGVtcGxhdGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ0cGxcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ncm9vdmUtdmNhcmRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ2Y2dcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5oYWwranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmhhbCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImhhbFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmhhbmRoZWxkLWVudGVydGFpbm1lbnQreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ6bW1cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5oYmNpXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiaGJjaVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmhjK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5oY2wtYmlyZXBvcnRzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmhkdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5oZXJva3UranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmhoZS5sZXNzb24tcGxheWVyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibGVzXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaHAtaHBnbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImhwZ2xcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ocC1ocGlkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiaHBpZFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmhwLWhwc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImhwc1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmhwLWpseXRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJqbHRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ocC1wY2xcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwY2xcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ocC1wY2x4bFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInBjbHhsXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaHNsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmh0dHBob25lXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmh5ZHJvc3RhdGl4LnNvZi1kYXRhXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic2ZkLWhkc3R4XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaHlwZXIranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmh5cGVyLWl0ZW0ranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmh5cGVyZHJpdmUranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmh6bi0zZC1jcm9zc3dvcmRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaWJtLmFmcGxpbmVkYXRhXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaWJtLmVsZWN0cm9uaWMtbWVkaWFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaWJtLm1pbmlwYXlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtcHlcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5pYm0ubW9kY2FwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJhZnBcIiwgXCJsaXN0YWZwXCIsIFwibGlzdDM4MjBcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5pYm0ucmlnaHRzLW1hbmFnZW1lbnRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJpcm1cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5pYm0uc2VjdXJlLWNvbnRhaW5lclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNjXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaWNjcHJvZmlsZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImljY1wiLCBcImljbVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmllZWUuMTkwNVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5pZ2xvYWRlclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImlnbFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmltYWdlbWV0ZXIuZm9sZGVyK3ppcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2VcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5pbWFnZW1ldGVyLmltYWdlK3ppcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2VcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5pbW1lcnZpc2lvbi1pdnBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJpdnBcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5pbW1lcnZpc2lvbi1pdnVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJpdnVcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5pbXMuaW1zY2N2MXAxXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmltcy5pbXNjY3YxcDJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaW1zLmltc2NjdjFwM1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5pbXMubGlzLnYyLnJlc3VsdCtqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaW1zLmx0aS52Mi50b29sY29uc3VtZXJwcm9maWxlK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5pbXMubHRpLnYyLnRvb2xwcm94eStqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaW1zLmx0aS52Mi50b29scHJveHkuaWQranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmltcy5sdGkudjIudG9vbHNldHRpbmdzK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5pbXMubHRpLnYyLnRvb2xzZXR0aW5ncy5zaW1wbGUranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmluZm9ybWVkY29udHJvbC5ybXMreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaW5mb3JtaXgtdmlzaW9uYXJ5XCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaW5mb3RlY2gucHJvamVjdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5pbmZvdGVjaC5wcm9qZWN0K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmlubm9wYXRoLndhbXAubm90aWZpY2F0aW9uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmluc29ycy5pZ21cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJpZ21cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5pbnRlcmNvbi5mb3JtbmV0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieHB3XCIsIFwieHB4XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaW50ZXJnZW9cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJpMmdcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5pbnRlcnRydXN0LmRpZ2lib3hcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaW50ZXJ0cnVzdC5ubmNwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmludHUucWJvXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicWJvXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaW50dS5xZnhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJxZnhcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5pcGZzLmlwbnMtcmVjb3JkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmlwbGQuY2FyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmlwbGQuZGFnLWNib3JcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaXBsZC5kYWctanNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5pcGxkLnJhd1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5pcHRjLmcyLmNhdGFsb2dpdGVtK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmlwdGMuZzIuY29uY2VwdGl0ZW0reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaXB0Yy5nMi5rbm93bGVkZ2VpdGVtK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmlwdGMuZzIubmV3c2l0ZW0reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaXB0Yy5nMi5uZXdzbWVzc2FnZSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5pcHRjLmcyLnBhY2thZ2VpdGVtK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmlwdGMuZzIucGxhbm5pbmdpdGVtK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmlwdW5wbHVnZ2VkLnJjcHJvZmlsZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInJjcHJvZmlsZVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmlyZXBvc2l0b3J5LnBhY2thZ2UreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJpcnBcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5pcy14cHJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ4cHJcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5pc2FjLmZjc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImZjc1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmlzbzExNzgzLTEwK3ppcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2VcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5qYW1cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJqYW1cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5qYXBhbm5ldC1kaXJlY3Rvcnktc2VydmljZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5qYXBhbm5ldC1qcG5zdG9yZS13YWtldXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuamFwYW5uZXQtcGF5bWVudC13YWtldXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuamFwYW5uZXQtcmVnaXN0cmF0aW9uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmphcGFubmV0LXJlZ2lzdHJhdGlvbi13YWtldXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuamFwYW5uZXQtc2V0c3RvcmUtd2FrZXVwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmphcGFubmV0LXZlcmlmaWNhdGlvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5qYXBhbm5ldC12ZXJpZmljYXRpb24td2FrZXVwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmpjcC5qYXZhbWUubWlkbGV0LXJtc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInJtc1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmppc3BcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJqaXNwXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuam9vc3Quam9kYS1hcmNoaXZlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiam9kYVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmpzay5pc2RuLW5nblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5rYWhvb3R6XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wia3R6XCIsIFwia3RyXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQua2RlLmthcmJvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImthcmJvblwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmtkZS5rY2hhcnRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJjaHJ0XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQua2RlLmtmb3JtdWxhXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wia2ZvXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQua2RlLmtpdmlvXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZmx3XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQua2RlLmtvbnRvdXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJrb25cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5rZGUua3ByZXNlbnRlclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImtwclwiLCBcImtwdFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmtkZS5rc3ByZWFkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wia3NwXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQua2RlLmt3b3JkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wia3dkXCIsIFwia3d0XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQua2RsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmtlbmFtZWFhcHBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJodGtlXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQua2V5bWFuLmttcCt6aXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQua2V5bWFuLmtteFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5raWRzcGlyYXRpb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJraWFcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5raW5hclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImtuZVwiLCBcImtucFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmtvYW5cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJza3BcIiwgXCJza2RcIiwgXCJza3RcIiwgXCJza21cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5rb2Rhay1kZXNjcmlwdG9yXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic3NlXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubGFzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmxhcy5sYXMranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmxhcy5sYXMreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJsYXN4bWxcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5sYXN6aXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubGRldi5wcm9kdWN0bGljZW5zaW5nXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmxlYXAranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmxpYmVydHktcmVxdWVzdCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5sbGFtYWdyYXBoaWNzLmxpZmUtYmFsYW5jZS5kZXNrdG9wXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibGJkXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubGxhbWFncmFwaGljcy5saWZlLWJhbGFuY2UuZXhjaGFuZ2UreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJsYmVcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5sb2dpcGlwZS5jaXJjdWl0K3ppcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2VcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5sb29tXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmxvdHVzLTEtMi0zXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiMTIzXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubG90dXMtYXBwcm9hY2hcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJhcHJcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5sb3R1cy1mcmVlbGFuY2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwcmVcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5sb3R1cy1ub3Rlc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm5zZlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmxvdHVzLW9yZ2FuaXplclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm9yZ1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmxvdHVzLXNjcmVlbmNhbVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNjbVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmxvdHVzLXdvcmRwcm9cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJsd3BcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tYWNwb3J0cy5wb3J0cGtnXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicG9ydHBrZ1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1hcGJveC12ZWN0b3ItdGlsZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm12dFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1hcmxpbi5kcm0uYWN0aW9udG9rZW4reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubWFybGluLmRybS5jb25mdG9rZW4reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubWFybGluLmRybS5saWNlbnNlK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1hcmxpbi5kcm0ubWRjZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tYXNvbitqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubWF4YXIuYXJjaGl2ZS4zdHoremlwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1heG1pbmQubWF4bWluZC1kYlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tY2RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtY2RcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tZGxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubWRsLW1ic2RmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1lZGNhbGNkYXRhXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibWMxXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubWVkaWFzdGF0aW9uLmNka2V5XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY2RrZXlcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tZWRpY2FsaG9sb2RlY2sucmVjb3JkeHJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubWVyaWRpYW4tc2xpbmdzaG90XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1lcm1haWRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubWZlclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm13ZlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1mbXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtZm1cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5taWNybytqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubWljcm9ncmFmeC5mbG9cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJmbG9cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5taWNyb2dyYWZ4LmlneFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImlneFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1pY3Jvc29mdC5wb3J0YWJsZS1leGVjdXRhYmxlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1pY3Jvc29mdC53aW5kb3dzLnRodW1ibmFpbC1jYWNoZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5taWVsZStqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubWlmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibWlmXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubWluaXNvZnQtaHAzMDAwLXNhdmVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubWl0c3ViaXNoaS5taXN0eS1ndWFyZC50cnVzdHdlYlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tb2JpdXMuZGFmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZGFmXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubW9iaXVzLmRpc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImRpc1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1vYml1cy5tYmtcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtYmtcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tb2JpdXMubXF5XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibXF5XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubW9iaXVzLm1zbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1zbFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1vYml1cy5wbGNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwbGNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tb2JpdXMudHhmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widHhmXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubW9kbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tb3BodW4uYXBwbGljYXRpb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtcG5cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tb3BodW4uY2VydGlmaWNhdGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtcGNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tb3Rvcm9sYS5mbGV4c3VpdGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubW90b3JvbGEuZmxleHN1aXRlLmFkc2lcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubW90b3JvbGEuZmxleHN1aXRlLmZpc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tb3Rvcm9sYS5mbGV4c3VpdGUuZ290YXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubW90b3JvbGEuZmxleHN1aXRlLmttclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tb3Rvcm9sYS5mbGV4c3VpdGUudHRjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1vdG9yb2xhLmZsZXhzdWl0ZS53ZW1cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubW90b3JvbGEuaXBybVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tb3ppbGxhLnh1bCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInh1bFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1zLTNtZmRvY3VtZW50XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1zLWFydGdhbHJ5XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY2lsXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubXMtYXNmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1zLWNhYi1jb21wcmVzc2VkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY2FiXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubXMtY29sb3IuaWNjcHJvZmlsZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieGxzXCIsIFwieGxtXCIsIFwieGxhXCIsIFwieGxjXCIsIFwieGx0XCIsIFwieGx3XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwuYWRkaW4ubWFjcm9lbmFibGVkLjEyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieGxhbVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsLnNoZWV0LmJpbmFyeS5tYWNyb2VuYWJsZWQuMTJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ4bHNiXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwuc2hlZXQubWFjcm9lbmFibGVkLjEyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieGxzbVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsLnRlbXBsYXRlLm1hY3JvZW5hYmxlZC4xMlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInhsdG1cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tcy1mb250b2JqZWN0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJlb3RcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tcy1odG1saGVscFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImNobVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1zLWltc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImltc1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1zLWxybVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImxybVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1zLW9mZmljZS5hY3RpdmV4K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1zLW9mZmljZXRoZW1lXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widGhteFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1zLW9wZW50eXBlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tcy1vdXRsb29rXCI6IHtcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibXNnXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubXMtcGFja2FnZS5vYmZ1c2NhdGVkLW9wZW50eXBlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubXMtcGtpLnNlY2NhdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY2F0XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubXMtcGtpLnN0bFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic3RsXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubXMtcGxheXJlYWR5LmluaXRpYXRvcit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tcy1wb3dlcnBvaW50XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicHB0XCIsIFwicHBzXCIsIFwicG90XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubXMtcG93ZXJwb2ludC5hZGRpbi5tYWNyb2VuYWJsZWQuMTJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwcGFtXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubXMtcG93ZXJwb2ludC5wcmVzZW50YXRpb24ubWFjcm9lbmFibGVkLjEyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicHB0bVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1zLXBvd2VycG9pbnQuc2xpZGUubWFjcm9lbmFibGVkLjEyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic2xkbVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1zLXBvd2VycG9pbnQuc2xpZGVzaG93Lm1hY3JvZW5hYmxlZC4xMlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInBwc21cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tcy1wb3dlcnBvaW50LnRlbXBsYXRlLm1hY3JvZW5hYmxlZC4xMlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInBvdG1cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tcy1wcmludGRldmljZWNhcGFiaWxpdGllcyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tcy1wcmludGluZy5wcmludHRpY2tldCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1zLXByaW50c2NoZW1hdGlja2V0K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1zLXByb2plY3RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtcHBcIiwgXCJtcHRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tcy10bmVmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1zLXZpc2lvLnZpZXdlclwiOiB7XG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInZkeFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1zLXdpbmRvd3MuZGV2aWNlcGFpcmluZ1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tcy13aW5kb3dzLm53cHJpbnRpbmcub29iXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1zLXdpbmRvd3MucHJpbnRlcnBhaXJpbmdcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubXMtd2luZG93cy53c2Qub29iXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1zLXdtZHJtLmxpYy1jaGxnLXJlcVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tcy13bWRybS5saWMtcmVzcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tcy13bWRybS5tZXRlci1jaGxnLXJlcVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tcy13bWRybS5tZXRlci1yZXNwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1zLXdvcmQuZG9jdW1lbnQubWFjcm9lbmFibGVkLjEyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZG9jbVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1zLXdvcmQudGVtcGxhdGUubWFjcm9lbmFibGVkLjEyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZG90bVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1zLXdvcmtzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wid3BzXCIsIFwid2tzXCIsIFwid2NtXCIsIFwid2RiXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubXMtd3BsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wid3BsXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubXMteHBzZG9jdW1lbnRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ4cHNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tc2EtZGlzay1pbWFnZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tc2VxXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibXNlcVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1zZ3BhY2tcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubXNpZ25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubXVsdGlhZC5jcmVhdG9yXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm11bHRpYWQuY3JlYXRvci5jaWZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubXVzaWMtbmlmZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tdXNpY2lhblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm11c1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm11dmVlLnN0eWxlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibXN0eVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm15bmZjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widGFnbGV0XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubmFjYW1hci55YnJpZCtqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubmF0by5iaW5kaW5nZGF0YW9iamVjdCtjYm9yXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm5hdG8uYmluZGluZ2RhdGFvYmplY3QranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm5hdG8uYmluZGluZ2RhdGFvYmplY3QreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJiZG9cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5uYXRvLm9wZW54bWxmb3JtYXRzLXBhY2thZ2UuaWVwZCt6aXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubmNkLmNvbnRyb2xcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubmNkLnJlZmVyZW5jZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5uZWFyc3QuaW52K2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5uZWJ1bWluZC5saW5lXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm5lcnZhbmFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubmV0ZnB4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm5ldXJvbGFuZ3VhZ2Uubmx1XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibmx1XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubmltblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5uaW50ZW5kby5uaXRyby5yb21cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubmludGVuZG8uc25lcy5yb21cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubml0ZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm50ZlwiLCBcIm5pdGZcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ub2JsZW5ldC1kaXJlY3RvcnlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJubmRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ub2JsZW5ldC1zZWFsZXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJubnNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ub2JsZW5ldC13ZWJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJubndcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ub2tpYS5jYXRhbG9nc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ub2tpYS5jb25tbCt3YnhtbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ub2tpYS5jb25tbCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ub2tpYS5pcHR2LmNvbmZpZyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ub2tpYS5pc2RzLXJhZGlvLXByZXNldHNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubm9raWEubGFuZG1hcmsrd2J4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubm9raWEubGFuZG1hcmsreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubm9raWEubGFuZG1hcmtjb2xsZWN0aW9uK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm5va2lhLm4tZ2FnZS5hYyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImFjXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubm9raWEubi1nYWdlLmRhdGFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJuZ2RhdFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm5va2lhLm4tZ2FnZS5zeW1iaWFuLmluc3RhbGxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm4tZ2FnZVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm5va2lhLm5jZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ub2tpYS5wY2Qrd2J4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubm9raWEucGNkK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm5va2lhLnJhZGlvLXByZXNldFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInJwc3RcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ub2tpYS5yYWRpby1wcmVzZXRzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicnBzc1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm5vdmFkaWdtLmVkbVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImVkbVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm5vdmFkaWdtLmVkeFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImVkeFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm5vdmFkaWdtLmV4dFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImV4dFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm50dC1sb2NhbC5jb250ZW50LXNoYXJlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm50dC1sb2NhbC5maWxlLXRyYW5zZmVyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm50dC1sb2NhbC5vZ3dfcmVtb3RlLWFjY2Vzc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5udHQtbG9jYWwuc2lwLXRhX3JlbW90ZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5udHQtbG9jYWwuc2lwLXRhX3RjcF9zdHJlYW1cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub2FpLndvcmtmbG93c1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vYWkud29ya2Zsb3dzK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vYWkud29ya2Zsb3dzK3lhbWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub2FzaXMub3BlbmRvY3VtZW50LmJhc2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub2FzaXMub3BlbmRvY3VtZW50LmNoYXJ0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wib2RjXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub2FzaXMub3BlbmRvY3VtZW50LmNoYXJ0LXRlbXBsYXRlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wib3RjXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub2FzaXMub3BlbmRvY3VtZW50LmRhdGFiYXNlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJvZGJcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vYXNpcy5vcGVuZG9jdW1lbnQuZm9ybXVsYVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm9kZlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9hc2lzLm9wZW5kb2N1bWVudC5mb3JtdWxhLXRlbXBsYXRlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wib2RmdFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9hc2lzLm9wZW5kb2N1bWVudC5ncmFwaGljc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm9kZ1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9hc2lzLm9wZW5kb2N1bWVudC5ncmFwaGljcy10ZW1wbGF0ZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm90Z1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9hc2lzLm9wZW5kb2N1bWVudC5pbWFnZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm9kaVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9hc2lzLm9wZW5kb2N1bWVudC5pbWFnZS10ZW1wbGF0ZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm90aVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9hc2lzLm9wZW5kb2N1bWVudC5wcmVzZW50YXRpb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJvZHBcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vYXNpcy5vcGVuZG9jdW1lbnQucHJlc2VudGF0aW9uLXRlbXBsYXRlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wib3RwXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub2FzaXMub3BlbmRvY3VtZW50LnNwcmVhZHNoZWV0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wib2RzXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub2FzaXMub3BlbmRvY3VtZW50LnNwcmVhZHNoZWV0LXRlbXBsYXRlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wib3RzXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub2FzaXMub3BlbmRvY3VtZW50LnRleHRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJvZHRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vYXNpcy5vcGVuZG9jdW1lbnQudGV4dC1tYXN0ZXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJvZG1cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vYXNpcy5vcGVuZG9jdW1lbnQudGV4dC1tYXN0ZXItdGVtcGxhdGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub2FzaXMub3BlbmRvY3VtZW50LnRleHQtdGVtcGxhdGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJvdHRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vYXNpcy5vcGVuZG9jdW1lbnQudGV4dC13ZWJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJvdGhcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vYm5cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub2NmK2Nib3JcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub2NpLmltYWdlLm1hbmlmZXN0LnYxK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vZnRuLmwxMG4ranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9pcGYuY29udGVudGFjY2Vzc2Rvd25sb2FkK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9pcGYuY29udGVudGFjY2Vzc3N0cmVhbWluZyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vaXBmLmNzcGctaGV4YmluYXJ5XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9pcGYuZGFlLnN2Zyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vaXBmLmRhZS54aHRtbCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vaXBmLm1pcHB2Y29udHJvbG1lc3NhZ2UreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub2lwZi5wYWUuZ2VtXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9pcGYuc3BkaXNjb3ZlcnkreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub2lwZi5zcGRsaXN0K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9pcGYudWVwcm9maWxlK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9pcGYudXNlcnByb2ZpbGUreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub2xwYy1zdWdhclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInhvXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub21hLXNjd3MtY29uZmlnXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9tYS1zY3dzLWh0dHAtcmVxdWVzdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vbWEtc2N3cy1odHRwLXJlc3BvbnNlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9tYS5iY2FzdC5hc3NvY2lhdGVkLXByb2NlZHVyZS1wYXJhbWV0ZXIreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub21hLmJjYXN0LmRybS10cmlnZ2VyK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub21hLmJjYXN0LmltZCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vbWEuYmNhc3QubHRrbVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vbWEuYmNhc3Qubm90aWZpY2F0aW9uK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9tYS5iY2FzdC5wcm92aXNpb25pbmd0cmlnZ2VyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9tYS5iY2FzdC5zZ2Jvb3RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub21hLmJjYXN0LnNnZGQreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub21hLmJjYXN0LnNnZHVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub21hLmJjYXN0LnNpbXBsZS1zeW1ib2wtY29udGFpbmVyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9tYS5iY2FzdC5zbWFydGNhcmQtdHJpZ2dlcit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9tYS5iY2FzdC5zcHJvdit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vbWEuYmNhc3Quc3RrbVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vbWEuY2FiLWFkZHJlc3MtYm9vayt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vbWEuY2FiLWZlYXR1cmUtaGFuZGxlcit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vbWEuY2FiLXBjYyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vbWEuY2FiLXN1YnMtaW52aXRlK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9tYS5jYWItdXNlci1wcmVmcyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vbWEuZGNkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9tYS5kY2RjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9tYS5kZDIreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJkZDJcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vbWEuZHJtLnJpc2QreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub21hLmdyb3VwLXVzYWdlLWxpc3QreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub21hLmx3bTJtK2Nib3JcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub21hLmx3bTJtK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vbWEubHdtMm0rdGx2XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9tYS5wYWwreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub21hLnBvYy5kZXRhaWxlZC1wcm9ncmVzcy1yZXBvcnQreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub21hLnBvYy5maW5hbC1yZXBvcnQreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub21hLnBvYy5ncm91cHMreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub21hLnBvYy5pbnZvY2F0aW9uLWRlc2NyaXB0b3IreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub21hLnBvYy5vcHRpbWl6ZWQtcHJvZ3Jlc3MtcmVwb3J0K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9tYS5wdXNoXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9tYS5zY2lkbS5tZXNzYWdlcyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vbWEueGNhcC1kaXJlY3RvcnkreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub21hZHMtZW1haWwreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY2hhcnNldDogXCJVVEYtOFwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vbWFkcy1maWxlK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNoYXJzZXQ6IFwiVVRGLThcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub21hZHMtZm9sZGVyK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNoYXJzZXQ6IFwiVVRGLThcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub21hbG9jLXN1cGwtaW5pdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vbmVwYWdlclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vbmVwYWdlcnRhbXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub25lcGFnZXJ0YW14XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9uZXBhZ2VydGF0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9uZXBhZ2VydGF0cFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vbmVwYWdlcnRhdHhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub252aWYubWV0YWRhdGFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbmJsb3guZ2FtZSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm9iZ3hcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVuYmxveC5nYW1lLWJpbmFyeVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVuZXllLm9lYlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVub2ZmaWNlb3JnLmV4dGVuc2lvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wib3h0XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnN0cmVldG1hcC5kYXRhK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wib3NtXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnRpbWVzdGFtcHMub3RzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW52cGkuZHNweCtqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuY3VzdG9tLXByb3BlcnRpZXMreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuY3VzdG9teG1scHJvcGVydGllcyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5kcmF3aW5nK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LmRyYXdpbmdtbC5jaGFydCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5kcmF3aW5nbWwuY2hhcnRzaGFwZXMreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuZHJhd2luZ21sLmRpYWdyYW1jb2xvcnMreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuZHJhd2luZ21sLmRpYWdyYW1kYXRhK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LmRyYXdpbmdtbC5kaWFncmFtbGF5b3V0K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LmRyYXdpbmdtbC5kaWFncmFtc3R5bGUreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuZXh0ZW5kZWQtcHJvcGVydGllcyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5wcmVzZW50YXRpb25tbC5jb21tZW50YXV0aG9ycyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5wcmVzZW50YXRpb25tbC5jb21tZW50cyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5wcmVzZW50YXRpb25tbC5oYW5kb3V0bWFzdGVyK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnByZXNlbnRhdGlvbm1sLm5vdGVzbWFzdGVyK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnByZXNlbnRhdGlvbm1sLm5vdGVzc2xpZGUreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQucHJlc2VudGF0aW9ubWwucHJlc2VudGF0aW9uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicHB0eFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnByZXNlbnRhdGlvbm1sLnByZXNlbnRhdGlvbi5tYWluK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnByZXNlbnRhdGlvbm1sLnByZXNwcm9wcyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5wcmVzZW50YXRpb25tbC5zbGlkZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNsZHhcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5wcmVzZW50YXRpb25tbC5zbGlkZSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5wcmVzZW50YXRpb25tbC5zbGlkZWxheW91dCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5wcmVzZW50YXRpb25tbC5zbGlkZW1hc3Rlcit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5wcmVzZW50YXRpb25tbC5zbGlkZXNob3dcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwcHN4XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQucHJlc2VudGF0aW9ubWwuc2xpZGVzaG93Lm1haW4reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQucHJlc2VudGF0aW9ubWwuc2xpZGV1cGRhdGVpbmZvK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnByZXNlbnRhdGlvbm1sLnRhYmxlc3R5bGVzK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnByZXNlbnRhdGlvbm1sLnRhZ3MreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQucHJlc2VudGF0aW9ubWwudGVtcGxhdGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwb3R4XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQucHJlc2VudGF0aW9ubWwudGVtcGxhdGUubWFpbit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5wcmVzZW50YXRpb25tbC52aWV3cHJvcHMreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5jYWxjY2hhaW4reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5jaGFydHNoZWV0K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuY29tbWVudHMreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5jb25uZWN0aW9ucyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLmRpYWxvZ3NoZWV0K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuZXh0ZXJuYWxsaW5rK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwucGl2b3RjYWNoZWRlZmluaXRpb24reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5waXZvdGNhY2hlcmVjb3Jkcyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnBpdm90dGFibGUreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5xdWVyeXRhYmxlK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwucmV2aXNpb25oZWFkZXJzK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwucmV2aXNpb25sb2creG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5zaGFyZWRzdHJpbmdzK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuc2hlZXRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ4bHN4XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5zaGVldC5tYWluK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuc2hlZXRtZXRhZGF0YSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnN0eWxlcyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnRhYmxlK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwudGFibGVzaW5nbGVjZWxscyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnRlbXBsYXRlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieGx0eFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwudGVtcGxhdGUubWFpbit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnVzZXJuYW1lcyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnZvbGF0aWxlZGVwZW5kZW5jaWVzK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwud29ya3NoZWV0K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnRoZW1lK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnRoZW1lb3ZlcnJpZGUreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQudm1sZHJhd2luZ1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC53b3JkcHJvY2Vzc2luZ21sLmNvbW1lbnRzK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LndvcmRwcm9jZXNzaW5nbWwuZG9jdW1lbnRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJkb2N4XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQud29yZHByb2Nlc3NpbmdtbC5kb2N1bWVudC5nbG9zc2FyeSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC53b3JkcHJvY2Vzc2luZ21sLmRvY3VtZW50Lm1haW4reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQud29yZHByb2Nlc3NpbmdtbC5lbmRub3Rlcyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC53b3JkcHJvY2Vzc2luZ21sLmZvbnR0YWJsZSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC53b3JkcHJvY2Vzc2luZ21sLmZvb3Rlcit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC53b3JkcHJvY2Vzc2luZ21sLmZvb3Rub3Rlcyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC53b3JkcHJvY2Vzc2luZ21sLm51bWJlcmluZyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC53b3JkcHJvY2Vzc2luZ21sLnNldHRpbmdzK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LndvcmRwcm9jZXNzaW5nbWwuc3R5bGVzK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LndvcmRwcm9jZXNzaW5nbWwudGVtcGxhdGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJkb3R4XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQud29yZHByb2Nlc3NpbmdtbC50ZW1wbGF0ZS5tYWluK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LndvcmRwcm9jZXNzaW5nbWwud2Vic2V0dGluZ3MreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtcGFja2FnZS5jb3JlLXByb3BlcnRpZXMreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtcGFja2FnZS5kaWdpdGFsLXNpZ25hdHVyZS14bWxzaWduYXR1cmUreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtcGFja2FnZS5yZWxhdGlvbnNoaXBzK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9yYWNsZS5yZXNvdXJjZStqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3JhbmdlLmluZGF0YVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vc2EubmV0ZGVwbG95XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9zZ2VvLm1hcGd1aWRlLnBhY2thZ2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtZ3BcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vc2dpLmJ1bmRsZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vc2dpLmRwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZHBcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vc2dpLnN1YnN5c3RlbVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImVzYVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm90cHMuY3Qta2lwK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm94bGkuY291bnRncmFwaFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5wYWdlcmR1dHkranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnBhbG1cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwZGJcIiwgXCJwcWFcIiwgXCJvcHJjXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucGFub3BseVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5wYW9zLnhtbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5wYXRlbnRkaXZlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnBhdGllbnRlY29tbXNkb2NcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucGF3YWFmaWxlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicGF3XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucGNvc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5wZy5mb3JtYXRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzdHJcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5wZy5vc2FzbGlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJlaTZcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5waWFjY2Vzcy5hcHBsaWNhdGlvbi1saWNlbmNlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnBpY3NlbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImVmaWZcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5wbWkud2lkZ2V0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wid2dcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5wb2MuZ3JvdXAtYWR2ZXJ0aXNlbWVudCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5wb2NrZXRsZWFyblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInBsZlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnBvd2VyYnVpbGRlcjZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwYmRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5wb3dlcmJ1aWxkZXI2LXNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucG93ZXJidWlsZGVyN1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5wb3dlcmJ1aWxkZXI3LXNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucG93ZXJidWlsZGVyNzVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucG93ZXJidWlsZGVyNzUtc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5wcmVtaW5ldFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5wcmV2aWV3c3lzdGVtcy5ib3hcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJib3hcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5wcm9jcmF0ZS5icnVzaHNldFwiOiB7XG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImJydXNoc2V0XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucHJvY3JlYXRlLmJydXNoXCI6IHtcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYnJ1c2hcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5wcm9jcmVhdGUuZHJlYW1cIjoge1xuICAgICAgICBleHRlbnNpb25zOiBbXCJkcm1cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5wcm90ZXVzLm1hZ2F6aW5lXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibWd6XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucHNmc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5wdC5tdW5kdXNtdW5kaVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5wdWJsaXNoYXJlLWRlbHRhLXRyZWVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJxcHNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5wdmkucHRpZDFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwdGlkXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucHdnLW11bHRpcGxleGVkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnB3Zy14aHRtbC1wcmludCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInhodG1cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5xdWFsY29tbS5icmV3LWFwcC1yZXNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucXVhcmFudGFpbmVuZXRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucXVhcmsucXVhcmt4cHJlc3NcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJxeGRcIiwgXCJxeHRcIiwgXCJxd2RcIiwgXCJxd3RcIiwgXCJxeGxcIiwgXCJxeGJcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5xdW9iamVjdC1xdW94ZG9jdW1lbnRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucmFkaXN5cy5tb21sK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnJhZGlzeXMubXNtbCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5yYWRpc3lzLm1zbWwtYXVkaXQreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucmFkaXN5cy5tc21sLWF1ZGl0LWNvbmYreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucmFkaXN5cy5tc21sLWF1ZGl0LWNvbm4reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucmFkaXN5cy5tc21sLWF1ZGl0LWRpYWxvZyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5yYWRpc3lzLm1zbWwtYXVkaXQtc3RyZWFtK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnJhZGlzeXMubXNtbC1jb25mK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnJhZGlzeXMubXNtbC1kaWFsb2creG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucmFkaXN5cy5tc21sLWRpYWxvZy1iYXNlK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnJhZGlzeXMubXNtbC1kaWFsb2ctZmF4LWRldGVjdCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5yYWRpc3lzLm1zbWwtZGlhbG9nLWZheC1zZW5kcmVjdit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5yYWRpc3lzLm1zbWwtZGlhbG9nLWdyb3VwK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnJhZGlzeXMubXNtbC1kaWFsb2ctc3BlZWNoK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnJhZGlzeXMubXNtbC1kaWFsb2ctdHJhbnNmb3JtK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnJhaW5zdG9yLmRhdGFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucmFwaWRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucmFyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicmFyXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucmVhbHZuYy5iZWRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJiZWRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5yZWNvcmRhcmUubXVzaWN4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJteGxcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5yZWNvcmRhcmUubXVzaWN4bWwreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtdXNpY3htbFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnJlbHBpcGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucmVubGVhcm4ucmxwcmludFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5yZXNpbGllbnQubG9naWNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucmVzdGZ1bCtqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucmlnLmNyeXB0b25vdGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJjcnlwdG9ub3RlXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucmltLmNvZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY29kXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucm4tcmVhbG1lZGlhXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJybVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnJuLXJlYWxtZWRpYS12YnJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInJtdmJcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5yb3V0ZTY2Lmxpbms2Nit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImxpbms2NlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnJzLTI3NHhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucnVja3VzLmRvd25sb2FkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnMzc21zXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnNhaWxpbmd0cmFja2VyLnRyYWNrXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic3RcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zYXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc2JtLmNpZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zYm0ubWlkMlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zY3JpYnVzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnNlYWxlZC4zZGZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc2VhbGVkLmNzZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zZWFsZWQuZG9jXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnNlYWxlZC5lbWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc2VhbGVkLm1odFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zZWFsZWQubmV0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnNlYWxlZC5wcHRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc2VhbGVkLnRpZmZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc2VhbGVkLnhsc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zZWFsZWRtZWRpYS5zb2Z0c2VhbC5odG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnNlYWxlZG1lZGlhLnNvZnRzZWFsLnBkZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zZWVtYWlsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic2VlXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc2Vpcytqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc2VtYVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNlbWFcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zZW1kXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic2VtZFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnNlbWZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzZW1mXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc2hhZGUtc2F2ZS1maWxlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnNoYW5hLmluZm9ybWVkLmZvcm1kYXRhXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiaWZtXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc2hhbmEuaW5mb3JtZWQuZm9ybXRlbXBsYXRlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiaXRwXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc2hhbmEuaW5mb3JtZWQuaW50ZXJjaGFuZ2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJpaWZcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zaGFuYS5pbmZvcm1lZC5wYWNrYWdlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiaXBrXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc2hvb3Rwcm9vZitqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc2hvcGtpY2sranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnNocFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zaHhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc2lncm9rLnNlc3Npb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc2ltdGVjaC1taW5kbWFwcGVyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widHdkXCIsIFwidHdkc1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnNpcmVuK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5za2V0Y2hvbWV0cnlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc21hZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1tZlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnNtYXJ0Lm5vdGVib29rXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnNtYXJ0LnRlYWNoZXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ0ZWFjaGVyXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc21pbnRpby5wb3J0YWxzLmFyY2hpdmVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc25lc2Rldi1wYWdlLXRhYmxlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnNvZnR3YXJlNjAyLmZpbGxlci5mb3JtK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZm9cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zb2Z0d2FyZTYwMi5maWxsZXIuZm9ybS14bWwtemlwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnNvbGVudC5zZGttK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic2RrbVwiLCBcInNka2RcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zcG90ZmlyZS5keHBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJkeHBcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zcG90ZmlyZS5zZnNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzZnNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zcWxpdGUzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnNzcy1jb2RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc3NzLWR0ZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zc3MtbnRmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnN0YXJkaXZpc2lvbi5jYWxjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzZGNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zdGFyZGl2aXNpb24uZHJhd1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic2RhXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc3RhcmRpdmlzaW9uLmltcHJlc3NcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNkZFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnN0YXJkaXZpc2lvbi5tYXRoXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzbWZcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zdGFyZGl2aXNpb24ud3JpdGVyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzZHdcIiwgXCJ2b3JcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zdGFyZGl2aXNpb24ud3JpdGVyLWdsb2JhbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic2dsXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc3RlcG1hbmlhLnBhY2thZ2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzbXppcFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnN0ZXBtYW5pYS5zdGVwY2hhcnRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzbVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnN0cmVldC1zdHJlYW1cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc3VuLndhZGwreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ3YWRsXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc3VuLnhtbC5jYWxjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzeGNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zdW4ueG1sLmNhbGMudGVtcGxhdGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInN0Y1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnN1bi54bWwuZHJhd1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic3hkXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc3VuLnhtbC5kcmF3LnRlbXBsYXRlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzdGRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zdW4ueG1sLmltcHJlc3NcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInN4aVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnN1bi54bWwuaW1wcmVzcy50ZW1wbGF0ZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic3RpXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc3VuLnhtbC5tYXRoXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzeG1cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zdW4ueG1sLndyaXRlclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic3h3XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc3VuLnhtbC53cml0ZXIuZ2xvYmFsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzeGdcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zdW4ueG1sLndyaXRlci50ZW1wbGF0ZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic3R3XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc3VzLWNhbGVuZGFyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic3VzXCIsIFwic3VzcFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnN2ZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInN2ZFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnN3aWZ0dmlldy1pY3NcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc3lieWwubW9sMlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zeWNsZSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zeWZ0K2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zeW1iaWFuLmluc3RhbGxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNpc1wiLCBcInNpc3hcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zeW5jbWwreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY2hhcnNldDogXCJVVEYtOFwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInhzbVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnN5bmNtbC5kbSt3YnhtbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNoYXJzZXQ6IFwiVVRGLThcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYmRtXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc3luY21sLmRtK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNoYXJzZXQ6IFwiVVRGLThcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ4ZG1cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zeW5jbWwuZG0ubm90aWZpY2F0aW9uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnN5bmNtbC5kbWRkZit3YnhtbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zeW5jbWwuZG1kZGYreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY2hhcnNldDogXCJVVEYtOFwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImRkZlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnN5bmNtbC5kbXRuZHMrd2J4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc3luY21sLmRtdG5kcyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjaGFyc2V0OiBcIlVURi04XCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnN5bmNtbC5kcy5ub3RpZmljYXRpb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQudGFibGVzY2hlbWEranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnRhby5pbnRlbnQtbW9kdWxlLWFyY2hpdmVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ0YW9cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC50Y3BkdW1wLnBjYXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwY2FwXCIsIFwiY2FwXCIsIFwiZG1wXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQudGhpbmstY2VsbC5wcHR0Yytqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQudG1kLm1lZGlhZmxleC5hcGkreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQudG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnRtb2JpbGUtbGl2ZXR2XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widG1vXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQudHJpLm9uZXNvdXJjZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC50cmlkLnRwdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInRwdFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnRyaXNjYXBlLm14c1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm14c1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnRydWVhcHBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ0cmFcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC50cnVlZG9jXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnViaXNvZnQud2VicGxheWVyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnVmZGxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ1ZmRcIiwgXCJ1ZmRsXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQudWljLm9zZG0ranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnVpcS50aGVtZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInV0elwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnVtYWppblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInVtalwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnVuaXR5XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widW5pdHl3ZWJcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC51b21sK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1widW9tbFwiLCBcInVvXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQudXBsYW5ldC5hbGVydFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC51cGxhbmV0LmFsZXJ0LXdieG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnVwbGFuZXQuYmVhcmVyLWNob2ljZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC51cGxhbmV0LmJlYXJlci1jaG9pY2Utd2J4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQudXBsYW5ldC5jYWNoZW9wXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnVwbGFuZXQuY2FjaGVvcC13YnhtbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC51cGxhbmV0LmNoYW5uZWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQudXBsYW5ldC5jaGFubmVsLXdieG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnVwbGFuZXQubGlzdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC51cGxhbmV0Lmxpc3Qtd2J4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQudXBsYW5ldC5saXN0Y21kXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnVwbGFuZXQubGlzdGNtZC13YnhtbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC51cGxhbmV0LnNpZ25hbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC51cmktbWFwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnZhbHZlLnNvdXJjZS5tYXRlcmlhbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC52Y3hcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ2Y3hcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC52ZC1zdHVkeVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC52ZWN0b3J3b3Jrc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC52ZWwranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnZlcmFpc29uLnRzbS1yZXBvcnQrY2JvclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC52ZXJhaXNvbi50c20tcmVwb3J0K2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC52ZXJpbWF0cml4LnZjYXNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQudmVyaXRvbmUuYWlvbitqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQudmVyeWFudC50aGluXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnZlcy5lbmNyeXB0ZWRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQudmlkc29mdC52aWRjb25mZXJlbmNlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnZpc2lvXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widnNkXCIsIFwidnN0XCIsIFwidnNzXCIsIFwidnN3XCIsIFwidnNkeFwiLCBcInZ0eFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnZpc2lvbmFyeVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInZpc1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnZpdmlkZW5jZS5zY3JpcHRmaWxlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnZvY2Fsc2hhcGVyLnZzcDRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQudnNmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widnNmXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQud2FwLnNpY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC53YXAuc2xjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLndhcC53YnhtbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNoYXJzZXQ6IFwiVVRGLThcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wid2J4bWxcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC53YXAud21sY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIndtbGNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC53YXAud21sc2NyaXB0Y1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIndtbHNjXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQud2FzbWZsb3cud2FmbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC53ZWJ0dXJib1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInd0YlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLndmYS5kcHBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQud2ZhLnAycFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC53ZmEud3NjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLndpbmRvd3MuZGV2aWNlcGFpcmluZ1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC53bWNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQud21mLmJvb3RzdHJhcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC53b2xmcmFtLm1hdGhlbWF0aWNhXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLndvbGZyYW0ubWF0aGVtYXRpY2EucGFja2FnZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC53b2xmcmFtLnBsYXllclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm5icFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLndvcmRsaWZ0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLndvcmRwZXJmZWN0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wid3BkXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQud3FkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wid3FkXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQud3JxLWhwMzAwMC1sYWJlbGxlZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC53dC5zdGZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzdGZcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC53di5jc3Ard2J4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQud3YuY3NwK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnd2LnNzcCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC54YWNtbCtqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQueGFyYVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInhhclwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnhhcmluLmNwalwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC54ZWNyZXRzLWVuY3J5cHRlZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC54ZmRsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieGZkbFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnhmZGwud2ViZm9ybVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC54bWkreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQueG1waWUuY3BrZ1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC54bXBpZS5kcGtnXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnhtcGllLnBsYW5cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQueG1waWUucHBrZ1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC54bXBpZS54bGltXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnlhbWFoYS5odi1kaWNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJodmRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC55YW1haGEuaHYtc2NyaXB0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiaHZzXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQueWFtYWhhLmh2LXZvaWNlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiaHZwXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQueWFtYWhhLm9wZW5zY29yZWZvcm1hdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm9zZlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnlhbWFoYS5vcGVuc2NvcmVmb3JtYXQub3NmcHZnK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wib3NmcHZnXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQueWFtYWhhLnJlbW90ZS1zZXR1cFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC55YW1haGEuc21hZi1hdWRpb1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNhZlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnlhbWFoYS5zbWFmLXBocmFzZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNwZlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnlhbWFoYS50aHJvdWdoLW5nblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC55YW1haGEudHVubmVsLXVkcGVuY2FwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnlhb3dlbWVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQueWVsbG93cml2ZXItY3VzdG9tLW1lbnVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJjbXBcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC56dWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ6aXJcIiwgXCJ6aXJ6XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuenphenouZGVjayt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInphelwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm9pY2V4bWwreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ2eG1sXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92b3VjaGVyLWNtcytqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92b3VjaGVyLWp3cytqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92cFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZwK2Nvc2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92cCtqd3RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92cS1ydGNweHJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi93YXNtXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ3YXNtXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi93YXRjaGVyaW5mbyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIndpZlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vd2VicHVzaC1vcHRpb25zK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3dob2lzcHAtcXVlcnlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi93aG9pc3BwLXJlc3BvbnNlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vd2lkZ2V0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wid2d0XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi93aW5obHBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImhscFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vd2l0YVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3dvcmRwZXJmZWN0NS4xXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vd3NkbCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIndzZGxcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3dzcG9saWN5K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wid3Nwb2xpY3lcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtN3otY29tcHJlc3NlZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiN3pcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtYWJpd29yZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYWJ3XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWFjZS1jb21wcmVzc2VkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJhY2VcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtYW1mXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWFwcGxlLWRpc2tpbWFnZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZG1nXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWFyalwiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImFyalwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1hdXRob3J3YXJlLWJpblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYWFiXCIsIFwieDMyXCIsIFwidTMyXCIsIFwidm94XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWF1dGhvcndhcmUtbWFwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJhYW1cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtYXV0aG9yd2FyZS1zZWdcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImFhc1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1iY3Bpb1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYmNwaW9cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtYmRvY1wiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImJkb2NcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtYml0dG9ycmVudFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widG9ycmVudFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1ibGVuZGVyXCI6IHtcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYmxlbmRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtYmxvcmJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImJsYlwiLCBcImJsb3JiXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWJ6aXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImJ6XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWJ6aXAyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJiejJcIiwgXCJib3pcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtY2JyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJjYnJcIiwgXCJjYmFcIiwgXCJjYnRcIiwgXCJjYnpcIiwgXCJjYjdcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtY2RsaW5rXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ2Y2RcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtY2ZzLWNvbXByZXNzZWRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImNmc1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1jaGF0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJjaGF0XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWNoZXNzLXBnblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicGduXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWNocm9tZS1leHRlbnNpb25cIjoge1xuICAgICAgICBleHRlbnNpb25zOiBbXCJjcnhcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtY29jb2FcIjoge1xuICAgICAgICBzb3VyY2U6IFwibmdpbnhcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY2NvXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWNvbXByZXNzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWNvbXByZXNzZWRcIjoge1xuICAgICAgICBleHRlbnNpb25zOiBbXCJyYXJcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtY29uZmVyZW5jZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibnNjXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWNwaW9cIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImNwaW9cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtY3NoXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJjc2hcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtZGViXCI6IHtcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1kZWJpYW4tcGFja2FnZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZGViXCIsIFwidWRlYlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1kZ2MtY29tcHJlc3NlZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZGdjXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWRpcmVjdG9yXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJkaXJcIiwgXCJkY3JcIiwgXCJkeHJcIiwgXCJjc3RcIiwgXCJjY3RcIiwgXCJjeHRcIiwgXCJ3M2RcIiwgXCJmZ2RcIiwgXCJzd2FcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtZG9vbVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wid2FkXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWR0Ym5jeCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibmN4XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWR0Ym9vayt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZHRiXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWR0YnJlc291cmNlK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJyZXNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtZHZpXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJkdmlcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtZW52b3lcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImV2eVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1ldmFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImV2YVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1mb250LWJkZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYmRmXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWZvbnQtZG9zXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWZvbnQtZnJhbWVtYWtlclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1mb250LWdob3N0c2NyaXB0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJnc2ZcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtZm9udC1saWJncnhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtZm9udC1saW51eC1wc2ZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInBzZlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1mb250LXBjZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicGNmXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWZvbnQtc25mXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzbmZcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtZm9udC1zcGVlZG9cIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtZm9udC1zdW5vcy1uZXdzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWZvbnQtdHlwZTFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInBmYVwiLCBcInBmYlwiLCBcInBmbVwiLCBcImFmbVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1mb250LXZmb250XCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWZyZWVhcmNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImFyY1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1mdXR1cmVzcGxhc2hcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNwbFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1nY2EtY29tcHJlc3NlZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZ2NhXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWdsdWx4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ1bHhcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtZ251bWVyaWNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImdudW1lcmljXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWdyYW1wcy14bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImdyYW1wc1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1ndGFyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJndGFyXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWd6aXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtaGRmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJoZGZcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtaHR0cGQtcGhwXCI6IHtcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwaHBcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtaW5zdGFsbC1pbnN0cnVjdGlvbnNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImluc3RhbGxcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtaXB5bmIranNvblwiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiaXB5bmJcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtaXNvOTY2MC1pbWFnZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiaXNvXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWl3b3JrLWtleW5vdGUtc2Zma2V5XCI6IHtcbiAgICAgICAgZXh0ZW5zaW9uczogW1wia2V5XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWl3b3JrLW51bWJlcnMtc2ZmbnVtYmVyc1wiOiB7XG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm51bWJlcnNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtaXdvcmstcGFnZXMtc2ZmcGFnZXNcIjoge1xuICAgICAgICBleHRlbnNpb25zOiBbXCJwYWdlc1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1qYXZhLWFyY2hpdmUtZGlmZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJuZ2lueFwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJqYXJkaWZmXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWphdmEtam5scC1maWxlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJqbmxwXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWphdmFzY3JpcHRcIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gta2VlcGFzczJcIjoge1xuICAgICAgICBleHRlbnNpb25zOiBbXCJrZGJ4XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWxhdGV4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJsYXRleFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1sdWEtYnl0ZWNvZGVcIjoge1xuICAgICAgICBleHRlbnNpb25zOiBbXCJsdWFjXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWx6aC1jb21wcmVzc2VkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJsemhcIiwgXCJsaGFcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtbWFrZXNlbGZcIjoge1xuICAgICAgICBzb3VyY2U6IFwibmdpbnhcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicnVuXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LW1pZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibWllXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LW1vYmlwb2NrZXQtZWJvb2tcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInByY1wiLCBcIm1vYmlcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtbXBlZ3VybFwiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2VcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtbXMtYXBwbGljYXRpb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImFwcGxpY2F0aW9uXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LW1zLXNob3J0Y3V0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJsbmtcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtbXMtd21kXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ3bWRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtbXMtd216XCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ3bXpcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtbXMteGJhcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieGJhcFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1tc2FjY2Vzc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibWRiXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LW1zYmluZGVyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJvYmRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtbXNjYXJkZmlsZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY3JkXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LW1zY2xpcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY2xwXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LW1zZG9zLXByb2dyYW1cIjoge1xuICAgICAgICBleHRlbnNpb25zOiBbXCJleGVcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtbXNkb3dubG9hZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZXhlXCIsIFwiZGxsXCIsIFwiY29tXCIsIFwiYmF0XCIsIFwibXNpXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LW1zbWVkaWF2aWV3XCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtdmJcIiwgXCJtMTNcIiwgXCJtMTRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtbXNtZXRhZmlsZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wid21mXCIsIFwid216XCIsIFwiZW1mXCIsIFwiZW16XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LW1zbW9uZXlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1ueVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1tc3B1Ymxpc2hlclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicHViXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LW1zc2NoZWR1bGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNjZFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1tc3Rlcm1pbmFsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ0cm1cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtbXN3cml0ZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wid3JpXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LW5ldGNkZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibmNcIiwgXCJjZGZcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtbnMtcHJveHktYXV0b2NvbmZpZ1wiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicGFjXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LW56YlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibnpiXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LXBlcmxcIjoge1xuICAgICAgICBzb3VyY2U6IFwibmdpbnhcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicGxcIiwgXCJwbVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1waWxvdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJuZ2lueFwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwcmNcIiwgXCJwZGJcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtcGtjczEyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwMTJcIiwgXCJwZnhcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtcGtjczctY2VydGlmaWNhdGVzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwN2JcIiwgXCJzcGNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtcGtjczctY2VydHJlcXJlc3BcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInA3clwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1wa2ktbWVzc2FnZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtcmFyLWNvbXByZXNzZWRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInJhclwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1yZWRoYXQtcGFja2FnZS1tYW5hZ2VyXCI6IHtcbiAgICAgICAgc291cmNlOiBcIm5naW54XCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInJwbVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1yZXNlYXJjaC1pbmZvLXN5c3RlbXNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInJpc1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1zZWFcIjoge1xuICAgICAgICBzb3VyY2U6IFwibmdpbnhcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic2VhXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LXNoXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNoXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LXNoYXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNoYXJcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtc2hvY2t3YXZlLWZsYXNoXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzd2ZcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtc2lsdmVybGlnaHQtYXBwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ4YXBcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtc3FsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzcWxcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtc3R1ZmZpdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic2l0XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LXN0dWZmaXR4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzaXR4XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LXN1YnJpcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic3J0XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LXN2NGNwaW9cIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInN2NGNwaW9cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtc3Y0Y3JjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzdjRjcmNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtdDN2bS1pbWFnZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widDNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtdGFkc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZ2FtXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LXRhclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ0YXJcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtdGNsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ0Y2xcIiwgXCJ0a1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC10ZXhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInRleFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC10ZXgtdGZtXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ0Zm1cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtdGV4aW5mb1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widGV4aW5mb1wiLCBcInRleGlcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtdGdpZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wib2JqXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LXVzdGFyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ1c3RhclwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC12aXJ0dWFsYm94LWhkZFwiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiaGRkXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LXZpcnR1YWxib3gtb3ZhXCI6IHtcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJvdmFcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtdmlydHVhbGJveC1vdmZcIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm92ZlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC12aXJ0dWFsYm94LXZib3hcIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInZib3hcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtdmlydHVhbGJveC12Ym94LWV4dHBhY2tcIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ2Ym94LWV4dHBhY2tcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtdmlydHVhbGJveC12ZGlcIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInZkaVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC12aXJ0dWFsYm94LXZoZFwiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1widmhkXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LXZpcnR1YWxib3gtdm1ka1wiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1widm1ka1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC13YWlzLXNvdXJjZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic3JjXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LXdlYi1hcHAtbWFuaWZlc3QranNvblwiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wid2ViYXBwXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gteDUwOS1jYS1jZXJ0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZGVyXCIsIFwiY3J0XCIsIFwicGVtXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LXg1MDktY2EtcmEtY2VydFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gteDUwOS1uZXh0LWNhLWNlcnRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LXhmaWdcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImZpZ1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC14bGlmZit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieGxmXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LXhwaW5zdGFsbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieHBpXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LXh6XCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ4elwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC16aXAtY29tcHJlc3NlZFwiOiB7XG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInppcFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC16bWFjaGluZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiejFcIiwgXCJ6MlwiLCBcInozXCIsIFwiejRcIiwgXCJ6NVwiLCBcIno2XCIsIFwiejdcIiwgXCJ6OFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veDQwMC1icFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3hhY21sK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veGFtbCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieGFtbFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veGNhcC1hdHQreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ4YXZcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3hjYXAtY2Fwcyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInhjYVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veGNhcC1kaWZmK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieGRmXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94Y2FwLWVsK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieGVsXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94Y2FwLWVycm9yK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veGNhcC1ucyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInhuc1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veGNvbi1jb25mZXJlbmNlLWluZm8reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94Y29uLWNvbmZlcmVuY2UtaW5mby1kaWZmK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veGVuYyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInhlbmNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3hmZGZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ4ZmRmXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94aHRtbCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInhodG1sXCIsIFwieGh0XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94aHRtbC12b2ljZSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veGxpZmYreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ4bGZcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieG1sXCIsIFwieHNsXCIsIFwieHNkXCIsIFwicm5nXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94bWwtZHRkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJkdGRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3htbC1leHRlcm5hbC1wYXJzZWQtZW50aXR5XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veG1sLXBhdGNoK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veG1wcCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3hvcCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInhvcFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veHByb2MreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInhwbFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veHNsdCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInhzbFwiLCBcInhzbHRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3hzcGYreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInhzcGZcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3h2K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibXhtbFwiLCBcInhodm1sXCIsIFwieHZtbFwiLCBcInh2bVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veWFtbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3lhbmdcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ5YW5nXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi95YW5nLWRhdGErY2JvclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3lhbmctZGF0YStqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi95YW5nLWRhdGEreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi95YW5nLXBhdGNoK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3lhbmctcGF0Y2greG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi95YW5nLXNpZCtqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi95aW4reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ5aW5cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ppcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInppcFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vemlwK2RvdGxvdHRpZVwiOiB7XG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImxvdHRpZVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vemxpYlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3pzdGRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby8xZC1pbnRlcmxlYXZlZC1wYXJpdHlmZWNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby8zMmthZHBjbVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvLzNncHBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCIzZ3BwXCJdXG4gICAgICB9LFxuICAgICAgXCJhdWRpby8zZ3BwMlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2FhY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImFkdHNcIiwgXCJhYWNcIl1cbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2FjM1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2FkcGNtXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJhZHBcIl1cbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2FtclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImFtclwiXVxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vYW1yLXdiXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vYW1yLXdiK1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2FwdHhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9hc2NcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9hdHJhYy1hZHZhbmNlZC1sb3NzbGVzc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2F0cmFjLXhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9hdHJhYzNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9iYXNpY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImF1XCIsIFwic25kXCJdXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9idjE2XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vYnYzMlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2NsZWFybW9kZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2NuXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vZGF0MTJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9kbHNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9kc3ItZXMyMDExMDhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9kc3ItZXMyMDIwNTBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9kc3ItZXMyMDIyMTFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9kc3ItZXMyMDIyMTJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9kdlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2R2aTRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9lYWMzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vZW5jYXBydHBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9ldnJjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vZXZyYy1xY3BcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9ldnJjMFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2V2cmMxXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vZXZyY2JcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9ldnJjYjBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9ldnJjYjFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9ldnJjbndcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9ldnJjbncwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vZXZyY253MVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2V2cmN3YlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2V2cmN3YjBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9ldnJjd2IxXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vZXZzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vZmxhY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2ZsZXhmZWNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9md2RyZWRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9nNzExLTBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9nNzE5XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vZzcyMlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2c3MjIxXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vZzcyM1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2c3MjYtMTZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9nNzI2LTI0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vZzcyNi0zMlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2c3MjYtNDBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9nNzI4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vZzcyOVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2c3MjkxXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vZzcyOWRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9nNzI5ZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2dzbVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2dzbS1lZnJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9nc20taHItMDhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9pbGJjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vaXAtbXJfdjIuNVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2lzYWNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2wxNlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2wyMFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2wyNFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2VcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2w4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vbHBjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vbWF0cm9za2FcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9tZWxwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vbWVscDEyMDBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9tZWxwMjQwMFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL21lbHA2MDBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9taGFzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vbWlkaVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibWlkXCIsIFwibWlkaVwiLCBcImthclwiLCBcInJtaVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vbWlkaS1jbGlwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vbW9iaWxlLXhtZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm14bWZcIl1cbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL21wM1wiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1wM1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vbXA0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibTRhXCIsIFwibXA0YVwiLCBcIm00YlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vbXA0YS1sYXRtXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vbXBhXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vbXBhLXJvYnVzdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL21wZWdcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtcGdhXCIsIFwibXAyXCIsIFwibXAyYVwiLCBcIm1wM1wiLCBcIm0yYVwiLCBcIm0zYVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vbXBlZzQtZ2VuZXJpY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL211c2VwYWNrXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9vZ2dcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJvZ2FcIiwgXCJvZ2dcIiwgXCJzcHhcIiwgXCJvcHVzXCJdXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9vcHVzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vcGFyaXR5ZmVjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vcGNtYVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3BjbWEtd2JcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9wY211XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vcGNtdS13YlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3Bycy5zaWRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9xY2VscFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3JhcHRvcmZlY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3JlZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3J0cC1lbmMtYWVzY20xMjhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9ydHAtbWlkaVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3J0cGxvb3BiYWNrXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vcnR4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vczNtXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzM21cIl1cbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3NjaXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9zaWxrXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzaWxcIl1cbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3NtdlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3Ntdi1xY3BcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9zbXYwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vc29mYVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3NwLW1pZGlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9zcGVleFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3QxNDBjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vdDM4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vdGVsZXBob25lLWV2ZW50XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vdGV0cmFfYWNlbHBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby90ZXRyYV9hY2VscF9iYlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3RvbmVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby90c3ZjaXNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby91ZW1jbGlwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vdWxwZmVjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vdXNhY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3ZkdmlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby92bXItd2JcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby92bmQuM2dwcC5pdWZwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vdm5kLjRzYlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3ZuZC5hdWRpb2tvelwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3ZuZC5jZWxwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vdm5kLmNpc2NvLm5zZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3ZuZC5jbWxlcy5yYWRpby1ldmVudHNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby92bmQuY25zLmFucDFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby92bmQuY25zLmluZjFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby92bmQuZGVjZS5hdWRpb1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInV2YVwiLCBcInV2dmFcIl1cbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3ZuZC5kaWdpdGFsLXdpbmRzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZW9sXCJdXG4gICAgICB9LFxuICAgICAgXCJhdWRpby92bmQuZGxuYS5hZHRzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vdm5kLmRvbGJ5LmhlYWFjLjFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby92bmQuZG9sYnkuaGVhYWMuMlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3ZuZC5kb2xieS5tbHBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby92bmQuZG9sYnkubXBzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vdm5kLmRvbGJ5LnBsMlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3ZuZC5kb2xieS5wbDJ4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vdm5kLmRvbGJ5LnBsMnpcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby92bmQuZG9sYnkucHVsc2UuMVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3ZuZC5kcmFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJkcmFcIl1cbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3ZuZC5kdHNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJkdHNcIl1cbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3ZuZC5kdHMuaGRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJkdHNoZFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vdm5kLmR0cy51aGRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby92bmQuZHZiLmZpbGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby92bmQuZXZlcmFkLnBsalwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3ZuZC5obnMuYXVkaW9cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby92bmQubHVjZW50LnZvaWNlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibHZwXCJdXG4gICAgICB9LFxuICAgICAgXCJhdWRpby92bmQubXMtcGxheXJlYWR5Lm1lZGlhLnB5YVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInB5YVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vdm5kLm5va2lhLm1vYmlsZS14bWZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby92bmQubm9ydGVsLnZia1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3ZuZC5udWVyYS5lY2VscDQ4MDBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJlY2VscDQ4MDBcIl1cbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3ZuZC5udWVyYS5lY2VscDc0NzBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJlY2VscDc0NzBcIl1cbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3ZuZC5udWVyYS5lY2VscDk2MDBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJlY2VscDk2MDBcIl1cbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3ZuZC5vY3RlbC5zYmNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby92bmQucHJlc29udXMubXVsdGl0cmFja1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3ZuZC5xY2VscFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vdm5kLnJoZXRvcmV4LjMya2FkcGNtXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vdm5kLnJpcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInJpcFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vdm5kLnJuLXJlYWxhdWRpb1wiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2VcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3ZuZC5zZWFsZWRtZWRpYS5zb2Z0c2VhbC5tcGVnXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vdm5kLnZteC5jdnNkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vdm5kLndhdmVcIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlXG4gICAgICB9LFxuICAgICAgXCJhdWRpby92b3JiaXNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlXG4gICAgICB9LFxuICAgICAgXCJhdWRpby92b3JiaXMtY29uZmlnXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vd2F2XCI6IHtcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wid2F2XCJdXG4gICAgICB9LFxuICAgICAgXCJhdWRpby93YXZlXCI6IHtcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wid2F2XCJdXG4gICAgICB9LFxuICAgICAgXCJhdWRpby93ZWJtXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ3ZWJhXCJdXG4gICAgICB9LFxuICAgICAgXCJhdWRpby94LWFhY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYWFjXCJdXG4gICAgICB9LFxuICAgICAgXCJhdWRpby94LWFpZmZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImFpZlwiLCBcImFpZmZcIiwgXCJhaWZjXCJdXG4gICAgICB9LFxuICAgICAgXCJhdWRpby94LWNhZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY2FmXCJdXG4gICAgICB9LFxuICAgICAgXCJhdWRpby94LWZsYWNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImZsYWNcIl1cbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3gtbTRhXCI6IHtcbiAgICAgICAgc291cmNlOiBcIm5naW54XCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm00YVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8veC1tYXRyb3NrYVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibWthXCJdXG4gICAgICB9LFxuICAgICAgXCJhdWRpby94LW1wZWd1cmxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm0zdVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8veC1tcy13YXhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIndheFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8veC1tcy13bWFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIndtYVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8veC1wbi1yZWFsYXVkaW9cIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInJhbVwiLCBcInJhXCJdXG4gICAgICB9LFxuICAgICAgXCJhdWRpby94LXBuLXJlYWxhdWRpby1wbHVnaW5cIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInJtcFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8veC1yZWFsYXVkaW9cIjoge1xuICAgICAgICBzb3VyY2U6IFwibmdpbnhcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicmFcIl1cbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3gtdHRhXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby94LXdhdlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wid2F2XCJdXG4gICAgICB9LFxuICAgICAgXCJhdWRpby94bVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieG1cIl1cbiAgICAgIH0sXG4gICAgICBcImNoZW1pY2FsL3gtY2R4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJjZHhcIl1cbiAgICAgIH0sXG4gICAgICBcImNoZW1pY2FsL3gtY2lmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJjaWZcIl1cbiAgICAgIH0sXG4gICAgICBcImNoZW1pY2FsL3gtY21kZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY21kZlwiXVxuICAgICAgfSxcbiAgICAgIFwiY2hlbWljYWwveC1jbWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImNtbFwiXVxuICAgICAgfSxcbiAgICAgIFwiY2hlbWljYWwveC1jc21sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJjc21sXCJdXG4gICAgICB9LFxuICAgICAgXCJjaGVtaWNhbC94LXBkYlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIlxuICAgICAgfSxcbiAgICAgIFwiY2hlbWljYWwveC14eXpcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInh5elwiXVxuICAgICAgfSxcbiAgICAgIFwiZm9udC9jb2xsZWN0aW9uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widHRjXCJdXG4gICAgICB9LFxuICAgICAgXCJmb250L290ZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wib3RmXCJdXG4gICAgICB9LFxuICAgICAgXCJmb250L3NmbnRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJmb250L3R0ZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1widHRmXCJdXG4gICAgICB9LFxuICAgICAgXCJmb250L3dvZmZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ3b2ZmXCJdXG4gICAgICB9LFxuICAgICAgXCJmb250L3dvZmYyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wid29mZjJcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL2FjZXNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJleHJcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL2FwbmdcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJhcG5nXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS9hdmNpXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYXZjaVwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UvYXZjc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImF2Y3NcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL2F2aWZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJhdmlmXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS9ibXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImJtcFwiLCBcImRpYlwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UvY2dtXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY2dtXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS9kaWNvbS1ybGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJkcmxlXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS9kcHhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJkcHhcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL2VtZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImVtZlwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UvZml0c1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImZpdHNcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL2czZmF4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZzNcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL2dpZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImdpZlwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UvaGVpY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImhlaWNcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL2hlaWMtc2VxdWVuY2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJoZWljc1wiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UvaGVpZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImhlaWZcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL2hlaWYtc2VxdWVuY2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJoZWlmc1wiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UvaGVqMmtcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJoZWoyXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS9pZWZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJpZWZcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL2oyY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImltYWdlL2phaWlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJqYWlpXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS9qYWlzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiamFpc1wiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UvamxzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiamxzXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS9qcDJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJqcDJcIiwgXCJqcGcyXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS9qcGVnXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wianBnXCIsIFwianBlZ1wiLCBcImpwZVwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UvanBoXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wianBoXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS9qcGhjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiamhjXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS9qcG1cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJqcG1cIiwgXCJqcGdtXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS9qcHhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJqcHhcIiwgXCJqcGZcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL2p4bFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImp4bFwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UvanhyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wianhyXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS9qeHJhXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wianhyYVwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2Uvanhyc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImp4cnNcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL2p4c1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImp4c1wiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UvanhzY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImp4c2NcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL2p4c2lcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJqeHNpXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS9qeHNzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wianhzc1wiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2Uva3R4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wia3R4XCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS9rdHgyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wia3R4MlwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UvbmFwbHBzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UvcGpwZWdcIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJqZmlmXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS9wbmdcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwbmdcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL3Bycy5idGlmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYnRpZlwiLCBcImJ0ZlwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UvcHJzLnB0aVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInB0aVwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UvcHdnLXJhc3RlclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImltYWdlL3NnaVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic2dpXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS9zdmcreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzdmdcIiwgXCJzdmd6XCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS90MzhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ0MzhcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL3RpZmZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ0aWZcIiwgXCJ0aWZmXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS90aWZmLWZ4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widGZ4XCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS92bmQuYWRvYmUucGhvdG9zaG9wXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwc2RcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL3ZuZC5haXJ6aXAuYWNjZWxlcmF0b3IuYXp2XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYXp2XCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS92bmQuY2xpcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImltYWdlL3ZuZC5jbnMuaW5mMlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImltYWdlL3ZuZC5kZWNlLmdyYXBoaWNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ1dmlcIiwgXCJ1dnZpXCIsIFwidXZnXCIsIFwidXZ2Z1wiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2Uvdm5kLmRqdnVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJkanZ1XCIsIFwiZGp2XCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS92bmQuZHZiLnN1YnRpdGxlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic3ViXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS92bmQuZHdnXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZHdnXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS92bmQuZHhmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZHhmXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS92bmQuZmFzdGJpZHNoZWV0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZmJzXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS92bmQuZnB4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZnB4XCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS92bmQuZnN0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZnN0XCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS92bmQuZnVqaXhlcm94LmVkbWljcy1tbXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtbXJcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL3ZuZC5mdWppeGVyb3guZWRtaWNzLXJsY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInJsY1wiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2Uvdm5kLmdsb2JhbGdyYXBoaWNzLnBnYlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImltYWdlL3ZuZC5taWNyb3NvZnQuaWNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiaWNvXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS92bmQubWl4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2Uvdm5kLm1vemlsbGEuYXBuZ1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImltYWdlL3ZuZC5tcy1kZHNcIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImRkc1wiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2Uvdm5kLm1zLW1vZGlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtZGlcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL3ZuZC5tcy1waG90b1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wid2RwXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS92bmQubmV0LWZweFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm5weFwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2Uvdm5kLnBjby5iMTZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJiMTZcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL3ZuZC5yYWRpYW5jZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImltYWdlL3ZuZC5zZWFsZWQucG5nXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2Uvdm5kLnNlYWxlZG1lZGlhLnNvZnRzZWFsLmdpZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImltYWdlL3ZuZC5zZWFsZWRtZWRpYS5zb2Z0c2VhbC5qcGdcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS92bmQuc3ZmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2Uvdm5kLnRlbmNlbnQudGFwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widGFwXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS92bmQudmFsdmUuc291cmNlLnRleHR1cmVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ2dGZcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL3ZuZC53YXAud2JtcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIndibXBcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL3ZuZC54aWZmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieGlmXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS92bmQuemJydXNoLnBjeFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInBjeFwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2Uvd2VicFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIndlYnBcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL3dtZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIndtZlwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UveC0zZHNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIjNkc1wiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UveC1hZG9iZS1kbmdcIjoge1xuICAgICAgICBleHRlbnNpb25zOiBbXCJkbmdcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL3gtY211LXJhc3RlclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicmFzXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS94LWNteFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY214XCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS94LWVtZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImltYWdlL3gtZnJlZWhhbmRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImZoXCIsIFwiZmhjXCIsIFwiZmg0XCIsIFwiZmg1XCIsIFwiZmg3XCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS94LWljb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiaWNvXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS94LWpuZ1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJuZ2lueFwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJqbmdcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL3gtbXJzaWQtaW1hZ2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNpZFwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UveC1tcy1ibXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwibmdpbnhcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJibXBcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL3gtcGN4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwY3hcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL3gtcGljdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicGljXCIsIFwicGN0XCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS94LXBvcnRhYmxlLWFueW1hcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicG5tXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS94LXBvcnRhYmxlLWJpdG1hcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicGJtXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS94LXBvcnRhYmxlLWdyYXltYXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInBnbVwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UveC1wb3J0YWJsZS1waXhtYXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInBwbVwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UveC1yZ2JcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInJnYlwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UveC10Z2FcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInRnYVwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UveC13bWZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS94LXhiaXRtYXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInhibVwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UveC14Y2ZcIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS94LXhwaXhtYXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInhwbVwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UveC14d2luZG93ZHVtcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieHdkXCJdXG4gICAgICB9LFxuICAgICAgXCJtZXNzYWdlL2JodHRwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwibWVzc2FnZS9jcGltXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwibWVzc2FnZS9kZWxpdmVyeS1zdGF0dXNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJtZXNzYWdlL2Rpc3Bvc2l0aW9uLW5vdGlmaWNhdGlvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcbiAgICAgICAgICBcImRpc3Bvc2l0aW9uLW5vdGlmaWNhdGlvblwiXG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICBcIm1lc3NhZ2UvZXh0ZXJuYWwtYm9keVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcIm1lc3NhZ2UvZmVlZGJhY2stcmVwb3J0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwibWVzc2FnZS9nbG9iYWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ1OG1zZ1wiXVxuICAgICAgfSxcbiAgICAgIFwibWVzc2FnZS9nbG9iYWwtZGVsaXZlcnktc3RhdHVzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widThkc25cIl1cbiAgICAgIH0sXG4gICAgICBcIm1lc3NhZ2UvZ2xvYmFsLWRpc3Bvc2l0aW9uLW5vdGlmaWNhdGlvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInU4bWRuXCJdXG4gICAgICB9LFxuICAgICAgXCJtZXNzYWdlL2dsb2JhbC1oZWFkZXJzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widThoZHJcIl1cbiAgICAgIH0sXG4gICAgICBcIm1lc3NhZ2UvaHR0cFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2VcbiAgICAgIH0sXG4gICAgICBcIm1lc3NhZ2UvaW1kbit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcIm1lc3NhZ2UvbWxzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwibWVzc2FnZS9uZXdzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiXG4gICAgICB9LFxuICAgICAgXCJtZXNzYWdlL29odHRwLXJlcVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcIm1lc3NhZ2Uvb2h0dHAtcmVzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwibWVzc2FnZS9wYXJ0aWFsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZVxuICAgICAgfSxcbiAgICAgIFwibWVzc2FnZS9yZmM4MjJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImVtbFwiLCBcIm1pbWVcIiwgXCJtaHRcIiwgXCJtaHRtbFwiXVxuICAgICAgfSxcbiAgICAgIFwibWVzc2FnZS9zLWh0dHBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCJcbiAgICAgIH0sXG4gICAgICBcIm1lc3NhZ2Uvc2lwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwibWVzc2FnZS9zaXBmcmFnXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwibWVzc2FnZS90cmFja2luZy1zdGF0dXNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJtZXNzYWdlL3ZuZC5zaS5zaW1wXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiXG4gICAgICB9LFxuICAgICAgXCJtZXNzYWdlL3ZuZC53ZmEud3NjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wid3NjXCJdXG4gICAgICB9LFxuICAgICAgXCJtb2RlbC8zbWZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCIzbWZcIl1cbiAgICAgIH0sXG4gICAgICBcIm1vZGVsL2U1N1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcIm1vZGVsL2dsdGYranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZ2x0ZlwiXVxuICAgICAgfSxcbiAgICAgIFwibW9kZWwvZ2x0Zi1iaW5hcnlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImdsYlwiXVxuICAgICAgfSxcbiAgICAgIFwibW9kZWwvaWdlc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImlnc1wiLCBcImlnZXNcIl1cbiAgICAgIH0sXG4gICAgICBcIm1vZGVsL2p0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wianRcIl1cbiAgICAgIH0sXG4gICAgICBcIm1vZGVsL21lc2hcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtc2hcIiwgXCJtZXNoXCIsIFwic2lsb1wiXVxuICAgICAgfSxcbiAgICAgIFwibW9kZWwvbXRsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibXRsXCJdXG4gICAgICB9LFxuICAgICAgXCJtb2RlbC9vYmpcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJvYmpcIl1cbiAgICAgIH0sXG4gICAgICBcIm1vZGVsL3ByY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInByY1wiXVxuICAgICAgfSxcbiAgICAgIFwibW9kZWwvc3RlcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInN0ZXBcIiwgXCJzdHBcIiwgXCJzdHBuY1wiLCBcInAyMVwiLCBcIjIxMFwiXVxuICAgICAgfSxcbiAgICAgIFwibW9kZWwvc3RlcCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInN0cHhcIl1cbiAgICAgIH0sXG4gICAgICBcIm1vZGVsL3N0ZXAremlwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic3RwelwiXVxuICAgICAgfSxcbiAgICAgIFwibW9kZWwvc3RlcC14bWwremlwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic3RweHpcIl1cbiAgICAgIH0sXG4gICAgICBcIm1vZGVsL3N0bFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInN0bFwiXVxuICAgICAgfSxcbiAgICAgIFwibW9kZWwvdTNkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widTNkXCJdXG4gICAgICB9LFxuICAgICAgXCJtb2RlbC92bmQuYmFyeVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImJhcnlcIl1cbiAgICAgIH0sXG4gICAgICBcIm1vZGVsL3ZuZC5jbGRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJjbGRcIl1cbiAgICAgIH0sXG4gICAgICBcIm1vZGVsL3ZuZC5jb2xsYWRhK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZGFlXCJdXG4gICAgICB9LFxuICAgICAgXCJtb2RlbC92bmQuZHdmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZHdmXCJdXG4gICAgICB9LFxuICAgICAgXCJtb2RlbC92bmQuZmxhdGxhbmQuM2RtbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcIm1vZGVsL3ZuZC5nZGxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJnZGxcIl1cbiAgICAgIH0sXG4gICAgICBcIm1vZGVsL3ZuZC5ncy1nZGxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCJcbiAgICAgIH0sXG4gICAgICBcIm1vZGVsL3ZuZC5ncy5nZGxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJtb2RlbC92bmQuZ3R3XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZ3R3XCJdXG4gICAgICB9LFxuICAgICAgXCJtb2RlbC92bmQubW9tbCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcIm1vZGVsL3ZuZC5tdHNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtdHNcIl1cbiAgICAgIH0sXG4gICAgICBcIm1vZGVsL3ZuZC5vcGVuZ2V4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wib2dleFwiXVxuICAgICAgfSxcbiAgICAgIFwibW9kZWwvdm5kLnBhcmFzb2xpZC50cmFuc21pdC5iaW5hcnlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ4X2JcIl1cbiAgICAgIH0sXG4gICAgICBcIm1vZGVsL3ZuZC5wYXJhc29saWQudHJhbnNtaXQudGV4dFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInhfdFwiXVxuICAgICAgfSxcbiAgICAgIFwibW9kZWwvdm5kLnB5dGhhLnB5b3hcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJweW9cIiwgXCJweW94XCJdXG4gICAgICB9LFxuICAgICAgXCJtb2RlbC92bmQucm9zZXR0ZS5hbm5vdGF0ZWQtZGF0YS1tb2RlbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcIm1vZGVsL3ZuZC5zYXAudmRzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widmRzXCJdXG4gICAgICB9LFxuICAgICAgXCJtb2RlbC92bmQudXNkYVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInVzZGFcIl1cbiAgICAgIH0sXG4gICAgICBcIm1vZGVsL3ZuZC51c2R6K3ppcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInVzZHpcIl1cbiAgICAgIH0sXG4gICAgICBcIm1vZGVsL3ZuZC52YWx2ZS5zb3VyY2UuY29tcGlsZWQtbWFwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYnNwXCJdXG4gICAgICB9LFxuICAgICAgXCJtb2RlbC92bmQudnR1XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widnR1XCJdXG4gICAgICB9LFxuICAgICAgXCJtb2RlbC92cm1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wid3JsXCIsIFwidnJtbFwiXVxuICAgICAgfSxcbiAgICAgIFwibW9kZWwveDNkK2JpbmFyeVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieDNkYlwiLCBcIngzZGJ6XCJdXG4gICAgICB9LFxuICAgICAgXCJtb2RlbC94M2QrZmFzdGluZm9zZXRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ4M2RiXCJdXG4gICAgICB9LFxuICAgICAgXCJtb2RlbC94M2QrdnJtbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieDNkdlwiLCBcIngzZHZ6XCJdXG4gICAgICB9LFxuICAgICAgXCJtb2RlbC94M2QreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ4M2RcIiwgXCJ4M2R6XCJdXG4gICAgICB9LFxuICAgICAgXCJtb2RlbC94M2QtdnJtbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIngzZHZcIl1cbiAgICAgIH0sXG4gICAgICBcIm11bHRpcGFydC9hbHRlcm5hdGl2ZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2VcbiAgICAgIH0sXG4gICAgICBcIm11bHRpcGFydC9hcHBsZWRvdWJsZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcIm11bHRpcGFydC9ieXRlcmFuZ2VzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwibXVsdGlwYXJ0L2RpZ2VzdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcIm11bHRpcGFydC9lbmNyeXB0ZWRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlXG4gICAgICB9LFxuICAgICAgXCJtdWx0aXBhcnQvZm9ybS1kYXRhXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZVxuICAgICAgfSxcbiAgICAgIFwibXVsdGlwYXJ0L2hlYWRlci1zZXRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJtdWx0aXBhcnQvbWl4ZWRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJtdWx0aXBhcnQvbXVsdGlsaW5ndWFsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwibXVsdGlwYXJ0L3BhcmFsbGVsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwibXVsdGlwYXJ0L3JlbGF0ZWRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlXG4gICAgICB9LFxuICAgICAgXCJtdWx0aXBhcnQvcmVwb3J0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwibXVsdGlwYXJ0L3NpZ25lZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2VcbiAgICAgIH0sXG4gICAgICBcIm11bHRpcGFydC92bmQuYmludC5tZWQtcGx1c1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcIm11bHRpcGFydC92b2ljZS1tZXNzYWdlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwibXVsdGlwYXJ0L3gtbWl4ZWQtcmVwbGFjZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInRleHQvMWQtaW50ZXJsZWF2ZWQtcGFyaXR5ZmVjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC9jYWNoZS1tYW5pZmVzdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYXBwY2FjaGVcIiwgXCJtYW5pZmVzdFwiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC9jYWxlbmRhclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImljc1wiLCBcImlmYlwiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC9jYWxlbmRlclwiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwidGV4dC9jbWRcIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcInRleHQvY29mZmVlc2NyaXB0XCI6IHtcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY29mZmVlXCIsIFwibGl0Y29mZmVlXCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L2NxbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInRleHQvY3FsLWV4cHJlc3Npb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L2NxbC1pZGVudGlmaWVyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC9jc3NcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjaGFyc2V0OiBcIlVURi04XCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY3NzXCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L2NzdlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY3N2XCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L2Nzdi1zY2hlbWFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L2RpcmVjdG9yeVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInRleHQvZG5zXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC9lY21hc2NyaXB0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L2VuY2FwcnRwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC9lbnJpY2hlZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInRleHQvZmhpcnBhdGhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L2ZsZXhmZWNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L2Z3ZHJlZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInRleHQvZ2ZmM1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInRleHQvZ3JhbW1hci1yZWYtbGlzdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInRleHQvaGw3djJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L2h0bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImh0bWxcIiwgXCJodG1cIiwgXCJzaHRtbFwiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC9qYWRlXCI6IHtcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiamFkZVwiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC9qYXZhc2NyaXB0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY2hhcnNldDogXCJVVEYtOFwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImpzXCIsIFwibWpzXCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L2pjci1jbmRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L2pzeFwiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wianN4XCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L2xlc3NcIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImxlc3NcIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQvbWFya2Rvd25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1kXCIsIFwibWFya2Rvd25cIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQvbWF0aG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcIm5naW54XCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1tbFwiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC9tZHhcIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1keFwiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC9taXphclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInRleHQvbjNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjaGFyc2V0OiBcIlVURi04XCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibjNcIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQvcGFyYW1ldGVyc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNoYXJzZXQ6IFwiVVRGLThcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC9wYXJpdHlmZWNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3BsYWluXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ0eHRcIiwgXCJ0ZXh0XCIsIFwiY29uZlwiLCBcImRlZlwiLCBcImxpc3RcIiwgXCJsb2dcIiwgXCJpblwiLCBcImluaVwiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC9wcm92ZW5hbmNlLW5vdGF0aW9uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY2hhcnNldDogXCJVVEYtOFwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3Bycy5mYWxsZW5zdGVpbi5yc3RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3Bycy5saW5lcy50YWdcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJkc2NcIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQvcHJzLnByb3AubG9naWNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3Bycy50ZXhpXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC9yYXB0b3JmZWNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3JlZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInRleHQvcmZjODIyLWhlYWRlcnNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3JpY2h0ZXh0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJydHhcIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQvcnRmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJydGZcIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQvcnRwLWVuYy1hZXNjbTEyOFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInRleHQvcnRwbG9vcGJhY2tcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3J0eFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInRleHQvc2dtbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNnbWxcIiwgXCJzZ21cIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQvc2hhY2xjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC9zaGV4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic2hleFwiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC9zbGltXCI6IHtcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic2xpbVwiLCBcInNsbVwiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC9zcGR4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic3BkeFwiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC9zdHJpbmdzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC9zdHlsdXNcIjoge1xuICAgICAgICBleHRlbnNpb25zOiBbXCJzdHlsdXNcIiwgXCJzdHlsXCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3QxNDBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3RhYi1zZXBhcmF0ZWQtdmFsdWVzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ0c3ZcIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQvdHJvZmZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ0XCIsIFwidHJcIiwgXCJyb2ZmXCIsIFwibWFuXCIsIFwibWVcIiwgXCJtc1wiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC90dXJ0bGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjaGFyc2V0OiBcIlVURi04XCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInR0bFwiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC91bHBmZWNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3VyaS1saXN0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ1cmlcIiwgXCJ1cmlzXCIsIFwidXJsc1wiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC92Y2FyZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1widmNhcmRcIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQvdm5kLmFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3ZuZC5hYmNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3ZuZC5hc2NpaS1hcnRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3ZuZC5jdXJsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY3VybFwiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC92bmQuY3VybC5kY3VybFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZGN1cmxcIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQvdm5kLmN1cmwubWN1cmxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1jdXJsXCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3ZuZC5jdXJsLnNjdXJsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzY3VybFwiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC92bmQuZGViaWFuLmNvcHlyaWdodFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNoYXJzZXQ6IFwiVVRGLThcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC92bmQuZG1jbGllbnRzY3JpcHRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3ZuZC5kdmIuc3VidGl0bGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzdWJcIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQvdm5kLmVzbWVydGVjLnRoZW1lLWRlc2NyaXB0b3JcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjaGFyc2V0OiBcIlVURi04XCJcbiAgICAgIH0sXG4gICAgICBcInRleHQvdm5kLmV4Y2hhbmdlYWJsZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInRleHQvdm5kLmZhbWlseXNlYXJjaC5nZWRjb21cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJnZWRcIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQvdm5kLmZpY2xhYi5mbHRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3ZuZC5mbHlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJmbHlcIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQvdm5kLmZtaS5mbGV4c3RvclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImZseFwiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC92bmQuZ21sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC92bmQuZ3JhcGh2aXpcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJndlwiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC92bmQuaGFuc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInRleHQvdm5kLmhnbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInRleHQvdm5kLmluM2QuM2RtbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIjNkbWxcIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQvdm5kLmluM2Quc3BvdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNwb3RcIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQvdm5kLmlwdGMubmV3c21sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC92bmQuaXB0Yy5uaXRmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC92bmQubGF0ZXgtelwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInRleHQvdm5kLm1vdG9yb2xhLnJlZmxleFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInRleHQvdm5kLm1zLW1lZGlhcGFja2FnZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInRleHQvdm5kLm5ldDJwaG9uZS5jb21tY2VudGVyLmNvbW1hbmRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3ZuZC5yYWRpc3lzLm1zbWwtYmFzaWMtbGF5b3V0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC92bmQuc2VueC53YXJwc2NyaXB0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC92bmQuc2kudXJpY2F0YWxvZ3VlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3ZuZC5zb3NpXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC92bmQuc3VuLmoybWUuYXBwLWRlc2NyaXB0b3JcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjaGFyc2V0OiBcIlVURi04XCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImphZFwiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC92bmQudHJvbGx0ZWNoLmxpbmd1aXN0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY2hhcnNldDogXCJVVEYtOFwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3ZuZC52Y2ZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3ZuZC53YXAuc2lcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3ZuZC53YXAuc2xcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3ZuZC53YXAud21sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wid21sXCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3ZuZC53YXAud21sc2NyaXB0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wid21sc1wiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC92bmQuem9vLmtjbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInRleHQvdnR0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY2hhcnNldDogXCJVVEYtOFwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInZ0dFwiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC93Z3NsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wid2dzbFwiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC94LWFzbVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic1wiLCBcImFzbVwiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC94LWNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImNcIiwgXCJjY1wiLCBcImN4eFwiLCBcImNwcFwiLCBcImhcIiwgXCJoaFwiLCBcImRpY1wiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC94LWNvbXBvbmVudFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJuZ2lueFwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJodGNcIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQveC1mb3J0cmFuXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJmXCIsIFwiZm9yXCIsIFwiZjc3XCIsIFwiZjkwXCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3gtZ3d0LXJwY1wiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwidGV4dC94LWhhbmRsZWJhcnMtdGVtcGxhdGVcIjoge1xuICAgICAgICBleHRlbnNpb25zOiBbXCJoYnNcIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQveC1qYXZhLXNvdXJjZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiamF2YVwiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC94LWpxdWVyeS10bXBsXCI6IHtcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3gtbHVhXCI6IHtcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibHVhXCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3gtbWFya2Rvd25cIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1rZFwiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC94LW5mb1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibmZvXCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3gtb3BtbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wib3BtbFwiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC94LW9yZ1wiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wib3JnXCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3gtcGFzY2FsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwXCIsIFwicGFzXCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3gtcHJvY2Vzc2luZ1wiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicGRlXCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3gtc2Fzc1wiOiB7XG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNhc3NcIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQveC1zY3NzXCI6IHtcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic2Nzc1wiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC94LXNldGV4dFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZXR4XCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3gtc2Z2XCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzZnZcIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQveC1zdXNlLXltcFwiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieW1wXCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3gtdXVlbmNvZGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInV1XCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3gtdmNhbGVuZGFyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ2Y3NcIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQveC12Y2FyZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widmNmXCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieG1sXCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3htbC1leHRlcm5hbC1wYXJzZWQtZW50aXR5XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC95YW1sXCI6IHtcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ5YW1sXCIsIFwieW1sXCJdXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby8xZC1pbnRlcmxlYXZlZC1wYXJpdHlmZWNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby8zZ3BwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiM2dwXCIsIFwiM2dwcFwiXVxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vM2dwcC10dFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvLzNncHAyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiM2cyXCJdXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby9hdjFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby9ibXBlZ1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL2J0NjU2XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vY2VsYlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL2R2XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vZW5jYXBydHBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby9ldmNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby9mZnYxXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vZmxleGZlY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL2gyNjFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJoMjYxXCJdXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby9oMjYzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiaDI2M1wiXVxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vaDI2My0xOTk4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vaDI2My0yMDAwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vaDI2NFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImgyNjRcIl1cbiAgICAgIH0sXG4gICAgICBcInZpZGVvL2gyNjQtcmNkb1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL2gyNjQtc3ZjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vaDI2NVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL2gyNjZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby9pc28uc2VnbWVudFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm00c1wiXVxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vanBlZ1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImpwZ3ZcIl1cbiAgICAgIH0sXG4gICAgICBcInZpZGVvL2pwZWcyMDAwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vanBtXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJqcG1cIiwgXCJqcGdtXCJdXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby9qeHN2XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vbG90dGllK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL21hdHJvc2thXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vbWF0cm9za2EtM2RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby9tajJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtajJcIiwgXCJtanAyXCJdXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby9tcDFzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vbXAycFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL21wMnRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ0c1wiLCBcIm0ydFwiLCBcIm0ydHNcIiwgXCJtdHNcIl1cbiAgICAgIH0sXG4gICAgICBcInZpZGVvL21wNFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1wNFwiLCBcIm1wNHZcIiwgXCJtcGc0XCJdXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby9tcDR2LWVzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vbXBlZ1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1wZWdcIiwgXCJtcGdcIiwgXCJtcGVcIiwgXCJtMXZcIiwgXCJtMnZcIl1cbiAgICAgIH0sXG4gICAgICBcInZpZGVvL21wZWc0LWdlbmVyaWNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby9tcHZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby9udlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL29nZ1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm9ndlwiXVxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vcGFyaXR5ZmVjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vcG9pbnRlclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3F1aWNrdGltZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInF0XCIsIFwibW92XCJdXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby9yYXB0b3JmZWNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby9yYXdcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby9ydHAtZW5jLWFlc2NtMTI4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vcnRwbG9vcGJhY2tcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby9ydHhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby9zY2lwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vc21wdGUyOTFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby9zbXB0ZTI5Mm1cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby91bHBmZWNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby92YzFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby92YzJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby92bmQuY2N0dlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3ZuZC5kZWNlLmhkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widXZoXCIsIFwidXZ2aFwiXVxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vdm5kLmRlY2UubW9iaWxlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widXZtXCIsIFwidXZ2bVwiXVxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vdm5kLmRlY2UubXA0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vdm5kLmRlY2UucGRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ1dnBcIiwgXCJ1dnZwXCJdXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby92bmQuZGVjZS5zZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInV2c1wiLCBcInV2dnNcIl1cbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3ZuZC5kZWNlLnZpZGVvXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widXZ2XCIsIFwidXZ2dlwiXVxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vdm5kLmRpcmVjdHYubXBlZ1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3ZuZC5kaXJlY3R2Lm1wZWctdHRzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vdm5kLmRsbmEubXBlZy10dHNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby92bmQuZHZiLmZpbGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJkdmJcIl1cbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3ZuZC5mdnRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJmdnRcIl1cbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3ZuZC5obnMudmlkZW9cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby92bmQuaXB0dmZvcnVtLjFkcGFyaXR5ZmVjLTEwMTBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby92bmQuaXB0dmZvcnVtLjFkcGFyaXR5ZmVjLTIwMDVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby92bmQuaXB0dmZvcnVtLjJkcGFyaXR5ZmVjLTEwMTBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby92bmQuaXB0dmZvcnVtLjJkcGFyaXR5ZmVjLTIwMDVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby92bmQuaXB0dmZvcnVtLnR0c2F2Y1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3ZuZC5pcHR2Zm9ydW0udHRzbXBlZzJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby92bmQubW90b3JvbGEudmlkZW9cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby92bmQubW90b3JvbGEudmlkZW9wXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vdm5kLm1wZWd1cmxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJteHVcIiwgXCJtNHVcIl1cbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3ZuZC5tcy1wbGF5cmVhZHkubWVkaWEucHl2XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicHl2XCJdXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby92bmQubm9raWEuaW50ZXJsZWF2ZWQtbXVsdGltZWRpYVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3ZuZC5ub2tpYS5tcDR2clwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3ZuZC5ub2tpYS52aWRlb3ZvaXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby92bmQub2JqZWN0dmlkZW9cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby92bmQucGxhbmFyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vdm5kLnJhZGdhbWV0dG9vbHMuYmlua1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3ZuZC5yYWRnYW1ldHRvb2xzLnNtYWNrZXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3ZuZC5zZWFsZWQubXBlZzFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby92bmQuc2VhbGVkLm1wZWc0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vdm5kLnNlYWxlZC5zd2ZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby92bmQuc2VhbGVkbWVkaWEuc29mdHNlYWwubW92XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vdm5kLnV2dnUubXA0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widXZ1XCIsIFwidXZ2dVwiXVxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vdm5kLnZpdm9cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ2aXZcIl1cbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3ZuZC55b3V0dWJlLnl0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vdnA4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vdnA5XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vd2VibVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wid2VibVwiXVxuICAgICAgfSxcbiAgICAgIFwidmlkZW8veC1mNHZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImY0dlwiXVxuICAgICAgfSxcbiAgICAgIFwidmlkZW8veC1mbGlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImZsaVwiXVxuICAgICAgfSxcbiAgICAgIFwidmlkZW8veC1mbHZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImZsdlwiXVxuICAgICAgfSxcbiAgICAgIFwidmlkZW8veC1tNHZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm00dlwiXVxuICAgICAgfSxcbiAgICAgIFwidmlkZW8veC1tYXRyb3NrYVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibWt2XCIsIFwibWszZFwiLCBcIm1rc1wiXVxuICAgICAgfSxcbiAgICAgIFwidmlkZW8veC1tbmdcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1uZ1wiXVxuICAgICAgfSxcbiAgICAgIFwidmlkZW8veC1tcy1hc2ZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImFzZlwiLCBcImFzeFwiXVxuICAgICAgfSxcbiAgICAgIFwidmlkZW8veC1tcy12b2JcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInZvYlwiXVxuICAgICAgfSxcbiAgICAgIFwidmlkZW8veC1tcy13bVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wid21cIl1cbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3gtbXMtd212XCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ3bXZcIl1cbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3gtbXMtd214XCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ3bXhcIl1cbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3gtbXMtd3Z4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ3dnhcIl1cbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3gtbXN2aWRlb1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYXZpXCJdXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby94LXNnaS1tb3ZpZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibW92aWVcIl1cbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3gtc212XCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzbXZcIl1cbiAgICAgIH0sXG4gICAgICBcIngtY29uZmVyZW5jZS94LWNvb2x0YWxrXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJpY2VcIl1cbiAgICAgIH0sXG4gICAgICBcIngtc2hhZGVyL3gtZnJhZ21lbnRcIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcIngtc2hhZGVyL3gtdmVydGV4XCI6IHtcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9XG4gICAgfTtcbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy90eXBlLWlzL25vZGVfbW9kdWxlcy9taW1lLWRiL2luZGV4LmpzXG52YXIgcmVxdWlyZV9taW1lX2RiID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL3R5cGUtaXMvbm9kZV9tb2R1bGVzL21pbWUtZGIvaW5kZXguanNcIihleHBvcnRzMiwgbW9kdWxlMikge1xuICAgIG1vZHVsZTIuZXhwb3J0cyA9IHJlcXVpcmVfZGIoKTtcbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy90eXBlLWlzL25vZGVfbW9kdWxlcy9taW1lLXR5cGVzL21pbWVTY29yZS5qc1xudmFyIHJlcXVpcmVfbWltZVNjb3JlID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL3R5cGUtaXMvbm9kZV9tb2R1bGVzL21pbWUtdHlwZXMvbWltZVNjb3JlLmpzXCIoZXhwb3J0czIsIG1vZHVsZTIpIHtcbiAgICB2YXIgRkFDRVRfU0NPUkVTID0ge1xuICAgICAgXCJwcnMuXCI6IDEwMCxcbiAgICAgIFwieC1cIjogMjAwLFxuICAgICAgXCJ4LlwiOiAzMDAsXG4gICAgICBcInZuZC5cIjogNDAwLFxuICAgICAgZGVmYXVsdDogOTAwXG4gICAgfTtcbiAgICB2YXIgU09VUkNFX1NDT1JFUyA9IHtcbiAgICAgIG5naW54OiAxMCxcbiAgICAgIGFwYWNoZTogMjAsXG4gICAgICBpYW5hOiA0MCxcbiAgICAgIGRlZmF1bHQ6IDMwXG4gICAgICAvLyBkZWZpbml0aW9ucyBhZGRlZCBieSBganNodHRwL21pbWUtZGJgIHByb2plY3Q/XG4gICAgfTtcbiAgICB2YXIgVFlQRV9TQ09SRVMgPSB7XG4gICAgICAvLyBwcmVmZXIgYXBwbGljYXRpb24veG1sIG92ZXIgdGV4dC94bWxcbiAgICAgIC8vIHByZWZlciBhcHBsaWNhdGlvbi9ydGYgb3ZlciB0ZXh0L3J0ZlxuICAgICAgYXBwbGljYXRpb246IDEsXG4gICAgICAvLyBwcmVmZXIgZm9udC93b2ZmIG92ZXIgYXBwbGljYXRpb24vZm9udC13b2ZmXG4gICAgICBmb250OiAyLFxuICAgICAgZGVmYXVsdDogMFxuICAgIH07XG4gICAgbW9kdWxlMi5leHBvcnRzID0gZnVuY3Rpb24gbWltZVNjb3JlKG1pbWVUeXBlLCBzb3VyY2UgPSBcImRlZmF1bHRcIikge1xuICAgICAgaWYgKG1pbWVUeXBlID09PSBcImFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbVwiKSB7XG4gICAgICAgIHJldHVybiAwO1xuICAgICAgfVxuICAgICAgY29uc3QgW3R5cGUsIHN1YnR5cGVdID0gbWltZVR5cGUuc3BsaXQoXCIvXCIpO1xuICAgICAgY29uc3QgZmFjZXQgPSBzdWJ0eXBlLnJlcGxhY2UoLyhcXC58eC0pLiovLCBcIiQxXCIpO1xuICAgICAgY29uc3QgZmFjZXRTY29yZSA9IEZBQ0VUX1NDT1JFU1tmYWNldF0gfHwgRkFDRVRfU0NPUkVTLmRlZmF1bHQ7XG4gICAgICBjb25zdCBzb3VyY2VTY29yZSA9IFNPVVJDRV9TQ09SRVNbc291cmNlXSB8fCBTT1VSQ0VfU0NPUkVTLmRlZmF1bHQ7XG4gICAgICBjb25zdCB0eXBlU2NvcmUgPSBUWVBFX1NDT1JFU1t0eXBlXSB8fCBUWVBFX1NDT1JFUy5kZWZhdWx0O1xuICAgICAgY29uc3QgbGVuZ3RoU2NvcmUgPSAxIC0gbWltZVR5cGUubGVuZ3RoIC8gMTAwO1xuICAgICAgcmV0dXJuIGZhY2V0U2NvcmUgKyBzb3VyY2VTY29yZSArIHR5cGVTY29yZSArIGxlbmd0aFNjb3JlO1xuICAgIH07XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvdHlwZS1pcy9ub2RlX21vZHVsZXMvbWltZS10eXBlcy9pbmRleC5qc1xudmFyIHJlcXVpcmVfbWltZV90eXBlcyA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy90eXBlLWlzL25vZGVfbW9kdWxlcy9taW1lLXR5cGVzL2luZGV4LmpzXCIoZXhwb3J0czIpIHtcbiAgICBcInVzZSBzdHJpY3RcIjtcbiAgICB2YXIgZGIgPSByZXF1aXJlX21pbWVfZGIoKTtcbiAgICB2YXIgZXh0bmFtZSA9IHJlcXVpcmUoXCJwYXRoXCIpLmV4dG5hbWU7XG4gICAgdmFyIG1pbWVTY29yZSA9IHJlcXVpcmVfbWltZVNjb3JlKCk7XG4gICAgdmFyIEVYVFJBQ1RfVFlQRV9SRUdFWFAgPSAvXlxccyooW147XFxzXSopKD86O3xcXHN8JCkvO1xuICAgIHZhciBURVhUX1RZUEVfUkVHRVhQID0gL150ZXh0XFwvL2k7XG4gICAgZXhwb3J0czIuY2hhcnNldCA9IGNoYXJzZXQ7XG4gICAgZXhwb3J0czIuY2hhcnNldHMgPSB7IGxvb2t1cDogY2hhcnNldCB9O1xuICAgIGV4cG9ydHMyLmNvbnRlbnRUeXBlID0gY29udGVudFR5cGUyO1xuICAgIGV4cG9ydHMyLmV4dGVuc2lvbiA9IGV4dGVuc2lvbjtcbiAgICBleHBvcnRzMi5leHRlbnNpb25zID0gLyogQF9fUFVSRV9fICovIE9iamVjdC5jcmVhdGUobnVsbCk7XG4gICAgZXhwb3J0czIubG9va3VwID0gbG9va3VwO1xuICAgIGV4cG9ydHMyLnR5cGVzID0gLyogQF9fUFVSRV9fICovIE9iamVjdC5jcmVhdGUobnVsbCk7XG4gICAgZXhwb3J0czIuX2V4dGVuc2lvbkNvbmZsaWN0cyA9IFtdO1xuICAgIHBvcHVsYXRlTWFwcyhleHBvcnRzMi5leHRlbnNpb25zLCBleHBvcnRzMi50eXBlcyk7XG4gICAgZnVuY3Rpb24gY2hhcnNldCh0eXBlKSB7XG4gICAgICBpZiAoIXR5cGUgfHwgdHlwZW9mIHR5cGUgIT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgdmFyIG1hdGNoID0gRVhUUkFDVF9UWVBFX1JFR0VYUC5leGVjKHR5cGUpO1xuICAgICAgdmFyIG1pbWUgPSBtYXRjaCAmJiBkYlttYXRjaFsxXS50b0xvd2VyQ2FzZSgpXTtcbiAgICAgIGlmIChtaW1lICYmIG1pbWUuY2hhcnNldCkge1xuICAgICAgICByZXR1cm4gbWltZS5jaGFyc2V0O1xuICAgICAgfVxuICAgICAgaWYgKG1hdGNoICYmIFRFWFRfVFlQRV9SRUdFWFAudGVzdChtYXRjaFsxXSkpIHtcbiAgICAgICAgcmV0dXJuIFwiVVRGLThcIjtcbiAgICAgIH1cbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgZnVuY3Rpb24gY29udGVudFR5cGUyKHN0cikge1xuICAgICAgaWYgKCFzdHIgfHwgdHlwZW9mIHN0ciAhPT0gXCJzdHJpbmdcIikge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgICB2YXIgbWltZSA9IHN0ci5pbmRleE9mKFwiL1wiKSA9PT0gLTEgPyBleHBvcnRzMi5sb29rdXAoc3RyKSA6IHN0cjtcbiAgICAgIGlmICghbWltZSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgICBpZiAobWltZS5pbmRleE9mKFwiY2hhcnNldFwiKSA9PT0gLTEpIHtcbiAgICAgICAgdmFyIGNoYXJzZXQyID0gZXhwb3J0czIuY2hhcnNldChtaW1lKTtcbiAgICAgICAgaWYgKGNoYXJzZXQyKSBtaW1lICs9IFwiOyBjaGFyc2V0PVwiICsgY2hhcnNldDIudG9Mb3dlckNhc2UoKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBtaW1lO1xuICAgIH1cbiAgICBmdW5jdGlvbiBleHRlbnNpb24odHlwZSkge1xuICAgICAgaWYgKCF0eXBlIHx8IHR5cGVvZiB0eXBlICE9PSBcInN0cmluZ1wiKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIHZhciBtYXRjaCA9IEVYVFJBQ1RfVFlQRV9SRUdFWFAuZXhlYyh0eXBlKTtcbiAgICAgIHZhciBleHRzID0gbWF0Y2ggJiYgZXhwb3J0czIuZXh0ZW5zaW9uc1ttYXRjaFsxXS50b0xvd2VyQ2FzZSgpXTtcbiAgICAgIGlmICghZXh0cyB8fCAhZXh0cy5sZW5ndGgpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGV4dHNbMF07XG4gICAgfVxuICAgIGZ1bmN0aW9uIGxvb2t1cChwYXRoKSB7XG4gICAgICBpZiAoIXBhdGggfHwgdHlwZW9mIHBhdGggIT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgdmFyIGV4dGVuc2lvbjIgPSBleHRuYW1lKFwieC5cIiArIHBhdGgpLnRvTG93ZXJDYXNlKCkuc2xpY2UoMSk7XG4gICAgICBpZiAoIWV4dGVuc2lvbjIpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGV4cG9ydHMyLnR5cGVzW2V4dGVuc2lvbjJdIHx8IGZhbHNlO1xuICAgIH1cbiAgICBmdW5jdGlvbiBwb3B1bGF0ZU1hcHMoZXh0ZW5zaW9ucywgdHlwZXMpIHtcbiAgICAgIE9iamVjdC5rZXlzKGRiKS5mb3JFYWNoKGZ1bmN0aW9uIGZvckVhY2hNaW1lVHlwZSh0eXBlKSB7XG4gICAgICAgIHZhciBtaW1lID0gZGJbdHlwZV07XG4gICAgICAgIHZhciBleHRzID0gbWltZS5leHRlbnNpb25zO1xuICAgICAgICBpZiAoIWV4dHMgfHwgIWV4dHMubGVuZ3RoKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGV4dGVuc2lvbnNbdHlwZV0gPSBleHRzO1xuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGV4dHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICB2YXIgZXh0ZW5zaW9uMiA9IGV4dHNbaV07XG4gICAgICAgICAgdHlwZXNbZXh0ZW5zaW9uMl0gPSBfcHJlZmVycmVkVHlwZShleHRlbnNpb24yLCB0eXBlc1tleHRlbnNpb24yXSwgdHlwZSk7XG4gICAgICAgICAgY29uc3QgbGVnYWN5VHlwZSA9IF9wcmVmZXJyZWRUeXBlTGVnYWN5KFxuICAgICAgICAgICAgZXh0ZW5zaW9uMixcbiAgICAgICAgICAgIHR5cGVzW2V4dGVuc2lvbjJdLFxuICAgICAgICAgICAgdHlwZVxuICAgICAgICAgICk7XG4gICAgICAgICAgaWYgKGxlZ2FjeVR5cGUgIT09IHR5cGVzW2V4dGVuc2lvbjJdKSB7XG4gICAgICAgICAgICBleHBvcnRzMi5fZXh0ZW5zaW9uQ29uZmxpY3RzLnB1c2goW2V4dGVuc2lvbjIsIGxlZ2FjeVR5cGUsIHR5cGVzW2V4dGVuc2lvbjJdXSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gICAgZnVuY3Rpb24gX3ByZWZlcnJlZFR5cGUoZXh0LCB0eXBlMCwgdHlwZTEpIHtcbiAgICAgIHZhciBzY29yZTAgPSB0eXBlMCA/IG1pbWVTY29yZSh0eXBlMCwgZGJbdHlwZTBdLnNvdXJjZSkgOiAwO1xuICAgICAgdmFyIHNjb3JlMSA9IHR5cGUxID8gbWltZVNjb3JlKHR5cGUxLCBkYlt0eXBlMV0uc291cmNlKSA6IDA7XG4gICAgICByZXR1cm4gc2NvcmUwID4gc2NvcmUxID8gdHlwZTAgOiB0eXBlMTtcbiAgICB9XG4gICAgZnVuY3Rpb24gX3ByZWZlcnJlZFR5cGVMZWdhY3koZXh0LCB0eXBlMCwgdHlwZTEpIHtcbiAgICAgIHZhciBTT1VSQ0VfUkFOSyA9IFtcIm5naW54XCIsIFwiYXBhY2hlXCIsIHZvaWQgMCwgXCJpYW5hXCJdO1xuICAgICAgdmFyIHNjb3JlMCA9IHR5cGUwID8gU09VUkNFX1JBTksuaW5kZXhPZihkYlt0eXBlMF0uc291cmNlKSA6IDA7XG4gICAgICB2YXIgc2NvcmUxID0gdHlwZTEgPyBTT1VSQ0VfUkFOSy5pbmRleE9mKGRiW3R5cGUxXS5zb3VyY2UpIDogMDtcbiAgICAgIGlmIChleHBvcnRzMi50eXBlc1tleHRlbnNpb25dICE9PSBcImFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbVwiICYmIChzY29yZTAgPiBzY29yZTEgfHwgc2NvcmUwID09PSBzY29yZTEgJiYgZXhwb3J0czIudHlwZXNbZXh0ZW5zaW9uXT8uc2xpY2UoMCwgMTIpID09PSBcImFwcGxpY2F0aW9uL1wiKSkge1xuICAgICAgICByZXR1cm4gdHlwZTA7XG4gICAgICB9XG4gICAgICByZXR1cm4gc2NvcmUwID4gc2NvcmUxID8gdHlwZTAgOiB0eXBlMTtcbiAgICB9XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvbWVkaWEtdHlwZXIvaW5kZXguanNcbnZhciByZXF1aXJlX21lZGlhX3R5cGVyID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL21lZGlhLXR5cGVyL2luZGV4LmpzXCIoZXhwb3J0czIpIHtcbiAgICBcInVzZSBzdHJpY3RcIjtcbiAgICB2YXIgU1VCVFlQRV9OQU1FX1JFR0VYUCA9IC9eW0EtWmEtejAtOV1bQS1aYS16MC05ISMkJl5fLi1dezAsMTI2fSQvO1xuICAgIHZhciBUWVBFX05BTUVfUkVHRVhQID0gL15bQS1aYS16MC05XVtBLVphLXowLTkhIyQmXl8tXXswLDEyNn0kLztcbiAgICB2YXIgVFlQRV9SRUdFWFAgPSAvXiAqKFtBLVphLXowLTldW0EtWmEtejAtOSEjJCZeXy1dezAsMTI2fSlcXC8oW0EtWmEtejAtOV1bQS1aYS16MC05ISMkJl5fListXXswLDEyNn0pICokLztcbiAgICBleHBvcnRzMi5mb3JtYXQgPSBmb3JtYXQ7XG4gICAgZXhwb3J0czIucGFyc2UgPSBwYXJzZTtcbiAgICBleHBvcnRzMi50ZXN0ID0gdGVzdDtcbiAgICBmdW5jdGlvbiBmb3JtYXQob2JqKSB7XG4gICAgICBpZiAoIW9iaiB8fCB0eXBlb2Ygb2JqICE9PSBcIm9iamVjdFwiKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJhcmd1bWVudCBvYmogaXMgcmVxdWlyZWRcIik7XG4gICAgICB9XG4gICAgICB2YXIgc3VidHlwZSA9IG9iai5zdWJ0eXBlO1xuICAgICAgdmFyIHN1ZmZpeCA9IG9iai5zdWZmaXg7XG4gICAgICB2YXIgdHlwZSA9IG9iai50eXBlO1xuICAgICAgaWYgKCF0eXBlIHx8ICFUWVBFX05BTUVfUkVHRVhQLnRlc3QodHlwZSkpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcImludmFsaWQgdHlwZVwiKTtcbiAgICAgIH1cbiAgICAgIGlmICghc3VidHlwZSB8fCAhU1VCVFlQRV9OQU1FX1JFR0VYUC50ZXN0KHN1YnR5cGUpKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJpbnZhbGlkIHN1YnR5cGVcIik7XG4gICAgICB9XG4gICAgICB2YXIgc3RyaW5nID0gdHlwZSArIFwiL1wiICsgc3VidHlwZTtcbiAgICAgIGlmIChzdWZmaXgpIHtcbiAgICAgICAgaWYgKCFUWVBFX05BTUVfUkVHRVhQLnRlc3Qoc3VmZml4KSkge1xuICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJpbnZhbGlkIHN1ZmZpeFwiKTtcbiAgICAgICAgfVxuICAgICAgICBzdHJpbmcgKz0gXCIrXCIgKyBzdWZmaXg7XG4gICAgICB9XG4gICAgICByZXR1cm4gc3RyaW5nO1xuICAgIH1cbiAgICBmdW5jdGlvbiB0ZXN0KHN0cmluZykge1xuICAgICAgaWYgKCFzdHJpbmcpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcImFyZ3VtZW50IHN0cmluZyBpcyByZXF1aXJlZFwiKTtcbiAgICAgIH1cbiAgICAgIGlmICh0eXBlb2Ygc3RyaW5nICE9PSBcInN0cmluZ1wiKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJhcmd1bWVudCBzdHJpbmcgaXMgcmVxdWlyZWQgdG8gYmUgYSBzdHJpbmdcIik7XG4gICAgICB9XG4gICAgICByZXR1cm4gVFlQRV9SRUdFWFAudGVzdChzdHJpbmcudG9Mb3dlckNhc2UoKSk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHBhcnNlKHN0cmluZykge1xuICAgICAgaWYgKCFzdHJpbmcpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcImFyZ3VtZW50IHN0cmluZyBpcyByZXF1aXJlZFwiKTtcbiAgICAgIH1cbiAgICAgIGlmICh0eXBlb2Ygc3RyaW5nICE9PSBcInN0cmluZ1wiKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJhcmd1bWVudCBzdHJpbmcgaXMgcmVxdWlyZWQgdG8gYmUgYSBzdHJpbmdcIik7XG4gICAgICB9XG4gICAgICB2YXIgbWF0Y2ggPSBUWVBFX1JFR0VYUC5leGVjKHN0cmluZy50b0xvd2VyQ2FzZSgpKTtcbiAgICAgIGlmICghbWF0Y2gpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcImludmFsaWQgbWVkaWEgdHlwZVwiKTtcbiAgICAgIH1cbiAgICAgIHZhciB0eXBlID0gbWF0Y2hbMV07XG4gICAgICB2YXIgc3VidHlwZSA9IG1hdGNoWzJdO1xuICAgICAgdmFyIHN1ZmZpeDtcbiAgICAgIHZhciBpbmRleCA9IHN1YnR5cGUubGFzdEluZGV4T2YoXCIrXCIpO1xuICAgICAgaWYgKGluZGV4ICE9PSAtMSkge1xuICAgICAgICBzdWZmaXggPSBzdWJ0eXBlLnN1YnN0cihpbmRleCArIDEpO1xuICAgICAgICBzdWJ0eXBlID0gc3VidHlwZS5zdWJzdHIoMCwgaW5kZXgpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIG5ldyBNZWRpYVR5cGUodHlwZSwgc3VidHlwZSwgc3VmZml4KTtcbiAgICB9XG4gICAgZnVuY3Rpb24gTWVkaWFUeXBlKHR5cGUsIHN1YnR5cGUsIHN1ZmZpeCkge1xuICAgICAgdGhpcy50eXBlID0gdHlwZTtcbiAgICAgIHRoaXMuc3VidHlwZSA9IHN1YnR5cGU7XG4gICAgICB0aGlzLnN1ZmZpeCA9IHN1ZmZpeDtcbiAgICB9XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvdHlwZS1pcy9pbmRleC5qc1xudmFyIHJlcXVpcmVfdHlwZV9pcyA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy90eXBlLWlzL2luZGV4LmpzXCIoZXhwb3J0czIsIG1vZHVsZTIpIHtcbiAgICBcInVzZSBzdHJpY3RcIjtcbiAgICB2YXIgY29udGVudFR5cGUyID0gcmVxdWlyZV9jb250ZW50X3R5cGUoKTtcbiAgICB2YXIgbWltZSA9IHJlcXVpcmVfbWltZV90eXBlcygpO1xuICAgIHZhciB0eXBlciA9IHJlcXVpcmVfbWVkaWFfdHlwZXIoKTtcbiAgICBtb2R1bGUyLmV4cG9ydHMgPSB0eXBlb2ZyZXF1ZXN0O1xuICAgIG1vZHVsZTIuZXhwb3J0cy5pcyA9IHR5cGVpcztcbiAgICBtb2R1bGUyLmV4cG9ydHMuaGFzQm9keSA9IGhhc2JvZHk7XG4gICAgbW9kdWxlMi5leHBvcnRzLm5vcm1hbGl6ZSA9IG5vcm1hbGl6ZTtcbiAgICBtb2R1bGUyLmV4cG9ydHMubWF0Y2ggPSBtaW1lTWF0Y2g7XG4gICAgZnVuY3Rpb24gdHlwZWlzKHZhbHVlLCB0eXBlc18pIHtcbiAgICAgIHZhciBpO1xuICAgICAgdmFyIHR5cGVzID0gdHlwZXNfO1xuICAgICAgdmFyIHZhbCA9IHRyeU5vcm1hbGl6ZVR5cGUodmFsdWUpO1xuICAgICAgaWYgKCF2YWwpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgaWYgKHR5cGVzICYmICFBcnJheS5pc0FycmF5KHR5cGVzKSkge1xuICAgICAgICB0eXBlcyA9IG5ldyBBcnJheShhcmd1bWVudHMubGVuZ3RoIC0gMSk7XG4gICAgICAgIGZvciAoaSA9IDA7IGkgPCB0eXBlcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgIHR5cGVzW2ldID0gYXJndW1lbnRzW2kgKyAxXTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKCF0eXBlcyB8fCAhdHlwZXMubGVuZ3RoKSB7XG4gICAgICAgIHJldHVybiB2YWw7XG4gICAgICB9XG4gICAgICB2YXIgdHlwZTtcbiAgICAgIGZvciAoaSA9IDA7IGkgPCB0eXBlcy5sZW5ndGg7IGkrKykge1xuICAgICAgICBpZiAobWltZU1hdGNoKG5vcm1hbGl6ZSh0eXBlID0gdHlwZXNbaV0pLCB2YWwpKSB7XG4gICAgICAgICAgcmV0dXJuIHR5cGVbMF0gPT09IFwiK1wiIHx8IHR5cGUuaW5kZXhPZihcIipcIikgIT09IC0xID8gdmFsIDogdHlwZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBmdW5jdGlvbiBoYXNib2R5KHJlcSkge1xuICAgICAgcmV0dXJuIHJlcS5oZWFkZXJzW1widHJhbnNmZXItZW5jb2RpbmdcIl0gIT09IHZvaWQgMCB8fCAhaXNOYU4ocmVxLmhlYWRlcnNbXCJjb250ZW50LWxlbmd0aFwiXSk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHR5cGVvZnJlcXVlc3QocmVxLCB0eXBlc18pIHtcbiAgICAgIGlmICghaGFzYm9keShyZXEpKSByZXR1cm4gbnVsbDtcbiAgICAgIHZhciB0eXBlcyA9IGFyZ3VtZW50cy5sZW5ndGggPiAyID8gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLCAxKSA6IHR5cGVzXztcbiAgICAgIHZhciB2YWx1ZSA9IHJlcS5oZWFkZXJzW1wiY29udGVudC10eXBlXCJdO1xuICAgICAgcmV0dXJuIHR5cGVpcyh2YWx1ZSwgdHlwZXMpO1xuICAgIH1cbiAgICBmdW5jdGlvbiBub3JtYWxpemUodHlwZSkge1xuICAgICAgaWYgKHR5cGVvZiB0eXBlICE9PSBcInN0cmluZ1wiKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIHN3aXRjaCAodHlwZSkge1xuICAgICAgICBjYXNlIFwidXJsZW5jb2RlZFwiOlxuICAgICAgICAgIHJldHVybiBcImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZFwiO1xuICAgICAgICBjYXNlIFwibXVsdGlwYXJ0XCI6XG4gICAgICAgICAgcmV0dXJuIFwibXVsdGlwYXJ0LypcIjtcbiAgICAgIH1cbiAgICAgIGlmICh0eXBlWzBdID09PSBcIitcIikge1xuICAgICAgICByZXR1cm4gXCIqLypcIiArIHR5cGU7XG4gICAgICB9XG4gICAgICByZXR1cm4gdHlwZS5pbmRleE9mKFwiL1wiKSA9PT0gLTEgPyBtaW1lLmxvb2t1cCh0eXBlKSA6IHR5cGU7XG4gICAgfVxuICAgIGZ1bmN0aW9uIG1pbWVNYXRjaChleHBlY3RlZCwgYWN0dWFsKSB7XG4gICAgICBpZiAoZXhwZWN0ZWQgPT09IGZhbHNlKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIHZhciBhY3R1YWxQYXJ0cyA9IGFjdHVhbC5zcGxpdChcIi9cIik7XG4gICAgICB2YXIgZXhwZWN0ZWRQYXJ0cyA9IGV4cGVjdGVkLnNwbGl0KFwiL1wiKTtcbiAgICAgIGlmIChhY3R1YWxQYXJ0cy5sZW5ndGggIT09IDIgfHwgZXhwZWN0ZWRQYXJ0cy5sZW5ndGggIT09IDIpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgaWYgKGV4cGVjdGVkUGFydHNbMF0gIT09IFwiKlwiICYmIGV4cGVjdGVkUGFydHNbMF0gIT09IGFjdHVhbFBhcnRzWzBdKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIGlmIChleHBlY3RlZFBhcnRzWzFdLnNsaWNlKDAsIDIpID09PSBcIiorXCIpIHtcbiAgICAgICAgcmV0dXJuIGV4cGVjdGVkUGFydHNbMV0ubGVuZ3RoIDw9IGFjdHVhbFBhcnRzWzFdLmxlbmd0aCArIDEgJiYgZXhwZWN0ZWRQYXJ0c1sxXS5zbGljZSgxKSA9PT0gYWN0dWFsUGFydHNbMV0uc2xpY2UoMSAtIGV4cGVjdGVkUGFydHNbMV0ubGVuZ3RoKTtcbiAgICAgIH1cbiAgICAgIGlmIChleHBlY3RlZFBhcnRzWzFdICE9PSBcIipcIiAmJiBleHBlY3RlZFBhcnRzWzFdICE9PSBhY3R1YWxQYXJ0c1sxXSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgZnVuY3Rpb24gbm9ybWFsaXplVHlwZSh2YWx1ZSkge1xuICAgICAgdmFyIHR5cGUgPSBjb250ZW50VHlwZTIucGFyc2UodmFsdWUpLnR5cGU7XG4gICAgICByZXR1cm4gdHlwZXIudGVzdCh0eXBlKSA/IHR5cGUgOiBudWxsO1xuICAgIH1cbiAgICBmdW5jdGlvbiB0cnlOb3JtYWxpemVUeXBlKHZhbHVlKSB7XG4gICAgICB0cnkge1xuICAgICAgICByZXR1cm4gdmFsdWUgPyBub3JtYWxpemVUeXBlKHZhbHVlKSA6IG51bGw7XG4gICAgICB9IGNhdGNoIChlcnIyKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuICAgIH1cbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9ib2R5LXBhcnNlci9saWIvdXRpbHMuanNcbnZhciByZXF1aXJlX3V0aWxzID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL2JvZHktcGFyc2VyL2xpYi91dGlscy5qc1wiKGV4cG9ydHMyLCBtb2R1bGUyKSB7XG4gICAgXCJ1c2Ugc3RyaWN0XCI7XG4gICAgdmFyIGJ5dGVzID0gcmVxdWlyZV9ieXRlcygpO1xuICAgIHZhciBjb250ZW50VHlwZTIgPSByZXF1aXJlX2NvbnRlbnRfdHlwZSgpO1xuICAgIHZhciB0eXBlaXMgPSByZXF1aXJlX3R5cGVfaXMoKTtcbiAgICBtb2R1bGUyLmV4cG9ydHMgPSB7XG4gICAgICBnZXRDaGFyc2V0LFxuICAgICAgbm9ybWFsaXplT3B0aW9uc1xuICAgIH07XG4gICAgZnVuY3Rpb24gZ2V0Q2hhcnNldChyZXEpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHJldHVybiAoY29udGVudFR5cGUyLnBhcnNlKHJlcSkucGFyYW1ldGVycy5jaGFyc2V0IHx8IFwiXCIpLnRvTG93ZXJDYXNlKCk7XG4gICAgICB9IGNhdGNoIHtcbiAgICAgICAgcmV0dXJuIHZvaWQgMDtcbiAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gdHlwZUNoZWNrZXIodHlwZSkge1xuICAgICAgcmV0dXJuIGZ1bmN0aW9uIGNoZWNrVHlwZShyZXEpIHtcbiAgICAgICAgcmV0dXJuIEJvb2xlYW4odHlwZWlzKHJlcSwgdHlwZSkpO1xuICAgICAgfTtcbiAgICB9XG4gICAgZnVuY3Rpb24gbm9ybWFsaXplT3B0aW9ucyhvcHRpb25zLCBkZWZhdWx0VHlwZSkge1xuICAgICAgaWYgKCFkZWZhdWx0VHlwZSkge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiZGVmYXVsdFR5cGUgbXVzdCBiZSBwcm92aWRlZFwiKTtcbiAgICAgIH1cbiAgICAgIHZhciBpbmZsYXRlID0gb3B0aW9ucz8uaW5mbGF0ZSAhPT0gZmFsc2U7XG4gICAgICB2YXIgbGltaXQgPSB0eXBlb2Ygb3B0aW9ucz8ubGltaXQgIT09IFwibnVtYmVyXCIgPyBieXRlcy5wYXJzZShvcHRpb25zPy5saW1pdCB8fCBcIjEwMGtiXCIpIDogb3B0aW9ucz8ubGltaXQ7XG4gICAgICB2YXIgdHlwZSA9IG9wdGlvbnM/LnR5cGUgfHwgZGVmYXVsdFR5cGU7XG4gICAgICB2YXIgdmVyaWZ5ID0gb3B0aW9ucz8udmVyaWZ5IHx8IGZhbHNlO1xuICAgICAgaWYgKHZlcmlmeSAhPT0gZmFsc2UgJiYgdHlwZW9mIHZlcmlmeSAhPT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJvcHRpb24gdmVyaWZ5IG11c3QgYmUgZnVuY3Rpb25cIik7XG4gICAgICB9XG4gICAgICB2YXIgc2hvdWxkUGFyc2UgPSB0eXBlb2YgdHlwZSAhPT0gXCJmdW5jdGlvblwiID8gdHlwZUNoZWNrZXIodHlwZSkgOiB0eXBlO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgaW5mbGF0ZSxcbiAgICAgICAgbGltaXQsXG4gICAgICAgIHZlcmlmeSxcbiAgICAgICAgc2hvdWxkUGFyc2VcbiAgICAgIH07XG4gICAgfVxuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL2JvZHktcGFyc2VyL2xpYi90eXBlcy9qc29uLmpzXG52YXIgcmVxdWlyZV9qc29uID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL2JvZHktcGFyc2VyL2xpYi90eXBlcy9qc29uLmpzXCIoZXhwb3J0czIsIG1vZHVsZTIpIHtcbiAgICBcInVzZSBzdHJpY3RcIjtcbiAgICB2YXIgY3JlYXRlRXJyb3IgPSByZXF1aXJlX2h0dHBfZXJyb3JzKCk7XG4gICAgdmFyIGRlYnVnID0gcmVxdWlyZV9zcmMoKShcImJvZHktcGFyc2VyOmpzb25cIik7XG4gICAgdmFyIGlzRmluaXNoZWQgPSByZXF1aXJlX29uX2ZpbmlzaGVkKCkuaXNGaW5pc2hlZDtcbiAgICB2YXIgcmVhZCA9IHJlcXVpcmVfcmVhZCgpO1xuICAgIHZhciB0eXBlaXMgPSByZXF1aXJlX3R5cGVfaXMoKTtcbiAgICB2YXIgeyBnZXRDaGFyc2V0LCBub3JtYWxpemVPcHRpb25zIH0gPSByZXF1aXJlX3V0aWxzKCk7XG4gICAgbW9kdWxlMi5leHBvcnRzID0ganNvbjtcbiAgICB2YXIgRklSU1RfQ0hBUl9SRUdFWFAgPSAvXltcXHgyMFxceDA5XFx4MGFcXHgwZF0qKFteXFx4MjBcXHgwOVxceDBhXFx4MGRdKS87XG4gICAgdmFyIEpTT05fU1lOVEFYX0NIQVIgPSBcIiNcIjtcbiAgICB2YXIgSlNPTl9TWU5UQVhfUkVHRVhQID0gLyMrL2c7XG4gICAgZnVuY3Rpb24ganNvbihvcHRpb25zKSB7XG4gICAgICB2YXIgeyBpbmZsYXRlLCBsaW1pdCwgdmVyaWZ5LCBzaG91bGRQYXJzZSB9ID0gbm9ybWFsaXplT3B0aW9ucyhvcHRpb25zLCBcImFwcGxpY2F0aW9uL2pzb25cIik7XG4gICAgICB2YXIgcmV2aXZlciA9IG9wdGlvbnM/LnJldml2ZXI7XG4gICAgICB2YXIgc3RyaWN0ID0gb3B0aW9ucz8uc3RyaWN0ICE9PSBmYWxzZTtcbiAgICAgIGZ1bmN0aW9uIHBhcnNlKGJvZHkpIHtcbiAgICAgICAgaWYgKGJvZHkubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgcmV0dXJuIHt9O1xuICAgICAgICB9XG4gICAgICAgIGlmIChzdHJpY3QpIHtcbiAgICAgICAgICB2YXIgZmlyc3QgPSBmaXJzdGNoYXIoYm9keSk7XG4gICAgICAgICAgaWYgKGZpcnN0ICE9PSBcIntcIiAmJiBmaXJzdCAhPT0gXCJbXCIpIHtcbiAgICAgICAgICAgIGRlYnVnKFwic3RyaWN0IHZpb2xhdGlvblwiKTtcbiAgICAgICAgICAgIHRocm93IGNyZWF0ZVN0cmljdFN5bnRheEVycm9yKGJvZHksIGZpcnN0KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBkZWJ1ZyhcInBhcnNlIGpzb25cIik7XG4gICAgICAgICAgcmV0dXJuIEpTT04ucGFyc2UoYm9keSwgcmV2aXZlcik7XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICB0aHJvdyBub3JtYWxpemVKc29uU3ludGF4RXJyb3IoZSwge1xuICAgICAgICAgICAgbWVzc2FnZTogZS5tZXNzYWdlLFxuICAgICAgICAgICAgc3RhY2s6IGUuc3RhY2tcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIGZ1bmN0aW9uIGpzb25QYXJzZXIocmVxLCByZXMsIG5leHQpIHtcbiAgICAgICAgaWYgKGlzRmluaXNoZWQocmVxKSkge1xuICAgICAgICAgIGRlYnVnKFwiYm9keSBhbHJlYWR5IHBhcnNlZFwiKTtcbiAgICAgICAgICBuZXh0KCk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmICghKFwiYm9keVwiIGluIHJlcSkpIHtcbiAgICAgICAgICByZXEuYm9keSA9IHZvaWQgMDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXR5cGVpcy5oYXNCb2R5KHJlcSkpIHtcbiAgICAgICAgICBkZWJ1ZyhcInNraXAgZW1wdHkgYm9keVwiKTtcbiAgICAgICAgICBuZXh0KCk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGRlYnVnKFwiY29udGVudC10eXBlICVqXCIsIHJlcS5oZWFkZXJzW1wiY29udGVudC10eXBlXCJdKTtcbiAgICAgICAgaWYgKCFzaG91bGRQYXJzZShyZXEpKSB7XG4gICAgICAgICAgZGVidWcoXCJza2lwIHBhcnNpbmdcIik7XG4gICAgICAgICAgbmV4dCgpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB2YXIgY2hhcnNldCA9IGdldENoYXJzZXQocmVxKSB8fCBcInV0Zi04XCI7XG4gICAgICAgIGlmIChjaGFyc2V0LnNsaWNlKDAsIDQpICE9PSBcInV0Zi1cIikge1xuICAgICAgICAgIGRlYnVnKFwiaW52YWxpZCBjaGFyc2V0XCIpO1xuICAgICAgICAgIG5leHQoY3JlYXRlRXJyb3IoNDE1LCAndW5zdXBwb3J0ZWQgY2hhcnNldCBcIicgKyBjaGFyc2V0LnRvVXBwZXJDYXNlKCkgKyAnXCInLCB7XG4gICAgICAgICAgICBjaGFyc2V0LFxuICAgICAgICAgICAgdHlwZTogXCJjaGFyc2V0LnVuc3VwcG9ydGVkXCJcbiAgICAgICAgICB9KSk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHJlYWQocmVxLCByZXMsIG5leHQsIHBhcnNlLCBkZWJ1Zywge1xuICAgICAgICAgIGVuY29kaW5nOiBjaGFyc2V0LFxuICAgICAgICAgIGluZmxhdGUsXG4gICAgICAgICAgbGltaXQsXG4gICAgICAgICAgdmVyaWZ5XG4gICAgICAgIH0pO1xuICAgICAgfTtcbiAgICB9XG4gICAgZnVuY3Rpb24gY3JlYXRlU3RyaWN0U3ludGF4RXJyb3Ioc3RyLCBjaGFyKSB7XG4gICAgICB2YXIgaW5kZXggPSBzdHIuaW5kZXhPZihjaGFyKTtcbiAgICAgIHZhciBwYXJ0aWFsID0gXCJcIjtcbiAgICAgIGlmIChpbmRleCAhPT0gLTEpIHtcbiAgICAgICAgcGFydGlhbCA9IHN0ci5zdWJzdHJpbmcoMCwgaW5kZXgpICsgSlNPTl9TWU5UQVhfQ0hBUjtcbiAgICAgICAgZm9yICh2YXIgaSA9IGluZGV4ICsgMTsgaSA8IHN0ci5sZW5ndGg7IGkrKykge1xuICAgICAgICAgIHBhcnRpYWwgKz0gSlNPTl9TWU5UQVhfQ0hBUjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgdHJ5IHtcbiAgICAgICAgSlNPTi5wYXJzZShwYXJ0aWFsKTtcbiAgICAgICAgdGhyb3cgbmV3IFN5bnRheEVycm9yKFwic3RyaWN0IHZpb2xhdGlvblwiKTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgcmV0dXJuIG5vcm1hbGl6ZUpzb25TeW50YXhFcnJvcihlLCB7XG4gICAgICAgICAgbWVzc2FnZTogZS5tZXNzYWdlLnJlcGxhY2UoSlNPTl9TWU5UQVhfUkVHRVhQLCBmdW5jdGlvbihwbGFjZWhvbGRlcikge1xuICAgICAgICAgICAgcmV0dXJuIHN0ci5zdWJzdHJpbmcoaW5kZXgsIGluZGV4ICsgcGxhY2Vob2xkZXIubGVuZ3RoKTtcbiAgICAgICAgICB9KSxcbiAgICAgICAgICBzdGFjazogZS5zdGFja1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gZmlyc3RjaGFyKHN0cikge1xuICAgICAgdmFyIG1hdGNoID0gRklSU1RfQ0hBUl9SRUdFWFAuZXhlYyhzdHIpO1xuICAgICAgcmV0dXJuIG1hdGNoID8gbWF0Y2hbMV0gOiB2b2lkIDA7XG4gICAgfVxuICAgIGZ1bmN0aW9uIG5vcm1hbGl6ZUpzb25TeW50YXhFcnJvcihlcnJvciwgb2JqKSB7XG4gICAgICB2YXIga2V5cyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKGVycm9yKTtcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwga2V5cy5sZW5ndGg7IGkrKykge1xuICAgICAgICB2YXIga2V5ID0ga2V5c1tpXTtcbiAgICAgICAgaWYgKGtleSAhPT0gXCJzdGFja1wiICYmIGtleSAhPT0gXCJtZXNzYWdlXCIpIHtcbiAgICAgICAgICBkZWxldGUgZXJyb3Jba2V5XTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgZXJyb3Iuc3RhY2sgPSBvYmouc3RhY2sucmVwbGFjZShlcnJvci5tZXNzYWdlLCBvYmoubWVzc2FnZSk7XG4gICAgICBlcnJvci5tZXNzYWdlID0gb2JqLm1lc3NhZ2U7XG4gICAgICByZXR1cm4gZXJyb3I7XG4gICAgfVxuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL2JvZHktcGFyc2VyL2xpYi90eXBlcy9yYXcuanNcbnZhciByZXF1aXJlX3JhdyA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9ib2R5LXBhcnNlci9saWIvdHlwZXMvcmF3LmpzXCIoZXhwb3J0czIsIG1vZHVsZTIpIHtcbiAgICBcInVzZSBzdHJpY3RcIjtcbiAgICB2YXIgZGVidWcgPSByZXF1aXJlX3NyYygpKFwiYm9keS1wYXJzZXI6cmF3XCIpO1xuICAgIHZhciBpc0ZpbmlzaGVkID0gcmVxdWlyZV9vbl9maW5pc2hlZCgpLmlzRmluaXNoZWQ7XG4gICAgdmFyIHJlYWQgPSByZXF1aXJlX3JlYWQoKTtcbiAgICB2YXIgdHlwZWlzID0gcmVxdWlyZV90eXBlX2lzKCk7XG4gICAgdmFyIHsgbm9ybWFsaXplT3B0aW9ucyB9ID0gcmVxdWlyZV91dGlscygpO1xuICAgIG1vZHVsZTIuZXhwb3J0cyA9IHJhdztcbiAgICBmdW5jdGlvbiByYXcob3B0aW9ucykge1xuICAgICAgdmFyIHsgaW5mbGF0ZSwgbGltaXQsIHZlcmlmeSwgc2hvdWxkUGFyc2UgfSA9IG5vcm1hbGl6ZU9wdGlvbnMob3B0aW9ucywgXCJhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW1cIik7XG4gICAgICBmdW5jdGlvbiBwYXJzZShidWYpIHtcbiAgICAgICAgcmV0dXJuIGJ1ZjtcbiAgICAgIH1cbiAgICAgIHJldHVybiBmdW5jdGlvbiByYXdQYXJzZXIocmVxLCByZXMsIG5leHQpIHtcbiAgICAgICAgaWYgKGlzRmluaXNoZWQocmVxKSkge1xuICAgICAgICAgIGRlYnVnKFwiYm9keSBhbHJlYWR5IHBhcnNlZFwiKTtcbiAgICAgICAgICBuZXh0KCk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmICghKFwiYm9keVwiIGluIHJlcSkpIHtcbiAgICAgICAgICByZXEuYm9keSA9IHZvaWQgMDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXR5cGVpcy5oYXNCb2R5KHJlcSkpIHtcbiAgICAgICAgICBkZWJ1ZyhcInNraXAgZW1wdHkgYm9keVwiKTtcbiAgICAgICAgICBuZXh0KCk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGRlYnVnKFwiY29udGVudC10eXBlICVqXCIsIHJlcS5oZWFkZXJzW1wiY29udGVudC10eXBlXCJdKTtcbiAgICAgICAgaWYgKCFzaG91bGRQYXJzZShyZXEpKSB7XG4gICAgICAgICAgZGVidWcoXCJza2lwIHBhcnNpbmdcIik7XG4gICAgICAgICAgbmV4dCgpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICByZWFkKHJlcSwgcmVzLCBuZXh0LCBwYXJzZSwgZGVidWcsIHtcbiAgICAgICAgICBlbmNvZGluZzogbnVsbCxcbiAgICAgICAgICBpbmZsYXRlLFxuICAgICAgICAgIGxpbWl0LFxuICAgICAgICAgIHZlcmlmeVxuICAgICAgICB9KTtcbiAgICAgIH07XG4gICAgfVxuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL2JvZHktcGFyc2VyL2xpYi90eXBlcy90ZXh0LmpzXG52YXIgcmVxdWlyZV90ZXh0ID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL2JvZHktcGFyc2VyL2xpYi90eXBlcy90ZXh0LmpzXCIoZXhwb3J0czIsIG1vZHVsZTIpIHtcbiAgICBcInVzZSBzdHJpY3RcIjtcbiAgICB2YXIgZGVidWcgPSByZXF1aXJlX3NyYygpKFwiYm9keS1wYXJzZXI6dGV4dFwiKTtcbiAgICB2YXIgaXNGaW5pc2hlZCA9IHJlcXVpcmVfb25fZmluaXNoZWQoKS5pc0ZpbmlzaGVkO1xuICAgIHZhciByZWFkID0gcmVxdWlyZV9yZWFkKCk7XG4gICAgdmFyIHR5cGVpcyA9IHJlcXVpcmVfdHlwZV9pcygpO1xuICAgIHZhciB7IGdldENoYXJzZXQsIG5vcm1hbGl6ZU9wdGlvbnMgfSA9IHJlcXVpcmVfdXRpbHMoKTtcbiAgICBtb2R1bGUyLmV4cG9ydHMgPSB0ZXh0O1xuICAgIGZ1bmN0aW9uIHRleHQob3B0aW9ucykge1xuICAgICAgdmFyIHsgaW5mbGF0ZSwgbGltaXQsIHZlcmlmeSwgc2hvdWxkUGFyc2UgfSA9IG5vcm1hbGl6ZU9wdGlvbnMob3B0aW9ucywgXCJ0ZXh0L3BsYWluXCIpO1xuICAgICAgdmFyIGRlZmF1bHRDaGFyc2V0ID0gb3B0aW9ucz8uZGVmYXVsdENoYXJzZXQgfHwgXCJ1dGYtOFwiO1xuICAgICAgZnVuY3Rpb24gcGFyc2UoYnVmKSB7XG4gICAgICAgIHJldHVybiBidWY7XG4gICAgICB9XG4gICAgICByZXR1cm4gZnVuY3Rpb24gdGV4dFBhcnNlcihyZXEsIHJlcywgbmV4dCkge1xuICAgICAgICBpZiAoaXNGaW5pc2hlZChyZXEpKSB7XG4gICAgICAgICAgZGVidWcoXCJib2R5IGFscmVhZHkgcGFyc2VkXCIpO1xuICAgICAgICAgIG5leHQoKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCEoXCJib2R5XCIgaW4gcmVxKSkge1xuICAgICAgICAgIHJlcS5ib2R5ID0gdm9pZCAwO1xuICAgICAgICB9XG4gICAgICAgIGlmICghdHlwZWlzLmhhc0JvZHkocmVxKSkge1xuICAgICAgICAgIGRlYnVnKFwic2tpcCBlbXB0eSBib2R5XCIpO1xuICAgICAgICAgIG5leHQoKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgZGVidWcoXCJjb250ZW50LXR5cGUgJWpcIiwgcmVxLmhlYWRlcnNbXCJjb250ZW50LXR5cGVcIl0pO1xuICAgICAgICBpZiAoIXNob3VsZFBhcnNlKHJlcSkpIHtcbiAgICAgICAgICBkZWJ1ZyhcInNraXAgcGFyc2luZ1wiKTtcbiAgICAgICAgICBuZXh0KCk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHZhciBjaGFyc2V0ID0gZ2V0Q2hhcnNldChyZXEpIHx8IGRlZmF1bHRDaGFyc2V0O1xuICAgICAgICByZWFkKHJlcSwgcmVzLCBuZXh0LCBwYXJzZSwgZGVidWcsIHtcbiAgICAgICAgICBlbmNvZGluZzogY2hhcnNldCxcbiAgICAgICAgICBpbmZsYXRlLFxuICAgICAgICAgIGxpbWl0LFxuICAgICAgICAgIHZlcmlmeVxuICAgICAgICB9KTtcbiAgICAgIH07XG4gICAgfVxuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL2VzLWVycm9ycy90eXBlLmpzXG52YXIgcmVxdWlyZV90eXBlID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL2VzLWVycm9ycy90eXBlLmpzXCIoZXhwb3J0czIsIG1vZHVsZTIpIHtcbiAgICBcInVzZSBzdHJpY3RcIjtcbiAgICBtb2R1bGUyLmV4cG9ydHMgPSBUeXBlRXJyb3I7XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvb2JqZWN0LWluc3BlY3QvdXRpbC5pbnNwZWN0LmpzXG52YXIgcmVxdWlyZV91dGlsX2luc3BlY3QgPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvb2JqZWN0LWluc3BlY3QvdXRpbC5pbnNwZWN0LmpzXCIoZXhwb3J0czIsIG1vZHVsZTIpIHtcbiAgICBtb2R1bGUyLmV4cG9ydHMgPSByZXF1aXJlKFwidXRpbFwiKS5pbnNwZWN0O1xuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL29iamVjdC1pbnNwZWN0L2luZGV4LmpzXG52YXIgcmVxdWlyZV9vYmplY3RfaW5zcGVjdCA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9vYmplY3QtaW5zcGVjdC9pbmRleC5qc1wiKGV4cG9ydHMyLCBtb2R1bGUyKSB7XG4gICAgdmFyIGhhc01hcCA9IHR5cGVvZiBNYXAgPT09IFwiZnVuY3Rpb25cIiAmJiBNYXAucHJvdG90eXBlO1xuICAgIHZhciBtYXBTaXplRGVzY3JpcHRvciA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IgJiYgaGFzTWFwID8gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihNYXAucHJvdG90eXBlLCBcInNpemVcIikgOiBudWxsO1xuICAgIHZhciBtYXBTaXplID0gaGFzTWFwICYmIG1hcFNpemVEZXNjcmlwdG9yICYmIHR5cGVvZiBtYXBTaXplRGVzY3JpcHRvci5nZXQgPT09IFwiZnVuY3Rpb25cIiA/IG1hcFNpemVEZXNjcmlwdG9yLmdldCA6IG51bGw7XG4gICAgdmFyIG1hcEZvckVhY2ggPSBoYXNNYXAgJiYgTWFwLnByb3RvdHlwZS5mb3JFYWNoO1xuICAgIHZhciBoYXNTZXQgPSB0eXBlb2YgU2V0ID09PSBcImZ1bmN0aW9uXCIgJiYgU2V0LnByb3RvdHlwZTtcbiAgICB2YXIgc2V0U2l6ZURlc2NyaXB0b3IgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yICYmIGhhc1NldCA/IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoU2V0LnByb3RvdHlwZSwgXCJzaXplXCIpIDogbnVsbDtcbiAgICB2YXIgc2V0U2l6ZSA9IGhhc1NldCAmJiBzZXRTaXplRGVzY3JpcHRvciAmJiB0eXBlb2Ygc2V0U2l6ZURlc2NyaXB0b3IuZ2V0ID09PSBcImZ1bmN0aW9uXCIgPyBzZXRTaXplRGVzY3JpcHRvci5nZXQgOiBudWxsO1xuICAgIHZhciBzZXRGb3JFYWNoID0gaGFzU2V0ICYmIFNldC5wcm90b3R5cGUuZm9yRWFjaDtcbiAgICB2YXIgaGFzV2Vha01hcCA9IHR5cGVvZiBXZWFrTWFwID09PSBcImZ1bmN0aW9uXCIgJiYgV2Vha01hcC5wcm90b3R5cGU7XG4gICAgdmFyIHdlYWtNYXBIYXMgPSBoYXNXZWFrTWFwID8gV2Vha01hcC5wcm90b3R5cGUuaGFzIDogbnVsbDtcbiAgICB2YXIgaGFzV2Vha1NldCA9IHR5cGVvZiBXZWFrU2V0ID09PSBcImZ1bmN0aW9uXCIgJiYgV2Vha1NldC5wcm90b3R5cGU7XG4gICAgdmFyIHdlYWtTZXRIYXMgPSBoYXNXZWFrU2V0ID8gV2Vha1NldC5wcm90b3R5cGUuaGFzIDogbnVsbDtcbiAgICB2YXIgaGFzV2Vha1JlZiA9IHR5cGVvZiBXZWFrUmVmID09PSBcImZ1bmN0aW9uXCIgJiYgV2Vha1JlZi5wcm90b3R5cGU7XG4gICAgdmFyIHdlYWtSZWZEZXJlZiA9IGhhc1dlYWtSZWYgPyBXZWFrUmVmLnByb3RvdHlwZS5kZXJlZiA6IG51bGw7XG4gICAgdmFyIGJvb2xlYW5WYWx1ZU9mID0gQm9vbGVhbi5wcm90b3R5cGUudmFsdWVPZjtcbiAgICB2YXIgb2JqZWN0VG9TdHJpbmcgPSBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nO1xuICAgIHZhciBmdW5jdGlvblRvU3RyaW5nID0gRnVuY3Rpb24ucHJvdG90eXBlLnRvU3RyaW5nO1xuICAgIHZhciAkbWF0Y2ggPSBTdHJpbmcucHJvdG90eXBlLm1hdGNoO1xuICAgIHZhciAkc2xpY2UgPSBTdHJpbmcucHJvdG90eXBlLnNsaWNlO1xuICAgIHZhciAkcmVwbGFjZSA9IFN0cmluZy5wcm90b3R5cGUucmVwbGFjZTtcbiAgICB2YXIgJHRvVXBwZXJDYXNlID0gU3RyaW5nLnByb3RvdHlwZS50b1VwcGVyQ2FzZTtcbiAgICB2YXIgJHRvTG93ZXJDYXNlID0gU3RyaW5nLnByb3RvdHlwZS50b0xvd2VyQ2FzZTtcbiAgICB2YXIgJHRlc3QgPSBSZWdFeHAucHJvdG90eXBlLnRlc3Q7XG4gICAgdmFyICRjb25jYXQgPSBBcnJheS5wcm90b3R5cGUuY29uY2F0O1xuICAgIHZhciAkam9pbiA9IEFycmF5LnByb3RvdHlwZS5qb2luO1xuICAgIHZhciAkYXJyU2xpY2UgPSBBcnJheS5wcm90b3R5cGUuc2xpY2U7XG4gICAgdmFyICRmbG9vciA9IE1hdGguZmxvb3I7XG4gICAgdmFyIGJpZ0ludFZhbHVlT2YgPSB0eXBlb2YgQmlnSW50ID09PSBcImZ1bmN0aW9uXCIgPyBCaWdJbnQucHJvdG90eXBlLnZhbHVlT2YgOiBudWxsO1xuICAgIHZhciBnT1BTID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scztcbiAgICB2YXIgc3ltVG9TdHJpbmcgPSB0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgdHlwZW9mIFN5bWJvbC5pdGVyYXRvciA9PT0gXCJzeW1ib2xcIiA/IFN5bWJvbC5wcm90b3R5cGUudG9TdHJpbmcgOiBudWxsO1xuICAgIHZhciBoYXNTaGFtbWVkU3ltYm9scyA9IHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiB0eXBlb2YgU3ltYm9sLml0ZXJhdG9yID09PSBcIm9iamVjdFwiO1xuICAgIHZhciB0b1N0cmluZ1RhZyA9IHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiBTeW1ib2wudG9TdHJpbmdUYWcgJiYgKHR5cGVvZiBTeW1ib2wudG9TdHJpbmdUYWcgPT09IGhhc1NoYW1tZWRTeW1ib2xzID8gXCJvYmplY3RcIiA6IFwic3ltYm9sXCIpID8gU3ltYm9sLnRvU3RyaW5nVGFnIDogbnVsbDtcbiAgICB2YXIgaXNFbnVtZXJhYmxlID0gT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZTtcbiAgICB2YXIgZ1BPID0gKHR5cGVvZiBSZWZsZWN0ID09PSBcImZ1bmN0aW9uXCIgPyBSZWZsZWN0LmdldFByb3RvdHlwZU9mIDogT2JqZWN0LmdldFByb3RvdHlwZU9mKSB8fCAoW10uX19wcm90b19fID09PSBBcnJheS5wcm90b3R5cGUgPyBmdW5jdGlvbihPKSB7XG4gICAgICByZXR1cm4gTy5fX3Byb3RvX187XG4gICAgfSA6IG51bGwpO1xuICAgIGZ1bmN0aW9uIGFkZE51bWVyaWNTZXBhcmF0b3IobnVtLCBzdHIpIHtcbiAgICAgIGlmIChudW0gPT09IEluZmluaXR5IHx8IG51bSA9PT0gLUluZmluaXR5IHx8IG51bSAhPT0gbnVtIHx8IG51bSAmJiBudW0gPiAtMWUzICYmIG51bSA8IDFlMyB8fCAkdGVzdC5jYWxsKC9lLywgc3RyKSkge1xuICAgICAgICByZXR1cm4gc3RyO1xuICAgICAgfVxuICAgICAgdmFyIHNlcFJlZ2V4ID0gL1swLTldKD89KD86WzAtOV17M30pKyg/IVswLTldKSkvZztcbiAgICAgIGlmICh0eXBlb2YgbnVtID09PSBcIm51bWJlclwiKSB7XG4gICAgICAgIHZhciBpbnQgPSBudW0gPCAwID8gLSRmbG9vcigtbnVtKSA6ICRmbG9vcihudW0pO1xuICAgICAgICBpZiAoaW50ICE9PSBudW0pIHtcbiAgICAgICAgICB2YXIgaW50U3RyID0gU3RyaW5nKGludCk7XG4gICAgICAgICAgdmFyIGRlYyA9ICRzbGljZS5jYWxsKHN0ciwgaW50U3RyLmxlbmd0aCArIDEpO1xuICAgICAgICAgIHJldHVybiAkcmVwbGFjZS5jYWxsKGludFN0ciwgc2VwUmVnZXgsIFwiJCZfXCIpICsgXCIuXCIgKyAkcmVwbGFjZS5jYWxsKCRyZXBsYWNlLmNhbGwoZGVjLCAvKFswLTldezN9KS9nLCBcIiQmX1wiKSwgL18kLywgXCJcIik7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiAkcmVwbGFjZS5jYWxsKHN0ciwgc2VwUmVnZXgsIFwiJCZfXCIpO1xuICAgIH1cbiAgICB2YXIgdXRpbEluc3BlY3QgPSByZXF1aXJlX3V0aWxfaW5zcGVjdCgpO1xuICAgIHZhciBpbnNwZWN0Q3VzdG9tID0gdXRpbEluc3BlY3QuY3VzdG9tO1xuICAgIHZhciBpbnNwZWN0U3ltYm9sID0gaXNTeW1ib2woaW5zcGVjdEN1c3RvbSkgPyBpbnNwZWN0Q3VzdG9tIDogbnVsbDtcbiAgICB2YXIgcXVvdGVzID0ge1xuICAgICAgX19wcm90b19fOiBudWxsLFxuICAgICAgXCJkb3VibGVcIjogJ1wiJyxcbiAgICAgIHNpbmdsZTogXCInXCJcbiAgICB9O1xuICAgIHZhciBxdW90ZVJFcyA9IHtcbiAgICAgIF9fcHJvdG9fXzogbnVsbCxcbiAgICAgIFwiZG91YmxlXCI6IC8oW1wiXFxcXF0pL2csXG4gICAgICBzaW5nbGU6IC8oWydcXFxcXSkvZ1xuICAgIH07XG4gICAgbW9kdWxlMi5leHBvcnRzID0gZnVuY3Rpb24gaW5zcGVjdF8ob2JqLCBvcHRpb25zLCBkZXB0aCwgc2Vlbikge1xuICAgICAgdmFyIG9wdHMgPSBvcHRpb25zIHx8IHt9O1xuICAgICAgaWYgKGhhcyhvcHRzLCBcInF1b3RlU3R5bGVcIikgJiYgIWhhcyhxdW90ZXMsIG9wdHMucXVvdGVTdHlsZSkpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignb3B0aW9uIFwicXVvdGVTdHlsZVwiIG11c3QgYmUgXCJzaW5nbGVcIiBvciBcImRvdWJsZVwiJyk7XG4gICAgICB9XG4gICAgICBpZiAoaGFzKG9wdHMsIFwibWF4U3RyaW5nTGVuZ3RoXCIpICYmICh0eXBlb2Ygb3B0cy5tYXhTdHJpbmdMZW5ndGggPT09IFwibnVtYmVyXCIgPyBvcHRzLm1heFN0cmluZ0xlbmd0aCA8IDAgJiYgb3B0cy5tYXhTdHJpbmdMZW5ndGggIT09IEluZmluaXR5IDogb3B0cy5tYXhTdHJpbmdMZW5ndGggIT09IG51bGwpKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ29wdGlvbiBcIm1heFN0cmluZ0xlbmd0aFwiLCBpZiBwcm92aWRlZCwgbXVzdCBiZSBhIHBvc2l0aXZlIGludGVnZXIsIEluZmluaXR5LCBvciBgbnVsbGAnKTtcbiAgICAgIH1cbiAgICAgIHZhciBjdXN0b21JbnNwZWN0ID0gaGFzKG9wdHMsIFwiY3VzdG9tSW5zcGVjdFwiKSA/IG9wdHMuY3VzdG9tSW5zcGVjdCA6IHRydWU7XG4gICAgICBpZiAodHlwZW9mIGN1c3RvbUluc3BlY3QgIT09IFwiYm9vbGVhblwiICYmIGN1c3RvbUluc3BlY3QgIT09IFwic3ltYm9sXCIpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcIm9wdGlvbiBcXFwiY3VzdG9tSW5zcGVjdFxcXCIsIGlmIHByb3ZpZGVkLCBtdXN0IGJlIGB0cnVlYCwgYGZhbHNlYCwgb3IgYCdzeW1ib2wnYFwiKTtcbiAgICAgIH1cbiAgICAgIGlmIChoYXMob3B0cywgXCJpbmRlbnRcIikgJiYgb3B0cy5pbmRlbnQgIT09IG51bGwgJiYgb3B0cy5pbmRlbnQgIT09IFwiXHRcIiAmJiAhKHBhcnNlSW50KG9wdHMuaW5kZW50LCAxMCkgPT09IG9wdHMuaW5kZW50ICYmIG9wdHMuaW5kZW50ID4gMCkpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignb3B0aW9uIFwiaW5kZW50XCIgbXVzdCBiZSBcIlxcXFx0XCIsIGFuIGludGVnZXIgPiAwLCBvciBgbnVsbGAnKTtcbiAgICAgIH1cbiAgICAgIGlmIChoYXMob3B0cywgXCJudW1lcmljU2VwYXJhdG9yXCIpICYmIHR5cGVvZiBvcHRzLm51bWVyaWNTZXBhcmF0b3IgIT09IFwiYm9vbGVhblwiKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ29wdGlvbiBcIm51bWVyaWNTZXBhcmF0b3JcIiwgaWYgcHJvdmlkZWQsIG11c3QgYmUgYHRydWVgIG9yIGBmYWxzZWAnKTtcbiAgICAgIH1cbiAgICAgIHZhciBudW1lcmljU2VwYXJhdG9yID0gb3B0cy5udW1lcmljU2VwYXJhdG9yO1xuICAgICAgaWYgKHR5cGVvZiBvYmogPT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgICAgcmV0dXJuIFwidW5kZWZpbmVkXCI7XG4gICAgICB9XG4gICAgICBpZiAob2JqID09PSBudWxsKSB7XG4gICAgICAgIHJldHVybiBcIm51bGxcIjtcbiAgICAgIH1cbiAgICAgIGlmICh0eXBlb2Ygb2JqID09PSBcImJvb2xlYW5cIikge1xuICAgICAgICByZXR1cm4gb2JqID8gXCJ0cnVlXCIgOiBcImZhbHNlXCI7XG4gICAgICB9XG4gICAgICBpZiAodHlwZW9mIG9iaiA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICByZXR1cm4gaW5zcGVjdFN0cmluZyhvYmosIG9wdHMpO1xuICAgICAgfVxuICAgICAgaWYgKHR5cGVvZiBvYmogPT09IFwibnVtYmVyXCIpIHtcbiAgICAgICAgaWYgKG9iaiA9PT0gMCkge1xuICAgICAgICAgIHJldHVybiBJbmZpbml0eSAvIG9iaiA+IDAgPyBcIjBcIiA6IFwiLTBcIjtcbiAgICAgICAgfVxuICAgICAgICB2YXIgc3RyID0gU3RyaW5nKG9iaik7XG4gICAgICAgIHJldHVybiBudW1lcmljU2VwYXJhdG9yID8gYWRkTnVtZXJpY1NlcGFyYXRvcihvYmosIHN0cikgOiBzdHI7XG4gICAgICB9XG4gICAgICBpZiAodHlwZW9mIG9iaiA9PT0gXCJiaWdpbnRcIikge1xuICAgICAgICB2YXIgYmlnSW50U3RyID0gU3RyaW5nKG9iaikgKyBcIm5cIjtcbiAgICAgICAgcmV0dXJuIG51bWVyaWNTZXBhcmF0b3IgPyBhZGROdW1lcmljU2VwYXJhdG9yKG9iaiwgYmlnSW50U3RyKSA6IGJpZ0ludFN0cjtcbiAgICAgIH1cbiAgICAgIHZhciBtYXhEZXB0aCA9IHR5cGVvZiBvcHRzLmRlcHRoID09PSBcInVuZGVmaW5lZFwiID8gNSA6IG9wdHMuZGVwdGg7XG4gICAgICBpZiAodHlwZW9mIGRlcHRoID09PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgICAgIGRlcHRoID0gMDtcbiAgICAgIH1cbiAgICAgIGlmIChkZXB0aCA+PSBtYXhEZXB0aCAmJiBtYXhEZXB0aCA+IDAgJiYgdHlwZW9mIG9iaiA9PT0gXCJvYmplY3RcIikge1xuICAgICAgICByZXR1cm4gaXNBcnJheShvYmopID8gXCJbQXJyYXldXCIgOiBcIltPYmplY3RdXCI7XG4gICAgICB9XG4gICAgICB2YXIgaW5kZW50ID0gZ2V0SW5kZW50KG9wdHMsIGRlcHRoKTtcbiAgICAgIGlmICh0eXBlb2Ygc2VlbiA9PT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgICBzZWVuID0gW107XG4gICAgICB9IGVsc2UgaWYgKGluZGV4T2Yoc2Vlbiwgb2JqKSA+PSAwKSB7XG4gICAgICAgIHJldHVybiBcIltDaXJjdWxhcl1cIjtcbiAgICAgIH1cbiAgICAgIGZ1bmN0aW9uIGluc3BlY3QodmFsdWUsIGZyb20sIG5vSW5kZW50KSB7XG4gICAgICAgIGlmIChmcm9tKSB7XG4gICAgICAgICAgc2VlbiA9ICRhcnJTbGljZS5jYWxsKHNlZW4pO1xuICAgICAgICAgIHNlZW4ucHVzaChmcm9tKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAobm9JbmRlbnQpIHtcbiAgICAgICAgICB2YXIgbmV3T3B0cyA9IHtcbiAgICAgICAgICAgIGRlcHRoOiBvcHRzLmRlcHRoXG4gICAgICAgICAgfTtcbiAgICAgICAgICBpZiAoaGFzKG9wdHMsIFwicXVvdGVTdHlsZVwiKSkge1xuICAgICAgICAgICAgbmV3T3B0cy5xdW90ZVN0eWxlID0gb3B0cy5xdW90ZVN0eWxlO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gaW5zcGVjdF8odmFsdWUsIG5ld09wdHMsIGRlcHRoICsgMSwgc2Vlbik7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGluc3BlY3RfKHZhbHVlLCBvcHRzLCBkZXB0aCArIDEsIHNlZW4pO1xuICAgICAgfVxuICAgICAgaWYgKHR5cGVvZiBvYmogPT09IFwiZnVuY3Rpb25cIiAmJiAhaXNSZWdFeHAob2JqKSkge1xuICAgICAgICB2YXIgbmFtZSA9IG5hbWVPZihvYmopO1xuICAgICAgICB2YXIga2V5cyA9IGFyck9iaktleXMob2JqLCBpbnNwZWN0KTtcbiAgICAgICAgcmV0dXJuIFwiW0Z1bmN0aW9uXCIgKyAobmFtZSA/IFwiOiBcIiArIG5hbWUgOiBcIiAoYW5vbnltb3VzKVwiKSArIFwiXVwiICsgKGtleXMubGVuZ3RoID4gMCA/IFwiIHsgXCIgKyAkam9pbi5jYWxsKGtleXMsIFwiLCBcIikgKyBcIiB9XCIgOiBcIlwiKTtcbiAgICAgIH1cbiAgICAgIGlmIChpc1N5bWJvbChvYmopKSB7XG4gICAgICAgIHZhciBzeW1TdHJpbmcgPSBoYXNTaGFtbWVkU3ltYm9scyA/ICRyZXBsYWNlLmNhbGwoU3RyaW5nKG9iaiksIC9eKFN5bWJvbFxcKC4qXFwpKV9bXildKiQvLCBcIiQxXCIpIDogc3ltVG9TdHJpbmcuY2FsbChvYmopO1xuICAgICAgICByZXR1cm4gdHlwZW9mIG9iaiA9PT0gXCJvYmplY3RcIiAmJiAhaGFzU2hhbW1lZFN5bWJvbHMgPyBtYXJrQm94ZWQoc3ltU3RyaW5nKSA6IHN5bVN0cmluZztcbiAgICAgIH1cbiAgICAgIGlmIChpc0VsZW1lbnQob2JqKSkge1xuICAgICAgICB2YXIgcyA9IFwiPFwiICsgJHRvTG93ZXJDYXNlLmNhbGwoU3RyaW5nKG9iai5ub2RlTmFtZSkpO1xuICAgICAgICB2YXIgYXR0cnMgPSBvYmouYXR0cmlidXRlcyB8fCBbXTtcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhdHRycy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgIHMgKz0gXCIgXCIgKyBhdHRyc1tpXS5uYW1lICsgXCI9XCIgKyB3cmFwUXVvdGVzKHF1b3RlKGF0dHJzW2ldLnZhbHVlKSwgXCJkb3VibGVcIiwgb3B0cyk7XG4gICAgICAgIH1cbiAgICAgICAgcyArPSBcIj5cIjtcbiAgICAgICAgaWYgKG9iai5jaGlsZE5vZGVzICYmIG9iai5jaGlsZE5vZGVzLmxlbmd0aCkge1xuICAgICAgICAgIHMgKz0gXCIuLi5cIjtcbiAgICAgICAgfVxuICAgICAgICBzICs9IFwiPC9cIiArICR0b0xvd2VyQ2FzZS5jYWxsKFN0cmluZyhvYmoubm9kZU5hbWUpKSArIFwiPlwiO1xuICAgICAgICByZXR1cm4gcztcbiAgICAgIH1cbiAgICAgIGlmIChpc0FycmF5KG9iaikpIHtcbiAgICAgICAgaWYgKG9iai5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICByZXR1cm4gXCJbXVwiO1xuICAgICAgICB9XG4gICAgICAgIHZhciB4cyA9IGFyck9iaktleXMob2JqLCBpbnNwZWN0KTtcbiAgICAgICAgaWYgKGluZGVudCAmJiAhc2luZ2xlTGluZVZhbHVlcyh4cykpIHtcbiAgICAgICAgICByZXR1cm4gXCJbXCIgKyBpbmRlbnRlZEpvaW4oeHMsIGluZGVudCkgKyBcIl1cIjtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gXCJbIFwiICsgJGpvaW4uY2FsbCh4cywgXCIsIFwiKSArIFwiIF1cIjtcbiAgICAgIH1cbiAgICAgIGlmIChpc0Vycm9yKG9iaikpIHtcbiAgICAgICAgdmFyIHBhcnRzID0gYXJyT2JqS2V5cyhvYmosIGluc3BlY3QpO1xuICAgICAgICBpZiAoIShcImNhdXNlXCIgaW4gRXJyb3IucHJvdG90eXBlKSAmJiBcImNhdXNlXCIgaW4gb2JqICYmICFpc0VudW1lcmFibGUuY2FsbChvYmosIFwiY2F1c2VcIikpIHtcbiAgICAgICAgICByZXR1cm4gXCJ7IFtcIiArIFN0cmluZyhvYmopICsgXCJdIFwiICsgJGpvaW4uY2FsbCgkY29uY2F0LmNhbGwoXCJbY2F1c2VdOiBcIiArIGluc3BlY3Qob2JqLmNhdXNlKSwgcGFydHMpLCBcIiwgXCIpICsgXCIgfVwiO1xuICAgICAgICB9XG4gICAgICAgIGlmIChwYXJ0cy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICByZXR1cm4gXCJbXCIgKyBTdHJpbmcob2JqKSArIFwiXVwiO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBcInsgW1wiICsgU3RyaW5nKG9iaikgKyBcIl0gXCIgKyAkam9pbi5jYWxsKHBhcnRzLCBcIiwgXCIpICsgXCIgfVwiO1xuICAgICAgfVxuICAgICAgaWYgKHR5cGVvZiBvYmogPT09IFwib2JqZWN0XCIgJiYgY3VzdG9tSW5zcGVjdCkge1xuICAgICAgICBpZiAoaW5zcGVjdFN5bWJvbCAmJiB0eXBlb2Ygb2JqW2luc3BlY3RTeW1ib2xdID09PSBcImZ1bmN0aW9uXCIgJiYgdXRpbEluc3BlY3QpIHtcbiAgICAgICAgICByZXR1cm4gdXRpbEluc3BlY3Qob2JqLCB7IGRlcHRoOiBtYXhEZXB0aCAtIGRlcHRoIH0pO1xuICAgICAgICB9IGVsc2UgaWYgKGN1c3RvbUluc3BlY3QgIT09IFwic3ltYm9sXCIgJiYgdHlwZW9mIG9iai5pbnNwZWN0ID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgICByZXR1cm4gb2JqLmluc3BlY3QoKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKGlzTWFwKG9iaikpIHtcbiAgICAgICAgdmFyIG1hcFBhcnRzID0gW107XG4gICAgICAgIGlmIChtYXBGb3JFYWNoKSB7XG4gICAgICAgICAgbWFwRm9yRWFjaC5jYWxsKG9iaiwgZnVuY3Rpb24odmFsdWUsIGtleSkge1xuICAgICAgICAgICAgbWFwUGFydHMucHVzaChpbnNwZWN0KGtleSwgb2JqLCB0cnVlKSArIFwiID0+IFwiICsgaW5zcGVjdCh2YWx1ZSwgb2JqKSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGNvbGxlY3Rpb25PZihcIk1hcFwiLCBtYXBTaXplLmNhbGwob2JqKSwgbWFwUGFydHMsIGluZGVudCk7XG4gICAgICB9XG4gICAgICBpZiAoaXNTZXQob2JqKSkge1xuICAgICAgICB2YXIgc2V0UGFydHMgPSBbXTtcbiAgICAgICAgaWYgKHNldEZvckVhY2gpIHtcbiAgICAgICAgICBzZXRGb3JFYWNoLmNhbGwob2JqLCBmdW5jdGlvbih2YWx1ZSkge1xuICAgICAgICAgICAgc2V0UGFydHMucHVzaChpbnNwZWN0KHZhbHVlLCBvYmopKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gY29sbGVjdGlvbk9mKFwiU2V0XCIsIHNldFNpemUuY2FsbChvYmopLCBzZXRQYXJ0cywgaW5kZW50KTtcbiAgICAgIH1cbiAgICAgIGlmIChpc1dlYWtNYXAob2JqKSkge1xuICAgICAgICByZXR1cm4gd2Vha0NvbGxlY3Rpb25PZihcIldlYWtNYXBcIik7XG4gICAgICB9XG4gICAgICBpZiAoaXNXZWFrU2V0KG9iaikpIHtcbiAgICAgICAgcmV0dXJuIHdlYWtDb2xsZWN0aW9uT2YoXCJXZWFrU2V0XCIpO1xuICAgICAgfVxuICAgICAgaWYgKGlzV2Vha1JlZihvYmopKSB7XG4gICAgICAgIHJldHVybiB3ZWFrQ29sbGVjdGlvbk9mKFwiV2Vha1JlZlwiKTtcbiAgICAgIH1cbiAgICAgIGlmIChpc051bWJlcihvYmopKSB7XG4gICAgICAgIHJldHVybiBtYXJrQm94ZWQoaW5zcGVjdChOdW1iZXIob2JqKSkpO1xuICAgICAgfVxuICAgICAgaWYgKGlzQmlnSW50KG9iaikpIHtcbiAgICAgICAgcmV0dXJuIG1hcmtCb3hlZChpbnNwZWN0KGJpZ0ludFZhbHVlT2YuY2FsbChvYmopKSk7XG4gICAgICB9XG4gICAgICBpZiAoaXNCb29sZWFuKG9iaikpIHtcbiAgICAgICAgcmV0dXJuIG1hcmtCb3hlZChib29sZWFuVmFsdWVPZi5jYWxsKG9iaikpO1xuICAgICAgfVxuICAgICAgaWYgKGlzU3RyaW5nKG9iaikpIHtcbiAgICAgICAgcmV0dXJuIG1hcmtCb3hlZChpbnNwZWN0KFN0cmluZyhvYmopKSk7XG4gICAgICB9XG4gICAgICBpZiAodHlwZW9mIHdpbmRvdyAhPT0gXCJ1bmRlZmluZWRcIiAmJiBvYmogPT09IHdpbmRvdykge1xuICAgICAgICByZXR1cm4gXCJ7IFtvYmplY3QgV2luZG93XSB9XCI7XG4gICAgICB9XG4gICAgICBpZiAodHlwZW9mIGdsb2JhbFRoaXMgIT09IFwidW5kZWZpbmVkXCIgJiYgb2JqID09PSBnbG9iYWxUaGlzIHx8IHR5cGVvZiBnbG9iYWwgIT09IFwidW5kZWZpbmVkXCIgJiYgb2JqID09PSBnbG9iYWwpIHtcbiAgICAgICAgcmV0dXJuIFwieyBbb2JqZWN0IGdsb2JhbFRoaXNdIH1cIjtcbiAgICAgIH1cbiAgICAgIGlmICghaXNEYXRlKG9iaikgJiYgIWlzUmVnRXhwKG9iaikpIHtcbiAgICAgICAgdmFyIHlzID0gYXJyT2JqS2V5cyhvYmosIGluc3BlY3QpO1xuICAgICAgICB2YXIgaXNQbGFpbk9iamVjdCA9IGdQTyA/IGdQTyhvYmopID09PSBPYmplY3QucHJvdG90eXBlIDogb2JqIGluc3RhbmNlb2YgT2JqZWN0IHx8IG9iai5jb25zdHJ1Y3RvciA9PT0gT2JqZWN0O1xuICAgICAgICB2YXIgcHJvdG9UYWcgPSBvYmogaW5zdGFuY2VvZiBPYmplY3QgPyBcIlwiIDogXCJudWxsIHByb3RvdHlwZVwiO1xuICAgICAgICB2YXIgc3RyaW5nVGFnID0gIWlzUGxhaW5PYmplY3QgJiYgdG9TdHJpbmdUYWcgJiYgT2JqZWN0KG9iaikgPT09IG9iaiAmJiB0b1N0cmluZ1RhZyBpbiBvYmogPyAkc2xpY2UuY2FsbCh0b1N0cihvYmopLCA4LCAtMSkgOiBwcm90b1RhZyA/IFwiT2JqZWN0XCIgOiBcIlwiO1xuICAgICAgICB2YXIgY29uc3RydWN0b3JUYWcgPSBpc1BsYWluT2JqZWN0IHx8IHR5cGVvZiBvYmouY29uc3RydWN0b3IgIT09IFwiZnVuY3Rpb25cIiA/IFwiXCIgOiBvYmouY29uc3RydWN0b3IubmFtZSA/IG9iai5jb25zdHJ1Y3Rvci5uYW1lICsgXCIgXCIgOiBcIlwiO1xuICAgICAgICB2YXIgdGFnID0gY29uc3RydWN0b3JUYWcgKyAoc3RyaW5nVGFnIHx8IHByb3RvVGFnID8gXCJbXCIgKyAkam9pbi5jYWxsKCRjb25jYXQuY2FsbChbXSwgc3RyaW5nVGFnIHx8IFtdLCBwcm90b1RhZyB8fCBbXSksIFwiOiBcIikgKyBcIl0gXCIgOiBcIlwiKTtcbiAgICAgICAgaWYgKHlzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgIHJldHVybiB0YWcgKyBcInt9XCI7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGluZGVudCkge1xuICAgICAgICAgIHJldHVybiB0YWcgKyBcIntcIiArIGluZGVudGVkSm9pbih5cywgaW5kZW50KSArIFwifVwiO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0YWcgKyBcInsgXCIgKyAkam9pbi5jYWxsKHlzLCBcIiwgXCIpICsgXCIgfVwiO1xuICAgICAgfVxuICAgICAgcmV0dXJuIFN0cmluZyhvYmopO1xuICAgIH07XG4gICAgZnVuY3Rpb24gd3JhcFF1b3RlcyhzLCBkZWZhdWx0U3R5bGUsIG9wdHMpIHtcbiAgICAgIHZhciBzdHlsZSA9IG9wdHMucXVvdGVTdHlsZSB8fCBkZWZhdWx0U3R5bGU7XG4gICAgICB2YXIgcXVvdGVDaGFyID0gcXVvdGVzW3N0eWxlXTtcbiAgICAgIHJldHVybiBxdW90ZUNoYXIgKyBzICsgcXVvdGVDaGFyO1xuICAgIH1cbiAgICBmdW5jdGlvbiBxdW90ZShzKSB7XG4gICAgICByZXR1cm4gJHJlcGxhY2UuY2FsbChTdHJpbmcocyksIC9cIi9nLCBcIiZxdW90O1wiKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gY2FuVHJ1c3RUb1N0cmluZyhvYmopIHtcbiAgICAgIHJldHVybiAhdG9TdHJpbmdUYWcgfHwgISh0eXBlb2Ygb2JqID09PSBcIm9iamVjdFwiICYmICh0b1N0cmluZ1RhZyBpbiBvYmogfHwgdHlwZW9mIG9ialt0b1N0cmluZ1RhZ10gIT09IFwidW5kZWZpbmVkXCIpKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gaXNBcnJheShvYmopIHtcbiAgICAgIHJldHVybiB0b1N0cihvYmopID09PSBcIltvYmplY3QgQXJyYXldXCIgJiYgY2FuVHJ1c3RUb1N0cmluZyhvYmopO1xuICAgIH1cbiAgICBmdW5jdGlvbiBpc0RhdGUob2JqKSB7XG4gICAgICByZXR1cm4gdG9TdHIob2JqKSA9PT0gXCJbb2JqZWN0IERhdGVdXCIgJiYgY2FuVHJ1c3RUb1N0cmluZyhvYmopO1xuICAgIH1cbiAgICBmdW5jdGlvbiBpc1JlZ0V4cChvYmopIHtcbiAgICAgIHJldHVybiB0b1N0cihvYmopID09PSBcIltvYmplY3QgUmVnRXhwXVwiICYmIGNhblRydXN0VG9TdHJpbmcob2JqKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gaXNFcnJvcihvYmopIHtcbiAgICAgIHJldHVybiB0b1N0cihvYmopID09PSBcIltvYmplY3QgRXJyb3JdXCIgJiYgY2FuVHJ1c3RUb1N0cmluZyhvYmopO1xuICAgIH1cbiAgICBmdW5jdGlvbiBpc1N0cmluZyhvYmopIHtcbiAgICAgIHJldHVybiB0b1N0cihvYmopID09PSBcIltvYmplY3QgU3RyaW5nXVwiICYmIGNhblRydXN0VG9TdHJpbmcob2JqKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gaXNOdW1iZXIob2JqKSB7XG4gICAgICByZXR1cm4gdG9TdHIob2JqKSA9PT0gXCJbb2JqZWN0IE51bWJlcl1cIiAmJiBjYW5UcnVzdFRvU3RyaW5nKG9iaik7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGlzQm9vbGVhbihvYmopIHtcbiAgICAgIHJldHVybiB0b1N0cihvYmopID09PSBcIltvYmplY3QgQm9vbGVhbl1cIiAmJiBjYW5UcnVzdFRvU3RyaW5nKG9iaik7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGlzU3ltYm9sKG9iaikge1xuICAgICAgaWYgKGhhc1NoYW1tZWRTeW1ib2xzKSB7XG4gICAgICAgIHJldHVybiBvYmogJiYgdHlwZW9mIG9iaiA9PT0gXCJvYmplY3RcIiAmJiBvYmogaW5zdGFuY2VvZiBTeW1ib2w7XG4gICAgICB9XG4gICAgICBpZiAodHlwZW9mIG9iaiA9PT0gXCJzeW1ib2xcIikge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIGlmICghb2JqIHx8IHR5cGVvZiBvYmogIT09IFwib2JqZWN0XCIgfHwgIXN5bVRvU3RyaW5nKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIHRyeSB7XG4gICAgICAgIHN5bVRvU3RyaW5nLmNhbGwob2JqKTtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICB9XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGlzQmlnSW50KG9iaikge1xuICAgICAgaWYgKCFvYmogfHwgdHlwZW9mIG9iaiAhPT0gXCJvYmplY3RcIiB8fCAhYmlnSW50VmFsdWVPZikge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgICB0cnkge1xuICAgICAgICBiaWdJbnRWYWx1ZU9mLmNhbGwob2JqKTtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICB9XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHZhciBoYXNPd24gPSBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5IHx8IGZ1bmN0aW9uKGtleSkge1xuICAgICAgcmV0dXJuIGtleSBpbiB0aGlzO1xuICAgIH07XG4gICAgZnVuY3Rpb24gaGFzKG9iaiwga2V5KSB7XG4gICAgICByZXR1cm4gaGFzT3duLmNhbGwob2JqLCBrZXkpO1xuICAgIH1cbiAgICBmdW5jdGlvbiB0b1N0cihvYmopIHtcbiAgICAgIHJldHVybiBvYmplY3RUb1N0cmluZy5jYWxsKG9iaik7XG4gICAgfVxuICAgIGZ1bmN0aW9uIG5hbWVPZihmKSB7XG4gICAgICBpZiAoZi5uYW1lKSB7XG4gICAgICAgIHJldHVybiBmLm5hbWU7XG4gICAgICB9XG4gICAgICB2YXIgbSA9ICRtYXRjaC5jYWxsKGZ1bmN0aW9uVG9TdHJpbmcuY2FsbChmKSwgL15mdW5jdGlvblxccyooW1xcdyRdKykvKTtcbiAgICAgIGlmIChtKSB7XG4gICAgICAgIHJldHVybiBtWzFdO1xuICAgICAgfVxuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGluZGV4T2YoeHMsIHgpIHtcbiAgICAgIGlmICh4cy5pbmRleE9mKSB7XG4gICAgICAgIHJldHVybiB4cy5pbmRleE9mKHgpO1xuICAgICAgfVxuICAgICAgZm9yICh2YXIgaSA9IDAsIGwgPSB4cy5sZW5ndGg7IGkgPCBsOyBpKyspIHtcbiAgICAgICAgaWYgKHhzW2ldID09PSB4KSB7XG4gICAgICAgICAgcmV0dXJuIGk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiAtMTtcbiAgICB9XG4gICAgZnVuY3Rpb24gaXNNYXAoeCkge1xuICAgICAgaWYgKCFtYXBTaXplIHx8ICF4IHx8IHR5cGVvZiB4ICE9PSBcIm9iamVjdFwiKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIHRyeSB7XG4gICAgICAgIG1hcFNpemUuY2FsbCh4KTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBzZXRTaXplLmNhbGwoeCk7XG4gICAgICAgIH0gY2F0Y2ggKHMpIHtcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4geCBpbnN0YW5jZW9mIE1hcDtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIH1cbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgZnVuY3Rpb24gaXNXZWFrTWFwKHgpIHtcbiAgICAgIGlmICghd2Vha01hcEhhcyB8fCAheCB8fCB0eXBlb2YgeCAhPT0gXCJvYmplY3RcIikge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgICB0cnkge1xuICAgICAgICB3ZWFrTWFwSGFzLmNhbGwoeCwgd2Vha01hcEhhcyk7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgd2Vha1NldEhhcy5jYWxsKHgsIHdlYWtTZXRIYXMpO1xuICAgICAgICB9IGNhdGNoIChzKSB7XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHggaW5zdGFuY2VvZiBXZWFrTWFwO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgfVxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBmdW5jdGlvbiBpc1dlYWtSZWYoeCkge1xuICAgICAgaWYgKCF3ZWFrUmVmRGVyZWYgfHwgIXggfHwgdHlwZW9mIHggIT09IFwib2JqZWN0XCIpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgdHJ5IHtcbiAgICAgICAgd2Vha1JlZkRlcmVmLmNhbGwoeCk7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgfVxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBmdW5jdGlvbiBpc1NldCh4KSB7XG4gICAgICBpZiAoIXNldFNpemUgfHwgIXggfHwgdHlwZW9mIHggIT09IFwib2JqZWN0XCIpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgdHJ5IHtcbiAgICAgICAgc2V0U2l6ZS5jYWxsKHgpO1xuICAgICAgICB0cnkge1xuICAgICAgICAgIG1hcFNpemUuY2FsbCh4KTtcbiAgICAgICAgfSBjYXRjaCAobSkge1xuICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB4IGluc3RhbmNlb2YgU2V0O1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgfVxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBmdW5jdGlvbiBpc1dlYWtTZXQoeCkge1xuICAgICAgaWYgKCF3ZWFrU2V0SGFzIHx8ICF4IHx8IHR5cGVvZiB4ICE9PSBcIm9iamVjdFwiKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIHRyeSB7XG4gICAgICAgIHdlYWtTZXRIYXMuY2FsbCh4LCB3ZWFrU2V0SGFzKTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICB3ZWFrTWFwSGFzLmNhbGwoeCwgd2Vha01hcEhhcyk7XG4gICAgICAgIH0gY2F0Y2ggKHMpIHtcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4geCBpbnN0YW5jZW9mIFdlYWtTZXQ7XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICB9XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGlzRWxlbWVudCh4KSB7XG4gICAgICBpZiAoIXggfHwgdHlwZW9mIHggIT09IFwib2JqZWN0XCIpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgaWYgKHR5cGVvZiBIVE1MRWxlbWVudCAhPT0gXCJ1bmRlZmluZWRcIiAmJiB4IGluc3RhbmNlb2YgSFRNTEVsZW1lbnQpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgICByZXR1cm4gdHlwZW9mIHgubm9kZU5hbWUgPT09IFwic3RyaW5nXCIgJiYgdHlwZW9mIHguZ2V0QXR0cmlidXRlID09PSBcImZ1bmN0aW9uXCI7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGluc3BlY3RTdHJpbmcoc3RyLCBvcHRzKSB7XG4gICAgICBpZiAoc3RyLmxlbmd0aCA+IG9wdHMubWF4U3RyaW5nTGVuZ3RoKSB7XG4gICAgICAgIHZhciByZW1haW5pbmcgPSBzdHIubGVuZ3RoIC0gb3B0cy5tYXhTdHJpbmdMZW5ndGg7XG4gICAgICAgIHZhciB0cmFpbGVyID0gXCIuLi4gXCIgKyByZW1haW5pbmcgKyBcIiBtb3JlIGNoYXJhY3RlclwiICsgKHJlbWFpbmluZyA+IDEgPyBcInNcIiA6IFwiXCIpO1xuICAgICAgICByZXR1cm4gaW5zcGVjdFN0cmluZygkc2xpY2UuY2FsbChzdHIsIDAsIG9wdHMubWF4U3RyaW5nTGVuZ3RoKSwgb3B0cykgKyB0cmFpbGVyO1xuICAgICAgfVxuICAgICAgdmFyIHF1b3RlUkUgPSBxdW90ZVJFc1tvcHRzLnF1b3RlU3R5bGUgfHwgXCJzaW5nbGVcIl07XG4gICAgICBxdW90ZVJFLmxhc3RJbmRleCA9IDA7XG4gICAgICB2YXIgcyA9ICRyZXBsYWNlLmNhbGwoJHJlcGxhY2UuY2FsbChzdHIsIHF1b3RlUkUsIFwiXFxcXCQxXCIpLCAvW1xceDAwLVxceDFmXS9nLCBsb3dieXRlKTtcbiAgICAgIHJldHVybiB3cmFwUXVvdGVzKHMsIFwic2luZ2xlXCIsIG9wdHMpO1xuICAgIH1cbiAgICBmdW5jdGlvbiBsb3dieXRlKGMpIHtcbiAgICAgIHZhciBuID0gYy5jaGFyQ29kZUF0KDApO1xuICAgICAgdmFyIHggPSB7XG4gICAgICAgIDg6IFwiYlwiLFxuICAgICAgICA5OiBcInRcIixcbiAgICAgICAgMTA6IFwiblwiLFxuICAgICAgICAxMjogXCJmXCIsXG4gICAgICAgIDEzOiBcInJcIlxuICAgICAgfVtuXTtcbiAgICAgIGlmICh4KSB7XG4gICAgICAgIHJldHVybiBcIlxcXFxcIiArIHg7XG4gICAgICB9XG4gICAgICByZXR1cm4gXCJcXFxceFwiICsgKG4gPCAxNiA/IFwiMFwiIDogXCJcIikgKyAkdG9VcHBlckNhc2UuY2FsbChuLnRvU3RyaW5nKDE2KSk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIG1hcmtCb3hlZChzdHIpIHtcbiAgICAgIHJldHVybiBcIk9iamVjdChcIiArIHN0ciArIFwiKVwiO1xuICAgIH1cbiAgICBmdW5jdGlvbiB3ZWFrQ29sbGVjdGlvbk9mKHR5cGUpIHtcbiAgICAgIHJldHVybiB0eXBlICsgXCIgeyA/IH1cIjtcbiAgICB9XG4gICAgZnVuY3Rpb24gY29sbGVjdGlvbk9mKHR5cGUsIHNpemUsIGVudHJpZXMsIGluZGVudCkge1xuICAgICAgdmFyIGpvaW5lZEVudHJpZXMgPSBpbmRlbnQgPyBpbmRlbnRlZEpvaW4oZW50cmllcywgaW5kZW50KSA6ICRqb2luLmNhbGwoZW50cmllcywgXCIsIFwiKTtcbiAgICAgIHJldHVybiB0eXBlICsgXCIgKFwiICsgc2l6ZSArIFwiKSB7XCIgKyBqb2luZWRFbnRyaWVzICsgXCJ9XCI7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHNpbmdsZUxpbmVWYWx1ZXMoeHMpIHtcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgeHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgaWYgKGluZGV4T2YoeHNbaV0sIFwiXFxuXCIpID49IDApIHtcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBmdW5jdGlvbiBnZXRJbmRlbnQob3B0cywgZGVwdGgpIHtcbiAgICAgIHZhciBiYXNlSW5kZW50O1xuICAgICAgaWYgKG9wdHMuaW5kZW50ID09PSBcIlx0XCIpIHtcbiAgICAgICAgYmFzZUluZGVudCA9IFwiXHRcIjtcbiAgICAgIH0gZWxzZSBpZiAodHlwZW9mIG9wdHMuaW5kZW50ID09PSBcIm51bWJlclwiICYmIG9wdHMuaW5kZW50ID4gMCkge1xuICAgICAgICBiYXNlSW5kZW50ID0gJGpvaW4uY2FsbChBcnJheShvcHRzLmluZGVudCArIDEpLCBcIiBcIik7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cbiAgICAgIHJldHVybiB7XG4gICAgICAgIGJhc2U6IGJhc2VJbmRlbnQsXG4gICAgICAgIHByZXY6ICRqb2luLmNhbGwoQXJyYXkoZGVwdGggKyAxKSwgYmFzZUluZGVudClcbiAgICAgIH07XG4gICAgfVxuICAgIGZ1bmN0aW9uIGluZGVudGVkSm9pbih4cywgaW5kZW50KSB7XG4gICAgICBpZiAoeHMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHJldHVybiBcIlwiO1xuICAgICAgfVxuICAgICAgdmFyIGxpbmVKb2luZXIgPSBcIlxcblwiICsgaW5kZW50LnByZXYgKyBpbmRlbnQuYmFzZTtcbiAgICAgIHJldHVybiBsaW5lSm9pbmVyICsgJGpvaW4uY2FsbCh4cywgXCIsXCIgKyBsaW5lSm9pbmVyKSArIFwiXFxuXCIgKyBpbmRlbnQucHJldjtcbiAgICB9XG4gICAgZnVuY3Rpb24gYXJyT2JqS2V5cyhvYmosIGluc3BlY3QpIHtcbiAgICAgIHZhciBpc0FyciA9IGlzQXJyYXkob2JqKTtcbiAgICAgIHZhciB4cyA9IFtdO1xuICAgICAgaWYgKGlzQXJyKSB7XG4gICAgICAgIHhzLmxlbmd0aCA9IG9iai5sZW5ndGg7XG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgb2JqLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgeHNbaV0gPSBoYXMob2JqLCBpKSA/IGluc3BlY3Qob2JqW2ldLCBvYmopIDogXCJcIjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgdmFyIHN5bXMgPSB0eXBlb2YgZ09QUyA9PT0gXCJmdW5jdGlvblwiID8gZ09QUyhvYmopIDogW107XG4gICAgICB2YXIgc3ltTWFwO1xuICAgICAgaWYgKGhhc1NoYW1tZWRTeW1ib2xzKSB7XG4gICAgICAgIHN5bU1hcCA9IHt9O1xuICAgICAgICBmb3IgKHZhciBrID0gMDsgayA8IHN5bXMubGVuZ3RoOyBrKyspIHtcbiAgICAgICAgICBzeW1NYXBbXCIkXCIgKyBzeW1zW2tdXSA9IHN5bXNba107XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGZvciAodmFyIGtleSBpbiBvYmopIHtcbiAgICAgICAgaWYgKCFoYXMob2JqLCBrZXkpKSB7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGlzQXJyICYmIFN0cmluZyhOdW1iZXIoa2V5KSkgPT09IGtleSAmJiBrZXkgPCBvYmoubGVuZ3RoKSB7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGhhc1NoYW1tZWRTeW1ib2xzICYmIHN5bU1hcFtcIiRcIiArIGtleV0gaW5zdGFuY2VvZiBTeW1ib2wpIHtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfSBlbHNlIGlmICgkdGVzdC5jYWxsKC9bXlxcdyRdLywga2V5KSkge1xuICAgICAgICAgIHhzLnB1c2goaW5zcGVjdChrZXksIG9iaikgKyBcIjogXCIgKyBpbnNwZWN0KG9ialtrZXldLCBvYmopKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB4cy5wdXNoKGtleSArIFwiOiBcIiArIGluc3BlY3Qob2JqW2tleV0sIG9iaikpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAodHlwZW9mIGdPUFMgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8IHN5bXMubGVuZ3RoOyBqKyspIHtcbiAgICAgICAgICBpZiAoaXNFbnVtZXJhYmxlLmNhbGwob2JqLCBzeW1zW2pdKSkge1xuICAgICAgICAgICAgeHMucHVzaChcIltcIiArIGluc3BlY3Qoc3ltc1tqXSkgKyBcIl06IFwiICsgaW5zcGVjdChvYmpbc3ltc1tqXV0sIG9iaikpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIHhzO1xuICAgIH1cbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9zaWRlLWNoYW5uZWwtbGlzdC9pbmRleC5qc1xudmFyIHJlcXVpcmVfc2lkZV9jaGFubmVsX2xpc3QgPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvc2lkZS1jaGFubmVsLWxpc3QvaW5kZXguanNcIihleHBvcnRzMiwgbW9kdWxlMikge1xuICAgIFwidXNlIHN0cmljdFwiO1xuICAgIHZhciBpbnNwZWN0ID0gcmVxdWlyZV9vYmplY3RfaW5zcGVjdCgpO1xuICAgIHZhciAkVHlwZUVycm9yID0gcmVxdWlyZV90eXBlKCk7XG4gICAgdmFyIGxpc3RHZXROb2RlID0gZnVuY3Rpb24obGlzdCwga2V5LCBpc0RlbGV0ZSkge1xuICAgICAgdmFyIHByZXYgPSBsaXN0O1xuICAgICAgdmFyIGN1cnI7XG4gICAgICBmb3IgKDsgKGN1cnIgPSBwcmV2Lm5leHQpICE9IG51bGw7IHByZXYgPSBjdXJyKSB7XG4gICAgICAgIGlmIChjdXJyLmtleSA9PT0ga2V5KSB7XG4gICAgICAgICAgcHJldi5uZXh0ID0gY3Vyci5uZXh0O1xuICAgICAgICAgIGlmICghaXNEZWxldGUpIHtcbiAgICAgICAgICAgIGN1cnIubmV4dCA9IC8qKiBAdHlwZSB7Tm9uTnVsbGFibGU8dHlwZW9mIGxpc3QubmV4dD59ICovXG4gICAgICAgICAgICBsaXN0Lm5leHQ7XG4gICAgICAgICAgICBsaXN0Lm5leHQgPSBjdXJyO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gY3VycjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH07XG4gICAgdmFyIGxpc3RHZXQgPSBmdW5jdGlvbihvYmplY3RzLCBrZXkpIHtcbiAgICAgIGlmICghb2JqZWN0cykge1xuICAgICAgICByZXR1cm4gdm9pZCAwO1xuICAgICAgfVxuICAgICAgdmFyIG5vZGUgPSBsaXN0R2V0Tm9kZShvYmplY3RzLCBrZXkpO1xuICAgICAgcmV0dXJuIG5vZGUgJiYgbm9kZS52YWx1ZTtcbiAgICB9O1xuICAgIHZhciBsaXN0U2V0ID0gZnVuY3Rpb24ob2JqZWN0cywga2V5LCB2YWx1ZSkge1xuICAgICAgdmFyIG5vZGUgPSBsaXN0R2V0Tm9kZShvYmplY3RzLCBrZXkpO1xuICAgICAgaWYgKG5vZGUpIHtcbiAgICAgICAgbm9kZS52YWx1ZSA9IHZhbHVlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgb2JqZWN0cy5uZXh0ID0gLyoqIEB0eXBlIHtpbXBvcnQoJy4vbGlzdC5kLnRzJykuTGlzdE5vZGU8dHlwZW9mIHZhbHVlLCB0eXBlb2Yga2V5Pn0gKi9cbiAgICAgICAge1xuICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbm8tcGFyYW0tcmVhc3NpZ24sIG5vLWV4dHJhLXBhcmVuc1xuICAgICAgICAgIGtleSxcbiAgICAgICAgICBuZXh0OiBvYmplY3RzLm5leHQsXG4gICAgICAgICAgdmFsdWVcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICB9O1xuICAgIHZhciBsaXN0SGFzID0gZnVuY3Rpb24ob2JqZWN0cywga2V5KSB7XG4gICAgICBpZiAoIW9iamVjdHMpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgcmV0dXJuICEhbGlzdEdldE5vZGUob2JqZWN0cywga2V5KTtcbiAgICB9O1xuICAgIHZhciBsaXN0RGVsZXRlID0gZnVuY3Rpb24ob2JqZWN0cywga2V5KSB7XG4gICAgICBpZiAob2JqZWN0cykge1xuICAgICAgICByZXR1cm4gbGlzdEdldE5vZGUob2JqZWN0cywga2V5LCB0cnVlKTtcbiAgICAgIH1cbiAgICB9O1xuICAgIG1vZHVsZTIuZXhwb3J0cyA9IGZ1bmN0aW9uIGdldFNpZGVDaGFubmVsTGlzdCgpIHtcbiAgICAgIHZhciAkbztcbiAgICAgIHZhciBjaGFubmVsID0ge1xuICAgICAgICBhc3NlcnQ6IGZ1bmN0aW9uKGtleSkge1xuICAgICAgICAgIGlmICghY2hhbm5lbC5oYXMoa2V5KSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3ICRUeXBlRXJyb3IoXCJTaWRlIGNoYW5uZWwgZG9lcyBub3QgY29udGFpbiBcIiArIGluc3BlY3Qoa2V5KSk7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcImRlbGV0ZVwiOiBmdW5jdGlvbihrZXkpIHtcbiAgICAgICAgICB2YXIgcm9vdCA9ICRvICYmICRvLm5leHQ7XG4gICAgICAgICAgdmFyIGRlbGV0ZWROb2RlID0gbGlzdERlbGV0ZSgkbywga2V5KTtcbiAgICAgICAgICBpZiAoZGVsZXRlZE5vZGUgJiYgcm9vdCAmJiByb290ID09PSBkZWxldGVkTm9kZSkge1xuICAgICAgICAgICAgJG8gPSB2b2lkIDA7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiAhIWRlbGV0ZWROb2RlO1xuICAgICAgICB9LFxuICAgICAgICBnZXQ6IGZ1bmN0aW9uKGtleSkge1xuICAgICAgICAgIHJldHVybiBsaXN0R2V0KCRvLCBrZXkpO1xuICAgICAgICB9LFxuICAgICAgICBoYXM6IGZ1bmN0aW9uKGtleSkge1xuICAgICAgICAgIHJldHVybiBsaXN0SGFzKCRvLCBrZXkpO1xuICAgICAgICB9LFxuICAgICAgICBzZXQ6IGZ1bmN0aW9uKGtleSwgdmFsdWUpIHtcbiAgICAgICAgICBpZiAoISRvKSB7XG4gICAgICAgICAgICAkbyA9IHtcbiAgICAgICAgICAgICAgbmV4dDogdm9pZCAwXG4gICAgICAgICAgICB9O1xuICAgICAgICAgIH1cbiAgICAgICAgICBsaXN0U2V0KFxuICAgICAgICAgICAgLyoqIEB0eXBlIHtOb25OdWxsYWJsZTx0eXBlb2YgJG8+fSAqL1xuICAgICAgICAgICAgJG8sXG4gICAgICAgICAgICBrZXksXG4gICAgICAgICAgICB2YWx1ZVxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgICByZXR1cm4gY2hhbm5lbDtcbiAgICB9O1xuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL2VzLW9iamVjdC1hdG9tcy9pbmRleC5qc1xudmFyIHJlcXVpcmVfZXNfb2JqZWN0X2F0b21zID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL2VzLW9iamVjdC1hdG9tcy9pbmRleC5qc1wiKGV4cG9ydHMyLCBtb2R1bGUyKSB7XG4gICAgXCJ1c2Ugc3RyaWN0XCI7XG4gICAgbW9kdWxlMi5leHBvcnRzID0gT2JqZWN0O1xuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL2VzLWVycm9ycy9pbmRleC5qc1xudmFyIHJlcXVpcmVfZXNfZXJyb3JzID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL2VzLWVycm9ycy9pbmRleC5qc1wiKGV4cG9ydHMyLCBtb2R1bGUyKSB7XG4gICAgXCJ1c2Ugc3RyaWN0XCI7XG4gICAgbW9kdWxlMi5leHBvcnRzID0gRXJyb3I7XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvZXMtZXJyb3JzL2V2YWwuanNcbnZhciByZXF1aXJlX2V2YWwgPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvZXMtZXJyb3JzL2V2YWwuanNcIihleHBvcnRzMiwgbW9kdWxlMikge1xuICAgIFwidXNlIHN0cmljdFwiO1xuICAgIG1vZHVsZTIuZXhwb3J0cyA9IEV2YWxFcnJvcjtcbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9lcy1lcnJvcnMvcmFuZ2UuanNcbnZhciByZXF1aXJlX3JhbmdlID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL2VzLWVycm9ycy9yYW5nZS5qc1wiKGV4cG9ydHMyLCBtb2R1bGUyKSB7XG4gICAgXCJ1c2Ugc3RyaWN0XCI7XG4gICAgbW9kdWxlMi5leHBvcnRzID0gUmFuZ2VFcnJvcjtcbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9lcy1lcnJvcnMvcmVmLmpzXG52YXIgcmVxdWlyZV9yZWYgPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvZXMtZXJyb3JzL3JlZi5qc1wiKGV4cG9ydHMyLCBtb2R1bGUyKSB7XG4gICAgXCJ1c2Ugc3RyaWN0XCI7XG4gICAgbW9kdWxlMi5leHBvcnRzID0gUmVmZXJlbmNlRXJyb3I7XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvZXMtZXJyb3JzL3N5bnRheC5qc1xudmFyIHJlcXVpcmVfc3ludGF4ID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL2VzLWVycm9ycy9zeW50YXguanNcIihleHBvcnRzMiwgbW9kdWxlMikge1xuICAgIFwidXNlIHN0cmljdFwiO1xuICAgIG1vZHVsZTIuZXhwb3J0cyA9IFN5bnRheEVycm9yO1xuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL2VzLWVycm9ycy91cmkuanNcbnZhciByZXF1aXJlX3VyaSA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9lcy1lcnJvcnMvdXJpLmpzXCIoZXhwb3J0czIsIG1vZHVsZTIpIHtcbiAgICBcInVzZSBzdHJpY3RcIjtcbiAgICBtb2R1bGUyLmV4cG9ydHMgPSBVUklFcnJvcjtcbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9tYXRoLWludHJpbnNpY3MvYWJzLmpzXG52YXIgcmVxdWlyZV9hYnMgPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvbWF0aC1pbnRyaW5zaWNzL2Ficy5qc1wiKGV4cG9ydHMyLCBtb2R1bGUyKSB7XG4gICAgXCJ1c2Ugc3RyaWN0XCI7XG4gICAgbW9kdWxlMi5leHBvcnRzID0gTWF0aC5hYnM7XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvbWF0aC1pbnRyaW5zaWNzL2Zsb29yLmpzXG52YXIgcmVxdWlyZV9mbG9vciA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9tYXRoLWludHJpbnNpY3MvZmxvb3IuanNcIihleHBvcnRzMiwgbW9kdWxlMikge1xuICAgIFwidXNlIHN0cmljdFwiO1xuICAgIG1vZHVsZTIuZXhwb3J0cyA9IE1hdGguZmxvb3I7XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvbWF0aC1pbnRyaW5zaWNzL21heC5qc1xudmFyIHJlcXVpcmVfbWF4ID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL21hdGgtaW50cmluc2ljcy9tYXguanNcIihleHBvcnRzMiwgbW9kdWxlMikge1xuICAgIFwidXNlIHN0cmljdFwiO1xuICAgIG1vZHVsZTIuZXhwb3J0cyA9IE1hdGgubWF4O1xuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL21hdGgtaW50cmluc2ljcy9taW4uanNcbnZhciByZXF1aXJlX21pbiA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9tYXRoLWludHJpbnNpY3MvbWluLmpzXCIoZXhwb3J0czIsIG1vZHVsZTIpIHtcbiAgICBcInVzZSBzdHJpY3RcIjtcbiAgICBtb2R1bGUyLmV4cG9ydHMgPSBNYXRoLm1pbjtcbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9tYXRoLWludHJpbnNpY3MvcG93LmpzXG52YXIgcmVxdWlyZV9wb3cgPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvbWF0aC1pbnRyaW5zaWNzL3Bvdy5qc1wiKGV4cG9ydHMyLCBtb2R1bGUyKSB7XG4gICAgXCJ1c2Ugc3RyaWN0XCI7XG4gICAgbW9kdWxlMi5leHBvcnRzID0gTWF0aC5wb3c7XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvbWF0aC1pbnRyaW5zaWNzL3JvdW5kLmpzXG52YXIgcmVxdWlyZV9yb3VuZCA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9tYXRoLWludHJpbnNpY3Mvcm91bmQuanNcIihleHBvcnRzMiwgbW9kdWxlMikge1xuICAgIFwidXNlIHN0cmljdFwiO1xuICAgIG1vZHVsZTIuZXhwb3J0cyA9IE1hdGgucm91bmQ7XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvbWF0aC1pbnRyaW5zaWNzL2lzTmFOLmpzXG52YXIgcmVxdWlyZV9pc05hTiA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9tYXRoLWludHJpbnNpY3MvaXNOYU4uanNcIihleHBvcnRzMiwgbW9kdWxlMikge1xuICAgIFwidXNlIHN0cmljdFwiO1xuICAgIG1vZHVsZTIuZXhwb3J0cyA9IE51bWJlci5pc05hTiB8fCBmdW5jdGlvbiBpc05hTjIoYSkge1xuICAgICAgcmV0dXJuIGEgIT09IGE7XG4gICAgfTtcbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9tYXRoLWludHJpbnNpY3Mvc2lnbi5qc1xudmFyIHJlcXVpcmVfc2lnbiA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9tYXRoLWludHJpbnNpY3Mvc2lnbi5qc1wiKGV4cG9ydHMyLCBtb2R1bGUyKSB7XG4gICAgXCJ1c2Ugc3RyaWN0XCI7XG4gICAgdmFyICRpc05hTiA9IHJlcXVpcmVfaXNOYU4oKTtcbiAgICBtb2R1bGUyLmV4cG9ydHMgPSBmdW5jdGlvbiBzaWduKG51bWJlcikge1xuICAgICAgaWYgKCRpc05hTihudW1iZXIpIHx8IG51bWJlciA9PT0gMCkge1xuICAgICAgICByZXR1cm4gbnVtYmVyO1xuICAgICAgfVxuICAgICAgcmV0dXJuIG51bWJlciA8IDAgPyAtMSA6IDE7XG4gICAgfTtcbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9nb3BkL2dPUEQuanNcbnZhciByZXF1aXJlX2dPUEQgPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvZ29wZC9nT1BELmpzXCIoZXhwb3J0czIsIG1vZHVsZTIpIHtcbiAgICBcInVzZSBzdHJpY3RcIjtcbiAgICBtb2R1bGUyLmV4cG9ydHMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yO1xuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL2dvcGQvaW5kZXguanNcbnZhciByZXF1aXJlX2dvcGQgPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvZ29wZC9pbmRleC5qc1wiKGV4cG9ydHMyLCBtb2R1bGUyKSB7XG4gICAgXCJ1c2Ugc3RyaWN0XCI7XG4gICAgdmFyICRnT1BEID0gcmVxdWlyZV9nT1BEKCk7XG4gICAgaWYgKCRnT1BEKSB7XG4gICAgICB0cnkge1xuICAgICAgICAkZ09QRChbXSwgXCJsZW5ndGhcIik7XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICRnT1BEID0gbnVsbDtcbiAgICAgIH1cbiAgICB9XG4gICAgbW9kdWxlMi5leHBvcnRzID0gJGdPUEQ7XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvZXMtZGVmaW5lLXByb3BlcnR5L2luZGV4LmpzXG52YXIgcmVxdWlyZV9lc19kZWZpbmVfcHJvcGVydHkgPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvZXMtZGVmaW5lLXByb3BlcnR5L2luZGV4LmpzXCIoZXhwb3J0czIsIG1vZHVsZTIpIHtcbiAgICBcInVzZSBzdHJpY3RcIjtcbiAgICB2YXIgJGRlZmluZVByb3BlcnR5ID0gT2JqZWN0LmRlZmluZVByb3BlcnR5IHx8IGZhbHNlO1xuICAgIGlmICgkZGVmaW5lUHJvcGVydHkpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgICRkZWZpbmVQcm9wZXJ0eSh7fSwgXCJhXCIsIHsgdmFsdWU6IDEgfSk7XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICRkZWZpbmVQcm9wZXJ0eSA9IGZhbHNlO1xuICAgICAgfVxuICAgIH1cbiAgICBtb2R1bGUyLmV4cG9ydHMgPSAkZGVmaW5lUHJvcGVydHk7XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvaGFzLXN5bWJvbHMvc2hhbXMuanNcbnZhciByZXF1aXJlX3NoYW1zID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL2hhcy1zeW1ib2xzL3NoYW1zLmpzXCIoZXhwb3J0czIsIG1vZHVsZTIpIHtcbiAgICBcInVzZSBzdHJpY3RcIjtcbiAgICBtb2R1bGUyLmV4cG9ydHMgPSBmdW5jdGlvbiBoYXNTeW1ib2xzKCkge1xuICAgICAgaWYgKHR5cGVvZiBTeW1ib2wgIT09IFwiZnVuY3Rpb25cIiB8fCB0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyAhPT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIGlmICh0eXBlb2YgU3ltYm9sLml0ZXJhdG9yID09PSBcInN5bWJvbFwiKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgICAgdmFyIG9iaiA9IHt9O1xuICAgICAgdmFyIHN5bSA9IFN5bWJvbChcInRlc3RcIik7XG4gICAgICB2YXIgc3ltT2JqID0gT2JqZWN0KHN5bSk7XG4gICAgICBpZiAodHlwZW9mIHN5bSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHN5bSkgIT09IFwiW29iamVjdCBTeW1ib2xdXCIpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChzeW1PYmopICE9PSBcIltvYmplY3QgU3ltYm9sXVwiKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIHZhciBzeW1WYWwgPSA0MjtcbiAgICAgIG9ialtzeW1dID0gc3ltVmFsO1xuICAgICAgZm9yICh2YXIgXzIgaW4gb2JqKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIGlmICh0eXBlb2YgT2JqZWN0LmtleXMgPT09IFwiZnVuY3Rpb25cIiAmJiBPYmplY3Qua2V5cyhvYmopLmxlbmd0aCAhPT0gMCkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgICBpZiAodHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzID09PSBcImZ1bmN0aW9uXCIgJiYgT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMob2JqKS5sZW5ndGggIT09IDApIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgdmFyIHN5bXMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKG9iaik7XG4gICAgICBpZiAoc3ltcy5sZW5ndGggIT09IDEgfHwgc3ltc1swXSAhPT0gc3ltKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIGlmICghT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKG9iaiwgc3ltKSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgICBpZiAodHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICB2YXIgZGVzY3JpcHRvciA9IChcbiAgICAgICAgICAvKiogQHR5cGUge1Byb3BlcnR5RGVzY3JpcHRvcn0gKi9cbiAgICAgICAgICBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG9iaiwgc3ltKVxuICAgICAgICApO1xuICAgICAgICBpZiAoZGVzY3JpcHRvci52YWx1ZSAhPT0gc3ltVmFsIHx8IGRlc2NyaXB0b3IuZW51bWVyYWJsZSAhPT0gdHJ1ZSkge1xuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfTtcbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9oYXMtc3ltYm9scy9pbmRleC5qc1xudmFyIHJlcXVpcmVfaGFzX3N5bWJvbHMgPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvaGFzLXN5bWJvbHMvaW5kZXguanNcIihleHBvcnRzMiwgbW9kdWxlMikge1xuICAgIFwidXNlIHN0cmljdFwiO1xuICAgIHZhciBvcmlnU3ltYm9sID0gdHlwZW9mIFN5bWJvbCAhPT0gXCJ1bmRlZmluZWRcIiAmJiBTeW1ib2w7XG4gICAgdmFyIGhhc1N5bWJvbFNoYW0gPSByZXF1aXJlX3NoYW1zKCk7XG4gICAgbW9kdWxlMi5leHBvcnRzID0gZnVuY3Rpb24gaGFzTmF0aXZlU3ltYm9scygpIHtcbiAgICAgIGlmICh0eXBlb2Ygb3JpZ1N5bWJvbCAhPT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIGlmICh0eXBlb2YgU3ltYm9sICE9PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgaWYgKHR5cGVvZiBvcmlnU3ltYm9sKFwiZm9vXCIpICE9PSBcInN5bWJvbFwiKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIGlmICh0eXBlb2YgU3ltYm9sKFwiYmFyXCIpICE9PSBcInN5bWJvbFwiKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBoYXNTeW1ib2xTaGFtKCk7XG4gICAgfTtcbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9nZXQtcHJvdG8vUmVmbGVjdC5nZXRQcm90b3R5cGVPZi5qc1xudmFyIHJlcXVpcmVfUmVmbGVjdF9nZXRQcm90b3R5cGVPZiA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9nZXQtcHJvdG8vUmVmbGVjdC5nZXRQcm90b3R5cGVPZi5qc1wiKGV4cG9ydHMyLCBtb2R1bGUyKSB7XG4gICAgXCJ1c2Ugc3RyaWN0XCI7XG4gICAgbW9kdWxlMi5leHBvcnRzID0gdHlwZW9mIFJlZmxlY3QgIT09IFwidW5kZWZpbmVkXCIgJiYgUmVmbGVjdC5nZXRQcm90b3R5cGVPZiB8fCBudWxsO1xuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL2dldC1wcm90by9PYmplY3QuZ2V0UHJvdG90eXBlT2YuanNcbnZhciByZXF1aXJlX09iamVjdF9nZXRQcm90b3R5cGVPZiA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9nZXQtcHJvdG8vT2JqZWN0LmdldFByb3RvdHlwZU9mLmpzXCIoZXhwb3J0czIsIG1vZHVsZTIpIHtcbiAgICBcInVzZSBzdHJpY3RcIjtcbiAgICB2YXIgJE9iamVjdCA9IHJlcXVpcmVfZXNfb2JqZWN0X2F0b21zKCk7XG4gICAgbW9kdWxlMi5leHBvcnRzID0gJE9iamVjdC5nZXRQcm90b3R5cGVPZiB8fCBudWxsO1xuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL2Z1bmN0aW9uLWJpbmQvaW1wbGVtZW50YXRpb24uanNcbnZhciByZXF1aXJlX2ltcGxlbWVudGF0aW9uID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL2Z1bmN0aW9uLWJpbmQvaW1wbGVtZW50YXRpb24uanNcIihleHBvcnRzMiwgbW9kdWxlMikge1xuICAgIFwidXNlIHN0cmljdFwiO1xuICAgIHZhciBFUlJPUl9NRVNTQUdFID0gXCJGdW5jdGlvbi5wcm90b3R5cGUuYmluZCBjYWxsZWQgb24gaW5jb21wYXRpYmxlIFwiO1xuICAgIHZhciB0b1N0ciA9IE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmc7XG4gICAgdmFyIG1heCA9IE1hdGgubWF4O1xuICAgIHZhciBmdW5jVHlwZSA9IFwiW29iamVjdCBGdW5jdGlvbl1cIjtcbiAgICB2YXIgY29uY2F0dHkgPSBmdW5jdGlvbiBjb25jYXR0eTIoYSwgYikge1xuICAgICAgdmFyIGFyciA9IFtdO1xuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhLmxlbmd0aDsgaSArPSAxKSB7XG4gICAgICAgIGFycltpXSA9IGFbaV07XG4gICAgICB9XG4gICAgICBmb3IgKHZhciBqID0gMDsgaiA8IGIubGVuZ3RoOyBqICs9IDEpIHtcbiAgICAgICAgYXJyW2ogKyBhLmxlbmd0aF0gPSBiW2pdO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGFycjtcbiAgICB9O1xuICAgIHZhciBzbGljeSA9IGZ1bmN0aW9uIHNsaWN5MihhcnJMaWtlLCBvZmZzZXQpIHtcbiAgICAgIHZhciBhcnIgPSBbXTtcbiAgICAgIGZvciAodmFyIGkgPSBvZmZzZXQgfHwgMCwgaiA9IDA7IGkgPCBhcnJMaWtlLmxlbmd0aDsgaSArPSAxLCBqICs9IDEpIHtcbiAgICAgICAgYXJyW2pdID0gYXJyTGlrZVtpXTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBhcnI7XG4gICAgfTtcbiAgICB2YXIgam9pbnkgPSBmdW5jdGlvbihhcnIsIGpvaW5lcikge1xuICAgICAgdmFyIHN0ciA9IFwiXCI7XG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGFyci5sZW5ndGg7IGkgKz0gMSkge1xuICAgICAgICBzdHIgKz0gYXJyW2ldO1xuICAgICAgICBpZiAoaSArIDEgPCBhcnIubGVuZ3RoKSB7XG4gICAgICAgICAgc3RyICs9IGpvaW5lcjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIHN0cjtcbiAgICB9O1xuICAgIG1vZHVsZTIuZXhwb3J0cyA9IGZ1bmN0aW9uIGJpbmQodGhhdCkge1xuICAgICAgdmFyIHRhcmdldCA9IHRoaXM7XG4gICAgICBpZiAodHlwZW9mIHRhcmdldCAhPT0gXCJmdW5jdGlvblwiIHx8IHRvU3RyLmFwcGx5KHRhcmdldCkgIT09IGZ1bmNUeXBlKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoRVJST1JfTUVTU0FHRSArIHRhcmdldCk7XG4gICAgICB9XG4gICAgICB2YXIgYXJncyA9IHNsaWN5KGFyZ3VtZW50cywgMSk7XG4gICAgICB2YXIgYm91bmQ7XG4gICAgICB2YXIgYmluZGVyID0gZnVuY3Rpb24oKSB7XG4gICAgICAgIGlmICh0aGlzIGluc3RhbmNlb2YgYm91bmQpIHtcbiAgICAgICAgICB2YXIgcmVzdWx0ID0gdGFyZ2V0LmFwcGx5KFxuICAgICAgICAgICAgdGhpcyxcbiAgICAgICAgICAgIGNvbmNhdHR5KGFyZ3MsIGFyZ3VtZW50cylcbiAgICAgICAgICApO1xuICAgICAgICAgIGlmIChPYmplY3QocmVzdWx0KSA9PT0gcmVzdWx0KSB7XG4gICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGFyZ2V0LmFwcGx5KFxuICAgICAgICAgIHRoYXQsXG4gICAgICAgICAgY29uY2F0dHkoYXJncywgYXJndW1lbnRzKVxuICAgICAgICApO1xuICAgICAgfTtcbiAgICAgIHZhciBib3VuZExlbmd0aCA9IG1heCgwLCB0YXJnZXQubGVuZ3RoIC0gYXJncy5sZW5ndGgpO1xuICAgICAgdmFyIGJvdW5kQXJncyA9IFtdO1xuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBib3VuZExlbmd0aDsgaSsrKSB7XG4gICAgICAgIGJvdW5kQXJnc1tpXSA9IFwiJFwiICsgaTtcbiAgICAgIH1cbiAgICAgIGJvdW5kID0gRnVuY3Rpb24oXCJiaW5kZXJcIiwgXCJyZXR1cm4gZnVuY3Rpb24gKFwiICsgam9pbnkoYm91bmRBcmdzLCBcIixcIikgKyBcIil7IHJldHVybiBiaW5kZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpOyB9XCIpKGJpbmRlcik7XG4gICAgICBpZiAodGFyZ2V0LnByb3RvdHlwZSkge1xuICAgICAgICB2YXIgRW1wdHkgPSBmdW5jdGlvbiBFbXB0eTIoKSB7XG4gICAgICAgIH07XG4gICAgICAgIEVtcHR5LnByb3RvdHlwZSA9IHRhcmdldC5wcm90b3R5cGU7XG4gICAgICAgIGJvdW5kLnByb3RvdHlwZSA9IG5ldyBFbXB0eSgpO1xuICAgICAgICBFbXB0eS5wcm90b3R5cGUgPSBudWxsO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGJvdW5kO1xuICAgIH07XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvZnVuY3Rpb24tYmluZC9pbmRleC5qc1xudmFyIHJlcXVpcmVfZnVuY3Rpb25fYmluZCA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9mdW5jdGlvbi1iaW5kL2luZGV4LmpzXCIoZXhwb3J0czIsIG1vZHVsZTIpIHtcbiAgICBcInVzZSBzdHJpY3RcIjtcbiAgICB2YXIgaW1wbGVtZW50YXRpb24gPSByZXF1aXJlX2ltcGxlbWVudGF0aW9uKCk7XG4gICAgbW9kdWxlMi5leHBvcnRzID0gRnVuY3Rpb24ucHJvdG90eXBlLmJpbmQgfHwgaW1wbGVtZW50YXRpb247XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvY2FsbC1iaW5kLWFwcGx5LWhlbHBlcnMvZnVuY3Rpb25DYWxsLmpzXG52YXIgcmVxdWlyZV9mdW5jdGlvbkNhbGwgPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvY2FsbC1iaW5kLWFwcGx5LWhlbHBlcnMvZnVuY3Rpb25DYWxsLmpzXCIoZXhwb3J0czIsIG1vZHVsZTIpIHtcbiAgICBcInVzZSBzdHJpY3RcIjtcbiAgICBtb2R1bGUyLmV4cG9ydHMgPSBGdW5jdGlvbi5wcm90b3R5cGUuY2FsbDtcbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9jYWxsLWJpbmQtYXBwbHktaGVscGVycy9mdW5jdGlvbkFwcGx5LmpzXG52YXIgcmVxdWlyZV9mdW5jdGlvbkFwcGx5ID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL2NhbGwtYmluZC1hcHBseS1oZWxwZXJzL2Z1bmN0aW9uQXBwbHkuanNcIihleHBvcnRzMiwgbW9kdWxlMikge1xuICAgIFwidXNlIHN0cmljdFwiO1xuICAgIG1vZHVsZTIuZXhwb3J0cyA9IEZ1bmN0aW9uLnByb3RvdHlwZS5hcHBseTtcbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9jYWxsLWJpbmQtYXBwbHktaGVscGVycy9yZWZsZWN0QXBwbHkuanNcbnZhciByZXF1aXJlX3JlZmxlY3RBcHBseSA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9jYWxsLWJpbmQtYXBwbHktaGVscGVycy9yZWZsZWN0QXBwbHkuanNcIihleHBvcnRzMiwgbW9kdWxlMikge1xuICAgIFwidXNlIHN0cmljdFwiO1xuICAgIG1vZHVsZTIuZXhwb3J0cyA9IHR5cGVvZiBSZWZsZWN0ICE9PSBcInVuZGVmaW5lZFwiICYmIFJlZmxlY3QgJiYgUmVmbGVjdC5hcHBseTtcbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9jYWxsLWJpbmQtYXBwbHktaGVscGVycy9hY3R1YWxBcHBseS5qc1xudmFyIHJlcXVpcmVfYWN0dWFsQXBwbHkgPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvY2FsbC1iaW5kLWFwcGx5LWhlbHBlcnMvYWN0dWFsQXBwbHkuanNcIihleHBvcnRzMiwgbW9kdWxlMikge1xuICAgIFwidXNlIHN0cmljdFwiO1xuICAgIHZhciBiaW5kID0gcmVxdWlyZV9mdW5jdGlvbl9iaW5kKCk7XG4gICAgdmFyICRhcHBseSA9IHJlcXVpcmVfZnVuY3Rpb25BcHBseSgpO1xuICAgIHZhciAkY2FsbCA9IHJlcXVpcmVfZnVuY3Rpb25DYWxsKCk7XG4gICAgdmFyICRyZWZsZWN0QXBwbHkgPSByZXF1aXJlX3JlZmxlY3RBcHBseSgpO1xuICAgIG1vZHVsZTIuZXhwb3J0cyA9ICRyZWZsZWN0QXBwbHkgfHwgYmluZC5jYWxsKCRjYWxsLCAkYXBwbHkpO1xuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL2NhbGwtYmluZC1hcHBseS1oZWxwZXJzL2luZGV4LmpzXG52YXIgcmVxdWlyZV9jYWxsX2JpbmRfYXBwbHlfaGVscGVycyA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9jYWxsLWJpbmQtYXBwbHktaGVscGVycy9pbmRleC5qc1wiKGV4cG9ydHMyLCBtb2R1bGUyKSB7XG4gICAgXCJ1c2Ugc3RyaWN0XCI7XG4gICAgdmFyIGJpbmQgPSByZXF1aXJlX2Z1bmN0aW9uX2JpbmQoKTtcbiAgICB2YXIgJFR5cGVFcnJvciA9IHJlcXVpcmVfdHlwZSgpO1xuICAgIHZhciAkY2FsbCA9IHJlcXVpcmVfZnVuY3Rpb25DYWxsKCk7XG4gICAgdmFyICRhY3R1YWxBcHBseSA9IHJlcXVpcmVfYWN0dWFsQXBwbHkoKTtcbiAgICBtb2R1bGUyLmV4cG9ydHMgPSBmdW5jdGlvbiBjYWxsQmluZEJhc2ljKGFyZ3MpIHtcbiAgICAgIGlmIChhcmdzLmxlbmd0aCA8IDEgfHwgdHlwZW9mIGFyZ3NbMF0gIT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICB0aHJvdyBuZXcgJFR5cGVFcnJvcihcImEgZnVuY3Rpb24gaXMgcmVxdWlyZWRcIik7XG4gICAgICB9XG4gICAgICByZXR1cm4gJGFjdHVhbEFwcGx5KGJpbmQsICRjYWxsLCBhcmdzKTtcbiAgICB9O1xuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL2R1bmRlci1wcm90by9nZXQuanNcbnZhciByZXF1aXJlX2dldCA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9kdW5kZXItcHJvdG8vZ2V0LmpzXCIoZXhwb3J0czIsIG1vZHVsZTIpIHtcbiAgICBcInVzZSBzdHJpY3RcIjtcbiAgICB2YXIgY2FsbEJpbmQgPSByZXF1aXJlX2NhbGxfYmluZF9hcHBseV9oZWxwZXJzKCk7XG4gICAgdmFyIGdPUEQgPSByZXF1aXJlX2dvcGQoKTtcbiAgICB2YXIgaGFzUHJvdG9BY2Nlc3NvcjtcbiAgICB0cnkge1xuICAgICAgaGFzUHJvdG9BY2Nlc3NvciA9IC8qKiBAdHlwZSB7eyBfX3Byb3RvX18/OiB0eXBlb2YgQXJyYXkucHJvdG90eXBlIH19ICovXG4gICAgICBbXS5fX3Byb3RvX18gPT09IEFycmF5LnByb3RvdHlwZTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBpZiAoIWUgfHwgdHlwZW9mIGUgIT09IFwib2JqZWN0XCIgfHwgIShcImNvZGVcIiBpbiBlKSB8fCBlLmNvZGUgIT09IFwiRVJSX1BST1RPX0FDQ0VTU1wiKSB7XG4gICAgICAgIHRocm93IGU7XG4gICAgICB9XG4gICAgfVxuICAgIHZhciBkZXNjID0gISFoYXNQcm90b0FjY2Vzc29yICYmIGdPUEQgJiYgZ09QRChcbiAgICAgIE9iamVjdC5wcm90b3R5cGUsXG4gICAgICAvKiogQHR5cGUge2tleW9mIHR5cGVvZiBPYmplY3QucHJvdG90eXBlfSAqL1xuICAgICAgXCJfX3Byb3RvX19cIlxuICAgICk7XG4gICAgdmFyICRPYmplY3QgPSBPYmplY3Q7XG4gICAgdmFyICRnZXRQcm90b3R5cGVPZiA9ICRPYmplY3QuZ2V0UHJvdG90eXBlT2Y7XG4gICAgbW9kdWxlMi5leHBvcnRzID0gZGVzYyAmJiB0eXBlb2YgZGVzYy5nZXQgPT09IFwiZnVuY3Rpb25cIiA/IGNhbGxCaW5kKFtkZXNjLmdldF0pIDogdHlwZW9mICRnZXRQcm90b3R5cGVPZiA9PT0gXCJmdW5jdGlvblwiID8gKFxuICAgICAgLyoqIEB0eXBlIHtpbXBvcnQoJy4vZ2V0Jyl9ICovXG4gICAgICBmdW5jdGlvbiBnZXREdW5kZXIodmFsdWUpIHtcbiAgICAgICAgcmV0dXJuICRnZXRQcm90b3R5cGVPZih2YWx1ZSA9PSBudWxsID8gdmFsdWUgOiAkT2JqZWN0KHZhbHVlKSk7XG4gICAgICB9XG4gICAgKSA6IGZhbHNlO1xuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL2dldC1wcm90by9pbmRleC5qc1xudmFyIHJlcXVpcmVfZ2V0X3Byb3RvID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL2dldC1wcm90by9pbmRleC5qc1wiKGV4cG9ydHMyLCBtb2R1bGUyKSB7XG4gICAgXCJ1c2Ugc3RyaWN0XCI7XG4gICAgdmFyIHJlZmxlY3RHZXRQcm90byA9IHJlcXVpcmVfUmVmbGVjdF9nZXRQcm90b3R5cGVPZigpO1xuICAgIHZhciBvcmlnaW5hbEdldFByb3RvID0gcmVxdWlyZV9PYmplY3RfZ2V0UHJvdG90eXBlT2YoKTtcbiAgICB2YXIgZ2V0RHVuZGVyUHJvdG8gPSByZXF1aXJlX2dldCgpO1xuICAgIG1vZHVsZTIuZXhwb3J0cyA9IHJlZmxlY3RHZXRQcm90byA/IGZ1bmN0aW9uIGdldFByb3RvKE8pIHtcbiAgICAgIHJldHVybiByZWZsZWN0R2V0UHJvdG8oTyk7XG4gICAgfSA6IG9yaWdpbmFsR2V0UHJvdG8gPyBmdW5jdGlvbiBnZXRQcm90byhPKSB7XG4gICAgICBpZiAoIU8gfHwgdHlwZW9mIE8gIT09IFwib2JqZWN0XCIgJiYgdHlwZW9mIE8gIT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiZ2V0UHJvdG86IG5vdCBhbiBvYmplY3RcIik7XG4gICAgICB9XG4gICAgICByZXR1cm4gb3JpZ2luYWxHZXRQcm90byhPKTtcbiAgICB9IDogZ2V0RHVuZGVyUHJvdG8gPyBmdW5jdGlvbiBnZXRQcm90byhPKSB7XG4gICAgICByZXR1cm4gZ2V0RHVuZGVyUHJvdG8oTyk7XG4gICAgfSA6IG51bGw7XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvaGFzb3duL2luZGV4LmpzXG52YXIgcmVxdWlyZV9oYXNvd24gPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvaGFzb3duL2luZGV4LmpzXCIoZXhwb3J0czIsIG1vZHVsZTIpIHtcbiAgICBcInVzZSBzdHJpY3RcIjtcbiAgICB2YXIgY2FsbCA9IEZ1bmN0aW9uLnByb3RvdHlwZS5jYWxsO1xuICAgIHZhciAkaGFzT3duID0gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTtcbiAgICB2YXIgYmluZCA9IHJlcXVpcmVfZnVuY3Rpb25fYmluZCgpO1xuICAgIG1vZHVsZTIuZXhwb3J0cyA9IGJpbmQuY2FsbChjYWxsLCAkaGFzT3duKTtcbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9nZXQtaW50cmluc2ljL2luZGV4LmpzXG52YXIgcmVxdWlyZV9nZXRfaW50cmluc2ljID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL2dldC1pbnRyaW5zaWMvaW5kZXguanNcIihleHBvcnRzMiwgbW9kdWxlMikge1xuICAgIFwidXNlIHN0cmljdFwiO1xuICAgIHZhciB1bmRlZmluZWQyO1xuICAgIHZhciAkT2JqZWN0ID0gcmVxdWlyZV9lc19vYmplY3RfYXRvbXMoKTtcbiAgICB2YXIgJEVycm9yID0gcmVxdWlyZV9lc19lcnJvcnMoKTtcbiAgICB2YXIgJEV2YWxFcnJvciA9IHJlcXVpcmVfZXZhbCgpO1xuICAgIHZhciAkUmFuZ2VFcnJvciA9IHJlcXVpcmVfcmFuZ2UoKTtcbiAgICB2YXIgJFJlZmVyZW5jZUVycm9yID0gcmVxdWlyZV9yZWYoKTtcbiAgICB2YXIgJFN5bnRheEVycm9yID0gcmVxdWlyZV9zeW50YXgoKTtcbiAgICB2YXIgJFR5cGVFcnJvciA9IHJlcXVpcmVfdHlwZSgpO1xuICAgIHZhciAkVVJJRXJyb3IgPSByZXF1aXJlX3VyaSgpO1xuICAgIHZhciBhYnMgPSByZXF1aXJlX2FicygpO1xuICAgIHZhciBmbG9vciA9IHJlcXVpcmVfZmxvb3IoKTtcbiAgICB2YXIgbWF4ID0gcmVxdWlyZV9tYXgoKTtcbiAgICB2YXIgbWluID0gcmVxdWlyZV9taW4oKTtcbiAgICB2YXIgcG93ID0gcmVxdWlyZV9wb3coKTtcbiAgICB2YXIgcm91bmQgPSByZXF1aXJlX3JvdW5kKCk7XG4gICAgdmFyIHNpZ24gPSByZXF1aXJlX3NpZ24oKTtcbiAgICB2YXIgJEZ1bmN0aW9uID0gRnVuY3Rpb247XG4gICAgdmFyIGdldEV2YWxsZWRDb25zdHJ1Y3RvciA9IGZ1bmN0aW9uKGV4cHJlc3Npb25TeW50YXgpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHJldHVybiAkRnVuY3Rpb24oJ1widXNlIHN0cmljdFwiOyByZXR1cm4gKCcgKyBleHByZXNzaW9uU3ludGF4ICsgXCIpLmNvbnN0cnVjdG9yO1wiKSgpO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgfVxuICAgIH07XG4gICAgdmFyICRnT1BEID0gcmVxdWlyZV9nb3BkKCk7XG4gICAgdmFyICRkZWZpbmVQcm9wZXJ0eSA9IHJlcXVpcmVfZXNfZGVmaW5lX3Byb3BlcnR5KCk7XG4gICAgdmFyIHRocm93VHlwZUVycm9yID0gZnVuY3Rpb24oKSB7XG4gICAgICB0aHJvdyBuZXcgJFR5cGVFcnJvcigpO1xuICAgIH07XG4gICAgdmFyIFRocm93VHlwZUVycm9yID0gJGdPUEQgPyBmdW5jdGlvbigpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGFyZ3VtZW50cy5jYWxsZWU7XG4gICAgICAgIHJldHVybiB0aHJvd1R5cGVFcnJvcjtcbiAgICAgIH0gY2F0Y2ggKGNhbGxlZVRocm93cykge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIHJldHVybiAkZ09QRChhcmd1bWVudHMsIFwiY2FsbGVlXCIpLmdldDtcbiAgICAgICAgfSBjYXRjaCAoZ09QRHRocm93cykge1xuICAgICAgICAgIHJldHVybiB0aHJvd1R5cGVFcnJvcjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0oKSA6IHRocm93VHlwZUVycm9yO1xuICAgIHZhciBoYXNTeW1ib2xzID0gcmVxdWlyZV9oYXNfc3ltYm9scygpKCk7XG4gICAgdmFyIGdldFByb3RvID0gcmVxdWlyZV9nZXRfcHJvdG8oKTtcbiAgICB2YXIgJE9iamVjdEdQTyA9IHJlcXVpcmVfT2JqZWN0X2dldFByb3RvdHlwZU9mKCk7XG4gICAgdmFyICRSZWZsZWN0R1BPID0gcmVxdWlyZV9SZWZsZWN0X2dldFByb3RvdHlwZU9mKCk7XG4gICAgdmFyICRhcHBseSA9IHJlcXVpcmVfZnVuY3Rpb25BcHBseSgpO1xuICAgIHZhciAkY2FsbCA9IHJlcXVpcmVfZnVuY3Rpb25DYWxsKCk7XG4gICAgdmFyIG5lZWRzRXZhbCA9IHt9O1xuICAgIHZhciBUeXBlZEFycmF5ID0gdHlwZW9mIFVpbnQ4QXJyYXkgPT09IFwidW5kZWZpbmVkXCIgfHwgIWdldFByb3RvID8gdW5kZWZpbmVkMiA6IGdldFByb3RvKFVpbnQ4QXJyYXkpO1xuICAgIHZhciBJTlRSSU5TSUNTID0ge1xuICAgICAgX19wcm90b19fOiBudWxsLFxuICAgICAgXCIlQWdncmVnYXRlRXJyb3IlXCI6IHR5cGVvZiBBZ2dyZWdhdGVFcnJvciA9PT0gXCJ1bmRlZmluZWRcIiA/IHVuZGVmaW5lZDIgOiBBZ2dyZWdhdGVFcnJvcixcbiAgICAgIFwiJUFycmF5JVwiOiBBcnJheSxcbiAgICAgIFwiJUFycmF5QnVmZmVyJVwiOiB0eXBlb2YgQXJyYXlCdWZmZXIgPT09IFwidW5kZWZpbmVkXCIgPyB1bmRlZmluZWQyIDogQXJyYXlCdWZmZXIsXG4gICAgICBcIiVBcnJheUl0ZXJhdG9yUHJvdG90eXBlJVwiOiBoYXNTeW1ib2xzICYmIGdldFByb3RvID8gZ2V0UHJvdG8oW11bU3ltYm9sLml0ZXJhdG9yXSgpKSA6IHVuZGVmaW5lZDIsXG4gICAgICBcIiVBc3luY0Zyb21TeW5jSXRlcmF0b3JQcm90b3R5cGUlXCI6IHVuZGVmaW5lZDIsXG4gICAgICBcIiVBc3luY0Z1bmN0aW9uJVwiOiBuZWVkc0V2YWwsXG4gICAgICBcIiVBc3luY0dlbmVyYXRvciVcIjogbmVlZHNFdmFsLFxuICAgICAgXCIlQXN5bmNHZW5lcmF0b3JGdW5jdGlvbiVcIjogbmVlZHNFdmFsLFxuICAgICAgXCIlQXN5bmNJdGVyYXRvclByb3RvdHlwZSVcIjogbmVlZHNFdmFsLFxuICAgICAgXCIlQXRvbWljcyVcIjogdHlwZW9mIEF0b21pY3MgPT09IFwidW5kZWZpbmVkXCIgPyB1bmRlZmluZWQyIDogQXRvbWljcyxcbiAgICAgIFwiJUJpZ0ludCVcIjogdHlwZW9mIEJpZ0ludCA9PT0gXCJ1bmRlZmluZWRcIiA/IHVuZGVmaW5lZDIgOiBCaWdJbnQsXG4gICAgICBcIiVCaWdJbnQ2NEFycmF5JVwiOiB0eXBlb2YgQmlnSW50NjRBcnJheSA9PT0gXCJ1bmRlZmluZWRcIiA/IHVuZGVmaW5lZDIgOiBCaWdJbnQ2NEFycmF5LFxuICAgICAgXCIlQmlnVWludDY0QXJyYXklXCI6IHR5cGVvZiBCaWdVaW50NjRBcnJheSA9PT0gXCJ1bmRlZmluZWRcIiA/IHVuZGVmaW5lZDIgOiBCaWdVaW50NjRBcnJheSxcbiAgICAgIFwiJUJvb2xlYW4lXCI6IEJvb2xlYW4sXG4gICAgICBcIiVEYXRhVmlldyVcIjogdHlwZW9mIERhdGFWaWV3ID09PSBcInVuZGVmaW5lZFwiID8gdW5kZWZpbmVkMiA6IERhdGFWaWV3LFxuICAgICAgXCIlRGF0ZSVcIjogRGF0ZSxcbiAgICAgIFwiJWRlY29kZVVSSSVcIjogZGVjb2RlVVJJLFxuICAgICAgXCIlZGVjb2RlVVJJQ29tcG9uZW50JVwiOiBkZWNvZGVVUklDb21wb25lbnQsXG4gICAgICBcIiVlbmNvZGVVUkklXCI6IGVuY29kZVVSSSxcbiAgICAgIFwiJWVuY29kZVVSSUNvbXBvbmVudCVcIjogZW5jb2RlVVJJQ29tcG9uZW50LFxuICAgICAgXCIlRXJyb3IlXCI6ICRFcnJvcixcbiAgICAgIFwiJWV2YWwlXCI6IGV2YWwsXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLWV2YWxcbiAgICAgIFwiJUV2YWxFcnJvciVcIjogJEV2YWxFcnJvcixcbiAgICAgIFwiJUZsb2F0MTZBcnJheSVcIjogdHlwZW9mIEZsb2F0MTZBcnJheSA9PT0gXCJ1bmRlZmluZWRcIiA/IHVuZGVmaW5lZDIgOiBGbG9hdDE2QXJyYXksXG4gICAgICBcIiVGbG9hdDMyQXJyYXklXCI6IHR5cGVvZiBGbG9hdDMyQXJyYXkgPT09IFwidW5kZWZpbmVkXCIgPyB1bmRlZmluZWQyIDogRmxvYXQzMkFycmF5LFxuICAgICAgXCIlRmxvYXQ2NEFycmF5JVwiOiB0eXBlb2YgRmxvYXQ2NEFycmF5ID09PSBcInVuZGVmaW5lZFwiID8gdW5kZWZpbmVkMiA6IEZsb2F0NjRBcnJheSxcbiAgICAgIFwiJUZpbmFsaXphdGlvblJlZ2lzdHJ5JVwiOiB0eXBlb2YgRmluYWxpemF0aW9uUmVnaXN0cnkgPT09IFwidW5kZWZpbmVkXCIgPyB1bmRlZmluZWQyIDogRmluYWxpemF0aW9uUmVnaXN0cnksXG4gICAgICBcIiVGdW5jdGlvbiVcIjogJEZ1bmN0aW9uLFxuICAgICAgXCIlR2VuZXJhdG9yRnVuY3Rpb24lXCI6IG5lZWRzRXZhbCxcbiAgICAgIFwiJUludDhBcnJheSVcIjogdHlwZW9mIEludDhBcnJheSA9PT0gXCJ1bmRlZmluZWRcIiA/IHVuZGVmaW5lZDIgOiBJbnQ4QXJyYXksXG4gICAgICBcIiVJbnQxNkFycmF5JVwiOiB0eXBlb2YgSW50MTZBcnJheSA9PT0gXCJ1bmRlZmluZWRcIiA/IHVuZGVmaW5lZDIgOiBJbnQxNkFycmF5LFxuICAgICAgXCIlSW50MzJBcnJheSVcIjogdHlwZW9mIEludDMyQXJyYXkgPT09IFwidW5kZWZpbmVkXCIgPyB1bmRlZmluZWQyIDogSW50MzJBcnJheSxcbiAgICAgIFwiJWlzRmluaXRlJVwiOiBpc0Zpbml0ZSxcbiAgICAgIFwiJWlzTmFOJVwiOiBpc05hTixcbiAgICAgIFwiJUl0ZXJhdG9yUHJvdG90eXBlJVwiOiBoYXNTeW1ib2xzICYmIGdldFByb3RvID8gZ2V0UHJvdG8oZ2V0UHJvdG8oW11bU3ltYm9sLml0ZXJhdG9yXSgpKSkgOiB1bmRlZmluZWQyLFxuICAgICAgXCIlSlNPTiVcIjogdHlwZW9mIEpTT04gPT09IFwib2JqZWN0XCIgPyBKU09OIDogdW5kZWZpbmVkMixcbiAgICAgIFwiJU1hcCVcIjogdHlwZW9mIE1hcCA9PT0gXCJ1bmRlZmluZWRcIiA/IHVuZGVmaW5lZDIgOiBNYXAsXG4gICAgICBcIiVNYXBJdGVyYXRvclByb3RvdHlwZSVcIjogdHlwZW9mIE1hcCA9PT0gXCJ1bmRlZmluZWRcIiB8fCAhaGFzU3ltYm9scyB8fCAhZ2V0UHJvdG8gPyB1bmRlZmluZWQyIDogZ2V0UHJvdG8oKC8qIEBfX1BVUkVfXyAqLyBuZXcgTWFwKCkpW1N5bWJvbC5pdGVyYXRvcl0oKSksXG4gICAgICBcIiVNYXRoJVwiOiBNYXRoLFxuICAgICAgXCIlTnVtYmVyJVwiOiBOdW1iZXIsXG4gICAgICBcIiVPYmplY3QlXCI6ICRPYmplY3QsXG4gICAgICBcIiVPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yJVwiOiAkZ09QRCxcbiAgICAgIFwiJXBhcnNlRmxvYXQlXCI6IHBhcnNlRmxvYXQsXG4gICAgICBcIiVwYXJzZUludCVcIjogcGFyc2VJbnQsXG4gICAgICBcIiVQcm9taXNlJVwiOiB0eXBlb2YgUHJvbWlzZSA9PT0gXCJ1bmRlZmluZWRcIiA/IHVuZGVmaW5lZDIgOiBQcm9taXNlLFxuICAgICAgXCIlUHJveHklXCI6IHR5cGVvZiBQcm94eSA9PT0gXCJ1bmRlZmluZWRcIiA/IHVuZGVmaW5lZDIgOiBQcm94eSxcbiAgICAgIFwiJVJhbmdlRXJyb3IlXCI6ICRSYW5nZUVycm9yLFxuICAgICAgXCIlUmVmZXJlbmNlRXJyb3IlXCI6ICRSZWZlcmVuY2VFcnJvcixcbiAgICAgIFwiJVJlZmxlY3QlXCI6IHR5cGVvZiBSZWZsZWN0ID09PSBcInVuZGVmaW5lZFwiID8gdW5kZWZpbmVkMiA6IFJlZmxlY3QsXG4gICAgICBcIiVSZWdFeHAlXCI6IFJlZ0V4cCxcbiAgICAgIFwiJVNldCVcIjogdHlwZW9mIFNldCA9PT0gXCJ1bmRlZmluZWRcIiA/IHVuZGVmaW5lZDIgOiBTZXQsXG4gICAgICBcIiVTZXRJdGVyYXRvclByb3RvdHlwZSVcIjogdHlwZW9mIFNldCA9PT0gXCJ1bmRlZmluZWRcIiB8fCAhaGFzU3ltYm9scyB8fCAhZ2V0UHJvdG8gPyB1bmRlZmluZWQyIDogZ2V0UHJvdG8oKC8qIEBfX1BVUkVfXyAqLyBuZXcgU2V0KCkpW1N5bWJvbC5pdGVyYXRvcl0oKSksXG4gICAgICBcIiVTaGFyZWRBcnJheUJ1ZmZlciVcIjogdHlwZW9mIFNoYXJlZEFycmF5QnVmZmVyID09PSBcInVuZGVmaW5lZFwiID8gdW5kZWZpbmVkMiA6IFNoYXJlZEFycmF5QnVmZmVyLFxuICAgICAgXCIlU3RyaW5nJVwiOiBTdHJpbmcsXG4gICAgICBcIiVTdHJpbmdJdGVyYXRvclByb3RvdHlwZSVcIjogaGFzU3ltYm9scyAmJiBnZXRQcm90byA/IGdldFByb3RvKFwiXCJbU3ltYm9sLml0ZXJhdG9yXSgpKSA6IHVuZGVmaW5lZDIsXG4gICAgICBcIiVTeW1ib2wlXCI6IGhhc1N5bWJvbHMgPyBTeW1ib2wgOiB1bmRlZmluZWQyLFxuICAgICAgXCIlU3ludGF4RXJyb3IlXCI6ICRTeW50YXhFcnJvcixcbiAgICAgIFwiJVRocm93VHlwZUVycm9yJVwiOiBUaHJvd1R5cGVFcnJvcixcbiAgICAgIFwiJVR5cGVkQXJyYXklXCI6IFR5cGVkQXJyYXksXG4gICAgICBcIiVUeXBlRXJyb3IlXCI6ICRUeXBlRXJyb3IsXG4gICAgICBcIiVVaW50OEFycmF5JVwiOiB0eXBlb2YgVWludDhBcnJheSA9PT0gXCJ1bmRlZmluZWRcIiA/IHVuZGVmaW5lZDIgOiBVaW50OEFycmF5LFxuICAgICAgXCIlVWludDhDbGFtcGVkQXJyYXklXCI6IHR5cGVvZiBVaW50OENsYW1wZWRBcnJheSA9PT0gXCJ1bmRlZmluZWRcIiA/IHVuZGVmaW5lZDIgOiBVaW50OENsYW1wZWRBcnJheSxcbiAgICAgIFwiJVVpbnQxNkFycmF5JVwiOiB0eXBlb2YgVWludDE2QXJyYXkgPT09IFwidW5kZWZpbmVkXCIgPyB1bmRlZmluZWQyIDogVWludDE2QXJyYXksXG4gICAgICBcIiVVaW50MzJBcnJheSVcIjogdHlwZW9mIFVpbnQzMkFycmF5ID09PSBcInVuZGVmaW5lZFwiID8gdW5kZWZpbmVkMiA6IFVpbnQzMkFycmF5LFxuICAgICAgXCIlVVJJRXJyb3IlXCI6ICRVUklFcnJvcixcbiAgICAgIFwiJVdlYWtNYXAlXCI6IHR5cGVvZiBXZWFrTWFwID09PSBcInVuZGVmaW5lZFwiID8gdW5kZWZpbmVkMiA6IFdlYWtNYXAsXG4gICAgICBcIiVXZWFrUmVmJVwiOiB0eXBlb2YgV2Vha1JlZiA9PT0gXCJ1bmRlZmluZWRcIiA/IHVuZGVmaW5lZDIgOiBXZWFrUmVmLFxuICAgICAgXCIlV2Vha1NldCVcIjogdHlwZW9mIFdlYWtTZXQgPT09IFwidW5kZWZpbmVkXCIgPyB1bmRlZmluZWQyIDogV2Vha1NldCxcbiAgICAgIFwiJUZ1bmN0aW9uLnByb3RvdHlwZS5jYWxsJVwiOiAkY2FsbCxcbiAgICAgIFwiJUZ1bmN0aW9uLnByb3RvdHlwZS5hcHBseSVcIjogJGFwcGx5LFxuICAgICAgXCIlT2JqZWN0LmRlZmluZVByb3BlcnR5JVwiOiAkZGVmaW5lUHJvcGVydHksXG4gICAgICBcIiVPYmplY3QuZ2V0UHJvdG90eXBlT2YlXCI6ICRPYmplY3RHUE8sXG4gICAgICBcIiVNYXRoLmFicyVcIjogYWJzLFxuICAgICAgXCIlTWF0aC5mbG9vciVcIjogZmxvb3IsXG4gICAgICBcIiVNYXRoLm1heCVcIjogbWF4LFxuICAgICAgXCIlTWF0aC5taW4lXCI6IG1pbixcbiAgICAgIFwiJU1hdGgucG93JVwiOiBwb3csXG4gICAgICBcIiVNYXRoLnJvdW5kJVwiOiByb3VuZCxcbiAgICAgIFwiJU1hdGguc2lnbiVcIjogc2lnbixcbiAgICAgIFwiJVJlZmxlY3QuZ2V0UHJvdG90eXBlT2YlXCI6ICRSZWZsZWN0R1BPXG4gICAgfTtcbiAgICBpZiAoZ2V0UHJvdG8pIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIG51bGwuZXJyb3I7XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIGVycm9yUHJvdG8gPSBnZXRQcm90byhnZXRQcm90byhlKSk7XG4gICAgICAgIElOVFJJTlNJQ1NbXCIlRXJyb3IucHJvdG90eXBlJVwiXSA9IGVycm9yUHJvdG87XG4gICAgICB9XG4gICAgfVxuICAgIHZhciBlcnJvclByb3RvO1xuICAgIHZhciBkb0V2YWwgPSBmdW5jdGlvbiBkb0V2YWwyKG5hbWUpIHtcbiAgICAgIHZhciB2YWx1ZTtcbiAgICAgIGlmIChuYW1lID09PSBcIiVBc3luY0Z1bmN0aW9uJVwiKSB7XG4gICAgICAgIHZhbHVlID0gZ2V0RXZhbGxlZENvbnN0cnVjdG9yKFwiYXN5bmMgZnVuY3Rpb24gKCkge31cIik7XG4gICAgICB9IGVsc2UgaWYgKG5hbWUgPT09IFwiJUdlbmVyYXRvckZ1bmN0aW9uJVwiKSB7XG4gICAgICAgIHZhbHVlID0gZ2V0RXZhbGxlZENvbnN0cnVjdG9yKFwiZnVuY3Rpb24qICgpIHt9XCIpO1xuICAgICAgfSBlbHNlIGlmIChuYW1lID09PSBcIiVBc3luY0dlbmVyYXRvckZ1bmN0aW9uJVwiKSB7XG4gICAgICAgIHZhbHVlID0gZ2V0RXZhbGxlZENvbnN0cnVjdG9yKFwiYXN5bmMgZnVuY3Rpb24qICgpIHt9XCIpO1xuICAgICAgfSBlbHNlIGlmIChuYW1lID09PSBcIiVBc3luY0dlbmVyYXRvciVcIikge1xuICAgICAgICB2YXIgZm4gPSBkb0V2YWwyKFwiJUFzeW5jR2VuZXJhdG9yRnVuY3Rpb24lXCIpO1xuICAgICAgICBpZiAoZm4pIHtcbiAgICAgICAgICB2YWx1ZSA9IGZuLnByb3RvdHlwZTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmIChuYW1lID09PSBcIiVBc3luY0l0ZXJhdG9yUHJvdG90eXBlJVwiKSB7XG4gICAgICAgIHZhciBnZW4gPSBkb0V2YWwyKFwiJUFzeW5jR2VuZXJhdG9yJVwiKTtcbiAgICAgICAgaWYgKGdlbiAmJiBnZXRQcm90bykge1xuICAgICAgICAgIHZhbHVlID0gZ2V0UHJvdG8oZ2VuLnByb3RvdHlwZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIElOVFJJTlNJQ1NbbmFtZV0gPSB2YWx1ZTtcbiAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9O1xuICAgIHZhciBMRUdBQ1lfQUxJQVNFUyA9IHtcbiAgICAgIF9fcHJvdG9fXzogbnVsbCxcbiAgICAgIFwiJUFycmF5QnVmZmVyUHJvdG90eXBlJVwiOiBbXCJBcnJheUJ1ZmZlclwiLCBcInByb3RvdHlwZVwiXSxcbiAgICAgIFwiJUFycmF5UHJvdG90eXBlJVwiOiBbXCJBcnJheVwiLCBcInByb3RvdHlwZVwiXSxcbiAgICAgIFwiJUFycmF5UHJvdG9fZW50cmllcyVcIjogW1wiQXJyYXlcIiwgXCJwcm90b3R5cGVcIiwgXCJlbnRyaWVzXCJdLFxuICAgICAgXCIlQXJyYXlQcm90b19mb3JFYWNoJVwiOiBbXCJBcnJheVwiLCBcInByb3RvdHlwZVwiLCBcImZvckVhY2hcIl0sXG4gICAgICBcIiVBcnJheVByb3RvX2tleXMlXCI6IFtcIkFycmF5XCIsIFwicHJvdG90eXBlXCIsIFwia2V5c1wiXSxcbiAgICAgIFwiJUFycmF5UHJvdG9fdmFsdWVzJVwiOiBbXCJBcnJheVwiLCBcInByb3RvdHlwZVwiLCBcInZhbHVlc1wiXSxcbiAgICAgIFwiJUFzeW5jRnVuY3Rpb25Qcm90b3R5cGUlXCI6IFtcIkFzeW5jRnVuY3Rpb25cIiwgXCJwcm90b3R5cGVcIl0sXG4gICAgICBcIiVBc3luY0dlbmVyYXRvciVcIjogW1wiQXN5bmNHZW5lcmF0b3JGdW5jdGlvblwiLCBcInByb3RvdHlwZVwiXSxcbiAgICAgIFwiJUFzeW5jR2VuZXJhdG9yUHJvdG90eXBlJVwiOiBbXCJBc3luY0dlbmVyYXRvckZ1bmN0aW9uXCIsIFwicHJvdG90eXBlXCIsIFwicHJvdG90eXBlXCJdLFxuICAgICAgXCIlQm9vbGVhblByb3RvdHlwZSVcIjogW1wiQm9vbGVhblwiLCBcInByb3RvdHlwZVwiXSxcbiAgICAgIFwiJURhdGFWaWV3UHJvdG90eXBlJVwiOiBbXCJEYXRhVmlld1wiLCBcInByb3RvdHlwZVwiXSxcbiAgICAgIFwiJURhdGVQcm90b3R5cGUlXCI6IFtcIkRhdGVcIiwgXCJwcm90b3R5cGVcIl0sXG4gICAgICBcIiVFcnJvclByb3RvdHlwZSVcIjogW1wiRXJyb3JcIiwgXCJwcm90b3R5cGVcIl0sXG4gICAgICBcIiVFdmFsRXJyb3JQcm90b3R5cGUlXCI6IFtcIkV2YWxFcnJvclwiLCBcInByb3RvdHlwZVwiXSxcbiAgICAgIFwiJUZsb2F0MzJBcnJheVByb3RvdHlwZSVcIjogW1wiRmxvYXQzMkFycmF5XCIsIFwicHJvdG90eXBlXCJdLFxuICAgICAgXCIlRmxvYXQ2NEFycmF5UHJvdG90eXBlJVwiOiBbXCJGbG9hdDY0QXJyYXlcIiwgXCJwcm90b3R5cGVcIl0sXG4gICAgICBcIiVGdW5jdGlvblByb3RvdHlwZSVcIjogW1wiRnVuY3Rpb25cIiwgXCJwcm90b3R5cGVcIl0sXG4gICAgICBcIiVHZW5lcmF0b3IlXCI6IFtcIkdlbmVyYXRvckZ1bmN0aW9uXCIsIFwicHJvdG90eXBlXCJdLFxuICAgICAgXCIlR2VuZXJhdG9yUHJvdG90eXBlJVwiOiBbXCJHZW5lcmF0b3JGdW5jdGlvblwiLCBcInByb3RvdHlwZVwiLCBcInByb3RvdHlwZVwiXSxcbiAgICAgIFwiJUludDhBcnJheVByb3RvdHlwZSVcIjogW1wiSW50OEFycmF5XCIsIFwicHJvdG90eXBlXCJdLFxuICAgICAgXCIlSW50MTZBcnJheVByb3RvdHlwZSVcIjogW1wiSW50MTZBcnJheVwiLCBcInByb3RvdHlwZVwiXSxcbiAgICAgIFwiJUludDMyQXJyYXlQcm90b3R5cGUlXCI6IFtcIkludDMyQXJyYXlcIiwgXCJwcm90b3R5cGVcIl0sXG4gICAgICBcIiVKU09OUGFyc2UlXCI6IFtcIkpTT05cIiwgXCJwYXJzZVwiXSxcbiAgICAgIFwiJUpTT05TdHJpbmdpZnklXCI6IFtcIkpTT05cIiwgXCJzdHJpbmdpZnlcIl0sXG4gICAgICBcIiVNYXBQcm90b3R5cGUlXCI6IFtcIk1hcFwiLCBcInByb3RvdHlwZVwiXSxcbiAgICAgIFwiJU51bWJlclByb3RvdHlwZSVcIjogW1wiTnVtYmVyXCIsIFwicHJvdG90eXBlXCJdLFxuICAgICAgXCIlT2JqZWN0UHJvdG90eXBlJVwiOiBbXCJPYmplY3RcIiwgXCJwcm90b3R5cGVcIl0sXG4gICAgICBcIiVPYmpQcm90b190b1N0cmluZyVcIjogW1wiT2JqZWN0XCIsIFwicHJvdG90eXBlXCIsIFwidG9TdHJpbmdcIl0sXG4gICAgICBcIiVPYmpQcm90b192YWx1ZU9mJVwiOiBbXCJPYmplY3RcIiwgXCJwcm90b3R5cGVcIiwgXCJ2YWx1ZU9mXCJdLFxuICAgICAgXCIlUHJvbWlzZVByb3RvdHlwZSVcIjogW1wiUHJvbWlzZVwiLCBcInByb3RvdHlwZVwiXSxcbiAgICAgIFwiJVByb21pc2VQcm90b190aGVuJVwiOiBbXCJQcm9taXNlXCIsIFwicHJvdG90eXBlXCIsIFwidGhlblwiXSxcbiAgICAgIFwiJVByb21pc2VfYWxsJVwiOiBbXCJQcm9taXNlXCIsIFwiYWxsXCJdLFxuICAgICAgXCIlUHJvbWlzZV9yZWplY3QlXCI6IFtcIlByb21pc2VcIiwgXCJyZWplY3RcIl0sXG4gICAgICBcIiVQcm9taXNlX3Jlc29sdmUlXCI6IFtcIlByb21pc2VcIiwgXCJyZXNvbHZlXCJdLFxuICAgICAgXCIlUmFuZ2VFcnJvclByb3RvdHlwZSVcIjogW1wiUmFuZ2VFcnJvclwiLCBcInByb3RvdHlwZVwiXSxcbiAgICAgIFwiJVJlZmVyZW5jZUVycm9yUHJvdG90eXBlJVwiOiBbXCJSZWZlcmVuY2VFcnJvclwiLCBcInByb3RvdHlwZVwiXSxcbiAgICAgIFwiJVJlZ0V4cFByb3RvdHlwZSVcIjogW1wiUmVnRXhwXCIsIFwicHJvdG90eXBlXCJdLFxuICAgICAgXCIlU2V0UHJvdG90eXBlJVwiOiBbXCJTZXRcIiwgXCJwcm90b3R5cGVcIl0sXG4gICAgICBcIiVTaGFyZWRBcnJheUJ1ZmZlclByb3RvdHlwZSVcIjogW1wiU2hhcmVkQXJyYXlCdWZmZXJcIiwgXCJwcm90b3R5cGVcIl0sXG4gICAgICBcIiVTdHJpbmdQcm90b3R5cGUlXCI6IFtcIlN0cmluZ1wiLCBcInByb3RvdHlwZVwiXSxcbiAgICAgIFwiJVN5bWJvbFByb3RvdHlwZSVcIjogW1wiU3ltYm9sXCIsIFwicHJvdG90eXBlXCJdLFxuICAgICAgXCIlU3ludGF4RXJyb3JQcm90b3R5cGUlXCI6IFtcIlN5bnRheEVycm9yXCIsIFwicHJvdG90eXBlXCJdLFxuICAgICAgXCIlVHlwZWRBcnJheVByb3RvdHlwZSVcIjogW1wiVHlwZWRBcnJheVwiLCBcInByb3RvdHlwZVwiXSxcbiAgICAgIFwiJVR5cGVFcnJvclByb3RvdHlwZSVcIjogW1wiVHlwZUVycm9yXCIsIFwicHJvdG90eXBlXCJdLFxuICAgICAgXCIlVWludDhBcnJheVByb3RvdHlwZSVcIjogW1wiVWludDhBcnJheVwiLCBcInByb3RvdHlwZVwiXSxcbiAgICAgIFwiJVVpbnQ4Q2xhbXBlZEFycmF5UHJvdG90eXBlJVwiOiBbXCJVaW50OENsYW1wZWRBcnJheVwiLCBcInByb3RvdHlwZVwiXSxcbiAgICAgIFwiJVVpbnQxNkFycmF5UHJvdG90eXBlJVwiOiBbXCJVaW50MTZBcnJheVwiLCBcInByb3RvdHlwZVwiXSxcbiAgICAgIFwiJVVpbnQzMkFycmF5UHJvdG90eXBlJVwiOiBbXCJVaW50MzJBcnJheVwiLCBcInByb3RvdHlwZVwiXSxcbiAgICAgIFwiJVVSSUVycm9yUHJvdG90eXBlJVwiOiBbXCJVUklFcnJvclwiLCBcInByb3RvdHlwZVwiXSxcbiAgICAgIFwiJVdlYWtNYXBQcm90b3R5cGUlXCI6IFtcIldlYWtNYXBcIiwgXCJwcm90b3R5cGVcIl0sXG4gICAgICBcIiVXZWFrU2V0UHJvdG90eXBlJVwiOiBbXCJXZWFrU2V0XCIsIFwicHJvdG90eXBlXCJdXG4gICAgfTtcbiAgICB2YXIgYmluZCA9IHJlcXVpcmVfZnVuY3Rpb25fYmluZCgpO1xuICAgIHZhciBoYXNPd24gPSByZXF1aXJlX2hhc293bigpO1xuICAgIHZhciAkY29uY2F0ID0gYmluZC5jYWxsKCRjYWxsLCBBcnJheS5wcm90b3R5cGUuY29uY2F0KTtcbiAgICB2YXIgJHNwbGljZUFwcGx5ID0gYmluZC5jYWxsKCRhcHBseSwgQXJyYXkucHJvdG90eXBlLnNwbGljZSk7XG4gICAgdmFyICRyZXBsYWNlID0gYmluZC5jYWxsKCRjYWxsLCBTdHJpbmcucHJvdG90eXBlLnJlcGxhY2UpO1xuICAgIHZhciAkc3RyU2xpY2UgPSBiaW5kLmNhbGwoJGNhbGwsIFN0cmluZy5wcm90b3R5cGUuc2xpY2UpO1xuICAgIHZhciAkZXhlYyA9IGJpbmQuY2FsbCgkY2FsbCwgUmVnRXhwLnByb3RvdHlwZS5leGVjKTtcbiAgICB2YXIgcmVQcm9wTmFtZSA9IC9bXiUuW1xcXV0rfFxcWyg/OigtP1xcZCsoPzpcXC5cXGQrKT8pfChbXCInXSkoKD86KD8hXFwyKVteXFxcXF18XFxcXC4pKj8pXFwyKVxcXXwoPz0oPzpcXC58XFxbXFxdKSg/OlxcLnxcXFtcXF18JSQpKS9nO1xuICAgIHZhciByZUVzY2FwZUNoYXIgPSAvXFxcXChcXFxcKT8vZztcbiAgICB2YXIgc3RyaW5nVG9QYXRoID0gZnVuY3Rpb24gc3RyaW5nVG9QYXRoMihzdHJpbmcpIHtcbiAgICAgIHZhciBmaXJzdCA9ICRzdHJTbGljZShzdHJpbmcsIDAsIDEpO1xuICAgICAgdmFyIGxhc3QgPSAkc3RyU2xpY2Uoc3RyaW5nLCAtMSk7XG4gICAgICBpZiAoZmlyc3QgPT09IFwiJVwiICYmIGxhc3QgIT09IFwiJVwiKSB7XG4gICAgICAgIHRocm93IG5ldyAkU3ludGF4RXJyb3IoXCJpbnZhbGlkIGludHJpbnNpYyBzeW50YXgsIGV4cGVjdGVkIGNsb3NpbmcgYCVgXCIpO1xuICAgICAgfSBlbHNlIGlmIChsYXN0ID09PSBcIiVcIiAmJiBmaXJzdCAhPT0gXCIlXCIpIHtcbiAgICAgICAgdGhyb3cgbmV3ICRTeW50YXhFcnJvcihcImludmFsaWQgaW50cmluc2ljIHN5bnRheCwgZXhwZWN0ZWQgb3BlbmluZyBgJWBcIik7XG4gICAgICB9XG4gICAgICB2YXIgcmVzdWx0ID0gW107XG4gICAgICAkcmVwbGFjZShzdHJpbmcsIHJlUHJvcE5hbWUsIGZ1bmN0aW9uKG1hdGNoLCBudW1iZXIsIHF1b3RlLCBzdWJTdHJpbmcpIHtcbiAgICAgICAgcmVzdWx0W3Jlc3VsdC5sZW5ndGhdID0gcXVvdGUgPyAkcmVwbGFjZShzdWJTdHJpbmcsIHJlRXNjYXBlQ2hhciwgXCIkMVwiKSA6IG51bWJlciB8fCBtYXRjaDtcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9O1xuICAgIHZhciBnZXRCYXNlSW50cmluc2ljID0gZnVuY3Rpb24gZ2V0QmFzZUludHJpbnNpYzIobmFtZSwgYWxsb3dNaXNzaW5nKSB7XG4gICAgICB2YXIgaW50cmluc2ljTmFtZSA9IG5hbWU7XG4gICAgICB2YXIgYWxpYXM7XG4gICAgICBpZiAoaGFzT3duKExFR0FDWV9BTElBU0VTLCBpbnRyaW5zaWNOYW1lKSkge1xuICAgICAgICBhbGlhcyA9IExFR0FDWV9BTElBU0VTW2ludHJpbnNpY05hbWVdO1xuICAgICAgICBpbnRyaW5zaWNOYW1lID0gXCIlXCIgKyBhbGlhc1swXSArIFwiJVwiO1xuICAgICAgfVxuICAgICAgaWYgKGhhc093bihJTlRSSU5TSUNTLCBpbnRyaW5zaWNOYW1lKSkge1xuICAgICAgICB2YXIgdmFsdWUgPSBJTlRSSU5TSUNTW2ludHJpbnNpY05hbWVdO1xuICAgICAgICBpZiAodmFsdWUgPT09IG5lZWRzRXZhbCkge1xuICAgICAgICAgIHZhbHVlID0gZG9FdmFsKGludHJpbnNpY05hbWUpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09IFwidW5kZWZpbmVkXCIgJiYgIWFsbG93TWlzc2luZykge1xuICAgICAgICAgIHRocm93IG5ldyAkVHlwZUVycm9yKFwiaW50cmluc2ljIFwiICsgbmFtZSArIFwiIGV4aXN0cywgYnV0IGlzIG5vdCBhdmFpbGFibGUuIFBsZWFzZSBmaWxlIGFuIGlzc3VlIVwiKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGFsaWFzLFxuICAgICAgICAgIG5hbWU6IGludHJpbnNpY05hbWUsXG4gICAgICAgICAgdmFsdWVcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICAgIHRocm93IG5ldyAkU3ludGF4RXJyb3IoXCJpbnRyaW5zaWMgXCIgKyBuYW1lICsgXCIgZG9lcyBub3QgZXhpc3QhXCIpO1xuICAgIH07XG4gICAgbW9kdWxlMi5leHBvcnRzID0gZnVuY3Rpb24gR2V0SW50cmluc2ljKG5hbWUsIGFsbG93TWlzc2luZykge1xuICAgICAgaWYgKHR5cGVvZiBuYW1lICE9PSBcInN0cmluZ1wiIHx8IG5hbWUubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHRocm93IG5ldyAkVHlwZUVycm9yKFwiaW50cmluc2ljIG5hbWUgbXVzdCBiZSBhIG5vbi1lbXB0eSBzdHJpbmdcIik7XG4gICAgICB9XG4gICAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA+IDEgJiYgdHlwZW9mIGFsbG93TWlzc2luZyAhPT0gXCJib29sZWFuXCIpIHtcbiAgICAgICAgdGhyb3cgbmV3ICRUeXBlRXJyb3IoJ1wiYWxsb3dNaXNzaW5nXCIgYXJndW1lbnQgbXVzdCBiZSBhIGJvb2xlYW4nKTtcbiAgICAgIH1cbiAgICAgIGlmICgkZXhlYygvXiU/W14lXSolPyQvLCBuYW1lKSA9PT0gbnVsbCkge1xuICAgICAgICB0aHJvdyBuZXcgJFN5bnRheEVycm9yKFwiYCVgIG1heSBub3QgYmUgcHJlc2VudCBhbnl3aGVyZSBidXQgYXQgdGhlIGJlZ2lubmluZyBhbmQgZW5kIG9mIHRoZSBpbnRyaW5zaWMgbmFtZVwiKTtcbiAgICAgIH1cbiAgICAgIHZhciBwYXJ0cyA9IHN0cmluZ1RvUGF0aChuYW1lKTtcbiAgICAgIHZhciBpbnRyaW5zaWNCYXNlTmFtZSA9IHBhcnRzLmxlbmd0aCA+IDAgPyBwYXJ0c1swXSA6IFwiXCI7XG4gICAgICB2YXIgaW50cmluc2ljID0gZ2V0QmFzZUludHJpbnNpYyhcIiVcIiArIGludHJpbnNpY0Jhc2VOYW1lICsgXCIlXCIsIGFsbG93TWlzc2luZyk7XG4gICAgICB2YXIgaW50cmluc2ljUmVhbE5hbWUgPSBpbnRyaW5zaWMubmFtZTtcbiAgICAgIHZhciB2YWx1ZSA9IGludHJpbnNpYy52YWx1ZTtcbiAgICAgIHZhciBza2lwRnVydGhlckNhY2hpbmcgPSBmYWxzZTtcbiAgICAgIHZhciBhbGlhcyA9IGludHJpbnNpYy5hbGlhcztcbiAgICAgIGlmIChhbGlhcykge1xuICAgICAgICBpbnRyaW5zaWNCYXNlTmFtZSA9IGFsaWFzWzBdO1xuICAgICAgICAkc3BsaWNlQXBwbHkocGFydHMsICRjb25jYXQoWzAsIDFdLCBhbGlhcykpO1xuICAgICAgfVxuICAgICAgZm9yICh2YXIgaSA9IDEsIGlzT3duID0gdHJ1ZTsgaSA8IHBhcnRzLmxlbmd0aDsgaSArPSAxKSB7XG4gICAgICAgIHZhciBwYXJ0ID0gcGFydHNbaV07XG4gICAgICAgIHZhciBmaXJzdCA9ICRzdHJTbGljZShwYXJ0LCAwLCAxKTtcbiAgICAgICAgdmFyIGxhc3QgPSAkc3RyU2xpY2UocGFydCwgLTEpO1xuICAgICAgICBpZiAoKGZpcnN0ID09PSAnXCInIHx8IGZpcnN0ID09PSBcIidcIiB8fCBmaXJzdCA9PT0gXCJgXCIgfHwgKGxhc3QgPT09ICdcIicgfHwgbGFzdCA9PT0gXCInXCIgfHwgbGFzdCA9PT0gXCJgXCIpKSAmJiBmaXJzdCAhPT0gbGFzdCkge1xuICAgICAgICAgIHRocm93IG5ldyAkU3ludGF4RXJyb3IoXCJwcm9wZXJ0eSBuYW1lcyB3aXRoIHF1b3RlcyBtdXN0IGhhdmUgbWF0Y2hpbmcgcXVvdGVzXCIpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChwYXJ0ID09PSBcImNvbnN0cnVjdG9yXCIgfHwgIWlzT3duKSB7XG4gICAgICAgICAgc2tpcEZ1cnRoZXJDYWNoaW5nID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICBpbnRyaW5zaWNCYXNlTmFtZSArPSBcIi5cIiArIHBhcnQ7XG4gICAgICAgIGludHJpbnNpY1JlYWxOYW1lID0gXCIlXCIgKyBpbnRyaW5zaWNCYXNlTmFtZSArIFwiJVwiO1xuICAgICAgICBpZiAoaGFzT3duKElOVFJJTlNJQ1MsIGludHJpbnNpY1JlYWxOYW1lKSkge1xuICAgICAgICAgIHZhbHVlID0gSU5UUklOU0lDU1tpbnRyaW5zaWNSZWFsTmFtZV07XG4gICAgICAgIH0gZWxzZSBpZiAodmFsdWUgIT0gbnVsbCkge1xuICAgICAgICAgIGlmICghKHBhcnQgaW4gdmFsdWUpKSB7XG4gICAgICAgICAgICBpZiAoIWFsbG93TWlzc2luZykge1xuICAgICAgICAgICAgICB0aHJvdyBuZXcgJFR5cGVFcnJvcihcImJhc2UgaW50cmluc2ljIGZvciBcIiArIG5hbWUgKyBcIiBleGlzdHMsIGJ1dCB0aGUgcHJvcGVydHkgaXMgbm90IGF2YWlsYWJsZS5cIik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gdm9pZCB1bmRlZmluZWQyO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoJGdPUEQgJiYgaSArIDEgPj0gcGFydHMubGVuZ3RoKSB7XG4gICAgICAgICAgICB2YXIgZGVzYyA9ICRnT1BEKHZhbHVlLCBwYXJ0KTtcbiAgICAgICAgICAgIGlzT3duID0gISFkZXNjO1xuICAgICAgICAgICAgaWYgKGlzT3duICYmIFwiZ2V0XCIgaW4gZGVzYyAmJiAhKFwib3JpZ2luYWxWYWx1ZVwiIGluIGRlc2MuZ2V0KSkge1xuICAgICAgICAgICAgICB2YWx1ZSA9IGRlc2MuZ2V0O1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZVtwYXJ0XTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaXNPd24gPSBoYXNPd24odmFsdWUsIHBhcnQpO1xuICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZVtwYXJ0XTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGlzT3duICYmICFza2lwRnVydGhlckNhY2hpbmcpIHtcbiAgICAgICAgICAgIElOVFJJTlNJQ1NbaW50cmluc2ljUmVhbE5hbWVdID0gdmFsdWU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gdmFsdWU7XG4gICAgfTtcbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9jYWxsLWJvdW5kL2luZGV4LmpzXG52YXIgcmVxdWlyZV9jYWxsX2JvdW5kID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL2NhbGwtYm91bmQvaW5kZXguanNcIihleHBvcnRzMiwgbW9kdWxlMikge1xuICAgIFwidXNlIHN0cmljdFwiO1xuICAgIHZhciBHZXRJbnRyaW5zaWMgPSByZXF1aXJlX2dldF9pbnRyaW5zaWMoKTtcbiAgICB2YXIgY2FsbEJpbmRCYXNpYyA9IHJlcXVpcmVfY2FsbF9iaW5kX2FwcGx5X2hlbHBlcnMoKTtcbiAgICB2YXIgJGluZGV4T2YgPSBjYWxsQmluZEJhc2ljKFtHZXRJbnRyaW5zaWMoXCIlU3RyaW5nLnByb3RvdHlwZS5pbmRleE9mJVwiKV0pO1xuICAgIG1vZHVsZTIuZXhwb3J0cyA9IGZ1bmN0aW9uIGNhbGxCb3VuZEludHJpbnNpYyhuYW1lLCBhbGxvd01pc3NpbmcpIHtcbiAgICAgIHZhciBpbnRyaW5zaWMgPSAoXG4gICAgICAgIC8qKiBAdHlwZSB7KHRoaXM6IHVua25vd24sIC4uLmFyZ3M6IHVua25vd25bXSkgPT4gdW5rbm93bn0gKi9cbiAgICAgICAgR2V0SW50cmluc2ljKG5hbWUsICEhYWxsb3dNaXNzaW5nKVxuICAgICAgKTtcbiAgICAgIGlmICh0eXBlb2YgaW50cmluc2ljID09PSBcImZ1bmN0aW9uXCIgJiYgJGluZGV4T2YobmFtZSwgXCIucHJvdG90eXBlLlwiKSA+IC0xKSB7XG4gICAgICAgIHJldHVybiBjYWxsQmluZEJhc2ljKFxuICAgICAgICAgIC8qKiBAdHlwZSB7Y29uc3R9ICovXG4gICAgICAgICAgW2ludHJpbnNpY11cbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBpbnRyaW5zaWM7XG4gICAgfTtcbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9zaWRlLWNoYW5uZWwtbWFwL2luZGV4LmpzXG52YXIgcmVxdWlyZV9zaWRlX2NoYW5uZWxfbWFwID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL3NpZGUtY2hhbm5lbC1tYXAvaW5kZXguanNcIihleHBvcnRzMiwgbW9kdWxlMikge1xuICAgIFwidXNlIHN0cmljdFwiO1xuICAgIHZhciBHZXRJbnRyaW5zaWMgPSByZXF1aXJlX2dldF9pbnRyaW5zaWMoKTtcbiAgICB2YXIgY2FsbEJvdW5kID0gcmVxdWlyZV9jYWxsX2JvdW5kKCk7XG4gICAgdmFyIGluc3BlY3QgPSByZXF1aXJlX29iamVjdF9pbnNwZWN0KCk7XG4gICAgdmFyICRUeXBlRXJyb3IgPSByZXF1aXJlX3R5cGUoKTtcbiAgICB2YXIgJE1hcCA9IEdldEludHJpbnNpYyhcIiVNYXAlXCIsIHRydWUpO1xuICAgIHZhciAkbWFwR2V0ID0gY2FsbEJvdW5kKFwiTWFwLnByb3RvdHlwZS5nZXRcIiwgdHJ1ZSk7XG4gICAgdmFyICRtYXBTZXQgPSBjYWxsQm91bmQoXCJNYXAucHJvdG90eXBlLnNldFwiLCB0cnVlKTtcbiAgICB2YXIgJG1hcEhhcyA9IGNhbGxCb3VuZChcIk1hcC5wcm90b3R5cGUuaGFzXCIsIHRydWUpO1xuICAgIHZhciAkbWFwRGVsZXRlID0gY2FsbEJvdW5kKFwiTWFwLnByb3RvdHlwZS5kZWxldGVcIiwgdHJ1ZSk7XG4gICAgdmFyICRtYXBTaXplID0gY2FsbEJvdW5kKFwiTWFwLnByb3RvdHlwZS5zaXplXCIsIHRydWUpO1xuICAgIG1vZHVsZTIuZXhwb3J0cyA9ICEhJE1hcCAmJiAvKiogQHR5cGUge0V4Y2x1ZGU8aW1wb3J0KCcuJyksIGZhbHNlPn0gKi9cbiAgICBmdW5jdGlvbiBnZXRTaWRlQ2hhbm5lbE1hcCgpIHtcbiAgICAgIHZhciAkbTtcbiAgICAgIHZhciBjaGFubmVsID0ge1xuICAgICAgICBhc3NlcnQ6IGZ1bmN0aW9uKGtleSkge1xuICAgICAgICAgIGlmICghY2hhbm5lbC5oYXMoa2V5KSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3ICRUeXBlRXJyb3IoXCJTaWRlIGNoYW5uZWwgZG9lcyBub3QgY29udGFpbiBcIiArIGluc3BlY3Qoa2V5KSk7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcImRlbGV0ZVwiOiBmdW5jdGlvbihrZXkpIHtcbiAgICAgICAgICBpZiAoJG0pIHtcbiAgICAgICAgICAgIHZhciByZXN1bHQgPSAkbWFwRGVsZXRlKCRtLCBrZXkpO1xuICAgICAgICAgICAgaWYgKCRtYXBTaXplKCRtKSA9PT0gMCkge1xuICAgICAgICAgICAgICAkbSA9IHZvaWQgMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfSxcbiAgICAgICAgZ2V0OiBmdW5jdGlvbihrZXkpIHtcbiAgICAgICAgICBpZiAoJG0pIHtcbiAgICAgICAgICAgIHJldHVybiAkbWFwR2V0KCRtLCBrZXkpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgaGFzOiBmdW5jdGlvbihrZXkpIHtcbiAgICAgICAgICBpZiAoJG0pIHtcbiAgICAgICAgICAgIHJldHVybiAkbWFwSGFzKCRtLCBrZXkpO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH0sXG4gICAgICAgIHNldDogZnVuY3Rpb24oa2V5LCB2YWx1ZSkge1xuICAgICAgICAgIGlmICghJG0pIHtcbiAgICAgICAgICAgICRtID0gbmV3ICRNYXAoKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgJG1hcFNldCgkbSwga2V5LCB2YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgICByZXR1cm4gY2hhbm5lbDtcbiAgICB9O1xuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL3NpZGUtY2hhbm5lbC13ZWFrbWFwL2luZGV4LmpzXG52YXIgcmVxdWlyZV9zaWRlX2NoYW5uZWxfd2Vha21hcCA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9zaWRlLWNoYW5uZWwtd2Vha21hcC9pbmRleC5qc1wiKGV4cG9ydHMyLCBtb2R1bGUyKSB7XG4gICAgXCJ1c2Ugc3RyaWN0XCI7XG4gICAgdmFyIEdldEludHJpbnNpYyA9IHJlcXVpcmVfZ2V0X2ludHJpbnNpYygpO1xuICAgIHZhciBjYWxsQm91bmQgPSByZXF1aXJlX2NhbGxfYm91bmQoKTtcbiAgICB2YXIgaW5zcGVjdCA9IHJlcXVpcmVfb2JqZWN0X2luc3BlY3QoKTtcbiAgICB2YXIgZ2V0U2lkZUNoYW5uZWxNYXAgPSByZXF1aXJlX3NpZGVfY2hhbm5lbF9tYXAoKTtcbiAgICB2YXIgJFR5cGVFcnJvciA9IHJlcXVpcmVfdHlwZSgpO1xuICAgIHZhciAkV2Vha01hcCA9IEdldEludHJpbnNpYyhcIiVXZWFrTWFwJVwiLCB0cnVlKTtcbiAgICB2YXIgJHdlYWtNYXBHZXQgPSBjYWxsQm91bmQoXCJXZWFrTWFwLnByb3RvdHlwZS5nZXRcIiwgdHJ1ZSk7XG4gICAgdmFyICR3ZWFrTWFwU2V0ID0gY2FsbEJvdW5kKFwiV2Vha01hcC5wcm90b3R5cGUuc2V0XCIsIHRydWUpO1xuICAgIHZhciAkd2Vha01hcEhhcyA9IGNhbGxCb3VuZChcIldlYWtNYXAucHJvdG90eXBlLmhhc1wiLCB0cnVlKTtcbiAgICB2YXIgJHdlYWtNYXBEZWxldGUgPSBjYWxsQm91bmQoXCJXZWFrTWFwLnByb3RvdHlwZS5kZWxldGVcIiwgdHJ1ZSk7XG4gICAgbW9kdWxlMi5leHBvcnRzID0gJFdlYWtNYXAgPyAoXG4gICAgICAvKiogQHR5cGUge0V4Y2x1ZGU8aW1wb3J0KCcuJyksIGZhbHNlPn0gKi9cbiAgICAgIGZ1bmN0aW9uIGdldFNpZGVDaGFubmVsV2Vha01hcCgpIHtcbiAgICAgICAgdmFyICR3bTtcbiAgICAgICAgdmFyICRtO1xuICAgICAgICB2YXIgY2hhbm5lbCA9IHtcbiAgICAgICAgICBhc3NlcnQ6IGZ1bmN0aW9uKGtleSkge1xuICAgICAgICAgICAgaWYgKCFjaGFubmVsLmhhcyhrZXkpKSB7XG4gICAgICAgICAgICAgIHRocm93IG5ldyAkVHlwZUVycm9yKFwiU2lkZSBjaGFubmVsIGRvZXMgbm90IGNvbnRhaW4gXCIgKyBpbnNwZWN0KGtleSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJkZWxldGVcIjogZnVuY3Rpb24oa2V5KSB7XG4gICAgICAgICAgICBpZiAoJFdlYWtNYXAgJiYga2V5ICYmICh0eXBlb2Yga2V5ID09PSBcIm9iamVjdFwiIHx8IHR5cGVvZiBrZXkgPT09IFwiZnVuY3Rpb25cIikpIHtcbiAgICAgICAgICAgICAgaWYgKCR3bSkge1xuICAgICAgICAgICAgICAgIHJldHVybiAkd2Vha01hcERlbGV0ZSgkd20sIGtleSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSBpZiAoZ2V0U2lkZUNoYW5uZWxNYXApIHtcbiAgICAgICAgICAgICAgaWYgKCRtKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICRtW1wiZGVsZXRlXCJdKGtleSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICB9LFxuICAgICAgICAgIGdldDogZnVuY3Rpb24oa2V5KSB7XG4gICAgICAgICAgICBpZiAoJFdlYWtNYXAgJiYga2V5ICYmICh0eXBlb2Yga2V5ID09PSBcIm9iamVjdFwiIHx8IHR5cGVvZiBrZXkgPT09IFwiZnVuY3Rpb25cIikpIHtcbiAgICAgICAgICAgICAgaWYgKCR3bSkge1xuICAgICAgICAgICAgICAgIHJldHVybiAkd2Vha01hcEdldCgkd20sIGtleSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiAkbSAmJiAkbS5nZXQoa2V5KTtcbiAgICAgICAgICB9LFxuICAgICAgICAgIGhhczogZnVuY3Rpb24oa2V5KSB7XG4gICAgICAgICAgICBpZiAoJFdlYWtNYXAgJiYga2V5ICYmICh0eXBlb2Yga2V5ID09PSBcIm9iamVjdFwiIHx8IHR5cGVvZiBrZXkgPT09IFwiZnVuY3Rpb25cIikpIHtcbiAgICAgICAgICAgICAgaWYgKCR3bSkge1xuICAgICAgICAgICAgICAgIHJldHVybiAkd2Vha01hcEhhcygkd20sIGtleSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiAhISRtICYmICRtLmhhcyhrZXkpO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgc2V0OiBmdW5jdGlvbihrZXksIHZhbHVlKSB7XG4gICAgICAgICAgICBpZiAoJFdlYWtNYXAgJiYga2V5ICYmICh0eXBlb2Yga2V5ID09PSBcIm9iamVjdFwiIHx8IHR5cGVvZiBrZXkgPT09IFwiZnVuY3Rpb25cIikpIHtcbiAgICAgICAgICAgICAgaWYgKCEkd20pIHtcbiAgICAgICAgICAgICAgICAkd20gPSBuZXcgJFdlYWtNYXAoKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAkd2Vha01hcFNldCgkd20sIGtleSwgdmFsdWUpO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChnZXRTaWRlQ2hhbm5lbE1hcCkge1xuICAgICAgICAgICAgICBpZiAoISRtKSB7XG4gICAgICAgICAgICAgICAgJG0gPSBnZXRTaWRlQ2hhbm5lbE1hcCgpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICRtLnNldChrZXksIHZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICAgIHJldHVybiBjaGFubmVsO1xuICAgICAgfVxuICAgICkgOiBnZXRTaWRlQ2hhbm5lbE1hcDtcbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9zaWRlLWNoYW5uZWwvaW5kZXguanNcbnZhciByZXF1aXJlX3NpZGVfY2hhbm5lbCA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9zaWRlLWNoYW5uZWwvaW5kZXguanNcIihleHBvcnRzMiwgbW9kdWxlMikge1xuICAgIFwidXNlIHN0cmljdFwiO1xuICAgIHZhciAkVHlwZUVycm9yID0gcmVxdWlyZV90eXBlKCk7XG4gICAgdmFyIGluc3BlY3QgPSByZXF1aXJlX29iamVjdF9pbnNwZWN0KCk7XG4gICAgdmFyIGdldFNpZGVDaGFubmVsTGlzdCA9IHJlcXVpcmVfc2lkZV9jaGFubmVsX2xpc3QoKTtcbiAgICB2YXIgZ2V0U2lkZUNoYW5uZWxNYXAgPSByZXF1aXJlX3NpZGVfY2hhbm5lbF9tYXAoKTtcbiAgICB2YXIgZ2V0U2lkZUNoYW5uZWxXZWFrTWFwID0gcmVxdWlyZV9zaWRlX2NoYW5uZWxfd2Vha21hcCgpO1xuICAgIHZhciBtYWtlQ2hhbm5lbCA9IGdldFNpZGVDaGFubmVsV2Vha01hcCB8fCBnZXRTaWRlQ2hhbm5lbE1hcCB8fCBnZXRTaWRlQ2hhbm5lbExpc3Q7XG4gICAgbW9kdWxlMi5leHBvcnRzID0gZnVuY3Rpb24gZ2V0U2lkZUNoYW5uZWwoKSB7XG4gICAgICB2YXIgJGNoYW5uZWxEYXRhO1xuICAgICAgdmFyIGNoYW5uZWwgPSB7XG4gICAgICAgIGFzc2VydDogZnVuY3Rpb24oa2V5KSB7XG4gICAgICAgICAgaWYgKCFjaGFubmVsLmhhcyhrZXkpKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgJFR5cGVFcnJvcihcIlNpZGUgY2hhbm5lbCBkb2VzIG5vdCBjb250YWluIFwiICsgaW5zcGVjdChrZXkpKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiZGVsZXRlXCI6IGZ1bmN0aW9uKGtleSkge1xuICAgICAgICAgIHJldHVybiAhISRjaGFubmVsRGF0YSAmJiAkY2hhbm5lbERhdGFbXCJkZWxldGVcIl0oa2V5KTtcbiAgICAgICAgfSxcbiAgICAgICAgZ2V0OiBmdW5jdGlvbihrZXkpIHtcbiAgICAgICAgICByZXR1cm4gJGNoYW5uZWxEYXRhICYmICRjaGFubmVsRGF0YS5nZXQoa2V5KTtcbiAgICAgICAgfSxcbiAgICAgICAgaGFzOiBmdW5jdGlvbihrZXkpIHtcbiAgICAgICAgICByZXR1cm4gISEkY2hhbm5lbERhdGEgJiYgJGNoYW5uZWxEYXRhLmhhcyhrZXkpO1xuICAgICAgICB9LFxuICAgICAgICBzZXQ6IGZ1bmN0aW9uKGtleSwgdmFsdWUpIHtcbiAgICAgICAgICBpZiAoISRjaGFubmVsRGF0YSkge1xuICAgICAgICAgICAgJGNoYW5uZWxEYXRhID0gbWFrZUNoYW5uZWwoKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgJGNoYW5uZWxEYXRhLnNldChrZXksIHZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICAgIHJldHVybiBjaGFubmVsO1xuICAgIH07XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvcXMvbGliL2Zvcm1hdHMuanNcbnZhciByZXF1aXJlX2Zvcm1hdHMgPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvcXMvbGliL2Zvcm1hdHMuanNcIihleHBvcnRzMiwgbW9kdWxlMikge1xuICAgIFwidXNlIHN0cmljdFwiO1xuICAgIHZhciByZXBsYWNlID0gU3RyaW5nLnByb3RvdHlwZS5yZXBsYWNlO1xuICAgIHZhciBwZXJjZW50VHdlbnRpZXMgPSAvJTIwL2c7XG4gICAgdmFyIEZvcm1hdCA9IHtcbiAgICAgIFJGQzE3Mzg6IFwiUkZDMTczOFwiLFxuICAgICAgUkZDMzk4NjogXCJSRkMzOTg2XCJcbiAgICB9O1xuICAgIG1vZHVsZTIuZXhwb3J0cyA9IHtcbiAgICAgIFwiZGVmYXVsdFwiOiBGb3JtYXQuUkZDMzk4NixcbiAgICAgIGZvcm1hdHRlcnM6IHtcbiAgICAgICAgUkZDMTczODogZnVuY3Rpb24odmFsdWUpIHtcbiAgICAgICAgICByZXR1cm4gcmVwbGFjZS5jYWxsKHZhbHVlLCBwZXJjZW50VHdlbnRpZXMsIFwiK1wiKTtcbiAgICAgICAgfSxcbiAgICAgICAgUkZDMzk4NjogZnVuY3Rpb24odmFsdWUpIHtcbiAgICAgICAgICByZXR1cm4gU3RyaW5nKHZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFJGQzE3Mzg6IEZvcm1hdC5SRkMxNzM4LFxuICAgICAgUkZDMzk4NjogRm9ybWF0LlJGQzM5ODZcbiAgICB9O1xuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL3FzL2xpYi91dGlscy5qc1xudmFyIHJlcXVpcmVfdXRpbHMyID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL3FzL2xpYi91dGlscy5qc1wiKGV4cG9ydHMyLCBtb2R1bGUyKSB7XG4gICAgXCJ1c2Ugc3RyaWN0XCI7XG4gICAgdmFyIGZvcm1hdHMgPSByZXF1aXJlX2Zvcm1hdHMoKTtcbiAgICB2YXIgaGFzID0gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTtcbiAgICB2YXIgaXNBcnJheSA9IEFycmF5LmlzQXJyYXk7XG4gICAgdmFyIGhleFRhYmxlID0gZnVuY3Rpb24oKSB7XG4gICAgICB2YXIgYXJyYXkgPSBbXTtcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMjU2OyArK2kpIHtcbiAgICAgICAgYXJyYXkucHVzaChcIiVcIiArICgoaSA8IDE2ID8gXCIwXCIgOiBcIlwiKSArIGkudG9TdHJpbmcoMTYpKS50b1VwcGVyQ2FzZSgpKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBhcnJheTtcbiAgICB9KCk7XG4gICAgdmFyIGNvbXBhY3RRdWV1ZSA9IGZ1bmN0aW9uIGNvbXBhY3RRdWV1ZTIocXVldWUpIHtcbiAgICAgIHdoaWxlIChxdWV1ZS5sZW5ndGggPiAxKSB7XG4gICAgICAgIHZhciBpdGVtID0gcXVldWUucG9wKCk7XG4gICAgICAgIHZhciBvYmogPSBpdGVtLm9ialtpdGVtLnByb3BdO1xuICAgICAgICBpZiAoaXNBcnJheShvYmopKSB7XG4gICAgICAgICAgdmFyIGNvbXBhY3RlZCA9IFtdO1xuICAgICAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgb2JqLmxlbmd0aDsgKytqKSB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIG9ialtqXSAhPT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgICAgICAgICBjb21wYWN0ZWQucHVzaChvYmpbal0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBpdGVtLm9ialtpdGVtLnByb3BdID0gY29tcGFjdGVkO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfTtcbiAgICB2YXIgYXJyYXlUb09iamVjdCA9IGZ1bmN0aW9uIGFycmF5VG9PYmplY3QyKHNvdXJjZSwgb3B0aW9ucykge1xuICAgICAgdmFyIG9iaiA9IG9wdGlvbnMgJiYgb3B0aW9ucy5wbGFpbk9iamVjdHMgPyB7IF9fcHJvdG9fXzogbnVsbCB9IDoge307XG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHNvdXJjZS5sZW5ndGg7ICsraSkge1xuICAgICAgICBpZiAodHlwZW9mIHNvdXJjZVtpXSAhPT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgICAgIG9ialtpXSA9IHNvdXJjZVtpXTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIG9iajtcbiAgICB9O1xuICAgIHZhciBtZXJnZSA9IGZ1bmN0aW9uIG1lcmdlMih0YXJnZXQsIHNvdXJjZSwgb3B0aW9ucykge1xuICAgICAgaWYgKCFzb3VyY2UpIHtcbiAgICAgICAgcmV0dXJuIHRhcmdldDtcbiAgICAgIH1cbiAgICAgIGlmICh0eXBlb2Ygc291cmNlICE9PSBcIm9iamVjdFwiICYmIHR5cGVvZiBzb3VyY2UgIT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICBpZiAoaXNBcnJheSh0YXJnZXQpKSB7XG4gICAgICAgICAgdGFyZ2V0LnB1c2goc291cmNlKTtcbiAgICAgICAgfSBlbHNlIGlmICh0YXJnZXQgJiYgdHlwZW9mIHRhcmdldCA9PT0gXCJvYmplY3RcIikge1xuICAgICAgICAgIGlmIChvcHRpb25zICYmIChvcHRpb25zLnBsYWluT2JqZWN0cyB8fCBvcHRpb25zLmFsbG93UHJvdG90eXBlcykgfHwgIWhhcy5jYWxsKE9iamVjdC5wcm90b3R5cGUsIHNvdXJjZSkpIHtcbiAgICAgICAgICAgIHRhcmdldFtzb3VyY2VdID0gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIFt0YXJnZXQsIHNvdXJjZV07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRhcmdldDtcbiAgICAgIH1cbiAgICAgIGlmICghdGFyZ2V0IHx8IHR5cGVvZiB0YXJnZXQgIT09IFwib2JqZWN0XCIpIHtcbiAgICAgICAgcmV0dXJuIFt0YXJnZXRdLmNvbmNhdChzb3VyY2UpO1xuICAgICAgfVxuICAgICAgdmFyIG1lcmdlVGFyZ2V0ID0gdGFyZ2V0O1xuICAgICAgaWYgKGlzQXJyYXkodGFyZ2V0KSAmJiAhaXNBcnJheShzb3VyY2UpKSB7XG4gICAgICAgIG1lcmdlVGFyZ2V0ID0gYXJyYXlUb09iamVjdCh0YXJnZXQsIG9wdGlvbnMpO1xuICAgICAgfVxuICAgICAgaWYgKGlzQXJyYXkodGFyZ2V0KSAmJiBpc0FycmF5KHNvdXJjZSkpIHtcbiAgICAgICAgc291cmNlLmZvckVhY2goZnVuY3Rpb24oaXRlbSwgaSkge1xuICAgICAgICAgIGlmIChoYXMuY2FsbCh0YXJnZXQsIGkpKSB7XG4gICAgICAgICAgICB2YXIgdGFyZ2V0SXRlbSA9IHRhcmdldFtpXTtcbiAgICAgICAgICAgIGlmICh0YXJnZXRJdGVtICYmIHR5cGVvZiB0YXJnZXRJdGVtID09PSBcIm9iamVjdFwiICYmIGl0ZW0gJiYgdHlwZW9mIGl0ZW0gPT09IFwib2JqZWN0XCIpIHtcbiAgICAgICAgICAgICAgdGFyZ2V0W2ldID0gbWVyZ2UyKHRhcmdldEl0ZW0sIGl0ZW0sIG9wdGlvbnMpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgdGFyZ2V0LnB1c2goaXRlbSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRhcmdldFtpXSA9IGl0ZW07XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIHRhcmdldDtcbiAgICAgIH1cbiAgICAgIHJldHVybiBPYmplY3Qua2V5cyhzb3VyY2UpLnJlZHVjZShmdW5jdGlvbihhY2MsIGtleSkge1xuICAgICAgICB2YXIgdmFsdWUgPSBzb3VyY2Vba2V5XTtcbiAgICAgICAgaWYgKGhhcy5jYWxsKGFjYywga2V5KSkge1xuICAgICAgICAgIGFjY1trZXldID0gbWVyZ2UyKGFjY1trZXldLCB2YWx1ZSwgb3B0aW9ucyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgYWNjW2tleV0gPSB2YWx1ZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgfSwgbWVyZ2VUYXJnZXQpO1xuICAgIH07XG4gICAgdmFyIGFzc2lnbiA9IGZ1bmN0aW9uIGFzc2lnblNpbmdsZVNvdXJjZSh0YXJnZXQsIHNvdXJjZSkge1xuICAgICAgcmV0dXJuIE9iamVjdC5rZXlzKHNvdXJjZSkucmVkdWNlKGZ1bmN0aW9uKGFjYywga2V5KSB7XG4gICAgICAgIGFjY1trZXldID0gc291cmNlW2tleV07XG4gICAgICAgIHJldHVybiBhY2M7XG4gICAgICB9LCB0YXJnZXQpO1xuICAgIH07XG4gICAgdmFyIGRlY29kZSA9IGZ1bmN0aW9uKHN0ciwgZGVmYXVsdERlY29kZXIsIGNoYXJzZXQpIHtcbiAgICAgIHZhciBzdHJXaXRob3V0UGx1cyA9IHN0ci5yZXBsYWNlKC9cXCsvZywgXCIgXCIpO1xuICAgICAgaWYgKGNoYXJzZXQgPT09IFwiaXNvLTg4NTktMVwiKSB7XG4gICAgICAgIHJldHVybiBzdHJXaXRob3V0UGx1cy5yZXBsYWNlKC8lWzAtOWEtZl17Mn0vZ2ksIHVuZXNjYXBlKTtcbiAgICAgIH1cbiAgICAgIHRyeSB7XG4gICAgICAgIHJldHVybiBkZWNvZGVVUklDb21wb25lbnQoc3RyV2l0aG91dFBsdXMpO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICByZXR1cm4gc3RyV2l0aG91dFBsdXM7XG4gICAgICB9XG4gICAgfTtcbiAgICB2YXIgbGltaXQgPSAxMDI0O1xuICAgIHZhciBlbmNvZGUgPSBmdW5jdGlvbiBlbmNvZGUyKHN0ciwgZGVmYXVsdEVuY29kZXIsIGNoYXJzZXQsIGtpbmQsIGZvcm1hdCkge1xuICAgICAgaWYgKHN0ci5sZW5ndGggPT09IDApIHtcbiAgICAgICAgcmV0dXJuIHN0cjtcbiAgICAgIH1cbiAgICAgIHZhciBzdHJpbmcgPSBzdHI7XG4gICAgICBpZiAodHlwZW9mIHN0ciA9PT0gXCJzeW1ib2xcIikge1xuICAgICAgICBzdHJpbmcgPSBTeW1ib2wucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoc3RyKTtcbiAgICAgIH0gZWxzZSBpZiAodHlwZW9mIHN0ciAhPT0gXCJzdHJpbmdcIikge1xuICAgICAgICBzdHJpbmcgPSBTdHJpbmcoc3RyKTtcbiAgICAgIH1cbiAgICAgIGlmIChjaGFyc2V0ID09PSBcImlzby04ODU5LTFcIikge1xuICAgICAgICByZXR1cm4gZXNjYXBlKHN0cmluZykucmVwbGFjZSgvJXVbMC05YS1mXXs0fS9naSwgZnVuY3Rpb24oJDApIHtcbiAgICAgICAgICByZXR1cm4gXCIlMjYlMjNcIiArIHBhcnNlSW50KCQwLnNsaWNlKDIpLCAxNikgKyBcIiUzQlwiO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIHZhciBvdXQgPSBcIlwiO1xuICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBzdHJpbmcubGVuZ3RoOyBqICs9IGxpbWl0KSB7XG4gICAgICAgIHZhciBzZWdtZW50ID0gc3RyaW5nLmxlbmd0aCA+PSBsaW1pdCA/IHN0cmluZy5zbGljZShqLCBqICsgbGltaXQpIDogc3RyaW5nO1xuICAgICAgICB2YXIgYXJyID0gW107XG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc2VnbWVudC5sZW5ndGg7ICsraSkge1xuICAgICAgICAgIHZhciBjID0gc2VnbWVudC5jaGFyQ29kZUF0KGkpO1xuICAgICAgICAgIGlmIChjID09PSA0NSB8fCBjID09PSA0NiB8fCBjID09PSA5NSB8fCBjID09PSAxMjYgfHwgYyA+PSA0OCAmJiBjIDw9IDU3IHx8IGMgPj0gNjUgJiYgYyA8PSA5MCB8fCBjID49IDk3ICYmIGMgPD0gMTIyIHx8IGZvcm1hdCA9PT0gZm9ybWF0cy5SRkMxNzM4ICYmIChjID09PSA0MCB8fCBjID09PSA0MSkpIHtcbiAgICAgICAgICAgIGFyclthcnIubGVuZ3RoXSA9IHNlZ21lbnQuY2hhckF0KGkpO1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChjIDwgMTI4KSB7XG4gICAgICAgICAgICBhcnJbYXJyLmxlbmd0aF0gPSBoZXhUYWJsZVtjXTtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoYyA8IDIwNDgpIHtcbiAgICAgICAgICAgIGFyclthcnIubGVuZ3RoXSA9IGhleFRhYmxlWzE5MiB8IGMgPj4gNl0gKyBoZXhUYWJsZVsxMjggfCBjICYgNjNdO1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChjIDwgNTUyOTYgfHwgYyA+PSA1NzM0NCkge1xuICAgICAgICAgICAgYXJyW2Fyci5sZW5ndGhdID0gaGV4VGFibGVbMjI0IHwgYyA+PiAxMl0gKyBoZXhUYWJsZVsxMjggfCBjID4+IDYgJiA2M10gKyBoZXhUYWJsZVsxMjggfCBjICYgNjNdO1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgfVxuICAgICAgICAgIGkgKz0gMTtcbiAgICAgICAgICBjID0gNjU1MzYgKyAoKGMgJiAxMDIzKSA8PCAxMCB8IHNlZ21lbnQuY2hhckNvZGVBdChpKSAmIDEwMjMpO1xuICAgICAgICAgIGFyclthcnIubGVuZ3RoXSA9IGhleFRhYmxlWzI0MCB8IGMgPj4gMThdICsgaGV4VGFibGVbMTI4IHwgYyA+PiAxMiAmIDYzXSArIGhleFRhYmxlWzEyOCB8IGMgPj4gNiAmIDYzXSArIGhleFRhYmxlWzEyOCB8IGMgJiA2M107XG4gICAgICAgIH1cbiAgICAgICAgb3V0ICs9IGFyci5qb2luKFwiXCIpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIG91dDtcbiAgICB9O1xuICAgIHZhciBjb21wYWN0ID0gZnVuY3Rpb24gY29tcGFjdDIodmFsdWUpIHtcbiAgICAgIHZhciBxdWV1ZSA9IFt7IG9iajogeyBvOiB2YWx1ZSB9LCBwcm9wOiBcIm9cIiB9XTtcbiAgICAgIHZhciByZWZzID0gW107XG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHF1ZXVlLmxlbmd0aDsgKytpKSB7XG4gICAgICAgIHZhciBpdGVtID0gcXVldWVbaV07XG4gICAgICAgIHZhciBvYmogPSBpdGVtLm9ialtpdGVtLnByb3BdO1xuICAgICAgICB2YXIga2V5cyA9IE9iamVjdC5rZXlzKG9iaik7XG4gICAgICAgIGZvciAodmFyIGogPSAwOyBqIDwga2V5cy5sZW5ndGg7ICsraikge1xuICAgICAgICAgIHZhciBrZXkgPSBrZXlzW2pdO1xuICAgICAgICAgIHZhciB2YWwgPSBvYmpba2V5XTtcbiAgICAgICAgICBpZiAodHlwZW9mIHZhbCA9PT0gXCJvYmplY3RcIiAmJiB2YWwgIT09IG51bGwgJiYgcmVmcy5pbmRleE9mKHZhbCkgPT09IC0xKSB7XG4gICAgICAgICAgICBxdWV1ZS5wdXNoKHsgb2JqLCBwcm9wOiBrZXkgfSk7XG4gICAgICAgICAgICByZWZzLnB1c2godmFsKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGNvbXBhY3RRdWV1ZShxdWV1ZSk7XG4gICAgICByZXR1cm4gdmFsdWU7XG4gICAgfTtcbiAgICB2YXIgaXNSZWdFeHAgPSBmdW5jdGlvbiBpc1JlZ0V4cDIob2JqKSB7XG4gICAgICByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKG9iaikgPT09IFwiW29iamVjdCBSZWdFeHBdXCI7XG4gICAgfTtcbiAgICB2YXIgaXNCdWZmZXIgPSBmdW5jdGlvbiBpc0J1ZmZlcjIob2JqKSB7XG4gICAgICBpZiAoIW9iaiB8fCB0eXBlb2Ygb2JqICE9PSBcIm9iamVjdFwiKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIHJldHVybiAhIShvYmouY29uc3RydWN0b3IgJiYgb2JqLmNvbnN0cnVjdG9yLmlzQnVmZmVyICYmIG9iai5jb25zdHJ1Y3Rvci5pc0J1ZmZlcihvYmopKTtcbiAgICB9O1xuICAgIHZhciBjb21iaW5lID0gZnVuY3Rpb24gY29tYmluZTIoYSwgYikge1xuICAgICAgcmV0dXJuIFtdLmNvbmNhdChhLCBiKTtcbiAgICB9O1xuICAgIHZhciBtYXliZU1hcCA9IGZ1bmN0aW9uIG1heWJlTWFwMih2YWwsIGZuKSB7XG4gICAgICBpZiAoaXNBcnJheSh2YWwpKSB7XG4gICAgICAgIHZhciBtYXBwZWQgPSBbXTtcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB2YWwubGVuZ3RoOyBpICs9IDEpIHtcbiAgICAgICAgICBtYXBwZWQucHVzaChmbih2YWxbaV0pKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbWFwcGVkO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGZuKHZhbCk7XG4gICAgfTtcbiAgICBtb2R1bGUyLmV4cG9ydHMgPSB7XG4gICAgICBhcnJheVRvT2JqZWN0LFxuICAgICAgYXNzaWduLFxuICAgICAgY29tYmluZSxcbiAgICAgIGNvbXBhY3QsXG4gICAgICBkZWNvZGUsXG4gICAgICBlbmNvZGUsXG4gICAgICBpc0J1ZmZlcixcbiAgICAgIGlzUmVnRXhwLFxuICAgICAgbWF5YmVNYXAsXG4gICAgICBtZXJnZVxuICAgIH07XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvcXMvbGliL3N0cmluZ2lmeS5qc1xudmFyIHJlcXVpcmVfc3RyaW5naWZ5ID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL3FzL2xpYi9zdHJpbmdpZnkuanNcIihleHBvcnRzMiwgbW9kdWxlMikge1xuICAgIFwidXNlIHN0cmljdFwiO1xuICAgIHZhciBnZXRTaWRlQ2hhbm5lbCA9IHJlcXVpcmVfc2lkZV9jaGFubmVsKCk7XG4gICAgdmFyIHV0aWxzID0gcmVxdWlyZV91dGlsczIoKTtcbiAgICB2YXIgZm9ybWF0cyA9IHJlcXVpcmVfZm9ybWF0cygpO1xuICAgIHZhciBoYXMgPSBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O1xuICAgIHZhciBhcnJheVByZWZpeEdlbmVyYXRvcnMgPSB7XG4gICAgICBicmFja2V0czogZnVuY3Rpb24gYnJhY2tldHMocHJlZml4KSB7XG4gICAgICAgIHJldHVybiBwcmVmaXggKyBcIltdXCI7XG4gICAgICB9LFxuICAgICAgY29tbWE6IFwiY29tbWFcIixcbiAgICAgIGluZGljZXM6IGZ1bmN0aW9uIGluZGljZXMocHJlZml4LCBrZXkpIHtcbiAgICAgICAgcmV0dXJuIHByZWZpeCArIFwiW1wiICsga2V5ICsgXCJdXCI7XG4gICAgICB9LFxuICAgICAgcmVwZWF0OiBmdW5jdGlvbiByZXBlYXQocHJlZml4KSB7XG4gICAgICAgIHJldHVybiBwcmVmaXg7XG4gICAgICB9XG4gICAgfTtcbiAgICB2YXIgaXNBcnJheSA9IEFycmF5LmlzQXJyYXk7XG4gICAgdmFyIHB1c2ggPSBBcnJheS5wcm90b3R5cGUucHVzaDtcbiAgICB2YXIgcHVzaFRvQXJyYXkgPSBmdW5jdGlvbihhcnIsIHZhbHVlT3JBcnJheSkge1xuICAgICAgcHVzaC5hcHBseShhcnIsIGlzQXJyYXkodmFsdWVPckFycmF5KSA/IHZhbHVlT3JBcnJheSA6IFt2YWx1ZU9yQXJyYXldKTtcbiAgICB9O1xuICAgIHZhciB0b0lTTyA9IERhdGUucHJvdG90eXBlLnRvSVNPU3RyaW5nO1xuICAgIHZhciBkZWZhdWx0Rm9ybWF0ID0gZm9ybWF0c1tcImRlZmF1bHRcIl07XG4gICAgdmFyIGRlZmF1bHRzID0ge1xuICAgICAgYWRkUXVlcnlQcmVmaXg6IGZhbHNlLFxuICAgICAgYWxsb3dEb3RzOiBmYWxzZSxcbiAgICAgIGFsbG93RW1wdHlBcnJheXM6IGZhbHNlLFxuICAgICAgYXJyYXlGb3JtYXQ6IFwiaW5kaWNlc1wiLFxuICAgICAgY2hhcnNldDogXCJ1dGYtOFwiLFxuICAgICAgY2hhcnNldFNlbnRpbmVsOiBmYWxzZSxcbiAgICAgIGNvbW1hUm91bmRUcmlwOiBmYWxzZSxcbiAgICAgIGRlbGltaXRlcjogXCImXCIsXG4gICAgICBlbmNvZGU6IHRydWUsXG4gICAgICBlbmNvZGVEb3RJbktleXM6IGZhbHNlLFxuICAgICAgZW5jb2RlcjogdXRpbHMuZW5jb2RlLFxuICAgICAgZW5jb2RlVmFsdWVzT25seTogZmFsc2UsXG4gICAgICBmaWx0ZXI6IHZvaWQgMCxcbiAgICAgIGZvcm1hdDogZGVmYXVsdEZvcm1hdCxcbiAgICAgIGZvcm1hdHRlcjogZm9ybWF0cy5mb3JtYXR0ZXJzW2RlZmF1bHRGb3JtYXRdLFxuICAgICAgLy8gZGVwcmVjYXRlZFxuICAgICAgaW5kaWNlczogZmFsc2UsXG4gICAgICBzZXJpYWxpemVEYXRlOiBmdW5jdGlvbiBzZXJpYWxpemVEYXRlKGRhdGUpIHtcbiAgICAgICAgcmV0dXJuIHRvSVNPLmNhbGwoZGF0ZSk7XG4gICAgICB9LFxuICAgICAgc2tpcE51bGxzOiBmYWxzZSxcbiAgICAgIHN0cmljdE51bGxIYW5kbGluZzogZmFsc2VcbiAgICB9O1xuICAgIHZhciBpc05vbk51bGxpc2hQcmltaXRpdmUgPSBmdW5jdGlvbiBpc05vbk51bGxpc2hQcmltaXRpdmUyKHYpIHtcbiAgICAgIHJldHVybiB0eXBlb2YgdiA9PT0gXCJzdHJpbmdcIiB8fCB0eXBlb2YgdiA9PT0gXCJudW1iZXJcIiB8fCB0eXBlb2YgdiA9PT0gXCJib29sZWFuXCIgfHwgdHlwZW9mIHYgPT09IFwic3ltYm9sXCIgfHwgdHlwZW9mIHYgPT09IFwiYmlnaW50XCI7XG4gICAgfTtcbiAgICB2YXIgc2VudGluZWwgPSB7fTtcbiAgICB2YXIgc3RyaW5naWZ5ID0gZnVuY3Rpb24gc3RyaW5naWZ5MihvYmplY3QsIHByZWZpeCwgZ2VuZXJhdGVBcnJheVByZWZpeCwgY29tbWFSb3VuZFRyaXAsIGFsbG93RW1wdHlBcnJheXMsIHN0cmljdE51bGxIYW5kbGluZywgc2tpcE51bGxzLCBlbmNvZGVEb3RJbktleXMsIGVuY29kZXIsIGZpbHRlciwgc29ydCwgYWxsb3dEb3RzLCBzZXJpYWxpemVEYXRlLCBmb3JtYXQsIGZvcm1hdHRlciwgZW5jb2RlVmFsdWVzT25seSwgY2hhcnNldCwgc2lkZUNoYW5uZWwpIHtcbiAgICAgIHZhciBvYmogPSBvYmplY3Q7XG4gICAgICB2YXIgdG1wU2MgPSBzaWRlQ2hhbm5lbDtcbiAgICAgIHZhciBzdGVwID0gMDtcbiAgICAgIHZhciBmaW5kRmxhZyA9IGZhbHNlO1xuICAgICAgd2hpbGUgKCh0bXBTYyA9IHRtcFNjLmdldChzZW50aW5lbCkpICE9PSB2b2lkIDAgJiYgIWZpbmRGbGFnKSB7XG4gICAgICAgIHZhciBwb3MgPSB0bXBTYy5nZXQob2JqZWN0KTtcbiAgICAgICAgc3RlcCArPSAxO1xuICAgICAgICBpZiAodHlwZW9mIHBvcyAhPT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgICAgIGlmIChwb3MgPT09IHN0ZXApIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBSYW5nZUVycm9yKFwiQ3ljbGljIG9iamVjdCB2YWx1ZVwiKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZmluZEZsYWcgPSB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAodHlwZW9mIHRtcFNjLmdldChzZW50aW5lbCkgPT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgICAgICBzdGVwID0gMDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKHR5cGVvZiBmaWx0ZXIgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICBvYmogPSBmaWx0ZXIocHJlZml4LCBvYmopO1xuICAgICAgfSBlbHNlIGlmIChvYmogaW5zdGFuY2VvZiBEYXRlKSB7XG4gICAgICAgIG9iaiA9IHNlcmlhbGl6ZURhdGUob2JqKTtcbiAgICAgIH0gZWxzZSBpZiAoZ2VuZXJhdGVBcnJheVByZWZpeCA9PT0gXCJjb21tYVwiICYmIGlzQXJyYXkob2JqKSkge1xuICAgICAgICBvYmogPSB1dGlscy5tYXliZU1hcChvYmosIGZ1bmN0aW9uKHZhbHVlMikge1xuICAgICAgICAgIGlmICh2YWx1ZTIgaW5zdGFuY2VvZiBEYXRlKSB7XG4gICAgICAgICAgICByZXR1cm4gc2VyaWFsaXplRGF0ZSh2YWx1ZTIpO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gdmFsdWUyO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIGlmIChvYmogPT09IG51bGwpIHtcbiAgICAgICAgaWYgKHN0cmljdE51bGxIYW5kbGluZykge1xuICAgICAgICAgIHJldHVybiBlbmNvZGVyICYmICFlbmNvZGVWYWx1ZXNPbmx5ID8gZW5jb2RlcihwcmVmaXgsIGRlZmF1bHRzLmVuY29kZXIsIGNoYXJzZXQsIFwia2V5XCIsIGZvcm1hdCkgOiBwcmVmaXg7XG4gICAgICAgIH1cbiAgICAgICAgb2JqID0gXCJcIjtcbiAgICAgIH1cbiAgICAgIGlmIChpc05vbk51bGxpc2hQcmltaXRpdmUob2JqKSB8fCB1dGlscy5pc0J1ZmZlcihvYmopKSB7XG4gICAgICAgIGlmIChlbmNvZGVyKSB7XG4gICAgICAgICAgdmFyIGtleVZhbHVlID0gZW5jb2RlVmFsdWVzT25seSA/IHByZWZpeCA6IGVuY29kZXIocHJlZml4LCBkZWZhdWx0cy5lbmNvZGVyLCBjaGFyc2V0LCBcImtleVwiLCBmb3JtYXQpO1xuICAgICAgICAgIHJldHVybiBbZm9ybWF0dGVyKGtleVZhbHVlKSArIFwiPVwiICsgZm9ybWF0dGVyKGVuY29kZXIob2JqLCBkZWZhdWx0cy5lbmNvZGVyLCBjaGFyc2V0LCBcInZhbHVlXCIsIGZvcm1hdCkpXTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gW2Zvcm1hdHRlcihwcmVmaXgpICsgXCI9XCIgKyBmb3JtYXR0ZXIoU3RyaW5nKG9iaikpXTtcbiAgICAgIH1cbiAgICAgIHZhciB2YWx1ZXMgPSBbXTtcbiAgICAgIGlmICh0eXBlb2Ygb2JqID09PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgICAgIHJldHVybiB2YWx1ZXM7XG4gICAgICB9XG4gICAgICB2YXIgb2JqS2V5cztcbiAgICAgIGlmIChnZW5lcmF0ZUFycmF5UHJlZml4ID09PSBcImNvbW1hXCIgJiYgaXNBcnJheShvYmopKSB7XG4gICAgICAgIGlmIChlbmNvZGVWYWx1ZXNPbmx5ICYmIGVuY29kZXIpIHtcbiAgICAgICAgICBvYmogPSB1dGlscy5tYXliZU1hcChvYmosIGVuY29kZXIpO1xuICAgICAgICB9XG4gICAgICAgIG9iaktleXMgPSBbeyB2YWx1ZTogb2JqLmxlbmd0aCA+IDAgPyBvYmouam9pbihcIixcIikgfHwgbnVsbCA6IHZvaWQgMCB9XTtcbiAgICAgIH0gZWxzZSBpZiAoaXNBcnJheShmaWx0ZXIpKSB7XG4gICAgICAgIG9iaktleXMgPSBmaWx0ZXI7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB2YXIga2V5cyA9IE9iamVjdC5rZXlzKG9iaik7XG4gICAgICAgIG9iaktleXMgPSBzb3J0ID8ga2V5cy5zb3J0KHNvcnQpIDoga2V5cztcbiAgICAgIH1cbiAgICAgIHZhciBlbmNvZGVkUHJlZml4ID0gZW5jb2RlRG90SW5LZXlzID8gU3RyaW5nKHByZWZpeCkucmVwbGFjZSgvXFwuL2csIFwiJTJFXCIpIDogU3RyaW5nKHByZWZpeCk7XG4gICAgICB2YXIgYWRqdXN0ZWRQcmVmaXggPSBjb21tYVJvdW5kVHJpcCAmJiBpc0FycmF5KG9iaikgJiYgb2JqLmxlbmd0aCA9PT0gMSA/IGVuY29kZWRQcmVmaXggKyBcIltdXCIgOiBlbmNvZGVkUHJlZml4O1xuICAgICAgaWYgKGFsbG93RW1wdHlBcnJheXMgJiYgaXNBcnJheShvYmopICYmIG9iai5sZW5ndGggPT09IDApIHtcbiAgICAgICAgcmV0dXJuIGFkanVzdGVkUHJlZml4ICsgXCJbXVwiO1xuICAgICAgfVxuICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBvYmpLZXlzLmxlbmd0aDsgKytqKSB7XG4gICAgICAgIHZhciBrZXkgPSBvYmpLZXlzW2pdO1xuICAgICAgICB2YXIgdmFsdWUgPSB0eXBlb2Yga2V5ID09PSBcIm9iamVjdFwiICYmIGtleSAmJiB0eXBlb2Yga2V5LnZhbHVlICE9PSBcInVuZGVmaW5lZFwiID8ga2V5LnZhbHVlIDogb2JqW2tleV07XG4gICAgICAgIGlmIChza2lwTnVsbHMgJiYgdmFsdWUgPT09IG51bGwpIHtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgZW5jb2RlZEtleSA9IGFsbG93RG90cyAmJiBlbmNvZGVEb3RJbktleXMgPyBTdHJpbmcoa2V5KS5yZXBsYWNlKC9cXC4vZywgXCIlMkVcIikgOiBTdHJpbmcoa2V5KTtcbiAgICAgICAgdmFyIGtleVByZWZpeCA9IGlzQXJyYXkob2JqKSA/IHR5cGVvZiBnZW5lcmF0ZUFycmF5UHJlZml4ID09PSBcImZ1bmN0aW9uXCIgPyBnZW5lcmF0ZUFycmF5UHJlZml4KGFkanVzdGVkUHJlZml4LCBlbmNvZGVkS2V5KSA6IGFkanVzdGVkUHJlZml4IDogYWRqdXN0ZWRQcmVmaXggKyAoYWxsb3dEb3RzID8gXCIuXCIgKyBlbmNvZGVkS2V5IDogXCJbXCIgKyBlbmNvZGVkS2V5ICsgXCJdXCIpO1xuICAgICAgICBzaWRlQ2hhbm5lbC5zZXQob2JqZWN0LCBzdGVwKTtcbiAgICAgICAgdmFyIHZhbHVlU2lkZUNoYW5uZWwgPSBnZXRTaWRlQ2hhbm5lbCgpO1xuICAgICAgICB2YWx1ZVNpZGVDaGFubmVsLnNldChzZW50aW5lbCwgc2lkZUNoYW5uZWwpO1xuICAgICAgICBwdXNoVG9BcnJheSh2YWx1ZXMsIHN0cmluZ2lmeTIoXG4gICAgICAgICAgdmFsdWUsXG4gICAgICAgICAga2V5UHJlZml4LFxuICAgICAgICAgIGdlbmVyYXRlQXJyYXlQcmVmaXgsXG4gICAgICAgICAgY29tbWFSb3VuZFRyaXAsXG4gICAgICAgICAgYWxsb3dFbXB0eUFycmF5cyxcbiAgICAgICAgICBzdHJpY3ROdWxsSGFuZGxpbmcsXG4gICAgICAgICAgc2tpcE51bGxzLFxuICAgICAgICAgIGVuY29kZURvdEluS2V5cyxcbiAgICAgICAgICBnZW5lcmF0ZUFycmF5UHJlZml4ID09PSBcImNvbW1hXCIgJiYgZW5jb2RlVmFsdWVzT25seSAmJiBpc0FycmF5KG9iaikgPyBudWxsIDogZW5jb2RlcixcbiAgICAgICAgICBmaWx0ZXIsXG4gICAgICAgICAgc29ydCxcbiAgICAgICAgICBhbGxvd0RvdHMsXG4gICAgICAgICAgc2VyaWFsaXplRGF0ZSxcbiAgICAgICAgICBmb3JtYXQsXG4gICAgICAgICAgZm9ybWF0dGVyLFxuICAgICAgICAgIGVuY29kZVZhbHVlc09ubHksXG4gICAgICAgICAgY2hhcnNldCxcbiAgICAgICAgICB2YWx1ZVNpZGVDaGFubmVsXG4gICAgICAgICkpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHZhbHVlcztcbiAgICB9O1xuICAgIHZhciBub3JtYWxpemVTdHJpbmdpZnlPcHRpb25zID0gZnVuY3Rpb24gbm9ybWFsaXplU3RyaW5naWZ5T3B0aW9uczIob3B0cykge1xuICAgICAgaWYgKCFvcHRzKSB7XG4gICAgICAgIHJldHVybiBkZWZhdWx0cztcbiAgICAgIH1cbiAgICAgIGlmICh0eXBlb2Ygb3B0cy5hbGxvd0VtcHR5QXJyYXlzICE9PSBcInVuZGVmaW5lZFwiICYmIHR5cGVvZiBvcHRzLmFsbG93RW1wdHlBcnJheXMgIT09IFwiYm9vbGVhblwiKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJgYWxsb3dFbXB0eUFycmF5c2Agb3B0aW9uIGNhbiBvbmx5IGJlIGB0cnVlYCBvciBgZmFsc2VgLCB3aGVuIHByb3ZpZGVkXCIpO1xuICAgICAgfVxuICAgICAgaWYgKHR5cGVvZiBvcHRzLmVuY29kZURvdEluS2V5cyAhPT0gXCJ1bmRlZmluZWRcIiAmJiB0eXBlb2Ygb3B0cy5lbmNvZGVEb3RJbktleXMgIT09IFwiYm9vbGVhblwiKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJgZW5jb2RlRG90SW5LZXlzYCBvcHRpb24gY2FuIG9ubHkgYmUgYHRydWVgIG9yIGBmYWxzZWAsIHdoZW4gcHJvdmlkZWRcIik7XG4gICAgICB9XG4gICAgICBpZiAob3B0cy5lbmNvZGVyICE9PSBudWxsICYmIHR5cGVvZiBvcHRzLmVuY29kZXIgIT09IFwidW5kZWZpbmVkXCIgJiYgdHlwZW9mIG9wdHMuZW5jb2RlciAhPT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJFbmNvZGVyIGhhcyB0byBiZSBhIGZ1bmN0aW9uLlwiKTtcbiAgICAgIH1cbiAgICAgIHZhciBjaGFyc2V0ID0gb3B0cy5jaGFyc2V0IHx8IGRlZmF1bHRzLmNoYXJzZXQ7XG4gICAgICBpZiAodHlwZW9mIG9wdHMuY2hhcnNldCAhPT0gXCJ1bmRlZmluZWRcIiAmJiBvcHRzLmNoYXJzZXQgIT09IFwidXRmLThcIiAmJiBvcHRzLmNoYXJzZXQgIT09IFwiaXNvLTg4NTktMVwiKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJUaGUgY2hhcnNldCBvcHRpb24gbXVzdCBiZSBlaXRoZXIgdXRmLTgsIGlzby04ODU5LTEsIG9yIHVuZGVmaW5lZFwiKTtcbiAgICAgIH1cbiAgICAgIHZhciBmb3JtYXQgPSBmb3JtYXRzW1wiZGVmYXVsdFwiXTtcbiAgICAgIGlmICh0eXBlb2Ygb3B0cy5mb3JtYXQgIT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgICAgaWYgKCFoYXMuY2FsbChmb3JtYXRzLmZvcm1hdHRlcnMsIG9wdHMuZm9ybWF0KSkge1xuICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJVbmtub3duIGZvcm1hdCBvcHRpb24gcHJvdmlkZWQuXCIpO1xuICAgICAgICB9XG4gICAgICAgIGZvcm1hdCA9IG9wdHMuZm9ybWF0O1xuICAgICAgfVxuICAgICAgdmFyIGZvcm1hdHRlciA9IGZvcm1hdHMuZm9ybWF0dGVyc1tmb3JtYXRdO1xuICAgICAgdmFyIGZpbHRlciA9IGRlZmF1bHRzLmZpbHRlcjtcbiAgICAgIGlmICh0eXBlb2Ygb3B0cy5maWx0ZXIgPT09IFwiZnVuY3Rpb25cIiB8fCBpc0FycmF5KG9wdHMuZmlsdGVyKSkge1xuICAgICAgICBmaWx0ZXIgPSBvcHRzLmZpbHRlcjtcbiAgICAgIH1cbiAgICAgIHZhciBhcnJheUZvcm1hdDtcbiAgICAgIGlmIChvcHRzLmFycmF5Rm9ybWF0IGluIGFycmF5UHJlZml4R2VuZXJhdG9ycykge1xuICAgICAgICBhcnJheUZvcm1hdCA9IG9wdHMuYXJyYXlGb3JtYXQ7XG4gICAgICB9IGVsc2UgaWYgKFwiaW5kaWNlc1wiIGluIG9wdHMpIHtcbiAgICAgICAgYXJyYXlGb3JtYXQgPSBvcHRzLmluZGljZXMgPyBcImluZGljZXNcIiA6IFwicmVwZWF0XCI7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBhcnJheUZvcm1hdCA9IGRlZmF1bHRzLmFycmF5Rm9ybWF0O1xuICAgICAgfVxuICAgICAgaWYgKFwiY29tbWFSb3VuZFRyaXBcIiBpbiBvcHRzICYmIHR5cGVvZiBvcHRzLmNvbW1hUm91bmRUcmlwICE9PSBcImJvb2xlYW5cIikge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiYGNvbW1hUm91bmRUcmlwYCBtdXN0IGJlIGEgYm9vbGVhbiwgb3IgYWJzZW50XCIpO1xuICAgICAgfVxuICAgICAgdmFyIGFsbG93RG90cyA9IHR5cGVvZiBvcHRzLmFsbG93RG90cyA9PT0gXCJ1bmRlZmluZWRcIiA/IG9wdHMuZW5jb2RlRG90SW5LZXlzID09PSB0cnVlID8gdHJ1ZSA6IGRlZmF1bHRzLmFsbG93RG90cyA6ICEhb3B0cy5hbGxvd0RvdHM7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBhZGRRdWVyeVByZWZpeDogdHlwZW9mIG9wdHMuYWRkUXVlcnlQcmVmaXggPT09IFwiYm9vbGVhblwiID8gb3B0cy5hZGRRdWVyeVByZWZpeCA6IGRlZmF1bHRzLmFkZFF1ZXJ5UHJlZml4LFxuICAgICAgICBhbGxvd0RvdHMsXG4gICAgICAgIGFsbG93RW1wdHlBcnJheXM6IHR5cGVvZiBvcHRzLmFsbG93RW1wdHlBcnJheXMgPT09IFwiYm9vbGVhblwiID8gISFvcHRzLmFsbG93RW1wdHlBcnJheXMgOiBkZWZhdWx0cy5hbGxvd0VtcHR5QXJyYXlzLFxuICAgICAgICBhcnJheUZvcm1hdCxcbiAgICAgICAgY2hhcnNldCxcbiAgICAgICAgY2hhcnNldFNlbnRpbmVsOiB0eXBlb2Ygb3B0cy5jaGFyc2V0U2VudGluZWwgPT09IFwiYm9vbGVhblwiID8gb3B0cy5jaGFyc2V0U2VudGluZWwgOiBkZWZhdWx0cy5jaGFyc2V0U2VudGluZWwsXG4gICAgICAgIGNvbW1hUm91bmRUcmlwOiAhIW9wdHMuY29tbWFSb3VuZFRyaXAsXG4gICAgICAgIGRlbGltaXRlcjogdHlwZW9mIG9wdHMuZGVsaW1pdGVyID09PSBcInVuZGVmaW5lZFwiID8gZGVmYXVsdHMuZGVsaW1pdGVyIDogb3B0cy5kZWxpbWl0ZXIsXG4gICAgICAgIGVuY29kZTogdHlwZW9mIG9wdHMuZW5jb2RlID09PSBcImJvb2xlYW5cIiA/IG9wdHMuZW5jb2RlIDogZGVmYXVsdHMuZW5jb2RlLFxuICAgICAgICBlbmNvZGVEb3RJbktleXM6IHR5cGVvZiBvcHRzLmVuY29kZURvdEluS2V5cyA9PT0gXCJib29sZWFuXCIgPyBvcHRzLmVuY29kZURvdEluS2V5cyA6IGRlZmF1bHRzLmVuY29kZURvdEluS2V5cyxcbiAgICAgICAgZW5jb2RlcjogdHlwZW9mIG9wdHMuZW5jb2RlciA9PT0gXCJmdW5jdGlvblwiID8gb3B0cy5lbmNvZGVyIDogZGVmYXVsdHMuZW5jb2RlcixcbiAgICAgICAgZW5jb2RlVmFsdWVzT25seTogdHlwZW9mIG9wdHMuZW5jb2RlVmFsdWVzT25seSA9PT0gXCJib29sZWFuXCIgPyBvcHRzLmVuY29kZVZhbHVlc09ubHkgOiBkZWZhdWx0cy5lbmNvZGVWYWx1ZXNPbmx5LFxuICAgICAgICBmaWx0ZXIsXG4gICAgICAgIGZvcm1hdCxcbiAgICAgICAgZm9ybWF0dGVyLFxuICAgICAgICBzZXJpYWxpemVEYXRlOiB0eXBlb2Ygb3B0cy5zZXJpYWxpemVEYXRlID09PSBcImZ1bmN0aW9uXCIgPyBvcHRzLnNlcmlhbGl6ZURhdGUgOiBkZWZhdWx0cy5zZXJpYWxpemVEYXRlLFxuICAgICAgICBza2lwTnVsbHM6IHR5cGVvZiBvcHRzLnNraXBOdWxscyA9PT0gXCJib29sZWFuXCIgPyBvcHRzLnNraXBOdWxscyA6IGRlZmF1bHRzLnNraXBOdWxscyxcbiAgICAgICAgc29ydDogdHlwZW9mIG9wdHMuc29ydCA9PT0gXCJmdW5jdGlvblwiID8gb3B0cy5zb3J0IDogbnVsbCxcbiAgICAgICAgc3RyaWN0TnVsbEhhbmRsaW5nOiB0eXBlb2Ygb3B0cy5zdHJpY3ROdWxsSGFuZGxpbmcgPT09IFwiYm9vbGVhblwiID8gb3B0cy5zdHJpY3ROdWxsSGFuZGxpbmcgOiBkZWZhdWx0cy5zdHJpY3ROdWxsSGFuZGxpbmdcbiAgICAgIH07XG4gICAgfTtcbiAgICBtb2R1bGUyLmV4cG9ydHMgPSBmdW5jdGlvbihvYmplY3QsIG9wdHMpIHtcbiAgICAgIHZhciBvYmogPSBvYmplY3Q7XG4gICAgICB2YXIgb3B0aW9ucyA9IG5vcm1hbGl6ZVN0cmluZ2lmeU9wdGlvbnMob3B0cyk7XG4gICAgICB2YXIgb2JqS2V5cztcbiAgICAgIHZhciBmaWx0ZXI7XG4gICAgICBpZiAodHlwZW9mIG9wdGlvbnMuZmlsdGVyID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgZmlsdGVyID0gb3B0aW9ucy5maWx0ZXI7XG4gICAgICAgIG9iaiA9IGZpbHRlcihcIlwiLCBvYmopO1xuICAgICAgfSBlbHNlIGlmIChpc0FycmF5KG9wdGlvbnMuZmlsdGVyKSkge1xuICAgICAgICBmaWx0ZXIgPSBvcHRpb25zLmZpbHRlcjtcbiAgICAgICAgb2JqS2V5cyA9IGZpbHRlcjtcbiAgICAgIH1cbiAgICAgIHZhciBrZXlzID0gW107XG4gICAgICBpZiAodHlwZW9mIG9iaiAhPT0gXCJvYmplY3RcIiB8fCBvYmogPT09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIFwiXCI7XG4gICAgICB9XG4gICAgICB2YXIgZ2VuZXJhdGVBcnJheVByZWZpeCA9IGFycmF5UHJlZml4R2VuZXJhdG9yc1tvcHRpb25zLmFycmF5Rm9ybWF0XTtcbiAgICAgIHZhciBjb21tYVJvdW5kVHJpcCA9IGdlbmVyYXRlQXJyYXlQcmVmaXggPT09IFwiY29tbWFcIiAmJiBvcHRpb25zLmNvbW1hUm91bmRUcmlwO1xuICAgICAgaWYgKCFvYmpLZXlzKSB7XG4gICAgICAgIG9iaktleXMgPSBPYmplY3Qua2V5cyhvYmopO1xuICAgICAgfVxuICAgICAgaWYgKG9wdGlvbnMuc29ydCkge1xuICAgICAgICBvYmpLZXlzLnNvcnQob3B0aW9ucy5zb3J0KTtcbiAgICAgIH1cbiAgICAgIHZhciBzaWRlQ2hhbm5lbCA9IGdldFNpZGVDaGFubmVsKCk7XG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IG9iaktleXMubGVuZ3RoOyArK2kpIHtcbiAgICAgICAgdmFyIGtleSA9IG9iaktleXNbaV07XG4gICAgICAgIHZhciB2YWx1ZSA9IG9ialtrZXldO1xuICAgICAgICBpZiAob3B0aW9ucy5za2lwTnVsbHMgJiYgdmFsdWUgPT09IG51bGwpIHtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICBwdXNoVG9BcnJheShrZXlzLCBzdHJpbmdpZnkoXG4gICAgICAgICAgdmFsdWUsXG4gICAgICAgICAga2V5LFxuICAgICAgICAgIGdlbmVyYXRlQXJyYXlQcmVmaXgsXG4gICAgICAgICAgY29tbWFSb3VuZFRyaXAsXG4gICAgICAgICAgb3B0aW9ucy5hbGxvd0VtcHR5QXJyYXlzLFxuICAgICAgICAgIG9wdGlvbnMuc3RyaWN0TnVsbEhhbmRsaW5nLFxuICAgICAgICAgIG9wdGlvbnMuc2tpcE51bGxzLFxuICAgICAgICAgIG9wdGlvbnMuZW5jb2RlRG90SW5LZXlzLFxuICAgICAgICAgIG9wdGlvbnMuZW5jb2RlID8gb3B0aW9ucy5lbmNvZGVyIDogbnVsbCxcbiAgICAgICAgICBvcHRpb25zLmZpbHRlcixcbiAgICAgICAgICBvcHRpb25zLnNvcnQsXG4gICAgICAgICAgb3B0aW9ucy5hbGxvd0RvdHMsXG4gICAgICAgICAgb3B0aW9ucy5zZXJpYWxpemVEYXRlLFxuICAgICAgICAgIG9wdGlvbnMuZm9ybWF0LFxuICAgICAgICAgIG9wdGlvbnMuZm9ybWF0dGVyLFxuICAgICAgICAgIG9wdGlvbnMuZW5jb2RlVmFsdWVzT25seSxcbiAgICAgICAgICBvcHRpb25zLmNoYXJzZXQsXG4gICAgICAgICAgc2lkZUNoYW5uZWxcbiAgICAgICAgKSk7XG4gICAgICB9XG4gICAgICB2YXIgam9pbmVkID0ga2V5cy5qb2luKG9wdGlvbnMuZGVsaW1pdGVyKTtcbiAgICAgIHZhciBwcmVmaXggPSBvcHRpb25zLmFkZFF1ZXJ5UHJlZml4ID09PSB0cnVlID8gXCI/XCIgOiBcIlwiO1xuICAgICAgaWYgKG9wdGlvbnMuY2hhcnNldFNlbnRpbmVsKSB7XG4gICAgICAgIGlmIChvcHRpb25zLmNoYXJzZXQgPT09IFwiaXNvLTg4NTktMVwiKSB7XG4gICAgICAgICAgcHJlZml4ICs9IFwidXRmOD0lMjYlMjMxMDAwMyUzQiZcIjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBwcmVmaXggKz0gXCJ1dGY4PSVFMiU5QyU5MyZcIjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIGpvaW5lZC5sZW5ndGggPiAwID8gcHJlZml4ICsgam9pbmVkIDogXCJcIjtcbiAgICB9O1xuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL3FzL2xpYi9wYXJzZS5qc1xudmFyIHJlcXVpcmVfcGFyc2UgPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvcXMvbGliL3BhcnNlLmpzXCIoZXhwb3J0czIsIG1vZHVsZTIpIHtcbiAgICBcInVzZSBzdHJpY3RcIjtcbiAgICB2YXIgdXRpbHMgPSByZXF1aXJlX3V0aWxzMigpO1xuICAgIHZhciBoYXMgPSBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O1xuICAgIHZhciBpc0FycmF5ID0gQXJyYXkuaXNBcnJheTtcbiAgICB2YXIgZGVmYXVsdHMgPSB7XG4gICAgICBhbGxvd0RvdHM6IGZhbHNlLFxuICAgICAgYWxsb3dFbXB0eUFycmF5czogZmFsc2UsXG4gICAgICBhbGxvd1Byb3RvdHlwZXM6IGZhbHNlLFxuICAgICAgYWxsb3dTcGFyc2U6IGZhbHNlLFxuICAgICAgYXJyYXlMaW1pdDogMjAsXG4gICAgICBjaGFyc2V0OiBcInV0Zi04XCIsXG4gICAgICBjaGFyc2V0U2VudGluZWw6IGZhbHNlLFxuICAgICAgY29tbWE6IGZhbHNlLFxuICAgICAgZGVjb2RlRG90SW5LZXlzOiBmYWxzZSxcbiAgICAgIGRlY29kZXI6IHV0aWxzLmRlY29kZSxcbiAgICAgIGRlbGltaXRlcjogXCImXCIsXG4gICAgICBkZXB0aDogNSxcbiAgICAgIGR1cGxpY2F0ZXM6IFwiY29tYmluZVwiLFxuICAgICAgaWdub3JlUXVlcnlQcmVmaXg6IGZhbHNlLFxuICAgICAgaW50ZXJwcmV0TnVtZXJpY0VudGl0aWVzOiBmYWxzZSxcbiAgICAgIHBhcmFtZXRlckxpbWl0OiAxZTMsXG4gICAgICBwYXJzZUFycmF5czogdHJ1ZSxcbiAgICAgIHBsYWluT2JqZWN0czogZmFsc2UsXG4gICAgICBzdHJpY3REZXB0aDogZmFsc2UsXG4gICAgICBzdHJpY3ROdWxsSGFuZGxpbmc6IGZhbHNlLFxuICAgICAgdGhyb3dPbkxpbWl0RXhjZWVkZWQ6IGZhbHNlXG4gICAgfTtcbiAgICB2YXIgaW50ZXJwcmV0TnVtZXJpY0VudGl0aWVzID0gZnVuY3Rpb24oc3RyKSB7XG4gICAgICByZXR1cm4gc3RyLnJlcGxhY2UoLyYjKFxcZCspOy9nLCBmdW5jdGlvbigkMCwgbnVtYmVyU3RyKSB7XG4gICAgICAgIHJldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlKHBhcnNlSW50KG51bWJlclN0ciwgMTApKTtcbiAgICAgIH0pO1xuICAgIH07XG4gICAgdmFyIHBhcnNlQXJyYXlWYWx1ZSA9IGZ1bmN0aW9uKHZhbCwgb3B0aW9ucywgY3VycmVudEFycmF5TGVuZ3RoKSB7XG4gICAgICBpZiAodmFsICYmIHR5cGVvZiB2YWwgPT09IFwic3RyaW5nXCIgJiYgb3B0aW9ucy5jb21tYSAmJiB2YWwuaW5kZXhPZihcIixcIikgPiAtMSkge1xuICAgICAgICByZXR1cm4gdmFsLnNwbGl0KFwiLFwiKTtcbiAgICAgIH1cbiAgICAgIGlmIChvcHRpb25zLnRocm93T25MaW1pdEV4Y2VlZGVkICYmIGN1cnJlbnRBcnJheUxlbmd0aCA+PSBvcHRpb25zLmFycmF5TGltaXQpIHtcbiAgICAgICAgdGhyb3cgbmV3IFJhbmdlRXJyb3IoXCJBcnJheSBsaW1pdCBleGNlZWRlZC4gT25seSBcIiArIG9wdGlvbnMuYXJyYXlMaW1pdCArIFwiIGVsZW1lbnRcIiArIChvcHRpb25zLmFycmF5TGltaXQgPT09IDEgPyBcIlwiIDogXCJzXCIpICsgXCIgYWxsb3dlZCBpbiBhbiBhcnJheS5cIik7XG4gICAgICB9XG4gICAgICByZXR1cm4gdmFsO1xuICAgIH07XG4gICAgdmFyIGlzb1NlbnRpbmVsID0gXCJ1dGY4PSUyNiUyMzEwMDAzJTNCXCI7XG4gICAgdmFyIGNoYXJzZXRTZW50aW5lbCA9IFwidXRmOD0lRTIlOUMlOTNcIjtcbiAgICB2YXIgcGFyc2VWYWx1ZXMgPSBmdW5jdGlvbiBwYXJzZVF1ZXJ5U3RyaW5nVmFsdWVzKHN0ciwgb3B0aW9ucykge1xuICAgICAgdmFyIG9iaiA9IHsgX19wcm90b19fOiBudWxsIH07XG4gICAgICB2YXIgY2xlYW5TdHIgPSBvcHRpb25zLmlnbm9yZVF1ZXJ5UHJlZml4ID8gc3RyLnJlcGxhY2UoL15cXD8vLCBcIlwiKSA6IHN0cjtcbiAgICAgIGNsZWFuU3RyID0gY2xlYW5TdHIucmVwbGFjZSgvJTVCL2dpLCBcIltcIikucmVwbGFjZSgvJTVEL2dpLCBcIl1cIik7XG4gICAgICB2YXIgbGltaXQgPSBvcHRpb25zLnBhcmFtZXRlckxpbWl0ID09PSBJbmZpbml0eSA/IHZvaWQgMCA6IG9wdGlvbnMucGFyYW1ldGVyTGltaXQ7XG4gICAgICB2YXIgcGFydHMgPSBjbGVhblN0ci5zcGxpdChcbiAgICAgICAgb3B0aW9ucy5kZWxpbWl0ZXIsXG4gICAgICAgIG9wdGlvbnMudGhyb3dPbkxpbWl0RXhjZWVkZWQgPyBsaW1pdCArIDEgOiBsaW1pdFxuICAgICAgKTtcbiAgICAgIGlmIChvcHRpb25zLnRocm93T25MaW1pdEV4Y2VlZGVkICYmIHBhcnRzLmxlbmd0aCA+IGxpbWl0KSB7XG4gICAgICAgIHRocm93IG5ldyBSYW5nZUVycm9yKFwiUGFyYW1ldGVyIGxpbWl0IGV4Y2VlZGVkLiBPbmx5IFwiICsgbGltaXQgKyBcIiBwYXJhbWV0ZXJcIiArIChsaW1pdCA9PT0gMSA/IFwiXCIgOiBcInNcIikgKyBcIiBhbGxvd2VkLlwiKTtcbiAgICAgIH1cbiAgICAgIHZhciBza2lwSW5kZXggPSAtMTtcbiAgICAgIHZhciBpO1xuICAgICAgdmFyIGNoYXJzZXQgPSBvcHRpb25zLmNoYXJzZXQ7XG4gICAgICBpZiAob3B0aW9ucy5jaGFyc2V0U2VudGluZWwpIHtcbiAgICAgICAgZm9yIChpID0gMDsgaSA8IHBhcnRzLmxlbmd0aDsgKytpKSB7XG4gICAgICAgICAgaWYgKHBhcnRzW2ldLmluZGV4T2YoXCJ1dGY4PVwiKSA9PT0gMCkge1xuICAgICAgICAgICAgaWYgKHBhcnRzW2ldID09PSBjaGFyc2V0U2VudGluZWwpIHtcbiAgICAgICAgICAgICAgY2hhcnNldCA9IFwidXRmLThcIjtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAocGFydHNbaV0gPT09IGlzb1NlbnRpbmVsKSB7XG4gICAgICAgICAgICAgIGNoYXJzZXQgPSBcImlzby04ODU5LTFcIjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHNraXBJbmRleCA9IGk7XG4gICAgICAgICAgICBpID0gcGFydHMubGVuZ3RoO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgZm9yIChpID0gMDsgaSA8IHBhcnRzLmxlbmd0aDsgKytpKSB7XG4gICAgICAgIGlmIChpID09PSBza2lwSW5kZXgpIHtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgcGFydCA9IHBhcnRzW2ldO1xuICAgICAgICB2YXIgYnJhY2tldEVxdWFsc1BvcyA9IHBhcnQuaW5kZXhPZihcIl09XCIpO1xuICAgICAgICB2YXIgcG9zID0gYnJhY2tldEVxdWFsc1BvcyA9PT0gLTEgPyBwYXJ0LmluZGV4T2YoXCI9XCIpIDogYnJhY2tldEVxdWFsc1BvcyArIDE7XG4gICAgICAgIHZhciBrZXk7XG4gICAgICAgIHZhciB2YWw7XG4gICAgICAgIGlmIChwb3MgPT09IC0xKSB7XG4gICAgICAgICAga2V5ID0gb3B0aW9ucy5kZWNvZGVyKHBhcnQsIGRlZmF1bHRzLmRlY29kZXIsIGNoYXJzZXQsIFwia2V5XCIpO1xuICAgICAgICAgIHZhbCA9IG9wdGlvbnMuc3RyaWN0TnVsbEhhbmRsaW5nID8gbnVsbCA6IFwiXCI7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAga2V5ID0gb3B0aW9ucy5kZWNvZGVyKHBhcnQuc2xpY2UoMCwgcG9zKSwgZGVmYXVsdHMuZGVjb2RlciwgY2hhcnNldCwgXCJrZXlcIik7XG4gICAgICAgICAgdmFsID0gdXRpbHMubWF5YmVNYXAoXG4gICAgICAgICAgICBwYXJzZUFycmF5VmFsdWUoXG4gICAgICAgICAgICAgIHBhcnQuc2xpY2UocG9zICsgMSksXG4gICAgICAgICAgICAgIG9wdGlvbnMsXG4gICAgICAgICAgICAgIGlzQXJyYXkob2JqW2tleV0pID8gb2JqW2tleV0ubGVuZ3RoIDogMFxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIGZ1bmN0aW9uKGVuY29kZWRWYWwpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIG9wdGlvbnMuZGVjb2RlcihlbmNvZGVkVmFsLCBkZWZhdWx0cy5kZWNvZGVyLCBjaGFyc2V0LCBcInZhbHVlXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHZhbCAmJiBvcHRpb25zLmludGVycHJldE51bWVyaWNFbnRpdGllcyAmJiBjaGFyc2V0ID09PSBcImlzby04ODU5LTFcIikge1xuICAgICAgICAgIHZhbCA9IGludGVycHJldE51bWVyaWNFbnRpdGllcyhTdHJpbmcodmFsKSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHBhcnQuaW5kZXhPZihcIltdPVwiKSA+IC0xKSB7XG4gICAgICAgICAgdmFsID0gaXNBcnJheSh2YWwpID8gW3ZhbF0gOiB2YWw7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGV4aXN0aW5nID0gaGFzLmNhbGwob2JqLCBrZXkpO1xuICAgICAgICBpZiAoZXhpc3RpbmcgJiYgb3B0aW9ucy5kdXBsaWNhdGVzID09PSBcImNvbWJpbmVcIikge1xuICAgICAgICAgIG9ialtrZXldID0gdXRpbHMuY29tYmluZShvYmpba2V5XSwgdmFsKTtcbiAgICAgICAgfSBlbHNlIGlmICghZXhpc3RpbmcgfHwgb3B0aW9ucy5kdXBsaWNhdGVzID09PSBcImxhc3RcIikge1xuICAgICAgICAgIG9ialtrZXldID0gdmFsO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gb2JqO1xuICAgIH07XG4gICAgdmFyIHBhcnNlT2JqZWN0ID0gZnVuY3Rpb24oY2hhaW4sIHZhbCwgb3B0aW9ucywgdmFsdWVzUGFyc2VkKSB7XG4gICAgICB2YXIgY3VycmVudEFycmF5TGVuZ3RoID0gMDtcbiAgICAgIGlmIChjaGFpbi5sZW5ndGggPiAwICYmIGNoYWluW2NoYWluLmxlbmd0aCAtIDFdID09PSBcIltdXCIpIHtcbiAgICAgICAgdmFyIHBhcmVudEtleSA9IGNoYWluLnNsaWNlKDAsIC0xKS5qb2luKFwiXCIpO1xuICAgICAgICBjdXJyZW50QXJyYXlMZW5ndGggPSBBcnJheS5pc0FycmF5KHZhbCkgJiYgdmFsW3BhcmVudEtleV0gPyB2YWxbcGFyZW50S2V5XS5sZW5ndGggOiAwO1xuICAgICAgfVxuICAgICAgdmFyIGxlYWYgPSB2YWx1ZXNQYXJzZWQgPyB2YWwgOiBwYXJzZUFycmF5VmFsdWUodmFsLCBvcHRpb25zLCBjdXJyZW50QXJyYXlMZW5ndGgpO1xuICAgICAgZm9yICh2YXIgaSA9IGNoYWluLmxlbmd0aCAtIDE7IGkgPj0gMDsgLS1pKSB7XG4gICAgICAgIHZhciBvYmo7XG4gICAgICAgIHZhciByb290ID0gY2hhaW5baV07XG4gICAgICAgIGlmIChyb290ID09PSBcIltdXCIgJiYgb3B0aW9ucy5wYXJzZUFycmF5cykge1xuICAgICAgICAgIG9iaiA9IG9wdGlvbnMuYWxsb3dFbXB0eUFycmF5cyAmJiAobGVhZiA9PT0gXCJcIiB8fCBvcHRpb25zLnN0cmljdE51bGxIYW5kbGluZyAmJiBsZWFmID09PSBudWxsKSA/IFtdIDogdXRpbHMuY29tYmluZShbXSwgbGVhZik7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgb2JqID0gb3B0aW9ucy5wbGFpbk9iamVjdHMgPyB7IF9fcHJvdG9fXzogbnVsbCB9IDoge307XG4gICAgICAgICAgdmFyIGNsZWFuUm9vdCA9IHJvb3QuY2hhckF0KDApID09PSBcIltcIiAmJiByb290LmNoYXJBdChyb290Lmxlbmd0aCAtIDEpID09PSBcIl1cIiA/IHJvb3Quc2xpY2UoMSwgLTEpIDogcm9vdDtcbiAgICAgICAgICB2YXIgZGVjb2RlZFJvb3QgPSBvcHRpb25zLmRlY29kZURvdEluS2V5cyA/IGNsZWFuUm9vdC5yZXBsYWNlKC8lMkUvZywgXCIuXCIpIDogY2xlYW5Sb290O1xuICAgICAgICAgIHZhciBpbmRleCA9IHBhcnNlSW50KGRlY29kZWRSb290LCAxMCk7XG4gICAgICAgICAgaWYgKCFvcHRpb25zLnBhcnNlQXJyYXlzICYmIGRlY29kZWRSb290ID09PSBcIlwiKSB7XG4gICAgICAgICAgICBvYmogPSB7IDA6IGxlYWYgfTtcbiAgICAgICAgICB9IGVsc2UgaWYgKCFpc05hTihpbmRleCkgJiYgcm9vdCAhPT0gZGVjb2RlZFJvb3QgJiYgU3RyaW5nKGluZGV4KSA9PT0gZGVjb2RlZFJvb3QgJiYgaW5kZXggPj0gMCAmJiAob3B0aW9ucy5wYXJzZUFycmF5cyAmJiBpbmRleCA8PSBvcHRpb25zLmFycmF5TGltaXQpKSB7XG4gICAgICAgICAgICBvYmogPSBbXTtcbiAgICAgICAgICAgIG9ialtpbmRleF0gPSBsZWFmO1xuICAgICAgICAgIH0gZWxzZSBpZiAoZGVjb2RlZFJvb3QgIT09IFwiX19wcm90b19fXCIpIHtcbiAgICAgICAgICAgIG9ialtkZWNvZGVkUm9vdF0gPSBsZWFmO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBsZWFmID0gb2JqO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGxlYWY7XG4gICAgfTtcbiAgICB2YXIgcGFyc2VLZXlzID0gZnVuY3Rpb24gcGFyc2VRdWVyeVN0cmluZ0tleXMoZ2l2ZW5LZXksIHZhbCwgb3B0aW9ucywgdmFsdWVzUGFyc2VkKSB7XG4gICAgICBpZiAoIWdpdmVuS2V5KSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHZhciBrZXkgPSBvcHRpb25zLmFsbG93RG90cyA/IGdpdmVuS2V5LnJlcGxhY2UoL1xcLihbXi5bXSspL2csIFwiWyQxXVwiKSA6IGdpdmVuS2V5O1xuICAgICAgdmFyIGJyYWNrZXRzID0gLyhcXFtbXltcXF1dKl0pLztcbiAgICAgIHZhciBjaGlsZCA9IC8oXFxbW15bXFxdXSpdKS9nO1xuICAgICAgdmFyIHNlZ21lbnQgPSBvcHRpb25zLmRlcHRoID4gMCAmJiBicmFja2V0cy5leGVjKGtleSk7XG4gICAgICB2YXIgcGFyZW50ID0gc2VnbWVudCA/IGtleS5zbGljZSgwLCBzZWdtZW50LmluZGV4KSA6IGtleTtcbiAgICAgIHZhciBrZXlzID0gW107XG4gICAgICBpZiAocGFyZW50KSB7XG4gICAgICAgIGlmICghb3B0aW9ucy5wbGFpbk9iamVjdHMgJiYgaGFzLmNhbGwoT2JqZWN0LnByb3RvdHlwZSwgcGFyZW50KSkge1xuICAgICAgICAgIGlmICghb3B0aW9ucy5hbGxvd1Byb3RvdHlwZXMpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAga2V5cy5wdXNoKHBhcmVudCk7XG4gICAgICB9XG4gICAgICB2YXIgaSA9IDA7XG4gICAgICB3aGlsZSAob3B0aW9ucy5kZXB0aCA+IDAgJiYgKHNlZ21lbnQgPSBjaGlsZC5leGVjKGtleSkpICE9PSBudWxsICYmIGkgPCBvcHRpb25zLmRlcHRoKSB7XG4gICAgICAgIGkgKz0gMTtcbiAgICAgICAgaWYgKCFvcHRpb25zLnBsYWluT2JqZWN0cyAmJiBoYXMuY2FsbChPYmplY3QucHJvdG90eXBlLCBzZWdtZW50WzFdLnNsaWNlKDEsIC0xKSkpIHtcbiAgICAgICAgICBpZiAoIW9wdGlvbnMuYWxsb3dQcm90b3R5cGVzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGtleXMucHVzaChzZWdtZW50WzFdKTtcbiAgICAgIH1cbiAgICAgIGlmIChzZWdtZW50KSB7XG4gICAgICAgIGlmIChvcHRpb25zLnN0cmljdERlcHRoID09PSB0cnVlKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IFJhbmdlRXJyb3IoXCJJbnB1dCBkZXB0aCBleGNlZWRlZCBkZXB0aCBvcHRpb24gb2YgXCIgKyBvcHRpb25zLmRlcHRoICsgXCIgYW5kIHN0cmljdERlcHRoIGlzIHRydWVcIik7XG4gICAgICAgIH1cbiAgICAgICAga2V5cy5wdXNoKFwiW1wiICsga2V5LnNsaWNlKHNlZ21lbnQuaW5kZXgpICsgXCJdXCIpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHBhcnNlT2JqZWN0KGtleXMsIHZhbCwgb3B0aW9ucywgdmFsdWVzUGFyc2VkKTtcbiAgICB9O1xuICAgIHZhciBub3JtYWxpemVQYXJzZU9wdGlvbnMgPSBmdW5jdGlvbiBub3JtYWxpemVQYXJzZU9wdGlvbnMyKG9wdHMpIHtcbiAgICAgIGlmICghb3B0cykge1xuICAgICAgICByZXR1cm4gZGVmYXVsdHM7XG4gICAgICB9XG4gICAgICBpZiAodHlwZW9mIG9wdHMuYWxsb3dFbXB0eUFycmF5cyAhPT0gXCJ1bmRlZmluZWRcIiAmJiB0eXBlb2Ygb3B0cy5hbGxvd0VtcHR5QXJyYXlzICE9PSBcImJvb2xlYW5cIikge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiYGFsbG93RW1wdHlBcnJheXNgIG9wdGlvbiBjYW4gb25seSBiZSBgdHJ1ZWAgb3IgYGZhbHNlYCwgd2hlbiBwcm92aWRlZFwiKTtcbiAgICAgIH1cbiAgICAgIGlmICh0eXBlb2Ygb3B0cy5kZWNvZGVEb3RJbktleXMgIT09IFwidW5kZWZpbmVkXCIgJiYgdHlwZW9mIG9wdHMuZGVjb2RlRG90SW5LZXlzICE9PSBcImJvb2xlYW5cIikge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiYGRlY29kZURvdEluS2V5c2Agb3B0aW9uIGNhbiBvbmx5IGJlIGB0cnVlYCBvciBgZmFsc2VgLCB3aGVuIHByb3ZpZGVkXCIpO1xuICAgICAgfVxuICAgICAgaWYgKG9wdHMuZGVjb2RlciAhPT0gbnVsbCAmJiB0eXBlb2Ygb3B0cy5kZWNvZGVyICE9PSBcInVuZGVmaW5lZFwiICYmIHR5cGVvZiBvcHRzLmRlY29kZXIgIT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiRGVjb2RlciBoYXMgdG8gYmUgYSBmdW5jdGlvbi5cIik7XG4gICAgICB9XG4gICAgICBpZiAodHlwZW9mIG9wdHMuY2hhcnNldCAhPT0gXCJ1bmRlZmluZWRcIiAmJiBvcHRzLmNoYXJzZXQgIT09IFwidXRmLThcIiAmJiBvcHRzLmNoYXJzZXQgIT09IFwiaXNvLTg4NTktMVwiKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJUaGUgY2hhcnNldCBvcHRpb24gbXVzdCBiZSBlaXRoZXIgdXRmLTgsIGlzby04ODU5LTEsIG9yIHVuZGVmaW5lZFwiKTtcbiAgICAgIH1cbiAgICAgIGlmICh0eXBlb2Ygb3B0cy50aHJvd09uTGltaXRFeGNlZWRlZCAhPT0gXCJ1bmRlZmluZWRcIiAmJiB0eXBlb2Ygb3B0cy50aHJvd09uTGltaXRFeGNlZWRlZCAhPT0gXCJib29sZWFuXCIpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcImB0aHJvd09uTGltaXRFeGNlZWRlZGAgb3B0aW9uIG11c3QgYmUgYSBib29sZWFuXCIpO1xuICAgICAgfVxuICAgICAgdmFyIGNoYXJzZXQgPSB0eXBlb2Ygb3B0cy5jaGFyc2V0ID09PSBcInVuZGVmaW5lZFwiID8gZGVmYXVsdHMuY2hhcnNldCA6IG9wdHMuY2hhcnNldDtcbiAgICAgIHZhciBkdXBsaWNhdGVzID0gdHlwZW9mIG9wdHMuZHVwbGljYXRlcyA9PT0gXCJ1bmRlZmluZWRcIiA/IGRlZmF1bHRzLmR1cGxpY2F0ZXMgOiBvcHRzLmR1cGxpY2F0ZXM7XG4gICAgICBpZiAoZHVwbGljYXRlcyAhPT0gXCJjb21iaW5lXCIgJiYgZHVwbGljYXRlcyAhPT0gXCJmaXJzdFwiICYmIGR1cGxpY2F0ZXMgIT09IFwibGFzdFwiKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJUaGUgZHVwbGljYXRlcyBvcHRpb24gbXVzdCBiZSBlaXRoZXIgY29tYmluZSwgZmlyc3QsIG9yIGxhc3RcIik7XG4gICAgICB9XG4gICAgICB2YXIgYWxsb3dEb3RzID0gdHlwZW9mIG9wdHMuYWxsb3dEb3RzID09PSBcInVuZGVmaW5lZFwiID8gb3B0cy5kZWNvZGVEb3RJbktleXMgPT09IHRydWUgPyB0cnVlIDogZGVmYXVsdHMuYWxsb3dEb3RzIDogISFvcHRzLmFsbG93RG90cztcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGFsbG93RG90cyxcbiAgICAgICAgYWxsb3dFbXB0eUFycmF5czogdHlwZW9mIG9wdHMuYWxsb3dFbXB0eUFycmF5cyA9PT0gXCJib29sZWFuXCIgPyAhIW9wdHMuYWxsb3dFbXB0eUFycmF5cyA6IGRlZmF1bHRzLmFsbG93RW1wdHlBcnJheXMsXG4gICAgICAgIGFsbG93UHJvdG90eXBlczogdHlwZW9mIG9wdHMuYWxsb3dQcm90b3R5cGVzID09PSBcImJvb2xlYW5cIiA/IG9wdHMuYWxsb3dQcm90b3R5cGVzIDogZGVmYXVsdHMuYWxsb3dQcm90b3R5cGVzLFxuICAgICAgICBhbGxvd1NwYXJzZTogdHlwZW9mIG9wdHMuYWxsb3dTcGFyc2UgPT09IFwiYm9vbGVhblwiID8gb3B0cy5hbGxvd1NwYXJzZSA6IGRlZmF1bHRzLmFsbG93U3BhcnNlLFxuICAgICAgICBhcnJheUxpbWl0OiB0eXBlb2Ygb3B0cy5hcnJheUxpbWl0ID09PSBcIm51bWJlclwiID8gb3B0cy5hcnJheUxpbWl0IDogZGVmYXVsdHMuYXJyYXlMaW1pdCxcbiAgICAgICAgY2hhcnNldCxcbiAgICAgICAgY2hhcnNldFNlbnRpbmVsOiB0eXBlb2Ygb3B0cy5jaGFyc2V0U2VudGluZWwgPT09IFwiYm9vbGVhblwiID8gb3B0cy5jaGFyc2V0U2VudGluZWwgOiBkZWZhdWx0cy5jaGFyc2V0U2VudGluZWwsXG4gICAgICAgIGNvbW1hOiB0eXBlb2Ygb3B0cy5jb21tYSA9PT0gXCJib29sZWFuXCIgPyBvcHRzLmNvbW1hIDogZGVmYXVsdHMuY29tbWEsXG4gICAgICAgIGRlY29kZURvdEluS2V5czogdHlwZW9mIG9wdHMuZGVjb2RlRG90SW5LZXlzID09PSBcImJvb2xlYW5cIiA/IG9wdHMuZGVjb2RlRG90SW5LZXlzIDogZGVmYXVsdHMuZGVjb2RlRG90SW5LZXlzLFxuICAgICAgICBkZWNvZGVyOiB0eXBlb2Ygb3B0cy5kZWNvZGVyID09PSBcImZ1bmN0aW9uXCIgPyBvcHRzLmRlY29kZXIgOiBkZWZhdWx0cy5kZWNvZGVyLFxuICAgICAgICBkZWxpbWl0ZXI6IHR5cGVvZiBvcHRzLmRlbGltaXRlciA9PT0gXCJzdHJpbmdcIiB8fCB1dGlscy5pc1JlZ0V4cChvcHRzLmRlbGltaXRlcikgPyBvcHRzLmRlbGltaXRlciA6IGRlZmF1bHRzLmRlbGltaXRlcixcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWltcGxpY2l0LWNvZXJjaW9uLCBuby1leHRyYS1wYXJlbnNcbiAgICAgICAgZGVwdGg6IHR5cGVvZiBvcHRzLmRlcHRoID09PSBcIm51bWJlclwiIHx8IG9wdHMuZGVwdGggPT09IGZhbHNlID8gK29wdHMuZGVwdGggOiBkZWZhdWx0cy5kZXB0aCxcbiAgICAgICAgZHVwbGljYXRlcyxcbiAgICAgICAgaWdub3JlUXVlcnlQcmVmaXg6IG9wdHMuaWdub3JlUXVlcnlQcmVmaXggPT09IHRydWUsXG4gICAgICAgIGludGVycHJldE51bWVyaWNFbnRpdGllczogdHlwZW9mIG9wdHMuaW50ZXJwcmV0TnVtZXJpY0VudGl0aWVzID09PSBcImJvb2xlYW5cIiA/IG9wdHMuaW50ZXJwcmV0TnVtZXJpY0VudGl0aWVzIDogZGVmYXVsdHMuaW50ZXJwcmV0TnVtZXJpY0VudGl0aWVzLFxuICAgICAgICBwYXJhbWV0ZXJMaW1pdDogdHlwZW9mIG9wdHMucGFyYW1ldGVyTGltaXQgPT09IFwibnVtYmVyXCIgPyBvcHRzLnBhcmFtZXRlckxpbWl0IDogZGVmYXVsdHMucGFyYW1ldGVyTGltaXQsXG4gICAgICAgIHBhcnNlQXJyYXlzOiBvcHRzLnBhcnNlQXJyYXlzICE9PSBmYWxzZSxcbiAgICAgICAgcGxhaW5PYmplY3RzOiB0eXBlb2Ygb3B0cy5wbGFpbk9iamVjdHMgPT09IFwiYm9vbGVhblwiID8gb3B0cy5wbGFpbk9iamVjdHMgOiBkZWZhdWx0cy5wbGFpbk9iamVjdHMsXG4gICAgICAgIHN0cmljdERlcHRoOiB0eXBlb2Ygb3B0cy5zdHJpY3REZXB0aCA9PT0gXCJib29sZWFuXCIgPyAhIW9wdHMuc3RyaWN0RGVwdGggOiBkZWZhdWx0cy5zdHJpY3REZXB0aCxcbiAgICAgICAgc3RyaWN0TnVsbEhhbmRsaW5nOiB0eXBlb2Ygb3B0cy5zdHJpY3ROdWxsSGFuZGxpbmcgPT09IFwiYm9vbGVhblwiID8gb3B0cy5zdHJpY3ROdWxsSGFuZGxpbmcgOiBkZWZhdWx0cy5zdHJpY3ROdWxsSGFuZGxpbmcsXG4gICAgICAgIHRocm93T25MaW1pdEV4Y2VlZGVkOiB0eXBlb2Ygb3B0cy50aHJvd09uTGltaXRFeGNlZWRlZCA9PT0gXCJib29sZWFuXCIgPyBvcHRzLnRocm93T25MaW1pdEV4Y2VlZGVkIDogZmFsc2VcbiAgICAgIH07XG4gICAgfTtcbiAgICBtb2R1bGUyLmV4cG9ydHMgPSBmdW5jdGlvbihzdHIsIG9wdHMpIHtcbiAgICAgIHZhciBvcHRpb25zID0gbm9ybWFsaXplUGFyc2VPcHRpb25zKG9wdHMpO1xuICAgICAgaWYgKHN0ciA9PT0gXCJcIiB8fCBzdHIgPT09IG51bGwgfHwgdHlwZW9mIHN0ciA9PT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgICByZXR1cm4gb3B0aW9ucy5wbGFpbk9iamVjdHMgPyB7IF9fcHJvdG9fXzogbnVsbCB9IDoge307XG4gICAgICB9XG4gICAgICB2YXIgdGVtcE9iaiA9IHR5cGVvZiBzdHIgPT09IFwic3RyaW5nXCIgPyBwYXJzZVZhbHVlcyhzdHIsIG9wdGlvbnMpIDogc3RyO1xuICAgICAgdmFyIG9iaiA9IG9wdGlvbnMucGxhaW5PYmplY3RzID8geyBfX3Byb3RvX186IG51bGwgfSA6IHt9O1xuICAgICAgdmFyIGtleXMgPSBPYmplY3Qua2V5cyh0ZW1wT2JqKTtcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwga2V5cy5sZW5ndGg7ICsraSkge1xuICAgICAgICB2YXIga2V5ID0ga2V5c1tpXTtcbiAgICAgICAgdmFyIG5ld09iaiA9IHBhcnNlS2V5cyhrZXksIHRlbXBPYmpba2V5XSwgb3B0aW9ucywgdHlwZW9mIHN0ciA9PT0gXCJzdHJpbmdcIik7XG4gICAgICAgIG9iaiA9IHV0aWxzLm1lcmdlKG9iaiwgbmV3T2JqLCBvcHRpb25zKTtcbiAgICAgIH1cbiAgICAgIGlmIChvcHRpb25zLmFsbG93U3BhcnNlID09PSB0cnVlKSB7XG4gICAgICAgIHJldHVybiBvYmo7XG4gICAgICB9XG4gICAgICByZXR1cm4gdXRpbHMuY29tcGFjdChvYmopO1xuICAgIH07XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvcXMvbGliL2luZGV4LmpzXG52YXIgcmVxdWlyZV9saWIzID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL3FzL2xpYi9pbmRleC5qc1wiKGV4cG9ydHMyLCBtb2R1bGUyKSB7XG4gICAgXCJ1c2Ugc3RyaWN0XCI7XG4gICAgdmFyIHN0cmluZ2lmeSA9IHJlcXVpcmVfc3RyaW5naWZ5KCk7XG4gICAgdmFyIHBhcnNlID0gcmVxdWlyZV9wYXJzZSgpO1xuICAgIHZhciBmb3JtYXRzID0gcmVxdWlyZV9mb3JtYXRzKCk7XG4gICAgbW9kdWxlMi5leHBvcnRzID0ge1xuICAgICAgZm9ybWF0cyxcbiAgICAgIHBhcnNlLFxuICAgICAgc3RyaW5naWZ5XG4gICAgfTtcbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9ib2R5LXBhcnNlci9saWIvdHlwZXMvdXJsZW5jb2RlZC5qc1xudmFyIHJlcXVpcmVfdXJsZW5jb2RlZCA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9ib2R5LXBhcnNlci9saWIvdHlwZXMvdXJsZW5jb2RlZC5qc1wiKGV4cG9ydHMyLCBtb2R1bGUyKSB7XG4gICAgXCJ1c2Ugc3RyaWN0XCI7XG4gICAgdmFyIGNyZWF0ZUVycm9yID0gcmVxdWlyZV9odHRwX2Vycm9ycygpO1xuICAgIHZhciBkZWJ1ZyA9IHJlcXVpcmVfc3JjKCkoXCJib2R5LXBhcnNlcjp1cmxlbmNvZGVkXCIpO1xuICAgIHZhciBpc0ZpbmlzaGVkID0gcmVxdWlyZV9vbl9maW5pc2hlZCgpLmlzRmluaXNoZWQ7XG4gICAgdmFyIHJlYWQgPSByZXF1aXJlX3JlYWQoKTtcbiAgICB2YXIgdHlwZWlzID0gcmVxdWlyZV90eXBlX2lzKCk7XG4gICAgdmFyIHFzID0gcmVxdWlyZV9saWIzKCk7XG4gICAgdmFyIHsgZ2V0Q2hhcnNldCwgbm9ybWFsaXplT3B0aW9ucyB9ID0gcmVxdWlyZV91dGlscygpO1xuICAgIG1vZHVsZTIuZXhwb3J0cyA9IHVybGVuY29kZWQ7XG4gICAgZnVuY3Rpb24gdXJsZW5jb2RlZChvcHRpb25zKSB7XG4gICAgICB2YXIgeyBpbmZsYXRlLCBsaW1pdCwgdmVyaWZ5LCBzaG91bGRQYXJzZSB9ID0gbm9ybWFsaXplT3B0aW9ucyhvcHRpb25zLCBcImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZFwiKTtcbiAgICAgIHZhciBkZWZhdWx0Q2hhcnNldCA9IG9wdGlvbnM/LmRlZmF1bHRDaGFyc2V0IHx8IFwidXRmLThcIjtcbiAgICAgIGlmIChkZWZhdWx0Q2hhcnNldCAhPT0gXCJ1dGYtOFwiICYmIGRlZmF1bHRDaGFyc2V0ICE9PSBcImlzby04ODU5LTFcIikge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwib3B0aW9uIGRlZmF1bHRDaGFyc2V0IG11c3QgYmUgZWl0aGVyIHV0Zi04IG9yIGlzby04ODU5LTFcIik7XG4gICAgICB9XG4gICAgICB2YXIgcXVlcnlwYXJzZSA9IGNyZWF0ZVF1ZXJ5UGFyc2VyKG9wdGlvbnMpO1xuICAgICAgZnVuY3Rpb24gcGFyc2UoYm9keSwgZW5jb2RpbmcpIHtcbiAgICAgICAgcmV0dXJuIGJvZHkubGVuZ3RoID8gcXVlcnlwYXJzZShib2R5LCBlbmNvZGluZykgOiB7fTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBmdW5jdGlvbiB1cmxlbmNvZGVkUGFyc2VyKHJlcSwgcmVzLCBuZXh0KSB7XG4gICAgICAgIGlmIChpc0ZpbmlzaGVkKHJlcSkpIHtcbiAgICAgICAgICBkZWJ1ZyhcImJvZHkgYWxyZWFkeSBwYXJzZWRcIik7XG4gICAgICAgICAgbmV4dCgpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIShcImJvZHlcIiBpbiByZXEpKSB7XG4gICAgICAgICAgcmVxLmJvZHkgPSB2b2lkIDA7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCF0eXBlaXMuaGFzQm9keShyZXEpKSB7XG4gICAgICAgICAgZGVidWcoXCJza2lwIGVtcHR5IGJvZHlcIik7XG4gICAgICAgICAgbmV4dCgpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBkZWJ1ZyhcImNvbnRlbnQtdHlwZSAlalwiLCByZXEuaGVhZGVyc1tcImNvbnRlbnQtdHlwZVwiXSk7XG4gICAgICAgIGlmICghc2hvdWxkUGFyc2UocmVxKSkge1xuICAgICAgICAgIGRlYnVnKFwic2tpcCBwYXJzaW5nXCIpO1xuICAgICAgICAgIG5leHQoKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGNoYXJzZXQgPSBnZXRDaGFyc2V0KHJlcSkgfHwgZGVmYXVsdENoYXJzZXQ7XG4gICAgICAgIGlmIChjaGFyc2V0ICE9PSBcInV0Zi04XCIgJiYgY2hhcnNldCAhPT0gXCJpc28tODg1OS0xXCIpIHtcbiAgICAgICAgICBkZWJ1ZyhcImludmFsaWQgY2hhcnNldFwiKTtcbiAgICAgICAgICBuZXh0KGNyZWF0ZUVycm9yKDQxNSwgJ3Vuc3VwcG9ydGVkIGNoYXJzZXQgXCInICsgY2hhcnNldC50b1VwcGVyQ2FzZSgpICsgJ1wiJywge1xuICAgICAgICAgICAgY2hhcnNldCxcbiAgICAgICAgICAgIHR5cGU6IFwiY2hhcnNldC51bnN1cHBvcnRlZFwiXG4gICAgICAgICAgfSkpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICByZWFkKHJlcSwgcmVzLCBuZXh0LCBwYXJzZSwgZGVidWcsIHtcbiAgICAgICAgICBlbmNvZGluZzogY2hhcnNldCxcbiAgICAgICAgICBpbmZsYXRlLFxuICAgICAgICAgIGxpbWl0LFxuICAgICAgICAgIHZlcmlmeVxuICAgICAgICB9KTtcbiAgICAgIH07XG4gICAgfVxuICAgIGZ1bmN0aW9uIGNyZWF0ZVF1ZXJ5UGFyc2VyKG9wdGlvbnMpIHtcbiAgICAgIHZhciBleHRlbmRlZCA9IEJvb2xlYW4ob3B0aW9ucz8uZXh0ZW5kZWQpO1xuICAgICAgdmFyIHBhcmFtZXRlckxpbWl0ID0gb3B0aW9ucz8ucGFyYW1ldGVyTGltaXQgIT09IHZvaWQgMCA/IG9wdGlvbnM/LnBhcmFtZXRlckxpbWl0IDogMWUzO1xuICAgICAgdmFyIGNoYXJzZXRTZW50aW5lbCA9IG9wdGlvbnM/LmNoYXJzZXRTZW50aW5lbDtcbiAgICAgIHZhciBpbnRlcnByZXROdW1lcmljRW50aXRpZXMgPSBvcHRpb25zPy5pbnRlcnByZXROdW1lcmljRW50aXRpZXM7XG4gICAgICB2YXIgZGVwdGggPSBleHRlbmRlZCA/IG9wdGlvbnM/LmRlcHRoICE9PSB2b2lkIDAgPyBvcHRpb25zPy5kZXB0aCA6IDMyIDogMDtcbiAgICAgIGlmIChpc05hTihwYXJhbWV0ZXJMaW1pdCkgfHwgcGFyYW1ldGVyTGltaXQgPCAxKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJvcHRpb24gcGFyYW1ldGVyTGltaXQgbXVzdCBiZSBhIHBvc2l0aXZlIG51bWJlclwiKTtcbiAgICAgIH1cbiAgICAgIGlmIChpc05hTihkZXB0aCkgfHwgZGVwdGggPCAwKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJvcHRpb24gZGVwdGggbXVzdCBiZSBhIHplcm8gb3IgYSBwb3NpdGl2ZSBudW1iZXJcIik7XG4gICAgICB9XG4gICAgICBpZiAoaXNGaW5pdGUocGFyYW1ldGVyTGltaXQpKSB7XG4gICAgICAgIHBhcmFtZXRlckxpbWl0ID0gcGFyYW1ldGVyTGltaXQgfCAwO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGZ1bmN0aW9uIHF1ZXJ5cGFyc2UoYm9keSwgZW5jb2RpbmcpIHtcbiAgICAgICAgdmFyIHBhcmFtQ291bnQgPSBwYXJhbWV0ZXJDb3VudChib2R5LCBwYXJhbWV0ZXJMaW1pdCk7XG4gICAgICAgIGlmIChwYXJhbUNvdW50ID09PSB2b2lkIDApIHtcbiAgICAgICAgICBkZWJ1ZyhcInRvbyBtYW55IHBhcmFtZXRlcnNcIik7XG4gICAgICAgICAgdGhyb3cgY3JlYXRlRXJyb3IoNDEzLCBcInRvbyBtYW55IHBhcmFtZXRlcnNcIiwge1xuICAgICAgICAgICAgdHlwZTogXCJwYXJhbWV0ZXJzLnRvby5tYW55XCJcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgYXJyYXlMaW1pdCA9IGV4dGVuZGVkID8gTWF0aC5tYXgoMTAwLCBwYXJhbUNvdW50KSA6IDA7XG4gICAgICAgIGRlYnVnKFwicGFyc2UgXCIgKyAoZXh0ZW5kZWQgPyBcImV4dGVuZGVkIFwiIDogXCJcIikgKyBcInVybGVuY29kaW5nXCIpO1xuICAgICAgICB0cnkge1xuICAgICAgICAgIHJldHVybiBxcy5wYXJzZShib2R5LCB7XG4gICAgICAgICAgICBhbGxvd1Byb3RvdHlwZXM6IHRydWUsXG4gICAgICAgICAgICBhcnJheUxpbWl0LFxuICAgICAgICAgICAgZGVwdGgsXG4gICAgICAgICAgICBjaGFyc2V0U2VudGluZWwsXG4gICAgICAgICAgICBpbnRlcnByZXROdW1lcmljRW50aXRpZXMsXG4gICAgICAgICAgICBjaGFyc2V0OiBlbmNvZGluZyxcbiAgICAgICAgICAgIHBhcmFtZXRlckxpbWl0LFxuICAgICAgICAgICAgc3RyaWN0RGVwdGg6IHRydWVcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSBjYXRjaCAoZXJyMikge1xuICAgICAgICAgIGlmIChlcnIyIGluc3RhbmNlb2YgUmFuZ2VFcnJvcikge1xuICAgICAgICAgICAgdGhyb3cgY3JlYXRlRXJyb3IoNDAwLCBcIlRoZSBpbnB1dCBleGNlZWRlZCB0aGUgZGVwdGhcIiwge1xuICAgICAgICAgICAgICB0eXBlOiBcInF1ZXJ5c3RyaW5nLnBhcnNlLnJhbmdlRXJyb3JcIlxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRocm93IGVycjI7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9O1xuICAgIH1cbiAgICBmdW5jdGlvbiBwYXJhbWV0ZXJDb3VudChib2R5LCBsaW1pdCkge1xuICAgICAgdmFyIGxlbiA9IGJvZHkuc3BsaXQoXCImXCIpLmxlbmd0aDtcbiAgICAgIHJldHVybiBsZW4gPiBsaW1pdCA/IHZvaWQgMCA6IGxlbiAtIDE7XG4gICAgfVxuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL2JvZHktcGFyc2VyL2luZGV4LmpzXG52YXIgcmVxdWlyZV9ib2R5X3BhcnNlciA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9ib2R5LXBhcnNlci9pbmRleC5qc1wiKGV4cG9ydHMyLCBtb2R1bGUyKSB7XG4gICAgXCJ1c2Ugc3RyaWN0XCI7XG4gICAgZXhwb3J0czIgPSBtb2R1bGUyLmV4cG9ydHMgPSBib2R5UGFyc2VyO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgXCJqc29uXCIsIHtcbiAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICBnZXQ6ICgpID0+IHJlcXVpcmVfanNvbigpXG4gICAgfSk7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCBcInJhd1wiLCB7XG4gICAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgZ2V0OiAoKSA9PiByZXF1aXJlX3JhdygpXG4gICAgfSk7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCBcInRleHRcIiwge1xuICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgIGdldDogKCkgPT4gcmVxdWlyZV90ZXh0KClcbiAgICB9KTtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsIFwidXJsZW5jb2RlZFwiLCB7XG4gICAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgZ2V0OiAoKSA9PiByZXF1aXJlX3VybGVuY29kZWQoKVxuICAgIH0pO1xuICAgIGZ1bmN0aW9uIGJvZHlQYXJzZXIoKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJUaGUgYm9keVBhcnNlcigpIGdlbmVyaWMgaGFzIGJlZW4gc3BsaXQgaW50byBpbmRpdmlkdWFsIG1pZGRsZXdhcmUgdG8gdXNlIGluc3RlYWQuXCIpO1xuICAgIH1cbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9tZXJnZS1kZXNjcmlwdG9ycy9pbmRleC5qc1xudmFyIHJlcXVpcmVfbWVyZ2VfZGVzY3JpcHRvcnMgPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvbWVyZ2UtZGVzY3JpcHRvcnMvaW5kZXguanNcIihleHBvcnRzMiwgbW9kdWxlMikge1xuICAgIFwidXNlIHN0cmljdFwiO1xuICAgIGZ1bmN0aW9uIG1lcmdlRGVzY3JpcHRvcnMoZGVzdGluYXRpb24sIHNvdXJjZSwgb3ZlcndyaXRlID0gdHJ1ZSkge1xuICAgICAgaWYgKCFkZXN0aW5hdGlvbikge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiVGhlIGBkZXN0aW5hdGlvbmAgYXJndW1lbnQgaXMgcmVxdWlyZWQuXCIpO1xuICAgICAgfVxuICAgICAgaWYgKCFzb3VyY2UpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlRoZSBgc291cmNlYCBhcmd1bWVudCBpcyByZXF1aXJlZC5cIik7XG4gICAgICB9XG4gICAgICBmb3IgKGNvbnN0IG5hbWUgb2YgT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoc291cmNlKSkge1xuICAgICAgICBpZiAoIW92ZXJ3cml0ZSAmJiBPYmplY3QuaGFzT3duKGRlc3RpbmF0aW9uLCBuYW1lKSkge1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGRlc2NyaXB0b3IgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHNvdXJjZSwgbmFtZSk7XG4gICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkZXN0aW5hdGlvbiwgbmFtZSwgZGVzY3JpcHRvcik7XG4gICAgICB9XG4gICAgICByZXR1cm4gZGVzdGluYXRpb247XG4gICAgfVxuICAgIG1vZHVsZTIuZXhwb3J0cyA9IG1lcmdlRGVzY3JpcHRvcnM7XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvZW5jb2RldXJsL2luZGV4LmpzXG52YXIgcmVxdWlyZV9lbmNvZGV1cmwgPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvZW5jb2RldXJsL2luZGV4LmpzXCIoZXhwb3J0czIsIG1vZHVsZTIpIHtcbiAgICBcInVzZSBzdHJpY3RcIjtcbiAgICBtb2R1bGUyLmV4cG9ydHMgPSBlbmNvZGVVcmw7XG4gICAgdmFyIEVOQ09ERV9DSEFSU19SRUdFWFAgPSAvKD86W15cXHgyMVxceDIzLVxceDNCXFx4M0RcXHgzRi1cXHg1RlxceDYxLVxceDdBXFx4N0NcXHg3RV18JSg/OlteMC05QS1GYS1mXXxbMC05QS1GYS1mXVteMC05QS1GYS1mXXwkKSkrL2c7XG4gICAgdmFyIFVOTUFUQ0hFRF9TVVJST0dBVEVfUEFJUl9SRUdFWFAgPSAvKF58W15cXHVEODAwLVxcdURCRkZdKVtcXHVEQzAwLVxcdURGRkZdfFtcXHVEODAwLVxcdURCRkZdKFteXFx1REMwMC1cXHVERkZGXXwkKS9nO1xuICAgIHZhciBVTk1BVENIRURfU1VSUk9HQVRFX1BBSVJfUkVQTEFDRSA9IFwiJDFcXHVGRkZEJDJcIjtcbiAgICBmdW5jdGlvbiBlbmNvZGVVcmwodXJsKSB7XG4gICAgICByZXR1cm4gU3RyaW5nKHVybCkucmVwbGFjZShVTk1BVENIRURfU1VSUk9HQVRFX1BBSVJfUkVHRVhQLCBVTk1BVENIRURfU1VSUk9HQVRFX1BBSVJfUkVQTEFDRSkucmVwbGFjZShFTkNPREVfQ0hBUlNfUkVHRVhQLCBlbmNvZGVVUkkpO1xuICAgIH1cbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9lc2NhcGUtaHRtbC9pbmRleC5qc1xudmFyIHJlcXVpcmVfZXNjYXBlX2h0bWwgPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvZXNjYXBlLWh0bWwvaW5kZXguanNcIihleHBvcnRzMiwgbW9kdWxlMikge1xuICAgIFwidXNlIHN0cmljdFwiO1xuICAgIHZhciBtYXRjaEh0bWxSZWdFeHAgPSAvW1wiJyY8Pl0vO1xuICAgIG1vZHVsZTIuZXhwb3J0cyA9IGVzY2FwZUh0bWw7XG4gICAgZnVuY3Rpb24gZXNjYXBlSHRtbChzdHJpbmcpIHtcbiAgICAgIHZhciBzdHIgPSBcIlwiICsgc3RyaW5nO1xuICAgICAgdmFyIG1hdGNoID0gbWF0Y2hIdG1sUmVnRXhwLmV4ZWMoc3RyKTtcbiAgICAgIGlmICghbWF0Y2gpIHtcbiAgICAgICAgcmV0dXJuIHN0cjtcbiAgICAgIH1cbiAgICAgIHZhciBlc2NhcGUyO1xuICAgICAgdmFyIGh0bWwgPSBcIlwiO1xuICAgICAgdmFyIGluZGV4ID0gMDtcbiAgICAgIHZhciBsYXN0SW5kZXggPSAwO1xuICAgICAgZm9yIChpbmRleCA9IG1hdGNoLmluZGV4OyBpbmRleCA8IHN0ci5sZW5ndGg7IGluZGV4KyspIHtcbiAgICAgICAgc3dpdGNoIChzdHIuY2hhckNvZGVBdChpbmRleCkpIHtcbiAgICAgICAgICBjYXNlIDM0OlxuICAgICAgICAgICAgZXNjYXBlMiA9IFwiJnF1b3Q7XCI7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIDM4OlxuICAgICAgICAgICAgZXNjYXBlMiA9IFwiJmFtcDtcIjtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgMzk6XG4gICAgICAgICAgICBlc2NhcGUyID0gXCImIzM5O1wiO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSA2MDpcbiAgICAgICAgICAgIGVzY2FwZTIgPSBcIiZsdDtcIjtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgNjI6XG4gICAgICAgICAgICBlc2NhcGUyID0gXCImZ3Q7XCI7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGxhc3RJbmRleCAhPT0gaW5kZXgpIHtcbiAgICAgICAgICBodG1sICs9IHN0ci5zdWJzdHJpbmcobGFzdEluZGV4LCBpbmRleCk7XG4gICAgICAgIH1cbiAgICAgICAgbGFzdEluZGV4ID0gaW5kZXggKyAxO1xuICAgICAgICBodG1sICs9IGVzY2FwZTI7XG4gICAgICB9XG4gICAgICByZXR1cm4gbGFzdEluZGV4ICE9PSBpbmRleCA/IGh0bWwgKyBzdHIuc3Vic3RyaW5nKGxhc3RJbmRleCwgaW5kZXgpIDogaHRtbDtcbiAgICB9XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvcGFyc2V1cmwvaW5kZXguanNcbnZhciByZXF1aXJlX3BhcnNldXJsID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL3BhcnNldXJsL2luZGV4LmpzXCIoZXhwb3J0czIsIG1vZHVsZTIpIHtcbiAgICBcInVzZSBzdHJpY3RcIjtcbiAgICB2YXIgdXJsID0gcmVxdWlyZShcInVybFwiKTtcbiAgICB2YXIgcGFyc2UgPSB1cmwucGFyc2U7XG4gICAgdmFyIFVybCA9IHVybC5Vcmw7XG4gICAgbW9kdWxlMi5leHBvcnRzID0gcGFyc2V1cmw7XG4gICAgbW9kdWxlMi5leHBvcnRzLm9yaWdpbmFsID0gb3JpZ2luYWx1cmw7XG4gICAgZnVuY3Rpb24gcGFyc2V1cmwocmVxKSB7XG4gICAgICB2YXIgdXJsMiA9IHJlcS51cmw7XG4gICAgICBpZiAodXJsMiA9PT0gdm9pZCAwKSB7XG4gICAgICAgIHJldHVybiB2b2lkIDA7XG4gICAgICB9XG4gICAgICB2YXIgcGFyc2VkID0gcmVxLl9wYXJzZWRVcmw7XG4gICAgICBpZiAoZnJlc2godXJsMiwgcGFyc2VkKSkge1xuICAgICAgICByZXR1cm4gcGFyc2VkO1xuICAgICAgfVxuICAgICAgcGFyc2VkID0gZmFzdHBhcnNlKHVybDIpO1xuICAgICAgcGFyc2VkLl9yYXcgPSB1cmwyO1xuICAgICAgcmV0dXJuIHJlcS5fcGFyc2VkVXJsID0gcGFyc2VkO1xuICAgIH1cbiAgICBmdW5jdGlvbiBvcmlnaW5hbHVybChyZXEpIHtcbiAgICAgIHZhciB1cmwyID0gcmVxLm9yaWdpbmFsVXJsO1xuICAgICAgaWYgKHR5cGVvZiB1cmwyICE9PSBcInN0cmluZ1wiKSB7XG4gICAgICAgIHJldHVybiBwYXJzZXVybChyZXEpO1xuICAgICAgfVxuICAgICAgdmFyIHBhcnNlZCA9IHJlcS5fcGFyc2VkT3JpZ2luYWxVcmw7XG4gICAgICBpZiAoZnJlc2godXJsMiwgcGFyc2VkKSkge1xuICAgICAgICByZXR1cm4gcGFyc2VkO1xuICAgICAgfVxuICAgICAgcGFyc2VkID0gZmFzdHBhcnNlKHVybDIpO1xuICAgICAgcGFyc2VkLl9yYXcgPSB1cmwyO1xuICAgICAgcmV0dXJuIHJlcS5fcGFyc2VkT3JpZ2luYWxVcmwgPSBwYXJzZWQ7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGZhc3RwYXJzZShzdHIpIHtcbiAgICAgIGlmICh0eXBlb2Ygc3RyICE9PSBcInN0cmluZ1wiIHx8IHN0ci5jaGFyQ29kZUF0KDApICE9PSA0Nykge1xuICAgICAgICByZXR1cm4gcGFyc2Uoc3RyKTtcbiAgICAgIH1cbiAgICAgIHZhciBwYXRobmFtZSA9IHN0cjtcbiAgICAgIHZhciBxdWVyeSA9IG51bGw7XG4gICAgICB2YXIgc2VhcmNoID0gbnVsbDtcbiAgICAgIGZvciAodmFyIGkgPSAxOyBpIDwgc3RyLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIHN3aXRjaCAoc3RyLmNoYXJDb2RlQXQoaSkpIHtcbiAgICAgICAgICBjYXNlIDYzOlxuICAgICAgICAgICAgaWYgKHNlYXJjaCA9PT0gbnVsbCkge1xuICAgICAgICAgICAgICBwYXRobmFtZSA9IHN0ci5zdWJzdHJpbmcoMCwgaSk7XG4gICAgICAgICAgICAgIHF1ZXJ5ID0gc3RyLnN1YnN0cmluZyhpICsgMSk7XG4gICAgICAgICAgICAgIHNlYXJjaCA9IHN0ci5zdWJzdHJpbmcoaSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIDk6XG4gICAgICAgICAgLyogXFx0ICovXG4gICAgICAgICAgY2FzZSAxMDpcbiAgICAgICAgICAvKiBcXG4gKi9cbiAgICAgICAgICBjYXNlIDEyOlxuICAgICAgICAgIC8qIFxcZiAqL1xuICAgICAgICAgIGNhc2UgMTM6XG4gICAgICAgICAgLyogXFxyICovXG4gICAgICAgICAgY2FzZSAzMjpcbiAgICAgICAgICAvKiAgICAqL1xuICAgICAgICAgIGNhc2UgMzU6XG4gICAgICAgICAgLyogIyAgKi9cbiAgICAgICAgICBjYXNlIDE2MDpcbiAgICAgICAgICBjYXNlIDY1Mjc5OlxuICAgICAgICAgICAgcmV0dXJuIHBhcnNlKHN0cik7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHZhciB1cmwyID0gVXJsICE9PSB2b2lkIDAgPyBuZXcgVXJsKCkgOiB7fTtcbiAgICAgIHVybDIucGF0aCA9IHN0cjtcbiAgICAgIHVybDIuaHJlZiA9IHN0cjtcbiAgICAgIHVybDIucGF0aG5hbWUgPSBwYXRobmFtZTtcbiAgICAgIGlmIChzZWFyY2ggIT09IG51bGwpIHtcbiAgICAgICAgdXJsMi5xdWVyeSA9IHF1ZXJ5O1xuICAgICAgICB1cmwyLnNlYXJjaCA9IHNlYXJjaDtcbiAgICAgIH1cbiAgICAgIHJldHVybiB1cmwyO1xuICAgIH1cbiAgICBmdW5jdGlvbiBmcmVzaCh1cmwyLCBwYXJzZWRVcmwpIHtcbiAgICAgIHJldHVybiB0eXBlb2YgcGFyc2VkVXJsID09PSBcIm9iamVjdFwiICYmIHBhcnNlZFVybCAhPT0gbnVsbCAmJiAoVXJsID09PSB2b2lkIDAgfHwgcGFyc2VkVXJsIGluc3RhbmNlb2YgVXJsKSAmJiBwYXJzZWRVcmwuX3JhdyA9PT0gdXJsMjtcbiAgICB9XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvZmluYWxoYW5kbGVyL2luZGV4LmpzXG52YXIgcmVxdWlyZV9maW5hbGhhbmRsZXIgPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvZmluYWxoYW5kbGVyL2luZGV4LmpzXCIoZXhwb3J0czIsIG1vZHVsZTIpIHtcbiAgICBcInVzZSBzdHJpY3RcIjtcbiAgICB2YXIgZGVidWcgPSByZXF1aXJlX3NyYygpKFwiZmluYWxoYW5kbGVyXCIpO1xuICAgIHZhciBlbmNvZGVVcmwgPSByZXF1aXJlX2VuY29kZXVybCgpO1xuICAgIHZhciBlc2NhcGVIdG1sID0gcmVxdWlyZV9lc2NhcGVfaHRtbCgpO1xuICAgIHZhciBvbkZpbmlzaGVkID0gcmVxdWlyZV9vbl9maW5pc2hlZCgpO1xuICAgIHZhciBwYXJzZVVybCA9IHJlcXVpcmVfcGFyc2V1cmwoKTtcbiAgICB2YXIgc3RhdHVzZXMgPSByZXF1aXJlX3N0YXR1c2VzKCk7XG4gICAgdmFyIGlzRmluaXNoZWQgPSBvbkZpbmlzaGVkLmlzRmluaXNoZWQ7XG4gICAgZnVuY3Rpb24gY3JlYXRlSHRtbERvY3VtZW50KG1lc3NhZ2UpIHtcbiAgICAgIHZhciBib2R5ID0gZXNjYXBlSHRtbChtZXNzYWdlKS5yZXBsYWNlQWxsKFwiXFxuXCIsIFwiPGJyPlwiKS5yZXBsYWNlQWxsKFwiICBcIiwgXCIgJm5ic3A7XCIpO1xuICAgICAgcmV0dXJuICc8IURPQ1RZUEUgaHRtbD5cXG48aHRtbCBsYW5nPVwiZW5cIj5cXG48aGVhZD5cXG48bWV0YSBjaGFyc2V0PVwidXRmLThcIj5cXG48dGl0bGU+RXJyb3I8L3RpdGxlPlxcbjwvaGVhZD5cXG48Ym9keT5cXG48cHJlPicgKyBib2R5ICsgXCI8L3ByZT5cXG48L2JvZHk+XFxuPC9odG1sPlxcblwiO1xuICAgIH1cbiAgICBtb2R1bGUyLmV4cG9ydHMgPSBmaW5hbGhhbmRsZXI7XG4gICAgZnVuY3Rpb24gZmluYWxoYW5kbGVyKHJlcSwgcmVzLCBvcHRpb25zKSB7XG4gICAgICB2YXIgb3B0cyA9IG9wdGlvbnMgfHwge307XG4gICAgICB2YXIgZW52ID0gb3B0cy5lbnYgfHwgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgfHwgXCJkZXZlbG9wbWVudFwiO1xuICAgICAgdmFyIG9uZXJyb3IgPSBvcHRzLm9uZXJyb3I7XG4gICAgICByZXR1cm4gZnVuY3Rpb24oZXJyMikge1xuICAgICAgICB2YXIgaGVhZGVycztcbiAgICAgICAgdmFyIG1zZztcbiAgICAgICAgdmFyIHN0YXR1cztcbiAgICAgICAgaWYgKCFlcnIyICYmIHJlcy5oZWFkZXJzU2VudCkge1xuICAgICAgICAgIGRlYnVnKFwiY2Fubm90IDQwNCBhZnRlciBoZWFkZXJzIHNlbnRcIik7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChlcnIyKSB7XG4gICAgICAgICAgc3RhdHVzID0gZ2V0RXJyb3JTdGF0dXNDb2RlKGVycjIpO1xuICAgICAgICAgIGlmIChzdGF0dXMgPT09IHZvaWQgMCkge1xuICAgICAgICAgICAgc3RhdHVzID0gZ2V0UmVzcG9uc2VTdGF0dXNDb2RlKHJlcyk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGhlYWRlcnMgPSBnZXRFcnJvckhlYWRlcnMoZXJyMik7XG4gICAgICAgICAgfVxuICAgICAgICAgIG1zZyA9IGdldEVycm9yTWVzc2FnZShlcnIyLCBzdGF0dXMsIGVudik7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgc3RhdHVzID0gNDA0O1xuICAgICAgICAgIG1zZyA9IFwiQ2Fubm90IFwiICsgcmVxLm1ldGhvZCArIFwiIFwiICsgZW5jb2RlVXJsKGdldFJlc291cmNlTmFtZShyZXEpKTtcbiAgICAgICAgfVxuICAgICAgICBkZWJ1ZyhcImRlZmF1bHQgJXNcIiwgc3RhdHVzKTtcbiAgICAgICAgaWYgKGVycjIgJiYgb25lcnJvcikge1xuICAgICAgICAgIHNldEltbWVkaWF0ZShvbmVycm9yLCBlcnIyLCByZXEsIHJlcyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHJlcy5oZWFkZXJzU2VudCkge1xuICAgICAgICAgIGRlYnVnKFwiY2Fubm90ICVkIGFmdGVyIGhlYWRlcnMgc2VudFwiLCBzdGF0dXMpO1xuICAgICAgICAgIGlmIChyZXEuc29ja2V0KSB7XG4gICAgICAgICAgICByZXEuc29ja2V0LmRlc3Ryb3koKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHNlbmQocmVxLCByZXMsIHN0YXR1cywgaGVhZGVycywgbXNnKTtcbiAgICAgIH07XG4gICAgfVxuICAgIGZ1bmN0aW9uIGdldEVycm9ySGVhZGVycyhlcnIyKSB7XG4gICAgICBpZiAoIWVycjIuaGVhZGVycyB8fCB0eXBlb2YgZXJyMi5oZWFkZXJzICE9PSBcIm9iamVjdFwiKSB7XG4gICAgICAgIHJldHVybiB2b2lkIDA7XG4gICAgICB9XG4gICAgICByZXR1cm4geyAuLi5lcnIyLmhlYWRlcnMgfTtcbiAgICB9XG4gICAgZnVuY3Rpb24gZ2V0RXJyb3JNZXNzYWdlKGVycjIsIHN0YXR1cywgZW52KSB7XG4gICAgICB2YXIgbXNnO1xuICAgICAgaWYgKGVudiAhPT0gXCJwcm9kdWN0aW9uXCIpIHtcbiAgICAgICAgbXNnID0gZXJyMi5zdGFjaztcbiAgICAgICAgaWYgKCFtc2cgJiYgdHlwZW9mIGVycjIudG9TdHJpbmcgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICAgIG1zZyA9IGVycjIudG9TdHJpbmcoKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIG1zZyB8fCBzdGF0dXNlcy5tZXNzYWdlW3N0YXR1c107XG4gICAgfVxuICAgIGZ1bmN0aW9uIGdldEVycm9yU3RhdHVzQ29kZShlcnIyKSB7XG4gICAgICBpZiAodHlwZW9mIGVycjIuc3RhdHVzID09PSBcIm51bWJlclwiICYmIGVycjIuc3RhdHVzID49IDQwMCAmJiBlcnIyLnN0YXR1cyA8IDYwMCkge1xuICAgICAgICByZXR1cm4gZXJyMi5zdGF0dXM7XG4gICAgICB9XG4gICAgICBpZiAodHlwZW9mIGVycjIuc3RhdHVzQ29kZSA9PT0gXCJudW1iZXJcIiAmJiBlcnIyLnN0YXR1c0NvZGUgPj0gNDAwICYmIGVycjIuc3RhdHVzQ29kZSA8IDYwMCkge1xuICAgICAgICByZXR1cm4gZXJyMi5zdGF0dXNDb2RlO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHZvaWQgMDtcbiAgICB9XG4gICAgZnVuY3Rpb24gZ2V0UmVzb3VyY2VOYW1lKHJlcSkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgcmV0dXJuIHBhcnNlVXJsLm9yaWdpbmFsKHJlcSkucGF0aG5hbWU7XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIHJldHVybiBcInJlc291cmNlXCI7XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIGdldFJlc3BvbnNlU3RhdHVzQ29kZShyZXMpIHtcbiAgICAgIHZhciBzdGF0dXMgPSByZXMuc3RhdHVzQ29kZTtcbiAgICAgIGlmICh0eXBlb2Ygc3RhdHVzICE9PSBcIm51bWJlclwiIHx8IHN0YXR1cyA8IDQwMCB8fCBzdGF0dXMgPiA1OTkpIHtcbiAgICAgICAgc3RhdHVzID0gNTAwO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHN0YXR1cztcbiAgICB9XG4gICAgZnVuY3Rpb24gc2VuZChyZXEsIHJlcywgc3RhdHVzLCBoZWFkZXJzLCBtZXNzYWdlKSB7XG4gICAgICBmdW5jdGlvbiB3cml0ZSgpIHtcbiAgICAgICAgdmFyIGJvZHkgPSBjcmVhdGVIdG1sRG9jdW1lbnQobWVzc2FnZSk7XG4gICAgICAgIHJlcy5zdGF0dXNDb2RlID0gc3RhdHVzO1xuICAgICAgICBpZiAocmVxLmh0dHBWZXJzaW9uTWFqb3IgPCAyKSB7XG4gICAgICAgICAgcmVzLnN0YXR1c01lc3NhZ2UgPSBzdGF0dXNlcy5tZXNzYWdlW3N0YXR1c107XG4gICAgICAgIH1cbiAgICAgICAgcmVzLnJlbW92ZUhlYWRlcihcIkNvbnRlbnQtRW5jb2RpbmdcIik7XG4gICAgICAgIHJlcy5yZW1vdmVIZWFkZXIoXCJDb250ZW50LUxhbmd1YWdlXCIpO1xuICAgICAgICByZXMucmVtb3ZlSGVhZGVyKFwiQ29udGVudC1SYW5nZVwiKTtcbiAgICAgICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMoaGVhZGVycyA/PyB7fSkpIHtcbiAgICAgICAgICByZXMuc2V0SGVhZGVyKGtleSwgdmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIHJlcy5zZXRIZWFkZXIoXCJDb250ZW50LVNlY3VyaXR5LVBvbGljeVwiLCBcImRlZmF1bHQtc3JjICdub25lJ1wiKTtcbiAgICAgICAgcmVzLnNldEhlYWRlcihcIlgtQ29udGVudC1UeXBlLU9wdGlvbnNcIiwgXCJub3NuaWZmXCIpO1xuICAgICAgICByZXMuc2V0SGVhZGVyKFwiQ29udGVudC1UeXBlXCIsIFwidGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04XCIpO1xuICAgICAgICByZXMuc2V0SGVhZGVyKFwiQ29udGVudC1MZW5ndGhcIiwgQnVmZmVyLmJ5dGVMZW5ndGgoYm9keSwgXCJ1dGY4XCIpKTtcbiAgICAgICAgaWYgKHJlcS5tZXRob2QgPT09IFwiSEVBRFwiKSB7XG4gICAgICAgICAgcmVzLmVuZCgpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICByZXMuZW5kKGJvZHksIFwidXRmOFwiKTtcbiAgICAgIH1cbiAgICAgIGlmIChpc0ZpbmlzaGVkKHJlcSkpIHtcbiAgICAgICAgd3JpdGUoKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgcmVxLnVucGlwZSgpO1xuICAgICAgb25GaW5pc2hlZChyZXEsIHdyaXRlKTtcbiAgICAgIHJlcS5yZXN1bWUoKTtcbiAgICB9XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvZXhwcmVzcy9saWIvdmlldy5qc1xudmFyIHJlcXVpcmVfdmlldyA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9leHByZXNzL2xpYi92aWV3LmpzXCIoZXhwb3J0czIsIG1vZHVsZTIpIHtcbiAgICBcInVzZSBzdHJpY3RcIjtcbiAgICB2YXIgZGVidWcgPSByZXF1aXJlX3NyYygpKFwiZXhwcmVzczp2aWV3XCIpO1xuICAgIHZhciBwYXRoID0gcmVxdWlyZShcIm5vZGU6cGF0aFwiKTtcbiAgICB2YXIgZnMgPSByZXF1aXJlKFwibm9kZTpmc1wiKTtcbiAgICB2YXIgZGlybmFtZSA9IHBhdGguZGlybmFtZTtcbiAgICB2YXIgYmFzZW5hbWUgPSBwYXRoLmJhc2VuYW1lO1xuICAgIHZhciBleHRuYW1lID0gcGF0aC5leHRuYW1lO1xuICAgIHZhciBqb2luID0gcGF0aC5qb2luO1xuICAgIHZhciByZXNvbHZlID0gcGF0aC5yZXNvbHZlO1xuICAgIG1vZHVsZTIuZXhwb3J0cyA9IFZpZXc7XG4gICAgZnVuY3Rpb24gVmlldyhuYW1lLCBvcHRpb25zKSB7XG4gICAgICB2YXIgb3B0cyA9IG9wdGlvbnMgfHwge307XG4gICAgICB0aGlzLmRlZmF1bHRFbmdpbmUgPSBvcHRzLmRlZmF1bHRFbmdpbmU7XG4gICAgICB0aGlzLmV4dCA9IGV4dG5hbWUobmFtZSk7XG4gICAgICB0aGlzLm5hbWUgPSBuYW1lO1xuICAgICAgdGhpcy5yb290ID0gb3B0cy5yb290O1xuICAgICAgaWYgKCF0aGlzLmV4dCAmJiAhdGhpcy5kZWZhdWx0RW5naW5lKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIk5vIGRlZmF1bHQgZW5naW5lIHdhcyBzcGVjaWZpZWQgYW5kIG5vIGV4dGVuc2lvbiB3YXMgcHJvdmlkZWQuXCIpO1xuICAgICAgfVxuICAgICAgdmFyIGZpbGVOYW1lID0gbmFtZTtcbiAgICAgIGlmICghdGhpcy5leHQpIHtcbiAgICAgICAgdGhpcy5leHQgPSB0aGlzLmRlZmF1bHRFbmdpbmVbMF0gIT09IFwiLlwiID8gXCIuXCIgKyB0aGlzLmRlZmF1bHRFbmdpbmUgOiB0aGlzLmRlZmF1bHRFbmdpbmU7XG4gICAgICAgIGZpbGVOYW1lICs9IHRoaXMuZXh0O1xuICAgICAgfVxuICAgICAgaWYgKCFvcHRzLmVuZ2luZXNbdGhpcy5leHRdKSB7XG4gICAgICAgIHZhciBtb2QgPSB0aGlzLmV4dC5zbGljZSgxKTtcbiAgICAgICAgZGVidWcoJ3JlcXVpcmUgXCIlc1wiJywgbW9kKTtcbiAgICAgICAgdmFyIGZuID0gcmVxdWlyZShtb2QpLl9fZXhwcmVzcztcbiAgICAgICAgaWYgKHR5cGVvZiBmbiAhPT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdNb2R1bGUgXCInICsgbW9kICsgJ1wiIGRvZXMgbm90IHByb3ZpZGUgYSB2aWV3IGVuZ2luZS4nKTtcbiAgICAgICAgfVxuICAgICAgICBvcHRzLmVuZ2luZXNbdGhpcy5leHRdID0gZm47XG4gICAgICB9XG4gICAgICB0aGlzLmVuZ2luZSA9IG9wdHMuZW5naW5lc1t0aGlzLmV4dF07XG4gICAgICB0aGlzLnBhdGggPSB0aGlzLmxvb2t1cChmaWxlTmFtZSk7XG4gICAgfVxuICAgIFZpZXcucHJvdG90eXBlLmxvb2t1cCA9IGZ1bmN0aW9uIGxvb2t1cChuYW1lKSB7XG4gICAgICB2YXIgcGF0aDI7XG4gICAgICB2YXIgcm9vdHMgPSBbXS5jb25jYXQodGhpcy5yb290KTtcbiAgICAgIGRlYnVnKCdsb29rdXAgXCIlc1wiJywgbmFtZSk7XG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJvb3RzLmxlbmd0aCAmJiAhcGF0aDI7IGkrKykge1xuICAgICAgICB2YXIgcm9vdCA9IHJvb3RzW2ldO1xuICAgICAgICB2YXIgbG9jID0gcmVzb2x2ZShyb290LCBuYW1lKTtcbiAgICAgICAgdmFyIGRpciA9IGRpcm5hbWUobG9jKTtcbiAgICAgICAgdmFyIGZpbGUgPSBiYXNlbmFtZShsb2MpO1xuICAgICAgICBwYXRoMiA9IHRoaXMucmVzb2x2ZShkaXIsIGZpbGUpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHBhdGgyO1xuICAgIH07XG4gICAgVmlldy5wcm90b3R5cGUucmVuZGVyID0gZnVuY3Rpb24gcmVuZGVyKG9wdGlvbnMsIGNhbGxiYWNrKSB7XG4gICAgICB2YXIgc3luYyA9IHRydWU7XG4gICAgICBkZWJ1ZygncmVuZGVyIFwiJXNcIicsIHRoaXMucGF0aCk7XG4gICAgICB0aGlzLmVuZ2luZSh0aGlzLnBhdGgsIG9wdGlvbnMsIGZ1bmN0aW9uIG9uUmVuZGVyKCkge1xuICAgICAgICBpZiAoIXN5bmMpIHtcbiAgICAgICAgICByZXR1cm4gY2FsbGJhY2suYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgYXJncyA9IG5ldyBBcnJheShhcmd1bWVudHMubGVuZ3RoKTtcbiAgICAgICAgdmFyIGNudHggPSB0aGlzO1xuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgIGFyZ3NbaV0gPSBhcmd1bWVudHNbaV07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHByb2Nlc3MubmV4dFRpY2soZnVuY3Rpb24gcmVuZGVyVGljaygpIHtcbiAgICAgICAgICByZXR1cm4gY2FsbGJhY2suYXBwbHkoY250eCwgYXJncyk7XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgICBzeW5jID0gZmFsc2U7XG4gICAgfTtcbiAgICBWaWV3LnByb3RvdHlwZS5yZXNvbHZlID0gZnVuY3Rpb24gcmVzb2x2ZTIoZGlyLCBmaWxlKSB7XG4gICAgICB2YXIgZXh0ID0gdGhpcy5leHQ7XG4gICAgICB2YXIgcGF0aDIgPSBqb2luKGRpciwgZmlsZSk7XG4gICAgICB2YXIgc3RhdCA9IHRyeVN0YXQocGF0aDIpO1xuICAgICAgaWYgKHN0YXQgJiYgc3RhdC5pc0ZpbGUoKSkge1xuICAgICAgICByZXR1cm4gcGF0aDI7XG4gICAgICB9XG4gICAgICBwYXRoMiA9IGpvaW4oZGlyLCBiYXNlbmFtZShmaWxlLCBleHQpLCBcImluZGV4XCIgKyBleHQpO1xuICAgICAgc3RhdCA9IHRyeVN0YXQocGF0aDIpO1xuICAgICAgaWYgKHN0YXQgJiYgc3RhdC5pc0ZpbGUoKSkge1xuICAgICAgICByZXR1cm4gcGF0aDI7XG4gICAgICB9XG4gICAgfTtcbiAgICBmdW5jdGlvbiB0cnlTdGF0KHBhdGgyKSB7XG4gICAgICBkZWJ1Zygnc3RhdCBcIiVzXCInLCBwYXRoMik7XG4gICAgICB0cnkge1xuICAgICAgICByZXR1cm4gZnMuc3RhdFN5bmMocGF0aDIpO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICByZXR1cm4gdm9pZCAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9ldGFnL2luZGV4LmpzXG52YXIgcmVxdWlyZV9ldGFnID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL2V0YWcvaW5kZXguanNcIihleHBvcnRzMiwgbW9kdWxlMikge1xuICAgIFwidXNlIHN0cmljdFwiO1xuICAgIG1vZHVsZTIuZXhwb3J0cyA9IGV0YWc7XG4gICAgdmFyIGNyeXB0byA9IHJlcXVpcmUoXCJjcnlwdG9cIik7XG4gICAgdmFyIFN0YXRzID0gcmVxdWlyZShcImZzXCIpLlN0YXRzO1xuICAgIHZhciB0b1N0cmluZyA9IE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmc7XG4gICAgZnVuY3Rpb24gZW50aXR5dGFnKGVudGl0eSkge1xuICAgICAgaWYgKGVudGl0eS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgcmV0dXJuICdcIjAtMmptajdsNXJTdzB5VmIvdmxXQVlrSy9ZQndrXCInO1xuICAgICAgfVxuICAgICAgdmFyIGhhc2ggPSBjcnlwdG8uY3JlYXRlSGFzaChcInNoYTFcIikudXBkYXRlKGVudGl0eSwgXCJ1dGY4XCIpLmRpZ2VzdChcImJhc2U2NFwiKS5zdWJzdHJpbmcoMCwgMjcpO1xuICAgICAgdmFyIGxlbiA9IHR5cGVvZiBlbnRpdHkgPT09IFwic3RyaW5nXCIgPyBCdWZmZXIuYnl0ZUxlbmd0aChlbnRpdHksIFwidXRmOFwiKSA6IGVudGl0eS5sZW5ndGg7XG4gICAgICByZXR1cm4gJ1wiJyArIGxlbi50b1N0cmluZygxNikgKyBcIi1cIiArIGhhc2ggKyAnXCInO1xuICAgIH1cbiAgICBmdW5jdGlvbiBldGFnKGVudGl0eSwgb3B0aW9ucykge1xuICAgICAgaWYgKGVudGl0eSA9PSBudWxsKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJhcmd1bWVudCBlbnRpdHkgaXMgcmVxdWlyZWRcIik7XG4gICAgICB9XG4gICAgICB2YXIgaXNTdGF0cyA9IGlzc3RhdHMoZW50aXR5KTtcbiAgICAgIHZhciB3ZWFrID0gb3B0aW9ucyAmJiB0eXBlb2Ygb3B0aW9ucy53ZWFrID09PSBcImJvb2xlYW5cIiA/IG9wdGlvbnMud2VhayA6IGlzU3RhdHM7XG4gICAgICBpZiAoIWlzU3RhdHMgJiYgdHlwZW9mIGVudGl0eSAhPT0gXCJzdHJpbmdcIiAmJiAhQnVmZmVyLmlzQnVmZmVyKGVudGl0eSkpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcImFyZ3VtZW50IGVudGl0eSBtdXN0IGJlIHN0cmluZywgQnVmZmVyLCBvciBmcy5TdGF0c1wiKTtcbiAgICAgIH1cbiAgICAgIHZhciB0YWcgPSBpc1N0YXRzID8gc3RhdHRhZyhlbnRpdHkpIDogZW50aXR5dGFnKGVudGl0eSk7XG4gICAgICByZXR1cm4gd2VhayA/IFwiVy9cIiArIHRhZyA6IHRhZztcbiAgICB9XG4gICAgZnVuY3Rpb24gaXNzdGF0cyhvYmopIHtcbiAgICAgIGlmICh0eXBlb2YgU3RhdHMgPT09IFwiZnVuY3Rpb25cIiAmJiBvYmogaW5zdGFuY2VvZiBTdGF0cykge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBvYmogJiYgdHlwZW9mIG9iaiA9PT0gXCJvYmplY3RcIiAmJiBcImN0aW1lXCIgaW4gb2JqICYmIHRvU3RyaW5nLmNhbGwob2JqLmN0aW1lKSA9PT0gXCJbb2JqZWN0IERhdGVdXCIgJiYgXCJtdGltZVwiIGluIG9iaiAmJiB0b1N0cmluZy5jYWxsKG9iai5tdGltZSkgPT09IFwiW29iamVjdCBEYXRlXVwiICYmIFwiaW5vXCIgaW4gb2JqICYmIHR5cGVvZiBvYmouaW5vID09PSBcIm51bWJlclwiICYmIFwic2l6ZVwiIGluIG9iaiAmJiB0eXBlb2Ygb2JqLnNpemUgPT09IFwibnVtYmVyXCI7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHN0YXR0YWcoc3RhdCkge1xuICAgICAgdmFyIG10aW1lID0gc3RhdC5tdGltZS5nZXRUaW1lKCkudG9TdHJpbmcoMTYpO1xuICAgICAgdmFyIHNpemUgPSBzdGF0LnNpemUudG9TdHJpbmcoMTYpO1xuICAgICAgcmV0dXJuICdcIicgKyBzaXplICsgXCItXCIgKyBtdGltZSArICdcIic7XG4gICAgfVxuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL2V4cHJlc3Mvbm9kZV9tb2R1bGVzL21pbWUtZGIvZGIuanNvblxudmFyIHJlcXVpcmVfZGIyID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL2V4cHJlc3Mvbm9kZV9tb2R1bGVzL21pbWUtZGIvZGIuanNvblwiKGV4cG9ydHMyLCBtb2R1bGUyKSB7XG4gICAgbW9kdWxlMi5leHBvcnRzID0ge1xuICAgICAgXCJhcHBsaWNhdGlvbi8xZC1pbnRlcmxlYXZlZC1wYXJpdHlmZWNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi8zZ3BkYXNoLXFvZS1yZXBvcnQreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY2hhcnNldDogXCJVVEYtOFwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uLzNncHAtaW1zK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vM2dwcGhhbCtqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi8zZ3BwaGFsZm9ybXMranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vYTJsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vYWNlK2Nib3JcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9hY2UranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vYWNlLWdyb3VwY29tbStjYm9yXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vYWNlLXRybCtjYm9yXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vYWN0aXZlbWVzc2FnZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2FjdGl2aXR5K2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2FpZitjYm9yXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vYWlmK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2FsdG8tY2RuaStqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9hbHRvLWNkbmlmaWx0ZXIranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vYWx0by1jb3N0bWFwK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2FsdG8tY29zdG1hcGZpbHRlcitqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9hbHRvLWRpcmVjdG9yeStqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9hbHRvLWVuZHBvaW50Y29zdCtqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9hbHRvLWVuZHBvaW50Y29zdHBhcmFtcytqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9hbHRvLWVuZHBvaW50cHJvcCtqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9hbHRvLWVuZHBvaW50cHJvcHBhcmFtcytqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9hbHRvLWVycm9yK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2FsdG8tbmV0d29ya21hcCtqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9hbHRvLW5ldHdvcmttYXBmaWx0ZXIranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vYWx0by1wcm9wbWFwK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2FsdG8tcHJvcG1hcHBhcmFtcytqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9hbHRvLXRpcHMranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vYWx0by10aXBzcGFyYW1zK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2FsdG8tdXBkYXRlc3RyZWFtY29udHJvbCtqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9hbHRvLXVwZGF0ZXN0cmVhbXBhcmFtcytqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9hbWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9hbmRyZXctaW5zZXRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJlelwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vYXBwaW5zdGFsbGVyXCI6IHtcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYXBwaW5zdGFsbGVyXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9hcHBsZWZpbGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9hcHBsaXh3YXJlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJhd1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vYXBweFwiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImFwcHhcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2FwcHhidW5kbGVcIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJhcHB4YnVuZGxlXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9hdCtqd3RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9hdGZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9hdGZ4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vYXRvbSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImF0b21cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2F0b21jYXQreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJhdG9tY2F0XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9hdG9tZGVsZXRlZCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImF0b21kZWxldGVkXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9hdG9taWNtYWlsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vYXRvbXN2Yyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImF0b21zdmNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2F0c2MtZHdkK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZHdkXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9hdHNjLWR5bmFtaWMtZXZlbnQtbWVzc2FnZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2F0c2MtaGVsZCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImhlbGRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2F0c2MtcmR0K2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2F0c2MtcnNhdCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInJzYXRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2F0eG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vYXV0aC1wb2xpY3kreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9hdXRvbWF0aW9ubWwtYW1sK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYW1sXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9hdXRvbWF0aW9ubWwtYW1seCt6aXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJhbWx4XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9iYWNuZXQteGRkK3ppcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2VcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2JhdGNoLXNtdHBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9iZG9jXCI6IHtcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYmRvY1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vYmVlcCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjaGFyc2V0OiBcIlVURi04XCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vYnVmclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2MycGFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9jYWxlbmRhcitqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9jYWxlbmRhcit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInhjc1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vY2FsbC1jb21wbGV0aW9uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vY2Fscy0xODQwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vY2FwdGl2ZStqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9jYm9yXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vY2Jvci1zZXFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9jY2NleFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2NjbXAreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9jY3htbCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImNjeG1sXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9jZGEreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY2hhcnNldDogXCJVVEYtOFwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2NkZngreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJjZGZ4XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9jZG1pLWNhcGFiaWxpdHlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJjZG1pYVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vY2RtaS1jb250YWluZXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJjZG1pY1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vY2RtaS1kb21haW5cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJjZG1pZFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vY2RtaS1vYmplY3RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJjZG1pb1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vY2RtaS1xdWV1ZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImNkbWlxXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9jZG5pXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vY2UrY2JvclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2NlYVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2NlYS0yMDE4K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vY2VsbG1sK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vY2Z3XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vY2lkLWVkaG9jK2Nib3Itc2VxXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vY2l0eStqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9jaXR5K2pzb24tc2VxXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vY2xyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vY2x1ZSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2NsdWVfaW5mbyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2Ntc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2NucnAreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9jb2FwLWVhcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2NvYXAtZ3JvdXAranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vY29hcC1wYXlsb2FkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vY29tbW9uZ3JvdW5kXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vY29uY2lzZS1wcm9ibGVtLWRldGFpbHMrY2JvclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2NvbmZlcmVuY2UtaW5mbyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2Nvc2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9jb3NlLWtleVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2Nvc2Uta2V5LXNldFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2Nvc2UteDUwOVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2NwbCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImNwbFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vY3NyYXR0cnNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9jc3RhK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vY3N0YWRhdGEreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9jc3ZtK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2N1LXNlZW1lXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJjdVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vY3dsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY3dsXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9jd2wranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vY3dsK3lhbWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9jd3RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9jeWJlcmNhc2hcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9kYXJ0XCI6IHtcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9kYXNoK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibXBkXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9kYXNoLXBhdGNoK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibXBwXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9kYXNoZGVsdGFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9kYXZtb3VudCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImRhdm1vdW50XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9kY2EtcmZ0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZGNkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZGVjLWR4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZGlhbG9nLWluZm8reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9kaWNvbVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImRjbVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZGljb20ranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZGljb20reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9kaWlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9kaXRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9kbnNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9kbnMranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZG5zLW1lc3NhZ2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9kb2Nib29rK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJkYmtcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2RvdHMrY2JvclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2Rwb3Arand0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZHNrcHAreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9kc3NjK2RlclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImRzc2NcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2Rzc2MreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ4ZHNzY1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZHZjc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2VhdCtjd3RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9lYXQrand0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZWF0LWJ1bitjYm9yXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZWF0LWJ1bitqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9lYXQtdWNzK2Nib3JcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9lYXQtdWNzK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2VjbWFzY3JpcHRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZWNtYVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZWRob2MrY2Jvci1zZXFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9lZGktY29uc2VudFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2VkaS14MTJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9lZGlmYWN0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZWZpXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZWxtK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjaGFyc2V0OiBcIlVURi04XCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZWxtK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZW1lcmdlbmN5Y2FsbGRhdGEuY2FwK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNoYXJzZXQ6IFwiVVRGLThcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9lbWVyZ2VuY3ljYWxsZGF0YS5jb21tZW50K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZW1lcmdlbmN5Y2FsbGRhdGEuY29udHJvbCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2VtZXJnZW5jeWNhbGxkYXRhLmRldmljZWluZm8reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9lbWVyZ2VuY3ljYWxsZGF0YS5lY2FsbC5tc2RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9lbWVyZ2VuY3ljYWxsZGF0YS5sZWdhY3llc24ranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZW1lcmdlbmN5Y2FsbGRhdGEucHJvdmlkZXJpbmZvK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZW1lcmdlbmN5Y2FsbGRhdGEuc2VydmljZWluZm8reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9lbWVyZ2VuY3ljYWxsZGF0YS5zdWJzY3JpYmVyaW5mbyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2VtZXJnZW5jeWNhbGxkYXRhLnZlZHMreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9lbW1hK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZW1tYVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZW1vdGlvbm1sK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZW1vdGlvbm1sXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9lbmNhcHJ0cFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2VudGl0eS1zdGF0ZW1lbnQrand0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZXBwK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZXB1Yit6aXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJlcHViXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9lc2hvcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2V4aVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImV4aVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZXhwZWN0LWN0LXJlcG9ydCtqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9leHByZXNzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZXhwXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9mYXN0aW5mb3NldFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2Zhc3Rzb2FwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZmRmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZmRmXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9mZHQreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJmZHRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2ZoaXIranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNoYXJzZXQ6IFwiVVRGLThcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9maGlyK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNoYXJzZXQ6IFwiVVRGLThcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9maWRvLnRydXN0ZWQtYXBwcytqc29uXCI6IHtcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9maXRzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZmxleGZlY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2ZvbnQtc2ZudFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2ZvbnQtdGRwZnJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwZnJcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2ZvbnQtd29mZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2VcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2ZyYW1ld29yay1hdHRyaWJ1dGVzK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZ2VvK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImdlb2pzb25cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2dlbytqc29uLXNlcVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2dlb3BhY2thZ2Urc3FsaXRlM1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2dlb3Bvc2UranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZ2VveGFjbWwranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZ2VveGFjbWwreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9nbHRmLWJ1ZmZlclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2dtbCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImdtbFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZ25hcC1iaW5kaW5nLWp3c1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2duYXAtYmluZGluZy1qd3NkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZ25hcC1iaW5kaW5nLXJvdGF0aW9uLWp3c1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2duYXAtYmluZGluZy1yb3RhdGlvbi1qd3NkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZ3B4K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJncHhcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2dyaWJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9neGZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImd4ZlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZ3ppcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImd6XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9oMjI0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vaGVsZCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2hqc29uXCI6IHtcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiaGpzb25cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2hsN3YyK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNoYXJzZXQ6IFwiVVRGLThcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9odHRwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vaHlwZXJzdHVkaW9cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzdGtcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2liZS1rZXktcmVxdWVzdCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2liZS1wa2ctcmVwbHkreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9pYmUtcHAtZGF0YVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2lnZXNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9pbS1pc2NvbXBvc2luZyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjaGFyc2V0OiBcIlVURi04XCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vaW5kZXhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9pbmRleC5jbWRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9pbmRleC5vYmpcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9pbmRleC5yZXNwb25zZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2luZGV4LnZuZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2lua21sK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiaW5rXCIsIFwiaW5rbWxcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2lvdHBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9pcGZpeFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImlwZml4XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9pcHBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9pc3VwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vaXRzK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiaXRzXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9qYXZhLWFyY2hpdmVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJqYXJcIiwgXCJ3YXJcIiwgXCJlYXJcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2phdmEtc2VyaWFsaXplZC1vYmplY3RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNlclwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vamF2YS12bVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY2xhc3NcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2phdmFzY3JpcHRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGNoYXJzZXQ6IFwiVVRGLThcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJqc1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vamYyZmVlZCtqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9qb3NlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vam9zZStqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9qcmQranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vanNjYWxlbmRhcitqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9qc2NvbnRhY3QranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNoYXJzZXQ6IFwiVVRGLThcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJqc29uXCIsIFwibWFwXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9qc29uLXBhdGNoK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2pzb24tc2VxXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vanNvbjVcIjoge1xuICAgICAgICBleHRlbnNpb25zOiBbXCJqc29uNVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vanNvbm1sK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wianNvbm1sXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9qc29ucGF0aFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2p3aytqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9qd2stc2V0K2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2p3ay1zZXQrand0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vand0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24va3BtbC1yZXF1ZXN0K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24va3BtbC1yZXNwb25zZSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2xkK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImpzb25sZFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbGdyK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibGdyXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9saW5rLWZvcm1hdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2xpbmtzZXRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9saW5rc2V0K2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2xvYWQtY29udHJvbCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2xvZ291dCtqd3RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9sb3N0K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibG9zdHhtbFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbG9zdHN5bmMreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9scGYremlwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbHhmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbWFjLWJpbmhleDQwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiaHF4XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9tYWMtY29tcGFjdHByb1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY3B0XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9tYWN3cml0ZWlpXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbWFkcyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1hZHNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL21hbmlmZXN0K2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjaGFyc2V0OiBcIlVURi04XCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wid2VibWFuaWZlc3RcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL21hcmNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtcmNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL21hcmN4bWwreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtcmN4XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9tYXRoZW1hdGljYVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1hXCIsIFwibmJcIiwgXCJtYlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbWF0aG1sK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibWF0aG1sXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9tYXRobWwtY29udGVudCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL21hdGhtbC1wcmVzZW50YXRpb24reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9tYm1zLWFzc29jaWF0ZWQtcHJvY2VkdXJlLWRlc2NyaXB0aW9uK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbWJtcy1kZXJlZ2lzdGVyK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbWJtcy1lbnZlbG9wZSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL21ibXMtbXNrK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbWJtcy1tc2stcmVzcG9uc2UreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9tYm1zLXByb3RlY3Rpb24tZGVzY3JpcHRpb24reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9tYm1zLXJlY2VwdGlvbi1yZXBvcnQreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9tYm1zLXJlZ2lzdGVyK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbWJtcy1yZWdpc3Rlci1yZXNwb25zZSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL21ibXMtc2NoZWR1bGUreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9tYm1zLXVzZXItc2VydmljZS1kZXNjcmlwdGlvbit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL21ib3hcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtYm94XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9tZWRpYS1wb2xpY3ktZGF0YXNldCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1wZlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbWVkaWFfY29udHJvbCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL21lZGlhc2VydmVyY29udHJvbCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1zY21sXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9tZXJnZS1wYXRjaCtqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9tZXRhbGluayt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibWV0YWxpbmtcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL21ldGFsaW5rNCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1ldGE0XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9tZXRzK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibWV0c1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbWY0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbWlrZXlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9taXBjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbWlzc2luZy1ibG9ja3MrY2Jvci1zZXFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9tbXQtYWVpK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibWFlaVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbW10LXVzZCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm11c2RcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL21vZHMreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtb2RzXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9tb3NzLWtleXNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9tb3NzLXNpZ25hdHVyZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL21vc3NrZXktZGF0YVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL21vc3NrZXktcmVxdWVzdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL21wMjFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtMjFcIiwgXCJtcDIxXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9tcDRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtcDRcIiwgXCJtcGc0XCIsIFwibXA0c1wiLCBcIm00cFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbXBlZzQtZ2VuZXJpY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL21wZWc0LWlvZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL21wZWc0LWlvZC14bXRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9tcmItY29uc3VtZXIreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9tcmItcHVibGlzaCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL21zYy1pdnIreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY2hhcnNldDogXCJVVEYtOFwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL21zYy1taXhlcit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjaGFyc2V0OiBcIlVURi04XCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbXNpeFwiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1zaXhcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL21zaXhidW5kbGVcIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtc2l4YnVuZGxlXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9tc3dvcmRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJkb2NcIiwgXCJkb3RcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL211ZCtqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9tdWx0aXBhcnQtY29yZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL214ZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm14ZlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbi1xdWFkc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm5xXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9uLXRyaXBsZXNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJudFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbmFzZGF0YVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL25ld3MtY2hlY2tncm91cHNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjaGFyc2V0OiBcIlVTLUFTQ0lJXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL25ld3MtZ3JvdXBpbmZvXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY2hhcnNldDogXCJVUy1BU0NJSVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9uZXdzLXRyYW5zbWlzc2lvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL25sc21sK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbm9kZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImNqc1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbnNzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vb2F1dGgtYXV0aHotcmVxK2p3dFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL29ibGl2aW91cy1kbnMtbWVzc2FnZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL29jc3AtcmVxdWVzdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL29jc3AtcmVzcG9uc2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW1cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImJpblwiLCBcImRtc1wiLCBcImxyZlwiLCBcIm1hclwiLCBcInNvXCIsIFwiZGlzdFwiLCBcImRpc3R6XCIsIFwicGtnXCIsIFwiYnBrXCIsIFwiZHVtcFwiLCBcImVsY1wiLCBcImRlcGxveVwiLCBcImV4ZVwiLCBcImRsbFwiLCBcImRlYlwiLCBcImRtZ1wiLCBcImlzb1wiLCBcImltZ1wiLCBcIm1zaVwiLCBcIm1zcFwiLCBcIm1zbVwiLCBcImJ1ZmZlclwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vb2RhXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wib2RhXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9vZG0reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9vZHhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9vZWJwcy1wYWNrYWdlK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wib3BmXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9vZ2dcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJvZ3hcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL29odHRwLWtleXNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9vbWRvYyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wib21kb2NcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL29uZW5vdGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm9uZXRvY1wiLCBcIm9uZXRvYzJcIiwgXCJvbmV0bXBcIiwgXCJvbmVwa2dcIiwgXCJvbmVcIiwgXCJvbmVhXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9vcGMtbm9kZXNldCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL29zY29yZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL294cHNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJveHBzXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9wMjFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9wMjEremlwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcDJwLW92ZXJsYXkreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJyZWxvXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9wYXJpdHlmZWNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9wYXNzcG9ydFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3BhdGNoLW9wcy1lcnJvcit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInhlclwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcGRmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicGRmXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9wZHhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9wZW0tY2VydGlmaWNhdGUtY2hhaW5cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9wZ3AtZW5jcnlwdGVkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicGdwXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9wZ3Ata2V5c1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImFzY1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcGdwLXNpZ25hdHVyZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNpZ1wiLCBcImFzY1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcGljcy1ydWxlc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicHJmXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9waWRmK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNoYXJzZXQ6IFwiVVRGLThcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9waWRmLWRpZmYreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY2hhcnNldDogXCJVVEYtOFwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3BrY3MxMFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInAxMFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcGtjczEyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcGtjczctbWltZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInA3bVwiLCBcInA3Y1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcGtjczctc2lnbmF0dXJlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicDdzXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9wa2NzOFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInA4XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9wa2NzOC1lbmNyeXB0ZWRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9wa2l4LWF0dHItY2VydFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImFjXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9wa2l4LWNlcnRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJjZXJcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3BraXgtY3JsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY3JsXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9wa2l4LXBraXBhdGhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwa2lwYXRoXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9wa2l4Y21wXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicGtpXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9wbHMreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwbHNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3BvYy1zZXR0aW5ncyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjaGFyc2V0OiBcIlVURi04XCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcG9zdHNjcmlwdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYWlcIiwgXCJlcHNcIiwgXCJwc1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcHBzcC10cmFja2VyK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ByaXZhdGUtdG9rZW4taXNzdWVyLWRpcmVjdG9yeVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ByaXZhdGUtdG9rZW4tcmVxdWVzdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ByaXZhdGUtdG9rZW4tcmVzcG9uc2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9wcm9ibGVtK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3Byb2JsZW0reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9wcm92ZW5hbmNlK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicHJvdnhcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3Byb3ZpZGVkLWNsYWltcytqd3RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9wcnMuYWx2ZXN0cmFuZC50aXRyYXgtc2hlZXRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9wcnMuY3d3XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY3d3XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9wcnMuY3luXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY2hhcnNldDogXCI3LUJJVFwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9wcnMuaHB1Yit6aXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9wcnMuaW1wbGllZC1kb2N1bWVudCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3Bycy5pbXBsaWVkLWV4ZWN1dGFibGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9wcnMuaW1wbGllZC1vYmplY3QranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcHJzLmltcGxpZWQtb2JqZWN0K2pzb24tc2VxXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcHJzLmltcGxpZWQtb2JqZWN0K3lhbWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9wcnMuaW1wbGllZC1zdHJ1Y3R1cmVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9wcnMubWF5ZmlsZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3Bycy5ucHJlbmRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9wcnMucGx1Y2tlclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3Bycy5yZGYteG1sLWNyeXB0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcHJzLnZjZmJ6aXAyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcHJzLnhzZit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInhzZlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcHNrYyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInBza2N4bWxcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3B2ZCtqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9xc2lnXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcmFtbCt5YW1sXCI6IHtcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJyYW1sXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9yYXB0b3JmZWNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9yZGFwK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3JkZit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInJkZlwiLCBcIm93bFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcmVnaW5mbyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInJpZlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcmVsYXgtbmctY29tcGFjdC1zeW50YXhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJybmNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3JlbW90ZS1wcmludGluZ1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcmVwdXRvbitqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9yZXNvbHZlLXJlc3BvbnNlK2p3dFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3Jlc291cmNlLWxpc3RzK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicmxcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3Jlc291cmNlLWxpc3RzLWRpZmYreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJybGRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3JmYyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3Jpc2Nvc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3JsbWkreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9ybHMtc2VydmljZXMreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJyc1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcm91dGUtYXBkK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicmFwZFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcm91dGUtcy10c2lkK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic2xzXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9yb3V0ZS11c2QreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJydXNkXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9ycGtpLWNoZWNrbGlzdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3Jwa2ktZ2hvc3RidXN0ZXJzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZ2JyXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9ycGtpLW1hbmlmZXN0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibWZ0XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9ycGtpLXB1YmxpY2F0aW9uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcnBraS1yb2FcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJyb2FcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3Jwa2ktc2lnbmVkLXRhbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3Jwa2ktdXBkb3duXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcnNkK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJyc2RcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3Jzcyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicnNzXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9ydGZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInJ0ZlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcnRwbG9vcGJhY2tcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9ydHhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9zYW1sYXNzZXJ0aW9uK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vc2FtbG1ldGFkYXRhK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vc2FyaWYranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vc2FyaWYtZXh0ZXJuYWwtcHJvcGVydGllcytqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9zYmVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9zYm1sK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic2JtbFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vc2NhaXAreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9zY2ltK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3NjdnAtY3YtcmVxdWVzdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNjcVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vc2N2cC1jdi1yZXNwb25zZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNjc1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vc2N2cC12cC1yZXF1ZXN0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic3BxXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9zY3ZwLXZwLXJlc3BvbnNlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic3BwXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9zZHBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzZHBcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3NlY2V2ZW50K2p3dFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3Nlbm1sK2Nib3JcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9zZW5tbCtqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9zZW5tbCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNlbm1seFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vc2VubWwtZXRjaCtjYm9yXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vc2VubWwtZXRjaCtqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9zZW5tbC1leGlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9zZW5zbWwrY2JvclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3NlbnNtbCtqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9zZW5zbWwreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzZW5zbWx4XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9zZW5zbWwtZXhpXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vc2VwK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vc2VwLWV4aVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3Nlc3Npb24taW5mb1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3NldC1wYXltZW50XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vc2V0LXBheW1lbnQtaW5pdGlhdGlvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNldHBheVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vc2V0LXJlZ2lzdHJhdGlvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3NldC1yZWdpc3RyYXRpb24taW5pdGlhdGlvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNldHJlZ1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vc2dtbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3NnbWwtb3Blbi1jYXRhbG9nXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vc2hmK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic2hmXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9zaWV2ZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNpdlwiLCBcInNpZXZlXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9zaW1wbGUtZmlsdGVyK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vc2ltcGxlLW1lc3NhZ2Utc3VtbWFyeVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3NpbXBsZXN5bWJvbGNvbnRhaW5lclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3NpcGNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9zbGF0ZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3NtaWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3NtaWwreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzbWlcIiwgXCJzbWlsXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9zbXB0ZTMzNm1cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9zb2FwK2Zhc3RpbmZvc2V0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vc29hcCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3NwYXJxbC1xdWVyeVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInJxXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9zcGFycWwtcmVzdWx0cyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNyeFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vc3BkeCtqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9zcGlyaXRzLWV2ZW50K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vc3FsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic3FsXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9zcmdzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZ3JhbVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vc3Jncyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImdyeG1sXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9zcnUreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzcnVcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3NzZGwreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNzZGxcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3NzbGtleWxvZ2ZpbGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9zc21sK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic3NtbFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vc3QyMTEwLTQxXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vc3RpeCtqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9zdHJhdHVtXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vc3dpZCtjYm9yXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vc3dpZCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInN3aWR0YWdcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3RhbXAtYXBleC11cGRhdGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi90YW1wLWFwZXgtdXBkYXRlLWNvbmZpcm1cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi90YW1wLWNvbW11bml0eS11cGRhdGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi90YW1wLWNvbW11bml0eS11cGRhdGUtY29uZmlybVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3RhbXAtZXJyb3JcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi90YW1wLXNlcXVlbmNlLWFkanVzdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3RhbXAtc2VxdWVuY2UtYWRqdXN0LWNvbmZpcm1cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi90YW1wLXN0YXR1cy1xdWVyeVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3RhbXAtc3RhdHVzLXJlc3BvbnNlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdGFtcC11cGRhdGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi90YW1wLXVwZGF0ZS1jb25maXJtXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdGFyXCI6IHtcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi90YXhpaStqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi90ZCtqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi90ZWkreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ0ZWlcIiwgXCJ0ZWljb3JwdXNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3RldHJhX2lzaVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3RocmF1ZCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInRmaVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdGltZXN0YW1wLXF1ZXJ5XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdGltZXN0YW1wLXJlcGx5XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdGltZXN0YW1wZWQtZGF0YVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInRzZFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdGxzcnB0K2d6aXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi90bHNycHQranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdG0ranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdG5hdXRobGlzdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3RvYytjYm9yXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdG9rZW4taW50cm9zcGVjdGlvbitqd3RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi90b21sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ0b21sXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi90cmlja2xlLWljZS1zZHBmcmFnXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdHJpZ1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInRyaWdcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3RydXN0LWNoYWluK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3RydXN0LW1hcmsrand0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdHJ1c3QtbWFyay1kZWxlZ2F0aW9uK2p3dFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3R0bWwreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ0dG1sXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi90dmUtdHJpZ2dlclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3R6aWZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi90emlmLWxlYXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi91Ympzb25cIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ1YmpcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3VjY3MrY2JvclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3VqY3MranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdWxwZmVjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdXJjLWdycHNoZWV0K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdXJjLXJlc3NoZWV0K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicnNoZWV0XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi91cmMtdGFyZ2V0ZGVzYyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInRkXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi91cmMtdWlzb2NrZXRkZXNjK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdmNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92Yytjb3NlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdmMrand0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdmNhcmQranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdmNhcmQreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92ZW1taVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZpdmlkZW5jZS5zY3JpcHRmaWxlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuMTAwMG1pbmRzLmRlY2lzaW9uLW1vZGVsK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiMWttXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuMW9iXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAtcHJvc2UreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC1wcm9zZS1wYzNhK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAtcHJvc2UtcGMzYWNoK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAtcHJvc2UtcGMzY2greG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC1wcm9zZS1wYzgreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC12MngtbG9jYWwtc2VydmljZS1pbmZvcm1hdGlvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLjVnbmFzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAuNWdzYTJ4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAuNWdzYTJ4LWxvY2FsLXNlcnZpY2UtaW5mb3JtYXRpb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC41Z3N2MnhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC41Z3N2MngtbG9jYWwtc2VydmljZS1pbmZvcm1hdGlvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLmFjY2Vzcy10cmFuc2Zlci1ldmVudHMreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5ic2YreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5jcnMreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5jdXJyZW50LWxvY2F0aW9uLWRpc2NvdmVyeSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLmdtb3AreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5ndHBjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAuaW50ZXJ3b3JraW5nLWRhdGFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5scHBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5tYy1zaWduYWxsaW5nLWVhclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLm1jZGF0YS1hZmZpbGlhdGlvbi1jb21tYW5kK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAubWNkYXRhLWluZm8reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5tY2RhdGEtbXNnc3RvcmUtY3RybC1yZXF1ZXN0K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAubWNkYXRhLXBheWxvYWRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5tY2RhdGEtcmVncm91cCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLm1jZGF0YS1zZXJ2aWNlLWNvbmZpZyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLm1jZGF0YS1zaWduYWxsaW5nXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAubWNkYXRhLXVlLWNvbmZpZyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLm1jZGF0YS11c2VyLXByb2ZpbGUreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5tY3B0dC1hZmZpbGlhdGlvbi1jb21tYW5kK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAubWNwdHQtZmxvb3ItcmVxdWVzdCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLm1jcHR0LWluZm8reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5tY3B0dC1sb2NhdGlvbi1pbmZvK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAubWNwdHQtbWJtcy11c2FnZS1pbmZvK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAubWNwdHQtcmVncm91cCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLm1jcHR0LXNlcnZpY2UtY29uZmlnK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAubWNwdHQtc2lnbmVkK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAubWNwdHQtdWUtY29uZmlnK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAubWNwdHQtdWUtaW5pdC1jb25maWcreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5tY3B0dC11c2VyLXByb2ZpbGUreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5tY3ZpZGVvLWFmZmlsaWF0aW9uLWNvbW1hbmQreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5tY3ZpZGVvLWluZm8reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5tY3ZpZGVvLWxvY2F0aW9uLWluZm8reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5tY3ZpZGVvLW1ibXMtdXNhZ2UtaW5mbyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLm1jdmlkZW8tcmVncm91cCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLm1jdmlkZW8tc2VydmljZS1jb25maWcreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5tY3ZpZGVvLXRyYW5zbWlzc2lvbi1yZXF1ZXN0K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAubWN2aWRlby11ZS1jb25maWcreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5tY3ZpZGVvLXVzZXItcHJvZmlsZSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLm1pZC1jYWxsK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAubmdhcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLnBmY3BcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5waWMtYnctbGFyZ2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwbGJcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLnBpYy1idy1zbWFsbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInBzYlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAucGljLWJ3LXZhclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInB2YlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAucGluYXBwLWluZm8reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5zMWFwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAuc2VhbC1ncm91cC1kb2MreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5zZWFsLWluZm8reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5zZWFsLWxvY2F0aW9uLWluZm8reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5zZWFsLW1ibXMtdXNhZ2UtaW5mbyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLnNlYWwtbmV0d29yay1xb3MtbWFuYWdlbWVudC1pbmZvK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAuc2VhbC11ZS1jb25maWctaW5mbyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLnNlYWwtdW5pY2FzdC1pbmZvK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAuc2VhbC11c2VyLXByb2ZpbGUtaW5mbyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLnNtc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLnNtcyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLnNydmNjLWV4dCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLnNydmNjLWluZm8reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5zdGF0ZS1hbmQtZXZlbnQtaW5mbyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLnVzc2QreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC52MnhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC52YWUtaW5mbyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwMi5iY21jc2luZm8reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcDIuc21zXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAyLnRjYXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ0Y2FwXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2xpZ2h0c3NvZnR3YXJlLmltYWdlc2NhbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zbS5wb3N0LWl0LW5vdGVzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicHduXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYWNjcGFjLnNpbXBseS5hc29cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJhc29cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hY2NwYWMuc2ltcGx5LmltcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImltcFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFjbS5hZGRyZXNzeGZlcitqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYWNtLmNoYXRib3QranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFjdWNvYm9sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYWN1XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYWN1Y29ycFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImF0Y1wiLCBcImFjdXRjXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYWRvYmUuYWlyLWFwcGxpY2F0aW9uLWluc3RhbGxlci1wYWNrYWdlK3ppcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYWlyXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYWRvYmUuZmxhc2gubW92aWVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYWRvYmUuZm9ybXNjZW50cmFsLmZjZHRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJmY2R0XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYWRvYmUuZnhwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZnhwXCIsIFwiZnhwbFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFkb2JlLnBhcnRpYWwtdXBsb2FkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFkb2JlLnhkcCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInhkcFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFkb2JlLnhmZGZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInhmZGZcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hZXRoZXIuaW1wXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFmcGMuYWZwbGluZWRhdGFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYWZwYy5hZnBsaW5lZGF0YS1wYWdlZGVmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFmcGMuY21vY2EtY21yZXNvdXJjZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hZnBjLmZvY2EtY2hhcnNldFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hZnBjLmZvY2EtY29kZWRmb250XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFmcGMuZm9jYS1jb2RlcGFnZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hZnBjLm1vZGNhXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFmcGMubW9kY2EtY210YWJsZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hZnBjLm1vZGNhLWZvcm1kZWZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYWZwYy5tb2RjYS1tZWRpdW1tYXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYWZwYy5tb2RjYS1vYmplY3Rjb250YWluZXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYWZwYy5tb2RjYS1vdmVybGF5XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFmcGMubW9kY2EtcGFnZXNlZ21lbnRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYWdlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYWdlXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYWgtYmFyY29kZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFoZWFkLnNwYWNlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYWhlYWRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5haXJ6aXAuZmlsZXNlY3VyZS5hemZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJhemZcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5haXJ6aXAuZmlsZXNlY3VyZS5henNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJhenNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hbWFkZXVzK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hbWF6b24uZWJvb2tcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImF6d1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFtYXpvbi5tb2JpOC1lYm9va1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hbWVyaWNhbmR5bmFtaWNzLmFjY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImFjY1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFtaWdhLmFtaVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImFtaVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFtdW5kc2VuLm1hemUreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYW5kcm9pZC5vdGFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYW5kcm9pZC5wYWNrYWdlLWFyY2hpdmVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImFwa1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFua2lcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYW5zZXItd2ViLWNlcnRpZmljYXRlLWlzc3VlLWluaXRpYXRpb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJjaWlcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hbnNlci13ZWItZnVuZHMtdHJhbnNmZXItaW5pdGlhdGlvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZnRpXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYW50aXguZ2FtZS1jb21wb25lbnRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJhdHhcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hcGFjaGUuYXJyb3cuZmlsZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hcGFjaGUuYXJyb3cuc3RyZWFtXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFwYWNoZS5wYXJxdWV0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFwYWNoZS50aHJpZnQuYmluYXJ5XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFwYWNoZS50aHJpZnQuY29tcGFjdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hcGFjaGUudGhyaWZ0Lmpzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYXBleGxhbmdcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYXBpK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hcGxleHRvci53YXJycCtqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYXBvdGhla2VuZGUucmVzZXJ2YXRpb24ranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFwcGxlLmluc3RhbGxlcit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1wa2dcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hcHBsZS5rZXlub3RlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wia2V5XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYXBwbGUubXBlZ3VybFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm0zdThcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hcHBsZS5udW1iZXJzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibnVtYmVyc1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFwcGxlLnBhZ2VzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicGFnZXNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hcHBsZS5wa3Bhc3NcIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwa3Bhc3NcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hcmFzdHJhLnN3aVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFyaXN0YW5ldHdvcmtzLnN3aVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInN3aVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFydGlzYW4ranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFydHNxdWFyZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hc3RyYWVhLXNvZnR3YXJlLmlvdGFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJpb3RhXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYXVkaW9ncmFwaFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImFlcFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmF1dG9kZXNrLmZieFwiOiB7XG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImZieFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmF1dG9wYWNrYWdlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmF2YWxvbitqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYXZpc3Rhcit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5iYWxzYW1pcS5ibW1sK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYm1tbFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmJhbHNhbWlxLmJtcHJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYmFuYW5hLWFjY291bnRpbmdcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYmJmLnVzcC5lcnJvclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5iYmYudXNwLm1zZ1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5iYmYudXNwLm1zZytqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYmVraXR6dXItc3RlY2granNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmJlbGlnaHRzb2Z0LmxoemQremlwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmJlbGlnaHRzb2Z0LmxoemwremlwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmJpbnQubWVkLWNvbnRlbnRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYmlvcGF4LnJkZit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ibGluay1pZGItdmFsdWUtd3JhcHBlclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ibHVlaWNlLm11bHRpcGFzc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1wbVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmJsdWV0b290aC5lcC5vb2JcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYmx1ZXRvb3RoLmxlLm9vYlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ibWlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJibWlcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5icGZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYnBmM1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5idXNpbmVzc29iamVjdHNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJyZXBcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ieXUudWFwaStqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYnppcDNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYzN2b2Muc2NoZWR1bGUreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuY2FiLWpzY3JpcHRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuY2Fub24tY3BkbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jYW5vbi1saXBzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmNhcGFzeXN0ZW1zLXBnK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jZW5kaW8udGhpbmxpbmMuY2xpZW50Y29uZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jZW50dXJ5LXN5c3RlbXMudGNwX3N0cmVhbVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jaGVtZHJhdyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImNkeG1sXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuY2hlc3MtcGduXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmNoaXBudXRzLmthcmFva2UtbW1kXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibW1kXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuY2llZGlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuY2luZGVyZWxsYVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImNkeVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmNpcnBhY2suaXNkbi1leHRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuY2l0YXRpb25zdHlsZXMuc3R5bGUreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJjc2xcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jbGF5bW9yZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImNsYVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmNsb2FudG8ucnA5XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicnA5XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuY2xvbmsuYzRncm91cFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImM0Z1wiLCBcImM0ZFwiLCBcImM0ZlwiLCBcImM0cFwiLCBcImM0dVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmNsdWV0cnVzdC5jYXJ0b21vYmlsZS1jb25maWdcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJjMTFhbWNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jbHVldHJ1c3QuY2FydG9tb2JpbGUtY29uZmlnLXBrZ1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImMxMWFtelwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmNuY2YuaGVsbS5jaGFydC5jb250ZW50LnYxLnRhcitnemlwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmNuY2YuaGVsbS5jaGFydC5wcm92ZW5hbmNlLnYxLnByb3ZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuY25jZi5oZWxtLmNvbmZpZy52MStqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuY29mZmVlc2NyaXB0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmNvbGxhYmlvLnhvZG9jdW1lbnRzLmRvY3VtZW50XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmNvbGxhYmlvLnhvZG9jdW1lbnRzLmRvY3VtZW50LXRlbXBsYXRlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmNvbGxhYmlvLnhvZG9jdW1lbnRzLnByZXNlbnRhdGlvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jb2xsYWJpby54b2RvY3VtZW50cy5wcmVzZW50YXRpb24tdGVtcGxhdGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuY29sbGFiaW8ueG9kb2N1bWVudHMuc3ByZWFkc2hlZXRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuY29sbGFiaW8ueG9kb2N1bWVudHMuc3ByZWFkc2hlZXQtdGVtcGxhdGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuY29sbGVjdGlvbitqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuY29sbGVjdGlvbi5kb2MranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmNvbGxlY3Rpb24ubmV4dCtqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuY29taWNib29rK3ppcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2VcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jb21pY2Jvb2stcmFyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmNvbW1lcmNlLWJhdHRlbGxlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmNvbW1vbnNwYWNlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY3NwXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuY29udGFjdC5jbXNnXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY2RiY21zZ1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmNvcmVvcy5pZ25pdGlvbitqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuY29zbW9jYWxsZXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJjbWNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jcmljay5jbGlja2VyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY2xreFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmNyaWNrLmNsaWNrZXIua2V5Ym9hcmRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJjbGtrXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuY3JpY2suY2xpY2tlci5wYWxldHRlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY2xrcFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmNyaWNrLmNsaWNrZXIudGVtcGxhdGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJjbGt0XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuY3JpY2suY2xpY2tlci53b3JkYmFua1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImNsa3dcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jcml0aWNhbHRvb2xzLndicyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIndic1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmNyeXB0aWkucGlwZStqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuY3J5cHRvLXNoYWRlLWZpbGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuY3J5cHRvbWF0b3IuZW5jcnlwdGVkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmNyeXB0b21hdG9yLnZhdWx0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmN0Yy1wb3NtbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInBtbFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmN0Y3Qud3MreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuY3Vwcy1wZGZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuY3Vwcy1wb3N0c2NyaXB0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmN1cHMtcHBkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicHBkXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuY3Vwcy1yYXN0ZXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuY3Vwcy1yYXdcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuY3VybFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jdXJsLmNhclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY2FyXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuY3VybC5wY3VybFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicGN1cmxcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jeWFuLmRlYW4ucm9vdCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jeWJhbmtcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuY3ljbG9uZWR4K2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jeWNsb25lZHgreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZDJsLmNvdXJzZXBhY2thZ2UxcDAremlwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmQzbS1kYXRhc2V0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmQzbS1wcm9ibGVtXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmRhcnRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImRhcnRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5kYXRhLXZpc2lvbi5yZHpcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJyZHpcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5kYXRhbG9nXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmRhdGFwYWNrYWdlK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5kYXRhcmVzb3VyY2UranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmRiZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImRiZlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmRjbXAreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJkY21wXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZGViaWFuLmJpbmFyeS1wYWNrYWdlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmRlY2UuZGF0YVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInV2ZlwiLCBcInV2dmZcIiwgXCJ1dmRcIiwgXCJ1dnZkXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZGVjZS50dG1sK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1widXZ0XCIsIFwidXZ2dFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmRlY2UudW5zcGVjaWZpZWRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ1dnhcIiwgXCJ1dnZ4XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZGVjZS56aXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ1dnpcIiwgXCJ1dnZ6XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZGVub3ZvLmZjc2VsYXlvdXQtbGlua1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImZlX2xhdW5jaFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmRlc211bWUubW92aWVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZGlyLWJpLnBsYXRlLWRsLW5vc3VmZml4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmRtLmRlbGVnYXRpb24reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZG5hXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZG5hXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZG9jdW1lbnQranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmRvbGJ5Lm1scFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibWxwXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZG9sYnkubW9iaWxlLjFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZG9sYnkubW9iaWxlLjJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZG9yZW1pci5zY29yZWNsb3VkLWJpbmFyeS1kb2N1bWVudFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5kcGdyYXBoXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZHBnXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZHJlYW1mYWN0b3J5XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZGZhY1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmRyaXZlK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5kcy1rZXlwb2ludFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wia3B4eFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmR0Zy5sb2NhbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5kdGcubG9jYWwuZmxhc2hcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZHRnLmxvY2FsLmh0bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZHZiLmFpdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImFpdFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmR2Yi5kdmJpc2wreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZHZiLmR2YmpcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZHZiLmVzZ2NvbnRhaW5lclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5kdmIuaXBkY2RmdG5vdGlmYWNjZXNzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmR2Yi5pcGRjZXNnYWNjZXNzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmR2Yi5pcGRjZXNnYWNjZXNzMlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5kdmIuaXBkY2VzZ3BkZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5kdmIuaXBkY3JvYW1pbmdcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZHZiLmlwdHYuYWxmZWMtYmFzZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5kdmIuaXB0di5hbGZlYy1lbmhhbmNlbWVudFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5kdmIubm90aWYtYWdncmVnYXRlLXJvb3QreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZHZiLm5vdGlmLWNvbnRhaW5lcit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5kdmIubm90aWYtZ2VuZXJpYyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5kdmIubm90aWYtaWEtbXNnbGlzdCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5kdmIubm90aWYtaWEtcmVnaXN0cmF0aW9uLXJlcXVlc3QreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZHZiLm5vdGlmLWlhLXJlZ2lzdHJhdGlvbi1yZXNwb25zZSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5kdmIubm90aWYtaW5pdCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5kdmIucGZyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmR2Yi5zZXJ2aWNlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic3ZjXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZHhyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmR5bmFnZW9cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJnZW9cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5kenJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZWFzeWthcmFva2UuY2RnZG93bmxvYWRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZWNkaXMtdXBkYXRlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmVjaXAucmxwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmVjbGlwc2UuZGl0dG8ranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmVjb3dpbi5jaGFydFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1hZ1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmVjb3dpbi5maWxlcmVxdWVzdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5lY293aW4uZmlsZXVwZGF0ZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5lY293aW4uc2VyaWVzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmVjb3dpbi5zZXJpZXNyZXF1ZXN0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmVjb3dpbi5zZXJpZXN1cGRhdGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZWZpLmltZ1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5lZmkuaXNvXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmVsbit6aXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZW1jbGllbnQuYWNjZXNzcmVxdWVzdCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5lbmxpdmVuXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibm1sXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZW5waGFzZS5lbnZveVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5lcHJpbnRzLmRhdGEreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZXBzb24uZXNmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZXNmXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZXBzb24ubXNmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibXNmXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZXBzb24ucXVpY2thbmltZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInFhbVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmVwc29uLnNhbHRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzbHRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5lcHNvbi5zc2ZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzc2ZcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5lcmljc3Nvbi5xdWlja2NhbGxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZXJvZnNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZXNwYXNzLWVzcGFzcyt6aXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZXN6aWdubzMreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJlczNcIiwgXCJldDNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ldHNpLmFvYyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ldHNpLmFzaWMtZSt6aXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZXRzaS5hc2ljLXMremlwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmV0c2kuY3VnK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmV0c2kuaXB0dmNvbW1hbmQreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZXRzaS5pcHR2ZGlzY292ZXJ5K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmV0c2kuaXB0dnByb2ZpbGUreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZXRzaS5pcHR2c2FkLWJjK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmV0c2kuaXB0dnNhZC1jb2QreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZXRzaS5pcHR2c2FkLW5wdnIreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZXRzaS5pcHR2c2VydmljZSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ldHNpLmlwdHZzeW5jK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmV0c2kuaXB0dnVlcHJvZmlsZSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ldHNpLm1jaWQreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZXRzaS5taGVnNVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ldHNpLm92ZXJsb2FkLWNvbnRyb2wtcG9saWN5LWRhdGFzZXQreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZXRzaS5wc3RuK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmV0c2kuc2NpK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmV0c2kuc2ltc2VydnMreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZXRzaS50aW1lc3RhbXAtdG9rZW5cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZXRzaS50c2wreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZXRzaS50c2wuZGVyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmV1Lmthc3Bhcmlhbi5jYXIranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmV1ZG9yYS5kYXRhXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmV2b2x2LmVjaWcucHJvZmlsZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ldm9sdi5lY2lnLnNldHRpbmdzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmV2b2x2LmVjaWcudGhlbWVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZXhzdHJlYW0tZW1wb3dlcit6aXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZXhzdHJlYW0tcGFja2FnZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5lenBpeC1hbGJ1bVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImV6MlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmV6cGl4LXBhY2thZ2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJlejNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5mLXNlY3VyZS5tb2JpbGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZmFtaWx5c2VhcmNoLmdlZGNvbSt6aXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZmFzdGNvcHktZGlzay1pbWFnZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5mZGZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImZkZlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmZkc24ubXNlZWRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtc2VlZFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmZkc24uc2VlZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNlZWRcIiwgXCJkYXRhbGVzc1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmZkc24uc3RhdGlvbnhtbCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjaGFyc2V0OiBcIlhNTC1CQVNFRFwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5mZnNuc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5maWNsYWIuZmxiK3ppcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2VcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5maWxtaXQuemZjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmZpbnRzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmZpcmVtb25rZXlzLmNsb3VkY2VsbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5mbG9ncmFwaGl0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZ3BoXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZmx1eHRpbWUuY2xpcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImZ0Y1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmZvbnQtZm9udGZvcmdlLXNmZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5mcmFtZW1ha2VyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZm1cIiwgXCJmcmFtZVwiLCBcIm1ha2VyXCIsIFwiYm9va1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmZyZWVsb2cuY29taWNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZnJvZ2Fucy5mbmNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImZuY1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmZyb2dhbnMubHRmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJsdGZcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5mc2Mud2VibGF1bmNoXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZnNjXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZnVqaWZpbG0uZmIuZG9jdXdvcmtzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmZ1amlmaWxtLmZiLmRvY3V3b3Jrcy5iaW5kZXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZnVqaWZpbG0uZmIuZG9jdXdvcmtzLmNvbnRhaW5lclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5mdWppZmlsbS5mYi5qZmkreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZnVqaXRzdS5vYXN5c1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm9hc1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmZ1aml0c3Uub2FzeXMyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wib2EyXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZnVqaXRzdS5vYXN5czNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJvYTNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5mdWppdHN1Lm9hc3lzZ3BcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJmZzVcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5mdWppdHN1Lm9hc3lzcHJzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYmgyXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZnVqaXhlcm94LmFydC1leFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5mdWppeGVyb3guYXJ0NFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5mdWppeGVyb3guZGRkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZGRkXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZnVqaXhlcm94LmRvY3V3b3Jrc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInhkd1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmZ1aml4ZXJveC5kb2N1d29ya3MuYmluZGVyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieGJkXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZnVqaXhlcm94LmRvY3V3b3Jrcy5jb250YWluZXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZnVqaXhlcm94LmhicGxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZnV0LW1pc25ldFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5mdXRvaW4rY2JvclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5mdXRvaW4ranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmZ1enp5c2hlZXRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJmenNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5nYTRnaC5wYXNzcG9ydCtqd3RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ2Vub21hdGl4LnR1eGVkb1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInR4ZFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmdlbm96aXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ2VudGljcy5ncmQranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmdlbnRvby5jYXRtZXRhZGF0YSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5nZW50b28uZWJ1aWxkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmdlbnRvby5lY2xhc3NcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ2VudG9vLmdwa2dcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ2VudG9vLm1hbmlmZXN0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmdlbnRvby5wa2dtZXRhZGF0YSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5nZW50b28ueHBha1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5nZW8ranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ2VvY3ViZSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmdlb2dlYnJhLmZpbGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJnZ2JcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5nZW9nZWJyYS5waW5ib2FyZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5nZW9nZWJyYS5zbGlkZXNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJnZ3NcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5nZW9nZWJyYS50b29sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZ2d0XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ2VvbWV0cnktZXhwbG9yZXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJnZXhcIiwgXCJncmVcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5nZW9uZXh0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZ3h0XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ2VvcGxhblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImcyd1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmdlb3NwYWNlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZzN3XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ2VyYmVyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmdsb2JhbHBsYXRmb3JtLmNhcmQtY29udGVudC1tZ3RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ2xvYmFscGxhdGZvcm0uY2FyZC1jb250ZW50LW1ndC1yZXNwb25zZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5nbXhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJnbXhcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5nbnUudGFsZXIuZXhjaGFuZ2UranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmdudS50YWxlci5tZXJjaGFudCtqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ29vZ2xlLWFwcHMuYXVkaW9cIjoge30sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5nb29nbGUtYXBwcy5kb2N1bWVudFwiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImdkb2NcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5nb29nbGUtYXBwcy5kcmF3aW5nXCI6IHtcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZ2RyYXdcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5nb29nbGUtYXBwcy5kcml2ZS1zZGtcIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ29vZ2xlLWFwcHMuZmlsZVwiOiB7fSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmdvb2dsZS1hcHBzLmZvbGRlclwiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2VcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5nb29nbGUtYXBwcy5mb3JtXCI6IHtcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZ2Zvcm1cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5nb29nbGUtYXBwcy5mdXNpb250YWJsZVwiOiB7fSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmdvb2dsZS1hcHBzLmphbVwiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImdqYW1cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5nb29nbGUtYXBwcy5tYWlsLWxheW91dFwiOiB7fSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmdvb2dsZS1hcHBzLm1hcFwiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImdtYXBcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5nb29nbGUtYXBwcy5waG90b1wiOiB7fSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmdvb2dsZS1hcHBzLnByZXNlbnRhdGlvblwiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImdzbGlkZXNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5nb29nbGUtYXBwcy5zY3JpcHRcIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJnc2NyaXB0XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ29vZ2xlLWFwcHMuc2hvcnRjdXRcIjoge30sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5nb29nbGUtYXBwcy5zaXRlXCI6IHtcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZ3NpdGVcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5nb29nbGUtYXBwcy5zcHJlYWRzaGVldFwiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImdzaGVldFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmdvb2dsZS1hcHBzLnVua25vd25cIjoge30sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5nb29nbGUtYXBwcy52aWRlb1wiOiB7fSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmdvb2dsZS1lYXJ0aC5rbWwreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJrbWxcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5nb29nbGUtZWFydGgua216XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wia216XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ292LnNrLmUtZm9ybSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmdvdi5zay5lLWZvcm0remlwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmdvdi5zay54bWxkYXRhY29udGFpbmVyK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieGRjZlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmdweHNlZS5tYXAreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ3JhZmVxXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZ3FmXCIsIFwiZ3FzXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ3JpZG1wXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmdyb292ZS1hY2NvdW50XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZ2FjXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ3Jvb3ZlLWhlbHBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJnaGZcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ncm9vdmUtaWRlbnRpdHktbWVzc2FnZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImdpbVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmdyb292ZS1pbmplY3RvclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImdydlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmdyb292ZS10b29sLW1lc3NhZ2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJndG1cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ncm9vdmUtdG9vbC10ZW1wbGF0ZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInRwbFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmdyb292ZS12Y2FyZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInZjZ1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmhhbCtqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaGFsK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiaGFsXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaGFuZGhlbGQtZW50ZXJ0YWlubWVudCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInptbVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmhiY2lcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJoYmNpXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaGMranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmhjbC1iaXJlcG9ydHNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaGR0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmhlcm9rdStqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaGhlLmxlc3Nvbi1wbGF5ZXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJsZXNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ocC1ocGdsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiaHBnbFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmhwLWhwaWRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJocGlkXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaHAtaHBzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiaHBzXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaHAtamx5dFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImpsdFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmhwLXBjbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInBjbFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmhwLXBjbHhsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicGNseGxcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5oc2xcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaHR0cGhvbmVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaHlkcm9zdGF0aXguc29mLWRhdGFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzZmQtaGRzdHhcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5oeXBlcitqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaHlwZXItaXRlbStqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaHlwZXJkcml2ZStqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaHpuLTNkLWNyb3Nzd29yZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5pYm0uYWZwbGluZWRhdGFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5pYm0uZWxlY3Ryb25pYy1tZWRpYVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5pYm0ubWluaXBheVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1weVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmlibS5tb2RjYXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImFmcFwiLCBcImxpc3RhZnBcIiwgXCJsaXN0MzgyMFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmlibS5yaWdodHMtbWFuYWdlbWVudFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImlybVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmlibS5zZWN1cmUtY29udGFpbmVyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic2NcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5pY2Nwcm9maWxlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiaWNjXCIsIFwiaWNtXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaWVlZS4xOTA1XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmlnbG9hZGVyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiaWdsXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaW1hZ2VtZXRlci5mb2xkZXIremlwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmltYWdlbWV0ZXIuaW1hZ2UremlwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmltbWVydmlzaW9uLWl2cFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIml2cFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmltbWVydmlzaW9uLWl2dVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIml2dVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmltcy5pbXNjY3YxcDFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaW1zLmltc2NjdjFwMlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5pbXMuaW1zY2N2MXAzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmltcy5saXMudjIucmVzdWx0K2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5pbXMubHRpLnYyLnRvb2xjb25zdW1lcnByb2ZpbGUranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmltcy5sdGkudjIudG9vbHByb3h5K2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5pbXMubHRpLnYyLnRvb2xwcm94eS5pZCtqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaW1zLmx0aS52Mi50b29sc2V0dGluZ3MranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmltcy5sdGkudjIudG9vbHNldHRpbmdzLnNpbXBsZStqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaW5mb3JtZWRjb250cm9sLnJtcyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5pbmZvcm1peC12aXNpb25hcnlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5pbmZvdGVjaC5wcm9qZWN0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmluZm90ZWNoLnByb2plY3QreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaW5ub3BhdGgud2FtcC5ub3RpZmljYXRpb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaW5zb3JzLmlnbVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImlnbVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmludGVyY29uLmZvcm1uZXRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ4cHdcIiwgXCJ4cHhcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5pbnRlcmdlb1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImkyZ1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmludGVydHJ1c3QuZGlnaWJveFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5pbnRlcnRydXN0Lm5uY3BcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaW50dS5xYm9cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJxYm9cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5pbnR1LnFmeFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInFmeFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmlwZnMuaXBucy1yZWNvcmRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaXBsZC5jYXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaXBsZC5kYWctY2JvclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5pcGxkLmRhZy1qc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmlwbGQucmF3XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmlwdGMuZzIuY2F0YWxvZ2l0ZW0reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaXB0Yy5nMi5jb25jZXB0aXRlbSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5pcHRjLmcyLmtub3dsZWRnZWl0ZW0reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaXB0Yy5nMi5uZXdzaXRlbSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5pcHRjLmcyLm5ld3NtZXNzYWdlK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmlwdGMuZzIucGFja2FnZWl0ZW0reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaXB0Yy5nMi5wbGFubmluZ2l0ZW0reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaXB1bnBsdWdnZWQucmNwcm9maWxlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicmNwcm9maWxlXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaXJlcG9zaXRvcnkucGFja2FnZSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImlycFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmlzLXhwclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInhwclwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmlzYWMuZmNzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZmNzXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaXNvMTE3ODMtMTAremlwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmphbVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImphbVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmphcGFubmV0LWRpcmVjdG9yeS1zZXJ2aWNlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmphcGFubmV0LWpwbnN0b3JlLXdha2V1cFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5qYXBhbm5ldC1wYXltZW50LXdha2V1cFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5qYXBhbm5ldC1yZWdpc3RyYXRpb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuamFwYW5uZXQtcmVnaXN0cmF0aW9uLXdha2V1cFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5qYXBhbm5ldC1zZXRzdG9yZS13YWtldXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuamFwYW5uZXQtdmVyaWZpY2F0aW9uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmphcGFubmV0LXZlcmlmaWNhdGlvbi13YWtldXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuamNwLmphdmFtZS5taWRsZXQtcm1zXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicm1zXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuamlzcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImppc3BcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5qb29zdC5qb2RhLWFyY2hpdmVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJqb2RhXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuanNrLmlzZG4tbmduXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmthaG9vdHpcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJrdHpcIiwgXCJrdHJcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5rZGUua2FyYm9uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wia2FyYm9uXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQua2RlLmtjaGFydFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImNocnRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5rZGUua2Zvcm11bGFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJrZm9cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5rZGUua2l2aW9cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJmbHdcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5rZGUua29udG91clwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImtvblwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmtkZS5rcHJlc2VudGVyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wia3ByXCIsIFwia3B0XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQua2RlLmtzcHJlYWRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJrc3BcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5rZGUua3dvcmRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJrd2RcIiwgXCJrd3RcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5rZGxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQua2VuYW1lYWFwcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImh0a2VcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5rZXltYW4ua21wK3ppcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2VcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5rZXltYW4ua214XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmtpZHNwaXJhdGlvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImtpYVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmtpbmFyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wia25lXCIsIFwia25wXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQua29hblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNrcFwiLCBcInNrZFwiLCBcInNrdFwiLCBcInNrbVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmtvZGFrLWRlc2NyaXB0b3JcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzc2VcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5sYXNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubGFzLmxhcytqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubGFzLmxhcyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImxhc3htbFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmxhc3ppcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5sZGV2LnByb2R1Y3RsaWNlbnNpbmdcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubGVhcCtqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubGliZXJ0eS1yZXF1ZXN0K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmxsYW1hZ3JhcGhpY3MubGlmZS1iYWxhbmNlLmRlc2t0b3BcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJsYmRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5sbGFtYWdyYXBoaWNzLmxpZmUtYmFsYW5jZS5leGNoYW5nZSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImxiZVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmxvZ2lwaXBlLmNpcmN1aXQremlwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmxvb21cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubG90dXMtMS0yLTNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCIxMjNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5sb3R1cy1hcHByb2FjaFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImFwclwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmxvdHVzLWZyZWVsYW5jZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInByZVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmxvdHVzLW5vdGVzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibnNmXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubG90dXMtb3JnYW5pemVyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wib3JnXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubG90dXMtc2NyZWVuY2FtXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic2NtXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubG90dXMtd29yZHByb1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImx3cFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1hY3BvcnRzLnBvcnRwa2dcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwb3J0cGtnXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubWFwYm94LXZlY3Rvci10aWxlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibXZ0XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubWFybGluLmRybS5hY3Rpb250b2tlbit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tYXJsaW4uZHJtLmNvbmZ0b2tlbit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tYXJsaW4uZHJtLmxpY2Vuc2UreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubWFybGluLmRybS5tZGNmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1hc29uK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tYXhhci5hcmNoaXZlLjN0eit6aXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubWF4bWluZC5tYXhtaW5kLWRiXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1jZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1jZFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1kbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tZGwtbWJzZGZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubWVkY2FsY2RhdGFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtYzFcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tZWRpYXN0YXRpb24uY2RrZXlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJjZGtleVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1lZGljYWxob2xvZGVjay5yZWNvcmR4clwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tZXJpZGlhbi1zbGluZ3Nob3RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubWVybWFpZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tZmVyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibXdmXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubWZtcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1mbVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1pY3JvK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5taWNyb2dyYWZ4LmZsb1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImZsb1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1pY3JvZ3JhZnguaWd4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiaWd4XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubWljcm9zb2Z0LnBvcnRhYmxlLWV4ZWN1dGFibGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubWljcm9zb2Z0LndpbmRvd3MudGh1bWJuYWlsLWNhY2hlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1pZWxlK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5taWZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtaWZcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5taW5pc29mdC1ocDMwMDAtc2F2ZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5taXRzdWJpc2hpLm1pc3R5LWd1YXJkLnRydXN0d2ViXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1vYml1cy5kYWZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJkYWZcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tb2JpdXMuZGlzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZGlzXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubW9iaXVzLm1ia1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1ia1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1vYml1cy5tcXlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtcXlcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tb2JpdXMubXNsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibXNsXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubW9iaXVzLnBsY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInBsY1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1vYml1cy50eGZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ0eGZcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tb2RsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1vcGh1bi5hcHBsaWNhdGlvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1wblwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1vcGh1bi5jZXJ0aWZpY2F0ZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1wY1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1vdG9yb2xhLmZsZXhzdWl0ZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tb3Rvcm9sYS5mbGV4c3VpdGUuYWRzaVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tb3Rvcm9sYS5mbGV4c3VpdGUuZmlzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1vdG9yb2xhLmZsZXhzdWl0ZS5nb3RhcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tb3Rvcm9sYS5mbGV4c3VpdGUua21yXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1vdG9yb2xhLmZsZXhzdWl0ZS50dGNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubW90b3JvbGEuZmxleHN1aXRlLndlbVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tb3Rvcm9sYS5pcHJtXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1vemlsbGEueHVsK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieHVsXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubXMtM21mZG9jdW1lbnRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubXMtYXJ0Z2FscnlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJjaWxcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tcy1hc2ZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubXMtY2FiLWNvbXByZXNzZWRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJjYWJcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tcy1jb2xvci5pY2Nwcm9maWxlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubXMtZXhjZWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ4bHNcIiwgXCJ4bG1cIiwgXCJ4bGFcIiwgXCJ4bGNcIiwgXCJ4bHRcIiwgXCJ4bHdcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbC5hZGRpbi5tYWNyb2VuYWJsZWQuMTJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ4bGFtXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwuc2hlZXQuYmluYXJ5Lm1hY3JvZW5hYmxlZC4xMlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInhsc2JcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbC5zaGVldC5tYWNyb2VuYWJsZWQuMTJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ4bHNtXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwudGVtcGxhdGUubWFjcm9lbmFibGVkLjEyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieGx0bVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1zLWZvbnRvYmplY3RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImVvdFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1zLWh0bWxoZWxwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY2htXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubXMtaW1zXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiaW1zXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubXMtbHJtXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibHJtXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubXMtb2ZmaWNlLmFjdGl2ZXgreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubXMtb2ZmaWNldGhlbWVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ0aG14XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubXMtb3BlbnR5cGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1zLW91dGxvb2tcIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtc2dcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tcy1wYWNrYWdlLm9iZnVzY2F0ZWQtb3BlbnR5cGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tcy1wa2kuc2VjY2F0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJjYXRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tcy1wa2kuc3RsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzdGxcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tcy1wbGF5cmVhZHkuaW5pdGlhdG9yK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1zLXBvd2VycG9pbnRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwcHRcIiwgXCJwcHNcIiwgXCJwb3RcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tcy1wb3dlcnBvaW50LmFkZGluLm1hY3JvZW5hYmxlZC4xMlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInBwYW1cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tcy1wb3dlcnBvaW50LnByZXNlbnRhdGlvbi5tYWNyb2VuYWJsZWQuMTJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwcHRtXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubXMtcG93ZXJwb2ludC5zbGlkZS5tYWNyb2VuYWJsZWQuMTJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzbGRtXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubXMtcG93ZXJwb2ludC5zbGlkZXNob3cubWFjcm9lbmFibGVkLjEyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicHBzbVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1zLXBvd2VycG9pbnQudGVtcGxhdGUubWFjcm9lbmFibGVkLjEyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicG90bVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1zLXByaW50ZGV2aWNlY2FwYWJpbGl0aWVzK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1zLXByaW50aW5nLnByaW50dGlja2V0K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubXMtcHJpbnRzY2hlbWF0aWNrZXQreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubXMtcHJvamVjdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1wcFwiLCBcIm1wdFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1zLXRuZWZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubXMtdmlzaW8udmlld2VyXCI6IHtcbiAgICAgICAgZXh0ZW5zaW9uczogW1widmR4XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubXMtd2luZG93cy5kZXZpY2VwYWlyaW5nXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1zLXdpbmRvd3MubndwcmludGluZy5vb2JcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubXMtd2luZG93cy5wcmludGVycGFpcmluZ1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tcy13aW5kb3dzLndzZC5vb2JcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubXMtd21kcm0ubGljLWNobGctcmVxXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1zLXdtZHJtLmxpYy1yZXNwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1zLXdtZHJtLm1ldGVyLWNobGctcmVxXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1zLXdtZHJtLm1ldGVyLXJlc3BcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubXMtd29yZC5kb2N1bWVudC5tYWNyb2VuYWJsZWQuMTJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJkb2NtXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubXMtd29yZC50ZW1wbGF0ZS5tYWNyb2VuYWJsZWQuMTJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJkb3RtXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubXMtd29ya3NcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ3cHNcIiwgXCJ3a3NcIiwgXCJ3Y21cIiwgXCJ3ZGJcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tcy13cGxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ3cGxcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tcy14cHNkb2N1bWVudFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInhwc1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1zYS1kaXNrLWltYWdlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1zZXFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtc2VxXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubXNncGFja1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tc2lnblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tdWx0aWFkLmNyZWF0b3JcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubXVsdGlhZC5jcmVhdG9yLmNpZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tdXNpYy1uaWZmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm11c2ljaWFuXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibXVzXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubXV2ZWUuc3R5bGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtc3R5XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubXluZmNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ0YWdsZXRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5uYWNhbWFyLnlicmlkK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5uYXRvLmJpbmRpbmdkYXRhb2JqZWN0K2Nib3JcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubmF0by5iaW5kaW5nZGF0YW9iamVjdCtqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubmF0by5iaW5kaW5nZGF0YW9iamVjdCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImJkb1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm5hdG8ub3BlbnhtbGZvcm1hdHMtcGFja2FnZS5pZXBkK3ppcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2VcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5uY2QuY29udHJvbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5uY2QucmVmZXJlbmNlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm5lYXJzdC5pbnYranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm5lYnVtaW5kLmxpbmVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubmVydmFuYVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5uZXRmcHhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubmV1cm9sYW5ndWFnZS5ubHVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJubHVcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5uaW1uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm5pbnRlbmRvLm5pdHJvLnJvbVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5uaW50ZW5kby5zbmVzLnJvbVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5uaXRmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibnRmXCIsIFwibml0ZlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm5vYmxlbmV0LWRpcmVjdG9yeVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm5uZFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm5vYmxlbmV0LXNlYWxlclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm5uc1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm5vYmxlbmV0LXdlYlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm5ud1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm5va2lhLmNhdGFsb2dzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm5va2lhLmNvbm1sK3dieG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm5va2lhLmNvbm1sK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm5va2lhLmlwdHYuY29uZmlnK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm5va2lhLmlzZHMtcmFkaW8tcHJlc2V0c1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ub2tpYS5sYW5kbWFyayt3YnhtbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ub2tpYS5sYW5kbWFyayt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ub2tpYS5sYW5kbWFya2NvbGxlY3Rpb24reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubm9raWEubi1nYWdlLmFjK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYWNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ub2tpYS5uLWdhZ2UuZGF0YVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm5nZGF0XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubm9raWEubi1nYWdlLnN5bWJpYW4uaW5zdGFsbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibi1nYWdlXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubm9raWEubmNkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm5va2lhLnBjZCt3YnhtbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ub2tpYS5wY2QreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubm9raWEucmFkaW8tcHJlc2V0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicnBzdFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm5va2lhLnJhZGlvLXByZXNldHNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJycHNzXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubm92YWRpZ20uZWRtXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZWRtXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubm92YWRpZ20uZWR4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZWR4XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubm92YWRpZ20uZXh0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZXh0XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubnR0LWxvY2FsLmNvbnRlbnQtc2hhcmVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubnR0LWxvY2FsLmZpbGUtdHJhbnNmZXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubnR0LWxvY2FsLm9nd19yZW1vdGUtYWNjZXNzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm50dC1sb2NhbC5zaXAtdGFfcmVtb3RlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm50dC1sb2NhbC5zaXAtdGFfdGNwX3N0cmVhbVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vYWkud29ya2Zsb3dzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9haS53b3JrZmxvd3MranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9haS53b3JrZmxvd3MreWFtbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vYXNpcy5vcGVuZG9jdW1lbnQuYmFzZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vYXNpcy5vcGVuZG9jdW1lbnQuY2hhcnRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJvZGNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vYXNpcy5vcGVuZG9jdW1lbnQuY2hhcnQtdGVtcGxhdGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJvdGNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vYXNpcy5vcGVuZG9jdW1lbnQuZGF0YWJhc2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm9kYlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9hc2lzLm9wZW5kb2N1bWVudC5mb3JtdWxhXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wib2RmXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub2FzaXMub3BlbmRvY3VtZW50LmZvcm11bGEtdGVtcGxhdGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJvZGZ0XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub2FzaXMub3BlbmRvY3VtZW50LmdyYXBoaWNzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wib2RnXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub2FzaXMub3BlbmRvY3VtZW50LmdyYXBoaWNzLXRlbXBsYXRlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wib3RnXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub2FzaXMub3BlbmRvY3VtZW50LmltYWdlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wib2RpXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub2FzaXMub3BlbmRvY3VtZW50LmltYWdlLXRlbXBsYXRlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wib3RpXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub2FzaXMub3BlbmRvY3VtZW50LnByZXNlbnRhdGlvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm9kcFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9hc2lzLm9wZW5kb2N1bWVudC5wcmVzZW50YXRpb24tdGVtcGxhdGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJvdHBcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vYXNpcy5vcGVuZG9jdW1lbnQuc3ByZWFkc2hlZXRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJvZHNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vYXNpcy5vcGVuZG9jdW1lbnQuc3ByZWFkc2hlZXQtdGVtcGxhdGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJvdHNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vYXNpcy5vcGVuZG9jdW1lbnQudGV4dFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm9kdFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9hc2lzLm9wZW5kb2N1bWVudC50ZXh0LW1hc3RlclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm9kbVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9hc2lzLm9wZW5kb2N1bWVudC50ZXh0LW1hc3Rlci10ZW1wbGF0ZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vYXNpcy5vcGVuZG9jdW1lbnQudGV4dC10ZW1wbGF0ZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm90dFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9hc2lzLm9wZW5kb2N1bWVudC50ZXh0LXdlYlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm90aFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9iblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vY2YrY2JvclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vY2kuaW1hZ2UubWFuaWZlc3QudjEranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9mdG4ubDEwbitqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub2lwZi5jb250ZW50YWNjZXNzZG93bmxvYWQreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub2lwZi5jb250ZW50YWNjZXNzc3RyZWFtaW5nK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9pcGYuY3NwZy1oZXhiaW5hcnlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub2lwZi5kYWUuc3ZnK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9pcGYuZGFlLnhodG1sK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9pcGYubWlwcHZjb250cm9sbWVzc2FnZSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vaXBmLnBhZS5nZW1cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub2lwZi5zcGRpc2NvdmVyeSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vaXBmLnNwZGxpc3QreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub2lwZi51ZXByb2ZpbGUreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub2lwZi51c2VycHJvZmlsZSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vbHBjLXN1Z2FyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieG9cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vbWEtc2N3cy1jb25maWdcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub21hLXNjd3MtaHR0cC1yZXF1ZXN0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9tYS1zY3dzLWh0dHAtcmVzcG9uc2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub21hLmJjYXN0LmFzc29jaWF0ZWQtcHJvY2VkdXJlLXBhcmFtZXRlcit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vbWEuYmNhc3QuZHJtLXRyaWdnZXIreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vbWEuYmNhc3QuaW1kK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9tYS5iY2FzdC5sdGttXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9tYS5iY2FzdC5ub3RpZmljYXRpb24reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub21hLmJjYXN0LnByb3Zpc2lvbmluZ3RyaWdnZXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub21hLmJjYXN0LnNnYm9vdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vbWEuYmNhc3Quc2dkZCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vbWEuYmNhc3Quc2dkdVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vbWEuYmNhc3Quc2ltcGxlLXN5bWJvbC1jb250YWluZXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub21hLmJjYXN0LnNtYXJ0Y2FyZC10cmlnZ2VyK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub21hLmJjYXN0LnNwcm92K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9tYS5iY2FzdC5zdGttXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9tYS5jYWItYWRkcmVzcy1ib29rK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9tYS5jYWItZmVhdHVyZS1oYW5kbGVyK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9tYS5jYWItcGNjK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9tYS5jYWItc3Vicy1pbnZpdGUreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub21hLmNhYi11c2VyLXByZWZzK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9tYS5kY2RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub21hLmRjZGNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub21hLmRkMit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImRkMlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9tYS5kcm0ucmlzZCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vbWEuZ3JvdXAtdXNhZ2UtbGlzdCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vbWEubHdtMm0rY2JvclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vbWEubHdtMm0ranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9tYS5sd20ybSt0bHZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub21hLnBhbCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vbWEucG9jLmRldGFpbGVkLXByb2dyZXNzLXJlcG9ydCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vbWEucG9jLmZpbmFsLXJlcG9ydCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vbWEucG9jLmdyb3Vwcyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vbWEucG9jLmludm9jYXRpb24tZGVzY3JpcHRvcit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vbWEucG9jLm9wdGltaXplZC1wcm9ncmVzcy1yZXBvcnQreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub21hLnB1c2hcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub21hLnNjaWRtLm1lc3NhZ2VzK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9tYS54Y2FwLWRpcmVjdG9yeSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vbWFkcy1lbWFpbCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjaGFyc2V0OiBcIlVURi04XCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9tYWRzLWZpbGUreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY2hhcnNldDogXCJVVEYtOFwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vbWFkcy1mb2xkZXIreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY2hhcnNldDogXCJVVEYtOFwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vbWFsb2Mtc3VwbC1pbml0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9uZXBhZ2VyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9uZXBhZ2VydGFtcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vbmVwYWdlcnRhbXhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub25lcGFnZXJ0YXRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub25lcGFnZXJ0YXRwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9uZXBhZ2VydGF0eFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vbnZpZi5tZXRhZGF0YVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVuYmxveC5nYW1lK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wib2JneFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW5ibG94LmdhbWUtYmluYXJ5XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW5leWUub2ViXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW5vZmZpY2VvcmcuZXh0ZW5zaW9uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJveHRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVuc3RyZWV0bWFwLmRhdGEreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJvc21cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVudGltZXN0YW1wcy5vdHNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnZwaS5kc3B4K2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5jdXN0b20tcHJvcGVydGllcyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5jdXN0b214bWxwcm9wZXJ0aWVzK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LmRyYXdpbmcreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuZHJhd2luZ21sLmNoYXJ0K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LmRyYXdpbmdtbC5jaGFydHNoYXBlcyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5kcmF3aW5nbWwuZGlhZ3JhbWNvbG9ycyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5kcmF3aW5nbWwuZGlhZ3JhbWRhdGEreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuZHJhd2luZ21sLmRpYWdyYW1sYXlvdXQreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuZHJhd2luZ21sLmRpYWdyYW1zdHlsZSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5leHRlbmRlZC1wcm9wZXJ0aWVzK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnByZXNlbnRhdGlvbm1sLmNvbW1lbnRhdXRob3JzK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnByZXNlbnRhdGlvbm1sLmNvbW1lbnRzK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnByZXNlbnRhdGlvbm1sLmhhbmRvdXRtYXN0ZXIreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQucHJlc2VudGF0aW9ubWwubm90ZXNtYXN0ZXIreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQucHJlc2VudGF0aW9ubWwubm90ZXNzbGlkZSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5wcmVzZW50YXRpb25tbC5wcmVzZW50YXRpb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwcHR4XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQucHJlc2VudGF0aW9ubWwucHJlc2VudGF0aW9uLm1haW4reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQucHJlc2VudGF0aW9ubWwucHJlc3Byb3BzK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnByZXNlbnRhdGlvbm1sLnNsaWRlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic2xkeFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnByZXNlbnRhdGlvbm1sLnNsaWRlK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnByZXNlbnRhdGlvbm1sLnNsaWRlbGF5b3V0K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnByZXNlbnRhdGlvbm1sLnNsaWRlbWFzdGVyK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnByZXNlbnRhdGlvbm1sLnNsaWRlc2hvd1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInBwc3hcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5wcmVzZW50YXRpb25tbC5zbGlkZXNob3cubWFpbit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5wcmVzZW50YXRpb25tbC5zbGlkZXVwZGF0ZWluZm8reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQucHJlc2VudGF0aW9ubWwudGFibGVzdHlsZXMreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQucHJlc2VudGF0aW9ubWwudGFncyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5wcmVzZW50YXRpb25tbC50ZW1wbGF0ZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInBvdHhcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5wcmVzZW50YXRpb25tbC50ZW1wbGF0ZS5tYWluK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnByZXNlbnRhdGlvbm1sLnZpZXdwcm9wcyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLmNhbGNjaGFpbit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLmNoYXJ0c2hlZXQreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5jb21tZW50cyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLmNvbm5lY3Rpb25zK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuZGlhbG9nc2hlZXQreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5leHRlcm5hbGxpbmsreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5waXZvdGNhY2hlZGVmaW5pdGlvbit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnBpdm90Y2FjaGVyZWNvcmRzK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwucGl2b3R0YWJsZSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnF1ZXJ5dGFibGUreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5yZXZpc2lvbmhlYWRlcnMreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5yZXZpc2lvbmxvZyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnNoYXJlZHN0cmluZ3MreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5zaGVldFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInhsc3hcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnNoZWV0Lm1haW4reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5zaGVldG1ldGFkYXRhK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuc3R5bGVzK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwudGFibGUreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC50YWJsZXNpbmdsZWNlbGxzK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwudGVtcGxhdGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ4bHR4XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC50ZW1wbGF0ZS5tYWluK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwudXNlcm5hbWVzK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwudm9sYXRpbGVkZXBlbmRlbmNpZXMreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC53b3Jrc2hlZXQreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQudGhlbWUreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQudGhlbWVvdmVycmlkZSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC52bWxkcmF3aW5nXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LndvcmRwcm9jZXNzaW5nbWwuY29tbWVudHMreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQud29yZHByb2Nlc3NpbmdtbC5kb2N1bWVudFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImRvY3hcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC53b3JkcHJvY2Vzc2luZ21sLmRvY3VtZW50Lmdsb3NzYXJ5K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LndvcmRwcm9jZXNzaW5nbWwuZG9jdW1lbnQubWFpbit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC53b3JkcHJvY2Vzc2luZ21sLmVuZG5vdGVzK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LndvcmRwcm9jZXNzaW5nbWwuZm9udHRhYmxlK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LndvcmRwcm9jZXNzaW5nbWwuZm9vdGVyK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LndvcmRwcm9jZXNzaW5nbWwuZm9vdG5vdGVzK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LndvcmRwcm9jZXNzaW5nbWwubnVtYmVyaW5nK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LndvcmRwcm9jZXNzaW5nbWwuc2V0dGluZ3MreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQud29yZHByb2Nlc3NpbmdtbC5zdHlsZXMreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQud29yZHByb2Nlc3NpbmdtbC50ZW1wbGF0ZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImRvdHhcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC53b3JkcHJvY2Vzc2luZ21sLnRlbXBsYXRlLm1haW4reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQud29yZHByb2Nlc3NpbmdtbC53ZWJzZXR0aW5ncyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1wYWNrYWdlLmNvcmUtcHJvcGVydGllcyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1wYWNrYWdlLmRpZ2l0YWwtc2lnbmF0dXJlLXhtbHNpZ25hdHVyZSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1wYWNrYWdlLnJlbGF0aW9uc2hpcHMreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3JhY2xlLnJlc291cmNlK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcmFuZ2UuaW5kYXRhXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9zYS5uZXRkZXBsb3lcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3NnZW8ubWFwZ3VpZGUucGFja2FnZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1ncFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9zZ2kuYnVuZGxlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9zZ2kuZHBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJkcFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9zZ2kuc3Vic3lzdGVtXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZXNhXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3Rwcy5jdC1raXAreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3hsaS5jb3VudGdyYXBoXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnBhZ2VyZHV0eStqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucGFsbVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInBkYlwiLCBcInBxYVwiLCBcIm9wcmNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5wYW5vcGx5XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnBhb3MueG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnBhdGVudGRpdmVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucGF0aWVudGVjb21tc2RvY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5wYXdhYWZpbGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwYXdcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5wY29zXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnBnLmZvcm1hdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInN0clwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnBnLm9zYXNsaVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImVpNlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnBpYWNjZXNzLmFwcGxpY2F0aW9uLWxpY2VuY2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucGljc2VsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZWZpZlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnBtaS53aWRnZXRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ3Z1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnBvYy5ncm91cC1hZHZlcnRpc2VtZW50K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnBvY2tldGxlYXJuXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicGxmXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucG93ZXJidWlsZGVyNlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInBiZFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnBvd2VyYnVpbGRlcjYtc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5wb3dlcmJ1aWxkZXI3XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnBvd2VyYnVpbGRlcjctc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5wb3dlcmJ1aWxkZXI3NVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5wb3dlcmJ1aWxkZXI3NS1zXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnByZW1pbmV0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnByZXZpZXdzeXN0ZW1zLmJveFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImJveFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnByb2NyYXRlLmJydXNoc2V0XCI6IHtcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYnJ1c2hzZXRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5wcm9jcmVhdGUuYnJ1c2hcIjoge1xuICAgICAgICBleHRlbnNpb25zOiBbXCJicnVzaFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnByb2NyZWF0ZS5kcmVhbVwiOiB7XG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImRybVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnByb3RldXMubWFnYXppbmVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtZ3pcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5wc2ZzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnB0Lm11bmR1c211bmRpXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnB1Ymxpc2hhcmUtZGVsdGEtdHJlZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInFwc1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnB2aS5wdGlkMVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInB0aWRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5wd2ctbXVsdGlwbGV4ZWRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucHdnLXhodG1sLXByaW50K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieGh0bVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnF1YWxjb21tLmJyZXctYXBwLXJlc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5xdWFyYW50YWluZW5ldFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5xdWFyay5xdWFya3hwcmVzc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInF4ZFwiLCBcInF4dFwiLCBcInF3ZFwiLCBcInF3dFwiLCBcInF4bFwiLCBcInF4YlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnF1b2JqZWN0LXF1b3hkb2N1bWVudFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5yYWRpc3lzLm1vbWwreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucmFkaXN5cy5tc21sK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnJhZGlzeXMubXNtbC1hdWRpdCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5yYWRpc3lzLm1zbWwtYXVkaXQtY29uZit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5yYWRpc3lzLm1zbWwtYXVkaXQtY29ubit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5yYWRpc3lzLm1zbWwtYXVkaXQtZGlhbG9nK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnJhZGlzeXMubXNtbC1hdWRpdC1zdHJlYW0reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucmFkaXN5cy5tc21sLWNvbmYreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucmFkaXN5cy5tc21sLWRpYWxvZyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5yYWRpc3lzLm1zbWwtZGlhbG9nLWJhc2UreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucmFkaXN5cy5tc21sLWRpYWxvZy1mYXgtZGV0ZWN0K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnJhZGlzeXMubXNtbC1kaWFsb2ctZmF4LXNlbmRyZWN2K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnJhZGlzeXMubXNtbC1kaWFsb2ctZ3JvdXAreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucmFkaXN5cy5tc21sLWRpYWxvZy1zcGVlY2greG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucmFkaXN5cy5tc21sLWRpYWxvZy10cmFuc2Zvcm0reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucmFpbnN0b3IuZGF0YVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5yYXBpZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5yYXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJyYXJcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5yZWFsdm5jLmJlZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImJlZFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnJlY29yZGFyZS5tdXNpY3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm14bFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnJlY29yZGFyZS5tdXNpY3htbCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm11c2ljeG1sXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucmVscGlwZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5yZW5sZWFybi5ybHByaW50XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnJlc2lsaWVudC5sb2dpY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5yZXN0ZnVsK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5yaWcuY3J5cHRvbm90ZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImNyeXB0b25vdGVcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5yaW0uY29kXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJjb2RcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ybi1yZWFsbWVkaWFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInJtXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucm4tcmVhbG1lZGlhLXZiclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicm12YlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnJvdXRlNjYubGluazY2K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibGluazY2XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucnMtMjc0eFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ydWNrdXMuZG93bmxvYWRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuczNzbXNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc2FpbGluZ3RyYWNrZXIudHJhY2tcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzdFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnNhclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zYm0uY2lkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnNibS5taWQyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnNjcmlidXNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc2VhbGVkLjNkZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zZWFsZWQuY3NmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnNlYWxlZC5kb2NcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc2VhbGVkLmVtbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zZWFsZWQubWh0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnNlYWxlZC5uZXRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc2VhbGVkLnBwdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zZWFsZWQudGlmZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zZWFsZWQueGxzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnNlYWxlZG1lZGlhLnNvZnRzZWFsLmh0bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc2VhbGVkbWVkaWEuc29mdHNlYWwucGRmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnNlZW1haWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzZWVcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zZWlzK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zZW1hXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic2VtYVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnNlbWRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzZW1kXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc2VtZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNlbWZcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zaGFkZS1zYXZlLWZpbGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc2hhbmEuaW5mb3JtZWQuZm9ybWRhdGFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJpZm1cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zaGFuYS5pbmZvcm1lZC5mb3JtdGVtcGxhdGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJpdHBcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zaGFuYS5pbmZvcm1lZC5pbnRlcmNoYW5nZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImlpZlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnNoYW5hLmluZm9ybWVkLnBhY2thZ2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJpcGtcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zaG9vdHByb29mK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zaG9wa2ljaytqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc2hwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnNoeFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zaWdyb2suc2Vzc2lvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zaW10ZWNoLW1pbmRtYXBwZXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ0d2RcIiwgXCJ0d2RzXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc2lyZW4ranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnNrZXRjaG9tZXRyeVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zbWFmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibW1mXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc21hcnQubm90ZWJvb2tcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc21hcnQudGVhY2hlclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInRlYWNoZXJcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zbWludGlvLnBvcnRhbHMuYXJjaGl2ZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zbmVzZGV2LXBhZ2UtdGFibGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc29mdHdhcmU2MDIuZmlsbGVyLmZvcm0reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJmb1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnNvZnR3YXJlNjAyLmZpbGxlci5mb3JtLXhtbC16aXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc29sZW50LnNka20reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzZGttXCIsIFwic2RrZFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnNwb3RmaXJlLmR4cFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImR4cFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnNwb3RmaXJlLnNmc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNmc1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnNxbGl0ZTNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc3NzLWNvZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zc3MtZHRmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnNzcy1udGZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc3RhcmRpdmlzaW9uLmNhbGNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNkY1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnN0YXJkaXZpc2lvbi5kcmF3XCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzZGFcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zdGFyZGl2aXNpb24uaW1wcmVzc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic2RkXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc3RhcmRpdmlzaW9uLm1hdGhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNtZlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnN0YXJkaXZpc2lvbi53cml0ZXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNkd1wiLCBcInZvclwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnN0YXJkaXZpc2lvbi53cml0ZXItZ2xvYmFsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzZ2xcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zdGVwbWFuaWEucGFja2FnZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNtemlwXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc3RlcG1hbmlhLnN0ZXBjaGFydFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNtXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc3RyZWV0LXN0cmVhbVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zdW4ud2FkbCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIndhZGxcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zdW4ueG1sLmNhbGNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInN4Y1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnN1bi54bWwuY2FsYy50ZW1wbGF0ZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic3RjXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc3VuLnhtbC5kcmF3XCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzeGRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zdW4ueG1sLmRyYXcudGVtcGxhdGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInN0ZFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnN1bi54bWwuaW1wcmVzc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic3hpXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc3VuLnhtbC5pbXByZXNzLnRlbXBsYXRlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzdGlcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zdW4ueG1sLm1hdGhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInN4bVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnN1bi54bWwud3JpdGVyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzeHdcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zdW4ueG1sLndyaXRlci5nbG9iYWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInN4Z1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnN1bi54bWwud3JpdGVyLnRlbXBsYXRlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzdHdcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zdXMtY2FsZW5kYXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzdXNcIiwgXCJzdXNwXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc3ZkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic3ZkXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc3dpZnR2aWV3LWljc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zeWJ5bC5tb2wyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnN5Y2xlK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnN5ZnQranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnN5bWJpYW4uaW5zdGFsbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic2lzXCIsIFwic2lzeFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnN5bmNtbCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjaGFyc2V0OiBcIlVURi04XCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieHNtXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc3luY21sLmRtK3dieG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY2hhcnNldDogXCJVVEYtOFwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJiZG1cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zeW5jbWwuZG0reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY2hhcnNldDogXCJVVEYtOFwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInhkbVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnN5bmNtbC5kbS5ub3RpZmljYXRpb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc3luY21sLmRtZGRmK3dieG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnN5bmNtbC5kbWRkZit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjaGFyc2V0OiBcIlVURi04XCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZGRmXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc3luY21sLmRtdG5kcyt3YnhtbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zeW5jbWwuZG10bmRzK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNoYXJzZXQ6IFwiVVRGLThcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc3luY21sLmRzLm5vdGlmaWNhdGlvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC50YWJsZXNjaGVtYStqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQudGFvLmludGVudC1tb2R1bGUtYXJjaGl2ZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInRhb1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnRjcGR1bXAucGNhcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInBjYXBcIiwgXCJjYXBcIiwgXCJkbXBcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC50aGluay1jZWxsLnBwdHRjK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC50bWQubWVkaWFmbGV4LmFwaSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC50bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQudG1vYmlsZS1saXZldHZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ0bW9cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC50cmkub25lc291cmNlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnRyaWQudHB0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widHB0XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQudHJpc2NhcGUubXhzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibXhzXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQudHJ1ZWFwcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInRyYVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnRydWVkb2NcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQudWJpc29mdC53ZWJwbGF5ZXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQudWZkbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInVmZFwiLCBcInVmZGxcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC51aWMub3NkbStqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQudWlxLnRoZW1lXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widXR6XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQudW1hamluXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widW1qXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQudW5pdHlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ1bml0eXdlYlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnVvbWwreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ1b21sXCIsIFwidW9cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC51cGxhbmV0LmFsZXJ0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnVwbGFuZXQuYWxlcnQtd2J4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQudXBsYW5ldC5iZWFyZXItY2hvaWNlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnVwbGFuZXQuYmVhcmVyLWNob2ljZS13YnhtbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC51cGxhbmV0LmNhY2hlb3BcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQudXBsYW5ldC5jYWNoZW9wLXdieG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnVwbGFuZXQuY2hhbm5lbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC51cGxhbmV0LmNoYW5uZWwtd2J4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQudXBsYW5ldC5saXN0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnVwbGFuZXQubGlzdC13YnhtbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC51cGxhbmV0Lmxpc3RjbWRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQudXBsYW5ldC5saXN0Y21kLXdieG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnVwbGFuZXQuc2lnbmFsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnVyaS1tYXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQudmFsdmUuc291cmNlLm1hdGVyaWFsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnZjeFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInZjeFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnZkLXN0dWR5XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnZlY3RvcndvcmtzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnZlbCtqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQudmVyYWlzb24udHNtLXJlcG9ydCtjYm9yXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnZlcmFpc29uLnRzbS1yZXBvcnQranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnZlcmltYXRyaXgudmNhc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC52ZXJpdG9uZS5haW9uK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC52ZXJ5YW50LnRoaW5cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQudmVzLmVuY3J5cHRlZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC52aWRzb2Z0LnZpZGNvbmZlcmVuY2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQudmlzaW9cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ2c2RcIiwgXCJ2c3RcIiwgXCJ2c3NcIiwgXCJ2c3dcIiwgXCJ2c2R4XCIsIFwidnR4XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQudmlzaW9uYXJ5XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widmlzXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQudml2aWRlbmNlLnNjcmlwdGZpbGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQudm9jYWxzaGFwZXIudnNwNFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC52c2ZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ2c2ZcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC53YXAuc2ljXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLndhcC5zbGNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQud2FwLndieG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY2hhcnNldDogXCJVVEYtOFwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ3YnhtbFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLndhcC53bWxjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wid21sY1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLndhcC53bWxzY3JpcHRjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wid21sc2NcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC53YXNtZmxvdy53YWZsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLndlYnR1cmJvXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wid3RiXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQud2ZhLmRwcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC53ZmEucDJwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLndmYS53c2NcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQud2luZG93cy5kZXZpY2VwYWlyaW5nXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLndtY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC53bWYuYm9vdHN0cmFwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLndvbGZyYW0ubWF0aGVtYXRpY2FcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQud29sZnJhbS5tYXRoZW1hdGljYS5wYWNrYWdlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLndvbGZyYW0ucGxheWVyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibmJwXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQud29yZGxpZnRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQud29yZHBlcmZlY3RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ3cGRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC53cWRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ3cWRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC53cnEtaHAzMDAwLWxhYmVsbGVkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnd0LnN0ZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInN0ZlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnd2LmNzcCt3YnhtbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC53di5jc3AreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQud3Yuc3NwK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnhhY21sK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC54YXJhXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieGFyXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQueGFyaW4uY3BqXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnhlY3JldHMtZW5jcnlwdGVkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnhmZGxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ4ZmRsXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQueGZkbC53ZWJmb3JtXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnhtaSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC54bXBpZS5jcGtnXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnhtcGllLmRwa2dcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQueG1waWUucGxhblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC54bXBpZS5wcGtnXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnhtcGllLnhsaW1cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQueWFtYWhhLmh2LWRpY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImh2ZFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnlhbWFoYS5odi1zY3JpcHRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJodnNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC55YW1haGEuaHYtdm9pY2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJodnBcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC55YW1haGEub3BlbnNjb3JlZm9ybWF0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wib3NmXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQueWFtYWhhLm9wZW5zY29yZWZvcm1hdC5vc2ZwdmcreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJvc2ZwdmdcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC55YW1haGEucmVtb3RlLXNldHVwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnlhbWFoYS5zbWFmLWF1ZGlvXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic2FmXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQueWFtYWhhLnNtYWYtcGhyYXNlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic3BmXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQueWFtYWhhLnRocm91Z2gtbmduXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnlhbWFoYS50dW5uZWwtdWRwZW5jYXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQueWFvd2VtZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC55ZWxsb3dyaXZlci1jdXN0b20tbWVudVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImNtcFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnp1bFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInppclwiLCBcInppcnpcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC56emF6ei5kZWNrK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiemF6XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92b2ljZXhtbCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInZ4bWxcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZvdWNoZXItY21zK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZvdWNoZXItandzK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdnArY29zZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZwK2p3dFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZxLXJ0Y3B4clwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3dhc21cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIndhc21cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3dhdGNoZXJpbmZvK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wid2lmXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi93ZWJwdXNoLW9wdGlvbnMranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vd2hvaXNwcC1xdWVyeVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3dob2lzcHAtcmVzcG9uc2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi93aWRnZXRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ3Z3RcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3dpbmhscFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiaGxwXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi93aXRhXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vd29yZHBlcmZlY3Q1LjFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi93c2RsK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wid3NkbFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vd3Nwb2xpY3kreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ3c3BvbGljeVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC03ei1jb21wcmVzc2VkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCI3elwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1hYml3b3JkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJhYndcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtYWNlLWNvbXByZXNzZWRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImFjZVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1hbWZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtYXBwbGUtZGlza2ltYWdlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJkbWdcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtYXJqXCI6IHtcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYXJqXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWF1dGhvcndhcmUtYmluXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJhYWJcIiwgXCJ4MzJcIiwgXCJ1MzJcIiwgXCJ2b3hcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtYXV0aG9yd2FyZS1tYXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImFhbVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1hdXRob3J3YXJlLXNlZ1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYWFzXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWJjcGlvXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJiY3Bpb1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1iZG9jXCI6IHtcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYmRvY1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1iaXR0b3JyZW50XCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ0b3JyZW50XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWJsZW5kZXJcIjoge1xuICAgICAgICBleHRlbnNpb25zOiBbXCJibGVuZFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1ibG9yYlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYmxiXCIsIFwiYmxvcmJcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtYnppcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYnpcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtYnppcDJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImJ6MlwiLCBcImJvelwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1jYnJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImNiclwiLCBcImNiYVwiLCBcImNidFwiLCBcImNielwiLCBcImNiN1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1jZGxpbmtcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInZjZFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1jZnMtY29tcHJlc3NlZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY2ZzXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWNoYXRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImNoYXRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtY2hlc3MtcGduXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwZ25cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtY2hyb21lLWV4dGVuc2lvblwiOiB7XG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImNyeFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1jb2NvYVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJuZ2lueFwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJjY29cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtY29tcHJlc3NcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtY29tcHJlc3NlZFwiOiB7XG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInJhclwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1jb25mZXJlbmNlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJuc2NcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtY3Bpb1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY3Bpb1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1jc2hcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImNzaFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1kZWJcIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWRlYmlhbi1wYWNrYWdlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJkZWJcIiwgXCJ1ZGViXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWRnYy1jb21wcmVzc2VkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJkZ2NcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtZGlyZWN0b3JcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImRpclwiLCBcImRjclwiLCBcImR4clwiLCBcImNzdFwiLCBcImNjdFwiLCBcImN4dFwiLCBcInczZFwiLCBcImZnZFwiLCBcInN3YVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1kb29tXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ3YWRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtZHRibmN4K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJuY3hcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtZHRib29rK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJkdGJcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtZHRicmVzb3VyY2UreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInJlc1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1kdmlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImR2aVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1lbnZveVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZXZ5XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWV2YVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZXZhXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWZvbnQtYmRmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJiZGZcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtZm9udC1kb3NcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtZm9udC1mcmFtZW1ha2VyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWZvbnQtZ2hvc3RzY3JpcHRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImdzZlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1mb250LWxpYmdyeFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1mb250LWxpbnV4LXBzZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicHNmXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWZvbnQtcGNmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwY2ZcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtZm9udC1zbmZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNuZlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1mb250LXNwZWVkb1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1mb250LXN1bm9zLW5ld3NcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtZm9udC10eXBlMVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicGZhXCIsIFwicGZiXCIsIFwicGZtXCIsIFwiYWZtXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWZvbnQtdmZvbnRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtZnJlZWFyY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYXJjXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWZ1dHVyZXNwbGFzaFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic3BsXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWdjYS1jb21wcmVzc2VkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJnY2FcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtZ2x1bHhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInVseFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1nbnVtZXJpY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZ251bWVyaWNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtZ3JhbXBzLXhtbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZ3JhbXBzXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWd0YXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImd0YXJcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtZ3ppcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1oZGZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImhkZlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1odHRwZC1waHBcIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInBocFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1pbnN0YWxsLWluc3RydWN0aW9uc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiaW5zdGFsbFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1pcHluYitqc29uXCI6IHtcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJpcHluYlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1pc285NjYwLWltYWdlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJpc29cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtaXdvcmsta2V5bm90ZS1zZmZrZXlcIjoge1xuICAgICAgICBleHRlbnNpb25zOiBbXCJrZXlcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtaXdvcmstbnVtYmVycy1zZmZudW1iZXJzXCI6IHtcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibnVtYmVyc1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1pd29yay1wYWdlcy1zZmZwYWdlc1wiOiB7XG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInBhZ2VzXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWphdmEtYXJjaGl2ZS1kaWZmXCI6IHtcbiAgICAgICAgc291cmNlOiBcIm5naW54XCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImphcmRpZmZcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtamF2YS1qbmxwLWZpbGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImpubHBcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtamF2YXNjcmlwdFwiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1rZWVwYXNzMlwiOiB7XG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImtkYnhcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtbGF0ZXhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImxhdGV4XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWx1YS1ieXRlY29kZVwiOiB7XG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImx1YWNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtbHpoLWNvbXByZXNzZWRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImx6aFwiLCBcImxoYVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1tYWtlc2VsZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJuZ2lueFwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJydW5cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtbWllXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtaWVcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtbW9iaXBvY2tldC1lYm9va1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicHJjXCIsIFwibW9iaVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1tcGVndXJsXCI6IHtcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1tcy1hcHBsaWNhdGlvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYXBwbGljYXRpb25cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtbXMtc2hvcnRjdXRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImxua1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1tcy13bWRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIndtZFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1tcy13bXpcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIndtelwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1tcy14YmFwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ4YmFwXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LW1zYWNjZXNzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtZGJcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtbXNiaW5kZXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm9iZFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1tc2NhcmRmaWxlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJjcmRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtbXNjbGlwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJjbHBcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtbXNkb3MtcHJvZ3JhbVwiOiB7XG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImV4ZVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1tc2Rvd25sb2FkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJleGVcIiwgXCJkbGxcIiwgXCJjb21cIiwgXCJiYXRcIiwgXCJtc2lcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtbXNtZWRpYXZpZXdcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm12YlwiLCBcIm0xM1wiLCBcIm0xNFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1tc21ldGFmaWxlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ3bWZcIiwgXCJ3bXpcIiwgXCJlbWZcIiwgXCJlbXpcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtbXNtb25leVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibW55XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LW1zcHVibGlzaGVyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwdWJcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtbXNzY2hlZHVsZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic2NkXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LW1zdGVybWluYWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInRybVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1tc3dyaXRlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ3cmlcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtbmV0Y2RmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJuY1wiLCBcImNkZlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1ucy1wcm94eS1hdXRvY29uZmlnXCI6IHtcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwYWNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtbnpiXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJuemJcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtcGVybFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJuZ2lueFwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwbFwiLCBcInBtXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LXBpbG90XCI6IHtcbiAgICAgICAgc291cmNlOiBcIm5naW54XCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInByY1wiLCBcInBkYlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1wa2NzMTJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInAxMlwiLCBcInBmeFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1wa2NzNy1jZXJ0aWZpY2F0ZXNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInA3YlwiLCBcInNwY1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1wa2NzNy1jZXJ0cmVxcmVzcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicDdyXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LXBraS1tZXNzYWdlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1yYXItY29tcHJlc3NlZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicmFyXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LXJlZGhhdC1wYWNrYWdlLW1hbmFnZXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwibmdpbnhcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicnBtXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LXJlc2VhcmNoLWluZm8tc3lzdGVtc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicmlzXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LXNlYVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJuZ2lueFwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzZWFcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtc2hcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic2hcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtc2hhclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic2hhclwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1zaG9ja3dhdmUtZmxhc2hcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInN3ZlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1zaWx2ZXJsaWdodC1hcHBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInhhcFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1zcWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNxbFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1zdHVmZml0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzaXRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtc3R1ZmZpdHhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNpdHhcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtc3VicmlwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzcnRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtc3Y0Y3Bpb1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic3Y0Y3Bpb1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1zdjRjcmNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInN2NGNyY1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC10M3ZtLWltYWdlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ0M1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC10YWRzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJnYW1cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtdGFyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInRhclwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC10Y2xcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInRjbFwiLCBcInRrXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LXRleFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widGV4XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LXRleC10Zm1cIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInRmbVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC10ZXhpbmZvXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ0ZXhpbmZvXCIsIFwidGV4aVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC10Z2lmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJvYmpcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtdXN0YXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInVzdGFyXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LXZpcnR1YWxib3gtaGRkXCI6IHtcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJoZGRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtdmlydHVhbGJveC1vdmFcIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm92YVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC12aXJ0dWFsYm94LW92ZlwiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wib3ZmXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LXZpcnR1YWxib3gtdmJveFwiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1widmJveFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC12aXJ0dWFsYm94LXZib3gtZXh0cGFja1wiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInZib3gtZXh0cGFja1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC12aXJ0dWFsYm94LXZkaVwiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1widmRpXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LXZpcnR1YWxib3gtdmhkXCI6IHtcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ2aGRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtdmlydHVhbGJveC12bWRrXCI6IHtcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ2bWRrXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LXdhaXMtc291cmNlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzcmNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtd2ViLWFwcC1tYW5pZmVzdCtqc29uXCI6IHtcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ3ZWJhcHBcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC14NTA5LWNhLWNlcnRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJkZXJcIiwgXCJjcnRcIiwgXCJwZW1cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gteDUwOS1jYS1yYS1jZXJ0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC14NTA5LW5leHQtY2EtY2VydFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gteGZpZ1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZmlnXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LXhsaWZmK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ4bGZcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gteHBpbnN0YWxsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ4cGlcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gteHpcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInh6XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LXppcC1jb21wcmVzc2VkXCI6IHtcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiemlwXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LXptYWNoaW5lXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ6MVwiLCBcInoyXCIsIFwiejNcIiwgXCJ6NFwiLCBcIno1XCIsIFwiejZcIiwgXCJ6N1wiLCBcIno4XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94NDAwLWJwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veGFjbWwreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94YW1sK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ4YW1sXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94Y2FwLWF0dCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInhhdlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veGNhcC1jYXBzK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieGNhXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94Y2FwLWRpZmYreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ4ZGZcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3hjYXAtZWwreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ4ZWxcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3hjYXAtZXJyb3IreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94Y2FwLW5zK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieG5zXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94Y29uLWNvbmZlcmVuY2UtaW5mbyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3hjb24tY29uZmVyZW5jZS1pbmZvLWRpZmYreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94ZW5jK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieGVuY1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veGZkZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInhmZGZcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3hodG1sK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieGh0bWxcIiwgXCJ4aHRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3hodG1sLXZvaWNlK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94bGlmZit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInhsZlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ4bWxcIiwgXCJ4c2xcIiwgXCJ4c2RcIiwgXCJybmdcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3htbC1kdGRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImR0ZFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veG1sLWV4dGVybmFsLXBhcnNlZC1lbnRpdHlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94bWwtcGF0Y2greG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94bXBwK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veG9wK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieG9wXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94cHJvYyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieHBsXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94c2x0K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieHNsXCIsIFwieHNsdFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veHNwZit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieHNwZlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veHYreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJteG1sXCIsIFwieGh2bWxcIiwgXCJ4dm1sXCIsIFwieHZtXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi95YW1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veWFuZ1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInlhbmdcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3lhbmctZGF0YStjYm9yXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veWFuZy1kYXRhK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3lhbmctZGF0YSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3lhbmctcGF0Y2granNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veWFuZy1wYXRjaCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3lhbmctc2lkK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3lpbit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInlpblwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vemlwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiemlwXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi96aXArZG90bG90dGllXCI6IHtcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibG90dGllXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi96bGliXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24venN0ZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvLzFkLWludGVybGVhdmVkLXBhcml0eWZlY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvLzMya2FkcGNtXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vM2dwcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIjNncHBcIl1cbiAgICAgIH0sXG4gICAgICBcImF1ZGlvLzNncHAyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vYWFjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYWR0c1wiLCBcImFhY1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vYWMzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vYWRwY21cIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImFkcFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vYW1yXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYW1yXCJdXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9hbXItd2JcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9hbXItd2IrXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vYXB0eFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2FzY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2F0cmFjLWFkdmFuY2VkLWxvc3NsZXNzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vYXRyYWMteFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2F0cmFjM1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2Jhc2ljXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYXVcIiwgXCJzbmRcIl1cbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2J2MTZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9idjMyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vY2xlYXJtb2RlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vY25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9kYXQxMlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2Rsc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2Rzci1lczIwMTEwOFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2Rzci1lczIwMjA1MFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2Rzci1lczIwMjIxMVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2Rzci1lczIwMjIxMlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2R2XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vZHZpNFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2VhYzNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9lbmNhcHJ0cFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2V2cmNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9ldnJjLXFjcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2V2cmMwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vZXZyYzFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9ldnJjYlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2V2cmNiMFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2V2cmNiMVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2V2cmNud1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2V2cmNudzBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9ldnJjbncxXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vZXZyY3diXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vZXZyY3diMFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2V2cmN3YjFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9ldnNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9mbGFjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vZmxleGZlY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2Z3ZHJlZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2c3MTEtMFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2c3MTlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9nNzIyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vZzcyMjFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9nNzIzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vZzcyNi0xNlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2c3MjYtMjRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9nNzI2LTMyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vZzcyNi00MFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2c3MjhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9nNzI5XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vZzcyOTFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9nNzI5ZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2c3MjllXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vZ3NtXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vZ3NtLWVmclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2dzbS1oci0wOFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2lsYmNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9pcC1tcl92Mi41XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vaXNhY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vbDE2XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vbDIwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vbDI0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZVxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vbDhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9scGNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9tYXRyb3NrYVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL21lbHBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9tZWxwMTIwMFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL21lbHAyNDAwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vbWVscDYwMFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL21oYXNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9taWRpXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtaWRcIiwgXCJtaWRpXCIsIFwia2FyXCIsIFwicm1pXCJdXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9taWRpLWNsaXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9tb2JpbGUteG1mXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibXhtZlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vbXAzXCI6IHtcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibXAzXCJdXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9tcDRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtNGFcIiwgXCJtcDRhXCIsIFwibTRiXCJdXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9tcDRhLWxhdG1cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9tcGFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9tcGEtcm9idXN0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vbXBlZ1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1wZ2FcIiwgXCJtcDJcIiwgXCJtcDJhXCIsIFwibXAzXCIsIFwibTJhXCIsIFwibTNhXCJdXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9tcGVnNC1nZW5lcmljXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vbXVzZXBhY2tcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL29nZ1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm9nYVwiLCBcIm9nZ1wiLCBcInNweFwiLCBcIm9wdXNcIl1cbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL29wdXNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9wYXJpdHlmZWNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9wY21hXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vcGNtYS13YlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3BjbXVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9wY211LXdiXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vcHJzLnNpZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3FjZWxwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vcmFwdG9yZmVjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vcmVkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vcnRwLWVuYy1hZXNjbTEyOFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3J0cC1taWRpXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vcnRwbG9vcGJhY2tcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9ydHhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9zM21cIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInMzbVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vc2NpcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3NpbGtcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNpbFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vc212XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vc212LXFjcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3NtdjBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9zb2ZhXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vc3AtbWlkaVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3NwZWV4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vdDE0MGNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby90MzhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby90ZWxlcGhvbmUtZXZlbnRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby90ZXRyYV9hY2VscFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3RldHJhX2FjZWxwX2JiXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vdG9uZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3RzdmNpc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3VlbWNsaXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby91bHBmZWNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby91c2FjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vdmR2aVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3Ztci13YlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3ZuZC4zZ3BwLml1ZnBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby92bmQuNHNiXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vdm5kLmF1ZGlva296XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vdm5kLmNlbHBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby92bmQuY2lzY28ubnNlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vdm5kLmNtbGVzLnJhZGlvLWV2ZW50c1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3ZuZC5jbnMuYW5wMVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3ZuZC5jbnMuaW5mMVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3ZuZC5kZWNlLmF1ZGlvXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widXZhXCIsIFwidXZ2YVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vdm5kLmRpZ2l0YWwtd2luZHNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJlb2xcIl1cbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3ZuZC5kbG5hLmFkdHNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby92bmQuZG9sYnkuaGVhYWMuMVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3ZuZC5kb2xieS5oZWFhYy4yXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vdm5kLmRvbGJ5Lm1scFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3ZuZC5kb2xieS5tcHNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby92bmQuZG9sYnkucGwyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vdm5kLmRvbGJ5LnBsMnhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby92bmQuZG9sYnkucGwyelwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3ZuZC5kb2xieS5wdWxzZS4xXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vdm5kLmRyYVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImRyYVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vdm5kLmR0c1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImR0c1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vdm5kLmR0cy5oZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImR0c2hkXCJdXG4gICAgICB9LFxuICAgICAgXCJhdWRpby92bmQuZHRzLnVoZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3ZuZC5kdmIuZmlsZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3ZuZC5ldmVyYWQucGxqXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vdm5kLmhucy5hdWRpb1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3ZuZC5sdWNlbnQudm9pY2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJsdnBcIl1cbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3ZuZC5tcy1wbGF5cmVhZHkubWVkaWEucHlhXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicHlhXCJdXG4gICAgICB9LFxuICAgICAgXCJhdWRpby92bmQubm9raWEubW9iaWxlLXhtZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3ZuZC5ub3J0ZWwudmJrXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vdm5kLm51ZXJhLmVjZWxwNDgwMFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImVjZWxwNDgwMFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vdm5kLm51ZXJhLmVjZWxwNzQ3MFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImVjZWxwNzQ3MFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vdm5kLm51ZXJhLmVjZWxwOTYwMFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImVjZWxwOTYwMFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vdm5kLm9jdGVsLnNiY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3ZuZC5wcmVzb251cy5tdWx0aXRyYWNrXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vdm5kLnFjZWxwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby92bmQucmhldG9yZXguMzJrYWRwY21cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby92bmQucmlwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicmlwXCJdXG4gICAgICB9LFxuICAgICAgXCJhdWRpby92bmQucm4tcmVhbGF1ZGlvXCI6IHtcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZVxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vdm5kLnNlYWxlZG1lZGlhLnNvZnRzZWFsLm1wZWdcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby92bmQudm14LmN2c2RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby92bmQud2F2ZVwiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2VcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3ZvcmJpc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2VcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3ZvcmJpcy1jb25maWdcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby93YXZcIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ3YXZcIl1cbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3dhdmVcIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ3YXZcIl1cbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3dlYm1cIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIndlYmFcIl1cbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3gtYWFjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJhYWNcIl1cbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3gtYWlmZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYWlmXCIsIFwiYWlmZlwiLCBcImFpZmNcIl1cbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3gtY2FmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJjYWZcIl1cbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3gtZmxhY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZmxhY1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8veC1tNGFcIjoge1xuICAgICAgICBzb3VyY2U6IFwibmdpbnhcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibTRhXCJdXG4gICAgICB9LFxuICAgICAgXCJhdWRpby94LW1hdHJvc2thXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJta2FcIl1cbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3gtbXBlZ3VybFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibTN1XCJdXG4gICAgICB9LFxuICAgICAgXCJhdWRpby94LW1zLXdheFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wid2F4XCJdXG4gICAgICB9LFxuICAgICAgXCJhdWRpby94LW1zLXdtYVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wid21hXCJdXG4gICAgICB9LFxuICAgICAgXCJhdWRpby94LXBuLXJlYWxhdWRpb1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicmFtXCIsIFwicmFcIl1cbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3gtcG4tcmVhbGF1ZGlvLXBsdWdpblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicm1wXCJdXG4gICAgICB9LFxuICAgICAgXCJhdWRpby94LXJlYWxhdWRpb1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJuZ2lueFwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJyYVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8veC10dGFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3gtd2F2XCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ3YXZcIl1cbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3htXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ4bVwiXVxuICAgICAgfSxcbiAgICAgIFwiY2hlbWljYWwveC1jZHhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImNkeFwiXVxuICAgICAgfSxcbiAgICAgIFwiY2hlbWljYWwveC1jaWZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImNpZlwiXVxuICAgICAgfSxcbiAgICAgIFwiY2hlbWljYWwveC1jbWRmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJjbWRmXCJdXG4gICAgICB9LFxuICAgICAgXCJjaGVtaWNhbC94LWNtbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY21sXCJdXG4gICAgICB9LFxuICAgICAgXCJjaGVtaWNhbC94LWNzbWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImNzbWxcIl1cbiAgICAgIH0sXG4gICAgICBcImNoZW1pY2FsL3gtcGRiXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiXG4gICAgICB9LFxuICAgICAgXCJjaGVtaWNhbC94LXh5elwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieHl6XCJdXG4gICAgICB9LFxuICAgICAgXCJmb250L2NvbGxlY3Rpb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ0dGNcIl1cbiAgICAgIH0sXG4gICAgICBcImZvbnQvb3RmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJvdGZcIl1cbiAgICAgIH0sXG4gICAgICBcImZvbnQvc2ZudFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImZvbnQvdHRmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ0dGZcIl1cbiAgICAgIH0sXG4gICAgICBcImZvbnQvd29mZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIndvZmZcIl1cbiAgICAgIH0sXG4gICAgICBcImZvbnQvd29mZjJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ3b2ZmMlwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UvYWNlc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImV4clwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UvYXBuZ1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImFwbmdcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL2F2Y2lcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJhdmNpXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS9hdmNzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYXZjc1wiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UvYXZpZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImF2aWZcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL2JtcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYm1wXCIsIFwiZGliXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS9jZ21cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJjZ21cIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL2RpY29tLXJsZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImRybGVcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL2RweFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImRweFwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UvZW1mXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZW1mXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS9maXRzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZml0c1wiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UvZzNmYXhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJnM1wiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UvZ2lmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZ2lmXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS9oZWljXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiaGVpY1wiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UvaGVpYy1zZXF1ZW5jZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImhlaWNzXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS9oZWlmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiaGVpZlwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UvaGVpZi1zZXF1ZW5jZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImhlaWZzXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS9oZWoya1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImhlajJcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL2llZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImllZlwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UvajJjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UvamFpaVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImphaWlcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL2phaXNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJqYWlzXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS9qbHNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJqbHNcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL2pwMlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImpwMlwiLCBcImpwZzJcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL2pwZWdcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJqcGdcIiwgXCJqcGVnXCIsIFwianBlXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS9qcGhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJqcGhcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL2pwaGNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJqaGNcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL2pwbVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImpwbVwiLCBcImpwZ21cIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL2pweFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImpweFwiLCBcImpwZlwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UvanhsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wianhsXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS9qeHJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJqeHJcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL2p4cmFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJqeHJhXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS9qeHJzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wianhyc1wiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UvanhzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wianhzXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS9qeHNjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wianhzY1wiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UvanhzaVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImp4c2lcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL2p4c3NcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJqeHNzXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS9rdHhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJrdHhcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL2t0eDJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJrdHgyXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS9uYXBscHNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS9wanBlZ1wiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImpmaWZcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL3BuZ1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInBuZ1wiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UvcHJzLmJ0aWZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJidGlmXCIsIFwiYnRmXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS9wcnMucHRpXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicHRpXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS9wd2ctcmFzdGVyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2Uvc2dpXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzZ2lcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL3N2Zyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInN2Z1wiLCBcInN2Z3pcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL3QzOFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInQzOFwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UvdGlmZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInRpZlwiLCBcInRpZmZcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL3RpZmYtZnhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ0ZnhcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL3ZuZC5hZG9iZS5waG90b3Nob3BcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInBzZFwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2Uvdm5kLmFpcnppcC5hY2NlbGVyYXRvci5henZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJhenZcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL3ZuZC5jbGlwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2Uvdm5kLmNucy5pbmYyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2Uvdm5kLmRlY2UuZ3JhcGhpY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInV2aVwiLCBcInV2dmlcIiwgXCJ1dmdcIiwgXCJ1dnZnXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS92bmQuZGp2dVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImRqdnVcIiwgXCJkanZcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL3ZuZC5kdmIuc3VidGl0bGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzdWJcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL3ZuZC5kd2dcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJkd2dcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL3ZuZC5keGZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJkeGZcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL3ZuZC5mYXN0Ymlkc2hlZXRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJmYnNcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL3ZuZC5mcHhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJmcHhcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL3ZuZC5mc3RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJmc3RcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL3ZuZC5mdWppeGVyb3guZWRtaWNzLW1tclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1tclwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2Uvdm5kLmZ1aml4ZXJveC5lZG1pY3MtcmxjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicmxjXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS92bmQuZ2xvYmFsZ3JhcGhpY3MucGdiXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2Uvdm5kLm1pY3Jvc29mdC5pY29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJpY29cIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL3ZuZC5taXhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS92bmQubW96aWxsYS5hcG5nXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2Uvdm5kLm1zLWRkc1wiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZGRzXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS92bmQubXMtbW9kaVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1kaVwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2Uvdm5kLm1zLXBob3RvXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ3ZHBcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL3ZuZC5uZXQtZnB4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibnB4XCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS92bmQucGNvLmIxNlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImIxNlwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2Uvdm5kLnJhZGlhbmNlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2Uvdm5kLnNlYWxlZC5wbmdcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS92bmQuc2VhbGVkbWVkaWEuc29mdHNlYWwuZ2lmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2Uvdm5kLnNlYWxlZG1lZGlhLnNvZnRzZWFsLmpwZ1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImltYWdlL3ZuZC5zdmZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS92bmQudGVuY2VudC50YXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ0YXBcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL3ZuZC52YWx2ZS5zb3VyY2UudGV4dHVyZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInZ0ZlwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2Uvdm5kLndhcC53Ym1wXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wid2JtcFwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2Uvdm5kLnhpZmZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ4aWZcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL3ZuZC56YnJ1c2gucGN4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicGN4XCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS93ZWJwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wid2VicFwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2Uvd21mXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wid21mXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS94LTNkc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiM2RzXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS94LWFkb2JlLWRuZ1wiOiB7XG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImRuZ1wiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UveC1jbXUtcmFzdGVyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJyYXNcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL3gtY214XCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJjbXhcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL3gtZW1mXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UveC1mcmVlaGFuZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZmhcIiwgXCJmaGNcIiwgXCJmaDRcIiwgXCJmaDVcIiwgXCJmaDdcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL3gtaWNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJpY29cIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL3gtam5nXCI6IHtcbiAgICAgICAgc291cmNlOiBcIm5naW54XCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImpuZ1wiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UveC1tcnNpZC1pbWFnZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic2lkXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS94LW1zLWJtcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJuZ2lueFwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImJtcFwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UveC1wY3hcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInBjeFwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UveC1waWN0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwaWNcIiwgXCJwY3RcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL3gtcG9ydGFibGUtYW55bWFwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwbm1cIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL3gtcG9ydGFibGUtYml0bWFwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwYm1cIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL3gtcG9ydGFibGUtZ3JheW1hcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicGdtXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS94LXBvcnRhYmxlLXBpeG1hcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicHBtXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS94LXJnYlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicmdiXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS94LXRnYVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widGdhXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS94LXdtZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImltYWdlL3gteGJpdG1hcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieGJtXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS94LXhjZlwiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2VcbiAgICAgIH0sXG4gICAgICBcImltYWdlL3gteHBpeG1hcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieHBtXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS94LXh3aW5kb3dkdW1wXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ4d2RcIl1cbiAgICAgIH0sXG4gICAgICBcIm1lc3NhZ2UvYmh0dHBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJtZXNzYWdlL2NwaW1cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJtZXNzYWdlL2RlbGl2ZXJ5LXN0YXR1c1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcIm1lc3NhZ2UvZGlzcG9zaXRpb24tbm90aWZpY2F0aW9uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1xuICAgICAgICAgIFwiZGlzcG9zaXRpb24tbm90aWZpY2F0aW9uXCJcbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIFwibWVzc2FnZS9leHRlcm5hbC1ib2R5XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwibWVzc2FnZS9mZWVkYmFjay1yZXBvcnRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJtZXNzYWdlL2dsb2JhbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInU4bXNnXCJdXG4gICAgICB9LFxuICAgICAgXCJtZXNzYWdlL2dsb2JhbC1kZWxpdmVyeS1zdGF0dXNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ1OGRzblwiXVxuICAgICAgfSxcbiAgICAgIFwibWVzc2FnZS9nbG9iYWwtZGlzcG9zaXRpb24tbm90aWZpY2F0aW9uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widThtZG5cIl1cbiAgICAgIH0sXG4gICAgICBcIm1lc3NhZ2UvZ2xvYmFsLWhlYWRlcnNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ1OGhkclwiXVxuICAgICAgfSxcbiAgICAgIFwibWVzc2FnZS9odHRwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZVxuICAgICAgfSxcbiAgICAgIFwibWVzc2FnZS9pbWRuK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwibWVzc2FnZS9tbHNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJtZXNzYWdlL25ld3NcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCJcbiAgICAgIH0sXG4gICAgICBcIm1lc3NhZ2Uvb2h0dHAtcmVxXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwibWVzc2FnZS9vaHR0cC1yZXNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJtZXNzYWdlL3BhcnRpYWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlXG4gICAgICB9LFxuICAgICAgXCJtZXNzYWdlL3JmYzgyMlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZW1sXCIsIFwibWltZVwiLCBcIm1odFwiLCBcIm1odG1sXCJdXG4gICAgICB9LFxuICAgICAgXCJtZXNzYWdlL3MtaHR0cFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIlxuICAgICAgfSxcbiAgICAgIFwibWVzc2FnZS9zaXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJtZXNzYWdlL3NpcGZyYWdcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJtZXNzYWdlL3RyYWNraW5nLXN0YXR1c1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcIm1lc3NhZ2Uvdm5kLnNpLnNpbXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCJcbiAgICAgIH0sXG4gICAgICBcIm1lc3NhZ2Uvdm5kLndmYS53c2NcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ3c2NcIl1cbiAgICAgIH0sXG4gICAgICBcIm1vZGVsLzNtZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIjNtZlwiXVxuICAgICAgfSxcbiAgICAgIFwibW9kZWwvZTU3XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwibW9kZWwvZ2x0Zitqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJnbHRmXCJdXG4gICAgICB9LFxuICAgICAgXCJtb2RlbC9nbHRmLWJpbmFyeVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZ2xiXCJdXG4gICAgICB9LFxuICAgICAgXCJtb2RlbC9pZ2VzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiaWdzXCIsIFwiaWdlc1wiXVxuICAgICAgfSxcbiAgICAgIFwibW9kZWwvanRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJqdFwiXVxuICAgICAgfSxcbiAgICAgIFwibW9kZWwvbWVzaFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1zaFwiLCBcIm1lc2hcIiwgXCJzaWxvXCJdXG4gICAgICB9LFxuICAgICAgXCJtb2RlbC9tdGxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtdGxcIl1cbiAgICAgIH0sXG4gICAgICBcIm1vZGVsL29ialwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm9ialwiXVxuICAgICAgfSxcbiAgICAgIFwibW9kZWwvcHJjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicHJjXCJdXG4gICAgICB9LFxuICAgICAgXCJtb2RlbC9zdGVwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic3RlcFwiLCBcInN0cFwiLCBcInN0cG5jXCIsIFwicDIxXCIsIFwiMjEwXCJdXG4gICAgICB9LFxuICAgICAgXCJtb2RlbC9zdGVwK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic3RweFwiXVxuICAgICAgfSxcbiAgICAgIFwibW9kZWwvc3RlcCt6aXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzdHB6XCJdXG4gICAgICB9LFxuICAgICAgXCJtb2RlbC9zdGVwLXhtbCt6aXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzdHB4elwiXVxuICAgICAgfSxcbiAgICAgIFwibW9kZWwvc3RsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic3RsXCJdXG4gICAgICB9LFxuICAgICAgXCJtb2RlbC91M2RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ1M2RcIl1cbiAgICAgIH0sXG4gICAgICBcIm1vZGVsL3ZuZC5iYXJ5XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYmFyeVwiXVxuICAgICAgfSxcbiAgICAgIFwibW9kZWwvdm5kLmNsZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImNsZFwiXVxuICAgICAgfSxcbiAgICAgIFwibW9kZWwvdm5kLmNvbGxhZGEreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJkYWVcIl1cbiAgICAgIH0sXG4gICAgICBcIm1vZGVsL3ZuZC5kd2ZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJkd2ZcIl1cbiAgICAgIH0sXG4gICAgICBcIm1vZGVsL3ZuZC5mbGF0bGFuZC4zZG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwibW9kZWwvdm5kLmdkbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImdkbFwiXVxuICAgICAgfSxcbiAgICAgIFwibW9kZWwvdm5kLmdzLWdkbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIlxuICAgICAgfSxcbiAgICAgIFwibW9kZWwvdm5kLmdzLmdkbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcIm1vZGVsL3ZuZC5ndHdcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJndHdcIl1cbiAgICAgIH0sXG4gICAgICBcIm1vZGVsL3ZuZC5tb21sK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwibW9kZWwvdm5kLm10c1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm10c1wiXVxuICAgICAgfSxcbiAgICAgIFwibW9kZWwvdm5kLm9wZW5nZXhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJvZ2V4XCJdXG4gICAgICB9LFxuICAgICAgXCJtb2RlbC92bmQucGFyYXNvbGlkLnRyYW5zbWl0LmJpbmFyeVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInhfYlwiXVxuICAgICAgfSxcbiAgICAgIFwibW9kZWwvdm5kLnBhcmFzb2xpZC50cmFuc21pdC50ZXh0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieF90XCJdXG4gICAgICB9LFxuICAgICAgXCJtb2RlbC92bmQucHl0aGEucHlveFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInB5b1wiLCBcInB5b3hcIl1cbiAgICAgIH0sXG4gICAgICBcIm1vZGVsL3ZuZC5yb3NldHRlLmFubm90YXRlZC1kYXRhLW1vZGVsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwibW9kZWwvdm5kLnNhcC52ZHNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ2ZHNcIl1cbiAgICAgIH0sXG4gICAgICBcIm1vZGVsL3ZuZC51c2RhXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widXNkYVwiXVxuICAgICAgfSxcbiAgICAgIFwibW9kZWwvdm5kLnVzZHoremlwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1widXNkelwiXVxuICAgICAgfSxcbiAgICAgIFwibW9kZWwvdm5kLnZhbHZlLnNvdXJjZS5jb21waWxlZC1tYXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJic3BcIl1cbiAgICAgIH0sXG4gICAgICBcIm1vZGVsL3ZuZC52dHVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ2dHVcIl1cbiAgICAgIH0sXG4gICAgICBcIm1vZGVsL3ZybWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ3cmxcIiwgXCJ2cm1sXCJdXG4gICAgICB9LFxuICAgICAgXCJtb2RlbC94M2QrYmluYXJ5XCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ4M2RiXCIsIFwieDNkYnpcIl1cbiAgICAgIH0sXG4gICAgICBcIm1vZGVsL3gzZCtmYXN0aW5mb3NldFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIngzZGJcIl1cbiAgICAgIH0sXG4gICAgICBcIm1vZGVsL3gzZCt2cm1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ4M2R2XCIsIFwieDNkdnpcIl1cbiAgICAgIH0sXG4gICAgICBcIm1vZGVsL3gzZCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIngzZFwiLCBcIngzZHpcIl1cbiAgICAgIH0sXG4gICAgICBcIm1vZGVsL3gzZC12cm1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieDNkdlwiXVxuICAgICAgfSxcbiAgICAgIFwibXVsdGlwYXJ0L2FsdGVybmF0aXZlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZVxuICAgICAgfSxcbiAgICAgIFwibXVsdGlwYXJ0L2FwcGxlZG91YmxlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwibXVsdGlwYXJ0L2J5dGVyYW5nZXNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJtdWx0aXBhcnQvZGlnZXN0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwibXVsdGlwYXJ0L2VuY3J5cHRlZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2VcbiAgICAgIH0sXG4gICAgICBcIm11bHRpcGFydC9mb3JtLWRhdGFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlXG4gICAgICB9LFxuICAgICAgXCJtdWx0aXBhcnQvaGVhZGVyLXNldFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcIm11bHRpcGFydC9taXhlZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcIm11bHRpcGFydC9tdWx0aWxpbmd1YWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJtdWx0aXBhcnQvcGFyYWxsZWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJtdWx0aXBhcnQvcmVsYXRlZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2VcbiAgICAgIH0sXG4gICAgICBcIm11bHRpcGFydC9yZXBvcnRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJtdWx0aXBhcnQvc2lnbmVkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZVxuICAgICAgfSxcbiAgICAgIFwibXVsdGlwYXJ0L3ZuZC5iaW50Lm1lZC1wbHVzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwibXVsdGlwYXJ0L3ZvaWNlLW1lc3NhZ2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJtdWx0aXBhcnQveC1taXhlZC1yZXBsYWNlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC8xZC1pbnRlcmxlYXZlZC1wYXJpdHlmZWNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L2NhY2hlLW1hbmlmZXN0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJhcHBjYWNoZVwiLCBcIm1hbmlmZXN0XCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L2NhbGVuZGFyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiaWNzXCIsIFwiaWZiXCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L2NhbGVuZGVyXCI6IHtcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L2NtZFwiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwidGV4dC9jb2ZmZWVzY3JpcHRcIjoge1xuICAgICAgICBleHRlbnNpb25zOiBbXCJjb2ZmZWVcIiwgXCJsaXRjb2ZmZWVcIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQvY3FsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC9jcWwtZXhwcmVzc2lvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInRleHQvY3FsLWlkZW50aWZpZXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L2Nzc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNoYXJzZXQ6IFwiVVRGLThcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJjc3NcIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQvY3N2XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJjc3ZcIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQvY3N2LXNjaGVtYVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInRleHQvZGlyZWN0b3J5XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC9kbnNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L2VjbWFzY3JpcHRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCJcbiAgICAgIH0sXG4gICAgICBcInRleHQvZW5jYXBydHBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L2VucmljaGVkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC9maGlycGF0aFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInRleHQvZmxleGZlY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInRleHQvZndkcmVkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC9nZmYzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC9ncmFtbWFyLXJlZi1saXN0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC9obDd2MlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInRleHQvaHRtbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiaHRtbFwiLCBcImh0bVwiLCBcInNodG1sXCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L2phZGVcIjoge1xuICAgICAgICBleHRlbnNpb25zOiBbXCJqYWRlXCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L2phdmFzY3JpcHRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjaGFyc2V0OiBcIlVURi04XCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wianNcIiwgXCJtanNcIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQvamNyLWNuZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInRleHQvanN4XCI6IHtcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJqc3hcIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQvbGVzc1wiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibGVzc1wiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC9tYXJrZG93blwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibWRcIiwgXCJtYXJrZG93blwiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC9tYXRobWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwibmdpbnhcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibW1sXCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L21keFwiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibWR4XCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L21pemFyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC9uM1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNoYXJzZXQ6IFwiVVRGLThcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJuM1wiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC9wYXJhbWV0ZXJzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY2hhcnNldDogXCJVVEYtOFwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3Bhcml0eWZlY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInRleHQvcGxhaW5cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInR4dFwiLCBcInRleHRcIiwgXCJjb25mXCIsIFwiZGVmXCIsIFwibGlzdFwiLCBcImxvZ1wiLCBcImluXCIsIFwiaW5pXCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3Byb3ZlbmFuY2Utbm90YXRpb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjaGFyc2V0OiBcIlVURi04XCJcbiAgICAgIH0sXG4gICAgICBcInRleHQvcHJzLmZhbGxlbnN0ZWluLnJzdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInRleHQvcHJzLmxpbmVzLnRhZ1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImRzY1wiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC9wcnMucHJvcC5sb2dpY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInRleHQvcHJzLnRleGlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3JhcHRvcmZlY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInRleHQvcmVkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC9yZmM4MjItaGVhZGVyc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInRleHQvcmljaHRleHRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInJ0eFwiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC9ydGZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInJ0ZlwiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC9ydHAtZW5jLWFlc2NtMTI4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC9ydHBsb29wYmFja1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInRleHQvcnR4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC9zZ21sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic2dtbFwiLCBcInNnbVwiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC9zaGFjbGNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3NoZXhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzaGV4XCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3NsaW1cIjoge1xuICAgICAgICBleHRlbnNpb25zOiBbXCJzbGltXCIsIFwic2xtXCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3NwZHhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzcGR4XCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3N0cmluZ3NcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3N0eWx1c1wiOiB7XG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInN0eWx1c1wiLCBcInN0eWxcIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQvdDE0MFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInRleHQvdGFiLXNlcGFyYXRlZC12YWx1ZXNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInRzdlwiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC90cm9mZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInRcIiwgXCJ0clwiLCBcInJvZmZcIiwgXCJtYW5cIiwgXCJtZVwiLCBcIm1zXCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3R1cnRsZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNoYXJzZXQ6IFwiVVRGLThcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widHRsXCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3VscGZlY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInRleHQvdXJpLWxpc3RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInVyaVwiLCBcInVyaXNcIiwgXCJ1cmxzXCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3ZjYXJkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ2Y2FyZFwiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC92bmQuYVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInRleHQvdm5kLmFiY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInRleHQvdm5kLmFzY2lpLWFydFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInRleHQvdm5kLmN1cmxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJjdXJsXCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3ZuZC5jdXJsLmRjdXJsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJkY3VybFwiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC92bmQuY3VybC5tY3VybFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibWN1cmxcIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQvdm5kLmN1cmwuc2N1cmxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNjdXJsXCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3ZuZC5kZWJpYW4uY29weXJpZ2h0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY2hhcnNldDogXCJVVEYtOFwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3ZuZC5kbWNsaWVudHNjcmlwdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInRleHQvdm5kLmR2Yi5zdWJ0aXRsZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInN1YlwiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC92bmQuZXNtZXJ0ZWMudGhlbWUtZGVzY3JpcHRvclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNoYXJzZXQ6IFwiVVRGLThcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC92bmQuZXhjaGFuZ2VhYmxlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC92bmQuZmFtaWx5c2VhcmNoLmdlZGNvbVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImdlZFwiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC92bmQuZmljbGFiLmZsdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInRleHQvdm5kLmZseVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImZseVwiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC92bmQuZm1pLmZsZXhzdG9yXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZmx4XCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3ZuZC5nbWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3ZuZC5ncmFwaHZpelwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImd2XCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3ZuZC5oYW5zXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC92bmQuaGdsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC92bmQuaW4zZC4zZG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiM2RtbFwiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC92bmQuaW4zZC5zcG90XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic3BvdFwiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC92bmQuaXB0Yy5uZXdzbWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3ZuZC5pcHRjLm5pdGZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3ZuZC5sYXRleC16XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC92bmQubW90b3JvbGEucmVmbGV4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC92bmQubXMtbWVkaWFwYWNrYWdlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC92bmQubmV0MnBob25lLmNvbW1jZW50ZXIuY29tbWFuZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInRleHQvdm5kLnJhZGlzeXMubXNtbC1iYXNpYy1sYXlvdXRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3ZuZC5zZW54LndhcnBzY3JpcHRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3ZuZC5zaS51cmljYXRhbG9ndWVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCJcbiAgICAgIH0sXG4gICAgICBcInRleHQvdm5kLnNvc2lcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3ZuZC5zdW4uajJtZS5hcHAtZGVzY3JpcHRvclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNoYXJzZXQ6IFwiVVRGLThcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiamFkXCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3ZuZC50cm9sbHRlY2gubGluZ3Vpc3RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjaGFyc2V0OiBcIlVURi04XCJcbiAgICAgIH0sXG4gICAgICBcInRleHQvdm5kLnZjZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInRleHQvdm5kLndhcC5zaVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInRleHQvdm5kLndhcC5zbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInRleHQvdm5kLndhcC53bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ3bWxcIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQvdm5kLndhcC53bWxzY3JpcHRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ3bWxzXCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3ZuZC56b28ua2NsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC92dHRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjaGFyc2V0OiBcIlVURi04XCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1widnR0XCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3dnc2xcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ3Z3NsXCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3gtYXNtXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzXCIsIFwiYXNtXCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3gtY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY1wiLCBcImNjXCIsIFwiY3h4XCIsIFwiY3BwXCIsIFwiaFwiLCBcImhoXCIsIFwiZGljXCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3gtY29tcG9uZW50XCI6IHtcbiAgICAgICAgc291cmNlOiBcIm5naW54XCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImh0Y1wiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC94LWZvcnRyYW5cIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImZcIiwgXCJmb3JcIiwgXCJmNzdcIiwgXCJmOTBcIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQveC1nd3QtcnBjXCI6IHtcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3gtaGFuZGxlYmFycy10ZW1wbGF0ZVwiOiB7XG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImhic1wiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC94LWphdmEtc291cmNlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJqYXZhXCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3gtanF1ZXJ5LXRtcGxcIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcInRleHQveC1sdWFcIjoge1xuICAgICAgICBleHRlbnNpb25zOiBbXCJsdWFcIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQveC1tYXJrZG93blwiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibWtkXCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3gtbmZvXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJuZm9cIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQveC1vcG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJvcG1sXCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3gtb3JnXCI6IHtcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJvcmdcIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQveC1wYXNjYWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInBcIiwgXCJwYXNcIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQveC1wcm9jZXNzaW5nXCI6IHtcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwZGVcIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQveC1zYXNzXCI6IHtcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic2Fzc1wiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC94LXNjc3NcIjoge1xuICAgICAgICBleHRlbnNpb25zOiBbXCJzY3NzXCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3gtc2V0ZXh0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJldHhcIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQveC1zZnZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNmdlwiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC94LXN1c2UteW1wXCI6IHtcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ5bXBcIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQveC11dWVuY29kZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widXVcIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQveC12Y2FsZW5kYXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInZjc1wiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC94LXZjYXJkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ2Y2ZcIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQveG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ4bWxcIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQveG1sLWV4dGVybmFsLXBhcnNlZC1lbnRpdHlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3lhbWxcIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInlhbWxcIiwgXCJ5bWxcIl1cbiAgICAgIH0sXG4gICAgICBcInZpZGVvLzFkLWludGVybGVhdmVkLXBhcml0eWZlY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvLzNncHBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCIzZ3BcIiwgXCIzZ3BwXCJdXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby8zZ3BwLXR0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vM2dwcDJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCIzZzJcIl1cbiAgICAgIH0sXG4gICAgICBcInZpZGVvL2F2MVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL2JtcGVnXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vYnQ2NTZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby9jZWxiXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vZHZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby9lbmNhcHJ0cFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL2V2Y1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL2ZmdjFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby9mbGV4ZmVjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vaDI2MVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImgyNjFcIl1cbiAgICAgIH0sXG4gICAgICBcInZpZGVvL2gyNjNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJoMjYzXCJdXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby9oMjYzLTE5OThcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby9oMjYzLTIwMDBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby9oMjY0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiaDI2NFwiXVxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vaDI2NC1yY2RvXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vaDI2NC1zdmNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby9oMjY1XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vaDI2NlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL2lzby5zZWdtZW50XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibTRzXCJdXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby9qcGVnXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wianBndlwiXVxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vanBlZzIwMDBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby9qcG1cIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImpwbVwiLCBcImpwZ21cIl1cbiAgICAgIH0sXG4gICAgICBcInZpZGVvL2p4c3ZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby9sb3R0aWUranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vbWF0cm9za2FcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby9tYXRyb3NrYS0zZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL21qMlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1qMlwiLCBcIm1qcDJcIl1cbiAgICAgIH0sXG4gICAgICBcInZpZGVvL21wMXNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby9tcDJwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vbXAydFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInRzXCIsIFwibTJ0XCIsIFwibTJ0c1wiLCBcIm10c1wiXVxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vbXA0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibXA0XCIsIFwibXA0dlwiLCBcIm1wZzRcIl1cbiAgICAgIH0sXG4gICAgICBcInZpZGVvL21wNHYtZXNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby9tcGVnXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibXBlZ1wiLCBcIm1wZ1wiLCBcIm1wZVwiLCBcIm0xdlwiLCBcIm0ydlwiXVxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vbXBlZzQtZ2VuZXJpY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL21wdlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL252XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vb2dnXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wib2d2XCJdXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby9wYXJpdHlmZWNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby9wb2ludGVyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vcXVpY2t0aW1lXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicXRcIiwgXCJtb3ZcIl1cbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3JhcHRvcmZlY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3Jhd1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3J0cC1lbmMtYWVzY20xMjhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby9ydHBsb29wYmFja1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3J0eFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3NjaXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby9zbXB0ZTI5MVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3NtcHRlMjkybVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3VscGZlY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3ZjMVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3ZjMlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3ZuZC5jY3R2XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vdm5kLmRlY2UuaGRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ1dmhcIiwgXCJ1dnZoXCJdXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby92bmQuZGVjZS5tb2JpbGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ1dm1cIiwgXCJ1dnZtXCJdXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby92bmQuZGVjZS5tcDRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby92bmQuZGVjZS5wZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInV2cFwiLCBcInV2dnBcIl1cbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3ZuZC5kZWNlLnNkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widXZzXCIsIFwidXZ2c1wiXVxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vdm5kLmRlY2UudmlkZW9cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ1dnZcIiwgXCJ1dnZ2XCJdXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby92bmQuZGlyZWN0di5tcGVnXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vdm5kLmRpcmVjdHYubXBlZy10dHNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby92bmQuZGxuYS5tcGVnLXR0c1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3ZuZC5kdmIuZmlsZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImR2YlwiXVxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vdm5kLmZ2dFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImZ2dFwiXVxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vdm5kLmhucy52aWRlb1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3ZuZC5pcHR2Zm9ydW0uMWRwYXJpdHlmZWMtMTAxMFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3ZuZC5pcHR2Zm9ydW0uMWRwYXJpdHlmZWMtMjAwNVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3ZuZC5pcHR2Zm9ydW0uMmRwYXJpdHlmZWMtMTAxMFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3ZuZC5pcHR2Zm9ydW0uMmRwYXJpdHlmZWMtMjAwNVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3ZuZC5pcHR2Zm9ydW0udHRzYXZjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vdm5kLmlwdHZmb3J1bS50dHNtcGVnMlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3ZuZC5tb3Rvcm9sYS52aWRlb1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3ZuZC5tb3Rvcm9sYS52aWRlb3BcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby92bmQubXBlZ3VybFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm14dVwiLCBcIm00dVwiXVxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vdm5kLm1zLXBsYXlyZWFkeS5tZWRpYS5weXZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJweXZcIl1cbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3ZuZC5ub2tpYS5pbnRlcmxlYXZlZC1tdWx0aW1lZGlhXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vdm5kLm5va2lhLm1wNHZyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vdm5kLm5va2lhLnZpZGVvdm9pcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3ZuZC5vYmplY3R2aWRlb1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3ZuZC5wbGFuYXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby92bmQucmFkZ2FtZXR0b29scy5iaW5rXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vdm5kLnJhZGdhbWV0dG9vbHMuc21hY2tlclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vdm5kLnNlYWxlZC5tcGVnMVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3ZuZC5zZWFsZWQubXBlZzRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby92bmQuc2VhbGVkLnN3ZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3ZuZC5zZWFsZWRtZWRpYS5zb2Z0c2VhbC5tb3ZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby92bmQudXZ2dS5tcDRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ1dnVcIiwgXCJ1dnZ1XCJdXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby92bmQudml2b1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInZpdlwiXVxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vdm5kLnlvdXR1YmUueXRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby92cDhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby92cDlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby93ZWJtXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ3ZWJtXCJdXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby94LWY0dlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZjR2XCJdXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby94LWZsaVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZmxpXCJdXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby94LWZsdlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZmx2XCJdXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby94LW00dlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibTR2XCJdXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby94LW1hdHJvc2thXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJta3ZcIiwgXCJtazNkXCIsIFwibWtzXCJdXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby94LW1uZ1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibW5nXCJdXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby94LW1zLWFzZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYXNmXCIsIFwiYXN4XCJdXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby94LW1zLXZvYlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widm9iXCJdXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby94LW1zLXdtXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ3bVwiXVxuICAgICAgfSxcbiAgICAgIFwidmlkZW8veC1tcy13bXZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIndtdlwiXVxuICAgICAgfSxcbiAgICAgIFwidmlkZW8veC1tcy13bXhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIndteFwiXVxuICAgICAgfSxcbiAgICAgIFwidmlkZW8veC1tcy13dnhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInd2eFwiXVxuICAgICAgfSxcbiAgICAgIFwidmlkZW8veC1tc3ZpZGVvXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJhdmlcIl1cbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3gtc2dpLW1vdmllXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtb3ZpZVwiXVxuICAgICAgfSxcbiAgICAgIFwidmlkZW8veC1zbXZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNtdlwiXVxuICAgICAgfSxcbiAgICAgIFwieC1jb25mZXJlbmNlL3gtY29vbHRhbGtcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImljZVwiXVxuICAgICAgfSxcbiAgICAgIFwieC1zaGFkZXIveC1mcmFnbWVudFwiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwieC1zaGFkZXIveC12ZXJ0ZXhcIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH1cbiAgICB9O1xuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL2V4cHJlc3Mvbm9kZV9tb2R1bGVzL21pbWUtZGIvaW5kZXguanNcbnZhciByZXF1aXJlX21pbWVfZGIyID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL2V4cHJlc3Mvbm9kZV9tb2R1bGVzL21pbWUtZGIvaW5kZXguanNcIihleHBvcnRzMiwgbW9kdWxlMikge1xuICAgIG1vZHVsZTIuZXhwb3J0cyA9IHJlcXVpcmVfZGIyKCk7XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvZXhwcmVzcy9ub2RlX21vZHVsZXMvbWltZS10eXBlcy9taW1lU2NvcmUuanNcbnZhciByZXF1aXJlX21pbWVTY29yZTIgPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvZXhwcmVzcy9ub2RlX21vZHVsZXMvbWltZS10eXBlcy9taW1lU2NvcmUuanNcIihleHBvcnRzMiwgbW9kdWxlMikge1xuICAgIHZhciBGQUNFVF9TQ09SRVMgPSB7XG4gICAgICBcInBycy5cIjogMTAwLFxuICAgICAgXCJ4LVwiOiAyMDAsXG4gICAgICBcInguXCI6IDMwMCxcbiAgICAgIFwidm5kLlwiOiA0MDAsXG4gICAgICBkZWZhdWx0OiA5MDBcbiAgICB9O1xuICAgIHZhciBTT1VSQ0VfU0NPUkVTID0ge1xuICAgICAgbmdpbng6IDEwLFxuICAgICAgYXBhY2hlOiAyMCxcbiAgICAgIGlhbmE6IDQwLFxuICAgICAgZGVmYXVsdDogMzBcbiAgICAgIC8vIGRlZmluaXRpb25zIGFkZGVkIGJ5IGBqc2h0dHAvbWltZS1kYmAgcHJvamVjdD9cbiAgICB9O1xuICAgIHZhciBUWVBFX1NDT1JFUyA9IHtcbiAgICAgIC8vIHByZWZlciBhcHBsaWNhdGlvbi94bWwgb3ZlciB0ZXh0L3htbFxuICAgICAgLy8gcHJlZmVyIGFwcGxpY2F0aW9uL3J0ZiBvdmVyIHRleHQvcnRmXG4gICAgICBhcHBsaWNhdGlvbjogMSxcbiAgICAgIC8vIHByZWZlciBmb250L3dvZmYgb3ZlciBhcHBsaWNhdGlvbi9mb250LXdvZmZcbiAgICAgIGZvbnQ6IDIsXG4gICAgICBkZWZhdWx0OiAwXG4gICAgfTtcbiAgICBtb2R1bGUyLmV4cG9ydHMgPSBmdW5jdGlvbiBtaW1lU2NvcmUobWltZVR5cGUsIHNvdXJjZSA9IFwiZGVmYXVsdFwiKSB7XG4gICAgICBpZiAobWltZVR5cGUgPT09IFwiYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtXCIpIHtcbiAgICAgICAgcmV0dXJuIDA7XG4gICAgICB9XG4gICAgICBjb25zdCBbdHlwZSwgc3VidHlwZV0gPSBtaW1lVHlwZS5zcGxpdChcIi9cIik7XG4gICAgICBjb25zdCBmYWNldCA9IHN1YnR5cGUucmVwbGFjZSgvKFxcLnx4LSkuKi8sIFwiJDFcIik7XG4gICAgICBjb25zdCBmYWNldFNjb3JlID0gRkFDRVRfU0NPUkVTW2ZhY2V0XSB8fCBGQUNFVF9TQ09SRVMuZGVmYXVsdDtcbiAgICAgIGNvbnN0IHNvdXJjZVNjb3JlID0gU09VUkNFX1NDT1JFU1tzb3VyY2VdIHx8IFNPVVJDRV9TQ09SRVMuZGVmYXVsdDtcbiAgICAgIGNvbnN0IHR5cGVTY29yZSA9IFRZUEVfU0NPUkVTW3R5cGVdIHx8IFRZUEVfU0NPUkVTLmRlZmF1bHQ7XG4gICAgICBjb25zdCBsZW5ndGhTY29yZSA9IDEgLSBtaW1lVHlwZS5sZW5ndGggLyAxMDA7XG4gICAgICByZXR1cm4gZmFjZXRTY29yZSArIHNvdXJjZVNjb3JlICsgdHlwZVNjb3JlICsgbGVuZ3RoU2NvcmU7XG4gICAgfTtcbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9leHByZXNzL25vZGVfbW9kdWxlcy9taW1lLXR5cGVzL2luZGV4LmpzXG52YXIgcmVxdWlyZV9taW1lX3R5cGVzMiA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9leHByZXNzL25vZGVfbW9kdWxlcy9taW1lLXR5cGVzL2luZGV4LmpzXCIoZXhwb3J0czIpIHtcbiAgICBcInVzZSBzdHJpY3RcIjtcbiAgICB2YXIgZGIgPSByZXF1aXJlX21pbWVfZGIyKCk7XG4gICAgdmFyIGV4dG5hbWUgPSByZXF1aXJlKFwicGF0aFwiKS5leHRuYW1lO1xuICAgIHZhciBtaW1lU2NvcmUgPSByZXF1aXJlX21pbWVTY29yZTIoKTtcbiAgICB2YXIgRVhUUkFDVF9UWVBFX1JFR0VYUCA9IC9eXFxzKihbXjtcXHNdKikoPzo7fFxcc3wkKS87XG4gICAgdmFyIFRFWFRfVFlQRV9SRUdFWFAgPSAvXnRleHRcXC8vaTtcbiAgICBleHBvcnRzMi5jaGFyc2V0ID0gY2hhcnNldDtcbiAgICBleHBvcnRzMi5jaGFyc2V0cyA9IHsgbG9va3VwOiBjaGFyc2V0IH07XG4gICAgZXhwb3J0czIuY29udGVudFR5cGUgPSBjb250ZW50VHlwZTI7XG4gICAgZXhwb3J0czIuZXh0ZW5zaW9uID0gZXh0ZW5zaW9uO1xuICAgIGV4cG9ydHMyLmV4dGVuc2lvbnMgPSAvKiBAX19QVVJFX18gKi8gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgICBleHBvcnRzMi5sb29rdXAgPSBsb29rdXA7XG4gICAgZXhwb3J0czIudHlwZXMgPSAvKiBAX19QVVJFX18gKi8gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgICBleHBvcnRzMi5fZXh0ZW5zaW9uQ29uZmxpY3RzID0gW107XG4gICAgcG9wdWxhdGVNYXBzKGV4cG9ydHMyLmV4dGVuc2lvbnMsIGV4cG9ydHMyLnR5cGVzKTtcbiAgICBmdW5jdGlvbiBjaGFyc2V0KHR5cGUpIHtcbiAgICAgIGlmICghdHlwZSB8fCB0eXBlb2YgdHlwZSAhPT0gXCJzdHJpbmdcIikge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgICB2YXIgbWF0Y2ggPSBFWFRSQUNUX1RZUEVfUkVHRVhQLmV4ZWModHlwZSk7XG4gICAgICB2YXIgbWltZSA9IG1hdGNoICYmIGRiW21hdGNoWzFdLnRvTG93ZXJDYXNlKCldO1xuICAgICAgaWYgKG1pbWUgJiYgbWltZS5jaGFyc2V0KSB7XG4gICAgICAgIHJldHVybiBtaW1lLmNoYXJzZXQ7XG4gICAgICB9XG4gICAgICBpZiAobWF0Y2ggJiYgVEVYVF9UWVBFX1JFR0VYUC50ZXN0KG1hdGNoWzFdKSkge1xuICAgICAgICByZXR1cm4gXCJVVEYtOFwiO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBmdW5jdGlvbiBjb250ZW50VHlwZTIoc3RyKSB7XG4gICAgICBpZiAoIXN0ciB8fCB0eXBlb2Ygc3RyICE9PSBcInN0cmluZ1wiKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIHZhciBtaW1lID0gc3RyLmluZGV4T2YoXCIvXCIpID09PSAtMSA/IGV4cG9ydHMyLmxvb2t1cChzdHIpIDogc3RyO1xuICAgICAgaWYgKCFtaW1lKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIGlmIChtaW1lLmluZGV4T2YoXCJjaGFyc2V0XCIpID09PSAtMSkge1xuICAgICAgICB2YXIgY2hhcnNldDIgPSBleHBvcnRzMi5jaGFyc2V0KG1pbWUpO1xuICAgICAgICBpZiAoY2hhcnNldDIpIG1pbWUgKz0gXCI7IGNoYXJzZXQ9XCIgKyBjaGFyc2V0Mi50b0xvd2VyQ2FzZSgpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIG1pbWU7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGV4dGVuc2lvbih0eXBlKSB7XG4gICAgICBpZiAoIXR5cGUgfHwgdHlwZW9mIHR5cGUgIT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgdmFyIG1hdGNoID0gRVhUUkFDVF9UWVBFX1JFR0VYUC5leGVjKHR5cGUpO1xuICAgICAgdmFyIGV4dHMgPSBtYXRjaCAmJiBleHBvcnRzMi5leHRlbnNpb25zW21hdGNoWzFdLnRvTG93ZXJDYXNlKCldO1xuICAgICAgaWYgKCFleHRzIHx8ICFleHRzLmxlbmd0aCkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgICByZXR1cm4gZXh0c1swXTtcbiAgICB9XG4gICAgZnVuY3Rpb24gbG9va3VwKHBhdGgpIHtcbiAgICAgIGlmICghcGF0aCB8fCB0eXBlb2YgcGF0aCAhPT0gXCJzdHJpbmdcIikge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgICB2YXIgZXh0ZW5zaW9uMiA9IGV4dG5hbWUoXCJ4LlwiICsgcGF0aCkudG9Mb3dlckNhc2UoKS5zbGljZSgxKTtcbiAgICAgIGlmICghZXh0ZW5zaW9uMikge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgICByZXR1cm4gZXhwb3J0czIudHlwZXNbZXh0ZW5zaW9uMl0gfHwgZmFsc2U7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHBvcHVsYXRlTWFwcyhleHRlbnNpb25zLCB0eXBlcykge1xuICAgICAgT2JqZWN0LmtleXMoZGIpLmZvckVhY2goZnVuY3Rpb24gZm9yRWFjaE1pbWVUeXBlKHR5cGUpIHtcbiAgICAgICAgdmFyIG1pbWUgPSBkYlt0eXBlXTtcbiAgICAgICAgdmFyIGV4dHMgPSBtaW1lLmV4dGVuc2lvbnM7XG4gICAgICAgIGlmICghZXh0cyB8fCAhZXh0cy5sZW5ndGgpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgZXh0ZW5zaW9uc1t0eXBlXSA9IGV4dHM7XG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZXh0cy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgIHZhciBleHRlbnNpb24yID0gZXh0c1tpXTtcbiAgICAgICAgICB0eXBlc1tleHRlbnNpb24yXSA9IF9wcmVmZXJyZWRUeXBlKGV4dGVuc2lvbjIsIHR5cGVzW2V4dGVuc2lvbjJdLCB0eXBlKTtcbiAgICAgICAgICBjb25zdCBsZWdhY3lUeXBlID0gX3ByZWZlcnJlZFR5cGVMZWdhY3koXG4gICAgICAgICAgICBleHRlbnNpb24yLFxuICAgICAgICAgICAgdHlwZXNbZXh0ZW5zaW9uMl0sXG4gICAgICAgICAgICB0eXBlXG4gICAgICAgICAgKTtcbiAgICAgICAgICBpZiAobGVnYWN5VHlwZSAhPT0gdHlwZXNbZXh0ZW5zaW9uMl0pIHtcbiAgICAgICAgICAgIGV4cG9ydHMyLl9leHRlbnNpb25Db25mbGljdHMucHVzaChbZXh0ZW5zaW9uMiwgbGVnYWN5VHlwZSwgdHlwZXNbZXh0ZW5zaW9uMl1dKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgICBmdW5jdGlvbiBfcHJlZmVycmVkVHlwZShleHQsIHR5cGUwLCB0eXBlMSkge1xuICAgICAgdmFyIHNjb3JlMCA9IHR5cGUwID8gbWltZVNjb3JlKHR5cGUwLCBkYlt0eXBlMF0uc291cmNlKSA6IDA7XG4gICAgICB2YXIgc2NvcmUxID0gdHlwZTEgPyBtaW1lU2NvcmUodHlwZTEsIGRiW3R5cGUxXS5zb3VyY2UpIDogMDtcbiAgICAgIHJldHVybiBzY29yZTAgPiBzY29yZTEgPyB0eXBlMCA6IHR5cGUxO1xuICAgIH1cbiAgICBmdW5jdGlvbiBfcHJlZmVycmVkVHlwZUxlZ2FjeShleHQsIHR5cGUwLCB0eXBlMSkge1xuICAgICAgdmFyIFNPVVJDRV9SQU5LID0gW1wibmdpbnhcIiwgXCJhcGFjaGVcIiwgdm9pZCAwLCBcImlhbmFcIl07XG4gICAgICB2YXIgc2NvcmUwID0gdHlwZTAgPyBTT1VSQ0VfUkFOSy5pbmRleE9mKGRiW3R5cGUwXS5zb3VyY2UpIDogMDtcbiAgICAgIHZhciBzY29yZTEgPSB0eXBlMSA/IFNPVVJDRV9SQU5LLmluZGV4T2YoZGJbdHlwZTFdLnNvdXJjZSkgOiAwO1xuICAgICAgaWYgKGV4cG9ydHMyLnR5cGVzW2V4dGVuc2lvbl0gIT09IFwiYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtXCIgJiYgKHNjb3JlMCA+IHNjb3JlMSB8fCBzY29yZTAgPT09IHNjb3JlMSAmJiBleHBvcnRzMi50eXBlc1tleHRlbnNpb25dPy5zbGljZSgwLCAxMikgPT09IFwiYXBwbGljYXRpb24vXCIpKSB7XG4gICAgICAgIHJldHVybiB0eXBlMDtcbiAgICAgIH1cbiAgICAgIHJldHVybiBzY29yZTAgPiBzY29yZTEgPyB0eXBlMCA6IHR5cGUxO1xuICAgIH1cbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9mb3J3YXJkZWQvaW5kZXguanNcbnZhciByZXF1aXJlX2ZvcndhcmRlZCA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9mb3J3YXJkZWQvaW5kZXguanNcIihleHBvcnRzMiwgbW9kdWxlMikge1xuICAgIFwidXNlIHN0cmljdFwiO1xuICAgIG1vZHVsZTIuZXhwb3J0cyA9IGZvcndhcmRlZDtcbiAgICBmdW5jdGlvbiBmb3J3YXJkZWQocmVxKSB7XG4gICAgICBpZiAoIXJlcSkge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiYXJndW1lbnQgcmVxIGlzIHJlcXVpcmVkXCIpO1xuICAgICAgfVxuICAgICAgdmFyIHByb3h5QWRkcnMgPSBwYXJzZShyZXEuaGVhZGVyc1tcIngtZm9yd2FyZGVkLWZvclwiXSB8fCBcIlwiKTtcbiAgICAgIHZhciBzb2NrZXRBZGRyID0gZ2V0U29ja2V0QWRkcihyZXEpO1xuICAgICAgdmFyIGFkZHJzID0gW3NvY2tldEFkZHJdLmNvbmNhdChwcm94eUFkZHJzKTtcbiAgICAgIHJldHVybiBhZGRycztcbiAgICB9XG4gICAgZnVuY3Rpb24gZ2V0U29ja2V0QWRkcihyZXEpIHtcbiAgICAgIHJldHVybiByZXEuc29ja2V0ID8gcmVxLnNvY2tldC5yZW1vdGVBZGRyZXNzIDogcmVxLmNvbm5lY3Rpb24ucmVtb3RlQWRkcmVzcztcbiAgICB9XG4gICAgZnVuY3Rpb24gcGFyc2UoaGVhZGVyKSB7XG4gICAgICB2YXIgZW5kID0gaGVhZGVyLmxlbmd0aDtcbiAgICAgIHZhciBsaXN0ID0gW107XG4gICAgICB2YXIgc3RhcnQgPSBoZWFkZXIubGVuZ3RoO1xuICAgICAgZm9yICh2YXIgaSA9IGhlYWRlci5sZW5ndGggLSAxOyBpID49IDA7IGktLSkge1xuICAgICAgICBzd2l0Y2ggKGhlYWRlci5jaGFyQ29kZUF0KGkpKSB7XG4gICAgICAgICAgY2FzZSAzMjpcbiAgICAgICAgICAgIGlmIChzdGFydCA9PT0gZW5kKSB7XG4gICAgICAgICAgICAgIHN0YXJ0ID0gZW5kID0gaTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgNDQ6XG4gICAgICAgICAgICBpZiAoc3RhcnQgIT09IGVuZCkge1xuICAgICAgICAgICAgICBsaXN0LnB1c2goaGVhZGVyLnN1YnN0cmluZyhzdGFydCwgZW5kKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBzdGFydCA9IGVuZCA9IGk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgc3RhcnQgPSBpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmIChzdGFydCAhPT0gZW5kKSB7XG4gICAgICAgIGxpc3QucHVzaChoZWFkZXIuc3Vic3RyaW5nKHN0YXJ0LCBlbmQpKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBsaXN0O1xuICAgIH1cbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9pcGFkZHIuanMvbGliL2lwYWRkci5qc1xudmFyIHJlcXVpcmVfaXBhZGRyID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL2lwYWRkci5qcy9saWIvaXBhZGRyLmpzXCIoZXhwb3J0czIsIG1vZHVsZTIpIHtcbiAgICAoZnVuY3Rpb24oKSB7XG4gICAgICB2YXIgZXhwYW5kSVB2NiwgaXBhZGRyLCBpcHY0UGFydCwgaXB2NFJlZ2V4ZXMsIGlwdjZQYXJ0LCBpcHY2UmVnZXhlcywgbWF0Y2hDSURSLCByb290LCB6b25lSW5kZXg7XG4gICAgICBpcGFkZHIgPSB7fTtcbiAgICAgIHJvb3QgPSB0aGlzO1xuICAgICAgaWYgKHR5cGVvZiBtb2R1bGUyICE9PSBcInVuZGVmaW5lZFwiICYmIG1vZHVsZTIgIT09IG51bGwgJiYgbW9kdWxlMi5leHBvcnRzKSB7XG4gICAgICAgIG1vZHVsZTIuZXhwb3J0cyA9IGlwYWRkcjtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJvb3RbXCJpcGFkZHJcIl0gPSBpcGFkZHI7XG4gICAgICB9XG4gICAgICBtYXRjaENJRFIgPSBmdW5jdGlvbihmaXJzdCwgc2Vjb25kLCBwYXJ0U2l6ZSwgY2lkckJpdHMpIHtcbiAgICAgICAgdmFyIHBhcnQsIHNoaWZ0O1xuICAgICAgICBpZiAoZmlyc3QubGVuZ3RoICE9PSBzZWNvbmQubGVuZ3RoKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiaXBhZGRyOiBjYW5ub3QgbWF0Y2ggQ0lEUiBmb3Igb2JqZWN0cyB3aXRoIGRpZmZlcmVudCBsZW5ndGhzXCIpO1xuICAgICAgICB9XG4gICAgICAgIHBhcnQgPSAwO1xuICAgICAgICB3aGlsZSAoY2lkckJpdHMgPiAwKSB7XG4gICAgICAgICAgc2hpZnQgPSBwYXJ0U2l6ZSAtIGNpZHJCaXRzO1xuICAgICAgICAgIGlmIChzaGlmdCA8IDApIHtcbiAgICAgICAgICAgIHNoaWZ0ID0gMDtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGZpcnN0W3BhcnRdID4+IHNoaWZ0ICE9PSBzZWNvbmRbcGFydF0gPj4gc2hpZnQpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgY2lkckJpdHMgLT0gcGFydFNpemU7XG4gICAgICAgICAgcGFydCArPSAxO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfTtcbiAgICAgIGlwYWRkci5zdWJuZXRNYXRjaCA9IGZ1bmN0aW9uKGFkZHJlc3MsIHJhbmdlTGlzdCwgZGVmYXVsdE5hbWUpIHtcbiAgICAgICAgdmFyIGssIGxlbiwgcmFuZ2VOYW1lLCByYW5nZVN1Ym5ldHMsIHN1Ym5ldDtcbiAgICAgICAgaWYgKGRlZmF1bHROYW1lID09IG51bGwpIHtcbiAgICAgICAgICBkZWZhdWx0TmFtZSA9IFwidW5pY2FzdFwiO1xuICAgICAgICB9XG4gICAgICAgIGZvciAocmFuZ2VOYW1lIGluIHJhbmdlTGlzdCkge1xuICAgICAgICAgIHJhbmdlU3VibmV0cyA9IHJhbmdlTGlzdFtyYW5nZU5hbWVdO1xuICAgICAgICAgIGlmIChyYW5nZVN1Ym5ldHNbMF0gJiYgIShyYW5nZVN1Ym5ldHNbMF0gaW5zdGFuY2VvZiBBcnJheSkpIHtcbiAgICAgICAgICAgIHJhbmdlU3VibmV0cyA9IFtyYW5nZVN1Ym5ldHNdO1xuICAgICAgICAgIH1cbiAgICAgICAgICBmb3IgKGsgPSAwLCBsZW4gPSByYW5nZVN1Ym5ldHMubGVuZ3RoOyBrIDwgbGVuOyBrKyspIHtcbiAgICAgICAgICAgIHN1Ym5ldCA9IHJhbmdlU3VibmV0c1trXTtcbiAgICAgICAgICAgIGlmIChhZGRyZXNzLmtpbmQoKSA9PT0gc3VibmV0WzBdLmtpbmQoKSkge1xuICAgICAgICAgICAgICBpZiAoYWRkcmVzcy5tYXRjaC5hcHBseShhZGRyZXNzLCBzdWJuZXQpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJhbmdlTmFtZTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZGVmYXVsdE5hbWU7XG4gICAgICB9O1xuICAgICAgaXBhZGRyLklQdjQgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgZnVuY3Rpb24gSVB2NChvY3RldHMpIHtcbiAgICAgICAgICB2YXIgaywgbGVuLCBvY3RldDtcbiAgICAgICAgICBpZiAob2N0ZXRzLmxlbmd0aCAhPT0gNCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiaXBhZGRyOiBpcHY0IG9jdGV0IGNvdW50IHNob3VsZCBiZSA0XCIpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBmb3IgKGsgPSAwLCBsZW4gPSBvY3RldHMubGVuZ3RoOyBrIDwgbGVuOyBrKyspIHtcbiAgICAgICAgICAgIG9jdGV0ID0gb2N0ZXRzW2tdO1xuICAgICAgICAgICAgaWYgKCEoMCA8PSBvY3RldCAmJiBvY3RldCA8PSAyNTUpKSB7XG4gICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcImlwYWRkcjogaXB2NCBvY3RldCBzaG91bGQgZml0IGluIDggYml0c1wiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5vY3RldHMgPSBvY3RldHM7XG4gICAgICAgIH1cbiAgICAgICAgSVB2NC5wcm90b3R5cGUua2luZCA9IGZ1bmN0aW9uKCkge1xuICAgICAgICAgIHJldHVybiBcImlwdjRcIjtcbiAgICAgICAgfTtcbiAgICAgICAgSVB2NC5wcm90b3R5cGUudG9TdHJpbmcgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5vY3RldHMuam9pbihcIi5cIik7XG4gICAgICAgIH07XG4gICAgICAgIElQdjQucHJvdG90eXBlLnRvTm9ybWFsaXplZFN0cmluZyA9IGZ1bmN0aW9uKCkge1xuICAgICAgICAgIHJldHVybiB0aGlzLnRvU3RyaW5nKCk7XG4gICAgICAgIH07XG4gICAgICAgIElQdjQucHJvdG90eXBlLnRvQnl0ZUFycmF5ID0gZnVuY3Rpb24oKSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMub2N0ZXRzLnNsaWNlKDApO1xuICAgICAgICB9O1xuICAgICAgICBJUHY0LnByb3RvdHlwZS5tYXRjaCA9IGZ1bmN0aW9uKG90aGVyLCBjaWRyUmFuZ2UpIHtcbiAgICAgICAgICB2YXIgcmVmO1xuICAgICAgICAgIGlmIChjaWRyUmFuZ2UgPT09IHZvaWQgMCkge1xuICAgICAgICAgICAgcmVmID0gb3RoZXIsIG90aGVyID0gcmVmWzBdLCBjaWRyUmFuZ2UgPSByZWZbMV07XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChvdGhlci5raW5kKCkgIT09IFwiaXB2NFwiKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJpcGFkZHI6IGNhbm5vdCBtYXRjaCBpcHY0IGFkZHJlc3Mgd2l0aCBub24taXB2NCBvbmVcIik7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBtYXRjaENJRFIodGhpcy5vY3RldHMsIG90aGVyLm9jdGV0cywgOCwgY2lkclJhbmdlKTtcbiAgICAgICAgfTtcbiAgICAgICAgSVB2NC5wcm90b3R5cGUuU3BlY2lhbFJhbmdlcyA9IHtcbiAgICAgICAgICB1bnNwZWNpZmllZDogW1tuZXcgSVB2NChbMCwgMCwgMCwgMF0pLCA4XV0sXG4gICAgICAgICAgYnJvYWRjYXN0OiBbW25ldyBJUHY0KFsyNTUsIDI1NSwgMjU1LCAyNTVdKSwgMzJdXSxcbiAgICAgICAgICBtdWx0aWNhc3Q6IFtbbmV3IElQdjQoWzIyNCwgMCwgMCwgMF0pLCA0XV0sXG4gICAgICAgICAgbGlua0xvY2FsOiBbW25ldyBJUHY0KFsxNjksIDI1NCwgMCwgMF0pLCAxNl1dLFxuICAgICAgICAgIGxvb3BiYWNrOiBbW25ldyBJUHY0KFsxMjcsIDAsIDAsIDBdKSwgOF1dLFxuICAgICAgICAgIGNhcnJpZXJHcmFkZU5hdDogW1tuZXcgSVB2NChbMTAwLCA2NCwgMCwgMF0pLCAxMF1dLFxuICAgICAgICAgIFwicHJpdmF0ZVwiOiBbW25ldyBJUHY0KFsxMCwgMCwgMCwgMF0pLCA4XSwgW25ldyBJUHY0KFsxNzIsIDE2LCAwLCAwXSksIDEyXSwgW25ldyBJUHY0KFsxOTIsIDE2OCwgMCwgMF0pLCAxNl1dLFxuICAgICAgICAgIHJlc2VydmVkOiBbW25ldyBJUHY0KFsxOTIsIDAsIDAsIDBdKSwgMjRdLCBbbmV3IElQdjQoWzE5MiwgMCwgMiwgMF0pLCAyNF0sIFtuZXcgSVB2NChbMTkyLCA4OCwgOTksIDBdKSwgMjRdLCBbbmV3IElQdjQoWzE5OCwgNTEsIDEwMCwgMF0pLCAyNF0sIFtuZXcgSVB2NChbMjAzLCAwLCAxMTMsIDBdKSwgMjRdLCBbbmV3IElQdjQoWzI0MCwgMCwgMCwgMF0pLCA0XV1cbiAgICAgICAgfTtcbiAgICAgICAgSVB2NC5wcm90b3R5cGUucmFuZ2UgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgICByZXR1cm4gaXBhZGRyLnN1Ym5ldE1hdGNoKHRoaXMsIHRoaXMuU3BlY2lhbFJhbmdlcyk7XG4gICAgICAgIH07XG4gICAgICAgIElQdjQucHJvdG90eXBlLnRvSVB2NE1hcHBlZEFkZHJlc3MgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgICByZXR1cm4gaXBhZGRyLklQdjYucGFyc2UoXCI6OmZmZmY6XCIgKyB0aGlzLnRvU3RyaW5nKCkpO1xuICAgICAgICB9O1xuICAgICAgICBJUHY0LnByb3RvdHlwZS5wcmVmaXhMZW5ndGhGcm9tU3VibmV0TWFzayA9IGZ1bmN0aW9uKCkge1xuICAgICAgICAgIHZhciBjaWRyLCBpLCBrLCBvY3RldCwgc3RvcCwgemVyb3MsIHplcm90YWJsZTtcbiAgICAgICAgICB6ZXJvdGFibGUgPSB7XG4gICAgICAgICAgICAwOiA4LFxuICAgICAgICAgICAgMTI4OiA3LFxuICAgICAgICAgICAgMTkyOiA2LFxuICAgICAgICAgICAgMjI0OiA1LFxuICAgICAgICAgICAgMjQwOiA0LFxuICAgICAgICAgICAgMjQ4OiAzLFxuICAgICAgICAgICAgMjUyOiAyLFxuICAgICAgICAgICAgMjU0OiAxLFxuICAgICAgICAgICAgMjU1OiAwXG4gICAgICAgICAgfTtcbiAgICAgICAgICBjaWRyID0gMDtcbiAgICAgICAgICBzdG9wID0gZmFsc2U7XG4gICAgICAgICAgZm9yIChpID0gayA9IDM7IGsgPj0gMDsgaSA9IGsgKz0gLTEpIHtcbiAgICAgICAgICAgIG9jdGV0ID0gdGhpcy5vY3RldHNbaV07XG4gICAgICAgICAgICBpZiAob2N0ZXQgaW4gemVyb3RhYmxlKSB7XG4gICAgICAgICAgICAgIHplcm9zID0gemVyb3RhYmxlW29jdGV0XTtcbiAgICAgICAgICAgICAgaWYgKHN0b3AgJiYgemVyb3MgIT09IDApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBpZiAoemVyb3MgIT09IDgpIHtcbiAgICAgICAgICAgICAgICBzdG9wID0gdHJ1ZTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBjaWRyICs9IHplcm9zO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiAzMiAtIGNpZHI7XG4gICAgICAgIH07XG4gICAgICAgIHJldHVybiBJUHY0O1xuICAgICAgfSgpO1xuICAgICAgaXB2NFBhcnQgPSBcIigwP1xcXFxkK3wweFthLWYwLTldKylcIjtcbiAgICAgIGlwdjRSZWdleGVzID0ge1xuICAgICAgICBmb3VyT2N0ZXQ6IG5ldyBSZWdFeHAoXCJeXCIgKyBpcHY0UGFydCArIFwiXFxcXC5cIiArIGlwdjRQYXJ0ICsgXCJcXFxcLlwiICsgaXB2NFBhcnQgKyBcIlxcXFwuXCIgKyBpcHY0UGFydCArIFwiJFwiLCBcImlcIiksXG4gICAgICAgIGxvbmdWYWx1ZTogbmV3IFJlZ0V4cChcIl5cIiArIGlwdjRQYXJ0ICsgXCIkXCIsIFwiaVwiKVxuICAgICAgfTtcbiAgICAgIGlwYWRkci5JUHY0LnBhcnNlciA9IGZ1bmN0aW9uKHN0cmluZykge1xuICAgICAgICB2YXIgbWF0Y2gsIHBhcnNlSW50QXV0bywgcGFydCwgc2hpZnQsIHZhbHVlO1xuICAgICAgICBwYXJzZUludEF1dG8gPSBmdW5jdGlvbihzdHJpbmcyKSB7XG4gICAgICAgICAgaWYgKHN0cmluZzJbMF0gPT09IFwiMFwiICYmIHN0cmluZzJbMV0gIT09IFwieFwiKSB7XG4gICAgICAgICAgICByZXR1cm4gcGFyc2VJbnQoc3RyaW5nMiwgOCk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBwYXJzZUludChzdHJpbmcyKTtcbiAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICAgIGlmIChtYXRjaCA9IHN0cmluZy5tYXRjaChpcHY0UmVnZXhlcy5mb3VyT2N0ZXQpKSB7XG4gICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgdmFyIGssIGxlbiwgcmVmLCByZXN1bHRzO1xuICAgICAgICAgICAgcmVmID0gbWF0Y2guc2xpY2UoMSwgNik7XG4gICAgICAgICAgICByZXN1bHRzID0gW107XG4gICAgICAgICAgICBmb3IgKGsgPSAwLCBsZW4gPSByZWYubGVuZ3RoOyBrIDwgbGVuOyBrKyspIHtcbiAgICAgICAgICAgICAgcGFydCA9IHJlZltrXTtcbiAgICAgICAgICAgICAgcmVzdWx0cy5wdXNoKHBhcnNlSW50QXV0byhwYXJ0KSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gcmVzdWx0cztcbiAgICAgICAgICB9KCk7XG4gICAgICAgIH0gZWxzZSBpZiAobWF0Y2ggPSBzdHJpbmcubWF0Y2goaXB2NFJlZ2V4ZXMubG9uZ1ZhbHVlKSkge1xuICAgICAgICAgIHZhbHVlID0gcGFyc2VJbnRBdXRvKG1hdGNoWzFdKTtcbiAgICAgICAgICBpZiAodmFsdWUgPiA0Mjk0OTY3Mjk1IHx8IHZhbHVlIDwgMCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiaXBhZGRyOiBhZGRyZXNzIG91dHNpZGUgZGVmaW5lZCByYW5nZVwiKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgdmFyIGssIHJlc3VsdHM7XG4gICAgICAgICAgICByZXN1bHRzID0gW107XG4gICAgICAgICAgICBmb3IgKHNoaWZ0ID0gayA9IDA7IGsgPD0gMjQ7IHNoaWZ0ID0gayArPSA4KSB7XG4gICAgICAgICAgICAgIHJlc3VsdHMucHVzaCh2YWx1ZSA+PiBzaGlmdCAmIDI1NSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gcmVzdWx0cztcbiAgICAgICAgICB9KCkucmV2ZXJzZSgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICB9O1xuICAgICAgaXBhZGRyLklQdjYgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgZnVuY3Rpb24gSVB2NihwYXJ0cywgem9uZUlkKSB7XG4gICAgICAgICAgdmFyIGksIGssIGwsIGxlbiwgcGFydCwgcmVmO1xuICAgICAgICAgIGlmIChwYXJ0cy5sZW5ndGggPT09IDE2KSB7XG4gICAgICAgICAgICB0aGlzLnBhcnRzID0gW107XG4gICAgICAgICAgICBmb3IgKGkgPSBrID0gMDsgayA8PSAxNDsgaSA9IGsgKz0gMikge1xuICAgICAgICAgICAgICB0aGlzLnBhcnRzLnB1c2gocGFydHNbaV0gPDwgOCB8IHBhcnRzW2kgKyAxXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIGlmIChwYXJ0cy5sZW5ndGggPT09IDgpIHtcbiAgICAgICAgICAgIHRoaXMucGFydHMgPSBwYXJ0cztcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiaXBhZGRyOiBpcHY2IHBhcnQgY291bnQgc2hvdWxkIGJlIDggb3IgMTZcIik7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJlZiA9IHRoaXMucGFydHM7XG4gICAgICAgICAgZm9yIChsID0gMCwgbGVuID0gcmVmLmxlbmd0aDsgbCA8IGxlbjsgbCsrKSB7XG4gICAgICAgICAgICBwYXJ0ID0gcmVmW2xdO1xuICAgICAgICAgICAgaWYgKCEoMCA8PSBwYXJ0ICYmIHBhcnQgPD0gNjU1MzUpKSB7XG4gICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcImlwYWRkcjogaXB2NiBwYXJ0IHNob3VsZCBmaXQgaW4gMTYgYml0c1wiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHpvbmVJZCkge1xuICAgICAgICAgICAgdGhpcy56b25lSWQgPSB6b25lSWQ7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIElQdjYucHJvdG90eXBlLmtpbmQgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgICByZXR1cm4gXCJpcHY2XCI7XG4gICAgICAgIH07XG4gICAgICAgIElQdjYucHJvdG90eXBlLnRvU3RyaW5nID0gZnVuY3Rpb24oKSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMudG9Ob3JtYWxpemVkU3RyaW5nKCkucmVwbGFjZSgvKChefDopKDAoOnwkKSkrKS8sIFwiOjpcIik7XG4gICAgICAgIH07XG4gICAgICAgIElQdjYucHJvdG90eXBlLnRvUkZDNTk1MlN0cmluZyA9IGZ1bmN0aW9uKCkge1xuICAgICAgICAgIHZhciBiZXN0TWF0Y2hJbmRleCwgYmVzdE1hdGNoTGVuZ3RoLCBtYXRjaCwgcmVnZXgsIHN0cmluZztcbiAgICAgICAgICByZWdleCA9IC8oKF58OikoMCg6fCQpKXsyLH0pL2c7XG4gICAgICAgICAgc3RyaW5nID0gdGhpcy50b05vcm1hbGl6ZWRTdHJpbmcoKTtcbiAgICAgICAgICBiZXN0TWF0Y2hJbmRleCA9IDA7XG4gICAgICAgICAgYmVzdE1hdGNoTGVuZ3RoID0gLTE7XG4gICAgICAgICAgd2hpbGUgKG1hdGNoID0gcmVnZXguZXhlYyhzdHJpbmcpKSB7XG4gICAgICAgICAgICBpZiAobWF0Y2hbMF0ubGVuZ3RoID4gYmVzdE1hdGNoTGVuZ3RoKSB7XG4gICAgICAgICAgICAgIGJlc3RNYXRjaEluZGV4ID0gbWF0Y2guaW5kZXg7XG4gICAgICAgICAgICAgIGJlc3RNYXRjaExlbmd0aCA9IG1hdGNoWzBdLmxlbmd0aDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGJlc3RNYXRjaExlbmd0aCA8IDApIHtcbiAgICAgICAgICAgIHJldHVybiBzdHJpbmc7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBzdHJpbmcuc3Vic3RyaW5nKDAsIGJlc3RNYXRjaEluZGV4KSArIFwiOjpcIiArIHN0cmluZy5zdWJzdHJpbmcoYmVzdE1hdGNoSW5kZXggKyBiZXN0TWF0Y2hMZW5ndGgpO1xuICAgICAgICB9O1xuICAgICAgICBJUHY2LnByb3RvdHlwZS50b0J5dGVBcnJheSA9IGZ1bmN0aW9uKCkge1xuICAgICAgICAgIHZhciBieXRlcywgaywgbGVuLCBwYXJ0LCByZWY7XG4gICAgICAgICAgYnl0ZXMgPSBbXTtcbiAgICAgICAgICByZWYgPSB0aGlzLnBhcnRzO1xuICAgICAgICAgIGZvciAoayA9IDAsIGxlbiA9IHJlZi5sZW5ndGg7IGsgPCBsZW47IGsrKykge1xuICAgICAgICAgICAgcGFydCA9IHJlZltrXTtcbiAgICAgICAgICAgIGJ5dGVzLnB1c2gocGFydCA+PiA4KTtcbiAgICAgICAgICAgIGJ5dGVzLnB1c2gocGFydCAmIDI1NSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBieXRlcztcbiAgICAgICAgfTtcbiAgICAgICAgSVB2Ni5wcm90b3R5cGUudG9Ob3JtYWxpemVkU3RyaW5nID0gZnVuY3Rpb24oKSB7XG4gICAgICAgICAgdmFyIGFkZHIsIHBhcnQsIHN1ZmZpeDtcbiAgICAgICAgICBhZGRyID0gZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICB2YXIgaywgbGVuLCByZWYsIHJlc3VsdHM7XG4gICAgICAgICAgICByZWYgPSB0aGlzLnBhcnRzO1xuICAgICAgICAgICAgcmVzdWx0cyA9IFtdO1xuICAgICAgICAgICAgZm9yIChrID0gMCwgbGVuID0gcmVmLmxlbmd0aDsgayA8IGxlbjsgaysrKSB7XG4gICAgICAgICAgICAgIHBhcnQgPSByZWZba107XG4gICAgICAgICAgICAgIHJlc3VsdHMucHVzaChwYXJ0LnRvU3RyaW5nKDE2KSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gcmVzdWx0cztcbiAgICAgICAgICB9LmNhbGwodGhpcykuam9pbihcIjpcIik7XG4gICAgICAgICAgc3VmZml4ID0gXCJcIjtcbiAgICAgICAgICBpZiAodGhpcy56b25lSWQpIHtcbiAgICAgICAgICAgIHN1ZmZpeCA9IFwiJVwiICsgdGhpcy56b25lSWQ7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBhZGRyICsgc3VmZml4O1xuICAgICAgICB9O1xuICAgICAgICBJUHY2LnByb3RvdHlwZS50b0ZpeGVkTGVuZ3RoU3RyaW5nID0gZnVuY3Rpb24oKSB7XG4gICAgICAgICAgdmFyIGFkZHIsIHBhcnQsIHN1ZmZpeDtcbiAgICAgICAgICBhZGRyID0gZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICB2YXIgaywgbGVuLCByZWYsIHJlc3VsdHM7XG4gICAgICAgICAgICByZWYgPSB0aGlzLnBhcnRzO1xuICAgICAgICAgICAgcmVzdWx0cyA9IFtdO1xuICAgICAgICAgICAgZm9yIChrID0gMCwgbGVuID0gcmVmLmxlbmd0aDsgayA8IGxlbjsgaysrKSB7XG4gICAgICAgICAgICAgIHBhcnQgPSByZWZba107XG4gICAgICAgICAgICAgIHJlc3VsdHMucHVzaChwYXJ0LnRvU3RyaW5nKDE2KS5wYWRTdGFydCg0LCBcIjBcIikpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHJlc3VsdHM7XG4gICAgICAgICAgfS5jYWxsKHRoaXMpLmpvaW4oXCI6XCIpO1xuICAgICAgICAgIHN1ZmZpeCA9IFwiXCI7XG4gICAgICAgICAgaWYgKHRoaXMuem9uZUlkKSB7XG4gICAgICAgICAgICBzdWZmaXggPSBcIiVcIiArIHRoaXMuem9uZUlkO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gYWRkciArIHN1ZmZpeDtcbiAgICAgICAgfTtcbiAgICAgICAgSVB2Ni5wcm90b3R5cGUubWF0Y2ggPSBmdW5jdGlvbihvdGhlciwgY2lkclJhbmdlKSB7XG4gICAgICAgICAgdmFyIHJlZjtcbiAgICAgICAgICBpZiAoY2lkclJhbmdlID09PSB2b2lkIDApIHtcbiAgICAgICAgICAgIHJlZiA9IG90aGVyLCBvdGhlciA9IHJlZlswXSwgY2lkclJhbmdlID0gcmVmWzFdO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAob3RoZXIua2luZCgpICE9PSBcImlwdjZcIikge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiaXBhZGRyOiBjYW5ub3QgbWF0Y2ggaXB2NiBhZGRyZXNzIHdpdGggbm9uLWlwdjYgb25lXCIpO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gbWF0Y2hDSURSKHRoaXMucGFydHMsIG90aGVyLnBhcnRzLCAxNiwgY2lkclJhbmdlKTtcbiAgICAgICAgfTtcbiAgICAgICAgSVB2Ni5wcm90b3R5cGUuU3BlY2lhbFJhbmdlcyA9IHtcbiAgICAgICAgICB1bnNwZWNpZmllZDogW25ldyBJUHY2KFswLCAwLCAwLCAwLCAwLCAwLCAwLCAwXSksIDEyOF0sXG4gICAgICAgICAgbGlua0xvY2FsOiBbbmV3IElQdjYoWzY1MTUyLCAwLCAwLCAwLCAwLCAwLCAwLCAwXSksIDEwXSxcbiAgICAgICAgICBtdWx0aWNhc3Q6IFtuZXcgSVB2NihbNjUyODAsIDAsIDAsIDAsIDAsIDAsIDAsIDBdKSwgOF0sXG4gICAgICAgICAgbG9vcGJhY2s6IFtuZXcgSVB2NihbMCwgMCwgMCwgMCwgMCwgMCwgMCwgMV0pLCAxMjhdLFxuICAgICAgICAgIHVuaXF1ZUxvY2FsOiBbbmV3IElQdjYoWzY0NTEyLCAwLCAwLCAwLCAwLCAwLCAwLCAwXSksIDddLFxuICAgICAgICAgIGlwdjRNYXBwZWQ6IFtuZXcgSVB2NihbMCwgMCwgMCwgMCwgMCwgNjU1MzUsIDAsIDBdKSwgOTZdLFxuICAgICAgICAgIHJmYzYxNDU6IFtuZXcgSVB2NihbMCwgMCwgMCwgMCwgNjU1MzUsIDAsIDAsIDBdKSwgOTZdLFxuICAgICAgICAgIHJmYzYwNTI6IFtuZXcgSVB2NihbMTAwLCA2NTQzNSwgMCwgMCwgMCwgMCwgMCwgMF0pLCA5Nl0sXG4gICAgICAgICAgXCI2dG80XCI6IFtuZXcgSVB2NihbODE5NCwgMCwgMCwgMCwgMCwgMCwgMCwgMF0pLCAxNl0sXG4gICAgICAgICAgdGVyZWRvOiBbbmV3IElQdjYoWzgxOTMsIDAsIDAsIDAsIDAsIDAsIDAsIDBdKSwgMzJdLFxuICAgICAgICAgIHJlc2VydmVkOiBbW25ldyBJUHY2KFs4MTkzLCAzNTEyLCAwLCAwLCAwLCAwLCAwLCAwXSksIDMyXV1cbiAgICAgICAgfTtcbiAgICAgICAgSVB2Ni5wcm90b3R5cGUucmFuZ2UgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgICByZXR1cm4gaXBhZGRyLnN1Ym5ldE1hdGNoKHRoaXMsIHRoaXMuU3BlY2lhbFJhbmdlcyk7XG4gICAgICAgIH07XG4gICAgICAgIElQdjYucHJvdG90eXBlLmlzSVB2NE1hcHBlZEFkZHJlc3MgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5yYW5nZSgpID09PSBcImlwdjRNYXBwZWRcIjtcbiAgICAgICAgfTtcbiAgICAgICAgSVB2Ni5wcm90b3R5cGUudG9JUHY0QWRkcmVzcyA9IGZ1bmN0aW9uKCkge1xuICAgICAgICAgIHZhciBoaWdoLCBsb3csIHJlZjtcbiAgICAgICAgICBpZiAoIXRoaXMuaXNJUHY0TWFwcGVkQWRkcmVzcygpKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJpcGFkZHI6IHRyeWluZyB0byBjb252ZXJ0IGEgZ2VuZXJpYyBpcHY2IGFkZHJlc3MgdG8gaXB2NFwiKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmVmID0gdGhpcy5wYXJ0cy5zbGljZSgtMiksIGhpZ2ggPSByZWZbMF0sIGxvdyA9IHJlZlsxXTtcbiAgICAgICAgICByZXR1cm4gbmV3IGlwYWRkci5JUHY0KFtoaWdoID4+IDgsIGhpZ2ggJiAyNTUsIGxvdyA+PiA4LCBsb3cgJiAyNTVdKTtcbiAgICAgICAgfTtcbiAgICAgICAgSVB2Ni5wcm90b3R5cGUucHJlZml4TGVuZ3RoRnJvbVN1Ym5ldE1hc2sgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgICB2YXIgY2lkciwgaSwgaywgcGFydCwgc3RvcCwgemVyb3MsIHplcm90YWJsZTtcbiAgICAgICAgICB6ZXJvdGFibGUgPSB7XG4gICAgICAgICAgICAwOiAxNixcbiAgICAgICAgICAgIDMyNzY4OiAxNSxcbiAgICAgICAgICAgIDQ5MTUyOiAxNCxcbiAgICAgICAgICAgIDU3MzQ0OiAxMyxcbiAgICAgICAgICAgIDYxNDQwOiAxMixcbiAgICAgICAgICAgIDYzNDg4OiAxMSxcbiAgICAgICAgICAgIDY0NTEyOiAxMCxcbiAgICAgICAgICAgIDY1MDI0OiA5LFxuICAgICAgICAgICAgNjUyODA6IDgsXG4gICAgICAgICAgICA2NTQwODogNyxcbiAgICAgICAgICAgIDY1NDcyOiA2LFxuICAgICAgICAgICAgNjU1MDQ6IDUsXG4gICAgICAgICAgICA2NTUyMDogNCxcbiAgICAgICAgICAgIDY1NTI4OiAzLFxuICAgICAgICAgICAgNjU1MzI6IDIsXG4gICAgICAgICAgICA2NTUzNDogMSxcbiAgICAgICAgICAgIDY1NTM1OiAwXG4gICAgICAgICAgfTtcbiAgICAgICAgICBjaWRyID0gMDtcbiAgICAgICAgICBzdG9wID0gZmFsc2U7XG4gICAgICAgICAgZm9yIChpID0gayA9IDc7IGsgPj0gMDsgaSA9IGsgKz0gLTEpIHtcbiAgICAgICAgICAgIHBhcnQgPSB0aGlzLnBhcnRzW2ldO1xuICAgICAgICAgICAgaWYgKHBhcnQgaW4gemVyb3RhYmxlKSB7XG4gICAgICAgICAgICAgIHplcm9zID0gemVyb3RhYmxlW3BhcnRdO1xuICAgICAgICAgICAgICBpZiAoc3RvcCAmJiB6ZXJvcyAhPT0gMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGlmICh6ZXJvcyAhPT0gMTYpIHtcbiAgICAgICAgICAgICAgICBzdG9wID0gdHJ1ZTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBjaWRyICs9IHplcm9zO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiAxMjggLSBjaWRyO1xuICAgICAgICB9O1xuICAgICAgICByZXR1cm4gSVB2NjtcbiAgICAgIH0oKTtcbiAgICAgIGlwdjZQYXJ0ID0gXCIoPzpbMC05YS1mXSs6Oj8pK1wiO1xuICAgICAgem9uZUluZGV4ID0gXCIlWzAtOWEtel17MSx9XCI7XG4gICAgICBpcHY2UmVnZXhlcyA9IHtcbiAgICAgICAgem9uZUluZGV4OiBuZXcgUmVnRXhwKHpvbmVJbmRleCwgXCJpXCIpLFxuICAgICAgICBcIm5hdGl2ZVwiOiBuZXcgUmVnRXhwKFwiXig6Oik/KFwiICsgaXB2NlBhcnQgKyBcIik/KFswLTlhLWZdKyk/KDo6KT8oXCIgKyB6b25lSW5kZXggKyBcIik/JFwiLCBcImlcIiksXG4gICAgICAgIHRyYW5zaXRpb25hbDogbmV3IFJlZ0V4cChcIl4oKD86XCIgKyBpcHY2UGFydCArIFwiKXwoPzo6OikoPzpcIiArIGlwdjZQYXJ0ICsgXCIpPylcIiArIChpcHY0UGFydCArIFwiXFxcXC5cIiArIGlwdjRQYXJ0ICsgXCJcXFxcLlwiICsgaXB2NFBhcnQgKyBcIlxcXFwuXCIgKyBpcHY0UGFydCkgKyAoXCIoXCIgKyB6b25lSW5kZXggKyBcIik/JFwiKSwgXCJpXCIpXG4gICAgICB9O1xuICAgICAgZXhwYW5kSVB2NiA9IGZ1bmN0aW9uKHN0cmluZywgcGFydHMpIHtcbiAgICAgICAgdmFyIGNvbG9uQ291bnQsIGxhc3RDb2xvbiwgcGFydCwgcmVwbGFjZW1lbnQsIHJlcGxhY2VtZW50Q291bnQsIHpvbmVJZDtcbiAgICAgICAgaWYgKHN0cmluZy5pbmRleE9mKFwiOjpcIikgIT09IHN0cmluZy5sYXN0SW5kZXhPZihcIjo6XCIpKSB7XG4gICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgem9uZUlkID0gKHN0cmluZy5tYXRjaChpcHY2UmVnZXhlc1tcInpvbmVJbmRleFwiXSkgfHwgW10pWzBdO1xuICAgICAgICBpZiAoem9uZUlkKSB7XG4gICAgICAgICAgem9uZUlkID0gem9uZUlkLnN1YnN0cmluZygxKTtcbiAgICAgICAgICBzdHJpbmcgPSBzdHJpbmcucmVwbGFjZSgvJS4rJC8sIFwiXCIpO1xuICAgICAgICB9XG4gICAgICAgIGNvbG9uQ291bnQgPSAwO1xuICAgICAgICBsYXN0Q29sb24gPSAtMTtcbiAgICAgICAgd2hpbGUgKChsYXN0Q29sb24gPSBzdHJpbmcuaW5kZXhPZihcIjpcIiwgbGFzdENvbG9uICsgMSkpID49IDApIHtcbiAgICAgICAgICBjb2xvbkNvdW50Kys7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHN0cmluZy5zdWJzdHIoMCwgMikgPT09IFwiOjpcIikge1xuICAgICAgICAgIGNvbG9uQ291bnQtLTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoc3RyaW5nLnN1YnN0cigtMiwgMikgPT09IFwiOjpcIikge1xuICAgICAgICAgIGNvbG9uQ291bnQtLTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoY29sb25Db3VudCA+IHBhcnRzKSB7XG4gICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgcmVwbGFjZW1lbnRDb3VudCA9IHBhcnRzIC0gY29sb25Db3VudDtcbiAgICAgICAgcmVwbGFjZW1lbnQgPSBcIjpcIjtcbiAgICAgICAgd2hpbGUgKHJlcGxhY2VtZW50Q291bnQtLSkge1xuICAgICAgICAgIHJlcGxhY2VtZW50ICs9IFwiMDpcIjtcbiAgICAgICAgfVxuICAgICAgICBzdHJpbmcgPSBzdHJpbmcucmVwbGFjZShcIjo6XCIsIHJlcGxhY2VtZW50KTtcbiAgICAgICAgaWYgKHN0cmluZ1swXSA9PT0gXCI6XCIpIHtcbiAgICAgICAgICBzdHJpbmcgPSBzdHJpbmcuc2xpY2UoMSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHN0cmluZ1tzdHJpbmcubGVuZ3RoIC0gMV0gPT09IFwiOlwiKSB7XG4gICAgICAgICAgc3RyaW5nID0gc3RyaW5nLnNsaWNlKDAsIC0xKTtcbiAgICAgICAgfVxuICAgICAgICBwYXJ0cyA9IGZ1bmN0aW9uKCkge1xuICAgICAgICAgIHZhciBrLCBsZW4sIHJlZiwgcmVzdWx0cztcbiAgICAgICAgICByZWYgPSBzdHJpbmcuc3BsaXQoXCI6XCIpO1xuICAgICAgICAgIHJlc3VsdHMgPSBbXTtcbiAgICAgICAgICBmb3IgKGsgPSAwLCBsZW4gPSByZWYubGVuZ3RoOyBrIDwgbGVuOyBrKyspIHtcbiAgICAgICAgICAgIHBhcnQgPSByZWZba107XG4gICAgICAgICAgICByZXN1bHRzLnB1c2gocGFyc2VJbnQocGFydCwgMTYpKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHJlc3VsdHM7XG4gICAgICAgIH0oKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBwYXJ0cyxcbiAgICAgICAgICB6b25lSWRcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgICBpcGFkZHIuSVB2Ni5wYXJzZXIgPSBmdW5jdGlvbihzdHJpbmcpIHtcbiAgICAgICAgdmFyIGFkZHIsIGssIGxlbiwgbWF0Y2gsIG9jdGV0LCBvY3RldHMsIHpvbmVJZDtcbiAgICAgICAgaWYgKGlwdjZSZWdleGVzW1wibmF0aXZlXCJdLnRlc3Qoc3RyaW5nKSkge1xuICAgICAgICAgIHJldHVybiBleHBhbmRJUHY2KHN0cmluZywgOCk7XG4gICAgICAgIH0gZWxzZSBpZiAobWF0Y2ggPSBzdHJpbmcubWF0Y2goaXB2NlJlZ2V4ZXNbXCJ0cmFuc2l0aW9uYWxcIl0pKSB7XG4gICAgICAgICAgem9uZUlkID0gbWF0Y2hbNl0gfHwgXCJcIjtcbiAgICAgICAgICBhZGRyID0gZXhwYW5kSVB2NihtYXRjaFsxXS5zbGljZSgwLCAtMSkgKyB6b25lSWQsIDYpO1xuICAgICAgICAgIGlmIChhZGRyLnBhcnRzKSB7XG4gICAgICAgICAgICBvY3RldHMgPSBbcGFyc2VJbnQobWF0Y2hbMl0pLCBwYXJzZUludChtYXRjaFszXSksIHBhcnNlSW50KG1hdGNoWzRdKSwgcGFyc2VJbnQobWF0Y2hbNV0pXTtcbiAgICAgICAgICAgIGZvciAoayA9IDAsIGxlbiA9IG9jdGV0cy5sZW5ndGg7IGsgPCBsZW47IGsrKykge1xuICAgICAgICAgICAgICBvY3RldCA9IG9jdGV0c1trXTtcbiAgICAgICAgICAgICAgaWYgKCEoMCA8PSBvY3RldCAmJiBvY3RldCA8PSAyNTUpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGFkZHIucGFydHMucHVzaChvY3RldHNbMF0gPDwgOCB8IG9jdGV0c1sxXSk7XG4gICAgICAgICAgICBhZGRyLnBhcnRzLnB1c2gob2N0ZXRzWzJdIDw8IDggfCBvY3RldHNbM10pO1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgcGFydHM6IGFkZHIucGFydHMsXG4gICAgICAgICAgICAgIHpvbmVJZDogYWRkci56b25lSWRcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfTtcbiAgICAgIGlwYWRkci5JUHY0LmlzSVB2NCA9IGlwYWRkci5JUHY2LmlzSVB2NiA9IGZ1bmN0aW9uKHN0cmluZykge1xuICAgICAgICByZXR1cm4gdGhpcy5wYXJzZXIoc3RyaW5nKSAhPT0gbnVsbDtcbiAgICAgIH07XG4gICAgICBpcGFkZHIuSVB2NC5pc1ZhbGlkID0gZnVuY3Rpb24oc3RyaW5nKSB7XG4gICAgICAgIHZhciBlO1xuICAgICAgICB0cnkge1xuICAgICAgICAgIG5ldyB0aGlzKHRoaXMucGFyc2VyKHN0cmluZykpO1xuICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9IGNhdGNoIChlcnJvcjEpIHtcbiAgICAgICAgICBlID0gZXJyb3IxO1xuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICAgIGlwYWRkci5JUHY0LmlzVmFsaWRGb3VyUGFydERlY2ltYWwgPSBmdW5jdGlvbihzdHJpbmcpIHtcbiAgICAgICAgaWYgKGlwYWRkci5JUHY0LmlzVmFsaWQoc3RyaW5nKSAmJiBzdHJpbmcubWF0Y2goL14oMHxbMS05XVxcZCopKFxcLigwfFsxLTldXFxkKikpezN9JC8pKSB7XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICB9O1xuICAgICAgaXBhZGRyLklQdjYuaXNWYWxpZCA9IGZ1bmN0aW9uKHN0cmluZykge1xuICAgICAgICB2YXIgYWRkciwgZTtcbiAgICAgICAgaWYgKHR5cGVvZiBzdHJpbmcgPT09IFwic3RyaW5nXCIgJiYgc3RyaW5nLmluZGV4T2YoXCI6XCIpID09PSAtMSkge1xuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICB0cnkge1xuICAgICAgICAgIGFkZHIgPSB0aGlzLnBhcnNlcihzdHJpbmcpO1xuICAgICAgICAgIG5ldyB0aGlzKGFkZHIucGFydHMsIGFkZHIuem9uZUlkKTtcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IxKSB7XG4gICAgICAgICAgZSA9IGVycm9yMTtcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgICBpcGFkZHIuSVB2NC5wYXJzZSA9IGZ1bmN0aW9uKHN0cmluZykge1xuICAgICAgICB2YXIgcGFydHM7XG4gICAgICAgIHBhcnRzID0gdGhpcy5wYXJzZXIoc3RyaW5nKTtcbiAgICAgICAgaWYgKHBhcnRzID09PSBudWxsKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiaXBhZGRyOiBzdHJpbmcgaXMgbm90IGZvcm1hdHRlZCBsaWtlIGlwIGFkZHJlc3NcIik7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG5ldyB0aGlzKHBhcnRzKTtcbiAgICAgIH07XG4gICAgICBpcGFkZHIuSVB2Ni5wYXJzZSA9IGZ1bmN0aW9uKHN0cmluZykge1xuICAgICAgICB2YXIgYWRkcjtcbiAgICAgICAgYWRkciA9IHRoaXMucGFyc2VyKHN0cmluZyk7XG4gICAgICAgIGlmIChhZGRyLnBhcnRzID09PSBudWxsKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiaXBhZGRyOiBzdHJpbmcgaXMgbm90IGZvcm1hdHRlZCBsaWtlIGlwIGFkZHJlc3NcIik7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG5ldyB0aGlzKGFkZHIucGFydHMsIGFkZHIuem9uZUlkKTtcbiAgICAgIH07XG4gICAgICBpcGFkZHIuSVB2NC5wYXJzZUNJRFIgPSBmdW5jdGlvbihzdHJpbmcpIHtcbiAgICAgICAgdmFyIG1hc2tMZW5ndGgsIG1hdGNoLCBwYXJzZWQ7XG4gICAgICAgIGlmIChtYXRjaCA9IHN0cmluZy5tYXRjaCgvXiguKylcXC8oXFxkKykkLykpIHtcbiAgICAgICAgICBtYXNrTGVuZ3RoID0gcGFyc2VJbnQobWF0Y2hbMl0pO1xuICAgICAgICAgIGlmIChtYXNrTGVuZ3RoID49IDAgJiYgbWFza0xlbmd0aCA8PSAzMikge1xuICAgICAgICAgICAgcGFyc2VkID0gW3RoaXMucGFyc2UobWF0Y2hbMV0pLCBtYXNrTGVuZ3RoXTtcbiAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShwYXJzZWQsIFwidG9TdHJpbmdcIiwge1xuICAgICAgICAgICAgICB2YWx1ZTogZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuam9pbihcIi9cIik7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcmV0dXJuIHBhcnNlZDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiaXBhZGRyOiBzdHJpbmcgaXMgbm90IGZvcm1hdHRlZCBsaWtlIGFuIElQdjQgQ0lEUiByYW5nZVwiKTtcbiAgICAgIH07XG4gICAgICBpcGFkZHIuSVB2NC5zdWJuZXRNYXNrRnJvbVByZWZpeExlbmd0aCA9IGZ1bmN0aW9uKHByZWZpeCkge1xuICAgICAgICB2YXIgZmlsbGVkT2N0ZXRDb3VudCwgaiwgb2N0ZXRzO1xuICAgICAgICBwcmVmaXggPSBwYXJzZUludChwcmVmaXgpO1xuICAgICAgICBpZiAocHJlZml4IDwgMCB8fCBwcmVmaXggPiAzMikge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcImlwYWRkcjogaW52YWxpZCBJUHY0IHByZWZpeCBsZW5ndGhcIik7XG4gICAgICAgIH1cbiAgICAgICAgb2N0ZXRzID0gWzAsIDAsIDAsIDBdO1xuICAgICAgICBqID0gMDtcbiAgICAgICAgZmlsbGVkT2N0ZXRDb3VudCA9IE1hdGguZmxvb3IocHJlZml4IC8gOCk7XG4gICAgICAgIHdoaWxlIChqIDwgZmlsbGVkT2N0ZXRDb3VudCkge1xuICAgICAgICAgIG9jdGV0c1tqXSA9IDI1NTtcbiAgICAgICAgICBqKys7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGZpbGxlZE9jdGV0Q291bnQgPCA0KSB7XG4gICAgICAgICAgb2N0ZXRzW2ZpbGxlZE9jdGV0Q291bnRdID0gTWF0aC5wb3coMiwgcHJlZml4ICUgOCkgLSAxIDw8IDggLSBwcmVmaXggJSA4O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBuZXcgdGhpcyhvY3RldHMpO1xuICAgICAgfTtcbiAgICAgIGlwYWRkci5JUHY0LmJyb2FkY2FzdEFkZHJlc3NGcm9tQ0lEUiA9IGZ1bmN0aW9uKHN0cmluZykge1xuICAgICAgICB2YXIgY2lkciwgZXJyb3IsIGksIGlwSW50ZXJmYWNlT2N0ZXRzLCBvY3RldHMsIHN1Ym5ldE1hc2tPY3RldHM7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgY2lkciA9IHRoaXMucGFyc2VDSURSKHN0cmluZyk7XG4gICAgICAgICAgaXBJbnRlcmZhY2VPY3RldHMgPSBjaWRyWzBdLnRvQnl0ZUFycmF5KCk7XG4gICAgICAgICAgc3VibmV0TWFza09jdGV0cyA9IHRoaXMuc3VibmV0TWFza0Zyb21QcmVmaXhMZW5ndGgoY2lkclsxXSkudG9CeXRlQXJyYXkoKTtcbiAgICAgICAgICBvY3RldHMgPSBbXTtcbiAgICAgICAgICBpID0gMDtcbiAgICAgICAgICB3aGlsZSAoaSA8IDQpIHtcbiAgICAgICAgICAgIG9jdGV0cy5wdXNoKHBhcnNlSW50KGlwSW50ZXJmYWNlT2N0ZXRzW2ldLCAxMCkgfCBwYXJzZUludChzdWJuZXRNYXNrT2N0ZXRzW2ldLCAxMCkgXiAyNTUpO1xuICAgICAgICAgICAgaSsrO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gbmV3IHRoaXMob2N0ZXRzKTtcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IxKSB7XG4gICAgICAgICAgZXJyb3IgPSBlcnJvcjE7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiaXBhZGRyOiB0aGUgYWRkcmVzcyBkb2VzIG5vdCBoYXZlIElQdjQgQ0lEUiBmb3JtYXRcIik7XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgICBpcGFkZHIuSVB2NC5uZXR3b3JrQWRkcmVzc0Zyb21DSURSID0gZnVuY3Rpb24oc3RyaW5nKSB7XG4gICAgICAgIHZhciBjaWRyLCBlcnJvciwgaSwgaXBJbnRlcmZhY2VPY3RldHMsIG9jdGV0cywgc3VibmV0TWFza09jdGV0cztcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBjaWRyID0gdGhpcy5wYXJzZUNJRFIoc3RyaW5nKTtcbiAgICAgICAgICBpcEludGVyZmFjZU9jdGV0cyA9IGNpZHJbMF0udG9CeXRlQXJyYXkoKTtcbiAgICAgICAgICBzdWJuZXRNYXNrT2N0ZXRzID0gdGhpcy5zdWJuZXRNYXNrRnJvbVByZWZpeExlbmd0aChjaWRyWzFdKS50b0J5dGVBcnJheSgpO1xuICAgICAgICAgIG9jdGV0cyA9IFtdO1xuICAgICAgICAgIGkgPSAwO1xuICAgICAgICAgIHdoaWxlIChpIDwgNCkge1xuICAgICAgICAgICAgb2N0ZXRzLnB1c2gocGFyc2VJbnQoaXBJbnRlcmZhY2VPY3RldHNbaV0sIDEwKSAmIHBhcnNlSW50KHN1Ym5ldE1hc2tPY3RldHNbaV0sIDEwKSk7XG4gICAgICAgICAgICBpKys7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBuZXcgdGhpcyhvY3RldHMpO1xuICAgICAgICB9IGNhdGNoIChlcnJvcjEpIHtcbiAgICAgICAgICBlcnJvciA9IGVycm9yMTtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJpcGFkZHI6IHRoZSBhZGRyZXNzIGRvZXMgbm90IGhhdmUgSVB2NCBDSURSIGZvcm1hdFwiKTtcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICAgIGlwYWRkci5JUHY2LnBhcnNlQ0lEUiA9IGZ1bmN0aW9uKHN0cmluZykge1xuICAgICAgICB2YXIgbWFza0xlbmd0aCwgbWF0Y2gsIHBhcnNlZDtcbiAgICAgICAgaWYgKG1hdGNoID0gc3RyaW5nLm1hdGNoKC9eKC4rKVxcLyhcXGQrKSQvKSkge1xuICAgICAgICAgIG1hc2tMZW5ndGggPSBwYXJzZUludChtYXRjaFsyXSk7XG4gICAgICAgICAgaWYgKG1hc2tMZW5ndGggPj0gMCAmJiBtYXNrTGVuZ3RoIDw9IDEyOCkge1xuICAgICAgICAgICAgcGFyc2VkID0gW3RoaXMucGFyc2UobWF0Y2hbMV0pLCBtYXNrTGVuZ3RoXTtcbiAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShwYXJzZWQsIFwidG9TdHJpbmdcIiwge1xuICAgICAgICAgICAgICB2YWx1ZTogZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuam9pbihcIi9cIik7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcmV0dXJuIHBhcnNlZDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiaXBhZGRyOiBzdHJpbmcgaXMgbm90IGZvcm1hdHRlZCBsaWtlIGFuIElQdjYgQ0lEUiByYW5nZVwiKTtcbiAgICAgIH07XG4gICAgICBpcGFkZHIuaXNWYWxpZCA9IGZ1bmN0aW9uKHN0cmluZykge1xuICAgICAgICByZXR1cm4gaXBhZGRyLklQdjYuaXNWYWxpZChzdHJpbmcpIHx8IGlwYWRkci5JUHY0LmlzVmFsaWQoc3RyaW5nKTtcbiAgICAgIH07XG4gICAgICBpcGFkZHIucGFyc2UgPSBmdW5jdGlvbihzdHJpbmcpIHtcbiAgICAgICAgaWYgKGlwYWRkci5JUHY2LmlzVmFsaWQoc3RyaW5nKSkge1xuICAgICAgICAgIHJldHVybiBpcGFkZHIuSVB2Ni5wYXJzZShzdHJpbmcpO1xuICAgICAgICB9IGVsc2UgaWYgKGlwYWRkci5JUHY0LmlzVmFsaWQoc3RyaW5nKSkge1xuICAgICAgICAgIHJldHVybiBpcGFkZHIuSVB2NC5wYXJzZShzdHJpbmcpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcImlwYWRkcjogdGhlIGFkZHJlc3MgaGFzIG5laXRoZXIgSVB2NiBub3IgSVB2NCBmb3JtYXRcIik7XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgICBpcGFkZHIucGFyc2VDSURSID0gZnVuY3Rpb24oc3RyaW5nKSB7XG4gICAgICAgIHZhciBlO1xuICAgICAgICB0cnkge1xuICAgICAgICAgIHJldHVybiBpcGFkZHIuSVB2Ni5wYXJzZUNJRFIoc3RyaW5nKTtcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IxKSB7XG4gICAgICAgICAgZSA9IGVycm9yMTtcbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgcmV0dXJuIGlwYWRkci5JUHY0LnBhcnNlQ0lEUihzdHJpbmcpO1xuICAgICAgICAgIH0gY2F0Y2ggKGVycm9yMTIpIHtcbiAgICAgICAgICAgIGUgPSBlcnJvcjEyO1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiaXBhZGRyOiB0aGUgYWRkcmVzcyBoYXMgbmVpdGhlciBJUHY2IG5vciBJUHY0IENJRFIgZm9ybWF0XCIpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfTtcbiAgICAgIGlwYWRkci5mcm9tQnl0ZUFycmF5ID0gZnVuY3Rpb24oYnl0ZXMpIHtcbiAgICAgICAgdmFyIGxlbmd0aDtcbiAgICAgICAgbGVuZ3RoID0gYnl0ZXMubGVuZ3RoO1xuICAgICAgICBpZiAobGVuZ3RoID09PSA0KSB7XG4gICAgICAgICAgcmV0dXJuIG5ldyBpcGFkZHIuSVB2NChieXRlcyk7XG4gICAgICAgIH0gZWxzZSBpZiAobGVuZ3RoID09PSAxNikge1xuICAgICAgICAgIHJldHVybiBuZXcgaXBhZGRyLklQdjYoYnl0ZXMpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcImlwYWRkcjogdGhlIGJpbmFyeSBpbnB1dCBpcyBuZWl0aGVyIGFuIElQdjYgbm9yIElQdjQgYWRkcmVzc1wiKTtcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICAgIGlwYWRkci5wcm9jZXNzID0gZnVuY3Rpb24oc3RyaW5nKSB7XG4gICAgICAgIHZhciBhZGRyO1xuICAgICAgICBhZGRyID0gdGhpcy5wYXJzZShzdHJpbmcpO1xuICAgICAgICBpZiAoYWRkci5raW5kKCkgPT09IFwiaXB2NlwiICYmIGFkZHIuaXNJUHY0TWFwcGVkQWRkcmVzcygpKSB7XG4gICAgICAgICAgcmV0dXJuIGFkZHIudG9JUHY0QWRkcmVzcygpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiBhZGRyO1xuICAgICAgICB9XG4gICAgICB9O1xuICAgIH0pLmNhbGwoZXhwb3J0czIpO1xuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL3Byb3h5LWFkZHIvaW5kZXguanNcbnZhciByZXF1aXJlX3Byb3h5X2FkZHIgPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvcHJveHktYWRkci9pbmRleC5qc1wiKGV4cG9ydHMyLCBtb2R1bGUyKSB7XG4gICAgXCJ1c2Ugc3RyaWN0XCI7XG4gICAgbW9kdWxlMi5leHBvcnRzID0gcHJveHlhZGRyO1xuICAgIG1vZHVsZTIuZXhwb3J0cy5hbGwgPSBhbGxhZGRycztcbiAgICBtb2R1bGUyLmV4cG9ydHMuY29tcGlsZSA9IGNvbXBpbGU7XG4gICAgdmFyIGZvcndhcmRlZCA9IHJlcXVpcmVfZm9yd2FyZGVkKCk7XG4gICAgdmFyIGlwYWRkciA9IHJlcXVpcmVfaXBhZGRyKCk7XG4gICAgdmFyIERJR0lUX1JFR0VYUCA9IC9eWzAtOV0rJC87XG4gICAgdmFyIGlzaXAgPSBpcGFkZHIuaXNWYWxpZDtcbiAgICB2YXIgcGFyc2VpcCA9IGlwYWRkci5wYXJzZTtcbiAgICB2YXIgSVBfUkFOR0VTID0ge1xuICAgICAgbGlua2xvY2FsOiBbXCIxNjkuMjU0LjAuMC8xNlwiLCBcImZlODA6Oi8xMFwiXSxcbiAgICAgIGxvb3BiYWNrOiBbXCIxMjcuMC4wLjEvOFwiLCBcIjo6MS8xMjhcIl0sXG4gICAgICB1bmlxdWVsb2NhbDogW1wiMTAuMC4wLjAvOFwiLCBcIjE3Mi4xNi4wLjAvMTJcIiwgXCIxOTIuMTY4LjAuMC8xNlwiLCBcImZjMDA6Oi83XCJdXG4gICAgfTtcbiAgICBmdW5jdGlvbiBhbGxhZGRycyhyZXEsIHRydXN0KSB7XG4gICAgICB2YXIgYWRkcnMgPSBmb3J3YXJkZWQocmVxKTtcbiAgICAgIGlmICghdHJ1c3QpIHtcbiAgICAgICAgcmV0dXJuIGFkZHJzO1xuICAgICAgfVxuICAgICAgaWYgKHR5cGVvZiB0cnVzdCAhPT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgIHRydXN0ID0gY29tcGlsZSh0cnVzdCk7XG4gICAgICB9XG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGFkZHJzLmxlbmd0aCAtIDE7IGkrKykge1xuICAgICAgICBpZiAodHJ1c3QoYWRkcnNbaV0sIGkpKSBjb250aW51ZTtcbiAgICAgICAgYWRkcnMubGVuZ3RoID0gaSArIDE7XG4gICAgICB9XG4gICAgICByZXR1cm4gYWRkcnM7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGNvbXBpbGUodmFsKSB7XG4gICAgICBpZiAoIXZhbCkge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiYXJndW1lbnQgaXMgcmVxdWlyZWRcIik7XG4gICAgICB9XG4gICAgICB2YXIgdHJ1c3Q7XG4gICAgICBpZiAodHlwZW9mIHZhbCA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICB0cnVzdCA9IFt2YWxdO1xuICAgICAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KHZhbCkpIHtcbiAgICAgICAgdHJ1c3QgPSB2YWwuc2xpY2UoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJ1bnN1cHBvcnRlZCB0cnVzdCBhcmd1bWVudFwiKTtcbiAgICAgIH1cbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdHJ1c3QubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgdmFsID0gdHJ1c3RbaV07XG4gICAgICAgIGlmICghT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKElQX1JBTkdFUywgdmFsKSkge1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIHZhbCA9IElQX1JBTkdFU1t2YWxdO1xuICAgICAgICB0cnVzdC5zcGxpY2UuYXBwbHkodHJ1c3QsIFtpLCAxXS5jb25jYXQodmFsKSk7XG4gICAgICAgIGkgKz0gdmFsLmxlbmd0aCAtIDE7XG4gICAgICB9XG4gICAgICByZXR1cm4gY29tcGlsZVRydXN0KGNvbXBpbGVSYW5nZVN1Ym5ldHModHJ1c3QpKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gY29tcGlsZVJhbmdlU3VibmV0cyhhcnIpIHtcbiAgICAgIHZhciByYW5nZVN1Ym5ldHMgPSBuZXcgQXJyYXkoYXJyLmxlbmd0aCk7XG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGFyci5sZW5ndGg7IGkrKykge1xuICAgICAgICByYW5nZVN1Ym5ldHNbaV0gPSBwYXJzZWlwTm90YXRpb24oYXJyW2ldKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiByYW5nZVN1Ym5ldHM7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGNvbXBpbGVUcnVzdChyYW5nZVN1Ym5ldHMpIHtcbiAgICAgIHZhciBsZW4gPSByYW5nZVN1Ym5ldHMubGVuZ3RoO1xuICAgICAgcmV0dXJuIGxlbiA9PT0gMCA/IHRydXN0Tm9uZSA6IGxlbiA9PT0gMSA/IHRydXN0U2luZ2xlKHJhbmdlU3VibmV0c1swXSkgOiB0cnVzdE11bHRpKHJhbmdlU3VibmV0cyk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHBhcnNlaXBOb3RhdGlvbihub3RlKSB7XG4gICAgICB2YXIgcG9zID0gbm90ZS5sYXN0SW5kZXhPZihcIi9cIik7XG4gICAgICB2YXIgc3RyID0gcG9zICE9PSAtMSA/IG5vdGUuc3Vic3RyaW5nKDAsIHBvcykgOiBub3RlO1xuICAgICAgaWYgKCFpc2lwKHN0cikpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcImludmFsaWQgSVAgYWRkcmVzczogXCIgKyBzdHIpO1xuICAgICAgfVxuICAgICAgdmFyIGlwID0gcGFyc2VpcChzdHIpO1xuICAgICAgaWYgKHBvcyA9PT0gLTEgJiYgaXAua2luZCgpID09PSBcImlwdjZcIiAmJiBpcC5pc0lQdjRNYXBwZWRBZGRyZXNzKCkpIHtcbiAgICAgICAgaXAgPSBpcC50b0lQdjRBZGRyZXNzKCk7XG4gICAgICB9XG4gICAgICB2YXIgbWF4ID0gaXAua2luZCgpID09PSBcImlwdjZcIiA/IDEyOCA6IDMyO1xuICAgICAgdmFyIHJhbmdlID0gcG9zICE9PSAtMSA/IG5vdGUuc3Vic3RyaW5nKHBvcyArIDEsIG5vdGUubGVuZ3RoKSA6IG51bGw7XG4gICAgICBpZiAocmFuZ2UgPT09IG51bGwpIHtcbiAgICAgICAgcmFuZ2UgPSBtYXg7XG4gICAgICB9IGVsc2UgaWYgKERJR0lUX1JFR0VYUC50ZXN0KHJhbmdlKSkge1xuICAgICAgICByYW5nZSA9IHBhcnNlSW50KHJhbmdlLCAxMCk7XG4gICAgICB9IGVsc2UgaWYgKGlwLmtpbmQoKSA9PT0gXCJpcHY0XCIgJiYgaXNpcChyYW5nZSkpIHtcbiAgICAgICAgcmFuZ2UgPSBwYXJzZU5ldG1hc2socmFuZ2UpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmFuZ2UgPSBudWxsO1xuICAgICAgfVxuICAgICAgaWYgKHJhbmdlIDw9IDAgfHwgcmFuZ2UgPiBtYXgpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcImludmFsaWQgcmFuZ2Ugb24gYWRkcmVzczogXCIgKyBub3RlKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBbaXAsIHJhbmdlXTtcbiAgICB9XG4gICAgZnVuY3Rpb24gcGFyc2VOZXRtYXNrKG5ldG1hc2spIHtcbiAgICAgIHZhciBpcCA9IHBhcnNlaXAobmV0bWFzayk7XG4gICAgICB2YXIga2luZCA9IGlwLmtpbmQoKTtcbiAgICAgIHJldHVybiBraW5kID09PSBcImlwdjRcIiA/IGlwLnByZWZpeExlbmd0aEZyb21TdWJuZXRNYXNrKCkgOiBudWxsO1xuICAgIH1cbiAgICBmdW5jdGlvbiBwcm94eWFkZHIocmVxLCB0cnVzdCkge1xuICAgICAgaWYgKCFyZXEpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcInJlcSBhcmd1bWVudCBpcyByZXF1aXJlZFwiKTtcbiAgICAgIH1cbiAgICAgIGlmICghdHJ1c3QpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcInRydXN0IGFyZ3VtZW50IGlzIHJlcXVpcmVkXCIpO1xuICAgICAgfVxuICAgICAgdmFyIGFkZHJzID0gYWxsYWRkcnMocmVxLCB0cnVzdCk7XG4gICAgICB2YXIgYWRkciA9IGFkZHJzW2FkZHJzLmxlbmd0aCAtIDFdO1xuICAgICAgcmV0dXJuIGFkZHI7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHRydXN0Tm9uZSgpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgZnVuY3Rpb24gdHJ1c3RNdWx0aShzdWJuZXRzKSB7XG4gICAgICByZXR1cm4gZnVuY3Rpb24gdHJ1c3QoYWRkcikge1xuICAgICAgICBpZiAoIWlzaXAoYWRkcikpIHJldHVybiBmYWxzZTtcbiAgICAgICAgdmFyIGlwID0gcGFyc2VpcChhZGRyKTtcbiAgICAgICAgdmFyIGlwY29udjtcbiAgICAgICAgdmFyIGtpbmQgPSBpcC5raW5kKCk7XG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc3VibmV0cy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgIHZhciBzdWJuZXQgPSBzdWJuZXRzW2ldO1xuICAgICAgICAgIHZhciBzdWJuZXRpcCA9IHN1Ym5ldFswXTtcbiAgICAgICAgICB2YXIgc3VibmV0a2luZCA9IHN1Ym5ldGlwLmtpbmQoKTtcbiAgICAgICAgICB2YXIgc3VibmV0cmFuZ2UgPSBzdWJuZXRbMV07XG4gICAgICAgICAgdmFyIHRydXN0ZWQgPSBpcDtcbiAgICAgICAgICBpZiAoa2luZCAhPT0gc3VibmV0a2luZCkge1xuICAgICAgICAgICAgaWYgKHN1Ym5ldGtpbmQgPT09IFwiaXB2NFwiICYmICFpcC5pc0lQdjRNYXBwZWRBZGRyZXNzKCkpIHtcbiAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIWlwY29udikge1xuICAgICAgICAgICAgICBpcGNvbnYgPSBzdWJuZXRraW5kID09PSBcImlwdjRcIiA/IGlwLnRvSVB2NEFkZHJlc3MoKSA6IGlwLnRvSVB2NE1hcHBlZEFkZHJlc3MoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRydXN0ZWQgPSBpcGNvbnY7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmICh0cnVzdGVkLm1hdGNoKHN1Ym5ldGlwLCBzdWJuZXRyYW5nZSkpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9O1xuICAgIH1cbiAgICBmdW5jdGlvbiB0cnVzdFNpbmdsZShzdWJuZXQpIHtcbiAgICAgIHZhciBzdWJuZXRpcCA9IHN1Ym5ldFswXTtcbiAgICAgIHZhciBzdWJuZXRraW5kID0gc3VibmV0aXAua2luZCgpO1xuICAgICAgdmFyIHN1Ym5ldGlzaXB2NCA9IHN1Ym5ldGtpbmQgPT09IFwiaXB2NFwiO1xuICAgICAgdmFyIHN1Ym5ldHJhbmdlID0gc3VibmV0WzFdO1xuICAgICAgcmV0dXJuIGZ1bmN0aW9uIHRydXN0KGFkZHIpIHtcbiAgICAgICAgaWYgKCFpc2lwKGFkZHIpKSByZXR1cm4gZmFsc2U7XG4gICAgICAgIHZhciBpcCA9IHBhcnNlaXAoYWRkcik7XG4gICAgICAgIHZhciBraW5kID0gaXAua2luZCgpO1xuICAgICAgICBpZiAoa2luZCAhPT0gc3VibmV0a2luZCkge1xuICAgICAgICAgIGlmIChzdWJuZXRpc2lwdjQgJiYgIWlwLmlzSVB2NE1hcHBlZEFkZHJlc3MoKSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpcCA9IHN1Ym5ldGlzaXB2NCA/IGlwLnRvSVB2NEFkZHJlc3MoKSA6IGlwLnRvSVB2NE1hcHBlZEFkZHJlc3MoKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gaXAubWF0Y2goc3VibmV0aXAsIHN1Ym5ldHJhbmdlKTtcbiAgICAgIH07XG4gICAgfVxuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL2V4cHJlc3MvbGliL3V0aWxzLmpzXG52YXIgcmVxdWlyZV91dGlsczMgPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvZXhwcmVzcy9saWIvdXRpbHMuanNcIihleHBvcnRzMikge1xuICAgIFwidXNlIHN0cmljdFwiO1xuICAgIHZhciB7IE1FVEhPRFMgfSA9IHJlcXVpcmUoXCJub2RlOmh0dHBcIik7XG4gICAgdmFyIGNvbnRlbnRUeXBlMiA9IHJlcXVpcmVfY29udGVudF90eXBlKCk7XG4gICAgdmFyIGV0YWcgPSByZXF1aXJlX2V0YWcoKTtcbiAgICB2YXIgbWltZSA9IHJlcXVpcmVfbWltZV90eXBlczIoKTtcbiAgICB2YXIgcHJveHlhZGRyID0gcmVxdWlyZV9wcm94eV9hZGRyKCk7XG4gICAgdmFyIHFzID0gcmVxdWlyZV9saWIzKCk7XG4gICAgdmFyIHF1ZXJ5c3RyaW5nID0gcmVxdWlyZShcInF1ZXJ5c3RyaW5nXCIpO1xuICAgIGV4cG9ydHMyLm1ldGhvZHMgPSBNRVRIT0RTLm1hcCgobWV0aG9kKSA9PiBtZXRob2QudG9Mb3dlckNhc2UoKSk7XG4gICAgZXhwb3J0czIuZXRhZyA9IGNyZWF0ZUVUYWdHZW5lcmF0b3IoeyB3ZWFrOiBmYWxzZSB9KTtcbiAgICBleHBvcnRzMi53ZXRhZyA9IGNyZWF0ZUVUYWdHZW5lcmF0b3IoeyB3ZWFrOiB0cnVlIH0pO1xuICAgIGV4cG9ydHMyLm5vcm1hbGl6ZVR5cGUgPSBmdW5jdGlvbih0eXBlKSB7XG4gICAgICByZXR1cm4gfnR5cGUuaW5kZXhPZihcIi9cIikgPyBhY2NlcHRQYXJhbXModHlwZSkgOiB7IHZhbHVlOiBtaW1lLmxvb2t1cCh0eXBlKSB8fCBcImFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbVwiLCBwYXJhbXM6IHt9IH07XG4gICAgfTtcbiAgICBleHBvcnRzMi5ub3JtYWxpemVUeXBlcyA9IGZ1bmN0aW9uKHR5cGVzKSB7XG4gICAgICByZXR1cm4gdHlwZXMubWFwKGV4cG9ydHMyLm5vcm1hbGl6ZVR5cGUpO1xuICAgIH07XG4gICAgZnVuY3Rpb24gYWNjZXB0UGFyYW1zKHN0cikge1xuICAgICAgdmFyIGxlbmd0aCA9IHN0ci5sZW5ndGg7XG4gICAgICB2YXIgY29sb25JbmRleCA9IHN0ci5pbmRleE9mKFwiO1wiKTtcbiAgICAgIHZhciBpbmRleCA9IGNvbG9uSW5kZXggPT09IC0xID8gbGVuZ3RoIDogY29sb25JbmRleDtcbiAgICAgIHZhciByZXQgPSB7IHZhbHVlOiBzdHIuc2xpY2UoMCwgaW5kZXgpLnRyaW0oKSwgcXVhbGl0eTogMSwgcGFyYW1zOiB7fSB9O1xuICAgICAgd2hpbGUgKGluZGV4IDwgbGVuZ3RoKSB7XG4gICAgICAgIHZhciBzcGxpdEluZGV4ID0gc3RyLmluZGV4T2YoXCI9XCIsIGluZGV4KTtcbiAgICAgICAgaWYgKHNwbGl0SW5kZXggPT09IC0xKSBicmVhaztcbiAgICAgICAgdmFyIGNvbG9uSW5kZXggPSBzdHIuaW5kZXhPZihcIjtcIiwgaW5kZXgpO1xuICAgICAgICB2YXIgZW5kSW5kZXggPSBjb2xvbkluZGV4ID09PSAtMSA/IGxlbmd0aCA6IGNvbG9uSW5kZXg7XG4gICAgICAgIGlmIChzcGxpdEluZGV4ID4gZW5kSW5kZXgpIHtcbiAgICAgICAgICBpbmRleCA9IHN0ci5sYXN0SW5kZXhPZihcIjtcIiwgc3BsaXRJbmRleCAtIDEpICsgMTtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICB2YXIga2V5ID0gc3RyLnNsaWNlKGluZGV4LCBzcGxpdEluZGV4KS50cmltKCk7XG4gICAgICAgIHZhciB2YWx1ZSA9IHN0ci5zbGljZShzcGxpdEluZGV4ICsgMSwgZW5kSW5kZXgpLnRyaW0oKTtcbiAgICAgICAgaWYgKGtleSA9PT0gXCJxXCIpIHtcbiAgICAgICAgICByZXQucXVhbGl0eSA9IHBhcnNlRmxvYXQodmFsdWUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldC5wYXJhbXNba2V5XSA9IHZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIGluZGV4ID0gZW5kSW5kZXggKyAxO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHJldDtcbiAgICB9XG4gICAgZXhwb3J0czIuY29tcGlsZUVUYWcgPSBmdW5jdGlvbih2YWwpIHtcbiAgICAgIHZhciBmbjtcbiAgICAgIGlmICh0eXBlb2YgdmFsID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgcmV0dXJuIHZhbDtcbiAgICAgIH1cbiAgICAgIHN3aXRjaCAodmFsKSB7XG4gICAgICAgIGNhc2UgdHJ1ZTpcbiAgICAgICAgY2FzZSBcIndlYWtcIjpcbiAgICAgICAgICBmbiA9IGV4cG9ydHMyLndldGFnO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIGZhbHNlOlxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFwic3Ryb25nXCI6XG4gICAgICAgICAgZm4gPSBleHBvcnRzMi5ldGFnO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJ1bmtub3duIHZhbHVlIGZvciBldGFnIGZ1bmN0aW9uOiBcIiArIHZhbCk7XG4gICAgICB9XG4gICAgICByZXR1cm4gZm47XG4gICAgfTtcbiAgICBleHBvcnRzMi5jb21waWxlUXVlcnlQYXJzZXIgPSBmdW5jdGlvbiBjb21waWxlUXVlcnlQYXJzZXIodmFsKSB7XG4gICAgICB2YXIgZm47XG4gICAgICBpZiAodHlwZW9mIHZhbCA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgIHJldHVybiB2YWw7XG4gICAgICB9XG4gICAgICBzd2l0Y2ggKHZhbCkge1xuICAgICAgICBjYXNlIHRydWU6XG4gICAgICAgIGNhc2UgXCJzaW1wbGVcIjpcbiAgICAgICAgICBmbiA9IHF1ZXJ5c3RyaW5nLnBhcnNlO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIGZhbHNlOlxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFwiZXh0ZW5kZWRcIjpcbiAgICAgICAgICBmbiA9IHBhcnNlRXh0ZW5kZWRRdWVyeVN0cmluZztcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwidW5rbm93biB2YWx1ZSBmb3IgcXVlcnkgcGFyc2VyIGZ1bmN0aW9uOiBcIiArIHZhbCk7XG4gICAgICB9XG4gICAgICByZXR1cm4gZm47XG4gICAgfTtcbiAgICBleHBvcnRzMi5jb21waWxlVHJ1c3QgPSBmdW5jdGlvbih2YWwpIHtcbiAgICAgIGlmICh0eXBlb2YgdmFsID09PSBcImZ1bmN0aW9uXCIpIHJldHVybiB2YWw7XG4gICAgICBpZiAodmFsID09PSB0cnVlKSB7XG4gICAgICAgIHJldHVybiBmdW5jdGlvbigpIHtcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICAgIGlmICh0eXBlb2YgdmFsID09PSBcIm51bWJlclwiKSB7XG4gICAgICAgIHJldHVybiBmdW5jdGlvbihhLCBpKSB7XG4gICAgICAgICAgcmV0dXJuIGkgPCB2YWw7XG4gICAgICAgIH07XG4gICAgICB9XG4gICAgICBpZiAodHlwZW9mIHZhbCA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICB2YWwgPSB2YWwuc3BsaXQoXCIsXCIpLm1hcChmdW5jdGlvbih2KSB7XG4gICAgICAgICAgcmV0dXJuIHYudHJpbSgpO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBwcm94eWFkZHIuY29tcGlsZSh2YWwgfHwgW10pO1xuICAgIH07XG4gICAgZXhwb3J0czIuc2V0Q2hhcnNldCA9IGZ1bmN0aW9uIHNldENoYXJzZXQodHlwZSwgY2hhcnNldCkge1xuICAgICAgaWYgKCF0eXBlIHx8ICFjaGFyc2V0KSB7XG4gICAgICAgIHJldHVybiB0eXBlO1xuICAgICAgfVxuICAgICAgdmFyIHBhcnNlZCA9IGNvbnRlbnRUeXBlMi5wYXJzZSh0eXBlKTtcbiAgICAgIHBhcnNlZC5wYXJhbWV0ZXJzLmNoYXJzZXQgPSBjaGFyc2V0O1xuICAgICAgcmV0dXJuIGNvbnRlbnRUeXBlMi5mb3JtYXQocGFyc2VkKTtcbiAgICB9O1xuICAgIGZ1bmN0aW9uIGNyZWF0ZUVUYWdHZW5lcmF0b3Iob3B0aW9ucykge1xuICAgICAgcmV0dXJuIGZ1bmN0aW9uIGdlbmVyYXRlRVRhZyhib2R5LCBlbmNvZGluZykge1xuICAgICAgICB2YXIgYnVmID0gIUJ1ZmZlci5pc0J1ZmZlcihib2R5KSA/IEJ1ZmZlci5mcm9tKGJvZHksIGVuY29kaW5nKSA6IGJvZHk7XG4gICAgICAgIHJldHVybiBldGFnKGJ1Ziwgb3B0aW9ucyk7XG4gICAgICB9O1xuICAgIH1cbiAgICBmdW5jdGlvbiBwYXJzZUV4dGVuZGVkUXVlcnlTdHJpbmcoc3RyKSB7XG4gICAgICByZXR1cm4gcXMucGFyc2Uoc3RyLCB7XG4gICAgICAgIGFsbG93UHJvdG90eXBlczogdHJ1ZVxuICAgICAgfSk7XG4gICAgfVxuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL3dyYXBweS93cmFwcHkuanNcbnZhciByZXF1aXJlX3dyYXBweSA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy93cmFwcHkvd3JhcHB5LmpzXCIoZXhwb3J0czIsIG1vZHVsZTIpIHtcbiAgICBtb2R1bGUyLmV4cG9ydHMgPSB3cmFwcHk7XG4gICAgZnVuY3Rpb24gd3JhcHB5KGZuLCBjYikge1xuICAgICAgaWYgKGZuICYmIGNiKSByZXR1cm4gd3JhcHB5KGZuKShjYik7XG4gICAgICBpZiAodHlwZW9mIGZuICE9PSBcImZ1bmN0aW9uXCIpXG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJuZWVkIHdyYXBwZXIgZnVuY3Rpb25cIik7XG4gICAgICBPYmplY3Qua2V5cyhmbikuZm9yRWFjaChmdW5jdGlvbihrKSB7XG4gICAgICAgIHdyYXBwZXJba10gPSBmbltrXTtcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIHdyYXBwZXI7XG4gICAgICBmdW5jdGlvbiB3cmFwcGVyKCkge1xuICAgICAgICB2YXIgYXJncyA9IG5ldyBBcnJheShhcmd1bWVudHMubGVuZ3RoKTtcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhcmdzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgYXJnc1tpXSA9IGFyZ3VtZW50c1tpXTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgcmV0ID0gZm4uYXBwbHkodGhpcywgYXJncyk7XG4gICAgICAgIHZhciBjYjIgPSBhcmdzW2FyZ3MubGVuZ3RoIC0gMV07XG4gICAgICAgIGlmICh0eXBlb2YgcmV0ID09PSBcImZ1bmN0aW9uXCIgJiYgcmV0ICE9PSBjYjIpIHtcbiAgICAgICAgICBPYmplY3Qua2V5cyhjYjIpLmZvckVhY2goZnVuY3Rpb24oaykge1xuICAgICAgICAgICAgcmV0W2tdID0gY2IyW2tdO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXQ7XG4gICAgICB9XG4gICAgfVxuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL29uY2Uvb25jZS5qc1xudmFyIHJlcXVpcmVfb25jZSA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9vbmNlL29uY2UuanNcIihleHBvcnRzMiwgbW9kdWxlMikge1xuICAgIHZhciB3cmFwcHkgPSByZXF1aXJlX3dyYXBweSgpO1xuICAgIG1vZHVsZTIuZXhwb3J0cyA9IHdyYXBweShvbmNlKTtcbiAgICBtb2R1bGUyLmV4cG9ydHMuc3RyaWN0ID0gd3JhcHB5KG9uY2VTdHJpY3QpO1xuICAgIG9uY2UucHJvdG8gPSBvbmNlKGZ1bmN0aW9uKCkge1xuICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KEZ1bmN0aW9uLnByb3RvdHlwZSwgXCJvbmNlXCIsIHtcbiAgICAgICAgdmFsdWU6IGZ1bmN0aW9uKCkge1xuICAgICAgICAgIHJldHVybiBvbmNlKHRoaXMpO1xuICAgICAgICB9LFxuICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICAgIH0pO1xuICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KEZ1bmN0aW9uLnByb3RvdHlwZSwgXCJvbmNlU3RyaWN0XCIsIHtcbiAgICAgICAgdmFsdWU6IGZ1bmN0aW9uKCkge1xuICAgICAgICAgIHJldHVybiBvbmNlU3RyaWN0KHRoaXMpO1xuICAgICAgICB9LFxuICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICAgIH0pO1xuICAgIH0pO1xuICAgIGZ1bmN0aW9uIG9uY2UoZm4pIHtcbiAgICAgIHZhciBmID0gZnVuY3Rpb24oKSB7XG4gICAgICAgIGlmIChmLmNhbGxlZCkgcmV0dXJuIGYudmFsdWU7XG4gICAgICAgIGYuY2FsbGVkID0gdHJ1ZTtcbiAgICAgICAgcmV0dXJuIGYudmFsdWUgPSBmbi5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICAgICAgfTtcbiAgICAgIGYuY2FsbGVkID0gZmFsc2U7XG4gICAgICByZXR1cm4gZjtcbiAgICB9XG4gICAgZnVuY3Rpb24gb25jZVN0cmljdChmbikge1xuICAgICAgdmFyIGYgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgaWYgKGYuY2FsbGVkKVxuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihmLm9uY2VFcnJvcik7XG4gICAgICAgIGYuY2FsbGVkID0gdHJ1ZTtcbiAgICAgICAgcmV0dXJuIGYudmFsdWUgPSBmbi5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICAgICAgfTtcbiAgICAgIHZhciBuYW1lID0gZm4ubmFtZSB8fCBcIkZ1bmN0aW9uIHdyYXBwZWQgd2l0aCBgb25jZWBcIjtcbiAgICAgIGYub25jZUVycm9yID0gbmFtZSArIFwiIHNob3VsZG4ndCBiZSBjYWxsZWQgbW9yZSB0aGFuIG9uY2VcIjtcbiAgICAgIGYuY2FsbGVkID0gZmFsc2U7XG4gICAgICByZXR1cm4gZjtcbiAgICB9XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvaXMtcHJvbWlzZS9pbmRleC5qc1xudmFyIHJlcXVpcmVfaXNfcHJvbWlzZSA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9pcy1wcm9taXNlL2luZGV4LmpzXCIoZXhwb3J0czIsIG1vZHVsZTIpIHtcbiAgICBtb2R1bGUyLmV4cG9ydHMgPSBpc1Byb21pc2U7XG4gICAgbW9kdWxlMi5leHBvcnRzLmRlZmF1bHQgPSBpc1Byb21pc2U7XG4gICAgZnVuY3Rpb24gaXNQcm9taXNlKG9iaikge1xuICAgICAgcmV0dXJuICEhb2JqICYmICh0eXBlb2Ygb2JqID09PSBcIm9iamVjdFwiIHx8IHR5cGVvZiBvYmogPT09IFwiZnVuY3Rpb25cIikgJiYgdHlwZW9mIG9iai50aGVuID09PSBcImZ1bmN0aW9uXCI7XG4gICAgfVxuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL3BhdGgtdG8tcmVnZXhwL2Rpc3QvaW5kZXguanNcbnZhciByZXF1aXJlX2Rpc3QgPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvcGF0aC10by1yZWdleHAvZGlzdC9pbmRleC5qc1wiKGV4cG9ydHMyKSB7XG4gICAgXCJ1c2Ugc3RyaWN0XCI7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbiAgICBleHBvcnRzMi5Ub2tlbkRhdGEgPSB2b2lkIDA7XG4gICAgZXhwb3J0czIucGFyc2UgPSBwYXJzZTtcbiAgICBleHBvcnRzMi5jb21waWxlID0gY29tcGlsZTtcbiAgICBleHBvcnRzMi5tYXRjaCA9IG1hdGNoO1xuICAgIGV4cG9ydHMyLnBhdGhUb1JlZ2V4cCA9IHBhdGhUb1JlZ2V4cDtcbiAgICBleHBvcnRzMi5zdHJpbmdpZnkgPSBzdHJpbmdpZnk7XG4gICAgdmFyIERFRkFVTFRfREVMSU1JVEVSID0gXCIvXCI7XG4gICAgdmFyIE5PT1BfVkFMVUUgPSAodmFsdWUpID0+IHZhbHVlO1xuICAgIHZhciBJRF9TVEFSVCA9IC9eWyRfXFxwe0lEX1N0YXJ0fV0kL3U7XG4gICAgdmFyIElEX0NPTlRJTlVFID0gL15bJFxcdTIwMGNcXHUyMDBkXFxwe0lEX0NvbnRpbnVlfV0kL3U7XG4gICAgdmFyIERFQlVHX1VSTCA9IFwiaHR0cHM6Ly9naXQubmV3L3BhdGhUb1JlZ2V4cEVycm9yXCI7XG4gICAgdmFyIFNJTVBMRV9UT0tFTlMgPSB7XG4gICAgICAvLyBHcm91cHMuXG4gICAgICBcIntcIjogXCJ7XCIsXG4gICAgICBcIn1cIjogXCJ9XCIsXG4gICAgICAvLyBSZXNlcnZlZC5cbiAgICAgIFwiKFwiOiBcIihcIixcbiAgICAgIFwiKVwiOiBcIilcIixcbiAgICAgIFwiW1wiOiBcIltcIixcbiAgICAgIFwiXVwiOiBcIl1cIixcbiAgICAgIFwiK1wiOiBcIitcIixcbiAgICAgIFwiP1wiOiBcIj9cIixcbiAgICAgIFwiIVwiOiBcIiFcIlxuICAgIH07XG4gICAgZnVuY3Rpb24gZXNjYXBlVGV4dChzdHIpIHtcbiAgICAgIHJldHVybiBzdHIucmVwbGFjZSgvW3t9KClcXFtcXF0rPyE6Kl0vZywgXCJcXFxcJCZcIik7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGVzY2FwZTIoc3RyKSB7XG4gICAgICByZXR1cm4gc3RyLnJlcGxhY2UoL1suKyo/XiR7fSgpW1xcXXwvXFxcXF0vZywgXCJcXFxcJCZcIik7XG4gICAgfVxuICAgIGZ1bmN0aW9uKiBsZXhlcihzdHIpIHtcbiAgICAgIGNvbnN0IGNoYXJzID0gWy4uLnN0cl07XG4gICAgICBsZXQgaSA9IDA7XG4gICAgICBmdW5jdGlvbiBuYW1lKCkge1xuICAgICAgICBsZXQgdmFsdWUgPSBcIlwiO1xuICAgICAgICBpZiAoSURfU1RBUlQudGVzdChjaGFyc1srK2ldKSkge1xuICAgICAgICAgIHZhbHVlICs9IGNoYXJzW2ldO1xuICAgICAgICAgIHdoaWxlIChJRF9DT05USU5VRS50ZXN0KGNoYXJzWysraV0pKSB7XG4gICAgICAgICAgICB2YWx1ZSArPSBjaGFyc1tpXTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAoY2hhcnNbaV0gPT09ICdcIicpIHtcbiAgICAgICAgICBsZXQgcG9zID0gaTtcbiAgICAgICAgICB3aGlsZSAoaSA8IGNoYXJzLmxlbmd0aCkge1xuICAgICAgICAgICAgaWYgKGNoYXJzWysraV0gPT09ICdcIicpIHtcbiAgICAgICAgICAgICAgaSsrO1xuICAgICAgICAgICAgICBwb3MgPSAwO1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChjaGFyc1tpXSA9PT0gXCJcXFxcXCIpIHtcbiAgICAgICAgICAgICAgdmFsdWUgKz0gY2hhcnNbKytpXTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHZhbHVlICs9IGNoYXJzW2ldO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAocG9zKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKGBVbnRlcm1pbmF0ZWQgcXVvdGUgYXQgJHtwb3N9OiAke0RFQlVHX1VSTH1gKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCF2YWx1ZSkge1xuICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoYE1pc3NpbmcgcGFyYW1ldGVyIG5hbWUgYXQgJHtpfTogJHtERUJVR19VUkx9YCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgfVxuICAgICAgd2hpbGUgKGkgPCBjaGFycy5sZW5ndGgpIHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSBjaGFyc1tpXTtcbiAgICAgICAgY29uc3QgdHlwZSA9IFNJTVBMRV9UT0tFTlNbdmFsdWVdO1xuICAgICAgICBpZiAodHlwZSkge1xuICAgICAgICAgIHlpZWxkIHsgdHlwZSwgaW5kZXg6IGkrKywgdmFsdWUgfTtcbiAgICAgICAgfSBlbHNlIGlmICh2YWx1ZSA9PT0gXCJcXFxcXCIpIHtcbiAgICAgICAgICB5aWVsZCB7IHR5cGU6IFwiRVNDQVBFRFwiLCBpbmRleDogaSsrLCB2YWx1ZTogY2hhcnNbaSsrXSB9O1xuICAgICAgICB9IGVsc2UgaWYgKHZhbHVlID09PSBcIjpcIikge1xuICAgICAgICAgIGNvbnN0IHZhbHVlMiA9IG5hbWUoKTtcbiAgICAgICAgICB5aWVsZCB7IHR5cGU6IFwiUEFSQU1cIiwgaW5kZXg6IGksIHZhbHVlOiB2YWx1ZTIgfTtcbiAgICAgICAgfSBlbHNlIGlmICh2YWx1ZSA9PT0gXCIqXCIpIHtcbiAgICAgICAgICBjb25zdCB2YWx1ZTIgPSBuYW1lKCk7XG4gICAgICAgICAgeWllbGQgeyB0eXBlOiBcIldJTERDQVJEXCIsIGluZGV4OiBpLCB2YWx1ZTogdmFsdWUyIH07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgeWllbGQgeyB0eXBlOiBcIkNIQVJcIiwgaW5kZXg6IGksIHZhbHVlOiBjaGFyc1tpKytdIH07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiB7IHR5cGU6IFwiRU5EXCIsIGluZGV4OiBpLCB2YWx1ZTogXCJcIiB9O1xuICAgIH1cbiAgICB2YXIgSXRlciA9IGNsYXNzIHtcbiAgICAgIGNvbnN0cnVjdG9yKHRva2Vucykge1xuICAgICAgICB0aGlzLnRva2VucyA9IHRva2VucztcbiAgICAgIH1cbiAgICAgIHBlZWsoKSB7XG4gICAgICAgIGlmICghdGhpcy5fcGVlaykge1xuICAgICAgICAgIGNvbnN0IG5leHQgPSB0aGlzLnRva2Vucy5uZXh0KCk7XG4gICAgICAgICAgdGhpcy5fcGVlayA9IG5leHQudmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuX3BlZWs7XG4gICAgICB9XG4gICAgICB0cnlDb25zdW1lKHR5cGUpIHtcbiAgICAgICAgY29uc3QgdG9rZW4gPSB0aGlzLnBlZWsoKTtcbiAgICAgICAgaWYgKHRva2VuLnR5cGUgIT09IHR5cGUpXG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB0aGlzLl9wZWVrID0gdm9pZCAwO1xuICAgICAgICByZXR1cm4gdG9rZW4udmFsdWU7XG4gICAgICB9XG4gICAgICBjb25zdW1lKHR5cGUpIHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLnRyeUNvbnN1bWUodHlwZSk7XG4gICAgICAgIGlmICh2YWx1ZSAhPT0gdm9pZCAwKVxuICAgICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgICAgY29uc3QgeyB0eXBlOiBuZXh0VHlwZSwgaW5kZXggfSA9IHRoaXMucGVlaygpO1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKGBVbmV4cGVjdGVkICR7bmV4dFR5cGV9IGF0ICR7aW5kZXh9LCBleHBlY3RlZCAke3R5cGV9OiAke0RFQlVHX1VSTH1gKTtcbiAgICAgIH1cbiAgICAgIHRleHQoKSB7XG4gICAgICAgIGxldCByZXN1bHQgPSBcIlwiO1xuICAgICAgICBsZXQgdmFsdWU7XG4gICAgICAgIHdoaWxlICh2YWx1ZSA9IHRoaXMudHJ5Q29uc3VtZShcIkNIQVJcIikgfHwgdGhpcy50cnlDb25zdW1lKFwiRVNDQVBFRFwiKSkge1xuICAgICAgICAgIHJlc3VsdCArPSB2YWx1ZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgfVxuICAgIH07XG4gICAgdmFyIFRva2VuRGF0YSA9IGNsYXNzIHtcbiAgICAgIGNvbnN0cnVjdG9yKHRva2Vucykge1xuICAgICAgICB0aGlzLnRva2VucyA9IHRva2VucztcbiAgICAgIH1cbiAgICB9O1xuICAgIGV4cG9ydHMyLlRva2VuRGF0YSA9IFRva2VuRGF0YTtcbiAgICBmdW5jdGlvbiBwYXJzZShzdHIsIG9wdGlvbnMgPSB7fSkge1xuICAgICAgY29uc3QgeyBlbmNvZGVQYXRoID0gTk9PUF9WQUxVRSB9ID0gb3B0aW9ucztcbiAgICAgIGNvbnN0IGl0ID0gbmV3IEl0ZXIobGV4ZXIoc3RyKSk7XG4gICAgICBmdW5jdGlvbiBjb25zdW1lKGVuZFR5cGUpIHtcbiAgICAgICAgY29uc3QgdG9rZW5zMiA9IFtdO1xuICAgICAgICB3aGlsZSAodHJ1ZSkge1xuICAgICAgICAgIGNvbnN0IHBhdGggPSBpdC50ZXh0KCk7XG4gICAgICAgICAgaWYgKHBhdGgpXG4gICAgICAgICAgICB0b2tlbnMyLnB1c2goeyB0eXBlOiBcInRleHRcIiwgdmFsdWU6IGVuY29kZVBhdGgocGF0aCkgfSk7XG4gICAgICAgICAgY29uc3QgcGFyYW0gPSBpdC50cnlDb25zdW1lKFwiUEFSQU1cIik7XG4gICAgICAgICAgaWYgKHBhcmFtKSB7XG4gICAgICAgICAgICB0b2tlbnMyLnB1c2goe1xuICAgICAgICAgICAgICB0eXBlOiBcInBhcmFtXCIsXG4gICAgICAgICAgICAgIG5hbWU6IHBhcmFtXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgICBjb25zdCB3aWxkY2FyZCA9IGl0LnRyeUNvbnN1bWUoXCJXSUxEQ0FSRFwiKTtcbiAgICAgICAgICBpZiAod2lsZGNhcmQpIHtcbiAgICAgICAgICAgIHRva2VuczIucHVzaCh7XG4gICAgICAgICAgICAgIHR5cGU6IFwid2lsZGNhcmRcIixcbiAgICAgICAgICAgICAgbmFtZTogd2lsZGNhcmRcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgfVxuICAgICAgICAgIGNvbnN0IG9wZW4gPSBpdC50cnlDb25zdW1lKFwie1wiKTtcbiAgICAgICAgICBpZiAob3Blbikge1xuICAgICAgICAgICAgdG9rZW5zMi5wdXNoKHtcbiAgICAgICAgICAgICAgdHlwZTogXCJncm91cFwiLFxuICAgICAgICAgICAgICB0b2tlbnM6IGNvbnN1bWUoXCJ9XCIpXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpdC5jb25zdW1lKGVuZFR5cGUpO1xuICAgICAgICAgIHJldHVybiB0b2tlbnMyO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBjb25zdCB0b2tlbnMgPSBjb25zdW1lKFwiRU5EXCIpO1xuICAgICAgcmV0dXJuIG5ldyBUb2tlbkRhdGEodG9rZW5zKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gY29tcGlsZShwYXRoLCBvcHRpb25zID0ge30pIHtcbiAgICAgIGNvbnN0IHsgZW5jb2RlID0gZW5jb2RlVVJJQ29tcG9uZW50LCBkZWxpbWl0ZXIgPSBERUZBVUxUX0RFTElNSVRFUiB9ID0gb3B0aW9ucztcbiAgICAgIGNvbnN0IGRhdGEgPSBwYXRoIGluc3RhbmNlb2YgVG9rZW5EYXRhID8gcGF0aCA6IHBhcnNlKHBhdGgsIG9wdGlvbnMpO1xuICAgICAgY29uc3QgZm4gPSB0b2tlbnNUb0Z1bmN0aW9uKGRhdGEudG9rZW5zLCBkZWxpbWl0ZXIsIGVuY29kZSk7XG4gICAgICByZXR1cm4gZnVuY3Rpb24gcGF0aDIoZGF0YTIgPSB7fSkge1xuICAgICAgICBjb25zdCBbcGF0aDMsIC4uLm1pc3NpbmddID0gZm4oZGF0YTIpO1xuICAgICAgICBpZiAobWlzc2luZy5sZW5ndGgpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKGBNaXNzaW5nIHBhcmFtZXRlcnM6ICR7bWlzc2luZy5qb2luKFwiLCBcIil9YCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHBhdGgzO1xuICAgICAgfTtcbiAgICB9XG4gICAgZnVuY3Rpb24gdG9rZW5zVG9GdW5jdGlvbih0b2tlbnMsIGRlbGltaXRlciwgZW5jb2RlKSB7XG4gICAgICBjb25zdCBlbmNvZGVycyA9IHRva2Vucy5tYXAoKHRva2VuKSA9PiB0b2tlblRvRnVuY3Rpb24odG9rZW4sIGRlbGltaXRlciwgZW5jb2RlKSk7XG4gICAgICByZXR1cm4gKGRhdGEpID0+IHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gW1wiXCJdO1xuICAgICAgICBmb3IgKGNvbnN0IGVuY29kZXIgb2YgZW5jb2RlcnMpIHtcbiAgICAgICAgICBjb25zdCBbdmFsdWUsIC4uLmV4dHJhc10gPSBlbmNvZGVyKGRhdGEpO1xuICAgICAgICAgIHJlc3VsdFswXSArPSB2YWx1ZTtcbiAgICAgICAgICByZXN1bHQucHVzaCguLi5leHRyYXMpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICB9O1xuICAgIH1cbiAgICBmdW5jdGlvbiB0b2tlblRvRnVuY3Rpb24odG9rZW4sIGRlbGltaXRlciwgZW5jb2RlKSB7XG4gICAgICBpZiAodG9rZW4udHlwZSA9PT0gXCJ0ZXh0XCIpXG4gICAgICAgIHJldHVybiAoKSA9PiBbdG9rZW4udmFsdWVdO1xuICAgICAgaWYgKHRva2VuLnR5cGUgPT09IFwiZ3JvdXBcIikge1xuICAgICAgICBjb25zdCBmbiA9IHRva2Vuc1RvRnVuY3Rpb24odG9rZW4udG9rZW5zLCBkZWxpbWl0ZXIsIGVuY29kZSk7XG4gICAgICAgIHJldHVybiAoZGF0YSkgPT4ge1xuICAgICAgICAgIGNvbnN0IFt2YWx1ZSwgLi4ubWlzc2luZ10gPSBmbihkYXRhKTtcbiAgICAgICAgICBpZiAoIW1pc3NpbmcubGVuZ3RoKVxuICAgICAgICAgICAgcmV0dXJuIFt2YWx1ZV07XG4gICAgICAgICAgcmV0dXJuIFtcIlwiXTtcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IGVuY29kZVZhbHVlID0gZW5jb2RlIHx8IE5PT1BfVkFMVUU7XG4gICAgICBpZiAodG9rZW4udHlwZSA9PT0gXCJ3aWxkY2FyZFwiICYmIGVuY29kZSAhPT0gZmFsc2UpIHtcbiAgICAgICAgcmV0dXJuIChkYXRhKSA9PiB7XG4gICAgICAgICAgY29uc3QgdmFsdWUgPSBkYXRhW3Rva2VuLm5hbWVdO1xuICAgICAgICAgIGlmICh2YWx1ZSA9PSBudWxsKVxuICAgICAgICAgICAgcmV0dXJuIFtcIlwiLCB0b2tlbi5uYW1lXTtcbiAgICAgICAgICBpZiAoIUFycmF5LmlzQXJyYXkodmFsdWUpIHx8IHZhbHVlLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihgRXhwZWN0ZWQgXCIke3Rva2VuLm5hbWV9XCIgdG8gYmUgYSBub24tZW1wdHkgYXJyYXlgKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIHZhbHVlLm1hcCgodmFsdWUyLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgICBpZiAodHlwZW9mIHZhbHVlMiAhPT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoYEV4cGVjdGVkIFwiJHt0b2tlbi5uYW1lfS8ke2luZGV4fVwiIHRvIGJlIGEgc3RyaW5nYCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgcmV0dXJuIGVuY29kZVZhbHVlKHZhbHVlMik7XG4gICAgICAgICAgICB9KS5qb2luKGRlbGltaXRlcilcbiAgICAgICAgICBdO1xuICAgICAgICB9O1xuICAgICAgfVxuICAgICAgcmV0dXJuIChkYXRhKSA9PiB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gZGF0YVt0b2tlbi5uYW1lXTtcbiAgICAgICAgaWYgKHZhbHVlID09IG51bGwpXG4gICAgICAgICAgcmV0dXJuIFtcIlwiLCB0b2tlbi5uYW1lXTtcbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoYEV4cGVjdGVkIFwiJHt0b2tlbi5uYW1lfVwiIHRvIGJlIGEgc3RyaW5nYCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIFtlbmNvZGVWYWx1ZSh2YWx1ZSldO1xuICAgICAgfTtcbiAgICB9XG4gICAgZnVuY3Rpb24gbWF0Y2gocGF0aCwgb3B0aW9ucyA9IHt9KSB7XG4gICAgICBjb25zdCB7IGRlY29kZSA9IGRlY29kZVVSSUNvbXBvbmVudCwgZGVsaW1pdGVyID0gREVGQVVMVF9ERUxJTUlURVIgfSA9IG9wdGlvbnM7XG4gICAgICBjb25zdCB7IHJlZ2V4cCwga2V5cyB9ID0gcGF0aFRvUmVnZXhwKHBhdGgsIG9wdGlvbnMpO1xuICAgICAgY29uc3QgZGVjb2RlcnMgPSBrZXlzLm1hcCgoa2V5KSA9PiB7XG4gICAgICAgIGlmIChkZWNvZGUgPT09IGZhbHNlKVxuICAgICAgICAgIHJldHVybiBOT09QX1ZBTFVFO1xuICAgICAgICBpZiAoa2V5LnR5cGUgPT09IFwicGFyYW1cIilcbiAgICAgICAgICByZXR1cm4gZGVjb2RlO1xuICAgICAgICByZXR1cm4gKHZhbHVlKSA9PiB2YWx1ZS5zcGxpdChkZWxpbWl0ZXIpLm1hcChkZWNvZGUpO1xuICAgICAgfSk7XG4gICAgICByZXR1cm4gZnVuY3Rpb24gbWF0Y2gyKGlucHV0KSB7XG4gICAgICAgIGNvbnN0IG0gPSByZWdleHAuZXhlYyhpbnB1dCk7XG4gICAgICAgIGlmICghbSlcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIGNvbnN0IHBhdGgyID0gbVswXTtcbiAgICAgICAgY29uc3QgcGFyYW1zID0gLyogQF9fUFVSRV9fICovIE9iamVjdC5jcmVhdGUobnVsbCk7XG4gICAgICAgIGZvciAobGV0IGkgPSAxOyBpIDwgbS5sZW5ndGg7IGkrKykge1xuICAgICAgICAgIGlmIChtW2ldID09PSB2b2lkIDApXG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICBjb25zdCBrZXkgPSBrZXlzW2kgLSAxXTtcbiAgICAgICAgICBjb25zdCBkZWNvZGVyID0gZGVjb2RlcnNbaSAtIDFdO1xuICAgICAgICAgIHBhcmFtc1trZXkubmFtZV0gPSBkZWNvZGVyKG1baV0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7IHBhdGg6IHBhdGgyLCBwYXJhbXMgfTtcbiAgICAgIH07XG4gICAgfVxuICAgIGZ1bmN0aW9uIHBhdGhUb1JlZ2V4cChwYXRoLCBvcHRpb25zID0ge30pIHtcbiAgICAgIGNvbnN0IHsgZGVsaW1pdGVyID0gREVGQVVMVF9ERUxJTUlURVIsIGVuZCA9IHRydWUsIHNlbnNpdGl2ZSA9IGZhbHNlLCB0cmFpbGluZyA9IHRydWUgfSA9IG9wdGlvbnM7XG4gICAgICBjb25zdCBrZXlzID0gW107XG4gICAgICBjb25zdCBzb3VyY2VzID0gW107XG4gICAgICBjb25zdCBmbGFncyA9IHNlbnNpdGl2ZSA/IFwiXCIgOiBcImlcIjtcbiAgICAgIGNvbnN0IHBhdGhzID0gQXJyYXkuaXNBcnJheShwYXRoKSA/IHBhdGggOiBbcGF0aF07XG4gICAgICBjb25zdCBpdGVtcyA9IHBhdGhzLm1hcCgocGF0aDIpID0+IHBhdGgyIGluc3RhbmNlb2YgVG9rZW5EYXRhID8gcGF0aDIgOiBwYXJzZShwYXRoMiwgb3B0aW9ucykpO1xuICAgICAgZm9yIChjb25zdCB7IHRva2VucyB9IG9mIGl0ZW1zKSB7XG4gICAgICAgIGZvciAoY29uc3Qgc2VxIG9mIGZsYXR0ZW4odG9rZW5zLCAwLCBbXSkpIHtcbiAgICAgICAgICBjb25zdCByZWdleHAyID0gc2VxdWVuY2VUb1JlZ0V4cChzZXEsIGRlbGltaXRlciwga2V5cyk7XG4gICAgICAgICAgc291cmNlcy5wdXNoKHJlZ2V4cDIpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBsZXQgcGF0dGVybiA9IGBeKD86JHtzb3VyY2VzLmpvaW4oXCJ8XCIpfSlgO1xuICAgICAgaWYgKHRyYWlsaW5nKVxuICAgICAgICBwYXR0ZXJuICs9IGAoPzoke2VzY2FwZTIoZGVsaW1pdGVyKX0kKT9gO1xuICAgICAgcGF0dGVybiArPSBlbmQgPyBcIiRcIiA6IGAoPz0ke2VzY2FwZTIoZGVsaW1pdGVyKX18JClgO1xuICAgICAgY29uc3QgcmVnZXhwID0gbmV3IFJlZ0V4cChwYXR0ZXJuLCBmbGFncyk7XG4gICAgICByZXR1cm4geyByZWdleHAsIGtleXMgfTtcbiAgICB9XG4gICAgZnVuY3Rpb24qIGZsYXR0ZW4odG9rZW5zLCBpbmRleCwgaW5pdCkge1xuICAgICAgaWYgKGluZGV4ID09PSB0b2tlbnMubGVuZ3RoKSB7XG4gICAgICAgIHJldHVybiB5aWVsZCBpbml0O1xuICAgICAgfVxuICAgICAgY29uc3QgdG9rZW4gPSB0b2tlbnNbaW5kZXhdO1xuICAgICAgaWYgKHRva2VuLnR5cGUgPT09IFwiZ3JvdXBcIikge1xuICAgICAgICBjb25zdCBmb3JrID0gaW5pdC5zbGljZSgpO1xuICAgICAgICBmb3IgKGNvbnN0IHNlcSBvZiBmbGF0dGVuKHRva2VuLnRva2VucywgMCwgZm9yaykpIHtcbiAgICAgICAgICB5aWVsZCogZmxhdHRlbih0b2tlbnMsIGluZGV4ICsgMSwgc2VxKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaW5pdC5wdXNoKHRva2VuKTtcbiAgICAgIH1cbiAgICAgIHlpZWxkKiBmbGF0dGVuKHRva2VucywgaW5kZXggKyAxLCBpbml0KTtcbiAgICB9XG4gICAgZnVuY3Rpb24gc2VxdWVuY2VUb1JlZ0V4cCh0b2tlbnMsIGRlbGltaXRlciwga2V5cykge1xuICAgICAgbGV0IHJlc3VsdCA9IFwiXCI7XG4gICAgICBsZXQgYmFja3RyYWNrID0gXCJcIjtcbiAgICAgIGxldCBpc1NhZmVTZWdtZW50UGFyYW0gPSB0cnVlO1xuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0b2tlbnMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgY29uc3QgdG9rZW4gPSB0b2tlbnNbaV07XG4gICAgICAgIGlmICh0b2tlbi50eXBlID09PSBcInRleHRcIikge1xuICAgICAgICAgIHJlc3VsdCArPSBlc2NhcGUyKHRva2VuLnZhbHVlKTtcbiAgICAgICAgICBiYWNrdHJhY2sgKz0gdG9rZW4udmFsdWU7XG4gICAgICAgICAgaXNTYWZlU2VnbWVudFBhcmFtIHx8IChpc1NhZmVTZWdtZW50UGFyYW0gPSB0b2tlbi52YWx1ZS5pbmNsdWRlcyhkZWxpbWl0ZXIpKTtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodG9rZW4udHlwZSA9PT0gXCJwYXJhbVwiIHx8IHRva2VuLnR5cGUgPT09IFwid2lsZGNhcmRcIikge1xuICAgICAgICAgIGlmICghaXNTYWZlU2VnbWVudFBhcmFtICYmICFiYWNrdHJhY2spIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoYE1pc3NpbmcgdGV4dCBhZnRlciBcIiR7dG9rZW4ubmFtZX1cIjogJHtERUJVR19VUkx9YCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmICh0b2tlbi50eXBlID09PSBcInBhcmFtXCIpIHtcbiAgICAgICAgICAgIHJlc3VsdCArPSBgKCR7bmVnYXRlKGRlbGltaXRlciwgaXNTYWZlU2VnbWVudFBhcmFtID8gXCJcIiA6IGJhY2t0cmFjayl9KylgO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXN1bHQgKz0gYChbXFxcXHNcXFxcU10rKWA7XG4gICAgICAgICAgfVxuICAgICAgICAgIGtleXMucHVzaCh0b2tlbik7XG4gICAgICAgICAgYmFja3RyYWNrID0gXCJcIjtcbiAgICAgICAgICBpc1NhZmVTZWdtZW50UGFyYW0gPSBmYWxzZTtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG4gICAgZnVuY3Rpb24gbmVnYXRlKGRlbGltaXRlciwgYmFja3RyYWNrKSB7XG4gICAgICBpZiAoYmFja3RyYWNrLmxlbmd0aCA8IDIpIHtcbiAgICAgICAgaWYgKGRlbGltaXRlci5sZW5ndGggPCAyKVxuICAgICAgICAgIHJldHVybiBgW14ke2VzY2FwZTIoZGVsaW1pdGVyICsgYmFja3RyYWNrKX1dYDtcbiAgICAgICAgcmV0dXJuIGAoPzooPyEke2VzY2FwZTIoZGVsaW1pdGVyKX0pW14ke2VzY2FwZTIoYmFja3RyYWNrKX1dKWA7XG4gICAgICB9XG4gICAgICBpZiAoZGVsaW1pdGVyLmxlbmd0aCA8IDIpIHtcbiAgICAgICAgcmV0dXJuIGAoPzooPyEke2VzY2FwZTIoYmFja3RyYWNrKX0pW14ke2VzY2FwZTIoZGVsaW1pdGVyKX1dKWA7XG4gICAgICB9XG4gICAgICByZXR1cm4gYCg/Oig/ISR7ZXNjYXBlMihiYWNrdHJhY2spfXwke2VzY2FwZTIoZGVsaW1pdGVyKX0pW1xcXFxzXFxcXFNdKWA7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHN0cmluZ2lmeShkYXRhKSB7XG4gICAgICByZXR1cm4gZGF0YS50b2tlbnMubWFwKGZ1bmN0aW9uIHN0cmluZ2lmeVRva2VuKHRva2VuLCBpbmRleCwgdG9rZW5zKSB7XG4gICAgICAgIGlmICh0b2tlbi50eXBlID09PSBcInRleHRcIilcbiAgICAgICAgICByZXR1cm4gZXNjYXBlVGV4dCh0b2tlbi52YWx1ZSk7XG4gICAgICAgIGlmICh0b2tlbi50eXBlID09PSBcImdyb3VwXCIpIHtcbiAgICAgICAgICByZXR1cm4gYHske3Rva2VuLnRva2Vucy5tYXAoc3RyaW5naWZ5VG9rZW4pLmpvaW4oXCJcIil9fWA7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgaXNTYWZlID0gaXNOYW1lU2FmZSh0b2tlbi5uYW1lKSAmJiBpc05leHROYW1lU2FmZSh0b2tlbnNbaW5kZXggKyAxXSk7XG4gICAgICAgIGNvbnN0IGtleSA9IGlzU2FmZSA/IHRva2VuLm5hbWUgOiBKU09OLnN0cmluZ2lmeSh0b2tlbi5uYW1lKTtcbiAgICAgICAgaWYgKHRva2VuLnR5cGUgPT09IFwicGFyYW1cIilcbiAgICAgICAgICByZXR1cm4gYDoke2tleX1gO1xuICAgICAgICBpZiAodG9rZW4udHlwZSA9PT0gXCJ3aWxkY2FyZFwiKVxuICAgICAgICAgIHJldHVybiBgKiR7a2V5fWA7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoYFVuZXhwZWN0ZWQgdG9rZW46ICR7dG9rZW59YCk7XG4gICAgICB9KS5qb2luKFwiXCIpO1xuICAgIH1cbiAgICBmdW5jdGlvbiBpc05hbWVTYWZlKG5hbWUpIHtcbiAgICAgIGNvbnN0IFtmaXJzdCwgLi4ucmVzdF0gPSBuYW1lO1xuICAgICAgaWYgKCFJRF9TVEFSVC50ZXN0KGZpcnN0KSlcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgcmV0dXJuIHJlc3QuZXZlcnkoKGNoYXIpID0+IElEX0NPTlRJTlVFLnRlc3QoY2hhcikpO1xuICAgIH1cbiAgICBmdW5jdGlvbiBpc05leHROYW1lU2FmZSh0b2tlbikge1xuICAgICAgaWYgKCh0b2tlbiA9PT0gbnVsbCB8fCB0b2tlbiA9PT0gdm9pZCAwID8gdm9pZCAwIDogdG9rZW4udHlwZSkgIT09IFwidGV4dFwiKVxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIHJldHVybiAhSURfQ09OVElOVUUudGVzdCh0b2tlbi52YWx1ZVswXSk7XG4gICAgfVxuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL3JvdXRlci9saWIvbGF5ZXIuanNcbnZhciByZXF1aXJlX2xheWVyID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL3JvdXRlci9saWIvbGF5ZXIuanNcIihleHBvcnRzMiwgbW9kdWxlMikge1xuICAgIFwidXNlIHN0cmljdFwiO1xuICAgIHZhciBpc1Byb21pc2UgPSByZXF1aXJlX2lzX3Byb21pc2UoKTtcbiAgICB2YXIgcGF0aFJlZ2V4cCA9IHJlcXVpcmVfZGlzdCgpO1xuICAgIHZhciBkZWJ1ZyA9IHJlcXVpcmVfc3JjKCkoXCJyb3V0ZXI6bGF5ZXJcIik7XG4gICAgdmFyIGRlcHJlY2F0ZSA9IHJlcXVpcmVfZGVwZCgpKFwicm91dGVyXCIpO1xuICAgIHZhciBUUkFJTElOR19TTEFTSF9SRUdFWFAgPSAvXFwvKyQvO1xuICAgIHZhciBNQVRDSElOR19HUk9VUF9SRUdFWFAgPSAvXFwoKD86XFw/PCguKj8pPik/KD8hXFw/KS9nO1xuICAgIG1vZHVsZTIuZXhwb3J0cyA9IExheWVyO1xuICAgIGZ1bmN0aW9uIExheWVyKHBhdGgsIG9wdGlvbnMsIGZuKSB7XG4gICAgICBpZiAoISh0aGlzIGluc3RhbmNlb2YgTGF5ZXIpKSB7XG4gICAgICAgIHJldHVybiBuZXcgTGF5ZXIocGF0aCwgb3B0aW9ucywgZm4pO1xuICAgICAgfVxuICAgICAgZGVidWcoXCJuZXcgJW9cIiwgcGF0aCk7XG4gICAgICBjb25zdCBvcHRzID0gb3B0aW9ucyB8fCB7fTtcbiAgICAgIHRoaXMuaGFuZGxlID0gZm47XG4gICAgICB0aGlzLmtleXMgPSBbXTtcbiAgICAgIHRoaXMubmFtZSA9IGZuLm5hbWUgfHwgXCI8YW5vbnltb3VzPlwiO1xuICAgICAgdGhpcy5wYXJhbXMgPSB2b2lkIDA7XG4gICAgICB0aGlzLnBhdGggPSB2b2lkIDA7XG4gICAgICB0aGlzLnNsYXNoID0gcGF0aCA9PT0gXCIvXCIgJiYgb3B0cy5lbmQgPT09IGZhbHNlO1xuICAgICAgZnVuY3Rpb24gbWF0Y2hlcihfcGF0aCkge1xuICAgICAgICBpZiAoX3BhdGggaW5zdGFuY2VvZiBSZWdFeHApIHtcbiAgICAgICAgICBjb25zdCBrZXlzID0gW107XG4gICAgICAgICAgbGV0IG5hbWUgPSAwO1xuICAgICAgICAgIGxldCBtO1xuICAgICAgICAgIHdoaWxlIChtID0gTUFUQ0hJTkdfR1JPVVBfUkVHRVhQLmV4ZWMoX3BhdGguc291cmNlKSkge1xuICAgICAgICAgICAga2V5cy5wdXNoKHtcbiAgICAgICAgICAgICAgbmFtZTogbVsxXSB8fCBuYW1lKyssXG4gICAgICAgICAgICAgIG9mZnNldDogbS5pbmRleFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBmdW5jdGlvbiByZWdleHBNYXRjaGVyKHApIHtcbiAgICAgICAgICAgIGNvbnN0IG1hdGNoID0gX3BhdGguZXhlYyhwKTtcbiAgICAgICAgICAgIGlmICghbWF0Y2gpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgcGFyYW1zID0ge307XG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMTsgaSA8IG1hdGNoLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgIGNvbnN0IGtleSA9IGtleXNbaSAtIDFdO1xuICAgICAgICAgICAgICBjb25zdCBwcm9wID0ga2V5Lm5hbWU7XG4gICAgICAgICAgICAgIGNvbnN0IHZhbCA9IGRlY29kZVBhcmFtKG1hdGNoW2ldKTtcbiAgICAgICAgICAgICAgaWYgKHZhbCAhPT0gdm9pZCAwKSB7XG4gICAgICAgICAgICAgICAgcGFyYW1zW3Byb3BdID0gdmFsO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICBwYXJhbXMsXG4gICAgICAgICAgICAgIHBhdGg6IG1hdGNoWzBdXG4gICAgICAgICAgICB9O1xuICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHBhdGhSZWdleHAubWF0Y2gob3B0cy5zdHJpY3QgPyBfcGF0aCA6IGxvb3NlbihfcGF0aCksIHtcbiAgICAgICAgICBzZW5zaXRpdmU6IG9wdHMuc2Vuc2l0aXZlLFxuICAgICAgICAgIGVuZDogb3B0cy5lbmQsXG4gICAgICAgICAgdHJhaWxpbmc6ICFvcHRzLnN0cmljdCxcbiAgICAgICAgICBkZWNvZGU6IGRlY29kZVBhcmFtXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgdGhpcy5tYXRjaGVycyA9IEFycmF5LmlzQXJyYXkocGF0aCkgPyBwYXRoLm1hcChtYXRjaGVyKSA6IFttYXRjaGVyKHBhdGgpXTtcbiAgICB9XG4gICAgTGF5ZXIucHJvdG90eXBlLmhhbmRsZUVycm9yID0gZnVuY3Rpb24gaGFuZGxlRXJyb3IoZXJyb3IsIHJlcSwgcmVzLCBuZXh0KSB7XG4gICAgICBjb25zdCBmbiA9IHRoaXMuaGFuZGxlO1xuICAgICAgaWYgKGZuLmxlbmd0aCAhPT0gNCkge1xuICAgICAgICByZXR1cm4gbmV4dChlcnJvcik7XG4gICAgICB9XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCByZXQgPSBmbihlcnJvciwgcmVxLCByZXMsIG5leHQpO1xuICAgICAgICBpZiAoaXNQcm9taXNlKHJldCkpIHtcbiAgICAgICAgICBpZiAoIShyZXQgaW5zdGFuY2VvZiBQcm9taXNlKSkge1xuICAgICAgICAgICAgZGVwcmVjYXRlKFwiaGFuZGxlcnMgdGhhdCBhcmUgUHJvbWlzZS1saWtlIGFyZSBkZXByZWNhdGVkLCB1c2UgYSBuYXRpdmUgUHJvbWlzZSBpbnN0ZWFkXCIpO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXQudGhlbihudWxsLCBmdW5jdGlvbihlcnJvcjIpIHtcbiAgICAgICAgICAgIG5leHQoZXJyb3IyIHx8IG5ldyBFcnJvcihcIlJlamVjdGVkIHByb21pc2VcIikpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9IGNhdGNoIChlcnIyKSB7XG4gICAgICAgIG5leHQoZXJyMik7XG4gICAgICB9XG4gICAgfTtcbiAgICBMYXllci5wcm90b3R5cGUuaGFuZGxlUmVxdWVzdCA9IGZ1bmN0aW9uIGhhbmRsZVJlcXVlc3QocmVxLCByZXMsIG5leHQpIHtcbiAgICAgIGNvbnN0IGZuID0gdGhpcy5oYW5kbGU7XG4gICAgICBpZiAoZm4ubGVuZ3RoID4gMykge1xuICAgICAgICByZXR1cm4gbmV4dCgpO1xuICAgICAgfVxuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgcmV0ID0gZm4ocmVxLCByZXMsIG5leHQpO1xuICAgICAgICBpZiAoaXNQcm9taXNlKHJldCkpIHtcbiAgICAgICAgICBpZiAoIShyZXQgaW5zdGFuY2VvZiBQcm9taXNlKSkge1xuICAgICAgICAgICAgZGVwcmVjYXRlKFwiaGFuZGxlcnMgdGhhdCBhcmUgUHJvbWlzZS1saWtlIGFyZSBkZXByZWNhdGVkLCB1c2UgYSBuYXRpdmUgUHJvbWlzZSBpbnN0ZWFkXCIpO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXQudGhlbihudWxsLCBmdW5jdGlvbihlcnJvcikge1xuICAgICAgICAgICAgbmV4dChlcnJvciB8fCBuZXcgRXJyb3IoXCJSZWplY3RlZCBwcm9taXNlXCIpKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSBjYXRjaCAoZXJyMikge1xuICAgICAgICBuZXh0KGVycjIpO1xuICAgICAgfVxuICAgIH07XG4gICAgTGF5ZXIucHJvdG90eXBlLm1hdGNoID0gZnVuY3Rpb24gbWF0Y2gocGF0aCkge1xuICAgICAgbGV0IG1hdGNoMjtcbiAgICAgIGlmIChwYXRoICE9IG51bGwpIHtcbiAgICAgICAgaWYgKHRoaXMuc2xhc2gpIHtcbiAgICAgICAgICB0aGlzLnBhcmFtcyA9IHt9O1xuICAgICAgICAgIHRoaXMucGF0aCA9IFwiXCI7XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgbGV0IGkgPSAwO1xuICAgICAgICB3aGlsZSAoIW1hdGNoMiAmJiBpIDwgdGhpcy5tYXRjaGVycy5sZW5ndGgpIHtcbiAgICAgICAgICBtYXRjaDIgPSB0aGlzLm1hdGNoZXJzW2ldKHBhdGgpO1xuICAgICAgICAgIGkrKztcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKCFtYXRjaDIpIHtcbiAgICAgICAgdGhpcy5wYXJhbXMgPSB2b2lkIDA7XG4gICAgICAgIHRoaXMucGF0aCA9IHZvaWQgMDtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgdGhpcy5wYXJhbXMgPSBtYXRjaDIucGFyYW1zO1xuICAgICAgdGhpcy5wYXRoID0gbWF0Y2gyLnBhdGg7XG4gICAgICB0aGlzLmtleXMgPSBPYmplY3Qua2V5cyhtYXRjaDIucGFyYW1zKTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH07XG4gICAgZnVuY3Rpb24gZGVjb2RlUGFyYW0odmFsKSB7XG4gICAgICBpZiAodHlwZW9mIHZhbCAhPT0gXCJzdHJpbmdcIiB8fCB2YWwubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHJldHVybiB2YWw7XG4gICAgICB9XG4gICAgICB0cnkge1xuICAgICAgICByZXR1cm4gZGVjb2RlVVJJQ29tcG9uZW50KHZhbCk7XG4gICAgICB9IGNhdGNoIChlcnIyKSB7XG4gICAgICAgIGlmIChlcnIyIGluc3RhbmNlb2YgVVJJRXJyb3IpIHtcbiAgICAgICAgICBlcnIyLm1lc3NhZ2UgPSBcIkZhaWxlZCB0byBkZWNvZGUgcGFyYW0gJ1wiICsgdmFsICsgXCInXCI7XG4gICAgICAgICAgZXJyMi5zdGF0dXMgPSA0MDA7XG4gICAgICAgIH1cbiAgICAgICAgdGhyb3cgZXJyMjtcbiAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gbG9vc2VuKHBhdGgpIHtcbiAgICAgIGlmIChwYXRoIGluc3RhbmNlb2YgUmVnRXhwIHx8IHBhdGggPT09IFwiL1wiKSB7XG4gICAgICAgIHJldHVybiBwYXRoO1xuICAgICAgfVxuICAgICAgcmV0dXJuIEFycmF5LmlzQXJyYXkocGF0aCkgPyBwYXRoLm1hcChmdW5jdGlvbihwKSB7XG4gICAgICAgIHJldHVybiBsb29zZW4ocCk7XG4gICAgICB9KSA6IFN0cmluZyhwYXRoKS5yZXBsYWNlKFRSQUlMSU5HX1NMQVNIX1JFR0VYUCwgXCJcIik7XG4gICAgfVxuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL3JvdXRlci9saWIvcm91dGUuanNcbnZhciByZXF1aXJlX3JvdXRlID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL3JvdXRlci9saWIvcm91dGUuanNcIihleHBvcnRzMiwgbW9kdWxlMikge1xuICAgIFwidXNlIHN0cmljdFwiO1xuICAgIHZhciBkZWJ1ZyA9IHJlcXVpcmVfc3JjKCkoXCJyb3V0ZXI6cm91dGVcIik7XG4gICAgdmFyIExheWVyID0gcmVxdWlyZV9sYXllcigpO1xuICAgIHZhciB7IE1FVEhPRFMgfSA9IHJlcXVpcmUoXCJub2RlOmh0dHBcIik7XG4gICAgdmFyIHNsaWNlID0gQXJyYXkucHJvdG90eXBlLnNsaWNlO1xuICAgIHZhciBmbGF0dGVuID0gQXJyYXkucHJvdG90eXBlLmZsYXQ7XG4gICAgdmFyIG1ldGhvZHMgPSBNRVRIT0RTLm1hcCgobWV0aG9kKSA9PiBtZXRob2QudG9Mb3dlckNhc2UoKSk7XG4gICAgbW9kdWxlMi5leHBvcnRzID0gUm91dGU7XG4gICAgZnVuY3Rpb24gUm91dGUocGF0aCkge1xuICAgICAgZGVidWcoXCJuZXcgJW9cIiwgcGF0aCk7XG4gICAgICB0aGlzLnBhdGggPSBwYXRoO1xuICAgICAgdGhpcy5zdGFjayA9IFtdO1xuICAgICAgdGhpcy5tZXRob2RzID0gLyogQF9fUFVSRV9fICovIE9iamVjdC5jcmVhdGUobnVsbCk7XG4gICAgfVxuICAgIFJvdXRlLnByb3RvdHlwZS5faGFuZGxlc01ldGhvZCA9IGZ1bmN0aW9uIF9oYW5kbGVzTWV0aG9kKG1ldGhvZCkge1xuICAgICAgaWYgKHRoaXMubWV0aG9kcy5fYWxsKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgICAgbGV0IG5hbWUgPSB0eXBlb2YgbWV0aG9kID09PSBcInN0cmluZ1wiID8gbWV0aG9kLnRvTG93ZXJDYXNlKCkgOiBtZXRob2Q7XG4gICAgICBpZiAobmFtZSA9PT0gXCJoZWFkXCIgJiYgIXRoaXMubWV0aG9kcy5oZWFkKSB7XG4gICAgICAgIG5hbWUgPSBcImdldFwiO1xuICAgICAgfVxuICAgICAgcmV0dXJuIEJvb2xlYW4odGhpcy5tZXRob2RzW25hbWVdKTtcbiAgICB9O1xuICAgIFJvdXRlLnByb3RvdHlwZS5fbWV0aG9kcyA9IGZ1bmN0aW9uIF9tZXRob2RzKCkge1xuICAgICAgY29uc3QgbWV0aG9kczIgPSBPYmplY3Qua2V5cyh0aGlzLm1ldGhvZHMpO1xuICAgICAgaWYgKHRoaXMubWV0aG9kcy5nZXQgJiYgIXRoaXMubWV0aG9kcy5oZWFkKSB7XG4gICAgICAgIG1ldGhvZHMyLnB1c2goXCJoZWFkXCIpO1xuICAgICAgfVxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBtZXRob2RzMi5sZW5ndGg7IGkrKykge1xuICAgICAgICBtZXRob2RzMltpXSA9IG1ldGhvZHMyW2ldLnRvVXBwZXJDYXNlKCk7XG4gICAgICB9XG4gICAgICByZXR1cm4gbWV0aG9kczI7XG4gICAgfTtcbiAgICBSb3V0ZS5wcm90b3R5cGUuZGlzcGF0Y2ggPSBmdW5jdGlvbiBkaXNwYXRjaChyZXEsIHJlcywgZG9uZSkge1xuICAgICAgbGV0IGlkeCA9IDA7XG4gICAgICBjb25zdCBzdGFjayA9IHRoaXMuc3RhY2s7XG4gICAgICBsZXQgc3luYyA9IDA7XG4gICAgICBpZiAoc3RhY2subGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHJldHVybiBkb25lKCk7XG4gICAgICB9XG4gICAgICBsZXQgbWV0aG9kID0gdHlwZW9mIHJlcS5tZXRob2QgPT09IFwic3RyaW5nXCIgPyByZXEubWV0aG9kLnRvTG93ZXJDYXNlKCkgOiByZXEubWV0aG9kO1xuICAgICAgaWYgKG1ldGhvZCA9PT0gXCJoZWFkXCIgJiYgIXRoaXMubWV0aG9kcy5oZWFkKSB7XG4gICAgICAgIG1ldGhvZCA9IFwiZ2V0XCI7XG4gICAgICB9XG4gICAgICByZXEucm91dGUgPSB0aGlzO1xuICAgICAgbmV4dCgpO1xuICAgICAgZnVuY3Rpb24gbmV4dChlcnIyKSB7XG4gICAgICAgIGlmIChlcnIyICYmIGVycjIgPT09IFwicm91dGVcIikge1xuICAgICAgICAgIHJldHVybiBkb25lKCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGVycjIgJiYgZXJyMiA9PT0gXCJyb3V0ZXJcIikge1xuICAgICAgICAgIHJldHVybiBkb25lKGVycjIpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChpZHggPj0gc3RhY2subGVuZ3RoKSB7XG4gICAgICAgICAgcmV0dXJuIGRvbmUoZXJyMik7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCsrc3luYyA+IDEwMCkge1xuICAgICAgICAgIHJldHVybiBzZXRJbW1lZGlhdGUobmV4dCwgZXJyMik7XG4gICAgICAgIH1cbiAgICAgICAgbGV0IGxheWVyO1xuICAgICAgICBsZXQgbWF0Y2g7XG4gICAgICAgIHdoaWxlIChtYXRjaCAhPT0gdHJ1ZSAmJiBpZHggPCBzdGFjay5sZW5ndGgpIHtcbiAgICAgICAgICBsYXllciA9IHN0YWNrW2lkeCsrXTtcbiAgICAgICAgICBtYXRjaCA9ICFsYXllci5tZXRob2QgfHwgbGF5ZXIubWV0aG9kID09PSBtZXRob2Q7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG1hdGNoICE9PSB0cnVlKSB7XG4gICAgICAgICAgcmV0dXJuIGRvbmUoZXJyMik7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGVycjIpIHtcbiAgICAgICAgICBsYXllci5oYW5kbGVFcnJvcihlcnIyLCByZXEsIHJlcywgbmV4dCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgbGF5ZXIuaGFuZGxlUmVxdWVzdChyZXEsIHJlcywgbmV4dCk7XG4gICAgICAgIH1cbiAgICAgICAgc3luYyA9IDA7XG4gICAgICB9XG4gICAgfTtcbiAgICBSb3V0ZS5wcm90b3R5cGUuYWxsID0gZnVuY3Rpb24gYWxsKGhhbmRsZXIpIHtcbiAgICAgIGNvbnN0IGNhbGxiYWNrcyA9IGZsYXR0ZW4uY2FsbChzbGljZS5jYWxsKGFyZ3VtZW50cyksIEluZmluaXR5KTtcbiAgICAgIGlmIChjYWxsYmFja3MubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJhcmd1bWVudCBoYW5kbGVyIGlzIHJlcXVpcmVkXCIpO1xuICAgICAgfVxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjYWxsYmFja3MubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgY29uc3QgZm4gPSBjYWxsYmFja3NbaV07XG4gICAgICAgIGlmICh0eXBlb2YgZm4gIT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJhcmd1bWVudCBoYW5kbGVyIG11c3QgYmUgYSBmdW5jdGlvblwiKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBsYXllciA9IExheWVyKFwiL1wiLCB7fSwgZm4pO1xuICAgICAgICBsYXllci5tZXRob2QgPSB2b2lkIDA7XG4gICAgICAgIHRoaXMubWV0aG9kcy5fYWxsID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5zdGFjay5wdXNoKGxheWVyKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0aGlzO1xuICAgIH07XG4gICAgbWV0aG9kcy5mb3JFYWNoKGZ1bmN0aW9uKG1ldGhvZCkge1xuICAgICAgUm91dGUucHJvdG90eXBlW21ldGhvZF0gPSBmdW5jdGlvbihoYW5kbGVyKSB7XG4gICAgICAgIGNvbnN0IGNhbGxiYWNrcyA9IGZsYXR0ZW4uY2FsbChzbGljZS5jYWxsKGFyZ3VtZW50cyksIEluZmluaXR5KTtcbiAgICAgICAgaWYgKGNhbGxiYWNrcy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiYXJndW1lbnQgaGFuZGxlciBpcyByZXF1aXJlZFwiKTtcbiAgICAgICAgfVxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNhbGxiYWNrcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgIGNvbnN0IGZuID0gY2FsbGJhY2tzW2ldO1xuICAgICAgICAgIGlmICh0eXBlb2YgZm4gIT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcImFyZ3VtZW50IGhhbmRsZXIgbXVzdCBiZSBhIGZ1bmN0aW9uXCIpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBkZWJ1ZyhcIiVzICVzXCIsIG1ldGhvZCwgdGhpcy5wYXRoKTtcbiAgICAgICAgICBjb25zdCBsYXllciA9IExheWVyKFwiL1wiLCB7fSwgZm4pO1xuICAgICAgICAgIGxheWVyLm1ldGhvZCA9IG1ldGhvZDtcbiAgICAgICAgICB0aGlzLm1ldGhvZHNbbWV0aG9kXSA9IHRydWU7XG4gICAgICAgICAgdGhpcy5zdGFjay5wdXNoKGxheWVyKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgIH07XG4gICAgfSk7XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvcm91dGVyL2luZGV4LmpzXG52YXIgcmVxdWlyZV9yb3V0ZXIgPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvcm91dGVyL2luZGV4LmpzXCIoZXhwb3J0czIsIG1vZHVsZTIpIHtcbiAgICBcInVzZSBzdHJpY3RcIjtcbiAgICB2YXIgaXNQcm9taXNlID0gcmVxdWlyZV9pc19wcm9taXNlKCk7XG4gICAgdmFyIExheWVyID0gcmVxdWlyZV9sYXllcigpO1xuICAgIHZhciB7IE1FVEhPRFMgfSA9IHJlcXVpcmUoXCJub2RlOmh0dHBcIik7XG4gICAgdmFyIHBhcnNlVXJsID0gcmVxdWlyZV9wYXJzZXVybCgpO1xuICAgIHZhciBSb3V0ZSA9IHJlcXVpcmVfcm91dGUoKTtcbiAgICB2YXIgZGVidWcgPSByZXF1aXJlX3NyYygpKFwicm91dGVyXCIpO1xuICAgIHZhciBkZXByZWNhdGUgPSByZXF1aXJlX2RlcGQoKShcInJvdXRlclwiKTtcbiAgICB2YXIgc2xpY2UgPSBBcnJheS5wcm90b3R5cGUuc2xpY2U7XG4gICAgdmFyIGZsYXR0ZW4gPSBBcnJheS5wcm90b3R5cGUuZmxhdDtcbiAgICB2YXIgbWV0aG9kcyA9IE1FVEhPRFMubWFwKChtZXRob2QpID0+IG1ldGhvZC50b0xvd2VyQ2FzZSgpKTtcbiAgICBtb2R1bGUyLmV4cG9ydHMgPSBSb3V0ZXI7XG4gICAgbW9kdWxlMi5leHBvcnRzLlJvdXRlID0gUm91dGU7XG4gICAgZnVuY3Rpb24gUm91dGVyKG9wdGlvbnMpIHtcbiAgICAgIGlmICghKHRoaXMgaW5zdGFuY2VvZiBSb3V0ZXIpKSB7XG4gICAgICAgIHJldHVybiBuZXcgUm91dGVyKG9wdGlvbnMpO1xuICAgICAgfVxuICAgICAgY29uc3Qgb3B0cyA9IG9wdGlvbnMgfHwge307XG4gICAgICBmdW5jdGlvbiByb3V0ZXIocmVxLCByZXMsIG5leHQpIHtcbiAgICAgICAgcm91dGVyLmhhbmRsZShyZXEsIHJlcywgbmV4dCk7XG4gICAgICB9XG4gICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2Yocm91dGVyLCB0aGlzKTtcbiAgICAgIHJvdXRlci5jYXNlU2Vuc2l0aXZlID0gb3B0cy5jYXNlU2Vuc2l0aXZlO1xuICAgICAgcm91dGVyLm1lcmdlUGFyYW1zID0gb3B0cy5tZXJnZVBhcmFtcztcbiAgICAgIHJvdXRlci5wYXJhbXMgPSB7fTtcbiAgICAgIHJvdXRlci5zdHJpY3QgPSBvcHRzLnN0cmljdDtcbiAgICAgIHJvdXRlci5zdGFjayA9IFtdO1xuICAgICAgcmV0dXJuIHJvdXRlcjtcbiAgICB9XG4gICAgUm91dGVyLnByb3RvdHlwZSA9IGZ1bmN0aW9uKCkge1xuICAgIH07XG4gICAgUm91dGVyLnByb3RvdHlwZS5wYXJhbSA9IGZ1bmN0aW9uIHBhcmFtKG5hbWUsIGZuKSB7XG4gICAgICBpZiAoIW5hbWUpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcImFyZ3VtZW50IG5hbWUgaXMgcmVxdWlyZWRcIik7XG4gICAgICB9XG4gICAgICBpZiAodHlwZW9mIG5hbWUgIT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcImFyZ3VtZW50IG5hbWUgbXVzdCBiZSBhIHN0cmluZ1wiKTtcbiAgICAgIH1cbiAgICAgIGlmICghZm4pIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcImFyZ3VtZW50IGZuIGlzIHJlcXVpcmVkXCIpO1xuICAgICAgfVxuICAgICAgaWYgKHR5cGVvZiBmbiAhPT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJhcmd1bWVudCBmbiBtdXN0IGJlIGEgZnVuY3Rpb25cIik7XG4gICAgICB9XG4gICAgICBsZXQgcGFyYW1zID0gdGhpcy5wYXJhbXNbbmFtZV07XG4gICAgICBpZiAoIXBhcmFtcykge1xuICAgICAgICBwYXJhbXMgPSB0aGlzLnBhcmFtc1tuYW1lXSA9IFtdO1xuICAgICAgfVxuICAgICAgcGFyYW1zLnB1c2goZm4pO1xuICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfTtcbiAgICBSb3V0ZXIucHJvdG90eXBlLmhhbmRsZSA9IGZ1bmN0aW9uIGhhbmRsZShyZXEsIHJlcywgY2FsbGJhY2spIHtcbiAgICAgIGlmICghY2FsbGJhY2spIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcImFyZ3VtZW50IGNhbGxiYWNrIGlzIHJlcXVpcmVkXCIpO1xuICAgICAgfVxuICAgICAgZGVidWcoXCJkaXNwYXRjaGluZyAlcyAlc1wiLCByZXEubWV0aG9kLCByZXEudXJsKTtcbiAgICAgIGxldCBpZHggPSAwO1xuICAgICAgbGV0IG1ldGhvZHMyO1xuICAgICAgY29uc3QgcHJvdG9ob3N0ID0gZ2V0UHJvdG9ob3N0KHJlcS51cmwpIHx8IFwiXCI7XG4gICAgICBsZXQgcmVtb3ZlZCA9IFwiXCI7XG4gICAgICBjb25zdCBzZWxmMiA9IHRoaXM7XG4gICAgICBsZXQgc2xhc2hBZGRlZCA9IGZhbHNlO1xuICAgICAgbGV0IHN5bmMgPSAwO1xuICAgICAgY29uc3QgcGFyYW1jYWxsZWQgPSB7fTtcbiAgICAgIGNvbnN0IHN0YWNrID0gdGhpcy5zdGFjaztcbiAgICAgIGNvbnN0IHBhcmVudFBhcmFtcyA9IHJlcS5wYXJhbXM7XG4gICAgICBjb25zdCBwYXJlbnRVcmwgPSByZXEuYmFzZVVybCB8fCBcIlwiO1xuICAgICAgbGV0IGRvbmUgPSByZXN0b3JlKGNhbGxiYWNrLCByZXEsIFwiYmFzZVVybFwiLCBcIm5leHRcIiwgXCJwYXJhbXNcIik7XG4gICAgICByZXEubmV4dCA9IG5leHQ7XG4gICAgICBpZiAocmVxLm1ldGhvZCA9PT0gXCJPUFRJT05TXCIpIHtcbiAgICAgICAgbWV0aG9kczIgPSBbXTtcbiAgICAgICAgZG9uZSA9IHdyYXAoZG9uZSwgZ2VuZXJhdGVPcHRpb25zUmVzcG9uZGVyKHJlcywgbWV0aG9kczIpKTtcbiAgICAgIH1cbiAgICAgIHJlcS5iYXNlVXJsID0gcGFyZW50VXJsO1xuICAgICAgcmVxLm9yaWdpbmFsVXJsID0gcmVxLm9yaWdpbmFsVXJsIHx8IHJlcS51cmw7XG4gICAgICBuZXh0KCk7XG4gICAgICBmdW5jdGlvbiBuZXh0KGVycjIpIHtcbiAgICAgICAgbGV0IGxheWVyRXJyb3IgPSBlcnIyID09PSBcInJvdXRlXCIgPyBudWxsIDogZXJyMjtcbiAgICAgICAgaWYgKHNsYXNoQWRkZWQpIHtcbiAgICAgICAgICByZXEudXJsID0gcmVxLnVybC5zbGljZSgxKTtcbiAgICAgICAgICBzbGFzaEFkZGVkID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHJlbW92ZWQubGVuZ3RoICE9PSAwKSB7XG4gICAgICAgICAgcmVxLmJhc2VVcmwgPSBwYXJlbnRVcmw7XG4gICAgICAgICAgcmVxLnVybCA9IHByb3RvaG9zdCArIHJlbW92ZWQgKyByZXEudXJsLnNsaWNlKHByb3RvaG9zdC5sZW5ndGgpO1xuICAgICAgICAgIHJlbW92ZWQgPSBcIlwiO1xuICAgICAgICB9XG4gICAgICAgIGlmIChsYXllckVycm9yID09PSBcInJvdXRlclwiKSB7XG4gICAgICAgICAgc2V0SW1tZWRpYXRlKGRvbmUsIG51bGwpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaWR4ID49IHN0YWNrLmxlbmd0aCkge1xuICAgICAgICAgIHNldEltbWVkaWF0ZShkb25lLCBsYXllckVycm9yKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCsrc3luYyA+IDEwMCkge1xuICAgICAgICAgIHJldHVybiBzZXRJbW1lZGlhdGUobmV4dCwgZXJyMik7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcGF0aCA9IGdldFBhdGhuYW1lKHJlcSk7XG4gICAgICAgIGlmIChwYXRoID09IG51bGwpIHtcbiAgICAgICAgICByZXR1cm4gZG9uZShsYXllckVycm9yKTtcbiAgICAgICAgfVxuICAgICAgICBsZXQgbGF5ZXI7XG4gICAgICAgIGxldCBtYXRjaDtcbiAgICAgICAgbGV0IHJvdXRlO1xuICAgICAgICB3aGlsZSAobWF0Y2ggIT09IHRydWUgJiYgaWR4IDwgc3RhY2subGVuZ3RoKSB7XG4gICAgICAgICAgbGF5ZXIgPSBzdGFja1tpZHgrK107XG4gICAgICAgICAgbWF0Y2ggPSBtYXRjaExheWVyKGxheWVyLCBwYXRoKTtcbiAgICAgICAgICByb3V0ZSA9IGxheWVyLnJvdXRlO1xuICAgICAgICAgIGlmICh0eXBlb2YgbWF0Y2ggIT09IFwiYm9vbGVhblwiKSB7XG4gICAgICAgICAgICBsYXllckVycm9yID0gbGF5ZXJFcnJvciB8fCBtYXRjaDtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKG1hdGNoICE9PSB0cnVlKSB7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKCFyb3V0ZSkge1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChsYXllckVycm9yKSB7XG4gICAgICAgICAgICBtYXRjaCA9IGZhbHNlO1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgfVxuICAgICAgICAgIGNvbnN0IG1ldGhvZCA9IHJlcS5tZXRob2Q7XG4gICAgICAgICAgY29uc3QgaGFzTWV0aG9kID0gcm91dGUuX2hhbmRsZXNNZXRob2QobWV0aG9kKTtcbiAgICAgICAgICBpZiAoIWhhc01ldGhvZCAmJiBtZXRob2QgPT09IFwiT1BUSU9OU1wiICYmIG1ldGhvZHMyKSB7XG4gICAgICAgICAgICBtZXRob2RzMi5wdXNoLmFwcGx5KG1ldGhvZHMyLCByb3V0ZS5fbWV0aG9kcygpKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKCFoYXNNZXRob2QgJiYgbWV0aG9kICE9PSBcIkhFQURcIikge1xuICAgICAgICAgICAgbWF0Y2ggPSBmYWxzZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG1hdGNoICE9PSB0cnVlKSB7XG4gICAgICAgICAgcmV0dXJuIGRvbmUobGF5ZXJFcnJvcik7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHJvdXRlKSB7XG4gICAgICAgICAgcmVxLnJvdXRlID0gcm91dGU7XG4gICAgICAgIH1cbiAgICAgICAgcmVxLnBhcmFtcyA9IHNlbGYyLm1lcmdlUGFyYW1zID8gbWVyZ2VQYXJhbXMobGF5ZXIucGFyYW1zLCBwYXJlbnRQYXJhbXMpIDogbGF5ZXIucGFyYW1zO1xuICAgICAgICBjb25zdCBsYXllclBhdGggPSBsYXllci5wYXRoO1xuICAgICAgICBwcm9jZXNzUGFyYW1zKHNlbGYyLnBhcmFtcywgbGF5ZXIsIHBhcmFtY2FsbGVkLCByZXEsIHJlcywgZnVuY3Rpb24oZXJyMykge1xuICAgICAgICAgIGlmIChlcnIzKSB7XG4gICAgICAgICAgICBuZXh0KGxheWVyRXJyb3IgfHwgZXJyMyk7XG4gICAgICAgICAgfSBlbHNlIGlmIChyb3V0ZSkge1xuICAgICAgICAgICAgbGF5ZXIuaGFuZGxlUmVxdWVzdChyZXEsIHJlcywgbmV4dCk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRyaW1QcmVmaXgobGF5ZXIsIGxheWVyRXJyb3IsIGxheWVyUGF0aCwgcGF0aCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHN5bmMgPSAwO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIGZ1bmN0aW9uIHRyaW1QcmVmaXgobGF5ZXIsIGxheWVyRXJyb3IsIGxheWVyUGF0aCwgcGF0aCkge1xuICAgICAgICBpZiAobGF5ZXJQYXRoLmxlbmd0aCAhPT0gMCkge1xuICAgICAgICAgIGlmIChsYXllclBhdGggIT09IHBhdGguc3Vic3RyaW5nKDAsIGxheWVyUGF0aC5sZW5ndGgpKSB7XG4gICAgICAgICAgICBuZXh0KGxheWVyRXJyb3IpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cbiAgICAgICAgICBjb25zdCBjID0gcGF0aFtsYXllclBhdGgubGVuZ3RoXTtcbiAgICAgICAgICBpZiAoYyAmJiBjICE9PSBcIi9cIikge1xuICAgICAgICAgICAgbmV4dChsYXllckVycm9yKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG4gICAgICAgICAgZGVidWcoXCJ0cmltIHByZWZpeCAoJXMpIGZyb20gdXJsICVzXCIsIGxheWVyUGF0aCwgcmVxLnVybCk7XG4gICAgICAgICAgcmVtb3ZlZCA9IGxheWVyUGF0aDtcbiAgICAgICAgICByZXEudXJsID0gcHJvdG9ob3N0ICsgcmVxLnVybC5zbGljZShwcm90b2hvc3QubGVuZ3RoICsgcmVtb3ZlZC5sZW5ndGgpO1xuICAgICAgICAgIGlmICghcHJvdG9ob3N0ICYmIHJlcS51cmxbMF0gIT09IFwiL1wiKSB7XG4gICAgICAgICAgICByZXEudXJsID0gXCIvXCIgKyByZXEudXJsO1xuICAgICAgICAgICAgc2xhc2hBZGRlZCA9IHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJlcS5iYXNlVXJsID0gcGFyZW50VXJsICsgKHJlbW92ZWRbcmVtb3ZlZC5sZW5ndGggLSAxXSA9PT0gXCIvXCIgPyByZW1vdmVkLnN1YnN0cmluZygwLCByZW1vdmVkLmxlbmd0aCAtIDEpIDogcmVtb3ZlZCk7XG4gICAgICAgIH1cbiAgICAgICAgZGVidWcoXCIlcyAlcyA6ICVzXCIsIGxheWVyLm5hbWUsIGxheWVyUGF0aCwgcmVxLm9yaWdpbmFsVXJsKTtcbiAgICAgICAgaWYgKGxheWVyRXJyb3IpIHtcbiAgICAgICAgICBsYXllci5oYW5kbGVFcnJvcihsYXllckVycm9yLCByZXEsIHJlcywgbmV4dCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgbGF5ZXIuaGFuZGxlUmVxdWVzdChyZXEsIHJlcywgbmV4dCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9O1xuICAgIFJvdXRlci5wcm90b3R5cGUudXNlID0gZnVuY3Rpb24gdXNlKGhhbmRsZXIpIHtcbiAgICAgIGxldCBvZmZzZXQgPSAwO1xuICAgICAgbGV0IHBhdGggPSBcIi9cIjtcbiAgICAgIGlmICh0eXBlb2YgaGFuZGxlciAhPT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgIGxldCBhcmcgPSBoYW5kbGVyO1xuICAgICAgICB3aGlsZSAoQXJyYXkuaXNBcnJheShhcmcpICYmIGFyZy5sZW5ndGggIT09IDApIHtcbiAgICAgICAgICBhcmcgPSBhcmdbMF07XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHR5cGVvZiBhcmcgIT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICAgIG9mZnNldCA9IDE7XG4gICAgICAgICAgcGF0aCA9IGhhbmRsZXI7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGNvbnN0IGNhbGxiYWNrcyA9IGZsYXR0ZW4uY2FsbChzbGljZS5jYWxsKGFyZ3VtZW50cywgb2Zmc2V0KSwgSW5maW5pdHkpO1xuICAgICAgaWYgKGNhbGxiYWNrcy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcImFyZ3VtZW50IGhhbmRsZXIgaXMgcmVxdWlyZWRcIik7XG4gICAgICB9XG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNhbGxiYWNrcy5sZW5ndGg7IGkrKykge1xuICAgICAgICBjb25zdCBmbiA9IGNhbGxiYWNrc1tpXTtcbiAgICAgICAgaWYgKHR5cGVvZiBmbiAhPT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcImFyZ3VtZW50IGhhbmRsZXIgbXVzdCBiZSBhIGZ1bmN0aW9uXCIpO1xuICAgICAgICB9XG4gICAgICAgIGRlYnVnKFwidXNlICVvICVzXCIsIHBhdGgsIGZuLm5hbWUgfHwgXCI8YW5vbnltb3VzPlwiKTtcbiAgICAgICAgY29uc3QgbGF5ZXIgPSBuZXcgTGF5ZXIocGF0aCwge1xuICAgICAgICAgIHNlbnNpdGl2ZTogdGhpcy5jYXNlU2Vuc2l0aXZlLFxuICAgICAgICAgIHN0cmljdDogZmFsc2UsXG4gICAgICAgICAgZW5kOiBmYWxzZVxuICAgICAgICB9LCBmbik7XG4gICAgICAgIGxheWVyLnJvdXRlID0gdm9pZCAwO1xuICAgICAgICB0aGlzLnN0YWNrLnB1c2gobGF5ZXIpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfTtcbiAgICBSb3V0ZXIucHJvdG90eXBlLnJvdXRlID0gZnVuY3Rpb24gcm91dGUocGF0aCkge1xuICAgICAgY29uc3Qgcm91dGUyID0gbmV3IFJvdXRlKHBhdGgpO1xuICAgICAgY29uc3QgbGF5ZXIgPSBuZXcgTGF5ZXIocGF0aCwge1xuICAgICAgICBzZW5zaXRpdmU6IHRoaXMuY2FzZVNlbnNpdGl2ZSxcbiAgICAgICAgc3RyaWN0OiB0aGlzLnN0cmljdCxcbiAgICAgICAgZW5kOiB0cnVlXG4gICAgICB9LCBoYW5kbGUpO1xuICAgICAgZnVuY3Rpb24gaGFuZGxlKHJlcSwgcmVzLCBuZXh0KSB7XG4gICAgICAgIHJvdXRlMi5kaXNwYXRjaChyZXEsIHJlcywgbmV4dCk7XG4gICAgICB9XG4gICAgICBsYXllci5yb3V0ZSA9IHJvdXRlMjtcbiAgICAgIHRoaXMuc3RhY2sucHVzaChsYXllcik7XG4gICAgICByZXR1cm4gcm91dGUyO1xuICAgIH07XG4gICAgbWV0aG9kcy5jb25jYXQoXCJhbGxcIikuZm9yRWFjaChmdW5jdGlvbihtZXRob2QpIHtcbiAgICAgIFJvdXRlci5wcm90b3R5cGVbbWV0aG9kXSA9IGZ1bmN0aW9uKHBhdGgpIHtcbiAgICAgICAgY29uc3Qgcm91dGUgPSB0aGlzLnJvdXRlKHBhdGgpO1xuICAgICAgICByb3V0ZVttZXRob2RdLmFwcGx5KHJvdXRlLCBzbGljZS5jYWxsKGFyZ3VtZW50cywgMSkpO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgIH07XG4gICAgfSk7XG4gICAgZnVuY3Rpb24gZ2VuZXJhdGVPcHRpb25zUmVzcG9uZGVyKHJlcywgbWV0aG9kczIpIHtcbiAgICAgIHJldHVybiBmdW5jdGlvbiBvbkRvbmUoZm4sIGVycjIpIHtcbiAgICAgICAgaWYgKGVycjIgfHwgbWV0aG9kczIubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgcmV0dXJuIGZuKGVycjIpO1xuICAgICAgICB9XG4gICAgICAgIHRyeVNlbmRPcHRpb25zUmVzcG9uc2UocmVzLCBtZXRob2RzMiwgZm4pO1xuICAgICAgfTtcbiAgICB9XG4gICAgZnVuY3Rpb24gZ2V0UGF0aG5hbWUocmVxKSB7XG4gICAgICB0cnkge1xuICAgICAgICByZXR1cm4gcGFyc2VVcmwocmVxKS5wYXRobmFtZTtcbiAgICAgIH0gY2F0Y2ggKGVycjIpIHtcbiAgICAgICAgcmV0dXJuIHZvaWQgMDtcbiAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gZ2V0UHJvdG9ob3N0KHVybCkge1xuICAgICAgaWYgKHR5cGVvZiB1cmwgIT09IFwic3RyaW5nXCIgfHwgdXJsLmxlbmd0aCA9PT0gMCB8fCB1cmxbMF0gPT09IFwiL1wiKSB7XG4gICAgICAgIHJldHVybiB2b2lkIDA7XG4gICAgICB9XG4gICAgICBjb25zdCBzZWFyY2hJbmRleCA9IHVybC5pbmRleE9mKFwiP1wiKTtcbiAgICAgIGNvbnN0IHBhdGhMZW5ndGggPSBzZWFyY2hJbmRleCAhPT0gLTEgPyBzZWFyY2hJbmRleCA6IHVybC5sZW5ndGg7XG4gICAgICBjb25zdCBmcWRuSW5kZXggPSB1cmwuc3Vic3RyaW5nKDAsIHBhdGhMZW5ndGgpLmluZGV4T2YoXCI6Ly9cIik7XG4gICAgICByZXR1cm4gZnFkbkluZGV4ICE9PSAtMSA/IHVybC5zdWJzdHJpbmcoMCwgdXJsLmluZGV4T2YoXCIvXCIsIDMgKyBmcWRuSW5kZXgpKSA6IHZvaWQgMDtcbiAgICB9XG4gICAgZnVuY3Rpb24gbWF0Y2hMYXllcihsYXllciwgcGF0aCkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgcmV0dXJuIGxheWVyLm1hdGNoKHBhdGgpO1xuICAgICAgfSBjYXRjaCAoZXJyMikge1xuICAgICAgICByZXR1cm4gZXJyMjtcbiAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gbWVyZ2VQYXJhbXMocGFyYW1zLCBwYXJlbnQpIHtcbiAgICAgIGlmICh0eXBlb2YgcGFyZW50ICE9PSBcIm9iamVjdFwiIHx8ICFwYXJlbnQpIHtcbiAgICAgICAgcmV0dXJuIHBhcmFtcztcbiAgICAgIH1cbiAgICAgIGNvbnN0IG9iaiA9IE9iamVjdC5hc3NpZ24oe30sIHBhcmVudCk7XG4gICAgICBpZiAoISgwIGluIHBhcmFtcykgfHwgISgwIGluIHBhcmVudCkpIHtcbiAgICAgICAgcmV0dXJuIE9iamVjdC5hc3NpZ24ob2JqLCBwYXJhbXMpO1xuICAgICAgfVxuICAgICAgbGV0IGkgPSAwO1xuICAgICAgbGV0IG8gPSAwO1xuICAgICAgd2hpbGUgKGkgaW4gcGFyYW1zKSB7XG4gICAgICAgIGkrKztcbiAgICAgIH1cbiAgICAgIHdoaWxlIChvIGluIHBhcmVudCkge1xuICAgICAgICBvKys7XG4gICAgICB9XG4gICAgICBmb3IgKGktLTsgaSA+PSAwOyBpLS0pIHtcbiAgICAgICAgcGFyYW1zW2kgKyBvXSA9IHBhcmFtc1tpXTtcbiAgICAgICAgaWYgKGkgPCBvKSB7XG4gICAgICAgICAgZGVsZXRlIHBhcmFtc1tpXTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIE9iamVjdC5hc3NpZ24ob2JqLCBwYXJhbXMpO1xuICAgIH1cbiAgICBmdW5jdGlvbiBwcm9jZXNzUGFyYW1zKHBhcmFtcywgbGF5ZXIsIGNhbGxlZCwgcmVxLCByZXMsIGRvbmUpIHtcbiAgICAgIGNvbnN0IGtleXMgPSBsYXllci5rZXlzO1xuICAgICAgaWYgKCFrZXlzIHx8IGtleXMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHJldHVybiBkb25lKCk7XG4gICAgICB9XG4gICAgICBsZXQgaSA9IDA7XG4gICAgICBsZXQgcGFyYW1JbmRleCA9IDA7XG4gICAgICBsZXQga2V5O1xuICAgICAgbGV0IHBhcmFtVmFsO1xuICAgICAgbGV0IHBhcmFtQ2FsbGJhY2tzO1xuICAgICAgbGV0IHBhcmFtQ2FsbGVkO1xuICAgICAgZnVuY3Rpb24gcGFyYW0oZXJyMikge1xuICAgICAgICBpZiAoZXJyMikge1xuICAgICAgICAgIHJldHVybiBkb25lKGVycjIpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChpID49IGtleXMubGVuZ3RoKSB7XG4gICAgICAgICAgcmV0dXJuIGRvbmUoKTtcbiAgICAgICAgfVxuICAgICAgICBwYXJhbUluZGV4ID0gMDtcbiAgICAgICAga2V5ID0ga2V5c1tpKytdO1xuICAgICAgICBwYXJhbVZhbCA9IHJlcS5wYXJhbXNba2V5XTtcbiAgICAgICAgcGFyYW1DYWxsYmFja3MgPSBwYXJhbXNba2V5XTtcbiAgICAgICAgcGFyYW1DYWxsZWQgPSBjYWxsZWRba2V5XTtcbiAgICAgICAgaWYgKHBhcmFtVmFsID09PSB2b2lkIDAgfHwgIXBhcmFtQ2FsbGJhY2tzKSB7XG4gICAgICAgICAgcmV0dXJuIHBhcmFtKCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHBhcmFtQ2FsbGVkICYmIChwYXJhbUNhbGxlZC5tYXRjaCA9PT0gcGFyYW1WYWwgfHwgcGFyYW1DYWxsZWQuZXJyb3IgJiYgcGFyYW1DYWxsZWQuZXJyb3IgIT09IFwicm91dGVcIikpIHtcbiAgICAgICAgICByZXEucGFyYW1zW2tleV0gPSBwYXJhbUNhbGxlZC52YWx1ZTtcbiAgICAgICAgICByZXR1cm4gcGFyYW0ocGFyYW1DYWxsZWQuZXJyb3IpO1xuICAgICAgICB9XG4gICAgICAgIGNhbGxlZFtrZXldID0gcGFyYW1DYWxsZWQgPSB7XG4gICAgICAgICAgZXJyb3I6IG51bGwsXG4gICAgICAgICAgbWF0Y2g6IHBhcmFtVmFsLFxuICAgICAgICAgIHZhbHVlOiBwYXJhbVZhbFxuICAgICAgICB9O1xuICAgICAgICBwYXJhbUNhbGxiYWNrKCk7XG4gICAgICB9XG4gICAgICBmdW5jdGlvbiBwYXJhbUNhbGxiYWNrKGVycjIpIHtcbiAgICAgICAgY29uc3QgZm4gPSBwYXJhbUNhbGxiYWNrc1twYXJhbUluZGV4KytdO1xuICAgICAgICBwYXJhbUNhbGxlZC52YWx1ZSA9IHJlcS5wYXJhbXNba2V5XTtcbiAgICAgICAgaWYgKGVycjIpIHtcbiAgICAgICAgICBwYXJhbUNhbGxlZC5lcnJvciA9IGVycjI7XG4gICAgICAgICAgcGFyYW0oZXJyMik7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmICghZm4pIHJldHVybiBwYXJhbSgpO1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGNvbnN0IHJldCA9IGZuKHJlcSwgcmVzLCBwYXJhbUNhbGxiYWNrLCBwYXJhbVZhbCwga2V5KTtcbiAgICAgICAgICBpZiAoaXNQcm9taXNlKHJldCkpIHtcbiAgICAgICAgICAgIGlmICghKHJldCBpbnN0YW5jZW9mIFByb21pc2UpKSB7XG4gICAgICAgICAgICAgIGRlcHJlY2F0ZShcInBhcmFtZXRlcnMgdGhhdCBhcmUgUHJvbWlzZS1saWtlIGFyZSBkZXByZWNhdGVkLCB1c2UgYSBuYXRpdmUgUHJvbWlzZSBpbnN0ZWFkXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0LnRoZW4obnVsbCwgZnVuY3Rpb24oZXJyb3IpIHtcbiAgICAgICAgICAgICAgcGFyYW1DYWxsYmFjayhlcnJvciB8fCBuZXcgRXJyb3IoXCJSZWplY3RlZCBwcm9taXNlXCIpKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgIHBhcmFtQ2FsbGJhY2soZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHBhcmFtKCk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHJlc3RvcmUoZm4sIG9iaikge1xuICAgICAgY29uc3QgcHJvcHMgPSBuZXcgQXJyYXkoYXJndW1lbnRzLmxlbmd0aCAtIDIpO1xuICAgICAgY29uc3QgdmFscyA9IG5ldyBBcnJheShhcmd1bWVudHMubGVuZ3RoIC0gMik7XG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHByb3BzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIHByb3BzW2ldID0gYXJndW1lbnRzW2kgKyAyXTtcbiAgICAgICAgdmFsc1tpXSA9IG9ialtwcm9wc1tpXV07XG4gICAgICB9XG4gICAgICByZXR1cm4gZnVuY3Rpb24oKSB7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcHJvcHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICBvYmpbcHJvcHNbaV1dID0gdmFsc1tpXTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZm4uYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgICAgIH07XG4gICAgfVxuICAgIGZ1bmN0aW9uIHNlbmRPcHRpb25zUmVzcG9uc2UocmVzLCBtZXRob2RzMikge1xuICAgICAgY29uc3Qgb3B0aW9ucyA9IC8qIEBfX1BVUkVfXyAqLyBPYmplY3QuY3JlYXRlKG51bGwpO1xuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBtZXRob2RzMi5sZW5ndGg7IGkrKykge1xuICAgICAgICBvcHRpb25zW21ldGhvZHMyW2ldXSA9IHRydWU7XG4gICAgICB9XG4gICAgICBjb25zdCBhbGxvdyA9IE9iamVjdC5rZXlzKG9wdGlvbnMpLnNvcnQoKS5qb2luKFwiLCBcIik7XG4gICAgICByZXMuc2V0SGVhZGVyKFwiQWxsb3dcIiwgYWxsb3cpO1xuICAgICAgcmVzLnNldEhlYWRlcihcIkNvbnRlbnQtTGVuZ3RoXCIsIEJ1ZmZlci5ieXRlTGVuZ3RoKGFsbG93KSk7XG4gICAgICByZXMuc2V0SGVhZGVyKFwiQ29udGVudC1UeXBlXCIsIFwidGV4dC9wbGFpblwiKTtcbiAgICAgIHJlcy5zZXRIZWFkZXIoXCJYLUNvbnRlbnQtVHlwZS1PcHRpb25zXCIsIFwibm9zbmlmZlwiKTtcbiAgICAgIHJlcy5lbmQoYWxsb3cpO1xuICAgIH1cbiAgICBmdW5jdGlvbiB0cnlTZW5kT3B0aW9uc1Jlc3BvbnNlKHJlcywgbWV0aG9kczIsIG5leHQpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHNlbmRPcHRpb25zUmVzcG9uc2UocmVzLCBtZXRob2RzMik7XG4gICAgICB9IGNhdGNoIChlcnIyKSB7XG4gICAgICAgIG5leHQoZXJyMik7XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIHdyYXAob2xkLCBmbikge1xuICAgICAgcmV0dXJuIGZ1bmN0aW9uIHByb3h5KCkge1xuICAgICAgICBjb25zdCBhcmdzID0gbmV3IEFycmF5KGFyZ3VtZW50cy5sZW5ndGggKyAxKTtcbiAgICAgICAgYXJnc1swXSA9IG9sZDtcbiAgICAgICAgZm9yIChsZXQgaSA9IDAsIGxlbiA9IGFyZ3VtZW50cy5sZW5ndGg7IGkgPCBsZW47IGkrKykge1xuICAgICAgICAgIGFyZ3NbaSArIDFdID0gYXJndW1lbnRzW2ldO1xuICAgICAgICB9XG4gICAgICAgIGZuLmFwcGx5KHRoaXMsIGFyZ3MpO1xuICAgICAgfTtcbiAgICB9XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvZXhwcmVzcy9saWIvYXBwbGljYXRpb24uanNcbnZhciByZXF1aXJlX2FwcGxpY2F0aW9uID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL2V4cHJlc3MvbGliL2FwcGxpY2F0aW9uLmpzXCIoZXhwb3J0czIsIG1vZHVsZTIpIHtcbiAgICBcInVzZSBzdHJpY3RcIjtcbiAgICB2YXIgZmluYWxoYW5kbGVyID0gcmVxdWlyZV9maW5hbGhhbmRsZXIoKTtcbiAgICB2YXIgZGVidWcgPSByZXF1aXJlX3NyYygpKFwiZXhwcmVzczphcHBsaWNhdGlvblwiKTtcbiAgICB2YXIgVmlldyA9IHJlcXVpcmVfdmlldygpO1xuICAgIHZhciBodHRwID0gcmVxdWlyZShcIm5vZGU6aHR0cFwiKTtcbiAgICB2YXIgbWV0aG9kcyA9IHJlcXVpcmVfdXRpbHMzKCkubWV0aG9kcztcbiAgICB2YXIgY29tcGlsZUVUYWcgPSByZXF1aXJlX3V0aWxzMygpLmNvbXBpbGVFVGFnO1xuICAgIHZhciBjb21waWxlUXVlcnlQYXJzZXIgPSByZXF1aXJlX3V0aWxzMygpLmNvbXBpbGVRdWVyeVBhcnNlcjtcbiAgICB2YXIgY29tcGlsZVRydXN0ID0gcmVxdWlyZV91dGlsczMoKS5jb21waWxlVHJ1c3Q7XG4gICAgdmFyIHJlc29sdmUgPSByZXF1aXJlKFwibm9kZTpwYXRoXCIpLnJlc29sdmU7XG4gICAgdmFyIG9uY2UgPSByZXF1aXJlX29uY2UoKTtcbiAgICB2YXIgUm91dGVyID0gcmVxdWlyZV9yb3V0ZXIoKTtcbiAgICB2YXIgc2xpY2UgPSBBcnJheS5wcm90b3R5cGUuc2xpY2U7XG4gICAgdmFyIGZsYXR0ZW4gPSBBcnJheS5wcm90b3R5cGUuZmxhdDtcbiAgICB2YXIgYXBwID0gZXhwb3J0czIgPSBtb2R1bGUyLmV4cG9ydHMgPSB7fTtcbiAgICB2YXIgdHJ1c3RQcm94eURlZmF1bHRTeW1ib2wgPSBcIkBAc3ltYm9sOnRydXN0X3Byb3h5X2RlZmF1bHRcIjtcbiAgICBhcHAuaW5pdCA9IGZ1bmN0aW9uIGluaXQoKSB7XG4gICAgICB2YXIgcm91dGVyID0gbnVsbDtcbiAgICAgIHRoaXMuY2FjaGUgPSAvKiBAX19QVVJFX18gKi8gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgICAgIHRoaXMuZW5naW5lcyA9IC8qIEBfX1BVUkVfXyAqLyBPYmplY3QuY3JlYXRlKG51bGwpO1xuICAgICAgdGhpcy5zZXR0aW5ncyA9IC8qIEBfX1BVUkVfXyAqLyBPYmplY3QuY3JlYXRlKG51bGwpO1xuICAgICAgdGhpcy5kZWZhdWx0Q29uZmlndXJhdGlvbigpO1xuICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsIFwicm91dGVyXCIsIHtcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBnZXQ6IGZ1bmN0aW9uIGdldHJvdXRlcigpIHtcbiAgICAgICAgICBpZiAocm91dGVyID09PSBudWxsKSB7XG4gICAgICAgICAgICByb3V0ZXIgPSBuZXcgUm91dGVyKHtcbiAgICAgICAgICAgICAgY2FzZVNlbnNpdGl2ZTogdGhpcy5lbmFibGVkKFwiY2FzZSBzZW5zaXRpdmUgcm91dGluZ1wiKSxcbiAgICAgICAgICAgICAgc3RyaWN0OiB0aGlzLmVuYWJsZWQoXCJzdHJpY3Qgcm91dGluZ1wiKVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiByb3V0ZXI7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH07XG4gICAgYXBwLmRlZmF1bHRDb25maWd1cmF0aW9uID0gZnVuY3Rpb24gZGVmYXVsdENvbmZpZ3VyYXRpb24oKSB7XG4gICAgICB2YXIgZW52ID0gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgfHwgXCJkZXZlbG9wbWVudFwiO1xuICAgICAgdGhpcy5lbmFibGUoXCJ4LXBvd2VyZWQtYnlcIik7XG4gICAgICB0aGlzLnNldChcImV0YWdcIiwgXCJ3ZWFrXCIpO1xuICAgICAgdGhpcy5zZXQoXCJlbnZcIiwgZW52KTtcbiAgICAgIHRoaXMuc2V0KFwicXVlcnkgcGFyc2VyXCIsIFwic2ltcGxlXCIpO1xuICAgICAgdGhpcy5zZXQoXCJzdWJkb21haW4gb2Zmc2V0XCIsIDIpO1xuICAgICAgdGhpcy5zZXQoXCJ0cnVzdCBwcm94eVwiLCBmYWxzZSk7XG4gICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcy5zZXR0aW5ncywgdHJ1c3RQcm94eURlZmF1bHRTeW1ib2wsIHtcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgICAgICB2YWx1ZTogdHJ1ZVxuICAgICAgfSk7XG4gICAgICBkZWJ1ZyhcImJvb3RpbmcgaW4gJXMgbW9kZVwiLCBlbnYpO1xuICAgICAgdGhpcy5vbihcIm1vdW50XCIsIGZ1bmN0aW9uIG9ubW91bnQocGFyZW50KSB7XG4gICAgICAgIGlmICh0aGlzLnNldHRpbmdzW3RydXN0UHJveHlEZWZhdWx0U3ltYm9sXSA9PT0gdHJ1ZSAmJiB0eXBlb2YgcGFyZW50LnNldHRpbmdzW1widHJ1c3QgcHJveHkgZm5cIl0gPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICAgIGRlbGV0ZSB0aGlzLnNldHRpbmdzW1widHJ1c3QgcHJveHlcIl07XG4gICAgICAgICAgZGVsZXRlIHRoaXMuc2V0dGluZ3NbXCJ0cnVzdCBwcm94eSBmblwiXTtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcy5yZXF1ZXN0LCBwYXJlbnQucmVxdWVzdCk7XG4gICAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLnJlc3BvbnNlLCBwYXJlbnQucmVzcG9uc2UpO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcy5lbmdpbmVzLCBwYXJlbnQuZW5naW5lcyk7XG4gICAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLnNldHRpbmdzLCBwYXJlbnQuc2V0dGluZ3MpO1xuICAgICAgfSk7XG4gICAgICB0aGlzLmxvY2FscyA9IC8qIEBfX1BVUkVfXyAqLyBPYmplY3QuY3JlYXRlKG51bGwpO1xuICAgICAgdGhpcy5tb3VudHBhdGggPSBcIi9cIjtcbiAgICAgIHRoaXMubG9jYWxzLnNldHRpbmdzID0gdGhpcy5zZXR0aW5ncztcbiAgICAgIHRoaXMuc2V0KFwidmlld1wiLCBWaWV3KTtcbiAgICAgIHRoaXMuc2V0KFwidmlld3NcIiwgcmVzb2x2ZShcInZpZXdzXCIpKTtcbiAgICAgIHRoaXMuc2V0KFwianNvbnAgY2FsbGJhY2sgbmFtZVwiLCBcImNhbGxiYWNrXCIpO1xuICAgICAgaWYgKGVudiA9PT0gXCJwcm9kdWN0aW9uXCIpIHtcbiAgICAgICAgdGhpcy5lbmFibGUoXCJ2aWV3IGNhY2hlXCIpO1xuICAgICAgfVxuICAgIH07XG4gICAgYXBwLmhhbmRsZSA9IGZ1bmN0aW9uIGhhbmRsZShyZXEsIHJlcywgY2FsbGJhY2spIHtcbiAgICAgIHZhciBkb25lID0gY2FsbGJhY2sgfHwgZmluYWxoYW5kbGVyKHJlcSwgcmVzLCB7XG4gICAgICAgIGVudjogdGhpcy5nZXQoXCJlbnZcIiksXG4gICAgICAgIG9uZXJyb3I6IGxvZ2Vycm9yLmJpbmQodGhpcylcbiAgICAgIH0pO1xuICAgICAgaWYgKHRoaXMuZW5hYmxlZChcIngtcG93ZXJlZC1ieVwiKSkge1xuICAgICAgICByZXMuc2V0SGVhZGVyKFwiWC1Qb3dlcmVkLUJ5XCIsIFwiRXhwcmVzc1wiKTtcbiAgICAgIH1cbiAgICAgIHJlcS5yZXMgPSByZXM7XG4gICAgICByZXMucmVxID0gcmVxO1xuICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHJlcSwgdGhpcy5yZXF1ZXN0KTtcbiAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZihyZXMsIHRoaXMucmVzcG9uc2UpO1xuICAgICAgaWYgKCFyZXMubG9jYWxzKSB7XG4gICAgICAgIHJlcy5sb2NhbHMgPSAvKiBAX19QVVJFX18gKi8gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgICAgIH1cbiAgICAgIHRoaXMucm91dGVyLmhhbmRsZShyZXEsIHJlcywgZG9uZSk7XG4gICAgfTtcbiAgICBhcHAudXNlID0gZnVuY3Rpb24gdXNlKGZuKSB7XG4gICAgICB2YXIgb2Zmc2V0ID0gMDtcbiAgICAgIHZhciBwYXRoID0gXCIvXCI7XG4gICAgICBpZiAodHlwZW9mIGZuICE9PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgdmFyIGFyZyA9IGZuO1xuICAgICAgICB3aGlsZSAoQXJyYXkuaXNBcnJheShhcmcpICYmIGFyZy5sZW5ndGggIT09IDApIHtcbiAgICAgICAgICBhcmcgPSBhcmdbMF07XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHR5cGVvZiBhcmcgIT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICAgIG9mZnNldCA9IDE7XG4gICAgICAgICAgcGF0aCA9IGZuO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICB2YXIgZm5zID0gZmxhdHRlbi5jYWxsKHNsaWNlLmNhbGwoYXJndW1lbnRzLCBvZmZzZXQpLCBJbmZpbml0eSk7XG4gICAgICBpZiAoZm5zLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiYXBwLnVzZSgpIHJlcXVpcmVzIGEgbWlkZGxld2FyZSBmdW5jdGlvblwiKTtcbiAgICAgIH1cbiAgICAgIHZhciByb3V0ZXIgPSB0aGlzLnJvdXRlcjtcbiAgICAgIGZucy5mb3JFYWNoKGZ1bmN0aW9uKGZuMikge1xuICAgICAgICBpZiAoIWZuMiB8fCAhZm4yLmhhbmRsZSB8fCAhZm4yLnNldCkge1xuICAgICAgICAgIHJldHVybiByb3V0ZXIudXNlKHBhdGgsIGZuMik7XG4gICAgICAgIH1cbiAgICAgICAgZGVidWcoXCIudXNlIGFwcCB1bmRlciAlc1wiLCBwYXRoKTtcbiAgICAgICAgZm4yLm1vdW50cGF0aCA9IHBhdGg7XG4gICAgICAgIGZuMi5wYXJlbnQgPSB0aGlzO1xuICAgICAgICByb3V0ZXIudXNlKHBhdGgsIGZ1bmN0aW9uIG1vdW50ZWRfYXBwKHJlcSwgcmVzLCBuZXh0KSB7XG4gICAgICAgICAgdmFyIG9yaWcgPSByZXEuYXBwO1xuICAgICAgICAgIGZuMi5oYW5kbGUocmVxLCByZXMsIGZ1bmN0aW9uKGVycjIpIHtcbiAgICAgICAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZihyZXEsIG9yaWcucmVxdWVzdCk7XG4gICAgICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YocmVzLCBvcmlnLnJlc3BvbnNlKTtcbiAgICAgICAgICAgIG5leHQoZXJyMik7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgICAgICBmbjIuZW1pdChcIm1vdW50XCIsIHRoaXMpO1xuICAgICAgfSwgdGhpcyk7XG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9O1xuICAgIGFwcC5yb3V0ZSA9IGZ1bmN0aW9uIHJvdXRlKHBhdGgpIHtcbiAgICAgIHJldHVybiB0aGlzLnJvdXRlci5yb3V0ZShwYXRoKTtcbiAgICB9O1xuICAgIGFwcC5lbmdpbmUgPSBmdW5jdGlvbiBlbmdpbmUoZXh0LCBmbikge1xuICAgICAgaWYgKHR5cGVvZiBmbiAhPT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcImNhbGxiYWNrIGZ1bmN0aW9uIHJlcXVpcmVkXCIpO1xuICAgICAgfVxuICAgICAgdmFyIGV4dGVuc2lvbiA9IGV4dFswXSAhPT0gXCIuXCIgPyBcIi5cIiArIGV4dCA6IGV4dDtcbiAgICAgIHRoaXMuZW5naW5lc1tleHRlbnNpb25dID0gZm47XG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9O1xuICAgIGFwcC5wYXJhbSA9IGZ1bmN0aW9uIHBhcmFtKG5hbWUsIGZuKSB7XG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShuYW1lKSkge1xuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IG5hbWUubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICB0aGlzLnBhcmFtKG5hbWVbaV0sIGZuKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgIH1cbiAgICAgIHRoaXMucm91dGVyLnBhcmFtKG5hbWUsIGZuKTtcbiAgICAgIHJldHVybiB0aGlzO1xuICAgIH07XG4gICAgYXBwLnNldCA9IGZ1bmN0aW9uIHNldChzZXR0aW5nLCB2YWwpIHtcbiAgICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAxKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnNldHRpbmdzW3NldHRpbmddO1xuICAgICAgfVxuICAgICAgZGVidWcoJ3NldCBcIiVzXCIgdG8gJW8nLCBzZXR0aW5nLCB2YWwpO1xuICAgICAgdGhpcy5zZXR0aW5nc1tzZXR0aW5nXSA9IHZhbDtcbiAgICAgIHN3aXRjaCAoc2V0dGluZykge1xuICAgICAgICBjYXNlIFwiZXRhZ1wiOlxuICAgICAgICAgIHRoaXMuc2V0KFwiZXRhZyBmblwiLCBjb21waWxlRVRhZyh2YWwpKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBcInF1ZXJ5IHBhcnNlclwiOlxuICAgICAgICAgIHRoaXMuc2V0KFwicXVlcnkgcGFyc2VyIGZuXCIsIGNvbXBpbGVRdWVyeVBhcnNlcih2YWwpKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBcInRydXN0IHByb3h5XCI6XG4gICAgICAgICAgdGhpcy5zZXQoXCJ0cnVzdCBwcm94eSBmblwiLCBjb21waWxlVHJ1c3QodmFsKSk7XG4gICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMuc2V0dGluZ3MsIHRydXN0UHJveHlEZWZhdWx0U3ltYm9sLCB7XG4gICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgICAgICAgICB2YWx1ZTogZmFsc2VcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIHJldHVybiB0aGlzO1xuICAgIH07XG4gICAgYXBwLnBhdGggPSBmdW5jdGlvbiBwYXRoKCkge1xuICAgICAgcmV0dXJuIHRoaXMucGFyZW50ID8gdGhpcy5wYXJlbnQucGF0aCgpICsgdGhpcy5tb3VudHBhdGggOiBcIlwiO1xuICAgIH07XG4gICAgYXBwLmVuYWJsZWQgPSBmdW5jdGlvbiBlbmFibGVkKHNldHRpbmcpIHtcbiAgICAgIHJldHVybiBCb29sZWFuKHRoaXMuc2V0KHNldHRpbmcpKTtcbiAgICB9O1xuICAgIGFwcC5kaXNhYmxlZCA9IGZ1bmN0aW9uIGRpc2FibGVkKHNldHRpbmcpIHtcbiAgICAgIHJldHVybiAhdGhpcy5zZXQoc2V0dGluZyk7XG4gICAgfTtcbiAgICBhcHAuZW5hYmxlID0gZnVuY3Rpb24gZW5hYmxlKHNldHRpbmcpIHtcbiAgICAgIHJldHVybiB0aGlzLnNldChzZXR0aW5nLCB0cnVlKTtcbiAgICB9O1xuICAgIGFwcC5kaXNhYmxlID0gZnVuY3Rpb24gZGlzYWJsZShzZXR0aW5nKSB7XG4gICAgICByZXR1cm4gdGhpcy5zZXQoc2V0dGluZywgZmFsc2UpO1xuICAgIH07XG4gICAgbWV0aG9kcy5mb3JFYWNoKGZ1bmN0aW9uKG1ldGhvZCkge1xuICAgICAgYXBwW21ldGhvZF0gPSBmdW5jdGlvbihwYXRoKSB7XG4gICAgICAgIGlmIChtZXRob2QgPT09IFwiZ2V0XCIgJiYgYXJndW1lbnRzLmxlbmd0aCA9PT0gMSkge1xuICAgICAgICAgIHJldHVybiB0aGlzLnNldChwYXRoKTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgcm91dGUgPSB0aGlzLnJvdXRlKHBhdGgpO1xuICAgICAgICByb3V0ZVttZXRob2RdLmFwcGx5KHJvdXRlLCBzbGljZS5jYWxsKGFyZ3VtZW50cywgMSkpO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgIH07XG4gICAgfSk7XG4gICAgYXBwLmFsbCA9IGZ1bmN0aW9uIGFsbChwYXRoKSB7XG4gICAgICB2YXIgcm91dGUgPSB0aGlzLnJvdXRlKHBhdGgpO1xuICAgICAgdmFyIGFyZ3MgPSBzbGljZS5jYWxsKGFyZ3VtZW50cywgMSk7XG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IG1ldGhvZHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgcm91dGVbbWV0aG9kc1tpXV0uYXBwbHkocm91dGUsIGFyZ3MpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfTtcbiAgICBhcHAucmVuZGVyID0gZnVuY3Rpb24gcmVuZGVyKG5hbWUsIG9wdGlvbnMsIGNhbGxiYWNrKSB7XG4gICAgICB2YXIgY2FjaGUgPSB0aGlzLmNhY2hlO1xuICAgICAgdmFyIGRvbmUgPSBjYWxsYmFjaztcbiAgICAgIHZhciBlbmdpbmVzID0gdGhpcy5lbmdpbmVzO1xuICAgICAgdmFyIG9wdHMgPSBvcHRpb25zO1xuICAgICAgdmFyIHZpZXc7XG4gICAgICBpZiAodHlwZW9mIG9wdGlvbnMgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICBkb25lID0gb3B0aW9ucztcbiAgICAgICAgb3B0cyA9IHt9O1xuICAgICAgfVxuICAgICAgdmFyIHJlbmRlck9wdGlvbnMgPSB7IC4uLnRoaXMubG9jYWxzLCAuLi5vcHRzLl9sb2NhbHMsIC4uLm9wdHMgfTtcbiAgICAgIGlmIChyZW5kZXJPcHRpb25zLmNhY2hlID09IG51bGwpIHtcbiAgICAgICAgcmVuZGVyT3B0aW9ucy5jYWNoZSA9IHRoaXMuZW5hYmxlZChcInZpZXcgY2FjaGVcIik7XG4gICAgICB9XG4gICAgICBpZiAocmVuZGVyT3B0aW9ucy5jYWNoZSkge1xuICAgICAgICB2aWV3ID0gY2FjaGVbbmFtZV07XG4gICAgICB9XG4gICAgICBpZiAoIXZpZXcpIHtcbiAgICAgICAgdmFyIFZpZXcyID0gdGhpcy5nZXQoXCJ2aWV3XCIpO1xuICAgICAgICB2aWV3ID0gbmV3IFZpZXcyKG5hbWUsIHtcbiAgICAgICAgICBkZWZhdWx0RW5naW5lOiB0aGlzLmdldChcInZpZXcgZW5naW5lXCIpLFxuICAgICAgICAgIHJvb3Q6IHRoaXMuZ2V0KFwidmlld3NcIiksXG4gICAgICAgICAgZW5naW5lc1xuICAgICAgICB9KTtcbiAgICAgICAgaWYgKCF2aWV3LnBhdGgpIHtcbiAgICAgICAgICB2YXIgZGlycyA9IEFycmF5LmlzQXJyYXkodmlldy5yb290KSAmJiB2aWV3LnJvb3QubGVuZ3RoID4gMSA/ICdkaXJlY3RvcmllcyBcIicgKyB2aWV3LnJvb3Quc2xpY2UoMCwgLTEpLmpvaW4oJ1wiLCBcIicpICsgJ1wiIG9yIFwiJyArIHZpZXcucm9vdFt2aWV3LnJvb3QubGVuZ3RoIC0gMV0gKyAnXCInIDogJ2RpcmVjdG9yeSBcIicgKyB2aWV3LnJvb3QgKyAnXCInO1xuICAgICAgICAgIHZhciBlcnIyID0gbmV3IEVycm9yKCdGYWlsZWQgdG8gbG9va3VwIHZpZXcgXCInICsgbmFtZSArICdcIiBpbiB2aWV3cyAnICsgZGlycyk7XG4gICAgICAgICAgZXJyMi52aWV3ID0gdmlldztcbiAgICAgICAgICByZXR1cm4gZG9uZShlcnIyKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAocmVuZGVyT3B0aW9ucy5jYWNoZSkge1xuICAgICAgICAgIGNhY2hlW25hbWVdID0gdmlldztcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgdHJ5UmVuZGVyKHZpZXcsIHJlbmRlck9wdGlvbnMsIGRvbmUpO1xuICAgIH07XG4gICAgYXBwLmxpc3RlbiA9IGZ1bmN0aW9uIGxpc3RlbigpIHtcbiAgICAgIHZhciBzZXJ2ZXIgPSBodHRwLmNyZWF0ZVNlcnZlcih0aGlzKTtcbiAgICAgIHZhciBhcmdzID0gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzKTtcbiAgICAgIGlmICh0eXBlb2YgYXJnc1thcmdzLmxlbmd0aCAtIDFdID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgdmFyIGRvbmUgPSBhcmdzW2FyZ3MubGVuZ3RoIC0gMV0gPSBvbmNlKGFyZ3NbYXJncy5sZW5ndGggLSAxXSk7XG4gICAgICAgIHNlcnZlci5vbmNlKFwiZXJyb3JcIiwgZG9uZSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gc2VydmVyLmxpc3Rlbi5hcHBseShzZXJ2ZXIsIGFyZ3MpO1xuICAgIH07XG4gICAgZnVuY3Rpb24gbG9nZXJyb3IoZXJyMikge1xuICAgICAgaWYgKHRoaXMuZ2V0KFwiZW52XCIpICE9PSBcInRlc3RcIikgY29uc29sZS5lcnJvcihlcnIyLnN0YWNrIHx8IGVycjIudG9TdHJpbmcoKSk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHRyeVJlbmRlcih2aWV3LCBvcHRpb25zLCBjYWxsYmFjaykge1xuICAgICAgdHJ5IHtcbiAgICAgICAgdmlldy5yZW5kZXIob3B0aW9ucywgY2FsbGJhY2spO1xuICAgICAgfSBjYXRjaCAoZXJyMikge1xuICAgICAgICBjYWxsYmFjayhlcnIyKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvbmVnb3RpYXRvci9saWIvY2hhcnNldC5qc1xudmFyIHJlcXVpcmVfY2hhcnNldCA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9uZWdvdGlhdG9yL2xpYi9jaGFyc2V0LmpzXCIoZXhwb3J0czIsIG1vZHVsZTIpIHtcbiAgICBcInVzZSBzdHJpY3RcIjtcbiAgICBtb2R1bGUyLmV4cG9ydHMgPSBwcmVmZXJyZWRDaGFyc2V0cztcbiAgICBtb2R1bGUyLmV4cG9ydHMucHJlZmVycmVkQ2hhcnNldHMgPSBwcmVmZXJyZWRDaGFyc2V0cztcbiAgICB2YXIgc2ltcGxlQ2hhcnNldFJlZ0V4cCA9IC9eXFxzKihbXlxccztdKylcXHMqKD86OyguKikpPyQvO1xuICAgIGZ1bmN0aW9uIHBhcnNlQWNjZXB0Q2hhcnNldChhY2NlcHQpIHtcbiAgICAgIHZhciBhY2NlcHRzID0gYWNjZXB0LnNwbGl0KFwiLFwiKTtcbiAgICAgIGZvciAodmFyIGkgPSAwLCBqID0gMDsgaSA8IGFjY2VwdHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgdmFyIGNoYXJzZXQgPSBwYXJzZUNoYXJzZXQoYWNjZXB0c1tpXS50cmltKCksIGkpO1xuICAgICAgICBpZiAoY2hhcnNldCkge1xuICAgICAgICAgIGFjY2VwdHNbaisrXSA9IGNoYXJzZXQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGFjY2VwdHMubGVuZ3RoID0gajtcbiAgICAgIHJldHVybiBhY2NlcHRzO1xuICAgIH1cbiAgICBmdW5jdGlvbiBwYXJzZUNoYXJzZXQoc3RyLCBpKSB7XG4gICAgICB2YXIgbWF0Y2ggPSBzaW1wbGVDaGFyc2V0UmVnRXhwLmV4ZWMoc3RyKTtcbiAgICAgIGlmICghbWF0Y2gpIHJldHVybiBudWxsO1xuICAgICAgdmFyIGNoYXJzZXQgPSBtYXRjaFsxXTtcbiAgICAgIHZhciBxID0gMTtcbiAgICAgIGlmIChtYXRjaFsyXSkge1xuICAgICAgICB2YXIgcGFyYW1zID0gbWF0Y2hbMl0uc3BsaXQoXCI7XCIpO1xuICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8IHBhcmFtcy5sZW5ndGg7IGorKykge1xuICAgICAgICAgIHZhciBwID0gcGFyYW1zW2pdLnRyaW0oKS5zcGxpdChcIj1cIik7XG4gICAgICAgICAgaWYgKHBbMF0gPT09IFwicVwiKSB7XG4gICAgICAgICAgICBxID0gcGFyc2VGbG9hdChwWzFdKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgY2hhcnNldCxcbiAgICAgICAgcSxcbiAgICAgICAgaVxuICAgICAgfTtcbiAgICB9XG4gICAgZnVuY3Rpb24gZ2V0Q2hhcnNldFByaW9yaXR5KGNoYXJzZXQsIGFjY2VwdGVkLCBpbmRleCkge1xuICAgICAgdmFyIHByaW9yaXR5ID0geyBvOiAtMSwgcTogMCwgczogMCB9O1xuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhY2NlcHRlZC5sZW5ndGg7IGkrKykge1xuICAgICAgICB2YXIgc3BlYyA9IHNwZWNpZnkoY2hhcnNldCwgYWNjZXB0ZWRbaV0sIGluZGV4KTtcbiAgICAgICAgaWYgKHNwZWMgJiYgKHByaW9yaXR5LnMgLSBzcGVjLnMgfHwgcHJpb3JpdHkucSAtIHNwZWMucSB8fCBwcmlvcml0eS5vIC0gc3BlYy5vKSA8IDApIHtcbiAgICAgICAgICBwcmlvcml0eSA9IHNwZWM7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBwcmlvcml0eTtcbiAgICB9XG4gICAgZnVuY3Rpb24gc3BlY2lmeShjaGFyc2V0LCBzcGVjLCBpbmRleCkge1xuICAgICAgdmFyIHMgPSAwO1xuICAgICAgaWYgKHNwZWMuY2hhcnNldC50b0xvd2VyQ2FzZSgpID09PSBjaGFyc2V0LnRvTG93ZXJDYXNlKCkpIHtcbiAgICAgICAgcyB8PSAxO1xuICAgICAgfSBlbHNlIGlmIChzcGVjLmNoYXJzZXQgIT09IFwiKlwiKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgaTogaW5kZXgsXG4gICAgICAgIG86IHNwZWMuaSxcbiAgICAgICAgcTogc3BlYy5xLFxuICAgICAgICBzXG4gICAgICB9O1xuICAgIH1cbiAgICBmdW5jdGlvbiBwcmVmZXJyZWRDaGFyc2V0cyhhY2NlcHQsIHByb3ZpZGVkKSB7XG4gICAgICB2YXIgYWNjZXB0cyA9IHBhcnNlQWNjZXB0Q2hhcnNldChhY2NlcHQgPT09IHZvaWQgMCA/IFwiKlwiIDogYWNjZXB0IHx8IFwiXCIpO1xuICAgICAgaWYgKCFwcm92aWRlZCkge1xuICAgICAgICByZXR1cm4gYWNjZXB0cy5maWx0ZXIoaXNRdWFsaXR5KS5zb3J0KGNvbXBhcmVTcGVjcykubWFwKGdldEZ1bGxDaGFyc2V0KTtcbiAgICAgIH1cbiAgICAgIHZhciBwcmlvcml0aWVzID0gcHJvdmlkZWQubWFwKGZ1bmN0aW9uIGdldFByaW9yaXR5KHR5cGUsIGluZGV4KSB7XG4gICAgICAgIHJldHVybiBnZXRDaGFyc2V0UHJpb3JpdHkodHlwZSwgYWNjZXB0cywgaW5kZXgpO1xuICAgICAgfSk7XG4gICAgICByZXR1cm4gcHJpb3JpdGllcy5maWx0ZXIoaXNRdWFsaXR5KS5zb3J0KGNvbXBhcmVTcGVjcykubWFwKGZ1bmN0aW9uIGdldENoYXJzZXQocHJpb3JpdHkpIHtcbiAgICAgICAgcmV0dXJuIHByb3ZpZGVkW3ByaW9yaXRpZXMuaW5kZXhPZihwcmlvcml0eSldO1xuICAgICAgfSk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGNvbXBhcmVTcGVjcyhhLCBiKSB7XG4gICAgICByZXR1cm4gYi5xIC0gYS5xIHx8IGIucyAtIGEucyB8fCBhLm8gLSBiLm8gfHwgYS5pIC0gYi5pIHx8IDA7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGdldEZ1bGxDaGFyc2V0KHNwZWMpIHtcbiAgICAgIHJldHVybiBzcGVjLmNoYXJzZXQ7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGlzUXVhbGl0eShzcGVjKSB7XG4gICAgICByZXR1cm4gc3BlYy5xID4gMDtcbiAgICB9XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvbmVnb3RpYXRvci9saWIvZW5jb2RpbmcuanNcbnZhciByZXF1aXJlX2VuY29kaW5nID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL25lZ290aWF0b3IvbGliL2VuY29kaW5nLmpzXCIoZXhwb3J0czIsIG1vZHVsZTIpIHtcbiAgICBcInVzZSBzdHJpY3RcIjtcbiAgICBtb2R1bGUyLmV4cG9ydHMgPSBwcmVmZXJyZWRFbmNvZGluZ3M7XG4gICAgbW9kdWxlMi5leHBvcnRzLnByZWZlcnJlZEVuY29kaW5ncyA9IHByZWZlcnJlZEVuY29kaW5ncztcbiAgICB2YXIgc2ltcGxlRW5jb2RpbmdSZWdFeHAgPSAvXlxccyooW15cXHM7XSspXFxzKig/OjsoLiopKT8kLztcbiAgICBmdW5jdGlvbiBwYXJzZUFjY2VwdEVuY29kaW5nKGFjY2VwdCkge1xuICAgICAgdmFyIGFjY2VwdHMgPSBhY2NlcHQuc3BsaXQoXCIsXCIpO1xuICAgICAgdmFyIGhhc0lkZW50aXR5ID0gZmFsc2U7XG4gICAgICB2YXIgbWluUXVhbGl0eSA9IDE7XG4gICAgICBmb3IgKHZhciBpID0gMCwgaiA9IDA7IGkgPCBhY2NlcHRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIHZhciBlbmNvZGluZyA9IHBhcnNlRW5jb2RpbmcoYWNjZXB0c1tpXS50cmltKCksIGkpO1xuICAgICAgICBpZiAoZW5jb2RpbmcpIHtcbiAgICAgICAgICBhY2NlcHRzW2orK10gPSBlbmNvZGluZztcbiAgICAgICAgICBoYXNJZGVudGl0eSA9IGhhc0lkZW50aXR5IHx8IHNwZWNpZnkoXCJpZGVudGl0eVwiLCBlbmNvZGluZyk7XG4gICAgICAgICAgbWluUXVhbGl0eSA9IE1hdGgubWluKG1pblF1YWxpdHksIGVuY29kaW5nLnEgfHwgMSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmICghaGFzSWRlbnRpdHkpIHtcbiAgICAgICAgYWNjZXB0c1tqKytdID0ge1xuICAgICAgICAgIGVuY29kaW5nOiBcImlkZW50aXR5XCIsXG4gICAgICAgICAgcTogbWluUXVhbGl0eSxcbiAgICAgICAgICBpXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgICBhY2NlcHRzLmxlbmd0aCA9IGo7XG4gICAgICByZXR1cm4gYWNjZXB0cztcbiAgICB9XG4gICAgZnVuY3Rpb24gcGFyc2VFbmNvZGluZyhzdHIsIGkpIHtcbiAgICAgIHZhciBtYXRjaCA9IHNpbXBsZUVuY29kaW5nUmVnRXhwLmV4ZWMoc3RyKTtcbiAgICAgIGlmICghbWF0Y2gpIHJldHVybiBudWxsO1xuICAgICAgdmFyIGVuY29kaW5nID0gbWF0Y2hbMV07XG4gICAgICB2YXIgcSA9IDE7XG4gICAgICBpZiAobWF0Y2hbMl0pIHtcbiAgICAgICAgdmFyIHBhcmFtcyA9IG1hdGNoWzJdLnNwbGl0KFwiO1wiKTtcbiAgICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBwYXJhbXMubGVuZ3RoOyBqKyspIHtcbiAgICAgICAgICB2YXIgcCA9IHBhcmFtc1tqXS50cmltKCkuc3BsaXQoXCI9XCIpO1xuICAgICAgICAgIGlmIChwWzBdID09PSBcInFcIikge1xuICAgICAgICAgICAgcSA9IHBhcnNlRmxvYXQocFsxXSk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiB7XG4gICAgICAgIGVuY29kaW5nLFxuICAgICAgICBxLFxuICAgICAgICBpXG4gICAgICB9O1xuICAgIH1cbiAgICBmdW5jdGlvbiBnZXRFbmNvZGluZ1ByaW9yaXR5KGVuY29kaW5nLCBhY2NlcHRlZCwgaW5kZXgpIHtcbiAgICAgIHZhciBwcmlvcml0eSA9IHsgZW5jb2RpbmcsIG86IC0xLCBxOiAwLCBzOiAwIH07XG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGFjY2VwdGVkLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIHZhciBzcGVjID0gc3BlY2lmeShlbmNvZGluZywgYWNjZXB0ZWRbaV0sIGluZGV4KTtcbiAgICAgICAgaWYgKHNwZWMgJiYgKHByaW9yaXR5LnMgLSBzcGVjLnMgfHwgcHJpb3JpdHkucSAtIHNwZWMucSB8fCBwcmlvcml0eS5vIC0gc3BlYy5vKSA8IDApIHtcbiAgICAgICAgICBwcmlvcml0eSA9IHNwZWM7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBwcmlvcml0eTtcbiAgICB9XG4gICAgZnVuY3Rpb24gc3BlY2lmeShlbmNvZGluZywgc3BlYywgaW5kZXgpIHtcbiAgICAgIHZhciBzID0gMDtcbiAgICAgIGlmIChzcGVjLmVuY29kaW5nLnRvTG93ZXJDYXNlKCkgPT09IGVuY29kaW5nLnRvTG93ZXJDYXNlKCkpIHtcbiAgICAgICAgcyB8PSAxO1xuICAgICAgfSBlbHNlIGlmIChzcGVjLmVuY29kaW5nICE9PSBcIipcIikge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cbiAgICAgIHJldHVybiB7XG4gICAgICAgIGVuY29kaW5nLFxuICAgICAgICBpOiBpbmRleCxcbiAgICAgICAgbzogc3BlYy5pLFxuICAgICAgICBxOiBzcGVjLnEsXG4gICAgICAgIHNcbiAgICAgIH07XG4gICAgfVxuICAgIGZ1bmN0aW9uIHByZWZlcnJlZEVuY29kaW5ncyhhY2NlcHQsIHByb3ZpZGVkLCBwcmVmZXJyZWQpIHtcbiAgICAgIHZhciBhY2NlcHRzID0gcGFyc2VBY2NlcHRFbmNvZGluZyhhY2NlcHQgfHwgXCJcIik7XG4gICAgICB2YXIgY29tcGFyYXRvciA9IHByZWZlcnJlZCA/IGZ1bmN0aW9uIGNvbXBhcmF0b3IyKGEsIGIpIHtcbiAgICAgICAgaWYgKGEucSAhPT0gYi5xKSB7XG4gICAgICAgICAgcmV0dXJuIGIucSAtIGEucTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgYVByZWZlcnJlZCA9IHByZWZlcnJlZC5pbmRleE9mKGEuZW5jb2RpbmcpO1xuICAgICAgICB2YXIgYlByZWZlcnJlZCA9IHByZWZlcnJlZC5pbmRleE9mKGIuZW5jb2RpbmcpO1xuICAgICAgICBpZiAoYVByZWZlcnJlZCA9PT0gLTEgJiYgYlByZWZlcnJlZCA9PT0gLTEpIHtcbiAgICAgICAgICByZXR1cm4gYi5zIC0gYS5zIHx8IGEubyAtIGIubyB8fCBhLmkgLSBiLmk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGFQcmVmZXJyZWQgIT09IC0xICYmIGJQcmVmZXJyZWQgIT09IC0xKSB7XG4gICAgICAgICAgcmV0dXJuIGFQcmVmZXJyZWQgLSBiUHJlZmVycmVkO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBhUHJlZmVycmVkID09PSAtMSA/IDEgOiAtMTtcbiAgICAgIH0gOiBjb21wYXJlU3BlY3M7XG4gICAgICBpZiAoIXByb3ZpZGVkKSB7XG4gICAgICAgIHJldHVybiBhY2NlcHRzLmZpbHRlcihpc1F1YWxpdHkpLnNvcnQoY29tcGFyYXRvcikubWFwKGdldEZ1bGxFbmNvZGluZyk7XG4gICAgICB9XG4gICAgICB2YXIgcHJpb3JpdGllcyA9IHByb3ZpZGVkLm1hcChmdW5jdGlvbiBnZXRQcmlvcml0eSh0eXBlLCBpbmRleCkge1xuICAgICAgICByZXR1cm4gZ2V0RW5jb2RpbmdQcmlvcml0eSh0eXBlLCBhY2NlcHRzLCBpbmRleCk7XG4gICAgICB9KTtcbiAgICAgIHJldHVybiBwcmlvcml0aWVzLmZpbHRlcihpc1F1YWxpdHkpLnNvcnQoY29tcGFyYXRvcikubWFwKGZ1bmN0aW9uIGdldEVuY29kaW5nKHByaW9yaXR5KSB7XG4gICAgICAgIHJldHVybiBwcm92aWRlZFtwcmlvcml0aWVzLmluZGV4T2YocHJpb3JpdHkpXTtcbiAgICAgIH0pO1xuICAgIH1cbiAgICBmdW5jdGlvbiBjb21wYXJlU3BlY3MoYSwgYikge1xuICAgICAgcmV0dXJuIGIucSAtIGEucSB8fCBiLnMgLSBhLnMgfHwgYS5vIC0gYi5vIHx8IGEuaSAtIGIuaTtcbiAgICB9XG4gICAgZnVuY3Rpb24gZ2V0RnVsbEVuY29kaW5nKHNwZWMpIHtcbiAgICAgIHJldHVybiBzcGVjLmVuY29kaW5nO1xuICAgIH1cbiAgICBmdW5jdGlvbiBpc1F1YWxpdHkoc3BlYykge1xuICAgICAgcmV0dXJuIHNwZWMucSA+IDA7XG4gICAgfVxuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL25lZ290aWF0b3IvbGliL2xhbmd1YWdlLmpzXG52YXIgcmVxdWlyZV9sYW5ndWFnZSA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9uZWdvdGlhdG9yL2xpYi9sYW5ndWFnZS5qc1wiKGV4cG9ydHMyLCBtb2R1bGUyKSB7XG4gICAgXCJ1c2Ugc3RyaWN0XCI7XG4gICAgbW9kdWxlMi5leHBvcnRzID0gcHJlZmVycmVkTGFuZ3VhZ2VzO1xuICAgIG1vZHVsZTIuZXhwb3J0cy5wcmVmZXJyZWRMYW5ndWFnZXMgPSBwcmVmZXJyZWRMYW5ndWFnZXM7XG4gICAgdmFyIHNpbXBsZUxhbmd1YWdlUmVnRXhwID0gL15cXHMqKFteXFxzXFwtO10rKSg/Oi0oW15cXHM7XSspKT9cXHMqKD86OyguKikpPyQvO1xuICAgIGZ1bmN0aW9uIHBhcnNlQWNjZXB0TGFuZ3VhZ2UoYWNjZXB0KSB7XG4gICAgICB2YXIgYWNjZXB0cyA9IGFjY2VwdC5zcGxpdChcIixcIik7XG4gICAgICBmb3IgKHZhciBpID0gMCwgaiA9IDA7IGkgPCBhY2NlcHRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIHZhciBsYW5ndWFnZSA9IHBhcnNlTGFuZ3VhZ2UoYWNjZXB0c1tpXS50cmltKCksIGkpO1xuICAgICAgICBpZiAobGFuZ3VhZ2UpIHtcbiAgICAgICAgICBhY2NlcHRzW2orK10gPSBsYW5ndWFnZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgYWNjZXB0cy5sZW5ndGggPSBqO1xuICAgICAgcmV0dXJuIGFjY2VwdHM7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHBhcnNlTGFuZ3VhZ2Uoc3RyLCBpKSB7XG4gICAgICB2YXIgbWF0Y2ggPSBzaW1wbGVMYW5ndWFnZVJlZ0V4cC5leGVjKHN0cik7XG4gICAgICBpZiAoIW1hdGNoKSByZXR1cm4gbnVsbDtcbiAgICAgIHZhciBwcmVmaXggPSBtYXRjaFsxXTtcbiAgICAgIHZhciBzdWZmaXggPSBtYXRjaFsyXTtcbiAgICAgIHZhciBmdWxsID0gcHJlZml4O1xuICAgICAgaWYgKHN1ZmZpeCkgZnVsbCArPSBcIi1cIiArIHN1ZmZpeDtcbiAgICAgIHZhciBxID0gMTtcbiAgICAgIGlmIChtYXRjaFszXSkge1xuICAgICAgICB2YXIgcGFyYW1zID0gbWF0Y2hbM10uc3BsaXQoXCI7XCIpO1xuICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8IHBhcmFtcy5sZW5ndGg7IGorKykge1xuICAgICAgICAgIHZhciBwID0gcGFyYW1zW2pdLnNwbGl0KFwiPVwiKTtcbiAgICAgICAgICBpZiAocFswXSA9PT0gXCJxXCIpIHEgPSBwYXJzZUZsb2F0KHBbMV0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4ge1xuICAgICAgICBwcmVmaXgsXG4gICAgICAgIHN1ZmZpeCxcbiAgICAgICAgcSxcbiAgICAgICAgaSxcbiAgICAgICAgZnVsbFxuICAgICAgfTtcbiAgICB9XG4gICAgZnVuY3Rpb24gZ2V0TGFuZ3VhZ2VQcmlvcml0eShsYW5ndWFnZSwgYWNjZXB0ZWQsIGluZGV4KSB7XG4gICAgICB2YXIgcHJpb3JpdHkgPSB7IG86IC0xLCBxOiAwLCBzOiAwIH07XG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGFjY2VwdGVkLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIHZhciBzcGVjID0gc3BlY2lmeShsYW5ndWFnZSwgYWNjZXB0ZWRbaV0sIGluZGV4KTtcbiAgICAgICAgaWYgKHNwZWMgJiYgKHByaW9yaXR5LnMgLSBzcGVjLnMgfHwgcHJpb3JpdHkucSAtIHNwZWMucSB8fCBwcmlvcml0eS5vIC0gc3BlYy5vKSA8IDApIHtcbiAgICAgICAgICBwcmlvcml0eSA9IHNwZWM7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBwcmlvcml0eTtcbiAgICB9XG4gICAgZnVuY3Rpb24gc3BlY2lmeShsYW5ndWFnZSwgc3BlYywgaW5kZXgpIHtcbiAgICAgIHZhciBwID0gcGFyc2VMYW5ndWFnZShsYW5ndWFnZSk7XG4gICAgICBpZiAoIXApIHJldHVybiBudWxsO1xuICAgICAgdmFyIHMgPSAwO1xuICAgICAgaWYgKHNwZWMuZnVsbC50b0xvd2VyQ2FzZSgpID09PSBwLmZ1bGwudG9Mb3dlckNhc2UoKSkge1xuICAgICAgICBzIHw9IDQ7XG4gICAgICB9IGVsc2UgaWYgKHNwZWMucHJlZml4LnRvTG93ZXJDYXNlKCkgPT09IHAuZnVsbC50b0xvd2VyQ2FzZSgpKSB7XG4gICAgICAgIHMgfD0gMjtcbiAgICAgIH0gZWxzZSBpZiAoc3BlYy5mdWxsLnRvTG93ZXJDYXNlKCkgPT09IHAucHJlZml4LnRvTG93ZXJDYXNlKCkpIHtcbiAgICAgICAgcyB8PSAxO1xuICAgICAgfSBlbHNlIGlmIChzcGVjLmZ1bGwgIT09IFwiKlwiKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgaTogaW5kZXgsXG4gICAgICAgIG86IHNwZWMuaSxcbiAgICAgICAgcTogc3BlYy5xLFxuICAgICAgICBzXG4gICAgICB9O1xuICAgIH1cbiAgICBmdW5jdGlvbiBwcmVmZXJyZWRMYW5ndWFnZXMoYWNjZXB0LCBwcm92aWRlZCkge1xuICAgICAgdmFyIGFjY2VwdHMgPSBwYXJzZUFjY2VwdExhbmd1YWdlKGFjY2VwdCA9PT0gdm9pZCAwID8gXCIqXCIgOiBhY2NlcHQgfHwgXCJcIik7XG4gICAgICBpZiAoIXByb3ZpZGVkKSB7XG4gICAgICAgIHJldHVybiBhY2NlcHRzLmZpbHRlcihpc1F1YWxpdHkpLnNvcnQoY29tcGFyZVNwZWNzKS5tYXAoZ2V0RnVsbExhbmd1YWdlKTtcbiAgICAgIH1cbiAgICAgIHZhciBwcmlvcml0aWVzID0gcHJvdmlkZWQubWFwKGZ1bmN0aW9uIGdldFByaW9yaXR5KHR5cGUsIGluZGV4KSB7XG4gICAgICAgIHJldHVybiBnZXRMYW5ndWFnZVByaW9yaXR5KHR5cGUsIGFjY2VwdHMsIGluZGV4KTtcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIHByaW9yaXRpZXMuZmlsdGVyKGlzUXVhbGl0eSkuc29ydChjb21wYXJlU3BlY3MpLm1hcChmdW5jdGlvbiBnZXRMYW5ndWFnZShwcmlvcml0eSkge1xuICAgICAgICByZXR1cm4gcHJvdmlkZWRbcHJpb3JpdGllcy5pbmRleE9mKHByaW9yaXR5KV07XG4gICAgICB9KTtcbiAgICB9XG4gICAgZnVuY3Rpb24gY29tcGFyZVNwZWNzKGEsIGIpIHtcbiAgICAgIHJldHVybiBiLnEgLSBhLnEgfHwgYi5zIC0gYS5zIHx8IGEubyAtIGIubyB8fCBhLmkgLSBiLmkgfHwgMDtcbiAgICB9XG4gICAgZnVuY3Rpb24gZ2V0RnVsbExhbmd1YWdlKHNwZWMpIHtcbiAgICAgIHJldHVybiBzcGVjLmZ1bGw7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGlzUXVhbGl0eShzcGVjKSB7XG4gICAgICByZXR1cm4gc3BlYy5xID4gMDtcbiAgICB9XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvbmVnb3RpYXRvci9saWIvbWVkaWFUeXBlLmpzXG52YXIgcmVxdWlyZV9tZWRpYVR5cGUgPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvbmVnb3RpYXRvci9saWIvbWVkaWFUeXBlLmpzXCIoZXhwb3J0czIsIG1vZHVsZTIpIHtcbiAgICBcInVzZSBzdHJpY3RcIjtcbiAgICBtb2R1bGUyLmV4cG9ydHMgPSBwcmVmZXJyZWRNZWRpYVR5cGVzO1xuICAgIG1vZHVsZTIuZXhwb3J0cy5wcmVmZXJyZWRNZWRpYVR5cGVzID0gcHJlZmVycmVkTWVkaWFUeXBlcztcbiAgICB2YXIgc2ltcGxlTWVkaWFUeXBlUmVnRXhwID0gL15cXHMqKFteXFxzXFwvO10rKVxcLyhbXjtcXHNdKylcXHMqKD86OyguKikpPyQvO1xuICAgIGZ1bmN0aW9uIHBhcnNlQWNjZXB0KGFjY2VwdCkge1xuICAgICAgdmFyIGFjY2VwdHMgPSBzcGxpdE1lZGlhVHlwZXMoYWNjZXB0KTtcbiAgICAgIGZvciAodmFyIGkgPSAwLCBqID0gMDsgaSA8IGFjY2VwdHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgdmFyIG1lZGlhVHlwZSA9IHBhcnNlTWVkaWFUeXBlKGFjY2VwdHNbaV0udHJpbSgpLCBpKTtcbiAgICAgICAgaWYgKG1lZGlhVHlwZSkge1xuICAgICAgICAgIGFjY2VwdHNbaisrXSA9IG1lZGlhVHlwZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgYWNjZXB0cy5sZW5ndGggPSBqO1xuICAgICAgcmV0dXJuIGFjY2VwdHM7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHBhcnNlTWVkaWFUeXBlKHN0ciwgaSkge1xuICAgICAgdmFyIG1hdGNoID0gc2ltcGxlTWVkaWFUeXBlUmVnRXhwLmV4ZWMoc3RyKTtcbiAgICAgIGlmICghbWF0Y2gpIHJldHVybiBudWxsO1xuICAgICAgdmFyIHBhcmFtcyA9IC8qIEBfX1BVUkVfXyAqLyBPYmplY3QuY3JlYXRlKG51bGwpO1xuICAgICAgdmFyIHEgPSAxO1xuICAgICAgdmFyIHN1YnR5cGUgPSBtYXRjaFsyXTtcbiAgICAgIHZhciB0eXBlID0gbWF0Y2hbMV07XG4gICAgICBpZiAobWF0Y2hbM10pIHtcbiAgICAgICAgdmFyIGt2cHMgPSBzcGxpdFBhcmFtZXRlcnMobWF0Y2hbM10pLm1hcChzcGxpdEtleVZhbHVlUGFpcik7XG4gICAgICAgIGZvciAodmFyIGogPSAwOyBqIDwga3Zwcy5sZW5ndGg7IGorKykge1xuICAgICAgICAgIHZhciBwYWlyID0ga3Zwc1tqXTtcbiAgICAgICAgICB2YXIga2V5ID0gcGFpclswXS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICAgIHZhciB2YWwgPSBwYWlyWzFdO1xuICAgICAgICAgIHZhciB2YWx1ZSA9IHZhbCAmJiB2YWxbMF0gPT09ICdcIicgJiYgdmFsW3ZhbC5sZW5ndGggLSAxXSA9PT0gJ1wiJyA/IHZhbC5zbGljZSgxLCAtMSkgOiB2YWw7XG4gICAgICAgICAgaWYgKGtleSA9PT0gXCJxXCIpIHtcbiAgICAgICAgICAgIHEgPSBwYXJzZUZsb2F0KHZhbHVlKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgICAgICBwYXJhbXNba2V5XSA9IHZhbHVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4ge1xuICAgICAgICB0eXBlLFxuICAgICAgICBzdWJ0eXBlLFxuICAgICAgICBwYXJhbXMsXG4gICAgICAgIHEsXG4gICAgICAgIGlcbiAgICAgIH07XG4gICAgfVxuICAgIGZ1bmN0aW9uIGdldE1lZGlhVHlwZVByaW9yaXR5KHR5cGUsIGFjY2VwdGVkLCBpbmRleCkge1xuICAgICAgdmFyIHByaW9yaXR5ID0geyBvOiAtMSwgcTogMCwgczogMCB9O1xuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhY2NlcHRlZC5sZW5ndGg7IGkrKykge1xuICAgICAgICB2YXIgc3BlYyA9IHNwZWNpZnkodHlwZSwgYWNjZXB0ZWRbaV0sIGluZGV4KTtcbiAgICAgICAgaWYgKHNwZWMgJiYgKHByaW9yaXR5LnMgLSBzcGVjLnMgfHwgcHJpb3JpdHkucSAtIHNwZWMucSB8fCBwcmlvcml0eS5vIC0gc3BlYy5vKSA8IDApIHtcbiAgICAgICAgICBwcmlvcml0eSA9IHNwZWM7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBwcmlvcml0eTtcbiAgICB9XG4gICAgZnVuY3Rpb24gc3BlY2lmeSh0eXBlLCBzcGVjLCBpbmRleCkge1xuICAgICAgdmFyIHAgPSBwYXJzZU1lZGlhVHlwZSh0eXBlKTtcbiAgICAgIHZhciBzID0gMDtcbiAgICAgIGlmICghcCkge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cbiAgICAgIGlmIChzcGVjLnR5cGUudG9Mb3dlckNhc2UoKSA9PSBwLnR5cGUudG9Mb3dlckNhc2UoKSkge1xuICAgICAgICBzIHw9IDQ7XG4gICAgICB9IGVsc2UgaWYgKHNwZWMudHlwZSAhPSBcIipcIikge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cbiAgICAgIGlmIChzcGVjLnN1YnR5cGUudG9Mb3dlckNhc2UoKSA9PSBwLnN1YnR5cGUudG9Mb3dlckNhc2UoKSkge1xuICAgICAgICBzIHw9IDI7XG4gICAgICB9IGVsc2UgaWYgKHNwZWMuc3VidHlwZSAhPSBcIipcIikge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cbiAgICAgIHZhciBrZXlzID0gT2JqZWN0LmtleXMoc3BlYy5wYXJhbXMpO1xuICAgICAgaWYgKGtleXMubGVuZ3RoID4gMCkge1xuICAgICAgICBpZiAoa2V5cy5ldmVyeShmdW5jdGlvbihrKSB7XG4gICAgICAgICAgcmV0dXJuIHNwZWMucGFyYW1zW2tdID09IFwiKlwiIHx8IChzcGVjLnBhcmFtc1trXSB8fCBcIlwiKS50b0xvd2VyQ2FzZSgpID09IChwLnBhcmFtc1trXSB8fCBcIlwiKS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICB9KSkge1xuICAgICAgICAgIHMgfD0gMTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgaTogaW5kZXgsXG4gICAgICAgIG86IHNwZWMuaSxcbiAgICAgICAgcTogc3BlYy5xLFxuICAgICAgICBzXG4gICAgICB9O1xuICAgIH1cbiAgICBmdW5jdGlvbiBwcmVmZXJyZWRNZWRpYVR5cGVzKGFjY2VwdCwgcHJvdmlkZWQpIHtcbiAgICAgIHZhciBhY2NlcHRzID0gcGFyc2VBY2NlcHQoYWNjZXB0ID09PSB2b2lkIDAgPyBcIiovKlwiIDogYWNjZXB0IHx8IFwiXCIpO1xuICAgICAgaWYgKCFwcm92aWRlZCkge1xuICAgICAgICByZXR1cm4gYWNjZXB0cy5maWx0ZXIoaXNRdWFsaXR5KS5zb3J0KGNvbXBhcmVTcGVjcykubWFwKGdldEZ1bGxUeXBlKTtcbiAgICAgIH1cbiAgICAgIHZhciBwcmlvcml0aWVzID0gcHJvdmlkZWQubWFwKGZ1bmN0aW9uIGdldFByaW9yaXR5KHR5cGUsIGluZGV4KSB7XG4gICAgICAgIHJldHVybiBnZXRNZWRpYVR5cGVQcmlvcml0eSh0eXBlLCBhY2NlcHRzLCBpbmRleCk7XG4gICAgICB9KTtcbiAgICAgIHJldHVybiBwcmlvcml0aWVzLmZpbHRlcihpc1F1YWxpdHkpLnNvcnQoY29tcGFyZVNwZWNzKS5tYXAoZnVuY3Rpb24gZ2V0VHlwZShwcmlvcml0eSkge1xuICAgICAgICByZXR1cm4gcHJvdmlkZWRbcHJpb3JpdGllcy5pbmRleE9mKHByaW9yaXR5KV07XG4gICAgICB9KTtcbiAgICB9XG4gICAgZnVuY3Rpb24gY29tcGFyZVNwZWNzKGEsIGIpIHtcbiAgICAgIHJldHVybiBiLnEgLSBhLnEgfHwgYi5zIC0gYS5zIHx8IGEubyAtIGIubyB8fCBhLmkgLSBiLmkgfHwgMDtcbiAgICB9XG4gICAgZnVuY3Rpb24gZ2V0RnVsbFR5cGUoc3BlYykge1xuICAgICAgcmV0dXJuIHNwZWMudHlwZSArIFwiL1wiICsgc3BlYy5zdWJ0eXBlO1xuICAgIH1cbiAgICBmdW5jdGlvbiBpc1F1YWxpdHkoc3BlYykge1xuICAgICAgcmV0dXJuIHNwZWMucSA+IDA7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHF1b3RlQ291bnQoc3RyaW5nKSB7XG4gICAgICB2YXIgY291bnQgPSAwO1xuICAgICAgdmFyIGluZGV4ID0gMDtcbiAgICAgIHdoaWxlICgoaW5kZXggPSBzdHJpbmcuaW5kZXhPZignXCInLCBpbmRleCkpICE9PSAtMSkge1xuICAgICAgICBjb3VudCsrO1xuICAgICAgICBpbmRleCsrO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGNvdW50O1xuICAgIH1cbiAgICBmdW5jdGlvbiBzcGxpdEtleVZhbHVlUGFpcihzdHIpIHtcbiAgICAgIHZhciBpbmRleCA9IHN0ci5pbmRleE9mKFwiPVwiKTtcbiAgICAgIHZhciBrZXk7XG4gICAgICB2YXIgdmFsO1xuICAgICAgaWYgKGluZGV4ID09PSAtMSkge1xuICAgICAgICBrZXkgPSBzdHI7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBrZXkgPSBzdHIuc2xpY2UoMCwgaW5kZXgpO1xuICAgICAgICB2YWwgPSBzdHIuc2xpY2UoaW5kZXggKyAxKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBba2V5LCB2YWxdO1xuICAgIH1cbiAgICBmdW5jdGlvbiBzcGxpdE1lZGlhVHlwZXMoYWNjZXB0KSB7XG4gICAgICB2YXIgYWNjZXB0cyA9IGFjY2VwdC5zcGxpdChcIixcIik7XG4gICAgICBmb3IgKHZhciBpID0gMSwgaiA9IDA7IGkgPCBhY2NlcHRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGlmIChxdW90ZUNvdW50KGFjY2VwdHNbal0pICUgMiA9PSAwKSB7XG4gICAgICAgICAgYWNjZXB0c1srK2pdID0gYWNjZXB0c1tpXTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBhY2NlcHRzW2pdICs9IFwiLFwiICsgYWNjZXB0c1tpXTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgYWNjZXB0cy5sZW5ndGggPSBqICsgMTtcbiAgICAgIHJldHVybiBhY2NlcHRzO1xuICAgIH1cbiAgICBmdW5jdGlvbiBzcGxpdFBhcmFtZXRlcnMoc3RyKSB7XG4gICAgICB2YXIgcGFyYW1ldGVycyA9IHN0ci5zcGxpdChcIjtcIik7XG4gICAgICBmb3IgKHZhciBpID0gMSwgaiA9IDA7IGkgPCBwYXJhbWV0ZXJzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGlmIChxdW90ZUNvdW50KHBhcmFtZXRlcnNbal0pICUgMiA9PSAwKSB7XG4gICAgICAgICAgcGFyYW1ldGVyc1srK2pdID0gcGFyYW1ldGVyc1tpXTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBwYXJhbWV0ZXJzW2pdICs9IFwiO1wiICsgcGFyYW1ldGVyc1tpXTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcGFyYW1ldGVycy5sZW5ndGggPSBqICsgMTtcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcGFyYW1ldGVycy5sZW5ndGg7IGkrKykge1xuICAgICAgICBwYXJhbWV0ZXJzW2ldID0gcGFyYW1ldGVyc1tpXS50cmltKCk7XG4gICAgICB9XG4gICAgICByZXR1cm4gcGFyYW1ldGVycztcbiAgICB9XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvbmVnb3RpYXRvci9pbmRleC5qc1xudmFyIHJlcXVpcmVfbmVnb3RpYXRvciA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9uZWdvdGlhdG9yL2luZGV4LmpzXCIoZXhwb3J0czIsIG1vZHVsZTIpIHtcbiAgICBcInVzZSBzdHJpY3RcIjtcbiAgICB2YXIgcHJlZmVycmVkQ2hhcnNldHMgPSByZXF1aXJlX2NoYXJzZXQoKTtcbiAgICB2YXIgcHJlZmVycmVkRW5jb2RpbmdzID0gcmVxdWlyZV9lbmNvZGluZygpO1xuICAgIHZhciBwcmVmZXJyZWRMYW5ndWFnZXMgPSByZXF1aXJlX2xhbmd1YWdlKCk7XG4gICAgdmFyIHByZWZlcnJlZE1lZGlhVHlwZXMgPSByZXF1aXJlX21lZGlhVHlwZSgpO1xuICAgIG1vZHVsZTIuZXhwb3J0cyA9IE5lZ290aWF0b3I7XG4gICAgbW9kdWxlMi5leHBvcnRzLk5lZ290aWF0b3IgPSBOZWdvdGlhdG9yO1xuICAgIGZ1bmN0aW9uIE5lZ290aWF0b3IocmVxdWVzdCkge1xuICAgICAgaWYgKCEodGhpcyBpbnN0YW5jZW9mIE5lZ290aWF0b3IpKSB7XG4gICAgICAgIHJldHVybiBuZXcgTmVnb3RpYXRvcihyZXF1ZXN0KTtcbiAgICAgIH1cbiAgICAgIHRoaXMucmVxdWVzdCA9IHJlcXVlc3Q7XG4gICAgfVxuICAgIE5lZ290aWF0b3IucHJvdG90eXBlLmNoYXJzZXQgPSBmdW5jdGlvbiBjaGFyc2V0KGF2YWlsYWJsZSkge1xuICAgICAgdmFyIHNldCA9IHRoaXMuY2hhcnNldHMoYXZhaWxhYmxlKTtcbiAgICAgIHJldHVybiBzZXQgJiYgc2V0WzBdO1xuICAgIH07XG4gICAgTmVnb3RpYXRvci5wcm90b3R5cGUuY2hhcnNldHMgPSBmdW5jdGlvbiBjaGFyc2V0cyhhdmFpbGFibGUpIHtcbiAgICAgIHJldHVybiBwcmVmZXJyZWRDaGFyc2V0cyh0aGlzLnJlcXVlc3QuaGVhZGVyc1tcImFjY2VwdC1jaGFyc2V0XCJdLCBhdmFpbGFibGUpO1xuICAgIH07XG4gICAgTmVnb3RpYXRvci5wcm90b3R5cGUuZW5jb2RpbmcgPSBmdW5jdGlvbiBlbmNvZGluZyhhdmFpbGFibGUsIG9wdHMpIHtcbiAgICAgIHZhciBzZXQgPSB0aGlzLmVuY29kaW5ncyhhdmFpbGFibGUsIG9wdHMpO1xuICAgICAgcmV0dXJuIHNldCAmJiBzZXRbMF07XG4gICAgfTtcbiAgICBOZWdvdGlhdG9yLnByb3RvdHlwZS5lbmNvZGluZ3MgPSBmdW5jdGlvbiBlbmNvZGluZ3MoYXZhaWxhYmxlLCBvcHRpb25zKSB7XG4gICAgICB2YXIgb3B0cyA9IG9wdGlvbnMgfHwge307XG4gICAgICByZXR1cm4gcHJlZmVycmVkRW5jb2RpbmdzKHRoaXMucmVxdWVzdC5oZWFkZXJzW1wiYWNjZXB0LWVuY29kaW5nXCJdLCBhdmFpbGFibGUsIG9wdHMucHJlZmVycmVkKTtcbiAgICB9O1xuICAgIE5lZ290aWF0b3IucHJvdG90eXBlLmxhbmd1YWdlID0gZnVuY3Rpb24gbGFuZ3VhZ2UoYXZhaWxhYmxlKSB7XG4gICAgICB2YXIgc2V0ID0gdGhpcy5sYW5ndWFnZXMoYXZhaWxhYmxlKTtcbiAgICAgIHJldHVybiBzZXQgJiYgc2V0WzBdO1xuICAgIH07XG4gICAgTmVnb3RpYXRvci5wcm90b3R5cGUubGFuZ3VhZ2VzID0gZnVuY3Rpb24gbGFuZ3VhZ2VzKGF2YWlsYWJsZSkge1xuICAgICAgcmV0dXJuIHByZWZlcnJlZExhbmd1YWdlcyh0aGlzLnJlcXVlc3QuaGVhZGVyc1tcImFjY2VwdC1sYW5ndWFnZVwiXSwgYXZhaWxhYmxlKTtcbiAgICB9O1xuICAgIE5lZ290aWF0b3IucHJvdG90eXBlLm1lZGlhVHlwZSA9IGZ1bmN0aW9uIG1lZGlhVHlwZShhdmFpbGFibGUpIHtcbiAgICAgIHZhciBzZXQgPSB0aGlzLm1lZGlhVHlwZXMoYXZhaWxhYmxlKTtcbiAgICAgIHJldHVybiBzZXQgJiYgc2V0WzBdO1xuICAgIH07XG4gICAgTmVnb3RpYXRvci5wcm90b3R5cGUubWVkaWFUeXBlcyA9IGZ1bmN0aW9uIG1lZGlhVHlwZXMoYXZhaWxhYmxlKSB7XG4gICAgICByZXR1cm4gcHJlZmVycmVkTWVkaWFUeXBlcyh0aGlzLnJlcXVlc3QuaGVhZGVycy5hY2NlcHQsIGF2YWlsYWJsZSk7XG4gICAgfTtcbiAgICBOZWdvdGlhdG9yLnByb3RvdHlwZS5wcmVmZXJyZWRDaGFyc2V0ID0gTmVnb3RpYXRvci5wcm90b3R5cGUuY2hhcnNldDtcbiAgICBOZWdvdGlhdG9yLnByb3RvdHlwZS5wcmVmZXJyZWRDaGFyc2V0cyA9IE5lZ290aWF0b3IucHJvdG90eXBlLmNoYXJzZXRzO1xuICAgIE5lZ290aWF0b3IucHJvdG90eXBlLnByZWZlcnJlZEVuY29kaW5nID0gTmVnb3RpYXRvci5wcm90b3R5cGUuZW5jb2Rpbmc7XG4gICAgTmVnb3RpYXRvci5wcm90b3R5cGUucHJlZmVycmVkRW5jb2RpbmdzID0gTmVnb3RpYXRvci5wcm90b3R5cGUuZW5jb2RpbmdzO1xuICAgIE5lZ290aWF0b3IucHJvdG90eXBlLnByZWZlcnJlZExhbmd1YWdlID0gTmVnb3RpYXRvci5wcm90b3R5cGUubGFuZ3VhZ2U7XG4gICAgTmVnb3RpYXRvci5wcm90b3R5cGUucHJlZmVycmVkTGFuZ3VhZ2VzID0gTmVnb3RpYXRvci5wcm90b3R5cGUubGFuZ3VhZ2VzO1xuICAgIE5lZ290aWF0b3IucHJvdG90eXBlLnByZWZlcnJlZE1lZGlhVHlwZSA9IE5lZ290aWF0b3IucHJvdG90eXBlLm1lZGlhVHlwZTtcbiAgICBOZWdvdGlhdG9yLnByb3RvdHlwZS5wcmVmZXJyZWRNZWRpYVR5cGVzID0gTmVnb3RpYXRvci5wcm90b3R5cGUubWVkaWFUeXBlcztcbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9hY2NlcHRzL25vZGVfbW9kdWxlcy9taW1lLWRiL2RiLmpzb25cbnZhciByZXF1aXJlX2RiMyA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9hY2NlcHRzL25vZGVfbW9kdWxlcy9taW1lLWRiL2RiLmpzb25cIihleHBvcnRzMiwgbW9kdWxlMikge1xuICAgIG1vZHVsZTIuZXhwb3J0cyA9IHtcbiAgICAgIFwiYXBwbGljYXRpb24vMWQtaW50ZXJsZWF2ZWQtcGFyaXR5ZmVjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vM2dwZGFzaC1xb2UtcmVwb3J0K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNoYXJzZXQ6IFwiVVRGLThcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi8zZ3BwLWltcyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uLzNncHBoYWwranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vM2dwcGhhbGZvcm1zK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2EybFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2FjZStjYm9yXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vYWNlK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2FjZS1ncm91cGNvbW0rY2JvclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2FjZS10cmwrY2JvclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2FjdGl2ZW1lc3NhZ2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9hY3Rpdml0eStqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9haWYrY2JvclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2FpZitqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9hbHRvLWNkbmkranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vYWx0by1jZG5pZmlsdGVyK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2FsdG8tY29zdG1hcCtqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9hbHRvLWNvc3RtYXBmaWx0ZXIranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vYWx0by1kaXJlY3RvcnkranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vYWx0by1lbmRwb2ludGNvc3QranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vYWx0by1lbmRwb2ludGNvc3RwYXJhbXMranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vYWx0by1lbmRwb2ludHByb3AranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vYWx0by1lbmRwb2ludHByb3BwYXJhbXMranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vYWx0by1lcnJvcitqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9hbHRvLW5ldHdvcmttYXAranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vYWx0by1uZXR3b3JrbWFwZmlsdGVyK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2FsdG8tcHJvcG1hcCtqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9hbHRvLXByb3BtYXBwYXJhbXMranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vYWx0by10aXBzK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2FsdG8tdGlwc3BhcmFtcytqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9hbHRvLXVwZGF0ZXN0cmVhbWNvbnRyb2wranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vYWx0by11cGRhdGVzdHJlYW1wYXJhbXMranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vYW1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vYW5kcmV3LWluc2V0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZXpcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2FwcGluc3RhbGxlclwiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImFwcGluc3RhbGxlclwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vYXBwbGVmaWxlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vYXBwbGl4d2FyZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYXdcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2FwcHhcIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJhcHB4XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9hcHB4YnVuZGxlXCI6IHtcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYXBweGJ1bmRsZVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vYXQrand0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vYXRmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vYXRmeFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2F0b20reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJhdG9tXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9hdG9tY2F0K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYXRvbWNhdFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vYXRvbWRlbGV0ZWQreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJhdG9tZGVsZXRlZFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vYXRvbWljbWFpbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2F0b21zdmMreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJhdG9tc3ZjXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9hdHNjLWR3ZCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImR3ZFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vYXRzYy1keW5hbWljLWV2ZW50LW1lc3NhZ2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9hdHNjLWhlbGQreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJoZWxkXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9hdHNjLXJkdCtqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9hdHNjLXJzYXQreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJyc2F0XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9hdHhtbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2F1dGgtcG9saWN5K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vYXV0b21hdGlvbm1sLWFtbCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImFtbFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vYXV0b21hdGlvbm1sLWFtbHgremlwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYW1seFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vYmFjbmV0LXhkZCt6aXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9iYXRjaC1zbXRwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vYmRvY1wiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImJkb2NcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2JlZXAreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY2hhcnNldDogXCJVVEYtOFwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2J1ZnJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9jMnBhXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vY2FsZW5kYXIranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vY2FsZW5kYXIreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ4Y3NcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2NhbGwtY29tcGxldGlvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2NhbHMtMTg0MFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2NhcHRpdmUranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vY2JvclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2Nib3Itc2VxXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vY2NjZXhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9jY21wK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vY2N4bWwreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJjY3htbFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vY2RhK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNoYXJzZXQ6IFwiVVRGLThcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9jZGZ4K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY2RmeFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vY2RtaS1jYXBhYmlsaXR5XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY2RtaWFcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2NkbWktY29udGFpbmVyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY2RtaWNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2NkbWktZG9tYWluXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY2RtaWRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2NkbWktb2JqZWN0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY2RtaW9cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2NkbWktcXVldWVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJjZG1pcVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vY2RuaVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2NlK2Nib3JcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9jZWFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9jZWEtMjAxOCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2NlbGxtbCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2Nmd1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2NpZC1lZGhvYytjYm9yLXNlcVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2NpdHkranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vY2l0eStqc29uLXNlcVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2NsclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2NsdWUreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9jbHVlX2luZm8reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9jbXNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9jbnJwK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vY29hcC1lYXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9jb2FwLWdyb3VwK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2NvYXAtcGF5bG9hZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2NvbW1vbmdyb3VuZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2NvbmNpc2UtcHJvYmxlbS1kZXRhaWxzK2Nib3JcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9jb25mZXJlbmNlLWluZm8reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9jb3NlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vY29zZS1rZXlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9jb3NlLWtleS1zZXRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9jb3NlLXg1MDlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9jcGwreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJjcGxcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2NzcmF0dHJzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vY3N0YSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2NzdGFkYXRhK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vY3N2bStqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9jdS1zZWVtZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY3VcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2N3bFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImN3bFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vY3dsK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2N3bCt5YW1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vY3d0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vY3liZXJjYXNoXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZGFydFwiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZGFzaCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1wZFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZGFzaC1wYXRjaCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1wcFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZGFzaGRlbHRhXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZGF2bW91bnQreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJkYXZtb3VudFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZGNhLXJmdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2RjZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2RlYy1keFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2RpYWxvZy1pbmZvK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZGljb21cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJkY21cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2RpY29tK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2RpY29tK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZGlpXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZGl0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZG5zXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZG5zK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2Rucy1tZXNzYWdlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZG9jYm9vayt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZGJrXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9kb3RzK2Nib3JcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9kcG9wK2p3dFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2Rza3BwK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZHNzYytkZXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJkc3NjXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9kc3NjK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieGRzc2NcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2R2Y3NcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9lYXQrY3d0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZWF0K2p3dFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2VhdC1idW4rY2JvclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2VhdC1idW4ranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZWF0LXVjcytjYm9yXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZWF0LXVjcytqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9lY21hc2NyaXB0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImVjbWFcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2VkaG9jK2Nib3Itc2VxXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZWRpLWNvbnNlbnRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9lZGkteDEyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZWRpZmFjdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2VcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2VmaVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2VsbStqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY2hhcnNldDogXCJVVEYtOFwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2VsbSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2VtZXJnZW5jeWNhbGxkYXRhLmNhcCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjaGFyc2V0OiBcIlVURi04XCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZW1lcmdlbmN5Y2FsbGRhdGEuY29tbWVudCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2VtZXJnZW5jeWNhbGxkYXRhLmNvbnRyb2wreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9lbWVyZ2VuY3ljYWxsZGF0YS5kZXZpY2VpbmZvK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZW1lcmdlbmN5Y2FsbGRhdGEuZWNhbGwubXNkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZW1lcmdlbmN5Y2FsbGRhdGEubGVnYWN5ZXNuK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2VtZXJnZW5jeWNhbGxkYXRhLnByb3ZpZGVyaW5mbyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2VtZXJnZW5jeWNhbGxkYXRhLnNlcnZpY2VpbmZvK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZW1lcmdlbmN5Y2FsbGRhdGEuc3Vic2NyaWJlcmluZm8reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9lbWVyZ2VuY3ljYWxsZGF0YS52ZWRzK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZW1tYSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImVtbWFcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2Vtb3Rpb25tbCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImVtb3Rpb25tbFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZW5jYXBydHBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9lbnRpdHktc3RhdGVtZW50K2p3dFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2VwcCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2VwdWIremlwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZXB1YlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZXNob3BcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9leGlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJleGlcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2V4cGVjdC1jdC1yZXBvcnQranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZXhwcmVzc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImV4cFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZmFzdGluZm9zZXRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9mYXN0c29hcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2ZkZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImZkZlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZmR0K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZmR0XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9maGlyK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjaGFyc2V0OiBcIlVURi04XCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZmhpcit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjaGFyc2V0OiBcIlVURi04XCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZmlkby50cnVzdGVkLWFwcHMranNvblwiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZml0c1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2ZsZXhmZWNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9mb250LXNmbnRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9mb250LXRkcGZyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicGZyXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9mb250LXdvZmZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9mcmFtZXdvcmstYXR0cmlidXRlcyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2dlbytqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJnZW9qc29uXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9nZW8ranNvbi1zZXFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9nZW9wYWNrYWdlK3NxbGl0ZTNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9nZW9wb3NlK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2dlb3hhY21sK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2dlb3hhY21sK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZ2x0Zi1idWZmZXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9nbWwreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJnbWxcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2duYXAtYmluZGluZy1qd3NcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9nbmFwLWJpbmRpbmctandzZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2duYXAtYmluZGluZy1yb3RhdGlvbi1qd3NcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9nbmFwLWJpbmRpbmctcm90YXRpb24tandzZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2dweCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZ3B4XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9ncmliXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZ3hmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJneGZcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2d6aXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJnelwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vaDIyNFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2hlbGQreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9oanNvblwiOiB7XG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImhqc29uXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9obDd2Mit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjaGFyc2V0OiBcIlVURi04XCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vaHR0cFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2h5cGVyc3R1ZGlvXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic3RrXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9pYmUta2V5LXJlcXVlc3QreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9pYmUtcGtnLXJlcGx5K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vaWJlLXBwLWRhdGFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9pZ2VzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vaW0taXNjb21wb3NpbmcreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY2hhcnNldDogXCJVVEYtOFwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2luZGV4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vaW5kZXguY21kXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vaW5kZXgub2JqXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vaW5kZXgucmVzcG9uc2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9pbmRleC52bmRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9pbmttbCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImlua1wiLCBcImlua21sXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9pb3RwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vaXBmaXhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJpcGZpeFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vaXBwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vaXN1cFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2l0cyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIml0c1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vamF2YS1hcmNoaXZlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiamFyXCIsIFwid2FyXCIsIFwiZWFyXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9qYXZhLXNlcmlhbGl6ZWQtb2JqZWN0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzZXJcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2phdmEtdm1cIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImNsYXNzXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9qYXZhc2NyaXB0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBjaGFyc2V0OiBcIlVURi04XCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wianNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2pmMmZlZWQranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vam9zZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2pvc2UranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vanJkK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2pzY2FsZW5kYXIranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vanNjb250YWN0K2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjaGFyc2V0OiBcIlVURi04XCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wianNvblwiLCBcIm1hcFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vanNvbi1wYXRjaCtqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9qc29uLXNlcVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2pzb241XCI6IHtcbiAgICAgICAgZXh0ZW5zaW9uczogW1wianNvbjVcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2pzb25tbCtqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImpzb25tbFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vanNvbnBhdGhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9qd2sranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vandrLXNldCtqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9qd2stc2V0K2p3dFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2p3dFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2twbWwtcmVxdWVzdCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2twbWwtcmVzcG9uc2UreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9sZCtqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJqc29ubGRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2xncit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImxnclwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbGluay1mb3JtYXRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9saW5rc2V0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbGlua3NldCtqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9sb2FkLWNvbnRyb2wreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9sb2dvdXQrand0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbG9zdCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImxvc3R4bWxcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2xvc3RzeW5jK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbHBmK3ppcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2VcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2x4ZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL21hYy1iaW5oZXg0MFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImhxeFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbWFjLWNvbXBhY3Rwcm9cIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImNwdFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbWFjd3JpdGVpaVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL21hZHMreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtYWRzXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9tYW5pZmVzdCtqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY2hhcnNldDogXCJVVEYtOFwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIndlYm1hbmlmZXN0XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9tYXJjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibXJjXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9tYXJjeG1sK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibXJjeFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbWF0aGVtYXRpY2FcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtYVwiLCBcIm5iXCIsIFwibWJcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL21hdGhtbCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1hdGhtbFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbWF0aG1sLWNvbnRlbnQreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9tYXRobWwtcHJlc2VudGF0aW9uK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbWJtcy1hc3NvY2lhdGVkLXByb2NlZHVyZS1kZXNjcmlwdGlvbit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL21ibXMtZGVyZWdpc3Rlcit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL21ibXMtZW52ZWxvcGUreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9tYm1zLW1zayt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL21ibXMtbXNrLXJlc3BvbnNlK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbWJtcy1wcm90ZWN0aW9uLWRlc2NyaXB0aW9uK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbWJtcy1yZWNlcHRpb24tcmVwb3J0K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbWJtcy1yZWdpc3Rlcit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL21ibXMtcmVnaXN0ZXItcmVzcG9uc2UreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9tYm1zLXNjaGVkdWxlK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbWJtcy11c2VyLXNlcnZpY2UtZGVzY3JpcHRpb24reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9tYm94XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibWJveFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbWVkaWEtcG9saWN5LWRhdGFzZXQreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtcGZcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL21lZGlhX2NvbnRyb2wreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9tZWRpYXNlcnZlcmNvbnRyb2wreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtc2NtbFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbWVyZ2UtcGF0Y2granNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbWV0YWxpbmsreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1ldGFsaW5rXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9tZXRhbGluazQreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtZXRhNFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbWV0cyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1ldHNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL21mNFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL21pa2V5XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbWlwY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL21pc3NpbmctYmxvY2tzK2Nib3Itc2VxXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbW10LWFlaSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1hZWlcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL21tdC11c2QreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtdXNkXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9tb2RzK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibW9kc1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbW9zcy1rZXlzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbW9zcy1zaWduYXR1cmVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9tb3Nza2V5LWRhdGFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9tb3Nza2V5LXJlcXVlc3RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9tcDIxXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibTIxXCIsIFwibXAyMVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbXA0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibXA0XCIsIFwibXBnNFwiLCBcIm1wNHNcIiwgXCJtNHBcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL21wZWc0LWdlbmVyaWNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9tcGVnNC1pb2RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9tcGVnNC1pb2QteG10XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbXJiLWNvbnN1bWVyK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbXJiLXB1Ymxpc2greG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9tc2MtaXZyK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNoYXJzZXQ6IFwiVVRGLThcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9tc2MtbWl4ZXIreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY2hhcnNldDogXCJVVEYtOFwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL21zaXhcIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtc2l4XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9tc2l4YnVuZGxlXCI6IHtcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibXNpeGJ1bmRsZVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbXN3b3JkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZG9jXCIsIFwiZG90XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9tdWQranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbXVsdGlwYXJ0LWNvcmVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9teGZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJteGZcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL24tcXVhZHNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJucVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbi10cmlwbGVzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibnRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL25hc2RhdGFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9uZXdzLWNoZWNrZ3JvdXBzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY2hhcnNldDogXCJVUy1BU0NJSVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9uZXdzLWdyb3VwaW5mb1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNoYXJzZXQ6IFwiVVMtQVNDSUlcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbmV3cy10cmFuc21pc3Npb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9ubHNtbCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL25vZGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJjanNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL25zc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL29hdXRoLWF1dGh6LXJlcStqd3RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9vYmxpdmlvdXMtZG5zLW1lc3NhZ2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9vY3NwLXJlcXVlc3RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9vY3NwLXJlc3BvbnNlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJiaW5cIiwgXCJkbXNcIiwgXCJscmZcIiwgXCJtYXJcIiwgXCJzb1wiLCBcImRpc3RcIiwgXCJkaXN0elwiLCBcInBrZ1wiLCBcImJwa1wiLCBcImR1bXBcIiwgXCJlbGNcIiwgXCJkZXBsb3lcIiwgXCJleGVcIiwgXCJkbGxcIiwgXCJkZWJcIiwgXCJkbWdcIiwgXCJpc29cIiwgXCJpbWdcIiwgXCJtc2lcIiwgXCJtc3BcIiwgXCJtc21cIiwgXCJidWZmZXJcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL29kYVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm9kYVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vb2RtK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vb2R4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vb2VicHMtcGFja2FnZSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm9wZlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vb2dnXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wib2d4XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9vaHR0cC1rZXlzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vb21kb2MreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm9tZG9jXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9vbmVub3RlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJvbmV0b2NcIiwgXCJvbmV0b2MyXCIsIFwib25ldG1wXCIsIFwib25lcGtnXCIsIFwib25lXCIsIFwib25lYVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vb3BjLW5vZGVzZXQreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9vc2NvcmVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9veHBzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wib3hwc1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcDIxXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcDIxK3ppcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2VcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3AycC1vdmVybGF5K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicmVsb1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcGFyaXR5ZmVjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcGFzc3BvcnRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9wYXRjaC1vcHMtZXJyb3IreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ4ZXJcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3BkZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInBkZlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcGR4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcGVtLWNlcnRpZmljYXRlLWNoYWluXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcGdwLWVuY3J5cHRlZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInBncFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcGdwLWtleXNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJhc2NcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3BncC1zaWduYXR1cmVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzaWdcIiwgXCJhc2NcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3BpY3MtcnVsZXNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInByZlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcGlkZit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjaGFyc2V0OiBcIlVURi04XCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcGlkZi1kaWZmK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNoYXJzZXQ6IFwiVVRGLThcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9wa2NzMTBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwMTBcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3BrY3MxMlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3BrY3M3LW1pbWVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwN21cIiwgXCJwN2NcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3BrY3M3LXNpZ25hdHVyZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInA3c1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcGtjczhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwOFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcGtjczgtZW5jcnlwdGVkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcGtpeC1hdHRyLWNlcnRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJhY1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcGtpeC1jZXJ0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY2VyXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9wa2l4LWNybFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImNybFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcGtpeC1wa2lwYXRoXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicGtpcGF0aFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcGtpeGNtcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInBraVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcGxzK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicGxzXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9wb2Mtc2V0dGluZ3MreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY2hhcnNldDogXCJVVEYtOFwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3Bvc3RzY3JpcHRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImFpXCIsIFwiZXBzXCIsIFwicHNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3Bwc3AtdHJhY2tlcitqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9wcml2YXRlLXRva2VuLWlzc3Vlci1kaXJlY3RvcnlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9wcml2YXRlLXRva2VuLXJlcXVlc3RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9wcml2YXRlLXRva2VuLXJlc3BvbnNlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcHJvYmxlbStqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9wcm9ibGVtK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcHJvdmVuYW5jZSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInByb3Z4XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9wcm92aWRlZC1jbGFpbXMrand0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcHJzLmFsdmVzdHJhbmQudGl0cmF4LXNoZWV0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcHJzLmN3d1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImN3d1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcHJzLmN5blwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNoYXJzZXQ6IFwiNy1CSVRcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcHJzLmhwdWIremlwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcHJzLmltcGxpZWQtZG9jdW1lbnQreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9wcnMuaW1wbGllZC1leGVjdXRhYmxlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcHJzLmltcGxpZWQtb2JqZWN0K2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3Bycy5pbXBsaWVkLW9iamVjdCtqc29uLXNlcVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3Bycy5pbXBsaWVkLW9iamVjdCt5YW1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcHJzLmltcGxpZWQtc3RydWN0dXJlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcHJzLm1heWZpbGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9wcnMubnByZW5kXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcHJzLnBsdWNrZXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9wcnMucmRmLXhtbC1jcnlwdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3Bycy52Y2ZiemlwMlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3Bycy54c2YreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ4c2ZcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3Bza2MreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwc2tjeG1sXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9wdmQranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcXNpZ1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3JhbWwreWFtbFwiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicmFtbFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcmFwdG9yZmVjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcmRhcCtqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9yZGYreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJyZGZcIiwgXCJvd2xcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3JlZ2luZm8reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJyaWZcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3JlbGF4LW5nLWNvbXBhY3Qtc3ludGF4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicm5jXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9yZW1vdGUtcHJpbnRpbmdcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3JlcHV0b24ranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcmVzb2x2ZS1yZXNwb25zZStqd3RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9yZXNvdXJjZS1saXN0cyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInJsXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9yZXNvdXJjZS1saXN0cy1kaWZmK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicmxkXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9yZmMreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9yaXNjb3NcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9ybG1pK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcmxzLXNlcnZpY2VzK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicnNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3JvdXRlLWFwZCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInJhcGRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3JvdXRlLXMtdHNpZCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNsc1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcm91dGUtdXNkK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicnVzZFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcnBraS1jaGVja2xpc3RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9ycGtpLWdob3N0YnVzdGVyc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImdiclwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcnBraS1tYW5pZmVzdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1mdFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcnBraS1wdWJsaWNhdGlvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3Jwa2ktcm9hXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicm9hXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9ycGtpLXNpZ25lZC10YWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9ycGtpLXVwZG93blwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3JzZCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicnNkXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9yc3MreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInJzc1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcnRmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJydGZcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3J0cGxvb3BiYWNrXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcnR4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vc2FtbGFzc2VydGlvbit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3NhbWxtZXRhZGF0YSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3NhcmlmK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3NhcmlmLWV4dGVybmFsLXByb3BlcnRpZXMranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vc2JlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vc2JtbCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNibWxcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3NjYWlwK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vc2NpbStqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9zY3ZwLWN2LXJlcXVlc3RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzY3FcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3NjdnAtY3YtcmVzcG9uc2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzY3NcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3NjdnAtdnAtcmVxdWVzdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNwcVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vc2N2cC12cC1yZXNwb25zZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNwcFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vc2RwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic2RwXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9zZWNldmVudCtqd3RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9zZW5tbCtjYm9yXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vc2VubWwranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vc2VubWwreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzZW5tbHhcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3Nlbm1sLWV0Y2grY2JvclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3Nlbm1sLWV0Y2granNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vc2VubWwtZXhpXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vc2Vuc21sK2Nib3JcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9zZW5zbWwranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vc2Vuc21sK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic2Vuc21seFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vc2Vuc21sLWV4aVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3NlcCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3NlcC1leGlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9zZXNzaW9uLWluZm9cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9zZXQtcGF5bWVudFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3NldC1wYXltZW50LWluaXRpYXRpb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzZXRwYXlcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3NldC1yZWdpc3RyYXRpb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9zZXQtcmVnaXN0cmF0aW9uLWluaXRpYXRpb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzZXRyZWdcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3NnbWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9zZ21sLW9wZW4tY2F0YWxvZ1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3NoZit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNoZlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vc2lldmVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzaXZcIiwgXCJzaWV2ZVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vc2ltcGxlLWZpbHRlcit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3NpbXBsZS1tZXNzYWdlLXN1bW1hcnlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9zaW1wbGVzeW1ib2xjb250YWluZXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9zaXBjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vc2xhdGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9zbWlsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9zbWlsK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic21pXCIsIFwic21pbFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vc21wdGUzMzZtXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vc29hcCtmYXN0aW5mb3NldFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3NvYXAreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9zcGFycWwtcXVlcnlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJycVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vc3BhcnFsLXJlc3VsdHMreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzcnhcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3NwZHgranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vc3Bpcml0cy1ldmVudCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3NxbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNxbFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vc3Jnc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImdyYW1cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3NyZ3MreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJncnhtbFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vc3J1K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic3J1XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9zc2RsK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzc2RsXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9zc2xrZXlsb2dmaWxlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vc3NtbCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNzbWxcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3N0MjExMC00MVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3N0aXgranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vc3RyYXR1bVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3N3aWQrY2JvclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3N3aWQreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzd2lkdGFnXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi90YW1wLWFwZXgtdXBkYXRlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdGFtcC1hcGV4LXVwZGF0ZS1jb25maXJtXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdGFtcC1jb21tdW5pdHktdXBkYXRlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdGFtcC1jb21tdW5pdHktdXBkYXRlLWNvbmZpcm1cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi90YW1wLWVycm9yXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdGFtcC1zZXF1ZW5jZS1hZGp1c3RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi90YW1wLXNlcXVlbmNlLWFkanVzdC1jb25maXJtXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdGFtcC1zdGF0dXMtcXVlcnlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi90YW1wLXN0YXR1cy1yZXNwb25zZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3RhbXAtdXBkYXRlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdGFtcC11cGRhdGUtY29uZmlybVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3RhclwiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdGF4aWkranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdGQranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdGVpK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1widGVpXCIsIFwidGVpY29ycHVzXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi90ZXRyYV9pc2lcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi90aHJhdWQreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ0ZmlcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3RpbWVzdGFtcC1xdWVyeVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3RpbWVzdGFtcC1yZXBseVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3RpbWVzdGFtcGVkLWRhdGFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ0c2RcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3Rsc3JwdCtnemlwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdGxzcnB0K2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3RtK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3RuYXV0aGxpc3RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi90b2MrY2JvclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3Rva2VuLWludHJvc3BlY3Rpb24rand0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdG9tbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1widG9tbFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdHJpY2tsZS1pY2Utc2RwZnJhZ1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3RyaWdcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ0cmlnXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi90cnVzdC1jaGFpbitqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi90cnVzdC1tYXJrK2p3dFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3RydXN0LW1hcmstZGVsZWdhdGlvbitqd3RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi90dG1sK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1widHRtbFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdHZlLXRyaWdnZXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi90emlmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdHppZi1sZWFwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdWJqc29uXCI6IHtcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1widWJqXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi91Y2NzK2Nib3JcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi91amNzK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3VscGZlY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3VyYy1ncnBzaGVldCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3VyYy1yZXNzaGVldCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInJzaGVldFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdXJjLXRhcmdldGRlc2MreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ0ZFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdXJjLXVpc29ja2V0ZGVzYyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdmMrY29zZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZjK2p3dFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZjYXJkK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZjYXJkK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdmVtbWlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92aXZpZGVuY2Uuc2NyaXB0ZmlsZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjEwMDBtaW5kcy5kZWNpc2lvbi1tb2RlbCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIjFrbVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjFvYlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLXByb3NlK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAtcHJvc2UtcGMzYSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLXByb3NlLXBjM2FjaCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLXByb3NlLXBjM2NoK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAtcHJvc2UtcGM4K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAtdjJ4LWxvY2FsLXNlcnZpY2UtaW5mb3JtYXRpb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC41Z25hc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLjVnc2EyeFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLjVnc2EyeC1sb2NhbC1zZXJ2aWNlLWluZm9ybWF0aW9uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAuNWdzdjJ4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAuNWdzdjJ4LWxvY2FsLXNlcnZpY2UtaW5mb3JtYXRpb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5hY2Nlc3MtdHJhbnNmZXItZXZlbnRzK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAuYnNmK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAuY3JzK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAuY3VycmVudC1sb2NhdGlvbi1kaXNjb3ZlcnkreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5nbW9wK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAuZ3RwY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLmludGVyd29ya2luZy1kYXRhXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAubHBwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAubWMtc2lnbmFsbGluZy1lYXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5tY2RhdGEtYWZmaWxpYXRpb24tY29tbWFuZCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLm1jZGF0YS1pbmZvK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAubWNkYXRhLW1zZ3N0b3JlLWN0cmwtcmVxdWVzdCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLm1jZGF0YS1wYXlsb2FkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAubWNkYXRhLXJlZ3JvdXAreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5tY2RhdGEtc2VydmljZS1jb25maWcreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5tY2RhdGEtc2lnbmFsbGluZ1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLm1jZGF0YS11ZS1jb25maWcreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5tY2RhdGEtdXNlci1wcm9maWxlK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAubWNwdHQtYWZmaWxpYXRpb24tY29tbWFuZCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLm1jcHR0LWZsb29yLXJlcXVlc3QreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5tY3B0dC1pbmZvK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAubWNwdHQtbG9jYXRpb24taW5mbyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLm1jcHR0LW1ibXMtdXNhZ2UtaW5mbyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLm1jcHR0LXJlZ3JvdXAreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5tY3B0dC1zZXJ2aWNlLWNvbmZpZyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLm1jcHR0LXNpZ25lZCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLm1jcHR0LXVlLWNvbmZpZyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLm1jcHR0LXVlLWluaXQtY29uZmlnK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAubWNwdHQtdXNlci1wcm9maWxlK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAubWN2aWRlby1hZmZpbGlhdGlvbi1jb21tYW5kK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAubWN2aWRlby1pbmZvK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAubWN2aWRlby1sb2NhdGlvbi1pbmZvK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAubWN2aWRlby1tYm1zLXVzYWdlLWluZm8reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5tY3ZpZGVvLXJlZ3JvdXAreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5tY3ZpZGVvLXNlcnZpY2UtY29uZmlnK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAubWN2aWRlby10cmFuc21pc3Npb24tcmVxdWVzdCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLm1jdmlkZW8tdWUtY29uZmlnK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAubWN2aWRlby11c2VyLXByb2ZpbGUreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5taWQtY2FsbCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLm5nYXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5wZmNwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAucGljLWJ3LWxhcmdlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicGxiXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5waWMtYnctc21hbGxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwc2JcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLnBpYy1idy12YXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwdmJcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLnBpbmFwcC1pbmZvK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAuczFhcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLnNlYWwtZ3JvdXAtZG9jK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAuc2VhbC1pbmZvK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAuc2VhbC1sb2NhdGlvbi1pbmZvK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAuc2VhbC1tYm1zLXVzYWdlLWluZm8reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5zZWFsLW5ldHdvcmstcW9zLW1hbmFnZW1lbnQtaW5mbyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLnNlYWwtdWUtY29uZmlnLWluZm8reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5zZWFsLXVuaWNhc3QtaW5mbyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLnNlYWwtdXNlci1wcm9maWxlLWluZm8reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5zbXNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5zbXMreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5zcnZjYy1leHQreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5zcnZjYy1pbmZvK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAuc3RhdGUtYW5kLWV2ZW50LWluZm8reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC51c3NkK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAudjJ4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAudmFlLWluZm8reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcDIuYmNtY3NpbmZvK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAyLnNtc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwMi50Y2FwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widGNhcFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNsaWdodHNzb2Z0d2FyZS5pbWFnZXNjYWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM20ucG9zdC1pdC1ub3Rlc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInB3blwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFjY3BhYy5zaW1wbHkuYXNvXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYXNvXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYWNjcGFjLnNpbXBseS5pbXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJpbXBcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hY20uYWRkcmVzc3hmZXIranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFjbS5jaGF0Ym90K2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hY3Vjb2JvbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImFjdVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFjdWNvcnBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJhdGNcIiwgXCJhY3V0Y1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFkb2JlLmFpci1hcHBsaWNhdGlvbi1pbnN0YWxsZXItcGFja2FnZSt6aXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImFpclwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFkb2JlLmZsYXNoLm1vdmllXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFkb2JlLmZvcm1zY2VudHJhbC5mY2R0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZmNkdFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFkb2JlLmZ4cFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImZ4cFwiLCBcImZ4cGxcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hZG9iZS5wYXJ0aWFsLXVwbG9hZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hZG9iZS54ZHAreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ4ZHBcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hZG9iZS54ZmRmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ4ZmRmXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYWV0aGVyLmltcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hZnBjLmFmcGxpbmVkYXRhXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFmcGMuYWZwbGluZWRhdGEtcGFnZWRlZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hZnBjLmNtb2NhLWNtcmVzb3VyY2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYWZwYy5mb2NhLWNoYXJzZXRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYWZwYy5mb2NhLWNvZGVkZm9udFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hZnBjLmZvY2EtY29kZXBhZ2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYWZwYy5tb2RjYVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hZnBjLm1vZGNhLWNtdGFibGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYWZwYy5tb2RjYS1mb3JtZGVmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFmcGMubW9kY2EtbWVkaXVtbWFwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFmcGMubW9kY2Etb2JqZWN0Y29udGFpbmVyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFmcGMubW9kY2Etb3ZlcmxheVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hZnBjLm1vZGNhLXBhZ2VzZWdtZW50XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFnZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImFnZVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFoLWJhcmNvZGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5haGVhZC5zcGFjZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImFoZWFkXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYWlyemlwLmZpbGVzZWN1cmUuYXpmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYXpmXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYWlyemlwLmZpbGVzZWN1cmUuYXpzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYXpzXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYW1hZGV1cytqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYW1hem9uLmVib29rXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJhendcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hbWF6b24ubW9iaTgtZWJvb2tcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYW1lcmljYW5keW5hbWljcy5hY2NcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJhY2NcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hbWlnYS5hbWlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJhbWlcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hbXVuZHNlbi5tYXplK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFuZHJvaWQub3RhXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFuZHJvaWQucGFja2FnZS1hcmNoaXZlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJhcGtcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hbmtpXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFuc2VyLXdlYi1jZXJ0aWZpY2F0ZS1pc3N1ZS1pbml0aWF0aW9uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY2lpXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYW5zZXItd2ViLWZ1bmRzLXRyYW5zZmVyLWluaXRpYXRpb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImZ0aVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFudGl4LmdhbWUtY29tcG9uZW50XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYXR4XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYXBhY2hlLmFycm93LmZpbGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYXBhY2hlLmFycm93LnN0cmVhbVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hcGFjaGUucGFycXVldFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hcGFjaGUudGhyaWZ0LmJpbmFyeVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hcGFjaGUudGhyaWZ0LmNvbXBhY3RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYXBhY2hlLnRocmlmdC5qc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFwZXhsYW5nXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFwaStqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYXBsZXh0b3Iud2FycnAranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFwb3RoZWtlbmRlLnJlc2VydmF0aW9uK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hcHBsZS5pbnN0YWxsZXIreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtcGtnXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYXBwbGUua2V5bm90ZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImtleVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFwcGxlLm1wZWd1cmxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtM3U4XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYXBwbGUubnVtYmVyc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm51bWJlcnNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hcHBsZS5wYWdlc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInBhZ2VzXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYXBwbGUucGtwYXNzXCI6IHtcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicGtwYXNzXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYXJhc3RyYS5zd2lcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hcmlzdGFuZXR3b3Jrcy5zd2lcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzd2lcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hcnRpc2FuK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hcnRzcXVhcmVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYXN0cmFlYS1zb2Z0d2FyZS5pb3RhXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiaW90YVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmF1ZGlvZ3JhcGhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJhZXBcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hdXRvZGVzay5mYnhcIjoge1xuICAgICAgICBleHRlbnNpb25zOiBbXCJmYnhcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hdXRvcGFja2FnZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hdmFsb24ranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmF2aXN0YXIreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYmFsc2FtaXEuYm1tbCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImJtbWxcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5iYWxzYW1pcS5ibXByXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmJhbmFuYS1hY2NvdW50aW5nXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmJiZi51c3AuZXJyb3JcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYmJmLnVzcC5tc2dcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYmJmLnVzcC5tc2cranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmJla2l0enVyLXN0ZWNoK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5iZWxpZ2h0c29mdC5saHpkK3ppcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2VcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5iZWxpZ2h0c29mdC5saHpsK3ppcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2VcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5iaW50Lm1lZC1jb250ZW50XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmJpb3BheC5yZGYreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYmxpbmstaWRiLXZhbHVlLXdyYXBwZXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYmx1ZWljZS5tdWx0aXBhc3NcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtcG1cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ibHVldG9vdGguZXAub29iXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmJsdWV0b290aC5sZS5vb2JcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYm1pXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYm1pXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYnBmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmJwZjNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYnVzaW5lc3NvYmplY3RzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicmVwXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYnl1LnVhcGkranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmJ6aXAzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmMzdm9jLnNjaGVkdWxlK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmNhYi1qc2NyaXB0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmNhbm9uLWNwZGxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuY2Fub24tbGlwc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jYXBhc3lzdGVtcy1wZytqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuY2VuZGlvLnRoaW5saW5jLmNsaWVudGNvbmZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuY2VudHVyeS1zeXN0ZW1zLnRjcF9zdHJlYW1cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuY2hlbWRyYXcreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJjZHhtbFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmNoZXNzLXBnblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jaGlwbnV0cy5rYXJhb2tlLW1tZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1tZFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmNpZWRpXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmNpbmRlcmVsbGFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJjZHlcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jaXJwYWNrLmlzZG4tZXh0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmNpdGF0aW9uc3R5bGVzLnN0eWxlK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY3NsXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuY2xheW1vcmVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJjbGFcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jbG9hbnRvLnJwOVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInJwOVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmNsb25rLmM0Z3JvdXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJjNGdcIiwgXCJjNGRcIiwgXCJjNGZcIiwgXCJjNHBcIiwgXCJjNHVcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jbHVldHJ1c3QuY2FydG9tb2JpbGUtY29uZmlnXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYzExYW1jXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuY2x1ZXRydXN0LmNhcnRvbW9iaWxlLWNvbmZpZy1wa2dcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJjMTFhbXpcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jbmNmLmhlbG0uY2hhcnQuY29udGVudC52MS50YXIrZ3ppcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jbmNmLmhlbG0uY2hhcnQucHJvdmVuYW5jZS52MS5wcm92XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmNuY2YuaGVsbS5jb25maWcudjEranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmNvZmZlZXNjcmlwdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jb2xsYWJpby54b2RvY3VtZW50cy5kb2N1bWVudFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jb2xsYWJpby54b2RvY3VtZW50cy5kb2N1bWVudC10ZW1wbGF0ZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jb2xsYWJpby54b2RvY3VtZW50cy5wcmVzZW50YXRpb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuY29sbGFiaW8ueG9kb2N1bWVudHMucHJlc2VudGF0aW9uLXRlbXBsYXRlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmNvbGxhYmlvLnhvZG9jdW1lbnRzLnNwcmVhZHNoZWV0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmNvbGxhYmlvLnhvZG9jdW1lbnRzLnNwcmVhZHNoZWV0LXRlbXBsYXRlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmNvbGxlY3Rpb24ranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmNvbGxlY3Rpb24uZG9jK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jb2xsZWN0aW9uLm5leHQranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmNvbWljYm9vayt6aXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuY29taWNib29rLXJhclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jb21tZXJjZS1iYXR0ZWxsZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jb21tb25zcGFjZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImNzcFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmNvbnRhY3QuY21zZ1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImNkYmNtc2dcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jb3Jlb3MuaWduaXRpb24ranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmNvc21vY2FsbGVyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY21jXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuY3JpY2suY2xpY2tlclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImNsa3hcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jcmljay5jbGlja2VyLmtleWJvYXJkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY2xra1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmNyaWNrLmNsaWNrZXIucGFsZXR0ZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImNsa3BcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jcmljay5jbGlja2VyLnRlbXBsYXRlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY2xrdFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmNyaWNrLmNsaWNrZXIud29yZGJhbmtcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJjbGt3XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuY3JpdGljYWx0b29scy53YnMreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ3YnNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jcnlwdGlpLnBpcGUranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmNyeXB0by1zaGFkZS1maWxlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmNyeXB0b21hdG9yLmVuY3J5cHRlZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jcnlwdG9tYXRvci52YXVsdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jdGMtcG9zbWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwbWxcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jdGN0LndzK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmN1cHMtcGRmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmN1cHMtcG9zdHNjcmlwdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jdXBzLXBwZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInBwZFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmN1cHMtcmFzdGVyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmN1cHMtcmF3XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmN1cmxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuY3VybC5jYXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImNhclwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmN1cmwucGN1cmxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInBjdXJsXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuY3lhbi5kZWFuLnJvb3QreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuY3liYW5rXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmN5Y2xvbmVkeCtqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuY3ljbG9uZWR4K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmQybC5jb3Vyc2VwYWNrYWdlMXAwK3ppcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2VcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5kM20tZGF0YXNldFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5kM20tcHJvYmxlbVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5kYXJ0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJkYXJ0XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZGF0YS12aXNpb24ucmR6XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicmR6XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZGF0YWxvZ1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5kYXRhcGFja2FnZStqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZGF0YXJlc291cmNlK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5kYmZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJkYmZcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5kY21wK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZGNtcFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmRlYmlhbi5iaW5hcnktcGFja2FnZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5kZWNlLmRhdGFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ1dmZcIiwgXCJ1dnZmXCIsIFwidXZkXCIsIFwidXZ2ZFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmRlY2UudHRtbCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInV2dFwiLCBcInV2dnRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5kZWNlLnVuc3BlY2lmaWVkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widXZ4XCIsIFwidXZ2eFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmRlY2UuemlwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widXZ6XCIsIFwidXZ2elwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmRlbm92by5mY3NlbGF5b3V0LWxpbmtcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJmZV9sYXVuY2hcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5kZXNtdW1lLm1vdmllXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmRpci1iaS5wbGF0ZS1kbC1ub3N1ZmZpeFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5kbS5kZWxlZ2F0aW9uK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmRuYVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImRuYVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmRvY3VtZW50K2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5kb2xieS5tbHBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1scFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmRvbGJ5Lm1vYmlsZS4xXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmRvbGJ5Lm1vYmlsZS4yXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmRvcmVtaXIuc2NvcmVjbG91ZC1iaW5hcnktZG9jdW1lbnRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZHBncmFwaFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImRwZ1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmRyZWFtZmFjdG9yeVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImRmYWNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5kcml2ZStqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZHMta2V5cG9pbnRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImtweHhcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5kdGcubG9jYWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZHRnLmxvY2FsLmZsYXNoXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmR0Zy5sb2NhbC5odG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmR2Yi5haXRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJhaXRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5kdmIuZHZiaXNsK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmR2Yi5kdmJqXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmR2Yi5lc2djb250YWluZXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZHZiLmlwZGNkZnRub3RpZmFjY2Vzc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5kdmIuaXBkY2VzZ2FjY2Vzc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5kdmIuaXBkY2VzZ2FjY2VzczJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZHZiLmlwZGNlc2dwZGRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZHZiLmlwZGNyb2FtaW5nXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmR2Yi5pcHR2LmFsZmVjLWJhc2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZHZiLmlwdHYuYWxmZWMtZW5oYW5jZW1lbnRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZHZiLm5vdGlmLWFnZ3JlZ2F0ZS1yb290K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmR2Yi5ub3RpZi1jb250YWluZXIreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZHZiLm5vdGlmLWdlbmVyaWMreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZHZiLm5vdGlmLWlhLW1zZ2xpc3QreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZHZiLm5vdGlmLWlhLXJlZ2lzdHJhdGlvbi1yZXF1ZXN0K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmR2Yi5ub3RpZi1pYS1yZWdpc3RyYXRpb24tcmVzcG9uc2UreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZHZiLm5vdGlmLWluaXQreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZHZiLnBmclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5kdmIuc2VydmljZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInN2Y1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmR4clwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5keW5hZ2VvXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZ2VvXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZHpyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmVhc3lrYXJhb2tlLmNkZ2Rvd25sb2FkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmVjZGlzLXVwZGF0ZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5lY2lwLnJscFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5lY2xpcHNlLmRpdHRvK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5lY293aW4uY2hhcnRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtYWdcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5lY293aW4uZmlsZXJlcXVlc3RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZWNvd2luLmZpbGV1cGRhdGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZWNvd2luLnNlcmllc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5lY293aW4uc2VyaWVzcmVxdWVzdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5lY293aW4uc2VyaWVzdXBkYXRlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmVmaS5pbWdcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZWZpLmlzb1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5lbG4remlwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmVtY2xpZW50LmFjY2Vzc3JlcXVlc3QreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZW5saXZlblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm5tbFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmVucGhhc2UuZW52b3lcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZXByaW50cy5kYXRhK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmVwc29uLmVzZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImVzZlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmVwc29uLm1zZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1zZlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmVwc29uLnF1aWNrYW5pbWVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJxYW1cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5lcHNvbi5zYWx0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic2x0XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZXBzb24uc3NmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic3NmXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZXJpY3Nzb24ucXVpY2tjYWxsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmVyb2ZzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmVzcGFzcy1lc3Bhc3MremlwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmVzemlnbm8zK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZXMzXCIsIFwiZXQzXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZXRzaS5hb2MreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZXRzaS5hc2ljLWUremlwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmV0c2kuYXNpYy1zK3ppcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2VcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ldHNpLmN1Zyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ldHNpLmlwdHZjb21tYW5kK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmV0c2kuaXB0dmRpc2NvdmVyeSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ldHNpLmlwdHZwcm9maWxlK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmV0c2kuaXB0dnNhZC1iYyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ldHNpLmlwdHZzYWQtY29kK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmV0c2kuaXB0dnNhZC1ucHZyK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmV0c2kuaXB0dnNlcnZpY2UreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZXRzaS5pcHR2c3luYyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ldHNpLmlwdHZ1ZXByb2ZpbGUreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZXRzaS5tY2lkK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmV0c2kubWhlZzVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZXRzaS5vdmVybG9hZC1jb250cm9sLXBvbGljeS1kYXRhc2V0K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmV0c2kucHN0bit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ldHNpLnNjaSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ldHNpLnNpbXNlcnZzK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmV0c2kudGltZXN0YW1wLXRva2VuXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmV0c2kudHNsK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmV0c2kudHNsLmRlclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ldS5rYXNwYXJpYW4uY2FyK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ldWRvcmEuZGF0YVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ldm9sdi5lY2lnLnByb2ZpbGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZXZvbHYuZWNpZy5zZXR0aW5nc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ldm9sdi5lY2lnLnRoZW1lXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmV4c3RyZWFtLWVtcG93ZXIremlwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmV4c3RyZWFtLXBhY2thZ2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZXpwaXgtYWxidW1cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJlejJcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5lenBpeC1wYWNrYWdlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZXozXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZi1zZWN1cmUubW9iaWxlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmZhbWlseXNlYXJjaC5nZWRjb20remlwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmZhc3Rjb3B5LWRpc2staW1hZ2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZmRmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJmZGZcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5mZHNuLm1zZWVkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibXNlZWRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5mZHNuLnNlZWRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzZWVkXCIsIFwiZGF0YWxlc3NcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5mZHNuLnN0YXRpb254bWwreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY2hhcnNldDogXCJYTUwtQkFTRURcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZmZzbnNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZmljbGFiLmZsYit6aXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZmlsbWl0LnpmY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5maW50c1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5maXJlbW9ua2V5cy5jbG91ZGNlbGxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZmxvZ3JhcGhpdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImdwaFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmZsdXh0aW1lLmNsaXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJmdGNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5mb250LWZvbnRmb3JnZS1zZmRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZnJhbWVtYWtlclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImZtXCIsIFwiZnJhbWVcIiwgXCJtYWtlclwiLCBcImJvb2tcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5mcmVlbG9nLmNvbWljXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmZyb2dhbnMuZm5jXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJmbmNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5mcm9nYW5zLmx0ZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibHRmXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZnNjLndlYmxhdW5jaFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImZzY1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmZ1amlmaWxtLmZiLmRvY3V3b3Jrc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5mdWppZmlsbS5mYi5kb2N1d29ya3MuYmluZGVyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmZ1amlmaWxtLmZiLmRvY3V3b3Jrcy5jb250YWluZXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZnVqaWZpbG0uZmIuamZpK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmZ1aml0c3Uub2FzeXNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJvYXNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5mdWppdHN1Lm9hc3lzMlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm9hMlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmZ1aml0c3Uub2FzeXMzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wib2EzXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZnVqaXRzdS5vYXN5c2dwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZmc1XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZnVqaXRzdS5vYXN5c3Byc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImJoMlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmZ1aml4ZXJveC5hcnQtZXhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZnVqaXhlcm94LmFydDRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZnVqaXhlcm94LmRkZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImRkZFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmZ1aml4ZXJveC5kb2N1d29ya3NcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ4ZHdcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5mdWppeGVyb3guZG9jdXdvcmtzLmJpbmRlclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInhiZFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmZ1aml4ZXJveC5kb2N1d29ya3MuY29udGFpbmVyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmZ1aml4ZXJveC5oYnBsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmZ1dC1taXNuZXRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZnV0b2luK2Nib3JcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZnV0b2luK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5mdXp6eXNoZWV0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZnpzXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ2E0Z2gucGFzc3BvcnQrand0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmdlbm9tYXRpeC50dXhlZG9cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ0eGRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5nZW5vemlwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmdlbnRpY3MuZ3JkK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5nZW50b28uY2F0bWV0YWRhdGEreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ2VudG9vLmVidWlsZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5nZW50b28uZWNsYXNzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmdlbnRvby5ncGtnXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmdlbnRvby5tYW5pZmVzdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5nZW50b28ucGtnbWV0YWRhdGEreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ2VudG9vLnhwYWtcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ2VvK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmdlb2N1YmUreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5nZW9nZWJyYS5maWxlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZ2diXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ2VvZ2VicmEucGluYm9hcmRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ2VvZ2VicmEuc2xpZGVzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZ2dzXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ2VvZ2VicmEudG9vbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImdndFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmdlb21ldHJ5LWV4cGxvcmVyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZ2V4XCIsIFwiZ3JlXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ2VvbmV4dFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImd4dFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmdlb3BsYW5cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJnMndcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5nZW9zcGFjZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImczd1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmdlcmJlclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5nbG9iYWxwbGF0Zm9ybS5jYXJkLWNvbnRlbnQtbWd0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmdsb2JhbHBsYXRmb3JtLmNhcmQtY29udGVudC1tZ3QtcmVzcG9uc2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ214XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZ214XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ251LnRhbGVyLmV4Y2hhbmdlK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5nbnUudGFsZXIubWVyY2hhbnQranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmdvb2dsZS1hcHBzLmF1ZGlvXCI6IHt9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ29vZ2xlLWFwcHMuZG9jdW1lbnRcIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJnZG9jXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ29vZ2xlLWFwcHMuZHJhd2luZ1wiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImdkcmF3XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ29vZ2xlLWFwcHMuZHJpdmUtc2RrXCI6IHtcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmdvb2dsZS1hcHBzLmZpbGVcIjoge30sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5nb29nbGUtYXBwcy5mb2xkZXJcIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ29vZ2xlLWFwcHMuZm9ybVwiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImdmb3JtXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ29vZ2xlLWFwcHMuZnVzaW9udGFibGVcIjoge30sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5nb29nbGUtYXBwcy5qYW1cIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJnamFtXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ29vZ2xlLWFwcHMubWFpbC1sYXlvdXRcIjoge30sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5nb29nbGUtYXBwcy5tYXBcIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJnbWFwXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ29vZ2xlLWFwcHMucGhvdG9cIjoge30sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5nb29nbGUtYXBwcy5wcmVzZW50YXRpb25cIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJnc2xpZGVzXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ29vZ2xlLWFwcHMuc2NyaXB0XCI6IHtcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZ3NjcmlwdFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmdvb2dsZS1hcHBzLnNob3J0Y3V0XCI6IHt9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ29vZ2xlLWFwcHMuc2l0ZVwiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImdzaXRlXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ29vZ2xlLWFwcHMuc3ByZWFkc2hlZXRcIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJnc2hlZXRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5nb29nbGUtYXBwcy51bmtub3duXCI6IHt9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ29vZ2xlLWFwcHMudmlkZW9cIjoge30sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5nb29nbGUtZWFydGgua21sK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wia21sXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ29vZ2xlLWVhcnRoLmttelwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImttelwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmdvdi5zay5lLWZvcm0reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5nb3Yuc2suZS1mb3JtK3ppcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2VcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5nb3Yuc2sueG1sZGF0YWNvbnRhaW5lcit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInhkY2ZcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ncHhzZWUubWFwK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmdyYWZlcVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImdxZlwiLCBcImdxc1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmdyaWRtcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ncm9vdmUtYWNjb3VudFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImdhY1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmdyb292ZS1oZWxwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZ2hmXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ3Jvb3ZlLWlkZW50aXR5LW1lc3NhZ2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJnaW1cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ncm9vdmUtaW5qZWN0b3JcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJncnZcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ncm9vdmUtdG9vbC1tZXNzYWdlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZ3RtXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ3Jvb3ZlLXRvb2wtdGVtcGxhdGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ0cGxcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ncm9vdmUtdmNhcmRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ2Y2dcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5oYWwranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmhhbCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImhhbFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmhhbmRoZWxkLWVudGVydGFpbm1lbnQreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ6bW1cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5oYmNpXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiaGJjaVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmhjK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5oY2wtYmlyZXBvcnRzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmhkdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5oZXJva3UranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmhoZS5sZXNzb24tcGxheWVyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibGVzXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaHAtaHBnbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImhwZ2xcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ocC1ocGlkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiaHBpZFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmhwLWhwc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImhwc1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmhwLWpseXRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJqbHRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ocC1wY2xcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwY2xcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ocC1wY2x4bFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInBjbHhsXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaHNsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmh0dHBob25lXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmh5ZHJvc3RhdGl4LnNvZi1kYXRhXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic2ZkLWhkc3R4XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaHlwZXIranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmh5cGVyLWl0ZW0ranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmh5cGVyZHJpdmUranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmh6bi0zZC1jcm9zc3dvcmRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaWJtLmFmcGxpbmVkYXRhXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaWJtLmVsZWN0cm9uaWMtbWVkaWFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaWJtLm1pbmlwYXlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtcHlcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5pYm0ubW9kY2FwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJhZnBcIiwgXCJsaXN0YWZwXCIsIFwibGlzdDM4MjBcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5pYm0ucmlnaHRzLW1hbmFnZW1lbnRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJpcm1cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5pYm0uc2VjdXJlLWNvbnRhaW5lclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNjXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaWNjcHJvZmlsZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImljY1wiLCBcImljbVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmllZWUuMTkwNVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5pZ2xvYWRlclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImlnbFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmltYWdlbWV0ZXIuZm9sZGVyK3ppcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2VcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5pbWFnZW1ldGVyLmltYWdlK3ppcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2VcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5pbW1lcnZpc2lvbi1pdnBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJpdnBcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5pbW1lcnZpc2lvbi1pdnVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJpdnVcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5pbXMuaW1zY2N2MXAxXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmltcy5pbXNjY3YxcDJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaW1zLmltc2NjdjFwM1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5pbXMubGlzLnYyLnJlc3VsdCtqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaW1zLmx0aS52Mi50b29sY29uc3VtZXJwcm9maWxlK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5pbXMubHRpLnYyLnRvb2xwcm94eStqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaW1zLmx0aS52Mi50b29scHJveHkuaWQranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmltcy5sdGkudjIudG9vbHNldHRpbmdzK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5pbXMubHRpLnYyLnRvb2xzZXR0aW5ncy5zaW1wbGUranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmluZm9ybWVkY29udHJvbC5ybXMreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaW5mb3JtaXgtdmlzaW9uYXJ5XCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaW5mb3RlY2gucHJvamVjdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5pbmZvdGVjaC5wcm9qZWN0K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmlubm9wYXRoLndhbXAubm90aWZpY2F0aW9uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmluc29ycy5pZ21cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJpZ21cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5pbnRlcmNvbi5mb3JtbmV0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieHB3XCIsIFwieHB4XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaW50ZXJnZW9cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJpMmdcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5pbnRlcnRydXN0LmRpZ2lib3hcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaW50ZXJ0cnVzdC5ubmNwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmludHUucWJvXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicWJvXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaW50dS5xZnhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJxZnhcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5pcGZzLmlwbnMtcmVjb3JkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmlwbGQuY2FyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmlwbGQuZGFnLWNib3JcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaXBsZC5kYWctanNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5pcGxkLnJhd1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5pcHRjLmcyLmNhdGFsb2dpdGVtK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmlwdGMuZzIuY29uY2VwdGl0ZW0reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaXB0Yy5nMi5rbm93bGVkZ2VpdGVtK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmlwdGMuZzIubmV3c2l0ZW0reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaXB0Yy5nMi5uZXdzbWVzc2FnZSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5pcHRjLmcyLnBhY2thZ2VpdGVtK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmlwdGMuZzIucGxhbm5pbmdpdGVtK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmlwdW5wbHVnZ2VkLnJjcHJvZmlsZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInJjcHJvZmlsZVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmlyZXBvc2l0b3J5LnBhY2thZ2UreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJpcnBcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5pcy14cHJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ4cHJcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5pc2FjLmZjc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImZjc1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmlzbzExNzgzLTEwK3ppcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2VcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5qYW1cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJqYW1cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5qYXBhbm5ldC1kaXJlY3Rvcnktc2VydmljZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5qYXBhbm5ldC1qcG5zdG9yZS13YWtldXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuamFwYW5uZXQtcGF5bWVudC13YWtldXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuamFwYW5uZXQtcmVnaXN0cmF0aW9uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmphcGFubmV0LXJlZ2lzdHJhdGlvbi13YWtldXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuamFwYW5uZXQtc2V0c3RvcmUtd2FrZXVwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmphcGFubmV0LXZlcmlmaWNhdGlvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5qYXBhbm5ldC12ZXJpZmljYXRpb24td2FrZXVwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmpjcC5qYXZhbWUubWlkbGV0LXJtc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInJtc1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmppc3BcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJqaXNwXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuam9vc3Quam9kYS1hcmNoaXZlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiam9kYVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmpzay5pc2RuLW5nblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5rYWhvb3R6XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wia3R6XCIsIFwia3RyXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQua2RlLmthcmJvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImthcmJvblwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmtkZS5rY2hhcnRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJjaHJ0XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQua2RlLmtmb3JtdWxhXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wia2ZvXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQua2RlLmtpdmlvXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZmx3XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQua2RlLmtvbnRvdXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJrb25cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5rZGUua3ByZXNlbnRlclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImtwclwiLCBcImtwdFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmtkZS5rc3ByZWFkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wia3NwXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQua2RlLmt3b3JkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wia3dkXCIsIFwia3d0XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQua2RsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmtlbmFtZWFhcHBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJodGtlXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQua2V5bWFuLmttcCt6aXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQua2V5bWFuLmtteFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5raWRzcGlyYXRpb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJraWFcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5raW5hclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImtuZVwiLCBcImtucFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmtvYW5cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJza3BcIiwgXCJza2RcIiwgXCJza3RcIiwgXCJza21cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5rb2Rhay1kZXNjcmlwdG9yXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic3NlXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubGFzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmxhcy5sYXMranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmxhcy5sYXMreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJsYXN4bWxcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5sYXN6aXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubGRldi5wcm9kdWN0bGljZW5zaW5nXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmxlYXAranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmxpYmVydHktcmVxdWVzdCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5sbGFtYWdyYXBoaWNzLmxpZmUtYmFsYW5jZS5kZXNrdG9wXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibGJkXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubGxhbWFncmFwaGljcy5saWZlLWJhbGFuY2UuZXhjaGFuZ2UreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJsYmVcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5sb2dpcGlwZS5jaXJjdWl0K3ppcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2VcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5sb29tXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmxvdHVzLTEtMi0zXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiMTIzXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubG90dXMtYXBwcm9hY2hcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJhcHJcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5sb3R1cy1mcmVlbGFuY2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwcmVcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5sb3R1cy1ub3Rlc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm5zZlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmxvdHVzLW9yZ2FuaXplclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm9yZ1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmxvdHVzLXNjcmVlbmNhbVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNjbVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmxvdHVzLXdvcmRwcm9cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJsd3BcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tYWNwb3J0cy5wb3J0cGtnXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicG9ydHBrZ1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1hcGJveC12ZWN0b3ItdGlsZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm12dFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1hcmxpbi5kcm0uYWN0aW9udG9rZW4reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubWFybGluLmRybS5jb25mdG9rZW4reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubWFybGluLmRybS5saWNlbnNlK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1hcmxpbi5kcm0ubWRjZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tYXNvbitqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubWF4YXIuYXJjaGl2ZS4zdHoremlwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1heG1pbmQubWF4bWluZC1kYlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tY2RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtY2RcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tZGxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubWRsLW1ic2RmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1lZGNhbGNkYXRhXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibWMxXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubWVkaWFzdGF0aW9uLmNka2V5XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY2RrZXlcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tZWRpY2FsaG9sb2RlY2sucmVjb3JkeHJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubWVyaWRpYW4tc2xpbmdzaG90XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1lcm1haWRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubWZlclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm13ZlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1mbXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtZm1cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5taWNybytqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubWljcm9ncmFmeC5mbG9cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJmbG9cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5taWNyb2dyYWZ4LmlneFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImlneFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1pY3Jvc29mdC5wb3J0YWJsZS1leGVjdXRhYmxlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1pY3Jvc29mdC53aW5kb3dzLnRodW1ibmFpbC1jYWNoZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5taWVsZStqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubWlmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibWlmXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubWluaXNvZnQtaHAzMDAwLXNhdmVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubWl0c3ViaXNoaS5taXN0eS1ndWFyZC50cnVzdHdlYlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tb2JpdXMuZGFmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZGFmXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubW9iaXVzLmRpc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImRpc1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1vYml1cy5tYmtcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtYmtcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tb2JpdXMubXF5XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibXF5XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubW9iaXVzLm1zbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1zbFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1vYml1cy5wbGNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwbGNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tb2JpdXMudHhmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widHhmXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubW9kbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tb3BodW4uYXBwbGljYXRpb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtcG5cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tb3BodW4uY2VydGlmaWNhdGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtcGNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tb3Rvcm9sYS5mbGV4c3VpdGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubW90b3JvbGEuZmxleHN1aXRlLmFkc2lcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubW90b3JvbGEuZmxleHN1aXRlLmZpc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tb3Rvcm9sYS5mbGV4c3VpdGUuZ290YXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubW90b3JvbGEuZmxleHN1aXRlLmttclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tb3Rvcm9sYS5mbGV4c3VpdGUudHRjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1vdG9yb2xhLmZsZXhzdWl0ZS53ZW1cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubW90b3JvbGEuaXBybVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tb3ppbGxhLnh1bCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInh1bFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1zLTNtZmRvY3VtZW50XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1zLWFydGdhbHJ5XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY2lsXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubXMtYXNmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1zLWNhYi1jb21wcmVzc2VkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY2FiXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubXMtY29sb3IuaWNjcHJvZmlsZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieGxzXCIsIFwieGxtXCIsIFwieGxhXCIsIFwieGxjXCIsIFwieGx0XCIsIFwieGx3XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwuYWRkaW4ubWFjcm9lbmFibGVkLjEyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieGxhbVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsLnNoZWV0LmJpbmFyeS5tYWNyb2VuYWJsZWQuMTJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ4bHNiXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwuc2hlZXQubWFjcm9lbmFibGVkLjEyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieGxzbVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsLnRlbXBsYXRlLm1hY3JvZW5hYmxlZC4xMlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInhsdG1cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tcy1mb250b2JqZWN0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJlb3RcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tcy1odG1saGVscFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImNobVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1zLWltc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImltc1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1zLWxybVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImxybVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1zLW9mZmljZS5hY3RpdmV4K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1zLW9mZmljZXRoZW1lXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widGhteFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1zLW9wZW50eXBlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tcy1vdXRsb29rXCI6IHtcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibXNnXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubXMtcGFja2FnZS5vYmZ1c2NhdGVkLW9wZW50eXBlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubXMtcGtpLnNlY2NhdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY2F0XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubXMtcGtpLnN0bFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic3RsXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubXMtcGxheXJlYWR5LmluaXRpYXRvcit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tcy1wb3dlcnBvaW50XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicHB0XCIsIFwicHBzXCIsIFwicG90XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubXMtcG93ZXJwb2ludC5hZGRpbi5tYWNyb2VuYWJsZWQuMTJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwcGFtXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubXMtcG93ZXJwb2ludC5wcmVzZW50YXRpb24ubWFjcm9lbmFibGVkLjEyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicHB0bVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1zLXBvd2VycG9pbnQuc2xpZGUubWFjcm9lbmFibGVkLjEyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic2xkbVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1zLXBvd2VycG9pbnQuc2xpZGVzaG93Lm1hY3JvZW5hYmxlZC4xMlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInBwc21cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tcy1wb3dlcnBvaW50LnRlbXBsYXRlLm1hY3JvZW5hYmxlZC4xMlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInBvdG1cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tcy1wcmludGRldmljZWNhcGFiaWxpdGllcyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tcy1wcmludGluZy5wcmludHRpY2tldCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1zLXByaW50c2NoZW1hdGlja2V0K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1zLXByb2plY3RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtcHBcIiwgXCJtcHRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tcy10bmVmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1zLXZpc2lvLnZpZXdlclwiOiB7XG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInZkeFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1zLXdpbmRvd3MuZGV2aWNlcGFpcmluZ1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tcy13aW5kb3dzLm53cHJpbnRpbmcub29iXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1zLXdpbmRvd3MucHJpbnRlcnBhaXJpbmdcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubXMtd2luZG93cy53c2Qub29iXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1zLXdtZHJtLmxpYy1jaGxnLXJlcVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tcy13bWRybS5saWMtcmVzcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tcy13bWRybS5tZXRlci1jaGxnLXJlcVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tcy13bWRybS5tZXRlci1yZXNwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1zLXdvcmQuZG9jdW1lbnQubWFjcm9lbmFibGVkLjEyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZG9jbVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1zLXdvcmQudGVtcGxhdGUubWFjcm9lbmFibGVkLjEyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZG90bVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1zLXdvcmtzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wid3BzXCIsIFwid2tzXCIsIFwid2NtXCIsIFwid2RiXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubXMtd3BsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wid3BsXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubXMteHBzZG9jdW1lbnRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ4cHNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tc2EtZGlzay1pbWFnZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tc2VxXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibXNlcVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1zZ3BhY2tcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubXNpZ25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubXVsdGlhZC5jcmVhdG9yXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm11bHRpYWQuY3JlYXRvci5jaWZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubXVzaWMtbmlmZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tdXNpY2lhblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm11c1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm11dmVlLnN0eWxlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibXN0eVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm15bmZjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widGFnbGV0XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubmFjYW1hci55YnJpZCtqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubmF0by5iaW5kaW5nZGF0YW9iamVjdCtjYm9yXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm5hdG8uYmluZGluZ2RhdGFvYmplY3QranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm5hdG8uYmluZGluZ2RhdGFvYmplY3QreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJiZG9cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5uYXRvLm9wZW54bWxmb3JtYXRzLXBhY2thZ2UuaWVwZCt6aXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubmNkLmNvbnRyb2xcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubmNkLnJlZmVyZW5jZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5uZWFyc3QuaW52K2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5uZWJ1bWluZC5saW5lXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm5lcnZhbmFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubmV0ZnB4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm5ldXJvbGFuZ3VhZ2Uubmx1XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibmx1XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubmltblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5uaW50ZW5kby5uaXRyby5yb21cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubmludGVuZG8uc25lcy5yb21cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubml0ZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm50ZlwiLCBcIm5pdGZcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ub2JsZW5ldC1kaXJlY3RvcnlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJubmRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ub2JsZW5ldC1zZWFsZXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJubnNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ub2JsZW5ldC13ZWJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJubndcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ub2tpYS5jYXRhbG9nc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ub2tpYS5jb25tbCt3YnhtbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ub2tpYS5jb25tbCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ub2tpYS5pcHR2LmNvbmZpZyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ub2tpYS5pc2RzLXJhZGlvLXByZXNldHNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubm9raWEubGFuZG1hcmsrd2J4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubm9raWEubGFuZG1hcmsreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubm9raWEubGFuZG1hcmtjb2xsZWN0aW9uK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm5va2lhLm4tZ2FnZS5hYyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImFjXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubm9raWEubi1nYWdlLmRhdGFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJuZ2RhdFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm5va2lhLm4tZ2FnZS5zeW1iaWFuLmluc3RhbGxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm4tZ2FnZVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm5va2lhLm5jZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ub2tpYS5wY2Qrd2J4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubm9raWEucGNkK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm5va2lhLnJhZGlvLXByZXNldFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInJwc3RcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ub2tpYS5yYWRpby1wcmVzZXRzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicnBzc1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm5vdmFkaWdtLmVkbVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImVkbVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm5vdmFkaWdtLmVkeFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImVkeFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm5vdmFkaWdtLmV4dFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImV4dFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm50dC1sb2NhbC5jb250ZW50LXNoYXJlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm50dC1sb2NhbC5maWxlLXRyYW5zZmVyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm50dC1sb2NhbC5vZ3dfcmVtb3RlLWFjY2Vzc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5udHQtbG9jYWwuc2lwLXRhX3JlbW90ZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5udHQtbG9jYWwuc2lwLXRhX3RjcF9zdHJlYW1cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub2FpLndvcmtmbG93c1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vYWkud29ya2Zsb3dzK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vYWkud29ya2Zsb3dzK3lhbWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub2FzaXMub3BlbmRvY3VtZW50LmJhc2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub2FzaXMub3BlbmRvY3VtZW50LmNoYXJ0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wib2RjXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub2FzaXMub3BlbmRvY3VtZW50LmNoYXJ0LXRlbXBsYXRlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wib3RjXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub2FzaXMub3BlbmRvY3VtZW50LmRhdGFiYXNlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJvZGJcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vYXNpcy5vcGVuZG9jdW1lbnQuZm9ybXVsYVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm9kZlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9hc2lzLm9wZW5kb2N1bWVudC5mb3JtdWxhLXRlbXBsYXRlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wib2RmdFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9hc2lzLm9wZW5kb2N1bWVudC5ncmFwaGljc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm9kZ1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9hc2lzLm9wZW5kb2N1bWVudC5ncmFwaGljcy10ZW1wbGF0ZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm90Z1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9hc2lzLm9wZW5kb2N1bWVudC5pbWFnZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm9kaVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9hc2lzLm9wZW5kb2N1bWVudC5pbWFnZS10ZW1wbGF0ZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm90aVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9hc2lzLm9wZW5kb2N1bWVudC5wcmVzZW50YXRpb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJvZHBcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vYXNpcy5vcGVuZG9jdW1lbnQucHJlc2VudGF0aW9uLXRlbXBsYXRlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wib3RwXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub2FzaXMub3BlbmRvY3VtZW50LnNwcmVhZHNoZWV0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wib2RzXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub2FzaXMub3BlbmRvY3VtZW50LnNwcmVhZHNoZWV0LXRlbXBsYXRlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wib3RzXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub2FzaXMub3BlbmRvY3VtZW50LnRleHRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJvZHRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vYXNpcy5vcGVuZG9jdW1lbnQudGV4dC1tYXN0ZXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJvZG1cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vYXNpcy5vcGVuZG9jdW1lbnQudGV4dC1tYXN0ZXItdGVtcGxhdGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub2FzaXMub3BlbmRvY3VtZW50LnRleHQtdGVtcGxhdGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJvdHRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vYXNpcy5vcGVuZG9jdW1lbnQudGV4dC13ZWJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJvdGhcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vYm5cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub2NmK2Nib3JcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub2NpLmltYWdlLm1hbmlmZXN0LnYxK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vZnRuLmwxMG4ranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9pcGYuY29udGVudGFjY2Vzc2Rvd25sb2FkK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9pcGYuY29udGVudGFjY2Vzc3N0cmVhbWluZyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vaXBmLmNzcGctaGV4YmluYXJ5XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9pcGYuZGFlLnN2Zyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vaXBmLmRhZS54aHRtbCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vaXBmLm1pcHB2Y29udHJvbG1lc3NhZ2UreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub2lwZi5wYWUuZ2VtXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9pcGYuc3BkaXNjb3ZlcnkreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub2lwZi5zcGRsaXN0K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9pcGYudWVwcm9maWxlK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9pcGYudXNlcnByb2ZpbGUreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub2xwYy1zdWdhclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInhvXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub21hLXNjd3MtY29uZmlnXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9tYS1zY3dzLWh0dHAtcmVxdWVzdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vbWEtc2N3cy1odHRwLXJlc3BvbnNlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9tYS5iY2FzdC5hc3NvY2lhdGVkLXByb2NlZHVyZS1wYXJhbWV0ZXIreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub21hLmJjYXN0LmRybS10cmlnZ2VyK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub21hLmJjYXN0LmltZCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vbWEuYmNhc3QubHRrbVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vbWEuYmNhc3Qubm90aWZpY2F0aW9uK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9tYS5iY2FzdC5wcm92aXNpb25pbmd0cmlnZ2VyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9tYS5iY2FzdC5zZ2Jvb3RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub21hLmJjYXN0LnNnZGQreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub21hLmJjYXN0LnNnZHVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub21hLmJjYXN0LnNpbXBsZS1zeW1ib2wtY29udGFpbmVyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9tYS5iY2FzdC5zbWFydGNhcmQtdHJpZ2dlcit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9tYS5iY2FzdC5zcHJvdit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vbWEuYmNhc3Quc3RrbVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vbWEuY2FiLWFkZHJlc3MtYm9vayt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vbWEuY2FiLWZlYXR1cmUtaGFuZGxlcit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vbWEuY2FiLXBjYyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vbWEuY2FiLXN1YnMtaW52aXRlK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9tYS5jYWItdXNlci1wcmVmcyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vbWEuZGNkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9tYS5kY2RjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9tYS5kZDIreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJkZDJcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vbWEuZHJtLnJpc2QreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub21hLmdyb3VwLXVzYWdlLWxpc3QreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub21hLmx3bTJtK2Nib3JcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub21hLmx3bTJtK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vbWEubHdtMm0rdGx2XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9tYS5wYWwreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub21hLnBvYy5kZXRhaWxlZC1wcm9ncmVzcy1yZXBvcnQreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub21hLnBvYy5maW5hbC1yZXBvcnQreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub21hLnBvYy5ncm91cHMreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub21hLnBvYy5pbnZvY2F0aW9uLWRlc2NyaXB0b3IreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub21hLnBvYy5vcHRpbWl6ZWQtcHJvZ3Jlc3MtcmVwb3J0K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9tYS5wdXNoXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9tYS5zY2lkbS5tZXNzYWdlcyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vbWEueGNhcC1kaXJlY3RvcnkreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub21hZHMtZW1haWwreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY2hhcnNldDogXCJVVEYtOFwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vbWFkcy1maWxlK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNoYXJzZXQ6IFwiVVRGLThcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub21hZHMtZm9sZGVyK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNoYXJzZXQ6IFwiVVRGLThcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub21hbG9jLXN1cGwtaW5pdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vbmVwYWdlclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vbmVwYWdlcnRhbXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub25lcGFnZXJ0YW14XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9uZXBhZ2VydGF0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9uZXBhZ2VydGF0cFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vbmVwYWdlcnRhdHhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub252aWYubWV0YWRhdGFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbmJsb3guZ2FtZSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm9iZ3hcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVuYmxveC5nYW1lLWJpbmFyeVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVuZXllLm9lYlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVub2ZmaWNlb3JnLmV4dGVuc2lvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wib3h0XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnN0cmVldG1hcC5kYXRhK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wib3NtXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnRpbWVzdGFtcHMub3RzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW52cGkuZHNweCtqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuY3VzdG9tLXByb3BlcnRpZXMreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuY3VzdG9teG1scHJvcGVydGllcyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5kcmF3aW5nK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LmRyYXdpbmdtbC5jaGFydCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5kcmF3aW5nbWwuY2hhcnRzaGFwZXMreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuZHJhd2luZ21sLmRpYWdyYW1jb2xvcnMreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuZHJhd2luZ21sLmRpYWdyYW1kYXRhK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LmRyYXdpbmdtbC5kaWFncmFtbGF5b3V0K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LmRyYXdpbmdtbC5kaWFncmFtc3R5bGUreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuZXh0ZW5kZWQtcHJvcGVydGllcyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5wcmVzZW50YXRpb25tbC5jb21tZW50YXV0aG9ycyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5wcmVzZW50YXRpb25tbC5jb21tZW50cyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5wcmVzZW50YXRpb25tbC5oYW5kb3V0bWFzdGVyK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnByZXNlbnRhdGlvbm1sLm5vdGVzbWFzdGVyK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnByZXNlbnRhdGlvbm1sLm5vdGVzc2xpZGUreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQucHJlc2VudGF0aW9ubWwucHJlc2VudGF0aW9uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicHB0eFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnByZXNlbnRhdGlvbm1sLnByZXNlbnRhdGlvbi5tYWluK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnByZXNlbnRhdGlvbm1sLnByZXNwcm9wcyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5wcmVzZW50YXRpb25tbC5zbGlkZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNsZHhcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5wcmVzZW50YXRpb25tbC5zbGlkZSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5wcmVzZW50YXRpb25tbC5zbGlkZWxheW91dCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5wcmVzZW50YXRpb25tbC5zbGlkZW1hc3Rlcit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5wcmVzZW50YXRpb25tbC5zbGlkZXNob3dcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwcHN4XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQucHJlc2VudGF0aW9ubWwuc2xpZGVzaG93Lm1haW4reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQucHJlc2VudGF0aW9ubWwuc2xpZGV1cGRhdGVpbmZvK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnByZXNlbnRhdGlvbm1sLnRhYmxlc3R5bGVzK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnByZXNlbnRhdGlvbm1sLnRhZ3MreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQucHJlc2VudGF0aW9ubWwudGVtcGxhdGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwb3R4XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQucHJlc2VudGF0aW9ubWwudGVtcGxhdGUubWFpbit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5wcmVzZW50YXRpb25tbC52aWV3cHJvcHMreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5jYWxjY2hhaW4reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5jaGFydHNoZWV0K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuY29tbWVudHMreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5jb25uZWN0aW9ucyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLmRpYWxvZ3NoZWV0K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuZXh0ZXJuYWxsaW5rK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwucGl2b3RjYWNoZWRlZmluaXRpb24reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5waXZvdGNhY2hlcmVjb3Jkcyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnBpdm90dGFibGUreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5xdWVyeXRhYmxlK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwucmV2aXNpb25oZWFkZXJzK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwucmV2aXNpb25sb2creG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5zaGFyZWRzdHJpbmdzK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuc2hlZXRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ4bHN4XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5zaGVldC5tYWluK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuc2hlZXRtZXRhZGF0YSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnN0eWxlcyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnRhYmxlK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwudGFibGVzaW5nbGVjZWxscyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnRlbXBsYXRlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieGx0eFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwudGVtcGxhdGUubWFpbit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnVzZXJuYW1lcyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnZvbGF0aWxlZGVwZW5kZW5jaWVzK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwud29ya3NoZWV0K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnRoZW1lK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnRoZW1lb3ZlcnJpZGUreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQudm1sZHJhd2luZ1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC53b3JkcHJvY2Vzc2luZ21sLmNvbW1lbnRzK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LndvcmRwcm9jZXNzaW5nbWwuZG9jdW1lbnRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJkb2N4XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQud29yZHByb2Nlc3NpbmdtbC5kb2N1bWVudC5nbG9zc2FyeSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC53b3JkcHJvY2Vzc2luZ21sLmRvY3VtZW50Lm1haW4reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQud29yZHByb2Nlc3NpbmdtbC5lbmRub3Rlcyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC53b3JkcHJvY2Vzc2luZ21sLmZvbnR0YWJsZSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC53b3JkcHJvY2Vzc2luZ21sLmZvb3Rlcit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC53b3JkcHJvY2Vzc2luZ21sLmZvb3Rub3Rlcyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC53b3JkcHJvY2Vzc2luZ21sLm51bWJlcmluZyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC53b3JkcHJvY2Vzc2luZ21sLnNldHRpbmdzK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LndvcmRwcm9jZXNzaW5nbWwuc3R5bGVzK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LndvcmRwcm9jZXNzaW5nbWwudGVtcGxhdGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJkb3R4XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQud29yZHByb2Nlc3NpbmdtbC50ZW1wbGF0ZS5tYWluK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LndvcmRwcm9jZXNzaW5nbWwud2Vic2V0dGluZ3MreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtcGFja2FnZS5jb3JlLXByb3BlcnRpZXMreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtcGFja2FnZS5kaWdpdGFsLXNpZ25hdHVyZS14bWxzaWduYXR1cmUreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtcGFja2FnZS5yZWxhdGlvbnNoaXBzK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9yYWNsZS5yZXNvdXJjZStqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3JhbmdlLmluZGF0YVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vc2EubmV0ZGVwbG95XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9zZ2VvLm1hcGd1aWRlLnBhY2thZ2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtZ3BcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vc2dpLmJ1bmRsZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vc2dpLmRwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZHBcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vc2dpLnN1YnN5c3RlbVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImVzYVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm90cHMuY3Qta2lwK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm94bGkuY291bnRncmFwaFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5wYWdlcmR1dHkranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnBhbG1cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwZGJcIiwgXCJwcWFcIiwgXCJvcHJjXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucGFub3BseVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5wYW9zLnhtbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5wYXRlbnRkaXZlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnBhdGllbnRlY29tbXNkb2NcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucGF3YWFmaWxlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicGF3XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucGNvc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5wZy5mb3JtYXRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzdHJcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5wZy5vc2FzbGlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJlaTZcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5waWFjY2Vzcy5hcHBsaWNhdGlvbi1saWNlbmNlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnBpY3NlbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImVmaWZcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5wbWkud2lkZ2V0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wid2dcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5wb2MuZ3JvdXAtYWR2ZXJ0aXNlbWVudCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5wb2NrZXRsZWFyblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInBsZlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnBvd2VyYnVpbGRlcjZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwYmRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5wb3dlcmJ1aWxkZXI2LXNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucG93ZXJidWlsZGVyN1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5wb3dlcmJ1aWxkZXI3LXNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucG93ZXJidWlsZGVyNzVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucG93ZXJidWlsZGVyNzUtc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5wcmVtaW5ldFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5wcmV2aWV3c3lzdGVtcy5ib3hcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJib3hcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5wcm9jcmF0ZS5icnVzaHNldFwiOiB7XG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImJydXNoc2V0XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucHJvY3JlYXRlLmJydXNoXCI6IHtcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYnJ1c2hcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5wcm9jcmVhdGUuZHJlYW1cIjoge1xuICAgICAgICBleHRlbnNpb25zOiBbXCJkcm1cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5wcm90ZXVzLm1hZ2F6aW5lXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibWd6XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucHNmc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5wdC5tdW5kdXNtdW5kaVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5wdWJsaXNoYXJlLWRlbHRhLXRyZWVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJxcHNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5wdmkucHRpZDFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwdGlkXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucHdnLW11bHRpcGxleGVkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnB3Zy14aHRtbC1wcmludCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInhodG1cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5xdWFsY29tbS5icmV3LWFwcC1yZXNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucXVhcmFudGFpbmVuZXRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucXVhcmsucXVhcmt4cHJlc3NcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJxeGRcIiwgXCJxeHRcIiwgXCJxd2RcIiwgXCJxd3RcIiwgXCJxeGxcIiwgXCJxeGJcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5xdW9iamVjdC1xdW94ZG9jdW1lbnRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucmFkaXN5cy5tb21sK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnJhZGlzeXMubXNtbCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5yYWRpc3lzLm1zbWwtYXVkaXQreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucmFkaXN5cy5tc21sLWF1ZGl0LWNvbmYreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucmFkaXN5cy5tc21sLWF1ZGl0LWNvbm4reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucmFkaXN5cy5tc21sLWF1ZGl0LWRpYWxvZyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5yYWRpc3lzLm1zbWwtYXVkaXQtc3RyZWFtK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnJhZGlzeXMubXNtbC1jb25mK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnJhZGlzeXMubXNtbC1kaWFsb2creG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucmFkaXN5cy5tc21sLWRpYWxvZy1iYXNlK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnJhZGlzeXMubXNtbC1kaWFsb2ctZmF4LWRldGVjdCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5yYWRpc3lzLm1zbWwtZGlhbG9nLWZheC1zZW5kcmVjdit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5yYWRpc3lzLm1zbWwtZGlhbG9nLWdyb3VwK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnJhZGlzeXMubXNtbC1kaWFsb2ctc3BlZWNoK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnJhZGlzeXMubXNtbC1kaWFsb2ctdHJhbnNmb3JtK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnJhaW5zdG9yLmRhdGFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucmFwaWRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucmFyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicmFyXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucmVhbHZuYy5iZWRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJiZWRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5yZWNvcmRhcmUubXVzaWN4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJteGxcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5yZWNvcmRhcmUubXVzaWN4bWwreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtdXNpY3htbFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnJlbHBpcGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucmVubGVhcm4ucmxwcmludFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5yZXNpbGllbnQubG9naWNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucmVzdGZ1bCtqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucmlnLmNyeXB0b25vdGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJjcnlwdG9ub3RlXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucmltLmNvZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY29kXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucm4tcmVhbG1lZGlhXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJybVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnJuLXJlYWxtZWRpYS12YnJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInJtdmJcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5yb3V0ZTY2Lmxpbms2Nit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImxpbms2NlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnJzLTI3NHhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucnVja3VzLmRvd25sb2FkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnMzc21zXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnNhaWxpbmd0cmFja2VyLnRyYWNrXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic3RcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zYXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc2JtLmNpZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zYm0ubWlkMlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zY3JpYnVzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnNlYWxlZC4zZGZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc2VhbGVkLmNzZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zZWFsZWQuZG9jXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnNlYWxlZC5lbWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc2VhbGVkLm1odFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zZWFsZWQubmV0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnNlYWxlZC5wcHRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc2VhbGVkLnRpZmZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc2VhbGVkLnhsc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zZWFsZWRtZWRpYS5zb2Z0c2VhbC5odG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnNlYWxlZG1lZGlhLnNvZnRzZWFsLnBkZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zZWVtYWlsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic2VlXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc2Vpcytqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc2VtYVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNlbWFcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zZW1kXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic2VtZFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnNlbWZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzZW1mXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc2hhZGUtc2F2ZS1maWxlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnNoYW5hLmluZm9ybWVkLmZvcm1kYXRhXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiaWZtXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc2hhbmEuaW5mb3JtZWQuZm9ybXRlbXBsYXRlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiaXRwXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc2hhbmEuaW5mb3JtZWQuaW50ZXJjaGFuZ2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJpaWZcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zaGFuYS5pbmZvcm1lZC5wYWNrYWdlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiaXBrXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc2hvb3Rwcm9vZitqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc2hvcGtpY2sranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnNocFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zaHhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc2lncm9rLnNlc3Npb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc2ltdGVjaC1taW5kbWFwcGVyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widHdkXCIsIFwidHdkc1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnNpcmVuK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5za2V0Y2hvbWV0cnlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc21hZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1tZlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnNtYXJ0Lm5vdGVib29rXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnNtYXJ0LnRlYWNoZXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ0ZWFjaGVyXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc21pbnRpby5wb3J0YWxzLmFyY2hpdmVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc25lc2Rldi1wYWdlLXRhYmxlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnNvZnR3YXJlNjAyLmZpbGxlci5mb3JtK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZm9cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zb2Z0d2FyZTYwMi5maWxsZXIuZm9ybS14bWwtemlwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnNvbGVudC5zZGttK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic2RrbVwiLCBcInNka2RcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zcG90ZmlyZS5keHBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJkeHBcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zcG90ZmlyZS5zZnNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzZnNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zcWxpdGUzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnNzcy1jb2RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc3NzLWR0ZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zc3MtbnRmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnN0YXJkaXZpc2lvbi5jYWxjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzZGNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zdGFyZGl2aXNpb24uZHJhd1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic2RhXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc3RhcmRpdmlzaW9uLmltcHJlc3NcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNkZFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnN0YXJkaXZpc2lvbi5tYXRoXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzbWZcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zdGFyZGl2aXNpb24ud3JpdGVyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzZHdcIiwgXCJ2b3JcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zdGFyZGl2aXNpb24ud3JpdGVyLWdsb2JhbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic2dsXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc3RlcG1hbmlhLnBhY2thZ2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzbXppcFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnN0ZXBtYW5pYS5zdGVwY2hhcnRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzbVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnN0cmVldC1zdHJlYW1cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc3VuLndhZGwreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ3YWRsXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc3VuLnhtbC5jYWxjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzeGNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zdW4ueG1sLmNhbGMudGVtcGxhdGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInN0Y1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnN1bi54bWwuZHJhd1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic3hkXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc3VuLnhtbC5kcmF3LnRlbXBsYXRlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzdGRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zdW4ueG1sLmltcHJlc3NcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInN4aVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnN1bi54bWwuaW1wcmVzcy50ZW1wbGF0ZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic3RpXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc3VuLnhtbC5tYXRoXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzeG1cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zdW4ueG1sLndyaXRlclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic3h3XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc3VuLnhtbC53cml0ZXIuZ2xvYmFsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzeGdcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zdW4ueG1sLndyaXRlci50ZW1wbGF0ZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic3R3XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc3VzLWNhbGVuZGFyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic3VzXCIsIFwic3VzcFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnN2ZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInN2ZFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnN3aWZ0dmlldy1pY3NcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc3lieWwubW9sMlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zeWNsZSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zeWZ0K2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zeW1iaWFuLmluc3RhbGxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNpc1wiLCBcInNpc3hcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zeW5jbWwreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY2hhcnNldDogXCJVVEYtOFwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInhzbVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnN5bmNtbC5kbSt3YnhtbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNoYXJzZXQ6IFwiVVRGLThcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYmRtXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc3luY21sLmRtK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNoYXJzZXQ6IFwiVVRGLThcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ4ZG1cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zeW5jbWwuZG0ubm90aWZpY2F0aW9uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnN5bmNtbC5kbWRkZit3YnhtbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zeW5jbWwuZG1kZGYreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY2hhcnNldDogXCJVVEYtOFwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImRkZlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnN5bmNtbC5kbXRuZHMrd2J4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc3luY21sLmRtdG5kcyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjaGFyc2V0OiBcIlVURi04XCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnN5bmNtbC5kcy5ub3RpZmljYXRpb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQudGFibGVzY2hlbWEranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnRhby5pbnRlbnQtbW9kdWxlLWFyY2hpdmVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ0YW9cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC50Y3BkdW1wLnBjYXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwY2FwXCIsIFwiY2FwXCIsIFwiZG1wXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQudGhpbmstY2VsbC5wcHR0Yytqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQudG1kLm1lZGlhZmxleC5hcGkreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQudG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnRtb2JpbGUtbGl2ZXR2XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widG1vXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQudHJpLm9uZXNvdXJjZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC50cmlkLnRwdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInRwdFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnRyaXNjYXBlLm14c1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm14c1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnRydWVhcHBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ0cmFcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC50cnVlZG9jXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnViaXNvZnQud2VicGxheWVyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnVmZGxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ1ZmRcIiwgXCJ1ZmRsXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQudWljLm9zZG0ranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnVpcS50aGVtZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInV0elwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnVtYWppblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInVtalwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnVuaXR5XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widW5pdHl3ZWJcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC51b21sK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1widW9tbFwiLCBcInVvXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQudXBsYW5ldC5hbGVydFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC51cGxhbmV0LmFsZXJ0LXdieG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnVwbGFuZXQuYmVhcmVyLWNob2ljZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC51cGxhbmV0LmJlYXJlci1jaG9pY2Utd2J4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQudXBsYW5ldC5jYWNoZW9wXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnVwbGFuZXQuY2FjaGVvcC13YnhtbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC51cGxhbmV0LmNoYW5uZWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQudXBsYW5ldC5jaGFubmVsLXdieG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnVwbGFuZXQubGlzdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC51cGxhbmV0Lmxpc3Qtd2J4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQudXBsYW5ldC5saXN0Y21kXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnVwbGFuZXQubGlzdGNtZC13YnhtbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC51cGxhbmV0LnNpZ25hbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC51cmktbWFwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnZhbHZlLnNvdXJjZS5tYXRlcmlhbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC52Y3hcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ2Y3hcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC52ZC1zdHVkeVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC52ZWN0b3J3b3Jrc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC52ZWwranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnZlcmFpc29uLnRzbS1yZXBvcnQrY2JvclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC52ZXJhaXNvbi50c20tcmVwb3J0K2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC52ZXJpbWF0cml4LnZjYXNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQudmVyaXRvbmUuYWlvbitqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQudmVyeWFudC50aGluXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnZlcy5lbmNyeXB0ZWRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQudmlkc29mdC52aWRjb25mZXJlbmNlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnZpc2lvXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widnNkXCIsIFwidnN0XCIsIFwidnNzXCIsIFwidnN3XCIsIFwidnNkeFwiLCBcInZ0eFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnZpc2lvbmFyeVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInZpc1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnZpdmlkZW5jZS5zY3JpcHRmaWxlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnZvY2Fsc2hhcGVyLnZzcDRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQudnNmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widnNmXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQud2FwLnNpY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC53YXAuc2xjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLndhcC53YnhtbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNoYXJzZXQ6IFwiVVRGLThcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wid2J4bWxcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC53YXAud21sY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIndtbGNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC53YXAud21sc2NyaXB0Y1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIndtbHNjXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQud2FzbWZsb3cud2FmbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC53ZWJ0dXJib1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInd0YlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLndmYS5kcHBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQud2ZhLnAycFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC53ZmEud3NjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLndpbmRvd3MuZGV2aWNlcGFpcmluZ1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC53bWNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQud21mLmJvb3RzdHJhcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC53b2xmcmFtLm1hdGhlbWF0aWNhXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLndvbGZyYW0ubWF0aGVtYXRpY2EucGFja2FnZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC53b2xmcmFtLnBsYXllclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm5icFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLndvcmRsaWZ0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLndvcmRwZXJmZWN0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wid3BkXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQud3FkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wid3FkXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQud3JxLWhwMzAwMC1sYWJlbGxlZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC53dC5zdGZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzdGZcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC53di5jc3Ard2J4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQud3YuY3NwK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnd2LnNzcCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC54YWNtbCtqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQueGFyYVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInhhclwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnhhcmluLmNwalwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC54ZWNyZXRzLWVuY3J5cHRlZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC54ZmRsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieGZkbFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnhmZGwud2ViZm9ybVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC54bWkreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQueG1waWUuY3BrZ1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC54bXBpZS5kcGtnXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnhtcGllLnBsYW5cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQueG1waWUucHBrZ1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC54bXBpZS54bGltXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnlhbWFoYS5odi1kaWNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJodmRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC55YW1haGEuaHYtc2NyaXB0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiaHZzXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQueWFtYWhhLmh2LXZvaWNlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiaHZwXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQueWFtYWhhLm9wZW5zY29yZWZvcm1hdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm9zZlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnlhbWFoYS5vcGVuc2NvcmVmb3JtYXQub3NmcHZnK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wib3NmcHZnXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQueWFtYWhhLnJlbW90ZS1zZXR1cFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC55YW1haGEuc21hZi1hdWRpb1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNhZlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnlhbWFoYS5zbWFmLXBocmFzZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNwZlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnlhbWFoYS50aHJvdWdoLW5nblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC55YW1haGEudHVubmVsLXVkcGVuY2FwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnlhb3dlbWVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQueWVsbG93cml2ZXItY3VzdG9tLW1lbnVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJjbXBcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC56dWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ6aXJcIiwgXCJ6aXJ6XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuenphenouZGVjayt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInphelwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm9pY2V4bWwreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ2eG1sXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92b3VjaGVyLWNtcytqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92b3VjaGVyLWp3cytqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92cFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZwK2Nvc2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92cCtqd3RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92cS1ydGNweHJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi93YXNtXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ3YXNtXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi93YXRjaGVyaW5mbyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIndpZlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vd2VicHVzaC1vcHRpb25zK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3dob2lzcHAtcXVlcnlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi93aG9pc3BwLXJlc3BvbnNlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vd2lkZ2V0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wid2d0XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi93aW5obHBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImhscFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vd2l0YVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3dvcmRwZXJmZWN0NS4xXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vd3NkbCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIndzZGxcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3dzcG9saWN5K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wid3Nwb2xpY3lcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtN3otY29tcHJlc3NlZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiN3pcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtYWJpd29yZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYWJ3XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWFjZS1jb21wcmVzc2VkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJhY2VcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtYW1mXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWFwcGxlLWRpc2tpbWFnZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZG1nXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWFyalwiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImFyalwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1hdXRob3J3YXJlLWJpblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYWFiXCIsIFwieDMyXCIsIFwidTMyXCIsIFwidm94XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWF1dGhvcndhcmUtbWFwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJhYW1cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtYXV0aG9yd2FyZS1zZWdcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImFhc1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1iY3Bpb1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYmNwaW9cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtYmRvY1wiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImJkb2NcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtYml0dG9ycmVudFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widG9ycmVudFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1ibGVuZGVyXCI6IHtcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYmxlbmRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtYmxvcmJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImJsYlwiLCBcImJsb3JiXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWJ6aXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImJ6XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWJ6aXAyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJiejJcIiwgXCJib3pcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtY2JyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJjYnJcIiwgXCJjYmFcIiwgXCJjYnRcIiwgXCJjYnpcIiwgXCJjYjdcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtY2RsaW5rXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ2Y2RcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtY2ZzLWNvbXByZXNzZWRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImNmc1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1jaGF0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJjaGF0XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWNoZXNzLXBnblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicGduXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWNocm9tZS1leHRlbnNpb25cIjoge1xuICAgICAgICBleHRlbnNpb25zOiBbXCJjcnhcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtY29jb2FcIjoge1xuICAgICAgICBzb3VyY2U6IFwibmdpbnhcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY2NvXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWNvbXByZXNzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWNvbXByZXNzZWRcIjoge1xuICAgICAgICBleHRlbnNpb25zOiBbXCJyYXJcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtY29uZmVyZW5jZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibnNjXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWNwaW9cIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImNwaW9cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtY3NoXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJjc2hcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtZGViXCI6IHtcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1kZWJpYW4tcGFja2FnZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZGViXCIsIFwidWRlYlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1kZ2MtY29tcHJlc3NlZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZGdjXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWRpcmVjdG9yXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJkaXJcIiwgXCJkY3JcIiwgXCJkeHJcIiwgXCJjc3RcIiwgXCJjY3RcIiwgXCJjeHRcIiwgXCJ3M2RcIiwgXCJmZ2RcIiwgXCJzd2FcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtZG9vbVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wid2FkXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWR0Ym5jeCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibmN4XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWR0Ym9vayt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZHRiXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWR0YnJlc291cmNlK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJyZXNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtZHZpXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJkdmlcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtZW52b3lcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImV2eVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1ldmFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImV2YVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1mb250LWJkZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYmRmXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWZvbnQtZG9zXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWZvbnQtZnJhbWVtYWtlclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1mb250LWdob3N0c2NyaXB0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJnc2ZcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtZm9udC1saWJncnhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtZm9udC1saW51eC1wc2ZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInBzZlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1mb250LXBjZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicGNmXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWZvbnQtc25mXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzbmZcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtZm9udC1zcGVlZG9cIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtZm9udC1zdW5vcy1uZXdzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWZvbnQtdHlwZTFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInBmYVwiLCBcInBmYlwiLCBcInBmbVwiLCBcImFmbVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1mb250LXZmb250XCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWZyZWVhcmNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImFyY1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1mdXR1cmVzcGxhc2hcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNwbFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1nY2EtY29tcHJlc3NlZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZ2NhXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWdsdWx4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ1bHhcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtZ251bWVyaWNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImdudW1lcmljXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWdyYW1wcy14bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImdyYW1wc1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1ndGFyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJndGFyXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWd6aXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtaGRmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJoZGZcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtaHR0cGQtcGhwXCI6IHtcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwaHBcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtaW5zdGFsbC1pbnN0cnVjdGlvbnNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImluc3RhbGxcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtaXB5bmIranNvblwiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiaXB5bmJcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtaXNvOTY2MC1pbWFnZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiaXNvXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWl3b3JrLWtleW5vdGUtc2Zma2V5XCI6IHtcbiAgICAgICAgZXh0ZW5zaW9uczogW1wia2V5XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWl3b3JrLW51bWJlcnMtc2ZmbnVtYmVyc1wiOiB7XG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm51bWJlcnNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtaXdvcmstcGFnZXMtc2ZmcGFnZXNcIjoge1xuICAgICAgICBleHRlbnNpb25zOiBbXCJwYWdlc1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1qYXZhLWFyY2hpdmUtZGlmZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJuZ2lueFwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJqYXJkaWZmXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWphdmEtam5scC1maWxlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJqbmxwXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWphdmFzY3JpcHRcIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gta2VlcGFzczJcIjoge1xuICAgICAgICBleHRlbnNpb25zOiBbXCJrZGJ4XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWxhdGV4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJsYXRleFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1sdWEtYnl0ZWNvZGVcIjoge1xuICAgICAgICBleHRlbnNpb25zOiBbXCJsdWFjXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWx6aC1jb21wcmVzc2VkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJsemhcIiwgXCJsaGFcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtbWFrZXNlbGZcIjoge1xuICAgICAgICBzb3VyY2U6IFwibmdpbnhcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicnVuXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LW1pZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibWllXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LW1vYmlwb2NrZXQtZWJvb2tcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInByY1wiLCBcIm1vYmlcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtbXBlZ3VybFwiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2VcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtbXMtYXBwbGljYXRpb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImFwcGxpY2F0aW9uXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LW1zLXNob3J0Y3V0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJsbmtcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtbXMtd21kXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ3bWRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtbXMtd216XCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ3bXpcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtbXMteGJhcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieGJhcFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1tc2FjY2Vzc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibWRiXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LW1zYmluZGVyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJvYmRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtbXNjYXJkZmlsZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY3JkXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LW1zY2xpcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY2xwXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LW1zZG9zLXByb2dyYW1cIjoge1xuICAgICAgICBleHRlbnNpb25zOiBbXCJleGVcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtbXNkb3dubG9hZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZXhlXCIsIFwiZGxsXCIsIFwiY29tXCIsIFwiYmF0XCIsIFwibXNpXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LW1zbWVkaWF2aWV3XCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtdmJcIiwgXCJtMTNcIiwgXCJtMTRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtbXNtZXRhZmlsZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wid21mXCIsIFwid216XCIsIFwiZW1mXCIsIFwiZW16XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LW1zbW9uZXlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1ueVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1tc3B1Ymxpc2hlclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicHViXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LW1zc2NoZWR1bGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNjZFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1tc3Rlcm1pbmFsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ0cm1cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtbXN3cml0ZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wid3JpXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LW5ldGNkZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibmNcIiwgXCJjZGZcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtbnMtcHJveHktYXV0b2NvbmZpZ1wiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicGFjXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LW56YlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibnpiXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LXBlcmxcIjoge1xuICAgICAgICBzb3VyY2U6IFwibmdpbnhcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicGxcIiwgXCJwbVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1waWxvdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJuZ2lueFwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwcmNcIiwgXCJwZGJcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtcGtjczEyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwMTJcIiwgXCJwZnhcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtcGtjczctY2VydGlmaWNhdGVzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwN2JcIiwgXCJzcGNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtcGtjczctY2VydHJlcXJlc3BcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInA3clwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1wa2ktbWVzc2FnZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtcmFyLWNvbXByZXNzZWRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInJhclwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1yZWRoYXQtcGFja2FnZS1tYW5hZ2VyXCI6IHtcbiAgICAgICAgc291cmNlOiBcIm5naW54XCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInJwbVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1yZXNlYXJjaC1pbmZvLXN5c3RlbXNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInJpc1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1zZWFcIjoge1xuICAgICAgICBzb3VyY2U6IFwibmdpbnhcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic2VhXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LXNoXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNoXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LXNoYXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNoYXJcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtc2hvY2t3YXZlLWZsYXNoXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzd2ZcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtc2lsdmVybGlnaHQtYXBwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ4YXBcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtc3FsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzcWxcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtc3R1ZmZpdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic2l0XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LXN0dWZmaXR4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzaXR4XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LXN1YnJpcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic3J0XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LXN2NGNwaW9cIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInN2NGNwaW9cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtc3Y0Y3JjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzdjRjcmNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtdDN2bS1pbWFnZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widDNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtdGFkc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZ2FtXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LXRhclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ0YXJcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtdGNsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ0Y2xcIiwgXCJ0a1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC10ZXhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInRleFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC10ZXgtdGZtXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ0Zm1cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtdGV4aW5mb1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widGV4aW5mb1wiLCBcInRleGlcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtdGdpZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wib2JqXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LXVzdGFyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ1c3RhclwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC12aXJ0dWFsYm94LWhkZFwiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiaGRkXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LXZpcnR1YWxib3gtb3ZhXCI6IHtcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJvdmFcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtdmlydHVhbGJveC1vdmZcIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm92ZlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC12aXJ0dWFsYm94LXZib3hcIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInZib3hcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtdmlydHVhbGJveC12Ym94LWV4dHBhY2tcIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ2Ym94LWV4dHBhY2tcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtdmlydHVhbGJveC12ZGlcIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInZkaVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC12aXJ0dWFsYm94LXZoZFwiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1widmhkXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LXZpcnR1YWxib3gtdm1ka1wiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1widm1ka1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC13YWlzLXNvdXJjZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic3JjXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LXdlYi1hcHAtbWFuaWZlc3QranNvblwiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wid2ViYXBwXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gteDUwOS1jYS1jZXJ0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZGVyXCIsIFwiY3J0XCIsIFwicGVtXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LXg1MDktY2EtcmEtY2VydFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gteDUwOS1uZXh0LWNhLWNlcnRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LXhmaWdcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImZpZ1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC14bGlmZit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieGxmXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LXhwaW5zdGFsbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieHBpXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LXh6XCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ4elwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC16aXAtY29tcHJlc3NlZFwiOiB7XG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInppcFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC16bWFjaGluZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiejFcIiwgXCJ6MlwiLCBcInozXCIsIFwiejRcIiwgXCJ6NVwiLCBcIno2XCIsIFwiejdcIiwgXCJ6OFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veDQwMC1icFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3hhY21sK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veGFtbCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieGFtbFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veGNhcC1hdHQreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ4YXZcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3hjYXAtY2Fwcyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInhjYVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veGNhcC1kaWZmK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieGRmXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94Y2FwLWVsK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieGVsXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94Y2FwLWVycm9yK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veGNhcC1ucyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInhuc1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veGNvbi1jb25mZXJlbmNlLWluZm8reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94Y29uLWNvbmZlcmVuY2UtaW5mby1kaWZmK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veGVuYyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInhlbmNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3hmZGZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ4ZmRmXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94aHRtbCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInhodG1sXCIsIFwieGh0XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94aHRtbC12b2ljZSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veGxpZmYreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ4bGZcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieG1sXCIsIFwieHNsXCIsIFwieHNkXCIsIFwicm5nXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94bWwtZHRkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJkdGRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3htbC1leHRlcm5hbC1wYXJzZWQtZW50aXR5XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veG1sLXBhdGNoK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veG1wcCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3hvcCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInhvcFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veHByb2MreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInhwbFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veHNsdCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInhzbFwiLCBcInhzbHRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3hzcGYreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInhzcGZcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3h2K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibXhtbFwiLCBcInhodm1sXCIsIFwieHZtbFwiLCBcInh2bVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veWFtbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3lhbmdcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ5YW5nXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi95YW5nLWRhdGErY2JvclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3lhbmctZGF0YStqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi95YW5nLWRhdGEreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi95YW5nLXBhdGNoK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3lhbmctcGF0Y2greG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi95YW5nLXNpZCtqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi95aW4reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ5aW5cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ppcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInppcFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vemlwK2RvdGxvdHRpZVwiOiB7XG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImxvdHRpZVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vemxpYlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3pzdGRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby8xZC1pbnRlcmxlYXZlZC1wYXJpdHlmZWNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby8zMmthZHBjbVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvLzNncHBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCIzZ3BwXCJdXG4gICAgICB9LFxuICAgICAgXCJhdWRpby8zZ3BwMlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2FhY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImFkdHNcIiwgXCJhYWNcIl1cbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2FjM1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2FkcGNtXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJhZHBcIl1cbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2FtclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImFtclwiXVxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vYW1yLXdiXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vYW1yLXdiK1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2FwdHhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9hc2NcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9hdHJhYy1hZHZhbmNlZC1sb3NzbGVzc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2F0cmFjLXhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9hdHJhYzNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9iYXNpY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImF1XCIsIFwic25kXCJdXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9idjE2XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vYnYzMlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2NsZWFybW9kZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2NuXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vZGF0MTJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9kbHNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9kc3ItZXMyMDExMDhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9kc3ItZXMyMDIwNTBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9kc3ItZXMyMDIyMTFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9kc3ItZXMyMDIyMTJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9kdlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2R2aTRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9lYWMzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vZW5jYXBydHBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9ldnJjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vZXZyYy1xY3BcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9ldnJjMFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2V2cmMxXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vZXZyY2JcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9ldnJjYjBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9ldnJjYjFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9ldnJjbndcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9ldnJjbncwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vZXZyY253MVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2V2cmN3YlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2V2cmN3YjBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9ldnJjd2IxXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vZXZzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vZmxhY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2ZsZXhmZWNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9md2RyZWRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9nNzExLTBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9nNzE5XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vZzcyMlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2c3MjIxXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vZzcyM1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2c3MjYtMTZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9nNzI2LTI0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vZzcyNi0zMlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2c3MjYtNDBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9nNzI4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vZzcyOVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2c3MjkxXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vZzcyOWRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9nNzI5ZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2dzbVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2dzbS1lZnJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9nc20taHItMDhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9pbGJjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vaXAtbXJfdjIuNVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2lzYWNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2wxNlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2wyMFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2wyNFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2VcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2w4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vbHBjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vbWF0cm9za2FcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9tZWxwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vbWVscDEyMDBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9tZWxwMjQwMFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL21lbHA2MDBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9taGFzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vbWlkaVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibWlkXCIsIFwibWlkaVwiLCBcImthclwiLCBcInJtaVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vbWlkaS1jbGlwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vbW9iaWxlLXhtZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm14bWZcIl1cbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL21wM1wiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1wM1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vbXA0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibTRhXCIsIFwibXA0YVwiLCBcIm00YlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vbXA0YS1sYXRtXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vbXBhXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vbXBhLXJvYnVzdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL21wZWdcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtcGdhXCIsIFwibXAyXCIsIFwibXAyYVwiLCBcIm1wM1wiLCBcIm0yYVwiLCBcIm0zYVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vbXBlZzQtZ2VuZXJpY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL211c2VwYWNrXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9vZ2dcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJvZ2FcIiwgXCJvZ2dcIiwgXCJzcHhcIiwgXCJvcHVzXCJdXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9vcHVzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vcGFyaXR5ZmVjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vcGNtYVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3BjbWEtd2JcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9wY211XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vcGNtdS13YlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3Bycy5zaWRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9xY2VscFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3JhcHRvcmZlY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3JlZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3J0cC1lbmMtYWVzY20xMjhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9ydHAtbWlkaVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3J0cGxvb3BiYWNrXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vcnR4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vczNtXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzM21cIl1cbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3NjaXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9zaWxrXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzaWxcIl1cbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3NtdlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3Ntdi1xY3BcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9zbXYwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vc29mYVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3NwLW1pZGlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9zcGVleFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3QxNDBjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vdDM4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vdGVsZXBob25lLWV2ZW50XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vdGV0cmFfYWNlbHBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby90ZXRyYV9hY2VscF9iYlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3RvbmVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby90c3ZjaXNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby91ZW1jbGlwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vdWxwZmVjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vdXNhY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3ZkdmlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby92bXItd2JcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby92bmQuM2dwcC5pdWZwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vdm5kLjRzYlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3ZuZC5hdWRpb2tvelwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3ZuZC5jZWxwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vdm5kLmNpc2NvLm5zZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3ZuZC5jbWxlcy5yYWRpby1ldmVudHNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby92bmQuY25zLmFucDFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby92bmQuY25zLmluZjFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby92bmQuZGVjZS5hdWRpb1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInV2YVwiLCBcInV2dmFcIl1cbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3ZuZC5kaWdpdGFsLXdpbmRzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZW9sXCJdXG4gICAgICB9LFxuICAgICAgXCJhdWRpby92bmQuZGxuYS5hZHRzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vdm5kLmRvbGJ5LmhlYWFjLjFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby92bmQuZG9sYnkuaGVhYWMuMlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3ZuZC5kb2xieS5tbHBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby92bmQuZG9sYnkubXBzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vdm5kLmRvbGJ5LnBsMlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3ZuZC5kb2xieS5wbDJ4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vdm5kLmRvbGJ5LnBsMnpcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby92bmQuZG9sYnkucHVsc2UuMVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3ZuZC5kcmFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJkcmFcIl1cbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3ZuZC5kdHNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJkdHNcIl1cbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3ZuZC5kdHMuaGRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJkdHNoZFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vdm5kLmR0cy51aGRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby92bmQuZHZiLmZpbGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby92bmQuZXZlcmFkLnBsalwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3ZuZC5obnMuYXVkaW9cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby92bmQubHVjZW50LnZvaWNlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibHZwXCJdXG4gICAgICB9LFxuICAgICAgXCJhdWRpby92bmQubXMtcGxheXJlYWR5Lm1lZGlhLnB5YVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInB5YVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vdm5kLm5va2lhLm1vYmlsZS14bWZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby92bmQubm9ydGVsLnZia1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3ZuZC5udWVyYS5lY2VscDQ4MDBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJlY2VscDQ4MDBcIl1cbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3ZuZC5udWVyYS5lY2VscDc0NzBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJlY2VscDc0NzBcIl1cbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3ZuZC5udWVyYS5lY2VscDk2MDBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJlY2VscDk2MDBcIl1cbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3ZuZC5vY3RlbC5zYmNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby92bmQucHJlc29udXMubXVsdGl0cmFja1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3ZuZC5xY2VscFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vdm5kLnJoZXRvcmV4LjMya2FkcGNtXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vdm5kLnJpcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInJpcFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vdm5kLnJuLXJlYWxhdWRpb1wiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2VcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3ZuZC5zZWFsZWRtZWRpYS5zb2Z0c2VhbC5tcGVnXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vdm5kLnZteC5jdnNkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vdm5kLndhdmVcIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlXG4gICAgICB9LFxuICAgICAgXCJhdWRpby92b3JiaXNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlXG4gICAgICB9LFxuICAgICAgXCJhdWRpby92b3JiaXMtY29uZmlnXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vd2F2XCI6IHtcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wid2F2XCJdXG4gICAgICB9LFxuICAgICAgXCJhdWRpby93YXZlXCI6IHtcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wid2F2XCJdXG4gICAgICB9LFxuICAgICAgXCJhdWRpby93ZWJtXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ3ZWJhXCJdXG4gICAgICB9LFxuICAgICAgXCJhdWRpby94LWFhY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYWFjXCJdXG4gICAgICB9LFxuICAgICAgXCJhdWRpby94LWFpZmZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImFpZlwiLCBcImFpZmZcIiwgXCJhaWZjXCJdXG4gICAgICB9LFxuICAgICAgXCJhdWRpby94LWNhZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY2FmXCJdXG4gICAgICB9LFxuICAgICAgXCJhdWRpby94LWZsYWNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImZsYWNcIl1cbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3gtbTRhXCI6IHtcbiAgICAgICAgc291cmNlOiBcIm5naW54XCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm00YVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8veC1tYXRyb3NrYVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibWthXCJdXG4gICAgICB9LFxuICAgICAgXCJhdWRpby94LW1wZWd1cmxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm0zdVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8veC1tcy13YXhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIndheFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8veC1tcy13bWFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIndtYVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8veC1wbi1yZWFsYXVkaW9cIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInJhbVwiLCBcInJhXCJdXG4gICAgICB9LFxuICAgICAgXCJhdWRpby94LXBuLXJlYWxhdWRpby1wbHVnaW5cIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInJtcFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8veC1yZWFsYXVkaW9cIjoge1xuICAgICAgICBzb3VyY2U6IFwibmdpbnhcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicmFcIl1cbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3gtdHRhXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby94LXdhdlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wid2F2XCJdXG4gICAgICB9LFxuICAgICAgXCJhdWRpby94bVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieG1cIl1cbiAgICAgIH0sXG4gICAgICBcImNoZW1pY2FsL3gtY2R4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJjZHhcIl1cbiAgICAgIH0sXG4gICAgICBcImNoZW1pY2FsL3gtY2lmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJjaWZcIl1cbiAgICAgIH0sXG4gICAgICBcImNoZW1pY2FsL3gtY21kZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY21kZlwiXVxuICAgICAgfSxcbiAgICAgIFwiY2hlbWljYWwveC1jbWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImNtbFwiXVxuICAgICAgfSxcbiAgICAgIFwiY2hlbWljYWwveC1jc21sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJjc21sXCJdXG4gICAgICB9LFxuICAgICAgXCJjaGVtaWNhbC94LXBkYlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIlxuICAgICAgfSxcbiAgICAgIFwiY2hlbWljYWwveC14eXpcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInh5elwiXVxuICAgICAgfSxcbiAgICAgIFwiZm9udC9jb2xsZWN0aW9uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widHRjXCJdXG4gICAgICB9LFxuICAgICAgXCJmb250L290ZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wib3RmXCJdXG4gICAgICB9LFxuICAgICAgXCJmb250L3NmbnRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJmb250L3R0ZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1widHRmXCJdXG4gICAgICB9LFxuICAgICAgXCJmb250L3dvZmZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ3b2ZmXCJdXG4gICAgICB9LFxuICAgICAgXCJmb250L3dvZmYyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wid29mZjJcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL2FjZXNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJleHJcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL2FwbmdcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJhcG5nXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS9hdmNpXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYXZjaVwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UvYXZjc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImF2Y3NcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL2F2aWZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJhdmlmXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS9ibXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImJtcFwiLCBcImRpYlwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UvY2dtXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY2dtXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS9kaWNvbS1ybGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJkcmxlXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS9kcHhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJkcHhcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL2VtZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImVtZlwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UvZml0c1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImZpdHNcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL2czZmF4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZzNcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL2dpZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImdpZlwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UvaGVpY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImhlaWNcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL2hlaWMtc2VxdWVuY2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJoZWljc1wiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UvaGVpZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImhlaWZcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL2hlaWYtc2VxdWVuY2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJoZWlmc1wiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UvaGVqMmtcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJoZWoyXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS9pZWZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJpZWZcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL2oyY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImltYWdlL2phaWlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJqYWlpXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS9qYWlzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiamFpc1wiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UvamxzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiamxzXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS9qcDJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJqcDJcIiwgXCJqcGcyXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS9qcGVnXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wianBnXCIsIFwianBlZ1wiLCBcImpwZVwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UvanBoXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wianBoXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS9qcGhjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiamhjXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS9qcG1cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJqcG1cIiwgXCJqcGdtXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS9qcHhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJqcHhcIiwgXCJqcGZcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL2p4bFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImp4bFwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UvanhyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wianhyXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS9qeHJhXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wianhyYVwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2Uvanhyc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImp4cnNcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL2p4c1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImp4c1wiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UvanhzY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImp4c2NcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL2p4c2lcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJqeHNpXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS9qeHNzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wianhzc1wiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2Uva3R4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wia3R4XCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS9rdHgyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wia3R4MlwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UvbmFwbHBzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UvcGpwZWdcIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJqZmlmXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS9wbmdcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwbmdcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL3Bycy5idGlmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYnRpZlwiLCBcImJ0ZlwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UvcHJzLnB0aVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInB0aVwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UvcHdnLXJhc3RlclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImltYWdlL3NnaVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic2dpXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS9zdmcreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzdmdcIiwgXCJzdmd6XCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS90MzhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ0MzhcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL3RpZmZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ0aWZcIiwgXCJ0aWZmXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS90aWZmLWZ4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widGZ4XCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS92bmQuYWRvYmUucGhvdG9zaG9wXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwc2RcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL3ZuZC5haXJ6aXAuYWNjZWxlcmF0b3IuYXp2XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYXp2XCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS92bmQuY2xpcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImltYWdlL3ZuZC5jbnMuaW5mMlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImltYWdlL3ZuZC5kZWNlLmdyYXBoaWNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ1dmlcIiwgXCJ1dnZpXCIsIFwidXZnXCIsIFwidXZ2Z1wiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2Uvdm5kLmRqdnVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJkanZ1XCIsIFwiZGp2XCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS92bmQuZHZiLnN1YnRpdGxlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic3ViXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS92bmQuZHdnXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZHdnXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS92bmQuZHhmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZHhmXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS92bmQuZmFzdGJpZHNoZWV0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZmJzXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS92bmQuZnB4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZnB4XCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS92bmQuZnN0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZnN0XCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS92bmQuZnVqaXhlcm94LmVkbWljcy1tbXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtbXJcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL3ZuZC5mdWppeGVyb3guZWRtaWNzLXJsY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInJsY1wiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2Uvdm5kLmdsb2JhbGdyYXBoaWNzLnBnYlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImltYWdlL3ZuZC5taWNyb3NvZnQuaWNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiaWNvXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS92bmQubWl4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2Uvdm5kLm1vemlsbGEuYXBuZ1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImltYWdlL3ZuZC5tcy1kZHNcIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImRkc1wiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2Uvdm5kLm1zLW1vZGlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtZGlcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL3ZuZC5tcy1waG90b1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wid2RwXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS92bmQubmV0LWZweFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm5weFwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2Uvdm5kLnBjby5iMTZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJiMTZcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL3ZuZC5yYWRpYW5jZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImltYWdlL3ZuZC5zZWFsZWQucG5nXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2Uvdm5kLnNlYWxlZG1lZGlhLnNvZnRzZWFsLmdpZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImltYWdlL3ZuZC5zZWFsZWRtZWRpYS5zb2Z0c2VhbC5qcGdcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS92bmQuc3ZmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2Uvdm5kLnRlbmNlbnQudGFwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widGFwXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS92bmQudmFsdmUuc291cmNlLnRleHR1cmVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ2dGZcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL3ZuZC53YXAud2JtcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIndibXBcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL3ZuZC54aWZmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieGlmXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS92bmQuemJydXNoLnBjeFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInBjeFwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2Uvd2VicFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIndlYnBcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL3dtZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIndtZlwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UveC0zZHNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIjNkc1wiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UveC1hZG9iZS1kbmdcIjoge1xuICAgICAgICBleHRlbnNpb25zOiBbXCJkbmdcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL3gtY211LXJhc3RlclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicmFzXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS94LWNteFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY214XCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS94LWVtZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImltYWdlL3gtZnJlZWhhbmRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImZoXCIsIFwiZmhjXCIsIFwiZmg0XCIsIFwiZmg1XCIsIFwiZmg3XCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS94LWljb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiaWNvXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS94LWpuZ1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJuZ2lueFwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJqbmdcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL3gtbXJzaWQtaW1hZ2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNpZFwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UveC1tcy1ibXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwibmdpbnhcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJibXBcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL3gtcGN4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwY3hcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL3gtcGljdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicGljXCIsIFwicGN0XCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS94LXBvcnRhYmxlLWFueW1hcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicG5tXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS94LXBvcnRhYmxlLWJpdG1hcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicGJtXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS94LXBvcnRhYmxlLWdyYXltYXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInBnbVwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UveC1wb3J0YWJsZS1waXhtYXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInBwbVwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UveC1yZ2JcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInJnYlwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UveC10Z2FcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInRnYVwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UveC13bWZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS94LXhiaXRtYXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInhibVwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UveC14Y2ZcIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS94LXhwaXhtYXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInhwbVwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UveC14d2luZG93ZHVtcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieHdkXCJdXG4gICAgICB9LFxuICAgICAgXCJtZXNzYWdlL2JodHRwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwibWVzc2FnZS9jcGltXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwibWVzc2FnZS9kZWxpdmVyeS1zdGF0dXNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJtZXNzYWdlL2Rpc3Bvc2l0aW9uLW5vdGlmaWNhdGlvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcbiAgICAgICAgICBcImRpc3Bvc2l0aW9uLW5vdGlmaWNhdGlvblwiXG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICBcIm1lc3NhZ2UvZXh0ZXJuYWwtYm9keVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcIm1lc3NhZ2UvZmVlZGJhY2stcmVwb3J0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwibWVzc2FnZS9nbG9iYWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ1OG1zZ1wiXVxuICAgICAgfSxcbiAgICAgIFwibWVzc2FnZS9nbG9iYWwtZGVsaXZlcnktc3RhdHVzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widThkc25cIl1cbiAgICAgIH0sXG4gICAgICBcIm1lc3NhZ2UvZ2xvYmFsLWRpc3Bvc2l0aW9uLW5vdGlmaWNhdGlvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInU4bWRuXCJdXG4gICAgICB9LFxuICAgICAgXCJtZXNzYWdlL2dsb2JhbC1oZWFkZXJzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widThoZHJcIl1cbiAgICAgIH0sXG4gICAgICBcIm1lc3NhZ2UvaHR0cFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2VcbiAgICAgIH0sXG4gICAgICBcIm1lc3NhZ2UvaW1kbit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcIm1lc3NhZ2UvbWxzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwibWVzc2FnZS9uZXdzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiXG4gICAgICB9LFxuICAgICAgXCJtZXNzYWdlL29odHRwLXJlcVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcIm1lc3NhZ2Uvb2h0dHAtcmVzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwibWVzc2FnZS9wYXJ0aWFsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZVxuICAgICAgfSxcbiAgICAgIFwibWVzc2FnZS9yZmM4MjJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImVtbFwiLCBcIm1pbWVcIiwgXCJtaHRcIiwgXCJtaHRtbFwiXVxuICAgICAgfSxcbiAgICAgIFwibWVzc2FnZS9zLWh0dHBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCJcbiAgICAgIH0sXG4gICAgICBcIm1lc3NhZ2Uvc2lwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwibWVzc2FnZS9zaXBmcmFnXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwibWVzc2FnZS90cmFja2luZy1zdGF0dXNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJtZXNzYWdlL3ZuZC5zaS5zaW1wXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiXG4gICAgICB9LFxuICAgICAgXCJtZXNzYWdlL3ZuZC53ZmEud3NjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wid3NjXCJdXG4gICAgICB9LFxuICAgICAgXCJtb2RlbC8zbWZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCIzbWZcIl1cbiAgICAgIH0sXG4gICAgICBcIm1vZGVsL2U1N1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcIm1vZGVsL2dsdGYranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZ2x0ZlwiXVxuICAgICAgfSxcbiAgICAgIFwibW9kZWwvZ2x0Zi1iaW5hcnlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImdsYlwiXVxuICAgICAgfSxcbiAgICAgIFwibW9kZWwvaWdlc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImlnc1wiLCBcImlnZXNcIl1cbiAgICAgIH0sXG4gICAgICBcIm1vZGVsL2p0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wianRcIl1cbiAgICAgIH0sXG4gICAgICBcIm1vZGVsL21lc2hcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtc2hcIiwgXCJtZXNoXCIsIFwic2lsb1wiXVxuICAgICAgfSxcbiAgICAgIFwibW9kZWwvbXRsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibXRsXCJdXG4gICAgICB9LFxuICAgICAgXCJtb2RlbC9vYmpcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJvYmpcIl1cbiAgICAgIH0sXG4gICAgICBcIm1vZGVsL3ByY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInByY1wiXVxuICAgICAgfSxcbiAgICAgIFwibW9kZWwvc3RlcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInN0ZXBcIiwgXCJzdHBcIiwgXCJzdHBuY1wiLCBcInAyMVwiLCBcIjIxMFwiXVxuICAgICAgfSxcbiAgICAgIFwibW9kZWwvc3RlcCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInN0cHhcIl1cbiAgICAgIH0sXG4gICAgICBcIm1vZGVsL3N0ZXAremlwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic3RwelwiXVxuICAgICAgfSxcbiAgICAgIFwibW9kZWwvc3RlcC14bWwremlwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic3RweHpcIl1cbiAgICAgIH0sXG4gICAgICBcIm1vZGVsL3N0bFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInN0bFwiXVxuICAgICAgfSxcbiAgICAgIFwibW9kZWwvdTNkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widTNkXCJdXG4gICAgICB9LFxuICAgICAgXCJtb2RlbC92bmQuYmFyeVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImJhcnlcIl1cbiAgICAgIH0sXG4gICAgICBcIm1vZGVsL3ZuZC5jbGRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJjbGRcIl1cbiAgICAgIH0sXG4gICAgICBcIm1vZGVsL3ZuZC5jb2xsYWRhK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZGFlXCJdXG4gICAgICB9LFxuICAgICAgXCJtb2RlbC92bmQuZHdmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZHdmXCJdXG4gICAgICB9LFxuICAgICAgXCJtb2RlbC92bmQuZmxhdGxhbmQuM2RtbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcIm1vZGVsL3ZuZC5nZGxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJnZGxcIl1cbiAgICAgIH0sXG4gICAgICBcIm1vZGVsL3ZuZC5ncy1nZGxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCJcbiAgICAgIH0sXG4gICAgICBcIm1vZGVsL3ZuZC5ncy5nZGxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJtb2RlbC92bmQuZ3R3XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZ3R3XCJdXG4gICAgICB9LFxuICAgICAgXCJtb2RlbC92bmQubW9tbCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcIm1vZGVsL3ZuZC5tdHNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtdHNcIl1cbiAgICAgIH0sXG4gICAgICBcIm1vZGVsL3ZuZC5vcGVuZ2V4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wib2dleFwiXVxuICAgICAgfSxcbiAgICAgIFwibW9kZWwvdm5kLnBhcmFzb2xpZC50cmFuc21pdC5iaW5hcnlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ4X2JcIl1cbiAgICAgIH0sXG4gICAgICBcIm1vZGVsL3ZuZC5wYXJhc29saWQudHJhbnNtaXQudGV4dFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInhfdFwiXVxuICAgICAgfSxcbiAgICAgIFwibW9kZWwvdm5kLnB5dGhhLnB5b3hcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJweW9cIiwgXCJweW94XCJdXG4gICAgICB9LFxuICAgICAgXCJtb2RlbC92bmQucm9zZXR0ZS5hbm5vdGF0ZWQtZGF0YS1tb2RlbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcIm1vZGVsL3ZuZC5zYXAudmRzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widmRzXCJdXG4gICAgICB9LFxuICAgICAgXCJtb2RlbC92bmQudXNkYVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInVzZGFcIl1cbiAgICAgIH0sXG4gICAgICBcIm1vZGVsL3ZuZC51c2R6K3ppcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInVzZHpcIl1cbiAgICAgIH0sXG4gICAgICBcIm1vZGVsL3ZuZC52YWx2ZS5zb3VyY2UuY29tcGlsZWQtbWFwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYnNwXCJdXG4gICAgICB9LFxuICAgICAgXCJtb2RlbC92bmQudnR1XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widnR1XCJdXG4gICAgICB9LFxuICAgICAgXCJtb2RlbC92cm1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wid3JsXCIsIFwidnJtbFwiXVxuICAgICAgfSxcbiAgICAgIFwibW9kZWwveDNkK2JpbmFyeVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieDNkYlwiLCBcIngzZGJ6XCJdXG4gICAgICB9LFxuICAgICAgXCJtb2RlbC94M2QrZmFzdGluZm9zZXRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ4M2RiXCJdXG4gICAgICB9LFxuICAgICAgXCJtb2RlbC94M2QrdnJtbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieDNkdlwiLCBcIngzZHZ6XCJdXG4gICAgICB9LFxuICAgICAgXCJtb2RlbC94M2QreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ4M2RcIiwgXCJ4M2R6XCJdXG4gICAgICB9LFxuICAgICAgXCJtb2RlbC94M2QtdnJtbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIngzZHZcIl1cbiAgICAgIH0sXG4gICAgICBcIm11bHRpcGFydC9hbHRlcm5hdGl2ZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2VcbiAgICAgIH0sXG4gICAgICBcIm11bHRpcGFydC9hcHBsZWRvdWJsZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcIm11bHRpcGFydC9ieXRlcmFuZ2VzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwibXVsdGlwYXJ0L2RpZ2VzdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcIm11bHRpcGFydC9lbmNyeXB0ZWRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlXG4gICAgICB9LFxuICAgICAgXCJtdWx0aXBhcnQvZm9ybS1kYXRhXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZVxuICAgICAgfSxcbiAgICAgIFwibXVsdGlwYXJ0L2hlYWRlci1zZXRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJtdWx0aXBhcnQvbWl4ZWRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJtdWx0aXBhcnQvbXVsdGlsaW5ndWFsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwibXVsdGlwYXJ0L3BhcmFsbGVsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwibXVsdGlwYXJ0L3JlbGF0ZWRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlXG4gICAgICB9LFxuICAgICAgXCJtdWx0aXBhcnQvcmVwb3J0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwibXVsdGlwYXJ0L3NpZ25lZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2VcbiAgICAgIH0sXG4gICAgICBcIm11bHRpcGFydC92bmQuYmludC5tZWQtcGx1c1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcIm11bHRpcGFydC92b2ljZS1tZXNzYWdlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwibXVsdGlwYXJ0L3gtbWl4ZWQtcmVwbGFjZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInRleHQvMWQtaW50ZXJsZWF2ZWQtcGFyaXR5ZmVjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC9jYWNoZS1tYW5pZmVzdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYXBwY2FjaGVcIiwgXCJtYW5pZmVzdFwiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC9jYWxlbmRhclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImljc1wiLCBcImlmYlwiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC9jYWxlbmRlclwiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwidGV4dC9jbWRcIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcInRleHQvY29mZmVlc2NyaXB0XCI6IHtcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY29mZmVlXCIsIFwibGl0Y29mZmVlXCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L2NxbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInRleHQvY3FsLWV4cHJlc3Npb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L2NxbC1pZGVudGlmaWVyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC9jc3NcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjaGFyc2V0OiBcIlVURi04XCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY3NzXCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L2NzdlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY3N2XCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L2Nzdi1zY2hlbWFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L2RpcmVjdG9yeVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInRleHQvZG5zXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC9lY21hc2NyaXB0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L2VuY2FwcnRwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC9lbnJpY2hlZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInRleHQvZmhpcnBhdGhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L2ZsZXhmZWNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L2Z3ZHJlZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInRleHQvZ2ZmM1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInRleHQvZ3JhbW1hci1yZWYtbGlzdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInRleHQvaGw3djJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L2h0bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImh0bWxcIiwgXCJodG1cIiwgXCJzaHRtbFwiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC9qYWRlXCI6IHtcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiamFkZVwiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC9qYXZhc2NyaXB0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY2hhcnNldDogXCJVVEYtOFwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImpzXCIsIFwibWpzXCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L2pjci1jbmRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L2pzeFwiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wianN4XCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L2xlc3NcIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImxlc3NcIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQvbWFya2Rvd25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1kXCIsIFwibWFya2Rvd25cIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQvbWF0aG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcIm5naW54XCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1tbFwiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC9tZHhcIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1keFwiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC9taXphclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInRleHQvbjNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjaGFyc2V0OiBcIlVURi04XCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibjNcIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQvcGFyYW1ldGVyc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNoYXJzZXQ6IFwiVVRGLThcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC9wYXJpdHlmZWNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3BsYWluXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ0eHRcIiwgXCJ0ZXh0XCIsIFwiY29uZlwiLCBcImRlZlwiLCBcImxpc3RcIiwgXCJsb2dcIiwgXCJpblwiLCBcImluaVwiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC9wcm92ZW5hbmNlLW5vdGF0aW9uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY2hhcnNldDogXCJVVEYtOFwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3Bycy5mYWxsZW5zdGVpbi5yc3RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3Bycy5saW5lcy50YWdcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJkc2NcIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQvcHJzLnByb3AubG9naWNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3Bycy50ZXhpXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC9yYXB0b3JmZWNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3JlZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInRleHQvcmZjODIyLWhlYWRlcnNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3JpY2h0ZXh0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJydHhcIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQvcnRmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJydGZcIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQvcnRwLWVuYy1hZXNjbTEyOFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInRleHQvcnRwbG9vcGJhY2tcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3J0eFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInRleHQvc2dtbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNnbWxcIiwgXCJzZ21cIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQvc2hhY2xjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC9zaGV4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic2hleFwiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC9zbGltXCI6IHtcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic2xpbVwiLCBcInNsbVwiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC9zcGR4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic3BkeFwiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC9zdHJpbmdzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC9zdHlsdXNcIjoge1xuICAgICAgICBleHRlbnNpb25zOiBbXCJzdHlsdXNcIiwgXCJzdHlsXCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3QxNDBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3RhYi1zZXBhcmF0ZWQtdmFsdWVzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ0c3ZcIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQvdHJvZmZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ0XCIsIFwidHJcIiwgXCJyb2ZmXCIsIFwibWFuXCIsIFwibWVcIiwgXCJtc1wiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC90dXJ0bGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjaGFyc2V0OiBcIlVURi04XCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInR0bFwiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC91bHBmZWNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3VyaS1saXN0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ1cmlcIiwgXCJ1cmlzXCIsIFwidXJsc1wiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC92Y2FyZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1widmNhcmRcIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQvdm5kLmFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3ZuZC5hYmNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3ZuZC5hc2NpaS1hcnRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3ZuZC5jdXJsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY3VybFwiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC92bmQuY3VybC5kY3VybFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZGN1cmxcIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQvdm5kLmN1cmwubWN1cmxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1jdXJsXCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3ZuZC5jdXJsLnNjdXJsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzY3VybFwiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC92bmQuZGViaWFuLmNvcHlyaWdodFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNoYXJzZXQ6IFwiVVRGLThcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC92bmQuZG1jbGllbnRzY3JpcHRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3ZuZC5kdmIuc3VidGl0bGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzdWJcIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQvdm5kLmVzbWVydGVjLnRoZW1lLWRlc2NyaXB0b3JcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjaGFyc2V0OiBcIlVURi04XCJcbiAgICAgIH0sXG4gICAgICBcInRleHQvdm5kLmV4Y2hhbmdlYWJsZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInRleHQvdm5kLmZhbWlseXNlYXJjaC5nZWRjb21cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJnZWRcIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQvdm5kLmZpY2xhYi5mbHRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3ZuZC5mbHlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJmbHlcIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQvdm5kLmZtaS5mbGV4c3RvclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImZseFwiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC92bmQuZ21sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC92bmQuZ3JhcGh2aXpcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJndlwiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC92bmQuaGFuc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInRleHQvdm5kLmhnbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInRleHQvdm5kLmluM2QuM2RtbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIjNkbWxcIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQvdm5kLmluM2Quc3BvdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNwb3RcIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQvdm5kLmlwdGMubmV3c21sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC92bmQuaXB0Yy5uaXRmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC92bmQubGF0ZXgtelwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInRleHQvdm5kLm1vdG9yb2xhLnJlZmxleFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInRleHQvdm5kLm1zLW1lZGlhcGFja2FnZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInRleHQvdm5kLm5ldDJwaG9uZS5jb21tY2VudGVyLmNvbW1hbmRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3ZuZC5yYWRpc3lzLm1zbWwtYmFzaWMtbGF5b3V0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC92bmQuc2VueC53YXJwc2NyaXB0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC92bmQuc2kudXJpY2F0YWxvZ3VlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3ZuZC5zb3NpXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC92bmQuc3VuLmoybWUuYXBwLWRlc2NyaXB0b3JcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjaGFyc2V0OiBcIlVURi04XCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImphZFwiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC92bmQudHJvbGx0ZWNoLmxpbmd1aXN0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY2hhcnNldDogXCJVVEYtOFwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3ZuZC52Y2ZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3ZuZC53YXAuc2lcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3ZuZC53YXAuc2xcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3ZuZC53YXAud21sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wid21sXCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3ZuZC53YXAud21sc2NyaXB0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wid21sc1wiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC92bmQuem9vLmtjbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInRleHQvdnR0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY2hhcnNldDogXCJVVEYtOFwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInZ0dFwiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC93Z3NsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wid2dzbFwiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC94LWFzbVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic1wiLCBcImFzbVwiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC94LWNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImNcIiwgXCJjY1wiLCBcImN4eFwiLCBcImNwcFwiLCBcImhcIiwgXCJoaFwiLCBcImRpY1wiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC94LWNvbXBvbmVudFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJuZ2lueFwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJodGNcIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQveC1mb3J0cmFuXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJmXCIsIFwiZm9yXCIsIFwiZjc3XCIsIFwiZjkwXCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3gtZ3d0LXJwY1wiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwidGV4dC94LWhhbmRsZWJhcnMtdGVtcGxhdGVcIjoge1xuICAgICAgICBleHRlbnNpb25zOiBbXCJoYnNcIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQveC1qYXZhLXNvdXJjZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiamF2YVwiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC94LWpxdWVyeS10bXBsXCI6IHtcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3gtbHVhXCI6IHtcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibHVhXCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3gtbWFya2Rvd25cIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1rZFwiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC94LW5mb1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibmZvXCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3gtb3BtbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wib3BtbFwiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC94LW9yZ1wiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wib3JnXCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3gtcGFzY2FsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwXCIsIFwicGFzXCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3gtcHJvY2Vzc2luZ1wiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicGRlXCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3gtc2Fzc1wiOiB7XG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNhc3NcIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQveC1zY3NzXCI6IHtcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic2Nzc1wiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC94LXNldGV4dFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZXR4XCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3gtc2Z2XCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzZnZcIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQveC1zdXNlLXltcFwiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieW1wXCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3gtdXVlbmNvZGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInV1XCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3gtdmNhbGVuZGFyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ2Y3NcIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQveC12Y2FyZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widmNmXCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieG1sXCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3htbC1leHRlcm5hbC1wYXJzZWQtZW50aXR5XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC95YW1sXCI6IHtcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ5YW1sXCIsIFwieW1sXCJdXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby8xZC1pbnRlcmxlYXZlZC1wYXJpdHlmZWNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby8zZ3BwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiM2dwXCIsIFwiM2dwcFwiXVxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vM2dwcC10dFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvLzNncHAyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiM2cyXCJdXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby9hdjFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby9ibXBlZ1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL2J0NjU2XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vY2VsYlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL2R2XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vZW5jYXBydHBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby9ldmNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby9mZnYxXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vZmxleGZlY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL2gyNjFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJoMjYxXCJdXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby9oMjYzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiaDI2M1wiXVxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vaDI2My0xOTk4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vaDI2My0yMDAwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vaDI2NFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImgyNjRcIl1cbiAgICAgIH0sXG4gICAgICBcInZpZGVvL2gyNjQtcmNkb1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL2gyNjQtc3ZjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vaDI2NVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL2gyNjZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby9pc28uc2VnbWVudFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm00c1wiXVxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vanBlZ1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImpwZ3ZcIl1cbiAgICAgIH0sXG4gICAgICBcInZpZGVvL2pwZWcyMDAwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vanBtXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJqcG1cIiwgXCJqcGdtXCJdXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby9qeHN2XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vbG90dGllK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL21hdHJvc2thXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vbWF0cm9za2EtM2RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby9tajJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtajJcIiwgXCJtanAyXCJdXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby9tcDFzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vbXAycFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL21wMnRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ0c1wiLCBcIm0ydFwiLCBcIm0ydHNcIiwgXCJtdHNcIl1cbiAgICAgIH0sXG4gICAgICBcInZpZGVvL21wNFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1wNFwiLCBcIm1wNHZcIiwgXCJtcGc0XCJdXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby9tcDR2LWVzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vbXBlZ1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1wZWdcIiwgXCJtcGdcIiwgXCJtcGVcIiwgXCJtMXZcIiwgXCJtMnZcIl1cbiAgICAgIH0sXG4gICAgICBcInZpZGVvL21wZWc0LWdlbmVyaWNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby9tcHZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby9udlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL29nZ1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm9ndlwiXVxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vcGFyaXR5ZmVjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vcG9pbnRlclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3F1aWNrdGltZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInF0XCIsIFwibW92XCJdXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby9yYXB0b3JmZWNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby9yYXdcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby9ydHAtZW5jLWFlc2NtMTI4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vcnRwbG9vcGJhY2tcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby9ydHhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby9zY2lwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vc21wdGUyOTFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby9zbXB0ZTI5Mm1cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby91bHBmZWNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby92YzFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby92YzJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby92bmQuY2N0dlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3ZuZC5kZWNlLmhkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widXZoXCIsIFwidXZ2aFwiXVxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vdm5kLmRlY2UubW9iaWxlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widXZtXCIsIFwidXZ2bVwiXVxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vdm5kLmRlY2UubXA0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vdm5kLmRlY2UucGRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ1dnBcIiwgXCJ1dnZwXCJdXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby92bmQuZGVjZS5zZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInV2c1wiLCBcInV2dnNcIl1cbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3ZuZC5kZWNlLnZpZGVvXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widXZ2XCIsIFwidXZ2dlwiXVxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vdm5kLmRpcmVjdHYubXBlZ1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3ZuZC5kaXJlY3R2Lm1wZWctdHRzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vdm5kLmRsbmEubXBlZy10dHNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby92bmQuZHZiLmZpbGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJkdmJcIl1cbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3ZuZC5mdnRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJmdnRcIl1cbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3ZuZC5obnMudmlkZW9cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby92bmQuaXB0dmZvcnVtLjFkcGFyaXR5ZmVjLTEwMTBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby92bmQuaXB0dmZvcnVtLjFkcGFyaXR5ZmVjLTIwMDVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby92bmQuaXB0dmZvcnVtLjJkcGFyaXR5ZmVjLTEwMTBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby92bmQuaXB0dmZvcnVtLjJkcGFyaXR5ZmVjLTIwMDVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby92bmQuaXB0dmZvcnVtLnR0c2F2Y1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3ZuZC5pcHR2Zm9ydW0udHRzbXBlZzJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby92bmQubW90b3JvbGEudmlkZW9cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby92bmQubW90b3JvbGEudmlkZW9wXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vdm5kLm1wZWd1cmxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJteHVcIiwgXCJtNHVcIl1cbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3ZuZC5tcy1wbGF5cmVhZHkubWVkaWEucHl2XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicHl2XCJdXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby92bmQubm9raWEuaW50ZXJsZWF2ZWQtbXVsdGltZWRpYVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3ZuZC5ub2tpYS5tcDR2clwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3ZuZC5ub2tpYS52aWRlb3ZvaXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby92bmQub2JqZWN0dmlkZW9cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby92bmQucGxhbmFyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vdm5kLnJhZGdhbWV0dG9vbHMuYmlua1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3ZuZC5yYWRnYW1ldHRvb2xzLnNtYWNrZXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3ZuZC5zZWFsZWQubXBlZzFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby92bmQuc2VhbGVkLm1wZWc0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vdm5kLnNlYWxlZC5zd2ZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby92bmQuc2VhbGVkbWVkaWEuc29mdHNlYWwubW92XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vdm5kLnV2dnUubXA0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widXZ1XCIsIFwidXZ2dVwiXVxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vdm5kLnZpdm9cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ2aXZcIl1cbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3ZuZC55b3V0dWJlLnl0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vdnA4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vdnA5XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vd2VibVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wid2VibVwiXVxuICAgICAgfSxcbiAgICAgIFwidmlkZW8veC1mNHZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImY0dlwiXVxuICAgICAgfSxcbiAgICAgIFwidmlkZW8veC1mbGlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImZsaVwiXVxuICAgICAgfSxcbiAgICAgIFwidmlkZW8veC1mbHZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImZsdlwiXVxuICAgICAgfSxcbiAgICAgIFwidmlkZW8veC1tNHZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm00dlwiXVxuICAgICAgfSxcbiAgICAgIFwidmlkZW8veC1tYXRyb3NrYVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibWt2XCIsIFwibWszZFwiLCBcIm1rc1wiXVxuICAgICAgfSxcbiAgICAgIFwidmlkZW8veC1tbmdcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1uZ1wiXVxuICAgICAgfSxcbiAgICAgIFwidmlkZW8veC1tcy1hc2ZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImFzZlwiLCBcImFzeFwiXVxuICAgICAgfSxcbiAgICAgIFwidmlkZW8veC1tcy12b2JcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInZvYlwiXVxuICAgICAgfSxcbiAgICAgIFwidmlkZW8veC1tcy13bVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wid21cIl1cbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3gtbXMtd212XCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ3bXZcIl1cbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3gtbXMtd214XCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ3bXhcIl1cbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3gtbXMtd3Z4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ3dnhcIl1cbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3gtbXN2aWRlb1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYXZpXCJdXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby94LXNnaS1tb3ZpZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibW92aWVcIl1cbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3gtc212XCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzbXZcIl1cbiAgICAgIH0sXG4gICAgICBcIngtY29uZmVyZW5jZS94LWNvb2x0YWxrXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJpY2VcIl1cbiAgICAgIH0sXG4gICAgICBcIngtc2hhZGVyL3gtZnJhZ21lbnRcIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcIngtc2hhZGVyL3gtdmVydGV4XCI6IHtcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9XG4gICAgfTtcbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9hY2NlcHRzL25vZGVfbW9kdWxlcy9taW1lLWRiL2luZGV4LmpzXG52YXIgcmVxdWlyZV9taW1lX2RiMyA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9hY2NlcHRzL25vZGVfbW9kdWxlcy9taW1lLWRiL2luZGV4LmpzXCIoZXhwb3J0czIsIG1vZHVsZTIpIHtcbiAgICBtb2R1bGUyLmV4cG9ydHMgPSByZXF1aXJlX2RiMygpO1xuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL2FjY2VwdHMvbm9kZV9tb2R1bGVzL21pbWUtdHlwZXMvbWltZVNjb3JlLmpzXG52YXIgcmVxdWlyZV9taW1lU2NvcmUzID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL2FjY2VwdHMvbm9kZV9tb2R1bGVzL21pbWUtdHlwZXMvbWltZVNjb3JlLmpzXCIoZXhwb3J0czIsIG1vZHVsZTIpIHtcbiAgICB2YXIgRkFDRVRfU0NPUkVTID0ge1xuICAgICAgXCJwcnMuXCI6IDEwMCxcbiAgICAgIFwieC1cIjogMjAwLFxuICAgICAgXCJ4LlwiOiAzMDAsXG4gICAgICBcInZuZC5cIjogNDAwLFxuICAgICAgZGVmYXVsdDogOTAwXG4gICAgfTtcbiAgICB2YXIgU09VUkNFX1NDT1JFUyA9IHtcbiAgICAgIG5naW54OiAxMCxcbiAgICAgIGFwYWNoZTogMjAsXG4gICAgICBpYW5hOiA0MCxcbiAgICAgIGRlZmF1bHQ6IDMwXG4gICAgICAvLyBkZWZpbml0aW9ucyBhZGRlZCBieSBganNodHRwL21pbWUtZGJgIHByb2plY3Q/XG4gICAgfTtcbiAgICB2YXIgVFlQRV9TQ09SRVMgPSB7XG4gICAgICAvLyBwcmVmZXIgYXBwbGljYXRpb24veG1sIG92ZXIgdGV4dC94bWxcbiAgICAgIC8vIHByZWZlciBhcHBsaWNhdGlvbi9ydGYgb3ZlciB0ZXh0L3J0ZlxuICAgICAgYXBwbGljYXRpb246IDEsXG4gICAgICAvLyBwcmVmZXIgZm9udC93b2ZmIG92ZXIgYXBwbGljYXRpb24vZm9udC13b2ZmXG4gICAgICBmb250OiAyLFxuICAgICAgZGVmYXVsdDogMFxuICAgIH07XG4gICAgbW9kdWxlMi5leHBvcnRzID0gZnVuY3Rpb24gbWltZVNjb3JlKG1pbWVUeXBlLCBzb3VyY2UgPSBcImRlZmF1bHRcIikge1xuICAgICAgaWYgKG1pbWVUeXBlID09PSBcImFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbVwiKSB7XG4gICAgICAgIHJldHVybiAwO1xuICAgICAgfVxuICAgICAgY29uc3QgW3R5cGUsIHN1YnR5cGVdID0gbWltZVR5cGUuc3BsaXQoXCIvXCIpO1xuICAgICAgY29uc3QgZmFjZXQgPSBzdWJ0eXBlLnJlcGxhY2UoLyhcXC58eC0pLiovLCBcIiQxXCIpO1xuICAgICAgY29uc3QgZmFjZXRTY29yZSA9IEZBQ0VUX1NDT1JFU1tmYWNldF0gfHwgRkFDRVRfU0NPUkVTLmRlZmF1bHQ7XG4gICAgICBjb25zdCBzb3VyY2VTY29yZSA9IFNPVVJDRV9TQ09SRVNbc291cmNlXSB8fCBTT1VSQ0VfU0NPUkVTLmRlZmF1bHQ7XG4gICAgICBjb25zdCB0eXBlU2NvcmUgPSBUWVBFX1NDT1JFU1t0eXBlXSB8fCBUWVBFX1NDT1JFUy5kZWZhdWx0O1xuICAgICAgY29uc3QgbGVuZ3RoU2NvcmUgPSAxIC0gbWltZVR5cGUubGVuZ3RoIC8gMTAwO1xuICAgICAgcmV0dXJuIGZhY2V0U2NvcmUgKyBzb3VyY2VTY29yZSArIHR5cGVTY29yZSArIGxlbmd0aFNjb3JlO1xuICAgIH07XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvYWNjZXB0cy9ub2RlX21vZHVsZXMvbWltZS10eXBlcy9pbmRleC5qc1xudmFyIHJlcXVpcmVfbWltZV90eXBlczMgPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvYWNjZXB0cy9ub2RlX21vZHVsZXMvbWltZS10eXBlcy9pbmRleC5qc1wiKGV4cG9ydHMyKSB7XG4gICAgXCJ1c2Ugc3RyaWN0XCI7XG4gICAgdmFyIGRiID0gcmVxdWlyZV9taW1lX2RiMygpO1xuICAgIHZhciBleHRuYW1lID0gcmVxdWlyZShcInBhdGhcIikuZXh0bmFtZTtcbiAgICB2YXIgbWltZVNjb3JlID0gcmVxdWlyZV9taW1lU2NvcmUzKCk7XG4gICAgdmFyIEVYVFJBQ1RfVFlQRV9SRUdFWFAgPSAvXlxccyooW147XFxzXSopKD86O3xcXHN8JCkvO1xuICAgIHZhciBURVhUX1RZUEVfUkVHRVhQID0gL150ZXh0XFwvL2k7XG4gICAgZXhwb3J0czIuY2hhcnNldCA9IGNoYXJzZXQ7XG4gICAgZXhwb3J0czIuY2hhcnNldHMgPSB7IGxvb2t1cDogY2hhcnNldCB9O1xuICAgIGV4cG9ydHMyLmNvbnRlbnRUeXBlID0gY29udGVudFR5cGUyO1xuICAgIGV4cG9ydHMyLmV4dGVuc2lvbiA9IGV4dGVuc2lvbjtcbiAgICBleHBvcnRzMi5leHRlbnNpb25zID0gLyogQF9fUFVSRV9fICovIE9iamVjdC5jcmVhdGUobnVsbCk7XG4gICAgZXhwb3J0czIubG9va3VwID0gbG9va3VwO1xuICAgIGV4cG9ydHMyLnR5cGVzID0gLyogQF9fUFVSRV9fICovIE9iamVjdC5jcmVhdGUobnVsbCk7XG4gICAgZXhwb3J0czIuX2V4dGVuc2lvbkNvbmZsaWN0cyA9IFtdO1xuICAgIHBvcHVsYXRlTWFwcyhleHBvcnRzMi5leHRlbnNpb25zLCBleHBvcnRzMi50eXBlcyk7XG4gICAgZnVuY3Rpb24gY2hhcnNldCh0eXBlKSB7XG4gICAgICBpZiAoIXR5cGUgfHwgdHlwZW9mIHR5cGUgIT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgdmFyIG1hdGNoID0gRVhUUkFDVF9UWVBFX1JFR0VYUC5leGVjKHR5cGUpO1xuICAgICAgdmFyIG1pbWUgPSBtYXRjaCAmJiBkYlttYXRjaFsxXS50b0xvd2VyQ2FzZSgpXTtcbiAgICAgIGlmIChtaW1lICYmIG1pbWUuY2hhcnNldCkge1xuICAgICAgICByZXR1cm4gbWltZS5jaGFyc2V0O1xuICAgICAgfVxuICAgICAgaWYgKG1hdGNoICYmIFRFWFRfVFlQRV9SRUdFWFAudGVzdChtYXRjaFsxXSkpIHtcbiAgICAgICAgcmV0dXJuIFwiVVRGLThcIjtcbiAgICAgIH1cbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgZnVuY3Rpb24gY29udGVudFR5cGUyKHN0cikge1xuICAgICAgaWYgKCFzdHIgfHwgdHlwZW9mIHN0ciAhPT0gXCJzdHJpbmdcIikge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgICB2YXIgbWltZSA9IHN0ci5pbmRleE9mKFwiL1wiKSA9PT0gLTEgPyBleHBvcnRzMi5sb29rdXAoc3RyKSA6IHN0cjtcbiAgICAgIGlmICghbWltZSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgICBpZiAobWltZS5pbmRleE9mKFwiY2hhcnNldFwiKSA9PT0gLTEpIHtcbiAgICAgICAgdmFyIGNoYXJzZXQyID0gZXhwb3J0czIuY2hhcnNldChtaW1lKTtcbiAgICAgICAgaWYgKGNoYXJzZXQyKSBtaW1lICs9IFwiOyBjaGFyc2V0PVwiICsgY2hhcnNldDIudG9Mb3dlckNhc2UoKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBtaW1lO1xuICAgIH1cbiAgICBmdW5jdGlvbiBleHRlbnNpb24odHlwZSkge1xuICAgICAgaWYgKCF0eXBlIHx8IHR5cGVvZiB0eXBlICE9PSBcInN0cmluZ1wiKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIHZhciBtYXRjaCA9IEVYVFJBQ1RfVFlQRV9SRUdFWFAuZXhlYyh0eXBlKTtcbiAgICAgIHZhciBleHRzID0gbWF0Y2ggJiYgZXhwb3J0czIuZXh0ZW5zaW9uc1ttYXRjaFsxXS50b0xvd2VyQ2FzZSgpXTtcbiAgICAgIGlmICghZXh0cyB8fCAhZXh0cy5sZW5ndGgpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGV4dHNbMF07XG4gICAgfVxuICAgIGZ1bmN0aW9uIGxvb2t1cChwYXRoKSB7XG4gICAgICBpZiAoIXBhdGggfHwgdHlwZW9mIHBhdGggIT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgdmFyIGV4dGVuc2lvbjIgPSBleHRuYW1lKFwieC5cIiArIHBhdGgpLnRvTG93ZXJDYXNlKCkuc2xpY2UoMSk7XG4gICAgICBpZiAoIWV4dGVuc2lvbjIpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGV4cG9ydHMyLnR5cGVzW2V4dGVuc2lvbjJdIHx8IGZhbHNlO1xuICAgIH1cbiAgICBmdW5jdGlvbiBwb3B1bGF0ZU1hcHMoZXh0ZW5zaW9ucywgdHlwZXMpIHtcbiAgICAgIE9iamVjdC5rZXlzKGRiKS5mb3JFYWNoKGZ1bmN0aW9uIGZvckVhY2hNaW1lVHlwZSh0eXBlKSB7XG4gICAgICAgIHZhciBtaW1lID0gZGJbdHlwZV07XG4gICAgICAgIHZhciBleHRzID0gbWltZS5leHRlbnNpb25zO1xuICAgICAgICBpZiAoIWV4dHMgfHwgIWV4dHMubGVuZ3RoKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGV4dGVuc2lvbnNbdHlwZV0gPSBleHRzO1xuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGV4dHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICB2YXIgZXh0ZW5zaW9uMiA9IGV4dHNbaV07XG4gICAgICAgICAgdHlwZXNbZXh0ZW5zaW9uMl0gPSBfcHJlZmVycmVkVHlwZShleHRlbnNpb24yLCB0eXBlc1tleHRlbnNpb24yXSwgdHlwZSk7XG4gICAgICAgICAgY29uc3QgbGVnYWN5VHlwZSA9IF9wcmVmZXJyZWRUeXBlTGVnYWN5KFxuICAgICAgICAgICAgZXh0ZW5zaW9uMixcbiAgICAgICAgICAgIHR5cGVzW2V4dGVuc2lvbjJdLFxuICAgICAgICAgICAgdHlwZVxuICAgICAgICAgICk7XG4gICAgICAgICAgaWYgKGxlZ2FjeVR5cGUgIT09IHR5cGVzW2V4dGVuc2lvbjJdKSB7XG4gICAgICAgICAgICBleHBvcnRzMi5fZXh0ZW5zaW9uQ29uZmxpY3RzLnB1c2goW2V4dGVuc2lvbjIsIGxlZ2FjeVR5cGUsIHR5cGVzW2V4dGVuc2lvbjJdXSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gICAgZnVuY3Rpb24gX3ByZWZlcnJlZFR5cGUoZXh0LCB0eXBlMCwgdHlwZTEpIHtcbiAgICAgIHZhciBzY29yZTAgPSB0eXBlMCA/IG1pbWVTY29yZSh0eXBlMCwgZGJbdHlwZTBdLnNvdXJjZSkgOiAwO1xuICAgICAgdmFyIHNjb3JlMSA9IHR5cGUxID8gbWltZVNjb3JlKHR5cGUxLCBkYlt0eXBlMV0uc291cmNlKSA6IDA7XG4gICAgICByZXR1cm4gc2NvcmUwID4gc2NvcmUxID8gdHlwZTAgOiB0eXBlMTtcbiAgICB9XG4gICAgZnVuY3Rpb24gX3ByZWZlcnJlZFR5cGVMZWdhY3koZXh0LCB0eXBlMCwgdHlwZTEpIHtcbiAgICAgIHZhciBTT1VSQ0VfUkFOSyA9IFtcIm5naW54XCIsIFwiYXBhY2hlXCIsIHZvaWQgMCwgXCJpYW5hXCJdO1xuICAgICAgdmFyIHNjb3JlMCA9IHR5cGUwID8gU09VUkNFX1JBTksuaW5kZXhPZihkYlt0eXBlMF0uc291cmNlKSA6IDA7XG4gICAgICB2YXIgc2NvcmUxID0gdHlwZTEgPyBTT1VSQ0VfUkFOSy5pbmRleE9mKGRiW3R5cGUxXS5zb3VyY2UpIDogMDtcbiAgICAgIGlmIChleHBvcnRzMi50eXBlc1tleHRlbnNpb25dICE9PSBcImFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbVwiICYmIChzY29yZTAgPiBzY29yZTEgfHwgc2NvcmUwID09PSBzY29yZTEgJiYgZXhwb3J0czIudHlwZXNbZXh0ZW5zaW9uXT8uc2xpY2UoMCwgMTIpID09PSBcImFwcGxpY2F0aW9uL1wiKSkge1xuICAgICAgICByZXR1cm4gdHlwZTA7XG4gICAgICB9XG4gICAgICByZXR1cm4gc2NvcmUwID4gc2NvcmUxID8gdHlwZTAgOiB0eXBlMTtcbiAgICB9XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvYWNjZXB0cy9pbmRleC5qc1xudmFyIHJlcXVpcmVfYWNjZXB0cyA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9hY2NlcHRzL2luZGV4LmpzXCIoZXhwb3J0czIsIG1vZHVsZTIpIHtcbiAgICBcInVzZSBzdHJpY3RcIjtcbiAgICB2YXIgTmVnb3RpYXRvciA9IHJlcXVpcmVfbmVnb3RpYXRvcigpO1xuICAgIHZhciBtaW1lID0gcmVxdWlyZV9taW1lX3R5cGVzMygpO1xuICAgIG1vZHVsZTIuZXhwb3J0cyA9IEFjY2VwdHM7XG4gICAgZnVuY3Rpb24gQWNjZXB0cyhyZXEpIHtcbiAgICAgIGlmICghKHRoaXMgaW5zdGFuY2VvZiBBY2NlcHRzKSkge1xuICAgICAgICByZXR1cm4gbmV3IEFjY2VwdHMocmVxKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuaGVhZGVycyA9IHJlcS5oZWFkZXJzO1xuICAgICAgdGhpcy5uZWdvdGlhdG9yID0gbmV3IE5lZ290aWF0b3IocmVxKTtcbiAgICB9XG4gICAgQWNjZXB0cy5wcm90b3R5cGUudHlwZSA9IEFjY2VwdHMucHJvdG90eXBlLnR5cGVzID0gZnVuY3Rpb24odHlwZXNfKSB7XG4gICAgICB2YXIgdHlwZXMgPSB0eXBlc187XG4gICAgICBpZiAodHlwZXMgJiYgIUFycmF5LmlzQXJyYXkodHlwZXMpKSB7XG4gICAgICAgIHR5cGVzID0gbmV3IEFycmF5KGFyZ3VtZW50cy5sZW5ndGgpO1xuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHR5cGVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgdHlwZXNbaV0gPSBhcmd1bWVudHNbaV07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmICghdHlwZXMgfHwgdHlwZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm5lZ290aWF0b3IubWVkaWFUeXBlcygpO1xuICAgICAgfVxuICAgICAgaWYgKCF0aGlzLmhlYWRlcnMuYWNjZXB0KSB7XG4gICAgICAgIHJldHVybiB0eXBlc1swXTtcbiAgICAgIH1cbiAgICAgIHZhciBtaW1lcyA9IHR5cGVzLm1hcChleHRUb01pbWUpO1xuICAgICAgdmFyIGFjY2VwdHMgPSB0aGlzLm5lZ290aWF0b3IubWVkaWFUeXBlcyhtaW1lcy5maWx0ZXIodmFsaWRNaW1lKSk7XG4gICAgICB2YXIgZmlyc3QgPSBhY2NlcHRzWzBdO1xuICAgICAgcmV0dXJuIGZpcnN0ID8gdHlwZXNbbWltZXMuaW5kZXhPZihmaXJzdCldIDogZmFsc2U7XG4gICAgfTtcbiAgICBBY2NlcHRzLnByb3RvdHlwZS5lbmNvZGluZyA9IEFjY2VwdHMucHJvdG90eXBlLmVuY29kaW5ncyA9IGZ1bmN0aW9uKGVuY29kaW5nc18pIHtcbiAgICAgIHZhciBlbmNvZGluZ3MgPSBlbmNvZGluZ3NfO1xuICAgICAgaWYgKGVuY29kaW5ncyAmJiAhQXJyYXkuaXNBcnJheShlbmNvZGluZ3MpKSB7XG4gICAgICAgIGVuY29kaW5ncyA9IG5ldyBBcnJheShhcmd1bWVudHMubGVuZ3RoKTtcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBlbmNvZGluZ3MubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICBlbmNvZGluZ3NbaV0gPSBhcmd1bWVudHNbaV07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmICghZW5jb2RpbmdzIHx8IGVuY29kaW5ncy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubmVnb3RpYXRvci5lbmNvZGluZ3MoKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0aGlzLm5lZ290aWF0b3IuZW5jb2RpbmdzKGVuY29kaW5ncylbMF0gfHwgZmFsc2U7XG4gICAgfTtcbiAgICBBY2NlcHRzLnByb3RvdHlwZS5jaGFyc2V0ID0gQWNjZXB0cy5wcm90b3R5cGUuY2hhcnNldHMgPSBmdW5jdGlvbihjaGFyc2V0c18pIHtcbiAgICAgIHZhciBjaGFyc2V0cyA9IGNoYXJzZXRzXztcbiAgICAgIGlmIChjaGFyc2V0cyAmJiAhQXJyYXkuaXNBcnJheShjaGFyc2V0cykpIHtcbiAgICAgICAgY2hhcnNldHMgPSBuZXcgQXJyYXkoYXJndW1lbnRzLmxlbmd0aCk7XG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY2hhcnNldHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICBjaGFyc2V0c1tpXSA9IGFyZ3VtZW50c1tpXTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKCFjaGFyc2V0cyB8fCBjaGFyc2V0cy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubmVnb3RpYXRvci5jaGFyc2V0cygpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRoaXMubmVnb3RpYXRvci5jaGFyc2V0cyhjaGFyc2V0cylbMF0gfHwgZmFsc2U7XG4gICAgfTtcbiAgICBBY2NlcHRzLnByb3RvdHlwZS5sYW5nID0gQWNjZXB0cy5wcm90b3R5cGUubGFuZ3MgPSBBY2NlcHRzLnByb3RvdHlwZS5sYW5ndWFnZSA9IEFjY2VwdHMucHJvdG90eXBlLmxhbmd1YWdlcyA9IGZ1bmN0aW9uKGxhbmd1YWdlc18pIHtcbiAgICAgIHZhciBsYW5ndWFnZXMgPSBsYW5ndWFnZXNfO1xuICAgICAgaWYgKGxhbmd1YWdlcyAmJiAhQXJyYXkuaXNBcnJheShsYW5ndWFnZXMpKSB7XG4gICAgICAgIGxhbmd1YWdlcyA9IG5ldyBBcnJheShhcmd1bWVudHMubGVuZ3RoKTtcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsYW5ndWFnZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICBsYW5ndWFnZXNbaV0gPSBhcmd1bWVudHNbaV07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmICghbGFuZ3VhZ2VzIHx8IGxhbmd1YWdlcy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubmVnb3RpYXRvci5sYW5ndWFnZXMoKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0aGlzLm5lZ290aWF0b3IubGFuZ3VhZ2VzKGxhbmd1YWdlcylbMF0gfHwgZmFsc2U7XG4gICAgfTtcbiAgICBmdW5jdGlvbiBleHRUb01pbWUodHlwZSkge1xuICAgICAgcmV0dXJuIHR5cGUuaW5kZXhPZihcIi9cIikgPT09IC0xID8gbWltZS5sb29rdXAodHlwZSkgOiB0eXBlO1xuICAgIH1cbiAgICBmdW5jdGlvbiB2YWxpZE1pbWUodHlwZSkge1xuICAgICAgcmV0dXJuIHR5cGVvZiB0eXBlID09PSBcInN0cmluZ1wiO1xuICAgIH1cbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9mcmVzaC9pbmRleC5qc1xudmFyIHJlcXVpcmVfZnJlc2ggPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvZnJlc2gvaW5kZXguanNcIihleHBvcnRzMiwgbW9kdWxlMikge1xuICAgIFwidXNlIHN0cmljdFwiO1xuICAgIHZhciBDQUNIRV9DT05UUk9MX05PX0NBQ0hFX1JFR0VYUCA9IC8oPzpefCwpXFxzKj9uby1jYWNoZVxccyo/KD86LHwkKS87XG4gICAgbW9kdWxlMi5leHBvcnRzID0gZnJlc2g7XG4gICAgZnVuY3Rpb24gZnJlc2gocmVxSGVhZGVycywgcmVzSGVhZGVycykge1xuICAgICAgdmFyIG1vZGlmaWVkU2luY2UgPSByZXFIZWFkZXJzW1wiaWYtbW9kaWZpZWQtc2luY2VcIl07XG4gICAgICB2YXIgbm9uZU1hdGNoID0gcmVxSGVhZGVyc1tcImlmLW5vbmUtbWF0Y2hcIl07XG4gICAgICBpZiAoIW1vZGlmaWVkU2luY2UgJiYgIW5vbmVNYXRjaCkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgICB2YXIgY2FjaGVDb250cm9sID0gcmVxSGVhZGVyc1tcImNhY2hlLWNvbnRyb2xcIl07XG4gICAgICBpZiAoY2FjaGVDb250cm9sICYmIENBQ0hFX0NPTlRST0xfTk9fQ0FDSEVfUkVHRVhQLnRlc3QoY2FjaGVDb250cm9sKSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgICBpZiAobm9uZU1hdGNoKSB7XG4gICAgICAgIGlmIChub25lTWF0Y2ggPT09IFwiKlwiKSB7XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGV0YWcgPSByZXNIZWFkZXJzLmV0YWc7XG4gICAgICAgIGlmICghZXRhZykge1xuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgbWF0Y2hlcyA9IHBhcnNlVG9rZW5MaXN0KG5vbmVNYXRjaCk7XG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbWF0Y2hlcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgIHZhciBtYXRjaCA9IG1hdGNoZXNbaV07XG4gICAgICAgICAgaWYgKG1hdGNoID09PSBldGFnIHx8IG1hdGNoID09PSBcIlcvXCIgKyBldGFnIHx8IFwiVy9cIiArIG1hdGNoID09PSBldGFnKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgaWYgKG1vZGlmaWVkU2luY2UpIHtcbiAgICAgICAgdmFyIGxhc3RNb2RpZmllZCA9IHJlc0hlYWRlcnNbXCJsYXN0LW1vZGlmaWVkXCJdO1xuICAgICAgICB2YXIgbW9kaWZpZWRTdGFsZSA9ICFsYXN0TW9kaWZpZWQgfHwgIShwYXJzZUh0dHBEYXRlKGxhc3RNb2RpZmllZCkgPD0gcGFyc2VIdHRwRGF0ZShtb2RpZmllZFNpbmNlKSk7XG4gICAgICAgIGlmIChtb2RpZmllZFN0YWxlKSB7XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgZnVuY3Rpb24gcGFyc2VIdHRwRGF0ZShkYXRlKSB7XG4gICAgICB2YXIgdGltZXN0YW1wID0gZGF0ZSAmJiBEYXRlLnBhcnNlKGRhdGUpO1xuICAgICAgcmV0dXJuIHR5cGVvZiB0aW1lc3RhbXAgPT09IFwibnVtYmVyXCIgPyB0aW1lc3RhbXAgOiBOYU47XG4gICAgfVxuICAgIGZ1bmN0aW9uIHBhcnNlVG9rZW5MaXN0KHN0cikge1xuICAgICAgdmFyIGVuZCA9IDA7XG4gICAgICB2YXIgbGlzdCA9IFtdO1xuICAgICAgdmFyIHN0YXJ0ID0gMDtcbiAgICAgIGZvciAodmFyIGkgPSAwLCBsZW4gPSBzdHIubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHtcbiAgICAgICAgc3dpdGNoIChzdHIuY2hhckNvZGVBdChpKSkge1xuICAgICAgICAgIGNhc2UgMzI6XG4gICAgICAgICAgICBpZiAoc3RhcnQgPT09IGVuZCkge1xuICAgICAgICAgICAgICBzdGFydCA9IGVuZCA9IGkgKyAxO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSA0NDpcbiAgICAgICAgICAgIGxpc3QucHVzaChzdHIuc3Vic3RyaW5nKHN0YXJ0LCBlbmQpKTtcbiAgICAgICAgICAgIHN0YXJ0ID0gZW5kID0gaSArIDE7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgZW5kID0gaSArIDE7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgbGlzdC5wdXNoKHN0ci5zdWJzdHJpbmcoc3RhcnQsIGVuZCkpO1xuICAgICAgcmV0dXJuIGxpc3Q7XG4gICAgfVxuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL3JhbmdlLXBhcnNlci9pbmRleC5qc1xudmFyIHJlcXVpcmVfcmFuZ2VfcGFyc2VyID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL3JhbmdlLXBhcnNlci9pbmRleC5qc1wiKGV4cG9ydHMyLCBtb2R1bGUyKSB7XG4gICAgXCJ1c2Ugc3RyaWN0XCI7XG4gICAgbW9kdWxlMi5leHBvcnRzID0gcmFuZ2VQYXJzZXI7XG4gICAgZnVuY3Rpb24gcmFuZ2VQYXJzZXIoc2l6ZSwgc3RyLCBvcHRpb25zKSB7XG4gICAgICBpZiAodHlwZW9mIHN0ciAhPT0gXCJzdHJpbmdcIikge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiYXJndW1lbnQgc3RyIG11c3QgYmUgYSBzdHJpbmdcIik7XG4gICAgICB9XG4gICAgICB2YXIgaW5kZXggPSBzdHIuaW5kZXhPZihcIj1cIik7XG4gICAgICBpZiAoaW5kZXggPT09IC0xKSB7XG4gICAgICAgIHJldHVybiAtMjtcbiAgICAgIH1cbiAgICAgIHZhciBhcnIgPSBzdHIuc2xpY2UoaW5kZXggKyAxKS5zcGxpdChcIixcIik7XG4gICAgICB2YXIgcmFuZ2VzID0gW107XG4gICAgICByYW5nZXMudHlwZSA9IHN0ci5zbGljZSgwLCBpbmRleCk7XG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGFyci5sZW5ndGg7IGkrKykge1xuICAgICAgICB2YXIgcmFuZ2UgPSBhcnJbaV0uc3BsaXQoXCItXCIpO1xuICAgICAgICB2YXIgc3RhcnQgPSBwYXJzZUludChyYW5nZVswXSwgMTApO1xuICAgICAgICB2YXIgZW5kID0gcGFyc2VJbnQocmFuZ2VbMV0sIDEwKTtcbiAgICAgICAgaWYgKGlzTmFOKHN0YXJ0KSkge1xuICAgICAgICAgIHN0YXJ0ID0gc2l6ZSAtIGVuZDtcbiAgICAgICAgICBlbmQgPSBzaXplIC0gMTtcbiAgICAgICAgfSBlbHNlIGlmIChpc05hTihlbmQpKSB7XG4gICAgICAgICAgZW5kID0gc2l6ZSAtIDE7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGVuZCA+IHNpemUgLSAxKSB7XG4gICAgICAgICAgZW5kID0gc2l6ZSAtIDE7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGlzTmFOKHN0YXJ0KSB8fCBpc05hTihlbmQpIHx8IHN0YXJ0ID4gZW5kIHx8IHN0YXJ0IDwgMCkge1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIHJhbmdlcy5wdXNoKHtcbiAgICAgICAgICBzdGFydCxcbiAgICAgICAgICBlbmRcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICBpZiAocmFuZ2VzLmxlbmd0aCA8IDEpIHtcbiAgICAgICAgcmV0dXJuIC0xO1xuICAgICAgfVxuICAgICAgcmV0dXJuIG9wdGlvbnMgJiYgb3B0aW9ucy5jb21iaW5lID8gY29tYmluZVJhbmdlcyhyYW5nZXMpIDogcmFuZ2VzO1xuICAgIH1cbiAgICBmdW5jdGlvbiBjb21iaW5lUmFuZ2VzKHJhbmdlcykge1xuICAgICAgdmFyIG9yZGVyZWQgPSByYW5nZXMubWFwKG1hcFdpdGhJbmRleCkuc29ydChzb3J0QnlSYW5nZVN0YXJ0KTtcbiAgICAgIGZvciAodmFyIGogPSAwLCBpID0gMTsgaSA8IG9yZGVyZWQubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgdmFyIHJhbmdlID0gb3JkZXJlZFtpXTtcbiAgICAgICAgdmFyIGN1cnJlbnQgPSBvcmRlcmVkW2pdO1xuICAgICAgICBpZiAocmFuZ2Uuc3RhcnQgPiBjdXJyZW50LmVuZCArIDEpIHtcbiAgICAgICAgICBvcmRlcmVkWysral0gPSByYW5nZTtcbiAgICAgICAgfSBlbHNlIGlmIChyYW5nZS5lbmQgPiBjdXJyZW50LmVuZCkge1xuICAgICAgICAgIGN1cnJlbnQuZW5kID0gcmFuZ2UuZW5kO1xuICAgICAgICAgIGN1cnJlbnQuaW5kZXggPSBNYXRoLm1pbihjdXJyZW50LmluZGV4LCByYW5nZS5pbmRleCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIG9yZGVyZWQubGVuZ3RoID0gaiArIDE7XG4gICAgICB2YXIgY29tYmluZWQgPSBvcmRlcmVkLnNvcnQoc29ydEJ5UmFuZ2VJbmRleCkubWFwKG1hcFdpdGhvdXRJbmRleCk7XG4gICAgICBjb21iaW5lZC50eXBlID0gcmFuZ2VzLnR5cGU7XG4gICAgICByZXR1cm4gY29tYmluZWQ7XG4gICAgfVxuICAgIGZ1bmN0aW9uIG1hcFdpdGhJbmRleChyYW5nZSwgaW5kZXgpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHN0YXJ0OiByYW5nZS5zdGFydCxcbiAgICAgICAgZW5kOiByYW5nZS5lbmQsXG4gICAgICAgIGluZGV4XG4gICAgICB9O1xuICAgIH1cbiAgICBmdW5jdGlvbiBtYXBXaXRob3V0SW5kZXgocmFuZ2UpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHN0YXJ0OiByYW5nZS5zdGFydCxcbiAgICAgICAgZW5kOiByYW5nZS5lbmRcbiAgICAgIH07XG4gICAgfVxuICAgIGZ1bmN0aW9uIHNvcnRCeVJhbmdlSW5kZXgoYSwgYikge1xuICAgICAgcmV0dXJuIGEuaW5kZXggLSBiLmluZGV4O1xuICAgIH1cbiAgICBmdW5jdGlvbiBzb3J0QnlSYW5nZVN0YXJ0KGEsIGIpIHtcbiAgICAgIHJldHVybiBhLnN0YXJ0IC0gYi5zdGFydDtcbiAgICB9XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvZXhwcmVzcy9saWIvcmVxdWVzdC5qc1xudmFyIHJlcXVpcmVfcmVxdWVzdCA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9leHByZXNzL2xpYi9yZXF1ZXN0LmpzXCIoZXhwb3J0czIsIG1vZHVsZTIpIHtcbiAgICBcInVzZSBzdHJpY3RcIjtcbiAgICB2YXIgYWNjZXB0cyA9IHJlcXVpcmVfYWNjZXB0cygpO1xuICAgIHZhciBpc0lQID0gcmVxdWlyZShcIm5vZGU6bmV0XCIpLmlzSVA7XG4gICAgdmFyIHR5cGVpcyA9IHJlcXVpcmVfdHlwZV9pcygpO1xuICAgIHZhciBodHRwID0gcmVxdWlyZShcIm5vZGU6aHR0cFwiKTtcbiAgICB2YXIgZnJlc2ggPSByZXF1aXJlX2ZyZXNoKCk7XG4gICAgdmFyIHBhcnNlUmFuZ2UgPSByZXF1aXJlX3JhbmdlX3BhcnNlcigpO1xuICAgIHZhciBwYXJzZSA9IHJlcXVpcmVfcGFyc2V1cmwoKTtcbiAgICB2YXIgcHJveHlhZGRyID0gcmVxdWlyZV9wcm94eV9hZGRyKCk7XG4gICAgdmFyIHJlcSA9IE9iamVjdC5jcmVhdGUoaHR0cC5JbmNvbWluZ01lc3NhZ2UucHJvdG90eXBlKTtcbiAgICBtb2R1bGUyLmV4cG9ydHMgPSByZXE7XG4gICAgcmVxLmdldCA9IHJlcS5oZWFkZXIgPSBmdW5jdGlvbiBoZWFkZXIobmFtZSkge1xuICAgICAgaWYgKCFuYW1lKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJuYW1lIGFyZ3VtZW50IGlzIHJlcXVpcmVkIHRvIHJlcS5nZXRcIik7XG4gICAgICB9XG4gICAgICBpZiAodHlwZW9mIG5hbWUgIT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcIm5hbWUgbXVzdCBiZSBhIHN0cmluZyB0byByZXEuZ2V0XCIpO1xuICAgICAgfVxuICAgICAgdmFyIGxjID0gbmFtZS50b0xvd2VyQ2FzZSgpO1xuICAgICAgc3dpdGNoIChsYykge1xuICAgICAgICBjYXNlIFwicmVmZXJlclwiOlxuICAgICAgICBjYXNlIFwicmVmZXJyZXJcIjpcbiAgICAgICAgICByZXR1cm4gdGhpcy5oZWFkZXJzLnJlZmVycmVyIHx8IHRoaXMuaGVhZGVycy5yZWZlcmVyO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHJldHVybiB0aGlzLmhlYWRlcnNbbGNdO1xuICAgICAgfVxuICAgIH07XG4gICAgcmVxLmFjY2VwdHMgPSBmdW5jdGlvbigpIHtcbiAgICAgIHZhciBhY2NlcHQgPSBhY2NlcHRzKHRoaXMpO1xuICAgICAgcmV0dXJuIGFjY2VwdC50eXBlcy5hcHBseShhY2NlcHQsIGFyZ3VtZW50cyk7XG4gICAgfTtcbiAgICByZXEuYWNjZXB0c0VuY29kaW5ncyA9IGZ1bmN0aW9uKCkge1xuICAgICAgdmFyIGFjY2VwdCA9IGFjY2VwdHModGhpcyk7XG4gICAgICByZXR1cm4gYWNjZXB0LmVuY29kaW5ncy5hcHBseShhY2NlcHQsIGFyZ3VtZW50cyk7XG4gICAgfTtcbiAgICByZXEuYWNjZXB0c0NoYXJzZXRzID0gZnVuY3Rpb24oKSB7XG4gICAgICB2YXIgYWNjZXB0ID0gYWNjZXB0cyh0aGlzKTtcbiAgICAgIHJldHVybiBhY2NlcHQuY2hhcnNldHMuYXBwbHkoYWNjZXB0LCBhcmd1bWVudHMpO1xuICAgIH07XG4gICAgcmVxLmFjY2VwdHNMYW5ndWFnZXMgPSBmdW5jdGlvbigpIHtcbiAgICAgIHZhciBhY2NlcHQgPSBhY2NlcHRzKHRoaXMpO1xuICAgICAgcmV0dXJuIGFjY2VwdC5sYW5ndWFnZXMuYXBwbHkoYWNjZXB0LCBhcmd1bWVudHMpO1xuICAgIH07XG4gICAgcmVxLnJhbmdlID0gZnVuY3Rpb24gcmFuZ2Uoc2l6ZSwgb3B0aW9ucykge1xuICAgICAgdmFyIHJhbmdlMiA9IHRoaXMuZ2V0KFwiUmFuZ2VcIik7XG4gICAgICBpZiAoIXJhbmdlMikgcmV0dXJuO1xuICAgICAgcmV0dXJuIHBhcnNlUmFuZ2Uoc2l6ZSwgcmFuZ2UyLCBvcHRpb25zKTtcbiAgICB9O1xuICAgIGRlZmluZUdldHRlcihyZXEsIFwicXVlcnlcIiwgZnVuY3Rpb24gcXVlcnkoKSB7XG4gICAgICB2YXIgcXVlcnlwYXJzZSA9IHRoaXMuYXBwLmdldChcInF1ZXJ5IHBhcnNlciBmblwiKTtcbiAgICAgIGlmICghcXVlcnlwYXJzZSkge1xuICAgICAgICByZXR1cm4gLyogQF9fUFVSRV9fICovIE9iamVjdC5jcmVhdGUobnVsbCk7XG4gICAgICB9XG4gICAgICB2YXIgcXVlcnlzdHJpbmcgPSBwYXJzZSh0aGlzKS5xdWVyeTtcbiAgICAgIHJldHVybiBxdWVyeXBhcnNlKHF1ZXJ5c3RyaW5nKTtcbiAgICB9KTtcbiAgICByZXEuaXMgPSBmdW5jdGlvbiBpcyh0eXBlcykge1xuICAgICAgdmFyIGFyciA9IHR5cGVzO1xuICAgICAgaWYgKCFBcnJheS5pc0FycmF5KHR5cGVzKSkge1xuICAgICAgICBhcnIgPSBuZXcgQXJyYXkoYXJndW1lbnRzLmxlbmd0aCk7XG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYXJyLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgYXJyW2ldID0gYXJndW1lbnRzW2ldO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gdHlwZWlzKHRoaXMsIGFycik7XG4gICAgfTtcbiAgICBkZWZpbmVHZXR0ZXIocmVxLCBcInByb3RvY29sXCIsIGZ1bmN0aW9uIHByb3RvY29sKCkge1xuICAgICAgdmFyIHByb3RvID0gdGhpcy5jb25uZWN0aW9uLmVuY3J5cHRlZCA/IFwiaHR0cHNcIiA6IFwiaHR0cFwiO1xuICAgICAgdmFyIHRydXN0ID0gdGhpcy5hcHAuZ2V0KFwidHJ1c3QgcHJveHkgZm5cIik7XG4gICAgICBpZiAoIXRydXN0KHRoaXMuY29ubmVjdGlvbi5yZW1vdGVBZGRyZXNzLCAwKSkge1xuICAgICAgICByZXR1cm4gcHJvdG87XG4gICAgICB9XG4gICAgICB2YXIgaGVhZGVyID0gdGhpcy5nZXQoXCJYLUZvcndhcmRlZC1Qcm90b1wiKSB8fCBwcm90bztcbiAgICAgIHZhciBpbmRleCA9IGhlYWRlci5pbmRleE9mKFwiLFwiKTtcbiAgICAgIHJldHVybiBpbmRleCAhPT0gLTEgPyBoZWFkZXIuc3Vic3RyaW5nKDAsIGluZGV4KS50cmltKCkgOiBoZWFkZXIudHJpbSgpO1xuICAgIH0pO1xuICAgIGRlZmluZUdldHRlcihyZXEsIFwic2VjdXJlXCIsIGZ1bmN0aW9uIHNlY3VyZSgpIHtcbiAgICAgIHJldHVybiB0aGlzLnByb3RvY29sID09PSBcImh0dHBzXCI7XG4gICAgfSk7XG4gICAgZGVmaW5lR2V0dGVyKHJlcSwgXCJpcFwiLCBmdW5jdGlvbiBpcCgpIHtcbiAgICAgIHZhciB0cnVzdCA9IHRoaXMuYXBwLmdldChcInRydXN0IHByb3h5IGZuXCIpO1xuICAgICAgcmV0dXJuIHByb3h5YWRkcih0aGlzLCB0cnVzdCk7XG4gICAgfSk7XG4gICAgZGVmaW5lR2V0dGVyKHJlcSwgXCJpcHNcIiwgZnVuY3Rpb24gaXBzKCkge1xuICAgICAgdmFyIHRydXN0ID0gdGhpcy5hcHAuZ2V0KFwidHJ1c3QgcHJveHkgZm5cIik7XG4gICAgICB2YXIgYWRkcnMgPSBwcm94eWFkZHIuYWxsKHRoaXMsIHRydXN0KTtcbiAgICAgIGFkZHJzLnJldmVyc2UoKS5wb3AoKTtcbiAgICAgIHJldHVybiBhZGRycztcbiAgICB9KTtcbiAgICBkZWZpbmVHZXR0ZXIocmVxLCBcInN1YmRvbWFpbnNcIiwgZnVuY3Rpb24gc3ViZG9tYWlucygpIHtcbiAgICAgIHZhciBob3N0bmFtZSA9IHRoaXMuaG9zdG5hbWU7XG4gICAgICBpZiAoIWhvc3RuYW1lKSByZXR1cm4gW107XG4gICAgICB2YXIgb2Zmc2V0ID0gdGhpcy5hcHAuZ2V0KFwic3ViZG9tYWluIG9mZnNldFwiKTtcbiAgICAgIHZhciBzdWJkb21haW5zMiA9ICFpc0lQKGhvc3RuYW1lKSA/IGhvc3RuYW1lLnNwbGl0KFwiLlwiKS5yZXZlcnNlKCkgOiBbaG9zdG5hbWVdO1xuICAgICAgcmV0dXJuIHN1YmRvbWFpbnMyLnNsaWNlKG9mZnNldCk7XG4gICAgfSk7XG4gICAgZGVmaW5lR2V0dGVyKHJlcSwgXCJwYXRoXCIsIGZ1bmN0aW9uIHBhdGgoKSB7XG4gICAgICByZXR1cm4gcGFyc2UodGhpcykucGF0aG5hbWU7XG4gICAgfSk7XG4gICAgZGVmaW5lR2V0dGVyKHJlcSwgXCJob3N0XCIsIGZ1bmN0aW9uIGhvc3QoKSB7XG4gICAgICB2YXIgdHJ1c3QgPSB0aGlzLmFwcC5nZXQoXCJ0cnVzdCBwcm94eSBmblwiKTtcbiAgICAgIHZhciB2YWwgPSB0aGlzLmdldChcIlgtRm9yd2FyZGVkLUhvc3RcIik7XG4gICAgICBpZiAoIXZhbCB8fCAhdHJ1c3QodGhpcy5jb25uZWN0aW9uLnJlbW90ZUFkZHJlc3MsIDApKSB7XG4gICAgICAgIHZhbCA9IHRoaXMuZ2V0KFwiSG9zdFwiKTtcbiAgICAgIH0gZWxzZSBpZiAodmFsLmluZGV4T2YoXCIsXCIpICE9PSAtMSkge1xuICAgICAgICB2YWwgPSB2YWwuc3Vic3RyaW5nKDAsIHZhbC5pbmRleE9mKFwiLFwiKSkudHJpbVJpZ2h0KCk7XG4gICAgICB9XG4gICAgICByZXR1cm4gdmFsIHx8IHZvaWQgMDtcbiAgICB9KTtcbiAgICBkZWZpbmVHZXR0ZXIocmVxLCBcImhvc3RuYW1lXCIsIGZ1bmN0aW9uIGhvc3RuYW1lKCkge1xuICAgICAgdmFyIGhvc3QgPSB0aGlzLmhvc3Q7XG4gICAgICBpZiAoIWhvc3QpIHJldHVybjtcbiAgICAgIHZhciBvZmZzZXQgPSBob3N0WzBdID09PSBcIltcIiA/IGhvc3QuaW5kZXhPZihcIl1cIikgKyAxIDogMDtcbiAgICAgIHZhciBpbmRleCA9IGhvc3QuaW5kZXhPZihcIjpcIiwgb2Zmc2V0KTtcbiAgICAgIHJldHVybiBpbmRleCAhPT0gLTEgPyBob3N0LnN1YnN0cmluZygwLCBpbmRleCkgOiBob3N0O1xuICAgIH0pO1xuICAgIGRlZmluZUdldHRlcihyZXEsIFwiZnJlc2hcIiwgZnVuY3Rpb24oKSB7XG4gICAgICB2YXIgbWV0aG9kID0gdGhpcy5tZXRob2Q7XG4gICAgICB2YXIgcmVzID0gdGhpcy5yZXM7XG4gICAgICB2YXIgc3RhdHVzID0gcmVzLnN0YXR1c0NvZGU7XG4gICAgICBpZiAoXCJHRVRcIiAhPT0gbWV0aG9kICYmIFwiSEVBRFwiICE9PSBtZXRob2QpIHJldHVybiBmYWxzZTtcbiAgICAgIGlmIChzdGF0dXMgPj0gMjAwICYmIHN0YXR1cyA8IDMwMCB8fCAzMDQgPT09IHN0YXR1cykge1xuICAgICAgICByZXR1cm4gZnJlc2godGhpcy5oZWFkZXJzLCB7XG4gICAgICAgICAgXCJldGFnXCI6IHJlcy5nZXQoXCJFVGFnXCIpLFxuICAgICAgICAgIFwibGFzdC1tb2RpZmllZFwiOiByZXMuZ2V0KFwiTGFzdC1Nb2RpZmllZFwiKVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9KTtcbiAgICBkZWZpbmVHZXR0ZXIocmVxLCBcInN0YWxlXCIsIGZ1bmN0aW9uIHN0YWxlKCkge1xuICAgICAgcmV0dXJuICF0aGlzLmZyZXNoO1xuICAgIH0pO1xuICAgIGRlZmluZUdldHRlcihyZXEsIFwieGhyXCIsIGZ1bmN0aW9uIHhocigpIHtcbiAgICAgIHZhciB2YWwgPSB0aGlzLmdldChcIlgtUmVxdWVzdGVkLVdpdGhcIikgfHwgXCJcIjtcbiAgICAgIHJldHVybiB2YWwudG9Mb3dlckNhc2UoKSA9PT0gXCJ4bWxodHRwcmVxdWVzdFwiO1xuICAgIH0pO1xuICAgIGZ1bmN0aW9uIGRlZmluZUdldHRlcihvYmosIG5hbWUsIGdldHRlcikge1xuICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwgbmFtZSwge1xuICAgICAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGdldDogZ2V0dGVyXG4gICAgICB9KTtcbiAgICB9XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvc2FmZS1idWZmZXIvaW5kZXguanNcbnZhciByZXF1aXJlX3NhZmVfYnVmZmVyID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL3NhZmUtYnVmZmVyL2luZGV4LmpzXCIoZXhwb3J0czIsIG1vZHVsZTIpIHtcbiAgICB2YXIgYnVmZmVyID0gcmVxdWlyZShcImJ1ZmZlclwiKTtcbiAgICB2YXIgQnVmZmVyMiA9IGJ1ZmZlci5CdWZmZXI7XG4gICAgZnVuY3Rpb24gY29weVByb3BzKHNyYywgZHN0KSB7XG4gICAgICBmb3IgKHZhciBrZXkgaW4gc3JjKSB7XG4gICAgICAgIGRzdFtrZXldID0gc3JjW2tleV07XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChCdWZmZXIyLmZyb20gJiYgQnVmZmVyMi5hbGxvYyAmJiBCdWZmZXIyLmFsbG9jVW5zYWZlICYmIEJ1ZmZlcjIuYWxsb2NVbnNhZmVTbG93KSB7XG4gICAgICBtb2R1bGUyLmV4cG9ydHMgPSBidWZmZXI7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvcHlQcm9wcyhidWZmZXIsIGV4cG9ydHMyKTtcbiAgICAgIGV4cG9ydHMyLkJ1ZmZlciA9IFNhZmVCdWZmZXI7XG4gICAgfVxuICAgIGZ1bmN0aW9uIFNhZmVCdWZmZXIoYXJnLCBlbmNvZGluZ09yT2Zmc2V0LCBsZW5ndGgpIHtcbiAgICAgIHJldHVybiBCdWZmZXIyKGFyZywgZW5jb2RpbmdPck9mZnNldCwgbGVuZ3RoKTtcbiAgICB9XG4gICAgU2FmZUJ1ZmZlci5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKEJ1ZmZlcjIucHJvdG90eXBlKTtcbiAgICBjb3B5UHJvcHMoQnVmZmVyMiwgU2FmZUJ1ZmZlcik7XG4gICAgU2FmZUJ1ZmZlci5mcm9tID0gZnVuY3Rpb24oYXJnLCBlbmNvZGluZ09yT2Zmc2V0LCBsZW5ndGgpIHtcbiAgICAgIGlmICh0eXBlb2YgYXJnID09PSBcIm51bWJlclwiKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJBcmd1bWVudCBtdXN0IG5vdCBiZSBhIG51bWJlclwiKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBCdWZmZXIyKGFyZywgZW5jb2RpbmdPck9mZnNldCwgbGVuZ3RoKTtcbiAgICB9O1xuICAgIFNhZmVCdWZmZXIuYWxsb2MgPSBmdW5jdGlvbihzaXplLCBmaWxsLCBlbmNvZGluZykge1xuICAgICAgaWYgKHR5cGVvZiBzaXplICE9PSBcIm51bWJlclwiKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJBcmd1bWVudCBtdXN0IGJlIGEgbnVtYmVyXCIpO1xuICAgICAgfVxuICAgICAgdmFyIGJ1ZiA9IEJ1ZmZlcjIoc2l6ZSk7XG4gICAgICBpZiAoZmlsbCAhPT0gdm9pZCAwKSB7XG4gICAgICAgIGlmICh0eXBlb2YgZW5jb2RpbmcgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICBidWYuZmlsbChmaWxsLCBlbmNvZGluZyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgYnVmLmZpbGwoZmlsbCk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGJ1Zi5maWxsKDApO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGJ1ZjtcbiAgICB9O1xuICAgIFNhZmVCdWZmZXIuYWxsb2NVbnNhZmUgPSBmdW5jdGlvbihzaXplKSB7XG4gICAgICBpZiAodHlwZW9mIHNpemUgIT09IFwibnVtYmVyXCIpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkFyZ3VtZW50IG11c3QgYmUgYSBudW1iZXJcIik7XG4gICAgICB9XG4gICAgICByZXR1cm4gQnVmZmVyMihzaXplKTtcbiAgICB9O1xuICAgIFNhZmVCdWZmZXIuYWxsb2NVbnNhZmVTbG93ID0gZnVuY3Rpb24oc2l6ZSkge1xuICAgICAgaWYgKHR5cGVvZiBzaXplICE9PSBcIm51bWJlclwiKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJBcmd1bWVudCBtdXN0IGJlIGEgbnVtYmVyXCIpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGJ1ZmZlci5TbG93QnVmZmVyKHNpemUpO1xuICAgIH07XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvY29udGVudC1kaXNwb3NpdGlvbi9pbmRleC5qc1xudmFyIHJlcXVpcmVfY29udGVudF9kaXNwb3NpdGlvbiA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9jb250ZW50LWRpc3Bvc2l0aW9uL2luZGV4LmpzXCIoZXhwb3J0czIsIG1vZHVsZTIpIHtcbiAgICBcInVzZSBzdHJpY3RcIjtcbiAgICBtb2R1bGUyLmV4cG9ydHMgPSBjb250ZW50RGlzcG9zaXRpb247XG4gICAgbW9kdWxlMi5leHBvcnRzLnBhcnNlID0gcGFyc2U7XG4gICAgdmFyIGJhc2VuYW1lID0gcmVxdWlyZShcInBhdGhcIikuYmFzZW5hbWU7XG4gICAgdmFyIEJ1ZmZlcjIgPSByZXF1aXJlX3NhZmVfYnVmZmVyKCkuQnVmZmVyO1xuICAgIHZhciBFTkNPREVfVVJMX0FUVFJfQ0hBUl9SRUdFWFAgPSAvW1xceDAwLVxceDIwXCInKCkqLC86Ozw9Pj9AW1xcXFxcXF17fVxceDdmXS9nO1xuICAgIHZhciBIRVhfRVNDQVBFX1JFR0VYUCA9IC8lWzAtOUEtRmEtZl17Mn0vO1xuICAgIHZhciBIRVhfRVNDQVBFX1JFUExBQ0VfUkVHRVhQID0gLyUoWzAtOUEtRmEtZl17Mn0pL2c7XG4gICAgdmFyIE5PTl9MQVRJTjFfUkVHRVhQID0gL1teXFx4MjAtXFx4N2VcXHhhMC1cXHhmZl0vZztcbiAgICB2YXIgUUVTQ19SRUdFWFAgPSAvXFxcXChbXFx1MDAwMC1cXHUwMDdmXSkvZztcbiAgICB2YXIgUVVPVEVfUkVHRVhQID0gLyhbXFxcXFwiXSkvZztcbiAgICB2YXIgUEFSQU1fUkVHRVhQID0gLztbXFx4MDlcXHgyMF0qKFshIyQlJicqKy4wLTlBLVpeX2BhLXp8fi1dKylbXFx4MDlcXHgyMF0qPVtcXHgwOVxceDIwXSooXCIoPzpbXFx4MjAhXFx4MjMtXFx4NWJcXHg1ZC1cXHg3ZVxceDgwLVxceGZmXXxcXFxcW1xceDIwLVxceDdlXSkqXCJ8WyEjJCUmJyorLjAtOUEtWl5fYGEtenx+LV0rKVtcXHgwOVxceDIwXSovZztcbiAgICB2YXIgVEVYVF9SRUdFWFAgPSAvXltcXHgyMC1cXHg3ZVxceDgwLVxceGZmXSskLztcbiAgICB2YXIgVE9LRU5fUkVHRVhQID0gL15bISMkJSYnKisuMC05QS1aXl9gYS16fH4tXSskLztcbiAgICB2YXIgRVhUX1ZBTFVFX1JFR0VYUCA9IC9eKFtBLVphLXowLTkhIyQlJitcXC1eX2B7fX5dKyknKD86W0EtWmEtel17MiwzfSg/Oi1bQS1aYS16XXszfSl7MCwzfXxbQS1aYS16XXs0LDh9fCknKCg/OiVbMC05QS1GYS1mXXsyfXxbQS1aYS16MC05ISMkJisuXl9gfH4tXSkrKSQvO1xuICAgIHZhciBESVNQT1NJVElPTl9UWVBFX1JFR0VYUCA9IC9eKFshIyQlJicqKy4wLTlBLVpeX2BhLXp8fi1dKylbXFx4MDlcXHgyMF0qKD86JHw7KS87XG4gICAgZnVuY3Rpb24gY29udGVudERpc3Bvc2l0aW9uKGZpbGVuYW1lLCBvcHRpb25zKSB7XG4gICAgICB2YXIgb3B0cyA9IG9wdGlvbnMgfHwge307XG4gICAgICB2YXIgdHlwZSA9IG9wdHMudHlwZSB8fCBcImF0dGFjaG1lbnRcIjtcbiAgICAgIHZhciBwYXJhbXMgPSBjcmVhdGVwYXJhbXMoZmlsZW5hbWUsIG9wdHMuZmFsbGJhY2spO1xuICAgICAgcmV0dXJuIGZvcm1hdChuZXcgQ29udGVudERpc3Bvc2l0aW9uKHR5cGUsIHBhcmFtcykpO1xuICAgIH1cbiAgICBmdW5jdGlvbiBjcmVhdGVwYXJhbXMoZmlsZW5hbWUsIGZhbGxiYWNrKSB7XG4gICAgICBpZiAoZmlsZW5hbWUgPT09IHZvaWQgMCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICB2YXIgcGFyYW1zID0ge307XG4gICAgICBpZiAodHlwZW9mIGZpbGVuYW1lICE9PSBcInN0cmluZ1wiKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJmaWxlbmFtZSBtdXN0IGJlIGEgc3RyaW5nXCIpO1xuICAgICAgfVxuICAgICAgaWYgKGZhbGxiYWNrID09PSB2b2lkIDApIHtcbiAgICAgICAgZmFsbGJhY2sgPSB0cnVlO1xuICAgICAgfVxuICAgICAgaWYgKHR5cGVvZiBmYWxsYmFjayAhPT0gXCJzdHJpbmdcIiAmJiB0eXBlb2YgZmFsbGJhY2sgIT09IFwiYm9vbGVhblwiKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJmYWxsYmFjayBtdXN0IGJlIGEgc3RyaW5nIG9yIGJvb2xlYW5cIik7XG4gICAgICB9XG4gICAgICBpZiAodHlwZW9mIGZhbGxiYWNrID09PSBcInN0cmluZ1wiICYmIE5PTl9MQVRJTjFfUkVHRVhQLnRlc3QoZmFsbGJhY2spKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJmYWxsYmFjayBtdXN0IGJlIElTTy04ODU5LTEgc3RyaW5nXCIpO1xuICAgICAgfVxuICAgICAgdmFyIG5hbWUgPSBiYXNlbmFtZShmaWxlbmFtZSk7XG4gICAgICB2YXIgaXNRdW90ZWRTdHJpbmcgPSBURVhUX1JFR0VYUC50ZXN0KG5hbWUpO1xuICAgICAgdmFyIGZhbGxiYWNrTmFtZSA9IHR5cGVvZiBmYWxsYmFjayAhPT0gXCJzdHJpbmdcIiA/IGZhbGxiYWNrICYmIGdldGxhdGluMShuYW1lKSA6IGJhc2VuYW1lKGZhbGxiYWNrKTtcbiAgICAgIHZhciBoYXNGYWxsYmFjayA9IHR5cGVvZiBmYWxsYmFja05hbWUgPT09IFwic3RyaW5nXCIgJiYgZmFsbGJhY2tOYW1lICE9PSBuYW1lO1xuICAgICAgaWYgKGhhc0ZhbGxiYWNrIHx8ICFpc1F1b3RlZFN0cmluZyB8fCBIRVhfRVNDQVBFX1JFR0VYUC50ZXN0KG5hbWUpKSB7XG4gICAgICAgIHBhcmFtc1tcImZpbGVuYW1lKlwiXSA9IG5hbWU7XG4gICAgICB9XG4gICAgICBpZiAoaXNRdW90ZWRTdHJpbmcgfHwgaGFzRmFsbGJhY2spIHtcbiAgICAgICAgcGFyYW1zLmZpbGVuYW1lID0gaGFzRmFsbGJhY2sgPyBmYWxsYmFja05hbWUgOiBuYW1lO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHBhcmFtcztcbiAgICB9XG4gICAgZnVuY3Rpb24gZm9ybWF0KG9iaikge1xuICAgICAgdmFyIHBhcmFtZXRlcnMgPSBvYmoucGFyYW1ldGVycztcbiAgICAgIHZhciB0eXBlID0gb2JqLnR5cGU7XG4gICAgICBpZiAoIXR5cGUgfHwgdHlwZW9mIHR5cGUgIT09IFwic3RyaW5nXCIgfHwgIVRPS0VOX1JFR0VYUC50ZXN0KHR5cGUpKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJpbnZhbGlkIHR5cGVcIik7XG4gICAgICB9XG4gICAgICB2YXIgc3RyaW5nID0gU3RyaW5nKHR5cGUpLnRvTG93ZXJDYXNlKCk7XG4gICAgICBpZiAocGFyYW1ldGVycyAmJiB0eXBlb2YgcGFyYW1ldGVycyA9PT0gXCJvYmplY3RcIikge1xuICAgICAgICB2YXIgcGFyYW07XG4gICAgICAgIHZhciBwYXJhbXMgPSBPYmplY3Qua2V5cyhwYXJhbWV0ZXJzKS5zb3J0KCk7XG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcGFyYW1zLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgcGFyYW0gPSBwYXJhbXNbaV07XG4gICAgICAgICAgdmFyIHZhbCA9IHBhcmFtLnNsaWNlKC0xKSA9PT0gXCIqXCIgPyB1c3RyaW5nKHBhcmFtZXRlcnNbcGFyYW1dKSA6IHFzdHJpbmcocGFyYW1ldGVyc1twYXJhbV0pO1xuICAgICAgICAgIHN0cmluZyArPSBcIjsgXCIgKyBwYXJhbSArIFwiPVwiICsgdmFsO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gc3RyaW5nO1xuICAgIH1cbiAgICBmdW5jdGlvbiBkZWNvZGVmaWVsZChzdHIpIHtcbiAgICAgIHZhciBtYXRjaCA9IEVYVF9WQUxVRV9SRUdFWFAuZXhlYyhzdHIpO1xuICAgICAgaWYgKCFtYXRjaCkge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiaW52YWxpZCBleHRlbmRlZCBmaWVsZCB2YWx1ZVwiKTtcbiAgICAgIH1cbiAgICAgIHZhciBjaGFyc2V0ID0gbWF0Y2hbMV0udG9Mb3dlckNhc2UoKTtcbiAgICAgIHZhciBlbmNvZGVkID0gbWF0Y2hbMl07XG4gICAgICB2YXIgdmFsdWU7XG4gICAgICB2YXIgYmluYXJ5ID0gZW5jb2RlZC5yZXBsYWNlKEhFWF9FU0NBUEVfUkVQTEFDRV9SRUdFWFAsIHBkZWNvZGUpO1xuICAgICAgc3dpdGNoIChjaGFyc2V0KSB7XG4gICAgICAgIGNhc2UgXCJpc28tODg1OS0xXCI6XG4gICAgICAgICAgdmFsdWUgPSBnZXRsYXRpbjEoYmluYXJ5KTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBcInV0Zi04XCI6XG4gICAgICAgIGNhc2UgXCJ1dGY4XCI6XG4gICAgICAgICAgdmFsdWUgPSBCdWZmZXIyLmZyb20oYmluYXJ5LCBcImJpbmFyeVwiKS50b1N0cmluZyhcInV0ZjhcIik7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcInVuc3VwcG9ydGVkIGNoYXJzZXQgaW4gZXh0ZW5kZWQgZmllbGRcIik7XG4gICAgICB9XG4gICAgICByZXR1cm4gdmFsdWU7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGdldGxhdGluMSh2YWwpIHtcbiAgICAgIHJldHVybiBTdHJpbmcodmFsKS5yZXBsYWNlKE5PTl9MQVRJTjFfUkVHRVhQLCBcIj9cIik7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHBhcnNlKHN0cmluZykge1xuICAgICAgaWYgKCFzdHJpbmcgfHwgdHlwZW9mIHN0cmluZyAhPT0gXCJzdHJpbmdcIikge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiYXJndW1lbnQgc3RyaW5nIGlzIHJlcXVpcmVkXCIpO1xuICAgICAgfVxuICAgICAgdmFyIG1hdGNoID0gRElTUE9TSVRJT05fVFlQRV9SRUdFWFAuZXhlYyhzdHJpbmcpO1xuICAgICAgaWYgKCFtYXRjaCkge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiaW52YWxpZCB0eXBlIGZvcm1hdFwiKTtcbiAgICAgIH1cbiAgICAgIHZhciBpbmRleCA9IG1hdGNoWzBdLmxlbmd0aDtcbiAgICAgIHZhciB0eXBlID0gbWF0Y2hbMV0udG9Mb3dlckNhc2UoKTtcbiAgICAgIHZhciBrZXk7XG4gICAgICB2YXIgbmFtZXMgPSBbXTtcbiAgICAgIHZhciBwYXJhbXMgPSB7fTtcbiAgICAgIHZhciB2YWx1ZTtcbiAgICAgIGluZGV4ID0gUEFSQU1fUkVHRVhQLmxhc3RJbmRleCA9IG1hdGNoWzBdLnNsaWNlKC0xKSA9PT0gXCI7XCIgPyBpbmRleCAtIDEgOiBpbmRleDtcbiAgICAgIHdoaWxlIChtYXRjaCA9IFBBUkFNX1JFR0VYUC5leGVjKHN0cmluZykpIHtcbiAgICAgICAgaWYgKG1hdGNoLmluZGV4ICE9PSBpbmRleCkge1xuICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJpbnZhbGlkIHBhcmFtZXRlciBmb3JtYXRcIik7XG4gICAgICAgIH1cbiAgICAgICAgaW5kZXggKz0gbWF0Y2hbMF0ubGVuZ3RoO1xuICAgICAgICBrZXkgPSBtYXRjaFsxXS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICB2YWx1ZSA9IG1hdGNoWzJdO1xuICAgICAgICBpZiAobmFtZXMuaW5kZXhPZihrZXkpICE9PSAtMSkge1xuICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJpbnZhbGlkIGR1cGxpY2F0ZSBwYXJhbWV0ZXJcIik7XG4gICAgICAgIH1cbiAgICAgICAgbmFtZXMucHVzaChrZXkpO1xuICAgICAgICBpZiAoa2V5LmluZGV4T2YoXCIqXCIpICsgMSA9PT0ga2V5Lmxlbmd0aCkge1xuICAgICAgICAgIGtleSA9IGtleS5zbGljZSgwLCAtMSk7XG4gICAgICAgICAgdmFsdWUgPSBkZWNvZGVmaWVsZCh2YWx1ZSk7XG4gICAgICAgICAgcGFyYW1zW2tleV0gPSB2YWx1ZTtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodHlwZW9mIHBhcmFtc1trZXldID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHZhbHVlWzBdID09PSAnXCInKSB7XG4gICAgICAgICAgdmFsdWUgPSB2YWx1ZS5zbGljZSgxLCAtMSkucmVwbGFjZShRRVNDX1JFR0VYUCwgXCIkMVwiKTtcbiAgICAgICAgfVxuICAgICAgICBwYXJhbXNba2V5XSA9IHZhbHVlO1xuICAgICAgfVxuICAgICAgaWYgKGluZGV4ICE9PSAtMSAmJiBpbmRleCAhPT0gc3RyaW5nLmxlbmd0aCkge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiaW52YWxpZCBwYXJhbWV0ZXIgZm9ybWF0XCIpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIG5ldyBDb250ZW50RGlzcG9zaXRpb24odHlwZSwgcGFyYW1zKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gcGRlY29kZShzdHIsIGhleCkge1xuICAgICAgcmV0dXJuIFN0cmluZy5mcm9tQ2hhckNvZGUocGFyc2VJbnQoaGV4LCAxNikpO1xuICAgIH1cbiAgICBmdW5jdGlvbiBwZW5jb2RlKGNoYXIpIHtcbiAgICAgIHJldHVybiBcIiVcIiArIFN0cmluZyhjaGFyKS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KS50b1VwcGVyQ2FzZSgpO1xuICAgIH1cbiAgICBmdW5jdGlvbiBxc3RyaW5nKHZhbCkge1xuICAgICAgdmFyIHN0ciA9IFN0cmluZyh2YWwpO1xuICAgICAgcmV0dXJuICdcIicgKyBzdHIucmVwbGFjZShRVU9URV9SRUdFWFAsIFwiXFxcXCQxXCIpICsgJ1wiJztcbiAgICB9XG4gICAgZnVuY3Rpb24gdXN0cmluZyh2YWwpIHtcbiAgICAgIHZhciBzdHIgPSBTdHJpbmcodmFsKTtcbiAgICAgIHZhciBlbmNvZGVkID0gZW5jb2RlVVJJQ29tcG9uZW50KHN0cikucmVwbGFjZShFTkNPREVfVVJMX0FUVFJfQ0hBUl9SRUdFWFAsIHBlbmNvZGUpO1xuICAgICAgcmV0dXJuIFwiVVRGLTgnJ1wiICsgZW5jb2RlZDtcbiAgICB9XG4gICAgZnVuY3Rpb24gQ29udGVudERpc3Bvc2l0aW9uKHR5cGUsIHBhcmFtZXRlcnMpIHtcbiAgICAgIHRoaXMudHlwZSA9IHR5cGU7XG4gICAgICB0aGlzLnBhcmFtZXRlcnMgPSBwYXJhbWV0ZXJzO1xuICAgIH1cbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9jb29raWUtc2lnbmF0dXJlL2luZGV4LmpzXG52YXIgcmVxdWlyZV9jb29raWVfc2lnbmF0dXJlID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL2Nvb2tpZS1zaWduYXR1cmUvaW5kZXguanNcIihleHBvcnRzMikge1xuICAgIHZhciBjcnlwdG8gPSByZXF1aXJlKFwiY3J5cHRvXCIpO1xuICAgIGV4cG9ydHMyLnNpZ24gPSBmdW5jdGlvbih2YWwsIHNlY3JldCkge1xuICAgICAgaWYgKFwic3RyaW5nXCIgIT0gdHlwZW9mIHZhbCkgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNvb2tpZSB2YWx1ZSBtdXN0IGJlIHByb3ZpZGVkIGFzIGEgc3RyaW5nLlwiKTtcbiAgICAgIGlmIChudWxsID09IHNlY3JldCkgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlNlY3JldCBrZXkgbXVzdCBiZSBwcm92aWRlZC5cIik7XG4gICAgICByZXR1cm4gdmFsICsgXCIuXCIgKyBjcnlwdG8uY3JlYXRlSG1hYyhcInNoYTI1NlwiLCBzZWNyZXQpLnVwZGF0ZSh2YWwpLmRpZ2VzdChcImJhc2U2NFwiKS5yZXBsYWNlKC9cXD0rJC8sIFwiXCIpO1xuICAgIH07XG4gICAgZXhwb3J0czIudW5zaWduID0gZnVuY3Rpb24oaW5wdXQsIHNlY3JldCkge1xuICAgICAgaWYgKFwic3RyaW5nXCIgIT0gdHlwZW9mIGlucHV0KSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiU2lnbmVkIGNvb2tpZSBzdHJpbmcgbXVzdCBiZSBwcm92aWRlZC5cIik7XG4gICAgICBpZiAobnVsbCA9PSBzZWNyZXQpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJTZWNyZXQga2V5IG11c3QgYmUgcHJvdmlkZWQuXCIpO1xuICAgICAgdmFyIHRlbnRhdGl2ZVZhbHVlID0gaW5wdXQuc2xpY2UoMCwgaW5wdXQubGFzdEluZGV4T2YoXCIuXCIpKSwgZXhwZWN0ZWRJbnB1dCA9IGV4cG9ydHMyLnNpZ24odGVudGF0aXZlVmFsdWUsIHNlY3JldCksIGV4cGVjdGVkQnVmZmVyID0gQnVmZmVyLmZyb20oZXhwZWN0ZWRJbnB1dCksIGlucHV0QnVmZmVyID0gQnVmZmVyLmZyb20oaW5wdXQpO1xuICAgICAgcmV0dXJuIGV4cGVjdGVkQnVmZmVyLmxlbmd0aCA9PT0gaW5wdXRCdWZmZXIubGVuZ3RoICYmIGNyeXB0by50aW1pbmdTYWZlRXF1YWwoZXhwZWN0ZWRCdWZmZXIsIGlucHV0QnVmZmVyKSA/IHRlbnRhdGl2ZVZhbHVlIDogZmFsc2U7XG4gICAgfTtcbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9jb29raWUvaW5kZXguanNcbnZhciByZXF1aXJlX2Nvb2tpZSA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9jb29raWUvaW5kZXguanNcIihleHBvcnRzMikge1xuICAgIFwidXNlIHN0cmljdFwiO1xuICAgIGV4cG9ydHMyLnBhcnNlID0gcGFyc2U7XG4gICAgZXhwb3J0czIuc2VyaWFsaXplID0gc2VyaWFsaXplO1xuICAgIHZhciBfX3RvU3RyaW5nID0gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZztcbiAgICB2YXIgY29va2llTmFtZVJlZ0V4cCA9IC9eWyEjJCUmJyorXFwtLl5fYHx+MC05QS1aYS16XSskLztcbiAgICB2YXIgY29va2llVmFsdWVSZWdFeHAgPSAvXihcIj8pW1xcdTAwMjFcXHUwMDIzLVxcdTAwMkJcXHUwMDJELVxcdTAwM0FcXHUwMDNDLVxcdTAwNUJcXHUwMDVELVxcdTAwN0VdKlxcMSQvO1xuICAgIHZhciBkb21haW5WYWx1ZVJlZ0V4cCA9IC9eKFsuXT9bYS16MC05XShbYS16MC05LV17MCw2MX1bYS16MC05XSk/KShbLl1bYS16MC05XShbYS16MC05LV17MCw2MX1bYS16MC05XSk/KSokL2k7XG4gICAgdmFyIHBhdGhWYWx1ZVJlZ0V4cCA9IC9eW1xcdTAwMjAtXFx1MDAzQVxcdTAwM0QtXFx1MDA3RV0qJC87XG4gICAgZnVuY3Rpb24gcGFyc2Uoc3RyLCBvcHQpIHtcbiAgICAgIGlmICh0eXBlb2Ygc3RyICE9PSBcInN0cmluZ1wiKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJhcmd1bWVudCBzdHIgbXVzdCBiZSBhIHN0cmluZ1wiKTtcbiAgICAgIH1cbiAgICAgIHZhciBvYmogPSB7fTtcbiAgICAgIHZhciBsZW4gPSBzdHIubGVuZ3RoO1xuICAgICAgaWYgKGxlbiA8IDIpIHJldHVybiBvYmo7XG4gICAgICB2YXIgZGVjID0gb3B0ICYmIG9wdC5kZWNvZGUgfHwgZGVjb2RlO1xuICAgICAgdmFyIGluZGV4ID0gMDtcbiAgICAgIHZhciBlcUlkeCA9IDA7XG4gICAgICB2YXIgZW5kSWR4ID0gMDtcbiAgICAgIGRvIHtcbiAgICAgICAgZXFJZHggPSBzdHIuaW5kZXhPZihcIj1cIiwgaW5kZXgpO1xuICAgICAgICBpZiAoZXFJZHggPT09IC0xKSBicmVhaztcbiAgICAgICAgZW5kSWR4ID0gc3RyLmluZGV4T2YoXCI7XCIsIGluZGV4KTtcbiAgICAgICAgaWYgKGVuZElkeCA9PT0gLTEpIHtcbiAgICAgICAgICBlbmRJZHggPSBsZW47XG4gICAgICAgIH0gZWxzZSBpZiAoZXFJZHggPiBlbmRJZHgpIHtcbiAgICAgICAgICBpbmRleCA9IHN0ci5sYXN0SW5kZXhPZihcIjtcIiwgZXFJZHggLSAxKSArIDE7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGtleVN0YXJ0SWR4ID0gc3RhcnRJbmRleChzdHIsIGluZGV4LCBlcUlkeCk7XG4gICAgICAgIHZhciBrZXlFbmRJZHggPSBlbmRJbmRleChzdHIsIGVxSWR4LCBrZXlTdGFydElkeCk7XG4gICAgICAgIHZhciBrZXkgPSBzdHIuc2xpY2Uoa2V5U3RhcnRJZHgsIGtleUVuZElkeCk7XG4gICAgICAgIGlmICghb2JqLmhhc093blByb3BlcnR5KGtleSkpIHtcbiAgICAgICAgICB2YXIgdmFsU3RhcnRJZHggPSBzdGFydEluZGV4KHN0ciwgZXFJZHggKyAxLCBlbmRJZHgpO1xuICAgICAgICAgIHZhciB2YWxFbmRJZHggPSBlbmRJbmRleChzdHIsIGVuZElkeCwgdmFsU3RhcnRJZHgpO1xuICAgICAgICAgIGlmIChzdHIuY2hhckNvZGVBdCh2YWxTdGFydElkeCkgPT09IDM0ICYmIHN0ci5jaGFyQ29kZUF0KHZhbEVuZElkeCAtIDEpID09PSAzNCkge1xuICAgICAgICAgICAgdmFsU3RhcnRJZHgrKztcbiAgICAgICAgICAgIHZhbEVuZElkeC0tO1xuICAgICAgICAgIH1cbiAgICAgICAgICB2YXIgdmFsID0gc3RyLnNsaWNlKHZhbFN0YXJ0SWR4LCB2YWxFbmRJZHgpO1xuICAgICAgICAgIG9ialtrZXldID0gdHJ5RGVjb2RlKHZhbCwgZGVjKTtcbiAgICAgICAgfVxuICAgICAgICBpbmRleCA9IGVuZElkeCArIDE7XG4gICAgICB9IHdoaWxlIChpbmRleCA8IGxlbik7XG4gICAgICByZXR1cm4gb2JqO1xuICAgIH1cbiAgICBmdW5jdGlvbiBzdGFydEluZGV4KHN0ciwgaW5kZXgsIG1heCkge1xuICAgICAgZG8ge1xuICAgICAgICB2YXIgY29kZSA9IHN0ci5jaGFyQ29kZUF0KGluZGV4KTtcbiAgICAgICAgaWYgKGNvZGUgIT09IDMyICYmIGNvZGUgIT09IDkpIHJldHVybiBpbmRleDtcbiAgICAgIH0gd2hpbGUgKCsraW5kZXggPCBtYXgpO1xuICAgICAgcmV0dXJuIG1heDtcbiAgICB9XG4gICAgZnVuY3Rpb24gZW5kSW5kZXgoc3RyLCBpbmRleCwgbWluKSB7XG4gICAgICB3aGlsZSAoaW5kZXggPiBtaW4pIHtcbiAgICAgICAgdmFyIGNvZGUgPSBzdHIuY2hhckNvZGVBdCgtLWluZGV4KTtcbiAgICAgICAgaWYgKGNvZGUgIT09IDMyICYmIGNvZGUgIT09IDkpIHJldHVybiBpbmRleCArIDE7XG4gICAgICB9XG4gICAgICByZXR1cm4gbWluO1xuICAgIH1cbiAgICBmdW5jdGlvbiBzZXJpYWxpemUobmFtZSwgdmFsLCBvcHQpIHtcbiAgICAgIHZhciBlbmMgPSBvcHQgJiYgb3B0LmVuY29kZSB8fCBlbmNvZGVVUklDb21wb25lbnQ7XG4gICAgICBpZiAodHlwZW9mIGVuYyAhPT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJvcHRpb24gZW5jb2RlIGlzIGludmFsaWRcIik7XG4gICAgICB9XG4gICAgICBpZiAoIWNvb2tpZU5hbWVSZWdFeHAudGVzdChuYW1lKSkge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiYXJndW1lbnQgbmFtZSBpcyBpbnZhbGlkXCIpO1xuICAgICAgfVxuICAgICAgdmFyIHZhbHVlID0gZW5jKHZhbCk7XG4gICAgICBpZiAoIWNvb2tpZVZhbHVlUmVnRXhwLnRlc3QodmFsdWUpKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJhcmd1bWVudCB2YWwgaXMgaW52YWxpZFwiKTtcbiAgICAgIH1cbiAgICAgIHZhciBzdHIgPSBuYW1lICsgXCI9XCIgKyB2YWx1ZTtcbiAgICAgIGlmICghb3B0KSByZXR1cm4gc3RyO1xuICAgICAgaWYgKG51bGwgIT0gb3B0Lm1heEFnZSkge1xuICAgICAgICB2YXIgbWF4QWdlID0gTWF0aC5mbG9vcihvcHQubWF4QWdlKTtcbiAgICAgICAgaWYgKCFpc0Zpbml0ZShtYXhBZ2UpKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcIm9wdGlvbiBtYXhBZ2UgaXMgaW52YWxpZFwiKTtcbiAgICAgICAgfVxuICAgICAgICBzdHIgKz0gXCI7IE1heC1BZ2U9XCIgKyBtYXhBZ2U7XG4gICAgICB9XG4gICAgICBpZiAob3B0LmRvbWFpbikge1xuICAgICAgICBpZiAoIWRvbWFpblZhbHVlUmVnRXhwLnRlc3Qob3B0LmRvbWFpbikpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwib3B0aW9uIGRvbWFpbiBpcyBpbnZhbGlkXCIpO1xuICAgICAgICB9XG4gICAgICAgIHN0ciArPSBcIjsgRG9tYWluPVwiICsgb3B0LmRvbWFpbjtcbiAgICAgIH1cbiAgICAgIGlmIChvcHQucGF0aCkge1xuICAgICAgICBpZiAoIXBhdGhWYWx1ZVJlZ0V4cC50ZXN0KG9wdC5wYXRoKSkge1xuICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJvcHRpb24gcGF0aCBpcyBpbnZhbGlkXCIpO1xuICAgICAgICB9XG4gICAgICAgIHN0ciArPSBcIjsgUGF0aD1cIiArIG9wdC5wYXRoO1xuICAgICAgfVxuICAgICAgaWYgKG9wdC5leHBpcmVzKSB7XG4gICAgICAgIHZhciBleHBpcmVzID0gb3B0LmV4cGlyZXM7XG4gICAgICAgIGlmICghaXNEYXRlKGV4cGlyZXMpIHx8IGlzTmFOKGV4cGlyZXMudmFsdWVPZigpKSkge1xuICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJvcHRpb24gZXhwaXJlcyBpcyBpbnZhbGlkXCIpO1xuICAgICAgICB9XG4gICAgICAgIHN0ciArPSBcIjsgRXhwaXJlcz1cIiArIGV4cGlyZXMudG9VVENTdHJpbmcoKTtcbiAgICAgIH1cbiAgICAgIGlmIChvcHQuaHR0cE9ubHkpIHtcbiAgICAgICAgc3RyICs9IFwiOyBIdHRwT25seVwiO1xuICAgICAgfVxuICAgICAgaWYgKG9wdC5zZWN1cmUpIHtcbiAgICAgICAgc3RyICs9IFwiOyBTZWN1cmVcIjtcbiAgICAgIH1cbiAgICAgIGlmIChvcHQucGFydGl0aW9uZWQpIHtcbiAgICAgICAgc3RyICs9IFwiOyBQYXJ0aXRpb25lZFwiO1xuICAgICAgfVxuICAgICAgaWYgKG9wdC5wcmlvcml0eSkge1xuICAgICAgICB2YXIgcHJpb3JpdHkgPSB0eXBlb2Ygb3B0LnByaW9yaXR5ID09PSBcInN0cmluZ1wiID8gb3B0LnByaW9yaXR5LnRvTG93ZXJDYXNlKCkgOiBvcHQucHJpb3JpdHk7XG4gICAgICAgIHN3aXRjaCAocHJpb3JpdHkpIHtcbiAgICAgICAgICBjYXNlIFwibG93XCI6XG4gICAgICAgICAgICBzdHIgKz0gXCI7IFByaW9yaXR5PUxvd1wiO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBcIm1lZGl1bVwiOlxuICAgICAgICAgICAgc3RyICs9IFwiOyBQcmlvcml0eT1NZWRpdW1cIjtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgXCJoaWdoXCI6XG4gICAgICAgICAgICBzdHIgKz0gXCI7IFByaW9yaXR5PUhpZ2hcIjtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwib3B0aW9uIHByaW9yaXR5IGlzIGludmFsaWRcIik7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmIChvcHQuc2FtZVNpdGUpIHtcbiAgICAgICAgdmFyIHNhbWVTaXRlID0gdHlwZW9mIG9wdC5zYW1lU2l0ZSA9PT0gXCJzdHJpbmdcIiA/IG9wdC5zYW1lU2l0ZS50b0xvd2VyQ2FzZSgpIDogb3B0LnNhbWVTaXRlO1xuICAgICAgICBzd2l0Y2ggKHNhbWVTaXRlKSB7XG4gICAgICAgICAgY2FzZSB0cnVlOlxuICAgICAgICAgICAgc3RyICs9IFwiOyBTYW1lU2l0ZT1TdHJpY3RcIjtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgXCJsYXhcIjpcbiAgICAgICAgICAgIHN0ciArPSBcIjsgU2FtZVNpdGU9TGF4XCI7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIFwic3RyaWN0XCI6XG4gICAgICAgICAgICBzdHIgKz0gXCI7IFNhbWVTaXRlPVN0cmljdFwiO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBcIm5vbmVcIjpcbiAgICAgICAgICAgIHN0ciArPSBcIjsgU2FtZVNpdGU9Tm9uZVwiO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJvcHRpb24gc2FtZVNpdGUgaXMgaW52YWxpZFwiKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIHN0cjtcbiAgICB9XG4gICAgZnVuY3Rpb24gZGVjb2RlKHN0cikge1xuICAgICAgcmV0dXJuIHN0ci5pbmRleE9mKFwiJVwiKSAhPT0gLTEgPyBkZWNvZGVVUklDb21wb25lbnQoc3RyKSA6IHN0cjtcbiAgICB9XG4gICAgZnVuY3Rpb24gaXNEYXRlKHZhbCkge1xuICAgICAgcmV0dXJuIF9fdG9TdHJpbmcuY2FsbCh2YWwpID09PSBcIltvYmplY3QgRGF0ZV1cIjtcbiAgICB9XG4gICAgZnVuY3Rpb24gdHJ5RGVjb2RlKHN0ciwgZGVjb2RlMikge1xuICAgICAgdHJ5IHtcbiAgICAgICAgcmV0dXJuIGRlY29kZTIoc3RyKTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgcmV0dXJuIHN0cjtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvc2VuZC9ub2RlX21vZHVsZXMvbWltZS1kYi9kYi5qc29uXG52YXIgcmVxdWlyZV9kYjQgPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvc2VuZC9ub2RlX21vZHVsZXMvbWltZS1kYi9kYi5qc29uXCIoZXhwb3J0czIsIG1vZHVsZTIpIHtcbiAgICBtb2R1bGUyLmV4cG9ydHMgPSB7XG4gICAgICBcImFwcGxpY2F0aW9uLzFkLWludGVybGVhdmVkLXBhcml0eWZlY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uLzNncGRhc2gtcW9lLXJlcG9ydCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjaGFyc2V0OiBcIlVURi04XCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vM2dwcC1pbXMreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi8zZ3BwaGFsK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uLzNncHBoYWxmb3Jtcytqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9hMmxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9hY2UrY2JvclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2FjZStqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9hY2UtZ3JvdXBjb21tK2Nib3JcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9hY2UtdHJsK2Nib3JcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9hY3RpdmVtZXNzYWdlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vYWN0aXZpdHkranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vYWlmK2Nib3JcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9haWYranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vYWx0by1jZG5pK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2FsdG8tY2RuaWZpbHRlcitqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9hbHRvLWNvc3RtYXAranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vYWx0by1jb3N0bWFwZmlsdGVyK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2FsdG8tZGlyZWN0b3J5K2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2FsdG8tZW5kcG9pbnRjb3N0K2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2FsdG8tZW5kcG9pbnRjb3N0cGFyYW1zK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2FsdG8tZW5kcG9pbnRwcm9wK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2FsdG8tZW5kcG9pbnRwcm9wcGFyYW1zK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2FsdG8tZXJyb3IranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vYWx0by1uZXR3b3JrbWFwK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2FsdG8tbmV0d29ya21hcGZpbHRlcitqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9hbHRvLXByb3BtYXAranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vYWx0by1wcm9wbWFwcGFyYW1zK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2FsdG8tdGlwcytqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9hbHRvLXRpcHNwYXJhbXMranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vYWx0by11cGRhdGVzdHJlYW1jb250cm9sK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2FsdG8tdXBkYXRlc3RyZWFtcGFyYW1zK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2FtbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2FuZHJldy1pbnNldFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImV6XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9hcHBpbnN0YWxsZXJcIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJhcHBpbnN0YWxsZXJcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2FwcGxlZmlsZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2FwcGxpeHdhcmVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImF3XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9hcHB4XCI6IHtcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYXBweFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vYXBweGJ1bmRsZVwiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImFwcHhidW5kbGVcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2F0K2p3dFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2F0ZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2F0ZnhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9hdG9tK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYXRvbVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vYXRvbWNhdCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImF0b21jYXRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2F0b21kZWxldGVkK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYXRvbWRlbGV0ZWRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2F0b21pY21haWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9hdG9tc3ZjK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYXRvbXN2Y1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vYXRzYy1kd2QreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJkd2RcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2F0c2MtZHluYW1pYy1ldmVudC1tZXNzYWdlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vYXRzYy1oZWxkK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiaGVsZFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vYXRzYy1yZHQranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vYXRzYy1yc2F0K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicnNhdFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vYXR4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9hdXRoLXBvbGljeSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2F1dG9tYXRpb25tbC1hbWwreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJhbWxcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2F1dG9tYXRpb25tbC1hbWx4K3ppcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImFtbHhcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2JhY25ldC14ZGQremlwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vYmF0Y2gtc210cFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2Jkb2NcIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJiZG9jXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9iZWVwK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNoYXJzZXQ6IFwiVVRGLThcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9idWZyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vYzJwYVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2NhbGVuZGFyK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2NhbGVuZGFyK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieGNzXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9jYWxsLWNvbXBsZXRpb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9jYWxzLTE4NDBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9jYXB0aXZlK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2Nib3JcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9jYm9yLXNlcVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2NjY2V4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vY2NtcCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2NjeG1sK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY2N4bWxcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2NkYSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjaGFyc2V0OiBcIlVURi04XCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vY2RmeCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImNkZnhcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2NkbWktY2FwYWJpbGl0eVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImNkbWlhXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9jZG1pLWNvbnRhaW5lclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImNkbWljXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9jZG1pLWRvbWFpblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImNkbWlkXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9jZG1pLW9iamVjdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImNkbWlvXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9jZG1pLXF1ZXVlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY2RtaXFcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2NkbmlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9jZStjYm9yXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vY2VhXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vY2VhLTIwMTgreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9jZWxsbWwreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9jZndcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9jaWQtZWRob2MrY2Jvci1zZXFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9jaXR5K2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2NpdHkranNvbi1zZXFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9jbHJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9jbHVlK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vY2x1ZV9pbmZvK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vY21zXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vY25ycCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2NvYXAtZWFwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vY29hcC1ncm91cCtqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9jb2FwLXBheWxvYWRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9jb21tb25ncm91bmRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9jb25jaXNlLXByb2JsZW0tZGV0YWlscytjYm9yXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vY29uZmVyZW5jZS1pbmZvK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vY29zZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2Nvc2Uta2V5XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vY29zZS1rZXktc2V0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vY29zZS14NTA5XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vY3BsK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY3BsXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9jc3JhdHRyc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2NzdGEreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9jc3RhZGF0YSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2Nzdm0ranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vY3Utc2VlbWVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImN1XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9jd2xcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJjd2xcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2N3bCtqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9jd2wreWFtbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2N3dFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2N5YmVyY2FzaFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2RhcnRcIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2Rhc2greG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtcGRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2Rhc2gtcGF0Y2greG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtcHBcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2Rhc2hkZWx0YVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2Rhdm1vdW50K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZGF2bW91bnRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2RjYS1yZnRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9kY2RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9kZWMtZHhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9kaWFsb2ctaW5mbyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2RpY29tXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZGNtXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9kaWNvbStqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9kaWNvbSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2RpaVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2RpdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2Ruc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2Rucytqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9kbnMtbWVzc2FnZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2RvY2Jvb2sreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImRia1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZG90cytjYm9yXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZHBvcCtqd3RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9kc2twcCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2Rzc2MrZGVyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZHNzY1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZHNzYyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInhkc3NjXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9kdmNzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZWF0K2N3dFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2VhdCtqd3RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9lYXQtYnVuK2Nib3JcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9lYXQtYnVuK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2VhdC11Y3MrY2JvclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2VhdC11Y3MranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZWNtYXNjcmlwdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJlY21hXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9lZGhvYytjYm9yLXNlcVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2VkaS1jb25zZW50XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZWRpLXgxMlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2VcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2VkaWZhY3RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9lZmlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9lbG0ranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNoYXJzZXQ6IFwiVVRGLThcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9lbG0reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9lbWVyZ2VuY3ljYWxsZGF0YS5jYXAreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY2hhcnNldDogXCJVVEYtOFwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2VtZXJnZW5jeWNhbGxkYXRhLmNvbW1lbnQreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9lbWVyZ2VuY3ljYWxsZGF0YS5jb250cm9sK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZW1lcmdlbmN5Y2FsbGRhdGEuZGV2aWNlaW5mbyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2VtZXJnZW5jeWNhbGxkYXRhLmVjYWxsLm1zZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2VtZXJnZW5jeWNhbGxkYXRhLmxlZ2FjeWVzbitqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9lbWVyZ2VuY3ljYWxsZGF0YS5wcm92aWRlcmluZm8reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9lbWVyZ2VuY3ljYWxsZGF0YS5zZXJ2aWNlaW5mbyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2VtZXJnZW5jeWNhbGxkYXRhLnN1YnNjcmliZXJpbmZvK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZW1lcmdlbmN5Y2FsbGRhdGEudmVkcyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2VtbWEreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJlbW1hXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9lbW90aW9ubWwreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJlbW90aW9ubWxcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2VuY2FwcnRwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZW50aXR5LXN0YXRlbWVudCtqd3RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9lcHAreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9lcHViK3ppcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImVwdWJcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2VzaG9wXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZXhpXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZXhpXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9leHBlY3QtY3QtcmVwb3J0K2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2V4cHJlc3NcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJleHBcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2Zhc3RpbmZvc2V0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZmFzdHNvYXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9mZGZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJmZGZcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2ZkdCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImZkdFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZmhpcitqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY2hhcnNldDogXCJVVEYtOFwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2ZoaXIreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY2hhcnNldDogXCJVVEYtOFwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2ZpZG8udHJ1c3RlZC1hcHBzK2pzb25cIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2ZpdHNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9mbGV4ZmVjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZm9udC1zZm50XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZm9udC10ZHBmclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInBmclwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZm9udC13b2ZmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZnJhbWV3b3JrLWF0dHJpYnV0ZXMreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9nZW8ranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZ2VvanNvblwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZ2VvK2pzb24tc2VxXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZ2VvcGFja2FnZStzcWxpdGUzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZ2VvcG9zZStqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9nZW94YWNtbCtqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9nZW94YWNtbCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2dsdGYtYnVmZmVyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZ21sK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZ21sXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9nbmFwLWJpbmRpbmctandzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZ25hcC1iaW5kaW5nLWp3c2RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9nbmFwLWJpbmRpbmctcm90YXRpb24tandzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZ25hcC1iaW5kaW5nLXJvdGF0aW9uLWp3c2RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9ncHgreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImdweFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vZ3JpYlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2d4ZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZ3hmXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9nemlwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZ3pcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2gyMjRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9oZWxkK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vaGpzb25cIjoge1xuICAgICAgICBleHRlbnNpb25zOiBbXCJoanNvblwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vaGw3djIreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY2hhcnNldDogXCJVVEYtOFwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2h0dHBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9oeXBlcnN0dWRpb1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInN0a1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vaWJlLWtleS1yZXF1ZXN0K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vaWJlLXBrZy1yZXBseSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2liZS1wcC1kYXRhXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vaWdlc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2ltLWlzY29tcG9zaW5nK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNoYXJzZXQ6IFwiVVRGLThcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9pbmRleFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2luZGV4LmNtZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2luZGV4Lm9ialwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2luZGV4LnJlc3BvbnNlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vaW5kZXgudm5kXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vaW5rbWwreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJpbmtcIiwgXCJpbmttbFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vaW90cFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2lwZml4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiaXBmaXhcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2lwcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2lzdXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9pdHMreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJpdHNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2phdmEtYXJjaGl2ZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImphclwiLCBcIndhclwiLCBcImVhclwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vamF2YS1zZXJpYWxpemVkLW9iamVjdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic2VyXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9qYXZhLXZtXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJjbGFzc1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vamF2YXNjcmlwdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgY2hhcnNldDogXCJVVEYtOFwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImpzXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9qZjJmZWVkK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2pvc2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9qb3NlK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2pyZCtqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9qc2NhbGVuZGFyK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2pzY29udGFjdCtqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY2hhcnNldDogXCJVVEYtOFwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImpzb25cIiwgXCJtYXBcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2pzb24tcGF0Y2granNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vanNvbi1zZXFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9qc29uNVwiOiB7XG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImpzb241XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9qc29ubWwranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJqc29ubWxcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2pzb25wYXRoXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vandrK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2p3ay1zZXQranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vandrLXNldCtqd3RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9qd3RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9rcG1sLXJlcXVlc3QreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9rcG1sLXJlc3BvbnNlK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbGQranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wianNvbmxkXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9sZ3IreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJsZ3JcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2xpbmstZm9ybWF0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbGlua3NldFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2xpbmtzZXQranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbG9hZC1jb250cm9sK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbG9nb3V0K2p3dFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2xvc3QreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJsb3N0eG1sXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9sb3N0c3luYyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL2xwZit6aXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9seGZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9tYWMtYmluaGV4NDBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJocXhcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL21hYy1jb21wYWN0cHJvXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJjcHRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL21hY3dyaXRlaWlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9tYWRzK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibWFkc1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbWFuaWZlc3QranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNoYXJzZXQ6IFwiVVRGLThcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ3ZWJtYW5pZmVzdFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbWFyY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1yY1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbWFyY3htbCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1yY3hcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL21hdGhlbWF0aWNhXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibWFcIiwgXCJuYlwiLCBcIm1iXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9tYXRobWwreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtYXRobWxcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL21hdGhtbC1jb250ZW50K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbWF0aG1sLXByZXNlbnRhdGlvbit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL21ibXMtYXNzb2NpYXRlZC1wcm9jZWR1cmUtZGVzY3JpcHRpb24reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9tYm1zLWRlcmVnaXN0ZXIreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9tYm1zLWVudmVsb3BlK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbWJtcy1tc2sreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9tYm1zLW1zay1yZXNwb25zZSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL21ibXMtcHJvdGVjdGlvbi1kZXNjcmlwdGlvbit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL21ibXMtcmVjZXB0aW9uLXJlcG9ydCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL21ibXMtcmVnaXN0ZXIreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9tYm1zLXJlZ2lzdGVyLXJlc3BvbnNlK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbWJtcy1zY2hlZHVsZSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL21ibXMtdXNlci1zZXJ2aWNlLWRlc2NyaXB0aW9uK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbWJveFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1ib3hcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL21lZGlhLXBvbGljeS1kYXRhc2V0K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibXBmXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9tZWRpYV9jb250cm9sK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbWVkaWFzZXJ2ZXJjb250cm9sK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibXNjbWxcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL21lcmdlLXBhdGNoK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL21ldGFsaW5rK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtZXRhbGlua1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbWV0YWxpbms0K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibWV0YTRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL21ldHMreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtZXRzXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9tZjRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9taWtleVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL21pcGNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9taXNzaW5nLWJsb2NrcytjYm9yLXNlcVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL21tdC1hZWkreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtYWVpXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9tbXQtdXNkK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibXVzZFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbW9kcyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1vZHNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL21vc3Mta2V5c1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL21vc3Mtc2lnbmF0dXJlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbW9zc2tleS1kYXRhXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbW9zc2tleS1yZXF1ZXN0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbXAyMVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm0yMVwiLCBcIm1wMjFcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL21wNFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1wNFwiLCBcIm1wZzRcIiwgXCJtcDRzXCIsIFwibTRwXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9tcGVnNC1nZW5lcmljXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbXBlZzQtaW9kXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbXBlZzQtaW9kLXhtdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL21yYi1jb25zdW1lcit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL21yYi1wdWJsaXNoK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbXNjLWl2cit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjaGFyc2V0OiBcIlVURi04XCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbXNjLW1peGVyK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNoYXJzZXQ6IFwiVVRGLThcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9tc2l4XCI6IHtcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibXNpeFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbXNpeGJ1bmRsZVwiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1zaXhidW5kbGVcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL21zd29yZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImRvY1wiLCBcImRvdFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbXVkK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL211bHRpcGFydC1jb3JlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbXhmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibXhmXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9uLXF1YWRzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibnFcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL24tdHJpcGxlc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm50XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9uYXNkYXRhXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbmV3cy1jaGVja2dyb3Vwc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNoYXJzZXQ6IFwiVVMtQVNDSUlcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbmV3cy1ncm91cGluZm9cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjaGFyc2V0OiBcIlVTLUFTQ0lJXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL25ld3MtdHJhbnNtaXNzaW9uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vbmxzbWwreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9ub2RlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY2pzXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9uc3NcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9vYXV0aC1hdXRoei1yZXErand0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vb2JsaXZpb3VzLWRucy1tZXNzYWdlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vb2NzcC1yZXF1ZXN0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vb2NzcC1yZXNwb25zZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYmluXCIsIFwiZG1zXCIsIFwibHJmXCIsIFwibWFyXCIsIFwic29cIiwgXCJkaXN0XCIsIFwiZGlzdHpcIiwgXCJwa2dcIiwgXCJicGtcIiwgXCJkdW1wXCIsIFwiZWxjXCIsIFwiZGVwbG95XCIsIFwiZXhlXCIsIFwiZGxsXCIsIFwiZGViXCIsIFwiZG1nXCIsIFwiaXNvXCIsIFwiaW1nXCIsIFwibXNpXCIsIFwibXNwXCIsIFwibXNtXCIsIFwiYnVmZmVyXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9vZGFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJvZGFcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL29kbSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL29keFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL29lYnBzLXBhY2thZ2UreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJvcGZcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL29nZ1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm9neFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vb2h0dHAta2V5c1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL29tZG9jK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJvbWRvY1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vb25lbm90ZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wib25ldG9jXCIsIFwib25ldG9jMlwiLCBcIm9uZXRtcFwiLCBcIm9uZXBrZ1wiLCBcIm9uZVwiLCBcIm9uZWFcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL29wYy1ub2Rlc2V0K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vb3Njb3JlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vb3hwc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm94cHNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3AyMVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3AyMSt6aXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9wMnAtb3ZlcmxheSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInJlbG9cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3Bhcml0eWZlY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3Bhc3Nwb3J0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcGF0Y2gtb3BzLWVycm9yK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieGVyXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9wZGZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwZGZcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3BkeFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3BlbS1jZXJ0aWZpY2F0ZS1jaGFpblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3BncC1lbmNyeXB0ZWRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwZ3BcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3BncC1rZXlzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYXNjXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9wZ3Atc2lnbmF0dXJlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic2lnXCIsIFwiYXNjXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9waWNzLXJ1bGVzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwcmZcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3BpZGYreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY2hhcnNldDogXCJVVEYtOFwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3BpZGYtZGlmZit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjaGFyc2V0OiBcIlVURi04XCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcGtjczEwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicDEwXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9wa2NzMTJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9wa2NzNy1taW1lXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicDdtXCIsIFwicDdjXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9wa2NzNy1zaWduYXR1cmVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwN3NcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3BrY3M4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicDhcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3BrY3M4LWVuY3J5cHRlZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3BraXgtYXR0ci1jZXJ0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYWNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3BraXgtY2VydFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImNlclwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcGtpeC1jcmxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJjcmxcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3BraXgtcGtpcGF0aFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInBraXBhdGhcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3BraXhjbXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwa2lcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3Bscyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInBsc1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcG9jLXNldHRpbmdzK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNoYXJzZXQ6IFwiVVRGLThcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9wb3N0c2NyaXB0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJhaVwiLCBcImVwc1wiLCBcInBzXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9wcHNwLXRyYWNrZXIranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcHJpdmF0ZS10b2tlbi1pc3N1ZXItZGlyZWN0b3J5XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcHJpdmF0ZS10b2tlbi1yZXF1ZXN0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcHJpdmF0ZS10b2tlbi1yZXNwb25zZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3Byb2JsZW0ranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcHJvYmxlbSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3Byb3ZlbmFuY2UreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwcm92eFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcHJvdmlkZWQtY2xhaW1zK2p3dFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3Bycy5hbHZlc3RyYW5kLnRpdHJheC1zaGVldFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3Bycy5jd3dcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJjd3dcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3Bycy5jeW5cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjaGFyc2V0OiBcIjctQklUXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3Bycy5ocHViK3ppcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2VcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3Bycy5pbXBsaWVkLWRvY3VtZW50K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcHJzLmltcGxpZWQtZXhlY3V0YWJsZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3Bycy5pbXBsaWVkLW9iamVjdCtqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9wcnMuaW1wbGllZC1vYmplY3QranNvbi1zZXFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9wcnMuaW1wbGllZC1vYmplY3QreWFtbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3Bycy5pbXBsaWVkLXN0cnVjdHVyZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3Bycy5tYXlmaWxlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcHJzLm5wcmVuZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3Bycy5wbHVja2VyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcHJzLnJkZi14bWwtY3J5cHRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9wcnMudmNmYnppcDJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9wcnMueHNmK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieHNmXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9wc2tjK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicHNrY3htbFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcHZkK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3FzaWdcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9yYW1sK3lhbWxcIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInJhbWxcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3JhcHRvcmZlY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3JkYXAranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcmRmK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicmRmXCIsIFwib3dsXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9yZWdpbmZvK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicmlmXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9yZWxheC1uZy1jb21wYWN0LXN5bnRheFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInJuY1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcmVtb3RlLXByaW50aW5nXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9yZXB1dG9uK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3Jlc29sdmUtcmVzcG9uc2Urand0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcmVzb3VyY2UtbGlzdHMreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJybFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcmVzb3VyY2UtbGlzdHMtZGlmZit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInJsZFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcmZjK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcmlzY29zXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcmxtaSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3Jscy1zZXJ2aWNlcyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInJzXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9yb3V0ZS1hcGQreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJyYXBkXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9yb3V0ZS1zLXRzaWQreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzbHNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3JvdXRlLXVzZCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInJ1c2RcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3Jwa2ktY2hlY2tsaXN0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcnBraS1naG9zdGJ1c3RlcnNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJnYnJcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3Jwa2ktbWFuaWZlc3RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtZnRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3Jwa2ktcHVibGljYXRpb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9ycGtpLXJvYVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInJvYVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcnBraS1zaWduZWQtdGFsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcnBraS11cGRvd25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9yc2QreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInJzZFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vcnNzK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJyc3NcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3J0ZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicnRmXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9ydHBsb29wYmFja1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3J0eFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3NhbWxhc3NlcnRpb24reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9zYW1sbWV0YWRhdGEreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9zYXJpZitqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9zYXJpZi1leHRlcm5hbC1wcm9wZXJ0aWVzK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3NiZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3NibWwreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzYm1sXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9zY2FpcCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3NjaW0ranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vc2N2cC1jdi1yZXF1ZXN0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic2NxXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9zY3ZwLWN2LXJlc3BvbnNlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic2NzXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9zY3ZwLXZwLXJlcXVlc3RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzcHFcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3NjdnAtdnAtcmVzcG9uc2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzcHBcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3NkcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNkcFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vc2VjZXZlbnQrand0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vc2VubWwrY2JvclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3Nlbm1sK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3Nlbm1sK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic2VubWx4XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9zZW5tbC1ldGNoK2Nib3JcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9zZW5tbC1ldGNoK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3Nlbm1sLWV4aVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3NlbnNtbCtjYm9yXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vc2Vuc21sK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3NlbnNtbCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNlbnNtbHhcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3NlbnNtbC1leGlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9zZXAreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9zZXAtZXhpXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vc2Vzc2lvbi1pbmZvXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vc2V0LXBheW1lbnRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9zZXQtcGF5bWVudC1pbml0aWF0aW9uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic2V0cGF5XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9zZXQtcmVnaXN0cmF0aW9uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vc2V0LXJlZ2lzdHJhdGlvbi1pbml0aWF0aW9uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic2V0cmVnXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9zZ21sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vc2dtbC1vcGVuLWNhdGFsb2dcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9zaGYreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzaGZcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3NpZXZlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic2l2XCIsIFwic2lldmVcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3NpbXBsZS1maWx0ZXIreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9zaW1wbGUtbWVzc2FnZS1zdW1tYXJ5XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vc2ltcGxlc3ltYm9sY29udGFpbmVyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vc2lwY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3NsYXRlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vc21pbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vc21pbCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNtaVwiLCBcInNtaWxcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3NtcHRlMzM2bVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3NvYXArZmFzdGluZm9zZXRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9zb2FwK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vc3BhcnFsLXF1ZXJ5XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicnFcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3NwYXJxbC1yZXN1bHRzK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic3J4XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9zcGR4K2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3NwaXJpdHMtZXZlbnQreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9zcWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzcWxcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3NyZ3NcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJncmFtXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9zcmdzK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZ3J4bWxcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3NydSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNydVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vc3NkbCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic3NkbFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vc3Nsa2V5bG9nZmlsZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3NzbWwreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzc21sXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9zdDIxMTAtNDFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9zdGl4K2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3N0cmF0dW1cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9zd2lkK2Nib3JcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi9zd2lkK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic3dpZHRhZ1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdGFtcC1hcGV4LXVwZGF0ZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3RhbXAtYXBleC11cGRhdGUtY29uZmlybVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3RhbXAtY29tbXVuaXR5LXVwZGF0ZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3RhbXAtY29tbXVuaXR5LXVwZGF0ZS1jb25maXJtXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdGFtcC1lcnJvclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3RhbXAtc2VxdWVuY2UtYWRqdXN0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdGFtcC1zZXF1ZW5jZS1hZGp1c3QtY29uZmlybVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3RhbXAtc3RhdHVzLXF1ZXJ5XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdGFtcC1zdGF0dXMtcmVzcG9uc2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi90YW1wLXVwZGF0ZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3RhbXAtdXBkYXRlLWNvbmZpcm1cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi90YXJcIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3RheGlpK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3RkK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3RlaSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInRlaVwiLCBcInRlaWNvcnB1c1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdGV0cmFfaXNpXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdGhyYXVkK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1widGZpXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi90aW1lc3RhbXAtcXVlcnlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi90aW1lc3RhbXAtcmVwbHlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi90aW1lc3RhbXBlZC1kYXRhXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widHNkXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi90bHNycHQrZ3ppcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3Rsc3JwdCtqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi90bStqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi90bmF1dGhsaXN0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdG9jK2Nib3JcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi90b2tlbi1pbnRyb3NwZWN0aW9uK2p3dFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3RvbWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInRvbWxcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3RyaWNrbGUtaWNlLXNkcGZyYWdcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi90cmlnXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widHJpZ1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdHJ1c3QtY2hhaW4ranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdHJ1c3QtbWFyaytqd3RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi90cnVzdC1tYXJrLWRlbGVnYXRpb24rand0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdHRtbCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInR0bWxcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3R2ZS10cmlnZ2VyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdHppZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3R6aWYtbGVhcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3VianNvblwiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInVialwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdWNjcytjYm9yXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdWpjcytqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi91bHBmZWNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi91cmMtZ3Jwc2hlZXQreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi91cmMtcmVzc2hlZXQreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJyc2hlZXRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3VyYy10YXJnZXRkZXNjK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1widGRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3VyYy11aXNvY2tldGRlc2MreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92Y1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZjK2Nvc2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92Yytqd3RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92Y2FyZCtqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92Y2FyZCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZlbW1pXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdml2aWRlbmNlLnNjcmlwdGZpbGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4xMDAwbWluZHMuZGVjaXNpb24tbW9kZWwreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCIxa21cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4xb2JcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC1wcm9zZSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLXByb3NlLXBjM2EreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC1wcm9zZS1wYzNhY2greG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC1wcm9zZS1wYzNjaCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLXByb3NlLXBjOCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLXYyeC1sb2NhbC1zZXJ2aWNlLWluZm9ybWF0aW9uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAuNWduYXNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC41Z3NhMnhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC41Z3NhMngtbG9jYWwtc2VydmljZS1pbmZvcm1hdGlvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLjVnc3YyeFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLjVnc3YyeC1sb2NhbC1zZXJ2aWNlLWluZm9ybWF0aW9uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAuYWNjZXNzLXRyYW5zZmVyLWV2ZW50cyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLmJzZit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLmNycyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLmN1cnJlbnQtbG9jYXRpb24tZGlzY292ZXJ5K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAuZ21vcCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLmd0cGNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5pbnRlcndvcmtpbmctZGF0YVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLmxwcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLm1jLXNpZ25hbGxpbmctZWFyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAubWNkYXRhLWFmZmlsaWF0aW9uLWNvbW1hbmQreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5tY2RhdGEtaW5mbyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLm1jZGF0YS1tc2dzdG9yZS1jdHJsLXJlcXVlc3QreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5tY2RhdGEtcGF5bG9hZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLm1jZGF0YS1yZWdyb3VwK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAubWNkYXRhLXNlcnZpY2UtY29uZmlnK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAubWNkYXRhLXNpZ25hbGxpbmdcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5tY2RhdGEtdWUtY29uZmlnK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAubWNkYXRhLXVzZXItcHJvZmlsZSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLm1jcHR0LWFmZmlsaWF0aW9uLWNvbW1hbmQreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5tY3B0dC1mbG9vci1yZXF1ZXN0K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAubWNwdHQtaW5mbyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLm1jcHR0LWxvY2F0aW9uLWluZm8reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5tY3B0dC1tYm1zLXVzYWdlLWluZm8reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5tY3B0dC1yZWdyb3VwK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAubWNwdHQtc2VydmljZS1jb25maWcreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5tY3B0dC1zaWduZWQreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5tY3B0dC11ZS1jb25maWcreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5tY3B0dC11ZS1pbml0LWNvbmZpZyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLm1jcHR0LXVzZXItcHJvZmlsZSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLm1jdmlkZW8tYWZmaWxpYXRpb24tY29tbWFuZCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLm1jdmlkZW8taW5mbyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLm1jdmlkZW8tbG9jYXRpb24taW5mbyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLm1jdmlkZW8tbWJtcy11c2FnZS1pbmZvK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAubWN2aWRlby1yZWdyb3VwK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAubWN2aWRlby1zZXJ2aWNlLWNvbmZpZyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLm1jdmlkZW8tdHJhbnNtaXNzaW9uLXJlcXVlc3QreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5tY3ZpZGVvLXVlLWNvbmZpZyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLm1jdmlkZW8tdXNlci1wcm9maWxlK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAubWlkLWNhbGwreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5uZ2FwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAucGZjcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLnBpYy1idy1sYXJnZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInBsYlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAucGljLWJ3LXNtYWxsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicHNiXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5waWMtYnctdmFyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicHZiXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5waW5hcHAtaW5mbyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLnMxYXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5zZWFsLWdyb3VwLWRvYyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLnNlYWwtaW5mbyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLnNlYWwtbG9jYXRpb24taW5mbyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLnNlYWwtbWJtcy11c2FnZS1pbmZvK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAuc2VhbC1uZXR3b3JrLXFvcy1tYW5hZ2VtZW50LWluZm8reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5zZWFsLXVlLWNvbmZpZy1pbmZvK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAuc2VhbC11bmljYXN0LWluZm8reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcC5zZWFsLXVzZXItcHJvZmlsZS1pbmZvK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAuc21zXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAuc21zK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAuc3J2Y2MtZXh0K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAuc3J2Y2MtaW5mbyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLnN0YXRlLWFuZC1ldmVudC1pbmZvK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAudXNzZCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLnYyeFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwLnZhZS1pbmZvK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNncHAyLmJjbWNzaW5mbyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zZ3BwMi5zbXNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuM2dwcDIudGNhcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInRjYXBcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC4zbGlnaHRzc29mdHdhcmUuaW1hZ2VzY2FsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLjNtLnBvc3QtaXQtbm90ZXNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwd25cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hY2NwYWMuc2ltcGx5LmFzb1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImFzb1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFjY3BhYy5zaW1wbHkuaW1wXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiaW1wXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYWNtLmFkZHJlc3N4ZmVyK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hY20uY2hhdGJvdCtqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYWN1Y29ib2xcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJhY3VcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hY3Vjb3JwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYXRjXCIsIFwiYWN1dGNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hZG9iZS5haXItYXBwbGljYXRpb24taW5zdGFsbGVyLXBhY2thZ2UremlwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJhaXJcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hZG9iZS5mbGFzaC5tb3ZpZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hZG9iZS5mb3Jtc2NlbnRyYWwuZmNkdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImZjZHRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hZG9iZS5meHBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJmeHBcIiwgXCJmeHBsXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYWRvYmUucGFydGlhbC11cGxvYWRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYWRvYmUueGRwK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieGRwXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYWRvYmUueGZkZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieGZkZlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFldGhlci5pbXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYWZwYy5hZnBsaW5lZGF0YVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hZnBjLmFmcGxpbmVkYXRhLXBhZ2VkZWZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYWZwYy5jbW9jYS1jbXJlc291cmNlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFmcGMuZm9jYS1jaGFyc2V0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFmcGMuZm9jYS1jb2RlZGZvbnRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYWZwYy5mb2NhLWNvZGVwYWdlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFmcGMubW9kY2FcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYWZwYy5tb2RjYS1jbXRhYmxlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFmcGMubW9kY2EtZm9ybWRlZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hZnBjLm1vZGNhLW1lZGl1bW1hcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hZnBjLm1vZGNhLW9iamVjdGNvbnRhaW5lclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hZnBjLm1vZGNhLW92ZXJsYXlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYWZwYy5tb2RjYS1wYWdlc2VnbWVudFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hZ2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJhZ2VcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5haC1iYXJjb2RlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYWhlYWQuc3BhY2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJhaGVhZFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFpcnppcC5maWxlc2VjdXJlLmF6ZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImF6ZlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFpcnppcC5maWxlc2VjdXJlLmF6c1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImF6c1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFtYWRldXMranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFtYXpvbi5lYm9va1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYXp3XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYW1hem9uLm1vYmk4LWVib29rXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFtZXJpY2FuZHluYW1pY3MuYWNjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYWNjXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYW1pZ2EuYW1pXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYW1pXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYW11bmRzZW4ubWF6ZSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hbmRyb2lkLm90YVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hbmRyb2lkLnBhY2thZ2UtYXJjaGl2ZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYXBrXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYW5raVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hbnNlci13ZWItY2VydGlmaWNhdGUtaXNzdWUtaW5pdGlhdGlvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImNpaVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFuc2VyLXdlYi1mdW5kcy10cmFuc2Zlci1pbml0aWF0aW9uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJmdGlcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hbnRpeC5nYW1lLWNvbXBvbmVudFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImF0eFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFwYWNoZS5hcnJvdy5maWxlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFwYWNoZS5hcnJvdy5zdHJlYW1cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYXBhY2hlLnBhcnF1ZXRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYXBhY2hlLnRocmlmdC5iaW5hcnlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYXBhY2hlLnRocmlmdC5jb21wYWN0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFwYWNoZS50aHJpZnQuanNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hcGV4bGFuZ1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hcGkranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFwbGV4dG9yLndhcnJwK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hcG90aGVrZW5kZS5yZXNlcnZhdGlvbitqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYXBwbGUuaW5zdGFsbGVyK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibXBrZ1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFwcGxlLmtleW5vdGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJrZXlcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hcHBsZS5tcGVndXJsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibTN1OFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFwcGxlLm51bWJlcnNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJudW1iZXJzXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYXBwbGUucGFnZXNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwYWdlc1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFwcGxlLnBrcGFzc1wiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInBrcGFzc1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFyYXN0cmEuc3dpXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYXJpc3RhbmV0d29ya3Muc3dpXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic3dpXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYXJ0aXNhbitqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYXJ0c3F1YXJlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmFzdHJhZWEtc29mdHdhcmUuaW90YVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImlvdGFcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hdWRpb2dyYXBoXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYWVwXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYXV0b2Rlc2suZmJ4XCI6IHtcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZmJ4XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYXV0b3BhY2thZ2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYXZhbG9uK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5hdmlzdGFyK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmJhbHNhbWlxLmJtbWwreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJibW1sXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYmFsc2FtaXEuYm1wclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5iYW5hbmEtYWNjb3VudGluZ1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5iYmYudXNwLmVycm9yXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmJiZi51c3AubXNnXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmJiZi51c3AubXNnK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5iZWtpdHp1ci1zdGVjaCtqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYmVsaWdodHNvZnQubGh6ZCt6aXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYmVsaWdodHNvZnQubGh6bCt6aXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYmludC5tZWQtY29udGVudFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5iaW9wYXgucmRmK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmJsaW5rLWlkYi12YWx1ZS13cmFwcGVyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmJsdWVpY2UubXVsdGlwYXNzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibXBtXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuYmx1ZXRvb3RoLmVwLm9vYlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ibHVldG9vdGgubGUub29iXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmJtaVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImJtaVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmJwZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5icGYzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmJ1c2luZXNzb2JqZWN0c1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInJlcFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmJ5dS51YXBpK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5iemlwM1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jM3ZvYy5zY2hlZHVsZSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jYWItanNjcmlwdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jYW5vbi1jcGRsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmNhbm9uLWxpcHNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuY2FwYXN5c3RlbXMtcGcranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmNlbmRpby50aGlubGluYy5jbGllbnRjb25mXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmNlbnR1cnktc3lzdGVtcy50Y3Bfc3RyZWFtXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmNoZW1kcmF3K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY2R4bWxcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jaGVzcy1wZ25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuY2hpcG51dHMua2FyYW9rZS1tbWRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtbWRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jaWVkaVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jaW5kZXJlbGxhXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY2R5XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuY2lycGFjay5pc2RuLWV4dFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jaXRhdGlvbnN0eWxlcy5zdHlsZSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImNzbFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmNsYXltb3JlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY2xhXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuY2xvYW50by5ycDlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJycDlcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jbG9uay5jNGdyb3VwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYzRnXCIsIFwiYzRkXCIsIFwiYzRmXCIsIFwiYzRwXCIsIFwiYzR1XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuY2x1ZXRydXN0LmNhcnRvbW9iaWxlLWNvbmZpZ1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImMxMWFtY1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmNsdWV0cnVzdC5jYXJ0b21vYmlsZS1jb25maWctcGtnXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYzExYW16XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuY25jZi5oZWxtLmNoYXJ0LmNvbnRlbnQudjEudGFyK2d6aXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuY25jZi5oZWxtLmNoYXJ0LnByb3ZlbmFuY2UudjEucHJvdlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jbmNmLmhlbG0uY29uZmlnLnYxK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jb2ZmZWVzY3JpcHRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuY29sbGFiaW8ueG9kb2N1bWVudHMuZG9jdW1lbnRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuY29sbGFiaW8ueG9kb2N1bWVudHMuZG9jdW1lbnQtdGVtcGxhdGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuY29sbGFiaW8ueG9kb2N1bWVudHMucHJlc2VudGF0aW9uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmNvbGxhYmlvLnhvZG9jdW1lbnRzLnByZXNlbnRhdGlvbi10ZW1wbGF0ZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jb2xsYWJpby54b2RvY3VtZW50cy5zcHJlYWRzaGVldFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jb2xsYWJpby54b2RvY3VtZW50cy5zcHJlYWRzaGVldC10ZW1wbGF0ZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jb2xsZWN0aW9uK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jb2xsZWN0aW9uLmRvYytqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuY29sbGVjdGlvbi5uZXh0K2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jb21pY2Jvb2sremlwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmNvbWljYm9vay1yYXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuY29tbWVyY2UtYmF0dGVsbGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuY29tbW9uc3BhY2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJjc3BcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jb250YWN0LmNtc2dcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJjZGJjbXNnXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuY29yZW9zLmlnbml0aW9uK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jb3Ntb2NhbGxlclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImNtY1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmNyaWNrLmNsaWNrZXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJjbGt4XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuY3JpY2suY2xpY2tlci5rZXlib2FyZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImNsa2tcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jcmljay5jbGlja2VyLnBhbGV0dGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJjbGtwXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuY3JpY2suY2xpY2tlci50ZW1wbGF0ZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImNsa3RcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jcmljay5jbGlja2VyLndvcmRiYW5rXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY2xrd1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmNyaXRpY2FsdG9vbHMud2JzK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wid2JzXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuY3J5cHRpaS5waXBlK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jcnlwdG8tc2hhZGUtZmlsZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jcnlwdG9tYXRvci5lbmNyeXB0ZWRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuY3J5cHRvbWF0b3IudmF1bHRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuY3RjLXBvc21sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicG1sXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuY3RjdC53cyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jdXBzLXBkZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jdXBzLXBvc3RzY3JpcHRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuY3Vwcy1wcGRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwcGRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jdXBzLXJhc3RlclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jdXBzLXJhd1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jdXJsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmN1cmwuY2FyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJjYXJcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jdXJsLnBjdXJsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwY3VybFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmN5YW4uZGVhbi5yb290K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmN5YmFua1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5jeWNsb25lZHgranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmN5Y2xvbmVkeCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5kMmwuY291cnNlcGFja2FnZTFwMCt6aXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZDNtLWRhdGFzZXRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZDNtLXByb2JsZW1cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZGFydFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZGFydFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmRhdGEtdmlzaW9uLnJkelwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInJkelwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmRhdGFsb2dcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZGF0YXBhY2thZ2UranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmRhdGFyZXNvdXJjZStqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZGJmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZGJmXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZGNtcCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImRjbXBcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5kZWJpYW4uYmluYXJ5LXBhY2thZ2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZGVjZS5kYXRhXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widXZmXCIsIFwidXZ2ZlwiLCBcInV2ZFwiLCBcInV2dmRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5kZWNlLnR0bWwreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ1dnRcIiwgXCJ1dnZ0XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZGVjZS51bnNwZWNpZmllZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInV2eFwiLCBcInV2dnhcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5kZWNlLnppcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInV2elwiLCBcInV2dnpcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5kZW5vdm8uZmNzZWxheW91dC1saW5rXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZmVfbGF1bmNoXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZGVzbXVtZS5tb3ZpZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5kaXItYmkucGxhdGUtZGwtbm9zdWZmaXhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZG0uZGVsZWdhdGlvbit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5kbmFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJkbmFcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5kb2N1bWVudCtqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZG9sYnkubWxwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtbHBcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5kb2xieS5tb2JpbGUuMVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5kb2xieS5tb2JpbGUuMlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5kb3JlbWlyLnNjb3JlY2xvdWQtYmluYXJ5LWRvY3VtZW50XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmRwZ3JhcGhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJkcGdcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5kcmVhbWZhY3RvcnlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJkZmFjXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZHJpdmUranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmRzLWtleXBvaW50XCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJrcHh4XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZHRnLmxvY2FsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmR0Zy5sb2NhbC5mbGFzaFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5kdGcubG9jYWwuaHRtbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5kdmIuYWl0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYWl0XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZHZiLmR2YmlzbCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5kdmIuZHZialwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5kdmIuZXNnY29udGFpbmVyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmR2Yi5pcGRjZGZ0bm90aWZhY2Nlc3NcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZHZiLmlwZGNlc2dhY2Nlc3NcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZHZiLmlwZGNlc2dhY2Nlc3MyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmR2Yi5pcGRjZXNncGRkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmR2Yi5pcGRjcm9hbWluZ1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5kdmIuaXB0di5hbGZlYy1iYXNlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmR2Yi5pcHR2LmFsZmVjLWVuaGFuY2VtZW50XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmR2Yi5ub3RpZi1hZ2dyZWdhdGUtcm9vdCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5kdmIubm90aWYtY29udGFpbmVyK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmR2Yi5ub3RpZi1nZW5lcmljK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmR2Yi5ub3RpZi1pYS1tc2dsaXN0K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmR2Yi5ub3RpZi1pYS1yZWdpc3RyYXRpb24tcmVxdWVzdCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5kdmIubm90aWYtaWEtcmVnaXN0cmF0aW9uLXJlc3BvbnNlK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmR2Yi5ub3RpZi1pbml0K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmR2Yi5wZnJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZHZiLnNlcnZpY2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzdmNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5keHJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZHluYWdlb1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImdlb1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmR6clwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5lYXN5a2FyYW9rZS5jZGdkb3dubG9hZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5lY2Rpcy11cGRhdGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZWNpcC5ybHBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZWNsaXBzZS5kaXR0bytqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZWNvd2luLmNoYXJ0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibWFnXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZWNvd2luLmZpbGVyZXF1ZXN0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmVjb3dpbi5maWxldXBkYXRlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmVjb3dpbi5zZXJpZXNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZWNvd2luLnNlcmllc3JlcXVlc3RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZWNvd2luLnNlcmllc3VwZGF0ZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5lZmkuaW1nXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmVmaS5pc29cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZWxuK3ppcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2VcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5lbWNsaWVudC5hY2Nlc3NyZXF1ZXN0K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmVubGl2ZW5cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJubWxcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5lbnBoYXNlLmVudm95XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmVwcmludHMuZGF0YSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5lcHNvbi5lc2ZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJlc2ZcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5lcHNvbi5tc2ZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtc2ZcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5lcHNvbi5xdWlja2FuaW1lXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicWFtXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZXBzb24uc2FsdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNsdFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmVwc29uLnNzZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNzZlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmVyaWNzc29uLnF1aWNrY2FsbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5lcm9mc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5lc3Bhc3MtZXNwYXNzK3ppcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2VcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5lc3ppZ25vMyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImVzM1wiLCBcImV0M1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmV0c2kuYW9jK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmV0c2kuYXNpYy1lK3ppcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2VcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ldHNpLmFzaWMtcyt6aXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZXRzaS5jdWcreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZXRzaS5pcHR2Y29tbWFuZCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ldHNpLmlwdHZkaXNjb3ZlcnkreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZXRzaS5pcHR2cHJvZmlsZSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ldHNpLmlwdHZzYWQtYmMreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZXRzaS5pcHR2c2FkLWNvZCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ldHNpLmlwdHZzYWQtbnB2cit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ldHNpLmlwdHZzZXJ2aWNlK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmV0c2kuaXB0dnN5bmMreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZXRzaS5pcHR2dWVwcm9maWxlK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmV0c2kubWNpZCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ldHNpLm1oZWc1XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmV0c2kub3ZlcmxvYWQtY29udHJvbC1wb2xpY3ktZGF0YXNldCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ldHNpLnBzdG4reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZXRzaS5zY2kreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZXRzaS5zaW1zZXJ2cyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ldHNpLnRpbWVzdGFtcC10b2tlblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ldHNpLnRzbCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ldHNpLnRzbC5kZXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZXUua2FzcGFyaWFuLmNhcitqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZXVkb3JhLmRhdGFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZXZvbHYuZWNpZy5wcm9maWxlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmV2b2x2LmVjaWcuc2V0dGluZ3NcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZXZvbHYuZWNpZy50aGVtZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5leHN0cmVhbS1lbXBvd2VyK3ppcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2VcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5leHN0cmVhbS1wYWNrYWdlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmV6cGl4LWFsYnVtXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZXoyXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZXpwaXgtcGFja2FnZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImV6M1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmYtc2VjdXJlLm1vYmlsZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5mYW1pbHlzZWFyY2guZ2VkY29tK3ppcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2VcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5mYXN0Y29weS1kaXNrLWltYWdlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmZkZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZmRmXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZmRzbi5tc2VlZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1zZWVkXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZmRzbi5zZWVkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic2VlZFwiLCBcImRhdGFsZXNzXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZmRzbi5zdGF0aW9ueG1sK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNoYXJzZXQ6IFwiWE1MLUJBU0VEXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmZmc25zXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmZpY2xhYi5mbGIremlwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmZpbG1pdC56ZmNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZmludHNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZmlyZW1vbmtleXMuY2xvdWRjZWxsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmZsb2dyYXBoaXRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJncGhcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5mbHV4dGltZS5jbGlwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZnRjXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZm9udC1mb250Zm9yZ2Utc2ZkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmZyYW1lbWFrZXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJmbVwiLCBcImZyYW1lXCIsIFwibWFrZXJcIiwgXCJib29rXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZnJlZWxvZy5jb21pY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5mcm9nYW5zLmZuY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZm5jXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZnJvZ2Fucy5sdGZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImx0ZlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmZzYy53ZWJsYXVuY2hcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJmc2NcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5mdWppZmlsbS5mYi5kb2N1d29ya3NcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZnVqaWZpbG0uZmIuZG9jdXdvcmtzLmJpbmRlclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5mdWppZmlsbS5mYi5kb2N1d29ya3MuY29udGFpbmVyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmZ1amlmaWxtLmZiLmpmaSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5mdWppdHN1Lm9hc3lzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wib2FzXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZnVqaXRzdS5vYXN5czJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJvYTJcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5mdWppdHN1Lm9hc3lzM1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm9hM1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmZ1aml0c3Uub2FzeXNncFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImZnNVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmZ1aml0c3Uub2FzeXNwcnNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJiaDJcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5mdWppeGVyb3guYXJ0LWV4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmZ1aml4ZXJveC5hcnQ0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmZ1aml4ZXJveC5kZGRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJkZGRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5mdWppeGVyb3guZG9jdXdvcmtzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieGR3XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZnVqaXhlcm94LmRvY3V3b3Jrcy5iaW5kZXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ4YmRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5mdWppeGVyb3guZG9jdXdvcmtzLmNvbnRhaW5lclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5mdWppeGVyb3guaGJwbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5mdXQtbWlzbmV0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmZ1dG9pbitjYm9yXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmZ1dG9pbitqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZnV6enlzaGVldFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImZ6c1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmdhNGdoLnBhc3Nwb3J0K2p3dFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5nZW5vbWF0aXgudHV4ZWRvXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widHhkXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ2Vub3ppcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5nZW50aWNzLmdyZCtqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ2VudG9vLmNhdG1ldGFkYXRhK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmdlbnRvby5lYnVpbGRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ2VudG9vLmVjbGFzc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5nZW50b28uZ3BrZ1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5nZW50b28ubWFuaWZlc3RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ2VudG9vLnBrZ21ldGFkYXRhK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmdlbnRvby54cGFrXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmdlbytqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5nZW9jdWJlK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ2VvZ2VicmEuZmlsZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImdnYlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmdlb2dlYnJhLnBpbmJvYXJkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmdlb2dlYnJhLnNsaWRlc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImdnc1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmdlb2dlYnJhLnRvb2xcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJnZ3RcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5nZW9tZXRyeS1leHBsb3JlclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImdleFwiLCBcImdyZVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmdlb25leHRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJneHRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5nZW9wbGFuXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZzJ3XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ2Vvc3BhY2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJnM3dcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5nZXJiZXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ2xvYmFscGxhdGZvcm0uY2FyZC1jb250ZW50LW1ndFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5nbG9iYWxwbGF0Zm9ybS5jYXJkLWNvbnRlbnQtbWd0LXJlc3BvbnNlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmdteFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImdteFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmdudS50YWxlci5leGNoYW5nZStqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ251LnRhbGVyLm1lcmNoYW50K2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5nb29nbGUtYXBwcy5hdWRpb1wiOiB7fSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmdvb2dsZS1hcHBzLmRvY3VtZW50XCI6IHtcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZ2RvY1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmdvb2dsZS1hcHBzLmRyYXdpbmdcIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJnZHJhd1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmdvb2dsZS1hcHBzLmRyaXZlLXNka1wiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2VcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5nb29nbGUtYXBwcy5maWxlXCI6IHt9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ29vZ2xlLWFwcHMuZm9sZGVyXCI6IHtcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmdvb2dsZS1hcHBzLmZvcm1cIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJnZm9ybVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmdvb2dsZS1hcHBzLmZ1c2lvbnRhYmxlXCI6IHt9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ29vZ2xlLWFwcHMuamFtXCI6IHtcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZ2phbVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmdvb2dsZS1hcHBzLm1haWwtbGF5b3V0XCI6IHt9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ29vZ2xlLWFwcHMubWFwXCI6IHtcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZ21hcFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmdvb2dsZS1hcHBzLnBob3RvXCI6IHt9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ29vZ2xlLWFwcHMucHJlc2VudGF0aW9uXCI6IHtcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZ3NsaWRlc1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmdvb2dsZS1hcHBzLnNjcmlwdFwiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImdzY3JpcHRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5nb29nbGUtYXBwcy5zaG9ydGN1dFwiOiB7fSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmdvb2dsZS1hcHBzLnNpdGVcIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJnc2l0ZVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmdvb2dsZS1hcHBzLnNwcmVhZHNoZWV0XCI6IHtcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZ3NoZWV0XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ29vZ2xlLWFwcHMudW5rbm93blwiOiB7fSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmdvb2dsZS1hcHBzLnZpZGVvXCI6IHt9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ29vZ2xlLWVhcnRoLmttbCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImttbFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmdvb2dsZS1lYXJ0aC5rbXpcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJrbXpcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5nb3Yuc2suZS1mb3JtK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ292LnNrLmUtZm9ybSt6aXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ292LnNrLnhtbGRhdGFjb250YWluZXIreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ4ZGNmXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ3B4c2VlLm1hcCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ncmFmZXFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJncWZcIiwgXCJncXNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ncmlkbXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ3Jvb3ZlLWFjY291bnRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJnYWNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ncm9vdmUtaGVscFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImdoZlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmdyb292ZS1pZGVudGl0eS1tZXNzYWdlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZ2ltXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ3Jvb3ZlLWluamVjdG9yXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZ3J2XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ3Jvb3ZlLXRvb2wtbWVzc2FnZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImd0bVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmdyb292ZS10b29sLXRlbXBsYXRlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widHBsXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuZ3Jvb3ZlLXZjYXJkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widmNnXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaGFsK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5oYWwreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJoYWxcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5oYW5kaGVsZC1lbnRlcnRhaW5tZW50K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiem1tXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaGJjaVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImhiY2lcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5oYytqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaGNsLWJpcmVwb3J0c1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5oZHRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaGVyb2t1K2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5oaGUubGVzc29uLXBsYXllclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImxlc1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmhwLWhwZ2xcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJocGdsXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaHAtaHBpZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImhwaWRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ocC1ocHNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJocHNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ocC1qbHl0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiamx0XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaHAtcGNsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicGNsXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaHAtcGNseGxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwY2x4bFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmhzbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5odHRwaG9uZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5oeWRyb3N0YXRpeC5zb2YtZGF0YVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNmZC1oZHN0eFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmh5cGVyK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5oeXBlci1pdGVtK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5oeXBlcmRyaXZlK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5oem4tM2QtY3Jvc3N3b3JkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmlibS5hZnBsaW5lZGF0YVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmlibS5lbGVjdHJvbmljLW1lZGlhXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmlibS5taW5pcGF5XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibXB5XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaWJtLm1vZGNhcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYWZwXCIsIFwibGlzdGFmcFwiLCBcImxpc3QzODIwXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaWJtLnJpZ2h0cy1tYW5hZ2VtZW50XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiaXJtXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaWJtLnNlY3VyZS1jb250YWluZXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzY1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmljY3Byb2ZpbGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJpY2NcIiwgXCJpY21cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5pZWVlLjE5MDVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaWdsb2FkZXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJpZ2xcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5pbWFnZW1ldGVyLmZvbGRlcit6aXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaW1hZ2VtZXRlci5pbWFnZSt6aXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaW1tZXJ2aXNpb24taXZwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiaXZwXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaW1tZXJ2aXNpb24taXZ1XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiaXZ1XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaW1zLmltc2NjdjFwMVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5pbXMuaW1zY2N2MXAyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmltcy5pbXNjY3YxcDNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaW1zLmxpcy52Mi5yZXN1bHQranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmltcy5sdGkudjIudG9vbGNvbnN1bWVycHJvZmlsZStqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaW1zLmx0aS52Mi50b29scHJveHkranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmltcy5sdGkudjIudG9vbHByb3h5LmlkK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5pbXMubHRpLnYyLnRvb2xzZXR0aW5ncytqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaW1zLmx0aS52Mi50b29sc2V0dGluZ3Muc2ltcGxlK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5pbmZvcm1lZGNvbnRyb2wucm1zK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmluZm9ybWl4LXZpc2lvbmFyeVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmluZm90ZWNoLnByb2plY3RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaW5mb3RlY2gucHJvamVjdCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5pbm5vcGF0aC53YW1wLm5vdGlmaWNhdGlvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5pbnNvcnMuaWdtXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiaWdtXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaW50ZXJjb24uZm9ybW5ldFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInhwd1wiLCBcInhweFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmludGVyZ2VvXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiaTJnXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaW50ZXJ0cnVzdC5kaWdpYm94XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmludGVydHJ1c3Qubm5jcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5pbnR1LnFib1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInFib1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmludHUucWZ4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicWZ4XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaXBmcy5pcG5zLXJlY29yZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5pcGxkLmNhclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5pcGxkLmRhZy1jYm9yXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmlwbGQuZGFnLWpzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaXBsZC5yYXdcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaXB0Yy5nMi5jYXRhbG9naXRlbSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5pcHRjLmcyLmNvbmNlcHRpdGVtK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmlwdGMuZzIua25vd2xlZGdlaXRlbSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5pcHRjLmcyLm5ld3NpdGVtK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmlwdGMuZzIubmV3c21lc3NhZ2UreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaXB0Yy5nMi5wYWNrYWdlaXRlbSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5pcHRjLmcyLnBsYW5uaW5naXRlbSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5pcHVucGx1Z2dlZC5yY3Byb2ZpbGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJyY3Byb2ZpbGVcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5pcmVwb3NpdG9yeS5wYWNrYWdlK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiaXJwXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaXMteHByXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieHByXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuaXNhYy5mY3NcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJmY3NcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5pc28xMTc4My0xMCt6aXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuamFtXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiamFtXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuamFwYW5uZXQtZGlyZWN0b3J5LXNlcnZpY2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuamFwYW5uZXQtanBuc3RvcmUtd2FrZXVwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmphcGFubmV0LXBheW1lbnQtd2FrZXVwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmphcGFubmV0LXJlZ2lzdHJhdGlvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5qYXBhbm5ldC1yZWdpc3RyYXRpb24td2FrZXVwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmphcGFubmV0LXNldHN0b3JlLXdha2V1cFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5qYXBhbm5ldC12ZXJpZmljYXRpb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuamFwYW5uZXQtdmVyaWZpY2F0aW9uLXdha2V1cFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5qY3AuamF2YW1lLm1pZGxldC1ybXNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJybXNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5qaXNwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiamlzcFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmpvb3N0LmpvZGEtYXJjaGl2ZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImpvZGFcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5qc2suaXNkbi1uZ25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQua2Fob290elwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImt0elwiLCBcImt0clwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmtkZS5rYXJib25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJrYXJib25cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5rZGUua2NoYXJ0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY2hydFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmtkZS5rZm9ybXVsYVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImtmb1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmtkZS5raXZpb1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImZsd1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmtkZS5rb250b3VyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wia29uXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQua2RlLmtwcmVzZW50ZXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJrcHJcIiwgXCJrcHRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5rZGUua3NwcmVhZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImtzcFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmtkZS5rd29yZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImt3ZFwiLCBcImt3dFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmtkbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5rZW5hbWVhYXBwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiaHRrZVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmtleW1hbi5rbXAremlwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmtleW1hbi5rbXhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQua2lkc3BpcmF0aW9uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wia2lhXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQua2luYXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJrbmVcIiwgXCJrbnBcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5rb2FuXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic2twXCIsIFwic2tkXCIsIFwic2t0XCIsIFwic2ttXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQua29kYWstZGVzY3JpcHRvclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNzZVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmxhc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5sYXMubGFzK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5sYXMubGFzK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibGFzeG1sXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubGFzemlwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmxkZXYucHJvZHVjdGxpY2Vuc2luZ1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5sZWFwK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5saWJlcnR5LXJlcXVlc3QreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubGxhbWFncmFwaGljcy5saWZlLWJhbGFuY2UuZGVza3RvcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImxiZFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmxsYW1hZ3JhcGhpY3MubGlmZS1iYWxhbmNlLmV4Y2hhbmdlK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibGJlXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubG9naXBpcGUuY2lyY3VpdCt6aXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubG9vbVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5sb3R1cy0xLTItM1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIjEyM1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLmxvdHVzLWFwcHJvYWNoXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYXByXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubG90dXMtZnJlZWxhbmNlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicHJlXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubG90dXMtbm90ZXNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJuc2ZcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5sb3R1cy1vcmdhbml6ZXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJvcmdcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5sb3R1cy1zY3JlZW5jYW1cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzY21cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5sb3R1cy13b3JkcHJvXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibHdwXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubWFjcG9ydHMucG9ydHBrZ1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInBvcnRwa2dcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tYXBib3gtdmVjdG9yLXRpbGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtdnRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tYXJsaW4uZHJtLmFjdGlvbnRva2VuK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1hcmxpbi5kcm0uY29uZnRva2VuK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1hcmxpbi5kcm0ubGljZW5zZSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tYXJsaW4uZHJtLm1kY2ZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubWFzb24ranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1heGFyLmFyY2hpdmUuM3R6K3ppcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2VcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tYXhtaW5kLm1heG1pbmQtZGJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubWNkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibWNkXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubWRsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1kbC1tYnNkZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tZWRjYWxjZGF0YVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1jMVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1lZGlhc3RhdGlvbi5jZGtleVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImNka2V5XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubWVkaWNhbGhvbG9kZWNrLnJlY29yZHhyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1lcmlkaWFuLXNsaW5nc2hvdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tZXJtYWlkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1mZXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtd2ZcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tZm1wXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibWZtXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubWljcm8ranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1pY3JvZ3JhZnguZmxvXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZmxvXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubWljcm9ncmFmeC5pZ3hcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJpZ3hcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5taWNyb3NvZnQucG9ydGFibGUtZXhlY3V0YWJsZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5taWNyb3NvZnQud2luZG93cy50aHVtYm5haWwtY2FjaGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubWllbGUranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1pZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1pZlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1pbmlzb2Z0LWhwMzAwMC1zYXZlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1pdHN1YmlzaGkubWlzdHktZ3VhcmQudHJ1c3R3ZWJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubW9iaXVzLmRhZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImRhZlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1vYml1cy5kaXNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJkaXNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tb2JpdXMubWJrXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibWJrXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubW9iaXVzLm1xeVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1xeVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1vYml1cy5tc2xcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtc2xcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tb2JpdXMucGxjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicGxjXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubW9iaXVzLnR4ZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInR4ZlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1vZGxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubW9waHVuLmFwcGxpY2F0aW9uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibXBuXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubW9waHVuLmNlcnRpZmljYXRlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibXBjXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubW90b3JvbGEuZmxleHN1aXRlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1vdG9yb2xhLmZsZXhzdWl0ZS5hZHNpXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1vdG9yb2xhLmZsZXhzdWl0ZS5maXNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubW90b3JvbGEuZmxleHN1aXRlLmdvdGFwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1vdG9yb2xhLmZsZXhzdWl0ZS5rbXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubW90b3JvbGEuZmxleHN1aXRlLnR0Y1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tb3Rvcm9sYS5mbGV4c3VpdGUud2VtXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1vdG9yb2xhLmlwcm1cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubW96aWxsYS54dWwreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ4dWxcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tcy0zbWZkb2N1bWVudFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tcy1hcnRnYWxyeVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImNpbFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1zLWFzZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tcy1jYWItY29tcHJlc3NlZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImNhYlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1zLWNvbG9yLmljY3Byb2ZpbGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInhsc1wiLCBcInhsbVwiLCBcInhsYVwiLCBcInhsY1wiLCBcInhsdFwiLCBcInhsd1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsLmFkZGluLm1hY3JvZW5hYmxlZC4xMlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInhsYW1cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbC5zaGVldC5iaW5hcnkubWFjcm9lbmFibGVkLjEyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieGxzYlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsLnNoZWV0Lm1hY3JvZW5hYmxlZC4xMlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInhsc21cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbC50ZW1wbGF0ZS5tYWNyb2VuYWJsZWQuMTJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ4bHRtXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubXMtZm9udG9iamVjdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZW90XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubXMtaHRtbGhlbHBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJjaG1cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tcy1pbXNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJpbXNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tcy1scm1cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJscm1cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tcy1vZmZpY2UuYWN0aXZleCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tcy1vZmZpY2V0aGVtZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInRobXhcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tcy1vcGVudHlwZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubXMtb3V0bG9va1wiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1zZ1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1zLXBhY2thZ2Uub2JmdXNjYXRlZC1vcGVudHlwZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1zLXBraS5zZWNjYXRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImNhdFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1zLXBraS5zdGxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInN0bFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1zLXBsYXlyZWFkeS5pbml0aWF0b3IreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubXMtcG93ZXJwb2ludFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInBwdFwiLCBcInBwc1wiLCBcInBvdFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1zLXBvd2VycG9pbnQuYWRkaW4ubWFjcm9lbmFibGVkLjEyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicHBhbVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1zLXBvd2VycG9pbnQucHJlc2VudGF0aW9uLm1hY3JvZW5hYmxlZC4xMlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInBwdG1cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tcy1wb3dlcnBvaW50LnNsaWRlLm1hY3JvZW5hYmxlZC4xMlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNsZG1cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tcy1wb3dlcnBvaW50LnNsaWRlc2hvdy5tYWNyb2VuYWJsZWQuMTJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwcHNtXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubXMtcG93ZXJwb2ludC50ZW1wbGF0ZS5tYWNyb2VuYWJsZWQuMTJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwb3RtXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubXMtcHJpbnRkZXZpY2VjYXBhYmlsaXRpZXMreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubXMtcHJpbnRpbmcucHJpbnR0aWNrZXQreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tcy1wcmludHNjaGVtYXRpY2tldCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tcy1wcm9qZWN0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibXBwXCIsIFwibXB0XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubXMtdG5lZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tcy12aXNpby52aWV3ZXJcIjoge1xuICAgICAgICBleHRlbnNpb25zOiBbXCJ2ZHhcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tcy13aW5kb3dzLmRldmljZXBhaXJpbmdcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubXMtd2luZG93cy5ud3ByaW50aW5nLm9vYlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tcy13aW5kb3dzLnByaW50ZXJwYWlyaW5nXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1zLXdpbmRvd3Mud3NkLm9vYlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tcy13bWRybS5saWMtY2hsZy1yZXFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubXMtd21kcm0ubGljLXJlc3BcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubXMtd21kcm0ubWV0ZXItY2hsZy1yZXFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubXMtd21kcm0ubWV0ZXItcmVzcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tcy13b3JkLmRvY3VtZW50Lm1hY3JvZW5hYmxlZC4xMlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImRvY21cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tcy13b3JkLnRlbXBsYXRlLm1hY3JvZW5hYmxlZC4xMlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImRvdG1cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tcy13b3Jrc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIndwc1wiLCBcIndrc1wiLCBcIndjbVwiLCBcIndkYlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1zLXdwbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIndwbFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1zLXhwc2RvY3VtZW50XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieHBzXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubXNhLWRpc2staW1hZ2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubXNlcVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1zZXFcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tc2dwYWNrXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm1zaWduXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm11bHRpYWQuY3JlYXRvclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tdWx0aWFkLmNyZWF0b3IuY2lmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm11c2ljLW5pZmZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubXVzaWNpYW5cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtdXNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5tdXZlZS5zdHlsZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1zdHlcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5teW5mY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInRhZ2xldFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm5hY2FtYXIueWJyaWQranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm5hdG8uYmluZGluZ2RhdGFvYmplY3QrY2JvclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5uYXRvLmJpbmRpbmdkYXRhb2JqZWN0K2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5uYXRvLmJpbmRpbmdkYXRhb2JqZWN0K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYmRvXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubmF0by5vcGVueG1sZm9ybWF0cy1wYWNrYWdlLmllcGQremlwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm5jZC5jb250cm9sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm5jZC5yZWZlcmVuY2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubmVhcnN0Lmluditqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubmVidW1pbmQubGluZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5uZXJ2YW5hXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm5ldGZweFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5uZXVyb2xhbmd1YWdlLm5sdVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm5sdVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm5pbW5cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubmludGVuZG8ubml0cm8ucm9tXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm5pbnRlbmRvLnNuZXMucm9tXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm5pdGZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJudGZcIiwgXCJuaXRmXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubm9ibGVuZXQtZGlyZWN0b3J5XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibm5kXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubm9ibGVuZXQtc2VhbGVyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibm5zXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubm9ibGVuZXQtd2ViXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibm53XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubm9raWEuY2F0YWxvZ3NcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubm9raWEuY29ubWwrd2J4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubm9raWEuY29ubWwreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubm9raWEuaXB0di5jb25maWcreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubm9raWEuaXNkcy1yYWRpby1wcmVzZXRzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm5va2lhLmxhbmRtYXJrK3dieG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm5va2lhLmxhbmRtYXJrK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm5va2lhLmxhbmRtYXJrY29sbGVjdGlvbit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ub2tpYS5uLWdhZ2UuYWMreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJhY1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm5va2lhLm4tZ2FnZS5kYXRhXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibmdkYXRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ub2tpYS5uLWdhZ2Uuc3ltYmlhbi5pbnN0YWxsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJuLWdhZ2VcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ub2tpYS5uY2RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubm9raWEucGNkK3dieG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm5va2lhLnBjZCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ub2tpYS5yYWRpby1wcmVzZXRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJycHN0XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubm9raWEucmFkaW8tcHJlc2V0c1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInJwc3NcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ub3ZhZGlnbS5lZG1cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJlZG1cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ub3ZhZGlnbS5lZHhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJlZHhcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ub3ZhZGlnbS5leHRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJleHRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5udHQtbG9jYWwuY29udGVudC1zaGFyZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5udHQtbG9jYWwuZmlsZS10cmFuc2ZlclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5udHQtbG9jYWwub2d3X3JlbW90ZS1hY2Nlc3NcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubnR0LWxvY2FsLnNpcC10YV9yZW1vdGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQubnR0LWxvY2FsLnNpcC10YV90Y3Bfc3RyZWFtXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9haS53b3JrZmxvd3NcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub2FpLndvcmtmbG93cytqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub2FpLndvcmtmbG93cyt5YW1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9hc2lzLm9wZW5kb2N1bWVudC5iYXNlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9hc2lzLm9wZW5kb2N1bWVudC5jaGFydFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm9kY1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9hc2lzLm9wZW5kb2N1bWVudC5jaGFydC10ZW1wbGF0ZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm90Y1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9hc2lzLm9wZW5kb2N1bWVudC5kYXRhYmFzZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wib2RiXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub2FzaXMub3BlbmRvY3VtZW50LmZvcm11bGFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJvZGZcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vYXNpcy5vcGVuZG9jdW1lbnQuZm9ybXVsYS10ZW1wbGF0ZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm9kZnRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vYXNpcy5vcGVuZG9jdW1lbnQuZ3JhcGhpY3NcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJvZGdcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vYXNpcy5vcGVuZG9jdW1lbnQuZ3JhcGhpY3MtdGVtcGxhdGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJvdGdcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vYXNpcy5vcGVuZG9jdW1lbnQuaW1hZ2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJvZGlcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vYXNpcy5vcGVuZG9jdW1lbnQuaW1hZ2UtdGVtcGxhdGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJvdGlcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vYXNpcy5vcGVuZG9jdW1lbnQucHJlc2VudGF0aW9uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wib2RwXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub2FzaXMub3BlbmRvY3VtZW50LnByZXNlbnRhdGlvbi10ZW1wbGF0ZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm90cFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9hc2lzLm9wZW5kb2N1bWVudC5zcHJlYWRzaGVldFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm9kc1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9hc2lzLm9wZW5kb2N1bWVudC5zcHJlYWRzaGVldC10ZW1wbGF0ZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm90c1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9hc2lzLm9wZW5kb2N1bWVudC50ZXh0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wib2R0XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub2FzaXMub3BlbmRvY3VtZW50LnRleHQtbWFzdGVyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wib2RtXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub2FzaXMub3BlbmRvY3VtZW50LnRleHQtbWFzdGVyLXRlbXBsYXRlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9hc2lzLm9wZW5kb2N1bWVudC50ZXh0LXRlbXBsYXRlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wib3R0XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub2FzaXMub3BlbmRvY3VtZW50LnRleHQtd2ViXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wib3RoXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub2JuXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9jZitjYm9yXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9jaS5pbWFnZS5tYW5pZmVzdC52MStqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub2Z0bi5sMTBuK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vaXBmLmNvbnRlbnRhY2Nlc3Nkb3dubG9hZCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vaXBmLmNvbnRlbnRhY2Nlc3NzdHJlYW1pbmcreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub2lwZi5jc3BnLWhleGJpbmFyeVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vaXBmLmRhZS5zdmcreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub2lwZi5kYWUueGh0bWwreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub2lwZi5taXBwdmNvbnRyb2xtZXNzYWdlK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9pcGYucGFlLmdlbVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vaXBmLnNwZGlzY292ZXJ5K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9pcGYuc3BkbGlzdCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vaXBmLnVlcHJvZmlsZSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vaXBmLnVzZXJwcm9maWxlK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9scGMtc3VnYXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ4b1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9tYS1zY3dzLWNvbmZpZ1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vbWEtc2N3cy1odHRwLXJlcXVlc3RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub21hLXNjd3MtaHR0cC1yZXNwb25zZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vbWEuYmNhc3QuYXNzb2NpYXRlZC1wcm9jZWR1cmUtcGFyYW1ldGVyK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9tYS5iY2FzdC5kcm0tdHJpZ2dlcit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9tYS5iY2FzdC5pbWQreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub21hLmJjYXN0Lmx0a21cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub21hLmJjYXN0Lm5vdGlmaWNhdGlvbit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vbWEuYmNhc3QucHJvdmlzaW9uaW5ndHJpZ2dlclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vbWEuYmNhc3Quc2dib290XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9tYS5iY2FzdC5zZ2RkK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9tYS5iY2FzdC5zZ2R1XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9tYS5iY2FzdC5zaW1wbGUtc3ltYm9sLWNvbnRhaW5lclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vbWEuYmNhc3Quc21hcnRjYXJkLXRyaWdnZXIreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vbWEuYmNhc3Quc3Byb3YreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub21hLmJjYXN0LnN0a21cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub21hLmNhYi1hZGRyZXNzLWJvb2sreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub21hLmNhYi1mZWF0dXJlLWhhbmRsZXIreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub21hLmNhYi1wY2MreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub21hLmNhYi1zdWJzLWludml0ZSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vbWEuY2FiLXVzZXItcHJlZnMreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub21hLmRjZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vbWEuZGNkY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vbWEuZGQyK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZGQyXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub21hLmRybS5yaXNkK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9tYS5ncm91cC11c2FnZS1saXN0K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9tYS5sd20ybStjYm9yXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9tYS5sd20ybStqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub21hLmx3bTJtK3RsdlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vbWEucGFsK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9tYS5wb2MuZGV0YWlsZWQtcHJvZ3Jlc3MtcmVwb3J0K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9tYS5wb2MuZmluYWwtcmVwb3J0K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9tYS5wb2MuZ3JvdXBzK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9tYS5wb2MuaW52b2NhdGlvbi1kZXNjcmlwdG9yK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9tYS5wb2Mub3B0aW1pemVkLXByb2dyZXNzLXJlcG9ydCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vbWEucHVzaFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vbWEuc2NpZG0ubWVzc2FnZXMreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub21hLnhjYXAtZGlyZWN0b3J5K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9tYWRzLWVtYWlsK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNoYXJzZXQ6IFwiVVRGLThcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub21hZHMtZmlsZSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjaGFyc2V0OiBcIlVURi04XCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9tYWRzLWZvbGRlcit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjaGFyc2V0OiBcIlVURi04XCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9tYWxvYy1zdXBsLWluaXRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub25lcGFnZXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub25lcGFnZXJ0YW1wXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9uZXBhZ2VydGFteFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vbmVwYWdlcnRhdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vbmVwYWdlcnRhdHBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub25lcGFnZXJ0YXR4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9udmlmLm1ldGFkYXRhXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW5ibG94LmdhbWUreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJvYmd4XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbmJsb3guZ2FtZS1iaW5hcnlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbmV5ZS5vZWJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3Blbm9mZmljZW9yZy5leHRlbnNpb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm94dFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW5zdHJlZXRtYXAuZGF0YSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm9zbVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW50aW1lc3RhbXBzLm90c1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVudnBpLmRzcHgranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LmN1c3RvbS1wcm9wZXJ0aWVzK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LmN1c3RvbXhtbHByb3BlcnRpZXMreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuZHJhd2luZyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5kcmF3aW5nbWwuY2hhcnQreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuZHJhd2luZ21sLmNoYXJ0c2hhcGVzK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LmRyYXdpbmdtbC5kaWFncmFtY29sb3JzK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LmRyYXdpbmdtbC5kaWFncmFtZGF0YSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5kcmF3aW5nbWwuZGlhZ3JhbWxheW91dCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5kcmF3aW5nbWwuZGlhZ3JhbXN0eWxlK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LmV4dGVuZGVkLXByb3BlcnRpZXMreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQucHJlc2VudGF0aW9ubWwuY29tbWVudGF1dGhvcnMreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQucHJlc2VudGF0aW9ubWwuY29tbWVudHMreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQucHJlc2VudGF0aW9ubWwuaGFuZG91dG1hc3Rlcit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5wcmVzZW50YXRpb25tbC5ub3Rlc21hc3Rlcit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5wcmVzZW50YXRpb25tbC5ub3Rlc3NsaWRlK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnByZXNlbnRhdGlvbm1sLnByZXNlbnRhdGlvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInBwdHhcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5wcmVzZW50YXRpb25tbC5wcmVzZW50YXRpb24ubWFpbit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5wcmVzZW50YXRpb25tbC5wcmVzcHJvcHMreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQucHJlc2VudGF0aW9ubWwuc2xpZGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzbGR4XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQucHJlc2VudGF0aW9ubWwuc2xpZGUreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQucHJlc2VudGF0aW9ubWwuc2xpZGVsYXlvdXQreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQucHJlc2VudGF0aW9ubWwuc2xpZGVtYXN0ZXIreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQucHJlc2VudGF0aW9ubWwuc2xpZGVzaG93XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicHBzeFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnByZXNlbnRhdGlvbm1sLnNsaWRlc2hvdy5tYWluK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnByZXNlbnRhdGlvbm1sLnNsaWRldXBkYXRlaW5mbyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5wcmVzZW50YXRpb25tbC50YWJsZXN0eWxlcyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5wcmVzZW50YXRpb25tbC50YWdzK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnByZXNlbnRhdGlvbm1sLnRlbXBsYXRlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicG90eFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnByZXNlbnRhdGlvbm1sLnRlbXBsYXRlLm1haW4reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQucHJlc2VudGF0aW9ubWwudmlld3Byb3BzK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuY2FsY2NoYWluK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuY2hhcnRzaGVldCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLmNvbW1lbnRzK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuY29ubmVjdGlvbnMreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5kaWFsb2dzaGVldCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLmV4dGVybmFsbGluayt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnBpdm90Y2FjaGVkZWZpbml0aW9uK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwucGl2b3RjYWNoZXJlY29yZHMreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5waXZvdHRhYmxlK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwucXVlcnl0YWJsZSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnJldmlzaW9uaGVhZGVycyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnJldmlzaW9ubG9nK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuc2hhcmVkc3RyaW5ncyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnNoZWV0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieGxzeFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuc2hlZXQubWFpbit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnNoZWV0bWV0YWRhdGEreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5zdHlsZXMreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC50YWJsZSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnRhYmxlc2luZ2xlY2VsbHMreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC50ZW1wbGF0ZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInhsdHhcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnRlbXBsYXRlLm1haW4reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC51c2VybmFtZXMreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC52b2xhdGlsZWRlcGVuZGVuY2llcyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLndvcmtzaGVldCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC50aGVtZSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC50aGVtZW92ZXJyaWRlK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnZtbGRyYXdpbmdcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQud29yZHByb2Nlc3NpbmdtbC5jb21tZW50cyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC53b3JkcHJvY2Vzc2luZ21sLmRvY3VtZW50XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZG9jeFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LndvcmRwcm9jZXNzaW5nbWwuZG9jdW1lbnQuZ2xvc3NhcnkreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQud29yZHByb2Nlc3NpbmdtbC5kb2N1bWVudC5tYWluK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LndvcmRwcm9jZXNzaW5nbWwuZW5kbm90ZXMreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQud29yZHByb2Nlc3NpbmdtbC5mb250dGFibGUreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQud29yZHByb2Nlc3NpbmdtbC5mb290ZXIreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQud29yZHByb2Nlc3NpbmdtbC5mb290bm90ZXMreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQud29yZHByb2Nlc3NpbmdtbC5udW1iZXJpbmcreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQud29yZHByb2Nlc3NpbmdtbC5zZXR0aW5ncyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC53b3JkcHJvY2Vzc2luZ21sLnN0eWxlcyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC53b3JkcHJvY2Vzc2luZ21sLnRlbXBsYXRlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZG90eFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LndvcmRwcm9jZXNzaW5nbWwudGVtcGxhdGUubWFpbit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC53b3JkcHJvY2Vzc2luZ21sLndlYnNldHRpbmdzK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLXBhY2thZ2UuY29yZS1wcm9wZXJ0aWVzK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLXBhY2thZ2UuZGlnaXRhbC1zaWduYXR1cmUteG1sc2lnbmF0dXJlK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLXBhY2thZ2UucmVsYXRpb25zaGlwcyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vcmFjbGUucmVzb3VyY2UranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLm9yYW5nZS5pbmRhdGFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3NhLm5ldGRlcGxveVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vc2dlby5tYXBndWlkZS5wYWNrYWdlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibWdwXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3NnaS5idW5kbGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3NnaS5kcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImRwXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQub3NnaS5zdWJzeXN0ZW1cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJlc2FcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5vdHBzLmN0LWtpcCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5veGxpLmNvdW50Z3JhcGhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucGFnZXJkdXR5K2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5wYWxtXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicGRiXCIsIFwicHFhXCIsIFwib3ByY1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnBhbm9wbHlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucGFvcy54bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucGF0ZW50ZGl2ZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5wYXRpZW50ZWNvbW1zZG9jXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnBhd2FhZmlsZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInBhd1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnBjb3NcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucGcuZm9ybWF0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic3RyXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucGcub3Nhc2xpXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZWk2XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucGlhY2Nlc3MuYXBwbGljYXRpb24tbGljZW5jZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5waWNzZWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJlZmlmXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucG1pLndpZGdldFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIndnXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucG9jLmdyb3VwLWFkdmVydGlzZW1lbnQreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucG9ja2V0bGVhcm5cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwbGZcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5wb3dlcmJ1aWxkZXI2XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicGJkXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucG93ZXJidWlsZGVyNi1zXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnBvd2VyYnVpbGRlcjdcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucG93ZXJidWlsZGVyNy1zXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnBvd2VyYnVpbGRlcjc1XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnBvd2VyYnVpbGRlcjc1LXNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucHJlbWluZXRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucHJldmlld3N5c3RlbXMuYm94XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYm94XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucHJvY3JhdGUuYnJ1c2hzZXRcIjoge1xuICAgICAgICBleHRlbnNpb25zOiBbXCJicnVzaHNldFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnByb2NyZWF0ZS5icnVzaFwiOiB7XG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImJydXNoXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucHJvY3JlYXRlLmRyZWFtXCI6IHtcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZHJtXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucHJvdGV1cy5tYWdhemluZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1nelwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnBzZnNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucHQubXVuZHVzbXVuZGlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucHVibGlzaGFyZS1kZWx0YS10cmVlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicXBzXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucHZpLnB0aWQxXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicHRpZFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnB3Zy1tdWx0aXBsZXhlZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5wd2cteGh0bWwtcHJpbnQreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ4aHRtXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucXVhbGNvbW0uYnJldy1hcHAtcmVzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnF1YXJhbnRhaW5lbmV0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnF1YXJrLnF1YXJreHByZXNzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicXhkXCIsIFwicXh0XCIsIFwicXdkXCIsIFwicXd0XCIsIFwicXhsXCIsIFwicXhiXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucXVvYmplY3QtcXVveGRvY3VtZW50XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnJhZGlzeXMubW9tbCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5yYWRpc3lzLm1zbWwreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucmFkaXN5cy5tc21sLWF1ZGl0K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnJhZGlzeXMubXNtbC1hdWRpdC1jb25mK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnJhZGlzeXMubXNtbC1hdWRpdC1jb25uK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnJhZGlzeXMubXNtbC1hdWRpdC1kaWFsb2creG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucmFkaXN5cy5tc21sLWF1ZGl0LXN0cmVhbSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5yYWRpc3lzLm1zbWwtY29uZit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5yYWRpc3lzLm1zbWwtZGlhbG9nK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnJhZGlzeXMubXNtbC1kaWFsb2ctYmFzZSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5yYWRpc3lzLm1zbWwtZGlhbG9nLWZheC1kZXRlY3QreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucmFkaXN5cy5tc21sLWRpYWxvZy1mYXgtc2VuZHJlY3YreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucmFkaXN5cy5tc21sLWRpYWxvZy1ncm91cCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5yYWRpc3lzLm1zbWwtZGlhbG9nLXNwZWVjaCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5yYWRpc3lzLm1zbWwtZGlhbG9nLXRyYW5zZm9ybSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5yYWluc3Rvci5kYXRhXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnJhcGlkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnJhclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInJhclwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnJlYWx2bmMuYmVkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYmVkXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucmVjb3JkYXJlLm11c2ljeG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibXhsXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucmVjb3JkYXJlLm11c2ljeG1sK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibXVzaWN4bWxcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5yZWxwaXBlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnJlbmxlYXJuLnJscHJpbnRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucmVzaWxpZW50LmxvZ2ljXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnJlc3RmdWwranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnJpZy5jcnlwdG9ub3RlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY3J5cHRvbm90ZVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnJpbS5jb2RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImNvZFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnJuLXJlYWxtZWRpYVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicm1cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ybi1yZWFsbWVkaWEtdmJyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJybXZiXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQucm91dGU2Ni5saW5rNjYreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJsaW5rNjZcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5ycy0yNzR4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnJ1Y2t1cy5kb3dubG9hZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zM3Ntc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zYWlsaW5ndHJhY2tlci50cmFja1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInN0XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc2FyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnNibS5jaWRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc2JtLm1pZDJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc2NyaWJ1c1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zZWFsZWQuM2RmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnNlYWxlZC5jc2ZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc2VhbGVkLmRvY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zZWFsZWQuZW1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnNlYWxlZC5taHRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc2VhbGVkLm5ldFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zZWFsZWQucHB0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnNlYWxlZC50aWZmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnNlYWxlZC54bHNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc2VhbGVkbWVkaWEuc29mdHNlYWwuaHRtbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zZWFsZWRtZWRpYS5zb2Z0c2VhbC5wZGZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc2VlbWFpbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNlZVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnNlaXMranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnNlbWFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzZW1hXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc2VtZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNlbWRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zZW1mXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic2VtZlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnNoYWRlLXNhdmUtZmlsZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zaGFuYS5pbmZvcm1lZC5mb3JtZGF0YVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImlmbVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnNoYW5hLmluZm9ybWVkLmZvcm10ZW1wbGF0ZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIml0cFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnNoYW5hLmluZm9ybWVkLmludGVyY2hhbmdlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiaWlmXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc2hhbmEuaW5mb3JtZWQucGFja2FnZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImlwa1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnNob290cHJvb2YranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnNob3BraWNrK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zaHBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc2h4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnNpZ3Jvay5zZXNzaW9uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnNpbXRlY2gtbWluZG1hcHBlclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInR3ZFwiLCBcInR3ZHNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zaXJlbitqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc2tldGNob21ldHJ5XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnNtYWZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtbWZcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zbWFydC5ub3RlYm9va1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zbWFydC50ZWFjaGVyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widGVhY2hlclwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnNtaW50aW8ucG9ydGFscy5hcmNoaXZlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnNuZXNkZXYtcGFnZS10YWJsZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zb2Z0d2FyZTYwMi5maWxsZXIuZm9ybSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImZvXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc29mdHdhcmU2MDIuZmlsbGVyLmZvcm0teG1sLXppcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zb2xlbnQuc2RrbSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNka21cIiwgXCJzZGtkXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc3BvdGZpcmUuZHhwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZHhwXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc3BvdGZpcmUuc2ZzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic2ZzXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc3FsaXRlM1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zc3MtY29kXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnNzcy1kdGZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc3NzLW50ZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zdGFyZGl2aXNpb24uY2FsY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic2RjXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc3RhcmRpdmlzaW9uLmRyYXdcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNkYVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnN0YXJkaXZpc2lvbi5pbXByZXNzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzZGRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zdGFyZGl2aXNpb24ubWF0aFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic21mXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc3RhcmRpdmlzaW9uLndyaXRlclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic2R3XCIsIFwidm9yXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc3RhcmRpdmlzaW9uLndyaXRlci1nbG9iYWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNnbFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnN0ZXBtYW5pYS5wYWNrYWdlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic216aXBcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zdGVwbWFuaWEuc3RlcGNoYXJ0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic21cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zdHJlZXQtc3RyZWFtXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnN1bi53YWRsK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wid2FkbFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnN1bi54bWwuY2FsY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic3hjXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc3VuLnhtbC5jYWxjLnRlbXBsYXRlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzdGNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zdW4ueG1sLmRyYXdcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInN4ZFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnN1bi54bWwuZHJhdy50ZW1wbGF0ZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic3RkXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc3VuLnhtbC5pbXByZXNzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzeGlcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zdW4ueG1sLmltcHJlc3MudGVtcGxhdGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInN0aVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnN1bi54bWwubWF0aFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic3htXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc3VuLnhtbC53cml0ZXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInN4d1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnN1bi54bWwud3JpdGVyLmdsb2JhbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic3hnXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc3VuLnhtbC53cml0ZXIudGVtcGxhdGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInN0d1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnN1cy1jYWxlbmRhclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInN1c1wiLCBcInN1c3BcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zdmRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzdmRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zd2lmdHZpZXctaWNzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnN5YnlsLm1vbDJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc3ljbGUreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc3lmdCtqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc3ltYmlhbi5pbnN0YWxsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzaXNcIiwgXCJzaXN4XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc3luY21sK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNoYXJzZXQ6IFwiVVRGLThcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ4c21cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zeW5jbWwuZG0rd2J4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjaGFyc2V0OiBcIlVURi04XCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImJkbVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnN5bmNtbC5kbSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjaGFyc2V0OiBcIlVURi04XCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieGRtXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc3luY21sLmRtLm5vdGlmaWNhdGlvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zeW5jbWwuZG1kZGYrd2J4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuc3luY21sLmRtZGRmK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNoYXJzZXQ6IFwiVVRGLThcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJkZGZcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zeW5jbWwuZG10bmRzK3dieG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnN5bmNtbC5kbXRuZHMreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY2hhcnNldDogXCJVVEYtOFwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC5zeW5jbWwuZHMubm90aWZpY2F0aW9uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnRhYmxlc2NoZW1hK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC50YW8uaW50ZW50LW1vZHVsZS1hcmNoaXZlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widGFvXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQudGNwZHVtcC5wY2FwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicGNhcFwiLCBcImNhcFwiLCBcImRtcFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnRoaW5rLWNlbGwucHB0dGMranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnRtZC5tZWRpYWZsZXguYXBpK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnRtbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC50bW9iaWxlLWxpdmV0dlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInRtb1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnRyaS5vbmVzb3VyY2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQudHJpZC50cHRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ0cHRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC50cmlzY2FwZS5teHNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJteHNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC50cnVlYXBwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widHJhXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQudHJ1ZWRvY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC51Ymlzb2Z0LndlYnBsYXllclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC51ZmRsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widWZkXCIsIFwidWZkbFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnVpYy5vc2RtK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC51aXEudGhlbWVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ1dHpcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC51bWFqaW5cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ1bWpcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC51bml0eVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInVuaXR5d2ViXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQudW9tbCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInVvbWxcIiwgXCJ1b1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnVwbGFuZXQuYWxlcnRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQudXBsYW5ldC5hbGVydC13YnhtbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC51cGxhbmV0LmJlYXJlci1jaG9pY2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQudXBsYW5ldC5iZWFyZXItY2hvaWNlLXdieG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnVwbGFuZXQuY2FjaGVvcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC51cGxhbmV0LmNhY2hlb3Atd2J4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQudXBsYW5ldC5jaGFubmVsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnVwbGFuZXQuY2hhbm5lbC13YnhtbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC51cGxhbmV0Lmxpc3RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQudXBsYW5ldC5saXN0LXdieG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnVwbGFuZXQubGlzdGNtZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC51cGxhbmV0Lmxpc3RjbWQtd2J4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQudXBsYW5ldC5zaWduYWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQudXJpLW1hcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC52YWx2ZS5zb3VyY2UubWF0ZXJpYWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQudmN4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widmN4XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQudmQtc3R1ZHlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQudmVjdG9yd29ya3NcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQudmVsK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC52ZXJhaXNvbi50c20tcmVwb3J0K2Nib3JcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQudmVyYWlzb24udHNtLXJlcG9ydCtqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQudmVyaW1hdHJpeC52Y2FzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnZlcml0b25lLmFpb24ranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnZlcnlhbnQudGhpblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC52ZXMuZW5jcnlwdGVkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnZpZHNvZnQudmlkY29uZmVyZW5jZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC52aXNpb1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInZzZFwiLCBcInZzdFwiLCBcInZzc1wiLCBcInZzd1wiLCBcInZzZHhcIiwgXCJ2dHhcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC52aXNpb25hcnlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ2aXNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC52aXZpZGVuY2Uuc2NyaXB0ZmlsZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC52b2NhbHNoYXBlci52c3A0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnZzZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInZzZlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLndhcC5zaWNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQud2FwLnNsY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC53YXAud2J4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjaGFyc2V0OiBcIlVURi04XCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIndieG1sXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQud2FwLndtbGNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ3bWxjXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQud2FwLndtbHNjcmlwdGNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ3bWxzY1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLndhc21mbG93LndhZmxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQud2VidHVyYm9cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ3dGJcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC53ZmEuZHBwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLndmYS5wMnBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQud2ZhLndzY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC53aW5kb3dzLmRldmljZXBhaXJpbmdcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQud21jXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLndtZi5ib290c3RyYXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQud29sZnJhbS5tYXRoZW1hdGljYVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC53b2xmcmFtLm1hdGhlbWF0aWNhLnBhY2thZ2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQud29sZnJhbS5wbGF5ZXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJuYnBcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC53b3JkbGlmdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC53b3JkcGVyZmVjdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIndwZFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLndxZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIndxZFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLndycS1ocDMwMDAtbGFiZWxsZWRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQud3Quc3RmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic3RmXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQud3YuY3NwK3dieG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnd2LmNzcCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC53di5zc3AreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQueGFjbWwranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnhhcmFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ4YXJcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC54YXJpbi5jcGpcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQueGVjcmV0cy1lbmNyeXB0ZWRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQueGZkbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInhmZGxcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC54ZmRsLndlYmZvcm1cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQueG1pK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnhtcGllLmNwa2dcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQueG1waWUuZHBrZ1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC54bXBpZS5wbGFuXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnhtcGllLnBwa2dcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQueG1waWUueGxpbVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC55YW1haGEuaHYtZGljXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiaHZkXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQueWFtYWhhLmh2LXNjcmlwdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImh2c1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnlhbWFoYS5odi12b2ljZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImh2cFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnlhbWFoYS5vcGVuc2NvcmVmb3JtYXRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJvc2ZcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC55YW1haGEub3BlbnNjb3JlZm9ybWF0Lm9zZnB2Zyt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm9zZnB2Z1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnlhbWFoYS5yZW1vdGUtc2V0dXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQueWFtYWhhLnNtYWYtYXVkaW9cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzYWZcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC55YW1haGEuc21hZi1waHJhc2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzcGZcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC55YW1haGEudGhyb3VnaC1uZ25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQueWFtYWhhLnR1bm5lbC11ZHBlbmNhcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZuZC55YW93ZW1lXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnllbGxvd3JpdmVyLWN1c3RvbS1tZW51XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY21wXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92bmQuenVsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiemlyXCIsIFwiemlyelwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm5kLnp6YXp6LmRlY2sreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ6YXpcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ZvaWNleG1sK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1widnhtbFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm91Y2hlci1jbXMranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdm91Y2hlci1qd3MranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdnBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi92cCtjb3NlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdnArand0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vdnEtcnRjcHhyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vd2FzbVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wid2FzbVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vd2F0Y2hlcmluZm8reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ3aWZcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3dlYnB1c2gtb3B0aW9ucytqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi93aG9pc3BwLXF1ZXJ5XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vd2hvaXNwcC1yZXNwb25zZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3dpZGdldFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIndndFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24vd2luaGxwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJobHBcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3dpdGFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi93b3JkcGVyZmVjdDUuMVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3dzZGwreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ3c2RsXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi93c3BvbGljeSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIndzcG9saWN5XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LTd6LWNvbXByZXNzZWRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIjd6XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWFiaXdvcmRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImFid1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1hY2UtY29tcHJlc3NlZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYWNlXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWFtZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1hcHBsZS1kaXNraW1hZ2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImRtZ1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1hcmpcIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJhcmpcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtYXV0aG9yd2FyZS1iaW5cIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImFhYlwiLCBcIngzMlwiLCBcInUzMlwiLCBcInZveFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1hdXRob3J3YXJlLW1hcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYWFtXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWF1dGhvcndhcmUtc2VnXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJhYXNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtYmNwaW9cIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImJjcGlvXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWJkb2NcIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJiZG9jXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWJpdHRvcnJlbnRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInRvcnJlbnRcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtYmxlbmRlclwiOiB7XG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImJsZW5kXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWJsb3JiXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJibGJcIiwgXCJibG9yYlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1iemlwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJielwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1iemlwMlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYnoyXCIsIFwiYm96XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWNiclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY2JyXCIsIFwiY2JhXCIsIFwiY2J0XCIsIFwiY2J6XCIsIFwiY2I3XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWNkbGlua1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widmNkXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWNmcy1jb21wcmVzc2VkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJjZnNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtY2hhdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY2hhdFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1jaGVzcy1wZ25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInBnblwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1jaHJvbWUtZXh0ZW5zaW9uXCI6IHtcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY3J4XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWNvY29hXCI6IHtcbiAgICAgICAgc291cmNlOiBcIm5naW54XCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImNjb1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1jb21wcmVzc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1jb21wcmVzc2VkXCI6IHtcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicmFyXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWNvbmZlcmVuY2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm5zY1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1jcGlvXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJjcGlvXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWNzaFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY3NoXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWRlYlwiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2VcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtZGViaWFuLXBhY2thZ2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImRlYlwiLCBcInVkZWJcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtZGdjLWNvbXByZXNzZWRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImRnY1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1kaXJlY3RvclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZGlyXCIsIFwiZGNyXCIsIFwiZHhyXCIsIFwiY3N0XCIsIFwiY2N0XCIsIFwiY3h0XCIsIFwidzNkXCIsIFwiZmdkXCIsIFwic3dhXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWRvb21cIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIndhZFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1kdGJuY3greG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm5jeFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1kdGJvb2sreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImR0YlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1kdGJyZXNvdXJjZSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicmVzXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWR2aVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZHZpXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWVudm95XCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJldnlcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtZXZhXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJldmFcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtZm9udC1iZGZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImJkZlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1mb250LWRvc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1mb250LWZyYW1lbWFrZXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtZm9udC1naG9zdHNjcmlwdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZ3NmXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWZvbnQtbGliZ3J4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWZvbnQtbGludXgtcHNmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwc2ZcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtZm9udC1wY2ZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInBjZlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1mb250LXNuZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic25mXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWZvbnQtc3BlZWRvXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWZvbnQtc3Vub3MtbmV3c1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1mb250LXR5cGUxXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwZmFcIiwgXCJwZmJcIiwgXCJwZm1cIiwgXCJhZm1cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtZm9udC12Zm9udFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1mcmVlYXJjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJhcmNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtZnV0dXJlc3BsYXNoXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzcGxcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtZ2NhLWNvbXByZXNzZWRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImdjYVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1nbHVseFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widWx4XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWdudW1lcmljXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJnbnVtZXJpY1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1ncmFtcHMteG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJncmFtcHNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtZ3RhclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZ3RhclwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1nemlwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWhkZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiaGRmXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWh0dHBkLXBocFwiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicGhwXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWluc3RhbGwtaW5zdHJ1Y3Rpb25zXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJpbnN0YWxsXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWlweW5iK2pzb25cIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImlweW5iXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWlzbzk2NjAtaW1hZ2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImlzb1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1pd29yay1rZXlub3RlLXNmZmtleVwiOiB7XG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImtleVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1pd29yay1udW1iZXJzLXNmZm51bWJlcnNcIjoge1xuICAgICAgICBleHRlbnNpb25zOiBbXCJudW1iZXJzXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWl3b3JrLXBhZ2VzLXNmZnBhZ2VzXCI6IHtcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicGFnZXNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtamF2YS1hcmNoaXZlLWRpZmZcIjoge1xuICAgICAgICBzb3VyY2U6IFwibmdpbnhcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiamFyZGlmZlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1qYXZhLWpubHAtZmlsZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiam5scFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1qYXZhc2NyaXB0XCI6IHtcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LWtlZXBhc3MyXCI6IHtcbiAgICAgICAgZXh0ZW5zaW9uczogW1wia2RieFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1sYXRleFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibGF0ZXhcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtbHVhLWJ5dGVjb2RlXCI6IHtcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibHVhY1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1semgtY29tcHJlc3NlZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibHpoXCIsIFwibGhhXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LW1ha2VzZWxmXCI6IHtcbiAgICAgICAgc291cmNlOiBcIm5naW54XCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInJ1blwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1taWVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1pZVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1tb2JpcG9ja2V0LWVib29rXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwcmNcIiwgXCJtb2JpXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LW1wZWd1cmxcIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LW1zLWFwcGxpY2F0aW9uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJhcHBsaWNhdGlvblwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1tcy1zaG9ydGN1dFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibG5rXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LW1zLXdtZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wid21kXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LW1zLXdtelwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wid216XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LW1zLXhiYXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInhiYXBcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtbXNhY2Nlc3NcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1kYlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1tc2JpbmRlclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wib2JkXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LW1zY2FyZGZpbGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImNyZFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1tc2NsaXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImNscFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1tc2Rvcy1wcm9ncmFtXCI6IHtcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZXhlXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LW1zZG93bmxvYWRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImV4ZVwiLCBcImRsbFwiLCBcImNvbVwiLCBcImJhdFwiLCBcIm1zaVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1tc21lZGlhdmlld1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibXZiXCIsIFwibTEzXCIsIFwibTE0XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LW1zbWV0YWZpbGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIndtZlwiLCBcIndtelwiLCBcImVtZlwiLCBcImVtelwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1tc21vbmV5XCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtbnlcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtbXNwdWJsaXNoZXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInB1YlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1tc3NjaGVkdWxlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzY2RcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtbXN0ZXJtaW5hbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widHJtXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LW1zd3JpdGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIndyaVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1uZXRjZGZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm5jXCIsIFwiY2RmXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LW5zLXByb3h5LWF1dG9jb25maWdcIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInBhY1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1uemJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm56YlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1wZXJsXCI6IHtcbiAgICAgICAgc291cmNlOiBcIm5naW54XCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInBsXCIsIFwicG1cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtcGlsb3RcIjoge1xuICAgICAgICBzb3VyY2U6IFwibmdpbnhcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicHJjXCIsIFwicGRiXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LXBrY3MxMlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicDEyXCIsIFwicGZ4XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LXBrY3M3LWNlcnRpZmljYXRlc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicDdiXCIsIFwic3BjXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LXBrY3M3LWNlcnRyZXFyZXNwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwN3JcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtcGtpLW1lc3NhZ2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LXJhci1jb21wcmVzc2VkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJyYXJcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtcmVkaGF0LXBhY2thZ2UtbWFuYWdlclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJuZ2lueFwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJycG1cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtcmVzZWFyY2gtaW5mby1zeXN0ZW1zXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJyaXNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtc2VhXCI6IHtcbiAgICAgICAgc291cmNlOiBcIm5naW54XCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNlYVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1zaFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzaFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1zaGFyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzaGFyXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LXNob2Nrd2F2ZS1mbGFzaFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic3dmXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LXNpbHZlcmxpZ2h0LWFwcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieGFwXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LXNxbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic3FsXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LXN0dWZmaXRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNpdFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1zdHVmZml0eFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic2l0eFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1zdWJyaXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNydFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC1zdjRjcGlvXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzdjRjcGlvXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LXN2NGNyY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic3Y0Y3JjXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LXQzdm0taW1hZ2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInQzXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LXRhZHNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImdhbVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC10YXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1widGFyXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LXRjbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widGNsXCIsIFwidGtcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtdGV4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ0ZXhcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtdGV4LXRmbVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widGZtXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LXRleGluZm9cIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInRleGluZm9cIiwgXCJ0ZXhpXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LXRnaWZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm9ialwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC11c3RhclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widXN0YXJcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtdmlydHVhbGJveC1oZGRcIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImhkZFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC12aXJ0dWFsYm94LW92YVwiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wib3ZhXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LXZpcnR1YWxib3gtb3ZmXCI6IHtcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJvdmZcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtdmlydHVhbGJveC12Ym94XCI6IHtcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ2Ym94XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LXZpcnR1YWxib3gtdmJveC1leHRwYWNrXCI6IHtcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1widmJveC1leHRwYWNrXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LXZpcnR1YWxib3gtdmRpXCI6IHtcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ2ZGlcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtdmlydHVhbGJveC12aGRcIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInZoZFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC12aXJ0dWFsYm94LXZtZGtcIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInZtZGtcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtd2Fpcy1zb3VyY2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNyY1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC13ZWItYXBwLW1hbmlmZXN0K2pzb25cIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIndlYmFwcFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LXg1MDktY2EtY2VydFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImRlclwiLCBcImNydFwiLCBcInBlbVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC14NTA5LWNhLXJhLWNlcnRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94LXg1MDktbmV4dC1jYS1jZXJ0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC14ZmlnXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJmaWdcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gteGxpZmYreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInhsZlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC14cGluc3RhbGxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInhwaVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veC14elwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieHpcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtemlwLWNvbXByZXNzZWRcIjoge1xuICAgICAgICBleHRlbnNpb25zOiBbXCJ6aXBcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3gtem1hY2hpbmVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInoxXCIsIFwiejJcIiwgXCJ6M1wiLCBcIno0XCIsIFwiejVcIiwgXCJ6NlwiLCBcIno3XCIsIFwiejhcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3g0MDAtYnBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94YWNtbCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3hhbWwreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInhhbWxcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3hjYXAtYXR0K3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieGF2XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94Y2FwLWNhcHMreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ4Y2FcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3hjYXAtZGlmZit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInhkZlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veGNhcC1lbCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInhlbFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veGNhcC1lcnJvcit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3hjYXAtbnMreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ4bnNcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3hjb24tY29uZmVyZW5jZS1pbmZvK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veGNvbi1jb25mZXJlbmNlLWluZm8tZGlmZit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3hlbmMreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ4ZW5jXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94ZmRmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieGZkZlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veGh0bWwreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ4aHRtbFwiLCBcInhodFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veGh0bWwtdm9pY2UreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3hsaWZmK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieGxmXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInhtbFwiLCBcInhzbFwiLCBcInhzZFwiLCBcInJuZ1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veG1sLWR0ZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZHRkXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94bWwtZXh0ZXJuYWwtcGFyc2VkLWVudGl0eVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3htbC1wYXRjaCt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3htcHAreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94b3AreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ4b3BcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3hwcm9jK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ4cGxcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3hzbHQreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ4c2xcIiwgXCJ4c2x0XCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94c3BmK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ4c3BmXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi94dit4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm14bWxcIiwgXCJ4aHZtbFwiLCBcInh2bWxcIiwgXCJ4dm1cIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3lhbWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi95YW5nXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieWFuZ1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veWFuZy1kYXRhK2Nib3JcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi95YW5nLWRhdGEranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veWFuZy1kYXRhK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veWFuZy1wYXRjaCtqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi95YW5nLXBhdGNoK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veWFuZy1zaWQranNvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiYXBwbGljYXRpb24veWluK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieWluXCJdXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi96aXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ6aXBcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3ppcCtkb3Rsb3R0aWVcIjoge1xuICAgICAgICBleHRlbnNpb25zOiBbXCJsb3R0aWVcIl1cbiAgICAgIH0sXG4gICAgICBcImFwcGxpY2F0aW9uL3psaWJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhcHBsaWNhdGlvbi96c3RkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vMWQtaW50ZXJsZWF2ZWQtcGFyaXR5ZmVjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vMzJrYWRwY21cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby8zZ3BwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiM2dwcFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vM2dwcDJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9hYWNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJhZHRzXCIsIFwiYWFjXCJdXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9hYzNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9hZHBjbVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYWRwXCJdXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9hbXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJhbXJcIl1cbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2Ftci13YlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2Ftci13YitcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9hcHR4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vYXNjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vYXRyYWMtYWR2YW5jZWQtbG9zc2xlc3NcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9hdHJhYy14XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vYXRyYWMzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vYmFzaWNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJhdVwiLCBcInNuZFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vYnYxNlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2J2MzJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9jbGVhcm1vZGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9jblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2RhdDEyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vZGxzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vZHNyLWVzMjAxMTA4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vZHNyLWVzMjAyMDUwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vZHNyLWVzMjAyMjExXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vZHNyLWVzMjAyMjEyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vZHZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9kdmk0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vZWFjM1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2VuY2FwcnRwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vZXZyY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2V2cmMtcWNwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vZXZyYzBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9ldnJjMVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2V2cmNiXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vZXZyY2IwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vZXZyY2IxXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vZXZyY253XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vZXZyY253MFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2V2cmNudzFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9ldnJjd2JcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9ldnJjd2IwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vZXZyY3diMVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2V2c1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2ZsYWNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9mbGV4ZmVjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vZndkcmVkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vZzcxMS0wXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vZzcxOVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2c3MjJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9nNzIyMVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2c3MjNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9nNzI2LTE2XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vZzcyNi0yNFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2c3MjYtMzJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9nNzI2LTQwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vZzcyOFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2c3MjlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9nNzI5MVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2c3MjlkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vZzcyOWVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9nc21cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9nc20tZWZyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vZ3NtLWhyLTA4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vaWxiY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2lwLW1yX3YyLjVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9pc2FjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9sMTZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9sMjBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9sMjRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9sOFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL2xwY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL21hdHJvc2thXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vbWVscFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL21lbHAxMjAwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vbWVscDI0MDBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9tZWxwNjAwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vbWhhc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL21pZGlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1pZFwiLCBcIm1pZGlcIiwgXCJrYXJcIiwgXCJybWlcIl1cbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL21pZGktY2xpcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL21vYmlsZS14bWZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJteG1mXCJdXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9tcDNcIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtcDNcIl1cbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL21wNFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm00YVwiLCBcIm1wNGFcIiwgXCJtNGJcIl1cbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL21wNGEtbGF0bVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL21wYVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL21wYS1yb2J1c3RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9tcGVnXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibXBnYVwiLCBcIm1wMlwiLCBcIm1wMmFcIiwgXCJtcDNcIiwgXCJtMmFcIiwgXCJtM2FcIl1cbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL21wZWc0LWdlbmVyaWNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9tdXNlcGFja1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vb2dnXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wib2dhXCIsIFwib2dnXCIsIFwic3B4XCIsIFwib3B1c1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vb3B1c1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3Bhcml0eWZlY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3BjbWFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9wY21hLXdiXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vcGNtdVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3BjbXUtd2JcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9wcnMuc2lkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vcWNlbHBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9yYXB0b3JmZWNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9yZWRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9ydHAtZW5jLWFlc2NtMTI4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vcnRwLW1pZGlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9ydHBsb29wYmFja1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3J0eFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3MzbVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiczNtXCJdXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9zY2lwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vc2lsa1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic2lsXCJdXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9zbXZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9zbXYtcWNwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vc212MFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3NvZmFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby9zcC1taWRpXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vc3BlZXhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby90MTQwY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3QzOFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3RlbGVwaG9uZS1ldmVudFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3RldHJhX2FjZWxwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vdGV0cmFfYWNlbHBfYmJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby90b25lXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vdHN2Y2lzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vdWVtY2xpcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3VscGZlY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3VzYWNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby92ZHZpXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vdm1yLXdiXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vdm5kLjNncHAuaXVmcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3ZuZC40c2JcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby92bmQuYXVkaW9rb3pcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby92bmQuY2VscFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3ZuZC5jaXNjby5uc2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby92bmQuY21sZXMucmFkaW8tZXZlbnRzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vdm5kLmNucy5hbnAxXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vdm5kLmNucy5pbmYxXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vdm5kLmRlY2UuYXVkaW9cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ1dmFcIiwgXCJ1dnZhXCJdXG4gICAgICB9LFxuICAgICAgXCJhdWRpby92bmQuZGlnaXRhbC13aW5kc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImVvbFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vdm5kLmRsbmEuYWR0c1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3ZuZC5kb2xieS5oZWFhYy4xXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vdm5kLmRvbGJ5LmhlYWFjLjJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby92bmQuZG9sYnkubWxwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vdm5kLmRvbGJ5Lm1wc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3ZuZC5kb2xieS5wbDJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby92bmQuZG9sYnkucGwyeFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3ZuZC5kb2xieS5wbDJ6XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vdm5kLmRvbGJ5LnB1bHNlLjFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby92bmQuZHJhXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZHJhXCJdXG4gICAgICB9LFxuICAgICAgXCJhdWRpby92bmQuZHRzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZHRzXCJdXG4gICAgICB9LFxuICAgICAgXCJhdWRpby92bmQuZHRzLmhkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZHRzaGRcIl1cbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3ZuZC5kdHMudWhkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vdm5kLmR2Yi5maWxlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vdm5kLmV2ZXJhZC5wbGpcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby92bmQuaG5zLmF1ZGlvXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vdm5kLmx1Y2VudC52b2ljZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImx2cFwiXVxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vdm5kLm1zLXBsYXlyZWFkeS5tZWRpYS5weWFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJweWFcIl1cbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3ZuZC5ub2tpYS5tb2JpbGUteG1mXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vdm5kLm5vcnRlbC52YmtcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby92bmQubnVlcmEuZWNlbHA0ODAwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZWNlbHA0ODAwXCJdXG4gICAgICB9LFxuICAgICAgXCJhdWRpby92bmQubnVlcmEuZWNlbHA3NDcwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZWNlbHA3NDcwXCJdXG4gICAgICB9LFxuICAgICAgXCJhdWRpby92bmQubnVlcmEuZWNlbHA5NjAwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZWNlbHA5NjAwXCJdXG4gICAgICB9LFxuICAgICAgXCJhdWRpby92bmQub2N0ZWwuc2JjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vdm5kLnByZXNvbnVzLm11bHRpdHJhY2tcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJhdWRpby92bmQucWNlbHBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3ZuZC5yaGV0b3JleC4zMmthZHBjbVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3ZuZC5yaXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJyaXBcIl1cbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3ZuZC5ybi1yZWFsYXVkaW9cIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlXG4gICAgICB9LFxuICAgICAgXCJhdWRpby92bmQuc2VhbGVkbWVkaWEuc29mdHNlYWwubXBlZ1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3ZuZC52bXguY3ZzZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3ZuZC53YXZlXCI6IHtcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZVxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vdm9yYmlzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZVxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vdm9yYmlzLWNvbmZpZ1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3dhdlwiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIndhdlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vd2F2ZVwiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIndhdlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8vd2VibVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wid2ViYVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8veC1hYWNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImFhY1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8veC1haWZmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJhaWZcIiwgXCJhaWZmXCIsIFwiYWlmY1wiXVxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8veC1jYWZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImNhZlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8veC1mbGFjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJmbGFjXCJdXG4gICAgICB9LFxuICAgICAgXCJhdWRpby94LW00YVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJuZ2lueFwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtNGFcIl1cbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3gtbWF0cm9za2FcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1rYVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8veC1tcGVndXJsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtM3VcIl1cbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3gtbXMtd2F4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ3YXhcIl1cbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3gtbXMtd21hXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ3bWFcIl1cbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3gtcG4tcmVhbGF1ZGlvXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJyYW1cIiwgXCJyYVwiXVxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8veC1wbi1yZWFsYXVkaW8tcGx1Z2luXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJybXBcIl1cbiAgICAgIH0sXG4gICAgICBcImF1ZGlvL3gtcmVhbGF1ZGlvXCI6IHtcbiAgICAgICAgc291cmNlOiBcIm5naW54XCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInJhXCJdXG4gICAgICB9LFxuICAgICAgXCJhdWRpby94LXR0YVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIlxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8veC13YXZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIndhdlwiXVxuICAgICAgfSxcbiAgICAgIFwiYXVkaW8veG1cIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInhtXCJdXG4gICAgICB9LFxuICAgICAgXCJjaGVtaWNhbC94LWNkeFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY2R4XCJdXG4gICAgICB9LFxuICAgICAgXCJjaGVtaWNhbC94LWNpZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY2lmXCJdXG4gICAgICB9LFxuICAgICAgXCJjaGVtaWNhbC94LWNtZGZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImNtZGZcIl1cbiAgICAgIH0sXG4gICAgICBcImNoZW1pY2FsL3gtY21sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJjbWxcIl1cbiAgICAgIH0sXG4gICAgICBcImNoZW1pY2FsL3gtY3NtbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY3NtbFwiXVxuICAgICAgfSxcbiAgICAgIFwiY2hlbWljYWwveC1wZGJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCJcbiAgICAgIH0sXG4gICAgICBcImNoZW1pY2FsL3gteHl6XCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ4eXpcIl1cbiAgICAgIH0sXG4gICAgICBcImZvbnQvY29sbGVjdGlvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInR0Y1wiXVxuICAgICAgfSxcbiAgICAgIFwiZm9udC9vdGZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm90ZlwiXVxuICAgICAgfSxcbiAgICAgIFwiZm9udC9zZm50XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiZm9udC90dGZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInR0ZlwiXVxuICAgICAgfSxcbiAgICAgIFwiZm9udC93b2ZmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wid29mZlwiXVxuICAgICAgfSxcbiAgICAgIFwiZm9udC93b2ZmMlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIndvZmYyXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS9hY2VzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZXhyXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS9hcG5nXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYXBuZ1wiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UvYXZjaVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImF2Y2lcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL2F2Y3NcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJhdmNzXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS9hdmlmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYXZpZlwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UvYm1wXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJibXBcIiwgXCJkaWJcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL2NnbVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImNnbVwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UvZGljb20tcmxlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZHJsZVwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UvZHB4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZHB4XCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS9lbWZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJlbWZcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL2ZpdHNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJmaXRzXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS9nM2ZheFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImczXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS9naWZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJnaWZcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL2hlaWNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJoZWljXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS9oZWljLXNlcXVlbmNlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiaGVpY3NcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL2hlaWZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJoZWlmXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS9oZWlmLXNlcXVlbmNlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiaGVpZnNcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL2hlajJrXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiaGVqMlwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UvaWVmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiaWVmXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS9qMmNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS9qYWlpXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiamFpaVwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UvamFpc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImphaXNcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL2psc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImpsc1wiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UvanAyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wianAyXCIsIFwianBnMlwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UvanBlZ1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImpwZ1wiLCBcImpwZWdcIiwgXCJqcGVcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL2pwaFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImpwaFwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UvanBoY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImpoY1wiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UvanBtXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wianBtXCIsIFwianBnbVwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UvanB4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wianB4XCIsIFwianBmXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS9qeGxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJqeGxcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL2p4clwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImp4clwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UvanhyYVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImp4cmFcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL2p4cnNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJqeHJzXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS9qeHNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJqeHNcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL2p4c2NcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJqeHNjXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS9qeHNpXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wianhzaVwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2Uvanhzc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImp4c3NcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL2t0eFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImt0eFwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2Uva3R4MlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImt0eDJcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL25hcGxwc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImltYWdlL3BqcGVnXCI6IHtcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiamZpZlwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UvcG5nXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicG5nXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS9wcnMuYnRpZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImJ0aWZcIiwgXCJidGZcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL3Bycy5wdGlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwdGlcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL3B3Zy1yYXN0ZXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS9zZ2lcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNnaVwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2Uvc3ZnK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic3ZnXCIsIFwic3ZnelwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UvdDM4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widDM4XCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS90aWZmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1widGlmXCIsIFwidGlmZlwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UvdGlmZi1meFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInRmeFwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2Uvdm5kLmFkb2JlLnBob3Rvc2hvcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicHNkXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS92bmQuYWlyemlwLmFjY2VsZXJhdG9yLmF6dlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImF6dlwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2Uvdm5kLmNsaXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS92bmQuY25zLmluZjJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS92bmQuZGVjZS5ncmFwaGljXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widXZpXCIsIFwidXZ2aVwiLCBcInV2Z1wiLCBcInV2dmdcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL3ZuZC5kanZ1XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZGp2dVwiLCBcImRqdlwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2Uvdm5kLmR2Yi5zdWJ0aXRsZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInN1YlwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2Uvdm5kLmR3Z1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImR3Z1wiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2Uvdm5kLmR4ZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImR4ZlwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2Uvdm5kLmZhc3RiaWRzaGVldFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImZic1wiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2Uvdm5kLmZweFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImZweFwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2Uvdm5kLmZzdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImZzdFwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2Uvdm5kLmZ1aml4ZXJveC5lZG1pY3MtbW1yXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibW1yXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS92bmQuZnVqaXhlcm94LmVkbWljcy1ybGNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJybGNcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL3ZuZC5nbG9iYWxncmFwaGljcy5wZ2JcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS92bmQubWljcm9zb2Z0Lmljb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImljb1wiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2Uvdm5kLm1peFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImltYWdlL3ZuZC5tb3ppbGxhLmFwbmdcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS92bmQubXMtZGRzXCI6IHtcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJkZHNcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL3ZuZC5tcy1tb2RpXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibWRpXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS92bmQubXMtcGhvdG9cIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIndkcFwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2Uvdm5kLm5ldC1mcHhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJucHhcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL3ZuZC5wY28uYjE2XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYjE2XCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS92bmQucmFkaWFuY2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS92bmQuc2VhbGVkLnBuZ1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImltYWdlL3ZuZC5zZWFsZWRtZWRpYS5zb2Z0c2VhbC5naWZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS92bmQuc2VhbGVkbWVkaWEuc29mdHNlYWwuanBnXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2Uvdm5kLnN2ZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcImltYWdlL3ZuZC50ZW5jZW50LnRhcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInRhcFwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2Uvdm5kLnZhbHZlLnNvdXJjZS50ZXh0dXJlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widnRmXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS92bmQud2FwLndibXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ3Ym1wXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS92bmQueGlmZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInhpZlwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2Uvdm5kLnpicnVzaC5wY3hcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwY3hcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL3dlYnBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ3ZWJwXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS93bWZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ3bWZcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL3gtM2RzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCIzZHNcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL3gtYWRvYmUtZG5nXCI6IHtcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZG5nXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS94LWNtdS1yYXN0ZXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInJhc1wiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UveC1jbXhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImNteFwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UveC1lbWZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS94LWZyZWVoYW5kXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJmaFwiLCBcImZoY1wiLCBcImZoNFwiLCBcImZoNVwiLCBcImZoN1wiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UveC1pY29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImljb1wiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UveC1qbmdcIjoge1xuICAgICAgICBzb3VyY2U6IFwibmdpbnhcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiam5nXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS94LW1yc2lkLWltYWdlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzaWRcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL3gtbXMtYm1wXCI6IHtcbiAgICAgICAgc291cmNlOiBcIm5naW54XCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiYm1wXCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS94LXBjeFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicGN4XCJdXG4gICAgICB9LFxuICAgICAgXCJpbWFnZS94LXBpY3RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInBpY1wiLCBcInBjdFwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UveC1wb3J0YWJsZS1hbnltYXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInBubVwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UveC1wb3J0YWJsZS1iaXRtYXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInBibVwiXVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UveC1wb3J0YWJsZS1ncmF5bWFwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwZ21cIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL3gtcG9ydGFibGUtcGl4bWFwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwcG1cIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL3gtcmdiXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJyZ2JcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL3gtdGdhXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ0Z2FcIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL3gtd21mXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UveC14Yml0bWFwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ4Ym1cIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL3gteGNmXCI6IHtcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZVxuICAgICAgfSxcbiAgICAgIFwiaW1hZ2UveC14cGl4bWFwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ4cG1cIl1cbiAgICAgIH0sXG4gICAgICBcImltYWdlL3gteHdpbmRvd2R1bXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInh3ZFwiXVxuICAgICAgfSxcbiAgICAgIFwibWVzc2FnZS9iaHR0cFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcIm1lc3NhZ2UvY3BpbVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcIm1lc3NhZ2UvZGVsaXZlcnktc3RhdHVzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwibWVzc2FnZS9kaXNwb3NpdGlvbi1ub3RpZmljYXRpb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXG4gICAgICAgICAgXCJkaXNwb3NpdGlvbi1ub3RpZmljYXRpb25cIlxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAgXCJtZXNzYWdlL2V4dGVybmFsLWJvZHlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJtZXNzYWdlL2ZlZWRiYWNrLXJlcG9ydFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcIm1lc3NhZ2UvZ2xvYmFsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widThtc2dcIl1cbiAgICAgIH0sXG4gICAgICBcIm1lc3NhZ2UvZ2xvYmFsLWRlbGl2ZXJ5LXN0YXR1c1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInU4ZHNuXCJdXG4gICAgICB9LFxuICAgICAgXCJtZXNzYWdlL2dsb2JhbC1kaXNwb3NpdGlvbi1ub3RpZmljYXRpb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ1OG1kblwiXVxuICAgICAgfSxcbiAgICAgIFwibWVzc2FnZS9nbG9iYWwtaGVhZGVyc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInU4aGRyXCJdXG4gICAgICB9LFxuICAgICAgXCJtZXNzYWdlL2h0dHBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlXG4gICAgICB9LFxuICAgICAgXCJtZXNzYWdlL2ltZG4reG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJtZXNzYWdlL21sc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcIm1lc3NhZ2UvbmV3c1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIlxuICAgICAgfSxcbiAgICAgIFwibWVzc2FnZS9vaHR0cC1yZXFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJtZXNzYWdlL29odHRwLXJlc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcIm1lc3NhZ2UvcGFydGlhbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2VcbiAgICAgIH0sXG4gICAgICBcIm1lc3NhZ2UvcmZjODIyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJlbWxcIiwgXCJtaW1lXCIsIFwibWh0XCIsIFwibWh0bWxcIl1cbiAgICAgIH0sXG4gICAgICBcIm1lc3NhZ2Uvcy1odHRwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiXG4gICAgICB9LFxuICAgICAgXCJtZXNzYWdlL3NpcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcIm1lc3NhZ2Uvc2lwZnJhZ1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcIm1lc3NhZ2UvdHJhY2tpbmctc3RhdHVzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwibWVzc2FnZS92bmQuc2kuc2ltcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIlxuICAgICAgfSxcbiAgICAgIFwibWVzc2FnZS92bmQud2ZhLndzY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIndzY1wiXVxuICAgICAgfSxcbiAgICAgIFwibW9kZWwvM21mXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiM21mXCJdXG4gICAgICB9LFxuICAgICAgXCJtb2RlbC9lNTdcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJtb2RlbC9nbHRmK2pzb25cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImdsdGZcIl1cbiAgICAgIH0sXG4gICAgICBcIm1vZGVsL2dsdGYtYmluYXJ5XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJnbGJcIl1cbiAgICAgIH0sXG4gICAgICBcIm1vZGVsL2lnZXNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJpZ3NcIiwgXCJpZ2VzXCJdXG4gICAgICB9LFxuICAgICAgXCJtb2RlbC9qdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImp0XCJdXG4gICAgICB9LFxuICAgICAgXCJtb2RlbC9tZXNoXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibXNoXCIsIFwibWVzaFwiLCBcInNpbG9cIl1cbiAgICAgIH0sXG4gICAgICBcIm1vZGVsL210bFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm10bFwiXVxuICAgICAgfSxcbiAgICAgIFwibW9kZWwvb2JqXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wib2JqXCJdXG4gICAgICB9LFxuICAgICAgXCJtb2RlbC9wcmNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJwcmNcIl1cbiAgICAgIH0sXG4gICAgICBcIm1vZGVsL3N0ZXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzdGVwXCIsIFwic3RwXCIsIFwic3RwbmNcIiwgXCJwMjFcIiwgXCIyMTBcIl1cbiAgICAgIH0sXG4gICAgICBcIm1vZGVsL3N0ZXAreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzdHB4XCJdXG4gICAgICB9LFxuICAgICAgXCJtb2RlbC9zdGVwK3ppcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInN0cHpcIl1cbiAgICAgIH0sXG4gICAgICBcIm1vZGVsL3N0ZXAteG1sK3ppcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInN0cHh6XCJdXG4gICAgICB9LFxuICAgICAgXCJtb2RlbC9zdGxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzdGxcIl1cbiAgICAgIH0sXG4gICAgICBcIm1vZGVsL3UzZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInUzZFwiXVxuICAgICAgfSxcbiAgICAgIFwibW9kZWwvdm5kLmJhcnlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJiYXJ5XCJdXG4gICAgICB9LFxuICAgICAgXCJtb2RlbC92bmQuY2xkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiY2xkXCJdXG4gICAgICB9LFxuICAgICAgXCJtb2RlbC92bmQuY29sbGFkYSt4bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImRhZVwiXVxuICAgICAgfSxcbiAgICAgIFwibW9kZWwvdm5kLmR3ZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImR3ZlwiXVxuICAgICAgfSxcbiAgICAgIFwibW9kZWwvdm5kLmZsYXRsYW5kLjNkbWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJtb2RlbC92bmQuZ2RsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZ2RsXCJdXG4gICAgICB9LFxuICAgICAgXCJtb2RlbC92bmQuZ3MtZ2RsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiXG4gICAgICB9LFxuICAgICAgXCJtb2RlbC92bmQuZ3MuZ2RsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwibW9kZWwvdm5kLmd0d1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImd0d1wiXVxuICAgICAgfSxcbiAgICAgIFwibW9kZWwvdm5kLm1vbWwreG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJtb2RlbC92bmQubXRzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibXRzXCJdXG4gICAgICB9LFxuICAgICAgXCJtb2RlbC92bmQub3BlbmdleFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm9nZXhcIl1cbiAgICAgIH0sXG4gICAgICBcIm1vZGVsL3ZuZC5wYXJhc29saWQudHJhbnNtaXQuYmluYXJ5XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieF9iXCJdXG4gICAgICB9LFxuICAgICAgXCJtb2RlbC92bmQucGFyYXNvbGlkLnRyYW5zbWl0LnRleHRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ4X3RcIl1cbiAgICAgIH0sXG4gICAgICBcIm1vZGVsL3ZuZC5weXRoYS5weW94XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicHlvXCIsIFwicHlveFwiXVxuICAgICAgfSxcbiAgICAgIFwibW9kZWwvdm5kLnJvc2V0dGUuYW5ub3RhdGVkLWRhdGEtbW9kZWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJtb2RlbC92bmQuc2FwLnZkc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInZkc1wiXVxuICAgICAgfSxcbiAgICAgIFwibW9kZWwvdm5kLnVzZGFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ1c2RhXCJdXG4gICAgICB9LFxuICAgICAgXCJtb2RlbC92bmQudXNkeit6aXBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ1c2R6XCJdXG4gICAgICB9LFxuICAgICAgXCJtb2RlbC92bmQudmFsdmUuc291cmNlLmNvbXBpbGVkLW1hcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImJzcFwiXVxuICAgICAgfSxcbiAgICAgIFwibW9kZWwvdm5kLnZ0dVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInZ0dVwiXVxuICAgICAgfSxcbiAgICAgIFwibW9kZWwvdnJtbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIndybFwiLCBcInZybWxcIl1cbiAgICAgIH0sXG4gICAgICBcIm1vZGVsL3gzZCtiaW5hcnlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIngzZGJcIiwgXCJ4M2RielwiXVxuICAgICAgfSxcbiAgICAgIFwibW9kZWwveDNkK2Zhc3RpbmZvc2V0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieDNkYlwiXVxuICAgICAgfSxcbiAgICAgIFwibW9kZWwveDNkK3ZybWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIngzZHZcIiwgXCJ4M2R2elwiXVxuICAgICAgfSxcbiAgICAgIFwibW9kZWwveDNkK3htbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieDNkXCIsIFwieDNkelwiXVxuICAgICAgfSxcbiAgICAgIFwibW9kZWwveDNkLXZybWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ4M2R2XCJdXG4gICAgICB9LFxuICAgICAgXCJtdWx0aXBhcnQvYWx0ZXJuYXRpdmVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlXG4gICAgICB9LFxuICAgICAgXCJtdWx0aXBhcnQvYXBwbGVkb3VibGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJtdWx0aXBhcnQvYnl0ZXJhbmdlc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcIm11bHRpcGFydC9kaWdlc3RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJtdWx0aXBhcnQvZW5jcnlwdGVkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZVxuICAgICAgfSxcbiAgICAgIFwibXVsdGlwYXJ0L2Zvcm0tZGF0YVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2VcbiAgICAgIH0sXG4gICAgICBcIm11bHRpcGFydC9oZWFkZXItc2V0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwibXVsdGlwYXJ0L21peGVkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwibXVsdGlwYXJ0L211bHRpbGluZ3VhbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcIm11bHRpcGFydC9wYXJhbGxlbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcIm11bHRpcGFydC9yZWxhdGVkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZVxuICAgICAgfSxcbiAgICAgIFwibXVsdGlwYXJ0L3JlcG9ydFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcIm11bHRpcGFydC9zaWduZWRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlXG4gICAgICB9LFxuICAgICAgXCJtdWx0aXBhcnQvdm5kLmJpbnQubWVkLXBsdXNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJtdWx0aXBhcnQvdm9pY2UtbWVzc2FnZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcIm11bHRpcGFydC94LW1peGVkLXJlcGxhY2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0LzFkLWludGVybGVhdmVkLXBhcml0eWZlY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInRleHQvY2FjaGUtbWFuaWZlc3RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImFwcGNhY2hlXCIsIFwibWFuaWZlc3RcIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQvY2FsZW5kYXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJpY3NcIiwgXCJpZmJcIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQvY2FsZW5kZXJcIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcInRleHQvY21kXCI6IHtcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L2NvZmZlZXNjcmlwdFwiOiB7XG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImNvZmZlZVwiLCBcImxpdGNvZmZlZVwiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC9jcWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L2NxbC1leHByZXNzaW9uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC9jcWwtaWRlbnRpZmllclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInRleHQvY3NzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY2hhcnNldDogXCJVVEYtOFwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImNzc1wiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC9jc3ZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImNzdlwiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC9jc3Ytc2NoZW1hXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC9kaXJlY3RvcnlcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L2Ruc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInRleHQvZWNtYXNjcmlwdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC9lbmNhcHJ0cFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInRleHQvZW5yaWNoZWRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L2ZoaXJwYXRoXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC9mbGV4ZmVjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC9md2RyZWRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L2dmZjNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L2dyYW1tYXItcmVmLWxpc3RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L2hsN3YyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC9odG1sXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJodG1sXCIsIFwiaHRtXCIsIFwic2h0bWxcIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQvamFkZVwiOiB7XG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImphZGVcIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQvamF2YXNjcmlwdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNoYXJzZXQ6IFwiVVRGLThcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJqc1wiLCBcIm1qc1wiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC9qY3ItY25kXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC9qc3hcIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImpzeFwiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC9sZXNzXCI6IHtcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJsZXNzXCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L21hcmtkb3duXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtZFwiLCBcIm1hcmtkb3duXCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L21hdGhtbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJuZ2lueFwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtbWxcIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQvbWR4XCI6IHtcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtZHhcIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQvbWl6YXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L24zXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY2hhcnNldDogXCJVVEYtOFwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm4zXCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3BhcmFtZXRlcnNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjaGFyc2V0OiBcIlVURi04XCJcbiAgICAgIH0sXG4gICAgICBcInRleHQvcGFyaXR5ZmVjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC9wbGFpblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1widHh0XCIsIFwidGV4dFwiLCBcImNvbmZcIiwgXCJkZWZcIiwgXCJsaXN0XCIsIFwibG9nXCIsIFwiaW5cIiwgXCJpbmlcIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQvcHJvdmVuYW5jZS1ub3RhdGlvblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNoYXJzZXQ6IFwiVVRGLThcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC9wcnMuZmFsbGVuc3RlaW4ucnN0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC9wcnMubGluZXMudGFnXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZHNjXCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3Bycy5wcm9wLmxvZ2ljXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC9wcnMudGV4aVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInRleHQvcmFwdG9yZmVjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC9yZWRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3JmYzgyMi1oZWFkZXJzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC9yaWNodGV4dFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicnR4XCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3J0ZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicnRmXCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3J0cC1lbmMtYWVzY20xMjhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3J0cGxvb3BiYWNrXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC9ydHhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3NnbWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzZ21sXCIsIFwic2dtXCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3NoYWNsY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInRleHQvc2hleFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNoZXhcIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQvc2xpbVwiOiB7XG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNsaW1cIiwgXCJzbG1cIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQvc3BkeFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNwZHhcIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQvc3RyaW5nc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInRleHQvc3R5bHVzXCI6IHtcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic3R5bHVzXCIsIFwic3R5bFwiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC90MTQwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC90YWItc2VwYXJhdGVkLXZhbHVlc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1widHN2XCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3Ryb2ZmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widFwiLCBcInRyXCIsIFwicm9mZlwiLCBcIm1hblwiLCBcIm1lXCIsIFwibXNcIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQvdHVydGxlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY2hhcnNldDogXCJVVEYtOFwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ0dGxcIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQvdWxwZmVjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC91cmktbGlzdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1widXJpXCIsIFwidXJpc1wiLCBcInVybHNcIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQvdmNhcmRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInZjYXJkXCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3ZuZC5hXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC92bmQuYWJjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC92bmQuYXNjaWktYXJ0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC92bmQuY3VybFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImN1cmxcIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQvdm5kLmN1cmwuZGN1cmxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImRjdXJsXCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3ZuZC5jdXJsLm1jdXJsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtY3VybFwiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC92bmQuY3VybC5zY3VybFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic2N1cmxcIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQvdm5kLmRlYmlhbi5jb3B5cmlnaHRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjaGFyc2V0OiBcIlVURi04XCJcbiAgICAgIH0sXG4gICAgICBcInRleHQvdm5kLmRtY2xpZW50c2NyaXB0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC92bmQuZHZiLnN1YnRpdGxlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic3ViXCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3ZuZC5lc21lcnRlYy50aGVtZS1kZXNjcmlwdG9yXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY2hhcnNldDogXCJVVEYtOFwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3ZuZC5leGNoYW5nZWFibGVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3ZuZC5mYW1pbHlzZWFyY2guZ2VkY29tXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZ2VkXCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3ZuZC5maWNsYWIuZmx0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC92bmQuZmx5XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZmx5XCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3ZuZC5mbWkuZmxleHN0b3JcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJmbHhcIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQvdm5kLmdtbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInRleHQvdm5kLmdyYXBodml6XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZ3ZcIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQvdm5kLmhhbnNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3ZuZC5oZ2xcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3ZuZC5pbjNkLjNkbWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCIzZG1sXCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3ZuZC5pbjNkLnNwb3RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJzcG90XCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3ZuZC5pcHRjLm5ld3NtbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInRleHQvdm5kLmlwdGMubml0ZlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInRleHQvdm5kLmxhdGV4LXpcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3ZuZC5tb3Rvcm9sYS5yZWZsZXhcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3ZuZC5tcy1tZWRpYXBhY2thZ2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3ZuZC5uZXQycGhvbmUuY29tbWNlbnRlci5jb21tYW5kXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC92bmQucmFkaXN5cy5tc21sLWJhc2ljLWxheW91dFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInRleHQvdm5kLnNlbngud2FycHNjcmlwdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInRleHQvdm5kLnNpLnVyaWNhdGFsb2d1ZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC92bmQuc29zaVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInRleHQvdm5kLnN1bi5qMm1lLmFwcC1kZXNjcmlwdG9yXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY2hhcnNldDogXCJVVEYtOFwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJqYWRcIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQvdm5kLnRyb2xsdGVjaC5saW5ndWlzdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNoYXJzZXQ6IFwiVVRGLThcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC92bmQudmNmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC92bmQud2FwLnNpXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC92bmQud2FwLnNsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidGV4dC92bmQud2FwLndtbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIndtbFwiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC92bmQud2FwLndtbHNjcmlwdFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIndtbHNcIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQvdm5kLnpvby5rY2xcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3Z0dFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGNoYXJzZXQ6IFwiVVRGLThcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ2dHRcIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQvd2dzbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIndnc2xcIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQveC1hc21cIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNcIiwgXCJhc21cIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQveC1jXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJjXCIsIFwiY2NcIiwgXCJjeHhcIiwgXCJjcHBcIiwgXCJoXCIsIFwiaGhcIiwgXCJkaWNcIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQveC1jb21wb25lbnRcIjoge1xuICAgICAgICBzb3VyY2U6IFwibmdpbnhcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiaHRjXCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3gtZm9ydHJhblwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZlwiLCBcImZvclwiLCBcImY3N1wiLCBcImY5MFwiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC94LWd3dC1ycGNcIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IHRydWVcbiAgICAgIH0sXG4gICAgICBcInRleHQveC1oYW5kbGViYXJzLXRlbXBsYXRlXCI6IHtcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiaGJzXCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3gtamF2YS1zb3VyY2VcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImphdmFcIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQveC1qcXVlcnktdG1wbFwiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwidGV4dC94LWx1YVwiOiB7XG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImx1YVwiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC94LW1hcmtkb3duXCI6IHtcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJta2RcIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQveC1uZm9cIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm5mb1wiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC94LW9wbWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm9wbWxcIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQveC1vcmdcIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm9yZ1wiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC94LXBhc2NhbFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wicFwiLCBcInBhc1wiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC94LXByb2Nlc3NpbmdcIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInBkZVwiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC94LXNhc3NcIjoge1xuICAgICAgICBleHRlbnNpb25zOiBbXCJzYXNzXCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3gtc2Nzc1wiOiB7XG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInNjc3NcIl1cbiAgICAgIH0sXG4gICAgICBcInRleHQveC1zZXRleHRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImV0eFwiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC94LXNmdlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic2Z2XCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3gtc3VzZS15bXBcIjoge1xuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInltcFwiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC94LXV1ZW5jb2RlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ1dVwiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC94LXZjYWxlbmRhclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widmNzXCJdXG4gICAgICB9LFxuICAgICAgXCJ0ZXh0L3gtdmNhcmRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInZjZlwiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC94bWxcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IHRydWUsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInhtbFwiXVxuICAgICAgfSxcbiAgICAgIFwidGV4dC94bWwtZXh0ZXJuYWwtcGFyc2VkLWVudGl0eVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInRleHQveWFtbFwiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wieWFtbFwiLCBcInltbFwiXVxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vMWQtaW50ZXJsZWF2ZWQtcGFyaXR5ZmVjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vM2dwcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIjNncFwiLCBcIjNncHBcIl1cbiAgICAgIH0sXG4gICAgICBcInZpZGVvLzNncHAtdHRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby8zZ3BwMlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIjNnMlwiXVxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vYXYxXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vYm1wZWdcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby9idDY1NlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL2NlbGJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby9kdlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL2VuY2FwcnRwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vZXZjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vZmZ2MVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL2ZsZXhmZWNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby9oMjYxXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiaDI2MVwiXVxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vaDI2M1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImgyNjNcIl1cbiAgICAgIH0sXG4gICAgICBcInZpZGVvL2gyNjMtMTk5OFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL2gyNjMtMjAwMFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL2gyNjRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJoMjY0XCJdXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby9oMjY0LXJjZG9cIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby9oMjY0LXN2Y1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL2gyNjVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby9oMjY2XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vaXNvLnNlZ21lbnRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtNHNcIl1cbiAgICAgIH0sXG4gICAgICBcInZpZGVvL2pwZWdcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJqcGd2XCJdXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby9qcGVnMjAwMFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL2pwbVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wianBtXCIsIFwianBnbVwiXVxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vanhzdlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL2xvdHRpZStqc29uXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby9tYXRyb3NrYVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL21hdHJvc2thLTNkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vbWoyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibWoyXCIsIFwibWpwMlwiXVxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vbXAxc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL21wMnBcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby9tcDJ0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widHNcIiwgXCJtMnRcIiwgXCJtMnRzXCIsIFwibXRzXCJdXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby9tcDRcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtcDRcIiwgXCJtcDR2XCIsIFwibXBnNFwiXVxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vbXA0di1lc1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL21wZWdcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtcGVnXCIsIFwibXBnXCIsIFwibXBlXCIsIFwibTF2XCIsIFwibTJ2XCJdXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby9tcGVnNC1nZW5lcmljXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vbXB2XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vbnZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby9vZ2dcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJvZ3ZcIl1cbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3Bhcml0eWZlY1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3BvaW50ZXJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby9xdWlja3RpbWVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJxdFwiLCBcIm1vdlwiXVxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vcmFwdG9yZmVjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vcmF3XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vcnRwLWVuYy1hZXNjbTEyOFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3J0cGxvb3BiYWNrXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vcnR4XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vc2NpcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3NtcHRlMjkxXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vc21wdGUyOTJtXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vdWxwZmVjXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vdmMxXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vdmMyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vdm5kLmNjdHZcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby92bmQuZGVjZS5oZFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInV2aFwiLCBcInV2dmhcIl1cbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3ZuZC5kZWNlLm1vYmlsZVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInV2bVwiLCBcInV2dm1cIl1cbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3ZuZC5kZWNlLm1wNFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3ZuZC5kZWNlLnBkXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widXZwXCIsIFwidXZ2cFwiXVxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vdm5kLmRlY2Uuc2RcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ1dnNcIiwgXCJ1dnZzXCJdXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby92bmQuZGVjZS52aWRlb1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInV2dlwiLCBcInV2dnZcIl1cbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3ZuZC5kaXJlY3R2Lm1wZWdcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby92bmQuZGlyZWN0di5tcGVnLXR0c1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3ZuZC5kbG5hLm1wZWctdHRzXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vdm5kLmR2Yi5maWxlXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZHZiXCJdXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby92bmQuZnZ0XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiZnZ0XCJdXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby92bmQuaG5zLnZpZGVvXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vdm5kLmlwdHZmb3J1bS4xZHBhcml0eWZlYy0xMDEwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vdm5kLmlwdHZmb3J1bS4xZHBhcml0eWZlYy0yMDA1XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vdm5kLmlwdHZmb3J1bS4yZHBhcml0eWZlYy0xMDEwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vdm5kLmlwdHZmb3J1bS4yZHBhcml0eWZlYy0yMDA1XCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vdm5kLmlwdHZmb3J1bS50dHNhdmNcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby92bmQuaXB0dmZvcnVtLnR0c21wZWcyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vdm5kLm1vdG9yb2xhLnZpZGVvXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vdm5kLm1vdG9yb2xhLnZpZGVvcFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3ZuZC5tcGVndXJsXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wibXh1XCIsIFwibTR1XCJdXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby92bmQubXMtcGxheXJlYWR5Lm1lZGlhLnB5dlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInB5dlwiXVxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vdm5kLm5va2lhLmludGVybGVhdmVkLW11bHRpbWVkaWFcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby92bmQubm9raWEubXA0dnJcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby92bmQubm9raWEudmlkZW92b2lwXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vdm5kLm9iamVjdHZpZGVvXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vdm5kLnBsYW5hclwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3ZuZC5yYWRnYW1ldHRvb2xzLmJpbmtcIjoge1xuICAgICAgICBzb3VyY2U6IFwiaWFuYVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby92bmQucmFkZ2FtZXR0b29scy5zbWFja2VyXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby92bmQuc2VhbGVkLm1wZWcxXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vdm5kLnNlYWxlZC5tcGVnNFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3ZuZC5zZWFsZWQuc3dmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIlxuICAgICAgfSxcbiAgICAgIFwidmlkZW8vdm5kLnNlYWxlZG1lZGlhLnNvZnRzZWFsLm1vdlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3ZuZC51dnZ1Lm1wNFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcInV2dVwiLCBcInV2dnVcIl1cbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3ZuZC52aXZvXCI6IHtcbiAgICAgICAgc291cmNlOiBcImlhbmFcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1widml2XCJdXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby92bmQueW91dHViZS55dFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3ZwOFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3ZwOVwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJpYW5hXCJcbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3dlYm1cIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIndlYm1cIl1cbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3gtZjR2XCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJmNHZcIl1cbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3gtZmxpXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJmbGlcIl1cbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3gtZmx2XCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBjb21wcmVzc2libGU6IGZhbHNlLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJmbHZcIl1cbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3gtbTR2XCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtNHZcIl1cbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3gtbWF0cm9za2FcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGNvbXByZXNzaWJsZTogZmFsc2UsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1rdlwiLCBcIm1rM2RcIiwgXCJta3NcIl1cbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3gtbW5nXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJtbmdcIl1cbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3gtbXMtYXNmXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJhc2ZcIiwgXCJhc3hcIl1cbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3gtbXMtdm9iXCI6IHtcbiAgICAgICAgc291cmNlOiBcImFwYWNoZVwiLFxuICAgICAgICBleHRlbnNpb25zOiBbXCJ2b2JcIl1cbiAgICAgIH0sXG4gICAgICBcInZpZGVvL3gtbXMtd21cIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIndtXCJdXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby94LW1zLXdtdlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgY29tcHJlc3NpYmxlOiBmYWxzZSxcbiAgICAgICAgZXh0ZW5zaW9uczogW1wid212XCJdXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby94LW1zLXdteFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wid214XCJdXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby94LW1zLXd2eFwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wid3Z4XCJdXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby94LW1zdmlkZW9cIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcImF2aVwiXVxuICAgICAgfSxcbiAgICAgIFwidmlkZW8veC1zZ2ktbW92aWVcIjoge1xuICAgICAgICBzb3VyY2U6IFwiYXBhY2hlXCIsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcIm1vdmllXCJdXG4gICAgICB9LFxuICAgICAgXCJ2aWRlby94LXNtdlwiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wic212XCJdXG4gICAgICB9LFxuICAgICAgXCJ4LWNvbmZlcmVuY2UveC1jb29sdGFsa1wiOiB7XG4gICAgICAgIHNvdXJjZTogXCJhcGFjaGVcIixcbiAgICAgICAgZXh0ZW5zaW9uczogW1wiaWNlXCJdXG4gICAgICB9LFxuICAgICAgXCJ4LXNoYWRlci94LWZyYWdtZW50XCI6IHtcbiAgICAgICAgY29tcHJlc3NpYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJ4LXNoYWRlci94LXZlcnRleFwiOiB7XG4gICAgICAgIGNvbXByZXNzaWJsZTogdHJ1ZVxuICAgICAgfVxuICAgIH07XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvc2VuZC9ub2RlX21vZHVsZXMvbWltZS1kYi9pbmRleC5qc1xudmFyIHJlcXVpcmVfbWltZV9kYjQgPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvc2VuZC9ub2RlX21vZHVsZXMvbWltZS1kYi9pbmRleC5qc1wiKGV4cG9ydHMyLCBtb2R1bGUyKSB7XG4gICAgbW9kdWxlMi5leHBvcnRzID0gcmVxdWlyZV9kYjQoKTtcbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9zZW5kL25vZGVfbW9kdWxlcy9taW1lLXR5cGVzL21pbWVTY29yZS5qc1xudmFyIHJlcXVpcmVfbWltZVNjb3JlNCA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9zZW5kL25vZGVfbW9kdWxlcy9taW1lLXR5cGVzL21pbWVTY29yZS5qc1wiKGV4cG9ydHMyLCBtb2R1bGUyKSB7XG4gICAgdmFyIEZBQ0VUX1NDT1JFUyA9IHtcbiAgICAgIFwicHJzLlwiOiAxMDAsXG4gICAgICBcIngtXCI6IDIwMCxcbiAgICAgIFwieC5cIjogMzAwLFxuICAgICAgXCJ2bmQuXCI6IDQwMCxcbiAgICAgIGRlZmF1bHQ6IDkwMFxuICAgIH07XG4gICAgdmFyIFNPVVJDRV9TQ09SRVMgPSB7XG4gICAgICBuZ2lueDogMTAsXG4gICAgICBhcGFjaGU6IDIwLFxuICAgICAgaWFuYTogNDAsXG4gICAgICBkZWZhdWx0OiAzMFxuICAgICAgLy8gZGVmaW5pdGlvbnMgYWRkZWQgYnkgYGpzaHR0cC9taW1lLWRiYCBwcm9qZWN0P1xuICAgIH07XG4gICAgdmFyIFRZUEVfU0NPUkVTID0ge1xuICAgICAgLy8gcHJlZmVyIGFwcGxpY2F0aW9uL3htbCBvdmVyIHRleHQveG1sXG4gICAgICAvLyBwcmVmZXIgYXBwbGljYXRpb24vcnRmIG92ZXIgdGV4dC9ydGZcbiAgICAgIGFwcGxpY2F0aW9uOiAxLFxuICAgICAgLy8gcHJlZmVyIGZvbnQvd29mZiBvdmVyIGFwcGxpY2F0aW9uL2ZvbnQtd29mZlxuICAgICAgZm9udDogMixcbiAgICAgIGRlZmF1bHQ6IDBcbiAgICB9O1xuICAgIG1vZHVsZTIuZXhwb3J0cyA9IGZ1bmN0aW9uIG1pbWVTY29yZShtaW1lVHlwZSwgc291cmNlID0gXCJkZWZhdWx0XCIpIHtcbiAgICAgIGlmIChtaW1lVHlwZSA9PT0gXCJhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW1cIikge1xuICAgICAgICByZXR1cm4gMDtcbiAgICAgIH1cbiAgICAgIGNvbnN0IFt0eXBlLCBzdWJ0eXBlXSA9IG1pbWVUeXBlLnNwbGl0KFwiL1wiKTtcbiAgICAgIGNvbnN0IGZhY2V0ID0gc3VidHlwZS5yZXBsYWNlKC8oXFwufHgtKS4qLywgXCIkMVwiKTtcbiAgICAgIGNvbnN0IGZhY2V0U2NvcmUgPSBGQUNFVF9TQ09SRVNbZmFjZXRdIHx8IEZBQ0VUX1NDT1JFUy5kZWZhdWx0O1xuICAgICAgY29uc3Qgc291cmNlU2NvcmUgPSBTT1VSQ0VfU0NPUkVTW3NvdXJjZV0gfHwgU09VUkNFX1NDT1JFUy5kZWZhdWx0O1xuICAgICAgY29uc3QgdHlwZVNjb3JlID0gVFlQRV9TQ09SRVNbdHlwZV0gfHwgVFlQRV9TQ09SRVMuZGVmYXVsdDtcbiAgICAgIGNvbnN0IGxlbmd0aFNjb3JlID0gMSAtIG1pbWVUeXBlLmxlbmd0aCAvIDEwMDtcbiAgICAgIHJldHVybiBmYWNldFNjb3JlICsgc291cmNlU2NvcmUgKyB0eXBlU2NvcmUgKyBsZW5ndGhTY29yZTtcbiAgICB9O1xuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL3NlbmQvbm9kZV9tb2R1bGVzL21pbWUtdHlwZXMvaW5kZXguanNcbnZhciByZXF1aXJlX21pbWVfdHlwZXM0ID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL3NlbmQvbm9kZV9tb2R1bGVzL21pbWUtdHlwZXMvaW5kZXguanNcIihleHBvcnRzMikge1xuICAgIFwidXNlIHN0cmljdFwiO1xuICAgIHZhciBkYiA9IHJlcXVpcmVfbWltZV9kYjQoKTtcbiAgICB2YXIgZXh0bmFtZSA9IHJlcXVpcmUoXCJwYXRoXCIpLmV4dG5hbWU7XG4gICAgdmFyIG1pbWVTY29yZSA9IHJlcXVpcmVfbWltZVNjb3JlNCgpO1xuICAgIHZhciBFWFRSQUNUX1RZUEVfUkVHRVhQID0gL15cXHMqKFteO1xcc10qKSg/Ojt8XFxzfCQpLztcbiAgICB2YXIgVEVYVF9UWVBFX1JFR0VYUCA9IC9edGV4dFxcLy9pO1xuICAgIGV4cG9ydHMyLmNoYXJzZXQgPSBjaGFyc2V0O1xuICAgIGV4cG9ydHMyLmNoYXJzZXRzID0geyBsb29rdXA6IGNoYXJzZXQgfTtcbiAgICBleHBvcnRzMi5jb250ZW50VHlwZSA9IGNvbnRlbnRUeXBlMjtcbiAgICBleHBvcnRzMi5leHRlbnNpb24gPSBleHRlbnNpb247XG4gICAgZXhwb3J0czIuZXh0ZW5zaW9ucyA9IC8qIEBfX1BVUkVfXyAqLyBPYmplY3QuY3JlYXRlKG51bGwpO1xuICAgIGV4cG9ydHMyLmxvb2t1cCA9IGxvb2t1cDtcbiAgICBleHBvcnRzMi50eXBlcyA9IC8qIEBfX1BVUkVfXyAqLyBPYmplY3QuY3JlYXRlKG51bGwpO1xuICAgIGV4cG9ydHMyLl9leHRlbnNpb25Db25mbGljdHMgPSBbXTtcbiAgICBwb3B1bGF0ZU1hcHMoZXhwb3J0czIuZXh0ZW5zaW9ucywgZXhwb3J0czIudHlwZXMpO1xuICAgIGZ1bmN0aW9uIGNoYXJzZXQodHlwZSkge1xuICAgICAgaWYgKCF0eXBlIHx8IHR5cGVvZiB0eXBlICE9PSBcInN0cmluZ1wiKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIHZhciBtYXRjaCA9IEVYVFJBQ1RfVFlQRV9SRUdFWFAuZXhlYyh0eXBlKTtcbiAgICAgIHZhciBtaW1lID0gbWF0Y2ggJiYgZGJbbWF0Y2hbMV0udG9Mb3dlckNhc2UoKV07XG4gICAgICBpZiAobWltZSAmJiBtaW1lLmNoYXJzZXQpIHtcbiAgICAgICAgcmV0dXJuIG1pbWUuY2hhcnNldDtcbiAgICAgIH1cbiAgICAgIGlmIChtYXRjaCAmJiBURVhUX1RZUEVfUkVHRVhQLnRlc3QobWF0Y2hbMV0pKSB7XG4gICAgICAgIHJldHVybiBcIlVURi04XCI7XG4gICAgICB9XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGNvbnRlbnRUeXBlMihzdHIpIHtcbiAgICAgIGlmICghc3RyIHx8IHR5cGVvZiBzdHIgIT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgdmFyIG1pbWUgPSBzdHIuaW5kZXhPZihcIi9cIikgPT09IC0xID8gZXhwb3J0czIubG9va3VwKHN0cikgOiBzdHI7XG4gICAgICBpZiAoIW1pbWUpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgaWYgKG1pbWUuaW5kZXhPZihcImNoYXJzZXRcIikgPT09IC0xKSB7XG4gICAgICAgIHZhciBjaGFyc2V0MiA9IGV4cG9ydHMyLmNoYXJzZXQobWltZSk7XG4gICAgICAgIGlmIChjaGFyc2V0MikgbWltZSArPSBcIjsgY2hhcnNldD1cIiArIGNoYXJzZXQyLnRvTG93ZXJDYXNlKCk7XG4gICAgICB9XG4gICAgICByZXR1cm4gbWltZTtcbiAgICB9XG4gICAgZnVuY3Rpb24gZXh0ZW5zaW9uKHR5cGUpIHtcbiAgICAgIGlmICghdHlwZSB8fCB0eXBlb2YgdHlwZSAhPT0gXCJzdHJpbmdcIikge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgICB2YXIgbWF0Y2ggPSBFWFRSQUNUX1RZUEVfUkVHRVhQLmV4ZWModHlwZSk7XG4gICAgICB2YXIgZXh0cyA9IG1hdGNoICYmIGV4cG9ydHMyLmV4dGVuc2lvbnNbbWF0Y2hbMV0udG9Mb3dlckNhc2UoKV07XG4gICAgICBpZiAoIWV4dHMgfHwgIWV4dHMubGVuZ3RoKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBleHRzWzBdO1xuICAgIH1cbiAgICBmdW5jdGlvbiBsb29rdXAocGF0aCkge1xuICAgICAgaWYgKCFwYXRoIHx8IHR5cGVvZiBwYXRoICE9PSBcInN0cmluZ1wiKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIHZhciBleHRlbnNpb24yID0gZXh0bmFtZShcInguXCIgKyBwYXRoKS50b0xvd2VyQ2FzZSgpLnNsaWNlKDEpO1xuICAgICAgaWYgKCFleHRlbnNpb24yKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBleHBvcnRzMi50eXBlc1tleHRlbnNpb24yXSB8fCBmYWxzZTtcbiAgICB9XG4gICAgZnVuY3Rpb24gcG9wdWxhdGVNYXBzKGV4dGVuc2lvbnMsIHR5cGVzKSB7XG4gICAgICBPYmplY3Qua2V5cyhkYikuZm9yRWFjaChmdW5jdGlvbiBmb3JFYWNoTWltZVR5cGUodHlwZSkge1xuICAgICAgICB2YXIgbWltZSA9IGRiW3R5cGVdO1xuICAgICAgICB2YXIgZXh0cyA9IG1pbWUuZXh0ZW5zaW9ucztcbiAgICAgICAgaWYgKCFleHRzIHx8ICFleHRzLmxlbmd0aCkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBleHRlbnNpb25zW3R5cGVdID0gZXh0cztcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBleHRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgdmFyIGV4dGVuc2lvbjIgPSBleHRzW2ldO1xuICAgICAgICAgIHR5cGVzW2V4dGVuc2lvbjJdID0gX3ByZWZlcnJlZFR5cGUoZXh0ZW5zaW9uMiwgdHlwZXNbZXh0ZW5zaW9uMl0sIHR5cGUpO1xuICAgICAgICAgIGNvbnN0IGxlZ2FjeVR5cGUgPSBfcHJlZmVycmVkVHlwZUxlZ2FjeShcbiAgICAgICAgICAgIGV4dGVuc2lvbjIsXG4gICAgICAgICAgICB0eXBlc1tleHRlbnNpb24yXSxcbiAgICAgICAgICAgIHR5cGVcbiAgICAgICAgICApO1xuICAgICAgICAgIGlmIChsZWdhY3lUeXBlICE9PSB0eXBlc1tleHRlbnNpb24yXSkge1xuICAgICAgICAgICAgZXhwb3J0czIuX2V4dGVuc2lvbkNvbmZsaWN0cy5wdXNoKFtleHRlbnNpb24yLCBsZWdhY3lUeXBlLCB0eXBlc1tleHRlbnNpb24yXV0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIF9wcmVmZXJyZWRUeXBlKGV4dCwgdHlwZTAsIHR5cGUxKSB7XG4gICAgICB2YXIgc2NvcmUwID0gdHlwZTAgPyBtaW1lU2NvcmUodHlwZTAsIGRiW3R5cGUwXS5zb3VyY2UpIDogMDtcbiAgICAgIHZhciBzY29yZTEgPSB0eXBlMSA/IG1pbWVTY29yZSh0eXBlMSwgZGJbdHlwZTFdLnNvdXJjZSkgOiAwO1xuICAgICAgcmV0dXJuIHNjb3JlMCA+IHNjb3JlMSA/IHR5cGUwIDogdHlwZTE7XG4gICAgfVxuICAgIGZ1bmN0aW9uIF9wcmVmZXJyZWRUeXBlTGVnYWN5KGV4dCwgdHlwZTAsIHR5cGUxKSB7XG4gICAgICB2YXIgU09VUkNFX1JBTksgPSBbXCJuZ2lueFwiLCBcImFwYWNoZVwiLCB2b2lkIDAsIFwiaWFuYVwiXTtcbiAgICAgIHZhciBzY29yZTAgPSB0eXBlMCA/IFNPVVJDRV9SQU5LLmluZGV4T2YoZGJbdHlwZTBdLnNvdXJjZSkgOiAwO1xuICAgICAgdmFyIHNjb3JlMSA9IHR5cGUxID8gU09VUkNFX1JBTksuaW5kZXhPZihkYlt0eXBlMV0uc291cmNlKSA6IDA7XG4gICAgICBpZiAoZXhwb3J0czIudHlwZXNbZXh0ZW5zaW9uXSAhPT0gXCJhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW1cIiAmJiAoc2NvcmUwID4gc2NvcmUxIHx8IHNjb3JlMCA9PT0gc2NvcmUxICYmIGV4cG9ydHMyLnR5cGVzW2V4dGVuc2lvbl0/LnNsaWNlKDAsIDEyKSA9PT0gXCJhcHBsaWNhdGlvbi9cIikpIHtcbiAgICAgICAgcmV0dXJuIHR5cGUwO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHNjb3JlMCA+IHNjb3JlMSA/IHR5cGUwIDogdHlwZTE7XG4gICAgfVxuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL3NlbmQvaW5kZXguanNcbnZhciByZXF1aXJlX3NlbmQgPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvc2VuZC9pbmRleC5qc1wiKGV4cG9ydHMyLCBtb2R1bGUyKSB7XG4gICAgXCJ1c2Ugc3RyaWN0XCI7XG4gICAgdmFyIGNyZWF0ZUVycm9yID0gcmVxdWlyZV9odHRwX2Vycm9ycygpO1xuICAgIHZhciBkZWJ1ZyA9IHJlcXVpcmVfc3JjKCkoXCJzZW5kXCIpO1xuICAgIHZhciBlbmNvZGVVcmwgPSByZXF1aXJlX2VuY29kZXVybCgpO1xuICAgIHZhciBlc2NhcGVIdG1sID0gcmVxdWlyZV9lc2NhcGVfaHRtbCgpO1xuICAgIHZhciBldGFnID0gcmVxdWlyZV9ldGFnKCk7XG4gICAgdmFyIGZyZXNoID0gcmVxdWlyZV9mcmVzaCgpO1xuICAgIHZhciBmcyA9IHJlcXVpcmUoXCJmc1wiKTtcbiAgICB2YXIgbWltZSA9IHJlcXVpcmVfbWltZV90eXBlczQoKTtcbiAgICB2YXIgbXMgPSByZXF1aXJlX21zKCk7XG4gICAgdmFyIG9uRmluaXNoZWQgPSByZXF1aXJlX29uX2ZpbmlzaGVkKCk7XG4gICAgdmFyIHBhcnNlUmFuZ2UgPSByZXF1aXJlX3JhbmdlX3BhcnNlcigpO1xuICAgIHZhciBwYXRoID0gcmVxdWlyZShcInBhdGhcIik7XG4gICAgdmFyIHN0YXR1c2VzID0gcmVxdWlyZV9zdGF0dXNlcygpO1xuICAgIHZhciBTdHJlYW0gPSByZXF1aXJlKFwic3RyZWFtXCIpO1xuICAgIHZhciB1dGlsMiA9IHJlcXVpcmUoXCJ1dGlsXCIpO1xuICAgIHZhciBleHRuYW1lID0gcGF0aC5leHRuYW1lO1xuICAgIHZhciBqb2luID0gcGF0aC5qb2luO1xuICAgIHZhciBub3JtYWxpemUgPSBwYXRoLm5vcm1hbGl6ZTtcbiAgICB2YXIgcmVzb2x2ZSA9IHBhdGgucmVzb2x2ZTtcbiAgICB2YXIgc2VwID0gcGF0aC5zZXA7XG4gICAgdmFyIEJZVEVTX1JBTkdFX1JFR0VYUCA9IC9eICpieXRlcz0vO1xuICAgIHZhciBNQVhfTUFYQUdFID0gNjAgKiA2MCAqIDI0ICogMzY1ICogMWUzO1xuICAgIHZhciBVUF9QQVRIX1JFR0VYUCA9IC8oPzpefFtcXFxcL10pXFwuXFwuKD86W1xcXFwvXXwkKS87XG4gICAgbW9kdWxlMi5leHBvcnRzID0gc2VuZDtcbiAgICBmdW5jdGlvbiBzZW5kKHJlcSwgcGF0aDIsIG9wdGlvbnMpIHtcbiAgICAgIHJldHVybiBuZXcgU2VuZFN0cmVhbShyZXEsIHBhdGgyLCBvcHRpb25zKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gU2VuZFN0cmVhbShyZXEsIHBhdGgyLCBvcHRpb25zKSB7XG4gICAgICBTdHJlYW0uY2FsbCh0aGlzKTtcbiAgICAgIHZhciBvcHRzID0gb3B0aW9ucyB8fCB7fTtcbiAgICAgIHRoaXMub3B0aW9ucyA9IG9wdHM7XG4gICAgICB0aGlzLnBhdGggPSBwYXRoMjtcbiAgICAgIHRoaXMucmVxID0gcmVxO1xuICAgICAgdGhpcy5fYWNjZXB0UmFuZ2VzID0gb3B0cy5hY2NlcHRSYW5nZXMgIT09IHZvaWQgMCA/IEJvb2xlYW4ob3B0cy5hY2NlcHRSYW5nZXMpIDogdHJ1ZTtcbiAgICAgIHRoaXMuX2NhY2hlQ29udHJvbCA9IG9wdHMuY2FjaGVDb250cm9sICE9PSB2b2lkIDAgPyBCb29sZWFuKG9wdHMuY2FjaGVDb250cm9sKSA6IHRydWU7XG4gICAgICB0aGlzLl9ldGFnID0gb3B0cy5ldGFnICE9PSB2b2lkIDAgPyBCb29sZWFuKG9wdHMuZXRhZykgOiB0cnVlO1xuICAgICAgdGhpcy5fZG90ZmlsZXMgPSBvcHRzLmRvdGZpbGVzICE9PSB2b2lkIDAgPyBvcHRzLmRvdGZpbGVzIDogXCJpZ25vcmVcIjtcbiAgICAgIGlmICh0aGlzLl9kb3RmaWxlcyAhPT0gXCJpZ25vcmVcIiAmJiB0aGlzLl9kb3RmaWxlcyAhPT0gXCJhbGxvd1wiICYmIHRoaXMuX2RvdGZpbGVzICE9PSBcImRlbnlcIikge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdkb3RmaWxlcyBvcHRpb24gbXVzdCBiZSBcImFsbG93XCIsIFwiZGVueVwiLCBvciBcImlnbm9yZVwiJyk7XG4gICAgICB9XG4gICAgICB0aGlzLl9leHRlbnNpb25zID0gb3B0cy5leHRlbnNpb25zICE9PSB2b2lkIDAgPyBub3JtYWxpemVMaXN0KG9wdHMuZXh0ZW5zaW9ucywgXCJleHRlbnNpb25zIG9wdGlvblwiKSA6IFtdO1xuICAgICAgdGhpcy5faW1tdXRhYmxlID0gb3B0cy5pbW11dGFibGUgIT09IHZvaWQgMCA/IEJvb2xlYW4ob3B0cy5pbW11dGFibGUpIDogZmFsc2U7XG4gICAgICB0aGlzLl9pbmRleCA9IG9wdHMuaW5kZXggIT09IHZvaWQgMCA/IG5vcm1hbGl6ZUxpc3Qob3B0cy5pbmRleCwgXCJpbmRleCBvcHRpb25cIikgOiBbXCJpbmRleC5odG1sXCJdO1xuICAgICAgdGhpcy5fbGFzdE1vZGlmaWVkID0gb3B0cy5sYXN0TW9kaWZpZWQgIT09IHZvaWQgMCA/IEJvb2xlYW4ob3B0cy5sYXN0TW9kaWZpZWQpIDogdHJ1ZTtcbiAgICAgIHRoaXMuX21heGFnZSA9IG9wdHMubWF4QWdlIHx8IG9wdHMubWF4YWdlO1xuICAgICAgdGhpcy5fbWF4YWdlID0gdHlwZW9mIHRoaXMuX21heGFnZSA9PT0gXCJzdHJpbmdcIiA/IG1zKHRoaXMuX21heGFnZSkgOiBOdW1iZXIodGhpcy5fbWF4YWdlKTtcbiAgICAgIHRoaXMuX21heGFnZSA9ICFpc05hTih0aGlzLl9tYXhhZ2UpID8gTWF0aC5taW4oTWF0aC5tYXgoMCwgdGhpcy5fbWF4YWdlKSwgTUFYX01BWEFHRSkgOiAwO1xuICAgICAgdGhpcy5fcm9vdCA9IG9wdHMucm9vdCA/IHJlc29sdmUob3B0cy5yb290KSA6IG51bGw7XG4gICAgfVxuICAgIHV0aWwyLmluaGVyaXRzKFNlbmRTdHJlYW0sIFN0cmVhbSk7XG4gICAgU2VuZFN0cmVhbS5wcm90b3R5cGUuZXJyb3IgPSBmdW5jdGlvbiBlcnJvcihzdGF0dXMsIGVycjIpIHtcbiAgICAgIGlmIChoYXNMaXN0ZW5lcnModGhpcywgXCJlcnJvclwiKSkge1xuICAgICAgICByZXR1cm4gdGhpcy5lbWl0KFwiZXJyb3JcIiwgY3JlYXRlSHR0cEVycm9yKHN0YXR1cywgZXJyMikpO1xuICAgICAgfVxuICAgICAgdmFyIHJlcyA9IHRoaXMucmVzO1xuICAgICAgdmFyIG1zZyA9IHN0YXR1c2VzLm1lc3NhZ2Vbc3RhdHVzXSB8fCBTdHJpbmcoc3RhdHVzKTtcbiAgICAgIHZhciBkb2MgPSBjcmVhdGVIdG1sRG9jdW1lbnQoXCJFcnJvclwiLCBlc2NhcGVIdG1sKG1zZykpO1xuICAgICAgY2xlYXJIZWFkZXJzKHJlcyk7XG4gICAgICBpZiAoZXJyMiAmJiBlcnIyLmhlYWRlcnMpIHtcbiAgICAgICAgc2V0SGVhZGVycyhyZXMsIGVycjIuaGVhZGVycyk7XG4gICAgICB9XG4gICAgICByZXMuc3RhdHVzQ29kZSA9IHN0YXR1cztcbiAgICAgIHJlcy5zZXRIZWFkZXIoXCJDb250ZW50LVR5cGVcIiwgXCJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLThcIik7XG4gICAgICByZXMuc2V0SGVhZGVyKFwiQ29udGVudC1MZW5ndGhcIiwgQnVmZmVyLmJ5dGVMZW5ndGgoZG9jKSk7XG4gICAgICByZXMuc2V0SGVhZGVyKFwiQ29udGVudC1TZWN1cml0eS1Qb2xpY3lcIiwgXCJkZWZhdWx0LXNyYyAnbm9uZSdcIik7XG4gICAgICByZXMuc2V0SGVhZGVyKFwiWC1Db250ZW50LVR5cGUtT3B0aW9uc1wiLCBcIm5vc25pZmZcIik7XG4gICAgICByZXMuZW5kKGRvYyk7XG4gICAgfTtcbiAgICBTZW5kU3RyZWFtLnByb3RvdHlwZS5oYXNUcmFpbGluZ1NsYXNoID0gZnVuY3Rpb24gaGFzVHJhaWxpbmdTbGFzaCgpIHtcbiAgICAgIHJldHVybiB0aGlzLnBhdGhbdGhpcy5wYXRoLmxlbmd0aCAtIDFdID09PSBcIi9cIjtcbiAgICB9O1xuICAgIFNlbmRTdHJlYW0ucHJvdG90eXBlLmlzQ29uZGl0aW9uYWxHRVQgPSBmdW5jdGlvbiBpc0NvbmRpdGlvbmFsR0VUKCkge1xuICAgICAgcmV0dXJuIHRoaXMucmVxLmhlYWRlcnNbXCJpZi1tYXRjaFwiXSB8fCB0aGlzLnJlcS5oZWFkZXJzW1wiaWYtdW5tb2RpZmllZC1zaW5jZVwiXSB8fCB0aGlzLnJlcS5oZWFkZXJzW1wiaWYtbm9uZS1tYXRjaFwiXSB8fCB0aGlzLnJlcS5oZWFkZXJzW1wiaWYtbW9kaWZpZWQtc2luY2VcIl07XG4gICAgfTtcbiAgICBTZW5kU3RyZWFtLnByb3RvdHlwZS5pc1ByZWNvbmRpdGlvbkZhaWx1cmUgPSBmdW5jdGlvbiBpc1ByZWNvbmRpdGlvbkZhaWx1cmUoKSB7XG4gICAgICB2YXIgcmVxID0gdGhpcy5yZXE7XG4gICAgICB2YXIgcmVzID0gdGhpcy5yZXM7XG4gICAgICB2YXIgbWF0Y2ggPSByZXEuaGVhZGVyc1tcImlmLW1hdGNoXCJdO1xuICAgICAgaWYgKG1hdGNoKSB7XG4gICAgICAgIHZhciBldGFnMiA9IHJlcy5nZXRIZWFkZXIoXCJFVGFnXCIpO1xuICAgICAgICByZXR1cm4gIWV0YWcyIHx8IG1hdGNoICE9PSBcIipcIiAmJiBwYXJzZVRva2VuTGlzdChtYXRjaCkuZXZlcnkoZnVuY3Rpb24obWF0Y2gyKSB7XG4gICAgICAgICAgcmV0dXJuIG1hdGNoMiAhPT0gZXRhZzIgJiYgbWF0Y2gyICE9PSBcIlcvXCIgKyBldGFnMiAmJiBcIlcvXCIgKyBtYXRjaDIgIT09IGV0YWcyO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIHZhciB1bm1vZGlmaWVkU2luY2UgPSBwYXJzZUh0dHBEYXRlKHJlcS5oZWFkZXJzW1wiaWYtdW5tb2RpZmllZC1zaW5jZVwiXSk7XG4gICAgICBpZiAoIWlzTmFOKHVubW9kaWZpZWRTaW5jZSkpIHtcbiAgICAgICAgdmFyIGxhc3RNb2RpZmllZCA9IHBhcnNlSHR0cERhdGUocmVzLmdldEhlYWRlcihcIkxhc3QtTW9kaWZpZWRcIikpO1xuICAgICAgICByZXR1cm4gaXNOYU4obGFzdE1vZGlmaWVkKSB8fCBsYXN0TW9kaWZpZWQgPiB1bm1vZGlmaWVkU2luY2U7XG4gICAgICB9XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfTtcbiAgICBTZW5kU3RyZWFtLnByb3RvdHlwZS5yZW1vdmVDb250ZW50SGVhZGVyRmllbGRzID0gZnVuY3Rpb24gcmVtb3ZlQ29udGVudEhlYWRlckZpZWxkcygpIHtcbiAgICAgIHZhciByZXMgPSB0aGlzLnJlcztcbiAgICAgIHJlcy5yZW1vdmVIZWFkZXIoXCJDb250ZW50LUVuY29kaW5nXCIpO1xuICAgICAgcmVzLnJlbW92ZUhlYWRlcihcIkNvbnRlbnQtTGFuZ3VhZ2VcIik7XG4gICAgICByZXMucmVtb3ZlSGVhZGVyKFwiQ29udGVudC1MZW5ndGhcIik7XG4gICAgICByZXMucmVtb3ZlSGVhZGVyKFwiQ29udGVudC1SYW5nZVwiKTtcbiAgICAgIHJlcy5yZW1vdmVIZWFkZXIoXCJDb250ZW50LVR5cGVcIik7XG4gICAgfTtcbiAgICBTZW5kU3RyZWFtLnByb3RvdHlwZS5ub3RNb2RpZmllZCA9IGZ1bmN0aW9uIG5vdE1vZGlmaWVkKCkge1xuICAgICAgdmFyIHJlcyA9IHRoaXMucmVzO1xuICAgICAgZGVidWcoXCJub3QgbW9kaWZpZWRcIik7XG4gICAgICB0aGlzLnJlbW92ZUNvbnRlbnRIZWFkZXJGaWVsZHMoKTtcbiAgICAgIHJlcy5zdGF0dXNDb2RlID0gMzA0O1xuICAgICAgcmVzLmVuZCgpO1xuICAgIH07XG4gICAgU2VuZFN0cmVhbS5wcm90b3R5cGUuaGVhZGVyc0FscmVhZHlTZW50ID0gZnVuY3Rpb24gaGVhZGVyc0FscmVhZHlTZW50KCkge1xuICAgICAgdmFyIGVycjIgPSBuZXcgRXJyb3IoXCJDYW4ndCBzZXQgaGVhZGVycyBhZnRlciB0aGV5IGFyZSBzZW50LlwiKTtcbiAgICAgIGRlYnVnKFwiaGVhZGVycyBhbHJlYWR5IHNlbnRcIik7XG4gICAgICB0aGlzLmVycm9yKDUwMCwgZXJyMik7XG4gICAgfTtcbiAgICBTZW5kU3RyZWFtLnByb3RvdHlwZS5pc0NhY2hhYmxlID0gZnVuY3Rpb24gaXNDYWNoYWJsZSgpIHtcbiAgICAgIHZhciBzdGF0dXNDb2RlID0gdGhpcy5yZXMuc3RhdHVzQ29kZTtcbiAgICAgIHJldHVybiBzdGF0dXNDb2RlID49IDIwMCAmJiBzdGF0dXNDb2RlIDwgMzAwIHx8IHN0YXR1c0NvZGUgPT09IDMwNDtcbiAgICB9O1xuICAgIFNlbmRTdHJlYW0ucHJvdG90eXBlLm9uU3RhdEVycm9yID0gZnVuY3Rpb24gb25TdGF0RXJyb3IoZXJyb3IpIHtcbiAgICAgIHN3aXRjaCAoZXJyb3IuY29kZSkge1xuICAgICAgICBjYXNlIFwiRU5BTUVUT09MT05HXCI6XG4gICAgICAgIGNhc2UgXCJFTk9FTlRcIjpcbiAgICAgICAgY2FzZSBcIkVOT1RESVJcIjpcbiAgICAgICAgICB0aGlzLmVycm9yKDQwNCwgZXJyb3IpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHRoaXMuZXJyb3IoNTAwLCBlcnJvcik7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfTtcbiAgICBTZW5kU3RyZWFtLnByb3RvdHlwZS5pc0ZyZXNoID0gZnVuY3Rpb24gaXNGcmVzaCgpIHtcbiAgICAgIHJldHVybiBmcmVzaCh0aGlzLnJlcS5oZWFkZXJzLCB7XG4gICAgICAgIGV0YWc6IHRoaXMucmVzLmdldEhlYWRlcihcIkVUYWdcIiksXG4gICAgICAgIFwibGFzdC1tb2RpZmllZFwiOiB0aGlzLnJlcy5nZXRIZWFkZXIoXCJMYXN0LU1vZGlmaWVkXCIpXG4gICAgICB9KTtcbiAgICB9O1xuICAgIFNlbmRTdHJlYW0ucHJvdG90eXBlLmlzUmFuZ2VGcmVzaCA9IGZ1bmN0aW9uIGlzUmFuZ2VGcmVzaCgpIHtcbiAgICAgIHZhciBpZlJhbmdlID0gdGhpcy5yZXEuaGVhZGVyc1tcImlmLXJhbmdlXCJdO1xuICAgICAgaWYgKCFpZlJhbmdlKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgICAgaWYgKGlmUmFuZ2UuaW5kZXhPZignXCInKSAhPT0gLTEpIHtcbiAgICAgICAgdmFyIGV0YWcyID0gdGhpcy5yZXMuZ2V0SGVhZGVyKFwiRVRhZ1wiKTtcbiAgICAgICAgcmV0dXJuIEJvb2xlYW4oZXRhZzIgJiYgaWZSYW5nZS5pbmRleE9mKGV0YWcyKSAhPT0gLTEpO1xuICAgICAgfVxuICAgICAgdmFyIGxhc3RNb2RpZmllZCA9IHRoaXMucmVzLmdldEhlYWRlcihcIkxhc3QtTW9kaWZpZWRcIik7XG4gICAgICByZXR1cm4gcGFyc2VIdHRwRGF0ZShsYXN0TW9kaWZpZWQpIDw9IHBhcnNlSHR0cERhdGUoaWZSYW5nZSk7XG4gICAgfTtcbiAgICBTZW5kU3RyZWFtLnByb3RvdHlwZS5yZWRpcmVjdCA9IGZ1bmN0aW9uIHJlZGlyZWN0KHBhdGgyKSB7XG4gICAgICB2YXIgcmVzID0gdGhpcy5yZXM7XG4gICAgICBpZiAoaGFzTGlzdGVuZXJzKHRoaXMsIFwiZGlyZWN0b3J5XCIpKSB7XG4gICAgICAgIHRoaXMuZW1pdChcImRpcmVjdG9yeVwiLCByZXMsIHBhdGgyKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMuaGFzVHJhaWxpbmdTbGFzaCgpKSB7XG4gICAgICAgIHRoaXMuZXJyb3IoNDAzKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgdmFyIGxvYyA9IGVuY29kZVVybChjb2xsYXBzZUxlYWRpbmdTbGFzaGVzKHRoaXMucGF0aCArIFwiL1wiKSk7XG4gICAgICB2YXIgZG9jID0gY3JlYXRlSHRtbERvY3VtZW50KFwiUmVkaXJlY3RpbmdcIiwgXCJSZWRpcmVjdGluZyB0byBcIiArIGVzY2FwZUh0bWwobG9jKSk7XG4gICAgICByZXMuc3RhdHVzQ29kZSA9IDMwMTtcbiAgICAgIHJlcy5zZXRIZWFkZXIoXCJDb250ZW50LVR5cGVcIiwgXCJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLThcIik7XG4gICAgICByZXMuc2V0SGVhZGVyKFwiQ29udGVudC1MZW5ndGhcIiwgQnVmZmVyLmJ5dGVMZW5ndGgoZG9jKSk7XG4gICAgICByZXMuc2V0SGVhZGVyKFwiQ29udGVudC1TZWN1cml0eS1Qb2xpY3lcIiwgXCJkZWZhdWx0LXNyYyAnbm9uZSdcIik7XG4gICAgICByZXMuc2V0SGVhZGVyKFwiWC1Db250ZW50LVR5cGUtT3B0aW9uc1wiLCBcIm5vc25pZmZcIik7XG4gICAgICByZXMuc2V0SGVhZGVyKFwiTG9jYXRpb25cIiwgbG9jKTtcbiAgICAgIHJlcy5lbmQoZG9jKTtcbiAgICB9O1xuICAgIFNlbmRTdHJlYW0ucHJvdG90eXBlLnBpcGUgPSBmdW5jdGlvbiBwaXBlKHJlcykge1xuICAgICAgdmFyIHJvb3QgPSB0aGlzLl9yb290O1xuICAgICAgdGhpcy5yZXMgPSByZXM7XG4gICAgICB2YXIgcGF0aDIgPSBkZWNvZGUodGhpcy5wYXRoKTtcbiAgICAgIGlmIChwYXRoMiA9PT0gLTEpIHtcbiAgICAgICAgdGhpcy5lcnJvcig0MDApO1xuICAgICAgICByZXR1cm4gcmVzO1xuICAgICAgfVxuICAgICAgaWYgKH5wYXRoMi5pbmRleE9mKFwiXFwwXCIpKSB7XG4gICAgICAgIHRoaXMuZXJyb3IoNDAwKTtcbiAgICAgICAgcmV0dXJuIHJlcztcbiAgICAgIH1cbiAgICAgIHZhciBwYXJ0cztcbiAgICAgIGlmIChyb290ICE9PSBudWxsKSB7XG4gICAgICAgIGlmIChwYXRoMikge1xuICAgICAgICAgIHBhdGgyID0gbm9ybWFsaXplKFwiLlwiICsgc2VwICsgcGF0aDIpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChVUF9QQVRIX1JFR0VYUC50ZXN0KHBhdGgyKSkge1xuICAgICAgICAgIGRlYnVnKCdtYWxpY2lvdXMgcGF0aCBcIiVzXCInLCBwYXRoMik7XG4gICAgICAgICAgdGhpcy5lcnJvcig0MDMpO1xuICAgICAgICAgIHJldHVybiByZXM7XG4gICAgICAgIH1cbiAgICAgICAgcGFydHMgPSBwYXRoMi5zcGxpdChzZXApO1xuICAgICAgICBwYXRoMiA9IG5vcm1hbGl6ZShqb2luKHJvb3QsIHBhdGgyKSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAoVVBfUEFUSF9SRUdFWFAudGVzdChwYXRoMikpIHtcbiAgICAgICAgICBkZWJ1ZygnbWFsaWNpb3VzIHBhdGggXCIlc1wiJywgcGF0aDIpO1xuICAgICAgICAgIHRoaXMuZXJyb3IoNDAzKTtcbiAgICAgICAgICByZXR1cm4gcmVzO1xuICAgICAgICB9XG4gICAgICAgIHBhcnRzID0gbm9ybWFsaXplKHBhdGgyKS5zcGxpdChzZXApO1xuICAgICAgICBwYXRoMiA9IHJlc29sdmUocGF0aDIpO1xuICAgICAgfVxuICAgICAgaWYgKGNvbnRhaW5zRG90RmlsZShwYXJ0cykpIHtcbiAgICAgICAgZGVidWcoJyVzIGRvdGZpbGUgXCIlc1wiJywgdGhpcy5fZG90ZmlsZXMsIHBhdGgyKTtcbiAgICAgICAgc3dpdGNoICh0aGlzLl9kb3RmaWxlcykge1xuICAgICAgICAgIGNhc2UgXCJhbGxvd1wiOlxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBcImRlbnlcIjpcbiAgICAgICAgICAgIHRoaXMuZXJyb3IoNDAzKTtcbiAgICAgICAgICAgIHJldHVybiByZXM7XG4gICAgICAgICAgY2FzZSBcImlnbm9yZVwiOlxuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICB0aGlzLmVycm9yKDQwNCk7XG4gICAgICAgICAgICByZXR1cm4gcmVzO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5faW5kZXgubGVuZ3RoICYmIHRoaXMuaGFzVHJhaWxpbmdTbGFzaCgpKSB7XG4gICAgICAgIHRoaXMuc2VuZEluZGV4KHBhdGgyKTtcbiAgICAgICAgcmV0dXJuIHJlcztcbiAgICAgIH1cbiAgICAgIHRoaXMuc2VuZEZpbGUocGF0aDIpO1xuICAgICAgcmV0dXJuIHJlcztcbiAgICB9O1xuICAgIFNlbmRTdHJlYW0ucHJvdG90eXBlLnNlbmQgPSBmdW5jdGlvbiBzZW5kMihwYXRoMiwgc3RhdCkge1xuICAgICAgdmFyIGxlbiA9IHN0YXQuc2l6ZTtcbiAgICAgIHZhciBvcHRpb25zID0gdGhpcy5vcHRpb25zO1xuICAgICAgdmFyIG9wdHMgPSB7fTtcbiAgICAgIHZhciByZXMgPSB0aGlzLnJlcztcbiAgICAgIHZhciByZXEgPSB0aGlzLnJlcTtcbiAgICAgIHZhciByYW5nZXMgPSByZXEuaGVhZGVycy5yYW5nZTtcbiAgICAgIHZhciBvZmZzZXQgPSBvcHRpb25zLnN0YXJ0IHx8IDA7XG4gICAgICBpZiAocmVzLmhlYWRlcnNTZW50KSB7XG4gICAgICAgIHRoaXMuaGVhZGVyc0FscmVhZHlTZW50KCk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGRlYnVnKCdwaXBlIFwiJXNcIicsIHBhdGgyKTtcbiAgICAgIHRoaXMuc2V0SGVhZGVyKHBhdGgyLCBzdGF0KTtcbiAgICAgIHRoaXMudHlwZShwYXRoMik7XG4gICAgICBpZiAodGhpcy5pc0NvbmRpdGlvbmFsR0VUKCkpIHtcbiAgICAgICAgaWYgKHRoaXMuaXNQcmVjb25kaXRpb25GYWlsdXJlKCkpIHtcbiAgICAgICAgICB0aGlzLmVycm9yKDQxMik7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmlzQ2FjaGFibGUoKSAmJiB0aGlzLmlzRnJlc2goKSkge1xuICAgICAgICAgIHRoaXMubm90TW9kaWZpZWQoKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGxlbiA9IE1hdGgubWF4KDAsIGxlbiAtIG9mZnNldCk7XG4gICAgICBpZiAob3B0aW9ucy5lbmQgIT09IHZvaWQgMCkge1xuICAgICAgICB2YXIgYnl0ZXMgPSBvcHRpb25zLmVuZCAtIG9mZnNldCArIDE7XG4gICAgICAgIGlmIChsZW4gPiBieXRlcykgbGVuID0gYnl0ZXM7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5fYWNjZXB0UmFuZ2VzICYmIEJZVEVTX1JBTkdFX1JFR0VYUC50ZXN0KHJhbmdlcykpIHtcbiAgICAgICAgcmFuZ2VzID0gcGFyc2VSYW5nZShsZW4sIHJhbmdlcywge1xuICAgICAgICAgIGNvbWJpbmU6IHRydWVcbiAgICAgICAgfSk7XG4gICAgICAgIGlmICghdGhpcy5pc1JhbmdlRnJlc2goKSkge1xuICAgICAgICAgIGRlYnVnKFwicmFuZ2Ugc3RhbGVcIik7XG4gICAgICAgICAgcmFuZ2VzID0gLTI7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHJhbmdlcyA9PT0gLTEpIHtcbiAgICAgICAgICBkZWJ1ZyhcInJhbmdlIHVuc2F0aXNmaWFibGVcIik7XG4gICAgICAgICAgcmVzLnNldEhlYWRlcihcIkNvbnRlbnQtUmFuZ2VcIiwgY29udGVudFJhbmdlKFwiYnl0ZXNcIiwgbGVuKSk7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuZXJyb3IoNDE2LCB7XG4gICAgICAgICAgICBoZWFkZXJzOiB7IFwiQ29udGVudC1SYW5nZVwiOiByZXMuZ2V0SGVhZGVyKFwiQ29udGVudC1SYW5nZVwiKSB9XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHJhbmdlcyAhPT0gLTIgJiYgcmFuZ2VzLmxlbmd0aCA9PT0gMSkge1xuICAgICAgICAgIGRlYnVnKFwicmFuZ2UgJWpcIiwgcmFuZ2VzKTtcbiAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwNjtcbiAgICAgICAgICByZXMuc2V0SGVhZGVyKFwiQ29udGVudC1SYW5nZVwiLCBjb250ZW50UmFuZ2UoXCJieXRlc1wiLCBsZW4sIHJhbmdlc1swXSkpO1xuICAgICAgICAgIG9mZnNldCArPSByYW5nZXNbMF0uc3RhcnQ7XG4gICAgICAgICAgbGVuID0gcmFuZ2VzWzBdLmVuZCAtIHJhbmdlc1swXS5zdGFydCArIDE7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGZvciAodmFyIHByb3AgaW4gb3B0aW9ucykge1xuICAgICAgICBvcHRzW3Byb3BdID0gb3B0aW9uc1twcm9wXTtcbiAgICAgIH1cbiAgICAgIG9wdHMuc3RhcnQgPSBvZmZzZXQ7XG4gICAgICBvcHRzLmVuZCA9IE1hdGgubWF4KG9mZnNldCwgb2Zmc2V0ICsgbGVuIC0gMSk7XG4gICAgICByZXMuc2V0SGVhZGVyKFwiQ29udGVudC1MZW5ndGhcIiwgbGVuKTtcbiAgICAgIGlmIChyZXEubWV0aG9kID09PSBcIkhFQURcIikge1xuICAgICAgICByZXMuZW5kKCk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHRoaXMuc3RyZWFtKHBhdGgyLCBvcHRzKTtcbiAgICB9O1xuICAgIFNlbmRTdHJlYW0ucHJvdG90eXBlLnNlbmRGaWxlID0gZnVuY3Rpb24gc2VuZEZpbGUocGF0aDIpIHtcbiAgICAgIHZhciBpID0gMDtcbiAgICAgIHZhciBzZWxmMiA9IHRoaXM7XG4gICAgICBkZWJ1Zygnc3RhdCBcIiVzXCInLCBwYXRoMik7XG4gICAgICBmcy5zdGF0KHBhdGgyLCBmdW5jdGlvbiBvbnN0YXQoZXJyMiwgc3RhdCkge1xuICAgICAgICB2YXIgcGF0aEVuZHNXaXRoU2VwID0gcGF0aDJbcGF0aDIubGVuZ3RoIC0gMV0gPT09IHNlcDtcbiAgICAgICAgaWYgKGVycjIgJiYgZXJyMi5jb2RlID09PSBcIkVOT0VOVFwiICYmICFleHRuYW1lKHBhdGgyKSAmJiAhcGF0aEVuZHNXaXRoU2VwKSB7XG4gICAgICAgICAgcmV0dXJuIG5leHQoZXJyMik7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGVycjIpIHJldHVybiBzZWxmMi5vblN0YXRFcnJvcihlcnIyKTtcbiAgICAgICAgaWYgKHN0YXQuaXNEaXJlY3RvcnkoKSkgcmV0dXJuIHNlbGYyLnJlZGlyZWN0KHBhdGgyKTtcbiAgICAgICAgaWYgKHBhdGhFbmRzV2l0aFNlcCkgcmV0dXJuIHNlbGYyLmVycm9yKDQwNCk7XG4gICAgICAgIHNlbGYyLmVtaXQoXCJmaWxlXCIsIHBhdGgyLCBzdGF0KTtcbiAgICAgICAgc2VsZjIuc2VuZChwYXRoMiwgc3RhdCk7XG4gICAgICB9KTtcbiAgICAgIGZ1bmN0aW9uIG5leHQoZXJyMikge1xuICAgICAgICBpZiAoc2VsZjIuX2V4dGVuc2lvbnMubGVuZ3RoIDw9IGkpIHtcbiAgICAgICAgICByZXR1cm4gZXJyMiA/IHNlbGYyLm9uU3RhdEVycm9yKGVycjIpIDogc2VsZjIuZXJyb3IoNDA0KTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgcCA9IHBhdGgyICsgXCIuXCIgKyBzZWxmMi5fZXh0ZW5zaW9uc1tpKytdO1xuICAgICAgICBkZWJ1Zygnc3RhdCBcIiVzXCInLCBwKTtcbiAgICAgICAgZnMuc3RhdChwLCBmdW5jdGlvbihlcnIzLCBzdGF0KSB7XG4gICAgICAgICAgaWYgKGVycjMpIHJldHVybiBuZXh0KGVycjMpO1xuICAgICAgICAgIGlmIChzdGF0LmlzRGlyZWN0b3J5KCkpIHJldHVybiBuZXh0KCk7XG4gICAgICAgICAgc2VsZjIuZW1pdChcImZpbGVcIiwgcCwgc3RhdCk7XG4gICAgICAgICAgc2VsZjIuc2VuZChwLCBzdGF0KTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfTtcbiAgICBTZW5kU3RyZWFtLnByb3RvdHlwZS5zZW5kSW5kZXggPSBmdW5jdGlvbiBzZW5kSW5kZXgocGF0aDIpIHtcbiAgICAgIHZhciBpID0gLTE7XG4gICAgICB2YXIgc2VsZjIgPSB0aGlzO1xuICAgICAgZnVuY3Rpb24gbmV4dChlcnIyKSB7XG4gICAgICAgIGlmICgrK2kgPj0gc2VsZjIuX2luZGV4Lmxlbmd0aCkge1xuICAgICAgICAgIGlmIChlcnIyKSByZXR1cm4gc2VsZjIub25TdGF0RXJyb3IoZXJyMik7XG4gICAgICAgICAgcmV0dXJuIHNlbGYyLmVycm9yKDQwNCk7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIHAgPSBqb2luKHBhdGgyLCBzZWxmMi5faW5kZXhbaV0pO1xuICAgICAgICBkZWJ1Zygnc3RhdCBcIiVzXCInLCBwKTtcbiAgICAgICAgZnMuc3RhdChwLCBmdW5jdGlvbihlcnIzLCBzdGF0KSB7XG4gICAgICAgICAgaWYgKGVycjMpIHJldHVybiBuZXh0KGVycjMpO1xuICAgICAgICAgIGlmIChzdGF0LmlzRGlyZWN0b3J5KCkpIHJldHVybiBuZXh0KCk7XG4gICAgICAgICAgc2VsZjIuZW1pdChcImZpbGVcIiwgcCwgc3RhdCk7XG4gICAgICAgICAgc2VsZjIuc2VuZChwLCBzdGF0KTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICBuZXh0KCk7XG4gICAgfTtcbiAgICBTZW5kU3RyZWFtLnByb3RvdHlwZS5zdHJlYW0gPSBmdW5jdGlvbiBzdHJlYW0ocGF0aDIsIG9wdGlvbnMpIHtcbiAgICAgIHZhciBzZWxmMiA9IHRoaXM7XG4gICAgICB2YXIgcmVzID0gdGhpcy5yZXM7XG4gICAgICB2YXIgc3RyZWFtMiA9IGZzLmNyZWF0ZVJlYWRTdHJlYW0ocGF0aDIsIG9wdGlvbnMpO1xuICAgICAgdGhpcy5lbWl0KFwic3RyZWFtXCIsIHN0cmVhbTIpO1xuICAgICAgc3RyZWFtMi5waXBlKHJlcyk7XG4gICAgICBmdW5jdGlvbiBjbGVhbnVwKCkge1xuICAgICAgICBzdHJlYW0yLmRlc3Ryb3koKTtcbiAgICAgIH1cbiAgICAgIG9uRmluaXNoZWQocmVzLCBjbGVhbnVwKTtcbiAgICAgIHN0cmVhbTIub24oXCJlcnJvclwiLCBmdW5jdGlvbiBvbmVycm9yKGVycjIpIHtcbiAgICAgICAgY2xlYW51cCgpO1xuICAgICAgICBzZWxmMi5vblN0YXRFcnJvcihlcnIyKTtcbiAgICAgIH0pO1xuICAgICAgc3RyZWFtMi5vbihcImVuZFwiLCBmdW5jdGlvbiBvbmVuZCgpIHtcbiAgICAgICAgc2VsZjIuZW1pdChcImVuZFwiKTtcbiAgICAgIH0pO1xuICAgIH07XG4gICAgU2VuZFN0cmVhbS5wcm90b3R5cGUudHlwZSA9IGZ1bmN0aW9uIHR5cGUocGF0aDIpIHtcbiAgICAgIHZhciByZXMgPSB0aGlzLnJlcztcbiAgICAgIGlmIChyZXMuZ2V0SGVhZGVyKFwiQ29udGVudC1UeXBlXCIpKSByZXR1cm47XG4gICAgICB2YXIgZXh0ID0gZXh0bmFtZShwYXRoMik7XG4gICAgICB2YXIgdHlwZTIgPSBtaW1lLmNvbnRlbnRUeXBlKGV4dCkgfHwgXCJhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW1cIjtcbiAgICAgIGRlYnVnKFwiY29udGVudC10eXBlICVzXCIsIHR5cGUyKTtcbiAgICAgIHJlcy5zZXRIZWFkZXIoXCJDb250ZW50LVR5cGVcIiwgdHlwZTIpO1xuICAgIH07XG4gICAgU2VuZFN0cmVhbS5wcm90b3R5cGUuc2V0SGVhZGVyID0gZnVuY3Rpb24gc2V0SGVhZGVyKHBhdGgyLCBzdGF0KSB7XG4gICAgICB2YXIgcmVzID0gdGhpcy5yZXM7XG4gICAgICB0aGlzLmVtaXQoXCJoZWFkZXJzXCIsIHJlcywgcGF0aDIsIHN0YXQpO1xuICAgICAgaWYgKHRoaXMuX2FjY2VwdFJhbmdlcyAmJiAhcmVzLmdldEhlYWRlcihcIkFjY2VwdC1SYW5nZXNcIikpIHtcbiAgICAgICAgZGVidWcoXCJhY2NlcHQgcmFuZ2VzXCIpO1xuICAgICAgICByZXMuc2V0SGVhZGVyKFwiQWNjZXB0LVJhbmdlc1wiLCBcImJ5dGVzXCIpO1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMuX2NhY2hlQ29udHJvbCAmJiAhcmVzLmdldEhlYWRlcihcIkNhY2hlLUNvbnRyb2xcIikpIHtcbiAgICAgICAgdmFyIGNhY2hlQ29udHJvbCA9IFwicHVibGljLCBtYXgtYWdlPVwiICsgTWF0aC5mbG9vcih0aGlzLl9tYXhhZ2UgLyAxZTMpO1xuICAgICAgICBpZiAodGhpcy5faW1tdXRhYmxlKSB7XG4gICAgICAgICAgY2FjaGVDb250cm9sICs9IFwiLCBpbW11dGFibGVcIjtcbiAgICAgICAgfVxuICAgICAgICBkZWJ1ZyhcImNhY2hlLWNvbnRyb2wgJXNcIiwgY2FjaGVDb250cm9sKTtcbiAgICAgICAgcmVzLnNldEhlYWRlcihcIkNhY2hlLUNvbnRyb2xcIiwgY2FjaGVDb250cm9sKTtcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLl9sYXN0TW9kaWZpZWQgJiYgIXJlcy5nZXRIZWFkZXIoXCJMYXN0LU1vZGlmaWVkXCIpKSB7XG4gICAgICAgIHZhciBtb2RpZmllZCA9IHN0YXQubXRpbWUudG9VVENTdHJpbmcoKTtcbiAgICAgICAgZGVidWcoXCJtb2RpZmllZCAlc1wiLCBtb2RpZmllZCk7XG4gICAgICAgIHJlcy5zZXRIZWFkZXIoXCJMYXN0LU1vZGlmaWVkXCIsIG1vZGlmaWVkKTtcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLl9ldGFnICYmICFyZXMuZ2V0SGVhZGVyKFwiRVRhZ1wiKSkge1xuICAgICAgICB2YXIgdmFsID0gZXRhZyhzdGF0KTtcbiAgICAgICAgZGVidWcoXCJldGFnICVzXCIsIHZhbCk7XG4gICAgICAgIHJlcy5zZXRIZWFkZXIoXCJFVGFnXCIsIHZhbCk7XG4gICAgICB9XG4gICAgfTtcbiAgICBmdW5jdGlvbiBjbGVhckhlYWRlcnMocmVzKSB7XG4gICAgICBmb3IgKGNvbnN0IGhlYWRlciBvZiByZXMuZ2V0SGVhZGVyTmFtZXMoKSkge1xuICAgICAgICByZXMucmVtb3ZlSGVhZGVyKGhlYWRlcik7XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIGNvbGxhcHNlTGVhZGluZ1NsYXNoZXMoc3RyKSB7XG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHN0ci5sZW5ndGg7IGkrKykge1xuICAgICAgICBpZiAoc3RyW2ldICE9PSBcIi9cIikge1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gaSA+IDEgPyBcIi9cIiArIHN0ci5zdWJzdHIoaSkgOiBzdHI7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGNvbnRhaW5zRG90RmlsZShwYXJ0cykge1xuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBwYXJ0cy5sZW5ndGg7IGkrKykge1xuICAgICAgICB2YXIgcGFydCA9IHBhcnRzW2ldO1xuICAgICAgICBpZiAocGFydC5sZW5ndGggPiAxICYmIHBhcnRbMF0gPT09IFwiLlwiKSB7XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgZnVuY3Rpb24gY29udGVudFJhbmdlKHR5cGUsIHNpemUsIHJhbmdlKSB7XG4gICAgICByZXR1cm4gdHlwZSArIFwiIFwiICsgKHJhbmdlID8gcmFuZ2Uuc3RhcnQgKyBcIi1cIiArIHJhbmdlLmVuZCA6IFwiKlwiKSArIFwiL1wiICsgc2l6ZTtcbiAgICB9XG4gICAgZnVuY3Rpb24gY3JlYXRlSHRtbERvY3VtZW50KHRpdGxlLCBib2R5KSB7XG4gICAgICByZXR1cm4gJzwhRE9DVFlQRSBodG1sPlxcbjxodG1sIGxhbmc9XCJlblwiPlxcbjxoZWFkPlxcbjxtZXRhIGNoYXJzZXQ9XCJ1dGYtOFwiPlxcbjx0aXRsZT4nICsgdGl0bGUgKyBcIjwvdGl0bGU+XFxuPC9oZWFkPlxcbjxib2R5PlxcbjxwcmU+XCIgKyBib2R5ICsgXCI8L3ByZT5cXG48L2JvZHk+XFxuPC9odG1sPlxcblwiO1xuICAgIH1cbiAgICBmdW5jdGlvbiBjcmVhdGVIdHRwRXJyb3Ioc3RhdHVzLCBlcnIyKSB7XG4gICAgICBpZiAoIWVycjIpIHtcbiAgICAgICAgcmV0dXJuIGNyZWF0ZUVycm9yKHN0YXR1cyk7XG4gICAgICB9XG4gICAgICByZXR1cm4gZXJyMiBpbnN0YW5jZW9mIEVycm9yID8gY3JlYXRlRXJyb3Ioc3RhdHVzLCBlcnIyLCB7IGV4cG9zZTogZmFsc2UgfSkgOiBjcmVhdGVFcnJvcihzdGF0dXMsIGVycjIpO1xuICAgIH1cbiAgICBmdW5jdGlvbiBkZWNvZGUocGF0aDIpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHJldHVybiBkZWNvZGVVUklDb21wb25lbnQocGF0aDIpO1xuICAgICAgfSBjYXRjaCAoZXJyMikge1xuICAgICAgICByZXR1cm4gLTE7XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIGhhc0xpc3RlbmVycyhlbWl0dGVyLCB0eXBlKSB7XG4gICAgICB2YXIgY291bnQgPSB0eXBlb2YgZW1pdHRlci5saXN0ZW5lckNvdW50ICE9PSBcImZ1bmN0aW9uXCIgPyBlbWl0dGVyLmxpc3RlbmVycyh0eXBlKS5sZW5ndGggOiBlbWl0dGVyLmxpc3RlbmVyQ291bnQodHlwZSk7XG4gICAgICByZXR1cm4gY291bnQgPiAwO1xuICAgIH1cbiAgICBmdW5jdGlvbiBub3JtYWxpemVMaXN0KHZhbCwgbmFtZSkge1xuICAgICAgdmFyIGxpc3QgPSBbXS5jb25jYXQodmFsIHx8IFtdKTtcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGlzdC5sZW5ndGg7IGkrKykge1xuICAgICAgICBpZiAodHlwZW9mIGxpc3RbaV0gIT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKG5hbWUgKyBcIiBtdXN0IGJlIGFycmF5IG9mIHN0cmluZ3Mgb3IgZmFsc2VcIik7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBsaXN0O1xuICAgIH1cbiAgICBmdW5jdGlvbiBwYXJzZUh0dHBEYXRlKGRhdGUpIHtcbiAgICAgIHZhciB0aW1lc3RhbXAgPSBkYXRlICYmIERhdGUucGFyc2UoZGF0ZSk7XG4gICAgICByZXR1cm4gdHlwZW9mIHRpbWVzdGFtcCA9PT0gXCJudW1iZXJcIiA/IHRpbWVzdGFtcCA6IE5hTjtcbiAgICB9XG4gICAgZnVuY3Rpb24gcGFyc2VUb2tlbkxpc3Qoc3RyKSB7XG4gICAgICB2YXIgZW5kID0gMDtcbiAgICAgIHZhciBsaXN0ID0gW107XG4gICAgICB2YXIgc3RhcnQgPSAwO1xuICAgICAgZm9yICh2YXIgaSA9IDAsIGxlbiA9IHN0ci5sZW5ndGg7IGkgPCBsZW47IGkrKykge1xuICAgICAgICBzd2l0Y2ggKHN0ci5jaGFyQ29kZUF0KGkpKSB7XG4gICAgICAgICAgY2FzZSAzMjpcbiAgICAgICAgICAgIGlmIChzdGFydCA9PT0gZW5kKSB7XG4gICAgICAgICAgICAgIHN0YXJ0ID0gZW5kID0gaSArIDE7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIDQ0OlxuICAgICAgICAgICAgaWYgKHN0YXJ0ICE9PSBlbmQpIHtcbiAgICAgICAgICAgICAgbGlzdC5wdXNoKHN0ci5zdWJzdHJpbmcoc3RhcnQsIGVuZCkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgc3RhcnQgPSBlbmQgPSBpICsgMTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICBlbmQgPSBpICsgMTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoc3RhcnQgIT09IGVuZCkge1xuICAgICAgICBsaXN0LnB1c2goc3RyLnN1YnN0cmluZyhzdGFydCwgZW5kKSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gbGlzdDtcbiAgICB9XG4gICAgZnVuY3Rpb24gc2V0SGVhZGVycyhyZXMsIGhlYWRlcnMpIHtcbiAgICAgIHZhciBrZXlzID0gT2JqZWN0LmtleXMoaGVhZGVycyk7XG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGtleXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgdmFyIGtleSA9IGtleXNbaV07XG4gICAgICAgIHJlcy5zZXRIZWFkZXIoa2V5LCBoZWFkZXJzW2tleV0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy92YXJ5L2luZGV4LmpzXG52YXIgcmVxdWlyZV92YXJ5ID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL3ZhcnkvaW5kZXguanNcIihleHBvcnRzMiwgbW9kdWxlMikge1xuICAgIFwidXNlIHN0cmljdFwiO1xuICAgIG1vZHVsZTIuZXhwb3J0cyA9IHZhcnk7XG4gICAgbW9kdWxlMi5leHBvcnRzLmFwcGVuZCA9IGFwcGVuZDtcbiAgICB2YXIgRklFTERfTkFNRV9SRUdFWFAgPSAvXlshIyQlJicqK1xcLS5eX2B8fjAtOUEtWmEtel0rJC87XG4gICAgZnVuY3Rpb24gYXBwZW5kKGhlYWRlciwgZmllbGQpIHtcbiAgICAgIGlmICh0eXBlb2YgaGVhZGVyICE9PSBcInN0cmluZ1wiKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJoZWFkZXIgYXJndW1lbnQgaXMgcmVxdWlyZWRcIik7XG4gICAgICB9XG4gICAgICBpZiAoIWZpZWxkKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJmaWVsZCBhcmd1bWVudCBpcyByZXF1aXJlZFwiKTtcbiAgICAgIH1cbiAgICAgIHZhciBmaWVsZHMgPSAhQXJyYXkuaXNBcnJheShmaWVsZCkgPyBwYXJzZShTdHJpbmcoZmllbGQpKSA6IGZpZWxkO1xuICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBmaWVsZHMubGVuZ3RoOyBqKyspIHtcbiAgICAgICAgaWYgKCFGSUVMRF9OQU1FX1JFR0VYUC50ZXN0KGZpZWxkc1tqXSkpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiZmllbGQgYXJndW1lbnQgY29udGFpbnMgYW4gaW52YWxpZCBoZWFkZXIgbmFtZVwiKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKGhlYWRlciA9PT0gXCIqXCIpIHtcbiAgICAgICAgcmV0dXJuIGhlYWRlcjtcbiAgICAgIH1cbiAgICAgIHZhciB2YWwgPSBoZWFkZXI7XG4gICAgICB2YXIgdmFscyA9IHBhcnNlKGhlYWRlci50b0xvd2VyQ2FzZSgpKTtcbiAgICAgIGlmIChmaWVsZHMuaW5kZXhPZihcIipcIikgIT09IC0xIHx8IHZhbHMuaW5kZXhPZihcIipcIikgIT09IC0xKSB7XG4gICAgICAgIHJldHVybiBcIipcIjtcbiAgICAgIH1cbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZmllbGRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIHZhciBmbGQgPSBmaWVsZHNbaV0udG9Mb3dlckNhc2UoKTtcbiAgICAgICAgaWYgKHZhbHMuaW5kZXhPZihmbGQpID09PSAtMSkge1xuICAgICAgICAgIHZhbHMucHVzaChmbGQpO1xuICAgICAgICAgIHZhbCA9IHZhbCA/IHZhbCArIFwiLCBcIiArIGZpZWxkc1tpXSA6IGZpZWxkc1tpXTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIHZhbDtcbiAgICB9XG4gICAgZnVuY3Rpb24gcGFyc2UoaGVhZGVyKSB7XG4gICAgICB2YXIgZW5kID0gMDtcbiAgICAgIHZhciBsaXN0ID0gW107XG4gICAgICB2YXIgc3RhcnQgPSAwO1xuICAgICAgZm9yICh2YXIgaSA9IDAsIGxlbiA9IGhlYWRlci5sZW5ndGg7IGkgPCBsZW47IGkrKykge1xuICAgICAgICBzd2l0Y2ggKGhlYWRlci5jaGFyQ29kZUF0KGkpKSB7XG4gICAgICAgICAgY2FzZSAzMjpcbiAgICAgICAgICAgIGlmIChzdGFydCA9PT0gZW5kKSB7XG4gICAgICAgICAgICAgIHN0YXJ0ID0gZW5kID0gaSArIDE7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIDQ0OlxuICAgICAgICAgICAgbGlzdC5wdXNoKGhlYWRlci5zdWJzdHJpbmcoc3RhcnQsIGVuZCkpO1xuICAgICAgICAgICAgc3RhcnQgPSBlbmQgPSBpICsgMTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICBlbmQgPSBpICsgMTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBsaXN0LnB1c2goaGVhZGVyLnN1YnN0cmluZyhzdGFydCwgZW5kKSk7XG4gICAgICByZXR1cm4gbGlzdDtcbiAgICB9XG4gICAgZnVuY3Rpb24gdmFyeShyZXMsIGZpZWxkKSB7XG4gICAgICBpZiAoIXJlcyB8fCAhcmVzLmdldEhlYWRlciB8fCAhcmVzLnNldEhlYWRlcikge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwicmVzIGFyZ3VtZW50IGlzIHJlcXVpcmVkXCIpO1xuICAgICAgfVxuICAgICAgdmFyIHZhbCA9IHJlcy5nZXRIZWFkZXIoXCJWYXJ5XCIpIHx8IFwiXCI7XG4gICAgICB2YXIgaGVhZGVyID0gQXJyYXkuaXNBcnJheSh2YWwpID8gdmFsLmpvaW4oXCIsIFwiKSA6IFN0cmluZyh2YWwpO1xuICAgICAgaWYgKHZhbCA9IGFwcGVuZChoZWFkZXIsIGZpZWxkKSkge1xuICAgICAgICByZXMuc2V0SGVhZGVyKFwiVmFyeVwiLCB2YWwpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9leHByZXNzL2xpYi9yZXNwb25zZS5qc1xudmFyIHJlcXVpcmVfcmVzcG9uc2UgPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvZXhwcmVzcy9saWIvcmVzcG9uc2UuanNcIihleHBvcnRzMiwgbW9kdWxlMikge1xuICAgIFwidXNlIHN0cmljdFwiO1xuICAgIHZhciBjb250ZW50RGlzcG9zaXRpb24gPSByZXF1aXJlX2NvbnRlbnRfZGlzcG9zaXRpb24oKTtcbiAgICB2YXIgY3JlYXRlRXJyb3IgPSByZXF1aXJlX2h0dHBfZXJyb3JzKCk7XG4gICAgdmFyIGVuY29kZVVybCA9IHJlcXVpcmVfZW5jb2RldXJsKCk7XG4gICAgdmFyIGVzY2FwZUh0bWwgPSByZXF1aXJlX2VzY2FwZV9odG1sKCk7XG4gICAgdmFyIGh0dHAgPSByZXF1aXJlKFwibm9kZTpodHRwXCIpO1xuICAgIHZhciBvbkZpbmlzaGVkID0gcmVxdWlyZV9vbl9maW5pc2hlZCgpO1xuICAgIHZhciBtaW1lID0gcmVxdWlyZV9taW1lX3R5cGVzMigpO1xuICAgIHZhciBwYXRoID0gcmVxdWlyZShcIm5vZGU6cGF0aFwiKTtcbiAgICB2YXIgcGF0aElzQWJzb2x1dGUgPSByZXF1aXJlKFwibm9kZTpwYXRoXCIpLmlzQWJzb2x1dGU7XG4gICAgdmFyIHN0YXR1c2VzID0gcmVxdWlyZV9zdGF0dXNlcygpO1xuICAgIHZhciBzaWduID0gcmVxdWlyZV9jb29raWVfc2lnbmF0dXJlKCkuc2lnbjtcbiAgICB2YXIgbm9ybWFsaXplVHlwZSA9IHJlcXVpcmVfdXRpbHMzKCkubm9ybWFsaXplVHlwZTtcbiAgICB2YXIgbm9ybWFsaXplVHlwZXMgPSByZXF1aXJlX3V0aWxzMygpLm5vcm1hbGl6ZVR5cGVzO1xuICAgIHZhciBzZXRDaGFyc2V0ID0gcmVxdWlyZV91dGlsczMoKS5zZXRDaGFyc2V0O1xuICAgIHZhciBjb29raWUgPSByZXF1aXJlX2Nvb2tpZSgpO1xuICAgIHZhciBzZW5kID0gcmVxdWlyZV9zZW5kKCk7XG4gICAgdmFyIGV4dG5hbWUgPSBwYXRoLmV4dG5hbWU7XG4gICAgdmFyIHJlc29sdmUgPSBwYXRoLnJlc29sdmU7XG4gICAgdmFyIHZhcnkgPSByZXF1aXJlX3ZhcnkoKTtcbiAgICB2YXIgcmVzID0gT2JqZWN0LmNyZWF0ZShodHRwLlNlcnZlclJlc3BvbnNlLnByb3RvdHlwZSk7XG4gICAgbW9kdWxlMi5leHBvcnRzID0gcmVzO1xuICAgIHJlcy5zdGF0dXMgPSBmdW5jdGlvbiBzdGF0dXMoY29kZSkge1xuICAgICAgaWYgKCFOdW1iZXIuaXNJbnRlZ2VyKGNvZGUpKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoYEludmFsaWQgc3RhdHVzIGNvZGU6ICR7SlNPTi5zdHJpbmdpZnkoY29kZSl9LiBTdGF0dXMgY29kZSBtdXN0IGJlIGFuIGludGVnZXIuYCk7XG4gICAgICB9XG4gICAgICBpZiAoY29kZSA8IDEwMCB8fCBjb2RlID4gOTk5KSB7XG4gICAgICAgIHRocm93IG5ldyBSYW5nZUVycm9yKGBJbnZhbGlkIHN0YXR1cyBjb2RlOiAke0pTT04uc3RyaW5naWZ5KGNvZGUpfS4gU3RhdHVzIGNvZGUgbXVzdCBiZSBncmVhdGVyIHRoYW4gOTkgYW5kIGxlc3MgdGhhbiAxMDAwLmApO1xuICAgICAgfVxuICAgICAgdGhpcy5zdGF0dXNDb2RlID0gY29kZTtcbiAgICAgIHJldHVybiB0aGlzO1xuICAgIH07XG4gICAgcmVzLmxpbmtzID0gZnVuY3Rpb24obGlua3MpIHtcbiAgICAgIHZhciBsaW5rID0gdGhpcy5nZXQoXCJMaW5rXCIpIHx8IFwiXCI7XG4gICAgICBpZiAobGluaykgbGluayArPSBcIiwgXCI7XG4gICAgICByZXR1cm4gdGhpcy5zZXQoXCJMaW5rXCIsIGxpbmsgKyBPYmplY3Qua2V5cyhsaW5rcykubWFwKGZ1bmN0aW9uKHJlbCkge1xuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShsaW5rc1tyZWxdKSkge1xuICAgICAgICAgIHJldHVybiBsaW5rc1tyZWxdLm1hcChmdW5jdGlvbihzaW5nbGVMaW5rKSB7XG4gICAgICAgICAgICByZXR1cm4gYDwke3NpbmdsZUxpbmt9PjsgcmVsPVwiJHtyZWx9XCJgO1xuICAgICAgICAgIH0pLmpvaW4oXCIsIFwiKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gYDwke2xpbmtzW3JlbF19PjsgcmVsPVwiJHtyZWx9XCJgO1xuICAgICAgICB9XG4gICAgICB9KS5qb2luKFwiLCBcIikpO1xuICAgIH07XG4gICAgcmVzLnNlbmQgPSBmdW5jdGlvbiBzZW5kMihib2R5KSB7XG4gICAgICB2YXIgY2h1bmsgPSBib2R5O1xuICAgICAgdmFyIGVuY29kaW5nO1xuICAgICAgdmFyIHJlcSA9IHRoaXMucmVxO1xuICAgICAgdmFyIHR5cGU7XG4gICAgICB2YXIgYXBwID0gdGhpcy5hcHA7XG4gICAgICBzd2l0Y2ggKHR5cGVvZiBjaHVuaykge1xuICAgICAgICAvLyBzdHJpbmcgZGVmYXVsdGluZyB0byBodG1sXG4gICAgICAgIGNhc2UgXCJzdHJpbmdcIjpcbiAgICAgICAgICBpZiAoIXRoaXMuZ2V0KFwiQ29udGVudC1UeXBlXCIpKSB7XG4gICAgICAgICAgICB0aGlzLnR5cGUoXCJodG1sXCIpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBcImJvb2xlYW5cIjpcbiAgICAgICAgY2FzZSBcIm51bWJlclwiOlxuICAgICAgICBjYXNlIFwib2JqZWN0XCI6XG4gICAgICAgICAgaWYgKGNodW5rID09PSBudWxsKSB7XG4gICAgICAgICAgICBjaHVuayA9IFwiXCI7XG4gICAgICAgICAgfSBlbHNlIGlmIChBcnJheUJ1ZmZlci5pc1ZpZXcoY2h1bmspKSB7XG4gICAgICAgICAgICBpZiAoIXRoaXMuZ2V0KFwiQ29udGVudC1UeXBlXCIpKSB7XG4gICAgICAgICAgICAgIHRoaXMudHlwZShcImJpblwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuanNvbihjaHVuayk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgaWYgKHR5cGVvZiBjaHVuayA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICBlbmNvZGluZyA9IFwidXRmOFwiO1xuICAgICAgICB0eXBlID0gdGhpcy5nZXQoXCJDb250ZW50LVR5cGVcIik7XG4gICAgICAgIGlmICh0eXBlb2YgdHlwZSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgIHRoaXMuc2V0KFwiQ29udGVudC1UeXBlXCIsIHNldENoYXJzZXQodHlwZSwgXCJ1dGYtOFwiKSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHZhciBldGFnRm4gPSBhcHAuZ2V0KFwiZXRhZyBmblwiKTtcbiAgICAgIHZhciBnZW5lcmF0ZUVUYWcgPSAhdGhpcy5nZXQoXCJFVGFnXCIpICYmIHR5cGVvZiBldGFnRm4gPT09IFwiZnVuY3Rpb25cIjtcbiAgICAgIHZhciBsZW47XG4gICAgICBpZiAoY2h1bmsgIT09IHZvaWQgMCkge1xuICAgICAgICBpZiAoQnVmZmVyLmlzQnVmZmVyKGNodW5rKSkge1xuICAgICAgICAgIGxlbiA9IGNodW5rLmxlbmd0aDtcbiAgICAgICAgfSBlbHNlIGlmICghZ2VuZXJhdGVFVGFnICYmIGNodW5rLmxlbmd0aCA8IDFlMykge1xuICAgICAgICAgIGxlbiA9IEJ1ZmZlci5ieXRlTGVuZ3RoKGNodW5rLCBlbmNvZGluZyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY2h1bmsgPSBCdWZmZXIuZnJvbShjaHVuaywgZW5jb2RpbmcpO1xuICAgICAgICAgIGVuY29kaW5nID0gdm9pZCAwO1xuICAgICAgICAgIGxlbiA9IGNodW5rLmxlbmd0aDtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnNldChcIkNvbnRlbnQtTGVuZ3RoXCIsIGxlbik7XG4gICAgICB9XG4gICAgICB2YXIgZXRhZztcbiAgICAgIGlmIChnZW5lcmF0ZUVUYWcgJiYgbGVuICE9PSB2b2lkIDApIHtcbiAgICAgICAgaWYgKGV0YWcgPSBldGFnRm4oY2h1bmssIGVuY29kaW5nKSkge1xuICAgICAgICAgIHRoaXMuc2V0KFwiRVRhZ1wiLCBldGFnKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKHJlcS5mcmVzaCkgdGhpcy5zdGF0dXMoMzA0KTtcbiAgICAgIGlmICgyMDQgPT09IHRoaXMuc3RhdHVzQ29kZSB8fCAzMDQgPT09IHRoaXMuc3RhdHVzQ29kZSkge1xuICAgICAgICB0aGlzLnJlbW92ZUhlYWRlcihcIkNvbnRlbnQtVHlwZVwiKTtcbiAgICAgICAgdGhpcy5yZW1vdmVIZWFkZXIoXCJDb250ZW50LUxlbmd0aFwiKTtcbiAgICAgICAgdGhpcy5yZW1vdmVIZWFkZXIoXCJUcmFuc2Zlci1FbmNvZGluZ1wiKTtcbiAgICAgICAgY2h1bmsgPSBcIlwiO1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMuc3RhdHVzQ29kZSA9PT0gMjA1KSB7XG4gICAgICAgIHRoaXMuc2V0KFwiQ29udGVudC1MZW5ndGhcIiwgXCIwXCIpO1xuICAgICAgICB0aGlzLnJlbW92ZUhlYWRlcihcIlRyYW5zZmVyLUVuY29kaW5nXCIpO1xuICAgICAgICBjaHVuayA9IFwiXCI7XG4gICAgICB9XG4gICAgICBpZiAocmVxLm1ldGhvZCA9PT0gXCJIRUFEXCIpIHtcbiAgICAgICAgdGhpcy5lbmQoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuZW5kKGNodW5rLCBlbmNvZGluZyk7XG4gICAgICB9XG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9O1xuICAgIHJlcy5qc29uID0gZnVuY3Rpb24ganNvbihvYmopIHtcbiAgICAgIHZhciBhcHAgPSB0aGlzLmFwcDtcbiAgICAgIHZhciBlc2NhcGUyID0gYXBwLmdldChcImpzb24gZXNjYXBlXCIpO1xuICAgICAgdmFyIHJlcGxhY2VyID0gYXBwLmdldChcImpzb24gcmVwbGFjZXJcIik7XG4gICAgICB2YXIgc3BhY2VzID0gYXBwLmdldChcImpzb24gc3BhY2VzXCIpO1xuICAgICAgdmFyIGJvZHkgPSBzdHJpbmdpZnkob2JqLCByZXBsYWNlciwgc3BhY2VzLCBlc2NhcGUyKTtcbiAgICAgIGlmICghdGhpcy5nZXQoXCJDb250ZW50LVR5cGVcIikpIHtcbiAgICAgICAgdGhpcy5zZXQoXCJDb250ZW50LVR5cGVcIiwgXCJhcHBsaWNhdGlvbi9qc29uXCIpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRoaXMuc2VuZChib2R5KTtcbiAgICB9O1xuICAgIHJlcy5qc29ucCA9IGZ1bmN0aW9uIGpzb25wKG9iaikge1xuICAgICAgdmFyIGFwcCA9IHRoaXMuYXBwO1xuICAgICAgdmFyIGVzY2FwZTIgPSBhcHAuZ2V0KFwianNvbiBlc2NhcGVcIik7XG4gICAgICB2YXIgcmVwbGFjZXIgPSBhcHAuZ2V0KFwianNvbiByZXBsYWNlclwiKTtcbiAgICAgIHZhciBzcGFjZXMgPSBhcHAuZ2V0KFwianNvbiBzcGFjZXNcIik7XG4gICAgICB2YXIgYm9keSA9IHN0cmluZ2lmeShvYmosIHJlcGxhY2VyLCBzcGFjZXMsIGVzY2FwZTIpO1xuICAgICAgdmFyIGNhbGxiYWNrID0gdGhpcy5yZXEucXVlcnlbYXBwLmdldChcImpzb25wIGNhbGxiYWNrIG5hbWVcIildO1xuICAgICAgaWYgKCF0aGlzLmdldChcIkNvbnRlbnQtVHlwZVwiKSkge1xuICAgICAgICB0aGlzLnNldChcIlgtQ29udGVudC1UeXBlLU9wdGlvbnNcIiwgXCJub3NuaWZmXCIpO1xuICAgICAgICB0aGlzLnNldChcIkNvbnRlbnQtVHlwZVwiLCBcImFwcGxpY2F0aW9uL2pzb25cIik7XG4gICAgICB9XG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShjYWxsYmFjaykpIHtcbiAgICAgICAgY2FsbGJhY2sgPSBjYWxsYmFja1swXTtcbiAgICAgIH1cbiAgICAgIGlmICh0eXBlb2YgY2FsbGJhY2sgPT09IFwic3RyaW5nXCIgJiYgY2FsbGJhY2subGVuZ3RoICE9PSAwKSB7XG4gICAgICAgIHRoaXMuc2V0KFwiWC1Db250ZW50LVR5cGUtT3B0aW9uc1wiLCBcIm5vc25pZmZcIik7XG4gICAgICAgIHRoaXMuc2V0KFwiQ29udGVudC1UeXBlXCIsIFwidGV4dC9qYXZhc2NyaXB0XCIpO1xuICAgICAgICBjYWxsYmFjayA9IGNhbGxiYWNrLnJlcGxhY2UoL1teXFxbXFxdXFx3JC5dL2csIFwiXCIpO1xuICAgICAgICBpZiAoYm9keSA9PT0gdm9pZCAwKSB7XG4gICAgICAgICAgYm9keSA9IFwiXCI7XG4gICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIGJvZHkgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICBib2R5ID0gYm9keS5yZXBsYWNlKC9cXHUyMDI4L2csIFwiXFxcXHUyMDI4XCIpLnJlcGxhY2UoL1xcdTIwMjkvZywgXCJcXFxcdTIwMjlcIik7XG4gICAgICAgIH1cbiAgICAgICAgYm9keSA9IFwiLyoqLyB0eXBlb2YgXCIgKyBjYWxsYmFjayArIFwiID09PSAnZnVuY3Rpb24nICYmIFwiICsgY2FsbGJhY2sgKyBcIihcIiArIGJvZHkgKyBcIik7XCI7XG4gICAgICB9XG4gICAgICByZXR1cm4gdGhpcy5zZW5kKGJvZHkpO1xuICAgIH07XG4gICAgcmVzLnNlbmRTdGF0dXMgPSBmdW5jdGlvbiBzZW5kU3RhdHVzKHN0YXR1c0NvZGUpIHtcbiAgICAgIHZhciBib2R5ID0gc3RhdHVzZXMubWVzc2FnZVtzdGF0dXNDb2RlXSB8fCBTdHJpbmcoc3RhdHVzQ29kZSk7XG4gICAgICB0aGlzLnN0YXR1cyhzdGF0dXNDb2RlKTtcbiAgICAgIHRoaXMudHlwZShcInR4dFwiKTtcbiAgICAgIHJldHVybiB0aGlzLnNlbmQoYm9keSk7XG4gICAgfTtcbiAgICByZXMuc2VuZEZpbGUgPSBmdW5jdGlvbiBzZW5kRmlsZShwYXRoMiwgb3B0aW9ucywgY2FsbGJhY2spIHtcbiAgICAgIHZhciBkb25lID0gY2FsbGJhY2s7XG4gICAgICB2YXIgcmVxID0gdGhpcy5yZXE7XG4gICAgICB2YXIgcmVzMiA9IHRoaXM7XG4gICAgICB2YXIgbmV4dCA9IHJlcS5uZXh0O1xuICAgICAgdmFyIG9wdHMgPSBvcHRpb25zIHx8IHt9O1xuICAgICAgaWYgKCFwYXRoMikge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwicGF0aCBhcmd1bWVudCBpcyByZXF1aXJlZCB0byByZXMuc2VuZEZpbGVcIik7XG4gICAgICB9XG4gICAgICBpZiAodHlwZW9mIHBhdGgyICE9PSBcInN0cmluZ1wiKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJwYXRoIG11c3QgYmUgYSBzdHJpbmcgdG8gcmVzLnNlbmRGaWxlXCIpO1xuICAgICAgfVxuICAgICAgaWYgKHR5cGVvZiBvcHRpb25zID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgZG9uZSA9IG9wdGlvbnM7XG4gICAgICAgIG9wdHMgPSB7fTtcbiAgICAgIH1cbiAgICAgIGlmICghb3B0cy5yb290ICYmICFwYXRoSXNBYnNvbHV0ZShwYXRoMikpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcInBhdGggbXVzdCBiZSBhYnNvbHV0ZSBvciBzcGVjaWZ5IHJvb3QgdG8gcmVzLnNlbmRGaWxlXCIpO1xuICAgICAgfVxuICAgICAgdmFyIHBhdGhuYW1lID0gZW5jb2RlVVJJKHBhdGgyKTtcbiAgICAgIG9wdHMuZXRhZyA9IHRoaXMuYXBwLmVuYWJsZWQoXCJldGFnXCIpO1xuICAgICAgdmFyIGZpbGUgPSBzZW5kKHJlcSwgcGF0aG5hbWUsIG9wdHMpO1xuICAgICAgc2VuZGZpbGUocmVzMiwgZmlsZSwgb3B0cywgZnVuY3Rpb24oZXJyMikge1xuICAgICAgICBpZiAoZG9uZSkgcmV0dXJuIGRvbmUoZXJyMik7XG4gICAgICAgIGlmIChlcnIyICYmIGVycjIuY29kZSA9PT0gXCJFSVNESVJcIikgcmV0dXJuIG5leHQoKTtcbiAgICAgICAgaWYgKGVycjIgJiYgZXJyMi5jb2RlICE9PSBcIkVDT05OQUJPUlRFRFwiICYmIGVycjIuc3lzY2FsbCAhPT0gXCJ3cml0ZVwiKSB7XG4gICAgICAgICAgbmV4dChlcnIyKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfTtcbiAgICByZXMuZG93bmxvYWQgPSBmdW5jdGlvbiBkb3dubG9hZChwYXRoMiwgZmlsZW5hbWUsIG9wdGlvbnMsIGNhbGxiYWNrKSB7XG4gICAgICB2YXIgZG9uZSA9IGNhbGxiYWNrO1xuICAgICAgdmFyIG5hbWUgPSBmaWxlbmFtZTtcbiAgICAgIHZhciBvcHRzID0gb3B0aW9ucyB8fCBudWxsO1xuICAgICAgaWYgKHR5cGVvZiBmaWxlbmFtZSA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgIGRvbmUgPSBmaWxlbmFtZTtcbiAgICAgICAgbmFtZSA9IG51bGw7XG4gICAgICAgIG9wdHMgPSBudWxsO1xuICAgICAgfSBlbHNlIGlmICh0eXBlb2Ygb3B0aW9ucyA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgIGRvbmUgPSBvcHRpb25zO1xuICAgICAgICBvcHRzID0gbnVsbDtcbiAgICAgIH1cbiAgICAgIGlmICh0eXBlb2YgZmlsZW5hbWUgPT09IFwib2JqZWN0XCIgJiYgKHR5cGVvZiBvcHRpb25zID09PSBcImZ1bmN0aW9uXCIgfHwgb3B0aW9ucyA9PT0gdm9pZCAwKSkge1xuICAgICAgICBuYW1lID0gbnVsbDtcbiAgICAgICAgb3B0cyA9IGZpbGVuYW1lO1xuICAgICAgfVxuICAgICAgdmFyIGhlYWRlcnMgPSB7XG4gICAgICAgIFwiQ29udGVudC1EaXNwb3NpdGlvblwiOiBjb250ZW50RGlzcG9zaXRpb24obmFtZSB8fCBwYXRoMilcbiAgICAgIH07XG4gICAgICBpZiAob3B0cyAmJiBvcHRzLmhlYWRlcnMpIHtcbiAgICAgICAgdmFyIGtleXMgPSBPYmplY3Qua2V5cyhvcHRzLmhlYWRlcnMpO1xuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGtleXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICB2YXIga2V5ID0ga2V5c1tpXTtcbiAgICAgICAgICBpZiAoa2V5LnRvTG93ZXJDYXNlKCkgIT09IFwiY29udGVudC1kaXNwb3NpdGlvblwiKSB7XG4gICAgICAgICAgICBoZWFkZXJzW2tleV0gPSBvcHRzLmhlYWRlcnNba2V5XTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIG9wdHMgPSBPYmplY3QuY3JlYXRlKG9wdHMpO1xuICAgICAgb3B0cy5oZWFkZXJzID0gaGVhZGVycztcbiAgICAgIHZhciBmdWxsUGF0aCA9ICFvcHRzLnJvb3QgPyByZXNvbHZlKHBhdGgyKSA6IHBhdGgyO1xuICAgICAgcmV0dXJuIHRoaXMuc2VuZEZpbGUoZnVsbFBhdGgsIG9wdHMsIGRvbmUpO1xuICAgIH07XG4gICAgcmVzLmNvbnRlbnRUeXBlID0gcmVzLnR5cGUgPSBmdW5jdGlvbiBjb250ZW50VHlwZTIodHlwZSkge1xuICAgICAgdmFyIGN0ID0gdHlwZS5pbmRleE9mKFwiL1wiKSA9PT0gLTEgPyBtaW1lLmNvbnRlbnRUeXBlKHR5cGUpIHx8IFwiYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtXCIgOiB0eXBlO1xuICAgICAgcmV0dXJuIHRoaXMuc2V0KFwiQ29udGVudC1UeXBlXCIsIGN0KTtcbiAgICB9O1xuICAgIHJlcy5mb3JtYXQgPSBmdW5jdGlvbihvYmopIHtcbiAgICAgIHZhciByZXEgPSB0aGlzLnJlcTtcbiAgICAgIHZhciBuZXh0ID0gcmVxLm5leHQ7XG4gICAgICB2YXIga2V5cyA9IE9iamVjdC5rZXlzKG9iaikuZmlsdGVyKGZ1bmN0aW9uKHYpIHtcbiAgICAgICAgcmV0dXJuIHYgIT09IFwiZGVmYXVsdFwiO1xuICAgICAgfSk7XG4gICAgICB2YXIga2V5ID0ga2V5cy5sZW5ndGggPiAwID8gcmVxLmFjY2VwdHMoa2V5cykgOiBmYWxzZTtcbiAgICAgIHRoaXMudmFyeShcIkFjY2VwdFwiKTtcbiAgICAgIGlmIChrZXkpIHtcbiAgICAgICAgdGhpcy5zZXQoXCJDb250ZW50LVR5cGVcIiwgbm9ybWFsaXplVHlwZShrZXkpLnZhbHVlKTtcbiAgICAgICAgb2JqW2tleV0ocmVxLCB0aGlzLCBuZXh0KTtcbiAgICAgIH0gZWxzZSBpZiAob2JqLmRlZmF1bHQpIHtcbiAgICAgICAgb2JqLmRlZmF1bHQocmVxLCB0aGlzLCBuZXh0KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG5leHQoY3JlYXRlRXJyb3IoNDA2LCB7XG4gICAgICAgICAgdHlwZXM6IG5vcm1hbGl6ZVR5cGVzKGtleXMpLm1hcChmdW5jdGlvbihvKSB7XG4gICAgICAgICAgICByZXR1cm4gby52YWx1ZTtcbiAgICAgICAgICB9KVxuICAgICAgICB9KSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9O1xuICAgIHJlcy5hdHRhY2htZW50ID0gZnVuY3Rpb24gYXR0YWNobWVudChmaWxlbmFtZSkge1xuICAgICAgaWYgKGZpbGVuYW1lKSB7XG4gICAgICAgIHRoaXMudHlwZShleHRuYW1lKGZpbGVuYW1lKSk7XG4gICAgICB9XG4gICAgICB0aGlzLnNldChcIkNvbnRlbnQtRGlzcG9zaXRpb25cIiwgY29udGVudERpc3Bvc2l0aW9uKGZpbGVuYW1lKSk7XG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9O1xuICAgIHJlcy5hcHBlbmQgPSBmdW5jdGlvbiBhcHBlbmQoZmllbGQsIHZhbCkge1xuICAgICAgdmFyIHByZXYgPSB0aGlzLmdldChmaWVsZCk7XG4gICAgICB2YXIgdmFsdWUgPSB2YWw7XG4gICAgICBpZiAocHJldikge1xuICAgICAgICB2YWx1ZSA9IEFycmF5LmlzQXJyYXkocHJldikgPyBwcmV2LmNvbmNhdCh2YWwpIDogQXJyYXkuaXNBcnJheSh2YWwpID8gW3ByZXZdLmNvbmNhdCh2YWwpIDogW3ByZXYsIHZhbF07XG4gICAgICB9XG4gICAgICByZXR1cm4gdGhpcy5zZXQoZmllbGQsIHZhbHVlKTtcbiAgICB9O1xuICAgIHJlcy5zZXQgPSByZXMuaGVhZGVyID0gZnVuY3Rpb24gaGVhZGVyKGZpZWxkLCB2YWwpIHtcbiAgICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAyKSB7XG4gICAgICAgIHZhciB2YWx1ZSA9IEFycmF5LmlzQXJyYXkodmFsKSA/IHZhbC5tYXAoU3RyaW5nKSA6IFN0cmluZyh2YWwpO1xuICAgICAgICBpZiAoZmllbGQudG9Mb3dlckNhc2UoKSA9PT0gXCJjb250ZW50LXR5cGVcIikge1xuICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNvbnRlbnQtVHlwZSBjYW5ub3QgYmUgc2V0IHRvIGFuIEFycmF5XCIpO1xuICAgICAgICAgIH1cbiAgICAgICAgICB2YWx1ZSA9IG1pbWUuY29udGVudFR5cGUodmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc2V0SGVhZGVyKGZpZWxkLCB2YWx1ZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBmb3IgKHZhciBrZXkgaW4gZmllbGQpIHtcbiAgICAgICAgICB0aGlzLnNldChrZXksIGZpZWxkW2tleV0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9O1xuICAgIHJlcy5nZXQgPSBmdW5jdGlvbihmaWVsZCkge1xuICAgICAgcmV0dXJuIHRoaXMuZ2V0SGVhZGVyKGZpZWxkKTtcbiAgICB9O1xuICAgIHJlcy5jbGVhckNvb2tpZSA9IGZ1bmN0aW9uIGNsZWFyQ29va2llKG5hbWUsIG9wdGlvbnMpIHtcbiAgICAgIGNvbnN0IG9wdHMgPSB7IHBhdGg6IFwiL1wiLCAuLi5vcHRpb25zLCBleHBpcmVzOiAvKiBAX19QVVJFX18gKi8gbmV3IERhdGUoMSkgfTtcbiAgICAgIGRlbGV0ZSBvcHRzLm1heEFnZTtcbiAgICAgIHJldHVybiB0aGlzLmNvb2tpZShuYW1lLCBcIlwiLCBvcHRzKTtcbiAgICB9O1xuICAgIHJlcy5jb29raWUgPSBmdW5jdGlvbihuYW1lLCB2YWx1ZSwgb3B0aW9ucykge1xuICAgICAgdmFyIG9wdHMgPSB7IC4uLm9wdGlvbnMgfTtcbiAgICAgIHZhciBzZWNyZXQgPSB0aGlzLnJlcS5zZWNyZXQ7XG4gICAgICB2YXIgc2lnbmVkID0gb3B0cy5zaWduZWQ7XG4gICAgICBpZiAoc2lnbmVkICYmICFzZWNyZXQpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdjb29raWVQYXJzZXIoXCJzZWNyZXRcIikgcmVxdWlyZWQgZm9yIHNpZ25lZCBjb29raWVzJyk7XG4gICAgICB9XG4gICAgICB2YXIgdmFsID0gdHlwZW9mIHZhbHVlID09PSBcIm9iamVjdFwiID8gXCJqOlwiICsgSlNPTi5zdHJpbmdpZnkodmFsdWUpIDogU3RyaW5nKHZhbHVlKTtcbiAgICAgIGlmIChzaWduZWQpIHtcbiAgICAgICAgdmFsID0gXCJzOlwiICsgc2lnbih2YWwsIHNlY3JldCk7XG4gICAgICB9XG4gICAgICBpZiAob3B0cy5tYXhBZ2UgIT0gbnVsbCkge1xuICAgICAgICB2YXIgbWF4QWdlID0gb3B0cy5tYXhBZ2UgLSAwO1xuICAgICAgICBpZiAoIWlzTmFOKG1heEFnZSkpIHtcbiAgICAgICAgICBvcHRzLmV4cGlyZXMgPSBuZXcgRGF0ZShEYXRlLm5vdygpICsgbWF4QWdlKTtcbiAgICAgICAgICBvcHRzLm1heEFnZSA9IE1hdGguZmxvb3IobWF4QWdlIC8gMWUzKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKG9wdHMucGF0aCA9PSBudWxsKSB7XG4gICAgICAgIG9wdHMucGF0aCA9IFwiL1wiO1xuICAgICAgfVxuICAgICAgdGhpcy5hcHBlbmQoXCJTZXQtQ29va2llXCIsIGNvb2tpZS5zZXJpYWxpemUobmFtZSwgU3RyaW5nKHZhbCksIG9wdHMpKTtcbiAgICAgIHJldHVybiB0aGlzO1xuICAgIH07XG4gICAgcmVzLmxvY2F0aW9uID0gZnVuY3Rpb24gbG9jYXRpb24odXJsKSB7XG4gICAgICByZXR1cm4gdGhpcy5zZXQoXCJMb2NhdGlvblwiLCBlbmNvZGVVcmwodXJsKSk7XG4gICAgfTtcbiAgICByZXMucmVkaXJlY3QgPSBmdW5jdGlvbiByZWRpcmVjdCh1cmwpIHtcbiAgICAgIHZhciBhZGRyZXNzID0gdXJsO1xuICAgICAgdmFyIGJvZHk7XG4gICAgICB2YXIgc3RhdHVzID0gMzAyO1xuICAgICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDIpIHtcbiAgICAgICAgc3RhdHVzID0gYXJndW1lbnRzWzBdO1xuICAgICAgICBhZGRyZXNzID0gYXJndW1lbnRzWzFdO1xuICAgICAgfVxuICAgICAgYWRkcmVzcyA9IHRoaXMubG9jYXRpb24oYWRkcmVzcykuZ2V0KFwiTG9jYXRpb25cIik7XG4gICAgICB0aGlzLmZvcm1hdCh7XG4gICAgICAgIHRleHQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICAgIGJvZHkgPSBzdGF0dXNlcy5tZXNzYWdlW3N0YXR1c10gKyBcIi4gUmVkaXJlY3RpbmcgdG8gXCIgKyBhZGRyZXNzO1xuICAgICAgICB9LFxuICAgICAgICBodG1sOiBmdW5jdGlvbigpIHtcbiAgICAgICAgICB2YXIgdSA9IGVzY2FwZUh0bWwoYWRkcmVzcyk7XG4gICAgICAgICAgYm9keSA9IFwiPHA+XCIgKyBzdGF0dXNlcy5tZXNzYWdlW3N0YXR1c10gKyBcIi4gUmVkaXJlY3RpbmcgdG8gXCIgKyB1ICsgXCI8L3A+XCI7XG4gICAgICAgIH0sXG4gICAgICAgIGRlZmF1bHQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICAgIGJvZHkgPSBcIlwiO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIHRoaXMuc3RhdHVzKHN0YXR1cyk7XG4gICAgICB0aGlzLnNldChcIkNvbnRlbnQtTGVuZ3RoXCIsIEJ1ZmZlci5ieXRlTGVuZ3RoKGJvZHkpKTtcbiAgICAgIGlmICh0aGlzLnJlcS5tZXRob2QgPT09IFwiSEVBRFwiKSB7XG4gICAgICAgIHRoaXMuZW5kKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmVuZChib2R5KTtcbiAgICAgIH1cbiAgICB9O1xuICAgIHJlcy52YXJ5ID0gZnVuY3Rpb24oZmllbGQpIHtcbiAgICAgIHZhcnkodGhpcywgZmllbGQpO1xuICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfTtcbiAgICByZXMucmVuZGVyID0gZnVuY3Rpb24gcmVuZGVyKHZpZXcsIG9wdGlvbnMsIGNhbGxiYWNrKSB7XG4gICAgICB2YXIgYXBwID0gdGhpcy5yZXEuYXBwO1xuICAgICAgdmFyIGRvbmUgPSBjYWxsYmFjaztcbiAgICAgIHZhciBvcHRzID0gb3B0aW9ucyB8fCB7fTtcbiAgICAgIHZhciByZXEgPSB0aGlzLnJlcTtcbiAgICAgIHZhciBzZWxmMiA9IHRoaXM7XG4gICAgICBpZiAodHlwZW9mIG9wdGlvbnMgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICBkb25lID0gb3B0aW9ucztcbiAgICAgICAgb3B0cyA9IHt9O1xuICAgICAgfVxuICAgICAgb3B0cy5fbG9jYWxzID0gc2VsZjIubG9jYWxzO1xuICAgICAgZG9uZSA9IGRvbmUgfHwgZnVuY3Rpb24oZXJyMiwgc3RyKSB7XG4gICAgICAgIGlmIChlcnIyKSByZXR1cm4gcmVxLm5leHQoZXJyMik7XG4gICAgICAgIHNlbGYyLnNlbmQoc3RyKTtcbiAgICAgIH07XG4gICAgICBhcHAucmVuZGVyKHZpZXcsIG9wdHMsIGRvbmUpO1xuICAgIH07XG4gICAgZnVuY3Rpb24gc2VuZGZpbGUocmVzMiwgZmlsZSwgb3B0aW9ucywgY2FsbGJhY2spIHtcbiAgICAgIHZhciBkb25lID0gZmFsc2U7XG4gICAgICB2YXIgc3RyZWFtaW5nO1xuICAgICAgZnVuY3Rpb24gb25hYm9ydGVkKCkge1xuICAgICAgICBpZiAoZG9uZSkgcmV0dXJuO1xuICAgICAgICBkb25lID0gdHJ1ZTtcbiAgICAgICAgdmFyIGVycjIgPSBuZXcgRXJyb3IoXCJSZXF1ZXN0IGFib3J0ZWRcIik7XG4gICAgICAgIGVycjIuY29kZSA9IFwiRUNPTk5BQk9SVEVEXCI7XG4gICAgICAgIGNhbGxiYWNrKGVycjIpO1xuICAgICAgfVxuICAgICAgZnVuY3Rpb24gb25kaXJlY3RvcnkoKSB7XG4gICAgICAgIGlmIChkb25lKSByZXR1cm47XG4gICAgICAgIGRvbmUgPSB0cnVlO1xuICAgICAgICB2YXIgZXJyMiA9IG5ldyBFcnJvcihcIkVJU0RJUiwgcmVhZFwiKTtcbiAgICAgICAgZXJyMi5jb2RlID0gXCJFSVNESVJcIjtcbiAgICAgICAgY2FsbGJhY2soZXJyMik7XG4gICAgICB9XG4gICAgICBmdW5jdGlvbiBvbmVycm9yKGVycjIpIHtcbiAgICAgICAgaWYgKGRvbmUpIHJldHVybjtcbiAgICAgICAgZG9uZSA9IHRydWU7XG4gICAgICAgIGNhbGxiYWNrKGVycjIpO1xuICAgICAgfVxuICAgICAgZnVuY3Rpb24gb25lbmQoKSB7XG4gICAgICAgIGlmIChkb25lKSByZXR1cm47XG4gICAgICAgIGRvbmUgPSB0cnVlO1xuICAgICAgICBjYWxsYmFjaygpO1xuICAgICAgfVxuICAgICAgZnVuY3Rpb24gb25maWxlKCkge1xuICAgICAgICBzdHJlYW1pbmcgPSBmYWxzZTtcbiAgICAgIH1cbiAgICAgIGZ1bmN0aW9uIG9uZmluaXNoKGVycjIpIHtcbiAgICAgICAgaWYgKGVycjIgJiYgZXJyMi5jb2RlID09PSBcIkVDT05OUkVTRVRcIikgcmV0dXJuIG9uYWJvcnRlZCgpO1xuICAgICAgICBpZiAoZXJyMikgcmV0dXJuIG9uZXJyb3IoZXJyMik7XG4gICAgICAgIGlmIChkb25lKSByZXR1cm47XG4gICAgICAgIHNldEltbWVkaWF0ZShmdW5jdGlvbigpIHtcbiAgICAgICAgICBpZiAoc3RyZWFtaW5nICE9PSBmYWxzZSAmJiAhZG9uZSkge1xuICAgICAgICAgICAgb25hYm9ydGVkKCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChkb25lKSByZXR1cm47XG4gICAgICAgICAgZG9uZSA9IHRydWU7XG4gICAgICAgICAgY2FsbGJhY2soKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICBmdW5jdGlvbiBvbnN0cmVhbSgpIHtcbiAgICAgICAgc3RyZWFtaW5nID0gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIGZpbGUub24oXCJkaXJlY3RvcnlcIiwgb25kaXJlY3RvcnkpO1xuICAgICAgZmlsZS5vbihcImVuZFwiLCBvbmVuZCk7XG4gICAgICBmaWxlLm9uKFwiZXJyb3JcIiwgb25lcnJvcik7XG4gICAgICBmaWxlLm9uKFwiZmlsZVwiLCBvbmZpbGUpO1xuICAgICAgZmlsZS5vbihcInN0cmVhbVwiLCBvbnN0cmVhbSk7XG4gICAgICBvbkZpbmlzaGVkKHJlczIsIG9uZmluaXNoKTtcbiAgICAgIGlmIChvcHRpb25zLmhlYWRlcnMpIHtcbiAgICAgICAgZmlsZS5vbihcImhlYWRlcnNcIiwgZnVuY3Rpb24gaGVhZGVycyhyZXMzKSB7XG4gICAgICAgICAgdmFyIG9iaiA9IG9wdGlvbnMuaGVhZGVycztcbiAgICAgICAgICB2YXIga2V5cyA9IE9iamVjdC5rZXlzKG9iaik7XG4gICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBrZXlzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICB2YXIgayA9IGtleXNbaV07XG4gICAgICAgICAgICByZXMzLnNldEhlYWRlcihrLCBvYmpba10pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICBmaWxlLnBpcGUocmVzMik7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHN0cmluZ2lmeSh2YWx1ZSwgcmVwbGFjZXIsIHNwYWNlcywgZXNjYXBlMikge1xuICAgICAgdmFyIGpzb24gPSByZXBsYWNlciB8fCBzcGFjZXMgPyBKU09OLnN0cmluZ2lmeSh2YWx1ZSwgcmVwbGFjZXIsIHNwYWNlcykgOiBKU09OLnN0cmluZ2lmeSh2YWx1ZSk7XG4gICAgICBpZiAoZXNjYXBlMiAmJiB0eXBlb2YganNvbiA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICBqc29uID0ganNvbi5yZXBsYWNlKC9bPD4mXS9nLCBmdW5jdGlvbihjKSB7XG4gICAgICAgICAgc3dpdGNoIChjLmNoYXJDb2RlQXQoMCkpIHtcbiAgICAgICAgICAgIGNhc2UgNjA6XG4gICAgICAgICAgICAgIHJldHVybiBcIlxcXFx1MDAzY1wiO1xuICAgICAgICAgICAgY2FzZSA2MjpcbiAgICAgICAgICAgICAgcmV0dXJuIFwiXFxcXHUwMDNlXCI7XG4gICAgICAgICAgICBjYXNlIDM4OlxuICAgICAgICAgICAgICByZXR1cm4gXCJcXFxcdTAwMjZcIjtcbiAgICAgICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0OiB1bnJlYWNoYWJsZSBkZWZhdWx0ICovXG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICByZXR1cm4gYztcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGpzb247XG4gICAgfVxuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL3NlcnZlLXN0YXRpYy9pbmRleC5qc1xudmFyIHJlcXVpcmVfc2VydmVfc3RhdGljID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL3NlcnZlLXN0YXRpYy9pbmRleC5qc1wiKGV4cG9ydHMyLCBtb2R1bGUyKSB7XG4gICAgXCJ1c2Ugc3RyaWN0XCI7XG4gICAgdmFyIGVuY29kZVVybCA9IHJlcXVpcmVfZW5jb2RldXJsKCk7XG4gICAgdmFyIGVzY2FwZUh0bWwgPSByZXF1aXJlX2VzY2FwZV9odG1sKCk7XG4gICAgdmFyIHBhcnNlVXJsID0gcmVxdWlyZV9wYXJzZXVybCgpO1xuICAgIHZhciByZXNvbHZlID0gcmVxdWlyZShcInBhdGhcIikucmVzb2x2ZTtcbiAgICB2YXIgc2VuZCA9IHJlcXVpcmVfc2VuZCgpO1xuICAgIHZhciB1cmwgPSByZXF1aXJlKFwidXJsXCIpO1xuICAgIG1vZHVsZTIuZXhwb3J0cyA9IHNlcnZlU3RhdGljO1xuICAgIGZ1bmN0aW9uIHNlcnZlU3RhdGljKHJvb3QsIG9wdGlvbnMpIHtcbiAgICAgIGlmICghcm9vdCkge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwicm9vdCBwYXRoIHJlcXVpcmVkXCIpO1xuICAgICAgfVxuICAgICAgaWYgKHR5cGVvZiByb290ICE9PSBcInN0cmluZ1wiKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJyb290IHBhdGggbXVzdCBiZSBhIHN0cmluZ1wiKTtcbiAgICAgIH1cbiAgICAgIHZhciBvcHRzID0gT2JqZWN0LmNyZWF0ZShvcHRpb25zIHx8IG51bGwpO1xuICAgICAgdmFyIGZhbGx0aHJvdWdoID0gb3B0cy5mYWxsdGhyb3VnaCAhPT0gZmFsc2U7XG4gICAgICB2YXIgcmVkaXJlY3QgPSBvcHRzLnJlZGlyZWN0ICE9PSBmYWxzZTtcbiAgICAgIHZhciBzZXRIZWFkZXJzID0gb3B0cy5zZXRIZWFkZXJzO1xuICAgICAgaWYgKHNldEhlYWRlcnMgJiYgdHlwZW9mIHNldEhlYWRlcnMgIT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwib3B0aW9uIHNldEhlYWRlcnMgbXVzdCBiZSBmdW5jdGlvblwiKTtcbiAgICAgIH1cbiAgICAgIG9wdHMubWF4YWdlID0gb3B0cy5tYXhhZ2UgfHwgb3B0cy5tYXhBZ2UgfHwgMDtcbiAgICAgIG9wdHMucm9vdCA9IHJlc29sdmUocm9vdCk7XG4gICAgICB2YXIgb25EaXJlY3RvcnkgPSByZWRpcmVjdCA/IGNyZWF0ZVJlZGlyZWN0RGlyZWN0b3J5TGlzdGVuZXIoKSA6IGNyZWF0ZU5vdEZvdW5kRGlyZWN0b3J5TGlzdGVuZXIoKTtcbiAgICAgIHJldHVybiBmdW5jdGlvbiBzZXJ2ZVN0YXRpYzIocmVxLCByZXMsIG5leHQpIHtcbiAgICAgICAgaWYgKHJlcS5tZXRob2QgIT09IFwiR0VUXCIgJiYgcmVxLm1ldGhvZCAhPT0gXCJIRUFEXCIpIHtcbiAgICAgICAgICBpZiAoZmFsbHRocm91Z2gpIHtcbiAgICAgICAgICAgIHJldHVybiBuZXh0KCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNDA1O1xuICAgICAgICAgIHJlcy5zZXRIZWFkZXIoXCJBbGxvd1wiLCBcIkdFVCwgSEVBRFwiKTtcbiAgICAgICAgICByZXMuc2V0SGVhZGVyKFwiQ29udGVudC1MZW5ndGhcIiwgXCIwXCIpO1xuICAgICAgICAgIHJlcy5lbmQoKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGZvcndhcmRFcnJvciA9ICFmYWxsdGhyb3VnaDtcbiAgICAgICAgdmFyIG9yaWdpbmFsVXJsID0gcGFyc2VVcmwub3JpZ2luYWwocmVxKTtcbiAgICAgICAgdmFyIHBhdGggPSBwYXJzZVVybChyZXEpLnBhdGhuYW1lO1xuICAgICAgICBpZiAocGF0aCA9PT0gXCIvXCIgJiYgb3JpZ2luYWxVcmwucGF0aG5hbWUuc3Vic3RyKC0xKSAhPT0gXCIvXCIpIHtcbiAgICAgICAgICBwYXRoID0gXCJcIjtcbiAgICAgICAgfVxuICAgICAgICB2YXIgc3RyZWFtID0gc2VuZChyZXEsIHBhdGgsIG9wdHMpO1xuICAgICAgICBzdHJlYW0ub24oXCJkaXJlY3RvcnlcIiwgb25EaXJlY3RvcnkpO1xuICAgICAgICBpZiAoc2V0SGVhZGVycykge1xuICAgICAgICAgIHN0cmVhbS5vbihcImhlYWRlcnNcIiwgc2V0SGVhZGVycyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGZhbGx0aHJvdWdoKSB7XG4gICAgICAgICAgc3RyZWFtLm9uKFwiZmlsZVwiLCBmdW5jdGlvbiBvbkZpbGUoKSB7XG4gICAgICAgICAgICBmb3J3YXJkRXJyb3IgPSB0cnVlO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHN0cmVhbS5vbihcImVycm9yXCIsIGZ1bmN0aW9uIGVycm9yKGVycjIpIHtcbiAgICAgICAgICBpZiAoZm9yd2FyZEVycm9yIHx8ICEoZXJyMi5zdGF0dXNDb2RlIDwgNTAwKSkge1xuICAgICAgICAgICAgbmV4dChlcnIyKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG4gICAgICAgICAgbmV4dCgpO1xuICAgICAgICB9KTtcbiAgICAgICAgc3RyZWFtLnBpcGUocmVzKTtcbiAgICAgIH07XG4gICAgfVxuICAgIGZ1bmN0aW9uIGNvbGxhcHNlTGVhZGluZ1NsYXNoZXMoc3RyKSB7XG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHN0ci5sZW5ndGg7IGkrKykge1xuICAgICAgICBpZiAoc3RyLmNoYXJDb2RlQXQoaSkgIT09IDQ3KSB7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBpID4gMSA/IFwiL1wiICsgc3RyLnN1YnN0cihpKSA6IHN0cjtcbiAgICB9XG4gICAgZnVuY3Rpb24gY3JlYXRlSHRtbERvY3VtZW50KHRpdGxlLCBib2R5KSB7XG4gICAgICByZXR1cm4gJzwhRE9DVFlQRSBodG1sPlxcbjxodG1sIGxhbmc9XCJlblwiPlxcbjxoZWFkPlxcbjxtZXRhIGNoYXJzZXQ9XCJ1dGYtOFwiPlxcbjx0aXRsZT4nICsgdGl0bGUgKyBcIjwvdGl0bGU+XFxuPC9oZWFkPlxcbjxib2R5PlxcbjxwcmU+XCIgKyBib2R5ICsgXCI8L3ByZT5cXG48L2JvZHk+XFxuPC9odG1sPlxcblwiO1xuICAgIH1cbiAgICBmdW5jdGlvbiBjcmVhdGVOb3RGb3VuZERpcmVjdG9yeUxpc3RlbmVyKCkge1xuICAgICAgcmV0dXJuIGZ1bmN0aW9uIG5vdEZvdW5kKCkge1xuICAgICAgICB0aGlzLmVycm9yKDQwNCk7XG4gICAgICB9O1xuICAgIH1cbiAgICBmdW5jdGlvbiBjcmVhdGVSZWRpcmVjdERpcmVjdG9yeUxpc3RlbmVyKCkge1xuICAgICAgcmV0dXJuIGZ1bmN0aW9uIHJlZGlyZWN0KHJlcykge1xuICAgICAgICBpZiAodGhpcy5oYXNUcmFpbGluZ1NsYXNoKCkpIHtcbiAgICAgICAgICB0aGlzLmVycm9yKDQwNCk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHZhciBvcmlnaW5hbFVybCA9IHBhcnNlVXJsLm9yaWdpbmFsKHRoaXMucmVxKTtcbiAgICAgICAgb3JpZ2luYWxVcmwucGF0aCA9IG51bGw7XG4gICAgICAgIG9yaWdpbmFsVXJsLnBhdGhuYW1lID0gY29sbGFwc2VMZWFkaW5nU2xhc2hlcyhvcmlnaW5hbFVybC5wYXRobmFtZSArIFwiL1wiKTtcbiAgICAgICAgdmFyIGxvYyA9IGVuY29kZVVybCh1cmwuZm9ybWF0KG9yaWdpbmFsVXJsKSk7XG4gICAgICAgIHZhciBkb2MgPSBjcmVhdGVIdG1sRG9jdW1lbnQoXCJSZWRpcmVjdGluZ1wiLCBcIlJlZGlyZWN0aW5nIHRvIFwiICsgZXNjYXBlSHRtbChsb2MpKTtcbiAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAzMDE7XG4gICAgICAgIHJlcy5zZXRIZWFkZXIoXCJDb250ZW50LVR5cGVcIiwgXCJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLThcIik7XG4gICAgICAgIHJlcy5zZXRIZWFkZXIoXCJDb250ZW50LUxlbmd0aFwiLCBCdWZmZXIuYnl0ZUxlbmd0aChkb2MpKTtcbiAgICAgICAgcmVzLnNldEhlYWRlcihcIkNvbnRlbnQtU2VjdXJpdHktUG9saWN5XCIsIFwiZGVmYXVsdC1zcmMgJ25vbmUnXCIpO1xuICAgICAgICByZXMuc2V0SGVhZGVyKFwiWC1Db250ZW50LVR5cGUtT3B0aW9uc1wiLCBcIm5vc25pZmZcIik7XG4gICAgICAgIHJlcy5zZXRIZWFkZXIoXCJMb2NhdGlvblwiLCBsb2MpO1xuICAgICAgICByZXMuZW5kKGRvYyk7XG4gICAgICB9O1xuICAgIH1cbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9leHByZXNzL2xpYi9leHByZXNzLmpzXG52YXIgcmVxdWlyZV9leHByZXNzID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL2V4cHJlc3MvbGliL2V4cHJlc3MuanNcIihleHBvcnRzMiwgbW9kdWxlMikge1xuICAgIFwidXNlIHN0cmljdFwiO1xuICAgIHZhciBib2R5UGFyc2VyID0gcmVxdWlyZV9ib2R5X3BhcnNlcigpO1xuICAgIHZhciBFdmVudEVtaXR0ZXIgPSByZXF1aXJlKFwibm9kZTpldmVudHNcIikuRXZlbnRFbWl0dGVyO1xuICAgIHZhciBtaXhpbiA9IHJlcXVpcmVfbWVyZ2VfZGVzY3JpcHRvcnMoKTtcbiAgICB2YXIgcHJvdG8gPSByZXF1aXJlX2FwcGxpY2F0aW9uKCk7XG4gICAgdmFyIFJvdXRlciA9IHJlcXVpcmVfcm91dGVyKCk7XG4gICAgdmFyIHJlcSA9IHJlcXVpcmVfcmVxdWVzdCgpO1xuICAgIHZhciByZXMgPSByZXF1aXJlX3Jlc3BvbnNlKCk7XG4gICAgZXhwb3J0czIgPSBtb2R1bGUyLmV4cG9ydHMgPSBjcmVhdGVBcHBsaWNhdGlvbjtcbiAgICBmdW5jdGlvbiBjcmVhdGVBcHBsaWNhdGlvbigpIHtcbiAgICAgIHZhciBhcHAgPSBmdW5jdGlvbihyZXEyLCByZXMyLCBuZXh0KSB7XG4gICAgICAgIGFwcC5oYW5kbGUocmVxMiwgcmVzMiwgbmV4dCk7XG4gICAgICB9O1xuICAgICAgbWl4aW4oYXBwLCBFdmVudEVtaXR0ZXIucHJvdG90eXBlLCBmYWxzZSk7XG4gICAgICBtaXhpbihhcHAsIHByb3RvLCBmYWxzZSk7XG4gICAgICBhcHAucmVxdWVzdCA9IE9iamVjdC5jcmVhdGUocmVxLCB7XG4gICAgICAgIGFwcDogeyBjb25maWd1cmFibGU6IHRydWUsIGVudW1lcmFibGU6IHRydWUsIHdyaXRhYmxlOiB0cnVlLCB2YWx1ZTogYXBwIH1cbiAgICAgIH0pO1xuICAgICAgYXBwLnJlc3BvbnNlID0gT2JqZWN0LmNyZWF0ZShyZXMsIHtcbiAgICAgICAgYXBwOiB7IGNvbmZpZ3VyYWJsZTogdHJ1ZSwgZW51bWVyYWJsZTogdHJ1ZSwgd3JpdGFibGU6IHRydWUsIHZhbHVlOiBhcHAgfVxuICAgICAgfSk7XG4gICAgICBhcHAuaW5pdCgpO1xuICAgICAgcmV0dXJuIGFwcDtcbiAgICB9XG4gICAgZXhwb3J0czIuYXBwbGljYXRpb24gPSBwcm90bztcbiAgICBleHBvcnRzMi5yZXF1ZXN0ID0gcmVxO1xuICAgIGV4cG9ydHMyLnJlc3BvbnNlID0gcmVzO1xuICAgIGV4cG9ydHMyLlJvdXRlID0gUm91dGVyLlJvdXRlO1xuICAgIGV4cG9ydHMyLlJvdXRlciA9IFJvdXRlcjtcbiAgICBleHBvcnRzMi5qc29uID0gYm9keVBhcnNlci5qc29uO1xuICAgIGV4cG9ydHMyLnJhdyA9IGJvZHlQYXJzZXIucmF3O1xuICAgIGV4cG9ydHMyLnN0YXRpYyA9IHJlcXVpcmVfc2VydmVfc3RhdGljKCk7XG4gICAgZXhwb3J0czIudGV4dCA9IGJvZHlQYXJzZXIudGV4dDtcbiAgICBleHBvcnRzMi51cmxlbmNvZGVkID0gYm9keVBhcnNlci51cmxlbmNvZGVkO1xuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL2V4cHJlc3MvaW5kZXguanNcbnZhciByZXF1aXJlX2V4cHJlc3MyID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL2V4cHJlc3MvaW5kZXguanNcIihleHBvcnRzMiwgbW9kdWxlMikge1xuICAgIFwidXNlIHN0cmljdFwiO1xuICAgIG1vZHVsZTIuZXhwb3J0cyA9IHJlcXVpcmVfZXhwcmVzcygpO1xuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL2xvZGFzaC9sb2Rhc2guanNcbnZhciByZXF1aXJlX2xvZGFzaCA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9sb2Rhc2gvbG9kYXNoLmpzXCIoZXhwb3J0czIsIG1vZHVsZTIpIHtcbiAgICAoZnVuY3Rpb24oKSB7XG4gICAgICB2YXIgdW5kZWZpbmVkMjtcbiAgICAgIHZhciBWRVJTSU9OID0gXCI0LjE3LjIxXCI7XG4gICAgICB2YXIgTEFSR0VfQVJSQVlfU0laRSA9IDIwMDtcbiAgICAgIHZhciBDT1JFX0VSUk9SX1RFWFQgPSBcIlVuc3VwcG9ydGVkIGNvcmUtanMgdXNlLiBUcnkgaHR0cHM6Ly9ucG1zLmlvL3NlYXJjaD9xPXBvbnlmaWxsLlwiLCBGVU5DX0VSUk9SX1RFWFQgPSBcIkV4cGVjdGVkIGEgZnVuY3Rpb25cIiwgSU5WQUxJRF9URU1QTF9WQVJfRVJST1JfVEVYVCA9IFwiSW52YWxpZCBgdmFyaWFibGVgIG9wdGlvbiBwYXNzZWQgaW50byBgXy50ZW1wbGF0ZWBcIjtcbiAgICAgIHZhciBIQVNIX1VOREVGSU5FRCA9IFwiX19sb2Rhc2hfaGFzaF91bmRlZmluZWRfX1wiO1xuICAgICAgdmFyIE1BWF9NRU1PSVpFX1NJWkUgPSA1MDA7XG4gICAgICB2YXIgUExBQ0VIT0xERVIgPSBcIl9fbG9kYXNoX3BsYWNlaG9sZGVyX19cIjtcbiAgICAgIHZhciBDTE9ORV9ERUVQX0ZMQUcgPSAxLCBDTE9ORV9GTEFUX0ZMQUcgPSAyLCBDTE9ORV9TWU1CT0xTX0ZMQUcgPSA0O1xuICAgICAgdmFyIENPTVBBUkVfUEFSVElBTF9GTEFHID0gMSwgQ09NUEFSRV9VTk9SREVSRURfRkxBRyA9IDI7XG4gICAgICB2YXIgV1JBUF9CSU5EX0ZMQUcgPSAxLCBXUkFQX0JJTkRfS0VZX0ZMQUcgPSAyLCBXUkFQX0NVUlJZX0JPVU5EX0ZMQUcgPSA0LCBXUkFQX0NVUlJZX0ZMQUcgPSA4LCBXUkFQX0NVUlJZX1JJR0hUX0ZMQUcgPSAxNiwgV1JBUF9QQVJUSUFMX0ZMQUcgPSAzMiwgV1JBUF9QQVJUSUFMX1JJR0hUX0ZMQUcgPSA2NCwgV1JBUF9BUllfRkxBRyA9IDEyOCwgV1JBUF9SRUFSR19GTEFHID0gMjU2LCBXUkFQX0ZMSVBfRkxBRyA9IDUxMjtcbiAgICAgIHZhciBERUZBVUxUX1RSVU5DX0xFTkdUSCA9IDMwLCBERUZBVUxUX1RSVU5DX09NSVNTSU9OID0gXCIuLi5cIjtcbiAgICAgIHZhciBIT1RfQ09VTlQgPSA4MDAsIEhPVF9TUEFOID0gMTY7XG4gICAgICB2YXIgTEFaWV9GSUxURVJfRkxBRyA9IDEsIExBWllfTUFQX0ZMQUcgPSAyLCBMQVpZX1dISUxFX0ZMQUcgPSAzO1xuICAgICAgdmFyIElORklOSVRZID0gMSAvIDAsIE1BWF9TQUZFX0lOVEVHRVIgPSA5MDA3MTk5MjU0NzQwOTkxLCBNQVhfSU5URUdFUiA9IDE3OTc2OTMxMzQ4NjIzMTU3ZTI5MiwgTkFOID0gMCAvIDA7XG4gICAgICB2YXIgTUFYX0FSUkFZX0xFTkdUSCA9IDQyOTQ5NjcyOTUsIE1BWF9BUlJBWV9JTkRFWCA9IE1BWF9BUlJBWV9MRU5HVEggLSAxLCBIQUxGX01BWF9BUlJBWV9MRU5HVEggPSBNQVhfQVJSQVlfTEVOR1RIID4+PiAxO1xuICAgICAgdmFyIHdyYXBGbGFncyA9IFtcbiAgICAgICAgW1wiYXJ5XCIsIFdSQVBfQVJZX0ZMQUddLFxuICAgICAgICBbXCJiaW5kXCIsIFdSQVBfQklORF9GTEFHXSxcbiAgICAgICAgW1wiYmluZEtleVwiLCBXUkFQX0JJTkRfS0VZX0ZMQUddLFxuICAgICAgICBbXCJjdXJyeVwiLCBXUkFQX0NVUlJZX0ZMQUddLFxuICAgICAgICBbXCJjdXJyeVJpZ2h0XCIsIFdSQVBfQ1VSUllfUklHSFRfRkxBR10sXG4gICAgICAgIFtcImZsaXBcIiwgV1JBUF9GTElQX0ZMQUddLFxuICAgICAgICBbXCJwYXJ0aWFsXCIsIFdSQVBfUEFSVElBTF9GTEFHXSxcbiAgICAgICAgW1wicGFydGlhbFJpZ2h0XCIsIFdSQVBfUEFSVElBTF9SSUdIVF9GTEFHXSxcbiAgICAgICAgW1wicmVhcmdcIiwgV1JBUF9SRUFSR19GTEFHXVxuICAgICAgXTtcbiAgICAgIHZhciBhcmdzVGFnID0gXCJbb2JqZWN0IEFyZ3VtZW50c11cIiwgYXJyYXlUYWcgPSBcIltvYmplY3QgQXJyYXldXCIsIGFzeW5jVGFnID0gXCJbb2JqZWN0IEFzeW5jRnVuY3Rpb25dXCIsIGJvb2xUYWcgPSBcIltvYmplY3QgQm9vbGVhbl1cIiwgZGF0ZVRhZyA9IFwiW29iamVjdCBEYXRlXVwiLCBkb21FeGNUYWcgPSBcIltvYmplY3QgRE9NRXhjZXB0aW9uXVwiLCBlcnJvclRhZyA9IFwiW29iamVjdCBFcnJvcl1cIiwgZnVuY1RhZyA9IFwiW29iamVjdCBGdW5jdGlvbl1cIiwgZ2VuVGFnID0gXCJbb2JqZWN0IEdlbmVyYXRvckZ1bmN0aW9uXVwiLCBtYXBUYWcgPSBcIltvYmplY3QgTWFwXVwiLCBudW1iZXJUYWcgPSBcIltvYmplY3QgTnVtYmVyXVwiLCBudWxsVGFnID0gXCJbb2JqZWN0IE51bGxdXCIsIG9iamVjdFRhZyA9IFwiW29iamVjdCBPYmplY3RdXCIsIHByb21pc2VUYWcgPSBcIltvYmplY3QgUHJvbWlzZV1cIiwgcHJveHlUYWcgPSBcIltvYmplY3QgUHJveHldXCIsIHJlZ2V4cFRhZyA9IFwiW29iamVjdCBSZWdFeHBdXCIsIHNldFRhZyA9IFwiW29iamVjdCBTZXRdXCIsIHN0cmluZ1RhZyA9IFwiW29iamVjdCBTdHJpbmddXCIsIHN5bWJvbFRhZyA9IFwiW29iamVjdCBTeW1ib2xdXCIsIHVuZGVmaW5lZFRhZyA9IFwiW29iamVjdCBVbmRlZmluZWRdXCIsIHdlYWtNYXBUYWcgPSBcIltvYmplY3QgV2Vha01hcF1cIiwgd2Vha1NldFRhZyA9IFwiW29iamVjdCBXZWFrU2V0XVwiO1xuICAgICAgdmFyIGFycmF5QnVmZmVyVGFnID0gXCJbb2JqZWN0IEFycmF5QnVmZmVyXVwiLCBkYXRhVmlld1RhZyA9IFwiW29iamVjdCBEYXRhVmlld11cIiwgZmxvYXQzMlRhZyA9IFwiW29iamVjdCBGbG9hdDMyQXJyYXldXCIsIGZsb2F0NjRUYWcgPSBcIltvYmplY3QgRmxvYXQ2NEFycmF5XVwiLCBpbnQ4VGFnID0gXCJbb2JqZWN0IEludDhBcnJheV1cIiwgaW50MTZUYWcgPSBcIltvYmplY3QgSW50MTZBcnJheV1cIiwgaW50MzJUYWcgPSBcIltvYmplY3QgSW50MzJBcnJheV1cIiwgdWludDhUYWcgPSBcIltvYmplY3QgVWludDhBcnJheV1cIiwgdWludDhDbGFtcGVkVGFnID0gXCJbb2JqZWN0IFVpbnQ4Q2xhbXBlZEFycmF5XVwiLCB1aW50MTZUYWcgPSBcIltvYmplY3QgVWludDE2QXJyYXldXCIsIHVpbnQzMlRhZyA9IFwiW29iamVjdCBVaW50MzJBcnJheV1cIjtcbiAgICAgIHZhciByZUVtcHR5U3RyaW5nTGVhZGluZyA9IC9cXGJfX3AgXFwrPSAnJzsvZywgcmVFbXB0eVN0cmluZ01pZGRsZSA9IC9cXGIoX19wIFxcKz0pICcnIFxcKy9nLCByZUVtcHR5U3RyaW5nVHJhaWxpbmcgPSAvKF9fZVxcKC4qP1xcKXxcXGJfX3RcXCkpIFxcK1xcbicnOy9nO1xuICAgICAgdmFyIHJlRXNjYXBlZEh0bWwgPSAvJig/OmFtcHxsdHxndHxxdW90fCMzOSk7L2csIHJlVW5lc2NhcGVkSHRtbCA9IC9bJjw+XCInXS9nLCByZUhhc0VzY2FwZWRIdG1sID0gUmVnRXhwKHJlRXNjYXBlZEh0bWwuc291cmNlKSwgcmVIYXNVbmVzY2FwZWRIdG1sID0gUmVnRXhwKHJlVW5lc2NhcGVkSHRtbC5zb3VyY2UpO1xuICAgICAgdmFyIHJlRXNjYXBlID0gLzwlLShbXFxzXFxTXSs/KSU+L2csIHJlRXZhbHVhdGUgPSAvPCUoW1xcc1xcU10rPyklPi9nLCByZUludGVycG9sYXRlID0gLzwlPShbXFxzXFxTXSs/KSU+L2c7XG4gICAgICB2YXIgcmVJc0RlZXBQcm9wID0gL1xcLnxcXFsoPzpbXltcXF1dKnwoW1wiJ10pKD86KD8hXFwxKVteXFxcXF18XFxcXC4pKj9cXDEpXFxdLywgcmVJc1BsYWluUHJvcCA9IC9eXFx3KiQvLCByZVByb3BOYW1lID0gL1teLltcXF1dK3xcXFsoPzooLT9cXGQrKD86XFwuXFxkKyk/KXwoW1wiJ10pKCg/Oig/IVxcMilbXlxcXFxdfFxcXFwuKSo/KVxcMilcXF18KD89KD86XFwufFxcW1xcXSkoPzpcXC58XFxbXFxdfCQpKS9nO1xuICAgICAgdmFyIHJlUmVnRXhwQ2hhciA9IC9bXFxcXF4kLiorPygpW1xcXXt9fF0vZywgcmVIYXNSZWdFeHBDaGFyID0gUmVnRXhwKHJlUmVnRXhwQ2hhci5zb3VyY2UpO1xuICAgICAgdmFyIHJlVHJpbVN0YXJ0ID0gL15cXHMrLztcbiAgICAgIHZhciByZVdoaXRlc3BhY2UgPSAvXFxzLztcbiAgICAgIHZhciByZVdyYXBDb21tZW50ID0gL1xceyg/OlxcblxcL1xcKiBcXFt3cmFwcGVkIHdpdGggLitcXF0gXFwqXFwvKT9cXG4/LywgcmVXcmFwRGV0YWlscyA9IC9cXHtcXG5cXC9cXCogXFxbd3JhcHBlZCB3aXRoICguKylcXF0gXFwqLywgcmVTcGxpdERldGFpbHMgPSAvLD8gJiAvO1xuICAgICAgdmFyIHJlQXNjaWlXb3JkID0gL1teXFx4MDAtXFx4MmZcXHgzYS1cXHg0MFxceDViLVxceDYwXFx4N2ItXFx4N2ZdKy9nO1xuICAgICAgdmFyIHJlRm9yYmlkZGVuSWRlbnRpZmllckNoYXJzID0gL1soKT0se31cXFtcXF1cXC9cXHNdLztcbiAgICAgIHZhciByZUVzY2FwZUNoYXIgPSAvXFxcXChcXFxcKT8vZztcbiAgICAgIHZhciByZUVzVGVtcGxhdGUgPSAvXFwkXFx7KFteXFxcXH1dKig/OlxcXFwuW15cXFxcfV0qKSopXFx9L2c7XG4gICAgICB2YXIgcmVGbGFncyA9IC9cXHcqJC87XG4gICAgICB2YXIgcmVJc0JhZEhleCA9IC9eWy0rXTB4WzAtOWEtZl0rJC9pO1xuICAgICAgdmFyIHJlSXNCaW5hcnkgPSAvXjBiWzAxXSskL2k7XG4gICAgICB2YXIgcmVJc0hvc3RDdG9yID0gL15cXFtvYmplY3QgLis/Q29uc3RydWN0b3JcXF0kLztcbiAgICAgIHZhciByZUlzT2N0YWwgPSAvXjBvWzAtN10rJC9pO1xuICAgICAgdmFyIHJlSXNVaW50ID0gL14oPzowfFsxLTldXFxkKikkLztcbiAgICAgIHZhciByZUxhdGluID0gL1tcXHhjMC1cXHhkNlxceGQ4LVxceGY2XFx4ZjgtXFx4ZmZcXHUwMTAwLVxcdTAxN2ZdL2c7XG4gICAgICB2YXIgcmVOb01hdGNoID0gLygkXikvO1xuICAgICAgdmFyIHJlVW5lc2NhcGVkU3RyaW5nID0gL1snXFxuXFxyXFx1MjAyOFxcdTIwMjlcXFxcXS9nO1xuICAgICAgdmFyIHJzQXN0cmFsUmFuZ2UgPSBcIlxcXFx1ZDgwMC1cXFxcdWRmZmZcIiwgcnNDb21ib01hcmtzUmFuZ2UgPSBcIlxcXFx1MDMwMC1cXFxcdTAzNmZcIiwgcmVDb21ib0hhbGZNYXJrc1JhbmdlID0gXCJcXFxcdWZlMjAtXFxcXHVmZTJmXCIsIHJzQ29tYm9TeW1ib2xzUmFuZ2UgPSBcIlxcXFx1MjBkMC1cXFxcdTIwZmZcIiwgcnNDb21ib1JhbmdlID0gcnNDb21ib01hcmtzUmFuZ2UgKyByZUNvbWJvSGFsZk1hcmtzUmFuZ2UgKyByc0NvbWJvU3ltYm9sc1JhbmdlLCByc0RpbmdiYXRSYW5nZSA9IFwiXFxcXHUyNzAwLVxcXFx1MjdiZlwiLCByc0xvd2VyUmFuZ2UgPSBcImEtelxcXFx4ZGYtXFxcXHhmNlxcXFx4ZjgtXFxcXHhmZlwiLCByc01hdGhPcFJhbmdlID0gXCJcXFxceGFjXFxcXHhiMVxcXFx4ZDdcXFxceGY3XCIsIHJzTm9uQ2hhclJhbmdlID0gXCJcXFxceDAwLVxcXFx4MmZcXFxceDNhLVxcXFx4NDBcXFxceDViLVxcXFx4NjBcXFxceDdiLVxcXFx4YmZcIiwgcnNQdW5jdHVhdGlvblJhbmdlID0gXCJcXFxcdTIwMDAtXFxcXHUyMDZmXCIsIHJzU3BhY2VSYW5nZSA9IFwiIFxcXFx0XFxcXHgwYlxcXFxmXFxcXHhhMFxcXFx1ZmVmZlxcXFxuXFxcXHJcXFxcdTIwMjhcXFxcdTIwMjlcXFxcdTE2ODBcXFxcdTE4MGVcXFxcdTIwMDBcXFxcdTIwMDFcXFxcdTIwMDJcXFxcdTIwMDNcXFxcdTIwMDRcXFxcdTIwMDVcXFxcdTIwMDZcXFxcdTIwMDdcXFxcdTIwMDhcXFxcdTIwMDlcXFxcdTIwMGFcXFxcdTIwMmZcXFxcdTIwNWZcXFxcdTMwMDBcIiwgcnNVcHBlclJhbmdlID0gXCJBLVpcXFxceGMwLVxcXFx4ZDZcXFxceGQ4LVxcXFx4ZGVcIiwgcnNWYXJSYW5nZSA9IFwiXFxcXHVmZTBlXFxcXHVmZTBmXCIsIHJzQnJlYWtSYW5nZSA9IHJzTWF0aE9wUmFuZ2UgKyByc05vbkNoYXJSYW5nZSArIHJzUHVuY3R1YXRpb25SYW5nZSArIHJzU3BhY2VSYW5nZTtcbiAgICAgIHZhciByc0Fwb3MgPSBcIlsnXFx1MjAxOV1cIiwgcnNBc3RyYWwgPSBcIltcIiArIHJzQXN0cmFsUmFuZ2UgKyBcIl1cIiwgcnNCcmVhayA9IFwiW1wiICsgcnNCcmVha1JhbmdlICsgXCJdXCIsIHJzQ29tYm8gPSBcIltcIiArIHJzQ29tYm9SYW5nZSArIFwiXVwiLCByc0RpZ2l0cyA9IFwiXFxcXGQrXCIsIHJzRGluZ2JhdCA9IFwiW1wiICsgcnNEaW5nYmF0UmFuZ2UgKyBcIl1cIiwgcnNMb3dlciA9IFwiW1wiICsgcnNMb3dlclJhbmdlICsgXCJdXCIsIHJzTWlzYyA9IFwiW15cIiArIHJzQXN0cmFsUmFuZ2UgKyByc0JyZWFrUmFuZ2UgKyByc0RpZ2l0cyArIHJzRGluZ2JhdFJhbmdlICsgcnNMb3dlclJhbmdlICsgcnNVcHBlclJhbmdlICsgXCJdXCIsIHJzRml0eiA9IFwiXFxcXHVkODNjW1xcXFx1ZGZmYi1cXFxcdWRmZmZdXCIsIHJzTW9kaWZpZXIgPSBcIig/OlwiICsgcnNDb21ibyArIFwifFwiICsgcnNGaXR6ICsgXCIpXCIsIHJzTm9uQXN0cmFsID0gXCJbXlwiICsgcnNBc3RyYWxSYW5nZSArIFwiXVwiLCByc1JlZ2lvbmFsID0gXCIoPzpcXFxcdWQ4M2NbXFxcXHVkZGU2LVxcXFx1ZGRmZl0pezJ9XCIsIHJzU3VyclBhaXIgPSBcIltcXFxcdWQ4MDAtXFxcXHVkYmZmXVtcXFxcdWRjMDAtXFxcXHVkZmZmXVwiLCByc1VwcGVyID0gXCJbXCIgKyByc1VwcGVyUmFuZ2UgKyBcIl1cIiwgcnNaV0ogPSBcIlxcXFx1MjAwZFwiO1xuICAgICAgdmFyIHJzTWlzY0xvd2VyID0gXCIoPzpcIiArIHJzTG93ZXIgKyBcInxcIiArIHJzTWlzYyArIFwiKVwiLCByc01pc2NVcHBlciA9IFwiKD86XCIgKyByc1VwcGVyICsgXCJ8XCIgKyByc01pc2MgKyBcIilcIiwgcnNPcHRDb250ckxvd2VyID0gXCIoPzpcIiArIHJzQXBvcyArIFwiKD86ZHxsbHxtfHJlfHN8dHx2ZSkpP1wiLCByc09wdENvbnRyVXBwZXIgPSBcIig/OlwiICsgcnNBcG9zICsgXCIoPzpEfExMfE18UkV8U3xUfFZFKSk/XCIsIHJlT3B0TW9kID0gcnNNb2RpZmllciArIFwiP1wiLCByc09wdFZhciA9IFwiW1wiICsgcnNWYXJSYW5nZSArIFwiXT9cIiwgcnNPcHRKb2luID0gXCIoPzpcIiArIHJzWldKICsgXCIoPzpcIiArIFtyc05vbkFzdHJhbCwgcnNSZWdpb25hbCwgcnNTdXJyUGFpcl0uam9pbihcInxcIikgKyBcIilcIiArIHJzT3B0VmFyICsgcmVPcHRNb2QgKyBcIikqXCIsIHJzT3JkTG93ZXIgPSBcIlxcXFxkKig/OjFzdHwybmR8M3JkfCg/IVsxMjNdKVxcXFxkdGgpKD89XFxcXGJ8W0EtWl9dKVwiLCByc09yZFVwcGVyID0gXCJcXFxcZCooPzoxU1R8Mk5EfDNSRHwoPyFbMTIzXSlcXFxcZFRIKSg/PVxcXFxifFthLXpfXSlcIiwgcnNTZXEgPSByc09wdFZhciArIHJlT3B0TW9kICsgcnNPcHRKb2luLCByc0Vtb2ppID0gXCIoPzpcIiArIFtyc0RpbmdiYXQsIHJzUmVnaW9uYWwsIHJzU3VyclBhaXJdLmpvaW4oXCJ8XCIpICsgXCIpXCIgKyByc1NlcSwgcnNTeW1ib2wgPSBcIig/OlwiICsgW3JzTm9uQXN0cmFsICsgcnNDb21ibyArIFwiP1wiLCByc0NvbWJvLCByc1JlZ2lvbmFsLCByc1N1cnJQYWlyLCByc0FzdHJhbF0uam9pbihcInxcIikgKyBcIilcIjtcbiAgICAgIHZhciByZUFwb3MgPSBSZWdFeHAocnNBcG9zLCBcImdcIik7XG4gICAgICB2YXIgcmVDb21ib01hcmsgPSBSZWdFeHAocnNDb21ibywgXCJnXCIpO1xuICAgICAgdmFyIHJlVW5pY29kZSA9IFJlZ0V4cChyc0ZpdHogKyBcIig/PVwiICsgcnNGaXR6ICsgXCIpfFwiICsgcnNTeW1ib2wgKyByc1NlcSwgXCJnXCIpO1xuICAgICAgdmFyIHJlVW5pY29kZVdvcmQgPSBSZWdFeHAoW1xuICAgICAgICByc1VwcGVyICsgXCI/XCIgKyByc0xvd2VyICsgXCIrXCIgKyByc09wdENvbnRyTG93ZXIgKyBcIig/PVwiICsgW3JzQnJlYWssIHJzVXBwZXIsIFwiJFwiXS5qb2luKFwifFwiKSArIFwiKVwiLFxuICAgICAgICByc01pc2NVcHBlciArIFwiK1wiICsgcnNPcHRDb250clVwcGVyICsgXCIoPz1cIiArIFtyc0JyZWFrLCByc1VwcGVyICsgcnNNaXNjTG93ZXIsIFwiJFwiXS5qb2luKFwifFwiKSArIFwiKVwiLFxuICAgICAgICByc1VwcGVyICsgXCI/XCIgKyByc01pc2NMb3dlciArIFwiK1wiICsgcnNPcHRDb250ckxvd2VyLFxuICAgICAgICByc1VwcGVyICsgXCIrXCIgKyByc09wdENvbnRyVXBwZXIsXG4gICAgICAgIHJzT3JkVXBwZXIsXG4gICAgICAgIHJzT3JkTG93ZXIsXG4gICAgICAgIHJzRGlnaXRzLFxuICAgICAgICByc0Vtb2ppXG4gICAgICBdLmpvaW4oXCJ8XCIpLCBcImdcIik7XG4gICAgICB2YXIgcmVIYXNVbmljb2RlID0gUmVnRXhwKFwiW1wiICsgcnNaV0ogKyByc0FzdHJhbFJhbmdlICsgcnNDb21ib1JhbmdlICsgcnNWYXJSYW5nZSArIFwiXVwiKTtcbiAgICAgIHZhciByZUhhc1VuaWNvZGVXb3JkID0gL1thLXpdW0EtWl18W0EtWl17Mn1bYS16XXxbMC05XVthLXpBLVpdfFthLXpBLVpdWzAtOV18W15hLXpBLVowLTkgXS87XG4gICAgICB2YXIgY29udGV4dFByb3BzID0gW1xuICAgICAgICBcIkFycmF5XCIsXG4gICAgICAgIFwiQnVmZmVyXCIsXG4gICAgICAgIFwiRGF0YVZpZXdcIixcbiAgICAgICAgXCJEYXRlXCIsXG4gICAgICAgIFwiRXJyb3JcIixcbiAgICAgICAgXCJGbG9hdDMyQXJyYXlcIixcbiAgICAgICAgXCJGbG9hdDY0QXJyYXlcIixcbiAgICAgICAgXCJGdW5jdGlvblwiLFxuICAgICAgICBcIkludDhBcnJheVwiLFxuICAgICAgICBcIkludDE2QXJyYXlcIixcbiAgICAgICAgXCJJbnQzMkFycmF5XCIsXG4gICAgICAgIFwiTWFwXCIsXG4gICAgICAgIFwiTWF0aFwiLFxuICAgICAgICBcIk9iamVjdFwiLFxuICAgICAgICBcIlByb21pc2VcIixcbiAgICAgICAgXCJSZWdFeHBcIixcbiAgICAgICAgXCJTZXRcIixcbiAgICAgICAgXCJTdHJpbmdcIixcbiAgICAgICAgXCJTeW1ib2xcIixcbiAgICAgICAgXCJUeXBlRXJyb3JcIixcbiAgICAgICAgXCJVaW50OEFycmF5XCIsXG4gICAgICAgIFwiVWludDhDbGFtcGVkQXJyYXlcIixcbiAgICAgICAgXCJVaW50MTZBcnJheVwiLFxuICAgICAgICBcIlVpbnQzMkFycmF5XCIsXG4gICAgICAgIFwiV2Vha01hcFwiLFxuICAgICAgICBcIl9cIixcbiAgICAgICAgXCJjbGVhclRpbWVvdXRcIixcbiAgICAgICAgXCJpc0Zpbml0ZVwiLFxuICAgICAgICBcInBhcnNlSW50XCIsXG4gICAgICAgIFwic2V0VGltZW91dFwiXG4gICAgICBdO1xuICAgICAgdmFyIHRlbXBsYXRlQ291bnRlciA9IC0xO1xuICAgICAgdmFyIHR5cGVkQXJyYXlUYWdzID0ge307XG4gICAgICB0eXBlZEFycmF5VGFnc1tmbG9hdDMyVGFnXSA9IHR5cGVkQXJyYXlUYWdzW2Zsb2F0NjRUYWddID0gdHlwZWRBcnJheVRhZ3NbaW50OFRhZ10gPSB0eXBlZEFycmF5VGFnc1tpbnQxNlRhZ10gPSB0eXBlZEFycmF5VGFnc1tpbnQzMlRhZ10gPSB0eXBlZEFycmF5VGFnc1t1aW50OFRhZ10gPSB0eXBlZEFycmF5VGFnc1t1aW50OENsYW1wZWRUYWddID0gdHlwZWRBcnJheVRhZ3NbdWludDE2VGFnXSA9IHR5cGVkQXJyYXlUYWdzW3VpbnQzMlRhZ10gPSB0cnVlO1xuICAgICAgdHlwZWRBcnJheVRhZ3NbYXJnc1RhZ10gPSB0eXBlZEFycmF5VGFnc1thcnJheVRhZ10gPSB0eXBlZEFycmF5VGFnc1thcnJheUJ1ZmZlclRhZ10gPSB0eXBlZEFycmF5VGFnc1tib29sVGFnXSA9IHR5cGVkQXJyYXlUYWdzW2RhdGFWaWV3VGFnXSA9IHR5cGVkQXJyYXlUYWdzW2RhdGVUYWddID0gdHlwZWRBcnJheVRhZ3NbZXJyb3JUYWddID0gdHlwZWRBcnJheVRhZ3NbZnVuY1RhZ10gPSB0eXBlZEFycmF5VGFnc1ttYXBUYWddID0gdHlwZWRBcnJheVRhZ3NbbnVtYmVyVGFnXSA9IHR5cGVkQXJyYXlUYWdzW29iamVjdFRhZ10gPSB0eXBlZEFycmF5VGFnc1tyZWdleHBUYWddID0gdHlwZWRBcnJheVRhZ3Nbc2V0VGFnXSA9IHR5cGVkQXJyYXlUYWdzW3N0cmluZ1RhZ10gPSB0eXBlZEFycmF5VGFnc1t3ZWFrTWFwVGFnXSA9IGZhbHNlO1xuICAgICAgdmFyIGNsb25lYWJsZVRhZ3MgPSB7fTtcbiAgICAgIGNsb25lYWJsZVRhZ3NbYXJnc1RhZ10gPSBjbG9uZWFibGVUYWdzW2FycmF5VGFnXSA9IGNsb25lYWJsZVRhZ3NbYXJyYXlCdWZmZXJUYWddID0gY2xvbmVhYmxlVGFnc1tkYXRhVmlld1RhZ10gPSBjbG9uZWFibGVUYWdzW2Jvb2xUYWddID0gY2xvbmVhYmxlVGFnc1tkYXRlVGFnXSA9IGNsb25lYWJsZVRhZ3NbZmxvYXQzMlRhZ10gPSBjbG9uZWFibGVUYWdzW2Zsb2F0NjRUYWddID0gY2xvbmVhYmxlVGFnc1tpbnQ4VGFnXSA9IGNsb25lYWJsZVRhZ3NbaW50MTZUYWddID0gY2xvbmVhYmxlVGFnc1tpbnQzMlRhZ10gPSBjbG9uZWFibGVUYWdzW21hcFRhZ10gPSBjbG9uZWFibGVUYWdzW251bWJlclRhZ10gPSBjbG9uZWFibGVUYWdzW29iamVjdFRhZ10gPSBjbG9uZWFibGVUYWdzW3JlZ2V4cFRhZ10gPSBjbG9uZWFibGVUYWdzW3NldFRhZ10gPSBjbG9uZWFibGVUYWdzW3N0cmluZ1RhZ10gPSBjbG9uZWFibGVUYWdzW3N5bWJvbFRhZ10gPSBjbG9uZWFibGVUYWdzW3VpbnQ4VGFnXSA9IGNsb25lYWJsZVRhZ3NbdWludDhDbGFtcGVkVGFnXSA9IGNsb25lYWJsZVRhZ3NbdWludDE2VGFnXSA9IGNsb25lYWJsZVRhZ3NbdWludDMyVGFnXSA9IHRydWU7XG4gICAgICBjbG9uZWFibGVUYWdzW2Vycm9yVGFnXSA9IGNsb25lYWJsZVRhZ3NbZnVuY1RhZ10gPSBjbG9uZWFibGVUYWdzW3dlYWtNYXBUYWddID0gZmFsc2U7XG4gICAgICB2YXIgZGVidXJyZWRMZXR0ZXJzID0ge1xuICAgICAgICAvLyBMYXRpbi0xIFN1cHBsZW1lbnQgYmxvY2suXG4gICAgICAgIFwiXFx4QzBcIjogXCJBXCIsXG4gICAgICAgIFwiXFx4QzFcIjogXCJBXCIsXG4gICAgICAgIFwiXFx4QzJcIjogXCJBXCIsXG4gICAgICAgIFwiXFx4QzNcIjogXCJBXCIsXG4gICAgICAgIFwiXFx4QzRcIjogXCJBXCIsXG4gICAgICAgIFwiXFx4QzVcIjogXCJBXCIsXG4gICAgICAgIFwiXFx4RTBcIjogXCJhXCIsXG4gICAgICAgIFwiXFx4RTFcIjogXCJhXCIsXG4gICAgICAgIFwiXFx4RTJcIjogXCJhXCIsXG4gICAgICAgIFwiXFx4RTNcIjogXCJhXCIsXG4gICAgICAgIFwiXFx4RTRcIjogXCJhXCIsXG4gICAgICAgIFwiXFx4RTVcIjogXCJhXCIsXG4gICAgICAgIFwiXFx4QzdcIjogXCJDXCIsXG4gICAgICAgIFwiXFx4RTdcIjogXCJjXCIsXG4gICAgICAgIFwiXFx4RDBcIjogXCJEXCIsXG4gICAgICAgIFwiXFx4RjBcIjogXCJkXCIsXG4gICAgICAgIFwiXFx4QzhcIjogXCJFXCIsXG4gICAgICAgIFwiXFx4QzlcIjogXCJFXCIsXG4gICAgICAgIFwiXFx4Q0FcIjogXCJFXCIsXG4gICAgICAgIFwiXFx4Q0JcIjogXCJFXCIsXG4gICAgICAgIFwiXFx4RThcIjogXCJlXCIsXG4gICAgICAgIFwiXFx4RTlcIjogXCJlXCIsXG4gICAgICAgIFwiXFx4RUFcIjogXCJlXCIsXG4gICAgICAgIFwiXFx4RUJcIjogXCJlXCIsXG4gICAgICAgIFwiXFx4Q0NcIjogXCJJXCIsXG4gICAgICAgIFwiXFx4Q0RcIjogXCJJXCIsXG4gICAgICAgIFwiXFx4Q0VcIjogXCJJXCIsXG4gICAgICAgIFwiXFx4Q0ZcIjogXCJJXCIsXG4gICAgICAgIFwiXFx4RUNcIjogXCJpXCIsXG4gICAgICAgIFwiXFx4RURcIjogXCJpXCIsXG4gICAgICAgIFwiXFx4RUVcIjogXCJpXCIsXG4gICAgICAgIFwiXFx4RUZcIjogXCJpXCIsXG4gICAgICAgIFwiXFx4RDFcIjogXCJOXCIsXG4gICAgICAgIFwiXFx4RjFcIjogXCJuXCIsXG4gICAgICAgIFwiXFx4RDJcIjogXCJPXCIsXG4gICAgICAgIFwiXFx4RDNcIjogXCJPXCIsXG4gICAgICAgIFwiXFx4RDRcIjogXCJPXCIsXG4gICAgICAgIFwiXFx4RDVcIjogXCJPXCIsXG4gICAgICAgIFwiXFx4RDZcIjogXCJPXCIsXG4gICAgICAgIFwiXFx4RDhcIjogXCJPXCIsXG4gICAgICAgIFwiXFx4RjJcIjogXCJvXCIsXG4gICAgICAgIFwiXFx4RjNcIjogXCJvXCIsXG4gICAgICAgIFwiXFx4RjRcIjogXCJvXCIsXG4gICAgICAgIFwiXFx4RjVcIjogXCJvXCIsXG4gICAgICAgIFwiXFx4RjZcIjogXCJvXCIsXG4gICAgICAgIFwiXFx4RjhcIjogXCJvXCIsXG4gICAgICAgIFwiXFx4RDlcIjogXCJVXCIsXG4gICAgICAgIFwiXFx4REFcIjogXCJVXCIsXG4gICAgICAgIFwiXFx4REJcIjogXCJVXCIsXG4gICAgICAgIFwiXFx4RENcIjogXCJVXCIsXG4gICAgICAgIFwiXFx4RjlcIjogXCJ1XCIsXG4gICAgICAgIFwiXFx4RkFcIjogXCJ1XCIsXG4gICAgICAgIFwiXFx4RkJcIjogXCJ1XCIsXG4gICAgICAgIFwiXFx4RkNcIjogXCJ1XCIsXG4gICAgICAgIFwiXFx4RERcIjogXCJZXCIsXG4gICAgICAgIFwiXFx4RkRcIjogXCJ5XCIsXG4gICAgICAgIFwiXFx4RkZcIjogXCJ5XCIsXG4gICAgICAgIFwiXFx4QzZcIjogXCJBZVwiLFxuICAgICAgICBcIlxceEU2XCI6IFwiYWVcIixcbiAgICAgICAgXCJcXHhERVwiOiBcIlRoXCIsXG4gICAgICAgIFwiXFx4RkVcIjogXCJ0aFwiLFxuICAgICAgICBcIlxceERGXCI6IFwic3NcIixcbiAgICAgICAgLy8gTGF0aW4gRXh0ZW5kZWQtQSBibG9jay5cbiAgICAgICAgXCJcXHUwMTAwXCI6IFwiQVwiLFxuICAgICAgICBcIlxcdTAxMDJcIjogXCJBXCIsXG4gICAgICAgIFwiXFx1MDEwNFwiOiBcIkFcIixcbiAgICAgICAgXCJcXHUwMTAxXCI6IFwiYVwiLFxuICAgICAgICBcIlxcdTAxMDNcIjogXCJhXCIsXG4gICAgICAgIFwiXFx1MDEwNVwiOiBcImFcIixcbiAgICAgICAgXCJcXHUwMTA2XCI6IFwiQ1wiLFxuICAgICAgICBcIlxcdTAxMDhcIjogXCJDXCIsXG4gICAgICAgIFwiXFx1MDEwQVwiOiBcIkNcIixcbiAgICAgICAgXCJcXHUwMTBDXCI6IFwiQ1wiLFxuICAgICAgICBcIlxcdTAxMDdcIjogXCJjXCIsXG4gICAgICAgIFwiXFx1MDEwOVwiOiBcImNcIixcbiAgICAgICAgXCJcXHUwMTBCXCI6IFwiY1wiLFxuICAgICAgICBcIlxcdTAxMERcIjogXCJjXCIsXG4gICAgICAgIFwiXFx1MDEwRVwiOiBcIkRcIixcbiAgICAgICAgXCJcXHUwMTEwXCI6IFwiRFwiLFxuICAgICAgICBcIlxcdTAxMEZcIjogXCJkXCIsXG4gICAgICAgIFwiXFx1MDExMVwiOiBcImRcIixcbiAgICAgICAgXCJcXHUwMTEyXCI6IFwiRVwiLFxuICAgICAgICBcIlxcdTAxMTRcIjogXCJFXCIsXG4gICAgICAgIFwiXFx1MDExNlwiOiBcIkVcIixcbiAgICAgICAgXCJcXHUwMTE4XCI6IFwiRVwiLFxuICAgICAgICBcIlxcdTAxMUFcIjogXCJFXCIsXG4gICAgICAgIFwiXFx1MDExM1wiOiBcImVcIixcbiAgICAgICAgXCJcXHUwMTE1XCI6IFwiZVwiLFxuICAgICAgICBcIlxcdTAxMTdcIjogXCJlXCIsXG4gICAgICAgIFwiXFx1MDExOVwiOiBcImVcIixcbiAgICAgICAgXCJcXHUwMTFCXCI6IFwiZVwiLFxuICAgICAgICBcIlxcdTAxMUNcIjogXCJHXCIsXG4gICAgICAgIFwiXFx1MDExRVwiOiBcIkdcIixcbiAgICAgICAgXCJcXHUwMTIwXCI6IFwiR1wiLFxuICAgICAgICBcIlxcdTAxMjJcIjogXCJHXCIsXG4gICAgICAgIFwiXFx1MDExRFwiOiBcImdcIixcbiAgICAgICAgXCJcXHUwMTFGXCI6IFwiZ1wiLFxuICAgICAgICBcIlxcdTAxMjFcIjogXCJnXCIsXG4gICAgICAgIFwiXFx1MDEyM1wiOiBcImdcIixcbiAgICAgICAgXCJcXHUwMTI0XCI6IFwiSFwiLFxuICAgICAgICBcIlxcdTAxMjZcIjogXCJIXCIsXG4gICAgICAgIFwiXFx1MDEyNVwiOiBcImhcIixcbiAgICAgICAgXCJcXHUwMTI3XCI6IFwiaFwiLFxuICAgICAgICBcIlxcdTAxMjhcIjogXCJJXCIsXG4gICAgICAgIFwiXFx1MDEyQVwiOiBcIklcIixcbiAgICAgICAgXCJcXHUwMTJDXCI6IFwiSVwiLFxuICAgICAgICBcIlxcdTAxMkVcIjogXCJJXCIsXG4gICAgICAgIFwiXFx1MDEzMFwiOiBcIklcIixcbiAgICAgICAgXCJcXHUwMTI5XCI6IFwiaVwiLFxuICAgICAgICBcIlxcdTAxMkJcIjogXCJpXCIsXG4gICAgICAgIFwiXFx1MDEyRFwiOiBcImlcIixcbiAgICAgICAgXCJcXHUwMTJGXCI6IFwiaVwiLFxuICAgICAgICBcIlxcdTAxMzFcIjogXCJpXCIsXG4gICAgICAgIFwiXFx1MDEzNFwiOiBcIkpcIixcbiAgICAgICAgXCJcXHUwMTM1XCI6IFwialwiLFxuICAgICAgICBcIlxcdTAxMzZcIjogXCJLXCIsXG4gICAgICAgIFwiXFx1MDEzN1wiOiBcImtcIixcbiAgICAgICAgXCJcXHUwMTM4XCI6IFwia1wiLFxuICAgICAgICBcIlxcdTAxMzlcIjogXCJMXCIsXG4gICAgICAgIFwiXFx1MDEzQlwiOiBcIkxcIixcbiAgICAgICAgXCJcXHUwMTNEXCI6IFwiTFwiLFxuICAgICAgICBcIlxcdTAxM0ZcIjogXCJMXCIsXG4gICAgICAgIFwiXFx1MDE0MVwiOiBcIkxcIixcbiAgICAgICAgXCJcXHUwMTNBXCI6IFwibFwiLFxuICAgICAgICBcIlxcdTAxM0NcIjogXCJsXCIsXG4gICAgICAgIFwiXFx1MDEzRVwiOiBcImxcIixcbiAgICAgICAgXCJcXHUwMTQwXCI6IFwibFwiLFxuICAgICAgICBcIlxcdTAxNDJcIjogXCJsXCIsXG4gICAgICAgIFwiXFx1MDE0M1wiOiBcIk5cIixcbiAgICAgICAgXCJcXHUwMTQ1XCI6IFwiTlwiLFxuICAgICAgICBcIlxcdTAxNDdcIjogXCJOXCIsXG4gICAgICAgIFwiXFx1MDE0QVwiOiBcIk5cIixcbiAgICAgICAgXCJcXHUwMTQ0XCI6IFwiblwiLFxuICAgICAgICBcIlxcdTAxNDZcIjogXCJuXCIsXG4gICAgICAgIFwiXFx1MDE0OFwiOiBcIm5cIixcbiAgICAgICAgXCJcXHUwMTRCXCI6IFwiblwiLFxuICAgICAgICBcIlxcdTAxNENcIjogXCJPXCIsXG4gICAgICAgIFwiXFx1MDE0RVwiOiBcIk9cIixcbiAgICAgICAgXCJcXHUwMTUwXCI6IFwiT1wiLFxuICAgICAgICBcIlxcdTAxNERcIjogXCJvXCIsXG4gICAgICAgIFwiXFx1MDE0RlwiOiBcIm9cIixcbiAgICAgICAgXCJcXHUwMTUxXCI6IFwib1wiLFxuICAgICAgICBcIlxcdTAxNTRcIjogXCJSXCIsXG4gICAgICAgIFwiXFx1MDE1NlwiOiBcIlJcIixcbiAgICAgICAgXCJcXHUwMTU4XCI6IFwiUlwiLFxuICAgICAgICBcIlxcdTAxNTVcIjogXCJyXCIsXG4gICAgICAgIFwiXFx1MDE1N1wiOiBcInJcIixcbiAgICAgICAgXCJcXHUwMTU5XCI6IFwiclwiLFxuICAgICAgICBcIlxcdTAxNUFcIjogXCJTXCIsXG4gICAgICAgIFwiXFx1MDE1Q1wiOiBcIlNcIixcbiAgICAgICAgXCJcXHUwMTVFXCI6IFwiU1wiLFxuICAgICAgICBcIlxcdTAxNjBcIjogXCJTXCIsXG4gICAgICAgIFwiXFx1MDE1QlwiOiBcInNcIixcbiAgICAgICAgXCJcXHUwMTVEXCI6IFwic1wiLFxuICAgICAgICBcIlxcdTAxNUZcIjogXCJzXCIsXG4gICAgICAgIFwiXFx1MDE2MVwiOiBcInNcIixcbiAgICAgICAgXCJcXHUwMTYyXCI6IFwiVFwiLFxuICAgICAgICBcIlxcdTAxNjRcIjogXCJUXCIsXG4gICAgICAgIFwiXFx1MDE2NlwiOiBcIlRcIixcbiAgICAgICAgXCJcXHUwMTYzXCI6IFwidFwiLFxuICAgICAgICBcIlxcdTAxNjVcIjogXCJ0XCIsXG4gICAgICAgIFwiXFx1MDE2N1wiOiBcInRcIixcbiAgICAgICAgXCJcXHUwMTY4XCI6IFwiVVwiLFxuICAgICAgICBcIlxcdTAxNkFcIjogXCJVXCIsXG4gICAgICAgIFwiXFx1MDE2Q1wiOiBcIlVcIixcbiAgICAgICAgXCJcXHUwMTZFXCI6IFwiVVwiLFxuICAgICAgICBcIlxcdTAxNzBcIjogXCJVXCIsXG4gICAgICAgIFwiXFx1MDE3MlwiOiBcIlVcIixcbiAgICAgICAgXCJcXHUwMTY5XCI6IFwidVwiLFxuICAgICAgICBcIlxcdTAxNkJcIjogXCJ1XCIsXG4gICAgICAgIFwiXFx1MDE2RFwiOiBcInVcIixcbiAgICAgICAgXCJcXHUwMTZGXCI6IFwidVwiLFxuICAgICAgICBcIlxcdTAxNzFcIjogXCJ1XCIsXG4gICAgICAgIFwiXFx1MDE3M1wiOiBcInVcIixcbiAgICAgICAgXCJcXHUwMTc0XCI6IFwiV1wiLFxuICAgICAgICBcIlxcdTAxNzVcIjogXCJ3XCIsXG4gICAgICAgIFwiXFx1MDE3NlwiOiBcIllcIixcbiAgICAgICAgXCJcXHUwMTc3XCI6IFwieVwiLFxuICAgICAgICBcIlxcdTAxNzhcIjogXCJZXCIsXG4gICAgICAgIFwiXFx1MDE3OVwiOiBcIlpcIixcbiAgICAgICAgXCJcXHUwMTdCXCI6IFwiWlwiLFxuICAgICAgICBcIlxcdTAxN0RcIjogXCJaXCIsXG4gICAgICAgIFwiXFx1MDE3QVwiOiBcInpcIixcbiAgICAgICAgXCJcXHUwMTdDXCI6IFwielwiLFxuICAgICAgICBcIlxcdTAxN0VcIjogXCJ6XCIsXG4gICAgICAgIFwiXFx1MDEzMlwiOiBcIklKXCIsXG4gICAgICAgIFwiXFx1MDEzM1wiOiBcImlqXCIsXG4gICAgICAgIFwiXFx1MDE1MlwiOiBcIk9lXCIsXG4gICAgICAgIFwiXFx1MDE1M1wiOiBcIm9lXCIsXG4gICAgICAgIFwiXFx1MDE0OVwiOiBcIiduXCIsXG4gICAgICAgIFwiXFx1MDE3RlwiOiBcInNcIlxuICAgICAgfTtcbiAgICAgIHZhciBodG1sRXNjYXBlcyA9IHtcbiAgICAgICAgXCImXCI6IFwiJmFtcDtcIixcbiAgICAgICAgXCI8XCI6IFwiJmx0O1wiLFxuICAgICAgICBcIj5cIjogXCImZ3Q7XCIsXG4gICAgICAgICdcIic6IFwiJnF1b3Q7XCIsXG4gICAgICAgIFwiJ1wiOiBcIiYjMzk7XCJcbiAgICAgIH07XG4gICAgICB2YXIgaHRtbFVuZXNjYXBlcyA9IHtcbiAgICAgICAgXCImYW1wO1wiOiBcIiZcIixcbiAgICAgICAgXCImbHQ7XCI6IFwiPFwiLFxuICAgICAgICBcIiZndDtcIjogXCI+XCIsXG4gICAgICAgIFwiJnF1b3Q7XCI6ICdcIicsXG4gICAgICAgIFwiJiMzOTtcIjogXCInXCJcbiAgICAgIH07XG4gICAgICB2YXIgc3RyaW5nRXNjYXBlcyA9IHtcbiAgICAgICAgXCJcXFxcXCI6IFwiXFxcXFwiLFxuICAgICAgICBcIidcIjogXCInXCIsXG4gICAgICAgIFwiXFxuXCI6IFwiblwiLFxuICAgICAgICBcIlxcclwiOiBcInJcIixcbiAgICAgICAgXCJcXHUyMDI4XCI6IFwidTIwMjhcIixcbiAgICAgICAgXCJcXHUyMDI5XCI6IFwidTIwMjlcIlxuICAgICAgfTtcbiAgICAgIHZhciBmcmVlUGFyc2VGbG9hdCA9IHBhcnNlRmxvYXQsIGZyZWVQYXJzZUludCA9IHBhcnNlSW50O1xuICAgICAgdmFyIGZyZWVHbG9iYWwgPSB0eXBlb2YgZ2xvYmFsID09IFwib2JqZWN0XCIgJiYgZ2xvYmFsICYmIGdsb2JhbC5PYmplY3QgPT09IE9iamVjdCAmJiBnbG9iYWw7XG4gICAgICB2YXIgZnJlZVNlbGYgPSB0eXBlb2Ygc2VsZiA9PSBcIm9iamVjdFwiICYmIHNlbGYgJiYgc2VsZi5PYmplY3QgPT09IE9iamVjdCAmJiBzZWxmO1xuICAgICAgdmFyIHJvb3QgPSBmcmVlR2xvYmFsIHx8IGZyZWVTZWxmIHx8IEZ1bmN0aW9uKFwicmV0dXJuIHRoaXNcIikoKTtcbiAgICAgIHZhciBmcmVlRXhwb3J0cyA9IHR5cGVvZiBleHBvcnRzMiA9PSBcIm9iamVjdFwiICYmIGV4cG9ydHMyICYmICFleHBvcnRzMi5ub2RlVHlwZSAmJiBleHBvcnRzMjtcbiAgICAgIHZhciBmcmVlTW9kdWxlID0gZnJlZUV4cG9ydHMgJiYgdHlwZW9mIG1vZHVsZTIgPT0gXCJvYmplY3RcIiAmJiBtb2R1bGUyICYmICFtb2R1bGUyLm5vZGVUeXBlICYmIG1vZHVsZTI7XG4gICAgICB2YXIgbW9kdWxlRXhwb3J0cyA9IGZyZWVNb2R1bGUgJiYgZnJlZU1vZHVsZS5leHBvcnRzID09PSBmcmVlRXhwb3J0cztcbiAgICAgIHZhciBmcmVlUHJvY2VzcyA9IG1vZHVsZUV4cG9ydHMgJiYgZnJlZUdsb2JhbC5wcm9jZXNzO1xuICAgICAgdmFyIG5vZGVVdGlsID0gZnVuY3Rpb24oKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgdmFyIHR5cGVzID0gZnJlZU1vZHVsZSAmJiBmcmVlTW9kdWxlLnJlcXVpcmUgJiYgZnJlZU1vZHVsZS5yZXF1aXJlKFwidXRpbFwiKS50eXBlcztcbiAgICAgICAgICBpZiAodHlwZXMpIHtcbiAgICAgICAgICAgIHJldHVybiB0eXBlcztcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIGZyZWVQcm9jZXNzICYmIGZyZWVQcm9jZXNzLmJpbmRpbmcgJiYgZnJlZVByb2Nlc3MuYmluZGluZyhcInV0aWxcIik7XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgfVxuICAgICAgfSgpO1xuICAgICAgdmFyIG5vZGVJc0FycmF5QnVmZmVyID0gbm9kZVV0aWwgJiYgbm9kZVV0aWwuaXNBcnJheUJ1ZmZlciwgbm9kZUlzRGF0ZSA9IG5vZGVVdGlsICYmIG5vZGVVdGlsLmlzRGF0ZSwgbm9kZUlzTWFwID0gbm9kZVV0aWwgJiYgbm9kZVV0aWwuaXNNYXAsIG5vZGVJc1JlZ0V4cCA9IG5vZGVVdGlsICYmIG5vZGVVdGlsLmlzUmVnRXhwLCBub2RlSXNTZXQgPSBub2RlVXRpbCAmJiBub2RlVXRpbC5pc1NldCwgbm9kZUlzVHlwZWRBcnJheSA9IG5vZGVVdGlsICYmIG5vZGVVdGlsLmlzVHlwZWRBcnJheTtcbiAgICAgIGZ1bmN0aW9uIGFwcGx5KGZ1bmMsIHRoaXNBcmcsIGFyZ3MpIHtcbiAgICAgICAgc3dpdGNoIChhcmdzLmxlbmd0aCkge1xuICAgICAgICAgIGNhc2UgMDpcbiAgICAgICAgICAgIHJldHVybiBmdW5jLmNhbGwodGhpc0FyZyk7XG4gICAgICAgICAgY2FzZSAxOlxuICAgICAgICAgICAgcmV0dXJuIGZ1bmMuY2FsbCh0aGlzQXJnLCBhcmdzWzBdKTtcbiAgICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgICByZXR1cm4gZnVuYy5jYWxsKHRoaXNBcmcsIGFyZ3NbMF0sIGFyZ3NbMV0pO1xuICAgICAgICAgIGNhc2UgMzpcbiAgICAgICAgICAgIHJldHVybiBmdW5jLmNhbGwodGhpc0FyZywgYXJnc1swXSwgYXJnc1sxXSwgYXJnc1syXSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZ1bmMuYXBwbHkodGhpc0FyZywgYXJncyk7XG4gICAgICB9XG4gICAgICBmdW5jdGlvbiBhcnJheUFnZ3JlZ2F0b3IoYXJyYXksIHNldHRlciwgaXRlcmF0ZWUsIGFjY3VtdWxhdG9yKSB7XG4gICAgICAgIHZhciBpbmRleCA9IC0xLCBsZW5ndGggPSBhcnJheSA9PSBudWxsID8gMCA6IGFycmF5Lmxlbmd0aDtcbiAgICAgICAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICAgICAgICB2YXIgdmFsdWUgPSBhcnJheVtpbmRleF07XG4gICAgICAgICAgc2V0dGVyKGFjY3VtdWxhdG9yLCB2YWx1ZSwgaXRlcmF0ZWUodmFsdWUpLCBhcnJheSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGFjY3VtdWxhdG9yO1xuICAgICAgfVxuICAgICAgZnVuY3Rpb24gYXJyYXlFYWNoKGFycmF5LCBpdGVyYXRlZSkge1xuICAgICAgICB2YXIgaW5kZXggPSAtMSwgbGVuZ3RoID0gYXJyYXkgPT0gbnVsbCA/IDAgOiBhcnJheS5sZW5ndGg7XG4gICAgICAgIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgICAgICAgaWYgKGl0ZXJhdGVlKGFycmF5W2luZGV4XSwgaW5kZXgsIGFycmF5KSA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYXJyYXk7XG4gICAgICB9XG4gICAgICBmdW5jdGlvbiBhcnJheUVhY2hSaWdodChhcnJheSwgaXRlcmF0ZWUpIHtcbiAgICAgICAgdmFyIGxlbmd0aCA9IGFycmF5ID09IG51bGwgPyAwIDogYXJyYXkubGVuZ3RoO1xuICAgICAgICB3aGlsZSAobGVuZ3RoLS0pIHtcbiAgICAgICAgICBpZiAoaXRlcmF0ZWUoYXJyYXlbbGVuZ3RoXSwgbGVuZ3RoLCBhcnJheSkgPT09IGZhbHNlKSB7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGFycmF5O1xuICAgICAgfVxuICAgICAgZnVuY3Rpb24gYXJyYXlFdmVyeShhcnJheSwgcHJlZGljYXRlKSB7XG4gICAgICAgIHZhciBpbmRleCA9IC0xLCBsZW5ndGggPSBhcnJheSA9PSBudWxsID8gMCA6IGFycmF5Lmxlbmd0aDtcbiAgICAgICAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICAgICAgICBpZiAoIXByZWRpY2F0ZShhcnJheVtpbmRleF0sIGluZGV4LCBhcnJheSkpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgICBmdW5jdGlvbiBhcnJheUZpbHRlcihhcnJheSwgcHJlZGljYXRlKSB7XG4gICAgICAgIHZhciBpbmRleCA9IC0xLCBsZW5ndGggPSBhcnJheSA9PSBudWxsID8gMCA6IGFycmF5Lmxlbmd0aCwgcmVzSW5kZXggPSAwLCByZXN1bHQgPSBbXTtcbiAgICAgICAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICAgICAgICB2YXIgdmFsdWUgPSBhcnJheVtpbmRleF07XG4gICAgICAgICAgaWYgKHByZWRpY2F0ZSh2YWx1ZSwgaW5kZXgsIGFycmF5KSkge1xuICAgICAgICAgICAgcmVzdWx0W3Jlc0luZGV4KytdID0gdmFsdWU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICB9XG4gICAgICBmdW5jdGlvbiBhcnJheUluY2x1ZGVzKGFycmF5LCB2YWx1ZSkge1xuICAgICAgICB2YXIgbGVuZ3RoID0gYXJyYXkgPT0gbnVsbCA/IDAgOiBhcnJheS5sZW5ndGg7XG4gICAgICAgIHJldHVybiAhIWxlbmd0aCAmJiBiYXNlSW5kZXhPZihhcnJheSwgdmFsdWUsIDApID4gLTE7XG4gICAgICB9XG4gICAgICBmdW5jdGlvbiBhcnJheUluY2x1ZGVzV2l0aChhcnJheSwgdmFsdWUsIGNvbXBhcmF0b3IpIHtcbiAgICAgICAgdmFyIGluZGV4ID0gLTEsIGxlbmd0aCA9IGFycmF5ID09IG51bGwgPyAwIDogYXJyYXkubGVuZ3RoO1xuICAgICAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgICAgICAgIGlmIChjb21wYXJhdG9yKHZhbHVlLCBhcnJheVtpbmRleF0pKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgZnVuY3Rpb24gYXJyYXlNYXAoYXJyYXksIGl0ZXJhdGVlKSB7XG4gICAgICAgIHZhciBpbmRleCA9IC0xLCBsZW5ndGggPSBhcnJheSA9PSBudWxsID8gMCA6IGFycmF5Lmxlbmd0aCwgcmVzdWx0ID0gQXJyYXkobGVuZ3RoKTtcbiAgICAgICAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICAgICAgICByZXN1bHRbaW5kZXhdID0gaXRlcmF0ZWUoYXJyYXlbaW5kZXhdLCBpbmRleCwgYXJyYXkpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICB9XG4gICAgICBmdW5jdGlvbiBhcnJheVB1c2goYXJyYXksIHZhbHVlcykge1xuICAgICAgICB2YXIgaW5kZXggPSAtMSwgbGVuZ3RoID0gdmFsdWVzLmxlbmd0aCwgb2Zmc2V0ID0gYXJyYXkubGVuZ3RoO1xuICAgICAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgICAgICAgIGFycmF5W29mZnNldCArIGluZGV4XSA9IHZhbHVlc1tpbmRleF07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGFycmF5O1xuICAgICAgfVxuICAgICAgZnVuY3Rpb24gYXJyYXlSZWR1Y2UoYXJyYXksIGl0ZXJhdGVlLCBhY2N1bXVsYXRvciwgaW5pdEFjY3VtKSB7XG4gICAgICAgIHZhciBpbmRleCA9IC0xLCBsZW5ndGggPSBhcnJheSA9PSBudWxsID8gMCA6IGFycmF5Lmxlbmd0aDtcbiAgICAgICAgaWYgKGluaXRBY2N1bSAmJiBsZW5ndGgpIHtcbiAgICAgICAgICBhY2N1bXVsYXRvciA9IGFycmF5WysraW5kZXhdO1xuICAgICAgICB9XG4gICAgICAgIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgICAgICAgYWNjdW11bGF0b3IgPSBpdGVyYXRlZShhY2N1bXVsYXRvciwgYXJyYXlbaW5kZXhdLCBpbmRleCwgYXJyYXkpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBhY2N1bXVsYXRvcjtcbiAgICAgIH1cbiAgICAgIGZ1bmN0aW9uIGFycmF5UmVkdWNlUmlnaHQoYXJyYXksIGl0ZXJhdGVlLCBhY2N1bXVsYXRvciwgaW5pdEFjY3VtKSB7XG4gICAgICAgIHZhciBsZW5ndGggPSBhcnJheSA9PSBudWxsID8gMCA6IGFycmF5Lmxlbmd0aDtcbiAgICAgICAgaWYgKGluaXRBY2N1bSAmJiBsZW5ndGgpIHtcbiAgICAgICAgICBhY2N1bXVsYXRvciA9IGFycmF5Wy0tbGVuZ3RoXTtcbiAgICAgICAgfVxuICAgICAgICB3aGlsZSAobGVuZ3RoLS0pIHtcbiAgICAgICAgICBhY2N1bXVsYXRvciA9IGl0ZXJhdGVlKGFjY3VtdWxhdG9yLCBhcnJheVtsZW5ndGhdLCBsZW5ndGgsIGFycmF5KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYWNjdW11bGF0b3I7XG4gICAgICB9XG4gICAgICBmdW5jdGlvbiBhcnJheVNvbWUoYXJyYXksIHByZWRpY2F0ZSkge1xuICAgICAgICB2YXIgaW5kZXggPSAtMSwgbGVuZ3RoID0gYXJyYXkgPT0gbnVsbCA/IDAgOiBhcnJheS5sZW5ndGg7XG4gICAgICAgIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgICAgICAgaWYgKHByZWRpY2F0ZShhcnJheVtpbmRleF0sIGluZGV4LCBhcnJheSkpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgICB2YXIgYXNjaWlTaXplID0gYmFzZVByb3BlcnR5KFwibGVuZ3RoXCIpO1xuICAgICAgZnVuY3Rpb24gYXNjaWlUb0FycmF5KHN0cmluZykge1xuICAgICAgICByZXR1cm4gc3RyaW5nLnNwbGl0KFwiXCIpO1xuICAgICAgfVxuICAgICAgZnVuY3Rpb24gYXNjaWlXb3JkcyhzdHJpbmcpIHtcbiAgICAgICAgcmV0dXJuIHN0cmluZy5tYXRjaChyZUFzY2lpV29yZCkgfHwgW107XG4gICAgICB9XG4gICAgICBmdW5jdGlvbiBiYXNlRmluZEtleShjb2xsZWN0aW9uLCBwcmVkaWNhdGUsIGVhY2hGdW5jKSB7XG4gICAgICAgIHZhciByZXN1bHQ7XG4gICAgICAgIGVhY2hGdW5jKGNvbGxlY3Rpb24sIGZ1bmN0aW9uKHZhbHVlLCBrZXksIGNvbGxlY3Rpb24yKSB7XG4gICAgICAgICAgaWYgKHByZWRpY2F0ZSh2YWx1ZSwga2V5LCBjb2xsZWN0aW9uMikpIHtcbiAgICAgICAgICAgIHJlc3VsdCA9IGtleTtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgfVxuICAgICAgZnVuY3Rpb24gYmFzZUZpbmRJbmRleChhcnJheSwgcHJlZGljYXRlLCBmcm9tSW5kZXgsIGZyb21SaWdodCkge1xuICAgICAgICB2YXIgbGVuZ3RoID0gYXJyYXkubGVuZ3RoLCBpbmRleCA9IGZyb21JbmRleCArIChmcm9tUmlnaHQgPyAxIDogLTEpO1xuICAgICAgICB3aGlsZSAoZnJvbVJpZ2h0ID8gaW5kZXgtLSA6ICsraW5kZXggPCBsZW5ndGgpIHtcbiAgICAgICAgICBpZiAocHJlZGljYXRlKGFycmF5W2luZGV4XSwgaW5kZXgsIGFycmF5KSkge1xuICAgICAgICAgICAgcmV0dXJuIGluZGV4O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gLTE7XG4gICAgICB9XG4gICAgICBmdW5jdGlvbiBiYXNlSW5kZXhPZihhcnJheSwgdmFsdWUsIGZyb21JbmRleCkge1xuICAgICAgICByZXR1cm4gdmFsdWUgPT09IHZhbHVlID8gc3RyaWN0SW5kZXhPZihhcnJheSwgdmFsdWUsIGZyb21JbmRleCkgOiBiYXNlRmluZEluZGV4KGFycmF5LCBiYXNlSXNOYU4sIGZyb21JbmRleCk7XG4gICAgICB9XG4gICAgICBmdW5jdGlvbiBiYXNlSW5kZXhPZldpdGgoYXJyYXksIHZhbHVlLCBmcm9tSW5kZXgsIGNvbXBhcmF0b3IpIHtcbiAgICAgICAgdmFyIGluZGV4ID0gZnJvbUluZGV4IC0gMSwgbGVuZ3RoID0gYXJyYXkubGVuZ3RoO1xuICAgICAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgICAgICAgIGlmIChjb21wYXJhdG9yKGFycmF5W2luZGV4XSwgdmFsdWUpKSB7XG4gICAgICAgICAgICByZXR1cm4gaW5kZXg7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiAtMTtcbiAgICAgIH1cbiAgICAgIGZ1bmN0aW9uIGJhc2VJc05hTih2YWx1ZSkge1xuICAgICAgICByZXR1cm4gdmFsdWUgIT09IHZhbHVlO1xuICAgICAgfVxuICAgICAgZnVuY3Rpb24gYmFzZU1lYW4oYXJyYXksIGl0ZXJhdGVlKSB7XG4gICAgICAgIHZhciBsZW5ndGggPSBhcnJheSA9PSBudWxsID8gMCA6IGFycmF5Lmxlbmd0aDtcbiAgICAgICAgcmV0dXJuIGxlbmd0aCA/IGJhc2VTdW0oYXJyYXksIGl0ZXJhdGVlKSAvIGxlbmd0aCA6IE5BTjtcbiAgICAgIH1cbiAgICAgIGZ1bmN0aW9uIGJhc2VQcm9wZXJ0eShrZXkpIHtcbiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKG9iamVjdCkge1xuICAgICAgICAgIHJldHVybiBvYmplY3QgPT0gbnVsbCA/IHVuZGVmaW5lZDIgOiBvYmplY3Rba2V5XTtcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICAgIGZ1bmN0aW9uIGJhc2VQcm9wZXJ0eU9mKG9iamVjdCkge1xuICAgICAgICByZXR1cm4gZnVuY3Rpb24oa2V5KSB7XG4gICAgICAgICAgcmV0dXJuIG9iamVjdCA9PSBudWxsID8gdW5kZWZpbmVkMiA6IG9iamVjdFtrZXldO1xuICAgICAgICB9O1xuICAgICAgfVxuICAgICAgZnVuY3Rpb24gYmFzZVJlZHVjZShjb2xsZWN0aW9uLCBpdGVyYXRlZSwgYWNjdW11bGF0b3IsIGluaXRBY2N1bSwgZWFjaEZ1bmMpIHtcbiAgICAgICAgZWFjaEZ1bmMoY29sbGVjdGlvbiwgZnVuY3Rpb24odmFsdWUsIGluZGV4LCBjb2xsZWN0aW9uMikge1xuICAgICAgICAgIGFjY3VtdWxhdG9yID0gaW5pdEFjY3VtID8gKGluaXRBY2N1bSA9IGZhbHNlLCB2YWx1ZSkgOiBpdGVyYXRlZShhY2N1bXVsYXRvciwgdmFsdWUsIGluZGV4LCBjb2xsZWN0aW9uMik7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gYWNjdW11bGF0b3I7XG4gICAgICB9XG4gICAgICBmdW5jdGlvbiBiYXNlU29ydEJ5KGFycmF5LCBjb21wYXJlcikge1xuICAgICAgICB2YXIgbGVuZ3RoID0gYXJyYXkubGVuZ3RoO1xuICAgICAgICBhcnJheS5zb3J0KGNvbXBhcmVyKTtcbiAgICAgICAgd2hpbGUgKGxlbmd0aC0tKSB7XG4gICAgICAgICAgYXJyYXlbbGVuZ3RoXSA9IGFycmF5W2xlbmd0aF0udmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGFycmF5O1xuICAgICAgfVxuICAgICAgZnVuY3Rpb24gYmFzZVN1bShhcnJheSwgaXRlcmF0ZWUpIHtcbiAgICAgICAgdmFyIHJlc3VsdCwgaW5kZXggPSAtMSwgbGVuZ3RoID0gYXJyYXkubGVuZ3RoO1xuICAgICAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgICAgICAgIHZhciBjdXJyZW50ID0gaXRlcmF0ZWUoYXJyYXlbaW5kZXhdKTtcbiAgICAgICAgICBpZiAoY3VycmVudCAhPT0gdW5kZWZpbmVkMikge1xuICAgICAgICAgICAgcmVzdWx0ID0gcmVzdWx0ID09PSB1bmRlZmluZWQyID8gY3VycmVudCA6IHJlc3VsdCArIGN1cnJlbnQ7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICB9XG4gICAgICBmdW5jdGlvbiBiYXNlVGltZXMobiwgaXRlcmF0ZWUpIHtcbiAgICAgICAgdmFyIGluZGV4ID0gLTEsIHJlc3VsdCA9IEFycmF5KG4pO1xuICAgICAgICB3aGlsZSAoKytpbmRleCA8IG4pIHtcbiAgICAgICAgICByZXN1bHRbaW5kZXhdID0gaXRlcmF0ZWUoaW5kZXgpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICB9XG4gICAgICBmdW5jdGlvbiBiYXNlVG9QYWlycyhvYmplY3QsIHByb3BzKSB7XG4gICAgICAgIHJldHVybiBhcnJheU1hcChwcm9wcywgZnVuY3Rpb24oa2V5KSB7XG4gICAgICAgICAgcmV0dXJuIFtrZXksIG9iamVjdFtrZXldXTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICBmdW5jdGlvbiBiYXNlVHJpbShzdHJpbmcpIHtcbiAgICAgICAgcmV0dXJuIHN0cmluZyA/IHN0cmluZy5zbGljZSgwLCB0cmltbWVkRW5kSW5kZXgoc3RyaW5nKSArIDEpLnJlcGxhY2UocmVUcmltU3RhcnQsIFwiXCIpIDogc3RyaW5nO1xuICAgICAgfVxuICAgICAgZnVuY3Rpb24gYmFzZVVuYXJ5KGZ1bmMpIHtcbiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKHZhbHVlKSB7XG4gICAgICAgICAgcmV0dXJuIGZ1bmModmFsdWUpO1xuICAgICAgICB9O1xuICAgICAgfVxuICAgICAgZnVuY3Rpb24gYmFzZVZhbHVlcyhvYmplY3QsIHByb3BzKSB7XG4gICAgICAgIHJldHVybiBhcnJheU1hcChwcm9wcywgZnVuY3Rpb24oa2V5KSB7XG4gICAgICAgICAgcmV0dXJuIG9iamVjdFtrZXldO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIGZ1bmN0aW9uIGNhY2hlSGFzKGNhY2hlLCBrZXkpIHtcbiAgICAgICAgcmV0dXJuIGNhY2hlLmhhcyhrZXkpO1xuICAgICAgfVxuICAgICAgZnVuY3Rpb24gY2hhcnNTdGFydEluZGV4KHN0clN5bWJvbHMsIGNoclN5bWJvbHMpIHtcbiAgICAgICAgdmFyIGluZGV4ID0gLTEsIGxlbmd0aCA9IHN0clN5bWJvbHMubGVuZ3RoO1xuICAgICAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCAmJiBiYXNlSW5kZXhPZihjaHJTeW1ib2xzLCBzdHJTeW1ib2xzW2luZGV4XSwgMCkgPiAtMSkge1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBpbmRleDtcbiAgICAgIH1cbiAgICAgIGZ1bmN0aW9uIGNoYXJzRW5kSW5kZXgoc3RyU3ltYm9scywgY2hyU3ltYm9scykge1xuICAgICAgICB2YXIgaW5kZXggPSBzdHJTeW1ib2xzLmxlbmd0aDtcbiAgICAgICAgd2hpbGUgKGluZGV4LS0gJiYgYmFzZUluZGV4T2YoY2hyU3ltYm9scywgc3RyU3ltYm9sc1tpbmRleF0sIDApID4gLTEpIHtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gaW5kZXg7XG4gICAgICB9XG4gICAgICBmdW5jdGlvbiBjb3VudEhvbGRlcnMoYXJyYXksIHBsYWNlaG9sZGVyKSB7XG4gICAgICAgIHZhciBsZW5ndGggPSBhcnJheS5sZW5ndGgsIHJlc3VsdCA9IDA7XG4gICAgICAgIHdoaWxlIChsZW5ndGgtLSkge1xuICAgICAgICAgIGlmIChhcnJheVtsZW5ndGhdID09PSBwbGFjZWhvbGRlcikge1xuICAgICAgICAgICAgKytyZXN1bHQ7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICB9XG4gICAgICB2YXIgZGVidXJyTGV0dGVyID0gYmFzZVByb3BlcnR5T2YoZGVidXJyZWRMZXR0ZXJzKTtcbiAgICAgIHZhciBlc2NhcGVIdG1sQ2hhciA9IGJhc2VQcm9wZXJ0eU9mKGh0bWxFc2NhcGVzKTtcbiAgICAgIGZ1bmN0aW9uIGVzY2FwZVN0cmluZ0NoYXIoY2hyKSB7XG4gICAgICAgIHJldHVybiBcIlxcXFxcIiArIHN0cmluZ0VzY2FwZXNbY2hyXTtcbiAgICAgIH1cbiAgICAgIGZ1bmN0aW9uIGdldFZhbHVlKG9iamVjdCwga2V5KSB7XG4gICAgICAgIHJldHVybiBvYmplY3QgPT0gbnVsbCA/IHVuZGVmaW5lZDIgOiBvYmplY3Rba2V5XTtcbiAgICAgIH1cbiAgICAgIGZ1bmN0aW9uIGhhc1VuaWNvZGUoc3RyaW5nKSB7XG4gICAgICAgIHJldHVybiByZUhhc1VuaWNvZGUudGVzdChzdHJpbmcpO1xuICAgICAgfVxuICAgICAgZnVuY3Rpb24gaGFzVW5pY29kZVdvcmQoc3RyaW5nKSB7XG4gICAgICAgIHJldHVybiByZUhhc1VuaWNvZGVXb3JkLnRlc3Qoc3RyaW5nKTtcbiAgICAgIH1cbiAgICAgIGZ1bmN0aW9uIGl0ZXJhdG9yVG9BcnJheShpdGVyYXRvcikge1xuICAgICAgICB2YXIgZGF0YSwgcmVzdWx0ID0gW107XG4gICAgICAgIHdoaWxlICghKGRhdGEgPSBpdGVyYXRvci5uZXh0KCkpLmRvbmUpIHtcbiAgICAgICAgICByZXN1bHQucHVzaChkYXRhLnZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgfVxuICAgICAgZnVuY3Rpb24gbWFwVG9BcnJheShtYXApIHtcbiAgICAgICAgdmFyIGluZGV4ID0gLTEsIHJlc3VsdCA9IEFycmF5KG1hcC5zaXplKTtcbiAgICAgICAgbWFwLmZvckVhY2goZnVuY3Rpb24odmFsdWUsIGtleSkge1xuICAgICAgICAgIHJlc3VsdFsrK2luZGV4XSA9IFtrZXksIHZhbHVlXTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICB9XG4gICAgICBmdW5jdGlvbiBvdmVyQXJnKGZ1bmMsIHRyYW5zZm9ybSkge1xuICAgICAgICByZXR1cm4gZnVuY3Rpb24oYXJnKSB7XG4gICAgICAgICAgcmV0dXJuIGZ1bmModHJhbnNmb3JtKGFyZykpO1xuICAgICAgICB9O1xuICAgICAgfVxuICAgICAgZnVuY3Rpb24gcmVwbGFjZUhvbGRlcnMoYXJyYXksIHBsYWNlaG9sZGVyKSB7XG4gICAgICAgIHZhciBpbmRleCA9IC0xLCBsZW5ndGggPSBhcnJheS5sZW5ndGgsIHJlc0luZGV4ID0gMCwgcmVzdWx0ID0gW107XG4gICAgICAgIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgICAgICAgdmFyIHZhbHVlID0gYXJyYXlbaW5kZXhdO1xuICAgICAgICAgIGlmICh2YWx1ZSA9PT0gcGxhY2Vob2xkZXIgfHwgdmFsdWUgPT09IFBMQUNFSE9MREVSKSB7XG4gICAgICAgICAgICBhcnJheVtpbmRleF0gPSBQTEFDRUhPTERFUjtcbiAgICAgICAgICAgIHJlc3VsdFtyZXNJbmRleCsrXSA9IGluZGV4O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgfVxuICAgICAgZnVuY3Rpb24gc2V0VG9BcnJheShzZXQpIHtcbiAgICAgICAgdmFyIGluZGV4ID0gLTEsIHJlc3VsdCA9IEFycmF5KHNldC5zaXplKTtcbiAgICAgICAgc2V0LmZvckVhY2goZnVuY3Rpb24odmFsdWUpIHtcbiAgICAgICAgICByZXN1bHRbKytpbmRleF0gPSB2YWx1ZTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICB9XG4gICAgICBmdW5jdGlvbiBzZXRUb1BhaXJzKHNldCkge1xuICAgICAgICB2YXIgaW5kZXggPSAtMSwgcmVzdWx0ID0gQXJyYXkoc2V0LnNpemUpO1xuICAgICAgICBzZXQuZm9yRWFjaChmdW5jdGlvbih2YWx1ZSkge1xuICAgICAgICAgIHJlc3VsdFsrK2luZGV4XSA9IFt2YWx1ZSwgdmFsdWVdO1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgIH1cbiAgICAgIGZ1bmN0aW9uIHN0cmljdEluZGV4T2YoYXJyYXksIHZhbHVlLCBmcm9tSW5kZXgpIHtcbiAgICAgICAgdmFyIGluZGV4ID0gZnJvbUluZGV4IC0gMSwgbGVuZ3RoID0gYXJyYXkubGVuZ3RoO1xuICAgICAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgICAgICAgIGlmIChhcnJheVtpbmRleF0gPT09IHZhbHVlKSB7XG4gICAgICAgICAgICByZXR1cm4gaW5kZXg7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiAtMTtcbiAgICAgIH1cbiAgICAgIGZ1bmN0aW9uIHN0cmljdExhc3RJbmRleE9mKGFycmF5LCB2YWx1ZSwgZnJvbUluZGV4KSB7XG4gICAgICAgIHZhciBpbmRleCA9IGZyb21JbmRleCArIDE7XG4gICAgICAgIHdoaWxlIChpbmRleC0tKSB7XG4gICAgICAgICAgaWYgKGFycmF5W2luZGV4XSA9PT0gdmFsdWUpIHtcbiAgICAgICAgICAgIHJldHVybiBpbmRleDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGluZGV4O1xuICAgICAgfVxuICAgICAgZnVuY3Rpb24gc3RyaW5nU2l6ZShzdHJpbmcpIHtcbiAgICAgICAgcmV0dXJuIGhhc1VuaWNvZGUoc3RyaW5nKSA/IHVuaWNvZGVTaXplKHN0cmluZykgOiBhc2NpaVNpemUoc3RyaW5nKTtcbiAgICAgIH1cbiAgICAgIGZ1bmN0aW9uIHN0cmluZ1RvQXJyYXkoc3RyaW5nKSB7XG4gICAgICAgIHJldHVybiBoYXNVbmljb2RlKHN0cmluZykgPyB1bmljb2RlVG9BcnJheShzdHJpbmcpIDogYXNjaWlUb0FycmF5KHN0cmluZyk7XG4gICAgICB9XG4gICAgICBmdW5jdGlvbiB0cmltbWVkRW5kSW5kZXgoc3RyaW5nKSB7XG4gICAgICAgIHZhciBpbmRleCA9IHN0cmluZy5sZW5ndGg7XG4gICAgICAgIHdoaWxlIChpbmRleC0tICYmIHJlV2hpdGVzcGFjZS50ZXN0KHN0cmluZy5jaGFyQXQoaW5kZXgpKSkge1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBpbmRleDtcbiAgICAgIH1cbiAgICAgIHZhciB1bmVzY2FwZUh0bWxDaGFyID0gYmFzZVByb3BlcnR5T2YoaHRtbFVuZXNjYXBlcyk7XG4gICAgICBmdW5jdGlvbiB1bmljb2RlU2l6ZShzdHJpbmcpIHtcbiAgICAgICAgdmFyIHJlc3VsdCA9IHJlVW5pY29kZS5sYXN0SW5kZXggPSAwO1xuICAgICAgICB3aGlsZSAocmVVbmljb2RlLnRlc3Qoc3RyaW5nKSkge1xuICAgICAgICAgICsrcmVzdWx0O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICB9XG4gICAgICBmdW5jdGlvbiB1bmljb2RlVG9BcnJheShzdHJpbmcpIHtcbiAgICAgICAgcmV0dXJuIHN0cmluZy5tYXRjaChyZVVuaWNvZGUpIHx8IFtdO1xuICAgICAgfVxuICAgICAgZnVuY3Rpb24gdW5pY29kZVdvcmRzKHN0cmluZykge1xuICAgICAgICByZXR1cm4gc3RyaW5nLm1hdGNoKHJlVW5pY29kZVdvcmQpIHx8IFtdO1xuICAgICAgfVxuICAgICAgdmFyIHJ1bkluQ29udGV4dCA9IGZ1bmN0aW9uIHJ1bkluQ29udGV4dDIoY29udGV4dCkge1xuICAgICAgICBjb250ZXh0ID0gY29udGV4dCA9PSBudWxsID8gcm9vdCA6IF8yLmRlZmF1bHRzKHJvb3QuT2JqZWN0KCksIGNvbnRleHQsIF8yLnBpY2socm9vdCwgY29udGV4dFByb3BzKSk7XG4gICAgICAgIHZhciBBcnJheTIgPSBjb250ZXh0LkFycmF5LCBEYXRlMiA9IGNvbnRleHQuRGF0ZSwgRXJyb3IyID0gY29udGV4dC5FcnJvciwgRnVuY3Rpb24yID0gY29udGV4dC5GdW5jdGlvbiwgTWF0aDIgPSBjb250ZXh0Lk1hdGgsIE9iamVjdDIgPSBjb250ZXh0Lk9iamVjdCwgUmVnRXhwMiA9IGNvbnRleHQuUmVnRXhwLCBTdHJpbmcyID0gY29udGV4dC5TdHJpbmcsIFR5cGVFcnJvcjIgPSBjb250ZXh0LlR5cGVFcnJvcjtcbiAgICAgICAgdmFyIGFycmF5UHJvdG8gPSBBcnJheTIucHJvdG90eXBlLCBmdW5jUHJvdG8gPSBGdW5jdGlvbjIucHJvdG90eXBlLCBvYmplY3RQcm90byA9IE9iamVjdDIucHJvdG90eXBlO1xuICAgICAgICB2YXIgY29yZUpzRGF0YSA9IGNvbnRleHRbXCJfX2NvcmUtanNfc2hhcmVkX19cIl07XG4gICAgICAgIHZhciBmdW5jVG9TdHJpbmcgPSBmdW5jUHJvdG8udG9TdHJpbmc7XG4gICAgICAgIHZhciBoYXNPd25Qcm9wZXJ0eSA9IG9iamVjdFByb3RvLmhhc093blByb3BlcnR5O1xuICAgICAgICB2YXIgaWRDb3VudGVyID0gMDtcbiAgICAgICAgdmFyIG1hc2tTcmNLZXkgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgICB2YXIgdWlkID0gL1teLl0rJC8uZXhlYyhjb3JlSnNEYXRhICYmIGNvcmVKc0RhdGEua2V5cyAmJiBjb3JlSnNEYXRhLmtleXMuSUVfUFJPVE8gfHwgXCJcIik7XG4gICAgICAgICAgcmV0dXJuIHVpZCA/IFwiU3ltYm9sKHNyYylfMS5cIiArIHVpZCA6IFwiXCI7XG4gICAgICAgIH0oKTtcbiAgICAgICAgdmFyIG5hdGl2ZU9iamVjdFRvU3RyaW5nID0gb2JqZWN0UHJvdG8udG9TdHJpbmc7XG4gICAgICAgIHZhciBvYmplY3RDdG9yU3RyaW5nID0gZnVuY1RvU3RyaW5nLmNhbGwoT2JqZWN0Mik7XG4gICAgICAgIHZhciBvbGREYXNoID0gcm9vdC5fO1xuICAgICAgICB2YXIgcmVJc05hdGl2ZSA9IFJlZ0V4cDIoXG4gICAgICAgICAgXCJeXCIgKyBmdW5jVG9TdHJpbmcuY2FsbChoYXNPd25Qcm9wZXJ0eSkucmVwbGFjZShyZVJlZ0V4cENoYXIsIFwiXFxcXCQmXCIpLnJlcGxhY2UoL2hhc093blByb3BlcnR5fChmdW5jdGlvbikuKj8oPz1cXFxcXFwoKXwgZm9yIC4rPyg/PVxcXFxcXF0pL2csIFwiJDEuKj9cIikgKyBcIiRcIlxuICAgICAgICApO1xuICAgICAgICB2YXIgQnVmZmVyMiA9IG1vZHVsZUV4cG9ydHMgPyBjb250ZXh0LkJ1ZmZlciA6IHVuZGVmaW5lZDIsIFN5bWJvbDIgPSBjb250ZXh0LlN5bWJvbCwgVWludDhBcnJheTIgPSBjb250ZXh0LlVpbnQ4QXJyYXksIGFsbG9jVW5zYWZlID0gQnVmZmVyMiA/IEJ1ZmZlcjIuYWxsb2NVbnNhZmUgOiB1bmRlZmluZWQyLCBnZXRQcm90b3R5cGUgPSBvdmVyQXJnKE9iamVjdDIuZ2V0UHJvdG90eXBlT2YsIE9iamVjdDIpLCBvYmplY3RDcmVhdGUgPSBPYmplY3QyLmNyZWF0ZSwgcHJvcGVydHlJc0VudW1lcmFibGUgPSBvYmplY3RQcm90by5wcm9wZXJ0eUlzRW51bWVyYWJsZSwgc3BsaWNlID0gYXJyYXlQcm90by5zcGxpY2UsIHNwcmVhZGFibGVTeW1ib2wgPSBTeW1ib2wyID8gU3ltYm9sMi5pc0NvbmNhdFNwcmVhZGFibGUgOiB1bmRlZmluZWQyLCBzeW1JdGVyYXRvciA9IFN5bWJvbDIgPyBTeW1ib2wyLml0ZXJhdG9yIDogdW5kZWZpbmVkMiwgc3ltVG9TdHJpbmdUYWcgPSBTeW1ib2wyID8gU3ltYm9sMi50b1N0cmluZ1RhZyA6IHVuZGVmaW5lZDI7XG4gICAgICAgIHZhciBkZWZpbmVQcm9wZXJ0eSA9IGZ1bmN0aW9uKCkge1xuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICB2YXIgZnVuYyA9IGdldE5hdGl2ZShPYmplY3QyLCBcImRlZmluZVByb3BlcnR5XCIpO1xuICAgICAgICAgICAgZnVuYyh7fSwgXCJcIiwge30pO1xuICAgICAgICAgICAgcmV0dXJuIGZ1bmM7XG4gICAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgIH1cbiAgICAgICAgfSgpO1xuICAgICAgICB2YXIgY3R4Q2xlYXJUaW1lb3V0ID0gY29udGV4dC5jbGVhclRpbWVvdXQgIT09IHJvb3QuY2xlYXJUaW1lb3V0ICYmIGNvbnRleHQuY2xlYXJUaW1lb3V0LCBjdHhOb3cgPSBEYXRlMiAmJiBEYXRlMi5ub3cgIT09IHJvb3QuRGF0ZS5ub3cgJiYgRGF0ZTIubm93LCBjdHhTZXRUaW1lb3V0ID0gY29udGV4dC5zZXRUaW1lb3V0ICE9PSByb290LnNldFRpbWVvdXQgJiYgY29udGV4dC5zZXRUaW1lb3V0O1xuICAgICAgICB2YXIgbmF0aXZlQ2VpbCA9IE1hdGgyLmNlaWwsIG5hdGl2ZUZsb29yID0gTWF0aDIuZmxvb3IsIG5hdGl2ZUdldFN5bWJvbHMgPSBPYmplY3QyLmdldE93blByb3BlcnR5U3ltYm9scywgbmF0aXZlSXNCdWZmZXIgPSBCdWZmZXIyID8gQnVmZmVyMi5pc0J1ZmZlciA6IHVuZGVmaW5lZDIsIG5hdGl2ZUlzRmluaXRlID0gY29udGV4dC5pc0Zpbml0ZSwgbmF0aXZlSm9pbiA9IGFycmF5UHJvdG8uam9pbiwgbmF0aXZlS2V5cyA9IG92ZXJBcmcoT2JqZWN0Mi5rZXlzLCBPYmplY3QyKSwgbmF0aXZlTWF4ID0gTWF0aDIubWF4LCBuYXRpdmVNaW4gPSBNYXRoMi5taW4sIG5hdGl2ZU5vdyA9IERhdGUyLm5vdywgbmF0aXZlUGFyc2VJbnQgPSBjb250ZXh0LnBhcnNlSW50LCBuYXRpdmVSYW5kb20gPSBNYXRoMi5yYW5kb20sIG5hdGl2ZVJldmVyc2UgPSBhcnJheVByb3RvLnJldmVyc2U7XG4gICAgICAgIHZhciBEYXRhVmlldzIgPSBnZXROYXRpdmUoY29udGV4dCwgXCJEYXRhVmlld1wiKSwgTWFwMiA9IGdldE5hdGl2ZShjb250ZXh0LCBcIk1hcFwiKSwgUHJvbWlzZTIgPSBnZXROYXRpdmUoY29udGV4dCwgXCJQcm9taXNlXCIpLCBTZXQyID0gZ2V0TmF0aXZlKGNvbnRleHQsIFwiU2V0XCIpLCBXZWFrTWFwMiA9IGdldE5hdGl2ZShjb250ZXh0LCBcIldlYWtNYXBcIiksIG5hdGl2ZUNyZWF0ZSA9IGdldE5hdGl2ZShPYmplY3QyLCBcImNyZWF0ZVwiKTtcbiAgICAgICAgdmFyIG1ldGFNYXAgPSBXZWFrTWFwMiAmJiBuZXcgV2Vha01hcDIoKTtcbiAgICAgICAgdmFyIHJlYWxOYW1lcyA9IHt9O1xuICAgICAgICB2YXIgZGF0YVZpZXdDdG9yU3RyaW5nID0gdG9Tb3VyY2UoRGF0YVZpZXcyKSwgbWFwQ3RvclN0cmluZyA9IHRvU291cmNlKE1hcDIpLCBwcm9taXNlQ3RvclN0cmluZyA9IHRvU291cmNlKFByb21pc2UyKSwgc2V0Q3RvclN0cmluZyA9IHRvU291cmNlKFNldDIpLCB3ZWFrTWFwQ3RvclN0cmluZyA9IHRvU291cmNlKFdlYWtNYXAyKTtcbiAgICAgICAgdmFyIHN5bWJvbFByb3RvID0gU3ltYm9sMiA/IFN5bWJvbDIucHJvdG90eXBlIDogdW5kZWZpbmVkMiwgc3ltYm9sVmFsdWVPZiA9IHN5bWJvbFByb3RvID8gc3ltYm9sUHJvdG8udmFsdWVPZiA6IHVuZGVmaW5lZDIsIHN5bWJvbFRvU3RyaW5nID0gc3ltYm9sUHJvdG8gPyBzeW1ib2xQcm90by50b1N0cmluZyA6IHVuZGVmaW5lZDI7XG4gICAgICAgIGZ1bmN0aW9uIGxvZGFzaCh2YWx1ZSkge1xuICAgICAgICAgIGlmIChpc09iamVjdExpa2UodmFsdWUpICYmICFpc0FycmF5KHZhbHVlKSAmJiAhKHZhbHVlIGluc3RhbmNlb2YgTGF6eVdyYXBwZXIpKSB7XG4gICAgICAgICAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBMb2Rhc2hXcmFwcGVyKSB7XG4gICAgICAgICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChoYXNPd25Qcm9wZXJ0eS5jYWxsKHZhbHVlLCBcIl9fd3JhcHBlZF9fXCIpKSB7XG4gICAgICAgICAgICAgIHJldHVybiB3cmFwcGVyQ2xvbmUodmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gbmV3IExvZGFzaFdyYXBwZXIodmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIHZhciBiYXNlQ3JlYXRlID0gLyogQF9fUFVSRV9fICovIGZ1bmN0aW9uKCkge1xuICAgICAgICAgIGZ1bmN0aW9uIG9iamVjdCgpIHtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKHByb3RvKSB7XG4gICAgICAgICAgICBpZiAoIWlzT2JqZWN0KHByb3RvKSkge1xuICAgICAgICAgICAgICByZXR1cm4ge307XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAob2JqZWN0Q3JlYXRlKSB7XG4gICAgICAgICAgICAgIHJldHVybiBvYmplY3RDcmVhdGUocHJvdG8pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgb2JqZWN0LnByb3RvdHlwZSA9IHByb3RvO1xuICAgICAgICAgICAgdmFyIHJlc3VsdDIgPSBuZXcgb2JqZWN0KCk7XG4gICAgICAgICAgICBvYmplY3QucHJvdG90eXBlID0gdW5kZWZpbmVkMjtcbiAgICAgICAgICAgIHJldHVybiByZXN1bHQyO1xuICAgICAgICAgIH07XG4gICAgICAgIH0oKTtcbiAgICAgICAgZnVuY3Rpb24gYmFzZUxvZGFzaCgpIHtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBMb2Rhc2hXcmFwcGVyKHZhbHVlLCBjaGFpbkFsbCkge1xuICAgICAgICAgIHRoaXMuX193cmFwcGVkX18gPSB2YWx1ZTtcbiAgICAgICAgICB0aGlzLl9fYWN0aW9uc19fID0gW107XG4gICAgICAgICAgdGhpcy5fX2NoYWluX18gPSAhIWNoYWluQWxsO1xuICAgICAgICAgIHRoaXMuX19pbmRleF9fID0gMDtcbiAgICAgICAgICB0aGlzLl9fdmFsdWVzX18gPSB1bmRlZmluZWQyO1xuICAgICAgICB9XG4gICAgICAgIGxvZGFzaC50ZW1wbGF0ZVNldHRpbmdzID0ge1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIFVzZWQgdG8gZGV0ZWN0IGBkYXRhYCBwcm9wZXJ0eSB2YWx1ZXMgdG8gYmUgSFRNTC1lc2NhcGVkLlxuICAgICAgICAgICAqXG4gICAgICAgICAgICogQG1lbWJlck9mIF8udGVtcGxhdGVTZXR0aW5nc1xuICAgICAgICAgICAqIEB0eXBlIHtSZWdFeHB9XG4gICAgICAgICAgICovXG4gICAgICAgICAgXCJlc2NhcGVcIjogcmVFc2NhcGUsXG4gICAgICAgICAgLyoqXG4gICAgICAgICAgICogVXNlZCB0byBkZXRlY3QgY29kZSB0byBiZSBldmFsdWF0ZWQuXG4gICAgICAgICAgICpcbiAgICAgICAgICAgKiBAbWVtYmVyT2YgXy50ZW1wbGF0ZVNldHRpbmdzXG4gICAgICAgICAgICogQHR5cGUge1JlZ0V4cH1cbiAgICAgICAgICAgKi9cbiAgICAgICAgICBcImV2YWx1YXRlXCI6IHJlRXZhbHVhdGUsXG4gICAgICAgICAgLyoqXG4gICAgICAgICAgICogVXNlZCB0byBkZXRlY3QgYGRhdGFgIHByb3BlcnR5IHZhbHVlcyB0byBpbmplY3QuXG4gICAgICAgICAgICpcbiAgICAgICAgICAgKiBAbWVtYmVyT2YgXy50ZW1wbGF0ZVNldHRpbmdzXG4gICAgICAgICAgICogQHR5cGUge1JlZ0V4cH1cbiAgICAgICAgICAgKi9cbiAgICAgICAgICBcImludGVycG9sYXRlXCI6IHJlSW50ZXJwb2xhdGUsXG4gICAgICAgICAgLyoqXG4gICAgICAgICAgICogVXNlZCB0byByZWZlcmVuY2UgdGhlIGRhdGEgb2JqZWN0IGluIHRoZSB0ZW1wbGF0ZSB0ZXh0LlxuICAgICAgICAgICAqXG4gICAgICAgICAgICogQG1lbWJlck9mIF8udGVtcGxhdGVTZXR0aW5nc1xuICAgICAgICAgICAqIEB0eXBlIHtzdHJpbmd9XG4gICAgICAgICAgICovXG4gICAgICAgICAgXCJ2YXJpYWJsZVwiOiBcIlwiLFxuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIFVzZWQgdG8gaW1wb3J0IHZhcmlhYmxlcyBpbnRvIHRoZSBjb21waWxlZCB0ZW1wbGF0ZS5cbiAgICAgICAgICAgKlxuICAgICAgICAgICAqIEBtZW1iZXJPZiBfLnRlbXBsYXRlU2V0dGluZ3NcbiAgICAgICAgICAgKiBAdHlwZSB7T2JqZWN0fVxuICAgICAgICAgICAqL1xuICAgICAgICAgIFwiaW1wb3J0c1wiOiB7XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIEEgcmVmZXJlbmNlIHRvIHRoZSBgbG9kYXNoYCBmdW5jdGlvbi5cbiAgICAgICAgICAgICAqXG4gICAgICAgICAgICAgKiBAbWVtYmVyT2YgXy50ZW1wbGF0ZVNldHRpbmdzLmltcG9ydHNcbiAgICAgICAgICAgICAqIEB0eXBlIHtGdW5jdGlvbn1cbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgXCJfXCI6IGxvZGFzaFxuICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgICAgbG9kYXNoLnByb3RvdHlwZSA9IGJhc2VMb2Rhc2gucHJvdG90eXBlO1xuICAgICAgICBsb2Rhc2gucHJvdG90eXBlLmNvbnN0cnVjdG9yID0gbG9kYXNoO1xuICAgICAgICBMb2Rhc2hXcmFwcGVyLnByb3RvdHlwZSA9IGJhc2VDcmVhdGUoYmFzZUxvZGFzaC5wcm90b3R5cGUpO1xuICAgICAgICBMb2Rhc2hXcmFwcGVyLnByb3RvdHlwZS5jb25zdHJ1Y3RvciA9IExvZGFzaFdyYXBwZXI7XG4gICAgICAgIGZ1bmN0aW9uIExhenlXcmFwcGVyKHZhbHVlKSB7XG4gICAgICAgICAgdGhpcy5fX3dyYXBwZWRfXyA9IHZhbHVlO1xuICAgICAgICAgIHRoaXMuX19hY3Rpb25zX18gPSBbXTtcbiAgICAgICAgICB0aGlzLl9fZGlyX18gPSAxO1xuICAgICAgICAgIHRoaXMuX19maWx0ZXJlZF9fID0gZmFsc2U7XG4gICAgICAgICAgdGhpcy5fX2l0ZXJhdGVlc19fID0gW107XG4gICAgICAgICAgdGhpcy5fX3Rha2VDb3VudF9fID0gTUFYX0FSUkFZX0xFTkdUSDtcbiAgICAgICAgICB0aGlzLl9fdmlld3NfXyA9IFtdO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGxhenlDbG9uZSgpIHtcbiAgICAgICAgICB2YXIgcmVzdWx0MiA9IG5ldyBMYXp5V3JhcHBlcih0aGlzLl9fd3JhcHBlZF9fKTtcbiAgICAgICAgICByZXN1bHQyLl9fYWN0aW9uc19fID0gY29weUFycmF5KHRoaXMuX19hY3Rpb25zX18pO1xuICAgICAgICAgIHJlc3VsdDIuX19kaXJfXyA9IHRoaXMuX19kaXJfXztcbiAgICAgICAgICByZXN1bHQyLl9fZmlsdGVyZWRfXyA9IHRoaXMuX19maWx0ZXJlZF9fO1xuICAgICAgICAgIHJlc3VsdDIuX19pdGVyYXRlZXNfXyA9IGNvcHlBcnJheSh0aGlzLl9faXRlcmF0ZWVzX18pO1xuICAgICAgICAgIHJlc3VsdDIuX190YWtlQ291bnRfXyA9IHRoaXMuX190YWtlQ291bnRfXztcbiAgICAgICAgICByZXN1bHQyLl9fdmlld3NfXyA9IGNvcHlBcnJheSh0aGlzLl9fdmlld3NfXyk7XG4gICAgICAgICAgcmV0dXJuIHJlc3VsdDI7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gbGF6eVJldmVyc2UoKSB7XG4gICAgICAgICAgaWYgKHRoaXMuX19maWx0ZXJlZF9fKSB7XG4gICAgICAgICAgICB2YXIgcmVzdWx0MiA9IG5ldyBMYXp5V3JhcHBlcih0aGlzKTtcbiAgICAgICAgICAgIHJlc3VsdDIuX19kaXJfXyA9IC0xO1xuICAgICAgICAgICAgcmVzdWx0Mi5fX2ZpbHRlcmVkX18gPSB0cnVlO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXN1bHQyID0gdGhpcy5jbG9uZSgpO1xuICAgICAgICAgICAgcmVzdWx0Mi5fX2Rpcl9fICo9IC0xO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gcmVzdWx0MjtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBsYXp5VmFsdWUoKSB7XG4gICAgICAgICAgdmFyIGFycmF5ID0gdGhpcy5fX3dyYXBwZWRfXy52YWx1ZSgpLCBkaXIgPSB0aGlzLl9fZGlyX18sIGlzQXJyID0gaXNBcnJheShhcnJheSksIGlzUmlnaHQgPSBkaXIgPCAwLCBhcnJMZW5ndGggPSBpc0FyciA/IGFycmF5Lmxlbmd0aCA6IDAsIHZpZXcgPSBnZXRWaWV3KDAsIGFyckxlbmd0aCwgdGhpcy5fX3ZpZXdzX18pLCBzdGFydCA9IHZpZXcuc3RhcnQsIGVuZCA9IHZpZXcuZW5kLCBsZW5ndGggPSBlbmQgLSBzdGFydCwgaW5kZXggPSBpc1JpZ2h0ID8gZW5kIDogc3RhcnQgLSAxLCBpdGVyYXRlZXMgPSB0aGlzLl9faXRlcmF0ZWVzX18sIGl0ZXJMZW5ndGggPSBpdGVyYXRlZXMubGVuZ3RoLCByZXNJbmRleCA9IDAsIHRha2VDb3VudCA9IG5hdGl2ZU1pbihsZW5ndGgsIHRoaXMuX190YWtlQ291bnRfXyk7XG4gICAgICAgICAgaWYgKCFpc0FyciB8fCAhaXNSaWdodCAmJiBhcnJMZW5ndGggPT0gbGVuZ3RoICYmIHRha2VDb3VudCA9PSBsZW5ndGgpIHtcbiAgICAgICAgICAgIHJldHVybiBiYXNlV3JhcHBlclZhbHVlKGFycmF5LCB0aGlzLl9fYWN0aW9uc19fKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdmFyIHJlc3VsdDIgPSBbXTtcbiAgICAgICAgICBvdXRlcjpcbiAgICAgICAgICAgIHdoaWxlIChsZW5ndGgtLSAmJiByZXNJbmRleCA8IHRha2VDb3VudCkge1xuICAgICAgICAgICAgICBpbmRleCArPSBkaXI7XG4gICAgICAgICAgICAgIHZhciBpdGVySW5kZXggPSAtMSwgdmFsdWUgPSBhcnJheVtpbmRleF07XG4gICAgICAgICAgICAgIHdoaWxlICgrK2l0ZXJJbmRleCA8IGl0ZXJMZW5ndGgpIHtcbiAgICAgICAgICAgICAgICB2YXIgZGF0YSA9IGl0ZXJhdGVlc1tpdGVySW5kZXhdLCBpdGVyYXRlZTIgPSBkYXRhLml0ZXJhdGVlLCB0eXBlID0gZGF0YS50eXBlLCBjb21wdXRlZCA9IGl0ZXJhdGVlMih2YWx1ZSk7XG4gICAgICAgICAgICAgICAgaWYgKHR5cGUgPT0gTEFaWV9NQVBfRkxBRykge1xuICAgICAgICAgICAgICAgICAgdmFsdWUgPSBjb21wdXRlZDtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCFjb21wdXRlZCkge1xuICAgICAgICAgICAgICAgICAgaWYgKHR5cGUgPT0gTEFaWV9GSUxURVJfRkxBRykge1xuICAgICAgICAgICAgICAgICAgICBjb250aW51ZSBvdXRlcjtcbiAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrIG91dGVyO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICByZXN1bHQyW3Jlc0luZGV4KytdID0gdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHJlc3VsdDI7XG4gICAgICAgIH1cbiAgICAgICAgTGF6eVdyYXBwZXIucHJvdG90eXBlID0gYmFzZUNyZWF0ZShiYXNlTG9kYXNoLnByb3RvdHlwZSk7XG4gICAgICAgIExhenlXcmFwcGVyLnByb3RvdHlwZS5jb25zdHJ1Y3RvciA9IExhenlXcmFwcGVyO1xuICAgICAgICBmdW5jdGlvbiBIYXNoKGVudHJpZXMpIHtcbiAgICAgICAgICB2YXIgaW5kZXggPSAtMSwgbGVuZ3RoID0gZW50cmllcyA9PSBudWxsID8gMCA6IGVudHJpZXMubGVuZ3RoO1xuICAgICAgICAgIHRoaXMuY2xlYXIoKTtcbiAgICAgICAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgICAgICAgICAgdmFyIGVudHJ5MiA9IGVudHJpZXNbaW5kZXhdO1xuICAgICAgICAgICAgdGhpcy5zZXQoZW50cnkyWzBdLCBlbnRyeTJbMV0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBoYXNoQ2xlYXIoKSB7XG4gICAgICAgICAgdGhpcy5fX2RhdGFfXyA9IG5hdGl2ZUNyZWF0ZSA/IG5hdGl2ZUNyZWF0ZShudWxsKSA6IHt9O1xuICAgICAgICAgIHRoaXMuc2l6ZSA9IDA7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gaGFzaERlbGV0ZShrZXkpIHtcbiAgICAgICAgICB2YXIgcmVzdWx0MiA9IHRoaXMuaGFzKGtleSkgJiYgZGVsZXRlIHRoaXMuX19kYXRhX19ba2V5XTtcbiAgICAgICAgICB0aGlzLnNpemUgLT0gcmVzdWx0MiA/IDEgOiAwO1xuICAgICAgICAgIHJldHVybiByZXN1bHQyO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGhhc2hHZXQoa2V5KSB7XG4gICAgICAgICAgdmFyIGRhdGEgPSB0aGlzLl9fZGF0YV9fO1xuICAgICAgICAgIGlmIChuYXRpdmVDcmVhdGUpIHtcbiAgICAgICAgICAgIHZhciByZXN1bHQyID0gZGF0YVtrZXldO1xuICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDIgPT09IEhBU0hfVU5ERUZJTkVEID8gdW5kZWZpbmVkMiA6IHJlc3VsdDI7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBoYXNPd25Qcm9wZXJ0eS5jYWxsKGRhdGEsIGtleSkgPyBkYXRhW2tleV0gOiB1bmRlZmluZWQyO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGhhc2hIYXMoa2V5KSB7XG4gICAgICAgICAgdmFyIGRhdGEgPSB0aGlzLl9fZGF0YV9fO1xuICAgICAgICAgIHJldHVybiBuYXRpdmVDcmVhdGUgPyBkYXRhW2tleV0gIT09IHVuZGVmaW5lZDIgOiBoYXNPd25Qcm9wZXJ0eS5jYWxsKGRhdGEsIGtleSk7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gaGFzaFNldChrZXksIHZhbHVlKSB7XG4gICAgICAgICAgdmFyIGRhdGEgPSB0aGlzLl9fZGF0YV9fO1xuICAgICAgICAgIHRoaXMuc2l6ZSArPSB0aGlzLmhhcyhrZXkpID8gMCA6IDE7XG4gICAgICAgICAgZGF0YVtrZXldID0gbmF0aXZlQ3JlYXRlICYmIHZhbHVlID09PSB1bmRlZmluZWQyID8gSEFTSF9VTkRFRklORUQgOiB2YWx1ZTtcbiAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfVxuICAgICAgICBIYXNoLnByb3RvdHlwZS5jbGVhciA9IGhhc2hDbGVhcjtcbiAgICAgICAgSGFzaC5wcm90b3R5cGVbXCJkZWxldGVcIl0gPSBoYXNoRGVsZXRlO1xuICAgICAgICBIYXNoLnByb3RvdHlwZS5nZXQgPSBoYXNoR2V0O1xuICAgICAgICBIYXNoLnByb3RvdHlwZS5oYXMgPSBoYXNoSGFzO1xuICAgICAgICBIYXNoLnByb3RvdHlwZS5zZXQgPSBoYXNoU2V0O1xuICAgICAgICBmdW5jdGlvbiBMaXN0Q2FjaGUoZW50cmllcykge1xuICAgICAgICAgIHZhciBpbmRleCA9IC0xLCBsZW5ndGggPSBlbnRyaWVzID09IG51bGwgPyAwIDogZW50cmllcy5sZW5ndGg7XG4gICAgICAgICAgdGhpcy5jbGVhcigpO1xuICAgICAgICAgIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgICAgICAgICB2YXIgZW50cnkyID0gZW50cmllc1tpbmRleF07XG4gICAgICAgICAgICB0aGlzLnNldChlbnRyeTJbMF0sIGVudHJ5MlsxXSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGxpc3RDYWNoZUNsZWFyKCkge1xuICAgICAgICAgIHRoaXMuX19kYXRhX18gPSBbXTtcbiAgICAgICAgICB0aGlzLnNpemUgPSAwO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGxpc3RDYWNoZURlbGV0ZShrZXkpIHtcbiAgICAgICAgICB2YXIgZGF0YSA9IHRoaXMuX19kYXRhX18sIGluZGV4ID0gYXNzb2NJbmRleE9mKGRhdGEsIGtleSk7XG4gICAgICAgICAgaWYgKGluZGV4IDwgMCkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgIH1cbiAgICAgICAgICB2YXIgbGFzdEluZGV4ID0gZGF0YS5sZW5ndGggLSAxO1xuICAgICAgICAgIGlmIChpbmRleCA9PSBsYXN0SW5kZXgpIHtcbiAgICAgICAgICAgIGRhdGEucG9wKCk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHNwbGljZS5jYWxsKGRhdGEsIGluZGV4LCAxKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgLS10aGlzLnNpemU7XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gbGlzdENhY2hlR2V0KGtleSkge1xuICAgICAgICAgIHZhciBkYXRhID0gdGhpcy5fX2RhdGFfXywgaW5kZXggPSBhc3NvY0luZGV4T2YoZGF0YSwga2V5KTtcbiAgICAgICAgICByZXR1cm4gaW5kZXggPCAwID8gdW5kZWZpbmVkMiA6IGRhdGFbaW5kZXhdWzFdO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGxpc3RDYWNoZUhhcyhrZXkpIHtcbiAgICAgICAgICByZXR1cm4gYXNzb2NJbmRleE9mKHRoaXMuX19kYXRhX18sIGtleSkgPiAtMTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBsaXN0Q2FjaGVTZXQoa2V5LCB2YWx1ZSkge1xuICAgICAgICAgIHZhciBkYXRhID0gdGhpcy5fX2RhdGFfXywgaW5kZXggPSBhc3NvY0luZGV4T2YoZGF0YSwga2V5KTtcbiAgICAgICAgICBpZiAoaW5kZXggPCAwKSB7XG4gICAgICAgICAgICArK3RoaXMuc2l6ZTtcbiAgICAgICAgICAgIGRhdGEucHVzaChba2V5LCB2YWx1ZV0pO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBkYXRhW2luZGV4XVsxXSA9IHZhbHVlO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfVxuICAgICAgICBMaXN0Q2FjaGUucHJvdG90eXBlLmNsZWFyID0gbGlzdENhY2hlQ2xlYXI7XG4gICAgICAgIExpc3RDYWNoZS5wcm90b3R5cGVbXCJkZWxldGVcIl0gPSBsaXN0Q2FjaGVEZWxldGU7XG4gICAgICAgIExpc3RDYWNoZS5wcm90b3R5cGUuZ2V0ID0gbGlzdENhY2hlR2V0O1xuICAgICAgICBMaXN0Q2FjaGUucHJvdG90eXBlLmhhcyA9IGxpc3RDYWNoZUhhcztcbiAgICAgICAgTGlzdENhY2hlLnByb3RvdHlwZS5zZXQgPSBsaXN0Q2FjaGVTZXQ7XG4gICAgICAgIGZ1bmN0aW9uIE1hcENhY2hlKGVudHJpZXMpIHtcbiAgICAgICAgICB2YXIgaW5kZXggPSAtMSwgbGVuZ3RoID0gZW50cmllcyA9PSBudWxsID8gMCA6IGVudHJpZXMubGVuZ3RoO1xuICAgICAgICAgIHRoaXMuY2xlYXIoKTtcbiAgICAgICAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgICAgICAgICAgdmFyIGVudHJ5MiA9IGVudHJpZXNbaW5kZXhdO1xuICAgICAgICAgICAgdGhpcy5zZXQoZW50cnkyWzBdLCBlbnRyeTJbMV0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBtYXBDYWNoZUNsZWFyKCkge1xuICAgICAgICAgIHRoaXMuc2l6ZSA9IDA7XG4gICAgICAgICAgdGhpcy5fX2RhdGFfXyA9IHtcbiAgICAgICAgICAgIFwiaGFzaFwiOiBuZXcgSGFzaCgpLFxuICAgICAgICAgICAgXCJtYXBcIjogbmV3IChNYXAyIHx8IExpc3RDYWNoZSkoKSxcbiAgICAgICAgICAgIFwic3RyaW5nXCI6IG5ldyBIYXNoKClcbiAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIG1hcENhY2hlRGVsZXRlKGtleSkge1xuICAgICAgICAgIHZhciByZXN1bHQyID0gZ2V0TWFwRGF0YSh0aGlzLCBrZXkpW1wiZGVsZXRlXCJdKGtleSk7XG4gICAgICAgICAgdGhpcy5zaXplIC09IHJlc3VsdDIgPyAxIDogMDtcbiAgICAgICAgICByZXR1cm4gcmVzdWx0MjtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBtYXBDYWNoZUdldChrZXkpIHtcbiAgICAgICAgICByZXR1cm4gZ2V0TWFwRGF0YSh0aGlzLCBrZXkpLmdldChrZXkpO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIG1hcENhY2hlSGFzKGtleSkge1xuICAgICAgICAgIHJldHVybiBnZXRNYXBEYXRhKHRoaXMsIGtleSkuaGFzKGtleSk7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gbWFwQ2FjaGVTZXQoa2V5LCB2YWx1ZSkge1xuICAgICAgICAgIHZhciBkYXRhID0gZ2V0TWFwRGF0YSh0aGlzLCBrZXkpLCBzaXplMiA9IGRhdGEuc2l6ZTtcbiAgICAgICAgICBkYXRhLnNldChrZXksIHZhbHVlKTtcbiAgICAgICAgICB0aGlzLnNpemUgKz0gZGF0YS5zaXplID09IHNpemUyID8gMCA6IDE7XG4gICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgIH1cbiAgICAgICAgTWFwQ2FjaGUucHJvdG90eXBlLmNsZWFyID0gbWFwQ2FjaGVDbGVhcjtcbiAgICAgICAgTWFwQ2FjaGUucHJvdG90eXBlW1wiZGVsZXRlXCJdID0gbWFwQ2FjaGVEZWxldGU7XG4gICAgICAgIE1hcENhY2hlLnByb3RvdHlwZS5nZXQgPSBtYXBDYWNoZUdldDtcbiAgICAgICAgTWFwQ2FjaGUucHJvdG90eXBlLmhhcyA9IG1hcENhY2hlSGFzO1xuICAgICAgICBNYXBDYWNoZS5wcm90b3R5cGUuc2V0ID0gbWFwQ2FjaGVTZXQ7XG4gICAgICAgIGZ1bmN0aW9uIFNldENhY2hlKHZhbHVlczIpIHtcbiAgICAgICAgICB2YXIgaW5kZXggPSAtMSwgbGVuZ3RoID0gdmFsdWVzMiA9PSBudWxsID8gMCA6IHZhbHVlczIubGVuZ3RoO1xuICAgICAgICAgIHRoaXMuX19kYXRhX18gPSBuZXcgTWFwQ2FjaGUoKTtcbiAgICAgICAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgICAgICAgICAgdGhpcy5hZGQodmFsdWVzMltpbmRleF0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBzZXRDYWNoZUFkZCh2YWx1ZSkge1xuICAgICAgICAgIHRoaXMuX19kYXRhX18uc2V0KHZhbHVlLCBIQVNIX1VOREVGSU5FRCk7XG4gICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gc2V0Q2FjaGVIYXModmFsdWUpIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5fX2RhdGFfXy5oYXModmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIFNldENhY2hlLnByb3RvdHlwZS5hZGQgPSBTZXRDYWNoZS5wcm90b3R5cGUucHVzaCA9IHNldENhY2hlQWRkO1xuICAgICAgICBTZXRDYWNoZS5wcm90b3R5cGUuaGFzID0gc2V0Q2FjaGVIYXM7XG4gICAgICAgIGZ1bmN0aW9uIFN0YWNrKGVudHJpZXMpIHtcbiAgICAgICAgICB2YXIgZGF0YSA9IHRoaXMuX19kYXRhX18gPSBuZXcgTGlzdENhY2hlKGVudHJpZXMpO1xuICAgICAgICAgIHRoaXMuc2l6ZSA9IGRhdGEuc2l6ZTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBzdGFja0NsZWFyKCkge1xuICAgICAgICAgIHRoaXMuX19kYXRhX18gPSBuZXcgTGlzdENhY2hlKCk7XG4gICAgICAgICAgdGhpcy5zaXplID0gMDtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBzdGFja0RlbGV0ZShrZXkpIHtcbiAgICAgICAgICB2YXIgZGF0YSA9IHRoaXMuX19kYXRhX18sIHJlc3VsdDIgPSBkYXRhW1wiZGVsZXRlXCJdKGtleSk7XG4gICAgICAgICAgdGhpcy5zaXplID0gZGF0YS5zaXplO1xuICAgICAgICAgIHJldHVybiByZXN1bHQyO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIHN0YWNrR2V0KGtleSkge1xuICAgICAgICAgIHJldHVybiB0aGlzLl9fZGF0YV9fLmdldChrZXkpO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIHN0YWNrSGFzKGtleSkge1xuICAgICAgICAgIHJldHVybiB0aGlzLl9fZGF0YV9fLmhhcyhrZXkpO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIHN0YWNrU2V0KGtleSwgdmFsdWUpIHtcbiAgICAgICAgICB2YXIgZGF0YSA9IHRoaXMuX19kYXRhX187XG4gICAgICAgICAgaWYgKGRhdGEgaW5zdGFuY2VvZiBMaXN0Q2FjaGUpIHtcbiAgICAgICAgICAgIHZhciBwYWlycyA9IGRhdGEuX19kYXRhX187XG4gICAgICAgICAgICBpZiAoIU1hcDIgfHwgcGFpcnMubGVuZ3RoIDwgTEFSR0VfQVJSQVlfU0laRSAtIDEpIHtcbiAgICAgICAgICAgICAgcGFpcnMucHVzaChba2V5LCB2YWx1ZV0pO1xuICAgICAgICAgICAgICB0aGlzLnNpemUgPSArK2RhdGEuc2l6ZTtcbiAgICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkYXRhID0gdGhpcy5fX2RhdGFfXyA9IG5ldyBNYXBDYWNoZShwYWlycyk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGRhdGEuc2V0KGtleSwgdmFsdWUpO1xuICAgICAgICAgIHRoaXMuc2l6ZSA9IGRhdGEuc2l6ZTtcbiAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfVxuICAgICAgICBTdGFjay5wcm90b3R5cGUuY2xlYXIgPSBzdGFja0NsZWFyO1xuICAgICAgICBTdGFjay5wcm90b3R5cGVbXCJkZWxldGVcIl0gPSBzdGFja0RlbGV0ZTtcbiAgICAgICAgU3RhY2sucHJvdG90eXBlLmdldCA9IHN0YWNrR2V0O1xuICAgICAgICBTdGFjay5wcm90b3R5cGUuaGFzID0gc3RhY2tIYXM7XG4gICAgICAgIFN0YWNrLnByb3RvdHlwZS5zZXQgPSBzdGFja1NldDtcbiAgICAgICAgZnVuY3Rpb24gYXJyYXlMaWtlS2V5cyh2YWx1ZSwgaW5oZXJpdGVkKSB7XG4gICAgICAgICAgdmFyIGlzQXJyID0gaXNBcnJheSh2YWx1ZSksIGlzQXJnID0gIWlzQXJyICYmIGlzQXJndW1lbnRzKHZhbHVlKSwgaXNCdWZmID0gIWlzQXJyICYmICFpc0FyZyAmJiBpc0J1ZmZlcih2YWx1ZSksIGlzVHlwZSA9ICFpc0FyciAmJiAhaXNBcmcgJiYgIWlzQnVmZiAmJiBpc1R5cGVkQXJyYXkodmFsdWUpLCBza2lwSW5kZXhlcyA9IGlzQXJyIHx8IGlzQXJnIHx8IGlzQnVmZiB8fCBpc1R5cGUsIHJlc3VsdDIgPSBza2lwSW5kZXhlcyA/IGJhc2VUaW1lcyh2YWx1ZS5sZW5ndGgsIFN0cmluZzIpIDogW10sIGxlbmd0aCA9IHJlc3VsdDIubGVuZ3RoO1xuICAgICAgICAgIGZvciAodmFyIGtleSBpbiB2YWx1ZSkge1xuICAgICAgICAgICAgaWYgKChpbmhlcml0ZWQgfHwgaGFzT3duUHJvcGVydHkuY2FsbCh2YWx1ZSwga2V5KSkgJiYgIShza2lwSW5kZXhlcyAmJiAvLyBTYWZhcmkgOSBoYXMgZW51bWVyYWJsZSBgYXJndW1lbnRzLmxlbmd0aGAgaW4gc3RyaWN0IG1vZGUuXG4gICAgICAgICAgICAoa2V5ID09IFwibGVuZ3RoXCIgfHwgLy8gTm9kZS5qcyAwLjEwIGhhcyBlbnVtZXJhYmxlIG5vbi1pbmRleCBwcm9wZXJ0aWVzIG9uIGJ1ZmZlcnMuXG4gICAgICAgICAgICBpc0J1ZmYgJiYgKGtleSA9PSBcIm9mZnNldFwiIHx8IGtleSA9PSBcInBhcmVudFwiKSB8fCAvLyBQaGFudG9tSlMgMiBoYXMgZW51bWVyYWJsZSBub24taW5kZXggcHJvcGVydGllcyBvbiB0eXBlZCBhcnJheXMuXG4gICAgICAgICAgICBpc1R5cGUgJiYgKGtleSA9PSBcImJ1ZmZlclwiIHx8IGtleSA9PSBcImJ5dGVMZW5ndGhcIiB8fCBrZXkgPT0gXCJieXRlT2Zmc2V0XCIpIHx8IC8vIFNraXAgaW5kZXggcHJvcGVydGllcy5cbiAgICAgICAgICAgIGlzSW5kZXgoa2V5LCBsZW5ndGgpKSkpIHtcbiAgICAgICAgICAgICAgcmVzdWx0Mi5wdXNoKGtleSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiByZXN1bHQyO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGFycmF5U2FtcGxlKGFycmF5KSB7XG4gICAgICAgICAgdmFyIGxlbmd0aCA9IGFycmF5Lmxlbmd0aDtcbiAgICAgICAgICByZXR1cm4gbGVuZ3RoID8gYXJyYXlbYmFzZVJhbmRvbSgwLCBsZW5ndGggLSAxKV0gOiB1bmRlZmluZWQyO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGFycmF5U2FtcGxlU2l6ZShhcnJheSwgbikge1xuICAgICAgICAgIHJldHVybiBzaHVmZmxlU2VsZihjb3B5QXJyYXkoYXJyYXkpLCBiYXNlQ2xhbXAobiwgMCwgYXJyYXkubGVuZ3RoKSk7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gYXJyYXlTaHVmZmxlKGFycmF5KSB7XG4gICAgICAgICAgcmV0dXJuIHNodWZmbGVTZWxmKGNvcHlBcnJheShhcnJheSkpO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGFzc2lnbk1lcmdlVmFsdWUob2JqZWN0LCBrZXksIHZhbHVlKSB7XG4gICAgICAgICAgaWYgKHZhbHVlICE9PSB1bmRlZmluZWQyICYmICFlcShvYmplY3Rba2V5XSwgdmFsdWUpIHx8IHZhbHVlID09PSB1bmRlZmluZWQyICYmICEoa2V5IGluIG9iamVjdCkpIHtcbiAgICAgICAgICAgIGJhc2VBc3NpZ25WYWx1ZShvYmplY3QsIGtleSwgdmFsdWUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBhc3NpZ25WYWx1ZShvYmplY3QsIGtleSwgdmFsdWUpIHtcbiAgICAgICAgICB2YXIgb2JqVmFsdWUgPSBvYmplY3Rba2V5XTtcbiAgICAgICAgICBpZiAoIShoYXNPd25Qcm9wZXJ0eS5jYWxsKG9iamVjdCwga2V5KSAmJiBlcShvYmpWYWx1ZSwgdmFsdWUpKSB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkMiAmJiAhKGtleSBpbiBvYmplY3QpKSB7XG4gICAgICAgICAgICBiYXNlQXNzaWduVmFsdWUob2JqZWN0LCBrZXksIHZhbHVlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gYXNzb2NJbmRleE9mKGFycmF5LCBrZXkpIHtcbiAgICAgICAgICB2YXIgbGVuZ3RoID0gYXJyYXkubGVuZ3RoO1xuICAgICAgICAgIHdoaWxlIChsZW5ndGgtLSkge1xuICAgICAgICAgICAgaWYgKGVxKGFycmF5W2xlbmd0aF1bMF0sIGtleSkpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIGxlbmd0aDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIC0xO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGJhc2VBZ2dyZWdhdG9yKGNvbGxlY3Rpb24sIHNldHRlciwgaXRlcmF0ZWUyLCBhY2N1bXVsYXRvcikge1xuICAgICAgICAgIGJhc2VFYWNoKGNvbGxlY3Rpb24sIGZ1bmN0aW9uKHZhbHVlLCBrZXksIGNvbGxlY3Rpb24yKSB7XG4gICAgICAgICAgICBzZXR0ZXIoYWNjdW11bGF0b3IsIHZhbHVlLCBpdGVyYXRlZTIodmFsdWUpLCBjb2xsZWN0aW9uMik7XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgcmV0dXJuIGFjY3VtdWxhdG9yO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGJhc2VBc3NpZ24ob2JqZWN0LCBzb3VyY2UpIHtcbiAgICAgICAgICByZXR1cm4gb2JqZWN0ICYmIGNvcHlPYmplY3Qoc291cmNlLCBrZXlzKHNvdXJjZSksIG9iamVjdCk7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gYmFzZUFzc2lnbkluKG9iamVjdCwgc291cmNlKSB7XG4gICAgICAgICAgcmV0dXJuIG9iamVjdCAmJiBjb3B5T2JqZWN0KHNvdXJjZSwga2V5c0luKHNvdXJjZSksIG9iamVjdCk7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gYmFzZUFzc2lnblZhbHVlKG9iamVjdCwga2V5LCB2YWx1ZSkge1xuICAgICAgICAgIGlmIChrZXkgPT0gXCJfX3Byb3RvX19cIiAmJiBkZWZpbmVQcm9wZXJ0eSkge1xuICAgICAgICAgICAgZGVmaW5lUHJvcGVydHkob2JqZWN0LCBrZXksIHtcbiAgICAgICAgICAgICAgXCJjb25maWd1cmFibGVcIjogdHJ1ZSxcbiAgICAgICAgICAgICAgXCJlbnVtZXJhYmxlXCI6IHRydWUsXG4gICAgICAgICAgICAgIFwidmFsdWVcIjogdmFsdWUsXG4gICAgICAgICAgICAgIFwid3JpdGFibGVcIjogdHJ1ZVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIG9iamVjdFtrZXldID0gdmFsdWU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGJhc2VBdChvYmplY3QsIHBhdGhzKSB7XG4gICAgICAgICAgdmFyIGluZGV4ID0gLTEsIGxlbmd0aCA9IHBhdGhzLmxlbmd0aCwgcmVzdWx0MiA9IEFycmF5MihsZW5ndGgpLCBza2lwID0gb2JqZWN0ID09IG51bGw7XG4gICAgICAgICAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICAgICAgICAgIHJlc3VsdDJbaW5kZXhdID0gc2tpcCA/IHVuZGVmaW5lZDIgOiBnZXQob2JqZWN0LCBwYXRoc1tpbmRleF0pO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gcmVzdWx0MjtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBiYXNlQ2xhbXAobnVtYmVyLCBsb3dlciwgdXBwZXIpIHtcbiAgICAgICAgICBpZiAobnVtYmVyID09PSBudW1iZXIpIHtcbiAgICAgICAgICAgIGlmICh1cHBlciAhPT0gdW5kZWZpbmVkMikge1xuICAgICAgICAgICAgICBudW1iZXIgPSBudW1iZXIgPD0gdXBwZXIgPyBudW1iZXIgOiB1cHBlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChsb3dlciAhPT0gdW5kZWZpbmVkMikge1xuICAgICAgICAgICAgICBudW1iZXIgPSBudW1iZXIgPj0gbG93ZXIgPyBudW1iZXIgOiBsb3dlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIG51bWJlcjtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBiYXNlQ2xvbmUodmFsdWUsIGJpdG1hc2ssIGN1c3RvbWl6ZXIsIGtleSwgb2JqZWN0LCBzdGFjaykge1xuICAgICAgICAgIHZhciByZXN1bHQyLCBpc0RlZXAgPSBiaXRtYXNrICYgQ0xPTkVfREVFUF9GTEFHLCBpc0ZsYXQgPSBiaXRtYXNrICYgQ0xPTkVfRkxBVF9GTEFHLCBpc0Z1bGwgPSBiaXRtYXNrICYgQ0xPTkVfU1lNQk9MU19GTEFHO1xuICAgICAgICAgIGlmIChjdXN0b21pemVyKSB7XG4gICAgICAgICAgICByZXN1bHQyID0gb2JqZWN0ID8gY3VzdG9taXplcih2YWx1ZSwga2V5LCBvYmplY3QsIHN0YWNrKSA6IGN1c3RvbWl6ZXIodmFsdWUpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAocmVzdWx0MiAhPT0gdW5kZWZpbmVkMikge1xuICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDI7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmICghaXNPYmplY3QodmFsdWUpKSB7XG4gICAgICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICAgICAgfVxuICAgICAgICAgIHZhciBpc0FyciA9IGlzQXJyYXkodmFsdWUpO1xuICAgICAgICAgIGlmIChpc0Fycikge1xuICAgICAgICAgICAgcmVzdWx0MiA9IGluaXRDbG9uZUFycmF5KHZhbHVlKTtcbiAgICAgICAgICAgIGlmICghaXNEZWVwKSB7XG4gICAgICAgICAgICAgIHJldHVybiBjb3B5QXJyYXkodmFsdWUsIHJlc3VsdDIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB2YXIgdGFnID0gZ2V0VGFnKHZhbHVlKSwgaXNGdW5jID0gdGFnID09IGZ1bmNUYWcgfHwgdGFnID09IGdlblRhZztcbiAgICAgICAgICAgIGlmIChpc0J1ZmZlcih2YWx1ZSkpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIGNsb25lQnVmZmVyKHZhbHVlLCBpc0RlZXApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHRhZyA9PSBvYmplY3RUYWcgfHwgdGFnID09IGFyZ3NUYWcgfHwgaXNGdW5jICYmICFvYmplY3QpIHtcbiAgICAgICAgICAgICAgcmVzdWx0MiA9IGlzRmxhdCB8fCBpc0Z1bmMgPyB7fSA6IGluaXRDbG9uZU9iamVjdCh2YWx1ZSk7XG4gICAgICAgICAgICAgIGlmICghaXNEZWVwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGlzRmxhdCA/IGNvcHlTeW1ib2xzSW4odmFsdWUsIGJhc2VBc3NpZ25JbihyZXN1bHQyLCB2YWx1ZSkpIDogY29weVN5bWJvbHModmFsdWUsIGJhc2VBc3NpZ24ocmVzdWx0MiwgdmFsdWUpKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgaWYgKCFjbG9uZWFibGVUYWdzW3RhZ10pIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gb2JqZWN0ID8gdmFsdWUgOiB7fTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICByZXN1bHQyID0gaW5pdENsb25lQnlUYWcodmFsdWUsIHRhZywgaXNEZWVwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgc3RhY2sgfHwgKHN0YWNrID0gbmV3IFN0YWNrKCkpO1xuICAgICAgICAgIHZhciBzdGFja2VkID0gc3RhY2suZ2V0KHZhbHVlKTtcbiAgICAgICAgICBpZiAoc3RhY2tlZCkge1xuICAgICAgICAgICAgcmV0dXJuIHN0YWNrZWQ7XG4gICAgICAgICAgfVxuICAgICAgICAgIHN0YWNrLnNldCh2YWx1ZSwgcmVzdWx0Mik7XG4gICAgICAgICAgaWYgKGlzU2V0KHZhbHVlKSkge1xuICAgICAgICAgICAgdmFsdWUuZm9yRWFjaChmdW5jdGlvbihzdWJWYWx1ZSkge1xuICAgICAgICAgICAgICByZXN1bHQyLmFkZChiYXNlQ2xvbmUoc3ViVmFsdWUsIGJpdG1hc2ssIGN1c3RvbWl6ZXIsIHN1YlZhbHVlLCB2YWx1ZSwgc3RhY2spKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0gZWxzZSBpZiAoaXNNYXAodmFsdWUpKSB7XG4gICAgICAgICAgICB2YWx1ZS5mb3JFYWNoKGZ1bmN0aW9uKHN1YlZhbHVlLCBrZXkyKSB7XG4gICAgICAgICAgICAgIHJlc3VsdDIuc2V0KGtleTIsIGJhc2VDbG9uZShzdWJWYWx1ZSwgYml0bWFzaywgY3VzdG9taXplciwga2V5MiwgdmFsdWUsIHN0YWNrKSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdmFyIGtleXNGdW5jID0gaXNGdWxsID8gaXNGbGF0ID8gZ2V0QWxsS2V5c0luIDogZ2V0QWxsS2V5cyA6IGlzRmxhdCA/IGtleXNJbiA6IGtleXM7XG4gICAgICAgICAgdmFyIHByb3BzID0gaXNBcnIgPyB1bmRlZmluZWQyIDoga2V5c0Z1bmModmFsdWUpO1xuICAgICAgICAgIGFycmF5RWFjaChwcm9wcyB8fCB2YWx1ZSwgZnVuY3Rpb24oc3ViVmFsdWUsIGtleTIpIHtcbiAgICAgICAgICAgIGlmIChwcm9wcykge1xuICAgICAgICAgICAgICBrZXkyID0gc3ViVmFsdWU7XG4gICAgICAgICAgICAgIHN1YlZhbHVlID0gdmFsdWVba2V5Ml07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBhc3NpZ25WYWx1ZShyZXN1bHQyLCBrZXkyLCBiYXNlQ2xvbmUoc3ViVmFsdWUsIGJpdG1hc2ssIGN1c3RvbWl6ZXIsIGtleTIsIHZhbHVlLCBzdGFjaykpO1xuICAgICAgICAgIH0pO1xuICAgICAgICAgIHJldHVybiByZXN1bHQyO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGJhc2VDb25mb3Jtcyhzb3VyY2UpIHtcbiAgICAgICAgICB2YXIgcHJvcHMgPSBrZXlzKHNvdXJjZSk7XG4gICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKG9iamVjdCkge1xuICAgICAgICAgICAgcmV0dXJuIGJhc2VDb25mb3Jtc1RvKG9iamVjdCwgc291cmNlLCBwcm9wcyk7XG4gICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBiYXNlQ29uZm9ybXNUbyhvYmplY3QsIHNvdXJjZSwgcHJvcHMpIHtcbiAgICAgICAgICB2YXIgbGVuZ3RoID0gcHJvcHMubGVuZ3RoO1xuICAgICAgICAgIGlmIChvYmplY3QgPT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuICFsZW5ndGg7XG4gICAgICAgICAgfVxuICAgICAgICAgIG9iamVjdCA9IE9iamVjdDIob2JqZWN0KTtcbiAgICAgICAgICB3aGlsZSAobGVuZ3RoLS0pIHtcbiAgICAgICAgICAgIHZhciBrZXkgPSBwcm9wc1tsZW5ndGhdLCBwcmVkaWNhdGUgPSBzb3VyY2Vba2V5XSwgdmFsdWUgPSBvYmplY3Rba2V5XTtcbiAgICAgICAgICAgIGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkMiAmJiAhKGtleSBpbiBvYmplY3QpIHx8ICFwcmVkaWNhdGUodmFsdWUpKSB7XG4gICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gYmFzZURlbGF5KGZ1bmMsIHdhaXQsIGFyZ3MpIHtcbiAgICAgICAgICBpZiAodHlwZW9mIGZ1bmMgIT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yMihGVU5DX0VSUk9SX1RFWFQpO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gc2V0VGltZW91dChmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIGZ1bmMuYXBwbHkodW5kZWZpbmVkMiwgYXJncyk7XG4gICAgICAgICAgfSwgd2FpdCk7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gYmFzZURpZmZlcmVuY2UoYXJyYXksIHZhbHVlczIsIGl0ZXJhdGVlMiwgY29tcGFyYXRvcikge1xuICAgICAgICAgIHZhciBpbmRleCA9IC0xLCBpbmNsdWRlczIgPSBhcnJheUluY2x1ZGVzLCBpc0NvbW1vbiA9IHRydWUsIGxlbmd0aCA9IGFycmF5Lmxlbmd0aCwgcmVzdWx0MiA9IFtdLCB2YWx1ZXNMZW5ndGggPSB2YWx1ZXMyLmxlbmd0aDtcbiAgICAgICAgICBpZiAoIWxlbmd0aCkge1xuICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDI7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChpdGVyYXRlZTIpIHtcbiAgICAgICAgICAgIHZhbHVlczIgPSBhcnJheU1hcCh2YWx1ZXMyLCBiYXNlVW5hcnkoaXRlcmF0ZWUyKSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChjb21wYXJhdG9yKSB7XG4gICAgICAgICAgICBpbmNsdWRlczIgPSBhcnJheUluY2x1ZGVzV2l0aDtcbiAgICAgICAgICAgIGlzQ29tbW9uID0gZmFsc2U7XG4gICAgICAgICAgfSBlbHNlIGlmICh2YWx1ZXMyLmxlbmd0aCA+PSBMQVJHRV9BUlJBWV9TSVpFKSB7XG4gICAgICAgICAgICBpbmNsdWRlczIgPSBjYWNoZUhhcztcbiAgICAgICAgICAgIGlzQ29tbW9uID0gZmFsc2U7XG4gICAgICAgICAgICB2YWx1ZXMyID0gbmV3IFNldENhY2hlKHZhbHVlczIpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBvdXRlcjpcbiAgICAgICAgICAgIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgICAgICAgICAgIHZhciB2YWx1ZSA9IGFycmF5W2luZGV4XSwgY29tcHV0ZWQgPSBpdGVyYXRlZTIgPT0gbnVsbCA/IHZhbHVlIDogaXRlcmF0ZWUyKHZhbHVlKTtcbiAgICAgICAgICAgICAgdmFsdWUgPSBjb21wYXJhdG9yIHx8IHZhbHVlICE9PSAwID8gdmFsdWUgOiAwO1xuICAgICAgICAgICAgICBpZiAoaXNDb21tb24gJiYgY29tcHV0ZWQgPT09IGNvbXB1dGVkKSB7XG4gICAgICAgICAgICAgICAgdmFyIHZhbHVlc0luZGV4ID0gdmFsdWVzTGVuZ3RoO1xuICAgICAgICAgICAgICAgIHdoaWxlICh2YWx1ZXNJbmRleC0tKSB7XG4gICAgICAgICAgICAgICAgICBpZiAodmFsdWVzMlt2YWx1ZXNJbmRleF0gPT09IGNvbXB1dGVkKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlIG91dGVyO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXN1bHQyLnB1c2godmFsdWUpO1xuICAgICAgICAgICAgICB9IGVsc2UgaWYgKCFpbmNsdWRlczIodmFsdWVzMiwgY29tcHV0ZWQsIGNvbXBhcmF0b3IpKSB7XG4gICAgICAgICAgICAgICAgcmVzdWx0Mi5wdXNoKHZhbHVlKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiByZXN1bHQyO1xuICAgICAgICB9XG4gICAgICAgIHZhciBiYXNlRWFjaCA9IGNyZWF0ZUJhc2VFYWNoKGJhc2VGb3JPd24pO1xuICAgICAgICB2YXIgYmFzZUVhY2hSaWdodCA9IGNyZWF0ZUJhc2VFYWNoKGJhc2VGb3JPd25SaWdodCwgdHJ1ZSk7XG4gICAgICAgIGZ1bmN0aW9uIGJhc2VFdmVyeShjb2xsZWN0aW9uLCBwcmVkaWNhdGUpIHtcbiAgICAgICAgICB2YXIgcmVzdWx0MiA9IHRydWU7XG4gICAgICAgICAgYmFzZUVhY2goY29sbGVjdGlvbiwgZnVuY3Rpb24odmFsdWUsIGluZGV4LCBjb2xsZWN0aW9uMikge1xuICAgICAgICAgICAgcmVzdWx0MiA9ICEhcHJlZGljYXRlKHZhbHVlLCBpbmRleCwgY29sbGVjdGlvbjIpO1xuICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDI7XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgcmV0dXJuIHJlc3VsdDI7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gYmFzZUV4dHJlbXVtKGFycmF5LCBpdGVyYXRlZTIsIGNvbXBhcmF0b3IpIHtcbiAgICAgICAgICB2YXIgaW5kZXggPSAtMSwgbGVuZ3RoID0gYXJyYXkubGVuZ3RoO1xuICAgICAgICAgIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgICAgICAgICB2YXIgdmFsdWUgPSBhcnJheVtpbmRleF0sIGN1cnJlbnQgPSBpdGVyYXRlZTIodmFsdWUpO1xuICAgICAgICAgICAgaWYgKGN1cnJlbnQgIT0gbnVsbCAmJiAoY29tcHV0ZWQgPT09IHVuZGVmaW5lZDIgPyBjdXJyZW50ID09PSBjdXJyZW50ICYmICFpc1N5bWJvbChjdXJyZW50KSA6IGNvbXBhcmF0b3IoY3VycmVudCwgY29tcHV0ZWQpKSkge1xuICAgICAgICAgICAgICB2YXIgY29tcHV0ZWQgPSBjdXJyZW50LCByZXN1bHQyID0gdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiByZXN1bHQyO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGJhc2VGaWxsKGFycmF5LCB2YWx1ZSwgc3RhcnQsIGVuZCkge1xuICAgICAgICAgIHZhciBsZW5ndGggPSBhcnJheS5sZW5ndGg7XG4gICAgICAgICAgc3RhcnQgPSB0b0ludGVnZXIoc3RhcnQpO1xuICAgICAgICAgIGlmIChzdGFydCA8IDApIHtcbiAgICAgICAgICAgIHN0YXJ0ID0gLXN0YXJ0ID4gbGVuZ3RoID8gMCA6IGxlbmd0aCArIHN0YXJ0O1xuICAgICAgICAgIH1cbiAgICAgICAgICBlbmQgPSBlbmQgPT09IHVuZGVmaW5lZDIgfHwgZW5kID4gbGVuZ3RoID8gbGVuZ3RoIDogdG9JbnRlZ2VyKGVuZCk7XG4gICAgICAgICAgaWYgKGVuZCA8IDApIHtcbiAgICAgICAgICAgIGVuZCArPSBsZW5ndGg7XG4gICAgICAgICAgfVxuICAgICAgICAgIGVuZCA9IHN0YXJ0ID4gZW5kID8gMCA6IHRvTGVuZ3RoKGVuZCk7XG4gICAgICAgICAgd2hpbGUgKHN0YXJ0IDwgZW5kKSB7XG4gICAgICAgICAgICBhcnJheVtzdGFydCsrXSA9IHZhbHVlO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gYXJyYXk7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gYmFzZUZpbHRlcihjb2xsZWN0aW9uLCBwcmVkaWNhdGUpIHtcbiAgICAgICAgICB2YXIgcmVzdWx0MiA9IFtdO1xuICAgICAgICAgIGJhc2VFYWNoKGNvbGxlY3Rpb24sIGZ1bmN0aW9uKHZhbHVlLCBpbmRleCwgY29sbGVjdGlvbjIpIHtcbiAgICAgICAgICAgIGlmIChwcmVkaWNhdGUodmFsdWUsIGluZGV4LCBjb2xsZWN0aW9uMikpIHtcbiAgICAgICAgICAgICAgcmVzdWx0Mi5wdXNoKHZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgICByZXR1cm4gcmVzdWx0MjtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBiYXNlRmxhdHRlbihhcnJheSwgZGVwdGgsIHByZWRpY2F0ZSwgaXNTdHJpY3QsIHJlc3VsdDIpIHtcbiAgICAgICAgICB2YXIgaW5kZXggPSAtMSwgbGVuZ3RoID0gYXJyYXkubGVuZ3RoO1xuICAgICAgICAgIHByZWRpY2F0ZSB8fCAocHJlZGljYXRlID0gaXNGbGF0dGVuYWJsZSk7XG4gICAgICAgICAgcmVzdWx0MiB8fCAocmVzdWx0MiA9IFtdKTtcbiAgICAgICAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgICAgICAgICAgdmFyIHZhbHVlID0gYXJyYXlbaW5kZXhdO1xuICAgICAgICAgICAgaWYgKGRlcHRoID4gMCAmJiBwcmVkaWNhdGUodmFsdWUpKSB7XG4gICAgICAgICAgICAgIGlmIChkZXB0aCA+IDEpIHtcbiAgICAgICAgICAgICAgICBiYXNlRmxhdHRlbih2YWx1ZSwgZGVwdGggLSAxLCBwcmVkaWNhdGUsIGlzU3RyaWN0LCByZXN1bHQyKTtcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBhcnJheVB1c2gocmVzdWx0MiwgdmFsdWUpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2UgaWYgKCFpc1N0cmljdCkge1xuICAgICAgICAgICAgICByZXN1bHQyW3Jlc3VsdDIubGVuZ3RoXSA9IHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gcmVzdWx0MjtcbiAgICAgICAgfVxuICAgICAgICB2YXIgYmFzZUZvciA9IGNyZWF0ZUJhc2VGb3IoKTtcbiAgICAgICAgdmFyIGJhc2VGb3JSaWdodCA9IGNyZWF0ZUJhc2VGb3IodHJ1ZSk7XG4gICAgICAgIGZ1bmN0aW9uIGJhc2VGb3JPd24ob2JqZWN0LCBpdGVyYXRlZTIpIHtcbiAgICAgICAgICByZXR1cm4gb2JqZWN0ICYmIGJhc2VGb3Iob2JqZWN0LCBpdGVyYXRlZTIsIGtleXMpO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGJhc2VGb3JPd25SaWdodChvYmplY3QsIGl0ZXJhdGVlMikge1xuICAgICAgICAgIHJldHVybiBvYmplY3QgJiYgYmFzZUZvclJpZ2h0KG9iamVjdCwgaXRlcmF0ZWUyLCBrZXlzKTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBiYXNlRnVuY3Rpb25zKG9iamVjdCwgcHJvcHMpIHtcbiAgICAgICAgICByZXR1cm4gYXJyYXlGaWx0ZXIocHJvcHMsIGZ1bmN0aW9uKGtleSkge1xuICAgICAgICAgICAgcmV0dXJuIGlzRnVuY3Rpb24ob2JqZWN0W2tleV0pO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGJhc2VHZXQob2JqZWN0LCBwYXRoKSB7XG4gICAgICAgICAgcGF0aCA9IGNhc3RQYXRoKHBhdGgsIG9iamVjdCk7XG4gICAgICAgICAgdmFyIGluZGV4ID0gMCwgbGVuZ3RoID0gcGF0aC5sZW5ndGg7XG4gICAgICAgICAgd2hpbGUgKG9iamVjdCAhPSBudWxsICYmIGluZGV4IDwgbGVuZ3RoKSB7XG4gICAgICAgICAgICBvYmplY3QgPSBvYmplY3RbdG9LZXkocGF0aFtpbmRleCsrXSldO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gaW5kZXggJiYgaW5kZXggPT0gbGVuZ3RoID8gb2JqZWN0IDogdW5kZWZpbmVkMjtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBiYXNlR2V0QWxsS2V5cyhvYmplY3QsIGtleXNGdW5jLCBzeW1ib2xzRnVuYykge1xuICAgICAgICAgIHZhciByZXN1bHQyID0ga2V5c0Z1bmMob2JqZWN0KTtcbiAgICAgICAgICByZXR1cm4gaXNBcnJheShvYmplY3QpID8gcmVzdWx0MiA6IGFycmF5UHVzaChyZXN1bHQyLCBzeW1ib2xzRnVuYyhvYmplY3QpKTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBiYXNlR2V0VGFnKHZhbHVlKSB7XG4gICAgICAgICAgaWYgKHZhbHVlID09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZSA9PT0gdW5kZWZpbmVkMiA/IHVuZGVmaW5lZFRhZyA6IG51bGxUYWc7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBzeW1Ub1N0cmluZ1RhZyAmJiBzeW1Ub1N0cmluZ1RhZyBpbiBPYmplY3QyKHZhbHVlKSA/IGdldFJhd1RhZyh2YWx1ZSkgOiBvYmplY3RUb1N0cmluZyh2YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gYmFzZUd0KHZhbHVlLCBvdGhlcikge1xuICAgICAgICAgIHJldHVybiB2YWx1ZSA+IG90aGVyO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGJhc2VIYXMob2JqZWN0LCBrZXkpIHtcbiAgICAgICAgICByZXR1cm4gb2JqZWN0ICE9IG51bGwgJiYgaGFzT3duUHJvcGVydHkuY2FsbChvYmplY3QsIGtleSk7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gYmFzZUhhc0luKG9iamVjdCwga2V5KSB7XG4gICAgICAgICAgcmV0dXJuIG9iamVjdCAhPSBudWxsICYmIGtleSBpbiBPYmplY3QyKG9iamVjdCk7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gYmFzZUluUmFuZ2UobnVtYmVyLCBzdGFydCwgZW5kKSB7XG4gICAgICAgICAgcmV0dXJuIG51bWJlciA+PSBuYXRpdmVNaW4oc3RhcnQsIGVuZCkgJiYgbnVtYmVyIDwgbmF0aXZlTWF4KHN0YXJ0LCBlbmQpO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGJhc2VJbnRlcnNlY3Rpb24oYXJyYXlzLCBpdGVyYXRlZTIsIGNvbXBhcmF0b3IpIHtcbiAgICAgICAgICB2YXIgaW5jbHVkZXMyID0gY29tcGFyYXRvciA/IGFycmF5SW5jbHVkZXNXaXRoIDogYXJyYXlJbmNsdWRlcywgbGVuZ3RoID0gYXJyYXlzWzBdLmxlbmd0aCwgb3RoTGVuZ3RoID0gYXJyYXlzLmxlbmd0aCwgb3RoSW5kZXggPSBvdGhMZW5ndGgsIGNhY2hlcyA9IEFycmF5MihvdGhMZW5ndGgpLCBtYXhMZW5ndGggPSBJbmZpbml0eSwgcmVzdWx0MiA9IFtdO1xuICAgICAgICAgIHdoaWxlIChvdGhJbmRleC0tKSB7XG4gICAgICAgICAgICB2YXIgYXJyYXkgPSBhcnJheXNbb3RoSW5kZXhdO1xuICAgICAgICAgICAgaWYgKG90aEluZGV4ICYmIGl0ZXJhdGVlMikge1xuICAgICAgICAgICAgICBhcnJheSA9IGFycmF5TWFwKGFycmF5LCBiYXNlVW5hcnkoaXRlcmF0ZWUyKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBtYXhMZW5ndGggPSBuYXRpdmVNaW4oYXJyYXkubGVuZ3RoLCBtYXhMZW5ndGgpO1xuICAgICAgICAgICAgY2FjaGVzW290aEluZGV4XSA9ICFjb21wYXJhdG9yICYmIChpdGVyYXRlZTIgfHwgbGVuZ3RoID49IDEyMCAmJiBhcnJheS5sZW5ndGggPj0gMTIwKSA/IG5ldyBTZXRDYWNoZShvdGhJbmRleCAmJiBhcnJheSkgOiB1bmRlZmluZWQyO1xuICAgICAgICAgIH1cbiAgICAgICAgICBhcnJheSA9IGFycmF5c1swXTtcbiAgICAgICAgICB2YXIgaW5kZXggPSAtMSwgc2VlbiA9IGNhY2hlc1swXTtcbiAgICAgICAgICBvdXRlcjpcbiAgICAgICAgICAgIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoICYmIHJlc3VsdDIubGVuZ3RoIDwgbWF4TGVuZ3RoKSB7XG4gICAgICAgICAgICAgIHZhciB2YWx1ZSA9IGFycmF5W2luZGV4XSwgY29tcHV0ZWQgPSBpdGVyYXRlZTIgPyBpdGVyYXRlZTIodmFsdWUpIDogdmFsdWU7XG4gICAgICAgICAgICAgIHZhbHVlID0gY29tcGFyYXRvciB8fCB2YWx1ZSAhPT0gMCA/IHZhbHVlIDogMDtcbiAgICAgICAgICAgICAgaWYgKCEoc2VlbiA/IGNhY2hlSGFzKHNlZW4sIGNvbXB1dGVkKSA6IGluY2x1ZGVzMihyZXN1bHQyLCBjb21wdXRlZCwgY29tcGFyYXRvcikpKSB7XG4gICAgICAgICAgICAgICAgb3RoSW5kZXggPSBvdGhMZW5ndGg7XG4gICAgICAgICAgICAgICAgd2hpbGUgKC0tb3RoSW5kZXgpIHtcbiAgICAgICAgICAgICAgICAgIHZhciBjYWNoZSA9IGNhY2hlc1tvdGhJbmRleF07XG4gICAgICAgICAgICAgICAgICBpZiAoIShjYWNoZSA/IGNhY2hlSGFzKGNhY2hlLCBjb21wdXRlZCkgOiBpbmNsdWRlczIoYXJyYXlzW290aEluZGV4XSwgY29tcHV0ZWQsIGNvbXBhcmF0b3IpKSkge1xuICAgICAgICAgICAgICAgICAgICBjb250aW51ZSBvdXRlcjtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHNlZW4pIHtcbiAgICAgICAgICAgICAgICAgIHNlZW4ucHVzaChjb21wdXRlZCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJlc3VsdDIucHVzaCh2YWx1ZSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gcmVzdWx0MjtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBiYXNlSW52ZXJ0ZXIob2JqZWN0LCBzZXR0ZXIsIGl0ZXJhdGVlMiwgYWNjdW11bGF0b3IpIHtcbiAgICAgICAgICBiYXNlRm9yT3duKG9iamVjdCwgZnVuY3Rpb24odmFsdWUsIGtleSwgb2JqZWN0Mikge1xuICAgICAgICAgICAgc2V0dGVyKGFjY3VtdWxhdG9yLCBpdGVyYXRlZTIodmFsdWUpLCBrZXksIG9iamVjdDIpO1xuICAgICAgICAgIH0pO1xuICAgICAgICAgIHJldHVybiBhY2N1bXVsYXRvcjtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBiYXNlSW52b2tlKG9iamVjdCwgcGF0aCwgYXJncykge1xuICAgICAgICAgIHBhdGggPSBjYXN0UGF0aChwYXRoLCBvYmplY3QpO1xuICAgICAgICAgIG9iamVjdCA9IHBhcmVudChvYmplY3QsIHBhdGgpO1xuICAgICAgICAgIHZhciBmdW5jID0gb2JqZWN0ID09IG51bGwgPyBvYmplY3QgOiBvYmplY3RbdG9LZXkobGFzdChwYXRoKSldO1xuICAgICAgICAgIHJldHVybiBmdW5jID09IG51bGwgPyB1bmRlZmluZWQyIDogYXBwbHkoZnVuYywgb2JqZWN0LCBhcmdzKTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBiYXNlSXNBcmd1bWVudHModmFsdWUpIHtcbiAgICAgICAgICByZXR1cm4gaXNPYmplY3RMaWtlKHZhbHVlKSAmJiBiYXNlR2V0VGFnKHZhbHVlKSA9PSBhcmdzVGFnO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGJhc2VJc0FycmF5QnVmZmVyKHZhbHVlKSB7XG4gICAgICAgICAgcmV0dXJuIGlzT2JqZWN0TGlrZSh2YWx1ZSkgJiYgYmFzZUdldFRhZyh2YWx1ZSkgPT0gYXJyYXlCdWZmZXJUYWc7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gYmFzZUlzRGF0ZSh2YWx1ZSkge1xuICAgICAgICAgIHJldHVybiBpc09iamVjdExpa2UodmFsdWUpICYmIGJhc2VHZXRUYWcodmFsdWUpID09IGRhdGVUYWc7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gYmFzZUlzRXF1YWwodmFsdWUsIG90aGVyLCBiaXRtYXNrLCBjdXN0b21pemVyLCBzdGFjaykge1xuICAgICAgICAgIGlmICh2YWx1ZSA9PT0gb3RoZXIpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAodmFsdWUgPT0gbnVsbCB8fCBvdGhlciA9PSBudWxsIHx8ICFpc09iamVjdExpa2UodmFsdWUpICYmICFpc09iamVjdExpa2Uob3RoZXIpKSB7XG4gICAgICAgICAgICByZXR1cm4gdmFsdWUgIT09IHZhbHVlICYmIG90aGVyICE9PSBvdGhlcjtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIGJhc2VJc0VxdWFsRGVlcCh2YWx1ZSwgb3RoZXIsIGJpdG1hc2ssIGN1c3RvbWl6ZXIsIGJhc2VJc0VxdWFsLCBzdGFjayk7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gYmFzZUlzRXF1YWxEZWVwKG9iamVjdCwgb3RoZXIsIGJpdG1hc2ssIGN1c3RvbWl6ZXIsIGVxdWFsRnVuYywgc3RhY2spIHtcbiAgICAgICAgICB2YXIgb2JqSXNBcnIgPSBpc0FycmF5KG9iamVjdCksIG90aElzQXJyID0gaXNBcnJheShvdGhlciksIG9ialRhZyA9IG9iaklzQXJyID8gYXJyYXlUYWcgOiBnZXRUYWcob2JqZWN0KSwgb3RoVGFnID0gb3RoSXNBcnIgPyBhcnJheVRhZyA6IGdldFRhZyhvdGhlcik7XG4gICAgICAgICAgb2JqVGFnID0gb2JqVGFnID09IGFyZ3NUYWcgPyBvYmplY3RUYWcgOiBvYmpUYWc7XG4gICAgICAgICAgb3RoVGFnID0gb3RoVGFnID09IGFyZ3NUYWcgPyBvYmplY3RUYWcgOiBvdGhUYWc7XG4gICAgICAgICAgdmFyIG9iaklzT2JqID0gb2JqVGFnID09IG9iamVjdFRhZywgb3RoSXNPYmogPSBvdGhUYWcgPT0gb2JqZWN0VGFnLCBpc1NhbWVUYWcgPSBvYmpUYWcgPT0gb3RoVGFnO1xuICAgICAgICAgIGlmIChpc1NhbWVUYWcgJiYgaXNCdWZmZXIob2JqZWN0KSkge1xuICAgICAgICAgICAgaWYgKCFpc0J1ZmZlcihvdGhlcikpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgb2JqSXNBcnIgPSB0cnVlO1xuICAgICAgICAgICAgb2JqSXNPYmogPSBmYWxzZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGlzU2FtZVRhZyAmJiAhb2JqSXNPYmopIHtcbiAgICAgICAgICAgIHN0YWNrIHx8IChzdGFjayA9IG5ldyBTdGFjaygpKTtcbiAgICAgICAgICAgIHJldHVybiBvYmpJc0FyciB8fCBpc1R5cGVkQXJyYXkob2JqZWN0KSA/IGVxdWFsQXJyYXlzKG9iamVjdCwgb3RoZXIsIGJpdG1hc2ssIGN1c3RvbWl6ZXIsIGVxdWFsRnVuYywgc3RhY2spIDogZXF1YWxCeVRhZyhvYmplY3QsIG90aGVyLCBvYmpUYWcsIGJpdG1hc2ssIGN1c3RvbWl6ZXIsIGVxdWFsRnVuYywgc3RhY2spO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoIShiaXRtYXNrICYgQ09NUEFSRV9QQVJUSUFMX0ZMQUcpKSB7XG4gICAgICAgICAgICB2YXIgb2JqSXNXcmFwcGVkID0gb2JqSXNPYmogJiYgaGFzT3duUHJvcGVydHkuY2FsbChvYmplY3QsIFwiX193cmFwcGVkX19cIiksIG90aElzV3JhcHBlZCA9IG90aElzT2JqICYmIGhhc093blByb3BlcnR5LmNhbGwob3RoZXIsIFwiX193cmFwcGVkX19cIik7XG4gICAgICAgICAgICBpZiAob2JqSXNXcmFwcGVkIHx8IG90aElzV3JhcHBlZCkge1xuICAgICAgICAgICAgICB2YXIgb2JqVW53cmFwcGVkID0gb2JqSXNXcmFwcGVkID8gb2JqZWN0LnZhbHVlKCkgOiBvYmplY3QsIG90aFVud3JhcHBlZCA9IG90aElzV3JhcHBlZCA/IG90aGVyLnZhbHVlKCkgOiBvdGhlcjtcbiAgICAgICAgICAgICAgc3RhY2sgfHwgKHN0YWNrID0gbmV3IFN0YWNrKCkpO1xuICAgICAgICAgICAgICByZXR1cm4gZXF1YWxGdW5jKG9ialVud3JhcHBlZCwgb3RoVW53cmFwcGVkLCBiaXRtYXNrLCBjdXN0b21pemVyLCBzdGFjayk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmICghaXNTYW1lVGFnKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgfVxuICAgICAgICAgIHN0YWNrIHx8IChzdGFjayA9IG5ldyBTdGFjaygpKTtcbiAgICAgICAgICByZXR1cm4gZXF1YWxPYmplY3RzKG9iamVjdCwgb3RoZXIsIGJpdG1hc2ssIGN1c3RvbWl6ZXIsIGVxdWFsRnVuYywgc3RhY2spO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGJhc2VJc01hcCh2YWx1ZSkge1xuICAgICAgICAgIHJldHVybiBpc09iamVjdExpa2UodmFsdWUpICYmIGdldFRhZyh2YWx1ZSkgPT0gbWFwVGFnO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGJhc2VJc01hdGNoKG9iamVjdCwgc291cmNlLCBtYXRjaERhdGEsIGN1c3RvbWl6ZXIpIHtcbiAgICAgICAgICB2YXIgaW5kZXggPSBtYXRjaERhdGEubGVuZ3RoLCBsZW5ndGggPSBpbmRleCwgbm9DdXN0b21pemVyID0gIWN1c3RvbWl6ZXI7XG4gICAgICAgICAgaWYgKG9iamVjdCA9PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gIWxlbmd0aDtcbiAgICAgICAgICB9XG4gICAgICAgICAgb2JqZWN0ID0gT2JqZWN0MihvYmplY3QpO1xuICAgICAgICAgIHdoaWxlIChpbmRleC0tKSB7XG4gICAgICAgICAgICB2YXIgZGF0YSA9IG1hdGNoRGF0YVtpbmRleF07XG4gICAgICAgICAgICBpZiAobm9DdXN0b21pemVyICYmIGRhdGFbMl0gPyBkYXRhWzFdICE9PSBvYmplY3RbZGF0YVswXV0gOiAhKGRhdGFbMF0gaW4gb2JqZWN0KSkge1xuICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgICAgICAgICBkYXRhID0gbWF0Y2hEYXRhW2luZGV4XTtcbiAgICAgICAgICAgIHZhciBrZXkgPSBkYXRhWzBdLCBvYmpWYWx1ZSA9IG9iamVjdFtrZXldLCBzcmNWYWx1ZSA9IGRhdGFbMV07XG4gICAgICAgICAgICBpZiAobm9DdXN0b21pemVyICYmIGRhdGFbMl0pIHtcbiAgICAgICAgICAgICAgaWYgKG9ialZhbHVlID09PSB1bmRlZmluZWQyICYmICEoa2V5IGluIG9iamVjdCkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHZhciBzdGFjayA9IG5ldyBTdGFjaygpO1xuICAgICAgICAgICAgICBpZiAoY3VzdG9taXplcikge1xuICAgICAgICAgICAgICAgIHZhciByZXN1bHQyID0gY3VzdG9taXplcihvYmpWYWx1ZSwgc3JjVmFsdWUsIGtleSwgb2JqZWN0LCBzb3VyY2UsIHN0YWNrKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBpZiAoIShyZXN1bHQyID09PSB1bmRlZmluZWQyID8gYmFzZUlzRXF1YWwoc3JjVmFsdWUsIG9ialZhbHVlLCBDT01QQVJFX1BBUlRJQUxfRkxBRyB8IENPTVBBUkVfVU5PUkRFUkVEX0ZMQUcsIGN1c3RvbWl6ZXIsIHN0YWNrKSA6IHJlc3VsdDIpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGJhc2VJc05hdGl2ZSh2YWx1ZSkge1xuICAgICAgICAgIGlmICghaXNPYmplY3QodmFsdWUpIHx8IGlzTWFza2VkKHZhbHVlKSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgIH1cbiAgICAgICAgICB2YXIgcGF0dGVybiA9IGlzRnVuY3Rpb24odmFsdWUpID8gcmVJc05hdGl2ZSA6IHJlSXNIb3N0Q3RvcjtcbiAgICAgICAgICByZXR1cm4gcGF0dGVybi50ZXN0KHRvU291cmNlKHZhbHVlKSk7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gYmFzZUlzUmVnRXhwKHZhbHVlKSB7XG4gICAgICAgICAgcmV0dXJuIGlzT2JqZWN0TGlrZSh2YWx1ZSkgJiYgYmFzZUdldFRhZyh2YWx1ZSkgPT0gcmVnZXhwVGFnO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGJhc2VJc1NldCh2YWx1ZSkge1xuICAgICAgICAgIHJldHVybiBpc09iamVjdExpa2UodmFsdWUpICYmIGdldFRhZyh2YWx1ZSkgPT0gc2V0VGFnO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGJhc2VJc1R5cGVkQXJyYXkodmFsdWUpIHtcbiAgICAgICAgICByZXR1cm4gaXNPYmplY3RMaWtlKHZhbHVlKSAmJiBpc0xlbmd0aCh2YWx1ZS5sZW5ndGgpICYmICEhdHlwZWRBcnJheVRhZ3NbYmFzZUdldFRhZyh2YWx1ZSldO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGJhc2VJdGVyYXRlZSh2YWx1ZSkge1xuICAgICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmICh2YWx1ZSA9PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gaWRlbnRpdHk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT0gXCJvYmplY3RcIikge1xuICAgICAgICAgICAgcmV0dXJuIGlzQXJyYXkodmFsdWUpID8gYmFzZU1hdGNoZXNQcm9wZXJ0eSh2YWx1ZVswXSwgdmFsdWVbMV0pIDogYmFzZU1hdGNoZXModmFsdWUpO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gcHJvcGVydHkodmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGJhc2VLZXlzKG9iamVjdCkge1xuICAgICAgICAgIGlmICghaXNQcm90b3R5cGUob2JqZWN0KSkge1xuICAgICAgICAgICAgcmV0dXJuIG5hdGl2ZUtleXMob2JqZWN0KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdmFyIHJlc3VsdDIgPSBbXTtcbiAgICAgICAgICBmb3IgKHZhciBrZXkgaW4gT2JqZWN0MihvYmplY3QpKSB7XG4gICAgICAgICAgICBpZiAoaGFzT3duUHJvcGVydHkuY2FsbChvYmplY3QsIGtleSkgJiYga2V5ICE9IFwiY29uc3RydWN0b3JcIikge1xuICAgICAgICAgICAgICByZXN1bHQyLnB1c2goa2V5KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHJlc3VsdDI7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gYmFzZUtleXNJbihvYmplY3QpIHtcbiAgICAgICAgICBpZiAoIWlzT2JqZWN0KG9iamVjdCkpIHtcbiAgICAgICAgICAgIHJldHVybiBuYXRpdmVLZXlzSW4ob2JqZWN0KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdmFyIGlzUHJvdG8gPSBpc1Byb3RvdHlwZShvYmplY3QpLCByZXN1bHQyID0gW107XG4gICAgICAgICAgZm9yICh2YXIga2V5IGluIG9iamVjdCkge1xuICAgICAgICAgICAgaWYgKCEoa2V5ID09IFwiY29uc3RydWN0b3JcIiAmJiAoaXNQcm90byB8fCAhaGFzT3duUHJvcGVydHkuY2FsbChvYmplY3QsIGtleSkpKSkge1xuICAgICAgICAgICAgICByZXN1bHQyLnB1c2goa2V5KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHJlc3VsdDI7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gYmFzZUx0KHZhbHVlLCBvdGhlcikge1xuICAgICAgICAgIHJldHVybiB2YWx1ZSA8IG90aGVyO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGJhc2VNYXAoY29sbGVjdGlvbiwgaXRlcmF0ZWUyKSB7XG4gICAgICAgICAgdmFyIGluZGV4ID0gLTEsIHJlc3VsdDIgPSBpc0FycmF5TGlrZShjb2xsZWN0aW9uKSA/IEFycmF5Mihjb2xsZWN0aW9uLmxlbmd0aCkgOiBbXTtcbiAgICAgICAgICBiYXNlRWFjaChjb2xsZWN0aW9uLCBmdW5jdGlvbih2YWx1ZSwga2V5LCBjb2xsZWN0aW9uMikge1xuICAgICAgICAgICAgcmVzdWx0MlsrK2luZGV4XSA9IGl0ZXJhdGVlMih2YWx1ZSwga2V5LCBjb2xsZWN0aW9uMik7XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgcmV0dXJuIHJlc3VsdDI7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gYmFzZU1hdGNoZXMoc291cmNlKSB7XG4gICAgICAgICAgdmFyIG1hdGNoRGF0YSA9IGdldE1hdGNoRGF0YShzb3VyY2UpO1xuICAgICAgICAgIGlmIChtYXRjaERhdGEubGVuZ3RoID09IDEgJiYgbWF0Y2hEYXRhWzBdWzJdKSB7XG4gICAgICAgICAgICByZXR1cm4gbWF0Y2hlc1N0cmljdENvbXBhcmFibGUobWF0Y2hEYXRhWzBdWzBdLCBtYXRjaERhdGFbMF1bMV0pO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gZnVuY3Rpb24ob2JqZWN0KSB7XG4gICAgICAgICAgICByZXR1cm4gb2JqZWN0ID09PSBzb3VyY2UgfHwgYmFzZUlzTWF0Y2gob2JqZWN0LCBzb3VyY2UsIG1hdGNoRGF0YSk7XG4gICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBiYXNlTWF0Y2hlc1Byb3BlcnR5KHBhdGgsIHNyY1ZhbHVlKSB7XG4gICAgICAgICAgaWYgKGlzS2V5KHBhdGgpICYmIGlzU3RyaWN0Q29tcGFyYWJsZShzcmNWYWx1ZSkpIHtcbiAgICAgICAgICAgIHJldHVybiBtYXRjaGVzU3RyaWN0Q29tcGFyYWJsZSh0b0tleShwYXRoKSwgc3JjVmFsdWUpO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gZnVuY3Rpb24ob2JqZWN0KSB7XG4gICAgICAgICAgICB2YXIgb2JqVmFsdWUgPSBnZXQob2JqZWN0LCBwYXRoKTtcbiAgICAgICAgICAgIHJldHVybiBvYmpWYWx1ZSA9PT0gdW5kZWZpbmVkMiAmJiBvYmpWYWx1ZSA9PT0gc3JjVmFsdWUgPyBoYXNJbihvYmplY3QsIHBhdGgpIDogYmFzZUlzRXF1YWwoc3JjVmFsdWUsIG9ialZhbHVlLCBDT01QQVJFX1BBUlRJQUxfRkxBRyB8IENPTVBBUkVfVU5PUkRFUkVEX0ZMQUcpO1xuICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gYmFzZU1lcmdlKG9iamVjdCwgc291cmNlLCBzcmNJbmRleCwgY3VzdG9taXplciwgc3RhY2spIHtcbiAgICAgICAgICBpZiAob2JqZWN0ID09PSBzb3VyY2UpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG4gICAgICAgICAgYmFzZUZvcihzb3VyY2UsIGZ1bmN0aW9uKHNyY1ZhbHVlLCBrZXkpIHtcbiAgICAgICAgICAgIHN0YWNrIHx8IChzdGFjayA9IG5ldyBTdGFjaygpKTtcbiAgICAgICAgICAgIGlmIChpc09iamVjdChzcmNWYWx1ZSkpIHtcbiAgICAgICAgICAgICAgYmFzZU1lcmdlRGVlcChvYmplY3QsIHNvdXJjZSwga2V5LCBzcmNJbmRleCwgYmFzZU1lcmdlLCBjdXN0b21pemVyLCBzdGFjayk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICB2YXIgbmV3VmFsdWUgPSBjdXN0b21pemVyID8gY3VzdG9taXplcihzYWZlR2V0KG9iamVjdCwga2V5KSwgc3JjVmFsdWUsIGtleSArIFwiXCIsIG9iamVjdCwgc291cmNlLCBzdGFjaykgOiB1bmRlZmluZWQyO1xuICAgICAgICAgICAgICBpZiAobmV3VmFsdWUgPT09IHVuZGVmaW5lZDIpIHtcbiAgICAgICAgICAgICAgICBuZXdWYWx1ZSA9IHNyY1ZhbHVlO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGFzc2lnbk1lcmdlVmFsdWUob2JqZWN0LCBrZXksIG5ld1ZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LCBrZXlzSW4pO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGJhc2VNZXJnZURlZXAob2JqZWN0LCBzb3VyY2UsIGtleSwgc3JjSW5kZXgsIG1lcmdlRnVuYywgY3VzdG9taXplciwgc3RhY2spIHtcbiAgICAgICAgICB2YXIgb2JqVmFsdWUgPSBzYWZlR2V0KG9iamVjdCwga2V5KSwgc3JjVmFsdWUgPSBzYWZlR2V0KHNvdXJjZSwga2V5KSwgc3RhY2tlZCA9IHN0YWNrLmdldChzcmNWYWx1ZSk7XG4gICAgICAgICAgaWYgKHN0YWNrZWQpIHtcbiAgICAgICAgICAgIGFzc2lnbk1lcmdlVmFsdWUob2JqZWN0LCBrZXksIHN0YWNrZWQpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cbiAgICAgICAgICB2YXIgbmV3VmFsdWUgPSBjdXN0b21pemVyID8gY3VzdG9taXplcihvYmpWYWx1ZSwgc3JjVmFsdWUsIGtleSArIFwiXCIsIG9iamVjdCwgc291cmNlLCBzdGFjaykgOiB1bmRlZmluZWQyO1xuICAgICAgICAgIHZhciBpc0NvbW1vbiA9IG5ld1ZhbHVlID09PSB1bmRlZmluZWQyO1xuICAgICAgICAgIGlmIChpc0NvbW1vbikge1xuICAgICAgICAgICAgdmFyIGlzQXJyID0gaXNBcnJheShzcmNWYWx1ZSksIGlzQnVmZiA9ICFpc0FyciAmJiBpc0J1ZmZlcihzcmNWYWx1ZSksIGlzVHlwZWQgPSAhaXNBcnIgJiYgIWlzQnVmZiAmJiBpc1R5cGVkQXJyYXkoc3JjVmFsdWUpO1xuICAgICAgICAgICAgbmV3VmFsdWUgPSBzcmNWYWx1ZTtcbiAgICAgICAgICAgIGlmIChpc0FyciB8fCBpc0J1ZmYgfHwgaXNUeXBlZCkge1xuICAgICAgICAgICAgICBpZiAoaXNBcnJheShvYmpWYWx1ZSkpIHtcbiAgICAgICAgICAgICAgICBuZXdWYWx1ZSA9IG9ialZhbHVlO1xuICAgICAgICAgICAgICB9IGVsc2UgaWYgKGlzQXJyYXlMaWtlT2JqZWN0KG9ialZhbHVlKSkge1xuICAgICAgICAgICAgICAgIG5ld1ZhbHVlID0gY29weUFycmF5KG9ialZhbHVlKTtcbiAgICAgICAgICAgICAgfSBlbHNlIGlmIChpc0J1ZmYpIHtcbiAgICAgICAgICAgICAgICBpc0NvbW1vbiA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIG5ld1ZhbHVlID0gY2xvbmVCdWZmZXIoc3JjVmFsdWUsIHRydWUpO1xuICAgICAgICAgICAgICB9IGVsc2UgaWYgKGlzVHlwZWQpIHtcbiAgICAgICAgICAgICAgICBpc0NvbW1vbiA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIG5ld1ZhbHVlID0gY2xvbmVUeXBlZEFycmF5KHNyY1ZhbHVlLCB0cnVlKTtcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBuZXdWYWx1ZSA9IFtdO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGlzUGxhaW5PYmplY3Qoc3JjVmFsdWUpIHx8IGlzQXJndW1lbnRzKHNyY1ZhbHVlKSkge1xuICAgICAgICAgICAgICBuZXdWYWx1ZSA9IG9ialZhbHVlO1xuICAgICAgICAgICAgICBpZiAoaXNBcmd1bWVudHMob2JqVmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgbmV3VmFsdWUgPSB0b1BsYWluT2JqZWN0KG9ialZhbHVlKTtcbiAgICAgICAgICAgICAgfSBlbHNlIGlmICghaXNPYmplY3Qob2JqVmFsdWUpIHx8IGlzRnVuY3Rpb24ob2JqVmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgbmV3VmFsdWUgPSBpbml0Q2xvbmVPYmplY3Qoc3JjVmFsdWUpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBpc0NvbW1vbiA9IGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoaXNDb21tb24pIHtcbiAgICAgICAgICAgIHN0YWNrLnNldChzcmNWYWx1ZSwgbmV3VmFsdWUpO1xuICAgICAgICAgICAgbWVyZ2VGdW5jKG5ld1ZhbHVlLCBzcmNWYWx1ZSwgc3JjSW5kZXgsIGN1c3RvbWl6ZXIsIHN0YWNrKTtcbiAgICAgICAgICAgIHN0YWNrW1wiZGVsZXRlXCJdKHNyY1ZhbHVlKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgYXNzaWduTWVyZ2VWYWx1ZShvYmplY3QsIGtleSwgbmV3VmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGJhc2VOdGgoYXJyYXksIG4pIHtcbiAgICAgICAgICB2YXIgbGVuZ3RoID0gYXJyYXkubGVuZ3RoO1xuICAgICAgICAgIGlmICghbGVuZ3RoKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuICAgICAgICAgIG4gKz0gbiA8IDAgPyBsZW5ndGggOiAwO1xuICAgICAgICAgIHJldHVybiBpc0luZGV4KG4sIGxlbmd0aCkgPyBhcnJheVtuXSA6IHVuZGVmaW5lZDI7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gYmFzZU9yZGVyQnkoY29sbGVjdGlvbiwgaXRlcmF0ZWVzLCBvcmRlcnMpIHtcbiAgICAgICAgICBpZiAoaXRlcmF0ZWVzLmxlbmd0aCkge1xuICAgICAgICAgICAgaXRlcmF0ZWVzID0gYXJyYXlNYXAoaXRlcmF0ZWVzLCBmdW5jdGlvbihpdGVyYXRlZTIpIHtcbiAgICAgICAgICAgICAgaWYgKGlzQXJyYXkoaXRlcmF0ZWUyKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBmdW5jdGlvbih2YWx1ZSkge1xuICAgICAgICAgICAgICAgICAgcmV0dXJuIGJhc2VHZXQodmFsdWUsIGl0ZXJhdGVlMi5sZW5ndGggPT09IDEgPyBpdGVyYXRlZTJbMF0gOiBpdGVyYXRlZTIpO1xuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgcmV0dXJuIGl0ZXJhdGVlMjtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpdGVyYXRlZXMgPSBbaWRlbnRpdHldO1xuICAgICAgICAgIH1cbiAgICAgICAgICB2YXIgaW5kZXggPSAtMTtcbiAgICAgICAgICBpdGVyYXRlZXMgPSBhcnJheU1hcChpdGVyYXRlZXMsIGJhc2VVbmFyeShnZXRJdGVyYXRlZSgpKSk7XG4gICAgICAgICAgdmFyIHJlc3VsdDIgPSBiYXNlTWFwKGNvbGxlY3Rpb24sIGZ1bmN0aW9uKHZhbHVlLCBrZXksIGNvbGxlY3Rpb24yKSB7XG4gICAgICAgICAgICB2YXIgY3JpdGVyaWEgPSBhcnJheU1hcChpdGVyYXRlZXMsIGZ1bmN0aW9uKGl0ZXJhdGVlMikge1xuICAgICAgICAgICAgICByZXR1cm4gaXRlcmF0ZWUyKHZhbHVlKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcmV0dXJuIHsgXCJjcml0ZXJpYVwiOiBjcml0ZXJpYSwgXCJpbmRleFwiOiArK2luZGV4LCBcInZhbHVlXCI6IHZhbHVlIH07XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgcmV0dXJuIGJhc2VTb3J0QnkocmVzdWx0MiwgZnVuY3Rpb24ob2JqZWN0LCBvdGhlcikge1xuICAgICAgICAgICAgcmV0dXJuIGNvbXBhcmVNdWx0aXBsZShvYmplY3QsIG90aGVyLCBvcmRlcnMpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGJhc2VQaWNrKG9iamVjdCwgcGF0aHMpIHtcbiAgICAgICAgICByZXR1cm4gYmFzZVBpY2tCeShvYmplY3QsIHBhdGhzLCBmdW5jdGlvbih2YWx1ZSwgcGF0aCkge1xuICAgICAgICAgICAgcmV0dXJuIGhhc0luKG9iamVjdCwgcGF0aCk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gYmFzZVBpY2tCeShvYmplY3QsIHBhdGhzLCBwcmVkaWNhdGUpIHtcbiAgICAgICAgICB2YXIgaW5kZXggPSAtMSwgbGVuZ3RoID0gcGF0aHMubGVuZ3RoLCByZXN1bHQyID0ge307XG4gICAgICAgICAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICAgICAgICAgIHZhciBwYXRoID0gcGF0aHNbaW5kZXhdLCB2YWx1ZSA9IGJhc2VHZXQob2JqZWN0LCBwYXRoKTtcbiAgICAgICAgICAgIGlmIChwcmVkaWNhdGUodmFsdWUsIHBhdGgpKSB7XG4gICAgICAgICAgICAgIGJhc2VTZXQocmVzdWx0MiwgY2FzdFBhdGgocGF0aCwgb2JqZWN0KSwgdmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gcmVzdWx0MjtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBiYXNlUHJvcGVydHlEZWVwKHBhdGgpIHtcbiAgICAgICAgICByZXR1cm4gZnVuY3Rpb24ob2JqZWN0KSB7XG4gICAgICAgICAgICByZXR1cm4gYmFzZUdldChvYmplY3QsIHBhdGgpO1xuICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gYmFzZVB1bGxBbGwoYXJyYXksIHZhbHVlczIsIGl0ZXJhdGVlMiwgY29tcGFyYXRvcikge1xuICAgICAgICAgIHZhciBpbmRleE9mMiA9IGNvbXBhcmF0b3IgPyBiYXNlSW5kZXhPZldpdGggOiBiYXNlSW5kZXhPZiwgaW5kZXggPSAtMSwgbGVuZ3RoID0gdmFsdWVzMi5sZW5ndGgsIHNlZW4gPSBhcnJheTtcbiAgICAgICAgICBpZiAoYXJyYXkgPT09IHZhbHVlczIpIHtcbiAgICAgICAgICAgIHZhbHVlczIgPSBjb3B5QXJyYXkodmFsdWVzMik7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChpdGVyYXRlZTIpIHtcbiAgICAgICAgICAgIHNlZW4gPSBhcnJheU1hcChhcnJheSwgYmFzZVVuYXJ5KGl0ZXJhdGVlMikpO1xuICAgICAgICAgIH1cbiAgICAgICAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgICAgICAgICAgdmFyIGZyb21JbmRleCA9IDAsIHZhbHVlID0gdmFsdWVzMltpbmRleF0sIGNvbXB1dGVkID0gaXRlcmF0ZWUyID8gaXRlcmF0ZWUyKHZhbHVlKSA6IHZhbHVlO1xuICAgICAgICAgICAgd2hpbGUgKChmcm9tSW5kZXggPSBpbmRleE9mMihzZWVuLCBjb21wdXRlZCwgZnJvbUluZGV4LCBjb21wYXJhdG9yKSkgPiAtMSkge1xuICAgICAgICAgICAgICBpZiAoc2VlbiAhPT0gYXJyYXkpIHtcbiAgICAgICAgICAgICAgICBzcGxpY2UuY2FsbChzZWVuLCBmcm9tSW5kZXgsIDEpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIHNwbGljZS5jYWxsKGFycmF5LCBmcm9tSW5kZXgsIDEpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gYXJyYXk7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gYmFzZVB1bGxBdChhcnJheSwgaW5kZXhlcykge1xuICAgICAgICAgIHZhciBsZW5ndGggPSBhcnJheSA/IGluZGV4ZXMubGVuZ3RoIDogMCwgbGFzdEluZGV4ID0gbGVuZ3RoIC0gMTtcbiAgICAgICAgICB3aGlsZSAobGVuZ3RoLS0pIHtcbiAgICAgICAgICAgIHZhciBpbmRleCA9IGluZGV4ZXNbbGVuZ3RoXTtcbiAgICAgICAgICAgIGlmIChsZW5ndGggPT0gbGFzdEluZGV4IHx8IGluZGV4ICE9PSBwcmV2aW91cykge1xuICAgICAgICAgICAgICB2YXIgcHJldmlvdXMgPSBpbmRleDtcbiAgICAgICAgICAgICAgaWYgKGlzSW5kZXgoaW5kZXgpKSB7XG4gICAgICAgICAgICAgICAgc3BsaWNlLmNhbGwoYXJyYXksIGluZGV4LCAxKTtcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBiYXNlVW5zZXQoYXJyYXksIGluZGV4KTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gYXJyYXk7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gYmFzZVJhbmRvbShsb3dlciwgdXBwZXIpIHtcbiAgICAgICAgICByZXR1cm4gbG93ZXIgKyBuYXRpdmVGbG9vcihuYXRpdmVSYW5kb20oKSAqICh1cHBlciAtIGxvd2VyICsgMSkpO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGJhc2VSYW5nZShzdGFydCwgZW5kLCBzdGVwLCBmcm9tUmlnaHQpIHtcbiAgICAgICAgICB2YXIgaW5kZXggPSAtMSwgbGVuZ3RoID0gbmF0aXZlTWF4KG5hdGl2ZUNlaWwoKGVuZCAtIHN0YXJ0KSAvIChzdGVwIHx8IDEpKSwgMCksIHJlc3VsdDIgPSBBcnJheTIobGVuZ3RoKTtcbiAgICAgICAgICB3aGlsZSAobGVuZ3RoLS0pIHtcbiAgICAgICAgICAgIHJlc3VsdDJbZnJvbVJpZ2h0ID8gbGVuZ3RoIDogKytpbmRleF0gPSBzdGFydDtcbiAgICAgICAgICAgIHN0YXJ0ICs9IHN0ZXA7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiByZXN1bHQyO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGJhc2VSZXBlYXQoc3RyaW5nLCBuKSB7XG4gICAgICAgICAgdmFyIHJlc3VsdDIgPSBcIlwiO1xuICAgICAgICAgIGlmICghc3RyaW5nIHx8IG4gPCAxIHx8IG4gPiBNQVhfU0FGRV9JTlRFR0VSKSB7XG4gICAgICAgICAgICByZXR1cm4gcmVzdWx0MjtcbiAgICAgICAgICB9XG4gICAgICAgICAgZG8ge1xuICAgICAgICAgICAgaWYgKG4gJSAyKSB7XG4gICAgICAgICAgICAgIHJlc3VsdDIgKz0gc3RyaW5nO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbiA9IG5hdGl2ZUZsb29yKG4gLyAyKTtcbiAgICAgICAgICAgIGlmIChuKSB7XG4gICAgICAgICAgICAgIHN0cmluZyArPSBzdHJpbmc7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSB3aGlsZSAobik7XG4gICAgICAgICAgcmV0dXJuIHJlc3VsdDI7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gYmFzZVJlc3QoZnVuYywgc3RhcnQpIHtcbiAgICAgICAgICByZXR1cm4gc2V0VG9TdHJpbmcob3ZlclJlc3QoZnVuYywgc3RhcnQsIGlkZW50aXR5KSwgZnVuYyArIFwiXCIpO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGJhc2VTYW1wbGUoY29sbGVjdGlvbikge1xuICAgICAgICAgIHJldHVybiBhcnJheVNhbXBsZSh2YWx1ZXMoY29sbGVjdGlvbikpO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGJhc2VTYW1wbGVTaXplKGNvbGxlY3Rpb24sIG4pIHtcbiAgICAgICAgICB2YXIgYXJyYXkgPSB2YWx1ZXMoY29sbGVjdGlvbik7XG4gICAgICAgICAgcmV0dXJuIHNodWZmbGVTZWxmKGFycmF5LCBiYXNlQ2xhbXAobiwgMCwgYXJyYXkubGVuZ3RoKSk7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gYmFzZVNldChvYmplY3QsIHBhdGgsIHZhbHVlLCBjdXN0b21pemVyKSB7XG4gICAgICAgICAgaWYgKCFpc09iamVjdChvYmplY3QpKSB7XG4gICAgICAgICAgICByZXR1cm4gb2JqZWN0O1xuICAgICAgICAgIH1cbiAgICAgICAgICBwYXRoID0gY2FzdFBhdGgocGF0aCwgb2JqZWN0KTtcbiAgICAgICAgICB2YXIgaW5kZXggPSAtMSwgbGVuZ3RoID0gcGF0aC5sZW5ndGgsIGxhc3RJbmRleCA9IGxlbmd0aCAtIDEsIG5lc3RlZCA9IG9iamVjdDtcbiAgICAgICAgICB3aGlsZSAobmVzdGVkICE9IG51bGwgJiYgKytpbmRleCA8IGxlbmd0aCkge1xuICAgICAgICAgICAgdmFyIGtleSA9IHRvS2V5KHBhdGhbaW5kZXhdKSwgbmV3VmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgICAgIGlmIChrZXkgPT09IFwiX19wcm90b19fXCIgfHwga2V5ID09PSBcImNvbnN0cnVjdG9yXCIgfHwga2V5ID09PSBcInByb3RvdHlwZVwiKSB7XG4gICAgICAgICAgICAgIHJldHVybiBvYmplY3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoaW5kZXggIT0gbGFzdEluZGV4KSB7XG4gICAgICAgICAgICAgIHZhciBvYmpWYWx1ZSA9IG5lc3RlZFtrZXldO1xuICAgICAgICAgICAgICBuZXdWYWx1ZSA9IGN1c3RvbWl6ZXIgPyBjdXN0b21pemVyKG9ialZhbHVlLCBrZXksIG5lc3RlZCkgOiB1bmRlZmluZWQyO1xuICAgICAgICAgICAgICBpZiAobmV3VmFsdWUgPT09IHVuZGVmaW5lZDIpIHtcbiAgICAgICAgICAgICAgICBuZXdWYWx1ZSA9IGlzT2JqZWN0KG9ialZhbHVlKSA/IG9ialZhbHVlIDogaXNJbmRleChwYXRoW2luZGV4ICsgMV0pID8gW10gOiB7fTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYXNzaWduVmFsdWUobmVzdGVkLCBrZXksIG5ld1ZhbHVlKTtcbiAgICAgICAgICAgIG5lc3RlZCA9IG5lc3RlZFtrZXldO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gb2JqZWN0O1xuICAgICAgICB9XG4gICAgICAgIHZhciBiYXNlU2V0RGF0YSA9ICFtZXRhTWFwID8gaWRlbnRpdHkgOiBmdW5jdGlvbihmdW5jLCBkYXRhKSB7XG4gICAgICAgICAgbWV0YU1hcC5zZXQoZnVuYywgZGF0YSk7XG4gICAgICAgICAgcmV0dXJuIGZ1bmM7XG4gICAgICAgIH07XG4gICAgICAgIHZhciBiYXNlU2V0VG9TdHJpbmcgPSAhZGVmaW5lUHJvcGVydHkgPyBpZGVudGl0eSA6IGZ1bmN0aW9uKGZ1bmMsIHN0cmluZykge1xuICAgICAgICAgIHJldHVybiBkZWZpbmVQcm9wZXJ0eShmdW5jLCBcInRvU3RyaW5nXCIsIHtcbiAgICAgICAgICAgIFwiY29uZmlndXJhYmxlXCI6IHRydWUsXG4gICAgICAgICAgICBcImVudW1lcmFibGVcIjogZmFsc2UsXG4gICAgICAgICAgICBcInZhbHVlXCI6IGNvbnN0YW50KHN0cmluZyksXG4gICAgICAgICAgICBcIndyaXRhYmxlXCI6IHRydWVcbiAgICAgICAgICB9KTtcbiAgICAgICAgfTtcbiAgICAgICAgZnVuY3Rpb24gYmFzZVNodWZmbGUoY29sbGVjdGlvbikge1xuICAgICAgICAgIHJldHVybiBzaHVmZmxlU2VsZih2YWx1ZXMoY29sbGVjdGlvbikpO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGJhc2VTbGljZShhcnJheSwgc3RhcnQsIGVuZCkge1xuICAgICAgICAgIHZhciBpbmRleCA9IC0xLCBsZW5ndGggPSBhcnJheS5sZW5ndGg7XG4gICAgICAgICAgaWYgKHN0YXJ0IDwgMCkge1xuICAgICAgICAgICAgc3RhcnQgPSAtc3RhcnQgPiBsZW5ndGggPyAwIDogbGVuZ3RoICsgc3RhcnQ7XG4gICAgICAgICAgfVxuICAgICAgICAgIGVuZCA9IGVuZCA+IGxlbmd0aCA/IGxlbmd0aCA6IGVuZDtcbiAgICAgICAgICBpZiAoZW5kIDwgMCkge1xuICAgICAgICAgICAgZW5kICs9IGxlbmd0aDtcbiAgICAgICAgICB9XG4gICAgICAgICAgbGVuZ3RoID0gc3RhcnQgPiBlbmQgPyAwIDogZW5kIC0gc3RhcnQgPj4+IDA7XG4gICAgICAgICAgc3RhcnQgPj4+PSAwO1xuICAgICAgICAgIHZhciByZXN1bHQyID0gQXJyYXkyKGxlbmd0aCk7XG4gICAgICAgICAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICAgICAgICAgIHJlc3VsdDJbaW5kZXhdID0gYXJyYXlbaW5kZXggKyBzdGFydF07XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiByZXN1bHQyO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGJhc2VTb21lKGNvbGxlY3Rpb24sIHByZWRpY2F0ZSkge1xuICAgICAgICAgIHZhciByZXN1bHQyO1xuICAgICAgICAgIGJhc2VFYWNoKGNvbGxlY3Rpb24sIGZ1bmN0aW9uKHZhbHVlLCBpbmRleCwgY29sbGVjdGlvbjIpIHtcbiAgICAgICAgICAgIHJlc3VsdDIgPSBwcmVkaWNhdGUodmFsdWUsIGluZGV4LCBjb2xsZWN0aW9uMik7XG4gICAgICAgICAgICByZXR1cm4gIXJlc3VsdDI7XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgcmV0dXJuICEhcmVzdWx0MjtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBiYXNlU29ydGVkSW5kZXgoYXJyYXksIHZhbHVlLCByZXRIaWdoZXN0KSB7XG4gICAgICAgICAgdmFyIGxvdyA9IDAsIGhpZ2ggPSBhcnJheSA9PSBudWxsID8gbG93IDogYXJyYXkubGVuZ3RoO1xuICAgICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT0gXCJudW1iZXJcIiAmJiB2YWx1ZSA9PT0gdmFsdWUgJiYgaGlnaCA8PSBIQUxGX01BWF9BUlJBWV9MRU5HVEgpIHtcbiAgICAgICAgICAgIHdoaWxlIChsb3cgPCBoaWdoKSB7XG4gICAgICAgICAgICAgIHZhciBtaWQgPSBsb3cgKyBoaWdoID4+PiAxLCBjb21wdXRlZCA9IGFycmF5W21pZF07XG4gICAgICAgICAgICAgIGlmIChjb21wdXRlZCAhPT0gbnVsbCAmJiAhaXNTeW1ib2woY29tcHV0ZWQpICYmIChyZXRIaWdoZXN0ID8gY29tcHV0ZWQgPD0gdmFsdWUgOiBjb21wdXRlZCA8IHZhbHVlKSkge1xuICAgICAgICAgICAgICAgIGxvdyA9IG1pZCArIDE7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgaGlnaCA9IG1pZDtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGhpZ2g7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBiYXNlU29ydGVkSW5kZXhCeShhcnJheSwgdmFsdWUsIGlkZW50aXR5LCByZXRIaWdoZXN0KTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBiYXNlU29ydGVkSW5kZXhCeShhcnJheSwgdmFsdWUsIGl0ZXJhdGVlMiwgcmV0SGlnaGVzdCkge1xuICAgICAgICAgIHZhciBsb3cgPSAwLCBoaWdoID0gYXJyYXkgPT0gbnVsbCA/IDAgOiBhcnJheS5sZW5ndGg7XG4gICAgICAgICAgaWYgKGhpZ2ggPT09IDApIHtcbiAgICAgICAgICAgIHJldHVybiAwO1xuICAgICAgICAgIH1cbiAgICAgICAgICB2YWx1ZSA9IGl0ZXJhdGVlMih2YWx1ZSk7XG4gICAgICAgICAgdmFyIHZhbElzTmFOID0gdmFsdWUgIT09IHZhbHVlLCB2YWxJc051bGwgPSB2YWx1ZSA9PT0gbnVsbCwgdmFsSXNTeW1ib2wgPSBpc1N5bWJvbCh2YWx1ZSksIHZhbElzVW5kZWZpbmVkID0gdmFsdWUgPT09IHVuZGVmaW5lZDI7XG4gICAgICAgICAgd2hpbGUgKGxvdyA8IGhpZ2gpIHtcbiAgICAgICAgICAgIHZhciBtaWQgPSBuYXRpdmVGbG9vcigobG93ICsgaGlnaCkgLyAyKSwgY29tcHV0ZWQgPSBpdGVyYXRlZTIoYXJyYXlbbWlkXSksIG90aElzRGVmaW5lZCA9IGNvbXB1dGVkICE9PSB1bmRlZmluZWQyLCBvdGhJc051bGwgPSBjb21wdXRlZCA9PT0gbnVsbCwgb3RoSXNSZWZsZXhpdmUgPSBjb21wdXRlZCA9PT0gY29tcHV0ZWQsIG90aElzU3ltYm9sID0gaXNTeW1ib2woY29tcHV0ZWQpO1xuICAgICAgICAgICAgaWYgKHZhbElzTmFOKSB7XG4gICAgICAgICAgICAgIHZhciBzZXRMb3cgPSByZXRIaWdoZXN0IHx8IG90aElzUmVmbGV4aXZlO1xuICAgICAgICAgICAgfSBlbHNlIGlmICh2YWxJc1VuZGVmaW5lZCkge1xuICAgICAgICAgICAgICBzZXRMb3cgPSBvdGhJc1JlZmxleGl2ZSAmJiAocmV0SGlnaGVzdCB8fCBvdGhJc0RlZmluZWQpO1xuICAgICAgICAgICAgfSBlbHNlIGlmICh2YWxJc051bGwpIHtcbiAgICAgICAgICAgICAgc2V0TG93ID0gb3RoSXNSZWZsZXhpdmUgJiYgb3RoSXNEZWZpbmVkICYmIChyZXRIaWdoZXN0IHx8ICFvdGhJc051bGwpO1xuICAgICAgICAgICAgfSBlbHNlIGlmICh2YWxJc1N5bWJvbCkge1xuICAgICAgICAgICAgICBzZXRMb3cgPSBvdGhJc1JlZmxleGl2ZSAmJiBvdGhJc0RlZmluZWQgJiYgIW90aElzTnVsbCAmJiAocmV0SGlnaGVzdCB8fCAhb3RoSXNTeW1ib2wpO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChvdGhJc051bGwgfHwgb3RoSXNTeW1ib2wpIHtcbiAgICAgICAgICAgICAgc2V0TG93ID0gZmFsc2U7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBzZXRMb3cgPSByZXRIaWdoZXN0ID8gY29tcHV0ZWQgPD0gdmFsdWUgOiBjb21wdXRlZCA8IHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHNldExvdykge1xuICAgICAgICAgICAgICBsb3cgPSBtaWQgKyAxO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgaGlnaCA9IG1pZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIG5hdGl2ZU1pbihoaWdoLCBNQVhfQVJSQVlfSU5ERVgpO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGJhc2VTb3J0ZWRVbmlxKGFycmF5LCBpdGVyYXRlZTIpIHtcbiAgICAgICAgICB2YXIgaW5kZXggPSAtMSwgbGVuZ3RoID0gYXJyYXkubGVuZ3RoLCByZXNJbmRleCA9IDAsIHJlc3VsdDIgPSBbXTtcbiAgICAgICAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgICAgICAgICAgdmFyIHZhbHVlID0gYXJyYXlbaW5kZXhdLCBjb21wdXRlZCA9IGl0ZXJhdGVlMiA/IGl0ZXJhdGVlMih2YWx1ZSkgOiB2YWx1ZTtcbiAgICAgICAgICAgIGlmICghaW5kZXggfHwgIWVxKGNvbXB1dGVkLCBzZWVuKSkge1xuICAgICAgICAgICAgICB2YXIgc2VlbiA9IGNvbXB1dGVkO1xuICAgICAgICAgICAgICByZXN1bHQyW3Jlc0luZGV4KytdID0gdmFsdWUgPT09IDAgPyAwIDogdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiByZXN1bHQyO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGJhc2VUb051bWJlcih2YWx1ZSkge1xuICAgICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT0gXCJudW1iZXJcIikge1xuICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoaXNTeW1ib2wodmFsdWUpKSB7XG4gICAgICAgICAgICByZXR1cm4gTkFOO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gK3ZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGJhc2VUb1N0cmluZyh2YWx1ZSkge1xuICAgICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgICAgICAgIHJldHVybiBhcnJheU1hcCh2YWx1ZSwgYmFzZVRvU3RyaW5nKSArIFwiXCI7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChpc1N5bWJvbCh2YWx1ZSkpIHtcbiAgICAgICAgICAgIHJldHVybiBzeW1ib2xUb1N0cmluZyA/IHN5bWJvbFRvU3RyaW5nLmNhbGwodmFsdWUpIDogXCJcIjtcbiAgICAgICAgICB9XG4gICAgICAgICAgdmFyIHJlc3VsdDIgPSB2YWx1ZSArIFwiXCI7XG4gICAgICAgICAgcmV0dXJuIHJlc3VsdDIgPT0gXCIwXCIgJiYgMSAvIHZhbHVlID09IC1JTkZJTklUWSA/IFwiLTBcIiA6IHJlc3VsdDI7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gYmFzZVVuaXEoYXJyYXksIGl0ZXJhdGVlMiwgY29tcGFyYXRvcikge1xuICAgICAgICAgIHZhciBpbmRleCA9IC0xLCBpbmNsdWRlczIgPSBhcnJheUluY2x1ZGVzLCBsZW5ndGggPSBhcnJheS5sZW5ndGgsIGlzQ29tbW9uID0gdHJ1ZSwgcmVzdWx0MiA9IFtdLCBzZWVuID0gcmVzdWx0MjtcbiAgICAgICAgICBpZiAoY29tcGFyYXRvcikge1xuICAgICAgICAgICAgaXNDb21tb24gPSBmYWxzZTtcbiAgICAgICAgICAgIGluY2x1ZGVzMiA9IGFycmF5SW5jbHVkZXNXaXRoO1xuICAgICAgICAgIH0gZWxzZSBpZiAobGVuZ3RoID49IExBUkdFX0FSUkFZX1NJWkUpIHtcbiAgICAgICAgICAgIHZhciBzZXQyID0gaXRlcmF0ZWUyID8gbnVsbCA6IGNyZWF0ZVNldChhcnJheSk7XG4gICAgICAgICAgICBpZiAoc2V0Mikge1xuICAgICAgICAgICAgICByZXR1cm4gc2V0VG9BcnJheShzZXQyKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlzQ29tbW9uID0gZmFsc2U7XG4gICAgICAgICAgICBpbmNsdWRlczIgPSBjYWNoZUhhcztcbiAgICAgICAgICAgIHNlZW4gPSBuZXcgU2V0Q2FjaGUoKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgc2VlbiA9IGl0ZXJhdGVlMiA/IFtdIDogcmVzdWx0MjtcbiAgICAgICAgICB9XG4gICAgICAgICAgb3V0ZXI6XG4gICAgICAgICAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgICAgICAgICAgICB2YXIgdmFsdWUgPSBhcnJheVtpbmRleF0sIGNvbXB1dGVkID0gaXRlcmF0ZWUyID8gaXRlcmF0ZWUyKHZhbHVlKSA6IHZhbHVlO1xuICAgICAgICAgICAgICB2YWx1ZSA9IGNvbXBhcmF0b3IgfHwgdmFsdWUgIT09IDAgPyB2YWx1ZSA6IDA7XG4gICAgICAgICAgICAgIGlmIChpc0NvbW1vbiAmJiBjb21wdXRlZCA9PT0gY29tcHV0ZWQpIHtcbiAgICAgICAgICAgICAgICB2YXIgc2VlbkluZGV4ID0gc2Vlbi5sZW5ndGg7XG4gICAgICAgICAgICAgICAgd2hpbGUgKHNlZW5JbmRleC0tKSB7XG4gICAgICAgICAgICAgICAgICBpZiAoc2VlbltzZWVuSW5kZXhdID09PSBjb21wdXRlZCkge1xuICAgICAgICAgICAgICAgICAgICBjb250aW51ZSBvdXRlcjtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKGl0ZXJhdGVlMikge1xuICAgICAgICAgICAgICAgICAgc2Vlbi5wdXNoKGNvbXB1dGVkKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmVzdWx0Mi5wdXNoKHZhbHVlKTtcbiAgICAgICAgICAgICAgfSBlbHNlIGlmICghaW5jbHVkZXMyKHNlZW4sIGNvbXB1dGVkLCBjb21wYXJhdG9yKSkge1xuICAgICAgICAgICAgICAgIGlmIChzZWVuICE9PSByZXN1bHQyKSB7XG4gICAgICAgICAgICAgICAgICBzZWVuLnB1c2goY29tcHV0ZWQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXN1bHQyLnB1c2godmFsdWUpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHJlc3VsdDI7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gYmFzZVVuc2V0KG9iamVjdCwgcGF0aCkge1xuICAgICAgICAgIHBhdGggPSBjYXN0UGF0aChwYXRoLCBvYmplY3QpO1xuICAgICAgICAgIG9iamVjdCA9IHBhcmVudChvYmplY3QsIHBhdGgpO1xuICAgICAgICAgIHJldHVybiBvYmplY3QgPT0gbnVsbCB8fCBkZWxldGUgb2JqZWN0W3RvS2V5KGxhc3QocGF0aCkpXTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBiYXNlVXBkYXRlKG9iamVjdCwgcGF0aCwgdXBkYXRlciwgY3VzdG9taXplcikge1xuICAgICAgICAgIHJldHVybiBiYXNlU2V0KG9iamVjdCwgcGF0aCwgdXBkYXRlcihiYXNlR2V0KG9iamVjdCwgcGF0aCkpLCBjdXN0b21pemVyKTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBiYXNlV2hpbGUoYXJyYXksIHByZWRpY2F0ZSwgaXNEcm9wLCBmcm9tUmlnaHQpIHtcbiAgICAgICAgICB2YXIgbGVuZ3RoID0gYXJyYXkubGVuZ3RoLCBpbmRleCA9IGZyb21SaWdodCA/IGxlbmd0aCA6IC0xO1xuICAgICAgICAgIHdoaWxlICgoZnJvbVJpZ2h0ID8gaW5kZXgtLSA6ICsraW5kZXggPCBsZW5ndGgpICYmIHByZWRpY2F0ZShhcnJheVtpbmRleF0sIGluZGV4LCBhcnJheSkpIHtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIGlzRHJvcCA/IGJhc2VTbGljZShhcnJheSwgZnJvbVJpZ2h0ID8gMCA6IGluZGV4LCBmcm9tUmlnaHQgPyBpbmRleCArIDEgOiBsZW5ndGgpIDogYmFzZVNsaWNlKGFycmF5LCBmcm9tUmlnaHQgPyBpbmRleCArIDEgOiAwLCBmcm9tUmlnaHQgPyBsZW5ndGggOiBpbmRleCk7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gYmFzZVdyYXBwZXJWYWx1ZSh2YWx1ZSwgYWN0aW9ucykge1xuICAgICAgICAgIHZhciByZXN1bHQyID0gdmFsdWU7XG4gICAgICAgICAgaWYgKHJlc3VsdDIgaW5zdGFuY2VvZiBMYXp5V3JhcHBlcikge1xuICAgICAgICAgICAgcmVzdWx0MiA9IHJlc3VsdDIudmFsdWUoKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIGFycmF5UmVkdWNlKGFjdGlvbnMsIGZ1bmN0aW9uKHJlc3VsdDMsIGFjdGlvbikge1xuICAgICAgICAgICAgcmV0dXJuIGFjdGlvbi5mdW5jLmFwcGx5KGFjdGlvbi50aGlzQXJnLCBhcnJheVB1c2goW3Jlc3VsdDNdLCBhY3Rpb24uYXJncykpO1xuICAgICAgICAgIH0sIHJlc3VsdDIpO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGJhc2VYb3IoYXJyYXlzLCBpdGVyYXRlZTIsIGNvbXBhcmF0b3IpIHtcbiAgICAgICAgICB2YXIgbGVuZ3RoID0gYXJyYXlzLmxlbmd0aDtcbiAgICAgICAgICBpZiAobGVuZ3RoIDwgMikge1xuICAgICAgICAgICAgcmV0dXJuIGxlbmd0aCA/IGJhc2VVbmlxKGFycmF5c1swXSkgOiBbXTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdmFyIGluZGV4ID0gLTEsIHJlc3VsdDIgPSBBcnJheTIobGVuZ3RoKTtcbiAgICAgICAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgICAgICAgICAgdmFyIGFycmF5ID0gYXJyYXlzW2luZGV4XSwgb3RoSW5kZXggPSAtMTtcbiAgICAgICAgICAgIHdoaWxlICgrK290aEluZGV4IDwgbGVuZ3RoKSB7XG4gICAgICAgICAgICAgIGlmIChvdGhJbmRleCAhPSBpbmRleCkge1xuICAgICAgICAgICAgICAgIHJlc3VsdDJbaW5kZXhdID0gYmFzZURpZmZlcmVuY2UocmVzdWx0MltpbmRleF0gfHwgYXJyYXksIGFycmF5c1tvdGhJbmRleF0sIGl0ZXJhdGVlMiwgY29tcGFyYXRvcik7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIGJhc2VVbmlxKGJhc2VGbGF0dGVuKHJlc3VsdDIsIDEpLCBpdGVyYXRlZTIsIGNvbXBhcmF0b3IpO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGJhc2VaaXBPYmplY3QocHJvcHMsIHZhbHVlczIsIGFzc2lnbkZ1bmMpIHtcbiAgICAgICAgICB2YXIgaW5kZXggPSAtMSwgbGVuZ3RoID0gcHJvcHMubGVuZ3RoLCB2YWxzTGVuZ3RoID0gdmFsdWVzMi5sZW5ndGgsIHJlc3VsdDIgPSB7fTtcbiAgICAgICAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgICAgICAgICAgdmFyIHZhbHVlID0gaW5kZXggPCB2YWxzTGVuZ3RoID8gdmFsdWVzMltpbmRleF0gOiB1bmRlZmluZWQyO1xuICAgICAgICAgICAgYXNzaWduRnVuYyhyZXN1bHQyLCBwcm9wc1tpbmRleF0sIHZhbHVlKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHJlc3VsdDI7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gY2FzdEFycmF5TGlrZU9iamVjdCh2YWx1ZSkge1xuICAgICAgICAgIHJldHVybiBpc0FycmF5TGlrZU9iamVjdCh2YWx1ZSkgPyB2YWx1ZSA6IFtdO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGNhc3RGdW5jdGlvbih2YWx1ZSkge1xuICAgICAgICAgIHJldHVybiB0eXBlb2YgdmFsdWUgPT0gXCJmdW5jdGlvblwiID8gdmFsdWUgOiBpZGVudGl0eTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBjYXN0UGF0aCh2YWx1ZSwgb2JqZWN0KSB7XG4gICAgICAgICAgaWYgKGlzQXJyYXkodmFsdWUpKSB7XG4gICAgICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBpc0tleSh2YWx1ZSwgb2JqZWN0KSA/IFt2YWx1ZV0gOiBzdHJpbmdUb1BhdGgodG9TdHJpbmcodmFsdWUpKTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgY2FzdFJlc3QgPSBiYXNlUmVzdDtcbiAgICAgICAgZnVuY3Rpb24gY2FzdFNsaWNlKGFycmF5LCBzdGFydCwgZW5kKSB7XG4gICAgICAgICAgdmFyIGxlbmd0aCA9IGFycmF5Lmxlbmd0aDtcbiAgICAgICAgICBlbmQgPSBlbmQgPT09IHVuZGVmaW5lZDIgPyBsZW5ndGggOiBlbmQ7XG4gICAgICAgICAgcmV0dXJuICFzdGFydCAmJiBlbmQgPj0gbGVuZ3RoID8gYXJyYXkgOiBiYXNlU2xpY2UoYXJyYXksIHN0YXJ0LCBlbmQpO1xuICAgICAgICB9XG4gICAgICAgIHZhciBjbGVhclRpbWVvdXQgPSBjdHhDbGVhclRpbWVvdXQgfHwgZnVuY3Rpb24oaWQpIHtcbiAgICAgICAgICByZXR1cm4gcm9vdC5jbGVhclRpbWVvdXQoaWQpO1xuICAgICAgICB9O1xuICAgICAgICBmdW5jdGlvbiBjbG9uZUJ1ZmZlcihidWZmZXIsIGlzRGVlcCkge1xuICAgICAgICAgIGlmIChpc0RlZXApIHtcbiAgICAgICAgICAgIHJldHVybiBidWZmZXIuc2xpY2UoKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdmFyIGxlbmd0aCA9IGJ1ZmZlci5sZW5ndGgsIHJlc3VsdDIgPSBhbGxvY1Vuc2FmZSA/IGFsbG9jVW5zYWZlKGxlbmd0aCkgOiBuZXcgYnVmZmVyLmNvbnN0cnVjdG9yKGxlbmd0aCk7XG4gICAgICAgICAgYnVmZmVyLmNvcHkocmVzdWx0Mik7XG4gICAgICAgICAgcmV0dXJuIHJlc3VsdDI7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gY2xvbmVBcnJheUJ1ZmZlcihhcnJheUJ1ZmZlcikge1xuICAgICAgICAgIHZhciByZXN1bHQyID0gbmV3IGFycmF5QnVmZmVyLmNvbnN0cnVjdG9yKGFycmF5QnVmZmVyLmJ5dGVMZW5ndGgpO1xuICAgICAgICAgIG5ldyBVaW50OEFycmF5MihyZXN1bHQyKS5zZXQobmV3IFVpbnQ4QXJyYXkyKGFycmF5QnVmZmVyKSk7XG4gICAgICAgICAgcmV0dXJuIHJlc3VsdDI7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gY2xvbmVEYXRhVmlldyhkYXRhVmlldywgaXNEZWVwKSB7XG4gICAgICAgICAgdmFyIGJ1ZmZlciA9IGlzRGVlcCA/IGNsb25lQXJyYXlCdWZmZXIoZGF0YVZpZXcuYnVmZmVyKSA6IGRhdGFWaWV3LmJ1ZmZlcjtcbiAgICAgICAgICByZXR1cm4gbmV3IGRhdGFWaWV3LmNvbnN0cnVjdG9yKGJ1ZmZlciwgZGF0YVZpZXcuYnl0ZU9mZnNldCwgZGF0YVZpZXcuYnl0ZUxlbmd0aCk7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gY2xvbmVSZWdFeHAocmVnZXhwKSB7XG4gICAgICAgICAgdmFyIHJlc3VsdDIgPSBuZXcgcmVnZXhwLmNvbnN0cnVjdG9yKHJlZ2V4cC5zb3VyY2UsIHJlRmxhZ3MuZXhlYyhyZWdleHApKTtcbiAgICAgICAgICByZXN1bHQyLmxhc3RJbmRleCA9IHJlZ2V4cC5sYXN0SW5kZXg7XG4gICAgICAgICAgcmV0dXJuIHJlc3VsdDI7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gY2xvbmVTeW1ib2woc3ltYm9sKSB7XG4gICAgICAgICAgcmV0dXJuIHN5bWJvbFZhbHVlT2YgPyBPYmplY3QyKHN5bWJvbFZhbHVlT2YuY2FsbChzeW1ib2wpKSA6IHt9O1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGNsb25lVHlwZWRBcnJheSh0eXBlZEFycmF5LCBpc0RlZXApIHtcbiAgICAgICAgICB2YXIgYnVmZmVyID0gaXNEZWVwID8gY2xvbmVBcnJheUJ1ZmZlcih0eXBlZEFycmF5LmJ1ZmZlcikgOiB0eXBlZEFycmF5LmJ1ZmZlcjtcbiAgICAgICAgICByZXR1cm4gbmV3IHR5cGVkQXJyYXkuY29uc3RydWN0b3IoYnVmZmVyLCB0eXBlZEFycmF5LmJ5dGVPZmZzZXQsIHR5cGVkQXJyYXkubGVuZ3RoKTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBjb21wYXJlQXNjZW5kaW5nKHZhbHVlLCBvdGhlcikge1xuICAgICAgICAgIGlmICh2YWx1ZSAhPT0gb3RoZXIpIHtcbiAgICAgICAgICAgIHZhciB2YWxJc0RlZmluZWQgPSB2YWx1ZSAhPT0gdW5kZWZpbmVkMiwgdmFsSXNOdWxsID0gdmFsdWUgPT09IG51bGwsIHZhbElzUmVmbGV4aXZlID0gdmFsdWUgPT09IHZhbHVlLCB2YWxJc1N5bWJvbCA9IGlzU3ltYm9sKHZhbHVlKTtcbiAgICAgICAgICAgIHZhciBvdGhJc0RlZmluZWQgPSBvdGhlciAhPT0gdW5kZWZpbmVkMiwgb3RoSXNOdWxsID0gb3RoZXIgPT09IG51bGwsIG90aElzUmVmbGV4aXZlID0gb3RoZXIgPT09IG90aGVyLCBvdGhJc1N5bWJvbCA9IGlzU3ltYm9sKG90aGVyKTtcbiAgICAgICAgICAgIGlmICghb3RoSXNOdWxsICYmICFvdGhJc1N5bWJvbCAmJiAhdmFsSXNTeW1ib2wgJiYgdmFsdWUgPiBvdGhlciB8fCB2YWxJc1N5bWJvbCAmJiBvdGhJc0RlZmluZWQgJiYgb3RoSXNSZWZsZXhpdmUgJiYgIW90aElzTnVsbCAmJiAhb3RoSXNTeW1ib2wgfHwgdmFsSXNOdWxsICYmIG90aElzRGVmaW5lZCAmJiBvdGhJc1JlZmxleGl2ZSB8fCAhdmFsSXNEZWZpbmVkICYmIG90aElzUmVmbGV4aXZlIHx8ICF2YWxJc1JlZmxleGl2ZSkge1xuICAgICAgICAgICAgICByZXR1cm4gMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICghdmFsSXNOdWxsICYmICF2YWxJc1N5bWJvbCAmJiAhb3RoSXNTeW1ib2wgJiYgdmFsdWUgPCBvdGhlciB8fCBvdGhJc1N5bWJvbCAmJiB2YWxJc0RlZmluZWQgJiYgdmFsSXNSZWZsZXhpdmUgJiYgIXZhbElzTnVsbCAmJiAhdmFsSXNTeW1ib2wgfHwgb3RoSXNOdWxsICYmIHZhbElzRGVmaW5lZCAmJiB2YWxJc1JlZmxleGl2ZSB8fCAhb3RoSXNEZWZpbmVkICYmIHZhbElzUmVmbGV4aXZlIHx8ICFvdGhJc1JlZmxleGl2ZSkge1xuICAgICAgICAgICAgICByZXR1cm4gLTE7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiAwO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGNvbXBhcmVNdWx0aXBsZShvYmplY3QsIG90aGVyLCBvcmRlcnMpIHtcbiAgICAgICAgICB2YXIgaW5kZXggPSAtMSwgb2JqQ3JpdGVyaWEgPSBvYmplY3QuY3JpdGVyaWEsIG90aENyaXRlcmlhID0gb3RoZXIuY3JpdGVyaWEsIGxlbmd0aCA9IG9iakNyaXRlcmlhLmxlbmd0aCwgb3JkZXJzTGVuZ3RoID0gb3JkZXJzLmxlbmd0aDtcbiAgICAgICAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgICAgICAgICAgdmFyIHJlc3VsdDIgPSBjb21wYXJlQXNjZW5kaW5nKG9iakNyaXRlcmlhW2luZGV4XSwgb3RoQ3JpdGVyaWFbaW5kZXhdKTtcbiAgICAgICAgICAgIGlmIChyZXN1bHQyKSB7XG4gICAgICAgICAgICAgIGlmIChpbmRleCA+PSBvcmRlcnNMZW5ndGgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0MjtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB2YXIgb3JkZXIgPSBvcmRlcnNbaW5kZXhdO1xuICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0MiAqIChvcmRlciA9PSBcImRlc2NcIiA/IC0xIDogMSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBvYmplY3QuaW5kZXggLSBvdGhlci5pbmRleDtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBjb21wb3NlQXJncyhhcmdzLCBwYXJ0aWFscywgaG9sZGVycywgaXNDdXJyaWVkKSB7XG4gICAgICAgICAgdmFyIGFyZ3NJbmRleCA9IC0xLCBhcmdzTGVuZ3RoID0gYXJncy5sZW5ndGgsIGhvbGRlcnNMZW5ndGggPSBob2xkZXJzLmxlbmd0aCwgbGVmdEluZGV4ID0gLTEsIGxlZnRMZW5ndGggPSBwYXJ0aWFscy5sZW5ndGgsIHJhbmdlTGVuZ3RoID0gbmF0aXZlTWF4KGFyZ3NMZW5ndGggLSBob2xkZXJzTGVuZ3RoLCAwKSwgcmVzdWx0MiA9IEFycmF5MihsZWZ0TGVuZ3RoICsgcmFuZ2VMZW5ndGgpLCBpc1VuY3VycmllZCA9ICFpc0N1cnJpZWQ7XG4gICAgICAgICAgd2hpbGUgKCsrbGVmdEluZGV4IDwgbGVmdExlbmd0aCkge1xuICAgICAgICAgICAgcmVzdWx0MltsZWZ0SW5kZXhdID0gcGFydGlhbHNbbGVmdEluZGV4XTtcbiAgICAgICAgICB9XG4gICAgICAgICAgd2hpbGUgKCsrYXJnc0luZGV4IDwgaG9sZGVyc0xlbmd0aCkge1xuICAgICAgICAgICAgaWYgKGlzVW5jdXJyaWVkIHx8IGFyZ3NJbmRleCA8IGFyZ3NMZW5ndGgpIHtcbiAgICAgICAgICAgICAgcmVzdWx0Mltob2xkZXJzW2FyZ3NJbmRleF1dID0gYXJnc1thcmdzSW5kZXhdO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICB3aGlsZSAocmFuZ2VMZW5ndGgtLSkge1xuICAgICAgICAgICAgcmVzdWx0MltsZWZ0SW5kZXgrK10gPSBhcmdzW2FyZ3NJbmRleCsrXTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHJlc3VsdDI7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gY29tcG9zZUFyZ3NSaWdodChhcmdzLCBwYXJ0aWFscywgaG9sZGVycywgaXNDdXJyaWVkKSB7XG4gICAgICAgICAgdmFyIGFyZ3NJbmRleCA9IC0xLCBhcmdzTGVuZ3RoID0gYXJncy5sZW5ndGgsIGhvbGRlcnNJbmRleCA9IC0xLCBob2xkZXJzTGVuZ3RoID0gaG9sZGVycy5sZW5ndGgsIHJpZ2h0SW5kZXggPSAtMSwgcmlnaHRMZW5ndGggPSBwYXJ0aWFscy5sZW5ndGgsIHJhbmdlTGVuZ3RoID0gbmF0aXZlTWF4KGFyZ3NMZW5ndGggLSBob2xkZXJzTGVuZ3RoLCAwKSwgcmVzdWx0MiA9IEFycmF5MihyYW5nZUxlbmd0aCArIHJpZ2h0TGVuZ3RoKSwgaXNVbmN1cnJpZWQgPSAhaXNDdXJyaWVkO1xuICAgICAgICAgIHdoaWxlICgrK2FyZ3NJbmRleCA8IHJhbmdlTGVuZ3RoKSB7XG4gICAgICAgICAgICByZXN1bHQyW2FyZ3NJbmRleF0gPSBhcmdzW2FyZ3NJbmRleF07XG4gICAgICAgICAgfVxuICAgICAgICAgIHZhciBvZmZzZXQgPSBhcmdzSW5kZXg7XG4gICAgICAgICAgd2hpbGUgKCsrcmlnaHRJbmRleCA8IHJpZ2h0TGVuZ3RoKSB7XG4gICAgICAgICAgICByZXN1bHQyW29mZnNldCArIHJpZ2h0SW5kZXhdID0gcGFydGlhbHNbcmlnaHRJbmRleF07XG4gICAgICAgICAgfVxuICAgICAgICAgIHdoaWxlICgrK2hvbGRlcnNJbmRleCA8IGhvbGRlcnNMZW5ndGgpIHtcbiAgICAgICAgICAgIGlmIChpc1VuY3VycmllZCB8fCBhcmdzSW5kZXggPCBhcmdzTGVuZ3RoKSB7XG4gICAgICAgICAgICAgIHJlc3VsdDJbb2Zmc2V0ICsgaG9sZGVyc1tob2xkZXJzSW5kZXhdXSA9IGFyZ3NbYXJnc0luZGV4KytdO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gcmVzdWx0MjtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBjb3B5QXJyYXkoc291cmNlLCBhcnJheSkge1xuICAgICAgICAgIHZhciBpbmRleCA9IC0xLCBsZW5ndGggPSBzb3VyY2UubGVuZ3RoO1xuICAgICAgICAgIGFycmF5IHx8IChhcnJheSA9IEFycmF5MihsZW5ndGgpKTtcbiAgICAgICAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgICAgICAgICAgYXJyYXlbaW5kZXhdID0gc291cmNlW2luZGV4XTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIGFycmF5O1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGNvcHlPYmplY3Qoc291cmNlLCBwcm9wcywgb2JqZWN0LCBjdXN0b21pemVyKSB7XG4gICAgICAgICAgdmFyIGlzTmV3ID0gIW9iamVjdDtcbiAgICAgICAgICBvYmplY3QgfHwgKG9iamVjdCA9IHt9KTtcbiAgICAgICAgICB2YXIgaW5kZXggPSAtMSwgbGVuZ3RoID0gcHJvcHMubGVuZ3RoO1xuICAgICAgICAgIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgICAgICAgICB2YXIga2V5ID0gcHJvcHNbaW5kZXhdO1xuICAgICAgICAgICAgdmFyIG5ld1ZhbHVlID0gY3VzdG9taXplciA/IGN1c3RvbWl6ZXIob2JqZWN0W2tleV0sIHNvdXJjZVtrZXldLCBrZXksIG9iamVjdCwgc291cmNlKSA6IHVuZGVmaW5lZDI7XG4gICAgICAgICAgICBpZiAobmV3VmFsdWUgPT09IHVuZGVmaW5lZDIpIHtcbiAgICAgICAgICAgICAgbmV3VmFsdWUgPSBzb3VyY2Vba2V5XTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChpc05ldykge1xuICAgICAgICAgICAgICBiYXNlQXNzaWduVmFsdWUob2JqZWN0LCBrZXksIG5ld1ZhbHVlKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIGFzc2lnblZhbHVlKG9iamVjdCwga2V5LCBuZXdWYWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBvYmplY3Q7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gY29weVN5bWJvbHMoc291cmNlLCBvYmplY3QpIHtcbiAgICAgICAgICByZXR1cm4gY29weU9iamVjdChzb3VyY2UsIGdldFN5bWJvbHMoc291cmNlKSwgb2JqZWN0KTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBjb3B5U3ltYm9sc0luKHNvdXJjZSwgb2JqZWN0KSB7XG4gICAgICAgICAgcmV0dXJuIGNvcHlPYmplY3Qoc291cmNlLCBnZXRTeW1ib2xzSW4oc291cmNlKSwgb2JqZWN0KTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBjcmVhdGVBZ2dyZWdhdG9yKHNldHRlciwgaW5pdGlhbGl6ZXIpIHtcbiAgICAgICAgICByZXR1cm4gZnVuY3Rpb24oY29sbGVjdGlvbiwgaXRlcmF0ZWUyKSB7XG4gICAgICAgICAgICB2YXIgZnVuYyA9IGlzQXJyYXkoY29sbGVjdGlvbikgPyBhcnJheUFnZ3JlZ2F0b3IgOiBiYXNlQWdncmVnYXRvciwgYWNjdW11bGF0b3IgPSBpbml0aWFsaXplciA/IGluaXRpYWxpemVyKCkgOiB7fTtcbiAgICAgICAgICAgIHJldHVybiBmdW5jKGNvbGxlY3Rpb24sIHNldHRlciwgZ2V0SXRlcmF0ZWUoaXRlcmF0ZWUyLCAyKSwgYWNjdW11bGF0b3IpO1xuICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gY3JlYXRlQXNzaWduZXIoYXNzaWduZXIpIHtcbiAgICAgICAgICByZXR1cm4gYmFzZVJlc3QoZnVuY3Rpb24ob2JqZWN0LCBzb3VyY2VzKSB7XG4gICAgICAgICAgICB2YXIgaW5kZXggPSAtMSwgbGVuZ3RoID0gc291cmNlcy5sZW5ndGgsIGN1c3RvbWl6ZXIgPSBsZW5ndGggPiAxID8gc291cmNlc1tsZW5ndGggLSAxXSA6IHVuZGVmaW5lZDIsIGd1YXJkID0gbGVuZ3RoID4gMiA/IHNvdXJjZXNbMl0gOiB1bmRlZmluZWQyO1xuICAgICAgICAgICAgY3VzdG9taXplciA9IGFzc2lnbmVyLmxlbmd0aCA+IDMgJiYgdHlwZW9mIGN1c3RvbWl6ZXIgPT0gXCJmdW5jdGlvblwiID8gKGxlbmd0aC0tLCBjdXN0b21pemVyKSA6IHVuZGVmaW5lZDI7XG4gICAgICAgICAgICBpZiAoZ3VhcmQgJiYgaXNJdGVyYXRlZUNhbGwoc291cmNlc1swXSwgc291cmNlc1sxXSwgZ3VhcmQpKSB7XG4gICAgICAgICAgICAgIGN1c3RvbWl6ZXIgPSBsZW5ndGggPCAzID8gdW5kZWZpbmVkMiA6IGN1c3RvbWl6ZXI7XG4gICAgICAgICAgICAgIGxlbmd0aCA9IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBvYmplY3QgPSBPYmplY3QyKG9iamVjdCk7XG4gICAgICAgICAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgICAgICAgICAgICB2YXIgc291cmNlID0gc291cmNlc1tpbmRleF07XG4gICAgICAgICAgICAgIGlmIChzb3VyY2UpIHtcbiAgICAgICAgICAgICAgICBhc3NpZ25lcihvYmplY3QsIHNvdXJjZSwgaW5kZXgsIGN1c3RvbWl6ZXIpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gb2JqZWN0O1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGNyZWF0ZUJhc2VFYWNoKGVhY2hGdW5jLCBmcm9tUmlnaHQpIHtcbiAgICAgICAgICByZXR1cm4gZnVuY3Rpb24oY29sbGVjdGlvbiwgaXRlcmF0ZWUyKSB7XG4gICAgICAgICAgICBpZiAoY29sbGVjdGlvbiA9PSBudWxsKSB7XG4gICAgICAgICAgICAgIHJldHVybiBjb2xsZWN0aW9uO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCFpc0FycmF5TGlrZShjb2xsZWN0aW9uKSkge1xuICAgICAgICAgICAgICByZXR1cm4gZWFjaEZ1bmMoY29sbGVjdGlvbiwgaXRlcmF0ZWUyKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHZhciBsZW5ndGggPSBjb2xsZWN0aW9uLmxlbmd0aCwgaW5kZXggPSBmcm9tUmlnaHQgPyBsZW5ndGggOiAtMSwgaXRlcmFibGUgPSBPYmplY3QyKGNvbGxlY3Rpb24pO1xuICAgICAgICAgICAgd2hpbGUgKGZyb21SaWdodCA/IGluZGV4LS0gOiArK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgICAgICAgICAgIGlmIChpdGVyYXRlZTIoaXRlcmFibGVbaW5kZXhdLCBpbmRleCwgaXRlcmFibGUpID09PSBmYWxzZSkge1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gY29sbGVjdGlvbjtcbiAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGNyZWF0ZUJhc2VGb3IoZnJvbVJpZ2h0KSB7XG4gICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKG9iamVjdCwgaXRlcmF0ZWUyLCBrZXlzRnVuYykge1xuICAgICAgICAgICAgdmFyIGluZGV4ID0gLTEsIGl0ZXJhYmxlID0gT2JqZWN0MihvYmplY3QpLCBwcm9wcyA9IGtleXNGdW5jKG9iamVjdCksIGxlbmd0aCA9IHByb3BzLmxlbmd0aDtcbiAgICAgICAgICAgIHdoaWxlIChsZW5ndGgtLSkge1xuICAgICAgICAgICAgICB2YXIga2V5ID0gcHJvcHNbZnJvbVJpZ2h0ID8gbGVuZ3RoIDogKytpbmRleF07XG4gICAgICAgICAgICAgIGlmIChpdGVyYXRlZTIoaXRlcmFibGVba2V5XSwga2V5LCBpdGVyYWJsZSkgPT09IGZhbHNlKSB7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBvYmplY3Q7XG4gICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBjcmVhdGVCaW5kKGZ1bmMsIGJpdG1hc2ssIHRoaXNBcmcpIHtcbiAgICAgICAgICB2YXIgaXNCaW5kID0gYml0bWFzayAmIFdSQVBfQklORF9GTEFHLCBDdG9yID0gY3JlYXRlQ3RvcihmdW5jKTtcbiAgICAgICAgICBmdW5jdGlvbiB3cmFwcGVyKCkge1xuICAgICAgICAgICAgdmFyIGZuID0gdGhpcyAmJiB0aGlzICE9PSByb290ICYmIHRoaXMgaW5zdGFuY2VvZiB3cmFwcGVyID8gQ3RvciA6IGZ1bmM7XG4gICAgICAgICAgICByZXR1cm4gZm4uYXBwbHkoaXNCaW5kID8gdGhpc0FyZyA6IHRoaXMsIGFyZ3VtZW50cyk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiB3cmFwcGVyO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGNyZWF0ZUNhc2VGaXJzdChtZXRob2ROYW1lKSB7XG4gICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKHN0cmluZykge1xuICAgICAgICAgICAgc3RyaW5nID0gdG9TdHJpbmcoc3RyaW5nKTtcbiAgICAgICAgICAgIHZhciBzdHJTeW1ib2xzID0gaGFzVW5pY29kZShzdHJpbmcpID8gc3RyaW5nVG9BcnJheShzdHJpbmcpIDogdW5kZWZpbmVkMjtcbiAgICAgICAgICAgIHZhciBjaHIgPSBzdHJTeW1ib2xzID8gc3RyU3ltYm9sc1swXSA6IHN0cmluZy5jaGFyQXQoMCk7XG4gICAgICAgICAgICB2YXIgdHJhaWxpbmcgPSBzdHJTeW1ib2xzID8gY2FzdFNsaWNlKHN0clN5bWJvbHMsIDEpLmpvaW4oXCJcIikgOiBzdHJpbmcuc2xpY2UoMSk7XG4gICAgICAgICAgICByZXR1cm4gY2hyW21ldGhvZE5hbWVdKCkgKyB0cmFpbGluZztcbiAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGNyZWF0ZUNvbXBvdW5kZXIoY2FsbGJhY2spIHtcbiAgICAgICAgICByZXR1cm4gZnVuY3Rpb24oc3RyaW5nKSB7XG4gICAgICAgICAgICByZXR1cm4gYXJyYXlSZWR1Y2Uod29yZHMoZGVidXJyKHN0cmluZykucmVwbGFjZShyZUFwb3MsIFwiXCIpKSwgY2FsbGJhY2ssIFwiXCIpO1xuICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gY3JlYXRlQ3RvcihDdG9yKSB7XG4gICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgdmFyIGFyZ3MgPSBhcmd1bWVudHM7XG4gICAgICAgICAgICBzd2l0Y2ggKGFyZ3MubGVuZ3RoKSB7XG4gICAgICAgICAgICAgIGNhc2UgMDpcbiAgICAgICAgICAgICAgICByZXR1cm4gbmV3IEN0b3IoKTtcbiAgICAgICAgICAgICAgY2FzZSAxOlxuICAgICAgICAgICAgICAgIHJldHVybiBuZXcgQ3RvcihhcmdzWzBdKTtcbiAgICAgICAgICAgICAgY2FzZSAyOlxuICAgICAgICAgICAgICAgIHJldHVybiBuZXcgQ3RvcihhcmdzWzBdLCBhcmdzWzFdKTtcbiAgICAgICAgICAgICAgY2FzZSAzOlxuICAgICAgICAgICAgICAgIHJldHVybiBuZXcgQ3RvcihhcmdzWzBdLCBhcmdzWzFdLCBhcmdzWzJdKTtcbiAgICAgICAgICAgICAgY2FzZSA0OlxuICAgICAgICAgICAgICAgIHJldHVybiBuZXcgQ3RvcihhcmdzWzBdLCBhcmdzWzFdLCBhcmdzWzJdLCBhcmdzWzNdKTtcbiAgICAgICAgICAgICAgY2FzZSA1OlxuICAgICAgICAgICAgICAgIHJldHVybiBuZXcgQ3RvcihhcmdzWzBdLCBhcmdzWzFdLCBhcmdzWzJdLCBhcmdzWzNdLCBhcmdzWzRdKTtcbiAgICAgICAgICAgICAgY2FzZSA2OlxuICAgICAgICAgICAgICAgIHJldHVybiBuZXcgQ3RvcihhcmdzWzBdLCBhcmdzWzFdLCBhcmdzWzJdLCBhcmdzWzNdLCBhcmdzWzRdLCBhcmdzWzVdKTtcbiAgICAgICAgICAgICAgY2FzZSA3OlxuICAgICAgICAgICAgICAgIHJldHVybiBuZXcgQ3RvcihhcmdzWzBdLCBhcmdzWzFdLCBhcmdzWzJdLCBhcmdzWzNdLCBhcmdzWzRdLCBhcmdzWzVdLCBhcmdzWzZdKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHZhciB0aGlzQmluZGluZyA9IGJhc2VDcmVhdGUoQ3Rvci5wcm90b3R5cGUpLCByZXN1bHQyID0gQ3Rvci5hcHBseSh0aGlzQmluZGluZywgYXJncyk7XG4gICAgICAgICAgICByZXR1cm4gaXNPYmplY3QocmVzdWx0MikgPyByZXN1bHQyIDogdGhpc0JpbmRpbmc7XG4gICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBjcmVhdGVDdXJyeShmdW5jLCBiaXRtYXNrLCBhcml0eSkge1xuICAgICAgICAgIHZhciBDdG9yID0gY3JlYXRlQ3RvcihmdW5jKTtcbiAgICAgICAgICBmdW5jdGlvbiB3cmFwcGVyKCkge1xuICAgICAgICAgICAgdmFyIGxlbmd0aCA9IGFyZ3VtZW50cy5sZW5ndGgsIGFyZ3MgPSBBcnJheTIobGVuZ3RoKSwgaW5kZXggPSBsZW5ndGgsIHBsYWNlaG9sZGVyID0gZ2V0SG9sZGVyKHdyYXBwZXIpO1xuICAgICAgICAgICAgd2hpbGUgKGluZGV4LS0pIHtcbiAgICAgICAgICAgICAgYXJnc1tpbmRleF0gPSBhcmd1bWVudHNbaW5kZXhdO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdmFyIGhvbGRlcnMgPSBsZW5ndGggPCAzICYmIGFyZ3NbMF0gIT09IHBsYWNlaG9sZGVyICYmIGFyZ3NbbGVuZ3RoIC0gMV0gIT09IHBsYWNlaG9sZGVyID8gW10gOiByZXBsYWNlSG9sZGVycyhhcmdzLCBwbGFjZWhvbGRlcik7XG4gICAgICAgICAgICBsZW5ndGggLT0gaG9sZGVycy5sZW5ndGg7XG4gICAgICAgICAgICBpZiAobGVuZ3RoIDwgYXJpdHkpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZVJlY3VycnkoXG4gICAgICAgICAgICAgICAgZnVuYyxcbiAgICAgICAgICAgICAgICBiaXRtYXNrLFxuICAgICAgICAgICAgICAgIGNyZWF0ZUh5YnJpZCxcbiAgICAgICAgICAgICAgICB3cmFwcGVyLnBsYWNlaG9sZGVyLFxuICAgICAgICAgICAgICAgIHVuZGVmaW5lZDIsXG4gICAgICAgICAgICAgICAgYXJncyxcbiAgICAgICAgICAgICAgICBob2xkZXJzLFxuICAgICAgICAgICAgICAgIHVuZGVmaW5lZDIsXG4gICAgICAgICAgICAgICAgdW5kZWZpbmVkMixcbiAgICAgICAgICAgICAgICBhcml0eSAtIGxlbmd0aFxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdmFyIGZuID0gdGhpcyAmJiB0aGlzICE9PSByb290ICYmIHRoaXMgaW5zdGFuY2VvZiB3cmFwcGVyID8gQ3RvciA6IGZ1bmM7XG4gICAgICAgICAgICByZXR1cm4gYXBwbHkoZm4sIHRoaXMsIGFyZ3MpO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gd3JhcHBlcjtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBjcmVhdGVGaW5kKGZpbmRJbmRleEZ1bmMpIHtcbiAgICAgICAgICByZXR1cm4gZnVuY3Rpb24oY29sbGVjdGlvbiwgcHJlZGljYXRlLCBmcm9tSW5kZXgpIHtcbiAgICAgICAgICAgIHZhciBpdGVyYWJsZSA9IE9iamVjdDIoY29sbGVjdGlvbik7XG4gICAgICAgICAgICBpZiAoIWlzQXJyYXlMaWtlKGNvbGxlY3Rpb24pKSB7XG4gICAgICAgICAgICAgIHZhciBpdGVyYXRlZTIgPSBnZXRJdGVyYXRlZShwcmVkaWNhdGUsIDMpO1xuICAgICAgICAgICAgICBjb2xsZWN0aW9uID0ga2V5cyhjb2xsZWN0aW9uKTtcbiAgICAgICAgICAgICAgcHJlZGljYXRlID0gZnVuY3Rpb24oa2V5KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGl0ZXJhdGVlMihpdGVyYWJsZVtrZXldLCBrZXksIGl0ZXJhYmxlKTtcbiAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHZhciBpbmRleCA9IGZpbmRJbmRleEZ1bmMoY29sbGVjdGlvbiwgcHJlZGljYXRlLCBmcm9tSW5kZXgpO1xuICAgICAgICAgICAgcmV0dXJuIGluZGV4ID4gLTEgPyBpdGVyYWJsZVtpdGVyYXRlZTIgPyBjb2xsZWN0aW9uW2luZGV4XSA6IGluZGV4XSA6IHVuZGVmaW5lZDI7XG4gICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBjcmVhdGVGbG93KGZyb21SaWdodCkge1xuICAgICAgICAgIHJldHVybiBmbGF0UmVzdChmdW5jdGlvbihmdW5jcykge1xuICAgICAgICAgICAgdmFyIGxlbmd0aCA9IGZ1bmNzLmxlbmd0aCwgaW5kZXggPSBsZW5ndGgsIHByZXJlcSA9IExvZGFzaFdyYXBwZXIucHJvdG90eXBlLnRocnU7XG4gICAgICAgICAgICBpZiAoZnJvbVJpZ2h0KSB7XG4gICAgICAgICAgICAgIGZ1bmNzLnJldmVyc2UoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHdoaWxlIChpbmRleC0tKSB7XG4gICAgICAgICAgICAgIHZhciBmdW5jID0gZnVuY3NbaW5kZXhdO1xuICAgICAgICAgICAgICBpZiAodHlwZW9mIGZ1bmMgIT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcjIoRlVOQ19FUlJPUl9URVhUKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBpZiAocHJlcmVxICYmICF3cmFwcGVyICYmIGdldEZ1bmNOYW1lKGZ1bmMpID09IFwid3JhcHBlclwiKSB7XG4gICAgICAgICAgICAgICAgdmFyIHdyYXBwZXIgPSBuZXcgTG9kYXNoV3JhcHBlcihbXSwgdHJ1ZSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGluZGV4ID0gd3JhcHBlciA/IGluZGV4IDogbGVuZ3RoO1xuICAgICAgICAgICAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICAgICAgICAgICAgZnVuYyA9IGZ1bmNzW2luZGV4XTtcbiAgICAgICAgICAgICAgdmFyIGZ1bmNOYW1lID0gZ2V0RnVuY05hbWUoZnVuYyksIGRhdGEgPSBmdW5jTmFtZSA9PSBcIndyYXBwZXJcIiA/IGdldERhdGEoZnVuYykgOiB1bmRlZmluZWQyO1xuICAgICAgICAgICAgICBpZiAoZGF0YSAmJiBpc0xhemlhYmxlKGRhdGFbMF0pICYmIGRhdGFbMV0gPT0gKFdSQVBfQVJZX0ZMQUcgfCBXUkFQX0NVUlJZX0ZMQUcgfCBXUkFQX1BBUlRJQUxfRkxBRyB8IFdSQVBfUkVBUkdfRkxBRykgJiYgIWRhdGFbNF0ubGVuZ3RoICYmIGRhdGFbOV0gPT0gMSkge1xuICAgICAgICAgICAgICAgIHdyYXBwZXIgPSB3cmFwcGVyW2dldEZ1bmNOYW1lKGRhdGFbMF0pXS5hcHBseSh3cmFwcGVyLCBkYXRhWzNdKTtcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB3cmFwcGVyID0gZnVuYy5sZW5ndGggPT0gMSAmJiBpc0xhemlhYmxlKGZ1bmMpID8gd3JhcHBlcltmdW5jTmFtZV0oKSA6IHdyYXBwZXIudGhydShmdW5jKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICB2YXIgYXJncyA9IGFyZ3VtZW50cywgdmFsdWUgPSBhcmdzWzBdO1xuICAgICAgICAgICAgICBpZiAod3JhcHBlciAmJiBhcmdzLmxlbmd0aCA9PSAxICYmIGlzQXJyYXkodmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHdyYXBwZXIucGxhbnQodmFsdWUpLnZhbHVlKCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgdmFyIGluZGV4MiA9IDAsIHJlc3VsdDIgPSBsZW5ndGggPyBmdW5jc1tpbmRleDJdLmFwcGx5KHRoaXMsIGFyZ3MpIDogdmFsdWU7XG4gICAgICAgICAgICAgIHdoaWxlICgrK2luZGV4MiA8IGxlbmd0aCkge1xuICAgICAgICAgICAgICAgIHJlc3VsdDIgPSBmdW5jc1tpbmRleDJdLmNhbGwodGhpcywgcmVzdWx0Mik7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDI7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGNyZWF0ZUh5YnJpZChmdW5jLCBiaXRtYXNrLCB0aGlzQXJnLCBwYXJ0aWFscywgaG9sZGVycywgcGFydGlhbHNSaWdodCwgaG9sZGVyc1JpZ2h0LCBhcmdQb3MsIGFyeTIsIGFyaXR5KSB7XG4gICAgICAgICAgdmFyIGlzQXJ5ID0gYml0bWFzayAmIFdSQVBfQVJZX0ZMQUcsIGlzQmluZCA9IGJpdG1hc2sgJiBXUkFQX0JJTkRfRkxBRywgaXNCaW5kS2V5ID0gYml0bWFzayAmIFdSQVBfQklORF9LRVlfRkxBRywgaXNDdXJyaWVkID0gYml0bWFzayAmIChXUkFQX0NVUlJZX0ZMQUcgfCBXUkFQX0NVUlJZX1JJR0hUX0ZMQUcpLCBpc0ZsaXAgPSBiaXRtYXNrICYgV1JBUF9GTElQX0ZMQUcsIEN0b3IgPSBpc0JpbmRLZXkgPyB1bmRlZmluZWQyIDogY3JlYXRlQ3RvcihmdW5jKTtcbiAgICAgICAgICBmdW5jdGlvbiB3cmFwcGVyKCkge1xuICAgICAgICAgICAgdmFyIGxlbmd0aCA9IGFyZ3VtZW50cy5sZW5ndGgsIGFyZ3MgPSBBcnJheTIobGVuZ3RoKSwgaW5kZXggPSBsZW5ndGg7XG4gICAgICAgICAgICB3aGlsZSAoaW5kZXgtLSkge1xuICAgICAgICAgICAgICBhcmdzW2luZGV4XSA9IGFyZ3VtZW50c1tpbmRleF07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoaXNDdXJyaWVkKSB7XG4gICAgICAgICAgICAgIHZhciBwbGFjZWhvbGRlciA9IGdldEhvbGRlcih3cmFwcGVyKSwgaG9sZGVyc0NvdW50ID0gY291bnRIb2xkZXJzKGFyZ3MsIHBsYWNlaG9sZGVyKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChwYXJ0aWFscykge1xuICAgICAgICAgICAgICBhcmdzID0gY29tcG9zZUFyZ3MoYXJncywgcGFydGlhbHMsIGhvbGRlcnMsIGlzQ3VycmllZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAocGFydGlhbHNSaWdodCkge1xuICAgICAgICAgICAgICBhcmdzID0gY29tcG9zZUFyZ3NSaWdodChhcmdzLCBwYXJ0aWFsc1JpZ2h0LCBob2xkZXJzUmlnaHQsIGlzQ3VycmllZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBsZW5ndGggLT0gaG9sZGVyc0NvdW50O1xuICAgICAgICAgICAgaWYgKGlzQ3VycmllZCAmJiBsZW5ndGggPCBhcml0eSkge1xuICAgICAgICAgICAgICB2YXIgbmV3SG9sZGVycyA9IHJlcGxhY2VIb2xkZXJzKGFyZ3MsIHBsYWNlaG9sZGVyKTtcbiAgICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZVJlY3VycnkoXG4gICAgICAgICAgICAgICAgZnVuYyxcbiAgICAgICAgICAgICAgICBiaXRtYXNrLFxuICAgICAgICAgICAgICAgIGNyZWF0ZUh5YnJpZCxcbiAgICAgICAgICAgICAgICB3cmFwcGVyLnBsYWNlaG9sZGVyLFxuICAgICAgICAgICAgICAgIHRoaXNBcmcsXG4gICAgICAgICAgICAgICAgYXJncyxcbiAgICAgICAgICAgICAgICBuZXdIb2xkZXJzLFxuICAgICAgICAgICAgICAgIGFyZ1BvcyxcbiAgICAgICAgICAgICAgICBhcnkyLFxuICAgICAgICAgICAgICAgIGFyaXR5IC0gbGVuZ3RoXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB2YXIgdGhpc0JpbmRpbmcgPSBpc0JpbmQgPyB0aGlzQXJnIDogdGhpcywgZm4gPSBpc0JpbmRLZXkgPyB0aGlzQmluZGluZ1tmdW5jXSA6IGZ1bmM7XG4gICAgICAgICAgICBsZW5ndGggPSBhcmdzLmxlbmd0aDtcbiAgICAgICAgICAgIGlmIChhcmdQb3MpIHtcbiAgICAgICAgICAgICAgYXJncyA9IHJlb3JkZXIoYXJncywgYXJnUG9zKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaXNGbGlwICYmIGxlbmd0aCA+IDEpIHtcbiAgICAgICAgICAgICAgYXJncy5yZXZlcnNlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoaXNBcnkgJiYgYXJ5MiA8IGxlbmd0aCkge1xuICAgICAgICAgICAgICBhcmdzLmxlbmd0aCA9IGFyeTI7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodGhpcyAmJiB0aGlzICE9PSByb290ICYmIHRoaXMgaW5zdGFuY2VvZiB3cmFwcGVyKSB7XG4gICAgICAgICAgICAgIGZuID0gQ3RvciB8fCBjcmVhdGVDdG9yKGZuKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBmbi5hcHBseSh0aGlzQmluZGluZywgYXJncyk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiB3cmFwcGVyO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGNyZWF0ZUludmVydGVyKHNldHRlciwgdG9JdGVyYXRlZSkge1xuICAgICAgICAgIHJldHVybiBmdW5jdGlvbihvYmplY3QsIGl0ZXJhdGVlMikge1xuICAgICAgICAgICAgcmV0dXJuIGJhc2VJbnZlcnRlcihvYmplY3QsIHNldHRlciwgdG9JdGVyYXRlZShpdGVyYXRlZTIpLCB7fSk7XG4gICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBjcmVhdGVNYXRoT3BlcmF0aW9uKG9wZXJhdG9yLCBkZWZhdWx0VmFsdWUpIHtcbiAgICAgICAgICByZXR1cm4gZnVuY3Rpb24odmFsdWUsIG90aGVyKSB7XG4gICAgICAgICAgICB2YXIgcmVzdWx0MjtcbiAgICAgICAgICAgIGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkMiAmJiBvdGhlciA9PT0gdW5kZWZpbmVkMikge1xuICAgICAgICAgICAgICByZXR1cm4gZGVmYXVsdFZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHZhbHVlICE9PSB1bmRlZmluZWQyKSB7XG4gICAgICAgICAgICAgIHJlc3VsdDIgPSB2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChvdGhlciAhPT0gdW5kZWZpbmVkMikge1xuICAgICAgICAgICAgICBpZiAocmVzdWx0MiA9PT0gdW5kZWZpbmVkMikge1xuICAgICAgICAgICAgICAgIHJldHVybiBvdGhlcjtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09IFwic3RyaW5nXCIgfHwgdHlwZW9mIG90aGVyID09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICAgICAgICB2YWx1ZSA9IGJhc2VUb1N0cmluZyh2YWx1ZSk7XG4gICAgICAgICAgICAgICAgb3RoZXIgPSBiYXNlVG9TdHJpbmcob3RoZXIpO1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHZhbHVlID0gYmFzZVRvTnVtYmVyKHZhbHVlKTtcbiAgICAgICAgICAgICAgICBvdGhlciA9IGJhc2VUb051bWJlcihvdGhlcik7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgcmVzdWx0MiA9IG9wZXJhdG9yKHZhbHVlLCBvdGhlcik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gcmVzdWx0MjtcbiAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGNyZWF0ZU92ZXIoYXJyYXlGdW5jKSB7XG4gICAgICAgICAgcmV0dXJuIGZsYXRSZXN0KGZ1bmN0aW9uKGl0ZXJhdGVlcykge1xuICAgICAgICAgICAgaXRlcmF0ZWVzID0gYXJyYXlNYXAoaXRlcmF0ZWVzLCBiYXNlVW5hcnkoZ2V0SXRlcmF0ZWUoKSkpO1xuICAgICAgICAgICAgcmV0dXJuIGJhc2VSZXN0KGZ1bmN0aW9uKGFyZ3MpIHtcbiAgICAgICAgICAgICAgdmFyIHRoaXNBcmcgPSB0aGlzO1xuICAgICAgICAgICAgICByZXR1cm4gYXJyYXlGdW5jKGl0ZXJhdGVlcywgZnVuY3Rpb24oaXRlcmF0ZWUyKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGFwcGx5KGl0ZXJhdGVlMiwgdGhpc0FyZywgYXJncyk7XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gY3JlYXRlUGFkZGluZyhsZW5ndGgsIGNoYXJzKSB7XG4gICAgICAgICAgY2hhcnMgPSBjaGFycyA9PT0gdW5kZWZpbmVkMiA/IFwiIFwiIDogYmFzZVRvU3RyaW5nKGNoYXJzKTtcbiAgICAgICAgICB2YXIgY2hhcnNMZW5ndGggPSBjaGFycy5sZW5ndGg7XG4gICAgICAgICAgaWYgKGNoYXJzTGVuZ3RoIDwgMikge1xuICAgICAgICAgICAgcmV0dXJuIGNoYXJzTGVuZ3RoID8gYmFzZVJlcGVhdChjaGFycywgbGVuZ3RoKSA6IGNoYXJzO1xuICAgICAgICAgIH1cbiAgICAgICAgICB2YXIgcmVzdWx0MiA9IGJhc2VSZXBlYXQoY2hhcnMsIG5hdGl2ZUNlaWwobGVuZ3RoIC8gc3RyaW5nU2l6ZShjaGFycykpKTtcbiAgICAgICAgICByZXR1cm4gaGFzVW5pY29kZShjaGFycykgPyBjYXN0U2xpY2Uoc3RyaW5nVG9BcnJheShyZXN1bHQyKSwgMCwgbGVuZ3RoKS5qb2luKFwiXCIpIDogcmVzdWx0Mi5zbGljZSgwLCBsZW5ndGgpO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGNyZWF0ZVBhcnRpYWwoZnVuYywgYml0bWFzaywgdGhpc0FyZywgcGFydGlhbHMpIHtcbiAgICAgICAgICB2YXIgaXNCaW5kID0gYml0bWFzayAmIFdSQVBfQklORF9GTEFHLCBDdG9yID0gY3JlYXRlQ3RvcihmdW5jKTtcbiAgICAgICAgICBmdW5jdGlvbiB3cmFwcGVyKCkge1xuICAgICAgICAgICAgdmFyIGFyZ3NJbmRleCA9IC0xLCBhcmdzTGVuZ3RoID0gYXJndW1lbnRzLmxlbmd0aCwgbGVmdEluZGV4ID0gLTEsIGxlZnRMZW5ndGggPSBwYXJ0aWFscy5sZW5ndGgsIGFyZ3MgPSBBcnJheTIobGVmdExlbmd0aCArIGFyZ3NMZW5ndGgpLCBmbiA9IHRoaXMgJiYgdGhpcyAhPT0gcm9vdCAmJiB0aGlzIGluc3RhbmNlb2Ygd3JhcHBlciA/IEN0b3IgOiBmdW5jO1xuICAgICAgICAgICAgd2hpbGUgKCsrbGVmdEluZGV4IDwgbGVmdExlbmd0aCkge1xuICAgICAgICAgICAgICBhcmdzW2xlZnRJbmRleF0gPSBwYXJ0aWFsc1tsZWZ0SW5kZXhdO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgd2hpbGUgKGFyZ3NMZW5ndGgtLSkge1xuICAgICAgICAgICAgICBhcmdzW2xlZnRJbmRleCsrXSA9IGFyZ3VtZW50c1srK2FyZ3NJbmRleF07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gYXBwbHkoZm4sIGlzQmluZCA/IHRoaXNBcmcgOiB0aGlzLCBhcmdzKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHdyYXBwZXI7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gY3JlYXRlUmFuZ2UoZnJvbVJpZ2h0KSB7XG4gICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKHN0YXJ0LCBlbmQsIHN0ZXApIHtcbiAgICAgICAgICAgIGlmIChzdGVwICYmIHR5cGVvZiBzdGVwICE9IFwibnVtYmVyXCIgJiYgaXNJdGVyYXRlZUNhbGwoc3RhcnQsIGVuZCwgc3RlcCkpIHtcbiAgICAgICAgICAgICAgZW5kID0gc3RlcCA9IHVuZGVmaW5lZDI7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBzdGFydCA9IHRvRmluaXRlKHN0YXJ0KTtcbiAgICAgICAgICAgIGlmIChlbmQgPT09IHVuZGVmaW5lZDIpIHtcbiAgICAgICAgICAgICAgZW5kID0gc3RhcnQ7XG4gICAgICAgICAgICAgIHN0YXJ0ID0gMDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIGVuZCA9IHRvRmluaXRlKGVuZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBzdGVwID0gc3RlcCA9PT0gdW5kZWZpbmVkMiA/IHN0YXJ0IDwgZW5kID8gMSA6IC0xIDogdG9GaW5pdGUoc3RlcCk7XG4gICAgICAgICAgICByZXR1cm4gYmFzZVJhbmdlKHN0YXJ0LCBlbmQsIHN0ZXAsIGZyb21SaWdodCk7XG4gICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBjcmVhdGVSZWxhdGlvbmFsT3BlcmF0aW9uKG9wZXJhdG9yKSB7XG4gICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKHZhbHVlLCBvdGhlcikge1xuICAgICAgICAgICAgaWYgKCEodHlwZW9mIHZhbHVlID09IFwic3RyaW5nXCIgJiYgdHlwZW9mIG90aGVyID09IFwic3RyaW5nXCIpKSB7XG4gICAgICAgICAgICAgIHZhbHVlID0gdG9OdW1iZXIodmFsdWUpO1xuICAgICAgICAgICAgICBvdGhlciA9IHRvTnVtYmVyKG90aGVyKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBvcGVyYXRvcih2YWx1ZSwgb3RoZXIpO1xuICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gY3JlYXRlUmVjdXJyeShmdW5jLCBiaXRtYXNrLCB3cmFwRnVuYywgcGxhY2Vob2xkZXIsIHRoaXNBcmcsIHBhcnRpYWxzLCBob2xkZXJzLCBhcmdQb3MsIGFyeTIsIGFyaXR5KSB7XG4gICAgICAgICAgdmFyIGlzQ3VycnkgPSBiaXRtYXNrICYgV1JBUF9DVVJSWV9GTEFHLCBuZXdIb2xkZXJzID0gaXNDdXJyeSA/IGhvbGRlcnMgOiB1bmRlZmluZWQyLCBuZXdIb2xkZXJzUmlnaHQgPSBpc0N1cnJ5ID8gdW5kZWZpbmVkMiA6IGhvbGRlcnMsIG5ld1BhcnRpYWxzID0gaXNDdXJyeSA/IHBhcnRpYWxzIDogdW5kZWZpbmVkMiwgbmV3UGFydGlhbHNSaWdodCA9IGlzQ3VycnkgPyB1bmRlZmluZWQyIDogcGFydGlhbHM7XG4gICAgICAgICAgYml0bWFzayB8PSBpc0N1cnJ5ID8gV1JBUF9QQVJUSUFMX0ZMQUcgOiBXUkFQX1BBUlRJQUxfUklHSFRfRkxBRztcbiAgICAgICAgICBiaXRtYXNrICY9IH4oaXNDdXJyeSA/IFdSQVBfUEFSVElBTF9SSUdIVF9GTEFHIDogV1JBUF9QQVJUSUFMX0ZMQUcpO1xuICAgICAgICAgIGlmICghKGJpdG1hc2sgJiBXUkFQX0NVUlJZX0JPVU5EX0ZMQUcpKSB7XG4gICAgICAgICAgICBiaXRtYXNrICY9IH4oV1JBUF9CSU5EX0ZMQUcgfCBXUkFQX0JJTkRfS0VZX0ZMQUcpO1xuICAgICAgICAgIH1cbiAgICAgICAgICB2YXIgbmV3RGF0YSA9IFtcbiAgICAgICAgICAgIGZ1bmMsXG4gICAgICAgICAgICBiaXRtYXNrLFxuICAgICAgICAgICAgdGhpc0FyZyxcbiAgICAgICAgICAgIG5ld1BhcnRpYWxzLFxuICAgICAgICAgICAgbmV3SG9sZGVycyxcbiAgICAgICAgICAgIG5ld1BhcnRpYWxzUmlnaHQsXG4gICAgICAgICAgICBuZXdIb2xkZXJzUmlnaHQsXG4gICAgICAgICAgICBhcmdQb3MsXG4gICAgICAgICAgICBhcnkyLFxuICAgICAgICAgICAgYXJpdHlcbiAgICAgICAgICBdO1xuICAgICAgICAgIHZhciByZXN1bHQyID0gd3JhcEZ1bmMuYXBwbHkodW5kZWZpbmVkMiwgbmV3RGF0YSk7XG4gICAgICAgICAgaWYgKGlzTGF6aWFibGUoZnVuYykpIHtcbiAgICAgICAgICAgIHNldERhdGEocmVzdWx0MiwgbmV3RGF0YSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJlc3VsdDIucGxhY2Vob2xkZXIgPSBwbGFjZWhvbGRlcjtcbiAgICAgICAgICByZXR1cm4gc2V0V3JhcFRvU3RyaW5nKHJlc3VsdDIsIGZ1bmMsIGJpdG1hc2spO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGNyZWF0ZVJvdW5kKG1ldGhvZE5hbWUpIHtcbiAgICAgICAgICB2YXIgZnVuYyA9IE1hdGgyW21ldGhvZE5hbWVdO1xuICAgICAgICAgIHJldHVybiBmdW5jdGlvbihudW1iZXIsIHByZWNpc2lvbikge1xuICAgICAgICAgICAgbnVtYmVyID0gdG9OdW1iZXIobnVtYmVyKTtcbiAgICAgICAgICAgIHByZWNpc2lvbiA9IHByZWNpc2lvbiA9PSBudWxsID8gMCA6IG5hdGl2ZU1pbih0b0ludGVnZXIocHJlY2lzaW9uKSwgMjkyKTtcbiAgICAgICAgICAgIGlmIChwcmVjaXNpb24gJiYgbmF0aXZlSXNGaW5pdGUobnVtYmVyKSkge1xuICAgICAgICAgICAgICB2YXIgcGFpciA9ICh0b1N0cmluZyhudW1iZXIpICsgXCJlXCIpLnNwbGl0KFwiZVwiKSwgdmFsdWUgPSBmdW5jKHBhaXJbMF0gKyBcImVcIiArICgrcGFpclsxXSArIHByZWNpc2lvbikpO1xuICAgICAgICAgICAgICBwYWlyID0gKHRvU3RyaW5nKHZhbHVlKSArIFwiZVwiKS5zcGxpdChcImVcIik7XG4gICAgICAgICAgICAgIHJldHVybiArKHBhaXJbMF0gKyBcImVcIiArICgrcGFpclsxXSAtIHByZWNpc2lvbikpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGZ1bmMobnVtYmVyKTtcbiAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIHZhciBjcmVhdGVTZXQgPSAhKFNldDIgJiYgMSAvIHNldFRvQXJyYXkobmV3IFNldDIoWywgLTBdKSlbMV0gPT0gSU5GSU5JVFkpID8gbm9vcCA6IGZ1bmN0aW9uKHZhbHVlczIpIHtcbiAgICAgICAgICByZXR1cm4gbmV3IFNldDIodmFsdWVzMik7XG4gICAgICAgIH07XG4gICAgICAgIGZ1bmN0aW9uIGNyZWF0ZVRvUGFpcnMoa2V5c0Z1bmMpIHtcbiAgICAgICAgICByZXR1cm4gZnVuY3Rpb24ob2JqZWN0KSB7XG4gICAgICAgICAgICB2YXIgdGFnID0gZ2V0VGFnKG9iamVjdCk7XG4gICAgICAgICAgICBpZiAodGFnID09IG1hcFRhZykge1xuICAgICAgICAgICAgICByZXR1cm4gbWFwVG9BcnJheShvYmplY3QpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHRhZyA9PSBzZXRUYWcpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIHNldFRvUGFpcnMob2JqZWN0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBiYXNlVG9QYWlycyhvYmplY3QsIGtleXNGdW5jKG9iamVjdCkpO1xuICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gY3JlYXRlV3JhcChmdW5jLCBiaXRtYXNrLCB0aGlzQXJnLCBwYXJ0aWFscywgaG9sZGVycywgYXJnUG9zLCBhcnkyLCBhcml0eSkge1xuICAgICAgICAgIHZhciBpc0JpbmRLZXkgPSBiaXRtYXNrICYgV1JBUF9CSU5EX0tFWV9GTEFHO1xuICAgICAgICAgIGlmICghaXNCaW5kS2V5ICYmIHR5cGVvZiBmdW5jICE9IFwiZnVuY3Rpb25cIikge1xuICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcjIoRlVOQ19FUlJPUl9URVhUKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdmFyIGxlbmd0aCA9IHBhcnRpYWxzID8gcGFydGlhbHMubGVuZ3RoIDogMDtcbiAgICAgICAgICBpZiAoIWxlbmd0aCkge1xuICAgICAgICAgICAgYml0bWFzayAmPSB+KFdSQVBfUEFSVElBTF9GTEFHIHwgV1JBUF9QQVJUSUFMX1JJR0hUX0ZMQUcpO1xuICAgICAgICAgICAgcGFydGlhbHMgPSBob2xkZXJzID0gdW5kZWZpbmVkMjtcbiAgICAgICAgICB9XG4gICAgICAgICAgYXJ5MiA9IGFyeTIgPT09IHVuZGVmaW5lZDIgPyBhcnkyIDogbmF0aXZlTWF4KHRvSW50ZWdlcihhcnkyKSwgMCk7XG4gICAgICAgICAgYXJpdHkgPSBhcml0eSA9PT0gdW5kZWZpbmVkMiA/IGFyaXR5IDogdG9JbnRlZ2VyKGFyaXR5KTtcbiAgICAgICAgICBsZW5ndGggLT0gaG9sZGVycyA/IGhvbGRlcnMubGVuZ3RoIDogMDtcbiAgICAgICAgICBpZiAoYml0bWFzayAmIFdSQVBfUEFSVElBTF9SSUdIVF9GTEFHKSB7XG4gICAgICAgICAgICB2YXIgcGFydGlhbHNSaWdodCA9IHBhcnRpYWxzLCBob2xkZXJzUmlnaHQgPSBob2xkZXJzO1xuICAgICAgICAgICAgcGFydGlhbHMgPSBob2xkZXJzID0gdW5kZWZpbmVkMjtcbiAgICAgICAgICB9XG4gICAgICAgICAgdmFyIGRhdGEgPSBpc0JpbmRLZXkgPyB1bmRlZmluZWQyIDogZ2V0RGF0YShmdW5jKTtcbiAgICAgICAgICB2YXIgbmV3RGF0YSA9IFtcbiAgICAgICAgICAgIGZ1bmMsXG4gICAgICAgICAgICBiaXRtYXNrLFxuICAgICAgICAgICAgdGhpc0FyZyxcbiAgICAgICAgICAgIHBhcnRpYWxzLFxuICAgICAgICAgICAgaG9sZGVycyxcbiAgICAgICAgICAgIHBhcnRpYWxzUmlnaHQsXG4gICAgICAgICAgICBob2xkZXJzUmlnaHQsXG4gICAgICAgICAgICBhcmdQb3MsXG4gICAgICAgICAgICBhcnkyLFxuICAgICAgICAgICAgYXJpdHlcbiAgICAgICAgICBdO1xuICAgICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICBtZXJnZURhdGEobmV3RGF0YSwgZGF0YSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGZ1bmMgPSBuZXdEYXRhWzBdO1xuICAgICAgICAgIGJpdG1hc2sgPSBuZXdEYXRhWzFdO1xuICAgICAgICAgIHRoaXNBcmcgPSBuZXdEYXRhWzJdO1xuICAgICAgICAgIHBhcnRpYWxzID0gbmV3RGF0YVszXTtcbiAgICAgICAgICBob2xkZXJzID0gbmV3RGF0YVs0XTtcbiAgICAgICAgICBhcml0eSA9IG5ld0RhdGFbOV0gPSBuZXdEYXRhWzldID09PSB1bmRlZmluZWQyID8gaXNCaW5kS2V5ID8gMCA6IGZ1bmMubGVuZ3RoIDogbmF0aXZlTWF4KG5ld0RhdGFbOV0gLSBsZW5ndGgsIDApO1xuICAgICAgICAgIGlmICghYXJpdHkgJiYgYml0bWFzayAmIChXUkFQX0NVUlJZX0ZMQUcgfCBXUkFQX0NVUlJZX1JJR0hUX0ZMQUcpKSB7XG4gICAgICAgICAgICBiaXRtYXNrICY9IH4oV1JBUF9DVVJSWV9GTEFHIHwgV1JBUF9DVVJSWV9SSUdIVF9GTEFHKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKCFiaXRtYXNrIHx8IGJpdG1hc2sgPT0gV1JBUF9CSU5EX0ZMQUcpIHtcbiAgICAgICAgICAgIHZhciByZXN1bHQyID0gY3JlYXRlQmluZChmdW5jLCBiaXRtYXNrLCB0aGlzQXJnKTtcbiAgICAgICAgICB9IGVsc2UgaWYgKGJpdG1hc2sgPT0gV1JBUF9DVVJSWV9GTEFHIHx8IGJpdG1hc2sgPT0gV1JBUF9DVVJSWV9SSUdIVF9GTEFHKSB7XG4gICAgICAgICAgICByZXN1bHQyID0gY3JlYXRlQ3VycnkoZnVuYywgYml0bWFzaywgYXJpdHkpO1xuICAgICAgICAgIH0gZWxzZSBpZiAoKGJpdG1hc2sgPT0gV1JBUF9QQVJUSUFMX0ZMQUcgfHwgYml0bWFzayA9PSAoV1JBUF9CSU5EX0ZMQUcgfCBXUkFQX1BBUlRJQUxfRkxBRykpICYmICFob2xkZXJzLmxlbmd0aCkge1xuICAgICAgICAgICAgcmVzdWx0MiA9IGNyZWF0ZVBhcnRpYWwoZnVuYywgYml0bWFzaywgdGhpc0FyZywgcGFydGlhbHMpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXN1bHQyID0gY3JlYXRlSHlicmlkLmFwcGx5KHVuZGVmaW5lZDIsIG5ld0RhdGEpO1xuICAgICAgICAgIH1cbiAgICAgICAgICB2YXIgc2V0dGVyID0gZGF0YSA/IGJhc2VTZXREYXRhIDogc2V0RGF0YTtcbiAgICAgICAgICByZXR1cm4gc2V0V3JhcFRvU3RyaW5nKHNldHRlcihyZXN1bHQyLCBuZXdEYXRhKSwgZnVuYywgYml0bWFzayk7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gY3VzdG9tRGVmYXVsdHNBc3NpZ25JbihvYmpWYWx1ZSwgc3JjVmFsdWUsIGtleSwgb2JqZWN0KSB7XG4gICAgICAgICAgaWYgKG9ialZhbHVlID09PSB1bmRlZmluZWQyIHx8IGVxKG9ialZhbHVlLCBvYmplY3RQcm90b1trZXldKSAmJiAhaGFzT3duUHJvcGVydHkuY2FsbChvYmplY3QsIGtleSkpIHtcbiAgICAgICAgICAgIHJldHVybiBzcmNWYWx1ZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIG9ialZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGN1c3RvbURlZmF1bHRzTWVyZ2Uob2JqVmFsdWUsIHNyY1ZhbHVlLCBrZXksIG9iamVjdCwgc291cmNlLCBzdGFjaykge1xuICAgICAgICAgIGlmIChpc09iamVjdChvYmpWYWx1ZSkgJiYgaXNPYmplY3Qoc3JjVmFsdWUpKSB7XG4gICAgICAgICAgICBzdGFjay5zZXQoc3JjVmFsdWUsIG9ialZhbHVlKTtcbiAgICAgICAgICAgIGJhc2VNZXJnZShvYmpWYWx1ZSwgc3JjVmFsdWUsIHVuZGVmaW5lZDIsIGN1c3RvbURlZmF1bHRzTWVyZ2UsIHN0YWNrKTtcbiAgICAgICAgICAgIHN0YWNrW1wiZGVsZXRlXCJdKHNyY1ZhbHVlKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIG9ialZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGN1c3RvbU9taXRDbG9uZSh2YWx1ZSkge1xuICAgICAgICAgIHJldHVybiBpc1BsYWluT2JqZWN0KHZhbHVlKSA/IHVuZGVmaW5lZDIgOiB2YWx1ZTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBlcXVhbEFycmF5cyhhcnJheSwgb3RoZXIsIGJpdG1hc2ssIGN1c3RvbWl6ZXIsIGVxdWFsRnVuYywgc3RhY2spIHtcbiAgICAgICAgICB2YXIgaXNQYXJ0aWFsID0gYml0bWFzayAmIENPTVBBUkVfUEFSVElBTF9GTEFHLCBhcnJMZW5ndGggPSBhcnJheS5sZW5ndGgsIG90aExlbmd0aCA9IG90aGVyLmxlbmd0aDtcbiAgICAgICAgICBpZiAoYXJyTGVuZ3RoICE9IG90aExlbmd0aCAmJiAhKGlzUGFydGlhbCAmJiBvdGhMZW5ndGggPiBhcnJMZW5ndGgpKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgfVxuICAgICAgICAgIHZhciBhcnJTdGFja2VkID0gc3RhY2suZ2V0KGFycmF5KTtcbiAgICAgICAgICB2YXIgb3RoU3RhY2tlZCA9IHN0YWNrLmdldChvdGhlcik7XG4gICAgICAgICAgaWYgKGFyclN0YWNrZWQgJiYgb3RoU3RhY2tlZCkge1xuICAgICAgICAgICAgcmV0dXJuIGFyclN0YWNrZWQgPT0gb3RoZXIgJiYgb3RoU3RhY2tlZCA9PSBhcnJheTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdmFyIGluZGV4ID0gLTEsIHJlc3VsdDIgPSB0cnVlLCBzZWVuID0gYml0bWFzayAmIENPTVBBUkVfVU5PUkRFUkVEX0ZMQUcgPyBuZXcgU2V0Q2FjaGUoKSA6IHVuZGVmaW5lZDI7XG4gICAgICAgICAgc3RhY2suc2V0KGFycmF5LCBvdGhlcik7XG4gICAgICAgICAgc3RhY2suc2V0KG90aGVyLCBhcnJheSk7XG4gICAgICAgICAgd2hpbGUgKCsraW5kZXggPCBhcnJMZW5ndGgpIHtcbiAgICAgICAgICAgIHZhciBhcnJWYWx1ZSA9IGFycmF5W2luZGV4XSwgb3RoVmFsdWUgPSBvdGhlcltpbmRleF07XG4gICAgICAgICAgICBpZiAoY3VzdG9taXplcikge1xuICAgICAgICAgICAgICB2YXIgY29tcGFyZWQgPSBpc1BhcnRpYWwgPyBjdXN0b21pemVyKG90aFZhbHVlLCBhcnJWYWx1ZSwgaW5kZXgsIG90aGVyLCBhcnJheSwgc3RhY2spIDogY3VzdG9taXplcihhcnJWYWx1ZSwgb3RoVmFsdWUsIGluZGV4LCBhcnJheSwgb3RoZXIsIHN0YWNrKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChjb21wYXJlZCAhPT0gdW5kZWZpbmVkMikge1xuICAgICAgICAgICAgICBpZiAoY29tcGFyZWQpIHtcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICByZXN1bHQyID0gZmFsc2U7XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHNlZW4pIHtcbiAgICAgICAgICAgICAgaWYgKCFhcnJheVNvbWUob3RoZXIsIGZ1bmN0aW9uKG90aFZhbHVlMiwgb3RoSW5kZXgpIHtcbiAgICAgICAgICAgICAgICBpZiAoIWNhY2hlSGFzKHNlZW4sIG90aEluZGV4KSAmJiAoYXJyVmFsdWUgPT09IG90aFZhbHVlMiB8fCBlcXVhbEZ1bmMoYXJyVmFsdWUsIG90aFZhbHVlMiwgYml0bWFzaywgY3VzdG9taXplciwgc3RhY2spKSkge1xuICAgICAgICAgICAgICAgICAgcmV0dXJuIHNlZW4ucHVzaChvdGhJbmRleCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9KSkge1xuICAgICAgICAgICAgICAgIHJlc3VsdDIgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIGlmICghKGFyclZhbHVlID09PSBvdGhWYWx1ZSB8fCBlcXVhbEZ1bmMoYXJyVmFsdWUsIG90aFZhbHVlLCBiaXRtYXNrLCBjdXN0b21pemVyLCBzdGFjaykpKSB7XG4gICAgICAgICAgICAgIHJlc3VsdDIgPSBmYWxzZTtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIHN0YWNrW1wiZGVsZXRlXCJdKGFycmF5KTtcbiAgICAgICAgICBzdGFja1tcImRlbGV0ZVwiXShvdGhlcik7XG4gICAgICAgICAgcmV0dXJuIHJlc3VsdDI7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gZXF1YWxCeVRhZyhvYmplY3QsIG90aGVyLCB0YWcsIGJpdG1hc2ssIGN1c3RvbWl6ZXIsIGVxdWFsRnVuYywgc3RhY2spIHtcbiAgICAgICAgICBzd2l0Y2ggKHRhZykge1xuICAgICAgICAgICAgY2FzZSBkYXRhVmlld1RhZzpcbiAgICAgICAgICAgICAgaWYgKG9iamVjdC5ieXRlTGVuZ3RoICE9IG90aGVyLmJ5dGVMZW5ndGggfHwgb2JqZWN0LmJ5dGVPZmZzZXQgIT0gb3RoZXIuYnl0ZU9mZnNldCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBvYmplY3QgPSBvYmplY3QuYnVmZmVyO1xuICAgICAgICAgICAgICBvdGhlciA9IG90aGVyLmJ1ZmZlcjtcbiAgICAgICAgICAgIGNhc2UgYXJyYXlCdWZmZXJUYWc6XG4gICAgICAgICAgICAgIGlmIChvYmplY3QuYnl0ZUxlbmd0aCAhPSBvdGhlci5ieXRlTGVuZ3RoIHx8ICFlcXVhbEZ1bmMobmV3IFVpbnQ4QXJyYXkyKG9iamVjdCksIG5ldyBVaW50OEFycmF5MihvdGhlcikpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgY2FzZSBib29sVGFnOlxuICAgICAgICAgICAgY2FzZSBkYXRlVGFnOlxuICAgICAgICAgICAgY2FzZSBudW1iZXJUYWc6XG4gICAgICAgICAgICAgIHJldHVybiBlcSgrb2JqZWN0LCArb3RoZXIpO1xuICAgICAgICAgICAgY2FzZSBlcnJvclRhZzpcbiAgICAgICAgICAgICAgcmV0dXJuIG9iamVjdC5uYW1lID09IG90aGVyLm5hbWUgJiYgb2JqZWN0Lm1lc3NhZ2UgPT0gb3RoZXIubWVzc2FnZTtcbiAgICAgICAgICAgIGNhc2UgcmVnZXhwVGFnOlxuICAgICAgICAgICAgY2FzZSBzdHJpbmdUYWc6XG4gICAgICAgICAgICAgIHJldHVybiBvYmplY3QgPT0gb3RoZXIgKyBcIlwiO1xuICAgICAgICAgICAgY2FzZSBtYXBUYWc6XG4gICAgICAgICAgICAgIHZhciBjb252ZXJ0ID0gbWFwVG9BcnJheTtcbiAgICAgICAgICAgIGNhc2Ugc2V0VGFnOlxuICAgICAgICAgICAgICB2YXIgaXNQYXJ0aWFsID0gYml0bWFzayAmIENPTVBBUkVfUEFSVElBTF9GTEFHO1xuICAgICAgICAgICAgICBjb252ZXJ0IHx8IChjb252ZXJ0ID0gc2V0VG9BcnJheSk7XG4gICAgICAgICAgICAgIGlmIChvYmplY3Quc2l6ZSAhPSBvdGhlci5zaXplICYmICFpc1BhcnRpYWwpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgdmFyIHN0YWNrZWQgPSBzdGFjay5nZXQob2JqZWN0KTtcbiAgICAgICAgICAgICAgaWYgKHN0YWNrZWQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gc3RhY2tlZCA9PSBvdGhlcjtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBiaXRtYXNrIHw9IENPTVBBUkVfVU5PUkRFUkVEX0ZMQUc7XG4gICAgICAgICAgICAgIHN0YWNrLnNldChvYmplY3QsIG90aGVyKTtcbiAgICAgICAgICAgICAgdmFyIHJlc3VsdDIgPSBlcXVhbEFycmF5cyhjb252ZXJ0KG9iamVjdCksIGNvbnZlcnQob3RoZXIpLCBiaXRtYXNrLCBjdXN0b21pemVyLCBlcXVhbEZ1bmMsIHN0YWNrKTtcbiAgICAgICAgICAgICAgc3RhY2tbXCJkZWxldGVcIl0ob2JqZWN0KTtcbiAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDI7XG4gICAgICAgICAgICBjYXNlIHN5bWJvbFRhZzpcbiAgICAgICAgICAgICAgaWYgKHN5bWJvbFZhbHVlT2YpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gc3ltYm9sVmFsdWVPZi5jYWxsKG9iamVjdCkgPT0gc3ltYm9sVmFsdWVPZi5jYWxsKG90aGVyKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gZXF1YWxPYmplY3RzKG9iamVjdCwgb3RoZXIsIGJpdG1hc2ssIGN1c3RvbWl6ZXIsIGVxdWFsRnVuYywgc3RhY2spIHtcbiAgICAgICAgICB2YXIgaXNQYXJ0aWFsID0gYml0bWFzayAmIENPTVBBUkVfUEFSVElBTF9GTEFHLCBvYmpQcm9wcyA9IGdldEFsbEtleXMob2JqZWN0KSwgb2JqTGVuZ3RoID0gb2JqUHJvcHMubGVuZ3RoLCBvdGhQcm9wcyA9IGdldEFsbEtleXMob3RoZXIpLCBvdGhMZW5ndGggPSBvdGhQcm9wcy5sZW5ndGg7XG4gICAgICAgICAgaWYgKG9iakxlbmd0aCAhPSBvdGhMZW5ndGggJiYgIWlzUGFydGlhbCkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgIH1cbiAgICAgICAgICB2YXIgaW5kZXggPSBvYmpMZW5ndGg7XG4gICAgICAgICAgd2hpbGUgKGluZGV4LS0pIHtcbiAgICAgICAgICAgIHZhciBrZXkgPSBvYmpQcm9wc1tpbmRleF07XG4gICAgICAgICAgICBpZiAoIShpc1BhcnRpYWwgPyBrZXkgaW4gb3RoZXIgOiBoYXNPd25Qcm9wZXJ0eS5jYWxsKG90aGVyLCBrZXkpKSkge1xuICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIHZhciBvYmpTdGFja2VkID0gc3RhY2suZ2V0KG9iamVjdCk7XG4gICAgICAgICAgdmFyIG90aFN0YWNrZWQgPSBzdGFjay5nZXQob3RoZXIpO1xuICAgICAgICAgIGlmIChvYmpTdGFja2VkICYmIG90aFN0YWNrZWQpIHtcbiAgICAgICAgICAgIHJldHVybiBvYmpTdGFja2VkID09IG90aGVyICYmIG90aFN0YWNrZWQgPT0gb2JqZWN0O1xuICAgICAgICAgIH1cbiAgICAgICAgICB2YXIgcmVzdWx0MiA9IHRydWU7XG4gICAgICAgICAgc3RhY2suc2V0KG9iamVjdCwgb3RoZXIpO1xuICAgICAgICAgIHN0YWNrLnNldChvdGhlciwgb2JqZWN0KTtcbiAgICAgICAgICB2YXIgc2tpcEN0b3IgPSBpc1BhcnRpYWw7XG4gICAgICAgICAgd2hpbGUgKCsraW5kZXggPCBvYmpMZW5ndGgpIHtcbiAgICAgICAgICAgIGtleSA9IG9ialByb3BzW2luZGV4XTtcbiAgICAgICAgICAgIHZhciBvYmpWYWx1ZSA9IG9iamVjdFtrZXldLCBvdGhWYWx1ZSA9IG90aGVyW2tleV07XG4gICAgICAgICAgICBpZiAoY3VzdG9taXplcikge1xuICAgICAgICAgICAgICB2YXIgY29tcGFyZWQgPSBpc1BhcnRpYWwgPyBjdXN0b21pemVyKG90aFZhbHVlLCBvYmpWYWx1ZSwga2V5LCBvdGhlciwgb2JqZWN0LCBzdGFjaykgOiBjdXN0b21pemVyKG9ialZhbHVlLCBvdGhWYWx1ZSwga2V5LCBvYmplY3QsIG90aGVyLCBzdGFjayk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIShjb21wYXJlZCA9PT0gdW5kZWZpbmVkMiA/IG9ialZhbHVlID09PSBvdGhWYWx1ZSB8fCBlcXVhbEZ1bmMob2JqVmFsdWUsIG90aFZhbHVlLCBiaXRtYXNrLCBjdXN0b21pemVyLCBzdGFjaykgOiBjb21wYXJlZCkpIHtcbiAgICAgICAgICAgICAgcmVzdWx0MiA9IGZhbHNlO1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHNraXBDdG9yIHx8IChza2lwQ3RvciA9IGtleSA9PSBcImNvbnN0cnVjdG9yXCIpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAocmVzdWx0MiAmJiAhc2tpcEN0b3IpIHtcbiAgICAgICAgICAgIHZhciBvYmpDdG9yID0gb2JqZWN0LmNvbnN0cnVjdG9yLCBvdGhDdG9yID0gb3RoZXIuY29uc3RydWN0b3I7XG4gICAgICAgICAgICBpZiAob2JqQ3RvciAhPSBvdGhDdG9yICYmIChcImNvbnN0cnVjdG9yXCIgaW4gb2JqZWN0ICYmIFwiY29uc3RydWN0b3JcIiBpbiBvdGhlcikgJiYgISh0eXBlb2Ygb2JqQ3RvciA9PSBcImZ1bmN0aW9uXCIgJiYgb2JqQ3RvciBpbnN0YW5jZW9mIG9iakN0b3IgJiYgdHlwZW9mIG90aEN0b3IgPT0gXCJmdW5jdGlvblwiICYmIG90aEN0b3IgaW5zdGFuY2VvZiBvdGhDdG9yKSkge1xuICAgICAgICAgICAgICByZXN1bHQyID0gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIHN0YWNrW1wiZGVsZXRlXCJdKG9iamVjdCk7XG4gICAgICAgICAgc3RhY2tbXCJkZWxldGVcIl0ob3RoZXIpO1xuICAgICAgICAgIHJldHVybiByZXN1bHQyO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGZsYXRSZXN0KGZ1bmMpIHtcbiAgICAgICAgICByZXR1cm4gc2V0VG9TdHJpbmcob3ZlclJlc3QoZnVuYywgdW5kZWZpbmVkMiwgZmxhdHRlbiksIGZ1bmMgKyBcIlwiKTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBnZXRBbGxLZXlzKG9iamVjdCkge1xuICAgICAgICAgIHJldHVybiBiYXNlR2V0QWxsS2V5cyhvYmplY3QsIGtleXMsIGdldFN5bWJvbHMpO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGdldEFsbEtleXNJbihvYmplY3QpIHtcbiAgICAgICAgICByZXR1cm4gYmFzZUdldEFsbEtleXMob2JqZWN0LCBrZXlzSW4sIGdldFN5bWJvbHNJbik7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGdldERhdGEgPSAhbWV0YU1hcCA/IG5vb3AgOiBmdW5jdGlvbihmdW5jKSB7XG4gICAgICAgICAgcmV0dXJuIG1ldGFNYXAuZ2V0KGZ1bmMpO1xuICAgICAgICB9O1xuICAgICAgICBmdW5jdGlvbiBnZXRGdW5jTmFtZShmdW5jKSB7XG4gICAgICAgICAgdmFyIHJlc3VsdDIgPSBmdW5jLm5hbWUgKyBcIlwiLCBhcnJheSA9IHJlYWxOYW1lc1tyZXN1bHQyXSwgbGVuZ3RoID0gaGFzT3duUHJvcGVydHkuY2FsbChyZWFsTmFtZXMsIHJlc3VsdDIpID8gYXJyYXkubGVuZ3RoIDogMDtcbiAgICAgICAgICB3aGlsZSAobGVuZ3RoLS0pIHtcbiAgICAgICAgICAgIHZhciBkYXRhID0gYXJyYXlbbGVuZ3RoXSwgb3RoZXJGdW5jID0gZGF0YS5mdW5jO1xuICAgICAgICAgICAgaWYgKG90aGVyRnVuYyA9PSBudWxsIHx8IG90aGVyRnVuYyA9PSBmdW5jKSB7XG4gICAgICAgICAgICAgIHJldHVybiBkYXRhLm5hbWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiByZXN1bHQyO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGdldEhvbGRlcihmdW5jKSB7XG4gICAgICAgICAgdmFyIG9iamVjdCA9IGhhc093blByb3BlcnR5LmNhbGwobG9kYXNoLCBcInBsYWNlaG9sZGVyXCIpID8gbG9kYXNoIDogZnVuYztcbiAgICAgICAgICByZXR1cm4gb2JqZWN0LnBsYWNlaG9sZGVyO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGdldEl0ZXJhdGVlKCkge1xuICAgICAgICAgIHZhciByZXN1bHQyID0gbG9kYXNoLml0ZXJhdGVlIHx8IGl0ZXJhdGVlO1xuICAgICAgICAgIHJlc3VsdDIgPSByZXN1bHQyID09PSBpdGVyYXRlZSA/IGJhc2VJdGVyYXRlZSA6IHJlc3VsdDI7XG4gICAgICAgICAgcmV0dXJuIGFyZ3VtZW50cy5sZW5ndGggPyByZXN1bHQyKGFyZ3VtZW50c1swXSwgYXJndW1lbnRzWzFdKSA6IHJlc3VsdDI7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gZ2V0TWFwRGF0YShtYXAyLCBrZXkpIHtcbiAgICAgICAgICB2YXIgZGF0YSA9IG1hcDIuX19kYXRhX187XG4gICAgICAgICAgcmV0dXJuIGlzS2V5YWJsZShrZXkpID8gZGF0YVt0eXBlb2Yga2V5ID09IFwic3RyaW5nXCIgPyBcInN0cmluZ1wiIDogXCJoYXNoXCJdIDogZGF0YS5tYXA7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gZ2V0TWF0Y2hEYXRhKG9iamVjdCkge1xuICAgICAgICAgIHZhciByZXN1bHQyID0ga2V5cyhvYmplY3QpLCBsZW5ndGggPSByZXN1bHQyLmxlbmd0aDtcbiAgICAgICAgICB3aGlsZSAobGVuZ3RoLS0pIHtcbiAgICAgICAgICAgIHZhciBrZXkgPSByZXN1bHQyW2xlbmd0aF0sIHZhbHVlID0gb2JqZWN0W2tleV07XG4gICAgICAgICAgICByZXN1bHQyW2xlbmd0aF0gPSBba2V5LCB2YWx1ZSwgaXNTdHJpY3RDb21wYXJhYmxlKHZhbHVlKV07XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiByZXN1bHQyO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGdldE5hdGl2ZShvYmplY3QsIGtleSkge1xuICAgICAgICAgIHZhciB2YWx1ZSA9IGdldFZhbHVlKG9iamVjdCwga2V5KTtcbiAgICAgICAgICByZXR1cm4gYmFzZUlzTmF0aXZlKHZhbHVlKSA/IHZhbHVlIDogdW5kZWZpbmVkMjtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBnZXRSYXdUYWcodmFsdWUpIHtcbiAgICAgICAgICB2YXIgaXNPd24gPSBoYXNPd25Qcm9wZXJ0eS5jYWxsKHZhbHVlLCBzeW1Ub1N0cmluZ1RhZyksIHRhZyA9IHZhbHVlW3N5bVRvU3RyaW5nVGFnXTtcbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgdmFsdWVbc3ltVG9TdHJpbmdUYWddID0gdW5kZWZpbmVkMjtcbiAgICAgICAgICAgIHZhciB1bm1hc2tlZCA9IHRydWU7XG4gICAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgIH1cbiAgICAgICAgICB2YXIgcmVzdWx0MiA9IG5hdGl2ZU9iamVjdFRvU3RyaW5nLmNhbGwodmFsdWUpO1xuICAgICAgICAgIGlmICh1bm1hc2tlZCkge1xuICAgICAgICAgICAgaWYgKGlzT3duKSB7XG4gICAgICAgICAgICAgIHZhbHVlW3N5bVRvU3RyaW5nVGFnXSA9IHRhZztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIGRlbGV0ZSB2YWx1ZVtzeW1Ub1N0cmluZ1RhZ107XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiByZXN1bHQyO1xuICAgICAgICB9XG4gICAgICAgIHZhciBnZXRTeW1ib2xzID0gIW5hdGl2ZUdldFN5bWJvbHMgPyBzdHViQXJyYXkgOiBmdW5jdGlvbihvYmplY3QpIHtcbiAgICAgICAgICBpZiAob2JqZWN0ID09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiBbXTtcbiAgICAgICAgICB9XG4gICAgICAgICAgb2JqZWN0ID0gT2JqZWN0MihvYmplY3QpO1xuICAgICAgICAgIHJldHVybiBhcnJheUZpbHRlcihuYXRpdmVHZXRTeW1ib2xzKG9iamVjdCksIGZ1bmN0aW9uKHN5bWJvbCkge1xuICAgICAgICAgICAgcmV0dXJuIHByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwob2JqZWN0LCBzeW1ib2wpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9O1xuICAgICAgICB2YXIgZ2V0U3ltYm9sc0luID0gIW5hdGl2ZUdldFN5bWJvbHMgPyBzdHViQXJyYXkgOiBmdW5jdGlvbihvYmplY3QpIHtcbiAgICAgICAgICB2YXIgcmVzdWx0MiA9IFtdO1xuICAgICAgICAgIHdoaWxlIChvYmplY3QpIHtcbiAgICAgICAgICAgIGFycmF5UHVzaChyZXN1bHQyLCBnZXRTeW1ib2xzKG9iamVjdCkpO1xuICAgICAgICAgICAgb2JqZWN0ID0gZ2V0UHJvdG90eXBlKG9iamVjdCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiByZXN1bHQyO1xuICAgICAgICB9O1xuICAgICAgICB2YXIgZ2V0VGFnID0gYmFzZUdldFRhZztcbiAgICAgICAgaWYgKERhdGFWaWV3MiAmJiBnZXRUYWcobmV3IERhdGFWaWV3MihuZXcgQXJyYXlCdWZmZXIoMSkpKSAhPSBkYXRhVmlld1RhZyB8fCBNYXAyICYmIGdldFRhZyhuZXcgTWFwMigpKSAhPSBtYXBUYWcgfHwgUHJvbWlzZTIgJiYgZ2V0VGFnKFByb21pc2UyLnJlc29sdmUoKSkgIT0gcHJvbWlzZVRhZyB8fCBTZXQyICYmIGdldFRhZyhuZXcgU2V0MigpKSAhPSBzZXRUYWcgfHwgV2Vha01hcDIgJiYgZ2V0VGFnKG5ldyBXZWFrTWFwMigpKSAhPSB3ZWFrTWFwVGFnKSB7XG4gICAgICAgICAgZ2V0VGFnID0gZnVuY3Rpb24odmFsdWUpIHtcbiAgICAgICAgICAgIHZhciByZXN1bHQyID0gYmFzZUdldFRhZyh2YWx1ZSksIEN0b3IgPSByZXN1bHQyID09IG9iamVjdFRhZyA/IHZhbHVlLmNvbnN0cnVjdG9yIDogdW5kZWZpbmVkMiwgY3RvclN0cmluZyA9IEN0b3IgPyB0b1NvdXJjZShDdG9yKSA6IFwiXCI7XG4gICAgICAgICAgICBpZiAoY3RvclN0cmluZykge1xuICAgICAgICAgICAgICBzd2l0Y2ggKGN0b3JTdHJpbmcpIHtcbiAgICAgICAgICAgICAgICBjYXNlIGRhdGFWaWV3Q3RvclN0cmluZzpcbiAgICAgICAgICAgICAgICAgIHJldHVybiBkYXRhVmlld1RhZztcbiAgICAgICAgICAgICAgICBjYXNlIG1hcEN0b3JTdHJpbmc6XG4gICAgICAgICAgICAgICAgICByZXR1cm4gbWFwVGFnO1xuICAgICAgICAgICAgICAgIGNhc2UgcHJvbWlzZUN0b3JTdHJpbmc6XG4gICAgICAgICAgICAgICAgICByZXR1cm4gcHJvbWlzZVRhZztcbiAgICAgICAgICAgICAgICBjYXNlIHNldEN0b3JTdHJpbmc6XG4gICAgICAgICAgICAgICAgICByZXR1cm4gc2V0VGFnO1xuICAgICAgICAgICAgICAgIGNhc2Ugd2Vha01hcEN0b3JTdHJpbmc6XG4gICAgICAgICAgICAgICAgICByZXR1cm4gd2Vha01hcFRhZztcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDI7XG4gICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBnZXRWaWV3KHN0YXJ0LCBlbmQsIHRyYW5zZm9ybXMpIHtcbiAgICAgICAgICB2YXIgaW5kZXggPSAtMSwgbGVuZ3RoID0gdHJhbnNmb3Jtcy5sZW5ndGg7XG4gICAgICAgICAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICAgICAgICAgIHZhciBkYXRhID0gdHJhbnNmb3Jtc1tpbmRleF0sIHNpemUyID0gZGF0YS5zaXplO1xuICAgICAgICAgICAgc3dpdGNoIChkYXRhLnR5cGUpIHtcbiAgICAgICAgICAgICAgY2FzZSBcImRyb3BcIjpcbiAgICAgICAgICAgICAgICBzdGFydCArPSBzaXplMjtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgY2FzZSBcImRyb3BSaWdodFwiOlxuICAgICAgICAgICAgICAgIGVuZCAtPSBzaXplMjtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgY2FzZSBcInRha2VcIjpcbiAgICAgICAgICAgICAgICBlbmQgPSBuYXRpdmVNaW4oZW5kLCBzdGFydCArIHNpemUyKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgY2FzZSBcInRha2VSaWdodFwiOlxuICAgICAgICAgICAgICAgIHN0YXJ0ID0gbmF0aXZlTWF4KHN0YXJ0LCBlbmQgLSBzaXplMik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiB7IFwic3RhcnRcIjogc3RhcnQsIFwiZW5kXCI6IGVuZCB9O1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGdldFdyYXBEZXRhaWxzKHNvdXJjZSkge1xuICAgICAgICAgIHZhciBtYXRjaCA9IHNvdXJjZS5tYXRjaChyZVdyYXBEZXRhaWxzKTtcbiAgICAgICAgICByZXR1cm4gbWF0Y2ggPyBtYXRjaFsxXS5zcGxpdChyZVNwbGl0RGV0YWlscykgOiBbXTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBoYXNQYXRoKG9iamVjdCwgcGF0aCwgaGFzRnVuYykge1xuICAgICAgICAgIHBhdGggPSBjYXN0UGF0aChwYXRoLCBvYmplY3QpO1xuICAgICAgICAgIHZhciBpbmRleCA9IC0xLCBsZW5ndGggPSBwYXRoLmxlbmd0aCwgcmVzdWx0MiA9IGZhbHNlO1xuICAgICAgICAgIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgICAgICAgICB2YXIga2V5ID0gdG9LZXkocGF0aFtpbmRleF0pO1xuICAgICAgICAgICAgaWYgKCEocmVzdWx0MiA9IG9iamVjdCAhPSBudWxsICYmIGhhc0Z1bmMob2JqZWN0LCBrZXkpKSkge1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG9iamVjdCA9IG9iamVjdFtrZXldO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAocmVzdWx0MiB8fCArK2luZGV4ICE9IGxlbmd0aCkge1xuICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDI7XG4gICAgICAgICAgfVxuICAgICAgICAgIGxlbmd0aCA9IG9iamVjdCA9PSBudWxsID8gMCA6IG9iamVjdC5sZW5ndGg7XG4gICAgICAgICAgcmV0dXJuICEhbGVuZ3RoICYmIGlzTGVuZ3RoKGxlbmd0aCkgJiYgaXNJbmRleChrZXksIGxlbmd0aCkgJiYgKGlzQXJyYXkob2JqZWN0KSB8fCBpc0FyZ3VtZW50cyhvYmplY3QpKTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBpbml0Q2xvbmVBcnJheShhcnJheSkge1xuICAgICAgICAgIHZhciBsZW5ndGggPSBhcnJheS5sZW5ndGgsIHJlc3VsdDIgPSBuZXcgYXJyYXkuY29uc3RydWN0b3IobGVuZ3RoKTtcbiAgICAgICAgICBpZiAobGVuZ3RoICYmIHR5cGVvZiBhcnJheVswXSA9PSBcInN0cmluZ1wiICYmIGhhc093blByb3BlcnR5LmNhbGwoYXJyYXksIFwiaW5kZXhcIikpIHtcbiAgICAgICAgICAgIHJlc3VsdDIuaW5kZXggPSBhcnJheS5pbmRleDtcbiAgICAgICAgICAgIHJlc3VsdDIuaW5wdXQgPSBhcnJheS5pbnB1dDtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHJlc3VsdDI7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gaW5pdENsb25lT2JqZWN0KG9iamVjdCkge1xuICAgICAgICAgIHJldHVybiB0eXBlb2Ygb2JqZWN0LmNvbnN0cnVjdG9yID09IFwiZnVuY3Rpb25cIiAmJiAhaXNQcm90b3R5cGUob2JqZWN0KSA/IGJhc2VDcmVhdGUoZ2V0UHJvdG90eXBlKG9iamVjdCkpIDoge307XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gaW5pdENsb25lQnlUYWcob2JqZWN0LCB0YWcsIGlzRGVlcCkge1xuICAgICAgICAgIHZhciBDdG9yID0gb2JqZWN0LmNvbnN0cnVjdG9yO1xuICAgICAgICAgIHN3aXRjaCAodGFnKSB7XG4gICAgICAgICAgICBjYXNlIGFycmF5QnVmZmVyVGFnOlxuICAgICAgICAgICAgICByZXR1cm4gY2xvbmVBcnJheUJ1ZmZlcihvYmplY3QpO1xuICAgICAgICAgICAgY2FzZSBib29sVGFnOlxuICAgICAgICAgICAgY2FzZSBkYXRlVGFnOlxuICAgICAgICAgICAgICByZXR1cm4gbmV3IEN0b3IoK29iamVjdCk7XG4gICAgICAgICAgICBjYXNlIGRhdGFWaWV3VGFnOlxuICAgICAgICAgICAgICByZXR1cm4gY2xvbmVEYXRhVmlldyhvYmplY3QsIGlzRGVlcCk7XG4gICAgICAgICAgICBjYXNlIGZsb2F0MzJUYWc6XG4gICAgICAgICAgICBjYXNlIGZsb2F0NjRUYWc6XG4gICAgICAgICAgICBjYXNlIGludDhUYWc6XG4gICAgICAgICAgICBjYXNlIGludDE2VGFnOlxuICAgICAgICAgICAgY2FzZSBpbnQzMlRhZzpcbiAgICAgICAgICAgIGNhc2UgdWludDhUYWc6XG4gICAgICAgICAgICBjYXNlIHVpbnQ4Q2xhbXBlZFRhZzpcbiAgICAgICAgICAgIGNhc2UgdWludDE2VGFnOlxuICAgICAgICAgICAgY2FzZSB1aW50MzJUYWc6XG4gICAgICAgICAgICAgIHJldHVybiBjbG9uZVR5cGVkQXJyYXkob2JqZWN0LCBpc0RlZXApO1xuICAgICAgICAgICAgY2FzZSBtYXBUYWc6XG4gICAgICAgICAgICAgIHJldHVybiBuZXcgQ3RvcigpO1xuICAgICAgICAgICAgY2FzZSBudW1iZXJUYWc6XG4gICAgICAgICAgICBjYXNlIHN0cmluZ1RhZzpcbiAgICAgICAgICAgICAgcmV0dXJuIG5ldyBDdG9yKG9iamVjdCk7XG4gICAgICAgICAgICBjYXNlIHJlZ2V4cFRhZzpcbiAgICAgICAgICAgICAgcmV0dXJuIGNsb25lUmVnRXhwKG9iamVjdCk7XG4gICAgICAgICAgICBjYXNlIHNldFRhZzpcbiAgICAgICAgICAgICAgcmV0dXJuIG5ldyBDdG9yKCk7XG4gICAgICAgICAgICBjYXNlIHN5bWJvbFRhZzpcbiAgICAgICAgICAgICAgcmV0dXJuIGNsb25lU3ltYm9sKG9iamVjdCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGluc2VydFdyYXBEZXRhaWxzKHNvdXJjZSwgZGV0YWlscykge1xuICAgICAgICAgIHZhciBsZW5ndGggPSBkZXRhaWxzLmxlbmd0aDtcbiAgICAgICAgICBpZiAoIWxlbmd0aCkge1xuICAgICAgICAgICAgcmV0dXJuIHNvdXJjZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdmFyIGxhc3RJbmRleCA9IGxlbmd0aCAtIDE7XG4gICAgICAgICAgZGV0YWlsc1tsYXN0SW5kZXhdID0gKGxlbmd0aCA+IDEgPyBcIiYgXCIgOiBcIlwiKSArIGRldGFpbHNbbGFzdEluZGV4XTtcbiAgICAgICAgICBkZXRhaWxzID0gZGV0YWlscy5qb2luKGxlbmd0aCA+IDIgPyBcIiwgXCIgOiBcIiBcIik7XG4gICAgICAgICAgcmV0dXJuIHNvdXJjZS5yZXBsYWNlKHJlV3JhcENvbW1lbnQsIFwie1xcbi8qIFt3cmFwcGVkIHdpdGggXCIgKyBkZXRhaWxzICsgXCJdICovXFxuXCIpO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGlzRmxhdHRlbmFibGUodmFsdWUpIHtcbiAgICAgICAgICByZXR1cm4gaXNBcnJheSh2YWx1ZSkgfHwgaXNBcmd1bWVudHModmFsdWUpIHx8ICEhKHNwcmVhZGFibGVTeW1ib2wgJiYgdmFsdWUgJiYgdmFsdWVbc3ByZWFkYWJsZVN5bWJvbF0pO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGlzSW5kZXgodmFsdWUsIGxlbmd0aCkge1xuICAgICAgICAgIHZhciB0eXBlID0gdHlwZW9mIHZhbHVlO1xuICAgICAgICAgIGxlbmd0aCA9IGxlbmd0aCA9PSBudWxsID8gTUFYX1NBRkVfSU5URUdFUiA6IGxlbmd0aDtcbiAgICAgICAgICByZXR1cm4gISFsZW5ndGggJiYgKHR5cGUgPT0gXCJudW1iZXJcIiB8fCB0eXBlICE9IFwic3ltYm9sXCIgJiYgcmVJc1VpbnQudGVzdCh2YWx1ZSkpICYmICh2YWx1ZSA+IC0xICYmIHZhbHVlICUgMSA9PSAwICYmIHZhbHVlIDwgbGVuZ3RoKTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBpc0l0ZXJhdGVlQ2FsbCh2YWx1ZSwgaW5kZXgsIG9iamVjdCkge1xuICAgICAgICAgIGlmICghaXNPYmplY3Qob2JqZWN0KSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgIH1cbiAgICAgICAgICB2YXIgdHlwZSA9IHR5cGVvZiBpbmRleDtcbiAgICAgICAgICBpZiAodHlwZSA9PSBcIm51bWJlclwiID8gaXNBcnJheUxpa2Uob2JqZWN0KSAmJiBpc0luZGV4KGluZGV4LCBvYmplY3QubGVuZ3RoKSA6IHR5cGUgPT0gXCJzdHJpbmdcIiAmJiBpbmRleCBpbiBvYmplY3QpIHtcbiAgICAgICAgICAgIHJldHVybiBlcShvYmplY3RbaW5kZXhdLCB2YWx1ZSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBpc0tleSh2YWx1ZSwgb2JqZWN0KSB7XG4gICAgICAgICAgaWYgKGlzQXJyYXkodmFsdWUpKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgfVxuICAgICAgICAgIHZhciB0eXBlID0gdHlwZW9mIHZhbHVlO1xuICAgICAgICAgIGlmICh0eXBlID09IFwibnVtYmVyXCIgfHwgdHlwZSA9PSBcInN5bWJvbFwiIHx8IHR5cGUgPT0gXCJib29sZWFuXCIgfHwgdmFsdWUgPT0gbnVsbCB8fCBpc1N5bWJvbCh2YWx1ZSkpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gcmVJc1BsYWluUHJvcC50ZXN0KHZhbHVlKSB8fCAhcmVJc0RlZXBQcm9wLnRlc3QodmFsdWUpIHx8IG9iamVjdCAhPSBudWxsICYmIHZhbHVlIGluIE9iamVjdDIob2JqZWN0KTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBpc0tleWFibGUodmFsdWUpIHtcbiAgICAgICAgICB2YXIgdHlwZSA9IHR5cGVvZiB2YWx1ZTtcbiAgICAgICAgICByZXR1cm4gdHlwZSA9PSBcInN0cmluZ1wiIHx8IHR5cGUgPT0gXCJudW1iZXJcIiB8fCB0eXBlID09IFwic3ltYm9sXCIgfHwgdHlwZSA9PSBcImJvb2xlYW5cIiA/IHZhbHVlICE9PSBcIl9fcHJvdG9fX1wiIDogdmFsdWUgPT09IG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gaXNMYXppYWJsZShmdW5jKSB7XG4gICAgICAgICAgdmFyIGZ1bmNOYW1lID0gZ2V0RnVuY05hbWUoZnVuYyksIG90aGVyID0gbG9kYXNoW2Z1bmNOYW1lXTtcbiAgICAgICAgICBpZiAodHlwZW9mIG90aGVyICE9IFwiZnVuY3Rpb25cIiB8fCAhKGZ1bmNOYW1lIGluIExhenlXcmFwcGVyLnByb3RvdHlwZSkpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGZ1bmMgPT09IG90aGVyKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdmFyIGRhdGEgPSBnZXREYXRhKG90aGVyKTtcbiAgICAgICAgICByZXR1cm4gISFkYXRhICYmIGZ1bmMgPT09IGRhdGFbMF07XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gaXNNYXNrZWQoZnVuYykge1xuICAgICAgICAgIHJldHVybiAhIW1hc2tTcmNLZXkgJiYgbWFza1NyY0tleSBpbiBmdW5jO1xuICAgICAgICB9XG4gICAgICAgIHZhciBpc01hc2thYmxlID0gY29yZUpzRGF0YSA/IGlzRnVuY3Rpb24gOiBzdHViRmFsc2U7XG4gICAgICAgIGZ1bmN0aW9uIGlzUHJvdG90eXBlKHZhbHVlKSB7XG4gICAgICAgICAgdmFyIEN0b3IgPSB2YWx1ZSAmJiB2YWx1ZS5jb25zdHJ1Y3RvciwgcHJvdG8gPSB0eXBlb2YgQ3RvciA9PSBcImZ1bmN0aW9uXCIgJiYgQ3Rvci5wcm90b3R5cGUgfHwgb2JqZWN0UHJvdG87XG4gICAgICAgICAgcmV0dXJuIHZhbHVlID09PSBwcm90bztcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBpc1N0cmljdENvbXBhcmFibGUodmFsdWUpIHtcbiAgICAgICAgICByZXR1cm4gdmFsdWUgPT09IHZhbHVlICYmICFpc09iamVjdCh2YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gbWF0Y2hlc1N0cmljdENvbXBhcmFibGUoa2V5LCBzcmNWYWx1ZSkge1xuICAgICAgICAgIHJldHVybiBmdW5jdGlvbihvYmplY3QpIHtcbiAgICAgICAgICAgIGlmIChvYmplY3QgPT0gbnVsbCkge1xuICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gb2JqZWN0W2tleV0gPT09IHNyY1ZhbHVlICYmIChzcmNWYWx1ZSAhPT0gdW5kZWZpbmVkMiB8fCBrZXkgaW4gT2JqZWN0MihvYmplY3QpKTtcbiAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIG1lbW9pemVDYXBwZWQoZnVuYykge1xuICAgICAgICAgIHZhciByZXN1bHQyID0gbWVtb2l6ZShmdW5jLCBmdW5jdGlvbihrZXkpIHtcbiAgICAgICAgICAgIGlmIChjYWNoZS5zaXplID09PSBNQVhfTUVNT0laRV9TSVpFKSB7XG4gICAgICAgICAgICAgIGNhY2hlLmNsZWFyKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4ga2V5O1xuICAgICAgICAgIH0pO1xuICAgICAgICAgIHZhciBjYWNoZSA9IHJlc3VsdDIuY2FjaGU7XG4gICAgICAgICAgcmV0dXJuIHJlc3VsdDI7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gbWVyZ2VEYXRhKGRhdGEsIHNvdXJjZSkge1xuICAgICAgICAgIHZhciBiaXRtYXNrID0gZGF0YVsxXSwgc3JjQml0bWFzayA9IHNvdXJjZVsxXSwgbmV3Qml0bWFzayA9IGJpdG1hc2sgfCBzcmNCaXRtYXNrLCBpc0NvbW1vbiA9IG5ld0JpdG1hc2sgPCAoV1JBUF9CSU5EX0ZMQUcgfCBXUkFQX0JJTkRfS0VZX0ZMQUcgfCBXUkFQX0FSWV9GTEFHKTtcbiAgICAgICAgICB2YXIgaXNDb21ibyA9IHNyY0JpdG1hc2sgPT0gV1JBUF9BUllfRkxBRyAmJiBiaXRtYXNrID09IFdSQVBfQ1VSUllfRkxBRyB8fCBzcmNCaXRtYXNrID09IFdSQVBfQVJZX0ZMQUcgJiYgYml0bWFzayA9PSBXUkFQX1JFQVJHX0ZMQUcgJiYgZGF0YVs3XS5sZW5ndGggPD0gc291cmNlWzhdIHx8IHNyY0JpdG1hc2sgPT0gKFdSQVBfQVJZX0ZMQUcgfCBXUkFQX1JFQVJHX0ZMQUcpICYmIHNvdXJjZVs3XS5sZW5ndGggPD0gc291cmNlWzhdICYmIGJpdG1hc2sgPT0gV1JBUF9DVVJSWV9GTEFHO1xuICAgICAgICAgIGlmICghKGlzQ29tbW9uIHx8IGlzQ29tYm8pKSB7XG4gICAgICAgICAgICByZXR1cm4gZGF0YTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHNyY0JpdG1hc2sgJiBXUkFQX0JJTkRfRkxBRykge1xuICAgICAgICAgICAgZGF0YVsyXSA9IHNvdXJjZVsyXTtcbiAgICAgICAgICAgIG5ld0JpdG1hc2sgfD0gYml0bWFzayAmIFdSQVBfQklORF9GTEFHID8gMCA6IFdSQVBfQ1VSUllfQk9VTkRfRkxBRztcbiAgICAgICAgICB9XG4gICAgICAgICAgdmFyIHZhbHVlID0gc291cmNlWzNdO1xuICAgICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgICAgdmFyIHBhcnRpYWxzID0gZGF0YVszXTtcbiAgICAgICAgICAgIGRhdGFbM10gPSBwYXJ0aWFscyA/IGNvbXBvc2VBcmdzKHBhcnRpYWxzLCB2YWx1ZSwgc291cmNlWzRdKSA6IHZhbHVlO1xuICAgICAgICAgICAgZGF0YVs0XSA9IHBhcnRpYWxzID8gcmVwbGFjZUhvbGRlcnMoZGF0YVszXSwgUExBQ0VIT0xERVIpIDogc291cmNlWzRdO1xuICAgICAgICAgIH1cbiAgICAgICAgICB2YWx1ZSA9IHNvdXJjZVs1XTtcbiAgICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgIHBhcnRpYWxzID0gZGF0YVs1XTtcbiAgICAgICAgICAgIGRhdGFbNV0gPSBwYXJ0aWFscyA/IGNvbXBvc2VBcmdzUmlnaHQocGFydGlhbHMsIHZhbHVlLCBzb3VyY2VbNl0pIDogdmFsdWU7XG4gICAgICAgICAgICBkYXRhWzZdID0gcGFydGlhbHMgPyByZXBsYWNlSG9sZGVycyhkYXRhWzVdLCBQTEFDRUhPTERFUikgOiBzb3VyY2VbNl07XG4gICAgICAgICAgfVxuICAgICAgICAgIHZhbHVlID0gc291cmNlWzddO1xuICAgICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgICAgZGF0YVs3XSA9IHZhbHVlO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoc3JjQml0bWFzayAmIFdSQVBfQVJZX0ZMQUcpIHtcbiAgICAgICAgICAgIGRhdGFbOF0gPSBkYXRhWzhdID09IG51bGwgPyBzb3VyY2VbOF0gOiBuYXRpdmVNaW4oZGF0YVs4XSwgc291cmNlWzhdKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGRhdGFbOV0gPT0gbnVsbCkge1xuICAgICAgICAgICAgZGF0YVs5XSA9IHNvdXJjZVs5XTtcbiAgICAgICAgICB9XG4gICAgICAgICAgZGF0YVswXSA9IHNvdXJjZVswXTtcbiAgICAgICAgICBkYXRhWzFdID0gbmV3Qml0bWFzaztcbiAgICAgICAgICByZXR1cm4gZGF0YTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBuYXRpdmVLZXlzSW4ob2JqZWN0KSB7XG4gICAgICAgICAgdmFyIHJlc3VsdDIgPSBbXTtcbiAgICAgICAgICBpZiAob2JqZWN0ICE9IG51bGwpIHtcbiAgICAgICAgICAgIGZvciAodmFyIGtleSBpbiBPYmplY3QyKG9iamVjdCkpIHtcbiAgICAgICAgICAgICAgcmVzdWx0Mi5wdXNoKGtleSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiByZXN1bHQyO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIG9iamVjdFRvU3RyaW5nKHZhbHVlKSB7XG4gICAgICAgICAgcmV0dXJuIG5hdGl2ZU9iamVjdFRvU3RyaW5nLmNhbGwodmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIG92ZXJSZXN0KGZ1bmMsIHN0YXJ0LCB0cmFuc2Zvcm0yKSB7XG4gICAgICAgICAgc3RhcnQgPSBuYXRpdmVNYXgoc3RhcnQgPT09IHVuZGVmaW5lZDIgPyBmdW5jLmxlbmd0aCAtIDEgOiBzdGFydCwgMCk7XG4gICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgdmFyIGFyZ3MgPSBhcmd1bWVudHMsIGluZGV4ID0gLTEsIGxlbmd0aCA9IG5hdGl2ZU1heChhcmdzLmxlbmd0aCAtIHN0YXJ0LCAwKSwgYXJyYXkgPSBBcnJheTIobGVuZ3RoKTtcbiAgICAgICAgICAgIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgICAgICAgICAgIGFycmF5W2luZGV4XSA9IGFyZ3Nbc3RhcnQgKyBpbmRleF07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpbmRleCA9IC0xO1xuICAgICAgICAgICAgdmFyIG90aGVyQXJncyA9IEFycmF5MihzdGFydCArIDEpO1xuICAgICAgICAgICAgd2hpbGUgKCsraW5kZXggPCBzdGFydCkge1xuICAgICAgICAgICAgICBvdGhlckFyZ3NbaW5kZXhdID0gYXJnc1tpbmRleF07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBvdGhlckFyZ3Nbc3RhcnRdID0gdHJhbnNmb3JtMihhcnJheSk7XG4gICAgICAgICAgICByZXR1cm4gYXBwbHkoZnVuYywgdGhpcywgb3RoZXJBcmdzKTtcbiAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIHBhcmVudChvYmplY3QsIHBhdGgpIHtcbiAgICAgICAgICByZXR1cm4gcGF0aC5sZW5ndGggPCAyID8gb2JqZWN0IDogYmFzZUdldChvYmplY3QsIGJhc2VTbGljZShwYXRoLCAwLCAtMSkpO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIHJlb3JkZXIoYXJyYXksIGluZGV4ZXMpIHtcbiAgICAgICAgICB2YXIgYXJyTGVuZ3RoID0gYXJyYXkubGVuZ3RoLCBsZW5ndGggPSBuYXRpdmVNaW4oaW5kZXhlcy5sZW5ndGgsIGFyckxlbmd0aCksIG9sZEFycmF5ID0gY29weUFycmF5KGFycmF5KTtcbiAgICAgICAgICB3aGlsZSAobGVuZ3RoLS0pIHtcbiAgICAgICAgICAgIHZhciBpbmRleCA9IGluZGV4ZXNbbGVuZ3RoXTtcbiAgICAgICAgICAgIGFycmF5W2xlbmd0aF0gPSBpc0luZGV4KGluZGV4LCBhcnJMZW5ndGgpID8gb2xkQXJyYXlbaW5kZXhdIDogdW5kZWZpbmVkMjtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIGFycmF5O1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIHNhZmVHZXQob2JqZWN0LCBrZXkpIHtcbiAgICAgICAgICBpZiAoa2V5ID09PSBcImNvbnN0cnVjdG9yXCIgJiYgdHlwZW9mIG9iamVjdFtrZXldID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGtleSA9PSBcIl9fcHJvdG9fX1wiKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBvYmplY3Rba2V5XTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgc2V0RGF0YSA9IHNob3J0T3V0KGJhc2VTZXREYXRhKTtcbiAgICAgICAgdmFyIHNldFRpbWVvdXQgPSBjdHhTZXRUaW1lb3V0IHx8IGZ1bmN0aW9uKGZ1bmMsIHdhaXQpIHtcbiAgICAgICAgICByZXR1cm4gcm9vdC5zZXRUaW1lb3V0KGZ1bmMsIHdhaXQpO1xuICAgICAgICB9O1xuICAgICAgICB2YXIgc2V0VG9TdHJpbmcgPSBzaG9ydE91dChiYXNlU2V0VG9TdHJpbmcpO1xuICAgICAgICBmdW5jdGlvbiBzZXRXcmFwVG9TdHJpbmcod3JhcHBlciwgcmVmZXJlbmNlLCBiaXRtYXNrKSB7XG4gICAgICAgICAgdmFyIHNvdXJjZSA9IHJlZmVyZW5jZSArIFwiXCI7XG4gICAgICAgICAgcmV0dXJuIHNldFRvU3RyaW5nKHdyYXBwZXIsIGluc2VydFdyYXBEZXRhaWxzKHNvdXJjZSwgdXBkYXRlV3JhcERldGFpbHMoZ2V0V3JhcERldGFpbHMoc291cmNlKSwgYml0bWFzaykpKTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBzaG9ydE91dChmdW5jKSB7XG4gICAgICAgICAgdmFyIGNvdW50ID0gMCwgbGFzdENhbGxlZCA9IDA7XG4gICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgdmFyIHN0YW1wID0gbmF0aXZlTm93KCksIHJlbWFpbmluZyA9IEhPVF9TUEFOIC0gKHN0YW1wIC0gbGFzdENhbGxlZCk7XG4gICAgICAgICAgICBsYXN0Q2FsbGVkID0gc3RhbXA7XG4gICAgICAgICAgICBpZiAocmVtYWluaW5nID4gMCkge1xuICAgICAgICAgICAgICBpZiAoKytjb3VudCA+PSBIT1RfQ09VTlQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gYXJndW1lbnRzWzBdO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBjb3VudCA9IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gZnVuYy5hcHBseSh1bmRlZmluZWQyLCBhcmd1bWVudHMpO1xuICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gc2h1ZmZsZVNlbGYoYXJyYXksIHNpemUyKSB7XG4gICAgICAgICAgdmFyIGluZGV4ID0gLTEsIGxlbmd0aCA9IGFycmF5Lmxlbmd0aCwgbGFzdEluZGV4ID0gbGVuZ3RoIC0gMTtcbiAgICAgICAgICBzaXplMiA9IHNpemUyID09PSB1bmRlZmluZWQyID8gbGVuZ3RoIDogc2l6ZTI7XG4gICAgICAgICAgd2hpbGUgKCsraW5kZXggPCBzaXplMikge1xuICAgICAgICAgICAgdmFyIHJhbmQgPSBiYXNlUmFuZG9tKGluZGV4LCBsYXN0SW5kZXgpLCB2YWx1ZSA9IGFycmF5W3JhbmRdO1xuICAgICAgICAgICAgYXJyYXlbcmFuZF0gPSBhcnJheVtpbmRleF07XG4gICAgICAgICAgICBhcnJheVtpbmRleF0gPSB2YWx1ZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgYXJyYXkubGVuZ3RoID0gc2l6ZTI7XG4gICAgICAgICAgcmV0dXJuIGFycmF5O1xuICAgICAgICB9XG4gICAgICAgIHZhciBzdHJpbmdUb1BhdGggPSBtZW1vaXplQ2FwcGVkKGZ1bmN0aW9uKHN0cmluZykge1xuICAgICAgICAgIHZhciByZXN1bHQyID0gW107XG4gICAgICAgICAgaWYgKHN0cmluZy5jaGFyQ29kZUF0KDApID09PSA0Nikge1xuICAgICAgICAgICAgcmVzdWx0Mi5wdXNoKFwiXCIpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBzdHJpbmcucmVwbGFjZShyZVByb3BOYW1lLCBmdW5jdGlvbihtYXRjaCwgbnVtYmVyLCBxdW90ZSwgc3ViU3RyaW5nKSB7XG4gICAgICAgICAgICByZXN1bHQyLnB1c2gocXVvdGUgPyBzdWJTdHJpbmcucmVwbGFjZShyZUVzY2FwZUNoYXIsIFwiJDFcIikgOiBudW1iZXIgfHwgbWF0Y2gpO1xuICAgICAgICAgIH0pO1xuICAgICAgICAgIHJldHVybiByZXN1bHQyO1xuICAgICAgICB9KTtcbiAgICAgICAgZnVuY3Rpb24gdG9LZXkodmFsdWUpIHtcbiAgICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09IFwic3RyaW5nXCIgfHwgaXNTeW1ib2wodmFsdWUpKSB7XG4gICAgICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICAgICAgfVxuICAgICAgICAgIHZhciByZXN1bHQyID0gdmFsdWUgKyBcIlwiO1xuICAgICAgICAgIHJldHVybiByZXN1bHQyID09IFwiMFwiICYmIDEgLyB2YWx1ZSA9PSAtSU5GSU5JVFkgPyBcIi0wXCIgOiByZXN1bHQyO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIHRvU291cmNlKGZ1bmMpIHtcbiAgICAgICAgICBpZiAoZnVuYyAhPSBudWxsKSB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICByZXR1cm4gZnVuY1RvU3RyaW5nLmNhbGwoZnVuYyk7XG4gICAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICByZXR1cm4gZnVuYyArIFwiXCI7XG4gICAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBcIlwiO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIHVwZGF0ZVdyYXBEZXRhaWxzKGRldGFpbHMsIGJpdG1hc2spIHtcbiAgICAgICAgICBhcnJheUVhY2god3JhcEZsYWdzLCBmdW5jdGlvbihwYWlyKSB7XG4gICAgICAgICAgICB2YXIgdmFsdWUgPSBcIl8uXCIgKyBwYWlyWzBdO1xuICAgICAgICAgICAgaWYgKGJpdG1hc2sgJiBwYWlyWzFdICYmICFhcnJheUluY2x1ZGVzKGRldGFpbHMsIHZhbHVlKSkge1xuICAgICAgICAgICAgICBkZXRhaWxzLnB1c2godmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICAgIHJldHVybiBkZXRhaWxzLnNvcnQoKTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiB3cmFwcGVyQ2xvbmUod3JhcHBlcikge1xuICAgICAgICAgIGlmICh3cmFwcGVyIGluc3RhbmNlb2YgTGF6eVdyYXBwZXIpIHtcbiAgICAgICAgICAgIHJldHVybiB3cmFwcGVyLmNsb25lKCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHZhciByZXN1bHQyID0gbmV3IExvZGFzaFdyYXBwZXIod3JhcHBlci5fX3dyYXBwZWRfXywgd3JhcHBlci5fX2NoYWluX18pO1xuICAgICAgICAgIHJlc3VsdDIuX19hY3Rpb25zX18gPSBjb3B5QXJyYXkod3JhcHBlci5fX2FjdGlvbnNfXyk7XG4gICAgICAgICAgcmVzdWx0Mi5fX2luZGV4X18gPSB3cmFwcGVyLl9faW5kZXhfXztcbiAgICAgICAgICByZXN1bHQyLl9fdmFsdWVzX18gPSB3cmFwcGVyLl9fdmFsdWVzX187XG4gICAgICAgICAgcmV0dXJuIHJlc3VsdDI7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gY2h1bmsoYXJyYXksIHNpemUyLCBndWFyZCkge1xuICAgICAgICAgIGlmIChndWFyZCA/IGlzSXRlcmF0ZWVDYWxsKGFycmF5LCBzaXplMiwgZ3VhcmQpIDogc2l6ZTIgPT09IHVuZGVmaW5lZDIpIHtcbiAgICAgICAgICAgIHNpemUyID0gMTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgc2l6ZTIgPSBuYXRpdmVNYXgodG9JbnRlZ2VyKHNpemUyKSwgMCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHZhciBsZW5ndGggPSBhcnJheSA9PSBudWxsID8gMCA6IGFycmF5Lmxlbmd0aDtcbiAgICAgICAgICBpZiAoIWxlbmd0aCB8fCBzaXplMiA8IDEpIHtcbiAgICAgICAgICAgIHJldHVybiBbXTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdmFyIGluZGV4ID0gMCwgcmVzSW5kZXggPSAwLCByZXN1bHQyID0gQXJyYXkyKG5hdGl2ZUNlaWwobGVuZ3RoIC8gc2l6ZTIpKTtcbiAgICAgICAgICB3aGlsZSAoaW5kZXggPCBsZW5ndGgpIHtcbiAgICAgICAgICAgIHJlc3VsdDJbcmVzSW5kZXgrK10gPSBiYXNlU2xpY2UoYXJyYXksIGluZGV4LCBpbmRleCArPSBzaXplMik7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiByZXN1bHQyO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGNvbXBhY3QoYXJyYXkpIHtcbiAgICAgICAgICB2YXIgaW5kZXggPSAtMSwgbGVuZ3RoID0gYXJyYXkgPT0gbnVsbCA/IDAgOiBhcnJheS5sZW5ndGgsIHJlc0luZGV4ID0gMCwgcmVzdWx0MiA9IFtdO1xuICAgICAgICAgIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgICAgICAgICB2YXIgdmFsdWUgPSBhcnJheVtpbmRleF07XG4gICAgICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgICAgcmVzdWx0MltyZXNJbmRleCsrXSA9IHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gcmVzdWx0MjtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBjb25jYXQoKSB7XG4gICAgICAgICAgdmFyIGxlbmd0aCA9IGFyZ3VtZW50cy5sZW5ndGg7XG4gICAgICAgICAgaWYgKCFsZW5ndGgpIHtcbiAgICAgICAgICAgIHJldHVybiBbXTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdmFyIGFyZ3MgPSBBcnJheTIobGVuZ3RoIC0gMSksIGFycmF5ID0gYXJndW1lbnRzWzBdLCBpbmRleCA9IGxlbmd0aDtcbiAgICAgICAgICB3aGlsZSAoaW5kZXgtLSkge1xuICAgICAgICAgICAgYXJnc1tpbmRleCAtIDFdID0gYXJndW1lbnRzW2luZGV4XTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIGFycmF5UHVzaChpc0FycmF5KGFycmF5KSA/IGNvcHlBcnJheShhcnJheSkgOiBbYXJyYXldLCBiYXNlRmxhdHRlbihhcmdzLCAxKSk7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGRpZmZlcmVuY2UgPSBiYXNlUmVzdChmdW5jdGlvbihhcnJheSwgdmFsdWVzMikge1xuICAgICAgICAgIHJldHVybiBpc0FycmF5TGlrZU9iamVjdChhcnJheSkgPyBiYXNlRGlmZmVyZW5jZShhcnJheSwgYmFzZUZsYXR0ZW4odmFsdWVzMiwgMSwgaXNBcnJheUxpa2VPYmplY3QsIHRydWUpKSA6IFtdO1xuICAgICAgICB9KTtcbiAgICAgICAgdmFyIGRpZmZlcmVuY2VCeSA9IGJhc2VSZXN0KGZ1bmN0aW9uKGFycmF5LCB2YWx1ZXMyKSB7XG4gICAgICAgICAgdmFyIGl0ZXJhdGVlMiA9IGxhc3QodmFsdWVzMik7XG4gICAgICAgICAgaWYgKGlzQXJyYXlMaWtlT2JqZWN0KGl0ZXJhdGVlMikpIHtcbiAgICAgICAgICAgIGl0ZXJhdGVlMiA9IHVuZGVmaW5lZDI7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBpc0FycmF5TGlrZU9iamVjdChhcnJheSkgPyBiYXNlRGlmZmVyZW5jZShhcnJheSwgYmFzZUZsYXR0ZW4odmFsdWVzMiwgMSwgaXNBcnJheUxpa2VPYmplY3QsIHRydWUpLCBnZXRJdGVyYXRlZShpdGVyYXRlZTIsIDIpKSA6IFtdO1xuICAgICAgICB9KTtcbiAgICAgICAgdmFyIGRpZmZlcmVuY2VXaXRoID0gYmFzZVJlc3QoZnVuY3Rpb24oYXJyYXksIHZhbHVlczIpIHtcbiAgICAgICAgICB2YXIgY29tcGFyYXRvciA9IGxhc3QodmFsdWVzMik7XG4gICAgICAgICAgaWYgKGlzQXJyYXlMaWtlT2JqZWN0KGNvbXBhcmF0b3IpKSB7XG4gICAgICAgICAgICBjb21wYXJhdG9yID0gdW5kZWZpbmVkMjtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIGlzQXJyYXlMaWtlT2JqZWN0KGFycmF5KSA/IGJhc2VEaWZmZXJlbmNlKGFycmF5LCBiYXNlRmxhdHRlbih2YWx1ZXMyLCAxLCBpc0FycmF5TGlrZU9iamVjdCwgdHJ1ZSksIHVuZGVmaW5lZDIsIGNvbXBhcmF0b3IpIDogW107XG4gICAgICAgIH0pO1xuICAgICAgICBmdW5jdGlvbiBkcm9wKGFycmF5LCBuLCBndWFyZCkge1xuICAgICAgICAgIHZhciBsZW5ndGggPSBhcnJheSA9PSBudWxsID8gMCA6IGFycmF5Lmxlbmd0aDtcbiAgICAgICAgICBpZiAoIWxlbmd0aCkge1xuICAgICAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgICAgIH1cbiAgICAgICAgICBuID0gZ3VhcmQgfHwgbiA9PT0gdW5kZWZpbmVkMiA/IDEgOiB0b0ludGVnZXIobik7XG4gICAgICAgICAgcmV0dXJuIGJhc2VTbGljZShhcnJheSwgbiA8IDAgPyAwIDogbiwgbGVuZ3RoKTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBkcm9wUmlnaHQoYXJyYXksIG4sIGd1YXJkKSB7XG4gICAgICAgICAgdmFyIGxlbmd0aCA9IGFycmF5ID09IG51bGwgPyAwIDogYXJyYXkubGVuZ3RoO1xuICAgICAgICAgIGlmICghbGVuZ3RoKSB7XG4gICAgICAgICAgICByZXR1cm4gW107XG4gICAgICAgICAgfVxuICAgICAgICAgIG4gPSBndWFyZCB8fCBuID09PSB1bmRlZmluZWQyID8gMSA6IHRvSW50ZWdlcihuKTtcbiAgICAgICAgICBuID0gbGVuZ3RoIC0gbjtcbiAgICAgICAgICByZXR1cm4gYmFzZVNsaWNlKGFycmF5LCAwLCBuIDwgMCA/IDAgOiBuKTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBkcm9wUmlnaHRXaGlsZShhcnJheSwgcHJlZGljYXRlKSB7XG4gICAgICAgICAgcmV0dXJuIGFycmF5ICYmIGFycmF5Lmxlbmd0aCA/IGJhc2VXaGlsZShhcnJheSwgZ2V0SXRlcmF0ZWUocHJlZGljYXRlLCAzKSwgdHJ1ZSwgdHJ1ZSkgOiBbXTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBkcm9wV2hpbGUoYXJyYXksIHByZWRpY2F0ZSkge1xuICAgICAgICAgIHJldHVybiBhcnJheSAmJiBhcnJheS5sZW5ndGggPyBiYXNlV2hpbGUoYXJyYXksIGdldEl0ZXJhdGVlKHByZWRpY2F0ZSwgMyksIHRydWUpIDogW107XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gZmlsbChhcnJheSwgdmFsdWUsIHN0YXJ0LCBlbmQpIHtcbiAgICAgICAgICB2YXIgbGVuZ3RoID0gYXJyYXkgPT0gbnVsbCA/IDAgOiBhcnJheS5sZW5ndGg7XG4gICAgICAgICAgaWYgKCFsZW5ndGgpIHtcbiAgICAgICAgICAgIHJldHVybiBbXTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHN0YXJ0ICYmIHR5cGVvZiBzdGFydCAhPSBcIm51bWJlclwiICYmIGlzSXRlcmF0ZWVDYWxsKGFycmF5LCB2YWx1ZSwgc3RhcnQpKSB7XG4gICAgICAgICAgICBzdGFydCA9IDA7XG4gICAgICAgICAgICBlbmQgPSBsZW5ndGg7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBiYXNlRmlsbChhcnJheSwgdmFsdWUsIHN0YXJ0LCBlbmQpO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGZpbmRJbmRleChhcnJheSwgcHJlZGljYXRlLCBmcm9tSW5kZXgpIHtcbiAgICAgICAgICB2YXIgbGVuZ3RoID0gYXJyYXkgPT0gbnVsbCA/IDAgOiBhcnJheS5sZW5ndGg7XG4gICAgICAgICAgaWYgKCFsZW5ndGgpIHtcbiAgICAgICAgICAgIHJldHVybiAtMTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdmFyIGluZGV4ID0gZnJvbUluZGV4ID09IG51bGwgPyAwIDogdG9JbnRlZ2VyKGZyb21JbmRleCk7XG4gICAgICAgICAgaWYgKGluZGV4IDwgMCkge1xuICAgICAgICAgICAgaW5kZXggPSBuYXRpdmVNYXgobGVuZ3RoICsgaW5kZXgsIDApO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gYmFzZUZpbmRJbmRleChhcnJheSwgZ2V0SXRlcmF0ZWUocHJlZGljYXRlLCAzKSwgaW5kZXgpO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGZpbmRMYXN0SW5kZXgoYXJyYXksIHByZWRpY2F0ZSwgZnJvbUluZGV4KSB7XG4gICAgICAgICAgdmFyIGxlbmd0aCA9IGFycmF5ID09IG51bGwgPyAwIDogYXJyYXkubGVuZ3RoO1xuICAgICAgICAgIGlmICghbGVuZ3RoKSB7XG4gICAgICAgICAgICByZXR1cm4gLTE7XG4gICAgICAgICAgfVxuICAgICAgICAgIHZhciBpbmRleCA9IGxlbmd0aCAtIDE7XG4gICAgICAgICAgaWYgKGZyb21JbmRleCAhPT0gdW5kZWZpbmVkMikge1xuICAgICAgICAgICAgaW5kZXggPSB0b0ludGVnZXIoZnJvbUluZGV4KTtcbiAgICAgICAgICAgIGluZGV4ID0gZnJvbUluZGV4IDwgMCA/IG5hdGl2ZU1heChsZW5ndGggKyBpbmRleCwgMCkgOiBuYXRpdmVNaW4oaW5kZXgsIGxlbmd0aCAtIDEpO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gYmFzZUZpbmRJbmRleChhcnJheSwgZ2V0SXRlcmF0ZWUocHJlZGljYXRlLCAzKSwgaW5kZXgsIHRydWUpO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGZsYXR0ZW4oYXJyYXkpIHtcbiAgICAgICAgICB2YXIgbGVuZ3RoID0gYXJyYXkgPT0gbnVsbCA/IDAgOiBhcnJheS5sZW5ndGg7XG4gICAgICAgICAgcmV0dXJuIGxlbmd0aCA/IGJhc2VGbGF0dGVuKGFycmF5LCAxKSA6IFtdO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGZsYXR0ZW5EZWVwKGFycmF5KSB7XG4gICAgICAgICAgdmFyIGxlbmd0aCA9IGFycmF5ID09IG51bGwgPyAwIDogYXJyYXkubGVuZ3RoO1xuICAgICAgICAgIHJldHVybiBsZW5ndGggPyBiYXNlRmxhdHRlbihhcnJheSwgSU5GSU5JVFkpIDogW107XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gZmxhdHRlbkRlcHRoKGFycmF5LCBkZXB0aCkge1xuICAgICAgICAgIHZhciBsZW5ndGggPSBhcnJheSA9PSBudWxsID8gMCA6IGFycmF5Lmxlbmd0aDtcbiAgICAgICAgICBpZiAoIWxlbmd0aCkge1xuICAgICAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgICAgIH1cbiAgICAgICAgICBkZXB0aCA9IGRlcHRoID09PSB1bmRlZmluZWQyID8gMSA6IHRvSW50ZWdlcihkZXB0aCk7XG4gICAgICAgICAgcmV0dXJuIGJhc2VGbGF0dGVuKGFycmF5LCBkZXB0aCk7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gZnJvbVBhaXJzKHBhaXJzKSB7XG4gICAgICAgICAgdmFyIGluZGV4ID0gLTEsIGxlbmd0aCA9IHBhaXJzID09IG51bGwgPyAwIDogcGFpcnMubGVuZ3RoLCByZXN1bHQyID0ge307XG4gICAgICAgICAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICAgICAgICAgIHZhciBwYWlyID0gcGFpcnNbaW5kZXhdO1xuICAgICAgICAgICAgcmVzdWx0MltwYWlyWzBdXSA9IHBhaXJbMV07XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiByZXN1bHQyO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGhlYWQoYXJyYXkpIHtcbiAgICAgICAgICByZXR1cm4gYXJyYXkgJiYgYXJyYXkubGVuZ3RoID8gYXJyYXlbMF0gOiB1bmRlZmluZWQyO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGluZGV4T2YoYXJyYXksIHZhbHVlLCBmcm9tSW5kZXgpIHtcbiAgICAgICAgICB2YXIgbGVuZ3RoID0gYXJyYXkgPT0gbnVsbCA/IDAgOiBhcnJheS5sZW5ndGg7XG4gICAgICAgICAgaWYgKCFsZW5ndGgpIHtcbiAgICAgICAgICAgIHJldHVybiAtMTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdmFyIGluZGV4ID0gZnJvbUluZGV4ID09IG51bGwgPyAwIDogdG9JbnRlZ2VyKGZyb21JbmRleCk7XG4gICAgICAgICAgaWYgKGluZGV4IDwgMCkge1xuICAgICAgICAgICAgaW5kZXggPSBuYXRpdmVNYXgobGVuZ3RoICsgaW5kZXgsIDApO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gYmFzZUluZGV4T2YoYXJyYXksIHZhbHVlLCBpbmRleCk7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gaW5pdGlhbChhcnJheSkge1xuICAgICAgICAgIHZhciBsZW5ndGggPSBhcnJheSA9PSBudWxsID8gMCA6IGFycmF5Lmxlbmd0aDtcbiAgICAgICAgICByZXR1cm4gbGVuZ3RoID8gYmFzZVNsaWNlKGFycmF5LCAwLCAtMSkgOiBbXTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgaW50ZXJzZWN0aW9uID0gYmFzZVJlc3QoZnVuY3Rpb24oYXJyYXlzKSB7XG4gICAgICAgICAgdmFyIG1hcHBlZCA9IGFycmF5TWFwKGFycmF5cywgY2FzdEFycmF5TGlrZU9iamVjdCk7XG4gICAgICAgICAgcmV0dXJuIG1hcHBlZC5sZW5ndGggJiYgbWFwcGVkWzBdID09PSBhcnJheXNbMF0gPyBiYXNlSW50ZXJzZWN0aW9uKG1hcHBlZCkgOiBbXTtcbiAgICAgICAgfSk7XG4gICAgICAgIHZhciBpbnRlcnNlY3Rpb25CeSA9IGJhc2VSZXN0KGZ1bmN0aW9uKGFycmF5cykge1xuICAgICAgICAgIHZhciBpdGVyYXRlZTIgPSBsYXN0KGFycmF5cyksIG1hcHBlZCA9IGFycmF5TWFwKGFycmF5cywgY2FzdEFycmF5TGlrZU9iamVjdCk7XG4gICAgICAgICAgaWYgKGl0ZXJhdGVlMiA9PT0gbGFzdChtYXBwZWQpKSB7XG4gICAgICAgICAgICBpdGVyYXRlZTIgPSB1bmRlZmluZWQyO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBtYXBwZWQucG9wKCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBtYXBwZWQubGVuZ3RoICYmIG1hcHBlZFswXSA9PT0gYXJyYXlzWzBdID8gYmFzZUludGVyc2VjdGlvbihtYXBwZWQsIGdldEl0ZXJhdGVlKGl0ZXJhdGVlMiwgMikpIDogW107XG4gICAgICAgIH0pO1xuICAgICAgICB2YXIgaW50ZXJzZWN0aW9uV2l0aCA9IGJhc2VSZXN0KGZ1bmN0aW9uKGFycmF5cykge1xuICAgICAgICAgIHZhciBjb21wYXJhdG9yID0gbGFzdChhcnJheXMpLCBtYXBwZWQgPSBhcnJheU1hcChhcnJheXMsIGNhc3RBcnJheUxpa2VPYmplY3QpO1xuICAgICAgICAgIGNvbXBhcmF0b3IgPSB0eXBlb2YgY29tcGFyYXRvciA9PSBcImZ1bmN0aW9uXCIgPyBjb21wYXJhdG9yIDogdW5kZWZpbmVkMjtcbiAgICAgICAgICBpZiAoY29tcGFyYXRvcikge1xuICAgICAgICAgICAgbWFwcGVkLnBvcCgpO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gbWFwcGVkLmxlbmd0aCAmJiBtYXBwZWRbMF0gPT09IGFycmF5c1swXSA/IGJhc2VJbnRlcnNlY3Rpb24obWFwcGVkLCB1bmRlZmluZWQyLCBjb21wYXJhdG9yKSA6IFtdO1xuICAgICAgICB9KTtcbiAgICAgICAgZnVuY3Rpb24gam9pbihhcnJheSwgc2VwYXJhdG9yKSB7XG4gICAgICAgICAgcmV0dXJuIGFycmF5ID09IG51bGwgPyBcIlwiIDogbmF0aXZlSm9pbi5jYWxsKGFycmF5LCBzZXBhcmF0b3IpO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGxhc3QoYXJyYXkpIHtcbiAgICAgICAgICB2YXIgbGVuZ3RoID0gYXJyYXkgPT0gbnVsbCA/IDAgOiBhcnJheS5sZW5ndGg7XG4gICAgICAgICAgcmV0dXJuIGxlbmd0aCA/IGFycmF5W2xlbmd0aCAtIDFdIDogdW5kZWZpbmVkMjtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBsYXN0SW5kZXhPZihhcnJheSwgdmFsdWUsIGZyb21JbmRleCkge1xuICAgICAgICAgIHZhciBsZW5ndGggPSBhcnJheSA9PSBudWxsID8gMCA6IGFycmF5Lmxlbmd0aDtcbiAgICAgICAgICBpZiAoIWxlbmd0aCkge1xuICAgICAgICAgICAgcmV0dXJuIC0xO1xuICAgICAgICAgIH1cbiAgICAgICAgICB2YXIgaW5kZXggPSBsZW5ndGg7XG4gICAgICAgICAgaWYgKGZyb21JbmRleCAhPT0gdW5kZWZpbmVkMikge1xuICAgICAgICAgICAgaW5kZXggPSB0b0ludGVnZXIoZnJvbUluZGV4KTtcbiAgICAgICAgICAgIGluZGV4ID0gaW5kZXggPCAwID8gbmF0aXZlTWF4KGxlbmd0aCArIGluZGV4LCAwKSA6IG5hdGl2ZU1pbihpbmRleCwgbGVuZ3RoIC0gMSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiB2YWx1ZSA9PT0gdmFsdWUgPyBzdHJpY3RMYXN0SW5kZXhPZihhcnJheSwgdmFsdWUsIGluZGV4KSA6IGJhc2VGaW5kSW5kZXgoYXJyYXksIGJhc2VJc05hTiwgaW5kZXgsIHRydWUpO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIG50aChhcnJheSwgbikge1xuICAgICAgICAgIHJldHVybiBhcnJheSAmJiBhcnJheS5sZW5ndGggPyBiYXNlTnRoKGFycmF5LCB0b0ludGVnZXIobikpIDogdW5kZWZpbmVkMjtcbiAgICAgICAgfVxuICAgICAgICB2YXIgcHVsbCA9IGJhc2VSZXN0KHB1bGxBbGwpO1xuICAgICAgICBmdW5jdGlvbiBwdWxsQWxsKGFycmF5LCB2YWx1ZXMyKSB7XG4gICAgICAgICAgcmV0dXJuIGFycmF5ICYmIGFycmF5Lmxlbmd0aCAmJiB2YWx1ZXMyICYmIHZhbHVlczIubGVuZ3RoID8gYmFzZVB1bGxBbGwoYXJyYXksIHZhbHVlczIpIDogYXJyYXk7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gcHVsbEFsbEJ5KGFycmF5LCB2YWx1ZXMyLCBpdGVyYXRlZTIpIHtcbiAgICAgICAgICByZXR1cm4gYXJyYXkgJiYgYXJyYXkubGVuZ3RoICYmIHZhbHVlczIgJiYgdmFsdWVzMi5sZW5ndGggPyBiYXNlUHVsbEFsbChhcnJheSwgdmFsdWVzMiwgZ2V0SXRlcmF0ZWUoaXRlcmF0ZWUyLCAyKSkgOiBhcnJheTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBwdWxsQWxsV2l0aChhcnJheSwgdmFsdWVzMiwgY29tcGFyYXRvcikge1xuICAgICAgICAgIHJldHVybiBhcnJheSAmJiBhcnJheS5sZW5ndGggJiYgdmFsdWVzMiAmJiB2YWx1ZXMyLmxlbmd0aCA/IGJhc2VQdWxsQWxsKGFycmF5LCB2YWx1ZXMyLCB1bmRlZmluZWQyLCBjb21wYXJhdG9yKSA6IGFycmF5O1xuICAgICAgICB9XG4gICAgICAgIHZhciBwdWxsQXQgPSBmbGF0UmVzdChmdW5jdGlvbihhcnJheSwgaW5kZXhlcykge1xuICAgICAgICAgIHZhciBsZW5ndGggPSBhcnJheSA9PSBudWxsID8gMCA6IGFycmF5Lmxlbmd0aCwgcmVzdWx0MiA9IGJhc2VBdChhcnJheSwgaW5kZXhlcyk7XG4gICAgICAgICAgYmFzZVB1bGxBdChhcnJheSwgYXJyYXlNYXAoaW5kZXhlcywgZnVuY3Rpb24oaW5kZXgpIHtcbiAgICAgICAgICAgIHJldHVybiBpc0luZGV4KGluZGV4LCBsZW5ndGgpID8gK2luZGV4IDogaW5kZXg7XG4gICAgICAgICAgfSkuc29ydChjb21wYXJlQXNjZW5kaW5nKSk7XG4gICAgICAgICAgcmV0dXJuIHJlc3VsdDI7XG4gICAgICAgIH0pO1xuICAgICAgICBmdW5jdGlvbiByZW1vdmUoYXJyYXksIHByZWRpY2F0ZSkge1xuICAgICAgICAgIHZhciByZXN1bHQyID0gW107XG4gICAgICAgICAgaWYgKCEoYXJyYXkgJiYgYXJyYXkubGVuZ3RoKSkge1xuICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDI7XG4gICAgICAgICAgfVxuICAgICAgICAgIHZhciBpbmRleCA9IC0xLCBpbmRleGVzID0gW10sIGxlbmd0aCA9IGFycmF5Lmxlbmd0aDtcbiAgICAgICAgICBwcmVkaWNhdGUgPSBnZXRJdGVyYXRlZShwcmVkaWNhdGUsIDMpO1xuICAgICAgICAgIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgICAgICAgICB2YXIgdmFsdWUgPSBhcnJheVtpbmRleF07XG4gICAgICAgICAgICBpZiAocHJlZGljYXRlKHZhbHVlLCBpbmRleCwgYXJyYXkpKSB7XG4gICAgICAgICAgICAgIHJlc3VsdDIucHVzaCh2YWx1ZSk7XG4gICAgICAgICAgICAgIGluZGV4ZXMucHVzaChpbmRleCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIGJhc2VQdWxsQXQoYXJyYXksIGluZGV4ZXMpO1xuICAgICAgICAgIHJldHVybiByZXN1bHQyO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIHJldmVyc2UoYXJyYXkpIHtcbiAgICAgICAgICByZXR1cm4gYXJyYXkgPT0gbnVsbCA/IGFycmF5IDogbmF0aXZlUmV2ZXJzZS5jYWxsKGFycmF5KTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBzbGljZShhcnJheSwgc3RhcnQsIGVuZCkge1xuICAgICAgICAgIHZhciBsZW5ndGggPSBhcnJheSA9PSBudWxsID8gMCA6IGFycmF5Lmxlbmd0aDtcbiAgICAgICAgICBpZiAoIWxlbmd0aCkge1xuICAgICAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoZW5kICYmIHR5cGVvZiBlbmQgIT0gXCJudW1iZXJcIiAmJiBpc0l0ZXJhdGVlQ2FsbChhcnJheSwgc3RhcnQsIGVuZCkpIHtcbiAgICAgICAgICAgIHN0YXJ0ID0gMDtcbiAgICAgICAgICAgIGVuZCA9IGxlbmd0aDtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgc3RhcnQgPSBzdGFydCA9PSBudWxsID8gMCA6IHRvSW50ZWdlcihzdGFydCk7XG4gICAgICAgICAgICBlbmQgPSBlbmQgPT09IHVuZGVmaW5lZDIgPyBsZW5ndGggOiB0b0ludGVnZXIoZW5kKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIGJhc2VTbGljZShhcnJheSwgc3RhcnQsIGVuZCk7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gc29ydGVkSW5kZXgoYXJyYXksIHZhbHVlKSB7XG4gICAgICAgICAgcmV0dXJuIGJhc2VTb3J0ZWRJbmRleChhcnJheSwgdmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIHNvcnRlZEluZGV4QnkoYXJyYXksIHZhbHVlLCBpdGVyYXRlZTIpIHtcbiAgICAgICAgICByZXR1cm4gYmFzZVNvcnRlZEluZGV4QnkoYXJyYXksIHZhbHVlLCBnZXRJdGVyYXRlZShpdGVyYXRlZTIsIDIpKTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBzb3J0ZWRJbmRleE9mKGFycmF5LCB2YWx1ZSkge1xuICAgICAgICAgIHZhciBsZW5ndGggPSBhcnJheSA9PSBudWxsID8gMCA6IGFycmF5Lmxlbmd0aDtcbiAgICAgICAgICBpZiAobGVuZ3RoKSB7XG4gICAgICAgICAgICB2YXIgaW5kZXggPSBiYXNlU29ydGVkSW5kZXgoYXJyYXksIHZhbHVlKTtcbiAgICAgICAgICAgIGlmIChpbmRleCA8IGxlbmd0aCAmJiBlcShhcnJheVtpbmRleF0sIHZhbHVlKSkge1xuICAgICAgICAgICAgICByZXR1cm4gaW5kZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiAtMTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBzb3J0ZWRMYXN0SW5kZXgoYXJyYXksIHZhbHVlKSB7XG4gICAgICAgICAgcmV0dXJuIGJhc2VTb3J0ZWRJbmRleChhcnJheSwgdmFsdWUsIHRydWUpO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIHNvcnRlZExhc3RJbmRleEJ5KGFycmF5LCB2YWx1ZSwgaXRlcmF0ZWUyKSB7XG4gICAgICAgICAgcmV0dXJuIGJhc2VTb3J0ZWRJbmRleEJ5KGFycmF5LCB2YWx1ZSwgZ2V0SXRlcmF0ZWUoaXRlcmF0ZWUyLCAyKSwgdHJ1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gc29ydGVkTGFzdEluZGV4T2YoYXJyYXksIHZhbHVlKSB7XG4gICAgICAgICAgdmFyIGxlbmd0aCA9IGFycmF5ID09IG51bGwgPyAwIDogYXJyYXkubGVuZ3RoO1xuICAgICAgICAgIGlmIChsZW5ndGgpIHtcbiAgICAgICAgICAgIHZhciBpbmRleCA9IGJhc2VTb3J0ZWRJbmRleChhcnJheSwgdmFsdWUsIHRydWUpIC0gMTtcbiAgICAgICAgICAgIGlmIChlcShhcnJheVtpbmRleF0sIHZhbHVlKSkge1xuICAgICAgICAgICAgICByZXR1cm4gaW5kZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiAtMTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBzb3J0ZWRVbmlxKGFycmF5KSB7XG4gICAgICAgICAgcmV0dXJuIGFycmF5ICYmIGFycmF5Lmxlbmd0aCA/IGJhc2VTb3J0ZWRVbmlxKGFycmF5KSA6IFtdO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIHNvcnRlZFVuaXFCeShhcnJheSwgaXRlcmF0ZWUyKSB7XG4gICAgICAgICAgcmV0dXJuIGFycmF5ICYmIGFycmF5Lmxlbmd0aCA/IGJhc2VTb3J0ZWRVbmlxKGFycmF5LCBnZXRJdGVyYXRlZShpdGVyYXRlZTIsIDIpKSA6IFtdO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIHRhaWwoYXJyYXkpIHtcbiAgICAgICAgICB2YXIgbGVuZ3RoID0gYXJyYXkgPT0gbnVsbCA/IDAgOiBhcnJheS5sZW5ndGg7XG4gICAgICAgICAgcmV0dXJuIGxlbmd0aCA/IGJhc2VTbGljZShhcnJheSwgMSwgbGVuZ3RoKSA6IFtdO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIHRha2UoYXJyYXksIG4sIGd1YXJkKSB7XG4gICAgICAgICAgaWYgKCEoYXJyYXkgJiYgYXJyYXkubGVuZ3RoKSkge1xuICAgICAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgICAgIH1cbiAgICAgICAgICBuID0gZ3VhcmQgfHwgbiA9PT0gdW5kZWZpbmVkMiA/IDEgOiB0b0ludGVnZXIobik7XG4gICAgICAgICAgcmV0dXJuIGJhc2VTbGljZShhcnJheSwgMCwgbiA8IDAgPyAwIDogbik7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gdGFrZVJpZ2h0KGFycmF5LCBuLCBndWFyZCkge1xuICAgICAgICAgIHZhciBsZW5ndGggPSBhcnJheSA9PSBudWxsID8gMCA6IGFycmF5Lmxlbmd0aDtcbiAgICAgICAgICBpZiAoIWxlbmd0aCkge1xuICAgICAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgICAgIH1cbiAgICAgICAgICBuID0gZ3VhcmQgfHwgbiA9PT0gdW5kZWZpbmVkMiA/IDEgOiB0b0ludGVnZXIobik7XG4gICAgICAgICAgbiA9IGxlbmd0aCAtIG47XG4gICAgICAgICAgcmV0dXJuIGJhc2VTbGljZShhcnJheSwgbiA8IDAgPyAwIDogbiwgbGVuZ3RoKTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiB0YWtlUmlnaHRXaGlsZShhcnJheSwgcHJlZGljYXRlKSB7XG4gICAgICAgICAgcmV0dXJuIGFycmF5ICYmIGFycmF5Lmxlbmd0aCA/IGJhc2VXaGlsZShhcnJheSwgZ2V0SXRlcmF0ZWUocHJlZGljYXRlLCAzKSwgZmFsc2UsIHRydWUpIDogW107XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gdGFrZVdoaWxlKGFycmF5LCBwcmVkaWNhdGUpIHtcbiAgICAgICAgICByZXR1cm4gYXJyYXkgJiYgYXJyYXkubGVuZ3RoID8gYmFzZVdoaWxlKGFycmF5LCBnZXRJdGVyYXRlZShwcmVkaWNhdGUsIDMpKSA6IFtdO1xuICAgICAgICB9XG4gICAgICAgIHZhciB1bmlvbiA9IGJhc2VSZXN0KGZ1bmN0aW9uKGFycmF5cykge1xuICAgICAgICAgIHJldHVybiBiYXNlVW5pcShiYXNlRmxhdHRlbihhcnJheXMsIDEsIGlzQXJyYXlMaWtlT2JqZWN0LCB0cnVlKSk7XG4gICAgICAgIH0pO1xuICAgICAgICB2YXIgdW5pb25CeSA9IGJhc2VSZXN0KGZ1bmN0aW9uKGFycmF5cykge1xuICAgICAgICAgIHZhciBpdGVyYXRlZTIgPSBsYXN0KGFycmF5cyk7XG4gICAgICAgICAgaWYgKGlzQXJyYXlMaWtlT2JqZWN0KGl0ZXJhdGVlMikpIHtcbiAgICAgICAgICAgIGl0ZXJhdGVlMiA9IHVuZGVmaW5lZDI7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBiYXNlVW5pcShiYXNlRmxhdHRlbihhcnJheXMsIDEsIGlzQXJyYXlMaWtlT2JqZWN0LCB0cnVlKSwgZ2V0SXRlcmF0ZWUoaXRlcmF0ZWUyLCAyKSk7XG4gICAgICAgIH0pO1xuICAgICAgICB2YXIgdW5pb25XaXRoID0gYmFzZVJlc3QoZnVuY3Rpb24oYXJyYXlzKSB7XG4gICAgICAgICAgdmFyIGNvbXBhcmF0b3IgPSBsYXN0KGFycmF5cyk7XG4gICAgICAgICAgY29tcGFyYXRvciA9IHR5cGVvZiBjb21wYXJhdG9yID09IFwiZnVuY3Rpb25cIiA/IGNvbXBhcmF0b3IgOiB1bmRlZmluZWQyO1xuICAgICAgICAgIHJldHVybiBiYXNlVW5pcShiYXNlRmxhdHRlbihhcnJheXMsIDEsIGlzQXJyYXlMaWtlT2JqZWN0LCB0cnVlKSwgdW5kZWZpbmVkMiwgY29tcGFyYXRvcik7XG4gICAgICAgIH0pO1xuICAgICAgICBmdW5jdGlvbiB1bmlxKGFycmF5KSB7XG4gICAgICAgICAgcmV0dXJuIGFycmF5ICYmIGFycmF5Lmxlbmd0aCA/IGJhc2VVbmlxKGFycmF5KSA6IFtdO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIHVuaXFCeShhcnJheSwgaXRlcmF0ZWUyKSB7XG4gICAgICAgICAgcmV0dXJuIGFycmF5ICYmIGFycmF5Lmxlbmd0aCA/IGJhc2VVbmlxKGFycmF5LCBnZXRJdGVyYXRlZShpdGVyYXRlZTIsIDIpKSA6IFtdO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIHVuaXFXaXRoKGFycmF5LCBjb21wYXJhdG9yKSB7XG4gICAgICAgICAgY29tcGFyYXRvciA9IHR5cGVvZiBjb21wYXJhdG9yID09IFwiZnVuY3Rpb25cIiA/IGNvbXBhcmF0b3IgOiB1bmRlZmluZWQyO1xuICAgICAgICAgIHJldHVybiBhcnJheSAmJiBhcnJheS5sZW5ndGggPyBiYXNlVW5pcShhcnJheSwgdW5kZWZpbmVkMiwgY29tcGFyYXRvcikgOiBbXTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiB1bnppcChhcnJheSkge1xuICAgICAgICAgIGlmICghKGFycmF5ICYmIGFycmF5Lmxlbmd0aCkpIHtcbiAgICAgICAgICAgIHJldHVybiBbXTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdmFyIGxlbmd0aCA9IDA7XG4gICAgICAgICAgYXJyYXkgPSBhcnJheUZpbHRlcihhcnJheSwgZnVuY3Rpb24oZ3JvdXApIHtcbiAgICAgICAgICAgIGlmIChpc0FycmF5TGlrZU9iamVjdChncm91cCkpIHtcbiAgICAgICAgICAgICAgbGVuZ3RoID0gbmF0aXZlTWF4KGdyb3VwLmxlbmd0aCwgbGVuZ3RoKTtcbiAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgcmV0dXJuIGJhc2VUaW1lcyhsZW5ndGgsIGZ1bmN0aW9uKGluZGV4KSB7XG4gICAgICAgICAgICByZXR1cm4gYXJyYXlNYXAoYXJyYXksIGJhc2VQcm9wZXJ0eShpbmRleCkpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIHVuemlwV2l0aChhcnJheSwgaXRlcmF0ZWUyKSB7XG4gICAgICAgICAgaWYgKCEoYXJyYXkgJiYgYXJyYXkubGVuZ3RoKSkge1xuICAgICAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgICAgIH1cbiAgICAgICAgICB2YXIgcmVzdWx0MiA9IHVuemlwKGFycmF5KTtcbiAgICAgICAgICBpZiAoaXRlcmF0ZWUyID09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiByZXN1bHQyO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gYXJyYXlNYXAocmVzdWx0MiwgZnVuY3Rpb24oZ3JvdXApIHtcbiAgICAgICAgICAgIHJldHVybiBhcHBseShpdGVyYXRlZTIsIHVuZGVmaW5lZDIsIGdyb3VwKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgd2l0aG91dCA9IGJhc2VSZXN0KGZ1bmN0aW9uKGFycmF5LCB2YWx1ZXMyKSB7XG4gICAgICAgICAgcmV0dXJuIGlzQXJyYXlMaWtlT2JqZWN0KGFycmF5KSA/IGJhc2VEaWZmZXJlbmNlKGFycmF5LCB2YWx1ZXMyKSA6IFtdO1xuICAgICAgICB9KTtcbiAgICAgICAgdmFyIHhvciA9IGJhc2VSZXN0KGZ1bmN0aW9uKGFycmF5cykge1xuICAgICAgICAgIHJldHVybiBiYXNlWG9yKGFycmF5RmlsdGVyKGFycmF5cywgaXNBcnJheUxpa2VPYmplY3QpKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHZhciB4b3JCeSA9IGJhc2VSZXN0KGZ1bmN0aW9uKGFycmF5cykge1xuICAgICAgICAgIHZhciBpdGVyYXRlZTIgPSBsYXN0KGFycmF5cyk7XG4gICAgICAgICAgaWYgKGlzQXJyYXlMaWtlT2JqZWN0KGl0ZXJhdGVlMikpIHtcbiAgICAgICAgICAgIGl0ZXJhdGVlMiA9IHVuZGVmaW5lZDI7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBiYXNlWG9yKGFycmF5RmlsdGVyKGFycmF5cywgaXNBcnJheUxpa2VPYmplY3QpLCBnZXRJdGVyYXRlZShpdGVyYXRlZTIsIDIpKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHZhciB4b3JXaXRoID0gYmFzZVJlc3QoZnVuY3Rpb24oYXJyYXlzKSB7XG4gICAgICAgICAgdmFyIGNvbXBhcmF0b3IgPSBsYXN0KGFycmF5cyk7XG4gICAgICAgICAgY29tcGFyYXRvciA9IHR5cGVvZiBjb21wYXJhdG9yID09IFwiZnVuY3Rpb25cIiA/IGNvbXBhcmF0b3IgOiB1bmRlZmluZWQyO1xuICAgICAgICAgIHJldHVybiBiYXNlWG9yKGFycmF5RmlsdGVyKGFycmF5cywgaXNBcnJheUxpa2VPYmplY3QpLCB1bmRlZmluZWQyLCBjb21wYXJhdG9yKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHZhciB6aXAgPSBiYXNlUmVzdCh1bnppcCk7XG4gICAgICAgIGZ1bmN0aW9uIHppcE9iamVjdChwcm9wcywgdmFsdWVzMikge1xuICAgICAgICAgIHJldHVybiBiYXNlWmlwT2JqZWN0KHByb3BzIHx8IFtdLCB2YWx1ZXMyIHx8IFtdLCBhc3NpZ25WYWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gemlwT2JqZWN0RGVlcChwcm9wcywgdmFsdWVzMikge1xuICAgICAgICAgIHJldHVybiBiYXNlWmlwT2JqZWN0KHByb3BzIHx8IFtdLCB2YWx1ZXMyIHx8IFtdLCBiYXNlU2V0KTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgemlwV2l0aCA9IGJhc2VSZXN0KGZ1bmN0aW9uKGFycmF5cykge1xuICAgICAgICAgIHZhciBsZW5ndGggPSBhcnJheXMubGVuZ3RoLCBpdGVyYXRlZTIgPSBsZW5ndGggPiAxID8gYXJyYXlzW2xlbmd0aCAtIDFdIDogdW5kZWZpbmVkMjtcbiAgICAgICAgICBpdGVyYXRlZTIgPSB0eXBlb2YgaXRlcmF0ZWUyID09IFwiZnVuY3Rpb25cIiA/IChhcnJheXMucG9wKCksIGl0ZXJhdGVlMikgOiB1bmRlZmluZWQyO1xuICAgICAgICAgIHJldHVybiB1bnppcFdpdGgoYXJyYXlzLCBpdGVyYXRlZTIpO1xuICAgICAgICB9KTtcbiAgICAgICAgZnVuY3Rpb24gY2hhaW4odmFsdWUpIHtcbiAgICAgICAgICB2YXIgcmVzdWx0MiA9IGxvZGFzaCh2YWx1ZSk7XG4gICAgICAgICAgcmVzdWx0Mi5fX2NoYWluX18gPSB0cnVlO1xuICAgICAgICAgIHJldHVybiByZXN1bHQyO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIHRhcCh2YWx1ZSwgaW50ZXJjZXB0b3IpIHtcbiAgICAgICAgICBpbnRlcmNlcHRvcih2YWx1ZSk7XG4gICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIHRocnUodmFsdWUsIGludGVyY2VwdG9yKSB7XG4gICAgICAgICAgcmV0dXJuIGludGVyY2VwdG9yKHZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgd3JhcHBlckF0ID0gZmxhdFJlc3QoZnVuY3Rpb24ocGF0aHMpIHtcbiAgICAgICAgICB2YXIgbGVuZ3RoID0gcGF0aHMubGVuZ3RoLCBzdGFydCA9IGxlbmd0aCA/IHBhdGhzWzBdIDogMCwgdmFsdWUgPSB0aGlzLl9fd3JhcHBlZF9fLCBpbnRlcmNlcHRvciA9IGZ1bmN0aW9uKG9iamVjdCkge1xuICAgICAgICAgICAgcmV0dXJuIGJhc2VBdChvYmplY3QsIHBhdGhzKTtcbiAgICAgICAgICB9O1xuICAgICAgICAgIGlmIChsZW5ndGggPiAxIHx8IHRoaXMuX19hY3Rpb25zX18ubGVuZ3RoIHx8ICEodmFsdWUgaW5zdGFuY2VvZiBMYXp5V3JhcHBlcikgfHwgIWlzSW5kZXgoc3RhcnQpKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy50aHJ1KGludGVyY2VwdG9yKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdmFsdWUgPSB2YWx1ZS5zbGljZShzdGFydCwgK3N0YXJ0ICsgKGxlbmd0aCA/IDEgOiAwKSk7XG4gICAgICAgICAgdmFsdWUuX19hY3Rpb25zX18ucHVzaCh7XG4gICAgICAgICAgICBcImZ1bmNcIjogdGhydSxcbiAgICAgICAgICAgIFwiYXJnc1wiOiBbaW50ZXJjZXB0b3JdLFxuICAgICAgICAgICAgXCJ0aGlzQXJnXCI6IHVuZGVmaW5lZDJcbiAgICAgICAgICB9KTtcbiAgICAgICAgICByZXR1cm4gbmV3IExvZGFzaFdyYXBwZXIodmFsdWUsIHRoaXMuX19jaGFpbl9fKS50aHJ1KGZ1bmN0aW9uKGFycmF5KSB7XG4gICAgICAgICAgICBpZiAobGVuZ3RoICYmICFhcnJheS5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgYXJyYXkucHVzaCh1bmRlZmluZWQyKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBhcnJheTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgICAgIGZ1bmN0aW9uIHdyYXBwZXJDaGFpbigpIHtcbiAgICAgICAgICByZXR1cm4gY2hhaW4odGhpcyk7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gd3JhcHBlckNvbW1pdCgpIHtcbiAgICAgICAgICByZXR1cm4gbmV3IExvZGFzaFdyYXBwZXIodGhpcy52YWx1ZSgpLCB0aGlzLl9fY2hhaW5fXyk7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gd3JhcHBlck5leHQoKSB7XG4gICAgICAgICAgaWYgKHRoaXMuX192YWx1ZXNfXyA9PT0gdW5kZWZpbmVkMikge1xuICAgICAgICAgICAgdGhpcy5fX3ZhbHVlc19fID0gdG9BcnJheSh0aGlzLnZhbHVlKCkpO1xuICAgICAgICAgIH1cbiAgICAgICAgICB2YXIgZG9uZSA9IHRoaXMuX19pbmRleF9fID49IHRoaXMuX192YWx1ZXNfXy5sZW5ndGgsIHZhbHVlID0gZG9uZSA/IHVuZGVmaW5lZDIgOiB0aGlzLl9fdmFsdWVzX19bdGhpcy5fX2luZGV4X18rK107XG4gICAgICAgICAgcmV0dXJuIHsgXCJkb25lXCI6IGRvbmUsIFwidmFsdWVcIjogdmFsdWUgfTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiB3cmFwcGVyVG9JdGVyYXRvcigpIHtcbiAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiB3cmFwcGVyUGxhbnQodmFsdWUpIHtcbiAgICAgICAgICB2YXIgcmVzdWx0MiwgcGFyZW50MiA9IHRoaXM7XG4gICAgICAgICAgd2hpbGUgKHBhcmVudDIgaW5zdGFuY2VvZiBiYXNlTG9kYXNoKSB7XG4gICAgICAgICAgICB2YXIgY2xvbmUyID0gd3JhcHBlckNsb25lKHBhcmVudDIpO1xuICAgICAgICAgICAgY2xvbmUyLl9faW5kZXhfXyA9IDA7XG4gICAgICAgICAgICBjbG9uZTIuX192YWx1ZXNfXyA9IHVuZGVmaW5lZDI7XG4gICAgICAgICAgICBpZiAocmVzdWx0Mikge1xuICAgICAgICAgICAgICBwcmV2aW91cy5fX3dyYXBwZWRfXyA9IGNsb25lMjtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHJlc3VsdDIgPSBjbG9uZTI7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB2YXIgcHJldmlvdXMgPSBjbG9uZTI7XG4gICAgICAgICAgICBwYXJlbnQyID0gcGFyZW50Mi5fX3dyYXBwZWRfXztcbiAgICAgICAgICB9XG4gICAgICAgICAgcHJldmlvdXMuX193cmFwcGVkX18gPSB2YWx1ZTtcbiAgICAgICAgICByZXR1cm4gcmVzdWx0MjtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiB3cmFwcGVyUmV2ZXJzZSgpIHtcbiAgICAgICAgICB2YXIgdmFsdWUgPSB0aGlzLl9fd3JhcHBlZF9fO1xuICAgICAgICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIExhenlXcmFwcGVyKSB7XG4gICAgICAgICAgICB2YXIgd3JhcHBlZCA9IHZhbHVlO1xuICAgICAgICAgICAgaWYgKHRoaXMuX19hY3Rpb25zX18ubGVuZ3RoKSB7XG4gICAgICAgICAgICAgIHdyYXBwZWQgPSBuZXcgTGF6eVdyYXBwZXIodGhpcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB3cmFwcGVkID0gd3JhcHBlZC5yZXZlcnNlKCk7XG4gICAgICAgICAgICB3cmFwcGVkLl9fYWN0aW9uc19fLnB1c2goe1xuICAgICAgICAgICAgICBcImZ1bmNcIjogdGhydSxcbiAgICAgICAgICAgICAgXCJhcmdzXCI6IFtyZXZlcnNlXSxcbiAgICAgICAgICAgICAgXCJ0aGlzQXJnXCI6IHVuZGVmaW5lZDJcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBMb2Rhc2hXcmFwcGVyKHdyYXBwZWQsIHRoaXMuX19jaGFpbl9fKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHRoaXMudGhydShyZXZlcnNlKTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiB3cmFwcGVyVmFsdWUoKSB7XG4gICAgICAgICAgcmV0dXJuIGJhc2VXcmFwcGVyVmFsdWUodGhpcy5fX3dyYXBwZWRfXywgdGhpcy5fX2FjdGlvbnNfXyk7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGNvdW50QnkgPSBjcmVhdGVBZ2dyZWdhdG9yKGZ1bmN0aW9uKHJlc3VsdDIsIHZhbHVlLCBrZXkpIHtcbiAgICAgICAgICBpZiAoaGFzT3duUHJvcGVydHkuY2FsbChyZXN1bHQyLCBrZXkpKSB7XG4gICAgICAgICAgICArK3Jlc3VsdDJba2V5XTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgYmFzZUFzc2lnblZhbHVlKHJlc3VsdDIsIGtleSwgMSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgZnVuY3Rpb24gZXZlcnkoY29sbGVjdGlvbiwgcHJlZGljYXRlLCBndWFyZCkge1xuICAgICAgICAgIHZhciBmdW5jID0gaXNBcnJheShjb2xsZWN0aW9uKSA/IGFycmF5RXZlcnkgOiBiYXNlRXZlcnk7XG4gICAgICAgICAgaWYgKGd1YXJkICYmIGlzSXRlcmF0ZWVDYWxsKGNvbGxlY3Rpb24sIHByZWRpY2F0ZSwgZ3VhcmQpKSB7XG4gICAgICAgICAgICBwcmVkaWNhdGUgPSB1bmRlZmluZWQyO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gZnVuYyhjb2xsZWN0aW9uLCBnZXRJdGVyYXRlZShwcmVkaWNhdGUsIDMpKTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBmaWx0ZXIoY29sbGVjdGlvbiwgcHJlZGljYXRlKSB7XG4gICAgICAgICAgdmFyIGZ1bmMgPSBpc0FycmF5KGNvbGxlY3Rpb24pID8gYXJyYXlGaWx0ZXIgOiBiYXNlRmlsdGVyO1xuICAgICAgICAgIHJldHVybiBmdW5jKGNvbGxlY3Rpb24sIGdldEl0ZXJhdGVlKHByZWRpY2F0ZSwgMykpO1xuICAgICAgICB9XG4gICAgICAgIHZhciBmaW5kID0gY3JlYXRlRmluZChmaW5kSW5kZXgpO1xuICAgICAgICB2YXIgZmluZExhc3QgPSBjcmVhdGVGaW5kKGZpbmRMYXN0SW5kZXgpO1xuICAgICAgICBmdW5jdGlvbiBmbGF0TWFwKGNvbGxlY3Rpb24sIGl0ZXJhdGVlMikge1xuICAgICAgICAgIHJldHVybiBiYXNlRmxhdHRlbihtYXAoY29sbGVjdGlvbiwgaXRlcmF0ZWUyKSwgMSk7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gZmxhdE1hcERlZXAoY29sbGVjdGlvbiwgaXRlcmF0ZWUyKSB7XG4gICAgICAgICAgcmV0dXJuIGJhc2VGbGF0dGVuKG1hcChjb2xsZWN0aW9uLCBpdGVyYXRlZTIpLCBJTkZJTklUWSk7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gZmxhdE1hcERlcHRoKGNvbGxlY3Rpb24sIGl0ZXJhdGVlMiwgZGVwdGgpIHtcbiAgICAgICAgICBkZXB0aCA9IGRlcHRoID09PSB1bmRlZmluZWQyID8gMSA6IHRvSW50ZWdlcihkZXB0aCk7XG4gICAgICAgICAgcmV0dXJuIGJhc2VGbGF0dGVuKG1hcChjb2xsZWN0aW9uLCBpdGVyYXRlZTIpLCBkZXB0aCk7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gZm9yRWFjaChjb2xsZWN0aW9uLCBpdGVyYXRlZTIpIHtcbiAgICAgICAgICB2YXIgZnVuYyA9IGlzQXJyYXkoY29sbGVjdGlvbikgPyBhcnJheUVhY2ggOiBiYXNlRWFjaDtcbiAgICAgICAgICByZXR1cm4gZnVuYyhjb2xsZWN0aW9uLCBnZXRJdGVyYXRlZShpdGVyYXRlZTIsIDMpKTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBmb3JFYWNoUmlnaHQoY29sbGVjdGlvbiwgaXRlcmF0ZWUyKSB7XG4gICAgICAgICAgdmFyIGZ1bmMgPSBpc0FycmF5KGNvbGxlY3Rpb24pID8gYXJyYXlFYWNoUmlnaHQgOiBiYXNlRWFjaFJpZ2h0O1xuICAgICAgICAgIHJldHVybiBmdW5jKGNvbGxlY3Rpb24sIGdldEl0ZXJhdGVlKGl0ZXJhdGVlMiwgMykpO1xuICAgICAgICB9XG4gICAgICAgIHZhciBncm91cEJ5ID0gY3JlYXRlQWdncmVnYXRvcihmdW5jdGlvbihyZXN1bHQyLCB2YWx1ZSwga2V5KSB7XG4gICAgICAgICAgaWYgKGhhc093blByb3BlcnR5LmNhbGwocmVzdWx0Miwga2V5KSkge1xuICAgICAgICAgICAgcmVzdWx0MltrZXldLnB1c2godmFsdWUpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBiYXNlQXNzaWduVmFsdWUocmVzdWx0Miwga2V5LCBbdmFsdWVdKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICBmdW5jdGlvbiBpbmNsdWRlcyhjb2xsZWN0aW9uLCB2YWx1ZSwgZnJvbUluZGV4LCBndWFyZCkge1xuICAgICAgICAgIGNvbGxlY3Rpb24gPSBpc0FycmF5TGlrZShjb2xsZWN0aW9uKSA/IGNvbGxlY3Rpb24gOiB2YWx1ZXMoY29sbGVjdGlvbik7XG4gICAgICAgICAgZnJvbUluZGV4ID0gZnJvbUluZGV4ICYmICFndWFyZCA/IHRvSW50ZWdlcihmcm9tSW5kZXgpIDogMDtcbiAgICAgICAgICB2YXIgbGVuZ3RoID0gY29sbGVjdGlvbi5sZW5ndGg7XG4gICAgICAgICAgaWYgKGZyb21JbmRleCA8IDApIHtcbiAgICAgICAgICAgIGZyb21JbmRleCA9IG5hdGl2ZU1heChsZW5ndGggKyBmcm9tSW5kZXgsIDApO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gaXNTdHJpbmcoY29sbGVjdGlvbikgPyBmcm9tSW5kZXggPD0gbGVuZ3RoICYmIGNvbGxlY3Rpb24uaW5kZXhPZih2YWx1ZSwgZnJvbUluZGV4KSA+IC0xIDogISFsZW5ndGggJiYgYmFzZUluZGV4T2YoY29sbGVjdGlvbiwgdmFsdWUsIGZyb21JbmRleCkgPiAtMTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgaW52b2tlTWFwID0gYmFzZVJlc3QoZnVuY3Rpb24oY29sbGVjdGlvbiwgcGF0aCwgYXJncykge1xuICAgICAgICAgIHZhciBpbmRleCA9IC0xLCBpc0Z1bmMgPSB0eXBlb2YgcGF0aCA9PSBcImZ1bmN0aW9uXCIsIHJlc3VsdDIgPSBpc0FycmF5TGlrZShjb2xsZWN0aW9uKSA/IEFycmF5Mihjb2xsZWN0aW9uLmxlbmd0aCkgOiBbXTtcbiAgICAgICAgICBiYXNlRWFjaChjb2xsZWN0aW9uLCBmdW5jdGlvbih2YWx1ZSkge1xuICAgICAgICAgICAgcmVzdWx0MlsrK2luZGV4XSA9IGlzRnVuYyA/IGFwcGx5KHBhdGgsIHZhbHVlLCBhcmdzKSA6IGJhc2VJbnZva2UodmFsdWUsIHBhdGgsIGFyZ3MpO1xuICAgICAgICAgIH0pO1xuICAgICAgICAgIHJldHVybiByZXN1bHQyO1xuICAgICAgICB9KTtcbiAgICAgICAgdmFyIGtleUJ5ID0gY3JlYXRlQWdncmVnYXRvcihmdW5jdGlvbihyZXN1bHQyLCB2YWx1ZSwga2V5KSB7XG4gICAgICAgICAgYmFzZUFzc2lnblZhbHVlKHJlc3VsdDIsIGtleSwgdmFsdWUpO1xuICAgICAgICB9KTtcbiAgICAgICAgZnVuY3Rpb24gbWFwKGNvbGxlY3Rpb24sIGl0ZXJhdGVlMikge1xuICAgICAgICAgIHZhciBmdW5jID0gaXNBcnJheShjb2xsZWN0aW9uKSA/IGFycmF5TWFwIDogYmFzZU1hcDtcbiAgICAgICAgICByZXR1cm4gZnVuYyhjb2xsZWN0aW9uLCBnZXRJdGVyYXRlZShpdGVyYXRlZTIsIDMpKTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBvcmRlckJ5KGNvbGxlY3Rpb24sIGl0ZXJhdGVlcywgb3JkZXJzLCBndWFyZCkge1xuICAgICAgICAgIGlmIChjb2xsZWN0aW9uID09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiBbXTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKCFpc0FycmF5KGl0ZXJhdGVlcykpIHtcbiAgICAgICAgICAgIGl0ZXJhdGVlcyA9IGl0ZXJhdGVlcyA9PSBudWxsID8gW10gOiBbaXRlcmF0ZWVzXTtcbiAgICAgICAgICB9XG4gICAgICAgICAgb3JkZXJzID0gZ3VhcmQgPyB1bmRlZmluZWQyIDogb3JkZXJzO1xuICAgICAgICAgIGlmICghaXNBcnJheShvcmRlcnMpKSB7XG4gICAgICAgICAgICBvcmRlcnMgPSBvcmRlcnMgPT0gbnVsbCA/IFtdIDogW29yZGVyc107XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBiYXNlT3JkZXJCeShjb2xsZWN0aW9uLCBpdGVyYXRlZXMsIG9yZGVycyk7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIHBhcnRpdGlvbiA9IGNyZWF0ZUFnZ3JlZ2F0b3IoZnVuY3Rpb24ocmVzdWx0MiwgdmFsdWUsIGtleSkge1xuICAgICAgICAgIHJlc3VsdDJba2V5ID8gMCA6IDFdLnB1c2godmFsdWUpO1xuICAgICAgICB9LCBmdW5jdGlvbigpIHtcbiAgICAgICAgICByZXR1cm4gW1tdLCBbXV07XG4gICAgICAgIH0pO1xuICAgICAgICBmdW5jdGlvbiByZWR1Y2UoY29sbGVjdGlvbiwgaXRlcmF0ZWUyLCBhY2N1bXVsYXRvcikge1xuICAgICAgICAgIHZhciBmdW5jID0gaXNBcnJheShjb2xsZWN0aW9uKSA/IGFycmF5UmVkdWNlIDogYmFzZVJlZHVjZSwgaW5pdEFjY3VtID0gYXJndW1lbnRzLmxlbmd0aCA8IDM7XG4gICAgICAgICAgcmV0dXJuIGZ1bmMoY29sbGVjdGlvbiwgZ2V0SXRlcmF0ZWUoaXRlcmF0ZWUyLCA0KSwgYWNjdW11bGF0b3IsIGluaXRBY2N1bSwgYmFzZUVhY2gpO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIHJlZHVjZVJpZ2h0KGNvbGxlY3Rpb24sIGl0ZXJhdGVlMiwgYWNjdW11bGF0b3IpIHtcbiAgICAgICAgICB2YXIgZnVuYyA9IGlzQXJyYXkoY29sbGVjdGlvbikgPyBhcnJheVJlZHVjZVJpZ2h0IDogYmFzZVJlZHVjZSwgaW5pdEFjY3VtID0gYXJndW1lbnRzLmxlbmd0aCA8IDM7XG4gICAgICAgICAgcmV0dXJuIGZ1bmMoY29sbGVjdGlvbiwgZ2V0SXRlcmF0ZWUoaXRlcmF0ZWUyLCA0KSwgYWNjdW11bGF0b3IsIGluaXRBY2N1bSwgYmFzZUVhY2hSaWdodCk7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gcmVqZWN0KGNvbGxlY3Rpb24sIHByZWRpY2F0ZSkge1xuICAgICAgICAgIHZhciBmdW5jID0gaXNBcnJheShjb2xsZWN0aW9uKSA/IGFycmF5RmlsdGVyIDogYmFzZUZpbHRlcjtcbiAgICAgICAgICByZXR1cm4gZnVuYyhjb2xsZWN0aW9uLCBuZWdhdGUoZ2V0SXRlcmF0ZWUocHJlZGljYXRlLCAzKSkpO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIHNhbXBsZShjb2xsZWN0aW9uKSB7XG4gICAgICAgICAgdmFyIGZ1bmMgPSBpc0FycmF5KGNvbGxlY3Rpb24pID8gYXJyYXlTYW1wbGUgOiBiYXNlU2FtcGxlO1xuICAgICAgICAgIHJldHVybiBmdW5jKGNvbGxlY3Rpb24pO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIHNhbXBsZVNpemUoY29sbGVjdGlvbiwgbiwgZ3VhcmQpIHtcbiAgICAgICAgICBpZiAoZ3VhcmQgPyBpc0l0ZXJhdGVlQ2FsbChjb2xsZWN0aW9uLCBuLCBndWFyZCkgOiBuID09PSB1bmRlZmluZWQyKSB7XG4gICAgICAgICAgICBuID0gMTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbiA9IHRvSW50ZWdlcihuKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdmFyIGZ1bmMgPSBpc0FycmF5KGNvbGxlY3Rpb24pID8gYXJyYXlTYW1wbGVTaXplIDogYmFzZVNhbXBsZVNpemU7XG4gICAgICAgICAgcmV0dXJuIGZ1bmMoY29sbGVjdGlvbiwgbik7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gc2h1ZmZsZShjb2xsZWN0aW9uKSB7XG4gICAgICAgICAgdmFyIGZ1bmMgPSBpc0FycmF5KGNvbGxlY3Rpb24pID8gYXJyYXlTaHVmZmxlIDogYmFzZVNodWZmbGU7XG4gICAgICAgICAgcmV0dXJuIGZ1bmMoY29sbGVjdGlvbik7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gc2l6ZShjb2xsZWN0aW9uKSB7XG4gICAgICAgICAgaWYgKGNvbGxlY3Rpb24gPT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIDA7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChpc0FycmF5TGlrZShjb2xsZWN0aW9uKSkge1xuICAgICAgICAgICAgcmV0dXJuIGlzU3RyaW5nKGNvbGxlY3Rpb24pID8gc3RyaW5nU2l6ZShjb2xsZWN0aW9uKSA6IGNvbGxlY3Rpb24ubGVuZ3RoO1xuICAgICAgICAgIH1cbiAgICAgICAgICB2YXIgdGFnID0gZ2V0VGFnKGNvbGxlY3Rpb24pO1xuICAgICAgICAgIGlmICh0YWcgPT0gbWFwVGFnIHx8IHRhZyA9PSBzZXRUYWcpIHtcbiAgICAgICAgICAgIHJldHVybiBjb2xsZWN0aW9uLnNpemU7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBiYXNlS2V5cyhjb2xsZWN0aW9uKS5sZW5ndGg7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gc29tZShjb2xsZWN0aW9uLCBwcmVkaWNhdGUsIGd1YXJkKSB7XG4gICAgICAgICAgdmFyIGZ1bmMgPSBpc0FycmF5KGNvbGxlY3Rpb24pID8gYXJyYXlTb21lIDogYmFzZVNvbWU7XG4gICAgICAgICAgaWYgKGd1YXJkICYmIGlzSXRlcmF0ZWVDYWxsKGNvbGxlY3Rpb24sIHByZWRpY2F0ZSwgZ3VhcmQpKSB7XG4gICAgICAgICAgICBwcmVkaWNhdGUgPSB1bmRlZmluZWQyO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gZnVuYyhjb2xsZWN0aW9uLCBnZXRJdGVyYXRlZShwcmVkaWNhdGUsIDMpKTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgc29ydEJ5ID0gYmFzZVJlc3QoZnVuY3Rpb24oY29sbGVjdGlvbiwgaXRlcmF0ZWVzKSB7XG4gICAgICAgICAgaWYgKGNvbGxlY3Rpb24gPT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgICAgIH1cbiAgICAgICAgICB2YXIgbGVuZ3RoID0gaXRlcmF0ZWVzLmxlbmd0aDtcbiAgICAgICAgICBpZiAobGVuZ3RoID4gMSAmJiBpc0l0ZXJhdGVlQ2FsbChjb2xsZWN0aW9uLCBpdGVyYXRlZXNbMF0sIGl0ZXJhdGVlc1sxXSkpIHtcbiAgICAgICAgICAgIGl0ZXJhdGVlcyA9IFtdO1xuICAgICAgICAgIH0gZWxzZSBpZiAobGVuZ3RoID4gMiAmJiBpc0l0ZXJhdGVlQ2FsbChpdGVyYXRlZXNbMF0sIGl0ZXJhdGVlc1sxXSwgaXRlcmF0ZWVzWzJdKSkge1xuICAgICAgICAgICAgaXRlcmF0ZWVzID0gW2l0ZXJhdGVlc1swXV07XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBiYXNlT3JkZXJCeShjb2xsZWN0aW9uLCBiYXNlRmxhdHRlbihpdGVyYXRlZXMsIDEpLCBbXSk7XG4gICAgICAgIH0pO1xuICAgICAgICB2YXIgbm93ID0gY3R4Tm93IHx8IGZ1bmN0aW9uKCkge1xuICAgICAgICAgIHJldHVybiByb290LkRhdGUubm93KCk7XG4gICAgICAgIH07XG4gICAgICAgIGZ1bmN0aW9uIGFmdGVyKG4sIGZ1bmMpIHtcbiAgICAgICAgICBpZiAodHlwZW9mIGZ1bmMgIT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yMihGVU5DX0VSUk9SX1RFWFQpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBuID0gdG9JbnRlZ2VyKG4pO1xuICAgICAgICAgIHJldHVybiBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIGlmICgtLW4gPCAxKSB7XG4gICAgICAgICAgICAgIHJldHVybiBmdW5jLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBhcnkoZnVuYywgbiwgZ3VhcmQpIHtcbiAgICAgICAgICBuID0gZ3VhcmQgPyB1bmRlZmluZWQyIDogbjtcbiAgICAgICAgICBuID0gZnVuYyAmJiBuID09IG51bGwgPyBmdW5jLmxlbmd0aCA6IG47XG4gICAgICAgICAgcmV0dXJuIGNyZWF0ZVdyYXAoZnVuYywgV1JBUF9BUllfRkxBRywgdW5kZWZpbmVkMiwgdW5kZWZpbmVkMiwgdW5kZWZpbmVkMiwgdW5kZWZpbmVkMiwgbik7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gYmVmb3JlKG4sIGZ1bmMpIHtcbiAgICAgICAgICB2YXIgcmVzdWx0MjtcbiAgICAgICAgICBpZiAodHlwZW9mIGZ1bmMgIT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yMihGVU5DX0VSUk9SX1RFWFQpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBuID0gdG9JbnRlZ2VyKG4pO1xuICAgICAgICAgIHJldHVybiBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIGlmICgtLW4gPiAwKSB7XG4gICAgICAgICAgICAgIHJlc3VsdDIgPSBmdW5jLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAobiA8PSAxKSB7XG4gICAgICAgICAgICAgIGZ1bmMgPSB1bmRlZmluZWQyO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDI7XG4gICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgYmluZCA9IGJhc2VSZXN0KGZ1bmN0aW9uKGZ1bmMsIHRoaXNBcmcsIHBhcnRpYWxzKSB7XG4gICAgICAgICAgdmFyIGJpdG1hc2sgPSBXUkFQX0JJTkRfRkxBRztcbiAgICAgICAgICBpZiAocGFydGlhbHMubGVuZ3RoKSB7XG4gICAgICAgICAgICB2YXIgaG9sZGVycyA9IHJlcGxhY2VIb2xkZXJzKHBhcnRpYWxzLCBnZXRIb2xkZXIoYmluZCkpO1xuICAgICAgICAgICAgYml0bWFzayB8PSBXUkFQX1BBUlRJQUxfRkxBRztcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIGNyZWF0ZVdyYXAoZnVuYywgYml0bWFzaywgdGhpc0FyZywgcGFydGlhbHMsIGhvbGRlcnMpO1xuICAgICAgICB9KTtcbiAgICAgICAgdmFyIGJpbmRLZXkgPSBiYXNlUmVzdChmdW5jdGlvbihvYmplY3QsIGtleSwgcGFydGlhbHMpIHtcbiAgICAgICAgICB2YXIgYml0bWFzayA9IFdSQVBfQklORF9GTEFHIHwgV1JBUF9CSU5EX0tFWV9GTEFHO1xuICAgICAgICAgIGlmIChwYXJ0aWFscy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHZhciBob2xkZXJzID0gcmVwbGFjZUhvbGRlcnMocGFydGlhbHMsIGdldEhvbGRlcihiaW5kS2V5KSk7XG4gICAgICAgICAgICBiaXRtYXNrIHw9IFdSQVBfUEFSVElBTF9GTEFHO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gY3JlYXRlV3JhcChrZXksIGJpdG1hc2ssIG9iamVjdCwgcGFydGlhbHMsIGhvbGRlcnMpO1xuICAgICAgICB9KTtcbiAgICAgICAgZnVuY3Rpb24gY3VycnkoZnVuYywgYXJpdHksIGd1YXJkKSB7XG4gICAgICAgICAgYXJpdHkgPSBndWFyZCA/IHVuZGVmaW5lZDIgOiBhcml0eTtcbiAgICAgICAgICB2YXIgcmVzdWx0MiA9IGNyZWF0ZVdyYXAoZnVuYywgV1JBUF9DVVJSWV9GTEFHLCB1bmRlZmluZWQyLCB1bmRlZmluZWQyLCB1bmRlZmluZWQyLCB1bmRlZmluZWQyLCB1bmRlZmluZWQyLCBhcml0eSk7XG4gICAgICAgICAgcmVzdWx0Mi5wbGFjZWhvbGRlciA9IGN1cnJ5LnBsYWNlaG9sZGVyO1xuICAgICAgICAgIHJldHVybiByZXN1bHQyO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGN1cnJ5UmlnaHQoZnVuYywgYXJpdHksIGd1YXJkKSB7XG4gICAgICAgICAgYXJpdHkgPSBndWFyZCA/IHVuZGVmaW5lZDIgOiBhcml0eTtcbiAgICAgICAgICB2YXIgcmVzdWx0MiA9IGNyZWF0ZVdyYXAoZnVuYywgV1JBUF9DVVJSWV9SSUdIVF9GTEFHLCB1bmRlZmluZWQyLCB1bmRlZmluZWQyLCB1bmRlZmluZWQyLCB1bmRlZmluZWQyLCB1bmRlZmluZWQyLCBhcml0eSk7XG4gICAgICAgICAgcmVzdWx0Mi5wbGFjZWhvbGRlciA9IGN1cnJ5UmlnaHQucGxhY2Vob2xkZXI7XG4gICAgICAgICAgcmV0dXJuIHJlc3VsdDI7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gZGVib3VuY2UoZnVuYywgd2FpdCwgb3B0aW9ucykge1xuICAgICAgICAgIHZhciBsYXN0QXJncywgbGFzdFRoaXMsIG1heFdhaXQsIHJlc3VsdDIsIHRpbWVySWQsIGxhc3RDYWxsVGltZSwgbGFzdEludm9rZVRpbWUgPSAwLCBsZWFkaW5nID0gZmFsc2UsIG1heGluZyA9IGZhbHNlLCB0cmFpbGluZyA9IHRydWU7XG4gICAgICAgICAgaWYgKHR5cGVvZiBmdW5jICE9IFwiZnVuY3Rpb25cIikge1xuICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcjIoRlVOQ19FUlJPUl9URVhUKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgd2FpdCA9IHRvTnVtYmVyKHdhaXQpIHx8IDA7XG4gICAgICAgICAgaWYgKGlzT2JqZWN0KG9wdGlvbnMpKSB7XG4gICAgICAgICAgICBsZWFkaW5nID0gISFvcHRpb25zLmxlYWRpbmc7XG4gICAgICAgICAgICBtYXhpbmcgPSBcIm1heFdhaXRcIiBpbiBvcHRpb25zO1xuICAgICAgICAgICAgbWF4V2FpdCA9IG1heGluZyA/IG5hdGl2ZU1heCh0b051bWJlcihvcHRpb25zLm1heFdhaXQpIHx8IDAsIHdhaXQpIDogbWF4V2FpdDtcbiAgICAgICAgICAgIHRyYWlsaW5nID0gXCJ0cmFpbGluZ1wiIGluIG9wdGlvbnMgPyAhIW9wdGlvbnMudHJhaWxpbmcgOiB0cmFpbGluZztcbiAgICAgICAgICB9XG4gICAgICAgICAgZnVuY3Rpb24gaW52b2tlRnVuYyh0aW1lKSB7XG4gICAgICAgICAgICB2YXIgYXJncyA9IGxhc3RBcmdzLCB0aGlzQXJnID0gbGFzdFRoaXM7XG4gICAgICAgICAgICBsYXN0QXJncyA9IGxhc3RUaGlzID0gdW5kZWZpbmVkMjtcbiAgICAgICAgICAgIGxhc3RJbnZva2VUaW1lID0gdGltZTtcbiAgICAgICAgICAgIHJlc3VsdDIgPSBmdW5jLmFwcGx5KHRoaXNBcmcsIGFyZ3MpO1xuICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDI7XG4gICAgICAgICAgfVxuICAgICAgICAgIGZ1bmN0aW9uIGxlYWRpbmdFZGdlKHRpbWUpIHtcbiAgICAgICAgICAgIGxhc3RJbnZva2VUaW1lID0gdGltZTtcbiAgICAgICAgICAgIHRpbWVySWQgPSBzZXRUaW1lb3V0KHRpbWVyRXhwaXJlZCwgd2FpdCk7XG4gICAgICAgICAgICByZXR1cm4gbGVhZGluZyA/IGludm9rZUZ1bmModGltZSkgOiByZXN1bHQyO1xuICAgICAgICAgIH1cbiAgICAgICAgICBmdW5jdGlvbiByZW1haW5pbmdXYWl0KHRpbWUpIHtcbiAgICAgICAgICAgIHZhciB0aW1lU2luY2VMYXN0Q2FsbCA9IHRpbWUgLSBsYXN0Q2FsbFRpbWUsIHRpbWVTaW5jZUxhc3RJbnZva2UgPSB0aW1lIC0gbGFzdEludm9rZVRpbWUsIHRpbWVXYWl0aW5nID0gd2FpdCAtIHRpbWVTaW5jZUxhc3RDYWxsO1xuICAgICAgICAgICAgcmV0dXJuIG1heGluZyA/IG5hdGl2ZU1pbih0aW1lV2FpdGluZywgbWF4V2FpdCAtIHRpbWVTaW5jZUxhc3RJbnZva2UpIDogdGltZVdhaXRpbmc7XG4gICAgICAgICAgfVxuICAgICAgICAgIGZ1bmN0aW9uIHNob3VsZEludm9rZSh0aW1lKSB7XG4gICAgICAgICAgICB2YXIgdGltZVNpbmNlTGFzdENhbGwgPSB0aW1lIC0gbGFzdENhbGxUaW1lLCB0aW1lU2luY2VMYXN0SW52b2tlID0gdGltZSAtIGxhc3RJbnZva2VUaW1lO1xuICAgICAgICAgICAgcmV0dXJuIGxhc3RDYWxsVGltZSA9PT0gdW5kZWZpbmVkMiB8fCB0aW1lU2luY2VMYXN0Q2FsbCA+PSB3YWl0IHx8IHRpbWVTaW5jZUxhc3RDYWxsIDwgMCB8fCBtYXhpbmcgJiYgdGltZVNpbmNlTGFzdEludm9rZSA+PSBtYXhXYWl0O1xuICAgICAgICAgIH1cbiAgICAgICAgICBmdW5jdGlvbiB0aW1lckV4cGlyZWQoKSB7XG4gICAgICAgICAgICB2YXIgdGltZSA9IG5vdygpO1xuICAgICAgICAgICAgaWYgKHNob3VsZEludm9rZSh0aW1lKSkge1xuICAgICAgICAgICAgICByZXR1cm4gdHJhaWxpbmdFZGdlKHRpbWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGltZXJJZCA9IHNldFRpbWVvdXQodGltZXJFeHBpcmVkLCByZW1haW5pbmdXYWl0KHRpbWUpKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgZnVuY3Rpb24gdHJhaWxpbmdFZGdlKHRpbWUpIHtcbiAgICAgICAgICAgIHRpbWVySWQgPSB1bmRlZmluZWQyO1xuICAgICAgICAgICAgaWYgKHRyYWlsaW5nICYmIGxhc3RBcmdzKSB7XG4gICAgICAgICAgICAgIHJldHVybiBpbnZva2VGdW5jKHRpbWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbGFzdEFyZ3MgPSBsYXN0VGhpcyA9IHVuZGVmaW5lZDI7XG4gICAgICAgICAgICByZXR1cm4gcmVzdWx0MjtcbiAgICAgICAgICB9XG4gICAgICAgICAgZnVuY3Rpb24gY2FuY2VsKCkge1xuICAgICAgICAgICAgaWYgKHRpbWVySWQgIT09IHVuZGVmaW5lZDIpIHtcbiAgICAgICAgICAgICAgY2xlYXJUaW1lb3V0KHRpbWVySWQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbGFzdEludm9rZVRpbWUgPSAwO1xuICAgICAgICAgICAgbGFzdEFyZ3MgPSBsYXN0Q2FsbFRpbWUgPSBsYXN0VGhpcyA9IHRpbWVySWQgPSB1bmRlZmluZWQyO1xuICAgICAgICAgIH1cbiAgICAgICAgICBmdW5jdGlvbiBmbHVzaCgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aW1lcklkID09PSB1bmRlZmluZWQyID8gcmVzdWx0MiA6IHRyYWlsaW5nRWRnZShub3coKSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGZ1bmN0aW9uIGRlYm91bmNlZCgpIHtcbiAgICAgICAgICAgIHZhciB0aW1lID0gbm93KCksIGlzSW52b2tpbmcgPSBzaG91bGRJbnZva2UodGltZSk7XG4gICAgICAgICAgICBsYXN0QXJncyA9IGFyZ3VtZW50cztcbiAgICAgICAgICAgIGxhc3RUaGlzID0gdGhpcztcbiAgICAgICAgICAgIGxhc3RDYWxsVGltZSA9IHRpbWU7XG4gICAgICAgICAgICBpZiAoaXNJbnZva2luZykge1xuICAgICAgICAgICAgICBpZiAodGltZXJJZCA9PT0gdW5kZWZpbmVkMikge1xuICAgICAgICAgICAgICAgIHJldHVybiBsZWFkaW5nRWRnZShsYXN0Q2FsbFRpbWUpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGlmIChtYXhpbmcpIHtcbiAgICAgICAgICAgICAgICBjbGVhclRpbWVvdXQodGltZXJJZCk7XG4gICAgICAgICAgICAgICAgdGltZXJJZCA9IHNldFRpbWVvdXQodGltZXJFeHBpcmVkLCB3YWl0KTtcbiAgICAgICAgICAgICAgICByZXR1cm4gaW52b2tlRnVuYyhsYXN0Q2FsbFRpbWUpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodGltZXJJZCA9PT0gdW5kZWZpbmVkMikge1xuICAgICAgICAgICAgICB0aW1lcklkID0gc2V0VGltZW91dCh0aW1lckV4cGlyZWQsIHdhaXQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDI7XG4gICAgICAgICAgfVxuICAgICAgICAgIGRlYm91bmNlZC5jYW5jZWwgPSBjYW5jZWw7XG4gICAgICAgICAgZGVib3VuY2VkLmZsdXNoID0gZmx1c2g7XG4gICAgICAgICAgcmV0dXJuIGRlYm91bmNlZDtcbiAgICAgICAgfVxuICAgICAgICB2YXIgZGVmZXIgPSBiYXNlUmVzdChmdW5jdGlvbihmdW5jLCBhcmdzKSB7XG4gICAgICAgICAgcmV0dXJuIGJhc2VEZWxheShmdW5jLCAxLCBhcmdzKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHZhciBkZWxheSA9IGJhc2VSZXN0KGZ1bmN0aW9uKGZ1bmMsIHdhaXQsIGFyZ3MpIHtcbiAgICAgICAgICByZXR1cm4gYmFzZURlbGF5KGZ1bmMsIHRvTnVtYmVyKHdhaXQpIHx8IDAsIGFyZ3MpO1xuICAgICAgICB9KTtcbiAgICAgICAgZnVuY3Rpb24gZmxpcChmdW5jKSB7XG4gICAgICAgICAgcmV0dXJuIGNyZWF0ZVdyYXAoZnVuYywgV1JBUF9GTElQX0ZMQUcpO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIG1lbW9pemUoZnVuYywgcmVzb2x2ZXIpIHtcbiAgICAgICAgICBpZiAodHlwZW9mIGZ1bmMgIT0gXCJmdW5jdGlvblwiIHx8IHJlc29sdmVyICE9IG51bGwgJiYgdHlwZW9mIHJlc29sdmVyICE9IFwiZnVuY3Rpb25cIikge1xuICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcjIoRlVOQ19FUlJPUl9URVhUKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdmFyIG1lbW9pemVkID0gZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICB2YXIgYXJncyA9IGFyZ3VtZW50cywga2V5ID0gcmVzb2x2ZXIgPyByZXNvbHZlci5hcHBseSh0aGlzLCBhcmdzKSA6IGFyZ3NbMF0sIGNhY2hlID0gbWVtb2l6ZWQuY2FjaGU7XG4gICAgICAgICAgICBpZiAoY2FjaGUuaGFzKGtleSkpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIGNhY2hlLmdldChrZXkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdmFyIHJlc3VsdDIgPSBmdW5jLmFwcGx5KHRoaXMsIGFyZ3MpO1xuICAgICAgICAgICAgbWVtb2l6ZWQuY2FjaGUgPSBjYWNoZS5zZXQoa2V5LCByZXN1bHQyKSB8fCBjYWNoZTtcbiAgICAgICAgICAgIHJldHVybiByZXN1bHQyO1xuICAgICAgICAgIH07XG4gICAgICAgICAgbWVtb2l6ZWQuY2FjaGUgPSBuZXcgKG1lbW9pemUuQ2FjaGUgfHwgTWFwQ2FjaGUpKCk7XG4gICAgICAgICAgcmV0dXJuIG1lbW9pemVkO1xuICAgICAgICB9XG4gICAgICAgIG1lbW9pemUuQ2FjaGUgPSBNYXBDYWNoZTtcbiAgICAgICAgZnVuY3Rpb24gbmVnYXRlKHByZWRpY2F0ZSkge1xuICAgICAgICAgIGlmICh0eXBlb2YgcHJlZGljYXRlICE9IFwiZnVuY3Rpb25cIikge1xuICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcjIoRlVOQ19FUlJPUl9URVhUKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgdmFyIGFyZ3MgPSBhcmd1bWVudHM7XG4gICAgICAgICAgICBzd2l0Y2ggKGFyZ3MubGVuZ3RoKSB7XG4gICAgICAgICAgICAgIGNhc2UgMDpcbiAgICAgICAgICAgICAgICByZXR1cm4gIXByZWRpY2F0ZS5jYWxsKHRoaXMpO1xuICAgICAgICAgICAgICBjYXNlIDE6XG4gICAgICAgICAgICAgICAgcmV0dXJuICFwcmVkaWNhdGUuY2FsbCh0aGlzLCBhcmdzWzBdKTtcbiAgICAgICAgICAgICAgY2FzZSAyOlxuICAgICAgICAgICAgICAgIHJldHVybiAhcHJlZGljYXRlLmNhbGwodGhpcywgYXJnc1swXSwgYXJnc1sxXSk7XG4gICAgICAgICAgICAgIGNhc2UgMzpcbiAgICAgICAgICAgICAgICByZXR1cm4gIXByZWRpY2F0ZS5jYWxsKHRoaXMsIGFyZ3NbMF0sIGFyZ3NbMV0sIGFyZ3NbMl0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuICFwcmVkaWNhdGUuYXBwbHkodGhpcywgYXJncyk7XG4gICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBvbmNlKGZ1bmMpIHtcbiAgICAgICAgICByZXR1cm4gYmVmb3JlKDIsIGZ1bmMpO1xuICAgICAgICB9XG4gICAgICAgIHZhciBvdmVyQXJncyA9IGNhc3RSZXN0KGZ1bmN0aW9uKGZ1bmMsIHRyYW5zZm9ybXMpIHtcbiAgICAgICAgICB0cmFuc2Zvcm1zID0gdHJhbnNmb3Jtcy5sZW5ndGggPT0gMSAmJiBpc0FycmF5KHRyYW5zZm9ybXNbMF0pID8gYXJyYXlNYXAodHJhbnNmb3Jtc1swXSwgYmFzZVVuYXJ5KGdldEl0ZXJhdGVlKCkpKSA6IGFycmF5TWFwKGJhc2VGbGF0dGVuKHRyYW5zZm9ybXMsIDEpLCBiYXNlVW5hcnkoZ2V0SXRlcmF0ZWUoKSkpO1xuICAgICAgICAgIHZhciBmdW5jc0xlbmd0aCA9IHRyYW5zZm9ybXMubGVuZ3RoO1xuICAgICAgICAgIHJldHVybiBiYXNlUmVzdChmdW5jdGlvbihhcmdzKSB7XG4gICAgICAgICAgICB2YXIgaW5kZXggPSAtMSwgbGVuZ3RoID0gbmF0aXZlTWluKGFyZ3MubGVuZ3RoLCBmdW5jc0xlbmd0aCk7XG4gICAgICAgICAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgICAgICAgICAgICBhcmdzW2luZGV4XSA9IHRyYW5zZm9ybXNbaW5kZXhdLmNhbGwodGhpcywgYXJnc1tpbmRleF0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGFwcGx5KGZ1bmMsIHRoaXMsIGFyZ3MpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICAgICAgdmFyIHBhcnRpYWwgPSBiYXNlUmVzdChmdW5jdGlvbihmdW5jLCBwYXJ0aWFscykge1xuICAgICAgICAgIHZhciBob2xkZXJzID0gcmVwbGFjZUhvbGRlcnMocGFydGlhbHMsIGdldEhvbGRlcihwYXJ0aWFsKSk7XG4gICAgICAgICAgcmV0dXJuIGNyZWF0ZVdyYXAoZnVuYywgV1JBUF9QQVJUSUFMX0ZMQUcsIHVuZGVmaW5lZDIsIHBhcnRpYWxzLCBob2xkZXJzKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHZhciBwYXJ0aWFsUmlnaHQgPSBiYXNlUmVzdChmdW5jdGlvbihmdW5jLCBwYXJ0aWFscykge1xuICAgICAgICAgIHZhciBob2xkZXJzID0gcmVwbGFjZUhvbGRlcnMocGFydGlhbHMsIGdldEhvbGRlcihwYXJ0aWFsUmlnaHQpKTtcbiAgICAgICAgICByZXR1cm4gY3JlYXRlV3JhcChmdW5jLCBXUkFQX1BBUlRJQUxfUklHSFRfRkxBRywgdW5kZWZpbmVkMiwgcGFydGlhbHMsIGhvbGRlcnMpO1xuICAgICAgICB9KTtcbiAgICAgICAgdmFyIHJlYXJnID0gZmxhdFJlc3QoZnVuY3Rpb24oZnVuYywgaW5kZXhlcykge1xuICAgICAgICAgIHJldHVybiBjcmVhdGVXcmFwKGZ1bmMsIFdSQVBfUkVBUkdfRkxBRywgdW5kZWZpbmVkMiwgdW5kZWZpbmVkMiwgdW5kZWZpbmVkMiwgaW5kZXhlcyk7XG4gICAgICAgIH0pO1xuICAgICAgICBmdW5jdGlvbiByZXN0KGZ1bmMsIHN0YXJ0KSB7XG4gICAgICAgICAgaWYgKHR5cGVvZiBmdW5jICE9IFwiZnVuY3Rpb25cIikge1xuICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcjIoRlVOQ19FUlJPUl9URVhUKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgc3RhcnQgPSBzdGFydCA9PT0gdW5kZWZpbmVkMiA/IHN0YXJ0IDogdG9JbnRlZ2VyKHN0YXJ0KTtcbiAgICAgICAgICByZXR1cm4gYmFzZVJlc3QoZnVuYywgc3RhcnQpO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIHNwcmVhZChmdW5jLCBzdGFydCkge1xuICAgICAgICAgIGlmICh0eXBlb2YgZnVuYyAhPSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IyKEZVTkNfRVJST1JfVEVYVCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHN0YXJ0ID0gc3RhcnQgPT0gbnVsbCA/IDAgOiBuYXRpdmVNYXgodG9JbnRlZ2VyKHN0YXJ0KSwgMCk7XG4gICAgICAgICAgcmV0dXJuIGJhc2VSZXN0KGZ1bmN0aW9uKGFyZ3MpIHtcbiAgICAgICAgICAgIHZhciBhcnJheSA9IGFyZ3Nbc3RhcnRdLCBvdGhlckFyZ3MgPSBjYXN0U2xpY2UoYXJncywgMCwgc3RhcnQpO1xuICAgICAgICAgICAgaWYgKGFycmF5KSB7XG4gICAgICAgICAgICAgIGFycmF5UHVzaChvdGhlckFyZ3MsIGFycmF5KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBhcHBseShmdW5jLCB0aGlzLCBvdGhlckFyZ3MpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIHRocm90dGxlKGZ1bmMsIHdhaXQsIG9wdGlvbnMpIHtcbiAgICAgICAgICB2YXIgbGVhZGluZyA9IHRydWUsIHRyYWlsaW5nID0gdHJ1ZTtcbiAgICAgICAgICBpZiAodHlwZW9mIGZ1bmMgIT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yMihGVU5DX0VSUk9SX1RFWFQpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoaXNPYmplY3Qob3B0aW9ucykpIHtcbiAgICAgICAgICAgIGxlYWRpbmcgPSBcImxlYWRpbmdcIiBpbiBvcHRpb25zID8gISFvcHRpb25zLmxlYWRpbmcgOiBsZWFkaW5nO1xuICAgICAgICAgICAgdHJhaWxpbmcgPSBcInRyYWlsaW5nXCIgaW4gb3B0aW9ucyA/ICEhb3B0aW9ucy50cmFpbGluZyA6IHRyYWlsaW5nO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gZGVib3VuY2UoZnVuYywgd2FpdCwge1xuICAgICAgICAgICAgXCJsZWFkaW5nXCI6IGxlYWRpbmcsXG4gICAgICAgICAgICBcIm1heFdhaXRcIjogd2FpdCxcbiAgICAgICAgICAgIFwidHJhaWxpbmdcIjogdHJhaWxpbmdcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiB1bmFyeShmdW5jKSB7XG4gICAgICAgICAgcmV0dXJuIGFyeShmdW5jLCAxKTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiB3cmFwKHZhbHVlLCB3cmFwcGVyKSB7XG4gICAgICAgICAgcmV0dXJuIHBhcnRpYWwoY2FzdEZ1bmN0aW9uKHdyYXBwZXIpLCB2YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gY2FzdEFycmF5KCkge1xuICAgICAgICAgIGlmICghYXJndW1lbnRzLmxlbmd0aCkge1xuICAgICAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgICAgIH1cbiAgICAgICAgICB2YXIgdmFsdWUgPSBhcmd1bWVudHNbMF07XG4gICAgICAgICAgcmV0dXJuIGlzQXJyYXkodmFsdWUpID8gdmFsdWUgOiBbdmFsdWVdO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGNsb25lKHZhbHVlKSB7XG4gICAgICAgICAgcmV0dXJuIGJhc2VDbG9uZSh2YWx1ZSwgQ0xPTkVfU1lNQk9MU19GTEFHKTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBjbG9uZVdpdGgodmFsdWUsIGN1c3RvbWl6ZXIpIHtcbiAgICAgICAgICBjdXN0b21pemVyID0gdHlwZW9mIGN1c3RvbWl6ZXIgPT0gXCJmdW5jdGlvblwiID8gY3VzdG9taXplciA6IHVuZGVmaW5lZDI7XG4gICAgICAgICAgcmV0dXJuIGJhc2VDbG9uZSh2YWx1ZSwgQ0xPTkVfU1lNQk9MU19GTEFHLCBjdXN0b21pemVyKTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBjbG9uZURlZXAodmFsdWUpIHtcbiAgICAgICAgICByZXR1cm4gYmFzZUNsb25lKHZhbHVlLCBDTE9ORV9ERUVQX0ZMQUcgfCBDTE9ORV9TWU1CT0xTX0ZMQUcpO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGNsb25lRGVlcFdpdGgodmFsdWUsIGN1c3RvbWl6ZXIpIHtcbiAgICAgICAgICBjdXN0b21pemVyID0gdHlwZW9mIGN1c3RvbWl6ZXIgPT0gXCJmdW5jdGlvblwiID8gY3VzdG9taXplciA6IHVuZGVmaW5lZDI7XG4gICAgICAgICAgcmV0dXJuIGJhc2VDbG9uZSh2YWx1ZSwgQ0xPTkVfREVFUF9GTEFHIHwgQ0xPTkVfU1lNQk9MU19GTEFHLCBjdXN0b21pemVyKTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBjb25mb3Jtc1RvKG9iamVjdCwgc291cmNlKSB7XG4gICAgICAgICAgcmV0dXJuIHNvdXJjZSA9PSBudWxsIHx8IGJhc2VDb25mb3Jtc1RvKG9iamVjdCwgc291cmNlLCBrZXlzKHNvdXJjZSkpO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGVxKHZhbHVlLCBvdGhlcikge1xuICAgICAgICAgIHJldHVybiB2YWx1ZSA9PT0gb3RoZXIgfHwgdmFsdWUgIT09IHZhbHVlICYmIG90aGVyICE9PSBvdGhlcjtcbiAgICAgICAgfVxuICAgICAgICB2YXIgZ3QgPSBjcmVhdGVSZWxhdGlvbmFsT3BlcmF0aW9uKGJhc2VHdCk7XG4gICAgICAgIHZhciBndGUgPSBjcmVhdGVSZWxhdGlvbmFsT3BlcmF0aW9uKGZ1bmN0aW9uKHZhbHVlLCBvdGhlcikge1xuICAgICAgICAgIHJldHVybiB2YWx1ZSA+PSBvdGhlcjtcbiAgICAgICAgfSk7XG4gICAgICAgIHZhciBpc0FyZ3VtZW50cyA9IGJhc2VJc0FyZ3VtZW50cygvKiBAX19QVVJFX18gKi8gZnVuY3Rpb24oKSB7XG4gICAgICAgICAgcmV0dXJuIGFyZ3VtZW50cztcbiAgICAgICAgfSgpKSA/IGJhc2VJc0FyZ3VtZW50cyA6IGZ1bmN0aW9uKHZhbHVlKSB7XG4gICAgICAgICAgcmV0dXJuIGlzT2JqZWN0TGlrZSh2YWx1ZSkgJiYgaGFzT3duUHJvcGVydHkuY2FsbCh2YWx1ZSwgXCJjYWxsZWVcIikgJiYgIXByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwodmFsdWUsIFwiY2FsbGVlXCIpO1xuICAgICAgICB9O1xuICAgICAgICB2YXIgaXNBcnJheSA9IEFycmF5Mi5pc0FycmF5O1xuICAgICAgICB2YXIgaXNBcnJheUJ1ZmZlciA9IG5vZGVJc0FycmF5QnVmZmVyID8gYmFzZVVuYXJ5KG5vZGVJc0FycmF5QnVmZmVyKSA6IGJhc2VJc0FycmF5QnVmZmVyO1xuICAgICAgICBmdW5jdGlvbiBpc0FycmF5TGlrZSh2YWx1ZSkge1xuICAgICAgICAgIHJldHVybiB2YWx1ZSAhPSBudWxsICYmIGlzTGVuZ3RoKHZhbHVlLmxlbmd0aCkgJiYgIWlzRnVuY3Rpb24odmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGlzQXJyYXlMaWtlT2JqZWN0KHZhbHVlKSB7XG4gICAgICAgICAgcmV0dXJuIGlzT2JqZWN0TGlrZSh2YWx1ZSkgJiYgaXNBcnJheUxpa2UodmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGlzQm9vbGVhbih2YWx1ZSkge1xuICAgICAgICAgIHJldHVybiB2YWx1ZSA9PT0gdHJ1ZSB8fCB2YWx1ZSA9PT0gZmFsc2UgfHwgaXNPYmplY3RMaWtlKHZhbHVlKSAmJiBiYXNlR2V0VGFnKHZhbHVlKSA9PSBib29sVGFnO1xuICAgICAgICB9XG4gICAgICAgIHZhciBpc0J1ZmZlciA9IG5hdGl2ZUlzQnVmZmVyIHx8IHN0dWJGYWxzZTtcbiAgICAgICAgdmFyIGlzRGF0ZSA9IG5vZGVJc0RhdGUgPyBiYXNlVW5hcnkobm9kZUlzRGF0ZSkgOiBiYXNlSXNEYXRlO1xuICAgICAgICBmdW5jdGlvbiBpc0VsZW1lbnQodmFsdWUpIHtcbiAgICAgICAgICByZXR1cm4gaXNPYmplY3RMaWtlKHZhbHVlKSAmJiB2YWx1ZS5ub2RlVHlwZSA9PT0gMSAmJiAhaXNQbGFpbk9iamVjdCh2YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gaXNFbXB0eSh2YWx1ZSkge1xuICAgICAgICAgIGlmICh2YWx1ZSA9PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGlzQXJyYXlMaWtlKHZhbHVlKSAmJiAoaXNBcnJheSh2YWx1ZSkgfHwgdHlwZW9mIHZhbHVlID09IFwic3RyaW5nXCIgfHwgdHlwZW9mIHZhbHVlLnNwbGljZSA9PSBcImZ1bmN0aW9uXCIgfHwgaXNCdWZmZXIodmFsdWUpIHx8IGlzVHlwZWRBcnJheSh2YWx1ZSkgfHwgaXNBcmd1bWVudHModmFsdWUpKSkge1xuICAgICAgICAgICAgcmV0dXJuICF2YWx1ZS5sZW5ndGg7XG4gICAgICAgICAgfVxuICAgICAgICAgIHZhciB0YWcgPSBnZXRUYWcodmFsdWUpO1xuICAgICAgICAgIGlmICh0YWcgPT0gbWFwVGFnIHx8IHRhZyA9PSBzZXRUYWcpIHtcbiAgICAgICAgICAgIHJldHVybiAhdmFsdWUuc2l6ZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGlzUHJvdG90eXBlKHZhbHVlKSkge1xuICAgICAgICAgICAgcmV0dXJuICFiYXNlS2V5cyh2YWx1ZSkubGVuZ3RoO1xuICAgICAgICAgIH1cbiAgICAgICAgICBmb3IgKHZhciBrZXkgaW4gdmFsdWUpIHtcbiAgICAgICAgICAgIGlmIChoYXNPd25Qcm9wZXJ0eS5jYWxsKHZhbHVlLCBrZXkpKSB7XG4gICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gaXNFcXVhbCh2YWx1ZSwgb3RoZXIpIHtcbiAgICAgICAgICByZXR1cm4gYmFzZUlzRXF1YWwodmFsdWUsIG90aGVyKTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBpc0VxdWFsV2l0aCh2YWx1ZSwgb3RoZXIsIGN1c3RvbWl6ZXIpIHtcbiAgICAgICAgICBjdXN0b21pemVyID0gdHlwZW9mIGN1c3RvbWl6ZXIgPT0gXCJmdW5jdGlvblwiID8gY3VzdG9taXplciA6IHVuZGVmaW5lZDI7XG4gICAgICAgICAgdmFyIHJlc3VsdDIgPSBjdXN0b21pemVyID8gY3VzdG9taXplcih2YWx1ZSwgb3RoZXIpIDogdW5kZWZpbmVkMjtcbiAgICAgICAgICByZXR1cm4gcmVzdWx0MiA9PT0gdW5kZWZpbmVkMiA/IGJhc2VJc0VxdWFsKHZhbHVlLCBvdGhlciwgdW5kZWZpbmVkMiwgY3VzdG9taXplcikgOiAhIXJlc3VsdDI7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gaXNFcnJvcih2YWx1ZSkge1xuICAgICAgICAgIGlmICghaXNPYmplY3RMaWtlKHZhbHVlKSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgIH1cbiAgICAgICAgICB2YXIgdGFnID0gYmFzZUdldFRhZyh2YWx1ZSk7XG4gICAgICAgICAgcmV0dXJuIHRhZyA9PSBlcnJvclRhZyB8fCB0YWcgPT0gZG9tRXhjVGFnIHx8IHR5cGVvZiB2YWx1ZS5tZXNzYWdlID09IFwic3RyaW5nXCIgJiYgdHlwZW9mIHZhbHVlLm5hbWUgPT0gXCJzdHJpbmdcIiAmJiAhaXNQbGFpbk9iamVjdCh2YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gaXNGaW5pdGUyKHZhbHVlKSB7XG4gICAgICAgICAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PSBcIm51bWJlclwiICYmIG5hdGl2ZUlzRmluaXRlKHZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBpc0Z1bmN0aW9uKHZhbHVlKSB7XG4gICAgICAgICAgaWYgKCFpc09iamVjdCh2YWx1ZSkpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdmFyIHRhZyA9IGJhc2VHZXRUYWcodmFsdWUpO1xuICAgICAgICAgIHJldHVybiB0YWcgPT0gZnVuY1RhZyB8fCB0YWcgPT0gZ2VuVGFnIHx8IHRhZyA9PSBhc3luY1RhZyB8fCB0YWcgPT0gcHJveHlUYWc7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gaXNJbnRlZ2VyKHZhbHVlKSB7XG4gICAgICAgICAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PSBcIm51bWJlclwiICYmIHZhbHVlID09IHRvSW50ZWdlcih2YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gaXNMZW5ndGgodmFsdWUpIHtcbiAgICAgICAgICByZXR1cm4gdHlwZW9mIHZhbHVlID09IFwibnVtYmVyXCIgJiYgdmFsdWUgPiAtMSAmJiB2YWx1ZSAlIDEgPT0gMCAmJiB2YWx1ZSA8PSBNQVhfU0FGRV9JTlRFR0VSO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGlzT2JqZWN0KHZhbHVlKSB7XG4gICAgICAgICAgdmFyIHR5cGUgPSB0eXBlb2YgdmFsdWU7XG4gICAgICAgICAgcmV0dXJuIHZhbHVlICE9IG51bGwgJiYgKHR5cGUgPT0gXCJvYmplY3RcIiB8fCB0eXBlID09IFwiZnVuY3Rpb25cIik7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gaXNPYmplY3RMaWtlKHZhbHVlKSB7XG4gICAgICAgICAgcmV0dXJuIHZhbHVlICE9IG51bGwgJiYgdHlwZW9mIHZhbHVlID09IFwib2JqZWN0XCI7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGlzTWFwID0gbm9kZUlzTWFwID8gYmFzZVVuYXJ5KG5vZGVJc01hcCkgOiBiYXNlSXNNYXA7XG4gICAgICAgIGZ1bmN0aW9uIGlzTWF0Y2gob2JqZWN0LCBzb3VyY2UpIHtcbiAgICAgICAgICByZXR1cm4gb2JqZWN0ID09PSBzb3VyY2UgfHwgYmFzZUlzTWF0Y2gob2JqZWN0LCBzb3VyY2UsIGdldE1hdGNoRGF0YShzb3VyY2UpKTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBpc01hdGNoV2l0aChvYmplY3QsIHNvdXJjZSwgY3VzdG9taXplcikge1xuICAgICAgICAgIGN1c3RvbWl6ZXIgPSB0eXBlb2YgY3VzdG9taXplciA9PSBcImZ1bmN0aW9uXCIgPyBjdXN0b21pemVyIDogdW5kZWZpbmVkMjtcbiAgICAgICAgICByZXR1cm4gYmFzZUlzTWF0Y2gob2JqZWN0LCBzb3VyY2UsIGdldE1hdGNoRGF0YShzb3VyY2UpLCBjdXN0b21pemVyKTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBpc05hTjIodmFsdWUpIHtcbiAgICAgICAgICByZXR1cm4gaXNOdW1iZXIodmFsdWUpICYmIHZhbHVlICE9ICt2YWx1ZTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBpc05hdGl2ZSh2YWx1ZSkge1xuICAgICAgICAgIGlmIChpc01hc2thYmxlKHZhbHVlKSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yMihDT1JFX0VSUk9SX1RFWFQpO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gYmFzZUlzTmF0aXZlKHZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBpc051bGwodmFsdWUpIHtcbiAgICAgICAgICByZXR1cm4gdmFsdWUgPT09IG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gaXNOaWwodmFsdWUpIHtcbiAgICAgICAgICByZXR1cm4gdmFsdWUgPT0gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBpc051bWJlcih2YWx1ZSkge1xuICAgICAgICAgIHJldHVybiB0eXBlb2YgdmFsdWUgPT0gXCJudW1iZXJcIiB8fCBpc09iamVjdExpa2UodmFsdWUpICYmIGJhc2VHZXRUYWcodmFsdWUpID09IG51bWJlclRhZztcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBpc1BsYWluT2JqZWN0KHZhbHVlKSB7XG4gICAgICAgICAgaWYgKCFpc09iamVjdExpa2UodmFsdWUpIHx8IGJhc2VHZXRUYWcodmFsdWUpICE9IG9iamVjdFRhZykge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgIH1cbiAgICAgICAgICB2YXIgcHJvdG8gPSBnZXRQcm90b3R5cGUodmFsdWUpO1xuICAgICAgICAgIGlmIChwcm90byA9PT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICAgIHZhciBDdG9yID0gaGFzT3duUHJvcGVydHkuY2FsbChwcm90bywgXCJjb25zdHJ1Y3RvclwiKSAmJiBwcm90by5jb25zdHJ1Y3RvcjtcbiAgICAgICAgICByZXR1cm4gdHlwZW9mIEN0b3IgPT0gXCJmdW5jdGlvblwiICYmIEN0b3IgaW5zdGFuY2VvZiBDdG9yICYmIGZ1bmNUb1N0cmluZy5jYWxsKEN0b3IpID09IG9iamVjdEN0b3JTdHJpbmc7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGlzUmVnRXhwID0gbm9kZUlzUmVnRXhwID8gYmFzZVVuYXJ5KG5vZGVJc1JlZ0V4cCkgOiBiYXNlSXNSZWdFeHA7XG4gICAgICAgIGZ1bmN0aW9uIGlzU2FmZUludGVnZXIodmFsdWUpIHtcbiAgICAgICAgICByZXR1cm4gaXNJbnRlZ2VyKHZhbHVlKSAmJiB2YWx1ZSA+PSAtTUFYX1NBRkVfSU5URUdFUiAmJiB2YWx1ZSA8PSBNQVhfU0FGRV9JTlRFR0VSO1xuICAgICAgICB9XG4gICAgICAgIHZhciBpc1NldCA9IG5vZGVJc1NldCA/IGJhc2VVbmFyeShub2RlSXNTZXQpIDogYmFzZUlzU2V0O1xuICAgICAgICBmdW5jdGlvbiBpc1N0cmluZyh2YWx1ZSkge1xuICAgICAgICAgIHJldHVybiB0eXBlb2YgdmFsdWUgPT0gXCJzdHJpbmdcIiB8fCAhaXNBcnJheSh2YWx1ZSkgJiYgaXNPYmplY3RMaWtlKHZhbHVlKSAmJiBiYXNlR2V0VGFnKHZhbHVlKSA9PSBzdHJpbmdUYWc7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gaXNTeW1ib2wodmFsdWUpIHtcbiAgICAgICAgICByZXR1cm4gdHlwZW9mIHZhbHVlID09IFwic3ltYm9sXCIgfHwgaXNPYmplY3RMaWtlKHZhbHVlKSAmJiBiYXNlR2V0VGFnKHZhbHVlKSA9PSBzeW1ib2xUYWc7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGlzVHlwZWRBcnJheSA9IG5vZGVJc1R5cGVkQXJyYXkgPyBiYXNlVW5hcnkobm9kZUlzVHlwZWRBcnJheSkgOiBiYXNlSXNUeXBlZEFycmF5O1xuICAgICAgICBmdW5jdGlvbiBpc1VuZGVmaW5lZCh2YWx1ZSkge1xuICAgICAgICAgIHJldHVybiB2YWx1ZSA9PT0gdW5kZWZpbmVkMjtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBpc1dlYWtNYXAodmFsdWUpIHtcbiAgICAgICAgICByZXR1cm4gaXNPYmplY3RMaWtlKHZhbHVlKSAmJiBnZXRUYWcodmFsdWUpID09IHdlYWtNYXBUYWc7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gaXNXZWFrU2V0KHZhbHVlKSB7XG4gICAgICAgICAgcmV0dXJuIGlzT2JqZWN0TGlrZSh2YWx1ZSkgJiYgYmFzZUdldFRhZyh2YWx1ZSkgPT0gd2Vha1NldFRhZztcbiAgICAgICAgfVxuICAgICAgICB2YXIgbHQgPSBjcmVhdGVSZWxhdGlvbmFsT3BlcmF0aW9uKGJhc2VMdCk7XG4gICAgICAgIHZhciBsdGUgPSBjcmVhdGVSZWxhdGlvbmFsT3BlcmF0aW9uKGZ1bmN0aW9uKHZhbHVlLCBvdGhlcikge1xuICAgICAgICAgIHJldHVybiB2YWx1ZSA8PSBvdGhlcjtcbiAgICAgICAgfSk7XG4gICAgICAgIGZ1bmN0aW9uIHRvQXJyYXkodmFsdWUpIHtcbiAgICAgICAgICBpZiAoIXZhbHVlKSB7XG4gICAgICAgICAgICByZXR1cm4gW107XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChpc0FycmF5TGlrZSh2YWx1ZSkpIHtcbiAgICAgICAgICAgIHJldHVybiBpc1N0cmluZyh2YWx1ZSkgPyBzdHJpbmdUb0FycmF5KHZhbHVlKSA6IGNvcHlBcnJheSh2YWx1ZSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChzeW1JdGVyYXRvciAmJiB2YWx1ZVtzeW1JdGVyYXRvcl0pIHtcbiAgICAgICAgICAgIHJldHVybiBpdGVyYXRvclRvQXJyYXkodmFsdWVbc3ltSXRlcmF0b3JdKCkpO1xuICAgICAgICAgIH1cbiAgICAgICAgICB2YXIgdGFnID0gZ2V0VGFnKHZhbHVlKSwgZnVuYyA9IHRhZyA9PSBtYXBUYWcgPyBtYXBUb0FycmF5IDogdGFnID09IHNldFRhZyA/IHNldFRvQXJyYXkgOiB2YWx1ZXM7XG4gICAgICAgICAgcmV0dXJuIGZ1bmModmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIHRvRmluaXRlKHZhbHVlKSB7XG4gICAgICAgICAgaWYgKCF2YWx1ZSkge1xuICAgICAgICAgICAgcmV0dXJuIHZhbHVlID09PSAwID8gdmFsdWUgOiAwO1xuICAgICAgICAgIH1cbiAgICAgICAgICB2YWx1ZSA9IHRvTnVtYmVyKHZhbHVlKTtcbiAgICAgICAgICBpZiAodmFsdWUgPT09IElORklOSVRZIHx8IHZhbHVlID09PSAtSU5GSU5JVFkpIHtcbiAgICAgICAgICAgIHZhciBzaWduID0gdmFsdWUgPCAwID8gLTEgOiAxO1xuICAgICAgICAgICAgcmV0dXJuIHNpZ24gKiBNQVhfSU5URUdFUjtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHZhbHVlID09PSB2YWx1ZSA/IHZhbHVlIDogMDtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiB0b0ludGVnZXIodmFsdWUpIHtcbiAgICAgICAgICB2YXIgcmVzdWx0MiA9IHRvRmluaXRlKHZhbHVlKSwgcmVtYWluZGVyID0gcmVzdWx0MiAlIDE7XG4gICAgICAgICAgcmV0dXJuIHJlc3VsdDIgPT09IHJlc3VsdDIgPyByZW1haW5kZXIgPyByZXN1bHQyIC0gcmVtYWluZGVyIDogcmVzdWx0MiA6IDA7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gdG9MZW5ndGgodmFsdWUpIHtcbiAgICAgICAgICByZXR1cm4gdmFsdWUgPyBiYXNlQ2xhbXAodG9JbnRlZ2VyKHZhbHVlKSwgMCwgTUFYX0FSUkFZX0xFTkdUSCkgOiAwO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIHRvTnVtYmVyKHZhbHVlKSB7XG4gICAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PSBcIm51bWJlclwiKSB7XG4gICAgICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChpc1N5bWJvbCh2YWx1ZSkpIHtcbiAgICAgICAgICAgIHJldHVybiBOQU47XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChpc09iamVjdCh2YWx1ZSkpIHtcbiAgICAgICAgICAgIHZhciBvdGhlciA9IHR5cGVvZiB2YWx1ZS52YWx1ZU9mID09IFwiZnVuY3Rpb25cIiA/IHZhbHVlLnZhbHVlT2YoKSA6IHZhbHVlO1xuICAgICAgICAgICAgdmFsdWUgPSBpc09iamVjdChvdGhlcikgPyBvdGhlciArIFwiXCIgOiBvdGhlcjtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSAhPSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICByZXR1cm4gdmFsdWUgPT09IDAgPyB2YWx1ZSA6ICt2YWx1ZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdmFsdWUgPSBiYXNlVHJpbSh2YWx1ZSk7XG4gICAgICAgICAgdmFyIGlzQmluYXJ5ID0gcmVJc0JpbmFyeS50ZXN0KHZhbHVlKTtcbiAgICAgICAgICByZXR1cm4gaXNCaW5hcnkgfHwgcmVJc09jdGFsLnRlc3QodmFsdWUpID8gZnJlZVBhcnNlSW50KHZhbHVlLnNsaWNlKDIpLCBpc0JpbmFyeSA/IDIgOiA4KSA6IHJlSXNCYWRIZXgudGVzdCh2YWx1ZSkgPyBOQU4gOiArdmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gdG9QbGFpbk9iamVjdCh2YWx1ZSkge1xuICAgICAgICAgIHJldHVybiBjb3B5T2JqZWN0KHZhbHVlLCBrZXlzSW4odmFsdWUpKTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiB0b1NhZmVJbnRlZ2VyKHZhbHVlKSB7XG4gICAgICAgICAgcmV0dXJuIHZhbHVlID8gYmFzZUNsYW1wKHRvSW50ZWdlcih2YWx1ZSksIC1NQVhfU0FGRV9JTlRFR0VSLCBNQVhfU0FGRV9JTlRFR0VSKSA6IHZhbHVlID09PSAwID8gdmFsdWUgOiAwO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIHRvU3RyaW5nKHZhbHVlKSB7XG4gICAgICAgICAgcmV0dXJuIHZhbHVlID09IG51bGwgPyBcIlwiIDogYmFzZVRvU3RyaW5nKHZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgYXNzaWduID0gY3JlYXRlQXNzaWduZXIoZnVuY3Rpb24ob2JqZWN0LCBzb3VyY2UpIHtcbiAgICAgICAgICBpZiAoaXNQcm90b3R5cGUoc291cmNlKSB8fCBpc0FycmF5TGlrZShzb3VyY2UpKSB7XG4gICAgICAgICAgICBjb3B5T2JqZWN0KHNvdXJjZSwga2V5cyhzb3VyY2UpLCBvYmplY3QpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cbiAgICAgICAgICBmb3IgKHZhciBrZXkgaW4gc291cmNlKSB7XG4gICAgICAgICAgICBpZiAoaGFzT3duUHJvcGVydHkuY2FsbChzb3VyY2UsIGtleSkpIHtcbiAgICAgICAgICAgICAgYXNzaWduVmFsdWUob2JqZWN0LCBrZXksIHNvdXJjZVtrZXldKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICB2YXIgYXNzaWduSW4gPSBjcmVhdGVBc3NpZ25lcihmdW5jdGlvbihvYmplY3QsIHNvdXJjZSkge1xuICAgICAgICAgIGNvcHlPYmplY3Qoc291cmNlLCBrZXlzSW4oc291cmNlKSwgb2JqZWN0KTtcbiAgICAgICAgfSk7XG4gICAgICAgIHZhciBhc3NpZ25JbldpdGggPSBjcmVhdGVBc3NpZ25lcihmdW5jdGlvbihvYmplY3QsIHNvdXJjZSwgc3JjSW5kZXgsIGN1c3RvbWl6ZXIpIHtcbiAgICAgICAgICBjb3B5T2JqZWN0KHNvdXJjZSwga2V5c0luKHNvdXJjZSksIG9iamVjdCwgY3VzdG9taXplcik7XG4gICAgICAgIH0pO1xuICAgICAgICB2YXIgYXNzaWduV2l0aCA9IGNyZWF0ZUFzc2lnbmVyKGZ1bmN0aW9uKG9iamVjdCwgc291cmNlLCBzcmNJbmRleCwgY3VzdG9taXplcikge1xuICAgICAgICAgIGNvcHlPYmplY3Qoc291cmNlLCBrZXlzKHNvdXJjZSksIG9iamVjdCwgY3VzdG9taXplcik7XG4gICAgICAgIH0pO1xuICAgICAgICB2YXIgYXQgPSBmbGF0UmVzdChiYXNlQXQpO1xuICAgICAgICBmdW5jdGlvbiBjcmVhdGUocHJvdG90eXBlLCBwcm9wZXJ0aWVzKSB7XG4gICAgICAgICAgdmFyIHJlc3VsdDIgPSBiYXNlQ3JlYXRlKHByb3RvdHlwZSk7XG4gICAgICAgICAgcmV0dXJuIHByb3BlcnRpZXMgPT0gbnVsbCA/IHJlc3VsdDIgOiBiYXNlQXNzaWduKHJlc3VsdDIsIHByb3BlcnRpZXMpO1xuICAgICAgICB9XG4gICAgICAgIHZhciBkZWZhdWx0cyA9IGJhc2VSZXN0KGZ1bmN0aW9uKG9iamVjdCwgc291cmNlcykge1xuICAgICAgICAgIG9iamVjdCA9IE9iamVjdDIob2JqZWN0KTtcbiAgICAgICAgICB2YXIgaW5kZXggPSAtMTtcbiAgICAgICAgICB2YXIgbGVuZ3RoID0gc291cmNlcy5sZW5ndGg7XG4gICAgICAgICAgdmFyIGd1YXJkID0gbGVuZ3RoID4gMiA/IHNvdXJjZXNbMl0gOiB1bmRlZmluZWQyO1xuICAgICAgICAgIGlmIChndWFyZCAmJiBpc0l0ZXJhdGVlQ2FsbChzb3VyY2VzWzBdLCBzb3VyY2VzWzFdLCBndWFyZCkpIHtcbiAgICAgICAgICAgIGxlbmd0aCA9IDE7XG4gICAgICAgICAgfVxuICAgICAgICAgIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgICAgICAgICB2YXIgc291cmNlID0gc291cmNlc1tpbmRleF07XG4gICAgICAgICAgICB2YXIgcHJvcHMgPSBrZXlzSW4oc291cmNlKTtcbiAgICAgICAgICAgIHZhciBwcm9wc0luZGV4ID0gLTE7XG4gICAgICAgICAgICB2YXIgcHJvcHNMZW5ndGggPSBwcm9wcy5sZW5ndGg7XG4gICAgICAgICAgICB3aGlsZSAoKytwcm9wc0luZGV4IDwgcHJvcHNMZW5ndGgpIHtcbiAgICAgICAgICAgICAgdmFyIGtleSA9IHByb3BzW3Byb3BzSW5kZXhdO1xuICAgICAgICAgICAgICB2YXIgdmFsdWUgPSBvYmplY3Rba2V5XTtcbiAgICAgICAgICAgICAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQyIHx8IGVxKHZhbHVlLCBvYmplY3RQcm90b1trZXldKSAmJiAhaGFzT3duUHJvcGVydHkuY2FsbChvYmplY3QsIGtleSkpIHtcbiAgICAgICAgICAgICAgICBvYmplY3Rba2V5XSA9IHNvdXJjZVtrZXldO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBvYmplY3Q7XG4gICAgICAgIH0pO1xuICAgICAgICB2YXIgZGVmYXVsdHNEZWVwID0gYmFzZVJlc3QoZnVuY3Rpb24oYXJncykge1xuICAgICAgICAgIGFyZ3MucHVzaCh1bmRlZmluZWQyLCBjdXN0b21EZWZhdWx0c01lcmdlKTtcbiAgICAgICAgICByZXR1cm4gYXBwbHkobWVyZ2VXaXRoLCB1bmRlZmluZWQyLCBhcmdzKTtcbiAgICAgICAgfSk7XG4gICAgICAgIGZ1bmN0aW9uIGZpbmRLZXkob2JqZWN0LCBwcmVkaWNhdGUpIHtcbiAgICAgICAgICByZXR1cm4gYmFzZUZpbmRLZXkob2JqZWN0LCBnZXRJdGVyYXRlZShwcmVkaWNhdGUsIDMpLCBiYXNlRm9yT3duKTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBmaW5kTGFzdEtleShvYmplY3QsIHByZWRpY2F0ZSkge1xuICAgICAgICAgIHJldHVybiBiYXNlRmluZEtleShvYmplY3QsIGdldEl0ZXJhdGVlKHByZWRpY2F0ZSwgMyksIGJhc2VGb3JPd25SaWdodCk7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gZm9ySW4ob2JqZWN0LCBpdGVyYXRlZTIpIHtcbiAgICAgICAgICByZXR1cm4gb2JqZWN0ID09IG51bGwgPyBvYmplY3QgOiBiYXNlRm9yKG9iamVjdCwgZ2V0SXRlcmF0ZWUoaXRlcmF0ZWUyLCAzKSwga2V5c0luKTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBmb3JJblJpZ2h0KG9iamVjdCwgaXRlcmF0ZWUyKSB7XG4gICAgICAgICAgcmV0dXJuIG9iamVjdCA9PSBudWxsID8gb2JqZWN0IDogYmFzZUZvclJpZ2h0KG9iamVjdCwgZ2V0SXRlcmF0ZWUoaXRlcmF0ZWUyLCAzKSwga2V5c0luKTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBmb3JPd24ob2JqZWN0LCBpdGVyYXRlZTIpIHtcbiAgICAgICAgICByZXR1cm4gb2JqZWN0ICYmIGJhc2VGb3JPd24ob2JqZWN0LCBnZXRJdGVyYXRlZShpdGVyYXRlZTIsIDMpKTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBmb3JPd25SaWdodChvYmplY3QsIGl0ZXJhdGVlMikge1xuICAgICAgICAgIHJldHVybiBvYmplY3QgJiYgYmFzZUZvck93blJpZ2h0KG9iamVjdCwgZ2V0SXRlcmF0ZWUoaXRlcmF0ZWUyLCAzKSk7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gZnVuY3Rpb25zKG9iamVjdCkge1xuICAgICAgICAgIHJldHVybiBvYmplY3QgPT0gbnVsbCA/IFtdIDogYmFzZUZ1bmN0aW9ucyhvYmplY3QsIGtleXMob2JqZWN0KSk7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gZnVuY3Rpb25zSW4ob2JqZWN0KSB7XG4gICAgICAgICAgcmV0dXJuIG9iamVjdCA9PSBudWxsID8gW10gOiBiYXNlRnVuY3Rpb25zKG9iamVjdCwga2V5c0luKG9iamVjdCkpO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGdldChvYmplY3QsIHBhdGgsIGRlZmF1bHRWYWx1ZSkge1xuICAgICAgICAgIHZhciByZXN1bHQyID0gb2JqZWN0ID09IG51bGwgPyB1bmRlZmluZWQyIDogYmFzZUdldChvYmplY3QsIHBhdGgpO1xuICAgICAgICAgIHJldHVybiByZXN1bHQyID09PSB1bmRlZmluZWQyID8gZGVmYXVsdFZhbHVlIDogcmVzdWx0MjtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBoYXMob2JqZWN0LCBwYXRoKSB7XG4gICAgICAgICAgcmV0dXJuIG9iamVjdCAhPSBudWxsICYmIGhhc1BhdGgob2JqZWN0LCBwYXRoLCBiYXNlSGFzKTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBoYXNJbihvYmplY3QsIHBhdGgpIHtcbiAgICAgICAgICByZXR1cm4gb2JqZWN0ICE9IG51bGwgJiYgaGFzUGF0aChvYmplY3QsIHBhdGgsIGJhc2VIYXNJbik7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGludmVydCA9IGNyZWF0ZUludmVydGVyKGZ1bmN0aW9uKHJlc3VsdDIsIHZhbHVlLCBrZXkpIHtcbiAgICAgICAgICBpZiAodmFsdWUgIT0gbnVsbCAmJiB0eXBlb2YgdmFsdWUudG9TdHJpbmcgIT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgICAgICB2YWx1ZSA9IG5hdGl2ZU9iamVjdFRvU3RyaW5nLmNhbGwodmFsdWUpO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXN1bHQyW3ZhbHVlXSA9IGtleTtcbiAgICAgICAgfSwgY29uc3RhbnQoaWRlbnRpdHkpKTtcbiAgICAgICAgdmFyIGludmVydEJ5ID0gY3JlYXRlSW52ZXJ0ZXIoZnVuY3Rpb24ocmVzdWx0MiwgdmFsdWUsIGtleSkge1xuICAgICAgICAgIGlmICh2YWx1ZSAhPSBudWxsICYmIHR5cGVvZiB2YWx1ZS50b1N0cmluZyAhPSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgICAgIHZhbHVlID0gbmF0aXZlT2JqZWN0VG9TdHJpbmcuY2FsbCh2YWx1ZSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChoYXNPd25Qcm9wZXJ0eS5jYWxsKHJlc3VsdDIsIHZhbHVlKSkge1xuICAgICAgICAgICAgcmVzdWx0Mlt2YWx1ZV0ucHVzaChrZXkpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXN1bHQyW3ZhbHVlXSA9IFtrZXldO1xuICAgICAgICAgIH1cbiAgICAgICAgfSwgZ2V0SXRlcmF0ZWUpO1xuICAgICAgICB2YXIgaW52b2tlID0gYmFzZVJlc3QoYmFzZUludm9rZSk7XG4gICAgICAgIGZ1bmN0aW9uIGtleXMob2JqZWN0KSB7XG4gICAgICAgICAgcmV0dXJuIGlzQXJyYXlMaWtlKG9iamVjdCkgPyBhcnJheUxpa2VLZXlzKG9iamVjdCkgOiBiYXNlS2V5cyhvYmplY3QpO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGtleXNJbihvYmplY3QpIHtcbiAgICAgICAgICByZXR1cm4gaXNBcnJheUxpa2Uob2JqZWN0KSA/IGFycmF5TGlrZUtleXMob2JqZWN0LCB0cnVlKSA6IGJhc2VLZXlzSW4ob2JqZWN0KTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBtYXBLZXlzKG9iamVjdCwgaXRlcmF0ZWUyKSB7XG4gICAgICAgICAgdmFyIHJlc3VsdDIgPSB7fTtcbiAgICAgICAgICBpdGVyYXRlZTIgPSBnZXRJdGVyYXRlZShpdGVyYXRlZTIsIDMpO1xuICAgICAgICAgIGJhc2VGb3JPd24ob2JqZWN0LCBmdW5jdGlvbih2YWx1ZSwga2V5LCBvYmplY3QyKSB7XG4gICAgICAgICAgICBiYXNlQXNzaWduVmFsdWUocmVzdWx0MiwgaXRlcmF0ZWUyKHZhbHVlLCBrZXksIG9iamVjdDIpLCB2YWx1ZSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgcmV0dXJuIHJlc3VsdDI7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gbWFwVmFsdWVzKG9iamVjdCwgaXRlcmF0ZWUyKSB7XG4gICAgICAgICAgdmFyIHJlc3VsdDIgPSB7fTtcbiAgICAgICAgICBpdGVyYXRlZTIgPSBnZXRJdGVyYXRlZShpdGVyYXRlZTIsIDMpO1xuICAgICAgICAgIGJhc2VGb3JPd24ob2JqZWN0LCBmdW5jdGlvbih2YWx1ZSwga2V5LCBvYmplY3QyKSB7XG4gICAgICAgICAgICBiYXNlQXNzaWduVmFsdWUocmVzdWx0Miwga2V5LCBpdGVyYXRlZTIodmFsdWUsIGtleSwgb2JqZWN0MikpO1xuICAgICAgICAgIH0pO1xuICAgICAgICAgIHJldHVybiByZXN1bHQyO1xuICAgICAgICB9XG4gICAgICAgIHZhciBtZXJnZSA9IGNyZWF0ZUFzc2lnbmVyKGZ1bmN0aW9uKG9iamVjdCwgc291cmNlLCBzcmNJbmRleCkge1xuICAgICAgICAgIGJhc2VNZXJnZShvYmplY3QsIHNvdXJjZSwgc3JjSW5kZXgpO1xuICAgICAgICB9KTtcbiAgICAgICAgdmFyIG1lcmdlV2l0aCA9IGNyZWF0ZUFzc2lnbmVyKGZ1bmN0aW9uKG9iamVjdCwgc291cmNlLCBzcmNJbmRleCwgY3VzdG9taXplcikge1xuICAgICAgICAgIGJhc2VNZXJnZShvYmplY3QsIHNvdXJjZSwgc3JjSW5kZXgsIGN1c3RvbWl6ZXIpO1xuICAgICAgICB9KTtcbiAgICAgICAgdmFyIG9taXQgPSBmbGF0UmVzdChmdW5jdGlvbihvYmplY3QsIHBhdGhzKSB7XG4gICAgICAgICAgdmFyIHJlc3VsdDIgPSB7fTtcbiAgICAgICAgICBpZiAob2JqZWN0ID09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiByZXN1bHQyO1xuICAgICAgICAgIH1cbiAgICAgICAgICB2YXIgaXNEZWVwID0gZmFsc2U7XG4gICAgICAgICAgcGF0aHMgPSBhcnJheU1hcChwYXRocywgZnVuY3Rpb24ocGF0aCkge1xuICAgICAgICAgICAgcGF0aCA9IGNhc3RQYXRoKHBhdGgsIG9iamVjdCk7XG4gICAgICAgICAgICBpc0RlZXAgfHwgKGlzRGVlcCA9IHBhdGgubGVuZ3RoID4gMSk7XG4gICAgICAgICAgICByZXR1cm4gcGF0aDtcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBjb3B5T2JqZWN0KG9iamVjdCwgZ2V0QWxsS2V5c0luKG9iamVjdCksIHJlc3VsdDIpO1xuICAgICAgICAgIGlmIChpc0RlZXApIHtcbiAgICAgICAgICAgIHJlc3VsdDIgPSBiYXNlQ2xvbmUocmVzdWx0MiwgQ0xPTkVfREVFUF9GTEFHIHwgQ0xPTkVfRkxBVF9GTEFHIHwgQ0xPTkVfU1lNQk9MU19GTEFHLCBjdXN0b21PbWl0Q2xvbmUpO1xuICAgICAgICAgIH1cbiAgICAgICAgICB2YXIgbGVuZ3RoID0gcGF0aHMubGVuZ3RoO1xuICAgICAgICAgIHdoaWxlIChsZW5ndGgtLSkge1xuICAgICAgICAgICAgYmFzZVVuc2V0KHJlc3VsdDIsIHBhdGhzW2xlbmd0aF0pO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gcmVzdWx0MjtcbiAgICAgICAgfSk7XG4gICAgICAgIGZ1bmN0aW9uIG9taXRCeShvYmplY3QsIHByZWRpY2F0ZSkge1xuICAgICAgICAgIHJldHVybiBwaWNrQnkob2JqZWN0LCBuZWdhdGUoZ2V0SXRlcmF0ZWUocHJlZGljYXRlKSkpO1xuICAgICAgICB9XG4gICAgICAgIHZhciBwaWNrID0gZmxhdFJlc3QoZnVuY3Rpb24ob2JqZWN0LCBwYXRocykge1xuICAgICAgICAgIHJldHVybiBvYmplY3QgPT0gbnVsbCA/IHt9IDogYmFzZVBpY2sob2JqZWN0LCBwYXRocyk7XG4gICAgICAgIH0pO1xuICAgICAgICBmdW5jdGlvbiBwaWNrQnkob2JqZWN0LCBwcmVkaWNhdGUpIHtcbiAgICAgICAgICBpZiAob2JqZWN0ID09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiB7fTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdmFyIHByb3BzID0gYXJyYXlNYXAoZ2V0QWxsS2V5c0luKG9iamVjdCksIGZ1bmN0aW9uKHByb3ApIHtcbiAgICAgICAgICAgIHJldHVybiBbcHJvcF07XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgcHJlZGljYXRlID0gZ2V0SXRlcmF0ZWUocHJlZGljYXRlKTtcbiAgICAgICAgICByZXR1cm4gYmFzZVBpY2tCeShvYmplY3QsIHByb3BzLCBmdW5jdGlvbih2YWx1ZSwgcGF0aCkge1xuICAgICAgICAgICAgcmV0dXJuIHByZWRpY2F0ZSh2YWx1ZSwgcGF0aFswXSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gcmVzdWx0KG9iamVjdCwgcGF0aCwgZGVmYXVsdFZhbHVlKSB7XG4gICAgICAgICAgcGF0aCA9IGNhc3RQYXRoKHBhdGgsIG9iamVjdCk7XG4gICAgICAgICAgdmFyIGluZGV4ID0gLTEsIGxlbmd0aCA9IHBhdGgubGVuZ3RoO1xuICAgICAgICAgIGlmICghbGVuZ3RoKSB7XG4gICAgICAgICAgICBsZW5ndGggPSAxO1xuICAgICAgICAgICAgb2JqZWN0ID0gdW5kZWZpbmVkMjtcbiAgICAgICAgICB9XG4gICAgICAgICAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICAgICAgICAgIHZhciB2YWx1ZSA9IG9iamVjdCA9PSBudWxsID8gdW5kZWZpbmVkMiA6IG9iamVjdFt0b0tleShwYXRoW2luZGV4XSldO1xuICAgICAgICAgICAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQyKSB7XG4gICAgICAgICAgICAgIGluZGV4ID0gbGVuZ3RoO1xuICAgICAgICAgICAgICB2YWx1ZSA9IGRlZmF1bHRWYWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG9iamVjdCA9IGlzRnVuY3Rpb24odmFsdWUpID8gdmFsdWUuY2FsbChvYmplY3QpIDogdmFsdWU7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBvYmplY3Q7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gc2V0KG9iamVjdCwgcGF0aCwgdmFsdWUpIHtcbiAgICAgICAgICByZXR1cm4gb2JqZWN0ID09IG51bGwgPyBvYmplY3QgOiBiYXNlU2V0KG9iamVjdCwgcGF0aCwgdmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIHNldFdpdGgob2JqZWN0LCBwYXRoLCB2YWx1ZSwgY3VzdG9taXplcikge1xuICAgICAgICAgIGN1c3RvbWl6ZXIgPSB0eXBlb2YgY3VzdG9taXplciA9PSBcImZ1bmN0aW9uXCIgPyBjdXN0b21pemVyIDogdW5kZWZpbmVkMjtcbiAgICAgICAgICByZXR1cm4gb2JqZWN0ID09IG51bGwgPyBvYmplY3QgOiBiYXNlU2V0KG9iamVjdCwgcGF0aCwgdmFsdWUsIGN1c3RvbWl6ZXIpO1xuICAgICAgICB9XG4gICAgICAgIHZhciB0b1BhaXJzID0gY3JlYXRlVG9QYWlycyhrZXlzKTtcbiAgICAgICAgdmFyIHRvUGFpcnNJbiA9IGNyZWF0ZVRvUGFpcnMoa2V5c0luKTtcbiAgICAgICAgZnVuY3Rpb24gdHJhbnNmb3JtKG9iamVjdCwgaXRlcmF0ZWUyLCBhY2N1bXVsYXRvcikge1xuICAgICAgICAgIHZhciBpc0FyciA9IGlzQXJyYXkob2JqZWN0KSwgaXNBcnJMaWtlID0gaXNBcnIgfHwgaXNCdWZmZXIob2JqZWN0KSB8fCBpc1R5cGVkQXJyYXkob2JqZWN0KTtcbiAgICAgICAgICBpdGVyYXRlZTIgPSBnZXRJdGVyYXRlZShpdGVyYXRlZTIsIDQpO1xuICAgICAgICAgIGlmIChhY2N1bXVsYXRvciA9PSBudWxsKSB7XG4gICAgICAgICAgICB2YXIgQ3RvciA9IG9iamVjdCAmJiBvYmplY3QuY29uc3RydWN0b3I7XG4gICAgICAgICAgICBpZiAoaXNBcnJMaWtlKSB7XG4gICAgICAgICAgICAgIGFjY3VtdWxhdG9yID0gaXNBcnIgPyBuZXcgQ3RvcigpIDogW107XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGlzT2JqZWN0KG9iamVjdCkpIHtcbiAgICAgICAgICAgICAgYWNjdW11bGF0b3IgPSBpc0Z1bmN0aW9uKEN0b3IpID8gYmFzZUNyZWF0ZShnZXRQcm90b3R5cGUob2JqZWN0KSkgOiB7fTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIGFjY3VtdWxhdG9yID0ge307XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIChpc0Fyckxpa2UgPyBhcnJheUVhY2ggOiBiYXNlRm9yT3duKShvYmplY3QsIGZ1bmN0aW9uKHZhbHVlLCBpbmRleCwgb2JqZWN0Mikge1xuICAgICAgICAgICAgcmV0dXJuIGl0ZXJhdGVlMihhY2N1bXVsYXRvciwgdmFsdWUsIGluZGV4LCBvYmplY3QyKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgICByZXR1cm4gYWNjdW11bGF0b3I7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gdW5zZXQob2JqZWN0LCBwYXRoKSB7XG4gICAgICAgICAgcmV0dXJuIG9iamVjdCA9PSBudWxsID8gdHJ1ZSA6IGJhc2VVbnNldChvYmplY3QsIHBhdGgpO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIHVwZGF0ZShvYmplY3QsIHBhdGgsIHVwZGF0ZXIpIHtcbiAgICAgICAgICByZXR1cm4gb2JqZWN0ID09IG51bGwgPyBvYmplY3QgOiBiYXNlVXBkYXRlKG9iamVjdCwgcGF0aCwgY2FzdEZ1bmN0aW9uKHVwZGF0ZXIpKTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiB1cGRhdGVXaXRoKG9iamVjdCwgcGF0aCwgdXBkYXRlciwgY3VzdG9taXplcikge1xuICAgICAgICAgIGN1c3RvbWl6ZXIgPSB0eXBlb2YgY3VzdG9taXplciA9PSBcImZ1bmN0aW9uXCIgPyBjdXN0b21pemVyIDogdW5kZWZpbmVkMjtcbiAgICAgICAgICByZXR1cm4gb2JqZWN0ID09IG51bGwgPyBvYmplY3QgOiBiYXNlVXBkYXRlKG9iamVjdCwgcGF0aCwgY2FzdEZ1bmN0aW9uKHVwZGF0ZXIpLCBjdXN0b21pemVyKTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiB2YWx1ZXMob2JqZWN0KSB7XG4gICAgICAgICAgcmV0dXJuIG9iamVjdCA9PSBudWxsID8gW10gOiBiYXNlVmFsdWVzKG9iamVjdCwga2V5cyhvYmplY3QpKTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiB2YWx1ZXNJbihvYmplY3QpIHtcbiAgICAgICAgICByZXR1cm4gb2JqZWN0ID09IG51bGwgPyBbXSA6IGJhc2VWYWx1ZXMob2JqZWN0LCBrZXlzSW4ob2JqZWN0KSk7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gY2xhbXAobnVtYmVyLCBsb3dlciwgdXBwZXIpIHtcbiAgICAgICAgICBpZiAodXBwZXIgPT09IHVuZGVmaW5lZDIpIHtcbiAgICAgICAgICAgIHVwcGVyID0gbG93ZXI7XG4gICAgICAgICAgICBsb3dlciA9IHVuZGVmaW5lZDI7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmICh1cHBlciAhPT0gdW5kZWZpbmVkMikge1xuICAgICAgICAgICAgdXBwZXIgPSB0b051bWJlcih1cHBlcik7XG4gICAgICAgICAgICB1cHBlciA9IHVwcGVyID09PSB1cHBlciA/IHVwcGVyIDogMDtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGxvd2VyICE9PSB1bmRlZmluZWQyKSB7XG4gICAgICAgICAgICBsb3dlciA9IHRvTnVtYmVyKGxvd2VyKTtcbiAgICAgICAgICAgIGxvd2VyID0gbG93ZXIgPT09IGxvd2VyID8gbG93ZXIgOiAwO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gYmFzZUNsYW1wKHRvTnVtYmVyKG51bWJlciksIGxvd2VyLCB1cHBlcik7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gaW5SYW5nZShudW1iZXIsIHN0YXJ0LCBlbmQpIHtcbiAgICAgICAgICBzdGFydCA9IHRvRmluaXRlKHN0YXJ0KTtcbiAgICAgICAgICBpZiAoZW5kID09PSB1bmRlZmluZWQyKSB7XG4gICAgICAgICAgICBlbmQgPSBzdGFydDtcbiAgICAgICAgICAgIHN0YXJ0ID0gMDtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZW5kID0gdG9GaW5pdGUoZW5kKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgbnVtYmVyID0gdG9OdW1iZXIobnVtYmVyKTtcbiAgICAgICAgICByZXR1cm4gYmFzZUluUmFuZ2UobnVtYmVyLCBzdGFydCwgZW5kKTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiByYW5kb20obG93ZXIsIHVwcGVyLCBmbG9hdGluZykge1xuICAgICAgICAgIGlmIChmbG9hdGluZyAmJiB0eXBlb2YgZmxvYXRpbmcgIT0gXCJib29sZWFuXCIgJiYgaXNJdGVyYXRlZUNhbGwobG93ZXIsIHVwcGVyLCBmbG9hdGluZykpIHtcbiAgICAgICAgICAgIHVwcGVyID0gZmxvYXRpbmcgPSB1bmRlZmluZWQyO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoZmxvYXRpbmcgPT09IHVuZGVmaW5lZDIpIHtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgdXBwZXIgPT0gXCJib29sZWFuXCIpIHtcbiAgICAgICAgICAgICAgZmxvYXRpbmcgPSB1cHBlcjtcbiAgICAgICAgICAgICAgdXBwZXIgPSB1bmRlZmluZWQyO1xuICAgICAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgbG93ZXIgPT0gXCJib29sZWFuXCIpIHtcbiAgICAgICAgICAgICAgZmxvYXRpbmcgPSBsb3dlcjtcbiAgICAgICAgICAgICAgbG93ZXIgPSB1bmRlZmluZWQyO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAobG93ZXIgPT09IHVuZGVmaW5lZDIgJiYgdXBwZXIgPT09IHVuZGVmaW5lZDIpIHtcbiAgICAgICAgICAgIGxvd2VyID0gMDtcbiAgICAgICAgICAgIHVwcGVyID0gMTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbG93ZXIgPSB0b0Zpbml0ZShsb3dlcik7XG4gICAgICAgICAgICBpZiAodXBwZXIgPT09IHVuZGVmaW5lZDIpIHtcbiAgICAgICAgICAgICAgdXBwZXIgPSBsb3dlcjtcbiAgICAgICAgICAgICAgbG93ZXIgPSAwO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgdXBwZXIgPSB0b0Zpbml0ZSh1cHBlcik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChsb3dlciA+IHVwcGVyKSB7XG4gICAgICAgICAgICB2YXIgdGVtcCA9IGxvd2VyO1xuICAgICAgICAgICAgbG93ZXIgPSB1cHBlcjtcbiAgICAgICAgICAgIHVwcGVyID0gdGVtcDtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGZsb2F0aW5nIHx8IGxvd2VyICUgMSB8fCB1cHBlciAlIDEpIHtcbiAgICAgICAgICAgIHZhciByYW5kID0gbmF0aXZlUmFuZG9tKCk7XG4gICAgICAgICAgICByZXR1cm4gbmF0aXZlTWluKGxvd2VyICsgcmFuZCAqICh1cHBlciAtIGxvd2VyICsgZnJlZVBhcnNlRmxvYXQoXCIxZS1cIiArICgocmFuZCArIFwiXCIpLmxlbmd0aCAtIDEpKSksIHVwcGVyKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIGJhc2VSYW5kb20obG93ZXIsIHVwcGVyKTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgY2FtZWxDYXNlID0gY3JlYXRlQ29tcG91bmRlcihmdW5jdGlvbihyZXN1bHQyLCB3b3JkLCBpbmRleCkge1xuICAgICAgICAgIHdvcmQgPSB3b3JkLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgICAgcmV0dXJuIHJlc3VsdDIgKyAoaW5kZXggPyBjYXBpdGFsaXplKHdvcmQpIDogd29yZCk7XG4gICAgICAgIH0pO1xuICAgICAgICBmdW5jdGlvbiBjYXBpdGFsaXplKHN0cmluZykge1xuICAgICAgICAgIHJldHVybiB1cHBlckZpcnN0KHRvU3RyaW5nKHN0cmluZykudG9Mb3dlckNhc2UoKSk7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gZGVidXJyKHN0cmluZykge1xuICAgICAgICAgIHN0cmluZyA9IHRvU3RyaW5nKHN0cmluZyk7XG4gICAgICAgICAgcmV0dXJuIHN0cmluZyAmJiBzdHJpbmcucmVwbGFjZShyZUxhdGluLCBkZWJ1cnJMZXR0ZXIpLnJlcGxhY2UocmVDb21ib01hcmssIFwiXCIpO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGVuZHNXaXRoKHN0cmluZywgdGFyZ2V0LCBwb3NpdGlvbikge1xuICAgICAgICAgIHN0cmluZyA9IHRvU3RyaW5nKHN0cmluZyk7XG4gICAgICAgICAgdGFyZ2V0ID0gYmFzZVRvU3RyaW5nKHRhcmdldCk7XG4gICAgICAgICAgdmFyIGxlbmd0aCA9IHN0cmluZy5sZW5ndGg7XG4gICAgICAgICAgcG9zaXRpb24gPSBwb3NpdGlvbiA9PT0gdW5kZWZpbmVkMiA/IGxlbmd0aCA6IGJhc2VDbGFtcCh0b0ludGVnZXIocG9zaXRpb24pLCAwLCBsZW5ndGgpO1xuICAgICAgICAgIHZhciBlbmQgPSBwb3NpdGlvbjtcbiAgICAgICAgICBwb3NpdGlvbiAtPSB0YXJnZXQubGVuZ3RoO1xuICAgICAgICAgIHJldHVybiBwb3NpdGlvbiA+PSAwICYmIHN0cmluZy5zbGljZShwb3NpdGlvbiwgZW5kKSA9PSB0YXJnZXQ7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gZXNjYXBlMihzdHJpbmcpIHtcbiAgICAgICAgICBzdHJpbmcgPSB0b1N0cmluZyhzdHJpbmcpO1xuICAgICAgICAgIHJldHVybiBzdHJpbmcgJiYgcmVIYXNVbmVzY2FwZWRIdG1sLnRlc3Qoc3RyaW5nKSA/IHN0cmluZy5yZXBsYWNlKHJlVW5lc2NhcGVkSHRtbCwgZXNjYXBlSHRtbENoYXIpIDogc3RyaW5nO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGVzY2FwZVJlZ0V4cChzdHJpbmcpIHtcbiAgICAgICAgICBzdHJpbmcgPSB0b1N0cmluZyhzdHJpbmcpO1xuICAgICAgICAgIHJldHVybiBzdHJpbmcgJiYgcmVIYXNSZWdFeHBDaGFyLnRlc3Qoc3RyaW5nKSA/IHN0cmluZy5yZXBsYWNlKHJlUmVnRXhwQ2hhciwgXCJcXFxcJCZcIikgOiBzdHJpbmc7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGtlYmFiQ2FzZSA9IGNyZWF0ZUNvbXBvdW5kZXIoZnVuY3Rpb24ocmVzdWx0Miwgd29yZCwgaW5kZXgpIHtcbiAgICAgICAgICByZXR1cm4gcmVzdWx0MiArIChpbmRleCA/IFwiLVwiIDogXCJcIikgKyB3b3JkLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgIH0pO1xuICAgICAgICB2YXIgbG93ZXJDYXNlID0gY3JlYXRlQ29tcG91bmRlcihmdW5jdGlvbihyZXN1bHQyLCB3b3JkLCBpbmRleCkge1xuICAgICAgICAgIHJldHVybiByZXN1bHQyICsgKGluZGV4ID8gXCIgXCIgOiBcIlwiKSArIHdvcmQudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHZhciBsb3dlckZpcnN0ID0gY3JlYXRlQ2FzZUZpcnN0KFwidG9Mb3dlckNhc2VcIik7XG4gICAgICAgIGZ1bmN0aW9uIHBhZChzdHJpbmcsIGxlbmd0aCwgY2hhcnMpIHtcbiAgICAgICAgICBzdHJpbmcgPSB0b1N0cmluZyhzdHJpbmcpO1xuICAgICAgICAgIGxlbmd0aCA9IHRvSW50ZWdlcihsZW5ndGgpO1xuICAgICAgICAgIHZhciBzdHJMZW5ndGggPSBsZW5ndGggPyBzdHJpbmdTaXplKHN0cmluZykgOiAwO1xuICAgICAgICAgIGlmICghbGVuZ3RoIHx8IHN0ckxlbmd0aCA+PSBsZW5ndGgpIHtcbiAgICAgICAgICAgIHJldHVybiBzdHJpbmc7XG4gICAgICAgICAgfVxuICAgICAgICAgIHZhciBtaWQgPSAobGVuZ3RoIC0gc3RyTGVuZ3RoKSAvIDI7XG4gICAgICAgICAgcmV0dXJuIGNyZWF0ZVBhZGRpbmcobmF0aXZlRmxvb3IobWlkKSwgY2hhcnMpICsgc3RyaW5nICsgY3JlYXRlUGFkZGluZyhuYXRpdmVDZWlsKG1pZCksIGNoYXJzKTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBwYWRFbmQoc3RyaW5nLCBsZW5ndGgsIGNoYXJzKSB7XG4gICAgICAgICAgc3RyaW5nID0gdG9TdHJpbmcoc3RyaW5nKTtcbiAgICAgICAgICBsZW5ndGggPSB0b0ludGVnZXIobGVuZ3RoKTtcbiAgICAgICAgICB2YXIgc3RyTGVuZ3RoID0gbGVuZ3RoID8gc3RyaW5nU2l6ZShzdHJpbmcpIDogMDtcbiAgICAgICAgICByZXR1cm4gbGVuZ3RoICYmIHN0ckxlbmd0aCA8IGxlbmd0aCA/IHN0cmluZyArIGNyZWF0ZVBhZGRpbmcobGVuZ3RoIC0gc3RyTGVuZ3RoLCBjaGFycykgOiBzdHJpbmc7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gcGFkU3RhcnQoc3RyaW5nLCBsZW5ndGgsIGNoYXJzKSB7XG4gICAgICAgICAgc3RyaW5nID0gdG9TdHJpbmcoc3RyaW5nKTtcbiAgICAgICAgICBsZW5ndGggPSB0b0ludGVnZXIobGVuZ3RoKTtcbiAgICAgICAgICB2YXIgc3RyTGVuZ3RoID0gbGVuZ3RoID8gc3RyaW5nU2l6ZShzdHJpbmcpIDogMDtcbiAgICAgICAgICByZXR1cm4gbGVuZ3RoICYmIHN0ckxlbmd0aCA8IGxlbmd0aCA/IGNyZWF0ZVBhZGRpbmcobGVuZ3RoIC0gc3RyTGVuZ3RoLCBjaGFycykgKyBzdHJpbmcgOiBzdHJpbmc7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gcGFyc2VJbnQyKHN0cmluZywgcmFkaXgsIGd1YXJkKSB7XG4gICAgICAgICAgaWYgKGd1YXJkIHx8IHJhZGl4ID09IG51bGwpIHtcbiAgICAgICAgICAgIHJhZGl4ID0gMDtcbiAgICAgICAgICB9IGVsc2UgaWYgKHJhZGl4KSB7XG4gICAgICAgICAgICByYWRpeCA9ICtyYWRpeDtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIG5hdGl2ZVBhcnNlSW50KHRvU3RyaW5nKHN0cmluZykucmVwbGFjZShyZVRyaW1TdGFydCwgXCJcIiksIHJhZGl4IHx8IDApO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIHJlcGVhdChzdHJpbmcsIG4sIGd1YXJkKSB7XG4gICAgICAgICAgaWYgKGd1YXJkID8gaXNJdGVyYXRlZUNhbGwoc3RyaW5nLCBuLCBndWFyZCkgOiBuID09PSB1bmRlZmluZWQyKSB7XG4gICAgICAgICAgICBuID0gMTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbiA9IHRvSW50ZWdlcihuKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIGJhc2VSZXBlYXQodG9TdHJpbmcoc3RyaW5nKSwgbik7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gcmVwbGFjZSgpIHtcbiAgICAgICAgICB2YXIgYXJncyA9IGFyZ3VtZW50cywgc3RyaW5nID0gdG9TdHJpbmcoYXJnc1swXSk7XG4gICAgICAgICAgcmV0dXJuIGFyZ3MubGVuZ3RoIDwgMyA/IHN0cmluZyA6IHN0cmluZy5yZXBsYWNlKGFyZ3NbMV0sIGFyZ3NbMl0pO1xuICAgICAgICB9XG4gICAgICAgIHZhciBzbmFrZUNhc2UgPSBjcmVhdGVDb21wb3VuZGVyKGZ1bmN0aW9uKHJlc3VsdDIsIHdvcmQsIGluZGV4KSB7XG4gICAgICAgICAgcmV0dXJuIHJlc3VsdDIgKyAoaW5kZXggPyBcIl9cIiA6IFwiXCIpICsgd29yZC50b0xvd2VyQ2FzZSgpO1xuICAgICAgICB9KTtcbiAgICAgICAgZnVuY3Rpb24gc3BsaXQoc3RyaW5nLCBzZXBhcmF0b3IsIGxpbWl0KSB7XG4gICAgICAgICAgaWYgKGxpbWl0ICYmIHR5cGVvZiBsaW1pdCAhPSBcIm51bWJlclwiICYmIGlzSXRlcmF0ZWVDYWxsKHN0cmluZywgc2VwYXJhdG9yLCBsaW1pdCkpIHtcbiAgICAgICAgICAgIHNlcGFyYXRvciA9IGxpbWl0ID0gdW5kZWZpbmVkMjtcbiAgICAgICAgICB9XG4gICAgICAgICAgbGltaXQgPSBsaW1pdCA9PT0gdW5kZWZpbmVkMiA/IE1BWF9BUlJBWV9MRU5HVEggOiBsaW1pdCA+Pj4gMDtcbiAgICAgICAgICBpZiAoIWxpbWl0KSB7XG4gICAgICAgICAgICByZXR1cm4gW107XG4gICAgICAgICAgfVxuICAgICAgICAgIHN0cmluZyA9IHRvU3RyaW5nKHN0cmluZyk7XG4gICAgICAgICAgaWYgKHN0cmluZyAmJiAodHlwZW9mIHNlcGFyYXRvciA9PSBcInN0cmluZ1wiIHx8IHNlcGFyYXRvciAhPSBudWxsICYmICFpc1JlZ0V4cChzZXBhcmF0b3IpKSkge1xuICAgICAgICAgICAgc2VwYXJhdG9yID0gYmFzZVRvU3RyaW5nKHNlcGFyYXRvcik7XG4gICAgICAgICAgICBpZiAoIXNlcGFyYXRvciAmJiBoYXNVbmljb2RlKHN0cmluZykpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIGNhc3RTbGljZShzdHJpbmdUb0FycmF5KHN0cmluZyksIDAsIGxpbWl0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHN0cmluZy5zcGxpdChzZXBhcmF0b3IsIGxpbWl0KTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgc3RhcnRDYXNlID0gY3JlYXRlQ29tcG91bmRlcihmdW5jdGlvbihyZXN1bHQyLCB3b3JkLCBpbmRleCkge1xuICAgICAgICAgIHJldHVybiByZXN1bHQyICsgKGluZGV4ID8gXCIgXCIgOiBcIlwiKSArIHVwcGVyRmlyc3Qod29yZCk7XG4gICAgICAgIH0pO1xuICAgICAgICBmdW5jdGlvbiBzdGFydHNXaXRoKHN0cmluZywgdGFyZ2V0LCBwb3NpdGlvbikge1xuICAgICAgICAgIHN0cmluZyA9IHRvU3RyaW5nKHN0cmluZyk7XG4gICAgICAgICAgcG9zaXRpb24gPSBwb3NpdGlvbiA9PSBudWxsID8gMCA6IGJhc2VDbGFtcCh0b0ludGVnZXIocG9zaXRpb24pLCAwLCBzdHJpbmcubGVuZ3RoKTtcbiAgICAgICAgICB0YXJnZXQgPSBiYXNlVG9TdHJpbmcodGFyZ2V0KTtcbiAgICAgICAgICByZXR1cm4gc3RyaW5nLnNsaWNlKHBvc2l0aW9uLCBwb3NpdGlvbiArIHRhcmdldC5sZW5ndGgpID09IHRhcmdldDtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiB0ZW1wbGF0ZShzdHJpbmcsIG9wdGlvbnMsIGd1YXJkKSB7XG4gICAgICAgICAgdmFyIHNldHRpbmdzID0gbG9kYXNoLnRlbXBsYXRlU2V0dGluZ3M7XG4gICAgICAgICAgaWYgKGd1YXJkICYmIGlzSXRlcmF0ZWVDYWxsKHN0cmluZywgb3B0aW9ucywgZ3VhcmQpKSB7XG4gICAgICAgICAgICBvcHRpb25zID0gdW5kZWZpbmVkMjtcbiAgICAgICAgICB9XG4gICAgICAgICAgc3RyaW5nID0gdG9TdHJpbmcoc3RyaW5nKTtcbiAgICAgICAgICBvcHRpb25zID0gYXNzaWduSW5XaXRoKHt9LCBvcHRpb25zLCBzZXR0aW5ncywgY3VzdG9tRGVmYXVsdHNBc3NpZ25Jbik7XG4gICAgICAgICAgdmFyIGltcG9ydHMgPSBhc3NpZ25JbldpdGgoe30sIG9wdGlvbnMuaW1wb3J0cywgc2V0dGluZ3MuaW1wb3J0cywgY3VzdG9tRGVmYXVsdHNBc3NpZ25JbiksIGltcG9ydHNLZXlzID0ga2V5cyhpbXBvcnRzKSwgaW1wb3J0c1ZhbHVlcyA9IGJhc2VWYWx1ZXMoaW1wb3J0cywgaW1wb3J0c0tleXMpO1xuICAgICAgICAgIHZhciBpc0VzY2FwaW5nLCBpc0V2YWx1YXRpbmcsIGluZGV4ID0gMCwgaW50ZXJwb2xhdGUgPSBvcHRpb25zLmludGVycG9sYXRlIHx8IHJlTm9NYXRjaCwgc291cmNlID0gXCJfX3AgKz0gJ1wiO1xuICAgICAgICAgIHZhciByZURlbGltaXRlcnMgPSBSZWdFeHAyKFxuICAgICAgICAgICAgKG9wdGlvbnMuZXNjYXBlIHx8IHJlTm9NYXRjaCkuc291cmNlICsgXCJ8XCIgKyBpbnRlcnBvbGF0ZS5zb3VyY2UgKyBcInxcIiArIChpbnRlcnBvbGF0ZSA9PT0gcmVJbnRlcnBvbGF0ZSA/IHJlRXNUZW1wbGF0ZSA6IHJlTm9NYXRjaCkuc291cmNlICsgXCJ8XCIgKyAob3B0aW9ucy5ldmFsdWF0ZSB8fCByZU5vTWF0Y2gpLnNvdXJjZSArIFwifCRcIixcbiAgICAgICAgICAgIFwiZ1wiXG4gICAgICAgICAgKTtcbiAgICAgICAgICB2YXIgc291cmNlVVJMID0gXCIvLyMgc291cmNlVVJMPVwiICsgKGhhc093blByb3BlcnR5LmNhbGwob3B0aW9ucywgXCJzb3VyY2VVUkxcIikgPyAob3B0aW9ucy5zb3VyY2VVUkwgKyBcIlwiKS5yZXBsYWNlKC9cXHMvZywgXCIgXCIpIDogXCJsb2Rhc2gudGVtcGxhdGVTb3VyY2VzW1wiICsgKyt0ZW1wbGF0ZUNvdW50ZXIgKyBcIl1cIikgKyBcIlxcblwiO1xuICAgICAgICAgIHN0cmluZy5yZXBsYWNlKHJlRGVsaW1pdGVycywgZnVuY3Rpb24obWF0Y2gsIGVzY2FwZVZhbHVlLCBpbnRlcnBvbGF0ZVZhbHVlLCBlc1RlbXBsYXRlVmFsdWUsIGV2YWx1YXRlVmFsdWUsIG9mZnNldCkge1xuICAgICAgICAgICAgaW50ZXJwb2xhdGVWYWx1ZSB8fCAoaW50ZXJwb2xhdGVWYWx1ZSA9IGVzVGVtcGxhdGVWYWx1ZSk7XG4gICAgICAgICAgICBzb3VyY2UgKz0gc3RyaW5nLnNsaWNlKGluZGV4LCBvZmZzZXQpLnJlcGxhY2UocmVVbmVzY2FwZWRTdHJpbmcsIGVzY2FwZVN0cmluZ0NoYXIpO1xuICAgICAgICAgICAgaWYgKGVzY2FwZVZhbHVlKSB7XG4gICAgICAgICAgICAgIGlzRXNjYXBpbmcgPSB0cnVlO1xuICAgICAgICAgICAgICBzb3VyY2UgKz0gXCInICtcXG5fX2UoXCIgKyBlc2NhcGVWYWx1ZSArIFwiKSArXFxuJ1wiO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGV2YWx1YXRlVmFsdWUpIHtcbiAgICAgICAgICAgICAgaXNFdmFsdWF0aW5nID0gdHJ1ZTtcbiAgICAgICAgICAgICAgc291cmNlICs9IFwiJztcXG5cIiArIGV2YWx1YXRlVmFsdWUgKyBcIjtcXG5fX3AgKz0gJ1wiO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGludGVycG9sYXRlVmFsdWUpIHtcbiAgICAgICAgICAgICAgc291cmNlICs9IFwiJyArXFxuKChfX3QgPSAoXCIgKyBpbnRlcnBvbGF0ZVZhbHVlICsgXCIpKSA9PSBudWxsID8gJycgOiBfX3QpICtcXG4nXCI7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpbmRleCA9IG9mZnNldCArIG1hdGNoLmxlbmd0aDtcbiAgICAgICAgICAgIHJldHVybiBtYXRjaDtcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBzb3VyY2UgKz0gXCInO1xcblwiO1xuICAgICAgICAgIHZhciB2YXJpYWJsZSA9IGhhc093blByb3BlcnR5LmNhbGwob3B0aW9ucywgXCJ2YXJpYWJsZVwiKSAmJiBvcHRpb25zLnZhcmlhYmxlO1xuICAgICAgICAgIGlmICghdmFyaWFibGUpIHtcbiAgICAgICAgICAgIHNvdXJjZSA9IFwid2l0aCAob2JqKSB7XFxuXCIgKyBzb3VyY2UgKyBcIlxcbn1cXG5cIjtcbiAgICAgICAgICB9IGVsc2UgaWYgKHJlRm9yYmlkZGVuSWRlbnRpZmllckNoYXJzLnRlc3QodmFyaWFibGUpKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IyKElOVkFMSURfVEVNUExfVkFSX0VSUk9SX1RFWFQpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBzb3VyY2UgPSAoaXNFdmFsdWF0aW5nID8gc291cmNlLnJlcGxhY2UocmVFbXB0eVN0cmluZ0xlYWRpbmcsIFwiXCIpIDogc291cmNlKS5yZXBsYWNlKHJlRW1wdHlTdHJpbmdNaWRkbGUsIFwiJDFcIikucmVwbGFjZShyZUVtcHR5U3RyaW5nVHJhaWxpbmcsIFwiJDE7XCIpO1xuICAgICAgICAgIHNvdXJjZSA9IFwiZnVuY3Rpb24oXCIgKyAodmFyaWFibGUgfHwgXCJvYmpcIikgKyBcIikge1xcblwiICsgKHZhcmlhYmxlID8gXCJcIiA6IFwib2JqIHx8IChvYmogPSB7fSk7XFxuXCIpICsgXCJ2YXIgX190LCBfX3AgPSAnJ1wiICsgKGlzRXNjYXBpbmcgPyBcIiwgX19lID0gXy5lc2NhcGVcIiA6IFwiXCIpICsgKGlzRXZhbHVhdGluZyA/IFwiLCBfX2ogPSBBcnJheS5wcm90b3R5cGUuam9pbjtcXG5mdW5jdGlvbiBwcmludCgpIHsgX19wICs9IF9fai5jYWxsKGFyZ3VtZW50cywgJycpIH1cXG5cIiA6IFwiO1xcblwiKSArIHNvdXJjZSArIFwicmV0dXJuIF9fcFxcbn1cIjtcbiAgICAgICAgICB2YXIgcmVzdWx0MiA9IGF0dGVtcHQoZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICByZXR1cm4gRnVuY3Rpb24yKGltcG9ydHNLZXlzLCBzb3VyY2VVUkwgKyBcInJldHVybiBcIiArIHNvdXJjZSkuYXBwbHkodW5kZWZpbmVkMiwgaW1wb3J0c1ZhbHVlcyk7XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgcmVzdWx0Mi5zb3VyY2UgPSBzb3VyY2U7XG4gICAgICAgICAgaWYgKGlzRXJyb3IocmVzdWx0MikpIHtcbiAgICAgICAgICAgIHRocm93IHJlc3VsdDI7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiByZXN1bHQyO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIHRvTG93ZXIodmFsdWUpIHtcbiAgICAgICAgICByZXR1cm4gdG9TdHJpbmcodmFsdWUpLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gdG9VcHBlcih2YWx1ZSkge1xuICAgICAgICAgIHJldHVybiB0b1N0cmluZyh2YWx1ZSkudG9VcHBlckNhc2UoKTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiB0cmltKHN0cmluZywgY2hhcnMsIGd1YXJkKSB7XG4gICAgICAgICAgc3RyaW5nID0gdG9TdHJpbmcoc3RyaW5nKTtcbiAgICAgICAgICBpZiAoc3RyaW5nICYmIChndWFyZCB8fCBjaGFycyA9PT0gdW5kZWZpbmVkMikpIHtcbiAgICAgICAgICAgIHJldHVybiBiYXNlVHJpbShzdHJpbmcpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoIXN0cmluZyB8fCAhKGNoYXJzID0gYmFzZVRvU3RyaW5nKGNoYXJzKSkpIHtcbiAgICAgICAgICAgIHJldHVybiBzdHJpbmc7XG4gICAgICAgICAgfVxuICAgICAgICAgIHZhciBzdHJTeW1ib2xzID0gc3RyaW5nVG9BcnJheShzdHJpbmcpLCBjaHJTeW1ib2xzID0gc3RyaW5nVG9BcnJheShjaGFycyksIHN0YXJ0ID0gY2hhcnNTdGFydEluZGV4KHN0clN5bWJvbHMsIGNoclN5bWJvbHMpLCBlbmQgPSBjaGFyc0VuZEluZGV4KHN0clN5bWJvbHMsIGNoclN5bWJvbHMpICsgMTtcbiAgICAgICAgICByZXR1cm4gY2FzdFNsaWNlKHN0clN5bWJvbHMsIHN0YXJ0LCBlbmQpLmpvaW4oXCJcIik7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gdHJpbUVuZChzdHJpbmcsIGNoYXJzLCBndWFyZCkge1xuICAgICAgICAgIHN0cmluZyA9IHRvU3RyaW5nKHN0cmluZyk7XG4gICAgICAgICAgaWYgKHN0cmluZyAmJiAoZ3VhcmQgfHwgY2hhcnMgPT09IHVuZGVmaW5lZDIpKSB7XG4gICAgICAgICAgICByZXR1cm4gc3RyaW5nLnNsaWNlKDAsIHRyaW1tZWRFbmRJbmRleChzdHJpbmcpICsgMSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmICghc3RyaW5nIHx8ICEoY2hhcnMgPSBiYXNlVG9TdHJpbmcoY2hhcnMpKSkge1xuICAgICAgICAgICAgcmV0dXJuIHN0cmluZztcbiAgICAgICAgICB9XG4gICAgICAgICAgdmFyIHN0clN5bWJvbHMgPSBzdHJpbmdUb0FycmF5KHN0cmluZyksIGVuZCA9IGNoYXJzRW5kSW5kZXgoc3RyU3ltYm9scywgc3RyaW5nVG9BcnJheShjaGFycykpICsgMTtcbiAgICAgICAgICByZXR1cm4gY2FzdFNsaWNlKHN0clN5bWJvbHMsIDAsIGVuZCkuam9pbihcIlwiKTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiB0cmltU3RhcnQoc3RyaW5nLCBjaGFycywgZ3VhcmQpIHtcbiAgICAgICAgICBzdHJpbmcgPSB0b1N0cmluZyhzdHJpbmcpO1xuICAgICAgICAgIGlmIChzdHJpbmcgJiYgKGd1YXJkIHx8IGNoYXJzID09PSB1bmRlZmluZWQyKSkge1xuICAgICAgICAgICAgcmV0dXJuIHN0cmluZy5yZXBsYWNlKHJlVHJpbVN0YXJ0LCBcIlwiKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKCFzdHJpbmcgfHwgIShjaGFycyA9IGJhc2VUb1N0cmluZyhjaGFycykpKSB7XG4gICAgICAgICAgICByZXR1cm4gc3RyaW5nO1xuICAgICAgICAgIH1cbiAgICAgICAgICB2YXIgc3RyU3ltYm9scyA9IHN0cmluZ1RvQXJyYXkoc3RyaW5nKSwgc3RhcnQgPSBjaGFyc1N0YXJ0SW5kZXgoc3RyU3ltYm9scywgc3RyaW5nVG9BcnJheShjaGFycykpO1xuICAgICAgICAgIHJldHVybiBjYXN0U2xpY2Uoc3RyU3ltYm9scywgc3RhcnQpLmpvaW4oXCJcIik7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gdHJ1bmNhdGUoc3RyaW5nLCBvcHRpb25zKSB7XG4gICAgICAgICAgdmFyIGxlbmd0aCA9IERFRkFVTFRfVFJVTkNfTEVOR1RILCBvbWlzc2lvbiA9IERFRkFVTFRfVFJVTkNfT01JU1NJT047XG4gICAgICAgICAgaWYgKGlzT2JqZWN0KG9wdGlvbnMpKSB7XG4gICAgICAgICAgICB2YXIgc2VwYXJhdG9yID0gXCJzZXBhcmF0b3JcIiBpbiBvcHRpb25zID8gb3B0aW9ucy5zZXBhcmF0b3IgOiBzZXBhcmF0b3I7XG4gICAgICAgICAgICBsZW5ndGggPSBcImxlbmd0aFwiIGluIG9wdGlvbnMgPyB0b0ludGVnZXIob3B0aW9ucy5sZW5ndGgpIDogbGVuZ3RoO1xuICAgICAgICAgICAgb21pc3Npb24gPSBcIm9taXNzaW9uXCIgaW4gb3B0aW9ucyA/IGJhc2VUb1N0cmluZyhvcHRpb25zLm9taXNzaW9uKSA6IG9taXNzaW9uO1xuICAgICAgICAgIH1cbiAgICAgICAgICBzdHJpbmcgPSB0b1N0cmluZyhzdHJpbmcpO1xuICAgICAgICAgIHZhciBzdHJMZW5ndGggPSBzdHJpbmcubGVuZ3RoO1xuICAgICAgICAgIGlmIChoYXNVbmljb2RlKHN0cmluZykpIHtcbiAgICAgICAgICAgIHZhciBzdHJTeW1ib2xzID0gc3RyaW5nVG9BcnJheShzdHJpbmcpO1xuICAgICAgICAgICAgc3RyTGVuZ3RoID0gc3RyU3ltYm9scy5sZW5ndGg7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChsZW5ndGggPj0gc3RyTGVuZ3RoKSB7XG4gICAgICAgICAgICByZXR1cm4gc3RyaW5nO1xuICAgICAgICAgIH1cbiAgICAgICAgICB2YXIgZW5kID0gbGVuZ3RoIC0gc3RyaW5nU2l6ZShvbWlzc2lvbik7XG4gICAgICAgICAgaWYgKGVuZCA8IDEpIHtcbiAgICAgICAgICAgIHJldHVybiBvbWlzc2lvbjtcbiAgICAgICAgICB9XG4gICAgICAgICAgdmFyIHJlc3VsdDIgPSBzdHJTeW1ib2xzID8gY2FzdFNsaWNlKHN0clN5bWJvbHMsIDAsIGVuZCkuam9pbihcIlwiKSA6IHN0cmluZy5zbGljZSgwLCBlbmQpO1xuICAgICAgICAgIGlmIChzZXBhcmF0b3IgPT09IHVuZGVmaW5lZDIpIHtcbiAgICAgICAgICAgIHJldHVybiByZXN1bHQyICsgb21pc3Npb247XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChzdHJTeW1ib2xzKSB7XG4gICAgICAgICAgICBlbmQgKz0gcmVzdWx0Mi5sZW5ndGggLSBlbmQ7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChpc1JlZ0V4cChzZXBhcmF0b3IpKSB7XG4gICAgICAgICAgICBpZiAoc3RyaW5nLnNsaWNlKGVuZCkuc2VhcmNoKHNlcGFyYXRvcikpIHtcbiAgICAgICAgICAgICAgdmFyIG1hdGNoLCBzdWJzdHJpbmcgPSByZXN1bHQyO1xuICAgICAgICAgICAgICBpZiAoIXNlcGFyYXRvci5nbG9iYWwpIHtcbiAgICAgICAgICAgICAgICBzZXBhcmF0b3IgPSBSZWdFeHAyKHNlcGFyYXRvci5zb3VyY2UsIHRvU3RyaW5nKHJlRmxhZ3MuZXhlYyhzZXBhcmF0b3IpKSArIFwiZ1wiKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBzZXBhcmF0b3IubGFzdEluZGV4ID0gMDtcbiAgICAgICAgICAgICAgd2hpbGUgKG1hdGNoID0gc2VwYXJhdG9yLmV4ZWMoc3Vic3RyaW5nKSkge1xuICAgICAgICAgICAgICAgIHZhciBuZXdFbmQgPSBtYXRjaC5pbmRleDtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICByZXN1bHQyID0gcmVzdWx0Mi5zbGljZSgwLCBuZXdFbmQgPT09IHVuZGVmaW5lZDIgPyBlbmQgOiBuZXdFbmQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSBpZiAoc3RyaW5nLmluZGV4T2YoYmFzZVRvU3RyaW5nKHNlcGFyYXRvciksIGVuZCkgIT0gZW5kKSB7XG4gICAgICAgICAgICB2YXIgaW5kZXggPSByZXN1bHQyLmxhc3RJbmRleE9mKHNlcGFyYXRvcik7XG4gICAgICAgICAgICBpZiAoaW5kZXggPiAtMSkge1xuICAgICAgICAgICAgICByZXN1bHQyID0gcmVzdWx0Mi5zbGljZSgwLCBpbmRleCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiByZXN1bHQyICsgb21pc3Npb247XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gdW5lc2NhcGUyKHN0cmluZykge1xuICAgICAgICAgIHN0cmluZyA9IHRvU3RyaW5nKHN0cmluZyk7XG4gICAgICAgICAgcmV0dXJuIHN0cmluZyAmJiByZUhhc0VzY2FwZWRIdG1sLnRlc3Qoc3RyaW5nKSA/IHN0cmluZy5yZXBsYWNlKHJlRXNjYXBlZEh0bWwsIHVuZXNjYXBlSHRtbENoYXIpIDogc3RyaW5nO1xuICAgICAgICB9XG4gICAgICAgIHZhciB1cHBlckNhc2UgPSBjcmVhdGVDb21wb3VuZGVyKGZ1bmN0aW9uKHJlc3VsdDIsIHdvcmQsIGluZGV4KSB7XG4gICAgICAgICAgcmV0dXJuIHJlc3VsdDIgKyAoaW5kZXggPyBcIiBcIiA6IFwiXCIpICsgd29yZC50b1VwcGVyQ2FzZSgpO1xuICAgICAgICB9KTtcbiAgICAgICAgdmFyIHVwcGVyRmlyc3QgPSBjcmVhdGVDYXNlRmlyc3QoXCJ0b1VwcGVyQ2FzZVwiKTtcbiAgICAgICAgZnVuY3Rpb24gd29yZHMoc3RyaW5nLCBwYXR0ZXJuLCBndWFyZCkge1xuICAgICAgICAgIHN0cmluZyA9IHRvU3RyaW5nKHN0cmluZyk7XG4gICAgICAgICAgcGF0dGVybiA9IGd1YXJkID8gdW5kZWZpbmVkMiA6IHBhdHRlcm47XG4gICAgICAgICAgaWYgKHBhdHRlcm4gPT09IHVuZGVmaW5lZDIpIHtcbiAgICAgICAgICAgIHJldHVybiBoYXNVbmljb2RlV29yZChzdHJpbmcpID8gdW5pY29kZVdvcmRzKHN0cmluZykgOiBhc2NpaVdvcmRzKHN0cmluZyk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBzdHJpbmcubWF0Y2gocGF0dGVybikgfHwgW107XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGF0dGVtcHQgPSBiYXNlUmVzdChmdW5jdGlvbihmdW5jLCBhcmdzKSB7XG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHJldHVybiBhcHBseShmdW5jLCB1bmRlZmluZWQyLCBhcmdzKTtcbiAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICByZXR1cm4gaXNFcnJvcihlKSA/IGUgOiBuZXcgRXJyb3IyKGUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHZhciBiaW5kQWxsID0gZmxhdFJlc3QoZnVuY3Rpb24ob2JqZWN0LCBtZXRob2ROYW1lcykge1xuICAgICAgICAgIGFycmF5RWFjaChtZXRob2ROYW1lcywgZnVuY3Rpb24oa2V5KSB7XG4gICAgICAgICAgICBrZXkgPSB0b0tleShrZXkpO1xuICAgICAgICAgICAgYmFzZUFzc2lnblZhbHVlKG9iamVjdCwga2V5LCBiaW5kKG9iamVjdFtrZXldLCBvYmplY3QpKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgICByZXR1cm4gb2JqZWN0O1xuICAgICAgICB9KTtcbiAgICAgICAgZnVuY3Rpb24gY29uZChwYWlycykge1xuICAgICAgICAgIHZhciBsZW5ndGggPSBwYWlycyA9PSBudWxsID8gMCA6IHBhaXJzLmxlbmd0aCwgdG9JdGVyYXRlZSA9IGdldEl0ZXJhdGVlKCk7XG4gICAgICAgICAgcGFpcnMgPSAhbGVuZ3RoID8gW10gOiBhcnJheU1hcChwYWlycywgZnVuY3Rpb24ocGFpcikge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBwYWlyWzFdICE9IFwiZnVuY3Rpb25cIikge1xuICAgICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yMihGVU5DX0VSUk9SX1RFWFQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIFt0b0l0ZXJhdGVlKHBhaXJbMF0pLCBwYWlyWzFdXTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgICByZXR1cm4gYmFzZVJlc3QoZnVuY3Rpb24oYXJncykge1xuICAgICAgICAgICAgdmFyIGluZGV4ID0gLTE7XG4gICAgICAgICAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgICAgICAgICAgICB2YXIgcGFpciA9IHBhaXJzW2luZGV4XTtcbiAgICAgICAgICAgICAgaWYgKGFwcGx5KHBhaXJbMF0sIHRoaXMsIGFyZ3MpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGFwcGx5KHBhaXJbMV0sIHRoaXMsIGFyZ3MpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gY29uZm9ybXMoc291cmNlKSB7XG4gICAgICAgICAgcmV0dXJuIGJhc2VDb25mb3JtcyhiYXNlQ2xvbmUoc291cmNlLCBDTE9ORV9ERUVQX0ZMQUcpKTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBjb25zdGFudCh2YWx1ZSkge1xuICAgICAgICAgIHJldHVybiBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGRlZmF1bHRUbyh2YWx1ZSwgZGVmYXVsdFZhbHVlKSB7XG4gICAgICAgICAgcmV0dXJuIHZhbHVlID09IG51bGwgfHwgdmFsdWUgIT09IHZhbHVlID8gZGVmYXVsdFZhbHVlIDogdmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGZsb3cgPSBjcmVhdGVGbG93KCk7XG4gICAgICAgIHZhciBmbG93UmlnaHQgPSBjcmVhdGVGbG93KHRydWUpO1xuICAgICAgICBmdW5jdGlvbiBpZGVudGl0eSh2YWx1ZSkge1xuICAgICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBpdGVyYXRlZShmdW5jKSB7XG4gICAgICAgICAgcmV0dXJuIGJhc2VJdGVyYXRlZSh0eXBlb2YgZnVuYyA9PSBcImZ1bmN0aW9uXCIgPyBmdW5jIDogYmFzZUNsb25lKGZ1bmMsIENMT05FX0RFRVBfRkxBRykpO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIG1hdGNoZXMoc291cmNlKSB7XG4gICAgICAgICAgcmV0dXJuIGJhc2VNYXRjaGVzKGJhc2VDbG9uZShzb3VyY2UsIENMT05FX0RFRVBfRkxBRykpO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIG1hdGNoZXNQcm9wZXJ0eShwYXRoLCBzcmNWYWx1ZSkge1xuICAgICAgICAgIHJldHVybiBiYXNlTWF0Y2hlc1Byb3BlcnR5KHBhdGgsIGJhc2VDbG9uZShzcmNWYWx1ZSwgQ0xPTkVfREVFUF9GTEFHKSk7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIG1ldGhvZCA9IGJhc2VSZXN0KGZ1bmN0aW9uKHBhdGgsIGFyZ3MpIHtcbiAgICAgICAgICByZXR1cm4gZnVuY3Rpb24ob2JqZWN0KSB7XG4gICAgICAgICAgICByZXR1cm4gYmFzZUludm9rZShvYmplY3QsIHBhdGgsIGFyZ3MpO1xuICAgICAgICAgIH07XG4gICAgICAgIH0pO1xuICAgICAgICB2YXIgbWV0aG9kT2YgPSBiYXNlUmVzdChmdW5jdGlvbihvYmplY3QsIGFyZ3MpIHtcbiAgICAgICAgICByZXR1cm4gZnVuY3Rpb24ocGF0aCkge1xuICAgICAgICAgICAgcmV0dXJuIGJhc2VJbnZva2Uob2JqZWN0LCBwYXRoLCBhcmdzKTtcbiAgICAgICAgICB9O1xuICAgICAgICB9KTtcbiAgICAgICAgZnVuY3Rpb24gbWl4aW4ob2JqZWN0LCBzb3VyY2UsIG9wdGlvbnMpIHtcbiAgICAgICAgICB2YXIgcHJvcHMgPSBrZXlzKHNvdXJjZSksIG1ldGhvZE5hbWVzID0gYmFzZUZ1bmN0aW9ucyhzb3VyY2UsIHByb3BzKTtcbiAgICAgICAgICBpZiAob3B0aW9ucyA9PSBudWxsICYmICEoaXNPYmplY3Qoc291cmNlKSAmJiAobWV0aG9kTmFtZXMubGVuZ3RoIHx8ICFwcm9wcy5sZW5ndGgpKSkge1xuICAgICAgICAgICAgb3B0aW9ucyA9IHNvdXJjZTtcbiAgICAgICAgICAgIHNvdXJjZSA9IG9iamVjdDtcbiAgICAgICAgICAgIG9iamVjdCA9IHRoaXM7XG4gICAgICAgICAgICBtZXRob2ROYW1lcyA9IGJhc2VGdW5jdGlvbnMoc291cmNlLCBrZXlzKHNvdXJjZSkpO1xuICAgICAgICAgIH1cbiAgICAgICAgICB2YXIgY2hhaW4yID0gIShpc09iamVjdChvcHRpb25zKSAmJiBcImNoYWluXCIgaW4gb3B0aW9ucykgfHwgISFvcHRpb25zLmNoYWluLCBpc0Z1bmMgPSBpc0Z1bmN0aW9uKG9iamVjdCk7XG4gICAgICAgICAgYXJyYXlFYWNoKG1ldGhvZE5hbWVzLCBmdW5jdGlvbihtZXRob2ROYW1lKSB7XG4gICAgICAgICAgICB2YXIgZnVuYyA9IHNvdXJjZVttZXRob2ROYW1lXTtcbiAgICAgICAgICAgIG9iamVjdFttZXRob2ROYW1lXSA9IGZ1bmM7XG4gICAgICAgICAgICBpZiAoaXNGdW5jKSB7XG4gICAgICAgICAgICAgIG9iamVjdC5wcm90b3R5cGVbbWV0aG9kTmFtZV0gPSBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICB2YXIgY2hhaW5BbGwgPSB0aGlzLl9fY2hhaW5fXztcbiAgICAgICAgICAgICAgICBpZiAoY2hhaW4yIHx8IGNoYWluQWxsKSB7XG4gICAgICAgICAgICAgICAgICB2YXIgcmVzdWx0MiA9IG9iamVjdCh0aGlzLl9fd3JhcHBlZF9fKSwgYWN0aW9ucyA9IHJlc3VsdDIuX19hY3Rpb25zX18gPSBjb3B5QXJyYXkodGhpcy5fX2FjdGlvbnNfXyk7XG4gICAgICAgICAgICAgICAgICBhY3Rpb25zLnB1c2goeyBcImZ1bmNcIjogZnVuYywgXCJhcmdzXCI6IGFyZ3VtZW50cywgXCJ0aGlzQXJnXCI6IG9iamVjdCB9KTtcbiAgICAgICAgICAgICAgICAgIHJlc3VsdDIuX19jaGFpbl9fID0gY2hhaW5BbGw7XG4gICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0MjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZ1bmMuYXBwbHkob2JqZWN0LCBhcnJheVB1c2goW3RoaXMudmFsdWUoKV0sIGFyZ3VtZW50cykpO1xuICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICAgIHJldHVybiBvYmplY3Q7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gbm9Db25mbGljdCgpIHtcbiAgICAgICAgICBpZiAocm9vdC5fID09PSB0aGlzKSB7XG4gICAgICAgICAgICByb290Ll8gPSBvbGREYXNoO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBub29wKCkge1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIG50aEFyZyhuKSB7XG4gICAgICAgICAgbiA9IHRvSW50ZWdlcihuKTtcbiAgICAgICAgICByZXR1cm4gYmFzZVJlc3QoZnVuY3Rpb24oYXJncykge1xuICAgICAgICAgICAgcmV0dXJuIGJhc2VOdGgoYXJncywgbik7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIG92ZXIgPSBjcmVhdGVPdmVyKGFycmF5TWFwKTtcbiAgICAgICAgdmFyIG92ZXJFdmVyeSA9IGNyZWF0ZU92ZXIoYXJyYXlFdmVyeSk7XG4gICAgICAgIHZhciBvdmVyU29tZSA9IGNyZWF0ZU92ZXIoYXJyYXlTb21lKTtcbiAgICAgICAgZnVuY3Rpb24gcHJvcGVydHkocGF0aCkge1xuICAgICAgICAgIHJldHVybiBpc0tleShwYXRoKSA/IGJhc2VQcm9wZXJ0eSh0b0tleShwYXRoKSkgOiBiYXNlUHJvcGVydHlEZWVwKHBhdGgpO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIHByb3BlcnR5T2Yob2JqZWN0KSB7XG4gICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKHBhdGgpIHtcbiAgICAgICAgICAgIHJldHVybiBvYmplY3QgPT0gbnVsbCA/IHVuZGVmaW5lZDIgOiBiYXNlR2V0KG9iamVjdCwgcGF0aCk7XG4gICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgcmFuZ2UgPSBjcmVhdGVSYW5nZSgpO1xuICAgICAgICB2YXIgcmFuZ2VSaWdodCA9IGNyZWF0ZVJhbmdlKHRydWUpO1xuICAgICAgICBmdW5jdGlvbiBzdHViQXJyYXkoKSB7XG4gICAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIHN0dWJGYWxzZSgpIHtcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gc3R1Yk9iamVjdCgpIHtcbiAgICAgICAgICByZXR1cm4ge307XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gc3R1YlN0cmluZygpIHtcbiAgICAgICAgICByZXR1cm4gXCJcIjtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBzdHViVHJ1ZSgpIHtcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiB0aW1lcyhuLCBpdGVyYXRlZTIpIHtcbiAgICAgICAgICBuID0gdG9JbnRlZ2VyKG4pO1xuICAgICAgICAgIGlmIChuIDwgMSB8fCBuID4gTUFYX1NBRkVfSU5URUdFUikge1xuICAgICAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgICAgIH1cbiAgICAgICAgICB2YXIgaW5kZXggPSBNQVhfQVJSQVlfTEVOR1RILCBsZW5ndGggPSBuYXRpdmVNaW4obiwgTUFYX0FSUkFZX0xFTkdUSCk7XG4gICAgICAgICAgaXRlcmF0ZWUyID0gZ2V0SXRlcmF0ZWUoaXRlcmF0ZWUyKTtcbiAgICAgICAgICBuIC09IE1BWF9BUlJBWV9MRU5HVEg7XG4gICAgICAgICAgdmFyIHJlc3VsdDIgPSBiYXNlVGltZXMobGVuZ3RoLCBpdGVyYXRlZTIpO1xuICAgICAgICAgIHdoaWxlICgrK2luZGV4IDwgbikge1xuICAgICAgICAgICAgaXRlcmF0ZWUyKGluZGV4KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHJlc3VsdDI7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gdG9QYXRoKHZhbHVlKSB7XG4gICAgICAgICAgaWYgKGlzQXJyYXkodmFsdWUpKSB7XG4gICAgICAgICAgICByZXR1cm4gYXJyYXlNYXAodmFsdWUsIHRvS2V5KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIGlzU3ltYm9sKHZhbHVlKSA/IFt2YWx1ZV0gOiBjb3B5QXJyYXkoc3RyaW5nVG9QYXRoKHRvU3RyaW5nKHZhbHVlKSkpO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIHVuaXF1ZUlkKHByZWZpeCkge1xuICAgICAgICAgIHZhciBpZCA9ICsraWRDb3VudGVyO1xuICAgICAgICAgIHJldHVybiB0b1N0cmluZyhwcmVmaXgpICsgaWQ7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGFkZCA9IGNyZWF0ZU1hdGhPcGVyYXRpb24oZnVuY3Rpb24oYXVnZW5kLCBhZGRlbmQpIHtcbiAgICAgICAgICByZXR1cm4gYXVnZW5kICsgYWRkZW5kO1xuICAgICAgICB9LCAwKTtcbiAgICAgICAgdmFyIGNlaWwgPSBjcmVhdGVSb3VuZChcImNlaWxcIik7XG4gICAgICAgIHZhciBkaXZpZGUgPSBjcmVhdGVNYXRoT3BlcmF0aW9uKGZ1bmN0aW9uKGRpdmlkZW5kLCBkaXZpc29yKSB7XG4gICAgICAgICAgcmV0dXJuIGRpdmlkZW5kIC8gZGl2aXNvcjtcbiAgICAgICAgfSwgMSk7XG4gICAgICAgIHZhciBmbG9vciA9IGNyZWF0ZVJvdW5kKFwiZmxvb3JcIik7XG4gICAgICAgIGZ1bmN0aW9uIG1heChhcnJheSkge1xuICAgICAgICAgIHJldHVybiBhcnJheSAmJiBhcnJheS5sZW5ndGggPyBiYXNlRXh0cmVtdW0oYXJyYXksIGlkZW50aXR5LCBiYXNlR3QpIDogdW5kZWZpbmVkMjtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBtYXhCeShhcnJheSwgaXRlcmF0ZWUyKSB7XG4gICAgICAgICAgcmV0dXJuIGFycmF5ICYmIGFycmF5Lmxlbmd0aCA/IGJhc2VFeHRyZW11bShhcnJheSwgZ2V0SXRlcmF0ZWUoaXRlcmF0ZWUyLCAyKSwgYmFzZUd0KSA6IHVuZGVmaW5lZDI7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gbWVhbihhcnJheSkge1xuICAgICAgICAgIHJldHVybiBiYXNlTWVhbihhcnJheSwgaWRlbnRpdHkpO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIG1lYW5CeShhcnJheSwgaXRlcmF0ZWUyKSB7XG4gICAgICAgICAgcmV0dXJuIGJhc2VNZWFuKGFycmF5LCBnZXRJdGVyYXRlZShpdGVyYXRlZTIsIDIpKTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBtaW4oYXJyYXkpIHtcbiAgICAgICAgICByZXR1cm4gYXJyYXkgJiYgYXJyYXkubGVuZ3RoID8gYmFzZUV4dHJlbXVtKGFycmF5LCBpZGVudGl0eSwgYmFzZUx0KSA6IHVuZGVmaW5lZDI7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gbWluQnkoYXJyYXksIGl0ZXJhdGVlMikge1xuICAgICAgICAgIHJldHVybiBhcnJheSAmJiBhcnJheS5sZW5ndGggPyBiYXNlRXh0cmVtdW0oYXJyYXksIGdldEl0ZXJhdGVlKGl0ZXJhdGVlMiwgMiksIGJhc2VMdCkgOiB1bmRlZmluZWQyO1xuICAgICAgICB9XG4gICAgICAgIHZhciBtdWx0aXBseSA9IGNyZWF0ZU1hdGhPcGVyYXRpb24oZnVuY3Rpb24obXVsdGlwbGllciwgbXVsdGlwbGljYW5kKSB7XG4gICAgICAgICAgcmV0dXJuIG11bHRpcGxpZXIgKiBtdWx0aXBsaWNhbmQ7XG4gICAgICAgIH0sIDEpO1xuICAgICAgICB2YXIgcm91bmQgPSBjcmVhdGVSb3VuZChcInJvdW5kXCIpO1xuICAgICAgICB2YXIgc3VidHJhY3QgPSBjcmVhdGVNYXRoT3BlcmF0aW9uKGZ1bmN0aW9uKG1pbnVlbmQsIHN1YnRyYWhlbmQpIHtcbiAgICAgICAgICByZXR1cm4gbWludWVuZCAtIHN1YnRyYWhlbmQ7XG4gICAgICAgIH0sIDApO1xuICAgICAgICBmdW5jdGlvbiBzdW0oYXJyYXkpIHtcbiAgICAgICAgICByZXR1cm4gYXJyYXkgJiYgYXJyYXkubGVuZ3RoID8gYmFzZVN1bShhcnJheSwgaWRlbnRpdHkpIDogMDtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBzdW1CeShhcnJheSwgaXRlcmF0ZWUyKSB7XG4gICAgICAgICAgcmV0dXJuIGFycmF5ICYmIGFycmF5Lmxlbmd0aCA/IGJhc2VTdW0oYXJyYXksIGdldEl0ZXJhdGVlKGl0ZXJhdGVlMiwgMikpIDogMDtcbiAgICAgICAgfVxuICAgICAgICBsb2Rhc2guYWZ0ZXIgPSBhZnRlcjtcbiAgICAgICAgbG9kYXNoLmFyeSA9IGFyeTtcbiAgICAgICAgbG9kYXNoLmFzc2lnbiA9IGFzc2lnbjtcbiAgICAgICAgbG9kYXNoLmFzc2lnbkluID0gYXNzaWduSW47XG4gICAgICAgIGxvZGFzaC5hc3NpZ25JbldpdGggPSBhc3NpZ25JbldpdGg7XG4gICAgICAgIGxvZGFzaC5hc3NpZ25XaXRoID0gYXNzaWduV2l0aDtcbiAgICAgICAgbG9kYXNoLmF0ID0gYXQ7XG4gICAgICAgIGxvZGFzaC5iZWZvcmUgPSBiZWZvcmU7XG4gICAgICAgIGxvZGFzaC5iaW5kID0gYmluZDtcbiAgICAgICAgbG9kYXNoLmJpbmRBbGwgPSBiaW5kQWxsO1xuICAgICAgICBsb2Rhc2guYmluZEtleSA9IGJpbmRLZXk7XG4gICAgICAgIGxvZGFzaC5jYXN0QXJyYXkgPSBjYXN0QXJyYXk7XG4gICAgICAgIGxvZGFzaC5jaGFpbiA9IGNoYWluO1xuICAgICAgICBsb2Rhc2guY2h1bmsgPSBjaHVuaztcbiAgICAgICAgbG9kYXNoLmNvbXBhY3QgPSBjb21wYWN0O1xuICAgICAgICBsb2Rhc2guY29uY2F0ID0gY29uY2F0O1xuICAgICAgICBsb2Rhc2guY29uZCA9IGNvbmQ7XG4gICAgICAgIGxvZGFzaC5jb25mb3JtcyA9IGNvbmZvcm1zO1xuICAgICAgICBsb2Rhc2guY29uc3RhbnQgPSBjb25zdGFudDtcbiAgICAgICAgbG9kYXNoLmNvdW50QnkgPSBjb3VudEJ5O1xuICAgICAgICBsb2Rhc2guY3JlYXRlID0gY3JlYXRlO1xuICAgICAgICBsb2Rhc2guY3VycnkgPSBjdXJyeTtcbiAgICAgICAgbG9kYXNoLmN1cnJ5UmlnaHQgPSBjdXJyeVJpZ2h0O1xuICAgICAgICBsb2Rhc2guZGVib3VuY2UgPSBkZWJvdW5jZTtcbiAgICAgICAgbG9kYXNoLmRlZmF1bHRzID0gZGVmYXVsdHM7XG4gICAgICAgIGxvZGFzaC5kZWZhdWx0c0RlZXAgPSBkZWZhdWx0c0RlZXA7XG4gICAgICAgIGxvZGFzaC5kZWZlciA9IGRlZmVyO1xuICAgICAgICBsb2Rhc2guZGVsYXkgPSBkZWxheTtcbiAgICAgICAgbG9kYXNoLmRpZmZlcmVuY2UgPSBkaWZmZXJlbmNlO1xuICAgICAgICBsb2Rhc2guZGlmZmVyZW5jZUJ5ID0gZGlmZmVyZW5jZUJ5O1xuICAgICAgICBsb2Rhc2guZGlmZmVyZW5jZVdpdGggPSBkaWZmZXJlbmNlV2l0aDtcbiAgICAgICAgbG9kYXNoLmRyb3AgPSBkcm9wO1xuICAgICAgICBsb2Rhc2guZHJvcFJpZ2h0ID0gZHJvcFJpZ2h0O1xuICAgICAgICBsb2Rhc2guZHJvcFJpZ2h0V2hpbGUgPSBkcm9wUmlnaHRXaGlsZTtcbiAgICAgICAgbG9kYXNoLmRyb3BXaGlsZSA9IGRyb3BXaGlsZTtcbiAgICAgICAgbG9kYXNoLmZpbGwgPSBmaWxsO1xuICAgICAgICBsb2Rhc2guZmlsdGVyID0gZmlsdGVyO1xuICAgICAgICBsb2Rhc2guZmxhdE1hcCA9IGZsYXRNYXA7XG4gICAgICAgIGxvZGFzaC5mbGF0TWFwRGVlcCA9IGZsYXRNYXBEZWVwO1xuICAgICAgICBsb2Rhc2guZmxhdE1hcERlcHRoID0gZmxhdE1hcERlcHRoO1xuICAgICAgICBsb2Rhc2guZmxhdHRlbiA9IGZsYXR0ZW47XG4gICAgICAgIGxvZGFzaC5mbGF0dGVuRGVlcCA9IGZsYXR0ZW5EZWVwO1xuICAgICAgICBsb2Rhc2guZmxhdHRlbkRlcHRoID0gZmxhdHRlbkRlcHRoO1xuICAgICAgICBsb2Rhc2guZmxpcCA9IGZsaXA7XG4gICAgICAgIGxvZGFzaC5mbG93ID0gZmxvdztcbiAgICAgICAgbG9kYXNoLmZsb3dSaWdodCA9IGZsb3dSaWdodDtcbiAgICAgICAgbG9kYXNoLmZyb21QYWlycyA9IGZyb21QYWlycztcbiAgICAgICAgbG9kYXNoLmZ1bmN0aW9ucyA9IGZ1bmN0aW9ucztcbiAgICAgICAgbG9kYXNoLmZ1bmN0aW9uc0luID0gZnVuY3Rpb25zSW47XG4gICAgICAgIGxvZGFzaC5ncm91cEJ5ID0gZ3JvdXBCeTtcbiAgICAgICAgbG9kYXNoLmluaXRpYWwgPSBpbml0aWFsO1xuICAgICAgICBsb2Rhc2guaW50ZXJzZWN0aW9uID0gaW50ZXJzZWN0aW9uO1xuICAgICAgICBsb2Rhc2guaW50ZXJzZWN0aW9uQnkgPSBpbnRlcnNlY3Rpb25CeTtcbiAgICAgICAgbG9kYXNoLmludGVyc2VjdGlvbldpdGggPSBpbnRlcnNlY3Rpb25XaXRoO1xuICAgICAgICBsb2Rhc2guaW52ZXJ0ID0gaW52ZXJ0O1xuICAgICAgICBsb2Rhc2guaW52ZXJ0QnkgPSBpbnZlcnRCeTtcbiAgICAgICAgbG9kYXNoLmludm9rZU1hcCA9IGludm9rZU1hcDtcbiAgICAgICAgbG9kYXNoLml0ZXJhdGVlID0gaXRlcmF0ZWU7XG4gICAgICAgIGxvZGFzaC5rZXlCeSA9IGtleUJ5O1xuICAgICAgICBsb2Rhc2gua2V5cyA9IGtleXM7XG4gICAgICAgIGxvZGFzaC5rZXlzSW4gPSBrZXlzSW47XG4gICAgICAgIGxvZGFzaC5tYXAgPSBtYXA7XG4gICAgICAgIGxvZGFzaC5tYXBLZXlzID0gbWFwS2V5cztcbiAgICAgICAgbG9kYXNoLm1hcFZhbHVlcyA9IG1hcFZhbHVlcztcbiAgICAgICAgbG9kYXNoLm1hdGNoZXMgPSBtYXRjaGVzO1xuICAgICAgICBsb2Rhc2gubWF0Y2hlc1Byb3BlcnR5ID0gbWF0Y2hlc1Byb3BlcnR5O1xuICAgICAgICBsb2Rhc2gubWVtb2l6ZSA9IG1lbW9pemU7XG4gICAgICAgIGxvZGFzaC5tZXJnZSA9IG1lcmdlO1xuICAgICAgICBsb2Rhc2gubWVyZ2VXaXRoID0gbWVyZ2VXaXRoO1xuICAgICAgICBsb2Rhc2gubWV0aG9kID0gbWV0aG9kO1xuICAgICAgICBsb2Rhc2gubWV0aG9kT2YgPSBtZXRob2RPZjtcbiAgICAgICAgbG9kYXNoLm1peGluID0gbWl4aW47XG4gICAgICAgIGxvZGFzaC5uZWdhdGUgPSBuZWdhdGU7XG4gICAgICAgIGxvZGFzaC5udGhBcmcgPSBudGhBcmc7XG4gICAgICAgIGxvZGFzaC5vbWl0ID0gb21pdDtcbiAgICAgICAgbG9kYXNoLm9taXRCeSA9IG9taXRCeTtcbiAgICAgICAgbG9kYXNoLm9uY2UgPSBvbmNlO1xuICAgICAgICBsb2Rhc2gub3JkZXJCeSA9IG9yZGVyQnk7XG4gICAgICAgIGxvZGFzaC5vdmVyID0gb3ZlcjtcbiAgICAgICAgbG9kYXNoLm92ZXJBcmdzID0gb3ZlckFyZ3M7XG4gICAgICAgIGxvZGFzaC5vdmVyRXZlcnkgPSBvdmVyRXZlcnk7XG4gICAgICAgIGxvZGFzaC5vdmVyU29tZSA9IG92ZXJTb21lO1xuICAgICAgICBsb2Rhc2gucGFydGlhbCA9IHBhcnRpYWw7XG4gICAgICAgIGxvZGFzaC5wYXJ0aWFsUmlnaHQgPSBwYXJ0aWFsUmlnaHQ7XG4gICAgICAgIGxvZGFzaC5wYXJ0aXRpb24gPSBwYXJ0aXRpb247XG4gICAgICAgIGxvZGFzaC5waWNrID0gcGljaztcbiAgICAgICAgbG9kYXNoLnBpY2tCeSA9IHBpY2tCeTtcbiAgICAgICAgbG9kYXNoLnByb3BlcnR5ID0gcHJvcGVydHk7XG4gICAgICAgIGxvZGFzaC5wcm9wZXJ0eU9mID0gcHJvcGVydHlPZjtcbiAgICAgICAgbG9kYXNoLnB1bGwgPSBwdWxsO1xuICAgICAgICBsb2Rhc2gucHVsbEFsbCA9IHB1bGxBbGw7XG4gICAgICAgIGxvZGFzaC5wdWxsQWxsQnkgPSBwdWxsQWxsQnk7XG4gICAgICAgIGxvZGFzaC5wdWxsQWxsV2l0aCA9IHB1bGxBbGxXaXRoO1xuICAgICAgICBsb2Rhc2gucHVsbEF0ID0gcHVsbEF0O1xuICAgICAgICBsb2Rhc2gucmFuZ2UgPSByYW5nZTtcbiAgICAgICAgbG9kYXNoLnJhbmdlUmlnaHQgPSByYW5nZVJpZ2h0O1xuICAgICAgICBsb2Rhc2gucmVhcmcgPSByZWFyZztcbiAgICAgICAgbG9kYXNoLnJlamVjdCA9IHJlamVjdDtcbiAgICAgICAgbG9kYXNoLnJlbW92ZSA9IHJlbW92ZTtcbiAgICAgICAgbG9kYXNoLnJlc3QgPSByZXN0O1xuICAgICAgICBsb2Rhc2gucmV2ZXJzZSA9IHJldmVyc2U7XG4gICAgICAgIGxvZGFzaC5zYW1wbGVTaXplID0gc2FtcGxlU2l6ZTtcbiAgICAgICAgbG9kYXNoLnNldCA9IHNldDtcbiAgICAgICAgbG9kYXNoLnNldFdpdGggPSBzZXRXaXRoO1xuICAgICAgICBsb2Rhc2guc2h1ZmZsZSA9IHNodWZmbGU7XG4gICAgICAgIGxvZGFzaC5zbGljZSA9IHNsaWNlO1xuICAgICAgICBsb2Rhc2guc29ydEJ5ID0gc29ydEJ5O1xuICAgICAgICBsb2Rhc2guc29ydGVkVW5pcSA9IHNvcnRlZFVuaXE7XG4gICAgICAgIGxvZGFzaC5zb3J0ZWRVbmlxQnkgPSBzb3J0ZWRVbmlxQnk7XG4gICAgICAgIGxvZGFzaC5zcGxpdCA9IHNwbGl0O1xuICAgICAgICBsb2Rhc2guc3ByZWFkID0gc3ByZWFkO1xuICAgICAgICBsb2Rhc2gudGFpbCA9IHRhaWw7XG4gICAgICAgIGxvZGFzaC50YWtlID0gdGFrZTtcbiAgICAgICAgbG9kYXNoLnRha2VSaWdodCA9IHRha2VSaWdodDtcbiAgICAgICAgbG9kYXNoLnRha2VSaWdodFdoaWxlID0gdGFrZVJpZ2h0V2hpbGU7XG4gICAgICAgIGxvZGFzaC50YWtlV2hpbGUgPSB0YWtlV2hpbGU7XG4gICAgICAgIGxvZGFzaC50YXAgPSB0YXA7XG4gICAgICAgIGxvZGFzaC50aHJvdHRsZSA9IHRocm90dGxlO1xuICAgICAgICBsb2Rhc2gudGhydSA9IHRocnU7XG4gICAgICAgIGxvZGFzaC50b0FycmF5ID0gdG9BcnJheTtcbiAgICAgICAgbG9kYXNoLnRvUGFpcnMgPSB0b1BhaXJzO1xuICAgICAgICBsb2Rhc2gudG9QYWlyc0luID0gdG9QYWlyc0luO1xuICAgICAgICBsb2Rhc2gudG9QYXRoID0gdG9QYXRoO1xuICAgICAgICBsb2Rhc2gudG9QbGFpbk9iamVjdCA9IHRvUGxhaW5PYmplY3Q7XG4gICAgICAgIGxvZGFzaC50cmFuc2Zvcm0gPSB0cmFuc2Zvcm07XG4gICAgICAgIGxvZGFzaC51bmFyeSA9IHVuYXJ5O1xuICAgICAgICBsb2Rhc2gudW5pb24gPSB1bmlvbjtcbiAgICAgICAgbG9kYXNoLnVuaW9uQnkgPSB1bmlvbkJ5O1xuICAgICAgICBsb2Rhc2gudW5pb25XaXRoID0gdW5pb25XaXRoO1xuICAgICAgICBsb2Rhc2gudW5pcSA9IHVuaXE7XG4gICAgICAgIGxvZGFzaC51bmlxQnkgPSB1bmlxQnk7XG4gICAgICAgIGxvZGFzaC51bmlxV2l0aCA9IHVuaXFXaXRoO1xuICAgICAgICBsb2Rhc2gudW5zZXQgPSB1bnNldDtcbiAgICAgICAgbG9kYXNoLnVuemlwID0gdW56aXA7XG4gICAgICAgIGxvZGFzaC51bnppcFdpdGggPSB1bnppcFdpdGg7XG4gICAgICAgIGxvZGFzaC51cGRhdGUgPSB1cGRhdGU7XG4gICAgICAgIGxvZGFzaC51cGRhdGVXaXRoID0gdXBkYXRlV2l0aDtcbiAgICAgICAgbG9kYXNoLnZhbHVlcyA9IHZhbHVlcztcbiAgICAgICAgbG9kYXNoLnZhbHVlc0luID0gdmFsdWVzSW47XG4gICAgICAgIGxvZGFzaC53aXRob3V0ID0gd2l0aG91dDtcbiAgICAgICAgbG9kYXNoLndvcmRzID0gd29yZHM7XG4gICAgICAgIGxvZGFzaC53cmFwID0gd3JhcDtcbiAgICAgICAgbG9kYXNoLnhvciA9IHhvcjtcbiAgICAgICAgbG9kYXNoLnhvckJ5ID0geG9yQnk7XG4gICAgICAgIGxvZGFzaC54b3JXaXRoID0geG9yV2l0aDtcbiAgICAgICAgbG9kYXNoLnppcCA9IHppcDtcbiAgICAgICAgbG9kYXNoLnppcE9iamVjdCA9IHppcE9iamVjdDtcbiAgICAgICAgbG9kYXNoLnppcE9iamVjdERlZXAgPSB6aXBPYmplY3REZWVwO1xuICAgICAgICBsb2Rhc2guemlwV2l0aCA9IHppcFdpdGg7XG4gICAgICAgIGxvZGFzaC5lbnRyaWVzID0gdG9QYWlycztcbiAgICAgICAgbG9kYXNoLmVudHJpZXNJbiA9IHRvUGFpcnNJbjtcbiAgICAgICAgbG9kYXNoLmV4dGVuZCA9IGFzc2lnbkluO1xuICAgICAgICBsb2Rhc2guZXh0ZW5kV2l0aCA9IGFzc2lnbkluV2l0aDtcbiAgICAgICAgbWl4aW4obG9kYXNoLCBsb2Rhc2gpO1xuICAgICAgICBsb2Rhc2guYWRkID0gYWRkO1xuICAgICAgICBsb2Rhc2guYXR0ZW1wdCA9IGF0dGVtcHQ7XG4gICAgICAgIGxvZGFzaC5jYW1lbENhc2UgPSBjYW1lbENhc2U7XG4gICAgICAgIGxvZGFzaC5jYXBpdGFsaXplID0gY2FwaXRhbGl6ZTtcbiAgICAgICAgbG9kYXNoLmNlaWwgPSBjZWlsO1xuICAgICAgICBsb2Rhc2guY2xhbXAgPSBjbGFtcDtcbiAgICAgICAgbG9kYXNoLmNsb25lID0gY2xvbmU7XG4gICAgICAgIGxvZGFzaC5jbG9uZURlZXAgPSBjbG9uZURlZXA7XG4gICAgICAgIGxvZGFzaC5jbG9uZURlZXBXaXRoID0gY2xvbmVEZWVwV2l0aDtcbiAgICAgICAgbG9kYXNoLmNsb25lV2l0aCA9IGNsb25lV2l0aDtcbiAgICAgICAgbG9kYXNoLmNvbmZvcm1zVG8gPSBjb25mb3Jtc1RvO1xuICAgICAgICBsb2Rhc2guZGVidXJyID0gZGVidXJyO1xuICAgICAgICBsb2Rhc2guZGVmYXVsdFRvID0gZGVmYXVsdFRvO1xuICAgICAgICBsb2Rhc2guZGl2aWRlID0gZGl2aWRlO1xuICAgICAgICBsb2Rhc2guZW5kc1dpdGggPSBlbmRzV2l0aDtcbiAgICAgICAgbG9kYXNoLmVxID0gZXE7XG4gICAgICAgIGxvZGFzaC5lc2NhcGUgPSBlc2NhcGUyO1xuICAgICAgICBsb2Rhc2guZXNjYXBlUmVnRXhwID0gZXNjYXBlUmVnRXhwO1xuICAgICAgICBsb2Rhc2guZXZlcnkgPSBldmVyeTtcbiAgICAgICAgbG9kYXNoLmZpbmQgPSBmaW5kO1xuICAgICAgICBsb2Rhc2guZmluZEluZGV4ID0gZmluZEluZGV4O1xuICAgICAgICBsb2Rhc2guZmluZEtleSA9IGZpbmRLZXk7XG4gICAgICAgIGxvZGFzaC5maW5kTGFzdCA9IGZpbmRMYXN0O1xuICAgICAgICBsb2Rhc2guZmluZExhc3RJbmRleCA9IGZpbmRMYXN0SW5kZXg7XG4gICAgICAgIGxvZGFzaC5maW5kTGFzdEtleSA9IGZpbmRMYXN0S2V5O1xuICAgICAgICBsb2Rhc2guZmxvb3IgPSBmbG9vcjtcbiAgICAgICAgbG9kYXNoLmZvckVhY2ggPSBmb3JFYWNoO1xuICAgICAgICBsb2Rhc2guZm9yRWFjaFJpZ2h0ID0gZm9yRWFjaFJpZ2h0O1xuICAgICAgICBsb2Rhc2guZm9ySW4gPSBmb3JJbjtcbiAgICAgICAgbG9kYXNoLmZvckluUmlnaHQgPSBmb3JJblJpZ2h0O1xuICAgICAgICBsb2Rhc2guZm9yT3duID0gZm9yT3duO1xuICAgICAgICBsb2Rhc2guZm9yT3duUmlnaHQgPSBmb3JPd25SaWdodDtcbiAgICAgICAgbG9kYXNoLmdldCA9IGdldDtcbiAgICAgICAgbG9kYXNoLmd0ID0gZ3Q7XG4gICAgICAgIGxvZGFzaC5ndGUgPSBndGU7XG4gICAgICAgIGxvZGFzaC5oYXMgPSBoYXM7XG4gICAgICAgIGxvZGFzaC5oYXNJbiA9IGhhc0luO1xuICAgICAgICBsb2Rhc2guaGVhZCA9IGhlYWQ7XG4gICAgICAgIGxvZGFzaC5pZGVudGl0eSA9IGlkZW50aXR5O1xuICAgICAgICBsb2Rhc2guaW5jbHVkZXMgPSBpbmNsdWRlcztcbiAgICAgICAgbG9kYXNoLmluZGV4T2YgPSBpbmRleE9mO1xuICAgICAgICBsb2Rhc2guaW5SYW5nZSA9IGluUmFuZ2U7XG4gICAgICAgIGxvZGFzaC5pbnZva2UgPSBpbnZva2U7XG4gICAgICAgIGxvZGFzaC5pc0FyZ3VtZW50cyA9IGlzQXJndW1lbnRzO1xuICAgICAgICBsb2Rhc2guaXNBcnJheSA9IGlzQXJyYXk7XG4gICAgICAgIGxvZGFzaC5pc0FycmF5QnVmZmVyID0gaXNBcnJheUJ1ZmZlcjtcbiAgICAgICAgbG9kYXNoLmlzQXJyYXlMaWtlID0gaXNBcnJheUxpa2U7XG4gICAgICAgIGxvZGFzaC5pc0FycmF5TGlrZU9iamVjdCA9IGlzQXJyYXlMaWtlT2JqZWN0O1xuICAgICAgICBsb2Rhc2guaXNCb29sZWFuID0gaXNCb29sZWFuO1xuICAgICAgICBsb2Rhc2guaXNCdWZmZXIgPSBpc0J1ZmZlcjtcbiAgICAgICAgbG9kYXNoLmlzRGF0ZSA9IGlzRGF0ZTtcbiAgICAgICAgbG9kYXNoLmlzRWxlbWVudCA9IGlzRWxlbWVudDtcbiAgICAgICAgbG9kYXNoLmlzRW1wdHkgPSBpc0VtcHR5O1xuICAgICAgICBsb2Rhc2guaXNFcXVhbCA9IGlzRXF1YWw7XG4gICAgICAgIGxvZGFzaC5pc0VxdWFsV2l0aCA9IGlzRXF1YWxXaXRoO1xuICAgICAgICBsb2Rhc2guaXNFcnJvciA9IGlzRXJyb3I7XG4gICAgICAgIGxvZGFzaC5pc0Zpbml0ZSA9IGlzRmluaXRlMjtcbiAgICAgICAgbG9kYXNoLmlzRnVuY3Rpb24gPSBpc0Z1bmN0aW9uO1xuICAgICAgICBsb2Rhc2guaXNJbnRlZ2VyID0gaXNJbnRlZ2VyO1xuICAgICAgICBsb2Rhc2guaXNMZW5ndGggPSBpc0xlbmd0aDtcbiAgICAgICAgbG9kYXNoLmlzTWFwID0gaXNNYXA7XG4gICAgICAgIGxvZGFzaC5pc01hdGNoID0gaXNNYXRjaDtcbiAgICAgICAgbG9kYXNoLmlzTWF0Y2hXaXRoID0gaXNNYXRjaFdpdGg7XG4gICAgICAgIGxvZGFzaC5pc05hTiA9IGlzTmFOMjtcbiAgICAgICAgbG9kYXNoLmlzTmF0aXZlID0gaXNOYXRpdmU7XG4gICAgICAgIGxvZGFzaC5pc05pbCA9IGlzTmlsO1xuICAgICAgICBsb2Rhc2guaXNOdWxsID0gaXNOdWxsO1xuICAgICAgICBsb2Rhc2guaXNOdW1iZXIgPSBpc051bWJlcjtcbiAgICAgICAgbG9kYXNoLmlzT2JqZWN0ID0gaXNPYmplY3Q7XG4gICAgICAgIGxvZGFzaC5pc09iamVjdExpa2UgPSBpc09iamVjdExpa2U7XG4gICAgICAgIGxvZGFzaC5pc1BsYWluT2JqZWN0ID0gaXNQbGFpbk9iamVjdDtcbiAgICAgICAgbG9kYXNoLmlzUmVnRXhwID0gaXNSZWdFeHA7XG4gICAgICAgIGxvZGFzaC5pc1NhZmVJbnRlZ2VyID0gaXNTYWZlSW50ZWdlcjtcbiAgICAgICAgbG9kYXNoLmlzU2V0ID0gaXNTZXQ7XG4gICAgICAgIGxvZGFzaC5pc1N0cmluZyA9IGlzU3RyaW5nO1xuICAgICAgICBsb2Rhc2guaXNTeW1ib2wgPSBpc1N5bWJvbDtcbiAgICAgICAgbG9kYXNoLmlzVHlwZWRBcnJheSA9IGlzVHlwZWRBcnJheTtcbiAgICAgICAgbG9kYXNoLmlzVW5kZWZpbmVkID0gaXNVbmRlZmluZWQ7XG4gICAgICAgIGxvZGFzaC5pc1dlYWtNYXAgPSBpc1dlYWtNYXA7XG4gICAgICAgIGxvZGFzaC5pc1dlYWtTZXQgPSBpc1dlYWtTZXQ7XG4gICAgICAgIGxvZGFzaC5qb2luID0gam9pbjtcbiAgICAgICAgbG9kYXNoLmtlYmFiQ2FzZSA9IGtlYmFiQ2FzZTtcbiAgICAgICAgbG9kYXNoLmxhc3QgPSBsYXN0O1xuICAgICAgICBsb2Rhc2gubGFzdEluZGV4T2YgPSBsYXN0SW5kZXhPZjtcbiAgICAgICAgbG9kYXNoLmxvd2VyQ2FzZSA9IGxvd2VyQ2FzZTtcbiAgICAgICAgbG9kYXNoLmxvd2VyRmlyc3QgPSBsb3dlckZpcnN0O1xuICAgICAgICBsb2Rhc2gubHQgPSBsdDtcbiAgICAgICAgbG9kYXNoLmx0ZSA9IGx0ZTtcbiAgICAgICAgbG9kYXNoLm1heCA9IG1heDtcbiAgICAgICAgbG9kYXNoLm1heEJ5ID0gbWF4Qnk7XG4gICAgICAgIGxvZGFzaC5tZWFuID0gbWVhbjtcbiAgICAgICAgbG9kYXNoLm1lYW5CeSA9IG1lYW5CeTtcbiAgICAgICAgbG9kYXNoLm1pbiA9IG1pbjtcbiAgICAgICAgbG9kYXNoLm1pbkJ5ID0gbWluQnk7XG4gICAgICAgIGxvZGFzaC5zdHViQXJyYXkgPSBzdHViQXJyYXk7XG4gICAgICAgIGxvZGFzaC5zdHViRmFsc2UgPSBzdHViRmFsc2U7XG4gICAgICAgIGxvZGFzaC5zdHViT2JqZWN0ID0gc3R1Yk9iamVjdDtcbiAgICAgICAgbG9kYXNoLnN0dWJTdHJpbmcgPSBzdHViU3RyaW5nO1xuICAgICAgICBsb2Rhc2guc3R1YlRydWUgPSBzdHViVHJ1ZTtcbiAgICAgICAgbG9kYXNoLm11bHRpcGx5ID0gbXVsdGlwbHk7XG4gICAgICAgIGxvZGFzaC5udGggPSBudGg7XG4gICAgICAgIGxvZGFzaC5ub0NvbmZsaWN0ID0gbm9Db25mbGljdDtcbiAgICAgICAgbG9kYXNoLm5vb3AgPSBub29wO1xuICAgICAgICBsb2Rhc2gubm93ID0gbm93O1xuICAgICAgICBsb2Rhc2gucGFkID0gcGFkO1xuICAgICAgICBsb2Rhc2gucGFkRW5kID0gcGFkRW5kO1xuICAgICAgICBsb2Rhc2gucGFkU3RhcnQgPSBwYWRTdGFydDtcbiAgICAgICAgbG9kYXNoLnBhcnNlSW50ID0gcGFyc2VJbnQyO1xuICAgICAgICBsb2Rhc2gucmFuZG9tID0gcmFuZG9tO1xuICAgICAgICBsb2Rhc2gucmVkdWNlID0gcmVkdWNlO1xuICAgICAgICBsb2Rhc2gucmVkdWNlUmlnaHQgPSByZWR1Y2VSaWdodDtcbiAgICAgICAgbG9kYXNoLnJlcGVhdCA9IHJlcGVhdDtcbiAgICAgICAgbG9kYXNoLnJlcGxhY2UgPSByZXBsYWNlO1xuICAgICAgICBsb2Rhc2gucmVzdWx0ID0gcmVzdWx0O1xuICAgICAgICBsb2Rhc2gucm91bmQgPSByb3VuZDtcbiAgICAgICAgbG9kYXNoLnJ1bkluQ29udGV4dCA9IHJ1bkluQ29udGV4dDI7XG4gICAgICAgIGxvZGFzaC5zYW1wbGUgPSBzYW1wbGU7XG4gICAgICAgIGxvZGFzaC5zaXplID0gc2l6ZTtcbiAgICAgICAgbG9kYXNoLnNuYWtlQ2FzZSA9IHNuYWtlQ2FzZTtcbiAgICAgICAgbG9kYXNoLnNvbWUgPSBzb21lO1xuICAgICAgICBsb2Rhc2guc29ydGVkSW5kZXggPSBzb3J0ZWRJbmRleDtcbiAgICAgICAgbG9kYXNoLnNvcnRlZEluZGV4QnkgPSBzb3J0ZWRJbmRleEJ5O1xuICAgICAgICBsb2Rhc2guc29ydGVkSW5kZXhPZiA9IHNvcnRlZEluZGV4T2Y7XG4gICAgICAgIGxvZGFzaC5zb3J0ZWRMYXN0SW5kZXggPSBzb3J0ZWRMYXN0SW5kZXg7XG4gICAgICAgIGxvZGFzaC5zb3J0ZWRMYXN0SW5kZXhCeSA9IHNvcnRlZExhc3RJbmRleEJ5O1xuICAgICAgICBsb2Rhc2guc29ydGVkTGFzdEluZGV4T2YgPSBzb3J0ZWRMYXN0SW5kZXhPZjtcbiAgICAgICAgbG9kYXNoLnN0YXJ0Q2FzZSA9IHN0YXJ0Q2FzZTtcbiAgICAgICAgbG9kYXNoLnN0YXJ0c1dpdGggPSBzdGFydHNXaXRoO1xuICAgICAgICBsb2Rhc2guc3VidHJhY3QgPSBzdWJ0cmFjdDtcbiAgICAgICAgbG9kYXNoLnN1bSA9IHN1bTtcbiAgICAgICAgbG9kYXNoLnN1bUJ5ID0gc3VtQnk7XG4gICAgICAgIGxvZGFzaC50ZW1wbGF0ZSA9IHRlbXBsYXRlO1xuICAgICAgICBsb2Rhc2gudGltZXMgPSB0aW1lcztcbiAgICAgICAgbG9kYXNoLnRvRmluaXRlID0gdG9GaW5pdGU7XG4gICAgICAgIGxvZGFzaC50b0ludGVnZXIgPSB0b0ludGVnZXI7XG4gICAgICAgIGxvZGFzaC50b0xlbmd0aCA9IHRvTGVuZ3RoO1xuICAgICAgICBsb2Rhc2gudG9Mb3dlciA9IHRvTG93ZXI7XG4gICAgICAgIGxvZGFzaC50b051bWJlciA9IHRvTnVtYmVyO1xuICAgICAgICBsb2Rhc2gudG9TYWZlSW50ZWdlciA9IHRvU2FmZUludGVnZXI7XG4gICAgICAgIGxvZGFzaC50b1N0cmluZyA9IHRvU3RyaW5nO1xuICAgICAgICBsb2Rhc2gudG9VcHBlciA9IHRvVXBwZXI7XG4gICAgICAgIGxvZGFzaC50cmltID0gdHJpbTtcbiAgICAgICAgbG9kYXNoLnRyaW1FbmQgPSB0cmltRW5kO1xuICAgICAgICBsb2Rhc2gudHJpbVN0YXJ0ID0gdHJpbVN0YXJ0O1xuICAgICAgICBsb2Rhc2gudHJ1bmNhdGUgPSB0cnVuY2F0ZTtcbiAgICAgICAgbG9kYXNoLnVuZXNjYXBlID0gdW5lc2NhcGUyO1xuICAgICAgICBsb2Rhc2gudW5pcXVlSWQgPSB1bmlxdWVJZDtcbiAgICAgICAgbG9kYXNoLnVwcGVyQ2FzZSA9IHVwcGVyQ2FzZTtcbiAgICAgICAgbG9kYXNoLnVwcGVyRmlyc3QgPSB1cHBlckZpcnN0O1xuICAgICAgICBsb2Rhc2guZWFjaCA9IGZvckVhY2g7XG4gICAgICAgIGxvZGFzaC5lYWNoUmlnaHQgPSBmb3JFYWNoUmlnaHQ7XG4gICAgICAgIGxvZGFzaC5maXJzdCA9IGhlYWQ7XG4gICAgICAgIG1peGluKGxvZGFzaCwgZnVuY3Rpb24oKSB7XG4gICAgICAgICAgdmFyIHNvdXJjZSA9IHt9O1xuICAgICAgICAgIGJhc2VGb3JPd24obG9kYXNoLCBmdW5jdGlvbihmdW5jLCBtZXRob2ROYW1lKSB7XG4gICAgICAgICAgICBpZiAoIWhhc093blByb3BlcnR5LmNhbGwobG9kYXNoLnByb3RvdHlwZSwgbWV0aG9kTmFtZSkpIHtcbiAgICAgICAgICAgICAgc291cmNlW21ldGhvZE5hbWVdID0gZnVuYztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgICByZXR1cm4gc291cmNlO1xuICAgICAgICB9KCksIHsgXCJjaGFpblwiOiBmYWxzZSB9KTtcbiAgICAgICAgbG9kYXNoLlZFUlNJT04gPSBWRVJTSU9OO1xuICAgICAgICBhcnJheUVhY2goW1wiYmluZFwiLCBcImJpbmRLZXlcIiwgXCJjdXJyeVwiLCBcImN1cnJ5UmlnaHRcIiwgXCJwYXJ0aWFsXCIsIFwicGFydGlhbFJpZ2h0XCJdLCBmdW5jdGlvbihtZXRob2ROYW1lKSB7XG4gICAgICAgICAgbG9kYXNoW21ldGhvZE5hbWVdLnBsYWNlaG9sZGVyID0gbG9kYXNoO1xuICAgICAgICB9KTtcbiAgICAgICAgYXJyYXlFYWNoKFtcImRyb3BcIiwgXCJ0YWtlXCJdLCBmdW5jdGlvbihtZXRob2ROYW1lLCBpbmRleCkge1xuICAgICAgICAgIExhenlXcmFwcGVyLnByb3RvdHlwZVttZXRob2ROYW1lXSA9IGZ1bmN0aW9uKG4pIHtcbiAgICAgICAgICAgIG4gPSBuID09PSB1bmRlZmluZWQyID8gMSA6IG5hdGl2ZU1heCh0b0ludGVnZXIobiksIDApO1xuICAgICAgICAgICAgdmFyIHJlc3VsdDIgPSB0aGlzLl9fZmlsdGVyZWRfXyAmJiAhaW5kZXggPyBuZXcgTGF6eVdyYXBwZXIodGhpcykgOiB0aGlzLmNsb25lKCk7XG4gICAgICAgICAgICBpZiAocmVzdWx0Mi5fX2ZpbHRlcmVkX18pIHtcbiAgICAgICAgICAgICAgcmVzdWx0Mi5fX3Rha2VDb3VudF9fID0gbmF0aXZlTWluKG4sIHJlc3VsdDIuX190YWtlQ291bnRfXyk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICByZXN1bHQyLl9fdmlld3NfXy5wdXNoKHtcbiAgICAgICAgICAgICAgICBcInNpemVcIjogbmF0aXZlTWluKG4sIE1BWF9BUlJBWV9MRU5HVEgpLFxuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBtZXRob2ROYW1lICsgKHJlc3VsdDIuX19kaXJfXyA8IDAgPyBcIlJpZ2h0XCIgOiBcIlwiKVxuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiByZXN1bHQyO1xuICAgICAgICAgIH07XG4gICAgICAgICAgTGF6eVdyYXBwZXIucHJvdG90eXBlW21ldGhvZE5hbWUgKyBcIlJpZ2h0XCJdID0gZnVuY3Rpb24obikge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMucmV2ZXJzZSgpW21ldGhvZE5hbWVdKG4pLnJldmVyc2UoKTtcbiAgICAgICAgICB9O1xuICAgICAgICB9KTtcbiAgICAgICAgYXJyYXlFYWNoKFtcImZpbHRlclwiLCBcIm1hcFwiLCBcInRha2VXaGlsZVwiXSwgZnVuY3Rpb24obWV0aG9kTmFtZSwgaW5kZXgpIHtcbiAgICAgICAgICB2YXIgdHlwZSA9IGluZGV4ICsgMSwgaXNGaWx0ZXIgPSB0eXBlID09IExBWllfRklMVEVSX0ZMQUcgfHwgdHlwZSA9PSBMQVpZX1dISUxFX0ZMQUc7XG4gICAgICAgICAgTGF6eVdyYXBwZXIucHJvdG90eXBlW21ldGhvZE5hbWVdID0gZnVuY3Rpb24oaXRlcmF0ZWUyKSB7XG4gICAgICAgICAgICB2YXIgcmVzdWx0MiA9IHRoaXMuY2xvbmUoKTtcbiAgICAgICAgICAgIHJlc3VsdDIuX19pdGVyYXRlZXNfXy5wdXNoKHtcbiAgICAgICAgICAgICAgXCJpdGVyYXRlZVwiOiBnZXRJdGVyYXRlZShpdGVyYXRlZTIsIDMpLFxuICAgICAgICAgICAgICBcInR5cGVcIjogdHlwZVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXN1bHQyLl9fZmlsdGVyZWRfXyA9IHJlc3VsdDIuX19maWx0ZXJlZF9fIHx8IGlzRmlsdGVyO1xuICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDI7XG4gICAgICAgICAgfTtcbiAgICAgICAgfSk7XG4gICAgICAgIGFycmF5RWFjaChbXCJoZWFkXCIsIFwibGFzdFwiXSwgZnVuY3Rpb24obWV0aG9kTmFtZSwgaW5kZXgpIHtcbiAgICAgICAgICB2YXIgdGFrZU5hbWUgPSBcInRha2VcIiArIChpbmRleCA/IFwiUmlnaHRcIiA6IFwiXCIpO1xuICAgICAgICAgIExhenlXcmFwcGVyLnByb3RvdHlwZVttZXRob2ROYW1lXSA9IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXNbdGFrZU5hbWVdKDEpLnZhbHVlKClbMF07XG4gICAgICAgICAgfTtcbiAgICAgICAgfSk7XG4gICAgICAgIGFycmF5RWFjaChbXCJpbml0aWFsXCIsIFwidGFpbFwiXSwgZnVuY3Rpb24obWV0aG9kTmFtZSwgaW5kZXgpIHtcbiAgICAgICAgICB2YXIgZHJvcE5hbWUgPSBcImRyb3BcIiArIChpbmRleCA/IFwiXCIgOiBcIlJpZ2h0XCIpO1xuICAgICAgICAgIExhenlXcmFwcGVyLnByb3RvdHlwZVttZXRob2ROYW1lXSA9IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX19maWx0ZXJlZF9fID8gbmV3IExhenlXcmFwcGVyKHRoaXMpIDogdGhpc1tkcm9wTmFtZV0oMSk7XG4gICAgICAgICAgfTtcbiAgICAgICAgfSk7XG4gICAgICAgIExhenlXcmFwcGVyLnByb3RvdHlwZS5jb21wYWN0ID0gZnVuY3Rpb24oKSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuZmlsdGVyKGlkZW50aXR5KTtcbiAgICAgICAgfTtcbiAgICAgICAgTGF6eVdyYXBwZXIucHJvdG90eXBlLmZpbmQgPSBmdW5jdGlvbihwcmVkaWNhdGUpIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5maWx0ZXIocHJlZGljYXRlKS5oZWFkKCk7XG4gICAgICAgIH07XG4gICAgICAgIExhenlXcmFwcGVyLnByb3RvdHlwZS5maW5kTGFzdCA9IGZ1bmN0aW9uKHByZWRpY2F0ZSkge1xuICAgICAgICAgIHJldHVybiB0aGlzLnJldmVyc2UoKS5maW5kKHByZWRpY2F0ZSk7XG4gICAgICAgIH07XG4gICAgICAgIExhenlXcmFwcGVyLnByb3RvdHlwZS5pbnZva2VNYXAgPSBiYXNlUmVzdChmdW5jdGlvbihwYXRoLCBhcmdzKSB7XG4gICAgICAgICAgaWYgKHR5cGVvZiBwYXRoID09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBMYXp5V3JhcHBlcih0aGlzKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHRoaXMubWFwKGZ1bmN0aW9uKHZhbHVlKSB7XG4gICAgICAgICAgICByZXR1cm4gYmFzZUludm9rZSh2YWx1ZSwgcGF0aCwgYXJncyk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgICAgICBMYXp5V3JhcHBlci5wcm90b3R5cGUucmVqZWN0ID0gZnVuY3Rpb24ocHJlZGljYXRlKSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuZmlsdGVyKG5lZ2F0ZShnZXRJdGVyYXRlZShwcmVkaWNhdGUpKSk7XG4gICAgICAgIH07XG4gICAgICAgIExhenlXcmFwcGVyLnByb3RvdHlwZS5zbGljZSA9IGZ1bmN0aW9uKHN0YXJ0LCBlbmQpIHtcbiAgICAgICAgICBzdGFydCA9IHRvSW50ZWdlcihzdGFydCk7XG4gICAgICAgICAgdmFyIHJlc3VsdDIgPSB0aGlzO1xuICAgICAgICAgIGlmIChyZXN1bHQyLl9fZmlsdGVyZWRfXyAmJiAoc3RhcnQgPiAwIHx8IGVuZCA8IDApKSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IExhenlXcmFwcGVyKHJlc3VsdDIpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoc3RhcnQgPCAwKSB7XG4gICAgICAgICAgICByZXN1bHQyID0gcmVzdWx0Mi50YWtlUmlnaHQoLXN0YXJ0KTtcbiAgICAgICAgICB9IGVsc2UgaWYgKHN0YXJ0KSB7XG4gICAgICAgICAgICByZXN1bHQyID0gcmVzdWx0Mi5kcm9wKHN0YXJ0KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGVuZCAhPT0gdW5kZWZpbmVkMikge1xuICAgICAgICAgICAgZW5kID0gdG9JbnRlZ2VyKGVuZCk7XG4gICAgICAgICAgICByZXN1bHQyID0gZW5kIDwgMCA/IHJlc3VsdDIuZHJvcFJpZ2h0KC1lbmQpIDogcmVzdWx0Mi50YWtlKGVuZCAtIHN0YXJ0KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHJlc3VsdDI7XG4gICAgICAgIH07XG4gICAgICAgIExhenlXcmFwcGVyLnByb3RvdHlwZS50YWtlUmlnaHRXaGlsZSA9IGZ1bmN0aW9uKHByZWRpY2F0ZSkge1xuICAgICAgICAgIHJldHVybiB0aGlzLnJldmVyc2UoKS50YWtlV2hpbGUocHJlZGljYXRlKS5yZXZlcnNlKCk7XG4gICAgICAgIH07XG4gICAgICAgIExhenlXcmFwcGVyLnByb3RvdHlwZS50b0FycmF5ID0gZnVuY3Rpb24oKSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMudGFrZShNQVhfQVJSQVlfTEVOR1RIKTtcbiAgICAgICAgfTtcbiAgICAgICAgYmFzZUZvck93bihMYXp5V3JhcHBlci5wcm90b3R5cGUsIGZ1bmN0aW9uKGZ1bmMsIG1ldGhvZE5hbWUpIHtcbiAgICAgICAgICB2YXIgY2hlY2tJdGVyYXRlZSA9IC9eKD86ZmlsdGVyfGZpbmR8bWFwfHJlamVjdCl8V2hpbGUkLy50ZXN0KG1ldGhvZE5hbWUpLCBpc1Rha2VyID0gL14oPzpoZWFkfGxhc3QpJC8udGVzdChtZXRob2ROYW1lKSwgbG9kYXNoRnVuYyA9IGxvZGFzaFtpc1Rha2VyID8gXCJ0YWtlXCIgKyAobWV0aG9kTmFtZSA9PSBcImxhc3RcIiA/IFwiUmlnaHRcIiA6IFwiXCIpIDogbWV0aG9kTmFtZV0sIHJldFVud3JhcHBlZCA9IGlzVGFrZXIgfHwgL15maW5kLy50ZXN0KG1ldGhvZE5hbWUpO1xuICAgICAgICAgIGlmICghbG9kYXNoRnVuYykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cbiAgICAgICAgICBsb2Rhc2gucHJvdG90eXBlW21ldGhvZE5hbWVdID0gZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICB2YXIgdmFsdWUgPSB0aGlzLl9fd3JhcHBlZF9fLCBhcmdzID0gaXNUYWtlciA/IFsxXSA6IGFyZ3VtZW50cywgaXNMYXp5ID0gdmFsdWUgaW5zdGFuY2VvZiBMYXp5V3JhcHBlciwgaXRlcmF0ZWUyID0gYXJnc1swXSwgdXNlTGF6eSA9IGlzTGF6eSB8fCBpc0FycmF5KHZhbHVlKTtcbiAgICAgICAgICAgIHZhciBpbnRlcmNlcHRvciA9IGZ1bmN0aW9uKHZhbHVlMikge1xuICAgICAgICAgICAgICB2YXIgcmVzdWx0MyA9IGxvZGFzaEZ1bmMuYXBwbHkobG9kYXNoLCBhcnJheVB1c2goW3ZhbHVlMl0sIGFyZ3MpKTtcbiAgICAgICAgICAgICAgcmV0dXJuIGlzVGFrZXIgJiYgY2hhaW5BbGwgPyByZXN1bHQzWzBdIDogcmVzdWx0MztcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBpZiAodXNlTGF6eSAmJiBjaGVja0l0ZXJhdGVlICYmIHR5cGVvZiBpdGVyYXRlZTIgPT0gXCJmdW5jdGlvblwiICYmIGl0ZXJhdGVlMi5sZW5ndGggIT0gMSkge1xuICAgICAgICAgICAgICBpc0xhenkgPSB1c2VMYXp5ID0gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB2YXIgY2hhaW5BbGwgPSB0aGlzLl9fY2hhaW5fXywgaXNIeWJyaWQgPSAhIXRoaXMuX19hY3Rpb25zX18ubGVuZ3RoLCBpc1Vud3JhcHBlZCA9IHJldFVud3JhcHBlZCAmJiAhY2hhaW5BbGwsIG9ubHlMYXp5ID0gaXNMYXp5ICYmICFpc0h5YnJpZDtcbiAgICAgICAgICAgIGlmICghcmV0VW53cmFwcGVkICYmIHVzZUxhenkpIHtcbiAgICAgICAgICAgICAgdmFsdWUgPSBvbmx5TGF6eSA/IHZhbHVlIDogbmV3IExhenlXcmFwcGVyKHRoaXMpO1xuICAgICAgICAgICAgICB2YXIgcmVzdWx0MiA9IGZ1bmMuYXBwbHkodmFsdWUsIGFyZ3MpO1xuICAgICAgICAgICAgICByZXN1bHQyLl9fYWN0aW9uc19fLnB1c2goeyBcImZ1bmNcIjogdGhydSwgXCJhcmdzXCI6IFtpbnRlcmNlcHRvcl0sIFwidGhpc0FyZ1wiOiB1bmRlZmluZWQyIH0pO1xuICAgICAgICAgICAgICByZXR1cm4gbmV3IExvZGFzaFdyYXBwZXIocmVzdWx0MiwgY2hhaW5BbGwpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGlzVW53cmFwcGVkICYmIG9ubHlMYXp5KSB7XG4gICAgICAgICAgICAgIHJldHVybiBmdW5jLmFwcGx5KHRoaXMsIGFyZ3MpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmVzdWx0MiA9IHRoaXMudGhydShpbnRlcmNlcHRvcik7XG4gICAgICAgICAgICByZXR1cm4gaXNVbndyYXBwZWQgPyBpc1Rha2VyID8gcmVzdWx0Mi52YWx1ZSgpWzBdIDogcmVzdWx0Mi52YWx1ZSgpIDogcmVzdWx0MjtcbiAgICAgICAgICB9O1xuICAgICAgICB9KTtcbiAgICAgICAgYXJyYXlFYWNoKFtcInBvcFwiLCBcInB1c2hcIiwgXCJzaGlmdFwiLCBcInNvcnRcIiwgXCJzcGxpY2VcIiwgXCJ1bnNoaWZ0XCJdLCBmdW5jdGlvbihtZXRob2ROYW1lKSB7XG4gICAgICAgICAgdmFyIGZ1bmMgPSBhcnJheVByb3RvW21ldGhvZE5hbWVdLCBjaGFpbk5hbWUgPSAvXig/OnB1c2h8c29ydHx1bnNoaWZ0KSQvLnRlc3QobWV0aG9kTmFtZSkgPyBcInRhcFwiIDogXCJ0aHJ1XCIsIHJldFVud3JhcHBlZCA9IC9eKD86cG9wfHNoaWZ0KSQvLnRlc3QobWV0aG9kTmFtZSk7XG4gICAgICAgICAgbG9kYXNoLnByb3RvdHlwZVttZXRob2ROYW1lXSA9IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgdmFyIGFyZ3MgPSBhcmd1bWVudHM7XG4gICAgICAgICAgICBpZiAocmV0VW53cmFwcGVkICYmICF0aGlzLl9fY2hhaW5fXykge1xuICAgICAgICAgICAgICB2YXIgdmFsdWUgPSB0aGlzLnZhbHVlKCk7XG4gICAgICAgICAgICAgIHJldHVybiBmdW5jLmFwcGx5KGlzQXJyYXkodmFsdWUpID8gdmFsdWUgOiBbXSwgYXJncyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gdGhpc1tjaGFpbk5hbWVdKGZ1bmN0aW9uKHZhbHVlMikge1xuICAgICAgICAgICAgICByZXR1cm4gZnVuYy5hcHBseShpc0FycmF5KHZhbHVlMikgPyB2YWx1ZTIgOiBbXSwgYXJncyk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9O1xuICAgICAgICB9KTtcbiAgICAgICAgYmFzZUZvck93bihMYXp5V3JhcHBlci5wcm90b3R5cGUsIGZ1bmN0aW9uKGZ1bmMsIG1ldGhvZE5hbWUpIHtcbiAgICAgICAgICB2YXIgbG9kYXNoRnVuYyA9IGxvZGFzaFttZXRob2ROYW1lXTtcbiAgICAgICAgICBpZiAobG9kYXNoRnVuYykge1xuICAgICAgICAgICAgdmFyIGtleSA9IGxvZGFzaEZ1bmMubmFtZSArIFwiXCI7XG4gICAgICAgICAgICBpZiAoIWhhc093blByb3BlcnR5LmNhbGwocmVhbE5hbWVzLCBrZXkpKSB7XG4gICAgICAgICAgICAgIHJlYWxOYW1lc1trZXldID0gW107XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZWFsTmFtZXNba2V5XS5wdXNoKHsgXCJuYW1lXCI6IG1ldGhvZE5hbWUsIFwiZnVuY1wiOiBsb2Rhc2hGdW5jIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHJlYWxOYW1lc1tjcmVhdGVIeWJyaWQodW5kZWZpbmVkMiwgV1JBUF9CSU5EX0tFWV9GTEFHKS5uYW1lXSA9IFt7XG4gICAgICAgICAgXCJuYW1lXCI6IFwid3JhcHBlclwiLFxuICAgICAgICAgIFwiZnVuY1wiOiB1bmRlZmluZWQyXG4gICAgICAgIH1dO1xuICAgICAgICBMYXp5V3JhcHBlci5wcm90b3R5cGUuY2xvbmUgPSBsYXp5Q2xvbmU7XG4gICAgICAgIExhenlXcmFwcGVyLnByb3RvdHlwZS5yZXZlcnNlID0gbGF6eVJldmVyc2U7XG4gICAgICAgIExhenlXcmFwcGVyLnByb3RvdHlwZS52YWx1ZSA9IGxhenlWYWx1ZTtcbiAgICAgICAgbG9kYXNoLnByb3RvdHlwZS5hdCA9IHdyYXBwZXJBdDtcbiAgICAgICAgbG9kYXNoLnByb3RvdHlwZS5jaGFpbiA9IHdyYXBwZXJDaGFpbjtcbiAgICAgICAgbG9kYXNoLnByb3RvdHlwZS5jb21taXQgPSB3cmFwcGVyQ29tbWl0O1xuICAgICAgICBsb2Rhc2gucHJvdG90eXBlLm5leHQgPSB3cmFwcGVyTmV4dDtcbiAgICAgICAgbG9kYXNoLnByb3RvdHlwZS5wbGFudCA9IHdyYXBwZXJQbGFudDtcbiAgICAgICAgbG9kYXNoLnByb3RvdHlwZS5yZXZlcnNlID0gd3JhcHBlclJldmVyc2U7XG4gICAgICAgIGxvZGFzaC5wcm90b3R5cGUudG9KU09OID0gbG9kYXNoLnByb3RvdHlwZS52YWx1ZU9mID0gbG9kYXNoLnByb3RvdHlwZS52YWx1ZSA9IHdyYXBwZXJWYWx1ZTtcbiAgICAgICAgbG9kYXNoLnByb3RvdHlwZS5maXJzdCA9IGxvZGFzaC5wcm90b3R5cGUuaGVhZDtcbiAgICAgICAgaWYgKHN5bUl0ZXJhdG9yKSB7XG4gICAgICAgICAgbG9kYXNoLnByb3RvdHlwZVtzeW1JdGVyYXRvcl0gPSB3cmFwcGVyVG9JdGVyYXRvcjtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbG9kYXNoO1xuICAgICAgfTtcbiAgICAgIHZhciBfMiA9IHJ1bkluQ29udGV4dCgpO1xuICAgICAgaWYgKHR5cGVvZiBkZWZpbmUgPT0gXCJmdW5jdGlvblwiICYmIHR5cGVvZiBkZWZpbmUuYW1kID09IFwib2JqZWN0XCIgJiYgZGVmaW5lLmFtZCkge1xuICAgICAgICByb290Ll8gPSBfMjtcbiAgICAgICAgZGVmaW5lKGZ1bmN0aW9uKCkge1xuICAgICAgICAgIHJldHVybiBfMjtcbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2UgaWYgKGZyZWVNb2R1bGUpIHtcbiAgICAgICAgKGZyZWVNb2R1bGUuZXhwb3J0cyA9IF8yKS5fID0gXzI7XG4gICAgICAgIGZyZWVFeHBvcnRzLl8gPSBfMjtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJvb3QuXyA9IF8yO1xuICAgICAgfVxuICAgIH0pLmNhbGwoZXhwb3J0czIpO1xuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL29iamVjdC1hc3NpZ24vaW5kZXguanNcbnZhciByZXF1aXJlX29iamVjdF9hc3NpZ24gPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvb2JqZWN0LWFzc2lnbi9pbmRleC5qc1wiKGV4cG9ydHMyLCBtb2R1bGUyKSB7XG4gICAgXCJ1c2Ugc3RyaWN0XCI7XG4gICAgdmFyIGdldE93blByb3BlcnR5U3ltYm9scyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM7XG4gICAgdmFyIGhhc093blByb3BlcnR5ID0gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTtcbiAgICB2YXIgcHJvcElzRW51bWVyYWJsZSA9IE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGU7XG4gICAgZnVuY3Rpb24gdG9PYmplY3QodmFsKSB7XG4gICAgICBpZiAodmFsID09PSBudWxsIHx8IHZhbCA9PT0gdm9pZCAwKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJPYmplY3QuYXNzaWduIGNhbm5vdCBiZSBjYWxsZWQgd2l0aCBudWxsIG9yIHVuZGVmaW5lZFwiKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBPYmplY3QodmFsKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gc2hvdWxkVXNlTmF0aXZlKCkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgaWYgKCFPYmplY3QuYXNzaWduKSB7XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIHZhciB0ZXN0MSA9IG5ldyBTdHJpbmcoXCJhYmNcIik7XG4gICAgICAgIHRlc3QxWzVdID0gXCJkZVwiO1xuICAgICAgICBpZiAoT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModGVzdDEpWzBdID09PSBcIjVcIikge1xuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgdGVzdDIgPSB7fTtcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDsgaSsrKSB7XG4gICAgICAgICAgdGVzdDJbXCJfXCIgKyBTdHJpbmcuZnJvbUNoYXJDb2RlKGkpXSA9IGk7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIG9yZGVyMiA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHRlc3QyKS5tYXAoZnVuY3Rpb24obikge1xuICAgICAgICAgIHJldHVybiB0ZXN0MltuXTtcbiAgICAgICAgfSk7XG4gICAgICAgIGlmIChvcmRlcjIuam9pbihcIlwiKSAhPT0gXCIwMTIzNDU2Nzg5XCIpIHtcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIHRlc3QzID0ge307XG4gICAgICAgIFwiYWJjZGVmZ2hpamtsbW5vcHFyc3RcIi5zcGxpdChcIlwiKS5mb3JFYWNoKGZ1bmN0aW9uKGxldHRlcikge1xuICAgICAgICAgIHRlc3QzW2xldHRlcl0gPSBsZXR0ZXI7XG4gICAgICAgIH0pO1xuICAgICAgICBpZiAoT2JqZWN0LmtleXMoT2JqZWN0LmFzc2lnbih7fSwgdGVzdDMpKS5qb2luKFwiXCIpICE9PSBcImFiY2RlZmdoaWprbG1ub3BxcnN0XCIpIHtcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9IGNhdGNoIChlcnIyKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG4gICAgbW9kdWxlMi5leHBvcnRzID0gc2hvdWxkVXNlTmF0aXZlKCkgPyBPYmplY3QuYXNzaWduIDogZnVuY3Rpb24odGFyZ2V0LCBzb3VyY2UpIHtcbiAgICAgIHZhciBmcm9tO1xuICAgICAgdmFyIHRvID0gdG9PYmplY3QodGFyZ2V0KTtcbiAgICAgIHZhciBzeW1ib2xzO1xuICAgICAgZm9yICh2YXIgcyA9IDE7IHMgPCBhcmd1bWVudHMubGVuZ3RoOyBzKyspIHtcbiAgICAgICAgZnJvbSA9IE9iamVjdChhcmd1bWVudHNbc10pO1xuICAgICAgICBmb3IgKHZhciBrZXkgaW4gZnJvbSkge1xuICAgICAgICAgIGlmIChoYXNPd25Qcm9wZXJ0eS5jYWxsKGZyb20sIGtleSkpIHtcbiAgICAgICAgICAgIHRvW2tleV0gPSBmcm9tW2tleV07XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChnZXRPd25Qcm9wZXJ0eVN5bWJvbHMpIHtcbiAgICAgICAgICBzeW1ib2xzID0gZ2V0T3duUHJvcGVydHlTeW1ib2xzKGZyb20pO1xuICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc3ltYm9scy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgaWYgKHByb3BJc0VudW1lcmFibGUuY2FsbChmcm9tLCBzeW1ib2xzW2ldKSkge1xuICAgICAgICAgICAgICB0b1tzeW1ib2xzW2ldXSA9IGZyb21bc3ltYm9sc1tpXV07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gdG87XG4gICAgfTtcbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9jb3JzL2xpYi9pbmRleC5qc1xudmFyIHJlcXVpcmVfbGliNCA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9jb3JzL2xpYi9pbmRleC5qc1wiKGV4cG9ydHMyLCBtb2R1bGUyKSB7XG4gICAgKGZ1bmN0aW9uKCkge1xuICAgICAgXCJ1c2Ugc3RyaWN0XCI7XG4gICAgICB2YXIgYXNzaWduID0gcmVxdWlyZV9vYmplY3RfYXNzaWduKCk7XG4gICAgICB2YXIgdmFyeSA9IHJlcXVpcmVfdmFyeSgpO1xuICAgICAgdmFyIGRlZmF1bHRzID0ge1xuICAgICAgICBvcmlnaW46IFwiKlwiLFxuICAgICAgICBtZXRob2RzOiBcIkdFVCxIRUFELFBVVCxQQVRDSCxQT1NULERFTEVURVwiLFxuICAgICAgICBwcmVmbGlnaHRDb250aW51ZTogZmFsc2UsXG4gICAgICAgIG9wdGlvbnNTdWNjZXNzU3RhdHVzOiAyMDRcbiAgICAgIH07XG4gICAgICBmdW5jdGlvbiBpc1N0cmluZyhzKSB7XG4gICAgICAgIHJldHVybiB0eXBlb2YgcyA9PT0gXCJzdHJpbmdcIiB8fCBzIGluc3RhbmNlb2YgU3RyaW5nO1xuICAgICAgfVxuICAgICAgZnVuY3Rpb24gaXNPcmlnaW5BbGxvd2VkKG9yaWdpbiwgYWxsb3dlZE9yaWdpbikge1xuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShhbGxvd2VkT3JpZ2luKSkge1xuICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYWxsb3dlZE9yaWdpbi5sZW5ndGg7ICsraSkge1xuICAgICAgICAgICAgaWYgKGlzT3JpZ2luQWxsb3dlZChvcmlnaW4sIGFsbG93ZWRPcmlnaW5baV0pKSB7XG4gICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH0gZWxzZSBpZiAoaXNTdHJpbmcoYWxsb3dlZE9yaWdpbikpIHtcbiAgICAgICAgICByZXR1cm4gb3JpZ2luID09PSBhbGxvd2VkT3JpZ2luO1xuICAgICAgICB9IGVsc2UgaWYgKGFsbG93ZWRPcmlnaW4gaW5zdGFuY2VvZiBSZWdFeHApIHtcbiAgICAgICAgICByZXR1cm4gYWxsb3dlZE9yaWdpbi50ZXN0KG9yaWdpbik7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuICEhYWxsb3dlZE9yaWdpbjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgZnVuY3Rpb24gY29uZmlndXJlT3JpZ2luKG9wdGlvbnMsIHJlcSkge1xuICAgICAgICB2YXIgcmVxdWVzdE9yaWdpbiA9IHJlcS5oZWFkZXJzLm9yaWdpbiwgaGVhZGVycyA9IFtdLCBpc0FsbG93ZWQ7XG4gICAgICAgIGlmICghb3B0aW9ucy5vcmlnaW4gfHwgb3B0aW9ucy5vcmlnaW4gPT09IFwiKlwiKSB7XG4gICAgICAgICAgaGVhZGVycy5wdXNoKFt7XG4gICAgICAgICAgICBrZXk6IFwiQWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2luXCIsXG4gICAgICAgICAgICB2YWx1ZTogXCIqXCJcbiAgICAgICAgICB9XSk7XG4gICAgICAgIH0gZWxzZSBpZiAoaXNTdHJpbmcob3B0aW9ucy5vcmlnaW4pKSB7XG4gICAgICAgICAgaGVhZGVycy5wdXNoKFt7XG4gICAgICAgICAgICBrZXk6IFwiQWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2luXCIsXG4gICAgICAgICAgICB2YWx1ZTogb3B0aW9ucy5vcmlnaW5cbiAgICAgICAgICB9XSk7XG4gICAgICAgICAgaGVhZGVycy5wdXNoKFt7XG4gICAgICAgICAgICBrZXk6IFwiVmFyeVwiLFxuICAgICAgICAgICAgdmFsdWU6IFwiT3JpZ2luXCJcbiAgICAgICAgICB9XSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaXNBbGxvd2VkID0gaXNPcmlnaW5BbGxvd2VkKHJlcXVlc3RPcmlnaW4sIG9wdGlvbnMub3JpZ2luKTtcbiAgICAgICAgICBoZWFkZXJzLnB1c2goW3tcbiAgICAgICAgICAgIGtleTogXCJBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW5cIixcbiAgICAgICAgICAgIHZhbHVlOiBpc0FsbG93ZWQgPyByZXF1ZXN0T3JpZ2luIDogZmFsc2VcbiAgICAgICAgICB9XSk7XG4gICAgICAgICAgaGVhZGVycy5wdXNoKFt7XG4gICAgICAgICAgICBrZXk6IFwiVmFyeVwiLFxuICAgICAgICAgICAgdmFsdWU6IFwiT3JpZ2luXCJcbiAgICAgICAgICB9XSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGhlYWRlcnM7XG4gICAgICB9XG4gICAgICBmdW5jdGlvbiBjb25maWd1cmVNZXRob2RzKG9wdGlvbnMpIHtcbiAgICAgICAgdmFyIG1ldGhvZHMgPSBvcHRpb25zLm1ldGhvZHM7XG4gICAgICAgIGlmIChtZXRob2RzLmpvaW4pIHtcbiAgICAgICAgICBtZXRob2RzID0gb3B0aW9ucy5tZXRob2RzLmpvaW4oXCIsXCIpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAga2V5OiBcIkFjY2Vzcy1Db250cm9sLUFsbG93LU1ldGhvZHNcIixcbiAgICAgICAgICB2YWx1ZTogbWV0aG9kc1xuICAgICAgICB9O1xuICAgICAgfVxuICAgICAgZnVuY3Rpb24gY29uZmlndXJlQ3JlZGVudGlhbHMob3B0aW9ucykge1xuICAgICAgICBpZiAob3B0aW9ucy5jcmVkZW50aWFscyA9PT0gdHJ1ZSkge1xuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBrZXk6IFwiQWNjZXNzLUNvbnRyb2wtQWxsb3ctQ3JlZGVudGlhbHNcIixcbiAgICAgICAgICAgIHZhbHVlOiBcInRydWVcIlxuICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG4gICAgICBmdW5jdGlvbiBjb25maWd1cmVBbGxvd2VkSGVhZGVycyhvcHRpb25zLCByZXEpIHtcbiAgICAgICAgdmFyIGFsbG93ZWRIZWFkZXJzID0gb3B0aW9ucy5hbGxvd2VkSGVhZGVycyB8fCBvcHRpb25zLmhlYWRlcnM7XG4gICAgICAgIHZhciBoZWFkZXJzID0gW107XG4gICAgICAgIGlmICghYWxsb3dlZEhlYWRlcnMpIHtcbiAgICAgICAgICBhbGxvd2VkSGVhZGVycyA9IHJlcS5oZWFkZXJzW1wiYWNjZXNzLWNvbnRyb2wtcmVxdWVzdC1oZWFkZXJzXCJdO1xuICAgICAgICAgIGhlYWRlcnMucHVzaChbe1xuICAgICAgICAgICAga2V5OiBcIlZhcnlcIixcbiAgICAgICAgICAgIHZhbHVlOiBcIkFjY2Vzcy1Db250cm9sLVJlcXVlc3QtSGVhZGVyc1wiXG4gICAgICAgICAgfV0pO1xuICAgICAgICB9IGVsc2UgaWYgKGFsbG93ZWRIZWFkZXJzLmpvaW4pIHtcbiAgICAgICAgICBhbGxvd2VkSGVhZGVycyA9IGFsbG93ZWRIZWFkZXJzLmpvaW4oXCIsXCIpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChhbGxvd2VkSGVhZGVycyAmJiBhbGxvd2VkSGVhZGVycy5sZW5ndGgpIHtcbiAgICAgICAgICBoZWFkZXJzLnB1c2goW3tcbiAgICAgICAgICAgIGtleTogXCJBY2Nlc3MtQ29udHJvbC1BbGxvdy1IZWFkZXJzXCIsXG4gICAgICAgICAgICB2YWx1ZTogYWxsb3dlZEhlYWRlcnNcbiAgICAgICAgICB9XSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGhlYWRlcnM7XG4gICAgICB9XG4gICAgICBmdW5jdGlvbiBjb25maWd1cmVFeHBvc2VkSGVhZGVycyhvcHRpb25zKSB7XG4gICAgICAgIHZhciBoZWFkZXJzID0gb3B0aW9ucy5leHBvc2VkSGVhZGVycztcbiAgICAgICAgaWYgKCFoZWFkZXJzKSB7XG4gICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH0gZWxzZSBpZiAoaGVhZGVycy5qb2luKSB7XG4gICAgICAgICAgaGVhZGVycyA9IGhlYWRlcnMuam9pbihcIixcIik7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGhlYWRlcnMgJiYgaGVhZGVycy5sZW5ndGgpIHtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAga2V5OiBcIkFjY2Vzcy1Db250cm9sLUV4cG9zZS1IZWFkZXJzXCIsXG4gICAgICAgICAgICB2YWx1ZTogaGVhZGVyc1xuICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG4gICAgICBmdW5jdGlvbiBjb25maWd1cmVNYXhBZ2Uob3B0aW9ucykge1xuICAgICAgICB2YXIgbWF4QWdlID0gKHR5cGVvZiBvcHRpb25zLm1heEFnZSA9PT0gXCJudW1iZXJcIiB8fCBvcHRpb25zLm1heEFnZSkgJiYgb3B0aW9ucy5tYXhBZ2UudG9TdHJpbmcoKTtcbiAgICAgICAgaWYgKG1heEFnZSAmJiBtYXhBZ2UubGVuZ3RoKSB7XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGtleTogXCJBY2Nlc3MtQ29udHJvbC1NYXgtQWdlXCIsXG4gICAgICAgICAgICB2YWx1ZTogbWF4QWdlXG4gICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cbiAgICAgIGZ1bmN0aW9uIGFwcGx5SGVhZGVycyhoZWFkZXJzLCByZXMpIHtcbiAgICAgICAgZm9yICh2YXIgaSA9IDAsIG4gPSBoZWFkZXJzLmxlbmd0aDsgaSA8IG47IGkrKykge1xuICAgICAgICAgIHZhciBoZWFkZXIgPSBoZWFkZXJzW2ldO1xuICAgICAgICAgIGlmIChoZWFkZXIpIHtcbiAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KGhlYWRlcikpIHtcbiAgICAgICAgICAgICAgYXBwbHlIZWFkZXJzKGhlYWRlciwgcmVzKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaGVhZGVyLmtleSA9PT0gXCJWYXJ5XCIgJiYgaGVhZGVyLnZhbHVlKSB7XG4gICAgICAgICAgICAgIHZhcnkocmVzLCBoZWFkZXIudmFsdWUpO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChoZWFkZXIudmFsdWUpIHtcbiAgICAgICAgICAgICAgcmVzLnNldEhlYWRlcihoZWFkZXIua2V5LCBoZWFkZXIudmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgZnVuY3Rpb24gY29yczIob3B0aW9ucywgcmVxLCByZXMsIG5leHQpIHtcbiAgICAgICAgdmFyIGhlYWRlcnMgPSBbXSwgbWV0aG9kID0gcmVxLm1ldGhvZCAmJiByZXEubWV0aG9kLnRvVXBwZXJDYXNlICYmIHJlcS5tZXRob2QudG9VcHBlckNhc2UoKTtcbiAgICAgICAgaWYgKG1ldGhvZCA9PT0gXCJPUFRJT05TXCIpIHtcbiAgICAgICAgICBoZWFkZXJzLnB1c2goY29uZmlndXJlT3JpZ2luKG9wdGlvbnMsIHJlcSkpO1xuICAgICAgICAgIGhlYWRlcnMucHVzaChjb25maWd1cmVDcmVkZW50aWFscyhvcHRpb25zLCByZXEpKTtcbiAgICAgICAgICBoZWFkZXJzLnB1c2goY29uZmlndXJlTWV0aG9kcyhvcHRpb25zLCByZXEpKTtcbiAgICAgICAgICBoZWFkZXJzLnB1c2goY29uZmlndXJlQWxsb3dlZEhlYWRlcnMob3B0aW9ucywgcmVxKSk7XG4gICAgICAgICAgaGVhZGVycy5wdXNoKGNvbmZpZ3VyZU1heEFnZShvcHRpb25zLCByZXEpKTtcbiAgICAgICAgICBoZWFkZXJzLnB1c2goY29uZmlndXJlRXhwb3NlZEhlYWRlcnMob3B0aW9ucywgcmVxKSk7XG4gICAgICAgICAgYXBwbHlIZWFkZXJzKGhlYWRlcnMsIHJlcyk7XG4gICAgICAgICAgaWYgKG9wdGlvbnMucHJlZmxpZ2h0Q29udGludWUpIHtcbiAgICAgICAgICAgIG5leHQoKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSBvcHRpb25zLm9wdGlvbnNTdWNjZXNzU3RhdHVzO1xuICAgICAgICAgICAgcmVzLnNldEhlYWRlcihcIkNvbnRlbnQtTGVuZ3RoXCIsIFwiMFwiKTtcbiAgICAgICAgICAgIHJlcy5lbmQoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaGVhZGVycy5wdXNoKGNvbmZpZ3VyZU9yaWdpbihvcHRpb25zLCByZXEpKTtcbiAgICAgICAgICBoZWFkZXJzLnB1c2goY29uZmlndXJlQ3JlZGVudGlhbHMob3B0aW9ucywgcmVxKSk7XG4gICAgICAgICAgaGVhZGVycy5wdXNoKGNvbmZpZ3VyZUV4cG9zZWRIZWFkZXJzKG9wdGlvbnMsIHJlcSkpO1xuICAgICAgICAgIGFwcGx5SGVhZGVycyhoZWFkZXJzLCByZXMpO1xuICAgICAgICAgIG5leHQoKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgZnVuY3Rpb24gbWlkZGxld2FyZVdyYXBwZXIobykge1xuICAgICAgICB2YXIgb3B0aW9uc0NhbGxiYWNrID0gbnVsbDtcbiAgICAgICAgaWYgKHR5cGVvZiBvID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgICBvcHRpb25zQ2FsbGJhY2sgPSBvO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIG9wdGlvbnNDYWxsYmFjayA9IGZ1bmN0aW9uKHJlcSwgY2IpIHtcbiAgICAgICAgICAgIGNiKG51bGwsIG8pO1xuICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uIGNvcnNNaWRkbGV3YXJlKHJlcSwgcmVzLCBuZXh0KSB7XG4gICAgICAgICAgb3B0aW9uc0NhbGxiYWNrKHJlcSwgZnVuY3Rpb24oZXJyMiwgb3B0aW9ucykge1xuICAgICAgICAgICAgaWYgKGVycjIpIHtcbiAgICAgICAgICAgICAgbmV4dChlcnIyKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHZhciBjb3JzT3B0aW9ucyA9IGFzc2lnbih7fSwgZGVmYXVsdHMsIG9wdGlvbnMpO1xuICAgICAgICAgICAgICB2YXIgb3JpZ2luQ2FsbGJhY2sgPSBudWxsO1xuICAgICAgICAgICAgICBpZiAoY29yc09wdGlvbnMub3JpZ2luICYmIHR5cGVvZiBjb3JzT3B0aW9ucy5vcmlnaW4gPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICAgICAgICAgIG9yaWdpbkNhbGxiYWNrID0gY29yc09wdGlvbnMub3JpZ2luO1xuICAgICAgICAgICAgICB9IGVsc2UgaWYgKGNvcnNPcHRpb25zLm9yaWdpbikge1xuICAgICAgICAgICAgICAgIG9yaWdpbkNhbGxiYWNrID0gZnVuY3Rpb24ob3JpZ2luLCBjYikge1xuICAgICAgICAgICAgICAgICAgY2IobnVsbCwgY29yc09wdGlvbnMub3JpZ2luKTtcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGlmIChvcmlnaW5DYWxsYmFjaykge1xuICAgICAgICAgICAgICAgIG9yaWdpbkNhbGxiYWNrKHJlcS5oZWFkZXJzLm9yaWdpbiwgZnVuY3Rpb24oZXJyMjIsIG9yaWdpbikge1xuICAgICAgICAgICAgICAgICAgaWYgKGVycjIyIHx8ICFvcmlnaW4pIHtcbiAgICAgICAgICAgICAgICAgICAgbmV4dChlcnIyMik7XG4gICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBjb3JzT3B0aW9ucy5vcmlnaW4gPSBvcmlnaW47XG4gICAgICAgICAgICAgICAgICAgIGNvcnMyKGNvcnNPcHRpb25zLCByZXEsIHJlcywgbmV4dCk7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgbmV4dCgpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgIH07XG4gICAgICB9XG4gICAgICBtb2R1bGUyLmV4cG9ydHMgPSBtaWRkbGV3YXJlV3JhcHBlcjtcbiAgICB9KSgpO1xuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL3pvZC9saWIvaW5kZXgubWpzXG52YXIgdXRpbDtcbihmdW5jdGlvbih1dGlsMikge1xuICB1dGlsMi5hc3NlcnRFcXVhbCA9ICh2YWwpID0+IHZhbDtcbiAgZnVuY3Rpb24gYXNzZXJ0SXMoX2FyZykge1xuICB9XG4gIHV0aWwyLmFzc2VydElzID0gYXNzZXJ0SXM7XG4gIGZ1bmN0aW9uIGFzc2VydE5ldmVyKF94KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCk7XG4gIH1cbiAgdXRpbDIuYXNzZXJ0TmV2ZXIgPSBhc3NlcnROZXZlcjtcbiAgdXRpbDIuYXJyYXlUb0VudW0gPSAoaXRlbXMpID0+IHtcbiAgICBjb25zdCBvYmogPSB7fTtcbiAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgaXRlbXMpIHtcbiAgICAgIG9ialtpdGVtXSA9IGl0ZW07XG4gICAgfVxuICAgIHJldHVybiBvYmo7XG4gIH07XG4gIHV0aWwyLmdldFZhbGlkRW51bVZhbHVlcyA9IChvYmopID0+IHtcbiAgICBjb25zdCB2YWxpZEtleXMgPSB1dGlsMi5vYmplY3RLZXlzKG9iaikuZmlsdGVyKChrKSA9PiB0eXBlb2Ygb2JqW29ialtrXV0gIT09IFwibnVtYmVyXCIpO1xuICAgIGNvbnN0IGZpbHRlcmVkID0ge307XG4gICAgZm9yIChjb25zdCBrIG9mIHZhbGlkS2V5cykge1xuICAgICAgZmlsdGVyZWRba10gPSBvYmpba107XG4gICAgfVxuICAgIHJldHVybiB1dGlsMi5vYmplY3RWYWx1ZXMoZmlsdGVyZWQpO1xuICB9O1xuICB1dGlsMi5vYmplY3RWYWx1ZXMgPSAob2JqKSA9PiB7XG4gICAgcmV0dXJuIHV0aWwyLm9iamVjdEtleXMob2JqKS5tYXAoZnVuY3Rpb24oZSkge1xuICAgICAgcmV0dXJuIG9ialtlXTtcbiAgICB9KTtcbiAgfTtcbiAgdXRpbDIub2JqZWN0S2V5cyA9IHR5cGVvZiBPYmplY3Qua2V5cyA9PT0gXCJmdW5jdGlvblwiID8gKG9iaikgPT4gT2JqZWN0LmtleXMob2JqKSA6IChvYmplY3QpID0+IHtcbiAgICBjb25zdCBrZXlzID0gW107XG4gICAgZm9yIChjb25zdCBrZXkgaW4gb2JqZWN0KSB7XG4gICAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iamVjdCwga2V5KSkge1xuICAgICAgICBrZXlzLnB1c2goa2V5KTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGtleXM7XG4gIH07XG4gIHV0aWwyLmZpbmQgPSAoYXJyLCBjaGVja2VyKSA9PiB7XG4gICAgZm9yIChjb25zdCBpdGVtIG9mIGFycikge1xuICAgICAgaWYgKGNoZWNrZXIoaXRlbSkpXG4gICAgICAgIHJldHVybiBpdGVtO1xuICAgIH1cbiAgICByZXR1cm4gdm9pZCAwO1xuICB9O1xuICB1dGlsMi5pc0ludGVnZXIgPSB0eXBlb2YgTnVtYmVyLmlzSW50ZWdlciA9PT0gXCJmdW5jdGlvblwiID8gKHZhbCkgPT4gTnVtYmVyLmlzSW50ZWdlcih2YWwpIDogKHZhbCkgPT4gdHlwZW9mIHZhbCA9PT0gXCJudW1iZXJcIiAmJiBpc0Zpbml0ZSh2YWwpICYmIE1hdGguZmxvb3IodmFsKSA9PT0gdmFsO1xuICBmdW5jdGlvbiBqb2luVmFsdWVzKGFycmF5LCBzZXBhcmF0b3IgPSBcIiB8IFwiKSB7XG4gICAgcmV0dXJuIGFycmF5Lm1hcCgodmFsKSA9PiB0eXBlb2YgdmFsID09PSBcInN0cmluZ1wiID8gYCcke3ZhbH0nYCA6IHZhbCkuam9pbihzZXBhcmF0b3IpO1xuICB9XG4gIHV0aWwyLmpvaW5WYWx1ZXMgPSBqb2luVmFsdWVzO1xuICB1dGlsMi5qc29uU3RyaW5naWZ5UmVwbGFjZXIgPSAoXzIsIHZhbHVlKSA9PiB7XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJiaWdpbnRcIikge1xuICAgICAgcmV0dXJuIHZhbHVlLnRvU3RyaW5nKCk7XG4gICAgfVxuICAgIHJldHVybiB2YWx1ZTtcbiAgfTtcbn0pKHV0aWwgfHwgKHV0aWwgPSB7fSkpO1xudmFyIG9iamVjdFV0aWw7XG4oZnVuY3Rpb24ob2JqZWN0VXRpbDIpIHtcbiAgb2JqZWN0VXRpbDIubWVyZ2VTaGFwZXMgPSAoZmlyc3QsIHNlY29uZCkgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICAuLi5maXJzdCxcbiAgICAgIC4uLnNlY29uZFxuICAgICAgLy8gc2Vjb25kIG92ZXJ3cml0ZXMgZmlyc3RcbiAgICB9O1xuICB9O1xufSkob2JqZWN0VXRpbCB8fCAob2JqZWN0VXRpbCA9IHt9KSk7XG52YXIgWm9kUGFyc2VkVHlwZSA9IHV0aWwuYXJyYXlUb0VudW0oW1xuICBcInN0cmluZ1wiLFxuICBcIm5hblwiLFxuICBcIm51bWJlclwiLFxuICBcImludGVnZXJcIixcbiAgXCJmbG9hdFwiLFxuICBcImJvb2xlYW5cIixcbiAgXCJkYXRlXCIsXG4gIFwiYmlnaW50XCIsXG4gIFwic3ltYm9sXCIsXG4gIFwiZnVuY3Rpb25cIixcbiAgXCJ1bmRlZmluZWRcIixcbiAgXCJudWxsXCIsXG4gIFwiYXJyYXlcIixcbiAgXCJvYmplY3RcIixcbiAgXCJ1bmtub3duXCIsXG4gIFwicHJvbWlzZVwiLFxuICBcInZvaWRcIixcbiAgXCJuZXZlclwiLFxuICBcIm1hcFwiLFxuICBcInNldFwiXG5dKTtcbnZhciBnZXRQYXJzZWRUeXBlID0gKGRhdGEpID0+IHtcbiAgY29uc3QgdCA9IHR5cGVvZiBkYXRhO1xuICBzd2l0Y2ggKHQpIHtcbiAgICBjYXNlIFwidW5kZWZpbmVkXCI6XG4gICAgICByZXR1cm4gWm9kUGFyc2VkVHlwZS51bmRlZmluZWQ7XG4gICAgY2FzZSBcInN0cmluZ1wiOlxuICAgICAgcmV0dXJuIFpvZFBhcnNlZFR5cGUuc3RyaW5nO1xuICAgIGNhc2UgXCJudW1iZXJcIjpcbiAgICAgIHJldHVybiBpc05hTihkYXRhKSA/IFpvZFBhcnNlZFR5cGUubmFuIDogWm9kUGFyc2VkVHlwZS5udW1iZXI7XG4gICAgY2FzZSBcImJvb2xlYW5cIjpcbiAgICAgIHJldHVybiBab2RQYXJzZWRUeXBlLmJvb2xlYW47XG4gICAgY2FzZSBcImZ1bmN0aW9uXCI6XG4gICAgICByZXR1cm4gWm9kUGFyc2VkVHlwZS5mdW5jdGlvbjtcbiAgICBjYXNlIFwiYmlnaW50XCI6XG4gICAgICByZXR1cm4gWm9kUGFyc2VkVHlwZS5iaWdpbnQ7XG4gICAgY2FzZSBcInN5bWJvbFwiOlxuICAgICAgcmV0dXJuIFpvZFBhcnNlZFR5cGUuc3ltYm9sO1xuICAgIGNhc2UgXCJvYmplY3RcIjpcbiAgICAgIGlmIChBcnJheS5pc0FycmF5KGRhdGEpKSB7XG4gICAgICAgIHJldHVybiBab2RQYXJzZWRUeXBlLmFycmF5O1xuICAgICAgfVxuICAgICAgaWYgKGRhdGEgPT09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIFpvZFBhcnNlZFR5cGUubnVsbDtcbiAgICAgIH1cbiAgICAgIGlmIChkYXRhLnRoZW4gJiYgdHlwZW9mIGRhdGEudGhlbiA9PT0gXCJmdW5jdGlvblwiICYmIGRhdGEuY2F0Y2ggJiYgdHlwZW9mIGRhdGEuY2F0Y2ggPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICByZXR1cm4gWm9kUGFyc2VkVHlwZS5wcm9taXNlO1xuICAgICAgfVxuICAgICAgaWYgKHR5cGVvZiBNYXAgIT09IFwidW5kZWZpbmVkXCIgJiYgZGF0YSBpbnN0YW5jZW9mIE1hcCkge1xuICAgICAgICByZXR1cm4gWm9kUGFyc2VkVHlwZS5tYXA7XG4gICAgICB9XG4gICAgICBpZiAodHlwZW9mIFNldCAhPT0gXCJ1bmRlZmluZWRcIiAmJiBkYXRhIGluc3RhbmNlb2YgU2V0KSB7XG4gICAgICAgIHJldHVybiBab2RQYXJzZWRUeXBlLnNldDtcbiAgICAgIH1cbiAgICAgIGlmICh0eXBlb2YgRGF0ZSAhPT0gXCJ1bmRlZmluZWRcIiAmJiBkYXRhIGluc3RhbmNlb2YgRGF0ZSkge1xuICAgICAgICByZXR1cm4gWm9kUGFyc2VkVHlwZS5kYXRlO1xuICAgICAgfVxuICAgICAgcmV0dXJuIFpvZFBhcnNlZFR5cGUub2JqZWN0O1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gWm9kUGFyc2VkVHlwZS51bmtub3duO1xuICB9XG59O1xudmFyIFpvZElzc3VlQ29kZSA9IHV0aWwuYXJyYXlUb0VudW0oW1xuICBcImludmFsaWRfdHlwZVwiLFxuICBcImludmFsaWRfbGl0ZXJhbFwiLFxuICBcImN1c3RvbVwiLFxuICBcImludmFsaWRfdW5pb25cIixcbiAgXCJpbnZhbGlkX3VuaW9uX2Rpc2NyaW1pbmF0b3JcIixcbiAgXCJpbnZhbGlkX2VudW1fdmFsdWVcIixcbiAgXCJ1bnJlY29nbml6ZWRfa2V5c1wiLFxuICBcImludmFsaWRfYXJndW1lbnRzXCIsXG4gIFwiaW52YWxpZF9yZXR1cm5fdHlwZVwiLFxuICBcImludmFsaWRfZGF0ZVwiLFxuICBcImludmFsaWRfc3RyaW5nXCIsXG4gIFwidG9vX3NtYWxsXCIsXG4gIFwidG9vX2JpZ1wiLFxuICBcImludmFsaWRfaW50ZXJzZWN0aW9uX3R5cGVzXCIsXG4gIFwibm90X211bHRpcGxlX29mXCIsXG4gIFwibm90X2Zpbml0ZVwiXG5dKTtcbnZhciBxdW90ZWxlc3NKc29uID0gKG9iaikgPT4ge1xuICBjb25zdCBqc29uID0gSlNPTi5zdHJpbmdpZnkob2JqLCBudWxsLCAyKTtcbiAgcmV0dXJuIGpzb24ucmVwbGFjZSgvXCIoW15cIl0rKVwiOi9nLCBcIiQxOlwiKTtcbn07XG52YXIgWm9kRXJyb3IgPSBjbGFzcyBfWm9kRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gIGdldCBlcnJvcnMoKSB7XG4gICAgcmV0dXJuIHRoaXMuaXNzdWVzO1xuICB9XG4gIGNvbnN0cnVjdG9yKGlzc3Vlcykge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5pc3N1ZXMgPSBbXTtcbiAgICB0aGlzLmFkZElzc3VlID0gKHN1YikgPT4ge1xuICAgICAgdGhpcy5pc3N1ZXMgPSBbLi4udGhpcy5pc3N1ZXMsIHN1Yl07XG4gICAgfTtcbiAgICB0aGlzLmFkZElzc3VlcyA9IChzdWJzID0gW10pID0+IHtcbiAgICAgIHRoaXMuaXNzdWVzID0gWy4uLnRoaXMuaXNzdWVzLCAuLi5zdWJzXTtcbiAgICB9O1xuICAgIGNvbnN0IGFjdHVhbFByb3RvID0gbmV3LnRhcmdldC5wcm90b3R5cGU7XG4gICAgaWYgKE9iamVjdC5zZXRQcm90b3R5cGVPZikge1xuICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIGFjdHVhbFByb3RvKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fX3Byb3RvX18gPSBhY3R1YWxQcm90bztcbiAgICB9XG4gICAgdGhpcy5uYW1lID0gXCJab2RFcnJvclwiO1xuICAgIHRoaXMuaXNzdWVzID0gaXNzdWVzO1xuICB9XG4gIGZvcm1hdChfbWFwcGVyKSB7XG4gICAgY29uc3QgbWFwcGVyID0gX21hcHBlciB8fCBmdW5jdGlvbihpc3N1ZSkge1xuICAgICAgcmV0dXJuIGlzc3VlLm1lc3NhZ2U7XG4gICAgfTtcbiAgICBjb25zdCBmaWVsZEVycm9ycyA9IHsgX2Vycm9yczogW10gfTtcbiAgICBjb25zdCBwcm9jZXNzRXJyb3IgPSAoZXJyb3IpID0+IHtcbiAgICAgIGZvciAoY29uc3QgaXNzdWUgb2YgZXJyb3IuaXNzdWVzKSB7XG4gICAgICAgIGlmIChpc3N1ZS5jb2RlID09PSBcImludmFsaWRfdW5pb25cIikge1xuICAgICAgICAgIGlzc3VlLnVuaW9uRXJyb3JzLm1hcChwcm9jZXNzRXJyb3IpO1xuICAgICAgICB9IGVsc2UgaWYgKGlzc3VlLmNvZGUgPT09IFwiaW52YWxpZF9yZXR1cm5fdHlwZVwiKSB7XG4gICAgICAgICAgcHJvY2Vzc0Vycm9yKGlzc3VlLnJldHVyblR5cGVFcnJvcik7XG4gICAgICAgIH0gZWxzZSBpZiAoaXNzdWUuY29kZSA9PT0gXCJpbnZhbGlkX2FyZ3VtZW50c1wiKSB7XG4gICAgICAgICAgcHJvY2Vzc0Vycm9yKGlzc3VlLmFyZ3VtZW50c0Vycm9yKTtcbiAgICAgICAgfSBlbHNlIGlmIChpc3N1ZS5wYXRoLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgIGZpZWxkRXJyb3JzLl9lcnJvcnMucHVzaChtYXBwZXIoaXNzdWUpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBsZXQgY3VyciA9IGZpZWxkRXJyb3JzO1xuICAgICAgICAgIGxldCBpID0gMDtcbiAgICAgICAgICB3aGlsZSAoaSA8IGlzc3VlLnBhdGgubGVuZ3RoKSB7XG4gICAgICAgICAgICBjb25zdCBlbCA9IGlzc3VlLnBhdGhbaV07XG4gICAgICAgICAgICBjb25zdCB0ZXJtaW5hbCA9IGkgPT09IGlzc3VlLnBhdGgubGVuZ3RoIC0gMTtcbiAgICAgICAgICAgIGlmICghdGVybWluYWwpIHtcbiAgICAgICAgICAgICAgY3VycltlbF0gPSBjdXJyW2VsXSB8fCB7IF9lcnJvcnM6IFtdIH07XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBjdXJyW2VsXSA9IGN1cnJbZWxdIHx8IHsgX2Vycm9yczogW10gfTtcbiAgICAgICAgICAgICAgY3VycltlbF0uX2Vycm9ycy5wdXNoKG1hcHBlcihpc3N1ZSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY3VyciA9IGN1cnJbZWxdO1xuICAgICAgICAgICAgaSsrO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH07XG4gICAgcHJvY2Vzc0Vycm9yKHRoaXMpO1xuICAgIHJldHVybiBmaWVsZEVycm9ycztcbiAgfVxuICBzdGF0aWMgYXNzZXJ0KHZhbHVlKSB7XG4gICAgaWYgKCEodmFsdWUgaW5zdGFuY2VvZiBfWm9kRXJyb3IpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYE5vdCBhIFpvZEVycm9yOiAke3ZhbHVlfWApO1xuICAgIH1cbiAgfVxuICB0b1N0cmluZygpIHtcbiAgICByZXR1cm4gdGhpcy5tZXNzYWdlO1xuICB9XG4gIGdldCBtZXNzYWdlKCkge1xuICAgIHJldHVybiBKU09OLnN0cmluZ2lmeSh0aGlzLmlzc3VlcywgdXRpbC5qc29uU3RyaW5naWZ5UmVwbGFjZXIsIDIpO1xuICB9XG4gIGdldCBpc0VtcHR5KCkge1xuICAgIHJldHVybiB0aGlzLmlzc3Vlcy5sZW5ndGggPT09IDA7XG4gIH1cbiAgZmxhdHRlbihtYXBwZXIgPSAoaXNzdWUpID0+IGlzc3VlLm1lc3NhZ2UpIHtcbiAgICBjb25zdCBmaWVsZEVycm9ycyA9IHt9O1xuICAgIGNvbnN0IGZvcm1FcnJvcnMgPSBbXTtcbiAgICBmb3IgKGNvbnN0IHN1YiBvZiB0aGlzLmlzc3Vlcykge1xuICAgICAgaWYgKHN1Yi5wYXRoLmxlbmd0aCA+IDApIHtcbiAgICAgICAgZmllbGRFcnJvcnNbc3ViLnBhdGhbMF1dID0gZmllbGRFcnJvcnNbc3ViLnBhdGhbMF1dIHx8IFtdO1xuICAgICAgICBmaWVsZEVycm9yc1tzdWIucGF0aFswXV0ucHVzaChtYXBwZXIoc3ViKSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBmb3JtRXJyb3JzLnB1c2gobWFwcGVyKHN1YikpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4geyBmb3JtRXJyb3JzLCBmaWVsZEVycm9ycyB9O1xuICB9XG4gIGdldCBmb3JtRXJyb3JzKCkge1xuICAgIHJldHVybiB0aGlzLmZsYXR0ZW4oKTtcbiAgfVxufTtcblpvZEVycm9yLmNyZWF0ZSA9IChpc3N1ZXMpID0+IHtcbiAgY29uc3QgZXJyb3IgPSBuZXcgWm9kRXJyb3IoaXNzdWVzKTtcbiAgcmV0dXJuIGVycm9yO1xufTtcbnZhciBlcnJvck1hcCA9IChpc3N1ZSwgX2N0eCkgPT4ge1xuICBsZXQgbWVzc2FnZTtcbiAgc3dpdGNoIChpc3N1ZS5jb2RlKSB7XG4gICAgY2FzZSBab2RJc3N1ZUNvZGUuaW52YWxpZF90eXBlOlxuICAgICAgaWYgKGlzc3VlLnJlY2VpdmVkID09PSBab2RQYXJzZWRUeXBlLnVuZGVmaW5lZCkge1xuICAgICAgICBtZXNzYWdlID0gXCJSZXF1aXJlZFwiO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbWVzc2FnZSA9IGBFeHBlY3RlZCAke2lzc3VlLmV4cGVjdGVkfSwgcmVjZWl2ZWQgJHtpc3N1ZS5yZWNlaXZlZH1gO1xuICAgICAgfVxuICAgICAgYnJlYWs7XG4gICAgY2FzZSBab2RJc3N1ZUNvZGUuaW52YWxpZF9saXRlcmFsOlxuICAgICAgbWVzc2FnZSA9IGBJbnZhbGlkIGxpdGVyYWwgdmFsdWUsIGV4cGVjdGVkICR7SlNPTi5zdHJpbmdpZnkoaXNzdWUuZXhwZWN0ZWQsIHV0aWwuanNvblN0cmluZ2lmeVJlcGxhY2VyKX1gO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSBab2RJc3N1ZUNvZGUudW5yZWNvZ25pemVkX2tleXM6XG4gICAgICBtZXNzYWdlID0gYFVucmVjb2duaXplZCBrZXkocykgaW4gb2JqZWN0OiAke3V0aWwuam9pblZhbHVlcyhpc3N1ZS5rZXlzLCBcIiwgXCIpfWA7XG4gICAgICBicmVhaztcbiAgICBjYXNlIFpvZElzc3VlQ29kZS5pbnZhbGlkX3VuaW9uOlxuICAgICAgbWVzc2FnZSA9IGBJbnZhbGlkIGlucHV0YDtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgWm9kSXNzdWVDb2RlLmludmFsaWRfdW5pb25fZGlzY3JpbWluYXRvcjpcbiAgICAgIG1lc3NhZ2UgPSBgSW52YWxpZCBkaXNjcmltaW5hdG9yIHZhbHVlLiBFeHBlY3RlZCAke3V0aWwuam9pblZhbHVlcyhpc3N1ZS5vcHRpb25zKX1gO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSBab2RJc3N1ZUNvZGUuaW52YWxpZF9lbnVtX3ZhbHVlOlxuICAgICAgbWVzc2FnZSA9IGBJbnZhbGlkIGVudW0gdmFsdWUuIEV4cGVjdGVkICR7dXRpbC5qb2luVmFsdWVzKGlzc3VlLm9wdGlvbnMpfSwgcmVjZWl2ZWQgJyR7aXNzdWUucmVjZWl2ZWR9J2A7XG4gICAgICBicmVhaztcbiAgICBjYXNlIFpvZElzc3VlQ29kZS5pbnZhbGlkX2FyZ3VtZW50czpcbiAgICAgIG1lc3NhZ2UgPSBgSW52YWxpZCBmdW5jdGlvbiBhcmd1bWVudHNgO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSBab2RJc3N1ZUNvZGUuaW52YWxpZF9yZXR1cm5fdHlwZTpcbiAgICAgIG1lc3NhZ2UgPSBgSW52YWxpZCBmdW5jdGlvbiByZXR1cm4gdHlwZWA7XG4gICAgICBicmVhaztcbiAgICBjYXNlIFpvZElzc3VlQ29kZS5pbnZhbGlkX2RhdGU6XG4gICAgICBtZXNzYWdlID0gYEludmFsaWQgZGF0ZWA7XG4gICAgICBicmVhaztcbiAgICBjYXNlIFpvZElzc3VlQ29kZS5pbnZhbGlkX3N0cmluZzpcbiAgICAgIGlmICh0eXBlb2YgaXNzdWUudmFsaWRhdGlvbiA9PT0gXCJvYmplY3RcIikge1xuICAgICAgICBpZiAoXCJpbmNsdWRlc1wiIGluIGlzc3VlLnZhbGlkYXRpb24pIHtcbiAgICAgICAgICBtZXNzYWdlID0gYEludmFsaWQgaW5wdXQ6IG11c3QgaW5jbHVkZSBcIiR7aXNzdWUudmFsaWRhdGlvbi5pbmNsdWRlc31cImA7XG4gICAgICAgICAgaWYgKHR5cGVvZiBpc3N1ZS52YWxpZGF0aW9uLnBvc2l0aW9uID09PSBcIm51bWJlclwiKSB7XG4gICAgICAgICAgICBtZXNzYWdlID0gYCR7bWVzc2FnZX0gYXQgb25lIG9yIG1vcmUgcG9zaXRpb25zIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAke2lzc3VlLnZhbGlkYXRpb24ucG9zaXRpb259YDtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAoXCJzdGFydHNXaXRoXCIgaW4gaXNzdWUudmFsaWRhdGlvbikge1xuICAgICAgICAgIG1lc3NhZ2UgPSBgSW52YWxpZCBpbnB1dDogbXVzdCBzdGFydCB3aXRoIFwiJHtpc3N1ZS52YWxpZGF0aW9uLnN0YXJ0c1dpdGh9XCJgO1xuICAgICAgICB9IGVsc2UgaWYgKFwiZW5kc1dpdGhcIiBpbiBpc3N1ZS52YWxpZGF0aW9uKSB7XG4gICAgICAgICAgbWVzc2FnZSA9IGBJbnZhbGlkIGlucHV0OiBtdXN0IGVuZCB3aXRoIFwiJHtpc3N1ZS52YWxpZGF0aW9uLmVuZHNXaXRofVwiYDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB1dGlsLmFzc2VydE5ldmVyKGlzc3VlLnZhbGlkYXRpb24pO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKGlzc3VlLnZhbGlkYXRpb24gIT09IFwicmVnZXhcIikge1xuICAgICAgICBtZXNzYWdlID0gYEludmFsaWQgJHtpc3N1ZS52YWxpZGF0aW9ufWA7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBtZXNzYWdlID0gXCJJbnZhbGlkXCI7XG4gICAgICB9XG4gICAgICBicmVhaztcbiAgICBjYXNlIFpvZElzc3VlQ29kZS50b29fc21hbGw6XG4gICAgICBpZiAoaXNzdWUudHlwZSA9PT0gXCJhcnJheVwiKVxuICAgICAgICBtZXNzYWdlID0gYEFycmF5IG11c3QgY29udGFpbiAke2lzc3VlLmV4YWN0ID8gXCJleGFjdGx5XCIgOiBpc3N1ZS5pbmNsdXNpdmUgPyBgYXQgbGVhc3RgIDogYG1vcmUgdGhhbmB9ICR7aXNzdWUubWluaW11bX0gZWxlbWVudChzKWA7XG4gICAgICBlbHNlIGlmIChpc3N1ZS50eXBlID09PSBcInN0cmluZ1wiKVxuICAgICAgICBtZXNzYWdlID0gYFN0cmluZyBtdXN0IGNvbnRhaW4gJHtpc3N1ZS5leGFjdCA/IFwiZXhhY3RseVwiIDogaXNzdWUuaW5jbHVzaXZlID8gYGF0IGxlYXN0YCA6IGBvdmVyYH0gJHtpc3N1ZS5taW5pbXVtfSBjaGFyYWN0ZXIocylgO1xuICAgICAgZWxzZSBpZiAoaXNzdWUudHlwZSA9PT0gXCJudW1iZXJcIilcbiAgICAgICAgbWVzc2FnZSA9IGBOdW1iZXIgbXVzdCBiZSAke2lzc3VlLmV4YWN0ID8gYGV4YWN0bHkgZXF1YWwgdG8gYCA6IGlzc3VlLmluY2x1c2l2ZSA/IGBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gYCA6IGBncmVhdGVyIHRoYW4gYH0ke2lzc3VlLm1pbmltdW19YDtcbiAgICAgIGVsc2UgaWYgKGlzc3VlLnR5cGUgPT09IFwiZGF0ZVwiKVxuICAgICAgICBtZXNzYWdlID0gYERhdGUgbXVzdCBiZSAke2lzc3VlLmV4YWN0ID8gYGV4YWN0bHkgZXF1YWwgdG8gYCA6IGlzc3VlLmluY2x1c2l2ZSA/IGBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gYCA6IGBncmVhdGVyIHRoYW4gYH0ke25ldyBEYXRlKE51bWJlcihpc3N1ZS5taW5pbXVtKSl9YDtcbiAgICAgIGVsc2VcbiAgICAgICAgbWVzc2FnZSA9IFwiSW52YWxpZCBpbnB1dFwiO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSBab2RJc3N1ZUNvZGUudG9vX2JpZzpcbiAgICAgIGlmIChpc3N1ZS50eXBlID09PSBcImFycmF5XCIpXG4gICAgICAgIG1lc3NhZ2UgPSBgQXJyYXkgbXVzdCBjb250YWluICR7aXNzdWUuZXhhY3QgPyBgZXhhY3RseWAgOiBpc3N1ZS5pbmNsdXNpdmUgPyBgYXQgbW9zdGAgOiBgbGVzcyB0aGFuYH0gJHtpc3N1ZS5tYXhpbXVtfSBlbGVtZW50KHMpYDtcbiAgICAgIGVsc2UgaWYgKGlzc3VlLnR5cGUgPT09IFwic3RyaW5nXCIpXG4gICAgICAgIG1lc3NhZ2UgPSBgU3RyaW5nIG11c3QgY29udGFpbiAke2lzc3VlLmV4YWN0ID8gYGV4YWN0bHlgIDogaXNzdWUuaW5jbHVzaXZlID8gYGF0IG1vc3RgIDogYHVuZGVyYH0gJHtpc3N1ZS5tYXhpbXVtfSBjaGFyYWN0ZXIocylgO1xuICAgICAgZWxzZSBpZiAoaXNzdWUudHlwZSA9PT0gXCJudW1iZXJcIilcbiAgICAgICAgbWVzc2FnZSA9IGBOdW1iZXIgbXVzdCBiZSAke2lzc3VlLmV4YWN0ID8gYGV4YWN0bHlgIDogaXNzdWUuaW5jbHVzaXZlID8gYGxlc3MgdGhhbiBvciBlcXVhbCB0b2AgOiBgbGVzcyB0aGFuYH0gJHtpc3N1ZS5tYXhpbXVtfWA7XG4gICAgICBlbHNlIGlmIChpc3N1ZS50eXBlID09PSBcImJpZ2ludFwiKVxuICAgICAgICBtZXNzYWdlID0gYEJpZ0ludCBtdXN0IGJlICR7aXNzdWUuZXhhY3QgPyBgZXhhY3RseWAgOiBpc3N1ZS5pbmNsdXNpdmUgPyBgbGVzcyB0aGFuIG9yIGVxdWFsIHRvYCA6IGBsZXNzIHRoYW5gfSAke2lzc3VlLm1heGltdW19YDtcbiAgICAgIGVsc2UgaWYgKGlzc3VlLnR5cGUgPT09IFwiZGF0ZVwiKVxuICAgICAgICBtZXNzYWdlID0gYERhdGUgbXVzdCBiZSAke2lzc3VlLmV4YWN0ID8gYGV4YWN0bHlgIDogaXNzdWUuaW5jbHVzaXZlID8gYHNtYWxsZXIgdGhhbiBvciBlcXVhbCB0b2AgOiBgc21hbGxlciB0aGFuYH0gJHtuZXcgRGF0ZShOdW1iZXIoaXNzdWUubWF4aW11bSkpfWA7XG4gICAgICBlbHNlXG4gICAgICAgIG1lc3NhZ2UgPSBcIkludmFsaWQgaW5wdXRcIjtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgWm9kSXNzdWVDb2RlLmN1c3RvbTpcbiAgICAgIG1lc3NhZ2UgPSBgSW52YWxpZCBpbnB1dGA7XG4gICAgICBicmVhaztcbiAgICBjYXNlIFpvZElzc3VlQ29kZS5pbnZhbGlkX2ludGVyc2VjdGlvbl90eXBlczpcbiAgICAgIG1lc3NhZ2UgPSBgSW50ZXJzZWN0aW9uIHJlc3VsdHMgY291bGQgbm90IGJlIG1lcmdlZGA7XG4gICAgICBicmVhaztcbiAgICBjYXNlIFpvZElzc3VlQ29kZS5ub3RfbXVsdGlwbGVfb2Y6XG4gICAgICBtZXNzYWdlID0gYE51bWJlciBtdXN0IGJlIGEgbXVsdGlwbGUgb2YgJHtpc3N1ZS5tdWx0aXBsZU9mfWA7XG4gICAgICBicmVhaztcbiAgICBjYXNlIFpvZElzc3VlQ29kZS5ub3RfZmluaXRlOlxuICAgICAgbWVzc2FnZSA9IFwiTnVtYmVyIG11c3QgYmUgZmluaXRlXCI7XG4gICAgICBicmVhaztcbiAgICBkZWZhdWx0OlxuICAgICAgbWVzc2FnZSA9IF9jdHguZGVmYXVsdEVycm9yO1xuICAgICAgdXRpbC5hc3NlcnROZXZlcihpc3N1ZSk7XG4gIH1cbiAgcmV0dXJuIHsgbWVzc2FnZSB9O1xufTtcbnZhciBvdmVycmlkZUVycm9yTWFwID0gZXJyb3JNYXA7XG5mdW5jdGlvbiBzZXRFcnJvck1hcChtYXApIHtcbiAgb3ZlcnJpZGVFcnJvck1hcCA9IG1hcDtcbn1cbmZ1bmN0aW9uIGdldEVycm9yTWFwKCkge1xuICByZXR1cm4gb3ZlcnJpZGVFcnJvck1hcDtcbn1cbnZhciBtYWtlSXNzdWUgPSAocGFyYW1zKSA9PiB7XG4gIGNvbnN0IHsgZGF0YSwgcGF0aCwgZXJyb3JNYXBzLCBpc3N1ZURhdGEgfSA9IHBhcmFtcztcbiAgY29uc3QgZnVsbFBhdGggPSBbLi4ucGF0aCwgLi4uaXNzdWVEYXRhLnBhdGggfHwgW11dO1xuICBjb25zdCBmdWxsSXNzdWUgPSB7XG4gICAgLi4uaXNzdWVEYXRhLFxuICAgIHBhdGg6IGZ1bGxQYXRoXG4gIH07XG4gIGlmIChpc3N1ZURhdGEubWVzc2FnZSAhPT0gdm9pZCAwKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLmlzc3VlRGF0YSxcbiAgICAgIHBhdGg6IGZ1bGxQYXRoLFxuICAgICAgbWVzc2FnZTogaXNzdWVEYXRhLm1lc3NhZ2VcbiAgICB9O1xuICB9XG4gIGxldCBlcnJvck1lc3NhZ2UgPSBcIlwiO1xuICBjb25zdCBtYXBzID0gZXJyb3JNYXBzLmZpbHRlcigobSkgPT4gISFtKS5zbGljZSgpLnJldmVyc2UoKTtcbiAgZm9yIChjb25zdCBtYXAgb2YgbWFwcykge1xuICAgIGVycm9yTWVzc2FnZSA9IG1hcChmdWxsSXNzdWUsIHsgZGF0YSwgZGVmYXVsdEVycm9yOiBlcnJvck1lc3NhZ2UgfSkubWVzc2FnZTtcbiAgfVxuICByZXR1cm4ge1xuICAgIC4uLmlzc3VlRGF0YSxcbiAgICBwYXRoOiBmdWxsUGF0aCxcbiAgICBtZXNzYWdlOiBlcnJvck1lc3NhZ2VcbiAgfTtcbn07XG52YXIgRU1QVFlfUEFUSCA9IFtdO1xuZnVuY3Rpb24gYWRkSXNzdWVUb0NvbnRleHQoY3R4LCBpc3N1ZURhdGEpIHtcbiAgY29uc3Qgb3ZlcnJpZGVNYXAgPSBnZXRFcnJvck1hcCgpO1xuICBjb25zdCBpc3N1ZSA9IG1ha2VJc3N1ZSh7XG4gICAgaXNzdWVEYXRhLFxuICAgIGRhdGE6IGN0eC5kYXRhLFxuICAgIHBhdGg6IGN0eC5wYXRoLFxuICAgIGVycm9yTWFwczogW1xuICAgICAgY3R4LmNvbW1vbi5jb250ZXh0dWFsRXJyb3JNYXAsXG4gICAgICAvLyBjb250ZXh0dWFsIGVycm9yIG1hcCBpcyBmaXJzdCBwcmlvcml0eVxuICAgICAgY3R4LnNjaGVtYUVycm9yTWFwLFxuICAgICAgLy8gdGhlbiBzY2hlbWEtYm91bmQgbWFwIGlmIGF2YWlsYWJsZVxuICAgICAgb3ZlcnJpZGVNYXAsXG4gICAgICAvLyB0aGVuIGdsb2JhbCBvdmVycmlkZSBtYXBcbiAgICAgIG92ZXJyaWRlTWFwID09PSBlcnJvck1hcCA/IHZvaWQgMCA6IGVycm9yTWFwXG4gICAgICAvLyB0aGVuIGdsb2JhbCBkZWZhdWx0IG1hcFxuICAgIF0uZmlsdGVyKCh4KSA9PiAhIXgpXG4gIH0pO1xuICBjdHguY29tbW9uLmlzc3Vlcy5wdXNoKGlzc3VlKTtcbn1cbnZhciBQYXJzZVN0YXR1cyA9IGNsYXNzIF9QYXJzZVN0YXR1cyB7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMudmFsdWUgPSBcInZhbGlkXCI7XG4gIH1cbiAgZGlydHkoKSB7XG4gICAgaWYgKHRoaXMudmFsdWUgPT09IFwidmFsaWRcIilcbiAgICAgIHRoaXMudmFsdWUgPSBcImRpcnR5XCI7XG4gIH1cbiAgYWJvcnQoKSB7XG4gICAgaWYgKHRoaXMudmFsdWUgIT09IFwiYWJvcnRlZFwiKVxuICAgICAgdGhpcy52YWx1ZSA9IFwiYWJvcnRlZFwiO1xuICB9XG4gIHN0YXRpYyBtZXJnZUFycmF5KHN0YXR1cywgcmVzdWx0cykge1xuICAgIGNvbnN0IGFycmF5VmFsdWUgPSBbXTtcbiAgICBmb3IgKGNvbnN0IHMgb2YgcmVzdWx0cykge1xuICAgICAgaWYgKHMuc3RhdHVzID09PSBcImFib3J0ZWRcIilcbiAgICAgICAgcmV0dXJuIElOVkFMSUQ7XG4gICAgICBpZiAocy5zdGF0dXMgPT09IFwiZGlydHlcIilcbiAgICAgICAgc3RhdHVzLmRpcnR5KCk7XG4gICAgICBhcnJheVZhbHVlLnB1c2gocy52YWx1ZSk7XG4gICAgfVxuICAgIHJldHVybiB7IHN0YXR1czogc3RhdHVzLnZhbHVlLCB2YWx1ZTogYXJyYXlWYWx1ZSB9O1xuICB9XG4gIHN0YXRpYyBhc3luYyBtZXJnZU9iamVjdEFzeW5jKHN0YXR1cywgcGFpcnMpIHtcbiAgICBjb25zdCBzeW5jUGFpcnMgPSBbXTtcbiAgICBmb3IgKGNvbnN0IHBhaXIgb2YgcGFpcnMpIHtcbiAgICAgIGNvbnN0IGtleSA9IGF3YWl0IHBhaXIua2V5O1xuICAgICAgY29uc3QgdmFsdWUgPSBhd2FpdCBwYWlyLnZhbHVlO1xuICAgICAgc3luY1BhaXJzLnB1c2goe1xuICAgICAgICBrZXksXG4gICAgICAgIHZhbHVlXG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIF9QYXJzZVN0YXR1cy5tZXJnZU9iamVjdFN5bmMoc3RhdHVzLCBzeW5jUGFpcnMpO1xuICB9XG4gIHN0YXRpYyBtZXJnZU9iamVjdFN5bmMoc3RhdHVzLCBwYWlycykge1xuICAgIGNvbnN0IGZpbmFsT2JqZWN0ID0ge307XG4gICAgZm9yIChjb25zdCBwYWlyIG9mIHBhaXJzKSB7XG4gICAgICBjb25zdCB7IGtleSwgdmFsdWUgfSA9IHBhaXI7XG4gICAgICBpZiAoa2V5LnN0YXR1cyA9PT0gXCJhYm9ydGVkXCIpXG4gICAgICAgIHJldHVybiBJTlZBTElEO1xuICAgICAgaWYgKHZhbHVlLnN0YXR1cyA9PT0gXCJhYm9ydGVkXCIpXG4gICAgICAgIHJldHVybiBJTlZBTElEO1xuICAgICAgaWYgKGtleS5zdGF0dXMgPT09IFwiZGlydHlcIilcbiAgICAgICAgc3RhdHVzLmRpcnR5KCk7XG4gICAgICBpZiAodmFsdWUuc3RhdHVzID09PSBcImRpcnR5XCIpXG4gICAgICAgIHN0YXR1cy5kaXJ0eSgpO1xuICAgICAgaWYgKGtleS52YWx1ZSAhPT0gXCJfX3Byb3RvX19cIiAmJiAodHlwZW9mIHZhbHVlLnZhbHVlICE9PSBcInVuZGVmaW5lZFwiIHx8IHBhaXIuYWx3YXlzU2V0KSkge1xuICAgICAgICBmaW5hbE9iamVjdFtrZXkudmFsdWVdID0gdmFsdWUudmFsdWU7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB7IHN0YXR1czogc3RhdHVzLnZhbHVlLCB2YWx1ZTogZmluYWxPYmplY3QgfTtcbiAgfVxufTtcbnZhciBJTlZBTElEID0gT2JqZWN0LmZyZWV6ZSh7XG4gIHN0YXR1czogXCJhYm9ydGVkXCJcbn0pO1xudmFyIERJUlRZID0gKHZhbHVlKSA9PiAoeyBzdGF0dXM6IFwiZGlydHlcIiwgdmFsdWUgfSk7XG52YXIgT0sgPSAodmFsdWUpID0+ICh7IHN0YXR1czogXCJ2YWxpZFwiLCB2YWx1ZSB9KTtcbnZhciBpc0Fib3J0ZWQgPSAoeCkgPT4geC5zdGF0dXMgPT09IFwiYWJvcnRlZFwiO1xudmFyIGlzRGlydHkgPSAoeCkgPT4geC5zdGF0dXMgPT09IFwiZGlydHlcIjtcbnZhciBpc1ZhbGlkID0gKHgpID0+IHguc3RhdHVzID09PSBcInZhbGlkXCI7XG52YXIgaXNBc3luYyA9ICh4KSA9PiB0eXBlb2YgUHJvbWlzZSAhPT0gXCJ1bmRlZmluZWRcIiAmJiB4IGluc3RhbmNlb2YgUHJvbWlzZTtcbmZ1bmN0aW9uIF9fY2xhc3NQcml2YXRlRmllbGRHZXQocmVjZWl2ZXIsIHN0YXRlLCBraW5kLCBmKSB7XG4gIGlmIChraW5kID09PSBcImFcIiAmJiAhZikgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlByaXZhdGUgYWNjZXNzb3Igd2FzIGRlZmluZWQgd2l0aG91dCBhIGdldHRlclwiKTtcbiAgaWYgKHR5cGVvZiBzdGF0ZSA9PT0gXCJmdW5jdGlvblwiID8gcmVjZWl2ZXIgIT09IHN0YXRlIHx8ICFmIDogIXN0YXRlLmhhcyhyZWNlaXZlcikpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJDYW5ub3QgcmVhZCBwcml2YXRlIG1lbWJlciBmcm9tIGFuIG9iamVjdCB3aG9zZSBjbGFzcyBkaWQgbm90IGRlY2xhcmUgaXRcIik7XG4gIHJldHVybiBraW5kID09PSBcIm1cIiA/IGYgOiBraW5kID09PSBcImFcIiA/IGYuY2FsbChyZWNlaXZlcikgOiBmID8gZi52YWx1ZSA6IHN0YXRlLmdldChyZWNlaXZlcik7XG59XG5mdW5jdGlvbiBfX2NsYXNzUHJpdmF0ZUZpZWxkU2V0KHJlY2VpdmVyLCBzdGF0ZSwgdmFsdWUsIGtpbmQsIGYpIHtcbiAgaWYgKGtpbmQgPT09IFwibVwiKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiUHJpdmF0ZSBtZXRob2QgaXMgbm90IHdyaXRhYmxlXCIpO1xuICBpZiAoa2luZCA9PT0gXCJhXCIgJiYgIWYpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJQcml2YXRlIGFjY2Vzc29yIHdhcyBkZWZpbmVkIHdpdGhvdXQgYSBzZXR0ZXJcIik7XG4gIGlmICh0eXBlb2Ygc3RhdGUgPT09IFwiZnVuY3Rpb25cIiA/IHJlY2VpdmVyICE9PSBzdGF0ZSB8fCAhZiA6ICFzdGF0ZS5oYXMocmVjZWl2ZXIpKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IHdyaXRlIHByaXZhdGUgbWVtYmVyIHRvIGFuIG9iamVjdCB3aG9zZSBjbGFzcyBkaWQgbm90IGRlY2xhcmUgaXRcIik7XG4gIHJldHVybiBraW5kID09PSBcImFcIiA/IGYuY2FsbChyZWNlaXZlciwgdmFsdWUpIDogZiA/IGYudmFsdWUgPSB2YWx1ZSA6IHN0YXRlLnNldChyZWNlaXZlciwgdmFsdWUpLCB2YWx1ZTtcbn1cbnZhciBlcnJvclV0aWw7XG4oZnVuY3Rpb24oZXJyb3JVdGlsMikge1xuICBlcnJvclV0aWwyLmVyclRvT2JqID0gKG1lc3NhZ2UpID0+IHR5cGVvZiBtZXNzYWdlID09PSBcInN0cmluZ1wiID8geyBtZXNzYWdlIH0gOiBtZXNzYWdlIHx8IHt9O1xuICBlcnJvclV0aWwyLnRvU3RyaW5nID0gKG1lc3NhZ2UpID0+IHR5cGVvZiBtZXNzYWdlID09PSBcInN0cmluZ1wiID8gbWVzc2FnZSA6IG1lc3NhZ2UgPT09IG51bGwgfHwgbWVzc2FnZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogbWVzc2FnZS5tZXNzYWdlO1xufSkoZXJyb3JVdGlsIHx8IChlcnJvclV0aWwgPSB7fSkpO1xudmFyIF9ab2RFbnVtX2NhY2hlO1xudmFyIF9ab2ROYXRpdmVFbnVtX2NhY2hlO1xudmFyIFBhcnNlSW5wdXRMYXp5UGF0aCA9IGNsYXNzIHtcbiAgY29uc3RydWN0b3IocGFyZW50LCB2YWx1ZSwgcGF0aCwga2V5KSB7XG4gICAgdGhpcy5fY2FjaGVkUGF0aCA9IFtdO1xuICAgIHRoaXMucGFyZW50ID0gcGFyZW50O1xuICAgIHRoaXMuZGF0YSA9IHZhbHVlO1xuICAgIHRoaXMuX3BhdGggPSBwYXRoO1xuICAgIHRoaXMuX2tleSA9IGtleTtcbiAgfVxuICBnZXQgcGF0aCgpIHtcbiAgICBpZiAoIXRoaXMuX2NhY2hlZFBhdGgubGVuZ3RoKSB7XG4gICAgICBpZiAodGhpcy5fa2V5IGluc3RhbmNlb2YgQXJyYXkpIHtcbiAgICAgICAgdGhpcy5fY2FjaGVkUGF0aC5wdXNoKC4uLnRoaXMuX3BhdGgsIC4uLnRoaXMuX2tleSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLl9jYWNoZWRQYXRoLnB1c2goLi4udGhpcy5fcGF0aCwgdGhpcy5fa2V5KTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuX2NhY2hlZFBhdGg7XG4gIH1cbn07XG52YXIgaGFuZGxlUmVzdWx0ID0gKGN0eCwgcmVzdWx0KSA9PiB7XG4gIGlmIChpc1ZhbGlkKHJlc3VsdCkpIHtcbiAgICByZXR1cm4geyBzdWNjZXNzOiB0cnVlLCBkYXRhOiByZXN1bHQudmFsdWUgfTtcbiAgfSBlbHNlIHtcbiAgICBpZiAoIWN0eC5jb21tb24uaXNzdWVzLmxlbmd0aCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiVmFsaWRhdGlvbiBmYWlsZWQgYnV0IG5vIGlzc3VlcyBkZXRlY3RlZC5cIik7XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICBzdWNjZXNzOiBmYWxzZSxcbiAgICAgIGdldCBlcnJvcigpIHtcbiAgICAgICAgaWYgKHRoaXMuX2Vycm9yKVxuICAgICAgICAgIHJldHVybiB0aGlzLl9lcnJvcjtcbiAgICAgICAgY29uc3QgZXJyb3IgPSBuZXcgWm9kRXJyb3IoY3R4LmNvbW1vbi5pc3N1ZXMpO1xuICAgICAgICB0aGlzLl9lcnJvciA9IGVycm9yO1xuICAgICAgICByZXR1cm4gdGhpcy5fZXJyb3I7XG4gICAgICB9XG4gICAgfTtcbiAgfVxufTtcbmZ1bmN0aW9uIHByb2Nlc3NDcmVhdGVQYXJhbXMocGFyYW1zKSB7XG4gIGlmICghcGFyYW1zKVxuICAgIHJldHVybiB7fTtcbiAgY29uc3QgeyBlcnJvck1hcDogZXJyb3JNYXAyLCBpbnZhbGlkX3R5cGVfZXJyb3IsIHJlcXVpcmVkX2Vycm9yLCBkZXNjcmlwdGlvbiB9ID0gcGFyYW1zO1xuICBpZiAoZXJyb3JNYXAyICYmIChpbnZhbGlkX3R5cGVfZXJyb3IgfHwgcmVxdWlyZWRfZXJyb3IpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBDYW4ndCB1c2UgXCJpbnZhbGlkX3R5cGVfZXJyb3JcIiBvciBcInJlcXVpcmVkX2Vycm9yXCIgaW4gY29uanVuY3Rpb24gd2l0aCBjdXN0b20gZXJyb3IgbWFwLmApO1xuICB9XG4gIGlmIChlcnJvck1hcDIpXG4gICAgcmV0dXJuIHsgZXJyb3JNYXA6IGVycm9yTWFwMiwgZGVzY3JpcHRpb24gfTtcbiAgY29uc3QgY3VzdG9tTWFwID0gKGlzcywgY3R4KSA9PiB7XG4gICAgdmFyIF9hLCBfYjtcbiAgICBjb25zdCB7IG1lc3NhZ2UgfSA9IHBhcmFtcztcbiAgICBpZiAoaXNzLmNvZGUgPT09IFwiaW52YWxpZF9lbnVtX3ZhbHVlXCIpIHtcbiAgICAgIHJldHVybiB7IG1lc3NhZ2U6IG1lc3NhZ2UgIT09IG51bGwgJiYgbWVzc2FnZSAhPT0gdm9pZCAwID8gbWVzc2FnZSA6IGN0eC5kZWZhdWx0RXJyb3IgfTtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiBjdHguZGF0YSA9PT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgcmV0dXJuIHsgbWVzc2FnZTogKF9hID0gbWVzc2FnZSAhPT0gbnVsbCAmJiBtZXNzYWdlICE9PSB2b2lkIDAgPyBtZXNzYWdlIDogcmVxdWlyZWRfZXJyb3IpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IGN0eC5kZWZhdWx0RXJyb3IgfTtcbiAgICB9XG4gICAgaWYgKGlzcy5jb2RlICE9PSBcImludmFsaWRfdHlwZVwiKVxuICAgICAgcmV0dXJuIHsgbWVzc2FnZTogY3R4LmRlZmF1bHRFcnJvciB9O1xuICAgIHJldHVybiB7IG1lc3NhZ2U6IChfYiA9IG1lc3NhZ2UgIT09IG51bGwgJiYgbWVzc2FnZSAhPT0gdm9pZCAwID8gbWVzc2FnZSA6IGludmFsaWRfdHlwZV9lcnJvcikgIT09IG51bGwgJiYgX2IgIT09IHZvaWQgMCA/IF9iIDogY3R4LmRlZmF1bHRFcnJvciB9O1xuICB9O1xuICByZXR1cm4geyBlcnJvck1hcDogY3VzdG9tTWFwLCBkZXNjcmlwdGlvbiB9O1xufVxudmFyIFpvZFR5cGUgPSBjbGFzcyB7XG4gIGdldCBkZXNjcmlwdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy5fZGVmLmRlc2NyaXB0aW9uO1xuICB9XG4gIF9nZXRUeXBlKGlucHV0KSB7XG4gICAgcmV0dXJuIGdldFBhcnNlZFR5cGUoaW5wdXQuZGF0YSk7XG4gIH1cbiAgX2dldE9yUmV0dXJuQ3R4KGlucHV0LCBjdHgpIHtcbiAgICByZXR1cm4gY3R4IHx8IHtcbiAgICAgIGNvbW1vbjogaW5wdXQucGFyZW50LmNvbW1vbixcbiAgICAgIGRhdGE6IGlucHV0LmRhdGEsXG4gICAgICBwYXJzZWRUeXBlOiBnZXRQYXJzZWRUeXBlKGlucHV0LmRhdGEpLFxuICAgICAgc2NoZW1hRXJyb3JNYXA6IHRoaXMuX2RlZi5lcnJvck1hcCxcbiAgICAgIHBhdGg6IGlucHV0LnBhdGgsXG4gICAgICBwYXJlbnQ6IGlucHV0LnBhcmVudFxuICAgIH07XG4gIH1cbiAgX3Byb2Nlc3NJbnB1dFBhcmFtcyhpbnB1dCkge1xuICAgIHJldHVybiB7XG4gICAgICBzdGF0dXM6IG5ldyBQYXJzZVN0YXR1cygpLFxuICAgICAgY3R4OiB7XG4gICAgICAgIGNvbW1vbjogaW5wdXQucGFyZW50LmNvbW1vbixcbiAgICAgICAgZGF0YTogaW5wdXQuZGF0YSxcbiAgICAgICAgcGFyc2VkVHlwZTogZ2V0UGFyc2VkVHlwZShpbnB1dC5kYXRhKSxcbiAgICAgICAgc2NoZW1hRXJyb3JNYXA6IHRoaXMuX2RlZi5lcnJvck1hcCxcbiAgICAgICAgcGF0aDogaW5wdXQucGF0aCxcbiAgICAgICAgcGFyZW50OiBpbnB1dC5wYXJlbnRcbiAgICAgIH1cbiAgICB9O1xuICB9XG4gIF9wYXJzZVN5bmMoaW5wdXQpIHtcbiAgICBjb25zdCByZXN1bHQgPSB0aGlzLl9wYXJzZShpbnB1dCk7XG4gICAgaWYgKGlzQXN5bmMocmVzdWx0KSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiU3luY2hyb25vdXMgcGFyc2UgZW5jb3VudGVyZWQgcHJvbWlzZS5cIik7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cbiAgX3BhcnNlQXN5bmMoaW5wdXQpIHtcbiAgICBjb25zdCByZXN1bHQgPSB0aGlzLl9wYXJzZShpbnB1dCk7XG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShyZXN1bHQpO1xuICB9XG4gIHBhcnNlKGRhdGEsIHBhcmFtcykge1xuICAgIGNvbnN0IHJlc3VsdCA9IHRoaXMuc2FmZVBhcnNlKGRhdGEsIHBhcmFtcyk7XG4gICAgaWYgKHJlc3VsdC5zdWNjZXNzKVxuICAgICAgcmV0dXJuIHJlc3VsdC5kYXRhO1xuICAgIHRocm93IHJlc3VsdC5lcnJvcjtcbiAgfVxuICBzYWZlUGFyc2UoZGF0YSwgcGFyYW1zKSB7XG4gICAgdmFyIF9hO1xuICAgIGNvbnN0IGN0eCA9IHtcbiAgICAgIGNvbW1vbjoge1xuICAgICAgICBpc3N1ZXM6IFtdLFxuICAgICAgICBhc3luYzogKF9hID0gcGFyYW1zID09PSBudWxsIHx8IHBhcmFtcyA9PT0gdm9pZCAwID8gdm9pZCAwIDogcGFyYW1zLmFzeW5jKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiBmYWxzZSxcbiAgICAgICAgY29udGV4dHVhbEVycm9yTWFwOiBwYXJhbXMgPT09IG51bGwgfHwgcGFyYW1zID09PSB2b2lkIDAgPyB2b2lkIDAgOiBwYXJhbXMuZXJyb3JNYXBcbiAgICAgIH0sXG4gICAgICBwYXRoOiAocGFyYW1zID09PSBudWxsIHx8IHBhcmFtcyA9PT0gdm9pZCAwID8gdm9pZCAwIDogcGFyYW1zLnBhdGgpIHx8IFtdLFxuICAgICAgc2NoZW1hRXJyb3JNYXA6IHRoaXMuX2RlZi5lcnJvck1hcCxcbiAgICAgIHBhcmVudDogbnVsbCxcbiAgICAgIGRhdGEsXG4gICAgICBwYXJzZWRUeXBlOiBnZXRQYXJzZWRUeXBlKGRhdGEpXG4gICAgfTtcbiAgICBjb25zdCByZXN1bHQgPSB0aGlzLl9wYXJzZVN5bmMoeyBkYXRhLCBwYXRoOiBjdHgucGF0aCwgcGFyZW50OiBjdHggfSk7XG4gICAgcmV0dXJuIGhhbmRsZVJlc3VsdChjdHgsIHJlc3VsdCk7XG4gIH1cbiAgXCJ+dmFsaWRhdGVcIihkYXRhKSB7XG4gICAgdmFyIF9hLCBfYjtcbiAgICBjb25zdCBjdHggPSB7XG4gICAgICBjb21tb246IHtcbiAgICAgICAgaXNzdWVzOiBbXSxcbiAgICAgICAgYXN5bmM6ICEhdGhpc1tcIn5zdGFuZGFyZFwiXS5hc3luY1xuICAgICAgfSxcbiAgICAgIHBhdGg6IFtdLFxuICAgICAgc2NoZW1hRXJyb3JNYXA6IHRoaXMuX2RlZi5lcnJvck1hcCxcbiAgICAgIHBhcmVudDogbnVsbCxcbiAgICAgIGRhdGEsXG4gICAgICBwYXJzZWRUeXBlOiBnZXRQYXJzZWRUeXBlKGRhdGEpXG4gICAgfTtcbiAgICBpZiAoIXRoaXNbXCJ+c3RhbmRhcmRcIl0uYXN5bmMpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IHRoaXMuX3BhcnNlU3luYyh7IGRhdGEsIHBhdGg6IFtdLCBwYXJlbnQ6IGN0eCB9KTtcbiAgICAgICAgcmV0dXJuIGlzVmFsaWQocmVzdWx0KSA/IHtcbiAgICAgICAgICB2YWx1ZTogcmVzdWx0LnZhbHVlXG4gICAgICAgIH0gOiB7XG4gICAgICAgICAgaXNzdWVzOiBjdHguY29tbW9uLmlzc3Vlc1xuICAgICAgICB9O1xuICAgICAgfSBjYXRjaCAoZXJyMikge1xuICAgICAgICBpZiAoKF9iID0gKF9hID0gZXJyMiA9PT0gbnVsbCB8fCBlcnIyID09PSB2b2lkIDAgPyB2b2lkIDAgOiBlcnIyLm1lc3NhZ2UpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS50b0xvd2VyQ2FzZSgpKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IuaW5jbHVkZXMoXCJlbmNvdW50ZXJlZFwiKSkge1xuICAgICAgICAgIHRoaXNbXCJ+c3RhbmRhcmRcIl0uYXN5bmMgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGN0eC5jb21tb24gPSB7XG4gICAgICAgICAgaXNzdWVzOiBbXSxcbiAgICAgICAgICBhc3luYzogdHJ1ZVxuICAgICAgICB9O1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdGhpcy5fcGFyc2VBc3luYyh7IGRhdGEsIHBhdGg6IFtdLCBwYXJlbnQ6IGN0eCB9KS50aGVuKChyZXN1bHQpID0+IGlzVmFsaWQocmVzdWx0KSA/IHtcbiAgICAgIHZhbHVlOiByZXN1bHQudmFsdWVcbiAgICB9IDoge1xuICAgICAgaXNzdWVzOiBjdHguY29tbW9uLmlzc3Vlc1xuICAgIH0pO1xuICB9XG4gIGFzeW5jIHBhcnNlQXN5bmMoZGF0YSwgcGFyYW1zKSB7XG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5zYWZlUGFyc2VBc3luYyhkYXRhLCBwYXJhbXMpO1xuICAgIGlmIChyZXN1bHQuc3VjY2VzcylcbiAgICAgIHJldHVybiByZXN1bHQuZGF0YTtcbiAgICB0aHJvdyByZXN1bHQuZXJyb3I7XG4gIH1cbiAgYXN5bmMgc2FmZVBhcnNlQXN5bmMoZGF0YSwgcGFyYW1zKSB7XG4gICAgY29uc3QgY3R4ID0ge1xuICAgICAgY29tbW9uOiB7XG4gICAgICAgIGlzc3VlczogW10sXG4gICAgICAgIGNvbnRleHR1YWxFcnJvck1hcDogcGFyYW1zID09PSBudWxsIHx8IHBhcmFtcyA9PT0gdm9pZCAwID8gdm9pZCAwIDogcGFyYW1zLmVycm9yTWFwLFxuICAgICAgICBhc3luYzogdHJ1ZVxuICAgICAgfSxcbiAgICAgIHBhdGg6IChwYXJhbXMgPT09IG51bGwgfHwgcGFyYW1zID09PSB2b2lkIDAgPyB2b2lkIDAgOiBwYXJhbXMucGF0aCkgfHwgW10sXG4gICAgICBzY2hlbWFFcnJvck1hcDogdGhpcy5fZGVmLmVycm9yTWFwLFxuICAgICAgcGFyZW50OiBudWxsLFxuICAgICAgZGF0YSxcbiAgICAgIHBhcnNlZFR5cGU6IGdldFBhcnNlZFR5cGUoZGF0YSlcbiAgICB9O1xuICAgIGNvbnN0IG1heWJlQXN5bmNSZXN1bHQgPSB0aGlzLl9wYXJzZSh7IGRhdGEsIHBhdGg6IGN0eC5wYXRoLCBwYXJlbnQ6IGN0eCB9KTtcbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCAoaXNBc3luYyhtYXliZUFzeW5jUmVzdWx0KSA/IG1heWJlQXN5bmNSZXN1bHQgOiBQcm9taXNlLnJlc29sdmUobWF5YmVBc3luY1Jlc3VsdCkpO1xuICAgIHJldHVybiBoYW5kbGVSZXN1bHQoY3R4LCByZXN1bHQpO1xuICB9XG4gIHJlZmluZShjaGVjaywgbWVzc2FnZSkge1xuICAgIGNvbnN0IGdldElzc3VlUHJvcGVydGllcyA9ICh2YWwpID0+IHtcbiAgICAgIGlmICh0eXBlb2YgbWVzc2FnZSA9PT0gXCJzdHJpbmdcIiB8fCB0eXBlb2YgbWVzc2FnZSA9PT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgICByZXR1cm4geyBtZXNzYWdlIH07XG4gICAgICB9IGVsc2UgaWYgKHR5cGVvZiBtZXNzYWdlID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgcmV0dXJuIG1lc3NhZ2UodmFsKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBtZXNzYWdlO1xuICAgICAgfVxuICAgIH07XG4gICAgcmV0dXJuIHRoaXMuX3JlZmluZW1lbnQoKHZhbCwgY3R4KSA9PiB7XG4gICAgICBjb25zdCByZXN1bHQgPSBjaGVjayh2YWwpO1xuICAgICAgY29uc3Qgc2V0RXJyb3IgPSAoKSA9PiBjdHguYWRkSXNzdWUoe1xuICAgICAgICBjb2RlOiBab2RJc3N1ZUNvZGUuY3VzdG9tLFxuICAgICAgICAuLi5nZXRJc3N1ZVByb3BlcnRpZXModmFsKVxuICAgICAgfSk7XG4gICAgICBpZiAodHlwZW9mIFByb21pc2UgIT09IFwidW5kZWZpbmVkXCIgJiYgcmVzdWx0IGluc3RhbmNlb2YgUHJvbWlzZSkge1xuICAgICAgICByZXR1cm4gcmVzdWx0LnRoZW4oKGRhdGEpID0+IHtcbiAgICAgICAgICBpZiAoIWRhdGEpIHtcbiAgICAgICAgICAgIHNldEVycm9yKCk7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICBpZiAoIXJlc3VsdCkge1xuICAgICAgICBzZXRFcnJvcigpO1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuICByZWZpbmVtZW50KGNoZWNrLCByZWZpbmVtZW50RGF0YSkge1xuICAgIHJldHVybiB0aGlzLl9yZWZpbmVtZW50KCh2YWwsIGN0eCkgPT4ge1xuICAgICAgaWYgKCFjaGVjayh2YWwpKSB7XG4gICAgICAgIGN0eC5hZGRJc3N1ZSh0eXBlb2YgcmVmaW5lbWVudERhdGEgPT09IFwiZnVuY3Rpb25cIiA/IHJlZmluZW1lbnREYXRhKHZhbCwgY3R4KSA6IHJlZmluZW1lbnREYXRhKTtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbiAgX3JlZmluZW1lbnQocmVmaW5lbWVudCkge1xuICAgIHJldHVybiBuZXcgWm9kRWZmZWN0cyh7XG4gICAgICBzY2hlbWE6IHRoaXMsXG4gICAgICB0eXBlTmFtZTogWm9kRmlyc3RQYXJ0eVR5cGVLaW5kLlpvZEVmZmVjdHMsXG4gICAgICBlZmZlY3Q6IHsgdHlwZTogXCJyZWZpbmVtZW50XCIsIHJlZmluZW1lbnQgfVxuICAgIH0pO1xuICB9XG4gIHN1cGVyUmVmaW5lKHJlZmluZW1lbnQpIHtcbiAgICByZXR1cm4gdGhpcy5fcmVmaW5lbWVudChyZWZpbmVtZW50KTtcbiAgfVxuICBjb25zdHJ1Y3RvcihkZWYpIHtcbiAgICB0aGlzLnNwYSA9IHRoaXMuc2FmZVBhcnNlQXN5bmM7XG4gICAgdGhpcy5fZGVmID0gZGVmO1xuICAgIHRoaXMucGFyc2UgPSB0aGlzLnBhcnNlLmJpbmQodGhpcyk7XG4gICAgdGhpcy5zYWZlUGFyc2UgPSB0aGlzLnNhZmVQYXJzZS5iaW5kKHRoaXMpO1xuICAgIHRoaXMucGFyc2VBc3luYyA9IHRoaXMucGFyc2VBc3luYy5iaW5kKHRoaXMpO1xuICAgIHRoaXMuc2FmZVBhcnNlQXN5bmMgPSB0aGlzLnNhZmVQYXJzZUFzeW5jLmJpbmQodGhpcyk7XG4gICAgdGhpcy5zcGEgPSB0aGlzLnNwYS5iaW5kKHRoaXMpO1xuICAgIHRoaXMucmVmaW5lID0gdGhpcy5yZWZpbmUuYmluZCh0aGlzKTtcbiAgICB0aGlzLnJlZmluZW1lbnQgPSB0aGlzLnJlZmluZW1lbnQuYmluZCh0aGlzKTtcbiAgICB0aGlzLnN1cGVyUmVmaW5lID0gdGhpcy5zdXBlclJlZmluZS5iaW5kKHRoaXMpO1xuICAgIHRoaXMub3B0aW9uYWwgPSB0aGlzLm9wdGlvbmFsLmJpbmQodGhpcyk7XG4gICAgdGhpcy5udWxsYWJsZSA9IHRoaXMubnVsbGFibGUuYmluZCh0aGlzKTtcbiAgICB0aGlzLm51bGxpc2ggPSB0aGlzLm51bGxpc2guYmluZCh0aGlzKTtcbiAgICB0aGlzLmFycmF5ID0gdGhpcy5hcnJheS5iaW5kKHRoaXMpO1xuICAgIHRoaXMucHJvbWlzZSA9IHRoaXMucHJvbWlzZS5iaW5kKHRoaXMpO1xuICAgIHRoaXMub3IgPSB0aGlzLm9yLmJpbmQodGhpcyk7XG4gICAgdGhpcy5hbmQgPSB0aGlzLmFuZC5iaW5kKHRoaXMpO1xuICAgIHRoaXMudHJhbnNmb3JtID0gdGhpcy50cmFuc2Zvcm0uYmluZCh0aGlzKTtcbiAgICB0aGlzLmJyYW5kID0gdGhpcy5icmFuZC5iaW5kKHRoaXMpO1xuICAgIHRoaXMuZGVmYXVsdCA9IHRoaXMuZGVmYXVsdC5iaW5kKHRoaXMpO1xuICAgIHRoaXMuY2F0Y2ggPSB0aGlzLmNhdGNoLmJpbmQodGhpcyk7XG4gICAgdGhpcy5kZXNjcmliZSA9IHRoaXMuZGVzY3JpYmUuYmluZCh0aGlzKTtcbiAgICB0aGlzLnBpcGUgPSB0aGlzLnBpcGUuYmluZCh0aGlzKTtcbiAgICB0aGlzLnJlYWRvbmx5ID0gdGhpcy5yZWFkb25seS5iaW5kKHRoaXMpO1xuICAgIHRoaXMuaXNOdWxsYWJsZSA9IHRoaXMuaXNOdWxsYWJsZS5iaW5kKHRoaXMpO1xuICAgIHRoaXMuaXNPcHRpb25hbCA9IHRoaXMuaXNPcHRpb25hbC5iaW5kKHRoaXMpO1xuICAgIHRoaXNbXCJ+c3RhbmRhcmRcIl0gPSB7XG4gICAgICB2ZXJzaW9uOiAxLFxuICAgICAgdmVuZG9yOiBcInpvZFwiLFxuICAgICAgdmFsaWRhdGU6IChkYXRhKSA9PiB0aGlzW1wifnZhbGlkYXRlXCJdKGRhdGEpXG4gICAgfTtcbiAgfVxuICBvcHRpb25hbCgpIHtcbiAgICByZXR1cm4gWm9kT3B0aW9uYWwuY3JlYXRlKHRoaXMsIHRoaXMuX2RlZik7XG4gIH1cbiAgbnVsbGFibGUoKSB7XG4gICAgcmV0dXJuIFpvZE51bGxhYmxlLmNyZWF0ZSh0aGlzLCB0aGlzLl9kZWYpO1xuICB9XG4gIG51bGxpc2goKSB7XG4gICAgcmV0dXJuIHRoaXMubnVsbGFibGUoKS5vcHRpb25hbCgpO1xuICB9XG4gIGFycmF5KCkge1xuICAgIHJldHVybiBab2RBcnJheS5jcmVhdGUodGhpcyk7XG4gIH1cbiAgcHJvbWlzZSgpIHtcbiAgICByZXR1cm4gWm9kUHJvbWlzZS5jcmVhdGUodGhpcywgdGhpcy5fZGVmKTtcbiAgfVxuICBvcihvcHRpb24pIHtcbiAgICByZXR1cm4gWm9kVW5pb24uY3JlYXRlKFt0aGlzLCBvcHRpb25dLCB0aGlzLl9kZWYpO1xuICB9XG4gIGFuZChpbmNvbWluZykge1xuICAgIHJldHVybiBab2RJbnRlcnNlY3Rpb24uY3JlYXRlKHRoaXMsIGluY29taW5nLCB0aGlzLl9kZWYpO1xuICB9XG4gIHRyYW5zZm9ybSh0cmFuc2Zvcm0pIHtcbiAgICByZXR1cm4gbmV3IFpvZEVmZmVjdHMoe1xuICAgICAgLi4ucHJvY2Vzc0NyZWF0ZVBhcmFtcyh0aGlzLl9kZWYpLFxuICAgICAgc2NoZW1hOiB0aGlzLFxuICAgICAgdHlwZU5hbWU6IFpvZEZpcnN0UGFydHlUeXBlS2luZC5ab2RFZmZlY3RzLFxuICAgICAgZWZmZWN0OiB7IHR5cGU6IFwidHJhbnNmb3JtXCIsIHRyYW5zZm9ybSB9XG4gICAgfSk7XG4gIH1cbiAgZGVmYXVsdChkZWYpIHtcbiAgICBjb25zdCBkZWZhdWx0VmFsdWVGdW5jID0gdHlwZW9mIGRlZiA9PT0gXCJmdW5jdGlvblwiID8gZGVmIDogKCkgPT4gZGVmO1xuICAgIHJldHVybiBuZXcgWm9kRGVmYXVsdCh7XG4gICAgICAuLi5wcm9jZXNzQ3JlYXRlUGFyYW1zKHRoaXMuX2RlZiksXG4gICAgICBpbm5lclR5cGU6IHRoaXMsXG4gICAgICBkZWZhdWx0VmFsdWU6IGRlZmF1bHRWYWx1ZUZ1bmMsXG4gICAgICB0eXBlTmFtZTogWm9kRmlyc3RQYXJ0eVR5cGVLaW5kLlpvZERlZmF1bHRcbiAgICB9KTtcbiAgfVxuICBicmFuZCgpIHtcbiAgICByZXR1cm4gbmV3IFpvZEJyYW5kZWQoe1xuICAgICAgdHlwZU5hbWU6IFpvZEZpcnN0UGFydHlUeXBlS2luZC5ab2RCcmFuZGVkLFxuICAgICAgdHlwZTogdGhpcyxcbiAgICAgIC4uLnByb2Nlc3NDcmVhdGVQYXJhbXModGhpcy5fZGVmKVxuICAgIH0pO1xuICB9XG4gIGNhdGNoKGRlZikge1xuICAgIGNvbnN0IGNhdGNoVmFsdWVGdW5jID0gdHlwZW9mIGRlZiA9PT0gXCJmdW5jdGlvblwiID8gZGVmIDogKCkgPT4gZGVmO1xuICAgIHJldHVybiBuZXcgWm9kQ2F0Y2goe1xuICAgICAgLi4ucHJvY2Vzc0NyZWF0ZVBhcmFtcyh0aGlzLl9kZWYpLFxuICAgICAgaW5uZXJUeXBlOiB0aGlzLFxuICAgICAgY2F0Y2hWYWx1ZTogY2F0Y2hWYWx1ZUZ1bmMsXG4gICAgICB0eXBlTmFtZTogWm9kRmlyc3RQYXJ0eVR5cGVLaW5kLlpvZENhdGNoXG4gICAgfSk7XG4gIH1cbiAgZGVzY3JpYmUoZGVzY3JpcHRpb24pIHtcbiAgICBjb25zdCBUaGlzID0gdGhpcy5jb25zdHJ1Y3RvcjtcbiAgICByZXR1cm4gbmV3IFRoaXMoe1xuICAgICAgLi4udGhpcy5fZGVmLFxuICAgICAgZGVzY3JpcHRpb25cbiAgICB9KTtcbiAgfVxuICBwaXBlKHRhcmdldCkge1xuICAgIHJldHVybiBab2RQaXBlbGluZS5jcmVhdGUodGhpcywgdGFyZ2V0KTtcbiAgfVxuICByZWFkb25seSgpIHtcbiAgICByZXR1cm4gWm9kUmVhZG9ubHkuY3JlYXRlKHRoaXMpO1xuICB9XG4gIGlzT3B0aW9uYWwoKSB7XG4gICAgcmV0dXJuIHRoaXMuc2FmZVBhcnNlKHZvaWQgMCkuc3VjY2VzcztcbiAgfVxuICBpc051bGxhYmxlKCkge1xuICAgIHJldHVybiB0aGlzLnNhZmVQYXJzZShudWxsKS5zdWNjZXNzO1xuICB9XG59O1xudmFyIGN1aWRSZWdleCA9IC9eY1teXFxzLV17OCx9JC9pO1xudmFyIGN1aWQyUmVnZXggPSAvXlswLTlhLXpdKyQvO1xudmFyIHVsaWRSZWdleCA9IC9eWzAtOUEtSEpLTU5QLVRWLVpdezI2fSQvaTtcbnZhciB1dWlkUmVnZXggPSAvXlswLTlhLWZBLUZdezh9XFxiLVswLTlhLWZBLUZdezR9XFxiLVswLTlhLWZBLUZdezR9XFxiLVswLTlhLWZBLUZdezR9XFxiLVswLTlhLWZBLUZdezEyfSQvaTtcbnZhciBuYW5vaWRSZWdleCA9IC9eW2EtejAtOV8tXXsyMX0kL2k7XG52YXIgand0UmVnZXggPSAvXltBLVphLXowLTktX10rXFwuW0EtWmEtejAtOS1fXStcXC5bQS1aYS16MC05LV9dKiQvO1xudmFyIGR1cmF0aW9uUmVnZXggPSAvXlstK10/UCg/ISQpKD86KD86Wy0rXT9cXGQrWSl8KD86Wy0rXT9cXGQrWy4sXVxcZCtZJCkpPyg/Oig/OlstK10/XFxkK00pfCg/OlstK10/XFxkK1suLF1cXGQrTSQpKT8oPzooPzpbLStdP1xcZCtXKXwoPzpbLStdP1xcZCtbLixdXFxkK1ckKSk/KD86KD86Wy0rXT9cXGQrRCl8KD86Wy0rXT9cXGQrWy4sXVxcZCtEJCkpPyg/OlQoPz1bXFxkKy1dKSg/Oig/OlstK10/XFxkK0gpfCg/OlstK10/XFxkK1suLF1cXGQrSCQpKT8oPzooPzpbLStdP1xcZCtNKXwoPzpbLStdP1xcZCtbLixdXFxkK00kKSk/KD86Wy0rXT9cXGQrKD86Wy4sXVxcZCspP1MpPyk/PyQvO1xudmFyIGVtYWlsUmVnZXggPSAvXig/IVxcLikoPyEuKlxcLlxcLikoW0EtWjAtOV8nK1xcLVxcLl0qKVtBLVowLTlfKy1dQChbQS1aMC05XVtBLVowLTlcXC1dKlxcLikrW0EtWl17Mix9JC9pO1xudmFyIF9lbW9qaVJlZ2V4ID0gYF4oXFxcXHB7RXh0ZW5kZWRfUGljdG9ncmFwaGljfXxcXFxccHtFbW9qaV9Db21wb25lbnR9KSskYDtcbnZhciBlbW9qaVJlZ2V4O1xudmFyIGlwdjRSZWdleCA9IC9eKD86KD86MjVbMC01XXwyWzAtNF1bMC05XXwxWzAtOV1bMC05XXxbMS05XVswLTldfFswLTldKVxcLil7M30oPzoyNVswLTVdfDJbMC00XVswLTldfDFbMC05XVswLTldfFsxLTldWzAtOV18WzAtOV0pJC87XG52YXIgaXB2NENpZHJSZWdleCA9IC9eKD86KD86MjVbMC01XXwyWzAtNF1bMC05XXwxWzAtOV1bMC05XXxbMS05XVswLTldfFswLTldKVxcLil7M30oPzoyNVswLTVdfDJbMC00XVswLTldfDFbMC05XVswLTldfFsxLTldWzAtOV18WzAtOV0pXFwvKDNbMC0yXXxbMTJdP1swLTldKSQvO1xudmFyIGlwdjZSZWdleCA9IC9eKChbMC05YS1mQS1GXXsxLDR9Oil7Nyw3fVswLTlhLWZBLUZdezEsNH18KFswLTlhLWZBLUZdezEsNH06KXsxLDd9OnwoWzAtOWEtZkEtRl17MSw0fTopezEsNn06WzAtOWEtZkEtRl17MSw0fXwoWzAtOWEtZkEtRl17MSw0fTopezEsNX0oOlswLTlhLWZBLUZdezEsNH0pezEsMn18KFswLTlhLWZBLUZdezEsNH06KXsxLDR9KDpbMC05YS1mQS1GXXsxLDR9KXsxLDN9fChbMC05YS1mQS1GXXsxLDR9Oil7MSwzfSg6WzAtOWEtZkEtRl17MSw0fSl7MSw0fXwoWzAtOWEtZkEtRl17MSw0fTopezEsMn0oOlswLTlhLWZBLUZdezEsNH0pezEsNX18WzAtOWEtZkEtRl17MSw0fTooKDpbMC05YS1mQS1GXXsxLDR9KXsxLDZ9KXw6KCg6WzAtOWEtZkEtRl17MSw0fSl7MSw3fXw6KXxmZTgwOig6WzAtOWEtZkEtRl17MCw0fSl7MCw0fSVbMC05YS16QS1aXXsxLH18OjooZmZmZig6MHsxLDR9KXswLDF9Oil7MCwxfSgoMjVbMC01XXwoMlswLTRdfDF7MCwxfVswLTldKXswLDF9WzAtOV0pXFwuKXszLDN9KDI1WzAtNV18KDJbMC00XXwxezAsMX1bMC05XSl7MCwxfVswLTldKXwoWzAtOWEtZkEtRl17MSw0fTopezEsNH06KCgyNVswLTVdfCgyWzAtNF18MXswLDF9WzAtOV0pezAsMX1bMC05XSlcXC4pezMsM30oMjVbMC01XXwoMlswLTRdfDF7MCwxfVswLTldKXswLDF9WzAtOV0pKSQvO1xudmFyIGlwdjZDaWRyUmVnZXggPSAvXigoWzAtOWEtZkEtRl17MSw0fTopezcsN31bMC05YS1mQS1GXXsxLDR9fChbMC05YS1mQS1GXXsxLDR9Oil7MSw3fTp8KFswLTlhLWZBLUZdezEsNH06KXsxLDZ9OlswLTlhLWZBLUZdezEsNH18KFswLTlhLWZBLUZdezEsNH06KXsxLDV9KDpbMC05YS1mQS1GXXsxLDR9KXsxLDJ9fChbMC05YS1mQS1GXXsxLDR9Oil7MSw0fSg6WzAtOWEtZkEtRl17MSw0fSl7MSwzfXwoWzAtOWEtZkEtRl17MSw0fTopezEsM30oOlswLTlhLWZBLUZdezEsNH0pezEsNH18KFswLTlhLWZBLUZdezEsNH06KXsxLDJ9KDpbMC05YS1mQS1GXXsxLDR9KXsxLDV9fFswLTlhLWZBLUZdezEsNH06KCg6WzAtOWEtZkEtRl17MSw0fSl7MSw2fSl8OigoOlswLTlhLWZBLUZdezEsNH0pezEsN318Oil8ZmU4MDooOlswLTlhLWZBLUZdezAsNH0pezAsNH0lWzAtOWEtekEtWl17MSx9fDo6KGZmZmYoOjB7MSw0fSl7MCwxfTopezAsMX0oKDI1WzAtNV18KDJbMC00XXwxezAsMX1bMC05XSl7MCwxfVswLTldKVxcLil7MywzfSgyNVswLTVdfCgyWzAtNF18MXswLDF9WzAtOV0pezAsMX1bMC05XSl8KFswLTlhLWZBLUZdezEsNH06KXsxLDR9OigoMjVbMC01XXwoMlswLTRdfDF7MCwxfVswLTldKXswLDF9WzAtOV0pXFwuKXszLDN9KDI1WzAtNV18KDJbMC00XXwxezAsMX1bMC05XSl7MCwxfVswLTldKSlcXC8oMTJbMC04XXwxWzAxXVswLTldfFsxLTldP1swLTldKSQvO1xudmFyIGJhc2U2NFJlZ2V4ID0gL14oWzAtOWEtekEtWisvXXs0fSkqKChbMC05YS16QS1aKy9dezJ9PT0pfChbMC05YS16QS1aKy9dezN9PSkpPyQvO1xudmFyIGJhc2U2NHVybFJlZ2V4ID0gL14oWzAtOWEtekEtWi1fXXs0fSkqKChbMC05YS16QS1aLV9dezJ9KD09KT8pfChbMC05YS16QS1aLV9dezN9KD0pPykpPyQvO1xudmFyIGRhdGVSZWdleFNvdXJjZSA9IGAoKFxcXFxkXFxcXGRbMjQ2OF1bMDQ4XXxcXFxcZFxcXFxkWzEzNTc5XVsyNl18XFxcXGRcXFxcZDBbNDhdfFswMjQ2OF1bMDQ4XTAwfFsxMzU3OV1bMjZdMDApLTAyLTI5fFxcXFxkezR9LSgoMFsxMzU3OF18MVswMl0pLSgwWzEtOV18WzEyXVxcXFxkfDNbMDFdKXwoMFs0NjldfDExKS0oMFsxLTldfFsxMl1cXFxcZHwzMCl8KDAyKS0oMFsxLTldfDFcXFxcZHwyWzAtOF0pKSlgO1xudmFyIGRhdGVSZWdleCA9IG5ldyBSZWdFeHAoYF4ke2RhdGVSZWdleFNvdXJjZX0kYCk7XG5mdW5jdGlvbiB0aW1lUmVnZXhTb3VyY2UoYXJncykge1xuICBsZXQgcmVnZXggPSBgKFswMV1cXFxcZHwyWzAtM10pOlswLTVdXFxcXGQ6WzAtNV1cXFxcZGA7XG4gIGlmIChhcmdzLnByZWNpc2lvbikge1xuICAgIHJlZ2V4ID0gYCR7cmVnZXh9XFxcXC5cXFxcZHske2FyZ3MucHJlY2lzaW9ufX1gO1xuICB9IGVsc2UgaWYgKGFyZ3MucHJlY2lzaW9uID09IG51bGwpIHtcbiAgICByZWdleCA9IGAke3JlZ2V4fShcXFxcLlxcXFxkKyk/YDtcbiAgfVxuICByZXR1cm4gcmVnZXg7XG59XG5mdW5jdGlvbiB0aW1lUmVnZXgoYXJncykge1xuICByZXR1cm4gbmV3IFJlZ0V4cChgXiR7dGltZVJlZ2V4U291cmNlKGFyZ3MpfSRgKTtcbn1cbmZ1bmN0aW9uIGRhdGV0aW1lUmVnZXgoYXJncykge1xuICBsZXQgcmVnZXggPSBgJHtkYXRlUmVnZXhTb3VyY2V9VCR7dGltZVJlZ2V4U291cmNlKGFyZ3MpfWA7XG4gIGNvbnN0IG9wdHMgPSBbXTtcbiAgb3B0cy5wdXNoKGFyZ3MubG9jYWwgPyBgWj9gIDogYFpgKTtcbiAgaWYgKGFyZ3Mub2Zmc2V0KVxuICAgIG9wdHMucHVzaChgKFsrLV1cXFxcZHsyfTo/XFxcXGR7Mn0pYCk7XG4gIHJlZ2V4ID0gYCR7cmVnZXh9KCR7b3B0cy5qb2luKFwifFwiKX0pYDtcbiAgcmV0dXJuIG5ldyBSZWdFeHAoYF4ke3JlZ2V4fSRgKTtcbn1cbmZ1bmN0aW9uIGlzVmFsaWRJUChpcCwgdmVyc2lvbikge1xuICBpZiAoKHZlcnNpb24gPT09IFwidjRcIiB8fCAhdmVyc2lvbikgJiYgaXB2NFJlZ2V4LnRlc3QoaXApKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbiAgaWYgKCh2ZXJzaW9uID09PSBcInY2XCIgfHwgIXZlcnNpb24pICYmIGlwdjZSZWdleC50ZXN0KGlwKSkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG4gIHJldHVybiBmYWxzZTtcbn1cbmZ1bmN0aW9uIGlzVmFsaWRKV1Qoand0LCBhbGcpIHtcbiAgaWYgKCFqd3RSZWdleC50ZXN0KGp3dCkpXG4gICAgcmV0dXJuIGZhbHNlO1xuICB0cnkge1xuICAgIGNvbnN0IFtoZWFkZXJdID0gand0LnNwbGl0KFwiLlwiKTtcbiAgICBjb25zdCBiYXNlNjQgPSBoZWFkZXIucmVwbGFjZSgvLS9nLCBcIitcIikucmVwbGFjZSgvXy9nLCBcIi9cIikucGFkRW5kKGhlYWRlci5sZW5ndGggKyAoNCAtIGhlYWRlci5sZW5ndGggJSA0KSAlIDQsIFwiPVwiKTtcbiAgICBjb25zdCBkZWNvZGVkID0gSlNPTi5wYXJzZShhdG9iKGJhc2U2NCkpO1xuICAgIGlmICh0eXBlb2YgZGVjb2RlZCAhPT0gXCJvYmplY3RcIiB8fCBkZWNvZGVkID09PSBudWxsKVxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIGlmICghZGVjb2RlZC50eXAgfHwgIWRlY29kZWQuYWxnKVxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIGlmIChhbGcgJiYgZGVjb2RlZC5hbGcgIT09IGFsZylcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfSBjYXRjaCAoX2EpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cbmZ1bmN0aW9uIGlzVmFsaWRDaWRyKGlwLCB2ZXJzaW9uKSB7XG4gIGlmICgodmVyc2lvbiA9PT0gXCJ2NFwiIHx8ICF2ZXJzaW9uKSAmJiBpcHY0Q2lkclJlZ2V4LnRlc3QoaXApKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbiAgaWYgKCh2ZXJzaW9uID09PSBcInY2XCIgfHwgIXZlcnNpb24pICYmIGlwdjZDaWRyUmVnZXgudGVzdChpcCkpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuICByZXR1cm4gZmFsc2U7XG59XG52YXIgWm9kU3RyaW5nID0gY2xhc3MgX1pvZFN0cmluZyBleHRlbmRzIFpvZFR5cGUge1xuICBfcGFyc2UoaW5wdXQpIHtcbiAgICBpZiAodGhpcy5fZGVmLmNvZXJjZSkge1xuICAgICAgaW5wdXQuZGF0YSA9IFN0cmluZyhpbnB1dC5kYXRhKTtcbiAgICB9XG4gICAgY29uc3QgcGFyc2VkVHlwZSA9IHRoaXMuX2dldFR5cGUoaW5wdXQpO1xuICAgIGlmIChwYXJzZWRUeXBlICE9PSBab2RQYXJzZWRUeXBlLnN0cmluZykge1xuICAgICAgY29uc3QgY3R4MiA9IHRoaXMuX2dldE9yUmV0dXJuQ3R4KGlucHV0KTtcbiAgICAgIGFkZElzc3VlVG9Db250ZXh0KGN0eDIsIHtcbiAgICAgICAgY29kZTogWm9kSXNzdWVDb2RlLmludmFsaWRfdHlwZSxcbiAgICAgICAgZXhwZWN0ZWQ6IFpvZFBhcnNlZFR5cGUuc3RyaW5nLFxuICAgICAgICByZWNlaXZlZDogY3R4Mi5wYXJzZWRUeXBlXG4gICAgICB9KTtcbiAgICAgIHJldHVybiBJTlZBTElEO1xuICAgIH1cbiAgICBjb25zdCBzdGF0dXMgPSBuZXcgUGFyc2VTdGF0dXMoKTtcbiAgICBsZXQgY3R4ID0gdm9pZCAwO1xuICAgIGZvciAoY29uc3QgY2hlY2sgb2YgdGhpcy5fZGVmLmNoZWNrcykge1xuICAgICAgaWYgKGNoZWNrLmtpbmQgPT09IFwibWluXCIpIHtcbiAgICAgICAgaWYgKGlucHV0LmRhdGEubGVuZ3RoIDwgY2hlY2sudmFsdWUpIHtcbiAgICAgICAgICBjdHggPSB0aGlzLl9nZXRPclJldHVybkN0eChpbnB1dCwgY3R4KTtcbiAgICAgICAgICBhZGRJc3N1ZVRvQ29udGV4dChjdHgsIHtcbiAgICAgICAgICAgIGNvZGU6IFpvZElzc3VlQ29kZS50b29fc21hbGwsXG4gICAgICAgICAgICBtaW5pbXVtOiBjaGVjay52YWx1ZSxcbiAgICAgICAgICAgIHR5cGU6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBpbmNsdXNpdmU6IHRydWUsXG4gICAgICAgICAgICBleGFjdDogZmFsc2UsXG4gICAgICAgICAgICBtZXNzYWdlOiBjaGVjay5tZXNzYWdlXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgc3RhdHVzLmRpcnR5KCk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAoY2hlY2sua2luZCA9PT0gXCJtYXhcIikge1xuICAgICAgICBpZiAoaW5wdXQuZGF0YS5sZW5ndGggPiBjaGVjay52YWx1ZSkge1xuICAgICAgICAgIGN0eCA9IHRoaXMuX2dldE9yUmV0dXJuQ3R4KGlucHV0LCBjdHgpO1xuICAgICAgICAgIGFkZElzc3VlVG9Db250ZXh0KGN0eCwge1xuICAgICAgICAgICAgY29kZTogWm9kSXNzdWVDb2RlLnRvb19iaWcsXG4gICAgICAgICAgICBtYXhpbXVtOiBjaGVjay52YWx1ZSxcbiAgICAgICAgICAgIHR5cGU6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBpbmNsdXNpdmU6IHRydWUsXG4gICAgICAgICAgICBleGFjdDogZmFsc2UsXG4gICAgICAgICAgICBtZXNzYWdlOiBjaGVjay5tZXNzYWdlXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgc3RhdHVzLmRpcnR5KCk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAoY2hlY2sua2luZCA9PT0gXCJsZW5ndGhcIikge1xuICAgICAgICBjb25zdCB0b29CaWcgPSBpbnB1dC5kYXRhLmxlbmd0aCA+IGNoZWNrLnZhbHVlO1xuICAgICAgICBjb25zdCB0b29TbWFsbCA9IGlucHV0LmRhdGEubGVuZ3RoIDwgY2hlY2sudmFsdWU7XG4gICAgICAgIGlmICh0b29CaWcgfHwgdG9vU21hbGwpIHtcbiAgICAgICAgICBjdHggPSB0aGlzLl9nZXRPclJldHVybkN0eChpbnB1dCwgY3R4KTtcbiAgICAgICAgICBpZiAodG9vQmlnKSB7XG4gICAgICAgICAgICBhZGRJc3N1ZVRvQ29udGV4dChjdHgsIHtcbiAgICAgICAgICAgICAgY29kZTogWm9kSXNzdWVDb2RlLnRvb19iaWcsXG4gICAgICAgICAgICAgIG1heGltdW06IGNoZWNrLnZhbHVlLFxuICAgICAgICAgICAgICB0eXBlOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICBpbmNsdXNpdmU6IHRydWUsXG4gICAgICAgICAgICAgIGV4YWN0OiB0cnVlLFxuICAgICAgICAgICAgICBtZXNzYWdlOiBjaGVjay5tZXNzYWdlXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9IGVsc2UgaWYgKHRvb1NtYWxsKSB7XG4gICAgICAgICAgICBhZGRJc3N1ZVRvQ29udGV4dChjdHgsIHtcbiAgICAgICAgICAgICAgY29kZTogWm9kSXNzdWVDb2RlLnRvb19zbWFsbCxcbiAgICAgICAgICAgICAgbWluaW11bTogY2hlY2sudmFsdWUsXG4gICAgICAgICAgICAgIHR5cGU6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgIGluY2x1c2l2ZTogdHJ1ZSxcbiAgICAgICAgICAgICAgZXhhY3Q6IHRydWUsXG4gICAgICAgICAgICAgIG1lc3NhZ2U6IGNoZWNrLm1lc3NhZ2VcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgICBzdGF0dXMuZGlydHkoKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmIChjaGVjay5raW5kID09PSBcImVtYWlsXCIpIHtcbiAgICAgICAgaWYgKCFlbWFpbFJlZ2V4LnRlc3QoaW5wdXQuZGF0YSkpIHtcbiAgICAgICAgICBjdHggPSB0aGlzLl9nZXRPclJldHVybkN0eChpbnB1dCwgY3R4KTtcbiAgICAgICAgICBhZGRJc3N1ZVRvQ29udGV4dChjdHgsIHtcbiAgICAgICAgICAgIHZhbGlkYXRpb246IFwiZW1haWxcIixcbiAgICAgICAgICAgIGNvZGU6IFpvZElzc3VlQ29kZS5pbnZhbGlkX3N0cmluZyxcbiAgICAgICAgICAgIG1lc3NhZ2U6IGNoZWNrLm1lc3NhZ2VcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBzdGF0dXMuZGlydHkoKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmIChjaGVjay5raW5kID09PSBcImVtb2ppXCIpIHtcbiAgICAgICAgaWYgKCFlbW9qaVJlZ2V4KSB7XG4gICAgICAgICAgZW1vamlSZWdleCA9IG5ldyBSZWdFeHAoX2Vtb2ppUmVnZXgsIFwidVwiKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIWVtb2ppUmVnZXgudGVzdChpbnB1dC5kYXRhKSkge1xuICAgICAgICAgIGN0eCA9IHRoaXMuX2dldE9yUmV0dXJuQ3R4KGlucHV0LCBjdHgpO1xuICAgICAgICAgIGFkZElzc3VlVG9Db250ZXh0KGN0eCwge1xuICAgICAgICAgICAgdmFsaWRhdGlvbjogXCJlbW9qaVwiLFxuICAgICAgICAgICAgY29kZTogWm9kSXNzdWVDb2RlLmludmFsaWRfc3RyaW5nLFxuICAgICAgICAgICAgbWVzc2FnZTogY2hlY2subWVzc2FnZVxuICAgICAgICAgIH0pO1xuICAgICAgICAgIHN0YXR1cy5kaXJ0eSgpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKGNoZWNrLmtpbmQgPT09IFwidXVpZFwiKSB7XG4gICAgICAgIGlmICghdXVpZFJlZ2V4LnRlc3QoaW5wdXQuZGF0YSkpIHtcbiAgICAgICAgICBjdHggPSB0aGlzLl9nZXRPclJldHVybkN0eChpbnB1dCwgY3R4KTtcbiAgICAgICAgICBhZGRJc3N1ZVRvQ29udGV4dChjdHgsIHtcbiAgICAgICAgICAgIHZhbGlkYXRpb246IFwidXVpZFwiLFxuICAgICAgICAgICAgY29kZTogWm9kSXNzdWVDb2RlLmludmFsaWRfc3RyaW5nLFxuICAgICAgICAgICAgbWVzc2FnZTogY2hlY2subWVzc2FnZVxuICAgICAgICAgIH0pO1xuICAgICAgICAgIHN0YXR1cy5kaXJ0eSgpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKGNoZWNrLmtpbmQgPT09IFwibmFub2lkXCIpIHtcbiAgICAgICAgaWYgKCFuYW5vaWRSZWdleC50ZXN0KGlucHV0LmRhdGEpKSB7XG4gICAgICAgICAgY3R4ID0gdGhpcy5fZ2V0T3JSZXR1cm5DdHgoaW5wdXQsIGN0eCk7XG4gICAgICAgICAgYWRkSXNzdWVUb0NvbnRleHQoY3R4LCB7XG4gICAgICAgICAgICB2YWxpZGF0aW9uOiBcIm5hbm9pZFwiLFxuICAgICAgICAgICAgY29kZTogWm9kSXNzdWVDb2RlLmludmFsaWRfc3RyaW5nLFxuICAgICAgICAgICAgbWVzc2FnZTogY2hlY2subWVzc2FnZVxuICAgICAgICAgIH0pO1xuICAgICAgICAgIHN0YXR1cy5kaXJ0eSgpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKGNoZWNrLmtpbmQgPT09IFwiY3VpZFwiKSB7XG4gICAgICAgIGlmICghY3VpZFJlZ2V4LnRlc3QoaW5wdXQuZGF0YSkpIHtcbiAgICAgICAgICBjdHggPSB0aGlzLl9nZXRPclJldHVybkN0eChpbnB1dCwgY3R4KTtcbiAgICAgICAgICBhZGRJc3N1ZVRvQ29udGV4dChjdHgsIHtcbiAgICAgICAgICAgIHZhbGlkYXRpb246IFwiY3VpZFwiLFxuICAgICAgICAgICAgY29kZTogWm9kSXNzdWVDb2RlLmludmFsaWRfc3RyaW5nLFxuICAgICAgICAgICAgbWVzc2FnZTogY2hlY2subWVzc2FnZVxuICAgICAgICAgIH0pO1xuICAgICAgICAgIHN0YXR1cy5kaXJ0eSgpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKGNoZWNrLmtpbmQgPT09IFwiY3VpZDJcIikge1xuICAgICAgICBpZiAoIWN1aWQyUmVnZXgudGVzdChpbnB1dC5kYXRhKSkge1xuICAgICAgICAgIGN0eCA9IHRoaXMuX2dldE9yUmV0dXJuQ3R4KGlucHV0LCBjdHgpO1xuICAgICAgICAgIGFkZElzc3VlVG9Db250ZXh0KGN0eCwge1xuICAgICAgICAgICAgdmFsaWRhdGlvbjogXCJjdWlkMlwiLFxuICAgICAgICAgICAgY29kZTogWm9kSXNzdWVDb2RlLmludmFsaWRfc3RyaW5nLFxuICAgICAgICAgICAgbWVzc2FnZTogY2hlY2subWVzc2FnZVxuICAgICAgICAgIH0pO1xuICAgICAgICAgIHN0YXR1cy5kaXJ0eSgpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKGNoZWNrLmtpbmQgPT09IFwidWxpZFwiKSB7XG4gICAgICAgIGlmICghdWxpZFJlZ2V4LnRlc3QoaW5wdXQuZGF0YSkpIHtcbiAgICAgICAgICBjdHggPSB0aGlzLl9nZXRPclJldHVybkN0eChpbnB1dCwgY3R4KTtcbiAgICAgICAgICBhZGRJc3N1ZVRvQ29udGV4dChjdHgsIHtcbiAgICAgICAgICAgIHZhbGlkYXRpb246IFwidWxpZFwiLFxuICAgICAgICAgICAgY29kZTogWm9kSXNzdWVDb2RlLmludmFsaWRfc3RyaW5nLFxuICAgICAgICAgICAgbWVzc2FnZTogY2hlY2subWVzc2FnZVxuICAgICAgICAgIH0pO1xuICAgICAgICAgIHN0YXR1cy5kaXJ0eSgpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKGNoZWNrLmtpbmQgPT09IFwidXJsXCIpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBuZXcgVVJMKGlucHV0LmRhdGEpO1xuICAgICAgICB9IGNhdGNoIChfYSkge1xuICAgICAgICAgIGN0eCA9IHRoaXMuX2dldE9yUmV0dXJuQ3R4KGlucHV0LCBjdHgpO1xuICAgICAgICAgIGFkZElzc3VlVG9Db250ZXh0KGN0eCwge1xuICAgICAgICAgICAgdmFsaWRhdGlvbjogXCJ1cmxcIixcbiAgICAgICAgICAgIGNvZGU6IFpvZElzc3VlQ29kZS5pbnZhbGlkX3N0cmluZyxcbiAgICAgICAgICAgIG1lc3NhZ2U6IGNoZWNrLm1lc3NhZ2VcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBzdGF0dXMuZGlydHkoKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmIChjaGVjay5raW5kID09PSBcInJlZ2V4XCIpIHtcbiAgICAgICAgY2hlY2sucmVnZXgubGFzdEluZGV4ID0gMDtcbiAgICAgICAgY29uc3QgdGVzdFJlc3VsdCA9IGNoZWNrLnJlZ2V4LnRlc3QoaW5wdXQuZGF0YSk7XG4gICAgICAgIGlmICghdGVzdFJlc3VsdCkge1xuICAgICAgICAgIGN0eCA9IHRoaXMuX2dldE9yUmV0dXJuQ3R4KGlucHV0LCBjdHgpO1xuICAgICAgICAgIGFkZElzc3VlVG9Db250ZXh0KGN0eCwge1xuICAgICAgICAgICAgdmFsaWRhdGlvbjogXCJyZWdleFwiLFxuICAgICAgICAgICAgY29kZTogWm9kSXNzdWVDb2RlLmludmFsaWRfc3RyaW5nLFxuICAgICAgICAgICAgbWVzc2FnZTogY2hlY2subWVzc2FnZVxuICAgICAgICAgIH0pO1xuICAgICAgICAgIHN0YXR1cy5kaXJ0eSgpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKGNoZWNrLmtpbmQgPT09IFwidHJpbVwiKSB7XG4gICAgICAgIGlucHV0LmRhdGEgPSBpbnB1dC5kYXRhLnRyaW0oKTtcbiAgICAgIH0gZWxzZSBpZiAoY2hlY2sua2luZCA9PT0gXCJpbmNsdWRlc1wiKSB7XG4gICAgICAgIGlmICghaW5wdXQuZGF0YS5pbmNsdWRlcyhjaGVjay52YWx1ZSwgY2hlY2sucG9zaXRpb24pKSB7XG4gICAgICAgICAgY3R4ID0gdGhpcy5fZ2V0T3JSZXR1cm5DdHgoaW5wdXQsIGN0eCk7XG4gICAgICAgICAgYWRkSXNzdWVUb0NvbnRleHQoY3R4LCB7XG4gICAgICAgICAgICBjb2RlOiBab2RJc3N1ZUNvZGUuaW52YWxpZF9zdHJpbmcsXG4gICAgICAgICAgICB2YWxpZGF0aW9uOiB7IGluY2x1ZGVzOiBjaGVjay52YWx1ZSwgcG9zaXRpb246IGNoZWNrLnBvc2l0aW9uIH0sXG4gICAgICAgICAgICBtZXNzYWdlOiBjaGVjay5tZXNzYWdlXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgc3RhdHVzLmRpcnR5KCk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAoY2hlY2sua2luZCA9PT0gXCJ0b0xvd2VyQ2FzZVwiKSB7XG4gICAgICAgIGlucHV0LmRhdGEgPSBpbnB1dC5kYXRhLnRvTG93ZXJDYXNlKCk7XG4gICAgICB9IGVsc2UgaWYgKGNoZWNrLmtpbmQgPT09IFwidG9VcHBlckNhc2VcIikge1xuICAgICAgICBpbnB1dC5kYXRhID0gaW5wdXQuZGF0YS50b1VwcGVyQ2FzZSgpO1xuICAgICAgfSBlbHNlIGlmIChjaGVjay5raW5kID09PSBcInN0YXJ0c1dpdGhcIikge1xuICAgICAgICBpZiAoIWlucHV0LmRhdGEuc3RhcnRzV2l0aChjaGVjay52YWx1ZSkpIHtcbiAgICAgICAgICBjdHggPSB0aGlzLl9nZXRPclJldHVybkN0eChpbnB1dCwgY3R4KTtcbiAgICAgICAgICBhZGRJc3N1ZVRvQ29udGV4dChjdHgsIHtcbiAgICAgICAgICAgIGNvZGU6IFpvZElzc3VlQ29kZS5pbnZhbGlkX3N0cmluZyxcbiAgICAgICAgICAgIHZhbGlkYXRpb246IHsgc3RhcnRzV2l0aDogY2hlY2sudmFsdWUgfSxcbiAgICAgICAgICAgIG1lc3NhZ2U6IGNoZWNrLm1lc3NhZ2VcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBzdGF0dXMuZGlydHkoKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmIChjaGVjay5raW5kID09PSBcImVuZHNXaXRoXCIpIHtcbiAgICAgICAgaWYgKCFpbnB1dC5kYXRhLmVuZHNXaXRoKGNoZWNrLnZhbHVlKSkge1xuICAgICAgICAgIGN0eCA9IHRoaXMuX2dldE9yUmV0dXJuQ3R4KGlucHV0LCBjdHgpO1xuICAgICAgICAgIGFkZElzc3VlVG9Db250ZXh0KGN0eCwge1xuICAgICAgICAgICAgY29kZTogWm9kSXNzdWVDb2RlLmludmFsaWRfc3RyaW5nLFxuICAgICAgICAgICAgdmFsaWRhdGlvbjogeyBlbmRzV2l0aDogY2hlY2sudmFsdWUgfSxcbiAgICAgICAgICAgIG1lc3NhZ2U6IGNoZWNrLm1lc3NhZ2VcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBzdGF0dXMuZGlydHkoKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmIChjaGVjay5raW5kID09PSBcImRhdGV0aW1lXCIpIHtcbiAgICAgICAgY29uc3QgcmVnZXggPSBkYXRldGltZVJlZ2V4KGNoZWNrKTtcbiAgICAgICAgaWYgKCFyZWdleC50ZXN0KGlucHV0LmRhdGEpKSB7XG4gICAgICAgICAgY3R4ID0gdGhpcy5fZ2V0T3JSZXR1cm5DdHgoaW5wdXQsIGN0eCk7XG4gICAgICAgICAgYWRkSXNzdWVUb0NvbnRleHQoY3R4LCB7XG4gICAgICAgICAgICBjb2RlOiBab2RJc3N1ZUNvZGUuaW52YWxpZF9zdHJpbmcsXG4gICAgICAgICAgICB2YWxpZGF0aW9uOiBcImRhdGV0aW1lXCIsXG4gICAgICAgICAgICBtZXNzYWdlOiBjaGVjay5tZXNzYWdlXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgc3RhdHVzLmRpcnR5KCk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAoY2hlY2sua2luZCA9PT0gXCJkYXRlXCIpIHtcbiAgICAgICAgY29uc3QgcmVnZXggPSBkYXRlUmVnZXg7XG4gICAgICAgIGlmICghcmVnZXgudGVzdChpbnB1dC5kYXRhKSkge1xuICAgICAgICAgIGN0eCA9IHRoaXMuX2dldE9yUmV0dXJuQ3R4KGlucHV0LCBjdHgpO1xuICAgICAgICAgIGFkZElzc3VlVG9Db250ZXh0KGN0eCwge1xuICAgICAgICAgICAgY29kZTogWm9kSXNzdWVDb2RlLmludmFsaWRfc3RyaW5nLFxuICAgICAgICAgICAgdmFsaWRhdGlvbjogXCJkYXRlXCIsXG4gICAgICAgICAgICBtZXNzYWdlOiBjaGVjay5tZXNzYWdlXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgc3RhdHVzLmRpcnR5KCk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAoY2hlY2sua2luZCA9PT0gXCJ0aW1lXCIpIHtcbiAgICAgICAgY29uc3QgcmVnZXggPSB0aW1lUmVnZXgoY2hlY2spO1xuICAgICAgICBpZiAoIXJlZ2V4LnRlc3QoaW5wdXQuZGF0YSkpIHtcbiAgICAgICAgICBjdHggPSB0aGlzLl9nZXRPclJldHVybkN0eChpbnB1dCwgY3R4KTtcbiAgICAgICAgICBhZGRJc3N1ZVRvQ29udGV4dChjdHgsIHtcbiAgICAgICAgICAgIGNvZGU6IFpvZElzc3VlQ29kZS5pbnZhbGlkX3N0cmluZyxcbiAgICAgICAgICAgIHZhbGlkYXRpb246IFwidGltZVwiLFxuICAgICAgICAgICAgbWVzc2FnZTogY2hlY2subWVzc2FnZVxuICAgICAgICAgIH0pO1xuICAgICAgICAgIHN0YXR1cy5kaXJ0eSgpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKGNoZWNrLmtpbmQgPT09IFwiZHVyYXRpb25cIikge1xuICAgICAgICBpZiAoIWR1cmF0aW9uUmVnZXgudGVzdChpbnB1dC5kYXRhKSkge1xuICAgICAgICAgIGN0eCA9IHRoaXMuX2dldE9yUmV0dXJuQ3R4KGlucHV0LCBjdHgpO1xuICAgICAgICAgIGFkZElzc3VlVG9Db250ZXh0KGN0eCwge1xuICAgICAgICAgICAgdmFsaWRhdGlvbjogXCJkdXJhdGlvblwiLFxuICAgICAgICAgICAgY29kZTogWm9kSXNzdWVDb2RlLmludmFsaWRfc3RyaW5nLFxuICAgICAgICAgICAgbWVzc2FnZTogY2hlY2subWVzc2FnZVxuICAgICAgICAgIH0pO1xuICAgICAgICAgIHN0YXR1cy5kaXJ0eSgpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKGNoZWNrLmtpbmQgPT09IFwiaXBcIikge1xuICAgICAgICBpZiAoIWlzVmFsaWRJUChpbnB1dC5kYXRhLCBjaGVjay52ZXJzaW9uKSkge1xuICAgICAgICAgIGN0eCA9IHRoaXMuX2dldE9yUmV0dXJuQ3R4KGlucHV0LCBjdHgpO1xuICAgICAgICAgIGFkZElzc3VlVG9Db250ZXh0KGN0eCwge1xuICAgICAgICAgICAgdmFsaWRhdGlvbjogXCJpcFwiLFxuICAgICAgICAgICAgY29kZTogWm9kSXNzdWVDb2RlLmludmFsaWRfc3RyaW5nLFxuICAgICAgICAgICAgbWVzc2FnZTogY2hlY2subWVzc2FnZVxuICAgICAgICAgIH0pO1xuICAgICAgICAgIHN0YXR1cy5kaXJ0eSgpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKGNoZWNrLmtpbmQgPT09IFwiand0XCIpIHtcbiAgICAgICAgaWYgKCFpc1ZhbGlkSldUKGlucHV0LmRhdGEsIGNoZWNrLmFsZykpIHtcbiAgICAgICAgICBjdHggPSB0aGlzLl9nZXRPclJldHVybkN0eChpbnB1dCwgY3R4KTtcbiAgICAgICAgICBhZGRJc3N1ZVRvQ29udGV4dChjdHgsIHtcbiAgICAgICAgICAgIHZhbGlkYXRpb246IFwiand0XCIsXG4gICAgICAgICAgICBjb2RlOiBab2RJc3N1ZUNvZGUuaW52YWxpZF9zdHJpbmcsXG4gICAgICAgICAgICBtZXNzYWdlOiBjaGVjay5tZXNzYWdlXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgc3RhdHVzLmRpcnR5KCk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAoY2hlY2sua2luZCA9PT0gXCJjaWRyXCIpIHtcbiAgICAgICAgaWYgKCFpc1ZhbGlkQ2lkcihpbnB1dC5kYXRhLCBjaGVjay52ZXJzaW9uKSkge1xuICAgICAgICAgIGN0eCA9IHRoaXMuX2dldE9yUmV0dXJuQ3R4KGlucHV0LCBjdHgpO1xuICAgICAgICAgIGFkZElzc3VlVG9Db250ZXh0KGN0eCwge1xuICAgICAgICAgICAgdmFsaWRhdGlvbjogXCJjaWRyXCIsXG4gICAgICAgICAgICBjb2RlOiBab2RJc3N1ZUNvZGUuaW52YWxpZF9zdHJpbmcsXG4gICAgICAgICAgICBtZXNzYWdlOiBjaGVjay5tZXNzYWdlXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgc3RhdHVzLmRpcnR5KCk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAoY2hlY2sua2luZCA9PT0gXCJiYXNlNjRcIikge1xuICAgICAgICBpZiAoIWJhc2U2NFJlZ2V4LnRlc3QoaW5wdXQuZGF0YSkpIHtcbiAgICAgICAgICBjdHggPSB0aGlzLl9nZXRPclJldHVybkN0eChpbnB1dCwgY3R4KTtcbiAgICAgICAgICBhZGRJc3N1ZVRvQ29udGV4dChjdHgsIHtcbiAgICAgICAgICAgIHZhbGlkYXRpb246IFwiYmFzZTY0XCIsXG4gICAgICAgICAgICBjb2RlOiBab2RJc3N1ZUNvZGUuaW52YWxpZF9zdHJpbmcsXG4gICAgICAgICAgICBtZXNzYWdlOiBjaGVjay5tZXNzYWdlXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgc3RhdHVzLmRpcnR5KCk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAoY2hlY2sua2luZCA9PT0gXCJiYXNlNjR1cmxcIikge1xuICAgICAgICBpZiAoIWJhc2U2NHVybFJlZ2V4LnRlc3QoaW5wdXQuZGF0YSkpIHtcbiAgICAgICAgICBjdHggPSB0aGlzLl9nZXRPclJldHVybkN0eChpbnB1dCwgY3R4KTtcbiAgICAgICAgICBhZGRJc3N1ZVRvQ29udGV4dChjdHgsIHtcbiAgICAgICAgICAgIHZhbGlkYXRpb246IFwiYmFzZTY0dXJsXCIsXG4gICAgICAgICAgICBjb2RlOiBab2RJc3N1ZUNvZGUuaW52YWxpZF9zdHJpbmcsXG4gICAgICAgICAgICBtZXNzYWdlOiBjaGVjay5tZXNzYWdlXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgc3RhdHVzLmRpcnR5KCk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHV0aWwuYXNzZXJ0TmV2ZXIoY2hlY2spO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4geyBzdGF0dXM6IHN0YXR1cy52YWx1ZSwgdmFsdWU6IGlucHV0LmRhdGEgfTtcbiAgfVxuICBfcmVnZXgocmVnZXgsIHZhbGlkYXRpb24sIG1lc3NhZ2UpIHtcbiAgICByZXR1cm4gdGhpcy5yZWZpbmVtZW50KChkYXRhKSA9PiByZWdleC50ZXN0KGRhdGEpLCB7XG4gICAgICB2YWxpZGF0aW9uLFxuICAgICAgY29kZTogWm9kSXNzdWVDb2RlLmludmFsaWRfc3RyaW5nLFxuICAgICAgLi4uZXJyb3JVdGlsLmVyclRvT2JqKG1lc3NhZ2UpXG4gICAgfSk7XG4gIH1cbiAgX2FkZENoZWNrKGNoZWNrKSB7XG4gICAgcmV0dXJuIG5ldyBfWm9kU3RyaW5nKHtcbiAgICAgIC4uLnRoaXMuX2RlZixcbiAgICAgIGNoZWNrczogWy4uLnRoaXMuX2RlZi5jaGVja3MsIGNoZWNrXVxuICAgIH0pO1xuICB9XG4gIGVtYWlsKG1lc3NhZ2UpIHtcbiAgICByZXR1cm4gdGhpcy5fYWRkQ2hlY2soeyBraW5kOiBcImVtYWlsXCIsIC4uLmVycm9yVXRpbC5lcnJUb09iaihtZXNzYWdlKSB9KTtcbiAgfVxuICB1cmwobWVzc2FnZSkge1xuICAgIHJldHVybiB0aGlzLl9hZGRDaGVjayh7IGtpbmQ6IFwidXJsXCIsIC4uLmVycm9yVXRpbC5lcnJUb09iaihtZXNzYWdlKSB9KTtcbiAgfVxuICBlbW9qaShtZXNzYWdlKSB7XG4gICAgcmV0dXJuIHRoaXMuX2FkZENoZWNrKHsga2luZDogXCJlbW9qaVwiLCAuLi5lcnJvclV0aWwuZXJyVG9PYmoobWVzc2FnZSkgfSk7XG4gIH1cbiAgdXVpZChtZXNzYWdlKSB7XG4gICAgcmV0dXJuIHRoaXMuX2FkZENoZWNrKHsga2luZDogXCJ1dWlkXCIsIC4uLmVycm9yVXRpbC5lcnJUb09iaihtZXNzYWdlKSB9KTtcbiAgfVxuICBuYW5vaWQobWVzc2FnZSkge1xuICAgIHJldHVybiB0aGlzLl9hZGRDaGVjayh7IGtpbmQ6IFwibmFub2lkXCIsIC4uLmVycm9yVXRpbC5lcnJUb09iaihtZXNzYWdlKSB9KTtcbiAgfVxuICBjdWlkKG1lc3NhZ2UpIHtcbiAgICByZXR1cm4gdGhpcy5fYWRkQ2hlY2soeyBraW5kOiBcImN1aWRcIiwgLi4uZXJyb3JVdGlsLmVyclRvT2JqKG1lc3NhZ2UpIH0pO1xuICB9XG4gIGN1aWQyKG1lc3NhZ2UpIHtcbiAgICByZXR1cm4gdGhpcy5fYWRkQ2hlY2soeyBraW5kOiBcImN1aWQyXCIsIC4uLmVycm9yVXRpbC5lcnJUb09iaihtZXNzYWdlKSB9KTtcbiAgfVxuICB1bGlkKG1lc3NhZ2UpIHtcbiAgICByZXR1cm4gdGhpcy5fYWRkQ2hlY2soeyBraW5kOiBcInVsaWRcIiwgLi4uZXJyb3JVdGlsLmVyclRvT2JqKG1lc3NhZ2UpIH0pO1xuICB9XG4gIGJhc2U2NChtZXNzYWdlKSB7XG4gICAgcmV0dXJuIHRoaXMuX2FkZENoZWNrKHsga2luZDogXCJiYXNlNjRcIiwgLi4uZXJyb3JVdGlsLmVyclRvT2JqKG1lc3NhZ2UpIH0pO1xuICB9XG4gIGJhc2U2NHVybChtZXNzYWdlKSB7XG4gICAgcmV0dXJuIHRoaXMuX2FkZENoZWNrKHtcbiAgICAgIGtpbmQ6IFwiYmFzZTY0dXJsXCIsXG4gICAgICAuLi5lcnJvclV0aWwuZXJyVG9PYmoobWVzc2FnZSlcbiAgICB9KTtcbiAgfVxuICBqd3Qob3B0aW9ucykge1xuICAgIHJldHVybiB0aGlzLl9hZGRDaGVjayh7IGtpbmQ6IFwiand0XCIsIC4uLmVycm9yVXRpbC5lcnJUb09iaihvcHRpb25zKSB9KTtcbiAgfVxuICBpcChvcHRpb25zKSB7XG4gICAgcmV0dXJuIHRoaXMuX2FkZENoZWNrKHsga2luZDogXCJpcFwiLCAuLi5lcnJvclV0aWwuZXJyVG9PYmoob3B0aW9ucykgfSk7XG4gIH1cbiAgY2lkcihvcHRpb25zKSB7XG4gICAgcmV0dXJuIHRoaXMuX2FkZENoZWNrKHsga2luZDogXCJjaWRyXCIsIC4uLmVycm9yVXRpbC5lcnJUb09iaihvcHRpb25zKSB9KTtcbiAgfVxuICBkYXRldGltZShvcHRpb25zKSB7XG4gICAgdmFyIF9hLCBfYjtcbiAgICBpZiAodHlwZW9mIG9wdGlvbnMgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgIHJldHVybiB0aGlzLl9hZGRDaGVjayh7XG4gICAgICAgIGtpbmQ6IFwiZGF0ZXRpbWVcIixcbiAgICAgICAgcHJlY2lzaW9uOiBudWxsLFxuICAgICAgICBvZmZzZXQ6IGZhbHNlLFxuICAgICAgICBsb2NhbDogZmFsc2UsXG4gICAgICAgIG1lc3NhZ2U6IG9wdGlvbnNcbiAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5fYWRkQ2hlY2soe1xuICAgICAga2luZDogXCJkYXRldGltZVwiLFxuICAgICAgcHJlY2lzaW9uOiB0eXBlb2YgKG9wdGlvbnMgPT09IG51bGwgfHwgb3B0aW9ucyA9PT0gdm9pZCAwID8gdm9pZCAwIDogb3B0aW9ucy5wcmVjaXNpb24pID09PSBcInVuZGVmaW5lZFwiID8gbnVsbCA6IG9wdGlvbnMgPT09IG51bGwgfHwgb3B0aW9ucyA9PT0gdm9pZCAwID8gdm9pZCAwIDogb3B0aW9ucy5wcmVjaXNpb24sXG4gICAgICBvZmZzZXQ6IChfYSA9IG9wdGlvbnMgPT09IG51bGwgfHwgb3B0aW9ucyA9PT0gdm9pZCAwID8gdm9pZCAwIDogb3B0aW9ucy5vZmZzZXQpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IGZhbHNlLFxuICAgICAgbG9jYWw6IChfYiA9IG9wdGlvbnMgPT09IG51bGwgfHwgb3B0aW9ucyA9PT0gdm9pZCAwID8gdm9pZCAwIDogb3B0aW9ucy5sb2NhbCkgIT09IG51bGwgJiYgX2IgIT09IHZvaWQgMCA/IF9iIDogZmFsc2UsXG4gICAgICAuLi5lcnJvclV0aWwuZXJyVG9PYmoob3B0aW9ucyA9PT0gbnVsbCB8fCBvcHRpb25zID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvcHRpb25zLm1lc3NhZ2UpXG4gICAgfSk7XG4gIH1cbiAgZGF0ZShtZXNzYWdlKSB7XG4gICAgcmV0dXJuIHRoaXMuX2FkZENoZWNrKHsga2luZDogXCJkYXRlXCIsIG1lc3NhZ2UgfSk7XG4gIH1cbiAgdGltZShvcHRpb25zKSB7XG4gICAgaWYgKHR5cGVvZiBvcHRpb25zID09PSBcInN0cmluZ1wiKSB7XG4gICAgICByZXR1cm4gdGhpcy5fYWRkQ2hlY2soe1xuICAgICAgICBraW5kOiBcInRpbWVcIixcbiAgICAgICAgcHJlY2lzaW9uOiBudWxsLFxuICAgICAgICBtZXNzYWdlOiBvcHRpb25zXG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuX2FkZENoZWNrKHtcbiAgICAgIGtpbmQ6IFwidGltZVwiLFxuICAgICAgcHJlY2lzaW9uOiB0eXBlb2YgKG9wdGlvbnMgPT09IG51bGwgfHwgb3B0aW9ucyA9PT0gdm9pZCAwID8gdm9pZCAwIDogb3B0aW9ucy5wcmVjaXNpb24pID09PSBcInVuZGVmaW5lZFwiID8gbnVsbCA6IG9wdGlvbnMgPT09IG51bGwgfHwgb3B0aW9ucyA9PT0gdm9pZCAwID8gdm9pZCAwIDogb3B0aW9ucy5wcmVjaXNpb24sXG4gICAgICAuLi5lcnJvclV0aWwuZXJyVG9PYmoob3B0aW9ucyA9PT0gbnVsbCB8fCBvcHRpb25zID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvcHRpb25zLm1lc3NhZ2UpXG4gICAgfSk7XG4gIH1cbiAgZHVyYXRpb24obWVzc2FnZSkge1xuICAgIHJldHVybiB0aGlzLl9hZGRDaGVjayh7IGtpbmQ6IFwiZHVyYXRpb25cIiwgLi4uZXJyb3JVdGlsLmVyclRvT2JqKG1lc3NhZ2UpIH0pO1xuICB9XG4gIHJlZ2V4KHJlZ2V4LCBtZXNzYWdlKSB7XG4gICAgcmV0dXJuIHRoaXMuX2FkZENoZWNrKHtcbiAgICAgIGtpbmQ6IFwicmVnZXhcIixcbiAgICAgIHJlZ2V4LFxuICAgICAgLi4uZXJyb3JVdGlsLmVyclRvT2JqKG1lc3NhZ2UpXG4gICAgfSk7XG4gIH1cbiAgaW5jbHVkZXModmFsdWUsIG9wdGlvbnMpIHtcbiAgICByZXR1cm4gdGhpcy5fYWRkQ2hlY2soe1xuICAgICAga2luZDogXCJpbmNsdWRlc1wiLFxuICAgICAgdmFsdWUsXG4gICAgICBwb3NpdGlvbjogb3B0aW9ucyA9PT0gbnVsbCB8fCBvcHRpb25zID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvcHRpb25zLnBvc2l0aW9uLFxuICAgICAgLi4uZXJyb3JVdGlsLmVyclRvT2JqKG9wdGlvbnMgPT09IG51bGwgfHwgb3B0aW9ucyA9PT0gdm9pZCAwID8gdm9pZCAwIDogb3B0aW9ucy5tZXNzYWdlKVxuICAgIH0pO1xuICB9XG4gIHN0YXJ0c1dpdGgodmFsdWUsIG1lc3NhZ2UpIHtcbiAgICByZXR1cm4gdGhpcy5fYWRkQ2hlY2soe1xuICAgICAga2luZDogXCJzdGFydHNXaXRoXCIsXG4gICAgICB2YWx1ZSxcbiAgICAgIC4uLmVycm9yVXRpbC5lcnJUb09iaihtZXNzYWdlKVxuICAgIH0pO1xuICB9XG4gIGVuZHNXaXRoKHZhbHVlLCBtZXNzYWdlKSB7XG4gICAgcmV0dXJuIHRoaXMuX2FkZENoZWNrKHtcbiAgICAgIGtpbmQ6IFwiZW5kc1dpdGhcIixcbiAgICAgIHZhbHVlLFxuICAgICAgLi4uZXJyb3JVdGlsLmVyclRvT2JqKG1lc3NhZ2UpXG4gICAgfSk7XG4gIH1cbiAgbWluKG1pbkxlbmd0aCwgbWVzc2FnZSkge1xuICAgIHJldHVybiB0aGlzLl9hZGRDaGVjayh7XG4gICAgICBraW5kOiBcIm1pblwiLFxuICAgICAgdmFsdWU6IG1pbkxlbmd0aCxcbiAgICAgIC4uLmVycm9yVXRpbC5lcnJUb09iaihtZXNzYWdlKVxuICAgIH0pO1xuICB9XG4gIG1heChtYXhMZW5ndGgsIG1lc3NhZ2UpIHtcbiAgICByZXR1cm4gdGhpcy5fYWRkQ2hlY2soe1xuICAgICAga2luZDogXCJtYXhcIixcbiAgICAgIHZhbHVlOiBtYXhMZW5ndGgsXG4gICAgICAuLi5lcnJvclV0aWwuZXJyVG9PYmoobWVzc2FnZSlcbiAgICB9KTtcbiAgfVxuICBsZW5ndGgobGVuLCBtZXNzYWdlKSB7XG4gICAgcmV0dXJuIHRoaXMuX2FkZENoZWNrKHtcbiAgICAgIGtpbmQ6IFwibGVuZ3RoXCIsXG4gICAgICB2YWx1ZTogbGVuLFxuICAgICAgLi4uZXJyb3JVdGlsLmVyclRvT2JqKG1lc3NhZ2UpXG4gICAgfSk7XG4gIH1cbiAgLyoqXG4gICAqIEVxdWl2YWxlbnQgdG8gYC5taW4oMSlgXG4gICAqL1xuICBub25lbXB0eShtZXNzYWdlKSB7XG4gICAgcmV0dXJuIHRoaXMubWluKDEsIGVycm9yVXRpbC5lcnJUb09iaihtZXNzYWdlKSk7XG4gIH1cbiAgdHJpbSgpIHtcbiAgICByZXR1cm4gbmV3IF9ab2RTdHJpbmcoe1xuICAgICAgLi4udGhpcy5fZGVmLFxuICAgICAgY2hlY2tzOiBbLi4udGhpcy5fZGVmLmNoZWNrcywgeyBraW5kOiBcInRyaW1cIiB9XVxuICAgIH0pO1xuICB9XG4gIHRvTG93ZXJDYXNlKCkge1xuICAgIHJldHVybiBuZXcgX1pvZFN0cmluZyh7XG4gICAgICAuLi50aGlzLl9kZWYsXG4gICAgICBjaGVja3M6IFsuLi50aGlzLl9kZWYuY2hlY2tzLCB7IGtpbmQ6IFwidG9Mb3dlckNhc2VcIiB9XVxuICAgIH0pO1xuICB9XG4gIHRvVXBwZXJDYXNlKCkge1xuICAgIHJldHVybiBuZXcgX1pvZFN0cmluZyh7XG4gICAgICAuLi50aGlzLl9kZWYsXG4gICAgICBjaGVja3M6IFsuLi50aGlzLl9kZWYuY2hlY2tzLCB7IGtpbmQ6IFwidG9VcHBlckNhc2VcIiB9XVxuICAgIH0pO1xuICB9XG4gIGdldCBpc0RhdGV0aW1lKCkge1xuICAgIHJldHVybiAhIXRoaXMuX2RlZi5jaGVja3MuZmluZCgoY2gpID0+IGNoLmtpbmQgPT09IFwiZGF0ZXRpbWVcIik7XG4gIH1cbiAgZ2V0IGlzRGF0ZSgpIHtcbiAgICByZXR1cm4gISF0aGlzLl9kZWYuY2hlY2tzLmZpbmQoKGNoKSA9PiBjaC5raW5kID09PSBcImRhdGVcIik7XG4gIH1cbiAgZ2V0IGlzVGltZSgpIHtcbiAgICByZXR1cm4gISF0aGlzLl9kZWYuY2hlY2tzLmZpbmQoKGNoKSA9PiBjaC5raW5kID09PSBcInRpbWVcIik7XG4gIH1cbiAgZ2V0IGlzRHVyYXRpb24oKSB7XG4gICAgcmV0dXJuICEhdGhpcy5fZGVmLmNoZWNrcy5maW5kKChjaCkgPT4gY2gua2luZCA9PT0gXCJkdXJhdGlvblwiKTtcbiAgfVxuICBnZXQgaXNFbWFpbCgpIHtcbiAgICByZXR1cm4gISF0aGlzLl9kZWYuY2hlY2tzLmZpbmQoKGNoKSA9PiBjaC5raW5kID09PSBcImVtYWlsXCIpO1xuICB9XG4gIGdldCBpc1VSTCgpIHtcbiAgICByZXR1cm4gISF0aGlzLl9kZWYuY2hlY2tzLmZpbmQoKGNoKSA9PiBjaC5raW5kID09PSBcInVybFwiKTtcbiAgfVxuICBnZXQgaXNFbW9qaSgpIHtcbiAgICByZXR1cm4gISF0aGlzLl9kZWYuY2hlY2tzLmZpbmQoKGNoKSA9PiBjaC5raW5kID09PSBcImVtb2ppXCIpO1xuICB9XG4gIGdldCBpc1VVSUQoKSB7XG4gICAgcmV0dXJuICEhdGhpcy5fZGVmLmNoZWNrcy5maW5kKChjaCkgPT4gY2gua2luZCA9PT0gXCJ1dWlkXCIpO1xuICB9XG4gIGdldCBpc05BTk9JRCgpIHtcbiAgICByZXR1cm4gISF0aGlzLl9kZWYuY2hlY2tzLmZpbmQoKGNoKSA9PiBjaC5raW5kID09PSBcIm5hbm9pZFwiKTtcbiAgfVxuICBnZXQgaXNDVUlEKCkge1xuICAgIHJldHVybiAhIXRoaXMuX2RlZi5jaGVja3MuZmluZCgoY2gpID0+IGNoLmtpbmQgPT09IFwiY3VpZFwiKTtcbiAgfVxuICBnZXQgaXNDVUlEMigpIHtcbiAgICByZXR1cm4gISF0aGlzLl9kZWYuY2hlY2tzLmZpbmQoKGNoKSA9PiBjaC5raW5kID09PSBcImN1aWQyXCIpO1xuICB9XG4gIGdldCBpc1VMSUQoKSB7XG4gICAgcmV0dXJuICEhdGhpcy5fZGVmLmNoZWNrcy5maW5kKChjaCkgPT4gY2gua2luZCA9PT0gXCJ1bGlkXCIpO1xuICB9XG4gIGdldCBpc0lQKCkge1xuICAgIHJldHVybiAhIXRoaXMuX2RlZi5jaGVja3MuZmluZCgoY2gpID0+IGNoLmtpbmQgPT09IFwiaXBcIik7XG4gIH1cbiAgZ2V0IGlzQ0lEUigpIHtcbiAgICByZXR1cm4gISF0aGlzLl9kZWYuY2hlY2tzLmZpbmQoKGNoKSA9PiBjaC5raW5kID09PSBcImNpZHJcIik7XG4gIH1cbiAgZ2V0IGlzQmFzZTY0KCkge1xuICAgIHJldHVybiAhIXRoaXMuX2RlZi5jaGVja3MuZmluZCgoY2gpID0+IGNoLmtpbmQgPT09IFwiYmFzZTY0XCIpO1xuICB9XG4gIGdldCBpc0Jhc2U2NHVybCgpIHtcbiAgICByZXR1cm4gISF0aGlzLl9kZWYuY2hlY2tzLmZpbmQoKGNoKSA9PiBjaC5raW5kID09PSBcImJhc2U2NHVybFwiKTtcbiAgfVxuICBnZXQgbWluTGVuZ3RoKCkge1xuICAgIGxldCBtaW4gPSBudWxsO1xuICAgIGZvciAoY29uc3QgY2ggb2YgdGhpcy5fZGVmLmNoZWNrcykge1xuICAgICAgaWYgKGNoLmtpbmQgPT09IFwibWluXCIpIHtcbiAgICAgICAgaWYgKG1pbiA9PT0gbnVsbCB8fCBjaC52YWx1ZSA+IG1pbilcbiAgICAgICAgICBtaW4gPSBjaC52YWx1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG1pbjtcbiAgfVxuICBnZXQgbWF4TGVuZ3RoKCkge1xuICAgIGxldCBtYXggPSBudWxsO1xuICAgIGZvciAoY29uc3QgY2ggb2YgdGhpcy5fZGVmLmNoZWNrcykge1xuICAgICAgaWYgKGNoLmtpbmQgPT09IFwibWF4XCIpIHtcbiAgICAgICAgaWYgKG1heCA9PT0gbnVsbCB8fCBjaC52YWx1ZSA8IG1heClcbiAgICAgICAgICBtYXggPSBjaC52YWx1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG1heDtcbiAgfVxufTtcblpvZFN0cmluZy5jcmVhdGUgPSAocGFyYW1zKSA9PiB7XG4gIHZhciBfYTtcbiAgcmV0dXJuIG5ldyBab2RTdHJpbmcoe1xuICAgIGNoZWNrczogW10sXG4gICAgdHlwZU5hbWU6IFpvZEZpcnN0UGFydHlUeXBlS2luZC5ab2RTdHJpbmcsXG4gICAgY29lcmNlOiAoX2EgPSBwYXJhbXMgPT09IG51bGwgfHwgcGFyYW1zID09PSB2b2lkIDAgPyB2b2lkIDAgOiBwYXJhbXMuY29lcmNlKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiBmYWxzZSxcbiAgICAuLi5wcm9jZXNzQ3JlYXRlUGFyYW1zKHBhcmFtcylcbiAgfSk7XG59O1xuZnVuY3Rpb24gZmxvYXRTYWZlUmVtYWluZGVyKHZhbCwgc3RlcCkge1xuICBjb25zdCB2YWxEZWNDb3VudCA9ICh2YWwudG9TdHJpbmcoKS5zcGxpdChcIi5cIilbMV0gfHwgXCJcIikubGVuZ3RoO1xuICBjb25zdCBzdGVwRGVjQ291bnQgPSAoc3RlcC50b1N0cmluZygpLnNwbGl0KFwiLlwiKVsxXSB8fCBcIlwiKS5sZW5ndGg7XG4gIGNvbnN0IGRlY0NvdW50ID0gdmFsRGVjQ291bnQgPiBzdGVwRGVjQ291bnQgPyB2YWxEZWNDb3VudCA6IHN0ZXBEZWNDb3VudDtcbiAgY29uc3QgdmFsSW50ID0gcGFyc2VJbnQodmFsLnRvRml4ZWQoZGVjQ291bnQpLnJlcGxhY2UoXCIuXCIsIFwiXCIpKTtcbiAgY29uc3Qgc3RlcEludCA9IHBhcnNlSW50KHN0ZXAudG9GaXhlZChkZWNDb3VudCkucmVwbGFjZShcIi5cIiwgXCJcIikpO1xuICByZXR1cm4gdmFsSW50ICUgc3RlcEludCAvIE1hdGgucG93KDEwLCBkZWNDb3VudCk7XG59XG52YXIgWm9kTnVtYmVyID0gY2xhc3MgX1pvZE51bWJlciBleHRlbmRzIFpvZFR5cGUge1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlciguLi5hcmd1bWVudHMpO1xuICAgIHRoaXMubWluID0gdGhpcy5ndGU7XG4gICAgdGhpcy5tYXggPSB0aGlzLmx0ZTtcbiAgICB0aGlzLnN0ZXAgPSB0aGlzLm11bHRpcGxlT2Y7XG4gIH1cbiAgX3BhcnNlKGlucHV0KSB7XG4gICAgaWYgKHRoaXMuX2RlZi5jb2VyY2UpIHtcbiAgICAgIGlucHV0LmRhdGEgPSBOdW1iZXIoaW5wdXQuZGF0YSk7XG4gICAgfVxuICAgIGNvbnN0IHBhcnNlZFR5cGUgPSB0aGlzLl9nZXRUeXBlKGlucHV0KTtcbiAgICBpZiAocGFyc2VkVHlwZSAhPT0gWm9kUGFyc2VkVHlwZS5udW1iZXIpIHtcbiAgICAgIGNvbnN0IGN0eDIgPSB0aGlzLl9nZXRPclJldHVybkN0eChpbnB1dCk7XG4gICAgICBhZGRJc3N1ZVRvQ29udGV4dChjdHgyLCB7XG4gICAgICAgIGNvZGU6IFpvZElzc3VlQ29kZS5pbnZhbGlkX3R5cGUsXG4gICAgICAgIGV4cGVjdGVkOiBab2RQYXJzZWRUeXBlLm51bWJlcixcbiAgICAgICAgcmVjZWl2ZWQ6IGN0eDIucGFyc2VkVHlwZVxuICAgICAgfSk7XG4gICAgICByZXR1cm4gSU5WQUxJRDtcbiAgICB9XG4gICAgbGV0IGN0eCA9IHZvaWQgMDtcbiAgICBjb25zdCBzdGF0dXMgPSBuZXcgUGFyc2VTdGF0dXMoKTtcbiAgICBmb3IgKGNvbnN0IGNoZWNrIG9mIHRoaXMuX2RlZi5jaGVja3MpIHtcbiAgICAgIGlmIChjaGVjay5raW5kID09PSBcImludFwiKSB7XG4gICAgICAgIGlmICghdXRpbC5pc0ludGVnZXIoaW5wdXQuZGF0YSkpIHtcbiAgICAgICAgICBjdHggPSB0aGlzLl9nZXRPclJldHVybkN0eChpbnB1dCwgY3R4KTtcbiAgICAgICAgICBhZGRJc3N1ZVRvQ29udGV4dChjdHgsIHtcbiAgICAgICAgICAgIGNvZGU6IFpvZElzc3VlQ29kZS5pbnZhbGlkX3R5cGUsXG4gICAgICAgICAgICBleHBlY3RlZDogXCJpbnRlZ2VyXCIsXG4gICAgICAgICAgICByZWNlaXZlZDogXCJmbG9hdFwiLFxuICAgICAgICAgICAgbWVzc2FnZTogY2hlY2subWVzc2FnZVxuICAgICAgICAgIH0pO1xuICAgICAgICAgIHN0YXR1cy5kaXJ0eSgpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKGNoZWNrLmtpbmQgPT09IFwibWluXCIpIHtcbiAgICAgICAgY29uc3QgdG9vU21hbGwgPSBjaGVjay5pbmNsdXNpdmUgPyBpbnB1dC5kYXRhIDwgY2hlY2sudmFsdWUgOiBpbnB1dC5kYXRhIDw9IGNoZWNrLnZhbHVlO1xuICAgICAgICBpZiAodG9vU21hbGwpIHtcbiAgICAgICAgICBjdHggPSB0aGlzLl9nZXRPclJldHVybkN0eChpbnB1dCwgY3R4KTtcbiAgICAgICAgICBhZGRJc3N1ZVRvQ29udGV4dChjdHgsIHtcbiAgICAgICAgICAgIGNvZGU6IFpvZElzc3VlQ29kZS50b29fc21hbGwsXG4gICAgICAgICAgICBtaW5pbXVtOiBjaGVjay52YWx1ZSxcbiAgICAgICAgICAgIHR5cGU6IFwibnVtYmVyXCIsXG4gICAgICAgICAgICBpbmNsdXNpdmU6IGNoZWNrLmluY2x1c2l2ZSxcbiAgICAgICAgICAgIGV4YWN0OiBmYWxzZSxcbiAgICAgICAgICAgIG1lc3NhZ2U6IGNoZWNrLm1lc3NhZ2VcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBzdGF0dXMuZGlydHkoKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmIChjaGVjay5raW5kID09PSBcIm1heFwiKSB7XG4gICAgICAgIGNvbnN0IHRvb0JpZyA9IGNoZWNrLmluY2x1c2l2ZSA/IGlucHV0LmRhdGEgPiBjaGVjay52YWx1ZSA6IGlucHV0LmRhdGEgPj0gY2hlY2sudmFsdWU7XG4gICAgICAgIGlmICh0b29CaWcpIHtcbiAgICAgICAgICBjdHggPSB0aGlzLl9nZXRPclJldHVybkN0eChpbnB1dCwgY3R4KTtcbiAgICAgICAgICBhZGRJc3N1ZVRvQ29udGV4dChjdHgsIHtcbiAgICAgICAgICAgIGNvZGU6IFpvZElzc3VlQ29kZS50b29fYmlnLFxuICAgICAgICAgICAgbWF4aW11bTogY2hlY2sudmFsdWUsXG4gICAgICAgICAgICB0eXBlOiBcIm51bWJlclwiLFxuICAgICAgICAgICAgaW5jbHVzaXZlOiBjaGVjay5pbmNsdXNpdmUsXG4gICAgICAgICAgICBleGFjdDogZmFsc2UsXG4gICAgICAgICAgICBtZXNzYWdlOiBjaGVjay5tZXNzYWdlXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgc3RhdHVzLmRpcnR5KCk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAoY2hlY2sua2luZCA9PT0gXCJtdWx0aXBsZU9mXCIpIHtcbiAgICAgICAgaWYgKGZsb2F0U2FmZVJlbWFpbmRlcihpbnB1dC5kYXRhLCBjaGVjay52YWx1ZSkgIT09IDApIHtcbiAgICAgICAgICBjdHggPSB0aGlzLl9nZXRPclJldHVybkN0eChpbnB1dCwgY3R4KTtcbiAgICAgICAgICBhZGRJc3N1ZVRvQ29udGV4dChjdHgsIHtcbiAgICAgICAgICAgIGNvZGU6IFpvZElzc3VlQ29kZS5ub3RfbXVsdGlwbGVfb2YsXG4gICAgICAgICAgICBtdWx0aXBsZU9mOiBjaGVjay52YWx1ZSxcbiAgICAgICAgICAgIG1lc3NhZ2U6IGNoZWNrLm1lc3NhZ2VcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBzdGF0dXMuZGlydHkoKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmIChjaGVjay5raW5kID09PSBcImZpbml0ZVwiKSB7XG4gICAgICAgIGlmICghTnVtYmVyLmlzRmluaXRlKGlucHV0LmRhdGEpKSB7XG4gICAgICAgICAgY3R4ID0gdGhpcy5fZ2V0T3JSZXR1cm5DdHgoaW5wdXQsIGN0eCk7XG4gICAgICAgICAgYWRkSXNzdWVUb0NvbnRleHQoY3R4LCB7XG4gICAgICAgICAgICBjb2RlOiBab2RJc3N1ZUNvZGUubm90X2Zpbml0ZSxcbiAgICAgICAgICAgIG1lc3NhZ2U6IGNoZWNrLm1lc3NhZ2VcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBzdGF0dXMuZGlydHkoKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdXRpbC5hc3NlcnROZXZlcihjaGVjayk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB7IHN0YXR1czogc3RhdHVzLnZhbHVlLCB2YWx1ZTogaW5wdXQuZGF0YSB9O1xuICB9XG4gIGd0ZSh2YWx1ZSwgbWVzc2FnZSkge1xuICAgIHJldHVybiB0aGlzLnNldExpbWl0KFwibWluXCIsIHZhbHVlLCB0cnVlLCBlcnJvclV0aWwudG9TdHJpbmcobWVzc2FnZSkpO1xuICB9XG4gIGd0KHZhbHVlLCBtZXNzYWdlKSB7XG4gICAgcmV0dXJuIHRoaXMuc2V0TGltaXQoXCJtaW5cIiwgdmFsdWUsIGZhbHNlLCBlcnJvclV0aWwudG9TdHJpbmcobWVzc2FnZSkpO1xuICB9XG4gIGx0ZSh2YWx1ZSwgbWVzc2FnZSkge1xuICAgIHJldHVybiB0aGlzLnNldExpbWl0KFwibWF4XCIsIHZhbHVlLCB0cnVlLCBlcnJvclV0aWwudG9TdHJpbmcobWVzc2FnZSkpO1xuICB9XG4gIGx0KHZhbHVlLCBtZXNzYWdlKSB7XG4gICAgcmV0dXJuIHRoaXMuc2V0TGltaXQoXCJtYXhcIiwgdmFsdWUsIGZhbHNlLCBlcnJvclV0aWwudG9TdHJpbmcobWVzc2FnZSkpO1xuICB9XG4gIHNldExpbWl0KGtpbmQsIHZhbHVlLCBpbmNsdXNpdmUsIG1lc3NhZ2UpIHtcbiAgICByZXR1cm4gbmV3IF9ab2ROdW1iZXIoe1xuICAgICAgLi4udGhpcy5fZGVmLFxuICAgICAgY2hlY2tzOiBbXG4gICAgICAgIC4uLnRoaXMuX2RlZi5jaGVja3MsXG4gICAgICAgIHtcbiAgICAgICAgICBraW5kLFxuICAgICAgICAgIHZhbHVlLFxuICAgICAgICAgIGluY2x1c2l2ZSxcbiAgICAgICAgICBtZXNzYWdlOiBlcnJvclV0aWwudG9TdHJpbmcobWVzc2FnZSlcbiAgICAgICAgfVxuICAgICAgXVxuICAgIH0pO1xuICB9XG4gIF9hZGRDaGVjayhjaGVjaykge1xuICAgIHJldHVybiBuZXcgX1pvZE51bWJlcih7XG4gICAgICAuLi50aGlzLl9kZWYsXG4gICAgICBjaGVja3M6IFsuLi50aGlzLl9kZWYuY2hlY2tzLCBjaGVja11cbiAgICB9KTtcbiAgfVxuICBpbnQobWVzc2FnZSkge1xuICAgIHJldHVybiB0aGlzLl9hZGRDaGVjayh7XG4gICAgICBraW5kOiBcImludFwiLFxuICAgICAgbWVzc2FnZTogZXJyb3JVdGlsLnRvU3RyaW5nKG1lc3NhZ2UpXG4gICAgfSk7XG4gIH1cbiAgcG9zaXRpdmUobWVzc2FnZSkge1xuICAgIHJldHVybiB0aGlzLl9hZGRDaGVjayh7XG4gICAgICBraW5kOiBcIm1pblwiLFxuICAgICAgdmFsdWU6IDAsXG4gICAgICBpbmNsdXNpdmU6IGZhbHNlLFxuICAgICAgbWVzc2FnZTogZXJyb3JVdGlsLnRvU3RyaW5nKG1lc3NhZ2UpXG4gICAgfSk7XG4gIH1cbiAgbmVnYXRpdmUobWVzc2FnZSkge1xuICAgIHJldHVybiB0aGlzLl9hZGRDaGVjayh7XG4gICAgICBraW5kOiBcIm1heFwiLFxuICAgICAgdmFsdWU6IDAsXG4gICAgICBpbmNsdXNpdmU6IGZhbHNlLFxuICAgICAgbWVzc2FnZTogZXJyb3JVdGlsLnRvU3RyaW5nKG1lc3NhZ2UpXG4gICAgfSk7XG4gIH1cbiAgbm9ucG9zaXRpdmUobWVzc2FnZSkge1xuICAgIHJldHVybiB0aGlzLl9hZGRDaGVjayh7XG4gICAgICBraW5kOiBcIm1heFwiLFxuICAgICAgdmFsdWU6IDAsXG4gICAgICBpbmNsdXNpdmU6IHRydWUsXG4gICAgICBtZXNzYWdlOiBlcnJvclV0aWwudG9TdHJpbmcobWVzc2FnZSlcbiAgICB9KTtcbiAgfVxuICBub25uZWdhdGl2ZShtZXNzYWdlKSB7XG4gICAgcmV0dXJuIHRoaXMuX2FkZENoZWNrKHtcbiAgICAgIGtpbmQ6IFwibWluXCIsXG4gICAgICB2YWx1ZTogMCxcbiAgICAgIGluY2x1c2l2ZTogdHJ1ZSxcbiAgICAgIG1lc3NhZ2U6IGVycm9yVXRpbC50b1N0cmluZyhtZXNzYWdlKVxuICAgIH0pO1xuICB9XG4gIG11bHRpcGxlT2YodmFsdWUsIG1lc3NhZ2UpIHtcbiAgICByZXR1cm4gdGhpcy5fYWRkQ2hlY2soe1xuICAgICAga2luZDogXCJtdWx0aXBsZU9mXCIsXG4gICAgICB2YWx1ZSxcbiAgICAgIG1lc3NhZ2U6IGVycm9yVXRpbC50b1N0cmluZyhtZXNzYWdlKVxuICAgIH0pO1xuICB9XG4gIGZpbml0ZShtZXNzYWdlKSB7XG4gICAgcmV0dXJuIHRoaXMuX2FkZENoZWNrKHtcbiAgICAgIGtpbmQ6IFwiZmluaXRlXCIsXG4gICAgICBtZXNzYWdlOiBlcnJvclV0aWwudG9TdHJpbmcobWVzc2FnZSlcbiAgICB9KTtcbiAgfVxuICBzYWZlKG1lc3NhZ2UpIHtcbiAgICByZXR1cm4gdGhpcy5fYWRkQ2hlY2soe1xuICAgICAga2luZDogXCJtaW5cIixcbiAgICAgIGluY2x1c2l2ZTogdHJ1ZSxcbiAgICAgIHZhbHVlOiBOdW1iZXIuTUlOX1NBRkVfSU5URUdFUixcbiAgICAgIG1lc3NhZ2U6IGVycm9yVXRpbC50b1N0cmluZyhtZXNzYWdlKVxuICAgIH0pLl9hZGRDaGVjayh7XG4gICAgICBraW5kOiBcIm1heFwiLFxuICAgICAgaW5jbHVzaXZlOiB0cnVlLFxuICAgICAgdmFsdWU6IE51bWJlci5NQVhfU0FGRV9JTlRFR0VSLFxuICAgICAgbWVzc2FnZTogZXJyb3JVdGlsLnRvU3RyaW5nKG1lc3NhZ2UpXG4gICAgfSk7XG4gIH1cbiAgZ2V0IG1pblZhbHVlKCkge1xuICAgIGxldCBtaW4gPSBudWxsO1xuICAgIGZvciAoY29uc3QgY2ggb2YgdGhpcy5fZGVmLmNoZWNrcykge1xuICAgICAgaWYgKGNoLmtpbmQgPT09IFwibWluXCIpIHtcbiAgICAgICAgaWYgKG1pbiA9PT0gbnVsbCB8fCBjaC52YWx1ZSA+IG1pbilcbiAgICAgICAgICBtaW4gPSBjaC52YWx1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG1pbjtcbiAgfVxuICBnZXQgbWF4VmFsdWUoKSB7XG4gICAgbGV0IG1heCA9IG51bGw7XG4gICAgZm9yIChjb25zdCBjaCBvZiB0aGlzLl9kZWYuY2hlY2tzKSB7XG4gICAgICBpZiAoY2gua2luZCA9PT0gXCJtYXhcIikge1xuICAgICAgICBpZiAobWF4ID09PSBudWxsIHx8IGNoLnZhbHVlIDwgbWF4KVxuICAgICAgICAgIG1heCA9IGNoLnZhbHVlO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbWF4O1xuICB9XG4gIGdldCBpc0ludCgpIHtcbiAgICByZXR1cm4gISF0aGlzLl9kZWYuY2hlY2tzLmZpbmQoKGNoKSA9PiBjaC5raW5kID09PSBcImludFwiIHx8IGNoLmtpbmQgPT09IFwibXVsdGlwbGVPZlwiICYmIHV0aWwuaXNJbnRlZ2VyKGNoLnZhbHVlKSk7XG4gIH1cbiAgZ2V0IGlzRmluaXRlKCkge1xuICAgIGxldCBtYXggPSBudWxsLCBtaW4gPSBudWxsO1xuICAgIGZvciAoY29uc3QgY2ggb2YgdGhpcy5fZGVmLmNoZWNrcykge1xuICAgICAgaWYgKGNoLmtpbmQgPT09IFwiZmluaXRlXCIgfHwgY2gua2luZCA9PT0gXCJpbnRcIiB8fCBjaC5raW5kID09PSBcIm11bHRpcGxlT2ZcIikge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH0gZWxzZSBpZiAoY2gua2luZCA9PT0gXCJtaW5cIikge1xuICAgICAgICBpZiAobWluID09PSBudWxsIHx8IGNoLnZhbHVlID4gbWluKVxuICAgICAgICAgIG1pbiA9IGNoLnZhbHVlO1xuICAgICAgfSBlbHNlIGlmIChjaC5raW5kID09PSBcIm1heFwiKSB7XG4gICAgICAgIGlmIChtYXggPT09IG51bGwgfHwgY2gudmFsdWUgPCBtYXgpXG4gICAgICAgICAgbWF4ID0gY2gudmFsdWU7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBOdW1iZXIuaXNGaW5pdGUobWluKSAmJiBOdW1iZXIuaXNGaW5pdGUobWF4KTtcbiAgfVxufTtcblpvZE51bWJlci5jcmVhdGUgPSAocGFyYW1zKSA9PiB7XG4gIHJldHVybiBuZXcgWm9kTnVtYmVyKHtcbiAgICBjaGVja3M6IFtdLFxuICAgIHR5cGVOYW1lOiBab2RGaXJzdFBhcnR5VHlwZUtpbmQuWm9kTnVtYmVyLFxuICAgIGNvZXJjZTogKHBhcmFtcyA9PT0gbnVsbCB8fCBwYXJhbXMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHBhcmFtcy5jb2VyY2UpIHx8IGZhbHNlLFxuICAgIC4uLnByb2Nlc3NDcmVhdGVQYXJhbXMocGFyYW1zKVxuICB9KTtcbn07XG52YXIgWm9kQmlnSW50ID0gY2xhc3MgX1pvZEJpZ0ludCBleHRlbmRzIFpvZFR5cGUge1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlciguLi5hcmd1bWVudHMpO1xuICAgIHRoaXMubWluID0gdGhpcy5ndGU7XG4gICAgdGhpcy5tYXggPSB0aGlzLmx0ZTtcbiAgfVxuICBfcGFyc2UoaW5wdXQpIHtcbiAgICBpZiAodGhpcy5fZGVmLmNvZXJjZSkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgaW5wdXQuZGF0YSA9IEJpZ0ludChpbnB1dC5kYXRhKTtcbiAgICAgIH0gY2F0Y2ggKF9hKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9nZXRJbnZhbGlkSW5wdXQoaW5wdXQpO1xuICAgICAgfVxuICAgIH1cbiAgICBjb25zdCBwYXJzZWRUeXBlID0gdGhpcy5fZ2V0VHlwZShpbnB1dCk7XG4gICAgaWYgKHBhcnNlZFR5cGUgIT09IFpvZFBhcnNlZFR5cGUuYmlnaW50KSB7XG4gICAgICByZXR1cm4gdGhpcy5fZ2V0SW52YWxpZElucHV0KGlucHV0KTtcbiAgICB9XG4gICAgbGV0IGN0eCA9IHZvaWQgMDtcbiAgICBjb25zdCBzdGF0dXMgPSBuZXcgUGFyc2VTdGF0dXMoKTtcbiAgICBmb3IgKGNvbnN0IGNoZWNrIG9mIHRoaXMuX2RlZi5jaGVja3MpIHtcbiAgICAgIGlmIChjaGVjay5raW5kID09PSBcIm1pblwiKSB7XG4gICAgICAgIGNvbnN0IHRvb1NtYWxsID0gY2hlY2suaW5jbHVzaXZlID8gaW5wdXQuZGF0YSA8IGNoZWNrLnZhbHVlIDogaW5wdXQuZGF0YSA8PSBjaGVjay52YWx1ZTtcbiAgICAgICAgaWYgKHRvb1NtYWxsKSB7XG4gICAgICAgICAgY3R4ID0gdGhpcy5fZ2V0T3JSZXR1cm5DdHgoaW5wdXQsIGN0eCk7XG4gICAgICAgICAgYWRkSXNzdWVUb0NvbnRleHQoY3R4LCB7XG4gICAgICAgICAgICBjb2RlOiBab2RJc3N1ZUNvZGUudG9vX3NtYWxsLFxuICAgICAgICAgICAgdHlwZTogXCJiaWdpbnRcIixcbiAgICAgICAgICAgIG1pbmltdW06IGNoZWNrLnZhbHVlLFxuICAgICAgICAgICAgaW5jbHVzaXZlOiBjaGVjay5pbmNsdXNpdmUsXG4gICAgICAgICAgICBtZXNzYWdlOiBjaGVjay5tZXNzYWdlXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgc3RhdHVzLmRpcnR5KCk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAoY2hlY2sua2luZCA9PT0gXCJtYXhcIikge1xuICAgICAgICBjb25zdCB0b29CaWcgPSBjaGVjay5pbmNsdXNpdmUgPyBpbnB1dC5kYXRhID4gY2hlY2sudmFsdWUgOiBpbnB1dC5kYXRhID49IGNoZWNrLnZhbHVlO1xuICAgICAgICBpZiAodG9vQmlnKSB7XG4gICAgICAgICAgY3R4ID0gdGhpcy5fZ2V0T3JSZXR1cm5DdHgoaW5wdXQsIGN0eCk7XG4gICAgICAgICAgYWRkSXNzdWVUb0NvbnRleHQoY3R4LCB7XG4gICAgICAgICAgICBjb2RlOiBab2RJc3N1ZUNvZGUudG9vX2JpZyxcbiAgICAgICAgICAgIHR5cGU6IFwiYmlnaW50XCIsXG4gICAgICAgICAgICBtYXhpbXVtOiBjaGVjay52YWx1ZSxcbiAgICAgICAgICAgIGluY2x1c2l2ZTogY2hlY2suaW5jbHVzaXZlLFxuICAgICAgICAgICAgbWVzc2FnZTogY2hlY2subWVzc2FnZVxuICAgICAgICAgIH0pO1xuICAgICAgICAgIHN0YXR1cy5kaXJ0eSgpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKGNoZWNrLmtpbmQgPT09IFwibXVsdGlwbGVPZlwiKSB7XG4gICAgICAgIGlmIChpbnB1dC5kYXRhICUgY2hlY2sudmFsdWUgIT09IEJpZ0ludCgwKSkge1xuICAgICAgICAgIGN0eCA9IHRoaXMuX2dldE9yUmV0dXJuQ3R4KGlucHV0LCBjdHgpO1xuICAgICAgICAgIGFkZElzc3VlVG9Db250ZXh0KGN0eCwge1xuICAgICAgICAgICAgY29kZTogWm9kSXNzdWVDb2RlLm5vdF9tdWx0aXBsZV9vZixcbiAgICAgICAgICAgIG11bHRpcGxlT2Y6IGNoZWNrLnZhbHVlLFxuICAgICAgICAgICAgbWVzc2FnZTogY2hlY2subWVzc2FnZVxuICAgICAgICAgIH0pO1xuICAgICAgICAgIHN0YXR1cy5kaXJ0eSgpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB1dGlsLmFzc2VydE5ldmVyKGNoZWNrKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHsgc3RhdHVzOiBzdGF0dXMudmFsdWUsIHZhbHVlOiBpbnB1dC5kYXRhIH07XG4gIH1cbiAgX2dldEludmFsaWRJbnB1dChpbnB1dCkge1xuICAgIGNvbnN0IGN0eCA9IHRoaXMuX2dldE9yUmV0dXJuQ3R4KGlucHV0KTtcbiAgICBhZGRJc3N1ZVRvQ29udGV4dChjdHgsIHtcbiAgICAgIGNvZGU6IFpvZElzc3VlQ29kZS5pbnZhbGlkX3R5cGUsXG4gICAgICBleHBlY3RlZDogWm9kUGFyc2VkVHlwZS5iaWdpbnQsXG4gICAgICByZWNlaXZlZDogY3R4LnBhcnNlZFR5cGVcbiAgICB9KTtcbiAgICByZXR1cm4gSU5WQUxJRDtcbiAgfVxuICBndGUodmFsdWUsIG1lc3NhZ2UpIHtcbiAgICByZXR1cm4gdGhpcy5zZXRMaW1pdChcIm1pblwiLCB2YWx1ZSwgdHJ1ZSwgZXJyb3JVdGlsLnRvU3RyaW5nKG1lc3NhZ2UpKTtcbiAgfVxuICBndCh2YWx1ZSwgbWVzc2FnZSkge1xuICAgIHJldHVybiB0aGlzLnNldExpbWl0KFwibWluXCIsIHZhbHVlLCBmYWxzZSwgZXJyb3JVdGlsLnRvU3RyaW5nKG1lc3NhZ2UpKTtcbiAgfVxuICBsdGUodmFsdWUsIG1lc3NhZ2UpIHtcbiAgICByZXR1cm4gdGhpcy5zZXRMaW1pdChcIm1heFwiLCB2YWx1ZSwgdHJ1ZSwgZXJyb3JVdGlsLnRvU3RyaW5nKG1lc3NhZ2UpKTtcbiAgfVxuICBsdCh2YWx1ZSwgbWVzc2FnZSkge1xuICAgIHJldHVybiB0aGlzLnNldExpbWl0KFwibWF4XCIsIHZhbHVlLCBmYWxzZSwgZXJyb3JVdGlsLnRvU3RyaW5nKG1lc3NhZ2UpKTtcbiAgfVxuICBzZXRMaW1pdChraW5kLCB2YWx1ZSwgaW5jbHVzaXZlLCBtZXNzYWdlKSB7XG4gICAgcmV0dXJuIG5ldyBfWm9kQmlnSW50KHtcbiAgICAgIC4uLnRoaXMuX2RlZixcbiAgICAgIGNoZWNrczogW1xuICAgICAgICAuLi50aGlzLl9kZWYuY2hlY2tzLFxuICAgICAgICB7XG4gICAgICAgICAga2luZCxcbiAgICAgICAgICB2YWx1ZSxcbiAgICAgICAgICBpbmNsdXNpdmUsXG4gICAgICAgICAgbWVzc2FnZTogZXJyb3JVdGlsLnRvU3RyaW5nKG1lc3NhZ2UpXG4gICAgICAgIH1cbiAgICAgIF1cbiAgICB9KTtcbiAgfVxuICBfYWRkQ2hlY2soY2hlY2spIHtcbiAgICByZXR1cm4gbmV3IF9ab2RCaWdJbnQoe1xuICAgICAgLi4udGhpcy5fZGVmLFxuICAgICAgY2hlY2tzOiBbLi4udGhpcy5fZGVmLmNoZWNrcywgY2hlY2tdXG4gICAgfSk7XG4gIH1cbiAgcG9zaXRpdmUobWVzc2FnZSkge1xuICAgIHJldHVybiB0aGlzLl9hZGRDaGVjayh7XG4gICAgICBraW5kOiBcIm1pblwiLFxuICAgICAgdmFsdWU6IEJpZ0ludCgwKSxcbiAgICAgIGluY2x1c2l2ZTogZmFsc2UsXG4gICAgICBtZXNzYWdlOiBlcnJvclV0aWwudG9TdHJpbmcobWVzc2FnZSlcbiAgICB9KTtcbiAgfVxuICBuZWdhdGl2ZShtZXNzYWdlKSB7XG4gICAgcmV0dXJuIHRoaXMuX2FkZENoZWNrKHtcbiAgICAgIGtpbmQ6IFwibWF4XCIsXG4gICAgICB2YWx1ZTogQmlnSW50KDApLFxuICAgICAgaW5jbHVzaXZlOiBmYWxzZSxcbiAgICAgIG1lc3NhZ2U6IGVycm9yVXRpbC50b1N0cmluZyhtZXNzYWdlKVxuICAgIH0pO1xuICB9XG4gIG5vbnBvc2l0aXZlKG1lc3NhZ2UpIHtcbiAgICByZXR1cm4gdGhpcy5fYWRkQ2hlY2soe1xuICAgICAga2luZDogXCJtYXhcIixcbiAgICAgIHZhbHVlOiBCaWdJbnQoMCksXG4gICAgICBpbmNsdXNpdmU6IHRydWUsXG4gICAgICBtZXNzYWdlOiBlcnJvclV0aWwudG9TdHJpbmcobWVzc2FnZSlcbiAgICB9KTtcbiAgfVxuICBub25uZWdhdGl2ZShtZXNzYWdlKSB7XG4gICAgcmV0dXJuIHRoaXMuX2FkZENoZWNrKHtcbiAgICAgIGtpbmQ6IFwibWluXCIsXG4gICAgICB2YWx1ZTogQmlnSW50KDApLFxuICAgICAgaW5jbHVzaXZlOiB0cnVlLFxuICAgICAgbWVzc2FnZTogZXJyb3JVdGlsLnRvU3RyaW5nKG1lc3NhZ2UpXG4gICAgfSk7XG4gIH1cbiAgbXVsdGlwbGVPZih2YWx1ZSwgbWVzc2FnZSkge1xuICAgIHJldHVybiB0aGlzLl9hZGRDaGVjayh7XG4gICAgICBraW5kOiBcIm11bHRpcGxlT2ZcIixcbiAgICAgIHZhbHVlLFxuICAgICAgbWVzc2FnZTogZXJyb3JVdGlsLnRvU3RyaW5nKG1lc3NhZ2UpXG4gICAgfSk7XG4gIH1cbiAgZ2V0IG1pblZhbHVlKCkge1xuICAgIGxldCBtaW4gPSBudWxsO1xuICAgIGZvciAoY29uc3QgY2ggb2YgdGhpcy5fZGVmLmNoZWNrcykge1xuICAgICAgaWYgKGNoLmtpbmQgPT09IFwibWluXCIpIHtcbiAgICAgICAgaWYgKG1pbiA9PT0gbnVsbCB8fCBjaC52YWx1ZSA+IG1pbilcbiAgICAgICAgICBtaW4gPSBjaC52YWx1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG1pbjtcbiAgfVxuICBnZXQgbWF4VmFsdWUoKSB7XG4gICAgbGV0IG1heCA9IG51bGw7XG4gICAgZm9yIChjb25zdCBjaCBvZiB0aGlzLl9kZWYuY2hlY2tzKSB7XG4gICAgICBpZiAoY2gua2luZCA9PT0gXCJtYXhcIikge1xuICAgICAgICBpZiAobWF4ID09PSBudWxsIHx8IGNoLnZhbHVlIDwgbWF4KVxuICAgICAgICAgIG1heCA9IGNoLnZhbHVlO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbWF4O1xuICB9XG59O1xuWm9kQmlnSW50LmNyZWF0ZSA9IChwYXJhbXMpID0+IHtcbiAgdmFyIF9hO1xuICByZXR1cm4gbmV3IFpvZEJpZ0ludCh7XG4gICAgY2hlY2tzOiBbXSxcbiAgICB0eXBlTmFtZTogWm9kRmlyc3RQYXJ0eVR5cGVLaW5kLlpvZEJpZ0ludCxcbiAgICBjb2VyY2U6IChfYSA9IHBhcmFtcyA9PT0gbnVsbCB8fCBwYXJhbXMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHBhcmFtcy5jb2VyY2UpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IGZhbHNlLFxuICAgIC4uLnByb2Nlc3NDcmVhdGVQYXJhbXMocGFyYW1zKVxuICB9KTtcbn07XG52YXIgWm9kQm9vbGVhbiA9IGNsYXNzIGV4dGVuZHMgWm9kVHlwZSB7XG4gIF9wYXJzZShpbnB1dCkge1xuICAgIGlmICh0aGlzLl9kZWYuY29lcmNlKSB7XG4gICAgICBpbnB1dC5kYXRhID0gQm9vbGVhbihpbnB1dC5kYXRhKTtcbiAgICB9XG4gICAgY29uc3QgcGFyc2VkVHlwZSA9IHRoaXMuX2dldFR5cGUoaW5wdXQpO1xuICAgIGlmIChwYXJzZWRUeXBlICE9PSBab2RQYXJzZWRUeXBlLmJvb2xlYW4pIHtcbiAgICAgIGNvbnN0IGN0eCA9IHRoaXMuX2dldE9yUmV0dXJuQ3R4KGlucHV0KTtcbiAgICAgIGFkZElzc3VlVG9Db250ZXh0KGN0eCwge1xuICAgICAgICBjb2RlOiBab2RJc3N1ZUNvZGUuaW52YWxpZF90eXBlLFxuICAgICAgICBleHBlY3RlZDogWm9kUGFyc2VkVHlwZS5ib29sZWFuLFxuICAgICAgICByZWNlaXZlZDogY3R4LnBhcnNlZFR5cGVcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIElOVkFMSUQ7XG4gICAgfVxuICAgIHJldHVybiBPSyhpbnB1dC5kYXRhKTtcbiAgfVxufTtcblpvZEJvb2xlYW4uY3JlYXRlID0gKHBhcmFtcykgPT4ge1xuICByZXR1cm4gbmV3IFpvZEJvb2xlYW4oe1xuICAgIHR5cGVOYW1lOiBab2RGaXJzdFBhcnR5VHlwZUtpbmQuWm9kQm9vbGVhbixcbiAgICBjb2VyY2U6IChwYXJhbXMgPT09IG51bGwgfHwgcGFyYW1zID09PSB2b2lkIDAgPyB2b2lkIDAgOiBwYXJhbXMuY29lcmNlKSB8fCBmYWxzZSxcbiAgICAuLi5wcm9jZXNzQ3JlYXRlUGFyYW1zKHBhcmFtcylcbiAgfSk7XG59O1xudmFyIFpvZERhdGUgPSBjbGFzcyBfWm9kRGF0ZSBleHRlbmRzIFpvZFR5cGUge1xuICBfcGFyc2UoaW5wdXQpIHtcbiAgICBpZiAodGhpcy5fZGVmLmNvZXJjZSkge1xuICAgICAgaW5wdXQuZGF0YSA9IG5ldyBEYXRlKGlucHV0LmRhdGEpO1xuICAgIH1cbiAgICBjb25zdCBwYXJzZWRUeXBlID0gdGhpcy5fZ2V0VHlwZShpbnB1dCk7XG4gICAgaWYgKHBhcnNlZFR5cGUgIT09IFpvZFBhcnNlZFR5cGUuZGF0ZSkge1xuICAgICAgY29uc3QgY3R4MiA9IHRoaXMuX2dldE9yUmV0dXJuQ3R4KGlucHV0KTtcbiAgICAgIGFkZElzc3VlVG9Db250ZXh0KGN0eDIsIHtcbiAgICAgICAgY29kZTogWm9kSXNzdWVDb2RlLmludmFsaWRfdHlwZSxcbiAgICAgICAgZXhwZWN0ZWQ6IFpvZFBhcnNlZFR5cGUuZGF0ZSxcbiAgICAgICAgcmVjZWl2ZWQ6IGN0eDIucGFyc2VkVHlwZVxuICAgICAgfSk7XG4gICAgICByZXR1cm4gSU5WQUxJRDtcbiAgICB9XG4gICAgaWYgKGlzTmFOKGlucHV0LmRhdGEuZ2V0VGltZSgpKSkge1xuICAgICAgY29uc3QgY3R4MiA9IHRoaXMuX2dldE9yUmV0dXJuQ3R4KGlucHV0KTtcbiAgICAgIGFkZElzc3VlVG9Db250ZXh0KGN0eDIsIHtcbiAgICAgICAgY29kZTogWm9kSXNzdWVDb2RlLmludmFsaWRfZGF0ZVxuICAgICAgfSk7XG4gICAgICByZXR1cm4gSU5WQUxJRDtcbiAgICB9XG4gICAgY29uc3Qgc3RhdHVzID0gbmV3IFBhcnNlU3RhdHVzKCk7XG4gICAgbGV0IGN0eCA9IHZvaWQgMDtcbiAgICBmb3IgKGNvbnN0IGNoZWNrIG9mIHRoaXMuX2RlZi5jaGVja3MpIHtcbiAgICAgIGlmIChjaGVjay5raW5kID09PSBcIm1pblwiKSB7XG4gICAgICAgIGlmIChpbnB1dC5kYXRhLmdldFRpbWUoKSA8IGNoZWNrLnZhbHVlKSB7XG4gICAgICAgICAgY3R4ID0gdGhpcy5fZ2V0T3JSZXR1cm5DdHgoaW5wdXQsIGN0eCk7XG4gICAgICAgICAgYWRkSXNzdWVUb0NvbnRleHQoY3R4LCB7XG4gICAgICAgICAgICBjb2RlOiBab2RJc3N1ZUNvZGUudG9vX3NtYWxsLFxuICAgICAgICAgICAgbWVzc2FnZTogY2hlY2subWVzc2FnZSxcbiAgICAgICAgICAgIGluY2x1c2l2ZTogdHJ1ZSxcbiAgICAgICAgICAgIGV4YWN0OiBmYWxzZSxcbiAgICAgICAgICAgIG1pbmltdW06IGNoZWNrLnZhbHVlLFxuICAgICAgICAgICAgdHlwZTogXCJkYXRlXCJcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBzdGF0dXMuZGlydHkoKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmIChjaGVjay5raW5kID09PSBcIm1heFwiKSB7XG4gICAgICAgIGlmIChpbnB1dC5kYXRhLmdldFRpbWUoKSA+IGNoZWNrLnZhbHVlKSB7XG4gICAgICAgICAgY3R4ID0gdGhpcy5fZ2V0T3JSZXR1cm5DdHgoaW5wdXQsIGN0eCk7XG4gICAgICAgICAgYWRkSXNzdWVUb0NvbnRleHQoY3R4LCB7XG4gICAgICAgICAgICBjb2RlOiBab2RJc3N1ZUNvZGUudG9vX2JpZyxcbiAgICAgICAgICAgIG1lc3NhZ2U6IGNoZWNrLm1lc3NhZ2UsXG4gICAgICAgICAgICBpbmNsdXNpdmU6IHRydWUsXG4gICAgICAgICAgICBleGFjdDogZmFsc2UsXG4gICAgICAgICAgICBtYXhpbXVtOiBjaGVjay52YWx1ZSxcbiAgICAgICAgICAgIHR5cGU6IFwiZGF0ZVwiXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgc3RhdHVzLmRpcnR5KCk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHV0aWwuYXNzZXJ0TmV2ZXIoY2hlY2spO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgc3RhdHVzOiBzdGF0dXMudmFsdWUsXG4gICAgICB2YWx1ZTogbmV3IERhdGUoaW5wdXQuZGF0YS5nZXRUaW1lKCkpXG4gICAgfTtcbiAgfVxuICBfYWRkQ2hlY2soY2hlY2spIHtcbiAgICByZXR1cm4gbmV3IF9ab2REYXRlKHtcbiAgICAgIC4uLnRoaXMuX2RlZixcbiAgICAgIGNoZWNrczogWy4uLnRoaXMuX2RlZi5jaGVja3MsIGNoZWNrXVxuICAgIH0pO1xuICB9XG4gIG1pbihtaW5EYXRlLCBtZXNzYWdlKSB7XG4gICAgcmV0dXJuIHRoaXMuX2FkZENoZWNrKHtcbiAgICAgIGtpbmQ6IFwibWluXCIsXG4gICAgICB2YWx1ZTogbWluRGF0ZS5nZXRUaW1lKCksXG4gICAgICBtZXNzYWdlOiBlcnJvclV0aWwudG9TdHJpbmcobWVzc2FnZSlcbiAgICB9KTtcbiAgfVxuICBtYXgobWF4RGF0ZSwgbWVzc2FnZSkge1xuICAgIHJldHVybiB0aGlzLl9hZGRDaGVjayh7XG4gICAgICBraW5kOiBcIm1heFwiLFxuICAgICAgdmFsdWU6IG1heERhdGUuZ2V0VGltZSgpLFxuICAgICAgbWVzc2FnZTogZXJyb3JVdGlsLnRvU3RyaW5nKG1lc3NhZ2UpXG4gICAgfSk7XG4gIH1cbiAgZ2V0IG1pbkRhdGUoKSB7XG4gICAgbGV0IG1pbiA9IG51bGw7XG4gICAgZm9yIChjb25zdCBjaCBvZiB0aGlzLl9kZWYuY2hlY2tzKSB7XG4gICAgICBpZiAoY2gua2luZCA9PT0gXCJtaW5cIikge1xuICAgICAgICBpZiAobWluID09PSBudWxsIHx8IGNoLnZhbHVlID4gbWluKVxuICAgICAgICAgIG1pbiA9IGNoLnZhbHVlO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbWluICE9IG51bGwgPyBuZXcgRGF0ZShtaW4pIDogbnVsbDtcbiAgfVxuICBnZXQgbWF4RGF0ZSgpIHtcbiAgICBsZXQgbWF4ID0gbnVsbDtcbiAgICBmb3IgKGNvbnN0IGNoIG9mIHRoaXMuX2RlZi5jaGVja3MpIHtcbiAgICAgIGlmIChjaC5raW5kID09PSBcIm1heFwiKSB7XG4gICAgICAgIGlmIChtYXggPT09IG51bGwgfHwgY2gudmFsdWUgPCBtYXgpXG4gICAgICAgICAgbWF4ID0gY2gudmFsdWU7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBtYXggIT0gbnVsbCA/IG5ldyBEYXRlKG1heCkgOiBudWxsO1xuICB9XG59O1xuWm9kRGF0ZS5jcmVhdGUgPSAocGFyYW1zKSA9PiB7XG4gIHJldHVybiBuZXcgWm9kRGF0ZSh7XG4gICAgY2hlY2tzOiBbXSxcbiAgICBjb2VyY2U6IChwYXJhbXMgPT09IG51bGwgfHwgcGFyYW1zID09PSB2b2lkIDAgPyB2b2lkIDAgOiBwYXJhbXMuY29lcmNlKSB8fCBmYWxzZSxcbiAgICB0eXBlTmFtZTogWm9kRmlyc3RQYXJ0eVR5cGVLaW5kLlpvZERhdGUsXG4gICAgLi4ucHJvY2Vzc0NyZWF0ZVBhcmFtcyhwYXJhbXMpXG4gIH0pO1xufTtcbnZhciBab2RTeW1ib2wgPSBjbGFzcyBleHRlbmRzIFpvZFR5cGUge1xuICBfcGFyc2UoaW5wdXQpIHtcbiAgICBjb25zdCBwYXJzZWRUeXBlID0gdGhpcy5fZ2V0VHlwZShpbnB1dCk7XG4gICAgaWYgKHBhcnNlZFR5cGUgIT09IFpvZFBhcnNlZFR5cGUuc3ltYm9sKSB7XG4gICAgICBjb25zdCBjdHggPSB0aGlzLl9nZXRPclJldHVybkN0eChpbnB1dCk7XG4gICAgICBhZGRJc3N1ZVRvQ29udGV4dChjdHgsIHtcbiAgICAgICAgY29kZTogWm9kSXNzdWVDb2RlLmludmFsaWRfdHlwZSxcbiAgICAgICAgZXhwZWN0ZWQ6IFpvZFBhcnNlZFR5cGUuc3ltYm9sLFxuICAgICAgICByZWNlaXZlZDogY3R4LnBhcnNlZFR5cGVcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIElOVkFMSUQ7XG4gICAgfVxuICAgIHJldHVybiBPSyhpbnB1dC5kYXRhKTtcbiAgfVxufTtcblpvZFN5bWJvbC5jcmVhdGUgPSAocGFyYW1zKSA9PiB7XG4gIHJldHVybiBuZXcgWm9kU3ltYm9sKHtcbiAgICB0eXBlTmFtZTogWm9kRmlyc3RQYXJ0eVR5cGVLaW5kLlpvZFN5bWJvbCxcbiAgICAuLi5wcm9jZXNzQ3JlYXRlUGFyYW1zKHBhcmFtcylcbiAgfSk7XG59O1xudmFyIFpvZFVuZGVmaW5lZCA9IGNsYXNzIGV4dGVuZHMgWm9kVHlwZSB7XG4gIF9wYXJzZShpbnB1dCkge1xuICAgIGNvbnN0IHBhcnNlZFR5cGUgPSB0aGlzLl9nZXRUeXBlKGlucHV0KTtcbiAgICBpZiAocGFyc2VkVHlwZSAhPT0gWm9kUGFyc2VkVHlwZS51bmRlZmluZWQpIHtcbiAgICAgIGNvbnN0IGN0eCA9IHRoaXMuX2dldE9yUmV0dXJuQ3R4KGlucHV0KTtcbiAgICAgIGFkZElzc3VlVG9Db250ZXh0KGN0eCwge1xuICAgICAgICBjb2RlOiBab2RJc3N1ZUNvZGUuaW52YWxpZF90eXBlLFxuICAgICAgICBleHBlY3RlZDogWm9kUGFyc2VkVHlwZS51bmRlZmluZWQsXG4gICAgICAgIHJlY2VpdmVkOiBjdHgucGFyc2VkVHlwZVxuICAgICAgfSk7XG4gICAgICByZXR1cm4gSU5WQUxJRDtcbiAgICB9XG4gICAgcmV0dXJuIE9LKGlucHV0LmRhdGEpO1xuICB9XG59O1xuWm9kVW5kZWZpbmVkLmNyZWF0ZSA9IChwYXJhbXMpID0+IHtcbiAgcmV0dXJuIG5ldyBab2RVbmRlZmluZWQoe1xuICAgIHR5cGVOYW1lOiBab2RGaXJzdFBhcnR5VHlwZUtpbmQuWm9kVW5kZWZpbmVkLFxuICAgIC4uLnByb2Nlc3NDcmVhdGVQYXJhbXMocGFyYW1zKVxuICB9KTtcbn07XG52YXIgWm9kTnVsbCA9IGNsYXNzIGV4dGVuZHMgWm9kVHlwZSB7XG4gIF9wYXJzZShpbnB1dCkge1xuICAgIGNvbnN0IHBhcnNlZFR5cGUgPSB0aGlzLl9nZXRUeXBlKGlucHV0KTtcbiAgICBpZiAocGFyc2VkVHlwZSAhPT0gWm9kUGFyc2VkVHlwZS5udWxsKSB7XG4gICAgICBjb25zdCBjdHggPSB0aGlzLl9nZXRPclJldHVybkN0eChpbnB1dCk7XG4gICAgICBhZGRJc3N1ZVRvQ29udGV4dChjdHgsIHtcbiAgICAgICAgY29kZTogWm9kSXNzdWVDb2RlLmludmFsaWRfdHlwZSxcbiAgICAgICAgZXhwZWN0ZWQ6IFpvZFBhcnNlZFR5cGUubnVsbCxcbiAgICAgICAgcmVjZWl2ZWQ6IGN0eC5wYXJzZWRUeXBlXG4gICAgICB9KTtcbiAgICAgIHJldHVybiBJTlZBTElEO1xuICAgIH1cbiAgICByZXR1cm4gT0soaW5wdXQuZGF0YSk7XG4gIH1cbn07XG5ab2ROdWxsLmNyZWF0ZSA9IChwYXJhbXMpID0+IHtcbiAgcmV0dXJuIG5ldyBab2ROdWxsKHtcbiAgICB0eXBlTmFtZTogWm9kRmlyc3RQYXJ0eVR5cGVLaW5kLlpvZE51bGwsXG4gICAgLi4ucHJvY2Vzc0NyZWF0ZVBhcmFtcyhwYXJhbXMpXG4gIH0pO1xufTtcbnZhciBab2RBbnkgPSBjbGFzcyBleHRlbmRzIFpvZFR5cGUge1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlciguLi5hcmd1bWVudHMpO1xuICAgIHRoaXMuX2FueSA9IHRydWU7XG4gIH1cbiAgX3BhcnNlKGlucHV0KSB7XG4gICAgcmV0dXJuIE9LKGlucHV0LmRhdGEpO1xuICB9XG59O1xuWm9kQW55LmNyZWF0ZSA9IChwYXJhbXMpID0+IHtcbiAgcmV0dXJuIG5ldyBab2RBbnkoe1xuICAgIHR5cGVOYW1lOiBab2RGaXJzdFBhcnR5VHlwZUtpbmQuWm9kQW55LFxuICAgIC4uLnByb2Nlc3NDcmVhdGVQYXJhbXMocGFyYW1zKVxuICB9KTtcbn07XG52YXIgWm9kVW5rbm93biA9IGNsYXNzIGV4dGVuZHMgWm9kVHlwZSB7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKC4uLmFyZ3VtZW50cyk7XG4gICAgdGhpcy5fdW5rbm93biA9IHRydWU7XG4gIH1cbiAgX3BhcnNlKGlucHV0KSB7XG4gICAgcmV0dXJuIE9LKGlucHV0LmRhdGEpO1xuICB9XG59O1xuWm9kVW5rbm93bi5jcmVhdGUgPSAocGFyYW1zKSA9PiB7XG4gIHJldHVybiBuZXcgWm9kVW5rbm93bih7XG4gICAgdHlwZU5hbWU6IFpvZEZpcnN0UGFydHlUeXBlS2luZC5ab2RVbmtub3duLFxuICAgIC4uLnByb2Nlc3NDcmVhdGVQYXJhbXMocGFyYW1zKVxuICB9KTtcbn07XG52YXIgWm9kTmV2ZXIgPSBjbGFzcyBleHRlbmRzIFpvZFR5cGUge1xuICBfcGFyc2UoaW5wdXQpIHtcbiAgICBjb25zdCBjdHggPSB0aGlzLl9nZXRPclJldHVybkN0eChpbnB1dCk7XG4gICAgYWRkSXNzdWVUb0NvbnRleHQoY3R4LCB7XG4gICAgICBjb2RlOiBab2RJc3N1ZUNvZGUuaW52YWxpZF90eXBlLFxuICAgICAgZXhwZWN0ZWQ6IFpvZFBhcnNlZFR5cGUubmV2ZXIsXG4gICAgICByZWNlaXZlZDogY3R4LnBhcnNlZFR5cGVcbiAgICB9KTtcbiAgICByZXR1cm4gSU5WQUxJRDtcbiAgfVxufTtcblpvZE5ldmVyLmNyZWF0ZSA9IChwYXJhbXMpID0+IHtcbiAgcmV0dXJuIG5ldyBab2ROZXZlcih7XG4gICAgdHlwZU5hbWU6IFpvZEZpcnN0UGFydHlUeXBlS2luZC5ab2ROZXZlcixcbiAgICAuLi5wcm9jZXNzQ3JlYXRlUGFyYW1zKHBhcmFtcylcbiAgfSk7XG59O1xudmFyIFpvZFZvaWQgPSBjbGFzcyBleHRlbmRzIFpvZFR5cGUge1xuICBfcGFyc2UoaW5wdXQpIHtcbiAgICBjb25zdCBwYXJzZWRUeXBlID0gdGhpcy5fZ2V0VHlwZShpbnB1dCk7XG4gICAgaWYgKHBhcnNlZFR5cGUgIT09IFpvZFBhcnNlZFR5cGUudW5kZWZpbmVkKSB7XG4gICAgICBjb25zdCBjdHggPSB0aGlzLl9nZXRPclJldHVybkN0eChpbnB1dCk7XG4gICAgICBhZGRJc3N1ZVRvQ29udGV4dChjdHgsIHtcbiAgICAgICAgY29kZTogWm9kSXNzdWVDb2RlLmludmFsaWRfdHlwZSxcbiAgICAgICAgZXhwZWN0ZWQ6IFpvZFBhcnNlZFR5cGUudm9pZCxcbiAgICAgICAgcmVjZWl2ZWQ6IGN0eC5wYXJzZWRUeXBlXG4gICAgICB9KTtcbiAgICAgIHJldHVybiBJTlZBTElEO1xuICAgIH1cbiAgICByZXR1cm4gT0soaW5wdXQuZGF0YSk7XG4gIH1cbn07XG5ab2RWb2lkLmNyZWF0ZSA9IChwYXJhbXMpID0+IHtcbiAgcmV0dXJuIG5ldyBab2RWb2lkKHtcbiAgICB0eXBlTmFtZTogWm9kRmlyc3RQYXJ0eVR5cGVLaW5kLlpvZFZvaWQsXG4gICAgLi4ucHJvY2Vzc0NyZWF0ZVBhcmFtcyhwYXJhbXMpXG4gIH0pO1xufTtcbnZhciBab2RBcnJheSA9IGNsYXNzIF9ab2RBcnJheSBleHRlbmRzIFpvZFR5cGUge1xuICBfcGFyc2UoaW5wdXQpIHtcbiAgICBjb25zdCB7IGN0eCwgc3RhdHVzIH0gPSB0aGlzLl9wcm9jZXNzSW5wdXRQYXJhbXMoaW5wdXQpO1xuICAgIGNvbnN0IGRlZiA9IHRoaXMuX2RlZjtcbiAgICBpZiAoY3R4LnBhcnNlZFR5cGUgIT09IFpvZFBhcnNlZFR5cGUuYXJyYXkpIHtcbiAgICAgIGFkZElzc3VlVG9Db250ZXh0KGN0eCwge1xuICAgICAgICBjb2RlOiBab2RJc3N1ZUNvZGUuaW52YWxpZF90eXBlLFxuICAgICAgICBleHBlY3RlZDogWm9kUGFyc2VkVHlwZS5hcnJheSxcbiAgICAgICAgcmVjZWl2ZWQ6IGN0eC5wYXJzZWRUeXBlXG4gICAgICB9KTtcbiAgICAgIHJldHVybiBJTlZBTElEO1xuICAgIH1cbiAgICBpZiAoZGVmLmV4YWN0TGVuZ3RoICE9PSBudWxsKSB7XG4gICAgICBjb25zdCB0b29CaWcgPSBjdHguZGF0YS5sZW5ndGggPiBkZWYuZXhhY3RMZW5ndGgudmFsdWU7XG4gICAgICBjb25zdCB0b29TbWFsbCA9IGN0eC5kYXRhLmxlbmd0aCA8IGRlZi5leGFjdExlbmd0aC52YWx1ZTtcbiAgICAgIGlmICh0b29CaWcgfHwgdG9vU21hbGwpIHtcbiAgICAgICAgYWRkSXNzdWVUb0NvbnRleHQoY3R4LCB7XG4gICAgICAgICAgY29kZTogdG9vQmlnID8gWm9kSXNzdWVDb2RlLnRvb19iaWcgOiBab2RJc3N1ZUNvZGUudG9vX3NtYWxsLFxuICAgICAgICAgIG1pbmltdW06IHRvb1NtYWxsID8gZGVmLmV4YWN0TGVuZ3RoLnZhbHVlIDogdm9pZCAwLFxuICAgICAgICAgIG1heGltdW06IHRvb0JpZyA/IGRlZi5leGFjdExlbmd0aC52YWx1ZSA6IHZvaWQgMCxcbiAgICAgICAgICB0eXBlOiBcImFycmF5XCIsXG4gICAgICAgICAgaW5jbHVzaXZlOiB0cnVlLFxuICAgICAgICAgIGV4YWN0OiB0cnVlLFxuICAgICAgICAgIG1lc3NhZ2U6IGRlZi5leGFjdExlbmd0aC5tZXNzYWdlXG4gICAgICAgIH0pO1xuICAgICAgICBzdGF0dXMuZGlydHkoKTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKGRlZi5taW5MZW5ndGggIT09IG51bGwpIHtcbiAgICAgIGlmIChjdHguZGF0YS5sZW5ndGggPCBkZWYubWluTGVuZ3RoLnZhbHVlKSB7XG4gICAgICAgIGFkZElzc3VlVG9Db250ZXh0KGN0eCwge1xuICAgICAgICAgIGNvZGU6IFpvZElzc3VlQ29kZS50b29fc21hbGwsXG4gICAgICAgICAgbWluaW11bTogZGVmLm1pbkxlbmd0aC52YWx1ZSxcbiAgICAgICAgICB0eXBlOiBcImFycmF5XCIsXG4gICAgICAgICAgaW5jbHVzaXZlOiB0cnVlLFxuICAgICAgICAgIGV4YWN0OiBmYWxzZSxcbiAgICAgICAgICBtZXNzYWdlOiBkZWYubWluTGVuZ3RoLm1lc3NhZ2VcbiAgICAgICAgfSk7XG4gICAgICAgIHN0YXR1cy5kaXJ0eSgpO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAoZGVmLm1heExlbmd0aCAhPT0gbnVsbCkge1xuICAgICAgaWYgKGN0eC5kYXRhLmxlbmd0aCA+IGRlZi5tYXhMZW5ndGgudmFsdWUpIHtcbiAgICAgICAgYWRkSXNzdWVUb0NvbnRleHQoY3R4LCB7XG4gICAgICAgICAgY29kZTogWm9kSXNzdWVDb2RlLnRvb19iaWcsXG4gICAgICAgICAgbWF4aW11bTogZGVmLm1heExlbmd0aC52YWx1ZSxcbiAgICAgICAgICB0eXBlOiBcImFycmF5XCIsXG4gICAgICAgICAgaW5jbHVzaXZlOiB0cnVlLFxuICAgICAgICAgIGV4YWN0OiBmYWxzZSxcbiAgICAgICAgICBtZXNzYWdlOiBkZWYubWF4TGVuZ3RoLm1lc3NhZ2VcbiAgICAgICAgfSk7XG4gICAgICAgIHN0YXR1cy5kaXJ0eSgpO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAoY3R4LmNvbW1vbi5hc3luYykge1xuICAgICAgcmV0dXJuIFByb21pc2UuYWxsKFsuLi5jdHguZGF0YV0ubWFwKChpdGVtLCBpKSA9PiB7XG4gICAgICAgIHJldHVybiBkZWYudHlwZS5fcGFyc2VBc3luYyhuZXcgUGFyc2VJbnB1dExhenlQYXRoKGN0eCwgaXRlbSwgY3R4LnBhdGgsIGkpKTtcbiAgICAgIH0pKS50aGVuKChyZXN1bHQyKSA9PiB7XG4gICAgICAgIHJldHVybiBQYXJzZVN0YXR1cy5tZXJnZUFycmF5KHN0YXR1cywgcmVzdWx0Mik7XG4gICAgICB9KTtcbiAgICB9XG4gICAgY29uc3QgcmVzdWx0ID0gWy4uLmN0eC5kYXRhXS5tYXAoKGl0ZW0sIGkpID0+IHtcbiAgICAgIHJldHVybiBkZWYudHlwZS5fcGFyc2VTeW5jKG5ldyBQYXJzZUlucHV0TGF6eVBhdGgoY3R4LCBpdGVtLCBjdHgucGF0aCwgaSkpO1xuICAgIH0pO1xuICAgIHJldHVybiBQYXJzZVN0YXR1cy5tZXJnZUFycmF5KHN0YXR1cywgcmVzdWx0KTtcbiAgfVxuICBnZXQgZWxlbWVudCgpIHtcbiAgICByZXR1cm4gdGhpcy5fZGVmLnR5cGU7XG4gIH1cbiAgbWluKG1pbkxlbmd0aCwgbWVzc2FnZSkge1xuICAgIHJldHVybiBuZXcgX1pvZEFycmF5KHtcbiAgICAgIC4uLnRoaXMuX2RlZixcbiAgICAgIG1pbkxlbmd0aDogeyB2YWx1ZTogbWluTGVuZ3RoLCBtZXNzYWdlOiBlcnJvclV0aWwudG9TdHJpbmcobWVzc2FnZSkgfVxuICAgIH0pO1xuICB9XG4gIG1heChtYXhMZW5ndGgsIG1lc3NhZ2UpIHtcbiAgICByZXR1cm4gbmV3IF9ab2RBcnJheSh7XG4gICAgICAuLi50aGlzLl9kZWYsXG4gICAgICBtYXhMZW5ndGg6IHsgdmFsdWU6IG1heExlbmd0aCwgbWVzc2FnZTogZXJyb3JVdGlsLnRvU3RyaW5nKG1lc3NhZ2UpIH1cbiAgICB9KTtcbiAgfVxuICBsZW5ndGgobGVuLCBtZXNzYWdlKSB7XG4gICAgcmV0dXJuIG5ldyBfWm9kQXJyYXkoe1xuICAgICAgLi4udGhpcy5fZGVmLFxuICAgICAgZXhhY3RMZW5ndGg6IHsgdmFsdWU6IGxlbiwgbWVzc2FnZTogZXJyb3JVdGlsLnRvU3RyaW5nKG1lc3NhZ2UpIH1cbiAgICB9KTtcbiAgfVxuICBub25lbXB0eShtZXNzYWdlKSB7XG4gICAgcmV0dXJuIHRoaXMubWluKDEsIG1lc3NhZ2UpO1xuICB9XG59O1xuWm9kQXJyYXkuY3JlYXRlID0gKHNjaGVtYSwgcGFyYW1zKSA9PiB7XG4gIHJldHVybiBuZXcgWm9kQXJyYXkoe1xuICAgIHR5cGU6IHNjaGVtYSxcbiAgICBtaW5MZW5ndGg6IG51bGwsXG4gICAgbWF4TGVuZ3RoOiBudWxsLFxuICAgIGV4YWN0TGVuZ3RoOiBudWxsLFxuICAgIHR5cGVOYW1lOiBab2RGaXJzdFBhcnR5VHlwZUtpbmQuWm9kQXJyYXksXG4gICAgLi4ucHJvY2Vzc0NyZWF0ZVBhcmFtcyhwYXJhbXMpXG4gIH0pO1xufTtcbmZ1bmN0aW9uIGRlZXBQYXJ0aWFsaWZ5KHNjaGVtYSkge1xuICBpZiAoc2NoZW1hIGluc3RhbmNlb2YgWm9kT2JqZWN0KSB7XG4gICAgY29uc3QgbmV3U2hhcGUgPSB7fTtcbiAgICBmb3IgKGNvbnN0IGtleSBpbiBzY2hlbWEuc2hhcGUpIHtcbiAgICAgIGNvbnN0IGZpZWxkU2NoZW1hID0gc2NoZW1hLnNoYXBlW2tleV07XG4gICAgICBuZXdTaGFwZVtrZXldID0gWm9kT3B0aW9uYWwuY3JlYXRlKGRlZXBQYXJ0aWFsaWZ5KGZpZWxkU2NoZW1hKSk7XG4gICAgfVxuICAgIHJldHVybiBuZXcgWm9kT2JqZWN0KHtcbiAgICAgIC4uLnNjaGVtYS5fZGVmLFxuICAgICAgc2hhcGU6ICgpID0+IG5ld1NoYXBlXG4gICAgfSk7XG4gIH0gZWxzZSBpZiAoc2NoZW1hIGluc3RhbmNlb2YgWm9kQXJyYXkpIHtcbiAgICByZXR1cm4gbmV3IFpvZEFycmF5KHtcbiAgICAgIC4uLnNjaGVtYS5fZGVmLFxuICAgICAgdHlwZTogZGVlcFBhcnRpYWxpZnkoc2NoZW1hLmVsZW1lbnQpXG4gICAgfSk7XG4gIH0gZWxzZSBpZiAoc2NoZW1hIGluc3RhbmNlb2YgWm9kT3B0aW9uYWwpIHtcbiAgICByZXR1cm4gWm9kT3B0aW9uYWwuY3JlYXRlKGRlZXBQYXJ0aWFsaWZ5KHNjaGVtYS51bndyYXAoKSkpO1xuICB9IGVsc2UgaWYgKHNjaGVtYSBpbnN0YW5jZW9mIFpvZE51bGxhYmxlKSB7XG4gICAgcmV0dXJuIFpvZE51bGxhYmxlLmNyZWF0ZShkZWVwUGFydGlhbGlmeShzY2hlbWEudW53cmFwKCkpKTtcbiAgfSBlbHNlIGlmIChzY2hlbWEgaW5zdGFuY2VvZiBab2RUdXBsZSkge1xuICAgIHJldHVybiBab2RUdXBsZS5jcmVhdGUoc2NoZW1hLml0ZW1zLm1hcCgoaXRlbSkgPT4gZGVlcFBhcnRpYWxpZnkoaXRlbSkpKTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gc2NoZW1hO1xuICB9XG59XG52YXIgWm9kT2JqZWN0ID0gY2xhc3MgX1pvZE9iamVjdCBleHRlbmRzIFpvZFR5cGUge1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlciguLi5hcmd1bWVudHMpO1xuICAgIHRoaXMuX2NhY2hlZCA9IG51bGw7XG4gICAgdGhpcy5ub25zdHJpY3QgPSB0aGlzLnBhc3N0aHJvdWdoO1xuICAgIHRoaXMuYXVnbWVudCA9IHRoaXMuZXh0ZW5kO1xuICB9XG4gIF9nZXRDYWNoZWQoKSB7XG4gICAgaWYgKHRoaXMuX2NhY2hlZCAhPT0gbnVsbClcbiAgICAgIHJldHVybiB0aGlzLl9jYWNoZWQ7XG4gICAgY29uc3Qgc2hhcGUgPSB0aGlzLl9kZWYuc2hhcGUoKTtcbiAgICBjb25zdCBrZXlzID0gdXRpbC5vYmplY3RLZXlzKHNoYXBlKTtcbiAgICByZXR1cm4gdGhpcy5fY2FjaGVkID0geyBzaGFwZSwga2V5cyB9O1xuICB9XG4gIF9wYXJzZShpbnB1dCkge1xuICAgIGNvbnN0IHBhcnNlZFR5cGUgPSB0aGlzLl9nZXRUeXBlKGlucHV0KTtcbiAgICBpZiAocGFyc2VkVHlwZSAhPT0gWm9kUGFyc2VkVHlwZS5vYmplY3QpIHtcbiAgICAgIGNvbnN0IGN0eDIgPSB0aGlzLl9nZXRPclJldHVybkN0eChpbnB1dCk7XG4gICAgICBhZGRJc3N1ZVRvQ29udGV4dChjdHgyLCB7XG4gICAgICAgIGNvZGU6IFpvZElzc3VlQ29kZS5pbnZhbGlkX3R5cGUsXG4gICAgICAgIGV4cGVjdGVkOiBab2RQYXJzZWRUeXBlLm9iamVjdCxcbiAgICAgICAgcmVjZWl2ZWQ6IGN0eDIucGFyc2VkVHlwZVxuICAgICAgfSk7XG4gICAgICByZXR1cm4gSU5WQUxJRDtcbiAgICB9XG4gICAgY29uc3QgeyBzdGF0dXMsIGN0eCB9ID0gdGhpcy5fcHJvY2Vzc0lucHV0UGFyYW1zKGlucHV0KTtcbiAgICBjb25zdCB7IHNoYXBlLCBrZXlzOiBzaGFwZUtleXMgfSA9IHRoaXMuX2dldENhY2hlZCgpO1xuICAgIGNvbnN0IGV4dHJhS2V5cyA9IFtdO1xuICAgIGlmICghKHRoaXMuX2RlZi5jYXRjaGFsbCBpbnN0YW5jZW9mIFpvZE5ldmVyICYmIHRoaXMuX2RlZi51bmtub3duS2V5cyA9PT0gXCJzdHJpcFwiKSkge1xuICAgICAgZm9yIChjb25zdCBrZXkgaW4gY3R4LmRhdGEpIHtcbiAgICAgICAgaWYgKCFzaGFwZUtleXMuaW5jbHVkZXMoa2V5KSkge1xuICAgICAgICAgIGV4dHJhS2V5cy5wdXNoKGtleSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgY29uc3QgcGFpcnMgPSBbXTtcbiAgICBmb3IgKGNvbnN0IGtleSBvZiBzaGFwZUtleXMpIHtcbiAgICAgIGNvbnN0IGtleVZhbGlkYXRvciA9IHNoYXBlW2tleV07XG4gICAgICBjb25zdCB2YWx1ZSA9IGN0eC5kYXRhW2tleV07XG4gICAgICBwYWlycy5wdXNoKHtcbiAgICAgICAga2V5OiB7IHN0YXR1czogXCJ2YWxpZFwiLCB2YWx1ZToga2V5IH0sXG4gICAgICAgIHZhbHVlOiBrZXlWYWxpZGF0b3IuX3BhcnNlKG5ldyBQYXJzZUlucHV0TGF6eVBhdGgoY3R4LCB2YWx1ZSwgY3R4LnBhdGgsIGtleSkpLFxuICAgICAgICBhbHdheXNTZXQ6IGtleSBpbiBjdHguZGF0YVxuICAgICAgfSk7XG4gICAgfVxuICAgIGlmICh0aGlzLl9kZWYuY2F0Y2hhbGwgaW5zdGFuY2VvZiBab2ROZXZlcikge1xuICAgICAgY29uc3QgdW5rbm93bktleXMgPSB0aGlzLl9kZWYudW5rbm93bktleXM7XG4gICAgICBpZiAodW5rbm93bktleXMgPT09IFwicGFzc3Rocm91Z2hcIikge1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBvZiBleHRyYUtleXMpIHtcbiAgICAgICAgICBwYWlycy5wdXNoKHtcbiAgICAgICAgICAgIGtleTogeyBzdGF0dXM6IFwidmFsaWRcIiwgdmFsdWU6IGtleSB9LFxuICAgICAgICAgICAgdmFsdWU6IHsgc3RhdHVzOiBcInZhbGlkXCIsIHZhbHVlOiBjdHguZGF0YVtrZXldIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmICh1bmtub3duS2V5cyA9PT0gXCJzdHJpY3RcIikge1xuICAgICAgICBpZiAoZXh0cmFLZXlzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICBhZGRJc3N1ZVRvQ29udGV4dChjdHgsIHtcbiAgICAgICAgICAgIGNvZGU6IFpvZElzc3VlQ29kZS51bnJlY29nbml6ZWRfa2V5cyxcbiAgICAgICAgICAgIGtleXM6IGV4dHJhS2V5c1xuICAgICAgICAgIH0pO1xuICAgICAgICAgIHN0YXR1cy5kaXJ0eSgpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKHVua25vd25LZXlzID09PSBcInN0cmlwXCIpIDtcbiAgICAgIGVsc2Uge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEludGVybmFsIFpvZE9iamVjdCBlcnJvcjogaW52YWxpZCB1bmtub3duS2V5cyB2YWx1ZS5gKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgY2F0Y2hhbGwgPSB0aGlzLl9kZWYuY2F0Y2hhbGw7XG4gICAgICBmb3IgKGNvbnN0IGtleSBvZiBleHRyYUtleXMpIHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSBjdHguZGF0YVtrZXldO1xuICAgICAgICBwYWlycy5wdXNoKHtcbiAgICAgICAgICBrZXk6IHsgc3RhdHVzOiBcInZhbGlkXCIsIHZhbHVlOiBrZXkgfSxcbiAgICAgICAgICB2YWx1ZTogY2F0Y2hhbGwuX3BhcnNlKFxuICAgICAgICAgICAgbmV3IFBhcnNlSW5wdXRMYXp5UGF0aChjdHgsIHZhbHVlLCBjdHgucGF0aCwga2V5KVxuICAgICAgICAgICAgLy8sIGN0eC5jaGlsZChrZXkpLCB2YWx1ZSwgZ2V0UGFyc2VkVHlwZSh2YWx1ZSlcbiAgICAgICAgICApLFxuICAgICAgICAgIGFsd2F5c1NldDoga2V5IGluIGN0eC5kYXRhXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAoY3R4LmNvbW1vbi5hc3luYykge1xuICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpLnRoZW4oYXN5bmMgKCkgPT4ge1xuICAgICAgICBjb25zdCBzeW5jUGFpcnMgPSBbXTtcbiAgICAgICAgZm9yIChjb25zdCBwYWlyIG9mIHBhaXJzKSB7XG4gICAgICAgICAgY29uc3Qga2V5ID0gYXdhaXQgcGFpci5rZXk7XG4gICAgICAgICAgY29uc3QgdmFsdWUgPSBhd2FpdCBwYWlyLnZhbHVlO1xuICAgICAgICAgIHN5bmNQYWlycy5wdXNoKHtcbiAgICAgICAgICAgIGtleSxcbiAgICAgICAgICAgIHZhbHVlLFxuICAgICAgICAgICAgYWx3YXlzU2V0OiBwYWlyLmFsd2F5c1NldFxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBzeW5jUGFpcnM7XG4gICAgICB9KS50aGVuKChzeW5jUGFpcnMpID0+IHtcbiAgICAgICAgcmV0dXJuIFBhcnNlU3RhdHVzLm1lcmdlT2JqZWN0U3luYyhzdGF0dXMsIHN5bmNQYWlycyk7XG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIFBhcnNlU3RhdHVzLm1lcmdlT2JqZWN0U3luYyhzdGF0dXMsIHBhaXJzKTtcbiAgICB9XG4gIH1cbiAgZ2V0IHNoYXBlKCkge1xuICAgIHJldHVybiB0aGlzLl9kZWYuc2hhcGUoKTtcbiAgfVxuICBzdHJpY3QobWVzc2FnZSkge1xuICAgIGVycm9yVXRpbC5lcnJUb09iajtcbiAgICByZXR1cm4gbmV3IF9ab2RPYmplY3Qoe1xuICAgICAgLi4udGhpcy5fZGVmLFxuICAgICAgdW5rbm93bktleXM6IFwic3RyaWN0XCIsXG4gICAgICAuLi5tZXNzYWdlICE9PSB2b2lkIDAgPyB7XG4gICAgICAgIGVycm9yTWFwOiAoaXNzdWUsIGN0eCkgPT4ge1xuICAgICAgICAgIHZhciBfYSwgX2IsIF9jLCBfZDtcbiAgICAgICAgICBjb25zdCBkZWZhdWx0RXJyb3IgPSAoX2MgPSAoX2IgPSAoX2EgPSB0aGlzLl9kZWYpLmVycm9yTWFwKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IuY2FsbChfYSwgaXNzdWUsIGN0eCkubWVzc2FnZSkgIT09IG51bGwgJiYgX2MgIT09IHZvaWQgMCA/IF9jIDogY3R4LmRlZmF1bHRFcnJvcjtcbiAgICAgICAgICBpZiAoaXNzdWUuY29kZSA9PT0gXCJ1bnJlY29nbml6ZWRfa2V5c1wiKVxuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgbWVzc2FnZTogKF9kID0gZXJyb3JVdGlsLmVyclRvT2JqKG1lc3NhZ2UpLm1lc3NhZ2UpICE9PSBudWxsICYmIF9kICE9PSB2b2lkIDAgPyBfZCA6IGRlZmF1bHRFcnJvclxuICAgICAgICAgICAgfTtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgbWVzc2FnZTogZGVmYXVsdEVycm9yXG4gICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgfSA6IHt9XG4gICAgfSk7XG4gIH1cbiAgc3RyaXAoKSB7XG4gICAgcmV0dXJuIG5ldyBfWm9kT2JqZWN0KHtcbiAgICAgIC4uLnRoaXMuX2RlZixcbiAgICAgIHVua25vd25LZXlzOiBcInN0cmlwXCJcbiAgICB9KTtcbiAgfVxuICBwYXNzdGhyb3VnaCgpIHtcbiAgICByZXR1cm4gbmV3IF9ab2RPYmplY3Qoe1xuICAgICAgLi4udGhpcy5fZGVmLFxuICAgICAgdW5rbm93bktleXM6IFwicGFzc3Rocm91Z2hcIlxuICAgIH0pO1xuICB9XG4gIC8vIGNvbnN0IEF1Z21lbnRGYWN0b3J5ID1cbiAgLy8gICA8RGVmIGV4dGVuZHMgWm9kT2JqZWN0RGVmPihkZWY6IERlZikgPT5cbiAgLy8gICA8QXVnbWVudGF0aW9uIGV4dGVuZHMgWm9kUmF3U2hhcGU+KFxuICAvLyAgICAgYXVnbWVudGF0aW9uOiBBdWdtZW50YXRpb25cbiAgLy8gICApOiBab2RPYmplY3Q8XG4gIC8vICAgICBleHRlbmRTaGFwZTxSZXR1cm5UeXBlPERlZltcInNoYXBlXCJdPiwgQXVnbWVudGF0aW9uPixcbiAgLy8gICAgIERlZltcInVua25vd25LZXlzXCJdLFxuICAvLyAgICAgRGVmW1wiY2F0Y2hhbGxcIl1cbiAgLy8gICA+ID0+IHtcbiAgLy8gICAgIHJldHVybiBuZXcgWm9kT2JqZWN0KHtcbiAgLy8gICAgICAgLi4uZGVmLFxuICAvLyAgICAgICBzaGFwZTogKCkgPT4gKHtcbiAgLy8gICAgICAgICAuLi5kZWYuc2hhcGUoKSxcbiAgLy8gICAgICAgICAuLi5hdWdtZW50YXRpb24sXG4gIC8vICAgICAgIH0pLFxuICAvLyAgICAgfSkgYXMgYW55O1xuICAvLyAgIH07XG4gIGV4dGVuZChhdWdtZW50YXRpb24pIHtcbiAgICByZXR1cm4gbmV3IF9ab2RPYmplY3Qoe1xuICAgICAgLi4udGhpcy5fZGVmLFxuICAgICAgc2hhcGU6ICgpID0+ICh7XG4gICAgICAgIC4uLnRoaXMuX2RlZi5zaGFwZSgpLFxuICAgICAgICAuLi5hdWdtZW50YXRpb25cbiAgICAgIH0pXG4gICAgfSk7XG4gIH1cbiAgLyoqXG4gICAqIFByaW9yIHRvIHpvZEAxLjAuMTIgdGhlcmUgd2FzIGEgYnVnIGluIHRoZVxuICAgKiBpbmZlcnJlZCB0eXBlIG9mIG1lcmdlZCBvYmplY3RzLiBQbGVhc2VcbiAgICogdXBncmFkZSBpZiB5b3UgYXJlIGV4cGVyaWVuY2luZyBpc3N1ZXMuXG4gICAqL1xuICBtZXJnZShtZXJnaW5nKSB7XG4gICAgY29uc3QgbWVyZ2VkID0gbmV3IF9ab2RPYmplY3Qoe1xuICAgICAgdW5rbm93bktleXM6IG1lcmdpbmcuX2RlZi51bmtub3duS2V5cyxcbiAgICAgIGNhdGNoYWxsOiBtZXJnaW5nLl9kZWYuY2F0Y2hhbGwsXG4gICAgICBzaGFwZTogKCkgPT4gKHtcbiAgICAgICAgLi4udGhpcy5fZGVmLnNoYXBlKCksXG4gICAgICAgIC4uLm1lcmdpbmcuX2RlZi5zaGFwZSgpXG4gICAgICB9KSxcbiAgICAgIHR5cGVOYW1lOiBab2RGaXJzdFBhcnR5VHlwZUtpbmQuWm9kT2JqZWN0XG4gICAgfSk7XG4gICAgcmV0dXJuIG1lcmdlZDtcbiAgfVxuICAvLyBtZXJnZTxcbiAgLy8gICBJbmNvbWluZyBleHRlbmRzIEFueVpvZE9iamVjdCxcbiAgLy8gICBBdWdtZW50YXRpb24gZXh0ZW5kcyBJbmNvbWluZ1tcInNoYXBlXCJdLFxuICAvLyAgIE5ld091dHB1dCBleHRlbmRzIHtcbiAgLy8gICAgIFtrIGluIGtleW9mIEF1Z21lbnRhdGlvbiB8IGtleW9mIE91dHB1dF06IGsgZXh0ZW5kcyBrZXlvZiBBdWdtZW50YXRpb25cbiAgLy8gICAgICAgPyBBdWdtZW50YXRpb25ba11bXCJfb3V0cHV0XCJdXG4gIC8vICAgICAgIDogayBleHRlbmRzIGtleW9mIE91dHB1dFxuICAvLyAgICAgICA/IE91dHB1dFtrXVxuICAvLyAgICAgICA6IG5ldmVyO1xuICAvLyAgIH0sXG4gIC8vICAgTmV3SW5wdXQgZXh0ZW5kcyB7XG4gIC8vICAgICBbayBpbiBrZXlvZiBBdWdtZW50YXRpb24gfCBrZXlvZiBJbnB1dF06IGsgZXh0ZW5kcyBrZXlvZiBBdWdtZW50YXRpb25cbiAgLy8gICAgICAgPyBBdWdtZW50YXRpb25ba11bXCJfaW5wdXRcIl1cbiAgLy8gICAgICAgOiBrIGV4dGVuZHMga2V5b2YgSW5wdXRcbiAgLy8gICAgICAgPyBJbnB1dFtrXVxuICAvLyAgICAgICA6IG5ldmVyO1xuICAvLyAgIH1cbiAgLy8gPihcbiAgLy8gICBtZXJnaW5nOiBJbmNvbWluZ1xuICAvLyApOiBab2RPYmplY3Q8XG4gIC8vICAgZXh0ZW5kU2hhcGU8VCwgUmV0dXJuVHlwZTxJbmNvbWluZ1tcIl9kZWZcIl1bXCJzaGFwZVwiXT4+LFxuICAvLyAgIEluY29taW5nW1wiX2RlZlwiXVtcInVua25vd25LZXlzXCJdLFxuICAvLyAgIEluY29taW5nW1wiX2RlZlwiXVtcImNhdGNoYWxsXCJdLFxuICAvLyAgIE5ld091dHB1dCxcbiAgLy8gICBOZXdJbnB1dFxuICAvLyA+IHtcbiAgLy8gICBjb25zdCBtZXJnZWQ6IGFueSA9IG5ldyBab2RPYmplY3Qoe1xuICAvLyAgICAgdW5rbm93bktleXM6IG1lcmdpbmcuX2RlZi51bmtub3duS2V5cyxcbiAgLy8gICAgIGNhdGNoYWxsOiBtZXJnaW5nLl9kZWYuY2F0Y2hhbGwsXG4gIC8vICAgICBzaGFwZTogKCkgPT5cbiAgLy8gICAgICAgb2JqZWN0VXRpbC5tZXJnZVNoYXBlcyh0aGlzLl9kZWYuc2hhcGUoKSwgbWVyZ2luZy5fZGVmLnNoYXBlKCkpLFxuICAvLyAgICAgdHlwZU5hbWU6IFpvZEZpcnN0UGFydHlUeXBlS2luZC5ab2RPYmplY3QsXG4gIC8vICAgfSkgYXMgYW55O1xuICAvLyAgIHJldHVybiBtZXJnZWQ7XG4gIC8vIH1cbiAgc2V0S2V5KGtleSwgc2NoZW1hKSB7XG4gICAgcmV0dXJuIHRoaXMuYXVnbWVudCh7IFtrZXldOiBzY2hlbWEgfSk7XG4gIH1cbiAgLy8gbWVyZ2U8SW5jb21pbmcgZXh0ZW5kcyBBbnlab2RPYmplY3Q+KFxuICAvLyAgIG1lcmdpbmc6IEluY29taW5nXG4gIC8vICk6IC8vWm9kT2JqZWN0PFQgJiBJbmNvbWluZ1tcIl9zaGFwZVwiXSwgVW5rbm93bktleXMsIENhdGNoYWxsPiA9IChtZXJnaW5nKSA9PiB7XG4gIC8vIFpvZE9iamVjdDxcbiAgLy8gICBleHRlbmRTaGFwZTxULCBSZXR1cm5UeXBlPEluY29taW5nW1wiX2RlZlwiXVtcInNoYXBlXCJdPj4sXG4gIC8vICAgSW5jb21pbmdbXCJfZGVmXCJdW1widW5rbm93bktleXNcIl0sXG4gIC8vICAgSW5jb21pbmdbXCJfZGVmXCJdW1wiY2F0Y2hhbGxcIl1cbiAgLy8gPiB7XG4gIC8vICAgLy8gY29uc3QgbWVyZ2VkU2hhcGUgPSBvYmplY3RVdGlsLm1lcmdlU2hhcGVzKFxuICAvLyAgIC8vICAgdGhpcy5fZGVmLnNoYXBlKCksXG4gIC8vICAgLy8gICBtZXJnaW5nLl9kZWYuc2hhcGUoKVxuICAvLyAgIC8vICk7XG4gIC8vICAgY29uc3QgbWVyZ2VkOiBhbnkgPSBuZXcgWm9kT2JqZWN0KHtcbiAgLy8gICAgIHVua25vd25LZXlzOiBtZXJnaW5nLl9kZWYudW5rbm93bktleXMsXG4gIC8vICAgICBjYXRjaGFsbDogbWVyZ2luZy5fZGVmLmNhdGNoYWxsLFxuICAvLyAgICAgc2hhcGU6ICgpID0+XG4gIC8vICAgICAgIG9iamVjdFV0aWwubWVyZ2VTaGFwZXModGhpcy5fZGVmLnNoYXBlKCksIG1lcmdpbmcuX2RlZi5zaGFwZSgpKSxcbiAgLy8gICAgIHR5cGVOYW1lOiBab2RGaXJzdFBhcnR5VHlwZUtpbmQuWm9kT2JqZWN0LFxuICAvLyAgIH0pIGFzIGFueTtcbiAgLy8gICByZXR1cm4gbWVyZ2VkO1xuICAvLyB9XG4gIGNhdGNoYWxsKGluZGV4KSB7XG4gICAgcmV0dXJuIG5ldyBfWm9kT2JqZWN0KHtcbiAgICAgIC4uLnRoaXMuX2RlZixcbiAgICAgIGNhdGNoYWxsOiBpbmRleFxuICAgIH0pO1xuICB9XG4gIHBpY2sobWFzaykge1xuICAgIGNvbnN0IHNoYXBlID0ge307XG4gICAgdXRpbC5vYmplY3RLZXlzKG1hc2spLmZvckVhY2goKGtleSkgPT4ge1xuICAgICAgaWYgKG1hc2tba2V5XSAmJiB0aGlzLnNoYXBlW2tleV0pIHtcbiAgICAgICAgc2hhcGVba2V5XSA9IHRoaXMuc2hhcGVba2V5XTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gbmV3IF9ab2RPYmplY3Qoe1xuICAgICAgLi4udGhpcy5fZGVmLFxuICAgICAgc2hhcGU6ICgpID0+IHNoYXBlXG4gICAgfSk7XG4gIH1cbiAgb21pdChtYXNrKSB7XG4gICAgY29uc3Qgc2hhcGUgPSB7fTtcbiAgICB1dGlsLm9iamVjdEtleXModGhpcy5zaGFwZSkuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgICBpZiAoIW1hc2tba2V5XSkge1xuICAgICAgICBzaGFwZVtrZXldID0gdGhpcy5zaGFwZVtrZXldO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiBuZXcgX1pvZE9iamVjdCh7XG4gICAgICAuLi50aGlzLl9kZWYsXG4gICAgICBzaGFwZTogKCkgPT4gc2hhcGVcbiAgICB9KTtcbiAgfVxuICAvKipcbiAgICogQGRlcHJlY2F0ZWRcbiAgICovXG4gIGRlZXBQYXJ0aWFsKCkge1xuICAgIHJldHVybiBkZWVwUGFydGlhbGlmeSh0aGlzKTtcbiAgfVxuICBwYXJ0aWFsKG1hc2spIHtcbiAgICBjb25zdCBuZXdTaGFwZSA9IHt9O1xuICAgIHV0aWwub2JqZWN0S2V5cyh0aGlzLnNoYXBlKS5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgIGNvbnN0IGZpZWxkU2NoZW1hID0gdGhpcy5zaGFwZVtrZXldO1xuICAgICAgaWYgKG1hc2sgJiYgIW1hc2tba2V5XSkge1xuICAgICAgICBuZXdTaGFwZVtrZXldID0gZmllbGRTY2hlbWE7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBuZXdTaGFwZVtrZXldID0gZmllbGRTY2hlbWEub3B0aW9uYWwoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gbmV3IF9ab2RPYmplY3Qoe1xuICAgICAgLi4udGhpcy5fZGVmLFxuICAgICAgc2hhcGU6ICgpID0+IG5ld1NoYXBlXG4gICAgfSk7XG4gIH1cbiAgcmVxdWlyZWQobWFzaykge1xuICAgIGNvbnN0IG5ld1NoYXBlID0ge307XG4gICAgdXRpbC5vYmplY3RLZXlzKHRoaXMuc2hhcGUpLmZvckVhY2goKGtleSkgPT4ge1xuICAgICAgaWYgKG1hc2sgJiYgIW1hc2tba2V5XSkge1xuICAgICAgICBuZXdTaGFwZVtrZXldID0gdGhpcy5zaGFwZVtrZXldO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgZmllbGRTY2hlbWEgPSB0aGlzLnNoYXBlW2tleV07XG4gICAgICAgIGxldCBuZXdGaWVsZCA9IGZpZWxkU2NoZW1hO1xuICAgICAgICB3aGlsZSAobmV3RmllbGQgaW5zdGFuY2VvZiBab2RPcHRpb25hbCkge1xuICAgICAgICAgIG5ld0ZpZWxkID0gbmV3RmllbGQuX2RlZi5pbm5lclR5cGU7XG4gICAgICAgIH1cbiAgICAgICAgbmV3U2hhcGVba2V5XSA9IG5ld0ZpZWxkO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiBuZXcgX1pvZE9iamVjdCh7XG4gICAgICAuLi50aGlzLl9kZWYsXG4gICAgICBzaGFwZTogKCkgPT4gbmV3U2hhcGVcbiAgICB9KTtcbiAgfVxuICBrZXlvZigpIHtcbiAgICByZXR1cm4gY3JlYXRlWm9kRW51bSh1dGlsLm9iamVjdEtleXModGhpcy5zaGFwZSkpO1xuICB9XG59O1xuWm9kT2JqZWN0LmNyZWF0ZSA9IChzaGFwZSwgcGFyYW1zKSA9PiB7XG4gIHJldHVybiBuZXcgWm9kT2JqZWN0KHtcbiAgICBzaGFwZTogKCkgPT4gc2hhcGUsXG4gICAgdW5rbm93bktleXM6IFwic3RyaXBcIixcbiAgICBjYXRjaGFsbDogWm9kTmV2ZXIuY3JlYXRlKCksXG4gICAgdHlwZU5hbWU6IFpvZEZpcnN0UGFydHlUeXBlS2luZC5ab2RPYmplY3QsXG4gICAgLi4ucHJvY2Vzc0NyZWF0ZVBhcmFtcyhwYXJhbXMpXG4gIH0pO1xufTtcblpvZE9iamVjdC5zdHJpY3RDcmVhdGUgPSAoc2hhcGUsIHBhcmFtcykgPT4ge1xuICByZXR1cm4gbmV3IFpvZE9iamVjdCh7XG4gICAgc2hhcGU6ICgpID0+IHNoYXBlLFxuICAgIHVua25vd25LZXlzOiBcInN0cmljdFwiLFxuICAgIGNhdGNoYWxsOiBab2ROZXZlci5jcmVhdGUoKSxcbiAgICB0eXBlTmFtZTogWm9kRmlyc3RQYXJ0eVR5cGVLaW5kLlpvZE9iamVjdCxcbiAgICAuLi5wcm9jZXNzQ3JlYXRlUGFyYW1zKHBhcmFtcylcbiAgfSk7XG59O1xuWm9kT2JqZWN0LmxhenljcmVhdGUgPSAoc2hhcGUsIHBhcmFtcykgPT4ge1xuICByZXR1cm4gbmV3IFpvZE9iamVjdCh7XG4gICAgc2hhcGUsXG4gICAgdW5rbm93bktleXM6IFwic3RyaXBcIixcbiAgICBjYXRjaGFsbDogWm9kTmV2ZXIuY3JlYXRlKCksXG4gICAgdHlwZU5hbWU6IFpvZEZpcnN0UGFydHlUeXBlS2luZC5ab2RPYmplY3QsXG4gICAgLi4ucHJvY2Vzc0NyZWF0ZVBhcmFtcyhwYXJhbXMpXG4gIH0pO1xufTtcbnZhciBab2RVbmlvbiA9IGNsYXNzIGV4dGVuZHMgWm9kVHlwZSB7XG4gIF9wYXJzZShpbnB1dCkge1xuICAgIGNvbnN0IHsgY3R4IH0gPSB0aGlzLl9wcm9jZXNzSW5wdXRQYXJhbXMoaW5wdXQpO1xuICAgIGNvbnN0IG9wdGlvbnMgPSB0aGlzLl9kZWYub3B0aW9ucztcbiAgICBmdW5jdGlvbiBoYW5kbGVSZXN1bHRzKHJlc3VsdHMpIHtcbiAgICAgIGZvciAoY29uc3QgcmVzdWx0IG9mIHJlc3VsdHMpIHtcbiAgICAgICAgaWYgKHJlc3VsdC5yZXN1bHQuc3RhdHVzID09PSBcInZhbGlkXCIpIHtcbiAgICAgICAgICByZXR1cm4gcmVzdWx0LnJlc3VsdDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgZm9yIChjb25zdCByZXN1bHQgb2YgcmVzdWx0cykge1xuICAgICAgICBpZiAocmVzdWx0LnJlc3VsdC5zdGF0dXMgPT09IFwiZGlydHlcIikge1xuICAgICAgICAgIGN0eC5jb21tb24uaXNzdWVzLnB1c2goLi4ucmVzdWx0LmN0eC5jb21tb24uaXNzdWVzKTtcbiAgICAgICAgICByZXR1cm4gcmVzdWx0LnJlc3VsdDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgY29uc3QgdW5pb25FcnJvcnMgPSByZXN1bHRzLm1hcCgocmVzdWx0KSA9PiBuZXcgWm9kRXJyb3IocmVzdWx0LmN0eC5jb21tb24uaXNzdWVzKSk7XG4gICAgICBhZGRJc3N1ZVRvQ29udGV4dChjdHgsIHtcbiAgICAgICAgY29kZTogWm9kSXNzdWVDb2RlLmludmFsaWRfdW5pb24sXG4gICAgICAgIHVuaW9uRXJyb3JzXG4gICAgICB9KTtcbiAgICAgIHJldHVybiBJTlZBTElEO1xuICAgIH1cbiAgICBpZiAoY3R4LmNvbW1vbi5hc3luYykge1xuICAgICAgcmV0dXJuIFByb21pc2UuYWxsKG9wdGlvbnMubWFwKGFzeW5jIChvcHRpb24pID0+IHtcbiAgICAgICAgY29uc3QgY2hpbGRDdHggPSB7XG4gICAgICAgICAgLi4uY3R4LFxuICAgICAgICAgIGNvbW1vbjoge1xuICAgICAgICAgICAgLi4uY3R4LmNvbW1vbixcbiAgICAgICAgICAgIGlzc3VlczogW11cbiAgICAgICAgICB9LFxuICAgICAgICAgIHBhcmVudDogbnVsbFxuICAgICAgICB9O1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHJlc3VsdDogYXdhaXQgb3B0aW9uLl9wYXJzZUFzeW5jKHtcbiAgICAgICAgICAgIGRhdGE6IGN0eC5kYXRhLFxuICAgICAgICAgICAgcGF0aDogY3R4LnBhdGgsXG4gICAgICAgICAgICBwYXJlbnQ6IGNoaWxkQ3R4XG4gICAgICAgICAgfSksXG4gICAgICAgICAgY3R4OiBjaGlsZEN0eFxuICAgICAgICB9O1xuICAgICAgfSkpLnRoZW4oaGFuZGxlUmVzdWx0cyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGxldCBkaXJ0eSA9IHZvaWQgMDtcbiAgICAgIGNvbnN0IGlzc3VlcyA9IFtdO1xuICAgICAgZm9yIChjb25zdCBvcHRpb24gb2Ygb3B0aW9ucykge1xuICAgICAgICBjb25zdCBjaGlsZEN0eCA9IHtcbiAgICAgICAgICAuLi5jdHgsXG4gICAgICAgICAgY29tbW9uOiB7XG4gICAgICAgICAgICAuLi5jdHguY29tbW9uLFxuICAgICAgICAgICAgaXNzdWVzOiBbXVxuICAgICAgICAgIH0sXG4gICAgICAgICAgcGFyZW50OiBudWxsXG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IG9wdGlvbi5fcGFyc2VTeW5jKHtcbiAgICAgICAgICBkYXRhOiBjdHguZGF0YSxcbiAgICAgICAgICBwYXRoOiBjdHgucGF0aCxcbiAgICAgICAgICBwYXJlbnQ6IGNoaWxkQ3R4XG4gICAgICAgIH0pO1xuICAgICAgICBpZiAocmVzdWx0LnN0YXR1cyA9PT0gXCJ2YWxpZFwiKSB7XG4gICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgfSBlbHNlIGlmIChyZXN1bHQuc3RhdHVzID09PSBcImRpcnR5XCIgJiYgIWRpcnR5KSB7XG4gICAgICAgICAgZGlydHkgPSB7IHJlc3VsdCwgY3R4OiBjaGlsZEN0eCB9O1xuICAgICAgICB9XG4gICAgICAgIGlmIChjaGlsZEN0eC5jb21tb24uaXNzdWVzLmxlbmd0aCkge1xuICAgICAgICAgIGlzc3Vlcy5wdXNoKGNoaWxkQ3R4LmNvbW1vbi5pc3N1ZXMpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoZGlydHkpIHtcbiAgICAgICAgY3R4LmNvbW1vbi5pc3N1ZXMucHVzaCguLi5kaXJ0eS5jdHguY29tbW9uLmlzc3Vlcyk7XG4gICAgICAgIHJldHVybiBkaXJ0eS5yZXN1bHQ7XG4gICAgICB9XG4gICAgICBjb25zdCB1bmlvbkVycm9ycyA9IGlzc3Vlcy5tYXAoKGlzc3VlczIpID0+IG5ldyBab2RFcnJvcihpc3N1ZXMyKSk7XG4gICAgICBhZGRJc3N1ZVRvQ29udGV4dChjdHgsIHtcbiAgICAgICAgY29kZTogWm9kSXNzdWVDb2RlLmludmFsaWRfdW5pb24sXG4gICAgICAgIHVuaW9uRXJyb3JzXG4gICAgICB9KTtcbiAgICAgIHJldHVybiBJTlZBTElEO1xuICAgIH1cbiAgfVxuICBnZXQgb3B0aW9ucygpIHtcbiAgICByZXR1cm4gdGhpcy5fZGVmLm9wdGlvbnM7XG4gIH1cbn07XG5ab2RVbmlvbi5jcmVhdGUgPSAodHlwZXMsIHBhcmFtcykgPT4ge1xuICByZXR1cm4gbmV3IFpvZFVuaW9uKHtcbiAgICBvcHRpb25zOiB0eXBlcyxcbiAgICB0eXBlTmFtZTogWm9kRmlyc3RQYXJ0eVR5cGVLaW5kLlpvZFVuaW9uLFxuICAgIC4uLnByb2Nlc3NDcmVhdGVQYXJhbXMocGFyYW1zKVxuICB9KTtcbn07XG52YXIgZ2V0RGlzY3JpbWluYXRvciA9ICh0eXBlKSA9PiB7XG4gIGlmICh0eXBlIGluc3RhbmNlb2YgWm9kTGF6eSkge1xuICAgIHJldHVybiBnZXREaXNjcmltaW5hdG9yKHR5cGUuc2NoZW1hKTtcbiAgfSBlbHNlIGlmICh0eXBlIGluc3RhbmNlb2YgWm9kRWZmZWN0cykge1xuICAgIHJldHVybiBnZXREaXNjcmltaW5hdG9yKHR5cGUuaW5uZXJUeXBlKCkpO1xuICB9IGVsc2UgaWYgKHR5cGUgaW5zdGFuY2VvZiBab2RMaXRlcmFsKSB7XG4gICAgcmV0dXJuIFt0eXBlLnZhbHVlXTtcbiAgfSBlbHNlIGlmICh0eXBlIGluc3RhbmNlb2YgWm9kRW51bSkge1xuICAgIHJldHVybiB0eXBlLm9wdGlvbnM7XG4gIH0gZWxzZSBpZiAodHlwZSBpbnN0YW5jZW9mIFpvZE5hdGl2ZUVudW0pIHtcbiAgICByZXR1cm4gdXRpbC5vYmplY3RWYWx1ZXModHlwZS5lbnVtKTtcbiAgfSBlbHNlIGlmICh0eXBlIGluc3RhbmNlb2YgWm9kRGVmYXVsdCkge1xuICAgIHJldHVybiBnZXREaXNjcmltaW5hdG9yKHR5cGUuX2RlZi5pbm5lclR5cGUpO1xuICB9IGVsc2UgaWYgKHR5cGUgaW5zdGFuY2VvZiBab2RVbmRlZmluZWQpIHtcbiAgICByZXR1cm4gW3ZvaWQgMF07XG4gIH0gZWxzZSBpZiAodHlwZSBpbnN0YW5jZW9mIFpvZE51bGwpIHtcbiAgICByZXR1cm4gW251bGxdO1xuICB9IGVsc2UgaWYgKHR5cGUgaW5zdGFuY2VvZiBab2RPcHRpb25hbCkge1xuICAgIHJldHVybiBbdm9pZCAwLCAuLi5nZXREaXNjcmltaW5hdG9yKHR5cGUudW53cmFwKCkpXTtcbiAgfSBlbHNlIGlmICh0eXBlIGluc3RhbmNlb2YgWm9kTnVsbGFibGUpIHtcbiAgICByZXR1cm4gW251bGwsIC4uLmdldERpc2NyaW1pbmF0b3IodHlwZS51bndyYXAoKSldO1xuICB9IGVsc2UgaWYgKHR5cGUgaW5zdGFuY2VvZiBab2RCcmFuZGVkKSB7XG4gICAgcmV0dXJuIGdldERpc2NyaW1pbmF0b3IodHlwZS51bndyYXAoKSk7XG4gIH0gZWxzZSBpZiAodHlwZSBpbnN0YW5jZW9mIFpvZFJlYWRvbmx5KSB7XG4gICAgcmV0dXJuIGdldERpc2NyaW1pbmF0b3IodHlwZS51bndyYXAoKSk7XG4gIH0gZWxzZSBpZiAodHlwZSBpbnN0YW5jZW9mIFpvZENhdGNoKSB7XG4gICAgcmV0dXJuIGdldERpc2NyaW1pbmF0b3IodHlwZS5fZGVmLmlubmVyVHlwZSk7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIFtdO1xuICB9XG59O1xudmFyIFpvZERpc2NyaW1pbmF0ZWRVbmlvbiA9IGNsYXNzIF9ab2REaXNjcmltaW5hdGVkVW5pb24gZXh0ZW5kcyBab2RUeXBlIHtcbiAgX3BhcnNlKGlucHV0KSB7XG4gICAgY29uc3QgeyBjdHggfSA9IHRoaXMuX3Byb2Nlc3NJbnB1dFBhcmFtcyhpbnB1dCk7XG4gICAgaWYgKGN0eC5wYXJzZWRUeXBlICE9PSBab2RQYXJzZWRUeXBlLm9iamVjdCkge1xuICAgICAgYWRkSXNzdWVUb0NvbnRleHQoY3R4LCB7XG4gICAgICAgIGNvZGU6IFpvZElzc3VlQ29kZS5pbnZhbGlkX3R5cGUsXG4gICAgICAgIGV4cGVjdGVkOiBab2RQYXJzZWRUeXBlLm9iamVjdCxcbiAgICAgICAgcmVjZWl2ZWQ6IGN0eC5wYXJzZWRUeXBlXG4gICAgICB9KTtcbiAgICAgIHJldHVybiBJTlZBTElEO1xuICAgIH1cbiAgICBjb25zdCBkaXNjcmltaW5hdG9yID0gdGhpcy5kaXNjcmltaW5hdG9yO1xuICAgIGNvbnN0IGRpc2NyaW1pbmF0b3JWYWx1ZSA9IGN0eC5kYXRhW2Rpc2NyaW1pbmF0b3JdO1xuICAgIGNvbnN0IG9wdGlvbiA9IHRoaXMub3B0aW9uc01hcC5nZXQoZGlzY3JpbWluYXRvclZhbHVlKTtcbiAgICBpZiAoIW9wdGlvbikge1xuICAgICAgYWRkSXNzdWVUb0NvbnRleHQoY3R4LCB7XG4gICAgICAgIGNvZGU6IFpvZElzc3VlQ29kZS5pbnZhbGlkX3VuaW9uX2Rpc2NyaW1pbmF0b3IsXG4gICAgICAgIG9wdGlvbnM6IEFycmF5LmZyb20odGhpcy5vcHRpb25zTWFwLmtleXMoKSksXG4gICAgICAgIHBhdGg6IFtkaXNjcmltaW5hdG9yXVxuICAgICAgfSk7XG4gICAgICByZXR1cm4gSU5WQUxJRDtcbiAgICB9XG4gICAgaWYgKGN0eC5jb21tb24uYXN5bmMpIHtcbiAgICAgIHJldHVybiBvcHRpb24uX3BhcnNlQXN5bmMoe1xuICAgICAgICBkYXRhOiBjdHguZGF0YSxcbiAgICAgICAgcGF0aDogY3R4LnBhdGgsXG4gICAgICAgIHBhcmVudDogY3R4XG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIG9wdGlvbi5fcGFyc2VTeW5jKHtcbiAgICAgICAgZGF0YTogY3R4LmRhdGEsXG4gICAgICAgIHBhdGg6IGN0eC5wYXRoLFxuICAgICAgICBwYXJlbnQ6IGN0eFxuICAgICAgfSk7XG4gICAgfVxuICB9XG4gIGdldCBkaXNjcmltaW5hdG9yKCkge1xuICAgIHJldHVybiB0aGlzLl9kZWYuZGlzY3JpbWluYXRvcjtcbiAgfVxuICBnZXQgb3B0aW9ucygpIHtcbiAgICByZXR1cm4gdGhpcy5fZGVmLm9wdGlvbnM7XG4gIH1cbiAgZ2V0IG9wdGlvbnNNYXAoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2RlZi5vcHRpb25zTWFwO1xuICB9XG4gIC8qKlxuICAgKiBUaGUgY29uc3RydWN0b3Igb2YgdGhlIGRpc2NyaW1pbmF0ZWQgdW5pb24gc2NoZW1hLiBJdHMgYmVoYXZpb3VyIGlzIHZlcnkgc2ltaWxhciB0byB0aGF0IG9mIHRoZSBub3JtYWwgei51bmlvbigpIGNvbnN0cnVjdG9yLlxuICAgKiBIb3dldmVyLCBpdCBvbmx5IGFsbG93cyBhIHVuaW9uIG9mIG9iamVjdHMsIGFsbCBvZiB3aGljaCBuZWVkIHRvIHNoYXJlIGEgZGlzY3JpbWluYXRvciBwcm9wZXJ0eS4gVGhpcyBwcm9wZXJ0eSBtdXN0XG4gICAqIGhhdmUgYSBkaWZmZXJlbnQgdmFsdWUgZm9yIGVhY2ggb2JqZWN0IGluIHRoZSB1bmlvbi5cbiAgICogQHBhcmFtIGRpc2NyaW1pbmF0b3IgdGhlIG5hbWUgb2YgdGhlIGRpc2NyaW1pbmF0b3IgcHJvcGVydHlcbiAgICogQHBhcmFtIHR5cGVzIGFuIGFycmF5IG9mIG9iamVjdCBzY2hlbWFzXG4gICAqIEBwYXJhbSBwYXJhbXNcbiAgICovXG4gIHN0YXRpYyBjcmVhdGUoZGlzY3JpbWluYXRvciwgb3B0aW9ucywgcGFyYW1zKSB7XG4gICAgY29uc3Qgb3B0aW9uc01hcCA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgTWFwKCk7XG4gICAgZm9yIChjb25zdCB0eXBlIG9mIG9wdGlvbnMpIHtcbiAgICAgIGNvbnN0IGRpc2NyaW1pbmF0b3JWYWx1ZXMgPSBnZXREaXNjcmltaW5hdG9yKHR5cGUuc2hhcGVbZGlzY3JpbWluYXRvcl0pO1xuICAgICAgaWYgKCFkaXNjcmltaW5hdG9yVmFsdWVzLmxlbmd0aCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEEgZGlzY3JpbWluYXRvciB2YWx1ZSBmb3Iga2V5IFxcYCR7ZGlzY3JpbWluYXRvcn1cXGAgY291bGQgbm90IGJlIGV4dHJhY3RlZCBmcm9tIGFsbCBzY2hlbWEgb3B0aW9uc2ApO1xuICAgICAgfVxuICAgICAgZm9yIChjb25zdCB2YWx1ZSBvZiBkaXNjcmltaW5hdG9yVmFsdWVzKSB7XG4gICAgICAgIGlmIChvcHRpb25zTWFwLmhhcyh2YWx1ZSkpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYERpc2NyaW1pbmF0b3IgcHJvcGVydHkgJHtTdHJpbmcoZGlzY3JpbWluYXRvcil9IGhhcyBkdXBsaWNhdGUgdmFsdWUgJHtTdHJpbmcodmFsdWUpfWApO1xuICAgICAgICB9XG4gICAgICAgIG9wdGlvbnNNYXAuc2V0KHZhbHVlLCB0eXBlKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG5ldyBfWm9kRGlzY3JpbWluYXRlZFVuaW9uKHtcbiAgICAgIHR5cGVOYW1lOiBab2RGaXJzdFBhcnR5VHlwZUtpbmQuWm9kRGlzY3JpbWluYXRlZFVuaW9uLFxuICAgICAgZGlzY3JpbWluYXRvcixcbiAgICAgIG9wdGlvbnMsXG4gICAgICBvcHRpb25zTWFwLFxuICAgICAgLi4ucHJvY2Vzc0NyZWF0ZVBhcmFtcyhwYXJhbXMpXG4gICAgfSk7XG4gIH1cbn07XG5mdW5jdGlvbiBtZXJnZVZhbHVlcyhhLCBiKSB7XG4gIGNvbnN0IGFUeXBlID0gZ2V0UGFyc2VkVHlwZShhKTtcbiAgY29uc3QgYlR5cGUgPSBnZXRQYXJzZWRUeXBlKGIpO1xuICBpZiAoYSA9PT0gYikge1xuICAgIHJldHVybiB7IHZhbGlkOiB0cnVlLCBkYXRhOiBhIH07XG4gIH0gZWxzZSBpZiAoYVR5cGUgPT09IFpvZFBhcnNlZFR5cGUub2JqZWN0ICYmIGJUeXBlID09PSBab2RQYXJzZWRUeXBlLm9iamVjdCkge1xuICAgIGNvbnN0IGJLZXlzID0gdXRpbC5vYmplY3RLZXlzKGIpO1xuICAgIGNvbnN0IHNoYXJlZEtleXMgPSB1dGlsLm9iamVjdEtleXMoYSkuZmlsdGVyKChrZXkpID0+IGJLZXlzLmluZGV4T2Yoa2V5KSAhPT0gLTEpO1xuICAgIGNvbnN0IG5ld09iaiA9IHsgLi4uYSwgLi4uYiB9O1xuICAgIGZvciAoY29uc3Qga2V5IG9mIHNoYXJlZEtleXMpIHtcbiAgICAgIGNvbnN0IHNoYXJlZFZhbHVlID0gbWVyZ2VWYWx1ZXMoYVtrZXldLCBiW2tleV0pO1xuICAgICAgaWYgKCFzaGFyZWRWYWx1ZS52YWxpZCkge1xuICAgICAgICByZXR1cm4geyB2YWxpZDogZmFsc2UgfTtcbiAgICAgIH1cbiAgICAgIG5ld09ialtrZXldID0gc2hhcmVkVmFsdWUuZGF0YTtcbiAgICB9XG4gICAgcmV0dXJuIHsgdmFsaWQ6IHRydWUsIGRhdGE6IG5ld09iaiB9O1xuICB9IGVsc2UgaWYgKGFUeXBlID09PSBab2RQYXJzZWRUeXBlLmFycmF5ICYmIGJUeXBlID09PSBab2RQYXJzZWRUeXBlLmFycmF5KSB7XG4gICAgaWYgKGEubGVuZ3RoICE9PSBiLmxlbmd0aCkge1xuICAgICAgcmV0dXJuIHsgdmFsaWQ6IGZhbHNlIH07XG4gICAgfVxuICAgIGNvbnN0IG5ld0FycmF5ID0gW107XG4gICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IGEubGVuZ3RoOyBpbmRleCsrKSB7XG4gICAgICBjb25zdCBpdGVtQSA9IGFbaW5kZXhdO1xuICAgICAgY29uc3QgaXRlbUIgPSBiW2luZGV4XTtcbiAgICAgIGNvbnN0IHNoYXJlZFZhbHVlID0gbWVyZ2VWYWx1ZXMoaXRlbUEsIGl0ZW1CKTtcbiAgICAgIGlmICghc2hhcmVkVmFsdWUudmFsaWQpIHtcbiAgICAgICAgcmV0dXJuIHsgdmFsaWQ6IGZhbHNlIH07XG4gICAgICB9XG4gICAgICBuZXdBcnJheS5wdXNoKHNoYXJlZFZhbHVlLmRhdGEpO1xuICAgIH1cbiAgICByZXR1cm4geyB2YWxpZDogdHJ1ZSwgZGF0YTogbmV3QXJyYXkgfTtcbiAgfSBlbHNlIGlmIChhVHlwZSA9PT0gWm9kUGFyc2VkVHlwZS5kYXRlICYmIGJUeXBlID09PSBab2RQYXJzZWRUeXBlLmRhdGUgJiYgK2EgPT09ICtiKSB7XG4gICAgcmV0dXJuIHsgdmFsaWQ6IHRydWUsIGRhdGE6IGEgfTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4geyB2YWxpZDogZmFsc2UgfTtcbiAgfVxufVxudmFyIFpvZEludGVyc2VjdGlvbiA9IGNsYXNzIGV4dGVuZHMgWm9kVHlwZSB7XG4gIF9wYXJzZShpbnB1dCkge1xuICAgIGNvbnN0IHsgc3RhdHVzLCBjdHggfSA9IHRoaXMuX3Byb2Nlc3NJbnB1dFBhcmFtcyhpbnB1dCk7XG4gICAgY29uc3QgaGFuZGxlUGFyc2VkID0gKHBhcnNlZExlZnQsIHBhcnNlZFJpZ2h0KSA9PiB7XG4gICAgICBpZiAoaXNBYm9ydGVkKHBhcnNlZExlZnQpIHx8IGlzQWJvcnRlZChwYXJzZWRSaWdodCkpIHtcbiAgICAgICAgcmV0dXJuIElOVkFMSUQ7XG4gICAgICB9XG4gICAgICBjb25zdCBtZXJnZWQgPSBtZXJnZVZhbHVlcyhwYXJzZWRMZWZ0LnZhbHVlLCBwYXJzZWRSaWdodC52YWx1ZSk7XG4gICAgICBpZiAoIW1lcmdlZC52YWxpZCkge1xuICAgICAgICBhZGRJc3N1ZVRvQ29udGV4dChjdHgsIHtcbiAgICAgICAgICBjb2RlOiBab2RJc3N1ZUNvZGUuaW52YWxpZF9pbnRlcnNlY3Rpb25fdHlwZXNcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBJTlZBTElEO1xuICAgICAgfVxuICAgICAgaWYgKGlzRGlydHkocGFyc2VkTGVmdCkgfHwgaXNEaXJ0eShwYXJzZWRSaWdodCkpIHtcbiAgICAgICAgc3RhdHVzLmRpcnR5KCk7XG4gICAgICB9XG4gICAgICByZXR1cm4geyBzdGF0dXM6IHN0YXR1cy52YWx1ZSwgdmFsdWU6IG1lcmdlZC5kYXRhIH07XG4gICAgfTtcbiAgICBpZiAoY3R4LmNvbW1vbi5hc3luYykge1xuICAgICAgcmV0dXJuIFByb21pc2UuYWxsKFtcbiAgICAgICAgdGhpcy5fZGVmLmxlZnQuX3BhcnNlQXN5bmMoe1xuICAgICAgICAgIGRhdGE6IGN0eC5kYXRhLFxuICAgICAgICAgIHBhdGg6IGN0eC5wYXRoLFxuICAgICAgICAgIHBhcmVudDogY3R4XG4gICAgICAgIH0pLFxuICAgICAgICB0aGlzLl9kZWYucmlnaHQuX3BhcnNlQXN5bmMoe1xuICAgICAgICAgIGRhdGE6IGN0eC5kYXRhLFxuICAgICAgICAgIHBhdGg6IGN0eC5wYXRoLFxuICAgICAgICAgIHBhcmVudDogY3R4XG4gICAgICAgIH0pXG4gICAgICBdKS50aGVuKChbbGVmdCwgcmlnaHRdKSA9PiBoYW5kbGVQYXJzZWQobGVmdCwgcmlnaHQpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGhhbmRsZVBhcnNlZCh0aGlzLl9kZWYubGVmdC5fcGFyc2VTeW5jKHtcbiAgICAgICAgZGF0YTogY3R4LmRhdGEsXG4gICAgICAgIHBhdGg6IGN0eC5wYXRoLFxuICAgICAgICBwYXJlbnQ6IGN0eFxuICAgICAgfSksIHRoaXMuX2RlZi5yaWdodC5fcGFyc2VTeW5jKHtcbiAgICAgICAgZGF0YTogY3R4LmRhdGEsXG4gICAgICAgIHBhdGg6IGN0eC5wYXRoLFxuICAgICAgICBwYXJlbnQ6IGN0eFxuICAgICAgfSkpO1xuICAgIH1cbiAgfVxufTtcblpvZEludGVyc2VjdGlvbi5jcmVhdGUgPSAobGVmdCwgcmlnaHQsIHBhcmFtcykgPT4ge1xuICByZXR1cm4gbmV3IFpvZEludGVyc2VjdGlvbih7XG4gICAgbGVmdCxcbiAgICByaWdodCxcbiAgICB0eXBlTmFtZTogWm9kRmlyc3RQYXJ0eVR5cGVLaW5kLlpvZEludGVyc2VjdGlvbixcbiAgICAuLi5wcm9jZXNzQ3JlYXRlUGFyYW1zKHBhcmFtcylcbiAgfSk7XG59O1xudmFyIFpvZFR1cGxlID0gY2xhc3MgX1pvZFR1cGxlIGV4dGVuZHMgWm9kVHlwZSB7XG4gIF9wYXJzZShpbnB1dCkge1xuICAgIGNvbnN0IHsgc3RhdHVzLCBjdHggfSA9IHRoaXMuX3Byb2Nlc3NJbnB1dFBhcmFtcyhpbnB1dCk7XG4gICAgaWYgKGN0eC5wYXJzZWRUeXBlICE9PSBab2RQYXJzZWRUeXBlLmFycmF5KSB7XG4gICAgICBhZGRJc3N1ZVRvQ29udGV4dChjdHgsIHtcbiAgICAgICAgY29kZTogWm9kSXNzdWVDb2RlLmludmFsaWRfdHlwZSxcbiAgICAgICAgZXhwZWN0ZWQ6IFpvZFBhcnNlZFR5cGUuYXJyYXksXG4gICAgICAgIHJlY2VpdmVkOiBjdHgucGFyc2VkVHlwZVxuICAgICAgfSk7XG4gICAgICByZXR1cm4gSU5WQUxJRDtcbiAgICB9XG4gICAgaWYgKGN0eC5kYXRhLmxlbmd0aCA8IHRoaXMuX2RlZi5pdGVtcy5sZW5ndGgpIHtcbiAgICAgIGFkZElzc3VlVG9Db250ZXh0KGN0eCwge1xuICAgICAgICBjb2RlOiBab2RJc3N1ZUNvZGUudG9vX3NtYWxsLFxuICAgICAgICBtaW5pbXVtOiB0aGlzLl9kZWYuaXRlbXMubGVuZ3RoLFxuICAgICAgICBpbmNsdXNpdmU6IHRydWUsXG4gICAgICAgIGV4YWN0OiBmYWxzZSxcbiAgICAgICAgdHlwZTogXCJhcnJheVwiXG4gICAgICB9KTtcbiAgICAgIHJldHVybiBJTlZBTElEO1xuICAgIH1cbiAgICBjb25zdCByZXN0ID0gdGhpcy5fZGVmLnJlc3Q7XG4gICAgaWYgKCFyZXN0ICYmIGN0eC5kYXRhLmxlbmd0aCA+IHRoaXMuX2RlZi5pdGVtcy5sZW5ndGgpIHtcbiAgICAgIGFkZElzc3VlVG9Db250ZXh0KGN0eCwge1xuICAgICAgICBjb2RlOiBab2RJc3N1ZUNvZGUudG9vX2JpZyxcbiAgICAgICAgbWF4aW11bTogdGhpcy5fZGVmLml0ZW1zLmxlbmd0aCxcbiAgICAgICAgaW5jbHVzaXZlOiB0cnVlLFxuICAgICAgICBleGFjdDogZmFsc2UsXG4gICAgICAgIHR5cGU6IFwiYXJyYXlcIlxuICAgICAgfSk7XG4gICAgICBzdGF0dXMuZGlydHkoKTtcbiAgICB9XG4gICAgY29uc3QgaXRlbXMgPSBbLi4uY3R4LmRhdGFdLm1hcCgoaXRlbSwgaXRlbUluZGV4KSA9PiB7XG4gICAgICBjb25zdCBzY2hlbWEgPSB0aGlzLl9kZWYuaXRlbXNbaXRlbUluZGV4XSB8fCB0aGlzLl9kZWYucmVzdDtcbiAgICAgIGlmICghc2NoZW1hKVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIHJldHVybiBzY2hlbWEuX3BhcnNlKG5ldyBQYXJzZUlucHV0TGF6eVBhdGgoY3R4LCBpdGVtLCBjdHgucGF0aCwgaXRlbUluZGV4KSk7XG4gICAgfSkuZmlsdGVyKCh4KSA9PiAhIXgpO1xuICAgIGlmIChjdHguY29tbW9uLmFzeW5jKSB7XG4gICAgICByZXR1cm4gUHJvbWlzZS5hbGwoaXRlbXMpLnRoZW4oKHJlc3VsdHMpID0+IHtcbiAgICAgICAgcmV0dXJuIFBhcnNlU3RhdHVzLm1lcmdlQXJyYXkoc3RhdHVzLCByZXN1bHRzKTtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gUGFyc2VTdGF0dXMubWVyZ2VBcnJheShzdGF0dXMsIGl0ZW1zKTtcbiAgICB9XG4gIH1cbiAgZ2V0IGl0ZW1zKCkge1xuICAgIHJldHVybiB0aGlzLl9kZWYuaXRlbXM7XG4gIH1cbiAgcmVzdChyZXN0KSB7XG4gICAgcmV0dXJuIG5ldyBfWm9kVHVwbGUoe1xuICAgICAgLi4udGhpcy5fZGVmLFxuICAgICAgcmVzdFxuICAgIH0pO1xuICB9XG59O1xuWm9kVHVwbGUuY3JlYXRlID0gKHNjaGVtYXMsIHBhcmFtcykgPT4ge1xuICBpZiAoIUFycmF5LmlzQXJyYXkoc2NoZW1hcykpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJZb3UgbXVzdCBwYXNzIGFuIGFycmF5IG9mIHNjaGVtYXMgdG8gei50dXBsZShbIC4uLiBdKVwiKTtcbiAgfVxuICByZXR1cm4gbmV3IFpvZFR1cGxlKHtcbiAgICBpdGVtczogc2NoZW1hcyxcbiAgICB0eXBlTmFtZTogWm9kRmlyc3RQYXJ0eVR5cGVLaW5kLlpvZFR1cGxlLFxuICAgIHJlc3Q6IG51bGwsXG4gICAgLi4ucHJvY2Vzc0NyZWF0ZVBhcmFtcyhwYXJhbXMpXG4gIH0pO1xufTtcbnZhciBab2RSZWNvcmQgPSBjbGFzcyBfWm9kUmVjb3JkIGV4dGVuZHMgWm9kVHlwZSB7XG4gIGdldCBrZXlTY2hlbWEoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2RlZi5rZXlUeXBlO1xuICB9XG4gIGdldCB2YWx1ZVNjaGVtYSgpIHtcbiAgICByZXR1cm4gdGhpcy5fZGVmLnZhbHVlVHlwZTtcbiAgfVxuICBfcGFyc2UoaW5wdXQpIHtcbiAgICBjb25zdCB7IHN0YXR1cywgY3R4IH0gPSB0aGlzLl9wcm9jZXNzSW5wdXRQYXJhbXMoaW5wdXQpO1xuICAgIGlmIChjdHgucGFyc2VkVHlwZSAhPT0gWm9kUGFyc2VkVHlwZS5vYmplY3QpIHtcbiAgICAgIGFkZElzc3VlVG9Db250ZXh0KGN0eCwge1xuICAgICAgICBjb2RlOiBab2RJc3N1ZUNvZGUuaW52YWxpZF90eXBlLFxuICAgICAgICBleHBlY3RlZDogWm9kUGFyc2VkVHlwZS5vYmplY3QsXG4gICAgICAgIHJlY2VpdmVkOiBjdHgucGFyc2VkVHlwZVxuICAgICAgfSk7XG4gICAgICByZXR1cm4gSU5WQUxJRDtcbiAgICB9XG4gICAgY29uc3QgcGFpcnMgPSBbXTtcbiAgICBjb25zdCBrZXlUeXBlID0gdGhpcy5fZGVmLmtleVR5cGU7XG4gICAgY29uc3QgdmFsdWVUeXBlID0gdGhpcy5fZGVmLnZhbHVlVHlwZTtcbiAgICBmb3IgKGNvbnN0IGtleSBpbiBjdHguZGF0YSkge1xuICAgICAgcGFpcnMucHVzaCh7XG4gICAgICAgIGtleToga2V5VHlwZS5fcGFyc2UobmV3IFBhcnNlSW5wdXRMYXp5UGF0aChjdHgsIGtleSwgY3R4LnBhdGgsIGtleSkpLFxuICAgICAgICB2YWx1ZTogdmFsdWVUeXBlLl9wYXJzZShuZXcgUGFyc2VJbnB1dExhenlQYXRoKGN0eCwgY3R4LmRhdGFba2V5XSwgY3R4LnBhdGgsIGtleSkpLFxuICAgICAgICBhbHdheXNTZXQ6IGtleSBpbiBjdHguZGF0YVxuICAgICAgfSk7XG4gICAgfVxuICAgIGlmIChjdHguY29tbW9uLmFzeW5jKSB7XG4gICAgICByZXR1cm4gUGFyc2VTdGF0dXMubWVyZ2VPYmplY3RBc3luYyhzdGF0dXMsIHBhaXJzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIFBhcnNlU3RhdHVzLm1lcmdlT2JqZWN0U3luYyhzdGF0dXMsIHBhaXJzKTtcbiAgICB9XG4gIH1cbiAgZ2V0IGVsZW1lbnQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2RlZi52YWx1ZVR5cGU7XG4gIH1cbiAgc3RhdGljIGNyZWF0ZShmaXJzdCwgc2Vjb25kLCB0aGlyZCkge1xuICAgIGlmIChzZWNvbmQgaW5zdGFuY2VvZiBab2RUeXBlKSB7XG4gICAgICByZXR1cm4gbmV3IF9ab2RSZWNvcmQoe1xuICAgICAgICBrZXlUeXBlOiBmaXJzdCxcbiAgICAgICAgdmFsdWVUeXBlOiBzZWNvbmQsXG4gICAgICAgIHR5cGVOYW1lOiBab2RGaXJzdFBhcnR5VHlwZUtpbmQuWm9kUmVjb3JkLFxuICAgICAgICAuLi5wcm9jZXNzQ3JlYXRlUGFyYW1zKHRoaXJkKVxuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiBuZXcgX1pvZFJlY29yZCh7XG4gICAgICBrZXlUeXBlOiBab2RTdHJpbmcuY3JlYXRlKCksXG4gICAgICB2YWx1ZVR5cGU6IGZpcnN0LFxuICAgICAgdHlwZU5hbWU6IFpvZEZpcnN0UGFydHlUeXBlS2luZC5ab2RSZWNvcmQsXG4gICAgICAuLi5wcm9jZXNzQ3JlYXRlUGFyYW1zKHNlY29uZClcbiAgICB9KTtcbiAgfVxufTtcbnZhciBab2RNYXAgPSBjbGFzcyBleHRlbmRzIFpvZFR5cGUge1xuICBnZXQga2V5U2NoZW1hKCkge1xuICAgIHJldHVybiB0aGlzLl9kZWYua2V5VHlwZTtcbiAgfVxuICBnZXQgdmFsdWVTY2hlbWEoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2RlZi52YWx1ZVR5cGU7XG4gIH1cbiAgX3BhcnNlKGlucHV0KSB7XG4gICAgY29uc3QgeyBzdGF0dXMsIGN0eCB9ID0gdGhpcy5fcHJvY2Vzc0lucHV0UGFyYW1zKGlucHV0KTtcbiAgICBpZiAoY3R4LnBhcnNlZFR5cGUgIT09IFpvZFBhcnNlZFR5cGUubWFwKSB7XG4gICAgICBhZGRJc3N1ZVRvQ29udGV4dChjdHgsIHtcbiAgICAgICAgY29kZTogWm9kSXNzdWVDb2RlLmludmFsaWRfdHlwZSxcbiAgICAgICAgZXhwZWN0ZWQ6IFpvZFBhcnNlZFR5cGUubWFwLFxuICAgICAgICByZWNlaXZlZDogY3R4LnBhcnNlZFR5cGVcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIElOVkFMSUQ7XG4gICAgfVxuICAgIGNvbnN0IGtleVR5cGUgPSB0aGlzLl9kZWYua2V5VHlwZTtcbiAgICBjb25zdCB2YWx1ZVR5cGUgPSB0aGlzLl9kZWYudmFsdWVUeXBlO1xuICAgIGNvbnN0IHBhaXJzID0gWy4uLmN0eC5kYXRhLmVudHJpZXMoKV0ubWFwKChba2V5LCB2YWx1ZV0sIGluZGV4KSA9PiB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBrZXk6IGtleVR5cGUuX3BhcnNlKG5ldyBQYXJzZUlucHV0TGF6eVBhdGgoY3R4LCBrZXksIGN0eC5wYXRoLCBbaW5kZXgsIFwia2V5XCJdKSksXG4gICAgICAgIHZhbHVlOiB2YWx1ZVR5cGUuX3BhcnNlKG5ldyBQYXJzZUlucHV0TGF6eVBhdGgoY3R4LCB2YWx1ZSwgY3R4LnBhdGgsIFtpbmRleCwgXCJ2YWx1ZVwiXSkpXG4gICAgICB9O1xuICAgIH0pO1xuICAgIGlmIChjdHguY29tbW9uLmFzeW5jKSB7XG4gICAgICBjb25zdCBmaW5hbE1hcCA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgTWFwKCk7XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCkudGhlbihhc3luYyAoKSA9PiB7XG4gICAgICAgIGZvciAoY29uc3QgcGFpciBvZiBwYWlycykge1xuICAgICAgICAgIGNvbnN0IGtleSA9IGF3YWl0IHBhaXIua2V5O1xuICAgICAgICAgIGNvbnN0IHZhbHVlID0gYXdhaXQgcGFpci52YWx1ZTtcbiAgICAgICAgICBpZiAoa2V5LnN0YXR1cyA9PT0gXCJhYm9ydGVkXCIgfHwgdmFsdWUuc3RhdHVzID09PSBcImFib3J0ZWRcIikge1xuICAgICAgICAgICAgcmV0dXJuIElOVkFMSUQ7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChrZXkuc3RhdHVzID09PSBcImRpcnR5XCIgfHwgdmFsdWUuc3RhdHVzID09PSBcImRpcnR5XCIpIHtcbiAgICAgICAgICAgIHN0YXR1cy5kaXJ0eSgpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBmaW5hbE1hcC5zZXQoa2V5LnZhbHVlLCB2YWx1ZS52YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHsgc3RhdHVzOiBzdGF0dXMudmFsdWUsIHZhbHVlOiBmaW5hbE1hcCB9O1xuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IGZpbmFsTWFwID0gLyogQF9fUFVSRV9fICovIG5ldyBNYXAoKTtcbiAgICAgIGZvciAoY29uc3QgcGFpciBvZiBwYWlycykge1xuICAgICAgICBjb25zdCBrZXkgPSBwYWlyLmtleTtcbiAgICAgICAgY29uc3QgdmFsdWUgPSBwYWlyLnZhbHVlO1xuICAgICAgICBpZiAoa2V5LnN0YXR1cyA9PT0gXCJhYm9ydGVkXCIgfHwgdmFsdWUuc3RhdHVzID09PSBcImFib3J0ZWRcIikge1xuICAgICAgICAgIHJldHVybiBJTlZBTElEO1xuICAgICAgICB9XG4gICAgICAgIGlmIChrZXkuc3RhdHVzID09PSBcImRpcnR5XCIgfHwgdmFsdWUuc3RhdHVzID09PSBcImRpcnR5XCIpIHtcbiAgICAgICAgICBzdGF0dXMuZGlydHkoKTtcbiAgICAgICAgfVxuICAgICAgICBmaW5hbE1hcC5zZXQoa2V5LnZhbHVlLCB2YWx1ZS52YWx1ZSk7XG4gICAgICB9XG4gICAgICByZXR1cm4geyBzdGF0dXM6IHN0YXR1cy52YWx1ZSwgdmFsdWU6IGZpbmFsTWFwIH07XG4gICAgfVxuICB9XG59O1xuWm9kTWFwLmNyZWF0ZSA9IChrZXlUeXBlLCB2YWx1ZVR5cGUsIHBhcmFtcykgPT4ge1xuICByZXR1cm4gbmV3IFpvZE1hcCh7XG4gICAgdmFsdWVUeXBlLFxuICAgIGtleVR5cGUsXG4gICAgdHlwZU5hbWU6IFpvZEZpcnN0UGFydHlUeXBlS2luZC5ab2RNYXAsXG4gICAgLi4ucHJvY2Vzc0NyZWF0ZVBhcmFtcyhwYXJhbXMpXG4gIH0pO1xufTtcbnZhciBab2RTZXQgPSBjbGFzcyBfWm9kU2V0IGV4dGVuZHMgWm9kVHlwZSB7XG4gIF9wYXJzZShpbnB1dCkge1xuICAgIGNvbnN0IHsgc3RhdHVzLCBjdHggfSA9IHRoaXMuX3Byb2Nlc3NJbnB1dFBhcmFtcyhpbnB1dCk7XG4gICAgaWYgKGN0eC5wYXJzZWRUeXBlICE9PSBab2RQYXJzZWRUeXBlLnNldCkge1xuICAgICAgYWRkSXNzdWVUb0NvbnRleHQoY3R4LCB7XG4gICAgICAgIGNvZGU6IFpvZElzc3VlQ29kZS5pbnZhbGlkX3R5cGUsXG4gICAgICAgIGV4cGVjdGVkOiBab2RQYXJzZWRUeXBlLnNldCxcbiAgICAgICAgcmVjZWl2ZWQ6IGN0eC5wYXJzZWRUeXBlXG4gICAgICB9KTtcbiAgICAgIHJldHVybiBJTlZBTElEO1xuICAgIH1cbiAgICBjb25zdCBkZWYgPSB0aGlzLl9kZWY7XG4gICAgaWYgKGRlZi5taW5TaXplICE9PSBudWxsKSB7XG4gICAgICBpZiAoY3R4LmRhdGEuc2l6ZSA8IGRlZi5taW5TaXplLnZhbHVlKSB7XG4gICAgICAgIGFkZElzc3VlVG9Db250ZXh0KGN0eCwge1xuICAgICAgICAgIGNvZGU6IFpvZElzc3VlQ29kZS50b29fc21hbGwsXG4gICAgICAgICAgbWluaW11bTogZGVmLm1pblNpemUudmFsdWUsXG4gICAgICAgICAgdHlwZTogXCJzZXRcIixcbiAgICAgICAgICBpbmNsdXNpdmU6IHRydWUsXG4gICAgICAgICAgZXhhY3Q6IGZhbHNlLFxuICAgICAgICAgIG1lc3NhZ2U6IGRlZi5taW5TaXplLm1lc3NhZ2VcbiAgICAgICAgfSk7XG4gICAgICAgIHN0YXR1cy5kaXJ0eSgpO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAoZGVmLm1heFNpemUgIT09IG51bGwpIHtcbiAgICAgIGlmIChjdHguZGF0YS5zaXplID4gZGVmLm1heFNpemUudmFsdWUpIHtcbiAgICAgICAgYWRkSXNzdWVUb0NvbnRleHQoY3R4LCB7XG4gICAgICAgICAgY29kZTogWm9kSXNzdWVDb2RlLnRvb19iaWcsXG4gICAgICAgICAgbWF4aW11bTogZGVmLm1heFNpemUudmFsdWUsXG4gICAgICAgICAgdHlwZTogXCJzZXRcIixcbiAgICAgICAgICBpbmNsdXNpdmU6IHRydWUsXG4gICAgICAgICAgZXhhY3Q6IGZhbHNlLFxuICAgICAgICAgIG1lc3NhZ2U6IGRlZi5tYXhTaXplLm1lc3NhZ2VcbiAgICAgICAgfSk7XG4gICAgICAgIHN0YXR1cy5kaXJ0eSgpO1xuICAgICAgfVxuICAgIH1cbiAgICBjb25zdCB2YWx1ZVR5cGUgPSB0aGlzLl9kZWYudmFsdWVUeXBlO1xuICAgIGZ1bmN0aW9uIGZpbmFsaXplU2V0KGVsZW1lbnRzMikge1xuICAgICAgY29uc3QgcGFyc2VkU2V0ID0gLyogQF9fUFVSRV9fICovIG5ldyBTZXQoKTtcbiAgICAgIGZvciAoY29uc3QgZWxlbWVudCBvZiBlbGVtZW50czIpIHtcbiAgICAgICAgaWYgKGVsZW1lbnQuc3RhdHVzID09PSBcImFib3J0ZWRcIilcbiAgICAgICAgICByZXR1cm4gSU5WQUxJRDtcbiAgICAgICAgaWYgKGVsZW1lbnQuc3RhdHVzID09PSBcImRpcnR5XCIpXG4gICAgICAgICAgc3RhdHVzLmRpcnR5KCk7XG4gICAgICAgIHBhcnNlZFNldC5hZGQoZWxlbWVudC52YWx1ZSk7XG4gICAgICB9XG4gICAgICByZXR1cm4geyBzdGF0dXM6IHN0YXR1cy52YWx1ZSwgdmFsdWU6IHBhcnNlZFNldCB9O1xuICAgIH1cbiAgICBjb25zdCBlbGVtZW50cyA9IFsuLi5jdHguZGF0YS52YWx1ZXMoKV0ubWFwKChpdGVtLCBpKSA9PiB2YWx1ZVR5cGUuX3BhcnNlKG5ldyBQYXJzZUlucHV0TGF6eVBhdGgoY3R4LCBpdGVtLCBjdHgucGF0aCwgaSkpKTtcbiAgICBpZiAoY3R4LmNvbW1vbi5hc3luYykge1xuICAgICAgcmV0dXJuIFByb21pc2UuYWxsKGVsZW1lbnRzKS50aGVuKChlbGVtZW50czIpID0+IGZpbmFsaXplU2V0KGVsZW1lbnRzMikpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gZmluYWxpemVTZXQoZWxlbWVudHMpO1xuICAgIH1cbiAgfVxuICBtaW4obWluU2l6ZSwgbWVzc2FnZSkge1xuICAgIHJldHVybiBuZXcgX1pvZFNldCh7XG4gICAgICAuLi50aGlzLl9kZWYsXG4gICAgICBtaW5TaXplOiB7IHZhbHVlOiBtaW5TaXplLCBtZXNzYWdlOiBlcnJvclV0aWwudG9TdHJpbmcobWVzc2FnZSkgfVxuICAgIH0pO1xuICB9XG4gIG1heChtYXhTaXplLCBtZXNzYWdlKSB7XG4gICAgcmV0dXJuIG5ldyBfWm9kU2V0KHtcbiAgICAgIC4uLnRoaXMuX2RlZixcbiAgICAgIG1heFNpemU6IHsgdmFsdWU6IG1heFNpemUsIG1lc3NhZ2U6IGVycm9yVXRpbC50b1N0cmluZyhtZXNzYWdlKSB9XG4gICAgfSk7XG4gIH1cbiAgc2l6ZShzaXplLCBtZXNzYWdlKSB7XG4gICAgcmV0dXJuIHRoaXMubWluKHNpemUsIG1lc3NhZ2UpLm1heChzaXplLCBtZXNzYWdlKTtcbiAgfVxuICBub25lbXB0eShtZXNzYWdlKSB7XG4gICAgcmV0dXJuIHRoaXMubWluKDEsIG1lc3NhZ2UpO1xuICB9XG59O1xuWm9kU2V0LmNyZWF0ZSA9ICh2YWx1ZVR5cGUsIHBhcmFtcykgPT4ge1xuICByZXR1cm4gbmV3IFpvZFNldCh7XG4gICAgdmFsdWVUeXBlLFxuICAgIG1pblNpemU6IG51bGwsXG4gICAgbWF4U2l6ZTogbnVsbCxcbiAgICB0eXBlTmFtZTogWm9kRmlyc3RQYXJ0eVR5cGVLaW5kLlpvZFNldCxcbiAgICAuLi5wcm9jZXNzQ3JlYXRlUGFyYW1zKHBhcmFtcylcbiAgfSk7XG59O1xudmFyIFpvZEZ1bmN0aW9uID0gY2xhc3MgX1pvZEZ1bmN0aW9uIGV4dGVuZHMgWm9kVHlwZSB7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKC4uLmFyZ3VtZW50cyk7XG4gICAgdGhpcy52YWxpZGF0ZSA9IHRoaXMuaW1wbGVtZW50O1xuICB9XG4gIF9wYXJzZShpbnB1dCkge1xuICAgIGNvbnN0IHsgY3R4IH0gPSB0aGlzLl9wcm9jZXNzSW5wdXRQYXJhbXMoaW5wdXQpO1xuICAgIGlmIChjdHgucGFyc2VkVHlwZSAhPT0gWm9kUGFyc2VkVHlwZS5mdW5jdGlvbikge1xuICAgICAgYWRkSXNzdWVUb0NvbnRleHQoY3R4LCB7XG4gICAgICAgIGNvZGU6IFpvZElzc3VlQ29kZS5pbnZhbGlkX3R5cGUsXG4gICAgICAgIGV4cGVjdGVkOiBab2RQYXJzZWRUeXBlLmZ1bmN0aW9uLFxuICAgICAgICByZWNlaXZlZDogY3R4LnBhcnNlZFR5cGVcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIElOVkFMSUQ7XG4gICAgfVxuICAgIGZ1bmN0aW9uIG1ha2VBcmdzSXNzdWUoYXJncywgZXJyb3IpIHtcbiAgICAgIHJldHVybiBtYWtlSXNzdWUoe1xuICAgICAgICBkYXRhOiBhcmdzLFxuICAgICAgICBwYXRoOiBjdHgucGF0aCxcbiAgICAgICAgZXJyb3JNYXBzOiBbXG4gICAgICAgICAgY3R4LmNvbW1vbi5jb250ZXh0dWFsRXJyb3JNYXAsXG4gICAgICAgICAgY3R4LnNjaGVtYUVycm9yTWFwLFxuICAgICAgICAgIGdldEVycm9yTWFwKCksXG4gICAgICAgICAgZXJyb3JNYXBcbiAgICAgICAgXS5maWx0ZXIoKHgpID0+ICEheCksXG4gICAgICAgIGlzc3VlRGF0YToge1xuICAgICAgICAgIGNvZGU6IFpvZElzc3VlQ29kZS5pbnZhbGlkX2FyZ3VtZW50cyxcbiAgICAgICAgICBhcmd1bWVudHNFcnJvcjogZXJyb3JcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIG1ha2VSZXR1cm5zSXNzdWUocmV0dXJucywgZXJyb3IpIHtcbiAgICAgIHJldHVybiBtYWtlSXNzdWUoe1xuICAgICAgICBkYXRhOiByZXR1cm5zLFxuICAgICAgICBwYXRoOiBjdHgucGF0aCxcbiAgICAgICAgZXJyb3JNYXBzOiBbXG4gICAgICAgICAgY3R4LmNvbW1vbi5jb250ZXh0dWFsRXJyb3JNYXAsXG4gICAgICAgICAgY3R4LnNjaGVtYUVycm9yTWFwLFxuICAgICAgICAgIGdldEVycm9yTWFwKCksXG4gICAgICAgICAgZXJyb3JNYXBcbiAgICAgICAgXS5maWx0ZXIoKHgpID0+ICEheCksXG4gICAgICAgIGlzc3VlRGF0YToge1xuICAgICAgICAgIGNvZGU6IFpvZElzc3VlQ29kZS5pbnZhbGlkX3JldHVybl90eXBlLFxuICAgICAgICAgIHJldHVyblR5cGVFcnJvcjogZXJyb3JcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICAgIGNvbnN0IHBhcmFtcyA9IHsgZXJyb3JNYXA6IGN0eC5jb21tb24uY29udGV4dHVhbEVycm9yTWFwIH07XG4gICAgY29uc3QgZm4gPSBjdHguZGF0YTtcbiAgICBpZiAodGhpcy5fZGVmLnJldHVybnMgaW5zdGFuY2VvZiBab2RQcm9taXNlKSB7XG4gICAgICBjb25zdCBtZSA9IHRoaXM7XG4gICAgICByZXR1cm4gT0soYXN5bmMgZnVuY3Rpb24oLi4uYXJncykge1xuICAgICAgICBjb25zdCBlcnJvciA9IG5ldyBab2RFcnJvcihbXSk7XG4gICAgICAgIGNvbnN0IHBhcnNlZEFyZ3MgPSBhd2FpdCBtZS5fZGVmLmFyZ3MucGFyc2VBc3luYyhhcmdzLCBwYXJhbXMpLmNhdGNoKChlKSA9PiB7XG4gICAgICAgICAgZXJyb3IuYWRkSXNzdWUobWFrZUFyZ3NJc3N1ZShhcmdzLCBlKSk7XG4gICAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBSZWZsZWN0LmFwcGx5KGZuLCB0aGlzLCBwYXJzZWRBcmdzKTtcbiAgICAgICAgY29uc3QgcGFyc2VkUmV0dXJucyA9IGF3YWl0IG1lLl9kZWYucmV0dXJucy5fZGVmLnR5cGUucGFyc2VBc3luYyhyZXN1bHQsIHBhcmFtcykuY2F0Y2goKGUpID0+IHtcbiAgICAgICAgICBlcnJvci5hZGRJc3N1ZShtYWtlUmV0dXJuc0lzc3VlKHJlc3VsdCwgZSkpO1xuICAgICAgICAgIHRocm93IGVycm9yO1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIHBhcnNlZFJldHVybnM7XG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgbWUgPSB0aGlzO1xuICAgICAgcmV0dXJuIE9LKGZ1bmN0aW9uKC4uLmFyZ3MpIHtcbiAgICAgICAgY29uc3QgcGFyc2VkQXJncyA9IG1lLl9kZWYuYXJncy5zYWZlUGFyc2UoYXJncywgcGFyYW1zKTtcbiAgICAgICAgaWYgKCFwYXJzZWRBcmdzLnN1Y2Nlc3MpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgWm9kRXJyb3IoW21ha2VBcmdzSXNzdWUoYXJncywgcGFyc2VkQXJncy5lcnJvcildKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCByZXN1bHQgPSBSZWZsZWN0LmFwcGx5KGZuLCB0aGlzLCBwYXJzZWRBcmdzLmRhdGEpO1xuICAgICAgICBjb25zdCBwYXJzZWRSZXR1cm5zID0gbWUuX2RlZi5yZXR1cm5zLnNhZmVQYXJzZShyZXN1bHQsIHBhcmFtcyk7XG4gICAgICAgIGlmICghcGFyc2VkUmV0dXJucy5zdWNjZXNzKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IFpvZEVycm9yKFttYWtlUmV0dXJuc0lzc3VlKHJlc3VsdCwgcGFyc2VkUmV0dXJucy5lcnJvcildKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcGFyc2VkUmV0dXJucy5kYXRhO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG4gIHBhcmFtZXRlcnMoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2RlZi5hcmdzO1xuICB9XG4gIHJldHVyblR5cGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2RlZi5yZXR1cm5zO1xuICB9XG4gIGFyZ3MoLi4uaXRlbXMpIHtcbiAgICByZXR1cm4gbmV3IF9ab2RGdW5jdGlvbih7XG4gICAgICAuLi50aGlzLl9kZWYsXG4gICAgICBhcmdzOiBab2RUdXBsZS5jcmVhdGUoaXRlbXMpLnJlc3QoWm9kVW5rbm93bi5jcmVhdGUoKSlcbiAgICB9KTtcbiAgfVxuICByZXR1cm5zKHJldHVyblR5cGUpIHtcbiAgICByZXR1cm4gbmV3IF9ab2RGdW5jdGlvbih7XG4gICAgICAuLi50aGlzLl9kZWYsXG4gICAgICByZXR1cm5zOiByZXR1cm5UeXBlXG4gICAgfSk7XG4gIH1cbiAgaW1wbGVtZW50KGZ1bmMpIHtcbiAgICBjb25zdCB2YWxpZGF0ZWRGdW5jID0gdGhpcy5wYXJzZShmdW5jKTtcbiAgICByZXR1cm4gdmFsaWRhdGVkRnVuYztcbiAgfVxuICBzdHJpY3RJbXBsZW1lbnQoZnVuYykge1xuICAgIGNvbnN0IHZhbGlkYXRlZEZ1bmMgPSB0aGlzLnBhcnNlKGZ1bmMpO1xuICAgIHJldHVybiB2YWxpZGF0ZWRGdW5jO1xuICB9XG4gIHN0YXRpYyBjcmVhdGUoYXJncywgcmV0dXJucywgcGFyYW1zKSB7XG4gICAgcmV0dXJuIG5ldyBfWm9kRnVuY3Rpb24oe1xuICAgICAgYXJnczogYXJncyA/IGFyZ3MgOiBab2RUdXBsZS5jcmVhdGUoW10pLnJlc3QoWm9kVW5rbm93bi5jcmVhdGUoKSksXG4gICAgICByZXR1cm5zOiByZXR1cm5zIHx8IFpvZFVua25vd24uY3JlYXRlKCksXG4gICAgICB0eXBlTmFtZTogWm9kRmlyc3RQYXJ0eVR5cGVLaW5kLlpvZEZ1bmN0aW9uLFxuICAgICAgLi4ucHJvY2Vzc0NyZWF0ZVBhcmFtcyhwYXJhbXMpXG4gICAgfSk7XG4gIH1cbn07XG52YXIgWm9kTGF6eSA9IGNsYXNzIGV4dGVuZHMgWm9kVHlwZSB7XG4gIGdldCBzY2hlbWEoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2RlZi5nZXR0ZXIoKTtcbiAgfVxuICBfcGFyc2UoaW5wdXQpIHtcbiAgICBjb25zdCB7IGN0eCB9ID0gdGhpcy5fcHJvY2Vzc0lucHV0UGFyYW1zKGlucHV0KTtcbiAgICBjb25zdCBsYXp5U2NoZW1hID0gdGhpcy5fZGVmLmdldHRlcigpO1xuICAgIHJldHVybiBsYXp5U2NoZW1hLl9wYXJzZSh7IGRhdGE6IGN0eC5kYXRhLCBwYXRoOiBjdHgucGF0aCwgcGFyZW50OiBjdHggfSk7XG4gIH1cbn07XG5ab2RMYXp5LmNyZWF0ZSA9IChnZXR0ZXIsIHBhcmFtcykgPT4ge1xuICByZXR1cm4gbmV3IFpvZExhenkoe1xuICAgIGdldHRlcixcbiAgICB0eXBlTmFtZTogWm9kRmlyc3RQYXJ0eVR5cGVLaW5kLlpvZExhenksXG4gICAgLi4ucHJvY2Vzc0NyZWF0ZVBhcmFtcyhwYXJhbXMpXG4gIH0pO1xufTtcbnZhciBab2RMaXRlcmFsID0gY2xhc3MgZXh0ZW5kcyBab2RUeXBlIHtcbiAgX3BhcnNlKGlucHV0KSB7XG4gICAgaWYgKGlucHV0LmRhdGEgIT09IHRoaXMuX2RlZi52YWx1ZSkge1xuICAgICAgY29uc3QgY3R4ID0gdGhpcy5fZ2V0T3JSZXR1cm5DdHgoaW5wdXQpO1xuICAgICAgYWRkSXNzdWVUb0NvbnRleHQoY3R4LCB7XG4gICAgICAgIHJlY2VpdmVkOiBjdHguZGF0YSxcbiAgICAgICAgY29kZTogWm9kSXNzdWVDb2RlLmludmFsaWRfbGl0ZXJhbCxcbiAgICAgICAgZXhwZWN0ZWQ6IHRoaXMuX2RlZi52YWx1ZVxuICAgICAgfSk7XG4gICAgICByZXR1cm4gSU5WQUxJRDtcbiAgICB9XG4gICAgcmV0dXJuIHsgc3RhdHVzOiBcInZhbGlkXCIsIHZhbHVlOiBpbnB1dC5kYXRhIH07XG4gIH1cbiAgZ2V0IHZhbHVlKCkge1xuICAgIHJldHVybiB0aGlzLl9kZWYudmFsdWU7XG4gIH1cbn07XG5ab2RMaXRlcmFsLmNyZWF0ZSA9ICh2YWx1ZSwgcGFyYW1zKSA9PiB7XG4gIHJldHVybiBuZXcgWm9kTGl0ZXJhbCh7XG4gICAgdmFsdWUsXG4gICAgdHlwZU5hbWU6IFpvZEZpcnN0UGFydHlUeXBlS2luZC5ab2RMaXRlcmFsLFxuICAgIC4uLnByb2Nlc3NDcmVhdGVQYXJhbXMocGFyYW1zKVxuICB9KTtcbn07XG5mdW5jdGlvbiBjcmVhdGVab2RFbnVtKHZhbHVlcywgcGFyYW1zKSB7XG4gIHJldHVybiBuZXcgWm9kRW51bSh7XG4gICAgdmFsdWVzLFxuICAgIHR5cGVOYW1lOiBab2RGaXJzdFBhcnR5VHlwZUtpbmQuWm9kRW51bSxcbiAgICAuLi5wcm9jZXNzQ3JlYXRlUGFyYW1zKHBhcmFtcylcbiAgfSk7XG59XG52YXIgWm9kRW51bSA9IGNsYXNzIF9ab2RFbnVtIGV4dGVuZHMgWm9kVHlwZSB7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKC4uLmFyZ3VtZW50cyk7XG4gICAgX1pvZEVudW1fY2FjaGUuc2V0KHRoaXMsIHZvaWQgMCk7XG4gIH1cbiAgX3BhcnNlKGlucHV0KSB7XG4gICAgaWYgKHR5cGVvZiBpbnB1dC5kYXRhICE9PSBcInN0cmluZ1wiKSB7XG4gICAgICBjb25zdCBjdHggPSB0aGlzLl9nZXRPclJldHVybkN0eChpbnB1dCk7XG4gICAgICBjb25zdCBleHBlY3RlZFZhbHVlcyA9IHRoaXMuX2RlZi52YWx1ZXM7XG4gICAgICBhZGRJc3N1ZVRvQ29udGV4dChjdHgsIHtcbiAgICAgICAgZXhwZWN0ZWQ6IHV0aWwuam9pblZhbHVlcyhleHBlY3RlZFZhbHVlcyksXG4gICAgICAgIHJlY2VpdmVkOiBjdHgucGFyc2VkVHlwZSxcbiAgICAgICAgY29kZTogWm9kSXNzdWVDb2RlLmludmFsaWRfdHlwZVxuICAgICAgfSk7XG4gICAgICByZXR1cm4gSU5WQUxJRDtcbiAgICB9XG4gICAgaWYgKCFfX2NsYXNzUHJpdmF0ZUZpZWxkR2V0KHRoaXMsIF9ab2RFbnVtX2NhY2hlLCBcImZcIikpIHtcbiAgICAgIF9fY2xhc3NQcml2YXRlRmllbGRTZXQodGhpcywgX1pvZEVudW1fY2FjaGUsIG5ldyBTZXQodGhpcy5fZGVmLnZhbHVlcyksIFwiZlwiKTtcbiAgICB9XG4gICAgaWYgKCFfX2NsYXNzUHJpdmF0ZUZpZWxkR2V0KHRoaXMsIF9ab2RFbnVtX2NhY2hlLCBcImZcIikuaGFzKGlucHV0LmRhdGEpKSB7XG4gICAgICBjb25zdCBjdHggPSB0aGlzLl9nZXRPclJldHVybkN0eChpbnB1dCk7XG4gICAgICBjb25zdCBleHBlY3RlZFZhbHVlcyA9IHRoaXMuX2RlZi52YWx1ZXM7XG4gICAgICBhZGRJc3N1ZVRvQ29udGV4dChjdHgsIHtcbiAgICAgICAgcmVjZWl2ZWQ6IGN0eC5kYXRhLFxuICAgICAgICBjb2RlOiBab2RJc3N1ZUNvZGUuaW52YWxpZF9lbnVtX3ZhbHVlLFxuICAgICAgICBvcHRpb25zOiBleHBlY3RlZFZhbHVlc1xuICAgICAgfSk7XG4gICAgICByZXR1cm4gSU5WQUxJRDtcbiAgICB9XG4gICAgcmV0dXJuIE9LKGlucHV0LmRhdGEpO1xuICB9XG4gIGdldCBvcHRpb25zKCkge1xuICAgIHJldHVybiB0aGlzLl9kZWYudmFsdWVzO1xuICB9XG4gIGdldCBlbnVtKCkge1xuICAgIGNvbnN0IGVudW1WYWx1ZXMgPSB7fTtcbiAgICBmb3IgKGNvbnN0IHZhbCBvZiB0aGlzLl9kZWYudmFsdWVzKSB7XG4gICAgICBlbnVtVmFsdWVzW3ZhbF0gPSB2YWw7XG4gICAgfVxuICAgIHJldHVybiBlbnVtVmFsdWVzO1xuICB9XG4gIGdldCBWYWx1ZXMoKSB7XG4gICAgY29uc3QgZW51bVZhbHVlcyA9IHt9O1xuICAgIGZvciAoY29uc3QgdmFsIG9mIHRoaXMuX2RlZi52YWx1ZXMpIHtcbiAgICAgIGVudW1WYWx1ZXNbdmFsXSA9IHZhbDtcbiAgICB9XG4gICAgcmV0dXJuIGVudW1WYWx1ZXM7XG4gIH1cbiAgZ2V0IEVudW0oKSB7XG4gICAgY29uc3QgZW51bVZhbHVlcyA9IHt9O1xuICAgIGZvciAoY29uc3QgdmFsIG9mIHRoaXMuX2RlZi52YWx1ZXMpIHtcbiAgICAgIGVudW1WYWx1ZXNbdmFsXSA9IHZhbDtcbiAgICB9XG4gICAgcmV0dXJuIGVudW1WYWx1ZXM7XG4gIH1cbiAgZXh0cmFjdCh2YWx1ZXMsIG5ld0RlZiA9IHRoaXMuX2RlZikge1xuICAgIHJldHVybiBfWm9kRW51bS5jcmVhdGUodmFsdWVzLCB7XG4gICAgICAuLi50aGlzLl9kZWYsXG4gICAgICAuLi5uZXdEZWZcbiAgICB9KTtcbiAgfVxuICBleGNsdWRlKHZhbHVlcywgbmV3RGVmID0gdGhpcy5fZGVmKSB7XG4gICAgcmV0dXJuIF9ab2RFbnVtLmNyZWF0ZSh0aGlzLm9wdGlvbnMuZmlsdGVyKChvcHQpID0+ICF2YWx1ZXMuaW5jbHVkZXMob3B0KSksIHtcbiAgICAgIC4uLnRoaXMuX2RlZixcbiAgICAgIC4uLm5ld0RlZlxuICAgIH0pO1xuICB9XG59O1xuX1pvZEVudW1fY2FjaGUgPSAvKiBAX19QVVJFX18gKi8gbmV3IFdlYWtNYXAoKTtcblpvZEVudW0uY3JlYXRlID0gY3JlYXRlWm9kRW51bTtcbnZhciBab2ROYXRpdmVFbnVtID0gY2xhc3MgZXh0ZW5kcyBab2RUeXBlIHtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoLi4uYXJndW1lbnRzKTtcbiAgICBfWm9kTmF0aXZlRW51bV9jYWNoZS5zZXQodGhpcywgdm9pZCAwKTtcbiAgfVxuICBfcGFyc2UoaW5wdXQpIHtcbiAgICBjb25zdCBuYXRpdmVFbnVtVmFsdWVzID0gdXRpbC5nZXRWYWxpZEVudW1WYWx1ZXModGhpcy5fZGVmLnZhbHVlcyk7XG4gICAgY29uc3QgY3R4ID0gdGhpcy5fZ2V0T3JSZXR1cm5DdHgoaW5wdXQpO1xuICAgIGlmIChjdHgucGFyc2VkVHlwZSAhPT0gWm9kUGFyc2VkVHlwZS5zdHJpbmcgJiYgY3R4LnBhcnNlZFR5cGUgIT09IFpvZFBhcnNlZFR5cGUubnVtYmVyKSB7XG4gICAgICBjb25zdCBleHBlY3RlZFZhbHVlcyA9IHV0aWwub2JqZWN0VmFsdWVzKG5hdGl2ZUVudW1WYWx1ZXMpO1xuICAgICAgYWRkSXNzdWVUb0NvbnRleHQoY3R4LCB7XG4gICAgICAgIGV4cGVjdGVkOiB1dGlsLmpvaW5WYWx1ZXMoZXhwZWN0ZWRWYWx1ZXMpLFxuICAgICAgICByZWNlaXZlZDogY3R4LnBhcnNlZFR5cGUsXG4gICAgICAgIGNvZGU6IFpvZElzc3VlQ29kZS5pbnZhbGlkX3R5cGVcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIElOVkFMSUQ7XG4gICAgfVxuICAgIGlmICghX19jbGFzc1ByaXZhdGVGaWVsZEdldCh0aGlzLCBfWm9kTmF0aXZlRW51bV9jYWNoZSwgXCJmXCIpKSB7XG4gICAgICBfX2NsYXNzUHJpdmF0ZUZpZWxkU2V0KHRoaXMsIF9ab2ROYXRpdmVFbnVtX2NhY2hlLCBuZXcgU2V0KHV0aWwuZ2V0VmFsaWRFbnVtVmFsdWVzKHRoaXMuX2RlZi52YWx1ZXMpKSwgXCJmXCIpO1xuICAgIH1cbiAgICBpZiAoIV9fY2xhc3NQcml2YXRlRmllbGRHZXQodGhpcywgX1pvZE5hdGl2ZUVudW1fY2FjaGUsIFwiZlwiKS5oYXMoaW5wdXQuZGF0YSkpIHtcbiAgICAgIGNvbnN0IGV4cGVjdGVkVmFsdWVzID0gdXRpbC5vYmplY3RWYWx1ZXMobmF0aXZlRW51bVZhbHVlcyk7XG4gICAgICBhZGRJc3N1ZVRvQ29udGV4dChjdHgsIHtcbiAgICAgICAgcmVjZWl2ZWQ6IGN0eC5kYXRhLFxuICAgICAgICBjb2RlOiBab2RJc3N1ZUNvZGUuaW52YWxpZF9lbnVtX3ZhbHVlLFxuICAgICAgICBvcHRpb25zOiBleHBlY3RlZFZhbHVlc1xuICAgICAgfSk7XG4gICAgICByZXR1cm4gSU5WQUxJRDtcbiAgICB9XG4gICAgcmV0dXJuIE9LKGlucHV0LmRhdGEpO1xuICB9XG4gIGdldCBlbnVtKCkge1xuICAgIHJldHVybiB0aGlzLl9kZWYudmFsdWVzO1xuICB9XG59O1xuX1pvZE5hdGl2ZUVudW1fY2FjaGUgPSAvKiBAX19QVVJFX18gKi8gbmV3IFdlYWtNYXAoKTtcblpvZE5hdGl2ZUVudW0uY3JlYXRlID0gKHZhbHVlcywgcGFyYW1zKSA9PiB7XG4gIHJldHVybiBuZXcgWm9kTmF0aXZlRW51bSh7XG4gICAgdmFsdWVzLFxuICAgIHR5cGVOYW1lOiBab2RGaXJzdFBhcnR5VHlwZUtpbmQuWm9kTmF0aXZlRW51bSxcbiAgICAuLi5wcm9jZXNzQ3JlYXRlUGFyYW1zKHBhcmFtcylcbiAgfSk7XG59O1xudmFyIFpvZFByb21pc2UgPSBjbGFzcyBleHRlbmRzIFpvZFR5cGUge1xuICB1bndyYXAoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2RlZi50eXBlO1xuICB9XG4gIF9wYXJzZShpbnB1dCkge1xuICAgIGNvbnN0IHsgY3R4IH0gPSB0aGlzLl9wcm9jZXNzSW5wdXRQYXJhbXMoaW5wdXQpO1xuICAgIGlmIChjdHgucGFyc2VkVHlwZSAhPT0gWm9kUGFyc2VkVHlwZS5wcm9taXNlICYmIGN0eC5jb21tb24uYXN5bmMgPT09IGZhbHNlKSB7XG4gICAgICBhZGRJc3N1ZVRvQ29udGV4dChjdHgsIHtcbiAgICAgICAgY29kZTogWm9kSXNzdWVDb2RlLmludmFsaWRfdHlwZSxcbiAgICAgICAgZXhwZWN0ZWQ6IFpvZFBhcnNlZFR5cGUucHJvbWlzZSxcbiAgICAgICAgcmVjZWl2ZWQ6IGN0eC5wYXJzZWRUeXBlXG4gICAgICB9KTtcbiAgICAgIHJldHVybiBJTlZBTElEO1xuICAgIH1cbiAgICBjb25zdCBwcm9taXNpZmllZCA9IGN0eC5wYXJzZWRUeXBlID09PSBab2RQYXJzZWRUeXBlLnByb21pc2UgPyBjdHguZGF0YSA6IFByb21pc2UucmVzb2x2ZShjdHguZGF0YSk7XG4gICAgcmV0dXJuIE9LKHByb21pc2lmaWVkLnRoZW4oKGRhdGEpID0+IHtcbiAgICAgIHJldHVybiB0aGlzLl9kZWYudHlwZS5wYXJzZUFzeW5jKGRhdGEsIHtcbiAgICAgICAgcGF0aDogY3R4LnBhdGgsXG4gICAgICAgIGVycm9yTWFwOiBjdHguY29tbW9uLmNvbnRleHR1YWxFcnJvck1hcFxuICAgICAgfSk7XG4gICAgfSkpO1xuICB9XG59O1xuWm9kUHJvbWlzZS5jcmVhdGUgPSAoc2NoZW1hLCBwYXJhbXMpID0+IHtcbiAgcmV0dXJuIG5ldyBab2RQcm9taXNlKHtcbiAgICB0eXBlOiBzY2hlbWEsXG4gICAgdHlwZU5hbWU6IFpvZEZpcnN0UGFydHlUeXBlS2luZC5ab2RQcm9taXNlLFxuICAgIC4uLnByb2Nlc3NDcmVhdGVQYXJhbXMocGFyYW1zKVxuICB9KTtcbn07XG52YXIgWm9kRWZmZWN0cyA9IGNsYXNzIGV4dGVuZHMgWm9kVHlwZSB7XG4gIGlubmVyVHlwZSgpIHtcbiAgICByZXR1cm4gdGhpcy5fZGVmLnNjaGVtYTtcbiAgfVxuICBzb3VyY2VUeXBlKCkge1xuICAgIHJldHVybiB0aGlzLl9kZWYuc2NoZW1hLl9kZWYudHlwZU5hbWUgPT09IFpvZEZpcnN0UGFydHlUeXBlS2luZC5ab2RFZmZlY3RzID8gdGhpcy5fZGVmLnNjaGVtYS5zb3VyY2VUeXBlKCkgOiB0aGlzLl9kZWYuc2NoZW1hO1xuICB9XG4gIF9wYXJzZShpbnB1dCkge1xuICAgIGNvbnN0IHsgc3RhdHVzLCBjdHggfSA9IHRoaXMuX3Byb2Nlc3NJbnB1dFBhcmFtcyhpbnB1dCk7XG4gICAgY29uc3QgZWZmZWN0ID0gdGhpcy5fZGVmLmVmZmVjdCB8fCBudWxsO1xuICAgIGNvbnN0IGNoZWNrQ3R4ID0ge1xuICAgICAgYWRkSXNzdWU6IChhcmcpID0+IHtcbiAgICAgICAgYWRkSXNzdWVUb0NvbnRleHQoY3R4LCBhcmcpO1xuICAgICAgICBpZiAoYXJnLmZhdGFsKSB7XG4gICAgICAgICAgc3RhdHVzLmFib3J0KCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgc3RhdHVzLmRpcnR5KCk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBnZXQgcGF0aCgpIHtcbiAgICAgICAgcmV0dXJuIGN0eC5wYXRoO1xuICAgICAgfVxuICAgIH07XG4gICAgY2hlY2tDdHguYWRkSXNzdWUgPSBjaGVja0N0eC5hZGRJc3N1ZS5iaW5kKGNoZWNrQ3R4KTtcbiAgICBpZiAoZWZmZWN0LnR5cGUgPT09IFwicHJlcHJvY2Vzc1wiKSB7XG4gICAgICBjb25zdCBwcm9jZXNzZWQgPSBlZmZlY3QudHJhbnNmb3JtKGN0eC5kYXRhLCBjaGVja0N0eCk7XG4gICAgICBpZiAoY3R4LmNvbW1vbi5hc3luYykge1xuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHByb2Nlc3NlZCkudGhlbihhc3luYyAocHJvY2Vzc2VkMikgPT4ge1xuICAgICAgICAgIGlmIChzdGF0dXMudmFsdWUgPT09IFwiYWJvcnRlZFwiKVxuICAgICAgICAgICAgcmV0dXJuIElOVkFMSUQ7XG4gICAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5fZGVmLnNjaGVtYS5fcGFyc2VBc3luYyh7XG4gICAgICAgICAgICBkYXRhOiBwcm9jZXNzZWQyLFxuICAgICAgICAgICAgcGF0aDogY3R4LnBhdGgsXG4gICAgICAgICAgICBwYXJlbnQ6IGN0eFxuICAgICAgICAgIH0pO1xuICAgICAgICAgIGlmIChyZXN1bHQuc3RhdHVzID09PSBcImFib3J0ZWRcIilcbiAgICAgICAgICAgIHJldHVybiBJTlZBTElEO1xuICAgICAgICAgIGlmIChyZXN1bHQuc3RhdHVzID09PSBcImRpcnR5XCIpXG4gICAgICAgICAgICByZXR1cm4gRElSVFkocmVzdWx0LnZhbHVlKTtcbiAgICAgICAgICBpZiAoc3RhdHVzLnZhbHVlID09PSBcImRpcnR5XCIpXG4gICAgICAgICAgICByZXR1cm4gRElSVFkocmVzdWx0LnZhbHVlKTtcbiAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmIChzdGF0dXMudmFsdWUgPT09IFwiYWJvcnRlZFwiKVxuICAgICAgICAgIHJldHVybiBJTlZBTElEO1xuICAgICAgICBjb25zdCByZXN1bHQgPSB0aGlzLl9kZWYuc2NoZW1hLl9wYXJzZVN5bmMoe1xuICAgICAgICAgIGRhdGE6IHByb2Nlc3NlZCxcbiAgICAgICAgICBwYXRoOiBjdHgucGF0aCxcbiAgICAgICAgICBwYXJlbnQ6IGN0eFxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKHJlc3VsdC5zdGF0dXMgPT09IFwiYWJvcnRlZFwiKVxuICAgICAgICAgIHJldHVybiBJTlZBTElEO1xuICAgICAgICBpZiAocmVzdWx0LnN0YXR1cyA9PT0gXCJkaXJ0eVwiKVxuICAgICAgICAgIHJldHVybiBESVJUWShyZXN1bHQudmFsdWUpO1xuICAgICAgICBpZiAoc3RhdHVzLnZhbHVlID09PSBcImRpcnR5XCIpXG4gICAgICAgICAgcmV0dXJuIERJUlRZKHJlc3VsdC52YWx1ZSk7XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChlZmZlY3QudHlwZSA9PT0gXCJyZWZpbmVtZW50XCIpIHtcbiAgICAgIGNvbnN0IGV4ZWN1dGVSZWZpbmVtZW50ID0gKGFjYykgPT4ge1xuICAgICAgICBjb25zdCByZXN1bHQgPSBlZmZlY3QucmVmaW5lbWVudChhY2MsIGNoZWNrQ3R4KTtcbiAgICAgICAgaWYgKGN0eC5jb21tb24uYXN5bmMpIHtcbiAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHJlc3VsdCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHJlc3VsdCBpbnN0YW5jZW9mIFByb21pc2UpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJBc3luYyByZWZpbmVtZW50IGVuY291bnRlcmVkIGR1cmluZyBzeW5jaHJvbm91cyBwYXJzZSBvcGVyYXRpb24uIFVzZSAucGFyc2VBc3luYyBpbnN0ZWFkLlwiKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgfTtcbiAgICAgIGlmIChjdHguY29tbW9uLmFzeW5jID09PSBmYWxzZSkge1xuICAgICAgICBjb25zdCBpbm5lciA9IHRoaXMuX2RlZi5zY2hlbWEuX3BhcnNlU3luYyh7XG4gICAgICAgICAgZGF0YTogY3R4LmRhdGEsXG4gICAgICAgICAgcGF0aDogY3R4LnBhdGgsXG4gICAgICAgICAgcGFyZW50OiBjdHhcbiAgICAgICAgfSk7XG4gICAgICAgIGlmIChpbm5lci5zdGF0dXMgPT09IFwiYWJvcnRlZFwiKVxuICAgICAgICAgIHJldHVybiBJTlZBTElEO1xuICAgICAgICBpZiAoaW5uZXIuc3RhdHVzID09PSBcImRpcnR5XCIpXG4gICAgICAgICAgc3RhdHVzLmRpcnR5KCk7XG4gICAgICAgIGV4ZWN1dGVSZWZpbmVtZW50KGlubmVyLnZhbHVlKTtcbiAgICAgICAgcmV0dXJuIHsgc3RhdHVzOiBzdGF0dXMudmFsdWUsIHZhbHVlOiBpbm5lci52YWx1ZSB9O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2RlZi5zY2hlbWEuX3BhcnNlQXN5bmMoeyBkYXRhOiBjdHguZGF0YSwgcGF0aDogY3R4LnBhdGgsIHBhcmVudDogY3R4IH0pLnRoZW4oKGlubmVyKSA9PiB7XG4gICAgICAgICAgaWYgKGlubmVyLnN0YXR1cyA9PT0gXCJhYm9ydGVkXCIpXG4gICAgICAgICAgICByZXR1cm4gSU5WQUxJRDtcbiAgICAgICAgICBpZiAoaW5uZXIuc3RhdHVzID09PSBcImRpcnR5XCIpXG4gICAgICAgICAgICBzdGF0dXMuZGlydHkoKTtcbiAgICAgICAgICByZXR1cm4gZXhlY3V0ZVJlZmluZW1lbnQoaW5uZXIudmFsdWUpLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHsgc3RhdHVzOiBzdGF0dXMudmFsdWUsIHZhbHVlOiBpbm5lci52YWx1ZSB9O1xuICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKGVmZmVjdC50eXBlID09PSBcInRyYW5zZm9ybVwiKSB7XG4gICAgICBpZiAoY3R4LmNvbW1vbi5hc3luYyA9PT0gZmFsc2UpIHtcbiAgICAgICAgY29uc3QgYmFzZSA9IHRoaXMuX2RlZi5zY2hlbWEuX3BhcnNlU3luYyh7XG4gICAgICAgICAgZGF0YTogY3R4LmRhdGEsXG4gICAgICAgICAgcGF0aDogY3R4LnBhdGgsXG4gICAgICAgICAgcGFyZW50OiBjdHhcbiAgICAgICAgfSk7XG4gICAgICAgIGlmICghaXNWYWxpZChiYXNlKSlcbiAgICAgICAgICByZXR1cm4gYmFzZTtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gZWZmZWN0LnRyYW5zZm9ybShiYXNlLnZhbHVlLCBjaGVja0N0eCk7XG4gICAgICAgIGlmIChyZXN1bHQgaW5zdGFuY2VvZiBQcm9taXNlKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBBc3luY2hyb25vdXMgdHJhbnNmb3JtIGVuY291bnRlcmVkIGR1cmluZyBzeW5jaHJvbm91cyBwYXJzZSBvcGVyYXRpb24uIFVzZSAucGFyc2VBc3luYyBpbnN0ZWFkLmApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7IHN0YXR1czogc3RhdHVzLnZhbHVlLCB2YWx1ZTogcmVzdWx0IH07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gdGhpcy5fZGVmLnNjaGVtYS5fcGFyc2VBc3luYyh7IGRhdGE6IGN0eC5kYXRhLCBwYXRoOiBjdHgucGF0aCwgcGFyZW50OiBjdHggfSkudGhlbigoYmFzZSkgPT4ge1xuICAgICAgICAgIGlmICghaXNWYWxpZChiYXNlKSlcbiAgICAgICAgICAgIHJldHVybiBiYXNlO1xuICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoZWZmZWN0LnRyYW5zZm9ybShiYXNlLnZhbHVlLCBjaGVja0N0eCkpLnRoZW4oKHJlc3VsdCkgPT4gKHsgc3RhdHVzOiBzdGF0dXMudmFsdWUsIHZhbHVlOiByZXN1bHQgfSkpO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gICAgdXRpbC5hc3NlcnROZXZlcihlZmZlY3QpO1xuICB9XG59O1xuWm9kRWZmZWN0cy5jcmVhdGUgPSAoc2NoZW1hLCBlZmZlY3QsIHBhcmFtcykgPT4ge1xuICByZXR1cm4gbmV3IFpvZEVmZmVjdHMoe1xuICAgIHNjaGVtYSxcbiAgICB0eXBlTmFtZTogWm9kRmlyc3RQYXJ0eVR5cGVLaW5kLlpvZEVmZmVjdHMsXG4gICAgZWZmZWN0LFxuICAgIC4uLnByb2Nlc3NDcmVhdGVQYXJhbXMocGFyYW1zKVxuICB9KTtcbn07XG5ab2RFZmZlY3RzLmNyZWF0ZVdpdGhQcmVwcm9jZXNzID0gKHByZXByb2Nlc3MsIHNjaGVtYSwgcGFyYW1zKSA9PiB7XG4gIHJldHVybiBuZXcgWm9kRWZmZWN0cyh7XG4gICAgc2NoZW1hLFxuICAgIGVmZmVjdDogeyB0eXBlOiBcInByZXByb2Nlc3NcIiwgdHJhbnNmb3JtOiBwcmVwcm9jZXNzIH0sXG4gICAgdHlwZU5hbWU6IFpvZEZpcnN0UGFydHlUeXBlS2luZC5ab2RFZmZlY3RzLFxuICAgIC4uLnByb2Nlc3NDcmVhdGVQYXJhbXMocGFyYW1zKVxuICB9KTtcbn07XG52YXIgWm9kT3B0aW9uYWwgPSBjbGFzcyBleHRlbmRzIFpvZFR5cGUge1xuICBfcGFyc2UoaW5wdXQpIHtcbiAgICBjb25zdCBwYXJzZWRUeXBlID0gdGhpcy5fZ2V0VHlwZShpbnB1dCk7XG4gICAgaWYgKHBhcnNlZFR5cGUgPT09IFpvZFBhcnNlZFR5cGUudW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gT0sodm9pZCAwKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuX2RlZi5pbm5lclR5cGUuX3BhcnNlKGlucHV0KTtcbiAgfVxuICB1bndyYXAoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2RlZi5pbm5lclR5cGU7XG4gIH1cbn07XG5ab2RPcHRpb25hbC5jcmVhdGUgPSAodHlwZSwgcGFyYW1zKSA9PiB7XG4gIHJldHVybiBuZXcgWm9kT3B0aW9uYWwoe1xuICAgIGlubmVyVHlwZTogdHlwZSxcbiAgICB0eXBlTmFtZTogWm9kRmlyc3RQYXJ0eVR5cGVLaW5kLlpvZE9wdGlvbmFsLFxuICAgIC4uLnByb2Nlc3NDcmVhdGVQYXJhbXMocGFyYW1zKVxuICB9KTtcbn07XG52YXIgWm9kTnVsbGFibGUgPSBjbGFzcyBleHRlbmRzIFpvZFR5cGUge1xuICBfcGFyc2UoaW5wdXQpIHtcbiAgICBjb25zdCBwYXJzZWRUeXBlID0gdGhpcy5fZ2V0VHlwZShpbnB1dCk7XG4gICAgaWYgKHBhcnNlZFR5cGUgPT09IFpvZFBhcnNlZFR5cGUubnVsbCkge1xuICAgICAgcmV0dXJuIE9LKG51bGwpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5fZGVmLmlubmVyVHlwZS5fcGFyc2UoaW5wdXQpO1xuICB9XG4gIHVud3JhcCgpIHtcbiAgICByZXR1cm4gdGhpcy5fZGVmLmlubmVyVHlwZTtcbiAgfVxufTtcblpvZE51bGxhYmxlLmNyZWF0ZSA9ICh0eXBlLCBwYXJhbXMpID0+IHtcbiAgcmV0dXJuIG5ldyBab2ROdWxsYWJsZSh7XG4gICAgaW5uZXJUeXBlOiB0eXBlLFxuICAgIHR5cGVOYW1lOiBab2RGaXJzdFBhcnR5VHlwZUtpbmQuWm9kTnVsbGFibGUsXG4gICAgLi4ucHJvY2Vzc0NyZWF0ZVBhcmFtcyhwYXJhbXMpXG4gIH0pO1xufTtcbnZhciBab2REZWZhdWx0ID0gY2xhc3MgZXh0ZW5kcyBab2RUeXBlIHtcbiAgX3BhcnNlKGlucHV0KSB7XG4gICAgY29uc3QgeyBjdHggfSA9IHRoaXMuX3Byb2Nlc3NJbnB1dFBhcmFtcyhpbnB1dCk7XG4gICAgbGV0IGRhdGEgPSBjdHguZGF0YTtcbiAgICBpZiAoY3R4LnBhcnNlZFR5cGUgPT09IFpvZFBhcnNlZFR5cGUudW5kZWZpbmVkKSB7XG4gICAgICBkYXRhID0gdGhpcy5fZGVmLmRlZmF1bHRWYWx1ZSgpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5fZGVmLmlubmVyVHlwZS5fcGFyc2Uoe1xuICAgICAgZGF0YSxcbiAgICAgIHBhdGg6IGN0eC5wYXRoLFxuICAgICAgcGFyZW50OiBjdHhcbiAgICB9KTtcbiAgfVxuICByZW1vdmVEZWZhdWx0KCkge1xuICAgIHJldHVybiB0aGlzLl9kZWYuaW5uZXJUeXBlO1xuICB9XG59O1xuWm9kRGVmYXVsdC5jcmVhdGUgPSAodHlwZSwgcGFyYW1zKSA9PiB7XG4gIHJldHVybiBuZXcgWm9kRGVmYXVsdCh7XG4gICAgaW5uZXJUeXBlOiB0eXBlLFxuICAgIHR5cGVOYW1lOiBab2RGaXJzdFBhcnR5VHlwZUtpbmQuWm9kRGVmYXVsdCxcbiAgICBkZWZhdWx0VmFsdWU6IHR5cGVvZiBwYXJhbXMuZGVmYXVsdCA9PT0gXCJmdW5jdGlvblwiID8gcGFyYW1zLmRlZmF1bHQgOiAoKSA9PiBwYXJhbXMuZGVmYXVsdCxcbiAgICAuLi5wcm9jZXNzQ3JlYXRlUGFyYW1zKHBhcmFtcylcbiAgfSk7XG59O1xudmFyIFpvZENhdGNoID0gY2xhc3MgZXh0ZW5kcyBab2RUeXBlIHtcbiAgX3BhcnNlKGlucHV0KSB7XG4gICAgY29uc3QgeyBjdHggfSA9IHRoaXMuX3Byb2Nlc3NJbnB1dFBhcmFtcyhpbnB1dCk7XG4gICAgY29uc3QgbmV3Q3R4ID0ge1xuICAgICAgLi4uY3R4LFxuICAgICAgY29tbW9uOiB7XG4gICAgICAgIC4uLmN0eC5jb21tb24sXG4gICAgICAgIGlzc3VlczogW11cbiAgICAgIH1cbiAgICB9O1xuICAgIGNvbnN0IHJlc3VsdCA9IHRoaXMuX2RlZi5pbm5lclR5cGUuX3BhcnNlKHtcbiAgICAgIGRhdGE6IG5ld0N0eC5kYXRhLFxuICAgICAgcGF0aDogbmV3Q3R4LnBhdGgsXG4gICAgICBwYXJlbnQ6IHtcbiAgICAgICAgLi4ubmV3Q3R4XG4gICAgICB9XG4gICAgfSk7XG4gICAgaWYgKGlzQXN5bmMocmVzdWx0KSkge1xuICAgICAgcmV0dXJuIHJlc3VsdC50aGVuKChyZXN1bHQyKSA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgc3RhdHVzOiBcInZhbGlkXCIsXG4gICAgICAgICAgdmFsdWU6IHJlc3VsdDIuc3RhdHVzID09PSBcInZhbGlkXCIgPyByZXN1bHQyLnZhbHVlIDogdGhpcy5fZGVmLmNhdGNoVmFsdWUoe1xuICAgICAgICAgICAgZ2V0IGVycm9yKCkge1xuICAgICAgICAgICAgICByZXR1cm4gbmV3IFpvZEVycm9yKG5ld0N0eC5jb21tb24uaXNzdWVzKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBpbnB1dDogbmV3Q3R4LmRhdGFcbiAgICAgICAgICB9KVxuICAgICAgICB9O1xuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHN0YXR1czogXCJ2YWxpZFwiLFxuICAgICAgICB2YWx1ZTogcmVzdWx0LnN0YXR1cyA9PT0gXCJ2YWxpZFwiID8gcmVzdWx0LnZhbHVlIDogdGhpcy5fZGVmLmNhdGNoVmFsdWUoe1xuICAgICAgICAgIGdldCBlcnJvcigpIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgWm9kRXJyb3IobmV3Q3R4LmNvbW1vbi5pc3N1ZXMpO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgaW5wdXQ6IG5ld0N0eC5kYXRhXG4gICAgICAgIH0pXG4gICAgICB9O1xuICAgIH1cbiAgfVxuICByZW1vdmVDYXRjaCgpIHtcbiAgICByZXR1cm4gdGhpcy5fZGVmLmlubmVyVHlwZTtcbiAgfVxufTtcblpvZENhdGNoLmNyZWF0ZSA9ICh0eXBlLCBwYXJhbXMpID0+IHtcbiAgcmV0dXJuIG5ldyBab2RDYXRjaCh7XG4gICAgaW5uZXJUeXBlOiB0eXBlLFxuICAgIHR5cGVOYW1lOiBab2RGaXJzdFBhcnR5VHlwZUtpbmQuWm9kQ2F0Y2gsXG4gICAgY2F0Y2hWYWx1ZTogdHlwZW9mIHBhcmFtcy5jYXRjaCA9PT0gXCJmdW5jdGlvblwiID8gcGFyYW1zLmNhdGNoIDogKCkgPT4gcGFyYW1zLmNhdGNoLFxuICAgIC4uLnByb2Nlc3NDcmVhdGVQYXJhbXMocGFyYW1zKVxuICB9KTtcbn07XG52YXIgWm9kTmFOID0gY2xhc3MgZXh0ZW5kcyBab2RUeXBlIHtcbiAgX3BhcnNlKGlucHV0KSB7XG4gICAgY29uc3QgcGFyc2VkVHlwZSA9IHRoaXMuX2dldFR5cGUoaW5wdXQpO1xuICAgIGlmIChwYXJzZWRUeXBlICE9PSBab2RQYXJzZWRUeXBlLm5hbikge1xuICAgICAgY29uc3QgY3R4ID0gdGhpcy5fZ2V0T3JSZXR1cm5DdHgoaW5wdXQpO1xuICAgICAgYWRkSXNzdWVUb0NvbnRleHQoY3R4LCB7XG4gICAgICAgIGNvZGU6IFpvZElzc3VlQ29kZS5pbnZhbGlkX3R5cGUsXG4gICAgICAgIGV4cGVjdGVkOiBab2RQYXJzZWRUeXBlLm5hbixcbiAgICAgICAgcmVjZWl2ZWQ6IGN0eC5wYXJzZWRUeXBlXG4gICAgICB9KTtcbiAgICAgIHJldHVybiBJTlZBTElEO1xuICAgIH1cbiAgICByZXR1cm4geyBzdGF0dXM6IFwidmFsaWRcIiwgdmFsdWU6IGlucHV0LmRhdGEgfTtcbiAgfVxufTtcblpvZE5hTi5jcmVhdGUgPSAocGFyYW1zKSA9PiB7XG4gIHJldHVybiBuZXcgWm9kTmFOKHtcbiAgICB0eXBlTmFtZTogWm9kRmlyc3RQYXJ0eVR5cGVLaW5kLlpvZE5hTixcbiAgICAuLi5wcm9jZXNzQ3JlYXRlUGFyYW1zKHBhcmFtcylcbiAgfSk7XG59O1xudmFyIEJSQU5EID0gU3ltYm9sKFwiem9kX2JyYW5kXCIpO1xudmFyIFpvZEJyYW5kZWQgPSBjbGFzcyBleHRlbmRzIFpvZFR5cGUge1xuICBfcGFyc2UoaW5wdXQpIHtcbiAgICBjb25zdCB7IGN0eCB9ID0gdGhpcy5fcHJvY2Vzc0lucHV0UGFyYW1zKGlucHV0KTtcbiAgICBjb25zdCBkYXRhID0gY3R4LmRhdGE7XG4gICAgcmV0dXJuIHRoaXMuX2RlZi50eXBlLl9wYXJzZSh7XG4gICAgICBkYXRhLFxuICAgICAgcGF0aDogY3R4LnBhdGgsXG4gICAgICBwYXJlbnQ6IGN0eFxuICAgIH0pO1xuICB9XG4gIHVud3JhcCgpIHtcbiAgICByZXR1cm4gdGhpcy5fZGVmLnR5cGU7XG4gIH1cbn07XG52YXIgWm9kUGlwZWxpbmUgPSBjbGFzcyBfWm9kUGlwZWxpbmUgZXh0ZW5kcyBab2RUeXBlIHtcbiAgX3BhcnNlKGlucHV0KSB7XG4gICAgY29uc3QgeyBzdGF0dXMsIGN0eCB9ID0gdGhpcy5fcHJvY2Vzc0lucHV0UGFyYW1zKGlucHV0KTtcbiAgICBpZiAoY3R4LmNvbW1vbi5hc3luYykge1xuICAgICAgY29uc3QgaGFuZGxlQXN5bmMgPSBhc3luYyAoKSA9PiB7XG4gICAgICAgIGNvbnN0IGluUmVzdWx0ID0gYXdhaXQgdGhpcy5fZGVmLmluLl9wYXJzZUFzeW5jKHtcbiAgICAgICAgICBkYXRhOiBjdHguZGF0YSxcbiAgICAgICAgICBwYXRoOiBjdHgucGF0aCxcbiAgICAgICAgICBwYXJlbnQ6IGN0eFxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKGluUmVzdWx0LnN0YXR1cyA9PT0gXCJhYm9ydGVkXCIpXG4gICAgICAgICAgcmV0dXJuIElOVkFMSUQ7XG4gICAgICAgIGlmIChpblJlc3VsdC5zdGF0dXMgPT09IFwiZGlydHlcIikge1xuICAgICAgICAgIHN0YXR1cy5kaXJ0eSgpO1xuICAgICAgICAgIHJldHVybiBESVJUWShpblJlc3VsdC52YWx1ZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuX2RlZi5vdXQuX3BhcnNlQXN5bmMoe1xuICAgICAgICAgICAgZGF0YTogaW5SZXN1bHQudmFsdWUsXG4gICAgICAgICAgICBwYXRoOiBjdHgucGF0aCxcbiAgICAgICAgICAgIHBhcmVudDogY3R4XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgICByZXR1cm4gaGFuZGxlQXN5bmMoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgaW5SZXN1bHQgPSB0aGlzLl9kZWYuaW4uX3BhcnNlU3luYyh7XG4gICAgICAgIGRhdGE6IGN0eC5kYXRhLFxuICAgICAgICBwYXRoOiBjdHgucGF0aCxcbiAgICAgICAgcGFyZW50OiBjdHhcbiAgICAgIH0pO1xuICAgICAgaWYgKGluUmVzdWx0LnN0YXR1cyA9PT0gXCJhYm9ydGVkXCIpXG4gICAgICAgIHJldHVybiBJTlZBTElEO1xuICAgICAgaWYgKGluUmVzdWx0LnN0YXR1cyA9PT0gXCJkaXJ0eVwiKSB7XG4gICAgICAgIHN0YXR1cy5kaXJ0eSgpO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHN0YXR1czogXCJkaXJ0eVwiLFxuICAgICAgICAgIHZhbHVlOiBpblJlc3VsdC52YWx1ZVxuICAgICAgICB9O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2RlZi5vdXQuX3BhcnNlU3luYyh7XG4gICAgICAgICAgZGF0YTogaW5SZXN1bHQudmFsdWUsXG4gICAgICAgICAgcGF0aDogY3R4LnBhdGgsXG4gICAgICAgICAgcGFyZW50OiBjdHhcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHN0YXRpYyBjcmVhdGUoYSwgYikge1xuICAgIHJldHVybiBuZXcgX1pvZFBpcGVsaW5lKHtcbiAgICAgIGluOiBhLFxuICAgICAgb3V0OiBiLFxuICAgICAgdHlwZU5hbWU6IFpvZEZpcnN0UGFydHlUeXBlS2luZC5ab2RQaXBlbGluZVxuICAgIH0pO1xuICB9XG59O1xudmFyIFpvZFJlYWRvbmx5ID0gY2xhc3MgZXh0ZW5kcyBab2RUeXBlIHtcbiAgX3BhcnNlKGlucHV0KSB7XG4gICAgY29uc3QgcmVzdWx0ID0gdGhpcy5fZGVmLmlubmVyVHlwZS5fcGFyc2UoaW5wdXQpO1xuICAgIGNvbnN0IGZyZWV6ZSA9IChkYXRhKSA9PiB7XG4gICAgICBpZiAoaXNWYWxpZChkYXRhKSkge1xuICAgICAgICBkYXRhLnZhbHVlID0gT2JqZWN0LmZyZWV6ZShkYXRhLnZhbHVlKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBkYXRhO1xuICAgIH07XG4gICAgcmV0dXJuIGlzQXN5bmMocmVzdWx0KSA/IHJlc3VsdC50aGVuKChkYXRhKSA9PiBmcmVlemUoZGF0YSkpIDogZnJlZXplKHJlc3VsdCk7XG4gIH1cbiAgdW53cmFwKCkge1xuICAgIHJldHVybiB0aGlzLl9kZWYuaW5uZXJUeXBlO1xuICB9XG59O1xuWm9kUmVhZG9ubHkuY3JlYXRlID0gKHR5cGUsIHBhcmFtcykgPT4ge1xuICByZXR1cm4gbmV3IFpvZFJlYWRvbmx5KHtcbiAgICBpbm5lclR5cGU6IHR5cGUsXG4gICAgdHlwZU5hbWU6IFpvZEZpcnN0UGFydHlUeXBlS2luZC5ab2RSZWFkb25seSxcbiAgICAuLi5wcm9jZXNzQ3JlYXRlUGFyYW1zKHBhcmFtcylcbiAgfSk7XG59O1xuZnVuY3Rpb24gY2xlYW5QYXJhbXMocGFyYW1zLCBkYXRhKSB7XG4gIGNvbnN0IHAgPSB0eXBlb2YgcGFyYW1zID09PSBcImZ1bmN0aW9uXCIgPyBwYXJhbXMoZGF0YSkgOiB0eXBlb2YgcGFyYW1zID09PSBcInN0cmluZ1wiID8geyBtZXNzYWdlOiBwYXJhbXMgfSA6IHBhcmFtcztcbiAgY29uc3QgcDIgPSB0eXBlb2YgcCA9PT0gXCJzdHJpbmdcIiA/IHsgbWVzc2FnZTogcCB9IDogcDtcbiAgcmV0dXJuIHAyO1xufVxuZnVuY3Rpb24gY3VzdG9tKGNoZWNrLCBfcGFyYW1zID0ge30sIGZhdGFsKSB7XG4gIGlmIChjaGVjaylcbiAgICByZXR1cm4gWm9kQW55LmNyZWF0ZSgpLnN1cGVyUmVmaW5lKChkYXRhLCBjdHgpID0+IHtcbiAgICAgIHZhciBfYSwgX2I7XG4gICAgICBjb25zdCByID0gY2hlY2soZGF0YSk7XG4gICAgICBpZiAociBpbnN0YW5jZW9mIFByb21pc2UpIHtcbiAgICAgICAgcmV0dXJuIHIudGhlbigocjIpID0+IHtcbiAgICAgICAgICB2YXIgX2EyLCBfYjI7XG4gICAgICAgICAgaWYgKCFyMikge1xuICAgICAgICAgICAgY29uc3QgcGFyYW1zID0gY2xlYW5QYXJhbXMoX3BhcmFtcywgZGF0YSk7XG4gICAgICAgICAgICBjb25zdCBfZmF0YWwgPSAoX2IyID0gKF9hMiA9IHBhcmFtcy5mYXRhbCkgIT09IG51bGwgJiYgX2EyICE9PSB2b2lkIDAgPyBfYTIgOiBmYXRhbCkgIT09IG51bGwgJiYgX2IyICE9PSB2b2lkIDAgPyBfYjIgOiB0cnVlO1xuICAgICAgICAgICAgY3R4LmFkZElzc3VlKHsgY29kZTogXCJjdXN0b21cIiwgLi4ucGFyYW1zLCBmYXRhbDogX2ZhdGFsIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICBpZiAoIXIpIHtcbiAgICAgICAgY29uc3QgcGFyYW1zID0gY2xlYW5QYXJhbXMoX3BhcmFtcywgZGF0YSk7XG4gICAgICAgIGNvbnN0IF9mYXRhbCA9IChfYiA9IChfYSA9IHBhcmFtcy5mYXRhbCkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogZmF0YWwpICE9PSBudWxsICYmIF9iICE9PSB2b2lkIDAgPyBfYiA6IHRydWU7XG4gICAgICAgIGN0eC5hZGRJc3N1ZSh7IGNvZGU6IFwiY3VzdG9tXCIsIC4uLnBhcmFtcywgZmF0YWw6IF9mYXRhbCB9KTtcbiAgICAgIH1cbiAgICAgIHJldHVybjtcbiAgICB9KTtcbiAgcmV0dXJuIFpvZEFueS5jcmVhdGUoKTtcbn1cbnZhciBsYXRlID0ge1xuICBvYmplY3Q6IFpvZE9iamVjdC5sYXp5Y3JlYXRlXG59O1xudmFyIFpvZEZpcnN0UGFydHlUeXBlS2luZDtcbihmdW5jdGlvbihab2RGaXJzdFBhcnR5VHlwZUtpbmQyKSB7XG4gIFpvZEZpcnN0UGFydHlUeXBlS2luZDJbXCJab2RTdHJpbmdcIl0gPSBcIlpvZFN0cmluZ1wiO1xuICBab2RGaXJzdFBhcnR5VHlwZUtpbmQyW1wiWm9kTnVtYmVyXCJdID0gXCJab2ROdW1iZXJcIjtcbiAgWm9kRmlyc3RQYXJ0eVR5cGVLaW5kMltcIlpvZE5hTlwiXSA9IFwiWm9kTmFOXCI7XG4gIFpvZEZpcnN0UGFydHlUeXBlS2luZDJbXCJab2RCaWdJbnRcIl0gPSBcIlpvZEJpZ0ludFwiO1xuICBab2RGaXJzdFBhcnR5VHlwZUtpbmQyW1wiWm9kQm9vbGVhblwiXSA9IFwiWm9kQm9vbGVhblwiO1xuICBab2RGaXJzdFBhcnR5VHlwZUtpbmQyW1wiWm9kRGF0ZVwiXSA9IFwiWm9kRGF0ZVwiO1xuICBab2RGaXJzdFBhcnR5VHlwZUtpbmQyW1wiWm9kU3ltYm9sXCJdID0gXCJab2RTeW1ib2xcIjtcbiAgWm9kRmlyc3RQYXJ0eVR5cGVLaW5kMltcIlpvZFVuZGVmaW5lZFwiXSA9IFwiWm9kVW5kZWZpbmVkXCI7XG4gIFpvZEZpcnN0UGFydHlUeXBlS2luZDJbXCJab2ROdWxsXCJdID0gXCJab2ROdWxsXCI7XG4gIFpvZEZpcnN0UGFydHlUeXBlS2luZDJbXCJab2RBbnlcIl0gPSBcIlpvZEFueVwiO1xuICBab2RGaXJzdFBhcnR5VHlwZUtpbmQyW1wiWm9kVW5rbm93blwiXSA9IFwiWm9kVW5rbm93blwiO1xuICBab2RGaXJzdFBhcnR5VHlwZUtpbmQyW1wiWm9kTmV2ZXJcIl0gPSBcIlpvZE5ldmVyXCI7XG4gIFpvZEZpcnN0UGFydHlUeXBlS2luZDJbXCJab2RWb2lkXCJdID0gXCJab2RWb2lkXCI7XG4gIFpvZEZpcnN0UGFydHlUeXBlS2luZDJbXCJab2RBcnJheVwiXSA9IFwiWm9kQXJyYXlcIjtcbiAgWm9kRmlyc3RQYXJ0eVR5cGVLaW5kMltcIlpvZE9iamVjdFwiXSA9IFwiWm9kT2JqZWN0XCI7XG4gIFpvZEZpcnN0UGFydHlUeXBlS2luZDJbXCJab2RVbmlvblwiXSA9IFwiWm9kVW5pb25cIjtcbiAgWm9kRmlyc3RQYXJ0eVR5cGVLaW5kMltcIlpvZERpc2NyaW1pbmF0ZWRVbmlvblwiXSA9IFwiWm9kRGlzY3JpbWluYXRlZFVuaW9uXCI7XG4gIFpvZEZpcnN0UGFydHlUeXBlS2luZDJbXCJab2RJbnRlcnNlY3Rpb25cIl0gPSBcIlpvZEludGVyc2VjdGlvblwiO1xuICBab2RGaXJzdFBhcnR5VHlwZUtpbmQyW1wiWm9kVHVwbGVcIl0gPSBcIlpvZFR1cGxlXCI7XG4gIFpvZEZpcnN0UGFydHlUeXBlS2luZDJbXCJab2RSZWNvcmRcIl0gPSBcIlpvZFJlY29yZFwiO1xuICBab2RGaXJzdFBhcnR5VHlwZUtpbmQyW1wiWm9kTWFwXCJdID0gXCJab2RNYXBcIjtcbiAgWm9kRmlyc3RQYXJ0eVR5cGVLaW5kMltcIlpvZFNldFwiXSA9IFwiWm9kU2V0XCI7XG4gIFpvZEZpcnN0UGFydHlUeXBlS2luZDJbXCJab2RGdW5jdGlvblwiXSA9IFwiWm9kRnVuY3Rpb25cIjtcbiAgWm9kRmlyc3RQYXJ0eVR5cGVLaW5kMltcIlpvZExhenlcIl0gPSBcIlpvZExhenlcIjtcbiAgWm9kRmlyc3RQYXJ0eVR5cGVLaW5kMltcIlpvZExpdGVyYWxcIl0gPSBcIlpvZExpdGVyYWxcIjtcbiAgWm9kRmlyc3RQYXJ0eVR5cGVLaW5kMltcIlpvZEVudW1cIl0gPSBcIlpvZEVudW1cIjtcbiAgWm9kRmlyc3RQYXJ0eVR5cGVLaW5kMltcIlpvZEVmZmVjdHNcIl0gPSBcIlpvZEVmZmVjdHNcIjtcbiAgWm9kRmlyc3RQYXJ0eVR5cGVLaW5kMltcIlpvZE5hdGl2ZUVudW1cIl0gPSBcIlpvZE5hdGl2ZUVudW1cIjtcbiAgWm9kRmlyc3RQYXJ0eVR5cGVLaW5kMltcIlpvZE9wdGlvbmFsXCJdID0gXCJab2RPcHRpb25hbFwiO1xuICBab2RGaXJzdFBhcnR5VHlwZUtpbmQyW1wiWm9kTnVsbGFibGVcIl0gPSBcIlpvZE51bGxhYmxlXCI7XG4gIFpvZEZpcnN0UGFydHlUeXBlS2luZDJbXCJab2REZWZhdWx0XCJdID0gXCJab2REZWZhdWx0XCI7XG4gIFpvZEZpcnN0UGFydHlUeXBlS2luZDJbXCJab2RDYXRjaFwiXSA9IFwiWm9kQ2F0Y2hcIjtcbiAgWm9kRmlyc3RQYXJ0eVR5cGVLaW5kMltcIlpvZFByb21pc2VcIl0gPSBcIlpvZFByb21pc2VcIjtcbiAgWm9kRmlyc3RQYXJ0eVR5cGVLaW5kMltcIlpvZEJyYW5kZWRcIl0gPSBcIlpvZEJyYW5kZWRcIjtcbiAgWm9kRmlyc3RQYXJ0eVR5cGVLaW5kMltcIlpvZFBpcGVsaW5lXCJdID0gXCJab2RQaXBlbGluZVwiO1xuICBab2RGaXJzdFBhcnR5VHlwZUtpbmQyW1wiWm9kUmVhZG9ubHlcIl0gPSBcIlpvZFJlYWRvbmx5XCI7XG59KShab2RGaXJzdFBhcnR5VHlwZUtpbmQgfHwgKFpvZEZpcnN0UGFydHlUeXBlS2luZCA9IHt9KSk7XG52YXIgaW5zdGFuY2VPZlR5cGUgPSAoY2xzLCBwYXJhbXMgPSB7XG4gIG1lc3NhZ2U6IGBJbnB1dCBub3QgaW5zdGFuY2Ugb2YgJHtjbHMubmFtZX1gXG59KSA9PiBjdXN0b20oKGRhdGEpID0+IGRhdGEgaW5zdGFuY2VvZiBjbHMsIHBhcmFtcyk7XG52YXIgc3RyaW5nVHlwZSA9IFpvZFN0cmluZy5jcmVhdGU7XG52YXIgbnVtYmVyVHlwZSA9IFpvZE51bWJlci5jcmVhdGU7XG52YXIgbmFuVHlwZSA9IFpvZE5hTi5jcmVhdGU7XG52YXIgYmlnSW50VHlwZSA9IFpvZEJpZ0ludC5jcmVhdGU7XG52YXIgYm9vbGVhblR5cGUgPSBab2RCb29sZWFuLmNyZWF0ZTtcbnZhciBkYXRlVHlwZSA9IFpvZERhdGUuY3JlYXRlO1xudmFyIHN5bWJvbFR5cGUgPSBab2RTeW1ib2wuY3JlYXRlO1xudmFyIHVuZGVmaW5lZFR5cGUgPSBab2RVbmRlZmluZWQuY3JlYXRlO1xudmFyIG51bGxUeXBlID0gWm9kTnVsbC5jcmVhdGU7XG52YXIgYW55VHlwZSA9IFpvZEFueS5jcmVhdGU7XG52YXIgdW5rbm93blR5cGUgPSBab2RVbmtub3duLmNyZWF0ZTtcbnZhciBuZXZlclR5cGUgPSBab2ROZXZlci5jcmVhdGU7XG52YXIgdm9pZFR5cGUgPSBab2RWb2lkLmNyZWF0ZTtcbnZhciBhcnJheVR5cGUgPSBab2RBcnJheS5jcmVhdGU7XG52YXIgb2JqZWN0VHlwZSA9IFpvZE9iamVjdC5jcmVhdGU7XG52YXIgc3RyaWN0T2JqZWN0VHlwZSA9IFpvZE9iamVjdC5zdHJpY3RDcmVhdGU7XG52YXIgdW5pb25UeXBlID0gWm9kVW5pb24uY3JlYXRlO1xudmFyIGRpc2NyaW1pbmF0ZWRVbmlvblR5cGUgPSBab2REaXNjcmltaW5hdGVkVW5pb24uY3JlYXRlO1xudmFyIGludGVyc2VjdGlvblR5cGUgPSBab2RJbnRlcnNlY3Rpb24uY3JlYXRlO1xudmFyIHR1cGxlVHlwZSA9IFpvZFR1cGxlLmNyZWF0ZTtcbnZhciByZWNvcmRUeXBlID0gWm9kUmVjb3JkLmNyZWF0ZTtcbnZhciBtYXBUeXBlID0gWm9kTWFwLmNyZWF0ZTtcbnZhciBzZXRUeXBlID0gWm9kU2V0LmNyZWF0ZTtcbnZhciBmdW5jdGlvblR5cGUgPSBab2RGdW5jdGlvbi5jcmVhdGU7XG52YXIgbGF6eVR5cGUgPSBab2RMYXp5LmNyZWF0ZTtcbnZhciBsaXRlcmFsVHlwZSA9IFpvZExpdGVyYWwuY3JlYXRlO1xudmFyIGVudW1UeXBlID0gWm9kRW51bS5jcmVhdGU7XG52YXIgbmF0aXZlRW51bVR5cGUgPSBab2ROYXRpdmVFbnVtLmNyZWF0ZTtcbnZhciBwcm9taXNlVHlwZSA9IFpvZFByb21pc2UuY3JlYXRlO1xudmFyIGVmZmVjdHNUeXBlID0gWm9kRWZmZWN0cy5jcmVhdGU7XG52YXIgb3B0aW9uYWxUeXBlID0gWm9kT3B0aW9uYWwuY3JlYXRlO1xudmFyIG51bGxhYmxlVHlwZSA9IFpvZE51bGxhYmxlLmNyZWF0ZTtcbnZhciBwcmVwcm9jZXNzVHlwZSA9IFpvZEVmZmVjdHMuY3JlYXRlV2l0aFByZXByb2Nlc3M7XG52YXIgcGlwZWxpbmVUeXBlID0gWm9kUGlwZWxpbmUuY3JlYXRlO1xudmFyIG9zdHJpbmcgPSAoKSA9PiBzdHJpbmdUeXBlKCkub3B0aW9uYWwoKTtcbnZhciBvbnVtYmVyID0gKCkgPT4gbnVtYmVyVHlwZSgpLm9wdGlvbmFsKCk7XG52YXIgb2Jvb2xlYW4gPSAoKSA9PiBib29sZWFuVHlwZSgpLm9wdGlvbmFsKCk7XG52YXIgY29lcmNlID0ge1xuICBzdHJpbmc6IChhcmcpID0+IFpvZFN0cmluZy5jcmVhdGUoeyAuLi5hcmcsIGNvZXJjZTogdHJ1ZSB9KSxcbiAgbnVtYmVyOiAoYXJnKSA9PiBab2ROdW1iZXIuY3JlYXRlKHsgLi4uYXJnLCBjb2VyY2U6IHRydWUgfSksXG4gIGJvb2xlYW46IChhcmcpID0+IFpvZEJvb2xlYW4uY3JlYXRlKHtcbiAgICAuLi5hcmcsXG4gICAgY29lcmNlOiB0cnVlXG4gIH0pLFxuICBiaWdpbnQ6IChhcmcpID0+IFpvZEJpZ0ludC5jcmVhdGUoeyAuLi5hcmcsIGNvZXJjZTogdHJ1ZSB9KSxcbiAgZGF0ZTogKGFyZykgPT4gWm9kRGF0ZS5jcmVhdGUoeyAuLi5hcmcsIGNvZXJjZTogdHJ1ZSB9KVxufTtcbnZhciBORVZFUiA9IElOVkFMSUQ7XG52YXIgeiA9IC8qIEBfX1BVUkVfXyAqLyBPYmplY3QuZnJlZXplKHtcbiAgX19wcm90b19fOiBudWxsLFxuICBkZWZhdWx0RXJyb3JNYXA6IGVycm9yTWFwLFxuICBzZXRFcnJvck1hcCxcbiAgZ2V0RXJyb3JNYXAsXG4gIG1ha2VJc3N1ZSxcbiAgRU1QVFlfUEFUSCxcbiAgYWRkSXNzdWVUb0NvbnRleHQsXG4gIFBhcnNlU3RhdHVzLFxuICBJTlZBTElELFxuICBESVJUWSxcbiAgT0ssXG4gIGlzQWJvcnRlZCxcbiAgaXNEaXJ0eSxcbiAgaXNWYWxpZCxcbiAgaXNBc3luYyxcbiAgZ2V0IHV0aWwoKSB7XG4gICAgcmV0dXJuIHV0aWw7XG4gIH0sXG4gIGdldCBvYmplY3RVdGlsKCkge1xuICAgIHJldHVybiBvYmplY3RVdGlsO1xuICB9LFxuICBab2RQYXJzZWRUeXBlLFxuICBnZXRQYXJzZWRUeXBlLFxuICBab2RUeXBlLFxuICBkYXRldGltZVJlZ2V4LFxuICBab2RTdHJpbmcsXG4gIFpvZE51bWJlcixcbiAgWm9kQmlnSW50LFxuICBab2RCb29sZWFuLFxuICBab2REYXRlLFxuICBab2RTeW1ib2wsXG4gIFpvZFVuZGVmaW5lZCxcbiAgWm9kTnVsbCxcbiAgWm9kQW55LFxuICBab2RVbmtub3duLFxuICBab2ROZXZlcixcbiAgWm9kVm9pZCxcbiAgWm9kQXJyYXksXG4gIFpvZE9iamVjdCxcbiAgWm9kVW5pb24sXG4gIFpvZERpc2NyaW1pbmF0ZWRVbmlvbixcbiAgWm9kSW50ZXJzZWN0aW9uLFxuICBab2RUdXBsZSxcbiAgWm9kUmVjb3JkLFxuICBab2RNYXAsXG4gIFpvZFNldCxcbiAgWm9kRnVuY3Rpb24sXG4gIFpvZExhenksXG4gIFpvZExpdGVyYWwsXG4gIFpvZEVudW0sXG4gIFpvZE5hdGl2ZUVudW0sXG4gIFpvZFByb21pc2UsXG4gIFpvZEVmZmVjdHMsXG4gIFpvZFRyYW5zZm9ybWVyOiBab2RFZmZlY3RzLFxuICBab2RPcHRpb25hbCxcbiAgWm9kTnVsbGFibGUsXG4gIFpvZERlZmF1bHQsXG4gIFpvZENhdGNoLFxuICBab2ROYU4sXG4gIEJSQU5ELFxuICBab2RCcmFuZGVkLFxuICBab2RQaXBlbGluZSxcbiAgWm9kUmVhZG9ubHksXG4gIGN1c3RvbSxcbiAgU2NoZW1hOiBab2RUeXBlLFxuICBab2RTY2hlbWE6IFpvZFR5cGUsXG4gIGxhdGUsXG4gIGdldCBab2RGaXJzdFBhcnR5VHlwZUtpbmQoKSB7XG4gICAgcmV0dXJuIFpvZEZpcnN0UGFydHlUeXBlS2luZDtcbiAgfSxcbiAgY29lcmNlLFxuICBhbnk6IGFueVR5cGUsXG4gIGFycmF5OiBhcnJheVR5cGUsXG4gIGJpZ2ludDogYmlnSW50VHlwZSxcbiAgYm9vbGVhbjogYm9vbGVhblR5cGUsXG4gIGRhdGU6IGRhdGVUeXBlLFxuICBkaXNjcmltaW5hdGVkVW5pb246IGRpc2NyaW1pbmF0ZWRVbmlvblR5cGUsXG4gIGVmZmVjdDogZWZmZWN0c1R5cGUsXG4gIFwiZW51bVwiOiBlbnVtVHlwZSxcbiAgXCJmdW5jdGlvblwiOiBmdW5jdGlvblR5cGUsXG4gIFwiaW5zdGFuY2VvZlwiOiBpbnN0YW5jZU9mVHlwZSxcbiAgaW50ZXJzZWN0aW9uOiBpbnRlcnNlY3Rpb25UeXBlLFxuICBsYXp5OiBsYXp5VHlwZSxcbiAgbGl0ZXJhbDogbGl0ZXJhbFR5cGUsXG4gIG1hcDogbWFwVHlwZSxcbiAgbmFuOiBuYW5UeXBlLFxuICBuYXRpdmVFbnVtOiBuYXRpdmVFbnVtVHlwZSxcbiAgbmV2ZXI6IG5ldmVyVHlwZSxcbiAgXCJudWxsXCI6IG51bGxUeXBlLFxuICBudWxsYWJsZTogbnVsbGFibGVUeXBlLFxuICBudW1iZXI6IG51bWJlclR5cGUsXG4gIG9iamVjdDogb2JqZWN0VHlwZSxcbiAgb2Jvb2xlYW4sXG4gIG9udW1iZXIsXG4gIG9wdGlvbmFsOiBvcHRpb25hbFR5cGUsXG4gIG9zdHJpbmcsXG4gIHBpcGVsaW5lOiBwaXBlbGluZVR5cGUsXG4gIHByZXByb2Nlc3M6IHByZXByb2Nlc3NUeXBlLFxuICBwcm9taXNlOiBwcm9taXNlVHlwZSxcbiAgcmVjb3JkOiByZWNvcmRUeXBlLFxuICBzZXQ6IHNldFR5cGUsXG4gIHN0cmljdE9iamVjdDogc3RyaWN0T2JqZWN0VHlwZSxcbiAgc3RyaW5nOiBzdHJpbmdUeXBlLFxuICBzeW1ib2w6IHN5bWJvbFR5cGUsXG4gIHRyYW5zZm9ybWVyOiBlZmZlY3RzVHlwZSxcbiAgdHVwbGU6IHR1cGxlVHlwZSxcbiAgXCJ1bmRlZmluZWRcIjogdW5kZWZpbmVkVHlwZSxcbiAgdW5pb246IHVuaW9uVHlwZSxcbiAgdW5rbm93bjogdW5rbm93blR5cGUsXG4gIFwidm9pZFwiOiB2b2lkVHlwZSxcbiAgTkVWRVIsXG4gIFpvZElzc3VlQ29kZSxcbiAgcXVvdGVsZXNzSnNvbixcbiAgWm9kRXJyb3Jcbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvQG1vZGVsY29udGV4dHByb3RvY29sL3Nkay9kaXN0L2VzbS90eXBlcy5qc1xudmFyIExBVEVTVF9QUk9UT0NPTF9WRVJTSU9OID0gXCIyMDI1LTA2LTE4XCI7XG52YXIgREVGQVVMVF9ORUdPVElBVEVEX1BST1RPQ09MX1ZFUlNJT04gPSBcIjIwMjUtMDMtMjZcIjtcbnZhciBTVVBQT1JURURfUFJPVE9DT0xfVkVSU0lPTlMgPSBbXG4gIExBVEVTVF9QUk9UT0NPTF9WRVJTSU9OLFxuICBcIjIwMjUtMDMtMjZcIixcbiAgXCIyMDI0LTExLTA1XCIsXG4gIFwiMjAyNC0xMC0wN1wiXG5dO1xudmFyIEpTT05SUENfVkVSU0lPTiA9IFwiMi4wXCI7XG52YXIgUHJvZ3Jlc3NUb2tlblNjaGVtYSA9IHoudW5pb24oW3ouc3RyaW5nKCksIHoubnVtYmVyKCkuaW50KCldKTtcbnZhciBDdXJzb3JTY2hlbWEgPSB6LnN0cmluZygpO1xudmFyIFJlcXVlc3RNZXRhU2NoZW1hID0gei5vYmplY3Qoe1xuICAvKipcbiAgICogSWYgc3BlY2lmaWVkLCB0aGUgY2FsbGVyIGlzIHJlcXVlc3Rpbmcgb3V0LW9mLWJhbmQgcHJvZ3Jlc3Mgbm90aWZpY2F0aW9ucyBmb3IgdGhpcyByZXF1ZXN0IChhcyByZXByZXNlbnRlZCBieSBub3RpZmljYXRpb25zL3Byb2dyZXNzKS4gVGhlIHZhbHVlIG9mIHRoaXMgcGFyYW1ldGVyIGlzIGFuIG9wYXF1ZSB0b2tlbiB0aGF0IHdpbGwgYmUgYXR0YWNoZWQgdG8gYW55IHN1YnNlcXVlbnQgbm90aWZpY2F0aW9ucy4gVGhlIHJlY2VpdmVyIGlzIG5vdCBvYmxpZ2F0ZWQgdG8gcHJvdmlkZSB0aGVzZSBub3RpZmljYXRpb25zLlxuICAgKi9cbiAgcHJvZ3Jlc3NUb2tlbjogei5vcHRpb25hbChQcm9ncmVzc1Rva2VuU2NoZW1hKVxufSkucGFzc3Rocm91Z2goKTtcbnZhciBCYXNlUmVxdWVzdFBhcmFtc1NjaGVtYSA9IHoub2JqZWN0KHtcbiAgX21ldGE6IHoub3B0aW9uYWwoUmVxdWVzdE1ldGFTY2hlbWEpXG59KS5wYXNzdGhyb3VnaCgpO1xudmFyIFJlcXVlc3RTY2hlbWEgPSB6Lm9iamVjdCh7XG4gIG1ldGhvZDogei5zdHJpbmcoKSxcbiAgcGFyYW1zOiB6Lm9wdGlvbmFsKEJhc2VSZXF1ZXN0UGFyYW1zU2NoZW1hKVxufSk7XG52YXIgQmFzZU5vdGlmaWNhdGlvblBhcmFtc1NjaGVtYSA9IHoub2JqZWN0KHtcbiAgLyoqXG4gICAqIFNlZSBbTUNQIHNwZWNpZmljYXRpb25dKGh0dHBzOi8vZ2l0aHViLmNvbS9tb2RlbGNvbnRleHRwcm90b2NvbC9tb2RlbGNvbnRleHRwcm90b2NvbC9ibG9iLzQ3MzM5YzAzYzE0M2JiNGVjMDFhMjZlNzIxYTFiOGZlNjY2MzRlYmUvZG9jcy9zcGVjaWZpY2F0aW9uL2RyYWZ0L2Jhc2ljL2luZGV4Lm1keCNnZW5lcmFsLWZpZWxkcylcbiAgICogZm9yIG5vdGVzIG9uIF9tZXRhIHVzYWdlLlxuICAgKi9cbiAgX21ldGE6IHoub3B0aW9uYWwoei5vYmplY3Qoe30pLnBhc3N0aHJvdWdoKCkpXG59KS5wYXNzdGhyb3VnaCgpO1xudmFyIE5vdGlmaWNhdGlvblNjaGVtYSA9IHoub2JqZWN0KHtcbiAgbWV0aG9kOiB6LnN0cmluZygpLFxuICBwYXJhbXM6IHoub3B0aW9uYWwoQmFzZU5vdGlmaWNhdGlvblBhcmFtc1NjaGVtYSlcbn0pO1xudmFyIFJlc3VsdFNjaGVtYSA9IHoub2JqZWN0KHtcbiAgLyoqXG4gICAqIFNlZSBbTUNQIHNwZWNpZmljYXRpb25dKGh0dHBzOi8vZ2l0aHViLmNvbS9tb2RlbGNvbnRleHRwcm90b2NvbC9tb2RlbGNvbnRleHRwcm90b2NvbC9ibG9iLzQ3MzM5YzAzYzE0M2JiNGVjMDFhMjZlNzIxYTFiOGZlNjY2MzRlYmUvZG9jcy9zcGVjaWZpY2F0aW9uL2RyYWZ0L2Jhc2ljL2luZGV4Lm1keCNnZW5lcmFsLWZpZWxkcylcbiAgICogZm9yIG5vdGVzIG9uIF9tZXRhIHVzYWdlLlxuICAgKi9cbiAgX21ldGE6IHoub3B0aW9uYWwoei5vYmplY3Qoe30pLnBhc3N0aHJvdWdoKCkpXG59KS5wYXNzdGhyb3VnaCgpO1xudmFyIFJlcXVlc3RJZFNjaGVtYSA9IHoudW5pb24oW3ouc3RyaW5nKCksIHoubnVtYmVyKCkuaW50KCldKTtcbnZhciBKU09OUlBDUmVxdWVzdFNjaGVtYSA9IHoub2JqZWN0KHtcbiAganNvbnJwYzogei5saXRlcmFsKEpTT05SUENfVkVSU0lPTiksXG4gIGlkOiBSZXF1ZXN0SWRTY2hlbWFcbn0pLm1lcmdlKFJlcXVlc3RTY2hlbWEpLnN0cmljdCgpO1xudmFyIGlzSlNPTlJQQ1JlcXVlc3QgPSAodmFsdWUpID0+IEpTT05SUENSZXF1ZXN0U2NoZW1hLnNhZmVQYXJzZSh2YWx1ZSkuc3VjY2VzcztcbnZhciBKU09OUlBDTm90aWZpY2F0aW9uU2NoZW1hID0gei5vYmplY3Qoe1xuICBqc29ucnBjOiB6LmxpdGVyYWwoSlNPTlJQQ19WRVJTSU9OKVxufSkubWVyZ2UoTm90aWZpY2F0aW9uU2NoZW1hKS5zdHJpY3QoKTtcbnZhciBKU09OUlBDUmVzcG9uc2VTY2hlbWEgPSB6Lm9iamVjdCh7XG4gIGpzb25ycGM6IHoubGl0ZXJhbChKU09OUlBDX1ZFUlNJT04pLFxuICBpZDogUmVxdWVzdElkU2NoZW1hLFxuICByZXN1bHQ6IFJlc3VsdFNjaGVtYVxufSkuc3RyaWN0KCk7XG52YXIgaXNKU09OUlBDUmVzcG9uc2UgPSAodmFsdWUpID0+IEpTT05SUENSZXNwb25zZVNjaGVtYS5zYWZlUGFyc2UodmFsdWUpLnN1Y2Nlc3M7XG52YXIgRXJyb3JDb2RlO1xuKGZ1bmN0aW9uKEVycm9yQ29kZTIpIHtcbiAgRXJyb3JDb2RlMltFcnJvckNvZGUyW1wiQ29ubmVjdGlvbkNsb3NlZFwiXSA9IC0zMmUzXSA9IFwiQ29ubmVjdGlvbkNsb3NlZFwiO1xuICBFcnJvckNvZGUyW0Vycm9yQ29kZTJbXCJSZXF1ZXN0VGltZW91dFwiXSA9IC0zMjAwMV0gPSBcIlJlcXVlc3RUaW1lb3V0XCI7XG4gIEVycm9yQ29kZTJbRXJyb3JDb2RlMltcIlBhcnNlRXJyb3JcIl0gPSAtMzI3MDBdID0gXCJQYXJzZUVycm9yXCI7XG4gIEVycm9yQ29kZTJbRXJyb3JDb2RlMltcIkludmFsaWRSZXF1ZXN0XCJdID0gLTMyNjAwXSA9IFwiSW52YWxpZFJlcXVlc3RcIjtcbiAgRXJyb3JDb2RlMltFcnJvckNvZGUyW1wiTWV0aG9kTm90Rm91bmRcIl0gPSAtMzI2MDFdID0gXCJNZXRob2ROb3RGb3VuZFwiO1xuICBFcnJvckNvZGUyW0Vycm9yQ29kZTJbXCJJbnZhbGlkUGFyYW1zXCJdID0gLTMyNjAyXSA9IFwiSW52YWxpZFBhcmFtc1wiO1xuICBFcnJvckNvZGUyW0Vycm9yQ29kZTJbXCJJbnRlcm5hbEVycm9yXCJdID0gLTMyNjAzXSA9IFwiSW50ZXJuYWxFcnJvclwiO1xufSkoRXJyb3JDb2RlIHx8IChFcnJvckNvZGUgPSB7fSkpO1xudmFyIEpTT05SUENFcnJvclNjaGVtYSA9IHoub2JqZWN0KHtcbiAganNvbnJwYzogei5saXRlcmFsKEpTT05SUENfVkVSU0lPTiksXG4gIGlkOiBSZXF1ZXN0SWRTY2hlbWEsXG4gIGVycm9yOiB6Lm9iamVjdCh7XG4gICAgLyoqXG4gICAgICogVGhlIGVycm9yIHR5cGUgdGhhdCBvY2N1cnJlZC5cbiAgICAgKi9cbiAgICBjb2RlOiB6Lm51bWJlcigpLmludCgpLFxuICAgIC8qKlxuICAgICAqIEEgc2hvcnQgZGVzY3JpcHRpb24gb2YgdGhlIGVycm9yLiBUaGUgbWVzc2FnZSBTSE9VTEQgYmUgbGltaXRlZCB0byBhIGNvbmNpc2Ugc2luZ2xlIHNlbnRlbmNlLlxuICAgICAqL1xuICAgIG1lc3NhZ2U6IHouc3RyaW5nKCksXG4gICAgLyoqXG4gICAgICogQWRkaXRpb25hbCBpbmZvcm1hdGlvbiBhYm91dCB0aGUgZXJyb3IuIFRoZSB2YWx1ZSBvZiB0aGlzIG1lbWJlciBpcyBkZWZpbmVkIGJ5IHRoZSBzZW5kZXIgKGUuZy4gZGV0YWlsZWQgZXJyb3IgaW5mb3JtYXRpb24sIG5lc3RlZCBlcnJvcnMgZXRjLikuXG4gICAgICovXG4gICAgZGF0YTogei5vcHRpb25hbCh6LnVua25vd24oKSlcbiAgfSlcbn0pLnN0cmljdCgpO1xudmFyIGlzSlNPTlJQQ0Vycm9yID0gKHZhbHVlKSA9PiBKU09OUlBDRXJyb3JTY2hlbWEuc2FmZVBhcnNlKHZhbHVlKS5zdWNjZXNzO1xudmFyIEpTT05SUENNZXNzYWdlU2NoZW1hID0gei51bmlvbihbXG4gIEpTT05SUENSZXF1ZXN0U2NoZW1hLFxuICBKU09OUlBDTm90aWZpY2F0aW9uU2NoZW1hLFxuICBKU09OUlBDUmVzcG9uc2VTY2hlbWEsXG4gIEpTT05SUENFcnJvclNjaGVtYVxuXSk7XG52YXIgRW1wdHlSZXN1bHRTY2hlbWEgPSBSZXN1bHRTY2hlbWEuc3RyaWN0KCk7XG52YXIgQ2FuY2VsbGVkTm90aWZpY2F0aW9uU2NoZW1hID0gTm90aWZpY2F0aW9uU2NoZW1hLmV4dGVuZCh7XG4gIG1ldGhvZDogei5saXRlcmFsKFwibm90aWZpY2F0aW9ucy9jYW5jZWxsZWRcIiksXG4gIHBhcmFtczogQmFzZU5vdGlmaWNhdGlvblBhcmFtc1NjaGVtYS5leHRlbmQoe1xuICAgIC8qKlxuICAgICAqIFRoZSBJRCBvZiB0aGUgcmVxdWVzdCB0byBjYW5jZWwuXG4gICAgICpcbiAgICAgKiBUaGlzIE1VU1QgY29ycmVzcG9uZCB0byB0aGUgSUQgb2YgYSByZXF1ZXN0IHByZXZpb3VzbHkgaXNzdWVkIGluIHRoZSBzYW1lIGRpcmVjdGlvbi5cbiAgICAgKi9cbiAgICByZXF1ZXN0SWQ6IFJlcXVlc3RJZFNjaGVtYSxcbiAgICAvKipcbiAgICAgKiBBbiBvcHRpb25hbCBzdHJpbmcgZGVzY3JpYmluZyB0aGUgcmVhc29uIGZvciB0aGUgY2FuY2VsbGF0aW9uLiBUaGlzIE1BWSBiZSBsb2dnZWQgb3IgcHJlc2VudGVkIHRvIHRoZSB1c2VyLlxuICAgICAqL1xuICAgIHJlYXNvbjogei5zdHJpbmcoKS5vcHRpb25hbCgpXG4gIH0pXG59KTtcbnZhciBCYXNlTWV0YWRhdGFTY2hlbWEgPSB6Lm9iamVjdCh7XG4gIC8qKiBJbnRlbmRlZCBmb3IgcHJvZ3JhbW1hdGljIG9yIGxvZ2ljYWwgdXNlLCBidXQgdXNlZCBhcyBhIGRpc3BsYXkgbmFtZSBpbiBwYXN0IHNwZWNzIG9yIGZhbGxiYWNrICovXG4gIG5hbWU6IHouc3RyaW5nKCksXG4gIC8qKlxuICAqIEludGVuZGVkIGZvciBVSSBhbmQgZW5kLXVzZXIgY29udGV4dHMgXHUyMDE0IG9wdGltaXplZCB0byBiZSBodW1hbi1yZWFkYWJsZSBhbmQgZWFzaWx5IHVuZGVyc3Rvb2QsXG4gICogZXZlbiBieSB0aG9zZSB1bmZhbWlsaWFyIHdpdGggZG9tYWluLXNwZWNpZmljIHRlcm1pbm9sb2d5LlxuICAqXG4gICogSWYgbm90IHByb3ZpZGVkLCB0aGUgbmFtZSBzaG91bGQgYmUgdXNlZCBmb3IgZGlzcGxheSAoZXhjZXB0IGZvciBUb29sLFxuICAqIHdoZXJlIGBhbm5vdGF0aW9ucy50aXRsZWAgc2hvdWxkIGJlIGdpdmVuIHByZWNlZGVuY2Ugb3ZlciB1c2luZyBgbmFtZWAsXG4gICogaWYgcHJlc2VudCkuXG4gICovXG4gIHRpdGxlOiB6Lm9wdGlvbmFsKHouc3RyaW5nKCkpXG59KS5wYXNzdGhyb3VnaCgpO1xudmFyIEltcGxlbWVudGF0aW9uU2NoZW1hID0gQmFzZU1ldGFkYXRhU2NoZW1hLmV4dGVuZCh7XG4gIHZlcnNpb246IHouc3RyaW5nKClcbn0pO1xudmFyIENsaWVudENhcGFiaWxpdGllc1NjaGVtYSA9IHoub2JqZWN0KHtcbiAgLyoqXG4gICAqIEV4cGVyaW1lbnRhbCwgbm9uLXN0YW5kYXJkIGNhcGFiaWxpdGllcyB0aGF0IHRoZSBjbGllbnQgc3VwcG9ydHMuXG4gICAqL1xuICBleHBlcmltZW50YWw6IHoub3B0aW9uYWwoei5vYmplY3Qoe30pLnBhc3N0aHJvdWdoKCkpLFxuICAvKipcbiAgICogUHJlc2VudCBpZiB0aGUgY2xpZW50IHN1cHBvcnRzIHNhbXBsaW5nIGZyb20gYW4gTExNLlxuICAgKi9cbiAgc2FtcGxpbmc6IHoub3B0aW9uYWwoei5vYmplY3Qoe30pLnBhc3N0aHJvdWdoKCkpLFxuICAvKipcbiAgICogUHJlc2VudCBpZiB0aGUgY2xpZW50IHN1cHBvcnRzIGVsaWNpdGluZyB1c2VyIGlucHV0LlxuICAgKi9cbiAgZWxpY2l0YXRpb246IHoub3B0aW9uYWwoei5vYmplY3Qoe30pLnBhc3N0aHJvdWdoKCkpLFxuICAvKipcbiAgICogUHJlc2VudCBpZiB0aGUgY2xpZW50IHN1cHBvcnRzIGxpc3Rpbmcgcm9vdHMuXG4gICAqL1xuICByb290czogei5vcHRpb25hbCh6Lm9iamVjdCh7XG4gICAgLyoqXG4gICAgICogV2hldGhlciB0aGUgY2xpZW50IHN1cHBvcnRzIGlzc3Vpbmcgbm90aWZpY2F0aW9ucyBmb3IgY2hhbmdlcyB0byB0aGUgcm9vdHMgbGlzdC5cbiAgICAgKi9cbiAgICBsaXN0Q2hhbmdlZDogei5vcHRpb25hbCh6LmJvb2xlYW4oKSlcbiAgfSkucGFzc3Rocm91Z2goKSlcbn0pLnBhc3N0aHJvdWdoKCk7XG52YXIgSW5pdGlhbGl6ZVJlcXVlc3RTY2hlbWEgPSBSZXF1ZXN0U2NoZW1hLmV4dGVuZCh7XG4gIG1ldGhvZDogei5saXRlcmFsKFwiaW5pdGlhbGl6ZVwiKSxcbiAgcGFyYW1zOiBCYXNlUmVxdWVzdFBhcmFtc1NjaGVtYS5leHRlbmQoe1xuICAgIC8qKlxuICAgICAqIFRoZSBsYXRlc3QgdmVyc2lvbiBvZiB0aGUgTW9kZWwgQ29udGV4dCBQcm90b2NvbCB0aGF0IHRoZSBjbGllbnQgc3VwcG9ydHMuIFRoZSBjbGllbnQgTUFZIGRlY2lkZSB0byBzdXBwb3J0IG9sZGVyIHZlcnNpb25zIGFzIHdlbGwuXG4gICAgICovXG4gICAgcHJvdG9jb2xWZXJzaW9uOiB6LnN0cmluZygpLFxuICAgIGNhcGFiaWxpdGllczogQ2xpZW50Q2FwYWJpbGl0aWVzU2NoZW1hLFxuICAgIGNsaWVudEluZm86IEltcGxlbWVudGF0aW9uU2NoZW1hXG4gIH0pXG59KTtcbnZhciBpc0luaXRpYWxpemVSZXF1ZXN0ID0gKHZhbHVlKSA9PiBJbml0aWFsaXplUmVxdWVzdFNjaGVtYS5zYWZlUGFyc2UodmFsdWUpLnN1Y2Nlc3M7XG52YXIgU2VydmVyQ2FwYWJpbGl0aWVzU2NoZW1hID0gei5vYmplY3Qoe1xuICAvKipcbiAgICogRXhwZXJpbWVudGFsLCBub24tc3RhbmRhcmQgY2FwYWJpbGl0aWVzIHRoYXQgdGhlIHNlcnZlciBzdXBwb3J0cy5cbiAgICovXG4gIGV4cGVyaW1lbnRhbDogei5vcHRpb25hbCh6Lm9iamVjdCh7fSkucGFzc3Rocm91Z2goKSksXG4gIC8qKlxuICAgKiBQcmVzZW50IGlmIHRoZSBzZXJ2ZXIgc3VwcG9ydHMgc2VuZGluZyBsb2cgbWVzc2FnZXMgdG8gdGhlIGNsaWVudC5cbiAgICovXG4gIGxvZ2dpbmc6IHoub3B0aW9uYWwoei5vYmplY3Qoe30pLnBhc3N0aHJvdWdoKCkpLFxuICAvKipcbiAgICogUHJlc2VudCBpZiB0aGUgc2VydmVyIHN1cHBvcnRzIHNlbmRpbmcgY29tcGxldGlvbnMgdG8gdGhlIGNsaWVudC5cbiAgICovXG4gIGNvbXBsZXRpb25zOiB6Lm9wdGlvbmFsKHoub2JqZWN0KHt9KS5wYXNzdGhyb3VnaCgpKSxcbiAgLyoqXG4gICAqIFByZXNlbnQgaWYgdGhlIHNlcnZlciBvZmZlcnMgYW55IHByb21wdCB0ZW1wbGF0ZXMuXG4gICAqL1xuICBwcm9tcHRzOiB6Lm9wdGlvbmFsKHoub2JqZWN0KHtcbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHRoaXMgc2VydmVyIHN1cHBvcnRzIGlzc3Vpbmcgbm90aWZpY2F0aW9ucyBmb3IgY2hhbmdlcyB0byB0aGUgcHJvbXB0IGxpc3QuXG4gICAgICovXG4gICAgbGlzdENoYW5nZWQ6IHoub3B0aW9uYWwoei5ib29sZWFuKCkpXG4gIH0pLnBhc3N0aHJvdWdoKCkpLFxuICAvKipcbiAgICogUHJlc2VudCBpZiB0aGUgc2VydmVyIG9mZmVycyBhbnkgcmVzb3VyY2VzIHRvIHJlYWQuXG4gICAqL1xuICByZXNvdXJjZXM6IHoub3B0aW9uYWwoei5vYmplY3Qoe1xuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdGhpcyBzZXJ2ZXIgc3VwcG9ydHMgY2xpZW50cyBzdWJzY3JpYmluZyB0byByZXNvdXJjZSB1cGRhdGVzLlxuICAgICAqL1xuICAgIHN1YnNjcmliZTogei5vcHRpb25hbCh6LmJvb2xlYW4oKSksXG4gICAgLyoqXG4gICAgICogV2hldGhlciB0aGlzIHNlcnZlciBzdXBwb3J0cyBpc3N1aW5nIG5vdGlmaWNhdGlvbnMgZm9yIGNoYW5nZXMgdG8gdGhlIHJlc291cmNlIGxpc3QuXG4gICAgICovXG4gICAgbGlzdENoYW5nZWQ6IHoub3B0aW9uYWwoei5ib29sZWFuKCkpXG4gIH0pLnBhc3N0aHJvdWdoKCkpLFxuICAvKipcbiAgICogUHJlc2VudCBpZiB0aGUgc2VydmVyIG9mZmVycyBhbnkgdG9vbHMgdG8gY2FsbC5cbiAgICovXG4gIHRvb2xzOiB6Lm9wdGlvbmFsKHoub2JqZWN0KHtcbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHRoaXMgc2VydmVyIHN1cHBvcnRzIGlzc3Vpbmcgbm90aWZpY2F0aW9ucyBmb3IgY2hhbmdlcyB0byB0aGUgdG9vbCBsaXN0LlxuICAgICAqL1xuICAgIGxpc3RDaGFuZ2VkOiB6Lm9wdGlvbmFsKHouYm9vbGVhbigpKVxuICB9KS5wYXNzdGhyb3VnaCgpKVxufSkucGFzc3Rocm91Z2goKTtcbnZhciBJbml0aWFsaXplUmVzdWx0U2NoZW1hID0gUmVzdWx0U2NoZW1hLmV4dGVuZCh7XG4gIC8qKlxuICAgKiBUaGUgdmVyc2lvbiBvZiB0aGUgTW9kZWwgQ29udGV4dCBQcm90b2NvbCB0aGF0IHRoZSBzZXJ2ZXIgd2FudHMgdG8gdXNlLiBUaGlzIG1heSBub3QgbWF0Y2ggdGhlIHZlcnNpb24gdGhhdCB0aGUgY2xpZW50IHJlcXVlc3RlZC4gSWYgdGhlIGNsaWVudCBjYW5ub3Qgc3VwcG9ydCB0aGlzIHZlcnNpb24sIGl0IE1VU1QgZGlzY29ubmVjdC5cbiAgICovXG4gIHByb3RvY29sVmVyc2lvbjogei5zdHJpbmcoKSxcbiAgY2FwYWJpbGl0aWVzOiBTZXJ2ZXJDYXBhYmlsaXRpZXNTY2hlbWEsXG4gIHNlcnZlckluZm86IEltcGxlbWVudGF0aW9uU2NoZW1hLFxuICAvKipcbiAgICogSW5zdHJ1Y3Rpb25zIGRlc2NyaWJpbmcgaG93IHRvIHVzZSB0aGUgc2VydmVyIGFuZCBpdHMgZmVhdHVyZXMuXG4gICAqXG4gICAqIFRoaXMgY2FuIGJlIHVzZWQgYnkgY2xpZW50cyB0byBpbXByb3ZlIHRoZSBMTE0ncyB1bmRlcnN0YW5kaW5nIG9mIGF2YWlsYWJsZSB0b29scywgcmVzb3VyY2VzLCBldGMuIEl0IGNhbiBiZSB0aG91Z2h0IG9mIGxpa2UgYSBcImhpbnRcIiB0byB0aGUgbW9kZWwuIEZvciBleGFtcGxlLCB0aGlzIGluZm9ybWF0aW9uIE1BWSBiZSBhZGRlZCB0byB0aGUgc3lzdGVtIHByb21wdC5cbiAgICovXG4gIGluc3RydWN0aW9uczogei5vcHRpb25hbCh6LnN0cmluZygpKVxufSk7XG52YXIgSW5pdGlhbGl6ZWROb3RpZmljYXRpb25TY2hlbWEgPSBOb3RpZmljYXRpb25TY2hlbWEuZXh0ZW5kKHtcbiAgbWV0aG9kOiB6LmxpdGVyYWwoXCJub3RpZmljYXRpb25zL2luaXRpYWxpemVkXCIpXG59KTtcbnZhciBQaW5nUmVxdWVzdFNjaGVtYSA9IFJlcXVlc3RTY2hlbWEuZXh0ZW5kKHtcbiAgbWV0aG9kOiB6LmxpdGVyYWwoXCJwaW5nXCIpXG59KTtcbnZhciBQcm9ncmVzc1NjaGVtYSA9IHoub2JqZWN0KHtcbiAgLyoqXG4gICAqIFRoZSBwcm9ncmVzcyB0aHVzIGZhci4gVGhpcyBzaG91bGQgaW5jcmVhc2UgZXZlcnkgdGltZSBwcm9ncmVzcyBpcyBtYWRlLCBldmVuIGlmIHRoZSB0b3RhbCBpcyB1bmtub3duLlxuICAgKi9cbiAgcHJvZ3Jlc3M6IHoubnVtYmVyKCksXG4gIC8qKlxuICAgKiBUb3RhbCBudW1iZXIgb2YgaXRlbXMgdG8gcHJvY2VzcyAob3IgdG90YWwgcHJvZ3Jlc3MgcmVxdWlyZWQpLCBpZiBrbm93bi5cbiAgICovXG4gIHRvdGFsOiB6Lm9wdGlvbmFsKHoubnVtYmVyKCkpLFxuICAvKipcbiAgICogQW4gb3B0aW9uYWwgbWVzc2FnZSBkZXNjcmliaW5nIHRoZSBjdXJyZW50IHByb2dyZXNzLlxuICAgKi9cbiAgbWVzc2FnZTogei5vcHRpb25hbCh6LnN0cmluZygpKVxufSkucGFzc3Rocm91Z2goKTtcbnZhciBQcm9ncmVzc05vdGlmaWNhdGlvblNjaGVtYSA9IE5vdGlmaWNhdGlvblNjaGVtYS5leHRlbmQoe1xuICBtZXRob2Q6IHoubGl0ZXJhbChcIm5vdGlmaWNhdGlvbnMvcHJvZ3Jlc3NcIiksXG4gIHBhcmFtczogQmFzZU5vdGlmaWNhdGlvblBhcmFtc1NjaGVtYS5tZXJnZShQcm9ncmVzc1NjaGVtYSkuZXh0ZW5kKHtcbiAgICAvKipcbiAgICAgKiBUaGUgcHJvZ3Jlc3MgdG9rZW4gd2hpY2ggd2FzIGdpdmVuIGluIHRoZSBpbml0aWFsIHJlcXVlc3QsIHVzZWQgdG8gYXNzb2NpYXRlIHRoaXMgbm90aWZpY2F0aW9uIHdpdGggdGhlIHJlcXVlc3QgdGhhdCBpcyBwcm9jZWVkaW5nLlxuICAgICAqL1xuICAgIHByb2dyZXNzVG9rZW46IFByb2dyZXNzVG9rZW5TY2hlbWFcbiAgfSlcbn0pO1xudmFyIFBhZ2luYXRlZFJlcXVlc3RTY2hlbWEgPSBSZXF1ZXN0U2NoZW1hLmV4dGVuZCh7XG4gIHBhcmFtczogQmFzZVJlcXVlc3RQYXJhbXNTY2hlbWEuZXh0ZW5kKHtcbiAgICAvKipcbiAgICAgKiBBbiBvcGFxdWUgdG9rZW4gcmVwcmVzZW50aW5nIHRoZSBjdXJyZW50IHBhZ2luYXRpb24gcG9zaXRpb24uXG4gICAgICogSWYgcHJvdmlkZWQsIHRoZSBzZXJ2ZXIgc2hvdWxkIHJldHVybiByZXN1bHRzIHN0YXJ0aW5nIGFmdGVyIHRoaXMgY3Vyc29yLlxuICAgICAqL1xuICAgIGN1cnNvcjogei5vcHRpb25hbChDdXJzb3JTY2hlbWEpXG4gIH0pLm9wdGlvbmFsKClcbn0pO1xudmFyIFBhZ2luYXRlZFJlc3VsdFNjaGVtYSA9IFJlc3VsdFNjaGVtYS5leHRlbmQoe1xuICAvKipcbiAgICogQW4gb3BhcXVlIHRva2VuIHJlcHJlc2VudGluZyB0aGUgcGFnaW5hdGlvbiBwb3NpdGlvbiBhZnRlciB0aGUgbGFzdCByZXR1cm5lZCByZXN1bHQuXG4gICAqIElmIHByZXNlbnQsIHRoZXJlIG1heSBiZSBtb3JlIHJlc3VsdHMgYXZhaWxhYmxlLlxuICAgKi9cbiAgbmV4dEN1cnNvcjogei5vcHRpb25hbChDdXJzb3JTY2hlbWEpXG59KTtcbnZhciBSZXNvdXJjZUNvbnRlbnRzU2NoZW1hID0gei5vYmplY3Qoe1xuICAvKipcbiAgICogVGhlIFVSSSBvZiB0aGlzIHJlc291cmNlLlxuICAgKi9cbiAgdXJpOiB6LnN0cmluZygpLFxuICAvKipcbiAgICogVGhlIE1JTUUgdHlwZSBvZiB0aGlzIHJlc291cmNlLCBpZiBrbm93bi5cbiAgICovXG4gIG1pbWVUeXBlOiB6Lm9wdGlvbmFsKHouc3RyaW5nKCkpLFxuICAvKipcbiAgICogU2VlIFtNQ1Agc3BlY2lmaWNhdGlvbl0oaHR0cHM6Ly9naXRodWIuY29tL21vZGVsY29udGV4dHByb3RvY29sL21vZGVsY29udGV4dHByb3RvY29sL2Jsb2IvNDczMzljMDNjMTQzYmI0ZWMwMWEyNmU3MjFhMWI4ZmU2NjYzNGViZS9kb2NzL3NwZWNpZmljYXRpb24vZHJhZnQvYmFzaWMvaW5kZXgubWR4I2dlbmVyYWwtZmllbGRzKVxuICAgKiBmb3Igbm90ZXMgb24gX21ldGEgdXNhZ2UuXG4gICAqL1xuICBfbWV0YTogei5vcHRpb25hbCh6Lm9iamVjdCh7fSkucGFzc3Rocm91Z2goKSlcbn0pLnBhc3N0aHJvdWdoKCk7XG52YXIgVGV4dFJlc291cmNlQ29udGVudHNTY2hlbWEgPSBSZXNvdXJjZUNvbnRlbnRzU2NoZW1hLmV4dGVuZCh7XG4gIC8qKlxuICAgKiBUaGUgdGV4dCBvZiB0aGUgaXRlbS4gVGhpcyBtdXN0IG9ubHkgYmUgc2V0IGlmIHRoZSBpdGVtIGNhbiBhY3R1YWxseSBiZSByZXByZXNlbnRlZCBhcyB0ZXh0IChub3QgYmluYXJ5IGRhdGEpLlxuICAgKi9cbiAgdGV4dDogei5zdHJpbmcoKVxufSk7XG52YXIgQmFzZTY0U2NoZW1hID0gei5zdHJpbmcoKS5yZWZpbmUoKHZhbCkgPT4ge1xuICB0cnkge1xuICAgIGF0b2IodmFsKTtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfSBjYXRjaCAoX2EpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn0sIHsgbWVzc2FnZTogXCJJbnZhbGlkIEJhc2U2NCBzdHJpbmdcIiB9KTtcbnZhciBCbG9iUmVzb3VyY2VDb250ZW50c1NjaGVtYSA9IFJlc291cmNlQ29udGVudHNTY2hlbWEuZXh0ZW5kKHtcbiAgLyoqXG4gICAqIEEgYmFzZTY0LWVuY29kZWQgc3RyaW5nIHJlcHJlc2VudGluZyB0aGUgYmluYXJ5IGRhdGEgb2YgdGhlIGl0ZW0uXG4gICAqL1xuICBibG9iOiBCYXNlNjRTY2hlbWFcbn0pO1xudmFyIFJlc291cmNlU2NoZW1hID0gQmFzZU1ldGFkYXRhU2NoZW1hLmV4dGVuZCh7XG4gIC8qKlxuICAgKiBUaGUgVVJJIG9mIHRoaXMgcmVzb3VyY2UuXG4gICAqL1xuICB1cmk6IHouc3RyaW5nKCksXG4gIC8qKlxuICAgKiBBIGRlc2NyaXB0aW9uIG9mIHdoYXQgdGhpcyByZXNvdXJjZSByZXByZXNlbnRzLlxuICAgKlxuICAgKiBUaGlzIGNhbiBiZSB1c2VkIGJ5IGNsaWVudHMgdG8gaW1wcm92ZSB0aGUgTExNJ3MgdW5kZXJzdGFuZGluZyBvZiBhdmFpbGFibGUgcmVzb3VyY2VzLiBJdCBjYW4gYmUgdGhvdWdodCBvZiBsaWtlIGEgXCJoaW50XCIgdG8gdGhlIG1vZGVsLlxuICAgKi9cbiAgZGVzY3JpcHRpb246IHoub3B0aW9uYWwoei5zdHJpbmcoKSksXG4gIC8qKlxuICAgKiBUaGUgTUlNRSB0eXBlIG9mIHRoaXMgcmVzb3VyY2UsIGlmIGtub3duLlxuICAgKi9cbiAgbWltZVR5cGU6IHoub3B0aW9uYWwoei5zdHJpbmcoKSksXG4gIC8qKlxuICAgKiBTZWUgW01DUCBzcGVjaWZpY2F0aW9uXShodHRwczovL2dpdGh1Yi5jb20vbW9kZWxjb250ZXh0cHJvdG9jb2wvbW9kZWxjb250ZXh0cHJvdG9jb2wvYmxvYi80NzMzOWMwM2MxNDNiYjRlYzAxYTI2ZTcyMWExYjhmZTY2NjM0ZWJlL2RvY3Mvc3BlY2lmaWNhdGlvbi9kcmFmdC9iYXNpYy9pbmRleC5tZHgjZ2VuZXJhbC1maWVsZHMpXG4gICAqIGZvciBub3RlcyBvbiBfbWV0YSB1c2FnZS5cbiAgICovXG4gIF9tZXRhOiB6Lm9wdGlvbmFsKHoub2JqZWN0KHt9KS5wYXNzdGhyb3VnaCgpKVxufSk7XG52YXIgUmVzb3VyY2VUZW1wbGF0ZVNjaGVtYSA9IEJhc2VNZXRhZGF0YVNjaGVtYS5leHRlbmQoe1xuICAvKipcbiAgICogQSBVUkkgdGVtcGxhdGUgKGFjY29yZGluZyB0byBSRkMgNjU3MCkgdGhhdCBjYW4gYmUgdXNlZCB0byBjb25zdHJ1Y3QgcmVzb3VyY2UgVVJJcy5cbiAgICovXG4gIHVyaVRlbXBsYXRlOiB6LnN0cmluZygpLFxuICAvKipcbiAgICogQSBkZXNjcmlwdGlvbiBvZiB3aGF0IHRoaXMgdGVtcGxhdGUgaXMgZm9yLlxuICAgKlxuICAgKiBUaGlzIGNhbiBiZSB1c2VkIGJ5IGNsaWVudHMgdG8gaW1wcm92ZSB0aGUgTExNJ3MgdW5kZXJzdGFuZGluZyBvZiBhdmFpbGFibGUgcmVzb3VyY2VzLiBJdCBjYW4gYmUgdGhvdWdodCBvZiBsaWtlIGEgXCJoaW50XCIgdG8gdGhlIG1vZGVsLlxuICAgKi9cbiAgZGVzY3JpcHRpb246IHoub3B0aW9uYWwoei5zdHJpbmcoKSksXG4gIC8qKlxuICAgKiBUaGUgTUlNRSB0eXBlIGZvciBhbGwgcmVzb3VyY2VzIHRoYXQgbWF0Y2ggdGhpcyB0ZW1wbGF0ZS4gVGhpcyBzaG91bGQgb25seSBiZSBpbmNsdWRlZCBpZiBhbGwgcmVzb3VyY2VzIG1hdGNoaW5nIHRoaXMgdGVtcGxhdGUgaGF2ZSB0aGUgc2FtZSB0eXBlLlxuICAgKi9cbiAgbWltZVR5cGU6IHoub3B0aW9uYWwoei5zdHJpbmcoKSksXG4gIC8qKlxuICAgKiBTZWUgW01DUCBzcGVjaWZpY2F0aW9uXShodHRwczovL2dpdGh1Yi5jb20vbW9kZWxjb250ZXh0cHJvdG9jb2wvbW9kZWxjb250ZXh0cHJvdG9jb2wvYmxvYi80NzMzOWMwM2MxNDNiYjRlYzAxYTI2ZTcyMWExYjhmZTY2NjM0ZWJlL2RvY3Mvc3BlY2lmaWNhdGlvbi9kcmFmdC9iYXNpYy9pbmRleC5tZHgjZ2VuZXJhbC1maWVsZHMpXG4gICAqIGZvciBub3RlcyBvbiBfbWV0YSB1c2FnZS5cbiAgICovXG4gIF9tZXRhOiB6Lm9wdGlvbmFsKHoub2JqZWN0KHt9KS5wYXNzdGhyb3VnaCgpKVxufSk7XG52YXIgTGlzdFJlc291cmNlc1JlcXVlc3RTY2hlbWEgPSBQYWdpbmF0ZWRSZXF1ZXN0U2NoZW1hLmV4dGVuZCh7XG4gIG1ldGhvZDogei5saXRlcmFsKFwicmVzb3VyY2VzL2xpc3RcIilcbn0pO1xudmFyIExpc3RSZXNvdXJjZXNSZXN1bHRTY2hlbWEgPSBQYWdpbmF0ZWRSZXN1bHRTY2hlbWEuZXh0ZW5kKHtcbiAgcmVzb3VyY2VzOiB6LmFycmF5KFJlc291cmNlU2NoZW1hKVxufSk7XG52YXIgTGlzdFJlc291cmNlVGVtcGxhdGVzUmVxdWVzdFNjaGVtYSA9IFBhZ2luYXRlZFJlcXVlc3RTY2hlbWEuZXh0ZW5kKHtcbiAgbWV0aG9kOiB6LmxpdGVyYWwoXCJyZXNvdXJjZXMvdGVtcGxhdGVzL2xpc3RcIilcbn0pO1xudmFyIExpc3RSZXNvdXJjZVRlbXBsYXRlc1Jlc3VsdFNjaGVtYSA9IFBhZ2luYXRlZFJlc3VsdFNjaGVtYS5leHRlbmQoe1xuICByZXNvdXJjZVRlbXBsYXRlczogei5hcnJheShSZXNvdXJjZVRlbXBsYXRlU2NoZW1hKVxufSk7XG52YXIgUmVhZFJlc291cmNlUmVxdWVzdFNjaGVtYSA9IFJlcXVlc3RTY2hlbWEuZXh0ZW5kKHtcbiAgbWV0aG9kOiB6LmxpdGVyYWwoXCJyZXNvdXJjZXMvcmVhZFwiKSxcbiAgcGFyYW1zOiBCYXNlUmVxdWVzdFBhcmFtc1NjaGVtYS5leHRlbmQoe1xuICAgIC8qKlxuICAgICAqIFRoZSBVUkkgb2YgdGhlIHJlc291cmNlIHRvIHJlYWQuIFRoZSBVUkkgY2FuIHVzZSBhbnkgcHJvdG9jb2w7IGl0IGlzIHVwIHRvIHRoZSBzZXJ2ZXIgaG93IHRvIGludGVycHJldCBpdC5cbiAgICAgKi9cbiAgICB1cmk6IHouc3RyaW5nKClcbiAgfSlcbn0pO1xudmFyIFJlYWRSZXNvdXJjZVJlc3VsdFNjaGVtYSA9IFJlc3VsdFNjaGVtYS5leHRlbmQoe1xuICBjb250ZW50czogei5hcnJheSh6LnVuaW9uKFtUZXh0UmVzb3VyY2VDb250ZW50c1NjaGVtYSwgQmxvYlJlc291cmNlQ29udGVudHNTY2hlbWFdKSlcbn0pO1xudmFyIFJlc291cmNlTGlzdENoYW5nZWROb3RpZmljYXRpb25TY2hlbWEgPSBOb3RpZmljYXRpb25TY2hlbWEuZXh0ZW5kKHtcbiAgbWV0aG9kOiB6LmxpdGVyYWwoXCJub3RpZmljYXRpb25zL3Jlc291cmNlcy9saXN0X2NoYW5nZWRcIilcbn0pO1xudmFyIFN1YnNjcmliZVJlcXVlc3RTY2hlbWEgPSBSZXF1ZXN0U2NoZW1hLmV4dGVuZCh7XG4gIG1ldGhvZDogei5saXRlcmFsKFwicmVzb3VyY2VzL3N1YnNjcmliZVwiKSxcbiAgcGFyYW1zOiBCYXNlUmVxdWVzdFBhcmFtc1NjaGVtYS5leHRlbmQoe1xuICAgIC8qKlxuICAgICAqIFRoZSBVUkkgb2YgdGhlIHJlc291cmNlIHRvIHN1YnNjcmliZSB0by4gVGhlIFVSSSBjYW4gdXNlIGFueSBwcm90b2NvbDsgaXQgaXMgdXAgdG8gdGhlIHNlcnZlciBob3cgdG8gaW50ZXJwcmV0IGl0LlxuICAgICAqL1xuICAgIHVyaTogei5zdHJpbmcoKVxuICB9KVxufSk7XG52YXIgVW5zdWJzY3JpYmVSZXF1ZXN0U2NoZW1hID0gUmVxdWVzdFNjaGVtYS5leHRlbmQoe1xuICBtZXRob2Q6IHoubGl0ZXJhbChcInJlc291cmNlcy91bnN1YnNjcmliZVwiKSxcbiAgcGFyYW1zOiBCYXNlUmVxdWVzdFBhcmFtc1NjaGVtYS5leHRlbmQoe1xuICAgIC8qKlxuICAgICAqIFRoZSBVUkkgb2YgdGhlIHJlc291cmNlIHRvIHVuc3Vic2NyaWJlIGZyb20uXG4gICAgICovXG4gICAgdXJpOiB6LnN0cmluZygpXG4gIH0pXG59KTtcbnZhciBSZXNvdXJjZVVwZGF0ZWROb3RpZmljYXRpb25TY2hlbWEgPSBOb3RpZmljYXRpb25TY2hlbWEuZXh0ZW5kKHtcbiAgbWV0aG9kOiB6LmxpdGVyYWwoXCJub3RpZmljYXRpb25zL3Jlc291cmNlcy91cGRhdGVkXCIpLFxuICBwYXJhbXM6IEJhc2VOb3RpZmljYXRpb25QYXJhbXNTY2hlbWEuZXh0ZW5kKHtcbiAgICAvKipcbiAgICAgKiBUaGUgVVJJIG9mIHRoZSByZXNvdXJjZSB0aGF0IGhhcyBiZWVuIHVwZGF0ZWQuIFRoaXMgbWlnaHQgYmUgYSBzdWItcmVzb3VyY2Ugb2YgdGhlIG9uZSB0aGF0IHRoZSBjbGllbnQgYWN0dWFsbHkgc3Vic2NyaWJlZCB0by5cbiAgICAgKi9cbiAgICB1cmk6IHouc3RyaW5nKClcbiAgfSlcbn0pO1xudmFyIFByb21wdEFyZ3VtZW50U2NoZW1hID0gei5vYmplY3Qoe1xuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIGFyZ3VtZW50LlxuICAgKi9cbiAgbmFtZTogei5zdHJpbmcoKSxcbiAgLyoqXG4gICAqIEEgaHVtYW4tcmVhZGFibGUgZGVzY3JpcHRpb24gb2YgdGhlIGFyZ3VtZW50LlxuICAgKi9cbiAgZGVzY3JpcHRpb246IHoub3B0aW9uYWwoei5zdHJpbmcoKSksXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoaXMgYXJndW1lbnQgbXVzdCBiZSBwcm92aWRlZC5cbiAgICovXG4gIHJlcXVpcmVkOiB6Lm9wdGlvbmFsKHouYm9vbGVhbigpKVxufSkucGFzc3Rocm91Z2goKTtcbnZhciBQcm9tcHRTY2hlbWEgPSBCYXNlTWV0YWRhdGFTY2hlbWEuZXh0ZW5kKHtcbiAgLyoqXG4gICAqIEFuIG9wdGlvbmFsIGRlc2NyaXB0aW9uIG9mIHdoYXQgdGhpcyBwcm9tcHQgcHJvdmlkZXNcbiAgICovXG4gIGRlc2NyaXB0aW9uOiB6Lm9wdGlvbmFsKHouc3RyaW5nKCkpLFxuICAvKipcbiAgICogQSBsaXN0IG9mIGFyZ3VtZW50cyB0byB1c2UgZm9yIHRlbXBsYXRpbmcgdGhlIHByb21wdC5cbiAgICovXG4gIGFyZ3VtZW50czogei5vcHRpb25hbCh6LmFycmF5KFByb21wdEFyZ3VtZW50U2NoZW1hKSksXG4gIC8qKlxuICAgKiBTZWUgW01DUCBzcGVjaWZpY2F0aW9uXShodHRwczovL2dpdGh1Yi5jb20vbW9kZWxjb250ZXh0cHJvdG9jb2wvbW9kZWxjb250ZXh0cHJvdG9jb2wvYmxvYi80NzMzOWMwM2MxNDNiYjRlYzAxYTI2ZTcyMWExYjhmZTY2NjM0ZWJlL2RvY3Mvc3BlY2lmaWNhdGlvbi9kcmFmdC9iYXNpYy9pbmRleC5tZHgjZ2VuZXJhbC1maWVsZHMpXG4gICAqIGZvciBub3RlcyBvbiBfbWV0YSB1c2FnZS5cbiAgICovXG4gIF9tZXRhOiB6Lm9wdGlvbmFsKHoub2JqZWN0KHt9KS5wYXNzdGhyb3VnaCgpKVxufSk7XG52YXIgTGlzdFByb21wdHNSZXF1ZXN0U2NoZW1hID0gUGFnaW5hdGVkUmVxdWVzdFNjaGVtYS5leHRlbmQoe1xuICBtZXRob2Q6IHoubGl0ZXJhbChcInByb21wdHMvbGlzdFwiKVxufSk7XG52YXIgTGlzdFByb21wdHNSZXN1bHRTY2hlbWEgPSBQYWdpbmF0ZWRSZXN1bHRTY2hlbWEuZXh0ZW5kKHtcbiAgcHJvbXB0czogei5hcnJheShQcm9tcHRTY2hlbWEpXG59KTtcbnZhciBHZXRQcm9tcHRSZXF1ZXN0U2NoZW1hID0gUmVxdWVzdFNjaGVtYS5leHRlbmQoe1xuICBtZXRob2Q6IHoubGl0ZXJhbChcInByb21wdHMvZ2V0XCIpLFxuICBwYXJhbXM6IEJhc2VSZXF1ZXN0UGFyYW1zU2NoZW1hLmV4dGVuZCh7XG4gICAgLyoqXG4gICAgICogVGhlIG5hbWUgb2YgdGhlIHByb21wdCBvciBwcm9tcHQgdGVtcGxhdGUuXG4gICAgICovXG4gICAgbmFtZTogei5zdHJpbmcoKSxcbiAgICAvKipcbiAgICAgKiBBcmd1bWVudHMgdG8gdXNlIGZvciB0ZW1wbGF0aW5nIHRoZSBwcm9tcHQuXG4gICAgICovXG4gICAgYXJndW1lbnRzOiB6Lm9wdGlvbmFsKHoucmVjb3JkKHouc3RyaW5nKCkpKVxuICB9KVxufSk7XG52YXIgVGV4dENvbnRlbnRTY2hlbWEgPSB6Lm9iamVjdCh7XG4gIHR5cGU6IHoubGl0ZXJhbChcInRleHRcIiksXG4gIC8qKlxuICAgKiBUaGUgdGV4dCBjb250ZW50IG9mIHRoZSBtZXNzYWdlLlxuICAgKi9cbiAgdGV4dDogei5zdHJpbmcoKSxcbiAgLyoqXG4gICAqIFNlZSBbTUNQIHNwZWNpZmljYXRpb25dKGh0dHBzOi8vZ2l0aHViLmNvbS9tb2RlbGNvbnRleHRwcm90b2NvbC9tb2RlbGNvbnRleHRwcm90b2NvbC9ibG9iLzQ3MzM5YzAzYzE0M2JiNGVjMDFhMjZlNzIxYTFiOGZlNjY2MzRlYmUvZG9jcy9zcGVjaWZpY2F0aW9uL2RyYWZ0L2Jhc2ljL2luZGV4Lm1keCNnZW5lcmFsLWZpZWxkcylcbiAgICogZm9yIG5vdGVzIG9uIF9tZXRhIHVzYWdlLlxuICAgKi9cbiAgX21ldGE6IHoub3B0aW9uYWwoei5vYmplY3Qoe30pLnBhc3N0aHJvdWdoKCkpXG59KS5wYXNzdGhyb3VnaCgpO1xudmFyIEltYWdlQ29udGVudFNjaGVtYSA9IHoub2JqZWN0KHtcbiAgdHlwZTogei5saXRlcmFsKFwiaW1hZ2VcIiksXG4gIC8qKlxuICAgKiBUaGUgYmFzZTY0LWVuY29kZWQgaW1hZ2UgZGF0YS5cbiAgICovXG4gIGRhdGE6IEJhc2U2NFNjaGVtYSxcbiAgLyoqXG4gICAqIFRoZSBNSU1FIHR5cGUgb2YgdGhlIGltYWdlLiBEaWZmZXJlbnQgcHJvdmlkZXJzIG1heSBzdXBwb3J0IGRpZmZlcmVudCBpbWFnZSB0eXBlcy5cbiAgICovXG4gIG1pbWVUeXBlOiB6LnN0cmluZygpLFxuICAvKipcbiAgICogU2VlIFtNQ1Agc3BlY2lmaWNhdGlvbl0oaHR0cHM6Ly9naXRodWIuY29tL21vZGVsY29udGV4dHByb3RvY29sL21vZGVsY29udGV4dHByb3RvY29sL2Jsb2IvNDczMzljMDNjMTQzYmI0ZWMwMWEyNmU3MjFhMWI4ZmU2NjYzNGViZS9kb2NzL3NwZWNpZmljYXRpb24vZHJhZnQvYmFzaWMvaW5kZXgubWR4I2dlbmVyYWwtZmllbGRzKVxuICAgKiBmb3Igbm90ZXMgb24gX21ldGEgdXNhZ2UuXG4gICAqL1xuICBfbWV0YTogei5vcHRpb25hbCh6Lm9iamVjdCh7fSkucGFzc3Rocm91Z2goKSlcbn0pLnBhc3N0aHJvdWdoKCk7XG52YXIgQXVkaW9Db250ZW50U2NoZW1hID0gei5vYmplY3Qoe1xuICB0eXBlOiB6LmxpdGVyYWwoXCJhdWRpb1wiKSxcbiAgLyoqXG4gICAqIFRoZSBiYXNlNjQtZW5jb2RlZCBhdWRpbyBkYXRhLlxuICAgKi9cbiAgZGF0YTogQmFzZTY0U2NoZW1hLFxuICAvKipcbiAgICogVGhlIE1JTUUgdHlwZSBvZiB0aGUgYXVkaW8uIERpZmZlcmVudCBwcm92aWRlcnMgbWF5IHN1cHBvcnQgZGlmZmVyZW50IGF1ZGlvIHR5cGVzLlxuICAgKi9cbiAgbWltZVR5cGU6IHouc3RyaW5nKCksXG4gIC8qKlxuICAgKiBTZWUgW01DUCBzcGVjaWZpY2F0aW9uXShodHRwczovL2dpdGh1Yi5jb20vbW9kZWxjb250ZXh0cHJvdG9jb2wvbW9kZWxjb250ZXh0cHJvdG9jb2wvYmxvYi80NzMzOWMwM2MxNDNiYjRlYzAxYTI2ZTcyMWExYjhmZTY2NjM0ZWJlL2RvY3Mvc3BlY2lmaWNhdGlvbi9kcmFmdC9iYXNpYy9pbmRleC5tZHgjZ2VuZXJhbC1maWVsZHMpXG4gICAqIGZvciBub3RlcyBvbiBfbWV0YSB1c2FnZS5cbiAgICovXG4gIF9tZXRhOiB6Lm9wdGlvbmFsKHoub2JqZWN0KHt9KS5wYXNzdGhyb3VnaCgpKVxufSkucGFzc3Rocm91Z2goKTtcbnZhciBFbWJlZGRlZFJlc291cmNlU2NoZW1hID0gei5vYmplY3Qoe1xuICB0eXBlOiB6LmxpdGVyYWwoXCJyZXNvdXJjZVwiKSxcbiAgcmVzb3VyY2U6IHoudW5pb24oW1RleHRSZXNvdXJjZUNvbnRlbnRzU2NoZW1hLCBCbG9iUmVzb3VyY2VDb250ZW50c1NjaGVtYV0pLFxuICAvKipcbiAgICogU2VlIFtNQ1Agc3BlY2lmaWNhdGlvbl0oaHR0cHM6Ly9naXRodWIuY29tL21vZGVsY29udGV4dHByb3RvY29sL21vZGVsY29udGV4dHByb3RvY29sL2Jsb2IvNDczMzljMDNjMTQzYmI0ZWMwMWEyNmU3MjFhMWI4ZmU2NjYzNGViZS9kb2NzL3NwZWNpZmljYXRpb24vZHJhZnQvYmFzaWMvaW5kZXgubWR4I2dlbmVyYWwtZmllbGRzKVxuICAgKiBmb3Igbm90ZXMgb24gX21ldGEgdXNhZ2UuXG4gICAqL1xuICBfbWV0YTogei5vcHRpb25hbCh6Lm9iamVjdCh7fSkucGFzc3Rocm91Z2goKSlcbn0pLnBhc3N0aHJvdWdoKCk7XG52YXIgUmVzb3VyY2VMaW5rU2NoZW1hID0gUmVzb3VyY2VTY2hlbWEuZXh0ZW5kKHtcbiAgdHlwZTogei5saXRlcmFsKFwicmVzb3VyY2VfbGlua1wiKVxufSk7XG52YXIgQ29udGVudEJsb2NrU2NoZW1hID0gei51bmlvbihbXG4gIFRleHRDb250ZW50U2NoZW1hLFxuICBJbWFnZUNvbnRlbnRTY2hlbWEsXG4gIEF1ZGlvQ29udGVudFNjaGVtYSxcbiAgUmVzb3VyY2VMaW5rU2NoZW1hLFxuICBFbWJlZGRlZFJlc291cmNlU2NoZW1hXG5dKTtcbnZhciBQcm9tcHRNZXNzYWdlU2NoZW1hID0gei5vYmplY3Qoe1xuICByb2xlOiB6LmVudW0oW1widXNlclwiLCBcImFzc2lzdGFudFwiXSksXG4gIGNvbnRlbnQ6IENvbnRlbnRCbG9ja1NjaGVtYVxufSkucGFzc3Rocm91Z2goKTtcbnZhciBHZXRQcm9tcHRSZXN1bHRTY2hlbWEgPSBSZXN1bHRTY2hlbWEuZXh0ZW5kKHtcbiAgLyoqXG4gICAqIEFuIG9wdGlvbmFsIGRlc2NyaXB0aW9uIGZvciB0aGUgcHJvbXB0LlxuICAgKi9cbiAgZGVzY3JpcHRpb246IHoub3B0aW9uYWwoei5zdHJpbmcoKSksXG4gIG1lc3NhZ2VzOiB6LmFycmF5KFByb21wdE1lc3NhZ2VTY2hlbWEpXG59KTtcbnZhciBQcm9tcHRMaXN0Q2hhbmdlZE5vdGlmaWNhdGlvblNjaGVtYSA9IE5vdGlmaWNhdGlvblNjaGVtYS5leHRlbmQoe1xuICBtZXRob2Q6IHoubGl0ZXJhbChcIm5vdGlmaWNhdGlvbnMvcHJvbXB0cy9saXN0X2NoYW5nZWRcIilcbn0pO1xudmFyIFRvb2xBbm5vdGF0aW9uc1NjaGVtYSA9IHoub2JqZWN0KHtcbiAgLyoqXG4gICAqIEEgaHVtYW4tcmVhZGFibGUgdGl0bGUgZm9yIHRoZSB0b29sLlxuICAgKi9cbiAgdGl0bGU6IHoub3B0aW9uYWwoei5zdHJpbmcoKSksXG4gIC8qKlxuICAgKiBJZiB0cnVlLCB0aGUgdG9vbCBkb2VzIG5vdCBtb2RpZnkgaXRzIGVudmlyb25tZW50LlxuICAgKlxuICAgKiBEZWZhdWx0OiBmYWxzZVxuICAgKi9cbiAgcmVhZE9ubHlIaW50OiB6Lm9wdGlvbmFsKHouYm9vbGVhbigpKSxcbiAgLyoqXG4gICAqIElmIHRydWUsIHRoZSB0b29sIG1heSBwZXJmb3JtIGRlc3RydWN0aXZlIHVwZGF0ZXMgdG8gaXRzIGVudmlyb25tZW50LlxuICAgKiBJZiBmYWxzZSwgdGhlIHRvb2wgcGVyZm9ybXMgb25seSBhZGRpdGl2ZSB1cGRhdGVzLlxuICAgKlxuICAgKiAoVGhpcyBwcm9wZXJ0eSBpcyBtZWFuaW5nZnVsIG9ubHkgd2hlbiBgcmVhZE9ubHlIaW50ID09IGZhbHNlYClcbiAgICpcbiAgICogRGVmYXVsdDogdHJ1ZVxuICAgKi9cbiAgZGVzdHJ1Y3RpdmVIaW50OiB6Lm9wdGlvbmFsKHouYm9vbGVhbigpKSxcbiAgLyoqXG4gICAqIElmIHRydWUsIGNhbGxpbmcgdGhlIHRvb2wgcmVwZWF0ZWRseSB3aXRoIHRoZSBzYW1lIGFyZ3VtZW50c1xuICAgKiB3aWxsIGhhdmUgbm8gYWRkaXRpb25hbCBlZmZlY3Qgb24gdGhlIGl0cyBlbnZpcm9ubWVudC5cbiAgICpcbiAgICogKFRoaXMgcHJvcGVydHkgaXMgbWVhbmluZ2Z1bCBvbmx5IHdoZW4gYHJlYWRPbmx5SGludCA9PSBmYWxzZWApXG4gICAqXG4gICAqIERlZmF1bHQ6IGZhbHNlXG4gICAqL1xuICBpZGVtcG90ZW50SGludDogei5vcHRpb25hbCh6LmJvb2xlYW4oKSksXG4gIC8qKlxuICAgKiBJZiB0cnVlLCB0aGlzIHRvb2wgbWF5IGludGVyYWN0IHdpdGggYW4gXCJvcGVuIHdvcmxkXCIgb2YgZXh0ZXJuYWxcbiAgICogZW50aXRpZXMuIElmIGZhbHNlLCB0aGUgdG9vbCdzIGRvbWFpbiBvZiBpbnRlcmFjdGlvbiBpcyBjbG9zZWQuXG4gICAqIEZvciBleGFtcGxlLCB0aGUgd29ybGQgb2YgYSB3ZWIgc2VhcmNoIHRvb2wgaXMgb3Blbiwgd2hlcmVhcyB0aGF0XG4gICAqIG9mIGEgbWVtb3J5IHRvb2wgaXMgbm90LlxuICAgKlxuICAgKiBEZWZhdWx0OiB0cnVlXG4gICAqL1xuICBvcGVuV29ybGRIaW50OiB6Lm9wdGlvbmFsKHouYm9vbGVhbigpKVxufSkucGFzc3Rocm91Z2goKTtcbnZhciBUb29sU2NoZW1hID0gQmFzZU1ldGFkYXRhU2NoZW1hLmV4dGVuZCh7XG4gIC8qKlxuICAgKiBBIGh1bWFuLXJlYWRhYmxlIGRlc2NyaXB0aW9uIG9mIHRoZSB0b29sLlxuICAgKi9cbiAgZGVzY3JpcHRpb246IHoub3B0aW9uYWwoei5zdHJpbmcoKSksXG4gIC8qKlxuICAgKiBBIEpTT04gU2NoZW1hIG9iamVjdCBkZWZpbmluZyB0aGUgZXhwZWN0ZWQgcGFyYW1ldGVycyBmb3IgdGhlIHRvb2wuXG4gICAqL1xuICBpbnB1dFNjaGVtYTogei5vYmplY3Qoe1xuICAgIHR5cGU6IHoubGl0ZXJhbChcIm9iamVjdFwiKSxcbiAgICBwcm9wZXJ0aWVzOiB6Lm9wdGlvbmFsKHoub2JqZWN0KHt9KS5wYXNzdGhyb3VnaCgpKSxcbiAgICByZXF1aXJlZDogei5vcHRpb25hbCh6LmFycmF5KHouc3RyaW5nKCkpKVxuICB9KS5wYXNzdGhyb3VnaCgpLFxuICAvKipcbiAgICogQW4gb3B0aW9uYWwgSlNPTiBTY2hlbWEgb2JqZWN0IGRlZmluaW5nIHRoZSBzdHJ1Y3R1cmUgb2YgdGhlIHRvb2wncyBvdXRwdXQgcmV0dXJuZWQgaW5cbiAgICogdGhlIHN0cnVjdHVyZWRDb250ZW50IGZpZWxkIG9mIGEgQ2FsbFRvb2xSZXN1bHQuXG4gICAqL1xuICBvdXRwdXRTY2hlbWE6IHoub3B0aW9uYWwoei5vYmplY3Qoe1xuICAgIHR5cGU6IHoubGl0ZXJhbChcIm9iamVjdFwiKSxcbiAgICBwcm9wZXJ0aWVzOiB6Lm9wdGlvbmFsKHoub2JqZWN0KHt9KS5wYXNzdGhyb3VnaCgpKSxcbiAgICByZXF1aXJlZDogei5vcHRpb25hbCh6LmFycmF5KHouc3RyaW5nKCkpKVxuICB9KS5wYXNzdGhyb3VnaCgpKSxcbiAgLyoqXG4gICAqIE9wdGlvbmFsIGFkZGl0aW9uYWwgdG9vbCBpbmZvcm1hdGlvbi5cbiAgICovXG4gIGFubm90YXRpb25zOiB6Lm9wdGlvbmFsKFRvb2xBbm5vdGF0aW9uc1NjaGVtYSksXG4gIC8qKlxuICAgKiBTZWUgW01DUCBzcGVjaWZpY2F0aW9uXShodHRwczovL2dpdGh1Yi5jb20vbW9kZWxjb250ZXh0cHJvdG9jb2wvbW9kZWxjb250ZXh0cHJvdG9jb2wvYmxvYi80NzMzOWMwM2MxNDNiYjRlYzAxYTI2ZTcyMWExYjhmZTY2NjM0ZWJlL2RvY3Mvc3BlY2lmaWNhdGlvbi9kcmFmdC9iYXNpYy9pbmRleC5tZHgjZ2VuZXJhbC1maWVsZHMpXG4gICAqIGZvciBub3RlcyBvbiBfbWV0YSB1c2FnZS5cbiAgICovXG4gIF9tZXRhOiB6Lm9wdGlvbmFsKHoub2JqZWN0KHt9KS5wYXNzdGhyb3VnaCgpKVxufSk7XG52YXIgTGlzdFRvb2xzUmVxdWVzdFNjaGVtYSA9IFBhZ2luYXRlZFJlcXVlc3RTY2hlbWEuZXh0ZW5kKHtcbiAgbWV0aG9kOiB6LmxpdGVyYWwoXCJ0b29scy9saXN0XCIpXG59KTtcbnZhciBMaXN0VG9vbHNSZXN1bHRTY2hlbWEgPSBQYWdpbmF0ZWRSZXN1bHRTY2hlbWEuZXh0ZW5kKHtcbiAgdG9vbHM6IHouYXJyYXkoVG9vbFNjaGVtYSlcbn0pO1xudmFyIENhbGxUb29sUmVzdWx0U2NoZW1hID0gUmVzdWx0U2NoZW1hLmV4dGVuZCh7XG4gIC8qKlxuICAgKiBBIGxpc3Qgb2YgY29udGVudCBvYmplY3RzIHRoYXQgcmVwcmVzZW50IHRoZSByZXN1bHQgb2YgdGhlIHRvb2wgY2FsbC5cbiAgICpcbiAgICogSWYgdGhlIFRvb2wgZG9lcyBub3QgZGVmaW5lIGFuIG91dHB1dFNjaGVtYSwgdGhpcyBmaWVsZCBNVVNUIGJlIHByZXNlbnQgaW4gdGhlIHJlc3VsdC5cbiAgICogRm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5LCB0aGlzIGZpZWxkIGlzIGFsd2F5cyBwcmVzZW50LCBidXQgaXQgbWF5IGJlIGVtcHR5LlxuICAgKi9cbiAgY29udGVudDogei5hcnJheShDb250ZW50QmxvY2tTY2hlbWEpLmRlZmF1bHQoW10pLFxuICAvKipcbiAgICogQW4gb2JqZWN0IGNvbnRhaW5pbmcgc3RydWN0dXJlZCB0b29sIG91dHB1dC5cbiAgICpcbiAgICogSWYgdGhlIFRvb2wgZGVmaW5lcyBhbiBvdXRwdXRTY2hlbWEsIHRoaXMgZmllbGQgTVVTVCBiZSBwcmVzZW50IGluIHRoZSByZXN1bHQsIGFuZCBjb250YWluIGEgSlNPTiBvYmplY3QgdGhhdCBtYXRjaGVzIHRoZSBzY2hlbWEuXG4gICAqL1xuICBzdHJ1Y3R1cmVkQ29udGVudDogei5vYmplY3Qoe30pLnBhc3N0aHJvdWdoKCkub3B0aW9uYWwoKSxcbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIHRvb2wgY2FsbCBlbmRlZCBpbiBhbiBlcnJvci5cbiAgICpcbiAgICogSWYgbm90IHNldCwgdGhpcyBpcyBhc3N1bWVkIHRvIGJlIGZhbHNlICh0aGUgY2FsbCB3YXMgc3VjY2Vzc2Z1bCkuXG4gICAqXG4gICAqIEFueSBlcnJvcnMgdGhhdCBvcmlnaW5hdGUgZnJvbSB0aGUgdG9vbCBTSE9VTEQgYmUgcmVwb3J0ZWQgaW5zaWRlIHRoZSByZXN1bHRcbiAgICogb2JqZWN0LCB3aXRoIGBpc0Vycm9yYCBzZXQgdG8gdHJ1ZSwgX25vdF8gYXMgYW4gTUNQIHByb3RvY29sLWxldmVsIGVycm9yXG4gICAqIHJlc3BvbnNlLiBPdGhlcndpc2UsIHRoZSBMTE0gd291bGQgbm90IGJlIGFibGUgdG8gc2VlIHRoYXQgYW4gZXJyb3Igb2NjdXJyZWRcbiAgICogYW5kIHNlbGYtY29ycmVjdC5cbiAgICpcbiAgICogSG93ZXZlciwgYW55IGVycm9ycyBpbiBfZmluZGluZ18gdGhlIHRvb2wsIGFuIGVycm9yIGluZGljYXRpbmcgdGhhdCB0aGVcbiAgICogc2VydmVyIGRvZXMgbm90IHN1cHBvcnQgdG9vbCBjYWxscywgb3IgYW55IG90aGVyIGV4Y2VwdGlvbmFsIGNvbmRpdGlvbnMsXG4gICAqIHNob3VsZCBiZSByZXBvcnRlZCBhcyBhbiBNQ1AgZXJyb3IgcmVzcG9uc2UuXG4gICAqL1xuICBpc0Vycm9yOiB6Lm9wdGlvbmFsKHouYm9vbGVhbigpKVxufSk7XG52YXIgQ29tcGF0aWJpbGl0eUNhbGxUb29sUmVzdWx0U2NoZW1hID0gQ2FsbFRvb2xSZXN1bHRTY2hlbWEub3IoUmVzdWx0U2NoZW1hLmV4dGVuZCh7XG4gIHRvb2xSZXN1bHQ6IHoudW5rbm93bigpXG59KSk7XG52YXIgQ2FsbFRvb2xSZXF1ZXN0U2NoZW1hID0gUmVxdWVzdFNjaGVtYS5leHRlbmQoe1xuICBtZXRob2Q6IHoubGl0ZXJhbChcInRvb2xzL2NhbGxcIiksXG4gIHBhcmFtczogQmFzZVJlcXVlc3RQYXJhbXNTY2hlbWEuZXh0ZW5kKHtcbiAgICBuYW1lOiB6LnN0cmluZygpLFxuICAgIGFyZ3VtZW50czogei5vcHRpb25hbCh6LnJlY29yZCh6LnVua25vd24oKSkpXG4gIH0pXG59KTtcbnZhciBUb29sTGlzdENoYW5nZWROb3RpZmljYXRpb25TY2hlbWEgPSBOb3RpZmljYXRpb25TY2hlbWEuZXh0ZW5kKHtcbiAgbWV0aG9kOiB6LmxpdGVyYWwoXCJub3RpZmljYXRpb25zL3Rvb2xzL2xpc3RfY2hhbmdlZFwiKVxufSk7XG52YXIgTG9nZ2luZ0xldmVsU2NoZW1hID0gei5lbnVtKFtcbiAgXCJkZWJ1Z1wiLFxuICBcImluZm9cIixcbiAgXCJub3RpY2VcIixcbiAgXCJ3YXJuaW5nXCIsXG4gIFwiZXJyb3JcIixcbiAgXCJjcml0aWNhbFwiLFxuICBcImFsZXJ0XCIsXG4gIFwiZW1lcmdlbmN5XCJcbl0pO1xudmFyIFNldExldmVsUmVxdWVzdFNjaGVtYSA9IFJlcXVlc3RTY2hlbWEuZXh0ZW5kKHtcbiAgbWV0aG9kOiB6LmxpdGVyYWwoXCJsb2dnaW5nL3NldExldmVsXCIpLFxuICBwYXJhbXM6IEJhc2VSZXF1ZXN0UGFyYW1zU2NoZW1hLmV4dGVuZCh7XG4gICAgLyoqXG4gICAgICogVGhlIGxldmVsIG9mIGxvZ2dpbmcgdGhhdCB0aGUgY2xpZW50IHdhbnRzIHRvIHJlY2VpdmUgZnJvbSB0aGUgc2VydmVyLiBUaGUgc2VydmVyIHNob3VsZCBzZW5kIGFsbCBsb2dzIGF0IHRoaXMgbGV2ZWwgYW5kIGhpZ2hlciAoaS5lLiwgbW9yZSBzZXZlcmUpIHRvIHRoZSBjbGllbnQgYXMgbm90aWZpY2F0aW9ucy9sb2dnaW5nL21lc3NhZ2UuXG4gICAgICovXG4gICAgbGV2ZWw6IExvZ2dpbmdMZXZlbFNjaGVtYVxuICB9KVxufSk7XG52YXIgTG9nZ2luZ01lc3NhZ2VOb3RpZmljYXRpb25TY2hlbWEgPSBOb3RpZmljYXRpb25TY2hlbWEuZXh0ZW5kKHtcbiAgbWV0aG9kOiB6LmxpdGVyYWwoXCJub3RpZmljYXRpb25zL21lc3NhZ2VcIiksXG4gIHBhcmFtczogQmFzZU5vdGlmaWNhdGlvblBhcmFtc1NjaGVtYS5leHRlbmQoe1xuICAgIC8qKlxuICAgICAqIFRoZSBzZXZlcml0eSBvZiB0aGlzIGxvZyBtZXNzYWdlLlxuICAgICAqL1xuICAgIGxldmVsOiBMb2dnaW5nTGV2ZWxTY2hlbWEsXG4gICAgLyoqXG4gICAgICogQW4gb3B0aW9uYWwgbmFtZSBvZiB0aGUgbG9nZ2VyIGlzc3VpbmcgdGhpcyBtZXNzYWdlLlxuICAgICAqL1xuICAgIGxvZ2dlcjogei5vcHRpb25hbCh6LnN0cmluZygpKSxcbiAgICAvKipcbiAgICAgKiBUaGUgZGF0YSB0byBiZSBsb2dnZWQsIHN1Y2ggYXMgYSBzdHJpbmcgbWVzc2FnZSBvciBhbiBvYmplY3QuIEFueSBKU09OIHNlcmlhbGl6YWJsZSB0eXBlIGlzIGFsbG93ZWQgaGVyZS5cbiAgICAgKi9cbiAgICBkYXRhOiB6LnVua25vd24oKVxuICB9KVxufSk7XG52YXIgTW9kZWxIaW50U2NoZW1hID0gei5vYmplY3Qoe1xuICAvKipcbiAgICogQSBoaW50IGZvciBhIG1vZGVsIG5hbWUuXG4gICAqL1xuICBuYW1lOiB6LnN0cmluZygpLm9wdGlvbmFsKClcbn0pLnBhc3N0aHJvdWdoKCk7XG52YXIgTW9kZWxQcmVmZXJlbmNlc1NjaGVtYSA9IHoub2JqZWN0KHtcbiAgLyoqXG4gICAqIE9wdGlvbmFsIGhpbnRzIHRvIHVzZSBmb3IgbW9kZWwgc2VsZWN0aW9uLlxuICAgKi9cbiAgaGludHM6IHoub3B0aW9uYWwoei5hcnJheShNb2RlbEhpbnRTY2hlbWEpKSxcbiAgLyoqXG4gICAqIEhvdyBtdWNoIHRvIHByaW9yaXRpemUgY29zdCB3aGVuIHNlbGVjdGluZyBhIG1vZGVsLlxuICAgKi9cbiAgY29zdFByaW9yaXR5OiB6Lm9wdGlvbmFsKHoubnVtYmVyKCkubWluKDApLm1heCgxKSksXG4gIC8qKlxuICAgKiBIb3cgbXVjaCB0byBwcmlvcml0aXplIHNhbXBsaW5nIHNwZWVkIChsYXRlbmN5KSB3aGVuIHNlbGVjdGluZyBhIG1vZGVsLlxuICAgKi9cbiAgc3BlZWRQcmlvcml0eTogei5vcHRpb25hbCh6Lm51bWJlcigpLm1pbigwKS5tYXgoMSkpLFxuICAvKipcbiAgICogSG93IG11Y2ggdG8gcHJpb3JpdGl6ZSBpbnRlbGxpZ2VuY2UgYW5kIGNhcGFiaWxpdGllcyB3aGVuIHNlbGVjdGluZyBhIG1vZGVsLlxuICAgKi9cbiAgaW50ZWxsaWdlbmNlUHJpb3JpdHk6IHoub3B0aW9uYWwoei5udW1iZXIoKS5taW4oMCkubWF4KDEpKVxufSkucGFzc3Rocm91Z2goKTtcbnZhciBTYW1wbGluZ01lc3NhZ2VTY2hlbWEgPSB6Lm9iamVjdCh7XG4gIHJvbGU6IHouZW51bShbXCJ1c2VyXCIsIFwiYXNzaXN0YW50XCJdKSxcbiAgY29udGVudDogei51bmlvbihbVGV4dENvbnRlbnRTY2hlbWEsIEltYWdlQ29udGVudFNjaGVtYSwgQXVkaW9Db250ZW50U2NoZW1hXSlcbn0pLnBhc3N0aHJvdWdoKCk7XG52YXIgQ3JlYXRlTWVzc2FnZVJlcXVlc3RTY2hlbWEgPSBSZXF1ZXN0U2NoZW1hLmV4dGVuZCh7XG4gIG1ldGhvZDogei5saXRlcmFsKFwic2FtcGxpbmcvY3JlYXRlTWVzc2FnZVwiKSxcbiAgcGFyYW1zOiBCYXNlUmVxdWVzdFBhcmFtc1NjaGVtYS5leHRlbmQoe1xuICAgIG1lc3NhZ2VzOiB6LmFycmF5KFNhbXBsaW5nTWVzc2FnZVNjaGVtYSksXG4gICAgLyoqXG4gICAgICogQW4gb3B0aW9uYWwgc3lzdGVtIHByb21wdCB0aGUgc2VydmVyIHdhbnRzIHRvIHVzZSBmb3Igc2FtcGxpbmcuIFRoZSBjbGllbnQgTUFZIG1vZGlmeSBvciBvbWl0IHRoaXMgcHJvbXB0LlxuICAgICAqL1xuICAgIHN5c3RlbVByb21wdDogei5vcHRpb25hbCh6LnN0cmluZygpKSxcbiAgICAvKipcbiAgICAgKiBBIHJlcXVlc3QgdG8gaW5jbHVkZSBjb250ZXh0IGZyb20gb25lIG9yIG1vcmUgTUNQIHNlcnZlcnMgKGluY2x1ZGluZyB0aGUgY2FsbGVyKSwgdG8gYmUgYXR0YWNoZWQgdG8gdGhlIHByb21wdC4gVGhlIGNsaWVudCBNQVkgaWdub3JlIHRoaXMgcmVxdWVzdC5cbiAgICAgKi9cbiAgICBpbmNsdWRlQ29udGV4dDogei5vcHRpb25hbCh6LmVudW0oW1wibm9uZVwiLCBcInRoaXNTZXJ2ZXJcIiwgXCJhbGxTZXJ2ZXJzXCJdKSksXG4gICAgdGVtcGVyYXR1cmU6IHoub3B0aW9uYWwoei5udW1iZXIoKSksXG4gICAgLyoqXG4gICAgICogVGhlIG1heGltdW0gbnVtYmVyIG9mIHRva2VucyB0byBzYW1wbGUsIGFzIHJlcXVlc3RlZCBieSB0aGUgc2VydmVyLiBUaGUgY2xpZW50IE1BWSBjaG9vc2UgdG8gc2FtcGxlIGZld2VyIHRva2VucyB0aGFuIHJlcXVlc3RlZC5cbiAgICAgKi9cbiAgICBtYXhUb2tlbnM6IHoubnVtYmVyKCkuaW50KCksXG4gICAgc3RvcFNlcXVlbmNlczogei5vcHRpb25hbCh6LmFycmF5KHouc3RyaW5nKCkpKSxcbiAgICAvKipcbiAgICAgKiBPcHRpb25hbCBtZXRhZGF0YSB0byBwYXNzIHRocm91Z2ggdG8gdGhlIExMTSBwcm92aWRlci4gVGhlIGZvcm1hdCBvZiB0aGlzIG1ldGFkYXRhIGlzIHByb3ZpZGVyLXNwZWNpZmljLlxuICAgICAqL1xuICAgIG1ldGFkYXRhOiB6Lm9wdGlvbmFsKHoub2JqZWN0KHt9KS5wYXNzdGhyb3VnaCgpKSxcbiAgICAvKipcbiAgICAgKiBUaGUgc2VydmVyJ3MgcHJlZmVyZW5jZXMgZm9yIHdoaWNoIG1vZGVsIHRvIHNlbGVjdC5cbiAgICAgKi9cbiAgICBtb2RlbFByZWZlcmVuY2VzOiB6Lm9wdGlvbmFsKE1vZGVsUHJlZmVyZW5jZXNTY2hlbWEpXG4gIH0pXG59KTtcbnZhciBDcmVhdGVNZXNzYWdlUmVzdWx0U2NoZW1hID0gUmVzdWx0U2NoZW1hLmV4dGVuZCh7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgbW9kZWwgdGhhdCBnZW5lcmF0ZWQgdGhlIG1lc3NhZ2UuXG4gICAqL1xuICBtb2RlbDogei5zdHJpbmcoKSxcbiAgLyoqXG4gICAqIFRoZSByZWFzb24gd2h5IHNhbXBsaW5nIHN0b3BwZWQuXG4gICAqL1xuICBzdG9wUmVhc29uOiB6Lm9wdGlvbmFsKHouZW51bShbXCJlbmRUdXJuXCIsIFwic3RvcFNlcXVlbmNlXCIsIFwibWF4VG9rZW5zXCJdKS5vcih6LnN0cmluZygpKSksXG4gIHJvbGU6IHouZW51bShbXCJ1c2VyXCIsIFwiYXNzaXN0YW50XCJdKSxcbiAgY29udGVudDogei5kaXNjcmltaW5hdGVkVW5pb24oXCJ0eXBlXCIsIFtcbiAgICBUZXh0Q29udGVudFNjaGVtYSxcbiAgICBJbWFnZUNvbnRlbnRTY2hlbWEsXG4gICAgQXVkaW9Db250ZW50U2NoZW1hXG4gIF0pXG59KTtcbnZhciBCb29sZWFuU2NoZW1hU2NoZW1hID0gei5vYmplY3Qoe1xuICB0eXBlOiB6LmxpdGVyYWwoXCJib29sZWFuXCIpLFxuICB0aXRsZTogei5vcHRpb25hbCh6LnN0cmluZygpKSxcbiAgZGVzY3JpcHRpb246IHoub3B0aW9uYWwoei5zdHJpbmcoKSksXG4gIGRlZmF1bHQ6IHoub3B0aW9uYWwoei5ib29sZWFuKCkpXG59KS5wYXNzdGhyb3VnaCgpO1xudmFyIFN0cmluZ1NjaGVtYVNjaGVtYSA9IHoub2JqZWN0KHtcbiAgdHlwZTogei5saXRlcmFsKFwic3RyaW5nXCIpLFxuICB0aXRsZTogei5vcHRpb25hbCh6LnN0cmluZygpKSxcbiAgZGVzY3JpcHRpb246IHoub3B0aW9uYWwoei5zdHJpbmcoKSksXG4gIG1pbkxlbmd0aDogei5vcHRpb25hbCh6Lm51bWJlcigpKSxcbiAgbWF4TGVuZ3RoOiB6Lm9wdGlvbmFsKHoubnVtYmVyKCkpLFxuICBmb3JtYXQ6IHoub3B0aW9uYWwoei5lbnVtKFtcImVtYWlsXCIsIFwidXJpXCIsIFwiZGF0ZVwiLCBcImRhdGUtdGltZVwiXSkpXG59KS5wYXNzdGhyb3VnaCgpO1xudmFyIE51bWJlclNjaGVtYVNjaGVtYSA9IHoub2JqZWN0KHtcbiAgdHlwZTogei5lbnVtKFtcIm51bWJlclwiLCBcImludGVnZXJcIl0pLFxuICB0aXRsZTogei5vcHRpb25hbCh6LnN0cmluZygpKSxcbiAgZGVzY3JpcHRpb246IHoub3B0aW9uYWwoei5zdHJpbmcoKSksXG4gIG1pbmltdW06IHoub3B0aW9uYWwoei5udW1iZXIoKSksXG4gIG1heGltdW06IHoub3B0aW9uYWwoei5udW1iZXIoKSlcbn0pLnBhc3N0aHJvdWdoKCk7XG52YXIgRW51bVNjaGVtYVNjaGVtYSA9IHoub2JqZWN0KHtcbiAgdHlwZTogei5saXRlcmFsKFwic3RyaW5nXCIpLFxuICB0aXRsZTogei5vcHRpb25hbCh6LnN0cmluZygpKSxcbiAgZGVzY3JpcHRpb246IHoub3B0aW9uYWwoei5zdHJpbmcoKSksXG4gIGVudW06IHouYXJyYXkoei5zdHJpbmcoKSksXG4gIGVudW1OYW1lczogei5vcHRpb25hbCh6LmFycmF5KHouc3RyaW5nKCkpKVxufSkucGFzc3Rocm91Z2goKTtcbnZhciBQcmltaXRpdmVTY2hlbWFEZWZpbml0aW9uU2NoZW1hID0gei51bmlvbihbXG4gIEJvb2xlYW5TY2hlbWFTY2hlbWEsXG4gIFN0cmluZ1NjaGVtYVNjaGVtYSxcbiAgTnVtYmVyU2NoZW1hU2NoZW1hLFxuICBFbnVtU2NoZW1hU2NoZW1hXG5dKTtcbnZhciBFbGljaXRSZXF1ZXN0U2NoZW1hID0gUmVxdWVzdFNjaGVtYS5leHRlbmQoe1xuICBtZXRob2Q6IHoubGl0ZXJhbChcImVsaWNpdGF0aW9uL2NyZWF0ZVwiKSxcbiAgcGFyYW1zOiBCYXNlUmVxdWVzdFBhcmFtc1NjaGVtYS5leHRlbmQoe1xuICAgIC8qKlxuICAgICAqIFRoZSBtZXNzYWdlIHRvIHByZXNlbnQgdG8gdGhlIHVzZXIuXG4gICAgICovXG4gICAgbWVzc2FnZTogei5zdHJpbmcoKSxcbiAgICAvKipcbiAgICAgKiBUaGUgc2NoZW1hIGZvciB0aGUgcmVxdWVzdGVkIHVzZXIgaW5wdXQuXG4gICAgICovXG4gICAgcmVxdWVzdGVkU2NoZW1hOiB6Lm9iamVjdCh7XG4gICAgICB0eXBlOiB6LmxpdGVyYWwoXCJvYmplY3RcIiksXG4gICAgICBwcm9wZXJ0aWVzOiB6LnJlY29yZCh6LnN0cmluZygpLCBQcmltaXRpdmVTY2hlbWFEZWZpbml0aW9uU2NoZW1hKSxcbiAgICAgIHJlcXVpcmVkOiB6Lm9wdGlvbmFsKHouYXJyYXkoei5zdHJpbmcoKSkpXG4gICAgfSkucGFzc3Rocm91Z2goKVxuICB9KVxufSk7XG52YXIgRWxpY2l0UmVzdWx0U2NoZW1hID0gUmVzdWx0U2NoZW1hLmV4dGVuZCh7XG4gIC8qKlxuICAgKiBUaGUgdXNlcidzIHJlc3BvbnNlIGFjdGlvbi5cbiAgICovXG4gIGFjdGlvbjogei5lbnVtKFtcImFjY2VwdFwiLCBcImRlY2xpbmVcIiwgXCJjYW5jZWxcIl0pLFxuICAvKipcbiAgICogVGhlIGNvbGxlY3RlZCB1c2VyIGlucHV0IGNvbnRlbnQgKG9ubHkgcHJlc2VudCBpZiBhY3Rpb24gaXMgXCJhY2NlcHRcIikuXG4gICAqL1xuICBjb250ZW50OiB6Lm9wdGlvbmFsKHoucmVjb3JkKHouc3RyaW5nKCksIHoudW5rbm93bigpKSlcbn0pO1xudmFyIFJlc291cmNlVGVtcGxhdGVSZWZlcmVuY2VTY2hlbWEgPSB6Lm9iamVjdCh7XG4gIHR5cGU6IHoubGl0ZXJhbChcInJlZi9yZXNvdXJjZVwiKSxcbiAgLyoqXG4gICAqIFRoZSBVUkkgb3IgVVJJIHRlbXBsYXRlIG9mIHRoZSByZXNvdXJjZS5cbiAgICovXG4gIHVyaTogei5zdHJpbmcoKVxufSkucGFzc3Rocm91Z2goKTtcbnZhciBQcm9tcHRSZWZlcmVuY2VTY2hlbWEgPSB6Lm9iamVjdCh7XG4gIHR5cGU6IHoubGl0ZXJhbChcInJlZi9wcm9tcHRcIiksXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgcHJvbXB0IG9yIHByb21wdCB0ZW1wbGF0ZVxuICAgKi9cbiAgbmFtZTogei5zdHJpbmcoKVxufSkucGFzc3Rocm91Z2goKTtcbnZhciBDb21wbGV0ZVJlcXVlc3RTY2hlbWEgPSBSZXF1ZXN0U2NoZW1hLmV4dGVuZCh7XG4gIG1ldGhvZDogei5saXRlcmFsKFwiY29tcGxldGlvbi9jb21wbGV0ZVwiKSxcbiAgcGFyYW1zOiBCYXNlUmVxdWVzdFBhcmFtc1NjaGVtYS5leHRlbmQoe1xuICAgIHJlZjogei51bmlvbihbUHJvbXB0UmVmZXJlbmNlU2NoZW1hLCBSZXNvdXJjZVRlbXBsYXRlUmVmZXJlbmNlU2NoZW1hXSksXG4gICAgLyoqXG4gICAgICogVGhlIGFyZ3VtZW50J3MgaW5mb3JtYXRpb25cbiAgICAgKi9cbiAgICBhcmd1bWVudDogei5vYmplY3Qoe1xuICAgICAgLyoqXG4gICAgICAgKiBUaGUgbmFtZSBvZiB0aGUgYXJndW1lbnRcbiAgICAgICAqL1xuICAgICAgbmFtZTogei5zdHJpbmcoKSxcbiAgICAgIC8qKlxuICAgICAgICogVGhlIHZhbHVlIG9mIHRoZSBhcmd1bWVudCB0byB1c2UgZm9yIGNvbXBsZXRpb24gbWF0Y2hpbmcuXG4gICAgICAgKi9cbiAgICAgIHZhbHVlOiB6LnN0cmluZygpXG4gICAgfSkucGFzc3Rocm91Z2goKSxcbiAgICBjb250ZXh0OiB6Lm9wdGlvbmFsKHoub2JqZWN0KHtcbiAgICAgIC8qKlxuICAgICAgICogUHJldmlvdXNseS1yZXNvbHZlZCB2YXJpYWJsZXMgaW4gYSBVUkkgdGVtcGxhdGUgb3IgcHJvbXB0LlxuICAgICAgICovXG4gICAgICBhcmd1bWVudHM6IHoub3B0aW9uYWwoei5yZWNvcmQoei5zdHJpbmcoKSwgei5zdHJpbmcoKSkpXG4gICAgfSkpXG4gIH0pXG59KTtcbnZhciBDb21wbGV0ZVJlc3VsdFNjaGVtYSA9IFJlc3VsdFNjaGVtYS5leHRlbmQoe1xuICBjb21wbGV0aW9uOiB6Lm9iamVjdCh7XG4gICAgLyoqXG4gICAgICogQW4gYXJyYXkgb2YgY29tcGxldGlvbiB2YWx1ZXMuIE11c3Qgbm90IGV4Y2VlZCAxMDAgaXRlbXMuXG4gICAgICovXG4gICAgdmFsdWVzOiB6LmFycmF5KHouc3RyaW5nKCkpLm1heCgxMDApLFxuICAgIC8qKlxuICAgICAqIFRoZSB0b3RhbCBudW1iZXIgb2YgY29tcGxldGlvbiBvcHRpb25zIGF2YWlsYWJsZS4gVGhpcyBjYW4gZXhjZWVkIHRoZSBudW1iZXIgb2YgdmFsdWVzIGFjdHVhbGx5IHNlbnQgaW4gdGhlIHJlc3BvbnNlLlxuICAgICAqL1xuICAgIHRvdGFsOiB6Lm9wdGlvbmFsKHoubnVtYmVyKCkuaW50KCkpLFxuICAgIC8qKlxuICAgICAqIEluZGljYXRlcyB3aGV0aGVyIHRoZXJlIGFyZSBhZGRpdGlvbmFsIGNvbXBsZXRpb24gb3B0aW9ucyBiZXlvbmQgdGhvc2UgcHJvdmlkZWQgaW4gdGhlIGN1cnJlbnQgcmVzcG9uc2UsIGV2ZW4gaWYgdGhlIGV4YWN0IHRvdGFsIGlzIHVua25vd24uXG4gICAgICovXG4gICAgaGFzTW9yZTogei5vcHRpb25hbCh6LmJvb2xlYW4oKSlcbiAgfSkucGFzc3Rocm91Z2goKVxufSk7XG52YXIgUm9vdFNjaGVtYSA9IHoub2JqZWN0KHtcbiAgLyoqXG4gICAqIFRoZSBVUkkgaWRlbnRpZnlpbmcgdGhlIHJvb3QuIFRoaXMgKm11c3QqIHN0YXJ0IHdpdGggZmlsZTovLyBmb3Igbm93LlxuICAgKi9cbiAgdXJpOiB6LnN0cmluZygpLnN0YXJ0c1dpdGgoXCJmaWxlOi8vXCIpLFxuICAvKipcbiAgICogQW4gb3B0aW9uYWwgbmFtZSBmb3IgdGhlIHJvb3QuXG4gICAqL1xuICBuYW1lOiB6Lm9wdGlvbmFsKHouc3RyaW5nKCkpLFxuICAvKipcbiAgICogU2VlIFtNQ1Agc3BlY2lmaWNhdGlvbl0oaHR0cHM6Ly9naXRodWIuY29tL21vZGVsY29udGV4dHByb3RvY29sL21vZGVsY29udGV4dHByb3RvY29sL2Jsb2IvNDczMzljMDNjMTQzYmI0ZWMwMWEyNmU3MjFhMWI4ZmU2NjYzNGViZS9kb2NzL3NwZWNpZmljYXRpb24vZHJhZnQvYmFzaWMvaW5kZXgubWR4I2dlbmVyYWwtZmllbGRzKVxuICAgKiBmb3Igbm90ZXMgb24gX21ldGEgdXNhZ2UuXG4gICAqL1xuICBfbWV0YTogei5vcHRpb25hbCh6Lm9iamVjdCh7fSkucGFzc3Rocm91Z2goKSlcbn0pLnBhc3N0aHJvdWdoKCk7XG52YXIgTGlzdFJvb3RzUmVxdWVzdFNjaGVtYSA9IFJlcXVlc3RTY2hlbWEuZXh0ZW5kKHtcbiAgbWV0aG9kOiB6LmxpdGVyYWwoXCJyb290cy9saXN0XCIpXG59KTtcbnZhciBMaXN0Um9vdHNSZXN1bHRTY2hlbWEgPSBSZXN1bHRTY2hlbWEuZXh0ZW5kKHtcbiAgcm9vdHM6IHouYXJyYXkoUm9vdFNjaGVtYSlcbn0pO1xudmFyIFJvb3RzTGlzdENoYW5nZWROb3RpZmljYXRpb25TY2hlbWEgPSBOb3RpZmljYXRpb25TY2hlbWEuZXh0ZW5kKHtcbiAgbWV0aG9kOiB6LmxpdGVyYWwoXCJub3RpZmljYXRpb25zL3Jvb3RzL2xpc3RfY2hhbmdlZFwiKVxufSk7XG52YXIgQ2xpZW50UmVxdWVzdFNjaGVtYSA9IHoudW5pb24oW1xuICBQaW5nUmVxdWVzdFNjaGVtYSxcbiAgSW5pdGlhbGl6ZVJlcXVlc3RTY2hlbWEsXG4gIENvbXBsZXRlUmVxdWVzdFNjaGVtYSxcbiAgU2V0TGV2ZWxSZXF1ZXN0U2NoZW1hLFxuICBHZXRQcm9tcHRSZXF1ZXN0U2NoZW1hLFxuICBMaXN0UHJvbXB0c1JlcXVlc3RTY2hlbWEsXG4gIExpc3RSZXNvdXJjZXNSZXF1ZXN0U2NoZW1hLFxuICBMaXN0UmVzb3VyY2VUZW1wbGF0ZXNSZXF1ZXN0U2NoZW1hLFxuICBSZWFkUmVzb3VyY2VSZXF1ZXN0U2NoZW1hLFxuICBTdWJzY3JpYmVSZXF1ZXN0U2NoZW1hLFxuICBVbnN1YnNjcmliZVJlcXVlc3RTY2hlbWEsXG4gIENhbGxUb29sUmVxdWVzdFNjaGVtYSxcbiAgTGlzdFRvb2xzUmVxdWVzdFNjaGVtYVxuXSk7XG52YXIgQ2xpZW50Tm90aWZpY2F0aW9uU2NoZW1hID0gei51bmlvbihbXG4gIENhbmNlbGxlZE5vdGlmaWNhdGlvblNjaGVtYSxcbiAgUHJvZ3Jlc3NOb3RpZmljYXRpb25TY2hlbWEsXG4gIEluaXRpYWxpemVkTm90aWZpY2F0aW9uU2NoZW1hLFxuICBSb290c0xpc3RDaGFuZ2VkTm90aWZpY2F0aW9uU2NoZW1hXG5dKTtcbnZhciBDbGllbnRSZXN1bHRTY2hlbWEgPSB6LnVuaW9uKFtcbiAgRW1wdHlSZXN1bHRTY2hlbWEsXG4gIENyZWF0ZU1lc3NhZ2VSZXN1bHRTY2hlbWEsXG4gIEVsaWNpdFJlc3VsdFNjaGVtYSxcbiAgTGlzdFJvb3RzUmVzdWx0U2NoZW1hXG5dKTtcbnZhciBTZXJ2ZXJSZXF1ZXN0U2NoZW1hID0gei51bmlvbihbXG4gIFBpbmdSZXF1ZXN0U2NoZW1hLFxuICBDcmVhdGVNZXNzYWdlUmVxdWVzdFNjaGVtYSxcbiAgRWxpY2l0UmVxdWVzdFNjaGVtYSxcbiAgTGlzdFJvb3RzUmVxdWVzdFNjaGVtYVxuXSk7XG52YXIgU2VydmVyTm90aWZpY2F0aW9uU2NoZW1hID0gei51bmlvbihbXG4gIENhbmNlbGxlZE5vdGlmaWNhdGlvblNjaGVtYSxcbiAgUHJvZ3Jlc3NOb3RpZmljYXRpb25TY2hlbWEsXG4gIExvZ2dpbmdNZXNzYWdlTm90aWZpY2F0aW9uU2NoZW1hLFxuICBSZXNvdXJjZVVwZGF0ZWROb3RpZmljYXRpb25TY2hlbWEsXG4gIFJlc291cmNlTGlzdENoYW5nZWROb3RpZmljYXRpb25TY2hlbWEsXG4gIFRvb2xMaXN0Q2hhbmdlZE5vdGlmaWNhdGlvblNjaGVtYSxcbiAgUHJvbXB0TGlzdENoYW5nZWROb3RpZmljYXRpb25TY2hlbWFcbl0pO1xudmFyIFNlcnZlclJlc3VsdFNjaGVtYSA9IHoudW5pb24oW1xuICBFbXB0eVJlc3VsdFNjaGVtYSxcbiAgSW5pdGlhbGl6ZVJlc3VsdFNjaGVtYSxcbiAgQ29tcGxldGVSZXN1bHRTY2hlbWEsXG4gIEdldFByb21wdFJlc3VsdFNjaGVtYSxcbiAgTGlzdFByb21wdHNSZXN1bHRTY2hlbWEsXG4gIExpc3RSZXNvdXJjZXNSZXN1bHRTY2hlbWEsXG4gIExpc3RSZXNvdXJjZVRlbXBsYXRlc1Jlc3VsdFNjaGVtYSxcbiAgUmVhZFJlc291cmNlUmVzdWx0U2NoZW1hLFxuICBDYWxsVG9vbFJlc3VsdFNjaGVtYSxcbiAgTGlzdFRvb2xzUmVzdWx0U2NoZW1hXG5dKTtcblxuLy8gbm9kZV9tb2R1bGVzL0Btb2RlbGNvbnRleHRwcm90b2NvbC9zZGsvZGlzdC9lc20vc2VydmVyL3N0cmVhbWFibGVIdHRwLmpzXG52YXIgaW1wb3J0X3Jhd19ib2R5ID0gX190b0VTTShyZXF1aXJlX3Jhd19ib2R5KCksIDEpO1xudmFyIGltcG9ydF9jb250ZW50X3R5cGUgPSBfX3RvRVNNKHJlcXVpcmVfY29udGVudF90eXBlKCksIDEpO1xudmFyIGltcG9ydF9ub2RlX2NyeXB0byA9IHJlcXVpcmUoXCJub2RlOmNyeXB0b1wiKTtcbnZhciBNQVhJTVVNX01FU1NBR0VfU0laRSA9IFwiNG1iXCI7XG52YXIgU3RyZWFtYWJsZUhUVFBTZXJ2ZXJUcmFuc3BvcnQgPSBjbGFzcyB7XG4gIGNvbnN0cnVjdG9yKG9wdGlvbnMpIHtcbiAgICB2YXIgX2EsIF9iO1xuICAgIHRoaXMuX3N0YXJ0ZWQgPSBmYWxzZTtcbiAgICB0aGlzLl9zdHJlYW1NYXBwaW5nID0gLyogQF9fUFVSRV9fICovIG5ldyBNYXAoKTtcbiAgICB0aGlzLl9yZXF1ZXN0VG9TdHJlYW1NYXBwaW5nID0gLyogQF9fUFVSRV9fICovIG5ldyBNYXAoKTtcbiAgICB0aGlzLl9yZXF1ZXN0UmVzcG9uc2VNYXAgPSAvKiBAX19QVVJFX18gKi8gbmV3IE1hcCgpO1xuICAgIHRoaXMuX2luaXRpYWxpemVkID0gZmFsc2U7XG4gICAgdGhpcy5fZW5hYmxlSnNvblJlc3BvbnNlID0gZmFsc2U7XG4gICAgdGhpcy5fc3RhbmRhbG9uZVNzZVN0cmVhbUlkID0gXCJfR0VUX3N0cmVhbVwiO1xuICAgIHRoaXMuc2Vzc2lvbklkR2VuZXJhdG9yID0gb3B0aW9ucy5zZXNzaW9uSWRHZW5lcmF0b3I7XG4gICAgdGhpcy5fZW5hYmxlSnNvblJlc3BvbnNlID0gKF9hID0gb3B0aW9ucy5lbmFibGVKc29uUmVzcG9uc2UpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IGZhbHNlO1xuICAgIHRoaXMuX2V2ZW50U3RvcmUgPSBvcHRpb25zLmV2ZW50U3RvcmU7XG4gICAgdGhpcy5fb25zZXNzaW9uaW5pdGlhbGl6ZWQgPSBvcHRpb25zLm9uc2Vzc2lvbmluaXRpYWxpemVkO1xuICAgIHRoaXMuX29uc2Vzc2lvbmNsb3NlZCA9IG9wdGlvbnMub25zZXNzaW9uY2xvc2VkO1xuICAgIHRoaXMuX2FsbG93ZWRIb3N0cyA9IG9wdGlvbnMuYWxsb3dlZEhvc3RzO1xuICAgIHRoaXMuX2FsbG93ZWRPcmlnaW5zID0gb3B0aW9ucy5hbGxvd2VkT3JpZ2lucztcbiAgICB0aGlzLl9lbmFibGVEbnNSZWJpbmRpbmdQcm90ZWN0aW9uID0gKF9iID0gb3B0aW9ucy5lbmFibGVEbnNSZWJpbmRpbmdQcm90ZWN0aW9uKSAhPT0gbnVsbCAmJiBfYiAhPT0gdm9pZCAwID8gX2IgOiBmYWxzZTtcbiAgfVxuICAvKipcbiAgICogU3RhcnRzIHRoZSB0cmFuc3BvcnQuIFRoaXMgaXMgcmVxdWlyZWQgYnkgdGhlIFRyYW5zcG9ydCBpbnRlcmZhY2UgYnV0IGlzIGEgbm8tb3BcbiAgICogZm9yIHRoZSBTdHJlYW1hYmxlIEhUVFAgdHJhbnNwb3J0IGFzIGNvbm5lY3Rpb25zIGFyZSBtYW5hZ2VkIHBlci1yZXF1ZXN0LlxuICAgKi9cbiAgYXN5bmMgc3RhcnQoKSB7XG4gICAgaWYgKHRoaXMuX3N0YXJ0ZWQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIlRyYW5zcG9ydCBhbHJlYWR5IHN0YXJ0ZWRcIik7XG4gICAgfVxuICAgIHRoaXMuX3N0YXJ0ZWQgPSB0cnVlO1xuICB9XG4gIC8qKlxuICAgKiBWYWxpZGF0ZXMgcmVxdWVzdCBoZWFkZXJzIGZvciBETlMgcmViaW5kaW5nIHByb3RlY3Rpb24uXG4gICAqIEByZXR1cm5zIEVycm9yIG1lc3NhZ2UgaWYgdmFsaWRhdGlvbiBmYWlscywgdW5kZWZpbmVkIGlmIHZhbGlkYXRpb24gcGFzc2VzLlxuICAgKi9cbiAgdmFsaWRhdGVSZXF1ZXN0SGVhZGVycyhyZXEpIHtcbiAgICBpZiAoIXRoaXMuX2VuYWJsZURuc1JlYmluZGluZ1Byb3RlY3Rpb24pIHtcbiAgICAgIHJldHVybiB2b2lkIDA7XG4gICAgfVxuICAgIGlmICh0aGlzLl9hbGxvd2VkSG9zdHMgJiYgdGhpcy5fYWxsb3dlZEhvc3RzLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IGhvc3RIZWFkZXIgPSByZXEuaGVhZGVycy5ob3N0O1xuICAgICAgaWYgKCFob3N0SGVhZGVyIHx8ICF0aGlzLl9hbGxvd2VkSG9zdHMuaW5jbHVkZXMoaG9zdEhlYWRlcikpIHtcbiAgICAgICAgcmV0dXJuIGBJbnZhbGlkIEhvc3QgaGVhZGVyOiAke2hvc3RIZWFkZXJ9YDtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKHRoaXMuX2FsbG93ZWRPcmlnaW5zICYmIHRoaXMuX2FsbG93ZWRPcmlnaW5zLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IG9yaWdpbkhlYWRlciA9IHJlcS5oZWFkZXJzLm9yaWdpbjtcbiAgICAgIGlmICghb3JpZ2luSGVhZGVyIHx8ICF0aGlzLl9hbGxvd2VkT3JpZ2lucy5pbmNsdWRlcyhvcmlnaW5IZWFkZXIpKSB7XG4gICAgICAgIHJldHVybiBgSW52YWxpZCBPcmlnaW4gaGVhZGVyOiAke29yaWdpbkhlYWRlcn1gO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdm9pZCAwO1xuICB9XG4gIC8qKlxuICAgKiBIYW5kbGVzIGFuIGluY29taW5nIEhUVFAgcmVxdWVzdCwgd2hldGhlciBHRVQgb3IgUE9TVFxuICAgKi9cbiAgYXN5bmMgaGFuZGxlUmVxdWVzdChyZXEsIHJlcywgcGFyc2VkQm9keSkge1xuICAgIHZhciBfYTtcbiAgICBjb25zdCB2YWxpZGF0aW9uRXJyb3IgPSB0aGlzLnZhbGlkYXRlUmVxdWVzdEhlYWRlcnMocmVxKTtcbiAgICBpZiAodmFsaWRhdGlvbkVycm9yKSB7XG4gICAgICByZXMud3JpdGVIZWFkKDQwMykuZW5kKEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAganNvbnJwYzogXCIyLjBcIixcbiAgICAgICAgZXJyb3I6IHtcbiAgICAgICAgICBjb2RlOiAtMzJlMyxcbiAgICAgICAgICBtZXNzYWdlOiB2YWxpZGF0aW9uRXJyb3JcbiAgICAgICAgfSxcbiAgICAgICAgaWQ6IG51bGxcbiAgICAgIH0pKTtcbiAgICAgIChfYSA9IHRoaXMub25lcnJvcikgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmNhbGwodGhpcywgbmV3IEVycm9yKHZhbGlkYXRpb25FcnJvcikpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAocmVxLm1ldGhvZCA9PT0gXCJQT1NUXCIpIHtcbiAgICAgIGF3YWl0IHRoaXMuaGFuZGxlUG9zdFJlcXVlc3QocmVxLCByZXMsIHBhcnNlZEJvZHkpO1xuICAgIH0gZWxzZSBpZiAocmVxLm1ldGhvZCA9PT0gXCJHRVRcIikge1xuICAgICAgYXdhaXQgdGhpcy5oYW5kbGVHZXRSZXF1ZXN0KHJlcSwgcmVzKTtcbiAgICB9IGVsc2UgaWYgKHJlcS5tZXRob2QgPT09IFwiREVMRVRFXCIpIHtcbiAgICAgIGF3YWl0IHRoaXMuaGFuZGxlRGVsZXRlUmVxdWVzdChyZXEsIHJlcyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGF3YWl0IHRoaXMuaGFuZGxlVW5zdXBwb3J0ZWRSZXF1ZXN0KHJlcyk7XG4gICAgfVxuICB9XG4gIC8qKlxuICAgKiBIYW5kbGVzIEdFVCByZXF1ZXN0cyBmb3IgU1NFIHN0cmVhbVxuICAgKi9cbiAgYXN5bmMgaGFuZGxlR2V0UmVxdWVzdChyZXEsIHJlcykge1xuICAgIGNvbnN0IGFjY2VwdEhlYWRlciA9IHJlcS5oZWFkZXJzLmFjY2VwdDtcbiAgICBpZiAoIShhY2NlcHRIZWFkZXIgPT09IG51bGwgfHwgYWNjZXB0SGVhZGVyID09PSB2b2lkIDAgPyB2b2lkIDAgOiBhY2NlcHRIZWFkZXIuaW5jbHVkZXMoXCJ0ZXh0L2V2ZW50LXN0cmVhbVwiKSkpIHtcbiAgICAgIHJlcy53cml0ZUhlYWQoNDA2KS5lbmQoSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICBqc29ucnBjOiBcIjIuMFwiLFxuICAgICAgICBlcnJvcjoge1xuICAgICAgICAgIGNvZGU6IC0zMmUzLFxuICAgICAgICAgIG1lc3NhZ2U6IFwiTm90IEFjY2VwdGFibGU6IENsaWVudCBtdXN0IGFjY2VwdCB0ZXh0L2V2ZW50LXN0cmVhbVwiXG4gICAgICAgIH0sXG4gICAgICAgIGlkOiBudWxsXG4gICAgICB9KSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICghdGhpcy52YWxpZGF0ZVNlc3Npb24ocmVxLCByZXMpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICghdGhpcy52YWxpZGF0ZVByb3RvY29sVmVyc2lvbihyZXEsIHJlcykpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKHRoaXMuX2V2ZW50U3RvcmUpIHtcbiAgICAgIGNvbnN0IGxhc3RFdmVudElkID0gcmVxLmhlYWRlcnNbXCJsYXN0LWV2ZW50LWlkXCJdO1xuICAgICAgaWYgKGxhc3RFdmVudElkKSB7XG4gICAgICAgIGF3YWl0IHRoaXMucmVwbGF5RXZlbnRzKGxhc3RFdmVudElkLCByZXMpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgfVxuICAgIGNvbnN0IGhlYWRlcnMgPSB7XG4gICAgICBcIkNvbnRlbnQtVHlwZVwiOiBcInRleHQvZXZlbnQtc3RyZWFtXCIsXG4gICAgICBcIkNhY2hlLUNvbnRyb2xcIjogXCJuby1jYWNoZSwgbm8tdHJhbnNmb3JtXCIsXG4gICAgICBDb25uZWN0aW9uOiBcImtlZXAtYWxpdmVcIlxuICAgIH07XG4gICAgaWYgKHRoaXMuc2Vzc2lvbklkICE9PSB2b2lkIDApIHtcbiAgICAgIGhlYWRlcnNbXCJtY3Atc2Vzc2lvbi1pZFwiXSA9IHRoaXMuc2Vzc2lvbklkO1xuICAgIH1cbiAgICBpZiAodGhpcy5fc3RyZWFtTWFwcGluZy5nZXQodGhpcy5fc3RhbmRhbG9uZVNzZVN0cmVhbUlkKSAhPT0gdm9pZCAwKSB7XG4gICAgICByZXMud3JpdGVIZWFkKDQwOSkuZW5kKEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAganNvbnJwYzogXCIyLjBcIixcbiAgICAgICAgZXJyb3I6IHtcbiAgICAgICAgICBjb2RlOiAtMzJlMyxcbiAgICAgICAgICBtZXNzYWdlOiBcIkNvbmZsaWN0OiBPbmx5IG9uZSBTU0Ugc3RyZWFtIGlzIGFsbG93ZWQgcGVyIHNlc3Npb25cIlxuICAgICAgICB9LFxuICAgICAgICBpZDogbnVsbFxuICAgICAgfSkpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICByZXMud3JpdGVIZWFkKDIwMCwgaGVhZGVycykuZmx1c2hIZWFkZXJzKCk7XG4gICAgdGhpcy5fc3RyZWFtTWFwcGluZy5zZXQodGhpcy5fc3RhbmRhbG9uZVNzZVN0cmVhbUlkLCByZXMpO1xuICAgIHJlcy5vbihcImNsb3NlXCIsICgpID0+IHtcbiAgICAgIHRoaXMuX3N0cmVhbU1hcHBpbmcuZGVsZXRlKHRoaXMuX3N0YW5kYWxvbmVTc2VTdHJlYW1JZCk7XG4gICAgfSk7XG4gIH1cbiAgLyoqXG4gICAqIFJlcGxheXMgZXZlbnRzIHRoYXQgd291bGQgaGF2ZSBiZWVuIHNlbnQgYWZ0ZXIgdGhlIHNwZWNpZmllZCBldmVudCBJRFxuICAgKiBPbmx5IHVzZWQgd2hlbiByZXN1bWFiaWxpdHkgaXMgZW5hYmxlZFxuICAgKi9cbiAgYXN5bmMgcmVwbGF5RXZlbnRzKGxhc3RFdmVudElkLCByZXMpIHtcbiAgICB2YXIgX2EsIF9iO1xuICAgIGlmICghdGhpcy5fZXZlbnRTdG9yZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0cnkge1xuICAgICAgY29uc3QgaGVhZGVycyA9IHtcbiAgICAgICAgXCJDb250ZW50LVR5cGVcIjogXCJ0ZXh0L2V2ZW50LXN0cmVhbVwiLFxuICAgICAgICBcIkNhY2hlLUNvbnRyb2xcIjogXCJuby1jYWNoZSwgbm8tdHJhbnNmb3JtXCIsXG4gICAgICAgIENvbm5lY3Rpb246IFwia2VlcC1hbGl2ZVwiXG4gICAgICB9O1xuICAgICAgaWYgKHRoaXMuc2Vzc2lvbklkICE9PSB2b2lkIDApIHtcbiAgICAgICAgaGVhZGVyc1tcIm1jcC1zZXNzaW9uLWlkXCJdID0gdGhpcy5zZXNzaW9uSWQ7XG4gICAgICB9XG4gICAgICByZXMud3JpdGVIZWFkKDIwMCwgaGVhZGVycykuZmx1c2hIZWFkZXJzKCk7XG4gICAgICBjb25zdCBzdHJlYW1JZCA9IGF3YWl0ICgoX2EgPSB0aGlzLl9ldmVudFN0b3JlKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EucmVwbGF5RXZlbnRzQWZ0ZXIobGFzdEV2ZW50SWQsIHtcbiAgICAgICAgc2VuZDogYXN5bmMgKGV2ZW50SWQsIG1lc3NhZ2UpID0+IHtcbiAgICAgICAgICB2YXIgX2EyO1xuICAgICAgICAgIGlmICghdGhpcy53cml0ZVNTRUV2ZW50KHJlcywgbWVzc2FnZSwgZXZlbnRJZCkpIHtcbiAgICAgICAgICAgIChfYTIgPSB0aGlzLm9uZXJyb3IpID09PSBudWxsIHx8IF9hMiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EyLmNhbGwodGhpcywgbmV3IEVycm9yKFwiRmFpbGVkIHJlcGxheSBldmVudHNcIikpO1xuICAgICAgICAgICAgcmVzLmVuZCgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSkpO1xuICAgICAgdGhpcy5fc3RyZWFtTWFwcGluZy5zZXQoc3RyZWFtSWQsIHJlcyk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIChfYiA9IHRoaXMub25lcnJvcikgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLmNhbGwodGhpcywgZXJyb3IpO1xuICAgIH1cbiAgfVxuICAvKipcbiAgICogV3JpdGVzIGFuIGV2ZW50IHRvIHRoZSBTU0Ugc3RyZWFtIHdpdGggcHJvcGVyIGZvcm1hdHRpbmdcbiAgICovXG4gIHdyaXRlU1NFRXZlbnQocmVzLCBtZXNzYWdlLCBldmVudElkKSB7XG4gICAgbGV0IGV2ZW50RGF0YSA9IGBldmVudDogbWVzc2FnZVxuYDtcbiAgICBpZiAoZXZlbnRJZCkge1xuICAgICAgZXZlbnREYXRhICs9IGBpZDogJHtldmVudElkfVxuYDtcbiAgICB9XG4gICAgZXZlbnREYXRhICs9IGBkYXRhOiAke0pTT04uc3RyaW5naWZ5KG1lc3NhZ2UpfVxuXG5gO1xuICAgIHJldHVybiByZXMud3JpdGUoZXZlbnREYXRhKTtcbiAgfVxuICAvKipcbiAgICogSGFuZGxlcyB1bnN1cHBvcnRlZCByZXF1ZXN0cyAoUFVULCBQQVRDSCwgZXRjLilcbiAgICovXG4gIGFzeW5jIGhhbmRsZVVuc3VwcG9ydGVkUmVxdWVzdChyZXMpIHtcbiAgICByZXMud3JpdGVIZWFkKDQwNSwge1xuICAgICAgXCJBbGxvd1wiOiBcIkdFVCwgUE9TVCwgREVMRVRFXCJcbiAgICB9KS5lbmQoSlNPTi5zdHJpbmdpZnkoe1xuICAgICAganNvbnJwYzogXCIyLjBcIixcbiAgICAgIGVycm9yOiB7XG4gICAgICAgIGNvZGU6IC0zMmUzLFxuICAgICAgICBtZXNzYWdlOiBcIk1ldGhvZCBub3QgYWxsb3dlZC5cIlxuICAgICAgfSxcbiAgICAgIGlkOiBudWxsXG4gICAgfSkpO1xuICB9XG4gIC8qKlxuICAgKiBIYW5kbGVzIFBPU1QgcmVxdWVzdHMgY29udGFpbmluZyBKU09OLVJQQyBtZXNzYWdlc1xuICAgKi9cbiAgYXN5bmMgaGFuZGxlUG9zdFJlcXVlc3QocmVxLCByZXMsIHBhcnNlZEJvZHkpIHtcbiAgICB2YXIgX2EsIF9iLCBfYywgX2QsIF9lO1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBhY2NlcHRIZWFkZXIgPSByZXEuaGVhZGVycy5hY2NlcHQ7XG4gICAgICBpZiAoIShhY2NlcHRIZWFkZXIgPT09IG51bGwgfHwgYWNjZXB0SGVhZGVyID09PSB2b2lkIDAgPyB2b2lkIDAgOiBhY2NlcHRIZWFkZXIuaW5jbHVkZXMoXCJhcHBsaWNhdGlvbi9qc29uXCIpKSB8fCAhYWNjZXB0SGVhZGVyLmluY2x1ZGVzKFwidGV4dC9ldmVudC1zdHJlYW1cIikpIHtcbiAgICAgICAgcmVzLndyaXRlSGVhZCg0MDYpLmVuZChKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAganNvbnJwYzogXCIyLjBcIixcbiAgICAgICAgICBlcnJvcjoge1xuICAgICAgICAgICAgY29kZTogLTMyZTMsXG4gICAgICAgICAgICBtZXNzYWdlOiBcIk5vdCBBY2NlcHRhYmxlOiBDbGllbnQgbXVzdCBhY2NlcHQgYm90aCBhcHBsaWNhdGlvbi9qc29uIGFuZCB0ZXh0L2V2ZW50LXN0cmVhbVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBpZDogbnVsbFxuICAgICAgICB9KSk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGNvbnN0IGN0ID0gcmVxLmhlYWRlcnNbXCJjb250ZW50LXR5cGVcIl07XG4gICAgICBpZiAoIWN0IHx8ICFjdC5pbmNsdWRlcyhcImFwcGxpY2F0aW9uL2pzb25cIikpIHtcbiAgICAgICAgcmVzLndyaXRlSGVhZCg0MTUpLmVuZChKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAganNvbnJwYzogXCIyLjBcIixcbiAgICAgICAgICBlcnJvcjoge1xuICAgICAgICAgICAgY29kZTogLTMyZTMsXG4gICAgICAgICAgICBtZXNzYWdlOiBcIlVuc3VwcG9ydGVkIE1lZGlhIFR5cGU6IENvbnRlbnQtVHlwZSBtdXN0IGJlIGFwcGxpY2F0aW9uL2pzb25cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgaWQ6IG51bGxcbiAgICAgICAgfSkpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBjb25zdCBhdXRoSW5mbyA9IHJlcS5hdXRoO1xuICAgICAgY29uc3QgcmVxdWVzdEluZm8gPSB7IGhlYWRlcnM6IHJlcS5oZWFkZXJzIH07XG4gICAgICBsZXQgcmF3TWVzc2FnZTtcbiAgICAgIGlmIChwYXJzZWRCb2R5ICE9PSB2b2lkIDApIHtcbiAgICAgICAgcmF3TWVzc2FnZSA9IHBhcnNlZEJvZHk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBwYXJzZWRDdCA9IGltcG9ydF9jb250ZW50X3R5cGUuZGVmYXVsdC5wYXJzZShjdCk7XG4gICAgICAgIGNvbnN0IGJvZHkgPSBhd2FpdCAoMCwgaW1wb3J0X3Jhd19ib2R5LmRlZmF1bHQpKHJlcSwge1xuICAgICAgICAgIGxpbWl0OiBNQVhJTVVNX01FU1NBR0VfU0laRSxcbiAgICAgICAgICBlbmNvZGluZzogKF9hID0gcGFyc2VkQ3QucGFyYW1ldGVycy5jaGFyc2V0KSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiBcInV0Zi04XCJcbiAgICAgICAgfSk7XG4gICAgICAgIHJhd01lc3NhZ2UgPSBKU09OLnBhcnNlKGJvZHkudG9TdHJpbmcoKSk7XG4gICAgICB9XG4gICAgICBsZXQgbWVzc2FnZXM7XG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShyYXdNZXNzYWdlKSkge1xuICAgICAgICBtZXNzYWdlcyA9IHJhd01lc3NhZ2UubWFwKChtc2cpID0+IEpTT05SUENNZXNzYWdlU2NoZW1hLnBhcnNlKG1zZykpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbWVzc2FnZXMgPSBbSlNPTlJQQ01lc3NhZ2VTY2hlbWEucGFyc2UocmF3TWVzc2FnZSldO1xuICAgICAgfVxuICAgICAgY29uc3QgaXNJbml0aWFsaXphdGlvblJlcXVlc3QgPSBtZXNzYWdlcy5zb21lKGlzSW5pdGlhbGl6ZVJlcXVlc3QpO1xuICAgICAgaWYgKGlzSW5pdGlhbGl6YXRpb25SZXF1ZXN0KSB7XG4gICAgICAgIGlmICh0aGlzLl9pbml0aWFsaXplZCAmJiB0aGlzLnNlc3Npb25JZCAhPT0gdm9pZCAwKSB7XG4gICAgICAgICAgcmVzLndyaXRlSGVhZCg0MDApLmVuZChKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICBqc29ucnBjOiBcIjIuMFwiLFxuICAgICAgICAgICAgZXJyb3I6IHtcbiAgICAgICAgICAgICAgY29kZTogLTMyNjAwLFxuICAgICAgICAgICAgICBtZXNzYWdlOiBcIkludmFsaWQgUmVxdWVzdDogU2VydmVyIGFscmVhZHkgaW5pdGlhbGl6ZWRcIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGlkOiBudWxsXG4gICAgICAgICAgfSkpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAobWVzc2FnZXMubGVuZ3RoID4gMSkge1xuICAgICAgICAgIHJlcy53cml0ZUhlYWQoNDAwKS5lbmQoSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAganNvbnJwYzogXCIyLjBcIixcbiAgICAgICAgICAgIGVycm9yOiB7XG4gICAgICAgICAgICAgIGNvZGU6IC0zMjYwMCxcbiAgICAgICAgICAgICAgbWVzc2FnZTogXCJJbnZhbGlkIFJlcXVlc3Q6IE9ubHkgb25lIGluaXRpYWxpemF0aW9uIHJlcXVlc3QgaXMgYWxsb3dlZFwiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgaWQ6IG51bGxcbiAgICAgICAgICB9KSk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc2Vzc2lvbklkID0gKF9iID0gdGhpcy5zZXNzaW9uSWRHZW5lcmF0b3IpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5jYWxsKHRoaXMpO1xuICAgICAgICB0aGlzLl9pbml0aWFsaXplZCA9IHRydWU7XG4gICAgICAgIGlmICh0aGlzLnNlc3Npb25JZCAmJiB0aGlzLl9vbnNlc3Npb25pbml0aWFsaXplZCkge1xuICAgICAgICAgIGF3YWl0IFByb21pc2UucmVzb2x2ZSh0aGlzLl9vbnNlc3Npb25pbml0aWFsaXplZCh0aGlzLnNlc3Npb25JZCkpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoIWlzSW5pdGlhbGl6YXRpb25SZXF1ZXN0KSB7XG4gICAgICAgIGlmICghdGhpcy52YWxpZGF0ZVNlc3Npb24ocmVxLCByZXMpKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmICghdGhpcy52YWxpZGF0ZVByb3RvY29sVmVyc2lvbihyZXEsIHJlcykpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGNvbnN0IGhhc1JlcXVlc3RzID0gbWVzc2FnZXMuc29tZShpc0pTT05SUENSZXF1ZXN0KTtcbiAgICAgIGlmICghaGFzUmVxdWVzdHMpIHtcbiAgICAgICAgcmVzLndyaXRlSGVhZCgyMDIpLmVuZCgpO1xuICAgICAgICBmb3IgKGNvbnN0IG1lc3NhZ2Ugb2YgbWVzc2FnZXMpIHtcbiAgICAgICAgICAoX2MgPSB0aGlzLm9ubWVzc2FnZSkgPT09IG51bGwgfHwgX2MgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9jLmNhbGwodGhpcywgbWVzc2FnZSwgeyBhdXRoSW5mbywgcmVxdWVzdEluZm8gfSk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAoaGFzUmVxdWVzdHMpIHtcbiAgICAgICAgY29uc3Qgc3RyZWFtSWQgPSAoMCwgaW1wb3J0X25vZGVfY3J5cHRvLnJhbmRvbVVVSUQpKCk7XG4gICAgICAgIGlmICghdGhpcy5fZW5hYmxlSnNvblJlc3BvbnNlKSB7XG4gICAgICAgICAgY29uc3QgaGVhZGVycyA9IHtcbiAgICAgICAgICAgIFwiQ29udGVudC1UeXBlXCI6IFwidGV4dC9ldmVudC1zdHJlYW1cIixcbiAgICAgICAgICAgIFwiQ2FjaGUtQ29udHJvbFwiOiBcIm5vLWNhY2hlXCIsXG4gICAgICAgICAgICBDb25uZWN0aW9uOiBcImtlZXAtYWxpdmVcIlxuICAgICAgICAgIH07XG4gICAgICAgICAgaWYgKHRoaXMuc2Vzc2lvbklkICE9PSB2b2lkIDApIHtcbiAgICAgICAgICAgIGhlYWRlcnNbXCJtY3Atc2Vzc2lvbi1pZFwiXSA9IHRoaXMuc2Vzc2lvbklkO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXMud3JpdGVIZWFkKDIwMCwgaGVhZGVycyk7XG4gICAgICAgIH1cbiAgICAgICAgZm9yIChjb25zdCBtZXNzYWdlIG9mIG1lc3NhZ2VzKSB7XG4gICAgICAgICAgaWYgKGlzSlNPTlJQQ1JlcXVlc3QobWVzc2FnZSkpIHtcbiAgICAgICAgICAgIHRoaXMuX3N0cmVhbU1hcHBpbmcuc2V0KHN0cmVhbUlkLCByZXMpO1xuICAgICAgICAgICAgdGhpcy5fcmVxdWVzdFRvU3RyZWFtTWFwcGluZy5zZXQobWVzc2FnZS5pZCwgc3RyZWFtSWQpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXMub24oXCJjbG9zZVwiLCAoKSA9PiB7XG4gICAgICAgICAgdGhpcy5fc3RyZWFtTWFwcGluZy5kZWxldGUoc3RyZWFtSWQpO1xuICAgICAgICB9KTtcbiAgICAgICAgZm9yIChjb25zdCBtZXNzYWdlIG9mIG1lc3NhZ2VzKSB7XG4gICAgICAgICAgKF9kID0gdGhpcy5vbm1lc3NhZ2UpID09PSBudWxsIHx8IF9kID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfZC5jYWxsKHRoaXMsIG1lc3NhZ2UsIHsgYXV0aEluZm8sIHJlcXVlc3RJbmZvIH0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHJlcy53cml0ZUhlYWQoNDAwKS5lbmQoSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICBqc29ucnBjOiBcIjIuMFwiLFxuICAgICAgICBlcnJvcjoge1xuICAgICAgICAgIGNvZGU6IC0zMjcwMCxcbiAgICAgICAgICBtZXNzYWdlOiBcIlBhcnNlIGVycm9yXCIsXG4gICAgICAgICAgZGF0YTogU3RyaW5nKGVycm9yKVxuICAgICAgICB9LFxuICAgICAgICBpZDogbnVsbFxuICAgICAgfSkpO1xuICAgICAgKF9lID0gdGhpcy5vbmVycm9yKSA9PT0gbnVsbCB8fCBfZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2UuY2FsbCh0aGlzLCBlcnJvcik7XG4gICAgfVxuICB9XG4gIC8qKlxuICAgKiBIYW5kbGVzIERFTEVURSByZXF1ZXN0cyB0byB0ZXJtaW5hdGUgc2Vzc2lvbnNcbiAgICovXG4gIGFzeW5jIGhhbmRsZURlbGV0ZVJlcXVlc3QocmVxLCByZXMpIHtcbiAgICB2YXIgX2E7XG4gICAgaWYgKCF0aGlzLnZhbGlkYXRlU2Vzc2lvbihyZXEsIHJlcykpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKCF0aGlzLnZhbGlkYXRlUHJvdG9jb2xWZXJzaW9uKHJlcSwgcmVzKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBhd2FpdCBQcm9taXNlLnJlc29sdmUoKF9hID0gdGhpcy5fb25zZXNzaW9uY2xvc2VkKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuY2FsbCh0aGlzLCB0aGlzLnNlc3Npb25JZCkpO1xuICAgIGF3YWl0IHRoaXMuY2xvc2UoKTtcbiAgICByZXMud3JpdGVIZWFkKDIwMCkuZW5kKCk7XG4gIH1cbiAgLyoqXG4gICAqIFZhbGlkYXRlcyBzZXNzaW9uIElEIGZvciBub24taW5pdGlhbGl6YXRpb24gcmVxdWVzdHNcbiAgICogUmV0dXJucyB0cnVlIGlmIHRoZSBzZXNzaW9uIGlzIHZhbGlkLCBmYWxzZSBvdGhlcndpc2VcbiAgICovXG4gIHZhbGlkYXRlU2Vzc2lvbihyZXEsIHJlcykge1xuICAgIGlmICh0aGlzLnNlc3Npb25JZEdlbmVyYXRvciA9PT0gdm9pZCAwKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgaWYgKCF0aGlzLl9pbml0aWFsaXplZCkge1xuICAgICAgcmVzLndyaXRlSGVhZCg0MDApLmVuZChKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgIGpzb25ycGM6IFwiMi4wXCIsXG4gICAgICAgIGVycm9yOiB7XG4gICAgICAgICAgY29kZTogLTMyZTMsXG4gICAgICAgICAgbWVzc2FnZTogXCJCYWQgUmVxdWVzdDogU2VydmVyIG5vdCBpbml0aWFsaXplZFwiXG4gICAgICAgIH0sXG4gICAgICAgIGlkOiBudWxsXG4gICAgICB9KSk7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGNvbnN0IHNlc3Npb25JZCA9IHJlcS5oZWFkZXJzW1wibWNwLXNlc3Npb24taWRcIl07XG4gICAgaWYgKCFzZXNzaW9uSWQpIHtcbiAgICAgIHJlcy53cml0ZUhlYWQoNDAwKS5lbmQoSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICBqc29ucnBjOiBcIjIuMFwiLFxuICAgICAgICBlcnJvcjoge1xuICAgICAgICAgIGNvZGU6IC0zMmUzLFxuICAgICAgICAgIG1lc3NhZ2U6IFwiQmFkIFJlcXVlc3Q6IE1jcC1TZXNzaW9uLUlkIGhlYWRlciBpcyByZXF1aXJlZFwiXG4gICAgICAgIH0sXG4gICAgICAgIGlkOiBudWxsXG4gICAgICB9KSk7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KHNlc3Npb25JZCkpIHtcbiAgICAgIHJlcy53cml0ZUhlYWQoNDAwKS5lbmQoSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICBqc29ucnBjOiBcIjIuMFwiLFxuICAgICAgICBlcnJvcjoge1xuICAgICAgICAgIGNvZGU6IC0zMmUzLFxuICAgICAgICAgIG1lc3NhZ2U6IFwiQmFkIFJlcXVlc3Q6IE1jcC1TZXNzaW9uLUlkIGhlYWRlciBtdXN0IGJlIGEgc2luZ2xlIHZhbHVlXCJcbiAgICAgICAgfSxcbiAgICAgICAgaWQ6IG51bGxcbiAgICAgIH0pKTtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9IGVsc2UgaWYgKHNlc3Npb25JZCAhPT0gdGhpcy5zZXNzaW9uSWQpIHtcbiAgICAgIHJlcy53cml0ZUhlYWQoNDA0KS5lbmQoSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICBqc29ucnBjOiBcIjIuMFwiLFxuICAgICAgICBlcnJvcjoge1xuICAgICAgICAgIGNvZGU6IC0zMjAwMSxcbiAgICAgICAgICBtZXNzYWdlOiBcIlNlc3Npb24gbm90IGZvdW5kXCJcbiAgICAgICAgfSxcbiAgICAgICAgaWQ6IG51bGxcbiAgICAgIH0pKTtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbiAgdmFsaWRhdGVQcm90b2NvbFZlcnNpb24ocmVxLCByZXMpIHtcbiAgICB2YXIgX2E7XG4gICAgbGV0IHByb3RvY29sVmVyc2lvbiA9IChfYSA9IHJlcS5oZWFkZXJzW1wibWNwLXByb3RvY29sLXZlcnNpb25cIl0pICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IERFRkFVTFRfTkVHT1RJQVRFRF9QUk9UT0NPTF9WRVJTSU9OO1xuICAgIGlmIChBcnJheS5pc0FycmF5KHByb3RvY29sVmVyc2lvbikpIHtcbiAgICAgIHByb3RvY29sVmVyc2lvbiA9IHByb3RvY29sVmVyc2lvbltwcm90b2NvbFZlcnNpb24ubGVuZ3RoIC0gMV07XG4gICAgfVxuICAgIGlmICghU1VQUE9SVEVEX1BST1RPQ09MX1ZFUlNJT05TLmluY2x1ZGVzKHByb3RvY29sVmVyc2lvbikpIHtcbiAgICAgIHJlcy53cml0ZUhlYWQoNDAwKS5lbmQoSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICBqc29ucnBjOiBcIjIuMFwiLFxuICAgICAgICBlcnJvcjoge1xuICAgICAgICAgIGNvZGU6IC0zMmUzLFxuICAgICAgICAgIG1lc3NhZ2U6IGBCYWQgUmVxdWVzdDogVW5zdXBwb3J0ZWQgcHJvdG9jb2wgdmVyc2lvbiAoc3VwcG9ydGVkIHZlcnNpb25zOiAke1NVUFBPUlRFRF9QUk9UT0NPTF9WRVJTSU9OUy5qb2luKFwiLCBcIil9KWBcbiAgICAgICAgfSxcbiAgICAgICAgaWQ6IG51bGxcbiAgICAgIH0pKTtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbiAgYXN5bmMgY2xvc2UoKSB7XG4gICAgdmFyIF9hO1xuICAgIHRoaXMuX3N0cmVhbU1hcHBpbmcuZm9yRWFjaCgocmVzcG9uc2UpID0+IHtcbiAgICAgIHJlc3BvbnNlLmVuZCgpO1xuICAgIH0pO1xuICAgIHRoaXMuX3N0cmVhbU1hcHBpbmcuY2xlYXIoKTtcbiAgICB0aGlzLl9yZXF1ZXN0UmVzcG9uc2VNYXAuY2xlYXIoKTtcbiAgICAoX2EgPSB0aGlzLm9uY2xvc2UpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5jYWxsKHRoaXMpO1xuICB9XG4gIGFzeW5jIHNlbmQobWVzc2FnZSwgb3B0aW9ucykge1xuICAgIGxldCByZXF1ZXN0SWQgPSBvcHRpb25zID09PSBudWxsIHx8IG9wdGlvbnMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9wdGlvbnMucmVsYXRlZFJlcXVlc3RJZDtcbiAgICBpZiAoaXNKU09OUlBDUmVzcG9uc2UobWVzc2FnZSkgfHwgaXNKU09OUlBDRXJyb3IobWVzc2FnZSkpIHtcbiAgICAgIHJlcXVlc3RJZCA9IG1lc3NhZ2UuaWQ7XG4gICAgfVxuICAgIGlmIChyZXF1ZXN0SWQgPT09IHZvaWQgMCkge1xuICAgICAgaWYgKGlzSlNPTlJQQ1Jlc3BvbnNlKG1lc3NhZ2UpIHx8IGlzSlNPTlJQQ0Vycm9yKG1lc3NhZ2UpKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIkNhbm5vdCBzZW5kIGEgcmVzcG9uc2Ugb24gYSBzdGFuZGFsb25lIFNTRSBzdHJlYW0gdW5sZXNzIHJlc3VtaW5nIGEgcHJldmlvdXMgY2xpZW50IHJlcXVlc3RcIik7XG4gICAgICB9XG4gICAgICBjb25zdCBzdGFuZGFsb25lU3NlID0gdGhpcy5fc3RyZWFtTWFwcGluZy5nZXQodGhpcy5fc3RhbmRhbG9uZVNzZVN0cmVhbUlkKTtcbiAgICAgIGlmIChzdGFuZGFsb25lU3NlID09PSB2b2lkIDApIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgbGV0IGV2ZW50SWQ7XG4gICAgICBpZiAodGhpcy5fZXZlbnRTdG9yZSkge1xuICAgICAgICBldmVudElkID0gYXdhaXQgdGhpcy5fZXZlbnRTdG9yZS5zdG9yZUV2ZW50KHRoaXMuX3N0YW5kYWxvbmVTc2VTdHJlYW1JZCwgbWVzc2FnZSk7XG4gICAgICB9XG4gICAgICB0aGlzLndyaXRlU1NFRXZlbnQoc3RhbmRhbG9uZVNzZSwgbWVzc2FnZSwgZXZlbnRJZCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IHN0cmVhbUlkID0gdGhpcy5fcmVxdWVzdFRvU3RyZWFtTWFwcGluZy5nZXQocmVxdWVzdElkKTtcbiAgICBjb25zdCByZXNwb25zZSA9IHRoaXMuX3N0cmVhbU1hcHBpbmcuZ2V0KHN0cmVhbUlkKTtcbiAgICBpZiAoIXN0cmVhbUlkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYE5vIGNvbm5lY3Rpb24gZXN0YWJsaXNoZWQgZm9yIHJlcXVlc3QgSUQ6ICR7U3RyaW5nKHJlcXVlc3RJZCl9YCk7XG4gICAgfVxuICAgIGlmICghdGhpcy5fZW5hYmxlSnNvblJlc3BvbnNlKSB7XG4gICAgICBsZXQgZXZlbnRJZDtcbiAgICAgIGlmICh0aGlzLl9ldmVudFN0b3JlKSB7XG4gICAgICAgIGV2ZW50SWQgPSBhd2FpdCB0aGlzLl9ldmVudFN0b3JlLnN0b3JlRXZlbnQoc3RyZWFtSWQsIG1lc3NhZ2UpO1xuICAgICAgfVxuICAgICAgaWYgKHJlc3BvbnNlKSB7XG4gICAgICAgIHRoaXMud3JpdGVTU0VFdmVudChyZXNwb25zZSwgbWVzc2FnZSwgZXZlbnRJZCk7XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChpc0pTT05SUENSZXNwb25zZShtZXNzYWdlKSB8fCBpc0pTT05SUENFcnJvcihtZXNzYWdlKSkge1xuICAgICAgdGhpcy5fcmVxdWVzdFJlc3BvbnNlTWFwLnNldChyZXF1ZXN0SWQsIG1lc3NhZ2UpO1xuICAgICAgY29uc3QgcmVsYXRlZElkcyA9IEFycmF5LmZyb20odGhpcy5fcmVxdWVzdFRvU3RyZWFtTWFwcGluZy5lbnRyaWVzKCkpLmZpbHRlcigoW18yLCBzdHJlYW1JZDJdKSA9PiB0aGlzLl9zdHJlYW1NYXBwaW5nLmdldChzdHJlYW1JZDIpID09PSByZXNwb25zZSkubWFwKChbaWRdKSA9PiBpZCk7XG4gICAgICBjb25zdCBhbGxSZXNwb25zZXNSZWFkeSA9IHJlbGF0ZWRJZHMuZXZlcnkoKGlkKSA9PiB0aGlzLl9yZXF1ZXN0UmVzcG9uc2VNYXAuaGFzKGlkKSk7XG4gICAgICBpZiAoYWxsUmVzcG9uc2VzUmVhZHkpIHtcbiAgICAgICAgaWYgKCFyZXNwb25zZSkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgTm8gY29ubmVjdGlvbiBlc3RhYmxpc2hlZCBmb3IgcmVxdWVzdCBJRDogJHtTdHJpbmcocmVxdWVzdElkKX1gKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5fZW5hYmxlSnNvblJlc3BvbnNlKSB7XG4gICAgICAgICAgY29uc3QgaGVhZGVycyA9IHtcbiAgICAgICAgICAgIFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiXG4gICAgICAgICAgfTtcbiAgICAgICAgICBpZiAodGhpcy5zZXNzaW9uSWQgIT09IHZvaWQgMCkge1xuICAgICAgICAgICAgaGVhZGVyc1tcIm1jcC1zZXNzaW9uLWlkXCJdID0gdGhpcy5zZXNzaW9uSWQ7XG4gICAgICAgICAgfVxuICAgICAgICAgIGNvbnN0IHJlc3BvbnNlcyA9IHJlbGF0ZWRJZHMubWFwKChpZCkgPT4gdGhpcy5fcmVxdWVzdFJlc3BvbnNlTWFwLmdldChpZCkpO1xuICAgICAgICAgIHJlc3BvbnNlLndyaXRlSGVhZCgyMDAsIGhlYWRlcnMpO1xuICAgICAgICAgIGlmIChyZXNwb25zZXMubGVuZ3RoID09PSAxKSB7XG4gICAgICAgICAgICByZXNwb25zZS5lbmQoSlNPTi5zdHJpbmdpZnkocmVzcG9uc2VzWzBdKSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJlc3BvbnNlLmVuZChKU09OLnN0cmluZ2lmeShyZXNwb25zZXMpKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmVzcG9uc2UuZW5kKCk7XG4gICAgICAgIH1cbiAgICAgICAgZm9yIChjb25zdCBpZCBvZiByZWxhdGVkSWRzKSB7XG4gICAgICAgICAgdGhpcy5fcmVxdWVzdFJlc3BvbnNlTWFwLmRlbGV0ZShpZCk7XG4gICAgICAgICAgdGhpcy5fcmVxdWVzdFRvU3RyZWFtTWFwcGluZy5kZWxldGUoaWQpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59O1xuXG4vLyBub2RlX21vZHVsZXMvQHNtaXRoZXJ5L3Nkay9kaXN0L3NlcnZlci9zdGF0ZWZ1bC5qc1xudmFyIGltcG9ydF9leHByZXNzID0gX190b0VTTShyZXF1aXJlX2V4cHJlc3MyKCksIDEpO1xudmFyIGltcG9ydF9ub2RlX2NyeXB0bzIgPSByZXF1aXJlKFwibm9kZTpjcnlwdG9cIik7XG5cbi8vIG5vZGVfbW9kdWxlcy9Ac21pdGhlcnkvc2RrL2Rpc3Qvc2hhcmVkL2NvbmZpZy5qc1xudmFyIGltcG9ydF9sb2Rhc2ggPSBfX3RvRVNNKHJlcXVpcmVfbG9kYXNoKCksIDEpO1xuXG4vLyBub2RlX21vZHVsZXMvb2theS1lcnJvci9kaXN0L2luZGV4LmpzXG5mdW5jdGlvbiBvayh2YWx1ZSkge1xuICByZXR1cm4geyBvazogdHJ1ZSwgdmFsdWUgfTtcbn1cbmZ1bmN0aW9uIGVycih0eXBlT3JQYXlsb2FkLCBwYXlsb2FkKSB7XG4gIGlmIChwYXlsb2FkICE9PSB2b2lkIDApIHtcbiAgICByZXR1cm4geyBvazogZmFsc2UsIGVycm9yOiB7IHR5cGU6IHR5cGVPclBheWxvYWQsIC4uLnBheWxvYWQgfSB9O1xuICB9XG4gIHJldHVybiB7IG9rOiBmYWxzZSwgZXJyb3I6IHR5cGVPclBheWxvYWQgfTtcbn1cblxuLy8gbm9kZV9tb2R1bGVzL3pvZC10by1qc29uLXNjaGVtYS9kaXN0L2VzbS9PcHRpb25zLmpzXG52YXIgaWdub3JlT3ZlcnJpZGUgPSBTeW1ib2woXCJMZXQgem9kVG9Kc29uU2NoZW1hIGRlY2lkZSBvbiB3aGljaCBwYXJzZXIgdG8gdXNlXCIpO1xudmFyIGRlZmF1bHRPcHRpb25zID0ge1xuICBuYW1lOiB2b2lkIDAsXG4gICRyZWZTdHJhdGVneTogXCJyb290XCIsXG4gIGJhc2VQYXRoOiBbXCIjXCJdLFxuICBlZmZlY3RTdHJhdGVneTogXCJpbnB1dFwiLFxuICBwaXBlU3RyYXRlZ3k6IFwiYWxsXCIsXG4gIGRhdGVTdHJhdGVneTogXCJmb3JtYXQ6ZGF0ZS10aW1lXCIsXG4gIG1hcFN0cmF0ZWd5OiBcImVudHJpZXNcIixcbiAgcmVtb3ZlQWRkaXRpb25hbFN0cmF0ZWd5OiBcInBhc3N0aHJvdWdoXCIsXG4gIGRlZmluaXRpb25QYXRoOiBcImRlZmluaXRpb25zXCIsXG4gIHRhcmdldDogXCJqc29uU2NoZW1hN1wiLFxuICBzdHJpY3RVbmlvbnM6IGZhbHNlLFxuICBkZWZpbml0aW9uczoge30sXG4gIGVycm9yTWVzc2FnZXM6IGZhbHNlLFxuICBtYXJrZG93bkRlc2NyaXB0aW9uOiBmYWxzZSxcbiAgcGF0dGVyblN0cmF0ZWd5OiBcImVzY2FwZVwiLFxuICBhcHBseVJlZ2V4RmxhZ3M6IGZhbHNlLFxuICBlbWFpbFN0cmF0ZWd5OiBcImZvcm1hdDplbWFpbFwiLFxuICBiYXNlNjRTdHJhdGVneTogXCJjb250ZW50RW5jb2Rpbmc6YmFzZTY0XCIsXG4gIG5hbWVTdHJhdGVneTogXCJyZWZcIlxufTtcbnZhciBnZXREZWZhdWx0T3B0aW9ucyA9IChvcHRpb25zKSA9PiB0eXBlb2Ygb3B0aW9ucyA9PT0gXCJzdHJpbmdcIiA/IHtcbiAgLi4uZGVmYXVsdE9wdGlvbnMsXG4gIG5hbWU6IG9wdGlvbnNcbn0gOiB7XG4gIC4uLmRlZmF1bHRPcHRpb25zLFxuICAuLi5vcHRpb25zXG59O1xuXG4vLyBub2RlX21vZHVsZXMvem9kLXRvLWpzb24tc2NoZW1hL2Rpc3QvZXNtL1JlZnMuanNcbnZhciBnZXRSZWZzID0gKG9wdGlvbnMpID0+IHtcbiAgY29uc3QgX29wdGlvbnMgPSBnZXREZWZhdWx0T3B0aW9ucyhvcHRpb25zKTtcbiAgY29uc3QgY3VycmVudFBhdGggPSBfb3B0aW9ucy5uYW1lICE9PSB2b2lkIDAgPyBbLi4uX29wdGlvbnMuYmFzZVBhdGgsIF9vcHRpb25zLmRlZmluaXRpb25QYXRoLCBfb3B0aW9ucy5uYW1lXSA6IF9vcHRpb25zLmJhc2VQYXRoO1xuICByZXR1cm4ge1xuICAgIC4uLl9vcHRpb25zLFxuICAgIGN1cnJlbnRQYXRoLFxuICAgIHByb3BlcnR5UGF0aDogdm9pZCAwLFxuICAgIHNlZW46IG5ldyBNYXAoT2JqZWN0LmVudHJpZXMoX29wdGlvbnMuZGVmaW5pdGlvbnMpLm1hcCgoW25hbWUsIGRlZl0pID0+IFtcbiAgICAgIGRlZi5fZGVmLFxuICAgICAge1xuICAgICAgICBkZWY6IGRlZi5fZGVmLFxuICAgICAgICBwYXRoOiBbLi4uX29wdGlvbnMuYmFzZVBhdGgsIF9vcHRpb25zLmRlZmluaXRpb25QYXRoLCBuYW1lXSxcbiAgICAgICAgLy8gUmVzb2x1dGlvbiBvZiByZWZlcmVuY2VzIHdpbGwgYmUgZm9yY2VkIGV2ZW4gdGhvdWdoIHNlZW4sIHNvIGl0J3Mgb2sgdGhhdCB0aGUgc2NoZW1hIGlzIHVuZGVmaW5lZCBoZXJlIGZvciBub3cuXG4gICAgICAgIGpzb25TY2hlbWE6IHZvaWQgMFxuICAgICAgfVxuICAgIF0pKVxuICB9O1xufTtcblxuLy8gbm9kZV9tb2R1bGVzL3pvZC10by1qc29uLXNjaGVtYS9kaXN0L2VzbS9lcnJvck1lc3NhZ2VzLmpzXG5mdW5jdGlvbiBhZGRFcnJvck1lc3NhZ2UocmVzLCBrZXksIGVycm9yTWVzc2FnZSwgcmVmcykge1xuICBpZiAoIXJlZnM/LmVycm9yTWVzc2FnZXMpXG4gICAgcmV0dXJuO1xuICBpZiAoZXJyb3JNZXNzYWdlKSB7XG4gICAgcmVzLmVycm9yTWVzc2FnZSA9IHtcbiAgICAgIC4uLnJlcy5lcnJvck1lc3NhZ2UsXG4gICAgICBba2V5XTogZXJyb3JNZXNzYWdlXG4gICAgfTtcbiAgfVxufVxuZnVuY3Rpb24gc2V0UmVzcG9uc2VWYWx1ZUFuZEVycm9ycyhyZXMsIGtleSwgdmFsdWUsIGVycm9yTWVzc2FnZSwgcmVmcykge1xuICByZXNba2V5XSA9IHZhbHVlO1xuICBhZGRFcnJvck1lc3NhZ2UocmVzLCBrZXksIGVycm9yTWVzc2FnZSwgcmVmcyk7XG59XG5cbi8vIG5vZGVfbW9kdWxlcy96b2QtdG8tanNvbi1zY2hlbWEvZGlzdC9lc20vcGFyc2Vycy9hbnkuanNcbmZ1bmN0aW9uIHBhcnNlQW55RGVmKCkge1xuICByZXR1cm4ge307XG59XG5cbi8vIG5vZGVfbW9kdWxlcy96b2QtdG8tanNvbi1zY2hlbWEvZGlzdC9lc20vcGFyc2Vycy9hcnJheS5qc1xuZnVuY3Rpb24gcGFyc2VBcnJheURlZihkZWYsIHJlZnMpIHtcbiAgY29uc3QgcmVzID0ge1xuICAgIHR5cGU6IFwiYXJyYXlcIlxuICB9O1xuICBpZiAoZGVmLnR5cGU/Ll9kZWYgJiYgZGVmLnR5cGU/Ll9kZWY/LnR5cGVOYW1lICE9PSBab2RGaXJzdFBhcnR5VHlwZUtpbmQuWm9kQW55KSB7XG4gICAgcmVzLml0ZW1zID0gcGFyc2VEZWYoZGVmLnR5cGUuX2RlZiwge1xuICAgICAgLi4ucmVmcyxcbiAgICAgIGN1cnJlbnRQYXRoOiBbLi4ucmVmcy5jdXJyZW50UGF0aCwgXCJpdGVtc1wiXVxuICAgIH0pO1xuICB9XG4gIGlmIChkZWYubWluTGVuZ3RoKSB7XG4gICAgc2V0UmVzcG9uc2VWYWx1ZUFuZEVycm9ycyhyZXMsIFwibWluSXRlbXNcIiwgZGVmLm1pbkxlbmd0aC52YWx1ZSwgZGVmLm1pbkxlbmd0aC5tZXNzYWdlLCByZWZzKTtcbiAgfVxuICBpZiAoZGVmLm1heExlbmd0aCkge1xuICAgIHNldFJlc3BvbnNlVmFsdWVBbmRFcnJvcnMocmVzLCBcIm1heEl0ZW1zXCIsIGRlZi5tYXhMZW5ndGgudmFsdWUsIGRlZi5tYXhMZW5ndGgubWVzc2FnZSwgcmVmcyk7XG4gIH1cbiAgaWYgKGRlZi5leGFjdExlbmd0aCkge1xuICAgIHNldFJlc3BvbnNlVmFsdWVBbmRFcnJvcnMocmVzLCBcIm1pbkl0ZW1zXCIsIGRlZi5leGFjdExlbmd0aC52YWx1ZSwgZGVmLmV4YWN0TGVuZ3RoLm1lc3NhZ2UsIHJlZnMpO1xuICAgIHNldFJlc3BvbnNlVmFsdWVBbmRFcnJvcnMocmVzLCBcIm1heEl0ZW1zXCIsIGRlZi5leGFjdExlbmd0aC52YWx1ZSwgZGVmLmV4YWN0TGVuZ3RoLm1lc3NhZ2UsIHJlZnMpO1xuICB9XG4gIHJldHVybiByZXM7XG59XG5cbi8vIG5vZGVfbW9kdWxlcy96b2QtdG8tanNvbi1zY2hlbWEvZGlzdC9lc20vcGFyc2Vycy9iaWdpbnQuanNcbmZ1bmN0aW9uIHBhcnNlQmlnaW50RGVmKGRlZiwgcmVmcykge1xuICBjb25zdCByZXMgPSB7XG4gICAgdHlwZTogXCJpbnRlZ2VyXCIsXG4gICAgZm9ybWF0OiBcImludDY0XCJcbiAgfTtcbiAgaWYgKCFkZWYuY2hlY2tzKVxuICAgIHJldHVybiByZXM7XG4gIGZvciAoY29uc3QgY2hlY2sgb2YgZGVmLmNoZWNrcykge1xuICAgIHN3aXRjaCAoY2hlY2sua2luZCkge1xuICAgICAgY2FzZSBcIm1pblwiOlxuICAgICAgICBpZiAocmVmcy50YXJnZXQgPT09IFwianNvblNjaGVtYTdcIikge1xuICAgICAgICAgIGlmIChjaGVjay5pbmNsdXNpdmUpIHtcbiAgICAgICAgICAgIHNldFJlc3BvbnNlVmFsdWVBbmRFcnJvcnMocmVzLCBcIm1pbmltdW1cIiwgY2hlY2sudmFsdWUsIGNoZWNrLm1lc3NhZ2UsIHJlZnMpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBzZXRSZXNwb25zZVZhbHVlQW5kRXJyb3JzKHJlcywgXCJleGNsdXNpdmVNaW5pbXVtXCIsIGNoZWNrLnZhbHVlLCBjaGVjay5tZXNzYWdlLCByZWZzKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaWYgKCFjaGVjay5pbmNsdXNpdmUpIHtcbiAgICAgICAgICAgIHJlcy5leGNsdXNpdmVNaW5pbXVtID0gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgc2V0UmVzcG9uc2VWYWx1ZUFuZEVycm9ycyhyZXMsIFwibWluaW11bVwiLCBjaGVjay52YWx1ZSwgY2hlY2subWVzc2FnZSwgcmVmcyk7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFwibWF4XCI6XG4gICAgICAgIGlmIChyZWZzLnRhcmdldCA9PT0gXCJqc29uU2NoZW1hN1wiKSB7XG4gICAgICAgICAgaWYgKGNoZWNrLmluY2x1c2l2ZSkge1xuICAgICAgICAgICAgc2V0UmVzcG9uc2VWYWx1ZUFuZEVycm9ycyhyZXMsIFwibWF4aW11bVwiLCBjaGVjay52YWx1ZSwgY2hlY2subWVzc2FnZSwgcmVmcyk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHNldFJlc3BvbnNlVmFsdWVBbmRFcnJvcnMocmVzLCBcImV4Y2x1c2l2ZU1heGltdW1cIiwgY2hlY2sudmFsdWUsIGNoZWNrLm1lc3NhZ2UsIHJlZnMpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpZiAoIWNoZWNrLmluY2x1c2l2ZSkge1xuICAgICAgICAgICAgcmVzLmV4Y2x1c2l2ZU1heGltdW0gPSB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgICBzZXRSZXNwb25zZVZhbHVlQW5kRXJyb3JzKHJlcywgXCJtYXhpbXVtXCIsIGNoZWNrLnZhbHVlLCBjaGVjay5tZXNzYWdlLCByZWZzKTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgXCJtdWx0aXBsZU9mXCI6XG4gICAgICAgIHNldFJlc3BvbnNlVmFsdWVBbmRFcnJvcnMocmVzLCBcIm11bHRpcGxlT2ZcIiwgY2hlY2sudmFsdWUsIGNoZWNrLm1lc3NhZ2UsIHJlZnMpO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHJlcztcbn1cblxuLy8gbm9kZV9tb2R1bGVzL3pvZC10by1qc29uLXNjaGVtYS9kaXN0L2VzbS9wYXJzZXJzL2Jvb2xlYW4uanNcbmZ1bmN0aW9uIHBhcnNlQm9vbGVhbkRlZigpIHtcbiAgcmV0dXJuIHtcbiAgICB0eXBlOiBcImJvb2xlYW5cIlxuICB9O1xufVxuXG4vLyBub2RlX21vZHVsZXMvem9kLXRvLWpzb24tc2NoZW1hL2Rpc3QvZXNtL3BhcnNlcnMvYnJhbmRlZC5qc1xuZnVuY3Rpb24gcGFyc2VCcmFuZGVkRGVmKF9kZWYsIHJlZnMpIHtcbiAgcmV0dXJuIHBhcnNlRGVmKF9kZWYudHlwZS5fZGVmLCByZWZzKTtcbn1cblxuLy8gbm9kZV9tb2R1bGVzL3pvZC10by1qc29uLXNjaGVtYS9kaXN0L2VzbS9wYXJzZXJzL2NhdGNoLmpzXG52YXIgcGFyc2VDYXRjaERlZiA9IChkZWYsIHJlZnMpID0+IHtcbiAgcmV0dXJuIHBhcnNlRGVmKGRlZi5pbm5lclR5cGUuX2RlZiwgcmVmcyk7XG59O1xuXG4vLyBub2RlX21vZHVsZXMvem9kLXRvLWpzb24tc2NoZW1hL2Rpc3QvZXNtL3BhcnNlcnMvZGF0ZS5qc1xuZnVuY3Rpb24gcGFyc2VEYXRlRGVmKGRlZiwgcmVmcywgb3ZlcnJpZGVEYXRlU3RyYXRlZ3kpIHtcbiAgY29uc3Qgc3RyYXRlZ3kgPSBvdmVycmlkZURhdGVTdHJhdGVneSA/PyByZWZzLmRhdGVTdHJhdGVneTtcbiAgaWYgKEFycmF5LmlzQXJyYXkoc3RyYXRlZ3kpKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGFueU9mOiBzdHJhdGVneS5tYXAoKGl0ZW0sIGkpID0+IHBhcnNlRGF0ZURlZihkZWYsIHJlZnMsIGl0ZW0pKVxuICAgIH07XG4gIH1cbiAgc3dpdGNoIChzdHJhdGVneSkge1xuICAgIGNhc2UgXCJzdHJpbmdcIjpcbiAgICBjYXNlIFwiZm9ybWF0OmRhdGUtdGltZVwiOlxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgdHlwZTogXCJzdHJpbmdcIixcbiAgICAgICAgZm9ybWF0OiBcImRhdGUtdGltZVwiXG4gICAgICB9O1xuICAgIGNhc2UgXCJmb3JtYXQ6ZGF0ZVwiOlxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgdHlwZTogXCJzdHJpbmdcIixcbiAgICAgICAgZm9ybWF0OiBcImRhdGVcIlxuICAgICAgfTtcbiAgICBjYXNlIFwiaW50ZWdlclwiOlxuICAgICAgcmV0dXJuIGludGVnZXJEYXRlUGFyc2VyKGRlZiwgcmVmcyk7XG4gIH1cbn1cbnZhciBpbnRlZ2VyRGF0ZVBhcnNlciA9IChkZWYsIHJlZnMpID0+IHtcbiAgY29uc3QgcmVzID0ge1xuICAgIHR5cGU6IFwiaW50ZWdlclwiLFxuICAgIGZvcm1hdDogXCJ1bml4LXRpbWVcIlxuICB9O1xuICBpZiAocmVmcy50YXJnZXQgPT09IFwib3BlbkFwaTNcIikge1xuICAgIHJldHVybiByZXM7XG4gIH1cbiAgZm9yIChjb25zdCBjaGVjayBvZiBkZWYuY2hlY2tzKSB7XG4gICAgc3dpdGNoIChjaGVjay5raW5kKSB7XG4gICAgICBjYXNlIFwibWluXCI6XG4gICAgICAgIHNldFJlc3BvbnNlVmFsdWVBbmRFcnJvcnMoXG4gICAgICAgICAgcmVzLFxuICAgICAgICAgIFwibWluaW11bVwiLFxuICAgICAgICAgIGNoZWNrLnZhbHVlLFxuICAgICAgICAgIC8vIFRoaXMgaXMgaW4gbWlsbGlzZWNvbmRzXG4gICAgICAgICAgY2hlY2subWVzc2FnZSxcbiAgICAgICAgICByZWZzXG4gICAgICAgICk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBcIm1heFwiOlxuICAgICAgICBzZXRSZXNwb25zZVZhbHVlQW5kRXJyb3JzKFxuICAgICAgICAgIHJlcyxcbiAgICAgICAgICBcIm1heGltdW1cIixcbiAgICAgICAgICBjaGVjay52YWx1ZSxcbiAgICAgICAgICAvLyBUaGlzIGlzIGluIG1pbGxpc2Vjb25kc1xuICAgICAgICAgIGNoZWNrLm1lc3NhZ2UsXG4gICAgICAgICAgcmVmc1xuICAgICAgICApO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHJlcztcbn07XG5cbi8vIG5vZGVfbW9kdWxlcy96b2QtdG8tanNvbi1zY2hlbWEvZGlzdC9lc20vcGFyc2Vycy9kZWZhdWx0LmpzXG5mdW5jdGlvbiBwYXJzZURlZmF1bHREZWYoX2RlZiwgcmVmcykge1xuICByZXR1cm4ge1xuICAgIC4uLnBhcnNlRGVmKF9kZWYuaW5uZXJUeXBlLl9kZWYsIHJlZnMpLFxuICAgIGRlZmF1bHQ6IF9kZWYuZGVmYXVsdFZhbHVlKClcbiAgfTtcbn1cblxuLy8gbm9kZV9tb2R1bGVzL3pvZC10by1qc29uLXNjaGVtYS9kaXN0L2VzbS9wYXJzZXJzL2VmZmVjdHMuanNcbmZ1bmN0aW9uIHBhcnNlRWZmZWN0c0RlZihfZGVmLCByZWZzKSB7XG4gIHJldHVybiByZWZzLmVmZmVjdFN0cmF0ZWd5ID09PSBcImlucHV0XCIgPyBwYXJzZURlZihfZGVmLnNjaGVtYS5fZGVmLCByZWZzKSA6IHt9O1xufVxuXG4vLyBub2RlX21vZHVsZXMvem9kLXRvLWpzb24tc2NoZW1hL2Rpc3QvZXNtL3BhcnNlcnMvZW51bS5qc1xuZnVuY3Rpb24gcGFyc2VFbnVtRGVmKGRlZikge1xuICByZXR1cm4ge1xuICAgIHR5cGU6IFwic3RyaW5nXCIsXG4gICAgZW51bTogQXJyYXkuZnJvbShkZWYudmFsdWVzKVxuICB9O1xufVxuXG4vLyBub2RlX21vZHVsZXMvem9kLXRvLWpzb24tc2NoZW1hL2Rpc3QvZXNtL3BhcnNlcnMvaW50ZXJzZWN0aW9uLmpzXG52YXIgaXNKc29uU2NoZW1hN0FsbE9mVHlwZSA9ICh0eXBlKSA9PiB7XG4gIGlmIChcInR5cGVcIiBpbiB0eXBlICYmIHR5cGUudHlwZSA9PT0gXCJzdHJpbmdcIilcbiAgICByZXR1cm4gZmFsc2U7XG4gIHJldHVybiBcImFsbE9mXCIgaW4gdHlwZTtcbn07XG5mdW5jdGlvbiBwYXJzZUludGVyc2VjdGlvbkRlZihkZWYsIHJlZnMpIHtcbiAgY29uc3QgYWxsT2YgPSBbXG4gICAgcGFyc2VEZWYoZGVmLmxlZnQuX2RlZiwge1xuICAgICAgLi4ucmVmcyxcbiAgICAgIGN1cnJlbnRQYXRoOiBbLi4ucmVmcy5jdXJyZW50UGF0aCwgXCJhbGxPZlwiLCBcIjBcIl1cbiAgICB9KSxcbiAgICBwYXJzZURlZihkZWYucmlnaHQuX2RlZiwge1xuICAgICAgLi4ucmVmcyxcbiAgICAgIGN1cnJlbnRQYXRoOiBbLi4ucmVmcy5jdXJyZW50UGF0aCwgXCJhbGxPZlwiLCBcIjFcIl1cbiAgICB9KVxuICBdLmZpbHRlcigoeCkgPT4gISF4KTtcbiAgbGV0IHVuZXZhbHVhdGVkUHJvcGVydGllcyA9IHJlZnMudGFyZ2V0ID09PSBcImpzb25TY2hlbWEyMDE5LTA5XCIgPyB7IHVuZXZhbHVhdGVkUHJvcGVydGllczogZmFsc2UgfSA6IHZvaWQgMDtcbiAgY29uc3QgbWVyZ2VkQWxsT2YgPSBbXTtcbiAgYWxsT2YuZm9yRWFjaCgoc2NoZW1hKSA9PiB7XG4gICAgaWYgKGlzSnNvblNjaGVtYTdBbGxPZlR5cGUoc2NoZW1hKSkge1xuICAgICAgbWVyZ2VkQWxsT2YucHVzaCguLi5zY2hlbWEuYWxsT2YpO1xuICAgICAgaWYgKHNjaGVtYS51bmV2YWx1YXRlZFByb3BlcnRpZXMgPT09IHZvaWQgMCkge1xuICAgICAgICB1bmV2YWx1YXRlZFByb3BlcnRpZXMgPSB2b2lkIDA7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGxldCBuZXN0ZWRTY2hlbWEgPSBzY2hlbWE7XG4gICAgICBpZiAoXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiIGluIHNjaGVtYSAmJiBzY2hlbWEuYWRkaXRpb25hbFByb3BlcnRpZXMgPT09IGZhbHNlKSB7XG4gICAgICAgIGNvbnN0IHsgYWRkaXRpb25hbFByb3BlcnRpZXMsIC4uLnJlc3QgfSA9IHNjaGVtYTtcbiAgICAgICAgbmVzdGVkU2NoZW1hID0gcmVzdDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHVuZXZhbHVhdGVkUHJvcGVydGllcyA9IHZvaWQgMDtcbiAgICAgIH1cbiAgICAgIG1lcmdlZEFsbE9mLnB1c2gobmVzdGVkU2NoZW1hKTtcbiAgICB9XG4gIH0pO1xuICByZXR1cm4gbWVyZ2VkQWxsT2YubGVuZ3RoID8ge1xuICAgIGFsbE9mOiBtZXJnZWRBbGxPZixcbiAgICAuLi51bmV2YWx1YXRlZFByb3BlcnRpZXNcbiAgfSA6IHZvaWQgMDtcbn1cblxuLy8gbm9kZV9tb2R1bGVzL3pvZC10by1qc29uLXNjaGVtYS9kaXN0L2VzbS9wYXJzZXJzL2xpdGVyYWwuanNcbmZ1bmN0aW9uIHBhcnNlTGl0ZXJhbERlZihkZWYsIHJlZnMpIHtcbiAgY29uc3QgcGFyc2VkVHlwZSA9IHR5cGVvZiBkZWYudmFsdWU7XG4gIGlmIChwYXJzZWRUeXBlICE9PSBcImJpZ2ludFwiICYmIHBhcnNlZFR5cGUgIT09IFwibnVtYmVyXCIgJiYgcGFyc2VkVHlwZSAhPT0gXCJib29sZWFuXCIgJiYgcGFyc2VkVHlwZSAhPT0gXCJzdHJpbmdcIikge1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiBBcnJheS5pc0FycmF5KGRlZi52YWx1ZSkgPyBcImFycmF5XCIgOiBcIm9iamVjdFwiXG4gICAgfTtcbiAgfVxuICBpZiAocmVmcy50YXJnZXQgPT09IFwib3BlbkFwaTNcIikge1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiBwYXJzZWRUeXBlID09PSBcImJpZ2ludFwiID8gXCJpbnRlZ2VyXCIgOiBwYXJzZWRUeXBlLFxuICAgICAgZW51bTogW2RlZi52YWx1ZV1cbiAgICB9O1xuICB9XG4gIHJldHVybiB7XG4gICAgdHlwZTogcGFyc2VkVHlwZSA9PT0gXCJiaWdpbnRcIiA/IFwiaW50ZWdlclwiIDogcGFyc2VkVHlwZSxcbiAgICBjb25zdDogZGVmLnZhbHVlXG4gIH07XG59XG5cbi8vIG5vZGVfbW9kdWxlcy96b2QtdG8tanNvbi1zY2hlbWEvZGlzdC9lc20vcGFyc2Vycy9zdHJpbmcuanNcbnZhciBlbW9qaVJlZ2V4MiA9IHZvaWQgMDtcbnZhciB6b2RQYXR0ZXJucyA9IHtcbiAgLyoqXG4gICAqIGBjYCB3YXMgY2hhbmdlZCB0byBgW2NDXWAgdG8gcmVwbGljYXRlIC9pIGZsYWdcbiAgICovXG4gIGN1aWQ6IC9eW2NDXVteXFxzLV17OCx9JC8sXG4gIGN1aWQyOiAvXlswLTlhLXpdKyQvLFxuICB1bGlkOiAvXlswLTlBLUhKS01OUC1UVi1aXXsyNn0kLyxcbiAgLyoqXG4gICAqIGBhLXpgIHdhcyBhZGRlZCB0byByZXBsaWNhdGUgL2kgZmxhZ1xuICAgKi9cbiAgZW1haWw6IC9eKD8hXFwuKSg/IS4qXFwuXFwuKShbYS16QS1aMC05XycrXFwtXFwuXSopW2EtekEtWjAtOV8rLV1AKFthLXpBLVowLTldW2EtekEtWjAtOVxcLV0qXFwuKStbYS16QS1aXXsyLH0kLyxcbiAgLyoqXG4gICAqIENvbnN0cnVjdGVkIGEgdmFsaWQgVW5pY29kZSBSZWdFeHBcbiAgICpcbiAgICogTGF6aWx5IGluc3RhbnRpYXRlIHNpbmNlIHRoaXMgdHlwZSBvZiByZWdleCBpc24ndCBzdXBwb3J0ZWRcbiAgICogaW4gYWxsIGVudnMgKGUuZy4gUmVhY3QgTmF0aXZlKS5cbiAgICpcbiAgICogU2VlOlxuICAgKiBodHRwczovL2dpdGh1Yi5jb20vY29saW5oYWNrcy96b2QvaXNzdWVzLzI0MzNcbiAgICogRml4IGluIFpvZDpcbiAgICogaHR0cHM6Ly9naXRodWIuY29tL2NvbGluaGFja3Mvem9kL2NvbW1pdC85MzQwZmQ1MWU0ODU3NmE3NWFkYzkxOWJmZjY1ZGJjNGE1ZDRjOTliXG4gICAqL1xuICBlbW9qaTogKCkgPT4ge1xuICAgIGlmIChlbW9qaVJlZ2V4MiA9PT0gdm9pZCAwKSB7XG4gICAgICBlbW9qaVJlZ2V4MiA9IFJlZ0V4cChcIl4oXFxcXHB7RXh0ZW5kZWRfUGljdG9ncmFwaGljfXxcXFxccHtFbW9qaV9Db21wb25lbnR9KSskXCIsIFwidVwiKTtcbiAgICB9XG4gICAgcmV0dXJuIGVtb2ppUmVnZXgyO1xuICB9LFxuICAvKipcbiAgICogVW51c2VkXG4gICAqL1xuICB1dWlkOiAvXlswLTlhLWZBLUZdezh9XFxiLVswLTlhLWZBLUZdezR9XFxiLVswLTlhLWZBLUZdezR9XFxiLVswLTlhLWZBLUZdezR9XFxiLVswLTlhLWZBLUZdezEyfSQvLFxuICAvKipcbiAgICogVW51c2VkXG4gICAqL1xuICBpcHY0OiAvXig/Oig/OjI1WzAtNV18MlswLTRdWzAtOV18MVswLTldWzAtOV18WzEtOV1bMC05XXxbMC05XSlcXC4pezN9KD86MjVbMC01XXwyWzAtNF1bMC05XXwxWzAtOV1bMC05XXxbMS05XVswLTldfFswLTldKSQvLFxuICBpcHY0Q2lkcjogL14oPzooPzoyNVswLTVdfDJbMC00XVswLTldfDFbMC05XVswLTldfFsxLTldWzAtOV18WzAtOV0pXFwuKXszfSg/OjI1WzAtNV18MlswLTRdWzAtOV18MVswLTldWzAtOV18WzEtOV1bMC05XXxbMC05XSlcXC8oM1swLTJdfFsxMl0/WzAtOV0pJC8sXG4gIC8qKlxuICAgKiBVbnVzZWRcbiAgICovXG4gIGlwdjY6IC9eKChbYS1mMC05XXsxLDR9Oil7N318OjooW2EtZjAtOV17MSw0fTopezAsNn18KFthLWYwLTldezEsNH06KXsxfTooW2EtZjAtOV17MSw0fTopezAsNX18KFthLWYwLTldezEsNH06KXsyfTooW2EtZjAtOV17MSw0fTopezAsNH18KFthLWYwLTldezEsNH06KXszfTooW2EtZjAtOV17MSw0fTopezAsM318KFthLWYwLTldezEsNH06KXs0fTooW2EtZjAtOV17MSw0fTopezAsMn18KFthLWYwLTldezEsNH06KXs1fTooW2EtZjAtOV17MSw0fTopezAsMX0pKFthLWYwLTldezEsNH18KCgoMjVbMC01XSl8KDJbMC00XVswLTldKXwoMVswLTldezJ9KXwoWzAtOV17MSwyfSkpXFwuKXszfSgoMjVbMC01XSl8KDJbMC00XVswLTldKXwoMVswLTldezJ9KXwoWzAtOV17MSwyfSkpKSQvLFxuICBpcHY2Q2lkcjogL14oKFswLTlhLWZBLUZdezEsNH06KXs3LDd9WzAtOWEtZkEtRl17MSw0fXwoWzAtOWEtZkEtRl17MSw0fTopezEsN306fChbMC05YS1mQS1GXXsxLDR9Oil7MSw2fTpbMC05YS1mQS1GXXsxLDR9fChbMC05YS1mQS1GXXsxLDR9Oil7MSw1fSg6WzAtOWEtZkEtRl17MSw0fSl7MSwyfXwoWzAtOWEtZkEtRl17MSw0fTopezEsNH0oOlswLTlhLWZBLUZdezEsNH0pezEsM318KFswLTlhLWZBLUZdezEsNH06KXsxLDN9KDpbMC05YS1mQS1GXXsxLDR9KXsxLDR9fChbMC05YS1mQS1GXXsxLDR9Oil7MSwyfSg6WzAtOWEtZkEtRl17MSw0fSl7MSw1fXxbMC05YS1mQS1GXXsxLDR9OigoOlswLTlhLWZBLUZdezEsNH0pezEsNn0pfDooKDpbMC05YS1mQS1GXXsxLDR9KXsxLDd9fDopfGZlODA6KDpbMC05YS1mQS1GXXswLDR9KXswLDR9JVswLTlhLXpBLVpdezEsfXw6OihmZmZmKDowezEsNH0pezAsMX06KXswLDF9KCgyNVswLTVdfCgyWzAtNF18MXswLDF9WzAtOV0pezAsMX1bMC05XSlcXC4pezMsM30oMjVbMC01XXwoMlswLTRdfDF7MCwxfVswLTldKXswLDF9WzAtOV0pfChbMC05YS1mQS1GXXsxLDR9Oil7MSw0fTooKDI1WzAtNV18KDJbMC00XXwxezAsMX1bMC05XSl7MCwxfVswLTldKVxcLil7MywzfSgyNVswLTVdfCgyWzAtNF18MXswLDF9WzAtOV0pezAsMX1bMC05XSkpXFwvKDEyWzAtOF18MVswMV1bMC05XXxbMS05XT9bMC05XSkkLyxcbiAgYmFzZTY0OiAvXihbMC05YS16QS1aKy9dezR9KSooKFswLTlhLXpBLVorL117Mn09PSl8KFswLTlhLXpBLVorL117M309KSk/JC8sXG4gIGJhc2U2NHVybDogL14oWzAtOWEtekEtWi1fXXs0fSkqKChbMC05YS16QS1aLV9dezJ9KD09KT8pfChbMC05YS16QS1aLV9dezN9KD0pPykpPyQvLFxuICBuYW5vaWQ6IC9eW2EtekEtWjAtOV8tXXsyMX0kLyxcbiAgand0OiAvXltBLVphLXowLTktX10rXFwuW0EtWmEtejAtOS1fXStcXC5bQS1aYS16MC05LV9dKiQvXG59O1xuZnVuY3Rpb24gcGFyc2VTdHJpbmdEZWYoZGVmLCByZWZzKSB7XG4gIGNvbnN0IHJlcyA9IHtcbiAgICB0eXBlOiBcInN0cmluZ1wiXG4gIH07XG4gIGlmIChkZWYuY2hlY2tzKSB7XG4gICAgZm9yIChjb25zdCBjaGVjayBvZiBkZWYuY2hlY2tzKSB7XG4gICAgICBzd2l0Y2ggKGNoZWNrLmtpbmQpIHtcbiAgICAgICAgY2FzZSBcIm1pblwiOlxuICAgICAgICAgIHNldFJlc3BvbnNlVmFsdWVBbmRFcnJvcnMocmVzLCBcIm1pbkxlbmd0aFwiLCB0eXBlb2YgcmVzLm1pbkxlbmd0aCA9PT0gXCJudW1iZXJcIiA/IE1hdGgubWF4KHJlcy5taW5MZW5ndGgsIGNoZWNrLnZhbHVlKSA6IGNoZWNrLnZhbHVlLCBjaGVjay5tZXNzYWdlLCByZWZzKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBcIm1heFwiOlxuICAgICAgICAgIHNldFJlc3BvbnNlVmFsdWVBbmRFcnJvcnMocmVzLCBcIm1heExlbmd0aFwiLCB0eXBlb2YgcmVzLm1heExlbmd0aCA9PT0gXCJudW1iZXJcIiA/IE1hdGgubWluKHJlcy5tYXhMZW5ndGgsIGNoZWNrLnZhbHVlKSA6IGNoZWNrLnZhbHVlLCBjaGVjay5tZXNzYWdlLCByZWZzKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBcImVtYWlsXCI6XG4gICAgICAgICAgc3dpdGNoIChyZWZzLmVtYWlsU3RyYXRlZ3kpIHtcbiAgICAgICAgICAgIGNhc2UgXCJmb3JtYXQ6ZW1haWxcIjpcbiAgICAgICAgICAgICAgYWRkRm9ybWF0KHJlcywgXCJlbWFpbFwiLCBjaGVjay5tZXNzYWdlLCByZWZzKTtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIFwiZm9ybWF0Omlkbi1lbWFpbFwiOlxuICAgICAgICAgICAgICBhZGRGb3JtYXQocmVzLCBcImlkbi1lbWFpbFwiLCBjaGVjay5tZXNzYWdlLCByZWZzKTtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIFwicGF0dGVybjp6b2RcIjpcbiAgICAgICAgICAgICAgYWRkUGF0dGVybihyZXMsIHpvZFBhdHRlcm5zLmVtYWlsLCBjaGVjay5tZXNzYWdlLCByZWZzKTtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFwidXJsXCI6XG4gICAgICAgICAgYWRkRm9ybWF0KHJlcywgXCJ1cmlcIiwgY2hlY2subWVzc2FnZSwgcmVmcyk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgXCJ1dWlkXCI6XG4gICAgICAgICAgYWRkRm9ybWF0KHJlcywgXCJ1dWlkXCIsIGNoZWNrLm1lc3NhZ2UsIHJlZnMpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFwicmVnZXhcIjpcbiAgICAgICAgICBhZGRQYXR0ZXJuKHJlcywgY2hlY2sucmVnZXgsIGNoZWNrLm1lc3NhZ2UsIHJlZnMpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFwiY3VpZFwiOlxuICAgICAgICAgIGFkZFBhdHRlcm4ocmVzLCB6b2RQYXR0ZXJucy5jdWlkLCBjaGVjay5tZXNzYWdlLCByZWZzKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBcImN1aWQyXCI6XG4gICAgICAgICAgYWRkUGF0dGVybihyZXMsIHpvZFBhdHRlcm5zLmN1aWQyLCBjaGVjay5tZXNzYWdlLCByZWZzKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBcInN0YXJ0c1dpdGhcIjpcbiAgICAgICAgICBhZGRQYXR0ZXJuKHJlcywgUmVnRXhwKGBeJHtlc2NhcGVMaXRlcmFsQ2hlY2tWYWx1ZShjaGVjay52YWx1ZSwgcmVmcyl9YCksIGNoZWNrLm1lc3NhZ2UsIHJlZnMpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFwiZW5kc1dpdGhcIjpcbiAgICAgICAgICBhZGRQYXR0ZXJuKHJlcywgUmVnRXhwKGAke2VzY2FwZUxpdGVyYWxDaGVja1ZhbHVlKGNoZWNrLnZhbHVlLCByZWZzKX0kYCksIGNoZWNrLm1lc3NhZ2UsIHJlZnMpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFwiZGF0ZXRpbWVcIjpcbiAgICAgICAgICBhZGRGb3JtYXQocmVzLCBcImRhdGUtdGltZVwiLCBjaGVjay5tZXNzYWdlLCByZWZzKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBcImRhdGVcIjpcbiAgICAgICAgICBhZGRGb3JtYXQocmVzLCBcImRhdGVcIiwgY2hlY2subWVzc2FnZSwgcmVmcyk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgXCJ0aW1lXCI6XG4gICAgICAgICAgYWRkRm9ybWF0KHJlcywgXCJ0aW1lXCIsIGNoZWNrLm1lc3NhZ2UsIHJlZnMpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFwiZHVyYXRpb25cIjpcbiAgICAgICAgICBhZGRGb3JtYXQocmVzLCBcImR1cmF0aW9uXCIsIGNoZWNrLm1lc3NhZ2UsIHJlZnMpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFwibGVuZ3RoXCI6XG4gICAgICAgICAgc2V0UmVzcG9uc2VWYWx1ZUFuZEVycm9ycyhyZXMsIFwibWluTGVuZ3RoXCIsIHR5cGVvZiByZXMubWluTGVuZ3RoID09PSBcIm51bWJlclwiID8gTWF0aC5tYXgocmVzLm1pbkxlbmd0aCwgY2hlY2sudmFsdWUpIDogY2hlY2sudmFsdWUsIGNoZWNrLm1lc3NhZ2UsIHJlZnMpO1xuICAgICAgICAgIHNldFJlc3BvbnNlVmFsdWVBbmRFcnJvcnMocmVzLCBcIm1heExlbmd0aFwiLCB0eXBlb2YgcmVzLm1heExlbmd0aCA9PT0gXCJudW1iZXJcIiA/IE1hdGgubWluKHJlcy5tYXhMZW5ndGgsIGNoZWNrLnZhbHVlKSA6IGNoZWNrLnZhbHVlLCBjaGVjay5tZXNzYWdlLCByZWZzKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBcImluY2x1ZGVzXCI6IHtcbiAgICAgICAgICBhZGRQYXR0ZXJuKHJlcywgUmVnRXhwKGVzY2FwZUxpdGVyYWxDaGVja1ZhbHVlKGNoZWNrLnZhbHVlLCByZWZzKSksIGNoZWNrLm1lc3NhZ2UsIHJlZnMpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgXCJpcFwiOiB7XG4gICAgICAgICAgaWYgKGNoZWNrLnZlcnNpb24gIT09IFwidjZcIikge1xuICAgICAgICAgICAgYWRkRm9ybWF0KHJlcywgXCJpcHY0XCIsIGNoZWNrLm1lc3NhZ2UsIHJlZnMpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoY2hlY2sudmVyc2lvbiAhPT0gXCJ2NFwiKSB7XG4gICAgICAgICAgICBhZGRGb3JtYXQocmVzLCBcImlwdjZcIiwgY2hlY2subWVzc2FnZSwgcmVmcyk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgXCJiYXNlNjR1cmxcIjpcbiAgICAgICAgICBhZGRQYXR0ZXJuKHJlcywgem9kUGF0dGVybnMuYmFzZTY0dXJsLCBjaGVjay5tZXNzYWdlLCByZWZzKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBcImp3dFwiOlxuICAgICAgICAgIGFkZFBhdHRlcm4ocmVzLCB6b2RQYXR0ZXJucy5qd3QsIGNoZWNrLm1lc3NhZ2UsIHJlZnMpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFwiY2lkclwiOiB7XG4gICAgICAgICAgaWYgKGNoZWNrLnZlcnNpb24gIT09IFwidjZcIikge1xuICAgICAgICAgICAgYWRkUGF0dGVybihyZXMsIHpvZFBhdHRlcm5zLmlwdjRDaWRyLCBjaGVjay5tZXNzYWdlLCByZWZzKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGNoZWNrLnZlcnNpb24gIT09IFwidjRcIikge1xuICAgICAgICAgICAgYWRkUGF0dGVybihyZXMsIHpvZFBhdHRlcm5zLmlwdjZDaWRyLCBjaGVjay5tZXNzYWdlLCByZWZzKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSBcImVtb2ppXCI6XG4gICAgICAgICAgYWRkUGF0dGVybihyZXMsIHpvZFBhdHRlcm5zLmVtb2ppKCksIGNoZWNrLm1lc3NhZ2UsIHJlZnMpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFwidWxpZFwiOiB7XG4gICAgICAgICAgYWRkUGF0dGVybihyZXMsIHpvZFBhdHRlcm5zLnVsaWQsIGNoZWNrLm1lc3NhZ2UsIHJlZnMpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgXCJiYXNlNjRcIjoge1xuICAgICAgICAgIHN3aXRjaCAocmVmcy5iYXNlNjRTdHJhdGVneSkge1xuICAgICAgICAgICAgY2FzZSBcImZvcm1hdDpiaW5hcnlcIjoge1xuICAgICAgICAgICAgICBhZGRGb3JtYXQocmVzLCBcImJpbmFyeVwiLCBjaGVjay5tZXNzYWdlLCByZWZzKTtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFwiY29udGVudEVuY29kaW5nOmJhc2U2NFwiOiB7XG4gICAgICAgICAgICAgIHNldFJlc3BvbnNlVmFsdWVBbmRFcnJvcnMocmVzLCBcImNvbnRlbnRFbmNvZGluZ1wiLCBcImJhc2U2NFwiLCBjaGVjay5tZXNzYWdlLCByZWZzKTtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFwicGF0dGVybjp6b2RcIjoge1xuICAgICAgICAgICAgICBhZGRQYXR0ZXJuKHJlcywgem9kUGF0dGVybnMuYmFzZTY0LCBjaGVjay5tZXNzYWdlLCByZWZzKTtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgXCJuYW5vaWRcIjoge1xuICAgICAgICAgIGFkZFBhdHRlcm4ocmVzLCB6b2RQYXR0ZXJucy5uYW5vaWQsIGNoZWNrLm1lc3NhZ2UsIHJlZnMpO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgXCJ0b0xvd2VyQ2FzZVwiOlxuICAgICAgICBjYXNlIFwidG9VcHBlckNhc2VcIjpcbiAgICAgICAgY2FzZSBcInRyaW1cIjpcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAvKiBAX19QVVJFX18gKi8gKChfMikgPT4ge1xuICAgICAgICAgIH0pKGNoZWNrKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcmV0dXJuIHJlcztcbn1cbmZ1bmN0aW9uIGVzY2FwZUxpdGVyYWxDaGVja1ZhbHVlKGxpdGVyYWwsIHJlZnMpIHtcbiAgcmV0dXJuIHJlZnMucGF0dGVyblN0cmF0ZWd5ID09PSBcImVzY2FwZVwiID8gZXNjYXBlTm9uQWxwaGFOdW1lcmljKGxpdGVyYWwpIDogbGl0ZXJhbDtcbn1cbnZhciBBTFBIQV9OVU1FUklDID0gbmV3IFNldChcIkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2eHl6MDEyMzQ1Njc4OVwiKTtcbmZ1bmN0aW9uIGVzY2FwZU5vbkFscGhhTnVtZXJpYyhzb3VyY2UpIHtcbiAgbGV0IHJlc3VsdCA9IFwiXCI7XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgc291cmNlLmxlbmd0aDsgaSsrKSB7XG4gICAgaWYgKCFBTFBIQV9OVU1FUklDLmhhcyhzb3VyY2VbaV0pKSB7XG4gICAgICByZXN1bHQgKz0gXCJcXFxcXCI7XG4gICAgfVxuICAgIHJlc3VsdCArPSBzb3VyY2VbaV07XG4gIH1cbiAgcmV0dXJuIHJlc3VsdDtcbn1cbmZ1bmN0aW9uIGFkZEZvcm1hdChzY2hlbWEsIHZhbHVlLCBtZXNzYWdlLCByZWZzKSB7XG4gIGlmIChzY2hlbWEuZm9ybWF0IHx8IHNjaGVtYS5hbnlPZj8uc29tZSgoeCkgPT4geC5mb3JtYXQpKSB7XG4gICAgaWYgKCFzY2hlbWEuYW55T2YpIHtcbiAgICAgIHNjaGVtYS5hbnlPZiA9IFtdO1xuICAgIH1cbiAgICBpZiAoc2NoZW1hLmZvcm1hdCkge1xuICAgICAgc2NoZW1hLmFueU9mLnB1c2goe1xuICAgICAgICBmb3JtYXQ6IHNjaGVtYS5mb3JtYXQsXG4gICAgICAgIC4uLnNjaGVtYS5lcnJvck1lc3NhZ2UgJiYgcmVmcy5lcnJvck1lc3NhZ2VzICYmIHtcbiAgICAgICAgICBlcnJvck1lc3NhZ2U6IHsgZm9ybWF0OiBzY2hlbWEuZXJyb3JNZXNzYWdlLmZvcm1hdCB9XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgZGVsZXRlIHNjaGVtYS5mb3JtYXQ7XG4gICAgICBpZiAoc2NoZW1hLmVycm9yTWVzc2FnZSkge1xuICAgICAgICBkZWxldGUgc2NoZW1hLmVycm9yTWVzc2FnZS5mb3JtYXQ7XG4gICAgICAgIGlmIChPYmplY3Qua2V5cyhzY2hlbWEuZXJyb3JNZXNzYWdlKS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICBkZWxldGUgc2NoZW1hLmVycm9yTWVzc2FnZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICBzY2hlbWEuYW55T2YucHVzaCh7XG4gICAgICBmb3JtYXQ6IHZhbHVlLFxuICAgICAgLi4ubWVzc2FnZSAmJiByZWZzLmVycm9yTWVzc2FnZXMgJiYgeyBlcnJvck1lc3NhZ2U6IHsgZm9ybWF0OiBtZXNzYWdlIH0gfVxuICAgIH0pO1xuICB9IGVsc2Uge1xuICAgIHNldFJlc3BvbnNlVmFsdWVBbmRFcnJvcnMoc2NoZW1hLCBcImZvcm1hdFwiLCB2YWx1ZSwgbWVzc2FnZSwgcmVmcyk7XG4gIH1cbn1cbmZ1bmN0aW9uIGFkZFBhdHRlcm4oc2NoZW1hLCByZWdleCwgbWVzc2FnZSwgcmVmcykge1xuICBpZiAoc2NoZW1hLnBhdHRlcm4gfHwgc2NoZW1hLmFsbE9mPy5zb21lKCh4KSA9PiB4LnBhdHRlcm4pKSB7XG4gICAgaWYgKCFzY2hlbWEuYWxsT2YpIHtcbiAgICAgIHNjaGVtYS5hbGxPZiA9IFtdO1xuICAgIH1cbiAgICBpZiAoc2NoZW1hLnBhdHRlcm4pIHtcbiAgICAgIHNjaGVtYS5hbGxPZi5wdXNoKHtcbiAgICAgICAgcGF0dGVybjogc2NoZW1hLnBhdHRlcm4sXG4gICAgICAgIC4uLnNjaGVtYS5lcnJvck1lc3NhZ2UgJiYgcmVmcy5lcnJvck1lc3NhZ2VzICYmIHtcbiAgICAgICAgICBlcnJvck1lc3NhZ2U6IHsgcGF0dGVybjogc2NoZW1hLmVycm9yTWVzc2FnZS5wYXR0ZXJuIH1cbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICBkZWxldGUgc2NoZW1hLnBhdHRlcm47XG4gICAgICBpZiAoc2NoZW1hLmVycm9yTWVzc2FnZSkge1xuICAgICAgICBkZWxldGUgc2NoZW1hLmVycm9yTWVzc2FnZS5wYXR0ZXJuO1xuICAgICAgICBpZiAoT2JqZWN0LmtleXMoc2NoZW1hLmVycm9yTWVzc2FnZSkubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgZGVsZXRlIHNjaGVtYS5lcnJvck1lc3NhZ2U7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgc2NoZW1hLmFsbE9mLnB1c2goe1xuICAgICAgcGF0dGVybjogc3RyaW5naWZ5UmVnRXhwV2l0aEZsYWdzKHJlZ2V4LCByZWZzKSxcbiAgICAgIC4uLm1lc3NhZ2UgJiYgcmVmcy5lcnJvck1lc3NhZ2VzICYmIHsgZXJyb3JNZXNzYWdlOiB7IHBhdHRlcm46IG1lc3NhZ2UgfSB9XG4gICAgfSk7XG4gIH0gZWxzZSB7XG4gICAgc2V0UmVzcG9uc2VWYWx1ZUFuZEVycm9ycyhzY2hlbWEsIFwicGF0dGVyblwiLCBzdHJpbmdpZnlSZWdFeHBXaXRoRmxhZ3MocmVnZXgsIHJlZnMpLCBtZXNzYWdlLCByZWZzKTtcbiAgfVxufVxuZnVuY3Rpb24gc3RyaW5naWZ5UmVnRXhwV2l0aEZsYWdzKHJlZ2V4LCByZWZzKSB7XG4gIGlmICghcmVmcy5hcHBseVJlZ2V4RmxhZ3MgfHwgIXJlZ2V4LmZsYWdzKSB7XG4gICAgcmV0dXJuIHJlZ2V4LnNvdXJjZTtcbiAgfVxuICBjb25zdCBmbGFncyA9IHtcbiAgICBpOiByZWdleC5mbGFncy5pbmNsdWRlcyhcImlcIiksXG4gICAgbTogcmVnZXguZmxhZ3MuaW5jbHVkZXMoXCJtXCIpLFxuICAgIHM6IHJlZ2V4LmZsYWdzLmluY2x1ZGVzKFwic1wiKVxuICAgIC8vIGAuYCBtYXRjaGVzIG5ld2xpbmVzXG4gIH07XG4gIGNvbnN0IHNvdXJjZSA9IGZsYWdzLmkgPyByZWdleC5zb3VyY2UudG9Mb3dlckNhc2UoKSA6IHJlZ2V4LnNvdXJjZTtcbiAgbGV0IHBhdHRlcm4gPSBcIlwiO1xuICBsZXQgaXNFc2NhcGVkID0gZmFsc2U7XG4gIGxldCBpbkNoYXJHcm91cCA9IGZhbHNlO1xuICBsZXQgaW5DaGFyUmFuZ2UgPSBmYWxzZTtcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBzb3VyY2UubGVuZ3RoOyBpKyspIHtcbiAgICBpZiAoaXNFc2NhcGVkKSB7XG4gICAgICBwYXR0ZXJuICs9IHNvdXJjZVtpXTtcbiAgICAgIGlzRXNjYXBlZCA9IGZhbHNlO1xuICAgICAgY29udGludWU7XG4gICAgfVxuICAgIGlmIChmbGFncy5pKSB7XG4gICAgICBpZiAoaW5DaGFyR3JvdXApIHtcbiAgICAgICAgaWYgKHNvdXJjZVtpXS5tYXRjaCgvW2Etel0vKSkge1xuICAgICAgICAgIGlmIChpbkNoYXJSYW5nZSkge1xuICAgICAgICAgICAgcGF0dGVybiArPSBzb3VyY2VbaV07XG4gICAgICAgICAgICBwYXR0ZXJuICs9IGAke3NvdXJjZVtpIC0gMl19LSR7c291cmNlW2ldfWAudG9VcHBlckNhc2UoKTtcbiAgICAgICAgICAgIGluQ2hhclJhbmdlID0gZmFsc2U7XG4gICAgICAgICAgfSBlbHNlIGlmIChzb3VyY2VbaSArIDFdID09PSBcIi1cIiAmJiBzb3VyY2VbaSArIDJdPy5tYXRjaCgvW2Etel0vKSkge1xuICAgICAgICAgICAgcGF0dGVybiArPSBzb3VyY2VbaV07XG4gICAgICAgICAgICBpbkNoYXJSYW5nZSA9IHRydWU7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHBhdHRlcm4gKz0gYCR7c291cmNlW2ldfSR7c291cmNlW2ldLnRvVXBwZXJDYXNlKCl9YDtcbiAgICAgICAgICB9XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAoc291cmNlW2ldLm1hdGNoKC9bYS16XS8pKSB7XG4gICAgICAgIHBhdHRlcm4gKz0gYFske3NvdXJjZVtpXX0ke3NvdXJjZVtpXS50b1VwcGVyQ2FzZSgpfV1gO1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKGZsYWdzLm0pIHtcbiAgICAgIGlmIChzb3VyY2VbaV0gPT09IFwiXlwiKSB7XG4gICAgICAgIHBhdHRlcm4gKz0gYChefCg/PD1bXFxyXG5dKSlgO1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH0gZWxzZSBpZiAoc291cmNlW2ldID09PSBcIiRcIikge1xuICAgICAgICBwYXR0ZXJuICs9IGAoJHwoPz1bXFxyXG5dKSlgO1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKGZsYWdzLnMgJiYgc291cmNlW2ldID09PSBcIi5cIikge1xuICAgICAgcGF0dGVybiArPSBpbkNoYXJHcm91cCA/IGAke3NvdXJjZVtpXX1cXHJcbmAgOiBgWyR7c291cmNlW2ldfVxcclxuXWA7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG4gICAgcGF0dGVybiArPSBzb3VyY2VbaV07XG4gICAgaWYgKHNvdXJjZVtpXSA9PT0gXCJcXFxcXCIpIHtcbiAgICAgIGlzRXNjYXBlZCA9IHRydWU7XG4gICAgfSBlbHNlIGlmIChpbkNoYXJHcm91cCAmJiBzb3VyY2VbaV0gPT09IFwiXVwiKSB7XG4gICAgICBpbkNoYXJHcm91cCA9IGZhbHNlO1xuICAgIH0gZWxzZSBpZiAoIWluQ2hhckdyb3VwICYmIHNvdXJjZVtpXSA9PT0gXCJbXCIpIHtcbiAgICAgIGluQ2hhckdyb3VwID0gdHJ1ZTtcbiAgICB9XG4gIH1cbiAgdHJ5IHtcbiAgICBuZXcgUmVnRXhwKHBhdHRlcm4pO1xuICB9IGNhdGNoIHtcbiAgICBjb25zb2xlLndhcm4oYENvdWxkIG5vdCBjb252ZXJ0IHJlZ2V4IHBhdHRlcm4gYXQgJHtyZWZzLmN1cnJlbnRQYXRoLmpvaW4oXCIvXCIpfSB0byBhIGZsYWctaW5kZXBlbmRlbnQgZm9ybSEgRmFsbGluZyBiYWNrIHRvIHRoZSBmbGFnLWlnbm9yYW50IHNvdXJjZWApO1xuICAgIHJldHVybiByZWdleC5zb3VyY2U7XG4gIH1cbiAgcmV0dXJuIHBhdHRlcm47XG59XG5cbi8vIG5vZGVfbW9kdWxlcy96b2QtdG8tanNvbi1zY2hlbWEvZGlzdC9lc20vcGFyc2Vycy9yZWNvcmQuanNcbmZ1bmN0aW9uIHBhcnNlUmVjb3JkRGVmKGRlZiwgcmVmcykge1xuICBpZiAocmVmcy50YXJnZXQgPT09IFwib3BlbkFpXCIpIHtcbiAgICBjb25zb2xlLndhcm4oXCJXYXJuaW5nOiBPcGVuQUkgbWF5IG5vdCBzdXBwb3J0IHJlY29yZHMgaW4gc2NoZW1hcyEgVHJ5IGFuIGFycmF5IG9mIGtleS12YWx1ZSBwYWlycyBpbnN0ZWFkLlwiKTtcbiAgfVxuICBpZiAocmVmcy50YXJnZXQgPT09IFwib3BlbkFwaTNcIiAmJiBkZWYua2V5VHlwZT8uX2RlZi50eXBlTmFtZSA9PT0gWm9kRmlyc3RQYXJ0eVR5cGVLaW5kLlpvZEVudW0pIHtcbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogXCJvYmplY3RcIixcbiAgICAgIHJlcXVpcmVkOiBkZWYua2V5VHlwZS5fZGVmLnZhbHVlcyxcbiAgICAgIHByb3BlcnRpZXM6IGRlZi5rZXlUeXBlLl9kZWYudmFsdWVzLnJlZHVjZSgoYWNjLCBrZXkpID0+ICh7XG4gICAgICAgIC4uLmFjYyxcbiAgICAgICAgW2tleV06IHBhcnNlRGVmKGRlZi52YWx1ZVR5cGUuX2RlZiwge1xuICAgICAgICAgIC4uLnJlZnMsXG4gICAgICAgICAgY3VycmVudFBhdGg6IFsuLi5yZWZzLmN1cnJlbnRQYXRoLCBcInByb3BlcnRpZXNcIiwga2V5XVxuICAgICAgICB9KSA/PyB7fVxuICAgICAgfSksIHt9KSxcbiAgICAgIGFkZGl0aW9uYWxQcm9wZXJ0aWVzOiBmYWxzZVxuICAgIH07XG4gIH1cbiAgY29uc3Qgc2NoZW1hID0ge1xuICAgIHR5cGU6IFwib2JqZWN0XCIsXG4gICAgYWRkaXRpb25hbFByb3BlcnRpZXM6IHBhcnNlRGVmKGRlZi52YWx1ZVR5cGUuX2RlZiwge1xuICAgICAgLi4ucmVmcyxcbiAgICAgIGN1cnJlbnRQYXRoOiBbLi4ucmVmcy5jdXJyZW50UGF0aCwgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiXVxuICAgIH0pID8/IHt9XG4gIH07XG4gIGlmIChyZWZzLnRhcmdldCA9PT0gXCJvcGVuQXBpM1wiKSB7XG4gICAgcmV0dXJuIHNjaGVtYTtcbiAgfVxuICBpZiAoZGVmLmtleVR5cGU/Ll9kZWYudHlwZU5hbWUgPT09IFpvZEZpcnN0UGFydHlUeXBlS2luZC5ab2RTdHJpbmcgJiYgZGVmLmtleVR5cGUuX2RlZi5jaGVja3M/Lmxlbmd0aCkge1xuICAgIGNvbnN0IHsgdHlwZSwgLi4ua2V5VHlwZSB9ID0gcGFyc2VTdHJpbmdEZWYoZGVmLmtleVR5cGUuX2RlZiwgcmVmcyk7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnNjaGVtYSxcbiAgICAgIHByb3BlcnR5TmFtZXM6IGtleVR5cGVcbiAgICB9O1xuICB9IGVsc2UgaWYgKGRlZi5rZXlUeXBlPy5fZGVmLnR5cGVOYW1lID09PSBab2RGaXJzdFBhcnR5VHlwZUtpbmQuWm9kRW51bSkge1xuICAgIHJldHVybiB7XG4gICAgICAuLi5zY2hlbWEsXG4gICAgICBwcm9wZXJ0eU5hbWVzOiB7XG4gICAgICAgIGVudW06IGRlZi5rZXlUeXBlLl9kZWYudmFsdWVzXG4gICAgICB9XG4gICAgfTtcbiAgfSBlbHNlIGlmIChkZWYua2V5VHlwZT8uX2RlZi50eXBlTmFtZSA9PT0gWm9kRmlyc3RQYXJ0eVR5cGVLaW5kLlpvZEJyYW5kZWQgJiYgZGVmLmtleVR5cGUuX2RlZi50eXBlLl9kZWYudHlwZU5hbWUgPT09IFpvZEZpcnN0UGFydHlUeXBlS2luZC5ab2RTdHJpbmcgJiYgZGVmLmtleVR5cGUuX2RlZi50eXBlLl9kZWYuY2hlY2tzPy5sZW5ndGgpIHtcbiAgICBjb25zdCB7IHR5cGUsIC4uLmtleVR5cGUgfSA9IHBhcnNlQnJhbmRlZERlZihkZWYua2V5VHlwZS5fZGVmLCByZWZzKTtcbiAgICByZXR1cm4ge1xuICAgICAgLi4uc2NoZW1hLFxuICAgICAgcHJvcGVydHlOYW1lczoga2V5VHlwZVxuICAgIH07XG4gIH1cbiAgcmV0dXJuIHNjaGVtYTtcbn1cblxuLy8gbm9kZV9tb2R1bGVzL3pvZC10by1qc29uLXNjaGVtYS9kaXN0L2VzbS9wYXJzZXJzL21hcC5qc1xuZnVuY3Rpb24gcGFyc2VNYXBEZWYoZGVmLCByZWZzKSB7XG4gIGlmIChyZWZzLm1hcFN0cmF0ZWd5ID09PSBcInJlY29yZFwiKSB7XG4gICAgcmV0dXJuIHBhcnNlUmVjb3JkRGVmKGRlZiwgcmVmcyk7XG4gIH1cbiAgY29uc3Qga2V5cyA9IHBhcnNlRGVmKGRlZi5rZXlUeXBlLl9kZWYsIHtcbiAgICAuLi5yZWZzLFxuICAgIGN1cnJlbnRQYXRoOiBbLi4ucmVmcy5jdXJyZW50UGF0aCwgXCJpdGVtc1wiLCBcIml0ZW1zXCIsIFwiMFwiXVxuICB9KSB8fCB7fTtcbiAgY29uc3QgdmFsdWVzID0gcGFyc2VEZWYoZGVmLnZhbHVlVHlwZS5fZGVmLCB7XG4gICAgLi4ucmVmcyxcbiAgICBjdXJyZW50UGF0aDogWy4uLnJlZnMuY3VycmVudFBhdGgsIFwiaXRlbXNcIiwgXCJpdGVtc1wiLCBcIjFcIl1cbiAgfSkgfHwge307XG4gIHJldHVybiB7XG4gICAgdHlwZTogXCJhcnJheVwiLFxuICAgIG1heEl0ZW1zOiAxMjUsXG4gICAgaXRlbXM6IHtcbiAgICAgIHR5cGU6IFwiYXJyYXlcIixcbiAgICAgIGl0ZW1zOiBba2V5cywgdmFsdWVzXSxcbiAgICAgIG1pbkl0ZW1zOiAyLFxuICAgICAgbWF4SXRlbXM6IDJcbiAgICB9XG4gIH07XG59XG5cbi8vIG5vZGVfbW9kdWxlcy96b2QtdG8tanNvbi1zY2hlbWEvZGlzdC9lc20vcGFyc2Vycy9uYXRpdmVFbnVtLmpzXG5mdW5jdGlvbiBwYXJzZU5hdGl2ZUVudW1EZWYoZGVmKSB7XG4gIGNvbnN0IG9iamVjdCA9IGRlZi52YWx1ZXM7XG4gIGNvbnN0IGFjdHVhbEtleXMgPSBPYmplY3Qua2V5cyhkZWYudmFsdWVzKS5maWx0ZXIoKGtleSkgPT4ge1xuICAgIHJldHVybiB0eXBlb2Ygb2JqZWN0W29iamVjdFtrZXldXSAhPT0gXCJudW1iZXJcIjtcbiAgfSk7XG4gIGNvbnN0IGFjdHVhbFZhbHVlcyA9IGFjdHVhbEtleXMubWFwKChrZXkpID0+IG9iamVjdFtrZXldKTtcbiAgY29uc3QgcGFyc2VkVHlwZXMgPSBBcnJheS5mcm9tKG5ldyBTZXQoYWN0dWFsVmFsdWVzLm1hcCgodmFsdWVzKSA9PiB0eXBlb2YgdmFsdWVzKSkpO1xuICByZXR1cm4ge1xuICAgIHR5cGU6IHBhcnNlZFR5cGVzLmxlbmd0aCA9PT0gMSA/IHBhcnNlZFR5cGVzWzBdID09PSBcInN0cmluZ1wiID8gXCJzdHJpbmdcIiA6IFwibnVtYmVyXCIgOiBbXCJzdHJpbmdcIiwgXCJudW1iZXJcIl0sXG4gICAgZW51bTogYWN0dWFsVmFsdWVzXG4gIH07XG59XG5cbi8vIG5vZGVfbW9kdWxlcy96b2QtdG8tanNvbi1zY2hlbWEvZGlzdC9lc20vcGFyc2Vycy9uZXZlci5qc1xuZnVuY3Rpb24gcGFyc2VOZXZlckRlZigpIHtcbiAgcmV0dXJuIHtcbiAgICBub3Q6IHt9XG4gIH07XG59XG5cbi8vIG5vZGVfbW9kdWxlcy96b2QtdG8tanNvbi1zY2hlbWEvZGlzdC9lc20vcGFyc2Vycy9udWxsLmpzXG5mdW5jdGlvbiBwYXJzZU51bGxEZWYocmVmcykge1xuICByZXR1cm4gcmVmcy50YXJnZXQgPT09IFwib3BlbkFwaTNcIiA/IHtcbiAgICBlbnVtOiBbXCJudWxsXCJdLFxuICAgIG51bGxhYmxlOiB0cnVlXG4gIH0gOiB7XG4gICAgdHlwZTogXCJudWxsXCJcbiAgfTtcbn1cblxuLy8gbm9kZV9tb2R1bGVzL3pvZC10by1qc29uLXNjaGVtYS9kaXN0L2VzbS9wYXJzZXJzL3VuaW9uLmpzXG52YXIgcHJpbWl0aXZlTWFwcGluZ3MgPSB7XG4gIFpvZFN0cmluZzogXCJzdHJpbmdcIixcbiAgWm9kTnVtYmVyOiBcIm51bWJlclwiLFxuICBab2RCaWdJbnQ6IFwiaW50ZWdlclwiLFxuICBab2RCb29sZWFuOiBcImJvb2xlYW5cIixcbiAgWm9kTnVsbDogXCJudWxsXCJcbn07XG5mdW5jdGlvbiBwYXJzZVVuaW9uRGVmKGRlZiwgcmVmcykge1xuICBpZiAocmVmcy50YXJnZXQgPT09IFwib3BlbkFwaTNcIilcbiAgICByZXR1cm4gYXNBbnlPZihkZWYsIHJlZnMpO1xuICBjb25zdCBvcHRpb25zID0gZGVmLm9wdGlvbnMgaW5zdGFuY2VvZiBNYXAgPyBBcnJheS5mcm9tKGRlZi5vcHRpb25zLnZhbHVlcygpKSA6IGRlZi5vcHRpb25zO1xuICBpZiAob3B0aW9ucy5ldmVyeSgoeCkgPT4geC5fZGVmLnR5cGVOYW1lIGluIHByaW1pdGl2ZU1hcHBpbmdzICYmICgheC5fZGVmLmNoZWNrcyB8fCAheC5fZGVmLmNoZWNrcy5sZW5ndGgpKSkge1xuICAgIGNvbnN0IHR5cGVzID0gb3B0aW9ucy5yZWR1Y2UoKHR5cGVzMiwgeCkgPT4ge1xuICAgICAgY29uc3QgdHlwZSA9IHByaW1pdGl2ZU1hcHBpbmdzW3guX2RlZi50eXBlTmFtZV07XG4gICAgICByZXR1cm4gdHlwZSAmJiAhdHlwZXMyLmluY2x1ZGVzKHR5cGUpID8gWy4uLnR5cGVzMiwgdHlwZV0gOiB0eXBlczI7XG4gICAgfSwgW10pO1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiB0eXBlcy5sZW5ndGggPiAxID8gdHlwZXMgOiB0eXBlc1swXVxuICAgIH07XG4gIH0gZWxzZSBpZiAob3B0aW9ucy5ldmVyeSgoeCkgPT4geC5fZGVmLnR5cGVOYW1lID09PSBcIlpvZExpdGVyYWxcIiAmJiAheC5kZXNjcmlwdGlvbikpIHtcbiAgICBjb25zdCB0eXBlcyA9IG9wdGlvbnMucmVkdWNlKChhY2MsIHgpID0+IHtcbiAgICAgIGNvbnN0IHR5cGUgPSB0eXBlb2YgeC5fZGVmLnZhbHVlO1xuICAgICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICAgIGNhc2UgXCJzdHJpbmdcIjpcbiAgICAgICAgY2FzZSBcIm51bWJlclwiOlxuICAgICAgICBjYXNlIFwiYm9vbGVhblwiOlxuICAgICAgICAgIHJldHVybiBbLi4uYWNjLCB0eXBlXTtcbiAgICAgICAgY2FzZSBcImJpZ2ludFwiOlxuICAgICAgICAgIHJldHVybiBbLi4uYWNjLCBcImludGVnZXJcIl07XG4gICAgICAgIGNhc2UgXCJvYmplY3RcIjpcbiAgICAgICAgICBpZiAoeC5fZGVmLnZhbHVlID09PSBudWxsKVxuICAgICAgICAgICAgcmV0dXJuIFsuLi5hY2MsIFwibnVsbFwiXTtcbiAgICAgICAgY2FzZSBcInN5bWJvbFwiOlxuICAgICAgICBjYXNlIFwidW5kZWZpbmVkXCI6XG4gICAgICAgIGNhc2UgXCJmdW5jdGlvblwiOlxuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHJldHVybiBhY2M7XG4gICAgICB9XG4gICAgfSwgW10pO1xuICAgIGlmICh0eXBlcy5sZW5ndGggPT09IG9wdGlvbnMubGVuZ3RoKSB7XG4gICAgICBjb25zdCB1bmlxdWVUeXBlcyA9IHR5cGVzLmZpbHRlcigoeCwgaSwgYSkgPT4gYS5pbmRleE9mKHgpID09PSBpKTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHR5cGU6IHVuaXF1ZVR5cGVzLmxlbmd0aCA+IDEgPyB1bmlxdWVUeXBlcyA6IHVuaXF1ZVR5cGVzWzBdLFxuICAgICAgICBlbnVtOiBvcHRpb25zLnJlZHVjZSgoYWNjLCB4KSA9PiB7XG4gICAgICAgICAgcmV0dXJuIGFjYy5pbmNsdWRlcyh4Ll9kZWYudmFsdWUpID8gYWNjIDogWy4uLmFjYywgeC5fZGVmLnZhbHVlXTtcbiAgICAgICAgfSwgW10pXG4gICAgICB9O1xuICAgIH1cbiAgfSBlbHNlIGlmIChvcHRpb25zLmV2ZXJ5KCh4KSA9PiB4Ll9kZWYudHlwZU5hbWUgPT09IFwiWm9kRW51bVwiKSkge1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiBcInN0cmluZ1wiLFxuICAgICAgZW51bTogb3B0aW9ucy5yZWR1Y2UoKGFjYywgeCkgPT4gW1xuICAgICAgICAuLi5hY2MsXG4gICAgICAgIC4uLnguX2RlZi52YWx1ZXMuZmlsdGVyKCh4MikgPT4gIWFjYy5pbmNsdWRlcyh4MikpXG4gICAgICBdLCBbXSlcbiAgICB9O1xuICB9XG4gIHJldHVybiBhc0FueU9mKGRlZiwgcmVmcyk7XG59XG52YXIgYXNBbnlPZiA9IChkZWYsIHJlZnMpID0+IHtcbiAgY29uc3QgYW55T2YgPSAoZGVmLm9wdGlvbnMgaW5zdGFuY2VvZiBNYXAgPyBBcnJheS5mcm9tKGRlZi5vcHRpb25zLnZhbHVlcygpKSA6IGRlZi5vcHRpb25zKS5tYXAoKHgsIGkpID0+IHBhcnNlRGVmKHguX2RlZiwge1xuICAgIC4uLnJlZnMsXG4gICAgY3VycmVudFBhdGg6IFsuLi5yZWZzLmN1cnJlbnRQYXRoLCBcImFueU9mXCIsIGAke2l9YF1cbiAgfSkpLmZpbHRlcigoeCkgPT4gISF4ICYmICghcmVmcy5zdHJpY3RVbmlvbnMgfHwgdHlwZW9mIHggPT09IFwib2JqZWN0XCIgJiYgT2JqZWN0LmtleXMoeCkubGVuZ3RoID4gMCkpO1xuICByZXR1cm4gYW55T2YubGVuZ3RoID8geyBhbnlPZiB9IDogdm9pZCAwO1xufTtcblxuLy8gbm9kZV9tb2R1bGVzL3pvZC10by1qc29uLXNjaGVtYS9kaXN0L2VzbS9wYXJzZXJzL251bGxhYmxlLmpzXG5mdW5jdGlvbiBwYXJzZU51bGxhYmxlRGVmKGRlZiwgcmVmcykge1xuICBpZiAoW1wiWm9kU3RyaW5nXCIsIFwiWm9kTnVtYmVyXCIsIFwiWm9kQmlnSW50XCIsIFwiWm9kQm9vbGVhblwiLCBcIlpvZE51bGxcIl0uaW5jbHVkZXMoZGVmLmlubmVyVHlwZS5fZGVmLnR5cGVOYW1lKSAmJiAoIWRlZi5pbm5lclR5cGUuX2RlZi5jaGVja3MgfHwgIWRlZi5pbm5lclR5cGUuX2RlZi5jaGVja3MubGVuZ3RoKSkge1xuICAgIGlmIChyZWZzLnRhcmdldCA9PT0gXCJvcGVuQXBpM1wiKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICB0eXBlOiBwcmltaXRpdmVNYXBwaW5nc1tkZWYuaW5uZXJUeXBlLl9kZWYudHlwZU5hbWVdLFxuICAgICAgICBudWxsYWJsZTogdHJ1ZVxuICAgICAgfTtcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6IFtcbiAgICAgICAgcHJpbWl0aXZlTWFwcGluZ3NbZGVmLmlubmVyVHlwZS5fZGVmLnR5cGVOYW1lXSxcbiAgICAgICAgXCJudWxsXCJcbiAgICAgIF1cbiAgICB9O1xuICB9XG4gIGlmIChyZWZzLnRhcmdldCA9PT0gXCJvcGVuQXBpM1wiKSB7XG4gICAgY29uc3QgYmFzZTIgPSBwYXJzZURlZihkZWYuaW5uZXJUeXBlLl9kZWYsIHtcbiAgICAgIC4uLnJlZnMsXG4gICAgICBjdXJyZW50UGF0aDogWy4uLnJlZnMuY3VycmVudFBhdGhdXG4gICAgfSk7XG4gICAgaWYgKGJhc2UyICYmIFwiJHJlZlwiIGluIGJhc2UyKVxuICAgICAgcmV0dXJuIHsgYWxsT2Y6IFtiYXNlMl0sIG51bGxhYmxlOiB0cnVlIH07XG4gICAgcmV0dXJuIGJhc2UyICYmIHsgLi4uYmFzZTIsIG51bGxhYmxlOiB0cnVlIH07XG4gIH1cbiAgY29uc3QgYmFzZSA9IHBhcnNlRGVmKGRlZi5pbm5lclR5cGUuX2RlZiwge1xuICAgIC4uLnJlZnMsXG4gICAgY3VycmVudFBhdGg6IFsuLi5yZWZzLmN1cnJlbnRQYXRoLCBcImFueU9mXCIsIFwiMFwiXVxuICB9KTtcbiAgcmV0dXJuIGJhc2UgJiYgeyBhbnlPZjogW2Jhc2UsIHsgdHlwZTogXCJudWxsXCIgfV0gfTtcbn1cblxuLy8gbm9kZV9tb2R1bGVzL3pvZC10by1qc29uLXNjaGVtYS9kaXN0L2VzbS9wYXJzZXJzL251bWJlci5qc1xuZnVuY3Rpb24gcGFyc2VOdW1iZXJEZWYoZGVmLCByZWZzKSB7XG4gIGNvbnN0IHJlcyA9IHtcbiAgICB0eXBlOiBcIm51bWJlclwiXG4gIH07XG4gIGlmICghZGVmLmNoZWNrcylcbiAgICByZXR1cm4gcmVzO1xuICBmb3IgKGNvbnN0IGNoZWNrIG9mIGRlZi5jaGVja3MpIHtcbiAgICBzd2l0Y2ggKGNoZWNrLmtpbmQpIHtcbiAgICAgIGNhc2UgXCJpbnRcIjpcbiAgICAgICAgcmVzLnR5cGUgPSBcImludGVnZXJcIjtcbiAgICAgICAgYWRkRXJyb3JNZXNzYWdlKHJlcywgXCJ0eXBlXCIsIGNoZWNrLm1lc3NhZ2UsIHJlZnMpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgXCJtaW5cIjpcbiAgICAgICAgaWYgKHJlZnMudGFyZ2V0ID09PSBcImpzb25TY2hlbWE3XCIpIHtcbiAgICAgICAgICBpZiAoY2hlY2suaW5jbHVzaXZlKSB7XG4gICAgICAgICAgICBzZXRSZXNwb25zZVZhbHVlQW5kRXJyb3JzKHJlcywgXCJtaW5pbXVtXCIsIGNoZWNrLnZhbHVlLCBjaGVjay5tZXNzYWdlLCByZWZzKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgc2V0UmVzcG9uc2VWYWx1ZUFuZEVycm9ycyhyZXMsIFwiZXhjbHVzaXZlTWluaW11bVwiLCBjaGVjay52YWx1ZSwgY2hlY2subWVzc2FnZSwgcmVmcyk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGlmICghY2hlY2suaW5jbHVzaXZlKSB7XG4gICAgICAgICAgICByZXMuZXhjbHVzaXZlTWluaW11bSA9IHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICAgIHNldFJlc3BvbnNlVmFsdWVBbmRFcnJvcnMocmVzLCBcIm1pbmltdW1cIiwgY2hlY2sudmFsdWUsIGNoZWNrLm1lc3NhZ2UsIHJlZnMpO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBcIm1heFwiOlxuICAgICAgICBpZiAocmVmcy50YXJnZXQgPT09IFwianNvblNjaGVtYTdcIikge1xuICAgICAgICAgIGlmIChjaGVjay5pbmNsdXNpdmUpIHtcbiAgICAgICAgICAgIHNldFJlc3BvbnNlVmFsdWVBbmRFcnJvcnMocmVzLCBcIm1heGltdW1cIiwgY2hlY2sudmFsdWUsIGNoZWNrLm1lc3NhZ2UsIHJlZnMpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBzZXRSZXNwb25zZVZhbHVlQW5kRXJyb3JzKHJlcywgXCJleGNsdXNpdmVNYXhpbXVtXCIsIGNoZWNrLnZhbHVlLCBjaGVjay5tZXNzYWdlLCByZWZzKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaWYgKCFjaGVjay5pbmNsdXNpdmUpIHtcbiAgICAgICAgICAgIHJlcy5leGNsdXNpdmVNYXhpbXVtID0gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgc2V0UmVzcG9uc2VWYWx1ZUFuZEVycm9ycyhyZXMsIFwibWF4aW11bVwiLCBjaGVjay52YWx1ZSwgY2hlY2subWVzc2FnZSwgcmVmcyk7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFwibXVsdGlwbGVPZlwiOlxuICAgICAgICBzZXRSZXNwb25zZVZhbHVlQW5kRXJyb3JzKHJlcywgXCJtdWx0aXBsZU9mXCIsIGNoZWNrLnZhbHVlLCBjaGVjay5tZXNzYWdlLCByZWZzKTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG4gIHJldHVybiByZXM7XG59XG5cbi8vIG5vZGVfbW9kdWxlcy96b2QtdG8tanNvbi1zY2hlbWEvZGlzdC9lc20vcGFyc2Vycy9vYmplY3QuanNcbmZ1bmN0aW9uIGRlY2lkZUFkZGl0aW9uYWxQcm9wZXJ0aWVzKGRlZiwgcmVmcykge1xuICBpZiAocmVmcy5yZW1vdmVBZGRpdGlvbmFsU3RyYXRlZ3kgPT09IFwic3RyaWN0XCIpIHtcbiAgICByZXR1cm4gZGVmLmNhdGNoYWxsLl9kZWYudHlwZU5hbWUgPT09IFwiWm9kTmV2ZXJcIiA/IGRlZi51bmtub3duS2V5cyAhPT0gXCJzdHJpY3RcIiA6IHBhcnNlRGVmKGRlZi5jYXRjaGFsbC5fZGVmLCB7XG4gICAgICAuLi5yZWZzLFxuICAgICAgY3VycmVudFBhdGg6IFsuLi5yZWZzLmN1cnJlbnRQYXRoLCBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCJdXG4gICAgfSkgPz8gdHJ1ZTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gZGVmLmNhdGNoYWxsLl9kZWYudHlwZU5hbWUgPT09IFwiWm9kTmV2ZXJcIiA/IGRlZi51bmtub3duS2V5cyA9PT0gXCJwYXNzdGhyb3VnaFwiIDogcGFyc2VEZWYoZGVmLmNhdGNoYWxsLl9kZWYsIHtcbiAgICAgIC4uLnJlZnMsXG4gICAgICBjdXJyZW50UGF0aDogWy4uLnJlZnMuY3VycmVudFBhdGgsIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIl1cbiAgICB9KSA/PyB0cnVlO1xuICB9XG59XG5mdW5jdGlvbiBwYXJzZU9iamVjdERlZihkZWYsIHJlZnMpIHtcbiAgY29uc3QgZm9yY2VPcHRpb25hbEludG9OdWxsYWJsZSA9IHJlZnMudGFyZ2V0ID09PSBcIm9wZW5BaVwiO1xuICBjb25zdCByZXN1bHQgPSB7XG4gICAgdHlwZTogXCJvYmplY3RcIixcbiAgICAuLi5PYmplY3QuZW50cmllcyhkZWYuc2hhcGUoKSkucmVkdWNlKChhY2MsIFtwcm9wTmFtZSwgcHJvcERlZl0pID0+IHtcbiAgICAgIGlmIChwcm9wRGVmID09PSB2b2lkIDAgfHwgcHJvcERlZi5fZGVmID09PSB2b2lkIDApXG4gICAgICAgIHJldHVybiBhY2M7XG4gICAgICBsZXQgcHJvcE9wdGlvbmFsID0gcHJvcERlZi5pc09wdGlvbmFsKCk7XG4gICAgICBpZiAocHJvcE9wdGlvbmFsICYmIGZvcmNlT3B0aW9uYWxJbnRvTnVsbGFibGUpIHtcbiAgICAgICAgaWYgKHByb3BEZWYgaW5zdGFuY2VvZiBab2RPcHRpb25hbCkge1xuICAgICAgICAgIHByb3BEZWYgPSBwcm9wRGVmLl9kZWYuaW5uZXJUeXBlO1xuICAgICAgICB9XG4gICAgICAgIGlmICghcHJvcERlZi5pc051bGxhYmxlKCkpIHtcbiAgICAgICAgICBwcm9wRGVmID0gcHJvcERlZi5udWxsYWJsZSgpO1xuICAgICAgICB9XG4gICAgICAgIHByb3BPcHRpb25hbCA9IGZhbHNlO1xuICAgICAgfVxuICAgICAgY29uc3QgcGFyc2VkRGVmID0gcGFyc2VEZWYocHJvcERlZi5fZGVmLCB7XG4gICAgICAgIC4uLnJlZnMsXG4gICAgICAgIGN1cnJlbnRQYXRoOiBbLi4ucmVmcy5jdXJyZW50UGF0aCwgXCJwcm9wZXJ0aWVzXCIsIHByb3BOYW1lXSxcbiAgICAgICAgcHJvcGVydHlQYXRoOiBbLi4ucmVmcy5jdXJyZW50UGF0aCwgXCJwcm9wZXJ0aWVzXCIsIHByb3BOYW1lXVxuICAgICAgfSk7XG4gICAgICBpZiAocGFyc2VkRGVmID09PSB2b2lkIDApXG4gICAgICAgIHJldHVybiBhY2M7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBwcm9wZXJ0aWVzOiB7IC4uLmFjYy5wcm9wZXJ0aWVzLCBbcHJvcE5hbWVdOiBwYXJzZWREZWYgfSxcbiAgICAgICAgcmVxdWlyZWQ6IHByb3BPcHRpb25hbCA/IGFjYy5yZXF1aXJlZCA6IFsuLi5hY2MucmVxdWlyZWQsIHByb3BOYW1lXVxuICAgICAgfTtcbiAgICB9LCB7IHByb3BlcnRpZXM6IHt9LCByZXF1aXJlZDogW10gfSksXG4gICAgYWRkaXRpb25hbFByb3BlcnRpZXM6IGRlY2lkZUFkZGl0aW9uYWxQcm9wZXJ0aWVzKGRlZiwgcmVmcylcbiAgfTtcbiAgaWYgKCFyZXN1bHQucmVxdWlyZWQubGVuZ3RoKVxuICAgIGRlbGV0ZSByZXN1bHQucmVxdWlyZWQ7XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbi8vIG5vZGVfbW9kdWxlcy96b2QtdG8tanNvbi1zY2hlbWEvZGlzdC9lc20vcGFyc2Vycy9vcHRpb25hbC5qc1xudmFyIHBhcnNlT3B0aW9uYWxEZWYgPSAoZGVmLCByZWZzKSA9PiB7XG4gIGlmIChyZWZzLmN1cnJlbnRQYXRoLnRvU3RyaW5nKCkgPT09IHJlZnMucHJvcGVydHlQYXRoPy50b1N0cmluZygpKSB7XG4gICAgcmV0dXJuIHBhcnNlRGVmKGRlZi5pbm5lclR5cGUuX2RlZiwgcmVmcyk7XG4gIH1cbiAgY29uc3QgaW5uZXJTY2hlbWEgPSBwYXJzZURlZihkZWYuaW5uZXJUeXBlLl9kZWYsIHtcbiAgICAuLi5yZWZzLFxuICAgIGN1cnJlbnRQYXRoOiBbLi4ucmVmcy5jdXJyZW50UGF0aCwgXCJhbnlPZlwiLCBcIjFcIl1cbiAgfSk7XG4gIHJldHVybiBpbm5lclNjaGVtYSA/IHtcbiAgICBhbnlPZjogW1xuICAgICAge1xuICAgICAgICBub3Q6IHt9XG4gICAgICB9LFxuICAgICAgaW5uZXJTY2hlbWFcbiAgICBdXG4gIH0gOiB7fTtcbn07XG5cbi8vIG5vZGVfbW9kdWxlcy96b2QtdG8tanNvbi1zY2hlbWEvZGlzdC9lc20vcGFyc2Vycy9waXBlbGluZS5qc1xudmFyIHBhcnNlUGlwZWxpbmVEZWYgPSAoZGVmLCByZWZzKSA9PiB7XG4gIGlmIChyZWZzLnBpcGVTdHJhdGVneSA9PT0gXCJpbnB1dFwiKSB7XG4gICAgcmV0dXJuIHBhcnNlRGVmKGRlZi5pbi5fZGVmLCByZWZzKTtcbiAgfSBlbHNlIGlmIChyZWZzLnBpcGVTdHJhdGVneSA9PT0gXCJvdXRwdXRcIikge1xuICAgIHJldHVybiBwYXJzZURlZihkZWYub3V0Ll9kZWYsIHJlZnMpO1xuICB9XG4gIGNvbnN0IGEgPSBwYXJzZURlZihkZWYuaW4uX2RlZiwge1xuICAgIC4uLnJlZnMsXG4gICAgY3VycmVudFBhdGg6IFsuLi5yZWZzLmN1cnJlbnRQYXRoLCBcImFsbE9mXCIsIFwiMFwiXVxuICB9KTtcbiAgY29uc3QgYiA9IHBhcnNlRGVmKGRlZi5vdXQuX2RlZiwge1xuICAgIC4uLnJlZnMsXG4gICAgY3VycmVudFBhdGg6IFsuLi5yZWZzLmN1cnJlbnRQYXRoLCBcImFsbE9mXCIsIGEgPyBcIjFcIiA6IFwiMFwiXVxuICB9KTtcbiAgcmV0dXJuIHtcbiAgICBhbGxPZjogW2EsIGJdLmZpbHRlcigoeCkgPT4geCAhPT0gdm9pZCAwKVxuICB9O1xufTtcblxuLy8gbm9kZV9tb2R1bGVzL3pvZC10by1qc29uLXNjaGVtYS9kaXN0L2VzbS9wYXJzZXJzL3Byb21pc2UuanNcbmZ1bmN0aW9uIHBhcnNlUHJvbWlzZURlZihkZWYsIHJlZnMpIHtcbiAgcmV0dXJuIHBhcnNlRGVmKGRlZi50eXBlLl9kZWYsIHJlZnMpO1xufVxuXG4vLyBub2RlX21vZHVsZXMvem9kLXRvLWpzb24tc2NoZW1hL2Rpc3QvZXNtL3BhcnNlcnMvc2V0LmpzXG5mdW5jdGlvbiBwYXJzZVNldERlZihkZWYsIHJlZnMpIHtcbiAgY29uc3QgaXRlbXMgPSBwYXJzZURlZihkZWYudmFsdWVUeXBlLl9kZWYsIHtcbiAgICAuLi5yZWZzLFxuICAgIGN1cnJlbnRQYXRoOiBbLi4ucmVmcy5jdXJyZW50UGF0aCwgXCJpdGVtc1wiXVxuICB9KTtcbiAgY29uc3Qgc2NoZW1hID0ge1xuICAgIHR5cGU6IFwiYXJyYXlcIixcbiAgICB1bmlxdWVJdGVtczogdHJ1ZSxcbiAgICBpdGVtc1xuICB9O1xuICBpZiAoZGVmLm1pblNpemUpIHtcbiAgICBzZXRSZXNwb25zZVZhbHVlQW5kRXJyb3JzKHNjaGVtYSwgXCJtaW5JdGVtc1wiLCBkZWYubWluU2l6ZS52YWx1ZSwgZGVmLm1pblNpemUubWVzc2FnZSwgcmVmcyk7XG4gIH1cbiAgaWYgKGRlZi5tYXhTaXplKSB7XG4gICAgc2V0UmVzcG9uc2VWYWx1ZUFuZEVycm9ycyhzY2hlbWEsIFwibWF4SXRlbXNcIiwgZGVmLm1heFNpemUudmFsdWUsIGRlZi5tYXhTaXplLm1lc3NhZ2UsIHJlZnMpO1xuICB9XG4gIHJldHVybiBzY2hlbWE7XG59XG5cbi8vIG5vZGVfbW9kdWxlcy96b2QtdG8tanNvbi1zY2hlbWEvZGlzdC9lc20vcGFyc2Vycy90dXBsZS5qc1xuZnVuY3Rpb24gcGFyc2VUdXBsZURlZihkZWYsIHJlZnMpIHtcbiAgaWYgKGRlZi5yZXN0KSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6IFwiYXJyYXlcIixcbiAgICAgIG1pbkl0ZW1zOiBkZWYuaXRlbXMubGVuZ3RoLFxuICAgICAgaXRlbXM6IGRlZi5pdGVtcy5tYXAoKHgsIGkpID0+IHBhcnNlRGVmKHguX2RlZiwge1xuICAgICAgICAuLi5yZWZzLFxuICAgICAgICBjdXJyZW50UGF0aDogWy4uLnJlZnMuY3VycmVudFBhdGgsIFwiaXRlbXNcIiwgYCR7aX1gXVxuICAgICAgfSkpLnJlZHVjZSgoYWNjLCB4KSA9PiB4ID09PSB2b2lkIDAgPyBhY2MgOiBbLi4uYWNjLCB4XSwgW10pLFxuICAgICAgYWRkaXRpb25hbEl0ZW1zOiBwYXJzZURlZihkZWYucmVzdC5fZGVmLCB7XG4gICAgICAgIC4uLnJlZnMsXG4gICAgICAgIGN1cnJlbnRQYXRoOiBbLi4ucmVmcy5jdXJyZW50UGF0aCwgXCJhZGRpdGlvbmFsSXRlbXNcIl1cbiAgICAgIH0pXG4gICAgfTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogXCJhcnJheVwiLFxuICAgICAgbWluSXRlbXM6IGRlZi5pdGVtcy5sZW5ndGgsXG4gICAgICBtYXhJdGVtczogZGVmLml0ZW1zLmxlbmd0aCxcbiAgICAgIGl0ZW1zOiBkZWYuaXRlbXMubWFwKCh4LCBpKSA9PiBwYXJzZURlZih4Ll9kZWYsIHtcbiAgICAgICAgLi4ucmVmcyxcbiAgICAgICAgY3VycmVudFBhdGg6IFsuLi5yZWZzLmN1cnJlbnRQYXRoLCBcIml0ZW1zXCIsIGAke2l9YF1cbiAgICAgIH0pKS5yZWR1Y2UoKGFjYywgeCkgPT4geCA9PT0gdm9pZCAwID8gYWNjIDogWy4uLmFjYywgeF0sIFtdKVxuICAgIH07XG4gIH1cbn1cblxuLy8gbm9kZV9tb2R1bGVzL3pvZC10by1qc29uLXNjaGVtYS9kaXN0L2VzbS9wYXJzZXJzL3VuZGVmaW5lZC5qc1xuZnVuY3Rpb24gcGFyc2VVbmRlZmluZWREZWYoKSB7XG4gIHJldHVybiB7XG4gICAgbm90OiB7fVxuICB9O1xufVxuXG4vLyBub2RlX21vZHVsZXMvem9kLXRvLWpzb24tc2NoZW1hL2Rpc3QvZXNtL3BhcnNlcnMvdW5rbm93bi5qc1xuZnVuY3Rpb24gcGFyc2VVbmtub3duRGVmKCkge1xuICByZXR1cm4ge307XG59XG5cbi8vIG5vZGVfbW9kdWxlcy96b2QtdG8tanNvbi1zY2hlbWEvZGlzdC9lc20vcGFyc2Vycy9yZWFkb25seS5qc1xudmFyIHBhcnNlUmVhZG9ubHlEZWYgPSAoZGVmLCByZWZzKSA9PiB7XG4gIHJldHVybiBwYXJzZURlZihkZWYuaW5uZXJUeXBlLl9kZWYsIHJlZnMpO1xufTtcblxuLy8gbm9kZV9tb2R1bGVzL3pvZC10by1qc29uLXNjaGVtYS9kaXN0L2VzbS9zZWxlY3RQYXJzZXIuanNcbnZhciBzZWxlY3RQYXJzZXIgPSAoZGVmLCB0eXBlTmFtZSwgcmVmcykgPT4ge1xuICBzd2l0Y2ggKHR5cGVOYW1lKSB7XG4gICAgY2FzZSBab2RGaXJzdFBhcnR5VHlwZUtpbmQuWm9kU3RyaW5nOlxuICAgICAgcmV0dXJuIHBhcnNlU3RyaW5nRGVmKGRlZiwgcmVmcyk7XG4gICAgY2FzZSBab2RGaXJzdFBhcnR5VHlwZUtpbmQuWm9kTnVtYmVyOlxuICAgICAgcmV0dXJuIHBhcnNlTnVtYmVyRGVmKGRlZiwgcmVmcyk7XG4gICAgY2FzZSBab2RGaXJzdFBhcnR5VHlwZUtpbmQuWm9kT2JqZWN0OlxuICAgICAgcmV0dXJuIHBhcnNlT2JqZWN0RGVmKGRlZiwgcmVmcyk7XG4gICAgY2FzZSBab2RGaXJzdFBhcnR5VHlwZUtpbmQuWm9kQmlnSW50OlxuICAgICAgcmV0dXJuIHBhcnNlQmlnaW50RGVmKGRlZiwgcmVmcyk7XG4gICAgY2FzZSBab2RGaXJzdFBhcnR5VHlwZUtpbmQuWm9kQm9vbGVhbjpcbiAgICAgIHJldHVybiBwYXJzZUJvb2xlYW5EZWYoKTtcbiAgICBjYXNlIFpvZEZpcnN0UGFydHlUeXBlS2luZC5ab2REYXRlOlxuICAgICAgcmV0dXJuIHBhcnNlRGF0ZURlZihkZWYsIHJlZnMpO1xuICAgIGNhc2UgWm9kRmlyc3RQYXJ0eVR5cGVLaW5kLlpvZFVuZGVmaW5lZDpcbiAgICAgIHJldHVybiBwYXJzZVVuZGVmaW5lZERlZigpO1xuICAgIGNhc2UgWm9kRmlyc3RQYXJ0eVR5cGVLaW5kLlpvZE51bGw6XG4gICAgICByZXR1cm4gcGFyc2VOdWxsRGVmKHJlZnMpO1xuICAgIGNhc2UgWm9kRmlyc3RQYXJ0eVR5cGVLaW5kLlpvZEFycmF5OlxuICAgICAgcmV0dXJuIHBhcnNlQXJyYXlEZWYoZGVmLCByZWZzKTtcbiAgICBjYXNlIFpvZEZpcnN0UGFydHlUeXBlS2luZC5ab2RVbmlvbjpcbiAgICBjYXNlIFpvZEZpcnN0UGFydHlUeXBlS2luZC5ab2REaXNjcmltaW5hdGVkVW5pb246XG4gICAgICByZXR1cm4gcGFyc2VVbmlvbkRlZihkZWYsIHJlZnMpO1xuICAgIGNhc2UgWm9kRmlyc3RQYXJ0eVR5cGVLaW5kLlpvZEludGVyc2VjdGlvbjpcbiAgICAgIHJldHVybiBwYXJzZUludGVyc2VjdGlvbkRlZihkZWYsIHJlZnMpO1xuICAgIGNhc2UgWm9kRmlyc3RQYXJ0eVR5cGVLaW5kLlpvZFR1cGxlOlxuICAgICAgcmV0dXJuIHBhcnNlVHVwbGVEZWYoZGVmLCByZWZzKTtcbiAgICBjYXNlIFpvZEZpcnN0UGFydHlUeXBlS2luZC5ab2RSZWNvcmQ6XG4gICAgICByZXR1cm4gcGFyc2VSZWNvcmREZWYoZGVmLCByZWZzKTtcbiAgICBjYXNlIFpvZEZpcnN0UGFydHlUeXBlS2luZC5ab2RMaXRlcmFsOlxuICAgICAgcmV0dXJuIHBhcnNlTGl0ZXJhbERlZihkZWYsIHJlZnMpO1xuICAgIGNhc2UgWm9kRmlyc3RQYXJ0eVR5cGVLaW5kLlpvZEVudW06XG4gICAgICByZXR1cm4gcGFyc2VFbnVtRGVmKGRlZik7XG4gICAgY2FzZSBab2RGaXJzdFBhcnR5VHlwZUtpbmQuWm9kTmF0aXZlRW51bTpcbiAgICAgIHJldHVybiBwYXJzZU5hdGl2ZUVudW1EZWYoZGVmKTtcbiAgICBjYXNlIFpvZEZpcnN0UGFydHlUeXBlS2luZC5ab2ROdWxsYWJsZTpcbiAgICAgIHJldHVybiBwYXJzZU51bGxhYmxlRGVmKGRlZiwgcmVmcyk7XG4gICAgY2FzZSBab2RGaXJzdFBhcnR5VHlwZUtpbmQuWm9kT3B0aW9uYWw6XG4gICAgICByZXR1cm4gcGFyc2VPcHRpb25hbERlZihkZWYsIHJlZnMpO1xuICAgIGNhc2UgWm9kRmlyc3RQYXJ0eVR5cGVLaW5kLlpvZE1hcDpcbiAgICAgIHJldHVybiBwYXJzZU1hcERlZihkZWYsIHJlZnMpO1xuICAgIGNhc2UgWm9kRmlyc3RQYXJ0eVR5cGVLaW5kLlpvZFNldDpcbiAgICAgIHJldHVybiBwYXJzZVNldERlZihkZWYsIHJlZnMpO1xuICAgIGNhc2UgWm9kRmlyc3RQYXJ0eVR5cGVLaW5kLlpvZExhenk6XG4gICAgICByZXR1cm4gKCkgPT4gZGVmLmdldHRlcigpLl9kZWY7XG4gICAgY2FzZSBab2RGaXJzdFBhcnR5VHlwZUtpbmQuWm9kUHJvbWlzZTpcbiAgICAgIHJldHVybiBwYXJzZVByb21pc2VEZWYoZGVmLCByZWZzKTtcbiAgICBjYXNlIFpvZEZpcnN0UGFydHlUeXBlS2luZC5ab2ROYU46XG4gICAgY2FzZSBab2RGaXJzdFBhcnR5VHlwZUtpbmQuWm9kTmV2ZXI6XG4gICAgICByZXR1cm4gcGFyc2VOZXZlckRlZigpO1xuICAgIGNhc2UgWm9kRmlyc3RQYXJ0eVR5cGVLaW5kLlpvZEVmZmVjdHM6XG4gICAgICByZXR1cm4gcGFyc2VFZmZlY3RzRGVmKGRlZiwgcmVmcyk7XG4gICAgY2FzZSBab2RGaXJzdFBhcnR5VHlwZUtpbmQuWm9kQW55OlxuICAgICAgcmV0dXJuIHBhcnNlQW55RGVmKCk7XG4gICAgY2FzZSBab2RGaXJzdFBhcnR5VHlwZUtpbmQuWm9kVW5rbm93bjpcbiAgICAgIHJldHVybiBwYXJzZVVua25vd25EZWYoKTtcbiAgICBjYXNlIFpvZEZpcnN0UGFydHlUeXBlS2luZC5ab2REZWZhdWx0OlxuICAgICAgcmV0dXJuIHBhcnNlRGVmYXVsdERlZihkZWYsIHJlZnMpO1xuICAgIGNhc2UgWm9kRmlyc3RQYXJ0eVR5cGVLaW5kLlpvZEJyYW5kZWQ6XG4gICAgICByZXR1cm4gcGFyc2VCcmFuZGVkRGVmKGRlZiwgcmVmcyk7XG4gICAgY2FzZSBab2RGaXJzdFBhcnR5VHlwZUtpbmQuWm9kUmVhZG9ubHk6XG4gICAgICByZXR1cm4gcGFyc2VSZWFkb25seURlZihkZWYsIHJlZnMpO1xuICAgIGNhc2UgWm9kRmlyc3RQYXJ0eVR5cGVLaW5kLlpvZENhdGNoOlxuICAgICAgcmV0dXJuIHBhcnNlQ2F0Y2hEZWYoZGVmLCByZWZzKTtcbiAgICBjYXNlIFpvZEZpcnN0UGFydHlUeXBlS2luZC5ab2RQaXBlbGluZTpcbiAgICAgIHJldHVybiBwYXJzZVBpcGVsaW5lRGVmKGRlZiwgcmVmcyk7XG4gICAgY2FzZSBab2RGaXJzdFBhcnR5VHlwZUtpbmQuWm9kRnVuY3Rpb246XG4gICAgY2FzZSBab2RGaXJzdFBhcnR5VHlwZUtpbmQuWm9kVm9pZDpcbiAgICBjYXNlIFpvZEZpcnN0UGFydHlUeXBlS2luZC5ab2RTeW1ib2w6XG4gICAgICByZXR1cm4gdm9pZCAwO1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gLyogQF9fUFVSRV9fICovICgoXzIpID0+IHZvaWQgMCkodHlwZU5hbWUpO1xuICB9XG59O1xuXG4vLyBub2RlX21vZHVsZXMvem9kLXRvLWpzb24tc2NoZW1hL2Rpc3QvZXNtL3BhcnNlRGVmLmpzXG5mdW5jdGlvbiBwYXJzZURlZihkZWYsIHJlZnMsIGZvcmNlUmVzb2x1dGlvbiA9IGZhbHNlKSB7XG4gIGNvbnN0IHNlZW5JdGVtID0gcmVmcy5zZWVuLmdldChkZWYpO1xuICBpZiAocmVmcy5vdmVycmlkZSkge1xuICAgIGNvbnN0IG92ZXJyaWRlUmVzdWx0ID0gcmVmcy5vdmVycmlkZT8uKGRlZiwgcmVmcywgc2Vlbkl0ZW0sIGZvcmNlUmVzb2x1dGlvbik7XG4gICAgaWYgKG92ZXJyaWRlUmVzdWx0ICE9PSBpZ25vcmVPdmVycmlkZSkge1xuICAgICAgcmV0dXJuIG92ZXJyaWRlUmVzdWx0O1xuICAgIH1cbiAgfVxuICBpZiAoc2Vlbkl0ZW0gJiYgIWZvcmNlUmVzb2x1dGlvbikge1xuICAgIGNvbnN0IHNlZW5TY2hlbWEgPSBnZXQkcmVmKHNlZW5JdGVtLCByZWZzKTtcbiAgICBpZiAoc2VlblNjaGVtYSAhPT0gdm9pZCAwKSB7XG4gICAgICByZXR1cm4gc2VlblNjaGVtYTtcbiAgICB9XG4gIH1cbiAgY29uc3QgbmV3SXRlbSA9IHsgZGVmLCBwYXRoOiByZWZzLmN1cnJlbnRQYXRoLCBqc29uU2NoZW1hOiB2b2lkIDAgfTtcbiAgcmVmcy5zZWVuLnNldChkZWYsIG5ld0l0ZW0pO1xuICBjb25zdCBqc29uU2NoZW1hT3JHZXR0ZXIgPSBzZWxlY3RQYXJzZXIoZGVmLCBkZWYudHlwZU5hbWUsIHJlZnMpO1xuICBjb25zdCBqc29uU2NoZW1hID0gdHlwZW9mIGpzb25TY2hlbWFPckdldHRlciA9PT0gXCJmdW5jdGlvblwiID8gcGFyc2VEZWYoanNvblNjaGVtYU9yR2V0dGVyKCksIHJlZnMpIDoganNvblNjaGVtYU9yR2V0dGVyO1xuICBpZiAoanNvblNjaGVtYSkge1xuICAgIGFkZE1ldGEoZGVmLCByZWZzLCBqc29uU2NoZW1hKTtcbiAgfVxuICBuZXdJdGVtLmpzb25TY2hlbWEgPSBqc29uU2NoZW1hO1xuICByZXR1cm4ganNvblNjaGVtYTtcbn1cbnZhciBnZXQkcmVmID0gKGl0ZW0sIHJlZnMpID0+IHtcbiAgc3dpdGNoIChyZWZzLiRyZWZTdHJhdGVneSkge1xuICAgIGNhc2UgXCJyb290XCI6XG4gICAgICByZXR1cm4geyAkcmVmOiBpdGVtLnBhdGguam9pbihcIi9cIikgfTtcbiAgICBjYXNlIFwicmVsYXRpdmVcIjpcbiAgICAgIHJldHVybiB7ICRyZWY6IGdldFJlbGF0aXZlUGF0aChyZWZzLmN1cnJlbnRQYXRoLCBpdGVtLnBhdGgpIH07XG4gICAgY2FzZSBcIm5vbmVcIjpcbiAgICBjYXNlIFwic2VlblwiOiB7XG4gICAgICBpZiAoaXRlbS5wYXRoLmxlbmd0aCA8IHJlZnMuY3VycmVudFBhdGgubGVuZ3RoICYmIGl0ZW0ucGF0aC5ldmVyeSgodmFsdWUsIGluZGV4KSA9PiByZWZzLmN1cnJlbnRQYXRoW2luZGV4XSA9PT0gdmFsdWUpKSB7XG4gICAgICAgIGNvbnNvbGUud2FybihgUmVjdXJzaXZlIHJlZmVyZW5jZSBkZXRlY3RlZCBhdCAke3JlZnMuY3VycmVudFBhdGguam9pbihcIi9cIil9ISBEZWZhdWx0aW5nIHRvIGFueWApO1xuICAgICAgICByZXR1cm4ge307XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVmcy4kcmVmU3RyYXRlZ3kgPT09IFwic2VlblwiID8ge30gOiB2b2lkIDA7XG4gICAgfVxuICB9XG59O1xudmFyIGdldFJlbGF0aXZlUGF0aCA9IChwYXRoQSwgcGF0aEIpID0+IHtcbiAgbGV0IGkgPSAwO1xuICBmb3IgKDsgaSA8IHBhdGhBLmxlbmd0aCAmJiBpIDwgcGF0aEIubGVuZ3RoOyBpKyspIHtcbiAgICBpZiAocGF0aEFbaV0gIT09IHBhdGhCW2ldKVxuICAgICAgYnJlYWs7XG4gIH1cbiAgcmV0dXJuIFsocGF0aEEubGVuZ3RoIC0gaSkudG9TdHJpbmcoKSwgLi4ucGF0aEIuc2xpY2UoaSldLmpvaW4oXCIvXCIpO1xufTtcbnZhciBhZGRNZXRhID0gKGRlZiwgcmVmcywganNvblNjaGVtYSkgPT4ge1xuICBpZiAoZGVmLmRlc2NyaXB0aW9uKSB7XG4gICAganNvblNjaGVtYS5kZXNjcmlwdGlvbiA9IGRlZi5kZXNjcmlwdGlvbjtcbiAgICBpZiAocmVmcy5tYXJrZG93bkRlc2NyaXB0aW9uKSB7XG4gICAgICBqc29uU2NoZW1hLm1hcmtkb3duRGVzY3JpcHRpb24gPSBkZWYuZGVzY3JpcHRpb247XG4gICAgfVxuICB9XG4gIHJldHVybiBqc29uU2NoZW1hO1xufTtcblxuLy8gbm9kZV9tb2R1bGVzL3pvZC10by1qc29uLXNjaGVtYS9kaXN0L2VzbS96b2RUb0pzb25TY2hlbWEuanNcbnZhciB6b2RUb0pzb25TY2hlbWEgPSAoc2NoZW1hLCBvcHRpb25zKSA9PiB7XG4gIGNvbnN0IHJlZnMgPSBnZXRSZWZzKG9wdGlvbnMpO1xuICBjb25zdCBkZWZpbml0aW9ucyA9IHR5cGVvZiBvcHRpb25zID09PSBcIm9iamVjdFwiICYmIG9wdGlvbnMuZGVmaW5pdGlvbnMgPyBPYmplY3QuZW50cmllcyhvcHRpb25zLmRlZmluaXRpb25zKS5yZWR1Y2UoKGFjYywgW25hbWUyLCBzY2hlbWEyXSkgPT4gKHtcbiAgICAuLi5hY2MsXG4gICAgW25hbWUyXTogcGFyc2VEZWYoc2NoZW1hMi5fZGVmLCB7XG4gICAgICAuLi5yZWZzLFxuICAgICAgY3VycmVudFBhdGg6IFsuLi5yZWZzLmJhc2VQYXRoLCByZWZzLmRlZmluaXRpb25QYXRoLCBuYW1lMl1cbiAgICB9LCB0cnVlKSA/PyB7fVxuICB9KSwge30pIDogdm9pZCAwO1xuICBjb25zdCBuYW1lID0gdHlwZW9mIG9wdGlvbnMgPT09IFwic3RyaW5nXCIgPyBvcHRpb25zIDogb3B0aW9ucz8ubmFtZVN0cmF0ZWd5ID09PSBcInRpdGxlXCIgPyB2b2lkIDAgOiBvcHRpb25zPy5uYW1lO1xuICBjb25zdCBtYWluID0gcGFyc2VEZWYoc2NoZW1hLl9kZWYsIG5hbWUgPT09IHZvaWQgMCA/IHJlZnMgOiB7XG4gICAgLi4ucmVmcyxcbiAgICBjdXJyZW50UGF0aDogWy4uLnJlZnMuYmFzZVBhdGgsIHJlZnMuZGVmaW5pdGlvblBhdGgsIG5hbWVdXG4gIH0sIGZhbHNlKSA/PyB7fTtcbiAgY29uc3QgdGl0bGUgPSB0eXBlb2Ygb3B0aW9ucyA9PT0gXCJvYmplY3RcIiAmJiBvcHRpb25zLm5hbWUgIT09IHZvaWQgMCAmJiBvcHRpb25zLm5hbWVTdHJhdGVneSA9PT0gXCJ0aXRsZVwiID8gb3B0aW9ucy5uYW1lIDogdm9pZCAwO1xuICBpZiAodGl0bGUgIT09IHZvaWQgMCkge1xuICAgIG1haW4udGl0bGUgPSB0aXRsZTtcbiAgfVxuICBjb25zdCBjb21iaW5lZCA9IG5hbWUgPT09IHZvaWQgMCA/IGRlZmluaXRpb25zID8ge1xuICAgIC4uLm1haW4sXG4gICAgW3JlZnMuZGVmaW5pdGlvblBhdGhdOiBkZWZpbml0aW9uc1xuICB9IDogbWFpbiA6IHtcbiAgICAkcmVmOiBbXG4gICAgICAuLi5yZWZzLiRyZWZTdHJhdGVneSA9PT0gXCJyZWxhdGl2ZVwiID8gW10gOiByZWZzLmJhc2VQYXRoLFxuICAgICAgcmVmcy5kZWZpbml0aW9uUGF0aCxcbiAgICAgIG5hbWVcbiAgICBdLmpvaW4oXCIvXCIpLFxuICAgIFtyZWZzLmRlZmluaXRpb25QYXRoXToge1xuICAgICAgLi4uZGVmaW5pdGlvbnMsXG4gICAgICBbbmFtZV06IG1haW5cbiAgICB9XG4gIH07XG4gIGlmIChyZWZzLnRhcmdldCA9PT0gXCJqc29uU2NoZW1hN1wiKSB7XG4gICAgY29tYmluZWQuJHNjaGVtYSA9IFwiaHR0cDovL2pzb24tc2NoZW1hLm9yZy9kcmFmdC0wNy9zY2hlbWEjXCI7XG4gIH0gZWxzZSBpZiAocmVmcy50YXJnZXQgPT09IFwianNvblNjaGVtYTIwMTktMDlcIiB8fCByZWZzLnRhcmdldCA9PT0gXCJvcGVuQWlcIikge1xuICAgIGNvbWJpbmVkLiRzY2hlbWEgPSBcImh0dHBzOi8vanNvbi1zY2hlbWEub3JnL2RyYWZ0LzIwMTktMDkvc2NoZW1hI1wiO1xuICB9XG4gIGlmIChyZWZzLnRhcmdldCA9PT0gXCJvcGVuQWlcIiAmJiAoXCJhbnlPZlwiIGluIGNvbWJpbmVkIHx8IFwib25lT2ZcIiBpbiBjb21iaW5lZCB8fCBcImFsbE9mXCIgaW4gY29tYmluZWQgfHwgXCJ0eXBlXCIgaW4gY29tYmluZWQgJiYgQXJyYXkuaXNBcnJheShjb21iaW5lZC50eXBlKSkpIHtcbiAgICBjb25zb2xlLndhcm4oXCJXYXJuaW5nOiBPcGVuQUkgbWF5IG5vdCBzdXBwb3J0IHNjaGVtYXMgd2l0aCB1bmlvbnMgYXMgcm9vdHMhIFRyeSB3cmFwcGluZyBpdCBpbiBhbiBvYmplY3QgcHJvcGVydHkuXCIpO1xuICB9XG4gIHJldHVybiBjb21iaW5lZDtcbn07XG5cbi8vIG5vZGVfbW9kdWxlcy9Ac21pdGhlcnkvc2RrL2Rpc3Qvc2hhcmVkL2NvbmZpZy5qc1xuZnVuY3Rpb24gcGFyc2VFeHByZXNzUmVxdWVzdENvbmZpZyhyZXEpIHtcbiAgcmV0dXJuIEpTT04ucGFyc2UoQnVmZmVyLmZyb20ocmVxLnF1ZXJ5LmNvbmZpZywgXCJiYXNlNjRcIikudG9TdHJpbmcoKSk7XG59XG5mdW5jdGlvbiBwYXJzZUFuZFZhbGlkYXRlQ29uZmlnKHJlcSwgc2NoZW1hKSB7XG4gIGxldCBjb25maWcgPSB7fTtcbiAgaWYgKHJlcS5xdWVyeS5jb25maWcpIHtcbiAgICB0cnkge1xuICAgICAgY29uZmlnID0gcGFyc2VFeHByZXNzUmVxdWVzdENvbmZpZyhyZXEpO1xuICAgIH0gY2F0Y2ggKGNvbmZpZ0Vycm9yKSB7XG4gICAgICByZXR1cm4gZXJyKHtcbiAgICAgICAgdGl0bGU6IFwiSW52YWxpZCBjb25maWcgcGFyYW1ldGVyXCIsXG4gICAgICAgIHN0YXR1czogNDAwLFxuICAgICAgICBkZXRhaWw6IFwiRmFpbGVkIHRvIHBhcnNlIGNvbmZpZyBwYXJhbWV0ZXJcIixcbiAgICAgICAgaW5zdGFuY2U6IHJlcS5vcmlnaW5hbFVybFxuICAgICAgfSk7XG4gICAgfVxuICB9XG4gIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKHJlcS5xdWVyeSkpIHtcbiAgICBpZiAoa2V5ID09PSBcImNvbmZpZ1wiIHx8IGtleSA9PT0gXCJhcGlfa2V5XCIgfHwga2V5ID09PSBcInByb2ZpbGVcIilcbiAgICAgIGNvbnRpbnVlO1xuICAgIGNvbnN0IHBhdGhQYXJ0cyA9IGtleS5zcGxpdChcIi5cIik7XG4gICAgY29uc3QgcmF3VmFsdWUgPSBBcnJheS5pc0FycmF5KHZhbHVlKSA/IHZhbHVlWzBdIDogdmFsdWU7XG4gICAgaWYgKHR5cGVvZiByYXdWYWx1ZSAhPT0gXCJzdHJpbmdcIilcbiAgICAgIGNvbnRpbnVlO1xuICAgIGxldCBwYXJzZWRWYWx1ZSA9IHJhd1ZhbHVlO1xuICAgIHRyeSB7XG4gICAgICBwYXJzZWRWYWx1ZSA9IEpTT04ucGFyc2UocmF3VmFsdWUpO1xuICAgIH0gY2F0Y2gge1xuICAgIH1cbiAgICBpbXBvcnRfbG9kYXNoLmRlZmF1bHQuc2V0KGNvbmZpZywgcGF0aFBhcnRzLCBwYXJzZWRWYWx1ZSk7XG4gIH1cbiAgaWYgKHNjaGVtYSkge1xuICAgIGNvbnN0IHJlc3VsdCA9IHNjaGVtYS5zYWZlUGFyc2UoY29uZmlnKTtcbiAgICBpZiAoIXJlc3VsdC5zdWNjZXNzKSB7XG4gICAgICBjb25zdCBqc29uU2NoZW1hID0gem9kVG9Kc29uU2NoZW1hKHNjaGVtYSk7XG4gICAgICBjb25zdCBlcnJvcnMgPSByZXN1bHQuZXJyb3IuaXNzdWVzLm1hcCgoaXNzdWUpID0+IHtcbiAgICAgICAgbGV0IHJlY2VpdmVkID0gY29uZmlnO1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBvZiBpc3N1ZS5wYXRoKSB7XG4gICAgICAgICAgaWYgKHJlY2VpdmVkICYmIHR5cGVvZiByZWNlaXZlZCA9PT0gXCJvYmplY3RcIiAmJiBrZXkgaW4gcmVjZWl2ZWQpIHtcbiAgICAgICAgICAgIHJlY2VpdmVkID0gcmVjZWl2ZWRba2V5XTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmVjZWl2ZWQgPSB2b2lkIDA7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBwYXJhbTogaXNzdWUucGF0aC5qb2luKFwiLlwiKSB8fCBcInJvb3RcIixcbiAgICAgICAgICBwb2ludGVyOiBgLyR7aXNzdWUucGF0aC5qb2luKFwiL1wiKX1gLFxuICAgICAgICAgIHJlYXNvbjogaXNzdWUubWVzc2FnZSxcbiAgICAgICAgICByZWNlaXZlZFxuICAgICAgICB9O1xuICAgICAgfSk7XG4gICAgICByZXR1cm4gZXJyKHtcbiAgICAgICAgdGl0bGU6IFwiSW52YWxpZCBjb25maWd1cmF0aW9uIHBhcmFtZXRlcnNcIixcbiAgICAgICAgc3RhdHVzOiA0MjIsXG4gICAgICAgIGRldGFpbDogXCJPbmUgb3IgbW9yZSBjb25maWcgcGFyYW1ldGVycyBhcmUgaW52YWxpZC5cIixcbiAgICAgICAgaW5zdGFuY2U6IHJlcS5vcmlnaW5hbFVybCxcbiAgICAgICAgY29uZmlnU2NoZW1hOiBqc29uU2NoZW1hLFxuICAgICAgICBlcnJvcnNcbiAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gb2socmVzdWx0LmRhdGEpO1xuICB9XG4gIHJldHVybiBvayhjb25maWcpO1xufVxuXG4vLyBub2RlX21vZHVsZXMvQHNtaXRoZXJ5L3Nkay9kaXN0L3NlcnZlci9zZXNzaW9uLmpzXG52YXIgY3JlYXRlTFJVU3RvcmUgPSAobWF4ID0gMWUzKSA9PiB7XG4gIGNvbnN0IGNhY2hlID0gLyogQF9fUFVSRV9fICovIG5ldyBNYXAoKTtcbiAgcmV0dXJuIHtcbiAgICBnZXQ6IChpZCkgPT4ge1xuICAgICAgY29uc3QgdCA9IGNhY2hlLmdldChpZCk7XG4gICAgICBpZiAoIXQpXG4gICAgICAgIHJldHVybiB2b2lkIDA7XG4gICAgICBjYWNoZS5kZWxldGUoaWQpO1xuICAgICAgY2FjaGUuc2V0KGlkLCB0KTtcbiAgICAgIHJldHVybiB0O1xuICAgIH0sXG4gICAgc2V0OiAoaWQsIHRyYW5zcG9ydCkgPT4ge1xuICAgICAgaWYgKGNhY2hlLmhhcyhpZCkpIHtcbiAgICAgICAgY2FjaGUuZGVsZXRlKGlkKTtcbiAgICAgIH0gZWxzZSBpZiAoY2FjaGUuc2l6ZSA+PSBtYXgpIHtcbiAgICAgICAgY29uc3QgW2xydUlkLCBscnVUcmFuc3BvcnRdID0gY2FjaGUuZW50cmllcygpLm5leHQoKS52YWx1ZTtcbiAgICAgICAgbHJ1VHJhbnNwb3J0LmNsb3NlPy4oKTtcbiAgICAgICAgY2FjaGUuZGVsZXRlKGxydUlkKTtcbiAgICAgIH1cbiAgICAgIGNhY2hlLnNldChpZCwgdHJhbnNwb3J0KTtcbiAgICB9LFxuICAgIGRlbGV0ZTogKGlkKSA9PiBjYWNoZS5kZWxldGUoaWQpXG4gIH07XG59O1xuXG4vLyBub2RlX21vZHVsZXMvQHNtaXRoZXJ5L3Nkay9kaXN0L3NlcnZlci9zdGF0ZWZ1bC5qc1xuZnVuY3Rpb24gY3JlYXRlU3RhdGVmdWxTZXJ2ZXIoY3JlYXRlTWNwU2VydmVyLCBvcHRpb25zKSB7XG4gIGNvbnN0IGFwcCA9IG9wdGlvbnM/LmFwcCA/PyAoMCwgaW1wb3J0X2V4cHJlc3MuZGVmYXVsdCkoKTtcbiAgYXBwLnVzZShcIi9tY3BcIiwgaW1wb3J0X2V4cHJlc3MuZGVmYXVsdC5qc29uKCkpO1xuICBjb25zdCBzZXNzaW9uU3RvcmUgPSBvcHRpb25zPy5zZXNzaW9uU3RvcmUgPz8gY3JlYXRlTFJVU3RvcmUoKTtcbiAgYXBwLnBvc3QoXCIvbWNwXCIsIGFzeW5jIChyZXEsIHJlcykgPT4ge1xuICAgIGNvbnN0IHNlc3Npb25JZCA9IHJlcS5oZWFkZXJzW1wibWNwLXNlc3Npb24taWRcIl07XG4gICAgbGV0IHRyYW5zcG9ydDtcbiAgICBpZiAoc2Vzc2lvbklkICYmIHNlc3Npb25TdG9yZS5nZXQoc2Vzc2lvbklkKSkge1xuICAgICAgdHJhbnNwb3J0ID0gc2Vzc2lvblN0b3JlLmdldChzZXNzaW9uSWQpO1xuICAgIH0gZWxzZSBpZiAoIXNlc3Npb25JZCAmJiBpc0luaXRpYWxpemVSZXF1ZXN0KHJlcS5ib2R5KSkge1xuICAgICAgY29uc3QgbmV3U2Vzc2lvbklkID0gKDAsIGltcG9ydF9ub2RlX2NyeXB0bzIucmFuZG9tVVVJRCkoKTtcbiAgICAgIHRyYW5zcG9ydCA9IG5ldyBTdHJlYW1hYmxlSFRUUFNlcnZlclRyYW5zcG9ydCh7XG4gICAgICAgIHNlc3Npb25JZEdlbmVyYXRvcjogKCkgPT4gbmV3U2Vzc2lvbklkLFxuICAgICAgICBvbnNlc3Npb25pbml0aWFsaXplZDogKHNlc3Npb25JZDIpID0+IHtcbiAgICAgICAgICBzZXNzaW9uU3RvcmUuc2V0KHNlc3Npb25JZDIsIHRyYW5zcG9ydCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgdHJhbnNwb3J0Lm9uY2xvc2UgPSAoKSA9PiB7XG4gICAgICAgIGlmICh0cmFuc3BvcnQuc2Vzc2lvbklkKSB7XG4gICAgICAgICAgc2Vzc2lvblN0b3JlLmRlbGV0ZT8uKHRyYW5zcG9ydC5zZXNzaW9uSWQpO1xuICAgICAgICB9XG4gICAgICB9O1xuICAgICAgY29uc3QgY29uZmlnUmVzdWx0ID0gcGFyc2VBbmRWYWxpZGF0ZUNvbmZpZyhyZXEsIG9wdGlvbnM/LnNjaGVtYSk7XG4gICAgICBpZiAoIWNvbmZpZ1Jlc3VsdC5vaykge1xuICAgICAgICBjb25zdCBzdGF0dXMgPSBjb25maWdSZXN1bHQuZXJyb3Iuc3RhdHVzIHx8IDQwMDtcbiAgICAgICAgcmVzLnN0YXR1cyhzdGF0dXMpLmpzb24oY29uZmlnUmVzdWx0LmVycm9yKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgY29uc3QgY29uZmlnID0gY29uZmlnUmVzdWx0LnZhbHVlO1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3Qgc2VydmVyID0gY3JlYXRlTWNwU2VydmVyKHtcbiAgICAgICAgICBzZXNzaW9uSWQ6IG5ld1Nlc3Npb25JZCxcbiAgICAgICAgICBjb25maWdcbiAgICAgICAgfSk7XG4gICAgICAgIGF3YWl0IHNlcnZlci5jb25uZWN0KHRyYW5zcG9ydCk7XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBjb25zb2xlLmVycm9yKFwiRXJyb3IgaW5pdGlhbGl6aW5nIHNlcnZlcjpcIiwgZXJyb3IpO1xuICAgICAgICByZXMuc3RhdHVzKDUwMCkuanNvbih7XG4gICAgICAgICAganNvbnJwYzogXCIyLjBcIixcbiAgICAgICAgICBlcnJvcjoge1xuICAgICAgICAgICAgY29kZTogLTMyNjAzLFxuICAgICAgICAgICAgbWVzc2FnZTogXCJFcnJvciBpbml0aWFsaXppbmcgc2VydmVyLlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBpZDogbnVsbFxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICByZXMuc3RhdHVzKDQwMCkuanNvbih7XG4gICAgICAgIGpzb25ycGM6IFwiMi4wXCIsXG4gICAgICAgIGVycm9yOiB7XG4gICAgICAgICAgY29kZTogLTMyZTMsXG4gICAgICAgICAgbWVzc2FnZTogXCJTZXNzaW9uIG5vdCBmb3VuZCBvciBleHBpcmVkXCJcbiAgICAgICAgfSxcbiAgICAgICAgaWQ6IG51bGxcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBhd2FpdCB0cmFuc3BvcnQuaGFuZGxlUmVxdWVzdChyZXEsIHJlcywgcmVxLmJvZHkpO1xuICB9KTtcbiAgYXBwLmdldChcIi8ud2VsbC1rbm93bi9tY3AtY29uZmlnXCIsIChyZXEsIHJlcykgPT4ge1xuICAgIHJlcy5zZXQoXCJDb250ZW50LVR5cGVcIiwgXCJhcHBsaWNhdGlvbi9zY2hlbWEranNvbjsgY2hhcnNldD11dGYtOFwiKTtcbiAgICBjb25zdCBiYXNlU2NoZW1hID0gb3B0aW9ucz8uc2NoZW1hID8gem9kVG9Kc29uU2NoZW1hKG9wdGlvbnMuc2NoZW1hKSA6IHtcbiAgICAgIHR5cGU6IFwib2JqZWN0XCIsXG4gICAgICBwcm9wZXJ0aWVzOiB7fSxcbiAgICAgIHJlcXVpcmVkOiBbXVxuICAgIH07XG4gICAgY29uc3QgY29uZmlnU2NoZW1hID0ge1xuICAgICAgJHNjaGVtYTogXCJodHRwczovL2pzb24tc2NoZW1hLm9yZy9kcmFmdC8yMDIwLTEyL3NjaGVtYVwiLFxuICAgICAgJGlkOiBgJHtyZXEucHJvdG9jb2x9Oi8vJHtyZXEuZ2V0KFwiaG9zdFwiKX0vLndlbGwta25vd24vbWNwLWNvbmZpZ2AsXG4gICAgICB0aXRsZTogXCJNQ1AgU2Vzc2lvbiBDb25maWd1cmF0aW9uXCIsXG4gICAgICBkZXNjcmlwdGlvbjogXCJTY2hlbWEgZm9yIHRoZSAvbWNwIGVuZHBvaW50IGNvbmZpZ3VyYXRpb25cIixcbiAgICAgIFwieC1tY3AtdmVyc2lvblwiOiBcIjEuMFwiLFxuICAgICAgXCJ4LXF1ZXJ5LXN0eWxlXCI6IFwiZG90K2JyYWNrZXRcIixcbiAgICAgIC4uLmJhc2VTY2hlbWFcbiAgICB9O1xuICAgIHJlcy5qc29uKGNvbmZpZ1NjaGVtYSk7XG4gIH0pO1xuICBjb25zdCBoYW5kbGVTZXNzaW9uUmVxdWVzdCA9IGFzeW5jIChyZXEsIHJlcykgPT4ge1xuICAgIGNvbnN0IHNlc3Npb25JZCA9IHJlcS5oZWFkZXJzW1wibWNwLXNlc3Npb24taWRcIl07XG4gICAgaWYgKCFzZXNzaW9uSWQgfHwgIXNlc3Npb25TdG9yZS5nZXQoc2Vzc2lvbklkKSkge1xuICAgICAgcmVzLnN0YXR1cyg0MDApLnNlbmQoXCJJbnZhbGlkIG9yIGV4cGlyZWQgc2Vzc2lvbiBJRFwiKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgdHJhbnNwb3J0ID0gc2Vzc2lvblN0b3JlLmdldChzZXNzaW9uSWQpO1xuICAgIGF3YWl0IHRyYW5zcG9ydC5oYW5kbGVSZXF1ZXN0KHJlcSwgcmVzKTtcbiAgfTtcbiAgYXBwLmdldChcIi9tY3BcIiwgaGFuZGxlU2Vzc2lvblJlcXVlc3QpO1xuICBhcHAuZGVsZXRlKFwiL21jcFwiLCBhc3luYyAocmVxLCByZXMpID0+IHtcbiAgICBjb25zdCBzZXNzaW9uSWQgPSByZXEuaGVhZGVyc1tcIm1jcC1zZXNzaW9uLWlkXCJdO1xuICAgIGlmICghc2Vzc2lvbklkKSB7XG4gICAgICByZXMuc3RhdHVzKDQwMCkuanNvbih7XG4gICAgICAgIGpzb25ycGM6IFwiMi4wXCIsXG4gICAgICAgIGVycm9yOiB7XG4gICAgICAgICAgY29kZTogLTMyNjAwLFxuICAgICAgICAgIG1lc3NhZ2U6IFwiTWlzc2luZyBtY3Atc2Vzc2lvbi1pZCBoZWFkZXJcIlxuICAgICAgICB9LFxuICAgICAgICBpZDogbnVsbFxuICAgICAgfSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IHRyYW5zcG9ydCA9IHNlc3Npb25TdG9yZS5nZXQoc2Vzc2lvbklkKTtcbiAgICBpZiAoIXRyYW5zcG9ydCkge1xuICAgICAgcmVzLnN0YXR1cyg0MDQpLmpzb24oe1xuICAgICAgICBqc29ucnBjOiBcIjIuMFwiLFxuICAgICAgICBlcnJvcjoge1xuICAgICAgICAgIGNvZGU6IC0zMmUzLFxuICAgICAgICAgIG1lc3NhZ2U6IFwiU2Vzc2lvbiBub3QgZm91bmQgb3IgZXhwaXJlZFwiXG4gICAgICAgIH0sXG4gICAgICAgIGlkOiBudWxsXG4gICAgICB9KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdHJhbnNwb3J0LmNsb3NlPy4oKTtcbiAgICByZXMuc3RhdHVzKDIwNCkuZW5kKCk7XG4gIH0pO1xuICByZXR1cm4geyBhcHAgfTtcbn1cblxuLy8gc3JjL3J1bnRpbWUvc2h0dHAtYm9vdHN0cmFwLnRzXG52YXIgaW1wb3J0X2NvcnMgPSBfX3RvRVNNKHJlcXVpcmVfbGliNCgpKTtcbnZhciBpbXBvcnRfZXhwcmVzczIgPSBfX3RvRVNNKHJlcXVpcmVfZXhwcmVzczIoKSk7XG52YXIgX2VudHJ5ID0gX190b0VTTShyZXF1aXJlKFwiL2hvbWUvcnVubmVyL3dvcmsvZGRnX3NlYXJjaC9kZGdfc2VhcmNoL3NyYy9pbmRleC50c1wiKSk7XG52YXIgZW50cnkgPSBfZW50cnk7XG5hc3luYyBmdW5jdGlvbiBzdGFydE1jcFNlcnZlcigpIHtcbiAgdHJ5IHtcbiAgICBjb25zdCBwb3J0ID0gcHJvY2Vzcy5lbnYuUE9SVCB8fCBcIjgxODFcIjtcbiAgICBjb25zb2xlLmxvZyhgW3NtaXRoZXJ5XSBTdGFydGluZyBNQ1Agc2VydmVyIG9uIHBvcnQgJHtwb3J0fWApO1xuICAgIGxldCBzZXJ2ZXI7XG4gICAgY29uc3QgYXBwID0gKDAsIGltcG9ydF9leHByZXNzMi5kZWZhdWx0KSgpO1xuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIpIHtcbiAgICAgIGNvbnNvbGUubG9nKGBbc21pdGhlcnldIEluamVjdGluZyBjb3JzIG1pZGRsZXdhcmVgKTtcbiAgICAgIGFwcC51c2UoXG4gICAgICAgICgwLCBpbXBvcnRfY29ycy5kZWZhdWx0KSh7XG4gICAgICAgICAgZXhwb3NlZEhlYWRlcnM6IFtcIm1jcC1zZXNzaW9uLWlkXCJdXG4gICAgICAgIH0pXG4gICAgICApO1xuICAgIH1cbiAgICBpZiAoZW50cnkuZGVmYXVsdCAmJiB0eXBlb2YgZW50cnkuZGVmYXVsdCA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICBjb25zb2xlLmxvZyhgW3NtaXRoZXJ5XSBTZXR0aW5nIHVwIHNlcnZlci5gKTtcbiAgICAgIHNlcnZlciA9IGNyZWF0ZVN0YXRlZnVsU2VydmVyKGVudHJ5LmRlZmF1bHQsIHtcbiAgICAgICAgc2NoZW1hOiBlbnRyeS5jb25maWdTY2hlbWEsXG4gICAgICAgIGFwcFxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgXCJObyB2YWxpZCBzZXJ2ZXIgZXhwb3J0IGZvdW5kLiBQbGVhc2UgZXhwb3J0Olxcbi0gZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oeyBzZXNzaW9uSWQsIGNvbmZpZyB9KSB7IC4uLiB9XCJcbiAgICAgICk7XG4gICAgfVxuICAgIHNlcnZlci5hcHAubGlzdGVuKE51bWJlci5wYXJzZUludChwb3J0KSk7XG4gICAgY29uc29sZS5sb2coYFtzbWl0aGVyeV0gTUNQIHNlcnZlciBzdGFydGVkIHN1Y2Nlc3NmdWxseSBvbiBwb3J0ICR7cG9ydH1gKTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICBjb25zb2xlLmVycm9yKGBbc21pdGhlcnldIEZhaWxlZCB0byBzdGFydCBNQ1Agc2VydmVyOmAsIGVycm9yKTtcbiAgICBwcm9jZXNzLmV4aXQoMSk7XG4gIH1cbn1cbnN0YXJ0TWNwU2VydmVyKCk7XG4vKiEgQnVuZGxlZCBsaWNlbnNlIGluZm9ybWF0aW9uOlxuXG5ieXRlcy9pbmRleC5qczpcbiAgKCohXG4gICAqIGJ5dGVzXG4gICAqIENvcHlyaWdodChjKSAyMDEyLTIwMTQgVEogSG9sb3dheWNodWtcbiAgICogQ29weXJpZ2h0KGMpIDIwMTUgSmVkIFdhdHNvblxuICAgKiBNSVQgTGljZW5zZWRcbiAgICopXG5cbmRlcGQvaW5kZXguanM6XG4gICgqIVxuICAgKiBkZXBkXG4gICAqIENvcHlyaWdodChjKSAyMDE0LTIwMTggRG91Z2xhcyBDaHJpc3RvcGhlciBXaWxzb25cbiAgICogTUlUIExpY2Vuc2VkXG4gICAqKVxuXG5zdGF0dXNlcy9pbmRleC5qczpcbiAgKCohXG4gICAqIHN0YXR1c2VzXG4gICAqIENvcHlyaWdodChjKSAyMDE0IEpvbmF0aGFuIE9uZ1xuICAgKiBDb3B5cmlnaHQoYykgMjAxNiBEb3VnbGFzIENocmlzdG9waGVyIFdpbHNvblxuICAgKiBNSVQgTGljZW5zZWRcbiAgICopXG5cbnRvaWRlbnRpZmllci9pbmRleC5qczpcbiAgKCohXG4gICAqIHRvaWRlbnRpZmllclxuICAgKiBDb3B5cmlnaHQoYykgMjAxNiBEb3VnbGFzIENocmlzdG9waGVyIFdpbHNvblxuICAgKiBNSVQgTGljZW5zZWRcbiAgICopXG5cbmh0dHAtZXJyb3JzL2luZGV4LmpzOlxuICAoKiFcbiAgICogaHR0cC1lcnJvcnNcbiAgICogQ29weXJpZ2h0KGMpIDIwMTQgSm9uYXRoYW4gT25nXG4gICAqIENvcHlyaWdodChjKSAyMDE2IERvdWdsYXMgQ2hyaXN0b3BoZXIgV2lsc29uXG4gICAqIE1JVCBMaWNlbnNlZFxuICAgKilcblxudW5waXBlL2luZGV4LmpzOlxuICAoKiFcbiAgICogdW5waXBlXG4gICAqIENvcHlyaWdodChjKSAyMDE1IERvdWdsYXMgQ2hyaXN0b3BoZXIgV2lsc29uXG4gICAqIE1JVCBMaWNlbnNlZFxuICAgKilcblxucmF3LWJvZHkvaW5kZXguanM6XG4gICgqIVxuICAgKiByYXctYm9keVxuICAgKiBDb3B5cmlnaHQoYykgMjAxMy0yMDE0IEpvbmF0aGFuIE9uZ1xuICAgKiBDb3B5cmlnaHQoYykgMjAxNC0yMDIyIERvdWdsYXMgQ2hyaXN0b3BoZXIgV2lsc29uXG4gICAqIE1JVCBMaWNlbnNlZFxuICAgKilcblxuY29udGVudC10eXBlL2luZGV4LmpzOlxuICAoKiFcbiAgICogY29udGVudC10eXBlXG4gICAqIENvcHlyaWdodChjKSAyMDE1IERvdWdsYXMgQ2hyaXN0b3BoZXIgV2lsc29uXG4gICAqIE1JVCBMaWNlbnNlZFxuICAgKilcblxuZWUtZmlyc3QvaW5kZXguanM6XG4gICgqIVxuICAgKiBlZS1maXJzdFxuICAgKiBDb3B5cmlnaHQoYykgMjAxNCBKb25hdGhhbiBPbmdcbiAgICogTUlUIExpY2Vuc2VkXG4gICAqKVxuXG5vbi1maW5pc2hlZC9pbmRleC5qczpcbiAgKCohXG4gICAqIG9uLWZpbmlzaGVkXG4gICAqIENvcHlyaWdodChjKSAyMDEzIEpvbmF0aGFuIE9uZ1xuICAgKiBDb3B5cmlnaHQoYykgMjAxNCBEb3VnbGFzIENocmlzdG9waGVyIFdpbHNvblxuICAgKiBNSVQgTGljZW5zZWRcbiAgICopXG5cbmJvZHktcGFyc2VyL2xpYi9yZWFkLmpzOlxuYm9keS1wYXJzZXIvbGliL3R5cGVzL3Jhdy5qczpcbmJvZHktcGFyc2VyL2xpYi90eXBlcy90ZXh0LmpzOlxuYm9keS1wYXJzZXIvaW5kZXguanM6XG4gICgqIVxuICAgKiBib2R5LXBhcnNlclxuICAgKiBDb3B5cmlnaHQoYykgMjAxNC0yMDE1IERvdWdsYXMgQ2hyaXN0b3BoZXIgV2lsc29uXG4gICAqIE1JVCBMaWNlbnNlZFxuICAgKilcblxubWltZS1kYi9pbmRleC5qczpcbm1pbWUtZGIvaW5kZXguanM6XG5taW1lLWRiL2luZGV4LmpzOlxubWltZS1kYi9pbmRleC5qczpcbiAgKCohXG4gICAqIG1pbWUtZGJcbiAgICogQ29weXJpZ2h0KGMpIDIwMTQgSm9uYXRoYW4gT25nXG4gICAqIENvcHlyaWdodChjKSAyMDE1LTIwMjIgRG91Z2xhcyBDaHJpc3RvcGhlciBXaWxzb25cbiAgICogTUlUIExpY2Vuc2VkXG4gICAqKVxuXG5taW1lLXR5cGVzL2luZGV4LmpzOlxubWltZS10eXBlcy9pbmRleC5qczpcbm1pbWUtdHlwZXMvaW5kZXguanM6XG5taW1lLXR5cGVzL2luZGV4LmpzOlxuICAoKiFcbiAgICogbWltZS10eXBlc1xuICAgKiBDb3B5cmlnaHQoYykgMjAxNCBKb25hdGhhbiBPbmdcbiAgICogQ29weXJpZ2h0KGMpIDIwMTUgRG91Z2xhcyBDaHJpc3RvcGhlciBXaWxzb25cbiAgICogTUlUIExpY2Vuc2VkXG4gICAqKVxuXG5tZWRpYS10eXBlci9pbmRleC5qczpcbiAgKCohXG4gICAqIG1lZGlhLXR5cGVyXG4gICAqIENvcHlyaWdodChjKSAyMDE0LTIwMTcgRG91Z2xhcyBDaHJpc3RvcGhlciBXaWxzb25cbiAgICogTUlUIExpY2Vuc2VkXG4gICAqKVxuXG50eXBlLWlzL2luZGV4LmpzOlxuICAoKiFcbiAgICogdHlwZS1pc1xuICAgKiBDb3B5cmlnaHQoYykgMjAxNCBKb25hdGhhbiBPbmdcbiAgICogQ29weXJpZ2h0KGMpIDIwMTQtMjAxNSBEb3VnbGFzIENocmlzdG9waGVyIFdpbHNvblxuICAgKiBNSVQgTGljZW5zZWRcbiAgICopXG5cbmJvZHktcGFyc2VyL2xpYi90eXBlcy9qc29uLmpzOlxuYm9keS1wYXJzZXIvbGliL3R5cGVzL3VybGVuY29kZWQuanM6XG4gICgqIVxuICAgKiBib2R5LXBhcnNlclxuICAgKiBDb3B5cmlnaHQoYykgMjAxNCBKb25hdGhhbiBPbmdcbiAgICogQ29weXJpZ2h0KGMpIDIwMTQtMjAxNSBEb3VnbGFzIENocmlzdG9waGVyIFdpbHNvblxuICAgKiBNSVQgTGljZW5zZWRcbiAgICopXG5cbmVuY29kZXVybC9pbmRleC5qczpcbiAgKCohXG4gICAqIGVuY29kZXVybFxuICAgKiBDb3B5cmlnaHQoYykgMjAxNiBEb3VnbGFzIENocmlzdG9waGVyIFdpbHNvblxuICAgKiBNSVQgTGljZW5zZWRcbiAgICopXG5cbmVzY2FwZS1odG1sL2luZGV4LmpzOlxuICAoKiFcbiAgICogZXNjYXBlLWh0bWxcbiAgICogQ29weXJpZ2h0KGMpIDIwMTItMjAxMyBUSiBIb2xvd2F5Y2h1a1xuICAgKiBDb3B5cmlnaHQoYykgMjAxNSBBbmRyZWFzIEx1YmJlXG4gICAqIENvcHlyaWdodChjKSAyMDE1IFRpYW5jaGVuZyBcIlRpbW90aHlcIiBHdVxuICAgKiBNSVQgTGljZW5zZWRcbiAgICopXG5cbnBhcnNldXJsL2luZGV4LmpzOlxuICAoKiFcbiAgICogcGFyc2V1cmxcbiAgICogQ29weXJpZ2h0KGMpIDIwMTQgSm9uYXRoYW4gT25nXG4gICAqIENvcHlyaWdodChjKSAyMDE0LTIwMTcgRG91Z2xhcyBDaHJpc3RvcGhlciBXaWxzb25cbiAgICogTUlUIExpY2Vuc2VkXG4gICAqKVxuXG5maW5hbGhhbmRsZXIvaW5kZXguanM6XG4gICgqIVxuICAgKiBmaW5hbGhhbmRsZXJcbiAgICogQ29weXJpZ2h0KGMpIDIwMTQtMjAyMiBEb3VnbGFzIENocmlzdG9waGVyIFdpbHNvblxuICAgKiBNSVQgTGljZW5zZWRcbiAgICopXG5cbmV4cHJlc3MvbGliL3ZpZXcuanM6XG5leHByZXNzL2xpYi9hcHBsaWNhdGlvbi5qczpcbmV4cHJlc3MvbGliL3JlcXVlc3QuanM6XG5leHByZXNzL2xpYi9leHByZXNzLmpzOlxuZXhwcmVzcy9pbmRleC5qczpcbiAgKCohXG4gICAqIGV4cHJlc3NcbiAgICogQ29weXJpZ2h0KGMpIDIwMDktMjAxMyBUSiBIb2xvd2F5Y2h1a1xuICAgKiBDb3B5cmlnaHQoYykgMjAxMyBSb21hbiBTaHR5bG1hblxuICAgKiBDb3B5cmlnaHQoYykgMjAxNC0yMDE1IERvdWdsYXMgQ2hyaXN0b3BoZXIgV2lsc29uXG4gICAqIE1JVCBMaWNlbnNlZFxuICAgKilcblxuZXRhZy9pbmRleC5qczpcbiAgKCohXG4gICAqIGV0YWdcbiAgICogQ29weXJpZ2h0KGMpIDIwMTQtMjAxNiBEb3VnbGFzIENocmlzdG9waGVyIFdpbHNvblxuICAgKiBNSVQgTGljZW5zZWRcbiAgICopXG5cbmZvcndhcmRlZC9pbmRleC5qczpcbiAgKCohXG4gICAqIGZvcndhcmRlZFxuICAgKiBDb3B5cmlnaHQoYykgMjAxNC0yMDE3IERvdWdsYXMgQ2hyaXN0b3BoZXIgV2lsc29uXG4gICAqIE1JVCBMaWNlbnNlZFxuICAgKilcblxucHJveHktYWRkci9pbmRleC5qczpcbiAgKCohXG4gICAqIHByb3h5LWFkZHJcbiAgICogQ29weXJpZ2h0KGMpIDIwMTQtMjAxNiBEb3VnbGFzIENocmlzdG9waGVyIFdpbHNvblxuICAgKiBNSVQgTGljZW5zZWRcbiAgICopXG5cbmV4cHJlc3MvbGliL3V0aWxzLmpzOlxuZXhwcmVzcy9saWIvcmVzcG9uc2UuanM6XG4gICgqIVxuICAgKiBleHByZXNzXG4gICAqIENvcHlyaWdodChjKSAyMDA5LTIwMTMgVEogSG9sb3dheWNodWtcbiAgICogQ29weXJpZ2h0KGMpIDIwMTQtMjAxNSBEb3VnbGFzIENocmlzdG9waGVyIFdpbHNvblxuICAgKiBNSVQgTGljZW5zZWRcbiAgICopXG5cbnJvdXRlci9saWIvbGF5ZXIuanM6XG5yb3V0ZXIvbGliL3JvdXRlLmpzOlxucm91dGVyL2luZGV4LmpzOlxuICAoKiFcbiAgICogcm91dGVyXG4gICAqIENvcHlyaWdodChjKSAyMDEzIFJvbWFuIFNodHlsbWFuXG4gICAqIENvcHlyaWdodChjKSAyMDE0LTIwMjIgRG91Z2xhcyBDaHJpc3RvcGhlciBXaWxzb25cbiAgICogTUlUIExpY2Vuc2VkXG4gICAqKVxuXG5uZWdvdGlhdG9yL2luZGV4LmpzOlxuICAoKiFcbiAgICogbmVnb3RpYXRvclxuICAgKiBDb3B5cmlnaHQoYykgMjAxMiBGZWRlcmljbyBSb21lcm9cbiAgICogQ29weXJpZ2h0KGMpIDIwMTItMjAxNCBJc2FhYyBaLiBTY2hsdWV0ZXJcbiAgICogQ29weXJpZ2h0KGMpIDIwMTUgRG91Z2xhcyBDaHJpc3RvcGhlciBXaWxzb25cbiAgICogTUlUIExpY2Vuc2VkXG4gICAqKVxuXG5hY2NlcHRzL2luZGV4LmpzOlxuICAoKiFcbiAgICogYWNjZXB0c1xuICAgKiBDb3B5cmlnaHQoYykgMjAxNCBKb25hdGhhbiBPbmdcbiAgICogQ29weXJpZ2h0KGMpIDIwMTUgRG91Z2xhcyBDaHJpc3RvcGhlciBXaWxzb25cbiAgICogTUlUIExpY2Vuc2VkXG4gICAqKVxuXG5mcmVzaC9pbmRleC5qczpcbiAgKCohXG4gICAqIGZyZXNoXG4gICAqIENvcHlyaWdodChjKSAyMDEyIFRKIEhvbG93YXljaHVrXG4gICAqIENvcHlyaWdodChjKSAyMDE2LTIwMTcgRG91Z2xhcyBDaHJpc3RvcGhlciBXaWxzb25cbiAgICogTUlUIExpY2Vuc2VkXG4gICAqKVxuXG5yYW5nZS1wYXJzZXIvaW5kZXguanM6XG4gICgqIVxuICAgKiByYW5nZS1wYXJzZXJcbiAgICogQ29weXJpZ2h0KGMpIDIwMTItMjAxNCBUSiBIb2xvd2F5Y2h1a1xuICAgKiBDb3B5cmlnaHQoYykgMjAxNS0yMDE2IERvdWdsYXMgQ2hyaXN0b3BoZXIgV2lsc29uXG4gICAqIE1JVCBMaWNlbnNlZFxuICAgKilcblxuc2FmZS1idWZmZXIvaW5kZXguanM6XG4gICgqISBzYWZlLWJ1ZmZlci4gTUlUIExpY2Vuc2UuIEZlcm9zcyBBYm91a2hhZGlqZWggPGh0dHBzOi8vZmVyb3NzLm9yZy9vcGVuc291cmNlPiAqKVxuXG5jb250ZW50LWRpc3Bvc2l0aW9uL2luZGV4LmpzOlxuICAoKiFcbiAgICogY29udGVudC1kaXNwb3NpdGlvblxuICAgKiBDb3B5cmlnaHQoYykgMjAxNC0yMDE3IERvdWdsYXMgQ2hyaXN0b3BoZXIgV2lsc29uXG4gICAqIE1JVCBMaWNlbnNlZFxuICAgKilcblxuY29va2llL2luZGV4LmpzOlxuICAoKiFcbiAgICogY29va2llXG4gICAqIENvcHlyaWdodChjKSAyMDEyLTIwMTQgUm9tYW4gU2h0eWxtYW5cbiAgICogQ29weXJpZ2h0KGMpIDIwMTUgRG91Z2xhcyBDaHJpc3RvcGhlciBXaWxzb25cbiAgICogTUlUIExpY2Vuc2VkXG4gICAqKVxuXG5zZW5kL2luZGV4LmpzOlxuICAoKiFcbiAgICogc2VuZFxuICAgKiBDb3B5cmlnaHQoYykgMjAxMiBUSiBIb2xvd2F5Y2h1a1xuICAgKiBDb3B5cmlnaHQoYykgMjAxNC0yMDIyIERvdWdsYXMgQ2hyaXN0b3BoZXIgV2lsc29uXG4gICAqIE1JVCBMaWNlbnNlZFxuICAgKilcblxudmFyeS9pbmRleC5qczpcbiAgKCohXG4gICAqIHZhcnlcbiAgICogQ29weXJpZ2h0KGMpIDIwMTQtMjAxNyBEb3VnbGFzIENocmlzdG9waGVyIFdpbHNvblxuICAgKiBNSVQgTGljZW5zZWRcbiAgICopXG5cbnNlcnZlLXN0YXRpYy9pbmRleC5qczpcbiAgKCohXG4gICAqIHNlcnZlLXN0YXRpY1xuICAgKiBDb3B5cmlnaHQoYykgMjAxMCBTZW5jaGEgSW5jLlxuICAgKiBDb3B5cmlnaHQoYykgMjAxMSBUSiBIb2xvd2F5Y2h1a1xuICAgKiBDb3B5cmlnaHQoYykgMjAxNC0yMDE2IERvdWdsYXMgQ2hyaXN0b3BoZXIgV2lsc29uXG4gICAqIE1JVCBMaWNlbnNlZFxuICAgKilcblxubG9kYXNoL2xvZGFzaC5qczpcbiAgKCoqXG4gICAqIEBsaWNlbnNlXG4gICAqIExvZGFzaCA8aHR0cHM6Ly9sb2Rhc2guY29tLz5cbiAgICogQ29weXJpZ2h0IE9wZW5KUyBGb3VuZGF0aW9uIGFuZCBvdGhlciBjb250cmlidXRvcnMgPGh0dHBzOi8vb3BlbmpzZi5vcmcvPlxuICAgKiBSZWxlYXNlZCB1bmRlciBNSVQgbGljZW5zZSA8aHR0cHM6Ly9sb2Rhc2guY29tL2xpY2Vuc2U+XG4gICAqIEJhc2VkIG9uIFVuZGVyc2NvcmUuanMgMS44LjMgPGh0dHA6Ly91bmRlcnNjb3JlanMub3JnL0xJQ0VOU0U+XG4gICAqIENvcHlyaWdodCBKZXJlbXkgQXNoa2VuYXMsIERvY3VtZW50Q2xvdWQgYW5kIEludmVzdGlnYXRpdmUgUmVwb3J0ZXJzICYgRWRpdG9yc1xuICAgKilcblxub2JqZWN0LWFzc2lnbi9pbmRleC5qczpcbiAgKCpcbiAgb2JqZWN0LWFzc2lnblxuICAoYykgU2luZHJlIFNvcmh1c1xuICBAbGljZW5zZSBNSVRcbiAgKilcbiovXG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUE2WUEsU0FBUyxZQUFZQSxNQUFLO0FBQ3RCLHFCQUFtQkE7QUFDdkI7QUFDQSxTQUFTLGNBQWM7QUFDbkIsU0FBTztBQUNYO0FBK0JBLFNBQVMsa0JBQWtCLEtBQUssV0FBVztBQUN2QyxRQUFNLGNBQWMsWUFBWTtBQUNoQyxRQUFNLFFBQVEsVUFBVTtBQUFBLElBQ3BCO0FBQUEsSUFDQSxNQUFNLElBQUk7QUFBQSxJQUNWLE1BQU0sSUFBSTtBQUFBLElBQ1YsV0FBVztBQUFBLE1BQ1AsSUFBSSxPQUFPO0FBQUE7QUFBQSxNQUNYLElBQUk7QUFBQTtBQUFBLE1BQ0o7QUFBQTtBQUFBLE1BQ0EsZ0JBQWdCLFdBQVcsU0FBWTtBQUFBO0FBQUEsSUFDM0MsRUFBRSxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztBQUFBLEVBQ3ZCLENBQUM7QUFDRCxNQUFJLE9BQU8sT0FBTyxLQUFLLEtBQUs7QUFDaEM7QUFpRkEsU0FBUyx1QkFBdUIsVUFBVSxPQUFPLE1BQU0sR0FBRztBQUN0RCxNQUFJLFNBQVMsT0FBTyxDQUFDLEVBQUcsT0FBTSxJQUFJLFVBQVUsK0NBQStDO0FBQzNGLE1BQUksT0FBTyxVQUFVLGFBQWEsYUFBYSxTQUFTLENBQUMsSUFBSSxDQUFDLE1BQU0sSUFBSSxRQUFRLEVBQUcsT0FBTSxJQUFJLFVBQVUsMEVBQTBFO0FBQ2pMLFNBQU8sU0FBUyxNQUFNLElBQUksU0FBUyxNQUFNLEVBQUUsS0FBSyxRQUFRLElBQUksSUFBSSxFQUFFLFFBQVEsTUFBTSxJQUFJLFFBQVE7QUFDaEc7QUFFQSxTQUFTLHVCQUF1QixVQUFVLE9BQU8sT0FBTyxNQUFNLEdBQUc7QUFDN0QsTUFBSSxTQUFTLElBQUssT0FBTSxJ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QVUsU0FBUyxPQUFPLEVBQUUsQ0FBQztBQUFBLE1BQzNFO0FBQUEsTUFDQSxJQUFJLFNBQVM7QUFDVCxlQUFPLEtBQUssVUFBVSxFQUFFLE1BQU0sT0FBTyxHQUFHLFVBQVUsU0FBUyxPQUFPLEVBQUUsQ0FBQztBQUFBLE1BQ3pFO0FBQUEsTUFDQSxNQUFNLFNBQVM7QUFDWCxlQUFPLEtBQUssVUFBVSxFQUFFLE1BQU0sU0FBUyxHQUFHLFVBQVUsU0FBUyxPQUFPLEVBQUUsQ0FBQztBQUFBLE1BQzNFO0FBQUEsTUFDQSxLQUFLLFNBQVM7QUFDVixlQUFPLEtBQUssVUFBVSxFQUFFLE1BQU0sUUFBUSxHQUFHLFVBQVUsU0FBUyxPQUFPLEVBQUUsQ0FBQztBQUFBLE1BQzFFO0FBQUEsTUFDQSxPQUFPLFNBQVM7QUFDWixlQUFPLEtBQUssVUFBVSxFQUFFLE1BQU0sVUFBVSxHQUFHLFVBQVUsU0FBUyxPQUFPLEVBQUUsQ0FBQztBQUFBLE1BQzVFO0FBQUEsTUFDQSxLQUFLLFNBQVM7QUFDVixlQUFPLEtBQUssVUFBVSxFQUFFLE1BQU0sUUFBUSxHQUFHLFVBQVUsU0FBUyxPQUFPLEVBQUUsQ0FBQztBQUFBLE1BQzFFO0FBQUEsTUFDQSxNQUFNLFNBQVM7QUFDWCxlQUFPLEtBQUssVUFBVSxFQUFFLE1BQU0sU0FBUyxHQUFHLFVBQVUsU0FBUyxPQUFPLEVBQUUsQ0FBQztBQUFBLE1BQzNFO0FBQUEsTUFDQSxLQUFLLFNBQVM7QUFDVixlQUFPLEtBQUssVUFBVSxFQUFFLE1BQU0sUUFBUSxHQUFHLFVBQVUsU0FBUyxPQUFPLEVBQUUsQ0FBQztBQUFBLE1BQzFFO0FBQUEsTUFDQSxPQUFPLFNBQVM7QUFDWixlQUFPLEtBQUssVUFBVSxFQUFFLE1BQU0sVUFBVSxHQUFHLFVBQVUsU0FBUyxPQUFPLEVBQUUsQ0FBQztBQUFBLE1BQzVFO0FBQUEsTUFDQSxVQUFVLFNBQVM7QUFFZixlQUFPLEtBQUssVUFBVTtBQUFBLFVBQ2xCLE1BQU07QUFBQSxVQUNOLEdBQUcsVUFBVSxTQUFTLE9BQU87QUFBQSxRQUNqQyxD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QUFBLFFBQ1YsY0FBZ0I7QUFBQSxNQUNsQjtBQUFBLE1BQ0EsK0VBQStFO0FBQUEsUUFDN0UsUUFBVTtBQUFBLFFBQ1YsY0FBZ0I7QUFBQSxNQUNsQjtBQUFBLE1BQ0EsZ0ZBQWdGO0FBQUEsUUFDOUUsUUFBVTtBQUFBLFFBQ1YsY0FBZ0I7QUFBQSxNQUNsQjtBQUFBLE1BQ0EsNkVBQTZFO0FBQUEsUUFDM0UsUUFBVTtBQUFBLFFBQ1YsY0FBZ0I7QUFBQSxNQUNsQjtBQUFBLE1BQ0EsZ0ZBQWdGO0FBQUEsUUFDOUUsUUFBVTtBQUFBLFFBQ1YsY0FBZ0I7QUFBQSxNQUNsQjtBQUFBLE1BQ0EsZ0ZBQWdGO0FBQUEsUUFDOUUsUUFBVTtBQUFBLFFBQ1YsY0FBZ0I7QUFBQSxNQUNsQjtBQUFBLE1BQ0EsK0VBQStFO0FBQUEsUUFDN0UsUUFBVTtBQUFBLFFBQ1YsY0FBZ0I7QUFBQSxNQUNsQjtBQUFBLE1BQ0EsNkVBQTZFO0FBQUEsUUFDM0UsUUFBVTtBQUFBLFFBQ1YsY0FBZ0I7QUFBQSxNQUNsQjtBQUFBLE1BQ0EsMkVBQTJFO0FBQUEsUUFDekUsUUFBVTtBQUFBLFFBQ1YsWUFBYyxDQUFDLE1BQU07QUFBQSxNQUN2QjtBQUFBLE1BQ0Esb0ZBQW9GO0FBQUEsUUFDbEYsUUFBVTtBQUFBLFFBQ1YsY0FBZ0I7QUFBQSxNQUNsQjtBQUFBLE1BQ0Esa0ZBQWtGO0FBQUEsUUFDaEYsUUFBVTtBQUFBLFFBQ1YsY0FBZ0I7QUFBQSxNQUNsQjtBQUFBLE1BQ0EsOERBQThEO0FBQUEsUUFDNUQsUUFBVTtBQUFBLFFBQ1YsY0FBZ0I7QUFBQSxNQUNsQjtBQUFBLE1BQ0EsNkVBQTZFO0FBQUEsUUFDM0UsUUFBVTtBQUFBLFFBQ1YsY0FBZ0I7QUFBQSxNQUNsQjtBQUFBLE1BQ0EsNERBQTREO0FBQUEsUUFDMUQsUUFBVTtBQUFBLFFBQ1YsY0FBZ0I7QUFBQSxNQUNsQjtBQUFBLE1BQ0Esd0NBQXdDO0FBQUEsUUFDdEMsUUFBVTtBQUFBLFFBQ1YsY0FBZ0I7QUFBQSxNQUNsQjtBQUFBLE1BQ0EsaUNBQWlDO0FBQUEsUUFD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QUFhO0FBQUEsUUFDWCxRQUFVO0FBQUEsUUFDVixZQUFjLENBQUMsS0FBSztBQUFBLE1BQ3RCO0FBQUEsTUFDQSxhQUFhO0FBQUEsUUFDWCxRQUFVO0FBQUEsUUFDVixZQUFjLENBQUMsS0FBSztBQUFBLE1BQ3RCO0FBQUEsTUFDQSxhQUFhO0FBQUEsUUFDWCxRQUFVO0FBQUEsUUFDVixjQUFnQjtBQUFBLFFBQ2hCLFlBQWMsQ0FBQyxPQUFNLE1BQU07QUFBQSxNQUM3QjtBQUFBLE1BQ0EsY0FBYztBQUFBLFFBQ1osUUFBVTtBQUFBLFFBQ1YsY0FBZ0I7QUFBQSxRQUNoQixZQUFjLENBQUMsUUFBTyxPQUFNLEtBQUs7QUFBQSxNQUNuQztBQUFBLE1BQ0EsYUFBYTtBQUFBLFFBQ1gsUUFBVTtBQUFBLFFBQ1YsWUFBYyxDQUFDLEtBQUs7QUFBQSxNQUN0QjtBQUFBLE1BQ0EsY0FBYztBQUFBLFFBQ1osUUFBVTtBQUFBLFFBQ1YsWUFBYyxDQUFDLEtBQUs7QUFBQSxNQUN0QjtBQUFBLE1BQ0EsYUFBYTtBQUFBLFFBQ1gsUUFBVTtBQUFBLFFBQ1YsY0FBZ0I7QUFBQSxRQUNoQixZQUFjLENBQUMsS0FBSztBQUFBLE1BQ3RCO0FBQUEsTUFDQSxhQUFhO0FBQUEsUUFDWCxRQUFVO0FBQUEsUUFDVixjQUFnQjtBQUFBLFFBQ2hCLFlBQWMsQ0FBQyxPQUFNLEtBQUs7QUFBQSxNQUM1QjtBQUFBLE1BQ0EsYUFBYTtBQUFBLFFBQ1gsUUFBVTtBQUFBLFFBQ1YsWUFBYyxDQUFDLEtBQUs7QUFBQSxNQUN0QjtBQUFBLE1BQ0EsY0FBYztBQUFBLFFBQ1osUUFBVTtBQUFBLFFBQ1YsWUFBYyxDQUFDLE1BQU07QUFBQSxNQUN2QjtBQUFBLE1BQ0EsY0FBYztBQUFBLFFBQ1osUUFBVTtBQUFBLFFBQ1YsWUFBYyxDQUFDLE1BQU07QUFBQSxNQUN2QjtBQUFBLE1BQ0EsYUFBYTtBQUFBLFFBQ1gsUUFBVTtBQUFBLFFBQ1YsWUFBYyxDQUFDLEtBQUs7QUFBQSxNQUN0QjtBQUFBLE1BQ0EsY0FBYztBQUFBLFFBQ1osUUFBVTtB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QUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxJQUNEO0FBV0EsYUFBUyxZQUFZO0FBSXBCLFVBQUksT0FBTyxXQUFXLGVBQWUsT0FBTyxZQUFZLE9BQU8sUUFBUSxTQUFTLGNBQWMsT0FBTyxRQUFRLFNBQVM7QUFDckgsZUFBTztBQUFBLE1BQ1I7QUFHQSxVQUFJLE9BQU8sY0FBYyxlQUFlLFVBQVUsYUFBYSxVQUFVLFVBQVUs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LEdBQUUsQ0FBQyxHQUFFLFVBQVUsR0FBRSxDQUFDLElBQUcsUUFBUSxHQUFFLENBQUMsR0FBRSxTQUFTLEdBQUUsQ0FBQyxHQUFFLFFBQVEsR0FBRSxDQUFDLEdBQUUsU0FBUyxHQUFFLENBQUMsR0FBRSxVQUFVLEdBQUUsQ0FBQyxHQUFFLE9BQU8sR0FBRSxDQUFDLEdBQUUsVUFBVSxHQUFFLENBQUMsR0FBRSxRQUFRLEdBQUUsQ0FBQyxHQUFFLE9BQU8sR0FBRSxDQUFDLEdBQUUsUUFBUSxHQUFFLENBQUMsR0FBRSxRQUFRLEdBQUUsQ0FBQyxHQUFFLFNBQVMsR0FBRSxDQUFDLEdBQUUsT0FBTyxHQUFFLENBQUMsR0FBRSxPQUFPLEdBQUUsQ0FBQyxHQUFFLFlBQVksR0FBRSxDQUFDLEdBQUUsUUFBUSxHQUFFLENBQUMsR0FBRSxPQUFPLEdBQUUsQ0FBQyxHQUFFLGFBQWEsR0FBRSxDQUFDLEdBQUUsUUFBUSxHQUFFLENBQUMsR0FBRSxRQUFRLEdBQUUsQ0FBQyxHQUFFLFNBQVMsR0FBRSxDQUFDLEdBQUUsU0FBUyxHQUFFLENBQUMsR0FBRSxRQUFRLEdBQUUsQ0FBQyxHQUFFLGFBQWEsR0FBRSxDQUFDLEdBQUUsU0FBUyxHQUFFLENBQUMsR0FBRSxRQUFRLEdBQUUsQ0FBQyxHQUFFLFFBQVEsR0FBRSxDQUFDLEdBQUUsU0FBUyxHQUFFLENBQUMsR0FBRSxVQUFVLEdBQUUsQ0FBQyxHQUFFLFVBQVUsR0FBRSxDQUFDLEdBQUUsVUFBVSxHQUFFLENBQUMsR0FBRSxVQUFVLEdBQUUsQ0FBQyxHQUFFLFVBQVUsR0FBRSxDQUFDLEdBQUUsVUFBVSxHQUFFLENBQUMsR0FBRSxTQUFTLEdBQUUsQ0FBQyxHQUFFLFVBQVUsR0FBRSxDQUFDLEdBQUUsUUFBUSxHQUFFLENBQUMsR0FBRSxTQUFTLEdBQUUsQ0FBQyxHQUFFLFNBQVMsR0FBRSxDQUFDLEdBQUUsVUFBVSxHQUFFLENBQUMsR0FBRSxVQUFVLEdBQUUsQ0FBQyxHQUFFLFVBQVUsR0FBRSxDQUFDLEdBQUUsU0FBUyxHQUFFLENBQUMsR0FBRSxRQUFRLEdBQUUsQ0FBQyxHQUFFLFVBQVUsR0FBRSxDQUFDLEdBQUUsVUFBVSxHQUFFLENBQUMsR0FBRSxTQUFTLEdBQUUsQ0FBQyxHQUFFLFFBQVEsR0FBRSxDQUFDLEdBQUUsT0FBTyxHQUFFLENBQUMsR0FBRSxVQUFVLEdBQUUsQ0FBQyxHQUFFLFVBQVUsR0FBRSxDQUFDLEdBQUUsVUFBVSxHQUFFLENBQUMsR0FBRSxTQUFTLEdBQUUsQ0FBQyxHQUFFLFVBQVUsR0FBRSxDQUFDLEdBQUUsUUFBUSxHQUFFLENBQUMsR0FBRSxTQUFTLEdBQUUsQ0FBQyxHQUFFLFVBQVUsR0FBRSxDQUFDLEdBQUUsVUFBVSxHQUFFLENBQUMsR0FBRSxVQUFVLEdBQUUsQ0FBQyxHQUFFLFNBQVMsR0FBRSxDQUFDLEdBQUUsUUFBUSxHQUFFLENBQUMsR0FBRSxVQUFVLEdBQUUsQ0FBQyxHQUFFLFNBQVMsR0FBRSxDQUFDLEdBQUUsU0FBUyxHQUFFLENBQUMsR0FBRSxVQUFVLEdBQUUsQ0FBQyxHQUFFLFVBQVUsR0FBRSxDQUFDLEdBQUUsU0FBUyxHQUFFLENBQUMsR0FBRSxVQUFVLEdBQUUsQ0FBQyxHQUFFLFFBQVEsR0FBRSxDQUFDLEdBQUUsU0FBUyxHQUFFLENBQUMsR0FBRSxTQUFTLEdBQUUsQ0FBQyxHQUFFLFVBQVUsR0FBRSxDQUFDLEdBQUUsVUFBVSxHQUFFLENBQUMsR0FBRSxVQUFVLEdBQUUsQ0FBQyxHQUFFLFNBQVMsR0FBRSxDQUFDLEdBQUUsUUFBUSxHQUFFLENBQUMsR0FBRSxVQUFVLEdBQUUsQ0FBQyxHQUFFLFVBQVUsR0FBRSxDQUFDLEdBQUUsU0FBUyxHQUFFLENBQUMsR0FBRSxRQUFRLEdBQUUsQ0FBQyxHQUFFLE9BQU8sR0FBRSxDQUFDLEdBQUUsVUFBVSxHQUFFLENBQUMsR0FBRSxVQUFVLEdBQUUsQ0FBQyxHQUFFLFVBQVUsR0FBRSxDQUFDLEdBQUUsU0FBUyxHQUFFLENBQUMsR0FBRSxVQUFVLEdBQUUsQ0FBQyxHQUFFLFFBQVEsR0FBRSxDQUFDLEdBQUUsT0FBTyxHQUFFLENBQUMsR0FBRSxVQUFVLEdBQUUsQ0FBQyxHQUFFLFVBQVUsR0FBRSxDQUFDLEdBQUUsVUFBVSxHQUFFLENBQUMsR0FBRSxTQUFTLEdBQUUsQ0FBQyxHQUFFLFFBQVEsR0FBRSxDQUFDLEdBQUUsVUFBVSxHQUFFLENBQUMsR0FBRSxTQUFTLEdBQUUsQ0FBQyxHQUFFLFFBQVEsR0FBRSxDQUFDLEdBQUUsU0FBUyxHQUFFLENBQUMsR0FBRSxTQUFTLEdBQUUsQ0FBQyxHQUFFLFVBQVUsR0FBRSxDQUFDLEdBQUUsVUFBVSxHQUFFLENBQUMsR0FBRSxTQUFTLEdBQUUsQ0FBQyxHQUFFLFNBQVMsR0FBRSxDQUFDLEdBQUUsVUFBVSxHQUFFLENBQUMsR0FBRSxVQUFVLEdBQUUsQ0FBQyxHQUFFLFNBQVMsR0FBRSxDQUFDLEdBQUUsU0FBUyxHQUFFLENBQUMsR0FBRSxRQUFRLEdBQUUsQ0FBQyxHQUFFLFFBQVEsR0FBRSxDQUFDLEdBQUUsVUFBVSxHQUFFLENBQUMsR0FBRSxVQUFVLEdBQUUsQ0FBQyxHQUFFLFVBQVUsR0FBRSxDQUFDLEdBQUUsVUFBVSxHQUFFLENBQUMsR0FBRSxVQUFVLEdBQUUsQ0FBQyxHQUFFLFVBQVUsR0FBRSxDQUFDLEdBQUUsU0FBUyxHQUFFLENBQUMsR0FBRSxTQUFTLEdBQUUsQ0FBQyxHQUFFLFFBQVEsR0FBRSxDQUFDLEdBQUUsUUFBUSxHQUFFLENBQUMsR0FBRSxTQUFTLEdBQUUsQ0FBQyxHQUFFLFNBQVMsR0FBRSxDQUFDLEdBQUUsVUFBVSxHQUFFLENBQUMsR0FBRSxVQUFVLEdBQUUsQ0FBQyxHQUFFLFNBQVMsR0FBRSxDQUFDLEdBQUUsU0FBUyxHQUFFLENBQUMsR0FBRSxVQUFVLEdBQUUsQ0FBQyxHQUFFLFVBQVUsR0FBRSxDQUFDLEdBQUUsUUFBUSxHQUFFLENBQUMsR0FBRSxRQUFRLEdBQUUsQ0FBQyxHQUFFLFVBQVUsR0FBRSxDQUFDLEdBQUUsU0FBUyxHQUFFLENBQUMsR0FBRSxTQUFTLEdBQUUsQ0FBQyxHQUFFLFVBQVUsR0FBRSxDQUFDLEdBQUUsVUFBVSxHQUFFLENBQUMsR0FBRSxVQUFVLEdBQUUsQ0FBQyxHQUFFLFVBQVUsR0FBRSxDQUFDLEdBQUUsU0FBUyxHQUFFLENBQUMsR0FBRSxTQUFTLEdBQUUsQ0FBQyxHQUFFLFNBQVMsR0FBRSxDQUFDLEdBQUUsU0FBUyxHQUFFLENBQUMsR0FBRSxRQUFRLEdBQUUsQ0FBQyxHQUFFLFNBQVMsR0FBRSxDQUFDLEdBQUUsU0FBUyxHQUFFLENBQUMsR0FBRSxTQUFTLEdBQUUsQ0FBQyxHQUFFLFNBQVMsR0FBRSxDQUFDLEdBQUUsU0FBUyxHQUFFLENBQUMsR0FBRSxVQUFVLEdBQUUsQ0FBQyxHQUFFLFVBQVUsR0FBRSxDQUFDLEdBQUUsVUFBVSxHQUFFLENBQUMsR0FBRSxVQUFVLEdBQUUsQ0FBQyxHQUFFLFVBQVUsR0FBRSxDQUFDLEdBQUUsVUFBVSxHQUFFLENBQUMsR0FBRSxVQUFVLEdBQUUsQ0FBQyxHQUFFLFVBQVUsR0FBRSxDQUFDLEdBQUUsVUFBVSxHQUFFLENBQUMsR0FBRSxVQUFVLEdBQUUsQ0FBQyxHQUFFLFVBQVUsR0FBRSxDQUFDLEdBQUUsVUFBVSxHQUFFLENBQUMsR0FBRSxVQUFVLEdBQUUsQ0FBQyxHQUFFLFVBQVUsR0FBRSxDQUFDLEdBQUUsVUFBVSxHQUFFLENBQUMsR0FBRSxVQUFVLEdBQUUsQ0FBQyxHQUFFLFVBQVUsR0FBRSxDQUFDLEdBQUUsVUFBVSxHQUFFLENBQUMsR0FBRSxVQUFVLEdBQUUsQ0FBQyxHQUFFLFNBQVMsR0FBRSxDQUFDLEdBQUUsT0FBTyxHQUFFLENBQUMsR0FBRSxPQUFPLEdBQUUsQ0FBQyxHQUFFLFNBQVMsR0FBRSxDQUFDLEdBQUUsU0FBUyxHQUFFLENBQUMsR0FBRSxVQUFVLEdBQUUsQ0FBQyxHQUFFLFVBQVUsR0FBRSxDQUFDLEdBQUUsU0FBUyxHQUFFLENBQUMsR0FBRSxTQUFTLEdBQUUsQ0FBQyxHQUFFLFVBQVUsR0FBRSxDQUFDLEdBQUUsVUFBVSxHQUFFLENBQUMsR0FBRSxVQUFVLEdBQUUsQ0FBQyxHQUFFLFVBQVUsR0FBRSxDQUFDLEdBQUUsVUFBVSxHQUFFLENBQUMsR0FBRSxVQUFVLEdBQUUsQ0FBQyxHQUFFLFVBQVUsR0FBRSxDQUFDLEdBQUUsVUFBVSxHQUFFLENBQUMsR0FBRSxTQUFTLEdBQUUsQ0FBQyxHQUFFLFNBQVMsR0FBRSxDQUFDLEdBQUUsVUFBVSxHQUFFLENBQUMsR0FBRSxVQUFVLEdBQUUsQ0FBQyxHQUFFLFVBQVUsR0FBRSxDQUFDLEdBQUUsVUFBVSxHQUFFLENBQUMsR0FBRSxVQUFVLEdBQUUsQ0FBQyxHQUFFLFVBQVUsR0FBRSxDQUFDLEdBQUUsVUFBVSxHQUFFLENBQUMsR0FBRSxVQUFVLEdBQUUsQ0FBQyxHQUFFLFVBQVUsR0FBRSxDQUFDLEdBQUUsVUFBVSxHQUFFLENBQUMsR0FBRSxVQUFVLEdBQUUsQ0FBQyxHQUFFLFVBQVUsR0FBRSxDQUFDLEdBQUUsU0FBUyxHQUFFLENBQUMsR0FBRSxTQUFTLEdBQUUsQ0FBQyxHQUFFLFVBQVUsR0FBRSxDQUFDLEdBQUUsVUFBVSxHQUFFLENBQUMsR0FBRSxTQUFTLEdBQUUsQ0FBQyxHQUFFLFNBQVMsR0FBRSxDQUFDLEdBQUUsVUFBVSxHQUFFLENBQUMsR0FBRSxVQUFVLEdBQUUsQ0FBQyxHQUFFLFNBQVMsR0FBRSxDQUFDLEdBQUUsU0FBUyxHQUFFLENBQUMsR0FBRSxTQUFTLEdBQUUsQ0FBQyxHQUFFLFNBQVMsR0FBRSxDQUFDLEdBQUUsU0FBUyxHQUFFLENBQUMsR0FBRSxTQUFTLEdBQUUsQ0FBQyxHQUFFLFFBQVEsR0FBRSxDQUFDLEdBQUUsVUFBVSxHQUFFLENBQUMsR0FBRSxVQUFVLEdBQUUsQ0FBQyxHQUFFLFFBQVEsR0FBRSxDQUFDLEdBQUUsUUFBUSxHQUFFLENBQUMsR0FBRSxVQUFVLEdBQUUsQ0FBQyxHQUFFLFVBQVUsR0FBRSxDQUFDLElBQUcsUUFBUSxHQUFFLENBQUMsSUFBRyxTQUFTLEdBQUUsQ0FBQyxJQUFHLFVBQVUsR0FBRSxDQUFDLElBQUcsU0FBUyxHQUFFLENBQUMsS0FBSSxRQUFRLEdBQUUsQ0FBQyxHQUFFLFNBQVMsR0FBRSxDQUFDLElBQUcsU0FBUyxHQUFFLENBQUMsR0FBRSxrQkFBa0IsR0FBRSxDQUFDLEdBQUUsUUFBUSxHQUFFLENBQUMsR0FBRSxRQUFRLEdBQUUsQ0FBQyxHQUFFLG9CQUFvQixHQUFFLENBQUMsR0FBRSxTQUFTLEdBQUUsQ0FBQyxJQUFHLGFBQWEsR0FBRSxDQUFDLEtBQUksU0FBUyxHQUFFLENBQUMsR0FBRSxRQUFRLEdBQUUsQ0FBQyxHQUFFLFNBQVMsR0FBRSxDQUFDLEdBQUUsU0FBUyxHQUFFLENBQUMsR0FBRSxXQUFXLEdBQUUsQ0FBQyxHQUFFLFFBQVEsR0FBRSxDQUFDLEdBQUUsT0FBTyxHQUFFLENBQUMsR0FBRSxTQUFTLEdBQUUsQ0FBQyxHQUFFLFFBQVEsR0FBRSxDQUFDLEdBQUUsU0FBUyxHQUFFLENBQUMsR0FBRSxVQUFVLEdBQUUsQ0FBQyxHQUFFLE1BQU0sR0FBRSxDQUFDLEdBQUUsTUFBTSxHQUFFLENBQUMsR0FBRSxNQUFNLEdBQUUsQ0FBQyxHQUFFLFdBQVcsR0FBRSxDQUFDLEdBQUUsTUFBTSxHQUFFLENBQUMsR0FBRSxPQUFPLEdBQUUsQ0FBQyxHQUFFLFNBQVMsR0FBRSxDQUFDLEdBQUUsT0FBTyxHQUFFLENBQUMsR0FBRSxXQUFXLEdBQUUsQ0FBQyxHQUFFLE9BQU8sR0FBRSxDQUFDLEdBQUUsT0FBTyxHQUFFLENBQUMsR0FBRSxPQUFPLEdBQUUsQ0FBQyxHQUFFLE9BQU8sR0FBRSxDQUFDLEdBQUUsU0FBUyxHQUFFLENBQUMsR0FBRSxRQUFRLEdBQUUsQ0FBQyxHQUFFLFNBQVMsR0FBRSxDQUFDLEdBQUUsU0FBUyxHQUFFLENBQUMsR0FBRSxRQUFRLEdBQUUsQ0FBQyxHQUFFLFFBQVEsR0FBRSxDQUFDLEdBQUUsT0FBTyxHQUFFLENBQUMsR0FBRSxTQUFTLEdBQUUsQ0FBQyxHQUFFLFFBQVEsR0FBRSxDQUFDLEdBQUUsU0FBUyxHQUFFLENBQUMsR0FBRSxVQUFVLEdBQUUsQ0FBQyxHQUFFLE1BQU0sR0FBRSxDQUFDLEdBQUUsTUFBTSxHQUFFLENBQUMsR0FBRSxNQUFNLEdBQUUsQ0FBQyxHQUFFLFdBQVcsR0FBRSxDQUFDLEdBQUUsTUFBTSxHQUFFLENBQUMsR0FBRSxPQUFPLEdBQUUsQ0FBQyxHQUFFLFVBQVUsR0FBRSxDQUFDLEdBQUUsU0FBUyxHQUFFLENBQUMsR0FBRSxPQUFPLEdBQUUsQ0FBQyxHQUFFLFFBQVEsR0FBRSxDQUFDLEdBQUUsT0FBTyxHQUFFLENBQUMsR0FBRSxPQUFPLEdBQUUsQ0FBQyxHQUFFLE9BQU8sR0FBRSxDQUFDLEdBQUUsU0FBUyxHQUFFLENBQUMsR0FBRSxZQUFZLEdBQUUsQ0FBQyxHQUFFLFFBQVEsR0FBRSxDQUFDLEdBQUUsUUFBUSxHQUFFLENBQUMsR0FBRSxPQUFPLEdBQUUsQ0FBQyxHQUFFLFVBQVUsR0FBRSxDQUFDLEdBQUUsV0FBVyxHQUFFLENBQUMsSUFBRyxVQUFVLEdBQUUsQ0FBQyxHQUFFLFFBQVEsR0FBRSxDQUFDLEdBQUUsU0FBUyxHQUFFLENBQUMsR0FBRSxlQUFlLEdBQUUsQ0FBQyxJQUFHLFFBQVEsR0FBRSxDQUFDLEdBQUUsUUFBUSxHQUFFLENBQUMsR0FBRSxRQUFRLEdBQUUsQ0FBQyxHQUFFLFNBQVMsR0FBRSxDQUFDLEdBQUUsUUFBUSxHQUFFLENBQUMsR0FBRSxTQUFTLEdBQUUsQ0FBQyxHQUFFLFFBQVEsR0FBRSxDQUFDLEdBQUUsVUFBVSxHQUFFLENBQUMsR0FBRSxRQUFRLEdBQUUsQ0FBQyxHQUFFLFFBQVEsR0FBRSxDQUFDLEdBQUUsU0FBUyxHQUFFLENBQUMsR0FBRSxRQUFRLEdBQUUsQ0FBQyxHQUFFLFNBQVMsR0FBRSxDQUFDLEdBQUUsUUFBUSxHQUFFLENBQUMsR0FBRSxPQUFPLEdBQUUsQ0FBQyxHQUFFLE9BQU8sR0FBRSxDQUFDLEdBQUUsT0FBTyxHQUFFLENBQUMsR0FBRSxPQUFPLEdBQUUsQ0FBQyxHQUFFLE9BQU8sR0FBRSxDQUFDLEdBQUUsUUFBUSxHQUFFLENBQUMsR0FBRSxRQUFRLEdBQUUsQ0FBQyxHQUFFLE9BQU8sR0FBRSxDQUFDLEdBQUUsT0FBTyxHQUFFLENBQUMsR0FBRSxPQUFPLEdBQUUsQ0FBQyxHQUFFLE9BQU8sR0FBRSxDQUFDLEdBQUUsT0FBTyxHQUFFLENBQUMsR0FBRSxPQUFPLEdBQUUsQ0FBQyxHQUFFLE9BQU8sR0FBRSxDQUFDLEdBQUUsT0FBTyxHQUFFLENBQUMsR0FBRSxPQUFPLEdBQUUsQ0FBQyxHQUFFLE9BQU8sR0FBRSxDQUFDLEdBQUUsT0FBTyxHQUFFLENBQUMsR0FBRSxPQUFPLEdBQUUsQ0FBQyxHQUFFLE9BQU8sR0FBRSxDQUFDLEdBQUUsT0FBTyxHQUFFLENBQUMsR0FBRSxRQUFRLEdBQUUsQ0FBQyxHQUFFLFFBQVEsR0FBRSxDQUFDLEdBQUUsUUFBUSxHQUFFLENBQUMsR0FBRSxRQUFRLEdBQUUsQ0FBQyxHQUFFLFVBQVUsR0FBRSxDQUFDLEdBQUUsVUFBVSxHQUFFLENBQUMsR0FBRSxPQUFPLEdBQUUsQ0FBQyxHQUFFLFVBQVUsR0FBRSxDQUFDLEdBQUUsT0FBTyxHQUFFLENBQUMsR0FBRSxRQUFRLEdBQUUsQ0FBQyxHQUFFLFFBQVEsR0FBRSxDQUFDLEdBQUUsT0FBTyxHQUFFLENBQUMsR0FBRSxPQUFPLEdBQUUsQ0FBQyxHQUFFLE9BQU8sR0FBRSxDQUFDLEdBQUUsT0FBTyxHQUFFLENBQUMsR0FBRSxPQUFPLEdBQUUsQ0FBQyxHQUFFLFFBQVEsR0FBRSxDQUFDLEdBQUUsUUFBUSxHQUFFLENBQUMsR0FBRSxPQUFPLEdBQUUsQ0FBQyxHQUFFLE9BQU8sR0FBRSxDQUFDLEdBQUUsT0FBTyxHQUFFLENBQUMsR0FBRSxPQUFPLEdBQUUsQ0FBQyxHQUFFLE9BQU8sR0FBRSxDQUFDLEdBQUUsT0FBTyxHQUFFLENBQUMsR0FBRSxPQUFPLEdBQUUsQ0FBQyxHQUFFLE9BQU8sR0FBRSxDQUFDLEdBQUUsT0FBTyxHQUFFLENBQUMsR0FBRSxPQUFPLEdBQUUsQ0FBQyxHQUFFLE9BQU8sR0FBRSxDQUFDLEdBQUUsT0FBTyxHQUFFLENBQUMsR0FBRSxPQUFPLEdBQUUsQ0FBQyxHQUFFLE9BQU8sR0FBRSxDQUFDLEdBQUUsUUFBUSxHQUFFLENBQUMsR0FBRSxRQUFRLEdBQUUsQ0FBQyxHQUFFLFFBQVEsR0FBRSxDQUFDLEdBQUUsUUFBUSxHQUFFLENBQUMsR0FBRSxVQUFVLEdBQUUsQ0FBQyxHQUFFLFVBQVUsR0FBRSxDQUFDLEdBQUUsT0FBTyxHQUFFLENBQUMsR0FBRSxVQUFVLEdBQUUsQ0FBQyxHQUFFLE9BQU8sR0FBRSxDQUFDLEdBQUUsUUFBUSxHQUFFLENBQUMsR0FBRSxRQUFRLEdBQUUsQ0FBQyxHQUFFLFFBQVEsR0FBRSxDQUFDLEdBQUUsUUFBUSxHQUFFLENBQUMsR0FBRSxRQUFRLEdBQUUsQ0FBQyxHQUFFLFNBQVMsR0FBRSxDQUFDLEdBQUUsUUFBUSxHQUFFLENBQUMsR0FBRSxTQUFTLEdBQUUsQ0FBQyxHQUFFLFFBQVEsR0FBRSxDQUFDLEdBQUUsVUFBVSxHQUFFLENBQUMsR0FBRSxRQUFRLEdBQUUsQ0FBQyxHQUFFLFFBQVEsR0FBRSxDQUFDLEdBQUUsU0FBUyxHQUFFLENBQUMsR0FBRSxRQUFRLEdBQUUsQ0FBQyxHQUFFLFNBQVMsR0FBRSxDQUFDLEdBQUUsUUFBUSxHQUFFLENBQUMsTUFBSyxRQUFRLEdBQUUsQ0FBQyxHQUFFLFFBQVEsR0FBRSxDQUFDLEdBQUUsVUFBVSxHQUFFLENBQUMsR0FBRSxVQUFVLEdBQUUsQ0FBQyxHQUFFLFNBQVMsR0FBRSxDQUFDLEdBQUUsVUFBVSxHQUFFLENBQUMsR0FBRSxhQUFhLEdBQUUsQ0FBQyxHQUFFLFVBQVUsR0FBRSxDQUFDLEdBQUUsdUJBQXVCLEdBQUUsQ0FBQyxHQUFFLFFBQVEsR0FBRSxDQUFDLEdBQUUsT0FBTyxHQUFFLENBQUMsR0FBRSxPQUFPLEdBQUUsQ0FBQyxHQUFFLE9BQU8sR0FBRSxDQUFDLEdBQUUsUUFBUSxHQUFFLENBQUMsR0FBRSxTQUFTLEdBQUUsQ0FBQyxHQUFFLFNBQVMsR0FBRSxDQUFDLEdBQUUsVUFBVSxHQUFFLENBQUMsR0FBRSxVQUFVLEdBQUUsQ0FBQyxHQUFFLFNBQVMsR0FBRSxDQUFDLEdBQUUsbUJBQW1CLEdBQUUsQ0FBQyxHQUFFLFVBQVUsR0FBRSxDQUFDLEdBQUUsU0FBUyxHQUFFLENBQUMsR0FBRSx5QkFBeUIsR0FBRSxDQUFDLEdBQUUsU0FBUyxHQUFFLENBQUMsR0FBRSxVQUFVLEdBQUUsQ0FBQyxHQUFFLFVBQVUsR0FBRSxDQUFDLEdBQUUsUUFBUSxHQUFFLENBQUMsR0FBRSxRQUFRLEdBQUUsQ0FBQyxHQUFFLFVBQVUsR0FBRSxDQUFDLEdBQUUsVUFBVSxHQUFFLENBQUMsR0FBRSxXQUFXLEdBQUUsQ0FBQyxHQUFFLFNBQVMsR0FBRSxDQUFDLEdBQUUsU0FBUyxHQUFFLENBQUMsR0FBRSxVQUFVLEdBQUUsQ0FBQyxHQUFFLGFBQWEsR0FBRSxDQUFDLEdBQUUsVUFBVSxHQUFFLENBQUMsR0FBRSxVQUFVLEdBQUUsQ0FBQyxHQUFFLFNBQVMsR0FBRSxDQUFDLEdBQUUsU0FBUyxHQUFFLENBQUMsR0FBRSxVQUFVLEdBQUUsQ0FBQyxHQUFFLFNBQVMsR0FBRSxDQUFDLElBQUcsU0FBUyxHQUFFLENBQUMsR0FBRSxVQUFVLEdBQUUsQ0FBQyxHQUFFLEVBQUMsR0FBRSxpQkFBZ0IsR0FBRSxNQUFLLEdBQUUsZUFBYyxDQUFDLEdBQUUsQ0FBQyxHQUFFLFdBQVcsR0FBRSxDQUFDLEdBQUUsTUFBTSxHQUFFLENBQUMsR0FBRSxrQkFBa0IsR0FBRSxDQUFDLEdBQUUsTUFBTSxHQUFFLENBQUMsSUFBRyxRQUFRLEdBQUUsQ0FBQyxJQUFHLFFBQVEsR0FBRSxDQUFDLEdBQUUsVUFBVSxHQUFFLENBQUMsSUFBRyxhQUFhLEdBQUUsQ0FBQyxHQUFFLFVBQVUsR0FBRSxDQUFDLEdBQUUsUUFBUSxHQUFFLENBQUMsR0FBRSxVQUFVLEdBQUUsQ0FBQyxHQUFFLE9BQU8sR0FBRSxDQUFDLEdBQUUsUUFBUSxHQUFFLENBQUMsR0FBRSxXQUFXLEdBQUUsQ0FBQyxHQUFFLFFBQVEsR0FBRSxDQUFDLEdBQUUsWUFBWSxHQUFFLENBQUMsR0FBRSxPQUFPLEdBQUUsQ0FBQyxHQUFFLFVBQVUsR0FBRSxDQUFDLEdBQUUsT0FBTyxHQUFFLENBQUMsR0FBRSxZQUFZLEdBQUUsQ0FBQyxHQUFFLFVBQVUsR0FBRSxDQUFDLEdBQUUsVUFBVSxHQUFFLENBQUMsR0FBRSxVQUFVLEdBQUUsQ0FBQyxHQUFFLFFBQVEsR0FBRSxDQUFDLEdBQUUsUUFBUSxHQUFFLENBQUMsR0FBRSxXQUFXLEdBQUUsQ0FBQyxHQUFFLFFBQVEsR0FBRSxDQUFDLEdBQUUsU0FBUyxHQUFFLENBQUMsR0FBRSxNQUFNLEdBQUUsQ0FBQyxHQUFFLFNBQVMsR0FBRSxDQUFDLEdBQUUsWUFBWSxHQUFFLENBQUMsR0FBRSxPQUFPLEdBQUUsQ0FBQyxHQUFFLFVBQVUsR0FBRSxDQUFDLEdBQUUsU0FBUyxHQUFFLENBQUMsR0FBRSxVQUFVLEdBQUUsQ0FBQyxHQUFFLFdBQVcsR0FBRSxDQUFDLEdBQUUsUUFBUSxHQUFFLENBQUMsR0FBRSxRQUFRLEdBQUUsQ0FBQyxHQUFFLGNBQWMsR0FBRSxDQUFDLEdBQUUsYUFBYSxHQUFFLENBQUMsR0FBRSxTQUFTLEdBQUUsQ0FBQyxHQUFFLFdBQVcsR0FBRSxDQUFDLEdBQUUsUUFBUSxHQUFFLENBQUMsR0FBRSxTQUFTLEdBQUUsQ0FBQyxHQUFFLFVBQVUsR0FBRSxDQUFDLElBQUcsd0JBQXdCLEdBQUUsQ0FBQyxHQUFFLE1BQU0sR0FBRSxDQUFDLEdBQUUsTUFBTSxHQUFFLENBQUMsR0FBRSxNQUFNLEdBQUUsQ0FBQyxJQUFHLFVBQVUsR0FBRSxDQUFDLEdBQUUsVUFBVSxHQUFFLENBQUMsR0FBRSxVQUFVLEdBQUUsQ0FBQyxHQUFFLFVBQVUsR0FBRSxDQUFDLEdBQUUsVUFBVSxHQUFFLENBQUMsR0FBRSxVQUFVLEdBQUUsQ0FBQyxHQUFFLFVBQVUsR0FBRSxDQUFDLEdBQUUsVUFBVSxHQUFFLENBQUMsR0FBRSxVQUFVLEdBQUUsQ0FBQyxHQUFFLFVBQVUsR0FBRSxDQUFDLEdBQUUsVUFBVSxHQUFFLENBQUMsR0FBRSxVQUFVLEdBQUUsQ0FBQyxJQUFHLFFBQVEsR0FBRSxDQUFDLEdBQUUsZ0JBQWdCLEdBQUUsQ0FBQyxHQUFFLFFBQVEsR0FBRSxDQUFDLEdBQUUsUUFBUSxHQUFFLENBQUMsR0FBRSxRQUFRLEdBQUUsQ0FBQyxHQUFFLGVBQWUsR0FBRSxDQUFDLEdBQUUsU0FBUyxHQUFFLENBQUMsR0FBRSxTQUFTLEdBQUUsQ0FBQyxHQUFFLG1CQUFtQixHQUFFLENBQUMsR0FBRSxrQkFBa0IsR0FBRSxDQUFDLEdBQUUsU0FBUyxHQUFFLENBQUMsR0FBRSxTQUFTLEdBQUUsQ0FBQyxHQUFFLEVBQUMsR0FBRSxXQUFVLEdBQUUsS0FBSSxHQUFFLFdBQVUsQ0FBQyxHQUFFLENBQUMsR0FBRSxRQUFRLEdBQUUsQ0FBQyxHQUFFLFFBQVEsR0FBRSxDQUFDLEdBQUUsUUFBUSxHQUFFLENBQUMsR0FBRSxRQUFRLEdBQUUsQ0FBQyxHQUFFLFVBQVUsR0FBRSxDQUFDLEdBQUUsVUFBVSxHQUFFLENBQUMsR0FBRSxnQkFBZ0IsR0FBRSxDQUFDLEdBQUUsWUFBWSxHQUFFLENBQUMsR0FBRSxPQUFPLEdBQUUsQ0FBQyxHQUFFLGdCQUFnQixHQUFFLENBQUMsR0FBRSxpQkFBaUIsR0FBRSxDQUFDLEdBQUUsa0JBQWtCLEdBQUUsQ0FBQyxHQUFFLFVBQVUsR0FBRSxDQUFDLEdBQUUsa0JBQWtCLEdBQUUsQ0FBQyxHQUFFLFNBQVMsR0FBRSxDQUFDLEdBQUUsU0FBUyxHQUFFLENBQUMsR0FBRSxPQUFPLEdBQUUsQ0FBQyxHQUFFLE9BQU8sR0FBRSxDQUFDLEdBQUUsUUFBUSxHQUFFLENBQUMsR0FBRSxRQUFRLEdBQUUsQ0FBQyxHQUFFLFNBQVMsR0FBRSxDQUFDLEdBQUUsVUFBVSxHQUFFLENBQUMsR0FBRSxVQUFVLEdBQUUsQ0FBQyxHQUFFLG1CQUFtQixHQUFFLENBQUMsR0FBRSxvQkFBb0IsR0FBRSxDQUFDLEdBQUUsaUJBQWlCLEdBQUUsQ0FBQyxHQUFFLGtCQUFrQixHQUFFLENBQUMsR0FBRSxpQkFBaUIsR0FBRSxDQUFDLEdBQUUsZ0JBQWdCLEdBQUUsQ0FBQyxHQUFFLFNBQVMsR0FBRSxDQUFDLEdBQUUsbUJBQW1CLEdBQUUsQ0FBQyxHQUFFLFNBQVMsR0FBRSxDQUFDLEdBQUUsU0FBUyxHQUFFLENBQUMsR0FBRSx1QkFBdUIsR0FBRSxDQUFDLEdBQUUsU0FBUyxHQUFFLENBQUMsR0FBRSx1QkFBdUIsR0FBRSxDQUFDLEdBQUUsa0JBQWtCLEdBQUUsQ0FBQyxHQUFFLGNBQWMsR0FBRSxDQUFDLEdBQUUsb0JBQW9CLEdBQUUsQ0FBQyxHQUFFLFNBQVMsR0FBRSxDQUFDLEdBQUUscUJBQXFCLEdBQUUsQ0FBQyxHQUFFLGVBQWUsR0FBRSxDQUFDLEdBQUUsU0FBUyxHQUFFLENBQUMsR0FBRSxTQUFTLEdBQUUsQ0FBQyxHQUFFLFNBQVMsR0FBRSxDQUFDLEdBQUUsbUJBQW1CLEdBQUUsQ0FBQyxHQUFFLGlCQUFpQixHQUFFLENBQUMsR0FBRSxvQkFBb0IsR0FBRSxDQUFDLEdBQUUsUUFBUSxHQUFFLENBQUMsR0FBRSx3QkFBd0IsR0FBRSxDQUFDLEdBQUUscUJBQXFCLEdBQUUsQ0FBQyxHQUFFLFNBQVMsR0FBRSxDQUFDLEdBQUUsU0FBUyxHQUFFLENBQUMsR0FBRSxTQUFTLEdBQUUsQ0FBQyxHQUFFLFNBQVMsR0FBRSxDQUFDLEdBQUUsU0FBUyxHQUFFLENBQUMsR0FBRSxTQUFTLEdBQUUsQ0FBQyxHQUFFLFdBQVcsR0FBRSxDQUFDLEdBQUUsU0FBUyxHQUFFLENBQUMsR0FBRSxTQUFTLEdBQUUsQ0FBQyxJQUFHLG9CQUFvQixHQUFFLENBQUMsR0FBRSxTQUFTLEdBQUUsQ0FBQyxHQUFFLFNBQVMsR0FBRSxDQUFDLEdBQUUsU0FBUyxHQUFFLENBQUMsR0FBRSxVQUFVLEdBQUUsQ0FBQyxHQUFFLFFBQVEsR0FBRSxDQUFDLEdBQUUsRUFBQyxHQUFFLFVBQVMsR0FBRSxLQUFJLEdBQUUsVUFBUyxDQUFDLEdBQUUsQ0FBQyxHQUFFLFNBQVMsR0FBRSxDQUFDLEdBQUUsVUFBVSxHQUFFLENBQUMsR0FBRSxTQUFTLEdBQUUsQ0FBQyxHQUFFLE9BQU8sR0FBRSxDQUFDLEdBQUUsV0FBVyxHQUFFLENBQUMsR0FBRSxjQUFjLEdBQUUsQ0FBQyxHQUFFLE1BQU0sR0FBRSxDQUFDLEdBQUUsU0FBUyxHQUFFLENBQUMsR0FBRSxRQUFRLEdBQUUsQ0FBQyxHQUFFLFVBQVUsR0FBRSxDQUFDLEdBQUUsT0FBTyxHQUFFLENBQUMsR0FBRSxTQUFTLEdBQUUsQ0FBQyxHQUFFLGFBQWEsR0FBRSxDQUFDLEdBQUUsV0FBVyxHQUFFLENBQUMsR0FBRSxhQUFhLEdBQUUsQ0FBQyxHQUFFLFVBQVUsR0FBRSxDQUFDLEdBQUUsVUFBVSxHQUFFLENBQUMsR0FBRSxTQUFTLEdBQUUsQ0FBQyxHQUFFLFFBQVEsR0FBRSxDQUFDLEdBQUUsU0FBUyxHQUFFLENBQUMsR0FBRSxTQUFTLEdBQUUsQ0FBQyxHQUFFLEVBQUMsR0FBRSxTQUFRLEdBQUUsTUFBSyxHQUFFLFNBQVEsQ0FBQyxHQUFFLENBQUMsR0FBRSxVQUFVLEdBQUUsQ0FBQyxHQUFFLFVBQVUsR0FBRSxDQUFDLEdBQUUsT0FBTyxHQUFFLENBQUMsR0FBRSxRQUFRLEdBQUUsQ0FBQyxHQUFFLHFCQUFxQixHQUFFLENBQUMsR0FBRSx3QkFBd0IsR0FBRSxDQUFDLEdBQUUsT0FBTyxHQUFFLENBQUMsR0FBRSxNQUFNLEdBQUUsQ0FBQyxHQUFFLEVBQUMsR0FBRSxTQUFRLEdBQUUsT0FBTSxHQUFFLFNBQVEsQ0FBQyxHQUFFLENBQUMsR0FBRSxFQUFDLEdBQUUsU0FBUSxHQUFFLE9BQU0sR0FBRSxTQUFRLENBQUMsR0FBRSxDQUFDLEdBQUUsT0FBTyxHQUFFLENBQUMsR0FBRSxPQUFPLEdBQUUsQ0FBQyxHQUFFLFNBQVMsR0FBRSxDQUFDLEdBQUUsVUFBVSxHQUFFLENBQUMsR0FBRSxVQUFVLEdBQUUsQ0FBQyxHQUFFLFdBQVcsR0FBRSxDQUFDLEdBQUUsU0FBUyxHQUFFLENBQUMsR0FBRSw0QkFBNEIsR0FBRSxDQUFDLEdBQUUsWUFBWSxHQUFFLENBQUMsR0FBRSxVQUFVLEdBQUUsQ0FBQyxHQUFFLFVBQVUsR0FBRSxDQUFDLEdBQUUsU0FBUyxHQUFFLENBQUMsR0FBRSxTQUFTLEdBQUUsQ0FBQyxHQUFFLFlBQVksR0FBRSxDQUFDLEdBQUUsU0FBUyxHQUFFLENBQUMsR0FBRSxVQUFVLEdBQUUsQ0FBQyxHQUFFLEVBQUMsR0FBRSxTQUFRLEdBQUUsTUFBSyxHQUFFLFVBQVMsQ0FBQyxHQUFFLENBQUMsR0FBRSxFQUFDLEdBQUUsYUFBWSxHQUFFLEtBQUksR0FBRSxTQUFRLENBQUMsR0FBRSxDQUFDLEdBQUUsRUFBQyxHQUFFLFFBQU8sR0FBRSxLQUFJLEdBQUUsUUFBTyxDQUFDLEdBQUUsQ0FBQyxHQUFFLE9BQU8sR0FBRSxDQUFDLEdBQUUsaUJBQWlCLEdBQUUsQ0FBQyxHQUFFLFlBQVksR0FBRSxDQUFDLEdBQUUsRUFBQyxHQUFFLFdBQVUsR0FBRSxLQUFJLEdBQUUsVUFBUyxDQUFDLEdBQUUsQ0FBQyxHQUFFLFFBQVEsR0FBRSxDQUFDLEdBQUUsaUJBQWlCLEdBQUUsQ0FBQyxHQUFFLFFBQVEsR0FBRSxDQUFDLEdBQUUsU0FBUyxHQUFFLENBQUMsR0FBRSxTQUFTLEdBQUUsQ0FBQyxHQUFFLE1BQU0sR0FBRSxDQUFDLEdBQUUsT0FBTyxHQUFFLENBQUMsR0FBRSxPQUFPLEdBQUUsQ0FBQyxHQUFFLEVBQUMsR0FBRSxVQUFTLEdBQUUsS0FBSSxHQUFFLFVBQVMsQ0FBQyxHQUFFLENBQUMsR0FBRSxZQUFZLEdBQUUsQ0FBQyxHQUFFLEVBQUMsR0FBRSxhQUFZLEdBQUUsTUFBSyxHQUFFLFNBQVEsQ0FBQyxHQUFFLENBQUMsR0FBRSxFQUFDLEdBQUUsVUFBUyxHQUFFLEtBQUksR0FBRSxVQUFTLENBQUMsR0FBRSxDQUFDLEdBQUUsRUFBQyxHQUFFLFdBQVUsR0FBRSxLQUFJLEdBQUUsV0FBVSxDQUFDLEdBQUUsQ0FBQyxHQUFFLEVBQUMsR0FBRSxXQUFVLEdBQUUsS0FBSSxHQUFFLFVBQVMsQ0FBQyxHQUFFLENBQUMsR0FBRSxZQUFZLEdBQUUsQ0FBQyxHQUFFLFNBQVMsR0FBRSxDQUFDLEdBQUUsU0FBUyxHQUFFLENBQUMsR0FBRSxVQUFVLEdBQUUsQ0FBQyxHQUFFLFVBQVUsR0FBRSxDQUFDLEdBQUUsUUFBUSxHQUFFLENBQUMsR0FBRSxVQUFVLEdBQUUsQ0FBQyxHQUFFLFVBQVUsR0FBRSxDQUFDLEdBQUUsU0FBUyxHQUFFLENBQUMsR0FBRSxhQUFhLEdBQUUsQ0FBQyxHQUFFLFVBQVUsR0FBRSxDQUFDLEdBQUUsTUFBTSxHQUFFLENBQUMsR0FBRSxFQUFDLEdBQUUsZUFBYyxHQUFFLE1BQUssR0FBRSxZQUFXLENBQUMsR0FBRSxDQUFDLEdBQUUsVUFBVSxHQUFFLENBQUMsR0FBRSxFQUFDLEdBQUUsUUFBTyxHQUFFLE1BQUssR0FBRSxTQUFRLENBQUMsR0FBRSxDQUFDLEdBQUUsRUFBQyxHQUFFLFFBQU8sR0FBRSxNQUFLLEdBQUUsU0FBUSxDQUFDLEdBQUUsQ0FBQyxHQUFFLEVBQUMsR0FBRSxRQUFPLEdBQUUsS0FBSSxHQUFFLFFBQU8sQ0FBQyxHQUFFLENBQUMsR0FBRSxFQUFDLEdBQUUsUUFBTyxHQUFFLEtBQUksR0FBRSxRQUFPLENBQUMsR0FBRSxDQUFDLEdBQUUsRUFBQyxHQUFFLFNBQVEsR0FBRSxPQUFNLEdBQUUsY0FBYSxDQUFDLEdBQUUsQ0FBQyxHQUFFLEVBQUMsR0FBRSxTQUFRLEdBQUUsT0FBTSxHQUFFLGNBQWEsQ0FBQyxHQUFFLENBQUMsR0FBRSxFQUFDLEdBQUUsUUFBTyxHQUFFLElBQUksSUFBa0MsNEJBQVksQ0FBQyxDQUFDLEtBQUksUUFBUSxHQUFFLENBQUMsTUFBSyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFFLENBQUMsR0FBRSxFQUFDLEdBQUUsUUFBTyxHQUFFLElBQUksSUFBa0MsNEJBQVksQ0FBQyxDQUFDLEtBQUksUUFBUSxHQUFFLENBQUMsTUFBSyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFFLENBQUMsR0FBRSxXQUFXLEdBQUUsQ0FBQyxHQUFFLGFBQWEsR0FBRSxDQUFDLEdBQUUsU0FBUyxHQUFFLENBQUMsR0FBRSxPQUFPLEdBQUUsQ0FBQyxHQUFFLE9BQU8sR0FBRSxDQUFDLEdBQUUsT0FBTyxHQUFFLENBQUMsR0FBRSxXQUFXLEdBQUUsQ0FBQyxHQUFFLGdCQUFnQixHQUFFLENBQUMsR0FBRSxTQUFTLEdBQUUsQ0FBQyxHQUFFLFNBQVMsR0FBRSxDQUFDLEdBQUUsZUFBZSxHQUFFLENBQUMsR0FBRSxNQUFNLEdBQUUsQ0FBQyxHQUFFLGtCQUFrQixHQUFFLENBQUMsR0FBRSxrQkFBa0IsR0FBRSxDQUFDLEdBQUUsTUFBTSxHQUFFLENBQUMsR0FBRSxNQUFNLEdBQUUsQ0FBQyxHQUFFLFNBQVMsR0FBRSxDQUFDLEdBQUUsU0FBUyxHQUFFLENBQUMsR0FBRSxpQkFBaUIsR0FBRSxDQUFDLEdBQUUsRUFBQyxHQUFFLFdBQVUsR0FBRSxLQUFJLEdBQUUscUJBQW9CLENBQUMsR0FBRSxDQUFDLEdBQUUsZUFBZSxHQUFFLENBQUMsR0FBRSxlQUFlLEdBQUUsQ0FBQyxHQUFFLEVBQUMsR0FBRSxTQUFRLEdBQUUsTUFBSyxHQUFFLGNBQWEsQ0FBQyxHQUFFLENBQUMsR0FBRSxFQUFDLEdBQUUsU0FBUSxHQUFFLE1BQUssR0FBRSxnQkFBZSxDQUFDLEdBQUUsQ0FBQyxHQUFFLFFBQVEsR0FBRSxDQUFDLEdBQUUsUUFBUSxHQUFFLENBQUMsR0FBRSxRQUFRLEdBQUUsQ0FBQyxHQUFFLFFBQVEsR0FBRSxDQUFDLEdBQUUsa0JBQWtCLEdBQUUsQ0FBQyxHQUFFLG9CQUFvQixHQUFFLENBQUMsR0FBRSxFQUFDLEdBQUUsV0FBVSxHQUFFLE9BQU0sR0FBRSxpQkFBZ0IsQ0FBQyxHQUFFLENBQUMsR0FBRSxFQUFDLEdBQUUsV0FBVSxHQUFFLE9BQU0sR0FBRSxpQkFBZ0IsQ0FBQyxHQUFFLENBQUMsR0FBRSxVQUFVLEdBQUUsQ0FBQyxHQUFFLGFBQWEsR0FBRSxDQUFDLEdBQUUsRUFBQyxHQUFFLFdBQVUsR0FBRSxLQUFJLEdBQUUsb0JBQW1CLENBQUMsR0FBRSxDQUFDLEdBQUUsRUFBQyxHQUFFLFdBQVUsR0FBRSxLQUFJLEdBQUUsc0JBQXFCLENBQUMsR0FBRSxDQUFDLEdBQUUsVUFBVSxHQUFFLENBQUMsR0FBRSxVQUFVLEdBQUUsQ0FBQyxHQUFFLEVBQUMsR0FBRSxXQUFVLEdBQUUsT0FBTSxHQUFFLFdBQVUsQ0FBQyxHQUFFLENBQUMsR0FBRSxFQUFDLEdBQUUsV0FBVSxHQUFFLE9BQU0sR0FBRSxXQUFVLENBQUMsR0FBRSxDQUFDLEdBQUUsY0FBYyxHQUFFLENBQUMsR0FBRSxlQUFlLEdBQUUsQ0FBQyxHQUFFLGVBQWUsR0FBRSxDQUFDLEdBQUUsUUFBUSxHQUFFLENBQUMsR0FBRSxhQUFhLEdBQUUsQ0FBQyxHQUFFLGVBQWUsR0FBRSxDQUFDLEdBQUUsY0FBYyxHQUFFLENBQUMsR0FBRSxlQUFlLEdBQUUsQ0FBQyxHQUFFLFdBQVcsR0FBRSxDQUFDLEdBQUUsWUFBWSxHQUFFLENBQUMsR0FBRSxZQUFZLEdBQUUsQ0FBQyxHQUFFLGFBQWEsR0FBRSxDQUFDLEdBQUUsWUFBWSxHQUFFLENBQUMsR0FBRSxTQUFTLEdBQUUsQ0FBQyxHQUFFLFdBQVcsR0FBRSxDQUFDLEdBQUUsT0FBTyxHQUFFLENBQUMsR0FBRSxVQUFVLEdBQUUsQ0FBQyxHQUFFLGtCQUFrQixHQUFFLENBQUMsR0FBRSxTQUFTLEdBQUUsQ0FBQyxHQUFFLFVBQVUsR0FBRSxDQUFDLEdBQUUsU0FBUyxHQUFFLENBQUMsR0FBRSxVQUFVLEdBQUUsQ0FBQyxHQUFFLFVBQVUsR0FBRSxDQUFDLEdBQUUsVUFBVSxHQUFFLENBQUMsR0FBRSxVQUFVLEdBQUUsQ0FBQyxHQUFFLFVBQVUsR0FBRSxDQUFDLEdBQUUsZ0JBQWdCLEdBQUUsQ0FBQyxHQUFFLGlCQUFpQixHQUFFLENBQUMsR0FBRSxFQUFDLEdBQUUsdUJBQXNCLEdBQUUsTUFBSyxHQUFFLFlBQVcsQ0FBQyxHQUFFLENBQUMsR0FBRSxFQUFDLEdBQUUsd0JBQXVCLEdBQUUsTUFBSyxHQUFFLFlBQVcsQ0FBQyxHQUFFLENBQUMsR0FBRSxVQUFVLEdBQUUsQ0FBQyxHQUFFLFFBQVEsR0FBRSxDQUFDLEdBQUUsWUFBWSxHQUFFLENBQUMsR0FBRSxVQUFVLEdBQUUsQ0FBQyxHQUFFLFVBQVUsR0FBRSxDQUFDLEdBQUUsVUFBVSxHQUFFLENBQUMsR0FBRSxVQUFVLEdBQUUsQ0FBQyxHQUFFLFdBQVcsR0FBRSxDQUFDLEdBQUUsU0FBUyxHQUFFLENBQUMsR0FBRSxZQUFZLEdBQUUsQ0FBQyxHQUFFLFVBQVUsR0FBRSxDQUFDLEdBQUUsVUFBVSxHQUFFLENBQUMsR0FBRSxVQUFVLEdBQUUsQ0FBQyxHQUFFLFFBQVEsR0FBRSxDQUFDLEdBQUUsUUFBUSxHQUFFLENBQUMsR0FBRSxVQUFVLEdBQUUsQ0FBQyxHQUFFLGlCQUFpQixHQUFFLENBQUMsR0FBRSxVQUFVLEdBQUUsQ0FBQyxHQUFFLFVBQVUsR0FBRSxDQUFDLEdBQUUsVUFBVSxHQUFFLENBQUMsR0FBRSxrQkFBa0IsR0FBRSxDQUFDLEdBQUUsbUJBQW1CLEdBQUUsQ0FBQyxHQUFFLGFBQWEsR0FBRSxDQUFDLEdBQUUsWUFBWSxHQUFFLENBQUMsR0FBRSxjQUFjLEdBQUUsQ0FBQyxHQUFFLE9BQU8sR0FBRSxDQUFDLEdBQUUsT0FBTyxHQUFFLENBQUMsR0FBRSxPQUFPLEdBQUUsQ0FBQyxHQUFFLE9BQU8sR0FBRSxDQUFDLEdBQUUsUUFBUSxHQUFFLENBQUMsR0FBRSxRQUFRLEdBQUUsQ0FBQyxHQUFFLFdBQVcsR0FBRSxDQUFDLEdBQUUsU0FBUyxHQUFFLENBQUMsR0FBRSxFQUFDLEdBQUUsUUFBTyxHQUFFLEtBQUksR0FBRSxRQUFPLENBQUMsR0FBRSxDQUFDLEdBQUUsRUFBQyxHQUFFLFFBQU8sR0FBRSxLQUFJLEdBQUUsUUFBTyxDQUFDLEdBQUUsQ0FBQyxHQUFFLEVBQUMsR0FBRSxTQUFRLEdBQUUsT0FBTSxHQUFFLFNBQVEsQ0FBQyxHQUFFLENBQUMsR0FBRSxFQUFDLEdBQUUsU0FBUSxHQUFFLE9BQU0sR0FBRSxTQUFRLENBQUMsR0FBRSxDQUFDLEdBQUUsU0FBUyxHQUFFLENBQUMsR0FBRSxTQUFTLEdBQUUsQ0FBQyxHQUFFLHlCQUF5QixHQUFFLENBQUMsR0FBRSx5QkFBeUIsR0FBRSxDQUFDLEdBQUUsd0JBQXdCLEdBQUUsQ0FBQyxHQUFFLDBCQUEwQixHQUFFLENBQUMsR0FBRSxTQUFTLEdBQUUsQ0FBQyxHQUFFLFNBQVMsR0FBRSxDQUFDLEdBQUUsWUFBWSxHQUFFLENBQUMsR0FBRSxVQUFVLEdBQUUsQ0FBQyxHQUFFLFNBQVMsR0FBRSxDQUFDLEdBQUUsb0JBQW9CLEdBQUUsQ0FBQyxHQUFFLFVBQVUsR0FBRSxDQUFDLEdBQUUseUJBQXlCLEdBQUUsQ0FBQyxHQUFFLFVBQVUsR0FBRSxDQUFDLEdBQUUsU0FBUyxHQUFFLENBQUMsR0FBRSxTQUFTLEdBQUUsQ0FBQyxHQUFFLFNBQVMsR0FBRSxDQUFDLEdBQUUsU0FBUyxHQUFFLENBQUMsR0FBRSxVQUFVLEdBQUUsQ0FBQyxHQUFFLFNBQVMsR0FBRSxDQUFDLEdBQUUsRUFBQyxHQUFFLGFBQVksR0FBRSxLQUFJLEdBQUUsYUFBWSxDQUFDLEdBQUUsQ0FBQyxHQUFFLFdBQVcsR0FBRSxDQUFDLEdBQUUsV0FBVyxHQUFFLENBQUMsR0FBRSxFQUFDLEdBQUUsV0FBVSxHQUFFLEtBQUksR0FBRSxXQUFVLENBQUMsR0FBRSxDQUFDLEdBQUUsUUFBUSxHQUFFLENBQUMsR0FBRSxRQUFRLEdBQUUsQ0FBQyxHQUFFLE9BQU8sR0FBRSxDQUFDLEdBQUUsV0FBVyxHQUFFLENBQUMsR0FBRSxXQUFXLEdBQUUsQ0FBQyxHQUFFLFVBQVUsR0FBRSxDQUFDLEdBQUUsVUFBVSxHQUFFLENBQUMsR0FBRSxTQUFTLEdBQUUsQ0FBQyxHQUFFLFNBQVMsR0FBRSxDQUFDLEdBQUUsYUFBYSxHQUFFLENBQUMsR0FBRSxVQUFVLEdBQUUsQ0FBQyxHQUFFLFVBQVUsR0FBRSxDQUFDLEdBQUUsVUFBVSxHQUFFLENBQUMsR0FBRSxVQUFVLEdBQUUsQ0FBQyxHQUFFLFVBQVUsR0FBRSxDQUFDLEdBQUUsUUFBUSxHQUFFLENBQUMsR0FBRSxZQUFZLEdBQUUsQ0FBQyxHQUFFLFlBQVksR0FBRSxDQUFDLEdBQUUsVUFBVSxHQUFFLENBQUMsR0FBRSxVQUFVLEdBQUUsQ0FBQyxHQUFFLFVBQVUsR0FBRSxDQUFDLEdBQUUsVUFBVSxHQUFFLENBQUMsR0FBRSxVQUFVLEdBQUUsQ0FBQyxHQUFFLFVBQVUsR0FBRSxDQUFDLEdBQUUsU0FBUyxHQUFFLENBQUMsR0FBRSxTQUFTLEdBQUUsQ0FBQyxHQUFFLFVBQVUsR0FBRSxDQUFDLEdBQUUsWUFBWSxHQUFFLENBQUMsR0FBRSxVQUFVLEdBQUUsQ0FBQyxHQUFFLFNBQVMsR0FBRSxDQUFDLEdBQUUsVUFBVSxHQUFFLENBQUMsSUFBRyxXQUFXLEdBQUUsQ0FBQyxJQUFHLGNBQWMsR0FBRSxDQUFDLEdBQUUsY0FBYyxHQUFFLENBQUMsR0FBRSxlQUFlLEdBQUUsQ0FBQyxHQUFFLFFBQVEsR0FBRSxDQUFDLEdBQUUsWUFBWSxHQUFFLENBQUMsSUFBRyxtQkFBbUIsR0FBRSxDQUFDLEdBQUUsb0JBQW9CLEdBQUUsQ0FBQyxHQUFFLGFBQWEsR0FBRSxDQUFDLEdBQUUsY0FBYyxHQUFFLENBQUMsR0FBRSxZQUFZLEdBQUUsQ0FBQyxHQUFFLFlBQVksR0FBRSxDQUFDLElBQUcsU0FBUyxHQUFFLENBQUMsS0FBSSxZQUFZLEdBQUUsQ0FBQyxJQUFHLFFBQVEsR0FBRSxDQUFDLEdBQUUsUUFBUSxHQUFFLENBQUMsR0FBRSxTQUFTLEdBQUUsQ0FBQyxHQUFFLFNBQVMsR0FBRSxDQUFDLEdBQUUsU0FBUyxHQUFFLENBQUMsR0FBRSxTQUFTLEdBQUUsQ0FBQyxHQUFFLFNBQVMsR0FBRSxDQUFDLEdBQUUsU0FBUyxHQUFFLENBQUMsR0FBRSxTQUFTLEdBQUUsQ0FBQyxHQUFFLFNBQVMsR0FBRSxDQUFDLEdBQUUsU0FBUyxHQUFFLENBQUMsSUFBRyxRQUFRLEdBQUUsQ0FBQyxHQUFFLFFBQVEsR0FBRSxDQUFDLEdBQUUsU0FBUyxHQUFFLENBQUMsR0FBRSxTQUFTLEdBQUUsQ0FBQyxHQUFFLFNBQVMsR0FBRSxDQUFDLEdBQUUsU0FBUyxHQUFFLENBQUMsR0FBRSxTQUFTLEdBQUUsQ0FBQyxHQUFFLFNBQVMsR0FBRSxDQUFDLEdBQUUsU0FBUyxHQUFFLENBQUMsR0FBRSxTQUFTLEdBQUUsQ0FBQyxHQUFFLFNBQVMsR0FBRSxDQUFDLEdBQUUsU0FBUyxHQUFFLENBQUMsR0FBRSxTQUFTLEdBQUUsQ0FBQyxHQUFFLFNBQVMsR0FBRSxDQUFDLEdBQUUsU0FBUyxHQUFFLENBQUMsR0FBRSxTQUFTLEdBQUUsQ0FBQyxHQUFFLFNBQVMsR0FBRSxDQUFDLEdBQUUsU0FBUyxHQUFFLENBQUMsR0FBRSxTQUFTLEdBQUUsQ0FBQyxHQUFFLFNBQVMsR0FBRSxDQUFDLEdBQUUsU0FBUyxHQUFFLENBQUMsR0FBRSxTQUFTLEdBQUUsQ0FBQyxHQUFFLFNBQVMsR0FBRSxDQUFDLEdBQUUsU0FBUyxHQUFFLENBQUMsR0FBRSxTQUFTLEdBQUUsQ0FBQyxHQUFFLFNBQVMsR0FBRSxDQUFDLEdBQUUsU0FBUyxHQUFFLENBQUMsR0FBRSxTQUFTLEdBQUUsQ0FBQyxHQUFFLFNBQVMsR0FBRSxDQUFDLElBQUcsU0FBUyxHQUFFLENBQUMsR0FBRSxTQUFTLEdBQUUsQ0FBQyxHQUFFLFNBQVMsR0FBRSxDQUFDLEdBQUUsU0FBUyxHQUFFLENBQUMsR0FBRSxTQUFTLEdBQUUsQ0FBQyxHQUFFLFNBQVMsR0FBRSxDQUFDLElBQUcsVUFBVSxHQUFFLENBQUMsR0FBRSxlQUFlLEdBQUUsQ0FBQyxHQUFFLHdCQUF3QixHQUFFLENBQUMsR0FBRSxRQUFRLEdBQUUsQ0FBQyxHQUFFLFVBQVUsR0FBRSxDQUFDLEdBQUUsU0FBUyxHQUFFLENBQUMsR0FBRSxpQkFBaUIsR0FBRSxDQUFDLEdBQUUsaUJBQWlCLEdBQUUsQ0FBQyxHQUFFLFlBQVksR0FBRSxDQUFDLEdBQUUsc0JBQXNCLEdBQUUsQ0FBQyxHQUFFLFFBQVEsR0FBRSxDQUFDLEdBQUUsbUJBQW1CLEdBQUUsQ0FBQyxHQUFFLHFCQUFxQixHQUFFLENBQUMsR0FBRSxRQUFRLEdBQUUsQ0FBQyxHQUFFLHFCQUFxQixHQUFFLENBQUMsR0FBRSxRQUFRLEdBQUUsQ0FBQyxHQUFFLE9BQU8sR0FBRSxDQUFDLEdBQUUsT0FBTyxHQUFFLENBQUMsSUFBRyxVQUFVLEdBQUUsQ0FBQyxHQUFFLFdBQVcsR0FBRSxDQUFDLEdBQUUsU0FBUyxHQUFFLENBQUMsR0FBRSxTQUFTLEdBQUUsQ0FBQyxHQUFFLFNBQVMsR0FBRSxDQUFDLEdBQUUsb0JBQW9CLEdBQUUsQ0FBQyxHQUFFLHFCQUFxQixHQUFFLENBQUMsR0FBRSxXQUFXLEdBQUUsQ0FBQyxHQUFFLFFBQVEsR0FBRSxDQUFDLEdBQUUsU0FBUyxHQUFFLENBQUMsSUFBRyxVQUFVLEdBQUUsQ0FBQyxHQUFFLFFBQVEsR0FBRSxDQUFDLElBQUcsVUFBVSxHQUFFLENBQUMsR0FBRSxTQUFTLEdBQUUsQ0FBQyxHQUFFLFVBQVUsR0FBRSxDQUFDLEdBQUUsZUFBZSxHQUFFLENBQUMsR0FBRSxRQUFRLEdBQUUsQ0FBQyxHQUFFLFFBQVEsR0FBRSxDQUFDLEdBQUUsV0FBVyxHQUFFLENBQUMsR0FBRSxTQUFTLEdBQUUsQ0FBQyxLQUFJLFNBQVMsR0FBRSxDQUFDLEdBQUUsU0FBUyxHQUFFLENBQUMsR0FBRSxRQUFRLEdBQUUsQ0FBQyxJQUFHLFFBQVEsR0FBRSxDQUFDLElBQUcscUJBQXFCLEdBQUUsQ0FBQyxJQUFHLFNBQVMsR0FBRSxDQUFDLEdBQUUsU0FBUyxHQUFFLENBQUMsSUFBRyxZQUFZLEdBQUUsQ0FBQyxHQUFFLFdBQVcsR0FBRSxDQUFDLElBQUcscUJBQXFCLEdBQUUsQ0FBQyxHQUFFLHNCQUFzQixHQUFFLENBQUMsR0FBRSxRQUFRLEdBQUUsQ0FBQyxHQUFFLFFBQVEsR0FBRSxDQUFDLEdBQUUsUUFBUSxHQUFFLENBQUMsR0FBRSxRQUFRLEdBQUUsQ0FBQyxHQUFFLFNBQVMsR0FBRSxDQUFDLEdBQUUsU0FBUyxHQUFFLENBQUMsR0FBRSxpQkFBaUIsR0FBRSxDQUFDLEdBQUUsa0JBQWtCLEdBQUUsQ0FBQyxHQUFFLHNCQUFzQixHQUFFLENBQUMsR0FBRSx1QkFBdUIsR0FBRSxDQUFDLEdBQUUsd0JBQXdCLEdBQUUsQ0FBQyxHQUFFLDRCQUE0QixHQUFFLENBQUMsR0FBRSxjQUFjLEdBQUUsQ0FBQyxHQUFFLFlBQVksR0FBRSxDQUFDLEtBQUksVUFBVSxHQUFFLENBQUMsR0FBRSxVQUFVLEdBQUUsQ0FBQyxHQUFFLFVBQVUsR0FBRSxDQUFDLEdBQUUsT0FBTyxHQUFFLENBQUMsR0FBRSxTQUFTLEdBQUUsQ0FBQyxHQUFFLFVBQVUsR0FBRSxDQUFDLEdBQUUsU0FBUyxHQUFFLENBQUMsR0FBRSxXQUFXLEdBQUUsQ0FBQyxHQUFFLFlBQVksR0FBRSxDQUFDLEdBQUUsWUFBWSxHQUFFLENBQUMsR0FBRSxjQUFjLEdBQUUsQ0FBQyxHQUFFLGdCQUFnQixHQUFFLENBQUMsR0FBRSxVQUFVLEdBQUUsQ0FBQyxHQUFFLFVBQVUsR0FBRSxDQUFDLEdBQUUsVUFBVSxHQUFFLENBQUMsR0FBRSxVQUFVLEdBQUUsQ0FBQyxHQUFFLFVBQVUsR0FBRSxDQUFDLEdBQUUsVUFBVSxHQUFFLENBQUMsR0FBRSxVQUFVLEdBQUUsQ0FBQyxHQUFFLFdBQVcsR0FBRSxDQUFDLEdBQUUsV0FBVyxHQUFFLENBQUMsR0FBRSxVQUFVLEdBQUUsQ0FBQyxHQUFFLFVBQVUsR0FBRSxDQUFDLEdBQUUsWUFBWSxHQUFFLENBQUMsR0FBRSxZQUFZLEdBQUUsQ0FBQyxHQUFFLFVBQVUsR0FBRSxDQUFDLEdBQUUsVUFBVSxHQUFFLENBQUMsR0FBRSxVQUFVLEdBQUUsQ0FBQyxHQUFFLFVBQVUsR0FBRSxDQUFDLEdBQUUsRUFBQyxHQUFFLFdBQVUsR0FBRSxLQUFJLEdBQUUsV0FBVSxDQUFDLEdBQUUsQ0FBQyxHQUFFLFdBQVcsR0FBRSxDQUFDLEdBQUUsUUFBUSxHQUFFLENBQUMsR0FBRSxRQUFRLEdBQUUsQ0FBQyxHQUFFLFdBQVcsR0FBRSxDQUFDLEdBQUUsVUFBVSxHQUFFLENBQUMsR0FBRSxXQUFXLEdBQUUsQ0FBQyxHQUFFLFdBQVcsR0FBRSxDQUFDLEdBQUUsVUFBVSxHQUFFLENBQUMsR0FBRSxXQUFXLEdBQUUsQ0FBQyxHQUFFLFlBQVksR0FBRSxDQUFDLEdBQUUsWUFBWSxHQUFFLENBQUMsR0FBRSxZQUFZLEdBQUUsQ0FBQyxHQUFFLG1CQUFtQixHQUFFLENBQUMsR0FBRSxxQkFBcUIsR0FBRSxDQUFDLEdBQUUsdUJBQXVCLEdBQUUsQ0FBQyxHQUFFLG9CQUFvQixHQUFFLENBQUMsR0FBRSxpQkFBaUIsR0FBRSxDQUFDLEdBQUUsa0JBQWtCLEdBQUUsQ0FBQyxHQUFFLG9CQUFvQixHQUFFLENBQUMsR0FBRSxzQkFBc0IsR0FBRSxDQUFDLEdBQUUscUJBQXFCLEdBQUUsQ0FBQyxHQUFFLHNCQUFzQixHQUFFLENBQUMsR0FBRSxtQkFBbUIsR0FBRSxDQUFDLEdBQUUscUJBQXFCLEdBQUUsQ0FBQyxHQUFFLGlCQUFpQixHQUFFLENBQUMsR0FBRSxrQkFBa0IsR0FBRSxDQUFDLEdBQUUsb0JBQW9CLEdBQUUsQ0FBQyxHQUFFLHNCQUFzQixHQUFFLENBQUMsR0FBRSxxQkFBcUIsR0FBRSxDQUFDLEdBQUUsc0JBQXNCLEdBQUUsQ0FBQyxHQUFFLG1CQUFtQixHQUFFLENBQUMsR0FBRSxxQkFBcUIsR0FBRSxDQUFDLEdBQUUsUUFBUSxHQUFFLENBQUMsR0FBRSxRQUFRLEdBQUUsQ0FBQyxHQUFFLFFBQVEsR0FBRSxDQUFDLEdBQUUsUUFBUSxHQUFFLENBQUMsR0FBRSxXQUFXLEdBQUUsQ0FBQyxHQUFFLFdBQVcsR0FBRSxDQUFDLEdBQUUsV0FBVyxHQUFFLENBQUMsR0FBRSxXQUFXLEdBQUUsQ0FBQyxHQUFFLFVBQVUsR0FBRSxDQUFDLEdBQUUsVUFBVSxHQUFFLENBQUMsR0FBRSxVQUFVLEdBQUUsQ0FBQyxHQUFFLFVBQVUsR0FBRSxDQUFDLEdBQUUsU0FBUyxHQUFFLENBQUMsR0FBRSxTQUFTLEdBQUUsQ0FBQyxHQUFFLGdCQUFnQixHQUFFLENBQUMsR0FBRSxTQUFTLEdBQUUsQ0FBQyxHQUFFLFdBQVcsR0FBRSxDQUFDLEdBQUUsV0FBVyxHQUFFLENBQUMsR0FBRSxXQUFXLEdBQUUsQ0FBQyxHQUFFLFVBQVUsR0FBRSxDQUFDLEdBQUUsVUFBVSxHQUFFLENBQUMsR0FBRSxVQUFVLEdBQUUsQ0FBQyxHQUFFLFdBQVcsR0FBRSxDQUFDLEdBQUUsV0FBVyxHQUFFLENBQUMsR0FBRSxVQUFVLEdBQUUsQ0FBQyxHQUFFLFVBQVUsR0FBRSxDQUFDLEdBQUUsVUFBVSxHQUFFLENBQUMsR0FBRSxVQUFVLEdBQUUsQ0FBQyxHQUFFLFNBQVMsR0FBRSxDQUFDLEdBQUUsU0FBUyxHQUFFLENBQUMsR0FBRSxTQUFTLEdBQUUsQ0FBQyxHQUFFLFNBQVMsR0FBRSxDQUFDLEdBQUUsV0FBVyxHQUFFLENBQUMsR0FBRSxXQUFXLEdBQUUsQ0FBQyxHQUFFLFdBQVcsR0FBRSxDQUFDLEdBQUUsV0FBVyxHQUFFLENBQUMsR0FBRSxTQUFTLEdBQUUsQ0FBQyxHQUFFLFNBQVMsR0FBRSxDQUFDLEdBQUUsVUFBVSxHQUFFLENBQUMsR0FBRSxVQUFVLEdBQUUsQ0FBQyxHQUFFLFVBQVUsR0FBRSxDQUFDLEdBQUUsVUFBVSxHQUFFLENBQUMsR0FBRSxXQUFXLEdBQUUsQ0FBQyxHQUFFLFVBQVUsR0FBRSxDQUFDLEdBQUUsWUFBWSxHQUFFLENBQUMsR0FBRSxRQUFRLEdBQUUsQ0FBQyxHQUFFLFNBQVMsR0FBRSxDQUFDLEdBQUUsV0FBVyxHQUFFLENBQUMsR0FBRSxXQUFXLEdBQUUsQ0FBQyxHQUFFLFlBQVksR0FBRSxDQUFDLEdBQUUsWUFBWSxHQUFFLENBQUMsR0FBRSxZQUFZLEdBQUUsQ0FBQyxHQUFFLFlBQVksR0FBRSxDQUFDLEdBQUUsWUFBWSxHQUFFLENBQUMsR0FBRSxZQUFZLEdBQUUsQ0FBQyxHQUFFLFlBQVksR0FBRSxDQUFDLEdBQUUsWUFBWSxHQUFFLENBQUMsR0FBRSxXQUFXLEdBQUUsQ0FBQyxHQUFFLFdBQVcsR0FBRSxDQUFDLEdBQUUsV0FBVyxHQUFFLENBQUMsR0FBRSxZQUFZLEdBQUUsQ0FBQyxHQUFFLFlBQVksR0FBRSxDQUFDLEdBQUUsU0FBUyxHQUFFLENBQUMsR0FBRSxRQUFRLEdBQUUsQ0FBQyxHQUFFLFFBQVEsR0FBRSxDQUFDLEdBQUUsU0FBUyxHQUFFLENBQUMsR0FBRSxXQUFXLEdBQUUsQ0FBQyxHQUFFLFVBQVUsR0FBRSxDQUFDLEdBQUUsU0FBUyxHQUFFLENBQUMsR0FBRSxTQUFTLEdBQUUsQ0FBQyxHQUFFLE9BQU8sR0FBRSxDQUFDLEdBQUUsT0FBTyxHQUFFLENBQUMsR0FBRSxXQUFXLEdBQUUsQ0FBQyxHQUFFLFFBQVEsR0FBRSxDQUFDLEdBQUUsUUFBUSxHQUFFLENBQUMsR0FBRSxTQUFTLEdBQUUsQ0FBQyxHQUFFLFVBQVUsR0FBRSxDQUFDLEdBQUUsU0FBUyxHQUFFLENBQUMsR0FBRSxZQUFZLEdBQUUsQ0FBQyxHQUFFLEVBQUMsR0FBRSxxQkFBb0IsR0FBRSxLQUFJLEdBQUUsdUJBQXNCLENBQUMsR0FBRSxDQUFDLEdBQUUsRUFBQyxHQUFFLHNCQUFxQixHQUFFLEtBQUksR0FBRSx3QkFBdUIsQ0FBQyxHQUFFLENBQUMsSUFBRyxVQUFVLEdBQUUsQ0FBQyxHQUFFLFlBQVksR0FBRSxDQUFDLEdBQUUsV0FBVyxHQUFFLENBQUMsR0FBRSxVQUFVLEdBQUUsQ0FBQyxHQUFFLFlBQVksR0FBRSxDQUFDLEdBQUUsWUFBWSxHQUFFLENBQUMsR0FBRSxnQkFBZ0IsR0FBRSxDQUFDLEdBQUUsZUFBZSxHQUFFLENBQUMsR0FBRSxRQUFRLEdBQUUsQ0FBQyxHQUFFLFdBQVcsR0FBRSxDQUFDLEdBQUUsWUFBWSxHQUFFLENBQUMsR0FBRSxhQUFhLEdBQUUsQ0FBQyxHQUFFLFlBQVksR0FBRSxDQUFDLEdBQUUsWUFBWSxHQUFFLENBQUMsR0FBRSxVQUFVLEdBQUUsQ0FBQyxHQUFFLFlBQVksR0FBRSxDQUFDLEdBQUUsWUFBWSxHQUFFLENBQUMsR0FBRSxTQUFTLEdBQUUsQ0FBQyxHQUFFLFlBQVksR0FBRSxDQUFDLEdBQUUsWUFBWSxHQUFFLENBQUMsR0FBRSxXQUFXLEdBQUUsQ0FBQyxHQUFFLFlBQVksR0FBRSxDQUFDLEdBQUUsV0FBVyxHQUFFLENBQUMsR0FBRSxZQUFZLEdBQUUsQ0FBQyxJQUFHLFdBQVcsR0FBRSxDQUFDLEdBQUUsWUFBWSxHQUFFLENBQUMsR0FBRSxXQUFXLEdBQUUsQ0FBQyxHQUFFLFVBQVUsR0FBRSxDQUFDLEdBQUUsV0FBVyxHQUFFLENBQUMsR0FBRSxXQUFXLEdBQUUsQ0FBQyxHQUFFLFVBQVUsR0FBRSxDQUFDLEdBQUUsV0FBVyxHQUFFLENBQUMsR0FBRSxVQUFVLEdBQUUsQ0FBQyxHQUFFLFVBQVUsR0FBRSxDQUFDLEdBQUUsU0FBUyxHQUFFLENBQUMsR0FBRSxVQUFVLEdBQUUsQ0FBQyxHQUFFLFlBQVksR0FBRSxDQUFDLEdBQUUsVUFBVSxHQUFFLENBQUMsR0FBRSxXQUFXLEdBQUUsQ0FBQyxHQUFFLFdBQVcsR0FBRSxDQUFDLEdBQUUsWUFBWSxHQUFFLENBQUMsR0FBRSxVQUFVLEdBQUUsQ0FBQyxHQUFFLFFBQVEsR0FBRSxDQUFDLEdBQUUsV0FBVyxHQUFFLENBQUMsR0FBRSxZQUFZLEdBQUUsQ0FBQyxHQUFFLFdBQVcsR0FBRSxDQUFDLEdBQUUsV0FBVyxHQUFFLENBQUMsR0FBRSxTQUFTLEdBQUUsQ0FBQyxHQUFFLFVBQVUsR0FBRSxDQUFDLEdBQUUsUUFBUSxHQUFFLENBQUMsR0FBRSxRQUFRLEdBQUUsQ0FBQyxHQUFFLFVBQVUsR0FBRSxDQUFDLEdBQUUsU0FBUyxHQUFFLENBQUMsR0FBRSxVQUFVLEdBQUUsQ0FBQyxHQUFFLFVBQVUsR0FBRSxDQUFDLEdBQUUsWUFBWSxHQUFFLENBQUMsR0FBRSxZQUFZLEdBQUUsQ0FBQyxHQUFFLFVBQVUsR0FBRSxDQUFDLEdBQUUsVUFBVSxHQUFFLENBQUMsR0FBRSxTQUFTLEdBQUUsQ0FBQyxHQUFFLFNBQVMsR0FBRSxDQUFDLEdBQUUsV0FBVyxHQUFFLENBQUMsR0FBRSxPQUFPLEdBQUUsQ0FBQyxHQUFFLE1BQU0sR0FBRSxDQUFDLEdBQUUsVUFBVSxHQUFFLENBQUMsR0FBRSxRQUFRLEdBQUUsQ0FBQyxHQUFFLFdBQVcsR0FBRSxDQUFDLEdBQUUsWUFBWSxHQUFFLENBQUMsR0FBRSxRQUFRLEdBQUUsQ0FBQyxHQUFFLE9BQU8sR0FBRSxDQUFDLEdBQUUsUUFBUSxHQUFFLENBQUMsR0FBRSxPQUFPLEdBQUUsQ0FBQyxHQUFFLFVBQVUsR0FBRSxDQUFDLEdBQUUsU0FBUyxHQUFFLENBQUMsR0FBRSxVQUFVLEdBQUUsQ0FBQyxHQUFFLEVBQUMsR0FBRSxhQUFZLEdBQUUsS0FBSSxHQUFFLGFBQVksQ0FBQyxHQUFFLENBQUMsR0FBRSxVQUFVLEdBQUUsQ0FBQyxHQUFFLFVBQVUsR0FBRSxDQUFDLEdBQUUsRUFBQyxHQUFFLFNBQVEsR0FBRSxLQUFJLEdBQUUsU0FBUSxDQUFDLEdBQUUsQ0FBQyxHQUFFLFNBQVMsR0FBRSxDQUFDLEdBQUUsU0FBUyxHQUFFLENBQUMsR0FBRSxRQUFRLEdBQUUsQ0FBQyxHQUFFLFVBQVUsR0FBRSxDQUFDLEdBQUUsU0FBUyxHQUFFLENBQUMsR0FBRSxXQUFXLEdBQUUsQ0FBQyxHQUFFLFdBQVcsR0FBRSxDQUFDLEdBQUUsU0FBUyxHQUFFLENBQUMsR0FBRSxTQUFTLEdBQUUsQ0FBQyxHQUFFLFdBQVcsR0FBRSxDQUFDLEdBQUUsV0FBVyxHQUFFLENBQUMsR0FBRSxFQUFDLEdBQUUsY0FBYSxHQUFFLEtBQUksR0FBRSxjQUFhLENBQUMsR0FBRSxDQUFDLEdBQUUsRUFBQyxHQUFFLGNBQWEsR0FBRSxLQUFJLEdBQUUsY0FBYSxDQUFDLEdBQUUsQ0FBQyxHQUFFLFVBQVUsR0FBRSxDQUFDLEdBQUUsVUFBVSxHQUFFLENBQUMsR0FBRSxXQUFXLEdBQUUsQ0FBQyxHQUFFLFdBQVcsR0FBRSxDQUFDLEdBQUUsWUFBWSxHQUFFLENBQUMsR0FBRSxZQUFZLEdBQUUsQ0FBQyxHQUFFLE9BQU8sR0FBRSxDQUFDLEdBQUUsT0FBTyxHQUFFLENBQUMsR0FBRSxPQUFPLEdBQUUsQ0FBQyxHQUFFLE9BQU8sR0FBRSxDQUFDLEdBQUUsUUFBUSxHQUFFLENBQUMsR0FBRSxRQUFRLEdBQUUsQ0FBQyxHQUFFLE9BQU8sR0FBRSxDQUFDLEdBQUUsT0FBTyxHQUFFLENBQUMsR0FBRSxTQUFTLEdBQUUsQ0FBQyxHQUFFLFNBQVMsR0FBRSxDQUFDLEdBQUUsU0FBUyxHQUFFLENBQUMsR0FBRSxTQUFTLEdBQUUsQ0FBQyxHQUFFLE9BQU8sR0FBRSxDQUFDLEdBQUUsT0FBTyxHQUFFLENBQUMsR0FBRSxVQUFVLEdBQUUsQ0FBQyxHQUFFLFVBQVUsR0FBRSxDQUFDLEdBQUUsT0FBTyxHQUFFLENBQUMsR0FBRSxPQUFPLEdBQUUsQ0FBQyxHQUFFLFVBQVUsR0FBRSxDQUFDLEdBQUUsVUFBVSxHQUFFLENBQUMsR0FBRSxNQUFNLEdBQUUsQ0FBQyxHQUFFLE1BQU0sR0FBRSxDQUFDLEdBQUUsUUFBUSxHQUFFLENBQUMsR0FBRSxRQUFRLEdBQUUsQ0FBQyxHQUFFLFNBQVMsR0FBRSxDQUFDLEdBQUUsU0FBUyxHQUFFLENBQUMsR0FBRSxFQUFDLEdBQUUsY0FBYSxHQUFFLEtBQUksR0FBRSxzQkFBcUIsQ0FBQyxHQUFFLENBQUMsR0FBRSxFQUFDLEdBQUUsb0JBQW1CLEdBQUUsS0FBSSxHQUFFLDRCQUEyQixDQUFDLEdBQUUsQ0FBQyxHQUFFLE9BQU8sR0FBRSxDQUFDLEdBQUUsT0FBTyxHQUFFLENBQUMsR0FBRSxRQUFRLEdBQUUsQ0FBQyxHQUFFLFFBQVEsR0FBRSxDQUFDLEdBQUUsU0FBUyxHQUFFLENBQUMsR0FBRSxTQUFTLEdBQUUsQ0FBQyxHQUFFLE9BQU8sR0FBRSxDQUFDLEdBQUUsT0FBTyxHQUFFLENBQUMsR0FBRSxFQUFDLEdBQUUsVUFBUyxHQUFFLE9BQU0sR0FBRSxVQUFTLENBQUMsR0FBRSxDQUFDLEdBQUUsRUFBQyxHQUFFLFVBQVMsR0FBRSxPQUFNLEdBQUUsVUFBUyxDQUFDLEdBQUUsQ0FBQyxHQUFFLFNBQVMsR0FBRSxDQUFDLEdBQUUsRUFBQyxHQUFFLG1CQUFrQixHQUFFLEtBQUksR0FBRSxxQkFBb0IsQ0FBQyxHQUFFLENBQUMsR0FBRSxFQUFDLEdBQUUsU0FBUSxHQUFFLEtBQUksR0FBRSxxQkFBb0IsQ0FBQyxHQUFFLENBQUMsR0FBRSxPQUFPLEdBQUUsQ0FBQyxHQUFFLE9BQU8sR0FBRSxDQUFDLEdBQUUsWUFBWSxHQUFFLENBQUMsR0FBRSxRQUFRLEdBQUUsQ0FBQyxHQUFFLFFBQVEsR0FBRSxDQUFDLEdBQUUsUUFBUSxHQUFFLENBQUMsR0FBRSxlQUFlLEdBQUUsQ0FBQyxHQUFFLFNBQVMsR0FBRSxDQUFDLEdBQUUsTUFBTSxHQUFFLENBQUMsR0FBRSxNQUFNLEdBQUUsQ0FBQyxHQUFFLFVBQVUsR0FBRSxDQUFDLEdBQUUsVUFBVSxHQUFFLENBQUMsR0FBRSxXQUFXLEdBQUUsQ0FBQyxHQUFFLFdBQVcsR0FBRSxDQUFDLEdBQUUsV0FBVyxHQUFFLENBQUMsR0FBRSxXQUFXLEdBQUUsQ0FBQyxHQUFFLFdBQVcsR0FBRSxDQUFDLEdBQUUsV0FBVyxHQUFFLENBQUMsR0FBRSxFQUFDLEdBQUUsVUFBUyxHQUFFLEtBQUksR0FBRSxVQUFTLENBQUMsR0FBRSxDQUFDLEdBQUUsRUFBQyxHQUFFLFVBQVMsR0FBRSxLQUFJLEdBQUUsVUFBUyxDQUFDLEdBQUUsQ0FBQyxHQUFFLFVBQVUsR0FBRSxDQUFDLEdBQUUsVUFBVSxHQUFFLENBQUMsR0FBRSxFQUFDLEdBQUUsV0FBVSxHQUFFLE9BQU0sR0FBRSxrQkFBaUIsQ0FBQyxHQUFFLENBQUMsR0FBRSxFQUFDLEdBQUUsV0FBVSxHQUFFLE9BQU0sR0FBRSxrQkFBaUIsQ0FBQyxHQUFFLENBQUMsR0FBRSxRQUFRLEdBQUUsQ0FBQyxHQUFFLFFBQVEsR0FBRSxDQUFDLEdBQUUsU0FBUyxHQUFFLENBQUMsR0FBRSxTQUFTLEdBQUUsQ0FBQyxHQUFFLFVBQVUsR0FBRSxDQUFDLEdBQUUsVUFBVSxHQUFFLENBQUMsR0FBRSxVQUFVLEdBQUUsQ0FBQyxHQUFFLFVBQVUsR0FBRSxDQUFDLEdBQUUsV0FBVyxHQUFFLENBQUMsR0FBRSxXQUFXLEdBQUUsQ0FBQyxHQUFFLFNBQVMsR0FBRSxDQUFDLEdBQUUsV0FBVyxHQUFFLENBQUMsR0FBRSxRQUFRLEdBQUUsQ0FBQyxHQUFFLFNBQVMsR0FBRSxDQUFDLEdBQUUsVUFBVSxHQUFFLENBQUMsR0FBRSxRQUFRLEdBQUUsQ0FBQyxHQUFFLFFBQVEsR0FBRSxDQUFDLEdBQUUsU0FBUyxHQUFFLENBQUMsR0FBRSxRQUFRLEdBQUUsQ0FBQyxHQUFFLE9BQU8sR0FBRSxDQUFDLEdBQUUsUUFBUSxHQUFFLENBQUMsR0FBRSxTQUFTLEdBQUUsQ0FBQyxHQUFFLFVBQVUsR0FBRSxDQUFDLEdBQUUsVUFBVSxHQUFFLENBQUMsR0FBRSxVQUFVLEdBQUUsQ0FBQyxHQUFFLFNBQVMsR0FBRSxDQUFDLEdBQUUsVUFBVSxHQUFFLENBQUMsR0FBRSxFQUFDLEdBQUUsV0FBVSxHQUFFLE1BQUssR0FBRSxXQUFVLENBQUMsR0FBRSxDQUFDLE9BQU0sRUFBQyxHQUFFLElBQUksSUFBa0MsNEJBQVksQ0FBQyxDQUFDLE9BQU0sUUFBUSxHQUFFLENBQUMsR0FBRSxRQUFRLEdBQUUsQ0FBQyxHQUFFLFFBQVEsR0FBRSxDQUFDLEdBQUUsUUFBUSxHQUFFLENBQUMsR0FBRSxRQUFRLEdBQUUsQ0FBQyxHQUFFLFFBQVEsR0FBRSxDQUFDLEdBQUUsUUFBUSxHQUFFLENBQUMsR0FBRSxRQUFRLEdBQUUsQ0FBQyxHQUFFLFFBQVEsR0FBRSxDQUFDLEdBQUUsUUFBUSxHQUFFLENBQUMsR0FBRSxRQUFRLEdBQUUsQ0FBQyxHQUFFLFFBQVEsR0FBRSxDQUFDLEdBQUUsUUFBUSxHQUFFLENBQUMsR0FBRSxRQUFRLEdBQUUsQ0FBQyxHQUFFLFFBQVEsR0FBRSxDQUFDLEdBQUUsUUFBUSxHQUFFLENBQUMsR0FBRSxRQUFRLEdBQUUsQ0FBQyxHQUFFLFFBQVEsR0FBRSxDQUFDLEdBQUUsUUFBUSxHQUFFLENBQUMsR0FBRSxRQUFRLEdBQUUsQ0FBQyxHQUFFLFFBQVEsR0FBRSxDQUFDLEdBQUUsUUFBUSxHQUFFLENBQUMsR0FBRSxRQUFRLEdBQUUsQ0FBQyxHQUFFLFFBQVEsR0FBRSxDQUFDLEdBQUUsUUFBUSxHQUFFLENBQUMsR0FBRSxRQUFRLEdBQUUsQ0FBQyxHQUFFLFFBQVEsR0FBRSxDQUFDLEdBQUUsUUFBUSxHQUFFLENBQUMsR0FBRSxRQUFRLEdBQUUsQ0FBQyxHQUFFLFFBQVEsR0FBRSxDQUFDLEdBQUUsUUFBUSxHQUFFLENBQUMsR0FBRSxRQUFRLEdBQUUsQ0FBQyxHQUFFLFFBQVEsR0FBRSxDQUFDLEdBQUUsUUFBUSxHQUFFLENBQUMsR0FBRSxRQUFRLEdBQUUsQ0FBQyxHQUFFLFFBQVEsR0FBRSxDQUFDLEdBQUUsUUFBUSxHQUFFLENBQUMsR0FBRSxRQUFRLEdBQUUsQ0FBQyxHQUFFLFFBQVEsR0FBRSxDQUFDLEdBQUUsUUFBUSxHQUFFLENBQUMsR0FBRSxRQUFRLEdBQUUsQ0FBQyxJQUFHLE9BQU8sR0FBRSxDQUFDLEdBQUUsT0FBTyxHQUFFLENBQUMsR0FBRSxPQUFPLEdBQUUsQ0FBQyxHQUFFLE9BQU8sR0FBRSxDQUFDLEdBQUUsT0FBTyxHQUFFLENBQUMsR0FBRSxPQUFPLEdBQUUsQ0FBQyxHQUFFLE9BQU8sR0FBRSxDQUFDLEdBQUUsT0FBTyxHQUFFLENBQUMsR0FBRSxPQUFPLEdBQUUsQ0FBQyxHQUFFLE9BQU8sR0FBRSxDQUFDLEdBQUUsT0FBTyxHQUFFLENBQUMsR0FBRSxPQUFPLEdBQUUsQ0FBQyxHQUFFLE9BQU8sR0FBRSxDQUFDLEdBQUUsT0FBTyxHQUFFLENBQUMsR0FBRSxPQUFPLEdBQUUsQ0FBQyxHQUFFLE9BQU8sR0FBRSxDQUFDLEdBQUUsT0FBTyxHQUFFLENBQUMsR0FBRSxPQUFPLEdBQUUsQ0FBQyxHQUFFLE9BQU8sR0FBRSxDQUFDLEdBQUUsT0FBTyxHQUFFLENBQUMsR0FBRSxPQUFPLEdBQUUsQ0FBQyxHQUFFLE9BQU8sR0FBRSxDQUFDLEdBQUUsT0FBTyxHQUFFLENBQUMsR0FBRSxPQUFPLEdBQUUsQ0FBQyxHQUFFLE9BQU8sR0FBRSxDQUFDLEdBQUUsT0FBTyxHQUFFLENBQUMsR0FBRSxPQUFPLEdBQUUsQ0FBQyxHQUFFLE9BQU8sR0FBRSxDQUFDLEdBQUUsT0FBTyxHQUFFLENBQUMsR0FBRSxPQUFPLEdBQUUsQ0FBQyxHQUFFLE9BQU8sR0FBRSxDQUFDLEdBQUUsT0FBTyxHQUFFLENBQUMsR0FBRSxPQUFPLEdBQUUsQ0FBQyxHQUFFLE9BQU8sR0FBRSxDQUFDLEdBQUUsT0FBTyxHQUFFLENBQUMsR0FBRSxPQUFPLEdBQUUsQ0FBQyxHQUFFLE9BQU8sR0FBRSxDQUFDLEdBQUUsT0FBTyxHQUFFLENBQUMsR0FBRSxPQUFPLEdBQUUsQ0FBQyxHQUFFLE9BQU8sR0FBRSxDQUFDLEdBQUUsT0FBTyxHQUFFLENBQUMsR0FBRSxPQUFPLEdBQUUsQ0FBQyxHQUFFLE9BQU8sR0FBRSxDQUFDLEdBQUUsT0FBTyxHQUFFLENBQUMsR0FBRSxPQUFPLEdBQUUsQ0FBQyxHQUFFLE9BQU8sR0FBRSxDQUFDLEdBQUUsT0FBTyxHQUFFLENBQUMsR0FBRSxRQUFRLEdBQUUsQ0FBQyxHQUFFLFFBQVEsR0FBRSxDQUFDLEdBQUUsUUFBUSxHQUFFLENBQUMsR0FBRSxRQUFRLEdBQUUsQ0FBQyxHQUFFLFFBQVEsR0FBRSxDQUFDLEdBQUUsUUFBUSxHQUFFLENBQUMsR0FBRSxRQUFRLEdBQUUsQ0FBQyxHQUFFLFFBQVEsR0FBRSxDQUFDLEdBQUUsUUFBUSxHQUFFLENBQUMsR0FBRSxRQUFRLEdBQUUsQ0FBQyxHQUFFLFFBQVEsR0FBRSxDQUFDLEdBQUUsUUFBUSxHQUFFLENBQUMsR0FBRSxRQUFRLEdBQUUsQ0FBQyxHQUFFLFFBQVEsR0FBRSxDQUFDLEdBQUUsUUFBUSxHQUFFLENBQUMsR0FBRSxRQUFRLEdBQUUsQ0FBQyxHQUFFLFFBQVEsR0FBRSxDQUFDLEdBQUUsUUFBUSxHQUFFLENBQUMsR0FBRSxRQUFRLEdBQUUsQ0FBQyxHQUFFLFFBQVEsR0FBRSxDQUFDLEdBQUUsUUFBUSxHQUFFLENBQUMsR0FBRSxRQUFRLEdBQUUsQ0FBQyxHQUFFLFFBQVEsR0FBRSxDQUFDLEdBQUUsUUFBUSxHQUFFLENBQUMsR0FBRSxRQUFRLEdBQUUsQ0FBQyxHQUFFLFFBQVEsR0FBRSxDQUFDLEdBQUUsUUFBUSxHQUFFLENBQUMsR0FBRSxRQUFRLEdBQUUsQ0FBQyxHQUFFLFFBQVEsR0FBRSxDQUFDLEdBQUUsUUFBUSxHQUFFLENBQUMsR0FBRSxRQUFRLEdBQUUsQ0FBQyxHQUFFLFFBQVEsR0FBRSxDQUFDLEdBQUUsUUFBUSxHQUFFLENBQUMsR0FBRSxRQUFRLEdBQUUsQ0FBQyxHQUFFLFFBQVEsR0FBRSxDQUFDLEdBQUUsUUFBUSxHQUFFLENBQUMsR0FBRSxRQUFRLEdBQUUsQ0FBQyxHQUFFLFFBQVEsR0FBRSxDQUFDLEdBQUUsUUFBUSxHQUFFLENBQUMsR0FBRSxRQUFRLEdBQUUsQ0FBQyxHQUFFLFFBQVEsR0FBRSxDQUFDLEdBQUUsUUFBUSxHQUFFLENBQUMsR0FBRSxRQUFRLEdBQUUsQ0FBQyxHQUFFLFFBQVEsR0FBRSxDQUFDLEdBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBRSxDQUFDLE1BQUssU0FBUyxHQUFFLENBQUMsR0FBRSxTQUFTLEdBQUUsQ0FBQyxHQUFFLFNBQVMsR0FBRSxDQUFDLEdBQUUsVUFBVSxHQUFFLENBQUMsR0FBRSxVQUFVLENBQUMsQ0FBQyxDQUFDOzs7OztBQ2U1OXRCLFNBQVUsVUFBVSxLQUFXO0FBQ2pDLE1BQUksTUFBTTtBQUNWLE1BQUksVUFBVTtBQUNkLE1BQUk7QUFFSixVQUFRLFFBQVEsWUFBWSxLQUFLLEdBQUcsT0FBTyxNQUFNO0FBQzdDLFVBQU0sSUFBSSxNQUFNO0FBQ2hCLFVBQU0sT0FBTyxJQUFJLFdBQVcsQ0FBQztBQUM3QixVQUFNQyxRQUFPLFdBQVcsSUFBSSxJQUFJO0FBRWhDLFFBQUlBLFVBQVMsUUFBVztBQUNwQixhQUFPLElBQUksVUFBVSxTQUFTLENBQUMsSUFBSUE7QUFDbkMsZ0JBQVUsSUFBSTtXQUNYO0FBQ0gsYUFBTyxHQUFHLElBQUksVUFBVSxTQUFTLENBQUMsQ0FBQyxNQUFNLGFBQ3JDLEtBQ0EsQ0FBQyxFQUNILFNBQVMsRUFBRSxDQUFDO0FBRWQsZ0JBQVUsWUFBWSxhQUFhLFFBQzlCLE9BQU8sV0FBWSxLQUFNOzs7QUFLdEMsU0FBTyxNQUFNLElBQUksT0FBTyxPQUFPO0FBQ25DO0FBdUJBLFNBQVMsV0FDTCxPQUNBQyxNQUF3QjtBQUV4QixTQUFPLFNBQVNDLFFBQU9DLE9BQVk7QUFDL0IsUUFBSTtBQUNKLFFBQUksVUFBVTtBQUNkLFFBQUksU0FBUztBQUViLFdBQVEsUUFBUSxNQUFNLEtBQUtBLEtBQUksR0FBSTtBQUMvQixVQUFJLFlBQVksTUFBTSxPQUFPO0FBQ3pCLGtCQUFVQSxNQUFLLFVBQVUsU0FBUyxNQUFNLEtBQUs7O0FBSWpELGdCQUFVRixLQUFJLElBQUksTUFBTSxDQUFDLEVBQUUsV0FBVyxDQUFDLENBQUM7QUFHeEMsZ0JBQVUsTUFBTSxRQUFROztBQUc1QixXQUFPLFNBQVNFLE1BQUssVUFBVSxPQUFPO0VBQzFDO0FBQ0o7QUF2R0EsSUFBYSxhQUVQLFlBU08sY0FxR0EsWUFRQSxpQkFlQTtBQXZJYjs7QUFBTyxJQUFNLGNBQWM7QUFFM0IsSUFBTSxhQUFhLG9CQUFJLElBQUk7TUFDdkIsQ0FBQyxJQUFJLFFBQVE7TUFDYixDQUFDLElBQUksT0FBTztNQUNaLENBQUMsSUFBSSxRQUFRO01BQ2IsQ0FBQyxJQUFJLE1BQU07TUFDWCxDQUFDLElBQUksTUFBTTtLQUNkO0FBR00sSUFBTTtJQUVULE9BQU8sVUFBVSxlQUFlLE9BQzFCLENBQUMsS0FBYUMsV0FBMEIsSUFBSSxZQUFZQSxNQUFLOztNQUU3RCxDQUFDLEdBQVdBLFlBQ1AsRUFBRSxXQUFXQSxNQUFLLElBQUksV0FBWSxTQUM1QixFQUFFLFdBQVdBLE1BQUssSUFBSSxTQUFVLE9BQ2pDLEVBQUUsV0FBV0EsU0FBUSxDQUFDLElBQ3RCLFFBQ0EsUUFDQSxFQUFFLFdBQVdBLE1BQUs7O0FBMEYvQixJQUFNLGFBQWEsV0FBVyxZQUFZLFVBQVU7QUFRcEQsSUFBTSxrQkFBa0IsV0FDM0IsZUFDQSxvQkFBSSxJQUFJO01BQ0osQ0FBQyxJQUFJLFFBQVE7TUFDYixDQUFDLElBQUksT0FBTztNQUNaLENBQUMsS0FBSyxRQUFRO0tBQ2pCLENBQUM7QUFTQyxJQUFNLGFBQWEsV0FDdEIsZ0JBQ0Esb0JBQUksSUFBSTtNQUNKLENBQUMsSUFBSSxPQUFPO01BQ1osQ0FBQyxJQUFJLE1BQU07TUFDWCxDQUFDLElBQUksTUFBTTtNQUNYLENBQUMsS0FBSyxRQUFRO0tBQ2pCLENBQUM7Ozs7O0FDOUlOOzs7QUFDQTs7Ozs7QUNEQSxJQVVZLGFBT0E7QUFqQlosSUFBQUMsWUFBQTs7O0FBQ0E7QUFDQTtBQWtKQTtBQVFBO0FBUUE7QUExSkEsS0FBQSxTQUFZQyxjQUFXO0FBRW5CLE1BQUFBLGFBQUFBLGFBQUEsS0FBQSxJQUFBLENBQUEsSUFBQTtBQUVBLE1BQUFBLGFBQUFBLGFBQUEsTUFBQSxJQUFBLENBQUEsSUFBQTtJQUNKLEdBTFksZ0JBQUEsY0FBVyxDQUFBLEVBQUE7QUFPdkIsS0FBQSxTQUFZQyxlQUFZO0FBS3BCLE1BQUFBLGNBQUFBLGNBQUEsTUFBQSxJQUFBLENBQUEsSUFBQTtBQU1BLE1BQUFBLGNBQUFBLGNBQUEsT0FBQSxJQUFBLENBQUEsSUFBQTtBQUtBLE1BQUFBLGNBQUFBLGNBQUEsV0FBQSxJQUFBLENBQUEsSUFBQTtBQUtBLE1BQUFBLGNBQUFBLGNBQUEsV0FBQSxJQUFBLENBQUEsSUFBQTtBQUtBLE1BQUFBLGNBQUFBLGNBQUEsTUFBQSxJQUFBLENBQUEsSUFBQTtJQUNKLEdBM0JZLGlCQUFBLGVBQVksQ0FBQSxFQUFBOzs7OztBQ2pCeEIsSUFBYSxjQXVDQTtBQXZDYjtBQUFBO0FBQU8sSUFBTSxlQUFlLElBQUksSUFBSTtBQUFBLE1BQ2hDO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsSUFDSixFQUFFLElBQUksQ0FBQ0MsU0FBUSxDQUFDQSxLQUFJLFlBQVksR0FBR0EsSUFBRyxDQUFDLENBQUM7QUFDakMsSUFBTSxpQkFBaUIsSUFBSSxJQUFJO0FBQUEsTUFDbEM7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsSUFDSixFQUFFLElBQUksQ0FBQ0EsU0FBUSxDQUFDQSxLQUFJLFlBQVksR0FBR0EsSUFBRyxDQUFDLENBQUM7QUFBQTtBQUFBOzs7QUM3RXhDLFNBQVMsY0FBYyxPQUFPO0FBQzFCLFNBQU8sTUFBTSxRQUFRLE1BQU0sUUFBUTtBQUN2QztBQUlBLFNBQVMsaUJBQWlCQyxhQUFZLE1BQU07QUFDeEMsTUFBSUM7QUFDSixNQUFJLENBQUNEO0FBQ0Q7QUFDSixRQUFNRSxZQUFXRCxNQUFLLEtBQUssb0JBQW9CLFFBQVFBLFFBQU8sU0FBU0EsTUFBSyxLQUFLLG9CQUFvQixRQUMvRixnQkFDQSxLQUFLLFdBQVcsS0FBSyxtQkFBbUIsU0FDcEMsWUFDQTtBQUNWLFNBQU8sT0FBTyxLQUFLRCxXQUFVLEVBQ3hCLElBQUksQ0FBQyxRQUFRO0FBQ2QsUUFBSUMsS0FBSTtBQUNSLFVBQU0sU0FBU0EsTUFBS0QsWUFBVyxHQUFHLE9BQU8sUUFBUUMsUUFBTyxTQUFTQSxNQUFLO0FBQ3RFLFFBQUksS0FBSyxZQUFZLFdBQVc7QUFFNUIsYUFBTyxLQUFLLGVBQWUsSUFBSSxHQUFHLE9BQU8sUUFBUSxPQUFPLFNBQVMsS0FBSztBQUFBLElBQzFFO0FBQ0EsUUFBSSxDQUFDLEtBQUssY0FBYyxDQUFDLEtBQUssV0FBVyxVQUFVLElBQUk7QUFDbkQsYUFBTztBQUFBLElBQ1g7QUFDQSxXQUFPLEdBQUcsR0FBRyxLQUFLQyxRQUFPLEtBQUssQ0FBQztBQUFBLEVBQ25DLENBQUMsRUFDSSxLQUFLLEdBQUc7QUFDakI7QUFpQ08sU0FBUyxPQUFPLE1BQU0sVUFBVSxDQUFDLEdBQUc7QUFDdkMsUUFBTSxRQUFRLFlBQVksT0FBTyxPQUFPLENBQUMsSUFBSTtBQUM3QyxNQUFJLFNBQVM7QUFDYixXQUFTLElBQUksR0FBRyxJQUFJLE1BQU0sUUFBUSxLQUFLO0FBQ25DLGNBQVUsV0FBVyxNQUFNLENBQUMsR0FBRyxPQUFPO0FBQUEsRUFDMUM7QUFDQSxTQUFPO0FBQ1g7QUFFQSxTQUFTLFdBQVcsTUFBTSxTQUFTO0FBQy9CLFVBQVEsS0FBSyxNQUFNO0FBQUEsSUFDZixLQUFpQjtBQUNiLGFBQU8sT0FBTyxLQUFLLFVBQVUsT0FBTztBQUFBO0FBQUEsSUFFeEMsS0FBaUI7QUFBQSxJQUNqQixLQUFpQjtBQUNiLGFBQU8sZ0JBQWdCLElBQUk7QUFBQSxJQUMvQixLQUFpQjtBQUNiLGFBQU8sY0FBYyxJQUFJO0FBQUEsSUFDN0IsS0FBaUI7QUFDYixhQUFPLFlBQVksSUFBSTtBQUFBLElBQzNCLEtBQWlCO0FBQUEsSUFDakIsS0FBaUI7QUFBQSxJQUNqQixLQUFpQjtBQUNiLGFBQU8sVUFBVSxNQUFNLE9BQU87QUFBQSxJQUNsQyxLQUFpQjtBQUNiLGFBQU8sV0FBVyxNQUFNLE9BQU87QUFBQSxFQUN2QztBQUNKO0FBYUEsU0FBUyxVQUFVLE1BQU0sTUFBTTtBQUMzQixNQUFJRDtBQUVKLE1BQUksS0FBSyxZQUFZLFdBQVc7QUFFNUIsU0FBSyxRQUFRQSxNQUFLLGFBQWEsSUFBSSxLQUFLLElBQUksT0FBTyxRQUFRQSxRQUFPLFNBQVNBLE1BQUssS0FBSztBQUVyRixRQUFJLEtBQUssVUFDTCw2QkFBNkIsSUFBSSxLQUFLLE9BQU8sSUFBSSxHQUFHO0FBQ3BELGFBQU8sRUFBRSxHQUFHLE1BQU0sU0FBUyxNQUFNO0FBQUEsSUFDckM7QUFBQSxFQUNKO0FBQ0EsTUFBSSxDQUFDLEtBQUssV0FBVyxnQkFBZ0IsSUFBSSxLQUFLLElBQUksR0FBRztBQUNqRCxXQUFPLEVBQUUsR0FBRyxNQUFNLFNBQVMsVUFBVTtBQUFBLEVBQ3pDO0FBQ0EsTUFBSSxNQUFNLElBQUksS0FBSyxJQUFJO0FBQ3ZCLFFBQU0sVUFBVSxpQkFBaUIsS0FBSyxTQUFTLElBQUk7QUFDbkQsTUFBSSxTQUFTO0FBQ1QsV0FBTyxJQUFJLE9BQU87QUFBQSxFQUN0QjtBQUNBLE1BQUksS0FBSyxTQUFTLFdBQVcsTUFDeEIsS0FBSztBQUFBO0FBQUEsSUFFRSxLQUFLLG9CQUFvQjtBQUFBO0FBQUE7QUFBQSxJQUV6QixLQUFLLG1CQUFtQixVQUFVLElBQUksS0FBSyxJQUFJO0FBQUEsTUFBSTtBQUMzRCxRQUFJLENBQUMsS0FBSztBQUNOLGFBQU87QUFDWCxXQUFPO0FBQUEsRUFDWCxPQUNLO0FBQ0QsV0FBTztBQUNQLFFBQUksS0FBSyxTQUFTLFNBQVMsR0FBRztBQUMxQixhQUFPLE9BQU8sS0FBSyxVQUFVLElBQUk7QUFBQSxJQUNyQztBQUNBLFFBQUksS0FBSyxXQUFXLENBQUMsVUFBVSxJQUFJLEtBQUssSUFBSSxHQUFHO0FBQzNDLGFBQU8sS0FBSyxLQUFLLElBQUk7QUFBQSxJQUN6QjtBQUFBLEVBQ0o7QUFDQSxTQUFPO0FBQ1g7QUFDQSxTQUFTLGdCQUFnQixNQUFNO0FBQzNCLFNBQU8sSUFBSSxLQUFLLElBQUk7QUFDeEI7QUFDQSxTQUFTLFdBQVcsTUFBTSxNQUFNO0FBQzVCLE1BQUlBO0FBQ0osTUFBSUUsUUFBTyxLQUFLLFFBQVE7QUFFeEIsUUFBTUYsTUFBSyxLQUFLLG9CQUFvQixRQUFRQSxRQUFPLFNBQVNBLE1BQUssS0FBSyxvQkFBb0IsU0FDdEYsRUFBRSxDQUFDLEtBQUssV0FDSixLQUFLLFVBQ0wsa0JBQWtCLElBQUksS0FBSyxPQUFPLElBQUksSUFBSTtBQUM5QyxJQUFBRSxRQUNJLEtBQUssV0FBVyxLQUFLLG1CQUFtQixTQUNsQyxVQUFVQSxLQUFJLElBQ2QsV0FBV0EsS0FBSTtBQUFBLEVBQzdCO0FBQ0EsU0FBT0E7QUFDWDtBQUNBLFNBQVMsWUFBWSxNQUFNO0FBQ3ZCLFNBQU8sWUFBWSxLQUFLLFNBQVMsQ0FBQyxFQUFFLElBQUk7QUFDNUM7QUFDQSxTQUFTLGNBQWMsTUFBTTtBQUN6QixTQUFPLE9BQU8sS0FBSyxJQUFJO0FBQzNCO0FBN0xBLElBWU0sbUJBMkNBLFdBcUNDLGFBcUJELDhCQVdBO0FBNUhOLElBQUFDLFlBQUE7QUFBQTtBQUdBO0FBQ0EsSUFBQUE7QUFPQTtBQUNBLElBQU0sb0JBQW9CLG9CQUFJLElBQUk7QUFBQSxNQUM5QjtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxJQUNKLENBQUM7QUFrQ0QsSUFBTSxZQUFZLG9CQUFJLElBQUk7QUFBQSxNQUN0QjtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLElBQ0osQ0FBQztBQWlCRCxJQUFPLGNBQVE7QUFxQmYsSUFBTSwrQkFBK0Isb0JBQUksSUFBSTtBQUFBLE1BQ3pDO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxJQUNKLENBQUM7QUFDRCxJQUFNLGtCQUFrQixvQkFBSSxJQUFJLENBQUMsT0FBTyxNQUFNLENBQUM7QUFBQTtBQUFBOzs7QUMxR3pDLFNBQVUsYUFDWixNQUNBLFNBQThCO0FBRTlCLFNBQU8sWUFBVyxNQUFNLE9BQU87QUFDbkM7QUFTTSxTQUFVLGFBQ1osTUFDQSxTQUE4QjtBQUU5QixTQUFPLFlBQVksSUFBSSxJQUNqQixLQUFLLFNBQVMsSUFBSSxDQUFDQyxVQUFTLGFBQWFBLE9BQU0sT0FBTyxDQUFDLEVBQUUsS0FBSyxFQUFFLElBQ2hFO0FBQ1Y7QUFVTSxTQUFVLFFBQVEsTUFBeUI7QUFDN0MsTUFBSSxNQUFNLFFBQVEsSUFBSTtBQUFHLFdBQU8sS0FBSyxJQUFJLE9BQU8sRUFBRSxLQUFLLEVBQUU7QUFDekQsTUFBSUMsT0FBTSxJQUFJO0FBQUcsV0FBTyxLQUFLLFNBQVMsT0FBTyxPQUFPLFFBQVEsS0FBSyxRQUFRO0FBQ3pFLE1BQUksUUFBUSxJQUFJO0FBQUcsV0FBTyxRQUFRLEtBQUssUUFBUTtBQUMvQyxNQUFJLE9BQU8sSUFBSTtBQUFHLFdBQU8sS0FBSztBQUM5QixTQUFPO0FBQ1g7QUFVTSxTQUFVLFlBQVksTUFBeUI7QUFDakQsTUFBSSxNQUFNLFFBQVEsSUFBSTtBQUFHLFdBQU8sS0FBSyxJQUFJLFdBQVcsRUFBRSxLQUFLLEVBQUU7QUFDN0QsTUFBSSxZQUFZLElBQUksS0FBSyxDQUFDLFVBQVUsSUFBSSxHQUFHO0FBQ3ZDLFdBQU8sWUFBWSxLQUFLLFFBQVE7RUFDcEM7QUFDQSxNQUFJLE9BQU8sSUFBSTtBQUFHLFdBQU8sS0FBSztBQUM5QixTQUFPO0FBQ1g7QUFVTSxTQUFVLFVBQVUsTUFBeUI7QUFDL0MsTUFBSSxNQUFNLFFBQVEsSUFBSTtBQUFHLFdBQU8sS0FBSyxJQUFJLFNBQVMsRUFBRSxLQUFLLEVBQUU7QUFDM0QsTUFBSSxZQUFZLElBQUksTUFBTSxLQUFLLFNBQVMsWUFBWSxPQUFPLFFBQVEsSUFBSSxJQUFJO0FBQ3ZFLFdBQU8sVUFBVSxLQUFLLFFBQVE7RUFDbEM7QUFDQSxNQUFJLE9BQU8sSUFBSTtBQUFHLFdBQU8sS0FBSztBQUM5QixTQUFPO0FBQ1g7QUF6RkE7O0lBQUFDO0FBUUEsSUFBQUE7QUFDQTs7Ozs7QUNPTSxTQUFVLFlBQVksTUFBYTtBQUNyQyxTQUFPLFlBQVksSUFBSSxJQUFJLEtBQUssV0FBVyxDQUFBO0FBQy9DO0FBVU0sU0FBVSxVQUFVLE1BQWE7QUFDbkMsU0FBTyxLQUFLLFVBQVU7QUFDMUI7QUFhTSxTQUFVLFlBQVksTUFBYTtBQUNyQyxRQUFNQyxVQUFTLFVBQVUsSUFBSTtBQUM3QixNQUFJQSxXQUFVO0FBQU0sV0FBTyxZQUFZQSxPQUFNO0FBRTdDLFFBQU1DLFlBQVcsQ0FBQyxJQUFJO0FBQ3RCLE1BQUksRUFBRSxNQUFBQyxPQUFNLE1BQUFDLE1BQUksSUFBSztBQUNyQixTQUFPRCxTQUFRLE1BQU07QUFDakIsSUFBQUQsVUFBUyxRQUFRQyxLQUFJO0FBQ3JCLEtBQUMsRUFBRSxNQUFBQSxNQUFJLElBQUtBO0VBQ2hCO0FBQ0EsU0FBT0MsU0FBUSxNQUFNO0FBQ2pCLElBQUFGLFVBQVMsS0FBS0UsS0FBSTtBQUNsQixLQUFDLEVBQUUsTUFBQUEsTUFBSSxJQUFLQTtFQUNoQjtBQUNBLFNBQU9GO0FBQ1g7QUFVTSxTQUFVLGtCQUNaLE1BQ0EsTUFBWTs7QUFFWixVQUFPRyxNQUFBLEtBQUssYUFBTyxRQUFBQSxRQUFBLFNBQUEsU0FBQUEsSUFBRyxJQUFJO0FBQzlCO0FBVU0sU0FBVSxVQUFVLE1BQWUsTUFBWTtBQUNqRCxTQUNJLEtBQUssV0FBVyxRQUNoQixPQUFPLFVBQVUsZUFBZSxLQUFLLEtBQUssU0FBUyxJQUFJLEtBQ3ZELEtBQUssUUFBUSxJQUFJLEtBQUs7QUFFOUI7QUFTTSxTQUFVLFFBQVEsTUFBYTtBQUNqQyxTQUFPLEtBQUs7QUFDaEI7QUFVTSxTQUFVLG1CQUFtQixNQUFhO0FBQzVDLE1BQUksRUFBRSxNQUFBRCxNQUFJLElBQUs7QUFDZixTQUFPQSxVQUFTLFFBQVEsQ0FBQ0UsT0FBTUYsS0FBSTtBQUFHLEtBQUMsRUFBRSxNQUFBQSxNQUFJLElBQUtBO0FBQ2xELFNBQU9BO0FBQ1g7QUFVTSxTQUFVLG1CQUFtQixNQUFhO0FBQzVDLE1BQUksRUFBRSxNQUFBRCxNQUFJLElBQUs7QUFDZixTQUFPQSxVQUFTLFFBQVEsQ0FBQ0csT0FBTUgsS0FBSTtBQUFHLEtBQUMsRUFBRSxNQUFBQSxNQUFJLElBQUtBO0FBQ2xELFNBQU9BO0FBQ1g7QUFoSUE7O0lBQUFJOzs7OztBQ1FNLFNBQVUsY0FBYyxNQUFlO0FBQ3pDLE1BQUksS0FBSztBQUFNLFNBQUssS0FBSyxPQUFPLEtBQUs7QUFDckMsTUFBSSxLQUFLO0FBQU0sU0FBSyxLQUFLLE9BQU8sS0FBSztBQUVyQyxNQUFJLEtBQUssUUFBUTtBQUNiLFVBQU0sU0FBUyxLQUFLLE9BQU87QUFDM0IsVUFBTSxjQUFjLE9BQU8sWUFBWSxJQUFJO0FBQzNDLFFBQUksZUFBZSxHQUFHO0FBQ2xCLGFBQU8sT0FBTyxhQUFhLENBQUM7SUFDaEM7RUFDSjtBQUNBLE9BQUssT0FBTztBQUNaLE9BQUssT0FBTztBQUNaLE9BQUssU0FBUztBQUNsQjtBQVNNLFNBQVUsZUFBZSxNQUFpQixhQUFzQjtBQUNsRSxRQUFNQyxRQUFRLFlBQVksT0FBTyxLQUFLO0FBQ3RDLE1BQUlBLE9BQU07QUFDTixJQUFBQSxNQUFLLE9BQU87RUFDaEI7QUFFQSxRQUFNQyxRQUFRLFlBQVksT0FBTyxLQUFLO0FBQ3RDLE1BQUlBLE9BQU07QUFDTixJQUFBQSxNQUFLLE9BQU87RUFDaEI7QUFFQSxRQUFNQyxVQUFVLFlBQVksU0FBUyxLQUFLO0FBQzFDLE1BQUlBLFNBQVE7QUFDUixVQUFNLFNBQVNBLFFBQU87QUFDdEIsV0FBTyxPQUFPLFlBQVksSUFBSSxDQUFDLElBQUk7QUFDbkMsU0FBSyxTQUFTO0VBQ2xCO0FBQ0o7QUFTTSxTQUFVLFlBQVlBLFNBQW9CLE9BQWdCO0FBQzVELGdCQUFjLEtBQUs7QUFFbkIsUUFBTSxPQUFPO0FBQ2IsUUFBTSxTQUFTQTtBQUVmLE1BQUlBLFFBQU8sU0FBUyxLQUFLLEtBQUssSUFBSSxHQUFHO0FBQ2pDLFVBQU0sVUFBVUEsUUFBTyxTQUFTQSxRQUFPLFNBQVMsU0FBUyxDQUFDO0FBQzFELFlBQVEsT0FBTztBQUNmLFVBQU0sT0FBTztFQUNqQixPQUFPO0FBQ0gsVUFBTSxPQUFPO0VBQ2pCO0FBQ0o7QUFTTSxTQUFVQyxRQUFPLE1BQWlCRixPQUFlO0FBQ25ELGdCQUFjQSxLQUFJO0FBRWxCLFFBQU0sRUFBRSxRQUFBQyxRQUFNLElBQUs7QUFDbkIsUUFBTSxXQUFXLEtBQUs7QUFFdEIsRUFBQUQsTUFBSyxPQUFPO0FBQ1osRUFBQUEsTUFBSyxPQUFPO0FBQ1osT0FBSyxPQUFPQTtBQUNaLEVBQUFBLE1BQUssU0FBU0M7QUFFZCxNQUFJLFVBQVU7QUFDVixhQUFTLE9BQU9EO0FBQ2hCLFFBQUlDLFNBQVE7QUFDUixZQUFNLFNBQVNBLFFBQU87QUFDdEIsYUFBTyxPQUFPLE9BQU8sWUFBWSxRQUFRLEdBQUcsR0FBR0QsS0FBSTtJQUN2RDtFQUNKLFdBQVdDLFNBQVE7QUFDZixJQUFBQSxRQUFPLFNBQVMsS0FBS0QsS0FBSTtFQUM3QjtBQUNKO0FBU00sU0FBVSxhQUFhQyxTQUFvQixPQUFnQjtBQUM3RCxnQkFBYyxLQUFLO0FBRW5CLFFBQU0sU0FBU0E7QUFDZixRQUFNLE9BQU87QUFFYixNQUFJQSxRQUFPLFNBQVMsUUFBUSxLQUFLLE1BQU0sR0FBRztBQUN0QyxVQUFNLFVBQVVBLFFBQU8sU0FBUyxDQUFDO0FBQ2pDLFlBQVEsT0FBTztBQUNmLFVBQU0sT0FBTztFQUNqQixPQUFPO0FBQ0gsVUFBTSxPQUFPO0VBQ2pCO0FBQ0o7QUFTTSxTQUFVLFFBQVEsTUFBaUJGLE9BQWU7QUFDcEQsZ0JBQWNBLEtBQUk7QUFFbEIsUUFBTSxFQUFFLFFBQUFFLFFBQU0sSUFBSztBQUNuQixNQUFJQSxTQUFRO0FBQ1IsVUFBTSxTQUFTQSxRQUFPO0FBQ3RCLFdBQU8sT0FBTyxPQUFPLFFBQVEsSUFBSSxHQUFHLEdBQUdGLEtBQUk7RUFDL0M7QUFFQSxNQUFJLEtBQUssTUFBTTtBQUNYLFNBQUssS0FBSyxPQUFPQTtFQUNyQjtBQUVBLEVBQUFBLE1BQUssU0FBU0U7QUFDZCxFQUFBRixNQUFLLE9BQU8sS0FBSztBQUNqQixFQUFBQSxNQUFLLE9BQU87QUFDWixPQUFLLE9BQU9BO0FBQ2hCO0FBakpBOzs7Ozs7QUNVTSxTQUFVSSxRQUNaQyxPQUNBLE1BQ0EsVUFBVSxNQUNWLFFBQWdCLFVBQVE7QUFFeEIsU0FBTyxLQUFLQSxPQUFNLE1BQU0sUUFBUSxJQUFJLElBQUksT0FBTyxDQUFDLElBQUksR0FBRyxTQUFTLEtBQUs7QUFDekU7QUFZTSxTQUFVLEtBQ1pBLE9BQ0EsT0FDQSxTQUNBLE9BQWE7QUFFYixRQUFNLFNBQW9CLENBQUE7QUFFMUIsUUFBTSxZQUF5QixDQUFDLE1BQU0sUUFBUSxLQUFLLElBQUksUUFBUSxDQUFDLEtBQUssQ0FBQztBQUV0RSxRQUFNLGFBQWEsQ0FBQyxDQUFDO0FBRXJCLGFBQVM7QUFFTCxRQUFJLFdBQVcsQ0FBQyxLQUFLLFVBQVUsQ0FBQyxFQUFFLFFBQVE7QUFFdEMsVUFBSSxXQUFXLFdBQVcsR0FBRztBQUN6QixlQUFPO01BQ1g7QUFHQSxnQkFBVSxNQUFLO0FBQ2YsaUJBQVcsTUFBSztBQUdoQjtJQUNKO0FBRUEsVUFBTSxPQUFPLFVBQVUsQ0FBQyxFQUFFLFdBQVcsQ0FBQyxHQUFHO0FBRXpDLFFBQUlBLE1BQUssSUFBSSxHQUFHO0FBQ1osYUFBTyxLQUFLLElBQUk7QUFDaEIsVUFBSSxFQUFFLFNBQVM7QUFBRyxlQUFPO0lBQzdCO0FBRUEsUUFBSSxXQUFXLFlBQVksSUFBSSxLQUFLLEtBQUssU0FBUyxTQUFTLEdBQUc7QUFLMUQsaUJBQVcsUUFBUSxDQUFDO0FBQ3BCLGdCQUFVLFFBQVEsS0FBSyxRQUFRO0lBQ25DO0VBQ0o7QUFDSjtBQVdNLFNBQVUsYUFDWkEsT0FDQSxPQUFVO0FBRVYsU0FBTyxNQUFNLEtBQUtBLEtBQUk7QUFDMUI7QUFXTSxTQUFVLFFBQ1pBLE9BQ0EsT0FDQSxVQUFVLE1BQUk7QUFFZCxRQUFNLGdCQUFnQixNQUFNLFFBQVEsS0FBSyxJQUFJLFFBQVEsQ0FBQyxLQUFLO0FBQzNELFdBQVMsSUFBSSxHQUFHLElBQUksY0FBYyxRQUFRLEtBQUs7QUFDM0MsVUFBTSxPQUFPLGNBQWMsQ0FBQztBQUM1QixRQUFJQyxPQUFNLElBQUksS0FBS0QsTUFBSyxJQUFJLEdBQUc7QUFDM0IsYUFBTztJQUNYO0FBQ0EsUUFBSSxXQUFXLFlBQVksSUFBSSxLQUFLLEtBQUssU0FBUyxTQUFTLEdBQUc7QUFDMUQsWUFBTSxRQUFRLFFBQVFBLE9BQU0sS0FBSyxVQUFVLElBQUk7QUFDL0MsVUFBSTtBQUFPLGVBQU87SUFDdEI7RUFDSjtBQUVBLFNBQU87QUFDWDtBQVVNLFNBQVUsVUFDWkEsT0FDQSxPQUE2QjtBQUU3QixVQUFRLE1BQU0sUUFBUSxLQUFLLElBQUksUUFBUSxDQUFDLEtBQUssR0FBRyxLQUM1QyxDQUFDLFNBQ0lDLE9BQU0sSUFBSSxLQUFLRCxNQUFLLElBQUksS0FDeEIsWUFBWSxJQUFJLEtBQUssVUFBVUEsT0FBTSxLQUFLLFFBQVEsQ0FBRTtBQUVqRTtBQVlNLFNBQVUsUUFDWkEsT0FDQSxPQUE2QjtBQUU3QixRQUFNLFNBQVMsQ0FBQTtBQUNmLFFBQU0sWUFBWSxDQUFDLE1BQU0sUUFBUSxLQUFLLElBQUksUUFBUSxDQUFDLEtBQUssQ0FBQztBQUN6RCxRQUFNLGFBQWEsQ0FBQyxDQUFDO0FBRXJCLGFBQVM7QUFDTCxRQUFJLFdBQVcsQ0FBQyxLQUFLLFVBQVUsQ0FBQyxFQUFFLFFBQVE7QUFDdEMsVUFBSSxVQUFVLFdBQVcsR0FBRztBQUN4QixlQUFPO01BQ1g7QUFHQSxnQkFBVSxNQUFLO0FBQ2YsaUJBQVcsTUFBSztBQUdoQjtJQUNKO0FBRUEsVUFBTSxPQUFPLFVBQVUsQ0FBQyxFQUFFLFdBQVcsQ0FBQyxHQUFHO0FBRXpDLFFBQUlDLE9BQU0sSUFBSSxLQUFLRCxNQUFLLElBQUk7QUFBRyxhQUFPLEtBQUssSUFBSTtBQUUvQyxRQUFJLFlBQVksSUFBSSxLQUFLLEtBQUssU0FBUyxTQUFTLEdBQUc7QUFDL0MsaUJBQVcsUUFBUSxDQUFDO0FBQ3BCLGdCQUFVLFFBQVEsS0FBSyxRQUFRO0lBQ25DO0VBQ0o7QUFDSjtBQXRMQTs7SUFBQUU7Ozs7O0FDNkRBLFNBQVMsZUFDTCxRQUNBLE9BQXdEO0FBRXhELE1BQUksT0FBTyxVQUFVLFlBQVk7QUFDN0IsV0FBTyxDQUFDLFNBQWtCQyxPQUFNLElBQUksS0FBSyxNQUFNLEtBQUssUUFBUSxNQUFNLENBQUM7RUFDdkU7QUFDQSxTQUFPLENBQUMsU0FBa0JBLE9BQU0sSUFBSSxLQUFLLEtBQUssUUFBUSxNQUFNLE1BQU07QUFDdEU7QUFXQSxTQUFTLGFBQWEsR0FBYSxHQUFXO0FBQzFDLFNBQU8sQ0FBQyxTQUFrQixFQUFFLElBQUksS0FBSyxFQUFFLElBQUk7QUFDL0M7QUFVQSxTQUFTLFlBQVksU0FBd0I7QUFDekMsUUFBTSxRQUFRLE9BQU8sS0FBSyxPQUFPLEVBQUUsSUFBSSxDQUFDLFFBQU87QUFDM0MsVUFBTSxRQUFRLFFBQVEsR0FBRztBQUN6QixXQUFPLE9BQU8sVUFBVSxlQUFlLEtBQUssUUFBUSxHQUFHLElBQ2pELE9BQU8sR0FBRyxFQUFFLEtBQUssSUFDakIsZUFBZSxLQUFLLEtBQUs7RUFDbkMsQ0FBQztBQUVELFNBQU8sTUFBTSxXQUFXLElBQUksT0FBTyxNQUFNLE9BQU8sWUFBWTtBQUNoRTtBQVVNLFNBQVUsWUFBWSxTQUEwQixNQUFhO0FBQy9ELFFBQU1DLFFBQU8sWUFBWSxPQUFPO0FBQ2hDLFNBQU9BLFFBQU9BLE1BQUssSUFBSSxJQUFJO0FBQy9CO0FBWU0sU0FBVSxZQUNaLFNBQ0EsT0FDQSxTQUNBLFFBQWdCLFVBQVE7QUFFeEIsUUFBTUEsUUFBTyxZQUFZLE9BQU87QUFDaEMsU0FBT0EsUUFBT0MsUUFBT0QsT0FBTSxPQUFPLFNBQVMsS0FBSyxJQUFJLENBQUE7QUFDeEQ7QUFXTSxTQUFVLGVBQ1osSUFDQSxPQUNBLFVBQVUsTUFBSTtBQUVkLE1BQUksQ0FBQyxNQUFNLFFBQVEsS0FBSztBQUFHLFlBQVEsQ0FBQyxLQUFLO0FBQ3pDLFNBQU8sUUFBUSxlQUFlLE1BQU0sRUFBRSxHQUFHLE9BQU8sT0FBTztBQUMzRDtBQVlNLFNBQVUscUJBQ1osU0FDQSxPQUNBLFVBQVUsTUFDVixRQUFnQixVQUFRO0FBRXhCLFNBQU9DLFFBQ0gsT0FBTyxVQUFVLEVBQUUsT0FBTyxHQUMxQixPQUNBLFNBQ0EsS0FBSztBQUViO0FBWU0sU0FBVSx1QkFDWixXQUNBLE9BQ0EsVUFBVSxNQUNWLFFBQWdCLFVBQVE7QUFFeEIsU0FBT0EsUUFDSCxlQUFlLFNBQVMsU0FBUyxHQUNqQyxPQUNBLFNBQ0EsS0FBSztBQUViO0FBWU0sU0FBVSxxQkFDWixNQUNBLE9BQ0EsVUFBVSxNQUNWLFFBQWdCLFVBQVE7QUFFeEIsU0FBT0EsUUFBTyxPQUFPLFVBQVUsRUFBRSxJQUFjLEdBQUcsT0FBTyxTQUFTLEtBQUs7QUFDM0U7QUEzTkEsSUEwQk07QUExQk47O0lBQUFDO0FBRUE7QUF3QkEsSUFBTSxTQUdGO01BQ0EsU0FBUyxNQUFJO0FBQ1QsWUFBSSxPQUFPLFNBQVMsWUFBWTtBQUM1QixpQkFBTyxDQUFDLFNBQWtCSCxPQUFNLElBQUksS0FBSyxLQUFLLEtBQUssSUFBSTtRQUMzRCxXQUFXLFNBQVMsS0FBSztBQUNyQixpQkFBT0E7UUFDWDtBQUNBLGVBQU8sQ0FBQyxTQUFrQkEsT0FBTSxJQUFJLEtBQUssS0FBSyxTQUFTO01BQzNEO01BQ0EsU0FBUyxNQUFJO0FBQ1QsWUFBSSxPQUFPLFNBQVMsWUFBWTtBQUM1QixpQkFBTyxDQUFDLFNBQWtCLEtBQUssS0FBSyxJQUFJO1FBQzVDO0FBQ0EsZUFBTyxDQUFDLFNBQWtCLEtBQUssU0FBUztNQUM1QztNQUNBLGFBQWFJLE9BQUk7QUFDYixZQUFJLE9BQU9BLFVBQVMsWUFBWTtBQUM1QixpQkFBTyxDQUFDLFNBQWtCLE9BQU8sSUFBSSxLQUFLQSxNQUFLLEtBQUssSUFBSTtRQUM1RDtBQUNBLGVBQU8sQ0FBQyxTQUFrQixPQUFPLElBQUksS0FBSyxLQUFLLFNBQVNBO01BQzVEOzs7Ozs7QUN2Q0UsU0FBVSxjQUFjLE9BQWdCO0FBQzFDLE1BQUksTUFBTSxNQUFNO0FBTWhCLFNBQU8sRUFBRSxPQUFPLEdBQUc7QUFDZixVQUFNLE9BQU8sTUFBTSxHQUFHO0FBT3RCLFFBQUksTUFBTSxLQUFLLE1BQU0sWUFBWSxNQUFNLE1BQU0sQ0FBQyxLQUFLLEdBQUc7QUFDbEQsWUFBTSxPQUFPLEtBQUssQ0FBQztBQUNuQjtJQUNKO0FBRUEsYUFBUyxXQUFXLEtBQUssUUFBUSxVQUFVLFdBQVcsU0FBUyxRQUFRO0FBQ25FLFVBQUksTUFBTSxTQUFTLFFBQVEsR0FBRztBQUMxQixjQUFNLE9BQU8sS0FBSyxDQUFDO0FBQ25CO01BQ0o7SUFDSjtFQUNKO0FBRUEsU0FBTztBQUNYO0FBdUNNLFNBQVUsd0JBQ1osT0FDQSxPQUFjO0FBRWQsUUFBTSxXQUF5QixDQUFBO0FBQy9CLFFBQU0sV0FBeUIsQ0FBQTtBQUUvQixNQUFJLFVBQVUsT0FBTztBQUNqQixXQUFPO0VBQ1g7QUFFQSxNQUFJLFVBQVUsWUFBWSxLQUFLLElBQUksUUFBUSxNQUFNO0FBQ2pELFNBQU8sU0FBUztBQUNaLGFBQVMsUUFBUSxPQUFPO0FBQ3hCLGNBQVUsUUFBUTtFQUN0QjtBQUNBLFlBQVUsWUFBWSxLQUFLLElBQUksUUFBUSxNQUFNO0FBQzdDLFNBQU8sU0FBUztBQUNaLGFBQVMsUUFBUSxPQUFPO0FBQ3hCLGNBQVUsUUFBUTtFQUN0QjtBQUVBLFFBQU0sU0FBUyxLQUFLLElBQUksU0FBUyxRQUFRLFNBQVMsTUFBTTtBQUN4RCxNQUFJLE1BQU07QUFDVixTQUFPLE1BQU0sVUFBVSxTQUFTLEdBQUcsTUFBTSxTQUFTLEdBQUcsR0FBRztBQUNwRDtFQUNKO0FBRUEsTUFBSSxRQUFRLEdBQUc7QUFDWCxXQUFPLGlCQUFpQjtFQUM1QjtBQUVBLFFBQU0sZUFBZSxTQUFTLE1BQU0sQ0FBQztBQUNyQyxRQUFNQyxZQUFzQixhQUFhO0FBQ3pDLFFBQU0sV0FBVyxTQUFTLEdBQUc7QUFDN0IsUUFBTSxXQUFXLFNBQVMsR0FBRztBQUU3QixNQUFJQSxVQUFTLFFBQVEsUUFBUSxJQUFJQSxVQUFTLFFBQVEsUUFBUSxHQUFHO0FBQ3pELFFBQUksaUJBQWlCLE9BQU87QUFDeEIsYUFBTyxpQkFBaUIsWUFBWSxpQkFBaUI7SUFDekQ7QUFDQSxXQUFPLGlCQUFpQjtFQUM1QjtBQUNBLE1BQUksaUJBQWlCLE9BQU87QUFDeEIsV0FBTyxpQkFBaUIsWUFBWSxpQkFBaUI7RUFDekQ7QUFDQSxTQUFPLGlCQUFpQjtBQUM1QjtBQVdNLFNBQVUsV0FBOEIsT0FBVTtBQUNwRCxVQUFRLE1BQU0sT0FBTyxDQUFDLE1BQU0sR0FBRyxRQUFRLENBQUMsSUFBSSxTQUFTLE1BQU0sSUFBSSxDQUFDLENBQUM7QUFFakUsUUFBTSxLQUFLLENBQUMsR0FBRyxNQUFLO0FBQ2hCLFVBQU0sV0FBVyx3QkFBd0IsR0FBRyxDQUFDO0FBQzdDLFFBQUksV0FBVyxpQkFBaUIsV0FBVztBQUN2QyxhQUFPO0lBQ1gsV0FBVyxXQUFXLGlCQUFpQixXQUFXO0FBQzlDLGFBQU87SUFDWDtBQUNBLFdBQU87RUFDWCxDQUFDO0FBRUQsU0FBTztBQUNYO0FBdEpBLElBNENrQjtBQTVDbEI7O0lBQUFDO0FBNENBLEtBQUEsU0FBa0JDLG1CQUFnQjtBQUM5QixNQUFBQSxrQkFBQUEsa0JBQUEsY0FBQSxJQUFBLENBQUEsSUFBQTtBQUNBLE1BQUFBLGtCQUFBQSxrQkFBQSxXQUFBLElBQUEsQ0FBQSxJQUFBO0FBQ0EsTUFBQUEsa0JBQUFBLGtCQUFBLFdBQUEsSUFBQSxDQUFBLElBQUE7QUFDQSxNQUFBQSxrQkFBQUEsa0JBQUEsVUFBQSxJQUFBLENBQUEsSUFBQTtBQUNBLE1BQUFBLGtCQUFBQSxrQkFBQSxjQUFBLElBQUEsRUFBQSxJQUFBO0lBQ0osR0FOa0IscUJBQUEsbUJBQWdCLENBQUEsRUFBQTs7Ozs7QUNzQzVCLFNBQVUsUUFBUSxLQUFjO0FBQ2xDLFFBQU0sV0FBVyxjQUFjLGFBQWEsR0FBRztBQUUvQyxTQUFPLENBQUMsV0FDRixPQUNBLFNBQVMsU0FBUyxTQUNoQixZQUFZLFFBQVEsSUFDcEIsV0FBVyxRQUFRO0FBQy9CO0FBUUEsU0FBUyxZQUFZLFVBQWlCOztBQUNsQyxRQUFNLFNBQVMsU0FBUztBQUV4QixRQUFNLE9BQWE7SUFDZixNQUFNO0lBQ04sT0FBTyxxQkFBcUIsU0FBUyxNQUFNLEVBQUUsSUFBSSxDQUFDLFNBQVE7O0FBQ3RELFlBQU0sRUFBRSxVQUFBQyxVQUFRLElBQUs7QUFDckIsWUFBTUMsU0FBa0IsRUFBRSxPQUFPLGlCQUFpQkQsU0FBUSxFQUFDO0FBRTNELHVCQUFpQkMsUUFBTyxNQUFNLE1BQU1ELFNBQVE7QUFDNUMsdUJBQWlCQyxRQUFPLFNBQVMsU0FBU0QsU0FBUTtBQUVsRCxZQUFNRSxTQUFPQyxNQUFBLGNBQWMsUUFBUUgsU0FBUSxPQUFDLFFBQUFHLFFBQUEsU0FBQSxTQUFBQSxJQUFFLFFBQVEsTUFBTTtBQUM1RCxVQUFJRCxPQUFNO0FBQ04sUUFBQUQsT0FBTSxPQUFPQztNQUNqQjtBQUVBLFlBQU0sY0FDRkUsT0FBTSxXQUFXSixTQUFRLEtBQUtJLE9BQU0sV0FBV0osU0FBUTtBQUMzRCxVQUFJLGFBQWE7QUFDYixRQUFBQyxPQUFNLGNBQWM7TUFDeEI7QUFFQSxZQUFNLFVBQVVHLE9BQU0sV0FBV0osU0FBUTtBQUN6QyxVQUFJLFNBQVM7QUFDVCxRQUFBQyxPQUFNLFVBQVUsSUFBSSxLQUFLLE9BQU87TUFDcEM7QUFFQSxhQUFPQTtJQUNYLENBQUM7O0FBR0wsbUJBQWlCLE1BQU0sTUFBTSxNQUFNLE1BQU07QUFDekMsbUJBQWlCLE1BQU0sU0FBUyxTQUFTLE1BQU07QUFDL0MsUUFBTSxRQUFPRSxNQUFBLGNBQWMsUUFBUSxNQUFNLE9BQUMsUUFBQUEsUUFBQSxTQUFBLFNBQUFBLElBQUUsUUFBUSxNQUFNO0FBQzFELE1BQUksTUFBTTtBQUNOLFNBQUssT0FBTztFQUNoQjtBQUNBLG1CQUFpQixNQUFNLGVBQWUsWUFBWSxNQUFNO0FBRXhELFFBQU0sVUFBVUMsT0FBTSxXQUFXLE1BQU07QUFDdkMsTUFBSSxTQUFTO0FBQ1QsU0FBSyxVQUFVLElBQUksS0FBSyxPQUFPO0VBQ25DO0FBRUEsbUJBQWlCLE1BQU0sVUFBVSxTQUFTLFFBQVEsSUFBSTtBQUV0RCxTQUFPO0FBQ1g7QUFRQSxTQUFTLFdBQVcsVUFBaUI7O0FBQ2pDLFFBQU0sVUFBUyxNQUFBRCxNQUFBLGNBQWMsV0FBVyxTQUFTLFFBQVEsT0FBQyxRQUFBQSxRQUFBLFNBQUEsU0FBQUEsSUFBRSxjQUFRLFFBQUEsT0FBQSxTQUFBLEtBQUksQ0FBQTtBQUV4RSxRQUFNLE9BQWE7SUFDZixNQUFNLFNBQVMsS0FBSyxPQUFPLEdBQUcsQ0FBQztJQUMvQixJQUFJO0lBQ0osT0FBTyxxQkFBcUIsUUFBUSxTQUFTLFFBQVEsRUFBRSxJQUNuRCxDQUFDLFNBQWlCO0FBQ2QsWUFBTSxFQUFFLFVBQUFILFVBQVEsSUFBSztBQUNyQixZQUFNQyxTQUFrQixFQUFFLE9BQU8saUJBQWlCRCxTQUFRLEVBQUM7QUFDM0QsdUJBQWlCQyxRQUFPLE1BQU0sUUFBUUQsU0FBUTtBQUM5Qyx1QkFBaUJDLFFBQU8sU0FBUyxTQUFTRCxTQUFRO0FBQ2xELHVCQUFpQkMsUUFBTyxRQUFRLFFBQVFELFNBQVE7QUFDaEQsdUJBQWlCQyxRQUFPLGVBQWUsZUFBZUQsU0FBUTtBQUM5RCxZQUFNLFVBQ0ZJLE9BQU0sV0FBV0osU0FBUSxLQUFLSSxPQUFNLFdBQVdKLFNBQVE7QUFDM0QsVUFBSTtBQUFTLFFBQUFDLE9BQU0sVUFBVSxJQUFJLEtBQUssT0FBTztBQUU3QyxhQUFPQTtJQUNYLENBQUM7O0FBSVQsbUJBQWlCLE1BQU0sU0FBUyxTQUFTLE1BQU07QUFDL0MsbUJBQWlCLE1BQU0sUUFBUSxRQUFRLE1BQU07QUFDN0MsbUJBQWlCLE1BQU0sZUFBZSxlQUFlLE1BQU07QUFFM0QsUUFBTSxVQUFVRyxPQUFNLGlCQUFpQixNQUFNO0FBQzdDLE1BQUksU0FBUztBQUNULFNBQUssVUFBVSxJQUFJLEtBQUssT0FBTztFQUNuQztBQUVBLG1CQUFpQixNQUFNLFVBQVUsa0JBQWtCLFFBQVEsSUFBSTtBQUUvRCxTQUFPO0FBQ1g7QUFvQkEsU0FBUyxpQkFBaUIsT0FBZ0I7QUFDdEMsU0FBTyxxQkFBcUIsaUJBQWlCLEtBQUssRUFBRSxJQUFJLENBQUMsU0FBUTtBQUM3RCxVQUFNLEVBQUUsUUFBTyxJQUFLO0FBRXBCLFVBQU0sUUFBdUI7TUFDekIsUUFBUSxRQUFRLFFBQVE7TUFHeEIsV0FBVyxDQUFDLENBQUMsUUFBUSxXQUFXOztBQUdwQyxlQUFXLFVBQVUsbUJBQW1CO0FBQ3BDLFVBQUksUUFBUSxNQUFNLEdBQUc7QUFDakIsY0FBTSxNQUFNLElBQUksUUFBUSxNQUFNO01BQ2xDO0lBQ0o7QUFFQSxlQUFXLFVBQVUsZ0JBQWdCO0FBQ2pDLFVBQUksUUFBUSxNQUFNLEdBQUc7QUFDakIsY0FBTSxNQUFNLElBQUksU0FBUyxRQUFRLE1BQU0sR0FBRyxFQUFFO01BQ2hEO0lBQ0o7QUFFQSxRQUFJLFFBQVEsWUFBWSxHQUFHO0FBQ3ZCLFlBQU0sYUFBYSxRQUNmLFlBQVk7SUFFcEI7QUFFQSxXQUFPO0VBQ1gsQ0FBQztBQUNMO0FBU0EsU0FBUyxjQUNMLFNBQ0EsTUFBZTtBQUVmLFNBQU8scUJBQXFCLFNBQVMsTUFBTSxNQUFNLENBQUMsRUFBRSxDQUFDO0FBQ3pEO0FBVUEsU0FBU0EsT0FDTCxTQUNBLE9BQ0EsVUFBVSxPQUFLO0FBRWYsU0FBTyxZQUFZLHFCQUFxQixTQUFTLE9BQU8sU0FBUyxDQUFDLENBQUMsRUFBRSxLQUFJO0FBQzdFO0FBV0EsU0FBUyxpQkFDTCxLQUNBQyxPQUNBLFNBQ0EsT0FDQSxVQUFVLE9BQUs7QUFFZixRQUFNQyxPQUFNRixPQUFNLFNBQVMsT0FBTyxPQUFPO0FBQ3pDLE1BQUlFO0FBQUssUUFBSUQsS0FBSSxJQUFJQztBQUN6QjtBQVFBLFNBQVMsWUFBWSxPQUFhO0FBQzlCLFNBQU8sVUFBVSxTQUFTLFVBQVUsVUFBVSxVQUFVO0FBQzVEO0FBM1NBLElBOExNLG1CQUNBO0FBL0xOOzs7QUFDQTtBQTZMQSxJQUFNLG9CQUFvQixDQUFDLE9BQU8sUUFBUSxNQUFNO0FBQ2hELElBQU0saUJBQWlCO01BQ25CO01BQ0E7TUFDQTtNQUNBO01BQ0E7TUFDQTtNQUNBO01BQ0E7Ozs7OztBQ3hNSixJQUFBQyxlQUFBO1NBQUFBLGNBQUE7O2dCQUFBQztFQUFBOzs7Z0JBQUFDO0VBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztlQUFBQztFQUFBOzs7Ozs7Ozs7Ozs7SUFBQUMsWUFBQTs7O0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUEsSUFBQUE7Ozs7O0FDSkE7Ozs7O2VBQUFDO0VBQUE7Ozs7O0FBZ0JBLFNBQVNDLFFBQ1AsTUFDQSxLQUNBLFNBQXdCO0FBRXhCLE1BQUksQ0FBQztBQUFNLFdBQU87QUFFbEIsU0FBTyxLQUFLLFFBQUcsUUFBSCxRQUFHLFNBQUgsTUFBTyxLQUFLLE1BQU0sVUFBVSxNQUFNLFFBQVcsT0FBTyxFQUFFLFNBQVE7QUFDNUU7QUFTQSxTQUFTLFVBQ1AsS0FDQSxTQUF3QjtBQUV4QixTQUNFLENBQUMsV0FDRCxPQUFPLFFBQVEsWUFDZixPQUFPLFFBQ1AsRUFBRSxZQUFZLFFBQ2QsRUFBRSxVQUFVO0FBRWhCO0FBdUJNLFNBQVUsS0FFZCxLQUNBLFNBQXdCO0FBUXhCLFFBQU0sV0FBVyxVQUFVLEdBQUcsS0FBTSxVQUFVLEtBQU0sVUFBYTtBQU1qRSxRQUFNLE9BQU87SUFDWCxHQUFHLFNBQUksUUFBSixTQUFJLFNBQUEsU0FBSixLQUFNO0lBQ1QsR0FBRyxlQUFlLE9BQU87O0FBRzNCLFNBQU9BLFFBQU8sTUFBTSxVQUFVLElBQUk7QUFDcEM7QUFTTSxTQUFVLElBRWQsS0FBaUM7QUFFakMsUUFBTSxVQUFVLEVBQUUsR0FBRyxLQUFLLFVBQVUsU0FBUyxLQUFJO0FBRWpELFNBQU9BLFFBQU8sTUFBTSxLQUFLLE9BQU87QUFDbEM7QUFhTSxTQUFVLEtBRWQsVUFBNkI7QUFFN0IsUUFBTSxRQUFRLGFBQVEsUUFBUixhQUFRLFNBQVIsV0FBYSxPQUFPLEtBQUssS0FBSSxJQUFLLENBQUE7QUFFaEQsTUFBSSxNQUFNO0FBRVYsV0FBUyxJQUFJLEdBQUcsSUFBSSxNQUFNLFFBQVEsS0FBSztBQUNyQyxXQUFPLFlBQVksTUFBTSxDQUFDLENBQUM7RUFDN0I7QUFFQSxTQUFPO0FBQ1Q7QUFzQk0sU0FBVSxVQUVkQyxPQUNBLFNBQ0EsY0FBYyxPQUFPLFlBQVksWUFBWSxVQUFVLE9BQUs7QUFFNUQsTUFBSSxDQUFDQSxTQUFRLE9BQU9BLFVBQVMsVUFBVTtBQUNyQyxXQUFPO0VBQ1Q7QUFFQSxNQUFJLE9BQU8sWUFBWSxXQUFXO0FBQ2hDLGtCQUFjO0VBQ2hCO0FBRUEsUUFBTSxTQUFTLEtBQUssS0FBS0EsT0FBTSxLQUFLLFVBQVUsS0FBSztBQUNuRCxNQUFJLENBQUMsYUFBYTtBQUNoQixXQUFPLFFBQVEsRUFBRSxPQUFNO0VBQ3pCO0FBU0EsU0FBTyxDQUFDLEdBQUcsT0FBTyxLQUFJLEVBQUcsQ0FBQyxFQUFFLFFBQVE7QUFDdEM7QUFpQk0sU0FBVSxPQUFJO0FBQ2xCLFNBQU8sS0FBSyxLQUFLLEtBQUs7QUFDeEI7QUFhTSxTQUFVLFNBQVMsV0FBb0IsV0FBa0I7QUFFN0QsTUFBSSxjQUFjLFdBQVc7QUFDM0IsV0FBTztFQUNUO0FBTUEsTUFBSUMsUUFBdUI7QUFDM0IsU0FBT0EsU0FBUUEsVUFBU0EsTUFBSyxRQUFRO0FBQ25DLElBQUFBLFFBQU9BLE1BQUs7QUFDWixRQUFJQSxVQUFTLFdBQVc7QUFDdEIsYUFBTztJQUNUO0VBQ0Y7QUFFQSxTQUFPO0FBQ1Q7QUFXTSxTQUFVLFFBRWRDLE1BQU07QUFFTixTQUFPLEtBQUssS0FBSSxFQUFHLFFBQVFBLElBQUc7QUFDaEM7QUFjTSxTQUFVSixPQUNkLE1BQ0EsTUFBa0I7QUFFbEIsTUFBSSxDQUFDLFlBQVksSUFBSSxLQUFLLENBQUMsWUFBWSxJQUFJLEdBQUc7QUFDNUM7RUFDRjtBQUNBLE1BQUksWUFBWSxLQUFLO0FBQ3JCLFFBQU0sTUFBTSxDQUFDLEtBQUs7QUFFbEIsV0FBUyxJQUFJLEdBQUcsSUFBSSxLQUFLLEtBQUs7QUFDNUIsU0FBSyxXQUFXLElBQUksS0FBSyxDQUFDO0VBQzVCO0FBQ0EsT0FBSyxTQUFTO0FBQ2QsU0FBTztBQUNUO0FBU0EsU0FBUyxZQUFZLE1BQWE7QUFDaEMsTUFBSSxNQUFNLFFBQVEsSUFBSSxHQUFHO0FBQ3ZCLFdBQU87RUFDVDtBQUVBLE1BQ0UsT0FBTyxTQUFTLFlBQ2hCLFNBQVMsUUFDVCxFQUFFLFlBQVksU0FDZCxPQUFPLEtBQUssV0FBVyxZQUN2QixLQUFLLFNBQVMsR0FDZDtBQUNBLFdBQU87RUFDVDtBQUVBLFdBQVMsSUFBSSxHQUFHLElBQUksS0FBSyxRQUFRLEtBQUs7QUFDcEMsUUFBSSxFQUFFLEtBQUssT0FBTztBQUNoQixhQUFPO0lBQ1Q7RUFDRjtBQUNBLFNBQU87QUFDVDtBQW5UQTs7SUFBQUs7QUFDQTs7Ozs7QUNLTSxTQUFVLFVBQWEsY0FBaUI7QUFDNUMsU0FBTyxhQUFhLFdBQVc7QUFDakM7QUFVTSxTQUFVLFVBQVUsS0FBVztBQUNuQyxTQUFPLElBQUksUUFBUSxnQkFBZ0IsQ0FBQyxHQUFHLE1BQU0sRUFBRSxZQUFXLENBQUU7QUFDOUQ7QUFXTSxTQUFVLFFBQVEsS0FBVztBQUNqQyxTQUFPLElBQUksUUFBUSxVQUFVLEtBQUssRUFBRSxZQUFXO0FBQ2pEO0FBY00sU0FBVSxRQUdkLE9BQVksSUFBb0M7QUFDaEQsUUFBTSxNQUFNLE1BQU07QUFDbEIsV0FBUyxJQUFJLEdBQUcsSUFBSSxLQUFLO0FBQUssT0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDO0FBQzVDLFNBQU87QUFDVDtBQXFCTSxTQUFVLE9BQU8sS0FBVztBQUNoQyxRQUFNLFdBQVcsSUFBSSxRQUFRLEdBQUc7QUFFaEMsTUFBSSxXQUFXLEtBQUssV0FBVyxJQUFJLFNBQVM7QUFBRyxXQUFPO0FBRXRELFFBQU0sVUFBVSxJQUFJLFdBQVcsV0FBVyxDQUFDO0FBRTNDLFVBQ0ksV0FBVyxlQUFlLFVBQVUsV0FBVyxlQUFlLFVBQzdELFdBQVcsZUFBZSxVQUFVLFdBQVcsZUFBZSxVQUMvRCxZQUFZLGVBQWUsZ0JBQzdCLElBQUksU0FBUyxLQUFLLFdBQVcsQ0FBQztBQUVsQztBQXpGQSxJQXlEVztBQXpEWCxJQUFBQyxjQUFBOztBQXlEQSxLQUFBLFNBQVdDLGlCQUFjO0FBQ3ZCLE1BQUFBLGdCQUFBQSxnQkFBQSxRQUFBLElBQUEsRUFBQSxJQUFBO0FBQ0EsTUFBQUEsZ0JBQUFBLGdCQUFBLFFBQUEsSUFBQSxHQUFBLElBQUE7QUFDQSxNQUFBQSxnQkFBQUEsZ0JBQUEsUUFBQSxJQUFBLEVBQUEsSUFBQTtBQUNBLE1BQUFBLGdCQUFBQSxnQkFBQSxRQUFBLElBQUEsRUFBQSxJQUFBO0FBQ0EsTUFBQUEsZ0JBQUFBLGdCQUFBLGFBQUEsSUFBQSxFQUFBLElBQUE7SUFDRixHQU5XLG1CQUFBLGlCQUFjLENBQUEsRUFBQTs7Ozs7QUM1RHpCOzs7Ozs7Ozs7Ozs7QUE0Q0EsU0FBUyxRQUNQLE1BQ0EsTUFDQSxTQUFpQjs7QUFFakIsTUFBSSxDQUFDLFFBQVEsQ0FBQ0MsT0FBTSxJQUFJO0FBQUcsV0FBTztBQUVsQyxHQUFBQyxNQUFBLEtBQUssYUFBTyxRQUFBQSxRQUFBLFNBQUFBLE1BQVosS0FBSyxVQUFZLENBQUE7QUFHakIsTUFBSSxDQUFDLE1BQU07QUFDVCxXQUFPLEtBQUs7RUFDZDtBQUVBLE1BQUksT0FBTyxLQUFLLEtBQUssU0FBUyxJQUFJLEdBQUc7QUFFbkMsV0FBTyxDQUFDLFdBQVcsU0FBUyxLQUFLLElBQUksSUFBSSxPQUFPLEtBQUssUUFBUSxJQUFJO0VBQ25FO0FBR0EsTUFBSSxLQUFLLFNBQVMsWUFBWSxTQUFTLFNBQVM7QUFDOUMsV0FBTyxLQUFLLEtBQUssUUFBUTtFQUMzQjtBQUdBLE1BQ0UsS0FBSyxTQUFTLFlBQ2IsS0FBSyxRQUFRLE1BQU0sTUFBTSxXQUFXLEtBQUssUUFBUSxNQUFNLE1BQU0sZUFDOUQsU0FBUyxTQUNUO0FBQ0EsV0FBTztFQUNUO0FBRUEsU0FBTztBQUNUO0FBV0EsU0FBUyxRQUFRLElBQWEsTUFBYyxPQUFvQjtBQUM5RCxNQUFJLFVBQVUsTUFBTTtBQUNsQixvQkFBZ0IsSUFBSSxJQUFJO0VBQzFCLE9BQU87QUFDTCxPQUFHLFFBQVEsSUFBSSxJQUFJLEdBQUcsS0FBSztFQUM3QjtBQUNGO0FBdUZNLFNBQVUsS0FFZCxNQUNBLE9BR2lFO0FBR2pFLE1BQUksT0FBTyxTQUFTLFlBQVksVUFBVSxRQUFXO0FBQ25ELFFBQUksT0FBTyxVQUFVLFlBQVk7QUFDL0IsVUFBSSxPQUFPLFNBQVMsVUFBVTtBQUM1QjtBQUNFLGdCQUFNLElBQUksTUFBTSwrQkFBK0I7UUFDakQ7TUFDRjtBQUNBLGFBQU8sUUFBUSxNQUFNLENBQUMsSUFBSSxNQUFLO0FBQzdCLFlBQUlELE9BQU0sRUFBRTtBQUFHLGtCQUFRLElBQUksTUFBTSxNQUFNLEtBQUssSUFBSSxHQUFHLEdBQUcsUUFBUSxJQUFJLENBQUMsQ0FBQztNQUN0RSxDQUFDO0lBQ0g7QUFDQSxXQUFPLFFBQVEsTUFBTSxDQUFDLE9BQU07QUFDMUIsVUFBSSxDQUFDQSxPQUFNLEVBQUU7QUFBRztBQUVoQixVQUFJLE9BQU8sU0FBUyxVQUFVO0FBQzVCLG1CQUFXLFdBQVcsT0FBTyxLQUFLLElBQUksR0FBRztBQUN2QyxnQkFBTSxXQUFXLEtBQUssT0FBTztBQUM3QixrQkFBUSxJQUFJLFNBQVMsUUFBUTtRQUMvQjtNQUNGLE9BQU87QUFDTCxnQkFBUSxJQUFJLE1BQWdCLEtBQWU7TUFDN0M7SUFDRixDQUFDO0VBQ0g7QUFFQSxTQUFPLFVBQVUsU0FBUyxJQUN0QixPQUNBLFFBQVEsS0FBSyxDQUFDLEdBQUcsTUFBZ0IsS0FBSyxRQUFRLE9BQU87QUFDM0Q7QUFZQSxTQUFTLFFBQ1AsSUFDQSxNQUNBLFNBQWlCO0FBRWpCLFNBQU8sUUFBUTs7SUFFWCxHQUFHLElBQUk7TUFDUCxDQUFDLFdBQVcsU0FBUyxLQUFLLElBQUksSUFDNUIsUUFBUSxJQUFJLE1BQU0sS0FBSyxNQUFNLFNBQzdCLFFBQVEsSUFBSSxNQUFNLE9BQU87QUFDakM7QUFXQSxTQUFTLFFBQVEsSUFBYSxNQUFjLE9BQWdCLFNBQWlCO0FBQzNFLE1BQUksUUFBUSxJQUFJO0FBRWQsT0FBRyxJQUFJLElBQUk7RUFDYixPQUFPO0FBQ0wsWUFDRSxJQUNBLE1BQ0EsQ0FBQyxXQUFXLFNBQVMsS0FBSyxJQUFJLElBQUssUUFBUSxLQUFLLE9BQVEsR0FBRyxLQUFLLEVBQUU7RUFFdEU7QUFDRjtBQW1JTSxTQUFVLEtBRWQsTUFDQSxPQU1XOztBQUVYLE1BQUksT0FBTyxTQUFTLFlBQVksVUFBVSxRQUFXO0FBQ25ELFVBQU0sS0FBSyxLQUFLLENBQUM7QUFFakIsUUFBSSxDQUFDLE1BQU0sQ0FBQ0EsT0FBTSxFQUFFO0FBQUcsYUFBTztBQUU5QixZQUFRLE1BQU07TUFDWixLQUFLLFNBQVM7QUFDWixjQUFNLFdBQVcsS0FBSyxJQUFHO0FBQ3pCLGNBQU0sT0FBTyxPQUFPLEtBQUssUUFBUTtBQUNqQyxpQkFBUyxJQUFJLEdBQUcsSUFBSSxLQUFLLFFBQVEsS0FBSztBQUNwQyxtQkFBUyxDQUFDLElBQUksS0FBSyxDQUFDO1FBQ3RCO0FBRUEsaUJBQVMsU0FBUyxLQUFLO0FBRXZCLGVBQU87TUFDVDtNQUNBLEtBQUs7TUFDTCxLQUFLLFlBQVk7QUFDZixlQUFPLEdBQUcsS0FBSyxZQUFXO01BQzVCO01BRUEsS0FBSztNQUNMLEtBQUssT0FBTztBQUNWLGNBQU1FLFNBQU9ELE1BQUEsR0FBRyxhQUFPLFFBQUFBLFFBQUEsU0FBQSxTQUFBQSxJQUFHLElBQUk7QUFFOUIsWUFDRSxPQUFPLFFBQVEsZ0JBQ2IsU0FBUyxXQUFXLEdBQUcsWUFBWSxPQUFPLEdBQUcsWUFBWSxXQUN4RCxTQUFTLFVBQ1AsR0FBRyxZQUFZLFNBQ2QsR0FBRyxZQUFZLFlBQ2YsR0FBRyxZQUFZLFdBQ2YsR0FBRyxZQUFZLFdBQ2YsR0FBRyxZQUFZLGNBQ3JCQyxVQUFTLFVBQ1QsS0FBSyxRQUFRLFNBQ2I7QUFDQSxpQkFBTyxJQUFJLElBQUlBLE9BQU0sS0FBSyxRQUFRLE9BQU8sRUFBRTtRQUM3QztBQUVBLGVBQU9BO01BQ1Q7TUFFQSxLQUFLLGFBQWE7QUFDaEIsZUFBTyxVQUFVLEVBQUU7TUFDckI7TUFFQSxLQUFLLGVBQWU7QUFDbEIsZUFBTyxZQUFZLEVBQUU7TUFDdkI7TUFFQSxLQUFLLGFBQWE7QUFDaEIsZUFBTyxLQUFLLE1BQUssRUFBRyxLQUFLLGVBQWUsRUFBRSxPQUFNLEVBQUcsS0FBSTtNQUN6RDtNQUVBLEtBQUssYUFBYTtBQUNoQixlQUFPLEtBQUssS0FBSTtNQUNsQjtNQUVBLFNBQVM7QUFDUCxlQUFPLFFBQVEsSUFBSSxNQUFNLEtBQUssUUFBUSxPQUFPO01BQy9DO0lBQ0Y7RUFDRjtBQUVBLE1BQUksT0FBTyxTQUFTLFlBQVksVUFBVSxRQUFXO0FBQ25ELFFBQUksT0FBTyxVQUFVLFlBQVk7QUFDL0IsVUFBSSxPQUFPLFNBQVMsVUFBVTtBQUM1QixjQUFNLElBQUksVUFBVSwrQkFBK0I7TUFDckQ7QUFDQSxhQUFPLFFBQVEsTUFBTSxDQUFDLElBQUksTUFBSztBQUM3QixZQUFJRixPQUFNLEVBQUUsR0FBRztBQUNiLGtCQUNFLElBQ0EsTUFDQSxNQUFNLEtBQUssSUFBSSxHQUFHLFFBQVEsSUFBSSxNQUFNLEtBQUssUUFBUSxPQUFPLENBQUMsR0FDekQsS0FBSyxRQUFRLE9BQU87UUFFeEI7TUFDRixDQUFDO0lBQ0g7QUFFQSxXQUFPLFFBQVEsTUFBTSxDQUFDLE9BQU07QUFDMUIsVUFBSSxDQUFDQSxPQUFNLEVBQUU7QUFBRztBQUVoQixVQUFJLE9BQU8sU0FBUyxVQUFVO0FBQzVCLG1CQUFXLE9BQU8sT0FBTyxLQUFLLElBQUksR0FBRztBQUNuQyxnQkFBTUcsT0FBTSxLQUFLLEdBQUc7QUFDcEIsa0JBQVEsSUFBSSxLQUFLQSxNQUFLLEtBQUssUUFBUSxPQUFPO1FBQzVDO01BQ0YsT0FBTztBQUNMLGdCQUFRLElBQUksTUFBTSxPQUFPLEtBQUssUUFBUSxPQUFPO01BQy9DO0lBQ0YsQ0FBQztFQUNIO0FBRUEsU0FBTztBQUNUO0FBb0JBLFNBQVMsUUFDUCxNQUNBLE1BQ0EsT0FBZTs7QUFFZixHQUFBRixNQUFBLEtBQUssVUFBSSxRQUFBQSxRQUFBLFNBQUFBLE1BQVQsS0FBSyxPQUFTLENBQUE7QUFFZCxNQUFJLE9BQU8sU0FBUztBQUFVLFdBQU8sT0FBTyxLQUFLLE1BQU0sSUFBSTtXQUNsRCxPQUFPLFNBQVMsWUFBWSxVQUFVLFFBQVc7QUFDeEQsU0FBSyxLQUFLLElBQUksSUFBSTtFQUNwQjtBQUNGO0FBV0EsU0FBUyxZQUFZLElBQWU7QUFDbEMsYUFBVyxXQUFXLE9BQU8sS0FBSyxHQUFHLE9BQU8sR0FBRztBQUM3QyxRQUFJLENBQUMsUUFBUSxXQUFXLGNBQWMsR0FBRztBQUN2QztJQUNGO0FBRUEsVUFBTSxTQUFTLFVBQVUsUUFBUSxNQUFNLGVBQWUsTUFBTSxDQUFDO0FBRTdELFFBQUksQ0FBQyxPQUFPLEtBQUssR0FBRyxNQUFNLE1BQU0sR0FBRztBQUNqQyxTQUFHLEtBQU0sTUFBTSxJQUFJLGVBQWUsR0FBRyxRQUFRLE9BQU8sQ0FBQztJQUN2RDtFQUNGO0FBRUEsU0FBTyxHQUFHO0FBQ1o7QUFZQSxTQUFTLFNBQVMsSUFBaUIsTUFBWTtBQUM3QyxRQUFNLFVBQVUsaUJBQWlCLFFBQVEsSUFBSTtBQUM3QyxRQUFNRyxRQUFPLEdBQUc7QUFFaEIsTUFBSSxPQUFPLEtBQUtBLE9BQU0sSUFBSSxHQUFHO0FBQzNCLFdBQU9BLE1BQUssSUFBSTtFQUNsQjtBQUVBLE1BQUksT0FBTyxLQUFLLEdBQUcsU0FBUyxPQUFPLEdBQUc7QUFDcEMsV0FBUUEsTUFBSyxJQUFJLElBQUksZUFBZSxHQUFHLFFBQVEsT0FBTyxDQUFDO0VBQ3pEO0FBRUEsU0FBTztBQUNUO0FBVUEsU0FBUyxlQUFlLE9BQWE7QUFDbkMsTUFBSSxVQUFVO0FBQVEsV0FBTztBQUM3QixNQUFJLFVBQVU7QUFBUSxXQUFPO0FBQzdCLE1BQUksVUFBVTtBQUFTLFdBQU87QUFDOUIsUUFBTSxNQUFNLE9BQU8sS0FBSztBQUN4QixNQUFJLFVBQVUsT0FBTyxHQUFHO0FBQUcsV0FBTztBQUNsQyxNQUFJLE9BQU8sS0FBSyxLQUFLLEdBQUc7QUFDdEIsUUFBSTtBQUNGLGFBQU8sS0FBSyxNQUFNLEtBQUs7SUFDekIsUUFBUTtJQUVSO0VBQ0Y7QUFDQSxTQUFPO0FBQ1Q7QUF1Rk0sU0FBVSxLQUVkLE1BQ0EsT0FBZTs7QUFFZixRQUFNLE9BQU8sS0FBSyxDQUFDO0FBRW5CLE1BQUksQ0FBQyxRQUFRLENBQUNKLE9BQU0sSUFBSTtBQUFHO0FBRTNCLFFBQU0sU0FBc0I7QUFDNUIsR0FBQUMsTUFBQSxPQUFPLFVBQUksUUFBQUEsUUFBQSxTQUFBQSxNQUFYLE9BQU8sT0FBUyxDQUFBO0FBR2hCLE1BQUksUUFBUSxNQUFNO0FBQ2hCLFdBQU8sWUFBWSxNQUFNO0VBQzNCO0FBR0EsTUFBSSxPQUFPLFNBQVMsWUFBWSxVQUFVLFFBQVc7QUFDbkQsWUFBUSxNQUFNLENBQUMsT0FBTTtBQUNuQixVQUFJRCxPQUFNLEVBQUUsR0FBRztBQUNiLFlBQUksT0FBTyxTQUFTO0FBQVUsa0JBQVEsSUFBSSxJQUFJOztBQUN6QyxrQkFBUSxJQUFJLE1BQU0sS0FBZ0I7TUFDekM7SUFDRixDQUFDO0FBQ0QsV0FBTztFQUNUO0FBRUEsU0FBTyxTQUFTLFFBQVEsSUFBSTtBQUM5QjtBQXdDTSxTQUFVLElBRWQsT0FBeUI7QUFFekIsUUFBTSxXQUFXLFVBQVUsV0FBVztBQUN0QyxRQUFNLFVBQVUsS0FBSyxDQUFDO0FBRXRCLE1BQUksQ0FBQyxXQUFXLENBQUNBLE9BQU0sT0FBTztBQUFHLFdBQU8sV0FBVyxTQUFZO0FBRS9ELFVBQVEsUUFBUSxNQUFNO0lBQ3BCLEtBQUssWUFBWTtBQUNmLGFBQU8sS0FBSyxLQUFLLEtBQWU7SUFDbEM7SUFDQSxLQUFLLFVBQVU7QUFDYixZQUFNLFNBQVMsS0FBSyxLQUFLLGlCQUFpQjtBQUMxQyxVQUFJLENBQUMsVUFBVTtBQUNiLFlBQUksS0FBSyxLQUFLLFVBQVUsS0FBSyxRQUFRLE9BQU8sVUFBVSxVQUFVO0FBQzlELGlCQUFPO1FBQ1Q7QUFFQSxhQUFLLEtBQUssUUFBUSxFQUFFLFdBQVcsVUFBVTtBQUV6QyxjQUFNLFNBQVMsT0FBTyxVQUFVLFdBQVcsUUFBUSxDQUFDLEtBQUs7QUFDekQsbUJBQVdHLFFBQU8sUUFBUTtBQUN4QixlQUFLLEtBQUssaUJBQWlCQSxJQUFHLElBQUksRUFBRSxLQUFLLFlBQVksRUFBRTtRQUN6RDtBQUVBLGVBQU87TUFDVDtBQUVBLGFBQU8sS0FBSyxLQUFLLFVBQVUsSUFDdkIsT0FBTyxRQUFPLEVBQUcsSUFBSSxDQUFDLE9BQU8sS0FBSyxHQUFHLFFBQVEsQ0FBQyxJQUM5QyxPQUFPLEtBQUssT0FBTztJQUN6QjtJQUNBLEtBQUs7SUFDTCxLQUFLLFVBQVU7QUFDYixhQUFPLFdBQ0gsS0FBSyxLQUFLLE9BQU8sSUFDakIsS0FBSyxLQUFLLFNBQVMsS0FBZTtJQUN4QztFQUNGO0FBRUEsU0FBTztBQUNUO0FBU0EsU0FBUyxnQkFBZ0IsTUFBZSxNQUFZO0FBQ2xELE1BQUksQ0FBQyxLQUFLLFdBQVcsQ0FBQyxPQUFPLEtBQUssS0FBSyxTQUFTLElBQUk7QUFBRztBQUV2RCxTQUFPLEtBQUssUUFBUSxJQUFJO0FBQzFCO0FBU0EsU0FBUyxXQUFXLE9BQWM7QUFDaEMsU0FBTyxRQUFRLE1BQU0sS0FBSSxFQUFHLE1BQU0sTUFBTSxJQUFJLENBQUE7QUFDOUM7QUFxQk0sU0FBVSxXQUVkLE1BQVk7QUFFWixRQUFNLFlBQVksV0FBVyxJQUFJO0FBRWpDLGFBQVcsWUFBWSxXQUFXO0FBQ2hDLFlBQVEsTUFBTSxDQUFDLFNBQVE7QUFDckIsVUFBSUgsT0FBTSxJQUFJO0FBQUcsd0JBQWdCLE1BQU0sUUFBUTtJQUNqRCxDQUFDO0VBQ0g7QUFFQSxTQUFPO0FBQ1Q7QUF1Qk0sU0FBVSxTQUVkLFdBQWlCO0FBRWpCLFNBQU8sS0FBSyxRQUFPLEVBQUcsS0FBSyxDQUFDLFNBQVE7QUFDbEMsVUFBTSxRQUFRQSxPQUFNLElBQUksS0FBSyxLQUFLLFFBQVEsT0FBTztBQUNqRCxRQUFJLE1BQU07QUFFVixRQUFJLFNBQVMsVUFBVSxTQUFTLEdBQUc7QUFDakMsY0FBUSxNQUFNLE1BQU0sUUFBUSxXQUFXLE1BQU0sQ0FBQyxLQUFLLElBQUk7QUFDckQsY0FBTUssT0FBTSxNQUFNLFVBQVU7QUFFNUIsYUFDRyxRQUFRLEtBQUssT0FBTyxLQUFLLE1BQU0sTUFBTSxDQUFDLENBQUMsT0FDdkNBLFNBQVEsTUFBTSxVQUFVLE9BQU8sS0FBSyxNQUFNQSxJQUFHLENBQUMsSUFDL0M7QUFDQSxpQkFBTztRQUNUO01BQ0Y7SUFDRjtBQUVBLFdBQU87RUFDVCxDQUFDO0FBQ0g7QUFvQk0sU0FBVSxTQUVkLE9BRXlFO0FBR3pFLE1BQUksT0FBTyxVQUFVLFlBQVk7QUFDL0IsV0FBTyxRQUFRLE1BQU0sQ0FBQyxJQUFJLE1BQUs7QUFDN0IsVUFBSUwsT0FBTSxFQUFFLEdBQUc7QUFDYixjQUFNLFlBQVksR0FBRyxRQUFRLE9BQU8sS0FBSztBQUN6QyxpQkFBUyxLQUFLLENBQUMsRUFBRSxHQUFHLE1BQU0sS0FBSyxJQUFJLEdBQUcsU0FBUyxDQUFDO01BQ2xEO0lBQ0YsQ0FBQztFQUNIO0FBR0EsTUFBSSxDQUFDLFNBQVMsT0FBTyxVQUFVO0FBQVUsV0FBTztBQUVoRCxRQUFNLGFBQWEsTUFBTSxNQUFNLE1BQU07QUFDckMsUUFBTSxjQUFjLEtBQUs7QUFFekIsV0FBUyxJQUFJLEdBQUcsSUFBSSxhQUFhLEtBQUs7QUFDcEMsVUFBTSxLQUFLLEtBQUssQ0FBQztBQUVqQixRQUFJLENBQUNBLE9BQU0sRUFBRTtBQUFHO0FBR2hCLFVBQU0sWUFBWSxRQUFRLElBQUksU0FBUyxLQUFLO0FBRTVDLFFBQUksV0FBVztBQUNiLFVBQUksV0FBVyxJQUFJLFNBQVM7QUFHNUIsaUJBQVcsTUFBTSxZQUFZO0FBQzNCLGNBQU0sY0FBYyxHQUFHLEVBQUU7QUFDekIsWUFBSSxDQUFDLFNBQVMsU0FBUyxJQUFJLFdBQVcsRUFBRTtBQUFHLHNCQUFZO01BQ3pEO0FBRUEsY0FBUSxJQUFJLFNBQVMsU0FBUyxLQUFJLENBQUU7SUFDdEMsT0FBTztBQUNMLGNBQVEsSUFBSSxTQUFTLFdBQVcsS0FBSyxHQUFHLEVBQUUsS0FBSSxDQUFFO0lBQ2xEO0VBQ0Y7QUFFQSxTQUFPO0FBQ1Q7QUFzQk0sU0FBVSxZQUVkLE1BRXlFO0FBR3pFLE1BQUksT0FBTyxTQUFTLFlBQVk7QUFDOUIsV0FBTyxRQUFRLE1BQU0sQ0FBQyxJQUFJLE1BQUs7QUFDN0IsVUFBSUEsT0FBTSxFQUFFLEdBQUc7QUFDYixvQkFBWSxLQUFLLENBQUMsRUFBRSxHQUFHLEtBQUssS0FBSyxJQUFJLEdBQUcsR0FBRyxRQUFRLE9BQU8sS0FBSyxFQUFFLENBQUM7TUFDcEU7SUFDRixDQUFDO0VBQ0g7QUFFQSxRQUFNLFVBQVUsV0FBVyxJQUFJO0FBQy9CLFFBQU0sYUFBYSxRQUFRO0FBQzNCLFFBQU0sWUFBWSxVQUFVLFdBQVc7QUFFdkMsU0FBTyxRQUFRLE1BQU0sQ0FBQyxPQUFNO0FBQzFCLFFBQUksQ0FBQ0EsT0FBTSxFQUFFO0FBQUc7QUFFaEIsUUFBSSxXQUFXO0FBRWIsU0FBRyxRQUFRLE9BQU8sSUFBSTtJQUN4QixPQUFPO0FBQ0wsWUFBTSxZQUFZLFdBQVcsR0FBRyxRQUFRLE9BQU8sQ0FBQztBQUNoRCxVQUFJLFVBQVU7QUFFZCxlQUFTLElBQUksR0FBRyxJQUFJLFlBQVksS0FBSztBQUNuQyxjQUFNTSxTQUFRLFVBQVUsUUFBUSxRQUFRLENBQUMsQ0FBQztBQUUxQyxZQUFJQSxVQUFTLEdBQUc7QUFDZCxvQkFBVSxPQUFPQSxRQUFPLENBQUM7QUFDekIsb0JBQVU7QUFNVjtRQUNGO01BQ0Y7QUFDQSxVQUFJLFNBQVM7QUFDWCxXQUFHLFFBQVEsT0FBTyxJQUFJLFVBQVUsS0FBSyxHQUFHO01BQzFDO0lBQ0Y7RUFDRixDQUFDO0FBQ0g7QUF1Qk0sU0FBVSxZQUVkLE9BUUEsVUFBa0I7QUFHbEIsTUFBSSxPQUFPLFVBQVUsWUFBWTtBQUMvQixXQUFPLFFBQVEsTUFBTSxDQUFDLElBQUksTUFBSztBQUM3QixVQUFJTixPQUFNLEVBQUUsR0FBRztBQUNiLG9CQUFZLEtBQ1YsQ0FBQyxFQUFFLEdBQ0gsTUFBTSxLQUFLLElBQUksR0FBRyxHQUFHLFFBQVEsT0FBTyxLQUFLLElBQUksUUFBUSxHQUNyRCxRQUFRO01BRVo7SUFDRixDQUFDO0VBQ0g7QUFHQSxNQUFJLENBQUMsU0FBUyxPQUFPLFVBQVU7QUFBVSxXQUFPO0FBRWhELFFBQU0sYUFBYSxNQUFNLE1BQU0sTUFBTTtBQUNyQyxRQUFNLGFBQWEsV0FBVztBQUM5QixRQUFNLFFBQVEsT0FBTyxhQUFhLFlBQWEsV0FBVyxJQUFJLEtBQU07QUFDcEUsUUFBTSxjQUFjLEtBQUs7QUFFekIsV0FBUyxJQUFJLEdBQUcsSUFBSSxhQUFhLEtBQUs7QUFDcEMsVUFBTSxLQUFLLEtBQUssQ0FBQztBQUVqQixRQUFJLENBQUNBLE9BQU0sRUFBRTtBQUFHO0FBRWhCLFVBQU0saUJBQWlCLFdBQVcsR0FBRyxRQUFRLE9BQU8sQ0FBQztBQUdyRCxhQUFTLElBQUksR0FBRyxJQUFJLFlBQVksS0FBSztBQUVuQyxZQUFNTSxTQUFRLGVBQWUsUUFBUSxXQUFXLENBQUMsQ0FBQztBQUdsRCxVQUFJLFNBQVMsS0FBS0EsU0FBUSxHQUFHO0FBQzNCLHVCQUFlLEtBQUssV0FBVyxDQUFDLENBQUM7TUFDbkMsV0FBVyxTQUFTLEtBQUtBLFVBQVMsR0FBRztBQUVuQyx1QkFBZSxPQUFPQSxRQUFPLENBQUM7TUFDaEM7SUFDRjtBQUVBLE9BQUcsUUFBUSxPQUFPLElBQUksZUFBZSxLQUFLLEdBQUc7RUFDL0M7QUFFQSxTQUFPO0FBQ1Q7QUF6bUNBLElBV00sUUFDQSxRQUNBLGdCQUdBLFVBR0E7QUFuQk47O0FBTUE7QUFDQSxJQUFBQztBQUNBLElBQUFDO0FBRUEsSUFBQUE7QUFDQSxJQUFNLFNBQVMsT0FBTyxVQUFVO0FBQ2hDLElBQU0sU0FBUztBQUNmLElBQU0saUJBQWlCO0FBR3ZCLElBQU0sV0FDSjtBQUVGLElBQU0sU0FBUzs7Ozs7QUNuQmY7QUFBQSxnREFBQUMsVUFBQTtBQUFBO0FBQ0EsV0FBTyxlQUFlQSxVQUFTLGNBQWMsRUFBRSxPQUFPLEtBQUssQ0FBQztBQUM1RCxJQUFBQSxTQUFRLGtCQUFrQkEsU0FBUSxpQkFBaUJBLFNBQVEsZUFBZTtBQUMxRSxRQUFJQztBQUNKLEtBQUMsU0FBVUEsZUFBYztBQUNyQixNQUFBQSxjQUFhLFdBQVcsSUFBSTtBQUM1QixNQUFBQSxjQUFhLFFBQVEsSUFBSTtBQUN6QixNQUFBQSxjQUFhLGVBQWUsSUFBSTtBQUNoQyxNQUFBQSxjQUFhLEtBQUssSUFBSTtBQUN0QixNQUFBQSxjQUFhLFdBQVcsSUFBSTtBQUU1QixNQUFBQSxjQUFhLFVBQVUsSUFBSTtBQUMzQixNQUFBQSxjQUFhLE9BQU8sSUFBSTtBQUN4QixNQUFBQSxjQUFhLFlBQVksSUFBSTtBQUM3QixNQUFBQSxjQUFhLFFBQVEsSUFBSTtBQUN6QixNQUFBQSxjQUFhLFNBQVMsSUFBSTtBQUMxQixNQUFBQSxjQUFhLGtCQUFrQixJQUFJO0FBQUEsSUFDdkMsR0FBR0EsZ0JBQWVELFNBQVEsaUJBQWlCQSxTQUFRLGVBQWUsQ0FBQyxFQUFFO0FBUXJFLElBQUFBLFNBQVEsaUJBQWlCO0FBQUEsTUFDckIsU0FBUztBQUFBLE1BQ1QsWUFBWTtBQUFBLE1BQ1osWUFBWTtBQUFBLE1BQ1osZUFBZTtBQUFBLElBQ25CO0FBQ0EsUUFBSUU7QUFDSixLQUFDLFNBQVVBLGtCQUFpQjtBQUN4QixNQUFBQSxpQkFBZ0IsS0FBSyxJQUFJO0FBQ3pCLE1BQUFBLGlCQUFnQixTQUFTLElBQUk7QUFDN0IsTUFBQUEsaUJBQWdCLEtBQUssSUFBSTtBQUN6QixNQUFBQSxpQkFBZ0IsUUFBUSxJQUFJO0FBQzVCLE1BQUFBLGlCQUFnQixRQUFRLElBQUk7QUFDNUIsTUFBQUEsaUJBQWdCLFFBQVEsSUFBSTtBQUM1QixNQUFBQSxpQkFBZ0IsS0FBSyxJQUFJO0FBQ3pCLE1BQUFBLGlCQUFnQixPQUFPLElBQUk7QUFBQSxJQUMvQixHQUFHQSxtQkFBa0JGLFNBQVEsb0JBQW9CQSxTQUFRLGtCQUFrQixDQUFDLEVBQUU7QUFBQTtBQUFBOzs7QUN6QzlFO0FBQUEsZ0RBQUFHLFVBQUE7QUFBQTtBQUNBLFdBQU8sZUFBZUEsVUFBUyxjQUFjLEVBQUUsT0FBTyxLQUFLLENBQUM7QUFDNUQsSUFBQUEsU0FBUSxRQUFRQSxTQUFRLGNBQWM7QUFDdEMsUUFBSSxVQUFVO0FBQ2QsUUFBSSxTQUFTO0FBQ2IsUUFBSSxXQUFXO0FBQ2YsUUFBSSxjQUFjLG9CQUFJLElBQUk7QUFBQSxNQUN0QixDQUFDLEtBQWlCLFFBQVEsZ0JBQWdCLE9BQU87QUFBQSxNQUNqRCxDQUFDLElBQXFCLFFBQVEsZ0JBQWdCLEtBQUs7QUFBQSxNQUNuRCxDQUFDLElBQWlCLFFBQVEsZ0JBQWdCLEdBQUc7QUFBQSxNQUM3QyxDQUFDLElBQW1CLFFBQVEsZ0JBQWdCLEdBQUc7QUFBQSxNQUMvQyxDQUFDLElBQTBCLFFBQVEsZ0JBQWdCLEdBQUc7QUFBQSxNQUN0RCxDQUFDLEtBQWdCLFFBQVEsZ0JBQWdCLE1BQU07QUFBQSxJQUNuRCxDQUFDO0FBRUQsUUFBSSxnQkFBZ0Isb0JBQUksSUFBSTtBQUFBLE1BQ3hCO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsSUFDSixDQUFDO0FBUUQsYUFBU0MsYUFBWSxVQUFVO0FBQzNCLGNBQVEsU0FBUyxNQUFNO0FBQUEsUUFDbkIsS0FBSyxRQUFRLGFBQWE7QUFBQSxRQUMxQixLQUFLLFFBQVEsYUFBYTtBQUFBLFFBQzFCLEtBQUssUUFBUSxhQUFhO0FBQUEsUUFDMUIsS0FBSyxRQUFRLGFBQWE7QUFBQSxRQUMxQixLQUFLLFFBQVEsYUFBYTtBQUFBLFFBQzFCLEtBQUssUUFBUSxhQUFhO0FBQ3RCLGlCQUFPO0FBQUEsUUFDWDtBQUNJLGlCQUFPO0FBQUEsTUFDZjtBQUFBLElBQ0o7QUFDQSxJQUFBRCxTQUFRLGNBQWNDO0FBQ3RCLFFBQUkseUJBQXlCLG9CQUFJLElBQUksQ0FBQyxZQUFZLFdBQVcsQ0FBQztBQUU5RCxhQUFTLFVBQVUsR0FBRyxTQUFTLG1CQUFtQjtBQUM5QyxVQUFJLE9BQU8sU0FBUyxTQUFTLEVBQUUsSUFBSTtBQUVuQyxhQUFPLFNBQVMsUUFBUSxvQkFDbEIsVUFDQSxPQUFPO0FBQUE7QUFBQSxRQUVELE9BQU8sYUFBYSxPQUFPLEtBQU87QUFBQTtBQUFBO0FBQUEsUUFFbEMsT0FBTyxhQUFjLFFBQVEsS0FBTSxPQUFTLE9BQU8sT0FBUyxLQUFNO0FBQUE7QUFBQSxJQUNsRjtBQUNBLGFBQVMsWUFBWSxLQUFLO0FBQ3RCLGFBQU8sSUFBSSxRQUFRLFVBQVUsU0FBUztBQUFBLElBQzFDO0FBQ0EsYUFBU0MsU0FBUSxHQUFHO0FBQ2hCLGFBQU8sTUFBTSxNQUF3QixNQUFNO0FBQUEsSUFDL0M7QUFDQSxhQUFTQyxjQUFhLEdBQUc7QUFDckIsYUFBUSxNQUFNLE1BQ1YsTUFBTSxLQUNOLE1BQU0sTUFDTixNQUFNLE1BQ04sTUFBTTtBQUFBLElBQ2Q7QUFVQSxhQUFTQyxPQUFNLFVBQVU7QUFDckIsVUFBSUMsY0FBYSxDQUFDO0FBQ2xCLFVBQUksV0FBVyxjQUFjQSxhQUFZLEdBQUcsT0FBTyxRQUFRLEdBQUcsQ0FBQztBQUMvRCxVQUFJLFdBQVcsU0FBUyxRQUFRO0FBQzVCLGNBQU0sSUFBSSxNQUFNLHVCQUF1QixPQUFPLFNBQVMsTUFBTSxRQUFRLENBQUMsQ0FBQztBQUFBLE1BQzNFO0FBQ0EsYUFBT0E7QUFBQSxJQUNYO0FBQ0EsSUFBQUwsU0FBUSxRQUFRSTtBQUNoQixhQUFTLGNBQWNDLGFBQVksVUFBVSxlQUFlO0FBQ3hELFVBQUksU0FBUyxDQUFDO0FBQ2QsZUFBU0MsU0FBUSxRQUFRO0FBQ3JCLFlBQUksUUFBUSxTQUFTLE1BQU0sZ0JBQWdCLE1BQU0sRUFBRSxNQUFNLE1BQU07QUFDL0QsWUFBSSxDQUFDLE9BQU87QUFDUixnQkFBTSxJQUFJLE1BQU0sd0JBQXdCLE9BQU8sU0FBUyxNQUFNLGFBQWEsQ0FBQyxDQUFDO0FBQUEsUUFDakY7QUFDQSxZQUFJLE9BQU8sTUFBTSxDQUFDO0FBQ2xCLHlCQUFpQixTQUFTLEtBQUs7QUFDL0IsZUFBTyxZQUFZLElBQUk7QUFBQSxNQUMzQjtBQUNBLGVBQVMsZ0JBQWdCLFFBQVE7QUFDN0IseUJBQWlCO0FBQ2pCLGVBQU8sZ0JBQWdCLFNBQVMsVUFDNUJILGNBQWEsU0FBUyxXQUFXLGFBQWEsQ0FBQyxHQUFHO0FBQ2xEO0FBQUEsUUFDSjtBQUFBLE1BQ0o7QUFDQSxlQUFTLDJCQUEyQjtBQUNoQyx5QkFBaUI7QUFDakIsWUFBSSxRQUFRO0FBQ1osWUFBSSxVQUFVO0FBQ2QsZUFBTyxVQUFVLEtBQUssZ0JBQWdCLFNBQVMsUUFBUSxpQkFBaUI7QUFDcEUsY0FBSSxTQUFTLFdBQVcsYUFBYSxNQUNqQyxNQUNBLENBQUMsVUFBVSxhQUFhLEdBQUc7QUFDM0I7QUFBQSxVQUNKLFdBQ1MsU0FBUyxXQUFXLGFBQWEsTUFDdEMsTUFDQSxDQUFDLFVBQVUsYUFBYSxHQUFHO0FBQzNCO0FBQUEsVUFDSjtBQUFBLFFBQ0o7QUFDQSxZQUFJLFNBQVM7QUFDVCxnQkFBTSxJQUFJLE1BQU0seUJBQXlCO0FBQUEsUUFDN0M7QUFDQSxlQUFPLFlBQVksU0FBUyxNQUFNLE9BQU8sZ0JBQWdCLENBQUMsQ0FBQztBQUFBLE1BQy9EO0FBQ0EsZUFBUyxVQUFVLEtBQUs7QUFDcEIsWUFBSSxhQUFhO0FBQ2pCLGVBQU8sU0FBUyxXQUFXLEVBQUUsR0FBRyxNQUFNO0FBQ2xDO0FBQ0osZ0JBQVEsYUFBYSxPQUFPO0FBQUEsTUFDaEM7QUFDQSxlQUFTLHFCQUFxQjtBQUMxQixZQUFJLE9BQU8sU0FBUyxLQUFLRixhQUFZLE9BQU8sT0FBTyxTQUFTLENBQUMsQ0FBQyxHQUFHO0FBQzdELGdCQUFNLElBQUksTUFBTSx1Q0FBdUM7QUFBQSxRQUMzRDtBQUFBLE1BQ0o7QUFDQSxlQUFTLGFBQWEsTUFBTTtBQUN4QixZQUFJLE9BQU8sU0FBUyxLQUNoQixPQUFPLE9BQU8sU0FBUyxDQUFDLEVBQUUsU0FBUyxRQUFRLGFBQWEsWUFBWTtBQUNwRSxpQkFBTyxPQUFPLFNBQVMsQ0FBQyxFQUFFLE9BQU87QUFDakM7QUFBQSxRQUNKO0FBQ0EsMkJBQW1CO0FBQ25CLGVBQU8sS0FBSyxFQUFFLEtBQVcsQ0FBQztBQUFBLE1BQzlCO0FBQ0EsZUFBUyxvQkFBb0IsTUFBTU0sU0FBUTtBQUN2QyxlQUFPLEtBQUs7QUFBQSxVQUNSLE1BQU0sUUFBUSxhQUFhO0FBQUEsVUFDM0I7QUFBQSxVQUNBLFFBQVFBO0FBQUEsVUFDUixPQUFPRCxTQUFRLENBQUM7QUFBQSxVQUNoQixXQUFXO0FBQUEsVUFDWCxZQUFZO0FBQUEsUUFDaEIsQ0FBQztBQUFBLE1BQ0w7QUFRQSxlQUFTLHNCQUFzQjtBQUMzQixZQUFJLE9BQU8sVUFDUCxPQUFPLE9BQU8sU0FBUyxDQUFDLEVBQUUsU0FBUyxRQUFRLGFBQWEsWUFBWTtBQUNwRSxpQkFBTyxJQUFJO0FBQUEsUUFDZjtBQUNBLFlBQUksT0FBTyxXQUFXLEdBQUc7QUFDckIsZ0JBQU0sSUFBSSxNQUFNLG9CQUFvQjtBQUFBLFFBQ3hDO0FBQ0EsUUFBQUQsWUFBVyxLQUFLLE1BQU07QUFBQSxNQUMxQjtBQUNBLHNCQUFnQixDQUFDO0FBQ2pCLFVBQUksU0FBUyxXQUFXLGVBQWU7QUFDbkMsZUFBTztBQUFBLE1BQ1g7QUFDQSxXQUFNLFFBQU8sZ0JBQWdCLFNBQVMsUUFBUTtBQUMxQyxZQUFJLFlBQVksU0FBUyxXQUFXLGFBQWE7QUFDakQsZ0JBQVEsV0FBVztBQUFBO0FBQUEsVUFFZixLQUFLO0FBQUEsVUFDTCxLQUFLO0FBQUEsVUFDTCxLQUFLO0FBQUEsVUFDTCxLQUFLO0FBQUEsVUFDTCxLQUFLLElBQXlCO0FBQzFCLGdCQUFJLE9BQU8sV0FBVyxLQUNsQixPQUFPLENBQUMsRUFBRSxTQUFTLFFBQVEsYUFBYSxZQUFZO0FBQ3BELGlDQUFtQjtBQUNuQixxQkFBTyxLQUFLLEVBQUUsTUFBTSxRQUFRLGFBQWEsV0FBVyxDQUFDO0FBQUEsWUFDekQ7QUFDQSw0QkFBZ0IsQ0FBQztBQUNqQjtBQUFBLFVBQ0o7QUFBQTtBQUFBLFVBRUEsS0FBSyxJQUFzQjtBQUN2Qix5QkFBYSxRQUFRLGFBQWEsS0FBSztBQUN2Qyw0QkFBZ0IsQ0FBQztBQUNqQjtBQUFBLFVBQ0o7QUFBQSxVQUNBLEtBQUssSUFBbUI7QUFDcEIseUJBQWEsUUFBUSxhQUFhLE1BQU07QUFDeEMsNEJBQWdCLENBQUM7QUFDakI7QUFBQSxVQUNKO0FBQUEsVUFDQSxLQUFLLEtBQWlCO0FBQ2xCLHlCQUFhLFFBQVEsYUFBYSxPQUFPO0FBQ3pDLDRCQUFnQixDQUFDO0FBQ2pCO0FBQUEsVUFDSjtBQUFBLFVBQ0EsS0FBSyxJQUFlO0FBQ2hCLHlCQUFhLFFBQVEsYUFBYSxRQUFRO0FBQzFDLDRCQUFnQixDQUFDO0FBQ2pCO0FBQUEsVUFDSjtBQUFBO0FBQUEsVUFFQSxLQUFLLElBQWlCO0FBQ2xCLGdDQUFvQixTQUFTLFFBQVEsZ0JBQWdCLE9BQU87QUFDNUQ7QUFBQSxVQUNKO0FBQUEsVUFDQSxLQUFLLElBQWU7QUFDaEIsZ0NBQW9CLE1BQU0sUUFBUSxnQkFBZ0IsTUFBTTtBQUN4RDtBQUFBLFVBQ0o7QUFBQSxVQUNBLEtBQUssSUFBNEI7QUFDN0IsNEJBQWdCLENBQUM7QUFFakIsZ0JBQUksU0FBUztBQUNiLGdCQUFJLFlBQVk7QUFDaEIsZ0JBQUksU0FBUyxXQUFXLGFBQWEsTUFBTSxLQUFnQjtBQUV2RCx1QkFBU0MsU0FBUSxDQUFDO0FBQUEsWUFDdEIsV0FDUyxTQUFTLFdBQVcsTUFBTSxhQUFhLEdBQUc7QUFDL0MsMEJBQVk7QUFDWix1QkFBU0EsU0FBUSxDQUFDO0FBQUEsWUFDdEIsT0FDSztBQUNELHVCQUFTQSxTQUFRLENBQUM7QUFDbEIsa0JBQUksU0FBUyxXQUFXLGFBQWEsTUFBTSxPQUN2QyxTQUFTLFdBQVcsZ0JBQWdCLENBQUMsTUFDakMsSUFBZ0I7QUFDcEIsNEJBQVk7QUFDWix5QkFBU0EsU0FBUSxDQUFDO0FBQUEsY0FDdEI7QUFBQSxZQUNKO0FBQ0EsNEJBQWdCLENBQUM7QUFFakIsZ0JBQUksU0FBUyxRQUFRLGdCQUFnQjtBQUNyQyxnQkFBSSxpQkFBaUIsWUFBWSxJQUFJLFNBQVMsV0FBVyxhQUFhLENBQUM7QUFDdkUsZ0JBQUksZ0JBQWdCO0FBQ2hCLHVCQUFTO0FBQ1Qsa0JBQUksU0FBUyxXQUFXLGdCQUFnQixDQUFDLE1BQ3JDLElBQWdCO0FBQ2hCLHNCQUFNLElBQUksTUFBTSxjQUFjO0FBQUEsY0FDbEM7QUFDQSw4QkFBZ0IsQ0FBQztBQUFBLFlBQ3JCLFdBQ1MsU0FBUyxXQUFXLGFBQWEsTUFBTSxJQUFnQjtBQUM1RCx1QkFBUyxRQUFRLGdCQUFnQjtBQUNqQyw4QkFBZ0IsQ0FBQztBQUFBLFlBQ3JCO0FBRUEsZ0JBQUksUUFBUTtBQUNaLGdCQUFJLGFBQWE7QUFDakIsZ0JBQUksV0FBVyxVQUFVO0FBQ3JCLGtCQUFJSixTQUFRLFNBQVMsV0FBVyxhQUFhLENBQUMsR0FBRztBQUM3QyxvQkFBSSxRQUFRLFNBQVMsV0FBVyxhQUFhO0FBQzdDLG9CQUFJLGFBQWEsZ0JBQWdCO0FBQ2pDLHVCQUFPLGFBQWEsU0FBUyxXQUN4QixTQUFTLFdBQVcsVUFBVSxNQUFNLFNBQ2pDLFVBQVUsVUFBVSxJQUFJO0FBQzVCLGdDQUFjO0FBQUEsZ0JBQ2xCO0FBQ0Esb0JBQUksU0FBUyxXQUFXLFVBQVUsTUFBTSxPQUFPO0FBQzNDLHdCQUFNLElBQUksTUFBTSw0QkFBNEI7QUFBQSxnQkFDaEQ7QUFDQSx3QkFBUSxZQUFZLFNBQVMsTUFBTSxnQkFBZ0IsR0FBRyxVQUFVLENBQUM7QUFDakUsZ0NBQWdCLGFBQWE7QUFBQSxjQUNqQyxPQUNLO0FBQ0Qsb0JBQUksYUFBYTtBQUNqQix1QkFBTyxnQkFBZ0IsU0FBUyxXQUMxQixDQUFDQyxjQUFhLFNBQVMsV0FBVyxhQUFhLENBQUMsS0FDOUMsU0FBUyxXQUFXLGFBQWEsTUFDN0IsTUFDSixVQUFVLGFBQWEsSUFBSTtBQUMvQixtQ0FBaUI7QUFBQSxnQkFDckI7QUFDQSx3QkFBUSxZQUFZLFNBQVMsTUFBTSxZQUFZLGFBQWEsQ0FBQztBQUFBLGNBQ2pFO0FBQ0EsOEJBQWdCLENBQUM7QUFFakIsa0JBQUksY0FBYyxTQUFTLFdBQVcsYUFBYSxJQUFJO0FBRXZELGtCQUFJLGdCQUFnQixLQUFrQjtBQUNsQyw2QkFBYTtBQUNiLGdDQUFnQixDQUFDO0FBQUEsY0FDckIsV0FDUyxnQkFBZ0IsS0FBa0I7QUFDdkMsNkJBQWE7QUFDYixnQ0FBZ0IsQ0FBQztBQUFBLGNBQ3JCO0FBQUEsWUFDSjtBQUNBLGdCQUFJLFNBQVMsV0FBVyxhQUFhLE1BQ2pDLElBQTZCO0FBQzdCLG9CQUFNLElBQUksTUFBTSxxQ0FBcUM7QUFBQSxZQUN6RDtBQUNBLDZCQUFpQjtBQUNqQixnQkFBSSxvQkFBb0I7QUFBQSxjQUNwQixNQUFNLFFBQVEsYUFBYTtBQUFBLGNBQzNCLE1BQU07QUFBQSxjQUNOO0FBQUEsY0FDQTtBQUFBLGNBQ0E7QUFBQSxjQUNBO0FBQUEsWUFDSjtBQUNBLG1CQUFPLEtBQUssaUJBQWlCO0FBQzdCO0FBQUEsVUFDSjtBQUFBLFVBQ0EsS0FBSyxJQUFnQjtBQUNqQixnQkFBSSxTQUFTLFdBQVcsZ0JBQWdCLENBQUMsTUFBTSxJQUFnQjtBQUMzRCxxQkFBTyxLQUFLO0FBQUEsZ0JBQ1IsTUFBTSxRQUFRLGFBQWE7QUFBQSxnQkFDM0IsTUFBTUcsU0FBUSxDQUFDLEVBQUUsWUFBWTtBQUFBLGdCQUM3QixNQUFNLFNBQVMsV0FBVyxhQUFhLE1BQ25DLEtBQ0UseUJBQXlCLElBQ3pCO0FBQUEsY0FDVixDQUFDO0FBQ0Q7QUFBQSxZQUNKO0FBQ0EsZ0JBQUksU0FBU0EsU0FBUSxDQUFDLEVBQUUsWUFBWTtBQUNwQyxnQkFBSUUsUUFBTztBQUNYLGdCQUFJLFNBQVMsV0FBVyxhQUFhLE1BQ2pDLElBQTBCO0FBQzFCLGtCQUFJLGNBQWMsSUFBSSxNQUFNLEdBQUc7QUFDM0Isb0JBQUlOLFNBQVEsU0FBUyxXQUFXLGdCQUFnQixDQUFDLENBQUMsR0FBRztBQUNqRCx3QkFBTSxJQUFJLE1BQU0sbUJBQW1CLE9BQU8sUUFBUSxtQkFBbUIsQ0FBQztBQUFBLGdCQUMxRTtBQUNBLGdCQUFBTSxRQUFPLENBQUM7QUFDUixnQ0FBZ0IsY0FBY0EsT0FBTSxVQUFVLGdCQUFnQixDQUFDO0FBQy9ELG9CQUFJLFNBQVMsV0FBVyxhQUFhLE1BQ2pDLElBQTJCO0FBQzNCLHdCQUFNLElBQUksTUFBTSxtQ0FBbUMsT0FBTyxRQUFRLElBQUksRUFBRSxPQUFPLFVBQVUsR0FBRyxDQUFDO0FBQUEsZ0JBQ2pHO0FBQ0EsaUNBQWlCO0FBQUEsY0FDckIsT0FDSztBQUNELGdCQUFBQSxRQUFPLHlCQUF5QjtBQUNoQyxvQkFBSSx1QkFBdUIsSUFBSSxNQUFNLEdBQUc7QUFDcEMsc0JBQUksT0FBT0EsTUFBSyxXQUFXLENBQUM7QUFDNUIsc0JBQUksU0FBU0EsTUFBSyxXQUFXQSxNQUFLLFNBQVMsQ0FBQyxLQUN4Q04sU0FBUSxJQUFJLEdBQUc7QUFDZixvQkFBQU0sUUFBT0EsTUFBSyxNQUFNLEdBQUcsRUFBRTtBQUFBLGtCQUMzQjtBQUFBLGdCQUNKO0FBQ0EsZ0JBQUFBLFFBQU8sWUFBWUEsS0FBSTtBQUFBLGNBQzNCO0FBQUEsWUFDSjtBQUNBLG1CQUFPLEtBQUssRUFBRSxNQUFNLFFBQVEsYUFBYSxRQUFRLE1BQU0sUUFBUSxNQUFNQSxNQUFLLENBQUM7QUFDM0U7QUFBQSxVQUNKO0FBQUEsVUFDQSxLQUFLLElBQWdCO0FBQ2pCLGdDQUFvQjtBQUNwQixxQkFBUyxDQUFDO0FBQ1YsNEJBQWdCLENBQUM7QUFDakI7QUFBQSxVQUNKO0FBQUEsVUFDQSxTQUFTO0FBQ0wsZ0JBQUksU0FBUyxXQUFXLE1BQU0sYUFBYSxHQUFHO0FBQzFDLGtCQUFJLFdBQVcsU0FBUyxRQUFRLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkQsa0JBQUksV0FBVyxHQUFHO0FBQ2Qsc0JBQU0sSUFBSSxNQUFNLDRCQUE0QjtBQUFBLGNBQ2hEO0FBQ0EsOEJBQWdCLFdBQVc7QUFFM0Isa0JBQUksT0FBTyxXQUFXLEdBQUc7QUFDckIsZ0NBQWdCLENBQUM7QUFBQSxjQUNyQjtBQUNBO0FBQUEsWUFDSjtBQUNBLGdCQUFJLFlBQVk7QUFDaEIsZ0JBQUksU0FBUztBQUNiLGdCQUFJLGNBQWMsSUFBbUI7QUFDakMsK0JBQWlCO0FBQ2pCLHVCQUFTO0FBQUEsWUFDYixXQUNTLGNBQWMsS0FBZ0I7QUFDbkMsdUJBQVM7QUFDVCxrQkFBSSxTQUFTLFdBQVcsZ0JBQWdCLENBQUMsTUFBTSxLQUFnQjtBQUMzRCw2QkFBYSxRQUFRLGFBQWEsZ0JBQWdCO0FBQ2xELGdDQUFnQixDQUFDO0FBQ2pCO0FBQUEsY0FDSjtBQUFBLFlBQ0osV0FDUyxPQUFPLEtBQUssU0FBUyxNQUFNLGFBQWEsQ0FBQyxHQUFHO0FBQ2pELHVCQUFTRixTQUFRLENBQUM7QUFBQSxZQUN0QixPQUNLO0FBQ0Qsb0JBQU07QUFBQSxZQUNWO0FBQ0EsZ0JBQUksU0FBUyxXQUFXLGFBQWEsTUFBTSxPQUN2QyxTQUFTLFdBQVcsZ0JBQWdCLENBQUMsTUFBTSxLQUFnQjtBQUMzRCwwQkFBWTtBQUNaLGtCQUFJLFNBQVMsV0FBVyxnQkFBZ0IsQ0FBQyxNQUNyQyxJQUFtQjtBQUNuQix5QkFBUztBQUNULGlDQUFpQjtBQUFBLGNBQ3JCLE9BQ0s7QUFDRCx5QkFBU0EsU0FBUSxDQUFDO0FBQUEsY0FDdEI7QUFBQSxZQUNKO0FBQ0EsbUJBQU8sS0FBSyxXQUFXLE1BQ2pCLEVBQUUsTUFBTSxRQUFRLGFBQWEsV0FBVyxVQUFxQixJQUM3RCxFQUFFLE1BQU0sUUFBUSxhQUFhLEtBQUssTUFBTSxRQUFRLFVBQXFCLENBQUM7QUFBQSxVQUNoRjtBQUFBLFFBQ0o7QUFBQSxNQUNKO0FBQ0EsMEJBQW9CO0FBQ3BCLGFBQU87QUFBQSxJQUNYO0FBQUE7QUFBQTs7O0FDeGFBO0FBQUEsb0RBQUFHLFVBQUE7QUFBQTtBQUNBLFFBQUksZ0JBQWlCQSxZQUFRQSxTQUFLLGlCQUFrQixTQUFVLElBQUksTUFBTSxNQUFNO0FBQzFFLFVBQUksUUFBUSxVQUFVLFdBQVcsRUFBRyxVQUFTLElBQUksR0FBRyxJQUFJLEtBQUssUUFBUSxJQUFJLElBQUksR0FBRyxLQUFLO0FBQ2pGLFlBQUksTUFBTSxFQUFFLEtBQUssT0FBTztBQUNwQixjQUFJLENBQUMsR0FBSSxNQUFLLE1BQU0sVUFBVSxNQUFNLEtBQUssTUFBTSxHQUFHLENBQUM7QUFDbkQsYUFBRyxDQUFDLElBQUksS0FBSyxDQUFDO0FBQUEsUUFDbEI7QUFBQSxNQUNKO0FBQ0EsYUFBTyxHQUFHLE9BQU8sTUFBTSxNQUFNLFVBQVUsTUFBTSxLQUFLLElBQUksQ0FBQztBQUFBLElBQzNEO0FBQ0EsV0FBTyxlQUFlQSxVQUFTLGNBQWMsRUFBRSxPQUFPLEtBQUssQ0FBQztBQUM1RCxJQUFBQSxTQUFRLFlBQVk7QUFDcEIsUUFBSSxVQUFVO0FBQ2QsUUFBSSxpQkFBaUIsQ0FBQyxNQUFNLEdBQUc7QUFDL0IsUUFBSSxpQkFBaUIsY0FBYyxjQUFjLENBQUMsR0FBRyxnQkFBZ0IsSUFBSSxHQUFHLENBQUMsS0FBSyxHQUFHLEdBQUcsS0FBSztBQUM3RixRQUFJLGdDQUFnQyxJQUFJLElBQUksZUFBZSxJQUFJLFNBQVUsR0FBRztBQUFFLGFBQU8sRUFBRSxXQUFXLENBQUM7QUFBQSxJQUFHLENBQUMsQ0FBQztBQUN4RyxRQUFJLDZCQUE2QixJQUFJLElBQUksZUFBZSxJQUFJLFNBQVUsR0FBRztBQUFFLGFBQU8sRUFBRSxXQUFXLENBQUM7QUFBQSxJQUFHLENBQUMsQ0FBQztBQUNyRyxRQUFJLHNCQUFzQixJQUFJLElBQUksY0FBYyxjQUFjLENBQUMsR0FBRyxnQkFBZ0IsSUFBSSxHQUFHO0FBQUEsTUFDckY7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLElBQ0osR0FBRyxLQUFLLEVBQUUsSUFBSSxTQUFVLEdBQUc7QUFBRSxhQUFPLEVBQUUsV0FBVyxDQUFDO0FBQUEsSUFBRyxDQUFDLENBQUM7QUFNdkQsYUFBU0MsV0FBVSxVQUFVO0FBQ3pCLGFBQU8sU0FDRixJQUFJLFNBQVUsT0FBTztBQUFFLGVBQU8sTUFBTSxJQUFJLGNBQWMsRUFBRSxLQUFLLEVBQUU7QUFBQSxNQUFHLENBQUMsRUFDbkUsS0FBSyxJQUFJO0FBQUEsSUFDbEI7QUFDQSxJQUFBRCxTQUFRLFlBQVlDO0FBQ3BCLGFBQVMsZUFBZSxPQUFPQyxRQUFPLEtBQUs7QUFDdkMsY0FBUSxNQUFNLE1BQU07QUFBQTtBQUFBLFFBRWhCLEtBQUssUUFBUSxhQUFhO0FBQ3RCLGlCQUFPQSxXQUFVLElBQUksT0FBTztBQUFBLFFBQ2hDLEtBQUssUUFBUSxhQUFhO0FBQ3RCLGlCQUFPQSxXQUFVLElBQUksT0FBTztBQUFBLFFBQ2hDLEtBQUssUUFBUSxhQUFhO0FBQ3RCLGlCQUFPQSxXQUFVLElBQUksT0FBTztBQUFBLFFBQ2hDLEtBQUssUUFBUSxhQUFhO0FBQ3RCLGlCQUFPQSxXQUFVLElBQUksT0FBTztBQUFBLFFBQ2hDLEtBQUssUUFBUSxhQUFhO0FBQ3RCLGlCQUFPO0FBQUEsUUFDWCxLQUFLLFFBQVEsYUFBYTtBQUN0QixpQkFBT0EsV0FBVSxJQUFJLFFBQVE7QUFBQSxRQUNqQyxLQUFLLFFBQVEsYUFBYTtBQUV0QixpQkFBTyxNQUFNLGNBQWMsT0FDdkJBLFNBQVEsSUFBSSxJQUFJLFVBQ2hCLFVBQVUsSUFBSUEsU0FBUSxDQUFDLElBQ3JCLEtBQ0EsR0FBRyxPQUFPLGFBQWEsTUFBTSxTQUFTLEdBQUcsR0FBRztBQUFBLFFBQ3RELEtBQUssUUFBUSxhQUFhO0FBQ3RCLGlCQUFPLGtCQUFrQixLQUFLO0FBQUEsUUFDbEMsS0FBSyxRQUFRLGFBQWE7QUFDdEIsaUJBQU8sS0FBSyxPQUFPLFdBQVcsTUFBTSxNQUFNLG1CQUFtQixDQUFDLEVBQUUsT0FBTyxNQUFNLFNBQVMsT0FDaEYsS0FDQSxJQUFJLE9BQU8sV0FBVyxNQUFNLE1BQU0sMEJBQTBCLEdBQUcsR0FBRyxDQUFDO0FBQUEsUUFDN0UsS0FBSyxRQUFRLGFBQWE7QUFDdEIsaUJBQU8sSUFBSSxPQUFPLFdBQVcsTUFBTSxNQUFNLG1CQUFtQixDQUFDLEVBQUUsT0FBTyxNQUFNLFNBQVMsT0FDL0UsS0FDQSxJQUFJLE9BQU8sT0FBTyxNQUFNLFNBQVMsV0FDN0IsV0FBVyxNQUFNLE1BQU0sMEJBQTBCLElBQ2pERCxXQUFVLE1BQU0sSUFBSSxHQUFHLEdBQUcsQ0FBQztBQUFBLFFBQ3pDLEtBQUssUUFBUSxhQUFhLFdBQVc7QUFDakMsY0FBSSxNQUFNLFNBQVMsUUFDZixNQUFNLFdBQVcsUUFBUSxnQkFBZ0IsVUFDekMsTUFBTSxlQUFlLFlBQ3JCLENBQUMsTUFBTSxXQUFXO0FBQ2xCLG1CQUFPLElBQUksT0FBTyxXQUFXLE1BQU0sT0FBTyxtQkFBbUIsQ0FBQztBQUFBLFVBQ2xFO0FBQ0EsY0FBSSxNQUFNLFNBQVMsV0FDZixNQUFNLFdBQVcsUUFBUSxnQkFBZ0IsV0FDekMsTUFBTSxlQUFlLFlBQ3JCLENBQUMsTUFBTSxXQUFXO0FBQ2xCLG1CQUFPLElBQUksT0FBTyxXQUFXLE1BQU0sT0FBTyxtQkFBbUIsQ0FBQztBQUFBLFVBQ2xFO0FBQ0EsY0FBSSxTQUFTLGtCQUFrQixLQUFLO0FBQ3BDLGNBQUksTUFBTSxXQUFXLFFBQVEsZ0JBQWdCLFFBQVE7QUFDakQsbUJBQU8sSUFBSSxPQUFPLFFBQVEsR0FBRztBQUFBLFVBQ2pDO0FBQ0EsaUJBQU8sSUFBSSxPQUFPLE1BQU0sRUFBRSxPQUFPLGVBQWUsTUFBTSxNQUFNLEdBQUcsSUFBSyxFQUFFLE9BQU8sV0FBVyxNQUFNLE9BQU8sNkJBQTZCLEdBQUcsR0FBSSxFQUFFLE9BQU8sTUFBTSxlQUFlLE9BQU8sS0FBSyxNQUFNLGFBQWEsT0FBTyxNQUFNLEdBQUc7QUFBQSxRQUMxTjtBQUFBLE1BQ0o7QUFBQSxJQUNKO0FBQ0EsYUFBUyxlQUFlLFFBQVE7QUFDNUIsY0FBUSxRQUFRO0FBQUEsUUFDWixLQUFLLFFBQVEsZ0JBQWdCO0FBQ3pCLGlCQUFPO0FBQUEsUUFDWCxLQUFLLFFBQVEsZ0JBQWdCO0FBQ3pCLGlCQUFPO0FBQUEsUUFDWCxLQUFLLFFBQVEsZ0JBQWdCO0FBQ3pCLGlCQUFPO0FBQUEsUUFDWCxLQUFLLFFBQVEsZ0JBQWdCO0FBQ3pCLGlCQUFPO0FBQUEsUUFDWCxLQUFLLFFBQVEsZ0JBQWdCO0FBQ3pCLGlCQUFPO0FBQUEsUUFDWCxLQUFLLFFBQVEsZ0JBQWdCO0FBQ3pCLGlCQUFPO0FBQUEsUUFDWCxLQUFLLFFBQVEsZ0JBQWdCO0FBQ3pCLGlCQUFPO0FBQUEsUUFDWCxLQUFLLFFBQVEsZ0JBQWdCO0FBQ3pCLGdCQUFNLElBQUksTUFBTSxtQkFBbUI7QUFBQSxNQUMzQztBQUFBLElBQ0o7QUFDQSxhQUFTLGtCQUFrQixPQUFPO0FBQzlCLGFBQU8sR0FBRyxPQUFPLGFBQWEsTUFBTSxTQUFTLENBQUMsRUFBRSxPQUFPLFdBQVcsTUFBTSxNQUFNLG1CQUFtQixDQUFDO0FBQUEsSUFDdEc7QUFDQSxhQUFTLGFBQWEsV0FBVztBQUM3QixhQUFPLGNBQWMsT0FDZixHQUFHLE9BQU8sY0FBYyxNQUNwQixNQUNBLFdBQVcsV0FBVyxtQkFBbUIsR0FBRyxHQUFHLElBQ25EO0FBQUEsSUFDVjtBQUNBLGFBQVMsV0FBVyxLQUFLLGVBQWU7QUFDcEMsVUFBSSxVQUFVO0FBQ2QsVUFBSSxNQUFNO0FBQ1YsZUFBUyxJQUFJLEdBQUcsSUFBSSxJQUFJLFFBQVEsS0FBSztBQUNqQyxZQUFJLGNBQWMsSUFBSSxJQUFJLFdBQVcsQ0FBQyxDQUFDLEdBQUc7QUFDdEMsaUJBQU8sR0FBRyxPQUFPLElBQUksTUFBTSxTQUFTLENBQUMsR0FBRyxJQUFJLEVBQUUsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDO0FBQ2xFLG9CQUFVLElBQUk7QUFBQSxRQUNsQjtBQUFBLE1BQ0o7QUFDQSxhQUFPLElBQUksU0FBUyxJQUFJLE1BQU0sSUFBSSxNQUFNLE9BQU8sSUFBSTtBQUFBLElBQ3ZEO0FBQUE7QUFBQTs7O0FDeklBO0FBQUEsZ0RBQUFFLFVBQUE7QUFBQTtBQUNBLFFBQUksa0JBQW1CQSxZQUFRQSxTQUFLLG9CQUFxQixPQUFPLFVBQVUsU0FBUyxHQUFHLEdBQUcsR0FBRyxJQUFJO0FBQzVGLFVBQUksT0FBTyxPQUFXLE1BQUs7QUFDM0IsVUFBSSxPQUFPLE9BQU8seUJBQXlCLEdBQUcsQ0FBQztBQUMvQyxVQUFJLENBQUMsU0FBUyxTQUFTLE9BQU8sQ0FBQyxFQUFFLGFBQWEsS0FBSyxZQUFZLEtBQUssZUFBZTtBQUNqRixlQUFPLEVBQUUsWUFBWSxNQUFNLEtBQUssV0FBVztBQUFFLGlCQUFPLEVBQUUsQ0FBQztBQUFBLFFBQUcsRUFBRTtBQUFBLE1BQzlEO0FBQ0EsYUFBTyxlQUFlLEdBQUcsSUFBSSxJQUFJO0FBQUEsSUFDckMsTUFBTSxTQUFTLEdBQUcsR0FBRyxHQUFHLElBQUk7QUFDeEIsVUFBSSxPQUFPLE9BQVcsTUFBSztBQUMzQixRQUFFLEVBQUUsSUFBSSxFQUFFLENBQUM7QUFBQSxJQUNmO0FBQ0EsUUFBSSxlQUFnQkEsWUFBUUEsU0FBSyxnQkFBaUIsU0FBUyxHQUFHQSxVQUFTO0FBQ25FLGVBQVMsS0FBSyxFQUFHLEtBQUksTUFBTSxhQUFhLENBQUMsT0FBTyxVQUFVLGVBQWUsS0FBS0EsVUFBUyxDQUFDLEVBQUcsaUJBQWdCQSxVQUFTLEdBQUcsQ0FBQztBQUFBLElBQzVIO0FBQ0EsV0FBTyxlQUFlQSxVQUFTLGNBQWMsRUFBRSxPQUFPLEtBQUssQ0FBQztBQUM1RCxJQUFBQSxTQUFRLFlBQVlBLFNBQVEsUUFBUUEsU0FBUSxjQUFjO0FBQzFELGlCQUFhLGlCQUFvQkEsUUFBTztBQUN4QyxRQUFJLFVBQVU7QUFDZCxXQUFPLGVBQWVBLFVBQVMsZUFBZSxFQUFFLFlBQVksTUFBTSxLQUFLLFdBQVk7QUFBRSxhQUFPLFFBQVE7QUFBQSxJQUFhLEVBQUUsQ0FBQztBQUNwSCxXQUFPLGVBQWVBLFVBQVMsU0FBUyxFQUFFLFlBQVksTUFBTSxLQUFLLFdBQVk7QUFBRSxhQUFPLFFBQVE7QUFBQSxJQUFPLEVBQUUsQ0FBQztBQUN4RyxRQUFJLGNBQWM7QUFDbEIsV0FBTyxlQUFlQSxVQUFTLGFBQWEsRUFBRSxZQUFZLE1BQU0sS0FBSyxXQUFZO0FBQUUsYUFBTyxZQUFZO0FBQUEsSUFBVyxFQUFFLENBQUM7QUFBQTtBQUFBOzs7QUN0QnBIO0FBQUEsbUNBQUFDLFVBQUFDLFNBQUE7QUFBQSxJQUFBQSxRQUFPLFVBQVU7QUFBQSxNQUNoQixVQUFVLFNBQVNDLFlBQVU7QUFDNUIsZUFBTztBQUFBLE1BQ1I7QUFBQSxNQUNBLFdBQVcsU0FBUyxZQUFXO0FBQzlCLGVBQU87QUFBQSxNQUNSO0FBQUEsSUFDRDtBQUFBO0FBQUE7OztBQ0dNLFNBQVUsWUFBWSxPQUF1QjtBQUMvQyxTQUFPLENBQUMsVUFBVSxJQUFJLE1BQU0sSUFBSTtBQUNwQztBQWtCYyxTQUFQLGdCQUFpQyxLQUF1QjtBQUMzRCxRQUFNLFFBQVEsSUFBSSxJQUFJLFlBQVk7QUFDbEMsV0FBUyxJQUFJLEdBQUcsSUFBSSxJQUFJLFFBQVEsS0FBSztBQUNqQyxVQUFNLFVBQVUsTUFBTSxDQUFDO0FBRXZCLFFBQUksVUFBVTtBQUFHO0FBRWpCLGFBQVMsSUFBSSxJQUFJLEdBQUcsS0FBSyxLQUFLLFVBQVUsTUFBTSxDQUFDLEdBQUcsS0FBSztBQUNuRCxZQUFNLFFBQVEsSUFBSSxJQUFJLENBQUM7QUFDdkIsVUFBSSxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUM7QUFDbEIsVUFBSSxDQUFDLElBQUk7QUFDVCxZQUFNLElBQUksQ0FBQyxJQUFJLE1BQU0sQ0FBQztBQUN0QixZQUFNLENBQUMsSUFBSTs7O0FBR3ZCO0FBRUEsU0FBUyxhQUFhLE9BQXVCOztBQUN6QyxNQUFJLFFBQU9DLE1BQUEsVUFBVSxJQUFJLE1BQU0sSUFBSSxPQUFDLFFBQUFBLFFBQUEsU0FBQUEsTUFBSTtBQUV4QyxNQUFJLE1BQU0sU0FBUyw2QkFBYSxXQUFXO0FBQ3ZDLFlBQU8sS0FBQSxXQUFXLElBQUksTUFBTSxNQUFNLE9BQUMsUUFBQSxPQUFBLFNBQUEsS0FBSTtBQUV2QyxRQUFJLE1BQU0sV0FBVyxnQ0FBZ0IsVUFBVSxNQUFNLFNBQVMsTUFBTTtBQUVoRSxhQUFPOztBQUdYLFFBQUksTUFBTSxZQUFZO0FBS2xCLGVBQVM7O2FBRU4sTUFBTSxTQUFTLDZCQUFhLFFBQVE7QUFDM0MsUUFBSSxDQUFDLE1BQU0sTUFBTTtBQUNiLGFBQU87ZUFDQSxNQUFNLFNBQVMsU0FBUyxNQUFNLFNBQVMsWUFBWTtBQUMxRCxhQUFPO2VBQ0EsTUFBTSxRQUFRLE1BQU0sSUFBSSxHQUFHO0FBRWxDLGFBQU8sS0FBSyxJQUNSLEdBQUcsTUFBTSxLQUFLLElBQUksQ0FBQyxNQUFNLEtBQUssSUFBSSxHQUFHLEVBQUUsSUFBSSxZQUFZLENBQUMsQ0FBQyxDQUFDO0FBSTlELFVBQUksT0FBTyxHQUFHO0FBQ1YsZUFBTzs7V0FFUjtBQUNILGFBQU87OztBQUdmLFNBQU87QUFDWDtBQXBGQSxxQkFFTSxXQVdBO0FBYk47O3NCQUE4RDtBQUU5RCxJQUFNLFlBQVksb0JBQUksSUFBc0M7TUFDeEQsQ0FBQyw2QkFBYSxXQUFXLEVBQUU7TUFDM0IsQ0FBQyw2QkFBYSxLQUFLLEVBQUU7TUFDckIsQ0FBQyw2QkFBYSxXQUFXLENBQUM7TUFDMUIsQ0FBQyw2QkFBYSxRQUFRLENBQUM7S0FDMUI7QUFNRCxJQUFNLGFBQWEsb0JBQUksSUFBNkI7TUFDaEQsQ0FBQyxnQ0FBZ0IsUUFBUSxFQUFFO01BQzNCLENBQUMsZ0NBQWdCLFFBQVEsQ0FBQztNQUMxQixDQUFDLGdDQUFnQixLQUFLLENBQUM7TUFDdkIsQ0FBQyxnQ0FBZ0IsT0FBTyxDQUFDO01BQ3pCLENBQUMsZ0NBQWdCLEtBQUssQ0FBQztNQUN2QixDQUFDLGdDQUFnQixLQUFLLENBQUM7S0FDMUI7Ozs7O0FDVkQsU0FBUyxZQUFZLE9BQWE7QUFDOUIsU0FBTyxNQUFNLFFBQVEsU0FBUyxNQUFNO0FBQ3hDO0FBeURBLFNBQVMsaUJBQ0wsVUFDQSxTQUEyQztBQUUzQyxTQUFPLE9BQU8sU0FBUyxlQUFlLFlBQ2hDLFNBQVMsYUFDVCxTQUFTLGVBQWUsV0FDeEIsQ0FBQyxDQUFDLFFBQVEsYUFDVixDQUFDLFFBQVEsV0FBVywwQkFBMEIsSUFBSSxTQUFTLElBQUk7QUFDekU7QUEvRUEscUJBVU0sU0FXQSwyQkErRE87QUFwRmIsSUFBQUMsbUJBQUE7O3NCQUFxQjtBQVVyQixJQUFNLFVBQVU7QUFXaEIsSUFBTSw0QkFBNEIsb0JBQUksSUFBSTtNQUN0QztNQUNBO01BQ0E7TUFDQTtNQUNBO01BQ0E7TUFDQTtNQUNBO01BQ0E7TUFDQTtNQUNBO01BQ0E7TUFDQTtNQUNBO01BQ0E7TUFDQTtNQUNBO01BQ0E7TUFDQTtNQUNBO01BQ0E7TUFDQTtNQUNBO01BQ0E7TUFDQTtNQUNBO01BQ0E7TUFDQTtNQUNBO01BQ0E7TUFDQTtNQUNBO01BQ0E7TUFDQTtNQUNBO01BQ0E7TUFDQTtNQUNBO01BQ0E7TUFDQTtNQUNBO01BQ0E7TUFDQTtNQUNBO01BQ0E7TUFDQTtLQUNIO0FBZ0JNLElBQU0saUJBT1Q7TUFDQSxPQUFPQyxPQUFNQyxPQUFNLFNBQU87QUFDdEIsY0FBTSxFQUFFLFNBQUFDLFNBQU8sSUFBSztBQUNwQixjQUFNLEVBQUUsS0FBSSxJQUFLRDtBQUNqQixZQUFJLEVBQUUsTUFBSyxJQUFLQTtBQUVoQixZQUFJLGlCQUFpQkEsT0FBTSxPQUFPLEdBQUc7QUFDakMsa0JBQVEsTUFBTSxZQUFXO0FBRXpCLGlCQUFPLENBQUMsU0FBUTtBQUNaLGtCQUFNRSxRQUFPRCxTQUFRLGtCQUFrQixNQUFNLElBQUk7QUFDakQsbUJBQ0lDLFNBQVEsUUFDUkEsTUFBSyxXQUFXLE1BQU0sVUFDdEJBLE1BQUssWUFBVyxNQUFPLFNBQ3ZCSCxNQUFLLElBQUk7VUFFakI7O0FBR0osZUFBTyxDQUFDLFNBQ0pFLFNBQVEsa0JBQWtCLE1BQU0sSUFBSSxNQUFNLFNBQVNGLE1BQUssSUFBSTtNQUNwRTtNQUNBLE9BQU9BLE9BQU1DLE9BQU0sU0FBTztBQUN0QixjQUFNLEVBQUUsU0FBQUMsU0FBTyxJQUFLO0FBQ3BCLGNBQU0sRUFBRSxLQUFJLElBQUtEO0FBQ2pCLFlBQUksRUFBRSxNQUFLLElBQUtBO0FBQ2hCLGNBQU0sTUFBTSxNQUFNO0FBRWxCLFlBQUksaUJBQWlCQSxPQUFNLE9BQU8sR0FBRztBQUNqQyxrQkFBUSxNQUFNLFlBQVc7QUFFekIsaUJBQU8sU0FBUyxTQUFTLE1BQUk7QUFDekIsa0JBQU1FLFFBQU9ELFNBQVEsa0JBQWtCLE1BQU0sSUFBSTtBQUNqRCxtQkFDSUMsU0FBUSxTQUNQQSxNQUFLLFdBQVcsT0FBT0EsTUFBSyxPQUFPLEdBQUcsTUFBTSxRQUM3Q0EsTUFBSyxPQUFPLEdBQUcsR0FBRyxFQUFFLFlBQVcsTUFBTyxTQUN0Q0gsTUFBSyxJQUFJO1VBRWpCOztBQUdKLGVBQU8sU0FBUyxPQUFPLE1BQUk7QUFDdkIsZ0JBQU1HLFFBQU9ELFNBQVEsa0JBQWtCLE1BQU0sSUFBSTtBQUNqRCxpQkFDSUMsU0FBUSxTQUNQQSxNQUFLLFdBQVcsT0FBT0EsTUFBSyxPQUFPLEdBQUcsTUFBTSxRQUM3Q0EsTUFBSyxPQUFPLEdBQUcsR0FBRyxNQUFNLFNBQ3hCSCxNQUFLLElBQUk7UUFFakI7TUFDSjtNQUNBLFFBQVFBLE9BQU1DLE9BQU0sU0FBTztBQUN2QixjQUFNLEVBQUUsU0FBQUMsU0FBTyxJQUFLO0FBQ3BCLGNBQU0sRUFBRSxNQUFNLE1BQUssSUFBS0Q7QUFDeEIsWUFBSSxLQUFLLEtBQUssS0FBSyxHQUFHO0FBQ2xCLGlCQUFPLGdCQUFBRyxRQUFTOztBQUdwQixjQUFNLFFBQVEsSUFBSSxPQUNkLFlBQVksWUFBWSxLQUFLLENBQUMsYUFDOUIsaUJBQWlCSCxPQUFNLE9BQU8sSUFBSSxNQUFNLEVBQUU7QUFHOUMsZUFBTyxTQUFTLFFBQVEsTUFBSTtBQUN4QixnQkFBTUUsUUFBT0QsU0FBUSxrQkFBa0IsTUFBTSxJQUFJO0FBQ2pELGlCQUNJQyxTQUFRLFFBQ1JBLE1BQUssVUFBVSxNQUFNLFVBQ3JCLE1BQU0sS0FBS0EsS0FBSSxLQUNmSCxNQUFLLElBQUk7UUFFakI7TUFDSjtNQUNBLE9BQU9BLE9BQU0sRUFBRSxLQUFJLEdBQUksRUFBRSxTQUFBRSxTQUFPLEdBQUU7QUFDOUIsZUFBTyxDQUFDLFNBQVNBLFNBQVEsVUFBVSxNQUFNLElBQUksS0FBS0YsTUFBSyxJQUFJO01BQy9EO01BQ0EsTUFBTUEsT0FBTUMsT0FBTSxTQUFPO0FBQ3JCLGNBQU0sRUFBRSxTQUFBQyxTQUFPLElBQUs7QUFDcEIsY0FBTSxFQUFFLEtBQUksSUFBS0Q7QUFDakIsWUFBSSxFQUFFLE1BQUssSUFBS0E7QUFDaEIsY0FBTSxNQUFNLE1BQU07QUFFbEIsWUFBSSxRQUFRLEdBQUc7QUFDWCxpQkFBTyxnQkFBQUcsUUFBUzs7QUFHcEIsWUFBSSxpQkFBaUJILE9BQU0sT0FBTyxHQUFHO0FBQ2pDLGtCQUFRLE1BQU0sWUFBVztBQUV6QixpQkFBTyxDQUFDLFNBQVE7QUFDWixrQkFBTUUsUUFBT0QsU0FBUSxrQkFBa0IsTUFBTSxJQUFJO0FBQ2pELG1CQUNJQyxTQUFRLFFBQ1JBLE1BQUssVUFBVSxPQUNmQSxNQUFLLE9BQU8sR0FBRyxHQUFHLEVBQUUsWUFBVyxNQUFPLFNBQ3RDSCxNQUFLLElBQUk7VUFFakI7O0FBR0osZUFBTyxDQUFDLFNBQVE7O0FBQ1osaUJBQUEsQ0FBQyxHQUFDSyxNQUFBSCxTQUFRLGtCQUFrQixNQUFNLElBQUksT0FBQyxRQUFBRyxRQUFBLFNBQUEsU0FBQUEsSUFBRSxXQUFXLEtBQUssTUFDekRMLE1BQUssSUFBSTs7TUFDakI7TUFDQSxJQUFJQSxPQUFNQyxPQUFNLFNBQU87QUFDbkIsY0FBTSxFQUFFLFNBQUFDLFNBQU8sSUFBSztBQUNwQixjQUFNLEVBQUUsS0FBSSxJQUFLRDtBQUNqQixZQUFJLEVBQUUsTUFBSyxJQUFLQTtBQUNoQixjQUFNLE1BQU0sQ0FBQyxNQUFNO0FBRW5CLFlBQUksUUFBUSxHQUFHO0FBQ1gsaUJBQU8sZ0JBQUFHLFFBQVM7O0FBR3BCLFlBQUksaUJBQWlCSCxPQUFNLE9BQU8sR0FBRztBQUNqQyxrQkFBUSxNQUFNLFlBQVc7QUFFekIsaUJBQU8sQ0FBQyxTQUFROztBQUNaLHFCQUFBSSxNQUFBSCxTQUNLLGtCQUFrQixNQUFNLElBQUksT0FBQyxRQUFBRyxRQUFBLFNBQUEsU0FBQUEsSUFDNUIsT0FBTyxHQUFHLEVBQ1gsWUFBVyxPQUFPLFNBQVNMLE1BQUssSUFBSTs7O0FBR2pELGVBQU8sQ0FBQyxTQUFROztBQUNaLGlCQUFBLENBQUMsR0FBQ0ssTUFBQUgsU0FBUSxrQkFBa0IsTUFBTSxJQUFJLE9BQUMsUUFBQUcsUUFBQSxTQUFBLFNBQUFBLElBQUUsU0FBUyxLQUFLLE1BQ3ZETCxNQUFLLElBQUk7O01BQ2pCO01BQ0EsSUFBSUEsT0FBTUMsT0FBTSxTQUFPO0FBQ25CLGNBQU0sRUFBRSxTQUFBQyxTQUFPLElBQUs7QUFDcEIsY0FBTSxFQUFFLE1BQU0sTUFBSyxJQUFLRDtBQUV4QixZQUFJLFVBQVUsSUFBSTtBQUNkLGlCQUFPLGdCQUFBRyxRQUFTOztBQUdwQixZQUFJLGlCQUFpQkgsT0FBTSxPQUFPLEdBQUc7QUFDakMsZ0JBQU0sUUFBUSxJQUFJLE9BQU8sWUFBWSxLQUFLLEdBQUcsR0FBRztBQUVoRCxpQkFBTyxTQUFTLE1BQU0sTUFBSTtBQUN0QixrQkFBTUUsUUFBT0QsU0FBUSxrQkFBa0IsTUFBTSxJQUFJO0FBQ2pELG1CQUNJQyxTQUFRLFFBQ1JBLE1BQUssVUFBVSxNQUFNLFVBQ3JCLE1BQU0sS0FBS0EsS0FBSSxLQUNmSCxNQUFLLElBQUk7VUFFakI7O0FBR0osZUFBTyxDQUFDLFNBQVE7O0FBQ1osaUJBQUEsQ0FBQyxHQUFDSyxNQUFBSCxTQUFRLGtCQUFrQixNQUFNLElBQUksT0FBQyxRQUFBRyxRQUFBLFNBQUEsU0FBQUEsSUFBRSxTQUFTLEtBQUssTUFDdkRMLE1BQUssSUFBSTs7TUFDakI7TUFDQSxJQUFJQSxPQUFNQyxPQUFNLFNBQU87QUFDbkIsY0FBTSxFQUFFLFNBQUFDLFNBQU8sSUFBSztBQUNwQixjQUFNLEVBQUUsS0FBSSxJQUFLRDtBQUNqQixZQUFJLEVBQUUsTUFBSyxJQUFLQTtBQUVoQixZQUFJLFVBQVUsSUFBSTtBQUNkLGlCQUFPLENBQUMsU0FDSixDQUFDLENBQUNDLFNBQVEsa0JBQWtCLE1BQU0sSUFBSSxLQUFLRixNQUFLLElBQUk7bUJBQ2pELGlCQUFpQkMsT0FBTSxPQUFPLEdBQUc7QUFDeEMsa0JBQVEsTUFBTSxZQUFXO0FBRXpCLGlCQUFPLENBQUMsU0FBUTtBQUNaLGtCQUFNRSxRQUFPRCxTQUFRLGtCQUFrQixNQUFNLElBQUk7QUFDakQsb0JBQ0tDLFNBQVEsUUFDTEEsTUFBSyxXQUFXLE1BQU0sVUFDdEJBLE1BQUssWUFBVyxNQUFPLFVBQzNCSCxNQUFLLElBQUk7VUFFakI7O0FBR0osZUFBTyxDQUFDLFNBQ0pFLFNBQVEsa0JBQWtCLE1BQU0sSUFBSSxNQUFNLFNBQVNGLE1BQUssSUFBSTtNQUNwRTs7Ozs7O0FDalFFLFNBQVUsTUFBTSxTQUFlO0FBQ2pDLFlBQVUsUUFBUSxLQUFJLEVBQUcsWUFBVztBQUVwQyxNQUFJLFlBQVksUUFBUTtBQUNwQixXQUFPLENBQUMsR0FBRyxDQUFDO2FBQ0wsWUFBWSxPQUFPO0FBQzFCLFdBQU8sQ0FBQyxHQUFHLENBQUM7O0FBS2hCLE1BQUksTUFBTTtBQUVWLE1BQUksSUFBSTtBQUNSLE1BQUksT0FBTyxTQUFRO0FBQ25CLE1BQUksU0FBUyxXQUFVO0FBRXZCLE1BQUksTUFBTSxRQUFRLFVBQVUsUUFBUSxPQUFPLEdBQUcsTUFBTSxLQUFLO0FBQ3JEO0FBQ0EsUUFBSSxRQUFRLFdBQU0sUUFBTixXQUFNLFNBQU4sU0FBVTtBQUV0QixtQkFBYztBQUVkLFFBQUksTUFBTSxRQUFRLFFBQVE7QUFDdEIsYUFBTyxTQUFRO0FBQ2YscUJBQWM7QUFDZCxlQUFTLFdBQVU7V0FDaEI7QUFDSCxhQUFPLFNBQVM7OztBQUt4QixNQUFJLFdBQVcsUUFBUSxNQUFNLFFBQVEsUUFBUTtBQUN6QyxVQUFNLElBQUksTUFBTSxrQ0FBa0MsT0FBTyxJQUFJOztBQUdqRSxTQUFPLENBQUMsR0FBRyxPQUFPLE1BQU07QUFFeEIsV0FBUyxXQUFRO0FBQ2IsUUFBSSxRQUFRLE9BQU8sR0FBRyxNQUFNLEtBQUs7QUFDN0I7QUFDQSxhQUFPOztBQUdYLFFBQUksUUFBUSxPQUFPLEdBQUcsTUFBTSxLQUFLO0FBQzdCOztBQUdKLFdBQU87RUFDWDtBQUVBLFdBQVMsYUFBVTtBQUNmLFVBQU0sUUFBUTtBQUNkLFFBQUksUUFBUTtBQUVaLFdBQ0ksTUFBTSxRQUFRLFVBQ2QsUUFBUSxXQUFXLEdBQUcsS0FBSyxRQUMzQixRQUFRLFdBQVcsR0FBRyxLQUFLLE1BQzdCO0FBQ0UsY0FBUSxRQUFRLE1BQU0sUUFBUSxXQUFXLEdBQUcsSUFBSTtBQUNoRDs7QUFJSixXQUFPLFFBQVEsUUFBUSxPQUFPO0VBQ2xDO0FBRUEsV0FBUyxpQkFBYztBQUNuQixXQUNJLE1BQU0sUUFBUSxVQUNkLFdBQVcsSUFBSSxRQUFRLFdBQVcsR0FBRyxDQUFDLEdBQ3hDO0FBQ0U7O0VBRVI7QUFDSjtBQTNGQSxJQUdNLFlBQ0EsTUFDQTtBQUxOOztBQUdBLElBQU0sYUFBYSxvQkFBSSxJQUFJLENBQUMsR0FBRyxJQUFJLElBQUksSUFBSSxFQUFFLENBQUM7QUFDOUMsSUFBTSxPQUFPLElBQUksV0FBVyxDQUFDO0FBQzdCLElBQU0sT0FBTyxJQUFJLFdBQVcsQ0FBQzs7Ozs7QUNpQnZCLFNBQVUsUUFDWixRQUE4QjtBQUU5QixRQUFNLElBQUksT0FBTyxDQUFDO0FBRWxCLFFBQU0sSUFBSSxPQUFPLENBQUMsSUFBSTtBQVN0QixNQUFJLElBQUksS0FBSyxLQUFLO0FBQUcsV0FBTyxpQkFBQU0sUUFBUztBQUdyQyxNQUFJLE1BQU07QUFBSSxXQUFPLENBQUNDLFdBQVVBLFVBQVM7QUFDekMsTUFBSSxNQUFNO0FBQUcsV0FBTyxDQUFDQSxXQUFVQSxXQUFVO0FBRXpDLE1BQUksTUFBTTtBQUFHLFdBQU8sSUFBSSxJQUFJLGlCQUFBRCxRQUFTLFdBQVcsQ0FBQ0MsV0FBVUEsVUFBUztBQU9wRSxRQUFNLE9BQU8sS0FBSyxJQUFJLENBQUM7QUFFdkIsUUFBTSxRQUFTLElBQUksT0FBUSxRQUFRO0FBRW5DLFNBQU8sSUFBSSxJQUNMLENBQUNBLFdBQVVBLFVBQVMsS0FBS0EsU0FBUSxTQUFTLE9BQzFDLENBQUNBLFdBQVVBLFVBQVMsS0FBS0EsU0FBUSxTQUFTO0FBQ3BEO0FBeERBLElBQUFDO0FBQUE7O0lBQUFBLG1CQUFxQjs7Ozs7QUM0QlAsU0FBUCxTQUEwQixTQUFlO0FBQzVDLFNBQU8sUUFBUSxNQUFNLE9BQU8sQ0FBQztBQUNqQztBQTlCQSxJQUFBQyxZQUFBOzs7QUFDQTs7Ozs7QUNVQSxTQUFTLGFBQ0xDLE9BQ0FDLFVBQW1DO0FBRW5DLFNBQU8sQ0FBQyxTQUFRO0FBQ1osVUFBTUMsVUFBU0QsU0FBUSxVQUFVLElBQUk7QUFDckMsV0FBT0MsV0FBVSxRQUFRRCxTQUFRLE1BQU1DLE9BQU0sS0FBS0YsTUFBSyxJQUFJO0VBQy9EO0FBQ0o7QUFxSkEsU0FBUyxtQkFDTCxNQUE0QztBQUU1QyxTQUFPLFNBQVMsY0FBY0EsT0FBTSxPQUFPLEVBQUUsU0FBQUMsU0FBTyxHQUFFO0FBQ2xELFVBQU0sT0FBT0EsU0FBUSxJQUFJO0FBRXpCLFFBQUksT0FBTyxTQUFTLFlBQVk7QUFDNUIsYUFBTyxpQkFBQUUsUUFBUzs7QUFHcEIsV0FBTyxTQUFTLE9BQU8sTUFBSTtBQUN2QixhQUFPLEtBQUssSUFBSSxLQUFLSCxNQUFLLElBQUk7SUFDbEM7RUFDSjtBQUNKO0FBdExBLElBQ0FJLGtCQW9CYTtBQXJCYjs7SUFBQUM7QUFDQSxJQUFBRCxtQkFBcUI7QUFvQmQsSUFBTSxVQUFrQztNQUMzQyxTQUFTSixPQUFNTSxPQUFNLEVBQUUsU0FBQUwsU0FBTyxHQUFFO0FBQzVCLGVBQU8sU0FBU00sVUFBUyxNQUFJO0FBQ3pCLGlCQUFPUCxNQUFLLElBQUksS0FBS0MsU0FBUSxRQUFRLElBQUksRUFBRSxTQUFTSyxLQUFJO1FBQzVEO01BQ0o7TUFDQSxVQUFVTixPQUFNTSxPQUFNLEVBQUUsU0FBQUwsU0FBTyxHQUFFO0FBQzdCLGNBQU0sUUFBUUssTUFBSyxZQUFXO0FBRTlCLGVBQU8sU0FBUyxVQUFVLE1BQUk7QUFDMUIsaUJBQ0lOLE1BQUssSUFBSSxLQUNUQyxTQUFRLFFBQVEsSUFBSSxFQUFFLFlBQVcsRUFBRyxTQUFTLEtBQUs7UUFFMUQ7TUFDSjs7TUFHQSxZQUFZRCxPQUFNLE1BQU0sRUFBRSxTQUFBQyxVQUFTLE9BQU0sR0FBRTtBQUN2QyxjQUFNLE9BQU8sU0FBVSxJQUFJO0FBRTNCLFlBQUksU0FBUyxpQkFBQUUsUUFBUztBQUFXLGlCQUFPLGlCQUFBQSxRQUFTO0FBQ2pELFlBQUksU0FBUyxpQkFBQUEsUUFBUztBQUFVLGlCQUFPLGFBQWFILE9BQU1DLFFBQU87QUFFakUsZUFBTyxTQUFTLFNBQVMsTUFBSTtBQUN6QixnQkFBTU8sWUFBV1AsU0FBUSxZQUFZLElBQUk7QUFDekMsY0FBSSxNQUFNO0FBRVYsbUJBQVMsSUFBSSxHQUFHLElBQUlPLFVBQVMsUUFBUSxLQUFLO0FBQ3RDLGdCQUFJLE9BQU8sTUFBTUEsVUFBUyxDQUFDLENBQUM7QUFBRztBQUMvQixnQkFBSVAsU0FBUSxNQUFNTyxVQUFTLENBQUMsQ0FBQyxHQUFHO0FBQzVCOzs7QUFJUixpQkFBTyxLQUFLLEdBQUcsS0FBS1IsTUFBSyxJQUFJO1FBQ2pDO01BQ0o7TUFDQSxpQkFBaUJBLE9BQU0sTUFBTSxFQUFFLFNBQUFDLFVBQVMsT0FBTSxHQUFFO0FBQzVDLGNBQU0sT0FBTyxTQUFVLElBQUk7QUFFM0IsWUFBSSxTQUFTLGlCQUFBRSxRQUFTO0FBQVcsaUJBQU8saUJBQUFBLFFBQVM7QUFDakQsWUFBSSxTQUFTLGlCQUFBQSxRQUFTO0FBQVUsaUJBQU8sYUFBYUgsT0FBTUMsUUFBTztBQUVqRSxlQUFPLFNBQVMsYUFBYSxNQUFJO0FBQzdCLGdCQUFNTyxZQUFXUCxTQUFRLFlBQVksSUFBSTtBQUN6QyxjQUFJLE1BQU07QUFFVixtQkFBUyxJQUFJTyxVQUFTLFNBQVMsR0FBRyxLQUFLLEdBQUcsS0FBSztBQUMzQyxnQkFBSSxPQUFPLE1BQU1BLFVBQVMsQ0FBQyxDQUFDO0FBQUc7QUFDL0IsZ0JBQUlQLFNBQVEsTUFBTU8sVUFBUyxDQUFDLENBQUMsR0FBRztBQUM1Qjs7O0FBSVIsaUJBQU8sS0FBSyxHQUFHLEtBQUtSLE1BQUssSUFBSTtRQUNqQztNQUNKO01BQ0EsY0FBY0EsT0FBTSxNQUFNLEVBQUUsU0FBQUMsVUFBUyxPQUFNLEdBQUU7QUFDekMsY0FBTSxPQUFPLFNBQVUsSUFBSTtBQUUzQixZQUFJLFNBQVMsaUJBQUFFLFFBQVM7QUFBVyxpQkFBTyxpQkFBQUEsUUFBUztBQUNqRCxZQUFJLFNBQVMsaUJBQUFBLFFBQVM7QUFBVSxpQkFBTyxhQUFhSCxPQUFNQyxRQUFPO0FBRWpFLGVBQU8sU0FBUyxVQUFVLE1BQUk7QUFDMUIsZ0JBQU1PLFlBQVdQLFNBQVEsWUFBWSxJQUFJO0FBQ3pDLGNBQUksTUFBTTtBQUVWLG1CQUFTLElBQUksR0FBRyxJQUFJTyxVQUFTLFFBQVEsS0FBSztBQUN0QyxrQkFBTSxpQkFBaUJBLFVBQVMsQ0FBQztBQUNqQyxnQkFBSSxPQUFPLE1BQU0sY0FBYztBQUFHO0FBQ2xDLGdCQUNJUCxTQUFRLE1BQU0sY0FBYyxLQUM1QkEsU0FBUSxRQUFRLGNBQWMsTUFBTUEsU0FBUSxRQUFRLElBQUksR0FDMUQ7QUFDRTs7O0FBSVIsaUJBQU8sS0FBSyxHQUFHLEtBQUtELE1BQUssSUFBSTtRQUNqQztNQUNKO01BQ0EsbUJBQW1CQSxPQUFNLE1BQU0sRUFBRSxTQUFBQyxVQUFTLE9BQU0sR0FBRTtBQUM5QyxjQUFNLE9BQU8sU0FBVSxJQUFJO0FBRTNCLFlBQUksU0FBUyxpQkFBQUUsUUFBUztBQUFXLGlCQUFPLGlCQUFBQSxRQUFTO0FBQ2pELFlBQUksU0FBUyxpQkFBQUEsUUFBUztBQUFVLGlCQUFPLGFBQWFILE9BQU1DLFFBQU87QUFFakUsZUFBTyxTQUFTLGNBQWMsTUFBSTtBQUM5QixnQkFBTU8sWUFBV1AsU0FBUSxZQUFZLElBQUk7QUFDekMsY0FBSSxNQUFNO0FBRVYsbUJBQVMsSUFBSU8sVUFBUyxTQUFTLEdBQUcsS0FBSyxHQUFHLEtBQUs7QUFDM0Msa0JBQU0saUJBQWlCQSxVQUFTLENBQUM7QUFDakMsZ0JBQUksT0FBTyxNQUFNLGNBQWM7QUFBRztBQUNsQyxnQkFDSVAsU0FBUSxNQUFNLGNBQWMsS0FDNUJBLFNBQVEsUUFBUSxjQUFjLE1BQU1BLFNBQVEsUUFBUSxJQUFJLEdBQzFEO0FBQ0U7OztBQUlSLGlCQUFPLEtBQUssR0FBRyxLQUFLRCxNQUFLLElBQUk7UUFDakM7TUFDSjs7TUFHQSxLQUFLQSxPQUFNLE9BQU8sRUFBRSxTQUFBQyxTQUFPLEdBQUU7QUFDekIsZUFBTyxDQUFDLFNBQVE7QUFDWixnQkFBTUMsVUFBU0QsU0FBUSxVQUFVLElBQUk7QUFDckMsa0JBQVFDLFdBQVUsUUFBUSxDQUFDRCxTQUFRLE1BQU1DLE9BQU0sTUFBTUYsTUFBSyxJQUFJO1FBQ2xFO01BQ0o7TUFFQSxNQUNJQSxPQUNBLE1BQ0EsU0FDQSxTQUFnQjtBQUVoQixjQUFNLEVBQUUsT0FBTSxJQUFLO0FBRW5CLFlBQUksQ0FBQyxXQUFXLFFBQVEsV0FBVyxHQUFHO0FBRWxDLGlCQUFPLFFBQVEsTUFBTSxFQUFFQSxPQUFNLE1BQU0sT0FBTzs7QUFHOUMsWUFBSSxRQUFRLFdBQVcsR0FBRztBQUV0QixpQkFBTyxDQUFDLFNBQVMsT0FBTyxRQUFRLENBQUMsR0FBRyxJQUFJLEtBQUtBLE1BQUssSUFBSTs7QUFHMUQsZUFBTyxDQUFDLFNBQVMsUUFBUSxTQUFTLElBQUksS0FBS0EsTUFBSyxJQUFJO01BQ3hEO01BRUEsT0FBTyxtQkFBbUIsV0FBVztNQUNyQyxTQUFTLG1CQUFtQixXQUFXO01BQ3ZDLFFBQVEsbUJBQW1CLFVBQVU7Ozs7OztBQ2pFbkMsU0FBVSxpQkFDWixNQUNBLE1BQ0EsV0FDQSxVQUFnQjtBQUVoQixNQUFJLGNBQWMsTUFBTTtBQUNwQixRQUFJLEtBQUssU0FBUyxVQUFVO0FBQ3hCLFlBQU0sSUFBSSxNQUFNLGlCQUFpQixJQUFJLHVCQUF1Qjs7YUFFekQsS0FBSyxXQUFXLFVBQVU7QUFDakMsVUFBTSxJQUFJLE1BQU0saUJBQWlCLElBQUksNkJBQTZCOztBQUUxRTtBQWxHQSxJQUNhO0FBRGI7O0FBQ08sSUFBTSxVQUFrQztNQUMzQyxNQUFNLE1BQU0sRUFBRSxTQUFBUyxTQUFPLEdBQUU7QUFDbkIsZUFBTyxDQUFDQSxTQUFRLFlBQVksSUFBSSxFQUFFLEtBQzlCLENBQUNDOztVQUVHRCxTQUFRLE1BQU1DLEtBQUksS0FBS0QsU0FBUSxRQUFRQyxLQUFJLE1BQU07U0FBRTtNQUUvRDtNQUVBLGNBQWMsTUFBTSxFQUFFLFNBQUFELFVBQVMsT0FBTSxHQUFFO0FBQ25DLFlBQUlBLFNBQVEsb0JBQW9CO0FBQzVCLGlCQUFPQSxTQUFRLG1CQUFtQixJQUFJLEtBQUs7O0FBRy9DLGNBQU0sYUFBYUEsU0FDZCxZQUFZLElBQUksRUFDaEIsS0FBSyxDQUFDQyxVQUFTRCxTQUFRLE1BQU1DLEtBQUksQ0FBQztBQUN2QyxlQUFPLGNBQWMsUUFBUSxPQUFPLE1BQU0sVUFBVTtNQUN4RDtNQUNBLGFBQWEsTUFBTSxFQUFFLFNBQUFELFVBQVMsT0FBTSxHQUFFO0FBQ2xDLGNBQU1FLFlBQVdGLFNBQVEsWUFBWSxJQUFJO0FBRXpDLGlCQUFTLElBQUlFLFVBQVMsU0FBUyxHQUFHLEtBQUssR0FBRyxLQUFLO0FBQzNDLGNBQUksT0FBTyxNQUFNQSxVQUFTLENBQUMsQ0FBQztBQUFHLG1CQUFPO0FBQ3RDLGNBQUlGLFNBQVEsTUFBTUUsVUFBUyxDQUFDLENBQUM7QUFBRzs7QUFHcEMsZUFBTztNQUNYO01BQ0EsZ0JBQWdCLE1BQU0sRUFBRSxTQUFBRixVQUFTLE9BQU0sR0FBRTtBQUNyQyxjQUFNRSxZQUFXRixTQUFRLFlBQVksSUFBSTtBQUN6QyxjQUFNLFdBQVdBLFNBQVEsUUFBUSxJQUFJO0FBRXJDLGlCQUFTLElBQUksR0FBRyxJQUFJRSxVQUFTLFFBQVEsS0FBSztBQUN0QyxnQkFBTSxpQkFBaUJBLFVBQVMsQ0FBQztBQUNqQyxjQUFJLE9BQU8sTUFBTSxjQUFjO0FBQUcsbUJBQU87QUFDekMsY0FDSUYsU0FBUSxNQUFNLGNBQWMsS0FDNUJBLFNBQVEsUUFBUSxjQUFjLE1BQU0sVUFDdEM7QUFDRTs7O0FBSVIsZUFBTztNQUNYO01BQ0EsZUFBZSxNQUFNLEVBQUUsU0FBQUEsVUFBUyxPQUFNLEdBQUU7QUFDcEMsY0FBTUUsWUFBV0YsU0FBUSxZQUFZLElBQUk7QUFDekMsY0FBTSxXQUFXQSxTQUFRLFFBQVEsSUFBSTtBQUVyQyxpQkFBUyxJQUFJRSxVQUFTLFNBQVMsR0FBRyxLQUFLLEdBQUcsS0FBSztBQUMzQyxnQkFBTSxpQkFBaUJBLFVBQVMsQ0FBQztBQUNqQyxjQUFJLE9BQU8sTUFBTSxjQUFjO0FBQUcsbUJBQU87QUFDekMsY0FDSUYsU0FBUSxNQUFNLGNBQWMsS0FDNUJBLFNBQVEsUUFBUSxjQUFjLE1BQU0sVUFDdEM7QUFDRTs7O0FBSVIsZUFBTztNQUNYO01BQ0EsZUFBZSxNQUFNLEVBQUUsU0FBQUEsVUFBUyxPQUFNLEdBQUU7QUFDcEMsY0FBTSxXQUFXQSxTQUFRLFFBQVEsSUFBSTtBQUVyQyxlQUFPQSxTQUNGLFlBQVksSUFBSSxFQUNoQixNQUNHLENBQUMsWUFDRyxPQUFPLE1BQU0sT0FBTyxLQUNwQixDQUFDQSxTQUFRLE1BQU0sT0FBTyxLQUN0QkEsU0FBUSxRQUFRLE9BQU8sTUFBTSxRQUFRO01BRXJEO01BQ0EsYUFBYSxNQUFNLEVBQUUsU0FBQUEsVUFBUyxPQUFNLEdBQUU7QUFDbEMsZUFBT0EsU0FDRixZQUFZLElBQUksRUFDaEIsTUFDRyxDQUFDLFlBQVksT0FBTyxNQUFNLE9BQU8sS0FBSyxDQUFDQSxTQUFRLE1BQU0sT0FBTyxDQUFDO01BRXpFOzs7Ozs7QUMzRkosSUFHYTtBQUhiOztBQUdPLElBQU0sVUFBa0M7O01BRzNDLFlBQVk7TUFDWixNQUFNOzs7TUFLTixVQUFVOzs7OztNQUtWLFNBQVM7TUFDVCxTQUNJO01BQ0osVUFBVTtNQUNWLFVBQVU7OztNQUtWLFVBQ0k7TUFFSixVQUFVO01BQ1YsTUFBTTtNQUNOLFVBQVU7TUFDVixPQUFPO01BQ1AsT0FBTztNQUNQLE9BQU87TUFDUCxRQUFRO01BRVIsUUFBUTtNQUNSLFFBQVE7TUFFUixRQUFRO01BQ1IsT0FBTztNQUNQLE1BQU07Ozs7OztBQzdCSixTQUFVLFlBQ1pHLE9BQ0FDLFVBQW1DO0FBRW5DLE1BQUlELFVBQVMsaUJBQUFFLFFBQVM7QUFBVyxXQUFPLGlCQUFBQSxRQUFTO0FBQ2pELFNBQU8sQ0FBQyxTQUFlRCxTQUFRLE1BQU0sSUFBSSxLQUFLRCxNQUFLLElBQUk7QUFDM0Q7QUFVTSxTQUFVLGdCQUNaLE1BQ0FDLFVBQW1DO0FBRW5DLFFBQU1FLFlBQVdGLFNBQVEsWUFBWSxJQUFJO0FBQ3pDLE1BQUlFLFVBQVMsVUFBVTtBQUFHLFdBQU8sQ0FBQTtBQUNqQyxRQUFNLFlBQVlBLFVBQVMsUUFBUSxJQUFJO0FBQ3ZDLE1BQUksWUFBWSxLQUFLLGNBQWNBLFVBQVMsU0FBUztBQUFHLFdBQU8sQ0FBQTtBQUMvRCxTQUFPQSxVQUFTLE1BQU0sWUFBWSxDQUFDLEVBQUUsT0FBT0YsU0FBUSxLQUFLO0FBQzdEO0FBRUEsU0FBUyxZQUNMLFNBQTJDO0FBRzNDLFNBQU87SUFDSCxTQUFTLENBQUMsQ0FBQyxRQUFRO0lBQ25CLHlCQUF5QixDQUFDLENBQUMsUUFBUTtJQUNuQyxlQUFlLENBQUMsQ0FBQyxRQUFRO0lBQ3pCLFlBQVksQ0FBQyxDQUFDLFFBQVE7SUFDdEIsY0FBYyxDQUFDLENBQUMsUUFBUTtJQUN4QixTQUFTLFFBQVE7SUFDakIsU0FBUyxRQUFRO0lBQ2pCLFFBQVEsUUFBUTs7QUFFeEI7QUFyREEsSUFBQUcsa0JBVWEscUJBNkNQLElBZU87QUF0RWI7O0lBQUFBLG1CQUFxQjtBQU9yQjtBQUdPLElBQU0sc0JBQXNCLENBQUE7QUE2Q25DLElBQU0sS0FBZ0IsQ0FBQ0osT0FBTSxPQUFPLFNBQVMsU0FBU0ssa0JBQWdCO0FBQ2xFLFlBQU0sT0FBT0EsY0FBYSxPQUFPLFlBQVksT0FBTyxHQUFHLE9BQU87QUFFOUQsYUFBTyxTQUFTLGlCQUFBSCxRQUFTLFdBQ25CRixRQUNBLFNBQVMsaUJBQUFFLFFBQVMsWUFDbEIsaUJBQUFBLFFBQVMsWUFDVCxDQUFDLFNBQVMsS0FBSyxJQUFJLEtBQUtGLE1BQUssSUFBSTtJQUMzQztBQU9PLElBQU0sYUFBd0M7TUFDakQ7Ozs7TUFJQSxTQUFTO01BQ1QsT0FBTztNQUNQLElBQUlBLE9BQU0sT0FBTyxTQUFTLFNBQVNLLGVBQVk7QUFDM0MsY0FBTSxPQUFPQSxjQUFhLE9BQU8sWUFBWSxPQUFPLEdBQUcsT0FBTztBQUU5RCxlQUFPLFNBQVMsaUJBQUFILFFBQVMsWUFDbkJGLFFBQ0EsU0FBUyxpQkFBQUUsUUFBUyxXQUNsQixpQkFBQUEsUUFBUyxZQUNULENBQUMsU0FBUyxDQUFDLEtBQUssSUFBSSxLQUFLRixNQUFLLElBQUk7TUFDNUM7TUFDQSxJQUNJQSxPQUNBLFdBQ0EsU0FDQSxVQUNBSyxlQUE2QztBQUU3QyxjQUFNLEVBQUUsU0FBQUosU0FBTyxJQUFLO0FBRXBCLGNBQU0sT0FBTyxZQUFZLE9BQU87QUFDaEMsYUFBSyxtQkFBbUI7QUFFeEIsY0FBTSxVQUFVLFVBQVUsS0FBSyxDQUFDLE1BQU0sRUFBRSxLQUFLLFdBQVcsQ0FBQzs7VUFFbEQsQ0FBQyxtQkFBbUI7WUFDckI7QUFFTixjQUFNLFdBQVdJLGNBQWEsV0FBVyxNQUFNLE9BQU87QUFFdEQsWUFBSSxhQUFhLGlCQUFBSCxRQUFTO0FBQVcsaUJBQU8saUJBQUFBLFFBQVM7QUFFckQsY0FBTSxhQUFhLFlBQVksVUFBVUQsUUFBTztBQUdoRCxZQUFJLFdBQVcsYUFBYSxpQkFBQUMsUUFBUyxVQUFVO0FBSzNDLGdCQUFNLEVBQUUseUJBQXlCLE1BQUssSUFBSztBQUUzQyxpQkFBTyxDQUFDLFNBQVE7QUFDWixnQkFBSSxDQUFDRixNQUFLLElBQUk7QUFBRyxxQkFBTztBQUV4QixvQkFBUSxDQUFDLElBQUk7QUFDYixrQkFBTSxTQUFTQyxTQUFRLFlBQVksSUFBSTtBQUN2QyxrQkFBTSxlQUFlLHlCQUNmLENBQUMsR0FBRyxRQUFRLEdBQUcsZ0JBQWdCLE1BQU1BLFFBQU8sQ0FBQyxJQUM3QztBQUVOLG1CQUFPQSxTQUFRLFVBQVUsWUFBWSxZQUFZO1VBQ3JEOztBQUdKLGVBQU8sQ0FBQyxTQUNKRCxNQUFLLElBQUksS0FDVEMsU0FBUSxVQUFVLFlBQVlBLFNBQVEsWUFBWSxJQUFJLENBQUM7TUFDL0Q7Ozs7OztBQy9HRSxTQUFVLHNCQUNaSyxPQUNBLFVBQ0EsU0FDQSxTQUNBQyxlQUE2Qzs7QUFFN0MsUUFBTSxFQUFFLE1BQU0sTUFBQUMsTUFBSSxJQUFLO0FBRXZCLE1BQUksTUFBTSxRQUFRQSxLQUFJLEdBQUc7QUFDckIsUUFBSSxFQUFFLFFBQVEsYUFBYTtBQUN2QixZQUFNLElBQUksTUFBTSx5QkFBeUIsSUFBSSxJQUFJQSxLQUFJLEdBQUc7O0FBRzVELFdBQU8sV0FBVyxJQUFJLEVBQUVGLE9BQU1FLE9BQU0sU0FBUyxTQUFTRCxhQUFZOztBQUd0RSxRQUFNLGNBQWFFLE1BQUEsUUFBUSxhQUFPLFFBQUFBLFFBQUEsU0FBQSxTQUFBQSxJQUFHLElBQUk7QUFFekMsUUFBTSxlQUNGLE9BQU8sZUFBZSxXQUFXLGFBQWEsUUFBUSxJQUFJO0FBRTlELE1BQUksT0FBTyxpQkFBaUIsVUFBVTtBQUNsQyxRQUFJRCxTQUFRLE1BQU07QUFDZCxZQUFNLElBQUksTUFBTSxVQUFVLElBQUksNkJBQTZCOztBQUkvRCxVQUFNLFlBQVEsd0JBQU0sWUFBWTtBQUNoQyxXQUFPLFdBQVcsSUFBSSxFQUFFRixPQUFNLE9BQU8sU0FBUyxTQUFTQyxhQUFZOztBQUd2RSxNQUFJLE9BQU8sZUFBZSxZQUFZO0FBQ2xDLHFCQUFpQixZQUFZLE1BQU1DLE9BQU0sQ0FBQztBQUUxQyxXQUFPLENBQUMsU0FBUyxXQUFXLE1BQU1BLEtBQUksS0FBS0YsTUFBSyxJQUFJOztBQUd4RCxNQUFJLFFBQVEsU0FBUztBQUNqQixXQUFPLFFBQVEsSUFBSSxFQUFFQSxPQUFNRSxPQUFnQixTQUFTLE9BQU87O0FBRy9ELE1BQUksUUFBUSxTQUFTO0FBQ2pCLFVBQU0sU0FBUyxRQUFRLElBQUk7QUFDM0IscUJBQWlCLFFBQVEsTUFBTUEsT0FBTSxDQUFDO0FBRXRDLFdBQU8sQ0FBQyxTQUFTLE9BQU8sTUFBTSxTQUFTQSxLQUFJLEtBQUtGLE1BQUssSUFBSTs7QUFHN0QsUUFBTSxJQUFJLE1BQU0seUJBQXlCLElBQUksRUFBRTtBQUNuRDtBQTFEQSxJQUFBSTtBQUFBOztJQUFBQSxtQkFBc0M7QUFDdEM7QUFDQTtBQUNBO0FBQ0E7Ozs7O0FDUkEsU0FBUyxpQkFDTCxNQUNBQyxVQUFtQztBQUVuQyxRQUFNQyxVQUFTRCxTQUFRLFVBQVUsSUFBSTtBQUNyQyxNQUFJQyxXQUFVRCxTQUFRLE1BQU1DLE9BQU0sR0FBRztBQUNqQyxXQUFPQTs7QUFFWCxTQUFPO0FBQ1g7QUFNTSxTQUFVLHVCQUNaQyxPQUNBLFVBQ0EsU0FDQSxTQUNBQyxlQUE2QztBQUU3QyxRQUFNLEVBQUUsU0FBQUgsVUFBUyxPQUFNLElBQUs7QUFFNUIsVUFBUSxTQUFTLE1BQU07SUFDbkIsS0FBSyw4QkFBYSxlQUFlO0FBQzdCLFlBQU0sSUFBSSxNQUFNLGlEQUFpRDs7SUFFckUsS0FBSyw4QkFBYSxrQkFBa0I7QUFDaEMsWUFBTSxJQUFJLE1BQ04sd0RBQXdEOztJQUdoRSxLQUFLLDhCQUFhLFdBQVc7QUFDekIsVUFBSSxTQUFTLGFBQWEsTUFBTTtBQUM1QixjQUFNLElBQUksTUFDTiwyREFBMkQ7O0FBSW5FLFVBQUksQ0FBQyxRQUFRLFdBQVcsUUFBUSx5QkFBeUI7QUFDckQsaUJBQVMsT0FBTyxTQUFTLEtBQUssWUFBVzs7QUFFN0MsYUFBTyxlQUFlLFNBQVMsTUFBTSxFQUFFRSxPQUFNLFVBQVUsT0FBTzs7SUFFbEUsS0FBSyw4QkFBYSxRQUFRO0FBQ3RCLGFBQU8sc0JBQ0hBLE9BQ0EsVUFDQSxTQUNBLFNBQ0FDLGFBQVk7OztJQUlwQixLQUFLLDhCQUFhLEtBQUs7QUFDbkIsVUFBSSxTQUFTLGFBQWEsTUFBTTtBQUM1QixjQUFNLElBQUksTUFDTiwwREFBMEQ7O0FBSWxFLFVBQUksRUFBRSxLQUFJLElBQUs7QUFFZixVQUFJLENBQUMsUUFBUSxXQUFXLFFBQVEsZUFBZTtBQUMzQyxlQUFPLEtBQUssWUFBVzs7QUFHM0IsYUFBTyxTQUFTLElBQUksTUFBaUI7QUFDakMsZUFBT0gsU0FBUSxRQUFRLElBQUksTUFBTSxRQUFRRSxNQUFLLElBQUk7TUFDdEQ7OztJQUlKLEtBQUssOEJBQWEsWUFBWTtBQUMxQixVQUNJLFFBQVEsaUJBQWlCLFNBQ3pCLE9BQU8sWUFBWSxhQUNyQjtBQUNFLGVBQU8sU0FBUyxXQUFXLE1BQWlCO0FBQ3hDLGNBQUksVUFBOEI7QUFFbEMsaUJBQVEsVUFBVSxpQkFBaUIsU0FBU0YsUUFBTyxHQUFJO0FBQ25ELGdCQUFJRSxNQUFLLE9BQU8sR0FBRztBQUNmLHFCQUFPOzs7QUFJZixpQkFBTztRQUNYOztBQUlKLFlBQU0sZUFBZSxvQkFBSSxRQUFPO0FBQ2hDLGFBQU8sU0FBUyxpQkFBaUIsTUFBaUI7QUFDOUMsWUFBSSxVQUE4QjtBQUVsQyxlQUFRLFVBQVUsaUJBQWlCLFNBQVNGLFFBQU8sR0FBSTtBQUNuRCxjQUFJLENBQUMsYUFBYSxJQUFJLE9BQU8sR0FBRztBQUM1QixnQkFBSUEsU0FBUSxNQUFNLE9BQU8sS0FBS0UsTUFBSyxPQUFPLEdBQUc7QUFDekMscUJBQU87O0FBRVgseUJBQWEsSUFBSSxPQUFPOzs7QUFJaEMsZUFBTztNQUNYOztJQUVKLEtBQUssdUJBQXVCO0FBRXhCLGFBQU8sU0FBUyxtQkFBbUIsTUFBaUI7QUFDaEQsWUFBSSxVQUE4QjtBQUVsQyxXQUFHO0FBQ0MsY0FBSUEsTUFBSyxPQUFPO0FBQUcsbUJBQU87aUJBQ3BCLFVBQVUsaUJBQWlCLFNBQVNGLFFBQU87QUFFckQsZUFBTztNQUNYOztJQUVKLEtBQUssOEJBQWEsUUFBUTtBQUN0QixhQUFPLFNBQVNDLFFBQU8sTUFBaUI7QUFDcEMsZUFBT0QsU0FDRixZQUFZLElBQUksRUFDaEIsS0FBSyxDQUFDSSxVQUFTSixTQUFRLE1BQU1JLEtBQUksS0FBS0YsTUFBS0UsS0FBSSxDQUFDO01BQ3pEOztJQUVKLEtBQUssOEJBQWEsT0FBTztBQUNyQixhQUFPLFNBQVMsTUFBTSxNQUFpQjtBQUNuQyxjQUFNSCxVQUFTRCxTQUFRLFVBQVUsSUFBSTtBQUNyQyxlQUFPQyxXQUFVLFFBQVFELFNBQVEsTUFBTUMsT0FBTSxLQUFLQyxNQUFLRCxPQUFNO01BQ2pFOztJQUVKLEtBQUssOEJBQWEsU0FBUztBQUN2QixhQUFPLFNBQVMsUUFBUSxNQUFpQjtBQUNyQyxjQUFNSSxZQUFXTCxTQUFRLFlBQVksSUFBSTtBQUV6QyxpQkFBUyxJQUFJLEdBQUcsSUFBSUssVUFBUyxRQUFRLEtBQUs7QUFDdEMsZ0JBQU0saUJBQWlCQSxVQUFTLENBQUM7QUFDakMsY0FBSSxPQUFPLE1BQU0sY0FBYztBQUFHO0FBQ2xDLGNBQUlMLFNBQVEsTUFBTSxjQUFjLEtBQUtFLE1BQUssY0FBYyxHQUFHO0FBQ3ZELG1CQUFPOzs7QUFJZixlQUFPO01BQ1g7O0lBRUosS0FBSyw4QkFBYSxVQUFVO0FBQ3hCLFVBQUlGLFNBQVEsb0JBQW9CO0FBQzVCLGVBQU8sU0FBUyxTQUFTLE1BQWlCO0FBQ3RDLGdCQUFNLFdBQVdBLFNBQVEsbUJBQW9CLElBQUk7QUFDakQsaUJBQU8sWUFBWSxRQUFRRSxNQUFLLFFBQVE7UUFDNUM7O0FBR0osYUFBTyxTQUFTLFNBQVMsTUFBaUI7QUFDdEMsY0FBTUcsWUFBV0wsU0FBUSxZQUFZLElBQUk7QUFDekMsWUFBSTtBQUVKLGlCQUFTLElBQUksR0FBRyxJQUFJSyxVQUFTLFFBQVEsS0FBSztBQUN0QyxnQkFBTSxpQkFBaUJBLFVBQVMsQ0FBQztBQUNqQyxjQUFJLE9BQU8sTUFBTSxjQUFjO0FBQUc7QUFDbEMsY0FBSUwsU0FBUSxNQUFNLGNBQWMsR0FBRztBQUMvQiwwQkFBYzs7O0FBSXRCLGVBQU8sQ0FBQyxDQUFDLGVBQWVFLE1BQUssV0FBVztNQUM1Qzs7SUFFSixLQUFLLDhCQUFhLFdBQVc7QUFDekIsVUFBSSxTQUFTLGFBQWEsUUFBUSxTQUFTLGNBQWMsS0FBSztBQUMxRCxjQUFNLElBQUksTUFDTixvRUFBb0U7O0FBSTVFLGFBQU9BOzs7QUFHbkI7QUFqTUEsSUFTQUk7QUFUQTs7SUFBQUM7QUFDQTtBQVFBLElBQUFELG1CQUE2Qjs7Ozs7QUNZdkIsU0FBVUUsU0FDWixVQUNBLFNBQ0EsU0FBdUI7QUFFdkIsUUFBTUMsUUFBTyxjQUFjLFVBQVUsU0FBUyxPQUFPO0FBQ3JELFNBQU8sWUFBWUEsT0FBTSxRQUFRLE9BQU87QUFDNUM7QUFFTSxTQUFVLGNBQ1osVUFDQSxTQUNBLFNBQXVCO0FBRXZCLFFBQU0sUUFBUSxPQUFPLGFBQWEsZUFBVyx3QkFBTSxRQUFRLElBQUk7QUFDL0QsU0FBTyxhQUFnQyxPQUFPLFNBQVMsT0FBTztBQUNsRTtBQUVBLFNBQVMsb0JBQW9CLEdBQW1CO0FBQzVDLFNBQ0ksRUFBRSxTQUFTLDhCQUFhLFdBQ3ZCLEVBQUUsU0FBUyxXQUNQLE1BQU0sUUFBUSxFQUFFLElBQUksS0FDakIsRUFBRSxLQUFLLEtBQUssQ0FBQ0MsVUFBU0EsTUFBSyxLQUFLLG1CQUFtQixDQUFDO0FBRXBFO0FBZ0JBLFNBQVMsV0FDTCxPQUNBLEVBQUUsU0FBQUMsU0FBTyxHQUNULFNBQWdCO0FBR2hCLFFBQU0sYUFBYSxDQUFDLEVBQUMsWUFBTyxRQUFQLFlBQU8sU0FBQSxTQUFQLFFBQVMsTUFBTSxDQUFDLE1BQUs7QUFDdEMsVUFBTUMsVUFBU0QsU0FBUSxNQUFNLENBQUMsS0FBS0EsU0FBUSxVQUFVLENBQUM7QUFDdEQsV0FBTyxNQUFNLHVCQUF3QkMsV0FBVUQsU0FBUSxNQUFNQyxPQUFNO0VBQ3ZFLENBQUM7QUFFRCxhQUFXLEtBQUssT0FBTztBQUNuQixRQUNJLEVBQUUsU0FBUyxLQUNYLFlBQVksRUFBRSxDQUFDLENBQUMsS0FDaEIsRUFBRSxDQUFDLEVBQUUsU0FBUyw4QkFBYSxZQUM3QjtlQUVTLGNBQWMsQ0FBQyxFQUFFLEtBQUssbUJBQW1CLEdBQUc7QUFDbkQsUUFBRSxRQUFRLGdCQUFnQjtXQUN2QjtBQUNIOztBQUdKLE1BQUUsUUFBUSxXQUFXOztBQUU3QjtBQUVNLFNBQVUsYUFDWixPQUNBLFNBQ0EsU0FBdUI7O0FBRXZCLFFBQU0sUUFBUSxlQUFTO0FBRXZCLGFBQVVDLE1BQUEsUUFBUSxhQUFPLFFBQUFBLFFBQUEsU0FBQUEsTUFBSTtBQUM3QixRQUFNLGlCQUFpQixNQUFNLFFBQVEsT0FBTztBQUU1QyxRQUFNLGVBQ0YsWUFBWSxNQUFNLFFBQVEsT0FBTyxJQUFJLFVBQVUsQ0FBQyxPQUFPO0FBRzNELE1BQUksUUFBUSxxQkFBcUIsT0FBTztBQUNwQyxlQUFXLE9BQU8sU0FBUyxZQUFZO2FBQ2hDLE1BQU0sS0FBSyxDQUFDLE1BQU0sRUFBRSxTQUFTLEtBQUssWUFBWSxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUc7QUFDN0QsVUFBTSxJQUFJLE1BQ04sbUZBQW1GOztBQUkzRixNQUFJLHlCQUF5QjtBQUU3QixRQUFNLFFBQVEsTUFDVCxJQUFJLENBQUMsVUFBUztBQUNYLFFBQUksTUFBTSxVQUFVLEdBQUc7QUFDbkIsWUFBTSxDQUFDQyxRQUFPLE1BQU0sSUFBSTtBQUV4QixVQUNJQSxPQUFNLFNBQVMsOEJBQWEsVUFDNUJBLE9BQU0sU0FBUyxTQUNqQjtpQkFHRSxrQkFDQSxPQUFPLFNBQVMsOEJBQWEsWUFDL0I7QUFDRSxjQUFNLENBQUMsSUFBSTtpQkFFWCxPQUFPLFNBQVMsOEJBQWEsWUFDN0IsT0FBTyxTQUFTLDhCQUFhLFNBQy9CO0FBQ0UsaUNBQXlCOzs7QUFJakMsV0FBTyxhQUNILE9BQ0EsU0FDQSxZQUFZO0VBRXBCLENBQUMsRUFDQSxPQUFPLGFBQWEsaUJBQUFDLFFBQVMsU0FBUztBQUUzQyxRQUFNLHlCQUF5QjtBQUUvQixTQUFPO0FBQ1g7QUFFQSxTQUFTLGFBQ0wsT0FDQSxTQUNBLFNBQWdCOztBQUVoQixTQUFPLE1BQU0sT0FDVCxDQUFDLFVBQVUsU0FDUCxhQUFhLGlCQUFBQSxRQUFTLFlBQ2hCLGlCQUFBQSxRQUFTLFlBQ1QsdUJBQ0ksVUFDQSxNQUNBLFNBQ0EsU0FDQSxZQUFZLElBRTFCRixNQUFBLFFBQVEsY0FBUSxRQUFBQSxRQUFBLFNBQUFBLE1BQUksaUJBQUFFLFFBQVMsUUFBUTtBQUU3QztBQUVBLFNBQVMsWUFDTCxHQUNBLEdBQTZCO0FBRTdCLE1BQUksTUFBTSxpQkFBQUEsUUFBUyxhQUFhLE1BQU0saUJBQUFBLFFBQVMsVUFBVTtBQUNyRCxXQUFPOztBQUVYLE1BQUksTUFBTSxpQkFBQUEsUUFBUyxhQUFhLE1BQU0saUJBQUFBLFFBQVMsVUFBVTtBQUNyRCxXQUFPOztBQUdYLFNBQU8sU0FBUyxRQUFRLE1BQUk7QUFDeEIsV0FBTyxFQUFFLElBQUksS0FBSyxFQUFFLElBQUk7RUFDNUI7QUFDSjtBQXhMQSxJQUFBQyxrQkFDQUMsa0JBK0NNLGtCQUNBLDJCQUdBO0FBcEROLElBQUFDLGdCQUFBOztJQUFBRixtQkFBOEM7QUFDOUMsSUFBQUMsbUJBQXFCO0FBQ3JCO0FBQ0E7QUFDQTtBQTRDQSxJQUFNLG1CQUE2QixFQUFFLE1BQU0sOEJBQWEsV0FBVTtBQUNsRSxJQUFNLDRCQUE4QztNQUNoRCxNQUFNOztBQUVWLElBQU0sY0FBd0I7TUFDMUIsTUFBTSw4QkFBYTtNQUNuQixNQUFNO01BQ04sTUFBTTs7Ozs7O0FDMUJWLFNBQVMscUJBQ0wsU0FBb0M7O0FBTXBDLFFBQU0sT0FBbUMsWUFBTyxRQUFQLFlBQU8sU0FBUCxVQUFXO0FBRXBELEdBQUFFLE1BQUEsS0FBSyxhQUFPLFFBQUFBLFFBQUEsU0FBQUEsTUFBWixLQUFLLFVBQVlDO0FBRWpCLEdBQUEsS0FBQSxLQUFLLFlBQU0sUUFBQSxPQUFBLFNBQUEsS0FBWCxLQUFLLFVBQVcsTUFBQSxLQUFBLEtBQUssYUFBTyxRQUFBLE9BQUEsU0FBQSxTQUFBLEdBQUUsWUFBTSxRQUFBLE9BQUEsU0FBQSxLQUFJO0FBRXhDLFNBQU87QUFDWDtBQUVBLFNBQVMsWUFDTCxNQUlxQjtBQUVyQixTQUFPLFNBQVMsV0FDWixVQUNBLFNBQ0EsU0FBdUI7QUFFdkIsVUFBTSxPQUFPLHFCQUFxQixPQUFPO0FBRXpDLFdBQU8sS0FBSyxVQUFVLE1BQU0sT0FBTztFQUN2QztBQUNKO0FBU0EsU0FBUyxnQkFDTCxZQUlNO0FBRU4sU0FBTyxTQUFTQyxRQUNaLE9BQ0EsVUFDQSxTQUFvQztBQUVwQyxVQUFNLE9BQU8scUJBQXFCLE9BQU87QUFFekMsUUFBSSxPQUFPLFVBQVUsWUFBWTtBQUM3QixjQUFRLGNBQWlDLE9BQU8sTUFBTSxRQUFROztBQUdsRSxVQUFNLG1CQUFtQixlQUNyQixVQUNBLEtBQUssU0FDTCxNQUFNLHNCQUFzQjtBQUVoQyxXQUFPLFdBQVcsT0FBTyxrQkFBa0IsSUFBSTtFQUNuRDtBQUNKO0FBRU0sU0FBVSxlQUNaLE9BQ0FDLFVBQ0EseUJBQXlCLE9BQUs7QUFNOUIsTUFBSSx3QkFBd0I7QUFDeEIsWUFBUSxtQkFBbUIsT0FBT0EsUUFBTzs7QUFHN0MsU0FBTyxNQUFNLFFBQVEsS0FBSyxJQUNwQkEsU0FBUSxjQUFjLEtBQUssSUFDM0JBLFNBQVEsWUFBWSxLQUFLO0FBQ25DO0FBRUEsU0FBUyxtQkFDTCxNQUNBQSxVQUFtQztBQUduQyxRQUFNLFFBQVEsTUFBTSxRQUFRLElBQUksSUFBSSxLQUFLLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSTtBQUN6RCxRQUFNLGNBQWMsTUFBTTtBQUUxQixXQUFTLElBQUksR0FBRyxJQUFJLGFBQWEsS0FBSztBQUNsQyxVQUFNLGVBQWUsZ0JBQWdCLE1BQU0sQ0FBQyxHQUFHQSxRQUFPO0FBQ3RELFVBQU0sS0FBSyxHQUFHLFlBQVk7O0FBRTlCLFNBQU87QUFDWDtBQWhJQSxJQUNBQyxrQkFzQk0sZUFDQSxnQkEwQ09DLFVBQ0EsZ0JBQ0EsZUF3RUEsV0FvQkE7QUFoS2IsSUFBQUMsWUFBQTs7SUFBQUE7QUFDQSxJQUFBRixtQkFBcUI7QUFLckIsSUFBQUc7QUFhQTtBQXNMQTtBQWxMQSxJQUFNLGdCQUFnQixDQUFPLEdBQVMsTUFBWSxNQUFNO0FBQ3hELElBQU0saUJBQXFFO01BQ3ZFLFNBQVNOO01BQ1QsUUFBUTs7QUF3Q0wsSUFBTUksV0FBVSxZQUFZQSxRQUFVO0FBQ3RDLElBQU0saUJBQWlCLFlBQVksYUFBYTtBQUNoRCxJQUFNLGdCQUFnQixZQUFZLFlBQVk7QUF3RTlDLElBQU0sWUFBWSxnQkFDckIsQ0FDSSxPQUNBLE9BQ0EsWUFFQSxVQUFVLGlCQUFBRyxRQUFTLGFBQWEsQ0FBQyxTQUFTLE1BQU0sV0FBVyxJQUNyRCxDQUFBLElBQ0EsUUFBUSxRQUFRLFFBQVEsT0FBTyxLQUFLLENBQUM7QUFZNUMsSUFBTSxZQUFZLGdCQUNyQixDQUNJLE9BQ0EsT0FDQSxZQUVBLFVBQVUsaUJBQUFBLFFBQVMsYUFBYSxDQUFDLFNBQVMsTUFBTSxXQUFXLElBQ3JELE9BQ0EsUUFBUSxRQUFRLFFBQVEsT0FBTyxLQUFLLENBQUM7Ozs7O0FDNUk3QyxTQUFVLFNBQVMsR0FBVztBQUNoQyxNQUFJLEVBQUUsU0FBUztBQUFVLFdBQU87QUFDaEMsTUFBSSxZQUFZLElBQUksRUFBRSxJQUFJO0FBQUcsV0FBTztBQUNwQyxNQUFJLEVBQUUsU0FBUyxTQUFTLE1BQU0sUUFBUSxFQUFFLElBQUksR0FBRztBQUUzQyxXQUFPLEVBQUUsS0FBSyxLQUFLLENBQUNDLE9BQU1BLEdBQUUsS0FBSyxRQUFRLENBQUM7O0FBRzlDLFNBQU87QUFDWDtBQUVNLFNBQVUsU0FDWkMsU0FDQUMsT0FDQSxXQUFpQjtBQUVqQixRQUFNLE1BQU1BLFNBQVEsT0FBTyxTQUFTQSxPQUFNLEVBQUUsSUFBSTtBQUVoRCxVQUFRRCxTQUFRO0lBQ1osS0FBSztBQUNELGFBQU87SUFDWCxLQUFLO0lBQ0wsS0FBSztBQUNELGFBQU8sU0FBUyxHQUFHLElBQUssT0FBTyxJQUFJLE1BQU0sSUFBSSxXQUFZO0lBQzdELEtBQUs7QUFDRCxhQUFPLFNBQVMsR0FBRyxJQUNiLE9BQU8sSUFDSCxLQUFLLElBQUksS0FBSyxTQUFTLElBQ3ZCLFdBQ0o7SUFDVixLQUFLO0FBQ0QsYUFBTyxTQUFTLEdBQUcsSUFBSSxXQUFXO0lBQ3RDLEtBQUs7QUFDRCxhQUFPLElBQUk7SUFDZixLQUFLO0FBQ0QsYUFBTyxJQUFJLFlBQVk7SUFDM0IsS0FBSztJQUNMLEtBQUs7QUFDRCxhQUFPOztBQUVuQjtBQXhEQSxJQUFhO0FBQWI7O0FBQU8sSUFBTSxjQUEyQixvQkFBSSxJQUFZO01BQ3BEO01BQ0E7TUFDQTtNQUNBO01BQ0E7TUFDQTtNQUNBO01BQ0E7S0FDSDs7Ozs7QUNqQkssU0FBVSxnQkFBZ0IsTUFBYTtBQUN6QyxTQUFPLEtBQUs7QUFBUSxXQUFPLEtBQUs7QUFDaEMsU0FBTztBQUNYO0FBRU0sU0FBVSxlQUNaLFdBQXVCO0FBRXZCLFFBQU0sb0JBQWtDLENBQUE7QUFDeEMsUUFBTSxpQkFBK0IsQ0FBQTtBQUVyQyxhQUFXLFlBQVksV0FBVztBQUM5QixRQUFJLFNBQVMsS0FBSyxRQUFRLEdBQUc7QUFDekIsd0JBQWtCLEtBQUssUUFBUTtXQUM1QjtBQUNILHFCQUFlLEtBQUssUUFBUTs7O0FBSXBDLFNBQU8sQ0FBQyxnQkFBZ0IsaUJBQWlCO0FBQzdDO0FBdEJBLElBQUFFLGdCQUFBOzs7Ozs7O0FDaUNNLFNBQVVDLElBQ1osU0FDQSxVQUNBLFVBQW1CLENBQUEsR0FBRTtBQUVyQixTQUFPLEtBQUssQ0FBQyxPQUFPLEdBQUcsVUFBVSxPQUFPO0FBQzVDO0FBRU0sU0FBVSxLQUNaLFVBQ0EsVUFDQSxVQUFtQixDQUFBLEdBQUU7QUFFckIsTUFBSSxPQUFPLGFBQWE7QUFBWSxXQUFPLFNBQVMsS0FBSyxRQUFRO0FBRWpFLFFBQU0sQ0FBQyxPQUFPLFFBQVEsSUFBSSxtQkFBZSx3QkFBTSxRQUFRLENBQUM7QUFFeEQsU0FDSyxNQUFNLFNBQVMsS0FBSyxTQUFTLEtBQUssY0FBYSxPQUFPLE9BQU8sQ0FBQyxLQUMvRCxTQUFTLEtBQ0wsQ0FBQyxRQUFRLGlCQUFpQixLQUFLLFVBQVUsT0FBTyxFQUFFLFNBQVMsQ0FBQztBQUd4RTtBQUVBLFNBQVMsaUJBQ0xDLFNBQ0EsT0FDQUMsT0FDQSxTQUFnQjtBQUVoQixRQUFNLE1BQU0sT0FBT0EsVUFBUyxXQUFXLFNBQVNBLE9BQU0sRUFBRSxJQUFJO0FBRTVELFVBQVFELFNBQVE7SUFDWixLQUFLO0lBQ0wsS0FBSztBQUVELGFBQU87SUFDWCxLQUFLO0FBQ0QsYUFBTyxNQUFNLFNBQVMsSUFBSSxDQUFDLE1BQU0sTUFBTSxTQUFTLENBQUMsQ0FBQyxJQUFJO0lBQzFELEtBQUs7SUFDTCxLQUFLO0FBQ0QsYUFBTyxTQUFTLEdBQUcsS0FBSyxLQUFLLElBQUksR0FBRyxJQUFJLE1BQU0sU0FDeEMsQ0FBQyxNQUFNLElBQUksTUFBTSxNQUFNLFNBQVMsR0FBRyxJQUFJLE1BQU0sR0FBRyxDQUFDLElBQ2pELENBQUE7SUFDVixLQUFLO0FBQ0QsYUFBTyxTQUFTLEdBQUcsSUFBSSxNQUFNLE1BQU0sTUFBTSxDQUFDLElBQUksQ0FBQTtJQUNsRCxLQUFLO0FBQ0QsYUFBTyxNQUFNLE9BQU8sQ0FBQyxHQUFHLE1BQU0sSUFBSSxNQUFNLENBQUM7SUFDN0MsS0FBSztBQUNELGFBQU8sTUFBTSxPQUFPLENBQUMsR0FBRyxNQUFNLElBQUksTUFBTSxDQUFDO0lBQzdDLEtBQUssT0FBTztBQUNSLFlBQU0sV0FBVyxJQUFJLElBQ2pCLGFBQWFDLE9BQXNCLE9BQU8sT0FBTyxDQUFDO0FBR3RELGFBQU8sTUFBTSxPQUFPLENBQUMsTUFBTSxDQUFDLFNBQVMsSUFBSSxDQUFDLENBQUM7OztBQUd2RDtBQUVNLFNBQVVELFFBQ1osVUFDQSxVQUNBLFVBQW1CLENBQUEsR0FBRTtBQUVyQixTQUFPLGlCQUFhLHdCQUFNLFFBQVEsR0FBRyxVQUFVLE9BQU87QUFDMUQ7QUFXQSxTQUFTLGFBQ0wsVUFDQSxVQUNBLFNBQWdCO0FBRWhCLE1BQUksU0FBUyxXQUFXO0FBQUcsV0FBTyxDQUFBO0FBRWxDLFFBQU0sQ0FBQyxnQkFBZ0IsaUJBQWlCLElBQUksZUFBZSxRQUFRO0FBQ25FLE1BQUk7QUFFSixNQUFJLGVBQWUsUUFBUTtBQUN2QixVQUFNLFdBQVcsZUFBZSxVQUFVLGdCQUFnQixPQUFPO0FBR2pFLFFBQUksa0JBQWtCLFdBQVcsR0FBRztBQUNoQyxhQUFPOztBQUlYLFFBQUksU0FBUyxRQUFRO0FBQ2pCLGNBQVEsSUFBSSxJQUFJLFFBQVE7OztBQUloQyxXQUNRLElBQUksR0FDUixJQUFJLGtCQUFrQixXQUFVLFVBQUssUUFBTCxVQUFLLFNBQUEsU0FBTCxNQUFPLFVBQVMsU0FBUyxRQUN6RCxLQUNGO0FBQ0UsVUFBTSxtQkFBbUIsa0JBQWtCLENBQUM7QUFDNUMsVUFBTSxVQUFVLFFBQ1YsU0FBUyxPQUFPLENBQUMsTUFBZUUsT0FBTSxDQUFDLEtBQUssQ0FBQyxNQUFPLElBQUksQ0FBQyxDQUFDLElBQzFEO0FBRU4sUUFBSSxRQUFRLFdBQVc7QUFBRztBQUMxQixVQUFNLFdBQVcsaUJBQWlCLGtCQUFrQixVQUFVLE9BQU87QUFFckUsUUFBSSxTQUFTLFFBQVE7QUFDakIsVUFBSSxDQUFDLE9BQU87QUFLUixZQUFJLE1BQU0sa0JBQWtCLFNBQVMsR0FBRztBQUNwQyxpQkFBTzs7QUFHWCxnQkFBUSxJQUFJLElBQUksUUFBUTthQUNyQjtBQUNILGlCQUFTLFFBQVEsQ0FBQyxPQUFPLE1BQU8sSUFBSSxFQUFFLENBQUM7Ozs7QUFLbkQsU0FBTyxPQUFPLFVBQVUsY0FDaEIsTUFBTSxTQUFTLFNBQVMsU0FDcEI7O0lBRUEsU0FBUyxPQUFPLENBQUMsT0FDWixNQUF1QixJQUFJLEVBQUUsQ0FBQztNQUV6QyxDQUFBO0FBQ1Y7QUFFQSxTQUFTLGlCQUNMLFVBQ0EsVUFDQSxTQUFnQjs7QUFFaEIsTUFBSSxTQUFTLEtBQUssNEJBQVcsR0FBRztBQUs1QixVQUFNQyxTQUFPQyxNQUFBLFFBQVEsVUFBSSxRQUFBQSxRQUFBLFNBQUFBLE1BQUksZ0JBQWdCLFNBQVMsQ0FBQyxDQUFDO0FBQ3hELFVBQU0sT0FBTyxFQUFFLEdBQUcsU0FBUyxTQUFTLFVBQVUsa0JBQWtCLE1BQUs7QUFDckUsYUFBUyxLQUFLLFlBQVk7QUFDMUIsV0FBTyxtQkFBbUJELE9BQU0sVUFBVSxNQUFNLE1BQU0sU0FBUyxNQUFNOztBQUd6RSxTQUFPLG1CQUNILFVBQ0EsVUFDQSxTQUNBLE9BQ0EsU0FBUyxNQUFNO0FBRXZCO0FBRU0sU0FBVSxPQUNaLFVBQ0FBLE9BQ0EsVUFBbUIsQ0FBQSxHQUNuQixRQUFRLFVBQVE7QUFFaEIsTUFBSSxPQUFPLGFBQWEsWUFBWTtBQUNoQyxXQUFPRSxNQUFLRixPQUFNLFFBQVE7O0FBRzlCLFFBQU0sQ0FBQyxPQUFPLFFBQVEsSUFBSSxtQkFBZSx3QkFBTSxRQUFRLENBQUM7QUFFeEQsUUFBTSxVQUF1QixTQUFTLElBQUksQ0FBQyxRQUN2QyxtQkFBbUJBLE9BQU0sS0FBSyxTQUFTLE1BQU0sS0FBSyxDQUFDO0FBSXZELE1BQUksTUFBTSxRQUFRO0FBQ2QsWUFBUSxLQUFLLGFBQWFBLE9BQU0sT0FBTyxTQUFTLEtBQUssQ0FBQzs7QUFHMUQsTUFBSSxRQUFRLFdBQVcsR0FBRztBQUN0QixXQUFPLENBQUE7O0FBSVgsTUFBSSxRQUFRLFdBQVcsR0FBRztBQUN0QixXQUFPLFFBQVEsQ0FBQzs7QUFJcEIsU0FBZ0IsV0FBVyxRQUFRLE9BQU8sQ0FBQyxHQUFHLE1BQU0sQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQztBQUNyRTtBQVNBLFNBQVMsbUJBQ0xBLE9BQ0EsVUFDQSxTQUNBLGtCQUNBLFlBQWtCO0FBRWxCLFFBQU0sY0FBYyxTQUFTLFVBQVUsUUFBUTtBQUMvQyxRQUFNLE1BQU0sU0FBUyxNQUFNLEdBQUcsV0FBVztBQUN6QyxRQUFNSCxVQUFTLFNBQVMsV0FBVztBQUVuQyxRQUFNLFlBQ0YsU0FBUyxTQUFTLE1BQU0sY0FBYyxhQUFhO0FBTXZELFFBQU0sUUFBUSxTQUFTQSxRQUFPLE1BQU1BLFFBQU8sTUFBTSxTQUFTO0FBRTFELE1BQUksVUFBVTtBQUFHLFdBQU8sQ0FBQTtBQU14QixRQUFNLGVBQ0YsSUFBSSxXQUFXLEtBQUssQ0FBQyxNQUFNLFFBQVFHLEtBQUksSUFDeEIsWUFBWUEsS0FBSSxFQUFFLE9BQWdCRCxNQUFLLElBQ2hELElBQUksV0FBVyxLQUNkLE1BQU0sUUFBUUMsS0FBSSxJQUFJQSxRQUFPLENBQUNBLEtBQUksR0FBRyxPQUFnQkQsTUFBSyxJQUMzRCxvQkFBb0IsSUFBSSxLQUFLLDRCQUFXLElBQ3hDLGFBQWFDLE9BQU0sQ0FBQyxHQUFHLEdBQUcsU0FBUyxLQUFLLElBQ3hDLGVBQWVBLE9BQU0sQ0FBQyxHQUFHLEdBQUcsT0FBTztBQUU3QyxRQUFNLFFBQVEsYUFBYSxNQUFNLEdBQUcsS0FBSztBQUV6QyxNQUFJLFNBQVMsaUJBQWlCSCxRQUFPLE1BQU0sT0FBT0EsUUFBTyxNQUFNLE9BQU87QUFFdEUsTUFBSSxPQUFPLFdBQVcsS0FBSyxTQUFTLFdBQVcsY0FBYyxHQUFHO0FBQzVELFdBQU87O0FBR1gsUUFBTSxvQkFBb0IsU0FBUyxNQUFNLGNBQWMsQ0FBQztBQUN4RCxRQUFNLHdCQUF3QixrQkFBa0IsS0FBSyw0QkFBVztBQUVoRSxNQUFJLHVCQUF1QjtBQUN2QixZQUFJLDhCQUFZLGtCQUFrQixDQUFDLENBQUMsR0FBRztBQUNuQyxZQUFNLEVBQUUsS0FBSSxJQUFLLGtCQUFrQixDQUFDO0FBRXBDLFVBQ0ksU0FBUyw4QkFBYSxXQUN0QixTQUFTLDhCQUFhLFVBQ3hCO0FBRUUsaUJBQVMsZUFBZSxRQUFRTSxjQUFVLElBQUk7O0FBSWxELHdCQUFrQixRQUFRLGtCQUFrQjs7QUFHaEQsY0FBVTtNQUNOLEdBQUc7O01BRUgsa0JBQWtCOzs7OztNQUtsQixVQUFVLENBQUMsT0FBZ0IsT0FBTyxTQUFTLEVBQUU7O2FBRTFDLFFBQVEsWUFBWSxRQUFRLGFBQXNCLG9CQUFVO0FBQ25FLGNBQVUsRUFBRSxHQUFHLFNBQVMsVUFBbUIsbUJBQVE7O0FBVXZELFNBQU8sa0JBQWtCLEtBQUssUUFBUSxJQUNoQyxtQkFDSSxRQUNBLG1CQUNBLFNBQ0EsT0FDQSxVQUFVLElBRWQ7O0lBRUEsYUFBYSxRQUFRLENBQUMsaUJBQWlCLEdBQUcsU0FBUyxVQUFVOzs7SUFFN0QsZUFBZSxRQUFRLENBQUMsaUJBQWlCLEdBQUcsT0FBTzs7QUFDN0Q7QUFPQSxTQUFTLGFBQ0xILE9BQ0EsS0FDQSxTQUNBLE9BQWE7QUFFYixRQUFNLFFBQXVCLGNBQ3pCLEtBQ0EsU0FDQUEsS0FBSTtBQUdSLFNBQU9FLE1BQUtGLE9BQU0sT0FBTyxLQUFLO0FBQ2xDO0FBRUEsU0FBU0UsTUFDTEYsT0FDQSxPQUNBLFFBQVEsVUFBUTtBQUVoQixRQUFNLFFBQVEsZUFDVkEsT0FDQUcsY0FDQSxNQUFNLHNCQUFzQjtBQUdoQyxTQUFnQixLQUNaLENBQUMsU0FBMkJKLE9BQU0sSUFBSSxLQUFLLE1BQU0sSUFBSSxHQUNyRCxPQUNBLE1BQ0EsS0FBSztBQUViO0FBRUEsU0FBUyxlQUNMLFVBQ0EsS0FDQSxTQUFnQjtBQUVoQixRQUFNLE9BQU8sTUFBTSxRQUFRLFFBQVEsSUFBSSxXQUFXLENBQUMsUUFBUSxHQUFHLE9BQ2pEQSxNQUFLO0FBR2xCLE1BQUksSUFBSSxXQUFXO0FBQUcsV0FBTztBQUU3QixRQUFNLFFBQVEsY0FBK0IsS0FBSyxPQUFPO0FBQ3pELFNBQU8sVUFBbUIscUJBQVcsTUFBTSxJQUFJLE9BQU8sS0FBSztBQUMvRDtBQXpZQSxJQUFBSyxrQkFPQUMsV0FhTSxvQkFJQTtBQXhCTixJQUFBQyxZQUFBOztJQUFBRixtQkFBZ0U7QUFDaEUsSUFBQUU7QUFLQSxJQUFBQTtBQUNBLElBQUFELFlBQTBCO0FBRTFCLElBQUFFO0FBQ0E7QUFRQSxJQUFBRDtBQUVBLElBQU0scUJBQStCO01BQ2pDLE1BQU0sOEJBQWE7TUFDbkIsV0FBVzs7QUFFZixJQUFNLGVBQXlCO01BQzNCLE1BQU0sOEJBQWE7TUFDbkIsTUFBTTtNQUNOLE1BQU07Ozs7OztBQzNCVjs7Ozs7Ozs7Ozs7Z0JBQUFFO0VBQUE7Y0FBQUM7RUFBQTs7OztZQUFBQztFQUFBOzs7Ozs7Ozs7Ozs7OztpQkFBQUM7O0FBOENNLFNBQVVGLE1BRWQsb0JBQXdEO0FBRXhELE1BQUksQ0FBQyxvQkFBb0I7QUFDdkIsV0FBTyxLQUFLLE1BQU0sQ0FBQSxDQUFFO0VBQ3RCO0FBRUEsTUFBSSxPQUFPLHVCQUF1QixVQUFVO0FBQzFDLFVBQU0sV0FBVyxVQUFVLGtCQUFrQixJQUN6QyxtQkFBbUIsUUFBTyxJQUMxQixDQUFDLGtCQUFrQjtBQUV2QixVQUFNLFVBQVUsS0FBSyxRQUFPO0FBRTVCLFdBQU8sS0FBSyxNQUNWLFNBQVMsT0FBTyxDQUFDLFNBQVMsUUFBUSxLQUFLLENBQUMsU0FBUyxTQUFTLE1BQU0sSUFBSSxDQUFDLENBQUMsQ0FBQztFQUUzRTtBQUVBLFNBQU8sS0FBSyxnQkFBZ0Isb0JBQW9CLE9BQU8saUJBQWlCO0FBQzFFO0FBV00sU0FBVSxnQkFFZCxVQUNBLE9BQWE7O0FBRWIsUUFBTSxVQUFVLEtBQUssUUFBTztBQUU1QixRQUFNLFFBQVEsa0JBQWtCLEtBQUssUUFBUSxJQUN6QyxVQUNBLEtBQUssU0FBUSxFQUFHLFFBQU87QUFFM0IsUUFBTSxVQUFVO0lBQ2Q7SUFDQSxPQUFNRyxNQUFBLEtBQUssV0FBSyxRQUFBQSxRQUFBLFNBQUEsU0FBQUEsSUFBRyxDQUFDOztJQUdwQixTQUFTLEtBQUssUUFBUTtJQUN0QixlQUFlLEtBQUssUUFBUTtJQUM1Qix5QkFBeUIsS0FBSyxRQUFRO0lBQ3RDLFNBQVMsS0FBSyxRQUFRO0lBQ3RCLFlBQVksS0FBSyxRQUFROztBQUczQixTQUFPLEtBQUssTUFBYSxPQUFPLFVBQVUsT0FBTyxTQUFTLEtBQUssQ0FBQztBQUNsRTtBQVdBLFNBQVMsWUFDUCxVQUEwRTtBQUUxRSxTQUFPLFNBQ0wsT0FDRyxTQUE0QztBQUUvQyxXQUFPLFNBRUwsVUFBbUM7O0FBRW5DLFVBQUksVUFBcUIsU0FBUyxJQUFJLElBQUk7QUFFMUMsVUFBSSxVQUFVO0FBQ1osa0JBQVUsWUFDUixTQUNBLFVBQ0EsS0FBSyxRQUFRLFVBQ2JBLE1BQUEsS0FBSyxXQUFLLFFBQUFBLFFBQUEsU0FBQSxTQUFBQSxJQUFHLENBQUMsQ0FBQztNQUVuQjtBQUVBLGFBQU8sS0FBSzs7UUFFVixLQUFLLFNBQVMsS0FBSyxRQUFRLFNBQVMsSUFDaEMsUUFBUSxPQUFPLENBQUMsT0FBT0MsUUFBT0EsSUFBRyxLQUFLLEdBQUcsT0FBTyxJQUNoRDtNQUFPO0lBRWY7RUFDRjtBQUNGO0FBb0NBLFNBQVMsWUFDUCxhQUNHLFNBQTRDO0FBRy9DLE1BQUksVUFBd0Q7QUFFNUQsUUFBTSxlQUFlLFlBQ25CLENBQUNDLFdBQTZDLFVBQVM7QUFDckQsVUFBTSxVQUFxQixDQUFBO0FBRTNCLFlBQVEsT0FBTyxDQUFDLFNBQVE7QUFDdEIsZUFBU0MsT0FBT0EsUUFBT0QsVUFBUyxJQUFJLEdBQUksT0FBT0MsT0FBTTtBQUVuRCxZQUFJLFlBQU8sUUFBUCxZQUFPLFNBQUEsU0FBUCxRQUFVQSxPQUFNLFFBQVEsTUFBTTtBQUFHO0FBQ3JDLGdCQUFRLEtBQUtBLEtBQUk7TUFDbkI7SUFDRixDQUFDO0FBRUQsV0FBTztFQUNULENBQUMsRUFDRCxVQUFVLEdBQUcsT0FBTztBQUV0QixTQUFPLFNBRUwsVUFDQSxnQkFBeUM7QUFHekMsY0FDRSxPQUFPLGFBQWEsV0FDaEIsQ0FBQyxTQUF5QkwsSUFBRyxNQUFNLFVBQVUsS0FBSyxPQUFPLElBQ3pELFdBQ0UsWUFBWSxRQUFRLElBQ3BCO0FBRVIsVUFBTSxNQUFNLGFBQWEsS0FBSyxNQUFNLGNBQWM7QUFHbEQsY0FBVTtBQUVWLFdBQU87RUFDVDtBQUNGO0FBRUEsU0FBUyxrQkFBcUMsT0FBVTtBQUN0RCxTQUFPLE1BQU0sU0FBUyxJQUFJLE1BQU0sS0FBSyxJQUFJLElBQU8sS0FBSyxDQUFDLElBQUk7QUFDNUQ7QUFrSE0sU0FBVSxRQUVkLFVBQW1DOztBQUVuQyxRQUFNLE1BQWlCLENBQUE7QUFFdkIsTUFBSSxDQUFDLFVBQVU7QUFDYixXQUFPLEtBQUssTUFBTSxHQUFHO0VBQ3ZCO0FBRUEsUUFBTSxhQUFhO0lBQ2pCLFNBQVMsS0FBSyxRQUFRO0lBQ3RCLE9BQU1FLE1BQUEsS0FBSyxXQUFLLFFBQUFBLFFBQUEsU0FBQSxTQUFBQSxJQUFHLENBQUM7O0FBR3RCLFFBQU0sV0FDSixPQUFPLGFBQWEsV0FDaEIsQ0FBQyxTQUF5QkYsSUFBRyxNQUFNLFVBQVUsVUFBVSxJQUN2RCxZQUFZLFFBQVE7QUFFMUIsVUFBUSxNQUFNLENBQUMsU0FBd0I7QUFDckMsUUFBSSxRQUFRLENBQUMsV0FBVyxJQUFJLEtBQUssQ0FBQ00sT0FBTSxJQUFJLEdBQUc7QUFDN0MsYUFBTyxLQUFLO0lBQ2Q7QUFDQSxXQUFPLFFBQVFBLE9BQU0sSUFBSSxHQUFHO0FBQzFCLFVBQUksU0FBUyxNQUFNLENBQUMsR0FBRztBQUVyQixZQUFJLENBQUMsSUFBSSxTQUFTLElBQUksR0FBRztBQUN2QixjQUFJLEtBQUssSUFBSTtRQUNmO0FBQ0E7TUFDRjtBQUNBLGFBQU8sS0FBSztJQUNkO0VBQ0YsQ0FBQztBQUVELFNBQU8sS0FBSyxNQUFNLEdBQUc7QUFDdkI7QUFrT00sU0FBVSxXQUFRO0FBR3RCLFFBQU0sUUFBUSxLQUFLLFFBQU8sRUFBRyxPQUMzQixDQUFDLFVBQVUsU0FDVCxZQUFZLElBQUksSUFBSSxTQUFTLE9BQU8sS0FBSyxRQUFRLElBQUksVUFDdkQsQ0FBQSxDQUFFO0FBRUosU0FBTyxLQUFLLE1BQU0sS0FBSztBQUN6QjtBQTJCTSxTQUFVLEtBRWQsSUFBaUQ7QUFFakQsTUFBSSxJQUFJO0FBQ1IsUUFBTSxNQUFNLEtBQUs7QUFDakIsU0FBTyxJQUFJLE9BQU8sR0FBRyxLQUFLLEtBQUssQ0FBQyxHQUFHLEdBQUcsS0FBSyxDQUFDLENBQUMsTUFBTTtBQUFPLE1BQUU7QUFDNUQsU0FBTztBQUNUO0FBNEJNLFNBQVUsSUFFZCxJQUE2RDtBQUU3RCxNQUFJLFFBQWEsQ0FBQTtBQUNqQixXQUFTLElBQUksR0FBRyxJQUFJLEtBQUssUUFBUSxLQUFLO0FBQ3BDLFVBQU0sS0FBSyxLQUFLLENBQUM7QUFDakIsVUFBTUMsT0FBTSxHQUFHLEtBQUssSUFBSSxHQUFHLEVBQUU7QUFDN0IsUUFBSUEsUUFBTyxNQUFNO0FBQ2YsY0FBUSxNQUFNLE9BQU9BLElBQUc7SUFDMUI7RUFDRjtBQUNBLFNBQU8sS0FBSyxNQUFNLEtBQUs7QUFDekI7QUFRQSxTQUFTLFlBQ1AsT0FBeUM7QUFFekMsTUFBSSxPQUFPLFVBQVUsWUFBWTtBQUMvQixXQUFPLENBQUMsSUFBSSxNQUFPLE1BQTRCLEtBQUssSUFBSSxHQUFHLEVBQUU7RUFDL0Q7QUFDQSxNQUFJLFVBQWEsS0FBSyxHQUFHO0FBQ3ZCLFdBQU8sQ0FBQyxPQUFPLE1BQU0sVUFBVSxTQUFTLEtBQUssT0FBTyxFQUFFO0VBQ3hEO0FBQ0EsU0FBTyxTQUFVLElBQUU7QUFDakIsV0FBTyxVQUFVO0VBQ25CO0FBQ0Y7QUFxRU0sU0FBVVQsUUFFZCxPQUF5Qjs7QUFFekIsU0FBTyxLQUFLLE1BQ1YsWUFBWSxLQUFLLFFBQU8sR0FBSSxPQUFPLEtBQUssUUFBUSxVQUFTSSxNQUFBLEtBQUssV0FBSyxRQUFBQSxRQUFBLFNBQUEsU0FBQUEsSUFBRyxDQUFDLENBQUMsQ0FBQztBQUU3RTtBQUVNLFNBQVUsWUFDZCxPQUNBLE9BQ0EsU0FDQU0sT0FBZTtBQUVmLFNBQU8sT0FBTyxVQUFVLFdBQ2JWLFFBQU8sT0FBTyxPQUErQixFQUFFLFNBQVMsTUFBQVUsTUFBSSxDQUFFLElBQ3JFLE1BQU0sT0FBTyxZQUFlLEtBQUssQ0FBQztBQUN4QztBQWNNLFNBQVVSLElBRWQsVUFBNkI7QUFFN0IsUUFBTSxRQUFRLEtBQUssUUFBTztBQUMxQixTQUFPLE9BQU8sYUFBYSxXQUNoQixLQUNKLE1BQStCLE9BQU9NLE1BQUssR0FDNUMsVUFDQSxLQUFLLE9BQU8sSUFFZCxXQUNFLE1BQU0sS0FBSyxZQUFlLFFBQVEsQ0FBQyxJQUNuQztBQUNSO0FBa0NNLFNBQVUsSUFFZCxPQUF5QjtBQUV6QixNQUFJLFFBQVEsS0FBSyxRQUFPO0FBRXhCLE1BQUksT0FBTyxVQUFVLFVBQVU7QUFDN0IsVUFBTSxVQUFVLElBQUksSUFBb0JSLFFBQU8sT0FBTyxPQUFPLEtBQUssT0FBTyxDQUFDO0FBQzFFLFlBQVEsTUFBTSxPQUFPLENBQUMsT0FBTyxDQUFDLFFBQVEsSUFBSSxFQUFFLENBQUM7RUFDL0MsT0FBTztBQUNMLFVBQU0sV0FBVyxZQUFZLEtBQUs7QUFDbEMsWUFBUSxNQUFNLE9BQU8sQ0FBQyxJQUFJLE1BQU0sQ0FBQyxTQUFTLElBQUksQ0FBQyxDQUFDO0VBQ2xEO0FBRUEsU0FBTyxLQUFLLE1BQU0sS0FBSztBQUN6QjtBQTBCTSxTQUFVLElBRWQsb0JBQXVEO0FBRXZELFNBQU8sS0FBSyxPQUNWLE9BQU8sdUJBQXVCOztJQUUxQixRQUFRLGtCQUFrQjtNQUMxQixDQUFDLEdBQUcsT0FBTyxLQUFLLE1BQU0sRUFBRSxFQUFFLEtBQUssa0JBQWtCLEVBQUUsU0FBUyxDQUFDO0FBRXJFO0FBZ0JNLFNBQVUsUUFBSztBQUNuQixTQUFPLEtBQUssU0FBUyxJQUFJLEtBQUssTUFBTSxLQUFLLENBQUMsQ0FBQyxJQUFJO0FBQ2pEO0FBZ0JNLFNBQVUsT0FBSTtBQUNsQixTQUFPLEtBQUssU0FBUyxJQUFJLEtBQUssTUFBTSxLQUFLLEtBQUssU0FBUyxDQUFDLENBQUMsSUFBSTtBQUMvRDtBQXFCTSxTQUFVLEdBQXdCLEdBQVM7O0FBQy9DLE1BQUksQ0FBQztBQUdMLE1BQUksTUFBTSxLQUFLLEtBQUssVUFBVTtBQUFHLFdBQU87QUFFeEMsTUFBSSxJQUFJO0FBQUcsUUFBSSxLQUFLLFNBQVM7QUFDN0IsU0FBTyxLQUFLLE9BQU1JLE1BQUEsS0FBSyxDQUFDLE9BQUMsUUFBQUEsUUFBQSxTQUFBQSxNQUFJLENBQUEsQ0FBRTtBQUNqQztBQWtDTSxTQUFVLElBQXlCLEdBQVU7QUFDakQsTUFBSSxLQUFLLE1BQU07QUFDYixXQUFPLEtBQUssUUFBTztFQUNyQjtBQUNBLFNBQU8sS0FBSyxJQUFJLElBQUksS0FBSyxTQUFTLElBQUksQ0FBQztBQUN6QztBQWNNLFNBQVVELFdBQU87QUFDckIsU0FBTyxNQUFNLFVBQVUsTUFBTSxLQUFLLElBQUk7QUFDeEM7QUFvQk0sU0FBVSxNQUVkLGtCQUFzRDtBQUV0RCxNQUFJO0FBQ0osTUFBSTtBQUVKLE1BQUksb0JBQW9CLE1BQU07QUFDNUIsZ0JBQVksS0FBSyxPQUFNLEVBQUcsU0FBUTtBQUNsQyxhQUFTLEtBQUssQ0FBQztFQUNqQixXQUFXLE9BQU8scUJBQXFCLFVBQVU7QUFDL0MsZ0JBQVksS0FBSyxNQUFlLGdCQUFnQjtBQUNoRCxhQUFTLEtBQUssQ0FBQztFQUNqQixPQUFPO0FBRUwsZ0JBQVk7QUFDWixhQUFTLFVBQVUsZ0JBQWdCLElBQy9CLGlCQUFpQixDQUFDLElBQ2xCO0VBQ047QUFFQSxTQUFPLE1BQU0sVUFBVSxRQUFRLEtBQUssV0FBVyxNQUFNO0FBQ3ZEO0FBd0JNLFNBQVUsTUFFZCxPQUNBUSxNQUFZO0FBRVosU0FBTyxLQUFLLE1BQU0sTUFBTSxVQUFVLE1BQU0sS0FBSyxNQUFNLE9BQU9BLElBQUcsQ0FBQztBQUNoRTtBQWlCTSxTQUFVLE1BQUc7O0FBQ2pCLFVBQU9QLE1BQUEsS0FBSyxnQkFBVSxRQUFBQSxRQUFBLFNBQUFBLE1BQUksS0FBSyxNQUFNLENBQUEsQ0FBRTtBQUN6QztBQWtCTSxTQUFVLElBRWQsT0FDQSxTQUE2QjtBQUU3QixRQUFNLFlBQVksS0FBSyxNQUFNLE9BQU8sT0FBTztBQUMzQyxRQUFNUSxZQUFXLFdBQVcsQ0FBQyxHQUFHLEtBQUssSUFBRyxHQUFJLEdBQUcsVUFBVSxJQUFHLENBQUUsQ0FBQztBQUMvRCxTQUFPLEtBQUssTUFBTUEsU0FBUTtBQUM1QjtBQWtCTSxTQUFVLFFBRWQsVUFBaUI7QUFFakIsU0FBTyxLQUFLLGFBQ1IsS0FBSyxJQUFJLFdBQVcsS0FBSyxXQUFXLE9BQU8sUUFBUSxJQUFJLEtBQUssVUFBVSxJQUN0RTtBQUNOO0FBbHBDQSxJQTBCTSxtQkF3SEEsVUFZQSxnQkFzRk8sUUEwQkEsU0FrQ0EsY0EyRkEsTUF1QkEsU0E2QkEsV0F5QkEsTUF3QkEsU0E2QkEsV0E0QkEsVUEyQkE7QUFwa0JiOztBQU1BLElBQUFDO0FBU0EsSUFBQUE7QUFDQSxJQUFBQztBQUNBO0FBQ0EsSUFBQUQ7QUFRQSxJQUFNLG9CQUFvQjtBQXdIMUIsSUFBTSxXQUFXLFlBQVksQ0FBQyxJQUFrQyxVQUFTO0FBQ3ZFLFVBQUksTUFBaUIsQ0FBQTtBQUVyQixlQUFTLElBQUksR0FBRyxJQUFJLE1BQU0sUUFBUSxLQUFLO0FBQ3JDLGNBQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxDQUFDO0FBQ3pCLFlBQUksTUFBTSxTQUFTO0FBQUcsZ0JBQU0sSUFBSSxPQUFPLEtBQUs7TUFDOUM7QUFFQSxhQUFPO0lBQ1QsQ0FBQztBQUdELElBQU0saUJBQWlCLFlBQ3JCLENBQUMsSUFBdUMsVUFBUztBQUMvQyxZQUFNLE1BQWlCLENBQUE7QUFFdkIsZUFBUyxJQUFJLEdBQUcsSUFBSSxNQUFNLFFBQVEsS0FBSztBQUNyQyxjQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsQ0FBQztBQUN6QixZQUFJLFVBQVUsTUFBTTtBQUNsQixjQUFJLEtBQUssS0FBSztRQUNoQjtNQUNGO0FBQ0EsYUFBTztJQUNULENBQUM7QUEyRUksSUFBTSxTQUdXLGVBQ3RCLENBQUMsRUFBRSxRQUFBRSxRQUFNLE1BQVFBLFdBQVUsQ0FBQyxXQUFXQSxPQUFNLElBQUtBLFVBQXFCLE1BQ3ZFLGlCQUFpQjtBQXFCWixJQUFNLFVBR1csU0FDdEIsQ0FBQyxTQUFRO0FBQ1AsWUFBTSxVQUFVLENBQUE7QUFDaEIsYUFBTyxLQUFLLFVBQVUsQ0FBQyxXQUFXLEtBQUssTUFBTSxHQUFHO0FBQzlDLGdCQUFRLEtBQUssS0FBSyxNQUFpQjtBQUNuQyxlQUFPLEtBQUs7TUFDZDtBQUNBLGFBQU87SUFDVCxHQUNBLFlBQ0EsQ0FBQyxVQUFVLE1BQU0sUUFBTyxDQUFFO0FBcUJyQixJQUFNLGVBSVcsWUFDdEIsQ0FBQyxFQUFFLFFBQUFBLFFBQU0sTUFBUUEsV0FBVSxDQUFDLFdBQVdBLE9BQU0sSUFBS0EsVUFBcUIsTUFDdkUsWUFDQSxDQUFDLFVBQVUsTUFBTSxRQUFPLENBQUU7QUFvRnJCLElBQU0sT0FHVyxlQUFlLENBQUMsU0FBUyxtQkFBbUIsSUFBSSxDQUFDO0FBb0JsRSxJQUFNLFVBR1csU0FBUyxDQUFDLFNBQVE7QUFDeEMsWUFBTSxVQUFVLENBQUE7QUFDaEIsYUFBTyxLQUFLLE1BQU07QUFDaEIsZUFBTyxLQUFLO0FBQ1osWUFBSVAsT0FBTSxJQUFJO0FBQUcsa0JBQVEsS0FBSyxJQUFJO01BQ3BDO0FBQ0EsYUFBTztJQUNULEdBQUcsaUJBQWlCO0FBbUJiLElBQU0sWUFJVyxZQUN0QixDQUFDLE9BQU8sbUJBQW1CLEVBQUUsR0FDN0IsaUJBQWlCO0FBbUJaLElBQU0sT0FHVyxlQUFlLENBQUMsU0FBUyxtQkFBbUIsSUFBSSxDQUFDO0FBcUJsRSxJQUFNLFVBR1csU0FBUyxDQUFDLFNBQVE7QUFDeEMsWUFBTSxVQUFVLENBQUE7QUFDaEIsYUFBTyxLQUFLLE1BQU07QUFDaEIsZUFBTyxLQUFLO0FBQ1osWUFBSUEsT0FBTSxJQUFJO0FBQUcsa0JBQVEsS0FBSyxJQUFJO01BQ3BDO0FBQ0EsYUFBTztJQUNULEdBQUcsaUJBQWlCO0FBbUJiLElBQU0sWUFJVyxZQUN0QixDQUFDLE9BQU8sbUJBQW1CLEVBQUUsR0FDN0IsaUJBQWlCO0FBc0JaLElBQU0sV0FHVyxTQUN0QixDQUFDLFNBQ0MsWUFBWSxJQUFJLEVBQUUsT0FBTyxDQUFDLE9BQXNCQSxPQUFNLEVBQUUsS0FBSyxPQUFPLElBQUksR0FDMUUsVUFBVTtBQXFCTCxJQUFNLFdBR1csU0FDdEIsQ0FBQyxTQUFTLFlBQVksSUFBSSxFQUFFLE9BQU9BLE1BQUssR0FDeEMsaUJBQWlCOzs7OztBQzFqQmIsU0FBVSxTQUNkLFFBS2E7QUFXYixTQUFPLFNBQVNRLE9BQ2QsU0FDQSxTQUNBQyxhQUNBLFNBQTBCO0FBRTFCLFFBQUksT0FBTyxXQUFXLGVBQWUsT0FBTyxTQUFTLE9BQU8sR0FBRztBQUM3RCxnQkFBVSxRQUFRLFNBQVE7SUFDNUI7QUFFQSxRQUFJLE9BQU8sWUFBWSxVQUFVO0FBQy9CLGFBQU8sT0FBTyxTQUFTLFNBQVNBLGFBQVksT0FBTztJQUNyRDtBQUVBLFVBQU0sTUFBTTtBQUVaLFFBQUksQ0FBQyxNQUFNLFFBQVEsR0FBRyxLQUFLLFdBQWdCLEdBQUcsR0FBRztBQUUvQyxhQUFPO0lBQ1Q7QUFHQSxVQUFNQyxRQUFPLElBQUksU0FBUyxDQUFBLENBQUU7QUFHNUIsV0FBTyxLQUFLQSxLQUFJO0FBRWhCLFdBQU9BO0VBQ1Q7QUFDRjtBQVNNLFNBQVUsT0FDZCxXQUNBQyxTQUF5QjtBQUd6QixRQUFNLE1BQU0sTUFBTSxRQUFRLFNBQVMsSUFBSSxZQUFZLENBQUMsU0FBUztBQUc3RCxNQUFJQSxTQUFRO0FBQ1YsSUFBQUEsUUFBTyxXQUFXO0VBQ3BCLE9BQU87QUFDTCxJQUFBQSxVQUFTO0VBQ1g7QUFHQSxXQUFTLElBQUksR0FBRyxJQUFJLElBQUksUUFBUSxLQUFLO0FBQ25DLFVBQU0sT0FBTyxJQUFJLENBQUM7QUFHbEIsUUFBSSxLQUFLLFVBQVUsS0FBSyxPQUFPLGFBQWEsS0FBSztBQUMvQyxvQkFBYyxJQUFJO0lBQ3BCO0FBRUEsUUFBSUEsU0FBUTtBQUNWLFdBQUssT0FBTyxJQUFJLElBQUksQ0FBQyxLQUFLO0FBQzFCLFdBQUssT0FBTyxJQUFJLElBQUksQ0FBQyxLQUFLO0lBQzVCLE9BQU87QUFDTCxXQUFLLE9BQU8sS0FBSyxPQUFPO0lBQzFCO0FBRUEsU0FBSyxTQUFTQTtFQUNoQjtBQUVBLFNBQU9BO0FBQ1Q7QUF4R0EsSUFBQUMsY0FBQTs7SUFBQUM7QUFDQSxJQUFBQTs7Ozs7QUNEQTs7OztnQkFBQUM7RUFBQTs7OztjQUFBQztFQUFBOztpQkFBQUM7RUFBQTs7O2NBQUFDO0VBQUEsZ0JBQUFDO0VBQUE7Ozs7O0FBaUNNLFNBQVUsY0FFZCxNQUNBQyxRQUFlO0FBRWYsTUFBSSxRQUFRLE1BQU07QUFDaEIsV0FBTyxDQUFBO0VBQ1Q7QUFFQSxNQUFJLE9BQU8sU0FBUyxVQUFVO0FBQzVCLFdBQU8sS0FBSyxPQUFPLE1BQU0sS0FBSyxTQUFTLE9BQU8sSUFBSSxFQUFFLFNBQVMsTUFBTSxDQUFDO0VBQ3RFO0FBRUEsTUFBSSxZQUFZLE1BQU07QUFDcEIsUUFBSSxLQUFLLFdBQVcsR0FBRztBQUNyQixhQUFPLEtBQUssY0FBYyxLQUFLLENBQUMsR0FBR0EsTUFBSztJQUMxQztBQUVBLFVBQU0sU0FBb0IsQ0FBQTtBQUUxQixhQUFTLElBQUksR0FBRyxJQUFJLEtBQUssUUFBUSxLQUFLO0FBQ3BDLFlBQU0sS0FBSyxLQUFLLENBQUM7QUFFakIsVUFBSSxPQUFPLE9BQU8sVUFBVTtBQUMxQixZQUFJLE1BQU0sTUFBTTtBQUNkO1FBQ0Y7QUFFQSxZQUFJLEVBQUUsWUFBWSxLQUFLO0FBQ3JCLGlCQUFPLEtBQUtBLFNBQVEsVUFBVSxJQUFJLElBQUksSUFBSSxFQUFFO0FBQzVDO1FBQ0Y7TUFDRjtBQUVBLGFBQU8sS0FBSyxHQUFHLEtBQUssY0FBYyxJQUFJQSxNQUFLLENBQUM7SUFDOUM7QUFFQSxXQUFPO0VBQ1Q7QUFFQSxTQUFPLENBQUNBLFNBQVEsVUFBVSxNQUFNLElBQUksSUFBSSxJQUFJO0FBQzlDO0FBRUEsU0FBUyxRQUNQLGNBSVM7QUFFVCxTQUFPLFlBRUYsT0FROEI7QUFFakMsVUFBTSxVQUFVLEtBQUssU0FBUztBQUU5QixXQUFPLFFBQVEsTUFBTSxDQUFDLElBQUksTUFBSztBQUM3QixVQUFJLENBQUMsWUFBWSxFQUFFO0FBQUc7QUFFdEIsWUFBTSxTQUNKLE9BQU8sTUFBTSxDQUFDLE1BQU0sYUFDaEIsTUFBTSxDQUFDLEVBQUUsS0FBSyxJQUFJLEdBQUcsS0FBSyxRQUFRLEdBQUcsUUFBUSxDQUFDLElBQzdDO0FBRVAsWUFBTSxNQUFNLEtBQUssY0FBYyxRQUFRLElBQUksT0FBTztBQUNsRCxtQkFBYSxLQUFLLEdBQUcsVUFBVSxFQUFFO0lBQ25DLENBQUM7RUFDSDtBQUNGO0FBZUEsU0FBUyxhQUNQLE9BQ0EsV0FDQSxhQUNBLFVBQ0FDLFNBQWtCOztBQUVsQixRQUFNLGFBQXdEO0lBQzVEO0lBQ0E7SUFDQSxHQUFHOztBQUVMLFFBQU1DLFFBQU8sY0FBYyxJQUFJLE9BQU8sTUFBTSxZQUFZLENBQUM7QUFDekQsUUFBTUMsUUFDSixZQUFZLGVBQWUsTUFBTSxTQUM3QixPQUNBLE1BQU0sWUFBWSxXQUFXO0FBTW5DLFdBQVMsTUFBTSxHQUFHLE1BQU0sU0FBUyxRQUFRLEVBQUUsS0FBSztBQUM5QyxVQUFNLE9BQU8sU0FBUyxHQUFHO0FBQ3pCLFVBQU0sWUFBWSxLQUFLO0FBRXZCLFFBQUksV0FBVztBQUNiLFlBQU0sY0FBeUIsVUFBVTtBQUN6QyxZQUFNLFVBQVUsWUFBWSxRQUFRLElBQUk7QUFFeEMsVUFBSSxVQUFVLElBQUk7QUFDaEIsa0JBQVUsU0FBUyxPQUFPLFNBQVMsQ0FBQztBQUNwQyxZQUFJRixZQUFXLGFBQWEsWUFBWSxTQUFTO0FBQy9DLHFCQUFXLENBQUM7UUFDZDtNQUNGO0lBQ0Y7QUFFQSxTQUFLLFNBQVNBO0FBRWQsUUFBSSxLQUFLLE1BQU07QUFDYixXQUFLLEtBQUssUUFBT0csTUFBQSxLQUFLLFVBQUksUUFBQUEsUUFBQSxTQUFBQSxNQUFJO0lBQ2hDO0FBRUEsUUFBSSxLQUFLLE1BQU07QUFDYixXQUFLLEtBQUssUUFBTyxLQUFBLEtBQUssVUFBSSxRQUFBLE9BQUEsU0FBQSxLQUFJO0lBQ2hDO0FBRUEsU0FBSyxPQUFPLFFBQVEsSUFBSUYsUUFBTyxTQUFTLE1BQU0sQ0FBQztBQUMvQyxTQUFLLE9BQU8sUUFBUSxTQUFTLFNBQVMsSUFBSUMsUUFBTyxTQUFTLE1BQU0sQ0FBQztFQUNuRTtBQUVBLE1BQUlELE9BQU07QUFDUixJQUFBQSxNQUFLLE9BQU8sU0FBUyxDQUFDO0VBQ3hCO0FBQ0EsTUFBSUMsT0FBTTtBQUNSLElBQUFBLE1BQUssT0FBTyxTQUFTLFNBQVMsU0FBUyxDQUFDO0VBQzFDO0FBQ0EsU0FBTyxNQUFNLE9BQU8sR0FBRyxVQUFVO0FBQ25DO0FBdUJNLFNBQVUsU0FFZCxRQUFtQztBQUVuQyxRQUFNLGVBQWUsVUFBYSxNQUFNLElBQUksU0FBUyxLQUFLLE1BQU0sTUFBTTtBQUV0RSxlQUFhLE9BQU8sSUFBSTtBQUV4QixTQUFPO0FBQ1Q7QUF3Qk0sU0FBVSxVQUVkLFFBQW1DO0FBRW5DLFFBQU0sZ0JBQWdCLFVBQWEsTUFBTSxJQUFJLFNBQVMsS0FBSyxNQUFNLE1BQU07QUFFdkUsZ0JBQWMsUUFBUSxJQUFJO0FBRTFCLFNBQU87QUFDVDtBQTBEQSxTQUFTLE1BQ1AsUUFJUztBQUVULFNBQU8sU0FFTCxTQUErQjtBQUUvQixVQUFNLFVBQVUsS0FBSyxTQUFTO0FBQzlCLFVBQU0sYUFBYSxLQUFLLFFBQU8sRUFBRyxLQUFJO0FBRXRDLGFBQVMsSUFBSSxHQUFHLElBQUksS0FBSyxRQUFRLEtBQUs7QUFDcEMsWUFBTSxLQUFLLEtBQUssQ0FBQztBQUVqQixZQUFNRSxRQUNKLE9BQU8sWUFBWSxhQUNmLFFBQVEsS0FBSyxJQUFJLEdBQUcsRUFBRSxJQUN0QixPQUFPLFlBQVksWUFBWSxDQUFDLE9BQU8sT0FBTyxJQUM1QyxXQUFXLEtBQUssT0FBTyxFQUFFLE1BQUssSUFDOUI7QUFFUixZQUFNLENBQUMsVUFBVSxJQUFJLEtBQUssY0FBY0EsT0FBTSxJQUFJLE9BQU87QUFFekQsVUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLFVBQVU7QUFBRztBQUU3QyxVQUFJLG1CQUFtQjtBQU12QixVQUFJLElBQUk7QUFFUixhQUFPLElBQUksaUJBQWlCLFNBQVMsUUFBUTtBQUMzQyxjQUFNLFFBQVEsaUJBQWlCLFNBQVMsQ0FBQztBQUN6QyxZQUFJQyxPQUFNLEtBQUssR0FBRztBQUNoQiw2QkFBbUI7QUFDbkIsY0FBSTtRQUNOLE9BQU87QUFDTDtRQUNGO01BQ0Y7QUFFQSxhQUFPLElBQUksa0JBQWtCLENBQUMsVUFBVSxDQUFDO0lBQzNDO0FBRUEsV0FBTztFQUNUO0FBQ0Y7QUE0Sk0sU0FBVSxPQUVkLFVBQWlCO0FBRWpCLE9BQUssT0FBTyxRQUFRLEVBQ2pCLElBQUksTUFBTSxFQUNWLEtBQUssQ0FBQyxHQUFHLE9BQU07QUFDZCxTQUFLLE1BQU0sRUFBRSxFQUFFLFlBQVksR0FBRyxRQUFRO0VBQ3hDLENBQUM7QUFDSCxTQUFPO0FBQ1Q7QUFxRE0sU0FBVSxRQUVkLFNBQXlCO0FBRXpCLFFBQU0sS0FBSyxLQUFLLENBQUM7QUFDakIsTUFBSSxJQUFJO0FBQ04sVUFBTUQsUUFBeUIsS0FBSyxNQUNsQyxPQUFPLFlBQVksYUFBYSxRQUFRLEtBQUssSUFBSSxHQUFHLEVBQUUsSUFBSSxPQUFPLEVBQ2pFLGFBQWEsRUFBRTtBQUdqQixRQUFJO0FBRUosYUFBUyxJQUFJLEdBQUcsSUFBSUEsTUFBSyxRQUFRLEtBQUs7QUFDcEMsVUFBSUEsTUFBSyxDQUFDLEVBQUUsU0FBUztBQUFPLDJCQUFtQkEsTUFBSyxDQUFDO0lBQ3ZEO0FBRUEsUUFBSSxJQUFJO0FBTVIsV0FBTyxvQkFBb0IsSUFBSSxpQkFBaUIsU0FBUyxRQUFRO0FBQy9ELFlBQU0sUUFBUSxpQkFBaUIsU0FBUyxDQUFDO0FBQ3pDLFVBQUksTUFBTSxTQUFTLE9BQU87QUFDeEIsMkJBQW1CO0FBQ25CLFlBQUk7TUFDTixPQUFPO0FBQ0w7TUFDRjtJQUNGO0FBRUEsUUFBSTtBQUFrQixXQUFLLE1BQU0sZ0JBQWdCLEVBQUUsT0FBTyxJQUFJO0VBQ2hFO0FBQ0EsU0FBTztBQUNUO0FBd0JNLFNBQVUsU0FFWCxPQUU4QjtBQUVqQyxRQUFNLFVBQVUsS0FBSyxTQUFTO0FBRTlCLFNBQU8sUUFBUSxNQUFNLENBQUMsSUFBSSxNQUFLO0FBQzdCLFFBQUksQ0FBQyxZQUFZLEVBQUUsS0FBSyxDQUFDLEdBQUcsUUFBUTtBQUNsQztJQUNGO0FBRUEsVUFBTUUsWUFBc0IsR0FBRyxPQUFPO0FBQ3RDLFVBQU1DLFNBQVFELFVBQVMsUUFBUSxFQUFFO0FBSWpDLFFBQUlDLFNBQVE7QUFBRztBQUVmLFVBQU0sU0FDSixPQUFPLE1BQU0sQ0FBQyxNQUFNLGFBQ2hCLE1BQU0sQ0FBQyxFQUFFLEtBQUssSUFBSSxHQUFHLEtBQUssUUFBUSxHQUFHLFFBQVEsQ0FBQyxJQUM3QztBQUVQLFVBQU0sTUFBTSxLQUFLLGNBQWMsUUFBUSxJQUFJLE9BQU87QUFHbEQsaUJBQWFELFdBQVVDLFNBQVEsR0FBRyxHQUFHLEtBQUssR0FBRyxNQUFNO0VBQ3JELENBQUM7QUFDSDtBQXVCTSxTQUFVLFlBRWQsUUFBbUM7QUFFbkMsTUFBSSxPQUFPLFdBQVcsVUFBVTtBQUM5QixhQUFTLEtBQUssTUFBZSxNQUFNO0VBQ3JDO0FBRUEsT0FBSyxPQUFNO0FBRVgsUUFBTSxTQUFjLENBQUE7QUFFcEIsYUFBVyxNQUFNLEtBQUssY0FBYyxNQUFNLEdBQUc7QUFDM0MsVUFBTSxhQUFhLEtBQUssTUFBSyxFQUFHLFFBQU87QUFDdkMsVUFBTSxFQUFFLFFBQUFQLFFBQU0sSUFBSztBQUNuQixRQUFJLENBQUNBLFNBQVE7QUFDWDtJQUNGO0FBRUEsVUFBTU0sWUFBc0JOLFFBQU87QUFDbkMsVUFBTU8sU0FBUUQsVUFBUyxRQUFRLEVBQUU7QUFJakMsUUFBSUMsU0FBUTtBQUFHO0FBR2YsaUJBQWFELFdBQVVDLFNBQVEsR0FBRyxHQUFHLFlBQVlQLE9BQU07QUFDdkQsV0FBTyxLQUFLLEdBQUcsVUFBVTtFQUMzQjtBQUVBLFNBQU8sS0FBSyxNQUFNLE1BQU07QUFDMUI7QUF3Qk0sU0FBVSxVQUVYLE9BRThCO0FBRWpDLFFBQU0sVUFBVSxLQUFLLFNBQVM7QUFFOUIsU0FBTyxRQUFRLE1BQU0sQ0FBQyxJQUFJLE1BQUs7QUFDN0IsUUFBSSxDQUFDLFlBQVksRUFBRSxLQUFLLENBQUMsR0FBRyxRQUFRO0FBQ2xDO0lBQ0Y7QUFFQSxVQUFNTSxZQUFzQixHQUFHLE9BQU87QUFDdEMsVUFBTUMsU0FBUUQsVUFBUyxRQUFRLEVBQUU7QUFJakMsUUFBSUMsU0FBUTtBQUFHO0FBRWYsVUFBTSxTQUNKLE9BQU8sTUFBTSxDQUFDLE1BQU0sYUFDaEIsTUFBTSxDQUFDLEVBQUUsS0FBSyxJQUFJLEdBQUcsS0FBSyxRQUFRLEdBQUcsUUFBUSxDQUFDLElBQzdDO0FBRVAsVUFBTSxNQUFNLEtBQUssY0FBYyxRQUFRLElBQUksT0FBTztBQUdsRCxpQkFBYUQsV0FBVUMsUUFBTyxHQUFHLEtBQUssR0FBRyxNQUFNO0VBQ2pELENBQUM7QUFDSDtBQXVCTSxTQUFVLGFBRWQsUUFBbUM7QUFFbkMsUUFBTSxZQUFZLEtBQUssTUFBZSxNQUFNO0FBRTVDLE9BQUssT0FBTTtBQUVYLFFBQU0sU0FBYyxDQUFBO0FBRXBCLFVBQVEsV0FBVyxDQUFDLE9BQU07QUFDeEIsVUFBTSxhQUFhLEtBQUssTUFBSyxFQUFHLFFBQU87QUFDdkMsVUFBTSxFQUFFLFFBQUFQLFFBQU0sSUFBSztBQUNuQixRQUFJLENBQUNBLFNBQVE7QUFDWDtJQUNGO0FBRUEsVUFBTU0sWUFBc0JOLFFBQU87QUFDbkMsVUFBTU8sU0FBUUQsVUFBUyxRQUFRLEVBQUU7QUFJakMsUUFBSUMsU0FBUTtBQUFHO0FBR2YsaUJBQWFELFdBQVVDLFFBQU8sR0FBRyxZQUFZUCxPQUFNO0FBQ25ELFdBQU8sS0FBSyxHQUFHLFVBQVU7RUFDM0IsQ0FBQztBQUVELFNBQU8sS0FBSyxNQUFNLE1BQU07QUFDMUI7QUFzQk0sU0FBVSxPQUVkLFVBQWlCO0FBR2pCLFFBQU0sUUFBUSxXQUFXLEtBQUssT0FBTyxRQUFRLElBQUk7QUFFakQsVUFBUSxPQUFPLENBQUMsT0FBTTtBQUNwQixrQkFBYyxFQUFFO0FBQ2hCLE9BQUcsT0FBTyxHQUFHLE9BQU8sR0FBRyxTQUFTO0VBQ2xDLENBQUM7QUFFRCxTQUFPO0FBQ1Q7QUF1Qk0sU0FBVSxZQUVkLFNBQStCO0FBRS9CLFNBQU8sUUFBUSxNQUFNLENBQUMsSUFBSSxNQUFLO0FBQzdCLFVBQU0sRUFBRSxRQUFBQSxRQUFNLElBQUs7QUFDbkIsUUFBSSxDQUFDQSxTQUFRO0FBQ1g7SUFDRjtBQUVBLFVBQU1NLFlBQXNCTixRQUFPO0FBQ25DLFVBQU0sT0FDSixPQUFPLFlBQVksYUFBYSxRQUFRLEtBQUssSUFBSSxHQUFHLEVBQUUsSUFBSTtBQUM1RCxVQUFNLE1BQU0sS0FBSyxjQUFjLElBQUk7QUFNbkMsV0FBVSxLQUFLLElBQUk7QUFFbkIsVUFBTU8sU0FBUUQsVUFBUyxRQUFRLEVBQUU7QUFHakMsaUJBQWFBLFdBQVVDLFFBQU8sR0FBRyxLQUFLUCxPQUFNO0FBRTVDLFFBQUksQ0FBQyxJQUFJLFNBQVMsRUFBRSxHQUFHO0FBQ3JCLFNBQUcsU0FBUyxHQUFHLE9BQU8sR0FBRyxPQUFPO0lBQ2xDO0VBQ0YsQ0FBQztBQUNIO0FBa0JNLFNBQVUsUUFBSztBQUNuQixTQUFPLFFBQVEsTUFBTSxDQUFDLE9BQU07QUFDMUIsUUFBSSxDQUFDLFlBQVksRUFBRTtBQUFHO0FBQ3RCLGVBQVcsU0FBUyxHQUFHLFVBQVU7QUFDL0IsWUFBTSxPQUFPLE1BQU0sT0FBTyxNQUFNLFNBQVM7SUFDM0M7QUFFQSxPQUFHLFNBQVMsU0FBUztFQUN2QixDQUFDO0FBQ0g7QUF1Q00sU0FBVUwsTUFFZCxLQUErQjtBQUUvQixNQUFJLFFBQVEsUUFBVztBQUNyQixVQUFNLEtBQUssS0FBSyxDQUFDO0FBQ2pCLFFBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxFQUFFO0FBQUcsYUFBTztBQUNwQyxXQUFPLEtBQUssUUFBUSxHQUFHLFFBQVE7RUFDakM7QUFFQSxTQUFPLFFBQVEsTUFBTSxDQUFDLE9BQU07QUFDMUIsUUFBSSxDQUFDLFlBQVksRUFBRTtBQUFHO0FBQ3RCLGVBQVcsU0FBUyxHQUFHLFVBQVU7QUFDL0IsWUFBTSxPQUFPLE1BQU0sT0FBTyxNQUFNLFNBQVM7SUFDM0M7QUFFQSxVQUFNLFVBQVUsVUFBVSxHQUFHLElBQ3pCLElBQUksUUFBTyxJQUNYLEtBQUssT0FBTyxHQUFHLEdBQUcsSUFBSSxLQUFLLFNBQVMsT0FBTyxFQUFFLEVBQUU7QUFFbkQsV0FBVSxTQUFTLEVBQUU7RUFDdkIsQ0FBQztBQUNIO0FBUU0sU0FBVUcsWUFBUTtBQUN0QixTQUFPLEtBQUssUUFBUSxJQUFJO0FBQzFCO0FBMkNNLFNBQVVELE1BRWQsS0FBbUU7QUFHbkUsTUFBSSxRQUFRLFFBQVc7QUFDckIsV0FBTyxLQUFXLElBQUk7RUFDeEI7QUFDQSxNQUFJLE9BQU8sUUFBUSxZQUFZO0FBRTdCLFdBQU8sUUFBUSxNQUFNLENBQUMsSUFBSSxNQUN4QixLQUFLLE1BQU0sRUFBRSxFQUFFLEtBQUssSUFBSSxLQUFLLElBQUksR0FBRyxLQUFXLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0VBRTFEO0FBR0EsU0FBTyxRQUFRLE1BQU0sQ0FBQyxPQUFNO0FBQzFCLFFBQUksQ0FBQyxZQUFZLEVBQUU7QUFBRztBQUN0QixlQUFXLFNBQVMsR0FBRyxVQUFVO0FBQy9CLFlBQU0sT0FBTyxNQUFNLE9BQU8sTUFBTSxTQUFTO0lBQzNDO0FBRUEsVUFBTSxXQUFXLElBQUlXLE1BQUssR0FBRyxHQUFHLEVBQUU7QUFFbEMsV0FBVSxVQUFVLEVBQUU7RUFDeEIsQ0FBQztBQUNIO0FBZU0sU0FBVSxRQUFLO0FBQ25CLFFBQU1ULFNBQVEsTUFBTSxVQUFVLElBQUksS0FBSyxLQUFLLElBQUcsR0FBSSxDQUFDLE9BQ2xELFVBQVUsSUFBSSxJQUFJLENBQUM7QUFJckIsUUFBTVUsUUFBTyxJQUFJLFNBQVNWLE1BQUs7QUFDL0IsYUFBVyxRQUFRQSxRQUFPO0FBQ3hCLFNBQUssU0FBU1U7RUFDaEI7QUFFQSxTQUFPLEtBQUssTUFBTVYsTUFBSztBQUN6QjtBQXRsQ0EsSUE2UWFMLFNBNEJBRSxVQXlHQSxNQStEQTtBQWpkYixJQUFBYyxxQkFBQTs7QUFNQSxJQUFBQztBQVVBLElBQUFDO0FBQ0E7QUFDQSxJQUFBQztBQUNBLElBQUFGO0FBMFBPLElBQU1qQixVQUtLLFFBQVEsQ0FBQyxLQUFLb0IsV0FBVWQsWUFBVTtBQUNsRCxtQkFBYWMsV0FBVUEsVUFBUyxRQUFRLEdBQUcsS0FBS2QsT0FBTTtJQUN4RCxDQUFDO0FBcUJNLElBQU1KLFdBS0ssUUFBUSxDQUFDLEtBQUtrQixXQUFVZCxZQUFVO0FBQ2xELG1CQUFhYyxXQUFVLEdBQUcsR0FBRyxLQUFLZCxPQUFNO0lBQzFDLENBQUM7QUFrR00sSUFBTSxPQUdLLE1BQU0sQ0FBQyxJQUFJLGtCQUFrQixlQUFjO0FBQzNELFlBQU0sRUFBRSxRQUFBQSxRQUFNLElBQUs7QUFFbkIsVUFBSSxDQUFDQTtBQUFRO0FBRWIsWUFBTU0sWUFBc0JOLFFBQU87QUFDbkMsWUFBTU8sU0FBUUQsVUFBUyxRQUFRLEVBQUU7QUFFakMsYUFBVSxDQUFDLEVBQUUsR0FBRyxnQkFBZ0I7QUFNaEMsbUJBQWFBLFdBQVVDLFFBQU8sR0FBRyxZQUFZUCxPQUFNO0lBQ3JELENBQUM7QUE2Q00sSUFBTSxZQUdLLE1BQU0sQ0FBQyxJQUFJLGtCQUFrQixlQUFjO0FBQzNELFVBQUksQ0FBQyxZQUFZLEVBQUU7QUFBRztBQUN0QixhQUFVLEdBQUcsVUFBVSxnQkFBZ0I7QUFDdkMsYUFBVSxZQUFZLEVBQUU7SUFDMUIsQ0FBQzs7Ozs7QUN4ZEQ7Ozs7QUFtRU0sU0FBVSxJQUVkZSxPQUNBQyxNQUVxRTtBQUVyRSxNQUNHRCxTQUFRLFFBQVFDLFFBQU87RUFFdkIsT0FBT0QsVUFBUyxZQUFZLENBQUMsTUFBTSxRQUFRQSxLQUFJLEdBQ2hEO0FBQ0EsV0FBTyxRQUFRLE1BQU0sQ0FBQyxJQUFJLE1BQUs7QUFDN0IsVUFBSUUsT0FBTSxFQUFFLEdBQUc7QUFFYixlQUFPLElBQUlGLE9BQWdCQyxNQUFLLENBQUM7TUFDbkM7SUFDRixDQUFDO0VBQ0g7QUFFQSxNQUFJLEtBQUssV0FBVyxHQUFHO0FBQ3JCLFdBQU87RUFDVDtBQUVBLFNBQU8sT0FBTyxLQUFLLENBQUMsR0FBR0QsS0FBYztBQUN2QztBQVdBLFNBQVMsT0FDUCxJQUNBQSxPQUNBLE9BSUEsS0FBVztBQUVYLE1BQUksT0FBT0EsVUFBUyxVQUFVO0FBQzVCLFVBQU0sU0FBUyxPQUFPLEVBQUU7QUFFeEIsVUFBTUMsT0FDSixPQUFPLFVBQVUsYUFBYSxNQUFNLEtBQUssSUFBSSxLQUFLLE9BQU9ELEtBQUksQ0FBQyxJQUFJO0FBRXBFLFFBQUlDLFNBQVEsSUFBSTtBQUNkLGFBQU8sT0FBT0QsS0FBSTtJQUNwQixXQUFXQyxRQUFPLE1BQU07QUFDdEIsYUFBT0QsS0FBSSxJQUFJQztJQUNqQjtBQUVBLE9BQUcsUUFBUSxPQUFPLElBQUksVUFBVSxNQUFNO0VBQ3hDLFdBQVcsT0FBT0QsVUFBUyxVQUFVO0FBQ25DLFVBQU0sT0FBTyxPQUFPLEtBQUtBLEtBQUk7QUFDN0IsYUFBUyxJQUFJLEdBQUcsSUFBSSxLQUFLLFFBQVEsS0FBSztBQUNwQyxZQUFNLElBQUksS0FBSyxDQUFDO0FBQ2hCLGFBQU8sSUFBSSxHQUFHQSxNQUFLLENBQUMsR0FBRyxDQUFDO0lBQzFCO0VBQ0Y7QUFDRjtBQXNCQSxTQUFTLE9BQ1AsSUFDQUEsT0FBd0I7QUFFeEIsTUFBSSxDQUFDLE1BQU0sQ0FBQ0UsT0FBTSxFQUFFO0FBQUc7QUFFdkIsUUFBTSxTQUFTQyxPQUFNLEdBQUcsUUFBUSxPQUFPLENBQUM7QUFDeEMsTUFBSSxPQUFPSCxVQUFTLFVBQVU7QUFDNUIsV0FBTyxPQUFPQSxLQUFJO0VBQ3BCO0FBQ0EsTUFBSSxNQUFNLFFBQVFBLEtBQUksR0FBRztBQUN2QixVQUFNLFlBQW9DLENBQUE7QUFDMUMsZUFBVyxRQUFRQSxPQUFNO0FBQ3ZCLFVBQUksT0FBTyxJQUFJLEtBQUssTUFBTTtBQUN4QixrQkFBVSxJQUFJLElBQUksT0FBTyxJQUFJO01BQy9CO0lBQ0Y7QUFDQSxXQUFPO0VBQ1Q7QUFDQSxTQUFPO0FBQ1Q7QUFVQSxTQUFTLFVBQVUsS0FBMkI7QUFDNUMsU0FBTyxPQUFPLEtBQUssR0FBRyxFQUFFLE9BQ3RCLENBQUMsS0FBS0EsVUFBUyxHQUFHLEdBQUcsR0FBRyxNQUFNLE1BQU0sRUFBRSxHQUFHQSxLQUFJLEtBQUssSUFBSUEsS0FBSSxDQUFDLEtBQzNELEVBQUU7QUFFTjtBQVVBLFNBQVNHLE9BQU0sUUFBYztBQUMzQixZQUFVLFVBQVUsSUFBSSxLQUFJO0FBRTVCLE1BQUksQ0FBQztBQUFRLFdBQU8sQ0FBQTtBQUVwQixRQUFNLE1BQThCLENBQUE7QUFFcEMsTUFBSTtBQUVKLGFBQVcsT0FBTyxPQUFPLE1BQU0sR0FBRyxHQUFHO0FBQ25DLFVBQU0sSUFBSSxJQUFJLFFBQVEsR0FBRztBQUV6QixRQUFJLElBQUksS0FBSyxNQUFNLElBQUksU0FBUyxHQUFHO0FBQ2pDLFlBQU0sVUFBVSxJQUFJLFFBQU87QUFDM0IsVUFBSSxRQUFRLFNBQVMsS0FBSyxRQUFRLFFBQVc7QUFDM0MsWUFBSSxHQUFHLEtBQUssSUFBSSxPQUFPO01BQ3pCO0lBQ0YsT0FBTztBQUNMLFlBQU0sSUFBSSxNQUFNLEdBQUcsQ0FBQyxFQUFFLEtBQUk7QUFDMUIsVUFBSSxHQUFHLElBQUksSUFBSSxNQUFNLElBQUksQ0FBQyxFQUFFLEtBQUk7SUFDbEM7RUFDRjtBQUVBLFNBQU87QUFDVDtBQS9OQTs7SUFBQUM7QUFDQSxJQUFBQzs7Ozs7QUNEQTs7Ozs7QUF5Qk0sU0FBVSxZQUFTO0FBRXZCLFFBQU0sTUFBTSxLQUFLLGVBQWM7QUFHL0IsUUFBTSxTQUFTLElBQUksSUFDakIsQ0FBQ0MsVUFDQyxHQUFHLG1CQUFtQkEsTUFBSyxJQUFJLENBQUMsSUFBSSxtQkFBbUJBLE1BQUssS0FBSyxDQUFDLEVBQUU7QUFJeEUsU0FBTyxPQUFPLEtBQUssR0FBRyxFQUFFLFFBQVEsS0FBSyxHQUFHO0FBQzFDO0FBZ0JNLFNBQVUsaUJBQWM7QUFPNUIsU0FBTyxLQUFLLElBQUksQ0FBQyxHQUFHLFNBQVE7QUFDMUIsVUFBTSxRQUFRLEtBQUssTUFBTSxJQUFJO0FBQzdCLFFBQUlDLE9BQU0sSUFBSSxLQUFLLEtBQUssU0FBUyxRQUFRO0FBQ3ZDLGFBQU8sTUFBTSxLQUFLLG1CQUFtQixFQUFFLFFBQU87SUFDaEQ7QUFDQSxXQUFPLE1BQU0sT0FBTyxtQkFBbUIsRUFBRSxRQUFPO0VBQ2xELENBQUMsRUFDRTs7SUFFQztFQUlnRCxFQUdqRCxJQU1DLENBQUMsR0FBRyxTQUFROztBQUNaLFVBQU0sUUFBUSxLQUFLLE1BQU0sSUFBSTtBQUM3QixVQUFNLE9BQU8sTUFBTSxLQUFLLE1BQU07QUFFOUIsVUFBTSxTQUFRQyxNQUFBLE1BQU0sSUFBRyxPQUFFLFFBQUFBLFFBQUEsU0FBQUEsTUFBSTtBQUc3QixRQUFJLE1BQU0sUUFBUSxLQUFLLEdBQUc7QUFDeEIsYUFBTyxNQUFNLElBQUksQ0FBQ0M7Ozs7O1FBS2YsRUFBRSxNQUFNLE9BQU9BLEtBQUksUUFBUSxPQUFPLE1BQU0sRUFBQztPQUFHO0lBRWpEO0FBRUEsV0FBTyxFQUFFLE1BQU0sT0FBTyxNQUFNLFFBQVEsT0FBTyxNQUFNLEVBQUM7RUFDcEQsQ0FBQyxFQUNBLFFBQU87QUFDWjtBQXRHQSxJQU9NLHFCQUNBLEtBQ0E7QUFUTjs7SUFBQUM7QUFPQSxJQUFNLHNCQUFzQjtBQUM1QixJQUFNLE1BQU07QUFDWixJQUFNLFFBQVE7Ozs7O0FDK0JkOztpQkFBQUM7O0FBQUEsU0FBUyxnQkFDUCxPQUFpQzs7QUFFakMsTUFBSSxPQUFPLFVBQVUsVUFBVTtBQUM3QixXQUFPLEVBQUUsVUFBVSxPQUFPLE9BQU8sY0FBYTtFQUNoRDtBQUVBLFNBQU87SUFDTCxVQUFVLE1BQU07SUFDaEIsUUFBT0MsTUFBQSxNQUFNLFdBQUssUUFBQUEsUUFBQSxTQUFBQSxNQUFJOztBQUUxQjtBQVVNLFNBQVVELFNBRWRFLE1BQU07QUFFTixRQUFNLE1BQStCLENBQUE7QUFFckMsYUFBVyxPQUFPQSxNQUFLO0FBQ3JCLFVBQU0sUUFBUUEsS0FBSSxHQUFHO0FBQ3JCLFVBQU1DLFdBQVUsTUFBTSxRQUFRLEtBQUs7QUFFbkMsVUFBTSxFQUFFLFVBQVUsTUFBSyxJQUFLLGdCQUFnQkEsV0FBVSxNQUFNLENBQUMsSUFBSSxLQUFLO0FBRXRFLFVBQU0sS0FDSixPQUFPLFVBQVUsYUFDYixRQUNBLE9BQU8sVUFBVSxXQUNmLENBQUMsT0FBZ0IsS0FBSyxNQUFNLEVBQUUsRUFBRSxLQUFLLEtBQUssSUFDMUMsQ0FBQyxPQUFnQixLQUFLLE1BQU0sRUFBRSxFQUFFLFFBQVEsS0FBSztBQUVyRCxRQUFJQSxVQUFTO0FBQ1gsVUFBSSxHQUFHLElBQUksS0FBSyxnQkFBZ0IsVUFBVSxPQUFPLGlCQUFpQixFQUMvRCxJQUFJLENBQUMsR0FBRyxPQUFPLEdBQUcsSUFBSSxLQUFLLEdBQUcsQ0FBQyxFQUMvQixJQUFHO0lBQ1IsT0FBTztBQUNMLFlBQU1DLEtBQUksS0FBSyxnQkFBZ0IsVUFBVSxDQUFDO0FBQzFDLFVBQUksR0FBRyxJQUFJQSxHQUFFLFNBQVMsSUFBSSxHQUFHQSxHQUFFLENBQUMsR0FBRyxLQUFLLEdBQUcsSUFBSTtJQUNqRDtFQUNGO0FBRUEsU0FBTztBQUNUO0FBbkRBOzs7Ozs7QUNuQ0EsSUFpQ3NCO0FBakN0Qjs7O0FBQ0E7QUFDQSxJQUFBQztBQUNBO0FBQ0E7QUFDQTtBQTRCTSxJQUFnQixVQUFoQixNQUF1Qjs7Ozs7Ozs7OztNQXNCM0IsWUFDRSxVQUNBQyxPQUNBLFNBQXdCO0FBeEIxQixhQUFBLFNBQVM7QUEwQlAsYUFBSyxVQUFVO0FBQ2YsYUFBSyxRQUFRQTtBQUViLFlBQUksVUFBVTtBQUNaLG1CQUFTLE1BQU0sR0FBRyxNQUFNLFNBQVMsUUFBUSxPQUFPO0FBQzlDLGlCQUFLLEdBQUcsSUFBSSxTQUFTLEdBQUc7VUFDMUI7QUFDQSxlQUFLLFNBQVMsU0FBUztRQUN6QjtNQUNGOztBQWlERixZQUFRLFVBQVUsVUFBVTtBQUs1QixZQUFRLFVBQVUsU0FBUyxNQUFNLFVBQVU7QUFHM0MsWUFBUSxVQUFVLE9BQU8sUUFBUSxJQUFJLE1BQU0sVUFBVSxPQUFPLFFBQVE7QUFHcEUsV0FBTyxPQUNMLFFBQVEsV0FDUixvQkFDQSxvQkFDQSxzQkFDQSxhQUNBLGVBQ0EsZUFBTzs7Ozs7QUNwQ0gsU0FBVSxRQUNkQyxRQUNBQyxTQUdXO0FBZ0JYLFNBQU8sU0FBU0MsTUFDZCxTQUNBLFNBQ0FDLGNBQWEsTUFBSTtBQUVqQixRQUFLLFdBQTZCLE1BQU07QUFDdEMsWUFBTSxJQUFJLE1BQU0saUNBQWlDO0lBQ25EO0FBRUEsVUFBTSxlQUFlLGVBQWUsT0FBTztBQUMzQyxVQUFNLGNBQWNILE9BQU0sU0FBUyxjQUFjRyxhQUFZLElBQUk7SUFNakUsTUFBTSxzQkFBeUIsUUFBVTtNQUN2QyxNQUNFLFVBQ0EsU0FBNEM7QUFFNUMsY0FBTSxVQUFVLFdBQVcsVUFBVSxPQUFPO0FBQzVDLGdCQUFRLGFBQWE7QUFFckIsZUFBTztNQUNUO01BRUEsT0FDRUMsVUFDQUMsVUFDQUYsYUFDQSxTQUEwQjtBQUUxQixlQUFPSCxPQUFNSSxVQUFTQyxVQUFTRixhQUFZLE9BQU87TUFDcEQ7TUFFQSxRQUFRLEtBQWlDO0FBQ3ZDLGVBQU9GLFFBQU8sS0FBSyxLQUFLLE9BQU87TUFDakM7O0FBR0YsYUFBUyxXQUNQLFVBQ0EsU0FDQUssUUFBcUMsYUFDckMsTUFBcUI7QUFLckIsVUFBSSxZQUFZLFVBQWtCLFFBQVE7QUFBRyxlQUFPO0FBRXBELFlBQU1ELFdBQVUsZUFBZSxNQUFNLFlBQVk7QUFDakQsWUFBTSxJQUNKLE9BQU9DLFVBQVMsV0FDWixDQUFDTixPQUFNTSxPQUFNRCxVQUFTLE9BQU8sSUFBSSxDQUFDLElBQ2xDLFlBQVlDLFFBQ1ZBLFFBQ0EsQ0FBQ0EsS0FBSTtBQUNiLFlBQU0sZUFBZSxVQUFvQixDQUFDLElBQ3RDLElBQ0EsSUFBSSxjQUF3QixHQUFHLE1BQU1ELFFBQU87QUFFaEQsbUJBQWEsUUFBUTtBQUdyQixVQUFJLENBQUMsVUFBVTtBQUNiLGVBQU8sSUFBSSxjQUFzQixRQUFXLGNBQWNBLFFBQU87TUFDbkU7QUFFQSxZQUFNLFdBQ0osT0FBTyxhQUFhLFlBQVksT0FBTyxRQUFROztRQUUzQ0wsT0FBTSxVQUFVSyxVQUFTLE9BQU8sSUFBSSxFQUFFO1VBQ3RDLE9BQU8sUUFBUTs7UUFFYixDQUFDLFFBQVE7VUFDVCxNQUFNLFFBQVEsUUFBUTs7UUFFcEI7VUFDQTtBQUVWLFlBQU0sV0FBVyxJQUFJLGNBQWMsVUFBVSxjQUFjQSxRQUFPO0FBRWxFLFVBQUksVUFBVTtBQUNaLGVBQU87TUFDVDtBQUVBLFVBQUksT0FBTyxhQUFhLFVBQVU7QUFDaEMsY0FBTSxJQUFJLFVBQVUsNkJBQTZCO01BQ25EO0FBR0EsVUFBSSxTQUFTO0FBRWIsWUFBTSxnQkFBOEM7O1FBRWhELE9BQU8sWUFBWSxXQUNqQixPQUFPLE9BQU87O1VBRVosSUFBSSxjQUNGLENBQUNMLE9BQU0sU0FBU0ssVUFBUyxPQUFPLElBQUksQ0FBQyxHQUNyQyxjQUNBQSxRQUFPOzs7V0FHUCxTQUFTLEdBQUcsT0FBTyxJQUFJLE1BQU0sSUFBVTtZQUMzQyxVQUFtQixPQUFPOztVQUV4Qjs7O1VBRUEsSUFBSSxjQUNGLE1BQU0sUUFBUSxPQUFPLElBQUksVUFBVSxDQUFDLE9BQU8sR0FDM0MsY0FDQUEsUUFBTzs7VUFFYjtBQUdKLFVBQUksQ0FBQztBQUFlLGVBQU87QUFLM0IsYUFBTyxjQUFjLEtBQUssTUFBTTtJQUNsQztBQUdBLFdBQU8sT0FBTyxZQUFZLGdCQUFlO01BQ3ZDLE1BQUFIOztNQUVBLE9BQU87TUFDUCxVQUFVOztNQUVWLElBQUksY0FBYzs7TUFFbEIsV0FBVyxjQUFjO0tBQzFCO0FBRUQsV0FBTztFQUNUO0FBQ0Y7QUFFQSxTQUFTLE9BQU8sS0FBUTtBQUN0QixTQUNFLENBQUMsQ0FBQyxJQUFJLFFBQ04sSUFBSSxTQUFTLFVBQ2IsSUFBSSxTQUFTLFVBQ2IsSUFBSSxTQUFTO0FBRWpCO0FBcFJBOzs7QUFLQTtBQUNBO0FBQ0EsSUFBQUs7Ozs7O0FDc0NPLFNBQVMsWUFBWSxJQUFJO0FBQzVCLFNBQU8sTUFBTSxTQUFTLE1BQU07QUFDaEM7QUFDTyxTQUFTLGdCQUFnQixJQUFJO0FBQ2hDLFNBQU8sTUFBTSxTQUFTLE1BQU07QUFDaEM7QUFDTyxTQUFTLDBCQUEwQixLQUFLLEtBQUs7QUFDaEQsVUFBUSxNQUFNLFNBQVMsT0FBTyxPQUFPO0FBQ3pDO0FBRU8sU0FBUyxtQkFBbUIsSUFBSTtBQUNuQyxTQUFTLE9BQU8sTUFBUSxPQUFPLE1BQVEsT0FBTyxNQUFRLE9BQU8sS0FBUSxPQUFPLE1BQVEsTUFBTSxLQUFRLE1BQU0sTUFDbkcsTUFBTSxPQUFRLE1BQU07QUFDN0I7QUFDTyxTQUFTLHFCQUFxQixJQUFJO0FBQ3JDLFNBQVEsTUFBTSxTQUFTLE1BQU0sU0FBVSxzQkFBc0IsSUFBSSxFQUFFO0FBQ3ZFO0FBN0RBLElBQU0sdUJBTU8sdUJBQ0YsYUE2QkU7QUFwQ2I7QUFBQTtBQUFBLElBQU0sd0JBQXdCLG9CQUFJLElBQUk7QUFBQSxNQUNsQztBQUFBLE1BQU87QUFBQSxNQUFPO0FBQUEsTUFBUTtBQUFBLE1BQVE7QUFBQSxNQUFRO0FBQUEsTUFBUTtBQUFBLE1BQVE7QUFBQSxNQUFRO0FBQUEsTUFBUTtBQUFBLE1BQVE7QUFBQSxNQUM5RTtBQUFBLE1BQVE7QUFBQSxNQUFRO0FBQUEsTUFBUTtBQUFBLE1BQVE7QUFBQSxNQUFRO0FBQUEsTUFBUTtBQUFBLE1BQVE7QUFBQSxNQUFRO0FBQUEsTUFBUTtBQUFBLE1BQ3hFO0FBQUEsTUFBUTtBQUFBLE1BQVE7QUFBQSxNQUFRO0FBQUEsTUFBUTtBQUFBLE1BQVE7QUFBQSxNQUFRO0FBQUEsTUFBUTtBQUFBLE1BQVE7QUFBQSxNQUFRO0FBQUEsTUFDeEU7QUFBQSxNQUFTO0FBQUEsTUFBUztBQUFBLElBQ3RCLENBQUM7QUFDTSxJQUFNLHdCQUF3QjtBQUVyQyxLQUFDLFNBQVVDLGNBQWE7QUFDcEIsTUFBQUEsYUFBWUEsYUFBWSxLQUFLLElBQUksRUFBRSxJQUFJO0FBQ3ZDLE1BQUFBLGFBQVlBLGFBQVksTUFBTSxJQUFJLENBQUMsSUFBSTtBQUN2QyxNQUFBQSxhQUFZQSxhQUFZLFlBQVksSUFBSSxDQUFDLElBQUk7QUFDN0MsTUFBQUEsYUFBWUEsYUFBWSxpQkFBaUIsSUFBSSxFQUFFLElBQUk7QUFDbkQsTUFBQUEsYUFBWUEsYUFBWSxXQUFXLElBQUksRUFBRSxJQUFJO0FBQzdDLE1BQUFBLGFBQVlBLGFBQVksV0FBVyxJQUFJLEVBQUUsSUFBSTtBQUM3QyxNQUFBQSxhQUFZQSxhQUFZLE9BQU8sSUFBSSxFQUFFLElBQUk7QUFDekMsTUFBQUEsYUFBWUEsYUFBWSxrQkFBa0IsSUFBSSxFQUFFLElBQUk7QUFDcEQsTUFBQUEsYUFBWUEsYUFBWSxnQkFBZ0IsSUFBSSxFQUFFLElBQUk7QUFDbEQsTUFBQUEsYUFBWUEsYUFBWSxXQUFXLElBQUksRUFBRSxJQUFJO0FBQzdDLE1BQUFBLGFBQVlBLGFBQVksWUFBWSxJQUFJLEVBQUUsSUFBSTtBQUM5QyxNQUFBQSxhQUFZQSxhQUFZLGNBQWMsSUFBSSxFQUFFLElBQUk7QUFDaEQsTUFBQUEsYUFBWUEsYUFBWSxTQUFTLElBQUksRUFBRSxJQUFJO0FBQzNDLE1BQUFBLGFBQVlBLGFBQVksU0FBUyxJQUFJLEVBQUUsSUFBSTtBQUMzQyxNQUFBQSxhQUFZQSxhQUFZLFNBQVMsSUFBSSxFQUFFLElBQUk7QUFDM0MsTUFBQUEsYUFBWUEsYUFBWSxXQUFXLElBQUksRUFBRSxJQUFJO0FBQzdDLE1BQUFBLGFBQVlBLGFBQVksZ0JBQWdCLElBQUksRUFBRSxJQUFJO0FBQ2xELE1BQUFBLGFBQVlBLGFBQVksYUFBYSxJQUFJLEVBQUUsSUFBSTtBQUMvQyxNQUFBQSxhQUFZQSxhQUFZLG1CQUFtQixJQUFJLEVBQUUsSUFBSTtBQUNyRCxNQUFBQSxhQUFZQSxhQUFZLGVBQWUsSUFBSSxFQUFFLElBQUk7QUFDakQsTUFBQUEsYUFBWUEsYUFBWSxpQkFBaUIsSUFBSSxFQUFFLElBQUk7QUFDbkQsTUFBQUEsYUFBWUEsYUFBWSxpQkFBaUIsSUFBSSxFQUFFLElBQUk7QUFDbkQsTUFBQUEsYUFBWUEsYUFBWSxzQkFBc0IsSUFBSSxFQUFFLElBQUk7QUFDeEQsTUFBQUEsYUFBWUEsYUFBWSxjQUFjLElBQUksRUFBRSxJQUFJO0FBQ2hELE1BQUFBLGFBQVlBLGFBQVksZUFBZSxJQUFJLEVBQUUsSUFBSTtBQUNqRCxNQUFBQSxhQUFZQSxhQUFZLGVBQWUsSUFBSSxHQUFHLElBQUk7QUFBQSxJQUN0RCxHQUFHLGdCQUFnQixjQUFjLENBQUMsRUFBRTtBQUM3QixJQUFNLFlBQVk7QUFBQSxNQUNyQixXQUFXO0FBQUEsTUFDWCxhQUFhO0FBQUEsTUFDYixTQUFTO0FBQUEsTUFDVCxRQUFRO0FBQUEsTUFDUixRQUFRO0FBQUEsTUFDUixRQUFRO0FBQUEsSUFDWjtBQUFBO0FBQUE7OztBQzNDQSxJQUFXO0FBQVg7QUFBQTtBQUNBLEtBQUMsU0FBVUMsTUFBSztBQUNaLE1BQUFBLEtBQUksK0JBQStCLElBQUk7QUFDdkMsTUFBQUEsS0FBSSwyQkFBMkIsSUFBSTtBQUNuQyxNQUFBQSxLQUFJLHdCQUF3QixJQUFJO0FBQ2hDLE1BQUFBLEtBQUksK0NBQStDLElBQUk7QUFDdkQsTUFBQUEsS0FBSSxzQkFBc0IsSUFBSTtBQUM5QixNQUFBQSxLQUFJLDJCQUEyQixJQUFJO0FBQ25DLE1BQUFBLEtBQUksd0JBQXdCLElBQUk7QUFDaEMsTUFBQUEsS0FBSSx5QkFBeUIsSUFBSTtBQUNqQyxNQUFBQSxLQUFJLHdDQUF3QyxJQUFJO0FBQ2hELE1BQUFBLEtBQUksZ0NBQWdDLElBQUk7QUFDeEMsTUFBQUEsS0FBSSx5Q0FBeUMsSUFBSTtBQUNqRCxNQUFBQSxLQUFJLG1CQUFtQixJQUFJO0FBQzNCLE1BQUFBLEtBQUksb0NBQW9DLElBQUk7QUFDNUMsTUFBQUEsS0FBSSxnQ0FBZ0MsSUFBSTtBQUN4QyxNQUFBQSxLQUFJLHlDQUF5QyxJQUFJO0FBQ2pELE1BQUFBLEtBQUksaURBQWlELElBQUk7QUFDekQsTUFBQUEsS0FBSSw2Q0FBNkMsSUFBSTtBQUNyRCxNQUFBQSxLQUFJLGtCQUFrQixJQUFJO0FBQzFCLE1BQUFBLEtBQUksVUFBVSxJQUFJO0FBQ2xCLE1BQUFBLEtBQUksdUJBQXVCLElBQUk7QUFDL0IsTUFBQUEsS0FBSSxvQ0FBb0MsSUFBSTtBQUM1QyxNQUFBQSxLQUFJLDRDQUE0QyxJQUFJO0FBQ3BELE1BQUFBLEtBQUksMkRBQTJELElBQUk7QUFDbkUsTUFBQUEsS0FBSSw0Q0FBNEMsSUFBSTtBQUNwRCxNQUFBQSxLQUFJLDJDQUEyQyxJQUFJO0FBQ25ELE1BQUFBLEtBQUksMkNBQTJDLElBQUk7QUFDbkQsTUFBQUEsS0FBSSxnQ0FBZ0MsSUFBSTtBQUN4QyxNQUFBQSxLQUFJLGdDQUFnQyxJQUFJO0FBQ3hDLE1BQUFBLEtBQUksK0JBQStCLElBQUk7QUFDdkMsTUFBQUEsS0FBSSwrQkFBK0IsSUFBSTtBQUN2QyxNQUFBQSxLQUFJLG9CQUFvQixJQUFJO0FBQzVCLE1BQUFBLEtBQUksMEJBQTBCLElBQUk7QUFDbEMsTUFBQUEsS0FBSSxnQ0FBZ0MsSUFBSTtBQUN4QyxNQUFBQSxLQUFJLGNBQWMsSUFBSTtBQUN0QixNQUFBQSxLQUFJLGVBQWUsSUFBSTtBQUN2QixNQUFBQSxLQUFJLDZCQUE2QixJQUFJO0FBQ3JDLE1BQUFBLEtBQUksY0FBYyxJQUFJO0FBQ3RCLE1BQUFBLEtBQUksMEJBQTBCLElBQUk7QUFDbEMsTUFBQUEsS0FBSSxZQUFZLElBQUk7QUFDcEIsTUFBQUEsS0FBSSw0Q0FBNEMsSUFBSTtBQUNwRCxNQUFBQSxLQUFJLHdCQUF3QixJQUFJO0FBQ2hDLE1BQUFBLEtBQUksNkJBQTZCLElBQUk7QUFDckMsTUFBQUEsS0FBSSx1Q0FBdUMsSUFBSTtBQUMvQyxNQUFBQSxLQUFJLDJCQUEyQixJQUFJO0FBQ25DLE1BQUFBLEtBQUksZ0NBQWdDLElBQUk7QUFDeEMsTUFBQUEsS0FBSSxvQ0FBb0MsSUFBSTtBQUM1QyxNQUFBQSxLQUFJLG9CQUFvQixJQUFJO0FBQzVCLE1BQUFBLEtBQUksMENBQTBDLElBQUk7QUFDbEQsTUFBQUEsS0FBSSxvQkFBb0IsSUFBSTtBQUM1QixNQUFBQSxLQUFJLHNCQUFzQixJQUFJO0FBQzlCLE1BQUFBLEtBQUksZ0JBQWdCLElBQUk7QUFDeEIsTUFBQUEsS0FBSSxrQkFBa0IsSUFBSTtBQUMxQixNQUFBQSxLQUFJLGtDQUFrQyxJQUFJO0FBQzFDLE1BQUFBLEtBQUksdUNBQXVDLElBQUk7QUFDL0MsTUFBQUEsS0FBSSxtQ0FBbUMsSUFBSTtBQUMzQyxNQUFBQSxLQUFJLDBCQUEwQixJQUFJO0FBQ2xDLE1BQUFBLEtBQUksMkJBQTJCLElBQUk7QUFDbkMsTUFBQUEsS0FBSSxpQ0FBaUMsSUFBSTtBQUN6QyxNQUFBQSxLQUFJLHNCQUFzQixJQUFJO0FBQzlCLE1BQUFBLEtBQUksb0NBQW9DLElBQUk7QUFBQSxJQUNoRCxHQUFHLFFBQVEsTUFBTSxDQUFDLEVBQUU7QUFBQTtBQUFBOzs7QUM5RHBCLElBR00sMEJBSU87QUFQYjtBQUFBO0FBQUE7QUFDQTtBQUVBLElBQU0sMkJBQTJCLEtBQUs7QUFJL0IsSUFBTSxlQUFOLE1BQW1CO0FBQUEsTUFDdEIsWUFBWSxTQUFTO0FBQ2pCLGFBQUssVUFBVTtBQUNmLGFBQUssT0FBTztBQUNaLGFBQUssTUFBTTtBQUVYLGFBQUssYUFBYTtBQUNsQixhQUFLLFdBQVcsQ0FBQztBQUNqQixhQUFLLGtCQUFrQjtBQUN2QixhQUFLLG1CQUFtQjtBQUN4QixhQUFLLGdCQUFnQjtBQUNyQixhQUFLLGtCQUFrQjtBQUN2QixhQUFLLFFBQVE7QUFDYixhQUFLLGVBQWU7QUFDcEIsYUFBSyxvQkFBb0I7QUFDekIsYUFBSyxPQUFPO0FBRVosYUFBSyxnQkFBZ0I7QUFBQSxNQUN6QjtBQUFBO0FBQUEsTUFFQSxJQUFJLE1BQU07QUFDTixlQUFPLEtBQUssTUFBTSxLQUFLLGVBQWUsT0FBTyxLQUFLLGVBQWUsS0FBSyxHQUFHO0FBQUEsTUFDN0U7QUFBQSxNQUNBLElBQUksU0FBUztBQUNULGVBQU8sS0FBSyxvQkFBb0IsS0FBSztBQUFBLE1BQ3pDO0FBQUEsTUFDQSxTQUFTLE1BQU0sVUFBVTtBQUNyQixjQUFNLEVBQUUsTUFBTSxLQUFLLE9BQU8sSUFBSTtBQUM5QixjQUFNLFdBQVcsTUFBTTtBQUN2QixjQUFNLGNBQWMsU0FBUztBQUM3QixlQUFPO0FBQUEsVUFDSDtBQUFBLFVBQ0EsV0FBVztBQUFBLFVBQ1gsU0FBUztBQUFBLFVBQ1Q7QUFBQSxVQUNBLFFBQVE7QUFBQSxVQUNSO0FBQUEsVUFDQSxXQUFXO0FBQUEsUUFDZjtBQUFBLE1BQ0o7QUFBQSxNQUNBLEtBQUssTUFBTTtBQUNQLFlBQUksS0FBSyxRQUFRLGdCQUFnQixLQUFLLGtCQUFrQixLQUFLLFFBQVE7QUFDakUsZUFBSyxnQkFBZ0IsS0FBSztBQUMxQixlQUFLLFFBQVEsYUFBYSxLQUFLLFNBQVMsTUFBTSxDQUFDLENBQUM7QUFBQSxRQUNwRDtBQUFBLE1BQ0o7QUFBQSxNQUNBLFVBQVU7QUFDTixhQUFLLFNBQVMsS0FBSyxLQUFLLFVBQVU7QUFDbEMsYUFBSyxhQUFhLEtBQUs7QUFBQSxNQUMzQjtBQUFBLE1BQ0Esa0JBQWtCLElBQUk7QUFFbEIsWUFBSSxLQUFLLFFBQVEsS0FBSyxLQUFLLFNBQVMsR0FBRztBQUNuQyxnQkFBTSxTQUFTLEtBQUssS0FBSyxXQUFXLEtBQUssTUFBTSxDQUFDO0FBQ2hELGNBQUksZ0JBQWdCLE1BQU0sR0FBRztBQUV6QixpQkFBSztBQUVMLGlCQUFLLFFBQVE7QUFDYixtQkFBTywwQkFBMEIsSUFBSSxNQUFNO0FBQUEsVUFDL0M7QUFBQSxRQUNKLFdBRVMsQ0FBQyxLQUFLLGtCQUFrQjtBQUM3QixlQUFLLGdCQUFnQjtBQUNyQixpQkFBTyxZQUFFO0FBQUEsUUFDYjtBQUVBLGFBQUssS0FBSyxJQUFJLHNCQUFzQjtBQUNwQyxlQUFPO0FBQUEsTUFDWDtBQUFBLE1BQ0Esc0JBQXNCO0FBQ2xCLGVBQU8sS0FBSyxNQUFNLEtBQUs7QUFBQSxNQUMzQjtBQUFBLE1BQ0Esa0JBQWtCO0FBQ2QsWUFBSSxLQUFLLG9CQUFvQixHQUFHO0FBQzVCLGVBQUssT0FBTyxLQUFLLEtBQUssVUFBVSxLQUFLLEdBQUc7QUFDeEMsZUFBSyxnQkFBZ0IsS0FBSztBQUMxQixlQUFLLHFCQUFxQixLQUFLO0FBQy9CLGVBQUssTUFBTTtBQUNYLGVBQUssYUFBYTtBQUNsQixlQUFLLFNBQVMsU0FBUztBQUFBLFFBQzNCO0FBQUEsTUFDSjtBQUFBLE1BQ0EsTUFBTSxPQUFPLGFBQWE7QUFDdEIsWUFBSSxLQUFLLEtBQUssU0FBUyxHQUFHO0FBQ3RCLGVBQUssUUFBUTtBQUFBLFFBQ2pCLE9BQ0s7QUFDRCxlQUFLLE9BQU87QUFBQSxRQUNoQjtBQUNBLGFBQUssZ0JBQWdCO0FBQ3JCLGFBQUssbUJBQW1CO0FBQUEsTUFDNUI7QUFBQSxNQUNBLHVCQUF1QixPQUFPO0FBQzFCLGFBQUssT0FBTyxLQUFLLEtBQUssVUFBVSxHQUFHLEtBQUssTUFBTSxDQUFDLElBQUksUUFBUSxLQUFLLEtBQUssVUFBVSxLQUFLLE1BQU0sQ0FBQztBQUMzRixhQUFLLGdCQUFnQjtBQUFBLE1BQ3pCO0FBQUEsTUFDQSxXQUFXLFNBQVMsZUFBZTtBQUUvQixZQUFJLEtBQUssTUFBTSxRQUFRLFNBQVMsS0FBSyxLQUFLLFFBQVE7QUFDOUMsZUFBSyxnQkFBZ0IsQ0FBQyxLQUFLO0FBQzNCLGlCQUFPO0FBQUEsUUFDWDtBQUNBLFlBQUksZUFBZTtBQUNmLGlCQUFPLEtBQUssS0FBSyxXQUFXLFNBQVMsS0FBSyxHQUFHO0FBQUEsUUFDakQ7QUFDQSxpQkFBUyxJQUFJLEdBQUcsSUFBSSxRQUFRLFFBQVEsS0FBSztBQUNyQyxnQkFBTSxLQUFLLEtBQUssS0FBSyxXQUFXLEtBQUssTUFBTSxDQUFDLElBQUk7QUFDaEQsY0FBSSxPQUFPLFFBQVEsV0FBVyxDQUFDLEdBQUc7QUFDOUIsbUJBQU87QUFBQSxVQUNYO0FBQUEsUUFDSjtBQUNBLGVBQU87QUFBQSxNQUNYO0FBQUEsTUFDQSxLQUFLLFFBQVE7QUFDVCxjQUFNLE1BQU0sS0FBSyxNQUFNO0FBQ3ZCLFlBQUksT0FBTyxLQUFLLEtBQUssUUFBUTtBQUN6QixlQUFLLGdCQUFnQixDQUFDLEtBQUs7QUFDM0IsaUJBQU8sWUFBRTtBQUFBLFFBQ2I7QUFDQSxjQUFNLE9BQU8sS0FBSyxLQUFLLFdBQVcsR0FBRztBQUNyQyxlQUFPLFNBQVMsWUFBRSxrQkFBa0IsWUFBRSxZQUFZO0FBQUEsTUFDdEQ7QUFBQSxNQUNBLFVBQVU7QUFDTixhQUFLO0FBRUwsWUFBSSxLQUFLLE9BQU87QUFDWixlQUFLLFFBQVE7QUFDYixlQUFLO0FBQ0wsZUFBSyxlQUFlLEtBQUs7QUFBQSxRQUM3QjtBQUNBLFlBQUksS0FBSyxPQUFPLEtBQUssS0FBSyxRQUFRO0FBQzlCLGVBQUssZ0JBQWdCLENBQUMsS0FBSztBQUMzQixpQkFBTyxZQUFFO0FBQUEsUUFDYjtBQUNBLFlBQUksS0FBSyxLQUFLLEtBQUssV0FBVyxLQUFLLEdBQUc7QUFFdEMsWUFBSSxPQUFPLFlBQUUsaUJBQWlCO0FBQzFCLGVBQUssUUFBUTtBQUNiLGVBQUssa0JBQWtCO0FBQ3ZCLGlCQUFPLFlBQUU7QUFBQSxRQUNiO0FBR0EsWUFBSSxPQUFPLFlBQUUsV0FBVztBQUNwQixlQUFLLFFBQVE7QUFDYixjQUFJLEtBQUssaUJBQWlCO0FBRXRCLGlCQUFLO0FBQ0wsaUJBQUssa0JBQWtCO0FBQ3ZCLGlCQUFLLFFBQVE7QUFDYixtQkFBTyxLQUFLLFFBQVE7QUFBQSxVQUN4QjtBQUFBLFFBQ0o7QUFDQSxhQUFLLGtCQUFrQjtBQUN2QixZQUFJLFlBQVksRUFBRSxHQUFHO0FBQ2pCLGVBQUssS0FBSyxrQkFBa0IsRUFBRTtBQUFBLFFBQ2xDO0FBSUEsY0FBTSxxQkFBcUIsS0FBSyxRQUFRLGlCQUFpQixRQUNwRCxLQUFLLE1BQVEsS0FBSyxPQUNuQixPQUFPLFlBQUUsYUFDVCxPQUFPLFlBQUUsbUJBQ1IsS0FBSyxPQUFRLEtBQUs7QUFDdkIsWUFBSSxDQUFDLG9CQUFvQjtBQUNyQixlQUFLLCtCQUErQixFQUFFO0FBQUEsUUFDMUM7QUFDQSxlQUFPO0FBQUEsTUFDWDtBQUFBLE1BQ0EsK0JBQStCLElBQUk7QUFDL0IsWUFBSSxtQkFBbUIsRUFBRSxHQUFHO0FBQ3hCLGVBQUssS0FBSyxJQUFJLDZCQUE2QjtBQUFBLFFBQy9DLFdBQ1MscUJBQXFCLEVBQUUsR0FBRztBQUMvQixlQUFLLEtBQUssSUFBSSx5QkFBeUI7QUFBQSxRQUMzQztBQUFBLE1BQ0o7QUFBQSxNQUNBLFFBQVEsT0FBTztBQUNYLGFBQUssT0FBTztBQUNaLGVBQU8sS0FBSyxNQUFNLEtBQUssWUFBWTtBQUMvQixlQUFLLGFBQWEsS0FBSyxTQUFTLElBQUk7QUFDcEMsZUFBSztBQUFBLFFBQ1Q7QUFDQSxhQUFLLFFBQVE7QUFBQSxNQUNqQjtBQUFBLElBQ0o7QUFBQTtBQUFBOzs7QUN2TE8sU0FBUyxhQUFhLE9BQU8sVUFBVTtBQUMxQyxXQUFTLElBQUksTUFBTSxNQUFNLFNBQVMsR0FBRyxLQUFLLEdBQUcsS0FBSztBQUM5QyxRQUFJLE1BQU0sTUFBTSxDQUFDLEVBQUUsU0FBUyxVQUFVO0FBQ2xDLGFBQU8sTUFBTSxNQUFNLENBQUMsRUFBRTtBQUFBLElBQzFCO0FBQUEsRUFDSjtBQUNBLFNBQU87QUFDWDtBQW5CQSxJQUFXO0FBQVg7QUFBQTtBQUNBLEtBQUMsU0FBVUMsWUFBVztBQUNsQixNQUFBQSxXQUFVQSxXQUFVLFdBQVcsSUFBSSxDQUFDLElBQUk7QUFDeEMsTUFBQUEsV0FBVUEsV0FBVSxnQkFBZ0IsSUFBSSxDQUFDLElBQUk7QUFDN0MsTUFBQUEsV0FBVUEsV0FBVSxzQkFBc0IsSUFBSSxDQUFDLElBQUk7QUFDbkQsTUFBQUEsV0FBVUEsV0FBVSxXQUFXLElBQUksQ0FBQyxJQUFJO0FBQ3hDLE1BQUFBLFdBQVVBLFdBQVUsU0FBUyxJQUFJLENBQUMsSUFBSTtBQUN0QyxNQUFBQSxXQUFVQSxXQUFVLFNBQVMsSUFBSSxDQUFDLElBQUk7QUFDdEMsTUFBQUEsV0FBVUEsV0FBVSxTQUFTLElBQUksQ0FBQyxJQUFJO0FBQ3RDLE1BQUFBLFdBQVVBLFdBQVUsS0FBSyxJQUFJLENBQUMsSUFBSTtBQUNsQyxNQUFBQSxXQUFVQSxXQUFVLGFBQWEsSUFBSSxDQUFDLElBQUk7QUFBQSxJQUM5QyxHQUFHLGNBQWMsWUFBWSxDQUFDLEVBQUU7QUFBQTtBQUFBOzs7QUNYaEM7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBK1pPLFNBQVMsU0FBUyxTQUFTO0FBQzlCLE1BQUlDO0FBQ0osVUFBUUEsTUFBSyxlQUFlLElBQUksT0FBTyxPQUFPLFFBQVFBLFFBQU8sU0FBU0EsTUFBSyxPQUFPO0FBQ3RGO0FBc0dPLFNBQVMsaUJBQWlCLElBQUksa0JBQWtCO0FBQ25ELFNBQU8sZUFBZSxJQUFJLEVBQUUsS0FBTSxvQkFBb0IsT0FBTyxVQUFVO0FBQzNFO0FBMWdCQSxJQUNXLElBU0EsT0FnQkEsZUFNQSxXQW1JQSxRQStITCxnQkFpSUEsR0FDTyxrQkEwRkEsa0JBQ1A7QUEvZk47QUFBQTtBQUVBLEtBQUMsU0FBVUMsS0FBSTtBQUNYLE1BQUFBLElBQUcsTUFBTSxJQUFJO0FBQ2IsTUFBQUEsSUFBRyxRQUFRLElBQUk7QUFDZixNQUFBQSxJQUFHLEtBQUssSUFBSTtBQUNaLE1BQUFBLElBQUcsT0FBTyxJQUFJO0FBQ2QsTUFBQUEsSUFBRyxLQUFLLElBQUk7QUFDWixNQUFBQSxJQUFHLE9BQU8sSUFBSTtBQUFBLElBQ2xCLEdBQUcsT0FBTyxLQUFLLENBQUMsRUFBRTtBQUVsQixLQUFDLFNBQVVDLFFBQU87QUFDZCxNQUFBQSxPQUFNLE1BQU0sSUFBSTtBQUNoQixNQUFBQSxPQUFNLFFBQVEsSUFBSTtBQUNsQixNQUFBQSxPQUFNLFVBQVUsSUFBSTtBQUNwQixNQUFBQSxPQUFNLFFBQVEsSUFBSTtBQUNsQixNQUFBQSxPQUFNLE1BQU0sSUFBSTtBQUNoQixNQUFBQSxPQUFNLE9BQU8sSUFBSTtBQUNqQixNQUFBQSxPQUFNLE1BQU0sSUFBSTtBQUNoQixNQUFBQSxPQUFNLE1BQU0sSUFBSTtBQUFBLElBQ3BCLEdBQUcsVUFBVSxRQUFRLENBQUMsRUFBRTtBQU94QixLQUFDLFNBQVVDLGdCQUFlO0FBQ3RCLE1BQUFBLGVBQWMsV0FBVyxJQUFJO0FBQzdCLE1BQUFBLGVBQWMsUUFBUSxJQUFJO0FBQzFCLE1BQUFBLGVBQWMsZ0JBQWdCLElBQUk7QUFBQSxJQUN0QyxHQUFHLGtCQUFrQixnQkFBZ0IsQ0FBQyxFQUFFO0FBRXhDLEtBQUMsU0FBVUMsWUFBVztBQUNsQixNQUFBQSxXQUFVLEdBQUcsSUFBSTtBQUNqQixNQUFBQSxXQUFVLFNBQVMsSUFBSTtBQUN2QixNQUFBQSxXQUFVLGdCQUFnQixJQUFJO0FBQzlCLE1BQUFBLFdBQVUsUUFBUSxJQUFJO0FBQ3RCLE1BQUFBLFdBQVUsTUFBTSxJQUFJO0FBQ3BCLE1BQUFBLFdBQVUsU0FBUyxJQUFJO0FBQ3ZCLE1BQUFBLFdBQVUsT0FBTyxJQUFJO0FBQ3JCLE1BQUFBLFdBQVUsR0FBRyxJQUFJO0FBQ2pCLE1BQUFBLFdBQVUsTUFBTSxJQUFJO0FBQ3BCLE1BQUFBLFdBQVUsVUFBVSxJQUFJO0FBQ3hCLE1BQUFBLFdBQVUsU0FBUyxJQUFJO0FBQ3ZCLE1BQUFBLFdBQVUsS0FBSyxJQUFJO0FBQ25CLE1BQUFBLFdBQVUsWUFBWSxJQUFJO0FBQzFCLE1BQUFBLFdBQVUsTUFBTSxJQUFJO0FBQ3BCLE1BQUFBLFdBQVUsSUFBSSxJQUFJO0FBQ2xCLE1BQUFBLFdBQVUsUUFBUSxJQUFJO0FBQ3RCLE1BQUFBLFdBQVUsU0FBUyxJQUFJO0FBQ3ZCLE1BQUFBLFdBQVUsUUFBUSxJQUFJO0FBQ3RCLE1BQUFBLFdBQVUsTUFBTSxJQUFJO0FBQ3BCLE1BQUFBLFdBQVUsS0FBSyxJQUFJO0FBQ25CLE1BQUFBLFdBQVUsVUFBVSxJQUFJO0FBQ3hCLE1BQUFBLFdBQVUsSUFBSSxJQUFJO0FBQ2xCLE1BQUFBLFdBQVUsTUFBTSxJQUFJO0FBQ3BCLE1BQUFBLFdBQVUsU0FBUyxJQUFJO0FBQ3ZCLE1BQUFBLFdBQVUsUUFBUSxJQUFJO0FBQ3RCLE1BQUFBLFdBQVUsS0FBSyxJQUFJO0FBQ25CLE1BQUFBLFdBQVUsS0FBSyxJQUFJO0FBQ25CLE1BQUFBLFdBQVUsSUFBSSxJQUFJO0FBQ2xCLE1BQUFBLFdBQVUsSUFBSSxJQUFJO0FBQ2xCLE1BQUFBLFdBQVUsSUFBSSxJQUFJO0FBQ2xCLE1BQUFBLFdBQVUsT0FBTyxJQUFJO0FBQ3JCLE1BQUFBLFdBQVUsVUFBVSxJQUFJO0FBQ3hCLE1BQUFBLFdBQVUsWUFBWSxJQUFJO0FBQzFCLE1BQUFBLFdBQVUsUUFBUSxJQUFJO0FBQ3RCLE1BQUFBLFdBQVUsTUFBTSxJQUFJO0FBQ3BCLE1BQUFBLFdBQVUsUUFBUSxJQUFJO0FBQ3RCLE1BQUFBLFdBQVUsZ0JBQWdCLElBQUk7QUFDOUIsTUFBQUEsV0FBVSxNQUFNLElBQUk7QUFDcEIsTUFBQUEsV0FBVSxPQUFPLElBQUk7QUFDckIsTUFBQUEsV0FBVSxVQUFVLElBQUk7QUFDeEIsTUFBQUEsV0FBVSxJQUFJLElBQUk7QUFDbEIsTUFBQUEsV0FBVSxJQUFJLElBQUk7QUFDbEIsTUFBQUEsV0FBVSxJQUFJLElBQUk7QUFDbEIsTUFBQUEsV0FBVSxJQUFJLElBQUk7QUFDbEIsTUFBQUEsV0FBVSxJQUFJLElBQUk7QUFDbEIsTUFBQUEsV0FBVSxJQUFJLElBQUk7QUFDbEIsTUFBQUEsV0FBVSxNQUFNLElBQUk7QUFDcEIsTUFBQUEsV0FBVSxRQUFRLElBQUk7QUFDdEIsTUFBQUEsV0FBVSxRQUFRLElBQUk7QUFDdEIsTUFBQUEsV0FBVSxJQUFJLElBQUk7QUFDbEIsTUFBQUEsV0FBVSxNQUFNLElBQUk7QUFDcEIsTUFBQUEsV0FBVSxHQUFHLElBQUk7QUFDakIsTUFBQUEsV0FBVSxLQUFLLElBQUk7QUFDbkIsTUFBQUEsV0FBVSxPQUFPLElBQUk7QUFDckIsTUFBQUEsV0FBVSxPQUFPLElBQUk7QUFDckIsTUFBQUEsV0FBVSxRQUFRLElBQUk7QUFDdEIsTUFBQUEsV0FBVSxRQUFRLElBQUk7QUFDdEIsTUFBQUEsV0FBVSxPQUFPLElBQUk7QUFDckIsTUFBQUEsV0FBVSxJQUFJLElBQUk7QUFDbEIsTUFBQUEsV0FBVSxNQUFNLElBQUk7QUFDcEIsTUFBQUEsV0FBVSxTQUFTLElBQUk7QUFDdkIsTUFBQUEsV0FBVSxNQUFNLElBQUk7QUFDcEIsTUFBQUEsV0FBVSxZQUFZLElBQUk7QUFDMUIsTUFBQUEsV0FBVSxTQUFTLElBQUk7QUFDdkIsTUFBQUEsV0FBVSxNQUFNLElBQUk7QUFDcEIsTUFBQUEsV0FBVSxNQUFNLElBQUk7QUFDcEIsTUFBQUEsV0FBVSxNQUFNLElBQUk7QUFDcEIsTUFBQUEsV0FBVSxRQUFRLElBQUk7QUFDdEIsTUFBQUEsV0FBVSxJQUFJLElBQUk7QUFDbEIsTUFBQUEsV0FBVSxJQUFJLElBQUk7QUFDbEIsTUFBQUEsV0FBVSxJQUFJLElBQUk7QUFDbEIsTUFBQUEsV0FBVSxJQUFJLElBQUk7QUFDbEIsTUFBQUEsV0FBVSxPQUFPLElBQUk7QUFDckIsTUFBQUEsV0FBVSxLQUFLLElBQUk7QUFDbkIsTUFBQUEsV0FBVSxNQUFNLElBQUk7QUFDcEIsTUFBQUEsV0FBVSxVQUFVLElBQUk7QUFDeEIsTUFBQUEsV0FBVSxTQUFTLElBQUk7QUFDdkIsTUFBQUEsV0FBVSxVQUFVLElBQUk7QUFDeEIsTUFBQUEsV0FBVSxRQUFRLElBQUk7QUFDdEIsTUFBQUEsV0FBVSxJQUFJLElBQUk7QUFDbEIsTUFBQUEsV0FBVSxVQUFVLElBQUk7QUFDeEIsTUFBQUEsV0FBVSxRQUFRLElBQUk7QUFDdEIsTUFBQUEsV0FBVSxHQUFHLElBQUk7QUFDakIsTUFBQUEsV0FBVSxPQUFPLElBQUk7QUFDckIsTUFBQUEsV0FBVSxXQUFXLElBQUk7QUFDekIsTUFBQUEsV0FBVSxLQUFLLElBQUk7QUFDbkIsTUFBQUEsV0FBVSxJQUFJLElBQUk7QUFDbEIsTUFBQUEsV0FBVSxJQUFJLElBQUk7QUFDbEIsTUFBQUEsV0FBVSxJQUFJLElBQUk7QUFDbEIsTUFBQUEsV0FBVSxLQUFLLElBQUk7QUFDbkIsTUFBQUEsV0FBVSxNQUFNLElBQUk7QUFDcEIsTUFBQUEsV0FBVSxHQUFHLElBQUk7QUFDakIsTUFBQUEsV0FBVSxRQUFRLElBQUk7QUFDdEIsTUFBQUEsV0FBVSxRQUFRLElBQUk7QUFDdEIsTUFBQUEsV0FBVSxTQUFTLElBQUk7QUFDdkIsTUFBQUEsV0FBVSxRQUFRLElBQUk7QUFDdEIsTUFBQUEsV0FBVSxRQUFRLElBQUk7QUFDdEIsTUFBQUEsV0FBVSxPQUFPLElBQUk7QUFDckIsTUFBQUEsV0FBVSxNQUFNLElBQUk7QUFDcEIsTUFBQUEsV0FBVSxRQUFRLElBQUk7QUFDdEIsTUFBQUEsV0FBVSxRQUFRLElBQUk7QUFDdEIsTUFBQUEsV0FBVSxPQUFPLElBQUk7QUFDckIsTUFBQUEsV0FBVSxLQUFLLElBQUk7QUFDbkIsTUFBQUEsV0FBVSxTQUFTLElBQUk7QUFDdkIsTUFBQUEsV0FBVSxLQUFLLElBQUk7QUFDbkIsTUFBQUEsV0FBVSxPQUFPLElBQUk7QUFDckIsTUFBQUEsV0FBVSxPQUFPLElBQUk7QUFDckIsTUFBQUEsV0FBVSxVQUFVLElBQUk7QUFDeEIsTUFBQUEsV0FBVSxVQUFVLElBQUk7QUFDeEIsTUFBQUEsV0FBVSxPQUFPLElBQUk7QUFDckIsTUFBQUEsV0FBVSxJQUFJLElBQUk7QUFDbEIsTUFBQUEsV0FBVSxJQUFJLElBQUk7QUFDbEIsTUFBQUEsV0FBVSxPQUFPLElBQUk7QUFDckIsTUFBQUEsV0FBVSxPQUFPLElBQUk7QUFDckIsTUFBQUEsV0FBVSxJQUFJLElBQUk7QUFDbEIsTUFBQUEsV0FBVSxPQUFPLElBQUk7QUFDckIsTUFBQUEsV0FBVSxJQUFJLElBQUk7QUFDbEIsTUFBQUEsV0FBVSxHQUFHLElBQUk7QUFDakIsTUFBQUEsV0FBVSxJQUFJLElBQUk7QUFDbEIsTUFBQUEsV0FBVSxLQUFLLElBQUk7QUFDbkIsTUFBQUEsV0FBVSxLQUFLLElBQUk7QUFDbkIsTUFBQUEsV0FBVSxLQUFLLElBQUk7QUFDbkIsTUFBQUEsV0FBVSxLQUFLLElBQUk7QUFBQSxJQUN2QixHQUFHLGNBQWMsWUFBWSxDQUFDLEVBQUU7QUFPaEMsS0FBQyxTQUFVQyxTQUFRO0FBQ2YsTUFBQUEsUUFBT0EsUUFBTyxTQUFTLElBQUksQ0FBQyxJQUFJO0FBQ2hDLE1BQUFBLFFBQU9BLFFBQU8sR0FBRyxJQUFJLENBQUMsSUFBSTtBQUMxQixNQUFBQSxRQUFPQSxRQUFPLFNBQVMsSUFBSSxDQUFDLElBQUk7QUFDaEMsTUFBQUEsUUFBT0EsUUFBTyxnQkFBZ0IsSUFBSSxDQUFDLElBQUk7QUFDdkMsTUFBQUEsUUFBT0EsUUFBTyxRQUFRLElBQUksQ0FBQyxJQUFJO0FBQy9CLE1BQUFBLFFBQU9BLFFBQU8sTUFBTSxJQUFJLENBQUMsSUFBSTtBQUM3QixNQUFBQSxRQUFPQSxRQUFPLFNBQVMsSUFBSSxDQUFDLElBQUk7QUFDaEMsTUFBQUEsUUFBT0EsUUFBTyxPQUFPLElBQUksQ0FBQyxJQUFJO0FBQzlCLE1BQUFBLFFBQU9BLFFBQU8sR0FBRyxJQUFJLENBQUMsSUFBSTtBQUMxQixNQUFBQSxRQUFPQSxRQUFPLE1BQU0sSUFBSSxDQUFDLElBQUk7QUFDN0IsTUFBQUEsUUFBT0EsUUFBTyxVQUFVLElBQUksRUFBRSxJQUFJO0FBQ2xDLE1BQUFBLFFBQU9BLFFBQU8sU0FBUyxJQUFJLEVBQUUsSUFBSTtBQUNqQyxNQUFBQSxRQUFPQSxRQUFPLEtBQUssSUFBSSxFQUFFLElBQUk7QUFDN0IsTUFBQUEsUUFBT0EsUUFBTyxZQUFZLElBQUksRUFBRSxJQUFJO0FBQ3BDLE1BQUFBLFFBQU9BLFFBQU8sTUFBTSxJQUFJLEVBQUUsSUFBSTtBQUM5QixNQUFBQSxRQUFPQSxRQUFPLElBQUksSUFBSSxFQUFFLElBQUk7QUFDNUIsTUFBQUEsUUFBT0EsUUFBTyxRQUFRLElBQUksRUFBRSxJQUFJO0FBQ2hDLE1BQUFBLFFBQU9BLFFBQU8sU0FBUyxJQUFJLEVBQUUsSUFBSTtBQUNqQyxNQUFBQSxRQUFPQSxRQUFPLFFBQVEsSUFBSSxFQUFFLElBQUk7QUFDaEMsTUFBQUEsUUFBT0EsUUFBTyxNQUFNLElBQUksRUFBRSxJQUFJO0FBQzlCLE1BQUFBLFFBQU9BLFFBQU8sS0FBSyxJQUFJLEVBQUUsSUFBSTtBQUM3QixNQUFBQSxRQUFPQSxRQUFPLFVBQVUsSUFBSSxFQUFFLElBQUk7QUFDbEMsTUFBQUEsUUFBT0EsUUFBTyxJQUFJLElBQUksRUFBRSxJQUFJO0FBQzVCLE1BQUFBLFFBQU9BLFFBQU8sTUFBTSxJQUFJLEVBQUUsSUFBSTtBQUM5QixNQUFBQSxRQUFPQSxRQUFPLFNBQVMsSUFBSSxFQUFFLElBQUk7QUFDakMsTUFBQUEsUUFBT0EsUUFBTyxRQUFRLElBQUksRUFBRSxJQUFJO0FBQ2hDLE1BQUFBLFFBQU9BLFFBQU8sS0FBSyxJQUFJLEVBQUUsSUFBSTtBQUM3QixNQUFBQSxRQUFPQSxRQUFPLEtBQUssSUFBSSxFQUFFLElBQUk7QUFDN0IsTUFBQUEsUUFBT0EsUUFBTyxJQUFJLElBQUksRUFBRSxJQUFJO0FBQzVCLE1BQUFBLFFBQU9BLFFBQU8sSUFBSSxJQUFJLEVBQUUsSUFBSTtBQUM1QixNQUFBQSxRQUFPQSxRQUFPLElBQUksSUFBSSxFQUFFLElBQUk7QUFDNUIsTUFBQUEsUUFBT0EsUUFBTyxPQUFPLElBQUksRUFBRSxJQUFJO0FBQy9CLE1BQUFBLFFBQU9BLFFBQU8sVUFBVSxJQUFJLEVBQUUsSUFBSTtBQUNsQyxN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SUFBSSxPQUFPLEVBQUU7QUFBQSxNQUN4QixDQUFDLFVBQVUsUUFBUSxPQUFPLE1BQU07QUFBQSxNQUNoQyxDQUFDLFVBQVUsU0FBUyxPQUFPLE9BQU87QUFBQSxNQUNsQyxDQUFDLFVBQVUsUUFBUSxPQUFPLE1BQU07QUFBQSxNQUNoQyxDQUFDLFVBQVUsTUFBTSxPQUFPLElBQUk7QUFBQSxNQUM1QixDQUFDLFVBQVUsS0FBSyxPQUFPLEdBQUc7QUFBQSxNQUMxQixDQUFDLFVBQVUsVUFBVSxPQUFPLFFBQVE7QUFBQSxNQUNwQyxDQUFDLFVBQVUsSUFBSSxPQUFPLEVBQUU7QUFBQSxNQUN4QixDQUFDLFVBQVUsTUFBTSxPQUFPLElBQUk7QUFBQSxNQUM1QixDQUFDLFVBQVUsU0FBUyxPQUFPLE9BQU87QUFBQSxNQUNsQyxDQUFDLFVBQVUsUUFBUSxPQUFPLE1BQU07QUFBQSxNQUNoQyxDQUFDLFVBQVUsS0FBSyxPQUFPLEdBQUc7QUFBQSxNQUMxQixDQUFDLFVBQVUsS0FBSyxPQUFPLEdBQUc7QUFBQSxNQUMxQixDQUFDLFVBQVUsSUFBSSxPQUFPLEVBQUU7QUFBQSxNQUN4QixDQUFDLFVBQVUsSUFBSSxPQUFPLEVBQUU7QUFBQSxNQUN4QixDQUFDLFVBQVUsSUFBSSxPQUFPLEVBQUU7QUFBQSxNQUN4QixDQUFDLFVBQVUsT0FBTyxPQUFPLEtBQUs7QUFBQSxNQUM5QixDQUFDLFVBQVUsVUFBVSxPQUFPLFFBQVE7QUFBQSxNQUNwQyxDQUFDLFVBQVUsWUFBWSxPQUFPLFVBQVU7QUFBQSxNQUN4QyxDQUFDLFVBQVUsUUFBUSxPQUFPLE1BQU07QUFBQSxNQUNoQyxDQUFDLFVBQVUsTUFBTSxPQUFPLElBQUk7QUFBQSxNQUM1QixDQUFDLFVBQVUsUUFBUSxPQUFPLE1BQU07QUFBQSxNQUNoQyxDQUFDLFVBQVUsZ0JBQWdCLE9BQU8sY0FBYztBQUFBLE1BQ2hELENBQUMsVUFBVSxNQUFNLE9BQU8sSUFBSTtBQUFBLE1BQzVCLENBQUMsVUFBVSxPQUFPLE9BQU8sS0FBSztBQUFBLE1BQzlCLENBQUMsVUFBVSxVQUFVLE9BQU8sUUFBUTtBQUFBLE1BQ3BDLENBQUMsVUFBVSxJQUFJLE9BQU8sRUFBRTtBQUFBLE1BQ3hCLENBQUMsVUFBVSxJQUFJLE9BQU8sRUFBRTtBQUFBLE1BQ3hCLENBQUMsVUFBVSxJQUFJLE9BQU8sRUFBRTtBQUFBLE1BQ3hCLENBQUMsVUFBVSxJQUFJLE9BQU8sRUFBRTtBQUFBLE1BQ3hCLENBQUMsVUFBVSxJQUFJLE9BQU8sRUFBRTtBQUFBLE1BQ3hCLENBQUMsVUFBVSxJQUFJLE9BQU8sRUFBRTtBQUFBLE1BQ3hCLENBQUMsVUFBVSxNQUFNLE9BQU8sSUFBSTtBQUFBLE1BQzVCLENBQUMsVUFBVSxRQUFRLE9BQU8sTUFBTTtBQUFBLE1BQ2hDLENBQUMsVUFBVSxRQUFRLE9BQU8sTUFBTTtBQUFBLE1BQ2hDLENBQUMsVUFBVSxJQUFJLE9BQU8sRUFBRTtBQUFBLE1BQ3hCLENBQUMsVUFBVSxNQUFNLE9BQU8sSUFBSTtBQUFBLE1BQzVCLENBQUMsVUFBVSxHQUFHLE9BQU8sQ0FBQztBQUFBLE1BQ3RCLENBQUMsVUFBVSxLQUFLLE9BQU8sR0FBRztBQUFBLE1BQzFCLENBQUMsVUFBVSxPQUFPLE9BQU8sS0FBSztBQUFBLE1BQzlCLENBQUMsVUFBVSxPQUFPLE9BQU8sS0FBSztBQUFBLE1BQzlCLENBQUMsVUFBVSxRQUFRLE9BQU8sTUFBTTtBQUFBLE1BQ2hDLENBQUMsVUFBVSxRQUFRLE9BQU8sTUFBTTtBQUFBLE1BQ2hDLENBQUMsVUFBVSxPQUFPLE9BQU8sS0FBSztBQUFBLE1BQzlCLENBQUMsVUFBVSxJQUFJLE9BQU8sRUFBRTtBQUFBLE1BQ3hCLENBQUMsVUFBVSxNQUFNLE9BQU8sSUFBSTtBQUFBLE1BQzVCLENBQUMsVUFBVSxTQUFTLE9BQU8sT0FBTztBQUFBLE1BQ2xDLENBQUMsVUFBVSxNQUFNLE9BQU8sSUFBSTtBQUFBLE1BQzVCLENBQUMsVUFBVSxZQUFZLE9BQU8sVUFBVTtBQUFBLE1BQ3hDLENBQUMsVUFBVSxTQUFTLE9BQU8sT0FBTztBQUFBLE1BQ2xDLENBQUMsVUFBVSxNQUFNLE9BQU8sSUFBSTtBQUFBLE1BQzVCLENBQUMsVUFBVSxNQUFNLE9BQU8sSUFBSTtBQUFBLE1BQzVCLENBQUMsVUFBVSxNQUFNLE9BQU8sSUFBSTtBQUFBLE1BQzVCLENBQUMsVUFBVSxRQUFRLE9BQU8sTUFBTTtBQUFBLE1BQ2hDLENBQUMsVUFBVSxJQUFJLE9BQU8sRUFBRTtBQUFBLE1BQ3hCLENBQUMsVUFBVSxJQUFJLE9BQU8sRUFBRTtBQUFBLE1BQ3hCLENBQUMsVUFBVSxJQUFJLE9BQU8sRUFBRTtBQUFBLE1BQ3hCLENBQUMsVUFBVSxJQUFJLE9BQU8sRUFBRTtBQUFBLE1BQ3hCLENBQUMsVUFBVSxPQUFPLE9BQU8sS0FBSztBQUFBLE1BQzlCLENBQUMsVUFBVSxLQUFLLE9BQU8sR0FBRztBQUFBLE1BQzFCLENBQUMsVUFBVSxNQUFNLE9BQU8sSUFBSTtBQUFBLE1BQzVCLENBQUMsVUFBVSxVQUFVLE9BQU8sUUFBUTtBQUFBLE1BQ3BDLENBQUMsVUFBVSxTQUFTLE9BQU8sT0FBTztBQUFBLE1BQ2xDLENBQUMsVUFBVSxVQUFVLE9BQU8sUUFBUTtBQUFBLE1BQ3BDLENBQUMsVUFBVSxRQUFRLE9BQU8sTUFBTTtBQUFBLE1BQ2hDLENBQUMsVUFBVSxJQUFJLE9BQU8sRUFBRTtBQUFBLE1BQ3hCLENBQUMsVUFBVSxVQUFVLE9BQU8sUUFBUTtBQUFBLE1BQ3BDLENBQUMsVUFBVSxRQUFRLE9BQU8sTUFBTTtBQUFBLE1BQ2hDLENBQUMsVUFBVSxHQUFHLE9BQU8sQ0FBQztBQUFBLE1BQ3RCLENBQUMsVUFBVSxPQUFPLE9BQU8sS0FBSztBQUFBLE1BQzlCLENBQUMsVUFBVSxXQUFXLE9BQU8sU0FBUztBQUFBLE1BQ3RDLENBQUMsVUFBVSxLQUFLLE9BQU8sR0FBRztBQUFBLE1BQzFCLENBQUMsVUFBVSxJQUFJLE9BQU8sRUFBRTtBQUFBLE1BQ3hCLENBQUMsVUFBVSxJQUFJLE9BQU8sRUFBRTtBQUFBLE1BQ3hCLENBQUMsVUFBVSxJQUFJLE9BQU8sRUFBRTtBQUFBLE1BQ3hCLENBQUMsVUFBVSxLQUFLLE9BQU8sR0FBRztBQUFBLE1BQzFCLENBQUMsVUFBVSxNQUFNLE9BQU8sSUFBSTtBQUFBLE1BQzVCLENBQUMsVUFBVSxHQUFHLE9BQU8sQ0FBQztBQUFBLE1BQ3RCLENBQUMsVUFBVSxRQUFRLE9BQU8sTUFBTTtBQUFBLE1BQ2hDLENBQUMsVUFBVSxRQUFRLE9BQU8sTUFBTTtBQUFBLE1BQ2hDLENBQUMsVUFBVSxTQUFTLE9BQU8sT0FBTztBQUFBLE1BQ2xDLENBQUMsVUFBVSxRQUFRLE9BQU8sTUFBTTtBQUFBLE1BQ2hDLENBQUMsVUFBVSxRQUFRLE9BQU8sTUFBTTtBQUFBLE1BQ2hDLENBQUMsVUFBVSxPQUFPLE9BQU8sS0FBSztBQUFBLE1BQzlCLENBQUMsVUFBVSxNQUFNLE9BQU8sSUFBSTtBQUFBLE1BQzVCLENBQUMsVUFBVSxRQUFRLE9BQU8sTUFBTTtBQUFBLE1BQ2hDLENBQUMsVUFBVSxRQUFRLE9BQU8sTUFBTTtBQUFBLE1BQ2hDLENBQUMsVUFBVSxPQUFPLE9BQU8sS0FBSztBQUFBLE1BQzlCLENBQUMsVUFBVSxLQUFLLE9BQU8sR0FBRztBQUFBLE1BQzFCLENBQUMsVUFBVSxTQUFTLE9BQU8sT0FBTztBQUFBLE1BQ2xDLENBQUMsVUFBVSxLQUFLLE9BQU8sR0FBRztBQUFBLE1BQzFCLENBQUMsVUFBVSxPQUFPLE9BQU8sS0FBSztBQUFBLE1BQzlCLENBQUMsVUFBVSxPQUFPLE9BQU8sS0FBSztBQUFBLE1BQzlCLENBQUMsVUFBVSxVQUFVLE9BQU8sUUFBUTtBQUFBLE1BQ3BDLENBQUMsVUFBVSxVQUFVLE9BQU8sUUFBUTtBQUFBLE1BQ3BDLENBQUMsVUFBVSxPQUFPLE9BQU8sS0FBSztBQUFBLE1BQzlCLENBQUMsVUFBVSxJQUFJLE9BQU8sRUFBRTtBQUFBLE1BQ3hCLENBQUMsVUFBVSxJQUFJLE9BQU8sRUFBRTtBQUFBLE1BQ3hCLENBQUMsVUFBVSxPQUFPLE9BQU8sS0FBSztBQUFBLE1BQzlCLENBQUMsVUFBVSxPQUFPLE9BQU8sS0FBSztBQUFBLE1BQzlCLENBQUMsVUFBVSxJQUFJLE9BQU8sRUFBRTtBQUFBLE1BQ3hCLENBQUMsVUFBVSxPQUFPLE9BQU8sS0FBSztBQUFBLE1BQzlCLENBQUMsVUFBVSxJQUFJLE9BQU8sRUFBRTtBQUFBLE1BQ3hCLENBQUMsVUFBVSxHQUFHLE9BQU8sQ0FBQztBQUFBLE1BQ3RCLENBQUMsVUFBVSxJQUFJLE9BQU8sRUFBRTtBQUFBLE1BQ3hCLENBQUMsVUFBVSxLQUFLLE9BQU8sR0FBRztBQUFBLE1BQzFCLENBQUMsVUFBVSxLQUFLLE9BQU8sR0FBRztBQUFBLE1BQzFCLENBQUMsVUFBVSxLQUFLLE9BQU8sR0FBRztBQUFBLE1BQzFCLENBQUMsVUFBVSxLQUFLLE9BQU8sR0FBRztBQUFBLElBQzlCLENBQUM7QUFLRCxJQUFNLElBQUk7QUFDSCxJQUFNLG1CQUFtQjtBQUFBLE1BQzVCLENBQUMsR0FBRyxJQUFJLEdBQUcsb0JBQUksSUFBSTtBQUFBLFFBQ2YsRUFBRTtBQUFBLFFBQ0YsRUFBRTtBQUFBLFFBQ0YsRUFBRTtBQUFBLFFBQ0YsRUFBRTtBQUFBLFFBQ0YsRUFBRTtBQUFBLFFBQ0YsRUFBRTtBQUFBLFFBQ0YsRUFBRTtBQUFBLFFBQ0YsRUFBRTtBQUFBLFFBQ0YsRUFBRTtBQUFBLFFBQ0YsRUFBRTtBQUFBLFFBQ0YsRUFBRTtBQUFBLFFBQ0YsRUFBRTtBQUFBLFFBQ0YsRUFBRTtBQUFBLFFBQ0YsRUFBRTtBQUFBLFFBQ0YsRUFBRTtBQUFBLFFBQ0YsRUFBRTtBQUFBLFFBQ0YsRUFBRTtBQUFBLFFBQ0YsRUFBRTtBQUFBLFFBQ0YsRUFBRTtBQUFBLFFBQ0YsRUFBRTtBQUFBLFFBQ0YsRUFBRTtBQUFBLFFBQ0YsRUFBRTtBQUFBLFFBQ0YsRUFBRTtBQUFBLFFBQ0YsRUFBRTtBQUFBLFFBQ0YsRUFBRTtBQUFBLFFBQ0YsRUFBRTtBQUFBLFFBQ0YsRUFBRTtBQUFBLFFBQ0YsRUFBRTtBQUFBLFFBQ0YsRUFBRTtBQUFBLFFBQ0YsRUFBRTtBQUFBLFFBQ0YsRUFBRTtBQUFBLFFBQ0YsRUFBRTtBQUFBLFFBQ0YsRUFBRTtBQUFBLFFBQ0YsRUFBRTtBQUFBLFFBQ0YsRUFBRTtBQUFBLFFBQ0YsRUFBRTtBQUFBLFFBQ0YsRUFBRTtBQUFBLFFBQ0YsRUFBRTtBQUFBLFFBQ0YsRUFBRTtBQUFBLFFBQ0YsRUFBRTtBQUFBLFFBQ0YsRUFBRTtBQUFBLFFBQ0YsRUFBRTtBQUFBLFFBQ0YsRUFBRTtBQUFBLFFBQ0YsRUFBRTtBQUFBLFFBQ0YsRUFBRTtBQUFBLFFBQ0YsRUFBRTtBQUFBLFFBQ0YsRUFBRTtBQUFBLFFBQ0YsRUFBRTtBQUFBLFFBQ0YsRUFBRTtBQUFBLFFBQ0YsRUFBRTtBQUFBLFFBQ0YsRUFBRTtBQUFBLFFBQ0YsRUFBRTtBQUFBLFFBQ0YsRUFBRTtBQUFBLFFBQ0YsRUFBRTtBQUFBLFFBQ0YsRUFBRTtBQUFBLFFBQ0YsRUFBRTtBQUFBLFFBQ0YsRUFBRTtBQUFBLFFBQ0YsRUFBRTtBQUFBLFFBQ0YsRUFBRTtBQUFBLFFBQ0YsRUFBRTtBQUFBLFFBQ0YsRUFBRTtBQUFBLFFBQ0YsRUFBRTtBQUFBLFFBQ0YsRUFBRTtBQUFBLFFBQ0YsRUFBRTtBQUFBLFFBQ0YsRUFBRTtBQUFBLFFBQ0YsRUFBRTtBQUFBLFFBQ0YsRUFBRTtBQUFBLFFBQ0YsRUFBRTtBQUFBLFFBQ0YsRUFBRTtBQUFBLFFBQ0YsRUFBRTtBQUFBLFFBQ0YsRUFBRTtBQUFBLFFBQ0YsRUFBRTtBQUFBLFFBQ0YsRUFBRTtBQUFBLFFBQ0YsRUFBRTtBQUFBLFFBQ0YsRUFBRTtBQUFBLFFBQ0YsRUFBRTtBQUFBLFFBQ0YsRUFBRTtBQUFBLFFBQ0YsRUFBRTtBQUFBLFFBQ0YsRUFBRTtBQUFBLFFBQ0YsRUFBRTtBQUFBLFFBQ0YsRUFBRTtBQUFBLE1BQ04sQ0FBQztBQUFBLE1BQ0QsQ0FBQyxHQUFHLE1BQU0sR0FBRyxvQkFBSSxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLGNBQWMsQ0FBQztBQUFBLE1BQ3hFLENBQUMsR0FBRyxHQUFHLEdBQUcsb0JBQUksSUFBSSxDQUFDLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLElBQUksQ0FBQztBQUFBLE1BQ3JELENBQUMsR0FBRyxLQUFLLEdBQUcsb0JBQUksSUFBSTtBQUFBLE1BQ3BCLENBQUMsR0FBRyxHQUFHLEdBQUcsb0JBQUksSUFBSTtBQUFBLE1BQ2xCLENBQUMsR0FBRyxLQUFLLEdBQUcsb0JBQUksSUFBSTtBQUFBLElBQ3hCO0FBQ08sSUFBTSxtQkFBbUIsb0JBQUksSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxFQUFFLENBQUM7QUFDNUUsSUFBTSxpQkFBaUIsb0JBQUksSUFBSTtBQUFBLE1BQzNCLFVBQVU7QUFBQSxNQUNWLFVBQVU7QUFBQSxNQUNWLFVBQVU7QUFBQSxNQUNWLFVBQVU7QUFBQSxNQUNWLFVBQVU7QUFBQSxNQUNWLFVBQVU7QUFBQSxNQUNWLFVBQVU7QUFBQSxJQUNkLENBQUM7QUFBQTtBQUFBOzs7QUN2YUQsU0FBUyxhQUFhLElBQUk7QUFDdEIsU0FBTyxNQUFNLFlBQUUsV0FBVyxNQUFNLFlBQUU7QUFDdEM7QUFDQSxTQUFTLGFBQWEsSUFBSTtBQUN0QixTQUFPLE1BQU0sWUFBRSxtQkFBbUIsTUFBTSxZQUFFO0FBQzlDO0FBQ0EsU0FBUyxhQUFhLElBQUk7QUFDdEIsU0FBTyxNQUFNLFlBQUUsaUJBQWlCLE1BQU0sWUFBRTtBQUM1QztBQUNBLFNBQVMsY0FBYyxJQUFJO0FBQ3ZCLFNBQU8sYUFBYSxFQUFFLEtBQUssYUFBYSxFQUFFO0FBQzlDO0FBQ0EsU0FBU0MscUJBQW9CLElBQUk7QUFDN0IsU0FBTyxjQUFjLEVBQUUsS0FBSyxhQUFhLEVBQUU7QUFDL0M7QUFDQSxTQUFTLGFBQWEsSUFBSTtBQUN0QixTQUFPLEtBQUs7QUFDaEI7QUFDQSxTQUFTLGFBQWEsSUFBSTtBQUN0QixTQUFPLE9BQU8sWUFBRSxTQUFTLE9BQU8sWUFBRSxhQUFhLE9BQU8sWUFBRSxjQUFjLE9BQU8sWUFBRTtBQUNuRjtBQUNBLFNBQVMsb0NBQW9DLElBQUk7QUFDN0MsU0FBTyxhQUFhLEVBQUUsS0FBSyxPQUFPLFlBQUUsV0FBVyxPQUFPLFlBQUU7QUFDNUQ7QUFDQSxTQUFTLHFDQUFxQyxNQUFNO0FBQ2hELE1BQUksU0FBUyxZQUFFLE1BQU07QUFDakIsV0FBTyxJQUFJO0FBQUEsRUFDZixXQUNTLE9BQU8sU0FBUztBQUNyQixXQUFPLElBQUk7QUFBQSxFQUNmLFdBQ1MsWUFBWSxJQUFJLEdBQUc7QUFDeEIsV0FBTyxJQUFJO0FBQUEsRUFDZixXQUNTLHFCQUFxQixJQUFJLEdBQUc7QUFDakMsV0FBTyxJQUFJO0FBQUEsRUFDZixXQUNTLG1CQUFtQixJQUFJLEtBQUssU0FBUyxZQUFFLGlCQUFpQjtBQUM3RCxXQUFPLElBQUk7QUFBQSxFQUNmO0FBQ0EsU0FBTztBQUNYO0FBeklBLElBT0ksT0E2RVMsZUF1REE7QUEzSWI7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBLEtBQUMsU0FBVUMsUUFBTztBQUNkLE1BQUFBLE9BQU1BLE9BQU0sTUFBTSxJQUFJLENBQUMsSUFBSTtBQUMzQixNQUFBQSxPQUFNQSxPQUFNLFFBQVEsSUFBSSxDQUFDLElBQUk7QUFDN0IsTUFBQUEsT0FBTUEsT0FBTSxTQUFTLElBQUksQ0FBQyxJQUFJO0FBQzlCLE1BQUFBLE9BQU1BLE9BQU0sYUFBYSxJQUFJLENBQUMsSUFBSTtBQUNsQyxNQUFBQSxPQUFNQSxPQUFNLFdBQVcsSUFBSSxDQUFDLElBQUk7QUFDaEMsTUFBQUEsT0FBTUEsT0FBTSxVQUFVLElBQUksQ0FBQyxJQUFJO0FBQy9CLE1BQUFBLE9BQU1BLE9BQU0sY0FBYyxJQUFJLENBQUMsSUFBSTtBQUNuQyxNQUFBQSxPQUFNQSxPQUFNLFVBQVUsSUFBSSxDQUFDLElBQUk7QUFDL0IsTUFBQUEsT0FBTUEsT0FBTSx1QkFBdUIsSUFBSSxDQUFDLElBQUk7QUFDNUMsTUFBQUEsT0FBTUEsT0FBTSxxQkFBcUIsSUFBSSxDQUFDLElBQUk7QUFDMUMsTUFBQUEsT0FBTUEsT0FBTSxxQkFBcUIsSUFBSSxFQUFFLElBQUk7QUFDM0MsTUFBQUEsT0FBTUEsT0FBTSx3QkFBd0IsSUFBSSxFQUFFLElBQUk7QUFDOUMsTUFBQUEsT0FBTUEsT0FBTSxzQkFBc0IsSUFBSSxFQUFFLElBQUk7QUFDNUMsTUFBQUEsT0FBTUEsT0FBTSxzQkFBc0IsSUFBSSxFQUFFLElBQUk7QUFDNUMsTUFBQUEsT0FBTUEsT0FBTSw0QkFBNEIsSUFBSSxFQUFFLElBQUk7QUFDbEQsTUFBQUEsT0FBTUEsT0FBTSwwQkFBMEIsSUFBSSxFQUFFLElBQUk7QUFDaEQsTUFBQUEsT0FBTUEsT0FBTSwwQkFBMEIsSUFBSSxFQUFFLElBQUk7QUFDaEQsTUFBQUEsT0FBTUEsT0FBTSwwQkFBMEIsSUFBSSxFQUFFLElBQUk7QUFDaEQsTUFBQUEsT0FBTUEsT0FBTSwrQkFBK0IsSUFBSSxFQUFFLElBQUk7QUFDckQsTUFBQUEsT0FBTUEsT0FBTSxxQkFBcUIsSUFBSSxFQUFFLElBQUk7QUFDM0MsTUFBQUEsT0FBTUEsT0FBTSwwQkFBMEIsSUFBSSxFQUFFLElBQUk7QUFDaEQsTUFBQUEsT0FBTUEsT0FBTSwrQkFBK0IsSUFBSSxFQUFFLElBQUk7QUFDckQsTUFBQUEsT0FBTUEsT0FBTSxvQ0FBb0MsSUFBSSxFQUFFLElBQUk7QUFDMUQsTUFBQUEsT0FBTUEsT0FBTSxrQ0FBa0MsSUFBSSxFQUFFLElBQUk7QUFDeEQsTUFBQUEsT0FBTUEsT0FBTSxrQ0FBa0MsSUFBSSxFQUFFLElBQUk7QUFDeEQsTUFBQUEsT0FBTUEsT0FBTSxpQ0FBaUMsSUFBSSxFQUFFLElBQUk7QUFDdkQsTUFBQUEsT0FBTUEsT0FBTSw0QkFBNEIsSUFBSSxFQUFFLElBQUk7QUFDbEQsTUFBQUEsT0FBTUEsT0FBTSxpQ0FBaUMsSUFBSSxFQUFFLElBQUk7QUFDdkQsTUFBQUEsT0FBTUEsT0FBTSxzQ0FBc0MsSUFBSSxFQUFFLElBQUk7QUFDNUQsTUFBQUEsT0FBTUEsT0FBTSwyQ0FBMkMsSUFBSSxFQUFFLElBQUk7QUFDakUsTUFBQUEsT0FBTUEsT0FBTSwrQkFBK0IsSUFBSSxFQUFFLElBQUk7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QUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxJQUNKLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLFlBQVksR0FBRyxFQUFFLENBQUMsQ0FBQztBQUVyQyxJQUFNLHdCQUF3QixvQkFBSSxJQUFJO0FBQUEsTUFDbEMsT0FBRTtBQUFBLE1BQ0YsT0FBRTtBQUFBLE1BQ0YsT0FBRTtBQUFBLE1BQ0YsT0FBRTtBQUFBLE1BQ0YsT0FBRTtBQUFBLE1BQ0YsT0FBRTtBQUFBLE1BQ0YsT0FBRTtBQUFBLE1BQ0YsT0FBRTtBQUFBLE1BQ0YsT0FBRTtBQUFBLE1BQ0YsT0FBRTtBQUFBLE1BQ0YsT0FBRTtBQUFBLE1BQ0YsT0FBRTtBQUFBLE1BQ0YsT0FBRTtBQUFBLE1BQ0YsT0FBRTtBQUFBLE1BQ0YsT0FBRTtBQUFBLE1BQ0YsT0FBRTtBQUFBLE1BQ0YsT0FBRTtBQUFBLE1BQ0YsT0FBRTtBQUFBLE1BQ0YsT0FBRTtBQUFBLE1BQ0YsT0FBRTtBQUFBLE1BQ0YsT0FBRTtBQUFBLE1BQ0YsT0FBRTtBQUFBLE1BQ0YsT0FBRTtBQUFBLE1BQ0YsT0FBRTtBQUFBLE1BQ0YsT0FBRTtBQUFBLE1BQ0YsT0FBRTtBQUFBLE1BQ0YsT0FBRTtBQUFBLE1BQ0YsT0FBRTtBQUFBLE1BQ0YsT0FBRTtBQUFBLE1BQ0YsT0FBRTtBQUFBLE1BQ0YsT0FBRTtBQUFBLE1BQ0YsT0FBRTtBQUFBLE1BQ0YsT0FBRTtBQUFBLE1BQ0YsT0FBRTtBQUFBLE1B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LE1BQUFBLFdBQUFBLFdBQUEsaUJBQUEsSUFBQSxFQUFBLElBQUE7QUFDQSxNQUFBQSxXQUFBQSxXQUFBLFFBQUEsSUFBQSxFQUFBLElBQUE7QUFDQSxNQUFBQSxXQUFBQSxXQUFBLEtBQUEsSUFBQSxFQUFBLElBQUE7QUFDQSxNQUFBQSxXQUFBQSxXQUFBLGFBQUEsSUFBQSxFQUFBLElBQUE7QUFDQSxNQUFBQSxXQUFBQSxXQUFBLGFBQUEsSUFBQSxFQUFBLElBQUE7QUFDQSxNQUFBQSxXQUFBQSxXQUFBLE1BQUEsSUFBQSxFQUFBLElBQUE7QUFDQSxNQUFBQSxXQUFBQSxXQUFBLE9BQUEsSUFBQSxFQUFBLElBQUE7QUFDQSxNQUFBQSxXQUFBQSxXQUFBLE1BQUEsSUFBQSxFQUFBLElBQUE7QUFDQSxNQUFBQSxXQUFBQSxXQUFBLE1BQUEsSUFBQSxFQUFBLElBQUE7QUFDQSxNQUFBQSxXQUFBQSxXQUFBLE1BQUEsSUFBQSxFQUFBLElBQUE7QUFDQSxNQUFBQSxXQUFBQSxXQUFBLElBQUEsSUFBQSxFQUFBLElBQUE7QUFDQSxNQUFBQSxXQUFBQSxXQUFBLElBQUEsSUFBQSxFQUFBLElBQUE7QUFDQSxNQUFBQSxXQUFBQSxXQUFBLElBQUEsSUFBQSxFQUFBLElBQUE7QUFDQSxNQUFBQSxXQUFBQSxXQUFBLGNBQUEsSUFBQSxFQUFBLElBQUE7QUFDQSxNQUFBQSxXQUFBQSxXQUFBLFFBQUEsSUFBQSxFQUFBLElBQUE7QUFDQSxNQUFBQSxXQUFBQSxXQUFBLFFBQUEsSUFBQSxFQUFBLElBQUE7QUFDQSxNQUFBQSxXQUFBQSxXQUFBLFFBQUEsSUFBQSxFQUFBLElBQUE7QUFDQSxNQUFBQSxXQUFBQSxXQUFBLFFBQUEsSUFBQSxHQUFBLElBQUE7QUFDQSxNQUFBQSxXQUFBQSxXQUFBLFFBQUEsSUFBQSxFQUFBLElBQUE7QUFDQSxNQUFBQSxXQUFBQSxXQUFBLFFBQUEsSUFBQSxHQUFBLElBQUE7QUFDQSxNQUFBQSxXQUFBQSxXQUFBLFFBQUEsSUFBQSxHQUFBLElBQUE7QUFDQSxNQUFBQSxXQUFBQSxXQUFBLHNCQUFBLElBQUEsRUFBQSxJQUFBO0lBQ0osR0E1QldBLGVBQUFBLGFBQVMsQ0FBQSxFQUFBO0FBK0JwQixLQUFBLFNBQVdDLFFBQUs7QUFDWixNQUFBQSxPQUFBQSxPQUFBLE1BQUEsSUFBQSxDQUFBLElBQUE7QUFDQSxNQUFBQSxPQUFBQSxPQUFBLGVBQUEsSUFBQSxDQUFBLElBQUE7QUFDQSxNQUFBQSxPQUFBQSxPQUFBLFdBQUEsSUFBQSxDQUFBLElBQUE7QUFDQSxNQUFBQSxPQUFBQSxPQUFBLGtCQUFBLElBQUEsQ0FBQSxJQUFBO0FBQ0EsTUFBQUEsT0FBQUEsT0FBQSxzQkFBQSxJQUFBLENBQUEsSUFBQTtBQUNBLE1BQUFBLE9BQUFBLE9BQUEsa0JBQUEsSUFBQSxDQUFBLElBQUE7QUFDQSxNQUFBQSxPQUFBQSxPQUFBLHFCQUFBLElBQUEsQ0FBQSxJQUFBO0FBR0EsTUFBQUEsT0FBQUEsT0FBQSxxQkFBQSxJQUFBLENBQUEsSUFBQTtBQUNBLE1BQUFBLE9BQUFBLE9BQUEsaUJBQUEsSUFBQSxDQUFBLElBQUE7QUFDQSxNQUFBQSxPQUFBQSxPQUFBLG9CQUFBLElBQUEsRUFBQSxJQUFBO0FBQ0EsTUFBQUEsT0FBQUEsT0FBQSxzQkFBQSxJQUFBLEVBQUEsSUFBQTtBQUNBLE1BQUFBLE9BQUFBLE9BQUEsb0JBQUEsSUFBQSxFQUFBLElBQUE7QUFDQSxNQUFBQSxPQUFBQSxPQUFBLG9CQUFBLElBQUEsRUFBQSxJQUFBO0FBQ0EsTUFBQUEsT0FBQUEsT0FBQSxvQkFBQSxJQUFBLEVBQUEsSUFBQTtBQUdBLE1BQUFBLE9BQUFBLE9BQUEsbUJBQUEsSUFBQSxFQUFBLElBQUE7QUFDQSxNQUFBQSxPQUFBQSxPQUFBLGVBQUEsSUFBQSxFQUFBLElBQUE7QUFHQSxNQUFBQSxPQUFBQSxPQUFBLHlCQUFBLElBQUEsRUFBQSxJQUFBO0FBR0EsTUFBQUEsT0FBQUEsT0FBQSxlQUFBLElBQUEsRUFBQSxJQUFBO0FBQ0EsTUFBQUEsT0FBQUEsT0FBQSxlQUFBLElBQUEsRUFBQSxJQUFBO0FBQ0EsTUFBQUEs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QUFBQSxNQUVmLE1BQU07QUFBQSxNQUNOLE1BQU07QUFBQSxNQUNOLE1BQU07QUFBQSxNQUNOLE1BQU07QUFBQSxNQUNOLE1BQU07QUFBQSxNQUNOLE1BQU07QUFBQSxNQUNOLE1BQU07QUFBQSxNQUNOLE1BQU07QUFBQSxNQUNOLE1BQU07QUFBQSxNQUNOLE9BQU87QUFBQSxNQUVQLFdBQVc7QUFBQSxNQUNYLFdBQVc7QUFBQSxNQUNYLFlBQVk7QUFBQSxNQUNaLFlBQVk7QUFBQSxNQUNaLFlBQVk7QUFBQSxNQUNaLFlBQVk7QUFBQSxNQUNaLFlBQVk7QUFBQSxNQUNaLFlBQVk7QUFBQSxNQUNaLFlBQVk7QUFBQSxNQUNaLFlBQVk7QUFBQSxNQUNaLFlBQVk7QUFBQSxNQUNaLFlBQVk7QUFBQSxNQUNaLFlBQVk7QUFBQSxNQUNaLFlBQVk7QUFBQSxNQUNaLFlBQVk7QUFBQSxNQUNaLFlBQVk7QUFBQSxNQUNaLFlBQVk7QUFBQSxNQUVaLFNBQVM7QUFBQSxNQUNULFVBQVU7QUFBQSxNQUVWLFlBQVk7QUFBQSxNQUVaLFVBQVU7QUFBQSxNQUNWLFdBQVc7QUFBQSxNQUNYLFdBQVc7QUFBQSxNQUNYLFdBQVc7QUFBQSxNQUVYLFNBQVU7QUFBQSxNQUNWLFVBQVc7QUFBQSxNQUNYLFdBQVk7QUFBQSxNQUNaLFdBQVk7QUFBQSxNQUVaLFVBQVU7QUFBQSxNQUNWLFdBQVc7QUFBQSxNQUVYLFdBQVc7QUFBQSxNQUNYLFlBQVk7QUFBQSxNQUVaLFFBQVE7QUFBQSxNQUNSLFNBQVM7QUFBQSxNQUVULFVBQVU7QUFBQSxNQUNWLFdBQVc7QUFBQSxNQUNYLGFBQWE7QUFBQSxNQUViLFdBQVc7QUFBQSxNQUNYLGVBQWU7QUFBQSxNQUNmLGVBQWU7QUFBQSxNQUVmLFNBQVM7QUFBQSxNQUNULFNBQVM7QUFBQSxNQUNULFNBQVM7QUFBQSxNQUNULFNBQVM7QUFBQSxNQUNULFNBQVM7QUFBQSxNQUVULG9CQUFvQjtBQUFBLE1BQ3BCLGlCQUFpQjtBQUFBLE1BQ2pCLHVCQUF1QjtBQUFBLE1BQ3ZCLFlBQVk7QUFBQSxNQUNaLHNCQUFzQjtBQUFBLE1BQ3RCLFFBQVE7QUFBQSxNQUVSLFFBQVE7QUFBQSxNQUNSLFVBQVU7QUFBQSxNQUNWLFVBQVU7QUFBQSxNQUNWLFdBQVc7QUFBQSxNQUNYLFVBQVU7QUFBQSxNQUNWLFVBQVU7QUFBQSxNQUNWLFVBQVU7QUFBQSxNQUNWLGNBQWM7QUFBQSxNQUVkLFdBQVc7QUFBQSxNQUNYLFNBQVM7QUFBQSxNQUNULFVBQVU7QUFBQSxNQUNWLFdBQVc7QUFBQSxNQUVYLFdBQVc7QUFBQSxNQUNYLFNBQVM7QUFBQSxNQUNULFdBQVc7QUFBQSxNQUVYLGdCQUFnQjtBQUFBLE1BRWhCLFlBQVk7QUFBQSxNQUNaLGFBQWE7QUFBQSxNQUViLFlBQVk7QUFBQSxNQUNaLE1BQU07QUFBQSxNQUVOLHFCQUFxQjtBQUFBLE1BQ3JCLGtCQUFrQjtBQUFBLE1BQ2xCLE1BQU07QUFBQSxNQUVOLGNBQWM7QUFBQSxNQUNkLE1BQU07QUFBQSxNQUNOLFVBQVU7QUFBQSxNQUNWLFdBQVc7QUFBQSxNQUNYLFdBQVc7QUFBQSxNQUVYLE9BQU87QUFBQSxNQUNQLGVBQWU7QUFBQSxJQUNuQjtBQUFBO0FBQUE7OztBQ2pMQTtBQUFBLDZEQUFBQyxVQUFBQyxTQUFBO0FBQUE7QUFHQSxJQUFBQSxRQUFPLFVBQVU7QUFBQSxNQUNmLE9BQU87QUFBQSxNQUNQLE9BQU87QUFBQSxNQUNQLE9BQU87QUFBQSxNQUNQLE9BQU87QUFBQSxNQUNQLE9BQU87QUFBQSxNQUNQLE9BQU87QUFBQSxNQUNQLE9BQU87QUFBQSxNQUNQLE9BQU87QUFBQSxNQUNQLE9BQU87QUFBQSxNQUNQLE9BQU87QUFBQSxNQUNQLE9BQU87QUFBQSxNQUNQLE9BQU87QUFBQSxNQUNQLE9BQU87QUFBQSxNQUNQLE9BQU87QUFBQSxNQUNQLE9BQU87QUFBQSxNQUNQLE9BQU87QUFBQSxNQUNQLE9BQU87QUFBQSxNQUNQLE9BQU87QUFBQSxNQUNQLE9BQU87QUFBQSxNQUNQLFFBQVE7QUFBQSxNQUNSLFFBQVE7QUFBQSxNQUNSLFFBQVE7QUFBQSxNQUNSLFFBQVE7QUFBQSxNQUNSLFFBQVE7QUFBQSxNQUNSLFFBQVE7QUFBQSxNQUNSLFFBQVE7QUFBQSxNQUNSLFFBQVE7QUFBQSxNQUNSLFFBQVE7QUFBQSxNQUNSLFFBQVE7QUFBQSxNQUNSLFFBQVE7QUFBQSxNQUNSLFFBQVE7QUFBQSxNQUNSLFFBQVE7QUFBQSxNQUNSLFFBQVE7QUFBQSxNQUNSLFFBQVE7QUFBQSxNQUNSLFFBQVE7QUFBQSxNQUNSLFFBQVE7QUFBQSxNQUNSLFNBQVM7QUFBQSxNQUNULFNBQVM7QUFBQSxNQUNULFNBQVM7QUFBQSxNQUNULFNBQVM7QUFBQSxNQUNULFNBQVM7QUFBQSxNQUNULFNBQVM7QUFBQSxNQUNULFNBQVM7QUFBQSxNQUNULFNBQVM7QUFBQSxNQUNULFNBQVM7QUFBQSxNQUNULFNBQVM7QUFBQSxNQUNULFNBQVM7QUFBQSxNQUNULFNBQVM7QUFBQSxNQUNULFNBQVM7QUFBQSxNQUNULFNBQVM7QUFBQSxNQUNULFNBQVM7QUFBQSxNQUNULGNBQWM7QUFBQSxRQUNaLFFBQVE7QUFBQSxRQUNSLFNBQVM7QUFBQSxNQUNYO0FBQUEsTUFDQSxVQUFVO0FBQUEsTUFDVixTQUFTO0FBQUEsTUFDVCxlQUFlO0FBQUEsUUFDYixRQUFRO0FBQUEsUUFDUixTQUFTO0FBQUEsTUFDWDtBQUFBLE1BQ0EsV0FBVztBQUFBLE1BQ1gsVUFBVTtBQUFBLE1BQ1YsZUFBZTtBQUFBLFFBQ2IsUUFBUTtBQUFBLFFBQ1IsU0FBUztBQUFBLE1BQ1g7QUFBQSxNQUNBLFdBQVc7QUFBQSxNQUNYLFVBQVU7QUFBQSxNQUNWLGVBQWU7QUFBQSxRQUNiLFFBQVE7QUFBQSxRQUNSLFNBQVM7QUFBQSxNQUNYO0FBQUEsTUFDQSxXQUFXO0FBQUEsTUFDWCxVQUFVO0FBQUEsTUFDVixlQUFlO0FBQUEsUUFDYixRQUFRO0FBQUEsUUFDUixTQUFTO0FBQUEsTUFDWDtBQUFBLE1BQ0EsV0FBVztBQUFBLE1BQ1gsVUFBVTtBQUFBLE1BQ1YsZUFBZTtBQUFBLFFBQ2IsUUFBUTtBQUFBLFFBQ1IsU0FBUztBQUFBLE1BQ1g7QUFBQSxNQUNBLFdBQVc7QUFBQSxNQUNYLFVBQVU7QUFBQSxNQUNWLGVBQWU7QUFBQSxRQUNiLFFBQVE7QUFBQSxRQUNSLFNBQVM7QUFBQSxNQUNYO0FBQUEsTUFDQSxXQUFXO0FBQUEsTUFDWCxVQUFVO0FBQUEsTUFDVixlQUFlO0FBQUEsUUFDYixRQUFRO0FBQUEsUUFDUixTQUFTO0FBQUEsTUFDWDtBQUFBLE1BQ0EsV0FBVztBQUFBLE1BQ1gsVUFBVTtBQUFBLE1BQ1YsZUFBZTtBQUFBLFFBQ2IsUUFBUTtBQUFBLFFBQ1IsU0FBUztBQUFBLE1BQ1g7QUFBQSxNQUNBLFdBQVc7QUFBQSxNQUNYLFVBQVU7QUFBQSxNQUNWLGVBQWU7QUFBQSxRQUNiLFFBQVE7QUFBQSxRQUNSLFNBQVM7QUFBQSxNQUNYO0FBQUEsTUFDQSxXQUFXO0FBQUEsTUFDWCxVQUFVO0FBQUEsTUFDVixZQUFZO0FBQUEsUUFDVixRQUFRO0FBQUEsUUFDUixTQUFTO0FBQUEsTUFDWDtBQUFBLE1BQ0EsV0FBVztBQUFBLE1BQ1gsWUFBWTtBQUFBLFFBQ1YsUUFBUTtBQUFBLFFBQ1IsU0FBUztBQUFBLE1BQ1g7QUFBQSxNQUNBLFdBQVc7QUFBQSxNQUNYLFlBQVk7QUFBQSxRQUNWLFFBQVE7QUFBQSxRQUNSLFNBQVM7QUFBQSxNQUNYO0FBQUEsTUFDQSxXQUFXO0FBQUEsTUFDWCxZQUFZO0FBQUEsUUFDVixRQUFRO0FBQUEsUUFDUixTQUFTO0FBQUEsTUFDWDtBQUFBLE1BQ0EsV0FBVztBQUFBLE1BQ1gsWUFBWTtBQUFBLFFBQ1YsUUFBUTtBQUFBLFFBQ1IsU0FBUztBQUFBLE1BQ1g7QUFBQSxNQUNBLFdBQVc7QUFBQSxNQUNYLFlBQVk7QUFBQSxRQUNWLFFBQVE7QUFBQSxRQUNSLFNBQVM7QUFBQSxNQUNYO0FBQUEsTUFDQSxXQUFXO0FBQUEsTUFDWCxZQUFZO0FBQUEsUUFDVixRQUFRO0FBQUEsUUFDUixTQUFTO0FBQUEsTUFDWDtBQUFBLE1BQ0EsV0FBVztBQUFBLE1BQ1gsWUFBWTtBQUFBLFFBQ1YsUUFBUTtBQUFBLFFBQ1IsU0FBUztBQUFBLE1BQ1g7QUFBQSxNQUNBLFdBQVc7QUFBQSxNQUNYLFlBQVk7QUFBQSxRQUNWLFFBQVE7QUFBQSxRQUNSLFNBQVM7QUFBQSxNQUNYO0FBQUEsTUFDQSxXQUFXO0FBQUEsTUFDWCxhQUFhO0FBQUEsUUFDWCxRQUFRO0FBQUEsUUFDUixTQUFTO0FBQUEsTUFDWDtBQUFBLE1BQ0EsV0FBVztBQUFBLE1BQ1gsYUFBYTtBQUFBLFFBQ1gsUUFBUTtBQUFBLFFBQ1IsU0FBUztBQUFBLE1BQ1g7QUFBQSxNQUNBLFdBQVc7QUFBQSxNQUNYLGFBQWE7QUFBQSxRQUNYLFFBQVE7QUFBQSxRQUNSLFNBQVM7QUFBQSxNQUNYO0FBQUEsTUFDQSxXQUFXO0FBQUEsTUFDWCxhQUFhO0FBQUEsUUFDWCxRQUFRO0FBQUEsUUFDUixTQUFTO0FBQUEsTUFDWDtBQUFBLE1BQ0EsV0FBVztBQUFBLE1BQ1gsYUFBYTtBQUFBLFFBQ1gsUUFBUTtBQUFBLFFBQ1IsU0FBUztBQUFBLE1BQ1g7QUFBQSxNQUNBLFdBQVc7QUFBQSxNQUNYLGFBQWE7QUFBQSxRQUNYLFFBQVE7QUFBQSxRQUNSLFNBQVM7QUFBQSxNQUNYO0FBQUEsTUFDQSxXQUFXO0FBQUEsTUFDWCxTQUFTO0FBQUEsUUFDUCxRQUFRO0FBQUEsUUFDUixTQUFTO0FBQUEsTUFDWDtBQUFBLE1BQ0EsVUFBVTtBQUFBLE1BQ1YsWUFBWTtBQUFBLE1BQ1osU0FBUztBQUFBLFFBQ1AsUUFBUTtBQUFBLFFBQ1IsU0FBUztBQUFBLE1BQ1g7QUFBQSxNQUNBLFVBQVU7QUFBQSxNQUNWLFlBQVk7QUFBQSxNQUNaLFNBQVM7QUFBQSxRQUNQLFFBQVE7QUFBQSxRQUNSLFNBQVM7QUFBQSxNQUNYO0FBQUEsTUFDQSxVQUFVO0FBQUEsTUFDVixZQUFZO0FBQUEsTUFDWixTQUFTO0FBQUEsUUFDUCxRQUFRO0FBQUEsUUFDUixTQUFTO0FBQUEsTUFDWDtBQUFBLE1BQ0EsVUFBVTtBQUFBLE1BQ1YsWUFBWTtBQUFBLE1BQ1osU0FBUztBQUFBLFFBQ1AsUUFBUTtBQUFBLFFBQ1IsU0FBUztBQUFBLE1BQ1g7QUFBQSxNQUNBLFVBQVU7QUFBQSxNQUNWLFlBQVk7QUFBQSxNQUNaLFNBQVM7QUFBQSxRQUNQLFFBQVE7QUFBQSxRQUNSLFNBQVM7QUFBQSxNQUNYO0FBQUEsTUFDQSxVQUFVO0FBQUEsTUFDVixZQUFZO0FBQUEsTUFDWixTQUFTO0FBQUEsUUFDUCxRQUFRO0FBQUEsUUFDUixTQUFTO0FBQUEsTUFDWDtBQUFBLE1BQ0EsVUFBVTtBQUFBLE1BQ1YsWUFBWTtBQUFBLE1BQ1osU0FBUztBQUFBLFFBQ1AsUUFBUTtBQUFBLFFBQ1IsU0FBUztBQUFBLE1BQ1g7QUFBQSxNQUNBLFVBQVU7QUFBQSxNQUNWLFlBQVk7QUFBQSxNQUNaLFNBQVM7QUFBQSxRQUNQLFFBQVE7QUFBQSxRQUNSLFNBQVM7QUFBQSxNQUNYO0FBQUEsTUFDQSxVQUFVO0FBQUEsTUFDVixZQUFZO0FBQUEsTUFDWixTQUFTO0FBQUEsUUFDUCxRQUFRO0FBQUEsUUFDUixTQUFTO0FBQUEsTUFDWDtBQUFBLE1BQ0EsVUFBVTtBQUFBLE1BQ1YsWUFBWTtBQUFBLE1BQ1osU0FBUztBQUFBLFFBQ1AsUUFBUTtBQUFBLFFBQ1IsU0FBUztBQUFBLE1BQ1g7QUFBQSxNQUNBLFVBQVU7QUFBQSxNQUNWLFlBQVk7QUFBQSxNQUNaLFNBQVM7QUFBQSxRQUNQLFFBQVE7QUFBQSxRQUNSLFNBQVM7QUFBQSxNQUNYO0FBQUEsTUFDQSxVQUFVO0FBQUEsTUFDVixZQUFZO0FBQUEsTUFDWixTQUFTO0FBQUEsUUFDUCxRQUFRO0FBQUEsUUFDUixTQUFTO0FBQUEsTUFDWDtBQUFBLE1BQ0EsVUFBVTtBQUFBLE1BQ1YsWUFBWTtBQUFBLE1BQ1osU0FBUztBQUFBLFFBQ1AsUUFBUTtBQUFBLFFBQ1IsU0FBUztBQUFBLE1BQ1g7QUFBQSxNQUNBLFVBQVU7QUFBQSxNQUNWLFlBQVk7QUFBQSxNQUNaLFNBQVM7QUFBQSxRQUNQLFFBQVE7QUFBQSxRQUNSLFNBQVM7QUFBQSxNQUNYO0FBQUEsTUFDQSxVQUFVO0FBQUEsTUFDVixZQUFZO0FBQUEsTUFDWixTQUFTO0FBQUEsUUFDUCxRQUFRO0FBQUEsUUFDUixTQUFTO0FBQUEsTUFDWDtBQUFBLE1BQ0EsVUFBVTtBQUFBLE1BQ1YsWUFBWTtBQUFBLE1BQ1osU0FBUztBQUFBLFFBQ1AsUUFBUTtBQUFBLFFBQ1IsU0FBUztBQUFBLE1BQ1g7QUFBQSxNQUNBLFVBQVU7QUFBQSxNQUNWLFlBQVk7QUFBQSxNQUNaLFNBQVM7QUFBQSxRQUNQLFFBQVE7QUFBQSxRQUNSLFNBQVM7QUFBQSxNQUNYO0FBQUEsTUFDQSxVQUFVO0FBQUEsTUFDVixZQUFZO0FBQUEsTUFDWixVQUFVO0FBQUEsUUFDUixRQUFRO0FBQUEsUUFDUixTQUFTO0FBQUEsTUFDWDtBQUFBLE1BQ0EsV0FBVztBQUFBLE1BQ1gsYUFBYTtBQUFBLE1BQ2IsVUFBVTtBQUFBLFFBQ1IsUUFBUTtBQUFBLFFBQ1IsU0FBUztBQUFBLE1BQ1g7QUFBQSxNQUNBLFdBQVc7QUFBQSxNQUNYLGFBQWE7QUFBQSxNQUNiLFVBQVU7QUFBQSxRQUNSLFFBQVE7QUFBQSxRQUNSLFNBQVM7QUFBQSxNQUNYO0FBQUEsTUFDQSxXQUFXO0FBQUEsTUFDWCxhQUFhO0FBQUEsTUFDYixVQUFVO0FBQUEsUUFDUixRQUFRO0FBQUEsUUFDUixTQUFTO0FBQUEsTUFDWDtBQUFBLE1BQ0EsV0FBVztBQUFBLE1BQ1gsYUFBYTtBQUFBLE1BQ2IsVUFBVTtBQUFBLFFBQ1IsUUFBUTtBQUFBLFFBQ1IsU0FBUztBQUFBLE1BQ1g7QUFBQSxNQUNBLFdBQVc7QUFBQSxNQUNYLGFBQWE7QUFBQSxNQUNiLFVBQVU7QUFBQSxRQUNSLFFBQVE7QUFBQSxRQUNSLFNBQVM7QUFBQSxNQUNYO0FBQUEsTUFDQSxXQUFXO0FBQUEsTUFDWCxhQUFhO0FBQUEsTUFDYixVQUFVO0FBQUEsUUFDUixRQUFRO0FBQUEsUUFDUixTQUFTO0FBQUEsTUFDWDtBQUFBLE1BQ0EsV0FBVztBQUFBLE1BQ1gsYUFBYTtBQUFBLE1BQ2IsVUFBVTtBQUFBLFFBQ1IsUUFBUTtBQUFBLFFBQ1IsU0FBUztBQUFBLE1BQ1g7QUFBQSxNQUNBLFdBQVc7QUFBQSxNQUNYLGFBQWE7QUFBQSxNQUNiLGVBQWU7QUFBQSxRQUNiLFFBQVE7QUFBQSxRQUNSLFNBQVM7QUFBQSxNQUNYO0FBQUEsTUFDQSxlQUFlO0FBQUEsUUFDYixRQUFRO0FBQUEsUUFDUixTQUFTO0FBQUEsTUFDWDtBQUFBLE1BQ0EsWUFBWTtBQUFBLFFBQ1YsUUFBUTtBQUFBLFFBQ1IsU0FBUztBQUFBLE1BQ1g7QUFBQSxNQUNBLGNBQWM7QUFBQSxRQUNaLFFBQVE7QUFBQSxRQUNSLFNBQVM7QUFBQSxNQUNYO0FBQUEsTUFDQSxZQUFZO0FBQUEsUUFDVixRQUFRO0FBQUEsUUFDUixTQUFTO0FBQUEsTUFDWDtBQUFBLE1BQ0EsY0FBYztBQUFBLFFBQ1osUUFBUTtBQUFBLFFBQ1IsU0FBUztBQUFBLE1BQ1g7QUFBQSxNQUNBLFdBQVc7QUFBQSxRQUNULFFBQVE7QUFBQSxRQUNSLFNBQVM7QUFBQSxNQUNYO0FBQUEsTUFDQSxjQUFjO0FBQUEsUUFDWixRQUFRO0FBQUEsUUFDUixTQUFTO0FBQUEsTUFDWDtBQUFBLE1BQ0EsY0FBYztBQUFBLFFBQ1osUUFBUTtBQUFBLFFBQ1IsU0FBUztBQUFBLE1BQ1g7QUFBQSxNQUNBLFNBQVM7QUFBQSxRQUNQLFFBQVE7QUFBQSxRQUNSLFNBQVM7QUFBQSxNQUNYO0FBQUEsTUFDQSxTQUFTO0FBQUEsUUFDUCxRQUFRO0FBQUEsUUFDUixTQUFTO0FBQUEsTUFDWDtBQUFBLE1BQ0EsVUFBVTtBQUFBLFFBQ1IsUUFBUTtBQUFBLFFBQ1IsU0FBUztBQUFBLE1BQ1g7QUFBQSxNQUNBLFNBQVM7QUFBQSxRQUNQLFFBQVE7QUFBQSxRQUNSLFNBQVM7QUFBQSxNQUNYO0FBQUEsTUFDQSxZQUFZO0FBQUEsUUFDVixRQUFRO0FBQUEsUUFDUixTQUFTO0FBQUEsTUFDWDtBQUFBLE1BQ0EsVUFBVTtBQUFBLFFBQ1IsUUFBUTtBQUFBLFFBQ1IsU0FBUztBQUFBLE1BQ1g7QUFBQSxNQUNBLFFBQVE7QUFBQSxRQUNOLFFBQVE7QUFBQSxR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QyxRQUFPLGd2QkFBK0g7QUFBQSxNQUN2SSxDQUFDLFFBQU8sNFhBQWlFO0FBQUEsTUFDekUsQ0FBQyxRQUFPLGd2QkFBK0g7QUFBQSxNQUN2SSxDQUFDLFFBQU8sNFhBQWlFO0FBQUEsTUFDekUsQ0FBQyxRQUFPLGd2QkFBK0g7QUFBQSxNQUN2SSxDQUFDLFFBQU8sNFhBQWlFO0FBQUEsTUFDekUsQ0FBQyxRQUFPLGd2QkFBK0g7QUFBQSxNQUN2SSxDQUFDLFFBQU8sNFhBQWlFO0FBQUEsTUFDekUsQ0FBQyxRQUFPLGd2QkFBK0g7QUFBQSxNQUN2SSxDQUFDLFFBQU8sb1RBQXFEO0FBQUEsTUFDN0QsQ0FBQyxRQUFPLHNqQkFBZ0c7QUFBQSxNQUN4RyxDQUFDLFFBQU8sNFhBQWlFO0FBQUEsTUFDekUsQ0FBQyxRQUFPLGd2QkFBK0g7QUFBQSxNQUN2SSxDQUFDLFFBQU8sNFhBQWlFO0FBQUEsTUFDekUsQ0FBQyxRQUFPLGd2QkFBK0g7QUFBQSxNQUN2SSxDQUFDLFFBQU8sNFhBQWlFO0FBQUEsTUFDekUsQ0FBQyxRQUFPLGd2QkFBK0g7QUFBQSxNQUN2SSxDQUFDLFFBQU8sNFhBQWlFO0FBQUEsTUFDekUsQ0FBQyxRQUFPLGd2QkFBK0g7QUFBQSxNQUN2SSxDQUFDLFFBQU8sNFhBQWlFO0FBQUEsTUFDekUsQ0FBQyxRQUFPLGd2QkFBK0g7QUFBQSxNQUN2SSxDQUFDLFFBQU8sNFhBQWlFO0FBQUEsTUFDekUsQ0FBQyxRQUFPLGd2QkFBK0g7QUFBQSxNQUN2SSxDQUFDLFFBQU8sNFhBQWlFO0FBQUEsTUFDekUsQ0FBQyxRQUFPLGd2QkFBK0g7QUFBQSxNQUN2SSxDQUFDLFFBQU8sNFhBQWlFO0FBQUEsTUFDekUsQ0FBQyxRQUFPLGd2QkFBK0g7QUFBQSxNQUN2SSxDQUFDLFFBQU8sNFhBQWlFO0FBQUEsTUFDekUsQ0FBQyxRQUFPLGd2QkFBK0g7QUFBQSxNQUN2SSxDQUFDLFFBQU8sNFhBQWlFO0FBQUEsTUFDekUsQ0FBQyxRQUFPLGd2QkFBK0g7QUFBQSxNQUN2SSxDQUFDLFFBQU8sNFhBQWlFO0FB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Q3hHLENBQUMsUUFBTyxzakJBQWdHO0FBQUEsTUFDeEcsQ0FBQyxRQUFPLHNqQkFBZ0c7QUFBQSxNQUN4RyxDQUFDLFFBQU8sc2pCQUFnRztBQUFBLE1BQ3hHLENBQUMsUUFBTyxzakJBQWdHO0FBQUEsTUFDeEcsQ0FBQyxRQUFPLHNqQkFBZ0c7QUFBQSxNQUN4RyxDQUFDLFFBQU8sc2pCQUFnRztBQUFBLE1BQ3hHLENBQUMsUUFBTyxzakJBQWdHO0FBQUEsTUFDeEcsQ0FBQyxRQUFPLHNqQkFBZ0c7QUFBQSxNQUN4RyxDQUFDLFFBQU8sc2pCQUFnRztBQUFBLE1BQ3hHLENBQUMsUUFBTyxzakJBQWdHO0FBQUEsTUFDeEcsQ0FBQyxRQUFPLG9UQUFxRDtBQUFBLE1BQzdELENBQUMsUUFBTyxzakJBQWdHO0FBQUEsTUFDeEcsQ0FBQyxRQUFPLHNqQkFBZ0c7QUFBQSxNQUN4RyxDQUFDLFFBQU8sc2pCQUFnRztBQUFBLE1BQ3hHLENBQUMsUUFBTyxzakJBQWdHO0FBQUEsTUFDeEcsQ0FBQyxRQUFPLHNqQkFBZ0c7QUFBQSxNQUN4RyxDQUFDLFFBQU8sc2pCQUFnRztBQUFBLE1BQ3hHLENBQUMsUUFBTyxzakJBQWdHO0FBQUEsTUFDeEcsQ0FBQyxRQUFPLHNqQkFBZ0c7QUFBQSxNQUN4RyxDQUFDLFFBQU8sc2pCQUFnRztBQUFBLE1BQ3hHLENBQUMsUUFBTyxzakJBQWdHO0FBQUEsTUFDeEcsQ0FBQyxRQUFPLHNqQkFBZ0c7QUFBQSxNQUN4RyxDQUFDLFFBQU8sc2pCQUFnRztBQUFBLE1BQ3hHLENBQUMsUUFBTyxzakJBQWdHO0FBQUEsTUFDeEcsQ0FBQyxRQUFPLHNqQkFBZ0c7QUFBQSxNQUN4RyxDQUFDLFFBQU8sc2pCQUFnRztBQUFBLE1BQ3hHLENBQUMsUUFBTyxzakJBQWdHO0FBQUEsTUFDeEcsQ0FBQyxRQUFPLHNqQkFBZ0c7QUFBQSxNQUN4RyxDQUFDLFFBQU8sc2pCQUFnRztBQUFBLE1BQ3hHLENBQUMsUUFBTyxzakJBQWdHO0FBQUEsTUFDeEcsQ0FBQyxRQUFPLHNqQkFBZ0c7QUFBQSxNQUN4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QUN2REE7QUFBQSxpRUFBQUMsVUFBQUMsU0FBQTtBQUFBLElBQUFBLFFBQUEsWUFBQyxRQUFTLENBQUMsS0FBSSxLQUFJLEtBQUksS0FBSSxLQUFJLEtBQUksS0FBSSxLQUFJLEtBQUksS0FBSSxLQUFJLEtBQUksS0FBSSxLQUFJLEtBQUksS0FBSSxLQUFJLEtBQUksS0FBSSxLQUFJLEtBQUksS0FBSSxLQUFJLEtBQUksS0FBSSxLQUFJLEtBQUksS0FBSSxLQUFJLEtBQUksS0FBSSxLQUFJLEtBQUksS0FBSSxLQUFJLEtBQUksS0FBSSxLQUFJLEtBQUksTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLEtBQUssR0FBRSxTQUFVLENBQUMsR0FBRSxJQUFHLElBQUcsSUFBRyxJQUFHLElBQUcsSUFBRyxJQUFHLElBQUcsS0FBSSxLQUFJLEtBQUksS0FBSSxLQUFJLEtBQUksS0FBSSxLQUFJLEtBQUksS0FBSSxLQUFJLEtBQUksS0FBSSxLQUFJLEtBQUksS0FBSSxLQUFJLEtBQUksS0FBSSxLQUFJLEtBQUksS0FBSSxLQUFJLEtBQUksS0FBSSxLQUFJLEtBQUksS0FBSSxLQUFJLEtBQUksS0FBSSxLQUFJLEtBQUksTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0s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O0FBQUEsTUFDeEcsQ0FBQyxRQUFPLHNqQkFBZ0c7QUFBQSxNQUN4RyxDQUFDLFFBQU8sc2pCQUFnRztBQUFBLE1BQ3hHLENBQUMsUUFBTyxzakJBQWdHO0FBQUEsTUFDeEcsQ0FBQyxRQUFPLHNqQkFBZ0c7QUFBQSxNQUN4RyxDQUFDLFFBQU8sc2pCQUFnRztBQUFBLE1BQ3hHLENBQUMsUUFBTyxzakJBQWdHO0FBQUEsTUFDeEcsQ0FBQyxRQUFPLHNqQkFBZ0c7QUFBQSxNQUN4RyxDQUFDLFFBQU8sc2pCQUFnRztBQUFBLE1BQ3hHLENBQUMsUUFBTyxzakJBQWdHO0FBQUEsTUFDeEcsQ0FBQyxRQUFPLHNqQkFBZ0c7QUFBQSxNQUN4RyxDQUFDLFFBQU8sc2pCQUFnRztBQUFBLE1BQ3hHLENBQUMsUUFBTyxzakJBQWdHO0FBQUEsTUFDeEcsQ0FBQyxRQUFPLHNqQkFBZ0c7QUFBQSxNQUN4RyxDQUFDLFFBQU8sc2pCQUFnRztBQUFBLE1BQ3hHLENBQUMsUUFBTyxzakJBQWdHO0FBQUEsTUFDeEcsQ0FBQyxRQUFPLHNqQkFBZ0c7QUFBQSxNQUN4RyxDQUFDLFFBQU8sc2pCQUFnRztBQUFBLE1BQ3hHLENBQUMsUUFBTyxzakJBQWdHO0FBQUEsTUFDeEcsQ0FBQyxRQUFPLHNqQkFBZ0c7QUFBQSxNQUN4RyxDQUFDLFFBQU8sc2pCQUFnRztBQUFBLE1BQ3hHLENBQUMsUUFBTyxzakJBQWdHO0FBQUEsTUFDeEcsQ0FBQyxRQUFPLHNqQkFBZ0c7QUFBQSxNQUN4RyxDQUFDLFFBQU8sc2pCQUFnRztBQUFBLE1BQ3hHLENBQUMsUUFBTyxzakJBQWdHO0FBQUEsTUFDeEcsQ0FBQyxRQUFPLHNqQkFBZ0c7QUFBQSxNQUN4RyxDQUFDLFFBQU8sc2pCQUFnRztBQUFBLE1BQ3hHLENBQUMsUUFBTyxzakJBQWdHO0FBQUEsTUFDeEcsQ0FBQyxRQUFPLHNqQkFBZ0c7QUFBQSxNQUN4RyxDQUFDLFFBQU8sc2pCQUFnRztBQUFBLE1BQ3hHLENBQUMsUUFBTyxzakJBQWdHO0FBQUEsTUFDeEcsQ0FBQyxRQUFPLHNqQkFBZ0c7QUFBQSxNQUN4RyxDQUFDLFFBQU8sc2pCQUFnRztBQUFBLE1BQ3hHLENBQUMsUUFBTyxzakJBQWdHO0FBQUEsTUFDeEcsQ0FBQyxRQUFPLHNqQkFBZ0c7QUFBQSxNQUN4RyxDQUFDLFFBQU8sc2pCQUFnRztBQUFBLE1BQ3hHLENBQUMsUUFBTyxzakJBQWdHO0FBQUEsTUFDeEcsQ0FBQyxRQUFPLHNqQkFBZ0c7QUFBQSxNQUN4RyxDQUFDLFFBQU8sc2pCQUFnRztBQUFBLE1BQ3hHLENBQUMsUUFBTyxzakJBQWdHO0FBQUEsTUFDeEcsQ0FBQyxRQUFPLHNqQkFBZ0c7QUFBQSxJQUN4RztBQUFBO0FBQUE7OztBQ2hSQTtBQUFBLHdEQUFBQyxVQUFBQyxTQUFBO0FBQUEsSUFBQUEsUUFBQTtBQUFBLE1BQ0EsQ0FBQyxLQUFJLE1BQVMsR0FBRztBQUFBLE1BQ2pCLENBQUMsUUFBTywwWEFBaUU7QUFBQSxNQUN6RSxDQUFDLFFBQU8sOFdBQWlFLEdBQUUsMEtBQThCO0FBQUEsTUFDekcsQ0FBQyxRQUFPLG9OQUFzQyxHQUFFLGdJQUF1QjtBQUFBLE1BQ3ZFLENBQUMsUUFBTyw4RkFBa0IsR0FBRSxVQUFJLEdBQUUsVUFBSSxHQUFFLDRCQUFPLElBQUcsVUFBSSxFQUFFO0FBQUEsTUFDeEQsQ0FBQyxRQUFPLGtDQUFRLElBQUcsVUFBSSxHQUFFLFVBQUksSUFBRyxVQUFJLEdBQUUsVUFBSSxFQUFFO0FBQUEsTUFDNUMsQ0FBQyxRQUFPLFVBQUksSUFBRyxnQ0FBTztBQUFBLE1BQ3RCLENBQUMsUUFBTyxRQUFHO0FBQUEsTUFDWCxDQUFDLFFBQU8sNFhBQWlFO0FBQUEsTUFDekUsQ0FBQyxRQUFPLHNqQkFBZ0c7QUFBQSxNQUN4RyxDQUFDLFFBQU8sNFhBQWlFO0FBQUEsTUFDekUsQ0FBQyxRQUFPLHNqQkFBZ0c7QUFBQSxNQUN4RyxDQUFDLFFBQU8sNFhBQWlFO0FBQUEsTUFDekUsQ0FBQyxRQUFPLHNqQkFBZ0c7QUFBQSxNQUN4RyxDQUFDLFFBQU8sNFhBQWlFO0FBQUEsTUFDekUsQ0FBQyxRQUFPLHNqQkFBZ0c7QUFBQSxNQUN4RyxDQUFDLFFBQU8sNFhBQWlFO0FBQUEsTUFDekUsQ0FBQyxRQUFPLHNqQkFBZ0c7QUFBQSxNQUN4RyxDQUFDLFFBQU8sNFhBQWlFO0FBQUEsTUFDekUsQ0FBQyxRQUFPLHNqQkFBZ0c7QUFBQSxNQUN4RyxDQUFDLFFBQU8sNFhBQWlFO0FBQUEsTUFDekUsQ0FBQyxRQUFPLHNqQkFBZ0c7QUFBQSxNQUN4RyxDQUFDLFFBQU8sNFhBQWlFO0FBQUEsTUFDekUsQ0FBQyxRQUFPLHNqQkFBZ0c7QUFBQSxNQUN4RyxDQUFDLFFBQU8sNFhBQWlFO0FBQUEsTUFDekUsQ0FBQyxRQUFPLHNqQkFBZ0c7QUFBQSxNQUN4RyxDQUFDLFFBQU8sNFhBQWlFO0FBQUEsTUFDekUsQ0FBQyxRQUFPLHNqQkFBZ0c7QUFBQSxNQUN4RyxDQUFDLFFBQU8sNFhBQWlFO0FBQUEsTUFDekUsQ0FBQyxRQUFPLHNqQkFBZ0c7QUFBQSxNQUN4RyxDQUFDLFFBQU8sNFhBQWlFO0FBQUEsTUFDekUsQ0FBQyxRQUFPLHNqQkFBZ0c7QUFBQSxNQUN4RyxDQUFDLFFBQU8sNFhBQWlFO0FBQUEsTUFDekUsQ0FBQyxRQUFPLHNqQkFBZ0c7QUFBQSxNQUN4RyxDQUFDLFFBQU8sNFhBQWlFO0FBQUEsTUFDekUsQ0FBQyxRQUFPLHNqQkFBZ0c7QUFBQSxNQUN4RyxDQUFDLFFBQU8sNFhBQWlFO0FBQUEsTUFDekUsQ0FBQyxRQUFPLHNqQkFBZ0c7QUFBQSxNQUN4RyxDQUFDLFFBQU8sNFhBQWlFO0FBQUEsTUFDekUsQ0FBQyxRQUFPLHNqQkFBZ0c7QUFBQSxNQUN4RyxDQUFDLFFBQU8sNFhBQWlFO0FBQUEsTUFDekUsQ0FBQyxRQUFPLHNqQkFBZ0c7QUFBQSxNQUN4RyxDQUFDLFFBQU8sNFhBQWlFO0FBQUEsTUFDekUsQ0FBQyxRQUFPLHNqQkFBZ0c7QUFBQSxNQUN4RyxDQUFDLFFBQU8sNFhBQWlFO0FBQUEsTUFDekUsQ0FBQyxRQUFPLHNqQkFBZ0c7QUFBQSxNQUN4RyxDQUFDLFFBQU8sNFhBQWlFO0FBQUEsTUFDekUsQ0FBQyxRQUFPLHNqQkFBZ0c7QUFBQSxNQUN4RyxDQUFDLFFBQU8sNFhBQWlFO0FBQUEsTUFDekUsQ0FBQyxRQUFPLHNqQkFBZ0c7QUFBQSxNQUN4RyxDQUFDLFFBQU8sNFhBQWlFO0FBQUEsTUFDekUsQ0FBQyxRQUFPLHNqQkFBZ0c7QUFBQSxNQUN4RyxDQUFDLFFBQU8sNFhBQWlFO0FBQUEsTUFDekUsQ0FBQyxRQUFPLHNqQkFBZ0c7QUFBQSxNQUN4RyxDQUFDLFFBQU8sNFhBQWlFO0FBQUEsTUFDekUsQ0FBQyxRQUFPLHNqQkFBZ0c7QUFBQSxNQUN4RyxDQUFDLFFBQU8sNFhBQWlFO0FBQUEsTUFDekUsQ0FBQyxRQUFPLHNqQkFBZ0c7QUFBQSxNQUN4RyxDQUFDLFFBQU8sNFhBQWlFO0FBQUEsTUFDekUsQ0FBQyxRQUFPLHNqQkFBZ0c7QUFBQSxNQUN4RyxDQUFDLFFBQU8sNFhBQWlFO0FBQUEsTUFDekUsQ0FBQyxRQUFPLHNqQkFBZ0c7QUFBQSxNQUN4RyxDQUFDLFFBQU8sNFhBQWlFO0FBQUEsTUFDekUsQ0FBQyxRQUFPLHNqQkFBZ0c7QUFBQSxNQUN4RyxDQUFDLFFBQU8sNFhBQWlFO0FBQUEsTUFDekUsQ0FBQyxRQUFPLHNqQkFBZ0c7QUFBQSxNQUN4RyxDQUFDLFFBQU8sNFhBQWlFO0FBQUEsTUFDekUsQ0FBQyxRQUFPLHNqQkFBZ0c7QUFBQSxNQUN4RyxDQUFDLFFBQU8sNFhBQWlFO0FBQUEsTUFDekUsQ0FBQyxRQUFPLHNqQkFBZ0c7QUFBQSxNQUN4RyxDQUFDLFFBQU8sNFhBQWlFO0FBQUEsTUFDekUsQ0FBQyxRQUFPLHNqQkFBZ0c7QUFBQSxNQUN4RyxDQUFDLFFBQU8sNFhBQWlFO0FBQUEsTUFDekUsQ0FBQyxRQUFPLHNqQkFBZ0c7QUFBQSxNQUN4RyxDQUFDLFFBQU8sNFhBQWlFO0FBQUEsTUFDekUsQ0FBQyxRQUFPLHNqQkFBZ0c7QUFBQSxNQUN4RyxDQUFDLFFBQU8sNFhBQWlFO0FBQUEsTUFDekUsQ0FBQyxRQUFPLDRYQUFpRTtBQUFBLE1BQ3pFLENBQUMsUUFBTyxzakJBQWdHO0FBQUEsTUFDeEcsQ0FBQyxRQUFPLDRYQUFpRTtBQUFBLE1BQ3pFLENBQUMsUUFBTyxzakJBQWdHO0FBQUEsTUFDeEcsQ0FBQyxRQUFPLDRYQUFpRTtBQUFBLE1BQ3pFLENBQUMsUUFBTyxzakJBQWdHO0FBQUEsTUFDeEcsQ0FBQyxRQUFPLDRYQUFpRTtBQUFBLE1BQ3pFLENBQUMsUUFBTyxzakJBQWdHO0FBQUEsTUFDeEcsQ0FBQyxRQUFPLDRYQUFpRTtBQUFBLE1BQ3pFLENBQUMsUUFBTyxzakJBQWdHO0FBQUEsTUFDeEcsQ0FBQyxRQUFPLDRYQUFpRTtBQUFBLE1BQ3pFLENBQUMsUUFBTyxzakJBQWdHO0FBQUEsTUFDeEcsQ0FBQyxRQUFPLDRYQUFpRTtBQUFBLE1BQ3pFLENBQUMsUUFBTyxzakJBQWdHO0FBQUEsTUFDeEcsQ0FBQyxRQUFPLDRYQUFpRTtBQUFBLE1BQ3pFLENBQUMsUUFBTyxzakJBQWdHO0FBQUEsTUFDeEcsQ0FBQyxRQUFPLDRYQUFpRTtBQUFBLE1BQ3pFLENBQUMsUUFBTyxzakJBQWdHO0FBQUEsTUFDeEcsQ0FBQyxRQUFPLDRYQUFpRTtBQUFBLE1BQ3pFLENBQUMsUUFBTyxzakJBQWdHO0FBQUEsTUFDeEcsQ0FBQyxRQUFPLDRYQUFpRTtBQUFBLE1BQ3pFLENBQUMsUUFBTyxzakJBQWdHO0FBQUEsTUFDeEcsQ0FBQyxRQUFPLDRYQUFpRTtBQUFBLE1BQ3pFLENBQUMsUUFBTyxzakJBQWdHO0FBQUEsTUFDeEcsQ0FBQyxRQUFPLDRYQUFpRTtBQUFBLE1BQ3pFLENBQUMsUUFBTyxzakJBQWdHO0FBQUEsTUFDeEcsQ0FBQyxRQUFPLDRYQUFpRTtBQUFBLE1BQ3pFLENBQUMsUUFBTyxzakJBQWdHO0FBQUEsTUFDeEcsQ0FBQyxRQUFPLDRYQUFpRTtBQUFBLE1BQ3pFLENBQUMsUUFBTyxzakJBQWdHO0FBQUEsTUFDeEcsQ0FBQyxRQUFPLDRYQUFpRTtBQUFBLE1BQ3pFLENBQUMsUUFBTyxzakJBQWdHO0FBQUEsTUFDeEcsQ0FBQyxRQUFPLDRYQUFpRTtBQUFBLE1BQ3pFLENBQUMsUUFBTyxzakJBQWdHO0FBQUEsTUFDeEcsQ0FBQyxRQUFPLDRYQUFpRTtBQUFBLE1BQ3pFLENBQUMsUUFBTyxzakJBQWdHO0FBQUEsTUFDeEcsQ0FBQyxRQUFPLDRYQUFpRTtBQUFBLE1BQ3pFLENBQUMsUUFBTyxzakJBQWdHO0FBQUEsTUFDeEcsQ0FBQyxRQUFPLDRYQUFpRTtBQUFBLE1BQ3pFLENBQUMsUUFBTyxzakJBQWdHO0FBQUEsTUFDeEcsQ0FBQyxRQUFPLDRYQUFpRTtBQUFBLE1BQ3pFLENBQUMsUUFBTyxzakJBQWdHO0FBQUEsTUFDeEcsQ0FBQyxRQUFPLDRYQUFpRTtBQUFBLE1BQ3pFLENBQUMsUUFBTyxzakJBQWdHO0FBQUEsTUFDeEcsQ0FBQyxRQUFPLDRYQUFpRTtBQUFBLE1BQ3pFLENBQUMsUUFBTyxzakJBQWdHO0FBQUEsTUFDeEcsQ0FBQyxRQUFPLDRYQUFpRTtBQUFBLE1BQ3pFLENBQUMsUUFBTyxzakJBQWdHO0FBQUEsTUFDeEcsQ0FBQyxRQUFPLDRYQUFpRTtBQUFBLE1BQ3pFLENBQUMsUUFBTyxzakJBQWdHO0FBQUEsTUFDeEcsQ0FBQyxRQUFPLDRYQUFpRTtBQUFBLE1BQ3pFLENBQUMsUUFBTyxzakJBQWdHO0FBQUEsTUFDeEcsQ0FBQyxRQUFPLDRYQUFpRTtBQUFBLE1BQ3pFLENBQUMsUUFBTyxzakJBQWdHO0FBQUEsTUFDeEcsQ0FBQyxRQUFPLDRYQUFpRTtBQUFBLE1BQ3pFLENBQUMsUUFBTyxzakJBQWdHO0FBQUEsTUFDeEcsQ0FBQyxRQUFPLDRYQUFpRTtBQUFBLE1BQ3pFLENBQUMsUUFBTyxzakJBQWdHO0FBQUEsTUFDeEcsQ0FBQyxRQUFPLDRYQUFpRTtBQUFBLE1BQ3pFLENBQUMsUUFBTyxzakJBQWdHO0FBQUEsTUFDeEcsQ0FBQyxRQUFPLDRYQUFpRTtBQUFBLE1BQ3pFLENBQUMsUUFBTyxzakJBQWdHO0FBQUEsTUFDeEcsQ0FBQyxRQUFPLDRYQUFpRTtBQUFBLE1BQ3pFLENBQUMsUUFBTyxzakJBQWdHO0FBQUEsTUFDeEcsQ0FBQyxRQUFPLDRYQUFpRTtBQUFBLE1BQ3pFLENBQUMsUUFBTyxzakJBQWdHO0FBQUEsTUFDeEcsQ0FBQyxRQUFPLDRYQUFpRTtBQUFBLE1BQ3pFLENBQUMsUUFBTyxzakJBQWdHO0FBQUEsTUFDeEcsQ0FBQyxRQUFPLDRYQUFpRTtBQUFBLE1BQ3pFLENBQUMsUUFBTyxzakJBQWdHO0FBQUEsTUFDeEcsQ0FBQyxRQUFPLDRYQUFpRTtBQUFBLE1BQ3pFLENBQUMsUUFBTyxzakJBQWdHO0FBQUEsTUFDeEcsQ0FBQyxRQUFPLDRYQUFpRTtBQUFBLE1BQ3pFLENBQUMsUUFBTyxzakJBQWdHO0FBQUEsTUFDeEcsQ0FBQyxRQUFPLDRYQUFpRTtBQUFBLE1BQ3pFLENBQUMsUUFBTyxzakJBQWdHO0FBQUEsTUFDeEcsQ0FBQyxRQUFPLDRYQUFpRTtBQUFBLE1BQ3pFLENBQUMsUUFBTyxzakJBQWdHO0FBQUEsTUFDeEcsQ0FBQyxRQUFPLDRYQUFpRTtBQUFBLE1BQ3pFLENBQUMsUUFBTyxzakJBQWdHO0FBQUEsTUFDeEcsQ0FBQyxRQUFPLDRYQUFpRTtBQUFBLE1BQ3pFLENBQUMsUUFBTyxzakJBQWdHO0FBQUEsTUFDeEcsQ0FBQyxRQUFPLDRYQUFpRTtBQUFBLE1BQ3pFLENBQUMsUUFBTyxzakJBQWdHO0FBQUEsTUFDeEcsQ0FBQyxRQUFPLDRYQUFpRTtBQUFBLE1BQ3pFLENBQUMsUUFBTyxzakJBQWdHO0FBQUEsTUFDeEcsQ0FBQyxRQUFPLDRYQUFpRTtBQUFBLE1BQ3pFLENBQUMsUUFBTyxzakJBQWdHO0FBQUEsTUFDeEcsQ0FBQyxRQUFPLDRYQUFpRTtBQUFBLE1BQ3pFLENBQUMsUUFBTyxzakJBQWdHO0FBQUEsTUFDeEcsQ0FBQyxRQUFPLDRYQUFpRTtBQUFBLE1BQ3pFLENBQUMsUUFBTyxzakJBQWdHO0FBQUEsTUFDeEcsQ0FBQyxRQUFPLDRYQUFpRTtBQUFBLE1BQ3pFLENBQUMsUUFBTyxzakJBQWdHO0FBQUEsTUFDeEcsQ0FBQyxRQUFPLDRYQUFpRTtBQUFBLE1BQ3pFLENBQUMsUUFBTyxzakJBQWdHO0FBQUEsTUFDeEcsQ0FBQyxRQUFPLDRY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QUFPO0FBQUEsTUFDUCxNQUFRO0FBQUEsTUFDUixVQUFVO0FBQUEsTUFDVixRQUFVO0FBQUEsTUFDVixXQUFXO0FBQUEsTUFDWCxVQUFVO0FBQUEsTUFDVixhQUFlO0FBQUEsTUFDZixLQUFPO0FBQUEsTUFDUCxXQUFhO0FBQUEsTUFDYixlQUFlO0FBQUEsTUFDZixXQUFXO0FBQUEsTUFDWCxlQUFlO0FBQUEsTUFDZixjQUFjO0FBQUEsTUFDZCxXQUFhO0FBQUEsTUFDYixXQUFXO0FBQUEsTUFDWCxlQUFlO0FBQUEsTUFDZixRQUFVO0FBQUEsTUFDVixnQkFBZ0I7QUFBQSxNQUNoQixZQUFZO0FBQUEsTUFDWixRQUFVO0FBQUEsTUFDVixnQkFBZ0I7QUFBQSxNQUNoQixZQUFZO0FBQUEsTUFDWixrQkFBa0I7QUFBQSxNQUNsQixPQUFTO0FBQUEsTUFDVCxRQUFVO0FBQUEsTUFDVixPQUFTO0FBQUEsTUFDVCxhQUFlO0FBQUEsTUFDZixRQUFVO0FBQUEsTUFDVixjQUFjO0FBQUEsTUFDZCxjQUFjO0FBQUEsTUFDZCxhQUFhO0FBQUEsTUFDYixVQUFZO0FBQUEsTUFDWixjQUFjO0FBQUEsTUFDZCxtQkFBbUI7QUFBQSxNQUNuQixJQUFNO0FBQUEsTUFDTixRQUFVO0FBQUEsTUFDVixZQUFZO0FBQUEsTUFDWixnQkFBZ0I7QUFBQSxNQUNoQixZQUFZO0FBQUEsTUFDWixRQUFVO0FBQUEsTUFDVixnQkFBZ0I7QUFBQSxNQUNoQixZQUFZO0FBQUEsTUFDWixRQUFVO0FBQUEsTUFDVixhQUFlO0FBQUEsTUFDZixjQUFjO0FBQUEsTUFDZCxjQUFjO0FBQUEsTUFDZCxhQUFhO0FBQUEsTUFDYixVQUFZO0FBQUEsTUFDWixjQUFjO0FBQUEsTUFDZCxtQkFBbUI7QUFBQSxNQUNuQixJQUFNO0FBQUEsTUFDTixRQUFVO0FBQUEsTUFDVixnQkFBZ0I7QUFBQSxNQUNoQixZQUFZO0FBQUEsTUFDWixRQUFVO0FBQUEsTUFDVixnQkFBZ0I7QUFBQSxNQUNoQixZQUFZO0FBQUEsTUFDWixRQUFVO0FBQUEsTUFDVixnQkFB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QUFBO0FBRUEsTUFBQUEsT0FBQUEsT0FBQSxjQUFBLElBQUEsRUFBQSxJQUFBO0FBRUEsTUFBQUEsT0FBQUEsT0FBQSxZQUFBLElBQUEsRUFBQSxJQUFBO0FBRUEsTUFBQUEsT0FBQUEsT0FBQSxhQUFBLElBQUEsRUFBQSxJQUFBO0FBRUEsTUFBQUEsT0FBQUEsT0FBQSxjQUFBLElBQUEsRUFBQSxJQUFBO0FBRUEsTUFBQUEsT0FBQUEsT0FBQSxnQkFBQSxJQUFBLEVBQUEsSUFBQTtBQUNBLE1BQUFBLE9BQUFBLE9BQUEsOEJBQUEsSUFBQSxFQUFBLElBQUE7QUFDQSxNQUFBQSxPQUFBQSxPQUFBLDZCQUFBLElBQUEsRUFBQSxJQUFBO0FBQ0EsTUFBQUEsT0FBQUEsT0FBQSwyQkFBQSxJQUFBLEVBQUEsSUFBQTtBQUNBLE1BQUFBLE9BQUFBLE9BQUEscUJBQUEsSUFBQSxFQUFBLElBQUE7QUFFQSxNQUFBQSxPQUFBQSxPQUFBLFVBQUEsSUFBQSxFQUFBLElBQUE7QUFFQSxNQUFBQSxPQUFBQSxPQUFBLGlCQUFBLElBQUEsRUFBQSxJQUFBO0FBTUEsTUFBQUEsT0FBQUEsT0FBQSxxQkFBQSxJQUFBLEVBQUEsSUFBQTtBQUVBLE1BQUFBLE9BQUFBLE9BQUEsMEJBQUEsSUFBQSxFQUFBLElBQUE7QUFDQSxNQUFBQSxPQUFBQSxPQUFBLGFBQUEsSUFBQSxFQUFBLElBQUE7QUFDQSxNQUFBQSxPQUFBQSxPQUFBLG1CQUFBLElBQUEsRUFBQSxJQUFBO0FBQ0EsTUFBQUEsT0FBQUEsT0FBQSxtQkFBQSxJQUFBLEVBQUEsSUFBQTtBQUVBLE1BQUFBLE9BQUFBLE9BQUEscUJBQUEsSUFBQSxFQUFBLElBQUE7QUFDQSxNQUFBQSxPQUFBQSxPQUFBLHNDQUFBLElBQUEsRUFBQSxJQUFBO0FBQ0EsTUFBQUEsT0FBQUEsT0FBQSxxQ0FBQSxJQUFBLEVBQUEsSUFBQTtBQUNBLE1BQUFBLE9BQUFBLE9BQUEsbUNBQUEsSUFBQSxFQUFBLElBQUE7QUFDQSxNQUFBQSxPQUFBQSxPQUFBLG1DQUFBLElBQUEsRUFBQSxJQUFBO0FBQ0EsTUFBQUEsT0FBQUEsT0FBQSxxQ0FBQSxJQUFBLEVBQUEsSUFBQTtBQUNBLE1BQUFBLE9BQUFBLE9BQUEsd0NBQUEsSUFBQSxFQUFBLElBQUE7QUFDQSxNQUFBQSxPQUFBQSxPQUFBLHFDQUFBLElBQUEsRUFBQSxJQUFBO0FBQ0EsTUFBQUEsT0FBQUEsT0FBQSxxQ0FBQSxJQUFBLEVBQUEsSUFBQTtBQUNBLE1BQUFBLE9BQUFBLE9BQUEsdUNBQUEsSUFBQSxFQUFBLElBQUE7QUFFQSxNQUFBQSxPQUFBQSxPQUFBLGVBQUEsSUFBQSxFQUFBLElBQUE7QUFFQSxNQUFBQSxPQUFBQSxPQUFBLG9CQUFBLElBQUEsRUFBQSxJQUFBO0FBRUEsTUFBQUEsT0FBQUEsT0FBQSxzQkFBQSxJQUFBLEVBQUEsSUFBQTtBQUNBLE1BQUFBLE9BQUFBLE9BQUEsc0JBQUEsSUFBQSxFQUFBLElBQUE7QUFDQSxNQUFBQSxPQUFBQSxPQUFBLHdCQUFBLElBQUEsRUFBQSxJQUFBO0lBQ0osR0FqRVdBLFdBQUFBLFNBQUssQ0FBQSxFQUFBO0FBbUVoQixLQUFBLFNBQVlDLGFBQVU7QUFFbEIsTUFBQUEsWUFBQUEsWUFBQSxLQUFBLElBQUEsQ0FBQSxJQUFBO0FBRUEsTUFBQUEsWUFBQUEsWUFBQSxRQUFBLElBQUEsQ0FBQSxJQUFBO0FBRUEsTUFBQUEsWUFBQUEsWUFBQSxZQUFBLElBQUEsQ0FBQSxJQUFBO0FBRUEsTUFBQUEsWUFBQUEsWUFBQSxVQUFBLElBQUEsQ0FBQSxJQUFBO0FBRUEsTUFBQUEsWUFBQUEsWUFBQSxjQUFBLElBQUEsQ0FBQSxJQUFBO0FBRUEsTUFBQUEsWUFBQUEsWUFBQSxTQUFBLElBQUEsQ0FBQSxJQUFBO0lBQ0osR0FiWSxlQUFBLGFBQVUsQ0FBQSxFQUFBO0FBZXRCLEtBQUEsU0FBV0MsYUFBVTtBQUNqQixNQUFBQSxZQUFBQSxZQUFBLE1BQUEsSUFBQSxDQUFBLElBQUE7QUFDQSxNQUFBQSxZQUFBQSxZQUFBLFdBQUEsSUFBQSxDQUFBLElBQUE7QUFDQSxNQUFBQSxZQUFBQSxZQUFBLFNBQUEsSUFBQSxDQUFBLElBQUE7QUFDQSxNQUFBQSxZQUFBQSxZQUFBLFNBQUEsSUFBQSxDQUFBLElBQUE7SUFDSixHQUxXLGVBQUEsYUFBVSxDQUFBLEVBQUE7QUFPckIsS0FBQSxTQUFXQyxRQUFLO0FBQ1osTUFBQUEsT0FBQUEsT0FBQSxLQUFBLElBQUEsQ0FBQSxJQUFBO0FBQ0EsTUFBQUEsT0FBQUEsT0FBQSxLQUFBLElBQUEsQ0FBQSxJQUFBO0FBQ0EsTUFBQUEsT0FBQUEsT0FBQSxJQUFBLElBQUEsRUFBQSxJQUFBO0FBQ0EsTUFBQUEsT0FBQUEsT0FBQSxJQUFBLElBQUEsRUFBQSxJQUFBO0FBQ0EsTUFBQUEsT0FBQUEsT0FBQSxPQUFBLElBQUEsRUFBQSxJQUFBO0FBQ0EsTUFBQUEsT0FBQUEsT0FBQSxhQUFBLElBQUEsRUFBQSxJQUFBO0FBQ0EsTUFBQUEsT0FBQUEsT0FBQSxRQUFBLElBQUEsRUFBQSxJQUFBO0FBQ0EsTUFBQUEsT0FBQUEsT0FBQSxRQUFBLElBQUEsRUFBQSxJQUFBO0FBQ0EsTUFBQUEsT0FBQUEsT0FBQSxNQUFBLElBQUEsRUFBQSxJQUFBO0FBQ0EsTUFBQUEsT0FBQUEsT0FBQSxPQUFBLElBQUEsRUFBQSxJQUFBO0FBQ0EsTUFBQUEsT0FBQUEsT0FBQSxXQUFBLElBQUEsRUFBQSxJQUFBO0FBQ0EsTUFBQUEsT0FBQUEsT0FBQSxJQUFBLElBQUEsRUFBQSxJQUFBO0FBQ0EsTUFBQUEsT0FBQUEsT0FBQSxRQUFBLElBQUEsRUFBQSxJQUFBO0FBQ0EsTUFBQUEsT0FBQUEsT0FBQSxJQUFBLElBQUEsRUFBQSxJQUFBO0FBQ0EsTUFBQUEsT0FBQUEsT0FBQSxVQUFBLElBQUEsRUFBQSxJQUFBO0FBQ0EsTUFBQUEsT0FBQUEsT0FBQSxRQUFBLElBQUEsRUFBQSxJQUFBO0FBQ0EsTUFBQUEsT0FBQUEsT0FBQSxRQUFBLElBQUEsRUFBQSxJQUFBO0FBQ0EsTUFBQUEsT0FBQUEsT0FBQSxRQUFBLElBQUEsRUFBQSxJQUFBO0FBQ0EsTUFBQUEsT0FBQUEsT0FBQSxRQUFBLElBQUEs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QUNSLFFBQVE7QUFBQSxNQUNSLFFBQVE7QUFBQSxNQUNSLFFBQVE7QUFBQSxNQUNSLFFBQVE7QUFBQSxNQUNSLFFBQVE7QUFBQSxNQUNSLFFBQVE7QUFBQSxNQUNSLFFBQVE7QUFBQSxNQUNSLFFBQVE7QUFBQSxNQUNSLFFBQVE7QUFBQSxNQUNSLFFBQVE7QUFBQSxNQUNSLFFBQVE7QUFBQSxNQUNSLFFBQVE7QUFBQSxNQUNSLFFBQVE7QUFBQSxNQUNSLFFBQVE7QUFBQSxNQUNSLFFBQVE7QUFBQSxNQUNSLFFBQVE7QUFBQSxNQUNSLFFBQVE7QUFBQSxNQUNSLFFBQVE7QUFBQSxNQUNSLFFBQVE7QUFBQSxNQUNSLFFBQVE7QUFBQSxNQUNSLFFBQVE7QUFBQSxNQUNSLFFBQVE7QUFBQSxNQUNSLFFBQVEsVUFBVTtBQUFBLE1BQ2xCLFFBQVE7QUFBQSxNQUNSLFFBQVE7QUFBQSxNQUNSLFFBQVE7QUFBQSxNQUNSLFFBQVE7QUFBQSxNQUNSLFFBQVE7QUFBQSxNQUNSLFFBQVE7QUFBQSxNQUNSLFFBQVE7QUFBQSxNQUNSLFFBQVE7QUFBQSxNQUNSLFFBQVE7QUFBQTtBQUFBLE1BRVIsUUFBUTtBQUFBLElBQ1o7QUFDQSxJQUFBQSxTQUFRLGNBQWM7QUFBQSxNQUNsQixRQUFRO0FBQUEsSUFDWjtBQUNBLElBQUFBLFNBQVEsZUFBZTtBQUFBLE1BQ25CLFFBQVE7QUFBQSxNQUNSLFFBQVE7QUFBQSxNQUNSLFFBQVE7QUFBQSxNQUNSLFFBQVE7QUFBQSxNQUNSLFFBQVE7QUFBQSxNQUNSLFFBQVE7QUFBQSxNQUNSLFFBQVE7QUFBQSxNQUNSLFFBQVE7QUFBQSxNQUNSLFFBQVE7QUFBQSxNQUNSLFFBQVE7QUFBQSxNQUNSLFFBQVE7QUFBQSxNQUNSLFFBQVE7QUFBQTtBQUFBLE1BRVIsUUFBUTtBQUFBLE1BQ1IsUUFBUTtBQUFBLElBQ1o7QUFDQSxJQUFBQSxTQUFRLGFBQWEsUUFBUSxVQUFVLE9BQU87QUFDOUMsSUFBQUEsU0FBUSxlQUFlLENBQUM7QUFDeEIsV0FBTyxLQUFLQSxTQUFRLFVBQVUsRUFBRSxRQUFRLENBQUMsUUFBUTtBQUM3QyxVQUFJLEtBQUssS0FBSyxHQUFHLEdBQUc7QUFDaEIsUUFBQUEsU0FBUSxhQUFhLEdBQUcsSUFBSUEsU0FBUSxXQUFXLEdBQUc7QUFBQSxNQUN0RDtBQUFBLElBQ0osQ0FBQztBQUNELFFBQUk7QUFDSixLQUFDLFNBQVVNLFNBQVE7QUFDZixNQUFBQSxRQUFPQSxRQUFPLE1BQU0sSUFBSSxDQUFDLElBQUk7QUFDN0IsTUFBQUEsUUFBT0EsUUFBTyxjQUFjLElBQUksQ0FBQyxJQUFJO0FBQ3JDLE1BQUFBLFFBQU9BLFFBQU8sUUFBUSxJQUFJLENBQUMsSUFBSTtBQUFBLElBQ25DLEdBQUcsU0FBU04sU0FBUSxXQUFXQSxTQUFRLFNBQVMsQ0FBQyxFQUFFO0FBQ25ELElBQUFBLFNBQVEsUUFBUSxDQUFDO0FBQ2pCLGFBQVMsSUFBSSxJQUFJLFdBQVcsQ0FBQyxHQUFHLEtBQUssSUFBSSxXQUFXLENBQUMsR0FBRyxLQUFLO0FBRXpELE1BQUFBLFNBQVEsTUFBTSxLQUFLLE9BQU8sYUFBYSxDQUFDLENBQUM7QUFFekMsTUFBQUEsU0FBUSxNQUFNLEtBQUssT0FBTyxhQUFhLElBQUksRUFBSSxDQUFDO0FBQUEsSUFDcEQ7QUFDQSxJQUFBQSxTQUFRLFVBQVU7QUFBQSxNQUNkLEdBQUc7QUFBQSxNQUFHLEdBQUc7QUFBQSxNQUFHLEdBQUc7QUFBQSxNQUFHLEdBQUc7QUFBQSxNQUFHLEdBQUc7QUFBQSxNQUMzQixHQUFHO0FBQUEsTUFBRyxHQUFHO0FBQUEsTUFBRyxHQUFHO0FBQUEsTUFBRyxHQUFHO0FBQUEsTUFBRyxHQUFHO0FBQUEsSUFDL0I7QUFDQSxJQUFBQSxTQUFRLFVBQVU7QUFBQSxNQUNkLEdBQUc7QUFBQSxNQUFHLEdBQUc7QUFBQSxNQUFHLEdBQUc7QUFBQSxNQUFHLEdBQUc7QUFBQSxNQUFHLEdBQUc7QUFBQSxNQUMzQixHQUFHO0FBQUEsTUFBRyxHQUFHO0FBQUEsTUFBRyxHQUFHO0FBQUEsTUFBRyxHQUFHO0FBQUEsTUFBRyxHQUFHO0FBQUEsTUFDM0IsR0FBRztBQUFBLE1BQUssR0FBRztBQUFBLE1BQUssR0FBRztBQUFBLE1BQUssR0FBRztBQUFBLE1BQUssR0FBRztBQUFBLE1BQUssR0FBRztBQUFBLE1BQzNDLEdBQUc7QUFBQSxNQUFLLEdBQUc7QUFBQSxNQUFLLEdBQUc7QUFBQSxNQUFLLEdBQUc7QUFBQSxNQUFLLEdBQUc7QUFBQSxNQUFLLEdBQUc7QUFBQSxJQUMvQztBQUNBLElBQUFBLFNBQVEsTUFBTTtBQUFBLE1BQ1Y7QUFBQSxNQUFLO0FBQUEsTUFBSztBQUFBLE1BQUs7QUFBQSxNQUFLO0FBQUEsTUFBSztBQUFBLE1BQUs7QUFBQSxNQUFLO0FBQUEsTUFBSztBQUFBLE1BQUs7QUFBQSxJQUNqRDtBQUNBLElBQUFBLFNBQVEsV0FBV0EsU0FBUSxNQUFNLE9BQU9BLFNBQVEsR0FBRztBQUNuRCxJQUFBQSxTQUFRLE9BQU8sQ0FBQyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFNLEtBQUssR0FBRztBQUM1RCxJQUFBQSxTQUFRLGlCQUFpQkEsU0FBUSxTQUM1QixPQUFPQSxTQUFRLElBQUksRUFDbkIsT0FBTyxDQUFDLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssR0FBRyxDQUFDO0FBRXBELElBQUFBLFNBQVEsa0JBQWtCO0FBQUEsTUFDdEI7QUFBQSxNQUFLO0FBQUEsTUFBSztBQUFBLE1BQUs7QUFBQSxNQUFLO0FBQUEsTUFBSztBQUFBLE1BQ3pCO0FBQUEsTUFBSztBQUFBLE1BQUs7QUFBQSxNQUFLO0FBQUEsTUFBSztBQUFBLE1BQUs7QUFBQSxNQUFLO0FBQUEsTUFBSztBQUFBLE1BQ25DO0FBQUEsTUFBSztBQUFBLE1BQUs7QUFBQSxNQUFLO0FBQUEsTUFBSztBQUFBLE1BQ3BCO0FBQUEsTUFBSztBQUFBLE1BQUs7QUFBQSxNQUFNO0FBQUEsTUFBSztBQUFBLE1BQUs7QUFBQSxNQUMxQjtBQUFBLE1BQ0E7QUFBQSxNQUFLO0FBQUEsTUFBSztBQUFBLE1BQUs7QUFBQSxJQUNuQixFQUFFLE9BQU9BLFNBQVEsUUFBUTtBQUN6QixJQUFBQSxTQUFRLFdBQVdBLFNBQVEsZ0JBQ3RCLE9BQU8sQ0FBQyxLQUFNLElBQUksQ0FBQztBQUV4QixhQUFTLElBQUksS0FBTSxLQUFLLEtBQU0sS0FBSztBQUMvQixNQUFBQSxTQUFRLFNBQVMsS0FBSyxDQUFDO0FBQUEsSUFDM0I7QUFDQSxJQUFBQSxTQUFRLE1BQU1BLFNBQVEsSUFBSSxPQUFPLENBQUMsS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEdBQUcsQ0FBQztBQVE3RixJQUFBQSxTQUFRLGVBQWU7QUFBQSxNQUNuQjtBQUFBLE1BQUs7QUFBQSxNQUFLO0FBQUEsTUFBSztBQUFBLE1BQUs7QUFBQSxNQUFLO0FBQUEsTUFDekI7QUFBQSxNQUFLO0FBQUEsTUFBSztBQUFBLE1BQUs7QUFBQSxNQUNmO0FBQUEsTUFBSztBQUFBLE1BQUs7QUFBQSxNQUNWO0FBQUEsTUFBSztBQUFBLElBQ1QsRUFBRSxPQUFPQSxTQUFRLFFBQVE7QUFDekIsSUFBQUEsU0FBUSxRQUFRQSxTQUFRLGFBQWEsT0FBTyxDQUFDLEdBQUcsQ0FBQztBQUtqRCxJQUFBQSxTQUFRLGVBQWUsQ0FBQyxHQUFJO0FBQzVCLGFBQVMsSUFBSSxJQUFJLEtBQUssS0FBSyxLQUFLO0FBQzVCLFVBQUksTUFBTSxLQUFLO0FBQ1gsUUFBQUEsU0FBUSxhQUFhLEtBQUssQ0FBQztBQUFBLE1BQy9CO0FBQUEsSUFDSjtBQUVBLElBQUFBLFNBQVEseUJBQXlCQSxTQUFRLGFBQWEsT0FBTyxDQUFDLE1BQU0sTUFBTSxFQUFFO0FBQzVFLElBQUFBLFNBQVEsUUFBUUEsU0FBUTtBQUN4QixJQUFBQSxTQUFRLFFBQVFBLFNBQVE7QUFDeEIsUUFBSTtBQUNKLEtBQUMsU0FBVU8sZUFBYztBQUNyQixNQUFBQSxjQUFhQSxjQUFhLFNBQVMsSUFBSSxDQUFDLElBQUk7QUFDNUMsTUFBQUEsY0FBYUEsY0FBYSxZQUFZLElBQUksQ0FBQyxJQUFJO0FBQy9DLE1BQUFBLGNBQWFBLGNBQWEsZ0JBQWdCLElBQUksQ0FBQyxJQUFJO0FBQ25ELE1BQUFBLGNBQWFBLGNBQWEsbUJBQW1CLElBQUksQ0FBQyxJQUFJO0FBQ3RELE1BQUFBLGNBQWFBLGNBQWEsU0FBUyxJQUFJLENBQUMsSUFBSTtBQUM1QyxNQUFBQSxjQUFhQSxjQUFhLHVCQUF1QixJQUFJLENBQUMsSUFBSTtBQUMxRCxNQUFBQSxjQUFhQSxjQUFhLGtCQUFrQixJQUFJLENBQUMsSUFBSTtBQUNyRCxNQUFBQSxjQUFhQSxjQUFhLG9CQUFvQixJQUFJLENBQUMsSUFBSTtBQUN2RCxNQUFBQSxjQUFhQSxjQUFhLDJCQUEyQixJQUFJLENBQUMsSUFBSTtBQUFBLElBQ2xFLEdBQUcsZUFBZVAsU0FBUSxpQkFBaUJBLFNBQVEsZUFBZSxDQUFDLEVBQUU7QUFDckUsSUFBQUEsU0FBUSxrQkFBa0I7QUFBQSxNQUN0QixjQUFjLGFBQWE7QUFBQSxNQUMzQixrQkFBa0IsYUFBYTtBQUFBLE1BQy9CLG9CQUFvQixhQUFhO0FBQUEsTUFDakMscUJBQXFCLGFBQWE7QUFBQSxNQUNsQyxXQUFXLGFBQWE7QUFBQSxJQUM1QjtBQUFBO0FBQUE7OztBQ3BSQTtBQUFBLGtEQUFBUSxVQUFBQyxTQUFBO0FBQUE7QUFFQSxRQUFNLEVBQUUsUUFBQUMsUUFBTyxJQUFJLFFBQVEsYUFBYTtBQUV4QyxJQUFBRCxRQUFPLFVBQVVDLFFBQU8sS0FBSyx3eitEQUF3eitELFFBQVE7QUFBQTtBQUFBOzs7QUNKNzErRDtBQUFBLHVEQUFBQyxVQUFBQyxTQUFBO0FBQUE7QUFFQSxRQUFNLEVBQUUsUUFBQUMsUUFBTyxJQUFJLFFBQVEsYUFBYTtBQUV4QyxJQUFBRCxRQUFPLFVBQVVDLFFBQU8sS0FBSyxnMitEQUFnMitELFFBQVE7QUFBQTtBQUFBOzs7QUNKcjQrRCxJQUFBQyxxQkFBQTtBQUFBLG1EQUFBQyxVQUFBQyxTQUFBO0FBQUE7QUFFQSxRQUFNO0FBQUE7QUFBQSxNQUE4QyxDQUFDLE9BQU8sUUFBUSxNQUFNO0FBQUE7QUFDMUUsUUFBTSwyQkFBMkIsSUFBSSxJQUFJLHFCQUFxQjtBQUU5RCxRQUFNO0FBQUE7QUFBQSxNQUF1QyxDQUFDLEtBQUssS0FBSyxLQUFLLEdBQUc7QUFBQTtBQUVoRSxRQUFNO0FBQUE7QUFBQSxNQUF1QyxDQUFDLEtBQUssS0FBSyxLQUFLLEtBQUssR0FBRztBQUFBO0FBQ3JFLFFBQU0sb0JBQW9CLElBQUksSUFBSSxjQUFjO0FBS2hELFFBQU07QUFBQTtBQUFBLE1BQWlDO0FBQUEsUUFDckM7QUFBQSxRQUFLO0FBQUEsUUFBSztBQUFBLFFBQUs7QUFBQSxRQUFNO0FBQUEsUUFBTTtBQUFBLFFBQU07QUFBQSxRQUFNO0FBQUEsUUFBTTtBQUFBLFFBQU07QUFBQSxRQUFNO0FBQUEsUUFBTTtBQUFBLFFBQU07QUFBQSxRQUFNO0FBQUEsUUFBTTtBQUFBLFFBQU07QUFBQSxRQUFNO0FBQUEsUUFBTTtBQUFBLFFBQU07QUFBQSxRQUFNO0FBQUEsUUFDL0c7QUFBQSxRQUFNO0FBQUEsUUFBTTtBQUFBLFFBQU87QUFBQSxRQUFPO0FBQUEsUUFBTztBQUFBLFFBQU87QUFBQSxRQUFPO0FBQUEsUUFBTztBQUFBLFFBQU87QUFBQSxRQUFPO0FBQUEsUUFBTztBQUFBLFFBQU87QUFBQSxRQUFPO0FBQUEsUUFBTztBQUFBLFFBQU87QUFBQSxRQUN2RztBQUFBLFFBQU87QUFBQSxRQUFPO0FBQUEsUUFBTztBQUFBLFFBQU87QUFBQSxRQUFPO0FBQUEsUUFBTztBQUFBLFFBQU87QUFBQSxRQUFPO0FBQUEsUUFBTztBQUFBLFFBQU87QUFBQSxRQUFPO0FBQUEsUUFBTztBQUFBLFFBQU87QUFBQSxRQUFPO0FBQUEsUUFDbEc7QUFBQSxRQUFPO0FBQUEsUUFBTztBQUFBLFFBQU87QUFBQSxRQUFPO0FBQUEsUUFBTztBQUFBLFFBQU87QUFBQSxRQUFPO0FBQUEsUUFBTztBQUFBLFFBQU87QUFBQSxRQUFPO0FBQUEsUUFBTztBQUFBLFFBQU87QUFBQSxRQUFRO0FBQUEsUUFBUTtBQUFBLFFBQ3BHO0FBQUEsUUFBUTtBQUFBLFFBQVE7QUFBQSxRQUFRO0FBQUEsUUFBUTtBQUFBLFFBQVE7QUFBQSxRQUFRO0FBQUEsUUFBUTtBQUFBLFFBQVE7QUFBQSxRQUFRO0FBQUEsUUFBUTtBQUFBLFFBQVE7QUFBQSxRQUFRO0FBQUEsUUFBUTtBQUFBLFFBQ3hHO0FBQUEsUUFBUTtBQUFBLE1BQ1Y7QUFBQTtBQUNBLFFBQU0sY0FBYyxJQUFJLElBQUksUUFBUTtBQUtwQyxRQUFNO0FBQUE7QUFBQSxNQUF1QztBQUFBLFFBQzNDO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxNQUNGO0FBQUE7QUFDQSxRQUFNLG9CQUFvQixJQUFJLElBQUksY0FBYztBQUVoRCxRQUFNO0FBQUE7QUFBQSxNQUF3QyxDQUFDLFVBQVUsVUFBVSxPQUFPO0FBQUE7QUFFMUUsUUFBTTtBQUFBO0FBQUEsTUFBb0MsQ0FBQyxPQUFPLFFBQVEsV0FBVyxPQUFPO0FBQUE7QUFDNUUsUUFBTSxpQkFBaUIsSUFBSSxJQUFJLFdBQVc7QUFFMUMsUUFBTTtBQUFBO0FBQUEsTUFBb0MsQ0FBQyxZQUFZLGVBQWUsV0FBVyxNQUFNO0FBQUE7QUFFdkYsUUFBTTtBQUFBO0FBQUEsTUFBMkMsQ0FBQyxRQUFRLGVBQWUsU0FBUztBQUFBO0FBRWxGLFFBQU07QUFBQTtBQUFBLE1BQXFDO0FBQUEsUUFDekM7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLE1BQ0Y7QUFBQTtBQUtBLFFBQU07QUFBQTtBQUFBLE1BQTBDO0FBQUEsUUFDOUM7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFFBS0E7QUFBQSxNQUNGO0FBQUE7QUFLQSxRQUFNO0FBQUE7QUFBQSxNQUFzQztBQUFBLFFBQzFDO0FBQUEsTUFDRjtBQUFBO0FBS0EsUUFBTTtBQUFBO0FBQUEsTUFBeUMsQ0FBQyxXQUFXLFNBQVMsT0FBTztBQUFBO0FBQzNFLFFBQU0sc0JBQXNCLElBQUksSUFBSSxnQkFBZ0I7QUFFcEQsUUFBTTtBQUFBO0FBQUEsTUFBb0M7QUFBQSxRQUN4QztBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsTUFDRjtBQUFBO0FBQ0EsUUFBTSxpQkFBaUIsSUFBSSxJQUFJLFdBQVc7QUFFMUMsSUFBQUEsUUFBTyxVQUFVO0FBQUEsTUFDZjtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsSUFDRjtBQUFBO0FBQUE7OztBQzNIQTtBQUFBLGdEQUFBQyxVQUFBQyxTQUFBO0FBQUE7QUFJQSxRQUFNLGVBQWUsT0FBTyxJQUFJLHVCQUF1QjtBQUV2RCxhQUFTLGtCQUFtQjtBQUMxQixhQUFPLFdBQVcsWUFBWTtBQUFBLElBQ2hDO0FBRUEsYUFBUyxnQkFBaUIsV0FBVztBQUNuQyxVQUFJLGNBQWMsUUFBVztBQUMzQixlQUFPLGVBQWUsWUFBWSxjQUFjO0FBQUEsVUFDOUMsT0FBTztBQUFBLFVBQ1AsVUFBVTtBQUFBLFVBQ1YsWUFBWTtBQUFBLFVBQ1osY0FBYztBQUFBLFFBQ2hCLENBQUM7QUFFRDtBQUFBLE1BQ0Y7QUFFQSxZQUFNLFlBQVksSUFBSSxJQUFJLFNBQVM7QUFFbkMsVUFBSSxVQUFVLGFBQWEsV0FBVyxVQUFVLGFBQWEsVUFBVTtBQUNyRSxjQUFNLElBQUksVUFBVSxnREFBZ0QsVUFBVSxRQUFRLEVBQUU7QUFBQSxNQUMxRjtBQUVBLGFBQU8sZUFBZSxZQUFZLGNBQWM7QUFBQSxRQUM5QyxPQUFPO0FBQUEsUUFDUCxVQUFVO0FBQUEsUUFDVixZQUFZO0FBQUEsUUFDWixjQUFjO0FBQUEsTUFDaEIsQ0FBQztBQUFBLElBQ0g7QUFFQSxJQUFBQSxRQUFPLFVBQVU7QUFBQSxNQUNmO0FBQUEsTUFDQTtBQUFBLElBQ0Y7QUFBQTtBQUFBOzs7QUN2Q0E7QUFBQSxrREFBQUMsVUFBQUMsU0FBQTtBQUFBO0FBRUEsUUFBTSxTQUFTLFFBQVEsYUFBYTtBQUVwQyxRQUFNLFVBQVUsSUFBSSxZQUFZO0FBS2hDLFFBQU0sd0JBQXdCO0FBQzlCLFFBQU0sd0JBQXdCO0FBQzlCLFFBQU0saUNBQWlDO0FBSXZDLFFBQU0sNEJBQTRCO0FBSWxDLGFBQVMsaUJBQWtCLFNBQVM7QUFFbEMsYUFBTyxRQUFRLGFBQWEsT0FBTztBQUtuQyxVQUFJLFFBQVEsY0FBYyxTQUFTLElBQUk7QUFHdkMsY0FBUSxNQUFNLE1BQU0sQ0FBQztBQUdyQixZQUFNLFdBQVcsRUFBRSxVQUFVLEVBQUU7QUFLL0IsVUFBSSxXQUFXO0FBQUEsUUFDYjtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsTUFDRjtBQVFBLFlBQU0saUJBQWlCLFNBQVM7QUFDaEMsaUJBQVcsc0JBQXNCLFVBQVUsTUFBTSxJQUFJO0FBSXJELFVBQUksU0FBUyxZQUFZLE1BQU0sUUFBUTtBQUNyQyxlQUFPO0FBQUEsTUFDVDtBQUdBLGVBQVM7QUFHVCxZQUFNLGNBQWMsTUFBTSxNQUFNLGlCQUFpQixDQUFDO0FBR2xELFVBQUksT0FBTyxvQkFBb0IsV0FBVztBQUsxQyxVQUFJLHdCQUF3QixLQUFLLFFBQVEsR0FBRztBQUUxQyxjQUFNLGFBQWEsaUJBQWlCLElBQUk7QUFJeEMsZUFBTyxnQkFBZ0IsVUFBVTtBQUdqQyxZQUFJLFNBQVMsV0FBVztBQUN0QixpQkFBTztBQUFBLFFBQ1Q7QUFHQSxtQkFBVyxTQUFTLE1BQU0sR0FBRyxFQUFFO0FBSS9CLG1CQUFXLFNBQVMsUUFBUSxjQUFjLEVBQUU7QUFHNUMsbUJBQVcsU0FBUyxNQUFNLEdBQUcsRUFBRTtBQUFBLE1BQ2pDO0FBSUEsVUFBSSxTQUFTLFdBQVcsR0FBRyxHQUFHO0FBQzVCLG1CQUFXLGVBQWU7QUFBQSxNQUM1QjtBQUlBLFVBQUksaUJBQWlCLGNBQWMsUUFBUTtBQUkzQyxVQUFJLG1CQUFtQixXQUFXO0FBQ2hDLHlCQUFpQixjQUFjLDZCQUE2QjtBQUFBLE1BQzlEO0FBS0EsYUFBTyxFQUFFLFVBQVUsZ0JBQWdCLEtBQUs7QUFBQSxJQUMxQztBQU9BLGFBQVMsY0FBZUMsTUFBSyxrQkFBa0IsT0FBTztBQUNwRCxVQUFJLENBQUMsaUJBQWlCO0FBQ3BCLGVBQU9BLEtBQUk7QUFBQSxNQUNiO0FBRUEsWUFBTSxPQUFPQSxLQUFJO0FBQ2pCLFlBQU0sYUFBYUEsS0FBSSxLQUFLO0FBRTVCLFlBQU0sYUFBYSxlQUFlLElBQUksT0FBTyxLQUFLLFVBQVUsR0FBRyxLQUFLLFNBQVMsVUFBVTtBQUV2RixVQUFJLENBQUMsY0FBYyxLQUFLLFNBQVMsR0FBRyxHQUFHO0FBQ3JDLGVBQU8sV0FBVyxNQUFNLEdBQUcsRUFBRTtBQUFBLE1BQy9CO0FBRUEsYUFBTztBQUFBLElBQ1Q7QUFRQSxhQUFTLDZCQUE4QixXQUFXLE9BQU8sVUFBVTtBQUVqRSxVQUFJLFNBQVM7QUFJYixhQUFPLFNBQVMsV0FBVyxNQUFNLFVBQVUsVUFBVSxNQUFNLFNBQVMsUUFBUSxDQUFDLEdBQUc7QUFFOUUsa0JBQVUsTUFBTSxTQUFTLFFBQVE7QUFHakMsaUJBQVM7QUFBQSxNQUNYO0FBR0EsYUFBTztBQUFBLElBQ1Q7QUFRQSxhQUFTLGlDQUFrQyxNQUFNLE9BQU8sVUFBVTtBQUNoRSxZQUFNLE1BQU0sTUFBTSxRQUFRLE1BQU0sU0FBUyxRQUFRO0FBQ2pELFlBQU0sUUFBUSxTQUFTO0FBRXZCLFVBQUksUUFBUSxJQUFJO0FBQ2QsaUJBQVMsV0FBVyxNQUFNO0FBQzFCLGVBQU8sTUFBTSxNQUFNLEtBQUs7QUFBQSxNQUMxQjtBQUVBLGVBQVMsV0FBVztBQUNwQixhQUFPLE1BQU0sTUFBTSxPQUFPLFNBQVMsUUFBUTtBQUFBLElBQzdDO0FBSUEsYUFBUyxvQkFBcUIsT0FBTztBQUVuQyxZQUFNLFFBQVEsUUFBUSxPQUFPLEtBQUs7QUFHbEMsYUFBTyxjQUFjLEtBQUs7QUFBQSxJQUM1QjtBQUtBLGFBQVMsY0FBZSxNQUFNO0FBRTVCLGFBQVEsUUFBUSxNQUFRLFFBQVEsTUFBVSxRQUFRLE1BQVEsUUFBUSxNQUFVLFFBQVEsTUFBUSxRQUFRO0FBQUEsSUFDdEc7QUFLQSxhQUFTLGdCQUFpQixNQUFNO0FBQzlCO0FBQUE7QUFBQSxRQUVFLFFBQVEsTUFBUSxRQUFRLEtBQ25CLE9BQU8sTUFHTixPQUFPLE9BQVE7QUFBQTtBQUFBLElBRXpCO0FBSUEsYUFBUyxjQUFlLE9BQU87QUFDN0IsWUFBTSxTQUFTLE1BQU07QUFHckIsWUFBTSxTQUFTLElBQUksV0FBVyxNQUFNO0FBQ3BDLFVBQUksSUFBSTtBQUVSLGVBQVMsSUFBSSxHQUFHLElBQUksUUFBUSxFQUFFLEdBQUc7QUFDL0IsY0FBTSxPQUFPLE1BQU0sQ0FBQztBQUdwQixZQUFJLFNBQVMsSUFBTTtBQUNqQixpQkFBTyxHQUFHLElBQUk7QUFBQSxRQU9oQixXQUNFLFNBQVMsTUFDVCxFQUFFLGNBQWMsTUFBTSxJQUFJLENBQUMsQ0FBQyxLQUFLLGNBQWMsTUFBTSxJQUFJLENBQUMsQ0FBQyxJQUMzRDtBQUNBLGlCQUFPLEdBQUcsSUFBSTtBQUFBLFFBR2hCLE9BQU87QUFJTCxpQkFBTyxHQUFHLElBQUssZ0JBQWdCLE1BQU0sSUFBSSxDQUFDLENBQUMsS0FBSyxJQUFLLGdCQUFnQixNQUFNLElBQUksQ0FBQyxDQUFDO0FBR2pGLGVBQUs7QUFBQSxRQUNQO0FBQUEsTUFDRjtBQUdBLGFBQU8sV0FBVyxJQUFJLFNBQVMsT0FBTyxTQUFTLEdBQUcsQ0FBQztBQUFBLElBQ3JEO0FBSUEsYUFBUyxjQUFlLE9BQU87QUFHN0IsY0FBUSxxQkFBcUIsT0FBTyxNQUFNLElBQUk7QUFJOUMsWUFBTSxXQUFXLEVBQUUsVUFBVSxFQUFFO0FBSy9CLFlBQU0sT0FBTztBQUFBLFFBQ1g7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLE1BQ0Y7QUFLQSxVQUFJLEtBQUssV0FBVyxLQUFLLENBQUMsc0JBQXNCLEtBQUssSUFBSSxHQUFHO0FBQzFELGVBQU87QUFBQSxNQUNUO0FBSUEsVUFBSSxTQUFTLFdBQVcsTUFBTSxRQUFRO0FBQ3BDLGVBQU87QUFBQSxNQUNUO0FBR0EsZUFBUztBQUtULFVBQUksVUFBVTtBQUFBLFFBQ1o7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLE1BQ0Y7QUFHQSxnQkFBVSxxQkFBcUIsU0FBUyxPQUFPLElBQUk7QUFJbkQsVUFBSSxRQUFRLFdBQVcsS0FBSyxDQUFDLHNCQUFzQixLQUFLLE9BQU8sR0FBRztBQUNoRSxlQUFPO0FBQUEsTUFDVDtBQUVBLFlBQU0sZ0JBQWdCLEtBQUssWUFBWTtBQUN2QyxZQUFNLG1CQUFtQixRQUFRLFlBQVk7QUFNN0MsWUFBTSxXQUFXO0FBQUEsUUFDZixNQUFNO0FBQUEsUUFDTixTQUFTO0FBQUE7QUFBQSxRQUVULFlBQVksb0JBQUksSUFBSTtBQUFBO0FBQUEsUUFFcEIsU0FBUyxHQUFHLGFBQWEsSUFBSSxnQkFBZ0I7QUFBQSxNQUMvQztBQUdBLGFBQU8sU0FBUyxXQUFXLE1BQU0sUUFBUTtBQUV2QyxpQkFBUztBQUlUO0FBQUE7QUFBQSxVQUVFLFVBQVEsc0JBQXNCLEtBQUssSUFBSTtBQUFBLFVBQ3ZDO0FBQUEsVUFDQTtBQUFBLFFBQ0Y7QUFLQSxZQUFJLGdCQUFnQjtBQUFBLFVBQ2xCLENBQUMsU0FBUyxTQUFTLE9BQU8sU0FBUztBQUFBLFVBQ25DO0FBQUEsVUFDQTtBQUFBLFFBQ0Y7QUFJQSx3QkFBZ0IsY0FBYyxZQUFZO0FBRzFDLFlBQUksU0FBUyxXQUFXLE1BQU0sUUFBUTtBQUdwQyxjQUFJLE1BQU0sU0FBUyxRQUFRLE1BQU0sS0FBSztBQUNwQztBQUFBLFVBQ0Y7QUFHQSxtQkFBUztBQUFBLFFBQ1g7QUFHQSxZQUFJLFNBQVMsV0FBVyxNQUFNLFFBQVE7QUFDcEM7QUFBQSxRQUNGO0FBR0EsWUFBSSxpQkFBaUI7QUFJckIsWUFBSSxNQUFNLFNBQVMsUUFBUSxNQUFNLEtBQUs7QUFJcEMsMkJBQWlCLDBCQUEwQixPQUFPLFVBQVUsSUFBSTtBQUloRTtBQUFBLFlBQ0U7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFVBQ0Y7QUFBQSxRQUdGLE9BQU87QUFJTCwyQkFBaUI7QUFBQSxZQUNmO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxVQUNGO0FBR0EsMkJBQWlCLHFCQUFxQixnQkFBZ0IsT0FBTyxJQUFJO0FBR2pFLGNBQUksZUFBZSxXQUFXLEdBQUc7QUFDL0I7QUFBQSxVQUNGO0FBQUEsUUFDRjtBQVFBLFlBQ0UsY0FBYyxXQUFXLEtBQ3pCLHNCQUFzQixLQUFLLGFBQWEsTUFDdkMsZUFBZSxXQUFXLEtBQUssMEJBQTBCLEtBQUssY0FBYyxNQUM3RSxDQUFDLFNBQVMsV0FBVyxJQUFJLGFBQWEsR0FDdEM7QUFDQSxtQkFBUyxXQUFXLElBQUksZUFBZSxjQUFjO0FBQUEsUUFDdkQ7QUFBQSxNQUNGO0FBR0EsYUFBTztBQUFBLElBQ1Q7QUFJQSxhQUFTLGdCQUFpQkMsT0FBTTtBQUU5QixNQUFBQSxRQUFPQSxNQUFLLFFBQVEsZ0NBQWdDLEVBQUU7QUFFdEQsVUFBSSxhQUFhQSxNQUFLO0FBR3RCLFVBQUksYUFBYSxNQUFNLEdBQUc7QUFHeEIsWUFBSUEsTUFBSyxXQUFXLGFBQWEsQ0FBQyxNQUFNLElBQVE7QUFDOUMsWUFBRTtBQUNGLGNBQUlBLE1BQUssV0FBVyxhQUFhLENBQUMsTUFBTSxJQUFRO0FBQzlDLGNBQUU7QUFBQSxVQUNKO0FBQUEsUUFDRjtBQUFBLE1BQ0Y7QUFJQSxVQUFJLGFBQWEsTUFBTSxHQUFHO0FBQ3hCLGVBQU87QUFBQSxNQUNUO0FBT0EsVUFBSSxpQkFBaUIsS0FBS0EsTUFBSyxXQUFXLGFBQWFBLFFBQU9BLE1BQUssVUFBVSxHQUFHLFVBQVUsQ0FBQyxHQUFHO0FBQzVGLGVBQU87QUFBQSxNQUNUO0FBRUEsWUFBTSxTQUFTLE9BQU8sS0FBS0EsT0FBTSxRQUFRO0FBQ3pDLGFBQU8sSUFBSSxXQUFXLE9BQU8sUUFBUSxPQUFPLFlBQVksT0FBTyxVQUFVO0FBQUEsSUFDM0U7QUFTQSxhQUFTLDBCQUEyQixPQUFPLFVBQVUsY0FBYztBQUVqRSxZQUFNLGdCQUFnQixTQUFTO0FBRy9CLFVBQUksUUFBUTtBQUlaLGFBQU8sTUFBTSxTQUFTLFFBQVEsTUFBTSxHQUFHO0FBR3ZDLGVBQVM7QUFHVCxhQUFPLE1BQU07QUFJWCxpQkFBUztBQUFBLFVBQ1AsQ0FBQyxTQUFTLFNBQVMsT0FBTyxTQUFTO0FBQUEsVUFDbkM7QUFBQSxVQUNBO0FBQUEsUUFDRjtBQUdBLFlBQUksU0FBUyxZQUFZLE1BQU0sUUFBUTtBQUNyQztBQUFBLFFBQ0Y7QUFJQSxjQUFNLG1CQUFtQixNQUFNLFNBQVMsUUFBUTtBQUdoRCxpQkFBUztBQUdULFlBQUkscUJBQXFCLE1BQU07QUFHN0IsY0FBSSxTQUFTLFlBQVksTUFBTSxRQUFRO0FBQ3JDLHFCQUFTO0FBQ1Q7QUFBQSxVQUNGO0FBR0EsbUJBQVMsTUFBTSxTQUFTLFFBQVE7QUFHaEMsbUJBQVM7QUFBQSxRQUdYLE9BQU87QUFFTCxpQkFBTyxxQkFBcUIsR0FBRztBQUcvQjtBQUFBLFFBQ0Y7QUFBQSxNQUNGO0FBR0EsVUFBSSxjQUFjO0FBQ2hCLGVBQU87QUFBQSxNQUNUO0FBSUEsYUFBTyxNQUFNLE1BQU0sZUFBZSxTQUFTLFFBQVE7QUFBQSxJQUNyRDtBQUtBLGFBQVMsbUJBQW9CLFVBQVU7QUFDckMsYUFBTyxhQUFhLFNBQVM7QUFDN0IsWUFBTSxFQUFFLFlBQVksUUFBUSxJQUFJO0FBSWhDLFVBQUksZ0JBQWdCO0FBR3BCLGVBQVMsQ0FBQyxNQUFNLEtBQUssS0FBSyxXQUFXLFFBQVEsR0FBRztBQUU5Qyx5QkFBaUI7QUFHakIseUJBQWlCO0FBR2pCLHlCQUFpQjtBQUlqQixZQUFJLENBQUMsc0JBQXNCLEtBQUssS0FBSyxHQUFHO0FBR3RDLGtCQUFRLE1BQU0sUUFBUSxXQUFXLE1BQU07QUFHdkMsa0JBQVEsTUFBTTtBQUdkLG1CQUFTO0FBQUEsUUFDWDtBQUdBLHlCQUFpQjtBQUFBLE1BQ25CO0FBR0EsYUFBTztBQUFBLElBQ1Q7QUFNQSxhQUFTLGlCQUFrQixNQUFNO0FBRS9CLGFBQU8sU0FBUyxNQUFTLFNBQVMsTUFBUyxTQUFTLEtBQVMsU0FBUztBQUFBLElBQ3hFO0FBUUEsYUFBUyxxQkFBc0IsS0FBSyxVQUFVLE1BQU0sV0FBVyxNQUFNO0FBQ25FLGFBQU8sWUFBWSxLQUFLLFNBQVMsVUFBVSxnQkFBZ0I7QUFBQSxJQUM3RDtBQU1BLGFBQVMsa0JBQW1CLE1BQU07QUFFaEMsYUFBTyxTQUFTLE1BQVMsU0FBUyxNQUFTLFNBQVMsS0FBUyxTQUFTLE1BQVMsU0FBUztBQUFBLElBQzFGO0FBUUEsYUFBUyxzQkFBdUIsS0FBSyxVQUFVLE1BQU0sV0FBVyxNQUFNO0FBQ3BFLGFBQU8sWUFBWSxLQUFLLFNBQVMsVUFBVSxpQkFBaUI7QUFBQSxJQUM5RDtBQVNBLGFBQVMsWUFBYSxLQUFLLFNBQVMsVUFBVSxXQUFXO0FBQ3ZELFVBQUksT0FBTztBQUNYLFVBQUksUUFBUSxJQUFJLFNBQVM7QUFFekIsVUFBSSxTQUFTO0FBQ1gsZUFBTyxPQUFPLElBQUksVUFBVSxVQUFVLElBQUksV0FBVyxJQUFJLENBQUMsRUFBRztBQUFBLE1BQy9EO0FBRUEsVUFBSSxVQUFVO0FBQ1osZUFBTyxRQUFRLEtBQUssVUFBVSxJQUFJLFdBQVcsS0FBSyxDQUFDLEVBQUc7QUFBQSxNQUN4RDtBQUVBLGFBQU8sU0FBUyxLQUFLLFVBQVUsSUFBSSxTQUFTLElBQUksTUFBTSxJQUFJLE1BQU0sTUFBTSxRQUFRLENBQUM7QUFBQSxJQUNqRjtBQU9BLGFBQVMsaUJBQWtCLE9BQU87QUFJaEMsWUFBTSxTQUFTLE1BQU07QUFDckIsV0FBSyxLQUFLLE1BQU0sSUFBSSxRQUFRO0FBQzFCLGVBQU8sT0FBTyxhQUFhLE1BQU0sTUFBTSxLQUFLO0FBQUEsTUFDOUM7QUFDQSxVQUFJLFNBQVM7QUFBSSxVQUFJLElBQUk7QUFDekIsVUFBSSxZQUFZLEtBQUssTUFBTTtBQUMzQixhQUFPLElBQUksUUFBUTtBQUNqQixZQUFJLElBQUksV0FBVyxRQUFRO0FBQ3pCLHFCQUFXLFNBQVM7QUFBQSxRQUN0QjtBQUNBLGtCQUFVLE9BQU8sYUFBYSxNQUFNLE1BQU0sTUFBTSxTQUFTLEdBQUcsS0FBSyxRQUFRLENBQUM7QUFBQSxNQUM1RTtBQUNBLGFBQU87QUFBQSxJQUNUO0FBTUEsYUFBUywwQkFBMkIsVUFBVTtBQUM1QyxjQUFRLFNBQVMsU0FBUztBQUFBLFFBQ3hCLEtBQUs7QUFBQSxRQUNMLEtBQUs7QUFBQSxRQUNMLEtBQUs7QUFBQSxRQUNMLEtBQUs7QUFBQSxRQUNMLEtBQUs7QUFBQSxRQUNMLEtBQUs7QUFBQSxRQUNMLEtBQUs7QUFBQSxRQUNMLEtBQUs7QUFBQSxRQUNMLEtBQUs7QUFBQSxRQUNMLEtBQUs7QUFBQSxRQUNMLEtBQUs7QUFBQSxRQUNMLEtBQUs7QUFBQSxRQUNMLEtBQUs7QUFBQSxRQUNMLEtBQUs7QUFBQSxRQUNMLEtBQUs7QUFBQSxRQUNMLEtBQUs7QUFFSCxpQkFBTztBQUFBLFFBQ1QsS0FBSztBQUFBLFFBQ0wsS0FBSztBQUVILGlCQUFPO0FBQUEsUUFDVCxLQUFLO0FBRUgsaUJBQU87QUFBQSxRQUNULEtBQUs7QUFBQSxRQUNMLEtBQUs7QUFFSCxpQkFBTztBQUFBLE1BQ1g7QUFHQSxVQUFJLFNBQVMsUUFBUSxTQUFTLE9BQU8sR0FBRztBQUN0QyxlQUFPO0FBQUEsTUFDVDtBQUdBLFVBQUksU0FBUyxRQUFRLFNBQVMsTUFBTSxHQUFHO0FBQ3JDLGVBQU87QUFBQSxNQUNUO0FBTUEsYUFBTztBQUFBLElBQ1Q7QUFFQSxJQUFBRixRQUFPLFVBQVU7QUFBQSxNQUNmO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsSUFDRjtBQUFBO0FBQUE7OztBQ3Z1QkE7QUFBQSxnREFBQUcsVUFBQUMsU0FBQTtBQUFBO0FBRUEsUUFBTSxFQUFFLE9BQU8sUUFBUSxJQUFJLFFBQVEsV0FBVztBQUM5QyxRQUFNLEVBQUUsa0JBQWtCLElBQUksUUFBUSxxQkFBcUI7QUFDM0QsUUFBTSxFQUFFLFlBQVksSUFBSTtBQUd4QixRQUFNLFNBQVMsQ0FBQztBQUNoQixXQUFPLGFBQWEsQ0FBQztBQUNyQixXQUFPLE9BQU8sQ0FBQztBQUNmLFdBQU8sU0FBUyxDQUFDO0FBRWpCLFdBQU8sT0FBTyxZQUFZLFNBQVUsU0FBUztBQUMzQyxhQUFPLElBQUksVUFBVSxHQUFHLFFBQVEsTUFBTSxLQUFLLFFBQVEsT0FBTyxFQUFFO0FBQUEsSUFDOUQ7QUFFQSxXQUFPLE9BQU8sbUJBQW1CLFNBQVUsU0FBUztBQUNsRCxZQUFNLFNBQVMsUUFBUSxNQUFNLFdBQVcsSUFBSSxLQUFLO0FBQ2pELFlBQU0sVUFDSixHQUFHLFFBQVEsUUFBUSw2QkFDaEIsTUFBTSxLQUFLLFFBQVEsTUFBTSxLQUFLLElBQUksQ0FBQztBQUV4QyxhQUFPLE9BQU8sT0FBTyxVQUFVO0FBQUEsUUFDN0IsUUFBUSxRQUFRO0FBQUEsUUFDaEI7QUFBQSxNQUNGLENBQUM7QUFBQSxJQUNIO0FBRUEsV0FBTyxPQUFPLGtCQUFrQixTQUFVLFNBQVM7QUFDakQsYUFBTyxPQUFPLE9BQU8sVUFBVTtBQUFBLFFBQzdCLFFBQVEsUUFBUTtBQUFBLFFBQ2hCLFNBQVMsSUFBSSxRQUFRLEtBQUssbUJBQW1CLFFBQVEsSUFBSTtBQUFBLE1BQzNELENBQUM7QUFBQSxJQUNIO0FBR0EsV0FBTyxhQUFhLFNBQVUsR0FBRyxHQUFHLE1BQU07QUFDeEMsVUFBSSxNQUFNLFdBQVcsT0FBTztBQUMxQixZQUFJLEVBQUUsYUFBYSxJQUFJO0FBQ3JCLGdCQUFNQyxPQUFNLElBQUksVUFBVSxvQkFBb0I7QUFDOUMsVUFBQUEsS0FBSSxPQUFPO0FBQ1gsZ0JBQU1BO0FBQUEsUUFDUjtBQUFBLE1BQ0YsT0FBTztBQUNMLFlBQUksSUFBSSxPQUFPLFdBQVcsTUFBTSxFQUFFLFVBQVUsT0FBTyxXQUFXLEdBQUc7QUFDL0QsZ0JBQU1BLE9BQU0sSUFBSSxVQUFVLG9CQUFvQjtBQUM5QyxVQUFBQSxLQUFJLE9BQU87QUFDWCxnQkFBTUE7QUFBQSxRQUNSO0FBQUEsTUFDRjtBQUFBLElBQ0Y7QUFFQSxXQUFPLHNCQUFzQixTQUFVLEVBQUUsT0FBTyxHQUFHLEtBQUssS0FBSztBQUMzRCxVQUFJLFNBQVMsS0FBSztBQUNoQixjQUFNLE9BQU8sT0FBTyxVQUFVO0FBQUEsVUFDNUIsU0FBUyxHQUFHLEdBQUcsWUFBWSxRQUFRLElBQUksTUFBTSxFQUFFLGlCQUNoQyxTQUFTLFVBQVUsRUFBRSxJQUFJLE1BQU07QUFBQSxVQUM5QyxRQUFRO0FBQUEsUUFDVixDQUFDO0FBQUEsTUFDSDtBQUFBLElBQ0Y7QUFFQSxXQUFPLHFCQUFxQixXQUFZO0FBQ3RDLFlBQU0sT0FBTyxPQUFPLFVBQVU7QUFBQSxRQUM1QixRQUFRO0FBQUEsUUFDUixTQUFTO0FBQUEsTUFDWCxDQUFDO0FBQUEsSUFDSDtBQUdBLFdBQU8sS0FBSyxPQUFPLFNBQVUsR0FBRztBQUM5QixjQUFRLE9BQU8sR0FBRztBQUFBLFFBQ2hCLEtBQUs7QUFBYSxpQkFBTztBQUFBLFFBQ3pCLEtBQUs7QUFBVyxpQkFBTztBQUFBLFFBQ3ZCLEtBQUs7QUFBVSxpQkFBTztBQUFBLFFBQ3RCLEtBQUs7QUFBVSxpQkFBTztBQUFBLFFBQ3RCLEtBQUs7QUFBVSxpQkFBTztBQUFBLFFBQ3RCLEtBQUs7QUFBVSxpQkFBTztBQUFBLFFBQ3RCLEtBQUs7QUFBQSxRQUNMLEtBQUssVUFBVTtBQUNiLGNBQUksTUFBTSxNQUFNO0FBQ2QsbUJBQU87QUFBQSxVQUNUO0FBRUEsaUJBQU87QUFBQSxRQUNUO0FBQUEsTUFDRjtBQUFBLElBQ0Y7QUFFQSxXQUFPLEtBQUssb0JBQW9CLHNCQUFzQixNQUFNO0FBQUEsSUFBQztBQUU3RCxXQUFPLEtBQUssZUFBZSxTQUFVLEdBQUcsV0FBVyxZQUFZLE1BQU07QUFDbkUsVUFBSTtBQUNKLFVBQUk7QUFHSixVQUFJLGNBQWMsSUFBSTtBQUVwQixxQkFBYSxLQUFLLElBQUksR0FBRyxFQUFFLElBQUk7QUFHL0IsWUFBSSxlQUFlLFlBQVk7QUFDN0IsdUJBQWE7QUFBQSxRQUNmLE9BQU87QUFFTCx1QkFBYSxLQUFLLElBQUksSUFBSSxFQUFFLElBQUk7QUFBQSxRQUNsQztBQUFBLE1BQ0YsV0FBVyxlQUFlLFlBQVk7QUFJcEMscUJBQWE7QUFHYixxQkFBYSxLQUFLLElBQUksR0FBRyxTQUFTLElBQUk7QUFBQSxNQUN4QyxPQUFPO0FBSUwscUJBQWEsS0FBSyxJQUFJLElBQUksU0FBUyxJQUFJO0FBR3ZDLHFCQUFhLEtBQUssSUFBSSxHQUFHLFlBQVksQ0FBQyxJQUFJO0FBQUEsTUFDNUM7QUFHQSxVQUFJLElBQUksT0FBTyxDQUFDO0FBR2hCLFVBQUksTUFBTSxHQUFHO0FBQ1gsWUFBSTtBQUFBLE1BQ047QUFJQSxVQUFJLE1BQU0saUJBQWlCLE1BQU07QUFFL0IsWUFDRSxPQUFPLE1BQU0sQ0FBQyxLQUNkLE1BQU0sT0FBTyxxQkFDYixNQUFNLE9BQU8sbUJBQ2I7QUFDQSxnQkFBTSxPQUFPLE9BQU8sVUFBVTtBQUFBLFlBQzVCLFFBQVE7QUFBQSxZQUNSLFNBQVMscUJBQXFCLE9BQU8sS0FBSyxVQUFVLENBQUMsQ0FBQztBQUFBLFVBQ3hELENBQUM7QUFBQSxRQUNIO0FBR0EsWUFBSSxPQUFPLEtBQUssWUFBWSxDQUFDO0FBSTdCLFlBQUksSUFBSSxjQUFjLElBQUksWUFBWTtBQUNwQyxnQkFBTSxPQUFPLE9BQU8sVUFBVTtBQUFBLFlBQzVCLFFBQVE7QUFBQSxZQUNSLFNBQVMseUJBQXlCLFVBQVUsSUFBSSxVQUFVLFNBQVMsQ0FBQztBQUFBLFVBQ3RFLENBQUM7QUFBQSxRQUNIO0FBR0EsZUFBTztBQUFBLE1BQ1Q7QUFLQSxVQUFJLENBQUMsT0FBTyxNQUFNLENBQUMsS0FBSyxNQUFNLFVBQVUsTUFBTTtBQUU1QyxZQUFJLEtBQUssSUFBSSxLQUFLLElBQUksR0FBRyxVQUFVLEdBQUcsVUFBVTtBQUtoRCxZQUFJLEtBQUssTUFBTSxDQUFDLElBQUksTUFBTSxHQUFHO0FBQzNCLGNBQUksS0FBSyxNQUFNLENBQUM7QUFBQSxRQUNsQixPQUFPO0FBQ0wsY0FBSSxLQUFLLEtBQUssQ0FBQztBQUFBLFFBQ2pCO0FBR0EsZUFBTztBQUFBLE1BQ1Q7QUFHQSxVQUNFLE9BQU8sTUFBTSxDQUFDLEtBQ2IsTUFBTSxLQUFLLE9BQU8sR0FBRyxHQUFHLENBQUMsS0FDMUIsTUFBTSxPQUFPLHFCQUNiLE1BQU0sT0FBTyxtQkFDYjtBQUNBLGVBQU87QUFBQSxNQUNUO0FBR0EsVUFBSSxPQUFPLEtBQUssWUFBWSxDQUFDO0FBRzdCLFVBQUksSUFBSSxLQUFLLElBQUksR0FBRyxTQUFTO0FBSTdCLFVBQUksZUFBZSxZQUFZLEtBQUssS0FBSyxJQUFJLEdBQUcsU0FBUyxJQUFJLEdBQUc7QUFDOUQsZUFBTyxJQUFJLEtBQUssSUFBSSxHQUFHLFNBQVM7QUFBQSxNQUNsQztBQUdBLGFBQU87QUFBQSxJQUNUO0FBR0EsV0FBTyxLQUFLLGNBQWMsU0FBVSxHQUFHO0FBRXJDLFlBQU0sSUFBSSxLQUFLLE1BQU0sS0FBSyxJQUFJLENBQUMsQ0FBQztBQUdoQyxVQUFJLElBQUksR0FBRztBQUNULGVBQU8sS0FBSztBQUFBLE1BQ2Q7QUFHQSxhQUFPO0FBQUEsSUFDVDtBQUVBLFdBQU8sS0FBSyxZQUFZLFNBQVUsR0FBRztBQUNuQyxZQUFNLE9BQU8sT0FBTyxLQUFLLEtBQUssQ0FBQztBQUUvQixjQUFRLE1BQU07QUFBQSxRQUNaLEtBQUs7QUFDSCxpQkFBTyxVQUFVLEVBQUUsV0FBVztBQUFBLFFBQ2hDLEtBQUs7QUFDSCxpQkFBTyxRQUFRLENBQUM7QUFBQSxRQUNsQixLQUFLO0FBQ0gsaUJBQU8sSUFBSSxDQUFDO0FBQUEsUUFDZDtBQUNFLGlCQUFPLEdBQUcsQ0FBQztBQUFBLE1BQ2Y7QUFBQSxJQUNGO0FBR0EsV0FBTyxvQkFBb0IsU0FBVSxXQUFXO0FBQzlDLGFBQU8sQ0FBQyxHQUFHLFFBQVEsVUFBVSxhQUFhO0FBRXhDLFlBQUksT0FBTyxLQUFLLEtBQUssQ0FBQyxNQUFNLFVBQVU7QUFDcEMsZ0JBQU0sT0FBTyxPQUFPLFVBQVU7QUFBQSxZQUM1QixRQUFRO0FBQUEsWUFDUixTQUFTLEdBQUcsUUFBUSxLQUFLLE9BQU8sS0FBSyxVQUFVLENBQUMsQ0FBQztBQUFBLFVBQ25ELENBQUM7QUFBQSxRQUNIO0FBSUEsY0FBTSxTQUFTLE9BQU8sYUFBYSxhQUFhLFNBQVMsSUFBSSxJQUFJLE9BQU8sUUFBUSxJQUFJO0FBQ3BGLGNBQU0sTUFBTSxDQUFDO0FBQ2IsWUFBSUMsU0FBUTtBQUdaLFlBQ0UsV0FBVyxVQUNYLE9BQU8sT0FBTyxTQUFTLFlBQ3ZCO0FBQ0EsZ0JBQU0sT0FBTyxPQUFPLFVBQVU7QUFBQSxZQUM1QixRQUFRO0FBQUEsWUFDUixTQUFTLEdBQUcsUUFBUTtBQUFBLFVBQ3RCLENBQUM7QUFBQSxRQUNIO0FBR0EsZUFBTyxNQUFNO0FBQ1gsZ0JBQU0sRUFBRSxNQUFNLE1BQU0sSUFBSSxPQUFPLEtBQUs7QUFFcEMsY0FBSSxNQUFNO0FBQ1I7QUFBQSxVQUNGO0FBRUEsY0FBSSxLQUFLLFVBQVUsT0FBTyxRQUFRLEdBQUcsUUFBUSxJQUFJQSxRQUFPLEdBQUcsQ0FBQztBQUFBLFFBQzlEO0FBRUEsZUFBTztBQUFBLE1BQ1Q7QUFBQSxJQUNGO0FBR0EsV0FBTyxrQkFBa0IsU0FBVSxjQUFjLGdCQUFnQjtBQUMvRCxhQUFPLENBQUMsR0FBRyxRQUFRLGFBQWE7QUFFOUIsWUFBSSxPQUFPLEtBQUssS0FBSyxDQUFDLE1BQU0sVUFBVTtBQUNwQyxnQkFBTSxPQUFPLE9BQU8sVUFBVTtBQUFBLFlBQzVCLFFBQVE7QUFBQSxZQUNSLFNBQVMsR0FBRyxRQUFRLE1BQU0sT0FBTyxLQUFLLEtBQUssQ0FBQyxDQUFDO0FBQUEsVUFDL0MsQ0FBQztBQUFBLFFBQ0g7QUFHQSxjQUFNLFNBQVMsQ0FBQztBQUVoQixZQUFJLENBQUMsTUFBTSxRQUFRLENBQUMsR0FBRztBQUVyQixnQkFBTUMsUUFBTyxDQUFDLEdBQUcsT0FBTyxvQkFBb0IsQ0FBQyxHQUFHLEdBQUcsT0FBTyxzQkFBc0IsQ0FBQyxDQUFDO0FBRWxGLHFCQUFXLE9BQU9BLE9BQU07QUFFdEIsa0JBQU0sV0FBVyxhQUFhLEtBQUssUUFBUSxRQUFRO0FBSW5ELGtCQUFNLGFBQWEsZUFBZSxFQUFFLEdBQUcsR0FBRyxRQUFRLFFBQVE7QUFHMUQsbUJBQU8sUUFBUSxJQUFJO0FBQUEsVUFDckI7QUFHQSxpQkFBTztBQUFBLFFBQ1Q7QUFHQSxjQUFNLE9BQU8sUUFBUSxRQUFRLENBQUM7QUFHOUIsbUJBQVcsT0FBTyxNQUFNO0FBRXRCLGdCQUFNLE9BQU8sUUFBUSx5QkFBeUIsR0FBRyxHQUFHO0FBR3BELGNBQUksTUFBTSxZQUFZO0FBRXBCLGtCQUFNLFdBQVcsYUFBYSxLQUFLLFFBQVEsUUFBUTtBQUluRCxrQkFBTSxhQUFhLGVBQWUsRUFBRSxHQUFHLEdBQUcsUUFBUSxRQUFRO0FBRzFELG1CQUFPLFFBQVEsSUFBSTtBQUFBLFVBQ3JCO0FBQUEsUUFDRjtBQUdBLGVBQU87QUFBQSxNQUNUO0FBQUEsSUFDRjtBQUVBLFdBQU8scUJBQXFCLFNBQVUsR0FBRztBQUN2QyxhQUFPLENBQUMsR0FBRyxRQUFRLFVBQVUsU0FBUztBQUNwQyxZQUFJLE1BQU0sV0FBVyxTQUFTLEVBQUUsYUFBYSxJQUFJO0FBQy9DLGdCQUFNLE9BQU8sT0FBTyxVQUFVO0FBQUEsWUFDNUIsUUFBUTtBQUFBLFlBQ1IsU0FBUyxZQUFZLFFBQVEsTUFBTSxPQUFPLEtBQUssVUFBVSxDQUFDLENBQUMsMkJBQTJCLEVBQUUsSUFBSTtBQUFBLFVBQzlGLENBQUM7QUFBQSxRQUNIO0FBRUEsZUFBTztBQUFBLE1BQ1Q7QUFBQSxJQUNGO0FBRUEsV0FBTyxzQkFBc0IsU0FBVSxZQUFZO0FBQ2pELGFBQU8sQ0FBQyxZQUFZLFFBQVEsYUFBYTtBQUN2QyxjQUFNLE9BQU8sT0FBTyxLQUFLLEtBQUssVUFBVTtBQUN4QyxjQUFNLE9BQU8sQ0FBQztBQUVkLFlBQUksU0FBUyxVQUFVLFNBQVMsYUFBYTtBQUMzQyxpQkFBTztBQUFBLFFBQ1QsV0FBVyxTQUFTLFVBQVU7QUFDNUIsZ0JBQU0sT0FBTyxPQUFPLFVBQVU7QUFBQSxZQUM1QixRQUFRO0FBQUEsWUFDUixTQUFTLFlBQVksVUFBVTtBQUFBLFVBQ2pDLENBQUM7QUFBQSxRQUNIO0FBRUEsbUJBQVcsV0FBVyxZQUFZO0FBQ2hDLGdCQUFNLEVBQUUsS0FBSyxjQUFjLFVBQVUsVUFBVSxJQUFJO0FBRW5ELGNBQUksYUFBYSxNQUFNO0FBQ3JCLGdCQUFJLENBQUMsT0FBTyxPQUFPLFlBQVksR0FBRyxHQUFHO0FBQ25DLG9CQUFNLE9BQU8sT0FBTyxVQUFVO0FBQUEsZ0JBQzVCLFFBQVE7QUFBQSxnQkFDUixTQUFTLHlCQUF5QixHQUFHO0FBQUEsY0FDdkMsQ0FBQztBQUFBLFlBQ0g7QUFBQSxVQUNGO0FBRUEsY0FBSSxRQUFRLFdBQVcsR0FBRztBQUMxQixnQkFBTSxhQUFhLE9BQU8sT0FBTyxTQUFTLGNBQWM7QUFJeEQsY0FBSSxjQUFjLFVBQVUsTUFBTTtBQUNoQyxzQkFBVSxhQUFhO0FBQUEsVUFDekI7QUFLQSxjQUFJLFlBQVksY0FBYyxVQUFVLFFBQVc7QUFDakQsb0JBQVEsVUFBVSxPQUFPLFFBQVEsR0FBRyxRQUFRLElBQUksR0FBRyxFQUFFO0FBRXJELGdCQUNFLFFBQVEsaUJBQ1IsQ0FBQyxRQUFRLGNBQWMsU0FBUyxLQUFLLEdBQ3JDO0FBQ0Esb0JBQU0sT0FBTyxPQUFPLFVBQVU7QUFBQSxnQkFDNUIsUUFBUTtBQUFBLGdCQUNSLFNBQVMsR0FBRyxLQUFLLDZDQUE2QyxRQUFRLGNBQWMsS0FBSyxJQUFJLENBQUM7QUFBQSxjQUNoRyxDQUFDO0FBQUEsWUFDSDtBQUVBLGlCQUFLLEdBQUcsSUFBSTtBQUFBLFVBQ2Q7QUFBQSxRQUNGO0FBRUEsZUFBTztBQUFBLE1BQ1Q7QUFBQSxJQUNGO0FBRUEsV0FBTyxvQkFBb0IsU0FBVSxXQUFXO0FBQzlDLGFBQU8sQ0FBQyxHQUFHLFFBQVEsYUFBYTtBQUM5QixZQUFJLE1BQU0sTUFBTTtBQUNkLGlCQUFPO0FBQUEsUUFDVDtBQUVBLGVBQU8sVUFBVSxHQUFHLFFBQVEsUUFBUTtBQUFBLE1BQ3RDO0FBQUEsSUFDRjtBQUdBLFdBQU8sV0FBVyxZQUFZLFNBQVUsR0FBRyxRQUFRLFVBQVUsTUFBTTtBQUtqRSxVQUFJLE1BQU0sUUFBUSxNQUFNLHlCQUF5QjtBQUMvQyxlQUFPO0FBQUEsTUFDVDtBQUdBLFVBQUksT0FBTyxNQUFNLFVBQVU7QUFDekIsY0FBTSxPQUFPLE9BQU8sVUFBVTtBQUFBLFVBQzVCLFFBQVE7QUFBQSxVQUNSLFNBQVMsR0FBRyxRQUFRO0FBQUEsUUFDdEIsQ0FBQztBQUFBLE1BQ0g7QUFLQSxhQUFPLE9BQU8sQ0FBQztBQUFBLElBQ2pCO0FBR0EsV0FBTyxXQUFXLGFBQWEsU0FBVSxHQUFHLFFBQVEsVUFBVTtBQUc1RCxZQUFNLElBQUksT0FBTyxXQUFXLFVBQVUsR0FBRyxRQUFRLFFBQVE7QUFJekQsZUFBU0QsU0FBUSxHQUFHQSxTQUFRLEVBQUUsUUFBUUEsVUFBUztBQUM3QyxZQUFJLEVBQUUsV0FBV0EsTUFBSyxJQUFJLEtBQUs7QUFDN0IsZ0JBQU0sSUFBSTtBQUFBLFlBQ1IsMEVBQ1NBLE1BQUssbUJBQW1CLEVBQUUsV0FBV0EsTUFBSyxDQUFDO0FBQUEsVUFDdEQ7QUFBQSxRQUNGO0FBQUEsTUFDRjtBQUtBLGFBQU87QUFBQSxJQUNUO0FBSUEsV0FBTyxXQUFXLFlBQVk7QUFHOUIsV0FBTyxXQUFXLFVBQVUsU0FBVSxHQUFHO0FBRXZDLFlBQU0sSUFBSSxRQUFRLENBQUM7QUFJbkIsYUFBTztBQUFBLElBQ1Q7QUFHQSxXQUFPLFdBQVcsTUFBTSxTQUFVLEdBQUc7QUFDbkMsYUFBTztBQUFBLElBQ1Q7QUFHQSxXQUFPLFdBQVcsV0FBVyxJQUFJLFNBQVUsR0FBRyxRQUFRLFVBQVU7QUFFOUQsWUFBTSxJQUFJLE9BQU8sS0FBSyxhQUFhLEdBQUcsSUFBSSxVQUFVLFFBQVcsUUFBUSxRQUFRO0FBSS9FLGFBQU87QUFBQSxJQUNUO0FBR0EsV0FBTyxXQUFXLG9CQUFvQixJQUFJLFNBQVUsR0FBRyxRQUFRLFVBQVU7QUFFdkUsWUFBTSxJQUFJLE9BQU8sS0FBSyxhQUFhLEdBQUcsSUFBSSxZQUFZLFFBQVcsUUFBUSxRQUFRO0FBSWpGLGFBQU87QUFBQSxJQUNUO0FBR0EsV0FBTyxXQUFXLGVBQWUsSUFBSSxTQUFVLEdBQUcsUUFBUSxVQUFVO0FBRWxFLFlBQU0sSUFBSSxPQUFPLEtBQUssYUFBYSxHQUFHLElBQUksWUFBWSxRQUFXLFFBQVEsUUFBUTtBQUlqRixhQUFPO0FBQUEsSUFDVDtBQUdBLFdBQU8sV0FBVyxnQkFBZ0IsSUFBSSxTQUFVLEdBQUcsUUFBUSxVQUFVLE1BQU07QUFFekUsWUFBTSxJQUFJLE9BQU8sS0FBSyxhQUFhLEdBQUcsSUFBSSxZQUFZLE1BQU0sUUFBUSxRQUFRO0FBSTVFLGFBQU87QUFBQSxJQUNUO0FBR0EsV0FBTyxXQUFXLGNBQWMsU0FBVSxHQUFHLFFBQVEsVUFBVSxNQUFNO0FBTW5FLFVBQ0UsT0FBTyxLQUFLLEtBQUssQ0FBQyxNQUFNLFlBQ3hCLENBQUMsTUFBTSxpQkFBaUIsQ0FBQyxHQUN6QjtBQUNBLGNBQU0sT0FBTyxPQUFPLGlCQUFpQjtBQUFBLFVBQ25DO0FBQUEsVUFDQSxVQUFVLEdBQUcsUUFBUSxNQUFNLE9BQU8sS0FBSyxVQUFVLENBQUMsQ0FBQztBQUFBLFVBQ25ELE9BQU8sQ0FBQyxhQUFhO0FBQUEsUUFDdkIsQ0FBQztBQUFBLE1BQ0g7QUFNQSxVQUFJLE1BQU0sZ0JBQWdCLFNBQVMsTUFBTSxvQkFBb0IsQ0FBQyxHQUFHO0FBQy9ELGNBQU0sT0FBTyxPQUFPLFVBQVU7QUFBQSxVQUM1QixRQUFRO0FBQUEsVUFDUixTQUFTO0FBQUEsUUFDWCxDQUFDO0FBQUEsTUFDSDtBQU1BLFVBQUksRUFBRSxhQUFhLEVBQUUsVUFBVTtBQUM3QixjQUFNLE9BQU8sT0FBTyxVQUFVO0FBQUEsVUFDNUIsUUFBUTtBQUFBLFVBQ1IsU0FBUztBQUFBLFFBQ1gsQ0FBQztBQUFBLE1BQ0g7QUFJQSxhQUFPO0FBQUEsSUFDVDtBQUVBLFdBQU8sV0FBVyxhQUFhLFNBQVUsR0FBRyxHQUFHLFFBQVEsTUFBTSxNQUFNO0FBTWpFLFVBQ0UsT0FBTyxLQUFLLEtBQUssQ0FBQyxNQUFNLFlBQ3hCLENBQUMsTUFBTSxhQUFhLENBQUMsS0FDckIsRUFBRSxZQUFZLFNBQVMsRUFBRSxNQUN6QjtBQUNBLGNBQU0sT0FBTyxPQUFPLGlCQUFpQjtBQUFBLFVBQ25DO0FBQUEsVUFDQSxVQUFVLEdBQUcsSUFBSSxNQUFNLE9BQU8sS0FBSyxVQUFVLENBQUMsQ0FBQztBQUFBLFVBQy9DLE9BQU8sQ0FBQyxFQUFFLElBQUk7QUFBQSxRQUNoQixDQUFDO0FBQUEsTUFDSDtBQU1BLFVBQUksTUFBTSxnQkFBZ0IsU0FBUyxNQUFNLG9CQUFvQixFQUFFLE1BQU0sR0FBRztBQUN0RSxjQUFNLE9BQU8sT0FBTyxVQUFVO0FBQUEsVUFDNUIsUUFBUTtBQUFBLFVBQ1IsU0FBUztBQUFBLFFBQ1gsQ0FBQztBQUFBLE1BQ0g7QUFNQSxVQUFJLEVBQUUsT0FBTyxhQUFhLEVBQUUsT0FBTyxVQUFVO0FBQzNDLGNBQU0sT0FBTyxPQUFPLFVBQVU7QUFBQSxVQUM1QixRQUFRO0FBQUEsVUFDUixTQUFTO0FBQUEsUUFDWCxDQUFDO0FBQUEsTUFDSDtBQUlBLGFBQU87QUFBQSxJQUNUO0FBRUEsV0FBTyxXQUFXLFdBQVcsU0FBVSxHQUFHLFFBQVEsTUFBTSxNQUFNO0FBRzVELFVBQUksT0FBTyxLQUFLLEtBQUssQ0FBQyxNQUFNLFlBQVksQ0FBQyxNQUFNLFdBQVcsQ0FBQyxHQUFHO0FBQzVELGNBQU0sT0FBTyxPQUFPLFVBQVU7QUFBQSxVQUM1QixRQUFRO0FBQUEsVUFDUixTQUFTLEdBQUcsSUFBSTtBQUFBLFFBQ2xCLENBQUM7QUFBQSxNQUNIO0FBTUEsVUFBSSxNQUFNLGdCQUFnQixTQUFTLE1BQU0sb0JBQW9CLEVBQUUsTUFBTSxHQUFHO0FBQ3RFLGNBQU0sT0FBTyxPQUFPLFVBQVU7QUFBQSxVQUM1QixRQUFRO0FBQUEsVUFDUixTQUFTO0FBQUEsUUFDWCxDQUFDO0FBQUEsTUFDSDtBQU1BLFVBQUksRUFBRSxPQUFPLGFBQWEsRUFBRSxPQUFPLFVBQVU7QUFDM0MsY0FBTSxPQUFPLE9BQU8sVUFBVTtBQUFBLFVBQzVCLFFBQVE7QUFBQSxVQUNSLFNBQVM7QUFBQSxRQUNYLENBQUM7QUFBQSxNQUNIO0FBSUEsYUFBTztBQUFBLElBQ1Q7QUFHQSxXQUFPLFdBQVcsZUFBZSxTQUFVLEdBQUcsUUFBUSxNQUFNLE1BQU07QUFDaEUsVUFBSSxNQUFNLGlCQUFpQixDQUFDLEdBQUc7QUFDN0IsZUFBTyxPQUFPLFdBQVcsWUFBWSxHQUFHLFFBQVEsTUFBTSxFQUFFLEdBQUcsTUFBTSxhQUFhLE1BQU0sQ0FBQztBQUFBLE1BQ3ZGO0FBRUEsVUFBSSxNQUFNLGFBQWEsQ0FBQyxHQUFHO0FBQ3pCLGVBQU8sT0FBTyxXQUFXLFdBQVcsR0FBRyxFQUFFLGFBQWEsUUFBUSxNQUFNLEVBQUUsR0FBRyxNQUFNLGFBQWEsTUFBTSxDQUFDO0FBQUEsTUFDckc7QUFFQSxVQUFJLE1BQU0sV0FBVyxDQUFDLEdBQUc7QUFDdkIsZUFBTyxPQUFPLFdBQVcsU0FBUyxHQUFHLFFBQVEsTUFBTSxFQUFFLEdBQUcsTUFBTSxhQUFhLE1BQU0sQ0FBQztBQUFBLE1BQ3BGO0FBRUEsWUFBTSxPQUFPLE9BQU8saUJBQWlCO0FBQUEsUUFDbkM7QUFBQSxRQUNBLFVBQVUsR0FBRyxJQUFJLE1BQU0sT0FBTyxLQUFLLFVBQVUsQ0FBQyxDQUFDO0FBQUEsUUFDL0MsT0FBTyxDQUFDLGNBQWM7QUFBQSxNQUN4QixDQUFDO0FBQUEsSUFDSDtBQUVBLFdBQU8sV0FBVyxzQkFBc0IsSUFBSSxPQUFPO0FBQUEsTUFDakQsT0FBTyxXQUFXO0FBQUEsSUFDcEI7QUFFQSxXQUFPLFdBQVcsZ0NBQWdDLElBQUksT0FBTztBQUFBLE1BQzNELE9BQU8sV0FBVyxzQkFBc0I7QUFBQSxJQUMxQztBQUVBLFdBQU8sV0FBVyxnQ0FBZ0MsSUFBSSxPQUFPO0FBQUEsTUFDM0QsT0FBTyxXQUFXO0FBQUEsTUFDbEIsT0FBTyxXQUFXO0FBQUEsSUFDcEI7QUFFQSxJQUFBRixRQUFPLFVBQVU7QUFBQSxNQUNmO0FBQUEsSUFDRjtBQUFBO0FBQUE7OztBQ3RyQkEsSUFBQUksZ0JBQUE7QUFBQSw4Q0FBQUMsVUFBQUMsU0FBQTtBQUFBO0FBRUEsUUFBTSxFQUFFLFdBQUFDLFdBQVUsSUFBSSxRQUFRLGFBQWE7QUFDM0MsUUFBTUMsUUFBTyxRQUFRLFdBQVc7QUFDaEMsUUFBTSxFQUFFLG1CQUFtQixtQkFBbUIsc0JBQXNCLFlBQVksSUFBSTtBQUNwRixRQUFNLEVBQUUsZ0JBQWdCLElBQUk7QUFDNUIsUUFBTSxFQUFFLDhCQUE4QiwyQkFBMkIsYUFBYSxjQUFjLElBQUk7QUFDaEcsUUFBTSxFQUFFLGFBQUFDLGFBQVksSUFBSSxRQUFRLGlCQUFpQjtBQUNqRCxRQUFNLEVBQUUsWUFBWSxvQkFBb0Isa0JBQWtCLDRCQUE0QixJQUFJO0FBQzFGLFFBQU0sU0FBUyxRQUFRLGFBQWE7QUFDcEMsUUFBTSxFQUFFLGFBQWEsSUFBSSxRQUFRLGlCQUFpQjtBQUNsRCxRQUFNLEVBQUUsT0FBTyxJQUFJO0FBRW5CLFFBQUksa0JBQWtCLENBQUM7QUFJdkIsUUFBSUM7QUFDSixRQUFJO0FBQ0YsTUFBQUEsVUFBUyxRQUFRLGFBQWE7QUFDOUIsWUFBTSx5QkFBeUIsQ0FBQyxVQUFVLFVBQVUsUUFBUTtBQUM1RCx3QkFBa0JBLFFBQU8sVUFBVSxFQUFFLE9BQU8sQ0FBQyxTQUFTLHVCQUF1QixTQUFTLElBQUksQ0FBQztBQUFBLElBRTdGLFFBQVE7QUFBQSxJQUVSO0FBRUEsYUFBUyxZQUFhLFVBQVU7QUFJOUIsWUFBTSxVQUFVLFNBQVM7QUFDekIsWUFBTSxTQUFTLFFBQVE7QUFDdkIsYUFBTyxXQUFXLElBQUksT0FBTyxRQUFRLFNBQVMsQ0FBQyxFQUFFLFNBQVM7QUFBQSxJQUM1RDtBQUdBLGFBQVMsb0JBQXFCLFVBQVUsaUJBQWlCO0FBRXZELFVBQUksQ0FBQyxrQkFBa0IsSUFBSSxTQUFTLE1BQU0sR0FBRztBQUMzQyxlQUFPO0FBQUEsTUFDVDtBQUlBLFVBQUksV0FBVyxTQUFTLFlBQVksSUFBSSxZQUFZLElBQUk7QUFJeEQsVUFBSSxhQUFhLFFBQVEsbUJBQW1CLFFBQVEsR0FBRztBQUNyRCxZQUFJLENBQUMsa0JBQWtCLFFBQVEsR0FBRztBQUloQyxxQkFBVyw0QkFBNEIsUUFBUTtBQUFBLFFBQ2pEO0FBQ0EsbUJBQVcsSUFBSSxJQUFJLFVBQVUsWUFBWSxRQUFRLENBQUM7QUFBQSxNQUNwRDtBQUlBLFVBQUksWUFBWSxDQUFDLFNBQVMsTUFBTTtBQUM5QixpQkFBUyxPQUFPO0FBQUEsTUFDbEI7QUFHQSxhQUFPO0FBQUEsSUFDVDtBQU9BLGFBQVMsa0JBQW1CQyxNQUFLO0FBQy9CLGVBQVMsSUFBSSxHQUFHLElBQUlBLEtBQUksUUFBUSxFQUFFLEdBQUc7QUFDbkMsY0FBTSxPQUFPQSxLQUFJLFdBQVcsQ0FBQztBQUU3QixZQUNFLE9BQU87QUFBQSxRQUNQLE9BQU8sSUFDUDtBQUNBLGlCQUFPO0FBQUEsUUFDVDtBQUFBLE1BQ0Y7QUFDQSxhQUFPO0FBQUEsSUFDVDtBQVFBLGFBQVMsNEJBQTZCLE9BQU87QUFDM0MsYUFBTyxPQUFPLEtBQUssT0FBTyxRQUFRLEVBQUUsU0FBUyxNQUFNO0FBQUEsSUFDckQ7QUFHQSxhQUFTLGtCQUFtQixTQUFTO0FBQ25DLGFBQU8sUUFBUSxRQUFRLFFBQVEsUUFBUSxTQUFTLENBQUM7QUFBQSxJQUNuRDtBQUVBLGFBQVMsZUFBZ0IsU0FBUztBQUVoQyxZQUFNQSxPQUFNLGtCQUFrQixPQUFPO0FBSXJDLFVBQUkscUJBQXFCQSxJQUFHLEtBQUssWUFBWSxJQUFJQSxLQUFJLElBQUksR0FBRztBQUMxRCxlQUFPO0FBQUEsTUFDVDtBQUdBLGFBQU87QUFBQSxJQUNUO0FBRUEsYUFBUyxZQUFhLFFBQVE7QUFDNUIsYUFBTyxrQkFBa0IsVUFDdkIsUUFBUSxhQUFhLFNBQVMsV0FDOUIsUUFBUSxhQUFhLFNBQVM7QUFBQSxJQUVsQztBQVFBLGFBQVMsb0JBQXFCLFlBQVk7QUFDeEMsZUFBUyxJQUFJLEdBQUcsSUFBSSxXQUFXLFFBQVEsRUFBRSxHQUFHO0FBQzFDLGNBQU0sSUFBSSxXQUFXLFdBQVcsQ0FBQztBQUNqQyxZQUNFLEVBRUksTUFBTTtBQUFBLFFBQ0wsS0FBSyxNQUFRLEtBQUs7QUFBQSxRQUNsQixLQUFLLE9BQVEsS0FBSyxNQUd2QjtBQUNBLGlCQUFPO0FBQUEsUUFDVDtBQUFBLE1BQ0Y7QUFDQSxhQUFPO0FBQUEsSUFDVDtBQU1BLFFBQU1DLHFCQUFvQjtBQU0xQixhQUFTLG1CQUFvQixnQkFBZ0I7QUFHM0MsY0FDRSxlQUFlLENBQUMsTUFBTSxPQUN0QixlQUFlLENBQUMsTUFBTSxPQUN0QixlQUFlLGVBQWUsU0FBUyxDQUFDLE1BQU0sT0FDOUMsZUFBZSxlQUFlLFNBQVMsQ0FBQyxNQUFNLE9BQzlDLGVBQWUsU0FBUyxJQUFJLEtBQzVCLGVBQWUsU0FBUyxJQUFJLEtBQzVCLGVBQWUsU0FBUyxJQUFJLE9BQ3hCO0FBQUEsSUFDUjtBQUdBLGFBQVMsbUNBQW9DLFNBQVMsZ0JBQWdCO0FBVXBFLFlBQU0sRUFBRSxZQUFZLElBQUk7QUFJeEIsWUFBTSxnQkFBZ0IsWUFBWSxJQUFJLG1CQUFtQixJQUFJLEtBQUssSUFBSSxNQUFNLEdBQUc7QUFNL0UsVUFBSSxTQUFTO0FBQ2IsVUFBSSxhQUFhLFNBQVMsR0FBRztBQUczQixpQkFBUyxJQUFJLGFBQWEsUUFBUSxNQUFNLEdBQUcsS0FBSztBQUM5QyxnQkFBTSxRQUFRLGFBQWEsSUFBSSxDQUFDLEVBQUUsS0FBSztBQUN2QyxjQUFJLHFCQUFxQixJQUFJLEtBQUssR0FBRztBQUNuQyxxQkFBUztBQUNUO0FBQUEsVUFDRjtBQUFBLFFBQ0Y7QUFBQSxNQUNGO0FBR0EsVUFBSSxXQUFXLElBQUk7QUFDakIsZ0JBQVEsaUJBQWlCO0FBQUEsTUFDM0I7QUFBQSxJQUNGO0FBR0EsYUFBUyxpQ0FBa0M7QUFFekMsYUFBTztBQUFBLElBQ1Q7QUFHQSxhQUFTLFlBQWE7QUFFcEIsYUFBTztBQUFBLElBQ1Q7QUFHQSxhQUFTLFdBQVk7QUFFbkIsYUFBTztBQUFBLElBQ1Q7QUFFQSxhQUFTLG9CQUFxQixhQUFhO0FBVXpDLFVBQUksU0FBUztBQUdiLGVBQVMsWUFBWTtBQUdyQixrQkFBWSxZQUFZLElBQUksa0JBQWtCLFFBQVEsSUFBSTtBQUFBLElBTzVEO0FBR0EsYUFBUywwQkFBMkIsU0FBUztBQUkzQyxVQUFJLG1CQUFtQixRQUFRO0FBUS9CLFVBQUkscUJBQXFCLFlBQVkscUJBQXFCLFFBQVc7QUFDbkU7QUFBQSxNQUNGO0FBS0EsVUFBSSxRQUFRLHFCQUFxQixVQUFVLFFBQVEsU0FBUyxhQUFhO0FBQ3ZFLGdCQUFRLFlBQVksT0FBTyxVQUFVLGtCQUFrQixJQUFJO0FBQUEsTUFDN0QsV0FBVyxRQUFRLFdBQVcsU0FBUyxRQUFRLFdBQVcsUUFBUTtBQUVoRSxnQkFBUSxRQUFRLGdCQUFnQjtBQUFBLFVBQzlCLEtBQUs7QUFFSCwrQkFBbUI7QUFDbkI7QUFBQSxVQUNGLEtBQUs7QUFBQSxVQUNMLEtBQUs7QUFBQSxVQUNMLEtBQUs7QUFJSCxnQkFBSSxRQUFRLFVBQVUsa0JBQWtCLFFBQVEsTUFBTSxLQUFLLENBQUMsa0JBQWtCLGtCQUFrQixPQUFPLENBQUMsR0FBRztBQUN6RyxpQ0FBbUI7QUFBQSxZQUNyQjtBQUNBO0FBQUEsVUFDRixLQUFLO0FBR0gsZ0JBQUksQ0FBQyxXQUFXLFNBQVMsa0JBQWtCLE9BQU8sQ0FBQyxHQUFHO0FBQ3BELGlDQUFtQjtBQUFBLFlBQ3JCO0FBQ0E7QUFBQSxVQUNGO0FBQUEsUUFFRjtBQUdBLGdCQUFRLFlBQVksT0FBTyxVQUFVLGtCQUFrQixJQUFJO0FBQUEsTUFDN0Q7QUFBQSxJQUNGO0FBR0EsYUFBUyxZQUFhLFdBQVcsK0JBQStCO0FBRTlELGFBQU87QUFBQSxJQUNUO0FBR0EsYUFBUyxvQ0FBcUMsc0JBQXNCLGtCQUFrQiwrQkFBK0I7QUFDbkgsVUFBSSxDQUFDLHNCQUFzQixhQUFhLHFCQUFxQixZQUFZLGtCQUFrQjtBQUN6RixlQUFPO0FBQUEsVUFDTCx1QkFBdUI7QUFBQSxVQUN2QixxQkFBcUI7QUFBQSxVQUNyQixxQkFBcUI7QUFBQSxVQUNyQixtQkFBbUI7QUFBQSxVQUNuQiwyQkFBMkI7QUFBQSxVQUMzQix3QkFBd0Isc0JBQXNCO0FBQUEsUUFDaEQ7QUFBQSxNQUNGO0FBRUEsYUFBTztBQUFBLFFBQ0wsdUJBQXVCLFlBQVkscUJBQXFCLHVCQUF1Qiw2QkFBNkI7QUFBQSxRQUM1RyxxQkFBcUIsWUFBWSxxQkFBcUIscUJBQXFCLDZCQUE2QjtBQUFBLFFBQ3hHLHFCQUFxQixZQUFZLHFCQUFxQixxQkFBcUIsNkJBQTZCO0FBQUEsUUFDeEcsbUJBQW1CLFlBQVkscUJBQXFCLG1CQUFtQiw2QkFBNkI7QUFBQSxRQUNwRywyQkFBMkIsWUFBWSxxQkFBcUIsMkJBQTJCLDZCQUE2QjtBQUFBLFFBQ3BILHdCQUF3QixxQkFBcUI7QUFBQSxNQUMvQztBQUFBLElBQ0Y7QUFHQSxhQUFTLDJCQUE0QiwrQkFBK0I7QUFDbEUsYUFBTyxZQUFZSCxhQUFZLElBQUksR0FBRyw2QkFBNkI7QUFBQSxJQUNyRTtBQUdBLGFBQVMsdUJBQXdCLFlBQVk7QUFDM0MsYUFBTztBQUFBLFFBQ0wsV0FBVyxXQUFXLGFBQWE7QUFBQSxRQUNuQyxtQkFBbUI7QUFBQSxRQUNuQixpQkFBaUI7QUFBQSxRQUNqQix1QkFBdUIsV0FBVyxhQUFhO0FBQUEsUUFDL0MsNkJBQTZCO0FBQUEsUUFDN0IsK0JBQStCO0FBQUEsUUFDL0IsOEJBQThCO0FBQUEsUUFDOUIsU0FBUztBQUFBLFFBQ1QsaUJBQWlCO0FBQUEsUUFDakIsaUJBQWlCO0FBQUEsUUFDakIsMkJBQTJCO0FBQUEsTUFDN0I7QUFBQSxJQUNGO0FBR0EsYUFBUyxzQkFBdUI7QUFFOUIsYUFBTztBQUFBLFFBQ0wsZ0JBQWdCO0FBQUEsTUFDbEI7QUFBQSxJQUNGO0FBR0EsYUFBUyxxQkFBc0IsaUJBQWlCO0FBQzlDLGFBQU87QUFBQSxRQUNMLGdCQUFnQixnQkFBZ0I7QUFBQSxNQUNsQztBQUFBLElBQ0Y7QUFHQSxhQUFTLDBCQUEyQixTQUFTO0FBRTNDLFlBQU0sU0FBUyxRQUFRO0FBR3ZCLGFBQU8sTUFBTTtBQUliLFVBQUksaUJBQWlCO0FBR3JCLFVBQUksUUFBUSxhQUFhLFVBQVU7QUFJakMsY0FBTSxlQUFlLGdCQUFnQjtBQUVyQyxZQUFJLENBQUMsZ0JBQWdCLGFBQWEsV0FBVyxRQUFRO0FBQ25ELGlCQUFPO0FBQUEsUUFDVDtBQUdBLHlCQUFpQixJQUFJLElBQUksWUFBWTtBQUFBLE1BQ3ZDLFdBQVcsUUFBUSxvQkFBb0IsS0FBSztBQUUxQyx5QkFBaUIsUUFBUTtBQUFBLE1BQzNCO0FBSUEsVUFBSSxjQUFjLG9CQUFvQixjQUFjO0FBSXBELFlBQU0saUJBQWlCLG9CQUFvQixnQkFBZ0IsSUFBSTtBQUkvRCxVQUFJLFlBQVksU0FBUyxFQUFFLFNBQVMsTUFBTTtBQUN4QyxzQkFBYztBQUFBLE1BQ2hCO0FBRUEsWUFBTSxnQkFBZ0IsV0FBVyxTQUFTLFdBQVc7QUFDckQsWUFBTSw4QkFBOEIsNEJBQTRCLFdBQVcsS0FDekUsQ0FBQyw0QkFBNEIsUUFBUSxHQUFHO0FBRzFDLGNBQVEsUUFBUTtBQUFBLFFBQ2QsS0FBSztBQUFVLGlCQUFPLGtCQUFrQixPQUFPLGlCQUFpQixvQkFBb0IsZ0JBQWdCLElBQUk7QUFBQSxRQUN4RyxLQUFLO0FBQWMsaUJBQU87QUFBQSxRQUMxQixLQUFLO0FBQ0gsaUJBQU8sZ0JBQWdCLGlCQUFpQjtBQUFBLFFBQzFDLEtBQUs7QUFDSCxpQkFBTyxnQkFBZ0IsY0FBYztBQUFBLFFBQ3ZDLEtBQUssbUNBQW1DO0FBQ3RDLGdCQUFNLGFBQWEsa0JBQWtCLE9BQU87QUFJNUMsY0FBSSxXQUFXLGFBQWEsVUFBVSxHQUFHO0FBQ3ZDLG1CQUFPO0FBQUEsVUFDVDtBQUtBLGNBQUksNEJBQTRCLFdBQVcsS0FBSyxDQUFDLDRCQUE0QixVQUFVLEdBQUc7QUFDeEYsbUJBQU87QUFBQSxVQUNUO0FBR0EsaUJBQU87QUFBQSxRQUNUO0FBQUEsUUFDQSxLQUFLO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxRQU9MLEtBQUs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFFBUUw7QUFDRSxpQkFBTyw4QkFBOEIsZ0JBQWdCO0FBQUEsTUFDekQ7QUFBQSxJQUNGO0FBT0EsYUFBUyxvQkFBcUJFLE1BQUssWUFBWTtBQUU3QyxhQUFPQSxnQkFBZSxHQUFHO0FBRXpCLE1BQUFBLE9BQU0sSUFBSSxJQUFJQSxJQUFHO0FBR2pCLFVBQUlBLEtBQUksYUFBYSxXQUFXQSxLQUFJLGFBQWEsWUFBWUEsS0FBSSxhQUFhLFVBQVU7QUFDdEYsZUFBTztBQUFBLE1BQ1Q7QUFHQSxNQUFBQSxLQUFJLFdBQVc7QUFHZixNQUFBQSxLQUFJLFdBQVc7QUFHZixNQUFBQSxLQUFJLE9BQU87QUFHWCxVQUFJLFlBQVk7QUFFZCxRQUFBQSxLQUFJLFdBQVc7QUFHZixRQUFBQSxLQUFJLFNBQVM7QUFBQSxNQUNmO0FBR0EsYUFBT0E7QUFBQSxJQUNUO0FBRUEsYUFBUyw0QkFBNkJBLE1BQUs7QUFDekMsVUFBSSxFQUFFQSxnQkFBZSxNQUFNO0FBQ3pCLGVBQU87QUFBQSxNQUNUO0FBR0EsVUFBSUEsS0FBSSxTQUFTLGlCQUFpQkEsS0FBSSxTQUFTLGdCQUFnQjtBQUM3RCxlQUFPO0FBQUEsTUFDVDtBQUdBLFVBQUlBLEtBQUksYUFBYSxRQUFTLFFBQU87QUFHckMsVUFBSUEsS0FBSSxhQUFhLFFBQVMsUUFBTztBQUVyQyxhQUFPLCtCQUErQkEsS0FBSSxNQUFNO0FBRWhELGVBQVMsK0JBQWdDRSxTQUFRO0FBRS9DLFlBQUlBLFdBQVUsUUFBUUEsWUFBVyxPQUFRLFFBQU87QUFFaEQsY0FBTSxjQUFjLElBQUksSUFBSUEsT0FBTTtBQUdsQyxZQUFJLFlBQVksYUFBYSxZQUFZLFlBQVksYUFBYSxRQUFRO0FBQ3hFLGlCQUFPO0FBQUEsUUFDVDtBQUdBLFlBQUksc0RBQXNELEtBQUssWUFBWSxRQUFRLE1BQ2pGLFlBQVksYUFBYSxlQUFlLFlBQVksU0FBUyxTQUFTLFlBQVksTUFDbEYsWUFBWSxTQUFTLFNBQVMsWUFBWSxHQUFJO0FBQzlDLGlCQUFPO0FBQUEsUUFDVDtBQUdBLGVBQU87QUFBQSxNQUNUO0FBQUEsSUFDRjtBQU9BLGFBQVMsV0FBWSxPQUFPLGNBQWM7QUFLeEMsVUFBSUgsWUFBVyxRQUFXO0FBQ3hCLGVBQU87QUFBQSxNQUNUO0FBR0EsWUFBTSxpQkFBaUIsY0FBYyxZQUFZO0FBR2pELFVBQUksbUJBQW1CLGVBQWU7QUFDcEMsZUFBTztBQUFBLE1BQ1Q7QUFNQSxVQUFJLGVBQWUsV0FBVyxHQUFHO0FBQy9CLGVBQU87QUFBQSxNQUNUO0FBSUEsWUFBTSxZQUFZLHFCQUFxQixjQUFjO0FBQ3JELFlBQU0sV0FBVyw4QkFBOEIsZ0JBQWdCLFNBQVM7QUFHeEUsaUJBQVcsUUFBUSxVQUFVO0FBRTNCLGNBQU0sWUFBWSxLQUFLO0FBR3ZCLGNBQU0sZ0JBQWdCLEtBQUs7QUFNM0IsWUFBSSxjQUFjQSxRQUFPLFdBQVcsU0FBUyxFQUFFLE9BQU8sS0FBSyxFQUFFLE9BQU8sUUFBUTtBQUU1RSxZQUFJLFlBQVksWUFBWSxTQUFTLENBQUMsTUFBTSxLQUFLO0FBQy9DLGNBQUksWUFBWSxZQUFZLFNBQVMsQ0FBQyxNQUFNLEtBQUs7QUFDL0MsMEJBQWMsWUFBWSxNQUFNLEdBQUcsRUFBRTtBQUFBLFVBQ3ZDLE9BQU87QUFDTCwwQkFBYyxZQUFZLE1BQU0sR0FBRyxFQUFFO0FBQUEsVUFDdkM7QUFBQSxRQUNGO0FBSUEsWUFBSSxtQkFBbUIsYUFBYSxhQUFhLEdBQUc7QUFDbEQsaUJBQU87QUFBQSxRQUNUO0FBQUEsTUFDRjtBQUdBLGFBQU87QUFBQSxJQUNUO0FBS0EsUUFBTSx1QkFBdUI7QUFNN0IsYUFBUyxjQUFlLFVBQVU7QUFHaEMsWUFBTSxTQUFTLENBQUM7QUFHaEIsVUFBSUksU0FBUTtBQUdaLGlCQUFXLFNBQVMsU0FBUyxNQUFNLEdBQUcsR0FBRztBQUV2QyxRQUFBQSxTQUFRO0FBR1IsY0FBTSxjQUFjLHFCQUFxQixLQUFLLEtBQUs7QUFHbkQsWUFDRSxnQkFBZ0IsUUFDaEIsWUFBWSxXQUFXLFVBQ3ZCLFlBQVksT0FBTyxTQUFTLFFBQzVCO0FBS0E7QUFBQSxRQUNGO0FBR0EsY0FBTSxZQUFZLFlBQVksT0FBTyxLQUFLLFlBQVk7QUFJdEQsWUFBSSxnQkFBZ0IsU0FBUyxTQUFTLEdBQUc7QUFDdkMsaUJBQU8sS0FBSyxZQUFZLE1BQU07QUFBQSxRQUNoQztBQUFBLE1BQ0Y7QUFHQSxVQUFJQSxXQUFVLE1BQU07QUFDbEIsZUFBTztBQUFBLE1BQ1Q7QUFFQSxhQUFPO0FBQUEsSUFDVDtBQUtBLGFBQVMscUJBQXNCLGNBQWM7QUFHM0MsVUFBSSxZQUFZLGFBQWEsQ0FBQyxFQUFFO0FBR2hDLFVBQUksVUFBVSxDQUFDLE1BQU0sS0FBSztBQUN4QixlQUFPO0FBQUEsTUFDVDtBQUVBLGVBQVMsSUFBSSxHQUFHLElBQUksYUFBYSxRQUFRLEVBQUUsR0FBRztBQUM1QyxjQUFNLFdBQVcsYUFBYSxDQUFDO0FBRy9CLFlBQUksU0FBUyxLQUFLLENBQUMsTUFBTSxLQUFLO0FBQzVCLHNCQUFZO0FBQ1o7QUFBQSxRQUVGLFdBQVcsVUFBVSxDQUFDLE1BQU0sS0FBSztBQUMvQjtBQUFBLFFBR0YsV0FBVyxTQUFTLEtBQUssQ0FBQyxNQUFNLEtBQUs7QUFDbkMsc0JBQVk7QUFBQSxRQUNkO0FBQUEsTUFDRjtBQUNBLGFBQU87QUFBQSxJQUNUO0FBRUEsYUFBUyw4QkFBK0IsY0FBYyxXQUFXO0FBQy9ELFVBQUksYUFBYSxXQUFXLEdBQUc7QUFDN0IsZUFBTztBQUFBLE1BQ1Q7QUFFQSxVQUFJLE1BQU07QUFDVixlQUFTLElBQUksR0FBRyxJQUFJLGFBQWEsUUFBUSxFQUFFLEdBQUc7QUFDNUMsWUFBSSxhQUFhLENBQUMsRUFBRSxTQUFTLFdBQVc7QUFDdEMsdUJBQWEsS0FBSyxJQUFJLGFBQWEsQ0FBQztBQUFBLFFBQ3RDO0FBQUEsTUFDRjtBQUVBLG1CQUFhLFNBQVM7QUFFdEIsYUFBTztBQUFBLElBQ1Q7QUFVQSxhQUFTLG1CQUFvQixhQUFhLGVBQWU7QUFDdkQsVUFBSSxZQUFZLFdBQVcsY0FBYyxRQUFRO0FBQy9DLGVBQU87QUFBQSxNQUNUO0FBQ0EsZUFBUyxJQUFJLEdBQUcsSUFBSSxZQUFZLFFBQVEsRUFBRSxHQUFHO0FBQzNDLFlBQUksWUFBWSxDQUFDLE1BQU0sY0FBYyxDQUFDLEdBQUc7QUFDdkMsY0FDRyxZQUFZLENBQUMsTUFBTSxPQUFPLGNBQWMsQ0FBQyxNQUFNLE9BQy9DLFlBQVksQ0FBQyxNQUFNLE9BQU8sY0FBYyxDQUFDLE1BQU0sS0FDaEQ7QUFDQTtBQUFBLFVBQ0Y7QUFDQSxpQkFBTztBQUFBLFFBQ1Q7QUFBQSxNQUNGO0FBRUEsYUFBTztBQUFBLElBQ1Q7QUFHQSxhQUFTLDhDQUErQyxTQUFTO0FBQUEsSUFFakU7QUFPQSxhQUFTLFdBQVksR0FBRyxHQUFHO0FBRXpCLFVBQUksRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLFdBQVcsUUFBUTtBQUNoRCxlQUFPO0FBQUEsTUFDVDtBQUlBLFVBQUksRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFFLGFBQWEsRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLE1BQU07QUFDL0UsZUFBTztBQUFBLE1BQ1Q7QUFHQSxhQUFPO0FBQUEsSUFDVDtBQUVBLGFBQVMsd0JBQXlCO0FBQ2hDLFVBQUk7QUFDSixVQUFJO0FBQ0osWUFBTSxVQUFVLElBQUksUUFBUSxDQUFDLFNBQVMsV0FBVztBQUMvQyxjQUFNO0FBQ04sY0FBTTtBQUFBLE1BQ1IsQ0FBQztBQUVELGFBQU8sRUFBRSxTQUFTLFNBQVMsS0FBSyxRQUFRLElBQUk7QUFBQSxJQUM5QztBQUVBLGFBQVNDLFdBQVcsYUFBYTtBQUMvQixhQUFPLFlBQVksV0FBVyxVQUFVO0FBQUEsSUFDMUM7QUFFQSxhQUFTLFlBQWEsYUFBYTtBQUNqQyxhQUFPLFlBQVksV0FBVyxVQUFVLGFBQ3RDLFlBQVksV0FBVyxVQUFVO0FBQUEsSUFDckM7QUFNQSxhQUFTLGdCQUFpQixRQUFRO0FBQ2hDLGFBQU8sNEJBQTRCLE9BQU8sWUFBWSxDQUFDLEtBQUs7QUFBQSxJQUM5RDtBQUdBLGFBQVMscUNBQXNDLE9BQU87QUFFcEQsWUFBTSxTQUFTLEtBQUssVUFBVSxLQUFLO0FBR25DLFVBQUksV0FBVyxRQUFXO0FBQ3hCLGNBQU0sSUFBSSxVQUFVLGdDQUFnQztBQUFBLE1BQ3REO0FBR0EsYUFBTyxPQUFPLFdBQVcsUUFBUTtBQUdqQyxhQUFPO0FBQUEsSUFDVDtBQUdBLFFBQU0sc0JBQXNCLE9BQU8sZUFBZSxPQUFPLGVBQWUsQ0FBQyxFQUFFLE9BQU8sUUFBUSxFQUFFLENBQUMsQ0FBQztBQVM5RixhQUFTLGVBQWdCLE1BQU0sbUJBQW1CLFdBQVcsR0FBRyxhQUFhLEdBQUc7QUFBQSxNQUM5RSxNQUFNLHFCQUFxQjtBQUFBO0FBQUEsUUFFekI7QUFBQTtBQUFBLFFBRUE7QUFBQTtBQUFBLFFBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsUUFPQSxZQUFhLFFBQVEsTUFBTTtBQUN6QixlQUFLLFVBQVU7QUFDZixlQUFLLFFBQVE7QUFDYixlQUFLLFNBQVM7QUFBQSxRQUNoQjtBQUFBLFFBRUEsT0FBUTtBQVFOLGNBQUksT0FBTyxTQUFTLFlBQVksU0FBUyxRQUFRLEVBQUUsV0FBVyxPQUFPO0FBQ25FLGtCQUFNLElBQUk7QUFBQSxjQUNSLGdFQUFnRSxJQUFJO0FBQUEsWUFDdEU7QUFBQSxVQUNGO0FBS0EsZ0JBQU1DLFNBQVEsS0FBSztBQUNuQixnQkFBTSxTQUFTLEtBQUssUUFBUSxpQkFBaUI7QUFHN0MsZ0JBQU0sTUFBTSxPQUFPO0FBSW5CLGNBQUlBLFVBQVMsS0FBSztBQUNoQixtQkFBTztBQUFBLGNBQ0wsT0FBTztBQUFBLGNBQ1AsTUFBTTtBQUFBLFlBQ1I7QUFBQSxVQUNGO0FBR0EsZ0JBQU0sRUFBRSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUMsVUFBVSxHQUFHLE1BQU0sSUFBSSxPQUFPQSxNQUFLO0FBRzdELGVBQUssU0FBU0EsU0FBUTtBQU90QixjQUFJO0FBQ0osa0JBQVEsS0FBSyxPQUFPO0FBQUEsWUFDbEIsS0FBSztBQUtILHVCQUFTO0FBQ1Q7QUFBQSxZQUNGLEtBQUs7QUFLSCx1QkFBUztBQUNUO0FBQUEsWUFDRixLQUFLO0FBV0gsdUJBQVMsQ0FBQyxLQUFLLEtBQUs7QUFDcEI7QUFBQSxVQUNKO0FBR0EsaUJBQU87QUFBQSxZQUNMLE9BQU87QUFBQSxZQUNQLE1BQU07QUFBQSxVQUNSO0FBQUEsUUFDRjtBQUFBLE1BQ0Y7QUFJQSxhQUFPLHFCQUFxQixVQUFVO0FBRXRDLGFBQU8sZUFBZSxxQkFBcUIsV0FBVyxtQkFBbUI7QUFFekUsYUFBTyxpQkFBaUIscUJBQXFCLFdBQVc7QUFBQSxRQUN0RCxDQUFDLE9BQU8sV0FBVyxHQUFHO0FBQUEsVUFDcEIsVUFBVTtBQUFBLFVBQ1YsWUFBWTtBQUFBLFVBQ1osY0FBYztBQUFBLFVBQ2QsT0FBTyxHQUFHLElBQUk7QUFBQSxRQUNoQjtBQUFBLFFBQ0EsTUFBTSxFQUFFLFVBQVUsTUFBTSxZQUFZLE1BQU0sY0FBYyxLQUFLO0FBQUEsTUFDL0QsQ0FBQztBQU9ELGFBQU8sU0FBVSxRQUFRLE1BQU07QUFDN0IsZUFBTyxJQUFJLHFCQUFxQixRQUFRLElBQUk7QUFBQSxNQUM5QztBQUFBLElBQ0Y7QUFVQSxhQUFTLGNBQWUsTUFBTSxRQUFRLG1CQUFtQixXQUFXLEdBQUcsYUFBYSxHQUFHO0FBQ3JGLFlBQU0sZUFBZSxlQUFlLE1BQU0sbUJBQW1CLFVBQVUsVUFBVTtBQUVqRixZQUFNLGFBQWE7QUFBQSxRQUNqQixNQUFNO0FBQUEsVUFDSixVQUFVO0FBQUEsVUFDVixZQUFZO0FBQUEsVUFDWixjQUFjO0FBQUEsVUFDZCxPQUFPLFNBQVMsT0FBUTtBQUN0QixtQkFBTyxXQUFXLE1BQU0sTUFBTTtBQUM5QixtQkFBTyxhQUFhLE1BQU0sS0FBSztBQUFBLFVBQ2pDO0FBQUEsUUFDRjtBQUFBLFFBQ0EsUUFBUTtBQUFBLFVBQ04sVUFBVTtBQUFBLFVBQ1YsWUFBWTtBQUFBLFVBQ1osY0FBYztBQUFBLFVBQ2QsT0FBTyxTQUFTLFNBQVU7QUFDeEIsbUJBQU8sV0FBVyxNQUFNLE1BQU07QUFDOUIsbUJBQU8sYUFBYSxNQUFNLE9BQU87QUFBQSxVQUNuQztBQUFBLFFBQ0Y7QUFBQSxRQUNBLFNBQVM7QUFBQSxVQUNQLFVBQVU7QUFBQSxVQUNWLFlBQVk7QUFBQSxVQUNaLGNBQWM7QUFBQSxVQUNkLE9BQU8sU0FBUyxVQUFXO0FBQ3pCLG1CQUFPLFdBQVcsTUFBTSxNQUFNO0FBQzlCLG1CQUFPLGFBQWEsTUFBTSxXQUFXO0FBQUEsVUFDdkM7QUFBQSxRQUNGO0FBQUEsUUFDQSxTQUFTO0FBQUEsVUFDUCxVQUFVO0FBQUEsVUFDVixZQUFZO0FBQUEsVUFDWixjQUFjO0FBQUEsVUFDZCxPQUFPLFNBQVNDLFNBQVMsWUFBWSxVQUFVLFlBQVk7QUFDekQsbUJBQU8sV0FBVyxNQUFNLE1BQU07QUFDOUIsbUJBQU8sb0JBQW9CLFdBQVcsR0FBRyxHQUFHLElBQUksVUFBVTtBQUMxRCxnQkFBSSxPQUFPLGVBQWUsWUFBWTtBQUNwQyxvQkFBTSxJQUFJO0FBQUEsZ0JBQ1IsbUNBQW1DLElBQUk7QUFBQSxjQUN6QztBQUFBLFlBQ0Y7QUFDQSx1QkFBVyxFQUFFLEdBQUcsS0FBSyxHQUFHLE1BQU0sS0FBSyxhQUFhLE1BQU0sV0FBVyxHQUFHO0FBQ2xFLHlCQUFXLEtBQUssU0FBUyxPQUFPLEtBQUssSUFBSTtBQUFBLFlBQzNDO0FBQUEsVUFDRjtBQUFBLFFBQ0Y7QUFBQSxNQUNGO0FBRUEsYUFBTyxPQUFPLGlCQUFpQixPQUFPLFdBQVc7QUFBQSxRQUMvQyxHQUFHO0FBQUEsUUFDSCxDQUFDLE9BQU8sUUFBUSxHQUFHO0FBQUEsVUFDakIsVUFBVTtBQUFBLFVBQ1YsWUFBWTtBQUFBLFVBQ1osY0FBYztBQUFBLFVBQ2QsT0FBTyxXQUFXLFFBQVE7QUFBQSxRQUM1QjtBQUFBLE1BQ0YsQ0FBQztBQUFBLElBQ0g7QUFLQSxtQkFBZSxjQUFlLE1BQU0sYUFBYSxrQkFBa0I7QUFNakUsWUFBTSxlQUFlO0FBSXJCLFlBQU0sYUFBYTtBQUtuQixVQUFJO0FBRUosVUFBSTtBQUNGLGlCQUFTLEtBQUssT0FBTyxVQUFVO0FBQUEsTUFDakMsU0FBUyxHQUFHO0FBQ1YsbUJBQVcsQ0FBQztBQUNaO0FBQUEsTUFDRjtBQUdBLFVBQUk7QUFDRixxQkFBYSxNQUFNLGFBQWEsTUFBTSxDQUFDO0FBQUEsTUFDekMsU0FBUyxHQUFHO0FBQ1YsbUJBQVcsQ0FBQztBQUFBLE1BQ2Q7QUFBQSxJQUNGO0FBRUEsYUFBUyxxQkFBc0JDLFNBQVE7QUFDckMsYUFBT0EsbUJBQWtCLGtCQUN2QkEsUUFBTyxPQUFPLFdBQVcsTUFBTSxvQkFDL0IsT0FBT0EsUUFBTyxRQUFRO0FBQUEsSUFFMUI7QUFLQSxhQUFTLG9CQUFxQixZQUFZO0FBQ3hDLFVBQUk7QUFDRixtQkFBVyxNQUFNO0FBQ2pCLG1CQUFXLGFBQWEsUUFBUSxDQUFDO0FBQUEsTUFDbkMsU0FBU0MsTUFBSztBQUVaLFlBQUksQ0FBQ0EsS0FBSSxRQUFRLFNBQVMsOEJBQThCLEtBQUssQ0FBQ0EsS0FBSSxRQUFRLFNBQVMsa0NBQWtDLEdBQUc7QUFDdEgsZ0JBQU1BO0FBQUEsUUFDUjtBQUFBLE1BQ0Y7QUFBQSxJQUNGO0FBRUEsUUFBTSxvQ0FBb0M7QUFNMUMsYUFBUyxpQkFBa0IsT0FBTztBQUVoQyxhQUFPLENBQUMsa0NBQWtDLEtBQUssS0FBSyxDQUFDO0FBS3JELGFBQU87QUFBQSxJQUNUO0FBT0EsbUJBQWUsYUFBYyxRQUFRO0FBQ25DLFlBQU0sUUFBUSxDQUFDO0FBQ2YsVUFBSSxhQUFhO0FBRWpCLGFBQU8sTUFBTTtBQUNYLGNBQU0sRUFBRSxNQUFNLE9BQU8sTUFBTSxJQUFJLE1BQU0sT0FBTyxLQUFLO0FBRWpELFlBQUksTUFBTTtBQUVSLGlCQUFPLE9BQU8sT0FBTyxPQUFPLFVBQVU7QUFBQSxRQUN4QztBQUlBLFlBQUksQ0FBQyxhQUFhLEtBQUssR0FBRztBQUN4QixnQkFBTSxJQUFJLFVBQVUsK0JBQStCO0FBQUEsUUFDckQ7QUFHQSxjQUFNLEtBQUssS0FBSztBQUNoQixzQkFBYyxNQUFNO0FBQUEsTUFHdEI7QUFBQSxJQUNGO0FBTUEsYUFBUyxXQUFZUixNQUFLO0FBQ3hCLGFBQU8sY0FBY0EsSUFBRztBQUV4QixZQUFNLFdBQVdBLEtBQUk7QUFFckIsYUFBTyxhQUFhLFlBQVksYUFBYSxXQUFXLGFBQWE7QUFBQSxJQUN2RTtBQU1BLGFBQVMsa0JBQW1CQSxNQUFLO0FBQy9CLGFBRUksT0FBT0EsU0FBUSxZQUNmQSxLQUFJLENBQUMsTUFBTSxPQUNYQSxLQUFJLENBQUMsTUFBTSxPQUNYQSxLQUFJLENBQUMsTUFBTSxPQUNYQSxLQUFJLENBQUMsTUFBTSxPQUNYQSxLQUFJLENBQUMsTUFBTSxPQUNYQSxLQUFJLENBQUMsTUFBTSxPQUViQSxLQUFJLGFBQWE7QUFBQSxJQUVyQjtBQU1BLGFBQVMscUJBQXNCQSxNQUFLO0FBQ2xDLGFBQU8sY0FBY0EsSUFBRztBQUV4QixZQUFNLFdBQVdBLEtBQUk7QUFFckIsYUFBTyxhQUFhLFdBQVcsYUFBYTtBQUFBLElBQzlDO0FBT0EsYUFBUyx1QkFBd0IsT0FBTyxpQkFBaUI7QUFJdkQsWUFBTVMsUUFBTztBQUdiLFVBQUksQ0FBQ0EsTUFBSyxXQUFXLE9BQU8sR0FBRztBQUM3QixlQUFPO0FBQUEsTUFDVDtBQUdBLFlBQU0sV0FBVyxFQUFFLFVBQVUsRUFBRTtBQUkvQixVQUFJLGlCQUFpQjtBQUNuQjtBQUFBLFVBQ0UsQ0FBQyxTQUFTLFNBQVMsT0FBUSxTQUFTO0FBQUEsVUFDcENBO0FBQUEsVUFDQTtBQUFBLFFBQ0Y7QUFBQSxNQUNGO0FBR0EsVUFBSUEsTUFBSyxXQUFXLFNBQVMsUUFBUSxNQUFNLElBQU07QUFDL0MsZUFBTztBQUFBLE1BQ1Q7QUFHQSxlQUFTO0FBSVQsVUFBSSxpQkFBaUI7QUFDbkI7QUFBQSxVQUNFLENBQUMsU0FBUyxTQUFTLE9BQVEsU0FBUztBQUFBLFVBQ3BDQTtBQUFBLFVBQ0E7QUFBQSxRQUNGO0FBQUEsTUFDRjtBQUlBLFlBQU0sYUFBYTtBQUFBLFFBQ2pCLENBQUMsU0FBUztBQUNSLGdCQUFNLE9BQU8sS0FBSyxXQUFXLENBQUM7QUFFOUIsaUJBQU8sUUFBUSxNQUFRLFFBQVE7QUFBQSxRQUNqQztBQUFBLFFBQ0FBO0FBQUEsUUFDQTtBQUFBLE1BQ0Y7QUFJQSxZQUFNLGtCQUFrQixXQUFXLFNBQVMsT0FBTyxVQUFVLElBQUk7QUFJakUsVUFBSSxpQkFBaUI7QUFDbkI7QUFBQSxVQUNFLENBQUMsU0FBUyxTQUFTLE9BQVEsU0FBUztBQUFBLFVBQ3BDQTtBQUFBLFVBQ0E7QUFBQSxRQUNGO0FBQUEsTUFDRjtBQUdBLFVBQUlBLE1BQUssV0FBVyxTQUFTLFFBQVEsTUFBTSxJQUFNO0FBQy9DLGVBQU87QUFBQSxNQUNUO0FBR0EsZUFBUztBQUtULFVBQUksaUJBQWlCO0FBQ25CO0FBQUEsVUFDRSxDQUFDLFNBQVMsU0FBUyxPQUFRLFNBQVM7QUFBQSxVQUNwQ0E7QUFBQSxVQUNBO0FBQUEsUUFDRjtBQUFBLE1BQ0Y7QUFLQSxZQUFNLFdBQVc7QUFBQSxRQUNmLENBQUMsU0FBUztBQUNSLGdCQUFNLE9BQU8sS0FBSyxXQUFXLENBQUM7QUFFOUIsaUJBQU8sUUFBUSxNQUFRLFFBQVE7QUFBQSxRQUNqQztBQUFBLFFBQ0FBO0FBQUEsUUFDQTtBQUFBLE1BQ0Y7QUFNQSxZQUFNLGdCQUFnQixTQUFTLFNBQVMsT0FBTyxRQUFRLElBQUk7QUFHM0QsVUFBSSxTQUFTLFdBQVdBLE1BQUssUUFBUTtBQUNuQyxlQUFPO0FBQUEsTUFDVDtBQUdBLFVBQUksa0JBQWtCLFFBQVEsb0JBQW9CLE1BQU07QUFDdEQsZUFBTztBQUFBLE1BQ1Q7QUFLQSxVQUFJLGtCQUFrQixlQUFlO0FBQ25DLGVBQU87QUFBQSxNQUNUO0FBR0EsYUFBTyxFQUFFLGlCQUFpQixjQUFjO0FBQUEsSUFDMUM7QUFRQSxhQUFTLGtCQUFtQixZQUFZLFVBQVUsWUFBWTtBQUU1RCxVQUFJLGVBQWU7QUFHbkIsc0JBQWdCLGlCQUFpQixHQUFHLFVBQVUsRUFBRTtBQUdoRCxzQkFBZ0I7QUFHaEIsc0JBQWdCLGlCQUFpQixHQUFHLFFBQVEsRUFBRTtBQUc5QyxzQkFBZ0I7QUFHaEIsc0JBQWdCLGlCQUFpQixHQUFHLFVBQVUsRUFBRTtBQUdoRCxhQUFPO0FBQUEsSUFDVDtBQU9BLFFBQU0sZ0JBQU4sY0FBNEJiLFdBQVU7QUFBQSxNQUNwQztBQUFBO0FBQUEsTUFHQSxZQUFhYyxjQUFhO0FBQ3hCLGNBQU07QUFDTixhQUFLLGVBQWVBO0FBQUEsTUFDdEI7QUFBQSxNQUVBLFdBQVksT0FBTyxVQUFVLFVBQVU7QUFDckMsWUFBSSxDQUFDLEtBQUssZ0JBQWdCO0FBQ3hCLGNBQUksTUFBTSxXQUFXLEdBQUc7QUFDdEIscUJBQVM7QUFDVDtBQUFBLFVBQ0Y7QUFDQSxlQUFLLGtCQUFrQixNQUFNLENBQUMsSUFBSSxRQUFVLElBQ3hDYixNQUFLLGNBQWMsS0FBSyxZQUFZLElBQ3BDQSxNQUFLLGlCQUFpQixLQUFLLFlBQVk7QUFFM0MsZUFBSyxlQUFlLEdBQUcsUUFBUSxLQUFLLEtBQUssS0FBSyxJQUFJLENBQUM7QUFDbkQsZUFBSyxlQUFlLEdBQUcsT0FBTyxNQUFNLEtBQUssS0FBSyxJQUFJLENBQUM7QUFDbkQsZUFBSyxlQUFlLEdBQUcsU0FBUyxDQUFDVyxTQUFRLEtBQUssUUFBUUEsSUFBRyxDQUFDO0FBQUEsUUFDNUQ7QUFFQSxhQUFLLGVBQWUsTUFBTSxPQUFPLFVBQVUsUUFBUTtBQUFBLE1BQ3JEO0FBQUEsTUFFQSxPQUFRLFVBQVU7QUFDaEIsWUFBSSxLQUFLLGdCQUFnQjtBQUN2QixlQUFLLGVBQWUsSUFBSTtBQUN4QixlQUFLLGlCQUFpQjtBQUFBLFFBQ3hCO0FBQ0EsaUJBQVM7QUFBQSxNQUNYO0FBQUEsSUFDRjtBQU1BLGFBQVMsY0FBZUUsY0FBYTtBQUNuQyxhQUFPLElBQUksY0FBY0EsWUFBVztBQUFBLElBQ3RDO0FBTUEsYUFBUyxnQkFBaUIsU0FBUztBQUVqQyxVQUFJLFVBQVU7QUFHZCxVQUFJLFVBQVU7QUFHZCxVQUFJLFdBQVc7QUFHZixZQUFNLFNBQVMsZUFBZSxnQkFBZ0IsT0FBTztBQUdyRCxVQUFJLFdBQVcsTUFBTTtBQUNuQixlQUFPO0FBQUEsTUFDVDtBQUdBLGlCQUFXLFNBQVMsUUFBUTtBQUUxQixjQUFNLG9CQUFvQixjQUFjLEtBQUs7QUFHN0MsWUFBSSxzQkFBc0IsYUFBYSxrQkFBa0IsWUFBWSxPQUFPO0FBQzFFO0FBQUEsUUFDRjtBQUdBLG1CQUFXO0FBR1gsWUFBSSxTQUFTLFlBQVksU0FBUztBQUVoQyxvQkFBVTtBQUlWLGNBQUksU0FBUyxXQUFXLElBQUksU0FBUyxHQUFHO0FBQ3RDLHNCQUFVLFNBQVMsV0FBVyxJQUFJLFNBQVM7QUFBQSxVQUM3QztBQUdBLG9CQUFVLFNBQVM7QUFBQSxRQUNyQixXQUFXLENBQUMsU0FBUyxXQUFXLElBQUksU0FBUyxLQUFLLFlBQVksTUFBTTtBQUdsRSxtQkFBUyxXQUFXLElBQUksV0FBVyxPQUFPO0FBQUEsUUFDNUM7QUFBQSxNQUNGO0FBR0EsVUFBSSxZQUFZLE1BQU07QUFDcEIsZUFBTztBQUFBLE1BQ1Q7QUFHQSxhQUFPO0FBQUEsSUFDVDtBQU1BLGFBQVMseUJBQTBCLE9BQU87QUFFeEMsWUFBTSxRQUFRO0FBR2QsWUFBTSxXQUFXLEVBQUUsVUFBVSxFQUFFO0FBRy9CLFlBQU0sU0FBUyxDQUFDO0FBR2hCLFVBQUksaUJBQWlCO0FBR3JCLGFBQU8sU0FBUyxXQUFXLE1BQU0sUUFBUTtBQUd2QywwQkFBa0I7QUFBQSxVQUNoQixDQUFDLFNBQVMsU0FBUyxPQUFPLFNBQVM7QUFBQSxVQUNuQztBQUFBLFVBQ0E7QUFBQSxRQUNGO0FBR0EsWUFBSSxTQUFTLFdBQVcsTUFBTSxRQUFRO0FBRXBDLGNBQUksTUFBTSxXQUFXLFNBQVMsUUFBUSxNQUFNLElBQU07QUFFaEQsOEJBQWtCO0FBQUEsY0FDaEI7QUFBQSxjQUNBO0FBQUEsWUFDRjtBQUdBLGdCQUFJLFNBQVMsV0FBVyxNQUFNLFFBQVE7QUFDcEM7QUFBQSxZQUNGO0FBQUEsVUFDRixPQUFPO0FBSUwsbUJBQU8sTUFBTSxXQUFXLFNBQVMsUUFBUSxNQUFNLEVBQUk7QUFHbkQscUJBQVM7QUFBQSxVQUNYO0FBQUEsUUFDRjtBQUdBLHlCQUFpQixZQUFZLGdCQUFnQixNQUFNLE1BQU0sQ0FBQyxTQUFTLFNBQVMsS0FBTyxTQUFTLEVBQUk7QUFHaEcsZUFBTyxLQUFLLGNBQWM7QUFHMUIseUJBQWlCO0FBQUEsTUFDbkI7QUFHQSxhQUFPO0FBQUEsSUFDVDtBQU9BLGFBQVMsZUFBZ0IsTUFBTSxNQUFNO0FBRW5DLFlBQU0sUUFBUSxLQUFLLElBQUksTUFBTSxJQUFJO0FBR2pDLFVBQUksVUFBVSxNQUFNO0FBQ2xCLGVBQU87QUFBQSxNQUNUO0FBR0EsYUFBTyx5QkFBeUIsS0FBSztBQUFBLElBQ3ZDO0FBRUEsUUFBTSxjQUFjLElBQUksWUFBWTtBQU1wQyxhQUFTLGdCQUFpQixRQUFRO0FBQ2hDLFVBQUksT0FBTyxXQUFXLEdBQUc7QUFDdkIsZUFBTztBQUFBLE1BQ1Q7QUFPQSxVQUFJLE9BQU8sQ0FBQyxNQUFNLE9BQVEsT0FBTyxDQUFDLE1BQU0sT0FBUSxPQUFPLENBQUMsTUFBTSxLQUFNO0FBQ2xFLGlCQUFTLE9BQU8sU0FBUyxDQUFDO0FBQUEsTUFDNUI7QUFJQSxZQUFNLFNBQVMsWUFBWSxPQUFPLE1BQU07QUFHeEMsYUFBTztBQUFBLElBQ1Q7QUFFQSxRQUFNLGdDQUFOLE1BQW9DO0FBQUEsTUFDbEMsSUFBSSxVQUFXO0FBQ2IsZUFBTyxnQkFBZ0I7QUFBQSxNQUN6QjtBQUFBLE1BRUEsSUFBSSxTQUFVO0FBQ1osZUFBTyxLQUFLLFNBQVM7QUFBQSxNQUN2QjtBQUFBLE1BRUEsa0JBQWtCLG9CQUFvQjtBQUFBLElBQ3hDO0FBRUEsUUFBTSw0QkFBTixNQUFnQztBQUFBLE1BQzlCLGlCQUFpQixJQUFJLDhCQUE4QjtBQUFBLElBQ3JEO0FBRUEsUUFBTSw0QkFBNEIsSUFBSSwwQkFBMEI7QUFFaEUsSUFBQWYsUUFBTyxVQUFVO0FBQUEsTUFDZixXQUFBUztBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0EsbUJBQUFIO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLElBQ0Y7QUFBQTtBQUFBOzs7QUMvbERBLElBQUFVLG1CQUFBO0FBQUEsaURBQUFDLFVBQUFDLFNBQUE7QUFBQTtBQUVBLElBQUFBLFFBQU8sVUFBVTtBQUFBLE1BQ2YsTUFBTSxPQUFPLEtBQUs7QUFBQSxNQUNsQixVQUFVLE9BQU8sU0FBUztBQUFBLE1BQzFCLFNBQVMsT0FBTyxRQUFRO0FBQUEsTUFDeEIsUUFBUSxPQUFPLE9BQU87QUFBQSxNQUN0QixhQUFhLE9BQU8sWUFBWTtBQUFBLElBQ2xDO0FBQUE7QUFBQTs7O0FDUkE7QUFBQSw4Q0FBQUMsVUFBQUMsU0FBQTtBQUFBO0FBRUEsUUFBTSxFQUFFLE1BQUFDLE9BQU0sS0FBSyxJQUFJLFFBQVEsYUFBYTtBQUM1QyxRQUFNLEVBQUUsT0FBTyxJQUFJO0FBQ25CLFFBQU0sRUFBRSxPQUFPLElBQUk7QUFHbkIsUUFBTSxXQUFOLE1BQU0sVUFBUztBQUFBLE1BQ2IsWUFBYSxVQUFVLFVBQVUsVUFBVSxDQUFDLEdBQUc7QUFXN0MsY0FBTSxJQUFJO0FBVVYsY0FBTSxJQUFJLFFBQVE7QUFTbEIsY0FBTSxJQUFJLFFBQVEsZ0JBQWdCLEtBQUssSUFBSTtBQVMzQyxhQUFLLE1BQU0sSUFBSTtBQUFBLFVBQ2I7QUFBQSxVQUNBLE1BQU07QUFBQSxVQUNOLE1BQU07QUFBQSxVQUNOLGNBQWM7QUFBQSxRQUNoQjtBQUFBLE1BQ0Y7QUFBQSxNQUVBLFVBQVcsTUFBTTtBQUNmLGVBQU8sV0FBVyxNQUFNLFNBQVE7QUFFaEMsZUFBTyxLQUFLLE1BQU0sRUFBRSxTQUFTLE9BQU8sR0FBRyxJQUFJO0FBQUEsTUFDN0M7QUFBQSxNQUVBLGVBQWdCLE1BQU07QUFDcEIsZUFBTyxXQUFXLE1BQU0sU0FBUTtBQUVoQyxlQUFPLEtBQUssTUFBTSxFQUFFLFNBQVMsWUFBWSxHQUFHLElBQUk7QUFBQSxNQUNsRDtBQUFBLE1BRUEsU0FBVSxNQUFNO0FBQ2QsZUFBTyxXQUFXLE1BQU0sU0FBUTtBQUVoQyxlQUFPLEtBQUssTUFBTSxFQUFFLFNBQVMsTUFBTSxHQUFHLElBQUk7QUFBQSxNQUM1QztBQUFBLE1BRUEsUUFBUyxNQUFNO0FBQ2IsZUFBTyxXQUFXLE1BQU0sU0FBUTtBQUVoQyxlQUFPLEtBQUssTUFBTSxFQUFFLFNBQVMsS0FBSyxHQUFHLElBQUk7QUFBQSxNQUMzQztBQUFBLE1BRUEsSUFBSSxPQUFRO0FBQ1YsZUFBTyxXQUFXLE1BQU0sU0FBUTtBQUVoQyxlQUFPLEtBQUssTUFBTSxFQUFFLFNBQVM7QUFBQSxNQUMvQjtBQUFBLE1BRUEsSUFBSSxPQUFRO0FBQ1YsZUFBTyxXQUFXLE1BQU0sU0FBUTtBQUVoQyxlQUFPLEtBQUssTUFBTSxFQUFFLFNBQVM7QUFBQSxNQUMvQjtBQUFBLE1BRUEsSUFBSSxPQUFRO0FBQ1YsZUFBTyxXQUFXLE1BQU0sU0FBUTtBQUVoQyxlQUFPLEtBQUssTUFBTSxFQUFFO0FBQUEsTUFDdEI7QUFBQSxNQUVBLElBQUksZUFBZ0I7QUFDbEIsZUFBTyxXQUFXLE1BQU0sU0FBUTtBQUVoQyxlQUFPLEtBQUssTUFBTSxFQUFFO0FBQUEsTUFDdEI7QUFBQSxNQUVBLEtBQUssT0FBTyxXQUFXLElBQUs7QUFDMUIsZUFBTztBQUFBLE1BQ1Q7QUFBQSxJQUNGO0FBRUEsV0FBTyxXQUFXLE9BQU8sT0FBTyxtQkFBbUJBLEtBQUk7QUFLdkQsYUFBUyxXQUFZLFFBQVE7QUFDM0IsYUFDRyxrQkFBa0IsUUFFakIsV0FDQyxPQUFPLE9BQU8sV0FBVyxjQUMxQixPQUFPLE9BQU8sZ0JBQWdCLGVBQzlCLE9BQU8sT0FBTyxXQUFXLE1BQU07QUFBQSxJQUdyQztBQUVBLElBQUFELFFBQU8sVUFBVSxFQUFFLFVBQVUsV0FBVztBQUFBO0FBQUE7OztBQzdIeEM7QUFBQSxrREFBQUUsVUFBQUMsU0FBQTtBQUFBO0FBRUEsUUFBTSxFQUFFLFlBQVksY0FBYyxJQUFJO0FBQ3RDLFFBQU0sRUFBRSxPQUFPLElBQUk7QUFDbkIsUUFBTSxFQUFFLG9CQUFvQixJQUFJO0FBQ2hDLFFBQU0sRUFBRSxVQUFVLFdBQVcsSUFBSTtBQUNqQyxRQUFNLEVBQUUsT0FBTyxJQUFJO0FBQ25CLFFBQU0sRUFBRSxNQUFNLFdBQVcsSUFBSSxRQUFRLGFBQWE7QUFDbEQsUUFBTSxXQUFXLFFBQVEsV0FBVztBQUdwQyxRQUFNLE9BQU8sV0FBVyxRQUFRO0FBR2hDLFFBQU1DLFlBQU4sTUFBTSxVQUFTO0FBQUEsTUFDYixZQUFhLE1BQU07QUFDakIsZUFBTyxLQUFLLGtCQUFrQixJQUFJO0FBRWxDLFlBQUksU0FBUyxRQUFXO0FBQ3RCLGdCQUFNLE9BQU8sT0FBTyxpQkFBaUI7QUFBQSxZQUNuQyxRQUFRO0FBQUEsWUFDUixVQUFVO0FBQUEsWUFDVixPQUFPLENBQUMsV0FBVztBQUFBLFVBQ3JCLENBQUM7QUFBQSxRQUNIO0FBRUEsYUFBSyxNQUFNLElBQUksQ0FBQztBQUFBLE1BQ2xCO0FBQUEsTUFFQSxPQUFRLE1BQU0sT0FBTyxXQUFXLFFBQVc7QUFDekMsZUFBTyxXQUFXLE1BQU0sU0FBUTtBQUVoQyxjQUFNLFNBQVM7QUFDZixlQUFPLG9CQUFvQixXQUFXLEdBQUcsTUFBTTtBQUUvQyxZQUFJLFVBQVUsV0FBVyxLQUFLLENBQUMsV0FBVyxLQUFLLEdBQUc7QUFDaEQsZ0JBQU0sSUFBSTtBQUFBLFlBQ1I7QUFBQSxVQUNGO0FBQUEsUUFDRjtBQUlBLGVBQU8sT0FBTyxXQUFXLFVBQVUsTUFBTSxRQUFRLE1BQU07QUFDdkQsZ0JBQVEsV0FBVyxLQUFLLElBQ3BCLE9BQU8sV0FBVyxLQUFLLE9BQU8sUUFBUSxTQUFTLEVBQUUsUUFBUSxNQUFNLENBQUMsSUFDaEUsT0FBTyxXQUFXLFVBQVUsT0FBTyxRQUFRLE9BQU87QUFDdEQsbUJBQVcsVUFBVSxXQUFXLElBQzVCLE9BQU8sV0FBVyxVQUFVLFVBQVUsUUFBUSxVQUFVLElBQ3hEO0FBSUosY0FBTUMsU0FBUSxVQUFVLE1BQU0sT0FBTyxRQUFRO0FBRzdDLGFBQUssTUFBTSxFQUFFLEtBQUtBLE1BQUs7QUFBQSxNQUN6QjtBQUFBLE1BRUEsT0FBUSxNQUFNO0FBQ1osZUFBTyxXQUFXLE1BQU0sU0FBUTtBQUVoQyxjQUFNLFNBQVM7QUFDZixlQUFPLG9CQUFvQixXQUFXLEdBQUcsTUFBTTtBQUUvQyxlQUFPLE9BQU8sV0FBVyxVQUFVLE1BQU0sUUFBUSxNQUFNO0FBSXZELGFBQUssTUFBTSxJQUFJLEtBQUssTUFBTSxFQUFFLE9BQU8sQ0FBQUEsV0FBU0EsT0FBTSxTQUFTLElBQUk7QUFBQSxNQUNqRTtBQUFBLE1BRUEsSUFBSyxNQUFNO0FBQ1QsZUFBTyxXQUFXLE1BQU0sU0FBUTtBQUVoQyxjQUFNLFNBQVM7QUFDZixlQUFPLG9CQUFvQixXQUFXLEdBQUcsTUFBTTtBQUUvQyxlQUFPLE9BQU8sV0FBVyxVQUFVLE1BQU0sUUFBUSxNQUFNO0FBSXZELGNBQU0sTUFBTSxLQUFLLE1BQU0sRUFBRSxVQUFVLENBQUNBLFdBQVVBLE9BQU0sU0FBUyxJQUFJO0FBQ2pFLFlBQUksUUFBUSxJQUFJO0FBQ2QsaUJBQU87QUFBQSxRQUNUO0FBSUEsZUFBTyxLQUFLLE1BQU0sRUFBRSxHQUFHLEVBQUU7QUFBQSxNQUMzQjtBQUFBLE1BRUEsT0FBUSxNQUFNO0FBQ1osZUFBTyxXQUFXLE1BQU0sU0FBUTtBQUVoQyxjQUFNLFNBQVM7QUFDZixlQUFPLG9CQUFvQixXQUFXLEdBQUcsTUFBTTtBQUUvQyxlQUFPLE9BQU8sV0FBVyxVQUFVLE1BQU0sUUFBUSxNQUFNO0FBTXZELGVBQU8sS0FBSyxNQUFNLEVBQ2YsT0FBTyxDQUFDQSxXQUFVQSxPQUFNLFNBQVMsSUFBSSxFQUNyQyxJQUFJLENBQUNBLFdBQVVBLE9BQU0sS0FBSztBQUFBLE1BQy9CO0FBQUEsTUFFQSxJQUFLLE1BQU07QUFDVCxlQUFPLFdBQVcsTUFBTSxTQUFRO0FBRWhDLGNBQU0sU0FBUztBQUNmLGVBQU8sb0JBQW9CLFdBQVcsR0FBRyxNQUFNO0FBRS9DLGVBQU8sT0FBTyxXQUFXLFVBQVUsTUFBTSxRQUFRLE1BQU07QUFJdkQsZUFBTyxLQUFLLE1BQU0sRUFBRSxVQUFVLENBQUNBLFdBQVVBLE9BQU0sU0FBUyxJQUFJLE1BQU07QUFBQSxNQUNwRTtBQUFBLE1BRUEsSUFBSyxNQUFNLE9BQU8sV0FBVyxRQUFXO0FBQ3RDLGVBQU8sV0FBVyxNQUFNLFNBQVE7QUFFaEMsY0FBTSxTQUFTO0FBQ2YsZUFBTyxvQkFBb0IsV0FBVyxHQUFHLE1BQU07QUFFL0MsWUFBSSxVQUFVLFdBQVcsS0FBSyxDQUFDLFdBQVcsS0FBSyxHQUFHO0FBQ2hELGdCQUFNLElBQUk7QUFBQSxZQUNSO0FBQUEsVUFDRjtBQUFBLFFBQ0Y7QUFPQSxlQUFPLE9BQU8sV0FBVyxVQUFVLE1BQU0sUUFBUSxNQUFNO0FBQ3ZELGdCQUFRLFdBQVcsS0FBSyxJQUNwQixPQUFPLFdBQVcsS0FBSyxPQUFPLFFBQVEsUUFBUSxFQUFFLFFBQVEsTUFBTSxDQUFDLElBQy9ELE9BQU8sV0FBVyxVQUFVLE9BQU8sUUFBUSxNQUFNO0FBQ3JELG1CQUFXLFVBQVUsV0FBVyxJQUM1QixPQUFPLFdBQVcsVUFBVSxVQUFVLFFBQVEsTUFBTSxJQUNwRDtBQUlKLGNBQU1BLFNBQVEsVUFBVSxNQUFNLE9BQU8sUUFBUTtBQUk3QyxjQUFNLE1BQU0sS0FBSyxNQUFNLEVBQUUsVUFBVSxDQUFDQSxXQUFVQSxPQUFNLFNBQVMsSUFBSTtBQUNqRSxZQUFJLFFBQVEsSUFBSTtBQUNkLGVBQUssTUFBTSxJQUFJO0FBQUEsWUFDYixHQUFHLEtBQUssTUFBTSxFQUFFLE1BQU0sR0FBRyxHQUFHO0FBQUEsWUFDNUJBO0FBQUEsWUFDQSxHQUFHLEtBQUssTUFBTSxFQUFFLE1BQU0sTUFBTSxDQUFDLEVBQUUsT0FBTyxDQUFDQSxXQUFVQSxPQUFNLFNBQVMsSUFBSTtBQUFBLFVBQ3RFO0FBQUEsUUFDRixPQUFPO0FBRUwsZUFBSyxNQUFNLEVBQUUsS0FBS0EsTUFBSztBQUFBLFFBQ3pCO0FBQUEsTUFDRjtBQUFBLE1BRUEsQ0FBQyxTQUFTLFFBQVEsTUFBTSxFQUFHLE9BQU8sU0FBUztBQUN6QyxjQUFNLFFBQVEsS0FBSyxNQUFNLEVBQUUsT0FBTyxDQUFDLEdBQUcsTUFBTTtBQUMxQyxjQUFJLEVBQUUsRUFBRSxJQUFJLEdBQUc7QUFDYixnQkFBSSxNQUFNLFFBQVEsRUFBRSxFQUFFLElBQUksQ0FBQyxHQUFHO0FBQzVCLGdCQUFFLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxLQUFLO0FBQUEsWUFDeEIsT0FBTztBQUNMLGdCQUFFLEVBQUUsSUFBSSxJQUFJLENBQUMsRUFBRSxFQUFFLElBQUksR0FBRyxFQUFFLEtBQUs7QUFBQSxZQUNqQztBQUFBLFVBQ0YsT0FBTztBQUNMLGNBQUUsRUFBRSxJQUFJLElBQUksRUFBRTtBQUFBLFVBQ2hCO0FBRUEsaUJBQU87QUFBQSxRQUNULEdBQUcsRUFBRSxXQUFXLEtBQUssQ0FBQztBQUV0QixnQkFBUSxVQUFVO0FBQ2xCLGdCQUFRLFdBQVc7QUFFbkIsY0FBTSxTQUFTLFNBQVMsa0JBQWtCLFNBQVMsS0FBSztBQUd4RCxlQUFPLFlBQVksT0FBTyxNQUFNLE9BQU8sUUFBUSxHQUFHLElBQUksQ0FBQyxDQUFDO0FBQUEsTUFDMUQ7QUFBQSxJQUNGO0FBRUEsa0JBQWMsWUFBWUQsV0FBVSxRQUFRLFFBQVEsT0FBTztBQUUzRCxXQUFPLGlCQUFpQkEsVUFBUyxXQUFXO0FBQUEsTUFDMUMsUUFBUTtBQUFBLE1BQ1IsUUFBUTtBQUFBLE1BQ1IsS0FBSztBQUFBLE1BQ0wsUUFBUTtBQUFBLE1BQ1IsS0FBSztBQUFBLE1BQ0wsS0FBSztBQUFBLE1BQ0wsQ0FBQyxPQUFPLFdBQVcsR0FBRztBQUFBLFFBQ3BCLE9BQU87QUFBQSxRQUNQLGNBQWM7QUFBQSxNQUNoQjtBQUFBLElBQ0YsQ0FBQztBQVNELGFBQVMsVUFBVyxNQUFNLE9BQU8sVUFBVTtBQU16QyxVQUFJLE9BQU8sVUFBVSxVQUFVO0FBQUEsTUFFL0IsT0FBTztBQUtMLFlBQUksQ0FBQyxXQUFXLEtBQUssR0FBRztBQUN0QixrQkFBUSxpQkFBaUIsT0FDckIsSUFBSSxLQUFLLENBQUMsS0FBSyxHQUFHLFFBQVEsRUFBRSxNQUFNLE1BQU0sS0FBSyxDQUFDLElBQzlDLElBQUksU0FBUyxPQUFPLFFBQVEsRUFBRSxNQUFNLE1BQU0sS0FBSyxDQUFDO0FBQUEsUUFDdEQ7QUFJQSxZQUFJLGFBQWEsUUFBVztBQUUxQixnQkFBTSxVQUFVO0FBQUEsWUFDZCxNQUFNLE1BQU07QUFBQSxZQUNaLGNBQWMsTUFBTTtBQUFBLFVBQ3RCO0FBRUEsa0JBQVEsaUJBQWlCLGFBQ3JCLElBQUksS0FBSyxDQUFDLEtBQUssR0FBRyxVQUFVLE9BQU8sSUFDbkMsSUFBSSxTQUFTLE9BQU8sVUFBVSxPQUFPO0FBQUEsUUFDM0M7QUFBQSxNQUNGO0FBR0EsYUFBTyxFQUFFLE1BQU0sTUFBTTtBQUFBLElBQ3ZCO0FBRUEsSUFBQUQsUUFBTyxVQUFVLEVBQUUsVUFBQUMsV0FBVSxVQUFVO0FBQUE7QUFBQTs7O0FDM1B2QztBQUFBLHlEQUFBRSxVQUFBQyxTQUFBO0FBQUE7QUFFQSxRQUFNLEVBQUUsYUFBYSw2QkFBNkIsSUFBSTtBQUN0RCxRQUFNLEVBQUUsZ0JBQWdCLElBQUk7QUFDNUIsUUFBTSxFQUFFLHVCQUF1QixpQkFBaUIsSUFBSTtBQUNwRCxRQUFNLEVBQUUsV0FBVyxJQUFJO0FBQ3ZCLFFBQU0sRUFBRSxVQUFVLElBQUk7QUFDdEIsUUFBTSxTQUFTLFFBQVEsYUFBYTtBQUNwQyxRQUFNLEVBQUUsTUFBTSxTQUFTLElBQUksUUFBUSxhQUFhO0FBRWhELFFBQU0sT0FBTyxXQUFXLFFBQVE7QUFFaEMsUUFBTSxxQkFBcUIsT0FBTyxLQUFLLG1CQUFtQjtBQUMxRCxRQUFNLGlCQUFpQixPQUFPLEtBQUssWUFBWTtBQUMvQyxRQUFNLEtBQUssT0FBTyxLQUFLLElBQUk7QUFDM0IsUUFBTSxTQUFTLE9BQU8sS0FBSyxRQUFRO0FBS25DLGFBQVMsY0FBZSxPQUFPO0FBQzdCLGVBQVMsSUFBSSxHQUFHLElBQUksTUFBTSxRQUFRLEVBQUUsR0FBRztBQUNyQyxhQUFLLE1BQU0sV0FBVyxDQUFDLElBQUksQ0FBQyxTQUFVLEdBQUc7QUFDdkMsaUJBQU87QUFBQSxRQUNUO0FBQUEsTUFDRjtBQUNBLGFBQU87QUFBQSxJQUNUO0FBTUEsYUFBUyxpQkFBa0IsVUFBVTtBQUNuQyxZQUFNLFNBQVMsU0FBUztBQUd4QixVQUFJLFNBQVMsTUFBTSxTQUFTLElBQUk7QUFDOUIsZUFBTztBQUFBLE1BQ1Q7QUFLQSxlQUFTLElBQUksR0FBRyxJQUFJLFFBQVEsRUFBRSxHQUFHO0FBQy9CLGNBQU0sS0FBSyxTQUFTLFdBQVcsQ0FBQztBQUVoQyxZQUFJLEVBQ0QsTUFBTSxNQUFRLE1BQU0sTUFDcEIsTUFBTSxNQUFRLE1BQU0sTUFDcEIsTUFBTSxNQUFRLE1BQU0sT0FDckIsT0FBTyxNQUNQLE9BQU8sTUFDUCxPQUFPLEtBQ047QUFDRCxpQkFBTztBQUFBLFFBQ1Q7QUFBQSxNQUNGO0FBRUEsYUFBTztBQUFBLElBQ1Q7QUFPQSxhQUFTLHdCQUF5QixPQUFPLFVBQVU7QUFFakQsYUFBTyxhQUFhLGFBQWEsU0FBUyxZQUFZLHFCQUFxQjtBQUUzRSxZQUFNLGlCQUFpQixTQUFTLFdBQVcsSUFBSSxVQUFVO0FBS3pELFVBQUksbUJBQW1CLFFBQVc7QUFDaEMsZUFBTztBQUFBLE1BQ1Q7QUFFQSxZQUFNLFdBQVcsT0FBTyxLQUFLLEtBQUssY0FBYyxJQUFJLE1BQU07QUFHMUQsWUFBTSxZQUFZLENBQUM7QUFJbkIsWUFBTSxXQUFXLEVBQUUsVUFBVSxFQUFFO0FBRy9CLGFBQU8sTUFBTSxTQUFTLFFBQVEsTUFBTSxNQUFRLE1BQU0sU0FBUyxXQUFXLENBQUMsTUFBTSxJQUFNO0FBQ2pGLGlCQUFTLFlBQVk7QUFBQSxNQUN2QjtBQUVBLFVBQUksV0FBVyxNQUFNO0FBRXJCLGFBQU8sTUFBTSxXQUFXLENBQUMsTUFBTSxNQUFRLE1BQU0sV0FBVyxDQUFDLE1BQU0sSUFBTTtBQUNuRSxvQkFBWTtBQUFBLE1BQ2Q7QUFFQSxVQUFJLGFBQWEsTUFBTSxRQUFRO0FBQzdCLGdCQUFRLE1BQU0sU0FBUyxHQUFHLFFBQVE7QUFBQSxNQUNwQztBQUdBLGFBQU8sTUFBTTtBQUtYLFlBQUksTUFBTSxTQUFTLFNBQVMsVUFBVSxTQUFTLFdBQVcsU0FBUyxNQUFNLEVBQUUsT0FBTyxRQUFRLEdBQUc7QUFDM0YsbUJBQVMsWUFBWSxTQUFTO0FBQUEsUUFDaEMsT0FBTztBQUNMLGlCQUFPO0FBQUEsUUFDVDtBQUtBLFlBQ0csU0FBUyxhQUFhLE1BQU0sU0FBUyxLQUFLLGlCQUFpQixPQUFPLElBQUksUUFBUSxLQUM5RSxTQUFTLGFBQWEsTUFBTSxTQUFTLEtBQUssaUJBQWlCLE9BQU8sUUFBUSxRQUFRLEdBQ25GO0FBQ0EsaUJBQU87QUFBQSxRQUNUO0FBSUEsWUFBSSxNQUFNLFNBQVMsUUFBUSxNQUFNLE1BQVEsTUFBTSxTQUFTLFdBQVcsQ0FBQyxNQUFNLElBQU07QUFDOUUsaUJBQU87QUFBQSxRQUNUO0FBR0EsaUJBQVMsWUFBWTtBQUtyQixjQUFNLFNBQVMsOEJBQThCLE9BQU8sUUFBUTtBQUU1RCxZQUFJLFdBQVcsV0FBVztBQUN4QixpQkFBTztBQUFBLFFBQ1Q7QUFFQSxZQUFJLEVBQUUsTUFBTSxVQUFVLGFBQWEsU0FBUyxJQUFJO0FBSWhELGlCQUFTLFlBQVk7QUFHckIsWUFBSTtBQUlKO0FBQ0UsZ0JBQU0sZ0JBQWdCLE1BQU0sUUFBUSxTQUFTLFNBQVMsQ0FBQyxHQUFHLFNBQVMsUUFBUTtBQUUzRSxjQUFJLGtCQUFrQixJQUFJO0FBQ3hCLG1CQUFPO0FBQUEsVUFDVDtBQUVBLGlCQUFPLE1BQU0sU0FBUyxTQUFTLFVBQVUsZ0JBQWdCLENBQUM7QUFFMUQsbUJBQVMsWUFBWSxLQUFLO0FBSTFCLGNBQUksYUFBYSxVQUFVO0FBQ3pCLG1CQUFPLE9BQU8sS0FBSyxLQUFLLFNBQVMsR0FBRyxRQUFRO0FBQUEsVUFDOUM7QUFBQSxRQUNGO0FBSUEsWUFBSSxNQUFNLFNBQVMsUUFBUSxNQUFNLE1BQVEsTUFBTSxTQUFTLFdBQVcsQ0FBQyxNQUFNLElBQU07QUFDOUUsaUJBQU87QUFBQSxRQUNULE9BQU87QUFDTCxtQkFBUyxZQUFZO0FBQUEsUUFDdkI7QUFHQSxZQUFJO0FBRUosWUFBSSxhQUFhLE1BQU07QUFFckIsMEJBQWdCO0FBTWhCLGNBQUksQ0FBQyxjQUFjLFdBQVcsR0FBRztBQUMvQiwwQkFBYztBQUFBLFVBQ2hCO0FBR0Esa0JBQVEsSUFBSSxLQUFLLENBQUMsSUFBSSxHQUFHLFVBQVUsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUFBLFFBQzFELE9BQU87QUFJTCxrQkFBUSxnQkFBZ0IsT0FBTyxLQUFLLElBQUksQ0FBQztBQUFBLFFBQzNDO0FBR0EsZUFBTyxZQUFZLElBQUksQ0FBQztBQUN4QixlQUFRLE9BQU8sVUFBVSxZQUFZLFlBQVksS0FBSyxLQUFNLFdBQVcsS0FBSyxDQUFDO0FBRzdFLGtCQUFVLEtBQUssVUFBVSxNQUFNLE9BQU8sUUFBUSxDQUFDO0FBQUEsTUFDakQ7QUFBQSxJQUNGO0FBT0EsYUFBUyw4QkFBK0IsT0FBTyxVQUFVO0FBRXZELFVBQUksT0FBTztBQUNYLFVBQUksV0FBVztBQUNmLFVBQUksY0FBYztBQUNsQixVQUFJLFdBQVc7QUFHZixhQUFPLE1BQU07QUFFWCxZQUFJLE1BQU0sU0FBUyxRQUFRLE1BQU0sTUFBUSxNQUFNLFNBQVMsV0FBVyxDQUFDLE1BQU0sSUFBTTtBQUU5RSxjQUFJLFNBQVMsTUFBTTtBQUNqQixtQkFBTztBQUFBLFVBQ1Q7QUFHQSxpQkFBTyxFQUFFLE1BQU0sVUFBVSxhQUFhLFNBQVM7QUFBQSxRQUNqRDtBQUlBLFlBQUksYUFBYTtBQUFBLFVBQ2YsQ0FBQyxTQUFTLFNBQVMsTUFBUSxTQUFTLE1BQVEsU0FBUztBQUFBLFVBQ3JEO0FBQUEsVUFDQTtBQUFBLFFBQ0Y7QUFHQSxxQkFBYSxZQUFZLFlBQVksTUFBTSxNQUFNLENBQUMsU0FBUyxTQUFTLEtBQU8sU0FBUyxFQUFJO0FBR3hGLFlBQUksQ0FBQyxzQkFBc0IsS0FBSyxXQUFXLFNBQVMsQ0FBQyxHQUFHO0FBQ3RELGlCQUFPO0FBQUEsUUFDVDtBQUdBLFlBQUksTUFBTSxTQUFTLFFBQVEsTUFBTSxJQUFNO0FBQ3JDLGlCQUFPO0FBQUEsUUFDVDtBQUdBLGlCQUFTO0FBSVQ7QUFBQSxVQUNFLENBQUMsU0FBUyxTQUFTLE1BQVEsU0FBUztBQUFBLFVBQ3BDO0FBQUEsVUFDQTtBQUFBLFFBQ0Y7QUFHQSxnQkFBUSw2QkFBNkIsVUFBVSxHQUFHO0FBQUEsVUFDaEQsS0FBSyx1QkFBdUI7QUFFMUIsbUJBQU8sV0FBVztBQUlsQixnQkFBSSxDQUFDLGlCQUFpQixPQUFPLG9CQUFvQixRQUFRLEdBQUc7QUFDMUQscUJBQU87QUFBQSxZQUNUO0FBSUEscUJBQVMsWUFBWTtBQUtyQixtQkFBTywyQkFBMkIsT0FBTyxRQUFRO0FBRWpELGdCQUFJLFNBQVMsTUFBTTtBQUNqQixxQkFBTztBQUFBLFlBQ1Q7QUFHQSxnQkFBSSxpQkFBaUIsT0FBTyxnQkFBZ0IsUUFBUSxHQUFHO0FBRXJELGtCQUFJLFFBQVEsU0FBUyxXQUFXLGVBQWU7QUFFL0Msa0JBQUksTUFBTSxLQUFLLE1BQU0sSUFBTTtBQUN6Qix5QkFBUyxZQUFZO0FBQ3JCLHlCQUFTO0FBQUEsY0FDWDtBQUVBLGtCQUFJLE1BQU0sS0FBSyxNQUFNLE1BQVEsTUFBTSxRQUFRLENBQUMsTUFBTSxJQUFNO0FBQ3RELHVCQUFPO0FBQUEsY0FDVDtBQUlBLHVCQUFTLFlBQVk7QUFJckIseUJBQVcsMkJBQTJCLE9BQU8sUUFBUTtBQUVyRCxrQkFBSSxhQUFhLE1BQU07QUFDckIsdUJBQU87QUFBQSxjQUNUO0FBQUEsWUFDRjtBQUVBO0FBQUEsVUFDRjtBQUFBLFVBQ0EsS0FBSyxnQkFBZ0I7QUFHbkIsZ0JBQUksY0FBYztBQUFBLGNBQ2hCLENBQUMsU0FBUyxTQUFTLE1BQVEsU0FBUztBQUFBLGNBQ3BDO0FBQUEsY0FDQTtBQUFBLFlBQ0Y7QUFHQSwwQkFBYyxZQUFZLGFBQWEsT0FBTyxNQUFNLENBQUMsU0FBUyxTQUFTLEtBQU8sU0FBUyxFQUFJO0FBRzNGLDBCQUFjLGlCQUFpQixXQUFXO0FBRTFDO0FBQUEsVUFDRjtBQUFBLFVBQ0EsS0FBSyw2QkFBNkI7QUFDaEMsZ0JBQUksY0FBYztBQUFBLGNBQ2hCLENBQUMsU0FBUyxTQUFTLE1BQVEsU0FBUztBQUFBLGNBQ3BDO0FBQUEsY0FDQTtBQUFBLFlBQ0Y7QUFFQSwwQkFBYyxZQUFZLGFBQWEsT0FBTyxNQUFNLENBQUMsU0FBUyxTQUFTLEtBQU8sU0FBUyxFQUFJO0FBRTNGLHVCQUFXLGlCQUFpQixXQUFXO0FBRXZDO0FBQUEsVUFDRjtBQUFBLFVBQ0EsU0FBUztBQUdQO0FBQUEsY0FDRSxDQUFDLFNBQVMsU0FBUyxNQUFRLFNBQVM7QUFBQSxjQUNwQztBQUFBLGNBQ0E7QUFBQSxZQUNGO0FBQUEsVUFDRjtBQUFBLFFBQ0Y7QUFJQSxZQUFJLE1BQU0sU0FBUyxRQUFRLE1BQU0sTUFBUSxNQUFNLFNBQVMsV0FBVyxDQUFDLE1BQU0sSUFBTTtBQUM5RSxpQkFBTztBQUFBLFFBQ1QsT0FBTztBQUNMLG1CQUFTLFlBQVk7QUFBQSxRQUN2QjtBQUFBLE1BQ0Y7QUFBQSxJQUNGO0FBT0EsYUFBUywyQkFBNEIsT0FBTyxVQUFVO0FBRXBELGFBQU8sTUFBTSxTQUFTLFdBQVcsQ0FBQyxNQUFNLEVBQUk7QUFJNUMsVUFBSSxPQUFPO0FBQUEsUUFDVCxDQUFDLFNBQVMsU0FBUyxNQUFRLFNBQVMsTUFBUSxTQUFTO0FBQUEsUUFDckQ7QUFBQSxRQUNBO0FBQUEsTUFDRjtBQUdBLFVBQUksTUFBTSxTQUFTLFFBQVEsTUFBTSxJQUFNO0FBQ3JDLGVBQU87QUFBQSxNQUNULE9BQU87QUFDTCxpQkFBUztBQUFBLE1BQ1g7QUFNQSxhQUFPLElBQUksWUFBWSxFQUFFLE9BQU8sSUFBSSxFQUNqQyxRQUFRLFNBQVMsSUFBSSxFQUNyQixRQUFRLFNBQVMsSUFBSSxFQUNyQixRQUFRLFFBQVEsR0FBRztBQUd0QixhQUFPO0FBQUEsSUFDVDtBQU9BLGFBQVMsd0JBQXlCLFdBQVcsT0FBTyxVQUFVO0FBQzVELFVBQUksUUFBUSxTQUFTO0FBRXJCLGFBQU8sUUFBUSxNQUFNLFVBQVUsVUFBVSxNQUFNLEtBQUssQ0FBQyxHQUFHO0FBQ3RELFVBQUU7QUFBQSxNQUNKO0FBRUEsYUFBTyxNQUFNLFNBQVMsU0FBUyxVQUFXLFNBQVMsV0FBVyxLQUFNO0FBQUEsSUFDdEU7QUFTQSxhQUFTLFlBQWEsS0FBSyxTQUFTLFVBQVUsV0FBVztBQUN2RCxVQUFJLE9BQU87QUFDWCxVQUFJLFFBQVEsSUFBSSxTQUFTO0FBRXpCLFVBQUksU0FBUztBQUNYLGVBQU8sT0FBTyxJQUFJLFVBQVUsVUFBVSxJQUFJLElBQUksQ0FBQyxFQUFHO0FBQUEsTUFDcEQ7QUFFQSxVQUFJLFVBQVU7QUFDWixlQUFPLFFBQVEsS0FBSyxVQUFVLElBQUksS0FBSyxDQUFDLEVBQUc7QUFBQSxNQUM3QztBQUVBLGFBQU8sU0FBUyxLQUFLLFVBQVUsSUFBSSxTQUFTLElBQUksTUFBTSxJQUFJLFNBQVMsTUFBTSxRQUFRLENBQUM7QUFBQSxJQUNwRjtBQVFBLGFBQVMsaUJBQWtCLFFBQVEsT0FBTyxVQUFVO0FBQ2xELFVBQUksT0FBTyxTQUFTLE1BQU0sUUFBUTtBQUNoQyxlQUFPO0FBQUEsTUFDVDtBQUVBLGVBQVMsSUFBSSxHQUFHLElBQUksTUFBTSxRQUFRLEtBQUs7QUFDckMsWUFBSSxNQUFNLENBQUMsTUFBTSxPQUFPLFNBQVMsV0FBVyxDQUFDLEdBQUc7QUFDOUMsaUJBQU87QUFBQSxRQUNUO0FBQUEsTUFDRjtBQUVBLGFBQU87QUFBQSxJQUNUO0FBRUEsSUFBQUEsUUFBTyxVQUFVO0FBQUEsTUFDZjtBQUFBLE1BQ0E7QUFBQSxJQUNGO0FBQUE7QUFBQTs7O0FDemRBO0FBQUEsOENBQUFDLFVBQUFDLFNBQUE7QUFBQTtBQUVBLFFBQU1DLFFBQU87QUFDYixRQUFNO0FBQUEsTUFDSjtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxJQUNGLElBQUk7QUFDSixRQUFNLEVBQUUsVUFBQUMsVUFBUyxJQUFJO0FBQ3JCLFFBQU0sRUFBRSxPQUFPLElBQUk7QUFDbkIsUUFBTSxFQUFFLE9BQU8sSUFBSTtBQUNuQixRQUFNLEVBQUUsTUFBQUMsTUFBSyxJQUFJLFFBQVEsYUFBYTtBQUN0QyxRQUFNLFNBQVMsUUFBUSxhQUFhO0FBQ3BDLFFBQU0sRUFBRSxXQUFXLFlBQVksSUFBSSxRQUFRLGFBQWE7QUFDeEQsUUFBTSxFQUFFLGVBQUFDLGVBQWMsSUFBSSxRQUFRLGlCQUFpQjtBQUNuRCxRQUFNLEVBQUUsbUJBQW1CLElBQUk7QUFDL0IsUUFBTSxFQUFFLHdCQUF3QixJQUFJO0FBQ3BDLFFBQUk7QUFFSixRQUFJO0FBQ0YsWUFBTUMsVUFBUyxRQUFRLGFBQWE7QUFDcEMsZUFBUyxDQUFDLFFBQVFBLFFBQU8sVUFBVSxHQUFHLEdBQUc7QUFBQSxJQUMzQyxRQUFRO0FBQ04sZUFBUyxDQUFDLFFBQVEsS0FBSyxNQUFNLEtBQUssT0FBTyxHQUFHLENBQUM7QUFBQSxJQUMvQztBQUVBLFFBQU1DLGVBQWMsSUFBSSxZQUFZO0FBQ3BDLGFBQVNDLFFBQVE7QUFBQSxJQUFDO0FBRWxCLFFBQU0sMEJBQTBCLFdBQVcsd0JBQXdCLFFBQVEsUUFBUSxRQUFRLEtBQUssTUFBTTtBQUN0RyxRQUFJO0FBRUosUUFBSSx5QkFBeUI7QUFDM0IsdUJBQWlCLElBQUkscUJBQXFCLENBQUMsWUFBWTtBQUNyRCxjQUFNQyxVQUFTLFFBQVEsTUFBTTtBQUM3QixZQUFJQSxXQUFVLENBQUNBLFFBQU8sVUFBVSxDQUFDLFlBQVlBLE9BQU0sS0FBSyxDQUFDLFVBQVVBLE9BQU0sR0FBRztBQUMxRSxVQUFBQSxRQUFPLE9BQU8sNENBQTRDLEVBQUUsTUFBTUQsS0FBSTtBQUFBLFFBQ3hFO0FBQUEsTUFDRixDQUFDO0FBQUEsSUFDSDtBQUdBLGFBQVMsWUFBYSxRQUFRLFlBQVksT0FBTztBQUUvQyxVQUFJQyxVQUFTO0FBR2IsVUFBSSxrQkFBa0IsZ0JBQWdCO0FBQ3BDLFFBQUFBLFVBQVM7QUFBQSxNQUNYLFdBQVcsV0FBVyxNQUFNLEdBQUc7QUFHN0IsUUFBQUEsVUFBUyxPQUFPLE9BQU87QUFBQSxNQUN6QixPQUFPO0FBR0wsUUFBQUEsVUFBUyxJQUFJLGVBQWU7QUFBQSxVQUMxQixNQUFNLEtBQU0sWUFBWTtBQUN0QixrQkFBTSxTQUFTLE9BQU8sV0FBVyxXQUFXRixhQUFZLE9BQU8sTUFBTSxJQUFJO0FBRXpFLGdCQUFJLE9BQU8sWUFBWTtBQUNyQix5QkFBVyxRQUFRLE1BQU07QUFBQSxZQUMzQjtBQUVBLDJCQUFlLE1BQU0sb0JBQW9CLFVBQVUsQ0FBQztBQUFBLFVBQ3REO0FBQUEsVUFDQSxRQUFTO0FBQUEsVUFBQztBQUFBLFVBQ1YsTUFBTTtBQUFBLFFBQ1IsQ0FBQztBQUFBLE1BQ0g7QUFHQSxhQUFPLHFCQUFxQkUsT0FBTSxDQUFDO0FBR25DLFVBQUksU0FBUztBQUdiLFVBQUksU0FBUztBQUdiLFVBQUksU0FBUztBQUdiLFVBQUksT0FBTztBQUdYLFVBQUksT0FBTyxXQUFXLFVBQVU7QUFHOUIsaUJBQVM7QUFHVCxlQUFPO0FBQUEsTUFDVCxXQUFXLGtCQUFrQixpQkFBaUI7QUFTNUMsaUJBQVMsT0FBTyxTQUFTO0FBR3pCLGVBQU87QUFBQSxNQUNULFdBQVdKLGVBQWMsTUFBTSxHQUFHO0FBSWhDLGlCQUFTLElBQUksV0FBVyxPQUFPLE1BQU0sQ0FBQztBQUFBLE1BQ3hDLFdBQVcsWUFBWSxPQUFPLE1BQU0sR0FBRztBQUlyQyxpQkFBUyxJQUFJLFdBQVcsT0FBTyxPQUFPLE1BQU0sT0FBTyxZQUFZLE9BQU8sYUFBYSxPQUFPLFVBQVUsQ0FBQztBQUFBLE1BQ3ZHLFdBQVdILE1BQUssZUFBZSxNQUFNLEdBQUc7QUFDdEMsY0FBTSxXQUFXLHdCQUF3QixHQUFHLE9BQU8sSUFBSSxDQUFDLEdBQUcsU0FBUyxJQUFJLEdBQUcsQ0FBQztBQUM1RSxjQUFNLFNBQVMsS0FBSyxRQUFRO0FBQUE7QUFHNUIsY0FBTVEsVUFBUyxDQUFDLFFBQ2QsSUFBSSxRQUFRLE9BQU8sS0FBSyxFQUFFLFFBQVEsT0FBTyxLQUFLLEVBQUUsUUFBUSxNQUFNLEtBQUs7QUFDckUsY0FBTSxxQkFBcUIsQ0FBQyxVQUFVLE1BQU0sUUFBUSxhQUFhLE1BQU07QUFRdkUsY0FBTSxZQUFZLENBQUM7QUFDbkIsY0FBTSxLQUFLLElBQUksV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDO0FBQ2xDLGlCQUFTO0FBQ1QsWUFBSSxzQkFBc0I7QUFFMUIsbUJBQVcsQ0FBQyxNQUFNLEtBQUssS0FBSyxRQUFRO0FBQ2xDLGNBQUksT0FBTyxVQUFVLFVBQVU7QUFDN0Isa0JBQU1DLFNBQVFKLGFBQVksT0FBTyxTQUMvQixXQUFXRyxRQUFPLG1CQUFtQixJQUFJLENBQUMsQ0FBQztBQUFBO0FBQUEsRUFDaEMsbUJBQW1CLEtBQUssQ0FBQztBQUFBLENBQU07QUFDNUMsc0JBQVUsS0FBS0MsTUFBSztBQUNwQixzQkFBVUEsT0FBTTtBQUFBLFVBQ2xCLE9BQU87QUFDTCxrQkFBTUEsU0FBUUosYUFBWSxPQUFPLEdBQUcsTUFBTSxXQUFXRyxRQUFPLG1CQUFtQixJQUFJLENBQUMsQ0FBQyxPQUNsRixNQUFNLE9BQU8sZUFBZUEsUUFBTyxNQUFNLElBQUksQ0FBQyxNQUFNLE1BQU07QUFBQSxnQkFFekQsTUFBTSxRQUFRLDBCQUNoQjtBQUFBO0FBQUEsQ0FBVTtBQUNaLHNCQUFVLEtBQUtDLFFBQU8sT0FBTyxFQUFFO0FBQy9CLGdCQUFJLE9BQU8sTUFBTSxTQUFTLFVBQVU7QUFDbEMsd0JBQVVBLE9BQU0sYUFBYSxNQUFNLE9BQU8sR0FBRztBQUFBLFlBQy9DLE9BQU87QUFDTCxvQ0FBc0I7QUFBQSxZQUN4QjtBQUFBLFVBQ0Y7QUFBQSxRQUNGO0FBRUEsY0FBTSxRQUFRSixhQUFZLE9BQU8sS0FBSyxRQUFRLElBQUk7QUFDbEQsa0JBQVUsS0FBSyxLQUFLO0FBQ3BCLGtCQUFVLE1BQU07QUFDaEIsWUFBSSxxQkFBcUI7QUFDdkIsbUJBQVM7QUFBQSxRQUNYO0FBR0EsaUJBQVM7QUFFVCxpQkFBUyxtQkFBb0I7QUFDM0IscUJBQVcsUUFBUSxXQUFXO0FBQzVCLGdCQUFJLEtBQUssUUFBUTtBQUNmLHFCQUFRLEtBQUssT0FBTztBQUFBLFlBQ3RCLE9BQU87QUFDTCxvQkFBTTtBQUFBLFlBQ1I7QUFBQSxVQUNGO0FBQUEsUUFDRjtBQUtBLGVBQU8saUNBQWlDLFFBQVE7QUFBQSxNQUNsRCxXQUFXLFdBQVcsTUFBTSxHQUFHO0FBSTdCLGlCQUFTO0FBR1QsaUJBQVMsT0FBTztBQUloQixZQUFJLE9BQU8sTUFBTTtBQUNmLGlCQUFPLE9BQU87QUFBQSxRQUNoQjtBQUFBLE1BQ0YsV0FBVyxPQUFPLE9BQU8sT0FBTyxhQUFhLE1BQU0sWUFBWTtBQUU3RCxZQUFJLFdBQVc7QUFDYixnQkFBTSxJQUFJLFVBQVUsV0FBVztBQUFBLFFBQ2pDO0FBR0EsWUFBSUwsTUFBSyxZQUFZLE1BQU0sS0FBSyxPQUFPLFFBQVE7QUFDN0MsZ0JBQU0sSUFBSTtBQUFBLFlBQ1I7QUFBQSxVQUNGO0FBQUEsUUFDRjtBQUVBLFFBQUFPLFVBQ0Usa0JBQWtCLGlCQUFpQixTQUFTLG1CQUFtQixNQUFNO0FBQUEsTUFDekU7QUFJQSxVQUFJLE9BQU8sV0FBVyxZQUFZUCxNQUFLLFNBQVMsTUFBTSxHQUFHO0FBQ3ZELGlCQUFTLE9BQU8sV0FBVyxNQUFNO0FBQUEsTUFDbkM7QUFHQSxVQUFJLFVBQVUsTUFBTTtBQUVsQixZQUFJO0FBQ0osUUFBQU8sVUFBUyxJQUFJLGVBQWU7QUFBQSxVQUMxQixNQUFNLFFBQVM7QUFDYix1QkFBVyxPQUFPLE1BQU0sRUFBRSxPQUFPLGFBQWEsRUFBRTtBQUFBLFVBQ2xEO0FBQUEsVUFDQSxNQUFNLEtBQU0sWUFBWTtBQUN0QixrQkFBTSxFQUFFLE9BQU8sS0FBSyxJQUFJLE1BQU0sU0FBUyxLQUFLO0FBQzVDLGdCQUFJLE1BQU07QUFFUiw2QkFBZSxNQUFNO0FBQ25CLDJCQUFXLE1BQU07QUFDakIsMkJBQVcsYUFBYSxRQUFRLENBQUM7QUFBQSxjQUNuQyxDQUFDO0FBQUEsWUFDSCxPQUFPO0FBSUwsa0JBQUksQ0FBQyxVQUFVQSxPQUFNLEdBQUc7QUFDdEIsc0JBQU0sU0FBUyxJQUFJLFdBQVcsS0FBSztBQUNuQyxvQkFBSSxPQUFPLFlBQVk7QUFDckIsNkJBQVcsUUFBUSxNQUFNO0FBQUEsZ0JBQzNCO0FBQUEsY0FDRjtBQUFBLFlBQ0Y7QUFDQSxtQkFBTyxXQUFXLGNBQWM7QUFBQSxVQUNsQztBQUFBLFVBQ0EsTUFBTSxPQUFRLFFBQVE7QUFDcEIsa0JBQU0sU0FBUyxPQUFPO0FBQUEsVUFDeEI7QUFBQSxVQUNBLE1BQU07QUFBQSxRQUNSLENBQUM7QUFBQSxNQUNIO0FBSUEsWUFBTSxPQUFPLEVBQUUsUUFBQUEsU0FBUSxRQUFRLE9BQU87QUFHdEMsYUFBTyxDQUFDLE1BQU0sSUFBSTtBQUFBLElBQ3BCO0FBR0EsYUFBUyxrQkFBbUIsUUFBUSxZQUFZLE9BQU87QUFLckQsVUFBSSxrQkFBa0IsZ0JBQWdCO0FBR3BDLGVBQU8sQ0FBQ1AsTUFBSyxZQUFZLE1BQU0sR0FBRyxxQ0FBcUM7QUFFdkUsZUFBTyxDQUFDLE9BQU8sUUFBUSx1QkFBdUI7QUFBQSxNQUNoRDtBQUdBLGFBQU8sWUFBWSxRQUFRLFNBQVM7QUFBQSxJQUN0QztBQUVBLGFBQVMsVUFBVyxVQUFVLE1BQU07QUFNbEMsWUFBTSxDQUFDLE1BQU0sSUFBSSxJQUFJLEtBQUssT0FBTyxJQUFJO0FBRXJDLFVBQUkseUJBQXlCO0FBQzNCLHVCQUFlLFNBQVMsVUFBVSxJQUFJLFFBQVEsSUFBSSxDQUFDO0FBQUEsTUFDckQ7QUFHQSxXQUFLLFNBQVM7QUFHZCxhQUFPO0FBQUEsUUFDTCxRQUFRO0FBQUEsUUFDUixRQUFRLEtBQUs7QUFBQSxRQUNiLFFBQVEsS0FBSztBQUFBLE1BQ2Y7QUFBQSxJQUNGO0FBRUEsYUFBUyxlQUFnQixPQUFPO0FBQzlCLFVBQUksTUFBTSxTQUFTO0FBQ2pCLGNBQU0sSUFBSSxhQUFhLDhCQUE4QixZQUFZO0FBQUEsTUFDbkU7QUFBQSxJQUNGO0FBRUEsYUFBUyxpQkFBa0IsVUFBVTtBQUNuQyxZQUFNLFVBQVU7QUFBQSxRQUNkLE9BQVE7QUFNTixpQkFBTyxZQUFZLE1BQU0sQ0FBQyxVQUFVO0FBQ2xDLGdCQUFJLFdBQVcsYUFBYSxJQUFJO0FBRWhDLGdCQUFJLGFBQWEsTUFBTTtBQUNyQix5QkFBVztBQUFBLFlBQ2IsV0FBVyxVQUFVO0FBQ25CLHlCQUFXLG1CQUFtQixRQUFRO0FBQUEsWUFDeEM7QUFJQSxtQkFBTyxJQUFJRSxNQUFLLENBQUMsS0FBSyxHQUFHLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFBQSxVQUM3QyxHQUFHLFFBQVE7QUFBQSxRQUNiO0FBQUEsUUFFQSxjQUFlO0FBS2IsaUJBQU8sWUFBWSxNQUFNLENBQUMsVUFBVTtBQUNsQyxtQkFBTyxJQUFJLFdBQVcsS0FBSyxFQUFFO0FBQUEsVUFDL0IsR0FBRyxRQUFRO0FBQUEsUUFDYjtBQUFBLFFBRUEsT0FBUTtBQUdOLGlCQUFPLFlBQVksTUFBTSxpQkFBaUIsUUFBUTtBQUFBLFFBQ3BEO0FBQUEsUUFFQSxPQUFRO0FBR04saUJBQU8sWUFBWSxNQUFNLG9CQUFvQixRQUFRO0FBQUEsUUFDdkQ7QUFBQSxRQUVBLFdBQVk7QUFHVixpQkFBTyxZQUFZLE1BQU0sQ0FBQyxVQUFVO0FBRWxDLGtCQUFNLFdBQVcsYUFBYSxJQUFJO0FBSWxDLGdCQUFJLGFBQWEsTUFBTTtBQUNyQixzQkFBUSxTQUFTLFNBQVM7QUFBQSxnQkFDeEIsS0FBSyx1QkFBdUI7QUFFMUIsd0JBQU0sU0FBUyx3QkFBd0IsT0FBTyxRQUFRO0FBR3RELHNCQUFJLFdBQVcsV0FBVztBQUN4QiwwQkFBTSxJQUFJLFVBQVUsbUNBQW1DO0FBQUEsa0JBQ3pEO0FBSUEsd0JBQU0sS0FBSyxJQUFJRCxVQUFTO0FBQ3hCLHFCQUFHLE1BQU0sSUFBSTtBQUViLHlCQUFPO0FBQUEsZ0JBQ1Q7QUFBQSxnQkFDQSxLQUFLLHFDQUFxQztBQUV4Qyx3QkFBTSxVQUFVLElBQUksZ0JBQWdCLE1BQU0sU0FBUyxDQUFDO0FBS3BELHdCQUFNLEtBQUssSUFBSUEsVUFBUztBQUV4Qiw2QkFBVyxDQUFDLE1BQU1TLE1BQUssS0FBSyxTQUFTO0FBQ25DLHVCQUFHLE9BQU8sTUFBTUEsTUFBSztBQUFBLGtCQUN2QjtBQUVBLHlCQUFPO0FBQUEsZ0JBQ1Q7QUFBQSxjQUNGO0FBQUEsWUFDRjtBQUdBLGtCQUFNLElBQUk7QUFBQSxjQUNSO0FBQUEsWUFDRjtBQUFBLFVBQ0YsR0FBRyxRQUFRO0FBQUEsUUFDYjtBQUFBLFFBRUEsUUFBUztBQUlQLGlCQUFPLFlBQVksTUFBTSxDQUFDLFVBQVU7QUFDbEMsbUJBQU8sSUFBSSxXQUFXLEtBQUs7QUFBQSxVQUM3QixHQUFHLFFBQVE7QUFBQSxRQUNiO0FBQUEsTUFDRjtBQUVBLGFBQU87QUFBQSxJQUNUO0FBRUEsYUFBUyxVQUFXQyxZQUFXO0FBQzdCLGFBQU8sT0FBT0EsV0FBVSxXQUFXLGlCQUFpQkEsVUFBUyxDQUFDO0FBQUEsSUFDaEU7QUFRQSxtQkFBZSxZQUFhLFFBQVEsdUJBQXVCLFVBQVU7QUFDbkUsYUFBTyxXQUFXLFFBQVEsUUFBUTtBQUlsQyxVQUFJLGFBQWEsTUFBTSxHQUFHO0FBQ3hCLGNBQU0sSUFBSSxVQUFVLDhDQUE4QztBQUFBLE1BQ3BFO0FBRUEscUJBQWUsT0FBTyxNQUFNLENBQUM7QUFHN0IsWUFBTSxVQUFVLHNCQUFzQjtBQUd0QyxZQUFNLGFBQWEsQ0FBQyxVQUFVLFFBQVEsT0FBTyxLQUFLO0FBTWxELFlBQU0sZUFBZSxDQUFDQyxVQUFTO0FBQzdCLFlBQUk7QUFDRixrQkFBUSxRQUFRLHNCQUFzQkEsS0FBSSxDQUFDO0FBQUEsUUFDN0MsU0FBUyxHQUFHO0FBQ1YscUJBQVcsQ0FBQztBQUFBLFFBQ2Q7QUFBQSxNQUNGO0FBSUEsVUFBSSxPQUFPLE1BQU0sRUFBRSxRQUFRLE1BQU07QUFDL0IscUJBQWEsT0FBTyxZQUFZLENBQUMsQ0FBQztBQUNsQyxlQUFPLFFBQVE7QUFBQSxNQUNqQjtBQUlBLFlBQU0sY0FBYyxPQUFPLE1BQU0sRUFBRSxNQUFNLGNBQWMsVUFBVTtBQUdqRSxhQUFPLFFBQVE7QUFBQSxJQUNqQjtBQUdBLGFBQVMsYUFBYyxRQUFRO0FBQzdCLFlBQU0sT0FBTyxPQUFPLE1BQU0sRUFBRTtBQUs1QixhQUFPLFFBQVEsU0FBUyxLQUFLLE9BQU8sVUFBVVosTUFBSyxZQUFZLEtBQUssTUFBTTtBQUFBLElBQzVFO0FBTUEsYUFBUyxtQkFBb0IsT0FBTztBQUNsQyxhQUFPLEtBQUssTUFBTSxnQkFBZ0IsS0FBSyxDQUFDO0FBQUEsSUFDMUM7QUFNQSxhQUFTLGFBQWMsbUJBQW1CO0FBS3hDLFlBQU0sVUFBVSxrQkFBa0IsTUFBTSxFQUFFO0FBRzFDLFlBQU0sV0FBVyxnQkFBZ0IsT0FBTztBQUd4QyxVQUFJLGFBQWEsV0FBVztBQUMxQixlQUFPO0FBQUEsTUFDVDtBQUdBLGFBQU87QUFBQSxJQUNUO0FBRUEsSUFBQUQsUUFBTyxVQUFVO0FBQUEsTUFDZjtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLElBQ0Y7QUFBQTtBQUFBOzs7QUNqaEJBO0FBQUEsb0RBQUFjLFVBQUFDLFNBQUE7QUFBQTtBQUlBLFFBQU0sU0FBUyxRQUFRLGFBQWE7QUFDcEMsUUFBTUMsUUFBTztBQUNiLFFBQU0sRUFBRSxTQUFTLElBQUk7QUFDckIsUUFBTSxTQUFTO0FBQ2YsUUFBTTtBQUFBLE1BQ0o7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxJQUNGLElBQUk7QUFDSixRQUFNO0FBQUEsTUFDSjtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLElBQ0YsSUFBSTtBQUVKLFFBQU0sWUFBWTtBQUNsQixRQUFNLFlBQVksT0FBTyxNQUFNLENBQUM7QUFDaEMsUUFBTSxhQUFhLE9BQU8sT0FBTyxPQUFPO0FBQ3hDLFFBQU0sY0FBY0EsTUFBSztBQUN6QixRQUFNLHFCQUFxQkEsTUFBSztBQUVoQyxRQUFJO0FBRUosbUJBQWUsYUFBYztBQUMzQixZQUFNLGlCQUFpQixRQUFRLElBQUksaUJBQWlCLHdCQUFzQztBQUUxRixVQUFJO0FBQ0osVUFBSTtBQUNGLGNBQU0sTUFBTSxZQUFZLFFBQVEsMEJBQXdDO0FBQUEsTUFDMUUsU0FBUyxHQUFHO0FBT1YsY0FBTSxNQUFNLFlBQVksUUFBUSxrQkFBa0IscUJBQW1DO0FBQUEsTUFDdkY7QUFFQSxhQUFPLE1BQU0sWUFBWSxZQUFZLEtBQUs7QUFBQSxRQUN4QyxLQUFLO0FBQUE7QUFBQSxVQUdILGFBQWEsQ0FBQyxHQUFHLElBQUksUUFBUTtBQUUzQixtQkFBTztBQUFBLFVBQ1Q7QUFBQSxVQUNBLGdCQUFnQixDQUFDLEdBQUcsSUFBSSxRQUFRO0FBQzlCLG1CQUFPLGNBQWMsUUFBUSxDQUFDO0FBQzlCLGtCQUFNLFFBQVEsS0FBSyxtQkFBbUIsaUJBQWlCO0FBQ3ZELG1CQUFPLGNBQWMsU0FBUyxJQUFJLFdBQVcsaUJBQWlCLFFBQVEsT0FBTyxHQUFHLENBQUMsS0FBSztBQUFBLFVBQ3hGO0FBQUEsVUFDQSx1QkFBdUIsQ0FBQyxNQUFNO0FBQzVCLG1CQUFPLGNBQWMsUUFBUSxDQUFDO0FBQzlCLG1CQUFPLGNBQWMsZUFBZSxLQUFLO0FBQUEsVUFDM0M7QUFBQSxVQUNBLHNCQUFzQixDQUFDLEdBQUcsSUFBSSxRQUFRO0FBQ3BDLG1CQUFPLGNBQWMsUUFBUSxDQUFDO0FBQzlCLGtCQUFNLFFBQVEsS0FBSyxtQkFBbUIsaUJBQWlCO0FBQ3ZELG1CQUFPLGNBQWMsY0FBYyxJQUFJLFdBQVcsaUJBQWlCLFFBQVEsT0FBTyxHQUFHLENBQUMsS0FBSztBQUFBLFVBQzdGO0FBQUEsVUFDQSxzQkFBc0IsQ0FBQyxHQUFHLElBQUksUUFBUTtBQUNwQyxtQkFBTyxjQUFjLFFBQVEsQ0FBQztBQUM5QixrQkFBTSxRQUFRLEtBQUssbUJBQW1CLGlCQUFpQjtBQUN2RCxtQkFBTyxjQUFjLGNBQWMsSUFBSSxXQUFXLGlCQUFpQixRQUFRLE9BQU8sR0FBRyxDQUFDLEtBQUs7QUFBQSxVQUM3RjtBQUFBLFVBQ0EsMEJBQTBCLENBQUMsR0FBRyxZQUFZLFNBQVMsb0JBQW9CO0FBQ3JFLG1CQUFPLGNBQWMsUUFBUSxDQUFDO0FBQzlCLG1CQUFPLGNBQWMsa0JBQWtCLFlBQVksUUFBUSxPQUFPLEdBQUcsUUFBUSxlQUFlLENBQUMsS0FBSztBQUFBLFVBQ3BHO0FBQUEsVUFDQSxjQUFjLENBQUMsR0FBRyxJQUFJLFFBQVE7QUFDNUIsbUJBQU8sY0FBYyxRQUFRLENBQUM7QUFDOUIsa0JBQU0sUUFBUSxLQUFLLG1CQUFtQixpQkFBaUI7QUFDdkQsbUJBQU8sY0FBYyxPQUFPLElBQUksV0FBVyxpQkFBaUIsUUFBUSxPQUFPLEdBQUcsQ0FBQyxLQUFLO0FBQUEsVUFDdEY7QUFBQSxVQUNBLDBCQUEwQixDQUFDLE1BQU07QUFDL0IsbUJBQU8sY0FBYyxRQUFRLENBQUM7QUFDOUIsbUJBQU8sY0FBYyxrQkFBa0IsS0FBSztBQUFBLFVBQzlDO0FBQUE7QUFBQSxRQUdGO0FBQUEsTUFDRixDQUFDO0FBQUEsSUFDSDtBQUVBLFFBQUksaUJBQWlCO0FBQ3JCLFFBQUksZ0JBQWdCLFdBQVc7QUFDL0Isa0JBQWMsTUFBTTtBQUVwQixRQUFJLGdCQUFnQjtBQUNwQixRQUFJLG1CQUFtQjtBQUN2QixRQUFJLG9CQUFvQjtBQUN4QixRQUFJLG1CQUFtQjtBQUV2QixRQUFNLG1CQUFtQjtBQUN6QixRQUFNLGlCQUFpQjtBQUl2QixRQUFNLGtCQUFrQixJQUFJO0FBQzVCLFFBQU0sZUFBZSxJQUFJO0FBSXpCLFFBQU0scUJBQXFCLElBQUk7QUFFL0IsUUFBTUMsVUFBTixNQUFhO0FBQUEsTUFDWCxZQUFhLFFBQVEsUUFBUSxFQUFFLFNBQUFILFNBQVEsR0FBRztBQUN4QyxlQUFPLE9BQU8sU0FBUyxPQUFPLGVBQWUsQ0FBQyxLQUFLLE9BQU8sZUFBZSxJQUFJLENBQUM7QUFFOUUsYUFBSyxTQUFTQTtBQUNkLGFBQUssTUFBTSxLQUFLLE9BQU8sYUFBYSxVQUFVLEtBQUssUUFBUTtBQUMzRCxhQUFLLFNBQVM7QUFDZCxhQUFLLFNBQVM7QUFDZCxhQUFLLFVBQVU7QUFDZixhQUFLLGVBQWU7QUFDcEIsYUFBSyxjQUFjO0FBQ25CLGFBQUssYUFBYTtBQUNsQixhQUFLLGFBQWE7QUFDbEIsYUFBSyxVQUFVO0FBQ2YsYUFBSyxVQUFVLENBQUM7QUFDaEIsYUFBSyxjQUFjO0FBQ25CLGFBQUssaUJBQWlCLE9BQU8sZUFBZTtBQUM1QyxhQUFLLGtCQUFrQjtBQUN2QixhQUFLLFNBQVM7QUFDZCxhQUFLLFNBQVMsS0FBSyxPQUFPLEtBQUssSUFBSTtBQUVuQyxhQUFLLFlBQVk7QUFFakIsYUFBSyxZQUFZO0FBQ2pCLGFBQUssZ0JBQWdCO0FBQ3JCLGFBQUssYUFBYTtBQUNsQixhQUFLLGtCQUFrQixPQUFPLGdCQUFnQjtBQUFBLE1BQ2hEO0FBQUEsTUFFQSxXQUFZLE9BQU8sTUFBTTtBQUl2QixZQUNFLFVBQVUsS0FBSyxnQkFDZCxPQUFPLGlCQUFtQixLQUFLLGNBQWMsZ0JBQzlDO0FBR0EsY0FBSSxLQUFLLFNBQVM7QUFDaEIsbUJBQU8sYUFBYSxLQUFLLE9BQU87QUFDaEMsaUJBQUssVUFBVTtBQUFBLFVBQ2pCO0FBRUEsY0FBSSxPQUFPO0FBQ1QsZ0JBQUksT0FBTyxnQkFBZ0I7QUFDekIsbUJBQUssVUFBVSxPQUFPLGVBQWUsaUJBQWlCLE9BQU8sSUFBSSxRQUFRLElBQUksQ0FBQztBQUFBLFlBQ2hGLE9BQU87QUFDTCxtQkFBSyxVQUFVLFdBQVcsaUJBQWlCLE9BQU8sSUFBSSxRQUFRLElBQUksQ0FBQztBQUNuRSxtQkFBSyxRQUFRLE1BQU07QUFBQSxZQUNyQjtBQUFBLFVBQ0Y7QUFFQSxlQUFLLGVBQWU7QUFBQSxRQUN0QixXQUFXLEtBQUssU0FBUztBQUV2QixjQUFJLEtBQUssUUFBUSxTQUFTO0FBQ3hCLGlCQUFLLFFBQVEsUUFBUTtBQUFBLFVBQ3ZCO0FBQUEsUUFDRjtBQUVBLGFBQUssY0FBYztBQUFBLE1BQ3JCO0FBQUEsTUFFQSxTQUFVO0FBQ1IsWUFBSSxLQUFLLE9BQU8sYUFBYSxDQUFDLEtBQUssUUFBUTtBQUN6QztBQUFBLFFBQ0Y7QUFFQSxlQUFPLEtBQUssT0FBTyxJQUFJO0FBQ3ZCLGVBQU8saUJBQWlCLElBQUk7QUFFNUIsYUFBSyxPQUFPLGNBQWMsS0FBSyxHQUFHO0FBRWxDLGVBQU8sS0FBSyxnQkFBZ0IsWUFBWTtBQUN4QyxZQUFJLEtBQUssU0FBUztBQUVoQixjQUFJLEtBQUssUUFBUSxTQUFTO0FBQ3hCLGlCQUFLLFFBQVEsUUFBUTtBQUFBLFVBQ3ZCO0FBQUEsUUFDRjtBQUVBLGFBQUssU0FBUztBQUNkLGFBQUssUUFBUSxLQUFLLE9BQU8sS0FBSyxLQUFLLFNBQVM7QUFDNUMsYUFBSyxTQUFTO0FBQUEsTUFDaEI7QUFBQSxNQUVBLFdBQVk7QUFDVixlQUFPLENBQUMsS0FBSyxVQUFVLEtBQUssS0FBSztBQUMvQixnQkFBTSxRQUFRLEtBQUssT0FBTyxLQUFLO0FBQy9CLGNBQUksVUFBVSxNQUFNO0FBQ2xCO0FBQUEsVUFDRjtBQUNBLGVBQUssUUFBUSxLQUFLO0FBQUEsUUFDcEI7QUFBQSxNQUNGO0FBQUEsTUFFQSxRQUFTSSxPQUFNO0FBQ2IsZUFBTyxLQUFLLE9BQU8sSUFBSTtBQUN2QixlQUFPLGlCQUFpQixJQUFJO0FBQzVCLGVBQU8sQ0FBQyxLQUFLLE1BQU07QUFFbkIsY0FBTSxFQUFFLFFBQVEsT0FBTyxJQUFJO0FBRTNCLFlBQUlBLE1BQUssU0FBUyxtQkFBbUI7QUFDbkMsY0FBSSxrQkFBa0I7QUFDcEIsbUJBQU8sS0FBSyxnQkFBZ0I7QUFBQSxVQUM5QjtBQUNBLDhCQUFvQixLQUFLLEtBQUtBLE1BQUssU0FBUyxJQUFJLElBQUk7QUFDcEQsNkJBQW1CLE9BQU8sT0FBTyxpQkFBaUI7QUFBQSxRQUNwRDtBQUVBLFlBQUksV0FBVyxPQUFPLE9BQU8sUUFBUSxrQkFBa0IsaUJBQWlCLEVBQUUsSUFBSUEsS0FBSTtBQU1sRixZQUFJO0FBQ0YsY0FBSTtBQUVKLGNBQUk7QUFDRiwrQkFBbUJBO0FBQ25CLDRCQUFnQjtBQUNoQixrQkFBTSxPQUFPLGVBQWUsS0FBSyxLQUFLLGtCQUFrQkEsTUFBSyxNQUFNO0FBQUEsVUFFckUsU0FBU0MsTUFBSztBQUVaLGtCQUFNQTtBQUFBLFVBQ1IsVUFBRTtBQUNBLDRCQUFnQjtBQUNoQiwrQkFBbUI7QUFBQSxVQUNyQjtBQUVBLGdCQUFNLFNBQVMsT0FBTyxxQkFBcUIsS0FBSyxHQUFHLElBQUk7QUFFdkQsY0FBSSxRQUFRLFVBQVUsTUFBTSxnQkFBZ0I7QUFDMUMsaUJBQUssVUFBVUQsTUFBSyxNQUFNLE1BQU0sQ0FBQztBQUFBLFVBQ25DLFdBQVcsUUFBUSxVQUFVLE1BQU0sUUFBUTtBQUN6QyxpQkFBSyxTQUFTO0FBQ2QsbUJBQU8sUUFBUUEsTUFBSyxNQUFNLE1BQU0sQ0FBQztBQUFBLFVBQ25DLFdBQVcsUUFBUSxVQUFVLE1BQU0sSUFBSTtBQUNyQyxrQkFBTSxNQUFNLE9BQU8sd0JBQXdCLEtBQUssR0FBRztBQUNuRCxnQkFBSSxVQUFVO0FBRWQsZ0JBQUksS0FBSztBQUNQLG9CQUFNLE1BQU0sSUFBSSxXQUFXLE9BQU8sT0FBTyxRQUFRLEdBQUcsRUFBRSxRQUFRLENBQUM7QUFDL0Qsd0JBQ0Usb0RBQ0EsT0FBTyxLQUFLLE9BQU8sT0FBTyxRQUFRLEtBQUssR0FBRyxFQUFFLFNBQVMsSUFDckQ7QUFBQSxZQUNKO0FBQ0Esa0JBQU0sSUFBSSxnQkFBZ0IsU0FBUyxVQUFVLE1BQU0sR0FBRyxHQUFHQSxNQUFLLE1BQU0sTUFBTSxDQUFDO0FBQUEsVUFDN0U7QUFBQSxRQUNGLFNBQVNDLE1BQUs7QUFDWixVQUFBSCxNQUFLLFFBQVEsUUFBUUcsSUFBRztBQUFBLFFBQzFCO0FBQUEsTUFDRjtBQUFBLE1BRUEsVUFBVztBQUNULGVBQU8sS0FBSyxPQUFPLElBQUk7QUFDdkIsZUFBTyxpQkFBaUIsSUFBSTtBQUU1QixhQUFLLE9BQU8sWUFBWSxLQUFLLEdBQUc7QUFDaEMsYUFBSyxNQUFNO0FBRVgsYUFBSyxXQUFXLE9BQU8sYUFBYSxLQUFLLE9BQU87QUFDaEQsYUFBSyxVQUFVO0FBQ2YsYUFBSyxlQUFlO0FBQ3BCLGFBQUssY0FBYztBQUVuQixhQUFLLFNBQVM7QUFBQSxNQUNoQjtBQUFBLE1BRUEsU0FBVSxLQUFLO0FBQ2IsYUFBSyxhQUFhLElBQUksU0FBUztBQUFBLE1BQ2pDO0FBQUEsTUFFQSxpQkFBa0I7QUFDaEIsY0FBTSxFQUFFLFFBQVEsT0FBTyxJQUFJO0FBRzNCLFlBQUksT0FBTyxXQUFXO0FBQ3BCLGlCQUFPO0FBQUEsUUFDVDtBQUVBLGNBQU0sVUFBVSxPQUFPLE1BQU0sRUFBRSxPQUFPLFdBQVcsQ0FBQztBQUNsRCxZQUFJLENBQUMsU0FBUztBQUNaLGlCQUFPO0FBQUEsUUFDVDtBQUNBLGdCQUFRLGtCQUFrQjtBQUFBLE1BQzVCO0FBQUEsTUFFQSxjQUFlLEtBQUs7QUFDbEIsY0FBTSxNQUFNLEtBQUssUUFBUTtBQUV6QixhQUFLLE1BQU0sT0FBTyxHQUFHO0FBQ25CLGVBQUssUUFBUSxLQUFLLEdBQUc7QUFBQSxRQUN2QixPQUFPO0FBQ0wsZUFBSyxRQUFRLE1BQU0sQ0FBQyxJQUFJLE9BQU8sT0FBTyxDQUFDLEtBQUssUUFBUSxNQUFNLENBQUMsR0FBRyxHQUFHLENBQUM7QUFBQSxRQUNwRTtBQUVBLGFBQUssWUFBWSxJQUFJLE1BQU07QUFBQSxNQUM3QjtBQUFBLE1BRUEsY0FBZSxLQUFLO0FBQ2xCLFlBQUksTUFBTSxLQUFLLFFBQVE7QUFFdkIsYUFBSyxNQUFNLE9BQU8sR0FBRztBQUNuQixlQUFLLFFBQVEsS0FBSyxHQUFHO0FBQ3JCLGlCQUFPO0FBQUEsUUFDVCxPQUFPO0FBQ0wsZUFBSyxRQUFRLE1BQU0sQ0FBQyxJQUFJLE9BQU8sT0FBTyxDQUFDLEtBQUssUUFBUSxNQUFNLENBQUMsR0FBRyxHQUFHLENBQUM7QUFBQSxRQUNwRTtBQUVBLGNBQU0sTUFBTSxLQUFLLFFBQVEsTUFBTSxDQUFDO0FBQ2hDLFlBQUksSUFBSSxXQUFXLElBQUk7QUFDckIsZ0JBQU0sYUFBYUgsTUFBSyw2QkFBNkIsR0FBRztBQUN4RCxjQUFJLGVBQWUsY0FBYztBQUMvQixpQkFBSyxhQUFhLElBQUksU0FBUztBQUFBLFVBQ2pDLFdBQVcsZUFBZSxjQUFjO0FBQ3RDLGlCQUFLLGNBQWMsSUFBSSxTQUFTO0FBQUEsVUFDbEM7QUFBQSxRQUNGLFdBQVcsSUFBSSxXQUFXLE1BQU1BLE1BQUssNkJBQTZCLEdBQUcsTUFBTSxrQkFBa0I7QUFDM0YsZUFBSyxpQkFBaUIsSUFBSSxTQUFTO0FBQUEsUUFDckM7QUFFQSxhQUFLLFlBQVksSUFBSSxNQUFNO0FBQUEsTUFDN0I7QUFBQSxNQUVBLFlBQWEsS0FBSztBQUNoQixhQUFLLGVBQWU7QUFDcEIsWUFBSSxLQUFLLGVBQWUsS0FBSyxnQkFBZ0I7QUFDM0MsVUFBQUEsTUFBSyxRQUFRLEtBQUssUUFBUSxJQUFJLHFCQUFxQixDQUFDO0FBQUEsUUFDdEQ7QUFBQSxNQUNGO0FBQUEsTUFFQSxVQUFXLE1BQU07QUFDZixjQUFNLEVBQUUsU0FBUyxRQUFRLFFBQVEsU0FBUyxXQUFXLElBQUk7QUFFekQsZUFBTyxPQUFPO0FBQ2QsZUFBTyxPQUFPLE9BQU8sTUFBTSxNQUFNO0FBQ2pDLGVBQU8sQ0FBQyxPQUFPLFNBQVM7QUFDeEIsZUFBTyxDQUFDLEtBQUssTUFBTTtBQUNuQixnQkFBUSxRQUFRLFNBQVMsT0FBTyxDQUFDO0FBRWpDLGNBQU0sVUFBVSxPQUFPLE1BQU0sRUFBRSxPQUFPLFdBQVcsQ0FBQztBQUNsRCxlQUFPLE9BQU87QUFDZCxlQUFPLFFBQVEsV0FBVyxRQUFRLFdBQVcsU0FBUztBQUV0RCxhQUFLLGFBQWE7QUFDbEIsYUFBSyxhQUFhO0FBQ2xCLGFBQUssa0JBQWtCO0FBRXZCLGFBQUssVUFBVSxDQUFDO0FBQ2hCLGFBQUssY0FBYztBQUVuQixlQUFPLFFBQVEsSUFBSTtBQUVuQixlQUFPLE9BQU8sRUFBRSxRQUFRO0FBQ3hCLGVBQU8sT0FBTyxJQUFJO0FBRWxCLGVBQU8sT0FBTyxJQUFJO0FBQ2xCLGVBQU8sTUFBTSxJQUFJO0FBRWpCLDJCQUFtQixNQUFNO0FBRXpCLGVBQU8sT0FBTyxJQUFJO0FBQ2xCLGVBQU8sWUFBWSxJQUFJO0FBQ3ZCLGVBQU8sTUFBTSxFQUFFLE9BQU8sV0FBVyxHQUFHLElBQUk7QUFDeEMsZUFBTyxLQUFLLGNBQWMsT0FBTyxJQUFJLEdBQUcsQ0FBQyxNQUFNLEdBQUcsSUFBSSxtQkFBbUIsU0FBUyxDQUFDO0FBRW5GLFlBQUk7QUFDRixrQkFBUSxVQUFVLFlBQVksU0FBUyxNQUFNO0FBQUEsUUFDL0MsU0FBU0csTUFBSztBQUNaLFVBQUFILE1BQUssUUFBUSxRQUFRRyxJQUFHO0FBQUEsUUFDMUI7QUFFQSxlQUFPLE9BQU8sRUFBRTtBQUFBLE1BQ2xCO0FBQUEsTUFFQSxrQkFBbUIsWUFBWSxTQUFTLGlCQUFpQjtBQUN2RCxjQUFNLEVBQUUsUUFBUSxRQUFRLFNBQVMsV0FBVyxJQUFJO0FBR2hELFlBQUksT0FBTyxXQUFXO0FBQ3BCLGlCQUFPO0FBQUEsUUFDVDtBQUVBLGNBQU0sVUFBVSxPQUFPLE1BQU0sRUFBRSxPQUFPLFdBQVcsQ0FBQztBQUdsRCxZQUFJLENBQUMsU0FBUztBQUNaLGlCQUFPO0FBQUEsUUFDVDtBQUVBLGVBQU8sQ0FBQyxLQUFLLE9BQU87QUFDcEIsZUFBTyxLQUFLLGFBQWEsR0FBRztBQUU1QixZQUFJLGVBQWUsS0FBSztBQUN0QixVQUFBSCxNQUFLLFFBQVEsUUFBUSxJQUFJLFlBQVksZ0JBQWdCQSxNQUFLLGNBQWMsTUFBTSxDQUFDLENBQUM7QUFDaEYsaUJBQU87QUFBQSxRQUNUO0FBR0EsWUFBSSxXQUFXLENBQUMsUUFBUSxTQUFTO0FBQy9CLFVBQUFBLE1BQUssUUFBUSxRQUFRLElBQUksWUFBWSxlQUFlQSxNQUFLLGNBQWMsTUFBTSxDQUFDLENBQUM7QUFDL0UsaUJBQU87QUFBQSxRQUNUO0FBRUEsZUFBTyxLQUFLLGdCQUFnQixlQUFlO0FBRTNDLGFBQUssYUFBYTtBQUNsQixhQUFLLGtCQUNIO0FBQUEsUUFFQyxRQUFRLFdBQVcsVUFBVSxDQUFDLE9BQU8sTUFBTSxLQUFLLEtBQUssV0FBVyxZQUFZLE1BQU07QUFHckYsWUFBSSxLQUFLLGNBQWMsS0FBSztBQUMxQixnQkFBTSxjQUFjLFFBQVEsZUFBZSxPQUN2QyxRQUFRLGNBQ1IsT0FBTyxZQUFZO0FBQ3ZCLGVBQUssV0FBVyxhQUFhLFlBQVk7QUFBQSxRQUMzQyxXQUFXLEtBQUssU0FBUztBQUV2QixjQUFJLEtBQUssUUFBUSxTQUFTO0FBQ3hCLGlCQUFLLFFBQVEsUUFBUTtBQUFBLFVBQ3ZCO0FBQUEsUUFDRjtBQUVBLFlBQUksUUFBUSxXQUFXLFdBQVc7QUFDaEMsaUJBQU8sT0FBTyxRQUFRLE1BQU0sQ0FBQztBQUM3QixlQUFLLFVBQVU7QUFDZixpQkFBTztBQUFBLFFBQ1Q7QUFFQSxZQUFJLFNBQVM7QUFDWCxpQkFBTyxPQUFPLFFBQVEsTUFBTSxDQUFDO0FBQzdCLGVBQUssVUFBVTtBQUNmLGlCQUFPO0FBQUEsUUFDVDtBQUVBLGdCQUFRLEtBQUssUUFBUSxTQUFTLE9BQU8sQ0FBQztBQUN0QyxhQUFLLFVBQVUsQ0FBQztBQUNoQixhQUFLLGNBQWM7QUFFbkIsWUFBSSxLQUFLLG1CQUFtQixPQUFPLFdBQVcsR0FBRztBQUMvQyxnQkFBTSxtQkFBbUIsS0FBSyxZQUFZQSxNQUFLLHNCQUFzQixLQUFLLFNBQVMsSUFBSTtBQUV2RixjQUFJLG9CQUFvQixNQUFNO0FBQzVCLGtCQUFNLFVBQVUsS0FBSztBQUFBLGNBQ25CLG1CQUFtQixPQUFPLDBCQUEwQjtBQUFBLGNBQ3BELE9BQU8sb0JBQW9CO0FBQUEsWUFDN0I7QUFDQSxnQkFBSSxXQUFXLEdBQUc7QUFDaEIscUJBQU8sTUFBTSxJQUFJO0FBQUEsWUFDbkIsT0FBTztBQUNMLHFCQUFPLHNCQUFzQixJQUFJO0FBQUEsWUFDbkM7QUFBQSxVQUNGLE9BQU87QUFDTCxtQkFBTyxzQkFBc0IsSUFBSSxPQUFPLHdCQUF3QjtBQUFBLFVBQ2xFO0FBQUEsUUFDRixPQUFPO0FBRUwsaUJBQU8sTUFBTSxJQUFJO0FBQUEsUUFDbkI7QUFFQSxjQUFNLFFBQVEsUUFBUSxVQUFVLFlBQVksU0FBUyxLQUFLLFFBQVEsVUFBVSxNQUFNO0FBRWxGLFlBQUksUUFBUSxTQUFTO0FBQ25CLGlCQUFPO0FBQUEsUUFDVDtBQUVBLFlBQUksUUFBUSxXQUFXLFFBQVE7QUFDN0IsaUJBQU87QUFBQSxRQUNUO0FBRUEsWUFBSSxhQUFhLEtBQUs7QUFDcEIsaUJBQU87QUFBQSxRQUNUO0FBRUEsWUFBSSxPQUFPLFNBQVMsR0FBRztBQUNyQixpQkFBTyxTQUFTLElBQUk7QUFDcEIsaUJBQU8sT0FBTyxFQUFFO0FBQUEsUUFDbEI7QUFFQSxlQUFPLFFBQVEsVUFBVSxNQUFNLFNBQVM7QUFBQSxNQUMxQztBQUFBLE1BRUEsT0FBUSxLQUFLO0FBQ1gsY0FBTSxFQUFFLFFBQVEsUUFBUSxZQUFZLGdCQUFnQixJQUFJO0FBRXhELFlBQUksT0FBTyxXQUFXO0FBQ3BCLGlCQUFPO0FBQUEsUUFDVDtBQUVBLGNBQU0sVUFBVSxPQUFPLE1BQU0sRUFBRSxPQUFPLFdBQVcsQ0FBQztBQUNsRCxlQUFPLE9BQU87QUFFZCxlQUFPLEtBQUssZ0JBQWdCLFlBQVk7QUFDeEMsWUFBSSxLQUFLLFNBQVM7QUFFaEIsY0FBSSxLQUFLLFFBQVEsU0FBUztBQUN4QixpQkFBSyxRQUFRLFFBQVE7QUFBQSxVQUN2QjtBQUFBLFFBQ0Y7QUFFQSxlQUFPLGNBQWMsR0FBRztBQUV4QixZQUFJLGtCQUFrQixNQUFNLEtBQUssWUFBWSxJQUFJLFNBQVMsaUJBQWlCO0FBQ3pFLFVBQUFBLE1BQUssUUFBUSxRQUFRLElBQUksNkJBQTZCLENBQUM7QUFDdkQsaUJBQU87QUFBQSxRQUNUO0FBRUEsYUFBSyxhQUFhLElBQUk7QUFFdEIsWUFBSSxRQUFRLE9BQU8sR0FBRyxNQUFNLE9BQU87QUFDakMsaUJBQU8sVUFBVSxNQUFNO0FBQUEsUUFDekI7QUFBQSxNQUNGO0FBQUEsTUFFQSxvQkFBcUI7QUFDbkIsY0FBTSxFQUFFLFFBQVEsUUFBUSxZQUFZLFNBQVMsU0FBUyxlQUFlLFdBQVcsZ0JBQWdCLElBQUk7QUFFcEcsWUFBSSxPQUFPLGNBQWMsQ0FBQyxjQUFjLGtCQUFrQjtBQUN4RCxpQkFBTztBQUFBLFFBQ1Q7QUFFQSxZQUFJLFNBQVM7QUFDWDtBQUFBLFFBQ0Y7QUFFQSxlQUFPLGNBQWMsR0FBRztBQUN4QixnQkFBUSxLQUFLLFFBQVEsU0FBUyxPQUFPLENBQUM7QUFFdEMsY0FBTSxVQUFVLE9BQU8sTUFBTSxFQUFFLE9BQU8sV0FBVyxDQUFDO0FBQ2xELGVBQU8sT0FBTztBQUVkLGFBQUssYUFBYTtBQUNsQixhQUFLLGFBQWE7QUFDbEIsYUFBSyxZQUFZO0FBQ2pCLGFBQUssZ0JBQWdCO0FBQ3JCLGFBQUssWUFBWTtBQUNqQixhQUFLLGFBQWE7QUFFbEIsYUFBSyxVQUFVLENBQUM7QUFDaEIsYUFBSyxjQUFjO0FBRW5CLFlBQUksYUFBYSxLQUFLO0FBQ3BCO0FBQUEsUUFDRjtBQUdBLFlBQUksUUFBUSxXQUFXLFVBQVUsaUJBQWlCLGNBQWMsU0FBUyxlQUFlLEVBQUUsR0FBRztBQUMzRixVQUFBQSxNQUFLLFFBQVEsUUFBUSxJQUFJLG1DQUFtQyxDQUFDO0FBQzdELGlCQUFPO0FBQUEsUUFDVDtBQUVBLGdCQUFRLFdBQVcsT0FBTztBQUUxQixlQUFPLE1BQU0sRUFBRSxPQUFPLFdBQVcsR0FBRyxJQUFJO0FBRXhDLFlBQUksT0FBTyxRQUFRLEdBQUc7QUFDcEIsaUJBQU8sT0FBTyxRQUFRLE1BQU0sQ0FBQztBQUU3QixVQUFBQSxNQUFLLFFBQVEsUUFBUSxJQUFJLG1CQUFtQixPQUFPLENBQUM7QUFDcEQsaUJBQU8sVUFBVSxNQUFNO0FBQUEsUUFDekIsV0FBVyxDQUFDLGlCQUFpQjtBQUMzQixVQUFBQSxNQUFLLFFBQVEsUUFBUSxJQUFJLG1CQUFtQixPQUFPLENBQUM7QUFDcEQsaUJBQU8sVUFBVSxNQUFNO0FBQUEsUUFDekIsV0FBVyxPQUFPLE1BQU0sS0FBSyxPQUFPLFFBQVEsTUFBTSxHQUFHO0FBS25ELFVBQUFBLE1BQUssUUFBUSxRQUFRLElBQUksbUJBQW1CLE9BQU8sQ0FBQztBQUNwRCxpQkFBTyxVQUFVLE1BQU07QUFBQSxRQUN6QixXQUFXLE9BQU8sV0FBVyxLQUFLLFFBQVEsT0FBTyxXQUFXLE1BQU0sR0FBRztBQUluRSx1QkFBYSxNQUFNLE9BQU8sT0FBTyxFQUFFLENBQUM7QUFBQSxRQUN0QyxPQUFPO0FBQ0wsaUJBQU8sT0FBTyxFQUFFO0FBQUEsUUFDbEI7QUFBQSxNQUNGO0FBQUEsSUFDRjtBQUVBLGFBQVMsZ0JBQWlCLFFBQVE7QUFDaEMsWUFBTSxFQUFFLFFBQVEsYUFBYSxRQUFRLE9BQU8sSUFBSSxPQUFPLE1BQU07QUFHN0QsVUFBSSxnQkFBZ0IsaUJBQWlCO0FBQ25DLFlBQUksQ0FBQyxPQUFPLFFBQVEsS0FBSyxPQUFPLHFCQUFxQixPQUFPLFFBQVEsSUFBSSxHQUFHO0FBQ3pFLGlCQUFPLENBQUMsUUFBUSw0Q0FBNEM7QUFDNUQsVUFBQUEsTUFBSyxRQUFRLFFBQVEsSUFBSSxvQkFBb0IsQ0FBQztBQUFBLFFBQ2hEO0FBQUEsTUFDRixXQUFXLGdCQUFnQixjQUFjO0FBQ3ZDLFlBQUksQ0FBQyxRQUFRO0FBQ1gsVUFBQUEsTUFBSyxRQUFRLFFBQVEsSUFBSSxpQkFBaUIsQ0FBQztBQUFBLFFBQzdDO0FBQUEsTUFDRixXQUFXLGdCQUFnQixvQkFBb0I7QUFDN0MsZUFBTyxPQUFPLFFBQVEsTUFBTSxLQUFLLE9BQU8sc0JBQXNCLENBQUM7QUFDL0QsUUFBQUEsTUFBSyxRQUFRLFFBQVEsSUFBSSxtQkFBbUIscUJBQXFCLENBQUM7QUFBQSxNQUNwRTtBQUFBLElBQ0Y7QUFFQSxtQkFBZSxVQUFXLFFBQVEsUUFBUTtBQUN4QyxhQUFPLE9BQU8sSUFBSTtBQUVsQixVQUFJLENBQUMsZ0JBQWdCO0FBQ25CLHlCQUFpQixNQUFNO0FBQ3ZCLHdCQUFnQjtBQUFBLE1BQ2xCO0FBRUEsYUFBTyxNQUFNLElBQUk7QUFDakIsYUFBTyxRQUFRLElBQUk7QUFDbkIsYUFBTyxNQUFNLElBQUk7QUFDakIsYUFBTyxTQUFTLElBQUk7QUFDcEIsYUFBTyxPQUFPLElBQUksSUFBSUMsUUFBTyxRQUFRLFFBQVEsY0FBYztBQUUzRCxrQkFBWSxRQUFRLFNBQVMsU0FBVUUsTUFBSztBQUMxQyxlQUFPQSxLQUFJLFNBQVMsOEJBQThCO0FBRWxELGNBQU0sU0FBUyxLQUFLLE9BQU87QUFJM0IsWUFBSUEsS0FBSSxTQUFTLGdCQUFnQixPQUFPLGNBQWMsQ0FBQyxPQUFPLGlCQUFpQjtBQUU3RSxpQkFBTyxrQkFBa0I7QUFDekI7QUFBQSxRQUNGO0FBRUEsYUFBSyxNQUFNLElBQUlBO0FBRWYsYUFBSyxPQUFPLEVBQUUsUUFBUSxFQUFFQSxJQUFHO0FBQUEsTUFDN0IsQ0FBQztBQUNELGtCQUFZLFFBQVEsWUFBWSxXQUFZO0FBQzFDLGNBQU0sU0FBUyxLQUFLLE9BQU87QUFFM0IsWUFBSSxRQUFRO0FBQ1YsaUJBQU8sU0FBUztBQUFBLFFBQ2xCO0FBQUEsTUFDRixDQUFDO0FBQ0Qsa0JBQVksUUFBUSxPQUFPLFdBQVk7QUFDckMsY0FBTSxTQUFTLEtBQUssT0FBTztBQUUzQixZQUFJLE9BQU8sY0FBYyxDQUFDLE9BQU8saUJBQWlCO0FBRWhELGlCQUFPLGtCQUFrQjtBQUN6QjtBQUFBLFFBQ0Y7QUFFQSxRQUFBSCxNQUFLLFFBQVEsTUFBTSxJQUFJLFlBQVkscUJBQXFCQSxNQUFLLGNBQWMsSUFBSSxDQUFDLENBQUM7QUFBQSxNQUNuRixDQUFDO0FBQ0Qsa0JBQVksUUFBUSxTQUFTLFdBQVk7QUFDdkMsY0FBTUksVUFBUyxLQUFLLE9BQU87QUFDM0IsY0FBTSxTQUFTLEtBQUssT0FBTztBQUUzQixZQUFJLFFBQVE7QUFDVixjQUFJLENBQUMsS0FBSyxNQUFNLEtBQUssT0FBTyxjQUFjLENBQUMsT0FBTyxpQkFBaUI7QUFFakUsbUJBQU8sa0JBQWtCO0FBQUEsVUFDM0I7QUFFQSxlQUFLLE9BQU8sRUFBRSxRQUFRO0FBQ3RCLGVBQUssT0FBTyxJQUFJO0FBQUEsUUFDbEI7QUFFQSxjQUFNRCxPQUFNLEtBQUssTUFBTSxLQUFLLElBQUksWUFBWSxVQUFVSCxNQUFLLGNBQWMsSUFBSSxDQUFDO0FBRTlFLFFBQUFJLFFBQU8sT0FBTyxJQUFJO0FBQ2xCLFFBQUFBLFFBQU8sWUFBWSxJQUFJO0FBRXZCLFlBQUlBLFFBQU8sV0FBVztBQUNwQixpQkFBT0EsUUFBTyxRQUFRLE1BQU0sQ0FBQztBQUc3QixnQkFBTSxXQUFXQSxRQUFPLE1BQU0sRUFBRSxPQUFPQSxRQUFPLFdBQVcsQ0FBQztBQUMxRCxtQkFBUyxJQUFJLEdBQUcsSUFBSSxTQUFTLFFBQVEsS0FBSztBQUN4QyxrQkFBTSxVQUFVLFNBQVMsQ0FBQztBQUMxQixZQUFBSixNQUFLLGFBQWFJLFNBQVEsU0FBU0QsSUFBRztBQUFBLFVBQ3hDO0FBQUEsUUFDRixXQUFXQyxRQUFPLFFBQVEsSUFBSSxLQUFLRCxLQUFJLFNBQVMsZ0JBQWdCO0FBRTlELGdCQUFNLFVBQVVDLFFBQU8sTUFBTSxFQUFFQSxRQUFPLFdBQVcsQ0FBQztBQUNsRCxVQUFBQSxRQUFPLE1BQU0sRUFBRUEsUUFBTyxXQUFXLEdBQUcsSUFBSTtBQUV4QyxVQUFBSixNQUFLLGFBQWFJLFNBQVEsU0FBU0QsSUFBRztBQUFBLFFBQ3hDO0FBRUEsUUFBQUMsUUFBTyxXQUFXLElBQUlBLFFBQU8sV0FBVztBQUV4QyxlQUFPQSxRQUFPLFFBQVEsTUFBTSxDQUFDO0FBRTdCLFFBQUFBLFFBQU8sS0FBSyxjQUFjQSxRQUFPLElBQUksR0FBRyxDQUFDQSxPQUFNLEdBQUdELElBQUc7QUFFckQsUUFBQUMsUUFBTyxPQUFPLEVBQUU7QUFBQSxNQUNsQixDQUFDO0FBRUQsVUFBSSxTQUFTO0FBQ2IsYUFBTyxHQUFHLFNBQVMsTUFBTTtBQUN2QixpQkFBUztBQUFBLE1BQ1gsQ0FBQztBQUVELGFBQU87QUFBQSxRQUNMLFNBQVM7QUFBQSxRQUNULG1CQUFtQjtBQUFBLFFBQ25CLFNBQVUsTUFBTTtBQUNkLGlCQUFPLFFBQVEsUUFBUSxHQUFHLElBQUk7QUFBQSxRQUNoQztBQUFBLFFBQ0EsU0FBVTtBQUNSLG1CQUFTLE1BQU07QUFBQSxRQUNqQjtBQUFBLFFBQ0EsUUFBU0QsTUFBSyxVQUFVO0FBQ3RCLGNBQUksUUFBUTtBQUNWLDJCQUFlLFFBQVE7QUFBQSxVQUN6QixPQUFPO0FBQ0wsbUJBQU8sUUFBUUEsSUFBRyxFQUFFLEdBQUcsU0FBUyxRQUFRO0FBQUEsVUFDMUM7QUFBQSxRQUNGO0FBQUEsUUFDQSxJQUFJLFlBQWE7QUFDZixpQkFBTyxPQUFPO0FBQUEsUUFDaEI7QUFBQSxRQUNBLEtBQU0sU0FBUztBQUNiLGNBQUksT0FBTyxRQUFRLEtBQUssT0FBTyxNQUFNLEtBQUssT0FBTyxTQUFTLEdBQUc7QUFDM0QsbUJBQU87QUFBQSxVQUNUO0FBRUEsY0FBSSxTQUFTO0FBQ1gsZ0JBQUksT0FBTyxRQUFRLElBQUksS0FBSyxDQUFDLFFBQVEsWUFBWTtBQUkvQyxxQkFBTztBQUFBLFlBQ1Q7QUFFQSxnQkFBSSxPQUFPLFFBQVEsSUFBSSxNQUFNLFFBQVEsV0FBVyxRQUFRLFdBQVcsWUFBWTtBQUk3RSxxQkFBTztBQUFBLFlBQ1Q7QUFFQSxnQkFBSSxPQUFPLFFBQVEsSUFBSSxLQUFLSCxNQUFLLFdBQVcsUUFBUSxJQUFJLE1BQU0sTUFDM0RBLE1BQUssU0FBUyxRQUFRLElBQUksS0FBS0EsTUFBSyxnQkFBZ0IsUUFBUSxJQUFJLEtBQUtBLE1BQUssZUFBZSxRQUFRLElBQUksSUFBSTtBQVMxRyxxQkFBTztBQUFBLFlBQ1Q7QUFBQSxVQUNGO0FBRUEsaUJBQU87QUFBQSxRQUNUO0FBQUEsTUFDRjtBQUFBLElBQ0Y7QUFFQSxhQUFTLFNBQVUsUUFBUTtBQUN6QixZQUFNLFNBQVMsT0FBTyxPQUFPO0FBRTdCLFVBQUksVUFBVSxDQUFDLE9BQU8sV0FBVztBQUMvQixZQUFJLE9BQU8sS0FBSyxNQUFNLEdBQUc7QUFDdkIsY0FBSSxDQUFDLE9BQU8sTUFBTSxLQUFLLE9BQU8sT0FBTztBQUNuQyxtQkFBTyxNQUFNO0FBQ2IsbUJBQU8sTUFBTSxJQUFJO0FBQUEsVUFDbkI7QUFBQSxRQUNGLFdBQVcsT0FBTyxNQUFNLEtBQUssT0FBTyxLQUFLO0FBQ3ZDLGlCQUFPLElBQUk7QUFDWCxpQkFBTyxNQUFNLElBQUk7QUFBQSxRQUNuQjtBQUVBLFlBQUksT0FBTyxLQUFLLE1BQU0sR0FBRztBQUN2QixjQUFJLE9BQU8sT0FBTyxFQUFFLGdCQUFnQixvQkFBb0I7QUFDdEQsbUJBQU8sT0FBTyxFQUFFLFdBQVcsT0FBTyxzQkFBc0IsR0FBRyxrQkFBa0I7QUFBQSxVQUMvRTtBQUFBLFFBQ0YsV0FBVyxPQUFPLFFBQVEsSUFBSSxLQUFLLE9BQU8sT0FBTyxFQUFFLGFBQWEsS0FBSztBQUNuRSxjQUFJLE9BQU8sT0FBTyxFQUFFLGdCQUFnQixpQkFBaUI7QUFDbkQsa0JBQU0sVUFBVSxPQUFPLE1BQU0sRUFBRSxPQUFPLFdBQVcsQ0FBQztBQUNsRCxrQkFBTSxpQkFBaUIsUUFBUSxrQkFBa0IsT0FDN0MsUUFBUSxpQkFDUixPQUFPLGVBQWU7QUFDMUIsbUJBQU8sT0FBTyxFQUFFLFdBQVcsZ0JBQWdCLGVBQWU7QUFBQSxVQUM1RDtBQUFBLFFBQ0Y7QUFBQSxNQUNGO0FBQUEsSUFDRjtBQUdBLGFBQVMsd0JBQXlCLFFBQVE7QUFDeEMsYUFBTyxXQUFXLFNBQVMsV0FBVyxVQUFVLFdBQVcsYUFBYSxXQUFXLFdBQVcsV0FBVztBQUFBLElBQzNHO0FBRUEsYUFBUyxRQUFTLFFBQVEsU0FBUztBQUNqQyxZQUFNLEVBQUUsUUFBUSxNQUFNLE1BQU0sU0FBUyxVQUFVLE1BQU0sSUFBSTtBQUV6RCxVQUFJLEVBQUUsTUFBTSxTQUFTLGNBQWMsSUFBSTtBQVd2QyxZQUFNLGlCQUNKLFdBQVcsU0FDWCxXQUFXLFVBQ1gsV0FBVyxXQUNYLFdBQVcsV0FDWCxXQUFXLGNBQ1gsV0FBVztBQUdiLFVBQUlBLE1BQUssZUFBZSxJQUFJLEdBQUc7QUFDN0IsWUFBSSxDQUFDLGFBQWE7QUFDaEIsd0JBQWMsZUFBZ0M7QUFBQSxRQUNoRDtBQUVBLGNBQU0sQ0FBQyxZQUFZLFdBQVcsSUFBSSxZQUFZLElBQUk7QUFDbEQsWUFBSSxRQUFRLGVBQWUsTUFBTTtBQUMvQixrQkFBUSxLQUFLLGdCQUFnQixXQUFXO0FBQUEsUUFDMUM7QUFDQSxlQUFPLFdBQVc7QUFDbEIsd0JBQWdCLFdBQVc7QUFBQSxNQUM3QixXQUFXQSxNQUFLLFdBQVcsSUFBSSxLQUFLLFFBQVEsZUFBZSxRQUFRLEtBQUssTUFBTTtBQUM1RSxnQkFBUSxLQUFLLGdCQUFnQixLQUFLLElBQUk7QUFBQSxNQUN4QztBQUVBLFVBQUksUUFBUSxPQUFPLEtBQUssU0FBUyxZQUFZO0FBRTNDLGFBQUssS0FBSyxDQUFDO0FBQUEsTUFDYjtBQUVBLFlBQU0sYUFBYUEsTUFBSyxXQUFXLElBQUk7QUFFdkMsc0JBQWdCLGNBQWM7QUFFOUIsVUFBSSxrQkFBa0IsTUFBTTtBQUMxQix3QkFBZ0IsUUFBUTtBQUFBLE1BQzFCO0FBRUEsVUFBSSxrQkFBa0IsS0FBSyxDQUFDLGdCQUFnQjtBQU0xQyx3QkFBZ0I7QUFBQSxNQUNsQjtBQUlBLFVBQUksd0JBQXdCLE1BQU0sS0FBSyxnQkFBZ0IsS0FBSyxRQUFRLGtCQUFrQixRQUFRLFFBQVEsa0JBQWtCLGVBQWU7QUFDckksWUFBSSxPQUFPLG9CQUFvQixHQUFHO0FBQ2hDLFVBQUFBLE1BQUssYUFBYSxRQUFRLFNBQVMsSUFBSSxrQ0FBa0MsQ0FBQztBQUMxRSxpQkFBTztBQUFBLFFBQ1Q7QUFFQSxnQkFBUSxZQUFZLElBQUksa0NBQWtDLENBQUM7QUFBQSxNQUM3RDtBQUVBLFlBQU0sU0FBUyxPQUFPLE9BQU87QUFFN0IsWUFBTSxRQUFRLENBQUNHLFNBQVE7QUFDckIsWUFBSSxRQUFRLFdBQVcsUUFBUSxXQUFXO0FBQ3hDO0FBQUEsUUFDRjtBQUVBLFFBQUFILE1BQUssYUFBYSxRQUFRLFNBQVNHLFFBQU8sSUFBSSxvQkFBb0IsQ0FBQztBQUVuRSxRQUFBSCxNQUFLLFFBQVEsSUFBSTtBQUNqQixRQUFBQSxNQUFLLFFBQVEsUUFBUSxJQUFJLG1CQUFtQixTQUFTLENBQUM7QUFBQSxNQUN4RDtBQUVBLFVBQUk7QUFDRixnQkFBUSxVQUFVLEtBQUs7QUFBQSxNQUN6QixTQUFTRyxNQUFLO0FBQ1osUUFBQUgsTUFBSyxhQUFhLFFBQVEsU0FBU0csSUFBRztBQUFBLE1BQ3hDO0FBRUEsVUFBSSxRQUFRLFNBQVM7QUFDbkIsZUFBTztBQUFBLE1BQ1Q7QUFFQSxVQUFJLFdBQVcsUUFBUTtBQUtyQixlQUFPLE1BQU0sSUFBSTtBQUFBLE1BQ25CO0FBRUEsVUFBSSxXQUFXLFdBQVcsV0FBVztBQUluQyxlQUFPLE1BQU0sSUFBSTtBQUFBLE1BQ25CO0FBRUEsVUFBSSxTQUFTLE1BQU07QUFDakIsZUFBTyxNQUFNLElBQUk7QUFBQSxNQUNuQjtBQUVBLFVBQUksT0FBTyxZQUFZLEtBQUssT0FBTyxRQUFRLE9BQU8sT0FBTyxZQUFZLEdBQUc7QUFDdEUsZUFBTyxNQUFNLElBQUk7QUFBQSxNQUNuQjtBQUVBLFVBQUksVUFBVTtBQUNaLGVBQU8sU0FBUyxJQUFJO0FBQUEsTUFDdEI7QUFFQSxVQUFJLFNBQVMsR0FBRyxNQUFNLElBQUksSUFBSTtBQUFBO0FBRTlCLFVBQUksT0FBTyxTQUFTLFVBQVU7QUFDNUIsa0JBQVUsU0FBUyxJQUFJO0FBQUE7QUFBQSxNQUN6QixPQUFPO0FBQ0wsa0JBQVUsT0FBTyxXQUFXO0FBQUEsTUFDOUI7QUFFQSxVQUFJLFNBQVM7QUFDWCxrQkFBVTtBQUFBLFdBQW1DLE9BQU87QUFBQTtBQUFBLE1BQ3RELFdBQVcsT0FBTyxXQUFXLEtBQUssQ0FBQyxPQUFPLE1BQU0sR0FBRztBQUNqRCxrQkFBVTtBQUFBLE1BQ1osT0FBTztBQUNMLGtCQUFVO0FBQUEsTUFDWjtBQUVBLFVBQUksTUFBTSxRQUFRLE9BQU8sR0FBRztBQUMxQixpQkFBUyxJQUFJLEdBQUcsSUFBSSxRQUFRLFFBQVEsS0FBSyxHQUFHO0FBQzFDLGdCQUFNLE1BQU0sUUFBUSxJQUFJLENBQUM7QUFDekIsZ0JBQU1FLE9BQU0sUUFBUSxJQUFJLENBQUM7QUFFekIsY0FBSSxNQUFNLFFBQVFBLElBQUcsR0FBRztBQUN0QixxQkFBUyxJQUFJLEdBQUcsSUFBSUEsS0FBSSxRQUFRLEtBQUs7QUFDbkMsd0JBQVUsR0FBRyxHQUFHLEtBQUtBLEtBQUksQ0FBQyxDQUFDO0FBQUE7QUFBQSxZQUM3QjtBQUFBLFVBQ0YsT0FBTztBQUNMLHNCQUFVLEdBQUcsR0FBRyxLQUFLQSxJQUFHO0FBQUE7QUFBQSxVQUMxQjtBQUFBLFFBQ0Y7QUFBQSxNQUNGO0FBRUEsVUFBSSxTQUFTLFlBQVksZ0JBQWdCO0FBQ3ZDLGlCQUFTLFlBQVksUUFBUSxFQUFFLFNBQVMsU0FBUyxRQUFRLE9BQU8sQ0FBQztBQUFBLE1BQ25FO0FBR0EsVUFBSSxDQUFDLFFBQVEsZUFBZSxHQUFHO0FBQzdCLG9CQUFZLE9BQU8sTUFBTSxRQUFRLFNBQVMsUUFBUSxlQUFlLFFBQVEsY0FBYztBQUFBLE1BQ3pGLFdBQVdMLE1BQUssU0FBUyxJQUFJLEdBQUc7QUFDOUIsb0JBQVksT0FBTyxNQUFNLFFBQVEsU0FBUyxRQUFRLGVBQWUsUUFBUSxjQUFjO0FBQUEsTUFDekYsV0FBV0EsTUFBSyxXQUFXLElBQUksR0FBRztBQUNoQyxZQUFJLE9BQU8sS0FBSyxXQUFXLFlBQVk7QUFDckMsd0JBQWMsT0FBTyxLQUFLLE9BQU8sR0FBRyxRQUFRLFNBQVMsUUFBUSxlQUFlLFFBQVEsY0FBYztBQUFBLFFBQ3BHLE9BQU87QUFDTCxvQkFBVSxPQUFPLE1BQU0sUUFBUSxTQUFTLFFBQVEsZUFBZSxRQUFRLGNBQWM7QUFBQSxRQUN2RjtBQUFBLE1BQ0YsV0FBV0EsTUFBSyxTQUFTLElBQUksR0FBRztBQUM5QixvQkFBWSxPQUFPLE1BQU0sUUFBUSxTQUFTLFFBQVEsZUFBZSxRQUFRLGNBQWM7QUFBQSxNQUN6RixXQUFXQSxNQUFLLFdBQVcsSUFBSSxHQUFHO0FBQ2hDLHNCQUFjLE9BQU8sTUFBTSxRQUFRLFNBQVMsUUFBUSxlQUFlLFFBQVEsY0FBYztBQUFBLE1BQzNGLE9BQU87QUFDTCxlQUFPLEtBQUs7QUFBQSxNQUNkO0FBRUEsYUFBTztBQUFBLElBQ1Q7QUFFQSxhQUFTLFlBQWEsT0FBTyxNQUFNLFFBQVEsU0FBUyxRQUFRLGVBQWUsUUFBUSxnQkFBZ0I7QUFDakcsYUFBTyxrQkFBa0IsS0FBSyxPQUFPLFFBQVEsTUFBTSxHQUFHLGlDQUFpQztBQUV2RixVQUFJLFdBQVc7QUFFZixZQUFNLFNBQVMsSUFBSSxZQUFZLEVBQUUsT0FBTyxRQUFRLFNBQVMsZUFBZSxRQUFRLGdCQUFnQixPQUFPLENBQUM7QUFFeEcsWUFBTSxTQUFTLFNBQVUsT0FBTztBQUM5QixZQUFJLFVBQVU7QUFDWjtBQUFBLFFBQ0Y7QUFFQSxZQUFJO0FBQ0YsY0FBSSxDQUFDLE9BQU8sTUFBTSxLQUFLLEtBQUssS0FBSyxPQUFPO0FBQ3RDLGlCQUFLLE1BQU07QUFBQSxVQUNiO0FBQUEsUUFDRixTQUFTRyxNQUFLO0FBQ1osVUFBQUgsTUFBSyxRQUFRLE1BQU1HLElBQUc7QUFBQSxRQUN4QjtBQUFBLE1BQ0Y7QUFDQSxZQUFNLFVBQVUsV0FBWTtBQUMxQixZQUFJLFVBQVU7QUFDWjtBQUFBLFFBQ0Y7QUFFQSxZQUFJLEtBQUssUUFBUTtBQUNmLGVBQUssT0FBTztBQUFBLFFBQ2Q7QUFBQSxNQUNGO0FBQ0EsWUFBTSxVQUFVLFdBQVk7QUFHMUIsdUJBQWUsTUFBTTtBQUduQixlQUFLLGVBQWUsU0FBUyxVQUFVO0FBQUEsUUFDekMsQ0FBQztBQUVELFlBQUksQ0FBQyxVQUFVO0FBQ2IsZ0JBQU1BLE9BQU0sSUFBSSxvQkFBb0I7QUFDcEMseUJBQWUsTUFBTSxXQUFXQSxJQUFHLENBQUM7QUFBQSxRQUN0QztBQUFBLE1BQ0Y7QUFDQSxZQUFNLGFBQWEsU0FBVUEsTUFBSztBQUNoQyxZQUFJLFVBQVU7QUFDWjtBQUFBLFFBQ0Y7QUFFQSxtQkFBVztBQUVYLGVBQU8sT0FBTyxhQUFjLE9BQU8sUUFBUSxLQUFLLE9BQU8sUUFBUSxLQUFLLENBQUU7QUFFdEUsZUFDRyxJQUFJLFNBQVMsT0FBTyxFQUNwQixJQUFJLFNBQVMsVUFBVTtBQUUxQixhQUNHLGVBQWUsUUFBUSxNQUFNLEVBQzdCLGVBQWUsT0FBTyxVQUFVLEVBQ2hDLGVBQWUsU0FBUyxPQUFPO0FBRWxDLFlBQUksQ0FBQ0EsTUFBSztBQUNSLGNBQUk7QUFDRixtQkFBTyxJQUFJO0FBQUEsVUFDYixTQUFTLElBQUk7QUFDWCxZQUFBQSxPQUFNO0FBQUEsVUFDUjtBQUFBLFFBQ0Y7QUFFQSxlQUFPLFFBQVFBLElBQUc7QUFFbEIsWUFBSUEsU0FBUUEsS0FBSSxTQUFTLGtCQUFrQkEsS0FBSSxZQUFZLFVBQVU7QUFDbkUsVUFBQUgsTUFBSyxRQUFRLE1BQU1HLElBQUc7QUFBQSxRQUN4QixPQUFPO0FBQ0wsVUFBQUgsTUFBSyxRQUFRLElBQUk7QUFBQSxRQUNuQjtBQUFBLE1BQ0Y7QUFFQSxXQUNHLEdBQUcsUUFBUSxNQUFNLEVBQ2pCLEdBQUcsT0FBTyxVQUFVLEVBQ3BCLEdBQUcsU0FBUyxVQUFVLEVBQ3RCLEdBQUcsU0FBUyxPQUFPO0FBRXRCLFVBQUksS0FBSyxRQUFRO0FBQ2YsYUFBSyxPQUFPO0FBQUEsTUFDZDtBQUVBLGFBQ0csR0FBRyxTQUFTLE9BQU8sRUFDbkIsR0FBRyxTQUFTLFVBQVU7QUFFekIsVUFBSSxLQUFLLGdCQUFnQixLQUFLLFNBQVM7QUFDckMscUJBQWEsTUFBTSxXQUFXLEtBQUssT0FBTyxDQUFDO0FBQUEsTUFDN0MsV0FBVyxLQUFLLGNBQWMsS0FBSyxlQUFlO0FBQ2hELHFCQUFhLE1BQU0sV0FBVyxJQUFJLENBQUM7QUFBQSxNQUNyQztBQUVBLFVBQUksS0FBSyxnQkFBZ0IsS0FBSyxRQUFRO0FBQ3BDLHFCQUFhLE9BQU87QUFBQSxNQUN0QjtBQUFBLElBQ0Y7QUFFQSxhQUFTLFlBQWEsT0FBTyxNQUFNLFFBQVEsU0FBUyxRQUFRLGVBQWUsUUFBUSxnQkFBZ0I7QUFDakcsVUFBSTtBQUNGLFlBQUksQ0FBQyxNQUFNO0FBQ1QsY0FBSSxrQkFBa0IsR0FBRztBQUN2QixtQkFBTyxNQUFNLEdBQUcsTUFBTTtBQUFBO0FBQUEsR0FBNkIsUUFBUTtBQUFBLFVBQzdELE9BQU87QUFDTCxtQkFBTyxrQkFBa0IsTUFBTSxzQ0FBc0M7QUFDckUsbUJBQU8sTUFBTSxHQUFHLE1BQU07QUFBQSxHQUFRLFFBQVE7QUFBQSxVQUN4QztBQUFBLFFBQ0YsV0FBV0EsTUFBSyxTQUFTLElBQUksR0FBRztBQUM5QixpQkFBTyxrQkFBa0IsS0FBSyxZQUFZLHNDQUFzQztBQUVoRixpQkFBTyxLQUFLO0FBQ1osaUJBQU8sTUFBTSxHQUFHLE1BQU0sbUJBQW1CLGFBQWE7QUFBQTtBQUFBLEdBQVksUUFBUTtBQUMxRSxpQkFBTyxNQUFNLElBQUk7QUFDakIsaUJBQU8sT0FBTztBQUNkLGtCQUFRLFdBQVcsSUFBSTtBQUV2QixjQUFJLENBQUMsa0JBQWtCLFFBQVEsVUFBVSxPQUFPO0FBQzlDLG1CQUFPLE1BQU0sSUFBSTtBQUFBLFVBQ25CO0FBQUEsUUFDRjtBQUNBLGdCQUFRLGNBQWM7QUFFdEIsZUFBTyxPQUFPLEVBQUU7QUFBQSxNQUNsQixTQUFTRyxNQUFLO0FBQ1osY0FBTUEsSUFBRztBQUFBLE1BQ1g7QUFBQSxJQUNGO0FBRUEsbUJBQWUsVUFBVyxPQUFPLE1BQU0sUUFBUSxTQUFTLFFBQVEsZUFBZSxRQUFRLGdCQUFnQjtBQUNyRyxhQUFPLGtCQUFrQixLQUFLLE1BQU0sb0NBQW9DO0FBRXhFLFVBQUk7QUFDRixZQUFJLGlCQUFpQixRQUFRLGtCQUFrQixLQUFLLE1BQU07QUFDeEQsZ0JBQU0sSUFBSSxrQ0FBa0M7QUFBQSxRQUM5QztBQUVBLGNBQU0sU0FBUyxPQUFPLEtBQUssTUFBTSxLQUFLLFlBQVksQ0FBQztBQUVuRCxlQUFPLEtBQUs7QUFDWixlQUFPLE1BQU0sR0FBRyxNQUFNLG1CQUFtQixhQUFhO0FBQUE7QUFBQSxHQUFZLFFBQVE7QUFDMUUsZUFBTyxNQUFNLE1BQU07QUFDbkIsZUFBTyxPQUFPO0FBRWQsZ0JBQVEsV0FBVyxNQUFNO0FBQ3pCLGdCQUFRLGNBQWM7QUFFdEIsWUFBSSxDQUFDLGtCQUFrQixRQUFRLFVBQVUsT0FBTztBQUM5QyxpQkFBTyxNQUFNLElBQUk7QUFBQSxRQUNuQjtBQUVBLGVBQU8sT0FBTyxFQUFFO0FBQUEsTUFDbEIsU0FBU0EsTUFBSztBQUNaLGNBQU1BLElBQUc7QUFBQSxNQUNYO0FBQUEsSUFDRjtBQUVBLG1CQUFlLGNBQWUsT0FBTyxNQUFNLFFBQVEsU0FBUyxRQUFRLGVBQWUsUUFBUSxnQkFBZ0I7QUFDekcsYUFBTyxrQkFBa0IsS0FBSyxPQUFPLFFBQVEsTUFBTSxHQUFHLG1DQUFtQztBQUV6RixVQUFJLFdBQVc7QUFDZixlQUFTLFVBQVc7QUFDbEIsWUFBSSxVQUFVO0FBQ1osZ0JBQU0sS0FBSztBQUNYLHFCQUFXO0FBQ1gsYUFBRztBQUFBLFFBQ0w7QUFBQSxNQUNGO0FBRUEsWUFBTSxlQUFlLE1BQU0sSUFBSSxRQUFRLENBQUMsU0FBUyxXQUFXO0FBQzFELGVBQU8sYUFBYSxJQUFJO0FBRXhCLFlBQUksT0FBTyxNQUFNLEdBQUc7QUFDbEIsaUJBQU8sT0FBTyxNQUFNLENBQUM7QUFBQSxRQUN2QixPQUFPO0FBQ0wscUJBQVc7QUFBQSxRQUNiO0FBQUEsTUFDRixDQUFDO0FBRUQsYUFDRyxHQUFHLFNBQVMsT0FBTyxFQUNuQixHQUFHLFNBQVMsT0FBTztBQUV0QixZQUFNLFNBQVMsSUFBSSxZQUFZLEVBQUUsT0FBTyxRQUFRLFNBQVMsZUFBZSxRQUFRLGdCQUFnQixPQUFPLENBQUM7QUFDeEcsVUFBSTtBQUVGLHlCQUFpQixTQUFTLE1BQU07QUFDOUIsY0FBSSxPQUFPLE1BQU0sR0FBRztBQUNsQixrQkFBTSxPQUFPLE1BQU07QUFBQSxVQUNyQjtBQUVBLGNBQUksQ0FBQyxPQUFPLE1BQU0sS0FBSyxHQUFHO0FBQ3hCLGtCQUFNLGFBQWE7QUFBQSxVQUNyQjtBQUFBLFFBQ0Y7QUFFQSxlQUFPLElBQUk7QUFBQSxNQUNiLFNBQVNBLE1BQUs7QUFDWixlQUFPLFFBQVFBLElBQUc7QUFBQSxNQUNwQixVQUFFO0FBQ0EsZUFDRyxJQUFJLFNBQVMsT0FBTyxFQUNwQixJQUFJLFNBQVMsT0FBTztBQUFBLE1BQ3pCO0FBQUEsSUFDRjtBQUVBLFFBQU0sY0FBTixNQUFrQjtBQUFBLE1BQ2hCLFlBQWEsRUFBRSxPQUFPLFFBQVEsU0FBUyxlQUFlLFFBQVEsZ0JBQWdCLE9BQU8sR0FBRztBQUN0RixhQUFLLFNBQVM7QUFDZCxhQUFLLFVBQVU7QUFDZixhQUFLLGdCQUFnQjtBQUNyQixhQUFLLFNBQVM7QUFDZCxhQUFLLGVBQWU7QUFDcEIsYUFBSyxpQkFBaUI7QUFDdEIsYUFBSyxTQUFTO0FBQ2QsYUFBSyxRQUFRO0FBRWIsZUFBTyxRQUFRLElBQUk7QUFBQSxNQUNyQjtBQUFBLE1BRUEsTUFBTyxPQUFPO0FBQ1osY0FBTSxFQUFFLFFBQVEsU0FBUyxlQUFlLFFBQVEsY0FBYyxnQkFBZ0IsT0FBTyxJQUFJO0FBRXpGLFlBQUksT0FBTyxNQUFNLEdBQUc7QUFDbEIsZ0JBQU0sT0FBTyxNQUFNO0FBQUEsUUFDckI7QUFFQSxZQUFJLE9BQU8sV0FBVztBQUNwQixpQkFBTztBQUFBLFFBQ1Q7QUFFQSxjQUFNLE1BQU0sT0FBTyxXQUFXLEtBQUs7QUFDbkMsWUFBSSxDQUFDLEtBQUs7QUFDUixpQkFBTztBQUFBLFFBQ1Q7QUFHQSxZQUFJLGtCQUFrQixRQUFRLGVBQWUsTUFBTSxlQUFlO0FBQ2hFLGNBQUksT0FBTyxvQkFBb0IsR0FBRztBQUNoQyxrQkFBTSxJQUFJLGtDQUFrQztBQUFBLFVBQzlDO0FBRUEsa0JBQVEsWUFBWSxJQUFJLGtDQUFrQyxDQUFDO0FBQUEsUUFDN0Q7QUFFQSxlQUFPLEtBQUs7QUFFWixZQUFJLGlCQUFpQixHQUFHO0FBQ3RCLGNBQUksQ0FBQyxrQkFBa0IsUUFBUSxVQUFVLE9BQU87QUFDOUMsbUJBQU8sTUFBTSxJQUFJO0FBQUEsVUFDbkI7QUFFQSxjQUFJLGtCQUFrQixNQUFNO0FBQzFCLG1CQUFPLE1BQU0sR0FBRyxNQUFNO0FBQUEsR0FBa0MsUUFBUTtBQUFBLFVBQ2xFLE9BQU87QUFDTCxtQkFBTyxNQUFNLEdBQUcsTUFBTSxtQkFBbUIsYUFBYTtBQUFBO0FBQUEsR0FBWSxRQUFRO0FBQUEsVUFDNUU7QUFBQSxRQUNGO0FBRUEsWUFBSSxrQkFBa0IsTUFBTTtBQUMxQixpQkFBTyxNQUFNO0FBQUEsRUFBTyxJQUFJLFNBQVMsRUFBRSxDQUFDO0FBQUEsR0FBUSxRQUFRO0FBQUEsUUFDdEQ7QUFFQSxhQUFLLGdCQUFnQjtBQUVyQixjQUFNLE1BQU0sT0FBTyxNQUFNLEtBQUs7QUFFOUIsZUFBTyxPQUFPO0FBRWQsZ0JBQVEsV0FBVyxLQUFLO0FBRXhCLFlBQUksQ0FBQyxLQUFLO0FBQ1IsY0FBSSxPQUFPLE9BQU8sRUFBRSxXQUFXLE9BQU8sT0FBTyxFQUFFLGdCQUFnQixpQkFBaUI7QUFFOUUsZ0JBQUksT0FBTyxPQUFPLEVBQUUsUUFBUSxTQUFTO0FBQ25DLHFCQUFPLE9BQU8sRUFBRSxRQUFRLFFBQVE7QUFBQSxZQUNsQztBQUFBLFVBQ0Y7QUFBQSxRQUNGO0FBRUEsZUFBTztBQUFBLE1BQ1Q7QUFBQSxNQUVBLE1BQU87QUFDTCxjQUFNLEVBQUUsUUFBUSxlQUFlLFFBQVEsY0FBYyxnQkFBZ0IsUUFBUSxRQUFRLElBQUk7QUFDekYsZ0JBQVEsY0FBYztBQUV0QixlQUFPLFFBQVEsSUFBSTtBQUVuQixZQUFJLE9BQU8sTUFBTSxHQUFHO0FBQ2xCLGdCQUFNLE9BQU8sTUFBTTtBQUFBLFFBQ3JCO0FBRUEsWUFBSSxPQUFPLFdBQVc7QUFDcEI7QUFBQSxRQUNGO0FBRUEsWUFBSSxpQkFBaUIsR0FBRztBQUN0QixjQUFJLGdCQUFnQjtBQU1sQixtQkFBTyxNQUFNLEdBQUcsTUFBTTtBQUFBO0FBQUEsR0FBNkIsUUFBUTtBQUFBLFVBQzdELE9BQU87QUFDTCxtQkFBTyxNQUFNLEdBQUcsTUFBTTtBQUFBLEdBQVEsUUFBUTtBQUFBLFVBQ3hDO0FBQUEsUUFDRixXQUFXLGtCQUFrQixNQUFNO0FBQ2pDLGlCQUFPLE1BQU0saUJBQWlCLFFBQVE7QUFBQSxRQUN4QztBQUVBLFlBQUksa0JBQWtCLFFBQVEsaUJBQWlCLGVBQWU7QUFDNUQsY0FBSSxPQUFPLG9CQUFvQixHQUFHO0FBQ2hDLGtCQUFNLElBQUksa0NBQWtDO0FBQUEsVUFDOUMsT0FBTztBQUNMLG9CQUFRLFlBQVksSUFBSSxrQ0FBa0MsQ0FBQztBQUFBLFVBQzdEO0FBQUEsUUFDRjtBQUVBLFlBQUksT0FBTyxPQUFPLEVBQUUsV0FBVyxPQUFPLE9BQU8sRUFBRSxnQkFBZ0IsaUJBQWlCO0FBRTlFLGNBQUksT0FBTyxPQUFPLEVBQUUsUUFBUSxTQUFTO0FBQ25DLG1CQUFPLE9BQU8sRUFBRSxRQUFRLFFBQVE7QUFBQSxVQUNsQztBQUFBLFFBQ0Y7QUFFQSxlQUFPLE9BQU8sRUFBRTtBQUFBLE1BQ2xCO0FBQUEsTUFFQSxRQUFTQSxNQUFLO0FBQ1osY0FBTSxFQUFFLFFBQVEsUUFBUSxNQUFNLElBQUk7QUFFbEMsZUFBTyxRQUFRLElBQUk7QUFFbkIsWUFBSUEsTUFBSztBQUNQLGlCQUFPLE9BQU8sUUFBUSxLQUFLLEdBQUcsMkNBQTJDO0FBQ3pFLGdCQUFNQSxJQUFHO0FBQUEsUUFDWDtBQUFBLE1BQ0Y7QUFBQSxJQUNGO0FBRUEsSUFBQUosUUFBTyxVQUFVO0FBQUE7QUFBQTs7O0FDejFDakI7QUFBQSxvREFBQU8sVUFBQUMsU0FBQTtBQUFBO0FBRUEsUUFBTSxTQUFTLFFBQVEsYUFBYTtBQUNwQyxRQUFNLEVBQUUsU0FBUyxJQUFJLFFBQVEsYUFBYTtBQUMxQyxRQUFNQyxRQUFPO0FBQ2IsUUFBTTtBQUFBLE1BQ0o7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxJQUNGLElBQUk7QUFDSixRQUFNO0FBQUEsTUFDSjtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxJQUNGLElBQUk7QUFFSixRQUFNLGVBQWUsT0FBTyxjQUFjO0FBRTFDLFFBQUk7QUFHSixRQUFJLHVCQUF1QjtBQUczQixRQUFJO0FBQ0osUUFBSTtBQUNGLGNBQVEsUUFBUSxZQUFZO0FBQUEsSUFDOUIsUUFBUTtBQUVOLGNBQVEsRUFBRSxXQUFXLENBQUMsRUFBRTtBQUFBLElBQzFCO0FBRUEsUUFBTTtBQUFBLE1BQ0osV0FBVztBQUFBLFFBQ1Q7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxNQUNGO0FBQUEsSUFDRixJQUFJO0FBRUosYUFBUyxlQUFnQixTQUFTO0FBQ2hDLFlBQU0sU0FBUyxDQUFDO0FBRWhCLGlCQUFXLENBQUMsTUFBTSxLQUFLLEtBQUssT0FBTyxRQUFRLE9BQU8sR0FBRztBQUduRCxZQUFJLE1BQU0sUUFBUSxLQUFLLEdBQUc7QUFDeEIscUJBQVcsWUFBWSxPQUFPO0FBRzVCLG1CQUFPLEtBQUssT0FBTyxLQUFLLElBQUksR0FBRyxPQUFPLEtBQUssUUFBUSxDQUFDO0FBQUEsVUFDdEQ7QUFBQSxRQUNGLE9BQU87QUFDTCxpQkFBTyxLQUFLLE9BQU8sS0FBSyxJQUFJLEdBQUcsT0FBTyxLQUFLLEtBQUssQ0FBQztBQUFBLFFBQ25EO0FBQUEsTUFDRjtBQUVBLGFBQU87QUFBQSxJQUNUO0FBRUEsbUJBQWUsVUFBVyxRQUFRLFFBQVE7QUFDeEMsYUFBTyxPQUFPLElBQUk7QUFFbEIsVUFBSSxDQUFDLHNCQUFzQjtBQUN6QiwrQkFBdUI7QUFDdkIsZ0JBQVEsWUFBWSxrRUFBa0U7QUFBQSxVQUNwRixNQUFNO0FBQUEsUUFDUixDQUFDO0FBQUEsTUFDSDtBQUVBLFlBQU0sVUFBVSxNQUFNLFFBQVEsT0FBTyxJQUFJLEdBQUc7QUFBQSxRQUMxQyxrQkFBa0IsTUFBTTtBQUFBLFFBQ3hCLDBCQUEwQixPQUFPLHFCQUFxQjtBQUFBLE1BQ3hELENBQUM7QUFFRCxjQUFRLFlBQVksSUFBSTtBQUN4QixjQUFRLE9BQU8sSUFBSTtBQUNuQixjQUFRLE9BQU8sSUFBSTtBQUVuQixNQUFBQSxNQUFLLFlBQVksU0FBUyxTQUFTLG1CQUFtQjtBQUN0RCxNQUFBQSxNQUFLLFlBQVksU0FBUyxjQUFjLGlCQUFpQjtBQUN6RCxNQUFBQSxNQUFLLFlBQVksU0FBUyxPQUFPLGlCQUFpQjtBQUNsRCxNQUFBQSxNQUFLLFlBQVksU0FBUyxVQUFVLGFBQWE7QUFDakQsTUFBQUEsTUFBSyxZQUFZLFNBQVMsU0FBUyxXQUFZO0FBQzdDLGNBQU0sRUFBRSxDQUFDLE9BQU8sR0FBR0MsUUFBTyxJQUFJO0FBQzlCLGNBQU0sRUFBRSxDQUFDLE9BQU8sR0FBR0MsUUFBTyxJQUFJRDtBQUU5QixjQUFNRSxPQUFNLEtBQUssT0FBTyxFQUFFLE1BQU0sS0FBSyxLQUFLLE1BQU0sS0FBSyxJQUFJLFlBQVksVUFBVUgsTUFBSyxjQUFjRSxPQUFNLENBQUM7QUFFekcsUUFBQUQsUUFBTyxhQUFhLElBQUk7QUFFeEIsWUFBSUEsUUFBTyxXQUFXO0FBQ3BCLGlCQUFPQSxRQUFPLFFBQVEsTUFBTSxDQUFDO0FBRzdCLGdCQUFNLFdBQVdBLFFBQU8sTUFBTSxFQUFFLE9BQU9BLFFBQU8sV0FBVyxDQUFDO0FBQzFELG1CQUFTLElBQUksR0FBRyxJQUFJLFNBQVMsUUFBUSxLQUFLO0FBQ3hDLGtCQUFNLFVBQVUsU0FBUyxDQUFDO0FBQzFCLFlBQUFELE1BQUssYUFBYUMsU0FBUSxTQUFTRSxJQUFHO0FBQUEsVUFDeEM7QUFBQSxRQUNGO0FBQUEsTUFDRixDQUFDO0FBRUQsY0FBUSxNQUFNO0FBRWQsYUFBTyxhQUFhLElBQUk7QUFDeEIsYUFBTyxhQUFhLElBQUk7QUFFeEIsTUFBQUgsTUFBSyxZQUFZLFFBQVEsU0FBUyxTQUFVRyxNQUFLO0FBQy9DLGVBQU9BLEtBQUksU0FBUyw4QkFBOEI7QUFFbEQsYUFBSyxNQUFNLElBQUlBO0FBRWYsYUFBSyxPQUFPLEVBQUUsUUFBUSxFQUFFQSxJQUFHO0FBQUEsTUFDN0IsQ0FBQztBQUVELE1BQUFILE1BQUssWUFBWSxRQUFRLE9BQU8sV0FBWTtBQUMxQyxRQUFBQSxNQUFLLFFBQVEsTUFBTSxJQUFJLFlBQVkscUJBQXFCQSxNQUFLLGNBQWMsSUFBSSxDQUFDLENBQUM7QUFBQSxNQUNuRixDQUFDO0FBRUQsTUFBQUEsTUFBSyxZQUFZLFFBQVEsU0FBUyxXQUFZO0FBQzVDLGNBQU1HLE9BQU0sS0FBSyxNQUFNLEtBQUssSUFBSSxZQUFZLFVBQVVILE1BQUssY0FBYyxJQUFJLENBQUM7QUFFOUUsZUFBTyxPQUFPLElBQUk7QUFFbEIsWUFBSSxLQUFLLGFBQWEsS0FBSyxNQUFNO0FBQy9CLGVBQUssYUFBYSxFQUFFLFFBQVFHLElBQUc7QUFBQSxRQUNqQztBQUVBLGVBQU8sV0FBVyxJQUFJLE9BQU8sV0FBVztBQUV4QyxlQUFPLE9BQU8sUUFBUSxNQUFNLENBQUM7QUFFN0IsZUFBTyxLQUFLLGNBQWMsT0FBTyxJQUFJLEdBQUcsQ0FBQyxNQUFNLEdBQUdBLElBQUc7QUFFckQsZUFBTyxPQUFPLEVBQUU7QUFBQSxNQUNsQixDQUFDO0FBRUQsVUFBSSxTQUFTO0FBQ2IsYUFBTyxHQUFHLFNBQVMsTUFBTTtBQUN2QixpQkFBUztBQUFBLE1BQ1gsQ0FBQztBQUVELGFBQU87QUFBQSxRQUNMLFNBQVM7QUFBQSxRQUNULG1CQUFtQjtBQUFBLFFBQ25CLFNBQVUsTUFBTTtBQUNkLGlCQUFPLFFBQVEsUUFBUSxHQUFHLElBQUk7QUFBQSxRQUNoQztBQUFBLFFBQ0EsU0FBVTtBQUNSLG1CQUFTLE1BQU07QUFBQSxRQUNqQjtBQUFBLFFBQ0EsUUFBU0EsTUFBSyxVQUFVO0FBQ3RCLGNBQUksUUFBUTtBQUNWLDJCQUFlLFFBQVE7QUFBQSxVQUN6QixPQUFPO0FBRUwsbUJBQU8sUUFBUUEsSUFBRyxFQUFFLEdBQUcsU0FBUyxRQUFRO0FBQUEsVUFDMUM7QUFBQSxRQUNGO0FBQUEsUUFDQSxJQUFJLFlBQWE7QUFDZixpQkFBTyxPQUFPO0FBQUEsUUFDaEI7QUFBQSxRQUNBLE9BQVE7QUFDTixpQkFBTztBQUFBLFFBQ1Q7QUFBQSxNQUNGO0FBQUEsSUFDRjtBQUVBLGFBQVMsU0FBVSxRQUFRO0FBQ3pCLFlBQU0sU0FBUyxPQUFPLE9BQU87QUFFN0IsVUFBSSxRQUFRLGNBQWMsT0FBTztBQUMvQixZQUFJLE9BQU8sS0FBSyxNQUFNLEtBQUssT0FBTyxxQkFBcUIsTUFBTSxHQUFHO0FBQzlELGlCQUFPLE1BQU07QUFDYixpQkFBTyxhQUFhLEVBQUUsTUFBTTtBQUFBLFFBQzlCLE9BQU87QUFDTCxpQkFBTyxJQUFJO0FBQ1gsaUJBQU8sYUFBYSxFQUFFLElBQUk7QUFBQSxRQUM1QjtBQUFBLE1BQ0Y7QUFBQSxJQUNGO0FBRUEsYUFBUyxvQkFBcUJBLE1BQUs7QUFDakMsYUFBT0EsS0FBSSxTQUFTLDhCQUE4QjtBQUVsRCxXQUFLLE9BQU8sRUFBRSxNQUFNLElBQUlBO0FBQ3hCLFdBQUssT0FBTyxFQUFFLFFBQVEsRUFBRUEsSUFBRztBQUFBLElBQzdCO0FBRUEsYUFBUyxrQkFBbUIsTUFBTSxNQUFNLElBQUk7QUFDMUMsVUFBSSxPQUFPLEdBQUc7QUFDWixjQUFNQSxPQUFNLElBQUksbUJBQW1CLHdDQUF3QyxJQUFJLFVBQVUsSUFBSSxFQUFFO0FBQy9GLGFBQUssT0FBTyxFQUFFLE1BQU0sSUFBSUE7QUFDeEIsYUFBSyxPQUFPLEVBQUUsUUFBUSxFQUFFQSxJQUFHO0FBQUEsTUFDN0I7QUFBQSxJQUNGO0FBRUEsYUFBUyxvQkFBcUI7QUFDNUIsWUFBTUEsT0FBTSxJQUFJLFlBQVkscUJBQXFCSCxNQUFLLGNBQWMsS0FBSyxPQUFPLENBQUMsQ0FBQztBQUNsRixXQUFLLFFBQVFHLElBQUc7QUFDaEIsTUFBQUgsTUFBSyxRQUFRLEtBQUssT0FBTyxHQUFHRyxJQUFHO0FBQUEsSUFDakM7QUFPQSxhQUFTLGNBQWUsTUFBTTtBQUU1QixZQUFNQSxPQUFNLEtBQUssTUFBTSxLQUFLLElBQUksWUFBWSw2Q0FBNkMsSUFBSSxJQUFJSCxNQUFLLGNBQWMsSUFBSSxDQUFDO0FBQ3pILFlBQU0sU0FBUyxLQUFLLE9BQU87QUFFM0IsYUFBTyxPQUFPLElBQUk7QUFDbEIsYUFBTyxZQUFZLElBQUk7QUFFdkIsVUFBSSxLQUFLLGFBQWEsS0FBSyxNQUFNO0FBQy9CLGFBQUssYUFBYSxFQUFFLFFBQVFHLElBQUc7QUFDL0IsYUFBSyxhQUFhLElBQUk7QUFBQSxNQUN4QjtBQUVBLE1BQUFILE1BQUssUUFBUSxLQUFLLE9BQU8sR0FBR0csSUFBRztBQUcvQixVQUFJLE9BQU8sV0FBVyxJQUFJLE9BQU8sTUFBTSxFQUFFLFFBQVE7QUFDL0MsY0FBTSxVQUFVLE9BQU8sTUFBTSxFQUFFLE9BQU8sV0FBVyxDQUFDO0FBQ2xELGVBQU8sTUFBTSxFQUFFLE9BQU8sV0FBVyxHQUFHLElBQUk7QUFDeEMsUUFBQUgsTUFBSyxhQUFhLFFBQVEsU0FBU0csSUFBRztBQUN0QyxlQUFPLFdBQVcsSUFBSSxPQUFPLFdBQVc7QUFBQSxNQUMxQztBQUVBLGFBQU8sT0FBTyxRQUFRLE1BQU0sQ0FBQztBQUU3QixhQUFPLEtBQUssY0FBYyxPQUFPLElBQUksR0FBRyxDQUFDLE1BQU0sR0FBR0EsSUFBRztBQUVyRCxhQUFPLE9BQU8sRUFBRTtBQUFBLElBQ2xCO0FBR0EsYUFBUyx3QkFBeUIsUUFBUTtBQUN4QyxhQUFPLFdBQVcsU0FBUyxXQUFXLFVBQVUsV0FBVyxhQUFhLFdBQVcsV0FBVyxXQUFXO0FBQUEsSUFDM0c7QUFFQSxhQUFTLFFBQVMsUUFBUSxTQUFTO0FBQ2pDLFlBQU0sVUFBVSxPQUFPLGFBQWE7QUFDcEMsWUFBTSxFQUFFLFFBQVEsTUFBTSxNQUFNLFNBQVMsZ0JBQWdCLFFBQVEsU0FBUyxXQUFXLElBQUk7QUFDckYsVUFBSSxFQUFFLEtBQUssSUFBSTtBQUVmLFVBQUksU0FBUztBQUNYLFFBQUFILE1BQUssYUFBYSxRQUFRLFNBQVMsSUFBSSxNQUFNLDhCQUE4QixDQUFDO0FBQzVFLGVBQU87QUFBQSxNQUNUO0FBRUEsWUFBTSxVQUFVLENBQUM7QUFDakIsZUFBUyxJQUFJLEdBQUcsSUFBSSxXQUFXLFFBQVEsS0FBSyxHQUFHO0FBQzdDLGNBQU0sTUFBTSxXQUFXLElBQUksQ0FBQztBQUM1QixjQUFNSSxPQUFNLFdBQVcsSUFBSSxDQUFDO0FBRTVCLFlBQUksTUFBTSxRQUFRQSxJQUFHLEdBQUc7QUFDdEIsbUJBQVMsSUFBSSxHQUFHLElBQUlBLEtBQUksUUFBUSxLQUFLO0FBQ25DLGdCQUFJLFFBQVEsR0FBRyxHQUFHO0FBQ2hCLHNCQUFRLEdBQUcsS0FBSyxJQUFJQSxLQUFJLENBQUMsQ0FBQztBQUFBLFlBQzVCLE9BQU87QUFDTCxzQkFBUSxHQUFHLElBQUlBLEtBQUksQ0FBQztBQUFBLFlBQ3RCO0FBQUEsVUFDRjtBQUFBLFFBQ0YsT0FBTztBQUNMLGtCQUFRLEdBQUcsSUFBSUE7QUFBQSxRQUNqQjtBQUFBLE1BQ0Y7QUFHQSxVQUFJQztBQUVKLFlBQU0sRUFBRSxVQUFVLEtBQUssSUFBSSxPQUFPLElBQUk7QUFFdEMsY0FBUSxzQkFBc0IsSUFBSSxRQUFRLEdBQUcsUUFBUSxHQUFHLE9BQU8sSUFBSSxJQUFJLEtBQUssRUFBRTtBQUM5RSxjQUFRLG1CQUFtQixJQUFJO0FBRS9CLFlBQU0sUUFBUSxDQUFDRixTQUFRO0FBQ3JCLFlBQUksUUFBUSxXQUFXLFFBQVEsV0FBVztBQUN4QztBQUFBLFFBQ0Y7QUFFQSxRQUFBQSxPQUFNQSxRQUFPLElBQUksb0JBQW9CO0FBRXJDLFFBQUFILE1BQUssYUFBYSxRQUFRLFNBQVNHLElBQUc7QUFFdEMsWUFBSUUsV0FBVSxNQUFNO0FBQ2xCLFVBQUFMLE1BQUssUUFBUUssU0FBUUYsSUFBRztBQUFBLFFBQzFCO0FBSUEsUUFBQUgsTUFBSyxRQUFRLE1BQU1HLElBQUc7QUFDdEIsZUFBTyxNQUFNLEVBQUUsT0FBTyxXQUFXLEdBQUcsSUFBSTtBQUN4QyxlQUFPLE9BQU8sRUFBRTtBQUFBLE1BQ2xCO0FBRUEsVUFBSTtBQUdGLGdCQUFRLFVBQVUsS0FBSztBQUFBLE1BQ3pCLFNBQVNBLE1BQUs7QUFDWixRQUFBSCxNQUFLLGFBQWEsUUFBUSxTQUFTRyxJQUFHO0FBQUEsTUFDeEM7QUFFQSxVQUFJLFFBQVEsU0FBUztBQUNuQixlQUFPO0FBQUEsTUFDVDtBQUVBLFVBQUksV0FBVyxXQUFXO0FBQ3hCLGdCQUFRLElBQUk7QUFLWixRQUFBRSxVQUFTLFFBQVEsUUFBUSxTQUFTLEVBQUUsV0FBVyxPQUFPLE9BQU8sQ0FBQztBQUU5RCxZQUFJQSxRQUFPLE1BQU0sQ0FBQ0EsUUFBTyxTQUFTO0FBQ2hDLGtCQUFRLFVBQVUsTUFBTSxNQUFNQSxPQUFNO0FBQ3BDLFlBQUUsUUFBUSxZQUFZO0FBQ3RCLGlCQUFPLE1BQU0sRUFBRSxPQUFPLFdBQVcsR0FBRyxJQUFJO0FBQUEsUUFDMUMsT0FBTztBQUNMLFVBQUFBLFFBQU8sS0FBSyxTQUFTLE1BQU07QUFDekIsb0JBQVEsVUFBVSxNQUFNLE1BQU1BLE9BQU07QUFDcEMsY0FBRSxRQUFRLFlBQVk7QUFDdEIsbUJBQU8sTUFBTSxFQUFFLE9BQU8sV0FBVyxHQUFHLElBQUk7QUFBQSxVQUMxQyxDQUFDO0FBQUEsUUFDSDtBQUVBLFFBQUFBLFFBQU8sS0FBSyxTQUFTLE1BQU07QUFDekIsa0JBQVEsWUFBWSxLQUFLO0FBQ3pCLGNBQUksUUFBUSxZQUFZLE1BQU0sRUFBRyxTQUFRLE1BQU07QUFBQSxRQUNqRCxDQUFDO0FBRUQsZUFBTztBQUFBLE1BQ1Q7QUFLQSxjQUFRLGlCQUFpQixJQUFJO0FBQzdCLGNBQVEsbUJBQW1CLElBQUk7QUFXL0IsWUFBTSxpQkFDSixXQUFXLFNBQ1gsV0FBVyxVQUNYLFdBQVc7QUFHYixVQUFJLFFBQVEsT0FBTyxLQUFLLFNBQVMsWUFBWTtBQUUzQyxhQUFLLEtBQUssQ0FBQztBQUFBLE1BQ2I7QUFFQSxVQUFJLGdCQUFnQkwsTUFBSyxXQUFXLElBQUk7QUFFeEMsVUFBSUEsTUFBSyxlQUFlLElBQUksR0FBRztBQUM3Qix3QkFBZ0IsZUFBZ0M7QUFFaEQsY0FBTSxDQUFDLFlBQVksV0FBVyxJQUFJLFlBQVksSUFBSTtBQUNsRCxnQkFBUSxjQUFjLElBQUk7QUFFMUIsZUFBTyxXQUFXO0FBQ2xCLHdCQUFnQixXQUFXO0FBQUEsTUFDN0I7QUFFQSxVQUFJLGlCQUFpQixNQUFNO0FBQ3pCLHdCQUFnQixRQUFRO0FBQUEsTUFDMUI7QUFFQSxVQUFJLGtCQUFrQixLQUFLLENBQUMsZ0JBQWdCO0FBTTFDLHdCQUFnQjtBQUFBLE1BQ2xCO0FBSUEsVUFBSSx3QkFBd0IsTUFBTSxLQUFLLGdCQUFnQixLQUFLLFFBQVEsaUJBQWlCLFFBQVEsUUFBUSxrQkFBa0IsZUFBZTtBQUNwSSxZQUFJLE9BQU8sb0JBQW9CLEdBQUc7QUFDaEMsVUFBQUEsTUFBSyxhQUFhLFFBQVEsU0FBUyxJQUFJLGtDQUFrQyxDQUFDO0FBQzFFLGlCQUFPO0FBQUEsUUFDVDtBQUVBLGdCQUFRLFlBQVksSUFBSSxrQ0FBa0MsQ0FBQztBQUFBLE1BQzdEO0FBRUEsVUFBSSxpQkFBaUIsTUFBTTtBQUN6QixlQUFPLE1BQU0sc0NBQXNDO0FBQ25ELGdCQUFRLDJCQUEyQixJQUFJLEdBQUcsYUFBYTtBQUFBLE1BQ3pEO0FBRUEsY0FBUSxJQUFJO0FBRVosWUFBTSxrQkFBa0IsV0FBVyxTQUFTLFdBQVcsVUFBVSxTQUFTO0FBQzFFLFVBQUksZ0JBQWdCO0FBQ2xCLGdCQUFRLG1CQUFtQixJQUFJO0FBQy9CLFFBQUFLLFVBQVMsUUFBUSxRQUFRLFNBQVMsRUFBRSxXQUFXLGlCQUFpQixPQUFPLENBQUM7QUFFeEUsUUFBQUEsUUFBTyxLQUFLLFlBQVksV0FBVztBQUFBLE1BQ3JDLE9BQU87QUFDTCxRQUFBQSxVQUFTLFFBQVEsUUFBUSxTQUFTO0FBQUEsVUFDaEMsV0FBVztBQUFBLFVBQ1g7QUFBQSxRQUNGLENBQUM7QUFDRCxvQkFBWTtBQUFBLE1BQ2Q7QUFHQSxRQUFFLFFBQVEsWUFBWTtBQUV0QixNQUFBQSxRQUFPLEtBQUssWUFBWSxDQUFBQyxhQUFXO0FBQ2pDLGNBQU0sRUFBRSxDQUFDLG1CQUFtQixHQUFHLFlBQVksR0FBRyxZQUFZLElBQUlBO0FBQzlELGdCQUFRLGtCQUFrQjtBQU8xQixZQUFJLFFBQVEsU0FBUztBQUNuQixnQkFBTUgsT0FBTSxJQUFJLG9CQUFvQjtBQUNwQyxVQUFBSCxNQUFLLGFBQWEsUUFBUSxTQUFTRyxJQUFHO0FBQ3RDLFVBQUFILE1BQUssUUFBUUssU0FBUUYsSUFBRztBQUN4QjtBQUFBLFFBQ0Y7QUFFQSxZQUFJLFFBQVEsVUFBVSxPQUFPLFVBQVUsR0FBRyxlQUFlLFdBQVcsR0FBR0UsUUFBTyxPQUFPLEtBQUtBLE9BQU0sR0FBRyxFQUFFLE1BQU0sT0FBTztBQUNoSCxVQUFBQSxRQUFPLE1BQU07QUFBQSxRQUNmO0FBRUEsUUFBQUEsUUFBTyxHQUFHLFFBQVEsQ0FBQyxVQUFVO0FBQzNCLGNBQUksUUFBUSxPQUFPLEtBQUssTUFBTSxPQUFPO0FBQ25DLFlBQUFBLFFBQU8sTUFBTTtBQUFBLFVBQ2Y7QUFBQSxRQUNGLENBQUM7QUFBQSxNQUNILENBQUM7QUFFRCxNQUFBQSxRQUFPLEtBQUssT0FBTyxNQUFNO0FBSXZCLFlBQUlBLFFBQU8sT0FBTyxTQUFTLFFBQVFBLFFBQU8sTUFBTSxRQUFRLEdBQUc7QUFDekQsa0JBQVEsV0FBVyxDQUFDLENBQUM7QUFBQSxRQUN2QjtBQUVBLFlBQUksUUFBUSxZQUFZLE1BQU0sR0FBRztBQUsvQixrQkFBUSxNQUFNO0FBQUEsUUFDaEI7QUFFQSxjQUFNLElBQUksbUJBQW1CLHFDQUFxQyxDQUFDO0FBQ25FLGVBQU8sTUFBTSxFQUFFLE9BQU8sV0FBVyxHQUFHLElBQUk7QUFDeEMsZUFBTyxXQUFXLElBQUksT0FBTyxXQUFXO0FBQ3hDLGVBQU8sT0FBTyxFQUFFO0FBQUEsTUFDbEIsQ0FBQztBQUVELE1BQUFBLFFBQU8sS0FBSyxTQUFTLE1BQU07QUFDekIsZ0JBQVEsWUFBWSxLQUFLO0FBQ3pCLFlBQUksUUFBUSxZQUFZLE1BQU0sR0FBRztBQUMvQixrQkFBUSxNQUFNO0FBQUEsUUFDaEI7QUFBQSxNQUNGLENBQUM7QUFFRCxNQUFBQSxRQUFPLEtBQUssU0FBUyxTQUFVRixNQUFLO0FBQ2xDLGNBQU1BLElBQUc7QUFBQSxNQUNYLENBQUM7QUFFRCxNQUFBRSxRQUFPLEtBQUssY0FBYyxDQUFDLE1BQU0sU0FBUztBQUN4QyxjQUFNLElBQUksbUJBQW1CLHdDQUF3QyxJQUFJLFVBQVUsSUFBSSxFQUFFLENBQUM7QUFBQSxNQUM1RixDQUFDO0FBa0JELGFBQU87QUFFUCxlQUFTLGNBQWU7QUFFdEIsWUFBSSxDQUFDLFFBQVEsa0JBQWtCLEdBQUc7QUFDaEM7QUFBQSxZQUNFO0FBQUEsWUFDQUE7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBLE9BQU8sT0FBTztBQUFBLFlBQ2Q7QUFBQSxZQUNBO0FBQUEsVUFDRjtBQUFBLFFBQ0YsV0FBV0wsTUFBSyxTQUFTLElBQUksR0FBRztBQUM5QjtBQUFBLFlBQ0U7QUFBQSxZQUNBSztBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0EsT0FBTyxPQUFPO0FBQUEsWUFDZDtBQUFBLFlBQ0E7QUFBQSxVQUNGO0FBQUEsUUFDRixXQUFXTCxNQUFLLFdBQVcsSUFBSSxHQUFHO0FBQ2hDLGNBQUksT0FBTyxLQUFLLFdBQVcsWUFBWTtBQUNyQztBQUFBLGNBQ0U7QUFBQSxjQUNBSztBQUFBLGNBQ0EsS0FBSyxPQUFPO0FBQUEsY0FDWjtBQUFBLGNBQ0E7QUFBQSxjQUNBLE9BQU8sT0FBTztBQUFBLGNBQ2Q7QUFBQSxjQUNBO0FBQUEsWUFDRjtBQUFBLFVBQ0YsT0FBTztBQUNMO0FBQUEsY0FDRTtBQUFBLGNBQ0FBO0FBQUEsY0FDQTtBQUFBLGNBQ0E7QUFBQSxjQUNBO0FBQUEsY0FDQSxPQUFPLE9BQU87QUFBQSxjQUNkO0FBQUEsY0FDQTtBQUFBLFlBQ0Y7QUFBQSxVQUNGO0FBQUEsUUFDRixXQUFXTCxNQUFLLFNBQVMsSUFBSSxHQUFHO0FBQzlCO0FBQUEsWUFDRTtBQUFBLFlBQ0EsT0FBTyxPQUFPO0FBQUEsWUFDZDtBQUFBLFlBQ0FLO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFVBQ0Y7QUFBQSxRQUNGLFdBQVdMLE1BQUssV0FBVyxJQUFJLEdBQUc7QUFDaEM7QUFBQSxZQUNFO0FBQUEsWUFDQUs7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBLE9BQU8sT0FBTztBQUFBLFlBQ2Q7QUFBQSxZQUNBO0FBQUEsVUFDRjtBQUFBLFFBQ0YsT0FBTztBQUNMLGlCQUFPLEtBQUs7QUFBQSxRQUNkO0FBQUEsTUFDRjtBQUFBLElBQ0Y7QUFFQSxhQUFTLFlBQWEsT0FBTyxVQUFVLE1BQU0sUUFBUSxTQUFTLFFBQVEsZUFBZSxnQkFBZ0I7QUFDbkcsVUFBSTtBQUNGLFlBQUksUUFBUSxRQUFRTCxNQUFLLFNBQVMsSUFBSSxHQUFHO0FBQ3ZDLGlCQUFPLGtCQUFrQixLQUFLLFlBQVksc0NBQXNDO0FBQ2hGLG1CQUFTLEtBQUs7QUFDZCxtQkFBUyxNQUFNLElBQUk7QUFDbkIsbUJBQVMsT0FBTztBQUNoQixtQkFBUyxJQUFJO0FBRWIsa0JBQVEsV0FBVyxJQUFJO0FBQUEsUUFDekI7QUFFQSxZQUFJLENBQUMsZ0JBQWdCO0FBQ25CLGlCQUFPLE1BQU0sSUFBSTtBQUFBLFFBQ25CO0FBRUEsZ0JBQVEsY0FBYztBQUN0QixlQUFPLE9BQU8sRUFBRTtBQUFBLE1BQ2xCLFNBQVMsT0FBTztBQUNkLGNBQU0sS0FBSztBQUFBLE1BQ2I7QUFBQSxJQUNGO0FBRUEsYUFBUyxZQUFhLE9BQU8sUUFBUSxnQkFBZ0IsVUFBVSxNQUFNLFFBQVEsU0FBUyxlQUFlO0FBQ25HLGFBQU8sa0JBQWtCLEtBQUssT0FBTyxRQUFRLE1BQU0sR0FBRyxpQ0FBaUM7QUFHdkYsWUFBTSxPQUFPO0FBQUEsUUFDWDtBQUFBLFFBQ0E7QUFBQSxRQUNBLENBQUNHLFNBQVE7QUFDUCxjQUFJQSxNQUFLO0FBQ1AsWUFBQUgsTUFBSyxRQUFRLE1BQU1HLElBQUc7QUFDdEIsa0JBQU1BLElBQUc7QUFBQSxVQUNYLE9BQU87QUFDTCxZQUFBSCxNQUFLLG1CQUFtQixJQUFJO0FBQzVCLG9CQUFRLGNBQWM7QUFFdEIsZ0JBQUksQ0FBQyxnQkFBZ0I7QUFDbkIscUJBQU8sTUFBTSxJQUFJO0FBQUEsWUFDbkI7QUFFQSxtQkFBTyxPQUFPLEVBQUU7QUFBQSxVQUNsQjtBQUFBLFFBQ0Y7QUFBQSxNQUNGO0FBRUEsTUFBQUEsTUFBSyxZQUFZLE1BQU0sUUFBUSxVQUFVO0FBRXpDLGVBQVMsV0FBWSxPQUFPO0FBQzFCLGdCQUFRLFdBQVcsS0FBSztBQUFBLE1BQzFCO0FBQUEsSUFDRjtBQUVBLG1CQUFlLFVBQVcsT0FBTyxVQUFVLE1BQU0sUUFBUSxTQUFTLFFBQVEsZUFBZSxnQkFBZ0I7QUFDdkcsYUFBTyxrQkFBa0IsS0FBSyxNQUFNLG9DQUFvQztBQUV4RSxVQUFJO0FBQ0YsWUFBSSxpQkFBaUIsUUFBUSxrQkFBa0IsS0FBSyxNQUFNO0FBQ3hELGdCQUFNLElBQUksa0NBQWtDO0FBQUEsUUFDOUM7QUFFQSxjQUFNLFNBQVMsT0FBTyxLQUFLLE1BQU0sS0FBSyxZQUFZLENBQUM7QUFFbkQsaUJBQVMsS0FBSztBQUNkLGlCQUFTLE1BQU0sTUFBTTtBQUNyQixpQkFBUyxPQUFPO0FBQ2hCLGlCQUFTLElBQUk7QUFFYixnQkFBUSxXQUFXLE1BQU07QUFDekIsZ0JBQVEsY0FBYztBQUV0QixZQUFJLENBQUMsZ0JBQWdCO0FBQ25CLGlCQUFPLE1BQU0sSUFBSTtBQUFBLFFBQ25CO0FBRUEsZUFBTyxPQUFPLEVBQUU7QUFBQSxNQUNsQixTQUFTRyxNQUFLO0FBQ1osY0FBTUEsSUFBRztBQUFBLE1BQ1g7QUFBQSxJQUNGO0FBRUEsbUJBQWUsY0FBZSxPQUFPLFVBQVUsTUFBTSxRQUFRLFNBQVMsUUFBUSxlQUFlLGdCQUFnQjtBQUMzRyxhQUFPLGtCQUFrQixLQUFLLE9BQU8sUUFBUSxNQUFNLEdBQUcsbUNBQW1DO0FBRXpGLFVBQUksV0FBVztBQUNmLGVBQVMsVUFBVztBQUNsQixZQUFJLFVBQVU7QUFDWixnQkFBTSxLQUFLO0FBQ1gscUJBQVc7QUFDWCxhQUFHO0FBQUEsUUFDTDtBQUFBLE1BQ0Y7QUFFQSxZQUFNLGVBQWUsTUFBTSxJQUFJLFFBQVEsQ0FBQyxTQUFTLFdBQVc7QUFDMUQsZUFBTyxhQUFhLElBQUk7QUFFeEIsWUFBSSxPQUFPLE1BQU0sR0FBRztBQUNsQixpQkFBTyxPQUFPLE1BQU0sQ0FBQztBQUFBLFFBQ3ZCLE9BQU87QUFDTCxxQkFBVztBQUFBLFFBQ2I7QUFBQSxNQUNGLENBQUM7QUFFRCxlQUNHLEdBQUcsU0FBUyxPQUFPLEVBQ25CLEdBQUcsU0FBUyxPQUFPO0FBRXRCLFVBQUk7QUFFRix5QkFBaUIsU0FBUyxNQUFNO0FBQzlCLGNBQUksT0FBTyxNQUFNLEdBQUc7QUFDbEIsa0JBQU0sT0FBTyxNQUFNO0FBQUEsVUFDckI7QUFFQSxnQkFBTSxNQUFNLFNBQVMsTUFBTSxLQUFLO0FBQ2hDLGtCQUFRLFdBQVcsS0FBSztBQUN4QixjQUFJLENBQUMsS0FBSztBQUNSLGtCQUFNLGFBQWE7QUFBQSxVQUNyQjtBQUFBLFFBQ0Y7QUFFQSxpQkFBUyxJQUFJO0FBRWIsZ0JBQVEsY0FBYztBQUV0QixZQUFJLENBQUMsZ0JBQWdCO0FBQ25CLGlCQUFPLE1BQU0sSUFBSTtBQUFBLFFBQ25CO0FBRUEsZUFBTyxPQUFPLEVBQUU7QUFBQSxNQUNsQixTQUFTQSxNQUFLO0FBQ1osY0FBTUEsSUFBRztBQUFBLE1BQ1gsVUFBRTtBQUNBLGlCQUNHLElBQUksU0FBUyxPQUFPLEVBQ3BCLElBQUksU0FBUyxPQUFPO0FBQUEsTUFDekI7QUFBQSxJQUNGO0FBRUEsSUFBQUosUUFBTyxVQUFVO0FBQUE7QUFBQTs7O0FDdnVCakI7QUFBQSx3REFBQVEsVUFBQUMsU0FBQTtBQUFBO0FBRUEsUUFBTUMsUUFBTztBQUNiLFFBQU0sRUFBRSxVQUFVLElBQUk7QUFDdEIsUUFBTSxTQUFTLFFBQVEsYUFBYTtBQUNwQyxRQUFNLEVBQUUscUJBQXFCLElBQUk7QUFDakMsUUFBTSxLQUFLLFFBQVEsYUFBYTtBQUVoQyxRQUFNLDBCQUEwQixDQUFDLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxHQUFHO0FBRTdELFFBQU0sUUFBUSxPQUFPLE1BQU07QUFFM0IsUUFBTSxvQkFBTixNQUF3QjtBQUFBLE1BQ3RCLFlBQWEsTUFBTTtBQUNqQixhQUFLLEtBQUssSUFBSTtBQUNkLGFBQUssU0FBUyxJQUFJO0FBQUEsTUFDcEI7QUFBQSxNQUVBLFFBQVMsT0FBTyxhQUFhLElBQUs7QUFDaEMsZUFBTyxDQUFDLEtBQUssU0FBUyxHQUFHLFdBQVc7QUFDcEMsYUFBSyxTQUFTLElBQUk7QUFDbEIsZUFBUSxLQUFLLEtBQUs7QUFBQSxNQUNwQjtBQUFBLElBQ0Y7QUFFQSxRQUFNLGtCQUFOLE1BQXNCO0FBQUEsTUFDcEIsWUFBYSxVQUFVLGlCQUFpQixNQUFNLFNBQVM7QUFDckQsWUFBSSxtQkFBbUIsU0FBUyxDQUFDLE9BQU8sVUFBVSxlQUFlLEtBQUssa0JBQWtCLElBQUk7QUFDMUYsZ0JBQU0sSUFBSSxxQkFBcUIsMkNBQTJDO0FBQUEsUUFDNUU7QUFFQSxRQUFBQSxNQUFLLGdCQUFnQixTQUFTLEtBQUssUUFBUSxLQUFLLE9BQU87QUFFdkQsYUFBSyxXQUFXO0FBQ2hCLGFBQUssV0FBVztBQUNoQixhQUFLLFFBQVE7QUFDYixhQUFLLE9BQU8sRUFBRSxHQUFHLE1BQU0saUJBQWlCLEVBQUU7QUFDMUMsYUFBSyxrQkFBa0I7QUFDdkIsYUFBSyxVQUFVO0FBQ2YsYUFBSyxVQUFVLENBQUM7QUFDaEIsYUFBSywwQkFBMEI7QUFFL0IsWUFBSUEsTUFBSyxTQUFTLEtBQUssS0FBSyxJQUFJLEdBQUc7QUFJakMsY0FBSUEsTUFBSyxXQUFXLEtBQUssS0FBSyxJQUFJLE1BQU0sR0FBRztBQUN6QyxpQkFBSyxLQUFLLEtBQ1AsR0FBRyxRQUFRLFdBQVk7QUFDdEIscUJBQU8sS0FBSztBQUFBLFlBQ2QsQ0FBQztBQUFBLFVBQ0w7QUFFQSxjQUFJLE9BQU8sS0FBSyxLQUFLLEtBQUssb0JBQW9CLFdBQVc7QUFDdkQsaUJBQUssS0FBSyxLQUFLLFNBQVMsSUFBSTtBQUM1QixlQUFHLFVBQVUsR0FBRyxLQUFLLEtBQUssS0FBSyxNQUFNLFFBQVEsV0FBWTtBQUN2RCxtQkFBSyxTQUFTLElBQUk7QUFBQSxZQUNwQixDQUFDO0FBQUEsVUFDSDtBQUFBLFFBQ0YsV0FBVyxLQUFLLEtBQUssUUFBUSxPQUFPLEtBQUssS0FBSyxLQUFLLFdBQVcsWUFBWTtBQUl4RSxlQUFLLEtBQUssT0FBTyxJQUFJLGtCQUFrQixLQUFLLEtBQUssSUFBSTtBQUFBLFFBQ3ZELFdBQ0UsS0FBSyxLQUFLLFFBQ1YsT0FBTyxLQUFLLEtBQUssU0FBUyxZQUMxQixDQUFDLFlBQVksT0FBTyxLQUFLLEtBQUssSUFBSSxLQUNsQ0EsTUFBSyxXQUFXLEtBQUssS0FBSyxJQUFJLEdBQzlCO0FBR0EsZUFBSyxLQUFLLE9BQU8sSUFBSSxrQkFBa0IsS0FBSyxLQUFLLElBQUk7QUFBQSxRQUN2RDtBQUFBLE1BQ0Y7QUFBQSxNQUVBLFVBQVcsT0FBTztBQUNoQixhQUFLLFFBQVE7QUFDYixhQUFLLFFBQVEsVUFBVSxPQUFPLEVBQUUsU0FBUyxLQUFLLFFBQVEsQ0FBQztBQUFBLE1BQ3pEO0FBQUEsTUFFQSxVQUFXLFlBQVksU0FBUyxRQUFRO0FBQ3RDLGFBQUssUUFBUSxVQUFVLFlBQVksU0FBUyxNQUFNO0FBQUEsTUFDcEQ7QUFBQSxNQUVBLFFBQVMsT0FBTztBQUNkLGFBQUssUUFBUSxRQUFRLEtBQUs7QUFBQSxNQUM1QjtBQUFBLE1BRUEsVUFBVyxZQUFZLFNBQVMsUUFBUSxZQUFZO0FBQ2xELGFBQUssV0FBVyxLQUFLLFFBQVEsVUFBVSxLQUFLLG1CQUFtQkEsTUFBSyxZQUFZLEtBQUssS0FBSyxJQUFJLElBQzFGLE9BQ0EsY0FBYyxZQUFZLE9BQU87QUFFckMsWUFBSSxLQUFLLEtBQUssc0JBQXNCLEtBQUssUUFBUSxVQUFVLEtBQUssaUJBQWlCO0FBQy9FLGNBQUksS0FBSyxTQUFTO0FBQ2hCLGlCQUFLLFFBQVEsTUFBTSxJQUFJLE1BQU0sZUFBZSxDQUFDO0FBQUEsVUFDL0M7QUFFQSxlQUFLLDBCQUEwQjtBQUMvQixlQUFLLE1BQU0sSUFBSSxNQUFNLGVBQWUsQ0FBQztBQUNyQztBQUFBLFFBQ0Y7QUFFQSxZQUFJLEtBQUssS0FBSyxRQUFRO0FBQ3BCLGVBQUssUUFBUSxLQUFLLElBQUksSUFBSSxLQUFLLEtBQUssTUFBTSxLQUFLLEtBQUssTUFBTSxDQUFDO0FBQUEsUUFDN0Q7QUFFQSxZQUFJLENBQUMsS0FBSyxVQUFVO0FBQ2xCLGlCQUFPLEtBQUssUUFBUSxVQUFVLFlBQVksU0FBUyxRQUFRLFVBQVU7QUFBQSxRQUN2RTtBQUVBLGNBQU0sRUFBRSxRQUFBQyxTQUFRLFVBQVUsT0FBTyxJQUFJRCxNQUFLLFNBQVMsSUFBSSxJQUFJLEtBQUssVUFBVSxLQUFLLEtBQUssVUFBVSxJQUFJLElBQUksS0FBSyxLQUFLLE1BQU0sS0FBSyxLQUFLLE1BQU0sQ0FBQyxDQUFDO0FBQ3hJLGNBQU0sT0FBTyxTQUFTLEdBQUcsUUFBUSxHQUFHLE1BQU0sS0FBSztBQUsvQyxhQUFLLEtBQUssVUFBVSxvQkFBb0IsS0FBSyxLQUFLLFNBQVMsZUFBZSxLQUFLLEtBQUssS0FBSyxXQUFXQyxPQUFNO0FBQzFHLGFBQUssS0FBSyxPQUFPO0FBQ2pCLGFBQUssS0FBSyxTQUFTQTtBQUNuQixhQUFLLEtBQUssa0JBQWtCO0FBQzVCLGFBQUssS0FBSyxRQUFRO0FBSWxCLFlBQUksZUFBZSxPQUFPLEtBQUssS0FBSyxXQUFXLFFBQVE7QUFDckQsZUFBSyxLQUFLLFNBQVM7QUFDbkIsZUFBSyxLQUFLLE9BQU87QUFBQSxRQUNuQjtBQUFBLE1BQ0Y7QUFBQSxNQUVBLE9BQVEsT0FBTztBQUNiLFlBQUksS0FBSyxVQUFVO0FBQUEsUUFrQm5CLE9BQU87QUFDTCxpQkFBTyxLQUFLLFFBQVEsT0FBTyxLQUFLO0FBQUEsUUFDbEM7QUFBQSxNQUNGO0FBQUEsTUFFQSxXQUFZLFVBQVU7QUFDcEIsWUFBSSxLQUFLLFVBQVU7QUFVakIsZUFBSyxXQUFXO0FBQ2hCLGVBQUssUUFBUTtBQUViLGVBQUssU0FBUyxLQUFLLE1BQU0sSUFBSTtBQUFBLFFBQy9CLE9BQU87QUFDTCxlQUFLLFFBQVEsV0FBVyxRQUFRO0FBQUEsUUFDbEM7QUFBQSxNQUNGO0FBQUEsTUFFQSxXQUFZLE9BQU87QUFDakIsWUFBSSxLQUFLLFFBQVEsWUFBWTtBQUMzQixlQUFLLFFBQVEsV0FBVyxLQUFLO0FBQUEsUUFDL0I7QUFBQSxNQUNGO0FBQUEsSUFDRjtBQUVBLGFBQVMsY0FBZSxZQUFZLFNBQVM7QUFDM0MsVUFBSSx3QkFBd0IsUUFBUSxVQUFVLE1BQU0sSUFBSTtBQUN0RCxlQUFPO0FBQUEsTUFDVDtBQUVBLGVBQVMsSUFBSSxHQUFHLElBQUksUUFBUSxRQUFRLEtBQUssR0FBRztBQUMxQyxZQUFJLFFBQVEsQ0FBQyxFQUFFLFdBQVcsS0FBS0QsTUFBSyxtQkFBbUIsUUFBUSxDQUFDLENBQUMsTUFBTSxZQUFZO0FBQ2pGLGlCQUFPLFFBQVEsSUFBSSxDQUFDO0FBQUEsUUFDdEI7QUFBQSxNQUNGO0FBQUEsSUFDRjtBQUdBLGFBQVMsbUJBQW9CLFFBQVEsZUFBZSxlQUFlO0FBQ2pFLFVBQUksT0FBTyxXQUFXLEdBQUc7QUFDdkIsZUFBT0EsTUFBSyxtQkFBbUIsTUFBTSxNQUFNO0FBQUEsTUFDN0M7QUFDQSxVQUFJLGlCQUFpQkEsTUFBSyxtQkFBbUIsTUFBTSxFQUFFLFdBQVcsVUFBVSxHQUFHO0FBQzNFLGVBQU87QUFBQSxNQUNUO0FBQ0EsVUFBSSxrQkFBa0IsT0FBTyxXQUFXLE1BQU0sT0FBTyxXQUFXLEtBQUssT0FBTyxXQUFXLEtBQUs7QUFDMUYsY0FBTSxPQUFPQSxNQUFLLG1CQUFtQixNQUFNO0FBQzNDLGVBQU8sU0FBUyxtQkFBbUIsU0FBUyxZQUFZLFNBQVM7QUFBQSxNQUNuRTtBQUNBLGFBQU87QUFBQSxJQUNUO0FBR0EsYUFBUyxvQkFBcUIsU0FBUyxlQUFlLGVBQWU7QUFDbkUsWUFBTSxNQUFNLENBQUM7QUFDYixVQUFJLE1BQU0sUUFBUSxPQUFPLEdBQUc7QUFDMUIsaUJBQVMsSUFBSSxHQUFHLElBQUksUUFBUSxRQUFRLEtBQUssR0FBRztBQUMxQyxjQUFJLENBQUMsbUJBQW1CLFFBQVEsQ0FBQyxHQUFHLGVBQWUsYUFBYSxHQUFHO0FBQ2pFLGdCQUFJLEtBQUssUUFBUSxDQUFDLEdBQUcsUUFBUSxJQUFJLENBQUMsQ0FBQztBQUFBLFVBQ3JDO0FBQUEsUUFDRjtBQUFBLE1BQ0YsV0FBVyxXQUFXLE9BQU8sWUFBWSxVQUFVO0FBQ2pELG1CQUFXLE9BQU8sT0FBTyxLQUFLLE9BQU8sR0FBRztBQUN0QyxjQUFJLENBQUMsbUJBQW1CLEtBQUssZUFBZSxhQUFhLEdBQUc7QUFDMUQsZ0JBQUksS0FBSyxLQUFLLFFBQVEsR0FBRyxDQUFDO0FBQUEsVUFDNUI7QUFBQSxRQUNGO0FBQUEsTUFDRixPQUFPO0FBQ0wsZUFBTyxXQUFXLE1BQU0sdUNBQXVDO0FBQUEsTUFDakU7QUFDQSxhQUFPO0FBQUEsSUFDVDtBQUVBLElBQUFELFFBQU8sVUFBVTtBQUFBO0FBQUE7OztBQ3ZPakI7QUFBQSxnRUFBQUcsVUFBQUMsU0FBQTtBQUFBO0FBRUEsUUFBTSxrQkFBa0I7QUFFeEIsYUFBUywwQkFBMkIsRUFBRSxpQkFBaUIsdUJBQXVCLEdBQUc7QUFDL0UsYUFBTyxDQUFDLGFBQWE7QUFDbkIsZUFBTyxTQUFTLFVBQVcsTUFBTSxTQUFTO0FBQ3hDLGdCQUFNLEVBQUUsa0JBQWtCLHVCQUF1QixJQUFJO0FBRXJELGNBQUksQ0FBQyxpQkFBaUI7QUFDcEIsbUJBQU8sU0FBUyxNQUFNLE9BQU87QUFBQSxVQUMvQjtBQUVBLGdCQUFNLGtCQUFrQixJQUFJLGdCQUFnQixVQUFVLGlCQUFpQixNQUFNLE9BQU87QUFDcEYsaUJBQU8sRUFBRSxHQUFHLE1BQU0saUJBQWlCLEVBQUU7QUFDckMsaUJBQU8sU0FBUyxNQUFNLGVBQWU7QUFBQSxRQUN2QztBQUFBLE1BQ0Y7QUFBQSxJQUNGO0FBRUEsSUFBQUEsUUFBTyxVQUFVO0FBQUE7QUFBQTs7O0FDcEJqQjtBQUFBLGlEQUFBQyxVQUFBQyxTQUFBO0FBQUE7QUFJQSxRQUFNLFNBQVMsUUFBUSxhQUFhO0FBQ3BDLFFBQU0sTUFBTSxRQUFRLFVBQVU7QUFDOUIsUUFBTUMsUUFBTyxRQUFRLFdBQVc7QUFDaEMsUUFBTUMsUUFBTztBQUNiLFFBQU0sRUFBRSxTQUFTLElBQUk7QUFDckIsUUFBTUMsV0FBVTtBQUNoQixRQUFNLGlCQUFpQjtBQUN2QixRQUFNO0FBQUEsTUFDSjtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsSUFDRixJQUFJO0FBQ0osUUFBTSxpQkFBaUI7QUFDdkIsUUFBTTtBQUFBLE1BQ0o7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxJQUNGLElBQUk7QUFDSixRQUFNLFlBQVk7QUFDbEIsUUFBTSxZQUFZO0FBQ2xCLFFBQUksOEJBQThCO0FBRWxDLFFBQU0saUJBQWlCLE9BQU8sZ0JBQWdCO0FBRTlDLFFBQU1DLFFBQU8sTUFBTTtBQUFBLElBQUM7QUFFcEIsYUFBUyxjQUFlLFFBQVE7QUFDOUIsYUFBTyxPQUFPLFdBQVcsS0FBSyxPQUFPLFlBQVksR0FBRyxxQkFBcUI7QUFBQSxJQUMzRTtBQUtBLFFBQU0sU0FBTixjQUFxQixlQUFlO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLE1BTWxDLFlBQWFDLE1BQUs7QUFBQSxRQUNoQjtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0EsU0FBQUM7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBO0FBQUEsUUFFQTtBQUFBLFFBQ0E7QUFBQSxNQUNGLElBQUksQ0FBQyxHQUFHO0FBQ04sY0FBTTtBQUVOLFlBQUksY0FBYyxRQUFXO0FBQzNCLGdCQUFNLElBQUkscUJBQXFCLGlEQUFpRDtBQUFBLFFBQ2xGO0FBRUEsWUFBSSxrQkFBa0IsUUFBVztBQUMvQixnQkFBTSxJQUFJLHFCQUFxQixxRUFBcUU7QUFBQSxRQUN0RztBQUVBLFlBQUksbUJBQW1CLFFBQVc7QUFDaEMsZ0JBQU0sSUFBSSxxQkFBcUIsc0VBQXNFO0FBQUEsUUFDdkc7QUFFQSxZQUFJLGdCQUFnQixRQUFXO0FBQzdCLGdCQUFNLElBQUkscUJBQXFCLHVEQUF1RDtBQUFBLFFBQ3hGO0FBRUEsWUFBSSx3QkFBd0IsUUFBVztBQUNyQyxnQkFBTSxJQUFJLHFCQUFxQixrRUFBa0U7QUFBQSxRQUNuRztBQUVBLFlBQUksaUJBQWlCLFFBQVEsQ0FBQyxPQUFPLFNBQVMsYUFBYSxHQUFHO0FBQzVELGdCQUFNLElBQUkscUJBQXFCLHVCQUF1QjtBQUFBLFFBQ3hEO0FBRUEsWUFBSSxjQUFjLFFBQVEsT0FBTyxlQUFlLFVBQVU7QUFDeEQsZ0JBQU0sSUFBSSxxQkFBcUIsb0JBQW9CO0FBQUEsUUFDckQ7QUFFQSxZQUFJLGtCQUFrQixTQUFTLENBQUMsT0FBTyxTQUFTLGNBQWMsS0FBSyxpQkFBaUIsSUFBSTtBQUN0RixnQkFBTSxJQUFJLHFCQUFxQix3QkFBd0I7QUFBQSxRQUN6RDtBQUVBLFlBQUksb0JBQW9CLFNBQVMsQ0FBQyxPQUFPLFNBQVMsZ0JBQWdCLEtBQUssb0JBQW9CLElBQUk7QUFDN0YsZ0JBQU0sSUFBSSxxQkFBcUIsMEJBQTBCO0FBQUEsUUFDM0Q7QUFFQSxZQUFJLHVCQUF1QixTQUFTLENBQUMsT0FBTyxTQUFTLG1CQUFtQixLQUFLLHVCQUF1QixJQUFJO0FBQ3RHLGdCQUFNLElBQUkscUJBQXFCLDZCQUE2QjtBQUFBLFFBQzlEO0FBRUEsWUFBSSw2QkFBNkIsUUFBUSxDQUFDLE9BQU8sU0FBUyx5QkFBeUIsR0FBRztBQUNwRixnQkFBTSxJQUFJLHFCQUFxQixtQ0FBbUM7QUFBQSxRQUNwRTtBQUVBLFlBQUksa0JBQWtCLFNBQVMsQ0FBQyxPQUFPLFVBQVUsY0FBYyxLQUFLLGlCQUFpQixJQUFJO0FBQ3ZGLGdCQUFNLElBQUkscUJBQXFCLG1EQUFtRDtBQUFBLFFBQ3BGO0FBRUEsWUFBSSxlQUFlLFNBQVMsQ0FBQyxPQUFPLFVBQVUsV0FBVyxLQUFLLGNBQWMsSUFBSTtBQUM5RSxnQkFBTSxJQUFJLHFCQUFxQixnREFBZ0Q7QUFBQSxRQUNqRjtBQUVBLFlBQUlBLFlBQVcsUUFBUSxPQUFPQSxhQUFZLGNBQWMsT0FBT0EsYUFBWSxVQUFVO0FBQ25GLGdCQUFNLElBQUkscUJBQXFCLHlDQUF5QztBQUFBLFFBQzFFO0FBRUEsWUFBSSxtQkFBbUIsU0FBUyxDQUFDLE9BQU8sVUFBVSxlQUFlLEtBQUssa0JBQWtCLElBQUk7QUFDMUYsZ0JBQU0sSUFBSSxxQkFBcUIsMkNBQTJDO0FBQUEsUUFDNUU7QUFFQSxZQUFJLHdCQUF3QixTQUFTLENBQUMsT0FBTyxVQUFVLG9CQUFvQixLQUFLLHVCQUF1QixJQUFJO0FBQ3pHLGdCQUFNLElBQUkscUJBQXFCLGdEQUFnRDtBQUFBLFFBQ2pGO0FBRUEsWUFBSSxnQkFBZ0IsU0FBUyxPQUFPLGlCQUFpQixZQUFZLElBQUksS0FBSyxZQUFZLE1BQU0sSUFBSTtBQUM5RixnQkFBTSxJQUFJLHFCQUFxQiw4Q0FBOEM7QUFBQSxRQUMvRTtBQUVBLFlBQUksbUJBQW1CLFNBQVMsQ0FBQyxPQUFPLFVBQVUsZUFBZSxLQUFLLGtCQUFrQixLQUFLO0FBQzNGLGdCQUFNLElBQUkscUJBQXFCLDJDQUEyQztBQUFBLFFBQzVFO0FBRUEsWUFDRSxrQ0FBa0MsU0FDakMsQ0FBQyxPQUFPLFVBQVUsOEJBQThCLEtBQUssaUNBQWlDLEtBQ3ZGO0FBQ0EsZ0JBQU0sSUFBSSxxQkFBcUIsMERBQTBEO0FBQUEsUUFDM0Y7QUFHQSxZQUFJLFdBQVcsUUFBUSxPQUFPLFlBQVksV0FBVztBQUNuRCxnQkFBTSxJQUFJLHFCQUFxQix1Q0FBdUM7QUFBQSxRQUN4RTtBQUVBLFlBQUksd0JBQXdCLFNBQVMsT0FBTyx5QkFBeUIsWUFBWSx1QkFBdUIsSUFBSTtBQUMxRyxnQkFBTSxJQUFJLHFCQUFxQixpRUFBaUU7QUFBQSxRQUNsRztBQUVBLFlBQUksT0FBT0EsYUFBWSxZQUFZO0FBQ2pDLFVBQUFBLFdBQVUsZUFBZTtBQUFBLFlBQ3ZCLEdBQUc7QUFBQSxZQUNIO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBLFNBQVM7QUFBQSxZQUNULEdBQUksbUJBQW1CLEVBQUUsa0JBQWtCLCtCQUErQixJQUFJO0FBQUEsWUFDOUUsR0FBR0E7QUFBQSxVQUNMLENBQUM7QUFBQSxRQUNIO0FBRUEsWUFBSSxjQUFjLFVBQVUsTUFBTSxRQUFRLGFBQWEsTUFBTSxHQUFHO0FBQzlELGVBQUssYUFBYSxJQUFJLGFBQWE7QUFDbkMsY0FBSSxDQUFDLDZCQUE2QjtBQUNoQywwQ0FBOEI7QUFDOUIsb0JBQVEsWUFBWSw2RUFBNkU7QUFBQSxjQUMvRixNQUFNO0FBQUEsWUFDUixDQUFDO0FBQUEsVUFDSDtBQUFBLFFBQ0YsT0FBTztBQUNMLGVBQUssYUFBYSxJQUFJLENBQUMsMEJBQTBCLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztBQUFBLFFBQ3ZFO0FBRUEsYUFBSyxJQUFJLElBQUlKLE1BQUssWUFBWUcsSUFBRztBQUNqQyxhQUFLLFVBQVUsSUFBSUM7QUFDbkIsYUFBSyxXQUFXLElBQUksY0FBYyxPQUFPLGFBQWE7QUFDdEQsYUFBSyxlQUFlLElBQUksaUJBQWlCTCxNQUFLO0FBQzlDLGFBQUssd0JBQXdCLElBQUksb0JBQW9CLE9BQU8sTUFBTTtBQUNsRSxhQUFLLG9CQUFvQixJQUFJLHVCQUF1QixPQUFPLE1BQVE7QUFDbkUsYUFBSywwQkFBMEIsSUFBSSw2QkFBNkIsT0FBTyxNQUFNO0FBQzdFLGFBQUssc0JBQXNCLElBQUksS0FBSyx3QkFBd0I7QUFDNUQsYUFBSyxXQUFXLElBQUk7QUFDcEIsYUFBSyxhQUFhLElBQUksZ0JBQWdCLE9BQU8sZUFBZTtBQUM1RCxhQUFLLFNBQVMsSUFBSTtBQUNsQixhQUFLLFVBQVUsSUFBSTtBQUNuQixhQUFLLFdBQVcsSUFBSSxTQUFTLEtBQUssSUFBSSxFQUFFLFFBQVEsR0FBRyxLQUFLLElBQUksRUFBRSxPQUFPLElBQUksS0FBSyxJQUFJLEVBQUUsSUFBSSxLQUFLLEVBQUU7QUFBQTtBQUMvRixhQUFLLFlBQVksSUFBSSxlQUFlLE9BQU8sY0FBYztBQUN6RCxhQUFLLGVBQWUsSUFBSSxrQkFBa0IsT0FBTyxpQkFBaUI7QUFDbEUsYUFBSyxvQkFBb0IsSUFBSSx1QkFBdUIsT0FBTyxPQUFPO0FBQ2xFLGFBQUssZ0JBQWdCLElBQUk7QUFDekIsYUFBSyxZQUFZLElBQUk7QUFDckIsYUFBSyxjQUFjLElBQUk7QUFDdkIsYUFBSyxnQkFBZ0IsSUFBSSxrQkFBa0IsS0FBSyxrQkFBa0I7QUFDbEUsYUFBSyxxQkFBcUIsSUFBSSx3QkFBd0IsT0FBTyx1QkFBdUI7QUFDcEYsYUFBSyxZQUFZLElBQUk7QUFXckIsYUFBSyxNQUFNLElBQUksQ0FBQztBQUNoQixhQUFLLFdBQVcsSUFBSTtBQUNwQixhQUFLLFdBQVcsSUFBSTtBQUVwQixhQUFLLE9BQU8sSUFBSSxDQUFDLFNBQVMsT0FBTyxNQUFNLElBQUk7QUFDM0MsYUFBSyxRQUFRLElBQUksQ0FBQ00sU0FBUSxRQUFRLE1BQU1BLElBQUc7QUFBQSxNQUM3QztBQUFBLE1BRUEsSUFBSSxhQUFjO0FBQ2hCLGVBQU8sS0FBSyxXQUFXO0FBQUEsTUFDekI7QUFBQSxNQUVBLElBQUksV0FBWSxPQUFPO0FBQ3JCLGFBQUssV0FBVyxJQUFJO0FBQ3BCLGFBQUssT0FBTyxFQUFFLElBQUk7QUFBQSxNQUNwQjtBQUFBLE1BRUEsS0FBSyxRQUFRLElBQUs7QUFDaEIsZUFBTyxLQUFLLE1BQU0sRUFBRSxTQUFTLEtBQUssV0FBVztBQUFBLE1BQy9DO0FBQUEsTUFFQSxLQUFLLFFBQVEsSUFBSztBQUNoQixlQUFPLEtBQUssV0FBVyxJQUFJLEtBQUssV0FBVztBQUFBLE1BQzdDO0FBQUEsTUFFQSxLQUFLLEtBQUssSUFBSztBQUNiLGVBQU8sS0FBSyxNQUFNLEVBQUUsU0FBUyxLQUFLLFdBQVc7QUFBQSxNQUMvQztBQUFBLE1BRUEsS0FBSyxVQUFVLElBQUs7QUFDbEIsZUFBTyxDQUFDLENBQUMsS0FBSyxZQUFZLEtBQUssQ0FBQyxLQUFLLFdBQVcsS0FBSyxDQUFDLEtBQUssWUFBWSxFQUFFO0FBQUEsTUFDM0U7QUFBQSxNQUVBLEtBQUssS0FBSyxJQUFLO0FBQ2IsZUFBTztBQUFBLFVBQ0wsS0FBSyxZQUFZLEdBQUcsS0FBSyxJQUFJLEtBQzVCLEtBQUssS0FBSyxNQUFNLGNBQWMsSUFBSSxLQUFLLE1BQ3hDLEtBQUssUUFBUSxJQUFJO0FBQUEsUUFDbkI7QUFBQSxNQUNGO0FBQUE7QUFBQSxNQUdBLENBQUMsUUFBUSxFQUFHLElBQUk7QUFDZCxnQkFBUSxJQUFJO0FBQ1osYUFBSyxLQUFLLFdBQVcsRUFBRTtBQUFBLE1BQ3pCO0FBQUEsTUFFQSxDQUFDLFNBQVMsRUFBRyxNQUFNLFNBQVM7QUFDMUIsY0FBTUMsVUFBUyxLQUFLLFVBQVUsS0FBSyxJQUFJLEVBQUU7QUFDekMsY0FBTSxVQUFVLElBQUlMLFNBQVFLLFNBQVEsTUFBTSxPQUFPO0FBRWpELGFBQUssTUFBTSxFQUFFLEtBQUssT0FBTztBQUN6QixZQUFJLEtBQUssU0FBUyxHQUFHO0FBQUEsUUFFckIsV0FBV04sTUFBSyxXQUFXLFFBQVEsSUFBSSxLQUFLLFFBQVFBLE1BQUssV0FBVyxRQUFRLElBQUksR0FBRztBQUVqRixlQUFLLFNBQVMsSUFBSTtBQUNsQix5QkFBZSxNQUFNLE9BQU8sSUFBSSxDQUFDO0FBQUEsUUFDbkMsT0FBTztBQUNMLGVBQUssT0FBTyxFQUFFLElBQUk7QUFBQSxRQUNwQjtBQUVBLFlBQUksS0FBSyxTQUFTLEtBQUssS0FBSyxVQUFVLE1BQU0sS0FBSyxLQUFLLEtBQUssR0FBRztBQUM1RCxlQUFLLFVBQVUsSUFBSTtBQUFBLFFBQ3JCO0FBRUEsZUFBTyxLQUFLLFVBQVUsSUFBSTtBQUFBLE1BQzVCO0FBQUEsTUFFQSxPQUFPLE1BQU0sSUFBSztBQUdoQixlQUFPLElBQUksUUFBUSxDQUFDLFlBQVk7QUFDOUIsY0FBSSxLQUFLLEtBQUssR0FBRztBQUNmLGlCQUFLLGNBQWMsSUFBSTtBQUFBLFVBQ3pCLE9BQU87QUFDTCxvQkFBUSxJQUFJO0FBQUEsVUFDZDtBQUFBLFFBQ0YsQ0FBQztBQUFBLE1BQ0g7QUFBQSxNQUVBLE9BQU8sUUFBUSxFQUFHSyxNQUFLO0FBQ3JCLGVBQU8sSUFBSSxRQUFRLENBQUMsWUFBWTtBQUM5QixnQkFBTSxXQUFXLEtBQUssTUFBTSxFQUFFLE9BQU8sS0FBSyxXQUFXLENBQUM7QUFDdEQsbUJBQVMsSUFBSSxHQUFHLElBQUksU0FBUyxRQUFRLEtBQUs7QUFDeEMsa0JBQU0sVUFBVSxTQUFTLENBQUM7QUFDMUIsWUFBQUwsTUFBSyxhQUFhLE1BQU0sU0FBU0ssSUFBRztBQUFBLFVBQ3RDO0FBRUEsZ0JBQU0sV0FBVyxNQUFNO0FBQ3JCLGdCQUFJLEtBQUssY0FBYyxHQUFHO0FBRXhCLG1CQUFLLGNBQWMsRUFBRTtBQUNyQixtQkFBSyxjQUFjLElBQUk7QUFBQSxZQUN6QjtBQUNBLG9CQUFRLElBQUk7QUFBQSxVQUNkO0FBRUEsY0FBSSxLQUFLLFlBQVksR0FBRztBQUN0QixpQkFBSyxZQUFZLEVBQUUsUUFBUUEsTUFBSyxRQUFRO0FBQ3hDLGlCQUFLLFlBQVksSUFBSTtBQUFBLFVBQ3ZCLE9BQU87QUFDTCwyQkFBZSxRQUFRO0FBQUEsVUFDekI7QUFFQSxlQUFLLE9BQU8sRUFBRTtBQUFBLFFBQ2hCLENBQUM7QUFBQSxNQUNIO0FBQUEsSUFDRjtBQUVBLFFBQU0sNEJBQTRCO0FBRWxDLGFBQVMsUUFBUyxRQUFRQSxNQUFLO0FBQzdCLFVBQ0UsT0FBTyxRQUFRLE1BQU0sS0FDckJBLEtBQUksU0FBUyxrQkFDYkEsS0FBSSxTQUFTLGtCQUNiO0FBSUEsZUFBTyxPQUFPLFdBQVcsTUFBTSxPQUFPLFdBQVcsQ0FBQztBQUVsRCxjQUFNLFdBQVcsT0FBTyxNQUFNLEVBQUUsT0FBTyxPQUFPLFdBQVcsQ0FBQztBQUUxRCxpQkFBUyxJQUFJLEdBQUcsSUFBSSxTQUFTLFFBQVEsS0FBSztBQUN4QyxnQkFBTSxVQUFVLFNBQVMsQ0FBQztBQUMxQixVQUFBTCxNQUFLLGFBQWEsUUFBUSxTQUFTSyxJQUFHO0FBQUEsUUFDeEM7QUFDQSxlQUFPLE9BQU8sS0FBSyxNQUFNLENBQUM7QUFBQSxNQUM1QjtBQUFBLElBQ0Y7QUFNQSxtQkFBZSxRQUFTLFFBQVE7QUFDOUIsYUFBTyxDQUFDLE9BQU8sV0FBVyxDQUFDO0FBQzNCLGFBQU8sQ0FBQyxPQUFPLFlBQVksQ0FBQztBQUU1QixVQUFJLEVBQUUsTUFBTSxVQUFVLFVBQVUsS0FBSyxJQUFJLE9BQU8sSUFBSTtBQUdwRCxVQUFJLFNBQVMsQ0FBQyxNQUFNLEtBQUs7QUFDdkIsY0FBTSxNQUFNLFNBQVMsUUFBUSxHQUFHO0FBRWhDLGVBQU8sUUFBUSxFQUFFO0FBQ2pCLGNBQU0sS0FBSyxTQUFTLFVBQVUsR0FBRyxHQUFHO0FBRXBDLGVBQU8sSUFBSSxLQUFLLEVBQUUsQ0FBQztBQUNuQixtQkFBVztBQUFBLE1BQ2I7QUFFQSxhQUFPLFdBQVcsSUFBSTtBQUV0QixVQUFJLFNBQVMsY0FBYyxnQkFBZ0I7QUFDekMsaUJBQVMsY0FBYyxRQUFRO0FBQUEsVUFDN0IsZUFBZTtBQUFBLFlBQ2I7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBLFNBQVMsT0FBTyxZQUFZLEdBQUc7QUFBQSxZQUMvQixZQUFZLE9BQU8sV0FBVztBQUFBLFlBQzlCLGNBQWMsT0FBTyxhQUFhO0FBQUEsVUFDcEM7QUFBQSxVQUNBLFdBQVcsT0FBTyxVQUFVO0FBQUEsUUFDOUIsQ0FBQztBQUFBLE1BQ0g7QUFFQSxVQUFJO0FBQ0YsY0FBTSxTQUFTLE1BQU0sSUFBSSxRQUFRLENBQUMsU0FBUyxXQUFXO0FBQ3BELGlCQUFPLFVBQVUsRUFBRTtBQUFBLFlBQ2pCO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQSxZQUFZLE9BQU8sV0FBVztBQUFBLFlBQzlCLGNBQWMsT0FBTyxhQUFhO0FBQUEsVUFDcEMsR0FBRyxDQUFDQSxNQUFLRSxZQUFXO0FBQ2xCLGdCQUFJRixNQUFLO0FBQ1AscUJBQU9BLElBQUc7QUFBQSxZQUNaLE9BQU87QUFDTCxzQkFBUUUsT0FBTTtBQUFBLFlBQ2hCO0FBQUEsVUFDRixDQUFDO0FBQUEsUUFDSCxDQUFDO0FBRUQsWUFBSSxPQUFPLFdBQVc7QUFDcEIsVUFBQVAsTUFBSyxRQUFRLE9BQU8sR0FBRyxTQUFTRSxLQUFJLEdBQUcsSUFBSSxxQkFBcUIsQ0FBQztBQUNqRTtBQUFBLFFBQ0Y7QUFFQSxlQUFPLE1BQU07QUFFYixZQUFJO0FBQ0YsaUJBQU8sWUFBWSxJQUFJLE9BQU8saUJBQWlCLE9BQzNDLE1BQU0sVUFBVSxRQUFRLE1BQU0sSUFDOUIsTUFBTSxVQUFVLFFBQVEsTUFBTTtBQUFBLFFBQ3BDLFNBQVNHLE1BQUs7QUFDWixpQkFBTyxRQUFRLEVBQUUsR0FBRyxTQUFTSCxLQUFJO0FBQ2pDLGdCQUFNRztBQUFBLFFBQ1I7QUFFQSxlQUFPLFdBQVcsSUFBSTtBQUV0QixlQUFPLFFBQVEsSUFBSTtBQUNuQixlQUFPLFlBQVksSUFBSSxPQUFPLFlBQVk7QUFDMUMsZUFBTyxPQUFPLElBQUk7QUFDbEIsZUFBTyxNQUFNLElBQUk7QUFFakIsWUFBSSxTQUFTLFVBQVUsZ0JBQWdCO0FBQ3JDLG1CQUFTLFVBQVUsUUFBUTtBQUFBLFlBQ3pCLGVBQWU7QUFBQSxjQUNiO0FBQUEsY0FDQTtBQUFBLGNBQ0E7QUFBQSxjQUNBO0FBQUEsY0FDQSxTQUFTLE9BQU8sWUFBWSxHQUFHO0FBQUEsY0FDL0IsWUFBWSxPQUFPLFdBQVc7QUFBQSxjQUM5QixjQUFjLE9BQU8sYUFBYTtBQUFBLFlBQ3BDO0FBQUEsWUFDQSxXQUFXLE9BQU8sVUFBVTtBQUFBLFlBQzVCO0FBQUEsVUFDRixDQUFDO0FBQUEsUUFDSDtBQUNBLGVBQU8sS0FBSyxXQUFXLE9BQU8sSUFBSSxHQUFHLENBQUMsTUFBTSxDQUFDO0FBQUEsTUFDL0MsU0FBU0EsTUFBSztBQUNaLFlBQUksT0FBTyxXQUFXO0FBQ3BCO0FBQUEsUUFDRjtBQUVBLGVBQU8sV0FBVyxJQUFJO0FBRXRCLFlBQUksU0FBUyxhQUFhLGdCQUFnQjtBQUN4QyxtQkFBUyxhQUFhLFFBQVE7QUFBQSxZQUM1QixlQUFlO0FBQUEsY0FDYjtBQUFBLGNBQ0E7QUFBQSxjQUNBO0FBQUEsY0FDQTtBQUFBLGNBQ0EsU0FBUyxPQUFPLFlBQVksR0FBRztBQUFBLGNBQy9CLFlBQVksT0FBTyxXQUFXO0FBQUEsY0FDOUIsY0FBYyxPQUFPLGFBQWE7QUFBQSxZQUNwQztBQUFBLFlBQ0EsV0FBVyxPQUFPLFVBQVU7QUFBQSxZQUM1QixPQUFPQTtBQUFBLFVBQ1QsQ0FBQztBQUFBLFFBQ0g7QUFFQSxZQUFJQSxLQUFJLFNBQVMsZ0NBQWdDO0FBQy9DLGlCQUFPLE9BQU8sUUFBUSxNQUFNLENBQUM7QUFDN0IsaUJBQU8sT0FBTyxRQUFRLElBQUksS0FBSyxPQUFPLE1BQU0sRUFBRSxPQUFPLFdBQVcsQ0FBQyxFQUFFLGVBQWUsT0FBTyxXQUFXLEdBQUc7QUFDckcsa0JBQU0sVUFBVSxPQUFPLE1BQU0sRUFBRSxPQUFPLFdBQVcsR0FBRztBQUNwRCxZQUFBTCxNQUFLLGFBQWEsUUFBUSxTQUFTSyxJQUFHO0FBQUEsVUFDeEM7QUFBQSxRQUNGLE9BQU87QUFDTCxrQkFBUSxRQUFRQSxJQUFHO0FBQUEsUUFDckI7QUFFQSxlQUFPLEtBQUssbUJBQW1CLE9BQU8sSUFBSSxHQUFHLENBQUMsTUFBTSxHQUFHQSxJQUFHO0FBQUEsTUFDNUQ7QUFFQSxhQUFPLE9BQU8sRUFBRTtBQUFBLElBQ2xCO0FBRUEsYUFBUyxVQUFXLFFBQVE7QUFDMUIsYUFBTyxVQUFVLElBQUk7QUFDckIsYUFBTyxLQUFLLFNBQVMsT0FBTyxJQUFJLEdBQUcsQ0FBQyxNQUFNLENBQUM7QUFBQSxJQUM3QztBQUVBLGFBQVMsT0FBUSxRQUFRLE1BQU07QUFDN0IsVUFBSSxPQUFPLFNBQVMsTUFBTSxHQUFHO0FBQzNCO0FBQUEsTUFDRjtBQUVBLGFBQU8sU0FBUyxJQUFJO0FBRXBCLGNBQVEsUUFBUSxJQUFJO0FBQ3BCLGFBQU8sU0FBUyxJQUFJO0FBRXBCLFVBQUksT0FBTyxXQUFXLElBQUksS0FBSztBQUM3QixlQUFPLE1BQU0sRUFBRSxPQUFPLEdBQUcsT0FBTyxXQUFXLENBQUM7QUFDNUMsZUFBTyxXQUFXLEtBQUssT0FBTyxXQUFXO0FBQ3pDLGVBQU8sV0FBVyxJQUFJO0FBQUEsTUFDeEI7QUFBQSxJQUNGO0FBRUEsYUFBUyxRQUFTLFFBQVEsTUFBTTtBQUM5QixhQUFPLE1BQU07QUFDWCxZQUFJLE9BQU8sV0FBVztBQUNwQixpQkFBTyxPQUFPLFFBQVEsTUFBTSxDQUFDO0FBQzdCO0FBQUEsUUFDRjtBQUVBLFlBQUksT0FBTyxjQUFjLEtBQUssQ0FBQyxPQUFPLEtBQUssR0FBRztBQUM1QyxpQkFBTyxjQUFjLEVBQUU7QUFDdkIsaUJBQU8sY0FBYyxJQUFJO0FBQ3pCO0FBQUEsUUFDRjtBQUVBLFlBQUksT0FBTyxZQUFZLEdBQUc7QUFDeEIsaUJBQU8sWUFBWSxFQUFFLE9BQU87QUFBQSxRQUM5QjtBQUVBLFlBQUksT0FBTyxLQUFLLEdBQUc7QUFDakIsaUJBQU8sVUFBVSxJQUFJO0FBQUEsUUFDdkIsV0FBVyxPQUFPLFVBQVUsTUFBTSxHQUFHO0FBQ25DLGNBQUksTUFBTTtBQUNSLG1CQUFPLFVBQVUsSUFBSTtBQUNyQiwyQkFBZSxNQUFNLFVBQVUsTUFBTSxDQUFDO0FBQUEsVUFDeEMsT0FBTztBQUNMLHNCQUFVLE1BQU07QUFBQSxVQUNsQjtBQUNBO0FBQUEsUUFDRjtBQUVBLFlBQUksT0FBTyxRQUFRLE1BQU0sR0FBRztBQUMxQjtBQUFBLFFBQ0Y7QUFFQSxZQUFJLE9BQU8sUUFBUSxNQUFNLGNBQWMsTUFBTSxLQUFLLElBQUk7QUFDcEQ7QUFBQSxRQUNGO0FBRUEsY0FBTSxVQUFVLE9BQU8sTUFBTSxFQUFFLE9BQU8sV0FBVyxDQUFDO0FBRWxELFlBQUksT0FBTyxJQUFJLEVBQUUsYUFBYSxZQUFZLE9BQU8sV0FBVyxNQUFNLFFBQVEsWUFBWTtBQUNwRixjQUFJLE9BQU8sUUFBUSxJQUFJLEdBQUc7QUFDeEI7QUFBQSxVQUNGO0FBRUEsaUJBQU8sV0FBVyxJQUFJLFFBQVE7QUFDOUIsaUJBQU8sWUFBWSxHQUFHLFFBQVEsSUFBSSxtQkFBbUIsb0JBQW9CLEdBQUcsTUFBTTtBQUNoRixtQkFBTyxZQUFZLElBQUk7QUFDdkIsbUJBQU8sTUFBTTtBQUFBLFVBQ2YsQ0FBQztBQUFBLFFBQ0g7QUFFQSxZQUFJLE9BQU8sV0FBVyxHQUFHO0FBQ3ZCO0FBQUEsUUFDRjtBQUVBLFlBQUksQ0FBQyxPQUFPLFlBQVksR0FBRztBQUN6QixrQkFBUSxNQUFNO0FBQ2Q7QUFBQSxRQUNGO0FBRUEsWUFBSSxPQUFPLFlBQVksRUFBRSxXQUFXO0FBQ2xDO0FBQUEsUUFDRjtBQUVBLFlBQUksT0FBTyxZQUFZLEVBQUUsS0FBSyxPQUFPLEdBQUc7QUFDdEM7QUFBQSxRQUNGO0FBRUEsWUFBSSxDQUFDLFFBQVEsV0FBVyxPQUFPLFlBQVksRUFBRSxNQUFNLE9BQU8sR0FBRztBQUMzRCxpQkFBTyxXQUFXO0FBQUEsUUFDcEIsT0FBTztBQUNMLGlCQUFPLE1BQU0sRUFBRSxPQUFPLE9BQU8sV0FBVyxHQUFHLENBQUM7QUFBQSxRQUM5QztBQUFBLE1BQ0Y7QUFBQSxJQUNGO0FBRUEsSUFBQVAsUUFBTyxVQUFVO0FBQUE7QUFBQTs7O0FDN21CakI7QUFBQSxzREFBQVUsVUFBQUMsU0FBQTtBQUFBO0FBT0EsUUFBTSxRQUFRO0FBQ2QsUUFBTSxRQUFRLFFBQVE7QUFrRHRCLFFBQU0sc0JBQU4sTUFBMEI7QUFBQSxNQUN4QixjQUFjO0FBQ1osYUFBSyxTQUFTO0FBQ2QsYUFBSyxNQUFNO0FBQ1gsYUFBSyxPQUFPLElBQUksTUFBTSxLQUFLO0FBQzNCLGFBQUssT0FBTztBQUFBLE1BQ2Q7QUFBQSxNQUVBLFVBQVU7QUFDUixlQUFPLEtBQUssUUFBUSxLQUFLO0FBQUEsTUFDM0I7QUFBQSxNQUVBLFNBQVM7QUFDUCxnQkFBUyxLQUFLLE1BQU0sSUFBSyxXQUFXLEtBQUs7QUFBQSxNQUMzQztBQUFBLE1BRUEsS0FBS0MsT0FBTTtBQUNULGFBQUssS0FBSyxLQUFLLEdBQUcsSUFBSUE7QUFDdEIsYUFBSyxNQUFPLEtBQUssTUFBTSxJQUFLO0FBQUEsTUFDOUI7QUFBQSxNQUVBLFFBQVE7QUFDTixjQUFNLFdBQVcsS0FBSyxLQUFLLEtBQUssTUFBTTtBQUN0QyxZQUFJLGFBQWE7QUFDZixpQkFBTztBQUNULGFBQUssS0FBSyxLQUFLLE1BQU0sSUFBSTtBQUN6QixhQUFLLFNBQVUsS0FBSyxTQUFTLElBQUs7QUFDbEMsZUFBTztBQUFBLE1BQ1Q7QUFBQSxJQUNGO0FBRUEsSUFBQUQsUUFBTyxVQUFVLE1BQU0sV0FBVztBQUFBLE1BQ2hDLGNBQWM7QUFDWixhQUFLLE9BQU8sS0FBSyxPQUFPLElBQUksb0JBQW9CO0FBQUEsTUFDbEQ7QUFBQSxNQUVBLFVBQVU7QUFDUixlQUFPLEtBQUssS0FBSyxRQUFRO0FBQUEsTUFDM0I7QUFBQSxNQUVBLEtBQUtDLE9BQU07QUFDVCxZQUFJLEtBQUssS0FBSyxPQUFPLEdBQUc7QUFHdEIsZUFBSyxPQUFPLEtBQUssS0FBSyxPQUFPLElBQUksb0JBQW9CO0FBQUEsUUFDdkQ7QUFDQSxhQUFLLEtBQUssS0FBS0EsS0FBSTtBQUFBLE1BQ3JCO0FBQUEsTUFFQSxRQUFRO0FBQ04sY0FBTSxPQUFPLEtBQUs7QUFDbEIsY0FBTUMsUUFBTyxLQUFLLE1BQU07QUFDeEIsWUFBSSxLQUFLLFFBQVEsS0FBSyxLQUFLLFNBQVMsTUFBTTtBQUV4QyxlQUFLLE9BQU8sS0FBSztBQUFBLFFBQ25CO0FBQ0EsZUFBT0E7QUFBQSxNQUNUO0FBQUEsSUFDRjtBQUFBO0FBQUE7OztBQ3BIQTtBQUFBLHFEQUFBQyxVQUFBQyxTQUFBO0FBQUEsUUFBTSxFQUFFLE9BQU8sWUFBWSxVQUFVLFNBQVMsVUFBVSxNQUFNLElBQUk7QUFDbEUsUUFBTSxRQUFRLE9BQU8sTUFBTTtBQUUzQixRQUFNLFlBQU4sTUFBZ0I7QUFBQSxNQUNkLFlBQWEsTUFBTTtBQUNqQixhQUFLLEtBQUssSUFBSTtBQUFBLE1BQ2hCO0FBQUEsTUFFQSxJQUFJLFlBQWE7QUFDZixlQUFPLEtBQUssS0FBSyxFQUFFLFVBQVU7QUFBQSxNQUMvQjtBQUFBLE1BRUEsSUFBSSxPQUFRO0FBQ1YsZUFBTyxLQUFLLEtBQUssRUFBRSxLQUFLO0FBQUEsTUFDMUI7QUFBQSxNQUVBLElBQUksVUFBVztBQUNiLGVBQU8sS0FBSyxLQUFLLEVBQUUsUUFBUTtBQUFBLE1BQzdCO0FBQUEsTUFFQSxJQUFJLFNBQVU7QUFDWixlQUFPLEtBQUssS0FBSyxFQUFFLE9BQU87QUFBQSxNQUM1QjtBQUFBLE1BRUEsSUFBSSxVQUFXO0FBQ2IsZUFBTyxLQUFLLEtBQUssRUFBRSxRQUFRO0FBQUEsTUFDN0I7QUFBQSxNQUVBLElBQUksT0FBUTtBQUNWLGVBQU8sS0FBSyxLQUFLLEVBQUUsS0FBSztBQUFBLE1BQzFCO0FBQUEsSUFDRjtBQUVBLElBQUFBLFFBQU8sVUFBVTtBQUFBO0FBQUE7OztBQ2pDakI7QUFBQSxvREFBQUMsVUFBQUMsU0FBQTtBQUFBO0FBRUEsUUFBTSxpQkFBaUI7QUFDdkIsUUFBTSxhQUFhO0FBQ25CLFFBQU0sRUFBRSxZQUFZLE9BQU8sVUFBVSxVQUFVLFNBQVMsT0FBTyxPQUFPLE1BQU0sUUFBUSxVQUFVLFVBQVUsSUFBSTtBQUM1RyxRQUFNLFlBQVk7QUFFbEIsUUFBTSxXQUFXLE9BQU8sU0FBUztBQUNqQyxRQUFNLGFBQWEsT0FBTyxXQUFXO0FBQ3JDLFFBQU0sU0FBUyxPQUFPLE9BQU87QUFDN0IsUUFBTSxpQkFBaUIsT0FBTyxnQkFBZ0I7QUFDOUMsUUFBTSxXQUFXLE9BQU8sU0FBUztBQUNqQyxRQUFNLGFBQWEsT0FBTyxXQUFXO0FBQ3JDLFFBQU0sZ0JBQWdCLE9BQU8sY0FBYztBQUMzQyxRQUFNLHFCQUFxQixPQUFPLG1CQUFtQjtBQUNyRCxRQUFNLGlCQUFpQixPQUFPLGdCQUFnQjtBQUM5QyxRQUFNLGFBQWEsT0FBTyxZQUFZO0FBQ3RDLFFBQU0sZ0JBQWdCLE9BQU8sZUFBZTtBQUM1QyxRQUFNLFNBQVMsT0FBTyxPQUFPO0FBRTdCLFFBQU0sV0FBTixjQUF1QixlQUFlO0FBQUEsTUFDcEMsY0FBZTtBQUNiLGNBQU07QUFFTixhQUFLLE1BQU0sSUFBSSxJQUFJLFdBQVc7QUFDOUIsYUFBSyxRQUFRLElBQUksQ0FBQztBQUNsQixhQUFLLE9BQU8sSUFBSTtBQUVoQixjQUFNLE9BQU87QUFFYixhQUFLLFFBQVEsSUFBSSxTQUFTLFFBQVNDLFNBQVEsU0FBUztBQUNsRCxnQkFBTSxRQUFRLEtBQUssTUFBTTtBQUV6QixjQUFJLFlBQVk7QUFFaEIsaUJBQU8sQ0FBQyxXQUFXO0FBQ2pCLGtCQUFNLE9BQU8sTUFBTSxNQUFNO0FBQ3pCLGdCQUFJLENBQUMsTUFBTTtBQUNUO0FBQUEsWUFDRjtBQUNBLGlCQUFLLE9BQU87QUFDWix3QkFBWSxDQUFDLEtBQUssU0FBUyxLQUFLLE1BQU0sS0FBSyxPQUFPO0FBQUEsVUFDcEQ7QUFFQSxlQUFLLFVBQVUsSUFBSTtBQUVuQixjQUFJLENBQUMsS0FBSyxVQUFVLEtBQUssS0FBSyxVQUFVLEdBQUc7QUFDekMsaUJBQUssVUFBVSxJQUFJO0FBQ25CLGlCQUFLLEtBQUssU0FBU0EsU0FBUSxDQUFDLE1BQU0sR0FBRyxPQUFPLENBQUM7QUFBQSxVQUMvQztBQUVBLGNBQUksS0FBSyxjQUFjLEtBQUssTUFBTSxRQUFRLEdBQUc7QUFDM0Msb0JBQ0csSUFBSSxLQUFLLFFBQVEsRUFBRSxJQUFJLE9BQUssRUFBRSxNQUFNLENBQUMsQ0FBQyxFQUN0QyxLQUFLLEtBQUssY0FBYyxDQUFDO0FBQUEsVUFDOUI7QUFBQSxRQUNGO0FBRUEsYUFBSyxVQUFVLElBQUksQ0FBQ0EsU0FBUSxZQUFZO0FBQ3RDLGVBQUssS0FBSyxXQUFXQSxTQUFRLENBQUMsTUFBTSxHQUFHLE9BQU8sQ0FBQztBQUFBLFFBQ2pEO0FBRUEsYUFBSyxhQUFhLElBQUksQ0FBQ0EsU0FBUSxTQUFTQyxTQUFRO0FBQzlDLGVBQUssS0FBSyxjQUFjRCxTQUFRLENBQUMsTUFBTSxHQUFHLE9BQU8sR0FBR0MsSUFBRztBQUFBLFFBQ3pEO0FBRUEsYUFBSyxrQkFBa0IsSUFBSSxDQUFDRCxTQUFRLFNBQVNDLFNBQVE7QUFDbkQsZUFBSyxLQUFLLG1CQUFtQkQsU0FBUSxDQUFDLE1BQU0sR0FBRyxPQUFPLEdBQUdDLElBQUc7QUFBQSxRQUM5RDtBQUVBLGFBQUssTUFBTSxJQUFJLElBQUksVUFBVSxJQUFJO0FBQUEsTUFDbkM7QUFBQSxNQUVBLEtBQUssS0FBSyxJQUFLO0FBQ2IsZUFBTyxLQUFLLFVBQVU7QUFBQSxNQUN4QjtBQUFBLE1BRUEsS0FBSyxVQUFVLElBQUs7QUFDbEIsZUFBTyxLQUFLLFFBQVEsRUFBRSxPQUFPLFlBQVUsT0FBTyxVQUFVLENBQUMsRUFBRTtBQUFBLE1BQzdEO0FBQUEsTUFFQSxLQUFLLEtBQUssSUFBSztBQUNiLGVBQU8sS0FBSyxRQUFRLEVBQUUsT0FBTyxZQUFVLE9BQU8sVUFBVSxLQUFLLENBQUMsT0FBTyxVQUFVLENBQUMsRUFBRTtBQUFBLE1BQ3BGO0FBQUEsTUFFQSxLQUFLLFFBQVEsSUFBSztBQUNoQixZQUFJLE1BQU0sS0FBSyxPQUFPO0FBQ3RCLG1CQUFXLEVBQUUsQ0FBQyxRQUFRLEdBQUcsUUFBUSxLQUFLLEtBQUssUUFBUSxHQUFHO0FBQ3BELGlCQUFPO0FBQUEsUUFDVDtBQUNBLGVBQU87QUFBQSxNQUNUO0FBQUEsTUFFQSxLQUFLLFFBQVEsSUFBSztBQUNoQixZQUFJLE1BQU07QUFDVixtQkFBVyxFQUFFLENBQUMsUUFBUSxHQUFHLFFBQVEsS0FBSyxLQUFLLFFBQVEsR0FBRztBQUNwRCxpQkFBTztBQUFBLFFBQ1Q7QUFDQSxlQUFPO0FBQUEsTUFDVDtBQUFBLE1BRUEsS0FBSyxLQUFLLElBQUs7QUFDYixZQUFJLE1BQU0sS0FBSyxPQUFPO0FBQ3RCLG1CQUFXLEVBQUUsQ0FBQyxLQUFLLEdBQUcsS0FBSyxLQUFLLEtBQUssUUFBUSxHQUFHO0FBQzlDLGlCQUFPO0FBQUEsUUFDVDtBQUNBLGVBQU87QUFBQSxNQUNUO0FBQUEsTUFFQSxJQUFJLFFBQVM7QUFDWCxlQUFPLEtBQUssTUFBTTtBQUFBLE1BQ3BCO0FBQUEsTUFFQSxPQUFPLE1BQU0sSUFBSztBQUNoQixZQUFJLEtBQUssTUFBTSxFQUFFLFFBQVEsR0FBRztBQUMxQixnQkFBTSxRQUFRLElBQUksS0FBSyxRQUFRLEVBQUUsSUFBSSxPQUFLLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFBQSxRQUN0RCxPQUFPO0FBQ0wsZ0JBQU0sSUFBSSxRQUFRLENBQUMsWUFBWTtBQUM3QixpQkFBSyxjQUFjLElBQUk7QUFBQSxVQUN6QixDQUFDO0FBQUEsUUFDSDtBQUFBLE1BQ0Y7QUFBQSxNQUVBLE9BQU8sUUFBUSxFQUFHQSxNQUFLO0FBQ3JCLGVBQU8sTUFBTTtBQUNYLGdCQUFNLE9BQU8sS0FBSyxNQUFNLEVBQUUsTUFBTTtBQUNoQyxjQUFJLENBQUMsTUFBTTtBQUNUO0FBQUEsVUFDRjtBQUNBLGVBQUssUUFBUSxRQUFRQSxJQUFHO0FBQUEsUUFDMUI7QUFFQSxjQUFNLFFBQVEsSUFBSSxLQUFLLFFBQVEsRUFBRSxJQUFJLE9BQUssRUFBRSxRQUFRQSxJQUFHLENBQUMsQ0FBQztBQUFBLE1BQzNEO0FBQUEsTUFFQSxDQUFDLFNBQVMsRUFBRyxNQUFNLFNBQVM7QUFDMUIsY0FBTSxhQUFhLEtBQUssY0FBYyxFQUFFO0FBRXhDLFlBQUksQ0FBQyxZQUFZO0FBQ2YsZUFBSyxVQUFVLElBQUk7QUFDbkIsZUFBSyxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQ25DLGVBQUssT0FBTztBQUFBLFFBQ2QsV0FBVyxDQUFDLFdBQVcsU0FBUyxNQUFNLE9BQU8sR0FBRztBQUM5QyxxQkFBVyxVQUFVLElBQUk7QUFDekIsZUFBSyxVQUFVLElBQUksQ0FBQyxLQUFLLGNBQWMsRUFBRTtBQUFBLFFBQzNDO0FBRUEsZUFBTyxDQUFDLEtBQUssVUFBVTtBQUFBLE1BQ3pCO0FBQUEsTUFFQSxDQUFDLFVBQVUsRUFBRyxRQUFRO0FBQ3BCLGVBQ0csR0FBRyxTQUFTLEtBQUssUUFBUSxDQUFDLEVBQzFCLEdBQUcsV0FBVyxLQUFLLFVBQVUsQ0FBQyxFQUM5QixHQUFHLGNBQWMsS0FBSyxhQUFhLENBQUMsRUFDcEMsR0FBRyxtQkFBbUIsS0FBSyxrQkFBa0IsQ0FBQztBQUVqRCxhQUFLLFFBQVEsRUFBRSxLQUFLLE1BQU07QUFFMUIsWUFBSSxLQUFLLFVBQVUsR0FBRztBQUNwQix5QkFBZSxNQUFNO0FBQ25CLGdCQUFJLEtBQUssVUFBVSxHQUFHO0FBQ3BCLG1CQUFLLFFBQVEsRUFBRSxPQUFPLElBQUksR0FBRyxDQUFDLE1BQU0sTUFBTSxDQUFDO0FBQUEsWUFDN0M7QUFBQSxVQUNGLENBQUM7QUFBQSxRQUNIO0FBRUEsZUFBTztBQUFBLE1BQ1Q7QUFBQSxNQUVBLENBQUMsYUFBYSxFQUFHLFFBQVE7QUFDdkIsZUFBTyxNQUFNLE1BQU07QUFDakIsZ0JBQU0sTUFBTSxLQUFLLFFBQVEsRUFBRSxRQUFRLE1BQU07QUFDekMsY0FBSSxRQUFRLElBQUk7QUFDZCxpQkFBSyxRQUFRLEVBQUUsT0FBTyxLQUFLLENBQUM7QUFBQSxVQUM5QjtBQUFBLFFBQ0YsQ0FBQztBQUVELGFBQUssVUFBVSxJQUFJLEtBQUssUUFBUSxFQUFFLEtBQUssZ0JBQ3JDLENBQUMsV0FBVyxVQUFVLEtBQ3RCLFdBQVcsV0FBVyxRQUN0QixXQUFXLGNBQWMsSUFDMUI7QUFBQSxNQUNIO0FBQUEsSUFDRjtBQUVBLElBQUFGLFFBQU8sVUFBVTtBQUFBLE1BQ2Y7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLElBQ0Y7QUFBQTtBQUFBOzs7QUNqTUE7QUFBQSwrQ0FBQUcsVUFBQUMsU0FBQTtBQUFBO0FBRUEsUUFBTTtBQUFBLE1BQ0o7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsSUFDRixJQUFJO0FBQ0osUUFBTSxTQUFTO0FBQ2YsUUFBTTtBQUFBLE1BQ0o7QUFBQSxJQUNGLElBQUk7QUFDSixRQUFNQyxRQUFPO0FBQ2IsUUFBTSxFQUFFLE1BQU0sY0FBYyxJQUFJO0FBQ2hDLFFBQU0saUJBQWlCO0FBRXZCLFFBQU0sV0FBVyxPQUFPLFNBQVM7QUFDakMsUUFBTSxlQUFlLE9BQU8sYUFBYTtBQUN6QyxRQUFNLFdBQVcsT0FBTyxTQUFTO0FBRWpDLGFBQVMsZUFBZ0JDLFNBQVEsTUFBTTtBQUNyQyxhQUFPLElBQUksT0FBT0EsU0FBUSxJQUFJO0FBQUEsSUFDaEM7QUFFQSxRQUFNLE9BQU4sY0FBbUIsU0FBUztBQUFBLE1BQzFCLFlBQWFBLFNBQVE7QUFBQSxRQUNuQjtBQUFBLFFBQ0EsVUFBVTtBQUFBLFFBQ1Y7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQSxHQUFHO0FBQUEsTUFDTCxJQUFJLENBQUMsR0FBRztBQUNOLGNBQU07QUFFTixZQUFJLGVBQWUsU0FBUyxDQUFDLE9BQU8sU0FBUyxXQUFXLEtBQUssY0FBYyxJQUFJO0FBQzdFLGdCQUFNLElBQUkscUJBQXFCLHFCQUFxQjtBQUFBLFFBQ3REO0FBRUEsWUFBSSxPQUFPLFlBQVksWUFBWTtBQUNqQyxnQkFBTSxJQUFJLHFCQUFxQiw2QkFBNkI7QUFBQSxRQUM5RDtBQUVBLFlBQUksV0FBVyxRQUFRLE9BQU8sWUFBWSxjQUFjLE9BQU8sWUFBWSxVQUFVO0FBQ25GLGdCQUFNLElBQUkscUJBQXFCLHlDQUF5QztBQUFBLFFBQzFFO0FBRUEsWUFBSSxPQUFPLFlBQVksWUFBWTtBQUNqQyxvQkFBVSxlQUFlO0FBQUEsWUFDdkIsR0FBRztBQUFBLFlBQ0g7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0EsU0FBUztBQUFBLFlBQ1QsR0FBSSxtQkFBbUIsRUFBRSxrQkFBa0IsK0JBQStCLElBQUk7QUFBQSxZQUM5RSxHQUFHO0FBQUEsVUFDTCxDQUFDO0FBQUEsUUFDSDtBQUVBLGFBQUssYUFBYSxJQUFJLFFBQVEsY0FBYyxRQUFRLE1BQU0sUUFBUSxRQUFRLGFBQWEsSUFBSSxJQUN2RixRQUFRLGFBQWEsT0FDckIsQ0FBQztBQUNMLGFBQUssWUFBWSxJQUFJLGVBQWU7QUFDcEMsYUFBSyxJQUFJLElBQUlELE1BQUssWUFBWUMsT0FBTTtBQUNwQyxhQUFLLFFBQVEsSUFBSSxFQUFFLEdBQUdELE1BQUssVUFBVSxPQUFPLEdBQUcsU0FBUyxRQUFRO0FBQ2hFLGFBQUssUUFBUSxFQUFFLGVBQWUsUUFBUSxlQUNsQyxFQUFFLEdBQUcsUUFBUSxhQUFhLElBQzFCO0FBQ0osYUFBSyxRQUFRLElBQUk7QUFFakIsYUFBSyxHQUFHLG1CQUFtQixDQUFDQyxTQUFRLFNBQVMsVUFBVTtBQUlyRCxxQkFBVyxVQUFVLFNBQVM7QUFHNUIsa0JBQU0sTUFBTSxLQUFLLFFBQVEsRUFBRSxRQUFRLE1BQU07QUFDekMsZ0JBQUksUUFBUSxJQUFJO0FBQ2QsbUJBQUssUUFBUSxFQUFFLE9BQU8sS0FBSyxDQUFDO0FBQUEsWUFDOUI7QUFBQSxVQUNGO0FBQUEsUUFDRixDQUFDO0FBQUEsTUFDSDtBQUFBLE1BRUEsQ0FBQyxjQUFjLElBQUs7QUFDbEIsbUJBQVcsVUFBVSxLQUFLLFFBQVEsR0FBRztBQUNuQyxjQUFJLENBQUMsT0FBTyxVQUFVLEdBQUc7QUFDdkIsbUJBQU87QUFBQSxVQUNUO0FBQUEsUUFDRjtBQUVBLFlBQUksQ0FBQyxLQUFLLFlBQVksS0FBSyxLQUFLLFFBQVEsRUFBRSxTQUFTLEtBQUssWUFBWSxHQUFHO0FBQ3JFLGdCQUFNLGFBQWEsS0FBSyxRQUFRLEVBQUUsS0FBSyxJQUFJLEdBQUcsS0FBSyxRQUFRLENBQUM7QUFDNUQsZUFBSyxVQUFVLEVBQUUsVUFBVTtBQUMzQixpQkFBTztBQUFBLFFBQ1Q7QUFBQSxNQUNGO0FBQUEsSUFDRjtBQUVBLElBQUFGLFFBQU8sVUFBVTtBQUFBO0FBQUE7OztBQzFHakI7QUFBQSx3REFBQUcsVUFBQUMsU0FBQTtBQUFBO0FBRUEsUUFBTTtBQUFBLE1BQ0o7QUFBQSxNQUNBO0FBQUEsSUFDRixJQUFJO0FBQ0osUUFBTTtBQUFBLE1BQ0o7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLElBQ0YsSUFBSTtBQUNKLFFBQU0sT0FBTztBQUNiLFFBQU0sRUFBRSxNQUFNLGNBQWMsSUFBSTtBQUNoQyxRQUFNLEVBQUUsWUFBWSxJQUFJO0FBQ3hCLFFBQU0sV0FBVyxPQUFPLFNBQVM7QUFFakMsUUFBTSxXQUFXLE9BQU8sU0FBUztBQUNqQyxRQUFNLHlCQUF5QixPQUFPLHdCQUF3QjtBQUM5RCxRQUFNLGlCQUFpQixPQUFPLGdCQUFnQjtBQUM5QyxRQUFNLFNBQVMsT0FBTyxRQUFRO0FBQzlCLFFBQU0sVUFBVSxPQUFPLFNBQVM7QUFDaEMsUUFBTSxzQkFBc0IsT0FBTyxxQkFBcUI7QUFDeEQsUUFBTSxnQkFBZ0IsT0FBTyxlQUFlO0FBVTVDLGFBQVMseUJBQTBCLEdBQUcsR0FBRztBQUN2QyxVQUFJLE1BQU0sRUFBRyxRQUFPO0FBRXBCLGFBQU8sTUFBTSxHQUFHO0FBQ2QsY0FBTSxJQUFJO0FBQ1YsWUFBSSxJQUFJO0FBQ1IsWUFBSTtBQUFBLE1BQ047QUFDQSxhQUFPO0FBQUEsSUFDVDtBQUVBLGFBQVMsZUFBZ0JDLFNBQVEsTUFBTTtBQUNyQyxhQUFPLElBQUksS0FBS0EsU0FBUSxJQUFJO0FBQUEsSUFDOUI7QUFFQSxRQUFNLGVBQU4sY0FBMkIsU0FBUztBQUFBLE1BQ2xDLFlBQWEsWUFBWSxDQUFDLEdBQUcsRUFBRSxVQUFVLGdCQUFnQixHQUFHLEtBQUssSUFBSSxDQUFDLEdBQUc7QUFDdkUsY0FBTTtBQUVOLGFBQUssUUFBUSxJQUFJO0FBQ2pCLGFBQUssTUFBTSxJQUFJO0FBQ2YsYUFBSyxjQUFjLElBQUk7QUFFdkIsYUFBSyxtQkFBbUIsSUFBSSxLQUFLLFFBQVEsRUFBRSxzQkFBc0I7QUFDakUsYUFBSyxhQUFhLElBQUksS0FBSyxRQUFRLEVBQUUsZ0JBQWdCO0FBRXJELFlBQUksQ0FBQyxNQUFNLFFBQVEsU0FBUyxHQUFHO0FBQzdCLHNCQUFZLENBQUMsU0FBUztBQUFBLFFBQ3hCO0FBRUEsWUFBSSxPQUFPLFlBQVksWUFBWTtBQUNqQyxnQkFBTSxJQUFJLHFCQUFxQiw2QkFBNkI7QUFBQSxRQUM5RDtBQUVBLGFBQUssYUFBYSxJQUFJLEtBQUssY0FBYyxnQkFBZ0IsTUFBTSxRQUFRLEtBQUssYUFBYSxZQUFZLElBQ2pHLEtBQUssYUFBYSxlQUNsQixDQUFDO0FBQ0wsYUFBSyxRQUFRLElBQUk7QUFFakIsbUJBQVcsWUFBWSxXQUFXO0FBQ2hDLGVBQUssWUFBWSxRQUFRO0FBQUEsUUFDM0I7QUFDQSxhQUFLLHlCQUF5QjtBQUFBLE1BQ2hDO0FBQUEsTUFFQSxZQUFhLFVBQVU7QUFDckIsY0FBTSxpQkFBaUIsWUFBWSxRQUFRLEVBQUU7QUFFN0MsWUFBSSxLQUFLLFFBQVEsRUFBRSxLQUFLLENBQUNDLFVBQ3ZCQSxNQUFLLElBQUksRUFBRSxXQUFXLGtCQUN0QkEsTUFBSyxXQUFXLFFBQ2hCQSxNQUFLLGNBQWMsSUFDcEIsR0FBRztBQUNGLGlCQUFPO0FBQUEsUUFDVDtBQUNBLGNBQU0sT0FBTyxLQUFLLFFBQVEsRUFBRSxnQkFBZ0IsT0FBTyxPQUFPLENBQUMsR0FBRyxLQUFLLFFBQVEsQ0FBQyxDQUFDO0FBRTdFLGFBQUssVUFBVSxFQUFFLElBQUk7QUFDckIsYUFBSyxHQUFHLFdBQVcsTUFBTTtBQUN2QixlQUFLLE9BQU8sSUFBSSxLQUFLLElBQUksS0FBSyxtQkFBbUIsR0FBRyxLQUFLLE9BQU8sSUFBSSxLQUFLLGFBQWEsQ0FBQztBQUFBLFFBQ3pGLENBQUM7QUFFRCxhQUFLLEdBQUcsbUJBQW1CLE1BQU07QUFDL0IsZUFBSyxPQUFPLElBQUksS0FBSyxJQUFJLEdBQUcsS0FBSyxPQUFPLElBQUksS0FBSyxhQUFhLENBQUM7QUFDL0QsZUFBSyx5QkFBeUI7QUFBQSxRQUNoQyxDQUFDO0FBRUQsYUFBSyxHQUFHLGNBQWMsSUFBSSxTQUFTO0FBQ2pDLGdCQUFNQyxPQUFNLEtBQUssQ0FBQztBQUNsQixjQUFJQSxRQUFPQSxLQUFJLFNBQVMsa0JBQWtCO0FBRXhDLGlCQUFLLE9BQU8sSUFBSSxLQUFLLElBQUksR0FBRyxLQUFLLE9BQU8sSUFBSSxLQUFLLGFBQWEsQ0FBQztBQUMvRCxpQkFBSyx5QkFBeUI7QUFBQSxVQUNoQztBQUFBLFFBQ0YsQ0FBQztBQUVELG1CQUFXLFVBQVUsS0FBSyxRQUFRLEdBQUc7QUFDbkMsaUJBQU8sT0FBTyxJQUFJLEtBQUssbUJBQW1CO0FBQUEsUUFDNUM7QUFFQSxhQUFLLHlCQUF5QjtBQUU5QixlQUFPO0FBQUEsTUFDVDtBQUFBLE1BRUEsMkJBQTRCO0FBQzFCLFlBQUksU0FBUztBQUNiLGlCQUFTLElBQUksR0FBRyxJQUFJLEtBQUssUUFBUSxFQUFFLFFBQVEsS0FBSztBQUM5QyxtQkFBUyx5QkFBeUIsS0FBSyxRQUFRLEVBQUUsQ0FBQyxFQUFFLE9BQU8sR0FBRyxNQUFNO0FBQUEsUUFDdEU7QUFFQSxhQUFLLHNCQUFzQixJQUFJO0FBQUEsTUFDakM7QUFBQSxNQUVBLGVBQWdCLFVBQVU7QUFDeEIsY0FBTSxpQkFBaUIsWUFBWSxRQUFRLEVBQUU7QUFFN0MsY0FBTSxPQUFPLEtBQUssUUFBUSxFQUFFLEtBQUssQ0FBQ0QsVUFDaENBLE1BQUssSUFBSSxFQUFFLFdBQVcsa0JBQ3RCQSxNQUFLLFdBQVcsUUFDaEJBLE1BQUssY0FBYyxJQUNwQjtBQUVELFlBQUksTUFBTTtBQUNSLGVBQUssYUFBYSxFQUFFLElBQUk7QUFBQSxRQUMxQjtBQUVBLGVBQU87QUFBQSxNQUNUO0FBQUEsTUFFQSxJQUFJLFlBQWE7QUFDZixlQUFPLEtBQUssUUFBUSxFQUNqQixPQUFPLGdCQUFjLFdBQVcsV0FBVyxRQUFRLFdBQVcsY0FBYyxJQUFJLEVBQ2hGLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLE1BQU07QUFBQSxNQUM5QjtBQUFBLE1BRUEsQ0FBQyxjQUFjLElBQUs7QUFJbEIsWUFBSSxLQUFLLFFBQVEsRUFBRSxXQUFXLEdBQUc7QUFDL0IsZ0JBQU0sSUFBSSxpQ0FBaUM7QUFBQSxRQUM3QztBQUVBLGNBQU0sYUFBYSxLQUFLLFFBQVEsRUFBRSxLQUFLLENBQUFFLGdCQUNyQyxDQUFDQSxZQUFXLFVBQVUsS0FDdEJBLFlBQVcsV0FBVyxRQUN0QkEsWUFBVyxjQUFjLElBQzFCO0FBRUQsWUFBSSxDQUFDLFlBQVk7QUFDZjtBQUFBLFFBQ0Y7QUFFQSxjQUFNLGlCQUFpQixLQUFLLFFBQVEsRUFBRSxJQUFJLFVBQVEsS0FBSyxVQUFVLENBQUMsRUFBRSxPQUFPLENBQUMsR0FBRyxNQUFNLEtBQUssR0FBRyxJQUFJO0FBRWpHLFlBQUksZ0JBQWdCO0FBQ2xCO0FBQUEsUUFDRjtBQUVBLFlBQUksVUFBVTtBQUVkLFlBQUksaUJBQWlCLEtBQUssUUFBUSxFQUFFLFVBQVUsVUFBUSxDQUFDLEtBQUssVUFBVSxDQUFDO0FBRXZFLGVBQU8sWUFBWSxLQUFLLFFBQVEsRUFBRSxRQUFRO0FBQ3hDLGVBQUssTUFBTSxLQUFLLEtBQUssTUFBTSxJQUFJLEtBQUssS0FBSyxRQUFRLEVBQUU7QUFDbkQsZ0JBQU0sT0FBTyxLQUFLLFFBQVEsRUFBRSxLQUFLLE1BQU0sQ0FBQztBQUd4QyxjQUFJLEtBQUssT0FBTyxJQUFJLEtBQUssUUFBUSxFQUFFLGNBQWMsRUFBRSxPQUFPLEtBQUssQ0FBQyxLQUFLLFVBQVUsR0FBRztBQUNoRiw2QkFBaUIsS0FBSyxNQUFNO0FBQUEsVUFDOUI7QUFHQSxjQUFJLEtBQUssTUFBTSxNQUFNLEdBQUc7QUFFdEIsaUJBQUssY0FBYyxJQUFJLEtBQUssY0FBYyxJQUFJLEtBQUssc0JBQXNCO0FBRXpFLGdCQUFJLEtBQUssY0FBYyxLQUFLLEdBQUc7QUFDN0IsbUJBQUssY0FBYyxJQUFJLEtBQUssbUJBQW1CO0FBQUEsWUFDakQ7QUFBQSxVQUNGO0FBQ0EsY0FBSSxLQUFLLE9BQU8sS0FBSyxLQUFLLGNBQWMsS0FBTSxDQUFDLEtBQUssVUFBVSxHQUFJO0FBQ2hFLG1CQUFPO0FBQUEsVUFDVDtBQUFBLFFBQ0Y7QUFFQSxhQUFLLGNBQWMsSUFBSSxLQUFLLFFBQVEsRUFBRSxjQUFjLEVBQUUsT0FBTztBQUM3RCxhQUFLLE1BQU0sSUFBSTtBQUNmLGVBQU8sS0FBSyxRQUFRLEVBQUUsY0FBYztBQUFBLE1BQ3RDO0FBQUEsSUFDRjtBQUVBLElBQUFKLFFBQU8sVUFBVTtBQUFBO0FBQUE7OztBQ2hOakI7QUFBQSxnREFBQUssVUFBQUMsU0FBQTtBQUFBO0FBRUEsUUFBTSxFQUFFLHFCQUFxQixJQUFJO0FBQ2pDLFFBQU0sRUFBRSxVQUFVLFVBQVUsUUFBUSxVQUFVLFdBQVcsY0FBYyxJQUFJO0FBQzNFLFFBQU0saUJBQWlCO0FBQ3ZCLFFBQU0sT0FBTztBQUNiLFFBQU0sU0FBUztBQUNmLFFBQU1DLFFBQU87QUFDYixRQUFNLDRCQUE0QjtBQUVsQyxRQUFNLGFBQWEsT0FBTyxXQUFXO0FBQ3JDLFFBQU0sZ0JBQWdCLE9BQU8sY0FBYztBQUMzQyxRQUFNLHFCQUFxQixPQUFPLG1CQUFtQjtBQUNyRCxRQUFNLG1CQUFtQixPQUFPLGlCQUFpQjtBQUNqRCxRQUFNLFdBQVcsT0FBTyxTQUFTO0FBQ2pDLFFBQU0sV0FBVyxPQUFPLFNBQVM7QUFDakMsUUFBTSxXQUFXLE9BQU8sU0FBUztBQUVqQyxhQUFTLGVBQWdCQyxTQUFRLE1BQU07QUFDckMsYUFBTyxRQUFRLEtBQUssZ0JBQWdCLElBQ2hDLElBQUksT0FBT0EsU0FBUSxJQUFJLElBQ3ZCLElBQUksS0FBS0EsU0FBUSxJQUFJO0FBQUEsSUFDM0I7QUFFQSxRQUFNLFFBQU4sY0FBb0IsZUFBZTtBQUFBLE1BQ2pDLFlBQWEsRUFBRSxVQUFVLGdCQUFnQixrQkFBa0IsR0FBRyxTQUFTLEdBQUcsUUFBUSxJQUFJLENBQUMsR0FBRztBQUN4RixjQUFNO0FBRU4sWUFBSSxPQUFPLFlBQVksWUFBWTtBQUNqQyxnQkFBTSxJQUFJLHFCQUFxQiw2QkFBNkI7QUFBQSxRQUM5RDtBQUVBLFlBQUksV0FBVyxRQUFRLE9BQU8sWUFBWSxjQUFjLE9BQU8sWUFBWSxVQUFVO0FBQ25GLGdCQUFNLElBQUkscUJBQXFCLHlDQUF5QztBQUFBLFFBQzFFO0FBRUEsWUFBSSxDQUFDLE9BQU8sVUFBVSxlQUFlLEtBQUssa0JBQWtCLEdBQUc7QUFDN0QsZ0JBQU0sSUFBSSxxQkFBcUIsMkNBQTJDO0FBQUEsUUFDNUU7QUFFQSxZQUFJLFdBQVcsT0FBTyxZQUFZLFlBQVk7QUFDNUMsb0JBQVUsRUFBRSxHQUFHLFFBQVE7QUFBQSxRQUN6QjtBQUVBLGFBQUssYUFBYSxJQUFJLFFBQVEsY0FBYyxTQUFTLE1BQU0sUUFBUSxRQUFRLGFBQWEsS0FBSyxJQUN6RixRQUFRLGFBQWEsUUFDckIsQ0FBQywwQkFBMEIsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO0FBRW5ELGFBQUssUUFBUSxJQUFJLEVBQUUsR0FBR0QsTUFBSyxVQUFVLE9BQU8sR0FBRyxRQUFRO0FBQ3ZELGFBQUssUUFBUSxFQUFFLGVBQWUsUUFBUSxlQUNsQyxFQUFFLEdBQUcsUUFBUSxhQUFhLElBQzFCO0FBQ0osYUFBSyxnQkFBZ0IsSUFBSTtBQUN6QixhQUFLLFFBQVEsSUFBSTtBQUNqQixhQUFLLFFBQVEsSUFBSSxvQkFBSSxJQUFJO0FBRXpCLGFBQUssUUFBUSxJQUFJLENBQUNDLFNBQVEsWUFBWTtBQUNwQyxlQUFLLEtBQUssU0FBU0EsU0FBUSxDQUFDLE1BQU0sR0FBRyxPQUFPLENBQUM7QUFBQSxRQUMvQztBQUVBLGFBQUssVUFBVSxJQUFJLENBQUNBLFNBQVEsWUFBWTtBQUN0QyxlQUFLLEtBQUssV0FBV0EsU0FBUSxDQUFDLE1BQU0sR0FBRyxPQUFPLENBQUM7QUFBQSxRQUNqRDtBQUVBLGFBQUssYUFBYSxJQUFJLENBQUNBLFNBQVEsU0FBU0MsU0FBUTtBQUM5QyxlQUFLLEtBQUssY0FBY0QsU0FBUSxDQUFDLE1BQU0sR0FBRyxPQUFPLEdBQUdDLElBQUc7QUFBQSxRQUN6RDtBQUVBLGFBQUssa0JBQWtCLElBQUksQ0FBQ0QsU0FBUSxTQUFTQyxTQUFRO0FBQ25ELGVBQUssS0FBSyxtQkFBbUJELFNBQVEsQ0FBQyxNQUFNLEdBQUcsT0FBTyxHQUFHQyxJQUFHO0FBQUEsUUFDOUQ7QUFBQSxNQUNGO0FBQUEsTUFFQSxLQUFLLFFBQVEsSUFBSztBQUNoQixZQUFJLE1BQU07QUFDVixtQkFBVyxVQUFVLEtBQUssUUFBUSxFQUFFLE9BQU8sR0FBRztBQUM1QyxpQkFBTyxPQUFPLFFBQVE7QUFBQSxRQUN4QjtBQUNBLGVBQU87QUFBQSxNQUNUO0FBQUEsTUFFQSxDQUFDLFNBQVMsRUFBRyxNQUFNLFNBQVM7QUFDMUIsWUFBSTtBQUNKLFlBQUksS0FBSyxXQUFXLE9BQU8sS0FBSyxXQUFXLFlBQVksS0FBSyxrQkFBa0IsTUFBTTtBQUNsRixnQkFBTSxPQUFPLEtBQUssTUFBTTtBQUFBLFFBQzFCLE9BQU87QUFDTCxnQkFBTSxJQUFJLHFCQUFxQixnREFBZ0Q7QUFBQSxRQUNqRjtBQUVBLFlBQUksYUFBYSxLQUFLLFFBQVEsRUFBRSxJQUFJLEdBQUc7QUFFdkMsWUFBSSxDQUFDLFlBQVk7QUFDZix1QkFBYSxLQUFLLFFBQVEsRUFBRSxLQUFLLFFBQVEsS0FBSyxRQUFRLENBQUMsRUFDcEQsR0FBRyxTQUFTLEtBQUssUUFBUSxDQUFDLEVBQzFCLEdBQUcsV0FBVyxLQUFLLFVBQVUsQ0FBQyxFQUM5QixHQUFHLGNBQWMsS0FBSyxhQUFhLENBQUMsRUFDcEMsR0FBRyxtQkFBbUIsS0FBSyxrQkFBa0IsQ0FBQztBQUtqRCxlQUFLLFFBQVEsRUFBRSxJQUFJLEtBQUssVUFBVTtBQUFBLFFBQ3BDO0FBRUEsZUFBTyxXQUFXLFNBQVMsTUFBTSxPQUFPO0FBQUEsTUFDMUM7QUFBQSxNQUVBLE9BQU8sTUFBTSxJQUFLO0FBQ2hCLGNBQU0sZ0JBQWdCLENBQUM7QUFDdkIsbUJBQVcsVUFBVSxLQUFLLFFBQVEsRUFBRSxPQUFPLEdBQUc7QUFDNUMsd0JBQWMsS0FBSyxPQUFPLE1BQU0sQ0FBQztBQUFBLFFBQ25DO0FBQ0EsYUFBSyxRQUFRLEVBQUUsTUFBTTtBQUVyQixjQUFNLFFBQVEsSUFBSSxhQUFhO0FBQUEsTUFDakM7QUFBQSxNQUVBLE9BQU8sUUFBUSxFQUFHQSxNQUFLO0FBQ3JCLGNBQU0sa0JBQWtCLENBQUM7QUFDekIsbUJBQVcsVUFBVSxLQUFLLFFBQVEsRUFBRSxPQUFPLEdBQUc7QUFDNUMsMEJBQWdCLEtBQUssT0FBTyxRQUFRQSxJQUFHLENBQUM7QUFBQSxRQUMxQztBQUNBLGFBQUssUUFBUSxFQUFFLE1BQU07QUFFckIsY0FBTSxRQUFRLElBQUksZUFBZTtBQUFBLE1BQ25DO0FBQUEsSUFDRjtBQUVBLElBQUFILFFBQU8sVUFBVTtBQUFBO0FBQUE7OztBQ2hJakI7QUFBQSxzREFBQUksVUFBQUMsU0FBQTtBQUFBO0FBRUEsUUFBTSxFQUFFLFFBQVEsUUFBUSxVQUFVLGNBQWMsSUFBSTtBQUNwRCxRQUFNLEVBQUUsS0FBQUMsS0FBSSxJQUFJLFFBQVEsVUFBVTtBQUNsQyxRQUFNLFFBQVE7QUFDZCxRQUFNLE9BQU87QUFDYixRQUFNLGlCQUFpQjtBQUN2QixRQUFNLEVBQUUsc0JBQXNCLHFCQUFxQiwyQkFBMkIsSUFBSTtBQUNsRixRQUFNLGlCQUFpQjtBQUV2QixRQUFNLFNBQVMsT0FBTyxhQUFhO0FBQ25DLFFBQU0sVUFBVSxPQUFPLGNBQWM7QUFDckMsUUFBTSxnQkFBZ0IsT0FBTyxlQUFlO0FBQzVDLFFBQU0sY0FBYyxPQUFPLHNCQUFzQjtBQUNqRCxRQUFNLFlBQVksT0FBTyxvQkFBb0I7QUFDN0MsUUFBTSxtQkFBbUIsT0FBTywyQkFBMkI7QUFFM0QsYUFBUyxvQkFBcUIsVUFBVTtBQUN0QyxhQUFPLGFBQWEsV0FBVyxNQUFNO0FBQUEsSUFDdkM7QUFFQSxhQUFTLGVBQWdCQyxTQUFRLE1BQU07QUFDckMsYUFBTyxJQUFJLEtBQUtBLFNBQVEsSUFBSTtBQUFBLElBQzlCO0FBRUEsUUFBTUMsUUFBTyxNQUFNO0FBQUEsSUFBQztBQUVwQixRQUFNLGFBQU4sY0FBeUIsZUFBZTtBQUFBLE1BQ3RDLFlBQWEsTUFBTTtBQUNqQixjQUFNO0FBRU4sWUFBSSxDQUFDLFFBQVMsT0FBTyxTQUFTLFlBQVksRUFBRSxnQkFBZ0JGLFNBQVEsQ0FBQyxLQUFLLEtBQU07QUFDOUUsZ0JBQU0sSUFBSSxxQkFBcUIsd0JBQXdCO0FBQUEsUUFDekQ7QUFFQSxjQUFNLEVBQUUsZ0JBQWdCLGVBQWUsSUFBSTtBQUMzQyxZQUFJLE9BQU8sa0JBQWtCLFlBQVk7QUFDdkMsZ0JBQU0sSUFBSSxxQkFBcUIsOENBQThDO0FBQUEsUUFDL0U7QUFFQSxjQUFNRyxPQUFNLEtBQUssUUFBUSxJQUFJO0FBQzdCLGNBQU0sRUFBRSxNQUFNLFFBQUFGLFNBQVEsTUFBTSxVQUFVLFVBQVUsVUFBVSxVQUFVLGNBQWMsSUFBSUU7QUFFdEYsYUFBSyxNQUFNLElBQUksRUFBRSxLQUFLLE1BQU0sU0FBUztBQUNyQyxhQUFLLGFBQWEsSUFBSSxLQUFLLGNBQWMsY0FBYyxNQUFNLFFBQVEsS0FBSyxhQUFhLFVBQVUsSUFDN0YsS0FBSyxhQUFhLGFBQ2xCLENBQUM7QUFDTCxhQUFLLFdBQVcsSUFBSSxLQUFLO0FBQ3pCLGFBQUssU0FBUyxJQUFJLEtBQUs7QUFDdkIsYUFBSyxhQUFhLElBQUksS0FBSyxXQUFXLENBQUM7QUFFdkMsWUFBSSxLQUFLLFFBQVEsS0FBSyxPQUFPO0FBQzNCLGdCQUFNLElBQUkscUJBQXFCLHlEQUF5RDtBQUFBLFFBQzFGLFdBQVcsS0FBSyxNQUFNO0FBRXBCLGVBQUssYUFBYSxFQUFFLHFCQUFxQixJQUFJLFNBQVMsS0FBSyxJQUFJO0FBQUEsUUFDakUsV0FBVyxLQUFLLE9BQU87QUFDckIsZUFBSyxhQUFhLEVBQUUscUJBQXFCLElBQUksS0FBSztBQUFBLFFBQ3BELFdBQVcsWUFBWSxVQUFVO0FBQy9CLGVBQUssYUFBYSxFQUFFLHFCQUFxQixJQUFJLFNBQVMsT0FBTyxLQUFLLEdBQUcsbUJBQW1CLFFBQVEsQ0FBQyxJQUFJLG1CQUFtQixRQUFRLENBQUMsRUFBRSxFQUFFLFNBQVMsUUFBUSxDQUFDO0FBQUEsUUFDeko7QUFFQSxjQUFNLFVBQVUsZUFBZSxFQUFFLEdBQUcsS0FBSyxTQUFTLENBQUM7QUFDbkQsYUFBSyxnQkFBZ0IsSUFBSSxlQUFlLEVBQUUsR0FBRyxLQUFLLFdBQVcsQ0FBQztBQUM5RCxhQUFLLE9BQU8sSUFBSSxjQUFjQSxNQUFLLEVBQUUsUUFBUSxDQUFDO0FBQzlDLGFBQUssTUFBTSxJQUFJLElBQUksTUFBTTtBQUFBLFVBQ3ZCLEdBQUc7QUFBQSxVQUNILFNBQVMsT0FBT0MsT0FBTSxhQUFhO0FBQ2pDLGdCQUFJLGdCQUFnQkEsTUFBSztBQUN6QixnQkFBSSxDQUFDQSxNQUFLLE1BQU07QUFDZCwrQkFBaUIsSUFBSSxvQkFBb0JBLE1BQUssUUFBUSxDQUFDO0FBQUEsWUFDekQ7QUFDQSxnQkFBSTtBQUNGLG9CQUFNLEVBQUUsUUFBUSxXQUFXLElBQUksTUFBTSxLQUFLLE9BQU8sRUFBRSxRQUFRO0FBQUEsZ0JBQ3pELFFBQUFIO0FBQUEsZ0JBQ0E7QUFBQSxnQkFDQSxNQUFNO0FBQUEsZ0JBQ04sUUFBUUcsTUFBSztBQUFBLGdCQUNiLFNBQVM7QUFBQSxrQkFDUCxHQUFHLEtBQUssYUFBYTtBQUFBLGtCQUNyQixNQUFNQSxNQUFLO0FBQUEsZ0JBQ2I7QUFBQSxnQkFDQSxZQUFZLEtBQUssU0FBUyxHQUFHLGNBQWM7QUFBQSxjQUM3QyxDQUFDO0FBQ0Qsa0JBQUksZUFBZSxLQUFLO0FBQ3RCLHVCQUFPLEdBQUcsU0FBU0YsS0FBSSxFQUFFLFFBQVE7QUFDakMseUJBQVMsSUFBSSxvQkFBb0IsbUJBQW1CLFVBQVUsK0JBQStCLENBQUM7QUFBQSxjQUNoRztBQUNBLGtCQUFJRSxNQUFLLGFBQWEsVUFBVTtBQUM5Qix5QkFBUyxNQUFNLE1BQU07QUFDckI7QUFBQSxjQUNGO0FBQ0Esa0JBQUk7QUFDSixrQkFBSSxLQUFLLFdBQVcsR0FBRztBQUNyQiw2QkFBYSxLQUFLLFdBQVcsRUFBRTtBQUFBLGNBQ2pDLE9BQU87QUFDTCw2QkFBYUEsTUFBSztBQUFBLGNBQ3BCO0FBQ0EsbUJBQUssZ0JBQWdCLEVBQUUsRUFBRSxHQUFHQSxPQUFNLFlBQVksWUFBWSxPQUFPLEdBQUcsUUFBUTtBQUFBLFlBQzlFLFNBQVNDLE1BQUs7QUFDWixrQkFBSUEsS0FBSSxTQUFTLGdDQUFnQztBQUUvQyx5QkFBUyxJQUFJLDJCQUEyQkEsSUFBRyxDQUFDO0FBQUEsY0FDOUMsT0FBTztBQUNMLHlCQUFTQSxJQUFHO0FBQUEsY0FDZDtBQUFBLFlBQ0Y7QUFBQSxVQUNGO0FBQUEsUUFDRixDQUFDO0FBQUEsTUFDSDtBQUFBLE1BRUEsU0FBVSxNQUFNLFNBQVM7QUFDdkIsY0FBTSxVQUFVLGFBQWEsS0FBSyxPQUFPO0FBQ3pDLCtCQUF1QixPQUFPO0FBRTlCLFlBQUksV0FBVyxFQUFFLFVBQVUsWUFBWSxFQUFFLFVBQVUsVUFBVTtBQUMzRCxnQkFBTSxFQUFFLEtBQUssSUFBSSxJQUFJTCxLQUFJLEtBQUssTUFBTTtBQUNwQyxrQkFBUSxPQUFPO0FBQUEsUUFDakI7QUFFQSxlQUFPLEtBQUssTUFBTSxFQUFFO0FBQUEsVUFDbEI7QUFBQSxZQUNFLEdBQUc7QUFBQSxZQUNIO0FBQUEsVUFDRjtBQUFBLFVBQ0E7QUFBQSxRQUNGO0FBQUEsTUFDRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsTUFNQSxRQUFTLE1BQU07QUFDYixZQUFJLE9BQU8sU0FBUyxVQUFVO0FBQzVCLGlCQUFPLElBQUlBLEtBQUksSUFBSTtBQUFBLFFBQ3JCLFdBQVcsZ0JBQWdCQSxNQUFLO0FBQzlCLGlCQUFPO0FBQUEsUUFDVCxPQUFPO0FBQ0wsaUJBQU8sSUFBSUEsS0FBSSxLQUFLLEdBQUc7QUFBQSxRQUN6QjtBQUFBLE1BQ0Y7QUFBQSxNQUVBLE9BQU8sTUFBTSxJQUFLO0FBQ2hCLGNBQU0sS0FBSyxNQUFNLEVBQUUsTUFBTTtBQUN6QixjQUFNLEtBQUssT0FBTyxFQUFFLE1BQU07QUFBQSxNQUM1QjtBQUFBLE1BRUEsT0FBTyxRQUFRLElBQUs7QUFDbEIsY0FBTSxLQUFLLE1BQU0sRUFBRSxRQUFRO0FBQzNCLGNBQU0sS0FBSyxPQUFPLEVBQUUsUUFBUTtBQUFBLE1BQzlCO0FBQUEsSUFDRjtBQU1BLGFBQVMsYUFBYyxTQUFTO0FBRzlCLFVBQUksTUFBTSxRQUFRLE9BQU8sR0FBRztBQUUxQixjQUFNLGNBQWMsQ0FBQztBQUVyQixpQkFBUyxJQUFJLEdBQUcsSUFBSSxRQUFRLFFBQVEsS0FBSyxHQUFHO0FBQzFDLHNCQUFZLFFBQVEsQ0FBQyxDQUFDLElBQUksUUFBUSxJQUFJLENBQUM7QUFBQSxRQUN6QztBQUVBLGVBQU87QUFBQSxNQUNUO0FBRUEsYUFBTztBQUFBLElBQ1Q7QUFVQSxhQUFTLHVCQUF3QixTQUFTO0FBQ3hDLFlBQU0saUJBQWlCLFdBQVcsT0FBTyxLQUFLLE9BQU8sRUFDbEQsS0FBSyxDQUFDLFFBQVEsSUFBSSxZQUFZLE1BQU0scUJBQXFCO0FBQzVELFVBQUksZ0JBQWdCO0FBQ2xCLGNBQU0sSUFBSSxxQkFBcUIsOERBQThEO0FBQUEsTUFDL0Y7QUFBQSxJQUNGO0FBRUEsSUFBQUQsUUFBTyxVQUFVO0FBQUE7QUFBQTs7O0FDL0xqQjtBQUFBLCtEQUFBTyxVQUFBQyxTQUFBO0FBQUE7QUFFQSxRQUFNLGlCQUFpQjtBQUN2QixRQUFNLEVBQUUsUUFBUSxVQUFVLFNBQVMsWUFBWSxXQUFXLGVBQWUsaUJBQWlCLGlCQUFpQixJQUFJO0FBQy9HLFFBQU0sYUFBYTtBQUNuQixRQUFNLFFBQVE7QUFFZCxRQUFNLGdCQUFnQjtBQUFBLE1BQ3BCLFNBQVM7QUFBQSxNQUNULFVBQVU7QUFBQSxJQUNaO0FBRUEsUUFBSSxxQkFBcUI7QUFFekIsUUFBTSxvQkFBTixjQUFnQyxlQUFlO0FBQUEsTUFDN0MsZ0JBQWdCO0FBQUEsTUFDaEIsa0JBQWtCO0FBQUEsTUFDbEIsUUFBUTtBQUFBLE1BRVIsWUFBYSxPQUFPLENBQUMsR0FBRztBQUN0QixjQUFNO0FBQ04sYUFBSyxRQUFRO0FBRWIsWUFBSSxDQUFDLG9CQUFvQjtBQUN2QiwrQkFBcUI7QUFDckIsa0JBQVEsWUFBWSx5RUFBeUU7QUFBQSxZQUMzRixNQUFNO0FBQUEsVUFDUixDQUFDO0FBQUEsUUFDSDtBQUVBLGNBQU0sRUFBRSxXQUFXLFlBQVksU0FBUyxHQUFHLFVBQVUsSUFBSTtBQUV6RCxhQUFLLGFBQWEsSUFBSSxJQUFJLE1BQU0sU0FBUztBQUV6QyxjQUFNLGFBQWEsYUFBYSxRQUFRLElBQUksY0FBYyxRQUFRLElBQUk7QUFDdEUsWUFBSSxZQUFZO0FBQ2QsZUFBSyxlQUFlLElBQUksSUFBSSxXQUFXLEVBQUUsR0FBRyxXQUFXLEtBQUssV0FBVyxDQUFDO0FBQUEsUUFDMUUsT0FBTztBQUNMLGVBQUssZUFBZSxJQUFJLEtBQUssYUFBYTtBQUFBLFFBQzVDO0FBRUEsY0FBTSxjQUFjLGNBQWMsUUFBUSxJQUFJLGVBQWUsUUFBUSxJQUFJO0FBQ3pFLFlBQUksYUFBYTtBQUNmLGVBQUssZ0JBQWdCLElBQUksSUFBSSxXQUFXLEVBQUUsR0FBRyxXQUFXLEtBQUssWUFBWSxDQUFDO0FBQUEsUUFDNUUsT0FBTztBQUNMLGVBQUssZ0JBQWdCLElBQUksS0FBSyxlQUFlO0FBQUEsUUFDL0M7QUFFQSxhQUFLLGNBQWM7QUFBQSxNQUNyQjtBQUFBLE1BRUEsQ0FBQyxTQUFTLEVBQUcsTUFBTSxTQUFTO0FBQzFCLGNBQU1DLE9BQU0sSUFBSSxJQUFJLEtBQUssTUFBTTtBQUMvQixjQUFNLFFBQVEsS0FBSyxxQkFBcUJBLElBQUc7QUFDM0MsZUFBTyxNQUFNLFNBQVMsTUFBTSxPQUFPO0FBQUEsTUFDckM7QUFBQSxNQUVBLE9BQU8sTUFBTSxJQUFLO0FBQ2hCLGNBQU0sS0FBSyxhQUFhLEVBQUUsTUFBTTtBQUNoQyxZQUFJLENBQUMsS0FBSyxlQUFlLEVBQUUsT0FBTyxHQUFHO0FBQ25DLGdCQUFNLEtBQUssZUFBZSxFQUFFLE1BQU07QUFBQSxRQUNwQztBQUNBLFlBQUksQ0FBQyxLQUFLLGdCQUFnQixFQUFFLE9BQU8sR0FBRztBQUNwQyxnQkFBTSxLQUFLLGdCQUFnQixFQUFFLE1BQU07QUFBQSxRQUNyQztBQUFBLE1BQ0Y7QUFBQSxNQUVBLE9BQU8sUUFBUSxFQUFHQyxNQUFLO0FBQ3JCLGNBQU0sS0FBSyxhQUFhLEVBQUUsUUFBUUEsSUFBRztBQUNyQyxZQUFJLENBQUMsS0FBSyxlQUFlLEVBQUUsVUFBVSxHQUFHO0FBQ3RDLGdCQUFNLEtBQUssZUFBZSxFQUFFLFFBQVFBLElBQUc7QUFBQSxRQUN6QztBQUNBLFlBQUksQ0FBQyxLQUFLLGdCQUFnQixFQUFFLFVBQVUsR0FBRztBQUN2QyxnQkFBTSxLQUFLLGdCQUFnQixFQUFFLFFBQVFBLElBQUc7QUFBQSxRQUMxQztBQUFBLE1BQ0Y7QUFBQSxNQUVBLHFCQUFzQkQsTUFBSztBQUN6QixZQUFJLEVBQUUsVUFBVSxNQUFNLFVBQVUsS0FBSyxJQUFJQTtBQUl6QyxtQkFBVyxTQUFTLFFBQVEsU0FBUyxFQUFFLEVBQUUsWUFBWTtBQUNyRCxlQUFPLE9BQU8sU0FBUyxNQUFNLEVBQUUsS0FBSyxjQUFjLFFBQVEsS0FBSztBQUMvRCxZQUFJLENBQUMsS0FBSyxhQUFhLFVBQVUsSUFBSSxHQUFHO0FBQ3RDLGlCQUFPLEtBQUssYUFBYTtBQUFBLFFBQzNCO0FBQ0EsWUFBSSxhQUFhLFVBQVU7QUFDekIsaUJBQU8sS0FBSyxnQkFBZ0I7QUFBQSxRQUM5QjtBQUNBLGVBQU8sS0FBSyxlQUFlO0FBQUEsTUFDN0I7QUFBQSxNQUVBLGFBQWMsVUFBVSxNQUFNO0FBQzVCLFlBQUksS0FBSyxpQkFBaUI7QUFDeEIsZUFBSyxjQUFjO0FBQUEsUUFDckI7QUFFQSxZQUFJLEtBQUssZ0JBQWdCLFdBQVcsR0FBRztBQUNyQyxpQkFBTztBQUFBLFFBQ1Q7QUFDQSxZQUFJLEtBQUssa0JBQWtCLEtBQUs7QUFDOUIsaUJBQU87QUFBQSxRQUNUO0FBRUEsaUJBQVMsSUFBSSxHQUFHLElBQUksS0FBSyxnQkFBZ0IsUUFBUSxLQUFLO0FBQ3BELGdCQUFNRSxTQUFRLEtBQUssZ0JBQWdCLENBQUM7QUFDcEMsY0FBSUEsT0FBTSxRQUFRQSxPQUFNLFNBQVMsTUFBTTtBQUNyQztBQUFBLFVBQ0Y7QUFDQSxjQUFJLENBQUMsUUFBUSxLQUFLQSxPQUFNLFFBQVEsR0FBRztBQUVqQyxnQkFBSSxhQUFhQSxPQUFNLFVBQVU7QUFDL0IscUJBQU87QUFBQSxZQUNUO0FBQUEsVUFDRixPQUFPO0FBRUwsZ0JBQUksU0FBUyxTQUFTQSxPQUFNLFNBQVMsUUFBUSxPQUFPLEVBQUUsQ0FBQyxHQUFHO0FBQ3hELHFCQUFPO0FBQUEsWUFDVDtBQUFBLFVBQ0Y7QUFBQSxRQUNGO0FBRUEsZUFBTztBQUFBLE1BQ1Q7QUFBQSxNQUVBLGdCQUFpQjtBQUNmLGNBQU0sZUFBZSxLQUFLLE1BQU0sV0FBVyxLQUFLO0FBQ2hELGNBQU0sZUFBZSxhQUFhLE1BQU0sT0FBTztBQUMvQyxjQUFNLGlCQUFpQixDQUFDO0FBRXhCLGlCQUFTLElBQUksR0FBRyxJQUFJLGFBQWEsUUFBUSxLQUFLO0FBQzVDLGdCQUFNQSxTQUFRLGFBQWEsQ0FBQztBQUM1QixjQUFJLENBQUNBLFFBQU87QUFDVjtBQUFBLFVBQ0Y7QUFDQSxnQkFBTSxTQUFTQSxPQUFNLE1BQU0sY0FBYztBQUN6Qyx5QkFBZSxLQUFLO0FBQUEsWUFDbEIsV0FBVyxTQUFTLE9BQU8sQ0FBQyxJQUFJQSxRQUFPLFlBQVk7QUFBQSxZQUNuRCxNQUFNLFNBQVMsT0FBTyxTQUFTLE9BQU8sQ0FBQyxHQUFHLEVBQUUsSUFBSTtBQUFBLFVBQ2xELENBQUM7QUFBQSxRQUNIO0FBRUEsYUFBSyxnQkFBZ0I7QUFDckIsYUFBSyxrQkFBa0I7QUFBQSxNQUN6QjtBQUFBLE1BRUEsSUFBSSxrQkFBbUI7QUFDckIsWUFBSSxLQUFLLE1BQU0sWUFBWSxRQUFXO0FBQ3BDLGlCQUFPO0FBQUEsUUFDVDtBQUNBLGVBQU8sS0FBSyxrQkFBa0IsS0FBSztBQUFBLE1BQ3JDO0FBQUEsTUFFQSxJQUFJLGNBQWU7QUFDakIsZUFBTyxRQUFRLElBQUksWUFBWSxRQUFRLElBQUksWUFBWTtBQUFBLE1BQ3pEO0FBQUEsSUFDRjtBQUVBLElBQUFILFFBQU8sVUFBVTtBQUFBO0FBQUE7OztBQy9KakI7QUFBQSxxREFBQUksVUFBQUMsU0FBQTtBQUFBO0FBQ0EsUUFBTSxTQUFTLFFBQVEsYUFBYTtBQUVwQyxRQUFNLEVBQUUsMEJBQTBCLElBQUk7QUFDdEMsUUFBTSxFQUFFLGtCQUFrQixJQUFJO0FBQzlCLFFBQU07QUFBQSxNQUNKO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsSUFDRixJQUFJO0FBRUosYUFBUywwQkFBMkIsWUFBWTtBQUM5QyxZQUFNLFVBQVUsS0FBSyxJQUFJO0FBQ3pCLGFBQU8sSUFBSSxLQUFLLFVBQVUsRUFBRSxRQUFRLElBQUk7QUFBQSxJQUMxQztBQUVBLFFBQU0sZUFBTixNQUFNLGNBQWE7QUFBQSxNQUNqQixZQUFhLE1BQU0sVUFBVTtBQUMzQixjQUFNLEVBQUUsY0FBYyxHQUFHLGFBQWEsSUFBSTtBQUMxQyxjQUFNO0FBQUE7QUFBQSxVQUVKLE9BQU87QUFBQSxVQUNQO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUE7QUFBQSxVQUVBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsUUFDRixJQUFJLGdCQUFnQixDQUFDO0FBRXJCLGFBQUssV0FBVyxTQUFTO0FBQ3pCLGFBQUssVUFBVSxTQUFTO0FBQ3hCLGFBQUssT0FBTyxFQUFFLEdBQUcsY0FBYyxNQUFNLGdCQUFnQixLQUFLLElBQUksRUFBRTtBQUNoRSxhQUFLLFFBQVE7QUFDYixhQUFLLFVBQVU7QUFDZixhQUFLLFlBQVk7QUFBQSxVQUNmLE9BQU8sV0FBVyxjQUFhLHlCQUF5QjtBQUFBLFVBQ3hELFlBQVksY0FBYztBQUFBLFVBQzFCLFlBQVksY0FBYyxLQUFLO0FBQUE7QUFBQSxVQUMvQixZQUFZLGNBQWM7QUFBQTtBQUFBLFVBQzFCLGVBQWUsaUJBQWlCO0FBQUEsVUFDaEMsWUFBWSxjQUFjO0FBQUE7QUFBQSxVQUUxQixTQUFTLFdBQVcsQ0FBQyxPQUFPLFFBQVEsV0FBVyxPQUFPLFVBQVUsT0FBTztBQUFBO0FBQUEsVUFFdkUsYUFBYSxlQUFlLENBQUMsS0FBSyxLQUFLLEtBQUssS0FBSyxHQUFHO0FBQUE7QUFBQSxVQUVwRCxZQUFZLGNBQWM7QUFBQSxZQUN4QjtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsVUFDRjtBQUFBLFFBQ0Y7QUFFQSxhQUFLLGFBQWE7QUFDbEIsYUFBSyx1QkFBdUI7QUFDNUIsYUFBSyxRQUFRO0FBQ2IsYUFBSyxNQUFNO0FBQ1gsYUFBSyxPQUFPO0FBQ1osYUFBSyxTQUFTO0FBR2QsYUFBSyxRQUFRLFVBQVUsWUFBVTtBQUMvQixlQUFLLFVBQVU7QUFDZixjQUFJLEtBQUssT0FBTztBQUNkLGlCQUFLLE1BQU0sTUFBTTtBQUFBLFVBQ25CLE9BQU87QUFDTCxpQkFBSyxTQUFTO0FBQUEsVUFDaEI7QUFBQSxRQUNGLENBQUM7QUFBQSxNQUNIO0FBQUEsTUFFQSxnQkFBaUI7QUFDZixZQUFJLEtBQUssUUFBUSxlQUFlO0FBQzlCLGVBQUssUUFBUSxjQUFjO0FBQUEsUUFDN0I7QUFBQSxNQUNGO0FBQUEsTUFFQSxVQUFXLFlBQVksU0FBUyxRQUFRO0FBQ3RDLFlBQUksS0FBSyxRQUFRLFdBQVc7QUFDMUIsZUFBSyxRQUFRLFVBQVUsWUFBWSxTQUFTLE1BQU07QUFBQSxRQUNwRDtBQUFBLE1BQ0Y7QUFBQSxNQUVBLFVBQVcsT0FBTztBQUNoQixZQUFJLEtBQUssU0FBUztBQUNoQixnQkFBTSxLQUFLLE1BQU07QUFBQSxRQUNuQixPQUFPO0FBQ0wsZUFBSyxRQUFRO0FBQUEsUUFDZjtBQUFBLE1BQ0Y7QUFBQSxNQUVBLFdBQVksT0FBTztBQUNqQixZQUFJLEtBQUssUUFBUSxXQUFZLFFBQU8sS0FBSyxRQUFRLFdBQVcsS0FBSztBQUFBLE1BQ25FO0FBQUEsTUFFQSxRQUFRLHlCQUF5QixFQUFHQyxNQUFLLEVBQUUsT0FBTyxLQUFLLEdBQUcsSUFBSTtBQUM1RCxjQUFNLEVBQUUsWUFBWSxNQUFNLFFBQVEsSUFBSUE7QUFDdEMsY0FBTSxFQUFFLFFBQVEsYUFBYSxJQUFJO0FBQ2pDLGNBQU07QUFBQSxVQUNKO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsUUFDRixJQUFJO0FBQ0osY0FBTSxFQUFFLFFBQVEsSUFBSTtBQUdwQixZQUFJLFFBQVEsU0FBUyx1QkFBdUIsQ0FBQyxXQUFXLFNBQVMsSUFBSSxHQUFHO0FBQ3RFLGFBQUdBLElBQUc7QUFDTjtBQUFBLFFBQ0Y7QUFHQSxZQUFJLE1BQU0sUUFBUSxPQUFPLEtBQUssQ0FBQyxRQUFRLFNBQVMsTUFBTSxHQUFHO0FBQ3ZELGFBQUdBLElBQUc7QUFDTjtBQUFBLFFBQ0Y7QUFHQSxZQUNFLGNBQWMsUUFDZCxNQUFNLFFBQVEsV0FBVyxLQUN6QixDQUFDLFlBQVksU0FBUyxVQUFVLEdBQ2hDO0FBQ0EsYUFBR0EsSUFBRztBQUNOO0FBQUEsUUFDRjtBQUdBLFlBQUksVUFBVSxZQUFZO0FBQ3hCLGFBQUdBLElBQUc7QUFDTjtBQUFBLFFBQ0Y7QUFFQSxZQUFJLG1CQUFtQixVQUFVLGFBQWE7QUFDOUMsWUFBSSxrQkFBa0I7QUFDcEIsNkJBQW1CLE9BQU8sZ0JBQWdCO0FBQzFDLDZCQUFtQixPQUFPLE1BQU0sZ0JBQWdCLElBQzVDLDBCQUEwQixnQkFBZ0IsSUFDMUMsbUJBQW1CO0FBQUEsUUFDekI7QUFFQSxjQUFNLGVBQ0osbUJBQW1CLElBQ2YsS0FBSyxJQUFJLGtCQUFrQixVQUFVLElBQ3JDLEtBQUssSUFBSSxhQUFhLGtCQUFrQixVQUFVLElBQUksVUFBVTtBQUV0RSxtQkFBVyxNQUFNLEdBQUcsSUFBSSxHQUFHLFlBQVk7QUFBQSxNQUN6QztBQUFBLE1BRUEsVUFBVyxZQUFZLFlBQVksUUFBUSxlQUFlO0FBQ3hELGNBQU0sVUFBVSxhQUFhLFVBQVU7QUFFdkMsYUFBSyxjQUFjO0FBRW5CLFlBQUksY0FBYyxLQUFLO0FBQ3JCLGNBQUksS0FBSyxVQUFVLFlBQVksU0FBUyxVQUFVLE1BQU0sT0FBTztBQUM3RCxtQkFBTyxLQUFLLFFBQVE7QUFBQSxjQUNsQjtBQUFBLGNBQ0E7QUFBQSxjQUNBO0FBQUEsY0FDQTtBQUFBLFlBQ0Y7QUFBQSxVQUNGLE9BQU87QUFDTCxpQkFBSztBQUFBLGNBQ0gsSUFBSSxrQkFBa0Isa0JBQWtCLFlBQVk7QUFBQSxnQkFDbEQ7QUFBQSxnQkFDQSxNQUFNO0FBQUEsa0JBQ0osT0FBTyxLQUFLO0FBQUEsZ0JBQ2Q7QUFBQSxjQUNGLENBQUM7QUFBQSxZQUNIO0FBQ0EsbUJBQU87QUFBQSxVQUNUO0FBQUEsUUFDRjtBQUdBLFlBQUksS0FBSyxVQUFVLE1BQU07QUFDdkIsZUFBSyxTQUFTO0FBTWQsY0FBSSxlQUFlLFFBQVEsS0FBSyxRQUFRLEtBQUssZUFBZSxNQUFNO0FBQ2hFLGlCQUFLO0FBQUEsY0FDSCxJQUFJLGtCQUFrQixtRkFBbUYsWUFBWTtBQUFBLGdCQUNuSDtBQUFBLGdCQUNBLE1BQU0sRUFBRSxPQUFPLEtBQUssV0FBVztBQUFBLGNBQ2pDLENBQUM7QUFBQSxZQUNIO0FBQ0EsbUJBQU87QUFBQSxVQUNUO0FBRUEsZ0JBQU0sZUFBZSxpQkFBaUIsUUFBUSxlQUFlLENBQUM7QUFFOUQsY0FBSSxDQUFDLGNBQWM7QUFDakIsaUJBQUs7QUFBQSxjQUNILElBQUksa0JBQWtCLDBCQUEwQixZQUFZO0FBQUEsZ0JBQzFEO0FBQUEsZ0JBQ0EsTUFBTSxFQUFFLE9BQU8sS0FBSyxXQUFXO0FBQUEsY0FDakMsQ0FBQztBQUFBLFlBQ0g7QUFDQSxtQkFBTztBQUFBLFVBQ1Q7QUFHQSxjQUFJLEtBQUssUUFBUSxRQUFRLEtBQUssU0FBUyxRQUFRLE1BQU07QUFDbkQsaUJBQUs7QUFBQSxjQUNILElBQUksa0JBQWtCLGlCQUFpQixZQUFZO0FBQUEsZ0JBQ2pEO0FBQUEsZ0JBQ0EsTUFBTSxFQUFFLE9BQU8sS0FBSyxXQUFXO0FBQUEsY0FDakMsQ0FBQztBQUFBLFlBQ0g7QUFDQSxtQkFBTztBQUFBLFVBQ1Q7QUFFQSxnQkFBTSxFQUFFLE9BQU8sTUFBTSxLQUFBQyxPQUFNLE9BQU8sRUFBRSxJQUFJO0FBRXhDLGlCQUFPLEtBQUssVUFBVSxPQUFPLHdCQUF3QjtBQUNyRCxpQkFBTyxLQUFLLE9BQU8sUUFBUSxLQUFLLFFBQVFBLE1BQUssd0JBQXdCO0FBRXJFLGVBQUssU0FBUztBQUNkLGlCQUFPO0FBQUEsUUFDVDtBQUVBLFlBQUksS0FBSyxPQUFPLE1BQU07QUFDcEIsY0FBSSxlQUFlLEtBQUs7QUFFdEIsa0JBQU0sUUFBUSxpQkFBaUIsUUFBUSxlQUFlLENBQUM7QUFFdkQsZ0JBQUksU0FBUyxNQUFNO0FBQ2pCLHFCQUFPLEtBQUssUUFBUTtBQUFBLGdCQUNsQjtBQUFBLGdCQUNBO0FBQUEsZ0JBQ0E7QUFBQSxnQkFDQTtBQUFBLGNBQ0Y7QUFBQSxZQUNGO0FBRUEsa0JBQU0sRUFBRSxPQUFPLE1BQU0sS0FBQUEsT0FBTSxPQUFPLEVBQUUsSUFBSTtBQUN4QztBQUFBLGNBQ0UsU0FBUyxRQUFRLE9BQU8sU0FBUyxLQUFLO0FBQUEsY0FDdEM7QUFBQSxZQUNGO0FBQ0EsbUJBQU9BLFFBQU8sUUFBUSxPQUFPLFNBQVNBLElBQUcsR0FBRyx3QkFBd0I7QUFFcEUsaUJBQUssUUFBUTtBQUNiLGlCQUFLLE1BQU1BO0FBQUEsVUFDYjtBQUdBLGNBQUksS0FBSyxPQUFPLE1BQU07QUFDcEIsa0JBQU0sZ0JBQWdCLFFBQVEsZ0JBQWdCO0FBQzlDLGlCQUFLLE1BQU0saUJBQWlCLE9BQU8sT0FBTyxhQUFhLElBQUksSUFBSTtBQUFBLFVBQ2pFO0FBRUEsaUJBQU8sT0FBTyxTQUFTLEtBQUssS0FBSyxDQUFDO0FBQ2xDO0FBQUEsWUFDRSxLQUFLLE9BQU8sUUFBUSxPQUFPLFNBQVMsS0FBSyxHQUFHO0FBQUEsWUFDNUM7QUFBQSxVQUNGO0FBRUEsZUFBSyxTQUFTO0FBQ2QsZUFBSyxPQUFPLFFBQVEsUUFBUSxPQUFPLFFBQVEsT0FBTztBQUtsRCxjQUFJLEtBQUssUUFBUSxRQUFRLEtBQUssS0FBSyxXQUFXLElBQUksR0FBRztBQUNuRCxpQkFBSyxPQUFPO0FBQUEsVUFDZDtBQUVBLGlCQUFPLEtBQUssUUFBUTtBQUFBLFlBQ2xCO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsVUFDRjtBQUFBLFFBQ0Y7QUFFQSxjQUFNRCxPQUFNLElBQUksa0JBQWtCLGtCQUFrQixZQUFZO0FBQUEsVUFDOUQ7QUFBQSxVQUNBLE1BQU0sRUFBRSxPQUFPLEtBQUssV0FBVztBQUFBLFFBQ2pDLENBQUM7QUFFRCxhQUFLLE1BQU1BLElBQUc7QUFFZCxlQUFPO0FBQUEsTUFDVDtBQUFBLE1BRUEsT0FBUSxPQUFPO0FBQ2IsYUFBSyxTQUFTLE1BQU07QUFFcEIsZUFBTyxLQUFLLFFBQVEsT0FBTyxLQUFLO0FBQUEsTUFDbEM7QUFBQSxNQUVBLFdBQVksYUFBYTtBQUN2QixhQUFLLGFBQWE7QUFDbEIsZUFBTyxLQUFLLFFBQVEsV0FBVyxXQUFXO0FBQUEsTUFDNUM7QUFBQSxNQUVBLFFBQVNBLE1BQUs7QUFDWixZQUFJLEtBQUssV0FBVyxZQUFZLEtBQUssS0FBSyxJQUFJLEdBQUc7QUFDL0MsaUJBQU8sS0FBSyxRQUFRLFFBQVFBLElBQUc7QUFBQSxRQUNqQztBQUlBLFlBQUksS0FBSyxhQUFhLEtBQUssdUJBQXVCLEdBQUc7QUFFbkQsZUFBSyxhQUNILEtBQUssd0JBQ0osS0FBSyxhQUFhLEtBQUs7QUFBQSxRQUM1QixPQUFPO0FBQ0wsZUFBSyxjQUFjO0FBQUEsUUFDckI7QUFFQSxhQUFLLFVBQVU7QUFBQSxVQUNiQTtBQUFBLFVBQ0E7QUFBQSxZQUNFLE9BQU8sRUFBRSxTQUFTLEtBQUssV0FBVztBQUFBLFlBQ2xDLE1BQU0sRUFBRSxjQUFjLEtBQUssV0FBVyxHQUFHLEtBQUssS0FBSztBQUFBLFVBQ3JEO0FBQUEsVUFDQSxRQUFRLEtBQUssSUFBSTtBQUFBLFFBQ25CO0FBRUEsaUJBQVMsUUFBU0EsTUFBSztBQUNyQixjQUFJQSxRQUFPLFFBQVEsS0FBSyxXQUFXLFlBQVksS0FBSyxLQUFLLElBQUksR0FBRztBQUM5RCxtQkFBTyxLQUFLLFFBQVEsUUFBUUEsSUFBRztBQUFBLFVBQ2pDO0FBRUEsY0FBSSxLQUFLLFVBQVUsR0FBRztBQUNwQixrQkFBTSxVQUFVLEVBQUUsT0FBTyxTQUFTLEtBQUssS0FBSyxJQUFJLEtBQUssT0FBTyxFQUFFLEdBQUc7QUFHakUsZ0JBQUksS0FBSyxRQUFRLE1BQU07QUFDckIsc0JBQVEsVUFBVSxJQUFJLEtBQUs7QUFBQSxZQUM3QjtBQUVBLGlCQUFLLE9BQU87QUFBQSxjQUNWLEdBQUcsS0FBSztBQUFBLGNBQ1IsU0FBUztBQUFBLGdCQUNQLEdBQUcsS0FBSyxLQUFLO0FBQUEsZ0JBQ2IsR0FBRztBQUFBLGNBQ0w7QUFBQSxZQUNGO0FBQUEsVUFDRjtBQUVBLGNBQUk7QUFDRixpQkFBSyx1QkFBdUIsS0FBSztBQUNqQyxpQkFBSyxTQUFTLEtBQUssTUFBTSxJQUFJO0FBQUEsVUFDL0IsU0FBU0EsTUFBSztBQUNaLGlCQUFLLFFBQVEsUUFBUUEsSUFBRztBQUFBLFVBQzFCO0FBQUEsUUFDRjtBQUFBLE1BQ0Y7QUFBQSxJQUNGO0FBRUEsSUFBQUQsUUFBTyxVQUFVO0FBQUE7QUFBQTs7O0FDclhqQjtBQUFBLHNEQUFBRyxVQUFBQyxTQUFBO0FBQUE7QUFFQSxRQUFNLGFBQWE7QUFDbkIsUUFBTSxlQUFlO0FBRXJCLFFBQU0sYUFBTixjQUF5QixXQUFXO0FBQUEsTUFDbEMsU0FBUztBQUFBLE1BQ1QsV0FBVztBQUFBLE1BQ1gsWUFBYSxPQUFPLFVBQVUsQ0FBQyxHQUFHO0FBQ2hDLGNBQU0sT0FBTztBQUNiLGFBQUssU0FBUztBQUNkLGFBQUssV0FBVztBQUFBLE1BQ2xCO0FBQUEsTUFFQSxTQUFVLE1BQU0sU0FBUztBQUN2QixjQUFNLFFBQVEsSUFBSSxhQUFhO0FBQUEsVUFDN0IsR0FBRztBQUFBLFVBQ0gsY0FBYyxLQUFLO0FBQUEsUUFDckIsR0FBRztBQUFBLFVBQ0QsVUFBVSxLQUFLLE9BQU8sU0FBUyxLQUFLLEtBQUssTUFBTTtBQUFBLFVBQy9DO0FBQUEsUUFDRixDQUFDO0FBQ0QsZUFBTyxLQUFLLE9BQU8sU0FBUyxNQUFNLEtBQUs7QUFBQSxNQUN6QztBQUFBLE1BRUEsUUFBUztBQUNQLGVBQU8sS0FBSyxPQUFPLE1BQU07QUFBQSxNQUMzQjtBQUFBLE1BRUEsVUFBVztBQUNULGVBQU8sS0FBSyxPQUFPLFFBQVE7QUFBQSxNQUM3QjtBQUFBLElBQ0Y7QUFFQSxJQUFBQSxRQUFPLFVBQVU7QUFBQTtBQUFBOzs7QUNsQ2pCO0FBQUEsNENBQUFDLFVBQUFDLFNBQUE7QUFBQTtBQUlBLFFBQU0sU0FBUyxRQUFRLGFBQWE7QUFDcEMsUUFBTSxFQUFFLFVBQUFDLFVBQVMsSUFBSSxRQUFRLGFBQWE7QUFDMUMsUUFBTSxFQUFFLHFCQUFxQixtQkFBbUIsc0JBQXNCLFdBQVcsSUFBSTtBQUNyRixRQUFNQyxRQUFPO0FBQ2IsUUFBTSxFQUFFLG1CQUFtQixJQUFJO0FBRS9CLFFBQU0sV0FBVyxPQUFPLFVBQVU7QUFDbEMsUUFBTSxXQUFXLE9BQU8sVUFBVTtBQUNsQyxRQUFNLFFBQVEsT0FBTyxPQUFPO0FBQzVCLFFBQU0sU0FBUyxPQUFPLFFBQVE7QUFDOUIsUUFBTSxlQUFlLE9BQU8sY0FBYztBQUMxQyxRQUFNLGlCQUFpQixPQUFPLGdCQUFnQjtBQUU5QyxRQUFNQyxRQUFPLE1BQU07QUFBQSxJQUFDO0FBRXBCLFFBQU0sZUFBTixjQUEyQkYsVUFBUztBQUFBLE1BQ2xDLFlBQWE7QUFBQSxRQUNYO0FBQUEsUUFDQTtBQUFBLFFBQ0EsY0FBYztBQUFBLFFBQ2Q7QUFBQSxRQUNBLGdCQUFnQixLQUFLO0FBQUE7QUFBQSxNQUN2QixHQUFHO0FBQ0QsY0FBTTtBQUFBLFVBQ0osYUFBYTtBQUFBLFVBQ2IsTUFBTTtBQUFBLFVBQ047QUFBQSxRQUNGLENBQUM7QUFFRCxhQUFLLGVBQWUsY0FBYztBQUVsQyxhQUFLLE1BQU0sSUFBSTtBQUNmLGFBQUssUUFBUSxJQUFJO0FBQ2pCLGFBQUssS0FBSyxJQUFJO0FBQ2QsYUFBSyxZQUFZLElBQUk7QUFDckIsYUFBSyxjQUFjLElBQUk7QUFNdkIsYUFBSyxRQUFRLElBQUk7QUFBQSxNQUNuQjtBQUFBLE1BRUEsUUFBU0csTUFBSztBQUNaLFlBQUksQ0FBQ0EsUUFBTyxDQUFDLEtBQUssZUFBZSxZQUFZO0FBQzNDLFVBQUFBLE9BQU0sSUFBSSxvQkFBb0I7QUFBQSxRQUNoQztBQUVBLFlBQUlBLE1BQUs7QUFDUCxlQUFLLE1BQU0sRUFBRTtBQUFBLFFBQ2Y7QUFFQSxlQUFPLE1BQU0sUUFBUUEsSUFBRztBQUFBLE1BQzFCO0FBQUEsTUFFQSxTQUFVQSxNQUFLLFVBQVU7QUFLdkIsWUFBSSxDQUFDLEtBQUssUUFBUSxHQUFHO0FBQ25CLHVCQUFhLE1BQU07QUFDakIscUJBQVNBLElBQUc7QUFBQSxVQUNkLENBQUM7QUFBQSxRQUNILE9BQU87QUFDTCxtQkFBU0EsSUFBRztBQUFBLFFBQ2Q7QUFBQSxNQUNGO0FBQUEsTUFFQSxHQUFJLE9BQU8sTUFBTTtBQUNmLFlBQUksT0FBTyxVQUFVLE9BQU8sWUFBWTtBQUN0QyxlQUFLLFFBQVEsSUFBSTtBQUFBLFFBQ25CO0FBQ0EsZUFBTyxNQUFNLEdBQUcsSUFBSSxHQUFHLElBQUk7QUFBQSxNQUM3QjtBQUFBLE1BRUEsWUFBYSxPQUFPLE1BQU07QUFDeEIsZUFBTyxLQUFLLEdBQUcsSUFBSSxHQUFHLElBQUk7QUFBQSxNQUM1QjtBQUFBLE1BRUEsSUFBSyxPQUFPLE1BQU07QUFDaEIsY0FBTSxNQUFNLE1BQU0sSUFBSSxJQUFJLEdBQUcsSUFBSTtBQUNqQyxZQUFJLE9BQU8sVUFBVSxPQUFPLFlBQVk7QUFDdEMsZUFBSyxRQUFRLElBQ1gsS0FBSyxjQUFjLE1BQU0sSUFBSSxLQUM3QixLQUFLLGNBQWMsVUFBVSxJQUFJO0FBQUEsUUFFckM7QUFDQSxlQUFPO0FBQUEsTUFDVDtBQUFBLE1BRUEsZUFBZ0IsT0FBTyxNQUFNO0FBQzNCLGVBQU8sS0FBSyxJQUFJLElBQUksR0FBRyxJQUFJO0FBQUEsTUFDN0I7QUFBQSxNQUVBLEtBQU0sT0FBTztBQUNYLFlBQUksS0FBSyxRQUFRLEtBQUssVUFBVSxNQUFNO0FBQ3BDLHNCQUFZLEtBQUssUUFBUSxHQUFHLEtBQUs7QUFDakMsaUJBQU8sS0FBSyxRQUFRLElBQUksTUFBTSxLQUFLLEtBQUssSUFBSTtBQUFBLFFBQzlDO0FBQ0EsZUFBTyxNQUFNLEtBQUssS0FBSztBQUFBLE1BQ3pCO0FBQUE7QUFBQSxNQUdBLE1BQU0sT0FBUTtBQUNaLGVBQU8sUUFBUSxNQUFNLE1BQU07QUFBQSxNQUM3QjtBQUFBO0FBQUEsTUFHQSxNQUFNLE9BQVE7QUFDWixlQUFPLFFBQVEsTUFBTSxNQUFNO0FBQUEsTUFDN0I7QUFBQTtBQUFBLE1BR0EsTUFBTSxPQUFRO0FBQ1osZUFBTyxRQUFRLE1BQU0sTUFBTTtBQUFBLE1BQzdCO0FBQUE7QUFBQSxNQUdBLE1BQU0sUUFBUztBQUNiLGVBQU8sUUFBUSxNQUFNLE9BQU87QUFBQSxNQUM5QjtBQUFBO0FBQUEsTUFHQSxNQUFNLGNBQWU7QUFDbkIsZUFBTyxRQUFRLE1BQU0sYUFBYTtBQUFBLE1BQ3BDO0FBQUE7QUFBQSxNQUdBLE1BQU0sV0FBWTtBQUVoQixjQUFNLElBQUksa0JBQWtCO0FBQUEsTUFDOUI7QUFBQTtBQUFBLE1BR0EsSUFBSSxXQUFZO0FBQ2QsZUFBT0YsTUFBSyxZQUFZLElBQUk7QUFBQSxNQUM5QjtBQUFBO0FBQUEsTUFHQSxJQUFJLE9BQVE7QUFDVixZQUFJLENBQUMsS0FBSyxLQUFLLEdBQUc7QUFDaEIsZUFBSyxLQUFLLElBQUksbUJBQW1CLElBQUk7QUFDckMsY0FBSSxLQUFLLFFBQVEsR0FBRztBQUVsQixpQkFBSyxLQUFLLEVBQUUsVUFBVTtBQUN0QixtQkFBTyxLQUFLLEtBQUssRUFBRSxNQUFNO0FBQUEsVUFDM0I7QUFBQSxRQUNGO0FBQ0EsZUFBTyxLQUFLLEtBQUs7QUFBQSxNQUNuQjtBQUFBLE1BRUEsTUFBTSxLQUFNLE1BQU07QUFDaEIsWUFBSSxRQUFRLE9BQU8sU0FBUyxNQUFNLEtBQUssSUFBSSxLQUFLLFFBQVEsTUFBTTtBQUM5RCxjQUFNLFNBQVMsTUFBTTtBQUVyQixZQUFJLFVBQVUsU0FBUyxPQUFPLFdBQVcsWUFBWSxFQUFFLGFBQWEsVUFBVTtBQUM1RSxnQkFBTSxJQUFJLHFCQUFxQiwrQkFBK0I7QUFBQSxRQUNoRTtBQUVBLGdCQUFRLGVBQWU7QUFFdkIsWUFBSSxLQUFLLGVBQWUsY0FBYztBQUNwQyxpQkFBTztBQUFBLFFBQ1Q7QUFFQSxlQUFPLE1BQU0sSUFBSSxRQUFRLENBQUMsU0FBUyxXQUFXO0FBQzVDLGNBQUksS0FBSyxjQUFjLElBQUksT0FBTztBQUNoQyxpQkFBSyxRQUFRLElBQUksV0FBVyxDQUFDO0FBQUEsVUFDL0I7QUFFQSxnQkFBTSxVQUFVLE1BQU07QUFDcEIsaUJBQUssUUFBUSxPQUFPLFVBQVUsSUFBSSxXQUFXLENBQUM7QUFBQSxVQUNoRDtBQUNBLGtCQUFRLGlCQUFpQixTQUFTLE9BQU87QUFFekMsZUFDRyxHQUFHLFNBQVMsV0FBWTtBQUN2QixvQkFBUSxvQkFBb0IsU0FBUyxPQUFPO0FBQzVDLGdCQUFJLFFBQVEsU0FBUztBQUNuQixxQkFBTyxPQUFPLFVBQVUsSUFBSSxXQUFXLENBQUM7QUFBQSxZQUMxQyxPQUFPO0FBQ0wsc0JBQVEsSUFBSTtBQUFBLFlBQ2Q7QUFBQSxVQUNGLENBQUMsRUFDQSxHQUFHLFNBQVNDLEtBQUksRUFDaEIsR0FBRyxRQUFRLFNBQVUsT0FBTztBQUMzQixxQkFBUyxNQUFNO0FBQ2YsZ0JBQUksU0FBUyxHQUFHO0FBQ2QsbUJBQUssUUFBUTtBQUFBLFlBQ2Y7QUFBQSxVQUNGLENBQUMsRUFDQSxPQUFPO0FBQUEsUUFDWixDQUFDO0FBQUEsTUFDSDtBQUFBLElBQ0Y7QUFHQSxhQUFTLFNBQVVFLE9BQU07QUFFdkIsYUFBUUEsTUFBSyxLQUFLLEtBQUtBLE1BQUssS0FBSyxFQUFFLFdBQVcsUUFBU0EsTUFBSyxRQUFRO0FBQUEsSUFDdEU7QUFHQSxhQUFTLFdBQVlBLE9BQU07QUFDekIsYUFBT0gsTUFBSyxZQUFZRyxLQUFJLEtBQUssU0FBU0EsS0FBSTtBQUFBLElBQ2hEO0FBRUEsbUJBQWUsUUFBU0MsU0FBUSxNQUFNO0FBQ3BDLGFBQU8sQ0FBQ0EsUUFBTyxRQUFRLENBQUM7QUFFeEIsYUFBTyxJQUFJLFFBQVEsQ0FBQyxTQUFTLFdBQVc7QUFDdEMsWUFBSSxXQUFXQSxPQUFNLEdBQUc7QUFDdEIsZ0JBQU0sU0FBU0EsUUFBTztBQUN0QixjQUFJLE9BQU8sYUFBYSxPQUFPLGlCQUFpQixPQUFPO0FBQ3JELFlBQUFBLFFBQ0csR0FBRyxTQUFTLENBQUFGLFNBQU87QUFDbEIscUJBQU9BLElBQUc7QUFBQSxZQUNaLENBQUMsRUFDQSxHQUFHLFNBQVMsTUFBTTtBQUNqQixxQkFBTyxJQUFJLFVBQVUsVUFBVSxDQUFDO0FBQUEsWUFDbEMsQ0FBQztBQUFBLFVBQ0wsT0FBTztBQUNMLG1CQUFPLE9BQU8sV0FBVyxJQUFJLFVBQVUsVUFBVSxDQUFDO0FBQUEsVUFDcEQ7QUFBQSxRQUNGLE9BQU87QUFDTCx5QkFBZSxNQUFNO0FBQ25CLFlBQUFFLFFBQU8sUUFBUSxJQUFJO0FBQUEsY0FDakI7QUFBQSxjQUNBLFFBQUFBO0FBQUEsY0FDQTtBQUFBLGNBQ0E7QUFBQSxjQUNBLFFBQVE7QUFBQSxjQUNSLE1BQU0sQ0FBQztBQUFBLFlBQ1Q7QUFFQSxZQUFBQSxRQUNHLEdBQUcsU0FBUyxTQUFVRixNQUFLO0FBQzFCLDRCQUFjLEtBQUssUUFBUSxHQUFHQSxJQUFHO0FBQUEsWUFDbkMsQ0FBQyxFQUNBLEdBQUcsU0FBUyxXQUFZO0FBQ3ZCLGtCQUFJLEtBQUssUUFBUSxFQUFFLFNBQVMsTUFBTTtBQUNoQyw4QkFBYyxLQUFLLFFBQVEsR0FBRyxJQUFJLG9CQUFvQixDQUFDO0FBQUEsY0FDekQ7QUFBQSxZQUNGLENBQUM7QUFFSCx5QkFBYUUsUUFBTyxRQUFRLENBQUM7QUFBQSxVQUMvQixDQUFDO0FBQUEsUUFDSDtBQUFBLE1BQ0YsQ0FBQztBQUFBLElBQ0g7QUFFQSxhQUFTLGFBQWNDLFVBQVM7QUFDOUIsVUFBSUEsU0FBUSxTQUFTLE1BQU07QUFDekI7QUFBQSxNQUNGO0FBRUEsWUFBTSxFQUFFLGdCQUFnQixNQUFNLElBQUlBLFNBQVE7QUFFMUMsVUFBSSxNQUFNLGFBQWE7QUFDckIsY0FBTSxRQUFRLE1BQU07QUFDcEIsY0FBTUMsT0FBTSxNQUFNLE9BQU87QUFDekIsaUJBQVMsSUFBSSxPQUFPLElBQUlBLE1BQUssS0FBSztBQUNoQyxzQkFBWUQsVUFBUyxNQUFNLE9BQU8sQ0FBQyxDQUFDO0FBQUEsUUFDdEM7QUFBQSxNQUNGLE9BQU87QUFDTCxtQkFBVyxTQUFTLE1BQU0sUUFBUTtBQUNoQyxzQkFBWUEsVUFBUyxLQUFLO0FBQUEsUUFDNUI7QUFBQSxNQUNGO0FBRUEsVUFBSSxNQUFNLFlBQVk7QUFDcEIsbUJBQVcsS0FBSyxRQUFRLENBQUM7QUFBQSxNQUMzQixPQUFPO0FBQ0wsUUFBQUEsU0FBUSxPQUFPLEdBQUcsT0FBTyxXQUFZO0FBQ25DLHFCQUFXLEtBQUssUUFBUSxDQUFDO0FBQUEsUUFDM0IsQ0FBQztBQUFBLE1BQ0g7QUFFQSxNQUFBQSxTQUFRLE9BQU8sT0FBTztBQUV0QixhQUFPQSxTQUFRLE9BQU8sS0FBSyxLQUFLLE1BQU07QUFBQSxNQUV0QztBQUFBLElBQ0Y7QUFNQSxhQUFTLGFBQWMsUUFBUSxRQUFRO0FBQ3JDLFVBQUksT0FBTyxXQUFXLEtBQUssV0FBVyxHQUFHO0FBQ3ZDLGVBQU87QUFBQSxNQUNUO0FBQ0EsWUFBTSxTQUFTLE9BQU8sV0FBVyxJQUFJLE9BQU8sQ0FBQyxJQUFJLE9BQU8sT0FBTyxRQUFRLE1BQU07QUFDN0UsWUFBTSxlQUFlLE9BQU87QUFHNUIsWUFBTSxRQUNKLGVBQWUsS0FDZixPQUFPLENBQUMsTUFBTSxPQUNkLE9BQU8sQ0FBQyxNQUFNLE9BQ2QsT0FBTyxDQUFDLE1BQU0sTUFDVixJQUNBO0FBQ04sYUFBTyxPQUFPLFVBQVUsT0FBTyxZQUFZO0FBQUEsSUFDN0M7QUFPQSxhQUFTLGFBQWMsUUFBUSxRQUFRO0FBQ3JDLFVBQUksT0FBTyxXQUFXLEtBQUssV0FBVyxHQUFHO0FBQ3ZDLGVBQU8sSUFBSSxXQUFXLENBQUM7QUFBQSxNQUN6QjtBQUNBLFVBQUksT0FBTyxXQUFXLEdBQUc7QUFFdkIsZUFBTyxJQUFJLFdBQVcsT0FBTyxDQUFDLENBQUM7QUFBQSxNQUNqQztBQUNBLFlBQU0sU0FBUyxJQUFJLFdBQVcsT0FBTyxnQkFBZ0IsTUFBTSxFQUFFLE1BQU07QUFFbkUsVUFBSSxTQUFTO0FBQ2IsZUFBUyxJQUFJLEdBQUcsSUFBSSxPQUFPLFFBQVEsRUFBRSxHQUFHO0FBQ3RDLGNBQU0sUUFBUSxPQUFPLENBQUM7QUFDdEIsZUFBTyxJQUFJLE9BQU8sTUFBTTtBQUN4QixrQkFBVSxNQUFNO0FBQUEsTUFDbEI7QUFFQSxhQUFPO0FBQUEsSUFDVDtBQUVBLGFBQVMsV0FBWUEsVUFBUztBQUM1QixZQUFNLEVBQUUsTUFBTSxNQUFNLFNBQVMsUUFBQUQsU0FBUSxPQUFPLElBQUlDO0FBRWhELFVBQUk7QUFDRixZQUFJLFNBQVMsUUFBUTtBQUNuQixrQkFBUSxhQUFhLE1BQU0sTUFBTSxDQUFDO0FBQUEsUUFDcEMsV0FBVyxTQUFTLFFBQVE7QUFDMUIsa0JBQVEsS0FBSyxNQUFNLGFBQWEsTUFBTSxNQUFNLENBQUMsQ0FBQztBQUFBLFFBQ2hELFdBQVcsU0FBUyxlQUFlO0FBQ2pDLGtCQUFRLGFBQWEsTUFBTSxNQUFNLEVBQUUsTUFBTTtBQUFBLFFBQzNDLFdBQVcsU0FBUyxRQUFRO0FBQzFCLGtCQUFRLElBQUksS0FBSyxNQUFNLEVBQUUsTUFBTUQsUUFBTyxZQUFZLEVBQUUsQ0FBQyxDQUFDO0FBQUEsUUFDeEQsV0FBVyxTQUFTLFNBQVM7QUFDM0Isa0JBQVEsYUFBYSxNQUFNLE1BQU0sQ0FBQztBQUFBLFFBQ3BDO0FBRUEsc0JBQWNDLFFBQU87QUFBQSxNQUN2QixTQUFTSCxNQUFLO0FBQ1osUUFBQUUsUUFBTyxRQUFRRixJQUFHO0FBQUEsTUFDcEI7QUFBQSxJQUNGO0FBRUEsYUFBUyxZQUFhRyxVQUFTLE9BQU87QUFDcEMsTUFBQUEsU0FBUSxVQUFVLE1BQU07QUFDeEIsTUFBQUEsU0FBUSxLQUFLLEtBQUssS0FBSztBQUFBLElBQ3pCO0FBRUEsYUFBUyxjQUFlQSxVQUFTSCxNQUFLO0FBQ3BDLFVBQUlHLFNBQVEsU0FBUyxNQUFNO0FBQ3pCO0FBQUEsTUFDRjtBQUVBLFVBQUlILE1BQUs7QUFDUCxRQUFBRyxTQUFRLE9BQU9ILElBQUc7QUFBQSxNQUNwQixPQUFPO0FBQ0wsUUFBQUcsU0FBUSxRQUFRO0FBQUEsTUFDbEI7QUFFQSxNQUFBQSxTQUFRLE9BQU87QUFDZixNQUFBQSxTQUFRLFNBQVM7QUFDakIsTUFBQUEsU0FBUSxVQUFVO0FBQ2xCLE1BQUFBLFNBQVEsU0FBUztBQUNqQixNQUFBQSxTQUFRLFNBQVM7QUFDakIsTUFBQUEsU0FBUSxPQUFPO0FBQUEsSUFDakI7QUFFQSxJQUFBUCxRQUFPLFVBQVUsRUFBRSxVQUFVLGNBQWMsYUFBYTtBQUFBO0FBQUE7OztBQ2hZeEQsSUFBQVMsZ0JBQUE7QUFBQSx3Q0FBQUMsVUFBQUMsU0FBQTtBQUFBLFFBQU0sU0FBUyxRQUFRLGFBQWE7QUFDcEMsUUFBTTtBQUFBLE1BQ0o7QUFBQSxJQUNGLElBQUk7QUFFSixRQUFNLEVBQUUsYUFBYSxJQUFJO0FBQ3pCLFFBQU0sY0FBYyxNQUFNO0FBRTFCLG1CQUFlLDRCQUE2QixFQUFFLFVBQVUsTUFBTSxhQUFhLFlBQVksZUFBZSxRQUFRLEdBQUc7QUFDL0csYUFBTyxJQUFJO0FBRVgsVUFBSSxTQUFTLENBQUM7QUFDZCxVQUFJLFNBQVM7QUFFYixVQUFJO0FBQ0YseUJBQWlCLFNBQVMsTUFBTTtBQUM5QixpQkFBTyxLQUFLLEtBQUs7QUFDakIsb0JBQVUsTUFBTTtBQUNoQixjQUFJLFNBQVMsYUFBYTtBQUN4QixxQkFBUyxDQUFDO0FBQ1YscUJBQVM7QUFDVDtBQUFBLFVBQ0Y7QUFBQSxRQUNGO0FBQUEsTUFDRixRQUFRO0FBQ04saUJBQVMsQ0FBQztBQUNWLGlCQUFTO0FBQUEsTUFFWDtBQUVBLFlBQU0sVUFBVSx3QkFBd0IsVUFBVSxHQUFHLGdCQUFnQixLQUFLLGFBQWEsS0FBSyxFQUFFO0FBRTlGLFVBQUksZUFBZSxPQUFPLENBQUMsZUFBZSxDQUFDLFFBQVE7QUFDakQsdUJBQWUsTUFBTSxTQUFTLElBQUksd0JBQXdCLFNBQVMsWUFBWSxPQUFPLENBQUMsQ0FBQztBQUN4RjtBQUFBLE1BQ0Y7QUFFQSxZQUFNLGtCQUFrQixNQUFNO0FBQzlCLFlBQU0sa0JBQWtCO0FBQ3hCLFVBQUk7QUFFSixVQUFJO0FBQ0YsWUFBSSw2QkFBNkIsV0FBVyxHQUFHO0FBQzdDLG9CQUFVLEtBQUssTUFBTSxhQUFhLFFBQVEsTUFBTSxDQUFDO0FBQUEsUUFDbkQsV0FBVyxrQkFBa0IsV0FBVyxHQUFHO0FBQ3pDLG9CQUFVLGFBQWEsUUFBUSxNQUFNO0FBQUEsUUFDdkM7QUFBQSxNQUNGLFFBQVE7QUFBQSxNQUVSLFVBQUU7QUFDQSxjQUFNLGtCQUFrQjtBQUFBLE1BQzFCO0FBQ0EscUJBQWUsTUFBTSxTQUFTLElBQUksd0JBQXdCLFNBQVMsWUFBWSxTQUFTLE9BQU8sQ0FBQyxDQUFDO0FBQUEsSUFDbkc7QUFFQSxRQUFNLCtCQUErQixDQUFDLGdCQUFnQjtBQUNwRCxhQUNFLFlBQVksU0FBUyxNQUNyQixZQUFZLEVBQUUsTUFBTSxPQUNwQixZQUFZLENBQUMsTUFBTSxPQUNuQixZQUFZLENBQUMsTUFBTSxPQUNuQixZQUFZLENBQUMsTUFBTSxPQUNuQixZQUFZLENBQUMsTUFBTSxPQUNuQixZQUFZLENBQUMsTUFBTSxPQUNuQixZQUFZLENBQUMsTUFBTSxPQUNuQixZQUFZLENBQUMsTUFBTSxPQUNuQixZQUFZLENBQUMsTUFBTSxPQUNuQixZQUFZLENBQUMsTUFBTSxPQUNuQixZQUFZLENBQUMsTUFBTSxPQUNuQixZQUFZLEVBQUUsTUFBTSxPQUNwQixZQUFZLEVBQUUsTUFBTSxPQUNwQixZQUFZLEVBQUUsTUFBTSxPQUNwQixZQUFZLEVBQUUsTUFBTSxPQUNwQixZQUFZLEVBQUUsTUFBTTtBQUFBLElBRXhCO0FBRUEsUUFBTSxvQkFBb0IsQ0FBQyxnQkFBZ0I7QUFDekMsYUFDRSxZQUFZLFNBQVMsS0FDckIsWUFBWSxDQUFDLE1BQU0sT0FDbkIsWUFBWSxDQUFDLE1BQU0sT0FDbkIsWUFBWSxDQUFDLE1BQU0sT0FDbkIsWUFBWSxDQUFDLE1BQU0sT0FDbkIsWUFBWSxDQUFDLE1BQU07QUFBQSxJQUV2QjtBQUVBLElBQUFBLFFBQU8sVUFBVTtBQUFBLE1BQ2Y7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLElBQ0Y7QUFBQTtBQUFBOzs7QUM1RkE7QUFBQSwrQ0FBQUMsVUFBQUMsU0FBQTtBQUFBO0FBRUEsUUFBTSxTQUFTLFFBQVEsYUFBYTtBQUNwQyxRQUFNLEVBQUUsVUFBQUMsVUFBUyxJQUFJO0FBQ3JCLFFBQU0sRUFBRSxzQkFBc0Isb0JBQW9CLElBQUk7QUFDdEQsUUFBTUMsUUFBTztBQUNiLFFBQU0sRUFBRSw0QkFBNEIsSUFBSTtBQUN4QyxRQUFNLEVBQUUsY0FBYyxJQUFJLFFBQVEsa0JBQWtCO0FBRXBELFFBQU0saUJBQU4sY0FBNkIsY0FBYztBQUFBLE1BQ3pDLFlBQWEsTUFBTSxVQUFVO0FBQzNCLFlBQUksQ0FBQyxRQUFRLE9BQU8sU0FBUyxVQUFVO0FBQ3JDLGdCQUFNLElBQUkscUJBQXFCLGNBQWM7QUFBQSxRQUMvQztBQUVBLGNBQU0sRUFBRSxRQUFRLFFBQVEsUUFBUSxNQUFNLFFBQVEsaUJBQWlCLGNBQWMsY0FBYyxJQUFJO0FBRS9GLFlBQUk7QUFDRixjQUFJLE9BQU8sYUFBYSxZQUFZO0FBQ2xDLGtCQUFNLElBQUkscUJBQXFCLGtCQUFrQjtBQUFBLFVBQ25EO0FBRUEsY0FBSSxrQkFBa0IsT0FBTyxrQkFBa0IsWUFBWSxnQkFBZ0IsSUFBSTtBQUM3RSxrQkFBTSxJQUFJLHFCQUFxQix1QkFBdUI7QUFBQSxVQUN4RDtBQUVBLGNBQUksVUFBVSxPQUFPLE9BQU8sT0FBTyxjQUFjLE9BQU8sT0FBTyxxQkFBcUIsWUFBWTtBQUM5RixrQkFBTSxJQUFJLHFCQUFxQiwrQ0FBK0M7QUFBQSxVQUNoRjtBQUVBLGNBQUksV0FBVyxXQUFXO0FBQ3hCLGtCQUFNLElBQUkscUJBQXFCLGdCQUFnQjtBQUFBLFVBQ2pEO0FBRUEsY0FBSSxVQUFVLE9BQU8sV0FBVyxZQUFZO0FBQzFDLGtCQUFNLElBQUkscUJBQXFCLHlCQUF5QjtBQUFBLFVBQzFEO0FBRUEsZ0JBQU0sZ0JBQWdCO0FBQUEsUUFDeEIsU0FBU0MsTUFBSztBQUNaLGNBQUlELE1BQUssU0FBUyxJQUFJLEdBQUc7QUFDdkIsWUFBQUEsTUFBSyxRQUFRLEtBQUssR0FBRyxTQUFTQSxNQUFLLEdBQUcsR0FBR0MsSUFBRztBQUFBLFVBQzlDO0FBQ0EsZ0JBQU1BO0FBQUEsUUFDUjtBQUVBLGFBQUssU0FBUztBQUNkLGFBQUssa0JBQWtCLG1CQUFtQjtBQUMxQyxhQUFLLFNBQVMsVUFBVTtBQUN4QixhQUFLLFdBQVc7QUFDaEIsYUFBSyxNQUFNO0FBQ1gsYUFBSyxRQUFRO0FBQ2IsYUFBSyxPQUFPO0FBQ1osYUFBSyxXQUFXLENBQUM7QUFDakIsYUFBSyxVQUFVO0FBQ2YsYUFBSyxTQUFTLFVBQVU7QUFDeEIsYUFBSyxlQUFlO0FBQ3BCLGFBQUssZ0JBQWdCO0FBQ3JCLGFBQUssU0FBUztBQUNkLGFBQUssU0FBUztBQUNkLGFBQUssc0JBQXNCO0FBRTNCLFlBQUlELE1BQUssU0FBUyxJQUFJLEdBQUc7QUFDdkIsZUFBSyxHQUFHLFNBQVMsQ0FBQ0MsU0FBUTtBQUN4QixpQkFBSyxRQUFRQSxJQUFHO0FBQUEsVUFDbEIsQ0FBQztBQUFBLFFBQ0g7QUFFQSxZQUFJLEtBQUssUUFBUTtBQUNmLGNBQUksS0FBSyxPQUFPLFNBQVM7QUFDdkIsaUJBQUssU0FBUyxLQUFLLE9BQU8sVUFBVSxJQUFJLG9CQUFvQjtBQUFBLFVBQzlELE9BQU87QUFDTCxpQkFBSyxzQkFBc0JELE1BQUssaUJBQWlCLEtBQUssUUFBUSxNQUFNO0FBQ2xFLG1CQUFLLFNBQVMsS0FBSyxPQUFPLFVBQVUsSUFBSSxvQkFBb0I7QUFDNUQsa0JBQUksS0FBSyxLQUFLO0FBQ1osZ0JBQUFBLE1BQUssUUFBUSxLQUFLLElBQUksR0FBRyxTQUFTQSxNQUFLLEdBQUcsR0FBRyxLQUFLLE1BQU07QUFBQSxjQUMxRCxXQUFXLEtBQUssT0FBTztBQUNyQixxQkFBSyxNQUFNLEtBQUssTUFBTTtBQUFBLGNBQ3hCO0FBRUEsa0JBQUksS0FBSyxxQkFBcUI7QUFDNUIscUJBQUssS0FBSyxJQUFJLFNBQVMsS0FBSyxtQkFBbUI7QUFDL0MscUJBQUssb0JBQW9CO0FBQ3pCLHFCQUFLLHNCQUFzQjtBQUFBLGNBQzdCO0FBQUEsWUFDRixDQUFDO0FBQUEsVUFDSDtBQUFBLFFBQ0Y7QUFBQSxNQUNGO0FBQUEsTUFFQSxVQUFXLE9BQU8sU0FBUztBQUN6QixZQUFJLEtBQUssUUFBUTtBQUNmLGdCQUFNLEtBQUssTUFBTTtBQUNqQjtBQUFBLFFBQ0Y7QUFFQSxlQUFPLEtBQUssUUFBUTtBQUVwQixhQUFLLFFBQVE7QUFDYixhQUFLLFVBQVU7QUFBQSxNQUNqQjtBQUFBLE1BRUEsVUFBVyxZQUFZLFlBQVksUUFBUSxlQUFlO0FBQ3hELGNBQU0sRUFBRSxVQUFVLFFBQVEsT0FBTyxTQUFTLGlCQUFpQixjQUFjLElBQUk7QUFFN0UsY0FBTSxVQUFVLG9CQUFvQixRQUFRQSxNQUFLLGdCQUFnQixVQUFVLElBQUlBLE1BQUssYUFBYSxVQUFVO0FBRTNHLFlBQUksYUFBYSxLQUFLO0FBQ3BCLGNBQUksS0FBSyxRQUFRO0FBQ2YsaUJBQUssT0FBTyxFQUFFLFlBQVksUUFBUSxDQUFDO0FBQUEsVUFDckM7QUFDQTtBQUFBLFFBQ0Y7QUFFQSxjQUFNLGdCQUFnQixvQkFBb0IsUUFBUUEsTUFBSyxhQUFhLFVBQVUsSUFBSTtBQUNsRixjQUFNLGNBQWMsY0FBYyxjQUFjO0FBQ2hELGNBQU0sZ0JBQWdCLGNBQWMsZ0JBQWdCO0FBQ3BELGNBQU0sTUFBTSxJQUFJRCxVQUFTO0FBQUEsVUFDdkI7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0EsZUFBZSxLQUFLLFdBQVcsVUFBVSxnQkFDckMsT0FBTyxhQUFhLElBQ3BCO0FBQUEsVUFDSjtBQUFBLFFBQ0YsQ0FBQztBQUVELFlBQUksS0FBSyxxQkFBcUI7QUFDNUIsY0FBSSxHQUFHLFNBQVMsS0FBSyxtQkFBbUI7QUFBQSxRQUMxQztBQUVBLGFBQUssV0FBVztBQUNoQixhQUFLLE1BQU07QUFDWCxZQUFJLGFBQWEsTUFBTTtBQUNyQixjQUFJLEtBQUssZ0JBQWdCLGNBQWMsS0FBSztBQUMxQyxpQkFBSztBQUFBLGNBQWdCO0FBQUEsY0FBNkI7QUFBQSxjQUNoRCxFQUFFLFVBQVUsTUFBTSxLQUFLLGFBQWEsWUFBWSxlQUFlLFFBQVE7QUFBQSxZQUN6RTtBQUFBLFVBQ0YsT0FBTztBQUNMLGlCQUFLLGdCQUFnQixVQUFVLE1BQU0sTUFBTTtBQUFBLGNBQ3pDO0FBQUEsY0FDQTtBQUFBLGNBQ0EsVUFBVSxLQUFLO0FBQUEsY0FDZjtBQUFBLGNBQ0EsTUFBTTtBQUFBLGNBQ047QUFBQSxZQUNGLENBQUM7QUFBQSxVQUNIO0FBQUEsUUFDRjtBQUFBLE1BQ0Y7QUFBQSxNQUVBLE9BQVEsT0FBTztBQUNiLGVBQU8sS0FBSyxJQUFJLEtBQUssS0FBSztBQUFBLE1BQzVCO0FBQUEsTUFFQSxXQUFZLFVBQVU7QUFDcEIsUUFBQUMsTUFBSyxhQUFhLFVBQVUsS0FBSyxRQUFRO0FBQ3pDLGFBQUssSUFBSSxLQUFLLElBQUk7QUFBQSxNQUNwQjtBQUFBLE1BRUEsUUFBU0MsTUFBSztBQUNaLGNBQU0sRUFBRSxLQUFLLFVBQVUsTUFBTSxPQUFPLElBQUk7QUFFeEMsWUFBSSxVQUFVO0FBRVosZUFBSyxXQUFXO0FBQ2hCLHlCQUFlLE1BQU07QUFDbkIsaUJBQUssZ0JBQWdCLFVBQVUsTUFBTUEsTUFBSyxFQUFFLE9BQU8sQ0FBQztBQUFBLFVBQ3RELENBQUM7QUFBQSxRQUNIO0FBRUEsWUFBSSxLQUFLO0FBQ1AsZUFBSyxNQUFNO0FBRVgseUJBQWUsTUFBTTtBQUNuQixZQUFBRCxNQUFLLFFBQVEsS0FBS0MsSUFBRztBQUFBLFVBQ3ZCLENBQUM7QUFBQSxRQUNIO0FBRUEsWUFBSSxNQUFNO0FBQ1IsZUFBSyxPQUFPO0FBQ1osVUFBQUQsTUFBSyxRQUFRLE1BQU1DLElBQUc7QUFBQSxRQUN4QjtBQUVBLFlBQUksS0FBSyxxQkFBcUI7QUFDNUIsZUFBSyxJQUFJLFNBQVMsS0FBSyxtQkFBbUI7QUFDMUMsZUFBSyxvQkFBb0I7QUFDekIsZUFBSyxzQkFBc0I7QUFBQSxRQUM3QjtBQUFBLE1BQ0Y7QUFBQSxJQUNGO0FBRUEsYUFBUyxRQUFTLE1BQU0sVUFBVTtBQUNoQyxVQUFJLGFBQWEsUUFBVztBQUMxQixlQUFPLElBQUksUUFBUSxDQUFDLFNBQVMsV0FBVztBQUN0QyxrQkFBUSxLQUFLLE1BQU0sTUFBTSxDQUFDQSxNQUFLQyxVQUFTO0FBQ3RDLG1CQUFPRCxPQUFNLE9BQU9BLElBQUcsSUFBSSxRQUFRQyxLQUFJO0FBQUEsVUFDekMsQ0FBQztBQUFBLFFBQ0gsQ0FBQztBQUFBLE1BQ0g7QUFFQSxVQUFJO0FBQ0YsYUFBSyxTQUFTLE1BQU0sSUFBSSxlQUFlLE1BQU0sUUFBUSxDQUFDO0FBQUEsTUFDeEQsU0FBU0QsTUFBSztBQUNaLFlBQUksT0FBTyxhQUFhLFlBQVk7QUFDbEMsZ0JBQU1BO0FBQUEsUUFDUjtBQUNBLGNBQU0sU0FBUyxNQUFNO0FBQ3JCLHVCQUFlLE1BQU0sU0FBU0EsTUFBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQUEsTUFDaEQ7QUFBQSxJQUNGO0FBRUEsSUFBQUgsUUFBTyxVQUFVO0FBQ2pCLElBQUFBLFFBQU8sUUFBUSxpQkFBaUI7QUFBQTtBQUFBOzs7QUNyTmhDO0FBQUEsZ0RBQUFLLFVBQUFDLFNBQUE7QUFBQSxRQUFNLEVBQUUsaUJBQWlCLElBQUk7QUFDN0IsUUFBTSxFQUFFLG9CQUFvQixJQUFJO0FBRWhDLFFBQU0sWUFBWSxPQUFPLFdBQVc7QUFDcEMsUUFBTSxVQUFVLE9BQU8sU0FBUztBQUVoQyxhQUFTLE1BQU9DLE9BQU07QUFDcEIsVUFBSUEsTUFBSyxPQUFPO0FBQ2QsUUFBQUEsTUFBSyxNQUFNQSxNQUFLLE9BQU8sR0FBRyxNQUFNO0FBQUEsTUFDbEMsT0FBTztBQUNMLFFBQUFBLE1BQUssU0FBU0EsTUFBSyxPQUFPLEdBQUcsVUFBVSxJQUFJLG9CQUFvQjtBQUFBLE1BQ2pFO0FBQ0EsbUJBQWFBLEtBQUk7QUFBQSxJQUNuQjtBQUVBLGFBQVMsVUFBV0EsT0FBTSxRQUFRO0FBQ2hDLE1BQUFBLE1BQUssU0FBUztBQUVkLE1BQUFBLE1BQUssT0FBTyxJQUFJO0FBQ2hCLE1BQUFBLE1BQUssU0FBUyxJQUFJO0FBRWxCLFVBQUksQ0FBQyxRQUFRO0FBQ1g7QUFBQSxNQUNGO0FBRUEsVUFBSSxPQUFPLFNBQVM7QUFDbEIsY0FBTUEsS0FBSTtBQUNWO0FBQUEsTUFDRjtBQUVBLE1BQUFBLE1BQUssT0FBTyxJQUFJO0FBQ2hCLE1BQUFBLE1BQUssU0FBUyxJQUFJLE1BQU07QUFDdEIsY0FBTUEsS0FBSTtBQUFBLE1BQ1o7QUFFQSx1QkFBaUJBLE1BQUssT0FBTyxHQUFHQSxNQUFLLFNBQVMsQ0FBQztBQUFBLElBQ2pEO0FBRUEsYUFBUyxhQUFjQSxPQUFNO0FBQzNCLFVBQUksQ0FBQ0EsTUFBSyxPQUFPLEdBQUc7QUFDbEI7QUFBQSxNQUNGO0FBRUEsVUFBSSx5QkFBeUJBLE1BQUssT0FBTyxHQUFHO0FBQzFDLFFBQUFBLE1BQUssT0FBTyxFQUFFLG9CQUFvQixTQUFTQSxNQUFLLFNBQVMsQ0FBQztBQUFBLE1BQzVELE9BQU87QUFDTCxRQUFBQSxNQUFLLE9BQU8sRUFBRSxlQUFlLFNBQVNBLE1BQUssU0FBUyxDQUFDO0FBQUEsTUFDdkQ7QUFFQSxNQUFBQSxNQUFLLE9BQU8sSUFBSTtBQUNoQixNQUFBQSxNQUFLLFNBQVMsSUFBSTtBQUFBLElBQ3BCO0FBRUEsSUFBQUQsUUFBTyxVQUFVO0FBQUEsTUFDZjtBQUFBLE1BQ0E7QUFBQSxJQUNGO0FBQUE7QUFBQTs7O0FDeERBO0FBQUEsOENBQUFFLFVBQUFDLFNBQUE7QUFBQTtBQUVBLFFBQU0sU0FBUyxRQUFRLGFBQWE7QUFDcEMsUUFBTSxFQUFFLFVBQVUsWUFBWSxJQUFJLFFBQVEsYUFBYTtBQUN2RCxRQUFNLEVBQUUsc0JBQXNCLHdCQUF3QixJQUFJO0FBQzFELFFBQU1DLFFBQU87QUFDYixRQUFNLEVBQUUsNEJBQTRCLElBQUk7QUFDeEMsUUFBTSxFQUFFLGNBQWMsSUFBSSxRQUFRLGtCQUFrQjtBQUNwRCxRQUFNLEVBQUUsV0FBVyxhQUFhLElBQUk7QUFFcEMsUUFBTSxnQkFBTixjQUE0QixjQUFjO0FBQUEsTUFDeEMsWUFBYSxNQUFNLFNBQVMsVUFBVTtBQUNwQyxZQUFJLENBQUMsUUFBUSxPQUFPLFNBQVMsVUFBVTtBQUNyQyxnQkFBTSxJQUFJLHFCQUFxQixjQUFjO0FBQUEsUUFDL0M7QUFFQSxjQUFNLEVBQUUsUUFBUSxRQUFRLFFBQVEsTUFBTSxRQUFRLGlCQUFpQixhQUFhLElBQUk7QUFFaEYsWUFBSTtBQUNGLGNBQUksT0FBTyxhQUFhLFlBQVk7QUFDbEMsa0JBQU0sSUFBSSxxQkFBcUIsa0JBQWtCO0FBQUEsVUFDbkQ7QUFFQSxjQUFJLE9BQU8sWUFBWSxZQUFZO0FBQ2pDLGtCQUFNLElBQUkscUJBQXFCLGlCQUFpQjtBQUFBLFVBQ2xEO0FBRUEsY0FBSSxVQUFVLE9BQU8sT0FBTyxPQUFPLGNBQWMsT0FBTyxPQUFPLHFCQUFxQixZQUFZO0FBQzlGLGtCQUFNLElBQUkscUJBQXFCLCtDQUErQztBQUFBLFVBQ2hGO0FBRUEsY0FBSSxXQUFXLFdBQVc7QUFDeEIsa0JBQU0sSUFBSSxxQkFBcUIsZ0JBQWdCO0FBQUEsVUFDakQ7QUFFQSxjQUFJLFVBQVUsT0FBTyxXQUFXLFlBQVk7QUFDMUMsa0JBQU0sSUFBSSxxQkFBcUIseUJBQXlCO0FBQUEsVUFDMUQ7QUFFQSxnQkFBTSxlQUFlO0FBQUEsUUFDdkIsU0FBU0MsTUFBSztBQUNaLGNBQUlELE1BQUssU0FBUyxJQUFJLEdBQUc7QUFDdkIsWUFBQUEsTUFBSyxRQUFRLEtBQUssR0FBRyxTQUFTQSxNQUFLLEdBQUcsR0FBR0MsSUFBRztBQUFBLFVBQzlDO0FBQ0EsZ0JBQU1BO0FBQUEsUUFDUjtBQUVBLGFBQUssa0JBQWtCLG1CQUFtQjtBQUMxQyxhQUFLLFNBQVMsVUFBVTtBQUN4QixhQUFLLFVBQVU7QUFDZixhQUFLLFdBQVc7QUFDaEIsYUFBSyxNQUFNO0FBQ1gsYUFBSyxRQUFRO0FBQ2IsYUFBSyxVQUFVO0FBQ2YsYUFBSyxXQUFXO0FBQ2hCLGFBQUssT0FBTztBQUNaLGFBQUssU0FBUyxVQUFVO0FBQ3hCLGFBQUssZUFBZSxnQkFBZ0I7QUFFcEMsWUFBSUQsTUFBSyxTQUFTLElBQUksR0FBRztBQUN2QixlQUFLLEdBQUcsU0FBUyxDQUFDQyxTQUFRO0FBQ3hCLGlCQUFLLFFBQVFBLElBQUc7QUFBQSxVQUNsQixDQUFDO0FBQUEsUUFDSDtBQUVBLGtCQUFVLE1BQU0sTUFBTTtBQUFBLE1BQ3hCO0FBQUEsTUFFQSxVQUFXLE9BQU8sU0FBUztBQUN6QixZQUFJLEtBQUssUUFBUTtBQUNmLGdCQUFNLEtBQUssTUFBTTtBQUNqQjtBQUFBLFFBQ0Y7QUFFQSxlQUFPLEtBQUssUUFBUTtBQUVwQixhQUFLLFFBQVE7QUFDYixhQUFLLFVBQVU7QUFBQSxNQUNqQjtBQUFBLE1BRUEsVUFBVyxZQUFZLFlBQVksUUFBUSxlQUFlO0FBQ3hELGNBQU0sRUFBRSxTQUFTLFFBQVEsU0FBUyxVQUFVLGdCQUFnQixJQUFJO0FBRWhFLGNBQU0sVUFBVSxvQkFBb0IsUUFBUUQsTUFBSyxnQkFBZ0IsVUFBVSxJQUFJQSxNQUFLLGFBQWEsVUFBVTtBQUUzRyxZQUFJLGFBQWEsS0FBSztBQUNwQixjQUFJLEtBQUssUUFBUTtBQUNmLGlCQUFLLE9BQU8sRUFBRSxZQUFZLFFBQVEsQ0FBQztBQUFBLFVBQ3JDO0FBQ0E7QUFBQSxRQUNGO0FBRUEsYUFBSyxVQUFVO0FBRWYsWUFBSTtBQUVKLFlBQUksS0FBSyxnQkFBZ0IsY0FBYyxLQUFLO0FBQzFDLGdCQUFNLGdCQUFnQixvQkFBb0IsUUFBUUEsTUFBSyxhQUFhLFVBQVUsSUFBSTtBQUNsRixnQkFBTSxjQUFjLGNBQWMsY0FBYztBQUNoRCxnQkFBTSxJQUFJLFlBQVk7QUFFdEIsZUFBSyxXQUFXO0FBQ2hCLGVBQUs7QUFBQSxZQUFnQjtBQUFBLFlBQTZCO0FBQUEsWUFDaEQsRUFBRSxVQUFVLE1BQU0sS0FBSyxhQUFhLFlBQVksZUFBZSxRQUFRO0FBQUEsVUFDekU7QUFBQSxRQUNGLE9BQU87QUFDTCxjQUFJLFlBQVksTUFBTTtBQUNwQjtBQUFBLFVBQ0Y7QUFFQSxnQkFBTSxLQUFLLGdCQUFnQixTQUFTLE1BQU07QUFBQSxZQUN4QztBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFVBQ0YsQ0FBQztBQUVELGNBQ0UsQ0FBQyxPQUNELE9BQU8sSUFBSSxVQUFVLGNBQ3JCLE9BQU8sSUFBSSxRQUFRLGNBQ25CLE9BQU8sSUFBSSxPQUFPLFlBQ2xCO0FBQ0Esa0JBQU0sSUFBSSx3QkFBd0IsbUJBQW1CO0FBQUEsVUFDdkQ7QUFHQSxtQkFBUyxLQUFLLEVBQUUsVUFBVSxNQUFNLEdBQUcsQ0FBQ0MsU0FBUTtBQUMxQyxrQkFBTSxFQUFFLFVBQUFDLFdBQVUsS0FBQUMsTUFBSyxRQUFBQyxTQUFRLFVBQVUsTUFBTSxJQUFJO0FBRW5ELGlCQUFLLE1BQU07QUFDWCxnQkFBSUgsUUFBTyxDQUFDRSxLQUFJLFVBQVU7QUFDeEIsY0FBQUgsTUFBSyxRQUFRRyxNQUFLRixJQUFHO0FBQUEsWUFDdkI7QUFFQSxpQkFBSyxXQUFXO0FBQ2hCLGlCQUFLLGdCQUFnQkMsV0FBVSxNQUFNRCxRQUFPLE1BQU0sRUFBRSxRQUFBRyxTQUFRLFNBQVMsQ0FBQztBQUV0RSxnQkFBSUgsTUFBSztBQUNQLG9CQUFNO0FBQUEsWUFDUjtBQUFBLFVBQ0YsQ0FBQztBQUFBLFFBQ0g7QUFFQSxZQUFJLEdBQUcsU0FBUyxNQUFNO0FBRXRCLGFBQUssTUFBTTtBQUVYLGNBQU0sWUFBWSxJQUFJLHNCQUFzQixTQUN4QyxJQUFJLG9CQUNKLElBQUksZ0JBQWdCO0FBRXhCLGVBQU8sY0FBYztBQUFBLE1BQ3ZCO0FBQUEsTUFFQSxPQUFRLE9BQU87QUFDYixjQUFNLEVBQUUsSUFBSSxJQUFJO0FBRWhCLGVBQU8sTUFBTSxJQUFJLE1BQU0sS0FBSyxJQUFJO0FBQUEsTUFDbEM7QUFBQSxNQUVBLFdBQVksVUFBVTtBQUNwQixjQUFNLEVBQUUsSUFBSSxJQUFJO0FBRWhCLHFCQUFhLElBQUk7QUFFakIsWUFBSSxDQUFDLEtBQUs7QUFDUjtBQUFBLFFBQ0Y7QUFFQSxhQUFLLFdBQVdELE1BQUssYUFBYSxRQUFRO0FBRTFDLFlBQUksSUFBSTtBQUFBLE1BQ1Y7QUFBQSxNQUVBLFFBQVNDLE1BQUs7QUFDWixjQUFNLEVBQUUsS0FBSyxVQUFVLFFBQVEsS0FBSyxJQUFJO0FBRXhDLHFCQUFhLElBQUk7QUFFakIsYUFBSyxVQUFVO0FBRWYsWUFBSSxLQUFLO0FBQ1AsZUFBSyxNQUFNO0FBQ1gsVUFBQUQsTUFBSyxRQUFRLEtBQUtDLElBQUc7QUFBQSxRQUN2QixXQUFXLFVBQVU7QUFDbkIsZUFBSyxXQUFXO0FBQ2hCLHlCQUFlLE1BQU07QUFDbkIsaUJBQUssZ0JBQWdCLFVBQVUsTUFBTUEsTUFBSyxFQUFFLE9BQU8sQ0FBQztBQUFBLFVBQ3RELENBQUM7QUFBQSxRQUNIO0FBRUEsWUFBSSxNQUFNO0FBQ1IsZUFBSyxPQUFPO0FBQ1osVUFBQUQsTUFBSyxRQUFRLE1BQU1DLElBQUc7QUFBQSxRQUN4QjtBQUFBLE1BQ0Y7QUFBQSxJQUNGO0FBRUEsYUFBU0ksUUFBUSxNQUFNLFNBQVMsVUFBVTtBQUN4QyxVQUFJLGFBQWEsUUFBVztBQUMxQixlQUFPLElBQUksUUFBUSxDQUFDLFNBQVMsV0FBVztBQUN0QyxVQUFBQSxRQUFPLEtBQUssTUFBTSxNQUFNLFNBQVMsQ0FBQ0osTUFBS0ssVUFBUztBQUM5QyxtQkFBT0wsT0FBTSxPQUFPQSxJQUFHLElBQUksUUFBUUssS0FBSTtBQUFBLFVBQ3pDLENBQUM7QUFBQSxRQUNILENBQUM7QUFBQSxNQUNIO0FBRUEsVUFBSTtBQUNGLGFBQUssU0FBUyxNQUFNLElBQUksY0FBYyxNQUFNLFNBQVMsUUFBUSxDQUFDO0FBQUEsTUFDaEUsU0FBU0wsTUFBSztBQUNaLFlBQUksT0FBTyxhQUFhLFlBQVk7QUFDbEMsZ0JBQU1BO0FBQUEsUUFDUjtBQUNBLGNBQU0sU0FBUyxNQUFNO0FBQ3JCLHVCQUFlLE1BQU0sU0FBU0EsTUFBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQUEsTUFDaEQ7QUFBQSxJQUNGO0FBRUEsSUFBQUYsUUFBTyxVQUFVTTtBQUFBO0FBQUE7OztBQzNOakI7QUFBQSxnREFBQUUsVUFBQUMsU0FBQTtBQUFBO0FBRUEsUUFBTTtBQUFBLE1BQ0osVUFBQUM7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLElBQ0YsSUFBSSxRQUFRLGFBQWE7QUFDekIsUUFBTTtBQUFBLE1BQ0o7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLElBQ0YsSUFBSTtBQUNKLFFBQU1DLFFBQU87QUFDYixRQUFNLEVBQUUsY0FBYyxJQUFJLFFBQVEsa0JBQWtCO0FBQ3BELFFBQU0sRUFBRSxXQUFXLGFBQWEsSUFBSTtBQUNwQyxRQUFNLFNBQVMsUUFBUSxhQUFhO0FBRXBDLFFBQU0sVUFBVSxPQUFPLFFBQVE7QUFFL0IsUUFBTSxrQkFBTixjQUE4QkQsVUFBUztBQUFBLE1BQ3JDLGNBQWU7QUFDYixjQUFNLEVBQUUsYUFBYSxLQUFLLENBQUM7QUFFM0IsYUFBSyxPQUFPLElBQUk7QUFBQSxNQUNsQjtBQUFBLE1BRUEsUUFBUztBQUNQLGNBQU0sRUFBRSxDQUFDLE9BQU8sR0FBRyxPQUFPLElBQUk7QUFFOUIsWUFBSSxRQUFRO0FBQ1YsZUFBSyxPQUFPLElBQUk7QUFDaEIsaUJBQU87QUFBQSxRQUNUO0FBQUEsTUFDRjtBQUFBLE1BRUEsU0FBVUUsTUFBSyxVQUFVO0FBQ3ZCLGFBQUssTUFBTTtBQUVYLGlCQUFTQSxJQUFHO0FBQUEsTUFDZDtBQUFBLElBQ0Y7QUFFQSxRQUFNLG1CQUFOLGNBQStCRixVQUFTO0FBQUEsTUFDdEMsWUFBYSxRQUFRO0FBQ25CLGNBQU0sRUFBRSxhQUFhLEtBQUssQ0FBQztBQUMzQixhQUFLLE9BQU8sSUFBSTtBQUFBLE1BQ2xCO0FBQUEsTUFFQSxRQUFTO0FBQ1AsYUFBSyxPQUFPLEVBQUU7QUFBQSxNQUNoQjtBQUFBLE1BRUEsU0FBVUUsTUFBSyxVQUFVO0FBQ3ZCLFlBQUksQ0FBQ0EsUUFBTyxDQUFDLEtBQUssZUFBZSxZQUFZO0FBQzNDLFVBQUFBLE9BQU0sSUFBSSxvQkFBb0I7QUFBQSxRQUNoQztBQUVBLGlCQUFTQSxJQUFHO0FBQUEsTUFDZDtBQUFBLElBQ0Y7QUFFQSxRQUFNLGtCQUFOLGNBQThCLGNBQWM7QUFBQSxNQUMxQyxZQUFhLE1BQU0sU0FBUztBQUMxQixZQUFJLENBQUMsUUFBUSxPQUFPLFNBQVMsVUFBVTtBQUNyQyxnQkFBTSxJQUFJLHFCQUFxQixjQUFjO0FBQUEsUUFDL0M7QUFFQSxZQUFJLE9BQU8sWUFBWSxZQUFZO0FBQ2pDLGdCQUFNLElBQUkscUJBQXFCLGlCQUFpQjtBQUFBLFFBQ2xEO0FBRUEsY0FBTSxFQUFFLFFBQVEsUUFBUSxRQUFRLFFBQVEsZ0JBQWdCLElBQUk7QUFFNUQsWUFBSSxVQUFVLE9BQU8sT0FBTyxPQUFPLGNBQWMsT0FBTyxPQUFPLHFCQUFxQixZQUFZO0FBQzlGLGdCQUFNLElBQUkscUJBQXFCLCtDQUErQztBQUFBLFFBQ2hGO0FBRUEsWUFBSSxXQUFXLFdBQVc7QUFDeEIsZ0JBQU0sSUFBSSxxQkFBcUIsZ0JBQWdCO0FBQUEsUUFDakQ7QUFFQSxZQUFJLFVBQVUsT0FBTyxXQUFXLFlBQVk7QUFDMUMsZ0JBQU0sSUFBSSxxQkFBcUIseUJBQXlCO0FBQUEsUUFDMUQ7QUFFQSxjQUFNLGlCQUFpQjtBQUV2QixhQUFLLFNBQVMsVUFBVTtBQUN4QixhQUFLLGtCQUFrQixtQkFBbUI7QUFDMUMsYUFBSyxVQUFVO0FBQ2YsYUFBSyxRQUFRO0FBQ2IsYUFBSyxVQUFVO0FBQ2YsYUFBSyxTQUFTLFVBQVU7QUFFeEIsYUFBSyxNQUFNLElBQUksZ0JBQWdCLEVBQUUsR0FBRyxTQUFTRCxNQUFLLEdBQUc7QUFFckQsYUFBSyxNQUFNLElBQUksT0FBTztBQUFBLFVBQ3BCLG9CQUFvQixLQUFLO0FBQUEsVUFDekIsYUFBYTtBQUFBLFVBQ2IsTUFBTSxNQUFNO0FBQ1Ysa0JBQU0sRUFBRSxLQUFLLElBQUk7QUFFakIsZ0JBQUksTUFBTSxRQUFRO0FBQ2hCLG1CQUFLLE9BQU87QUFBQSxZQUNkO0FBQUEsVUFDRjtBQUFBLFVBQ0EsT0FBTyxDQUFDLE9BQU8sVUFBVSxhQUFhO0FBQ3BDLGtCQUFNLEVBQUUsSUFBSSxJQUFJO0FBRWhCLGdCQUFJLElBQUksS0FBSyxPQUFPLFFBQVEsS0FBSyxJQUFJLGVBQWUsV0FBVztBQUM3RCx1QkFBUztBQUFBLFlBQ1gsT0FBTztBQUNMLGtCQUFJLE9BQU8sSUFBSTtBQUFBLFlBQ2pCO0FBQUEsVUFDRjtBQUFBLFVBQ0EsU0FBUyxDQUFDQyxNQUFLLGFBQWE7QUFDMUIsa0JBQU0sRUFBRSxNQUFNLEtBQUssS0FBSyxLQUFLLE1BQU0sSUFBSTtBQUV2QyxnQkFBSSxDQUFDQSxRQUFPLENBQUMsSUFBSSxlQUFlLFlBQVk7QUFDMUMsY0FBQUEsT0FBTSxJQUFJLG9CQUFvQjtBQUFBLFlBQ2hDO0FBRUEsZ0JBQUksU0FBU0EsTUFBSztBQUNoQixvQkFBTTtBQUFBLFlBQ1I7QUFFQSxZQUFBRCxNQUFLLFFBQVEsTUFBTUMsSUFBRztBQUN0QixZQUFBRCxNQUFLLFFBQVEsS0FBS0MsSUFBRztBQUNyQixZQUFBRCxNQUFLLFFBQVEsS0FBS0MsSUFBRztBQUVyQix5QkFBYSxJQUFJO0FBRWpCLHFCQUFTQSxJQUFHO0FBQUEsVUFDZDtBQUFBLFFBQ0YsQ0FBQyxFQUFFLEdBQUcsYUFBYSxNQUFNO0FBQ3ZCLGdCQUFNLEVBQUUsSUFBSSxJQUFJO0FBR2hCLGNBQUksS0FBSyxJQUFJO0FBQUEsUUFDZixDQUFDO0FBRUQsYUFBSyxNQUFNO0FBRVgsa0JBQVUsTUFBTSxNQUFNO0FBQUEsTUFDeEI7QUFBQSxNQUVBLFVBQVcsT0FBTyxTQUFTO0FBQ3pCLGNBQU0sRUFBRSxLQUFLLElBQUksSUFBSTtBQUVyQixZQUFJLEtBQUssUUFBUTtBQUNmLGdCQUFNLEtBQUssTUFBTTtBQUNqQjtBQUFBLFFBQ0Y7QUFFQSxlQUFPLENBQUMsS0FBSyw0QkFBNEI7QUFDekMsZUFBTyxDQUFDLElBQUksU0FBUztBQUVyQixhQUFLLFFBQVE7QUFDYixhQUFLLFVBQVU7QUFBQSxNQUNqQjtBQUFBLE1BRUEsVUFBVyxZQUFZLFlBQVksUUFBUTtBQUN6QyxjQUFNLEVBQUUsUUFBUSxTQUFTLFFBQVEsSUFBSTtBQUVyQyxZQUFJLGFBQWEsS0FBSztBQUNwQixjQUFJLEtBQUssUUFBUTtBQUNmLGtCQUFNLFVBQVUsS0FBSyxvQkFBb0IsUUFBUUQsTUFBSyxnQkFBZ0IsVUFBVSxJQUFJQSxNQUFLLGFBQWEsVUFBVTtBQUNoSCxpQkFBSyxPQUFPLEVBQUUsWUFBWSxRQUFRLENBQUM7QUFBQSxVQUNyQztBQUNBO0FBQUEsUUFDRjtBQUVBLGFBQUssTUFBTSxJQUFJLGlCQUFpQixNQUFNO0FBRXRDLFlBQUk7QUFDSixZQUFJO0FBQ0YsZUFBSyxVQUFVO0FBQ2YsZ0JBQU0sVUFBVSxLQUFLLG9CQUFvQixRQUFRQSxNQUFLLGdCQUFnQixVQUFVLElBQUlBLE1BQUssYUFBYSxVQUFVO0FBQ2hILGlCQUFPLEtBQUssZ0JBQWdCLFNBQVMsTUFBTTtBQUFBLFlBQ3pDO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBLE1BQU0sS0FBSztBQUFBLFlBQ1g7QUFBQSxVQUNGLENBQUM7QUFBQSxRQUNILFNBQVNDLE1BQUs7QUFDWixlQUFLLElBQUksR0FBRyxTQUFTRCxNQUFLLEdBQUc7QUFDN0IsZ0JBQU1DO0FBQUEsUUFDUjtBQUVBLFlBQUksQ0FBQyxRQUFRLE9BQU8sS0FBSyxPQUFPLFlBQVk7QUFDMUMsZ0JBQU0sSUFBSSx3QkFBd0IsbUJBQW1CO0FBQUEsUUFDdkQ7QUFFQSxhQUNHLEdBQUcsUUFBUSxDQUFDLFVBQVU7QUFDckIsZ0JBQU0sRUFBRSxLQUFLLE1BQUFDLE1BQUssSUFBSTtBQUV0QixjQUFJLENBQUMsSUFBSSxLQUFLLEtBQUssS0FBS0EsTUFBSyxPQUFPO0FBQ2xDLFlBQUFBLE1BQUssTUFBTTtBQUFBLFVBQ2I7QUFBQSxRQUNGLENBQUMsRUFDQSxHQUFHLFNBQVMsQ0FBQ0QsU0FBUTtBQUNwQixnQkFBTSxFQUFFLElBQUksSUFBSTtBQUVoQixVQUFBRCxNQUFLLFFBQVEsS0FBS0MsSUFBRztBQUFBLFFBQ3ZCLENBQUMsRUFDQSxHQUFHLE9BQU8sTUFBTTtBQUNmLGdCQUFNLEVBQUUsSUFBSSxJQUFJO0FBRWhCLGNBQUksS0FBSyxJQUFJO0FBQUEsUUFDZixDQUFDLEVBQ0EsR0FBRyxTQUFTLE1BQU07QUFDakIsZ0JBQU0sRUFBRSxJQUFJLElBQUk7QUFFaEIsY0FBSSxDQUFDLElBQUksZUFBZSxPQUFPO0FBQzdCLFlBQUFELE1BQUssUUFBUSxLQUFLLElBQUksb0JBQW9CLENBQUM7QUFBQSxVQUM3QztBQUFBLFFBQ0YsQ0FBQztBQUVILGFBQUssT0FBTztBQUFBLE1BQ2Q7QUFBQSxNQUVBLE9BQVEsT0FBTztBQUNiLGNBQU0sRUFBRSxJQUFJLElBQUk7QUFDaEIsZUFBTyxJQUFJLEtBQUssS0FBSztBQUFBLE1BQ3ZCO0FBQUEsTUFFQSxXQUFZLFVBQVU7QUFDcEIsY0FBTSxFQUFFLElBQUksSUFBSTtBQUNoQixZQUFJLEtBQUssSUFBSTtBQUFBLE1BQ2Y7QUFBQSxNQUVBLFFBQVNDLE1BQUs7QUFDWixjQUFNLEVBQUUsSUFBSSxJQUFJO0FBQ2hCLGFBQUssVUFBVTtBQUNmLFFBQUFELE1BQUssUUFBUSxLQUFLQyxJQUFHO0FBQUEsTUFDdkI7QUFBQSxJQUNGO0FBRUEsYUFBUyxTQUFVLE1BQU0sU0FBUztBQUNoQyxVQUFJO0FBQ0YsY0FBTSxrQkFBa0IsSUFBSSxnQkFBZ0IsTUFBTSxPQUFPO0FBQ3pELGFBQUssU0FBUyxFQUFFLEdBQUcsTUFBTSxNQUFNLGdCQUFnQixJQUFJLEdBQUcsZUFBZTtBQUNyRSxlQUFPLGdCQUFnQjtBQUFBLE1BQ3pCLFNBQVNBLE1BQUs7QUFDWixlQUFPLElBQUksWUFBWSxFQUFFLFFBQVFBLElBQUc7QUFBQSxNQUN0QztBQUFBLElBQ0Y7QUFFQSxJQUFBSCxRQUFPLFVBQVU7QUFBQTtBQUFBOzs7QUMxUGpCO0FBQUEsK0NBQUFLLFVBQUFDLFNBQUE7QUFBQTtBQUVBLFFBQU0sRUFBRSxzQkFBc0IsWUFBWSxJQUFJO0FBQzlDLFFBQU0sRUFBRSxjQUFjLElBQUksUUFBUSxrQkFBa0I7QUFDcEQsUUFBTUMsUUFBTztBQUNiLFFBQU0sRUFBRSxXQUFXLGFBQWEsSUFBSTtBQUNwQyxRQUFNLFNBQVMsUUFBUSxhQUFhO0FBRXBDLFFBQU0saUJBQU4sY0FBNkIsY0FBYztBQUFBLE1BQ3pDLFlBQWEsTUFBTSxVQUFVO0FBQzNCLFlBQUksQ0FBQyxRQUFRLE9BQU8sU0FBUyxVQUFVO0FBQ3JDLGdCQUFNLElBQUkscUJBQXFCLGNBQWM7QUFBQSxRQUMvQztBQUVBLFlBQUksT0FBTyxhQUFhLFlBQVk7QUFDbEMsZ0JBQU0sSUFBSSxxQkFBcUIsa0JBQWtCO0FBQUEsUUFDbkQ7QUFFQSxjQUFNLEVBQUUsUUFBUSxRQUFRLGdCQUFnQixJQUFJO0FBRTVDLFlBQUksVUFBVSxPQUFPLE9BQU8sT0FBTyxjQUFjLE9BQU8sT0FBTyxxQkFBcUIsWUFBWTtBQUM5RixnQkFBTSxJQUFJLHFCQUFxQiwrQ0FBK0M7QUFBQSxRQUNoRjtBQUVBLGNBQU0sZ0JBQWdCO0FBRXRCLGFBQUssa0JBQWtCLG1CQUFtQjtBQUMxQyxhQUFLLFNBQVMsVUFBVTtBQUN4QixhQUFLLFdBQVc7QUFDaEIsYUFBSyxRQUFRO0FBQ2IsYUFBSyxVQUFVO0FBRWYsa0JBQVUsTUFBTSxNQUFNO0FBQUEsTUFDeEI7QUFBQSxNQUVBLFVBQVcsT0FBTyxTQUFTO0FBQ3pCLFlBQUksS0FBSyxRQUFRO0FBQ2YsZ0JBQU0sS0FBSyxNQUFNO0FBQ2pCO0FBQUEsUUFDRjtBQUVBLGVBQU8sS0FBSyxRQUFRO0FBRXBCLGFBQUssUUFBUTtBQUNiLGFBQUssVUFBVTtBQUFBLE1BQ2pCO0FBQUEsTUFFQSxZQUFhO0FBQ1gsY0FBTSxJQUFJLFlBQVksZUFBZSxJQUFJO0FBQUEsTUFDM0M7QUFBQSxNQUVBLFVBQVcsWUFBWSxZQUFZLFFBQVE7QUFDekMsZUFBTyxlQUFlLEdBQUc7QUFFekIsY0FBTSxFQUFFLFVBQVUsUUFBUSxRQUFRLElBQUk7QUFFdEMscUJBQWEsSUFBSTtBQUVqQixhQUFLLFdBQVc7QUFDaEIsY0FBTSxVQUFVLEtBQUssb0JBQW9CLFFBQVFBLE1BQUssZ0JBQWdCLFVBQVUsSUFBSUEsTUFBSyxhQUFhLFVBQVU7QUFDaEgsYUFBSyxnQkFBZ0IsVUFBVSxNQUFNLE1BQU07QUFBQSxVQUN6QztBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFFBQ0YsQ0FBQztBQUFBLE1BQ0g7QUFBQSxNQUVBLFFBQVNDLE1BQUs7QUFDWixjQUFNLEVBQUUsVUFBVSxPQUFPLElBQUk7QUFFN0IscUJBQWEsSUFBSTtBQUVqQixZQUFJLFVBQVU7QUFDWixlQUFLLFdBQVc7QUFDaEIseUJBQWUsTUFBTTtBQUNuQixpQkFBSyxnQkFBZ0IsVUFBVSxNQUFNQSxNQUFLLEVBQUUsT0FBTyxDQUFDO0FBQUEsVUFDdEQsQ0FBQztBQUFBLFFBQ0g7QUFBQSxNQUNGO0FBQUEsSUFDRjtBQUVBLGFBQVMsUUFBUyxNQUFNLFVBQVU7QUFDaEMsVUFBSSxhQUFhLFFBQVc7QUFDMUIsZUFBTyxJQUFJLFFBQVEsQ0FBQyxTQUFTLFdBQVc7QUFDdEMsa0JBQVEsS0FBSyxNQUFNLE1BQU0sQ0FBQ0EsTUFBS0MsVUFBUztBQUN0QyxtQkFBT0QsT0FBTSxPQUFPQSxJQUFHLElBQUksUUFBUUMsS0FBSTtBQUFBLFVBQ3pDLENBQUM7QUFBQSxRQUNILENBQUM7QUFBQSxNQUNIO0FBRUEsVUFBSTtBQUNGLGNBQU0saUJBQWlCLElBQUksZUFBZSxNQUFNLFFBQVE7QUFDeEQsYUFBSyxTQUFTO0FBQUEsVUFDWixHQUFHO0FBQUEsVUFDSCxRQUFRLEtBQUssVUFBVTtBQUFBLFVBQ3ZCLFNBQVMsS0FBSyxZQUFZO0FBQUEsUUFDNUIsR0FBRyxjQUFjO0FBQUEsTUFDbkIsU0FBU0QsTUFBSztBQUNaLFlBQUksT0FBTyxhQUFhLFlBQVk7QUFDbEMsZ0JBQU1BO0FBQUEsUUFDUjtBQUNBLGNBQU0sU0FBUyxNQUFNO0FBQ3JCLHVCQUFlLE1BQU0sU0FBU0EsTUFBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQUEsTUFDaEQ7QUFBQSxJQUNGO0FBRUEsSUFBQUYsUUFBTyxVQUFVO0FBQUE7QUFBQTs7O0FDM0dqQjtBQUFBLCtDQUFBSSxVQUFBQyxTQUFBO0FBQUE7QUFFQSxRQUFNLFNBQVMsUUFBUSxhQUFhO0FBQ3BDLFFBQU0sRUFBRSxjQUFjLElBQUksUUFBUSxrQkFBa0I7QUFDcEQsUUFBTSxFQUFFLHNCQUFzQixZQUFZLElBQUk7QUFDOUMsUUFBTUMsUUFBTztBQUNiLFFBQU0sRUFBRSxXQUFXLGFBQWEsSUFBSTtBQUVwQyxRQUFNLGlCQUFOLGNBQTZCLGNBQWM7QUFBQSxNQUN6QyxZQUFhLE1BQU0sVUFBVTtBQUMzQixZQUFJLENBQUMsUUFBUSxPQUFPLFNBQVMsVUFBVTtBQUNyQyxnQkFBTSxJQUFJLHFCQUFxQixjQUFjO0FBQUEsUUFDL0M7QUFFQSxZQUFJLE9BQU8sYUFBYSxZQUFZO0FBQ2xDLGdCQUFNLElBQUkscUJBQXFCLGtCQUFrQjtBQUFBLFFBQ25EO0FBRUEsY0FBTSxFQUFFLFFBQVEsUUFBUSxnQkFBZ0IsSUFBSTtBQUU1QyxZQUFJLFVBQVUsT0FBTyxPQUFPLE9BQU8sY0FBYyxPQUFPLE9BQU8scUJBQXFCLFlBQVk7QUFDOUYsZ0JBQU0sSUFBSSxxQkFBcUIsK0NBQStDO0FBQUEsUUFDaEY7QUFFQSxjQUFNLGdCQUFnQjtBQUV0QixhQUFLLFNBQVMsVUFBVTtBQUN4QixhQUFLLGtCQUFrQixtQkFBbUI7QUFDMUMsYUFBSyxXQUFXO0FBQ2hCLGFBQUssUUFBUTtBQUViLGtCQUFVLE1BQU0sTUFBTTtBQUFBLE1BQ3hCO0FBQUEsTUFFQSxVQUFXLE9BQU8sU0FBUztBQUN6QixZQUFJLEtBQUssUUFBUTtBQUNmLGdCQUFNLEtBQUssTUFBTTtBQUNqQjtBQUFBLFFBQ0Y7QUFFQSxlQUFPLEtBQUssUUFBUTtBQUVwQixhQUFLLFFBQVE7QUFDYixhQUFLLFVBQVU7QUFBQSxNQUNqQjtBQUFBLE1BRUEsWUFBYTtBQUNYLGNBQU0sSUFBSSxZQUFZLGVBQWUsSUFBSTtBQUFBLE1BQzNDO0FBQUEsTUFFQSxVQUFXLFlBQVksWUFBWSxRQUFRO0FBQ3pDLGNBQU0sRUFBRSxVQUFVLFFBQVEsUUFBUSxJQUFJO0FBRXRDLHFCQUFhLElBQUk7QUFFakIsYUFBSyxXQUFXO0FBRWhCLFlBQUksVUFBVTtBQUVkLFlBQUksV0FBVyxNQUFNO0FBQ25CLG9CQUFVLEtBQUssb0JBQW9CLFFBQVFBLE1BQUssZ0JBQWdCLFVBQVUsSUFBSUEsTUFBSyxhQUFhLFVBQVU7QUFBQSxRQUM1RztBQUVBLGFBQUssZ0JBQWdCLFVBQVUsTUFBTSxNQUFNO0FBQUEsVUFDekM7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsUUFDRixDQUFDO0FBQUEsTUFDSDtBQUFBLE1BRUEsUUFBU0MsTUFBSztBQUNaLGNBQU0sRUFBRSxVQUFVLE9BQU8sSUFBSTtBQUU3QixxQkFBYSxJQUFJO0FBRWpCLFlBQUksVUFBVTtBQUNaLGVBQUssV0FBVztBQUNoQix5QkFBZSxNQUFNO0FBQ25CLGlCQUFLLGdCQUFnQixVQUFVLE1BQU1BLE1BQUssRUFBRSxPQUFPLENBQUM7QUFBQSxVQUN0RCxDQUFDO0FBQUEsUUFDSDtBQUFBLE1BQ0Y7QUFBQSxJQUNGO0FBRUEsYUFBUyxRQUFTLE1BQU0sVUFBVTtBQUNoQyxVQUFJLGFBQWEsUUFBVztBQUMxQixlQUFPLElBQUksUUFBUSxDQUFDLFNBQVMsV0FBVztBQUN0QyxrQkFBUSxLQUFLLE1BQU0sTUFBTSxDQUFDQSxNQUFLQyxVQUFTO0FBQ3RDLG1CQUFPRCxPQUFNLE9BQU9BLElBQUcsSUFBSSxRQUFRQyxLQUFJO0FBQUEsVUFDekMsQ0FBQztBQUFBLFFBQ0gsQ0FBQztBQUFBLE1BQ0g7QUFFQSxVQUFJO0FBQ0YsY0FBTSxpQkFBaUIsSUFBSSxlQUFlLE1BQU0sUUFBUTtBQUN4RCxhQUFLLFNBQVMsRUFBRSxHQUFHLE1BQU0sUUFBUSxVQUFVLEdBQUcsY0FBYztBQUFBLE1BQzlELFNBQVNELE1BQUs7QUFDWixZQUFJLE9BQU8sYUFBYSxZQUFZO0FBQ2xDLGdCQUFNQTtBQUFBLFFBQ1I7QUFDQSxjQUFNLFNBQVMsTUFBTTtBQUNyQix1QkFBZSxNQUFNLFNBQVNBLE1BQUssRUFBRSxPQUFPLENBQUMsQ0FBQztBQUFBLE1BQ2hEO0FBQUEsSUFDRjtBQUVBLElBQUFGLFFBQU8sVUFBVTtBQUFBO0FBQUE7OztBQzNHakI7QUFBQSx5Q0FBQUksVUFBQUMsU0FBQTtBQUFBO0FBRUEsSUFBQUEsUUFBTyxRQUFRLFVBQVU7QUFDekIsSUFBQUEsUUFBTyxRQUFRLFNBQVM7QUFDeEIsSUFBQUEsUUFBTyxRQUFRLFdBQVc7QUFDMUIsSUFBQUEsUUFBTyxRQUFRLFVBQVU7QUFDekIsSUFBQUEsUUFBTyxRQUFRLFVBQVU7QUFBQTtBQUFBOzs7QUNOekI7QUFBQSxnREFBQUMsVUFBQUMsU0FBQTtBQUFBO0FBRUEsUUFBTSxFQUFFLFlBQVksSUFBSTtBQUV4QixRQUFNLHNCQUFOLE1BQU0sNkJBQTRCLFlBQVk7QUFBQSxNQUM1QyxZQUFhLFNBQVM7QUFDcEIsY0FBTSxPQUFPO0FBQ2IsY0FBTSxrQkFBa0IsTUFBTSxvQkFBbUI7QUFDakQsYUFBSyxPQUFPO0FBQ1osYUFBSyxVQUFVLFdBQVc7QUFDMUIsYUFBSyxPQUFPO0FBQUEsTUFDZDtBQUFBLElBQ0Y7QUFFQSxJQUFBQSxRQUFPLFVBQVU7QUFBQSxNQUNmO0FBQUEsSUFDRjtBQUFBO0FBQUE7OztBQ2hCQTtBQUFBLGlEQUFBQyxVQUFBQyxTQUFBO0FBQUE7QUFFQSxJQUFBQSxRQUFPLFVBQVU7QUFBQSxNQUNmLFFBQVEsT0FBTyxPQUFPO0FBQUEsTUFDdEIsVUFBVSxPQUFPLFNBQVM7QUFBQSxNQUMxQixVQUFVLE9BQU8sU0FBUztBQUFBLE1BQzFCLGFBQWEsT0FBTyxZQUFZO0FBQUEsTUFDaEMsY0FBYyxPQUFPLGNBQWM7QUFBQSxNQUNuQyxpQkFBaUIsT0FBTyxpQkFBaUI7QUFBQSxNQUN6QyxrQkFBa0IsT0FBTyxrQkFBa0I7QUFBQSxNQUMzQyxnQkFBZ0IsT0FBTyxnQkFBZ0I7QUFBQSxNQUN2QyxZQUFZLE9BQU8sWUFBWTtBQUFBLE1BQy9CLGVBQWUsT0FBTyxnQkFBZ0I7QUFBQSxNQUN0QyxlQUFlLE9BQU8sZ0JBQWdCO0FBQUEsTUFDdEMsZUFBZSxPQUFPLGVBQWU7QUFBQSxNQUNyQyxRQUFRLE9BQU8sT0FBTztBQUFBLE1BQ3RCLGdCQUFnQixPQUFPLHNCQUFzQjtBQUFBLE1BQzdDLFNBQVMsT0FBTyxRQUFRO0FBQUEsTUFDeEIsZUFBZSxPQUFPLGdCQUFnQjtBQUFBLE1BQ3RDLGFBQWEsT0FBTyxhQUFhO0FBQUEsTUFDakMsZ0JBQWdCLE9BQU8saUJBQWlCO0FBQUEsTUFDeEMsWUFBWSxPQUFPLFdBQVc7QUFBQSxJQUNoQztBQUFBO0FBQUE7OztBQ3RCQTtBQUFBLCtDQUFBQyxVQUFBQyxTQUFBO0FBQUE7QUFFQSxRQUFNLEVBQUUsb0JBQW9CLElBQUk7QUFDaEMsUUFBTTtBQUFBLE1BQ0o7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsSUFDRixJQUFJO0FBQ0osUUFBTSxFQUFFLFVBQUFDLFVBQVMsSUFBSTtBQUNyQixRQUFNLEVBQUUsYUFBYSxJQUFJLFFBQVEsV0FBVztBQUM1QyxRQUFNO0FBQUEsTUFDSixPQUFPO0FBQUEsUUFDTDtBQUFBLE1BQ0Y7QUFBQSxJQUNGLElBQUksUUFBUSxXQUFXO0FBRXZCLGFBQVMsV0FBWSxPQUFPLE9BQU87QUFDakMsVUFBSSxPQUFPLFVBQVUsVUFBVTtBQUM3QixlQUFPLFVBQVU7QUFBQSxNQUNuQjtBQUNBLFVBQUksaUJBQWlCLFFBQVE7QUFDM0IsZUFBTyxNQUFNLEtBQUssS0FBSztBQUFBLE1BQ3pCO0FBQ0EsVUFBSSxPQUFPLFVBQVUsWUFBWTtBQUMvQixlQUFPLE1BQU0sS0FBSyxNQUFNO0FBQUEsTUFDMUI7QUFDQSxhQUFPO0FBQUEsSUFDVDtBQUVBLGFBQVMsaUJBQWtCLFNBQVM7QUFDbEMsYUFBTyxPQUFPO0FBQUEsUUFDWixPQUFPLFFBQVEsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDLFlBQVksV0FBVyxNQUFNO0FBQ3pELGlCQUFPLENBQUMsV0FBVyxrQkFBa0IsR0FBRyxXQUFXO0FBQUEsUUFDckQsQ0FBQztBQUFBLE1BQ0g7QUFBQSxJQUNGO0FBTUEsYUFBUyxnQkFBaUIsU0FBUyxLQUFLO0FBQ3RDLFVBQUksTUFBTSxRQUFRLE9BQU8sR0FBRztBQUMxQixpQkFBUyxJQUFJLEdBQUcsSUFBSSxRQUFRLFFBQVEsS0FBSyxHQUFHO0FBQzFDLGNBQUksUUFBUSxDQUFDLEVBQUUsa0JBQWtCLE1BQU0sSUFBSSxrQkFBa0IsR0FBRztBQUM5RCxtQkFBTyxRQUFRLElBQUksQ0FBQztBQUFBLFVBQ3RCO0FBQUEsUUFDRjtBQUVBLGVBQU87QUFBQSxNQUNULFdBQVcsT0FBTyxRQUFRLFFBQVEsWUFBWTtBQUM1QyxlQUFPLFFBQVEsSUFBSSxHQUFHO0FBQUEsTUFDeEIsT0FBTztBQUNMLGVBQU8saUJBQWlCLE9BQU8sRUFBRSxJQUFJLGtCQUFrQixDQUFDO0FBQUEsTUFDMUQ7QUFBQSxJQUNGO0FBR0EsYUFBUyxzQkFBdUIsU0FBUztBQUN2QyxZQUFNQyxTQUFRLFFBQVEsTUFBTTtBQUM1QixZQUFNLFVBQVUsQ0FBQztBQUNqQixlQUFTQyxTQUFRLEdBQUdBLFNBQVFELE9BQU0sUUFBUUMsVUFBUyxHQUFHO0FBQ3BELGdCQUFRLEtBQUssQ0FBQ0QsT0FBTUMsTUFBSyxHQUFHRCxPQUFNQyxTQUFRLENBQUMsQ0FBQyxDQUFDO0FBQUEsTUFDL0M7QUFDQSxhQUFPLE9BQU8sWUFBWSxPQUFPO0FBQUEsSUFDbkM7QUFFQSxhQUFTLGFBQWNDLGVBQWMsU0FBUztBQUM1QyxVQUFJLE9BQU9BLGNBQWEsWUFBWSxZQUFZO0FBQzlDLFlBQUksTUFBTSxRQUFRLE9BQU8sR0FBRztBQUMxQixvQkFBVSxzQkFBc0IsT0FBTztBQUFBLFFBQ3pDO0FBQ0EsZUFBT0EsY0FBYSxRQUFRLFVBQVUsaUJBQWlCLE9BQU8sSUFBSSxDQUFDLENBQUM7QUFBQSxNQUN0RTtBQUNBLFVBQUksT0FBT0EsY0FBYSxZQUFZLGFBQWE7QUFDL0MsZUFBTztBQUFBLE1BQ1Q7QUFDQSxVQUFJLE9BQU8sWUFBWSxZQUFZLE9BQU9BLGNBQWEsWUFBWSxVQUFVO0FBQzNFLGVBQU87QUFBQSxNQUNUO0FBRUEsaUJBQVcsQ0FBQyxpQkFBaUJDLGlCQUFnQixLQUFLLE9BQU8sUUFBUUQsY0FBYSxPQUFPLEdBQUc7QUFDdEYsY0FBTSxjQUFjLGdCQUFnQixTQUFTLGVBQWU7QUFFNUQsWUFBSSxDQUFDLFdBQVdDLG1CQUFrQixXQUFXLEdBQUc7QUFDOUMsaUJBQU87QUFBQSxRQUNUO0FBQUEsTUFDRjtBQUNBLGFBQU87QUFBQSxJQUNUO0FBRUEsYUFBUyxRQUFTLE1BQU07QUFDdEIsVUFBSSxPQUFPLFNBQVMsVUFBVTtBQUM1QixlQUFPO0FBQUEsTUFDVDtBQUVBLFlBQU0sZUFBZSxLQUFLLE1BQU0sR0FBRztBQUVuQyxVQUFJLGFBQWEsV0FBVyxHQUFHO0FBQzdCLGVBQU87QUFBQSxNQUNUO0FBRUEsWUFBTSxLQUFLLElBQUksZ0JBQWdCLGFBQWEsSUFBSSxDQUFDO0FBQ2pELFNBQUcsS0FBSztBQUNSLGFBQU8sQ0FBQyxHQUFHLGNBQWMsR0FBRyxTQUFTLENBQUMsRUFBRSxLQUFLLEdBQUc7QUFBQSxJQUNsRDtBQUVBLGFBQVMsU0FBVUQsZUFBYyxFQUFFLE1BQU0sUUFBUSxNQUFNLFFBQVEsR0FBRztBQUNoRSxZQUFNLFlBQVksV0FBV0EsY0FBYSxNQUFNLElBQUk7QUFDcEQsWUFBTSxjQUFjLFdBQVdBLGNBQWEsUUFBUSxNQUFNO0FBQzFELFlBQU0sWUFBWSxPQUFPQSxjQUFhLFNBQVMsY0FBYyxXQUFXQSxjQUFhLE1BQU0sSUFBSSxJQUFJO0FBQ25HLFlBQU0sZUFBZSxhQUFhQSxlQUFjLE9BQU87QUFDdkQsYUFBTyxhQUFhLGVBQWUsYUFBYTtBQUFBLElBQ2xEO0FBRUEsYUFBUyxnQkFBaUJFLE9BQU07QUFDOUIsVUFBSSxPQUFPLFNBQVNBLEtBQUksR0FBRztBQUN6QixlQUFPQTtBQUFBLE1BQ1QsV0FBV0EsaUJBQWdCLFlBQVk7QUFDckMsZUFBT0E7QUFBQSxNQUNULFdBQVdBLGlCQUFnQixhQUFhO0FBQ3RDLGVBQU9BO0FBQUEsTUFDVCxXQUFXLE9BQU9BLFVBQVMsVUFBVTtBQUNuQyxlQUFPLEtBQUssVUFBVUEsS0FBSTtBQUFBLE1BQzVCLE9BQU87QUFDTCxlQUFPQSxNQUFLLFNBQVM7QUFBQSxNQUN2QjtBQUFBLElBQ0Y7QUFFQSxhQUFTLGdCQUFpQixnQkFBZ0IsS0FBSztBQUM3QyxZQUFNLFdBQVcsSUFBSSxRQUFRTCxVQUFTLElBQUksTUFBTSxJQUFJLEtBQUssSUFBSSxJQUFJO0FBQ2pFLFlBQU0sZUFBZSxPQUFPLGFBQWEsV0FBVyxRQUFRLFFBQVEsSUFBSTtBQUd4RSxVQUFJLHdCQUF3QixlQUFlLE9BQU8sQ0FBQyxFQUFFLFNBQVMsTUFBTSxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsRUFBRSxLQUFLLE1BQU0sV0FBVyxRQUFRLElBQUksR0FBRyxZQUFZLENBQUM7QUFDM0ksVUFBSSxzQkFBc0IsV0FBVyxHQUFHO0FBQ3RDLGNBQU0sSUFBSSxvQkFBb0IsdUNBQXVDLFlBQVksR0FBRztBQUFBLE1BQ3RGO0FBR0EsOEJBQXdCLHNCQUFzQixPQUFPLENBQUMsRUFBRSxPQUFPLE1BQU0sV0FBVyxRQUFRLElBQUksTUFBTSxDQUFDO0FBQ25HLFVBQUksc0JBQXNCLFdBQVcsR0FBRztBQUN0QyxjQUFNLElBQUksb0JBQW9CLHlDQUF5QyxJQUFJLE1BQU0sY0FBYyxZQUFZLEdBQUc7QUFBQSxNQUNoSDtBQUdBLDhCQUF3QixzQkFBc0IsT0FBTyxDQUFDLEVBQUUsS0FBSyxNQUFNLE9BQU8sU0FBUyxjQUFjLFdBQVcsTUFBTSxJQUFJLElBQUksSUFBSSxJQUFJO0FBQ2xJLFVBQUksc0JBQXNCLFdBQVcsR0FBRztBQUN0QyxjQUFNLElBQUksb0JBQW9CLHVDQUF1QyxJQUFJLElBQUksY0FBYyxZQUFZLEdBQUc7QUFBQSxNQUM1RztBQUdBLDhCQUF3QixzQkFBc0IsT0FBTyxDQUFDRyxrQkFBaUIsYUFBYUEsZUFBYyxJQUFJLE9BQU8sQ0FBQztBQUM5RyxVQUFJLHNCQUFzQixXQUFXLEdBQUc7QUFDdEMsY0FBTSxVQUFVLE9BQU8sSUFBSSxZQUFZLFdBQVcsS0FBSyxVQUFVLElBQUksT0FBTyxJQUFJLElBQUk7QUFDcEYsY0FBTSxJQUFJLG9CQUFvQiwwQ0FBMEMsT0FBTyxjQUFjLFlBQVksR0FBRztBQUFBLE1BQzlHO0FBRUEsYUFBTyxzQkFBc0IsQ0FBQztBQUFBLElBQ2hDO0FBRUEsYUFBUyxnQkFBaUIsZ0JBQWdCLEtBQUtFLE9BQU07QUFDbkQsWUFBTSxXQUFXLEVBQUUsY0FBYyxHQUFHLE9BQU8sR0FBRyxTQUFTLE9BQU8sVUFBVSxNQUFNO0FBQzlFLFlBQU0sWUFBWSxPQUFPQSxVQUFTLGFBQWEsRUFBRSxVQUFVQSxNQUFLLElBQUksRUFBRSxHQUFHQSxNQUFLO0FBQzlFLFlBQU0sa0JBQWtCLEVBQUUsR0FBRyxVQUFVLEdBQUcsS0FBSyxTQUFTLE1BQU0sTUFBTSxFQUFFLE9BQU8sTUFBTSxHQUFHLFVBQVUsRUFBRTtBQUNsRyxxQkFBZSxLQUFLLGVBQWU7QUFDbkMsYUFBTztBQUFBLElBQ1Q7QUFFQSxhQUFTLG1CQUFvQixnQkFBZ0IsS0FBSztBQUNoRCxZQUFNSCxTQUFRLGVBQWUsVUFBVSxjQUFZO0FBQ2pELFlBQUksQ0FBQyxTQUFTLFVBQVU7QUFDdEIsaUJBQU87QUFBQSxRQUNUO0FBQ0EsZUFBTyxTQUFTLFVBQVUsR0FBRztBQUFBLE1BQy9CLENBQUM7QUFDRCxVQUFJQSxXQUFVLElBQUk7QUFDaEIsdUJBQWUsT0FBT0EsUUFBTyxDQUFDO0FBQUEsTUFDaEM7QUFBQSxJQUNGO0FBRUEsYUFBUyxTQUFVLE1BQU07QUFDdkIsWUFBTSxFQUFFLE1BQU0sUUFBUSxNQUFNLFNBQVMsTUFBTSxJQUFJO0FBQy9DLGFBQU87QUFBQSxRQUNMO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLE1BQ0Y7QUFBQSxJQUNGO0FBRUEsYUFBUyxrQkFBbUJHLE9BQU07QUFDaEMsWUFBTSxPQUFPLE9BQU8sS0FBS0EsS0FBSTtBQUM3QixZQUFNLFNBQVMsQ0FBQztBQUNoQixlQUFTLElBQUksR0FBRyxJQUFJLEtBQUssUUFBUSxFQUFFLEdBQUc7QUFDcEMsY0FBTSxNQUFNLEtBQUssQ0FBQztBQUNsQixjQUFNLFFBQVFBLE1BQUssR0FBRztBQUN0QixjQUFNLE9BQU8sT0FBTyxLQUFLLEdBQUcsR0FBRyxFQUFFO0FBQ2pDLFlBQUksTUFBTSxRQUFRLEtBQUssR0FBRztBQUN4QixtQkFBUyxJQUFJLEdBQUcsSUFBSSxNQUFNLFFBQVEsRUFBRSxHQUFHO0FBQ3JDLG1CQUFPLEtBQUssTUFBTSxPQUFPLEtBQUssR0FBRyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUM7QUFBQSxVQUM5QztBQUFBLFFBQ0YsT0FBTztBQUNMLGlCQUFPLEtBQUssTUFBTSxPQUFPLEtBQUssR0FBRyxLQUFLLEVBQUUsQ0FBQztBQUFBLFFBQzNDO0FBQUEsTUFDRjtBQUNBLGFBQU87QUFBQSxJQUNUO0FBTUEsYUFBUyxjQUFlLFlBQVk7QUFDbEMsYUFBTyxhQUFhLFVBQVUsS0FBSztBQUFBLElBQ3JDO0FBRUEsbUJBQWUsWUFBYSxNQUFNO0FBQ2hDLFlBQU0sVUFBVSxDQUFDO0FBQ2pCLHVCQUFpQkEsU0FBUSxNQUFNO0FBQzdCLGdCQUFRLEtBQUtBLEtBQUk7QUFBQSxNQUNuQjtBQUNBLGFBQU8sT0FBTyxPQUFPLE9BQU8sRUFBRSxTQUFTLE1BQU07QUFBQSxJQUMvQztBQUtBLGFBQVMsYUFBYyxNQUFNLFNBQVM7QUFFcEMsWUFBTSxNQUFNLFNBQVMsSUFBSTtBQUN6QixZQUFNRixnQkFBZSxnQkFBZ0IsS0FBSyxXQUFXLEdBQUcsR0FBRztBQUUzRCxNQUFBQSxjQUFhO0FBR2IsVUFBSUEsY0FBYSxLQUFLLFVBQVU7QUFDOUIsUUFBQUEsY0FBYSxPQUFPLEVBQUUsR0FBR0EsY0FBYSxNQUFNLEdBQUdBLGNBQWEsS0FBSyxTQUFTLElBQUksRUFBRTtBQUFBLE1BQ2xGO0FBR0EsWUFBTSxFQUFFLE1BQU0sRUFBRSxZQUFZLE1BQUFFLE9BQU0sU0FBUyxVQUFVLE1BQU0sR0FBRyxPQUFPLFFBQVEsSUFBSUY7QUFDakYsWUFBTSxFQUFFLGNBQWMsTUFBTSxJQUFJQTtBQUdoQyxNQUFBQSxjQUFhLFdBQVcsQ0FBQyxXQUFXLGdCQUFnQjtBQUNwRCxNQUFBQSxjQUFhLFVBQVUsZUFBZTtBQUd0QyxVQUFJLFVBQVUsTUFBTTtBQUNsQiwyQkFBbUIsS0FBSyxXQUFXLEdBQUcsR0FBRztBQUN6QyxnQkFBUSxRQUFRLEtBQUs7QUFDckIsZUFBTztBQUFBLE1BQ1Q7QUFHQSxVQUFJLE9BQU8sVUFBVSxZQUFZLFFBQVEsR0FBRztBQUMxQyxtQkFBVyxNQUFNO0FBQ2Ysc0JBQVksS0FBSyxXQUFXLENBQUM7QUFBQSxRQUMvQixHQUFHLEtBQUs7QUFBQSxNQUNWLE9BQU87QUFDTCxvQkFBWSxLQUFLLFdBQVcsQ0FBQztBQUFBLE1BQy9CO0FBRUEsZUFBUyxZQUFhLGdCQUFnQixRQUFRRSxPQUFNO0FBRWxELGNBQU0sY0FBYyxNQUFNLFFBQVEsS0FBSyxPQUFPLElBQzFDLHNCQUFzQixLQUFLLE9BQU8sSUFDbEMsS0FBSztBQUNULGNBQU0sT0FBTyxPQUFPLFVBQVUsYUFDMUIsTUFBTSxFQUFFLEdBQUcsTUFBTSxTQUFTLFlBQVksQ0FBQyxJQUN2QztBQUdKLFlBQUksVUFBVSxJQUFJLEdBQUc7QUFNbkIsZUFBSyxLQUFLLENBQUMsWUFBWSxZQUFZLGdCQUFnQixPQUFPLENBQUM7QUFDM0Q7QUFBQSxRQUNGO0FBRUEsY0FBTSxlQUFlLGdCQUFnQixJQUFJO0FBQ3pDLGNBQU0sa0JBQWtCLGtCQUFrQixPQUFPO0FBQ2pELGNBQU0sbUJBQW1CLGtCQUFrQixRQUFRO0FBRW5ELGdCQUFRLFlBQVksQ0FBQUMsU0FBTyxRQUFRLFFBQVFBLElBQUcsR0FBRyxJQUFJO0FBQ3JELGdCQUFRLFlBQVksWUFBWSxpQkFBaUIsUUFBUSxjQUFjLFVBQVUsQ0FBQztBQUNsRixnQkFBUSxTQUFTLE9BQU8sS0FBSyxZQUFZLENBQUM7QUFDMUMsZ0JBQVEsYUFBYSxnQkFBZ0I7QUFDckMsMkJBQW1CLGdCQUFnQixHQUFHO0FBQUEsTUFDeEM7QUFFQSxlQUFTLFNBQVU7QUFBQSxNQUFDO0FBRXBCLGFBQU87QUFBQSxJQUNUO0FBRUEsYUFBUyxvQkFBcUI7QUFDNUIsWUFBTSxRQUFRLEtBQUssVUFBVTtBQUM3QixZQUFNQyxVQUFTLEtBQUssT0FBTztBQUMzQixZQUFNLG1CQUFtQixLQUFLLGlCQUFpQjtBQUUvQyxhQUFPLFNBQVMsU0FBVSxNQUFNLFNBQVM7QUFDdkMsWUFBSSxNQUFNLGNBQWM7QUFDdEIsY0FBSTtBQUNGLHlCQUFhLEtBQUssTUFBTSxNQUFNLE9BQU87QUFBQSxVQUN2QyxTQUFTLE9BQU87QUFDZCxnQkFBSSxpQkFBaUIscUJBQXFCO0FBQ3hDLG9CQUFNLGFBQWEsTUFBTSxjQUFjLEVBQUU7QUFDekMsa0JBQUksZUFBZSxPQUFPO0FBQ3hCLHNCQUFNLElBQUksb0JBQW9CLEdBQUcsTUFBTSxPQUFPLGtDQUFrQ0EsT0FBTSx5Q0FBeUM7QUFBQSxjQUNqSTtBQUNBLGtCQUFJLGdCQUFnQixZQUFZQSxPQUFNLEdBQUc7QUFDdkMsaUNBQWlCLEtBQUssTUFBTSxNQUFNLE9BQU87QUFBQSxjQUMzQyxPQUFPO0FBQ0wsc0JBQU0sSUFBSSxvQkFBb0IsR0FBRyxNQUFNLE9BQU8sa0NBQWtDQSxPQUFNLCtEQUErRDtBQUFBLGNBQ3ZKO0FBQUEsWUFDRixPQUFPO0FBQ0wsb0JBQU07QUFBQSxZQUNSO0FBQUEsVUFDRjtBQUFBLFFBQ0YsT0FBTztBQUNMLDJCQUFpQixLQUFLLE1BQU0sTUFBTSxPQUFPO0FBQUEsUUFDM0M7QUFBQSxNQUNGO0FBQUEsSUFDRjtBQUVBLGFBQVMsZ0JBQWlCLFlBQVlBLFNBQVE7QUFDNUMsWUFBTUMsT0FBTSxJQUFJLElBQUlELE9BQU07QUFDMUIsVUFBSSxlQUFlLE1BQU07QUFDdkIsZUFBTztBQUFBLE1BQ1QsV0FBVyxNQUFNLFFBQVEsVUFBVSxLQUFLLFdBQVcsS0FBSyxDQUFDLFlBQVksV0FBVyxTQUFTQyxLQUFJLElBQUksQ0FBQyxHQUFHO0FBQ25HLGVBQU87QUFBQSxNQUNUO0FBQ0EsYUFBTztBQUFBLElBQ1Q7QUFFQSxhQUFTLGlCQUFrQixNQUFNO0FBQy9CLFVBQUksTUFBTTtBQUNSLGNBQU0sRUFBRSxPQUFPLEdBQUcsWUFBWSxJQUFJO0FBQ2xDLGVBQU87QUFBQSxNQUNUO0FBQUEsSUFDRjtBQUVBLElBQUFULFFBQU8sVUFBVTtBQUFBLE1BQ2Y7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLElBQ0Y7QUFBQTtBQUFBOzs7QUM5V0E7QUFBQSxxREFBQVUsVUFBQUMsU0FBQTtBQUFBO0FBRUEsUUFBTSxFQUFFLGlCQUFpQixVQUFVLGdCQUFnQixJQUFJO0FBQ3ZELFFBQU07QUFBQSxNQUNKO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxJQUNGLElBQUk7QUFDSixRQUFNLEVBQUUscUJBQXFCLElBQUk7QUFDakMsUUFBTSxFQUFFLFVBQUFDLFVBQVMsSUFBSTtBQUtyQixRQUFNLFlBQU4sTUFBZ0I7QUFBQSxNQUNkLFlBQWEsY0FBYztBQUN6QixhQUFLLGFBQWEsSUFBSTtBQUFBLE1BQ3hCO0FBQUE7QUFBQTtBQUFBO0FBQUEsTUFLQSxNQUFPLFVBQVU7QUFDZixZQUFJLE9BQU8sYUFBYSxZQUFZLENBQUMsT0FBTyxVQUFVLFFBQVEsS0FBSyxZQUFZLEdBQUc7QUFDaEYsZ0JBQU0sSUFBSSxxQkFBcUIsc0NBQXNDO0FBQUEsUUFDdkU7QUFFQSxhQUFLLGFBQWEsRUFBRSxRQUFRO0FBQzVCLGVBQU87QUFBQSxNQUNUO0FBQUE7QUFBQTtBQUFBO0FBQUEsTUFLQSxVQUFXO0FBQ1QsYUFBSyxhQUFhLEVBQUUsVUFBVTtBQUM5QixlQUFPO0FBQUEsTUFDVDtBQUFBO0FBQUE7QUFBQTtBQUFBLE1BS0EsTUFBTyxhQUFhO0FBQ2xCLFlBQUksT0FBTyxnQkFBZ0IsWUFBWSxDQUFDLE9BQU8sVUFBVSxXQUFXLEtBQUssZUFBZSxHQUFHO0FBQ3pGLGdCQUFNLElBQUkscUJBQXFCLHlDQUF5QztBQUFBLFFBQzFFO0FBRUEsYUFBSyxhQUFhLEVBQUUsUUFBUTtBQUM1QixlQUFPO0FBQUEsTUFDVDtBQUFBLElBQ0Y7QUFLQSxRQUFNLGtCQUFOLE1BQXNCO0FBQUEsTUFDcEIsWUFBYSxNQUFNLGdCQUFnQjtBQUNqQyxZQUFJLE9BQU8sU0FBUyxVQUFVO0FBQzVCLGdCQUFNLElBQUkscUJBQXFCLHdCQUF3QjtBQUFBLFFBQ3pEO0FBQ0EsWUFBSSxPQUFPLEtBQUssU0FBUyxhQUFhO0FBQ3BDLGdCQUFNLElBQUkscUJBQXFCLDJCQUEyQjtBQUFBLFFBQzVEO0FBQ0EsWUFBSSxPQUFPLEtBQUssV0FBVyxhQUFhO0FBQ3RDLGVBQUssU0FBUztBQUFBLFFBQ2hCO0FBSUEsWUFBSSxPQUFPLEtBQUssU0FBUyxVQUFVO0FBQ2pDLGNBQUksS0FBSyxPQUFPO0FBQ2QsaUJBQUssT0FBT0EsVUFBUyxLQUFLLE1BQU0sS0FBSyxLQUFLO0FBQUEsVUFDNUMsT0FBTztBQUVMLGtCQUFNLFlBQVksSUFBSSxJQUFJLEtBQUssTUFBTSxTQUFTO0FBQzlDLGlCQUFLLE9BQU8sVUFBVSxXQUFXLFVBQVU7QUFBQSxVQUM3QztBQUFBLFFBQ0Y7QUFDQSxZQUFJLE9BQU8sS0FBSyxXQUFXLFVBQVU7QUFDbkMsZUFBSyxTQUFTLEtBQUssT0FBTyxZQUFZO0FBQUEsUUFDeEM7QUFFQSxhQUFLLFlBQVksSUFBSSxTQUFTLElBQUk7QUFDbEMsYUFBSyxXQUFXLElBQUk7QUFDcEIsYUFBSyxlQUFlLElBQUksQ0FBQztBQUN6QixhQUFLLGdCQUFnQixJQUFJLENBQUM7QUFDMUIsYUFBSyxjQUFjLElBQUk7QUFBQSxNQUN6QjtBQUFBLE1BRUEsNEJBQTZCLEVBQUUsWUFBWSxNQUFBQyxPQUFNLGdCQUFnQixHQUFHO0FBQ2xFLGNBQU0sZUFBZSxnQkFBZ0JBLEtBQUk7QUFDekMsY0FBTSxnQkFBZ0IsS0FBSyxjQUFjLElBQUksRUFBRSxrQkFBa0IsYUFBYSxPQUFPLElBQUksQ0FBQztBQUMxRixjQUFNLFVBQVUsRUFBRSxHQUFHLEtBQUssZUFBZSxHQUFHLEdBQUcsZUFBZSxHQUFHLGdCQUFnQixRQUFRO0FBQ3pGLGNBQU0sV0FBVyxFQUFFLEdBQUcsS0FBSyxnQkFBZ0IsR0FBRyxHQUFHLGdCQUFnQixTQUFTO0FBRTFFLGVBQU8sRUFBRSxZQUFZLE1BQUFBLE9BQU0sU0FBUyxTQUFTO0FBQUEsTUFDL0M7QUFBQSxNQUVBLHdCQUF5QixpQkFBaUI7QUFDeEMsWUFBSSxPQUFPLGdCQUFnQixlQUFlLGFBQWE7QUFDckQsZ0JBQU0sSUFBSSxxQkFBcUIsNEJBQTRCO0FBQUEsUUFDN0Q7QUFDQSxZQUFJLE9BQU8sZ0JBQWdCLG9CQUFvQixZQUFZLGdCQUFnQixvQkFBb0IsTUFBTTtBQUNuRyxnQkFBTSxJQUFJLHFCQUFxQixtQ0FBbUM7QUFBQSxRQUNwRTtBQUFBLE1BQ0Y7QUFBQTtBQUFBO0FBQUE7QUFBQSxNQUtBLE1BQU8sa0NBQWtDO0FBR3ZDLFlBQUksT0FBTyxxQ0FBcUMsWUFBWTtBQUkxRCxnQkFBTSwwQkFBMEIsQ0FBQyxTQUFTO0FBRXhDLGtCQUFNLGVBQWUsaUNBQWlDLElBQUk7QUFHMUQsZ0JBQUksT0FBTyxpQkFBaUIsWUFBWSxpQkFBaUIsTUFBTTtBQUM3RCxvQkFBTSxJQUFJLHFCQUFxQiw4Q0FBOEM7QUFBQSxZQUMvRTtBQUVBLGtCQUFNQyxtQkFBa0IsRUFBRSxNQUFNLElBQUksaUJBQWlCLENBQUMsR0FBRyxHQUFHLGFBQWE7QUFDekUsaUJBQUssd0JBQXdCQSxnQkFBZTtBQUc1QyxtQkFBTztBQUFBLGNBQ0wsR0FBRyxLQUFLLDRCQUE0QkEsZ0JBQWU7QUFBQSxZQUNyRDtBQUFBLFVBQ0Y7QUFHQSxnQkFBTUMsbUJBQWtCLGdCQUFnQixLQUFLLFdBQVcsR0FBRyxLQUFLLFlBQVksR0FBRyx1QkFBdUI7QUFDdEcsaUJBQU8sSUFBSSxVQUFVQSxnQkFBZTtBQUFBLFFBQ3RDO0FBTUEsY0FBTSxrQkFBa0I7QUFBQSxVQUN0QixZQUFZO0FBQUEsVUFDWixNQUFNLFVBQVUsQ0FBQyxNQUFNLFNBQVksS0FBSyxVQUFVLENBQUM7QUFBQSxVQUNuRCxpQkFBaUIsVUFBVSxDQUFDLE1BQU0sU0FBWSxDQUFDLElBQUksVUFBVSxDQUFDO0FBQUEsUUFDaEU7QUFDQSxhQUFLLHdCQUF3QixlQUFlO0FBRzVDLGNBQU0sZUFBZSxLQUFLLDRCQUE0QixlQUFlO0FBQ3JFLGNBQU0sa0JBQWtCLGdCQUFnQixLQUFLLFdBQVcsR0FBRyxLQUFLLFlBQVksR0FBRyxZQUFZO0FBQzNGLGVBQU8sSUFBSSxVQUFVLGVBQWU7QUFBQSxNQUN0QztBQUFBO0FBQUE7QUFBQTtBQUFBLE1BS0EsZUFBZ0IsT0FBTztBQUNyQixZQUFJLE9BQU8sVUFBVSxhQUFhO0FBQ2hDLGdCQUFNLElBQUkscUJBQXFCLHVCQUF1QjtBQUFBLFFBQ3hEO0FBRUEsY0FBTSxrQkFBa0IsZ0JBQWdCLEtBQUssV0FBVyxHQUFHLEtBQUssWUFBWSxHQUFHLEVBQUUsTUFBTSxDQUFDO0FBQ3hGLGVBQU8sSUFBSSxVQUFVLGVBQWU7QUFBQSxNQUN0QztBQUFBO0FBQUE7QUFBQTtBQUFBLE1BS0Esb0JBQXFCLFNBQVM7QUFDNUIsWUFBSSxPQUFPLFlBQVksYUFBYTtBQUNsQyxnQkFBTSxJQUFJLHFCQUFxQix5QkFBeUI7QUFBQSxRQUMxRDtBQUVBLGFBQUssZUFBZSxJQUFJO0FBQ3hCLGVBQU87QUFBQSxNQUNUO0FBQUE7QUFBQTtBQUFBO0FBQUEsTUFLQSxxQkFBc0IsVUFBVTtBQUM5QixZQUFJLE9BQU8sYUFBYSxhQUFhO0FBQ25DLGdCQUFNLElBQUkscUJBQXFCLDBCQUEwQjtBQUFBLFFBQzNEO0FBRUEsYUFBSyxnQkFBZ0IsSUFBSTtBQUN6QixlQUFPO0FBQUEsTUFDVDtBQUFBO0FBQUE7QUFBQTtBQUFBLE1BS0EscUJBQXNCO0FBQ3BCLGFBQUssY0FBYyxJQUFJO0FBQ3ZCLGVBQU87QUFBQSxNQUNUO0FBQUEsSUFDRjtBQUVBLElBQUFKLFFBQU8sUUFBUSxrQkFBa0I7QUFDakMsSUFBQUEsUUFBTyxRQUFRLFlBQVk7QUFBQTtBQUFBOzs7QUM5TTNCO0FBQUEsZ0RBQUFLLFVBQUFDLFNBQUE7QUFBQTtBQUVBLFFBQU0sRUFBRSxVQUFVLElBQUksUUFBUSxXQUFXO0FBQ3pDLFFBQU0sU0FBUztBQUNmLFFBQU0sRUFBRSxrQkFBa0IsSUFBSTtBQUM5QixRQUFNO0FBQUEsTUFDSjtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLElBQ0YsSUFBSTtBQUNKLFFBQU0sRUFBRSxnQkFBZ0IsSUFBSTtBQUM1QixRQUFNLFVBQVU7QUFDaEIsUUFBTSxFQUFFLHFCQUFxQixJQUFJO0FBS2pDLFFBQU0sYUFBTixjQUF5QixPQUFPO0FBQUEsTUFDOUIsWUFBYUMsU0FBUSxNQUFNO0FBQ3pCLGNBQU1BLFNBQVEsSUFBSTtBQUVsQixZQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssU0FBUyxPQUFPLEtBQUssTUFBTSxhQUFhLFlBQVk7QUFDckUsZ0JBQU0sSUFBSSxxQkFBcUIsMENBQTBDO0FBQUEsUUFDM0U7QUFFQSxhQUFLLFVBQVUsSUFBSSxLQUFLO0FBQ3hCLGFBQUssT0FBTyxJQUFJQTtBQUNoQixhQUFLLFdBQVcsSUFBSSxDQUFDO0FBQ3JCLGFBQUssVUFBVSxJQUFJO0FBQ25CLGFBQUssaUJBQWlCLElBQUksS0FBSztBQUMvQixhQUFLLGNBQWMsSUFBSSxLQUFLLE1BQU0sS0FBSyxJQUFJO0FBRTNDLGFBQUssV0FBVyxrQkFBa0IsS0FBSyxJQUFJO0FBQzNDLGFBQUssUUFBUSxLQUFLLE1BQU07QUFBQSxNQUMxQjtBQUFBLE1BRUEsS0FBSyxRQUFRLFVBQVUsSUFBSztBQUMxQixlQUFPLEtBQUssVUFBVTtBQUFBLE1BQ3hCO0FBQUE7QUFBQTtBQUFBO0FBQUEsTUFLQSxVQUFXLE1BQU07QUFDZixlQUFPLElBQUksZ0JBQWdCLE1BQU0sS0FBSyxXQUFXLENBQUM7QUFBQSxNQUNwRDtBQUFBLE1BRUEsT0FBTyxNQUFNLElBQUs7QUFDaEIsY0FBTSxVQUFVLEtBQUssY0FBYyxDQUFDLEVBQUU7QUFDdEMsYUFBSyxVQUFVLElBQUk7QUFDbkIsYUFBSyxVQUFVLEVBQUUsUUFBUSxRQUFRLEVBQUUsT0FBTyxLQUFLLE9BQU8sQ0FBQztBQUFBLE1BQ3pEO0FBQUEsSUFDRjtBQUVBLElBQUFELFFBQU8sVUFBVTtBQUFBO0FBQUE7OztBQzFEakI7QUFBQSw4Q0FBQUUsVUFBQUMsU0FBQTtBQUFBO0FBRUEsUUFBTSxFQUFFLFVBQVUsSUFBSSxRQUFRLFdBQVc7QUFDekMsUUFBTSxPQUFPO0FBQ2IsUUFBTSxFQUFFLGtCQUFrQixJQUFJO0FBQzlCLFFBQU07QUFBQSxNQUNKO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsSUFDRixJQUFJO0FBQ0osUUFBTSxFQUFFLGdCQUFnQixJQUFJO0FBQzVCLFFBQU0sVUFBVTtBQUNoQixRQUFNLEVBQUUscUJBQXFCLElBQUk7QUFLakMsUUFBTSxXQUFOLGNBQXVCLEtBQUs7QUFBQSxNQUMxQixZQUFhQyxTQUFRLE1BQU07QUFDekIsY0FBTUEsU0FBUSxJQUFJO0FBRWxCLFlBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxTQUFTLE9BQU8sS0FBSyxNQUFNLGFBQWEsWUFBWTtBQUNyRSxnQkFBTSxJQUFJLHFCQUFxQiwwQ0FBMEM7QUFBQSxRQUMzRTtBQUVBLGFBQUssVUFBVSxJQUFJLEtBQUs7QUFDeEIsYUFBSyxPQUFPLElBQUlBO0FBQ2hCLGFBQUssV0FBVyxJQUFJLENBQUM7QUFDckIsYUFBSyxVQUFVLElBQUk7QUFDbkIsYUFBSyxpQkFBaUIsSUFBSSxLQUFLO0FBQy9CLGFBQUssY0FBYyxJQUFJLEtBQUssTUFBTSxLQUFLLElBQUk7QUFFM0MsYUFBSyxXQUFXLGtCQUFrQixLQUFLLElBQUk7QUFDM0MsYUFBSyxRQUFRLEtBQUssTUFBTTtBQUFBLE1BQzFCO0FBQUEsTUFFQSxLQUFLLFFBQVEsVUFBVSxJQUFLO0FBQzFCLGVBQU8sS0FBSyxVQUFVO0FBQUEsTUFDeEI7QUFBQTtBQUFBO0FBQUE7QUFBQSxNQUtBLFVBQVcsTUFBTTtBQUNmLGVBQU8sSUFBSSxnQkFBZ0IsTUFBTSxLQUFLLFdBQVcsQ0FBQztBQUFBLE1BQ3BEO0FBQUEsTUFFQSxPQUFPLE1BQU0sSUFBSztBQUNoQixjQUFNLFVBQVUsS0FBSyxjQUFjLENBQUMsRUFBRTtBQUN0QyxhQUFLLFVBQVUsSUFBSTtBQUNuQixhQUFLLFVBQVUsRUFBRSxRQUFRLFFBQVEsRUFBRSxPQUFPLEtBQUssT0FBTyxDQUFDO0FBQUEsTUFDekQ7QUFBQSxJQUNGO0FBRUEsSUFBQUQsUUFBTyxVQUFVO0FBQUE7QUFBQTs7O0FDMURqQjtBQUFBLCtDQUFBRSxVQUFBQyxTQUFBO0FBQUE7QUFFQSxRQUFNLFlBQVk7QUFBQSxNQUNoQixTQUFTO0FBQUEsTUFDVCxJQUFJO0FBQUEsTUFDSixLQUFLO0FBQUEsTUFDTCxNQUFNO0FBQUEsSUFDUjtBQUVBLFFBQU0sVUFBVTtBQUFBLE1BQ2QsU0FBUztBQUFBLE1BQ1QsSUFBSTtBQUFBLE1BQ0osS0FBSztBQUFBLE1BQ0wsTUFBTTtBQUFBLElBQ1I7QUFFQSxJQUFBQSxRQUFPLFVBQVUsTUFBTSxXQUFXO0FBQUEsTUFDaEMsWUFBYSxVQUFVLFFBQVE7QUFDN0IsYUFBSyxXQUFXO0FBQ2hCLGFBQUssU0FBUztBQUFBLE1BQ2hCO0FBQUEsTUFFQSxVQUFXLE9BQU87QUFDaEIsY0FBTSxNQUFNLFVBQVU7QUFDdEIsY0FBTSxPQUFPLE1BQU0sWUFBWTtBQUMvQixjQUFNLE9BQU8sTUFBTSxLQUFLLFdBQVcsS0FBSztBQUN4QyxlQUFPLEVBQUUsR0FBRyxNQUFNLE9BQU8sS0FBSztBQUFBLE1BQ2hDO0FBQUEsSUFDRjtBQUFBO0FBQUE7OztBQzVCQTtBQUFBLG1FQUFBQyxVQUFBQyxTQUFBO0FBQUE7QUFFQSxRQUFNLEVBQUUsV0FBQUMsV0FBVSxJQUFJLFFBQVEsYUFBYTtBQUMzQyxRQUFNLEVBQUUsUUFBUSxJQUFJLFFBQVEsY0FBYztBQUUxQyxRQUFNLGFBQWEsUUFBUSxTQUFTLE1BQU0sV0FBTTtBQUNoRCxRQUFNLGlCQUFpQixRQUFRLFNBQVMsTUFBTSxXQUFNO0FBS3BELElBQUFELFFBQU8sVUFBVSxNQUFNLDZCQUE2QjtBQUFBLE1BQ2xELFlBQWEsRUFBRSxjQUFjLElBQUksQ0FBQyxHQUFHO0FBQ25DLGFBQUssWUFBWSxJQUFJQyxXQUFVO0FBQUEsVUFDN0IsVUFBVyxPQUFPLE1BQU0sSUFBSTtBQUMxQixlQUFHLE1BQU0sS0FBSztBQUFBLFVBQ2hCO0FBQUEsUUFDRixDQUFDO0FBRUQsYUFBSyxTQUFTLElBQUksUUFBUTtBQUFBLFVBQ3hCLFFBQVEsS0FBSztBQUFBLFVBQ2IsZ0JBQWdCO0FBQUEsWUFDZCxRQUFRLENBQUMsaUJBQWlCLENBQUMsUUFBUSxJQUFJO0FBQUEsVUFDekM7QUFBQSxRQUNGLENBQUM7QUFBQSxNQUNIO0FBQUEsTUFFQSxPQUFRLHFCQUFxQjtBQUMzQixjQUFNLG9CQUFvQixvQkFBb0I7QUFBQSxVQUM1QyxDQUFDLEVBQUUsUUFBUSxNQUFNLE1BQU0sRUFBRSxXQUFXLEdBQUcsU0FBUyxPQUFPLGNBQWMsUUFBQUMsUUFBTyxPQUFPO0FBQUEsWUFDakYsUUFBUTtBQUFBLFlBQ1IsUUFBUUE7QUFBQSxZQUNSLE1BQU07QUFBQSxZQUNOLGVBQWU7QUFBQSxZQUNmLFlBQVksVUFBVSxhQUFhO0FBQUEsWUFDbkMsYUFBYTtBQUFBLFlBQ2IsV0FBVyxVQUFVLFdBQVcsUUFBUTtBQUFBLFVBQzFDO0FBQUEsUUFBRTtBQUVKLGFBQUssT0FBTyxNQUFNLGlCQUFpQjtBQUNuQyxlQUFPLEtBQUssVUFBVSxLQUFLLEVBQUUsU0FBUztBQUFBLE1BQ3hDO0FBQUEsSUFDRjtBQUFBO0FBQUE7OztBQzFDQTtBQUFBLCtDQUFBQyxVQUFBQyxTQUFBO0FBQUE7QUFFQSxRQUFNLEVBQUUsU0FBUyxJQUFJO0FBQ3JCLFFBQU0sUUFBUTtBQUNkLFFBQU07QUFBQSxNQUNKO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxJQUNGLElBQUk7QUFDSixRQUFNLGFBQWE7QUFDbkIsUUFBTSxXQUFXO0FBQ2pCLFFBQU0sRUFBRSxZQUFZLGlCQUFpQixJQUFJO0FBQ3pDLFFBQU0sRUFBRSxzQkFBc0IsWUFBWSxJQUFJO0FBQzlDLFFBQU0sYUFBYTtBQUNuQixRQUFNLGFBQWE7QUFDbkIsUUFBTSwrQkFBK0I7QUFFckMsUUFBTSxZQUFOLGNBQXdCLFdBQVc7QUFBQSxNQUNqQyxZQUFhLE1BQU07QUFDakIsY0FBTSxJQUFJO0FBRVYsYUFBSyxXQUFXLElBQUk7QUFDcEIsYUFBSyxhQUFhLElBQUk7QUFHdEIsWUFBSyxNQUFNLFNBQVMsT0FBTyxLQUFLLE1BQU0sYUFBYSxZQUFhO0FBQzlELGdCQUFNLElBQUkscUJBQXFCLDBDQUEwQztBQUFBLFFBQzNFO0FBQ0EsY0FBTSxRQUFRLE1BQU0sUUFBUSxLQUFLLFFBQVEsSUFBSSxNQUFNLElBQUk7QUFDdkQsYUFBSyxNQUFNLElBQUk7QUFFZixhQUFLLFFBQVEsSUFBSSxNQUFNLFFBQVE7QUFDL0IsYUFBSyxRQUFRLElBQUksaUJBQWlCLElBQUk7QUFBQSxNQUN4QztBQUFBLE1BRUEsSUFBS0MsU0FBUTtBQUNYLFlBQUksYUFBYSxLQUFLLGFBQWEsRUFBRUEsT0FBTTtBQUUzQyxZQUFJLENBQUMsWUFBWTtBQUNmLHVCQUFhLEtBQUssUUFBUSxFQUFFQSxPQUFNO0FBQ2xDLGVBQUssYUFBYSxFQUFFQSxTQUFRLFVBQVU7QUFBQSxRQUN4QztBQUNBLGVBQU87QUFBQSxNQUNUO0FBQUEsTUFFQSxTQUFVLE1BQU0sU0FBUztBQUV2QixhQUFLLElBQUksS0FBSyxNQUFNO0FBQ3BCLGVBQU8sS0FBSyxNQUFNLEVBQUUsU0FBUyxNQUFNLE9BQU87QUFBQSxNQUM1QztBQUFBLE1BRUEsTUFBTSxRQUFTO0FBQ2IsY0FBTSxLQUFLLE1BQU0sRUFBRSxNQUFNO0FBQ3pCLGFBQUssUUFBUSxFQUFFLE1BQU07QUFBQSxNQUN2QjtBQUFBLE1BRUEsYUFBYztBQUNaLGFBQUssYUFBYSxJQUFJO0FBQUEsTUFDeEI7QUFBQSxNQUVBLFdBQVk7QUFDVixhQUFLLGFBQWEsSUFBSTtBQUFBLE1BQ3hCO0FBQUEsTUFFQSxpQkFBa0IsU0FBUztBQUN6QixZQUFJLE9BQU8sWUFBWSxZQUFZLE9BQU8sWUFBWSxjQUFjLG1CQUFtQixRQUFRO0FBQzdGLGNBQUksTUFBTSxRQUFRLEtBQUssV0FBVyxDQUFDLEdBQUc7QUFDcEMsaUJBQUssV0FBVyxFQUFFLEtBQUssT0FBTztBQUFBLFVBQ2hDLE9BQU87QUFDTCxpQkFBSyxXQUFXLElBQUksQ0FBQyxPQUFPO0FBQUEsVUFDOUI7QUFBQSxRQUNGLFdBQVcsT0FBTyxZQUFZLGFBQWE7QUFDekMsZUFBSyxXQUFXLElBQUk7QUFBQSxRQUN0QixPQUFPO0FBQ0wsZ0JBQU0sSUFBSSxxQkFBcUIsNkRBQTZEO0FBQUEsUUFDOUY7QUFBQSxNQUNGO0FBQUEsTUFFQSxvQkFBcUI7QUFDbkIsYUFBSyxXQUFXLElBQUk7QUFBQSxNQUN0QjtBQUFBO0FBQUE7QUFBQSxNQUlBLElBQUksZUFBZ0I7QUFDbEIsZUFBTyxLQUFLLGFBQWE7QUFBQSxNQUMzQjtBQUFBLE1BRUEsQ0FBQyxhQUFhLEVBQUdBLFNBQVEsWUFBWTtBQUNuQyxhQUFLLFFBQVEsRUFBRSxJQUFJQSxTQUFRLFVBQVU7QUFBQSxNQUN2QztBQUFBLE1BRUEsQ0FBQyxRQUFRLEVBQUdBLFNBQVE7QUFDbEIsY0FBTSxjQUFjLE9BQU8sT0FBTyxFQUFFLE9BQU8sS0FBSyxHQUFHLEtBQUssUUFBUSxDQUFDO0FBQ2pFLGVBQU8sS0FBSyxRQUFRLEtBQUssS0FBSyxRQUFRLEVBQUUsZ0JBQWdCLElBQ3BELElBQUksV0FBV0EsU0FBUSxXQUFXLElBQ2xDLElBQUksU0FBU0EsU0FBUSxXQUFXO0FBQUEsTUFDdEM7QUFBQSxNQUVBLENBQUMsYUFBYSxFQUFHQSxTQUFRO0FBRXZCLGNBQU0sU0FBUyxLQUFLLFFBQVEsRUFBRSxJQUFJQSxPQUFNO0FBQ3hDLFlBQUksUUFBUTtBQUNWLGlCQUFPO0FBQUEsUUFDVDtBQUdBLFlBQUksT0FBT0EsWUFBVyxVQUFVO0FBQzlCLGdCQUFNLGFBQWEsS0FBSyxRQUFRLEVBQUUsdUJBQXVCO0FBQ3pELGVBQUssYUFBYSxFQUFFQSxTQUFRLFVBQVU7QUFDdEMsaUJBQU87QUFBQSxRQUNUO0FBR0EsbUJBQVcsQ0FBQyxZQUFZLHFCQUFxQixLQUFLLE1BQU0sS0FBSyxLQUFLLFFBQVEsQ0FBQyxHQUFHO0FBQzVFLGNBQUkseUJBQXlCLE9BQU8sZUFBZSxZQUFZLFdBQVcsWUFBWUEsT0FBTSxHQUFHO0FBQzdGLGtCQUFNLGFBQWEsS0FBSyxRQUFRLEVBQUVBLE9BQU07QUFDeEMsaUJBQUssYUFBYSxFQUFFQSxTQUFRLFVBQVU7QUFDdEMsdUJBQVcsV0FBVyxJQUFJLHNCQUFzQixXQUFXO0FBQzNELG1CQUFPO0FBQUEsVUFDVDtBQUFBLFFBQ0Y7QUFBQSxNQUNGO0FBQUEsTUFFQSxDQUFDLGNBQWMsSUFBSztBQUNsQixlQUFPLEtBQUssV0FBVztBQUFBLE1BQ3pCO0FBQUEsTUFFQSxzQkFBdUI7QUFDckIsY0FBTSxtQkFBbUIsS0FBSyxRQUFRO0FBRXRDLGVBQU8sTUFBTSxLQUFLLGlCQUFpQixRQUFRLENBQUMsRUFDekMsUUFBUSxDQUFDLENBQUNBLFNBQVEsS0FBSyxNQUFNLE1BQU0sV0FBVyxFQUFFLElBQUksZUFBYSxFQUFFLEdBQUcsVUFBVSxRQUFBQSxRQUFPLEVBQUUsQ0FBQyxFQUMxRixPQUFPLENBQUMsRUFBRSxRQUFRLE1BQU0sT0FBTztBQUFBLE1BQ3BDO0FBQUEsTUFFQSw0QkFBNkIsRUFBRSwrQkFBK0IsSUFBSSw2QkFBNkIsRUFBRSxJQUFJLENBQUMsR0FBRztBQUN2RyxjQUFNLFVBQVUsS0FBSyxvQkFBb0I7QUFFekMsWUFBSSxRQUFRLFdBQVcsR0FBRztBQUN4QjtBQUFBLFFBQ0Y7QUFFQSxjQUFNLGFBQWEsSUFBSSxXQUFXLGVBQWUsY0FBYyxFQUFFLFVBQVUsUUFBUSxNQUFNO0FBRXpGLGNBQU0sSUFBSSxZQUFZO0FBQUEsRUFDeEIsV0FBVyxLQUFLLElBQUksV0FBVyxJQUFJLElBQUksV0FBVyxFQUFFO0FBQUE7QUFBQSxFQUVwRCw2QkFBNkIsT0FBTyxPQUFPLENBQUM7QUFBQSxFQUM1QyxLQUFLLENBQUM7QUFBQSxNQUNOO0FBQUEsSUFDRjtBQUVBLElBQUFELFFBQU8sVUFBVTtBQUFBO0FBQUE7OztBQy9KakIsSUFBQUUsa0JBQUE7QUFBQSxzQ0FBQUMsVUFBQUMsU0FBQTtBQUFBO0FBSUEsUUFBTSxtQkFBbUIsT0FBTyxJQUFJLDJCQUEyQjtBQUMvRCxRQUFNLEVBQUUscUJBQXFCLElBQUk7QUFDakMsUUFBTSxRQUFRO0FBRWQsUUFBSSxvQkFBb0IsTUFBTSxRQUFXO0FBQ3ZDLDBCQUFvQixJQUFJLE1BQU0sQ0FBQztBQUFBLElBQ2pDO0FBRUEsYUFBUyxvQkFBcUIsT0FBTztBQUNuQyxVQUFJLENBQUMsU0FBUyxPQUFPLE1BQU0sYUFBYSxZQUFZO0FBQ2xELGNBQU0sSUFBSSxxQkFBcUIscUNBQXFDO0FBQUEsTUFDdEU7QUFDQSxhQUFPLGVBQWUsWUFBWSxrQkFBa0I7QUFBQSxRQUNsRCxPQUFPO0FBQUEsUUFDUCxVQUFVO0FBQUEsUUFDVixZQUFZO0FBQUEsUUFDWixjQUFjO0FBQUEsTUFDaEIsQ0FBQztBQUFBLElBQ0g7QUFFQSxhQUFTLHNCQUF1QjtBQUM5QixhQUFPLFdBQVcsZ0JBQWdCO0FBQUEsSUFDcEM7QUFFQSxJQUFBQSxRQUFPLFVBQVU7QUFBQSxNQUNmO0FBQUEsTUFDQTtBQUFBLElBQ0Y7QUFBQTtBQUFBOzs7QUMvQkE7QUFBQSx5REFBQUMsVUFBQUMsU0FBQTtBQUFBO0FBRUEsSUFBQUEsUUFBTyxVQUFVLE1BQU0saUJBQWlCO0FBQUEsTUFDdEM7QUFBQSxNQUVBLFlBQWEsU0FBUztBQUNwQixZQUFJLE9BQU8sWUFBWSxZQUFZLFlBQVksTUFBTTtBQUNuRCxnQkFBTSxJQUFJLFVBQVUsMkJBQTJCO0FBQUEsUUFDakQ7QUFDQSxhQUFLLFdBQVc7QUFBQSxNQUNsQjtBQUFBLE1BRUEsYUFBYyxNQUFNO0FBQ2xCLGVBQU8sS0FBSyxTQUFTLFlBQVksR0FBRyxJQUFJO0FBQUEsTUFDMUM7QUFBQSxNQUVBLFdBQVksTUFBTTtBQUNoQixlQUFPLEtBQUssU0FBUyxVQUFVLEdBQUcsSUFBSTtBQUFBLE1BQ3hDO0FBQUEsTUFFQSxhQUFjLE1BQU07QUFDbEIsZUFBTyxLQUFLLFNBQVMsWUFBWSxHQUFHLElBQUk7QUFBQSxNQUMxQztBQUFBLE1BRUEscUJBQXNCLE1BQU07QUFDMUIsZUFBTyxLQUFLLFNBQVMsb0JBQW9CLEdBQUcsSUFBSTtBQUFBLE1BQ2xEO0FBQUEsTUFFQSxhQUFjLE1BQU07QUFDbEIsZUFBTyxLQUFLLFNBQVMsWUFBWSxHQUFHLElBQUk7QUFBQSxNQUMxQztBQUFBLE1BRUEsVUFBVyxNQUFNO0FBQ2YsZUFBTyxLQUFLLFNBQVMsU0FBUyxHQUFHLElBQUk7QUFBQSxNQUN2QztBQUFBLE1BRUEsY0FBZSxNQUFNO0FBQ25CLGVBQU8sS0FBSyxTQUFTLGFBQWEsR0FBRyxJQUFJO0FBQUEsTUFDM0M7QUFBQSxNQUVBLGNBQWUsTUFBTTtBQUNuQixlQUFPLEtBQUssU0FBUyxhQUFhLEdBQUcsSUFBSTtBQUFBLE1BQzNDO0FBQUEsSUFDRjtBQUFBO0FBQUE7OztBQzNDQTtBQUFBLG9EQUFBQyxVQUFBQyxTQUFBO0FBQUE7QUFDQSxRQUFNLGtCQUFrQjtBQUV4QixJQUFBQSxRQUFPLFVBQVUsVUFBUTtBQUN2QixZQUFNLHdCQUF3QixNQUFNO0FBQ3BDLGFBQU8sY0FBWTtBQUNqQixlQUFPLFNBQVMsb0JBQXFCQyxPQUFNLFNBQVM7QUFDbEQsZ0JBQU0sRUFBRSxrQkFBa0IsdUJBQXVCLEdBQUcsU0FBUyxJQUFJQTtBQUVqRSxjQUFJLENBQUMsaUJBQWlCO0FBQ3BCLG1CQUFPLFNBQVNBLE9BQU0sT0FBTztBQUFBLFVBQy9CO0FBRUEsZ0JBQU0sa0JBQWtCLElBQUk7QUFBQSxZQUMxQjtBQUFBLFlBQ0E7QUFBQSxZQUNBQTtBQUFBLFlBQ0E7QUFBQSxVQUNGO0FBRUEsaUJBQU8sU0FBUyxVQUFVLGVBQWU7QUFBQSxRQUMzQztBQUFBLE1BQ0Y7QUFBQSxJQUNGO0FBQUE7QUFBQTs7O0FDdkJBO0FBQUEsaURBQUFDLFVBQUFDLFNBQUE7QUFBQTtBQUNBLFFBQU0sZUFBZTtBQUVyQixJQUFBQSxRQUFPLFVBQVUsZ0JBQWM7QUFDN0IsYUFBTyxjQUFZO0FBQ2pCLGVBQU8sU0FBUyxpQkFBa0IsTUFBTSxTQUFTO0FBQy9DLGlCQUFPO0FBQUEsWUFDTDtBQUFBLFlBQ0EsSUFBSTtBQUFBLGNBQ0YsRUFBRSxHQUFHLE1BQU0sY0FBYyxFQUFFLEdBQUcsWUFBWSxHQUFHLEtBQUssYUFBYSxFQUFFO0FBQUEsY0FDakU7QUFBQSxnQkFDRTtBQUFBLGdCQUNBO0FBQUEsY0FDRjtBQUFBLFlBQ0Y7QUFBQSxVQUNGO0FBQUEsUUFDRjtBQUFBLE1BQ0Y7QUFBQSxJQUNGO0FBQUE7QUFBQTs7O0FDbEJBO0FBQUEsZ0RBQUFDLFVBQUFDLFNBQUE7QUFBQTtBQUVBLFFBQU1DLFFBQU87QUFDYixRQUFNLEVBQUUsc0JBQXNCLG9CQUFvQixJQUFJO0FBQ3RELFFBQU0sbUJBQW1CO0FBRXpCLFFBQU0sY0FBTixjQUEwQixpQkFBaUI7QUFBQSxNQUN6QyxXQUFXLE9BQU87QUFBQSxNQUNsQixTQUFTO0FBQUEsTUFDVCxVQUFVO0FBQUEsTUFDVixXQUFXO0FBQUEsTUFDWCxRQUFRO0FBQUEsTUFDUixVQUFVO0FBQUEsTUFDVixXQUFXO0FBQUEsTUFFWCxZQUFhLEVBQUUsUUFBUSxHQUFHLFNBQVM7QUFDakMsY0FBTSxPQUFPO0FBRWIsWUFBSSxXQUFXLFNBQVMsQ0FBQyxPQUFPLFNBQVMsT0FBTyxLQUFLLFVBQVUsSUFBSTtBQUNqRSxnQkFBTSxJQUFJLHFCQUFxQix5Q0FBeUM7QUFBQSxRQUMxRTtBQUVBLGFBQUssV0FBVyxXQUFXLEtBQUs7QUFDaEMsYUFBSyxXQUFXO0FBQUEsTUFDbEI7QUFBQSxNQUVBLFVBQVcsT0FBTztBQUNoQixhQUFLLFNBQVM7QUFFZCxhQUFLLFNBQVMsVUFBVSxLQUFLLGFBQWEsS0FBSyxJQUFJLENBQUM7QUFBQSxNQUN0RDtBQUFBLE1BRUEsYUFBYyxRQUFRO0FBQ3BCLGFBQUssV0FBVztBQUNoQixhQUFLLFVBQVU7QUFBQSxNQUNqQjtBQUFBO0FBQUEsTUFHQSxVQUFXLFlBQVksWUFBWSxRQUFRLGVBQWU7QUFDeEQsY0FBTSxVQUFVQSxNQUFLLGFBQWEsVUFBVTtBQUM1QyxjQUFNLGdCQUFnQixRQUFRLGdCQUFnQjtBQUU5QyxZQUFJLGlCQUFpQixRQUFRLGdCQUFnQixLQUFLLFVBQVU7QUFDMUQsZ0JBQU0sSUFBSTtBQUFBLFlBQ1Isa0JBQWtCLGFBQWEsMEJBQzdCLEtBQUssUUFDUDtBQUFBLFVBQ0Y7QUFBQSxRQUNGO0FBRUEsWUFBSSxLQUFLLFVBQVU7QUFDakIsaUJBQU87QUFBQSxRQUNUO0FBRUEsZUFBTyxLQUFLLFNBQVM7QUFBQSxVQUNuQjtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFFBQ0Y7QUFBQSxNQUNGO0FBQUEsTUFFQSxRQUFTQyxNQUFLO0FBQ1osWUFBSSxLQUFLLFNBQVM7QUFDaEI7QUFBQSxRQUNGO0FBRUEsUUFBQUEsT0FBTSxLQUFLLFdBQVdBO0FBRXRCLGFBQUssU0FBUyxRQUFRQSxJQUFHO0FBQUEsTUFDM0I7QUFBQSxNQUVBLE9BQVEsT0FBTztBQUNiLGFBQUssUUFBUSxLQUFLLFFBQVEsTUFBTTtBQUVoQyxZQUFJLEtBQUssU0FBUyxLQUFLLFVBQVU7QUFDL0IsZUFBSyxVQUFVO0FBRWYsY0FBSSxLQUFLLFVBQVU7QUFDakIsaUJBQUssU0FBUyxRQUFRLEtBQUssT0FBTztBQUFBLFVBQ3BDLE9BQU87QUFDTCxpQkFBSyxTQUFTLFdBQVcsQ0FBQyxDQUFDO0FBQUEsVUFDN0I7QUFBQSxRQUNGO0FBRUEsZUFBTztBQUFBLE1BQ1Q7QUFBQSxNQUVBLFdBQVksVUFBVTtBQUNwQixZQUFJLEtBQUssU0FBUztBQUNoQjtBQUFBLFFBQ0Y7QUFFQSxZQUFJLEtBQUssVUFBVTtBQUNqQixlQUFLLFNBQVMsUUFBUSxLQUFLLE1BQU07QUFDakM7QUFBQSxRQUNGO0FBRUEsYUFBSyxTQUFTLFdBQVcsUUFBUTtBQUFBLE1BQ25DO0FBQUEsSUFDRjtBQUVBLGFBQVMsc0JBQ1AsRUFBRSxTQUFTLGVBQWUsSUFBSTtBQUFBLE1BQzVCLFNBQVMsT0FBTztBQUFBLElBQ2xCLEdBQ0E7QUFDQSxhQUFPLGNBQVk7QUFDakIsZUFBTyxTQUFTLFVBQVcsTUFBTSxTQUFTO0FBQ3hDLGdCQUFNLEVBQUUsY0FBYyxlQUFlLElBQ25DO0FBRUYsZ0JBQU0sY0FBYyxJQUFJO0FBQUEsWUFDdEIsRUFBRSxTQUFTLFlBQVk7QUFBQSxZQUN2QjtBQUFBLFVBQ0Y7QUFFQSxpQkFBTyxTQUFTLE1BQU0sV0FBVztBQUFBLFFBQ25DO0FBQUEsTUFDRjtBQUFBLElBQ0Y7QUFFQSxJQUFBRixRQUFPLFVBQVU7QUFBQTtBQUFBOzs7QUMxSGpCO0FBQUEsK0NBQUFHLFVBQUFDLFNBQUE7QUFBQTtBQUNBLFFBQU0sRUFBRSxLQUFLLElBQUksUUFBUSxVQUFVO0FBQ25DLFFBQU0sRUFBRSxPQUFPLElBQUksUUFBUSxVQUFVO0FBQ3JDLFFBQU0sbUJBQW1CO0FBQ3pCLFFBQU0sRUFBRSxzQkFBc0IsbUJBQW1CLElBQUk7QUFDckQsUUFBTSxTQUFTLEtBQUssSUFBSSxHQUFHLEVBQUUsSUFBSTtBQUVqQyxRQUFNLGNBQU4sTUFBa0I7QUFBQSxNQUNoQixVQUFVO0FBQUEsTUFDVixZQUFZO0FBQUEsTUFDWixXQUFXLG9CQUFJLElBQUk7QUFBQSxNQUNuQixZQUFZO0FBQUEsTUFDWixXQUFXO0FBQUEsTUFDWCxTQUFTO0FBQUEsTUFDVCxPQUFPO0FBQUEsTUFFUCxZQUFhLE1BQU07QUFDakIsYUFBSyxVQUFVLEtBQUs7QUFDcEIsYUFBSyxZQUFZLEtBQUs7QUFDdEIsYUFBSyxZQUFZLEtBQUs7QUFDdEIsYUFBSyxXQUFXLEtBQUs7QUFDckIsYUFBSyxTQUFTLEtBQUssVUFBVSxLQUFLO0FBQ2xDLGFBQUssT0FBTyxLQUFLLFFBQVEsS0FBSztBQUFBLE1BQ2hDO0FBQUEsTUFFQSxJQUFJLE9BQVE7QUFDVixlQUFPLEtBQUssU0FBUyxTQUFTLEtBQUs7QUFBQSxNQUNyQztBQUFBLE1BRUEsVUFBV0MsU0FBUSxNQUFNLElBQUk7QUFDM0IsY0FBTSxNQUFNLEtBQUssU0FBUyxJQUFJQSxRQUFPLFFBQVE7QUFHN0MsWUFBSSxPQUFPLFFBQVEsS0FBSyxNQUFNO0FBQzVCLGFBQUcsTUFBTUEsUUFBTyxNQUFNO0FBQ3RCO0FBQUEsUUFDRjtBQUVBLGNBQU0sVUFBVTtBQUFBLFVBQ2QsVUFBVSxLQUFLO0FBQUEsVUFDZixXQUFXLEtBQUs7QUFBQSxVQUNoQixRQUFRLEtBQUs7QUFBQSxVQUNiLE1BQU0sS0FBSztBQUFBLFVBQ1gsR0FBRyxLQUFLO0FBQUEsVUFDUixRQUFRLEtBQUs7QUFBQSxVQUNiLFVBQVUsS0FBSztBQUFBLFFBQ2pCO0FBR0EsWUFBSSxPQUFPLE1BQU07QUFDZixlQUFLLE9BQU9BLFNBQVEsU0FBUyxDQUFDQyxNQUFLLGNBQWM7QUFDL0MsZ0JBQUlBLFFBQU8sYUFBYSxRQUFRLFVBQVUsV0FBVyxHQUFHO0FBQ3RELGlCQUFHQSxRQUFPLElBQUksbUJBQW1CLHNCQUFzQixDQUFDO0FBQ3hEO0FBQUEsWUFDRjtBQUVBLGlCQUFLLFdBQVdELFNBQVEsU0FBUztBQUNqQyxrQkFBTSxVQUFVLEtBQUssU0FBUyxJQUFJQSxRQUFPLFFBQVE7QUFFakQsa0JBQU0sS0FBSyxLQUFLO0FBQUEsY0FDZEE7QUFBQSxjQUNBO0FBQUEsY0FDQSxRQUFRO0FBQUEsWUFDVjtBQUVBLGdCQUFJO0FBQ0osZ0JBQUksT0FBTyxHQUFHLFNBQVMsVUFBVTtBQUMvQixxQkFBTyxJQUFJLEdBQUcsSUFBSTtBQUFBLFlBQ3BCLFdBQVdBLFFBQU8sU0FBUyxJQUFJO0FBQzdCLHFCQUFPLElBQUlBLFFBQU8sSUFBSTtBQUFBLFlBQ3hCLE9BQU87QUFDTCxxQkFBTztBQUFBLFlBQ1Q7QUFFQTtBQUFBLGNBQ0U7QUFBQSxjQUNBLEdBQUdBLFFBQU8sUUFBUSxLQUNoQixHQUFHLFdBQVcsSUFBSSxJQUFJLEdBQUcsT0FBTyxNQUFNLEdBQUcsT0FDM0MsR0FBRyxJQUFJO0FBQUEsWUFDVDtBQUFBLFVBQ0YsQ0FBQztBQUFBLFFBQ0gsT0FBTztBQUVMLGdCQUFNLEtBQUssS0FBSztBQUFBLFlBQ2RBO0FBQUEsWUFDQTtBQUFBLFlBQ0EsUUFBUTtBQUFBLFVBQ1Y7QUFHQSxjQUFJLE1BQU0sTUFBTTtBQUNkLGlCQUFLLFNBQVMsT0FBT0EsUUFBTyxRQUFRO0FBQ3BDLGlCQUFLLFVBQVVBLFNBQVEsTUFBTSxFQUFFO0FBQy9CO0FBQUEsVUFDRjtBQUVBLGNBQUk7QUFDSixjQUFJLE9BQU8sR0FBRyxTQUFTLFVBQVU7QUFDL0IsbUJBQU8sSUFBSSxHQUFHLElBQUk7QUFBQSxVQUNwQixXQUFXQSxRQUFPLFNBQVMsSUFBSTtBQUM3QixtQkFBTyxJQUFJQSxRQUFPLElBQUk7QUFBQSxVQUN4QixPQUFPO0FBQ0wsbUJBQU87QUFBQSxVQUNUO0FBRUE7QUFBQSxZQUNFO0FBQUEsWUFDQSxHQUFHQSxRQUFPLFFBQVEsS0FDaEIsR0FBRyxXQUFXLElBQUksSUFBSSxHQUFHLE9BQU8sTUFBTSxHQUFHLE9BQzNDLEdBQUcsSUFBSTtBQUFBLFVBQ1Q7QUFBQSxRQUNGO0FBQUEsTUFDRjtBQUFBLE1BRUEsZUFBZ0JBLFNBQVEsTUFBTSxJQUFJO0FBQ2hDO0FBQUEsVUFDRUEsUUFBTztBQUFBLFVBQ1A7QUFBQSxZQUNFLEtBQUs7QUFBQSxZQUNMLFFBQVEsS0FBSyxjQUFjLFFBQVEsS0FBSyxXQUFXO0FBQUEsWUFDbkQsT0FBTztBQUFBLFVBQ1Q7QUFBQSxVQUNBLENBQUNDLE1BQUssY0FBYztBQUNsQixnQkFBSUEsTUFBSztBQUNQLHFCQUFPLEdBQUdBLElBQUc7QUFBQSxZQUNmO0FBRUEsa0JBQU0sVUFBVSxvQkFBSSxJQUFJO0FBRXhCLHVCQUFXLFFBQVEsV0FBVztBQUc1QixzQkFBUSxJQUFJLEdBQUcsS0FBSyxPQUFPLElBQUksS0FBSyxNQUFNLElBQUksSUFBSTtBQUFBLFlBQ3BEO0FBRUEsZUFBRyxNQUFNLFFBQVEsT0FBTyxDQUFDO0FBQUEsVUFDM0I7QUFBQSxRQUNGO0FBQUEsTUFDRjtBQUFBLE1BRUEsYUFBY0QsU0FBUSxpQkFBaUIsVUFBVTtBQUMvQyxZQUFJLEtBQUs7QUFDVCxjQUFNLEVBQUUsU0FBUyxPQUFPLElBQUk7QUFFNUIsWUFBSTtBQUNKLFlBQUksS0FBSyxXQUFXO0FBQ2xCLGNBQUksWUFBWSxNQUFNO0FBRXBCLGdCQUFJLFVBQVUsUUFBUSxXQUFXLFFBQVE7QUFDdkMsOEJBQWdCLFNBQVM7QUFDekIseUJBQVc7QUFBQSxZQUNiLE9BQU87QUFDTCw4QkFBZ0I7QUFDaEIsMEJBQVksZ0JBQWdCLFNBQVMsT0FBTyxJQUFJLElBQUk7QUFBQSxZQUN0RDtBQUFBLFVBQ0Y7QUFFQSxjQUFJLFFBQVEsUUFBUSxLQUFLLFFBQVEsUUFBUSxRQUFRLEVBQUUsSUFBSSxTQUFTLEdBQUc7QUFDakUscUJBQVMsUUFBUSxRQUFRO0FBQUEsVUFDM0IsT0FBTztBQUNMLHFCQUFTLFFBQVEsYUFBYSxJQUFJLElBQUksQ0FBQztBQUFBLFVBQ3pDO0FBQUEsUUFDRixPQUFPO0FBQ0wsbUJBQVMsUUFBUSxRQUFRO0FBQUEsUUFDM0I7QUFHQSxZQUFJLFVBQVUsUUFBUSxPQUFPLElBQUksV0FBVyxHQUFHO0FBQzdDLGlCQUFPO0FBQUEsUUFDVDtBQUVBLFlBQUksT0FBTyxVQUFVLFFBQVEsT0FBTyxXQUFXLFFBQVE7QUFDckQsaUJBQU8sU0FBUztBQUFBLFFBQ2xCLE9BQU87QUFDTCxpQkFBTztBQUFBLFFBQ1Q7QUFFQSxjQUFNLFdBQVcsT0FBTyxTQUFTLE9BQU8sSUFBSTtBQUM1QyxhQUFLLE9BQU8sSUFBSSxRQUFRLEtBQUs7QUFFN0IsWUFBSSxNQUFNLE1BQU07QUFDZCxpQkFBTztBQUFBLFFBQ1Q7QUFFQSxZQUFJLEtBQUssSUFBSSxJQUFJLEdBQUcsWUFBWSxHQUFHLEtBQUs7QUFHdEMsaUJBQU8sSUFBSSxPQUFPLFVBQVUsQ0FBQztBQUM3QixpQkFBTyxLQUFLLEtBQUtBLFNBQVEsaUJBQWlCLFFBQVE7QUFBQSxRQUNwRDtBQUVBLGVBQU87QUFBQSxNQUNUO0FBQUEsTUFFQSxXQUFZQSxTQUFRLFdBQVc7QUFDN0IsY0FBTSxZQUFZLEtBQUssSUFBSTtBQUMzQixjQUFNLFVBQVUsRUFBRSxTQUFTLEVBQUUsR0FBRyxNQUFNLEdBQUcsS0FBSyxFQUFFO0FBQ2hELG1CQUFXLFVBQVUsV0FBVztBQUM5QixpQkFBTyxZQUFZO0FBQ25CLGNBQUksT0FBTyxPQUFPLFFBQVEsVUFBVTtBQUVsQyxtQkFBTyxNQUFNLEtBQUssSUFBSSxPQUFPLEtBQUssS0FBSyxPQUFPO0FBQUEsVUFDaEQsT0FBTztBQUNMLG1CQUFPLE1BQU0sS0FBSztBQUFBLFVBQ3BCO0FBRUEsZ0JBQU0sZ0JBQWdCLFFBQVEsUUFBUSxPQUFPLE1BQU0sS0FBSyxFQUFFLEtBQUssQ0FBQyxFQUFFO0FBRWxFLHdCQUFjLElBQUksS0FBSyxNQUFNO0FBQzdCLGtCQUFRLFFBQVEsT0FBTyxNQUFNLElBQUk7QUFBQSxRQUNuQztBQUVBLGFBQUssU0FBUyxJQUFJQSxRQUFPLFVBQVUsT0FBTztBQUFBLE1BQzVDO0FBQUEsTUFFQSxXQUFZLE1BQU0sTUFBTTtBQUN0QixlQUFPLElBQUksbUJBQW1CLE1BQU0sTUFBTSxJQUFJO0FBQUEsTUFDaEQ7QUFBQSxJQUNGO0FBRUEsUUFBTSxxQkFBTixjQUFpQyxpQkFBaUI7QUFBQSxNQUNoRCxTQUFTO0FBQUEsTUFDVCxRQUFRO0FBQUEsTUFDUixZQUFZO0FBQUEsTUFDWixXQUFXO0FBQUEsTUFDWCxVQUFVO0FBQUEsTUFFVixZQUFhLE9BQU8sRUFBRSxRQUFBQSxTQUFRLFNBQVMsU0FBUyxHQUFHLE1BQU07QUFDdkQsY0FBTSxPQUFPO0FBQ2IsYUFBSyxVQUFVQTtBQUNmLGFBQUssV0FBVztBQUNoQixhQUFLLFFBQVEsRUFBRSxHQUFHLEtBQUs7QUFDdkIsYUFBSyxTQUFTO0FBQ2QsYUFBSyxZQUFZO0FBQUEsTUFDbkI7QUFBQSxNQUVBLFFBQVNDLE1BQUs7QUFDWixnQkFBUUEsS0FBSSxNQUFNO0FBQUEsVUFDaEIsS0FBSztBQUFBLFVBQ0wsS0FBSyxnQkFBZ0I7QUFDbkIsZ0JBQUksS0FBSyxPQUFPLFdBQVc7QUFFekIsbUJBQUssT0FBTyxVQUFVLEtBQUssU0FBUyxLQUFLLE9BQU8sQ0FBQ0EsTUFBSyxjQUFjO0FBQ2xFLG9CQUFJQSxNQUFLO0FBQ1AseUJBQU8sS0FBSyxTQUFTLFFBQVFBLElBQUc7QUFBQSxnQkFDbEM7QUFFQSxzQkFBTSxlQUFlO0FBQUEsa0JBQ25CLEdBQUcsS0FBSztBQUFBLGtCQUNSLFFBQVE7QUFBQSxnQkFDVjtBQUVBLHFCQUFLLFVBQVUsY0FBYyxJQUFJO0FBQUEsY0FDbkMsQ0FBQztBQUdEO0FBQUEsWUFDRjtBQUVBLGlCQUFLLFNBQVMsUUFBUUEsSUFBRztBQUN6QjtBQUFBLFVBQ0Y7QUFBQSxVQUNBLEtBQUs7QUFDSCxpQkFBSyxPQUFPLGFBQWEsS0FBSyxPQUFPO0FBQUE7QUFBQSxVQUV2QztBQUNFLGlCQUFLLFNBQVMsUUFBUUEsSUFBRztBQUN6QjtBQUFBLFFBQ0o7QUFBQSxNQUNGO0FBQUEsSUFDRjtBQUVBLElBQUFGLFFBQU8sVUFBVSxxQkFBbUI7QUFDbEMsVUFDRSxpQkFBaUIsVUFBVSxTQUMxQixPQUFPLGlCQUFpQixXQUFXLFlBQVksaUJBQWlCLFNBQVMsSUFDMUU7QUFDQSxjQUFNLElBQUkscUJBQXFCLDJDQUEyQztBQUFBLE1BQzVFO0FBRUEsVUFDRSxpQkFBaUIsWUFBWSxTQUM1QixPQUFPLGlCQUFpQixhQUFhLFlBQ3BDLGlCQUFpQixXQUFXLElBQzlCO0FBQ0EsY0FBTSxJQUFJO0FBQUEsVUFDUjtBQUFBLFFBQ0Y7QUFBQSxNQUNGO0FBRUEsVUFDRSxpQkFBaUIsWUFBWSxRQUM3QixpQkFBaUIsYUFBYSxLQUM5QixpQkFBaUIsYUFBYSxHQUM5QjtBQUNBLGNBQU0sSUFBSSxxQkFBcUIseUNBQXlDO0FBQUEsTUFDMUU7QUFFQSxVQUNFLGlCQUFpQixhQUFhLFFBQzlCLE9BQU8saUJBQWlCLGNBQWMsV0FDdEM7QUFDQSxjQUFNLElBQUkscUJBQXFCLHNDQUFzQztBQUFBLE1BQ3ZFO0FBRUEsVUFDRSxpQkFBaUIsVUFBVSxRQUMzQixPQUFPLGlCQUFpQixXQUFXLFlBQ25DO0FBQ0EsY0FBTSxJQUFJLHFCQUFxQixvQ0FBb0M7QUFBQSxNQUNyRTtBQUVBLFVBQ0UsaUJBQWlCLFFBQVEsUUFDekIsT0FBTyxpQkFBaUIsU0FBUyxZQUNqQztBQUNBLGNBQU0sSUFBSSxxQkFBcUIsa0NBQWtDO0FBQUEsTUFDbkU7QUFFQSxZQUFNLFlBQVksaUJBQWlCLGFBQWE7QUFDaEQsVUFBSTtBQUNKLFVBQUksV0FBVztBQUNiLG1CQUFXLGlCQUFpQixZQUFZO0FBQUEsTUFDMUMsT0FBTztBQUNMLG1CQUFXLGlCQUFpQixZQUFZO0FBQUEsTUFDMUM7QUFFQSxZQUFNLE9BQU87QUFBQSxRQUNYLFFBQVEsaUJBQWlCLFVBQVU7QUFBQTtBQUFBLFFBQ25DLFFBQVEsaUJBQWlCLFVBQVU7QUFBQSxRQUNuQyxNQUFNLGlCQUFpQixRQUFRO0FBQUEsUUFDL0I7QUFBQSxRQUNBO0FBQUEsUUFDQSxVQUFVLGlCQUFpQixZQUFZO0FBQUEsTUFDekM7QUFFQSxZQUFNLFdBQVcsSUFBSSxZQUFZLElBQUk7QUFFckMsYUFBTyxjQUFZO0FBQ2pCLGVBQU8sU0FBUyxlQUFnQixrQkFBa0IsU0FBUztBQUN6RCxnQkFBTUMsVUFDSixpQkFBaUIsT0FBTyxnQkFBZ0IsTUFDcEMsaUJBQWlCLFNBQ2pCLElBQUksSUFBSSxpQkFBaUIsTUFBTTtBQUVyQyxjQUFJLEtBQUtBLFFBQU8sUUFBUSxNQUFNLEdBQUc7QUFDL0IsbUJBQU8sU0FBUyxrQkFBa0IsT0FBTztBQUFBLFVBQzNDO0FBRUEsbUJBQVMsVUFBVUEsU0FBUSxrQkFBa0IsQ0FBQ0MsTUFBSyxjQUFjO0FBQy9ELGdCQUFJQSxNQUFLO0FBQ1AscUJBQU8sUUFBUSxRQUFRQSxJQUFHO0FBQUEsWUFDNUI7QUFFQSxnQkFBSSxlQUFlO0FBQ25CLDJCQUFlO0FBQUEsY0FDYixHQUFHO0FBQUEsY0FDSCxZQUFZRCxRQUFPO0FBQUE7QUFBQSxjQUNuQixRQUFRO0FBQUEsY0FDUixTQUFTO0FBQUEsZ0JBQ1AsTUFBTUEsUUFBTztBQUFBLGdCQUNiLEdBQUcsaUJBQWlCO0FBQUEsY0FDdEI7QUFBQSxZQUNGO0FBRUE7QUFBQSxjQUNFO0FBQUEsY0FDQSxTQUFTLFdBQVcsRUFBRSxRQUFBQSxTQUFRLFVBQVUsUUFBUSxHQUFHLGdCQUFnQjtBQUFBLFlBQ3JFO0FBQUEsVUFDRixDQUFDO0FBRUQsaUJBQU87QUFBQSxRQUNUO0FBQUEsTUFDRjtBQUFBLElBQ0Y7QUFBQTtBQUFBOzs7QUN0WEE7QUFBQSxpREFBQUUsVUFBQUMsU0FBQTtBQUFBO0FBSUEsUUFBTSxFQUFFLFdBQVcsSUFBSTtBQUN2QixRQUFNLEVBQUUsb0JBQW9CLElBQUk7QUFDaEMsUUFBTTtBQUFBLE1BQ0o7QUFBQSxNQUNBLG1CQUFBQztBQUFBLE1BQ0E7QUFBQSxJQUNGLElBQUk7QUFDSixRQUFNLEVBQUUsT0FBTyxJQUFJO0FBQ25CLFFBQU0sU0FBUyxRQUFRLGFBQWE7QUFDcEMsUUFBTUMsUUFBTyxRQUFRLFdBQVc7QUFFaEMsUUFBTSxjQUFjLE9BQU8sYUFBYTtBQUN4QyxRQUFNLG9CQUFvQixPQUFPLG9CQUFvQjtBQUtyRCxhQUFTLHlCQUEwQixNQUFNO0FBQ3ZDLGFBQU8sU0FBUyxNQUFTLFNBQVMsTUFBUyxTQUFTLEtBQVMsU0FBUztBQUFBLElBQ3hFO0FBTUEsYUFBUyxxQkFBc0IsZ0JBQWdCO0FBSTdDLFVBQUksSUFBSTtBQUFHLFVBQUksSUFBSSxlQUFlO0FBRWxDLGFBQU8sSUFBSSxLQUFLLHlCQUF5QixlQUFlLFdBQVcsSUFBSSxDQUFDLENBQUMsRUFBRyxHQUFFO0FBQzlFLGFBQU8sSUFBSSxLQUFLLHlCQUF5QixlQUFlLFdBQVcsQ0FBQyxDQUFDLEVBQUcsR0FBRTtBQUUxRSxhQUFPLE1BQU0sS0FBSyxNQUFNLGVBQWUsU0FBUyxpQkFBaUIsZUFBZSxVQUFVLEdBQUcsQ0FBQztBQUFBLElBQ2hHO0FBRUEsYUFBUyxLQUFNLFNBQVMsUUFBUTtBQUs5QixVQUFJLE1BQU0sUUFBUSxNQUFNLEdBQUc7QUFDekIsaUJBQVMsSUFBSSxHQUFHLElBQUksT0FBTyxRQUFRLEVBQUUsR0FBRztBQUN0QyxnQkFBTSxTQUFTLE9BQU8sQ0FBQztBQUV2QixjQUFJLE9BQU8sV0FBVyxHQUFHO0FBQ3ZCLGtCQUFNLE9BQU8sT0FBTyxVQUFVO0FBQUEsY0FDNUIsUUFBUTtBQUFBLGNBQ1IsU0FBUyxrREFBa0QsT0FBTyxNQUFNO0FBQUEsWUFDMUUsQ0FBQztBQUFBLFVBQ0g7QUFHQSx1QkFBYSxTQUFTLE9BQU8sQ0FBQyxHQUFHLE9BQU8sQ0FBQyxDQUFDO0FBQUEsUUFDNUM7QUFBQSxNQUNGLFdBQVcsT0FBTyxXQUFXLFlBQVksV0FBVyxNQUFNO0FBS3hELGNBQU0sT0FBTyxPQUFPLEtBQUssTUFBTTtBQUMvQixpQkFBUyxJQUFJLEdBQUcsSUFBSSxLQUFLLFFBQVEsRUFBRSxHQUFHO0FBQ3BDLHVCQUFhLFNBQVMsS0FBSyxDQUFDLEdBQUcsT0FBTyxLQUFLLENBQUMsQ0FBQyxDQUFDO0FBQUEsUUFDaEQ7QUFBQSxNQUNGLE9BQU87QUFDTCxjQUFNLE9BQU8sT0FBTyxpQkFBaUI7QUFBQSxVQUNuQyxRQUFRO0FBQUEsVUFDUixVQUFVO0FBQUEsVUFDVixPQUFPLENBQUMsa0NBQWtDLGdDQUFnQztBQUFBLFFBQzVFLENBQUM7QUFBQSxNQUNIO0FBQUEsSUFDRjtBQUtBLGFBQVMsYUFBYyxTQUFTLE1BQU0sT0FBTztBQUUzQyxjQUFRLHFCQUFxQixLQUFLO0FBSWxDLFVBQUksQ0FBQ0QsbUJBQWtCLElBQUksR0FBRztBQUM1QixjQUFNLE9BQU8sT0FBTyxnQkFBZ0I7QUFBQSxVQUNsQyxRQUFRO0FBQUEsVUFDUixPQUFPO0FBQUEsVUFDUCxNQUFNO0FBQUEsUUFDUixDQUFDO0FBQUEsTUFDSCxXQUFXLENBQUMsbUJBQW1CLEtBQUssR0FBRztBQUNyQyxjQUFNLE9BQU8sT0FBTyxnQkFBZ0I7QUFBQSxVQUNsQyxRQUFRO0FBQUEsVUFDUjtBQUFBLFVBQ0EsTUFBTTtBQUFBLFFBQ1IsQ0FBQztBQUFBLE1BQ0g7QUFRQSxVQUFJLGdCQUFnQixPQUFPLE1BQU0sYUFBYTtBQUM1QyxjQUFNLElBQUksVUFBVSxXQUFXO0FBQUEsTUFDakM7QUFNQSxhQUFPLGVBQWUsT0FBTyxFQUFFLE9BQU8sTUFBTSxPQUFPLEtBQUs7QUFBQSxJQUkxRDtBQUVBLGFBQVMsa0JBQW1CLEdBQUcsR0FBRztBQUNoQyxhQUFPLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxJQUFJLEtBQUs7QUFBQSxJQUM1QjtBQUVBLFFBQU0sY0FBTixNQUFNLGFBQVk7QUFBQTtBQUFBLE1BRWhCLFVBQVU7QUFBQSxNQUVWLFlBQWEsTUFBTTtBQUNqQixZQUFJLGdCQUFnQixjQUFhO0FBQy9CLGVBQUssV0FBVyxJQUFJLElBQUksSUFBSSxLQUFLLFdBQVcsQ0FBQztBQUM3QyxlQUFLLGlCQUFpQixJQUFJLEtBQUssaUJBQWlCO0FBQ2hELGVBQUssVUFBVSxLQUFLLFlBQVksT0FBTyxPQUFPLENBQUMsR0FBRyxLQUFLLE9BQU87QUFBQSxRQUNoRSxPQUFPO0FBQ0wsZUFBSyxXQUFXLElBQUksSUFBSSxJQUFJLElBQUk7QUFDaEMsZUFBSyxpQkFBaUIsSUFBSTtBQUFBLFFBQzVCO0FBQUEsTUFDRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxNQU9BLFNBQVUsTUFBTSxhQUFhO0FBSzNCLGVBQU8sS0FBSyxXQUFXLEVBQUUsSUFBSSxjQUFjLE9BQU8sS0FBSyxZQUFZLENBQUM7QUFBQSxNQUN0RTtBQUFBLE1BRUEsUUFBUztBQUNQLGFBQUssV0FBVyxFQUFFLE1BQU07QUFDeEIsYUFBSyxpQkFBaUIsSUFBSTtBQUMxQixhQUFLLFVBQVU7QUFBQSxNQUNqQjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLE1BUUEsT0FBUSxNQUFNLE9BQU8sYUFBYTtBQUNoQyxhQUFLLGlCQUFpQixJQUFJO0FBSTFCLGNBQU0sZ0JBQWdCLGNBQWMsT0FBTyxLQUFLLFlBQVk7QUFDNUQsY0FBTSxTQUFTLEtBQUssV0FBVyxFQUFFLElBQUksYUFBYTtBQUdsRCxZQUFJLFFBQVE7QUFDVixnQkFBTSxZQUFZLGtCQUFrQixXQUFXLE9BQU87QUFDdEQsZUFBSyxXQUFXLEVBQUUsSUFBSSxlQUFlO0FBQUEsWUFDbkMsTUFBTSxPQUFPO0FBQUEsWUFDYixPQUFPLEdBQUcsT0FBTyxLQUFLLEdBQUcsU0FBUyxHQUFHLEtBQUs7QUFBQSxVQUM1QyxDQUFDO0FBQUEsUUFDSCxPQUFPO0FBQ0wsZUFBSyxXQUFXLEVBQUUsSUFBSSxlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFBQSxRQUN0RDtBQUVBLFlBQUksa0JBQWtCLGNBQWM7QUFDbEMsV0FBQyxLQUFLLFlBQVksQ0FBQyxHQUFHLEtBQUssS0FBSztBQUFBLFFBQ2xDO0FBQUEsTUFDRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLE1BUUEsSUFBSyxNQUFNLE9BQU8sYUFBYTtBQUM3QixhQUFLLGlCQUFpQixJQUFJO0FBQzFCLGNBQU0sZ0JBQWdCLGNBQWMsT0FBTyxLQUFLLFlBQVk7QUFFNUQsWUFBSSxrQkFBa0IsY0FBYztBQUNsQyxlQUFLLFVBQVUsQ0FBQyxLQUFLO0FBQUEsUUFDdkI7QUFNQSxhQUFLLFdBQVcsRUFBRSxJQUFJLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUFBLE1BQ3REO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLE1BT0EsT0FBUSxNQUFNLGFBQWE7QUFDekIsYUFBSyxpQkFBaUIsSUFBSTtBQUMxQixZQUFJLENBQUMsWUFBYSxRQUFPLEtBQUssWUFBWTtBQUUxQyxZQUFJLFNBQVMsY0FBYztBQUN6QixlQUFLLFVBQVU7QUFBQSxRQUNqQjtBQUVBLGFBQUssV0FBVyxFQUFFLE9BQU8sSUFBSTtBQUFBLE1BQy9CO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsTUFRQSxJQUFLLE1BQU0sYUFBYTtBQUt0QixlQUFPLEtBQUssV0FBVyxFQUFFLElBQUksY0FBYyxPQUFPLEtBQUssWUFBWSxDQUFDLEdBQUcsU0FBUztBQUFBLE1BQ2xGO0FBQUEsTUFFQSxFQUFHLE9BQU8sUUFBUSxJQUFLO0FBRXJCLG1CQUFXLEVBQUUsR0FBRyxNQUFNLEdBQUcsRUFBRSxNQUFNLEVBQUUsS0FBSyxLQUFLLFdBQVcsR0FBRztBQUN6RCxnQkFBTSxDQUFDLE1BQU0sS0FBSztBQUFBLFFBQ3BCO0FBQUEsTUFDRjtBQUFBLE1BRUEsSUFBSSxVQUFXO0FBQ2IsY0FBTSxVQUFVLENBQUM7QUFFakIsWUFBSSxLQUFLLFdBQVcsRUFBRSxTQUFTLEdBQUc7QUFDaEMscUJBQVcsRUFBRSxNQUFNLE1BQU0sS0FBSyxLQUFLLFdBQVcsRUFBRSxPQUFPLEdBQUc7QUFDeEQsb0JBQVEsSUFBSSxJQUFJO0FBQUEsVUFDbEI7QUFBQSxRQUNGO0FBRUEsZUFBTztBQUFBLE1BQ1Q7QUFBQSxNQUVBLFlBQWE7QUFDWCxlQUFPLEtBQUssV0FBVyxFQUFFLE9BQU87QUFBQSxNQUNsQztBQUFBLE1BRUEsSUFBSSxjQUFlO0FBQ2pCLGNBQU0sVUFBVSxDQUFDO0FBRWpCLFlBQUksS0FBSyxXQUFXLEVBQUUsU0FBUyxHQUFHO0FBQ2hDLHFCQUFXLEVBQUUsR0FBRyxXQUFXLEdBQUcsRUFBRSxNQUFNLE1BQU0sRUFBRSxLQUFLLEtBQUssV0FBVyxHQUFHO0FBQ3BFLGdCQUFJLGNBQWMsY0FBYztBQUM5Qix5QkFBVyxVQUFVLEtBQUssU0FBUztBQUNqQyx3QkFBUSxLQUFLLENBQUMsTUFBTSxNQUFNLENBQUM7QUFBQSxjQUM3QjtBQUFBLFlBQ0YsT0FBTztBQUNMLHNCQUFRLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQztBQUFBLFlBQzVCO0FBQUEsVUFDRjtBQUFBLFFBQ0Y7QUFFQSxlQUFPO0FBQUEsTUFDVDtBQUFBO0FBQUEsTUFHQSxnQkFBaUI7QUFDZixjQUFNLE9BQU8sS0FBSyxXQUFXLEVBQUU7QUFDL0IsY0FBTSxRQUFRLElBQUksTUFBTSxJQUFJO0FBRzVCLFlBQUksUUFBUSxJQUFJO0FBQ2QsY0FBSSxTQUFTLEdBQUc7QUFFZCxtQkFBTztBQUFBLFVBQ1Q7QUFHQSxnQkFBTSxXQUFXLEtBQUssV0FBVyxFQUFFLE9BQU8sUUFBUSxFQUFFO0FBQ3BELGdCQUFNLGFBQWEsU0FBUyxLQUFLLEVBQUU7QUFFbkMsZ0JBQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsV0FBVyxDQUFDLEVBQUUsS0FBSztBQUc5QyxpQkFBTyxXQUFXLENBQUMsRUFBRSxVQUFVLElBQUk7QUFDbkMsbUJBQ00sSUFBSSxHQUFHLElBQUksR0FBRyxRQUFRLEdBQUcsT0FBTyxHQUFHLFFBQVEsR0FBRyxHQUFHLE9BQ3JELElBQUksTUFDSixFQUFFLEdBQ0Y7QUFFQSxvQkFBUSxTQUFTLEtBQUssRUFBRTtBQUV4QixnQkFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLE1BQU0sQ0FBQyxFQUFFLEtBQUs7QUFHeEMsbUJBQU8sRUFBRSxDQUFDLE1BQU0sSUFBSTtBQUNwQixtQkFBTztBQUNQLG9CQUFRO0FBRVIsbUJBQU8sT0FBTyxPQUFPO0FBRW5CLHNCQUFRLFFBQVMsUUFBUSxRQUFTO0FBRWxDLGtCQUFJLE1BQU0sS0FBSyxFQUFFLENBQUMsS0FBSyxFQUFFLENBQUMsR0FBRztBQUMzQix1QkFBTyxRQUFRO0FBQUEsY0FDakIsT0FBTztBQUNMLHdCQUFRO0FBQUEsY0FDVjtBQUFBLFlBQ0Y7QUFDQSxnQkFBSSxNQUFNLE9BQU87QUFDZixrQkFBSTtBQUNKLHFCQUFPLElBQUksTUFBTTtBQUNmLHNCQUFNLENBQUMsSUFBSSxNQUFNLEVBQUUsQ0FBQztBQUFBLGNBQ3RCO0FBQ0Esb0JBQU0sSUFBSSxJQUFJO0FBQUEsWUFDaEI7QUFBQSxVQUNGO0FBRUEsY0FBSSxDQUFDLFNBQVMsS0FBSyxFQUFFLE1BQU07QUFFekIsa0JBQU0sSUFBSSxVQUFVLGFBQWE7QUFBQSxVQUNuQztBQUNBLGlCQUFPO0FBQUEsUUFDVCxPQUFPO0FBR0wsY0FBSSxJQUFJO0FBQ1IscUJBQVcsRUFBRSxHQUFHLE1BQU0sR0FBRyxFQUFFLE1BQU0sRUFBRSxLQUFLLEtBQUssV0FBVyxHQUFHO0FBQ3pELGtCQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sS0FBSztBQUd6QixtQkFBTyxVQUFVLElBQUk7QUFBQSxVQUN2QjtBQUNBLGlCQUFPLE1BQU0sS0FBSyxpQkFBaUI7QUFBQSxRQUNyQztBQUFBLE1BQ0Y7QUFBQSxJQUNGO0FBR0EsUUFBTSxVQUFOLE1BQU0sU0FBUTtBQUFBLE1BQ1o7QUFBQSxNQUNBO0FBQUEsTUFFQSxZQUFhLE9BQU8sUUFBVztBQUM3QixlQUFPLEtBQUssa0JBQWtCLElBQUk7QUFFbEMsWUFBSSxTQUFTLFlBQVk7QUFDdkI7QUFBQSxRQUNGO0FBRUEsYUFBSyxlQUFlLElBQUksWUFBWTtBQUtwQyxhQUFLLFNBQVM7QUFHZCxZQUFJLFNBQVMsUUFBVztBQUN0QixpQkFBTyxPQUFPLFdBQVcsWUFBWSxNQUFNLHNCQUFzQixNQUFNO0FBQ3ZFLGVBQUssTUFBTSxJQUFJO0FBQUEsUUFDakI7QUFBQSxNQUNGO0FBQUE7QUFBQSxNQUdBLE9BQVEsTUFBTSxPQUFPO0FBQ25CLGVBQU8sV0FBVyxNQUFNLFFBQU87QUFFL0IsZUFBTyxvQkFBb0IsV0FBVyxHQUFHLGdCQUFnQjtBQUV6RCxjQUFNLFNBQVM7QUFDZixlQUFPLE9BQU8sV0FBVyxXQUFXLE1BQU0sUUFBUSxNQUFNO0FBQ3hELGdCQUFRLE9BQU8sV0FBVyxXQUFXLE9BQU8sUUFBUSxPQUFPO0FBRTNELGVBQU8sYUFBYSxNQUFNLE1BQU0sS0FBSztBQUFBLE1BQ3ZDO0FBQUE7QUFBQSxNQUdBLE9BQVEsTUFBTTtBQUNaLGVBQU8sV0FBVyxNQUFNLFFBQU87QUFFL0IsZUFBTyxvQkFBb0IsV0FBVyxHQUFHLGdCQUFnQjtBQUV6RCxjQUFNLFNBQVM7QUFDZixlQUFPLE9BQU8sV0FBVyxXQUFXLE1BQU0sUUFBUSxNQUFNO0FBR3hELFlBQUksQ0FBQ0EsbUJBQWtCLElBQUksR0FBRztBQUM1QixnQkFBTSxPQUFPLE9BQU8sZ0JBQWdCO0FBQUEsWUFDbEMsUUFBUTtBQUFBLFlBQ1IsT0FBTztBQUFBLFlBQ1AsTUFBTTtBQUFBLFVBQ1IsQ0FBQztBQUFBLFFBQ0g7QUFZQSxZQUFJLEtBQUssV0FBVyxhQUFhO0FBQy9CLGdCQUFNLElBQUksVUFBVSxXQUFXO0FBQUEsUUFDakM7QUFJQSxZQUFJLENBQUMsS0FBSyxhQUFhLFNBQVMsTUFBTSxLQUFLLEdBQUc7QUFDNUM7QUFBQSxRQUNGO0FBS0EsYUFBSyxhQUFhLE9BQU8sTUFBTSxLQUFLO0FBQUEsTUFDdEM7QUFBQTtBQUFBLE1BR0EsSUFBSyxNQUFNO0FBQ1QsZUFBTyxXQUFXLE1BQU0sUUFBTztBQUUvQixlQUFPLG9CQUFvQixXQUFXLEdBQUcsYUFBYTtBQUV0RCxjQUFNLFNBQVM7QUFDZixlQUFPLE9BQU8sV0FBVyxXQUFXLE1BQU0sUUFBUSxNQUFNO0FBR3hELFlBQUksQ0FBQ0EsbUJBQWtCLElBQUksR0FBRztBQUM1QixnQkFBTSxPQUFPLE9BQU8sZ0JBQWdCO0FBQUEsWUFDbEM7QUFBQSxZQUNBLE9BQU87QUFBQSxZQUNQLE1BQU07QUFBQSxVQUNSLENBQUM7QUFBQSxRQUNIO0FBSUEsZUFBTyxLQUFLLGFBQWEsSUFBSSxNQUFNLEtBQUs7QUFBQSxNQUMxQztBQUFBO0FBQUEsTUFHQSxJQUFLLE1BQU07QUFDVCxlQUFPLFdBQVcsTUFBTSxRQUFPO0FBRS9CLGVBQU8sb0JBQW9CLFdBQVcsR0FBRyxhQUFhO0FBRXRELGNBQU0sU0FBUztBQUNmLGVBQU8sT0FBTyxXQUFXLFdBQVcsTUFBTSxRQUFRLE1BQU07QUFHeEQsWUFBSSxDQUFDQSxtQkFBa0IsSUFBSSxHQUFHO0FBQzVCLGdCQUFNLE9BQU8sT0FBTyxnQkFBZ0I7QUFBQSxZQUNsQztBQUFBLFlBQ0EsT0FBTztBQUFBLFlBQ1AsTUFBTTtBQUFBLFVBQ1IsQ0FBQztBQUFBLFFBQ0g7QUFJQSxlQUFPLEtBQUssYUFBYSxTQUFTLE1BQU0sS0FBSztBQUFBLE1BQy9DO0FBQUE7QUFBQSxNQUdBLElBQUssTUFBTSxPQUFPO0FBQ2hCLGVBQU8sV0FBVyxNQUFNLFFBQU87QUFFL0IsZUFBTyxvQkFBb0IsV0FBVyxHQUFHLGFBQWE7QUFFdEQsY0FBTSxTQUFTO0FBQ2YsZUFBTyxPQUFPLFdBQVcsV0FBVyxNQUFNLFFBQVEsTUFBTTtBQUN4RCxnQkFBUSxPQUFPLFdBQVcsV0FBVyxPQUFPLFFBQVEsT0FBTztBQUczRCxnQkFBUSxxQkFBcUIsS0FBSztBQUlsQyxZQUFJLENBQUNBLG1CQUFrQixJQUFJLEdBQUc7QUFDNUIsZ0JBQU0sT0FBTyxPQUFPLGdCQUFnQjtBQUFBLFlBQ2xDO0FBQUEsWUFDQSxPQUFPO0FBQUEsWUFDUCxNQUFNO0FBQUEsVUFDUixDQUFDO0FBQUEsUUFDSCxXQUFXLENBQUMsbUJBQW1CLEtBQUssR0FBRztBQUNyQyxnQkFBTSxPQUFPLE9BQU8sZ0JBQWdCO0FBQUEsWUFDbEM7QUFBQSxZQUNBO0FBQUEsWUFDQSxNQUFNO0FBQUEsVUFDUixDQUFDO0FBQUEsUUFDSDtBQVdBLFlBQUksS0FBSyxXQUFXLGFBQWE7QUFDL0IsZ0JBQU0sSUFBSSxVQUFVLFdBQVc7QUFBQSxRQUNqQztBQUtBLGFBQUssYUFBYSxJQUFJLE1BQU0sT0FBTyxLQUFLO0FBQUEsTUFDMUM7QUFBQTtBQUFBLE1BR0EsZUFBZ0I7QUFDZCxlQUFPLFdBQVcsTUFBTSxRQUFPO0FBTS9CLGNBQU0sT0FBTyxLQUFLLGFBQWE7QUFFL0IsWUFBSSxNQUFNO0FBQ1IsaUJBQU8sQ0FBQyxHQUFHLElBQUk7QUFBQSxRQUNqQjtBQUVBLGVBQU8sQ0FBQztBQUFBLE1BQ1Y7QUFBQTtBQUFBLE1BR0EsS0FBSyxpQkFBaUIsSUFBSztBQUN6QixZQUFJLEtBQUssYUFBYSxpQkFBaUIsR0FBRztBQUN4QyxpQkFBTyxLQUFLLGFBQWEsaUJBQWlCO0FBQUEsUUFDNUM7QUFJQSxjQUFNLFVBQVUsQ0FBQztBQUlqQixjQUFNLFFBQVEsS0FBSyxhQUFhLGNBQWM7QUFFOUMsY0FBTSxVQUFVLEtBQUssYUFBYTtBQUdsQyxZQUFJLFlBQVksUUFBUSxRQUFRLFdBQVcsR0FBRztBQUU1QyxpQkFBUSxLQUFLLGFBQWEsaUJBQWlCLElBQUk7QUFBQSxRQUNqRDtBQUdBLGlCQUFTLElBQUksR0FBRyxJQUFJLE1BQU0sUUFBUSxFQUFFLEdBQUc7QUFDckMsZ0JBQU0sRUFBRSxHQUFHLE1BQU0sR0FBRyxNQUFNLElBQUksTUFBTSxDQUFDO0FBRXJDLGNBQUksU0FBUyxjQUFjO0FBTXpCLHFCQUFTLElBQUksR0FBRyxJQUFJLFFBQVEsUUFBUSxFQUFFLEdBQUc7QUFDdkMsc0JBQVEsS0FBSyxDQUFDLE1BQU0sUUFBUSxDQUFDLENBQUMsQ0FBQztBQUFBLFlBQ2pDO0FBQUEsVUFDRixPQUFPO0FBU0wsb0JBQVEsS0FBSyxDQUFDLE1BQU0sS0FBSyxDQUFDO0FBQUEsVUFDNUI7QUFBQSxRQUNGO0FBR0EsZUFBUSxLQUFLLGFBQWEsaUJBQWlCLElBQUk7QUFBQSxNQUNqRDtBQUFBLE1BRUEsQ0FBQ0MsTUFBSyxRQUFRLE1BQU0sRUFBRyxPQUFPLFNBQVM7QUFDckMsZ0JBQVEsVUFBVTtBQUVsQixlQUFPLFdBQVdBLE1BQUssa0JBQWtCLFNBQVMsS0FBSyxhQUFhLE9BQU8sQ0FBQztBQUFBLE1BQzlFO0FBQUEsTUFFQSxPQUFPLGdCQUFpQixHQUFHO0FBQ3pCLGVBQU8sRUFBRTtBQUFBLE1BQ1g7QUFBQSxNQUVBLE9BQU8sZ0JBQWlCLEdBQUcsT0FBTztBQUNoQyxVQUFFLFNBQVM7QUFBQSxNQUNiO0FBQUEsTUFFQSxPQUFPLGVBQWdCLEdBQUc7QUFDeEIsZUFBTyxFQUFFO0FBQUEsTUFDWDtBQUFBLE1BRUEsT0FBTyxlQUFnQixHQUFHLE1BQU07QUFDOUIsVUFBRSxlQUFlO0FBQUEsTUFDbkI7QUFBQSxJQUNGO0FBRUEsUUFBTSxFQUFFLGlCQUFpQixpQkFBaUIsZ0JBQWdCLGVBQWUsSUFBSTtBQUM3RSxZQUFRLGVBQWUsU0FBUyxpQkFBaUI7QUFDakQsWUFBUSxlQUFlLFNBQVMsaUJBQWlCO0FBQ2pELFlBQVEsZUFBZSxTQUFTLGdCQUFnQjtBQUNoRCxZQUFRLGVBQWUsU0FBUyxnQkFBZ0I7QUFFaEQsa0JBQWMsV0FBVyxTQUFTLG1CQUFtQixHQUFHLENBQUM7QUFFekQsV0FBTyxpQkFBaUIsUUFBUSxXQUFXO0FBQUEsTUFDekMsUUFBUTtBQUFBLE1BQ1IsUUFBUTtBQUFBLE1BQ1IsS0FBSztBQUFBLE1BQ0wsS0FBSztBQUFBLE1BQ0wsS0FBSztBQUFBLE1BQ0wsY0FBYztBQUFBLE1BQ2QsQ0FBQyxPQUFPLFdBQVcsR0FBRztBQUFBLFFBQ3BCLE9BQU87QUFBQSxRQUNQLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EsQ0FBQ0EsTUFBSyxRQUFRLE1BQU0sR0FBRztBQUFBLFFBQ3JCLFlBQVk7QUFBQSxNQUNkO0FBQUEsSUFDRixDQUFDO0FBRUQsV0FBTyxXQUFXLGNBQWMsU0FBVSxHQUFHLFFBQVEsVUFBVTtBQUM3RCxVQUFJLE9BQU8sS0FBSyxLQUFLLENBQUMsTUFBTSxVQUFVO0FBQ3BDLGNBQU0sV0FBVyxRQUFRLElBQUksR0FBRyxPQUFPLFFBQVE7QUFJL0MsWUFBSSxDQUFDQSxNQUFLLE1BQU0sUUFBUSxDQUFDLEtBQUssYUFBYSxRQUFRLFVBQVUsU0FBUztBQUNwRSxjQUFJO0FBQ0YsbUJBQU8sZUFBZSxDQUFDLEVBQUU7QUFBQSxVQUMzQixRQUFRO0FBQUEsVUFFUjtBQUFBLFFBQ0Y7QUFFQSxZQUFJLE9BQU8sYUFBYSxZQUFZO0FBQ2xDLGlCQUFPLE9BQU8sV0FBVyxnQ0FBZ0MsRUFBRSxHQUFHLFFBQVEsVUFBVSxTQUFTLEtBQUssQ0FBQyxDQUFDO0FBQUEsUUFDbEc7QUFFQSxlQUFPLE9BQU8sV0FBVyxnQ0FBZ0MsRUFBRSxHQUFHLFFBQVEsUUFBUTtBQUFBLE1BQ2hGO0FBRUEsWUFBTSxPQUFPLE9BQU8saUJBQWlCO0FBQUEsUUFDbkMsUUFBUTtBQUFBLFFBQ1IsVUFBVTtBQUFBLFFBQ1YsT0FBTyxDQUFDLGtDQUFrQyxnQ0FBZ0M7QUFBQSxNQUM1RSxDQUFDO0FBQUEsSUFDSDtBQUVBLElBQUFGLFFBQU8sVUFBVTtBQUFBLE1BQ2Y7QUFBQTtBQUFBLE1BRUE7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxJQUNGO0FBQUE7QUFBQTs7O0FDOXFCQTtBQUFBLGtEQUFBRyxVQUFBQyxTQUFBO0FBQUE7QUFFQSxRQUFNLEVBQUUsU0FBUyxhQUFhLE1BQU0saUJBQWlCLGlCQUFpQixlQUFlLElBQUk7QUFDekYsUUFBTSxFQUFFLGFBQWEsV0FBVyxXQUFXLHlCQUF5QixnQkFBZ0IsYUFBYSxJQUFJO0FBQ3JHLFFBQU1DLFFBQU87QUFDYixRQUFNLFdBQVcsUUFBUSxXQUFXO0FBQ3BDLFFBQU0sRUFBRSxvQkFBb0IsSUFBSUE7QUFDaEMsUUFBTTtBQUFBLE1BQ0o7QUFBQSxNQUNBO0FBQUEsTUFDQSxXQUFBQztBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBLDJCQUEyQjtBQUFBLElBQzdCLElBQUk7QUFDSixRQUFNO0FBQUEsTUFDSjtBQUFBLE1BQ0E7QUFBQSxJQUNGLElBQUk7QUFDSixRQUFNLEVBQUUsUUFBUSxTQUFTLElBQUk7QUFDN0IsUUFBTSxFQUFFLE9BQU8sSUFBSTtBQUNuQixRQUFNLEVBQUUsVUFBQUMsVUFBUyxJQUFJO0FBQ3JCLFFBQU0sRUFBRSxjQUFjLElBQUk7QUFDMUIsUUFBTSxFQUFFLFdBQVcsSUFBSTtBQUN2QixRQUFNLFNBQVMsUUFBUSxhQUFhO0FBQ3BDLFFBQU0sRUFBRSxNQUFNLElBQUksUUFBUSxXQUFXO0FBRXJDLFFBQU1DLGVBQWMsSUFBSSxZQUFZLE9BQU87QUFHM0MsUUFBTUMsWUFBTixNQUFNLFVBQVM7QUFBQTtBQUFBLE1BRWIsT0FBTyxRQUFTO0FBSWQsY0FBTSxpQkFBaUIsa0JBQWtCLGlCQUFpQixHQUFHLFdBQVc7QUFFeEUsZUFBTztBQUFBLE1BQ1Q7QUFBQTtBQUFBLE1BR0EsT0FBTyxLQUFNQyxPQUFNLE9BQU8sQ0FBQyxHQUFHO0FBQzVCLGVBQU8sb0JBQW9CLFdBQVcsR0FBRyxlQUFlO0FBRXhELFlBQUksU0FBUyxNQUFNO0FBQ2pCLGlCQUFPLE9BQU8sV0FBVyxhQUFhLElBQUk7QUFBQSxRQUM1QztBQUdBLGNBQU0sUUFBUUYsYUFBWTtBQUFBLFVBQ3hCLHFDQUFxQ0UsS0FBSTtBQUFBLFFBQzNDO0FBR0EsY0FBTSxPQUFPLFlBQVksS0FBSztBQUk5QixjQUFNLGlCQUFpQixrQkFBa0IsYUFBYSxDQUFDLENBQUMsR0FBRyxVQUFVO0FBR3JFLDJCQUFtQixnQkFBZ0IsTUFBTSxFQUFFLE1BQU0sS0FBSyxDQUFDLEdBQUcsTUFBTSxtQkFBbUIsQ0FBQztBQUdwRixlQUFPO0FBQUEsTUFDVDtBQUFBO0FBQUEsTUFHQSxPQUFPLFNBQVVDLE1BQUssU0FBUyxLQUFLO0FBQ2xDLGVBQU8sb0JBQW9CLFdBQVcsR0FBRyxtQkFBbUI7QUFFNUQsUUFBQUEsT0FBTSxPQUFPLFdBQVcsVUFBVUEsSUFBRztBQUNyQyxpQkFBUyxPQUFPLFdBQVcsZ0JBQWdCLEVBQUUsTUFBTTtBQU1uRCxZQUFJO0FBQ0osWUFBSTtBQUNGLHNCQUFZLElBQUksSUFBSUEsTUFBSyxjQUFjLGVBQWUsT0FBTztBQUFBLFFBQy9ELFNBQVNDLE1BQUs7QUFDWixnQkFBTSxJQUFJLFVBQVUsNEJBQTRCRCxJQUFHLElBQUksRUFBRSxPQUFPQyxLQUFJLENBQUM7QUFBQSxRQUN2RTtBQUdBLFlBQUksQ0FBQyxrQkFBa0IsSUFBSSxNQUFNLEdBQUc7QUFDbEMsZ0JBQU0sSUFBSSxXQUFXLHVCQUF1QixNQUFNLEVBQUU7QUFBQSxRQUN0RDtBQUlBLGNBQU0saUJBQWlCLGtCQUFrQixhQUFhLENBQUMsQ0FBQyxHQUFHLFdBQVc7QUFHdEUsdUJBQWUsTUFBTSxFQUFFLFNBQVM7QUFHaEMsY0FBTSxRQUFRLGlCQUFpQixjQUFjLFNBQVMsQ0FBQztBQUd2RCx1QkFBZSxNQUFNLEVBQUUsWUFBWSxPQUFPLFlBQVksT0FBTyxJQUFJO0FBR2pFLGVBQU87QUFBQSxNQUNUO0FBQUE7QUFBQSxNQUdBLFlBQWEsT0FBTyxNQUFNLE9BQU8sQ0FBQyxHQUFHO0FBQ25DLGVBQU8sS0FBSyxrQkFBa0IsSUFBSTtBQUNsQyxZQUFJLFNBQVMsWUFBWTtBQUN2QjtBQUFBLFFBQ0Y7QUFFQSxZQUFJLFNBQVMsTUFBTTtBQUNqQixpQkFBTyxPQUFPLFdBQVcsU0FBUyxJQUFJO0FBQUEsUUFDeEM7QUFFQSxlQUFPLE9BQU8sV0FBVyxhQUFhLElBQUk7QUFHMUMsYUFBSyxNQUFNLElBQUksYUFBYSxDQUFDLENBQUM7QUFLOUIsYUFBSyxRQUFRLElBQUksSUFBSSxRQUFRLFVBQVU7QUFDdkMsd0JBQWdCLEtBQUssUUFBUSxHQUFHLFVBQVU7QUFDMUMsdUJBQWUsS0FBSyxRQUFRLEdBQUcsS0FBSyxNQUFNLEVBQUUsV0FBVztBQUd2RCxZQUFJLGVBQWU7QUFHbkIsWUFBSSxRQUFRLE1BQU07QUFDaEIsZ0JBQU0sQ0FBQyxlQUFlLElBQUksSUFBSSxZQUFZLElBQUk7QUFDOUMseUJBQWUsRUFBRSxNQUFNLGVBQWUsS0FBSztBQUFBLFFBQzdDO0FBR0EsMkJBQW1CLE1BQU0sTUFBTSxZQUFZO0FBQUEsTUFDN0M7QUFBQTtBQUFBLE1BR0EsSUFBSSxPQUFRO0FBQ1YsZUFBTyxXQUFXLE1BQU0sU0FBUTtBQUdoQyxlQUFPLEtBQUssTUFBTSxFQUFFO0FBQUEsTUFDdEI7QUFBQTtBQUFBLE1BR0EsSUFBSSxNQUFPO0FBQ1QsZUFBTyxXQUFXLE1BQU0sU0FBUTtBQUVoQyxjQUFNLFVBQVUsS0FBSyxNQUFNLEVBQUU7QUFLN0IsY0FBTUQsT0FBTSxRQUFRLFFBQVEsU0FBUyxDQUFDLEtBQUs7QUFFM0MsWUFBSUEsU0FBUSxNQUFNO0FBQ2hCLGlCQUFPO0FBQUEsUUFDVDtBQUVBLGVBQU8sY0FBY0EsTUFBSyxJQUFJO0FBQUEsTUFDaEM7QUFBQTtBQUFBLE1BR0EsSUFBSSxhQUFjO0FBQ2hCLGVBQU8sV0FBVyxNQUFNLFNBQVE7QUFJaEMsZUFBTyxLQUFLLE1BQU0sRUFBRSxRQUFRLFNBQVM7QUFBQSxNQUN2QztBQUFBO0FBQUEsTUFHQSxJQUFJLFNBQVU7QUFDWixlQUFPLFdBQVcsTUFBTSxTQUFRO0FBR2hDLGVBQU8sS0FBSyxNQUFNLEVBQUU7QUFBQSxNQUN0QjtBQUFBO0FBQUEsTUFHQSxJQUFJLEtBQU07QUFDUixlQUFPLFdBQVcsTUFBTSxTQUFRO0FBSWhDLGVBQU8sS0FBSyxNQUFNLEVBQUUsVUFBVSxPQUFPLEtBQUssTUFBTSxFQUFFLFVBQVU7QUFBQSxNQUM5RDtBQUFBO0FBQUEsTUFHQSxJQUFJLGFBQWM7QUFDaEIsZUFBTyxXQUFXLE1BQU0sU0FBUTtBQUloQyxlQUFPLEtBQUssTUFBTSxFQUFFO0FBQUEsTUFDdEI7QUFBQTtBQUFBLE1BR0EsSUFBSSxVQUFXO0FBQ2IsZUFBTyxXQUFXLE1BQU0sU0FBUTtBQUdoQyxlQUFPLEtBQUssUUFBUTtBQUFBLE1BQ3RCO0FBQUEsTUFFQSxJQUFJLE9BQVE7QUFDVixlQUFPLFdBQVcsTUFBTSxTQUFRO0FBRWhDLGVBQU8sS0FBSyxNQUFNLEVBQUUsT0FBTyxLQUFLLE1BQU0sRUFBRSxLQUFLLFNBQVM7QUFBQSxNQUN4RDtBQUFBLE1BRUEsSUFBSSxXQUFZO0FBQ2QsZUFBTyxXQUFXLE1BQU0sU0FBUTtBQUVoQyxlQUFPLENBQUMsQ0FBQyxLQUFLLE1BQU0sRUFBRSxRQUFRTixNQUFLLFlBQVksS0FBSyxNQUFNLEVBQUUsS0FBSyxNQUFNO0FBQUEsTUFDekU7QUFBQTtBQUFBLE1BR0EsUUFBUztBQUNQLGVBQU8sV0FBVyxNQUFNLFNBQVE7QUFHaEMsWUFBSSxhQUFhLElBQUksR0FBRztBQUN0QixnQkFBTSxPQUFPLE9BQU8sVUFBVTtBQUFBLFlBQzVCLFFBQVE7QUFBQSxZQUNSLFNBQVM7QUFBQSxVQUNYLENBQUM7QUFBQSxRQUNIO0FBR0EsY0FBTSxpQkFBaUIsY0FBYyxLQUFLLE1BQU0sQ0FBQztBQUlqRCxlQUFPLGtCQUFrQixnQkFBZ0IsZ0JBQWdCLEtBQUssUUFBUSxDQUFDLENBQUM7QUFBQSxNQUMxRTtBQUFBLE1BRUEsQ0FBQyxTQUFTLFFBQVEsTUFBTSxFQUFHLE9BQU8sU0FBUztBQUN6QyxZQUFJLFFBQVEsVUFBVSxNQUFNO0FBQzFCLGtCQUFRLFFBQVE7QUFBQSxRQUNsQjtBQUVBLGdCQUFRLFdBQVc7QUFFbkIsY0FBTSxhQUFhO0FBQUEsVUFDakIsUUFBUSxLQUFLO0FBQUEsVUFDYixZQUFZLEtBQUs7QUFBQSxVQUNqQixTQUFTLEtBQUs7QUFBQSxVQUNkLE1BQU0sS0FBSztBQUFBLFVBQ1gsVUFBVSxLQUFLO0FBQUEsVUFDZixJQUFJLEtBQUs7QUFBQSxVQUNULFlBQVksS0FBSztBQUFBLFVBQ2pCLE1BQU0sS0FBSztBQUFBLFVBQ1gsS0FBSyxLQUFLO0FBQUEsUUFDWjtBQUVBLGVBQU8sWUFBWSxTQUFTLGtCQUFrQixTQUFTLFVBQVUsQ0FBQztBQUFBLE1BQ3BFO0FBQUEsSUFDRjtBQUVBLGNBQVVJLFNBQVE7QUFFbEIsV0FBTyxpQkFBaUJBLFVBQVMsV0FBVztBQUFBLE1BQzFDLE1BQU07QUFBQSxNQUNOLEtBQUs7QUFBQSxNQUNMLFFBQVE7QUFBQSxNQUNSLElBQUk7QUFBQSxNQUNKLFlBQVk7QUFBQSxNQUNaLFlBQVk7QUFBQSxNQUNaLFNBQVM7QUFBQSxNQUNULE9BQU87QUFBQSxNQUNQLE1BQU07QUFBQSxNQUNOLFVBQVU7QUFBQSxNQUNWLENBQUMsT0FBTyxXQUFXLEdBQUc7QUFBQSxRQUNwQixPQUFPO0FBQUEsUUFDUCxjQUFjO0FBQUEsTUFDaEI7QUFBQSxJQUNGLENBQUM7QUFFRCxXQUFPLGlCQUFpQkEsV0FBVTtBQUFBLE1BQ2hDLE1BQU07QUFBQSxNQUNOLFVBQVU7QUFBQSxNQUNWLE9BQU87QUFBQSxJQUNULENBQUM7QUFHRCxhQUFTLGNBQWUsVUFBVTtBQU1oQyxVQUFJLFNBQVMsa0JBQWtCO0FBQzdCLGVBQU87QUFBQSxVQUNMLGNBQWMsU0FBUyxnQkFBZ0I7QUFBQSxVQUN2QyxTQUFTO0FBQUEsUUFDWDtBQUFBLE1BQ0Y7QUFHQSxZQUFNLGNBQWMsYUFBYSxFQUFFLEdBQUcsVUFBVSxNQUFNLEtBQUssQ0FBQztBQUk1RCxVQUFJLFNBQVMsUUFBUSxNQUFNO0FBQ3pCLG9CQUFZLE9BQU8sVUFBVSxhQUFhLFNBQVMsSUFBSTtBQUFBLE1BQ3pEO0FBR0EsYUFBTztBQUFBLElBQ1Q7QUFFQSxhQUFTLGFBQWMsTUFBTTtBQUMzQixhQUFPO0FBQUEsUUFDTCxTQUFTO0FBQUEsUUFDVCxnQkFBZ0I7QUFBQSxRQUNoQixtQkFBbUI7QUFBQSxRQUNuQiw0QkFBNEI7QUFBQSxRQUM1QixNQUFNO0FBQUEsUUFDTixRQUFRO0FBQUEsUUFDUixZQUFZO0FBQUEsUUFDWixZQUFZO0FBQUEsUUFDWixZQUFZO0FBQUEsUUFDWixHQUFHO0FBQUEsUUFDSCxhQUFhLE1BQU0sY0FDZixJQUFJLFlBQVksTUFBTSxXQUFXLElBQ2pDLElBQUksWUFBWTtBQUFBLFFBQ3BCLFNBQVMsTUFBTSxVQUFVLENBQUMsR0FBRyxLQUFLLE9BQU8sSUFBSSxDQUFDO0FBQUEsTUFDaEQ7QUFBQSxJQUNGO0FBRUEsYUFBUyxpQkFBa0IsUUFBUTtBQUNqQyxZQUFNLFVBQVUsWUFBWSxNQUFNO0FBQ2xDLGFBQU8sYUFBYTtBQUFBLFFBQ2xCLE1BQU07QUFBQSxRQUNOLFFBQVE7QUFBQSxRQUNSLE9BQU8sVUFDSCxTQUNBLElBQUksTUFBTSxTQUFTLE9BQU8sTUFBTSxJQUFJLE1BQU07QUFBQSxRQUM5QyxTQUFTLFVBQVUsT0FBTyxTQUFTO0FBQUEsTUFDckMsQ0FBQztBQUFBLElBQ0g7QUFHQSxhQUFTLGVBQWdCLFVBQVU7QUFDakM7QUFBQTtBQUFBLFFBRUUsU0FBUyxTQUFTO0FBQUEsUUFFbEIsU0FBUyxXQUFXO0FBQUE7QUFBQSxJQUV4QjtBQUVBLGFBQVMscUJBQXNCLFVBQVUsT0FBTztBQUM5QyxjQUFRO0FBQUEsUUFDTixrQkFBa0I7QUFBQSxRQUNsQixHQUFHO0FBQUEsTUFDTDtBQUVBLGFBQU8sSUFBSSxNQUFNLFVBQVU7QUFBQSxRQUN6QixJQUFLLFFBQVEsR0FBRztBQUNkLGlCQUFPLEtBQUssUUFBUSxNQUFNLENBQUMsSUFBSSxPQUFPLENBQUM7QUFBQSxRQUN6QztBQUFBLFFBQ0EsSUFBSyxRQUFRLEdBQUcsT0FBTztBQUNyQixpQkFBTyxFQUFFLEtBQUssTUFBTTtBQUNwQixpQkFBTyxDQUFDLElBQUk7QUFDWixpQkFBTztBQUFBLFFBQ1Q7QUFBQSxNQUNGLENBQUM7QUFBQSxJQUNIO0FBR0EsYUFBUyxlQUFnQixVQUFVLE1BQU07QUFHdkMsVUFBSSxTQUFTLFNBQVM7QUFNcEIsZUFBTyxxQkFBcUIsVUFBVTtBQUFBLFVBQ3BDLE1BQU07QUFBQSxVQUNOLGFBQWEsU0FBUztBQUFBLFFBQ3hCLENBQUM7QUFBQSxNQUNILFdBQVcsU0FBUyxRQUFRO0FBTzFCLGVBQU8scUJBQXFCLFVBQVU7QUFBQSxVQUNwQyxNQUFNO0FBQUEsVUFDTixhQUFhLFNBQVM7QUFBQSxRQUN4QixDQUFDO0FBQUEsTUFDSCxXQUFXLFNBQVMsVUFBVTtBQUs1QixlQUFPLHFCQUFxQixVQUFVO0FBQUEsVUFDcEMsTUFBTTtBQUFBLFVBQ04sU0FBUyxPQUFPLE9BQU8sQ0FBQyxDQUFDO0FBQUEsVUFDekIsUUFBUTtBQUFBLFVBQ1IsWUFBWTtBQUFBLFVBQ1osTUFBTTtBQUFBLFFBQ1IsQ0FBQztBQUFBLE1BQ0gsV0FBVyxTQUFTLGtCQUFrQjtBQUtwQyxlQUFPLHFCQUFxQixVQUFVO0FBQUEsVUFDcEMsTUFBTTtBQUFBLFVBQ04sUUFBUTtBQUFBLFVBQ1IsWUFBWTtBQUFBLFVBQ1osYUFBYSxDQUFDO0FBQUEsVUFDZCxNQUFNO0FBQUEsUUFDUixDQUFDO0FBQUEsTUFDSCxPQUFPO0FBQ0wsZUFBTyxLQUFLO0FBQUEsTUFDZDtBQUFBLElBQ0Y7QUFHQSxhQUFTLDRCQUE2QixhQUFhRyxPQUFNLE1BQU07QUFFN0QsYUFBTyxZQUFZLFdBQVcsQ0FBQztBQUkvQixhQUFPTixXQUFVLFdBQVcsSUFDeEIsaUJBQWlCLE9BQU8sT0FBTyxJQUFJLGFBQWEsOEJBQThCLFlBQVksR0FBRyxFQUFFLE9BQU9NLEtBQUksQ0FBQyxDQUFDLElBQzVHLGlCQUFpQixPQUFPLE9BQU8sSUFBSSxhQUFhLHdCQUF3QixHQUFHLEVBQUUsT0FBT0EsS0FBSSxDQUFDLENBQUM7QUFBQSxJQUNoRztBQUdBLGFBQVMsbUJBQW9CLFVBQVUsTUFBTSxNQUFNO0FBR2pELFVBQUksS0FBSyxXQUFXLFNBQVMsS0FBSyxTQUFTLE9BQU8sS0FBSyxTQUFTLE1BQU07QUFDcEUsY0FBTSxJQUFJLFdBQVcsK0RBQStEO0FBQUEsTUFDdEY7QUFJQSxVQUFJLGdCQUFnQixRQUFRLEtBQUssY0FBYyxNQUFNO0FBR25ELFlBQUksQ0FBQyxvQkFBb0IsT0FBTyxLQUFLLFVBQVUsQ0FBQyxHQUFHO0FBQ2pELGdCQUFNLElBQUksVUFBVSxvQkFBb0I7QUFBQSxRQUMxQztBQUFBLE1BQ0Y7QUFHQSxVQUFJLFlBQVksUUFBUSxLQUFLLFVBQVUsTUFBTTtBQUMzQyxpQkFBUyxNQUFNLEVBQUUsU0FBUyxLQUFLO0FBQUEsTUFDakM7QUFHQSxVQUFJLGdCQUFnQixRQUFRLEtBQUssY0FBYyxNQUFNO0FBQ25ELGlCQUFTLE1BQU0sRUFBRSxhQUFhLEtBQUs7QUFBQSxNQUNyQztBQUdBLFVBQUksYUFBYSxRQUFRLEtBQUssV0FBVyxNQUFNO0FBQzdDLGFBQUssU0FBUyxRQUFRLEdBQUcsS0FBSyxPQUFPO0FBQUEsTUFDdkM7QUFHQSxVQUFJLE1BQU07QUFFUixZQUFJLGVBQWUsU0FBUyxTQUFTLE1BQU0sR0FBRztBQUM1QyxnQkFBTSxPQUFPLE9BQU8sVUFBVTtBQUFBLFlBQzVCLFFBQVE7QUFBQSxZQUNSLFNBQVMsZ0NBQWdDLFNBQVMsTUFBTTtBQUFBLFVBQzFELENBQUM7QUFBQSxRQUNIO0FBR0EsaUJBQVMsTUFBTSxFQUFFLE9BQU8sS0FBSztBQUk3QixZQUFJLEtBQUssUUFBUSxRQUFRLENBQUMsU0FBUyxNQUFNLEVBQUUsWUFBWSxTQUFTLGdCQUFnQixJQUFJLEdBQUc7QUFDckYsbUJBQVMsTUFBTSxFQUFFLFlBQVksT0FBTyxnQkFBZ0IsS0FBSyxNQUFNLElBQUk7QUFBQSxRQUNyRTtBQUFBLE1BQ0Y7QUFBQSxJQUNGO0FBUUEsYUFBUyxrQkFBbUIsZUFBZSxPQUFPO0FBQ2hELFlBQU0sV0FBVyxJQUFJSCxVQUFTLFVBQVU7QUFDeEMsZUFBUyxNQUFNLElBQUk7QUFDbkIsZUFBUyxRQUFRLElBQUksSUFBSSxRQUFRLFVBQVU7QUFDM0MscUJBQWUsU0FBUyxRQUFRLEdBQUcsY0FBYyxXQUFXO0FBQzVELHNCQUFnQixTQUFTLFFBQVEsR0FBRyxLQUFLO0FBRXpDLFVBQUksMkJBQTJCLGNBQWMsTUFBTSxRQUFRO0FBTXpELHVCQUFlLFNBQVMsVUFBVSxJQUFJLFFBQVEsY0FBYyxLQUFLLE1BQU0sQ0FBQztBQUFBLE1BQzFFO0FBRUEsYUFBTztBQUFBLElBQ1Q7QUFFQSxXQUFPLFdBQVcsaUJBQWlCLE9BQU87QUFBQSxNQUN4QztBQUFBLElBQ0Y7QUFFQSxXQUFPLFdBQVcsV0FBVyxPQUFPO0FBQUEsTUFDbENGO0FBQUEsSUFDRjtBQUVBLFdBQU8sV0FBVyxrQkFBa0IsT0FBTztBQUFBLE1BQ3pDO0FBQUEsSUFDRjtBQUdBLFdBQU8sV0FBVyx5QkFBeUIsU0FBVSxHQUFHLFFBQVEsTUFBTTtBQUNwRSxVQUFJLE9BQU8sTUFBTSxVQUFVO0FBQ3pCLGVBQU8sT0FBTyxXQUFXLFVBQVUsR0FBRyxRQUFRLElBQUk7QUFBQSxNQUNwRDtBQUVBLFVBQUksV0FBVyxDQUFDLEdBQUc7QUFDakIsZUFBTyxPQUFPLFdBQVcsS0FBSyxHQUFHLFFBQVEsTUFBTSxFQUFFLFFBQVEsTUFBTSxDQUFDO0FBQUEsTUFDbEU7QUFFQSxVQUFJLFlBQVksT0FBTyxDQUFDLEtBQUssTUFBTSxjQUFjLENBQUMsR0FBRztBQUNuRCxlQUFPLE9BQU8sV0FBVyxhQUFhLEdBQUcsUUFBUSxJQUFJO0FBQUEsTUFDdkQ7QUFFQSxVQUFJRixNQUFLLGVBQWUsQ0FBQyxHQUFHO0FBQzFCLGVBQU8sT0FBTyxXQUFXLFNBQVMsR0FBRyxRQUFRLE1BQU0sRUFBRSxRQUFRLE1BQU0sQ0FBQztBQUFBLE1BQ3RFO0FBRUEsVUFBSSxhQUFhLGlCQUFpQjtBQUNoQyxlQUFPLE9BQU8sV0FBVyxnQkFBZ0IsR0FBRyxRQUFRLElBQUk7QUFBQSxNQUMxRDtBQUVBLGFBQU8sT0FBTyxXQUFXLFVBQVUsR0FBRyxRQUFRLElBQUk7QUFBQSxJQUNwRDtBQUdBLFdBQU8sV0FBVyxXQUFXLFNBQVUsR0FBRyxRQUFRLFVBQVU7QUFDMUQsVUFBSSxhQUFhLGdCQUFnQjtBQUMvQixlQUFPLE9BQU8sV0FBVyxlQUFlLEdBQUcsUUFBUSxRQUFRO0FBQUEsTUFDN0Q7QUFJQSxVQUFJLElBQUksT0FBTyxhQUFhLEdBQUc7QUFDN0IsZUFBTztBQUFBLE1BQ1Q7QUFFQSxhQUFPLE9BQU8sV0FBVyx1QkFBdUIsR0FBRyxRQUFRLFFBQVE7QUFBQSxJQUNyRTtBQUVBLFdBQU8sV0FBVyxlQUFlLE9BQU8sb0JBQW9CO0FBQUEsTUFDMUQ7QUFBQSxRQUNFLEtBQUs7QUFBQSxRQUNMLFdBQVcsT0FBTyxXQUFXLGdCQUFnQjtBQUFBLFFBQzdDLGNBQWMsTUFBTTtBQUFBLE1BQ3RCO0FBQUEsTUFDQTtBQUFBLFFBQ0UsS0FBSztBQUFBLFFBQ0wsV0FBVyxPQUFPLFdBQVc7QUFBQSxRQUM3QixjQUFjLE1BQU07QUFBQSxNQUN0QjtBQUFBLE1BQ0E7QUFBQSxRQUNFLEtBQUs7QUFBQSxRQUNMLFdBQVcsT0FBTyxXQUFXO0FBQUEsTUFDL0I7QUFBQSxJQUNGLENBQUM7QUFFRCxJQUFBRCxRQUFPLFVBQVU7QUFBQSxNQUNmO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0EsVUFBQUs7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLElBQ0Y7QUFBQTtBQUFBOzs7QUM1bEJBO0FBQUEsNERBQUFJLFVBQUFDLFNBQUE7QUFBQTtBQUVBLFFBQU0sRUFBRSxZQUFZLE1BQU0sSUFBSTtBQUU5QixRQUFNLGdCQUFOLE1BQW9CO0FBQUEsTUFDbEIsWUFBYSxPQUFPO0FBQ2xCLGFBQUssUUFBUTtBQUFBLE1BQ2Y7QUFBQSxNQUVBLFFBQVM7QUFDUCxlQUFPLEtBQUssTUFBTSxVQUFVLE1BQU0sS0FBSyxLQUFLLE1BQU0sS0FBSyxNQUFNLElBQ3pELFNBQ0EsS0FBSztBQUFBLE1BQ1g7QUFBQSxJQUNGO0FBRUEsUUFBTSxrQkFBTixNQUFzQjtBQUFBLE1BQ3BCLFlBQWEsV0FBVztBQUN0QixhQUFLLFlBQVk7QUFBQSxNQUNuQjtBQUFBLE1BRUEsU0FBVSxZQUFZLEtBQUs7QUFDekIsWUFBSSxXQUFXLElBQUk7QUFDakIscUJBQVcsR0FBRyxjQUFjLE1BQU07QUFDaEMsZ0JBQUksV0FBVyxVQUFVLE1BQU0sS0FBSyxXQUFXLEtBQUssTUFBTSxHQUFHO0FBQzNELG1CQUFLLFVBQVUsR0FBRztBQUFBLFlBQ3BCO0FBQUEsVUFDRixDQUFDO0FBQUEsUUFDSDtBQUFBLE1BQ0Y7QUFBQSxNQUVBLFdBQVksS0FBSztBQUFBLE1BQUM7QUFBQSxJQUNwQjtBQUVBLElBQUFBLFFBQU8sVUFBVSxXQUFZO0FBRzNCLFVBQUksUUFBUSxJQUFJLG9CQUFvQixRQUFRLFFBQVEsV0FBVyxLQUFLLEdBQUc7QUFDckUsZ0JBQVEsVUFBVSxzREFBc0Q7QUFDeEUsZUFBTztBQUFBLFVBQ0wsU0FBUztBQUFBLFVBQ1Qsc0JBQXNCO0FBQUEsUUFDeEI7QUFBQSxNQUNGO0FBQ0EsYUFBTyxFQUFFLFNBQVMscUJBQXFCO0FBQUEsSUFDekM7QUFBQTtBQUFBOzs7QUM3Q0EsSUFBQUMsbUJBQUE7QUFBQSxpREFBQUMsVUFBQUMsU0FBQTtBQUFBO0FBSUEsUUFBTSxFQUFFLGFBQWEsV0FBVyxXQUFXLGFBQWEsSUFBSTtBQUM1RCxRQUFNLEVBQUUsU0FBUyxNQUFNLGFBQWEsYUFBYSxpQkFBaUIsaUJBQWlCLGdCQUFnQixlQUFlLElBQUk7QUFDdEgsUUFBTSxFQUFFLHNCQUFBQyxzQkFBcUIsSUFBSSw2QkFBZ0M7QUFDakUsUUFBTUMsUUFBTztBQUNiLFFBQU0sV0FBVyxRQUFRLFdBQVc7QUFDcEMsUUFBTTtBQUFBLE1BQ0o7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLElBQ0YsSUFBSTtBQUNKLFFBQU07QUFBQSxNQUNKO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLElBQ0YsSUFBSTtBQUNKLFFBQU0sRUFBRSxxQkFBcUIsNkJBQTZCLHdCQUF3QixJQUFJQTtBQUN0RixRQUFNLEVBQUUsVUFBVSxTQUFTLFFBQVEsWUFBWSxJQUFJO0FBQ25ELFFBQU0sRUFBRSxPQUFPLElBQUk7QUFDbkIsUUFBTSxFQUFFLGNBQWMsSUFBSTtBQUMxQixRQUFNLEVBQUUsV0FBVyxJQUFJO0FBQ3ZCLFFBQU0sU0FBUyxRQUFRLGFBQWE7QUFDcEMsUUFBTSxFQUFFLGlCQUFpQixpQkFBaUIsbUJBQW1CLG9CQUFvQixJQUFJLFFBQVEsYUFBYTtBQUUxRyxRQUFNLG1CQUFtQixPQUFPLGlCQUFpQjtBQUVqRCxRQUFNLG1CQUFtQixJQUFJRCxzQkFBcUIsQ0FBQyxFQUFFLFFBQVEsTUFBTSxNQUFNO0FBQ3ZFLGFBQU8sb0JBQW9CLFNBQVMsS0FBSztBQUFBLElBQzNDLENBQUM7QUFFRCxRQUFNLHlCQUF5QixvQkFBSSxRQUFRO0FBRTNDLGFBQVMsV0FBWSxPQUFPO0FBQzFCLGFBQU87QUFFUCxlQUFTLFFBQVM7QUFDaEIsY0FBTSxLQUFLLE1BQU0sTUFBTTtBQUN2QixZQUFJLE9BQU8sUUFBVztBQU9wQiwyQkFBaUIsV0FBVyxLQUFLO0FBSWpDLGVBQUssb0JBQW9CLFNBQVMsS0FBSztBQUV2QyxhQUFHLE1BQU0sS0FBSyxNQUFNO0FBRXBCLGdCQUFNLGlCQUFpQix1QkFBdUIsSUFBSSxHQUFHLE1BQU07QUFFM0QsY0FBSSxtQkFBbUIsUUFBVztBQUNoQyxnQkFBSSxlQUFlLFNBQVMsR0FBRztBQUM3Qix5QkFBVyxPQUFPLGdCQUFnQjtBQUNoQyxzQkFBTSxPQUFPLElBQUksTUFBTTtBQUN2QixvQkFBSSxTQUFTLFFBQVc7QUFDdEIsdUJBQUssTUFBTSxLQUFLLE1BQU07QUFBQSxnQkFDeEI7QUFBQSxjQUNGO0FBQ0EsNkJBQWUsTUFBTTtBQUFBLFlBQ3ZCO0FBQ0EsbUNBQXVCLE9BQU8sR0FBRyxNQUFNO0FBQUEsVUFDekM7QUFBQSxRQUNGO0FBQUEsTUFDRjtBQUFBLElBQ0Y7QUFFQSxRQUFJLHFCQUFxQjtBQUd6QixRQUFNRSxXQUFOLE1BQU0sU0FBUTtBQUFBO0FBQUEsTUFFWixZQUFhLE9BQU8sT0FBTyxDQUFDLEdBQUc7QUFDN0IsZUFBTyxLQUFLLGtCQUFrQixJQUFJO0FBQ2xDLFlBQUksVUFBVSxZQUFZO0FBQ3hCO0FBQUEsUUFDRjtBQUVBLGNBQU0sU0FBUztBQUNmLGVBQU8sb0JBQW9CLFdBQVcsR0FBRyxNQUFNO0FBRS9DLGdCQUFRLE9BQU8sV0FBVyxZQUFZLE9BQU8sUUFBUSxPQUFPO0FBQzVELGVBQU8sT0FBTyxXQUFXLFlBQVksTUFBTSxRQUFRLE1BQU07QUFHekQsWUFBSSxVQUFVO0FBR2QsWUFBSSxlQUFlO0FBR25CLGNBQU0sVUFBVSwwQkFBMEIsZUFBZTtBQUd6RCxZQUFJLFNBQVM7QUFHYixZQUFJLE9BQU8sVUFBVSxVQUFVO0FBQzdCLGVBQUssV0FBVyxJQUFJLEtBQUs7QUFJekIsY0FBSTtBQUNKLGNBQUk7QUFDRix3QkFBWSxJQUFJLElBQUksT0FBTyxPQUFPO0FBQUEsVUFDcEMsU0FBU0MsTUFBSztBQUNaLGtCQUFNLElBQUksVUFBVSw4QkFBOEIsT0FBTyxFQUFFLE9BQU9BLEtBQUksQ0FBQztBQUFBLFVBQ3pFO0FBR0EsY0FBSSxVQUFVLFlBQVksVUFBVSxVQUFVO0FBQzVDLGtCQUFNLElBQUk7QUFBQSxjQUNSLHlFQUNFO0FBQUEsWUFDSjtBQUFBLFVBQ0Y7QUFHQSxvQkFBVSxZQUFZLEVBQUUsU0FBUyxDQUFDLFNBQVMsRUFBRSxDQUFDO0FBRzlDLHlCQUFlO0FBQUEsUUFDakIsT0FBTztBQUNMLGVBQUssV0FBVyxJQUFJLEtBQUssY0FBYyxNQUFNLFdBQVc7QUFLeEQsaUJBQU8saUJBQWlCLFFBQU87QUFHL0Isb0JBQVUsTUFBTSxNQUFNO0FBR3RCLG1CQUFTLE1BQU0sT0FBTztBQUFBLFFBQ3hCO0FBR0EsY0FBTUMsVUFBUywwQkFBMEIsZUFBZTtBQUd4RCxZQUFJQyxVQUFTO0FBSWIsWUFDRSxRQUFRLFFBQVEsYUFBYSxTQUFTLCtCQUN0QyxXQUFXLFFBQVEsUUFBUUQsT0FBTSxHQUNqQztBQUNBLFVBQUFDLFVBQVMsUUFBUTtBQUFBLFFBQ25CO0FBR0EsWUFBSSxLQUFLLFVBQVUsTUFBTTtBQUN2QixnQkFBTSxJQUFJLFVBQVUsb0JBQW9CQSxPQUFNLGdCQUFnQjtBQUFBLFFBQ2hFO0FBR0EsWUFBSSxZQUFZLE1BQU07QUFDcEIsVUFBQUEsVUFBUztBQUFBLFFBQ1g7QUFHQSxrQkFBVSxZQUFZO0FBQUE7QUFBQTtBQUFBO0FBQUEsVUFJcEIsUUFBUSxRQUFRO0FBQUE7QUFBQTtBQUFBLFVBR2hCLGFBQWEsUUFBUTtBQUFBO0FBQUEsVUFFckIsZUFBZSxRQUFRO0FBQUE7QUFBQSxVQUV2QixRQUFRLDBCQUEwQjtBQUFBO0FBQUEsVUFFbEMsUUFBQUE7QUFBQTtBQUFBLFVBRUEsVUFBVSxRQUFRO0FBQUE7QUFBQTtBQUFBO0FBQUEsVUFJbEIsUUFBUSxRQUFRO0FBQUE7QUFBQSxVQUVoQixVQUFVLFFBQVE7QUFBQTtBQUFBLFVBRWxCLGdCQUFnQixRQUFRO0FBQUE7QUFBQSxVQUV4QixNQUFNLFFBQVE7QUFBQTtBQUFBLFVBRWQsYUFBYSxRQUFRO0FBQUE7QUFBQSxVQUVyQixPQUFPLFFBQVE7QUFBQTtBQUFBLFVBRWYsVUFBVSxRQUFRO0FBQUE7QUFBQSxVQUVsQixXQUFXLFFBQVE7QUFBQTtBQUFBLFVBRW5CLFdBQVcsUUFBUTtBQUFBO0FBQUEsVUFFbkIsa0JBQWtCLFFBQVE7QUFBQTtBQUFBLFVBRTFCLG1CQUFtQixRQUFRO0FBQUE7QUFBQSxVQUUzQixTQUFTLENBQUMsR0FBRyxRQUFRLE9BQU87QUFBQSxRQUM5QixDQUFDO0FBRUQsY0FBTSxhQUFhLE9BQU8sS0FBSyxJQUFJLEVBQUUsV0FBVztBQUdoRCxZQUFJLFlBQVk7QUFFZCxjQUFJLFFBQVEsU0FBUyxZQUFZO0FBQy9CLG9CQUFRLE9BQU87QUFBQSxVQUNqQjtBQUdBLGtCQUFRLG1CQUFtQjtBQUczQixrQkFBUSxvQkFBb0I7QUFHNUIsa0JBQVEsU0FBUztBQUdqQixrQkFBUSxXQUFXO0FBR25CLGtCQUFRLGlCQUFpQjtBQUd6QixrQkFBUSxNQUFNLFFBQVEsUUFBUSxRQUFRLFFBQVEsU0FBUyxDQUFDO0FBR3hELGtCQUFRLFVBQVUsQ0FBQyxRQUFRLEdBQUc7QUFBQSxRQUNoQztBQUdBLFlBQUksS0FBSyxhQUFhLFFBQVc7QUFFL0IsZ0JBQU0sV0FBVyxLQUFLO0FBR3RCLGNBQUksYUFBYSxJQUFJO0FBQ25CLG9CQUFRLFdBQVc7QUFBQSxVQUNyQixPQUFPO0FBSUwsZ0JBQUk7QUFDSixnQkFBSTtBQUNGLCtCQUFpQixJQUFJLElBQUksVUFBVSxPQUFPO0FBQUEsWUFDNUMsU0FBU0YsTUFBSztBQUNaLG9CQUFNLElBQUksVUFBVSxhQUFhLFFBQVEseUJBQXlCLEVBQUUsT0FBT0EsS0FBSSxDQUFDO0FBQUEsWUFDbEY7QUFNQSxnQkFDRyxlQUFlLGFBQWEsWUFBWSxlQUFlLGFBQWEsWUFDcEVDLFdBQVUsQ0FBQyxXQUFXLGdCQUFnQiwwQkFBMEIsZUFBZSxPQUFPLEdBQ3ZGO0FBQ0Esc0JBQVEsV0FBVztBQUFBLFlBQ3JCLE9BQU87QUFFTCxzQkFBUSxXQUFXO0FBQUEsWUFDckI7QUFBQSxVQUNGO0FBQUEsUUFDRjtBQUlBLFlBQUksS0FBSyxtQkFBbUIsUUFBVztBQUNyQyxrQkFBUSxpQkFBaUIsS0FBSztBQUFBLFFBQ2hDO0FBR0EsWUFBSTtBQUNKLFlBQUksS0FBSyxTQUFTLFFBQVc7QUFDM0IsaUJBQU8sS0FBSztBQUFBLFFBQ2QsT0FBTztBQUNMLGlCQUFPO0FBQUEsUUFDVDtBQUdBLFlBQUksU0FBUyxZQUFZO0FBQ3ZCLGdCQUFNLE9BQU8sT0FBTyxVQUFVO0FBQUEsWUFDNUIsUUFBUTtBQUFBLFlBQ1IsU0FBUztBQUFBLFVBQ1gsQ0FBQztBQUFBLFFBQ0g7QUFHQSxZQUFJLFFBQVEsTUFBTTtBQUNoQixrQkFBUSxPQUFPO0FBQUEsUUFDakI7QUFJQSxZQUFJLEtBQUssZ0JBQWdCLFFBQVc7QUFDbEMsa0JBQVEsY0FBYyxLQUFLO0FBQUEsUUFDN0I7QUFHQSxZQUFJLEtBQUssVUFBVSxRQUFXO0FBQzVCLGtCQUFRLFFBQVEsS0FBSztBQUFBLFFBQ3ZCO0FBSUEsWUFBSSxRQUFRLFVBQVUsb0JBQW9CLFFBQVEsU0FBUyxlQUFlO0FBQ3hFLGdCQUFNLElBQUk7QUFBQSxZQUNSO0FBQUEsVUFDRjtBQUFBLFFBQ0Y7QUFHQSxZQUFJLEtBQUssYUFBYSxRQUFXO0FBQy9CLGtCQUFRLFdBQVcsS0FBSztBQUFBLFFBQzFCO0FBR0EsWUFBSSxLQUFLLGFBQWEsTUFBTTtBQUMxQixrQkFBUSxZQUFZLE9BQU8sS0FBSyxTQUFTO0FBQUEsUUFDM0M7QUFHQSxZQUFJLEtBQUssY0FBYyxRQUFXO0FBQ2hDLGtCQUFRLFlBQVksUUFBUSxLQUFLLFNBQVM7QUFBQSxRQUM1QztBQUdBLFlBQUksS0FBSyxXQUFXLFFBQVc7QUFFN0IsY0FBSSxTQUFTLEtBQUs7QUFFbEIsZ0JBQU0sa0JBQWtCLHdCQUF3QixNQUFNO0FBRXRELGNBQUksb0JBQW9CLFFBQVc7QUFFakMsb0JBQVEsU0FBUztBQUFBLFVBQ25CLE9BQU87QUFHTCxnQkFBSSxDQUFDLGlCQUFpQixNQUFNLEdBQUc7QUFDN0Isb0JBQU0sSUFBSSxVQUFVLElBQUksTUFBTSwrQkFBK0I7QUFBQSxZQUMvRDtBQUVBLGtCQUFNLFlBQVksT0FBTyxZQUFZO0FBRXJDLGdCQUFJLG9CQUFvQixJQUFJLFNBQVMsR0FBRztBQUN0QyxvQkFBTSxJQUFJLFVBQVUsSUFBSSxNQUFNLCtCQUErQjtBQUFBLFlBQy9EO0FBS0EscUJBQVMsNEJBQTRCLFNBQVMsS0FBSztBQUduRCxvQkFBUSxTQUFTO0FBQUEsVUFDbkI7QUFFQSxjQUFJLENBQUMsc0JBQXNCLFFBQVEsV0FBVyxTQUFTO0FBQ3JELG9CQUFRLFlBQVksbUhBQW1IO0FBQUEsY0FDckksTUFBTTtBQUFBLFlBQ1IsQ0FBQztBQUVELGlDQUFxQjtBQUFBLFVBQ3ZCO0FBQUEsUUFDRjtBQUdBLFlBQUksS0FBSyxXQUFXLFFBQVc7QUFDN0IsbUJBQVMsS0FBSztBQUFBLFFBQ2hCO0FBR0EsYUFBSyxNQUFNLElBQUk7QUFNZixjQUFNLEtBQUssSUFBSSxnQkFBZ0I7QUFDL0IsYUFBSyxPQUFPLElBQUksR0FBRztBQUduQixZQUFJLFVBQVUsTUFBTTtBQUNsQixjQUNFLENBQUMsVUFDRCxPQUFPLE9BQU8sWUFBWSxhQUMxQixPQUFPLE9BQU8scUJBQXFCLFlBQ25DO0FBQ0Esa0JBQU0sSUFBSTtBQUFBLGNBQ1I7QUFBQSxZQUNGO0FBQUEsVUFDRjtBQUVBLGNBQUksT0FBTyxTQUFTO0FBQ2xCLGVBQUcsTUFBTSxPQUFPLE1BQU07QUFBQSxVQUN4QixPQUFPO0FBS0wsaUJBQUssZ0JBQWdCLElBQUk7QUFFekIsa0JBQU0sUUFBUSxJQUFJLFFBQVEsRUFBRTtBQUM1QixrQkFBTSxRQUFRLFdBQVcsS0FBSztBQUk5QixnQkFBSTtBQUdGLGtCQUFJLE9BQU8sb0JBQW9CLGNBQWMsZ0JBQWdCLE1BQU0sTUFBTSxxQkFBcUI7QUFDNUYsZ0NBQWdCLE1BQU0sTUFBTTtBQUFBLGNBQzlCLFdBQVcsa0JBQWtCLFFBQVEsT0FBTyxFQUFFLFVBQVUscUJBQXFCO0FBQzNFLGdDQUFnQixNQUFNLE1BQU07QUFBQSxjQUM5QjtBQUFBLFlBQ0YsUUFBUTtBQUFBLFlBQUM7QUFFVCxZQUFBSCxNQUFLLGlCQUFpQixRQUFRLEtBQUs7QUFLbkMsNkJBQWlCLFNBQVMsSUFBSSxFQUFFLFFBQVEsTUFBTSxHQUFHLEtBQUs7QUFBQSxVQUN4RDtBQUFBLFFBQ0Y7QUFLQSxhQUFLLFFBQVEsSUFBSSxJQUFJLFFBQVEsVUFBVTtBQUN2Qyx1QkFBZSxLQUFLLFFBQVEsR0FBRyxRQUFRLFdBQVc7QUFDbEQsd0JBQWdCLEtBQUssUUFBUSxHQUFHLFNBQVM7QUFHekMsWUFBSSxTQUFTLFdBQVc7QUFHdEIsY0FBSSxDQUFDLHlCQUF5QixJQUFJLFFBQVEsTUFBTSxHQUFHO0FBQ2pELGtCQUFNLElBQUk7QUFBQSxjQUNSLElBQUksUUFBUSxNQUFNO0FBQUEsWUFDcEI7QUFBQSxVQUNGO0FBR0EsMEJBQWdCLEtBQUssUUFBUSxHQUFHLGlCQUFpQjtBQUFBLFFBQ25EO0FBR0EsWUFBSSxZQUFZO0FBRWQsZ0JBQU0sY0FBYyxlQUFlLEtBQUssUUFBUSxDQUFDO0FBSWpELGdCQUFNLFVBQVUsS0FBSyxZQUFZLFNBQVksS0FBSyxVQUFVLElBQUksWUFBWSxXQUFXO0FBR3ZGLHNCQUFZLE1BQU07QUFJbEIsY0FBSSxtQkFBbUIsYUFBYTtBQUNsQyx1QkFBVyxFQUFFLE1BQU0sTUFBTSxLQUFLLFFBQVEsVUFBVSxHQUFHO0FBQ2pELDBCQUFZLE9BQU8sTUFBTSxPQUFPLEtBQUs7QUFBQSxZQUN2QztBQUVBLHdCQUFZLFVBQVUsUUFBUTtBQUFBLFVBQ2hDLE9BQU87QUFFTCx3QkFBWSxLQUFLLFFBQVEsR0FBRyxPQUFPO0FBQUEsVUFDckM7QUFBQSxRQUNGO0FBSUEsY0FBTSxZQUFZLGlCQUFpQixXQUFVLE1BQU0sTUFBTSxFQUFFLE9BQU87QUFLbEUsYUFDRyxLQUFLLFFBQVEsUUFBUSxhQUFhLFVBQ2xDLFFBQVEsV0FBVyxTQUFTLFFBQVEsV0FBVyxTQUNoRDtBQUNBLGdCQUFNLElBQUksVUFBVSxnREFBZ0Q7QUFBQSxRQUN0RTtBQUdBLFlBQUksV0FBVztBQUdmLFlBQUksS0FBSyxRQUFRLE1BQU07QUFJckIsZ0JBQU0sQ0FBQyxlQUFlLFdBQVcsSUFBSTtBQUFBLFlBQ25DLEtBQUs7QUFBQSxZQUNMLFFBQVE7QUFBQSxVQUNWO0FBQ0EscUJBQVc7QUFLWCxjQUFJLGVBQWUsQ0FBQyxlQUFlLEtBQUssUUFBUSxDQUFDLEVBQUUsU0FBUyxnQkFBZ0IsSUFBSSxHQUFHO0FBQ2pGLGlCQUFLLFFBQVEsRUFBRSxPQUFPLGdCQUFnQixXQUFXO0FBQUEsVUFDbkQ7QUFBQSxRQUNGO0FBSUEsY0FBTSxrQkFBa0IsWUFBWTtBQUlwQyxZQUFJLG1CQUFtQixRQUFRLGdCQUFnQixVQUFVLE1BQU07QUFHN0QsY0FBSSxZQUFZLFFBQVEsS0FBSyxVQUFVLE1BQU07QUFDM0Msa0JBQU0sSUFBSSxVQUFVLDZEQUE2RDtBQUFBLFVBQ25GO0FBSUEsY0FBSSxRQUFRLFNBQVMsaUJBQWlCLFFBQVEsU0FBUyxRQUFRO0FBQzdELGtCQUFNLElBQUk7QUFBQSxjQUNSO0FBQUEsWUFDRjtBQUFBLFVBQ0Y7QUFHQSxrQkFBUSx1QkFBdUI7QUFBQSxRQUNqQztBQUdBLFlBQUksWUFBWTtBQUdoQixZQUFJLFlBQVksUUFBUSxhQUFhLE1BQU07QUFFekMsY0FBSSxhQUFhLEtBQUssR0FBRztBQUN2QixrQkFBTSxJQUFJO0FBQUEsY0FDUjtBQUFBLFlBQ0Y7QUFBQSxVQUNGO0FBSUEsZ0JBQU0sb0JBQW9CLElBQUksZ0JBQWdCO0FBQzlDLG9CQUFVLE9BQU8sWUFBWSxpQkFBaUI7QUFDOUMsc0JBQVk7QUFBQSxZQUNWLFFBQVEsVUFBVTtBQUFBLFlBQ2xCLFFBQVEsVUFBVTtBQUFBLFlBQ2xCLFFBQVEsa0JBQWtCO0FBQUEsVUFDNUI7QUFBQSxRQUNGO0FBR0EsYUFBSyxNQUFNLEVBQUUsT0FBTztBQUFBLE1BQ3RCO0FBQUE7QUFBQSxNQUdBLElBQUksU0FBVTtBQUNaLGVBQU8sV0FBVyxNQUFNLFFBQU87QUFHL0IsZUFBTyxLQUFLLE1BQU0sRUFBRTtBQUFBLE1BQ3RCO0FBQUE7QUFBQSxNQUdBLElBQUksTUFBTztBQUNULGVBQU8sV0FBVyxNQUFNLFFBQU87QUFHL0IsZUFBTyxjQUFjLEtBQUssTUFBTSxFQUFFLEdBQUc7QUFBQSxNQUN2QztBQUFBO0FBQUE7QUFBQTtBQUFBLE1BS0EsSUFBSSxVQUFXO0FBQ2IsZUFBTyxXQUFXLE1BQU0sUUFBTztBQUcvQixlQUFPLEtBQUssUUFBUTtBQUFBLE1BQ3RCO0FBQUE7QUFBQTtBQUFBLE1BSUEsSUFBSSxjQUFlO0FBQ2pCLGVBQU8sV0FBVyxNQUFNLFFBQU87QUFHL0IsZUFBTyxLQUFLLE1BQU0sRUFBRTtBQUFBLE1BQ3RCO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLE1BT0EsSUFBSSxXQUFZO0FBQ2QsZUFBTyxXQUFXLE1BQU0sUUFBTztBQUkvQixZQUFJLEtBQUssTUFBTSxFQUFFLGFBQWEsZUFBZTtBQUMzQyxpQkFBTztBQUFBLFFBQ1Q7QUFJQSxZQUFJLEtBQUssTUFBTSxFQUFFLGFBQWEsVUFBVTtBQUN0QyxpQkFBTztBQUFBLFFBQ1Q7QUFHQSxlQUFPLEtBQUssTUFBTSxFQUFFLFNBQVMsU0FBUztBQUFBLE1BQ3hDO0FBQUE7QUFBQTtBQUFBO0FBQUEsTUFLQSxJQUFJLGlCQUFrQjtBQUNwQixlQUFPLFdBQVcsTUFBTSxRQUFPO0FBRy9CLGVBQU8sS0FBSyxNQUFNLEVBQUU7QUFBQSxNQUN0QjtBQUFBO0FBQUE7QUFBQTtBQUFBLE1BS0EsSUFBSSxPQUFRO0FBQ1YsZUFBTyxXQUFXLE1BQU0sUUFBTztBQUcvQixlQUFPLEtBQUssTUFBTSxFQUFFO0FBQUEsTUFDdEI7QUFBQTtBQUFBO0FBQUE7QUFBQSxNQUtBLElBQUksY0FBZTtBQUVqQixlQUFPLEtBQUssTUFBTSxFQUFFO0FBQUEsTUFDdEI7QUFBQTtBQUFBO0FBQUE7QUFBQSxNQUtBLElBQUksUUFBUztBQUNYLGVBQU8sV0FBVyxNQUFNLFFBQU87QUFHL0IsZUFBTyxLQUFLLE1BQU0sRUFBRTtBQUFBLE1BQ3RCO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxNQU1BLElBQUksV0FBWTtBQUNkLGVBQU8sV0FBVyxNQUFNLFFBQU87QUFHL0IsZUFBTyxLQUFLLE1BQU0sRUFBRTtBQUFBLE1BQ3RCO0FBQUE7QUFBQTtBQUFBO0FBQUEsTUFLQSxJQUFJLFlBQWE7QUFDZixlQUFPLFdBQVcsTUFBTSxRQUFPO0FBSS9CLGVBQU8sS0FBSyxNQUFNLEVBQUU7QUFBQSxNQUN0QjtBQUFBO0FBQUE7QUFBQSxNQUlBLElBQUksWUFBYTtBQUNmLGVBQU8sV0FBVyxNQUFNLFFBQU87QUFHL0IsZUFBTyxLQUFLLE1BQU0sRUFBRTtBQUFBLE1BQ3RCO0FBQUE7QUFBQTtBQUFBLE1BSUEsSUFBSSxxQkFBc0I7QUFDeEIsZUFBTyxXQUFXLE1BQU0sUUFBTztBQUkvQixlQUFPLEtBQUssTUFBTSxFQUFFO0FBQUEsTUFDdEI7QUFBQTtBQUFBO0FBQUEsTUFJQSxJQUFJLHNCQUF1QjtBQUN6QixlQUFPLFdBQVcsTUFBTSxRQUFPO0FBSS9CLGVBQU8sS0FBSyxNQUFNLEVBQUU7QUFBQSxNQUN0QjtBQUFBO0FBQUE7QUFBQTtBQUFBLE1BS0EsSUFBSSxTQUFVO0FBQ1osZUFBTyxXQUFXLE1BQU0sUUFBTztBQUcvQixlQUFPLEtBQUssT0FBTztBQUFBLE1BQ3JCO0FBQUEsTUFFQSxJQUFJLE9BQVE7QUFDVixlQUFPLFdBQVcsTUFBTSxRQUFPO0FBRS9CLGVBQU8sS0FBSyxNQUFNLEVBQUUsT0FBTyxLQUFLLE1BQU0sRUFBRSxLQUFLLFNBQVM7QUFBQSxNQUN4RDtBQUFBLE1BRUEsSUFBSSxXQUFZO0FBQ2QsZUFBTyxXQUFXLE1BQU0sUUFBTztBQUUvQixlQUFPLENBQUMsQ0FBQyxLQUFLLE1BQU0sRUFBRSxRQUFRQSxNQUFLLFlBQVksS0FBSyxNQUFNLEVBQUUsS0FBSyxNQUFNO0FBQUEsTUFDekU7QUFBQSxNQUVBLElBQUksU0FBVTtBQUNaLGVBQU8sV0FBVyxNQUFNLFFBQU87QUFFL0IsZUFBTztBQUFBLE1BQ1Q7QUFBQTtBQUFBLE1BR0EsUUFBUztBQUNQLGVBQU8sV0FBVyxNQUFNLFFBQU87QUFHL0IsWUFBSSxhQUFhLElBQUksR0FBRztBQUN0QixnQkFBTSxJQUFJLFVBQVUsVUFBVTtBQUFBLFFBQ2hDO0FBR0EsY0FBTSxnQkFBZ0IsYUFBYSxLQUFLLE1BQU0sQ0FBQztBQUsvQyxjQUFNLEtBQUssSUFBSSxnQkFBZ0I7QUFDL0IsWUFBSSxLQUFLLE9BQU8sU0FBUztBQUN2QixhQUFHLE1BQU0sS0FBSyxPQUFPLE1BQU07QUFBQSxRQUM3QixPQUFPO0FBQ0wsY0FBSSxPQUFPLHVCQUF1QixJQUFJLEtBQUssTUFBTTtBQUNqRCxjQUFJLFNBQVMsUUFBVztBQUN0QixtQkFBTyxvQkFBSSxJQUFJO0FBQ2YsbUNBQXVCLElBQUksS0FBSyxRQUFRLElBQUk7QUFBQSxVQUM5QztBQUNBLGdCQUFNLFFBQVEsSUFBSSxRQUFRLEVBQUU7QUFDNUIsZUFBSyxJQUFJLEtBQUs7QUFDZCxVQUFBQSxNQUFLO0FBQUEsWUFDSCxHQUFHO0FBQUEsWUFDSCxXQUFXLEtBQUs7QUFBQSxVQUNsQjtBQUFBLFFBQ0Y7QUFHQSxlQUFPLGlCQUFpQixlQUFlLEdBQUcsUUFBUSxnQkFBZ0IsS0FBSyxRQUFRLENBQUMsQ0FBQztBQUFBLE1BQ25GO0FBQUEsTUFFQSxDQUFDLFNBQVMsUUFBUSxNQUFNLEVBQUcsT0FBTyxTQUFTO0FBQ3pDLFlBQUksUUFBUSxVQUFVLE1BQU07QUFDMUIsa0JBQVEsUUFBUTtBQUFBLFFBQ2xCO0FBRUEsZ0JBQVEsV0FBVztBQUVuQixjQUFNLGFBQWE7QUFBQSxVQUNqQixRQUFRLEtBQUs7QUFBQSxVQUNiLEtBQUssS0FBSztBQUFBLFVBQ1YsU0FBUyxLQUFLO0FBQUEsVUFDZCxhQUFhLEtBQUs7QUFBQSxVQUNsQixVQUFVLEtBQUs7QUFBQSxVQUNmLGdCQUFnQixLQUFLO0FBQUEsVUFDckIsTUFBTSxLQUFLO0FBQUEsVUFDWCxhQUFhLEtBQUs7QUFBQSxVQUNsQixPQUFPLEtBQUs7QUFBQSxVQUNaLFVBQVUsS0FBSztBQUFBLFVBQ2YsV0FBVyxLQUFLO0FBQUEsVUFDaEIsV0FBVyxLQUFLO0FBQUEsVUFDaEIsb0JBQW9CLEtBQUs7QUFBQSxVQUN6QixxQkFBcUIsS0FBSztBQUFBLFVBQzFCLFFBQVEsS0FBSztBQUFBLFFBQ2Y7QUFFQSxlQUFPLFdBQVcsU0FBUyxrQkFBa0IsU0FBUyxVQUFVLENBQUM7QUFBQSxNQUNuRTtBQUFBLElBQ0Y7QUFFQSxjQUFVQyxRQUFPO0FBR2pCLGFBQVMsWUFBYSxNQUFNO0FBQzFCLGFBQU87QUFBQSxRQUNMLFFBQVEsS0FBSyxVQUFVO0FBQUEsUUFDdkIsZUFBZSxLQUFLLGlCQUFpQjtBQUFBLFFBQ3JDLGVBQWUsS0FBSyxpQkFBaUI7QUFBQSxRQUNyQyxNQUFNLEtBQUssUUFBUTtBQUFBLFFBQ25CLFFBQVEsS0FBSyxVQUFVO0FBQUEsUUFDdkIsZ0JBQWdCLEtBQUssa0JBQWtCO0FBQUEsUUFDdkMsa0JBQWtCLEtBQUssb0JBQW9CO0FBQUEsUUFDM0MsUUFBUSxLQUFLLFVBQVU7QUFBQSxRQUN2QixXQUFXLEtBQUssYUFBYTtBQUFBLFFBQzdCLGdCQUFnQixLQUFLLGtCQUFrQjtBQUFBLFFBQ3ZDLFdBQVcsS0FBSyxhQUFhO0FBQUEsUUFDN0IsYUFBYSxLQUFLLGVBQWU7QUFBQSxRQUNqQyxVQUFVLEtBQUssWUFBWTtBQUFBLFFBQzNCLFFBQVEsS0FBSyxVQUFVO0FBQUEsUUFDdkIsaUJBQWlCLEtBQUssbUJBQW1CO0FBQUEsUUFDekMsVUFBVSxLQUFLLFlBQVk7QUFBQSxRQUMzQixnQkFBZ0IsS0FBSyxrQkFBa0I7QUFBQSxRQUN2QyxNQUFNLEtBQUssUUFBUTtBQUFBLFFBQ25CLHNCQUFzQixLQUFLLHdCQUF3QjtBQUFBLFFBQ25ELGFBQWEsS0FBSyxlQUFlO0FBQUEsUUFDakMsZ0JBQWdCLEtBQUssa0JBQWtCO0FBQUEsUUFDdkMsT0FBTyxLQUFLLFNBQVM7QUFBQSxRQUNyQixVQUFVLEtBQUssWUFBWTtBQUFBLFFBQzNCLFdBQVcsS0FBSyxhQUFhO0FBQUEsUUFDN0IsNkJBQTZCLEtBQUssK0JBQStCO0FBQUEsUUFDakUsZ0JBQWdCLEtBQUssa0JBQWtCO0FBQUEsUUFDdkMsa0JBQWtCLEtBQUssb0JBQW9CO0FBQUEsUUFDM0MsbUJBQW1CLEtBQUsscUJBQXFCO0FBQUEsUUFDN0MsZ0JBQWdCLEtBQUssa0JBQWtCO0FBQUEsUUFDdkMsZUFBZSxLQUFLLGlCQUFpQjtBQUFBLFFBQ3JDLGVBQWUsS0FBSyxpQkFBaUI7QUFBQSxRQUNyQyxrQkFBa0IsS0FBSyxvQkFBb0I7QUFBQSxRQUMzQyw4Q0FBOEMsS0FBSyxnREFBZ0Q7QUFBQSxRQUNuRyxNQUFNLEtBQUssUUFBUTtBQUFBLFFBQ25CLG1CQUFtQixLQUFLLHFCQUFxQjtBQUFBLFFBQzdDLFNBQVMsS0FBSztBQUFBLFFBQ2QsS0FBSyxLQUFLLFFBQVEsQ0FBQztBQUFBLFFBQ25CLGFBQWEsS0FBSyxjQUNkLElBQUksWUFBWSxLQUFLLFdBQVcsSUFDaEMsSUFBSSxZQUFZO0FBQUEsTUFDdEI7QUFBQSxJQUNGO0FBR0EsYUFBUyxhQUFjLFNBQVM7QUFJOUIsWUFBTSxhQUFhLFlBQVksRUFBRSxHQUFHLFNBQVMsTUFBTSxLQUFLLENBQUM7QUFJekQsVUFBSSxRQUFRLFFBQVEsTUFBTTtBQUN4QixtQkFBVyxPQUFPLFVBQVUsWUFBWSxRQUFRLElBQUk7QUFBQSxNQUN0RDtBQUdBLGFBQU87QUFBQSxJQUNUO0FBU0EsYUFBUyxpQkFBa0IsY0FBYyxRQUFRLE9BQU87QUFDdEQsWUFBTSxVQUFVLElBQUlBLFNBQVEsVUFBVTtBQUN0QyxjQUFRLE1BQU0sSUFBSTtBQUNsQixjQUFRLE9BQU8sSUFBSTtBQUNuQixjQUFRLFFBQVEsSUFBSSxJQUFJLFFBQVEsVUFBVTtBQUMxQyxxQkFBZSxRQUFRLFFBQVEsR0FBRyxhQUFhLFdBQVc7QUFDMUQsc0JBQWdCLFFBQVEsUUFBUSxHQUFHLEtBQUs7QUFDeEMsYUFBTztBQUFBLElBQ1Q7QUFFQSxXQUFPLGlCQUFpQkEsU0FBUSxXQUFXO0FBQUEsTUFDekMsUUFBUTtBQUFBLE1BQ1IsS0FBSztBQUFBLE1BQ0wsU0FBUztBQUFBLE1BQ1QsVUFBVTtBQUFBLE1BQ1YsT0FBTztBQUFBLE1BQ1AsUUFBUTtBQUFBLE1BQ1IsUUFBUTtBQUFBLE1BQ1IsYUFBYTtBQUFBLE1BQ2IsTUFBTTtBQUFBLE1BQ04sVUFBVTtBQUFBLE1BQ1YscUJBQXFCO0FBQUEsTUFDckIsb0JBQW9CO0FBQUEsTUFDcEIsV0FBVztBQUFBLE1BQ1gsV0FBVztBQUFBLE1BQ1gsT0FBTztBQUFBLE1BQ1AsYUFBYTtBQUFBLE1BQ2IsV0FBVztBQUFBLE1BQ1gsZ0JBQWdCO0FBQUEsTUFDaEIsVUFBVTtBQUFBLE1BQ1YsTUFBTTtBQUFBLE1BQ04sQ0FBQyxPQUFPLFdBQVcsR0FBRztBQUFBLFFBQ3BCLE9BQU87QUFBQSxRQUNQLGNBQWM7QUFBQSxNQUNoQjtBQUFBLElBQ0YsQ0FBQztBQUVELFdBQU8sV0FBVyxVQUFVLE9BQU87QUFBQSxNQUNqQ0E7QUFBQSxJQUNGO0FBR0EsV0FBTyxXQUFXLGNBQWMsU0FBVSxHQUFHLFFBQVEsVUFBVTtBQUM3RCxVQUFJLE9BQU8sTUFBTSxVQUFVO0FBQ3pCLGVBQU8sT0FBTyxXQUFXLFVBQVUsR0FBRyxRQUFRLFFBQVE7QUFBQSxNQUN4RDtBQUVBLFVBQUksYUFBYUEsVUFBUztBQUN4QixlQUFPLE9BQU8sV0FBVyxRQUFRLEdBQUcsUUFBUSxRQUFRO0FBQUEsTUFDdEQ7QUFFQSxhQUFPLE9BQU8sV0FBVyxVQUFVLEdBQUcsUUFBUSxRQUFRO0FBQUEsSUFDeEQ7QUFFQSxXQUFPLFdBQVcsY0FBYyxPQUFPO0FBQUEsTUFDckM7QUFBQSxJQUNGO0FBR0EsV0FBTyxXQUFXLGNBQWMsT0FBTyxvQkFBb0I7QUFBQSxNQUN6RDtBQUFBLFFBQ0UsS0FBSztBQUFBLFFBQ0wsV0FBVyxPQUFPLFdBQVc7QUFBQSxNQUMvQjtBQUFBLE1BQ0E7QUFBQSxRQUNFLEtBQUs7QUFBQSxRQUNMLFdBQVcsT0FBTyxXQUFXO0FBQUEsTUFDL0I7QUFBQSxNQUNBO0FBQUEsUUFDRSxLQUFLO0FBQUEsUUFDTCxXQUFXLE9BQU87QUFBQSxVQUNoQixPQUFPLFdBQVc7QUFBQSxRQUNwQjtBQUFBLE1BQ0Y7QUFBQSxNQUNBO0FBQUEsUUFDRSxLQUFLO0FBQUEsUUFDTCxXQUFXLE9BQU8sV0FBVztBQUFBLE1BQy9CO0FBQUEsTUFDQTtBQUFBLFFBQ0UsS0FBSztBQUFBLFFBQ0wsV0FBVyxPQUFPLFdBQVc7QUFBQTtBQUFBLFFBRTdCLGVBQWU7QUFBQSxNQUNqQjtBQUFBLE1BQ0E7QUFBQSxRQUNFLEtBQUs7QUFBQSxRQUNMLFdBQVcsT0FBTyxXQUFXO0FBQUE7QUFBQSxRQUU3QixlQUFlO0FBQUEsTUFDakI7QUFBQSxNQUNBO0FBQUEsUUFDRSxLQUFLO0FBQUEsUUFDTCxXQUFXLE9BQU8sV0FBVztBQUFBO0FBQUEsUUFFN0IsZUFBZTtBQUFBLE1BQ2pCO0FBQUEsTUFDQTtBQUFBLFFBQ0UsS0FBSztBQUFBLFFBQ0wsV0FBVyxPQUFPLFdBQVc7QUFBQTtBQUFBLFFBRTdCLGVBQWU7QUFBQSxNQUNqQjtBQUFBLE1BQ0E7QUFBQSxRQUNFLEtBQUs7QUFBQSxRQUNMLFdBQVcsT0FBTyxXQUFXO0FBQUE7QUFBQSxRQUU3QixlQUFlO0FBQUEsTUFDakI7QUFBQSxNQUNBO0FBQUEsUUFDRSxLQUFLO0FBQUEsUUFDTCxXQUFXLE9BQU8sV0FBVztBQUFBLE1BQy9CO0FBQUEsTUFDQTtBQUFBLFFBQ0UsS0FBSztBQUFBLFFBQ0wsV0FBVyxPQUFPLFdBQVc7QUFBQSxNQUMvQjtBQUFBLE1BQ0E7QUFBQSxRQUNFLEtBQUs7QUFBQSxRQUNMLFdBQVcsT0FBTztBQUFBLFVBQ2hCLENBQUMsV0FBVyxPQUFPLFdBQVc7QUFBQSxZQUM1QjtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQSxFQUFFLFFBQVEsTUFBTTtBQUFBLFVBQ2xCO0FBQUEsUUFDRjtBQUFBLE1BQ0Y7QUFBQSxNQUNBO0FBQUEsUUFDRSxLQUFLO0FBQUEsUUFDTCxXQUFXLE9BQU8sV0FBVztBQUFBLE1BQy9CO0FBQUEsTUFDQTtBQUFBLFFBQ0UsS0FBSztBQUFBLFFBQ0wsV0FBVyxPQUFPLFdBQVc7QUFBQSxRQUM3QixlQUFlO0FBQUEsTUFDakI7QUFBQSxNQUNBO0FBQUEsUUFDRSxLQUFLO0FBQUE7QUFBQSxRQUNMLFdBQVcsT0FBTyxXQUFXO0FBQUEsTUFDL0I7QUFBQSxJQUNGLENBQUM7QUFFRCxJQUFBSCxRQUFPLFVBQVUsRUFBRSxTQUFBRyxVQUFTLGFBQWEsa0JBQWtCLGFBQWE7QUFBQTtBQUFBOzs7QUM1Z0N4RTtBQUFBLCtDQUFBSSxVQUFBQyxTQUFBO0FBQUE7QUFJQSxRQUFNO0FBQUEsTUFDSjtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxJQUNGLElBQUk7QUFDSixRQUFNLEVBQUUsWUFBWSxJQUFJO0FBQ3hCLFFBQU0sRUFBRSxTQUFBQyxVQUFTLGFBQWEsSUFBSTtBQUNsQyxRQUFNQyxRQUFPLFFBQVEsV0FBVztBQUNoQyxRQUFNO0FBQUEsTUFDSjtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBLFdBQUFDO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsSUFDRixJQUFJO0FBQ0osUUFBTSxFQUFFLFFBQVEsWUFBWSxJQUFJO0FBQ2hDLFFBQU0sU0FBUyxRQUFRLGFBQWE7QUFDcEMsUUFBTSxFQUFFLG1CQUFtQixZQUFZLElBQUk7QUFDM0MsUUFBTTtBQUFBLE1BQ0o7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsSUFDRixJQUFJO0FBQ0osUUFBTSxLQUFLLFFBQVEsYUFBYTtBQUNoQyxRQUFNLEVBQUUsVUFBQUMsV0FBVSxVQUFVLFNBQVMsSUFBSSxRQUFRLGFBQWE7QUFDOUQsUUFBTSxFQUFFLGtCQUFrQixXQUFXLFlBQVksNkJBQTZCLElBQUk7QUFDbEYsUUFBTSxFQUFFLGtCQUFrQixvQkFBb0IsMEJBQTBCLElBQUk7QUFDNUUsUUFBTSxFQUFFLG9CQUFvQixJQUFJO0FBQ2hDLFFBQU0sRUFBRSxPQUFPLElBQUk7QUFDbkIsUUFBTSxFQUFFLGFBQWEsSUFBSSxRQUFRLFdBQVc7QUFDNUMsUUFBTSxjQUFjLENBQUMsT0FBTyxNQUFNO0FBRWxDLFFBQU0sbUJBQW1CLE9BQU8sdUJBQXVCLGVBQWUsT0FBTyxxQkFBcUIsY0FDOUYsU0FDQTtBQUdKLFFBQUk7QUFFSixRQUFNLFFBQU4sY0FBb0IsR0FBRztBQUFBLE1BQ3JCLFlBQWEsWUFBWTtBQUN2QixjQUFNO0FBRU4sYUFBSyxhQUFhO0FBQ2xCLGFBQUssYUFBYTtBQUNsQixhQUFLLE9BQU87QUFDWixhQUFLLFFBQVE7QUFBQSxNQUNmO0FBQUEsTUFFQSxVQUFXLFFBQVE7QUFDakIsWUFBSSxLQUFLLFVBQVUsV0FBVztBQUM1QjtBQUFBLFFBQ0Y7QUFFQSxhQUFLLFFBQVE7QUFDYixhQUFLLFlBQVksUUFBUSxNQUFNO0FBQy9CLGFBQUssS0FBSyxjQUFjLE1BQU07QUFBQSxNQUNoQztBQUFBO0FBQUEsTUFHQSxNQUFPLE9BQU87QUFDWixZQUFJLEtBQUssVUFBVSxXQUFXO0FBQzVCO0FBQUEsUUFDRjtBQUdBLGFBQUssUUFBUTtBQUliLFlBQUksQ0FBQyxPQUFPO0FBQ1Ysa0JBQVEsSUFBSSxhQUFhLDhCQUE4QixZQUFZO0FBQUEsUUFDckU7QUFPQSxhQUFLLHdCQUF3QjtBQUU3QixhQUFLLFlBQVksUUFBUSxLQUFLO0FBQzlCLGFBQUssS0FBSyxjQUFjLEtBQUs7QUFBQSxNQUMvQjtBQUFBLElBQ0Y7QUFFQSxhQUFTLGdCQUFpQixVQUFVO0FBQ2xDLDhCQUF3QixVQUFVLE9BQU87QUFBQSxJQUMzQztBQUdBLGFBQVNDLE9BQU8sT0FBTyxPQUFPLFFBQVc7QUFDdkMsYUFBTyxvQkFBb0IsV0FBVyxHQUFHLGtCQUFrQjtBQUczRCxVQUFJLElBQUksc0JBQXNCO0FBSzlCLFVBQUk7QUFFSixVQUFJO0FBQ0Ysd0JBQWdCLElBQUlKLFNBQVEsT0FBTyxJQUFJO0FBQUEsTUFDekMsU0FBUyxHQUFHO0FBQ1YsVUFBRSxPQUFPLENBQUM7QUFDVixlQUFPLEVBQUU7QUFBQSxNQUNYO0FBR0EsWUFBTSxVQUFVLGNBQWMsTUFBTTtBQUdwQyxVQUFJLGNBQWMsT0FBTyxTQUFTO0FBR2hDLG1CQUFXLEdBQUcsU0FBUyxNQUFNLGNBQWMsT0FBTyxNQUFNO0FBR3hELGVBQU8sRUFBRTtBQUFBLE1BQ1g7QUFHQSxZQUFNLGVBQWUsUUFBUSxPQUFPO0FBSXBDLFVBQUksY0FBYyxhQUFhLFNBQVMsNEJBQTRCO0FBQ2xFLGdCQUFRLGlCQUFpQjtBQUFBLE1BQzNCO0FBR0EsVUFBSSxpQkFBaUI7QUFLckIsVUFBSSxpQkFBaUI7QUFHckIsVUFBSSxhQUFhO0FBR2pCO0FBQUEsUUFDRSxjQUFjO0FBQUEsUUFDZCxNQUFNO0FBRUosMkJBQWlCO0FBR2pCLGlCQUFPLGNBQWMsSUFBSTtBQUd6QixxQkFBVyxNQUFNLGNBQWMsT0FBTyxNQUFNO0FBRTVDLGdCQUFNLGVBQWUsZ0JBQWdCLE1BQU07QUFJM0MscUJBQVcsR0FBRyxTQUFTLGNBQWMsY0FBYyxPQUFPLE1BQU07QUFBQSxRQUNsRTtBQUFBLE1BQ0Y7QUFVQSxZQUFNLGtCQUFrQixDQUFDLGFBQWE7QUFFcEMsWUFBSSxnQkFBZ0I7QUFDbEI7QUFBQSxRQUNGO0FBR0EsWUFBSSxTQUFTLFNBQVM7QUFRcEIscUJBQVcsR0FBRyxTQUFTLGdCQUFnQixXQUFXLHFCQUFxQjtBQUN2RTtBQUFBLFFBQ0Y7QUFJQSxZQUFJLFNBQVMsU0FBUyxTQUFTO0FBQzdCLFlBQUUsT0FBTyxJQUFJLFVBQVUsZ0JBQWdCLEVBQUUsT0FBTyxTQUFTLE1BQU0sQ0FBQyxDQUFDO0FBQ2pFO0FBQUEsUUFDRjtBQUlBLHlCQUFpQixJQUFJLFFBQVEsa0JBQWtCLFVBQVUsV0FBVyxDQUFDO0FBR3JFLFVBQUUsUUFBUSxlQUFlLE1BQU0sQ0FBQztBQUNoQyxZQUFJO0FBQUEsTUFDTjtBQUVBLG1CQUFhLFNBQVM7QUFBQSxRQUNwQjtBQUFBLFFBQ0EsMEJBQTBCO0FBQUEsUUFDMUI7QUFBQSxRQUNBLFlBQVksY0FBYyxXQUFXO0FBQUE7QUFBQSxNQUN2QyxDQUFDO0FBR0QsYUFBTyxFQUFFO0FBQUEsSUFDWDtBQUdBLGFBQVMsd0JBQXlCLFVBQVUsZ0JBQWdCLFNBQVM7QUFFbkUsVUFBSSxTQUFTLFNBQVMsV0FBVyxTQUFTLFNBQVM7QUFDakQ7QUFBQSxNQUNGO0FBR0EsVUFBSSxDQUFDLFNBQVMsU0FBUyxRQUFRO0FBQzdCO0FBQUEsTUFDRjtBQUdBLFlBQU0sY0FBYyxTQUFTLFFBQVEsQ0FBQztBQUd0QyxVQUFJLGFBQWEsU0FBUztBQUcxQixVQUFJLGFBQWEsU0FBUztBQUcxQixVQUFJLENBQUMscUJBQXFCLFdBQVcsR0FBRztBQUN0QztBQUFBLE1BQ0Y7QUFHQSxVQUFJLGVBQWUsTUFBTTtBQUN2QjtBQUFBLE1BQ0Y7QUFHQSxVQUFJLENBQUMsU0FBUyxtQkFBbUI7QUFFL0IscUJBQWEsdUJBQXVCO0FBQUEsVUFDbEMsV0FBVyxXQUFXO0FBQUEsUUFDeEIsQ0FBQztBQUdELHFCQUFhO0FBQUEsTUFDZjtBQU9BLGlCQUFXLFVBQVUsMkJBQTJCO0FBR2hELGVBQVMsYUFBYTtBQUl0QjtBQUFBLFFBQ0U7QUFBQSxRQUNBLFlBQVk7QUFBQSxRQUNaO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxNQUNGO0FBQUEsSUFDRjtBQUdBLFFBQU0scUJBQXFCLFlBQVk7QUFHdkMsYUFBUyxXQUFZLEdBQUcsU0FBUyxnQkFBZ0IsT0FBTztBQUV0RCxVQUFJLEdBQUc7QUFFTCxVQUFFLE9BQU8sS0FBSztBQUFBLE1BQ2hCO0FBSUEsVUFBSSxRQUFRLFFBQVEsUUFBUSxXQUFXLFFBQVEsTUFBTSxNQUFNLEdBQUc7QUFDNUQsZ0JBQVEsS0FBSyxPQUFPLE9BQU8sS0FBSyxFQUFFLE1BQU0sQ0FBQ0ssU0FBUTtBQUMvQyxjQUFJQSxLQUFJLFNBQVMscUJBQXFCO0FBRXBDO0FBQUEsVUFDRjtBQUNBLGdCQUFNQTtBQUFBLFFBQ1IsQ0FBQztBQUFBLE1BQ0g7QUFHQSxVQUFJLGtCQUFrQixNQUFNO0FBQzFCO0FBQUEsTUFDRjtBQUdBLFlBQU0sV0FBVyxlQUFlLE1BQU07QUFJdEMsVUFBSSxTQUFTLFFBQVEsUUFBUSxXQUFXLFNBQVMsTUFBTSxNQUFNLEdBQUc7QUFDOUQsaUJBQVMsS0FBSyxPQUFPLE9BQU8sS0FBSyxFQUFFLE1BQU0sQ0FBQ0EsU0FBUTtBQUNoRCxjQUFJQSxLQUFJLFNBQVMscUJBQXFCO0FBRXBDO0FBQUEsVUFDRjtBQUNBLGdCQUFNQTtBQUFBLFFBQ1IsQ0FBQztBQUFBLE1BQ0g7QUFBQSxJQUNGO0FBR0EsYUFBUyxTQUFVO0FBQUEsTUFDakI7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0EsbUJBQW1CO0FBQUEsTUFDbkIsYUFBYSxvQkFBb0I7QUFBQTtBQUFBLElBQ25DLEdBQUc7QUFFRCxhQUFPLFVBQVU7QUFHakIsVUFBSSxrQkFBa0I7QUFHdEIsVUFBSSxnQ0FBZ0M7QUFHcEMsVUFBSSxRQUFRLFVBQVUsTUFBTTtBQUUxQiwwQkFBa0IsUUFBUSxPQUFPO0FBSWpDLHdDQUNFLFFBQVEsT0FBTztBQUFBLE1BQ25CO0FBU0EsWUFBTSxjQUFjLDJCQUEyQiw2QkFBNkI7QUFDNUUsWUFBTSxhQUFhLHVCQUF1QjtBQUFBLFFBQ3hDLFdBQVc7QUFBQSxNQUNiLENBQUM7QUFZRCxZQUFNLGNBQWM7QUFBQSxRQUNsQixZQUFZLElBQUksTUFBTSxVQUFVO0FBQUEsUUFDaEM7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLE1BQ0Y7QUFNQSxhQUFPLENBQUMsUUFBUSxRQUFRLFFBQVEsS0FBSyxNQUFNO0FBSzNDLFVBQUksUUFBUSxXQUFXLFVBQVU7QUFFL0IsZ0JBQVEsU0FDTixRQUFRLFFBQVEsY0FBYyxhQUFhLFNBQVMsV0FDaEQsUUFBUSxTQUNSO0FBQUEsTUFDUjtBQUlBLFVBQUksUUFBUSxXQUFXLFVBQVU7QUFDL0IsZ0JBQVEsU0FBUyxRQUFRLE9BQU87QUFBQSxNQUNsQztBQU1BLFVBQUksUUFBUSxvQkFBb0IsVUFBVTtBQUd4QyxZQUFJLFFBQVEsVUFBVSxNQUFNO0FBQzFCLGtCQUFRLGtCQUFrQjtBQUFBLFlBQ3hCLFFBQVEsT0FBTztBQUFBLFVBQ2pCO0FBQUEsUUFDRixPQUFPO0FBR0wsa0JBQVEsa0JBQWtCLG9CQUFvQjtBQUFBLFFBQ2hEO0FBQUEsTUFDRjtBQUdBLFVBQUksQ0FBQyxRQUFRLFlBQVksU0FBUyxVQUFVLElBQUksR0FBRztBQUVqRCxjQUFNLFFBQVE7QUFlZCxnQkFBUSxZQUFZLE9BQU8sVUFBVSxPQUFPLElBQUk7QUFBQSxNQUNsRDtBQUtBLFVBQUksQ0FBQyxRQUFRLFlBQVksU0FBUyxtQkFBbUIsSUFBSSxHQUFHO0FBQzFELGdCQUFRLFlBQVksT0FBTyxtQkFBbUIsS0FBSyxJQUFJO0FBQUEsTUFDekQ7QUFLQSxVQUFJLFFBQVEsYUFBYSxNQUFNO0FBQUEsTUFFL0I7QUFHQSxVQUFJLGVBQWUsSUFBSSxRQUFRLFdBQVcsR0FBRztBQUFBLE1BRTdDO0FBR0EsZ0JBQVUsV0FBVyxFQUNsQixNQUFNLENBQUFBLFNBQU87QUFDWixvQkFBWSxXQUFXLFVBQVVBLElBQUc7QUFBQSxNQUN0QyxDQUFDO0FBR0gsYUFBTyxZQUFZO0FBQUEsSUFDckI7QUFHQSxtQkFBZSxVQUFXLGFBQWEsWUFBWSxPQUFPO0FBRXhELFlBQU0sVUFBVSxZQUFZO0FBRzVCLFVBQUksV0FBVztBQUlmLFVBQUksUUFBUSxpQkFBaUIsQ0FBQyxXQUFXLGtCQUFrQixPQUFPLENBQUMsR0FBRztBQUNwRSxtQkFBVyxpQkFBaUIsaUJBQWlCO0FBQUEsTUFDL0M7QUFNQSxvREFBOEMsT0FBTztBQUtyRCxVQUFJLGVBQWUsT0FBTyxNQUFNLFdBQVc7QUFDekMsbUJBQVcsaUJBQWlCLFVBQVU7QUFBQSxNQUN4QztBQU1BLFVBQUksUUFBUSxtQkFBbUIsSUFBSTtBQUNqQyxnQkFBUSxpQkFBaUIsUUFBUSxnQkFBZ0I7QUFBQSxNQUNuRDtBQUlBLFVBQUksUUFBUSxhQUFhLGVBQWU7QUFDdEMsZ0JBQVEsV0FBVywwQkFBMEIsT0FBTztBQUFBLE1BQ3REO0FBaUJBLFVBQUksYUFBYSxNQUFNO0FBQ3JCLG1CQUFXLE9BQU8sWUFBWTtBQUM1QixnQkFBTSxhQUFhLGtCQUFrQixPQUFPO0FBRTVDO0FBQUE7QUFBQTtBQUFBLFlBR0csV0FBVyxZQUFZLFFBQVEsR0FBRyxLQUFLLFFBQVEscUJBQXFCO0FBQUEsWUFFcEUsV0FBVyxhQUFhO0FBQUEsYUFFeEIsUUFBUSxTQUFTLGNBQWMsUUFBUSxTQUFTO0FBQUEsWUFDakQ7QUFFQSxvQkFBUSxtQkFBbUI7QUFHM0IsbUJBQU8sTUFBTSxZQUFZLFdBQVc7QUFBQSxVQUN0QztBQUdBLGNBQUksUUFBUSxTQUFTLGVBQWU7QUFFbEMsbUJBQU8saUJBQWlCLHNDQUFzQztBQUFBLFVBQ2hFO0FBR0EsY0FBSSxRQUFRLFNBQVMsV0FBVztBQUc5QixnQkFBSSxRQUFRLGFBQWEsVUFBVTtBQUNqQyxxQkFBTztBQUFBLGdCQUNMO0FBQUEsY0FDRjtBQUFBLFlBQ0Y7QUFHQSxvQkFBUSxtQkFBbUI7QUFHM0IsbUJBQU8sTUFBTSxZQUFZLFdBQVc7QUFBQSxVQUN0QztBQUdBLGNBQUksQ0FBQyxxQkFBcUIsa0JBQWtCLE9BQU8sQ0FBQyxHQUFHO0FBRXJELG1CQUFPLGlCQUFpQixxQ0FBcUM7QUFBQSxVQUMvRDtBQWdCQSxrQkFBUSxtQkFBbUI7QUFHM0IsaUJBQU8sTUFBTSxVQUFVLFdBQVc7QUFBQSxRQUNwQyxHQUFHO0FBQUEsTUFDTDtBQUdBLFVBQUksV0FBVztBQUNiLGVBQU87QUFBQSxNQUNUO0FBSUEsVUFBSSxTQUFTLFdBQVcsS0FBSyxDQUFDLFNBQVMsa0JBQWtCO0FBRXZELFlBQUksUUFBUSxxQkFBcUIsUUFBUTtBQUFBLFFBV3pDO0FBSUEsWUFBSSxRQUFRLHFCQUFxQixTQUFTO0FBQ3hDLHFCQUFXLGVBQWUsVUFBVSxPQUFPO0FBQUEsUUFDN0MsV0FBVyxRQUFRLHFCQUFxQixRQUFRO0FBQzlDLHFCQUFXLGVBQWUsVUFBVSxNQUFNO0FBQUEsUUFDNUMsV0FBVyxRQUFRLHFCQUFxQixVQUFVO0FBQ2hELHFCQUFXLGVBQWUsVUFBVSxRQUFRO0FBQUEsUUFDOUMsT0FBTztBQUNMLGlCQUFPLEtBQUs7QUFBQSxRQUNkO0FBQUEsTUFDRjtBQUlBLFVBQUksbUJBQ0YsU0FBUyxXQUFXLElBQUksV0FBVyxTQUFTO0FBSTlDLFVBQUksaUJBQWlCLFFBQVEsV0FBVyxHQUFHO0FBQ3pDLHlCQUFpQixRQUFRLEtBQUssR0FBRyxRQUFRLE9BQU87QUFBQSxNQUNsRDtBQUlBLFVBQUksQ0FBQyxRQUFRLG1CQUFtQjtBQUM5QixpQkFBUyxvQkFBb0I7QUFBQSxNQUMvQjtBQWNBLFVBQ0UsU0FBUyxTQUFTLFlBQ2xCLGlCQUFpQixXQUFXLE9BQzVCLGlCQUFpQixrQkFDakIsQ0FBQyxRQUFRLFFBQVEsU0FBUyxTQUFTLElBQUksR0FDdkM7QUFDQSxtQkFBVyxtQkFBbUIsaUJBQWlCO0FBQUEsTUFDakQ7QUFNQSxVQUNFLFNBQVMsV0FBVyxNQUNuQixRQUFRLFdBQVcsVUFDbEIsUUFBUSxXQUFXLGFBQ25CLGVBQWUsU0FBUyxpQkFBaUIsTUFBTSxJQUNqRDtBQUNBLHlCQUFpQixPQUFPO0FBQ3hCLG9CQUFZLFdBQVcsT0FBTztBQUFBLE1BQ2hDO0FBR0EsVUFBSSxRQUFRLFdBQVc7QUFHckIsY0FBTSxtQkFBbUIsQ0FBQyxXQUN4QixZQUFZLGFBQWEsaUJBQWlCLE1BQU0sQ0FBQztBQUluRCxZQUFJLFFBQVEscUJBQXFCLFlBQVksU0FBUyxRQUFRLE1BQU07QUFDbEUsMkJBQWlCLFNBQVMsS0FBSztBQUMvQjtBQUFBLFFBQ0Y7QUFHQSxjQUFNLGNBQWMsQ0FBQyxVQUFVO0FBRzdCLGNBQUksQ0FBQyxXQUFXLE9BQU8sUUFBUSxTQUFTLEdBQUc7QUFDekMsNkJBQWlCLG9CQUFvQjtBQUNyQztBQUFBLFVBQ0Y7QUFHQSxtQkFBUyxPQUFPLGtCQUFrQixLQUFLLEVBQUUsQ0FBQztBQUcxQyxzQkFBWSxhQUFhLFFBQVE7QUFBQSxRQUNuQztBQUdBLGNBQU0sY0FBYyxTQUFTLE1BQU0sYUFBYSxnQkFBZ0I7QUFBQSxNQUNsRSxPQUFPO0FBRUwsb0JBQVksYUFBYSxRQUFRO0FBQUEsTUFDbkM7QUFBQSxJQUNGO0FBSUEsYUFBUyxZQUFhLGFBQWE7QUFLakMsVUFBSSxZQUFZLFdBQVcsS0FBSyxZQUFZLFFBQVEsa0JBQWtCLEdBQUc7QUFDdkUsZUFBTyxRQUFRLFFBQVEsNEJBQTRCLFdBQVcsQ0FBQztBQUFBLE1BQ2pFO0FBR0EsWUFBTSxFQUFFLFFBQVEsSUFBSTtBQUVwQixZQUFNLEVBQUUsVUFBVSxPQUFPLElBQUksa0JBQWtCLE9BQU87QUFHdEQsY0FBUSxRQUFRO0FBQUEsUUFDZCxLQUFLLFVBQVU7QUFNYixpQkFBTyxRQUFRLFFBQVEsaUJBQWlCLCtCQUErQixDQUFDO0FBQUEsUUFDMUU7QUFBQSxRQUNBLEtBQUssU0FBUztBQUNaLGNBQUksQ0FBQyxrQkFBa0I7QUFDckIsK0JBQW1CLFFBQVEsYUFBYSxFQUFFO0FBQUEsVUFDNUM7QUFHQSxnQkFBTSxlQUFlLGtCQUFrQixPQUFPO0FBSTlDLGNBQUksYUFBYSxPQUFPLFdBQVcsR0FBRztBQUNwQyxtQkFBTyxRQUFRLFFBQVEsaUJBQWlCLGlEQUFpRCxDQUFDO0FBQUEsVUFDNUY7QUFFQSxnQkFBTSxPQUFPLGlCQUFpQixhQUFhLFNBQVMsQ0FBQztBQUlyRCxjQUFJLFFBQVEsV0FBVyxTQUFTLENBQUMsV0FBVyxJQUFJLEdBQUc7QUFDakQsbUJBQU8sUUFBUSxRQUFRLGlCQUFpQixnQkFBZ0IsQ0FBQztBQUFBLFVBQzNEO0FBTUEsZ0JBQU0sV0FBVyxhQUFhO0FBRzlCLGdCQUFNLGFBQWEsS0FBSztBQUd4QixnQkFBTSx1QkFBdUIsaUJBQWlCLEdBQUcsVUFBVSxFQUFFO0FBRzdELGdCQUFNLE9BQU8sS0FBSztBQUlsQixjQUFJLENBQUMsUUFBUSxZQUFZLFNBQVMsU0FBUyxJQUFJLEdBQUc7QUFLaEQsa0JBQU0sZUFBZSxZQUFZLElBQUk7QUFHckMscUJBQVMsYUFBYTtBQUd0QixxQkFBUyxPQUFPLGFBQWEsQ0FBQztBQUc5QixxQkFBUyxZQUFZLElBQUksa0JBQWtCLHNCQUFzQixJQUFJO0FBQ3JFLHFCQUFTLFlBQVksSUFBSSxnQkFBZ0IsTUFBTSxJQUFJO0FBQUEsVUFDckQsT0FBTztBQUVMLHFCQUFTLGlCQUFpQjtBQUcxQixrQkFBTSxjQUFjLFFBQVEsWUFBWSxJQUFJLFNBQVMsSUFBSTtBQUd6RCxrQkFBTSxhQUFhLHVCQUF1QixhQUFhLElBQUk7QUFHM0QsZ0JBQUksZUFBZSxXQUFXO0FBQzVCLHFCQUFPLFFBQVEsUUFBUSxpQkFBaUIsOEJBQThCLENBQUM7QUFBQSxZQUN6RTtBQUdBLGdCQUFJLEVBQUUsaUJBQWlCLFlBQVksZUFBZSxTQUFTLElBQUk7QUFJL0QsZ0JBQUksZUFBZSxNQUFNO0FBRXZCLDJCQUFhLGFBQWE7QUFHMUIseUJBQVcsYUFBYSxXQUFXO0FBQUEsWUFDckMsT0FBTztBQUVMLGtCQUFJLGNBQWMsWUFBWTtBQUM1Qix1QkFBTyxRQUFRLFFBQVEsaUJBQWlCLDhDQUErQyxDQUFDO0FBQUEsY0FDMUY7QUFJQSxrQkFBSSxhQUFhLFFBQVEsWUFBWSxZQUFZO0FBQy9DLDJCQUFXLGFBQWE7QUFBQSxjQUMxQjtBQUFBLFlBQ0Y7QUFJQSxrQkFBTSxhQUFhLEtBQUssTUFBTSxZQUFZLFVBQVUsSUFBSTtBQUl4RCxrQkFBTSxxQkFBcUIsWUFBWSxVQUFVO0FBR2pELHFCQUFTLE9BQU8sbUJBQW1CLENBQUM7QUFHcEMsa0JBQU0seUJBQXlCLGlCQUFpQixHQUFHLFdBQVcsSUFBSSxFQUFFO0FBSXBFLGtCQUFNLGVBQWUsa0JBQWtCLFlBQVksVUFBVSxVQUFVO0FBR3ZFLHFCQUFTLFNBQVM7QUFHbEIscUJBQVMsYUFBYTtBQUl0QixxQkFBUyxZQUFZLElBQUksa0JBQWtCLHdCQUF3QixJQUFJO0FBQ3ZFLHFCQUFTLFlBQVksSUFBSSxnQkFBZ0IsTUFBTSxJQUFJO0FBQ25ELHFCQUFTLFlBQVksSUFBSSxpQkFBaUIsY0FBYyxJQUFJO0FBQUEsVUFDOUQ7QUFHQSxpQkFBTyxRQUFRLFFBQVEsUUFBUTtBQUFBLFFBQ2pDO0FBQUEsUUFDQSxLQUFLLFNBQVM7QUFHWixnQkFBTSxhQUFhLGtCQUFrQixPQUFPO0FBQzVDLGdCQUFNLGdCQUFnQixpQkFBaUIsVUFBVTtBQUlqRCxjQUFJLGtCQUFrQixXQUFXO0FBQy9CLG1CQUFPLFFBQVEsUUFBUSxpQkFBaUIsOEJBQThCLENBQUM7QUFBQSxVQUN6RTtBQUdBLGdCQUFNLFdBQVcsbUJBQW1CLGNBQWMsUUFBUTtBQUsxRCxpQkFBTyxRQUFRLFFBQVEsYUFBYTtBQUFBLFlBQ2xDLFlBQVk7QUFBQSxZQUNaLGFBQWE7QUFBQSxjQUNYLENBQUMsZ0JBQWdCLEVBQUUsTUFBTSxnQkFBZ0IsT0FBTyxTQUFTLENBQUM7QUFBQSxZQUM1RDtBQUFBLFlBQ0EsTUFBTSxrQkFBa0IsY0FBYyxJQUFJLEVBQUUsQ0FBQztBQUFBLFVBQy9DLENBQUMsQ0FBQztBQUFBLFFBQ0o7QUFBQSxRQUNBLEtBQUssU0FBUztBQUdaLGlCQUFPLFFBQVEsUUFBUSxpQkFBaUIsMkJBQTJCLENBQUM7QUFBQSxRQUN0RTtBQUFBLFFBQ0EsS0FBSztBQUFBLFFBQ0wsS0FBSyxVQUFVO0FBR2IsaUJBQU8sVUFBVSxXQUFXLEVBQ3pCLE1BQU0sQ0FBQ0EsU0FBUSxpQkFBaUJBLElBQUcsQ0FBQztBQUFBLFFBQ3pDO0FBQUEsUUFDQSxTQUFTO0FBQ1AsaUJBQU8sUUFBUSxRQUFRLGlCQUFpQixnQkFBZ0IsQ0FBQztBQUFBLFFBQzNEO0FBQUEsTUFDRjtBQUFBLElBQ0Y7QUFHQSxhQUFTLGlCQUFrQixhQUFhLFVBQVU7QUFFaEQsa0JBQVksUUFBUSxPQUFPO0FBSzNCLFVBQUksWUFBWSx1QkFBdUIsTUFBTTtBQUMzQyx1QkFBZSxNQUFNLFlBQVksb0JBQW9CLFFBQVEsQ0FBQztBQUFBLE1BQ2hFO0FBQUEsSUFDRjtBQUdBLGFBQVMsWUFBYSxhQUFhLFVBQVU7QUFFM0MsVUFBSSxhQUFhLFlBQVk7QUFRN0IsWUFBTSwyQkFBMkIsTUFBTTtBQUVyQyxjQUFNLGdCQUFnQixLQUFLLElBQUk7QUFJL0IsWUFBSSxZQUFZLFFBQVEsZ0JBQWdCLFlBQVk7QUFDbEQsc0JBQVksV0FBVyxpQkFBaUI7QUFBQSxRQUMxQztBQUdBLG9CQUFZLFdBQVcsb0JBQW9CLE1BQU07QUFFL0MsY0FBSSxZQUFZLFFBQVEsSUFBSSxhQUFhLFVBQVU7QUFDakQ7QUFBQSxVQUNGO0FBR0EscUJBQVcsVUFBVTtBQUdyQixjQUFJLGFBQWEsU0FBUztBQUcxQixnQkFBTSxXQUFXLFNBQVM7QUFJMUIsY0FBSSxDQUFDLFNBQVMsbUJBQW1CO0FBQy9CLHlCQUFhLHVCQUF1QixVQUFVO0FBRTlDLHlCQUFhO0FBQUEsVUFDZjtBQUdBLGNBQUksaUJBQWlCO0FBR3JCLGNBQUksWUFBWSxRQUFRLFNBQVMsZUFBZSxDQUFDLFNBQVMseUJBQXlCO0FBRWpGLDZCQUFpQixTQUFTO0FBRzFCLGtCQUFNLFdBQVcsZ0JBQWdCLFNBQVMsV0FBVztBQUdyRCxnQkFBSSxhQUFhLFdBQVc7QUFDMUIsdUJBQVMsY0FBYywwQkFBMEIsUUFBUTtBQUFBLFlBQzNEO0FBQUEsVUFDRjtBQUtBLGNBQUksWUFBWSxRQUFRLGlCQUFpQixNQUFNO0FBRTdDLCtCQUFtQixZQUFZLFlBQVksUUFBUSxJQUFJLE1BQU0sWUFBWSxRQUFRLGVBQWUsWUFBWSxZQUFZLFVBQVUsY0FBYztBQUFBLFVBQ2xKO0FBQUEsUUFDRjtBQUdBLGNBQU0sK0JBQStCLE1BQU07QUFFekMsc0JBQVksUUFBUSxPQUFPO0FBSTNCLGNBQUksWUFBWSw0QkFBNEIsTUFBTTtBQUNoRCwyQkFBZSxNQUFNLFlBQVkseUJBQXlCLFFBQVEsQ0FBQztBQUFBLFVBQ3JFO0FBS0EsY0FBSSxZQUFZLFFBQVEsaUJBQWlCLE1BQU07QUFDN0Msd0JBQVksV0FBVyxrQkFBa0I7QUFBQSxVQUMzQztBQUFBLFFBQ0Y7QUFHQSx1QkFBZSxNQUFNLDZCQUE2QixDQUFDO0FBQUEsTUFDckQ7QUFJQSxVQUFJLFlBQVksbUJBQW1CLE1BQU07QUFDdkMsdUJBQWUsTUFBTTtBQUNuQixzQkFBWSxnQkFBZ0IsUUFBUTtBQUNwQyxzQkFBWSxrQkFBa0I7QUFBQSxRQUNoQyxDQUFDO0FBQUEsTUFDSDtBQUdBLFlBQU0sbUJBQW1CLFNBQVMsU0FBUyxVQUFVLFdBQVksU0FBUyxvQkFBb0I7QUFJOUYsVUFBSSxpQkFBaUIsUUFBUSxNQUFNO0FBQ2pDLGlDQUF5QjtBQUFBLE1BQzNCLE9BQU87QUFXTCxpQkFBUyxpQkFBaUIsS0FBSyxRQUFRLE1BQU07QUFDM0MsbUNBQXlCO0FBQUEsUUFDM0IsQ0FBQztBQUFBLE1BQ0g7QUFBQSxJQUNGO0FBR0EsbUJBQWUsVUFBVyxhQUFhO0FBRXJDLFlBQU0sVUFBVSxZQUFZO0FBRzVCLFVBQUksV0FBVztBQUdmLFVBQUksaUJBQWlCO0FBR3JCLFlBQU0sYUFBYSxZQUFZO0FBRy9CLFVBQUksUUFBUSxtQkFBbUIsT0FBTztBQUFBLE1BRXRDO0FBR0EsVUFBSSxhQUFhLE1BQU07QUFNckIsWUFBSSxRQUFRLGFBQWEsVUFBVTtBQUNqQyxrQkFBUSxpQkFBaUI7QUFBQSxRQUMzQjtBQUlBLHlCQUFpQixXQUFXLE1BQU0sd0JBQXdCLFdBQVc7QUFJckUsWUFDRSxRQUFRLHFCQUFxQixVQUM3QixVQUFVLFNBQVMsUUFBUSxNQUFNLFdBQ2pDO0FBQ0EsaUJBQU8saUJBQWlCLGNBQWM7QUFBQSxRQUN4QztBQUlBLFlBQUksU0FBUyxTQUFTLFFBQVEsTUFBTSxXQUFXO0FBQzdDLGtCQUFRLG9CQUFvQjtBQUFBLFFBQzlCO0FBQUEsTUFDRjtBQU1BLFdBQ0csUUFBUSxxQkFBcUIsWUFBWSxTQUFTLFNBQVMsYUFDNUQ7QUFBQSxRQUNFLFFBQVE7QUFBQSxRQUNSLFFBQVE7QUFBQSxRQUNSLFFBQVE7QUFBQSxRQUNSO0FBQUEsTUFDRixNQUFNLFdBQ047QUFDQSxlQUFPLGlCQUFpQixTQUFTO0FBQUEsTUFDbkM7QUFHQSxVQUFJLGtCQUFrQixJQUFJLGVBQWUsTUFBTSxHQUFHO0FBS2hELFlBQUksUUFBUSxhQUFhLFVBQVU7QUFDakMsc0JBQVksV0FBVyxXQUFXLFFBQVEsUUFBVyxLQUFLO0FBQUEsUUFDNUQ7QUFHQSxZQUFJLFFBQVEsYUFBYSxTQUFTO0FBRWhDLHFCQUFXLGlCQUFpQixxQkFBcUI7QUFBQSxRQUNuRCxXQUFXLFFBQVEsYUFBYSxVQUFVO0FBTXhDLHFCQUFXO0FBQUEsUUFDYixXQUFXLFFBQVEsYUFBYSxVQUFVO0FBR3hDLHFCQUFXLE1BQU0sa0JBQWtCLGFBQWEsUUFBUTtBQUFBLFFBQzFELE9BQU87QUFDTCxpQkFBTyxLQUFLO0FBQUEsUUFDZDtBQUFBLE1BQ0Y7QUFHQSxlQUFTLGFBQWE7QUFHdEIsYUFBTztBQUFBLElBQ1Q7QUFHQSxhQUFTLGtCQUFtQixhQUFhLFVBQVU7QUFFakQsWUFBTSxVQUFVLFlBQVk7QUFJNUIsWUFBTSxpQkFBaUIsU0FBUyxtQkFDNUIsU0FBUyxtQkFDVDtBQUlKLFVBQUk7QUFFSixVQUFJO0FBQ0Ysc0JBQWM7QUFBQSxVQUNaO0FBQUEsVUFDQSxrQkFBa0IsT0FBTyxFQUFFO0FBQUEsUUFDN0I7QUFHQSxZQUFJLGVBQWUsTUFBTTtBQUN2QixpQkFBTztBQUFBLFFBQ1Q7QUFBQSxNQUNGLFNBQVNBLE1BQUs7QUFFWixlQUFPLFFBQVEsUUFBUSxpQkFBaUJBLElBQUcsQ0FBQztBQUFBLE1BQzlDO0FBSUEsVUFBSSxDQUFDLHFCQUFxQixXQUFXLEdBQUc7QUFDdEMsZUFBTyxRQUFRLFFBQVEsaUJBQWlCLHFDQUFxQyxDQUFDO0FBQUEsTUFDaEY7QUFHQSxVQUFJLFFBQVEsa0JBQWtCLElBQUk7QUFDaEMsZUFBTyxRQUFRLFFBQVEsaUJBQWlCLHlCQUF5QixDQUFDO0FBQUEsTUFDcEU7QUFHQSxjQUFRLGlCQUFpQjtBQUt6QixVQUNFLFFBQVEsU0FBUyxXQUNoQixZQUFZLFlBQVksWUFBWSxhQUNyQyxDQUFDLFdBQVcsU0FBUyxXQUFXLEdBQ2hDO0FBQ0EsZUFBTyxRQUFRLFFBQVEsaUJBQWlCLGtEQUFrRCxDQUFDO0FBQUEsTUFDN0Y7QUFJQSxVQUNFLFFBQVEscUJBQXFCLFdBQzVCLFlBQVksWUFBWSxZQUFZLFdBQ3JDO0FBQ0EsZUFBTyxRQUFRLFFBQVE7QUFBQSxVQUNyQjtBQUFBLFFBQ0YsQ0FBQztBQUFBLE1BQ0g7QUFJQSxVQUNFLGVBQWUsV0FBVyxPQUMxQixRQUFRLFFBQVEsUUFDaEIsUUFBUSxLQUFLLFVBQVUsTUFDdkI7QUFDQSxlQUFPLFFBQVEsUUFBUSxpQkFBaUIsQ0FBQztBQUFBLE1BQzNDO0FBS0EsVUFDRyxDQUFDLEtBQUssR0FBRyxFQUFFLFNBQVMsZUFBZSxNQUFNLEtBQUssUUFBUSxXQUFXLFVBQ2pFLGVBQWUsV0FBVyxPQUN6QixDQUFDLFlBQVksU0FBUyxRQUFRLE1BQU0sR0FDdEM7QUFHQSxnQkFBUSxTQUFTO0FBQ2pCLGdCQUFRLE9BQU87QUFJZixtQkFBVyxjQUFjLG1CQUFtQjtBQUMxQyxrQkFBUSxZQUFZLE9BQU8sVUFBVTtBQUFBLFFBQ3ZDO0FBQUEsTUFDRjtBQUtBLFVBQUksQ0FBQyxXQUFXLGtCQUFrQixPQUFPLEdBQUcsV0FBVyxHQUFHO0FBRXhELGdCQUFRLFlBQVksT0FBTyxpQkFBaUIsSUFBSTtBQUdoRCxnQkFBUSxZQUFZLE9BQU8sdUJBQXVCLElBQUk7QUFHdEQsZ0JBQVEsWUFBWSxPQUFPLFVBQVUsSUFBSTtBQUN6QyxnQkFBUSxZQUFZLE9BQU8sUUFBUSxJQUFJO0FBQUEsTUFDekM7QUFJQSxVQUFJLFFBQVEsUUFBUSxNQUFNO0FBQ3hCLGVBQU8sUUFBUSxLQUFLLFVBQVUsSUFBSTtBQUNsQyxnQkFBUSxPQUFPLGtCQUFrQixRQUFRLEtBQUssTUFBTSxFQUFFLENBQUM7QUFBQSxNQUN6RDtBQUdBLFlBQU0sYUFBYSxZQUFZO0FBSy9CLGlCQUFXLGtCQUFrQixXQUFXLHdCQUN0QywyQkFBMkIsWUFBWSw2QkFBNkI7QUFJdEUsVUFBSSxXQUFXLHNCQUFzQixHQUFHO0FBQ3RDLG1CQUFXLG9CQUFvQixXQUFXO0FBQUEsTUFDNUM7QUFHQSxjQUFRLFFBQVEsS0FBSyxXQUFXO0FBSWhDLHlDQUFtQyxTQUFTLGNBQWM7QUFHMUQsYUFBTyxVQUFVLGFBQWEsSUFBSTtBQUFBLElBQ3BDO0FBR0EsbUJBQWUsd0JBQ2IsYUFDQSx3QkFBd0IsT0FDeEIsdUJBQXVCLE9BQ3ZCO0FBRUEsWUFBTSxVQUFVLFlBQVk7QUFHNUIsVUFBSSxrQkFBa0I7QUFHdEIsVUFBSSxjQUFjO0FBR2xCLFVBQUksV0FBVztBQU1mLFlBQU0sWUFBWTtBQUdsQixZQUFNLG1CQUFtQjtBQU96QixVQUFJLFFBQVEsV0FBVyxlQUFlLFFBQVEsYUFBYSxTQUFTO0FBQ2xFLDBCQUFrQjtBQUNsQixzQkFBYztBQUFBLE1BQ2hCLE9BQU87QUFJTCxzQkFBYyxhQUFhLE9BQU87QUFHbEMsMEJBQWtCLEVBQUUsR0FBRyxZQUFZO0FBR25DLHdCQUFnQixVQUFVO0FBQUEsTUFDNUI7QUFHQSxZQUFNLHFCQUNKLFFBQVEsZ0JBQWdCLGFBQ3ZCLFFBQVEsZ0JBQWdCLGlCQUN2QixRQUFRLHFCQUFxQjtBQUlqQyxZQUFNLGdCQUFnQixZQUFZLE9BQU8sWUFBWSxLQUFLLFNBQVM7QUFHbkUsVUFBSSwyQkFBMkI7QUFJL0IsVUFDRSxZQUFZLFFBQVEsUUFDcEIsQ0FBQyxRQUFRLEtBQUssRUFBRSxTQUFTLFlBQVksTUFBTSxHQUMzQztBQUNBLG1DQUEyQjtBQUFBLE1BQzdCO0FBSUEsVUFBSSxpQkFBaUIsTUFBTTtBQUN6QixtQ0FBMkIsaUJBQWlCLEdBQUcsYUFBYSxFQUFFO0FBQUEsTUFDaEU7QUFLQSxVQUFJLDRCQUE0QixNQUFNO0FBQ3BDLG9CQUFZLFlBQVksT0FBTyxrQkFBa0IsMEJBQTBCLElBQUk7QUFBQSxNQUNqRjtBQU9BLFVBQUksaUJBQWlCLFFBQVEsWUFBWSxXQUFXO0FBQUEsTUFFcEQ7QUFLQSxVQUFJLFlBQVksb0JBQW9CLEtBQUs7QUFDdkMsb0JBQVksWUFBWSxPQUFPLFdBQVcsaUJBQWlCLFlBQVksU0FBUyxJQUFJLEdBQUcsSUFBSTtBQUFBLE1BQzdGO0FBR0EsZ0NBQTBCLFdBQVc7QUFHckMsMEJBQW9CLFdBQVc7QUFLL0IsVUFBSSxDQUFDLFlBQVksWUFBWSxTQUFTLGNBQWMsSUFBSSxHQUFHO0FBQ3pELG9CQUFZLFlBQVksT0FBTyxjQUFjLGdCQUFnQjtBQUFBLE1BQy9EO0FBTUEsVUFDRSxZQUFZLFVBQVUsY0FDckIsWUFBWSxZQUFZLFNBQVMscUJBQXFCLElBQUksS0FDekQsWUFBWSxZQUFZLFNBQVMsaUJBQWlCLElBQUksS0FDdEQsWUFBWSxZQUFZLFNBQVMsdUJBQXVCLElBQUksS0FDNUQsWUFBWSxZQUFZLFNBQVMsWUFBWSxJQUFJLEtBQ2pELFlBQVksWUFBWSxTQUFTLFlBQVksSUFBSSxJQUNuRDtBQUNBLG9CQUFZLFFBQVE7QUFBQSxNQUN0QjtBQU1BLFVBQ0UsWUFBWSxVQUFVLGNBQ3RCLENBQUMsWUFBWSxnREFDYixDQUFDLFlBQVksWUFBWSxTQUFTLGlCQUFpQixJQUFJLEdBQ3ZEO0FBQ0Esb0JBQVksWUFBWSxPQUFPLGlCQUFpQixhQUFhLElBQUk7QUFBQSxNQUNuRTtBQUdBLFVBQUksWUFBWSxVQUFVLGNBQWMsWUFBWSxVQUFVLFVBQVU7QUFHdEUsWUFBSSxDQUFDLFlBQVksWUFBWSxTQUFTLFVBQVUsSUFBSSxHQUFHO0FBQ3JELHNCQUFZLFlBQVksT0FBTyxVQUFVLFlBQVksSUFBSTtBQUFBLFFBQzNEO0FBSUEsWUFBSSxDQUFDLFlBQVksWUFBWSxTQUFTLGlCQUFpQixJQUFJLEdBQUc7QUFDNUQsc0JBQVksWUFBWSxPQUFPLGlCQUFpQixZQUFZLElBQUk7QUFBQSxRQUNsRTtBQUFBLE1BQ0Y7QUFJQSxVQUFJLFlBQVksWUFBWSxTQUFTLFNBQVMsSUFBSSxHQUFHO0FBQ25ELG9CQUFZLFlBQVksT0FBTyxtQkFBbUIsWUFBWSxJQUFJO0FBQUEsTUFDcEU7QUFLQSxVQUFJLENBQUMsWUFBWSxZQUFZLFNBQVMsbUJBQW1CLElBQUksR0FBRztBQUM5RCxZQUFJLGtCQUFrQixrQkFBa0IsV0FBVyxDQUFDLEdBQUc7QUFDckQsc0JBQVksWUFBWSxPQUFPLG1CQUFtQixxQkFBcUIsSUFBSTtBQUFBLFFBQzdFLE9BQU87QUFDTCxzQkFBWSxZQUFZLE9BQU8sbUJBQW1CLGlCQUFpQixJQUFJO0FBQUEsUUFDekU7QUFBQSxNQUNGO0FBRUEsa0JBQVksWUFBWSxPQUFPLFFBQVEsSUFBSTtBQUczQyxVQUFJLG9CQUFvQjtBQUFBLE1BTXhCO0FBV0EsVUFBSSxhQUFhLE1BQU07QUFDckIsb0JBQVksUUFBUTtBQUFBLE1BQ3RCO0FBSUEsVUFBSSxZQUFZLFVBQVUsY0FBYyxZQUFZLFVBQVUsVUFBVTtBQUFBLE1BRXhFO0FBTUEsVUFBSSxZQUFZLE1BQU07QUFHcEIsWUFBSSxZQUFZLFVBQVUsa0JBQWtCO0FBQzFDLGlCQUFPLGlCQUFpQixnQkFBZ0I7QUFBQSxRQUMxQztBQUlBLGNBQU0sa0JBQWtCLE1BQU07QUFBQSxVQUM1QjtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsUUFDRjtBQU1BLFlBQ0UsQ0FBQyxlQUFlLElBQUksWUFBWSxNQUFNLEtBQ3RDLGdCQUFnQixVQUFVLE9BQzFCLGdCQUFnQixVQUFVLEtBQzFCO0FBQUEsUUFFRjtBQUlBLFlBQUksb0JBQW9CLGdCQUFnQixXQUFXLEtBQUs7QUFBQSxRQUV4RDtBQUdBLFlBQUksWUFBWSxNQUFNO0FBRXBCLHFCQUFXO0FBQUEsUUFLYjtBQUFBLE1BQ0Y7QUFHQSxlQUFTLFVBQVUsQ0FBQyxHQUFHLFlBQVksT0FBTztBQUkxQyxVQUFJLFlBQVksWUFBWSxTQUFTLFNBQVMsSUFBSSxHQUFHO0FBQ25ELGlCQUFTLGlCQUFpQjtBQUFBLE1BQzVCO0FBR0EsZUFBUyw2QkFBNkI7QUFRdEMsVUFBSSxTQUFTLFdBQVcsS0FBSztBQUUzQixZQUFJLFFBQVEsV0FBVyxhQUFhO0FBQ2xDLGlCQUFPLGlCQUFpQjtBQUFBLFFBQzFCO0FBS0EsWUFBSSxZQUFZLFdBQVcsR0FBRztBQUM1QixpQkFBTyw0QkFBNEIsV0FBVztBQUFBLFFBQ2hEO0FBU0EsZUFBTyxpQkFBaUIsK0JBQStCO0FBQUEsTUFDekQ7QUFHQTtBQUFBO0FBQUEsUUFFRSxTQUFTLFdBQVc7QUFBQSxRQUVwQixDQUFDO0FBQUEsU0FFQSxRQUFRLFFBQVEsUUFBUSxRQUFRLEtBQUssVUFBVTtBQUFBLFFBQ2hEO0FBSUEsWUFBSSxZQUFZLFdBQVcsR0FBRztBQUM1QixpQkFBTyw0QkFBNEIsV0FBVztBQUFBLFFBQ2hEO0FBUUEsb0JBQVksV0FBVyxXQUFXLFFBQVE7QUFFMUMsbUJBQVcsTUFBTTtBQUFBLFVBQ2Y7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFFBQ0Y7QUFBQSxNQUNGO0FBR0EsVUFBSSx1QkFBdUI7QUFBQSxNQUUzQjtBQUdBLGFBQU87QUFBQSxJQUNUO0FBR0EsbUJBQWUsaUJBQ2IsYUFDQSxxQkFBcUIsT0FDckIscUJBQXFCLE9BQ3JCO0FBQ0EsYUFBTyxDQUFDLFlBQVksV0FBVyxjQUFjLFlBQVksV0FBVyxXQUFXLFNBQVM7QUFFeEYsa0JBQVksV0FBVyxhQUFhO0FBQUEsUUFDbEMsT0FBTztBQUFBLFFBQ1AsV0FBVztBQUFBLFFBQ1gsUUFBU0EsTUFBSyxRQUFRLE1BQU07QUFDMUIsY0FBSSxDQUFDLEtBQUssV0FBVztBQUNuQixpQkFBSyxZQUFZO0FBQ2pCLGdCQUFJLE9BQU87QUFDVCxtQkFBSyxRQUFRQSxRQUFPLElBQUksYUFBYSw4QkFBOEIsWUFBWSxDQUFDO0FBQUEsWUFDbEY7QUFBQSxVQUNGO0FBQUEsUUFDRjtBQUFBLE1BQ0Y7QUFHQSxZQUFNLFVBQVUsWUFBWTtBQUc1QixVQUFJLFdBQVc7QUFHZixZQUFNLGFBQWEsWUFBWTtBQUsvQixZQUFNLFlBQVk7QUFHbEIsVUFBSSxhQUFhLE1BQU07QUFDckIsZ0JBQVEsUUFBUTtBQUFBLE1BQ2xCO0FBUUEsWUFBTSxnQkFBZ0IscUJBQXFCLFFBQVE7QUFHbkQsVUFBSSxRQUFRLFNBQVMsYUFBYTtBQUFBLE1BSWxDLE9BQU87QUFBQSxNQUtQO0FBdURBLFVBQUksY0FBYztBQUlsQixVQUFJLFFBQVEsUUFBUSxRQUFRLFlBQVkseUJBQXlCO0FBQy9ELHVCQUFlLE1BQU0sWUFBWSx3QkFBd0IsQ0FBQztBQUFBLE1BQzVELFdBQVcsUUFBUSxRQUFRLE1BQU07QUFJL0IsY0FBTSxtQkFBbUIsaUJBQWtCLE9BQU87QUFFaEQsY0FBSSxZQUFZLFdBQVcsR0FBRztBQUM1QjtBQUFBLFVBQ0Y7QUFHQSxnQkFBTTtBQUlOLHNCQUFZLGdDQUFnQyxNQUFNLFVBQVU7QUFBQSxRQUM5RDtBQUdBLGNBQU0sbUJBQW1CLE1BQU07QUFFN0IsY0FBSSxZQUFZLFdBQVcsR0FBRztBQUM1QjtBQUFBLFVBQ0Y7QUFJQSxjQUFJLFlBQVkseUJBQXlCO0FBQ3ZDLHdCQUFZLHdCQUF3QjtBQUFBLFVBQ3RDO0FBQUEsUUFDRjtBQUdBLGNBQU0sbUJBQW1CLENBQUMsTUFBTTtBQUU5QixjQUFJLFlBQVksV0FBVyxHQUFHO0FBQzVCO0FBQUEsVUFDRjtBQUdBLGNBQUksRUFBRSxTQUFTLGNBQWM7QUFDM0Isd0JBQVksV0FBVyxNQUFNO0FBQUEsVUFDL0IsT0FBTztBQUNMLHdCQUFZLFdBQVcsVUFBVSxDQUFDO0FBQUEsVUFDcEM7QUFBQSxRQUNGO0FBSUEsdUJBQWUsbUJBQW9CO0FBQ2pDLGNBQUk7QUFDRiw2QkFBaUIsU0FBUyxRQUFRLEtBQUssUUFBUTtBQUM3QyxxQkFBUSxpQkFBaUIsS0FBSztBQUFBLFlBQ2hDO0FBQ0EsNkJBQWlCO0FBQUEsVUFDbkIsU0FBU0EsTUFBSztBQUNaLDZCQUFpQkEsSUFBRztBQUFBLFVBQ3RCO0FBQUEsUUFDRixHQUFHO0FBQUEsTUFDTDtBQUVBLFVBQUk7QUFFRixjQUFNLEVBQUUsTUFBTSxRQUFRLFlBQVksYUFBYSxPQUFPLElBQUksTUFBTSxTQUFTLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFOUYsWUFBSSxRQUFRO0FBQ1YscUJBQVcsYUFBYSxFQUFFLFFBQVEsWUFBWSxhQUFhLE9BQU8sQ0FBQztBQUFBLFFBQ3JFLE9BQU87QUFDTCxnQkFBTSxXQUFXLEtBQUssT0FBTyxhQUFhLEVBQUU7QUFDNUMsc0JBQVksV0FBVyxPQUFPLE1BQU0sU0FBUyxLQUFLO0FBRWxELHFCQUFXLGFBQWEsRUFBRSxRQUFRLFlBQVksWUFBWSxDQUFDO0FBQUEsUUFDN0Q7QUFBQSxNQUNGLFNBQVNBLE1BQUs7QUFFWixZQUFJQSxLQUFJLFNBQVMsY0FBYztBQUU3QixzQkFBWSxXQUFXLFdBQVcsUUFBUTtBQUcxQyxpQkFBTyw0QkFBNEIsYUFBYUEsSUFBRztBQUFBLFFBQ3JEO0FBRUEsZUFBTyxpQkFBaUJBLElBQUc7QUFBQSxNQUM3QjtBQUlBLFlBQU0sZ0JBQWdCLFlBQVk7QUFDaEMsY0FBTSxZQUFZLFdBQVcsT0FBTztBQUFBLE1BQ3RDO0FBSUEsWUFBTSxrQkFBa0IsQ0FBQyxXQUFXO0FBR2xDLFlBQUksQ0FBQyxZQUFZLFdBQVcsR0FBRztBQUM3QixzQkFBWSxXQUFXLE1BQU0sTUFBTTtBQUFBLFFBQ3JDO0FBQUEsTUFDRjtBQWFBLFlBQU1DLFVBQVMsSUFBSTtBQUFBLFFBQ2pCO0FBQUEsVUFDRSxNQUFNLE1BQU8sWUFBWTtBQUN2Qix3QkFBWSxXQUFXLGFBQWE7QUFBQSxVQUN0QztBQUFBLFVBQ0EsTUFBTSxLQUFNLFlBQVk7QUFDdEIsa0JBQU0sY0FBYyxVQUFVO0FBQUEsVUFDaEM7QUFBQSxVQUNBLE1BQU0sT0FBUSxRQUFRO0FBQ3BCLGtCQUFNLGdCQUFnQixNQUFNO0FBQUEsVUFDOUI7QUFBQSxVQUNBLE1BQU07QUFBQSxRQUNSO0FBQUEsTUFDRjtBQUtBLGVBQVMsT0FBTyxFQUFFLFFBQUFBLFNBQVEsUUFBUSxNQUFNLFFBQVEsS0FBSztBQW1CckQsa0JBQVksV0FBVyxZQUFZO0FBQ25DLGtCQUFZLFdBQVcsR0FBRyxjQUFjLFNBQVM7QUFDakQsa0JBQVksV0FBVyxTQUFTLFlBQVk7QUFFMUMsZUFBTyxNQUFNO0FBS1gsY0FBSTtBQUNKLGNBQUk7QUFDSixjQUFJO0FBQ0Ysa0JBQU0sRUFBRSxNQUFNLE1BQU0sSUFBSSxNQUFNLFlBQVksV0FBVyxLQUFLO0FBRTFELGdCQUFJSixXQUFVLFdBQVcsR0FBRztBQUMxQjtBQUFBLFlBQ0Y7QUFFQSxvQkFBUSxPQUFPLFNBQVk7QUFBQSxVQUM3QixTQUFTRyxNQUFLO0FBQ1osZ0JBQUksWUFBWSxXQUFXLFNBQVMsQ0FBQyxXQUFXLGlCQUFpQjtBQUUvRCxzQkFBUTtBQUFBLFlBQ1YsT0FBTztBQUNMLHNCQUFRQTtBQUlSLDBCQUFZO0FBQUEsWUFDZDtBQUFBLFVBQ0Y7QUFFQSxjQUFJLFVBQVUsUUFBVztBQUt2QixnQ0FBb0IsWUFBWSxXQUFXLFVBQVU7QUFFckQsNkJBQWlCLGFBQWEsUUFBUTtBQUV0QztBQUFBLFVBQ0Y7QUFHQSxxQkFBVyxtQkFBbUIsT0FBTyxjQUFjO0FBR25ELGNBQUksV0FBVztBQUNiLHdCQUFZLFdBQVcsVUFBVSxLQUFLO0FBQ3RDO0FBQUEsVUFDRjtBQUlBLGdCQUFNLFNBQVMsSUFBSSxXQUFXLEtBQUs7QUFDbkMsY0FBSSxPQUFPLFlBQVk7QUFDckIsd0JBQVksV0FBVyxXQUFXLFFBQVEsTUFBTTtBQUFBLFVBQ2xEO0FBR0EsY0FBSSxVQUFVQyxPQUFNLEdBQUc7QUFDckIsd0JBQVksV0FBVyxVQUFVO0FBQ2pDO0FBQUEsVUFDRjtBQUlBLGNBQUksWUFBWSxXQUFXLFdBQVcsZUFBZSxHQUFHO0FBQ3REO0FBQUEsVUFDRjtBQUFBLFFBQ0Y7QUFBQSxNQUNGO0FBR0EsZUFBUyxVQUFXLFFBQVE7QUFFMUIsWUFBSUosV0FBVSxXQUFXLEdBQUc7QUFFMUIsbUJBQVMsVUFBVTtBQU1uQixjQUFJLFdBQVdJLE9BQU0sR0FBRztBQUN0Qix3QkFBWSxXQUFXLFdBQVc7QUFBQSxjQUNoQyxZQUFZLFdBQVc7QUFBQSxZQUN6QjtBQUFBLFVBQ0Y7QUFBQSxRQUNGLE9BQU87QUFFTCxjQUFJLFdBQVdBLE9BQU0sR0FBRztBQUN0Qix3QkFBWSxXQUFXLFdBQVcsTUFBTSxJQUFJLFVBQVUsY0FBYztBQUFBLGNBQ2xFLE9BQU8sWUFBWSxNQUFNLElBQUksU0FBUztBQUFBLFlBQ3hDLENBQUMsQ0FBQztBQUFBLFVBQ0o7QUFBQSxRQUNGO0FBSUEsb0JBQVksV0FBVyxXQUFXLFFBQVE7QUFBQSxNQUM1QztBQUdBLGFBQU87QUFFUCxlQUFTLFNBQVUsRUFBRSxLQUFLLEdBQUc7QUFDM0IsY0FBTUMsT0FBTSxrQkFBa0IsT0FBTztBQUVyQyxjQUFNLFFBQVEsWUFBWSxXQUFXO0FBRXJDLGVBQU8sSUFBSSxRQUFRLENBQUMsU0FBUyxXQUFXLE1BQU07QUFBQSxVQUM1QztBQUFBLFlBQ0UsTUFBTUEsS0FBSSxXQUFXQSxLQUFJO0FBQUEsWUFDekIsUUFBUUEsS0FBSTtBQUFBLFlBQ1osUUFBUSxRQUFRO0FBQUEsWUFDaEIsTUFBTSxNQUFNLGVBQWUsUUFBUSxTQUFTLFFBQVEsS0FBSyxVQUFVLFFBQVEsS0FBSyxVQUFVO0FBQUEsWUFDMUYsU0FBUyxRQUFRLFlBQVk7QUFBQSxZQUM3QixpQkFBaUI7QUFBQSxZQUNqQixTQUFTLFFBQVEsU0FBUyxjQUFjLGNBQWM7QUFBQSxVQUN4RDtBQUFBLFVBQ0E7QUFBQSxZQUNFLE1BQU07QUFBQSxZQUNOLE9BQU87QUFBQSxZQUVQLFVBQVcsT0FBTztBQUVoQixvQkFBTSxFQUFFLFdBQVcsSUFBSSxZQUFZO0FBTW5DLHlCQUFXLDRCQUE0QixvQ0FBb0MsUUFBVyxXQUFXLHVCQUF1QixZQUFZLDZCQUE2QjtBQUVqSyxrQkFBSSxXQUFXLFdBQVc7QUFDeEIsc0JBQU0sSUFBSSxhQUFhLDhCQUE4QixZQUFZLENBQUM7QUFBQSxjQUNwRSxPQUFPO0FBQ0wsNEJBQVksV0FBVyxHQUFHLGNBQWMsS0FBSztBQUM3QyxxQkFBSyxRQUFRLFdBQVcsUUFBUTtBQUFBLGNBQ2xDO0FBSUEseUJBQVcsK0JBQStCLDJCQUEyQixZQUFZLDZCQUE2QjtBQUFBLFlBQ2hIO0FBQUEsWUFFQSxvQkFBcUI7QUFLbkIseUJBQVcsZ0NBQWdDLDJCQUEyQixZQUFZLDZCQUE2QjtBQUFBLFlBQ2pIO0FBQUEsWUFFQSxVQUFXLFFBQVEsWUFBWSxRQUFRLFlBQVk7QUFDakQsa0JBQUksU0FBUyxLQUFLO0FBQ2hCO0FBQUEsY0FDRjtBQUdBLGtCQUFJLFVBQVUsQ0FBQztBQUNmLGtCQUFJLFdBQVc7QUFFZixvQkFBTSxjQUFjLElBQUksWUFBWTtBQUVwQyx1QkFBUyxJQUFJLEdBQUcsSUFBSSxXQUFXLFFBQVEsS0FBSyxHQUFHO0FBQzdDLDRCQUFZLE9BQU8sNkJBQTZCLFdBQVcsQ0FBQyxDQUFDLEdBQUcsV0FBVyxJQUFJLENBQUMsRUFBRSxTQUFTLFFBQVEsR0FBRyxJQUFJO0FBQUEsY0FDNUc7QUFDQSxvQkFBTSxrQkFBa0IsWUFBWSxJQUFJLG9CQUFvQixJQUFJO0FBQ2hFLGtCQUFJLGlCQUFpQjtBQUduQiwwQkFBVSxnQkFBZ0IsWUFBWSxFQUFFLE1BQU0sR0FBRyxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDO0FBQUEsY0FDeEU7QUFDQSx5QkFBVyxZQUFZLElBQUksWUFBWSxJQUFJO0FBRTNDLG1CQUFLLE9BQU8sSUFBSUosVUFBUyxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBRXpDLG9CQUFNLFdBQVcsQ0FBQztBQUVsQixvQkFBTSxhQUFhLFlBQVksUUFBUSxhQUFhLFlBQ2xELGtCQUFrQixJQUFJLE1BQU07QUFHOUIsa0JBQUksUUFBUSxXQUFXLEtBQUssUUFBUSxXQUFXLFVBQVUsUUFBUSxXQUFXLGFBQWEsQ0FBQyxlQUFlLFNBQVMsTUFBTSxLQUFLLENBQUMsWUFBWTtBQUN4SSx5QkFBUyxJQUFJLFFBQVEsU0FBUyxHQUFHLEtBQUssR0FBRyxFQUFFLEdBQUc7QUFDNUMsd0JBQU0sU0FBUyxRQUFRLENBQUM7QUFFeEIsc0JBQUksV0FBVyxZQUFZLFdBQVcsUUFBUTtBQUM1Qyw2QkFBUyxLQUFLRixNQUFLLGFBQWE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLHNCQUs5QixPQUFPQSxNQUFLLFVBQVU7QUFBQSxzQkFDdEIsYUFBYUEsTUFBSyxVQUFVO0FBQUEsb0JBQzlCLENBQUMsQ0FBQztBQUFBLGtCQUNKLFdBQVcsV0FBVyxXQUFXO0FBQy9CLDZCQUFTLEtBQUssY0FBYztBQUFBLHNCQUMxQixPQUFPQSxNQUFLLFVBQVU7QUFBQSxzQkFDdEIsYUFBYUEsTUFBSyxVQUFVO0FBQUEsb0JBQzlCLENBQUMsQ0FBQztBQUFBLGtCQUNKLFdBQVcsV0FBVyxNQUFNO0FBQzFCLDZCQUFTLEtBQUtBLE1BQUssdUJBQXVCO0FBQUEsc0JBQ3hDLE9BQU9BLE1BQUssVUFBVTtBQUFBLHNCQUN0QixhQUFhQSxNQUFLLFVBQVU7QUFBQSxvQkFDOUIsQ0FBQyxDQUFDO0FBQUEsa0JBQ0osT0FBTztBQUNMLDZCQUFTLFNBQVM7QUFDbEI7QUFBQSxrQkFDRjtBQUFBLGdCQUNGO0FBQUEsY0FDRjtBQUVBLG9CQUFNLFVBQVUsS0FBSyxRQUFRLEtBQUssSUFBSTtBQUV0QyxzQkFBUTtBQUFBLGdCQUNOO0FBQUEsZ0JBQ0E7QUFBQSxnQkFDQTtBQUFBLGdCQUNBLE1BQU0sU0FBUyxTQUNYLFNBQVMsS0FBSyxNQUFNLEdBQUcsVUFBVSxDQUFDSSxTQUFRO0FBQzFDLHNCQUFJQSxNQUFLO0FBQ1AseUJBQUssUUFBUUEsSUFBRztBQUFBLGtCQUNsQjtBQUFBLGdCQUNGLENBQUMsRUFBRSxHQUFHLFNBQVMsT0FBTyxJQUNwQixLQUFLLEtBQUssR0FBRyxTQUFTLE9BQU87QUFBQSxjQUNuQyxDQUFDO0FBRUQscUJBQU87QUFBQSxZQUNUO0FBQUEsWUFFQSxPQUFRLE9BQU87QUFDYixrQkFBSSxZQUFZLFdBQVcsTUFBTTtBQUMvQjtBQUFBLGNBQ0Y7QUFNQSxvQkFBTSxRQUFRO0FBT2QseUJBQVcsbUJBQW1CLE1BQU07QUFJcEMscUJBQU8sS0FBSyxLQUFLLEtBQUssS0FBSztBQUFBLFlBQzdCO0FBQUEsWUFFQSxhQUFjO0FBQ1osa0JBQUksS0FBSyxPQUFPO0FBQ2QsNEJBQVksV0FBVyxJQUFJLGNBQWMsS0FBSyxLQUFLO0FBQUEsY0FDckQ7QUFFQSxrQkFBSSxZQUFZLFdBQVcsV0FBVztBQUNwQyw0QkFBWSxXQUFXLElBQUksY0FBYyxZQUFZLFdBQVcsU0FBUztBQUFBLGNBQzNFO0FBRUEsMEJBQVksV0FBVyxRQUFRO0FBRS9CLG1CQUFLLEtBQUssS0FBSyxJQUFJO0FBQUEsWUFDckI7QUFBQSxZQUVBLFFBQVMsT0FBTztBQUNkLGtCQUFJLEtBQUssT0FBTztBQUNkLDRCQUFZLFdBQVcsSUFBSSxjQUFjLEtBQUssS0FBSztBQUFBLGNBQ3JEO0FBRUEsbUJBQUssTUFBTSxRQUFRLEtBQUs7QUFFeEIsMEJBQVksV0FBVyxVQUFVLEtBQUs7QUFFdEMscUJBQU8sS0FBSztBQUFBLFlBQ2Q7QUFBQSxZQUVBLFVBQVcsUUFBUSxZQUFZLFFBQVE7QUFDckMsa0JBQUksV0FBVyxLQUFLO0FBQ2xCO0FBQUEsY0FDRjtBQUVBLG9CQUFNLGNBQWMsSUFBSSxZQUFZO0FBRXBDLHVCQUFTLElBQUksR0FBRyxJQUFJLFdBQVcsUUFBUSxLQUFLLEdBQUc7QUFDN0MsNEJBQVksT0FBTyw2QkFBNkIsV0FBVyxDQUFDLENBQUMsR0FBRyxXQUFXLElBQUksQ0FBQyxFQUFFLFNBQVMsUUFBUSxHQUFHLElBQUk7QUFBQSxjQUM1RztBQUVBLHNCQUFRO0FBQUEsZ0JBQ047QUFBQSxnQkFDQSxZQUFZLGFBQWEsTUFBTTtBQUFBLGdCQUMvQjtBQUFBLGdCQUNBO0FBQUEsY0FDRixDQUFDO0FBRUQscUJBQU87QUFBQSxZQUNUO0FBQUEsVUFDRjtBQUFBLFFBQ0YsQ0FBQztBQUFBLE1BQ0g7QUFBQSxJQUNGO0FBRUEsSUFBQU4sUUFBTyxVQUFVO0FBQUEsTUFDZixPQUFBSztBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLElBQ0Y7QUFBQTtBQUFBOzs7QUN6dEVBLElBQUFJLG1CQUFBO0FBQUEsbURBQUFDLFVBQUFDLFNBQUE7QUFBQTtBQUVBLElBQUFBLFFBQU8sVUFBVTtBQUFBLE1BQ2YsUUFBUSxPQUFPLGtCQUFrQjtBQUFBLE1BQ2pDLFNBQVMsT0FBTyxtQkFBbUI7QUFBQSxNQUNuQyxRQUFRLE9BQU8sa0JBQWtCO0FBQUEsTUFDakMseUJBQXlCLE9BQU8sZ0RBQWdEO0FBQUEsTUFDaEYsU0FBUyxPQUFPLG1CQUFtQjtBQUFBLE1BQ25DLFVBQVUsT0FBTyxvQkFBb0I7QUFBQSxJQUN2QztBQUFBO0FBQUE7OztBQ1RBO0FBQUEseURBQUFDLFVBQUFDLFNBQUE7QUFBQTtBQUVBLFFBQU0sRUFBRSxPQUFPLElBQUk7QUFFbkIsUUFBTSxTQUFTLE9BQU8scUJBQXFCO0FBSzNDLFFBQU0sZ0JBQU4sTUFBTSx1QkFBc0IsTUFBTTtBQUFBLE1BQ2hDLFlBQWEsTUFBTSxnQkFBZ0IsQ0FBQyxHQUFHO0FBQ3JDLGVBQU8sT0FBTyxXQUFXLFVBQVUsTUFBTSw2QkFBNkIsTUFBTTtBQUM1RSx3QkFBZ0IsT0FBTyxXQUFXLGtCQUFrQixpQkFBaUIsQ0FBQyxDQUFDO0FBRXZFLGNBQU0sTUFBTSxhQUFhO0FBRXpCLGFBQUssTUFBTSxJQUFJO0FBQUEsVUFDYixrQkFBa0IsY0FBYztBQUFBLFVBQ2hDLFFBQVEsY0FBYztBQUFBLFVBQ3RCLE9BQU8sY0FBYztBQUFBLFFBQ3ZCO0FBQUEsTUFDRjtBQUFBLE1BRUEsSUFBSSxtQkFBb0I7QUFDdEIsZUFBTyxXQUFXLE1BQU0sY0FBYTtBQUVyQyxlQUFPLEtBQUssTUFBTSxFQUFFO0FBQUEsTUFDdEI7QUFBQSxNQUVBLElBQUksU0FBVTtBQUNaLGVBQU8sV0FBVyxNQUFNLGNBQWE7QUFFckMsZUFBTyxLQUFLLE1BQU0sRUFBRTtBQUFBLE1BQ3RCO0FBQUEsTUFFQSxJQUFJLFFBQVM7QUFDWCxlQUFPLFdBQVcsTUFBTSxjQUFhO0FBRXJDLGVBQU8sS0FBSyxNQUFNLEVBQUU7QUFBQSxNQUN0QjtBQUFBLElBQ0Y7QUFFQSxXQUFPLFdBQVcsb0JBQW9CLE9BQU8sb0JBQW9CO0FBQUEsTUFDL0Q7QUFBQSxRQUNFLEtBQUs7QUFBQSxRQUNMLFdBQVcsT0FBTyxXQUFXO0FBQUEsUUFDN0IsY0FBYyxNQUFNO0FBQUEsTUFDdEI7QUFBQSxNQUNBO0FBQUEsUUFDRSxLQUFLO0FBQUEsUUFDTCxXQUFXLE9BQU8sV0FBVyxvQkFBb0I7QUFBQSxRQUNqRCxjQUFjLE1BQU07QUFBQSxNQUN0QjtBQUFBLE1BQ0E7QUFBQSxRQUNFLEtBQUs7QUFBQSxRQUNMLFdBQVcsT0FBTyxXQUFXLG9CQUFvQjtBQUFBLFFBQ2pELGNBQWMsTUFBTTtBQUFBLE1BQ3RCO0FBQUEsTUFDQTtBQUFBLFFBQ0UsS0FBSztBQUFBLFFBQ0wsV0FBVyxPQUFPLFdBQVc7QUFBQSxRQUM3QixjQUFjLE1BQU07QUFBQSxNQUN0QjtBQUFBLE1BQ0E7QUFBQSxRQUNFLEtBQUs7QUFBQSxRQUNMLFdBQVcsT0FBTyxXQUFXO0FBQUEsUUFDN0IsY0FBYyxNQUFNO0FBQUEsTUFDdEI7QUFBQSxNQUNBO0FBQUEsUUFDRSxLQUFLO0FBQUEsUUFDTCxXQUFXLE9BQU8sV0FBVztBQUFBLFFBQzdCLGNBQWMsTUFBTTtBQUFBLE1BQ3RCO0FBQUEsSUFDRixDQUFDO0FBRUQsSUFBQUEsUUFBTyxVQUFVO0FBQUEsTUFDZjtBQUFBLElBQ0Y7QUFBQTtBQUFBOzs7QUM3RUE7QUFBQSxvREFBQUMsVUFBQUMsU0FBQTtBQUFBO0FBTUEsYUFBU0MsYUFBYSxPQUFPO0FBQzNCLFVBQUksQ0FBQyxPQUFPO0FBQ1YsZUFBTztBQUFBLE1BQ1Q7QUFNQSxjQUFRLE1BQU0sS0FBSyxFQUFFLFlBQVksR0FBRztBQUFBLFFBQ2xDLEtBQUs7QUFBQSxRQUNMLEtBQUs7QUFBQSxRQUNMLEtBQUs7QUFBQSxRQUNMLEtBQUs7QUFBQSxRQUNMLEtBQUs7QUFBQSxRQUNMLEtBQUs7QUFDSCxpQkFBTztBQUFBLFFBQ1QsS0FBSztBQUFBLFFBQ0wsS0FBSztBQUFBLFFBQ0wsS0FBSztBQUFBLFFBQ0wsS0FBSztBQUNILGlCQUFPO0FBQUEsUUFDVCxLQUFLO0FBQUEsUUFDTCxLQUFLO0FBQUEsUUFDTCxLQUFLO0FBQUEsUUFDTCxLQUFLO0FBQUEsUUFDTCxLQUFLO0FBQUEsUUFDTCxLQUFLO0FBQUEsUUFDTCxLQUFLO0FBQUEsUUFDTCxLQUFLO0FBQUEsUUFDTCxLQUFLO0FBQ0gsaUJBQU87QUFBQSxRQUNULEtBQUs7QUFBQSxRQUNMLEtBQUs7QUFBQSxRQUNMLEtBQUs7QUFBQSxRQUNMLEtBQUs7QUFBQSxRQUNMLEtBQUs7QUFBQSxRQUNMLEtBQUs7QUFBQSxRQUNMLEtBQUs7QUFBQSxRQUNMLEtBQUs7QUFBQSxRQUNMLEtBQUs7QUFDSCxpQkFBTztBQUFBLFFBQ1QsS0FBSztBQUFBLFFBQ0wsS0FBSztBQUFBLFFBQ0wsS0FBSztBQUFBLFFBQ0wsS0FBSztBQUFBLFFBQ0wsS0FBSztBQUFBLFFBQ0wsS0FBSztBQUFBLFFBQ0wsS0FBSztBQUFBLFFBQ0wsS0FBSztBQUFBLFFBQ0wsS0FBSztBQUNILGlCQUFPO0FBQUEsUUFDVCxLQUFLO0FBQUEsUUFDTCxLQUFLO0FBQUEsUUFDTCxLQUFLO0FBQUEsUUFDTCxLQUFLO0FBQUEsUUFDTCxLQUFLO0FBQUEsUUFDTCxLQUFLO0FBQUEsUUFDTCxLQUFLO0FBQUEsUUFDTCxLQUFLO0FBQ0gsaUJBQU87QUFBQSxRQUNULEtBQUs7QUFBQSxRQUNMLEtBQUs7QUFBQSxRQUNMLEtBQUs7QUFBQSxRQUNMLEtBQUs7QUFBQSxRQUNMLEtBQUs7QUFBQSxRQUNMLEtBQUs7QUFBQSxRQUNMLEtBQUs7QUFBQSxRQUNMLEtBQUs7QUFBQSxRQUNMLEtBQUs7QUFBQSxRQUNMLEtBQUs7QUFBQSxRQUNMLEtBQUs7QUFBQSxRQUNMLEtBQUs7QUFBQSxRQUNMLEtBQUs7QUFBQSxRQUNMLEtBQUs7QUFDSCxpQkFBTztBQUFBLFFBQ1QsS0FBSztBQUFBLFFBQ0wsS0FBSztBQUFBLFFBQ0wsS0FBSztBQUFBLFFBQ0wsS0FBSztBQUFBLFFBQ0wsS0FBSztBQUFBLFFBQ0wsS0FBSztBQUFBLFFBQ0wsS0FBSztBQUFBLFFBQ0wsS0FBSztBQUFBLFFBQ0wsS0FBSztBQUFBLFFBQ0wsS0FBSztBQUFBLFFBQ0wsS0FBSztBQUFBLFFBQ0wsS0FBSztBQUNILGlCQUFPO0FBQUEsUUFDVCxLQUFLO0FBQUEsUUFDTCxLQUFLO0FBQUEsUUFDTCxLQUFLO0FBQUEsUUFDTCxLQUFLO0FBQUEsUUFDTCxLQUFLO0FBQUEsUUFDTCxLQUFLO0FBQUEsUUFDTCxLQUFLO0FBQUEsUUFDTCxLQUFLO0FBQUEsUUFDTCxLQUFLO0FBQUEsUUFDTCxLQUFLO0FBQUEsUUFDTCxLQUFLO0FBQ0gsaUJBQU87QUFBQSxRQUNULEtBQUs7QUFBQSxRQUNMLEtBQUs7QUFBQSxRQUNMLEtBQUs7QUFDSCxpQkFBTztBQUFBLFFBQ1QsS0FBSztBQUFBLFFBQ0wsS0FBSztBQUFBLFFBQ0wsS0FBSztBQUFBLFFBQ0wsS0FBSztBQUFBLFFBQ0wsS0FBSztBQUFBLFFBQ0wsS0FBSztBQUFBLFFBQ0wsS0FBSztBQUNILGlCQUFPO0FBQUEsUUFDVCxLQUFLO0FBQUEsUUFDTCxLQUFLO0FBQUEsUUFDTCxLQUFLO0FBQ0gsaUJBQU87QUFBQSxRQUNULEtBQUs7QUFBQSxRQUNMLEtBQUs7QUFBQSxRQUNMLEtBQUs7QUFDSCxpQkFBTztBQUFBLFFBQ1QsS0FBSztBQUFBLFFBQ0wsS0FBSztBQUFBLFFBQ0wsS0FBSztBQUFBLFFBQ0wsS0FBSztBQUFBLFFBQ0wsS0FBSztBQUFBLFFBQ0wsS0FBSztBQUNILGlCQUFPO0FBQUEsUUFDVCxLQUFLO0FBQ0gsaUJBQU87QUFBQSxRQUNULEtBQUs7QUFBQSxRQUNMLEtBQUs7QUFBQSxRQUNMLEtBQUs7QUFBQSxRQUNMLEtBQUs7QUFBQSxRQUNMLEtBQUs7QUFDSCxpQkFBTztBQUFBLFFBQ1QsS0FBSztBQUFBLFFBQ0wsS0FBSztBQUNILGlCQUFPO0FBQUEsUUFDVCxLQUFLO0FBQUEsUUFDTCxLQUFLO0FBQUEsUUFDTCxLQUFLO0FBQUEsUUFDTCxLQUFLO0FBQ0gsaUJBQU87QUFBQSxRQUNULEtBQUs7QUFBQSxRQUNMLEtBQUs7QUFBQSxRQUNMLEtBQUs7QUFBQSxRQUNMLEtBQUs7QUFBQSxRQUNMLEtBQUs7QUFDSCxpQkFBTztBQUFBLFFBQ1QsS0FBSztBQUFBLFFBQ0wsS0FBSztBQUFBLFFBQ0wsS0FBSztBQUNILGlCQUFPO0FBQUEsUUFDVCxLQUFLO0FBQUEsUUFDTCxLQUFLO0FBQUEsUUFDTCxLQUFLO0FBQ0gsaUJBQU87QUFBQSxRQUNULEtBQUs7QUFBQSxRQUNMLEtBQUs7QUFBQSxRQUNMLEtBQUs7QUFBQSxRQUNMLEtBQUs7QUFBQSxRQUNMLEtBQUs7QUFBQSxRQUNMLEtBQUs7QUFBQSxRQUNMLEtBQUs7QUFBQSxRQUNMLEtBQUs7QUFBQSxRQUNMLEtBQUs7QUFBQSxRQUNMLEtBQUs7QUFBQSxRQUNMLEtBQUs7QUFBQSxRQUNMLEtBQUs7QUFBQSxRQUNMLEtBQUs7QUFBQSxRQUNMLEtBQUs7QUFBQSxRQUNMLEtBQUs7QUFBQSxRQUNMLEtBQUs7QUFBQSxRQUNMLEtBQUs7QUFDSCxpQkFBTztBQUFBLFFBQ1QsS0FBSztBQUFBLFFBQ0wsS0FBSztBQUFBLFFBQ0wsS0FBSztBQUNILGlCQUFPO0FBQUEsUUFDVCxLQUFLO0FBQUEsUUFDTCxLQUFLO0FBQUEsUUFDTCxLQUFLO0FBQUEsUUFDTCxLQUFLO0FBQUEsUUFDTCxLQUFLO0FBQUEsUUFDTCxLQUFLO0FBQUEsUUFDTCxLQUFLO0FBQUEsUUFDTCxLQUFLO0FBQUEsUUFDTCxLQUFLO0FBQUEsUUFDTCxLQUFLO0FBQUEsUUFDTCxLQUFLO0FBQUEsUUFDTCxLQUFLO0FBQ0gsaUJBQU87QUFBQSxRQUNULEtBQUs7QUFBQSxRQUNMLEtBQUs7QUFBQSxRQUNMLEtBQUs7QUFDSCxpQkFBTztBQUFBLFFBQ1QsS0FBSztBQUFBLFFBQ0wsS0FBSztBQUFBLFFBQ0wsS0FBSztBQUNILGlCQUFPO0FBQUEsUUFDVCxLQUFLO0FBQUEsUUFDTCxLQUFLO0FBQUEsUUFDTCxLQUFLO0FBQ0gsaUJBQU87QUFBQSxRQUNULEtBQUs7QUFBQSxRQUNMLEtBQUs7QUFBQSxRQUNMLEtBQUs7QUFDSCxpQkFBTztBQUFBLFFBQ1QsS0FBSztBQUFBLFFBQ0wsS0FBSztBQUNILGlCQUFPO0FBQUEsUUFDVCxLQUFLO0FBQUEsUUFDTCxLQUFLO0FBQUEsUUFDTCxLQUFLO0FBQUEsUUFDTCxLQUFLO0FBQUEsUUFDTCxLQUFLO0FBQUEsUUFDTCxLQUFLO0FBQUEsUUFDTCxLQUFLO0FBQUEsUUFDTCxLQUFLO0FBQUEsUUFDTCxLQUFLO0FBQ0gsaUJBQU87QUFBQSxRQUNULEtBQUs7QUFDSCxpQkFBTztBQUFBLFFBQ1QsS0FBSztBQUFBLFFBQ0wsS0FBSztBQUFBLFFBQ0wsS0FBSztBQUFBLFFBQ0wsS0FBSztBQUFBLFFBQ0wsS0FBSztBQUNILGlCQUFPO0FBQUEsUUFDVCxLQUFLO0FBQUEsUUFDTCxLQUFLO0FBQUEsUUFDTCxLQUFLO0FBQ0gsaUJBQU87QUFBQSxRQUNULEtBQUs7QUFBQSxRQUNMLEtBQUs7QUFDSCxpQkFBTztBQUFBLFFBQ1QsS0FBSztBQUFBLFFBQ0wsS0FBSztBQUFBLFFBQ0wsS0FBSztBQUFBLFFBQ0wsS0FBSztBQUFBLFFBQ0wsS0FBSztBQUFBLFFBQ0wsS0FBSztBQUFBLFFBQ0wsS0FBSztBQUFBLFFBQ0wsS0FBSztBQUNILGlCQUFPO0FBQUEsUUFDVCxLQUFLO0FBQUEsUUFDTCxLQUFLO0FBQUEsUUFDTCxLQUFLO0FBQUEsUUFDTCxLQUFLO0FBQUEsUUFDTCxLQUFLO0FBQUEsUUFDTCxLQUFLO0FBQUEsUUFDTCxLQUFLO0FBQUEsUUFDTCxLQUFLO0FBQUEsUUFDTCxLQUFLO0FBQUEsUUFDTCxLQUFLO0FBQ0gsaUJBQU87QUFBQSxRQUNULEtBQUs7QUFBQSxRQUNMLEtBQUs7QUFBQSxRQUNMLEtBQUs7QUFBQSxRQUNMLEtBQUs7QUFBQSxRQUNMLEtBQUs7QUFBQSxRQUNMLEtBQUs7QUFDSCxpQkFBTztBQUFBLFFBQ1QsS0FBSztBQUFBLFFBQ0wsS0FBSztBQUNILGlCQUFPO0FBQUEsUUFDVCxLQUFLO0FBQUEsUUFDTCxLQUFLO0FBQUEsUUFDTCxLQUFL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QixPQUFPO0FBQUEsTUFDUCxPQUFPO0FBQUEsTUFDUCxPQUFPO0FBQUEsTUFDUCxPQUFPO0FBQUEsTUFDUCxPQUFPO0FBQUEsTUFDUCxPQUFPO0FBQUEsTUFDUCxPQUFPO0FBQUEsTUFDUCxPQUFPO0FBQUEsTUFDUCxPQUFPO0FBQUEsTUFDUCxPQUFPO0FBQUEsTUFDUCxPQUFPO0FBQUEsTUFDUCxPQUFPO0FBQUEsTUFDUCxPQUFPO0FBQUEsTUFDUCxPQUFPO0FBQUEsTUFDUCxPQUFPO0FBQUEsTUFDUCxPQUFPO0FBQUEsTUFDUCxPQUFPO0FBQUEsTUFDUCxPQUFPO0FBQUEsTUFDUCxPQUFPO0FBQUEsTUFDUCxPQUFPO0FBQUEsTUFDUCxPQUFPO0FBQUEsTUFDUCxPQUFPO0FBQUEsTUFDUCxPQUFPO0FBQUEsTUFDUCxPQUFPO0FBQUEsTUFDUCxPQUFPO0FBQUEsTUFDUCxPQUFPO0FBQUEsTUFDUCxPQUFPO0FBQUEsTUFDUCxPQUFPO0FBQUEsTUFDUCxPQUFPO0FBQUEsTUFDUCxPQUFPO0FBQUEsTUFDUCxPQUFPO0FBQUEsTUFDUCxPQUFPO0FBQUEsTUFDUCxPQUFPO0FBQUEsTUFDUCxPQUFPO0FBQUEsTUFDUCxPQUFPO0FBQUEsTUFDUCxPQUFPO0FBQUEsTUFDUCxPQUFPO0FBQUEsTUFDUCxPQUFPO0FBQUEsTUFDUCxPQUFPO0FBQUEsTUFDUCxPQUFPO0FBQUEsTUFDUCxPQUFPO0FBQUEsTUFDUCxPQUFPO0FBQUEsTUFDUCxPQUFPO0FBQUEsTUFDUCxPQUFPO0FBQUEsTUFDUCxPQUFPO0FBQUEsTUFDUCxPQUFPO0FBQUEsTUFDUCxPQUFPO0FBQUEsTUFDUCxPQUFPO0FBQUEsTUFDUCxPQUFPO0FBQUEsTUFDUCxPQUFPO0FBQUEsTUFDUCxPQUFPO0FBQUEsTUFDUCxPQUFPO0FBQUEsTUFDUCxPQUFPO0FBQUEsTUFDUCxPQUFPO0FBQUEsTUFDUCxPQUFPO0FBQUEsTUFDUCxPQUFPO0FBQUEsTUFDUCxPQUFPO0FBQUEsTUFDUCxPQUFPO0FBQUEsTUFDUCxPQUFPO0FBQUEsTUFDUCxPQUFPO0FBQUEsTUFD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TUFDVixVQUFVO0FBQUEsTUFDVixVQUFVO0FBQUEsTUFDVixVQUFVO0FBQUEsTUFDVixVQUFVO0FBQUEsTUFDVixVQUFVO0FBQUEsTUFDVixXQUFXO0FBQUEsTUFDWCxlQUFlO0FBQUEsTUFDZixlQUFlO0FBQUEsTUFDZixlQUFlO0FBQUEsTUFDZixlQUFlO0FBQUEsTUFDZixzQkFBc0I7QUFBQSxNQUN0QixvQkFBb0I7QUFBQSxNQUNwQixtQkFBbUI7QUFBQSxNQUNuQixvQkFBb0I7QUFBQSxNQUNwQixlQUFlO0FBQUEsTUFDZixlQUFlO0FBQUEsTUFDZixNQUFNO0FBQUEsTUFDTixNQUFNO0FBQUEsTUFDTixNQUFNO0FBQUEsTUFDTixNQUFNO0FBQUEsTUFDTixNQUFNO0FBQUEsTUFDTixNQUFNO0FBQUEsTUFDTixNQUFNO0FBQUEsTUFDTixNQUFNO0FBQUEsTUFDTixNQUFNO0FBQUEsTUFDTixPQUFPO0FBQUEsTUFDUCxXQUFXO0FBQUEsTUFDWCxXQUFXO0FBQUEsTUFDWCxZQUFZO0FBQUEsTUFDWixZQUFZO0FBQUEsTUFDWixZQUFZO0FBQUEsTUFDWixZQUFZO0FBQUEsTUFDWixZQUFZO0FBQUEsTUFDWixZQUFZO0FBQUEsTUFDWixZQUFZO0FBQUEsTUFDWixZQUFZO0FBQUEsTUFDWixZQUFZO0FBQUEsTUFDWixZQUFZO0FBQUEsTUFDWixZQUFZO0FBQUEsTUFDWixZQUFZO0FBQUEsTUFDWixZQUFZO0FBQUEsTUFDWixZQUFZO0FBQUEsTUFDWixZQUFZO0FBQUEsTUFDWixTQUFTO0FBQUEsTUFDVCxVQUFVO0FBQUEsTUFDVixZQUFZO0FBQUEsTUFDWixVQUFVO0FBQUEsTUFDVixXQUFXO0FBQUEsTUFDWCxXQUFXO0FBQUEsTUFDWCxXQUFXO0FBQUEsTUFDWCxTQUFTO0FBQUEsTUFDVCxVQUFVO0FBQUEsTUFDVixXQUFXO0FBQUEsTUFDWCxXQUFXO0FBQUEsTUFDWCxVQUFVO0FBQUEsTUFDVixXQUFXO0FBQUEsTUFDWCxXQUFXO0FBQUEsTUFDWCxZQUFZO0FBQUEsTUFDWixRQUFRO0FBQUEsTUFDUixTQUFTO0FBQUEsTUFDVCxVQUFVO0FBQUEsTUFDVixXQUFXO0FBQUEsTUFDWCxhQUFhO0FBQUEsTUFDYixXQUFXO0FBQUEsTUFDWCxlQUFlO0FBQUEsTUFDZixlQUFlO0FBQUEsTUFDZixTQUFTO0FBQUEsTUFDVCxTQUFTO0FBQUEsTUFDVCxTQUFTO0FBQUEsTUFDVCxTQUFTO0FBQUEsTUFDVCxTQUFTO0FBQUEsTUFDVCxvQkFBb0I7QUFBQSxNQUNwQixpQkFBaUI7QUFBQSxNQUNqQix1QkFBdUI7QUFBQSxNQUN2QixZQUFZO0FBQUEsTUFDWixzQkFBc0I7QUFBQSxNQUN0QixRQUFRO0FBQUEsTUFDUixRQUFRO0FBQUEsTUFDUixVQUFVO0FBQUEsTUFDVixVQUFVO0FBQUEsTUFDVixXQUFXO0FBQUEsTUFDWCxVQUFVO0FBQUEsTUFDVixVQUFVO0FBQUEsTUFDVixVQUFVO0FBQUEsTUFDVixjQUFjO0FBQUEsTUFDZCxXQUFXO0FBQUEsTUFDWCxTQUFTO0FBQUEsTUFDVCxVQUFVO0FBQUEsTUFDVixXQUFXO0FBQUEsTUFDWCxXQUFXO0FBQUEsTUFDWCxTQUFTO0FBQUEsTUFDVCxXQUFXO0FBQUEsTUFDWCxnQkFBZ0I7QUFBQSxNQUNoQixZQUFZO0FBQUEsTUFDWixhQUFhO0FBQUEsTUFDYixZQUFZO0FBQUEsTUFDWixNQUFNO0FBQUEsTUFDTixxQkFBcUI7QUFBQSxNQUNyQixrQkFBa0I7QUFBQSxNQUNsQixNQUFNO0FBQUEsTUFDTixjQUFjO0FBQUEsTUFDZCxNQUFNO0FBQUEsTUFDTixVQUFVO0FBQUEsTUFDVixXQUFXO0FBQUEsTUFDWCxXQUFXO0FBQUEsTUFDWCxPQUFPO0FBQUEsTUFDUCxlQUFlO0FBQUEsSUFDakI7QUFBQSxFQUNGO0FBQ0YsQ0FBQztBQUdELElBQUlvQiwrQkFBOEJwQixZQUFXO0FBQUEsRUFDM0MsaUZBQWlGLFVBQVUsU0FBUztBQUNsRztBQUNBLFlBQVEsVUFBVTtBQUFBLE1BQ2hCLE9BQU87QUFBQSxNQUNQLE9BQU87QUFBQSxNQUNQLE9BQU87QUFBQSxNQUNQLE9BQU87QUFBQSxNQUNQLE9BQU87QUFBQSxNQUNQLE9BQU87QUFBQSxNQUNQLE9BQU87QUFBQSxNQUNQLE9BQU87QUFBQSxNQUNQLE9BQU87QUFBQSxNQUNQLE9BQU87QUFBQSxNQUNQLE9BQU87QUFBQSxNQUNQLE9BQU87QUFBQSxNQUNQLE9BQU87QUFBQSxNQUNQLE9BQU87QUFBQSxNQUNQLE9BQU87QUFBQSxNQUNQLE9BQU87QUFBQSxNQUNQLE9BQU87QUFBQSxNQUNQLE9BQU87QUFBQSxNQUNQLE9BQU87QUFBQSxNQUNQLFFBQVE7QUFBQSxNQUNSLFFBQVE7QUFBQSxNQUNSLFFBQVE7QUFBQSxNQUNSLFFBQVE7QUFBQSxNQUNSLFFBQVE7QUFBQSxNQUNSLFFBQVE7QUFBQSxNQUNSLFFBQVE7QUFBQSxNQUNSLFFBQVE7QUFBQSxNQUNSLFFBQVE7QUFBQSxNQUNSLFFBQVE7QUFBQSxNQUNSLFFBQVE7QUFBQSxNQUNSLFFBQVE7QUFBQSxNQUNSLFFBQVE7QUFBQSxNQUNSLFFBQVE7QUFBQSxNQUNSLFFBQVE7QUFBQSxNQUNSLFFBQVE7QUFBQSxNQUNSLFFBQVE7QUFBQSxNQUNSLFNBQVM7QUFBQSxNQUNULFNBQVM7QUFBQSxNQUNULFNBQVM7QUFBQSxNQUNULFNBQVM7QUFBQSxNQUNULFNBQVM7QUFBQSxNQUNULFNBQVM7QUFBQSxNQUNULFNBQVM7QUFBQSxNQUNULFNBQVM7QUFBQSxNQUNULFNBQVM7QUFBQSxNQUNULFNBQVM7QUFBQSxNQUNULFNBQVM7QUFBQSxNQUNULFNBQVM7QUFBQSxNQUNULFNBQVM7QUFBQSxNQUNULFNBQVM7QUFBQSxNQUNULFNBQVM7QUFBQSxNQUNULGNBQWM7QUFBQSxRQUNaLFFBQVE7QUFBQSxRQUNSLFNBQVM7QUFBQSxNQUNYO0FBQUEsTUFDQSxVQUFVO0FBQUEsTUFDVixTQUFTO0FBQUEsTUFDVCxlQUFlO0FBQUEsUUFDYixRQUFRO0FBQUEsUUFDUixTQUFTO0FBQUEsTUFDWDtBQUFBLE1BQ0EsV0FBVztBQUFBLE1BQ1gsVUFBVTtBQUFBLE1BQ1YsZUFBZTtBQUFBLFFBQ2IsUUFBUTtBQUFBLFFBQ1IsU0FBUztBQUFBLE1BQ1g7QUFBQSxNQUNBLFdBQVc7QUFBQSxNQUNYLFVBQVU7QUFBQSxNQUNWLGVBQWU7QUFBQSxRQUNiLFFBQVE7QUFBQSxRQUNSLFNBQVM7QUFBQSxNQUNYO0FBQUEsTUFDQSxXQUFXO0FBQUEsTUFDWCxVQUFVO0FBQUEsTUFDVixlQUFlO0FBQUEsUUFDYixRQUFRO0FBQUEsUUFDUixTQUFTO0FBQUEsTUFDWDtBQUFBLE1BQ0EsV0FBVztBQUFBLE1BQ1gsVUFBVTtBQUFBLE1BQ1YsZUFBZTtBQUFBLFFBQ2IsUUFBUTtBQUFBLFFBQ1IsU0FBUztBQUFBLE1BQ1g7QUFBQSxNQUNBLFdBQVc7QUFBQSxNQUNYLFVBQVU7QUFBQSxNQUNWLGVBQWU7QUFBQSxRQUNiLFFBQVE7QUFBQSxRQUNSLFNBQVM7QUFBQSxNQUNYO0FBQUEsTUFDQSxXQUFXO0FBQUEsTUFDWCxVQUFVO0FBQUEsTUFDVixlQUFlO0FBQUEsUUFDYixRQUFRO0FBQUEsUUFDUixTQUFTO0FBQUEsTUFDWDtBQUFBLE1BQ0EsV0FBVztBQUFBLE1BQ1gsVUFBVTtBQUFBLE1BQ1YsZUFBZTtBQUFBLFFBQ2IsUUFBUTtBQUFBLFFBQ1IsU0FBUztBQUFBLE1BQ1g7QUFBQSxNQUNBLFdBQVc7QUFBQSxNQUNYLFVBQVU7QUFBQSxNQUNWLGVBQWU7QUFBQSxRQUNiLFFBQVE7QUFBQSxRQUNSLFNBQVM7QUFBQSxNQUNYO0FBQUEsTUFDQSxXQUFXO0FBQUEsTUFDWCxVQUFVO0FBQUEsTUFDVixZQUFZO0FBQUEsUUFDVixRQUFRO0FBQUEsUUFDUixTQUFTO0FBQUEsTUFDWDtBQUFBLE1BQ0EsV0FBVztBQUFBLE1BQ1gsWUFBWTtBQUFBLFFBQ1YsUUFBUTtBQUFBLFFBQ1IsU0FBUztBQUFBLE1BQ1g7QUFBQSxNQUNBLFdBQVc7QUFBQSxNQUNYLFlBQVk7QUFBQSxRQUNWLFFBQVE7QUFBQSxRQUNSLFNBQVM7QUFBQSxNQUNYO0FBQUEsTUFDQSxXQUFXO0FBQUEsTUFDWCxZQUFZO0FBQUEsUUFDVixRQUFRO0FBQUEsUUFDUixTQUFTO0FBQUEsTUFDWDtBQUFBLE1BQ0EsV0FBVztBQUFBLE1BQ1gsWUFBWTtBQUFBLFFBQ1YsUUFBUTtBQUFBLFFBQ1IsU0FBUztBQUFBLE1BQ1g7QUFBQSxNQUNBLFdBQVc7QUFBQSxNQUNYLFlBQVk7QUFBQSxRQUNWLFFBQVE7QUFBQSxRQUNSLFNBQVM7QUFBQSxNQUNYO0FBQUEsTUFDQSxXQUFXO0FBQUEsTUFDWCxZQUFZO0FBQUEsUUFDVixRQUFRO0FBQUEsUUFDUixTQUFTO0FBQUEsTUFDWDtBQUFBLE1BQ0EsV0FBVztBQUFBLE1BQ1gsWUFBWTtBQUFBLFFBQ1YsUUFBUTtBQUFBLFFBQ1IsU0FBUztBQUFBLE1BQ1g7QUFBQSxNQUNBLFdBQVc7QUFBQSxNQUNYLFlBQVk7QUFBQSxRQUNWLFFBQVE7QUFBQSxRQUNSLFNBQVM7QUFBQSxNQUNYO0FBQUEsTUFDQSxXQUFXO0FBQUEsTUFDWCxhQUFhO0FBQUEsUUFDWCxRQUFRO0FBQUEsUUFDUixTQUFTO0FBQUEsTUFDWDtBQUFBLE1BQ0EsV0FBVztBQUFBLE1BQ1gsYUFBYTtBQUFBLFFBQ1gsUUFBUTtBQUFBLFFBQ1IsU0FBUztBQUFBLE1BQ1g7QUFBQSxNQUNBLFdBQVc7QUFBQSxNQUNYLGFBQWE7QUFBQSxRQUNYLFFBQVE7QUFBQSxRQUNSLFNBQVM7QUFBQSxNQUNYO0FBQUEsTUFDQSxXQUFXO0FBQUEsTUFDWCxhQUFhO0FBQUEsUUFDWCxRQUFRO0FBQUEsUUFDUixTQUFTO0FBQUEsTUFDWDtBQUFBLE1BQ0EsV0FBVztBQUFBLE1BQ1gsYUFBYTtBQUFBLFFBQ1gsUUFBUTtBQUFBLFFBQ1IsU0FBUztBQUFBLE1BQ1g7QUFBQSxNQUNBLFdBQVc7QUFBQSxNQUNYLGFBQWE7QUFBQSxRQUNYLFFBQVE7QUFBQSxRQUNSLFNBQVM7QUFBQSxNQUNYO0FBQUEsTUFDQSxXQUFXO0FBQUEsTUFDWCxTQUFTO0FBQUEsUUFDUCxRQUFRO0FBQUEsUUFDUixTQUFTO0FBQUEsTUFDWDtBQUFBLE1BQ0EsVUFBVTtBQUFBLE1BQ1YsWUFBWTtBQUFBLE1BQ1osU0FBUztBQUFBLFFBQ1AsUUFBUTtBQUFBLFFBQ1IsU0FBUztBQUFBLE1BQ1g7QUFBQSxNQUNBLFVBQVU7QUFBQSxNQUNWLFlBQVk7QUFBQSxNQUNaLFNBQVM7QUFBQSxRQUNQLFFBQVE7QUFBQSxRQUNSLFNBQVM7QUFBQSxNQUNYO0FBQUEsTUFDQSxVQUFVO0FBQUEsTUFDVixZQUFZO0FBQUEsTUFDWixTQUFTO0FBQUEsUUFDUCxRQUFRO0FBQUEsUUFDUixTQUFTO0FBQUEsTUFDWDtBQUFBLE1BQ0EsVUFBVTtBQUFBLE1BQ1YsWUFBWTtBQUFBLE1BQ1osU0FBUztBQUFBLFFBQ1AsUUFBUTtBQUFBLFFBQ1IsU0FBUztBQUFBLE1BQ1g7QUFBQSxNQUNBLFVBQVU7QUFBQSxNQUNWLFlBQVk7QUFBQSxNQUNaLFNBQVM7QUFBQSxRQUNQLFFBQVE7QUFBQSxRQUNSLFNBQVM7QUFBQSxNQUNYO0FBQUEsTUFDQSxVQUFVO0FBQUEsTUFDVixZQUFZO0FBQUEsTUFDWixTQUFTO0FBQUEsUUFDUCxRQUFRO0FBQUEsUUFDUixTQUFTO0FBQUEsTUFDWDtBQUFBLE1BQ0EsVUFBVTtBQUFBLE1BQ1YsWUFBWTtBQUFBLE1BQ1osU0FBUztBQUFBLFFBQ1AsUUFBUTtBQUFBLFFBQ1IsU0FBUztBQUFBLE1BQ1g7QUFBQSxNQUNBLFVBQVU7QUFBQSxNQUNWLFlBQVk7QUFBQSxNQUNaLFNBQVM7QUFBQSxRQUNQLFFBQVE7QUFBQSxRQUNSLFNBQVM7QUFBQSxNQUNYO0FBQUEsTUFDQSxVQUFVO0FBQUEsTUFDVixZQUFZO0FBQUEsTUFDWixTQUFTO0FBQUEsUUFDUCxRQUFRO0FBQUEsUUFDUixTQUFTO0FBQUEsTUFDWDtBQUFBLE1BQ0EsVUFBVTtBQUFBLE1BQ1YsWUFBWTtBQUFBLE1BQ1osU0FBUztBQUFBLFFBQ1AsUUFBUTtBQUFBLFFBQ1IsU0FBUztBQUFBLE1BQ1g7QUFBQSxNQUNBLFVBQVU7QUFBQSxNQUNWLFlBQVk7QUFBQSxNQUNaLFNBQVM7QUFBQSxRQUNQLFFBQVE7QUFBQSxRQUNSLFNBQVM7QUFBQSxNQUNYO0FBQUEsTUFDQSxVQUFVO0FBQUEsTUFDVixZQUFZO0FBQUEsTUFDWixTQUFTO0FBQUEsUUFDUCxRQUFRO0FBQUEsUUFDUixTQUFTO0FBQUEsTUFDWDtBQUFBLE1BQ0EsVUFBVTtBQUFBLE1BQ1YsWUFBWTtBQUFBLE1BQ1osU0FBUztBQUFBLFFBQ1AsUUFBUTtBQUFBLFFBQ1IsU0FBUztBQUFBLE1BQ1g7QUFBQSxNQUNBLFVBQVU7QUFBQSxNQUNWLFlBQVk7QUFBQSxNQUNaLFNBQVM7QUFBQSxRQUNQLFFBQVE7QUFBQSxRQUNSLFNBQVM7QUFBQSxNQUNYO0FBQUEsTUFDQSxVQUFVO0FBQUEsTUFDVixZQUFZO0FBQUEsTUFDWixTQUFTO0FBQUEsUUFDUCxRQUFRO0FBQUEsUUFDUixTQUFTO0FBQUEsTUFDWDtBQUFBLE1BQ0EsVUFBVTtBQUFBLE1BQ1YsWUFBWTtBQUFBLE1BQ1osU0FBUztBQUFBLFFBQ1AsUUFBUTtBQUFBLFFBQ1IsU0FBUztBQUFBLE1BQ1g7QUFBQSxNQUNBLFVBQVU7QUFBQSxNQUNWLFlBQVk7QUFBQSxNQUNaLFNBQVM7QUFBQSxRQUNQLFFBQVE7QUFBQSxRQUNSLFNBQVM7QUFBQSxNQUNYO0FBQUEsTUFDQSxVQUFVO0FBQUEsTUFDVixZQUFZO0FBQUEsTUFDWixVQUFVO0FBQUEsUUFDUixRQUFRO0FBQUEsUUFDUixTQUFTO0FBQUEsTUFDWDtBQUFBLE1BQ0EsV0FBVztBQUFBLE1BQ1gsYUFBYTtBQUFBLE1BQ2IsVUFBVTtBQUFBLFFBQ1IsUUFBUTtBQUFBLFFBQ1IsU0FBUztBQUFBLE1BQ1g7QUFBQSxNQUNBLFdBQVc7QUFBQSxNQUNYLGFBQWE7QUFBQSxNQUNiLFVBQVU7QUFBQSxRQUNSLFFBQVE7QUFBQSxRQUNSLFNBQVM7QUFBQSxNQUNYO0FBQUEsTUFDQSxXQUFXO0FBQUEsTUFDWCxhQUFhO0FBQUEsTUFDYixVQUFVO0FBQUEsUUFDUixRQUFRO0FBQUEsUUFDUixTQUFTO0FBQUEsTUFDWDtBQUFBLE1BQ0EsV0FBVztBQUFBLE1BQ1gsYUFBYTtBQUFBLE1BQ2IsVUFBVTtBQUFBLFFBQ1IsUUFBUTtBQUFBLFFBQ1IsU0FBUztBQUFBLE1BQ1g7QUFBQSxNQUNBLFdBQVc7QUFBQSxNQUNYLGFBQWE7QUFBQSxNQUNiLFVBQVU7QUFBQSxRQUNSLFFBQVE7QUFBQSxRQUNSLFNBQVM7QUFBQSxNQUNYO0FBQUEsTUFDQSxXQUFXO0FBQUEsTUFDWCxhQUFhO0FBQUEsTUFDYixVQUFVO0FBQUEsUUFDUixRQUFRO0FBQUEsUUFDUixTQUFTO0FBQUEsTUFDWDtBQUFBLE1BQ0EsV0FBVztBQUFBLE1BQ1gsYUFBYTtBQUFBLE1BQ2IsVUFBVTtBQUFBLFFBQ1IsUUFBUTtBQUFBLFFBQ1IsU0FBUztBQUFBLE1BQ1g7QUFBQSxNQUNBLFdBQVc7QUFBQSxNQUNYLGFBQWE7QUFBQSxNQUNiLGVBQWU7QUFBQSxRQUNiLFFBQVE7QUFBQSxRQUNSLFNBQVM7QUFBQSxNQUNYO0FBQUEsTUFDQSxlQUFlO0FBQUEsUUFDYixRQUFRO0FBQUEsUUFDUixTQUFTO0FBQUEsTUFDWDtBQUFBLE1BQ0EsWUFBWTtBQUFBLFFBQ1YsUUFBUTtBQUFBLFFBQ1IsU0FBUztBQUFBLE1BQ1g7QUFBQSxNQUNBLGNBQWM7QUFBQSxRQUNaLFFBQVE7QUFBQSxRQUNSLFNBQVM7QUFBQSxNQUNYO0FBQUEsTUFDQSxZQUFZO0FBQUEsUUFDVixRQUFRO0FBQUEsUUFDUixTQUFTO0FBQUEsTUFDWDtBQUFBLE1BQ0EsY0FBYztBQUFBLFFBQ1osUUFBUTtBQUFBLFFBQ1IsU0FBUztBQUFBLE1BQ1g7QUFBQSxNQUNBLFdBQVc7QUFBQSxRQUNULFFBQVE7QUFBQSxRQUNSLFNBQVM7QUFBQSxNQUNYO0FBQUEsTUFDQSxjQUFjO0FBQUEsUUFDWixRQUFRO0FBQUEsUUFDUixTQUFTO0FBQUEsTUFDWDtBQUFBLE1BQ0EsY0FBYztBQUFBLFFBQ1osUUFBUTtBQUFBLFFBQ1IsU0FBUztBQUFBLE1BQ1g7QUFBQSxNQUNBLFNBQVM7QUFBQSxRQUNQLFFBQVE7QUFBQSxRQUNSLFNBQVM7QUFBQSxNQUNYO0FBQUEsTUFDQSxTQUFTO0FBQUEsUUFDUCxRQUFRO0FBQUEsUUFDUixTQUFTO0FBQUEsTUFDWDtBQUFBLE1BQ0EsVUFBVTtBQUFBLFFBQ1IsUUFBUTtBQUFBLFFBQ1IsU0FBUztBQUFBLE1BQ1g7QUFBQSxNQUNBLFNBQVM7QUFBQSxRQUNQLFFBQVE7QUFBQSxRQUNSLFNBQVM7QUFBQSxNQUNYO0FBQUEsTUFDQSxZQUFZO0FBQUEsUUFDVixRQUFRO0FBQUEsUUFDUixTQUFTO0FBQUEsTUFDWDtBQUFBLE1BQ0EsVUFBVTtBQUFBLFFBQ1IsUUFBUTtBQUFBLFFBQ1IsU0FBUztBQUFBLE1BQ1g7QUFBQSxNQUNBLFFBQVE7QUFBQSxRQUNOLFFBQVE7QUFBQSxRQUNSLFNBQVM7QUFBQSxNQUNYO0FBQUEsTUFDQSxtQkFBbUI7QUFBQSxRQUNqQixRQUFRO0FBQUEsUUFDUixTQUFTO0FBQUEsTUFDWDtBQUFBLE1BQ0EsY0FBYztBQUFBLFFBQ1osUUFBUTtBQUFBLFFBQ1IsU0FBUztBQUFBLE1BQ1g7QUFBQSxNQUNBLFNBQVM7QUFBQSxRQUNQLFFBQVE7QUFBQSxRQUNSLFNBQVM7QUFBQSxNQUNYO0FBQUEsTUFDQSxVQUFVO0FBQUEsUUFDUixRQUFRO0FBQUEsUUFDUixTQUFTO0FBQUEsTUFDWDtBQUFBLE1BQ0EsWUFBWTtBQUFBLFFBQ1YsUUFBUTtBQUFBLFFBQ1IsU0FBUztBQUFBLE1BQ1g7QUFBQSxNQUNBLFlBQVk7QUFBQSxRQUNWLFFBQVE7QUFBQSxRQUNSLFNBQVM7QUFBQSxNQUNYO0FBQUEsTUFDQSxZQUFZO0FBQUEsUUFDVixRQUFRO0FBQUEsUUFDUixTQUFTO0FBQUEsTUFDWDtBQUFBLE1BQ0EsYUFBYTtBQUFBLFFBQ1gsUUFBUTtBQUFBLFFBQ1IsU0FBUztBQUFBLE1BQ1g7QUFBQSxNQUNBLFNBQVM7QUFBQSxRQUNQLFFBQVE7QUFBQSxRQUNSLFNBQVM7QUFBQSxNQUNYO0FBQUEsTUFDQSxVQUFVO0FBQUEsUUFDUixRQUFRO0FBQUEsUUFDUixTQUFTO0FBQUEsTUFDWDtBQUFBLElBQ0Y7QUFBQSxFQUNGO0FBQ0YsQ0FBQztBQUdELElBQUlxQixzQkFBcUJyQixZQUFXO0FBQUEsRUFDbEMsd0VBQXdFLFVBQVU7QUFDaEY7QUFDQSxRQUFJLFVBQVVVLGVBQWMsRUFBRTtBQUM5QixhQUFTLFFBQVE7QUFDakIsUUFBSSxhQUFhO0FBQ2pCLFFBQUksZUFBZTtBQUNuQixRQUFJLFlBQVk7QUFDaEIsUUFBSSxhQUFhO0FBQ2pCLFFBQUksa0JBQWtCLElBQUksTUFBTSxHQUFHO0FBQ25DLFFBQUksV0FBVztBQUNmLFNBQUssSUFBSSxHQUFHLElBQUksS0FBSztBQUNuQixzQkFBZ0IsQ0FBQyxJQUFJO0FBQ3ZCLFFBQUk7QUFDSixhQUFTLFVBQVUsY0FBY0csUUFBTztBQUN0QyxXQUFLLGVBQWUsYUFBYTtBQUNqQyxVQUFJLENBQUM7QUFDSCxjQUFNLElBQUksTUFBTSx3Q0FBd0M7QUFDMUQsVUFBSSxDQUFDLGFBQWE7QUFDaEIsY0FBTSxJQUFJLE1BQU0sZUFBZSxLQUFLLGVBQWUsZ0JBQWdCO0FBQ3JFLFVBQUksZUFBZSxhQUFhLE1BQU07QUFDdEMsV0FBSyxlQUFlLENBQUM7QUFDckIsV0FBSyxhQUFhLENBQUMsSUFBSSxnQkFBZ0IsTUFBTSxDQUFDO0FBQzlDLFdBQUssaUJBQWlCLENBQUM7QUFDdkIsZUFBUyxLQUFLLEdBQUcsS0FBSyxhQUFhLFFBQVE7QUFDekMsYUFBSyxnQkFBZ0IsYUFBYSxFQUFFLENBQUM7QUFDdkMsVUFBSSxPQUFPLGFBQWEsWUFBWSxZQUFZO0FBQzlDLGFBQUssVUFBVSxhQUFhLFFBQVE7QUFDcEMsWUFBSSx5QkFBeUIsS0FBSyxhQUFhO0FBQy9DLGFBQUssYUFBYSxLQUFLLGdCQUFnQixNQUFNLENBQUMsQ0FBQztBQUMvQyxZQUFJLDBCQUEwQixLQUFLLGFBQWE7QUFDaEQsYUFBSyxhQUFhLEtBQUssZ0JBQWdCLE1BQU0sQ0FBQyxDQUFDO0FBQy9DLFlBQUksZ0JBQWdCLEtBQUssYUFBYSxDQUFDO0FBQ3ZDLGlCQUFTLEtBQUssS0FBSyxNQUFNLEtBQUssTUFBTTtBQUNsQyxjQUFJLGlCQUFpQixLQUFLLGFBQWEsYUFBYSxjQUFjLEVBQUUsQ0FBQztBQUNyRSxtQkFBUyxJQUFJLElBQUksS0FBSyxJQUFJLEtBQUs7QUFDN0IsZ0JBQUksZUFBZSxDQUFDLE1BQU0sWUFBWTtBQUNwQyw2QkFBZSxDQUFDLElBQUksYUFBYTtBQUFBLFlBQ25DLFdBQVcsZUFBZSxDQUFDLElBQUksWUFBWTtBQUN6QyxvQkFBTSxJQUFJLE1BQU0sMENBQTBDO0FBQUEsWUFDNUQ7QUFDQSxnQkFBSSxnQkFBZ0IsS0FBSyxhQUFhLGFBQWEsZUFBZSxDQUFDLENBQUM7QUFDcEUscUJBQVMsSUFBSSxLQUFLLEtBQUssS0FBSyxLQUFLO0FBQy9CLGtCQUFJLGNBQWMsQ0FBQyxNQUFNLFlBQVk7QUFDbkMsOEJBQWMsQ0FBQyxJQUFJLGFBQWE7QUFBQSxjQUNsQyxXQUFXLGNBQWMsQ0FBQyxNQUFNLGFBQWEseUJBQXlCO0FBQ3BFO0FBQUEsY0FDRixXQUFXLGNBQWMsQ0FBQyxJQUFJLFlBQVk7QUFDeEMsc0JBQU0sSUFBSSxNQUFNLDBDQUEwQztBQUFBLGNBQzVEO0FBQ0Esa0JBQUksaUJBQWlCLEtBQUssYUFBYSxhQUFhLGNBQWMsQ0FBQyxDQUFDO0FBQ3BFLHVCQUFTLElBQUksSUFBSSxLQUFLLElBQUksS0FBSztBQUM3QixvQkFBSSxlQUFlLENBQUMsTUFBTTtBQUN4QixpQ0FBZSxDQUFDLElBQUk7QUFBQSxjQUN4QjtBQUFBLFlBQ0Y7QUFBQSxVQUNGO0FBQUEsUUFDRjtBQUFBLE1BQ0Y7QUFDQSxXQUFLLHFCQUFxQkEsT0FBTTtBQUNoQyxXQUFLLGNBQWMsQ0FBQztBQUNwQixXQUFLLGlCQUFpQixDQUFDO0FBQ3ZCLFVBQUksa0JBQWtCLENBQUM7QUFDdkIsVUFBSSxhQUFhO0FBQ2YsaUJBQVMsS0FBSyxHQUFHLEtBQUssYUFBYSxlQUFlLFFBQVEsTUFBTTtBQUM5RCxjQUFJUixPQUFNLGFBQWEsZUFBZSxFQUFFO0FBQ3hDLGNBQUksT0FBT0EsU0FBUTtBQUNqQiw0QkFBZ0JBLElBQUcsSUFBSTtBQUFBO0FBRXZCLHFCQUFTLElBQUlBLEtBQUksTUFBTSxLQUFLQSxLQUFJLElBQUk7QUFDbEMsOEJBQWdCLENBQUMsSUFBSTtBQUFBLFFBQzNCO0FBQ0YsV0FBSyxpQkFBaUIsR0FBRyxHQUFHLGVBQWU7QUFDM0MsVUFBSSxhQUFhLFdBQVc7QUFDMUIsaUJBQVMsU0FBUyxhQUFhO0FBQzdCLGNBQUksT0FBTyxVQUFVLGVBQWUsS0FBSyxhQUFhLFdBQVcsS0FBSztBQUNwRSxpQkFBSyxlQUFlLE1BQU0sV0FBVyxDQUFDLEdBQUcsYUFBYSxVQUFVLEtBQUssQ0FBQztBQUFBLE1BQzVFO0FBQ0EsV0FBSyxZQUFZLEtBQUssWUFBWSxDQUFDLEVBQUVRLE9BQU0sc0JBQXNCLFdBQVcsQ0FBQyxDQUFDO0FBQzlFLFVBQUksS0FBSyxjQUFjLFdBQVksTUFBSyxZQUFZLEtBQUssWUFBWSxDQUFDLEVBQUUsR0FBRztBQUMzRSxVQUFJLEtBQUssY0FBYyxXQUFZLE1BQUssWUFBWSxJQUFJLFdBQVcsQ0FBQztBQUFBLElBQ3RFO0FBQ0EsY0FBVSxVQUFVLFVBQVU7QUFDOUIsY0FBVSxVQUFVLFVBQVU7QUFDOUIsY0FBVSxVQUFVLHFCQUFxQixTQUFTLE1BQU07QUFDdEQsVUFBSSxRQUFRLENBQUM7QUFDYixhQUFPLE9BQU8sR0FBRyxVQUFVO0FBQ3pCLGNBQU0sS0FBSyxPQUFPLEdBQUc7QUFDdkIsVUFBSSxNQUFNLFVBQVU7QUFDbEIsY0FBTSxLQUFLLENBQUM7QUFDZCxVQUFJLE9BQU8sS0FBSyxhQUFhLENBQUM7QUFDOUIsZUFBUyxLQUFLLE1BQU0sU0FBUyxHQUFHLEtBQUssR0FBRyxNQUFNO0FBQzVDLFlBQUlSLE9BQU0sS0FBSyxNQUFNLEVBQUUsQ0FBQztBQUN4QixZQUFJQSxRQUFPLFlBQVk7QUFDckIsZUFBSyxNQUFNLEVBQUUsQ0FBQyxJQUFJLGFBQWEsS0FBSyxhQUFhO0FBQ2pELGVBQUssYUFBYSxLQUFLLE9BQU8sZ0JBQWdCLE1BQU0sQ0FBQyxDQUFDO0FBQUEsUUFDeEQsV0FBV0EsUUFBTyxZQUFZO0FBQzVCLGlCQUFPLEtBQUssYUFBYSxhQUFhQSxJQUFHO0FBQUEsUUFDM0M7QUFDRSxnQkFBTSxJQUFJLE1BQU0sdUJBQXVCLEtBQUssZUFBZSxhQUFhLEtBQUssU0FBUyxFQUFFLENBQUM7QUFBQSxNQUM3RjtBQUNBLGFBQU87QUFBQSxJQUNUO0FBQ0EsY0FBVSxVQUFVLGtCQUFrQixTQUFTLE9BQU87QUFDcEQsVUFBSSxVQUFVLFNBQVMsTUFBTSxDQUFDLEdBQUcsRUFBRTtBQUNuQyxVQUFJLGFBQWEsS0FBSyxtQkFBbUIsT0FBTztBQUNoRCxnQkFBVSxVQUFVO0FBQ3BCLGVBQVMsSUFBSSxHQUFHLElBQUksTUFBTSxRQUFRLEtBQUs7QUFDckMsWUFBSSxPQUFPLE1BQU0sQ0FBQztBQUNsQixZQUFJLE9BQU8sU0FBUyxVQUFVO0FBQzVCLG1CQUFTLElBQUksR0FBRyxJQUFJLEtBQUssVUFBVTtBQUNqQyxnQkFBSSxPQUFPLEtBQUssV0FBVyxHQUFHO0FBQzlCLGdCQUFJLFNBQVMsUUFBUSxPQUFPLE9BQU87QUFDakMsa0JBQUksWUFBWSxLQUFLLFdBQVcsR0FBRztBQUNuQyxrQkFBSSxTQUFTLGFBQWEsWUFBWTtBQUNwQywyQkFBVyxTQUFTLElBQUksU0FBUyxPQUFPLFNBQVMsUUFBUSxZQUFZO0FBQUE7QUFFckUsc0JBQU0sSUFBSSxNQUFNLGlDQUFpQyxLQUFLLGVBQWUsZUFBZSxNQUFNLENBQUMsQ0FBQztBQUFBLFlBQ2hHLFdBQVcsT0FBTyxRQUFRLFFBQVEsTUFBTTtBQUN0QyxrQkFBSSxNQUFNLE9BQU8sT0FBTztBQUN4QixrQkFBSSxNQUFNLENBQUM7QUFDWCx1QkFBUyxJQUFJLEdBQUcsSUFBSSxLQUFLO0FBQ3ZCLG9CQUFJLEtBQUssS0FBSyxXQUFXLEdBQUcsQ0FBQztBQUMvQix5QkFBVyxTQUFTLElBQUksWUFBWSxLQUFLLGVBQWU7QUFDeEQsbUJBQUssZUFBZSxLQUFLLEdBQUc7QUFBQSxZQUM5QjtBQUNFLHlCQUFXLFNBQVMsSUFBSTtBQUFBLFVBQzVCO0FBQUEsUUFDRixXQUFXLE9BQU8sU0FBUyxVQUFVO0FBQ25DLGNBQUksV0FBVyxXQUFXLFVBQVUsQ0FBQyxJQUFJO0FBQ3pDLG1CQUFTLElBQUksR0FBRyxJQUFJLE1BQU07QUFDeEIsdUJBQVcsU0FBUyxJQUFJO0FBQUEsUUFDNUI7QUFDRSxnQkFBTSxJQUFJLE1BQU0scUJBQXFCLE9BQU8sT0FBTyxnQkFBZ0IsS0FBSyxlQUFlLGVBQWUsTUFBTSxDQUFDLENBQUM7QUFBQSxNQUNsSDtBQUNBLFVBQUksVUFBVTtBQUNaLGNBQU0sSUFBSSxNQUFNLHdCQUF3QixLQUFLLGVBQWUsY0FBYyxNQUFNLENBQUMsSUFBSSxlQUFlLE9BQU87QUFBQSxJQUMvRztBQUNBLGNBQVUsVUFBVSxtQkFBbUIsU0FBUyxPQUFPO0FBQ3JELFVBQUksT0FBTyxTQUFTO0FBQ3BCLFVBQUksS0FBSyxZQUFZLElBQUksTUFBTTtBQUM3QixhQUFLLFlBQVksSUFBSSxJQUFJLGdCQUFnQixNQUFNLENBQUM7QUFDbEQsYUFBTyxLQUFLLFlBQVksSUFBSTtBQUFBLElBQzlCO0FBQ0EsY0FBVSxVQUFVLGlCQUFpQixTQUFTLE9BQU8sVUFBVTtBQUM3RCxVQUFJLFNBQVMsS0FBSyxpQkFBaUIsS0FBSztBQUN4QyxVQUFJLE1BQU0sUUFBUTtBQUNsQixVQUFJLE9BQU8sR0FBRyxLQUFLO0FBQ2pCLGFBQUssZUFBZSxZQUFZLE9BQU8sR0FBRyxDQUFDLEVBQUUsUUFBUSxJQUFJO0FBQUEsZUFDbEQsT0FBTyxHQUFHLEtBQUs7QUFDdEIsZUFBTyxHQUFHLElBQUk7QUFBQSxJQUNsQjtBQUNBLGNBQVUsVUFBVSxxQkFBcUIsU0FBUyxLQUFLLFVBQVU7QUFDL0QsVUFBSSxRQUFRLElBQUksQ0FBQztBQUNqQixVQUFJLFNBQVMsS0FBSyxpQkFBaUIsS0FBSztBQUN4QyxVQUFJLE1BQU0sUUFBUTtBQUNsQixVQUFJO0FBQ0osVUFBSSxPQUFPLEdBQUcsS0FBSyxXQUFXO0FBQzVCLGVBQU8sS0FBSyxlQUFlLFlBQVksT0FBTyxHQUFHLENBQUM7QUFBQSxNQUNwRCxPQUFPO0FBQ0wsZUFBTyxDQUFDO0FBQ1IsWUFBSSxPQUFPLEdBQUcsTUFBTSxXQUFZLE1BQUssUUFBUSxJQUFJLE9BQU8sR0FBRztBQUMzRCxlQUFPLEdBQUcsSUFBSSxZQUFZLEtBQUssZUFBZTtBQUM5QyxhQUFLLGVBQWUsS0FBSyxJQUFJO0FBQUEsTUFDL0I7QUFDQSxlQUFTLElBQUksR0FBRyxJQUFJLElBQUksU0FBUyxHQUFHLEtBQUs7QUFDdkMsWUFBSSxTQUFTLEtBQUssS0FBSztBQUN2QixZQUFJLE9BQU8sV0FBVztBQUNwQixpQkFBTztBQUFBLGFBQ0o7QUFDSCxpQkFBTyxLQUFLLEtBQUssSUFBSSxDQUFDO0FBQ3RCLGNBQUksV0FBVztBQUNiLGlCQUFLLFFBQVEsSUFBSTtBQUFBLFFBQ3JCO0FBQUEsTUFDRjtBQUNBLGNBQVEsSUFBSSxJQUFJLFNBQVMsQ0FBQztBQUMxQixXQUFLLEtBQUssSUFBSTtBQUFBLElBQ2hCO0FBQ0EsY0FBVSxVQUFVLG1CQUFtQixTQUFTLFNBQVMsUUFBUSxpQkFBaUI7QUFDaEYsVUFBSSxPQUFPLEtBQUssYUFBYSxPQUFPO0FBQ3BDLFVBQUksWUFBWTtBQUNoQixVQUFJLGVBQWUsQ0FBQztBQUNwQixlQUFTLEtBQUssR0FBRyxLQUFLLEtBQUssTUFBTTtBQUMvQixZQUFJLFFBQVEsS0FBSyxFQUFFO0FBQ25CLFlBQUksU0FBUyxTQUFTO0FBQ3RCLFlBQUksZ0JBQWdCLE1BQU07QUFDeEI7QUFDRixZQUFJLFNBQVMsR0FBRztBQUNkLGVBQUssZUFBZSxPQUFPLE1BQU07QUFDakMsc0JBQVk7QUFBQSxRQUNkLFdBQVcsU0FBUyxZQUFZO0FBQzlCLGNBQUksYUFBYSxhQUFhO0FBQzlCLGNBQUksQ0FBQyxhQUFhLFVBQVUsR0FBRztBQUM3QixnQkFBSSxZQUFZLFVBQVUsTUFBTTtBQUNoQyxnQkFBSSxLQUFLLGlCQUFpQixZQUFZLFdBQVcsZUFBZTtBQUM5RCwwQkFBWTtBQUFBO0FBRVosMkJBQWEsVUFBVSxJQUFJO0FBQUEsVUFDL0I7QUFBQSxRQUNGLFdBQVcsU0FBUyxXQUFXO0FBQzdCLGVBQUssbUJBQW1CLEtBQUssZUFBZSxZQUFZLEtBQUssR0FBRyxNQUFNO0FBQ3RFLHNCQUFZO0FBQUEsUUFDZDtBQUFBLE1BQ0Y7QUFDQSxhQUFPO0FBQUEsSUFDVDtBQUNBLGFBQVMsWUFBWSxTQUFTLE9BQU87QUFDbkMsV0FBSyxnQkFBZ0I7QUFDckIsV0FBSyxTQUFTO0FBQ2QsV0FBSyxjQUFjLE1BQU07QUFDekIsV0FBSyxpQkFBaUIsTUFBTTtBQUM1QixXQUFLLHdCQUF3QixNQUFNO0FBQ25DLFdBQUssVUFBVSxNQUFNO0FBQUEsSUFDdkI7QUFDQSxnQkFBWSxVQUFVLFFBQVEsU0FBUyxLQUFLO0FBQzFDLFVBQUksU0FBUyxRQUFRLE1BQU0sSUFBSSxVQUFVLEtBQUssVUFBVSxJQUFJLEVBQUUsR0FBRyxnQkFBZ0IsS0FBSyxlQUFlLFNBQVMsS0FBSyxRQUFRLFdBQVcsSUFBSSxLQUFLLEdBQUcsSUFBSTtBQUN0SixhQUFPLE1BQU07QUFDWCxZQUFJLGFBQWEsSUFBSTtBQUNuQixjQUFJLE1BQU0sSUFBSSxPQUFRO0FBQ3RCLGNBQUksUUFBUSxJQUFJLFdBQVcsSUFBSTtBQUFBLFFBQ2pDLE9BQU87QUFDTCxjQUFJLFFBQVE7QUFDWixxQkFBVztBQUFBLFFBQ2I7QUFDQSxZQUFJLFNBQVMsU0FBUyxRQUFRLE9BQU87QUFDbkMsY0FBSSxRQUFRLE9BQU87QUFDakIsZ0JBQUksa0JBQWtCLElBQUk7QUFDeEIsOEJBQWdCO0FBQ2hCO0FBQUEsWUFDRixPQUFPO0FBQ0wsOEJBQWdCO0FBQ2hCLHNCQUFRO0FBQUEsWUFDVjtBQUFBLFVBQ0YsT0FBTztBQUNMLGdCQUFJLGtCQUFrQixJQUFJO0FBQ3hCLHNCQUFRLFNBQVMsZ0JBQWdCLFNBQVMsUUFBUSxRQUFRO0FBQzFELDhCQUFnQjtBQUFBLFlBQ2xCLE9BQU87QUFDTCxzQkFBUTtBQUFBLFlBQ1Y7QUFBQSxVQUNGO0FBQUEsUUFDRixXQUFXLGtCQUFrQixJQUFJO0FBQy9CLHFCQUFXO0FBQ1gsa0JBQVE7QUFDUiwwQkFBZ0I7QUFBQSxRQUNsQjtBQUNBLFlBQUksV0FBVztBQUNmLFlBQUksV0FBVyxVQUFVLFNBQVMsWUFBWTtBQUM1QyxjQUFJLFVBQVUsT0FBTyxLQUFLO0FBQzFCLGNBQUksT0FBTyxZQUFZLFVBQVU7QUFDL0IscUJBQVM7QUFDVDtBQUFBLFVBQ0YsV0FBVyxPQUFPLFdBQVcsVUFBVTtBQUNyQyx1QkFBVztBQUFBLFVBQ2IsV0FBVyxXQUFXLFFBQVE7QUFDNUIsc0JBQVUsT0FBTyxRQUFRO0FBQ3pCLGdCQUFJLFlBQVksUUFBUTtBQUN0Qix5QkFBVztBQUNYLHlCQUFXO0FBQUEsWUFDYixPQUFPO0FBQUEsWUFDUDtBQUFBLFVBQ0Y7QUFDQSxtQkFBUztBQUFBLFFBQ1gsV0FBVyxTQUFTLEdBQUc7QUFDckIsY0FBSSxXQUFXLEtBQUssWUFBWSxTQUFTLENBQUM7QUFDMUMsY0FBSSxhQUFhO0FBQ2YsdUJBQVcsU0FBUyxRQUFRLEdBQUc7QUFDakMsY0FBSSxZQUFZLFdBQVc7QUFDekIscUJBQVMsS0FBSyxlQUFlLFlBQVksUUFBUTtBQUNqRDtBQUFBLFVBQ0Y7QUFDQSxjQUFJLFlBQVksY0FBYyxLQUFLLFNBQVM7QUFDMUMsZ0JBQUksTUFBTSxRQUFRLEtBQUssUUFBUSxRQUFRLEtBQUs7QUFDNUMsZ0JBQUksT0FBTyxJQUFJO0FBQ2Isa0JBQUksV0FBVyxLQUFLLFFBQVEsUUFBUSxHQUFHLEtBQUssUUFBUSxLQUFLLFFBQVEsT0FBTyxHQUFHO0FBQzNFLHFCQUFPLEdBQUcsSUFBSSxNQUFNLEtBQUssTUFBTSxXQUFXLEtBQUs7QUFDL0MseUJBQVcsV0FBVztBQUN0QixxQkFBTyxHQUFHLElBQUksS0FBSyxLQUFLLE1BQU0sV0FBVyxJQUFJO0FBQzdDLHlCQUFXLFdBQVc7QUFDdEIscUJBQU8sR0FBRyxJQUFJLE1BQU0sS0FBSyxNQUFNLFdBQVcsRUFBRTtBQUM1Qyx5QkFBVyxXQUFXO0FBQ3RCLHFCQUFPLEdBQUcsSUFBSSxLQUFLO0FBQ25CO0FBQUEsWUFDRjtBQUFBLFVBQ0Y7QUFBQSxRQUNGO0FBQ0EsWUFBSSxhQUFhO0FBQ2YscUJBQVcsS0FBSztBQUNsQixZQUFJLFdBQVcsS0FBSztBQUNsQixpQkFBTyxHQUFHLElBQUk7QUFBQSxRQUNoQixXQUFXLFdBQVcsT0FBTztBQUMzQixpQkFBTyxHQUFHLElBQUksWUFBWTtBQUMxQixpQkFBTyxHQUFHLElBQUksV0FBVztBQUFBLFFBQzNCLFdBQVcsV0FBVyxVQUFVO0FBQzlCLGlCQUFPLEdBQUcsSUFBSSxZQUFZO0FBQzFCLGlCQUFPLEdBQUcsSUFBSSxZQUFZLElBQUk7QUFDOUIsaUJBQU8sR0FBRyxJQUFJLFdBQVc7QUFBQSxRQUMzQixPQUFPO0FBQ0wsaUJBQU8sR0FBRyxJQUFJLGFBQWE7QUFDM0IsaUJBQU8sR0FBRyxJQUFJLGFBQWEsS0FBSztBQUNoQyxpQkFBTyxHQUFHLElBQUksYUFBYSxJQUFJO0FBQy9CLGlCQUFPLEdBQUcsSUFBSSxXQUFXO0FBQUEsUUFDM0I7QUFBQSxNQUNGO0FBQ0EsV0FBSyxTQUFTO0FBQ2QsV0FBSyxnQkFBZ0I7QUFDckIsYUFBTyxPQUFPLE1BQU0sR0FBRyxDQUFDO0FBQUEsSUFDMUI7QUFDQSxnQkFBWSxVQUFVLE1BQU0sV0FBVztBQUNyQyxVQUFJLEtBQUssa0JBQWtCLE1BQU0sS0FBSyxXQUFXO0FBQy9DO0FBQ0YsVUFBSSxTQUFTLFFBQVEsTUFBTSxFQUFFLEdBQUcsSUFBSTtBQUNwQyxVQUFJLEtBQUssUUFBUTtBQUNmLFlBQUksV0FBVyxLQUFLLE9BQU8sUUFBUTtBQUNuQyxZQUFJLGFBQWEsUUFBUTtBQUN2QixjQUFJLFdBQVcsS0FBSztBQUNsQixtQkFBTyxHQUFHLElBQUk7QUFBQSxVQUNoQixPQUFPO0FBQ0wsbUJBQU8sR0FBRyxJQUFJLFlBQVk7QUFDMUIsbUJBQU8sR0FBRyxJQUFJLFdBQVc7QUFBQSxVQUMzQjtBQUFBLFFBQ0YsT0FBTztBQUFBLFFBQ1A7QUFDQSxhQUFLLFNBQVM7QUFBQSxNQUNoQjtBQUNBLFVBQUksS0FBSyxrQkFBa0IsSUFBSTtBQUM3QixlQUFPLEdBQUcsSUFBSSxLQUFLO0FBQ25CLGFBQUssZ0JBQWdCO0FBQUEsTUFDdkI7QUFDQSxhQUFPLE9BQU8sTUFBTSxHQUFHLENBQUM7QUFBQSxJQUMxQjtBQUNBLGdCQUFZLFVBQVUsVUFBVTtBQUNoQyxhQUFTLFlBQVksU0FBUyxPQUFPO0FBQ25DLFdBQUssVUFBVTtBQUNmLFdBQUssWUFBWSxDQUFDO0FBQ2xCLFdBQUssZUFBZSxNQUFNO0FBQzFCLFdBQUssaUJBQWlCLE1BQU07QUFDNUIsV0FBSyxxQkFBcUIsTUFBTTtBQUNoQyxXQUFLLFVBQVUsTUFBTTtBQUFBLElBQ3ZCO0FBQ0EsZ0JBQVksVUFBVSxRQUFRLFNBQVMsS0FBSztBQUMxQyxVQUFJLFNBQVMsUUFBUSxNQUFNLElBQUksU0FBUyxDQUFDLEdBQUcsVUFBVSxLQUFLLFNBQVMsWUFBWSxLQUFLLFdBQVcsYUFBYSxLQUFLLFVBQVUsUUFBUSxXQUFXLENBQUMsS0FBSyxVQUFVLFFBQVE7QUFDdkssZUFBUyxLQUFLLEdBQUcsSUFBSSxHQUFHLEtBQUssSUFBSSxRQUFRLE1BQU07QUFDN0MsWUFBSSxVQUFVLE1BQU0sSUFBSSxJQUFJLEVBQUUsSUFBSSxVQUFVLEtBQUssVUFBVTtBQUMzRCxZQUFJLFFBQVEsS0FBSyxhQUFhLE9BQU8sRUFBRSxPQUFPO0FBQzlDLFlBQUksU0FBUyxHQUFHO0FBQUEsUUFDaEIsV0FBVyxVQUFVLFlBQVk7QUFDL0Isa0JBQVEsS0FBSyxtQkFBbUIsV0FBVyxDQUFDO0FBQzVDLGVBQUs7QUFBQSxRQUNQLFdBQVcsVUFBVSxjQUFjO0FBQ2pDLGNBQUksTUFBTSxHQUFHO0FBQ1gsZ0JBQUksT0FBTyxJQUFJLEtBQUssQ0FBQyxJQUFJLE9BQU8sU0FBUyxJQUFJLEtBQUssQ0FBQyxJQUFJLE1BQU0sUUFBUSxJQUFJLEtBQUssQ0FBQyxJQUFJLE9BQU8sTUFBTSxVQUFVO0FBQUEsVUFDNUcsT0FBTztBQUNMLGdCQUFJLE9BQU8sVUFBVSxLQUFLLElBQUksVUFBVSxJQUFJLE9BQU8sVUFBVSxLQUFLLEtBQUssSUFBSSxJQUFJLEtBQUssQ0FBQyxJQUFJLFVBQVUsS0FBSyxJQUFJLFVBQVUsS0FBSyxNQUFNLFNBQVMsS0FBSyxLQUFLLElBQUksSUFBSSxLQUFLLENBQUMsSUFBSSxVQUFVLEtBQUssSUFBSSxVQUFVLEtBQUssT0FBTyxNQUFNLFVBQVU7QUFBQSxVQUNqTztBQUNBLGNBQUksTUFBTSxRQUFRLEtBQUssUUFBUSxTQUFTLEdBQUc7QUFDM0Msa0JBQVEsS0FBSyxRQUFRLE9BQU8sR0FBRyxJQUFJLE1BQU0sS0FBSyxRQUFRLFFBQVEsR0FBRztBQUFBLFFBQ25FLFdBQVcsU0FBUyxZQUFZO0FBQzlCLG9CQUFVLGFBQWE7QUFDdkI7QUFBQSxRQUNGLFdBQVcsU0FBUyxXQUFXO0FBQzdCLGNBQUksTUFBTSxLQUFLLGVBQWUsWUFBWSxLQUFLO0FBQy9DLG1CQUFTLElBQUksR0FBRyxJQUFJLElBQUksU0FBUyxHQUFHLEtBQUs7QUFDdkMsb0JBQVEsSUFBSSxDQUFDO0FBQ2IsbUJBQU8sR0FBRyxJQUFJLFFBQVE7QUFDdEIsbUJBQU8sR0FBRyxJQUFJLFNBQVM7QUFBQSxVQUN6QjtBQUNBLGtCQUFRLElBQUksSUFBSSxTQUFTLENBQUM7QUFBQSxRQUM1QjtBQUNFLGdCQUFNLElBQUksTUFBTSw2REFBNkQsUUFBUSxTQUFTLFVBQVUsTUFBTSxPQUFPO0FBQ3ZILFlBQUksU0FBUyxPQUFPO0FBQ2xCLG1CQUFTO0FBQ1QsY0FBSSxZQUFZLFFBQVEsU0FBUztBQUNqQyxpQkFBTyxHQUFHLElBQUksWUFBWTtBQUMxQixpQkFBTyxHQUFHLElBQUksYUFBYTtBQUMzQixrQkFBUSxRQUFRLFFBQVE7QUFBQSxRQUMxQjtBQUNBLGVBQU8sR0FBRyxJQUFJLFFBQVE7QUFDdEIsZUFBTyxHQUFHLElBQUksU0FBUztBQUN2QixrQkFBVTtBQUNWLG1CQUFXLEtBQUs7QUFBQSxNQUNsQjtBQUNBLFdBQUssVUFBVTtBQUNmLFdBQUssWUFBWSxZQUFZLElBQUksTUFBTSxVQUFVLE1BQU0sS0FBSyxLQUFLLFFBQVEsSUFBSSxVQUFVLE1BQU0sV0FBVyxVQUFVLEVBQUUsT0FBTyxNQUFNLFVBQVUsTUFBTSxLQUFLLEdBQUcsQ0FBQztBQUMxSixhQUFPLE9BQU8sTUFBTSxHQUFHLENBQUMsRUFBRSxTQUFTLE1BQU07QUFBQSxJQUMzQztBQUNBLGdCQUFZLFVBQVUsTUFBTSxXQUFXO0FBQ3JDLFVBQUksTUFBTTtBQUNWLGFBQU8sS0FBSyxVQUFVLFNBQVMsR0FBRztBQUNoQyxlQUFPLEtBQUs7QUFDWixZQUFJLFdBQVcsS0FBSyxVQUFVLE1BQU0sQ0FBQztBQUNyQyxhQUFLLFlBQVksQ0FBQztBQUNsQixhQUFLLFVBQVU7QUFDZixZQUFJLFNBQVMsU0FBUztBQUNwQixpQkFBTyxLQUFLLE1BQU0sUUFBUTtBQUFBLE1BQzlCO0FBQ0EsV0FBSyxZQUFZLENBQUM7QUFDbEIsV0FBSyxVQUFVO0FBQ2YsYUFBTztBQUFBLElBQ1Q7QUFDQSxhQUFTLFFBQVEsT0FBT0EsTUFBSztBQUMzQixVQUFJLE1BQU0sQ0FBQyxJQUFJQTtBQUNiLGVBQU87QUFDVCxVQUFJLElBQUksR0FBRyxJQUFJLE1BQU07QUFDckIsYUFBTyxJQUFJLElBQUksR0FBRztBQUNoQixZQUFJLE1BQU0sS0FBSyxJQUFJLElBQUksS0FBSztBQUM1QixZQUFJLE1BQU0sR0FBRyxLQUFLQTtBQUNoQixjQUFJO0FBQUE7QUFFSixjQUFJO0FBQUEsTUFDUjtBQUNBLGFBQU87QUFBQSxJQUNUO0FBQUEsRUFDRjtBQUNGLENBQUM7QUFHRCxJQUFJaUIsb0JBQW1CdEIsWUFBVztBQUFBLEVBQ2hDLCtFQUErRSxVQUFVLFNBQVM7QUFDaEcsWUFBUSxVQUFVO0FBQUEsTUFDaEIsQ0FBQyxLQUFLLE1BQU0sR0FBRztBQUFBLE1BQ2YsQ0FBQyxNQUFNLFVBQVUsRUFBRTtBQUFBLE1BQ25CLENBQUMsUUFBUSw0U0FBNFMsR0FBRyxzQkFBc0I7QUFBQSxNQUM5VSxDQUFDLFFBQVEsMFFBQTBRO0FBQUEsTUFDblIsQ0FBQyxRQUFRLGtEQUFrRDtBQUFBLE1BQzNELENBQUMsUUFBUSw0Q0FBNEM7QUFBQSxNQUNyRCxDQUFDLFFBQVEsNEZBQTRGO0FBQUEsTUFDckcsQ0FBQyxRQUFRLGdEQUFnRDtBQUFBLE1BQ3pELENBQUMsUUFBUSxRQUFRO0FBQUEsTUFDakIsQ0FBQyxRQUFRLFVBQVUsQ0FBQztBQUFBLE1BQ3BCLENBQUMsUUFBUSxVQUFVLEVBQUU7QUFBQSxNQUNyQixDQUFDLFFBQVEsVUFBVSxFQUFFO0FBQUEsTUFDckIsQ0FBQyxRQUFRLFVBQVUsRUFBRTtBQUFBLE1BQ3JCLENBQUMsUUFBUSxVQUFVLEVBQUU7QUFBQSxNQUNyQixDQUFDLFFBQVEsVUFBVSxFQUFFO0FBQUEsTUFDckIsQ0FBQyxRQUFRLFVBQVUsSUFBSSxVQUFVLENBQUM7QUFBQSxNQUNsQyxDQUFDLFFBQVEsVUFBVSxJQUFJLFVBQVUsQ0FBQztBQUFBLE1BQ2xDLENBQUMsUUFBUSxVQUFVLEdBQUcsZ0JBQWdCLEVBQUU7QUFBQSxNQUN4QyxDQUFDLFFBQVEsVUFBVSxHQUFHLGdCQUFnQixDQUFDO0FBQUEsTUFDdkMsQ0FBQyxRQUFRLFVBQVUsRUFBRTtBQUFBLE1BQ3JCLENBQUMsUUFBUSxrTUFBa007QUFBQSxNQUMzTSxDQUFDLFFBQVEsVUFBVSxJQUFJLFVBQVUsQ0FBQztBQUFBLE1BQ2xDLENBQUMsUUFBUSw0SUFBNEk7QUFBQSxNQUNySixDQUFDLFFBQVEsUUFBUTtBQUFBLE1BQ2pCLENBQUMsUUFBUSx3Q0FBd0MsR0FBRyxvSEFBb0g7QUFBQSxNQUN4SyxDQUFDLFFBQVEsc2pCQUFzakI7QUFBQSxNQUMvakIsQ0FBQyxRQUFRLDRYQUE0WDtBQUFBLE1BQ3JZLENBQUMsUUFBUSxndkJBQWd2QjtBQUFBLE1BQ3p2QixDQUFDLFFBQVEsNFhBQTRYO0FBQUEsTUFDclksQ0FBQyxRQUFRLGd2QkFBZ3ZCO0FBQUEsTUFDenZCLENBQUMsUUFBUSw0WEFBNFg7QUFBQSxNQUNyWSxDQUFDLFFBQVEsZ3ZCQUFndkI7QUFBQSxNQUN6dkIsQ0FBQyxRQUFRLDRYQUE0WDtBQUFBLE1BQ3JZLENBQUMsUUFBUSxndkJBQWd2QjtBQUFBLE1BQ3p2QixDQUFDLFFBQVEsNFhBQTRYO0FBQUEsTUFDclksQ0FBQyxRQUFRLGd2QkFBZ3ZCO0FBQUEsTUFDenZCLENBQUMsUUFBUSw0WEFBNFg7QUFBQSxNQUNyWSxDQUFDLFFBQVEsZ3ZCQUFndkI7QUFBQSxNQUN6dkIsQ0FBQyxRQUFRLDRYQUE0WDtBQUFBLE1BQ3JZLENBQUMsUUFBUSxndkJBQWd2QjtBQUFBLE1BQ3p2QixDQUFDLFFBQVEsNFhBQTRYO0FBQUEsTUFDclksQ0FBQyxRQUFRLGd2QkFBZ3ZCO0FBQUEsTUFDenZCLENBQUMsUUFBUSw0WEFBNFg7QUFBQSxNQUNyWSxDQUFDLFFBQVEsZ3ZCQUFndkI7QUFBQSxNQUN6dkIsQ0FBQyxRQUFRLDRYQUE0WDtBQUFBLE1BQ3JZLENBQUMsUUFBUSxndkJBQWd2QjtBQUFBLE1BQ3p2QixDQUFDLFFBQVEsNFhBQTRYO0FBQUEsTUFDclksQ0FBQyxRQUFRLGd2QkFBZ3ZCO0FBQUEsTUFDenZCLENBQUMsUUFBUSw0WEFBNFg7QUFBQSxNQUNyWSxDQUFDLFFBQVEsZ3ZCQUFndkI7QUFBQSxNQUN6dkIsQ0FBQyxRQUFRLDRYQUE0WDtBQUFBLE1BQ3JZLENBQUMsUUFBUSxndkJBQWd2QjtBQUFBLE1BQ3p2QixDQUFDLFFBQVEsNFhBQTRYO0FBQUEsTUFDclksQ0FBQyxRQUFRLGd2QkFBZ3ZCO0FBQUEsTUFDenZCLENBQUMsUUFBUSw0WEFBNFg7QUFBQSxNQUNyWSxDQUFDLFFBQVEsZ3ZCQUFndkI7QUFBQSxNQUN6dkIsQ0FBQyxRQUFRLG9UQUFvVDtBQUFBLE1BQzdULENBQUMsUUFBUSxzakJBQXNqQjtBQUFBLE1BQy9qQixDQUFDLFFBQVEsNFhBQTRYO0FBQUEsTUFDclksQ0FBQyxRQUFRLGd2QkFBZ3ZCO0FBQUEsTUFDenZCLENBQUMsUUFBUSw0WEFBNFg7QUFBQSxNQUNyWSxDQUFDLFFBQVEsZ3ZCQUFndkI7QUFBQSxNQUN6dkIsQ0FBQyxRQUFRLDRYQUE0WDtBQUFBLE1BQ3JZLENBQUMsUUFBUSxndkJBQWd2QjtBQUFBLE1BQ3p2QixDQUFDLFFBQVEsNFhBQTRYO0FBQUEsTUFDclksQ0FBQyxRQUFRLGd2QkFBZ3ZCO0FBQUEsTUFDenZCLENBQUMsUUFBUSw0WEFBNFg7QUFBQSxNQUNyWSxDQUFDLFFBQVEsZ3ZCQUFndkI7QUFBQSxNQUN6dkIsQ0FBQyxRQUFRLDRYQUE0WDtBQUFBLE1BQ3JZLENBQUMsUUFBUSxndkJBQWd2QjtBQUFBLE1BQ3p2QixDQUFDLFFBQVEsNFhBQTRYO0FBQUEsTUFDclksQ0FBQyxRQUFRLGd2QkFBZ3ZCO0FBQUEsTUFDenZCLENBQUMsUUFBUSw0WEFBNFg7QUFBQSxNQUNyWSxDQUFDLFFBQVEsZ3ZCQUFndkI7QUFBQSxNQUN6dkIsQ0FBQyxRQUFRLDRYQUE0WDtBQUFBLE1BQ3JZLENBQUMsUUFBUSxndkJBQWd2QjtBQUFBLE1BQ3p2QixDQUFDLFFBQVEsNFhBQTRYO0FBQUEsTUFDclksQ0FBQyxRQUFRLGd2QkFBZ3ZCO0FBQUEsTUFDenZCLENBQUMsUUFBUSw0WEFBNFg7QUFBQSxNQUNyWSxDQUFDLFFBQVEsZ3ZCQUFndkI7QUFBQSxNQUN6dkIsQ0FBQyxRQUFRLDRYQUE0WDtBQUFBLE1BQ3JZLENBQUMsUUFBUSxndkJBQWd2QjtBQUFBLE1BQ3p2QixDQUFDLFFBQVEsNFhBQTRYO0FBQUEsTUFDclksQ0FBQyxRQUFRLGd2QkFBZ3ZCO0FBQUEsTUFDenZCLENBQUMsUUFBUSw0WEFBNFg7QUFBQSxNQUNyWSxDQUFDLFFBQVEsZ3ZCQUFndkI7QUFBQSxNQUN6dkIsQ0FBQyxRQUFRLDRYQUE0WDtBQUFBLE1BQ3JZLENBQUMsUUFBUSxndkJBQWd2QjtBQUFBLE1BQ3p2QixDQUFDLFFBQVEsNFhBQTRYO0FBQUEsTUFDclksQ0FBQyxRQUFRLGd2QkFBZ3ZCO0FBQUEsTUFDenZCLENBQUMsUUFBUSw0WEFBNFg7QUFBQSxNQUNyWSxDQUFDLFFBQVEsZ3ZCQUFndkI7QUFBQSxNQUN6dkIsQ0FBQyxRQUFRLDRYQUE0WDtBQUFBLE1BQ3JZLENBQUMsUUFBUSxnT0FBZ087QUFBQSxNQUN6TyxDQUFDLFFBQVEsNFhBQTRYO0FBQUEsTUFDclksQ0FBQyxRQUFRLGd2QkFBZ3ZCO0FBQUEsTUFDenZCLENBQUMsUUFBUSw0WEFBNFg7QUFBQSxNQUNyWSxDQUFD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QUFDLFFBQVEsc2pCQUFzakI7QUFBQSxNQUMvakIsQ0FBQyxRQUFRLHNqQkFBc2pCO0FBQUEsTUFDL2pCLENBQUMsUUFBUSxzakJBQXNqQjtBQUFBLE1BQy9qQixDQUFDLFFBQVEsc2pCQUFzakI7QUFBQSxNQUMvakIsQ0FBQyxRQUFRLHNqQkFBc2pCO0FBQUEsTUFDL2pCLENBQUMsUUFBUSxzakJBQXNqQjtBQUFBLE1BQy9qQixDQUFDLFFBQVEsc2pCQUFzakI7QUFBQSxNQUMvakIsQ0FBQyxRQUFRLHNqQkFBc2pCO0FBQUEsTUFDL2pCLENBQUMsUUFBUSxzakJBQXNqQjtBQUFBLE1BQy9qQixDQUFDLFFBQVEsc2pCQUFzakI7QUFBQSxNQUMvakIsQ0FBQyxRQUFRLHNqQkFBc2pCO0FBQUEsTUFDL2pCLENBQUMsUUFBUSxzakJBQXNqQjtBQUFBLE1BQy9qQixDQUFDLFFBQVEsc2pCQUFzakI7QUFBQSxNQUMvakIsQ0FBQyxRQUFRLHNqQkFBc2pCO0FBQUEsTUFDL2pCLENBQUMsUUFBUSxzakJBQXNqQjtBQUFBLE1BQy9qQixDQUFDLFFBQVEsc2pCQUFzakI7QUFBQSxNQUMvakIsQ0FBQyxRQUFRLHNqQkFBc2pCO0FBQUEsTUFDL2pCLENBQUMsUUFBUSxzakJBQXNqQjtBQUFBLE1BQy9qQixDQUFDLFFBQVEsc2pCQUFzakI7QUFBQSxNQUMvakIsQ0FBQyxRQUFRLHNqQkFBc2pCO0FBQUEsTUFDL2pCLENBQUMsUUFBUSxzakJBQXNqQjtBQUFBLE1BQy9qQixDQUFDLFFBQVEsc2pCQUFzakI7QUFBQSxNQUMvakIsQ0FBQyxRQUFRLHNqQkFBc2pCO0FBQUEsTUFDL2pCLENBQUMsUUFBUSxzakJBQXNqQjtBQUFBLE1BQy9qQixDQUFDLFFBQVEsc2pCQUFzakI7QUFBQSxNQUMvakIsQ0FBQyxRQUFRLHNqQkFBc2pCO0FBQUEsTUFDL2pCLENBQUMsUUFBUSxvVEFBb1Q7QUFBQSxNQUM3VCxDQUFDLFFBQVEsc2pCQUFzakI7QUFBQSxNQUMvakIsQ0FBQyxRQUFRLHNqQkFBc2pCO0FBQUEsTUFDL2pCLENBQUMsUUFBUSxzakJBQXNqQjtBQUFBLE1BQy9qQixDQUFDLFFBQVEsc2pCQUFzakI7QUFBQSxNQUMvakIsQ0FBQyxRQUFRLHNqQkFBc2pCO0FBQUEsTUFDL2pCLENBQUMsUUFBUSxzakJBQXNqQjtBQUFBLE1BQy9qQixDQUFDLFFBQVEsc2pCQUFzakI7QUFBQSxNQUMvakIsQ0FBQyxRQUFRLHNqQkFBc2pCO0FBQUEsTUFDL2pCLENBQUMsUUFBUSxzakJBQXNqQjtBQUFBLE1BQy9qQixDQUFDLFFBQVEsc2pCQUFzakI7QUFBQSxNQUMvakIsQ0FBQyxRQUFRLHNqQkFBc2pCO0FBQUEsTUFDL2pCLENBQUMsUUFBUSxzakJBQXNqQjtBQUFBLE1BQy9qQixDQUFDLFFBQVEsc2pCQUFzakI7QUFBQSxNQUMvakIsQ0FBQyxRQUFRLHNqQkFBc2pCO0FBQUEsTUFDL2pCLENBQUMsUUFBUSxzakJBQXNqQjtBQUFBLE1BQy9qQixDQUFDLFFBQVEsc2pCQUFzakI7QUFBQSxNQUMvakIsQ0FBQyxRQUFRLHNqQkFBc2pCO0FBQUEsTUFDL2pCLENBQUMsUUFBUSxzakJBQXNqQjtBQUFBLE1BQy9qQixDQUFDLFFBQVEsc2pCQUFzakI7QUFBQSxNQUMvakIsQ0FBQyxRQUFRLHNqQkFBc2pCO0FBQUEsTUFDL2pCLENBQUMsUUFBUSxzakJBQXNqQjtBQUFBLE1BQy9qQixDQUFDLFFBQVEsc2pCQUFzakI7QUFBQSxNQUMvakIsQ0FBQyxRQUFRLHNqQkFBc2pCO0FBQUEsTUFDL2pCLENBQUMsUUFBUSxzakJBQXNqQjtBQUFBLE1BQy9qQixDQUFDLFFBQVEsc2pCQUFzakI7QUFBQSxNQUMvakIsQ0FBQyxRQUFRLHNqQkFBc2pCO0FBQUEsTUFDL2pCLENBQUMsUUFBUSxzakJBQXNqQjtBQUFBLE1BQy9qQixDQUFDLFFBQVEsc2pCQUFzakI7QUFBQSxNQUMvakIsQ0FBQyxRQUFRLHNqQkFBc2pCO0FBQUEsTUFDL2pCLENBQUMsUUFBUSxzakJBQXNqQjtBQUFBLE1BQy9qQixDQUFDLFFBQVEsc2pCQUFzakI7QUFBQSxNQUMvakIsQ0FBQyxR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TSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxPQUFPLE9BQU8sT0FBTyxPQUFPLE9BQU8sT0FBTyxPQUFPLE9BQU8sT0FBTyxPQUFPLE9BQU8sT0FBTyxPQUFPLE9BQU8sT0FBTyxPQUFPLE9BQU8sT0FBTyxPQUFPLE9BQU8sT0FBTyxPQUFPLE9BQU8sT0FBTyxPQUFPLE9BQU8sT0FBTyxPQUFPLE9BQU8sT0FBTyxPQUFPLE9BQU8sT0FBTyxPQUFPLE9BQU8sT0FBTyxPQUFPLE9BQU8sT0FBTyxPQUFPLE9BQU8sT0FBTyxPQUFPLE9BQU8sT0FBTyxPQUFPLE9BQU8sT0FBTyxPQUFPLE9BQU8sT0FBTyxPQUFPLE9BQU8sT0FBTyxPQUFPLE9BQU8sT0FBTyxPQUFPLE9BQU8sT0FBTyxPQUFPLE9BQU8sT0FBTyxPQUFPLE9BQU8sT0FBTyxPQUFPLE9BQU8sT0FBTyxPQUFPLE9BQU8sT0FBTyxPQUFPLE9BQU8sT0FBTyxPQUFPLE9BQU8sT0FBTyxPQUFPLE9BQU8sT0FBTyxPQUFPLE9BQU8sT0FBTyxPQUFPLE9BQU8sT0FBTyxPQUFPLE9BQU8sT0FBTyxPQUFPLE9BQU8sT0FBTyxPQUFPLE9BQU8sT0FBTyxPQUFPLE9BQU8sT0FBTyxPQUFPLE9BQU8sT0FBTyxPQUFPLE9BQU8sT0FBTyxLQUFLLEdBQUcsU0FBUyxDQUFDLEdBQUcsSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxPQUFPLE9BQU8sT0FBTyxPQUFPLE9BQU8sT0FBTyxPQUFPLE9BQU8sT0FBTyxPQUFPLE9BQU8sT0FBTyxPQUFPLE9BQU8sT0FBTyxPQUFPLE9BQU8sT0FBTyxPQUFPLE9BQU8sT0FBTyxPQUFPLE9BQU8sT0FBTyxPQUFPLE9BQU8sT0FBTyxPQUFPLE9BQU8sT0FBTyxPQUFPLE9BQU8sT0FBTyxPQUFPLE9BQU8sT0FBTyxPQUFPLE9BQU8sT0FBTyxPQUFPLE9BQU8sT0FBTyxPQUFPLE9BQU8sT0FBTyxPQUFPLE9BQU8sT0FBTyxPQUFPLE9BQU8sT0FBTyxPQUFPLE9BQU8sT0FBTyxPQUFPLE9BQU8sT0FBTyxPQUFPLE9BQU8sT0FBTyxPQUFPLE9BQU8sT0FBTyxPQUFPLE9BQU8sT0FBTyxPQUFPLE9BQU8sT0FBTyxPQUFPLE9BQU8sT0FBTyxPQUFPLE9BQU8sT0FBTyxPQUFPLE9BQU8sT0FBTyxPQUFPLE9BQU8sT0FBTyxPQUFPLE9BQU8sT0FBTyxPQUFPLE9BQU8sT0FBTyxPQUFPLE9BQU8sT0FBTyxPQUFPLE9BQU8sT0FBTyxPQUFPLE9BQU8sT0FBTyxPQUFPLE9BQU8sT0FBTyxPQUFPLE9BQU8sT0FBTyxPQUFPLE9BQU8sT0FB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QixDQUFDLFFBQVEsNFhBQTRYO0FBQUEsTUFDclksQ0FBQyxRQUFRLHNqQkFBc2pCO0FBQUEsTUFDL2pCLENBQUMsUUFBUSw0WEFBNFg7QUFBQSxNQUNyWSxDQUFDLFFBQVEsc2pCQUFzakI7QUFBQSxNQUMvakIsQ0FBQyxRQUFRLDRYQUE0WDtBQUFBLE1BQ3JZLENBQUMsUUFBUSxzakJBQXNqQjtBQUFBLE1BQy9qQixDQUFDLFFBQVEsNFhBQTRYO0FBQUEsTUFDclksQ0FBQyxRQUFRLHNqQkFBc2pCO0FBQUEsTUFDL2pCLENBQUMsUUFBUSw0WEFBNFg7QUFBQSxNQUNyWSxDQUFDLFFBQVEsc2pCQUFzakI7QUFBQSxNQUMvakIsQ0FBQyxRQUFRLDRYQUE0WDtBQUFBLE1BQ3JZLENBQUMsUUFBUSxzakJBQXNqQjtBQUFBLE1BQy9qQixDQUFDLFFBQVEsNFhBQTRYO0FBQUEsTUFDclksQ0FBQyxRQUFRLHNqQkFBc2pCO0FBQUEsTUFDL2pCLENBQUMsUUFBUSw0WEFBNFg7QUFBQSxNQUNyWSxDQUFDLFFBQVEsc2pCQUFzakI7QUFBQSxNQUMvakIsQ0FBQyxRQUFRLDRYQUE0WDtBQUFBLE1BQ3JZLENBQUMsUUFBUSxzakJBQXNqQjtBQUFBLE1BQy9qQixDQUFDLFFBQVEsNFhBQTRYO0FBQUEsTUFDclksQ0FBQyxRQUFRLHNqQkFBc2pCO0FBQUEsTUFDL2pCLENBQUMsUUFBUSw0WEFBNFg7QUFBQSxNQUNyWSxDQUFDLFFBQVEsc2pCQUFzakI7QUFBQSxNQUMvakIsQ0FBQyxRQUFRLDRYQUE0WDtBQUFBLE1BQ3JZLENBQUMsUUFBUSxzakJBQXNqQjtBQUFBLE1BQy9qQixDQUFDLFFBQVEsNFhBQTRYO0FBQUEsTUFDclksQ0FBQyxRQUFRLHNqQkFBc2pCO0FBQUEsTUFDL2pCLENBQUMsUUFBUSw0WEFBNFg7QUFBQSxNQUNyWSxDQUFDLFFBQVEsc2pCQUFzakI7QUFBQSxNQUMvakIsQ0FBQyxRQUFRLDRYQUE0WDtBQUFBLE1BQ3JZLENBQUMsUUFBUSxzakJBQXNqQjtBQUFBLE1BQy9qQixDQUFDLFFBQVEsNFhBQTRYO0FBQUEsTUFDclksQ0FBQyxRQUFRLHNqQkFBc2pCO0FBQUEsTUFDL2pCLENBQUMsUUFBUSw0WEFBNFg7QUFBQSxNQUNyWSxDQUFDLFFBQVEsc2pCQUFzakI7QUFBQSxNQUMvakIsQ0FBQyxRQUFRLDRYQUE0WDtBQUFBLE1BQ3JZLENBQUMsUUFBUSxzakJBQXNqQjtBQUFBLE1BQy9qQixDQUFDLFFBQVEsNFhBQTRYO0FBQUEsTUFDclksQ0FBQyxRQUFRLHNqQkFBc2pCO0FBQUEsTUFDL2pCLENBQUMsUUFBUSw0WEFBNFg7QUFBQSxNQUNyWSxDQUFDLFFBQVEsc2pCQUFzakI7QUFBQSxNQUMvakIsQ0FBQyxRQUFRLDRYQUE0WDtBQUFBLE1BQ3JZLENBQUMsUUFBUSxzakJBQXNqQjtBQUFBLE1BQy9qQixDQUFDLFFBQVEsNFhBQTRYO0FBQUEsTUFDclksQ0FBQyxRQUFRLDRYQUE0WDtBQUFBLE1BQ3JZLENBQUMsUUFBUSxzakJBQXNqQjtBQUFBLE1BQy9qQixDQUFDLFFBQVEsNFhBQTRYO0FBQUEsTUFDclksQ0FBQyxRQUFRLHNqQkFBc2pCO0FBQUEsTUFDL2pCLENBQUMsUUFBUSw0WEFBNFg7QUFBQSxNQUNyWSxDQUFDLFFBQVEsc2pCQUFzakI7QUFBQSxNQUMvakIsQ0FBQyxRQUFRLDRYQUE0WDtBQUFBLE1BQ3JZLENBQUMsUUFBUSxzakJBQXNqQjtBQUFBLE1BQy9qQixDQUFDLFFBQVEsNFhBQTRYO0FBQUEsTUFDclksQ0FBQyxRQUFRLHNqQkFBc2pCO0FBQUEsTUFDL2pCLENBQUMsUUFBUSw0WEFBNFg7QUFBQSxNQUNyWSxDQUFDLFFBQVEsc2pCQUFzakI7QUFBQSxNQUMvakIsQ0FBQyxRQUFRLDRYQUE0WDtBQUFBLE1BQ3JZLENBQUMsUUFBUSxzakJBQXNqQjtBQUFBLE1BQy9qQixDQUFDLFFBQVEsNFhBQTRYO0FBQUEsTUFDclksQ0FBQyxRQUFRLHNqQkFBc2pCO0FBQUEsTUFDL2pCLENBQUMsUUFBUSw0WEFBNFg7QUFBQSxNQUNyWSxDQUFDLFFBQVEsc2pCQUFzakI7QUFBQSxNQUMvakIsQ0FBQyxRQUFRLDRYQUE0WDtBQUFBLE1BQ3JZLENBQUMsUUFBUSxzakJBQXNqQjtBQUFBLE1BQy9qQixDQUFDLFFBQVEsNFhBQTRYO0FBQUEsTUFDclksQ0FBQyxRQUFRLHNqQkFBc2pCO0FBQUEsTUFDL2pCLENBQUMsUUFBUSw0WEFBNFg7QUFBQSxNQUNyWSxDQUFDLFFBQVEsc2pCQUFzakI7QUFBQSxNQUMvakIsQ0FBQyxRQUFRLDRYQUE0WDtBQUFBLE1BQ3JZLENBQUMsUUFBUSxzakJBQXNqQjtBQUFBLE1BQy9qQixDQUFDLFFBQVEsNFhBQTRYO0FBQUEsTUFDclksQ0FBQyxRQUFRLHNqQkFBc2pCO0FBQUEsTUFDL2pCLENBQUMsUUFBUSw0WEFBNFg7QUFBQSxNQUNyWSxDQUFDLFFBQVEsc2pCQUFzakI7QUFBQSxNQUMvakIsQ0FBQyxRQUFRLDRYQUE0WDtBQUFBLE1BQ3JZLENBQUMsUUFBUSxzakJBQXNqQjtBQUFBLE1BQy9qQixDQUFDLFFBQVEsNFhBQTRYO0FBQUEsTUFDclksQ0FBQyxRQUFRLHNqQkFBc2pCO0FBQUEsTUFDL2pCLENBQUMsUUFBUSw0WEFBNFg7QUFBQSxNQUNyWSxDQUFDLFFBQVEsc2pCQUFzakI7QUFBQSxNQUMvakIsQ0FBQyxRQUFRLDRYQUE0WDtBQUFBLE1BQ3JZLENBQUMsUUFBUSxzakJBQXNqQjtBQUFBLE1BQy9qQixDQUFDLFFBQVEsNFhBQTRYO0FBQUEsTUFDclksQ0FBQyxRQUFRLHNqQkFBc2pCO0FBQUEsTUFDL2pCLENBQUMsUUFBUSw0WEFBNFg7QUFBQSxNQUNyWSxDQUFDLFFBQVEsc2pCQUFzakI7QUFBQSxNQUMvakIsQ0FBQyxRQUFRLDRYQUE0WDtBQUFBLE1BQ3JZLENBQUMsUUFBUSxzakJBQXNqQjtBQUFBLE1BQy9qQixDQUFDLFFBQVEsNFhBQTRYO0FBQUEsTUFDclksQ0FBQyxRQUFRLHNqQkFBc2pCO0FBQUEsTUFDL2pCLENBQUMsUUFBUSw0WEFBNFg7QUFBQSxNQUNyWSxDQUFDLFFBQVEsc2pCQUFzakI7QUFBQSxNQUMvakIsQ0FBQyxRQUFRLDRYQUE0WDtBQUFBLE1BQ3JZLENBQUMsUUFBUSxzakJBQXNqQjtBQUFBLE1BQy9qQixDQUFDLFFBQVEsNFhBQTRYO0FBQUEsTUFDclksQ0FBQyxRQUFRLHNqQkFBc2pCO0FBQUEsTUFDL2pCLENBQUMsUUFBUSw0WEFBNFg7QUFBQSxNQUNyWSxDQUFDLFFBQVEsc2pCQUFzakI7QUFBQSxNQUMvakIsQ0FBQyxRQUFRLDRYQUE0WDtBQUFBLE1BQ3JZLENBQUMsUUFBUSxzakJBQXNqQjtBQUFBLE1BQy9qQixDQUFDLFFBQVEsNFhBQTRYO0FBQUEsTUFDclksQ0FBQyxRQUFRLHNqQkFBc2pCO0FBQUEsTUFDL2pCLENBQUMsUUFBUSw0WEFBNFg7QUFBQSxNQUNyWSxDQUFDLFFBQVEsc2pCQUFzakI7QUFBQSxNQUMvakIsQ0FBQyxRQUFRLDRYQUE0WDtBQUFBLE1BQ3JZLENBQUMsUUFBUSxzakJBQXNqQjtBQUFBLE1BQy9qQixDQUFDLFFBQVEsNFhBQTRYO0FBQUEsTUFDclksQ0FBQyxRQUFRLHNqQkFBc2pCO0FBQUEsTUFDL2pCLENBQUMsUUFBUSw0WEFBNFg7QUFBQSxNQUNyWSxDQUFDLFFBQVEsc2pCQUFzakI7QUFBQSxNQUMvakIsQ0FBQyxRQUFRLDRYQUE0WDtBQUFBLE1BQ3JZLENBQUMsUUFBUSxzakJBQXNqQjtBQUFBLE1BQy9qQixDQUFDLFFBQVEsNFhBQTRYO0FBQUEsTUFDclksQ0FBQyxRQUFRLHNqQkFBc2pCO0FBQUEsTUFDL2pCLENBQUMsUUFBUSw0WEFBNFg7QUFBQSxNQUNyWSxDQUFDLFFBQVEsc2pCQUFzakI7QUFBQSxNQUMvakIsQ0FBQyxRQUFRLDRYQUE0WDtBQUFBLE1BQ3JZLENBQUMsUUFBUSxzakJBQXNqQjtBQUFBLE1BQy9qQixDQUFDLFFBQVEsNFhBQTRYO0FBQUEsTUFDclksQ0FBQyxRQUFRLHNqQkFBc2pCO0FBQUEsTUFDL2pCLENBQUMsUUFBUSw0WEFBNFg7QUFBQSxNQUNyWSxDQUFDLFFBQVEsc2pCQUFzakI7QUFBQSxNQUMvakIsQ0FBQyxRQUFRLDRYQUE0WDtBQUFBLE1BQ3JZLENB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LGtCQUFrQixjQUFjLFVBQVUsZUFBZSxTQUFTLEdBQUc7QUFDdkUsaUJBQVMsU0FBUztBQUFBLFVBQ2hCO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsUUFDRjtBQUFBLE1BQ0Y7QUFBQSxJQUNGLFNBQVMsT0FBTztBQUFBLElBQ2hCO0FBQ0EsYUFBUyxjQUFjLE9BQU8sS0FBSyxRQUFRLEdBQUcsRUFB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QUNOLE1BQU07QUFBQSxNQUNOLE1BQU07QUFBQSxNQUNOLE1BQU07QUFBQSxNQUNOLE9BQU87QUFBQSxNQUNQLFdBQVc7QUFBQSxNQUNYLFdBQVc7QUFBQSxNQUNYLFlBQVk7QUFBQSxNQUNaLFlBQVk7QUFBQSxNQUNaLFlBQVk7QUFBQSxNQUNaLFlBQVk7QUFBQSxNQUNaLFlBQVk7QUFBQSxNQUNaLFlBQVk7QUFBQSxNQUNaLFlBQVk7QUFBQSxNQUNaLFlBQVk7QUFBQSxNQUNaLFlBQVk7QUFBQSxNQUNaLFlBQVk7QUFBQSxNQUNaLFlBQVk7QUFBQSxNQUNaLFlBQVk7QUFBQSxNQUNaLFlBQVk7QUFBQSxNQUNaLFlBQVk7QUFBQSxNQUNaLFlBQVk7QUFBQSxNQUNaLFNBQVM7QUFBQSxNQUNULFVBQVU7QUFBQSxNQUNWLFlBQVk7QUFBQSxNQUNaLFVBQVU7QUFBQSxNQUNWLFdBQVc7QUFBQSxNQUNYLFdBQVc7QUFBQSxNQUNYLFdBQVc7QUFBQSxNQUNYLFNBQVM7QUFBQSxNQUNULFVBQVU7QUFBQSxNQUNWLFdBQVc7QUFBQSxNQUNYLFdBQVc7QUFBQSxNQUNYLFVBQVU7QUFBQSxNQUNWLFdBQVc7QUFBQSxNQUNYLFdBQVc7QUFBQSxNQUNYLFlBQVk7QUFBQSxNQUNaLFFBQVE7QUFBQSxNQUNSLFNBQVM7QUFBQSxNQUNULFVBQVU7QUFBQSxNQUNWLFdBQVc7QUFBQSxNQUNYLGFBQWE7QUFBQSxNQUNiLFdBQVc7QUFBQSxNQUNYLGVBQWU7QUFBQSxNQUNmLGVBQWU7QUFBQSxNQUNmLFNBQVM7QUFBQSxNQUNULFNBQVM7QUFBQSxNQUNULFNBQVM7QUFBQSxNQUNULFNBQVM7QUFBQSxNQUNULFNBQVM7QUFBQSxNQUNULG9CQUFvQjtBQUFBLE1BQ3BCLGlCQUFpQjtBQUFBLE1BQ2pCLHVCQUF1QjtBQUFBLE1BQ3ZCLFlBQVk7QUFBQSxNQUNaLHNCQUFzQjtBQUFBLE1BQ3RCLFFBQVE7QUFBQSxNQUNSLFFBQVE7QUFBQSxNQUNSLFVBQVU7QUFBQSxNQUNWLFVBQVU7QUFBQSxNQUNWLFdBQVc7QUFBQSxNQUNYLFVBQVU7QUFBQSxNQUNWLFVBQVU7QUFBQSxNQUNWLFVBQVU7QUFBQSxNQUNWLGNBQWM7QUFBQSxNQUNkLFdBQVc7QUFBQSxNQUNYLFNBQVM7QUFBQSxNQUNULFVBQVU7QUFBQSxNQUNWLFdBQVc7QUFBQSxNQUNYLFdBQVc7QUFBQSxNQUNYLFNBQVM7QUFBQSxNQUNULFdBQVc7QUFBQSxNQUNYLGdCQUFnQjtBQUFBLE1BQ2hCLFlBQVk7QUFBQSxNQUNaLGFBQWE7QUFBQSxNQUNiLFlBQVk7QUFBQSxNQUNaLE1BQU07QUFBQSxNQUNOLHFCQUFxQjtBQUFBLE1BQ3JCLGtCQUFrQjtBQUFBLE1BQ2xCLE1BQU07QUFBQSxNQUNOLGNBQWM7QUFBQSxNQUNkLE1BQU07QUFBQSxNQUNOLFVBQVU7QUFBQSxNQUNWLFdBQVc7QUFBQSxNQUNYLFdBQVc7QUFBQSxNQUNYLE9BQU87QUFBQSxNQUNQLGVBQWU7QUFBQSxJQUNqQjtBQUFBLEVBQ0Y7QUFDRixDQUFDO0FBR0QsSUFBSXlELGdDQUErQnpELFlBQVc7QUFBQSxFQUM1QyxvRkFBb0YsVUFBVSxTQUFTO0FBQ3JHO0FBQ0EsWUFBUSxVQUFVO0FBQUEsTUFDaEIsT0FBTztBQUFBLE1BQ1AsT0FBTztBQUFBLE1BQ1AsT0FBTztBQUFBLE1BQ1AsT0FBTztBQUFBLE1BQ1AsT0FBTztBQUFBLE1BQ1AsT0FBTztBQUFBLE1BQ1AsT0FBTztBQUFBLE1BQ1AsT0FBTztBQUFBLE1BQ1AsT0FBTztBQUFBLE1BQ1AsT0FBTztBQUFBLE1BQ1AsT0FBTztBQUFBLE1BQ1AsT0FBTztBQUFBLE1BQ1AsT0FBTztBQUFBLE1BQ1AsT0FBTztBQUFBLE1BQ1AsT0FBTztBQUFBLE1BQ1AsT0FBTztBQUFBLE1BQ1AsT0FBTztBQUFBLE1BQ1AsT0FBTztBQUFBLE1BQ1AsT0FBTztBQUFBLE1BQ1AsUUFBUTtBQUFBLE1BQ1IsUUFBUTtBQUFBLE1BQ1IsUUFBUTtBQUFBLE1BQ1IsUUFBUTtBQUFBLE1BQ1IsUUFBUTtBQUFBLE1BQ1IsUUFBUTtBQUFBLE1BQ1IsUUFBUTtBQUFBLE1BQ1IsUUFBUTtBQUFBLE1BQ1IsUUFBUTtBQUFBLE1BQ1IsUUFBUTtBQUFBLE1BQ1IsUUFBUTtBQUFBLE1BQ1IsUUFBUTtBQUFBLE1BQ1IsUUFBUTtBQUFBLE1BQ1IsUUFBUTtBQUFBLE1BQ1IsUUFBUTtBQUFBLE1BQ1IsUUFBUTtBQUFBLE1BQ1IsUUFBUTtBQUFBLE1BQ1IsU0FBUztBQUFBLE1BQ1QsU0FBUztBQUFBLE1BQ1QsU0FBUztBQUFBLE1BQ1QsU0FBUztBQUFBLE1BQ1QsU0FBUztBQUFBLE1BQ1QsU0FBUztBQUFBLE1BQ1QsU0FBUztBQUFBLE1BQ1QsU0FBUztBQUFBLE1BQ1QsU0FBUztBQUFBLE1BQ1QsU0FBUztBQUFBLE1BQ1QsU0FBUztBQUFBLE1BQ1QsU0FBUztBQUFBLE1BQ1QsU0FBUztBQUFBLE1BQ1QsU0FBUztBQUFBLE1BQ1QsU0FBUztBQUFBLE1BQ1QsY0FBYztBQUFBLFFBQ1osUUFBUTtBQUFBLFFBQ1IsU0FBUztBQUFBLE1BQ1g7QUFBQSxNQUNBLFVBQVU7QUFBQSxNQUNWLFNBQVM7QUFBQSxNQUNULGVBQWU7QUFBQSxRQUNiLFFBQVE7QUFBQSxRQUNSLFNBQVM7QUFBQSxNQUNYO0FBQUEsTUFDQSxXQUFXO0FBQUEsTUFDWCxVQUFVO0FBQUEsTUFDVixlQUFlO0FBQUEsUUFDYixRQUFRO0FBQUEsUUFDUixTQUFTO0FBQUEsTUFDWDtBQUFBLE1BQ0EsV0FBVztBQUFBLE1BQ1gsVUFBVTtBQUFBLE1BQ1YsZUFBZTtBQUFBLFFBQ2IsUUFBUTtBQUFBLFFBQ1IsU0FBUztBQUFBLE1BQ1g7QUFBQSxNQUNBLFdBQVc7QUFBQSxNQUNYLFVBQVU7QUFBQSxNQUNWLGVBQWU7QUFBQSxRQUNiLFFBQVE7QUFBQSxRQUNSLFNBQVM7QUFBQSxNQUNYO0FBQUEsTUFDQSxXQUFXO0FBQUEsTUFDWCxVQUFVO0FBQUEsTUFDVixlQUFlO0FBQUEsUUFDYixRQUFRO0FBQUEsUUFDUixTQUFTO0FBQUEsTUFDWDtBQUFBLE1BQ0EsV0FBVztBQUFBLE1BQ1gsVUFBVTtBQUFBLE1BQ1YsZUFBZTtBQUFBLFFBQ2IsUUFBUTtBQUFBLFFBQ1IsU0FBUztBQUFBLE1BQ1g7QUFBQSxNQUNBLFdBQVc7QUFBQSxNQUNYLFVBQVU7QUFBQSxNQUNWLGVBQWU7QUFBQSxRQUNiLFFBQVE7QUFBQSxRQUNSLFNBQVM7QUFBQSxNQUNYO0FBQUEsTUFDQSxXQUFXO0FBQUEsTUFDWCxVQUFVO0FBQUEsTUFDVixlQUFlO0FBQUEsUUFDYixRQUFRO0FBQUEsUUFDUixTQUFTO0FBQUEsTUFDWDtBQUFBLE1BQ0EsV0FBVztBQUFBLE1BQ1gsVUFBVTtBQUFBLE1BQ1YsZUFBZTtBQUFBLFFBQ2IsUUFBUTtBQUFBLFFBQ1IsU0FBUztBQUFBLE1BQ1g7QUFBQSxNQUNBLFdBQVc7QUFBQSxNQUNYLFVBQVU7QUFBQSxNQUNWLFlBQVk7QUFBQSxRQUNWLFFBQVE7QUFBQSxRQUNSLFNBQVM7QUFBQSxNQUNYO0FBQUEsTUFDQSxXQUFXO0FBQUEsTUFDWCxZQUFZO0FBQUEsUUFDVixRQUFRO0FBQUEsUUFDUixTQUFTO0FBQUEsTUFDWDtBQUFBLE1BQ0EsV0FBVztBQUFBLE1BQ1gsWUFBWTtBQUFBLFFBQ1YsUUFBUTtBQUFBLFFBQ1IsU0FBUztBQUFBLE1BQ1g7QUFBQSxNQUNBLFdBQVc7QUFBQSxNQUNYLFlBQVk7QUFBQSxRQUNWLFFBQVE7QUFBQSxRQUNSLFNBQVM7QUFBQSxNQUNYO0FBQUEsTUFDQSxXQUFXO0FBQUEsTUFDWCxZQUFZO0FBQUEsUUFDVixRQUFRO0FBQUEsUUFDUixTQUFTO0FBQUEsTUFDWDtBQUFBLE1BQ0EsV0FBVztBQUFBLE1BQ1gsWUFBWTtBQUFBLFFBQ1YsUUFBUTtBQUFBLFFBQ1IsU0FBUztBQUFBLE1BQ1g7QUFBQSxNQUNBLFdBQVc7QUFBQSxNQUNYLFlBQVk7QUFBQSxRQUNWLFFBQVE7QUFBQSxRQUNSLFNBQVM7QUFBQSxNQUNYO0FBQUEsTUFDQSxXQUFXO0FBQUEsTUFDWCxZQUFZO0FBQUEsUUFDVixRQUFRO0FBQUEsUUFDUixTQUFTO0FBQUEsTUFDWDtBQUFBLE1BQ0EsV0FBVztBQUFBLE1BQ1gsWUFBWTtBQUFBLFFBQ1YsUUFBUTtBQUFBLFFBQ1IsU0FBUztBQUFBLE1BQ1g7QUFBQSxNQUNBLFdBQVc7QUFBQSxNQUNYLGFBQWE7QUFBQSxRQUNYLFFBQVE7QUFBQSxRQUNSLFNBQVM7QUFBQSxNQUNYO0FBQUEsTUFDQSxXQUFXO0FBQUEsTUFDWCxhQUFhO0FBQUEsUUFDWCxRQUFRO0FBQUEsUUFDUixTQUFTO0FBQUEsTUFDWDtBQUFBLE1BQ0EsV0FBVztBQUFBLE1BQ1gsYUFBYTtBQUFBLFFBQ1gsUUFBUTtBQUFBLFFBQ1IsU0FBUztBQUFBLE1BQ1g7QUFBQSxNQUNBLFdBQVc7QUFBQSxNQUNYLGFBQWE7QUFBQSxRQUNYLFFBQVE7QUFBQSxRQUNSLFNBQVM7QUFBQSxNQUNYO0FBQUEsTUFDQSxXQUFXO0FBQUEsTUFDWCxhQUFhO0FBQUEsUUFDWCxRQUFRO0FBQUEsUUFDUixTQUFTO0FBQUEsTUFDWDtBQUFBLE1BQ0EsV0FBVztBQUFBLE1BQ1gsYUFBYTtBQUFBLFFBQ1gsUUFBUTtBQUFBLFFBQ1IsU0FBUztBQUFBLE1BQ1g7QUFBQSxNQUNBLFdBQVc7QUFBQSxNQUNYLFNBQVM7QUFBQSxRQUNQLFFBQVE7QUFBQSxRQUNSLFNBQVM7QUFBQSxNQUNYO0FBQUEsTUFDQSxVQUFVO0FBQUEsTUFDVixZQUFZO0FBQUEsTUFDWixTQUFTO0FBQUEsUUFDUCxRQUFRO0FBQUEsUUFDUixTQUFTO0FBQUEsTUFDWDtBQUFBLE1BQ0EsVUFBVTtBQUFBLE1BQ1YsWUFBWTtBQUFBLE1BQ1osU0FBUztBQUFBLFFBQ1AsUUFBUTtBQUFBLFFBQ1IsU0FBUztBQUFBLE1BQ1g7QUFBQSxNQUNBLFVBQVU7QUFBQSxNQUNWLFlBQVk7QUFBQSxNQUNaLFNBQVM7QUFBQSxRQUNQLFFBQVE7QUFBQSxRQUNSLFNBQVM7QUFBQSxNQUNYO0FBQUEsTUFDQSxVQUFVO0FBQUEsTUFDVixZQUFZO0FBQUEsTUFDWixTQUFTO0FBQUEsUUFDUCxRQUFRO0FBQUEsUUFDUixTQUFTO0FBQUEsTUFDWDtBQUFBLE1BQ0EsVUFBVTtBQUFBLE1BQ1YsWUFBWTtBQUFBLE1BQ1osU0FBUztBQUFBLFFBQ1AsUUFBUTtBQUFBLFFBQ1IsU0FBUztBQUFBLE1BQ1g7QUFBQSxNQUNBLFVBQVU7QUFBQSxNQUNWLFlBQVk7QUFBQSxNQUNaLFNBQVM7QUFBQSxRQUNQLFFBQVE7QUFBQSxRQUNSLFNBQVM7QUFBQSxNQUNYO0FBQUEsTUFDQSxVQUFVO0FBQUEsTUFDVixZQUFZO0FBQUEsTUFDWixTQUFTO0FBQUEsUUFDUCxRQUFRO0FBQUEsUUFDUixTQUFTO0FBQUEsTUFDWDtBQUFBLE1BQ0EsVUFBVTtBQUFBLE1BQ1YsWUFBWTtBQUFBLE1BQ1osU0FBUztBQUFBLFFBQ1AsUUFBUTtBQUFBLFFBQ1IsU0FBUztBQUFBLE1BQ1g7QUFBQSxNQUNBLFVBQVU7QUFBQSxNQUNWLFlBQVk7QUFBQSxNQUNaLFNBQVM7QUFBQSxRQUNQLFFBQVE7QUFBQSxRQUNSLFNBQVM7QUFBQSxNQUNYO0FBQUEsTUFDQSxVQUFVO0FBQUEsTUFDVixZQUFZO0FBQUEsTUFDWixTQUFTO0FBQUEsUUFDUCxRQUFRO0FBQUEsUUFDUixTQUFTO0FBQUEsTUFDWDtBQUFBLE1BQ0EsVUFBVTtBQUFBLE1BQ1YsWUFBWTtBQUFBLE1BQ1osU0FBUztBQUFBLFFBQ1AsUUFBUTtBQUFBLFFBQ1IsU0FBUztBQUFBLE1BQ1g7QUFBQSxNQUNBLFVBQVU7QUFBQSxNQUNWLFlBQVk7QUFBQSxNQUNaLFNBQVM7QUFBQSxRQUNQLFFBQVE7QUFBQSxRQUNSLFNBQVM7QUFBQSxNQUNYO0FBQUEsTUFDQSxVQUFVO0FBQUEsTUFDVixZQUFZO0FBQUEsTUFDWixTQUFTO0FBQUEsUUFDUCxRQUFRO0FBQUEsUUFDUixTQUFTO0FBQUEsTUFDWDtBQUFBLE1BQ0EsVUFBVTtBQUFBLE1BQ1YsWUFBWTtBQUFBLE1BQ1osU0FBUztBQUFBLFFBQ1AsUUFBUTtBQUFBLFFBQ1IsU0FBUztBQUFBLE1BQ1g7QUFBQSxNQUNBLFVBQVU7QUFBQSxNQUNWLFlBQVk7QUFBQSxNQUNaLFNBQVM7QUFBQSxRQUNQLFFBQVE7QUFBQSxRQUNSLFNBQVM7QUFBQSxNQUNYO0FBQUEsTUFDQSxVQUFVO0FBQUEsTUFDVixZQUFZO0FBQUEsTUFDWixTQUFTO0FBQUEsUUFDUCxRQUFRO0FBQUEsUUFDUixTQUFTO0FBQUEsTUFDWDtBQUFBLE1BQ0EsVUFBVTtBQUFBLE1BQ1YsWUFBWTtBQUFBLE1BQ1osU0FBUztBQUFBLFFBQ1AsUUFBUTtBQUFBLFFBQ1IsU0FBUztBQUFBLE1BQ1g7QUFBQSxNQUNBLFVBQVU7QUFBQSxNQUNWLFlBQVk7QUFBQSxNQUNaLFVBQVU7QUFBQSxRQUNSLFFBQVE7QUFBQSxRQUNSLFNBQVM7QUFBQSxNQUNYO0FBQUEsTUFDQSxXQUFXO0FBQUEsTUFDWCxhQUFhO0FBQUEsTUFDYixVQUFVO0FBQUEsUUFDUixRQUFRO0FBQUEsUUFDUixTQUFTO0FBQUEsTUFDWDtBQUFBLE1BQ0EsV0FBVztBQUFBLE1BQ1gsYUFBYTtBQUFBLE1BQ2IsVUFBVTtBQUFBLFFBQ1IsUUFBUTtBQUFBLFFBQ1IsU0FBUztBQUFBLE1BQ1g7QUFBQSxNQUNBLFdBQVc7QUFBQSxNQUNYLGFBQWE7QUFBQSxNQUNiLFVBQVU7QUFBQSxRQUNSLFFBQVE7QUFBQSxRQUNSLFNBQVM7QUFBQSxNQUNYO0FBQUEsTUFDQSxXQUFXO0FBQUEsTUFDWCxhQUFhO0FBQUEsTUFDYixVQUFVO0FBQUEsUUFDUixRQUFRO0FBQUEsUUFDUixTQUFTO0FBQUEsTUFDWDtBQUFBLE1BQ0EsV0FBVztBQUFBLE1BQ1gsYUFBYTtBQUFBLE1BQ2IsVUFBVTtBQUFBLFFBQ1IsUUFBUTtBQUFBLFFBQ1IsU0FBUztBQUFBLE1BQ1g7QUFBQSxNQUNBLFdBQVc7QUFBQSxNQUNYLGFBQWE7QUFBQSxNQUNiLFVBQVU7QUFBQSxRQUNSLFFBQVE7QUFBQSxRQUNSLFNBQVM7QUFBQSxNQUNYO0FBQUEsTUFDQSxXQUFXO0FBQUEsTUFDWCxhQUFhO0FBQUEsTUFDYixVQUFVO0FBQUEsUUFDUixRQUFRO0FBQUEsUUFDUixTQUFTO0FBQUEsTUFDWDtBQUFBLE1BQ0EsV0FBVztBQUFBLE1BQ1gsYUFBYTtBQUFBLE1BQ2IsZUFBZTtBQUFBLFFBQ2IsUUFBUTtBQUFBLFFBQ1IsU0FBUztBQUFBLE1BQ1g7QUFBQSxNQUNBLGVBQWU7QUFBQSxRQUNiLFFBQVE7QUFBQSxRQUNSLFNBQVM7QUFBQSxNQUNYO0FBQUEsTUFDQSxZQUFZO0FBQUEsUUFDVixRQUFRO0FBQUEsUUFDUixTQUFTO0FBQUEsTUFDWDtBQUFBLE1BQ0EsY0FBYztBQUFBLFFBQ1osUUFBUTtBQUFBLFFBQ1IsU0FBUztBQUFBLE1BQ1g7QUFBQSxNQUNBLFlBQVk7QUFBQSxRQUNWLFFBQVE7QUFBQSxRQUNSLFNBQVM7QUFBQSxNQUNYO0FBQUEsTUFDQSxjQUFjO0FBQUEsUUFDWixRQUFRO0FBQUEsUUFDUixTQUFTO0FBQUEsTUFDWDtBQUFBLE1BQ0EsV0FBVztBQUFBLFFBQ1QsUUFBUTtBQUFBLFFBQ1IsU0FBUztBQUFBLE1BQ1g7QUFBQSxNQUNBLGNBQWM7QUFBQSxRQUNaLFFBQVE7QUFBQSxRQUNSLFNBQVM7QUFBQSxNQUNYO0FBQUEsTUFDQSxjQUFjO0FBQUEsUUFDWixRQUFRO0FBQUEsUUFDUixTQUFTO0FBQUEsTUFDWDtBQUFBLE1BQ0EsU0FBUztBQUFBLFFBQ1AsUUFBUTtBQUFBLFFBQ1IsU0FBUztBQUFBLE1BQ1g7QUFBQSxNQUNBLFNBQVM7QUFBQSxRQUNQLFFBQVE7QUFBQSxRQUNSLFNBQVM7QUFBQSxNQUNYO0FBQUEsTUFDQSxVQUFVO0FBQUEsUUFDUixRQUFRO0FBQUEsUUFDUixTQUFTO0FBQUEsTUFDWDtBQUFBLE1BQ0EsU0FBUztBQUFBLFFBQ1AsUUFBUTtBQUFBLFFBQ1IsU0FBUztBQUFBLE1BQ1g7QUFBQSxNQUNBLFlBQVk7QUFBQSxRQUNWLFFBQVE7QUFBQSxRQUNSLFNBQVM7QUFBQSxNQUNYO0FBQUEsTUFDQSxVQUFVO0FBQUEsUUFDUixRQUFRO0FBQUEsUUFDUixTQUFTO0FBQUEsTUFDWDtBQUFBLE1BQ0EsUUFBUTtBQUFBLFFBQ04sUUFBUTtBQUFBLFFBQ1IsU0FBUztBQUFBLE1BQ1g7QUFBQSxNQUNBLG1CQUFtQjtBQUFBLFFBQ2pCLFFBQVE7QUFBQSxRQUNSLFNBQVM7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QyxRQUFRLHNqQkFBc2pCO0FBQUEsTUFDL2pCLENBQUMsUUFBUSxzakJBQXNqQjtBQUFBLE1BQy9qQixDQUFDLFFBQVEsc2pCQUFzakI7QUFBQSxNQUMvakIsQ0FBQyxRQUFRLHNqQkFBc2pCO0FBQUEsTUFDL2pCLENBQUMsUUFBUSxzakJBQXNqQjtBQUFBLE1BQy9qQixDQUFDLFFBQVEsc2pCQUFzakI7QUFBQSxNQUMvakIsQ0FBQyxRQUFRLHNqQkFBc2pCO0FBQUEsTUFDL2pCLENBQUMsUUFBUSxzakJBQXNqQjtBQUFBLE1BQy9qQixDQUFDLFFBQVEsc2pCQUFzakI7QUFBQSxNQUMvakIsQ0FBQyxRQUFRLHNqQkFBc2pCO0FBQUEsTUFDL2pCLENBQUMsUUFBUSxzakJBQXNqQjtBQUFBLE1BQy9qQixDQUFDLFFBQVEsc2pCQUFzakI7QUFBQSxNQUMvakIsQ0FBQyxRQUFRLHNqQkFBc2pCO0FBQUEsTUFDL2pCLENBQUMsUUFBUSxzakJBQXNqQjtBQUFBLE1BQy9qQixDQUFDLFFBQVEsc2pCQUFzakI7QUFBQSxNQUMvakIsQ0FBQyxRQUFRLG9UQUFvVDtBQUFBLE1BQzdULENBQUMsUUFBUSxzakJBQXNqQjtBQUFBLE1BQy9qQixDQUFDLFFBQVEsc2pCQUFzakI7QUFBQSxNQUMvakIsQ0FBQyxRQUFRLHNqQkFBc2pCO0FBQUEsTUFDL2pCLENBQUMsUUFBUSxzakJBQXNqQjtBQUFBLE1BQy9qQixDQUFDLFFBQVEsc2pCQUFzakI7QUFBQSxNQUMvakIsQ0FBQyxRQUFRLHNqQkFBc2pCO0FBQUEsTUFDL2pCLENBQUMsUUFBUSxzakJBQXNqQjtBQUFBLE1BQy9qQixDQUFDLFFBQVEsc2pCQUFzakI7QUFBQSxNQUMvakIsQ0FBQyxRQUFRLHNqQkFBc2pCO0FBQUEsTUFDL2pCLENBQUMsUUFBUSxzakJBQXNqQjtBQUFBLE1BQy9qQixDQUFDLFFBQVEsc2pCQUFzakI7QUFBQSxNQUMvakIsQ0FBQyxRQUFRLHNqQkFBc2pCO0FBQUEsTUFDL2pCLENBQUMsUUFBUSxzakJBQXNqQjtBQUFBLE1BQy9qQixDQUFDLFFBQVEsc2pCQUFzakI7QUFBQSxNQUMvakIsQ0FBQyxRQUFRLHNqQkFBc2pCO0FBQUEsTUFDL2pCLENBQUMsUUFBUSxzakJBQXNqQjtBQUFBLE1BQy9qQixDQUFDLFFBQVEsc2pCQUFzakI7QUFBQSxNQUMvakIsQ0FBQyxRQUFRLHNqQkFBc2pCO0FBQUEsTUFDL2pCLENBQUMsUUFBUSxzakJBQXNqQjtBQUFBLE1BQy9qQixDQUFDLFFBQVEsc2pCQUFzakI7QUFBQSxNQUMvakIsQ0FBQyxRQUFRLHNqQkFBc2pCO0FBQUEsTUFDL2pCLENBQUMsUUFBUSxzakJBQXNqQjtBQUFBLE1BQy9qQixDQUFDLFFBQVEsc2pCQUFzakI7QUFBQSxNQUMvakIsQ0FBQyxRQUFRLHNqQkFBc2pCO0FBQUEsTUFDL2pCLENBQUMsUUFBUSxzakJBQXNqQjtBQUFBLE1BQy9qQixDQUFDLFFBQVEsc2pCQUFzakI7QUFBQSxNQUMvakIsQ0FBQyxRQUFRLHNqQkFBc2pCO0FBQUEsTUFDL2pCLENBQUMsUUFBUSxzakJBQXNqQjtBQUFBLE1BQy9qQixDQUFDLFFBQVEsc2pCQUFzakI7QUFBQSxNQUMvakIsQ0FBQyxRQUFRLHNqQkFBc2pCO0FBQUEsTUFDL2pCLENBQUMsUUFBUSxzakJBQXNqQjtBQUFBLE1BQy9qQixDQUFDLFFBQVEsc2pCQUFzakI7QUFBQSxNQUMvakIsQ0FBQyxRQUFRLHNqQkFBc2pCO0FBQUEsTUFDL2pCLENBQUMsUUFBUSxzakJBQXNqQjtBQUFBLE1BQy9qQixDQUFDLFFBQVEsc2pCQUFzakI7QUFBQSxNQUMvakIsQ0FBQyxRQUFRLHNqQkFBc2pCO0FBQUEsTUFDL2pCLENBQUMsUUFBUSxzQ0FBc0M7QUFBQSxNQUMvQyxDQUFDLFFBQVEsc2pCQUFzakI7QUFBQSxNQUMvakIsQ0FBQyxRQUFRLHNqQkFBc2pCO0FBQUEsTUFDL2pCLENBQUMsUUFBUSxzakJBQXNqQjtBQUFBLE1BQy9qQixDQUFDLFFBQVEsc2RBQXNkO0FBQUEsTUFDL2QsQ0FBQyxRQUFRLFVBQVUsR0FBRywwQkFBMEI7QUFBQSxNQUNoRCxDQUFDLFVB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LENBQUM7QUFBQSxNQUNwQixDQUFDLFFBQVEsVUFBVSxDQUFDO0FBQUEsTUFDcEIsQ0FBQyxRQUFRLGNBQWM7QUFBQSxNQUN2QixDQUFDLFFBQVEsUUFBUTtBQUFBLE1BQ2pCLENBQUMsUUFBUSxVQUFVLENBQUM7QUFBQSxNQUNwQixDQUFDLFFBQVEsVUFBVSxFQUFFO0FBQUEsTUFDckIsQ0FBQyxRQUFRLFVBQVUsRUFBRTtBQUFBLE1BQ3JCLENBQUMsUUFBUSxVQUFVLEVBQUU7QUFBQSxNQUNyQixDQUFDLFFBQVEsVUFBVSxFQUFFO0FBQUEsTUFDckIsQ0FBQyxRQUFRLFVBQVUsRUFBRTtBQUFBLE1BQ3JCLENBQUMsUUFBUSxRQUFRO0FBQUEsTUFDakIsQ0FBQyxRQUFRLFFBQVE7QUFBQSxNQUNqQixDQUFDLFFBQVEsMEJBQTBCO0FBQUEsTUFDbkMsQ0FBQyxRQUFRLFVBQVUsRUFBRTtBQUFBLE1BQ3JCLENBQUMsUUFBUSxRQUFRO0FBQUEsTUFDakIsQ0FBQyxRQUFRLFFBQVE7QUFBQSxNQUNqQixDQUFDLFFBQVEsb0JBQW9CO0FBQUEsTUFDN0IsQ0FBQyxRQUFRLGdCQUFnQixFQUFFO0FBQUEsTUFDM0IsQ0FBQyxRQUFRLFVBQVUsRUFBRTtBQUFBLE1BQ3JCLENBQUMsUUFBUSxVQUFVLEVBQUU7QUFBQSxNQUNyQixDQUFDLFFBQVEsVUFBVSxFQUFFO0FBQUEsTUFDckIsQ0FBQyxRQUFRLFVBQVUsRUFBRTtBQUFBLE1BQ3JCLENBQUMsUUFBUSxVQUFVLEVBQUU7QUFBQSxNQUNyQixDQUFDLFFBQVEsVUFBVSxFQUFFO0FBQUEsTUFDckIsQ0FBQyxRQUFRLFVBQVUsRUFBRTtBQUFBLE1BQ3JCLENBQUMsUUFBUSxVQUFVLEVBQUU7QUFBQSxNQUNyQixDQUFDLFFBQVEsVUFBVSxDQUFDO0FBQUEsTUFDcEIsQ0FBQyxRQUFRLFVBQVUsRUFBRTtBQUFBLE1BQ3JCLENBQUMsUUFBUSxVQUFVLEVBQUU7QUFBQSxNQUNyQixDQUFDLFFBQVEsVUFBVSxFQUFFO0FBQUEsTUFDckIsQ0FBQyxRQUFRLFVBQVUsRUFBRTtBQUFBLE1BQ3JCLENBQUMsUUFBUSxVQUFVLEVBQUU7QUFBQSxNQUNyQixDQUFDLFFBQVEsVUFBVSxFQUFFO0FBQUEsTUFDckIsQ0FBQyxRQUFRLDRSQUE0UjtBQUFBLE1BQ3JTLENBQUMsUUFBUSwwSkFBMEosR0FBRyxzQkFBc0IsRUFBRTtBQUFBLE1BQzlMLENBQUMsWUFBWSxRQUFRO0FBQUEsSUFDdkI7QUFBQSxFQUNGO0FBQ0YsQ0FBQztBQUdELElBQUkrRCwyQkFBMEIvRCxZQUFXO0FBQUEsRUFDdkMsd0ZBQXdGLFVBQVUsU0FBUztBQUN6RyxZQUFRLFVBQVUsRUFBRSxRQUFRLENBQUMsS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE9BQU8sT0FBTyxPQUFPLE9BQU8sT0FBTyxPQUFPLE9BQU8sT0FBTyxPQUFPLE9BQU8sT0FBTyxPQUFPLE9BQU8sT0FBTyxPQUFPLE9BQU8sT0FBTyxPQUFPLE9BQU8sT0FBTyxPQUFPLE9BQU8sT0FBTyxPQUFPLE9BQU8sT0FBTyxPQUFPLE9BQU8sT0FBTyxPQUFPLE9BQU8sT0FBTyxPQUFPLE9BQU8sT0FBTyxPQUFPLE9BQU8sT0FBTyxPQUFPLE9BQU8sT0FBTyxPQUFPLE9BQU8sT0FBTyxPQUFPLE9BQU8sT0FBTyxPQUFPLE9BQU8sT0FBTyxPQUFPLE9BQU8sT0FBTyxPQUFPLE9BQU8sT0FBTyxPQUFPLE9BQU8sT0FBTyxPQUFPLE9BQU8sT0FBTyxPQUFPLE9BQU8sT0FBTyxPQUFPLE9BQU8sT0FBTyxPQUFPLE9BQU8sT0FBTyxPQUFPLE9BQU8sT0FBTyxPQUFPLE9BQU8sT0FBTyxPQUFPLE9BQU8sT0FBTyxPQUFPLE9BQU8sT0FBTyxPQUFPLE9BQU8sT0FBTyxPQUFPLE9BQU8sT0FBTyxPQUFPLE9BQU8sT0FBTyxPQUFPLE9BQU8sT0FBTyxPQUFPLE9BQU8sT0FBTyxPQUFPLE9BQU8sT0FBTyxPQUFPLE9BQU8sT0FBTyxPQUFPLEtBQUssR0FBRyxTQUFTLENBQUMsR0FBRyxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxN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QVEsc2pCQUFzakI7QUFBQSxNQUMvakIsQ0FBQyxRQUFRLHNqQkFBc2pCO0FBQUEsTUFDL2pCLENBQUMsUUFBUSxzakJBQXNqQjtBQUFBLE1BQy9qQixDQUFDLFFBQVEsc2pCQUFzakI7QUFBQSxNQUMvakIsQ0FBQyxRQUFRLHNqQkFBc2pCO0FBQUEsTUFDL2pCLENBQUMsUUFBUSxzakJBQXNqQjtBQUFBLE1BQy9qQixDQUFDLFFBQVEsc2pCQUFzakI7QUFBQSxNQUMvakIsQ0FBQyxRQUFRLHNqQkFBc2pCO0FBQUEsTUFDL2pCLENBQUMsUUFBUSxzakJBQXNqQjtBQUFBLE1BQy9qQixDQUFDLFFBQVEsc2pCQUFzakI7QUFBQSxNQUMvakIsQ0FBQyxRQUFRLHNqQkFBc2pCO0FBQUEsTUFDL2pCLENBQUMsUUFBUSxzakJBQXNqQjtBQUFBLE1BQy9qQixDQUFDLFFBQVEsc2pCQUFzakI7QUFBQSxNQUMvakIsQ0FBQyxRQUFRLHNqQkFBc2pCO0FBQUEsTUFDL2pCLENBQUMsUUFBUSxzakJBQXNqQjtBQUFBLE1BQy9qQixDQUFDLFFBQVEsc2pCQUFzakI7QUFBQSxNQUMvakIsQ0FBQyxRQUFRLHNqQkFBc2pCO0FBQUEsTUFDL2pCLENBQUMsUUFBUSxzakJBQXNqQjtBQUFBLE1BQy9qQixDQUFDLFFBQVEsc2pCQUFzakI7QUFBQSxNQUMvakIsQ0FBQyxRQUFRLHNqQkFBc2pCO0FBQUEsTUFDL2pCLENBQUMsUUFBUSxzakJBQXNqQjtBQUFBLE1BQy9qQixDQUFDLFFBQVEsc2pCQUFzakI7QUFBQSxNQUMvakIsQ0FBQyxRQUFRLHNqQkFBc2pCO0FBQUEsTUFDL2pCLENBQUMsUUFBUSxzakJBQXNqQjtBQUFBLE1BQy9qQixDQUFDLFFBQVEsc2pCQUFzakI7QUFBQSxNQUMvakIsQ0FBQyxRQUFRLHNqQkFBc2pCO0FBQUEsTUFDL2pCLENBQUMsUUFBUSxzakJBQXNqQjtBQUFBLE1BQy9qQixDQUFDLFFBQVEsc2pCQUFzakI7QUFBQSxNQUMvakIsQ0FBQyxRQUFRLHNqQkFBc2pCO0FBQUEsTUFDL2pCLENBQUMsUUFBUSxzakJBQXNqQjtBQUFBLE1BQy9qQixDQUFDLFFBQVEsc2pCQUFzakI7QUFBQSxNQUMvakIsQ0FBQyxRQUFRLHNqQkFBc2pCO0FBQUEsTUFDL2pCLENBQUMsUUFBUSxzakJBQXNqQjtBQUFBLE1BQy9qQixDQUFDLFFBQVEsc2pCQUFzakI7QUFBQSxNQUMvakIsQ0FBQyxRQUFRLHNqQkFBc2pCO0FBQUEsTUFDL2pCLENBQUMsUUFBUSxzakJBQXNqQjtBQUFBLE1BQy9qQixDQUFDLFFBQVEsc2pCQUFzakI7QUFBQSxJQUNqa0I7QUFBQSxFQUNGO0FBQ0YsQ0FBQztBQUdELElBQUlpRSxrQkFBaUJqRSxZQUFXO0FBQUEsRUFDOUIsK0VBQStFLFVBQVUsU0FBUztBQUNoRyxZQUFRLFVBQVU7QUFBQSxNQUNoQixDQUFDLEtBQUssTUFBTSxHQUFHO0FBQUEsTUFDZixDQUFDLFFBQVEsMFhBQTBYO0FBQUEsTUFDblksQ0FBQyxRQUFRLDhXQUE4VyxHQUFHLDBLQUEwSztBQUFBLE1BQ3BpQixDQUFDLFFBQVEsb05BQW9OLEdBQUcsZ0lBQWdJO0FBQUEsTUFDaFcsQ0FBQyxRQUFRLDhGQUE4RixHQUFHLFVBQVUsR0FBRyxVQUFVLEdBQUcsNEJBQTRCLElBQUksVUFBVSxFQUFFO0FBQUEsTUFDaEwsQ0FBQyxRQUFRLGtDQUFrQyxJQUFJLFVBQVUsR0FBRyxVQUFVLElBQUksVUFBVSxHQUFHLFVBQVUsRUFBRTtBQUFBLE1BQ25HLENBQUMsUUFBUSxVQUFVLElBQUksZ0NBQWdDO0FBQUEsTUFDdkQsQ0FBQyxRQUFRLFFBQVE7QUFBQSxNQUNqQixDQUFDLFFBQVEsNFhBQTRYO0FBQUEsTUFDclksQ0FBQyxRQUFRLHNqQkFBc2pCO0FBQUEsTUFDL2pCLENBQUMsUUFBUSw0WEFBNFg7QUFBQSxNQUNyWSxDQUFDLFFBQVEsc2pCQUFzakI7QUFBQSxNQUMvakIsQ0FBQyxRQUFRLDRYQUE0WDtBQUFBLE1BQ3JZLENBQUMsUUFBUSxzakJBQXNqQjtBQUFBLE1BQy9qQixDQUFDLFFBQVEsNFhBQTRYO0FBQUEsTUFDclksQ0FBQyxRQUFRLHNqQkFBc2pCO0FBQUEsTUFDL2pCLENBQUMsUUFBUSw0WEFBNFg7QUFBQSxNQUNyWSxDQUFDLFFBQVEsc2pCQUFzakI7QUFBQSxNQUMvakIsQ0FBQyxRQUFRLDRYQUE0WDtBQUFBLE1BQ3JZLENBQUMsUUFBUSxzakJBQXNqQjtBQUFBLE1BQy9qQixDQUFDLFFBQVEsNFhBQTRYO0FBQUEsTUFDclksQ0FBQyxRQUFRLHNqQkFBc2pCO0FBQUEsTUFDL2pCLENBQUMsUUFBUSw0WEFBNFg7QUFBQSxNQUNyWSxDQUFDLFFBQVEsc2pCQUFzakI7QUFBQSxNQUMvakIsQ0FBQyxRQUFRLDRYQUE0WDtBQUFBLE1BQ3JZLENBQUMsUUFBUSxzakJBQXNqQjtBQUFBLE1BQy9qQixDQUFDLFFBQVEsNFhBQTRYO0FBQUEsTUFDclksQ0FBQyxRQUFRLHNqQkFBc2pCO0FBQUEsTUFDL2pCLENBQUMsUUFBUSw0WEFBNFg7QUFBQSxNQUNyWSxDQUFDLFFBQVEsc2pCQUFzakI7QUFBQSxNQUMvakIsQ0FBQyxRQUFRLDRYQUE0WDtBQUFBLE1BQ3JZLENBQUMsUUFBUSxzakJBQXNqQjtBQUFBLE1BQy9qQixDQUFDLFFBQVEsNFhBQTRYO0FBQUEsTUFDclksQ0FBQyxRQUFRLHNqQkFBc2pCO0FBQUEsTUFDL2pCLENBQUMsUUFBUSw0WEFBNFg7QUFBQSxNQUNyWSxDQUFDLFFBQVEsc2pCQUFzakI7QUFBQSxNQUMvakIsQ0FBQyxRQUFRLDRYQUE0WDtBQUFBLE1BQ3JZLENBQUMsUUFBUSxzakJBQXNqQjtBQUFBLE1BQy9qQixDQUFDLFFBQVEsNFhBQTRYO0FBQUEsTUFDclksQ0FBQyxRQUFRLHNqQkFBc2pCO0FBQUEsTUFDL2pCLENBQUMsUUFBUSw0WEFBNFg7QUFBQSxNQUNyWSxDQUFDLFFBQVEsc2pCQUFzakI7QUFBQSxNQUMvakIsQ0FBQyxRQUFRLDRYQUE0WDtBQUFBLE1BQ3JZLENBQUMsUUFBUSxzakJBQXNqQjtBQUFBLE1BQy9qQixDQUFDLFFBQVEsNFhBQTRYO0FBQUEsTUFDclksQ0FBQyxRQUFRLHNqQkFBc2pCO0FBQUEsTUFDL2pCLENBQUMsUUFBUSw0WEFBNFg7QUFBQSxNQUNyWSxDQUFDLFFBQVEsc2pCQUFzakI7QUFBQSxNQUMvakIsQ0FBQyxRQUFRLDRYQUE0WDtBQUFBLE1BQ3JZLENBQUMsUUFBUSxzakJBQXNqQjtBQUFBLE1BQy9qQixDQUFDLFFBQVEsNFhBQTRYO0FBQUEsTUFDclksQ0FBQyxRQUFRLHNqQkFBc2pCO0FBQUEsTUFDL2pCLENBQUMsUUFBUSw0WEFBNFg7QUFBQSxNQUNyWSxDQUFDLFFBQVEsc2pCQUFzakI7QUFBQSxNQUMvakIsQ0FBQyxRQUFRLDRYQUE0WDtBQUFBLE1BQ3JZLENBQUMsUUFBUSxzakJBQXNqQjtBQUFBLE1BQy9qQixDQUFDLFFBQVEsNFhBQTRYO0FBQUEsTUFDclksQ0FBQyxRQUFRLHNqQkFBc2pCO0FBQUEsTUFDL2pCLENBQUMsUUFBUSw0WEFBNFg7QUFBQSxNQUNyWSxDQUFDLFFBQVEsc2pCQUFzakI7QUFBQSxNQUMvakIsQ0FBQyxRQUFRLDRYQUE0WDtBQUFBLE1BQ3JZLENBQUMsUUFBUSxzakJBQXNqQjtBQUFBLE1BQy9qQixDQUFDLFFBQVEsNFhBQTRYO0FBQUEsTUFDclksQ0FBQyxRQUFRLHNqQkFBc2pCO0FBQUEsTUFDL2pCLENBQUMsUUFBUSw0WEFBNFg7QUFBQSxNQUNyWSxDQUFDLFFBQVEsc2pCQUFzakI7QUFBQSxNQUMvakIsQ0FBQyxRQUFRLDRYQUE0WDtBQUFBLE1BQ3JZLENBQUMsUUFBUSxzakJBQXNqQjtBQUFBLE1BQy9qQixDQUFDLFFBQVEsNFhBQTRYO0FBQUEsTUFDclksQ0FBQyxRQUFRLHNqQkFBc2pCO0FBQUEsTUFDL2pCLENBQUMsUUFBUSw0WEFBNFg7QUFBQSxNQUNyWSxDQUFDLFFBQVEsc2pCQUFzakI7QUFBQSxNQUMvakIsQ0FBQyxRQUFRLDRYQUE0WDtBQUFBLE1BQ3JZLENBQUMsUUFBUSxzakJBQXNqQjtBQUFBLE1BQy9qQixDQUFDLFFBQVEsNFhBQTRYO0FBQUEsTUFDclksQ0FBQyxRQUFRLHNqQkFBc2pCO0FBQUEsTUFDL2pCLENBQUMsUUFBUSw0WEFBNFg7QUFBQSxNQUNyWSxDQUFDLFFBQVEsNFhBQTRYO0FBQUEsTUFDclksQ0FBQyxRQUFRLHNqQkFBc2pCO0FBQUEsTUFDL2pCLENBQUMsUUFBUSw0WEFBNFg7QUFBQSxNQUNyWSxDQUFDLFFBQVEsc2pCQUFzakI7QUFBQSxNQUMvakIsQ0FBQyxRQUFRLDRYQUE0WDtBQUFBLE1BQ3JZLENBQUMsUUFBUSxzakJBQXNqQjtBQUFBLE1BQy9qQixDQUFDLFFBQVEsNFhBQTRYO0FBQUEsTUFDclksQ0FBQyxRQUFRLHNqQkFBc2pCO0FBQUEsTUFDL2pCLENBQUMsUUFBUSw0WEFBNFg7QUFBQSxNQUNyWSxDQUFDLFFBQVEsc2pCQUFzakI7QUFBQSxNQUMvakIsQ0FBQyxRQUFRLDRYQUE0WDtBQUFBLE1BQ3JZLENBQUMsUUFBUSxzakJBQXNqQjtBQUFBLE1BQy9qQixDQUFDLFFBQVEsNFhBQTRYO0FBQUEsTUFDclksQ0FBQyxRQUFRLHNqQkFBc2pCO0FBQUEsTUFDL2pCLENBQUMsUUFBUSw0WEFBNFg7QUFBQSxNQUNyWSxDQUFDLFFBQVEsc2pCQUFzakI7QUFBQSxNQUMvakIsQ0FBQyxRQUFRLDRYQUE0WDtBQUFBLE1BQ3JZLENBQUMsUUFBUSxzakJBQXNqQjtBQUFBLE1BQy9qQixDQUFDLFFBQVEsNFhBQTRYO0FBQUEsTUFDclksQ0FBQyxRQUFRLHNqQkFBc2pCO0FBQUEsTUFDL2pCLENBQUMsUUFBUSw0WEFBNFg7QUFBQSxNQUNyWSxDQUFDLFFBQVEsc2pCQUFzakI7QUFBQSxNQUMvakIsQ0FBQyxRQUFRLDRYQUE0WDtBQUFBLE1BQ3JZLENBQUMsUUFBUSxzakJBQXNqQjtBQUFBLE1BQy9qQixDQUFDLFFBQVEsNFhBQTRYO0FBQUEsTUFDclksQ0FBQyxRQUFRLHNqQkFBc2pCO0FBQUEsTUFDL2pCLENBQUMsUUFBUSw0WEFBNFg7QUFBQSxNQUNyWSxDQUFDLFFBQVEsc2pCQUFzakI7QUFBQSxNQUMvakIsQ0FBQyxRQUFRLDRYQUE0WDtBQUFBLE1BQ3JZLENBQUMsUUFBUSxzakJBQXNqQjtBQUFBLE1BQy9qQixDQUFDLFFBQVEsNFhBQTRYO0FBQUEsTUFDclksQ0FBQyxRQUFRLHNqQkFBc2pCO0FBQUEsTUFDL2pCLENBQUMsUUFBUSw0WEFBNFg7QUFBQSxNQUNyWSxDQUFDLFFBQVEsc2pCQUFzakI7QUFBQSxNQUMvakIsQ0FBQyxRQUFRLDRYQUE0WDtBQUFBLE1BQ3JZLENBQUMsUUFBUSxzakJBQXNqQjtBQUFBLE1BQy9qQixDQUFDLFFBQVEsNFhBQTRYO0FBQUEsTUFDclksQ0FBQyxRQUFRLHNqQkFBc2pCO0FBQUEsTUFDL2pCLENBQUMsUUFBUSw0WEFBNFg7QUFBQSxNQUNyWSxDQUFDLFFBQVEsc2pCQUFzakI7QUFBQSxNQUMvakIsQ0FBQyxRQUFRLDRYQUE0WDtBQUFBLE1BQ3JZLENBQUMsUUFBUSxzakJBQXNqQjtBQUFBLE1BQy9qQixDQUFDLFFBQVEsNFhBQTRYO0FBQUEsTUFDclksQ0FBQyxRQUFRLHNqQkFBc2pCO0FBQUEsTUFDL2pCLENBQUMsUUFBUSw0WEFBNFg7QUFBQSxNQUNyWSxDQUFDLFFBQVEsc2pCQUFzakI7QUFBQSxNQUMvakIsQ0FBQyxRQUFRLDRYQUE0WDtBQUFBLE1BQ3JZLENBQUMsUUFBUSxzakJBQXNqQjtBQUFBLE1BQy9qQixDQUFDLFFBQVEsNFhBQTRYO0FBQUEsTUFDclksQ0FBQyxRQUFRLHNqQkFBc2pCO0FBQUEsTUFDL2pCLENBQUMsUUFBUSw0WEFBNFg7QUFBQSxNQUNyWSxDQUFDLFFBQVEsc2pCQUFzakI7QUFBQSxNQUMvakIsQ0FBQyxRQUFRLDRYQUE0WDtBQUFBLE1BQ3JZLENBQUMsUUFBUSxzakJBQXNqQjtBQUFBLE1BQy9qQixDQUFDLFFBQVEsNFhBQTRYO0FBQUEsTUFDclksQ0FBQyxRQUFRLHNqQkFBc2pCO0FBQUEsTUFDL2pCLENBQUMsUUFBUSw0WEFBNFg7QUFBQSxNQUNyWSxDQUFDLFFBQVEsc2pCQUFzakI7QUFBQSxNQUMvakIsQ0FBQyxRQUFRLDRYQUE0WDtBQUFBLE1BQ3JZLENBQUMsUUFBUSxzakJBQXNqQjtBQUFBLE1BQy9qQixDQUFDLFFBQVEsNFhBQTRYO0FBQUEsTUFDclksQ0FBQyxRQUFRLHNqQkFBc2pCO0FBQUEsTUFDL2pCLENBQUMsUUFBUSw0WEFBNFg7QUFBQSxNQUNyWSxDQUFDLFFBQVEsc2pCQUFzakI7QUFBQSxNQUMvakIsQ0FBQyxRQUFRLDRYQUE0WDtBQUFBLE1BQ3JZLENBQUMsUUFBUSxzakJBQXNqQjtBQUFBLE1BQy9qQixDQUFDLFFBQVEsNFhBQTRYO0FBQUEsTUFDclksQ0FBQyxRQUFRLHNqQkFBc2pCO0FBQUEsTUFDL2pCLENBQUMsUUFBUSw0WEFBNFg7QUFBQSxNQUNyWSxDQUFDLFFBQVEsc2pCQUFzakI7QUFBQSxNQUMvakIsQ0FBQyxRQUFRLDRYQUE0WDtBQUFBLE1BQ3JZLENBQUMsUUFBUSxzakJBQXNqQjtBQUFBLE1BQy9qQixDQUFDLFFBQVEsNFhBQTRYO0FBQUEsTUFDclksQ0FBQyxRQUFRLHNqQkFBc2pCO0FBQUEsTUFDL2pCLENBQUMsUUFBUSw0WEFBNFg7QUFBQSxNQUNyWSxDQUFDLFFBQVEsc2pCQUFzakI7QUFBQSxNQUMvakIsQ0FBQyxRQUFRLDRYQUE0WDtBQUFBLE1BQ3JZLENBQUMsUUFBUSxzakJBQXNqQjtBQUFBLE1BQy9qQixDQUFDLFFBQVEsNFhBQTRYO0FBQUEsTUFDclksQ0FBQyxRQUFRLHNqQkFBc2pCO0FBQUEsTUFDL2pCLENBQUMsUUFBUSw0WEFBNFg7QUFBQSxNQUNyWSxDQUFDLFFBQVEsc2pCQUFzakI7QUFBQSxNQUMvakIsQ0FBQyxRQUFRLDRYQUE0WDtBQUFBLE1BQ3JZLENBQUMsUUFBUSxzakJBQXNqQjtBQUFBLE1BQy9qQixDQUFDLFFBQVEsNFhBQTRYO0FBQUEsTUFDclksQ0FBQyxRQUFRLHNqQkFBc2pCO0FBQUEsTUFDL2pCLENBQUMsUUFBUSw0WEFBNFg7QUFBQSxNQUNyWSxDQUFDLFFBQVEsc2pCQUFzakI7QUFBQSxNQUMvakIsQ0FBQyxRQUFRLDRYQUE0WDtBQUFBLE1BQ3JZLENBQUMsUUFBUSxzakJBQXNqQjtBQUFBLE1BQy9qQixDQUFDLFFBQVEsNFhBQTRYO0FB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LHNDQUFzQztBQUFBLFFBQ3BDLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSwyQ0FBMkM7QUFBQSxRQUN6QyxRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsNENBQTRDO0FBQUEsUUFDMUMsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EscURBQXFEO0FBQUEsUUFDbkQsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsK0NBQStDO0FBQUEsUUFDN0MsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsOENBQThDO0FBQUEsUUFDNUMsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsdURBQXVEO0FBQUEsUUFDckQsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLE1BQU07QUFBQSxNQUNyQjtBQUFBLE1BQ0EsK0NBQStDO0FBQUEsUUFDN0MsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLFFBQ2QsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0Esd0RBQXdEO0FBQUEsUUFDdEQsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsNENBQTRDO0FBQUEsUUFDMUMsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EscURBQXFEO0FBQUEsUUFDbkQsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsbURBQW1EO0FBQUEsUUFDakQsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLFFBQ2QsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsNERBQTREO0FBQUEsUUFDMUQsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0Esa0RBQWtEO0FBQUEsUUFDaEQsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLFFBQ2QsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsMkRBQTJEO0FBQUEsUUFDekQsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsMkNBQTJDO0FBQUEsUUFDekMsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLFFBQ2QsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0Esa0RBQWtEO0FBQUEsUUFDaEQsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsMkRBQTJEO0FBQUEsUUFDekQsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLG9EQUFvRDtBQUFBLFFBQ2xELFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLCtDQUErQztBQUFBLFFBQzdDLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLHVCQUF1QjtBQUFBLFFBQ3JCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSw0QkFBNEI7QUFBQSxRQUMxQixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsOENBQThDO0FBQUEsUUFDNUMsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSxrQ0FBa0M7QUFBQSxRQUNoQyxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLGtEQUFrRDtBQUFBLFFBQ2hELFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EsbURBQW1EO0FBQUEsUUFDakQsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSx1Q0FBdUM7QUFBQSxRQUNyQyxRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0Esb0NBQW9DO0FBQUEsUUFDbEMsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSxzQ0FBc0M7QUFBQSxRQUNwQyxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLGdEQUFnRDtBQUFBLFFBQzlDLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EsZ0NBQWdDO0FBQUEsUUFDOUIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLHdDQUF3QztBQUFBLFFBQ3RDLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0Esb0NBQW9DO0FBQUEsUUFDbEMsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSxzQ0FBc0M7QUFBQSxRQUNwQyxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLHdDQUF3QztBQUFBLFFBQ3RDLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EsOEJBQThCO0FBQUEsUUFDNUIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLElBQUk7QUFBQSxNQUNuQjtBQUFBLE1BQ0EsbUNBQW1DO0FBQUEsUUFDakMsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLHlDQUF5QztBQUFBLFFBQ3ZDLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSwwQ0FBMEM7QUFBQSxRQUN4QyxRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsZ0VBQWdFO0FBQUEsUUFDOUQsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSw2Q0FBNkM7QUFBQSxRQUMzQyxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLHFDQUFxQztBQUFBLFFBQ25DLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0Esa0NBQWtDO0FBQUEsUUFDaEMsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLDhDQUE4QztBQUFBLFFBQzVDLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EsaURBQWlEO0FBQUEsUUFDL0MsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLG9DQUFvQztBQUFBLFFBQ2xDLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxzQ0FBc0M7QUFBQSxRQUNwQyxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLGtDQUFrQztBQUFBLFFBQ2hDLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxxREFBcUQ7QUFBQSxRQUNuRCxRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsbURBQW1EO0FBQUEsUUFDakQsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSx1Q0FBdUM7QUFBQSxRQUNyQyxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLGtDQUFrQztBQUFBLFFBQ2hDLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSw0Q0FBNEM7QUFBQSxRQUMxQyxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLCtDQUErQztBQUFBLFFBQzdDLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EsbUNBQW1DO0FBQUEsUUFDakMsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSwyQ0FBMkM7QUFBQSxRQUN6QyxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLDBDQUEwQztBQUFBLFFBQ3hDLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EsMkJBQTJCO0FBQUEsUUFDekIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLDRCQUE0QjtBQUFBLFFBQzFCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSwrQkFBK0I7QUFBQSxRQUM3QixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsUUFDZCxZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSxvQ0FBb0M7QUFBQSxRQUNsQyxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLDRDQUE0QztBQUFBLFFBQzFDLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0Esa0NBQWtDO0FBQUEsUUFDaEMsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLGtDQUFrQztBQUFBLFFBQ2hDLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EsaUNBQWlDO0FBQUEsUUFDL0IsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLCtCQUErQjtBQUFBLFFBQzdCLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0Esd0RBQXdEO0FBQUEsUUFDdEQsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSw0Q0FBNEM7QUFBQSxRQUMxQyxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLHNDQUFzQztBQUFBLFFBQ3BDLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EscURBQXFEO0FBQUEsUUFDbkQsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSx5REFBeUQ7QUFBQSxRQUN2RCxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLDRCQUE0QjtBQUFBLFFBQzFCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSwwQ0FBMEM7QUFBQSxRQUN4QyxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLDBDQUEwQztBQUFBLFFBQ3hDLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EsbUNBQW1DO0FBQUEsUUFDakMsUUFBUTtBQUFBLFFBQ1IsU0FBUztBQUFBLFFBQ1QsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSxrQ0FBa0M7QUFBQSxRQUNoQyxRQUFRO0FBQUEsUUFDUixTQUFTO0FBQUEsUUFDVCxjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLG9DQUFvQztBQUFBLFFBQ2xDLFFBQVE7QUFBQSxRQUNSLFNBQVM7QUFBQSxRQUNULGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0Esb0NBQW9DO0FBQUEsUUFDbEMsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLDRCQUE0QjtBQUFBLFFBQzFCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxnQ0FBZ0M7QUFBQSxRQUM5QixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsZ0NBQWdDO0FBQUEsUUFDOUIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLCtCQUErQjtBQUFBLFFBQzdCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxnQ0FBZ0M7QUFBQSxRQUM5QixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsZ0NBQWdDO0FBQUEsUUFDOUIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLGtDQUFrQztBQUFBLFFBQ2hDLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxxQ0FBcUM7QUFBQSxRQUNuQyxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsUUFDZCxZQUFZLENBQUMsTUFBTTtBQUFBLE1BQ3JCO0FBQUEsTUFDQSx3Q0FBd0M7QUFBQSxRQUN0QyxRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsK0JBQStCO0FBQUEsUUFDN0IsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLDJDQUEyQztBQUFBLFFBQ3pDLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLDBDQUEwQztBQUFBLFFBQ3hDLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxRQUNkLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLHNDQUFzQztBQUFBLFFBQ3BDLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxxQ0FBcUM7QUFBQSxRQUNuQyxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLHVFQUF1RTtBQUFBLFFBQ3JFLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EseUVBQXlFO0FBQUEsUUFDdkUsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSw2REFBNkQ7QUFBQSxRQUMzRCxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLHFFQUFxRTtBQUFBLFFBQ25FLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EsMkVBQTJFO0FBQUEsUUFDekUsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSw2RUFBNkU7QUFBQSxRQUMzRSxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLDJFQUEyRTtBQUFBLFFBQ3pFLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EsNkVBQTZFO0FBQUEsUUFDM0UsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSw0RUFBNEU7QUFBQSxRQUMxRSxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLHlFQUF5RTtBQUFBLFFBQ3ZFLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EsbUZBQW1GO0FBQUEsUUFDakYsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSw2RUFBNkU7QUFBQSxRQUMzRSxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLGtGQUFrRjtBQUFBLFFBQ2hGLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EsZ0ZBQWdGO0FBQUEsUUFDOUUsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSwrRUFBK0U7QUFBQSxRQUM3RSxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLDZFQUE2RTtBQUFBLFFBQzNFLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxRQUNkLFlBQVksQ0FBQyxNQUFNO0FBQUEsTUFDckI7QUFBQSxNQUNBLHNGQUFzRjtBQUFBLFFBQ3BGLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EsOEVBQThFO0FBQUEsUUFDNUUsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSxzRUFBc0U7QUFBQSxRQUNwRSxRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsTUFBTTtBQUFBLE1BQ3JCO0FBQUEsTUFDQSwwRUFBMEU7QUFBQSxRQUN4RSxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLGdGQUFnRjtBQUFBLFFBQzlFLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EsZ0ZBQWdGO0FBQUEsUUFDOUUsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSwwRUFBMEU7QUFBQSxRQUN4RSxRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsTUFBTTtBQUFBLE1BQ3JCO0FBQUEsTUFDQSxtRkFBbUY7QUFBQSxRQUNqRixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLG9GQUFvRjtBQUFBLFFBQ2xGLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EsZ0ZBQWdGO0FBQUEsUUFDOUUsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSx5RUFBeUU7QUFBQSxRQUN2RSxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLHlFQUF5RTtBQUFBLFFBQ3ZFLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxNQUFNO0FBQUEsTUFDckI7QUFBQSxNQUNBLGtGQUFrRjtBQUFBLFFBQ2hGLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EsOEVBQThFO0FBQUEsUUFDNUUsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSw2RUFBNkU7QUFBQSxRQUMzRSxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLDhFQUE4RTtBQUFBLFFBQzVFLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EsNEVBQTRFO0FBQUEsUUFDMUUsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSwrRUFBK0U7QUFBQSxRQUM3RSxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLCtFQUErRTtBQUFBLFFBQzdFLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EsZ0ZBQWdGO0FBQUEsUUFDOUUsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSx3RkFBd0Y7QUFBQSxRQUN0RixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLHFGQUFxRjtBQUFBLFFBQ25GLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EsOEVBQThFO0FBQUEsUUFDNUUsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSw4RUFBOEU7QUFBQSxRQUM1RSxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLG1GQUFtRjtBQUFBLFFBQ2pGLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EsK0VBQStFO0FBQUEsUUFDN0UsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSxpRkFBaUY7QUFBQSxRQUMvRSxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLHFFQUFxRTtBQUFBLFFBQ25FLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxRQUNkLFlBQVksQ0FBQyxNQUFNO0FBQUEsTUFDckI7QUFBQSxNQUNBLDhFQUE4RTtBQUFBLFFBQzVFLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EsaUZBQWlGO0FBQUEsUUFDL0UsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSwwRUFBMEU7QUFBQSxRQUN4RSxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLHlFQUF5RTtBQUFBLFFBQ3ZFLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0Esb0ZBQW9GO0FBQUEsUUFDbEYsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSx3RUFBd0U7QUFBQSxRQUN0RSxRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsTUFBTTtBQUFBLE1BQ3JCO0FBQUEsTUFDQSxpRkFBaUY7QUFBQSxRQUMvRSxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLDZFQUE2RTtBQUFBLFFBQzNFLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0Esd0ZBQXdGO0FBQUEsUUFDdEYsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSw2RUFBNkU7QUFBQSxRQUMzRSxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLDJEQUEyRDtBQUFBLFFBQ3pELFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EsbUVBQW1FO0FBQUEsUUFDakUsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSw0REFBNEQ7QUFBQSxRQUMxRCxRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsK0VBQStFO0FBQUEsUUFDN0UsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSwyRUFBMkU7QUFBQSxRQUN6RSxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsUUFDZCxZQUFZLENBQUMsTUFBTTtBQUFBLE1BQ3JCO0FBQUEsTUFDQSx3RkFBd0Y7QUFBQSxRQUN0RixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLG9GQUFvRjtBQUFBLFFBQ2xGLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EsK0VBQStFO0FBQUEsUUFDN0UsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSxnRkFBZ0Y7QUFBQSxRQUM5RSxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLDZFQUE2RTtBQUFBLFFBQzNFLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EsZ0ZBQWdGO0FBQUEsUUFDOUUsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSxnRkFBZ0Y7QUFBQSxRQUM5RSxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLCtFQUErRTtBQUFBLFFBQzdFLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EsNkVBQTZFO0FBQUEsUUFDM0UsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSwyRUFBMkU7QUFBQSxRQUN6RSxRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsTUFBTTtBQUFBLE1BQ3JCO0FBQUEsTUFDQSxvRkFBb0Y7QUFBQSxRQUNsRixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLGtGQUFrRjtBQUFBLFFBQ2hGLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EsOERBQThEO0FBQUEsUUFDNUQsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSw2RUFBNkU7QUFBQSxRQUMzRSxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLDREQUE0RDtBQUFBLFFBQzFELFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0Esd0NBQXdDO0FBQUEsUUFDdEMsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSxpQ0FBaUM7QUFBQSxRQUMvQixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsaUNBQWlDO0FBQUEsUUFDL0IsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLDBDQUEwQztBQUFBLFFBQ3hDLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLCtCQUErQjtBQUFBLFFBQzdCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSwyQkFBMkI7QUFBQSxRQUN6QixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsSUFBSTtBQUFBLE1BQ25CO0FBQUEsTUFDQSxrQ0FBa0M7QUFBQSxRQUNoQyxRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSxtQ0FBbUM7QUFBQSxRQUNqQyxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLG1DQUFtQztBQUFBLFFBQ2pDLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxrQ0FBa0M7QUFBQSxRQUNoQyxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLHdCQUF3QjtBQUFBLFFBQ3RCLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxPQUFPLE9BQU8sTUFBTTtBQUFBLE1BQ25DO0FBQUEsTUFDQSwyQkFBMkI7QUFBQSxRQUN6QixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsNEJBQTRCO0FBQUEsUUFDMUIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLDhCQUE4QjtBQUFBLFFBQzVCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxvQ0FBb0M7QUFBQSxRQUNsQyxRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsNkJBQTZCO0FBQUEsUUFDM0IsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0Esd0JBQXdCO0FBQUEsUUFDdEIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLDZCQUE2QjtBQUFBLFFBQzNCLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLDZCQUE2QjtBQUFBLFFBQzNCLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLGdEQUFnRDtBQUFBLFFBQzlDLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSwwQkFBMEI7QUFBQSxRQUN4QixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsTUFBTTtBQUFBLE1BQ3JCO0FBQUEsTUFDQSw4QkFBOEI7QUFBQSxRQUM1QixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsSUFBSTtBQUFBLE1BQ25CO0FBQUEsTUFDQSwrQ0FBK0M7QUFBQSxRQUM3QyxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLCtCQUErQjtBQUFBLFFBQzdCLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLGlDQUFpQztBQUFBLFFBQy9CLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLG1DQUFtQztBQUFBLFFBQ2pDLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxpQ0FBaUM7QUFBQSxRQUMvQixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsbUNBQW1DO0FBQUEsUUFDakMsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLGtDQUFrQztBQUFBLFFBQ2hDLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxvQ0FBb0M7QUFBQSxRQUNsQyxRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsNEJBQTRCO0FBQUEsUUFDMUIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLHNDQUFzQztBQUFBLFFBQ3BDLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLHFDQUFxQztBQUFBLFFBQ25DLFlBQVksQ0FBQyxVQUFVO0FBQUEsTUFDekI7QUFBQSxNQUNBLG1DQUFtQztBQUFBLFFBQ2pDLFlBQVksQ0FBQyxPQUFPO0FBQUEsTUFDdEI7QUFBQSxNQUNBLG1DQUFtQztBQUFBLFFBQ2pDLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLG9DQUFvQztBQUFBLFFBQ2xDLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLHdCQUF3QjtBQUFBLFFBQ3RCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxrQ0FBa0M7QUFBQSxRQUNoQyxRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EseUNBQXlDO0FBQUEsUUFDdkMsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsNkJBQTZCO0FBQUEsUUFDM0IsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLE1BQU07QUFBQSxNQUNyQjtBQUFBLE1BQ0EsbUNBQW1DO0FBQUEsUUFDakMsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLHVDQUF1QztBQUFBLFFBQ3JDLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxRQUNkLFlBQVksQ0FBQyxNQUFNO0FBQUEsTUFDckI7QUFBQSxNQUNBLHlDQUF5QztBQUFBLFFBQ3ZDLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxrQ0FBa0M7QUFBQSxRQUNoQyxRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EscUNBQXFDO0FBQUEsUUFDbkMsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLE9BQU8sT0FBTyxPQUFPLE9BQU8sT0FBTyxLQUFLO0FBQUEsTUFDdkQ7QUFBQSxNQUNBLHlDQUF5QztBQUFBLFFBQ3ZDLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxvQ0FBb0M7QUFBQSxRQUNsQyxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLG9DQUFvQztBQUFBLFFBQ2xDLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EsMENBQTBDO0FBQUEsUUFDeEMsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSwrQ0FBK0M7QUFBQSxRQUM3QyxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLCtDQUErQztBQUFBLFFBQzdDLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EsaURBQWlEO0FBQUEsUUFDL0MsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSxpREFBaUQ7QUFBQSxRQUMvQyxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLHlDQUF5QztBQUFBLFFBQ3ZDLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EsMkNBQTJDO0FBQUEsUUFDekMsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSxnREFBZ0Q7QUFBQSxRQUM5QyxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLHNEQUFzRDtBQUFBLFFBQ3BELFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0Esd0RBQXdEO0FBQUEsUUFDdEQsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSxpREFBaUQ7QUFBQSxRQUMvQyxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLGtEQUFrRDtBQUFBLFFBQ2hELFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EscURBQXFEO0FBQUEsUUFDbkQsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSxpQ0FBaUM7QUFBQSxRQUMvQixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EseUJBQXlCO0FBQUEsUUFDdkIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLHVCQUF1QjtBQUFBLFFBQ3JCLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLCtCQUErQjtBQUFBLFFBQzdCLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLHNDQUFzQztBQUFBLFFBQ3BDLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLDBDQUEwQztBQUFBLFFBQ3hDLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxRQUNkLFlBQVksQ0FBQyxVQUFVO0FBQUEsTUFDekI7QUFBQSxNQUNBLDJCQUEyQjtBQUFBLFFBQ3pCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxvQ0FBb0M7QUFBQSxRQUNsQyxRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsbUNBQW1DO0FBQUEsUUFDakMsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLGdDQUFnQztBQUFBLFFBQzlCLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0Esa0NBQWtDO0FBQUEsUUFDaEMsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLFlBQVk7QUFBQSxNQUMzQjtBQUFBLE1BQ0EsMkJBQTJCO0FBQUEsUUFDekIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsZ0NBQWdDO0FBQUEsUUFDOUIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLElBQUk7QUFBQSxNQUNuQjtBQUFBLE1BQ0Esb0NBQW9DO0FBQUEsUUFDbEMsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLE1BQU07QUFBQSxNQUNyQjtBQUFBLE1BQ0Esc0NBQXNDO0FBQUEsUUFDcEMsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLFFBQ2QsWUFBWSxDQUFDLFFBQVE7QUFBQSxNQUN2QjtBQUFBLE1BQ0EsMkJBQTJCO0FBQUEsUUFDekIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLG1DQUFtQztBQUFBLFFBQ2pDLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSx5QkFBeUI7QUFBQSxRQUN2QixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0Esd0NBQXdDO0FBQUEsUUFDdEMsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLElBQUk7QUFBQSxNQUNuQjtBQUFBLE1BQ0EsdUJBQXVCO0FBQUEsUUFDckIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLDJCQUEyQjtBQUFBLFFBQ3pCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSw0QkFBNEI7QUFBQSxRQUMxQixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsMkJBQTJCO0FBQUEsUUFDekIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLDhCQUE4QjtBQUFBLFFBQzVCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSw4QkFBOEI7QUFBQSxRQUM1QixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsOEJBQThCO0FBQUEsUUFDNUIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLDhCQUE4QjtBQUFBLFFBQzVCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSw4QkFBOEI7QUFBQSxRQUM1QixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsOEJBQThCO0FBQUEsUUFDNUIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLDhCQUE4QjtBQUFBLFFBQzVCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSwrQkFBK0I7QUFBQSxRQUM3QixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsOEJBQThCO0FBQUEsUUFDNUIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLDZDQUE2QztBQUFBLFFBQzNDLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSw0Q0FBNEM7QUFBQSxRQUMxQyxRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsMkJBQTJCO0FBQUEsUUFDekIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsNkJBQTZCO0FBQUEsUUFDM0IsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSx3QkFBd0I7QUFBQSxRQUN0QixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsTUFBTTtBQUFBLE1BQ3JCO0FBQUEsTUFDQSx3QkFBd0I7QUFBQSxRQUN0QixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsTUFBTTtBQUFBLE1BQ3JCO0FBQUEsTUFDQSx3QkFBd0I7QUFBQSxRQUN0QixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsTUFBTTtBQUFBLE1BQ3JCO0FBQUEsTUFDQSxtQ0FBbUM7QUFBQSxRQUNqQyxRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsMkNBQTJDO0FBQUEsUUFDekMsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsK0NBQStDO0FBQUEsUUFDN0MsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsOENBQThDO0FBQUEsUUFDNUMsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsMENBQTBDO0FBQUEsUUFDeEMsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsbUNBQW1DO0FBQUEsUUFDakMsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSxpQ0FBaUM7QUFBQSxRQUMvQixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLHVCQUF1QjtBQUFBLFFBQ3JCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSx1QkFBdUI7QUFBQSxRQUNyQixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0Esa0NBQWtDO0FBQUEsUUFDaEMsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLHNDQUFzQztBQUFBLFFBQ3BDLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxPQUFPLE1BQU07QUFBQSxNQUM1QjtBQUFBLE1BQ0EsOEJBQThCO0FBQUEsUUFDNUIsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSxnQ0FBZ0M7QUFBQSxRQUM5QixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0Esd0JBQXdCO0FBQUEsUUFDdEIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0Esa0NBQWtDO0FBQUEsUUFDaEMsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLGlDQUFpQztBQUFBLFFBQy9CLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxTQUFTO0FBQUEsTUFDeEI7QUFBQSxNQUNBLDJDQUEyQztBQUFBLFFBQ3pDLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxzQ0FBc0M7QUFBQSxRQUNwQyxRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsK0NBQStDO0FBQUEsUUFDN0MsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLFFBQ2QsWUFBWSxDQUFDLElBQUk7QUFBQSxNQUNuQjtBQUFBLE1BQ0EsbURBQW1EO0FBQUEsUUFDakQsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLG1DQUFtQztBQUFBLFFBQ2pDLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxRQUNkLFlBQVksQ0FBQyxRQUFRLE1BQU07QUFBQSxNQUM3QjtBQUFBLE1BQ0EsZ0NBQWdDO0FBQUEsUUFDOUIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsZ0NBQWdDO0FBQUEsUUFDOUIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsMkJBQTJCO0FBQUEsUUFDekIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLDJCQUEyQjtBQUFBLFFBQ3pCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSwyQkFBMkI7QUFBQSxRQUN6QixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsMkJBQTJCO0FBQUEsUUFDekIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLHFDQUFxQztBQUFBLFFBQ25DLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLHFDQUFxQztBQUFBLFFBQ25DLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLHdDQUF3QztBQUFBLFFBQ3RDLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLHFDQUFxQztBQUFBLFFBQ25DLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLHVDQUF1QztBQUFBLFFBQ3JDLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxPQUFPLEtBQUs7QUFBQSxNQUMzQjtBQUFBLE1BQ0EsOENBQThDO0FBQUEsUUFDNUMsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EscUNBQXFDO0FBQUEsUUFDbkMsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLE9BQU87QUFBQSxNQUN0QjtBQUFBLE1BQ0EsdUNBQXVDO0FBQUEsUUFDckMsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLElBQUk7QUFBQSxNQUNuQjtBQUFBLE1BQ0EsaUNBQWlDO0FBQUEsUUFDL0IsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLGdDQUFnQztBQUFBLFFBQzlCLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxRQUNkLFlBQVksQ0FBQyxNQUFNO0FBQUEsTUFDckI7QUFBQSxNQUNBLGdDQUFnQztBQUFBLFFBQzlCLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLHlDQUF5QztBQUFBLFFBQ3ZDLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLGdDQUFnQztBQUFBLFFBQzlCLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLHlDQUF5QztBQUFBLFFBQ3ZDLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLG1DQUFtQztBQUFBLFFBQ2pDLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLDRDQUE0QztBQUFBLFFBQzFDLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLGdDQUFnQztBQUFBLFFBQzlCLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLGtDQUFrQztBQUFBLFFBQ2hDLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLHlDQUF5QztBQUFBLFFBQ3ZDLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLDJDQUEyQztBQUFBLFFBQ3pDLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLGdDQUFnQztBQUFBLFFBQzlCLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxPQUFPLE1BQU07QUFBQSxNQUM1QjtBQUFBLE1BQ0EsdUJBQXVCO0FBQUEsUUFDckIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsaUNBQWlDO0FBQUEsUUFDL0IsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLDhCQUE4QjtBQUFBLFFBQzVCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSw2QkFBNkI7QUFBQSxRQUMzQixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLDZCQUE2QjtBQUFBLFFBQzNCLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EsbUNBQW1DO0FBQUEsUUFDakMsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLE9BQU8sTUFBTTtBQUFBLE1BQzVCO0FBQUEsTUFDQSw4QkFBOEI7QUFBQSxRQUM1QixRQUFRO0FBQUEsUUFDUixTQUFTO0FBQUEsUUFDVCxjQUFjO0FBQUEsUUFDZCxZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSxtQ0FBbUM7QUFBQSxRQUNqQyxRQUFRO0FBQUEsUUFDUixTQUFTO0FBQUEsUUFDVCxZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSxpQ0FBaUM7QUFBQSxRQUMvQixRQUFRO0FBQUEsUUFDUixTQUFTO0FBQUEsUUFDVCxjQUFjO0FBQUEsUUFDZCxZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSwwQ0FBMEM7QUFBQSxRQUN4QyxRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0Esc0NBQXNDO0FBQUEsUUFDcEMsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLG9DQUFvQztBQUFBLFFBQ2xDLFFBQVE7QUFBQSxRQUNSLFNBQVM7QUFBQSxRQUNULGNBQWM7QUFBQSxRQUNkLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLHVDQUF1QztBQUFBLFFBQ3JDLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxxQ0FBcUM7QUFBQSxRQUNuQyxRQUFRO0FBQUEsUUFDUixTQUFTO0FBQUEsUUFDVCxjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLDBDQUEwQztBQUFBLFFBQ3hDLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxvQ0FBb0M7QUFBQSxRQUNsQyxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLDZDQUE2QztBQUFBLFFBQzNDLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLGdDQUFnQztBQUFBLFFBQzlCLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxRQUFRLE9BQU8sS0FBSztBQUFBLE1BQ25DO0FBQUEsTUFDQSx5Q0FBeUM7QUFBQSxRQUN2QyxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLHlDQUF5QztBQUFBLFFBQ3ZDLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EsdUJBQXVCO0FBQUEsUUFDckIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLGtDQUFrQztBQUFBLFFBQ2hDLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLGlDQUFpQztBQUFBLFFBQy9CLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSw0QkFBNEI7QUFBQSxRQUMxQixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSxnQ0FBZ0M7QUFBQSxRQUM5QixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSwyQkFBMkI7QUFBQSxRQUN6QixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSwyQkFBMkI7QUFBQSxRQUN6QixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EscUNBQXFDO0FBQUEsUUFDbkMsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLHdCQUF3QjtBQUFBLFFBQ3RCLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxPQUFPLE1BQU07QUFBQSxNQUM1QjtBQUFBLE1BQ0EsaUNBQWlDO0FBQUEsUUFDL0IsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSw2QkFBNkI7QUFBQSxRQUMzQixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSwwQkFBMEI7QUFBQSxRQUN4QixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSx5QkFBeUI7QUFBQSxRQUN2QixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsVUFBVTtBQUFBLE1BQ3pCO0FBQUEsTUFDQSw0QkFBNEI7QUFBQSxRQUMxQixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsUUFDZCxZQUFZLENBQUMsUUFBUSxJQUFJO0FBQUEsTUFDM0I7QUFBQSxNQUNBLGlDQUFpQztBQUFBLFFBQy9CLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSx1Q0FBdUM7QUFBQSxRQUNyQyxRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EseUNBQXlDO0FBQUEsUUFDdkMsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLCtDQUErQztBQUFBLFFBQzdDLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxtQ0FBbUM7QUFBQSxRQUNqQyxRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EseUNBQXlDO0FBQUEsUUFDdkMsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLG1DQUFtQztBQUFBLFFBQ2pDLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSx5Q0FBeUM7QUFBQSxRQUN2QyxRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsZ0NBQWdDO0FBQUEsUUFDOUIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLHNDQUFzQztBQUFBLFFBQ3BDLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxtQ0FBbUM7QUFBQSxRQUNqQyxRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EseUNBQXlDO0FBQUEsUUFDdkMsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLGtDQUFrQztBQUFBLFFBQ2hDLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSwyQkFBMkI7QUFBQSxRQUN6QixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EseUNBQXlDO0FBQUEsUUFDdkMsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLHVCQUF1QjtBQUFBLFFBQ3JCLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLDRCQUE0QjtBQUFBLFFBQzFCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSwrQkFBK0I7QUFBQSxRQUM3QixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsNEJBQTRCO0FBQUEsUUFDMUIsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSw0Q0FBNEM7QUFBQSxRQUMxQyxRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsNENBQTRDO0FBQUEsUUFDMUMsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSxtQ0FBbUM7QUFBQSxRQUNqQyxRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0Esc0NBQXNDO0FBQUEsUUFDcEMsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSxnQ0FBZ0M7QUFBQSxRQUM5QixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsaUNBQWlDO0FBQUEsUUFDL0IsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLHlDQUF5QztBQUFBLFFBQ3ZDLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSx5QkFBeUI7QUFBQSxRQUN2QixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsT0FBTyxPQUFPLE9BQU8sT0FBTyxRQUFRLEtBQUs7QUFBQSxNQUN4RDtBQUFBLE1BQ0EsNkJBQTZCO0FBQUEsUUFDM0IsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0Esd0NBQXdDO0FBQUEsUUFDdEMsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLG9DQUFvQztBQUFBLFFBQ2xDLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSx1QkFBdUI7QUFBQSxRQUNyQixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSwyQkFBMkI7QUFBQSxRQUN6QixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsMkJBQTJCO0FBQUEsUUFDekIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLDZCQUE2QjtBQUFBLFFBQzNCLFFBQVE7QUFBQSxRQUNSLFNBQVM7QUFBQSxRQUNULFlBQVksQ0FBQyxPQUFPO0FBQUEsTUFDdEI7QUFBQSxNQUNBLDRCQUE0QjtBQUFBLFFBQzFCLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxNQUFNO0FBQUEsTUFDckI7QUFBQSxNQUNBLGtDQUFrQztBQUFBLFFBQ2hDLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxPQUFPO0FBQUEsTUFDdEI7QUFBQSxNQUNBLGlDQUFpQztBQUFBLFFBQy9CLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSw0QkFBNEI7QUFBQSxRQUMxQixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSwyQkFBMkI7QUFBQSxRQUN6QixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsMkJBQTJCO0FBQUEsUUFDekIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLDJCQUEyQjtBQUFBLFFBQ3pCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSx5Q0FBeUM7QUFBQSxRQUN2QyxRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsdUJBQXVCO0FBQUEsUUFDckIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLGlDQUFpQztBQUFBLFFBQy9CLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSx1Q0FBdUM7QUFBQSxRQUNyQyxRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsK0NBQStDO0FBQUEsUUFDN0MsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLGtDQUFrQztBQUFBLFFBQ2hDLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLDRCQUE0QjtBQUFBLFFBQzFCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSwrQkFBK0I7QUFBQSxRQUM3QixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSx1QkFBdUI7QUFBQSxRQUNyQixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSx1Q0FBdUM7QUFBQSxRQUNyQyxRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsMEJBQTBCO0FBQUEsUUFDeEIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsZ0NBQWdDO0FBQUEsUUFDOUIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLDhCQUE4QjtBQUFBLFFBQzVCLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EsOEJBQThCO0FBQUEsUUFDNUIsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSw4QkFBOEI7QUFBQSxRQUM1QixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLHdCQUF3QjtBQUFBLFFBQ3RCLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLDZCQUE2QjtBQUFBLFFBQzNCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxxQ0FBcUM7QUFBQSxRQUNuQyxRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0Esd0JBQXdCO0FBQUEsUUFDdEIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLE1BQU07QUFBQSxNQUNyQjtBQUFBLE1BQ0EsZ0NBQWdDO0FBQUEsUUFDOUIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLDJCQUEyQjtBQUFBLFFBQ3pCLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EsOEJBQThCO0FBQUEsUUFDNUIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLDhCQUE4QjtBQUFBLFFBQzVCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSw4QkFBOEI7QUFBQSxRQUM1QixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsOEJBQThCO0FBQUEsUUFDNUIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLDhCQUE4QjtBQUFBLFFBQzVCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxpQ0FBaUM7QUFBQSxRQUMvQixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSxvQ0FBb0M7QUFBQSxRQUNsQyxRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSxtQ0FBbUM7QUFBQSxRQUNqQyxRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSwwQ0FBMEM7QUFBQSxRQUN4QyxRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSxxREFBcUQ7QUFBQSxRQUNuRCxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsUUFDZCxZQUFZLENBQUMsUUFBUTtBQUFBLE1BQ3ZCO0FBQUEsTUFDQSx1Q0FBdUM7QUFBQSxRQUNyQyxRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EscUNBQXFDO0FBQUEsUUFDbkMsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0Esc0NBQXNDO0FBQUEsUUFDcEMsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0Esc0NBQXNDO0FBQUEsUUFDcEMsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLDBDQUEwQztBQUFBLFFBQ3hDLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSwyQkFBMkI7QUFBQSxRQUN6QixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsMkNBQTJDO0FBQUEsUUFDekMsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsdUJBQXVCO0FBQUEsUUFDckIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLE9BQU8sTUFBTTtBQUFBLE1BQzVCO0FBQUEsTUFDQSxrQ0FBa0M7QUFBQSxRQUNoQyxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsUUFDZCxZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSw0QkFBNEI7QUFBQSxRQUMxQixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsUUFDZCxZQUFZLENBQUMsTUFBTTtBQUFBLE1BQ3JCO0FBQUEsTUFDQSxnQ0FBZ0M7QUFBQSxRQUM5QixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLGdDQUFnQztBQUFBLFFBQzlCLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0Esa0JBQWtCO0FBQUEsUUFDaEIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLHVCQUF1QjtBQUFBLFFBQ3JCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxzQkFBc0I7QUFBQSxRQUNwQixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EseUJBQXlCO0FBQUEsUUFDdkIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLG9CQUFvQjtBQUFBLFFBQ2xCLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxRQUNkLFlBQVksQ0FBQyxNQUFNO0FBQUEsTUFDckI7QUFBQSxNQUNBLCtCQUErQjtBQUFBLFFBQzdCLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxRQUNkLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLG9DQUFvQztBQUFBLFFBQ2xDLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EsNkJBQTZCO0FBQUEsUUFDM0IsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLGdDQUFnQztBQUFBLFFBQzlCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxzQkFBc0I7QUFBQSxRQUNwQixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSxzQkFBc0I7QUFBQSxRQUNwQixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSxvQkFBb0I7QUFBQSxRQUNsQixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsOEJBQThCO0FBQUEsUUFDNUIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLHdCQUF3QjtBQUFBLFFBQ3RCLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxRQUNkLFlBQVksQ0FBQyxNQUFNO0FBQUEsTUFDckI7QUFBQSxNQUNBLDRCQUE0QjtBQUFBLFFBQzFCLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxRQUNkLFlBQVksQ0FBQyxVQUFVO0FBQUEsTUFDekI7QUFBQSxNQUNBLCtCQUErQjtBQUFBLFFBQzdCLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxRQUNkLFlBQVksQ0FBQyxJQUFJO0FBQUEsTUFDbkI7QUFBQSxNQUNBLHlCQUF5QjtBQUFBLFFBQ3ZCLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLGdDQUFnQztBQUFBLFFBQzlCLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLHFCQUFxQjtBQUFBLFFBQ25CLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxpQ0FBaUM7QUFBQSxRQUMvQixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSxxQkFBcUI7QUFBQSxRQUNuQixjQUFjO0FBQUEsUUFDZCxZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSxnQ0FBZ0M7QUFBQSxRQUM5QixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsT0FBTyxPQUFPLE9BQU8sS0FBSztBQUFBLE1BQ3pDO0FBQUEsTUFDQSxnQ0FBZ0M7QUFBQSxRQUM5QixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSxnQ0FBZ0M7QUFBQSxRQUM5QixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSx1QkFBdUI7QUFBQSxRQUNyQixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsT0FBTztBQUFBLE1BQ3RCO0FBQUEsTUFDQSxzQkFBc0I7QUFBQSxRQUNwQixjQUFjO0FBQUEsUUFDZCxZQUFZLENBQUMsTUFBTTtBQUFBLE1BQ3JCO0FBQUEsTUFDQSw0QkFBNEI7QUFBQSxRQUMxQixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsU0FBUztBQUFBLE1BQ3hCO0FBQUEsTUFDQSx5QkFBeUI7QUFBQSxRQUN2QixZQUFZLENBQUMsT0FBTztBQUFBLE1BQ3RCO0FBQUEsTUFDQSx1QkFBdUI7QUFBQSxRQUNyQixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsT0FBTyxPQUFPO0FBQUEsTUFDN0I7QUFBQSxNQUNBLHNCQUFzQjtBQUFBLFFBQ3BCLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxRQUNkLFlBQVksQ0FBQyxJQUFJO0FBQUEsTUFDbkI7QUFBQSxNQUNBLHVCQUF1QjtBQUFBLFFBQ3JCLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxRQUNkLFlBQVksQ0FBQyxPQUFPLEtBQUs7QUFBQSxNQUMzQjtBQUFBLE1BQ0EscUJBQXFCO0FBQUEsUUFDbkIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLE9BQU8sT0FBTyxPQUFPLE9BQU8sS0FBSztBQUFBLE1BQ2hEO0FBQUEsTUFDQSx3QkFBd0I7QUFBQSxRQUN0QixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSxnQ0FBZ0M7QUFBQSxRQUM5QixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSxzQkFBc0I7QUFBQSxRQUNwQixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsTUFBTTtBQUFBLE1BQ3JCO0FBQUEsTUFDQSwyQkFBMkI7QUFBQSxRQUN6QixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSxrQ0FBa0M7QUFBQSxRQUNoQyxZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSx1QkFBdUI7QUFBQSxRQUNyQixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSwwQkFBMEI7QUFBQSxRQUN4QixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsNEJBQTRCO0FBQUEsUUFDMUIsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsNEJBQTRCO0FBQUEsUUFDMUIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0Esc0JBQXNCO0FBQUEsUUFDcEIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLE1BQU07QUFBQSxNQUNyQjtBQUFBLE1BQ0EscUJBQXFCO0FBQUEsUUFDbkIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EscUJBQXFCO0FBQUEsUUFDbkIsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSxnQ0FBZ0M7QUFBQSxRQUM5QixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsT0FBTyxNQUFNO0FBQUEsTUFDNUI7QUFBQSxNQUNBLGdDQUFnQztBQUFBLFFBQzlCLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLDBCQUEwQjtBQUFBLFFBQ3hCLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxPQUFPLE9BQU8sT0FBTyxPQUFPLE9BQU8sT0FBTyxPQUFPLE9BQU8sS0FBSztBQUFBLE1BQzVFO0FBQUEsTUFDQSxzQkFBc0I7QUFBQSxRQUNwQixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSw0QkFBNEI7QUFBQSxRQUMxQixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsUUFDZCxZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSw0QkFBNEI7QUFBQSxRQUMxQixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsUUFDZCxZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSxpQ0FBaUM7QUFBQSxRQUMvQixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsUUFDZCxZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSxxQkFBcUI7QUFBQSxRQUNuQixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsUUFDZCxZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSx1QkFBdUI7QUFBQSxRQUNyQixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSxxQkFBcUI7QUFBQSxRQUNuQixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSwwQkFBMEI7QUFBQSxRQUN4QixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSwwQkFBMEI7QUFBQSxRQUN4QixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsaUNBQWlDO0FBQUEsUUFDL0IsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLGtDQUFrQztBQUFBLFFBQ2hDLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLDZCQUE2QjtBQUFBLFFBQzNCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxnQ0FBZ0M7QUFBQSxRQUM5QixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSwwQkFBMEI7QUFBQSxRQUN4QixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSwwQkFBMEI7QUFBQSxRQUN4QixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSw2QkFBNkI7QUFBQSxRQUMzQixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsaUNBQWlDO0FBQUEsUUFDL0IsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLDRCQUE0QjtBQUFBLFFBQzFCLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxPQUFPLE9BQU8sT0FBTyxLQUFLO0FBQUEsTUFDekM7QUFBQSxNQUNBLDRCQUE0QjtBQUFBLFFBQzFCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSx5QkFBeUI7QUFBQSxRQUN2QixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSw4QkFBOEI7QUFBQSxRQUM1QixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSxnQ0FBZ0M7QUFBQSxRQUM5QixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSx1QkFBdUI7QUFBQSxRQUNyQixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSwwQkFBMEI7QUFBQSxRQUN4QixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsVUFBVTtBQUFBLE1BQ3pCO0FBQUEsTUFDQSw0QkFBNEI7QUFBQSxRQUMxQixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsUUFBUTtBQUFBLE1BQ3ZCO0FBQUEsTUFDQSxzQkFBc0I7QUFBQSxRQUNwQixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsTUFBTTtBQUFBLE1BQ3JCO0FBQUEsTUFDQSxzQkFBc0I7QUFBQSxRQUNwQixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EscUJBQXFCO0FBQUEsUUFDbkIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsMkJBQTJCO0FBQUEsUUFDekIsY0FBYztBQUFBLFFBQ2QsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0Esc0NBQXNDO0FBQUEsUUFDcEMsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLFNBQVM7QUFBQSxNQUN4QjtBQUFBLE1BQ0EsNEJBQTRCO0FBQUEsUUFDMUIsY0FBYztBQUFBLFFBQ2QsWUFBWSxDQUFDLE9BQU87QUFBQSxNQUN0QjtBQUFBLE1BQ0EsK0JBQStCO0FBQUEsUUFDN0IsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0Esc0NBQXNDO0FBQUEsUUFDcEMsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsMENBQTBDO0FBQUEsUUFDeEMsWUFBWSxDQUFDLFNBQVM7QUFBQSxNQUN4QjtBQUFBLE1BQ0Esc0NBQXNDO0FBQUEsUUFDcEMsWUFBWSxDQUFDLE9BQU87QUFBQSxNQUN0QjtBQUFBLE1BQ0EsbUNBQW1DO0FBQUEsUUFDakMsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLFNBQVM7QUFBQSxNQUN4QjtBQUFBLE1BQ0EsZ0NBQWdDO0FBQUEsUUFDOUIsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLFFBQ2QsWUFBWSxDQUFDLE1BQU07QUFBQSxNQUNyQjtBQUFBLE1BQ0EsNEJBQTRCO0FBQUEsUUFDMUIsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSwwQkFBMEI7QUFBQSxRQUN4QixZQUFZLENBQUMsTUFBTTtBQUFBLE1BQ3JCO0FBQUEsTUFDQSx1QkFBdUI7QUFBQSxRQUNyQixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsUUFDZCxZQUFZLENBQUMsT0FBTztBQUFBLE1BQ3RCO0FBQUEsTUFDQSw4QkFBOEI7QUFBQSxRQUM1QixZQUFZLENBQUMsTUFBTTtBQUFBLE1BQ3JCO0FBQUEsTUFDQSxnQ0FBZ0M7QUFBQSxRQUM5QixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsT0FBTyxLQUFLO0FBQUEsTUFDM0I7QUFBQSxNQUNBLDBCQUEwQjtBQUFBLFFBQ3hCLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLHFCQUFxQjtBQUFBLFFBQ25CLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLGtDQUFrQztBQUFBLFFBQ2hDLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxPQUFPLE1BQU07QUFBQSxNQUM1QjtBQUFBLE1BQ0EseUJBQXlCO0FBQUEsUUFDdkIsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSxnQ0FBZ0M7QUFBQSxRQUM5QixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsYUFBYTtBQUFBLE1BQzVCO0FBQUEsTUFDQSw2QkFBNkI7QUFBQSxRQUMzQixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSx3QkFBd0I7QUFBQSxRQUN0QixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSx3QkFBd0I7QUFBQSxRQUN0QixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSx5QkFBeUI7QUFBQSxRQUN2QixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsTUFBTTtBQUFBLE1BQ3JCO0FBQUEsTUFDQSwwQkFBMEI7QUFBQSxRQUN4QixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSwwQkFBMEI7QUFBQSxRQUN4QixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSw0QkFBNEI7QUFBQSxRQUMxQixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSx3QkFBd0I7QUFBQSxRQUN0QixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSwrQkFBK0I7QUFBQSxRQUM3QixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSw0QkFBNEI7QUFBQSxRQUMxQixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsT0FBTyxPQUFPLE9BQU8sT0FBTyxLQUFLO0FBQUEsTUFDaEQ7QUFBQSxNQUNBLDZCQUE2QjtBQUFBLFFBQzNCLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxPQUFPLE9BQU8sS0FBSztBQUFBLE1BQ2xDO0FBQUEsTUFDQSw0QkFBNEI7QUFBQSxRQUMxQixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsT0FBTyxPQUFPLE9BQU8sS0FBSztBQUFBLE1BQ3pDO0FBQUEsTUFDQSx5QkFBeUI7QUFBQSxRQUN2QixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSw2QkFBNkI7QUFBQSxRQUMzQixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSw0QkFBNEI7QUFBQSxRQUMxQixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSw0QkFBNEI7QUFBQSxRQUMxQixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSx5QkFBeUI7QUFBQSxRQUN2QixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSx3QkFBd0I7QUFBQSxRQUN0QixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsTUFBTSxLQUFLO0FBQUEsTUFDMUI7QUFBQSxNQUNBLHFDQUFxQztBQUFBLFFBQ25DLGNBQWM7QUFBQSxRQUNkLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLHFCQUFxQjtBQUFBLFFBQ25CLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLHNCQUFzQjtBQUFBLFFBQ3BCLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxNQUFNLElBQUk7QUFBQSxNQUN6QjtBQUFBLE1BQ0EsdUJBQXVCO0FBQUEsUUFDckIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLE9BQU8sS0FBSztBQUFBLE1BQzNCO0FBQUEsTUFDQSx3QkFBd0I7QUFBQSxRQUN0QixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsUUFDZCxZQUFZLENBQUMsT0FBTyxLQUFLO0FBQUEsTUFDM0I7QUFBQSxNQUNBLG9DQUFvQztBQUFBLFFBQ2xDLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxPQUFPLEtBQUs7QUFBQSxNQUMzQjtBQUFBLE1BQ0EsbUNBQW1DO0FBQUEsUUFDakMsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsNkJBQTZCO0FBQUEsUUFDM0IsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLGdDQUFnQztBQUFBLFFBQzlCLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxRQUNkLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLHdDQUF3QztBQUFBLFFBQ3RDLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLHVDQUF1QztBQUFBLFFBQ3JDLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLHFCQUFxQjtBQUFBLFFBQ25CLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLG9CQUFvQjtBQUFBLFFBQ2xCLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxRQUNkLFlBQVksQ0FBQyxJQUFJO0FBQUEsTUFDbkI7QUFBQSxNQUNBLHNCQUFzQjtBQUFBLFFBQ3BCLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxNQUFNO0FBQUEsTUFDckI7QUFBQSxNQUNBLGlDQUFpQztBQUFBLFFBQy9CLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxRQUNkLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLGlDQUFpQztBQUFBLFFBQy9CLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLHFCQUFxQjtBQUFBLFFBQ25CLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLHlCQUF5QjtBQUFBLFFBQ3ZCLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxRQUNkLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLDBCQUEwQjtBQUFBLFFBQ3hCLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxNQUFNO0FBQUEsTUFDckI7QUFBQSxNQUNBLHdCQUF3QjtBQUFBLFFBQ3RCLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLHlCQUF5QjtBQUFBLFFBQ3ZCLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxTQUFTO0FBQUEsTUFDeEI7QUFBQSxNQUNBLHdCQUF3QjtBQUFBLFFBQ3RCLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxRQUFRO0FBQUEsTUFDdkI7QUFBQSxNQUNBLDRCQUE0QjtBQUFBLFFBQzFCLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxJQUFJO0FBQUEsTUFDbkI7QUFBQSxNQUNBLHNCQUFzQjtBQUFBLFFBQ3BCLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLHFCQUFxQjtBQUFBLFFBQ25CLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxRQUNkLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLHFCQUFxQjtBQUFBLFFBQ25CLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxPQUFPLElBQUk7QUFBQSxNQUMxQjtBQUFBLE1BQ0EscUJBQXFCO0FBQUEsUUFDbkIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EseUJBQXlCO0FBQUEsUUFDdkIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EseUJBQXlCO0FBQUEsUUFDdkIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLFdBQVcsTUFBTTtBQUFBLE1BQ2hDO0FBQUEsTUFDQSxzQkFBc0I7QUFBQSxRQUNwQixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSx1QkFBdUI7QUFBQSxRQUNyQixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsT0FBTztBQUFBLE1BQ3RCO0FBQUEsTUFDQSxnQ0FBZ0M7QUFBQSxRQUM5QixjQUFjO0FBQUEsUUFDZCxZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSxnQ0FBZ0M7QUFBQSxRQUM5QixjQUFjO0FBQUEsUUFDZCxZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSxnQ0FBZ0M7QUFBQSxRQUM5QixjQUFjO0FBQUEsUUFDZCxZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSxpQ0FBaUM7QUFBQSxRQUMvQixjQUFjO0FBQUEsUUFDZCxZQUFZLENBQUMsTUFBTTtBQUFBLE1BQ3JCO0FBQUEsTUFDQSx5Q0FBeUM7QUFBQSxRQUN2QyxjQUFjO0FBQUEsUUFDZCxZQUFZLENBQUMsY0FBYztBQUFBLE1BQzdCO0FBQUEsTUFDQSxnQ0FBZ0M7QUFBQSxRQUM5QixjQUFjO0FBQUEsUUFDZCxZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSxnQ0FBZ0M7QUFBQSxRQUM5QixjQUFjO0FBQUEsUUFDZCxZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSxpQ0FBaUM7QUFBQSxRQUMvQixjQUFjO0FBQUEsUUFDZCxZQUFZLENBQUMsTUFBTTtBQUFBLE1BQ3JCO0FBQUEsTUFDQSw2QkFBNkI7QUFBQSxRQUMzQixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSx1Q0FBdUM7QUFBQSxRQUNyQyxjQUFjO0FBQUEsUUFDZCxZQUFZLENBQUMsUUFBUTtBQUFBLE1BQ3ZCO0FBQUEsTUFDQSxxQ0FBcUM7QUFBQSxRQUNuQyxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLDhCQUE4QjtBQUFBLFFBQzVCLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxPQUFPLE9BQU8sS0FBSztBQUFBLE1BQ2xDO0FBQUEsTUFDQSxpQ0FBaUM7QUFBQSxRQUMvQixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsbUNBQW1DO0FBQUEsUUFDakMsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLHNCQUFzQjtBQUFBLFFBQ3BCLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLDJCQUEyQjtBQUFBLFFBQ3pCLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxRQUNkLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLDJCQUEyQjtBQUFBLFFBQ3pCLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxRQUNkLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLG9CQUFvQjtBQUFBLFFBQ2xCLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxJQUFJO0FBQUEsTUFDbkI7QUFBQSxNQUNBLGdDQUFnQztBQUFBLFFBQzlCLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLDBCQUEwQjtBQUFBLFFBQ3hCLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLElBQUk7QUFBQSxNQUM3RDtBQUFBLE1BQ0EsdUJBQXVCO0FBQUEsUUFDckIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLHlCQUF5QjtBQUFBLFFBQ3ZCLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0Esd0JBQXdCO0FBQUEsUUFDdEIsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLFFBQ2QsWUFBWSxDQUFDLE1BQU07QUFBQSxNQUNyQjtBQUFBLE1BQ0EsNEJBQTRCO0FBQUEsUUFDMUIsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLFFBQ2QsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsNkJBQTZCO0FBQUEsUUFDM0IsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLFFBQ2QsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsNkJBQTZCO0FBQUEsUUFDM0IsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLFFBQ2QsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsMkJBQTJCO0FBQUEsUUFDekIsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLFFBQ2QsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsOEJBQThCO0FBQUEsUUFDNUIsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSwyQkFBMkI7QUFBQSxRQUN6QixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsUUFDZCxZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSx3Q0FBd0M7QUFBQSxRQUN0QyxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLDZDQUE2QztBQUFBLFFBQzNDLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0Esd0JBQXdCO0FBQUEsUUFDdEIsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLFFBQ2QsWUFBWSxDQUFDLE1BQU07QUFBQSxNQUNyQjtBQUFBLE1BQ0Esb0JBQW9CO0FBQUEsUUFDbEIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLE1BQU07QUFBQSxNQUNyQjtBQUFBLE1BQ0EseUJBQXlCO0FBQUEsUUFDdkIsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLFFBQ2QsWUFBWSxDQUFDLFNBQVMsS0FBSztBQUFBLE1BQzdCO0FBQUEsTUFDQSwrQkFBK0I7QUFBQSxRQUM3QixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLHlCQUF5QjtBQUFBLFFBQ3ZCLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxRQUNkLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLG1CQUFtQjtBQUFBLFFBQ2pCLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxRQUNkLFlBQVksQ0FBQyxPQUFPLE9BQU8sT0FBTyxLQUFLO0FBQUEsTUFDekM7QUFBQSxNQUNBLHVCQUF1QjtBQUFBLFFBQ3JCLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxRQUNkLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLDBDQUEwQztBQUFBLFFBQ3hDLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSw2QkFBNkI7QUFBQSxRQUMzQixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLHdCQUF3QjtBQUFBLFFBQ3RCLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EsdUJBQXVCO0FBQUEsUUFDckIsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLFFBQ2QsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EseUJBQXlCO0FBQUEsUUFDdkIsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLFFBQ2QsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0Esd0JBQXdCO0FBQUEsUUFDdEIsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLFFBQ2QsWUFBWSxDQUFDLE9BQU8sTUFBTTtBQUFBLE1BQzVCO0FBQUEsTUFDQSx3QkFBd0I7QUFBQSxRQUN0QixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsUUFDZCxZQUFZLENBQUMsTUFBTTtBQUFBLE1BQ3JCO0FBQUEsTUFDQSxzQkFBc0I7QUFBQSxRQUNwQixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsUUFDZCxZQUFZLENBQUMsUUFBUSxTQUFTLFFBQVEsS0FBSztBQUFBLE1BQzdDO0FBQUEsTUFDQSxvQkFBb0I7QUFBQSxRQUNsQixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0Esb0JBQW9CO0FBQUEsUUFDbEIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLE1BQU07QUFBQSxNQUNyQjtBQUFBLE1BQ0EsOEJBQThCO0FBQUEsUUFDNUIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLDhCQUE4QjtBQUFBLFFBQzVCLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EsNkJBQTZCO0FBQUEsUUFDM0IsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSwrQkFBK0I7QUFBQSxRQUM3QixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLDhCQUE4QjtBQUFBLFFBQzVCLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EsNkJBQTZCO0FBQUEsUUFDM0IsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSx1QkFBdUI7QUFBQSxRQUNyQixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsUUFDZCxZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSxtQkFBbUI7QUFBQSxRQUNqQixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsUUFDZCxZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSw2QkFBNkI7QUFBQSxRQUMzQixZQUFZLENBQUMsUUFBUTtBQUFBLE1BQ3ZCO0FBQUEsTUFDQSxvQkFBb0I7QUFBQSxRQUNsQixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0Esb0JBQW9CO0FBQUEsUUFDbEIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLGtDQUFrQztBQUFBLFFBQ2hDLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxrQkFBa0I7QUFBQSxRQUNoQixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsY0FBYztBQUFBLFFBQ1osUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLFFBQ2QsWUFBWSxDQUFDLE1BQU07QUFBQSxNQUNyQjtBQUFBLE1BQ0EsZUFBZTtBQUFBLFFBQ2IsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLGFBQWE7QUFBQSxRQUNYLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxRQUFRLEtBQUs7QUFBQSxNQUM1QjtBQUFBLE1BQ0EsYUFBYTtBQUFBLFFBQ1gsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLGVBQWU7QUFBQSxRQUNiLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLGFBQWE7QUFBQSxRQUNYLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLGdCQUFnQjtBQUFBLFFBQ2QsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLGlCQUFpQjtBQUFBLFFBQ2YsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLGNBQWM7QUFBQSxRQUNaLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxhQUFhO0FBQUEsUUFDWCxRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsaUNBQWlDO0FBQUEsUUFDL0IsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLGlCQUFpQjtBQUFBLFFBQ2YsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLGdCQUFnQjtBQUFBLFFBQ2QsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLGVBQWU7QUFBQSxRQUNiLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxRQUNkLFlBQVksQ0FBQyxNQUFNLEtBQUs7QUFBQSxNQUMxQjtBQUFBLE1BQ0EsY0FBYztBQUFBLFFBQ1osUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLGNBQWM7QUFBQSxRQUNaLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxtQkFBbUI7QUFBQSxRQUNqQixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsWUFBWTtBQUFBLFFBQ1YsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLGVBQWU7QUFBQSxRQUNiLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxhQUFhO0FBQUEsUUFDWCxRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0Esc0JBQXNCO0FBQUEsUUFDcEIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLHNCQUFzQjtBQUFBLFFBQ3BCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxzQkFBc0I7QUFBQSxRQUNwQixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0Esc0JBQXNCO0FBQUEsUUFDcEIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLFlBQVk7QUFBQSxRQUNWLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxjQUFjO0FBQUEsUUFDWixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsY0FBYztBQUFBLFFBQ1osUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLGtCQUFrQjtBQUFBLFFBQ2hCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxjQUFjO0FBQUEsUUFDWixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0Esa0JBQWtCO0FBQUEsUUFDaEIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLGVBQWU7QUFBQSxRQUNiLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxlQUFlO0FBQUEsUUFDYixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsZUFBZTtBQUFBLFFBQ2IsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLGdCQUFnQjtBQUFBLFFBQ2QsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLGdCQUFnQjtBQUFBLFFBQ2QsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLGdCQUFnQjtBQUFBLFFBQ2QsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLGlCQUFpQjtBQUFBLFFBQ2YsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLGlCQUFpQjtBQUFBLFFBQ2YsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLGdCQUFnQjtBQUFBLFFBQ2QsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLGlCQUFpQjtBQUFBLFFBQ2YsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLGlCQUFpQjtBQUFBLFFBQ2YsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLGFBQWE7QUFBQSxRQUNYLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxjQUFjO0FBQUEsUUFDWixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsaUJBQWlCO0FBQUEsUUFDZixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsZ0JBQWdCO0FBQUEsUUFDZCxRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsZ0JBQWdCO0FBQUEsUUFDZCxRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsY0FBYztBQUFBLFFBQ1osUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLGNBQWM7QUFBQSxRQUNaLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxlQUFlO0FBQUEsUUFDYixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsY0FBYztBQUFBLFFBQ1osUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLGlCQUFpQjtBQUFBLFFBQ2YsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLGlCQUFpQjtBQUFBLFFBQ2YsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLGlCQUFpQjtBQUFBLFFBQ2YsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLGlCQUFpQjtBQUFBLFFBQ2YsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLGNBQWM7QUFBQSxRQUNaLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxjQUFjO0FBQUEsUUFDWixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsZUFBZTtBQUFBLFFBQ2IsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLGVBQWU7QUFBQSxRQUNiLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxlQUFlO0FBQUEsUUFDYixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsYUFB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QUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsYUFBYTtBQUFBLFFBQ1gsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsY0FBYztBQUFBLFFBQ1osUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLE1BQU07QUFBQSxNQUNyQjtBQUFBLE1BQ0EsY0FBYztBQUFBLFFBQ1osUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLE1BQU07QUFBQSxNQUNyQjtBQUFBLE1BQ0EsYUFBYTtBQUFBLFFBQ1gsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsY0FBYztBQUFBLFFBQ1osUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLE1BQU07QUFBQSxNQUNyQjtBQUFBLE1BQ0EsY0FBYztBQUFBLFFBQ1osUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLE1BQU07QUFBQSxNQUNyQjtBQUFBLE1BQ0EsY0FBYztBQUFBLFFBQ1osUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLE1BQU07QUFBQSxNQUNyQjtBQUFBLE1BQ0EsYUFBYTtBQUFBLFFBQ1gsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsY0FBYztBQUFBLFFBQ1osUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLE1BQU07QUFBQSxNQUNyQjtBQUFBLE1BQ0EsZ0JBQWdCO0FBQUEsUUFDZCxRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsZUFBZTtBQUFBLFFBQ2IsY0FBYztBQUFBLFFBQ2QsWUFBWSxDQUFDLE1BQU07QUFBQSxNQUNyQjtBQUFBLE1BQ0EsYUFBYTtBQUFBLFFBQ1gsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLFFBQ2QsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0Esa0JBQWtCO0FBQUEsUUFDaEIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLFFBQVEsS0FBSztBQUFBLE1BQzVCO0FBQUEsTUFDQSxpQkFBaUI7QUFBQSxRQUNmLFFB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QUNmLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxpQkFBaUI7QUFBQSxRQUNmLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxnQkFBZ0I7QUFBQSxRQUNkLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxpQkFBaUI7QUFBQSxRQUNmLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxpQkFBaUI7QUFBQSxRQUNmLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxhQUFhO0FBQUEsUUFDWCxRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsY0FBYztBQUFBLFFBQ1osUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLGlCQUFpQjtBQUFBLFFBQ2YsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLGdCQUFnQjtBQUFBLFFBQ2QsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLGdCQUFnQjtBQUFBLFFBQ2QsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLGNBQWM7QUFBQSxRQUNaLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxjQUFjO0FBQUEsUUFDWixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsZUFBZTtBQUFBLFFBQ2IsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLGNBQWM7QUFBQSxRQUNaLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxpQkFBaUI7QUFBQSxRQUNmLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxpQkFBaUI7QUFBQSxRQUNmLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxpQkFBaUI7QUFBQSxRQUNmLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxpQkFBaUI7QUFBQSxRQUNmLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxjQUFjO0FBQUEsUUFDWixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsY0FBYztBQUFBLFFBQ1osUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLGVBQWU7QUFBQSxRQUNiLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxlQUFlO0FBQUEsUUFDYixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsZUFBZTtBQUFB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UUFDUixZQUFZLENBQUMsTUFBTTtBQUFBLE1BQ3JCO0FBQUEsTUFDQSxjQUFjO0FBQUEsUUFDWixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsT0FBTztBQUFBLE1BQ3RCO0FBQUEsTUFDQSxjQUFjO0FBQUEsUUFDWixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSxjQUFjO0FBQUEsUUFDWixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsUUFDZCxZQUFZLENBQUMsTUFBTTtBQUFBLE1BQ3JCO0FBQUEsTUFDQSxjQUFjO0FBQUEsUUFDWixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsTUFBTTtBQUFBLE1BQ3JCO0FBQUEsTUFDQSxjQUFjO0FBQUEsUUFDWixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsTUFBTTtBQUFBLE1BQ3JCO0FBQUEsTUFDQSxjQUFjO0FBQUEsUUFDWixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsUUFDZCxZQUFZLENBQUMsTUFBTTtBQUFBLE1BQ3JCO0FBQUEsTUFDQSxhQUFhO0FBQUEsUUFDWCxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsUUFDZCxZQUFZLENBQUMsT0FBTyxLQUFLO0FBQUEsTUFDM0I7QUFBQSxNQUNBLGFBQWE7QUFBQSxRQUNYLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLG1CQUFtQjtBQUFBLFFBQ2pCLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxNQUFNO0FBQUEsTUFDckI7QUFBQSxNQUNBLGFBQWE7QUFBQSxRQUNYLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLGFBQWE7QUFBQSxRQUNYLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLGNBQWM7QUFBQSxRQUNaLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxNQUFNO0FBQUEsTUFDckI7QUFBQSxNQUNBLGVBQWU7QUFBQSxRQUNiLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxJQUFJO0FBQUEsTUFDbkI7QUFBQSxNQUNBLGFBQWE7QUFBQSxRQUNYLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxRQUNkLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLGNBQWM7QUFBQSxRQUNaLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxNQUFNO0FBQUEsTUFDckI7QUFBQSxNQUNBLHVCQUF1QjtBQUFBLFFBQ3JCLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxPQUFPO0FBQUEsTUFDdEI7QUFBQSxNQUNBLGNBQWM7QUFBQSxRQUNaLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxNQUFNO0FBQUEsTUFDckI7QUFBQSxNQUNBLHVCQUF1QjtBQUFBLFFBQ3JCLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxPQUFPO0FBQUEsTUFDdEI7QUFBQSxNQUNBLGVBQWU7QUFBQSxRQUNiLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxNQUFNO0FBQUEsTUFDckI7QUFBQSxNQUNBLGFBQWE7QUFBQSxRQUNYLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLGFBQWE7QUFBQSxRQUNYLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxjQUFjO0FBQUEsUUFDWixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsTUFBTTtBQUFBLE1BQ3JCO0FBQUEsTUFDQSxjQUFjO0FBQUEsUUFDWixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsTUFBTTtBQUFBLE1BQ3JCO0FBQUEsTUFDQSxhQUFhO0FBQUEsUUFDWCxRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSxhQUFhO0FBQUEsUUFDWCxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsUUFDZCxZQUFZLENBQUMsT0FBTyxNQUFNO0FBQUEsTUFDNUI7QUFBQSxNQUNBLGNBQWM7QUFBQSxRQUNaLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxRQUNkLFlBQVksQ0FBQyxPQUFPLFFBQVEsS0FBSztBQUFBLE1BQ25DO0FBQUEsTUFDQSxhQUFhO0FBQUEsUUFDWCxRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSxjQUFjO0FBQUEsUUFDWixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSxhQUFhO0FBQUEsUUFDWCxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsUUFDZCxZQUFZLENBQUMsT0FBTyxNQUFNO0FBQUEsTUFDNUI7QUFBQSxNQUNBLGFBQWE7QUFBQSxRQUNYLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxRQUNkLFlBQVksQ0FBQyxPQUFPLEtBQUs7QUFBQSxNQUMzQjtBQUFBLE1BQ0EsYUFBYTtBQUFBLFFBQ1gsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsYUFBYTtBQUFBLFFBQ1gsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsY0FBYztBQUFBLFFBQ1osUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLE1BQU07QUFBQSxNQUNyQjtBQUFBLE1BQ0EsY0FBYztBQUFBLFFBQ1osUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLE1BQU07QUFBQSxNQUNyQjtBQUFBLE1BQ0EsYUFBYTtBQUFBLFFBQ1gsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsY0FBYztBQUFBLFFBQ1osUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLE1BQU07QUFBQSxNQUNyQjtBQUFBLE1BQ0EsY0FBYztBQUFBLFFBQ1osUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLE1BQU07QUFBQSxNQUNyQjtBQUFBLE1BQ0EsY0FBYztBQUFBLFFBQ1osUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLE1BQU07QUFBQSxNQUNyQjtBQUFBLE1BQ0EsYUFBYTtBQUFBLFFBQ1gsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsY0FBYztBQUFBLFFBQ1osUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLE1BQU07QUFBQSxNQUNyQjtBQUFBLE1BQ0EsZ0JBQWdCO0FBQUEsUUFDZCxRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsZUFBZTtBQUFBLFFBQ2IsY0FBYztBQUFBLFFBQ2QsWUFBWSxDQUFDLE1BQU07QUFBQSxNQUNyQjtBQUFBLE1BQ0EsYUFBYTtBQUFBLFFBQ1gsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLFFBQ2QsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0Esa0JBQWtCO0FBQUEsUUFDaEIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLFFBQVEsS0FBSztBQUFBLE1BQzVCO0FBQUEsTUFDQSxpQkFBaUI7QUFBQSxRQUNmLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLG9CQUFvQjtBQUFBLFFBQ2xCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxhQUFhO0FBQUEsUUFDWCxRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSxpQkFBaUI7QUFBQSxRQUNmLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxRQUNkLFlBQVksQ0FBQyxPQUFPLE1BQU07QUFBQSxNQUM1QjtBQUFBLE1BQ0EsYUFBYTtBQUFBLFFBQ1gsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsY0FBYztBQUFBLFFBQ1osUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLFFBQ2QsWUFBWSxDQUFDLE9BQU8sTUFBTTtBQUFBLE1BQzVCO0FBQUEsTUFDQSxpQkFBaUI7QUFBQSxRQUNmLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLDZCQUE2QjtBQUFBLFFBQzNCLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxRQUNkLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLG9DQUFvQztBQUFBLFFBQ2xDLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLGtCQUFrQjtBQUFBLFFBQ2hCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxzQkFBc0I7QUFBQSxRQUNwQixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsMEJBQTBCO0FBQUEsUUFDeEIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLE9BQU8sUUFBUSxPQUFPLE1BQU07QUFBQSxNQUMzQztBQUFBLE1BQ0Esa0JBQWtCO0FBQUEsUUFDaEIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLFFBQVEsS0FBSztBQUFBLE1BQzVCO0FBQUEsTUFDQSwwQkFBMEI7QUFBQSxRQUN4QixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSxpQkFBaUI7QUFBQSxRQUNmLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLGlCQUFpQjtBQUFBLFFBQ2YsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsMEJBQTBCO0FBQUEsUUFDeEIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsaUJBQWlCO0FBQUEsUUFDZixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSxpQkFBaUI7QUFBQSxRQUNmLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLGtDQUFrQztBQUFBLFFBQ2hDLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLGtDQUFrQztBQUFBLFFBQ2hDLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLGdDQUFnQztBQUFBLFFBQzlCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSw0QkFBNEI7QUFBQSxRQUMxQixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsUUFDZCxZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSxpQkFBaUI7QUFBQSxRQUNmLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSwwQkFBMEI7QUFBQSxRQUN4QixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0Esb0JBQW9CO0FBQUEsUUFDbEIsY0FBYztBQUFBLFFBQ2QsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EscUJBQXFCO0FBQUEsUUFDbkIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0Esc0JBQXNCO0FBQUEsUUFDcEIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EscUJBQXFCO0FBQUEsUUFDbkIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EscUJBQXFCO0FBQUEsUUFDbkIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0Esc0JBQXNCO0FBQUEsUUFDcEIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLHdCQUF3QjtBQUFBLFFBQ3RCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxzQ0FBc0M7QUFBQSxRQUNwQyxRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0Esc0NBQXNDO0FBQUEsUUFDcEMsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLGlCQUFpQjtBQUFBLFFBQ2YsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLHlCQUF5QjtBQUFBLFFBQ3ZCLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLGtDQUFrQztBQUFBLFFBQ2hDLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLHNCQUFzQjtBQUFBLFFBQ3BCLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxNQUFNO0FBQUEsTUFDckI7QUFBQSxNQUNBLGtCQUFrQjtBQUFBLFFBQ2hCLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLHdCQUF3QjtBQUFBLFFBQ3RCLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLGNBQWM7QUFBQSxRQUNaLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxNQUFNO0FBQUEsTUFDckI7QUFBQSxNQUNBLGFBQWE7QUFBQSxRQUNYLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLGVBQWU7QUFBQSxRQUNiLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLHFCQUFxQjtBQUFBLFFBQ25CLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLHNCQUFzQjtBQUFBLFFBQ3BCLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLGVBQWU7QUFBQSxRQUNiLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLGVBQWU7QUFBQSxRQUNiLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxvQkFBb0I7QUFBQSxRQUNsQixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsTUFBTSxPQUFPLE9BQU8sT0FBTyxLQUFLO0FBQUEsTUFDL0M7QUFBQSxNQUNBLGdCQUFnQjtBQUFBLFFBQ2QsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLFFBQ2QsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsZUFBZTtBQUFBLFFBQ2IsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsdUJBQXVCO0FBQUEsUUFDckIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0Esa0JBQWtCO0FBQUEsUUFDaEIsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLFFBQ2QsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsZUFBZTtBQUFBLFFBQ2IsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsZ0JBQWdCO0FBQUEsUUFDZCxRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsT0FBTyxLQUFLO0FBQUEsTUFDM0I7QUFBQSxNQUNBLDJCQUEyQjtBQUFBLFFBQ3pCLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLDJCQUEyQjtBQUFBLFFBQ3pCLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLDRCQUE0QjtBQUFBLFFBQzFCLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLDJCQUEyQjtBQUFBLFFBQ3pCLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLGVBQWU7QUFBQSxRQUNiLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLGVBQWU7QUFBQSxRQUNiLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLGVBQWU7QUFBQSxRQUNiLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxtQkFBbUI7QUFBQSxRQUNqQixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSxlQUFlO0FBQUEsUUFDYixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLG1CQUFtQjtBQUFBLFFBQ2pCLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLHVCQUF1QjtBQUFBLFFBQ3JCLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLGlCQUFpQjtBQUFBLFFBQ2YsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLGdCQUFnQjtBQUFBLFFBQ2QsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLDJCQUEyQjtBQUFBLFFBQ3pCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxvQ0FBb0M7QUFBQSxRQUNsQyxRQUFRO0FBQUEsUUFDUixZQUFZO0FBQUEsVUFDVjtBQUFBLFFBQ0Y7QUFBQSxNQUNGO0FBQUEsTUFDQSx5QkFBeUI7QUFBQSxRQUN2QixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsMkJBQTJCO0FBQUEsUUFDekIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLGtCQUFrQjtBQUFBLFFBQ2hCLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxPQUFPO0FBQUEsTUFDdEI7QUFBQSxNQUNBLGtDQUFrQztBQUFBLFFBQ2hDLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxPQUFPO0FBQUEsTUFDdEI7QUFBQSxNQUNBLDJDQUEyQztBQUFBLFFBQ3pDLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxPQUFPO0FBQUEsTUFDdEI7QUFBQSxNQUNBLDBCQUEwQjtBQUFBLFFBQ3hCLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxPQUFPO0FBQUEsTUFDdEI7QUFBQSxNQUNBLGdCQUFnQjtBQUFBLFFBQ2QsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSxvQkFBb0I7QUFBQSxRQUNsQixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLGVBQWU7QUFBQSxRQUNiLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxnQkFBZ0I7QUFBQSxRQUNkLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxxQkFBcUI7QUFBQSxRQUNuQixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EscUJBQXFCO0FBQUEsUUFDbkIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLG1CQUFtQjtBQUFBLFFBQ2pCLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0Esa0JBQWtCO0FBQUEsUUFDaEIsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLFFBQ2QsWUFBWSxDQUFDLE9BQU8sUUFBUSxPQUFPLE9BQU87QUFBQSxNQUM1QztBQUFBLE1BQ0Esa0JBQWtCO0FBQUEsUUFDaEIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLGVBQWU7QUFBQSxRQUNiLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxtQkFBbUI7QUFBQSxRQUNqQixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsMkJBQTJCO0FBQUEsUUFDekIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLHVCQUF1QjtBQUFBLFFBQ3JCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSx1QkFBdUI7QUFBQSxRQUNyQixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSxhQUFhO0FBQUEsUUFDWCxRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSxhQUFhO0FBQUEsUUFDWCxRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsbUJBQW1CO0FBQUEsUUFDakIsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLFFBQ2QsWUFBWSxDQUFDLE1BQU07QUFBQSxNQUNyQjtBQUFBLE1BQ0EscUJBQXFCO0FBQUEsUUFDbkIsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLFFBQ2QsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsY0FBYztBQUFBLFFBQ1osUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLFFBQ2QsWUFBWSxDQUFDLE9BQU8sTUFBTTtBQUFBLE1BQzVCO0FBQUEsTUFDQSxZQUFZO0FBQUEsUUFDVixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsSUFBSTtBQUFBLE1BQ25CO0FBQUEsTUFDQSxjQUFjO0FBQUEsUUFDWixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsUUFDZCxZQUFZLENBQUMsT0FBTyxRQUFRLE1BQU07QUFBQSxNQUNwQztBQUFBLE1BQ0EsYUFBYTtBQUFBLFFBQ1gsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsYUFBYTtBQUFBLFFBQ1gsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsYUFBYTtBQUFBLFFBQ1gsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsY0FBYztBQUFBLFFBQ1osUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLFFBQVEsT0FBTyxTQUFTLE9BQU8sS0FBSztBQUFBLE1BQ25EO0FBQUEsTUFDQSxrQkFBa0I7QUFBQSxRQUNoQixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsUUFDZCxZQUFZLENBQUMsTUFBTTtBQUFBLE1BQ3JCO0FBQUEsTUFDQSxrQkFBa0I7QUFBQSxRQUNoQixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsUUFDZCxZQUFZLENBQUMsTUFBTTtBQUFBLE1BQ3JCO0FBQUEsTUFDQSxzQkFBc0I7QUFBQSxRQUNwQixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsUUFDZCxZQUFZLENBQUMsT0FBTztBQUFBLE1BQ3RCO0FBQUEsTUFDQSxhQUFhO0FBQUEsUUFDWCxRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSxhQUFhO0FBQUEsUUFDWCxRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSxrQkFBa0I7QUFBQSxRQUNoQixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsTUFBTTtBQUFBLE1BQ3JCO0FBQUEsTUFDQSxpQkFBaUI7QUFBQSxRQUNmLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLHlCQUF5QjtBQUFBLFFBQ3ZCLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxRQUNkLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLGlCQUFpQjtBQUFBLFFBQ2YsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsMkJBQTJCO0FBQUEsUUFDekIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLGlCQUFpQjtBQUFBLFFBQ2YsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0Esb0JBQW9CO0FBQUEsUUFDbEIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLG9CQUFvQjtBQUFBLFFBQ2xCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxpQkFBaUI7QUFBQSxRQUNmLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLHNCQUFzQjtBQUFBLFFBQ3BCLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EsaUJBQWlCO0FBQUEsUUFDZixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSxxQkFBcUI7QUFBQSxRQUNuQixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsTUFBTTtBQUFBLE1BQ3JCO0FBQUEsTUFDQSx1Q0FBdUM7QUFBQSxRQUNyQyxRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSxxQ0FBcUM7QUFBQSxRQUNuQyxRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSx3QkFBd0I7QUFBQSxRQUN0QixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsT0FBTyxNQUFNO0FBQUEsTUFDNUI7QUFBQSxNQUNBLDBDQUEwQztBQUFBLFFBQ3hDLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxxQkFBcUI7QUFBQSxRQUNuQixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSxrQkFBa0I7QUFBQSxRQUNoQixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsTUFBTTtBQUFBLE1BQ3JCO0FBQUEsTUFDQSxzQkFBc0I7QUFBQSxRQUNwQixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsUUFDZCxZQUFZLENBQUMsTUFBTTtBQUFBLE1BQ3JCO0FBQUEsTUFDQSx1Q0FBdUM7QUFBQSxRQUNyQyxRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSxpQkFBaUI7QUFBQSxRQUNmLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLGNBQWM7QUFBQSxRQUNaLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxRQUNkLFlBQVksQ0FBQyxPQUFPLE1BQU07QUFBQSxNQUM1QjtBQUFBLE1BQ0Esb0JBQW9CO0FBQUEsUUFDbEIsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLFFBQ2QsWUFBWSxDQUFDLFFBQVEsT0FBTztBQUFBLE1BQzlCO0FBQUEsTUFDQSx5QkFBeUI7QUFBQSxRQUN2QixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsTUFBTTtBQUFBLE1BQ3JCO0FBQUEsTUFDQSxrQkFBa0I7QUFBQSxRQUNoQixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsUUFDZCxZQUFZLENBQUMsUUFBUSxPQUFPO0FBQUEsTUFDOUI7QUFBQSxNQUNBLGlCQUFpQjtBQUFBLFFBQ2YsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLFFBQ2QsWUFBWSxDQUFDLE9BQU8sTUFBTTtBQUFBLE1BQzVCO0FBQUEsTUFDQSxrQkFBa0I7QUFBQSxRQUNoQixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsTUFBTTtBQUFBLE1BQ3JCO0FBQUEsTUFDQSx5QkFBeUI7QUFBQSxRQUN2QixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLHlCQUF5QjtBQUFBLFFBQ3ZCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSx3QkFBd0I7QUFBQSxRQUN0QixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0Esb0JBQW9CO0FBQUEsUUFDbEIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLHVCQUF1QjtBQUFBLFFBQ3JCLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EsdUJBQXVCO0FBQUEsUUFDckIsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSx3QkFBd0I7QUFBQSxRQUN0QixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsbUJBQW1CO0FBQUEsUUFDakIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLDBCQUEwQjtBQUFBLFFBQ3hCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxzQkFBc0I7QUFBQSxRQUNwQixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EscUJBQXFCO0FBQUEsUUFDbkIsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSxvQkFBb0I7QUFBQSxRQUNsQixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0Esb0JBQW9CO0FBQUEsUUFDbEIsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSwrQkFBK0I7QUFBQSxRQUM3QixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsMkJBQTJCO0FBQUEsUUFDekIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLDZCQUE2QjtBQUFBLFFBQzNCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxpQ0FBaUM7QUFBQSxRQUMvQixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsdUJBQXVCO0FBQUEsUUFDckIsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLFFBQ2QsWUFBWSxDQUFDLFlBQVksVUFBVTtBQUFBLE1BQ3JDO0FBQUEsTUFDQSxpQkFBaUI7QUFBQSxRQUNmLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxPQUFPLEtBQUs7QUFBQSxNQUMzQjtBQUFBLE1BQ0EsaUJBQWlCO0FBQUEsUUFDZixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLFlBQVk7QUFBQSxRQUNWLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EscUJBQXFCO0FBQUEsUUFDbkIsWUFBWSxDQUFDLFVBQVUsV0FBVztBQUFBLE1BQ3BDO0FBQUEsTUFDQSxZQUFZO0FBQUEsUUFDVixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsdUJBQXVCO0FBQUEsUUFDckIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLHVCQUF1QjtBQUFBLFFBQ3JCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxZQUFZO0FBQUEsUUFDVixRQUFRO0FBQUEsUUFDUixTQUFTO0FBQUEsUUFDVCxjQUFjO0FBQUEsUUFDZCxZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSxZQUFZO0FBQUEsUUFDVixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsUUFDZCxZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSxtQkFBbUI7QUFBQSxRQUNqQixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0Esa0JBQWtCO0FBQUEsUUFDaEIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLFlBQVk7QUFBQSxRQUNWLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxtQkFBbUI7QUFBQSxRQUNqQixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsaUJBQWlCO0FBQUEsUUFDZixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsaUJBQWlCO0FBQUEsUUFDZixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsaUJBQWlCO0FBQUEsUUFDZixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsZ0JBQWdCO0FBQUEsUUFDZCxRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsZUFBZTtBQUFBLFFBQ2IsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLGFBQWE7QUFBQSxRQUNYLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSx5QkFBeUI7QUFBQSxRQUN2QixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsY0FBYztBQUFBLFFBQ1osUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLGFBQWE7QUFBQSxRQUNYLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxRQUNkLFlBQVksQ0FBQyxRQUFRLE9BQU8sT0FBTztBQUFBLE1BQ3JDO0FBQUEsTUFDQSxhQUFhO0FBQUEsUUFDWCxZQUFZLENBQUMsTUFBTTtBQUFBLE1BQ3JCO0FBQUEsTUFDQSxtQkFBbUI7QUFBQSxRQUNqQixRQUFRO0FBQUEsUUFDUixTQUFTO0FBQUEsUUFDVCxjQUFjO0FBQUEsUUFDZCxZQUFZLENBQUMsTUFBTSxLQUFLO0FBQUEsTUFDMUI7QUFBQSxNQUNBLGdCQUFnQjtBQUFBLFFBQ2QsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLFlBQVk7QUFBQSxRQUNWLGNBQWM7QUFBQSxRQUNkLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLGFBQWE7QUFBQSxRQUNYLGNBQWM7QUFBQSxRQUNkLFlBQVksQ0FBQyxNQUFNO0FBQUEsTUFDckI7QUFBQSxNQUNBLGlCQUFpQjtBQUFBLFFBQ2YsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLFFBQ2QsWUFBWSxDQUFDLE1BQU0sVUFBVTtBQUFBLE1BQy9CO0FBQUEsTUFDQSxlQUFlO0FBQUEsUUFDYixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSxZQUFZO0FBQUEsUUFDVixjQUFjO0FBQUEsUUFDZCxZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSxjQUFjO0FBQUEsUUFDWixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsV0FBVztBQUFBLFFBQ1QsUUFBUTtBQUFBLFFBQ1IsU0FBUztBQUFBLFFBQ1QsY0FBYztBQUFBLFFBQ2QsWUFBWSxDQUFDLElBQUk7QUFBQSxNQUNuQjtBQUFBLE1BQ0EsbUJBQW1CO0FBQUEsUUFDakIsUUFBUTtBQUFBLFFBQ1IsU0FBUztBQUFBLE1BQ1g7QUFBQSxNQUNBLGtCQUFrQjtBQUFBLFFBQ2hCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxjQUFjO0FBQUEsUUFDWixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsUUFDZCxZQUFZLENBQUMsT0FBTyxRQUFRLFFBQVEsT0FBTyxRQUFRLE9BQU8sTUFBTSxLQUFLO0FBQUEsTUFDdkU7QUFBQSxNQUNBLDRCQUE0QjtBQUFBLFFBQzFCLFFBQVE7QUFBQSxRQUNSLFNBQVM7QUFBQSxNQUNYO0FBQUEsTUFDQSw0QkFBNEI7QUFBQSxRQUMxQixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0Esc0JBQXNCO0FBQUEsUUFDcEIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsdUJBQXVCO0FBQUEsUUFDckIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLGlCQUFpQjtBQUFBLFFBQ2YsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLGtCQUFrQjtBQUFBLFFBQ2hCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxZQUFZO0FBQUEsUUFDVixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsdUJBQXVCO0FBQUEsUUFDckIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLGlCQUFpQjtBQUFBLFFBQ2YsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLFFBQ2QsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsWUFBWTtBQUFBLFFBQ1YsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLFFBQ2QsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EseUJBQXlCO0FBQUEsUUFDdkIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLG9CQUFvQjtBQUFBLFFBQ2xCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxZQUFZO0FBQUEsUUFDVixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsYUFBYTtBQUFBLFFBQ1gsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLFFBQVEsS0FBSztBQUFBLE1BQzVCO0FBQUEsTUFDQSxlQUFlO0FBQUEsUUFDYixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsYUFBYTtBQUFBLFFBQ1gsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLE1BQU07QUFBQSxNQUNyQjtBQUFBLE1BQ0EsYUFBYTtBQUFBLFFBQ1gsWUFBWSxDQUFDLFFBQVEsS0FBSztBQUFBLE1BQzVCO0FBQUEsTUFDQSxhQUFhO0FBQUEsUUFDWCxRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsTUFBTTtBQUFBLE1BQ3JCO0FBQUEsTUFDQSxnQkFBZ0I7QUFBQSxRQUNkLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxlQUFlO0FBQUEsUUFDYixZQUFZLENBQUMsVUFBVSxNQUFNO0FBQUEsTUFDL0I7QUFBQSxNQUNBLGFBQWE7QUFBQSxRQUNYLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSw2QkFBNkI7QUFBQSxRQUMzQixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsUUFDZCxZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSxjQUFjO0FBQUEsUUFDWixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSyxNQUFNLFFBQVEsT0FBTyxNQUFNLElBQUk7QUFBQSxNQUNuRDtBQUFBLE1BQ0EsZUFBZTtBQUFBLFFBQ2IsUUFBUTtBQUFBLFFBQ1IsU0FBUztBQUFBLFFBQ1QsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsZUFBZTtBQUFBLFFBQ2IsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLGlCQUFpQjtBQUFBLFFBQ2YsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLFFBQ2QsWUFBWSxDQUFDLE9BQU8sUUFBUSxNQUFNO0FBQUEsTUFDcEM7QUFBQSxNQUNBLGNBQWM7QUFBQSxRQUNaLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxRQUNkLFlBQVksQ0FBQyxPQUFPO0FBQUEsTUFDdEI7QUFBQSxNQUNBLGNBQWM7QUFBQSxRQUNaLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxnQkFBZ0I7QUFBQSxRQUNkLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxzQkFBc0I7QUFBQSxRQUNwQixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsaUJBQWlCO0FBQUEsUUFDZixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsTUFBTTtBQUFBLE1BQ3JCO0FBQUEsTUFDQSx1QkFBdUI7QUFBQSxRQUNyQixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsT0FBTztBQUFBLE1BQ3RCO0FBQUEsTUFDQSx1QkFBdUI7QUFBQSxRQUNyQixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsT0FBTztBQUFBLE1BQ3RCO0FBQUEsTUFDQSx1QkFBdUI7QUFBQSxRQUNyQixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsT0FBTztBQUFBLE1BQ3RCO0FBQUEsTUFDQSw2QkFBNkI7QUFBQSxRQUMzQixRQUFRO0FBQUEsUUFDUixTQUFTO0FBQUEsTUFDWDtBQUFBLE1BQ0EsMkJBQTJCO0FBQUEsUUFDekIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLHlCQUF5QjtBQUFBLFFBQ3ZCLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLHNDQUFzQztBQUFBLFFBQ3BDLFFBQVE7QUFBQSxRQUNSLFNBQVM7QUFBQSxNQUNYO0FBQUEsTUFDQSx5QkFBeUI7QUFBQSxRQUN2QixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsZ0NBQWdDO0FBQUEsUUFDOUIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsdUJBQXVCO0FBQUEsUUFDckIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLGdCQUFnQjtBQUFBLFFBQ2QsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EseUJBQXlCO0FBQUEsUUFDdkIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsZ0JBQWdCO0FBQUEsUUFDZCxRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EscUJBQXFCO0FBQUEsUUFDbkIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLElBQUk7QUFBQSxNQUNuQjtBQUFBLE1BQ0EsaUJBQWlCO0FBQUEsUUFDZixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsZ0JBQWdCO0FBQUEsUUFDZCxRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0Esc0JBQXNCO0FBQUEsUUFDcEIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLE1BQU07QUFBQSxNQUNyQjtBQUFBLE1BQ0Esc0JBQXNCO0FBQUEsUUFDcEIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLE1BQU07QUFBQSxNQUNyQjtBQUFBLE1BQ0Esd0JBQXdCO0FBQUEsUUFDdEIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLHNCQUFzQjtBQUFBLFFBQ3BCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxvQkFBb0I7QUFBQSxRQUNsQixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsNEJBQTRCO0FBQUEsUUFDMUIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLDRCQUE0QjtBQUFBLFFBQzFCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSx5Q0FBeUM7QUFBQSxRQUN2QyxRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0Esc0NBQXNDO0FBQUEsUUFDcEMsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLDRCQUE0QjtBQUFBLFFBQzFCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSw0QkFBNEI7QUFBQSxRQUMxQixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsaUJBQWlCO0FBQUEsUUFDZixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0Esb0NBQW9DO0FBQUEsUUFDbEMsUUFBUTtBQUFBLFFBQ1IsU0FBUztBQUFBLFFBQ1QsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsK0JBQStCO0FBQUEsUUFDN0IsUUFBUTtBQUFBLFFBQ1IsU0FBUztBQUFBLE1BQ1g7QUFBQSxNQUNBLGdCQUFnQjtBQUFBLFFBQ2QsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLG1CQUFtQjtBQUFBLFFBQ2pCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxtQkFBbUI7QUFBQSxRQUNqQixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0Esb0JBQW9CO0FBQUEsUUFDbEIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsMEJBQTBCO0FBQUEsUUFDeEIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLE1BQU07QUFBQSxNQUNyQjtBQUFBLE1BQ0Esb0JBQW9CO0FBQUEsUUFDbEIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLFlBQVk7QUFBQSxRQUNWLFFBQVE7QUFBQSxRQUNSLFNBQVM7QUFBQSxRQUNULGNBQWM7QUFBQSxRQUNkLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLGFBQWE7QUFBQSxRQUNYLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxNQUFNO0FBQUEsTUFDckI7QUFBQSxNQUNBLGNBQWM7QUFBQSxRQUNaLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLLEtBQUs7QUFBQSxNQUN6QjtBQUFBLE1BQ0EsWUFBWTtBQUFBLFFBQ1YsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUssTUFBTSxPQUFPLE9BQU8sS0FBSyxNQUFNLEtBQUs7QUFBQSxNQUN4RDtBQUFBLE1BQ0Esb0JBQW9CO0FBQUEsUUFDbEIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0Esa0JBQWtCO0FBQUEsUUFDaEIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUssT0FBTyxPQUFPLEtBQUs7QUFBQSxNQUN2QztBQUFBLE1BQ0Esa0JBQWtCO0FBQUEsUUFDaEIsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSw4QkFBOEI7QUFBQSxRQUM1QixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSxzQkFBc0I7QUFBQSxRQUNwQixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsTUFBTTtBQUFBLE1BQ3JCO0FBQUEsTUFDQSxzQkFBc0I7QUFBQSxRQUNwQixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLGNBQWM7QUFBQSxRQUNaLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLG1CQUFtQjtBQUFBLFFBQ2pCLGNBQWM7QUFBQSxRQUNkLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLGNBQWM7QUFBQSxRQUNaLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLGVBQWU7QUFBQSxRQUNiLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxNQUFNO0FBQUEsTUFDckI7QUFBQSxNQUNBLGNBQWM7QUFBQSxRQUNaLGNBQWM7QUFBQSxRQUNkLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLGlCQUFpQjtBQUFBLFFBQ2YsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUssS0FBSztBQUFBLE1BQ3pCO0FBQUEsTUFDQSxxQkFBcUI7QUFBQSxRQUNuQixjQUFjO0FBQUEsUUFDZCxZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSxlQUFlO0FBQUEsUUFDYixZQUFZLENBQUMsTUFBTTtBQUFBLE1BQ3JCO0FBQUEsTUFDQSxlQUFlO0FBQUEsUUFDYixZQUFZLENBQUMsTUFBTTtBQUFBLE1BQ3JCO0FBQUEsTUFDQSxpQkFBaUI7QUFBQSxRQUNmLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLGNBQWM7QUFBQSxRQUNaLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLG1CQUFtQjtBQUFBLFFBQ2pCLGNBQWM7QUFBQSxRQUNkLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLG1CQUFtQjtBQUFBLFFBQ2pCLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxJQUFJO0FBQUEsTUFDbkI7QUFBQSxNQUNBLG9CQUFvQjtBQUFBLFFBQ2xCLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLGdCQUFnQjtBQUFBLFFBQ2QsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsWUFBWTtBQUFBLFFBQ1YsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLFFBQ2QsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsbUNBQW1DO0FBQUEsUUFDakMsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLGFBQWE7QUFBQSxRQUNYLGNBQWM7QUFBQSxRQUNkLFlBQVksQ0FBQyxRQUFRLEtBQUs7QUFBQSxNQUM1QjtBQUFBLE1BQ0Esa0NBQWtDO0FBQUEsUUFDaEMsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLGNBQWM7QUFBQSxRQUNaLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxPQUFPLE1BQU07QUFBQSxNQUM1QjtBQUFBLE1BQ0EsaUJBQWlCO0FBQUEsUUFDZixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsZUFBZTtBQUFBLFFBQ2IsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsYUFBYTtBQUFBLFFBQ1gsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLGVBQWU7QUFBQSxRQUNiLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxlQUFlO0FBQUEsUUFDYixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsY0FBYztBQUFBLFFBQ1osUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLFlBQVk7QUFBQSxRQUNWLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxrQkFBa0I7QUFBQSxRQUNoQixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsYUFBYTtBQUFBLFFBQ1gsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLGNBQWM7QUFBQSxRQUNaLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxpQkFBaUI7QUFBQSxRQUNmLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxjQUFjO0FBQUEsUUFDWixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsTUFBTTtBQUFBLE1BQ3JCO0FBQUEsTUFDQSxjQUFjO0FBQUEsUUFDWixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsTUFBTTtBQUFBLE1BQ3JCO0FBQUEsTUFDQSxtQkFBbUI7QUFBQSxRQUNqQixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsbUJBQW1CO0FBQUEsUUFDakIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLGNBQWM7QUFBQSxRQUNaLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxNQUFNO0FBQUEsTUFDckI7QUFBQSxNQUNBLG1CQUFtQjtBQUFBLFFBQ2pCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxrQkFBa0I7QUFBQSxRQUNoQixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsY0FBYztBQUFBLFFBQ1osUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLGNBQWM7QUFBQSxRQUNaLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxxQkFBcUI7QUFBQSxRQUNuQixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSxjQUFjO0FBQUEsUUFDWixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsTUFBTTtBQUFBLE1BQ3JCO0FBQUEsTUFDQSxrQkFBa0I7QUFBQSxRQUNoQixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsYUFBYTtBQUFBLFFBQ1gsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLE9BQU8sTUFBTTtBQUFBLE1BQzVCO0FBQUEsTUFDQSxjQUFjO0FBQUEsUUFDWixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EscUJBQXFCO0FBQUEsUUFDbkIsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSxrQkFBa0I7QUFBQSxRQUNoQixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EscUJBQXFCO0FBQUEsUUFDbkIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLGFBQWE7QUFBQSxRQUNYLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxPQUFPLE1BQU07QUFBQSxNQUM1QjtBQUFBLE1BQ0EsY0FBYztBQUFBLFFBQ1osUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLGNBQWM7QUFBQSxRQUNaLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxjQUFjO0FBQUEsUUFDWixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsTUFBTSxPQUFPLFFBQVEsS0FBSztBQUFBLE1BQ3pDO0FBQUEsTUFDQSxhQUFhO0FBQUEsUUFDWCxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsUUFDZCxZQUFZLENBQUMsT0FBTyxRQUFRLE1BQU07QUFBQSxNQUNwQztBQUFBLE1BQ0EsaUJBQWlCO0FBQUEsUUFDZixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsY0FBYztBQUFBLFFBQ1osUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLFFBQ2QsWUFBWSxDQUFDLFFBQVEsT0FBTyxPQUFPLE9BQU8sS0FBSztBQUFBLE1BQ2pEO0FBQUEsTUFDQSx1QkFBdUI7QUFBQSxRQUNyQixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsYUFBYTtBQUFBLFFBQ1gsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLFlBQVk7QUFBQSxRQUNWLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxhQUFhO0FBQUEsUUFDWCxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsUUFDZCxZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSxtQkFBbUI7QUFBQSxRQUNqQixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsaUJBQWlCO0FBQUEsUUFDZixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsbUJBQW1CO0FBQUEsUUFDakIsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLFFBQ2QsWUFBWSxDQUFDLE1BQU0sS0FBSztBQUFBLE1BQzFCO0FBQUEsTUFDQSxtQkFBbUI7QUFBQSxRQUNqQixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsYUFBYTtBQUFBLFFBQ1gsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLDBCQUEwQjtBQUFBLFFBQ3hCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxxQkFBcUI7QUFBQSxRQUNuQixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsYUFBYTtBQUFBLFFBQ1gsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLGNBQWM7QUFBQSxRQUNaLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxrQkFBa0I7QUFBQSxRQUNoQixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsbUJBQW1CO0FBQUEsUUFDakIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLGdCQUFnQjtBQUFBLFFBQ2QsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLGFBQWE7QUFBQSxRQUNYLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxhQUFhO0FBQUEsUUFDWCxRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0Esa0JBQWtCO0FBQUEsUUFDaEIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLHFCQUFxQjtBQUFBLFFBQ25CLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxPQUFPLE1BQU07QUFBQSxNQUM1QjtBQUFBLE1BQ0EseUJBQXlCO0FBQUEsUUFDdkIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLE9BQU8sTUFBTTtBQUFBLE1BQzVCO0FBQUEsTUFDQSxzQkFBc0I7QUFBQSxRQUNwQixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EscUJBQXFCO0FBQUEsUUFDbkIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLE9BQU8sTUFBTTtBQUFBLE1BQzVCO0FBQUEsTUFDQSxxQkFBcUI7QUFBQSxRQUNuQixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsT0FBTyxNQUFNO0FBQUEsTUFDNUI7QUFBQSxNQUNBLHdCQUF3QjtBQUFBLFFBQ3RCLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxPQUFPLE1BQU07QUFBQSxNQUM1QjtBQUFBLE1BQ0EsMEJBQTBCO0FBQUEsUUFDeEIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLDhCQUE4QjtBQUFBLFFBQzVCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSwyQkFBMkI7QUFBQSxRQUN6QixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0Esc0JBQXNCO0FBQUEsUUFDcEIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsaUJBQWlCO0FBQUEsUUFDZixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSx1QkFBdUI7QUFBQSxRQUNyQixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0Esd0NBQXdDO0FBQUEsUUFDdEMsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLHdDQUF3QztBQUFBLFFBQ3RDLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSx3Q0FBd0M7QUFBQSxRQUN0QyxRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0Esd0NBQXdDO0FBQUEsUUFDdEMsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLDhCQUE4QjtBQUFBLFFBQzVCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxnQ0FBZ0M7QUFBQSxRQUM5QixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsNEJBQTRCO0FBQUEsUUFDMUIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLDZCQUE2QjtBQUFBLFFBQzNCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxxQkFBcUI7QUFBQSxRQUNuQixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsT0FBTyxLQUFLO0FBQUEsTUFDM0I7QUFBQSxNQUNBLG9DQUFvQztBQUFBLFFBQ2xDLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLDBDQUEwQztBQUFBLFFBQ3hDLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSx5QkFBeUI7QUFBQSxRQUN2QixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsNkJBQTZCO0FBQUEsUUFDM0IsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLHlCQUF5QjtBQUFBLFFBQ3ZCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxvQkFBb0I7QUFBQSxRQUNsQixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsZ0NBQWdDO0FBQUEsUUFDOUIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLG1DQUFtQztBQUFBLFFBQ2pDLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSwwQkFBMEI7QUFBQSxRQUN4QixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsMEJBQTBCO0FBQUEsUUFDeEIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLHdCQUF3QjtBQUFBLFFBQ3RCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxzQ0FBc0M7QUFBQSxRQUNwQyxRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0Esc0JBQXNCO0FBQUEsUUFDcEIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLE9BQU8sTUFBTTtBQUFBLE1BQzVCO0FBQUEsTUFDQSxrQkFBa0I7QUFBQSxRQUNoQixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSx3QkFBd0I7QUFBQSxRQUN0QixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsYUFBYTtBQUFBLFFBQ1gsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLGFBQWE7QUFBQSxRQUNYLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxjQUFjO0FBQUEsUUFDWixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsUUFDZCxZQUFZLENBQUMsTUFBTTtBQUFBLE1BQ3JCO0FBQUEsTUFDQSxlQUFlO0FBQUEsUUFDYixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSxlQUFlO0FBQUEsUUFDYixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSxlQUFlO0FBQUEsUUFDYixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsUUFDZCxZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSxlQUFlO0FBQUEsUUFDYixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSxvQkFBb0I7QUFBQSxRQUNsQixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsUUFDZCxZQUFZLENBQUMsT0FBTyxRQUFRLEtBQUs7QUFBQSxNQUNuQztBQUFBLE1BQ0EsZUFBZTtBQUFBLFFBQ2IsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0Esa0JBQWtCO0FBQUEsUUFDaEIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLE9BQU8sS0FBSztBQUFBLE1BQzNCO0FBQUEsTUFDQSxrQkFBa0I7QUFBQSxRQUNoQixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSxpQkFBaUI7QUFBQSxRQUNmLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxJQUFJO0FBQUEsTUFDbkI7QUFBQSxNQUNBLGtCQUFrQjtBQUFBLFFBQ2hCLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxRQUNkLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLGtCQUFrQjtBQUFBLFFBQ2hCLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLGtCQUFrQjtBQUFBLFFBQ2hCLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLG1CQUFtQjtBQUFBLFFBQ2pCLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLHFCQUFxQjtBQUFBLFFBQ25CLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxPQUFPO0FBQUEsTUFDdEI7QUFBQSxNQUNBLGVBQWU7QUFBQSxRQUNiLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLDJCQUEyQjtBQUFBLFFBQ3pCLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLHVCQUF1QjtBQUFBLFFBQ3JCLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EscUJBQXFCO0FBQUEsUUFDbkIsY0FBYztBQUFBLE1BQ2hCO0FBQUEsSUFDRjtBQUFBLEVBQ0Y7QUFDRixDQUFDO0FBR0QsSUFBSSxtQkFBbUJBLFlBQVc7QUFBQSxFQUNoQyxxREFBcUQsVUFBVSxTQUFTO0FBQ3RFLFlBQVEsVUFBVSxZQUFZO0FBQUEsRUFDaEM7QUFDRixDQUFDO0FBR0QsSUFBSSxxQkFBcUJBLFlBQVc7QUFBQSxFQUNsQyw0REFBNEQsVUFBVSxTQUFTO0FBQzdFLFFBQUksZUFBZTtBQUFBLE1BQ2pCLFFBQVE7QUFBQSxNQUNSLE1BQU07QUFBQSxNQUNOLE1BQU07QUFBQSxNQUNOLFFBQVE7QUFBQSxNQUNSLFNBQVM7QUFBQSxJQUNYO0FBQ0EsUUFBSSxnQkFBZ0I7QUFBQSxNQUNsQixPQUFPO0FBQUEsTUFDUCxRQUFRO0FBQUEsTUFDUixNQUFNO0FBQUEsTUFDTixTQUFTO0FBQUE7QUFBQSxJQUVYO0FBQ0EsUUFBSSxjQUFjO0FBQUE7QUFBQTtBQUFBLE1BR2hCLGFBQWE7QUFBQTtBQUFBLE1BRWIsTUFBTTtBQUFBLE1BQ04sU0FBUztBQUFBLElBQ1g7QUFDQSxZQUFRLFVBQVUsU0FBUyxVQUFVLFVBQVUsU0FBUyxXQUFXO0FBQ2pFLFVBQUksYUFBYSw0QkFBNEI7QUFDM0MsZUFBTztBQUFBLE1BQ1Q7QUFDQSxZQUFNLENBQUMsTUFBTSxPQUFPLElBQUksU0FBUyxNQUFNLEdBQUc7QUFDMUMsWUFBTSxRQUFRLFFBQVEsUUFBUSxhQUFhLElBQUk7QUFDL0MsWUFBTSxhQUFhLGFBQWEsS0FBSyxLQUFLLGFBQWE7QUFDdkQsWUFBTSxjQUFjLGNBQWMsTUFBTSxLQUFLLGNBQWM7QUFDM0QsWUFBTSxZQUFZLFlBQVksSUFBSSxLQUFLLFlBQVk7QUFDbkQsWUFBTSxjQUFjLElBQUksU0FBUyxTQUFTO0FBQzFDLGFBQU8sYUFBYSxjQUFjLFlBQVk7QUFBQSxJQUNoRDtBQUFBLEVBQ0Y7QUFDRixDQUFDO0FBR0QsSUFBSSxzQkFBc0JBLFlBQVc7QUFBQSxFQUNuQyx3REFBd0QsVUFBVTtBQUNoRTtBQUNBLFFBQUksS0FBSyxpQkFBaUI7QUFDMUIsUUFBSSxVQUFVLFFBQVEsTUFBTSxFQUFFO0FBQzlCLFFBQUksWUFBWSxtQkFBbUI7QUFDbkMsUUFBSSxzQkFBc0I7QUFDMUIsUUFBSSxtQkFBbUI7QUFDdkIsYUFBUyxVQUFVO0FBQ25CLGFBQVMsV0FBVyxFQUFFLFFBQVEsUUFBUTtBQUN0QyxhQUFTLGNBQWM7QUFDdkIsYUFBUyxZQUFZO0FBQ3JCLGFBQVMsYUFBNkIsdUJBQU8sT0FBTyxJQUFJO0FBQ3hELGFBQVMsU0FBUztBQUNsQixhQUFTLFFBQXdCLHVCQUFPLE9BQU8sSUFBSTtBQUNuRCxhQUFTLHNCQUFzQixDQUFDO0FBQ2hDLGlCQUFhLFNBQVMsWUFBWSxTQUFTLEtBQUs7QUFDaEQsYUFBUyxRQUFRLE1BQU07QUFDckIsVUFBSSxDQUFDLFFBQVEsT0FBTyxTQUFTLFVBQVU7QUFDckMsZUFBTztBQUFBLE1BQ1Q7QUFDQSxVQUFJLFFBQVEsb0JBQW9CLEtBQUssSUFBSTtBQUN6QyxVQUFJLE9BQU8sU0FBUyxHQUFHLE1BQU0sQ0FBQyxFQUFFLFlBQVksQ0FBQztBQUM3QyxVQUFJLFFBQVEsS0FBSyxTQUFTO0FBQ3hCLGVBQU8sS0FBSztBQUFBLE1BQ2Q7QUFDQSxVQUFJLFNBQVMsaUJBQWlCLEtBQUssTUFBTSxDQUFDLENBQUMsR0FBRztBQUM1QyxlQUFPO0FBQUEsTUFDVDtBQUNBLGFBQU87QUFBQSxJQUNUO0FBQ0EsYUFBUyxhQUFhLEtBQUs7QUFDekIsVUFBSSxDQUFDLE9BQU8sT0FBTyxRQUFRLFVBQVU7QUFDbkMsZUFBTztBQUFBLE1BQ1Q7QUFDQSxVQUFJLE9BQU8sSUFBSSxRQUFRLEdBQUcsTUFBTSxLQUFLLFNBQVMsT0FBTyxHQUFHLElBQUk7QUFDNUQsVUFBSSxDQUFDLE1BQU07QUFDVCxlQUFPO0FBQUEsTUFDVDtBQUNBLFVBQUksS0FBSyxRQUFRLFNBQVMsTUFBTSxJQUFJO0FBQ2xDLFlBQUksV0FBVyxTQUFTLFFBQVEsSUFBSTtBQUNwQyxZQUFJLFNBQVUsU0FBUSxlQUFlLFNBQVMsWUFBWTtBQUFBLE1BQzVEO0FBQ0EsYUFBTztBQUFBLElBQ1Q7QUFDQSxhQUFTLFVBQVUsTUFBTTtBQUN2QixVQUFJLENBQUMsUUFBUSxPQUFPLFNBQVMsVUFBVTtBQUNyQyxlQUFPO0FBQUEsTUFDVDtBQUNBLFVBQUksUUFBUSxvQkFBb0IsS0FBSyxJQUFJO0FBQ3pDLFVBQUksT0FBTyxTQUFTLFNBQVMsV0FBVyxNQUFNLENBQUMsRUFBRSxZQUFZLENBQUM7QUFDOUQsVUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLFFBQVE7QUFDekIsZUFBTztBQUFBLE1BQ1Q7QUFDQSxhQUFPLEtBQUssQ0FBQztBQUFBLElBQ2Y7QUFDQSxhQUFTLE9BQU8sTUFBTTtBQUNwQixVQUFJLENBQUMsUUFBUSxPQUFPLFNBQVMsVUFBVTtBQUNyQyxlQUFPO0FBQUEsTUFDVDtBQUNBLFVBQUksYUFBYSxRQUFRLE9BQU8sSUFBSSxFQUFFLFlBQVksRUFBRSxNQUFNLENBQUM7QUFDM0QsVUFBSSxDQUFDLFlBQVk7QUFDZixlQUFPO0FBQUEsTUFDVDtBQUNBLGFBQU8sU0FBUyxNQUFNLFVBQVUsS0FBSztBQUFBLElBQ3ZDO0FBQ0EsYUFBUyxhQUFhLFlBQVksT0FBTztBQUN2QyxhQUFPLEtBQUssRUFBRSxFQUFFLFFBQVEsU0FBUyxnQkFBZ0IsTUFBTTtBQUNyRCxZQUFJLE9BQU8sR0FBRyxJQUFJO0FBQ2xCLFlBQUksT0FBTyxLQUFLO0FBQ2hCLFlBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxRQUFRO0FBQ3pCO0FBQUEsUUFDRjtBQUNBLG1CQUFXLElBQUksSUFBSTtBQUNuQixpQkFBUyxJQUFJLEdBQUcsSUFBSSxLQUFLLFFBQVEsS0FBSztBQUNwQyxjQUFJLGFBQWEsS0FBSyxDQUFDO0FBQ3ZCLGdCQUFNLFVBQVUsSUFBSSxlQUFlLFlBQVksTUFBTSxVQUFVLEdBQUcsSUFBSTtBQUN0RSxnQkFBTSxhQUFhO0FBQUEsWUFDakI7QUFBQSxZQUNBLE1BQU0sVUFBVTtBQUFBLFlBQ2hCO0FBQUEsVUFDRjtBQUNBLGNBQUksZUFBZSxNQUFNLFVBQVUsR0FBRztBQUNwQyxxQkFBUyxvQkFBb0IsS0FBSyxDQUFDLFlBQVksWUFBWSxNQUFNLFVBQVUsQ0FBQyxDQUFDO0FBQUEsVUFDL0U7QUFBQSxRQUNGO0FBQUEsTUFDRixDQUFDO0FBQUEsSUFDSDtBQUNBLGFBQVMsZUFBZSxLQUFLLE9BQU8sT0FBTztBQUN6QyxVQUFJLFNBQVMsUUFBUSxVQUFVLE9BQU8sR0FBRyxLQUFLLEVBQUUsTUFBTSxJQUFJO0FBQzFELFVBQUksU0FBUyxRQUFRLFVBQVUsT0FBTyxHQUFHLEtBQUssRUFBRSxNQUFNLElBQUk7QUFDMUQsYUFBTyxTQUFTLFNBQVMsUUFBUTtBQUFBLElBQ25DO0FBQ0EsYUFBUyxxQkFBcUIsS0FBSyxPQUFPLE9BQU87QUFDL0MsVUFBSSxjQUFjLENBQUMsU0FBUyxVQUFVLFFBQVEsTUFBTTtBQUNwRCxVQUFJLFNBQVMsUUFBUSxZQUFZLFFBQVEsR0FBRyxLQUFLLEVBQUUsTUFBTSxJQUFJO0FBQzdELFVBQUksU0FBUyxRQUFRLFlBQVksUUFBUSxHQUFHLEtBQUssRUFBRSxNQUFNLElBQUk7QUFDN0QsVUFBSSxTQUFTLE1BQU0sU0FBUyxNQUFNLCtCQUErQixTQUFTLFVBQVUsV0FBVyxVQUFVLFNBQVMsTUFBTSxTQUFTLEdBQUcsTUFBTSxHQUFHLEVBQUUsTUFBTSxpQkFBaUI7QUFDcEssZUFBTztBQUFBLE1BQ1Q7QUFDQSxhQUFPLFNBQVMsU0FBUyxRQUFRO0FBQUEsSUFDbkM7QUFBQSxFQUNGO0FBQ0YsQ0FBQztBQUdELElBQUksa0JBQWtCQSxZQUFXO0FBQUEsRUFDL0IsZ0NBQWdDLFVBQVUsU0FBUztBQUNqRDtBQUNBLFFBQUksYUFBYSxtQkFBbUI7QUFDcEMsUUFBSSxPQUFPLG9CQUFvQjtBQUMvQixZQUFRLFVBQVU7QUFDbEIsYUFBUyxRQUFRLEtBQUs7QUFDcEIsVUFBSSxFQUFFLGdCQUFnQixVQUFVO0FBQzlCLGVBQU8sSUFBSSxRQUFRLEdBQUc7QUFBQSxNQUN4QjtBQUNBLFdBQUssVUFBVSxJQUFJO0FBQ25CLFdBQUssYUFBYSxJQUFJLFdBQVcsR0FBRztBQUFBLElBQ3RDO0FBQ0EsWUFBUSxVQUFVLE9BQU8sUUFBUSxVQUFVLFFBQVEsU0FBUyxRQUFRO0FBQ2xFLFVBQUksUUFBUTtBQUNaLFVBQUksU0FBUyxDQUFDLE1BQU0sUUFBUSxLQUFLLEdBQUc7QUFDbEMsZ0JBQVEsSUFBSSxNQUFNLFVBQVUsTUFBTTtBQUNsQyxpQkFBUyxJQUFJLEdBQUcsSUFBSSxNQUFNLFFBQVEsS0FBSztBQUNyQyxnQkFBTSxDQUFDLElBQUksVUFBVSxDQUFDO0FBQUEsUUFDeEI7QUFBQSxNQUNGO0FBQ0EsVUFBSSxDQUFDLFNBQVMsTUFBTSxXQUFXLEdBQUc7QUFDaEMsZUFBTyxLQUFLLFdBQVcsV0FBVztBQUFBLE1BQ3BDO0FBQ0EsVUFBSSxDQUFDLEtBQUssUUFBUSxRQUFRO0FBQ3hCLGVBQU8sTUFBTSxDQUFDO0FBQUEsTUFDaEI7QUFDQSxVQUFJLFFBQVEsTUFBTSxJQUFJLFNBQVM7QUFDL0IsVUFBSSxVQUFVLEtBQUssV0FBVyxXQUFXLE1BQU0sT0FBTyxTQUFTLENBQUM7QUFDaEUsVUFBSWlELFNBQVEsUUFBUSxDQUFDO0FBQ3JCLGFBQU9BLFNBQVEsTUFBTSxNQUFNLFFBQVFBLE1BQUssQ0FBQyxJQUFJO0FBQUEsSUFDL0M7QUFDQSxZQUFRLFVBQVUsV0FBVyxRQUFRLFVBQVUsWUFBWSxTQUFTLFlBQVk7QUFDOUUsVUFBSSxZQUFZO0FBQ2hCLFVBQUksYUFBYSxDQUFDLE1BQU0sUUFBUSxTQUFTLEdBQUc7QUFDMUMsb0JBQVksSUFBSSxNQUFNLFVBQVUsTUFBTTtBQUN0QyxpQkFBUyxJQUFJLEdBQUcsSUFBSSxVQUFVLFFBQVEsS0FBSztBQUN6QyxvQkFBVSxDQUFDLElBQUksVUFBVSxDQUFDO0FBQUEsUUFDNUI7QUFBQSxNQUNGO0FBQ0EsVUFBSSxDQUFDLGFBQWEsVUFBVSxXQUFXLEdBQUc7QUFDeEMsZUFBTyxLQUFLLFdBQVcsVUFBVTtBQUFBLE1BQ25DO0FBQ0EsYUFBTyxLQUFLLFdBQVcsVUFBVSxTQUFTLEVBQUUsQ0FBQyxLQUFLO0FBQUEsSUFDcEQ7QUFDQSxZQUFRLFVBQVUsVUFBVSxRQUFRLFVBQVUsV0FBVyxTQUFTLFdBQVc7QUFDM0UsVUFBSSxXQUFXO0FBQ2YsVUFBSSxZQUFZLENBQUMsTUFBTSxRQUFRLFFBQVEsR0FBRztBQUN4QyxtQkFBVyxJQUFJLE1BQU0sVUFBVSxNQUFNO0FBQ3JDLGlCQUFTLElBQUksR0FBRyxJQUFJLFNBQVMsUUFBUSxLQUFLO0FBQ3hDLG1CQUFTLENBQUMsSUFBSSxVQUFVLENBQUM7QUFBQSxRQUMzQjtBQUFBLE1BQ0Y7QUFDQSxVQUFJLENBQUMsWUFBWSxTQUFTLFdBQVcsR0FBRztBQUN0QyxlQUFPLEtBQUssV0FBVyxTQUFTO0FBQUEsTUFDbEM7QUFDQSxhQUFPLEtBQUssV0FBVyxTQUFTLFFBQVEsRUFBRSxDQUFDLEtBQUs7QUFBQSxJQUNsRDtBQUNBLFlBQVEsVUFBVSxPQUFPLFFBQVEsVUFBVSxRQUFRLFFBQVEsVUFBVSxXQUFXLFFBQVEsVUFBVSxZQUFZLFNBQVMsWUFBWTtBQUNqSSxVQUFJLFlBQVk7QUFDaEIsVUFBSSxhQUFhLENBQUMsTUFBTSxRQUFRLFNBQVMsR0FBRztBQUMxQyxvQkFBWSxJQUFJLE1BQU0sVUFBVSxNQUFNO0FBQ3RDLGlCQUFTLElBQUksR0FBRyxJQUFJLFVBQVUsUUFBUSxLQUFLO0FBQ3pDLG9CQUFVLENBQUMsSUFBSSxVQUFVLENBQUM7QUFBQSxRQUM1QjtBQUFBLE1BQ0Y7QUFDQSxVQUFJLENBQUMsYUFBYSxVQUFVLFdBQVcsR0FBRztBQUN4QyxlQUFPLEtBQUssV0FBVyxVQUFVO0FBQUEsTUFDbkM7QUFDQSxhQUFPLEtBQUssV0FBVyxVQUFVLFNBQVMsRUFBRSxDQUFDLEtBQUs7QUFBQSxJQUNwRDtBQUNBLGFBQVMsVUFBVSxNQUFNO0FBQ3ZCLGFBQU8sS0FBSyxRQUFRLEdBQUcsTUFBTSxLQUFLLEtBQUssT0FBTyxJQUFJLElBQUk7QUFBQSxJQUN4RDtBQUNBLGFBQVMsVUFBVSxNQUFNO0FBQ3ZCLGFBQU8sT0FBTyxTQUFTO0FBQUEsSUFDekI7QUFBQSxFQUNGO0FBQ0YsQ0FBQztBQUdELElBQUksZ0JBQWdCakQsWUFBVztBQUFBLEVBQzdCLDhCQUE4QixVQUFVLFNBQVM7QUFDL0M7QUFDQSxRQUFJLGdDQUFnQztBQUNwQyxZQUFRLFVBQVU7QUFDbEIsYUFBUyxNQUFNLFlBQVksWUFBWTtBQUNyQyxVQUFJLGdCQUFnQixXQUFXLG1CQUFtQjtBQUNsRCxVQUFJLFlBQVksV0FBVyxlQUFlO0FBQzFDLFVBQUksQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXO0FBQ2hDLGVBQU87QUFBQSxNQUNUO0FBQ0EsVUFBSSxlQUFlLFdBQVcsZUFBZTtBQUM3QyxVQUFJLGdCQUFnQiw4QkFBOEIsS0FBSyxZQUFZLEdBQUc7QUFDcEUsZUFBTztBQUFBLE1BQ1Q7QUFDQSxVQUFJLFdBQVc7QUFDYixZQUFJLGNBQWMsS0FBSztBQUNyQixpQkFBTztBQUFBLFFBQ1Q7QUFDQSxZQUFJLE9BQU8sV0FBVztBQUN0QixZQUFJLENBQUMsTUFBTTtBQUNULGlCQUFPO0FBQUEsUUFDVDtBQUNBLFlBQUksVUFBVSxlQUFlLFNBQVM7QUFDdEMsaUJBQVMsSUFBSSxHQUFHLElBQUksUUFBUSxRQUFRLEtBQUs7QUFDdkMsY0FBSSxRQUFRLFFBQVEsQ0FBQztBQUNyQixjQUFJLFVBQVUsUUFBUSxVQUFVLE9BQU8sUUFBUSxPQUFPLFVBQVUsTUFBTTtBQUNwRSxtQkFBTztBQUFBLFVBQ1Q7QUFBQSxRQUNGO0FBQ0EsZUFBTztBQUFBLE1BQ1Q7QUFDQSxVQUFJLGVBQWU7QUFDakIsWUFBSSxlQUFlLFdBQVcsZUFBZTtBQUM3QyxZQUFJLGdCQUFnQixDQUFDLGdCQUFnQixFQUFFLGNBQWMsWUFBWSxLQUFLLGNBQWMsYUFBYTtBQUNqRyxZQUFJLGVBQWU7QUFDakIsaUJBQU87QUFBQSxRQUNUO0FBQUEsTUFDRjtBQUNBLGFBQU87QUFBQSxJQUNUO0FBQ0EsYUFBUyxjQUFjLE1BQU07QUFDM0IsVUFBSSxZQUFZLFFBQVEsS0FBSyxNQUFNLElBQUk7QUFDdkMsYUFBTyxPQUFPLGNBQWMsV0FBVyxZQUFZO0FBQUEsSUFDckQ7QUFDQSxhQUFTLGVBQWUsS0FBSztBQUMzQixVQUFJeUosT0FBTTtBQUNWLFVBQUksT0FBTyxDQUFDO0FBQ1osVUFBSSxRQUFRO0FBQ1osZUFBUyxJQUFJLEdBQUcsTUFBTSxJQUFJLFFBQVEsSUFBSSxLQUFLLEtBQUs7QUFDOUMsZ0JBQVEsSUFBSSxXQUFXLENBQUMsR0FBRztBQUFBLFVBQ3pCLEtBQUs7QUFDSCxnQkFBSSxVQUFVQSxNQUFLO0FBQ2pCLHNCQUFRQSxPQUFNLElBQUk7QUFBQSxZQUNwQjtBQUNBO0FBQUEsVUFDRixLQUFLO0FBQ0gsaUJBQUssS0FBSyxJQUFJLFVBQVUsT0FBT0EsSUFBRyxDQUFDO0FBQ25DLG9CQUFRQSxPQUFNLElBQUk7QUFDbEI7QUFBQSxVQUNGO0FBQ0UsWUFBQUEsT0FBTSxJQUFJO0FBQ1Y7QUFBQSxRQUNKO0FBQUEsTUFDRjtBQUNBLFdBQUssS0FBSyxJQUFJLFVBQVUsT0FBT0EsSUFBRyxDQUFDO0FBQ25DLGFBQU87QUFBQSxJQUNUO0FBQUEsRUFDRjtBQUNGLENBQUM7QUFHRCxJQUFJLHVCQUF1QnpKLFlBQVc7QUFBQSxFQUNwQyxxQ0FBcUMsVUFBVSxTQUFTO0FBQ3REO0FBQ0EsWUFBUSxVQUFVO0FBQ2xCLGFBQVMsWUFBWSxNQUFNLEtBQUssU0FBUztBQUN2QyxVQUFJLE9BQU8sUUFBUSxVQUFVO0FBQzNCLGNBQU0sSUFBSSxVQUFVLCtCQUErQjtBQUFBLE1BQ3JEO0FBQ0EsVUFBSXdDLFNBQVEsSUFBSSxRQUFRLEdBQUc7QUFDM0IsVUFBSUEsV0FBVSxJQUFJO0FBQ2hCLGVBQU87QUFBQSxNQUNUO0FBQ0EsVUFBSSxNQUFNLElBQUksTUFBTUEsU0FBUSxDQUFDLEVBQUUsTUFBTSxHQUFHO0FBQ3hDLFVBQUksU0FBUyxDQUFDO0FBQ2QsYUFBTyxPQUFPLElBQUksTUFBTSxHQUFHQSxNQUFLO0FBQ2hDLGVBQVMsSUFBSSxHQUFHLElBQUksSUFBSSxRQUFRLEtBQUs7QUFDbkMsWUFBSSxRQUFRLElBQUksQ0FBQyxFQUFFLE1BQU0sR0FBRztBQUM1QixZQUFJLFFBQVEsU0FBUyxNQUFNLENBQUMsR0FBRyxFQUFFO0FBQ2pDLFlBQUlpSCxPQUFNLFNBQVMsTUFBTSxDQUFDLEdBQUcsRUFBRTtBQUMvQixZQUFJLE1BQU0sS0FBSyxHQUFHO0FBQ2hCLGtCQUFRLE9BQU9BO0FBQ2YsVUFBQUEsT0FBTSxPQUFPO0FBQUEsUUFDZixXQUFXLE1BQU1BLElBQUcsR0FBRztBQUNyQixVQUFBQSxPQUFNLE9BQU87QUFBQSxRQUNmO0FBQ0EsWUFBSUEsT0FBTSxPQUFPLEdBQUc7QUFDbEIsVUFBQUEsT0FBTSxPQUFPO0FBQUEsUUFDZjtBQUNBLFlBQUksTUFBTSxLQUFLLEtBQUssTUFBTUEsSUFBRyxLQUFLLFFBQVFBLFFBQU8sUUFBUSxHQUFHO0FBQzFEO0FBQUEsUUFDRjtBQUNBLGVBQU8sS0FBSztBQUFBLFVBQ1Y7QUFBQSxVQUNBLEtBQUFBO0FBQUEsUUFDRixDQUFDO0FBQUEsTUFDSDtBQUNBLFVBQUksT0FBTyxTQUFTLEdBQUc7QUFDckIsZUFBTztBQUFBLE1BQ1Q7QUFDQSxhQUFPLFdBQVcsUUFBUSxVQUFVLGNBQWMsTUFBTSxJQUFJO0FBQUEsSUFDOUQ7QUFDQSxhQUFTLGNBQWMsUUFBUTtBQUM3QixVQUFJLFVBQVUsT0FBTyxJQUFJLFlBQVksRUFBRSxLQUFLLGdCQUFnQjtBQUM1RCxlQUFTLElBQUksR0FBRyxJQUFJLEdBQUcsSUFBSSxRQUFRLFFBQVEsS0FBSztBQUM5QyxZQUFJLFFBQVEsUUFBUSxDQUFDO0FBQ3JCLFlBQUksVUFBVSxRQUFRLENBQUM7QUFDdkIsWUFBSSxNQUFNLFFBQVEsUUFBUSxNQUFNLEdBQUc7QUFDakMsa0JBQVEsRUFBRSxDQUFDLElBQUk7QUFBQSxRQUNqQixXQUFXLE1BQU0sTUFBTSxRQUFRLEtBQUs7QUFDbEMsa0JBQVEsTUFBTSxNQUFNO0FBQ3BCLGtCQUFRLFFBQVEsS0FBSyxJQUFJLFFBQVEsT0FBTyxNQUFNLEtBQUs7QUFBQSxRQUNyRDtBQUFBLE1BQ0Y7QUFDQSxjQUFRLFNBQVMsSUFBSTtBQUNyQixVQUFJLFdBQVcsUUFBUSxLQUFLLGdCQUFnQixFQUFFLElBQUksZUFBZTtBQUNqRSxlQUFTLE9BQU8sT0FBTztBQUN2QixhQUFPO0FBQUEsSUFDVDtBQUNBLGFBQVMsYUFBYSxPQUFPakgsUUFBTztBQUNsQyxhQUFPO0FBQUEsUUFDTCxPQUFPLE1BQU07QUFBQSxRQUNiLEtBQUssTUFBTTtBQUFBLFFBQ1gsT0FBQUE7QUFBQSxNQUNGO0FBQUEsSUFDRjtBQUNBLGFBQVMsZ0JBQWdCLE9BQU87QUFDOUIsYUFBTztBQUFBLFFBQ0wsT0FBTyxNQUFNO0FBQUEsUUFDYixLQUFLLE1BQU07QUFBQSxNQUNiO0FBQUEsSUFDRjtBQUNBLGFBQVMsaUJBQWlCLEdBQUcsR0FBRztBQUM5QixhQUFPLEVBQUUsUUFBUSxFQUFFO0FBQUEsSUFDckI7QUFDQSxhQUFTLGlCQUFpQixHQUFHLEdBQUc7QUFDOUIsYUFBTyxFQUFFLFFBQVEsRUFBRTtBQUFBLElBQ3JCO0FBQUEsRUFDRjtBQUNGLENBQUM7QUFHRCxJQUFJNEgsbUJBQWtCcEssWUFBVztBQUFBLEVBQy9CLHNDQUFzQyxVQUFVLFNBQVM7QUFDdkQ7QUFDQSxRQUFJLFVBQVUsZ0JBQWdCO0FBQzlCLFFBQUksT0FBTyxRQUFRLFVBQVUsRUFBRTtBQUMvQixRQUFJLFNBQVMsZ0JBQWdCO0FBQzdCLFFBQUlpSyxRQUFPLFFBQVEsV0FBVztBQUM5QixRQUFJLFFBQVEsY0FBYztBQUMxQixRQUFJLGFBQWEscUJBQXFCO0FBQ3RDLFFBQUk5SixTQUFRLGlCQUFpQjtBQUM3QixRQUFJLFlBQVksbUJBQW1CO0FBQ25DLFFBQUksTUFBTSxPQUFPLE9BQU84SixNQUFLLGdCQUFnQixTQUFTO0FBQ3RELFlBQVEsVUFBVTtBQUNsQixRQUFJLE1BQU0sSUFBSSxTQUFTLFNBQVMsT0FBTyxNQUFNO0FBQzNDLFVBQUksQ0FBQyxNQUFNO0FBQ1QsY0FBTSxJQUFJLFVBQVUsc0NBQXNDO0FBQUEsTUFDNUQ7QUFDQSxVQUFJLE9BQU8sU0FBUyxVQUFVO0FBQzVCLGNBQU0sSUFBSSxVQUFVLGtDQUFrQztBQUFBLE1BQ3hEO0FBQ0EsVUFBSSxLQUFLLEtBQUssWUFBWTtBQUMxQixjQUFRLElBQUk7QUFBQSxRQUNWLEtBQUs7QUFBQSxRQUNMLEtBQUs7QUFDSCxpQkFBTyxLQUFLLFFBQVEsWUFBWSxLQUFLLFFBQVE7QUFBQSxRQUMvQztBQUNFLGlCQUFPLEtBQUssUUFBUSxFQUFFO0FBQUEsTUFDMUI7QUFBQSxJQUNGO0FBQ0EsUUFBSSxVQUFVLFdBQVc7QUFDdkIsVUFBSSxTQUFTLFFBQVEsSUFBSTtBQUN6QixhQUFPLE9BQU8sTUFBTSxNQUFNLFFBQVEsU0FBUztBQUFBLElBQzdDO0FBQ0EsUUFBSSxtQkFBbUIsV0FBVztBQUNoQyxVQUFJLFNBQVMsUUFBUSxJQUFJO0FBQ3pCLGFBQU8sT0FBTyxVQUFVLE1BQU0sUUFBUSxTQUFTO0FBQUEsSUFDakQ7QUFDQSxRQUFJLGtCQUFrQixXQUFXO0FBQy9CLFVBQUksU0FBUyxRQUFRLElBQUk7QUFDekIsYUFBTyxPQUFPLFNBQVMsTUFBTSxRQUFRLFNBQVM7QUFBQSxJQUNoRDtBQUNBLFFBQUksbUJBQW1CLFdBQVc7QUFDaEMsVUFBSSxTQUFTLFFBQVEsSUFBSTtBQUN6QixhQUFPLE9BQU8sVUFBVSxNQUFNLFFBQVEsU0FBUztBQUFBLElBQ2pEO0FBQ0EsUUFBSSxRQUFRLFNBQVMsTUFBTSxNQUFNLFNBQVM7QUFDeEMsVUFBSSxTQUFTLEtBQUssSUFBSSxPQUFPO0FBQzdCLFVBQUksQ0FBQyxPQUFRO0FBQ2IsYUFBTyxXQUFXLE1BQU0sUUFBUSxPQUFPO0FBQUEsSUFDekM7QUFDQSxpQkFBYSxLQUFLLFNBQVMsU0FBUyxRQUFRO0FBQzFDLFVBQUksYUFBYSxLQUFLLElBQUksSUFBSSxpQkFBaUI7QUFDL0MsVUFBSSxDQUFDLFlBQVk7QUFDZixlQUF1Qix1QkFBTyxPQUFPLElBQUk7QUFBQSxNQUMzQztBQUNBLFVBQUksY0FBYzlKLE9BQU0sSUFBSSxFQUFFO0FBQzlCLGFBQU8sV0FBVyxXQUFXO0FBQUEsSUFDL0IsQ0FBQztBQUNELFFBQUksS0FBSyxTQUFTa0ssSUFBRyxPQUFPO0FBQzFCLFVBQUksTUFBTTtBQUNWLFVBQUksQ0FBQyxNQUFNLFFBQVEsS0FBSyxHQUFHO0FBQ3pCLGNBQU0sSUFBSSxNQUFNLFVBQVUsTUFBTTtBQUNoQyxpQkFBUyxJQUFJLEdBQUcsSUFBSSxJQUFJLFFBQVEsS0FBSztBQUNuQyxjQUFJLENBQUMsSUFBSSxVQUFVLENBQUM7QUFBQSxRQUN0QjtBQUFBLE1BQ0Y7QUFDQSxhQUFPLE9BQU8sTUFBTSxHQUFHO0FBQUEsSUFDekI7QUFDQSxpQkFBYSxLQUFLLFlBQVksU0FBUyxXQUFXO0FBQ2hELFVBQUksUUFBUSxLQUFLLFdBQVcsWUFBWSxVQUFVO0FBQ2xELFVBQUksUUFBUSxLQUFLLElBQUksSUFBSSxnQkFBZ0I7QUFDekMsVUFBSSxDQUFDLE1BQU0sS0FBSyxXQUFXLGVBQWUsQ0FBQyxHQUFHO0FBQzVDLGVBQU87QUFBQSxNQUNUO0FBQ0EsVUFBSSxTQUFTLEtBQUssSUFBSSxtQkFBbUIsS0FBSztBQUM5QyxVQUFJN0gsU0FBUSxPQUFPLFFBQVEsR0FBRztBQUM5QixhQUFPQSxXQUFVLEtBQUssT0FBTyxVQUFVLEdBQUdBLE1BQUssRUFBRSxLQUFLLElBQUksT0FBTyxLQUFLO0FBQUEsSUFDeEUsQ0FBQztBQUNELGlCQUFhLEtBQUssVUFBVSxTQUFTLFNBQVM7QUFDNUMsYUFBTyxLQUFLLGFBQWE7QUFBQSxJQUMzQixDQUFDO0FBQ0QsaUJBQWEsS0FBSyxNQUFNLFNBQVMsS0FBSztBQUNwQyxVQUFJLFFBQVEsS0FBSyxJQUFJLElBQUksZ0JBQWdCO0FBQ3pDLGFBQU8sVUFBVSxNQUFNLEtBQUs7QUFBQSxJQUM5QixDQUFDO0FBQ0QsaUJBQWEsS0FBSyxPQUFPLFNBQVMsTUFBTTtBQUN0QyxVQUFJLFFBQVEsS0FBSyxJQUFJLElBQUksZ0JBQWdCO0FBQ3pDLFVBQUksUUFBUSxVQUFVLElBQUksTUFBTSxLQUFLO0FBQ3JDLFlBQU0sUUFBUSxFQUFFLElBQUk7QUFDcEIsYUFBTztBQUFBLElBQ1QsQ0FBQztBQUNELGlCQUFhLEtBQUssY0FBYyxTQUFTLGFBQWE7QUFDcEQsVUFBSSxXQUFXLEtBQUs7QUFDcEIsVUFBSSxDQUFDLFNBQVUsUUFBTyxDQUFDO0FBQ3ZCLFVBQUksU0FBUyxLQUFLLElBQUksSUFBSSxrQkFBa0I7QUFDNUMsVUFBSSxjQUFjLENBQUMsS0FBSyxRQUFRLElBQUksU0FBUyxNQUFNLEdBQUcsRUFBRSxRQUFRLElBQUksQ0FBQyxRQUFRO0FBQzdFLGFBQU8sWUFBWSxNQUFNLE1BQU07QUFBQSxJQUNqQyxDQUFDO0FBQ0QsaUJBQWEsS0FBSyxRQUFRLFNBQVMsT0FBTztBQUN4QyxhQUFPckMsT0FBTSxJQUFJLEVBQUU7QUFBQSxJQUNyQixDQUFDO0FBQ0QsaUJBQWEsS0FBSyxRQUFRLFNBQVMsT0FBTztBQUN4QyxVQUFJLFFBQVEsS0FBSyxJQUFJLElBQUksZ0JBQWdCO0FBQ3pDLFVBQUlFLE9BQU0sS0FBSyxJQUFJLGtCQUFrQjtBQUNyQyxVQUFJLENBQUNBLFFBQU8sQ0FBQyxNQUFNLEtBQUssV0FBVyxlQUFlLENBQUMsR0FBRztBQUNwRCxRQUFBQSxPQUFNLEtBQUssSUFBSSxNQUFNO0FBQUEsTUFDdkIsV0FBV0EsS0FBSSxRQUFRLEdBQUcsTUFBTSxJQUFJO0FBQ2xDLFFBQUFBLE9BQU1BLEtBQUksVUFBVSxHQUFHQSxLQUFJLFFBQVEsR0FBRyxDQUFDLEVBQUUsVUFBVTtBQUFBLE1BQ3JEO0FBQ0EsYUFBT0EsUUFBTztBQUFBLElBQ2hCLENBQUM7QUFDRCxpQkFBYSxLQUFLLFlBQVksU0FBUyxXQUFXO0FBQ2hELFVBQUksT0FBTyxLQUFLO0FBQ2hCLFVBQUksQ0FBQyxLQUFNO0FBQ1gsVUFBSSxTQUFTLEtBQUssQ0FBQyxNQUFNLE1BQU0sS0FBSyxRQUFRLEdBQUcsSUFBSSxJQUFJO0FBQ3ZELFVBQUltQyxTQUFRLEtBQUssUUFBUSxLQUFLLE1BQU07QUFDcEMsYUFBT0EsV0FBVSxLQUFLLEtBQUssVUFBVSxHQUFHQSxNQUFLLElBQUk7QUFBQSxJQUNuRCxDQUFDO0FBQ0QsaUJBQWEsS0FBSyxTQUFTLFdBQVc7QUFDcEMsVUFBSSxTQUFTLEtBQUs7QUFDbEIsVUFBSSxNQUFNLEtBQUs7QUFDZixVQUFJLFNBQVMsSUFBSTtBQUNqQixVQUFJLFVBQVUsVUFBVSxXQUFXLE9BQVEsUUFBTztBQUNsRCxVQUFJLFVBQVUsT0FBTyxTQUFTLE9BQU8sUUFBUSxRQUFRO0FBQ25ELGVBQU8sTUFBTSxLQUFLLFNBQVM7QUFBQSxVQUN6QixRQUFRLElBQUksSUFBSSxNQUFNO0FBQUEsVUFDdEIsaUJBQWlCLElBQUksSUFBSSxlQUFlO0FBQUEsUUFDMUMsQ0FBQztBQUFBLE1BQ0g7QUFDQSxhQUFPO0FBQUEsSUFDVCxDQUFDO0FBQ0QsaUJBQWEsS0FBSyxTQUFTLFNBQVMsUUFBUTtBQUMxQyxhQUFPLENBQUMsS0FBSztBQUFBLElBQ2YsQ0FBQztBQUNELGlCQUFhLEtBQUssT0FBTyxTQUFTLE1BQU07QUFDdEMsVUFBSW5DLE9BQU0sS0FBSyxJQUFJLGtCQUFrQixLQUFLO0FBQzFDLGFBQU9BLEtBQUksWUFBWSxNQUFNO0FBQUEsSUFDL0IsQ0FBQztBQUNELGFBQVMsYUFBYSxLQUFLLE1BQU0sUUFBUTtBQUN2QyxhQUFPLGVBQWUsS0FBSyxNQUFNO0FBQUEsUUFDL0IsY0FBYztBQUFBLFFBQ2QsWUFBWTtBQUFBLFFBQ1osS0FBSztBQUFBLE1BQ1AsQ0FBQztBQUFBLElBQ0g7QUFBQSxFQUNGO0FBQ0YsQ0FBQztBQUdELElBQUksc0JBQXNCTCxZQUFXO0FBQUEsRUFDbkMsb0NBQW9DLFVBQVUsU0FBUztBQUNyRCxRQUFJLFNBQVMsUUFBUSxRQUFRO0FBQzdCLFFBQUksVUFBVSxPQUFPO0FBQ3JCLGFBQVMsVUFBVSxLQUFLLEtBQUs7QUFDM0IsZUFBUyxPQUFPLEtBQUs7QUFDbkIsWUFBSSxHQUFHLElBQUksSUFBSSxHQUFHO0FBQUEsTUFDcEI7QUFBQSxJQUNGO0FBQ0EsUUFBSSxRQUFRLFFBQVEsUUFBUSxTQUFTLFFBQVEsZUFBZSxRQUFRLGlCQUFpQjtBQUNuRixjQUFRLFVBQVU7QUFBQSxJQUNwQixPQUFPO0FBQ0wsZ0JBQVUsUUFBUSxRQUFRO0FBQzFCLGVBQVMsU0FBUztBQUFBLElBQ3BCO0FBQ0EsYUFBUyxXQUFXLEtBQUssa0JBQWtCLFFBQVE7QUFDakQsYUFBTyxRQUFRLEtBQUssa0JBQWtCLE1BQU07QUFBQSxJQUM5QztBQUNBLGVBQVcsWUFBWSxPQUFPLE9BQU8sUUFBUSxTQUFTO0FBQ3RELGNBQVUsU0FBUyxVQUFVO0FBQzdCLGVBQVcsT0FBTyxTQUFTLEtBQUssa0JBQWtCLFFBQVE7QUFDeEQsVUFBSSxPQUFPLFFBQVEsVUFBVTtBQUMzQixjQUFNLElBQUksVUFBVSwrQkFBK0I7QUFBQSxNQUNyRDtBQUNBLGFBQU8sUUFBUSxLQUFLLGtCQUFrQixNQUFNO0FBQUEsSUFDOUM7QUFDQSxlQUFXLFFBQVEsU0FBUyxNQUFNLE1BQU0sVUFBVTtBQUNoRCxVQUFJLE9BQU8sU0FBUyxVQUFVO0FBQzVCLGNBQU0sSUFBSSxVQUFVLDJCQUEyQjtBQUFBLE1BQ2pEO0FBQ0EsVUFBSSxNQUFNLFFBQVEsSUFBSTtBQUN0QixVQUFJLFNBQVMsUUFBUTtBQUNuQixZQUFJLE9BQU8sYUFBYSxVQUFVO0FBQ2hDLGNBQUksS0FBSyxNQUFNLFFBQVE7QUFBQSxRQUN6QixPQUFPO0FBQ0wsY0FBSSxLQUFLLElBQUk7QUFBQSxRQUNmO0FBQUEsTUFDRixPQUFPO0FBQ0wsWUFBSSxLQUFLLENBQUM7QUFBQSxNQUNaO0FBQ0EsYUFBTztBQUFBLElBQ1Q7QUFDQSxlQUFXLGNBQWMsU0FBUyxNQUFNO0FBQ3RDLFVBQUksT0FBTyxTQUFTLFVBQVU7QUFDNUIsY0FBTSxJQUFJLFVBQVUsMkJBQTJCO0FBQUEsTUFDakQ7QUFDQSxhQUFPLFFBQVEsSUFBSTtBQUFBLElBQ3JCO0FBQ0EsZUFBVyxrQkFBa0IsU0FBUyxNQUFNO0FBQzFDLFVBQUksT0FBTyxTQUFTLFVBQVU7QUFDNUIsY0FBTSxJQUFJLFVBQVUsMkJBQTJCO0FBQUEsTUFDakQ7QUFDQSxhQUFPLE9BQU8sV0FBVyxJQUFJO0FBQUEsSUFDL0I7QUFBQSxFQUNGO0FBQ0YsQ0FBQztBQUdELElBQUksOEJBQThCQSxZQUFXO0FBQUEsRUFDM0MsNENBQTRDLFVBQVUsU0FBUztBQUM3RDtBQUNBLFlBQVEsVUFBVTtBQUNsQixZQUFRLFFBQVEsUUFBUUc7QUFDeEIsUUFBSSxXQUFXLFFBQVEsTUFBTSxFQUFFO0FBQy9CLFFBQUksVUFBVSxvQkFBb0IsRUFBRTtBQUNwQyxRQUFJLDhCQUE4QjtBQUNsQyxRQUFJLG9CQUFvQjtBQUN4QixRQUFJLDRCQUE0QjtBQUNoQyxRQUFJLG9CQUFvQjtBQUN4QixRQUFJLGNBQWM7QUFDbEIsUUFBSSxlQUFlO0FBQ25CLFFBQUksZUFBZTtBQUNuQixRQUFJLGNBQWM7QUFDbEIsUUFBSSxlQUFlO0FBQ25CLFFBQUksbUJBQW1CO0FBQ3ZCLFFBQUksMEJBQTBCO0FBQzlCLGFBQVMsbUJBQW1CLFVBQVUsU0FBUztBQUM3QyxVQUFJLE9BQU8sV0FBVyxDQUFDO0FBQ3ZCLFVBQUksT0FBTyxLQUFLLFFBQVE7QUFDeEIsVUFBSSxTQUFTLGFBQWEsVUFBVSxLQUFLLFFBQVE7QUFDakQsYUFBTyxPQUFPLElBQUksbUJBQW1CLE1BQU0sTUFBTSxDQUFDO0FBQUEsSUFDcEQ7QUFDQSxhQUFTLGFBQWEsVUFBVSxVQUFVO0FBQ3hDLFVBQUksYUFBYSxRQUFRO0FBQ3ZCO0FBQUEsTUFDRjtBQUNBLFVBQUksU0FBUyxDQUFDO0FBQ2QsVUFBSSxPQUFPLGFBQWEsVUFBVTtBQUNoQyxjQUFNLElBQUksVUFBVSwyQkFBMkI7QUFBQSxNQUNqRDtBQUNBLFVBQUksYUFBYSxRQUFRO0FBQ3ZCLG1CQUFXO0FBQUEsTUFDYjtBQUNBLFVBQUksT0FBTyxhQUFhLFlBQVksT0FBTyxhQUFhLFdBQVc7QUFDakUsY0FBTSxJQUFJLFVBQVUsc0NBQXNDO0FBQUEsTUFDNUQ7QUFDQSxVQUFJLE9BQU8sYUFBYSxZQUFZLGtCQUFrQixLQUFLLFFBQVEsR0FBRztBQUNwRSxjQUFNLElBQUksVUFBVSxvQ0FBb0M7QUFBQSxNQUMxRDtBQUNBLFVBQUksT0FBTyxTQUFTLFFBQVE7QUFDNUIsVUFBSSxpQkFBaUIsWUFBWSxLQUFLLElBQUk7QUFDMUMsVUFBSSxlQUFlLE9BQU8sYUFBYSxXQUFXLFlBQVksVUFBVSxJQUFJLElBQUksU0FBUyxRQUFRO0FBQ2pHLFVBQUksY0FBYyxPQUFPLGlCQUFpQixZQUFZLGlCQUFpQjtBQUN2RSxVQUFJLGVBQWUsQ0FBQyxrQkFBa0Isa0JBQWtCLEtBQUssSUFBSSxHQUFHO0FBQ2xFLGVBQU8sV0FBVyxJQUFJO0FBQUEsTUFDeEI7QUFDQSxVQUFJLGtCQUFrQixhQUFhO0FBQ2pDLGVBQU8sV0FBVyxjQUFjLGVBQWU7QUFBQSxNQUNqRDtBQUNBLGFBQU87QUFBQSxJQUNUO0FBQ0EsYUFBUyxPQUFPLEtBQUs7QUFDbkIsVUFBSSxhQUFhLElBQUk7QUFDckIsVUFBSSxPQUFPLElBQUk7QUFDZixVQUFJLENBQUMsUUFBUSxPQUFPLFNBQVMsWUFBWSxDQUFDLGFBQWEsS0FBSyxJQUFJLEdBQUc7QUFDakUsY0FBTSxJQUFJLFVBQVUsY0FBYztBQUFBLE1BQ3BDO0FBQ0EsVUFBSSxTQUFTLE9BQU8sSUFBSSxFQUFFLFlBQVk7QUFDdEMsVUFBSSxjQUFjLE9BQU8sZUFBZSxVQUFVO0FBQ2hELFlBQUk7QUFDSixZQUFJLFNBQVMsT0FBTyxLQUFLLFVBQVUsRUFBRSxLQUFLO0FBQzFDLGlCQUFTLElBQUksR0FBRyxJQUFJLE9BQU8sUUFBUSxLQUFLO0FBQ3RDLGtCQUFRLE9BQU8sQ0FBQztBQUNoQixjQUFJRSxPQUFNLE1BQU0sTUFBTSxFQUFFLE1BQU0sTUFBTSxRQUFRLFdBQVcsS0FBSyxDQUFDLElBQUksUUFBUSxXQUFXLEtBQUssQ0FBQztBQUMxRixvQkFBVSxPQUFPLFFBQVEsTUFBTUE7QUFBQSxRQUNqQztBQUFBLE1BQ0Y7QUFDQSxhQUFPO0FBQUEsSUFDVDtBQUNBLGFBQVMsWUFBWSxLQUFLO0FBQ3hCLFVBQUksUUFBUSxpQkFBaUIsS0FBSyxHQUFHO0FBQ3JDLFVBQUksQ0FBQyxPQUFPO0FBQ1YsY0FBTSxJQUFJLFVBQVUsOEJBQThCO0FBQUEsTUFDcEQ7QUFDQSxVQUFJLFVBQVUsTUFBTSxDQUFDLEVBQUUsWUFBWTtBQUNuQyxVQUFJLFVBQVUsTUFBTSxDQUFDO0FBQ3JCLFVBQUk7QUFDSixVQUFJLFNBQVMsUUFBUSxRQUFRLDJCQUEyQixPQUFPO0FBQy9ELGNBQVEsU0FBUztBQUFBLFFBQ2YsS0FBSztBQUNILGtCQUFRLFVBQVUsTUFBTTtBQUN4QjtBQUFBLFFBQ0YsS0FBSztBQUFBLFFBQ0wsS0FBSztBQUNILGtCQUFRLFFBQVEsS0FBSyxRQUFRLFFBQVEsRUFBRSxTQUFTLE1BQU07QUFDdEQ7QUFBQSxRQUNGO0FBQ0UsZ0JBQU0sSUFBSSxVQUFVLHVDQUF1QztBQUFBLE1BQy9EO0FBQ0EsYUFBTztBQUFBLElBQ1Q7QUFDQSxhQUFTLFVBQVVBLE1BQUs7QUFDdEIsYUFBTyxPQUFPQSxJQUFHLEVBQUUsUUFBUSxtQkFBbUIsR0FBRztBQUFBLElBQ25EO0FBQ0EsYUFBU0YsT0FBTSxRQUFRO0FBQ3JCLFVBQUksQ0FBQyxVQUFVLE9BQU8sV0FBVyxVQUFVO0FBQ3pDLGNBQU0sSUFBSSxVQUFVLDZCQUE2QjtBQUFBLE1BQ25EO0FBQ0EsVUFBSSxRQUFRLHdCQUF3QixLQUFLLE1BQU07QUFDL0MsVUFBSSxDQUFDLE9BQU87QUFDVixjQUFNLElBQUksVUFBVSxxQkFBcUI7QUFBQSxNQUMzQztBQUNBLFVBQUlxQyxTQUFRLE1BQU0sQ0FBQyxFQUFFO0FBQ3JCLFVBQUksT0FBTyxNQUFNLENBQUMsRUFBRSxZQUFZO0FBQ2hDLFVBQUk7QUFDSixVQUFJLFFBQVEsQ0FBQztBQUNiLFVBQUksU0FBUyxDQUFDO0FBQ2QsVUFBSTtBQUNKLE1BQUFBLFNBQVEsYUFBYSxZQUFZLE1BQU0sQ0FBQyxFQUFFLE1BQU0sRUFBRSxNQUFNLE1BQU1BLFNBQVEsSUFBSUE7QUFDMUUsYUFBTyxRQUFRLGFBQWEsS0FBSyxNQUFNLEdBQUc7QUFDeEMsWUFBSSxNQUFNLFVBQVVBLFFBQU87QUFDekIsZ0JBQU0sSUFBSSxVQUFVLDBCQUEwQjtBQUFBLFFBQ2hEO0FBQ0EsUUFBQUEsVUFBUyxNQUFNLENBQUMsRUFBRTtBQUNsQixjQUFNLE1BQU0sQ0FBQyxFQUFFLFlBQVk7QUFDM0IsZ0JBQVEsTUFBTSxDQUFDO0FBQ2YsWUFBSSxNQUFNLFFBQVEsR0FBRyxNQUFNLElBQUk7QUFDN0IsZ0JBQU0sSUFBSSxVQUFVLDZCQUE2QjtBQUFBLFFBQ25EO0FBQ0EsY0FBTSxLQUFLLEdBQUc7QUFDZCxZQUFJLElBQUksUUFBUSxHQUFHLElBQUksTUFBTSxJQUFJLFFBQVE7QUFDdkMsZ0JBQU0sSUFBSSxNQUFNLEdBQUcsRUFBRTtBQUNyQixrQkFBUSxZQUFZLEtBQUs7QUFDekIsaUJBQU8sR0FBRyxJQUFJO0FBQ2Q7QUFBQSxRQUNGO0FBQ0EsWUFBSSxPQUFPLE9BQU8sR0FBRyxNQUFNLFVBQVU7QUFDbkM7QUFBQSxRQUNGO0FBQ0EsWUFBSSxNQUFNLENBQUMsTUFBTSxLQUFLO0FBQ3BCLGtCQUFRLE1BQU0sTUFBTSxHQUFHLEVBQUUsRUFBRSxRQUFRLGFBQWEsSUFBSTtBQUFBLFFBQ3REO0FBQ0EsZUFBTyxHQUFHLElBQUk7QUFBQSxNQUNoQjtBQUNBLFVBQUlBLFdBQVUsTUFBTUEsV0FBVSxPQUFPLFFBQVE7QUFDM0MsY0FBTSxJQUFJLFVBQVUsMEJBQTBCO0FBQUEsTUFDaEQ7QUFDQSxhQUFPLElBQUksbUJBQW1CLE1BQU0sTUFBTTtBQUFBLElBQzVDO0FBQ0EsYUFBUyxRQUFRLEtBQUssS0FBSztBQUN6QixhQUFPLE9BQU8sYUFBYSxTQUFTLEtBQUssRUFBRSxDQUFDO0FBQUEsSUFDOUM7QUFDQSxhQUFTLFFBQVEsTUFBTTtBQUNyQixhQUFPLE1BQU0sT0FBTyxJQUFJLEVBQUUsV0FBVyxDQUFDLEVBQUUsU0FBUyxFQUFFLEVBQUUsWUFBWTtBQUFBLElBQ25FO0FBQ0EsYUFBUyxRQUFRbkMsTUFBSztBQUNwQixVQUFJLE1BQU0sT0FBT0EsSUFBRztBQUNwQixhQUFPLE1BQU0sSUFBSSxRQUFRLGNBQWMsTUFBTSxJQUFJO0FBQUEsSUFDbkQ7QUFDQSxhQUFTLFFBQVFBLE1BQUs7QUFDcEIsVUFBSSxNQUFNLE9BQU9BLElBQUc7QUFDcEIsVUFBSSxVQUFVLG1CQUFtQixHQUFHLEVBQUUsUUFBUSw2QkFBNkIsT0FBTztBQUNsRixhQUFPLFlBQVk7QUFBQSxJQUNyQjtBQUNBLGFBQVMsbUJBQW1CLE1BQU0sWUFBWTtBQUM1QyxXQUFLLE9BQU87QUFDWixXQUFLLGFBQWE7QUFBQSxJQUNwQjtBQUFBLEVBQ0Y7QUFDRixDQUFDO0FBR0QsSUFBSSwyQkFBMkJMLFlBQVc7QUFBQSxFQUN4Qyx5Q0FBeUMsVUFBVTtBQUNqRCxRQUFJb0osVUFBUyxRQUFRLFFBQVE7QUFDN0IsYUFBUyxPQUFPLFNBQVMvSSxNQUFLLFFBQVE7QUFDcEMsVUFBSSxZQUFZLE9BQU9BLEtBQUssT0FBTSxJQUFJLFVBQVUsNENBQTRDO0FBQzVGLFVBQUksUUFBUSxPQUFRLE9BQU0sSUFBSSxVQUFVLDhCQUE4QjtBQUN0RSxhQUFPQSxPQUFNLE1BQU0rSSxRQUFPLFdBQVcsVUFBVSxNQUFNLEVBQUUsT0FBTy9JLElBQUcsRUFBRSxPQUFPLFFBQVEsRUFBRSxRQUFRLFFBQVEsRUFBRTtBQUFBLElBQ3hHO0FBQ0EsYUFBUyxTQUFTLFNBQVMsT0FBTyxRQUFRO0FBQ3hDLFVBQUksWUFBWSxPQUFPLE1BQU8sT0FBTSxJQUFJLFVBQVUsd0NBQXdDO0FBQzFGLFVBQUksUUFBUSxPQUFRLE9BQU0sSUFBSSxVQUFVLDhCQUE4QjtBQUN0RSxVQUFJLGlCQUFpQixNQUFNLE1BQU0sR0FBRyxNQUFNLFlBQVksR0FBRyxDQUFDLEdBQUcsZ0JBQWdCLFNBQVMsS0FBSyxnQkFBZ0IsTUFBTSxHQUFHLGlCQUFpQixPQUFPLEtBQUssYUFBYSxHQUFHLGNBQWMsT0FBTyxLQUFLLEtBQUs7QUFDaE0sYUFBTyxlQUFlLFdBQVcsWUFBWSxVQUFVK0ksUUFBTyxnQkFBZ0IsZ0JBQWdCLFdBQVcsSUFBSSxpQkFBaUI7QUFBQSxJQUNoSTtBQUFBLEVBQ0Y7QUFDRixDQUFDO0FBR0QsSUFBSSxpQkFBaUJwSixZQUFXO0FBQUEsRUFDOUIsK0JBQStCLFVBQVU7QUFDdkM7QUFDQSxhQUFTLFFBQVFHO0FBQ2pCLGFBQVMsWUFBWW1LO0FBQ3JCLFFBQUksYUFBYSxPQUFPLFVBQVU7QUFDbEMsUUFBSSxtQkFBbUI7QUFDdkIsUUFBSSxvQkFBb0I7QUFDeEIsUUFBSSxvQkFBb0I7QUFDeEIsUUFBSSxrQkFBa0I7QUFDdEIsYUFBU25LLE9BQU0sS0FBSyxLQUFLO0FBQ3ZCLFVBQUksT0FBTyxRQUFRLFVBQVU7QUFDM0IsY0FBTSxJQUFJLFVBQVUsK0JBQStCO0FBQUEsTUFDckQ7QUFDQSxVQUFJLE1BQU0sQ0FBQztBQUNYLFVBQUksTUFBTSxJQUFJO0FBQ2QsVUFBSSxNQUFNLEVBQUcsUUFBTztBQUNwQixVQUFJLE1BQU0sT0FBTyxJQUFJLFVBQVU7QUFDL0IsVUFBSXFDLFNBQVE7QUFDWixVQUFJLFFBQVE7QUFDWixVQUFJLFNBQVM7QUFDYixTQUFHO0FBQ0QsZ0JBQVEsSUFBSSxRQUFRLEtBQUtBLE1BQUs7QUFDOUIsWUFBSSxVQUFVLEdBQUk7QUFDbEIsaUJBQVMsSUFBSSxRQUFRLEtBQUtBLE1BQUs7QUFDL0IsWUFBSSxXQUFXLElBQUk7QUFDakIsbUJBQVM7QUFBQSxRQUNYLFdBQVcsUUFBUSxRQUFRO0FBQ3pCLFVBQUFBLFNBQVEsSUFBSSxZQUFZLEtBQUssUUFBUSxDQUFDLElBQUk7QUFDMUM7QUFBQSxRQUNGO0FBQ0EsWUFBSSxjQUFjLFdBQVcsS0FBS0EsUUFBTyxLQUFLO0FBQzlDLFlBQUksWUFBWSxTQUFTLEtBQUssT0FBTyxXQUFXO0FBQ2hELFlBQUksTUFBTSxJQUFJLE1BQU0sYUFBYSxTQUFTO0FBQzFDLFlBQUksQ0FBQyxJQUFJLGVBQWUsR0FBRyxHQUFHO0FBQzVCLGNBQUksY0FBYyxXQUFXLEtBQUssUUFBUSxHQUFHLE1BQU07QUFDbkQsY0FBSSxZQUFZLFNBQVMsS0FBSyxRQUFRLFdBQVc7QUFDakQsY0FBSSxJQUFJLFdBQVcsV0FBVyxNQUFNLE1BQU0sSUFBSSxXQUFXLFlBQVksQ0FBQyxNQUFNLElBQUk7QUFDOUU7QUFDQTtBQUFBLFVBQ0Y7QUFDQSxjQUFJbkMsT0FBTSxJQUFJLE1BQU0sYUFBYSxTQUFTO0FBQzFDLGNBQUksR0FBRyxJQUFJLFVBQVVBLE1BQUssR0FBRztBQUFBLFFBQy9CO0FBQ0EsUUFBQW1DLFNBQVEsU0FBUztBQUFBLE1BQ25CLFNBQVNBLFNBQVE7QUFDakIsYUFBTztBQUFBLElBQ1Q7QUFDQSxhQUFTLFdBQVcsS0FBS0EsUUFBTyxLQUFLO0FBQ25DLFNBQUc7QUFDRCxZQUFJLE9BQU8sSUFBSSxXQUFXQSxNQUFLO0FBQy9CLFlBQUksU0FBUyxNQUFNLFNBQVMsRUFBRyxRQUFPQTtBQUFBLE1BQ3hDLFNBQVMsRUFBRUEsU0FBUTtBQUNuQixhQUFPO0FBQUEsSUFDVDtBQUNBLGFBQVMsU0FBUyxLQUFLQSxRQUFPLEtBQUs7QUFDakMsYUFBT0EsU0FBUSxLQUFLO0FBQ2xCLFlBQUksT0FBTyxJQUFJLFdBQVcsRUFBRUEsTUFBSztBQUNqQyxZQUFJLFNBQVMsTUFBTSxTQUFTLEVBQUcsUUFBT0EsU0FBUTtBQUFBLE1BQ2hEO0FBQ0EsYUFBTztBQUFBLElBQ1Q7QUFDQSxhQUFTOEgsV0FBVSxNQUFNakssTUFBSyxLQUFLO0FBQ2pDLFVBQUksTUFBTSxPQUFPLElBQUksVUFBVTtBQUMvQixVQUFJLE9BQU8sUUFBUSxZQUFZO0FBQzdCLGNBQU0sSUFBSSxVQUFVLDBCQUEwQjtBQUFBLE1BQ2hEO0FBQ0EsVUFBSSxDQUFDLGlCQUFpQixLQUFLLElBQUksR0FBRztBQUNoQyxjQUFNLElBQUksVUFBVSwwQkFBMEI7QUFBQSxNQUNoRDtBQUNBLFVBQUksUUFBUSxJQUFJQSxJQUFHO0FBQ25CLFVBQUksQ0FBQyxrQkFBa0IsS0FBSyxLQUFLLEdBQUc7QUFDbEMsY0FBTSxJQUFJLFVBQVUseUJBQXlCO0FBQUEsTUFDL0M7QUFDQSxVQUFJLE1BQU0sT0FBTyxNQUFNO0FBQ3ZCLFVBQUksQ0FBQyxJQUFLLFFBQU87QUFDakIsVUFBSSxRQUFRLElBQUksUUFBUTtBQUN0QixZQUFJLFNBQVMsS0FBSyxNQUFNLElBQUksTUFBTTtBQUNsQyxZQUFJLENBQUMsU0FBUyxNQUFNLEdBQUc7QUFDckIsZ0JBQU0sSUFBSSxVQUFVLDBCQUEwQjtBQUFBLFFBQ2hEO0FBQ0EsZUFBTyxlQUFlO0FBQUEsTUFDeEI7QUFDQSxVQUFJLElBQUksUUFBUTtBQUNkLFlBQUksQ0FBQyxrQkFBa0IsS0FBSyxJQUFJLE1BQU0sR0FBRztBQUN2QyxnQkFBTSxJQUFJLFVBQVUsMEJBQTBCO0FBQUEsUUFDaEQ7QUFDQSxlQUFPLGNBQWMsSUFBSTtBQUFBLE1BQzNCO0FBQ0EsVUFBSSxJQUFJLE1BQU07QUFDWixZQUFJLENBQUMsZ0JBQWdCLEtBQUssSUFBSSxJQUFJLEdBQUc7QUFDbkMsZ0JBQU0sSUFBSSxVQUFVLHdCQUF3QjtBQUFBLFFBQzlDO0FBQ0EsZUFBTyxZQUFZLElBQUk7QUFBQSxNQUN6QjtBQUNBLFVBQUksSUFBSSxTQUFTO0FBQ2YsWUFBSSxVQUFVLElBQUk7QUFDbEIsWUFBSSxDQUFDaUYsUUFBTyxPQUFPLEtBQUssTUFBTSxRQUFRLFFBQVEsQ0FBQyxHQUFHO0FBQ2hELGdCQUFNLElBQUksVUFBVSwyQkFBMkI7QUFBQSxRQUNqRDtBQUNBLGVBQU8sZUFBZSxRQUFRLFlBQVk7QUFBQSxNQUM1QztBQUNBLFVBQUksSUFBSSxVQUFVO0FBQ2hCLGVBQU87QUFBQSxNQUNUO0FBQ0EsVUFBSSxJQUFJLFFBQVE7QUFDZCxlQUFPO0FBQUEsTUFDVDtBQUNBLFVBQUksSUFBSSxhQUFhO0FBQ25CLGVBQU87QUFBQSxNQUNUO0FBQ0EsVUFBSSxJQUFJLFVBQVU7QUFDaEIsWUFBSSxXQUFXLE9BQU8sSUFBSSxhQUFhLFdBQVcsSUFBSSxTQUFTLFlBQVksSUFBSSxJQUFJO0FBQ25GLGdCQUFRLFVBQVU7QUFBQSxVQUNoQixLQUFLO0FBQ0gsbUJBQU87QUFDUDtBQUFBLFVBQ0YsS0FBSztBQUNILG1CQUFPO0FBQ1A7QUFBQSxVQUNGLEtBQUs7QUFDSCxtQkFBTztBQUNQO0FBQUEsVUFDRjtBQUNFLGtCQUFNLElBQUksVUFBVSw0QkFBNEI7QUFBQSxRQUNwRDtBQUFBLE1BQ0Y7QUFDQSxVQUFJLElBQUksVUFBVTtBQUNoQixZQUFJLFdBQVcsT0FBTyxJQUFJLGFBQWEsV0FBVyxJQUFJLFNBQVMsWUFBWSxJQUFJLElBQUk7QUFDbkYsZ0JBQVEsVUFBVTtBQUFBLFVBQ2hCLEtBQUs7QUFDSCxtQkFBTztBQUNQO0FBQUEsVUFDRixLQUFLO0FBQ0gsbUJBQU87QUFDUDtBQUFBLFVBQ0YsS0FBSztBQUNILG1CQUFPO0FBQ1A7QUFBQSxVQUNGLEtBQUs7QUFDSCxtQkFBTztBQUNQO0FBQUEsVUFDRjtBQUNFLGtCQUFNLElBQUksVUFBVSw0QkFBNEI7QUFBQSxRQUNwRDtBQUFBLE1BQ0Y7QUFDQSxhQUFPO0FBQUEsSUFDVDtBQUNBLGFBQVMsT0FBTyxLQUFLO0FBQ25CLGFBQU8sSUFBSSxRQUFRLEdBQUcsTUFBTSxLQUFLLG1CQUFtQixHQUFHLElBQUk7QUFBQSxJQUM3RDtBQUNBLGFBQVNBLFFBQU9qRixNQUFLO0FBQ25CLGFBQU8sV0FBVyxLQUFLQSxJQUFHLE1BQU07QUFBQSxJQUNsQztBQUNBLGFBQVMsVUFBVSxLQUFLLFNBQVM7QUFDL0IsVUFBSTtBQUNGLGVBQU8sUUFBUSxHQUFHO0FBQUEsTUFDcEIsU0FBUyxHQUFHO0FBQ1YsZUFBTztBQUFBLE1BQ1Q7QUFBQSxJQUNGO0FBQUEsRUFDRjtBQUNGLENBQUM7QUFHRCxJQUFJLGNBQWNMLFlBQVc7QUFBQSxFQUMzQixpREFBaUQsVUFBVSxTQUFTO0FBQ2xFLFlBQVEsVUFBVTtBQUFBLE1BQ2hCLHdDQUF3QztBQUFBLFFBQ3RDLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxzQ0FBc0M7QUFBQSxRQUNwQyxRQUFRO0FBQUEsUUFDUixTQUFTO0FBQUEsUUFDVCxjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLDRCQUE0QjtBQUFBLFFBQzFCLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EsNEJBQTRCO0FBQUEsUUFDMUIsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSxpQ0FBaUM7QUFBQSxRQUMvQixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLG1CQUFtQjtBQUFBLFFBQ2pCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSx3QkFBd0I7QUFBQSxRQUN0QixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0Esd0JBQXdCO0FBQUEsUUFDdEIsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSxrQ0FBa0M7QUFBQSxRQUNoQyxRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsNEJBQTRCO0FBQUEsUUFDMUIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLDZCQUE2QjtBQUFBLFFBQzNCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSw2QkFBNkI7QUFBQSxRQUMzQixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLHdCQUF3QjtBQUFBLFFBQ3RCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSx3QkFBd0I7QUFBQSxRQUN0QixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLDhCQUE4QjtBQUFBLFFBQzVCLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0Esb0NBQW9DO0FBQUEsUUFDbEMsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSxpQ0FBaUM7QUFBQSxRQUMvQixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLHVDQUF1QztBQUFBLFFBQ3JDLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EsbUNBQW1DO0FBQUEsUUFDakMsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSxzQ0FBc0M7QUFBQSxRQUNwQyxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLDRDQUE0QztBQUFBLFFBQzFDLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0Esc0NBQXNDO0FBQUEsUUFDcEMsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSw0Q0FBNEM7QUFBQSxRQUMxQyxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLCtCQUErQjtBQUFBLFFBQzdCLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0Esb0NBQW9DO0FBQUEsUUFDbEMsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSwwQ0FBMEM7QUFBQSxRQUN4QyxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLGlDQUFpQztBQUFBLFFBQy9CLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EsdUNBQXVDO0FBQUEsUUFDckMsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSw4QkFBOEI7QUFBQSxRQUM1QixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLG9DQUFvQztBQUFBLFFBQ2xDLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EsNkNBQTZDO0FBQUEsUUFDM0MsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSw0Q0FBNEM7QUFBQSxRQUMxQyxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLG1CQUFtQjtBQUFBLFFBQ2pCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSw0QkFBNEI7QUFBQSxRQUMxQixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsSUFBSTtBQUFBLE1BQ25CO0FBQUEsTUFDQSw0QkFBNEI7QUFBQSxRQUMxQixjQUFjO0FBQUEsUUFDZCxZQUFZLENBQUMsY0FBYztBQUFBLE1BQzdCO0FBQUEsTUFDQSx5QkFBeUI7QUFBQSxRQUN2QixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsMEJBQTBCO0FBQUEsUUFDeEIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLElBQUk7QUFBQSxNQUNuQjtBQUFBLE1BQ0Esb0JBQW9CO0FBQUEsUUFDbEIsY0FBYztBQUFBLFFBQ2QsWUFBWSxDQUFDLE1BQU07QUFBQSxNQUNyQjtBQUFBLE1BQ0EsMEJBQTBCO0FBQUEsUUFDeEIsY0FBYztBQUFBLFFBQ2QsWUFBWSxDQUFDLFlBQVk7QUFBQSxNQUMzQjtBQUFBLE1BQ0Esc0JBQXNCO0FBQUEsUUFDcEIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLG1CQUFtQjtBQUFBLFFBQ2pCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxvQkFBb0I7QUFBQSxRQUNsQixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0Esd0JBQXdCO0FBQUEsUUFDdEIsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLFFBQ2QsWUFBWSxDQUFDLE1BQU07QUFBQSxNQUNyQjtBQUFBLE1BQ0EsMkJBQTJCO0FBQUEsUUFDekIsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLFFBQ2QsWUFBWSxDQUFDLFNBQVM7QUFBQSxNQUN4QjtBQUFBLE1BQ0EsK0JBQStCO0FBQUEsUUFDN0IsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLFFBQ2QsWUFBWSxDQUFDLGFBQWE7QUFBQSxNQUM1QjtBQUFBLE1BQ0EsMEJBQTBCO0FBQUEsUUFDeEIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLDJCQUEyQjtBQUFBLFFBQ3pCLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxRQUNkLFlBQVksQ0FBQyxTQUFTO0FBQUEsTUFDeEI7QUFBQSxNQUNBLDRCQUE0QjtBQUFBLFFBQzFCLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxRQUNkLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLDBDQUEwQztBQUFBLFFBQ3hDLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSw2QkFBNkI7QUFBQSxRQUMzQixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsUUFDZCxZQUFZLENBQUMsTUFBTTtBQUFBLE1BQ3JCO0FBQUEsTUFDQSw2QkFBNkI7QUFBQSxRQUMzQixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLDZCQUE2QjtBQUFBLFFBQzNCLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxRQUNkLFlBQVksQ0FBQyxNQUFNO0FBQUEsTUFDckI7QUFBQSxNQUNBLHFCQUFxQjtBQUFBLFFBQ25CLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSwrQkFBK0I7QUFBQSxRQUM3QixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLG9DQUFvQztBQUFBLFFBQ2xDLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxRQUNkLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLHFDQUFxQztBQUFBLFFBQ25DLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxRQUNkLFlBQVksQ0FBQyxNQUFNO0FBQUEsTUFDckI7QUFBQSxNQUNBLDhCQUE4QjtBQUFBLFFBQzVCLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EsMEJBQTBCO0FBQUEsUUFDeEIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLG9CQUFvQjtBQUFBLFFBQ2xCLGNBQWM7QUFBQSxRQUNkLFlBQVksQ0FBQyxNQUFNO0FBQUEsTUFDckI7QUFBQSxNQUNBLHdCQUF3QjtBQUFBLFFBQ3RCLFFBQVE7QUFBQSxRQUNSLFNBQVM7QUFBQSxRQUNULGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0Esb0JBQW9CO0FBQUEsUUFDbEIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLG9CQUFvQjtBQUFBLFFBQ2xCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSw2QkFBNkI7QUFBQSxRQUMzQixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLDRCQUE0QjtBQUFBLFFBQzFCLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxRQUNkLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLCtCQUErQjtBQUFBLFFBQzdCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSx5QkFBeUI7QUFBQSxRQUN2QixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsNEJBQTRCO0FBQUEsUUFDMUIsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSxvQkFBb0I7QUFBQSxRQUNsQixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0Esd0JBQXdCO0FBQUEsUUFDdEIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLHFCQUFxQjtBQUFBLFFBQ25CLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSx3QkFBd0I7QUFBQSxRQUN0QixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLHlCQUF5QjtBQUFBLFFBQ3ZCLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxRQUNkLFlBQVksQ0FBQyxPQUFPO0FBQUEsTUFDdEI7QUFBQSxNQUNBLHVCQUF1QjtBQUFBLFFBQ3JCLFFBQVE7QUFBQSxRQUNSLFNBQVM7QUFBQSxRQUNULGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0Esd0JBQXdCO0FBQUEsUUFDdEIsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLFFBQ2QsWUFBWSxDQUFDLE1BQU07QUFBQSxNQUNyQjtBQUFBLE1BQ0EsK0JBQStCO0FBQUEsUUFDN0IsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLE9BQU87QUFBQSxNQUN0QjtBQUFBLE1BQ0EsOEJBQThCO0FBQUEsUUFDNUIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLE9BQU87QUFBQSxNQUN0QjtBQUFBLE1BQ0EsMkJBQTJCO0FBQUEsUUFDekIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLE9BQU87QUFBQSxNQUN0QjtBQUFBLE1BQ0EsMkJBQTJCO0FBQUEsUUFDekIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLE9BQU87QUFBQSxNQUN0QjtBQUFBLE1BQ0EsMEJBQTBCO0FBQUEsUUFDeEIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLE9BQU87QUFBQSxNQUN0QjtBQUFBLE1BQ0Esb0JBQW9CO0FBQUEsUUFDbEIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLHVCQUF1QjtBQUFBLFFBQ3JCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxtQkFBbUI7QUFBQSxRQUNqQixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsNEJBQTRCO0FBQUEsUUFDMUIsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSwwQkFBMEI7QUFBQSxRQUN4QixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLG1CQUFtQjtBQUFBLFFBQ2pCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxrQ0FBa0M7QUFBQSxRQUNoQyxRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EseUJBQXlCO0FBQUEsUUFDdkIsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSw2QkFBNkI7QUFBQSxRQUMzQixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsbUJBQW1CO0FBQUEsUUFDakIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLHdCQUF3QjtBQUFBLFFBQ3RCLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EsNkJBQTZCO0FBQUEsUUFDM0IsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSxtQkFBbUI7QUFBQSxRQUNqQixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0Esd0JBQXdCO0FBQUEsUUFDdEIsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSx3QkFBd0I7QUFBQSxRQUN0QixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsK0JBQStCO0FBQUEsUUFDN0IsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSw0QkFBNEI7QUFBQSxRQUMxQixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsNEJBQTRCO0FBQUEsUUFDMUIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLDRDQUE0QztBQUFBLFFBQzFDLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxtQ0FBbUM7QUFBQSxRQUNqQyxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLG9CQUFvQjtBQUFBLFFBQ2xCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSx3QkFBd0I7QUFBQSxRQUN0QixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsNEJBQTRCO0FBQUEsUUFDMUIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLHlCQUF5QjtBQUFBLFFBQ3ZCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSx1QkFBdUI7QUFBQSxRQUNyQixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsUUFDZCxZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSx3QkFBd0I7QUFBQSxRQUN0QixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0Esd0JBQXdCO0FBQUEsUUFDdEIsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSw0QkFBNEI7QUFBQSxRQUMxQixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLHlCQUF5QjtBQUFBLFFBQ3ZCLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0Esd0JBQXdCO0FBQUEsUUFDdEIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLElBQUk7QUFBQSxNQUNuQjtBQUFBLE1BQ0EsbUJBQW1CO0FBQUEsUUFDakIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0Esd0JBQXdCO0FBQUEsUUFDdEIsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSx3QkFBd0I7QUFBQSxRQUN0QixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsbUJBQW1CO0FBQUEsUUFDakIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLHlCQUF5QjtBQUFBLFFBQ3ZCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxvQkFBb0I7QUFBQSxRQUNsQixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLHdCQUF3QjtBQUFBLFFBQ3RCLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxRQUNkLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLDhCQUE4QjtBQUFBLFFBQzVCLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxRQUNkLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLHlCQUF5QjtBQUFBLFFBQ3ZCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSw0QkFBNEI7QUFBQSxRQUMxQixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsUUFDZCxZQUFZLENBQUMsVUFBVTtBQUFBLE1BQ3pCO0FBQUEsTUFDQSx1QkFBdUI7QUFBQSxRQUNyQixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsbUJBQW1CO0FBQUEsUUFDakIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLHNCQUFzQjtBQUFBLFFBQ3BCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSwrQkFBK0I7QUFBQSxRQUM3QixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLHFCQUFxQjtBQUFBLFFBQ25CLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLDBCQUEwQjtBQUFBLFFBQ3hCLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EseUJBQXlCO0FBQUEsUUFDdkIsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSxtQkFBbUI7QUFBQSxRQUNqQixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsbUJBQW1CO0FBQUEsUUFDakIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLG1CQUFtQjtBQUFBLFFBQ2pCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSx3QkFBd0I7QUFBQSxRQUN0QixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLDJCQUEyQjtBQUFBLFFBQ3pCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSwyQkFBMkI7QUFBQSxRQUN6QixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsUUFDZCxZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSx5QkFBeUI7QUFBQSxRQUN2QixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0Esd0JBQXdCO0FBQUEsUUFDdEIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLHlCQUF5QjtBQUFBLFFBQ3ZCLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0Esd0JBQXdCO0FBQUEsUUFDdEIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLE1BQU07QUFBQSxNQUNyQjtBQUFBLE1BQ0Esd0JBQXdCO0FBQUEsUUFDdEIsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLFFBQ2QsWUFBWSxDQUFDLE9BQU87QUFBQSxNQUN0QjtBQUFBLE1BQ0Esb0JBQW9CO0FBQUEsUUFDbEIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLHVCQUF1QjtBQUFBLFFBQ3JCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSx1QkFBdUI7QUFBQSxRQUNyQixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsNEJBQTRCO0FBQUEsUUFDMUIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLDRCQUE0QjtBQUFBLFFBQzFCLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EsNEJBQTRCO0FBQUEsUUFDMUIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLDRCQUE0QjtBQUFBLFFBQzFCLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EsMEJBQTBCO0FBQUEsUUFDeEIsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLFFBQ2QsWUFBWSxDQUFDLE1BQU07QUFBQSxNQUNyQjtBQUFBLE1BQ0EsOEJBQThCO0FBQUEsUUFDNUIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLDJCQUEyQjtBQUFBLFFBQ3pCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSx1QkFBdUI7QUFBQSxRQUNyQixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLHVCQUF1QjtBQUFBLFFBQ3JCLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EsbUJBQW1CO0FBQUEsUUFDakIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLHdCQUF3QjtBQUFBLFFBQ3RCLFFBQVE7QUFBQSxRQUNSLFNBQVM7QUFBQSxRQUNULGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EsdUJBQXVCO0FBQUEsUUFDckIsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSx5Q0FBeUM7QUFBQSxRQUN2QyxRQUFRO0FBQUEsUUFDUixTQUFTO0FBQUEsUUFDVCxjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLDZDQUE2QztBQUFBLFFBQzNDLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EsNkNBQTZDO0FBQUEsUUFDM0MsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSxnREFBZ0Q7QUFBQSxRQUM5QyxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLDJDQUEyQztBQUFBLFFBQ3pDLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxnREFBZ0Q7QUFBQSxRQUM5QyxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLGtEQUFrRDtBQUFBLFFBQ2hELFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EsaURBQWlEO0FBQUEsUUFDL0MsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSxvREFBb0Q7QUFBQSxRQUNsRCxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLDBDQUEwQztBQUFBLFFBQ3hDLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0Esd0JBQXdCO0FBQUEsUUFDdEIsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLFFBQ2QsWUFBWSxDQUFDLE1BQU07QUFBQSxNQUNyQjtBQUFBLE1BQ0EsNkJBQTZCO0FBQUEsUUFDM0IsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLFFBQ2QsWUFBWSxDQUFDLFdBQVc7QUFBQSxNQUMxQjtBQUFBLE1BQ0Esd0JBQXdCO0FBQUEsUUFDdEIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLG9DQUFvQztBQUFBLFFBQ2xDLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSx1QkFBdUI7QUFBQSxRQUNyQixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLHdCQUF3QjtBQUFBLFFBQ3RCLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxRQUNkLFlBQVksQ0FBQyxNQUFNO0FBQUEsTUFDckI7QUFBQSxNQUNBLHFCQUFxQjtBQUFBLFFBQ25CLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxtQkFBbUI7QUFBQSxRQUNqQixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSxxQ0FBcUM7QUFBQSxRQUNuQyxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLHVCQUF1QjtBQUFBLFFBQ3JCLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLDJCQUEyQjtBQUFBLFFBQ3pCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSx3QkFBd0I7QUFBQSxRQUN0QixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsbUJBQW1CO0FBQUEsUUFDakIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsdUJBQXVCO0FBQUEsUUFDckIsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLFFBQ2QsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EseUJBQXlCO0FBQUEsUUFDdkIsUUFBUTtBQUFBLFFBQ1IsU0FBUztBQUFBLFFBQ1QsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSx3QkFBd0I7QUFBQSxRQUN0QixRQUFRO0FBQUEsUUFDUixTQUFTO0FBQUEsUUFDVCxjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLHNDQUFzQztBQUFBLFFBQ3BDLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0Esb0JBQW9CO0FBQUEsUUFDbEIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLHVCQUF1QjtBQUFBLFFBQ3JCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSx5QkFBeUI7QUFBQSxRQUN2QixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsMEJBQTBCO0FBQUEsUUFDeEIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EseUJBQXlCO0FBQUEsUUFDdkIsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSx3Q0FBd0M7QUFBQSxRQUN0QyxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLHdCQUF3QjtBQUFBLFFBQ3RCLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxRQUNkLFlBQVksQ0FBQyxTQUFTO0FBQUEsTUFDeEI7QUFBQSxNQUNBLDRCQUE0QjtBQUFBLFFBQzFCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxrQ0FBa0M7QUFBQSxRQUNoQyxRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsNEJBQTRCO0FBQUEsUUFDMUIsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSw2QkFBNkI7QUFBQSxRQUMzQixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLDRCQUE0QjtBQUFBLFFBQzFCLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EsMkJBQTJCO0FBQUEsUUFDekIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLHVCQUF1QjtBQUFBLFFBQ3JCLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxRQUNkLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLGdDQUFnQztBQUFBLFFBQzlCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxpQ0FBaUM7QUFBQSxRQUMvQixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EseUNBQXlDO0FBQUEsUUFDdkMsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLDBDQUEwQztBQUFBLFFBQ3hDLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSx1QkFBdUI7QUFBQSxRQUNyQixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsUUFDZCxZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSxvQkFBb0I7QUFBQSxRQUNsQixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsbUJBQW1CO0FBQUEsUUFDakIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0Esb0JBQW9CO0FBQUEsUUFDbEIsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLFFBQ2QsWUFBWSxDQUFDLElBQUk7QUFBQSxNQUNuQjtBQUFBLE1BQ0Esb0JBQW9CO0FBQUEsUUFDbEIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLHdCQUF3QjtBQUFBLFFBQ3RCLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EscUJBQXFCO0FBQUEsUUFDbkIsWUFBWSxDQUFDLE9BQU87QUFBQSxNQUN0QjtBQUFBLE1BQ0EseUJBQXlCO0FBQUEsUUFDdkIsUUFBUTtBQUFBLFFBQ1IsU0FBUztBQUFBLFFBQ1QsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSxvQkFBb0I7QUFBQSxRQUNsQixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsMkJBQTJCO0FBQUEsUUFDekIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsbUNBQW1DO0FBQUEsUUFDakMsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSxpQ0FBaUM7QUFBQSxRQUMvQixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLDJCQUEyQjtBQUFBLFFBQ3pCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxvQkFBb0I7QUFBQSxRQUNsQixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0Esa0NBQWtDO0FBQUEsUUFDaEMsUUFBUTtBQUFBLFFBQ1IsU0FBUztBQUFBLFFBQ1QsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSxxQkFBcUI7QUFBQSxRQUNuQixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EseUJBQXlCO0FBQUEsUUFDdkIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLHlCQUF5QjtBQUFBLFFBQ3ZCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSw4QkFBOEI7QUFBQSxRQUM1QixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EseUJBQXlCO0FBQUEsUUFDdkIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLHlCQUF5QjtBQUFBLFFBQ3ZCLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxRQUNkLFlBQVksQ0FBQyxPQUFPLE9BQU87QUFBQSxNQUM3QjtBQUFBLE1BQ0Esb0JBQW9CO0FBQUEsUUFDbEIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLHFCQUFxQjtBQUFBLFFBQ25CLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxPQUFPO0FBQUEsTUFDdEI7QUFBQSxNQUNBLG1CQUFtQjtBQUFBLFFBQ2pCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxvQkFBb0I7QUFBQSxRQUNsQixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsdUJBQXVCO0FBQUEsUUFDckIsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLFFBQ2QsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsNEJBQTRCO0FBQUEsUUFDMUIsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLFFBQ2QsWUFBWSxDQUFDLE9BQU8sT0FBTyxLQUFLO0FBQUEsTUFDbEM7QUFBQSxNQUNBLHNDQUFzQztBQUFBLFFBQ3BDLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxRQUNkLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLHVCQUF1QjtBQUFBLFFBQ3JCLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxRQUNkLFlBQVksQ0FBQyxPQUFPO0FBQUEsTUFDdEI7QUFBQSxNQUNBLDBCQUEwQjtBQUFBLFFBQ3hCLFFBQVE7QUFBQSxRQUNSLFNBQVM7QUFBQSxRQUNULGNBQWM7QUFBQSxRQUNkLFlBQVksQ0FBQyxJQUFJO0FBQUEsTUFDbkI7QUFBQSxNQUNBLDRCQUE0QjtBQUFBLFFBQzFCLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0Esb0JBQW9CO0FBQUEsUUFDbEIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLHlCQUF5QjtBQUFBLFFBQ3ZCLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0Esd0JBQXdCO0FBQUEsUUFDdEIsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSwrQkFBK0I7QUFBQSxRQUM3QixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLDhCQUE4QjtBQUFBLFFBQzVCLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0Esb0JBQW9CO0FBQUEsUUFDbEIsUUFBUTtBQUFBLFFBQ1IsU0FBUztBQUFBLFFBQ1QsY0FBYztBQUFBLFFBQ2QsWUFBWSxDQUFDLFFBQVEsS0FBSztBQUFBLE1BQzVCO0FBQUEsTUFDQSwrQkFBK0I7QUFBQSxRQUM3QixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLHdCQUF3QjtBQUFBLFFBQ3RCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxxQkFBcUI7QUFBQSxRQUNuQixZQUFZLENBQUMsT0FBTztBQUFBLE1BQ3RCO0FBQUEsTUFDQSwyQkFBMkI7QUFBQSxRQUN6QixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsUUFDZCxZQUFZLENBQUMsUUFBUTtBQUFBLE1BQ3ZCO0FBQUEsTUFDQSx3QkFBd0I7QUFBQSxRQUN0QixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0Esd0JBQXdCO0FBQUEsUUFDdEIsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSw0QkFBNEI7QUFBQSxRQUMxQixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLDJCQUEyQjtBQUFBLFFBQ3pCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxtQkFBbUI7QUFBQSxRQUNqQixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsZ0NBQWdDO0FBQUEsUUFDOUIsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSxpQ0FBaUM7QUFBQSxRQUMvQixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLHVCQUF1QjtBQUFBLFFBQ3JCLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxRQUNkLFlBQVksQ0FBQyxRQUFRO0FBQUEsTUFDdkI7QUFBQSxNQUNBLHVCQUF1QjtBQUFBLFFBQ3JCLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxRQUNkLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLDJCQUEyQjtBQUFBLFFBQ3pCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSx1QkFBdUI7QUFBQSxRQUNyQixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsNEJBQTRCO0FBQUEsUUFDMUIsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSxnQ0FBZ0M7QUFBQSxRQUM5QixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLDBCQUEwQjtBQUFBLFFBQ3hCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSx3QkFBd0I7QUFBQSxRQUN0QixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsUUFDZCxZQUFZLENBQUMsU0FBUztBQUFBLE1BQ3hCO0FBQUEsTUFDQSw0QkFBNEI7QUFBQSxRQUMxQixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLHVCQUF1QjtBQUFBLFFBQ3JCLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EsbUJBQW1CO0FBQUEsUUFDakIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLDRCQUE0QjtBQUFBLFFBQzFCLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLDhCQUE4QjtBQUFBLFFBQzVCLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLDBCQUEwQjtBQUFBLFFBQ3hCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSx3QkFBd0I7QUFBQSxRQUN0QixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsUUFDZCxZQUFZLENBQUMsTUFBTTtBQUFBLE1BQ3JCO0FBQUEsTUFDQSw2QkFBNkI7QUFBQSxRQUMzQixRQUFRO0FBQUEsUUFDUixTQUFTO0FBQUEsUUFDVCxjQUFjO0FBQUEsUUFDZCxZQUFZLENBQUMsYUFBYTtBQUFBLE1BQzVCO0FBQUEsTUFDQSxvQkFBb0I7QUFBQSxRQUNsQixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSwyQkFBMkI7QUFBQSxRQUN6QixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsUUFDZCxZQUFZLENBQUMsTUFBTTtBQUFBLE1BQ3JCO0FBQUEsTUFDQSwyQkFBMkI7QUFBQSxRQUN6QixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsTUFBTSxNQUFNLElBQUk7QUFBQSxNQUMvQjtBQUFBLE1BQ0EsMEJBQTBCO0FBQUEsUUFDeEIsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLFFBQ2QsWUFBWSxDQUFDLFFBQVE7QUFBQSxNQUN2QjtBQUFBLE1BQ0Esa0NBQWtDO0FBQUEsUUFDaEMsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSx1Q0FBdUM7QUFBQSxRQUNyQyxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLHlEQUF5RDtBQUFBLFFBQ3ZELFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EsbUNBQW1DO0FBQUEsUUFDakMsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSxpQ0FBaUM7QUFBQSxRQUMvQixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLDRCQUE0QjtBQUFBLFFBQzFCLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EscUNBQXFDO0FBQUEsUUFDbkMsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSwrQ0FBK0M7QUFBQSxRQUM3QyxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLHlDQUF5QztBQUFBLFFBQ3ZDLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EsaUNBQWlDO0FBQUEsUUFDL0IsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSwwQ0FBMEM7QUFBQSxRQUN4QyxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLGlDQUFpQztBQUFBLFFBQy9CLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EsaURBQWlEO0FBQUEsUUFDL0MsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSxvQkFBb0I7QUFBQSxRQUNsQixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsTUFBTTtBQUFBLE1BQ3JCO0FBQUEsTUFDQSx3Q0FBd0M7QUFBQSxRQUN0QyxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsUUFDZCxZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSxpQ0FBaUM7QUFBQSxRQUMvQixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLHNDQUFzQztBQUFBLFFBQ3BDLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxRQUNkLFlBQVksQ0FBQyxPQUFPO0FBQUEsTUFDdEI7QUFBQSxNQUNBLGdDQUFnQztBQUFBLFFBQzlCLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EsNEJBQTRCO0FBQUEsUUFDMUIsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLFFBQ2QsWUFBWSxDQUFDLFVBQVU7QUFBQSxNQUN6QjtBQUFBLE1BQ0EsNkJBQTZCO0FBQUEsUUFDM0IsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLFFBQ2QsWUFBWSxDQUFDLE9BQU87QUFBQSxNQUN0QjtBQUFBLE1BQ0Esd0JBQXdCO0FBQUEsUUFDdEIsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLFFBQ2QsWUFBWSxDQUFDLE1BQU07QUFBQSxNQUNyQjtBQUFBLE1BQ0EsbUJBQW1CO0FBQUEsUUFDakIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLHFCQUFxQjtBQUFBLFFBQ25CLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxvQkFBb0I7QUFBQSxRQUNsQixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsdUNBQXVDO0FBQUEsUUFDckMsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLDJCQUEyQjtBQUFBLFFBQ3pCLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxRQUNkLFlBQVksQ0FBQyxNQUFNO0FBQUEsTUFDckI7QUFBQSxNQUNBLDJCQUEyQjtBQUFBLFFBQ3pCLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxRQUNkLFlBQVksQ0FBQyxNQUFNO0FBQUEsTUFDckI7QUFBQSxNQUNBLHdCQUF3QjtBQUFBLFFBQ3RCLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxRQUNkLFlBQVksQ0FBQyxNQUFNO0FBQUEsTUFDckI7QUFBQSxNQUNBLHlCQUF5QjtBQUFBLFFBQ3ZCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSw4QkFBOEI7QUFBQSxRQUM1QixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsNEJBQTRCO0FBQUEsUUFDMUIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLCtCQUErQjtBQUFBLFFBQzdCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxvQkFBb0I7QUFBQSxRQUNsQixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsT0FBTyxNQUFNO0FBQUEsTUFDNUI7QUFBQSxNQUNBLG1CQUFtQjtBQUFBLFFBQ2pCLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxPQUFPLFFBQVEsUUFBUSxLQUFLO0FBQUEsTUFDM0M7QUFBQSxNQUNBLDZCQUE2QjtBQUFBLFFBQzNCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSx5QkFBeUI7QUFBQSxRQUN2QixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsNkJBQTZCO0FBQUEsUUFDM0IsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLGdDQUFnQztBQUFBLFFBQzlCLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EsK0JBQStCO0FBQUEsUUFDN0IsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSwyQkFBMkI7QUFBQSxRQUN6QixRQUFRO0FBQUEsUUFDUixTQUFTO0FBQUEsUUFDVCxjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLDZCQUE2QjtBQUFBLFFBQzNCLFFBQVE7QUFBQSxRQUNSLFNBQVM7QUFBQSxRQUNULGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0Esb0JBQW9CO0FBQUEsUUFDbEIsY0FBYztBQUFBLFFBQ2QsWUFBWSxDQUFDLE1BQU07QUFBQSxNQUNyQjtBQUFBLE1BQ0EsMEJBQTBCO0FBQUEsUUFDeEIsY0FBYztBQUFBLFFBQ2QsWUFBWSxDQUFDLFlBQVk7QUFBQSxNQUMzQjtBQUFBLE1BQ0Esc0JBQXNCO0FBQUEsUUFDcEIsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLFFBQ2QsWUFBWSxDQUFDLE9BQU8sS0FBSztBQUFBLE1BQzNCO0FBQUEsTUFDQSx3QkFBd0I7QUFBQSxRQUN0QixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLDhCQUE4QjtBQUFBLFFBQzVCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxtQkFBbUI7QUFBQSxRQUNqQixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSx1QkFBdUI7QUFBQSxRQUNyQixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsSUFBSTtBQUFBLE1BQ25CO0FBQUEsTUFDQSx5QkFBeUI7QUFBQSxRQUN2QixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsSUFBSTtBQUFBLE1BQ25CO0FBQUEsTUFDQSx1QkFBdUI7QUFBQSxRQUNyQixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsZ0NBQWdDO0FBQUEsUUFDOUIsUUFBUTtBQUFBLFFBQ1IsU0FBUztBQUFBLE1BQ1g7QUFBQSxNQUNBLDhCQUE4QjtBQUFBLFFBQzVCLFFBQVE7QUFBQSxRQUNSLFNBQVM7QUFBQSxNQUNYO0FBQUEsTUFDQSxpQ0FBaUM7QUFBQSxRQUMvQixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EseUJBQXlCO0FBQUEsUUFDdkIsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSxvQkFBb0I7QUFBQSxRQUNsQixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSxtQkFBbUI7QUFBQSxRQUNqQixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsbUNBQW1DO0FBQUEsUUFDakMsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLHFDQUFxQztBQUFBLFFBQ25DLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSw0QkFBNEI7QUFBQSxRQUMxQixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsNkJBQTZCO0FBQUEsUUFDM0IsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLDRCQUE0QjtBQUFBLFFBQzFCLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxRQUNkLFlBQVksQ0FBQyxPQUFPLE9BQU8sT0FBTyxPQUFPLE1BQU0sUUFBUSxTQUFTLE9BQU8sT0FBTyxRQUFRLE9BQU8sVUFBVSxPQUFPLE9BQU8sT0FBTyxPQUFPLE9BQU8sT0FBTyxPQUFPLE9BQU8sT0FBTyxRQUFRO0FBQUEsTUFDaEw7QUFBQSxNQUNBLG1CQUFtQjtBQUFBLFFBQ2pCLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLHVCQUF1QjtBQUFBLFFBQ3JCLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EsbUJBQW1CO0FBQUEsUUFDakIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLGlDQUFpQztBQUFBLFFBQy9CLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxRQUNkLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLG1CQUFtQjtBQUFBLFFBQ2pCLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxRQUNkLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLDBCQUEwQjtBQUFBLFFBQ3hCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSx5QkFBeUI7QUFBQSxRQUN2QixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsUUFDZCxZQUFZLENBQUMsT0FBTztBQUFBLE1BQ3RCO0FBQUEsTUFDQSx1QkFBdUI7QUFBQSxRQUNyQixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsVUFBVSxXQUFXLFVBQVUsVUFBVSxPQUFPLE1BQU07QUFBQSxNQUNyRTtBQUFBLE1BQ0EsK0JBQStCO0FBQUEsUUFDN0IsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSxzQkFBc0I7QUFBQSxRQUNwQixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0Esb0JBQW9CO0FBQUEsUUFDbEIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLE1BQU07QUFBQSxNQUNyQjtBQUFBLE1BQ0EsbUJBQW1CO0FBQUEsUUFDakIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLHVCQUF1QjtBQUFBLFFBQ3JCLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EsK0JBQStCO0FBQUEsUUFDN0IsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLFFBQ2QsWUFBWSxDQUFDLE1BQU07QUFBQSxNQUNyQjtBQUFBLE1BQ0EseUJBQXlCO0FBQUEsUUFDdkIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLHdCQUF3QjtBQUFBLFFBQ3RCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxtQ0FBbUM7QUFBQSxRQUNqQyxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsUUFDZCxZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSxtQkFBbUI7QUFBQSxRQUNqQixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsUUFDZCxZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSxtQkFBbUI7QUFBQSxRQUNqQixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EscUNBQXFDO0FBQUEsUUFDbkMsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLDZCQUE2QjtBQUFBLFFBQzNCLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxRQUNkLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLHdCQUF3QjtBQUFBLFFBQ3RCLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLDZCQUE2QjtBQUFBLFFBQzNCLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxPQUFPLEtBQUs7QUFBQSxNQUMzQjtBQUFBLE1BQ0EsMEJBQTBCO0FBQUEsUUFDeEIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0Esd0JBQXdCO0FBQUEsUUFDdEIsUUFBUTtBQUFBLFFBQ1IsU0FBUztBQUFBLFFBQ1QsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSw2QkFBNkI7QUFBQSxRQUMzQixRQUFRO0FBQUEsUUFDUixTQUFTO0FBQUEsUUFDVCxjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLHNCQUFzQjtBQUFBLFFBQ3BCLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLHNCQUFzQjtBQUFBLFFBQ3BCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSwwQkFBMEI7QUFBQSxRQUN4QixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsT0FBTyxLQUFLO0FBQUEsTUFDM0I7QUFBQSxNQUNBLCtCQUErQjtBQUFBLFFBQzdCLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLHFCQUFxQjtBQUFBLFFBQ25CLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxJQUFJO0FBQUEsTUFDbkI7QUFBQSxNQUNBLCtCQUErQjtBQUFBLFFBQzdCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSw4QkFBOEI7QUFBQSxRQUM1QixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsSUFBSTtBQUFBLE1BQ25CO0FBQUEsTUFDQSx5QkFBeUI7QUFBQSxRQUN2QixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSx3QkFBd0I7QUFBQSxRQUN0QixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSw0QkFBNEI7QUFBQSxRQUMxQixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsU0FBUztBQUFBLE1BQ3hCO0FBQUEsTUFDQSx1QkFBdUI7QUFBQSxRQUNyQixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSx1QkFBdUI7QUFBQSxRQUNyQixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsUUFDZCxZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSxnQ0FBZ0M7QUFBQSxRQUM5QixRQUFRO0FBQUEsUUFDUixTQUFTO0FBQUEsUUFDVCxjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLDBCQUEwQjtBQUFBLFFBQ3hCLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxRQUNkLFlBQVksQ0FBQyxNQUFNLE9BQU8sSUFBSTtBQUFBLE1BQ2hDO0FBQUEsTUFDQSxpQ0FBaUM7QUFBQSxRQUMvQixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLDhDQUE4QztBQUFBLFFBQzVDLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxxQ0FBcUM7QUFBQSxRQUNuQyxRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0Esc0NBQXNDO0FBQUEsUUFDcEMsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLDRCQUE0QjtBQUFBLFFBQzFCLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EsMkJBQTJCO0FBQUEsUUFDekIsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSw4QkFBOEI7QUFBQSxRQUM1QixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsUUFDZCxZQUFZLENBQUMsT0FBTztBQUFBLE1BQ3RCO0FBQUEsTUFDQSxtQ0FBbUM7QUFBQSxRQUNqQyxRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsMkNBQTJDO0FBQUEsUUFDekMsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLHVCQUF1QjtBQUFBLFFBQ3JCLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLHVCQUF1QjtBQUFBLFFBQ3JCLFFBQVE7QUFBQSxRQUNSLFNBQVM7QUFBQSxNQUNYO0FBQUEsTUFDQSw0QkFBNEI7QUFBQSxRQUMxQixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLHdDQUF3QztBQUFBLFFBQ3RDLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0Esc0NBQXNDO0FBQUEsUUFDcEMsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLHVDQUF1QztBQUFBLFFBQ3JDLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EsMkNBQTJDO0FBQUEsUUFDekMsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLHVDQUF1QztBQUFBLFFBQ3JDLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxxQ0FBcUM7QUFBQSxRQUNuQyxRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsMkJBQTJCO0FBQUEsUUFDekIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLDBCQUEwQjtBQUFBLFFBQ3hCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSwyQkFBMkI7QUFBQSxRQUN6QixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsaUNBQWlDO0FBQUEsUUFDL0IsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLDRCQUE0QjtBQUFBLFFBQzFCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSwyQkFBMkI7QUFBQSxRQUN6QixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsUUFDZCxZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSx3QkFBd0I7QUFBQSxRQUN0QixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsUUFDZCxZQUFZLENBQUMsU0FBUztBQUFBLE1BQ3hCO0FBQUEsTUFDQSx3QkFBd0I7QUFBQSxRQUN0QixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLG9CQUFvQjtBQUFBLFFBQ2xCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSx5QkFBeUI7QUFBQSxRQUN2QixjQUFjO0FBQUEsUUFDZCxZQUFZLENBQUMsTUFBTTtBQUFBLE1BQ3JCO0FBQUEsTUFDQSx5QkFBeUI7QUFBQSxRQUN2QixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EseUJBQXlCO0FBQUEsUUFDdkIsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSx1QkFBdUI7QUFBQSxRQUNyQixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsUUFDZCxZQUFZLENBQUMsT0FBTyxLQUFLO0FBQUEsTUFDM0I7QUFBQSxNQUNBLDJCQUEyQjtBQUFBLFFBQ3pCLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxRQUNkLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLHVDQUF1QztBQUFBLFFBQ3JDLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLCtCQUErQjtBQUFBLFFBQzdCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSw0QkFBNEI7QUFBQSxRQUMxQixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLG9DQUFvQztBQUFBLFFBQ2xDLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxrQ0FBa0M7QUFBQSxRQUNoQyxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsUUFDZCxZQUFZLENBQUMsSUFBSTtBQUFBLE1BQ25CO0FBQUEsTUFDQSx1Q0FBdUM7QUFBQSxRQUNyQyxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsUUFDZCxZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSx1QkFBdUI7QUFBQSxRQUNyQixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLHNCQUFzQjtBQUFBLFFBQ3BCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSx3QkFBd0I7QUFBQSxRQUN0QixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLGdDQUFnQztBQUFBLFFBQzlCLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxRQUNkLFlBQVksQ0FBQyxJQUFJO0FBQUEsTUFDbkI7QUFBQSxNQUNBLDZCQUE2QjtBQUFBLFFBQzNCLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxRQUNkLFlBQVksQ0FBQyxNQUFNO0FBQUEsTUFDckI7QUFBQSxNQUNBLGdDQUFnQztBQUFBLFFBQzlCLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxRQUNkLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLDZCQUE2QjtBQUFBLFFBQzNCLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxRQUNkLFlBQVksQ0FBQyxNQUFNO0FBQUEsTUFDckI7QUFBQSxNQUNBLDhCQUE4QjtBQUFBLFFBQzVCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxpQ0FBaUM7QUFBQSxRQUMvQixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSw2QkFBNkI7QUFBQSxRQUMzQixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSxnQ0FBZ0M7QUFBQSxRQUM5QixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0Esd0JBQXdCO0FBQUEsUUFDdEIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsK0JBQStCO0FBQUEsUUFDN0IsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLDJCQUEyQjtBQUFBLFFBQ3pCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSx1QkFBdUI7QUFBQSxRQUNyQixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsUUFDZCxZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSx1QkFBdUI7QUFBQSxRQUNyQixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsUUFDZCxZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSxtQkFBbUI7QUFBQSxRQUNqQixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsUUFDZCxZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSwyQkFBMkI7QUFBQSxRQUN6QixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsbUJBQW1CO0FBQUEsUUFDakIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLGlDQUFpQztBQUFBLFFBQy9CLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EsZ0NBQWdDO0FBQUEsUUFDOUIsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSwwQkFBMEI7QUFBQSxRQUN4QixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLDhDQUE4QztBQUFBLFFBQzVDLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EsbUJBQW1CO0FBQUEsUUFDakIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLHdCQUF3QjtBQUFBLFFBQ3RCLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxRQUNkLFlBQVksQ0FBQyxNQUFNO0FBQUEsTUFDckI7QUFBQSxNQUNBLHlCQUF5QjtBQUFBLFFBQ3ZCLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EseUJBQXlCO0FBQUEsUUFDdkIsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSwrQkFBK0I7QUFBQSxRQUM3QixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSxnQ0FBZ0M7QUFBQSxRQUM5QixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSwrQkFBK0I7QUFBQSxRQUM3QixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSxnQ0FBZ0M7QUFBQSxRQUM5QixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSxtQkFBbUI7QUFBQSxRQUNqQixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSw0QkFBNEI7QUFBQSxRQUMxQixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsMEJBQTBCO0FBQUEsUUFDeEIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLDBCQUEwQjtBQUFBLFFBQ3hCLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EseUJBQXlCO0FBQUEsUUFDdkIsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLFFBQ2QsWUFBWSxDQUFDLFFBQVE7QUFBQSxNQUN2QjtBQUFBLE1BQ0EsK0JBQStCO0FBQUEsUUFDN0IsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLCtCQUErQjtBQUFBLFFBQzdCLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EseUJBQXlCO0FBQUEsUUFDdkIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLDJCQUEyQjtBQUFBLFFBQ3pCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSwyQkFBMkI7QUFBQSxRQUN6QixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLDBCQUEwQjtBQUFBLFFBQ3hCLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxRQUNkLFlBQVksQ0FBQyxTQUFTO0FBQUEsTUFDeEI7QUFBQSxNQUNBLDBCQUEwQjtBQUFBLFFBQ3hCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSx1QkFBdUI7QUFBQSxRQUNyQixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLHVCQUF1QjtBQUFBLFFBQ3JCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSw0QkFBNEI7QUFBQSxRQUMxQixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsMkJBQTJCO0FBQUEsUUFDekIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLHNDQUFzQztBQUFBLFFBQ3BDLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxRQUFRO0FBQUEsTUFDdkI7QUFBQSxNQUNBLGdDQUFnQztBQUFBLFFBQzlCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSwyQ0FBMkM7QUFBQSxRQUN6QyxRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsUUFBUTtBQUFBLE1BQ3ZCO0FBQUEsTUFDQSxvQkFBb0I7QUFBQSxRQUNsQixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsaUNBQWlDO0FBQUEsUUFDL0IsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLHVCQUF1QjtBQUFBLFFBQ3JCLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxRQUNkLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLHFCQUFxQjtBQUFBLFFBQ25CLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxPQUFPLE9BQU87QUFBQSxNQUM3QjtBQUFBLE1BQ0EsaUNBQWlDO0FBQUEsUUFDL0IsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSxzQ0FBc0M7QUFBQSxRQUNwQyxRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EscUNBQXFDO0FBQUEsUUFDbkMsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLG9CQUFvQjtBQUFBLFFBQ2xCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxxQkFBcUI7QUFBQSxRQUNuQixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0Esb0JBQW9CO0FBQUEsUUFDbEIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLHdCQUF3QjtBQUFBLFFBQ3RCLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxRQUNkLFlBQVksQ0FBQyxPQUFPLE1BQU07QUFBQSxNQUM1QjtBQUFBLE1BQ0EseUJBQXlCO0FBQUEsUUFDdkIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLGdDQUFnQztBQUFBLFFBQzlCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSx3QkFBd0I7QUFBQSxRQUN0QixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLDRCQUE0QjtBQUFBLFFBQzFCLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxJQUFJO0FBQUEsTUFDbkI7QUFBQSxNQUNBLGtDQUFrQztBQUFBLFFBQ2hDLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxRQUNkLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLHlCQUF5QjtBQUFBLFFBQ3ZCLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EsaUNBQWlDO0FBQUEsUUFDL0IsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSxtQkFBbUI7QUFBQSxRQUNqQixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSxvQkFBb0I7QUFBQSxRQUNsQixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsTUFBTTtBQUFBLE1BQ3JCO0FBQUEsTUFDQSx3QkFBd0I7QUFBQSxRQUN0QixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsUUFDZCxZQUFZLENBQUMsT0FBTztBQUFBLE1BQ3RCO0FBQUEsTUFDQSx1QkFBdUI7QUFBQSxRQUNyQixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsUUFDZCxZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSx3QkFBd0I7QUFBQSxRQUN0QixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsUUFDZCxZQUFZLENBQUMsTUFBTTtBQUFBLE1BQ3JCO0FBQUEsTUFDQSw2QkFBNkI7QUFBQSxRQUMzQixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0Esd0JBQXdCO0FBQUEsUUFDdEIsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLFFBQ2QsWUFBWSxDQUFDLE1BQU07QUFBQSxNQUNyQjtBQUFBLE1BQ0EseUJBQXlCO0FBQUEsUUFDdkIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLHlCQUF5QjtBQUFBLFFBQ3ZCLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EsdUJBQXVCO0FBQUEsUUFDckIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLHlCQUF5QjtBQUFBLFFBQ3ZCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSx3QkFBd0I7QUFBQSxRQUN0QixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsUUFDZCxZQUFZLENBQUMsU0FBUztBQUFBLE1BQ3hCO0FBQUEsTUFDQSxnQ0FBZ0M7QUFBQSxRQUM5QixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0Esd0NBQXdDO0FBQUEsUUFDdEMsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLHFDQUFxQztBQUFBLFFBQ25DLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSw2Q0FBNkM7QUFBQSxRQUMzQyxRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsMEJBQTBCO0FBQUEsUUFDeEIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLG9DQUFvQztBQUFBLFFBQ2xDLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSw0Q0FBNEM7QUFBQSxRQUMxQyxRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsaUNBQWlDO0FBQUEsUUFDL0IsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLG9DQUFvQztBQUFBLFFBQ2xDLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSwyQkFBMkI7QUFBQSxRQUN6QixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsbUNBQW1DO0FBQUEsUUFDakMsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLG1CQUFtQjtBQUFBLFFBQ2pCLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EsMEJBQTBCO0FBQUEsUUFDeEIsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSx1QkFBdUI7QUFBQSxRQUNyQixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLHVCQUF1QjtBQUFBLFFBQ3JCLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxRQUNkLFlBQVksQ0FBQyxPQUFPLFdBQVc7QUFBQSxNQUNqQztBQUFBLE1BQ0EseUJBQXlCO0FBQUEsUUFDdkIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLDBCQUEwQjtBQUFBLFFBQ3hCLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxRQUNkLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLCtCQUErQjtBQUFBLFFBQzdCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSwrQkFBK0I7QUFBQSxRQUM3QixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsZ0NBQWdDO0FBQUEsUUFDOUIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsMkJBQTJCO0FBQUEsUUFDekIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLDJCQUEyQjtBQUFBLFFBQ3pCLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EsdUJBQXVCO0FBQUEsUUFDckIsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSwwQkFBMEI7QUFBQSxRQUN4QixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0Esd0JBQXdCO0FBQUEsUUFDdEIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLHVDQUF1QztBQUFBLFFBQ3JDLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxvQkFBb0I7QUFBQSxRQUNsQixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsUUFDZCxZQUFZLENBQUMsTUFBTTtBQUFBLE1BQ3JCO0FBQUEsTUFDQSxtQ0FBbUM7QUFBQSxRQUNqQyxRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0Esb0JBQW9CO0FBQUEsUUFDbEIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLE1BQU07QUFBQSxNQUNyQjtBQUFBLE1BQ0EsZ0NBQWdDO0FBQUEsUUFDOUIsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSw4QkFBOEI7QUFBQSxRQUM1QixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EseUNBQXlDO0FBQUEsUUFDdkMsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLHdCQUF3QjtBQUFBLFFBQ3RCLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxRQUNkLFlBQVksQ0FBQyxNQUFNO0FBQUEsTUFDckI7QUFBQSxNQUNBLDJCQUEyQjtBQUFBLFFBQ3pCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxvQkFBb0I7QUFBQSxRQUNsQixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EseUJBQXlCO0FBQUEsUUFDdkIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLHNCQUFzQjtBQUFBLFFBQ3BCLGNBQWM7QUFBQSxRQUNkLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLHlCQUF5QjtBQUFBLFFBQ3ZCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSx5QkFBeUI7QUFBQSxRQUN2QixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLHNCQUFzQjtBQUFBLFFBQ3BCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxnQ0FBZ0M7QUFBQSxRQUM5QixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLGdDQUFnQztBQUFBLFFBQzlCLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxRQUNkLFlBQVksQ0FBQyxRQUFRO0FBQUEsTUFDdkI7QUFBQSxNQUNBLGtDQUFrQztBQUFBLFFBQ2hDLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxRQUNkLFlBQVksQ0FBQyxJQUFJO0FBQUEsTUFDbkI7QUFBQSxNQUNBLG9DQUFvQztBQUFBLFFBQ2xDLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0Esa0JBQWtCO0FBQUEsUUFDaEIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLHVCQUF1QjtBQUFBLFFBQ3JCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxzQkFBc0I7QUFBQSxRQUNwQixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsMEJBQTBCO0FBQUEsUUFDeEIsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSx5QkFBeUI7QUFBQSxRQUN2QixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLHFCQUFxQjtBQUFBLFFBQ25CLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxvQ0FBb0M7QUFBQSxRQUNsQyxRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsZ0RBQWdEO0FBQUEsUUFDOUMsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLFFBQ2QsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsdUJBQXVCO0FBQUEsUUFDckIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLGtDQUFrQztBQUFBLFFBQ2hDLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EsdUNBQXVDO0FBQUEsUUFDckMsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSx5Q0FBeUM7QUFBQSxRQUN2QyxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLHdDQUF3QztBQUFBLFFBQ3RDLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0Esc0NBQXNDO0FBQUEsUUFDcEMsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSxzREFBc0Q7QUFBQSxRQUNwRCxRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsOEJBQThCO0FBQUEsUUFDNUIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLCtCQUErQjtBQUFBLFFBQzdCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSx5REFBeUQ7QUFBQSxRQUN2RCxRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsK0JBQStCO0FBQUEsUUFDN0IsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLHlEQUF5RDtBQUFBLFFBQ3ZELFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxtREFBbUQ7QUFBQSxRQUNqRCxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLGdDQUFnQztBQUFBLFFBQzlCLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EsZ0NBQWdDO0FBQUEsUUFDOUIsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSx1REFBdUQ7QUFBQSxRQUNyRCxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLGlDQUFpQztBQUFBLFFBQy9CLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EsNkJBQTZCO0FBQUEsUUFDM0IsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLDBDQUEwQztBQUFBLFFBQ3hDLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSw0QkFBNEI7QUFBQSxRQUMxQixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsMENBQTBDO0FBQUEsUUFDeEMsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLHVEQUF1RDtBQUFBLFFBQ3JELFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0Esd0NBQXdDO0FBQUEsUUFDdEMsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSx5REFBeUQ7QUFBQSxRQUN2RCxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLHVDQUF1QztBQUFBLFFBQ3JDLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSwyQ0FBMkM7QUFBQSxRQUN6QyxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLGtEQUFrRDtBQUFBLFFBQ2hELFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EsMENBQTBDO0FBQUEsUUFDeEMsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLDZDQUE2QztBQUFBLFFBQzNDLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EsZ0RBQWdEO0FBQUEsUUFDOUMsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSxzREFBc0Q7QUFBQSxRQUNwRCxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLGdEQUFnRDtBQUFBLFFBQzlDLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EsdUNBQXVDO0FBQUEsUUFDckMsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSxnREFBZ0Q7QUFBQSxRQUM5QyxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLGtEQUFrRDtBQUFBLFFBQ2hELFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EsMENBQTBDO0FBQUEsUUFDeEMsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSxpREFBaUQ7QUFBQSxRQUMvQyxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLHlDQUF5QztBQUFBLFFBQ3ZDLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EsNENBQTRDO0FBQUEsUUFDMUMsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSxpREFBaUQ7QUFBQSxRQUMvQyxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLCtDQUErQztBQUFBLFFBQzdDLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0Esd0RBQXdEO0FBQUEsUUFDdEQsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSx5Q0FBeUM7QUFBQSxRQUN2QyxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLGtEQUFrRDtBQUFBLFFBQ2hELFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0Esb0RBQW9EO0FBQUEsUUFDbEQsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSw0Q0FBNEM7QUFBQSxRQUMxQyxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLG1EQUFtRDtBQUFBLFFBQ2pELFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EseURBQXlEO0FBQUEsUUFDdkQsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSw4Q0FBOEM7QUFBQSxRQUM1QyxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLGlEQUFpRDtBQUFBLFFBQy9DLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EscUNBQXFDO0FBQUEsUUFDbkMsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSw2QkFBNkI7QUFBQSxRQUMzQixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsNkJBQTZCO0FBQUEsUUFDM0IsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLHFDQUFxQztBQUFBLFFBQ25DLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLHFDQUFxQztBQUFBLFFBQ25DLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLG1DQUFtQztBQUFBLFFBQ2pDLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLHdDQUF3QztBQUFBLFFBQ3RDLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EsNkJBQTZCO0FBQUEsUUFDM0IsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLDJDQUEyQztBQUFBLFFBQ3pDLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0Esc0NBQXNDO0FBQUEsUUFDcEMsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSwrQ0FBK0M7QUFBQSxRQUM3QyxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLGlEQUFpRDtBQUFBLFFBQy9DLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EsNkRBQTZEO0FBQUEsUUFDM0QsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSxnREFBZ0Q7QUFBQSxRQUM5QyxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLDhDQUE4QztBQUFBLFFBQzVDLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EsbURBQW1EO0FBQUEsUUFDakQsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSw0QkFBNEI7QUFBQSxRQUMxQixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsZ0NBQWdDO0FBQUEsUUFDOUIsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSxzQ0FBc0M7QUFBQSxRQUNwQyxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLHVDQUF1QztBQUFBLFFBQ3JDLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EsaURBQWlEO0FBQUEsUUFDL0MsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSxpQ0FBaUM7QUFBQSxRQUMvQixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLDRCQUE0QjtBQUFBLFFBQzFCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxxQ0FBcUM7QUFBQSxRQUNuQyxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLHVDQUF1QztBQUFBLFFBQ3JDLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EsNkJBQTZCO0FBQUEsUUFDM0IsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLDhCQUE4QjtBQUFBLFFBQzVCLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxNQUFNO0FBQUEsTUFDckI7QUFBQSxNQUNBLDZDQUE2QztBQUFBLFFBQzNDLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxvQ0FBb0M7QUFBQSxRQUNsQyxRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSxxQ0FBcUM7QUFBQSxRQUNuQyxRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSxxQ0FBcUM7QUFBQSxRQUNuQyxRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSx3Q0FBd0M7QUFBQSxRQUN0QyxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLG9DQUFvQztBQUFBLFFBQ2xDLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EsNEJBQTRCO0FBQUEsUUFDMUIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsMkJBQTJCO0FBQUEsUUFDekIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLE9BQU8sT0FBTztBQUFBLE1BQzdCO0FBQUEsTUFDQSwrREFBK0Q7QUFBQSxRQUM3RCxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsUUFDZCxZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSxxQ0FBcUM7QUFBQSxRQUNuQyxRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsMkNBQTJDO0FBQUEsUUFDekMsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLE1BQU07QUFBQSxNQUNyQjtBQUFBLE1BQ0EsNkJBQTZCO0FBQUEsUUFDM0IsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLE9BQU8sTUFBTTtBQUFBLE1BQzVCO0FBQUEsTUFDQSx3Q0FBd0M7QUFBQSxRQUN0QyxRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsaUNBQWlDO0FBQUEsUUFDL0IsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLFFBQ2QsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsOEJBQThCO0FBQUEsUUFDNUIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLE1BQU07QUFBQSxNQUNyQjtBQUFBLE1BQ0EsOEJBQThCO0FBQUEsUUFDNUIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLG9DQUFvQztBQUFBLFFBQ2xDLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSw0Q0FBNEM7QUFBQSxRQUMxQyxRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EseUNBQXlDO0FBQUEsUUFDdkMsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLHFDQUFxQztBQUFBLFFBQ25DLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSx1Q0FBdUM7QUFBQSxRQUNyQyxRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0Esc0NBQXNDO0FBQUEsUUFDcEMsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLDhCQUE4QjtBQUFBLFFBQzVCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxzQ0FBc0M7QUFBQSxRQUNwQyxRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0Esc0NBQXNDO0FBQUEsUUFDcEMsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLHdDQUF3QztBQUFBLFFBQ3RDLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSw4Q0FBOEM7QUFBQSxRQUM1QyxRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0Esc0NBQXNDO0FBQUEsUUFDcEMsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLDBDQUEwQztBQUFBLFFBQ3hDLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSx1QkFBdUI7QUFBQSxRQUNyQixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSw4QkFBOEI7QUFBQSxRQUM1QixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsK0JBQStCO0FBQUEsUUFDN0IsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLE9BQU87QUFBQSxNQUN0QjtBQUFBLE1BQ0EseUNBQXlDO0FBQUEsUUFDdkMsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EseUNBQXlDO0FBQUEsUUFDdkMsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsZ0NBQWdDO0FBQUEsUUFDOUIsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSxnQ0FBZ0M7QUFBQSxRQUM5QixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSxzQ0FBc0M7QUFBQSxRQUNwQyxRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0Esd0NBQXdDO0FBQUEsUUFDdEMsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsNkJBQTZCO0FBQUEsUUFDM0IsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EscUNBQXFDO0FBQUEsUUFDbkMsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSwrQkFBK0I7QUFBQSxRQUM3QixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsMkNBQTJDO0FBQUEsUUFDekMsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLFFBQ2QsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0Esd0JBQXdCO0FBQUEsUUFDdEIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLDBEQUEwRDtBQUFBLFFBQ3hELFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLHVEQUF1RDtBQUFBLFFBQ3JELFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLHdDQUF3QztBQUFBLFFBQ3RDLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLHFDQUFxQztBQUFBLFFBQ25DLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSx1Q0FBdUM7QUFBQSxRQUNyQyxRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0Esa0NBQWtDO0FBQUEsUUFDaEMsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLHdDQUF3QztBQUFBLFFBQ3RDLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSx5Q0FBeUM7QUFBQSxRQUN2QyxRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0Esc0NBQXNDO0FBQUEsUUFDcEMsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLDRCQUE0QjtBQUFBLFFBQzFCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSw0QkFBNEI7QUFBQSxRQUMxQixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLHVDQUF1QztBQUFBLFFBQ3JDLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EsZ0RBQWdEO0FBQUEsUUFDOUMsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSx1Q0FBdUM7QUFBQSxRQUNyQyxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsUUFDZCxZQUFZLENBQUMsTUFBTTtBQUFBLE1BQ3JCO0FBQUEsTUFDQSxpQ0FBaUM7QUFBQSxRQUMvQixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSxpQ0FBaUM7QUFBQSxRQUMvQixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsTUFBTTtBQUFBLE1BQ3JCO0FBQUEsTUFDQSxpQ0FBaUM7QUFBQSxRQUMvQixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsU0FBUztBQUFBLE1BQ3hCO0FBQUEsTUFDQSwrQkFBK0I7QUFBQSxRQUM3QixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsT0FBTztBQUFBLE1BQ3RCO0FBQUEsTUFDQSxnQ0FBZ0M7QUFBQSxRQUM5QixjQUFjO0FBQUEsUUFDZCxZQUFZLENBQUMsUUFBUTtBQUFBLE1BQ3ZCO0FBQUEsTUFDQSwrQkFBK0I7QUFBQSxRQUM3QixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0Esc0NBQXNDO0FBQUEsUUFDcEMsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsZ0NBQWdDO0FBQUEsUUFDOUIsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSw2QkFBNkI7QUFBQSxRQUMzQixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EseUNBQXlDO0FBQUEsUUFDdkMsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLE1BQU07QUFBQSxNQUNyQjtBQUFBLE1BQ0EsOEJBQThCO0FBQUEsUUFDNUIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsZ0NBQWdDO0FBQUEsUUFDOUIsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsK0JBQStCO0FBQUEsUUFDN0IsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLCtCQUErQjtBQUFBLFFBQzdCLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EsK0JBQStCO0FBQUEsUUFDN0IsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSxxQ0FBcUM7QUFBQSxRQUNuQyxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsUUFDZCxZQUFZLENBQUMsTUFBTTtBQUFBLE1BQ3JCO0FBQUEsTUFDQSxpQ0FBaUM7QUFBQSxRQUMvQixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EscUNBQXFDO0FBQUEsUUFDbkMsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLGlDQUFpQztBQUFBLFFBQy9CLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSwrQkFBK0I7QUFBQSxRQUM3QixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0Esb0NBQW9DO0FBQUEsUUFDbEMsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSx1Q0FBdUM7QUFBQSxRQUNyQyxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLHdDQUF3QztBQUFBLFFBQ3RDLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0Esd0NBQXdDO0FBQUEsUUFDdEMsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSxvQ0FBb0M7QUFBQSxRQUNsQyxRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0Esa0NBQWtDO0FBQUEsUUFDaEMsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSwyQ0FBMkM7QUFBQSxRQUN6QyxRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EscUNBQXFDO0FBQUEsUUFDbkMsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0Esb0NBQW9DO0FBQUEsUUFDbEMsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLG9DQUFvQztBQUFBLFFBQ2xDLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSx1QkFBdUI7QUFBQSxRQUNyQixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSx1QkFBdUI7QUFBQSxRQUNyQixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0Esd0JBQXdCO0FBQUEsUUFDdEIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLG1DQUFtQztBQUFBLFFBQ2pDLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLGlDQUFpQztBQUFBLFFBQy9CLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EseUJBQXlCO0FBQUEsUUFDdkIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLHNDQUFzQztBQUFBLFFBQ3BDLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EsK0JBQStCO0FBQUEsUUFDN0IsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLDhCQUE4QjtBQUFBLFFBQzVCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSw4QkFBOEI7QUFBQSxRQUM1QixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsdUNBQXVDO0FBQUEsUUFDckMsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSw4Q0FBOEM7QUFBQSxRQUM1QyxRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsOENBQThDO0FBQUEsUUFDNUMsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLGdDQUFnQztBQUFBLFFBQzlCLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxRQUNkLFlBQVksQ0FBQyxPQUFPO0FBQUEsTUFDdEI7QUFBQSxNQUNBLDZCQUE2QjtBQUFBLFFBQzNCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSx3Q0FBd0M7QUFBQSxRQUN0QyxRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSx5QkFBeUI7QUFBQSxRQUN2QixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsOEJBQThCO0FBQUEsUUFDNUIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0Esb0NBQW9DO0FBQUEsUUFDbEMsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLDRDQUE0QztBQUFBLFFBQzFDLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxRQUNkLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLDRCQUE0QjtBQUFBLFFBQzFCLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLCtCQUErQjtBQUFBLFFBQzdCLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLGlDQUFpQztBQUFBLFFBQy9CLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxPQUFPLE9BQU8sT0FBTyxPQUFPLEtBQUs7QUFBQSxNQUNoRDtBQUFBLE1BQ0EsZ0RBQWdEO0FBQUEsUUFDOUMsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLFFBQVE7QUFBQSxNQUN2QjtBQUFBLE1BQ0Esb0RBQW9EO0FBQUEsUUFDbEQsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLFFBQVE7QUFBQSxNQUN2QjtBQUFBLE1BQ0EsdURBQXVEO0FBQUEsUUFDckQsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLHNEQUFzRDtBQUFBLFFBQ3BELFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSw0Q0FBNEM7QUFBQSxRQUMxQyxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLGdDQUFnQztBQUFBLFFBQzlCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxpREFBaUQ7QUFBQSxRQUMvQyxRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsMERBQTBEO0FBQUEsUUFDeEQsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLHFEQUFxRDtBQUFBLFFBQ25ELFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSw4REFBOEQ7QUFBQSxRQUM1RCxRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0Esb0RBQW9EO0FBQUEsUUFDbEQsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLDZEQUE2RDtBQUFBLFFBQzNELFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxtQ0FBbUM7QUFBQSxRQUNqQyxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLHVDQUF1QztBQUFBLFFBQ3JDLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0Esd0NBQXdDO0FBQUEsUUFDdEMsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSxpQ0FBaUM7QUFBQSxRQUMvQixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLGlDQUFpQztBQUFBLFFBQy9CLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxxQ0FBcUM7QUFBQSxRQUNuQyxRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsK0JBQStCO0FBQUEsUUFDN0IsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsZ0NBQWdDO0FBQUEsUUFDOUIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLFNBQVM7QUFBQSxNQUN4QjtBQUFBLE1BQ0Esd0NBQXdDO0FBQUEsUUFDdEMsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSwrQkFBK0I7QUFBQSxRQUM3QixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSxpQ0FBaUM7QUFBQSxRQUMvQixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsTUFBTTtBQUFBLE1BQ3JCO0FBQUEsTUFDQSwwQ0FBMEM7QUFBQSxRQUN4QyxRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsTUFBTTtBQUFBLE1BQ3JCO0FBQUEsTUFDQSx5Q0FBeUM7QUFBQSxRQUN2QyxRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsTUFBTTtBQUFBLE1BQ3JCO0FBQUEsTUFDQSwwQ0FBMEM7QUFBQSxRQUN4QyxRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsTUFBTTtBQUFBLE1BQ3JCO0FBQUEsTUFDQSwwQ0FBMEM7QUFBQSxRQUN4QyxRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsTUFBTTtBQUFBLE1BQ3JCO0FBQUEsTUFDQSx5Q0FBeUM7QUFBQSxRQUN2QyxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsUUFDZCxZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSxxQ0FBcUM7QUFBQSxRQUNuQyxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLHFDQUFxQztBQUFBLFFBQ25DLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSx5Q0FBeUM7QUFBQSxRQUN2QyxRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EscUNBQXFDO0FBQUEsUUFDbkMsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLDZCQUE2QjtBQUFBLFFBQzNCLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLCtCQUErQjtBQUFBLFFBQzdCLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EsNEJBQTRCO0FBQUEsUUFDMUIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLG1DQUFtQztBQUFBLFFBQ2pDLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSw0QkFBNEI7QUFBQSxRQUMxQixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSwrQkFBK0I7QUFBQSxRQUM3QixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsNEJBQTRCO0FBQUEsUUFDMUIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLHdCQUF3QjtBQUFBLFFBQ3RCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSw0QkFBNEI7QUFBQSxRQUMxQixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSw4QkFBOEI7QUFBQSxRQUM1QixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsT0FBTztBQUFBLE1BQ3RCO0FBQUEsTUFDQSxzQ0FBc0M7QUFBQSxRQUNwQyxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLDBCQUEwQjtBQUFBLFFBQ3hCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxrQ0FBa0M7QUFBQSxRQUNoQyxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLGlDQUFpQztBQUFBLFFBQy9CLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EsNENBQTRDO0FBQUEsUUFDMUMsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSwrQkFBK0I7QUFBQSxRQUM3QixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsK0JBQStCO0FBQUEsUUFDN0IsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLHdCQUF3QjtBQUFBLFFBQ3RCLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxRQUNkLFlBQVksQ0FBQyxNQUFNO0FBQUEsTUFDckI7QUFBQSxNQUNBLG1DQUFtQztBQUFBLFFBQ2pDLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLDJCQUEyQjtBQUFBLFFBQ3pCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxvQ0FBb0M7QUFBQSxRQUNsQyxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLHFDQUFxQztBQUFBLFFBQ25DLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EsdUJBQXVCO0FBQUEsUUFDckIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsNEJBQTRCO0FBQUEsUUFDMUIsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLFFBQ2QsWUFBWSxDQUFDLE1BQU07QUFBQSxNQUNyQjtBQUFBLE1BQ0EseUNBQXlDO0FBQUEsUUFDdkMsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLDZCQUE2QjtBQUFBLFFBQzNCLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxPQUFPLFFBQVEsT0FBTyxNQUFNO0FBQUEsTUFDM0M7QUFBQSxNQUNBLGlDQUFpQztBQUFBLFFBQy9CLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxRQUNkLFlBQVksQ0FBQyxPQUFPLE1BQU07QUFBQSxNQUM1QjtBQUFBLE1BQ0Esb0NBQW9DO0FBQUEsUUFDbEMsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLE9BQU8sTUFBTTtBQUFBLE1BQzVCO0FBQUEsTUFDQSw0QkFBNEI7QUFBQSxRQUMxQixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsT0FBTyxNQUFNO0FBQUEsTUFDNUI7QUFBQSxNQUNBLDBDQUEwQztBQUFBLFFBQ3hDLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxXQUFXO0FBQUEsTUFDMUI7QUFBQSxNQUNBLGlDQUFpQztBQUFBLFFBQy9CLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSw0Q0FBNEM7QUFBQSxRQUMxQyxRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EscUNBQXFDO0FBQUEsUUFDbkMsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSx1QkFBdUI7QUFBQSxRQUNyQixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSxpQ0FBaUM7QUFBQSxRQUMvQixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLDZCQUE2QjtBQUFBLFFBQzNCLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLGtDQUFrQztBQUFBLFFBQ2hDLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxrQ0FBa0M7QUFBQSxRQUNoQyxRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0Esc0RBQXNEO0FBQUEsUUFDcEQsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLDJCQUEyQjtBQUFBLFFBQ3pCLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLGdDQUFnQztBQUFBLFFBQzlCLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxNQUFNO0FBQUEsTUFDckI7QUFBQSxNQUNBLDhCQUE4QjtBQUFBLFFBQzVCLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EsK0JBQStCO0FBQUEsUUFDN0IsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLE1BQU07QUFBQSxNQUNyQjtBQUFBLE1BQ0EsNkJBQTZCO0FBQUEsUUFDM0IsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLG1DQUFtQztBQUFBLFFBQ2pDLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxrQ0FBa0M7QUFBQSxRQUNoQyxRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsMkJBQTJCO0FBQUEsUUFDekIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0Esa0NBQWtDO0FBQUEsUUFDaEMsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSw0QkFBNEI7QUFBQSxRQUMxQixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0Esb0NBQW9DO0FBQUEsUUFDbEMsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLDBDQUEwQztBQUFBLFFBQ3hDLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxxQ0FBcUM7QUFBQSxRQUNuQyxRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0Esc0NBQXNDO0FBQUEsUUFDcEMsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLGtDQUFrQztBQUFBLFFBQ2hDLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxtQ0FBbUM7QUFBQSxRQUNqQyxRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsdUNBQXVDO0FBQUEsUUFDckMsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLDhDQUE4QztBQUFBLFFBQzVDLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxnREFBZ0Q7QUFBQSxRQUM5QyxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLDJDQUEyQztBQUFBLFFBQ3pDLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EseUNBQXlDO0FBQUEsUUFDdkMsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSw0Q0FBNEM7QUFBQSxRQUMxQyxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLHlEQUF5RDtBQUFBLFFBQ3ZELFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EsMERBQTBEO0FBQUEsUUFDeEQsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSxzQ0FBc0M7QUFBQSxRQUNwQyxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLDJCQUEyQjtBQUFBLFFBQ3pCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSwrQkFBK0I7QUFBQSxRQUM3QixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSx1QkFBdUI7QUFBQSxRQUNyQixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsMkJBQTJCO0FBQUEsUUFDekIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsdUJBQXVCO0FBQUEsUUFDckIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLDJDQUEyQztBQUFBLFFBQ3pDLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxnQ0FBZ0M7QUFBQSxRQUM5QixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsNEJBQTRCO0FBQUEsUUFDMUIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLHNDQUFzQztBQUFBLFFBQ3BDLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EsZ0NBQWdDO0FBQUEsUUFDOUIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0Esc0NBQXNDO0FBQUEsUUFDcEMsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLHFDQUFxQztBQUFBLFFBQ25DLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxpQ0FBaUM7QUFBQSxRQUMvQixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0Esd0NBQXdDO0FBQUEsUUFDdEMsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLHVDQUF1QztBQUFBLFFBQ3JDLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSwyQkFBMkI7QUFBQSxRQUN6QixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsMkJBQTJCO0FBQUEsUUFDekIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLDJCQUEyQjtBQUFBLFFBQ3pCLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EsOENBQThDO0FBQUEsUUFDNUMsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSwyQkFBMkI7QUFBQSxRQUN6QixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSxpQ0FBaUM7QUFBQSxRQUMvQixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0Esb0NBQW9DO0FBQUEsUUFDbEMsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSw2QkFBNkI7QUFBQSxRQUMzQixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSw2QkFBNkI7QUFBQSxRQUMzQixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSxvQ0FBb0M7QUFBQSxRQUNsQyxRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSw4QkFBOEI7QUFBQSxRQUM1QixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSw2QkFBNkI7QUFBQSxRQUMzQixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSxzQ0FBc0M7QUFBQSxRQUNwQyxRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EseUJBQXlCO0FBQUEsUUFDdkIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLHFDQUFxQztBQUFBLFFBQ25DLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EsZ0NBQWdDO0FBQUEsUUFDOUIsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLFFBQ2QsWUFBWSxDQUFDLE9BQU8sS0FBSztBQUFBLE1BQzNCO0FBQUEsTUFDQSxnQ0FBZ0M7QUFBQSxRQUM5QixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLG1DQUFtQztBQUFBLFFBQ2pDLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EsbUNBQW1DO0FBQUEsUUFDakMsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSxnQ0FBZ0M7QUFBQSxRQUM5QixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLHdDQUF3QztBQUFBLFFBQ3RDLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EsMENBQTBDO0FBQUEsUUFDeEMsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSx3Q0FBd0M7QUFBQSxRQUN0QyxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLHVDQUF1QztBQUFBLFFBQ3JDLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0Esd0NBQXdDO0FBQUEsUUFDdEMsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSx5Q0FBeUM7QUFBQSxRQUN2QyxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLHdDQUF3QztBQUFBLFFBQ3RDLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EscUNBQXFDO0FBQUEsUUFDbkMsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSwwQ0FBMEM7QUFBQSxRQUN4QyxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLGlDQUFpQztBQUFBLFFBQy9CLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EsOEJBQThCO0FBQUEsUUFDNUIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLDREQUE0RDtBQUFBLFFBQzFELFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EsaUNBQWlDO0FBQUEsUUFDL0IsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSxnQ0FBZ0M7QUFBQSxRQUM5QixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLHFDQUFxQztBQUFBLFFBQ25DLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0Esd0NBQXdDO0FBQUEsUUFDdEMsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLGdDQUFnQztBQUFBLFFBQzlCLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EsZ0NBQWdDO0FBQUEsUUFDOUIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLHlDQUF5QztBQUFBLFFBQ3ZDLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EsK0JBQStCO0FBQUEsUUFDN0IsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLHNDQUFzQztBQUFBLFFBQ3BDLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSx1Q0FBdUM7QUFBQSxRQUNyQyxRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0Esb0NBQW9DO0FBQUEsUUFDbEMsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLHdDQUF3QztBQUFBLFFBQ3RDLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0Esb0NBQW9DO0FBQUEsUUFDbEMsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLCtCQUErQjtBQUFBLFFBQzdCLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLGlDQUFpQztBQUFBLFFBQy9CLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLG1DQUFtQztBQUFBLFFBQ2pDLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSwyQ0FBMkM7QUFBQSxRQUN6QyxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLHVDQUF1QztBQUFBLFFBQ3JDLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSx1QkFBdUI7QUFBQSxRQUNyQixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSw4QkFBOEI7QUFBQSxRQUM1QixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsT0FBTztBQUFBLE1BQ3RCO0FBQUEsTUFDQSw2QkFBNkI7QUFBQSxRQUMzQixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsUUFBUSxVQUFVO0FBQUEsTUFDakM7QUFBQSxNQUNBLHVDQUF1QztBQUFBLFFBQ3JDLFFBQVE7QUFBQSxRQUNSLFNBQVM7QUFBQSxRQUNULGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EseUJBQXlCO0FBQUEsUUFDdkIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLGtDQUFrQztBQUFBLFFBQ2hDLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EsOEJBQThCO0FBQUEsUUFDNUIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLHlCQUF5QjtBQUFBLFFBQ3ZCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSx5Q0FBeUM7QUFBQSxRQUN2QyxRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsOEJBQThCO0FBQUEsUUFDNUIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsaUNBQWlDO0FBQUEsUUFDL0IsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0Esc0NBQXNDO0FBQUEsUUFDcEMsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLDhCQUE4QjtBQUFBLFFBQzVCLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxNQUFNLFNBQVMsU0FBUyxNQUFNO0FBQUEsTUFDN0M7QUFBQSxNQUNBLGlDQUFpQztBQUFBLFFBQy9CLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSwrQkFBK0I7QUFBQSxRQUM3QixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSwrQkFBK0I7QUFBQSxRQUM3QixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSxpQ0FBaUM7QUFBQSxRQUMvQixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSx5Q0FBeUM7QUFBQSxRQUN2QyxRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsZ0RBQWdEO0FBQUEsUUFDOUMsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLG1EQUFtRDtBQUFBLFFBQ2pELFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSx1Q0FBdUM7QUFBQSxRQUNyQyxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLGlDQUFpQztBQUFBLFFBQy9CLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLGtDQUFrQztBQUFBLFFBQ2hDLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLGtDQUFrQztBQUFBLFFBQ2hDLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLG1DQUFtQztBQUFBLFFBQ2pDLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLG9DQUFvQztBQUFBLFFBQ2xDLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLG9DQUFvQztBQUFBLFFBQ2xDLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxrQ0FBa0M7QUFBQSxRQUNoQyxRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsaUNBQWlDO0FBQUEsUUFDL0IsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsdUNBQXVDO0FBQUEsUUFDckMsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsOENBQThDO0FBQUEsUUFDNUMsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsaURBQWlEO0FBQUEsUUFDL0MsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLGtDQUFrQztBQUFBLFFBQ2hDLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSw4QkFBOEI7QUFBQSxRQUM1QixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsK0JBQStCO0FBQUEsUUFDN0IsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLCtCQUErQjtBQUFBLFFBQzdCLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EsOEJBQThCO0FBQUEsUUFDNUIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0Esc0NBQXNDO0FBQUEsUUFDcEMsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLG9DQUFvQztBQUFBLFFBQ2xDLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLDJCQUEyQjtBQUFBLFFBQ3pCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxvQ0FBb0M7QUFBQSxRQUNsQyxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLDBDQUEwQztBQUFBLFFBQ3hDLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EsaUNBQWlDO0FBQUEsUUFDL0IsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLGlDQUFpQztBQUFBLFFBQy9CLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSwrQkFBK0I7QUFBQSxRQUM3QixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsbUNBQW1DO0FBQUEsUUFDakMsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLDBDQUEwQztBQUFBLFFBQ3hDLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EsK0JBQStCO0FBQUEsUUFDN0IsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLDRCQUE0QjtBQUFBLFFBQzFCLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EsK0JBQStCO0FBQUEsUUFDN0IsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSxpQ0FBaUM7QUFBQSxRQUMvQixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSxxQ0FBcUM7QUFBQSxRQUNuQyxRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsbUNBQW1DO0FBQUEsUUFDakMsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsaUNBQWlDO0FBQUEsUUFDL0IsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EscUNBQXFDO0FBQUEsUUFDbkMsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLE9BQU8sS0FBSztBQUFBLE1BQzNCO0FBQUEsTUFDQSwyQkFBMkI7QUFBQSxRQUN6QixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSwyQkFBMkI7QUFBQSxRQUN6QixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSw0QkFBNEI7QUFBQSxRQUMxQixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSwwQkFBMEI7QUFBQSxRQUN4QixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsbURBQW1EO0FBQUEsUUFDakQsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLDREQUE0RDtBQUFBLFFBQzFELFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSx1QkFBdUI7QUFBQSxRQUNyQixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSwyQ0FBMkM7QUFBQSxRQUN6QyxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLDJDQUEyQztBQUFBLFFBQ3pDLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EscUNBQXFDLENBQUM7QUFBQSxNQUN0Qyx3Q0FBd0M7QUFBQSxRQUN0QyxjQUFjO0FBQUEsUUFDZCxZQUFZLENBQUMsTUFBTTtBQUFBLE1BQ3JCO0FBQUEsTUFDQSx1Q0FBdUM7QUFBQSxRQUNyQyxjQUFjO0FBQUEsUUFDZCxZQUFZLENBQUMsT0FBTztBQUFBLE1BQ3RCO0FBQUEsTUFDQSx5Q0FBeUM7QUFBQSxRQUN2QyxjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLG9DQUFvQyxDQUFDO0FBQUEsTUFDckMsc0NBQXNDO0FBQUEsUUFDcEMsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSxvQ0FBb0M7QUFBQSxRQUNsQyxjQUFjO0FBQUEsUUFDZCxZQUFZLENBQUMsT0FBTztBQUFBLE1BQ3RCO0FBQUEsTUFDQSwyQ0FBMkMsQ0FBQztBQUFBLE1BQzVDLG1DQUFtQztBQUFBLFFBQ2pDLGNBQWM7QUFBQSxRQUNkLFlBQVksQ0FBQyxNQUFNO0FBQUEsTUFDckI7QUFBQSxNQUNBLDJDQUEyQyxDQUFDO0FBQUEsTUFDNUMsbUNBQW1DO0FBQUEsUUFDakMsY0FBYztBQUFBLFFBQ2QsWUFBWSxDQUFDLE1BQU07QUFBQSxNQUNyQjtBQUFBLE1BQ0EscUNBQXFDLENBQUM7QUFBQSxNQUN0Qyw0Q0FBNEM7QUFBQSxRQUMxQyxjQUFjO0FBQUEsUUFDZCxZQUFZLENBQUMsU0FBUztBQUFBLE1BQ3hCO0FBQUEsTUFDQSxzQ0FBc0M7QUFBQSxRQUNwQyxjQUFjO0FBQUEsUUFDZCxZQUFZLENBQUMsU0FBUztBQUFBLE1BQ3hCO0FBQUEsTUFDQSx3Q0FBd0MsQ0FBQztBQUFBLE1BQ3pDLG9DQUFvQztBQUFBLFFBQ2xDLGNBQWM7QUFBQSxRQUNkLFlBQVksQ0FBQyxPQUFPO0FBQUEsTUFDdEI7QUFBQSxNQUNBLDJDQUEyQztBQUFBLFFBQ3pDLGNBQWM7QUFBQSxRQUNkLFlBQVksQ0FBQyxRQUFRO0FBQUEsTUFDdkI7QUFBQSxNQUNBLHVDQUF1QyxDQUFDO0FBQUEsTUFDeEMscUNBQXFDLENBQUM7QUFBQSxNQUN0Qyx3Q0FBd0M7QUFBQSxRQUN0QyxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsUUFDZCxZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSxvQ0FBb0M7QUFBQSxRQUNsQyxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsUUFDZCxZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSxxQ0FBcUM7QUFBQSxRQUNuQyxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLHFDQUFxQztBQUFBLFFBQ25DLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EsK0NBQStDO0FBQUEsUUFDN0MsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLFFBQ2QsWUFBWSxDQUFDLE1BQU07QUFBQSxNQUNyQjtBQUFBLE1BQ0Esa0NBQWtDO0FBQUEsUUFDaEMsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSwwQkFBMEI7QUFBQSxRQUN4QixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsT0FBTyxLQUFLO0FBQUEsTUFDM0I7QUFBQSxNQUNBLDBCQUEwQjtBQUFBLFFBQ3hCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxrQ0FBa0M7QUFBQSxRQUNoQyxRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSwrQkFBK0I7QUFBQSxRQUM3QixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSwyQ0FBMkM7QUFBQSxRQUN6QyxRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSxtQ0FBbUM7QUFBQSxRQUNqQyxRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSx1Q0FBdUM7QUFBQSxRQUNyQyxRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSx3Q0FBd0M7QUFBQSxRQUN0QyxRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSxnQ0FBZ0M7QUFBQSxRQUM5QixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSw0QkFBNEI7QUFBQSxRQUMxQixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLDJCQUEyQjtBQUFBLFFBQ3pCLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxRQUNkLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLDhDQUE4QztBQUFBLFFBQzVDLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxRQUNkLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLHdCQUF3QjtBQUFBLFFBQ3RCLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxNQUFNO0FBQUEsTUFDckI7QUFBQSxNQUNBLDJCQUEyQjtBQUFBLFFBQ3pCLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EsaUNBQWlDO0FBQUEsUUFDL0IsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLHVCQUF1QjtBQUFBLFFBQ3JCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSwrQkFBK0I7QUFBQSxRQUM3QixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLHFDQUFxQztBQUFBLFFBQ25DLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLDJCQUEyQjtBQUFBLFFBQ3pCLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxNQUFNO0FBQUEsTUFDckI7QUFBQSxNQUNBLDJCQUEyQjtBQUFBLFFBQ3pCLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxNQUFNO0FBQUEsTUFDckI7QUFBQSxNQUNBLDBCQUEwQjtBQUFBLFFBQ3hCLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLDJCQUEyQjtBQUFBLFFBQ3pCLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLDBCQUEwQjtBQUFBLFFBQ3hCLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLDRCQUE0QjtBQUFBLFFBQzFCLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxPQUFPO0FBQUEsTUFDdEI7QUFBQSxNQUNBLHVCQUF1QjtBQUFBLFFBQ3JCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSw0QkFBNEI7QUFBQSxRQUMxQixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0Esd0NBQXdDO0FBQUEsUUFDdEMsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLFdBQVc7QUFBQSxNQUMxQjtBQUFBLE1BQ0EsOEJBQThCO0FBQUEsUUFDNUIsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSxtQ0FBbUM7QUFBQSxRQUNqQyxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLG1DQUFtQztBQUFBLFFBQ2pDLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0Esb0NBQW9DO0FBQUEsUUFDbEMsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLG1DQUFtQztBQUFBLFFBQ2pDLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSx3Q0FBd0M7QUFBQSxRQUN0QyxRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsK0JBQStCO0FBQUEsUUFDN0IsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsOEJBQThCO0FBQUEsUUFDNUIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLE9BQU8sV0FBVyxVQUFVO0FBQUEsTUFDM0M7QUFBQSxNQUNBLHlDQUF5QztBQUFBLFFBQ3ZDLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLHdDQUF3QztBQUFBLFFBQ3RDLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxJQUFJO0FBQUEsTUFDbkI7QUFBQSxNQUNBLDhCQUE4QjtBQUFBLFFBQzVCLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxPQUFPLEtBQUs7QUFBQSxNQUMzQjtBQUFBLE1BQ0EsNkJBQTZCO0FBQUEsUUFDM0IsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLDRCQUE0QjtBQUFBLFFBQzFCLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLHlDQUF5QztBQUFBLFFBQ3ZDLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0Esd0NBQXdDO0FBQUEsUUFDdEMsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSxtQ0FBbUM7QUFBQSxRQUNqQyxRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSxtQ0FBbUM7QUFBQSxRQUNqQyxRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSxpQ0FBaUM7QUFBQSxRQUMvQixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsaUNBQWlDO0FBQUEsUUFDL0IsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLGlDQUFpQztBQUFBLFFBQy9CLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSwwQ0FBMEM7QUFBQSxRQUN4QyxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLHVEQUF1RDtBQUFBLFFBQ3JELFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EsNkNBQTZDO0FBQUEsUUFDM0MsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSxnREFBZ0Q7QUFBQSxRQUM5QyxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLGdEQUFnRDtBQUFBLFFBQzlDLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EsdURBQXVEO0FBQUEsUUFDckQsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSwyQ0FBMkM7QUFBQSxRQUN6QyxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLHNDQUFzQztBQUFBLFFBQ3BDLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxvQ0FBb0M7QUFBQSxRQUNsQyxRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0Esd0NBQXdDO0FBQUEsUUFDdEMsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSw4Q0FBOEM7QUFBQSxRQUM1QyxRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsOEJBQThCO0FBQUEsUUFDNUIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0Esb0NBQW9DO0FBQUEsUUFDbEMsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLE9BQU8sS0FBSztBQUFBLE1BQzNCO0FBQUEsTUFDQSw0QkFBNEI7QUFBQSxRQUMxQixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSxzQ0FBc0M7QUFBQSxRQUNwQyxRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsbUNBQW1DO0FBQUEsUUFDakMsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLDRCQUE0QjtBQUFBLFFBQzFCLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLDRCQUE0QjtBQUFBLFFBQzFCLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLG9DQUFvQztBQUFBLFFBQ2xDLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSw0QkFBNEI7QUFBQSxRQUMxQixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsaUNBQWlDO0FBQUEsUUFDL0IsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLGlDQUFpQztBQUFBLFFBQy9CLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSw0QkFBNEI7QUFBQSxRQUMxQixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsMkNBQTJDO0FBQUEsUUFDekMsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSwyQ0FBMkM7QUFBQSxRQUN6QyxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLDZDQUE2QztBQUFBLFFBQzNDLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0Esd0NBQXdDO0FBQUEsUUFDdEMsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSwyQ0FBMkM7QUFBQSxRQUN6QyxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLDJDQUEyQztBQUFBLFFBQ3pDLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EsNENBQTRDO0FBQUEsUUFDMUMsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSx5Q0FBeUM7QUFBQSxRQUN2QyxRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsV0FBVztBQUFBLE1BQzFCO0FBQUEsTUFDQSwyQ0FBMkM7QUFBQSxRQUN6QyxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsUUFDZCxZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSwwQkFBMEI7QUFBQSxRQUN4QixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSw0QkFBNEI7QUFBQSxRQUMxQixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSxtQ0FBbUM7QUFBQSxRQUNqQyxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLHVCQUF1QjtBQUFBLFFBQ3JCLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLDhDQUE4QztBQUFBLFFBQzVDLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSw0Q0FBNEM7QUFBQSxRQUMxQyxRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsMkNBQTJDO0FBQUEsUUFDekMsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLHlDQUF5QztBQUFBLFFBQ3ZDLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxnREFBZ0Q7QUFBQSxRQUM5QyxRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsNENBQTRDO0FBQUEsUUFDMUMsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLHlDQUF5QztBQUFBLFFBQ3ZDLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxnREFBZ0Q7QUFBQSxRQUM5QyxRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EseUNBQXlDO0FBQUEsUUFDdkMsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0Esd0JBQXdCO0FBQUEsUUFDdEIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLE1BQU07QUFBQSxNQUNyQjtBQUFBLE1BQ0Esc0NBQXNDO0FBQUEsUUFDcEMsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLE1BQU07QUFBQSxNQUNyQjtBQUFBLE1BQ0EsZ0NBQWdDO0FBQUEsUUFDOUIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLDJCQUEyQjtBQUFBLFFBQ3pCLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxPQUFPLEtBQUs7QUFBQSxNQUMzQjtBQUFBLE1BQ0EsOEJBQThCO0FBQUEsUUFDNUIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLFFBQVE7QUFBQSxNQUN2QjtBQUFBLE1BQ0EsOEJBQThCO0FBQUEsUUFDNUIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLE1BQU07QUFBQSxNQUNyQjtBQUFBLE1BQ0EsZ0NBQWdDO0FBQUEsUUFDOUIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsNkJBQTZCO0FBQUEsUUFDM0IsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsK0JBQStCO0FBQUEsUUFDN0IsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0Esa0NBQWtDO0FBQUEsUUFDaEMsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLE9BQU8sS0FBSztBQUFBLE1BQzNCO0FBQUEsTUFDQSwrQkFBK0I7QUFBQSxRQUM3QixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSw2QkFBNkI7QUFBQSxRQUMzQixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsT0FBTyxLQUFLO0FBQUEsTUFDM0I7QUFBQSxNQUNBLHVCQUF1QjtBQUFBLFFBQ3JCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSw4QkFBOEI7QUFBQSxRQUM1QixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsTUFBTTtBQUFBLE1BQ3JCO0FBQUEsTUFDQSxrQ0FBa0M7QUFBQSxRQUNoQyxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLDhCQUE4QjtBQUFBLFFBQzVCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxnQ0FBZ0M7QUFBQSxRQUM5QixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSx5QkFBeUI7QUFBQSxRQUN2QixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsT0FBTyxLQUFLO0FBQUEsTUFDM0I7QUFBQSxNQUNBLHdCQUF3QjtBQUFBLFFBQ3RCLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxPQUFPLE9BQU8sT0FBTyxLQUFLO0FBQUEsTUFDekM7QUFBQSxNQUNBLG9DQUFvQztBQUFBLFFBQ2xDLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLHVCQUF1QjtBQUFBLFFBQ3JCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxnQ0FBZ0M7QUFBQSxRQUM5QixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLCtCQUErQjtBQUFBLFFBQzdCLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxRQUNkLFlBQVksQ0FBQyxRQUFRO0FBQUEsTUFDdkI7QUFBQSxNQUNBLDBCQUEwQjtBQUFBLFFBQ3hCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSx5Q0FBeUM7QUFBQSxRQUN2QyxRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsNkJBQTZCO0FBQUEsUUFDM0IsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSx1Q0FBdUM7QUFBQSxRQUNyQyxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLHNEQUFzRDtBQUFBLFFBQ3BELFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLDJEQUEyRDtBQUFBLFFBQ3pELFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxRQUNkLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLHdDQUF3QztBQUFBLFFBQ3RDLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0Esd0JBQXdCO0FBQUEsUUFDdEIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLCtCQUErQjtBQUFBLFFBQzdCLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLGtDQUFrQztBQUFBLFFBQ2hDLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLG1DQUFtQztBQUFBLFFBQ2pDLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLCtCQUErQjtBQUFBLFFBQzdCLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLG1DQUFtQztBQUFBLFFBQ2pDLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLG1DQUFtQztBQUFBLFFBQ2pDLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLGlDQUFpQztBQUFBLFFBQy9CLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLG9DQUFvQztBQUFBLFFBQ2xDLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxTQUFTO0FBQUEsTUFDeEI7QUFBQSxNQUNBLHNDQUFzQztBQUFBLFFBQ3BDLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLDhDQUE4QztBQUFBLFFBQzVDLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EsNENBQTRDO0FBQUEsUUFDMUMsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSwwQ0FBMEM7QUFBQSxRQUN4QyxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLG1DQUFtQztBQUFBLFFBQ2pDLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSw4QkFBOEI7QUFBQSxRQUM1QixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLHlDQUF5QztBQUFBLFFBQ3ZDLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0Esc0NBQXNDO0FBQUEsUUFDcEMsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLHVCQUF1QjtBQUFBLFFBQ3JCLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLHVCQUF1QjtBQUFBLFFBQ3JCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSw2QkFBNkI7QUFBQSxRQUMzQixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsK0JBQStCO0FBQUEsUUFDN0IsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0Esc0NBQXNDO0FBQUEsUUFDcEMsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLE9BQU87QUFBQSxNQUN0QjtBQUFBLE1BQ0EsNENBQTRDO0FBQUEsUUFDMUMsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLHNDQUFzQztBQUFBLFFBQ3BDLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSwyQkFBMkI7QUFBQSxRQUN6QixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0Esd0JBQXdCO0FBQUEsUUFDdEIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0Esd0JBQXdCO0FBQUEsUUFDdEIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsOEJBQThCO0FBQUEsUUFDNUIsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSxrQ0FBa0M7QUFBQSxRQUNoQyxRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSxrQ0FBa0M7QUFBQSxRQUNoQyxRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSxpREFBaUQ7QUFBQSxRQUMvQyxRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EscURBQXFEO0FBQUEsUUFDbkQsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLDhCQUE4QjtBQUFBLFFBQzVCLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EsdUJBQXVCO0FBQUEsUUFDckIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0Esd0NBQXdDO0FBQUEsUUFDdEMsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLG1EQUFtRDtBQUFBLFFBQ2pELFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSw4QkFBOEI7QUFBQSxRQUM1QixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSw4QkFBOEI7QUFBQSxRQUM1QixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSw4QkFBOEI7QUFBQSxRQUM1QixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSw4QkFBOEI7QUFBQSxRQUM1QixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSw4QkFBOEI7QUFBQSxRQUM1QixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSw4QkFBOEI7QUFBQSxRQUM1QixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSw4QkFBOEI7QUFBQSxRQUM1QixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSx3QkFBd0I7QUFBQSxRQUN0QixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0Esc0NBQXNDO0FBQUEsUUFDcEMsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0Esc0NBQXNDO0FBQUEsUUFDcEMsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0Esc0NBQXNDO0FBQUEsUUFDcEMsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLDJDQUEyQztBQUFBLFFBQ3pDLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSwwQ0FBMEM7QUFBQSxRQUN4QyxRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsNENBQTRDO0FBQUEsUUFDMUMsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLDBDQUEwQztBQUFBLFFBQ3hDLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSwwQ0FBMEM7QUFBQSxRQUN4QyxRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsMENBQTBDO0FBQUEsUUFDeEMsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLGlDQUFpQztBQUFBLFFBQy9CLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxtQ0FBbUM7QUFBQSxRQUNqQyxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsUUFDZCxZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSxrQ0FBa0M7QUFBQSxRQUNoQyxRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsK0JBQStCO0FBQUEsUUFDN0IsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsMEJBQTBCO0FBQUEsUUFDeEIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLHFDQUFxQztBQUFBLFFBQ25DLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLHVDQUF1QztBQUFBLFFBQ3JDLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSw0QkFBNEI7QUFBQSxRQUMxQixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsUUFDZCxZQUFZLENBQUMsT0FBTyxPQUFPLE9BQU8sT0FBTyxPQUFPLEtBQUs7QUFBQSxNQUN2RDtBQUFBLE1BQ0Esa0RBQWtEO0FBQUEsUUFDaEQsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLE1BQU07QUFBQSxNQUNyQjtBQUFBLE1BQ0EseURBQXlEO0FBQUEsUUFDdkQsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLE1BQU07QUFBQSxNQUNyQjtBQUFBLE1BQ0Esa0RBQWtEO0FBQUEsUUFDaEQsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLE1BQU07QUFBQSxNQUNyQjtBQUFBLE1BQ0EscURBQXFEO0FBQUEsUUFDbkQsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLE1BQU07QUFBQSxNQUNyQjtBQUFBLE1BQ0EsaUNBQWlDO0FBQUEsUUFDL0IsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLFFBQ2QsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsK0JBQStCO0FBQUEsUUFDN0IsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsMEJBQTBCO0FBQUEsUUFDeEIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsMEJBQTBCO0FBQUEsUUFDeEIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EseUNBQXlDO0FBQUEsUUFDdkMsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSxrQ0FBa0M7QUFBQSxRQUNoQyxRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsTUFBTTtBQUFBLE1BQ3JCO0FBQUEsTUFDQSwrQkFBK0I7QUFBQSxRQUM3QixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLDhCQUE4QjtBQUFBLFFBQzVCLGNBQWM7QUFBQSxRQUNkLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLGtEQUFrRDtBQUFBLFFBQ2hELFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxpQ0FBaUM7QUFBQSxRQUMvQixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSw4QkFBOEI7QUFBQSxRQUM1QixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSw4Q0FBOEM7QUFBQSxRQUM1QyxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLGlDQUFpQztBQUFBLFFBQy9CLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxRQUNkLFlBQVksQ0FBQyxPQUFPLE9BQU8sS0FBSztBQUFBLE1BQ2xDO0FBQUEsTUFDQSx1REFBdUQ7QUFBQSxRQUNyRCxRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsTUFBTTtBQUFBLE1BQ3JCO0FBQUEsTUFDQSw4REFBOEQ7QUFBQSxRQUM1RCxRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsTUFBTTtBQUFBLE1BQ3JCO0FBQUEsTUFDQSx1REFBdUQ7QUFBQSxRQUNyRCxRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsTUFBTTtBQUFBLE1BQ3JCO0FBQUEsTUFDQSwyREFBMkQ7QUFBQSxRQUN6RCxRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsTUFBTTtBQUFBLE1BQ3JCO0FBQUEsTUFDQSwwREFBMEQ7QUFBQSxRQUN4RCxRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsTUFBTTtBQUFBLE1BQ3JCO0FBQUEsTUFDQSxrREFBa0Q7QUFBQSxRQUNoRCxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLCtDQUErQztBQUFBLFFBQzdDLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EsNENBQTRDO0FBQUEsUUFDMUMsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSw4QkFBOEI7QUFBQSxRQUM1QixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsT0FBTyxLQUFLO0FBQUEsTUFDM0I7QUFBQSxNQUNBLDJCQUEyQjtBQUFBLFFBQ3pCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxtQ0FBbUM7QUFBQSxRQUNqQyxZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSw0Q0FBNEM7QUFBQSxRQUMxQyxRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsNkNBQTZDO0FBQUEsUUFDM0MsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLDZDQUE2QztBQUFBLFFBQzNDLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxzQ0FBc0M7QUFBQSxRQUNwQyxRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EseUNBQXlDO0FBQUEsUUFDdkMsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLHFDQUFxQztBQUFBLFFBQ25DLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSwyQ0FBMkM7QUFBQSxRQUN6QyxRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsdUNBQXVDO0FBQUEsUUFDckMsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLG9EQUFvRDtBQUFBLFFBQ2xELFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxNQUFNO0FBQUEsTUFDckI7QUFBQSxNQUNBLG9EQUFvRDtBQUFBLFFBQ2xELFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxNQUFNO0FBQUEsTUFDckI7QUFBQSxNQUNBLDRCQUE0QjtBQUFBLFFBQzFCLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxPQUFPLE9BQU8sT0FBTyxLQUFLO0FBQUEsTUFDekM7QUFBQSxNQUNBLDBCQUEwQjtBQUFBLFFBQ3hCLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLGtDQUFrQztBQUFBLFFBQ2hDLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxRQUNkLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLGtDQUFrQztBQUFBLFFBQ2hDLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSx3QkFBd0I7QUFBQSxRQUN0QixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsTUFBTTtBQUFBLE1BQ3JCO0FBQUEsTUFDQSwyQkFBMkI7QUFBQSxRQUN6QixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EseUJBQXlCO0FBQUEsUUFDdkIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLG1DQUFtQztBQUFBLFFBQ2pDLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSx1Q0FBdUM7QUFBQSxRQUNyQyxRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsOEJBQThCO0FBQUEsUUFDNUIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLDRCQUE0QjtBQUFBLFFBQzFCLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLCtCQUErQjtBQUFBLFFBQzdCLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxNQUFNO0FBQUEsTUFDckI7QUFBQSxNQUNBLHlCQUF5QjtBQUFBLFFBQ3ZCLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxRQUFRO0FBQUEsTUFDdkI7QUFBQSxNQUNBLHNDQUFzQztBQUFBLFFBQ3BDLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EsK0NBQStDO0FBQUEsUUFDN0MsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLCtDQUErQztBQUFBLFFBQzdDLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EsOENBQThDO0FBQUEsUUFDNUMsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLFFBQ2QsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0Esd0RBQXdEO0FBQUEsUUFDdEQsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSwrQkFBK0I7QUFBQSxRQUM3QixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsaUNBQWlDO0FBQUEsUUFDL0IsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLG1DQUFtQztBQUFBLFFBQ2pDLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EsaUNBQWlDO0FBQUEsUUFDL0IsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLDJCQUEyQjtBQUFBLFFBQ3pCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSwwQkFBMEI7QUFBQSxRQUN4QixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EscUNBQXFDO0FBQUEsUUFDbkMsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0Esd0JBQXdCO0FBQUEsUUFDdEIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLHNDQUFzQztBQUFBLFFBQ3BDLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxxQ0FBcUM7QUFBQSxRQUNuQyxRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0Esd0JBQXdCO0FBQUEsUUFDdEIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLE9BQU8sTUFBTTtBQUFBLE1BQzVCO0FBQUEsTUFDQSxzQ0FBc0M7QUFBQSxRQUNwQyxRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSxtQ0FBbUM7QUFBQSxRQUNqQyxRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSxnQ0FBZ0M7QUFBQSxRQUM5QixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSxrQ0FBa0M7QUFBQSxRQUNoQyxRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EscUNBQXFDO0FBQUEsUUFDbkMsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLG1DQUFtQztBQUFBLFFBQ2pDLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EseUNBQXlDO0FBQUEsUUFDdkMsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSw0Q0FBNEM7QUFBQSxRQUMxQyxRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0Esd0NBQXdDO0FBQUEsUUFDdEMsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLHNDQUFzQztBQUFBLFFBQ3BDLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EsZ0RBQWdEO0FBQUEsUUFDOUMsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSx1Q0FBdUM7QUFBQSxRQUNyQyxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsUUFDZCxZQUFZLENBQUMsSUFBSTtBQUFBLE1BQ25CO0FBQUEsTUFDQSxxQ0FBcUM7QUFBQSxRQUNuQyxRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsT0FBTztBQUFBLE1BQ3RCO0FBQUEsTUFDQSxnREFBZ0Q7QUFBQSxRQUM5QyxRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsUUFBUTtBQUFBLE1BQ3ZCO0FBQUEsTUFDQSw2QkFBNkI7QUFBQSxRQUMzQixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsbUNBQW1DO0FBQUEsUUFDakMsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLGlDQUFpQztBQUFBLFFBQy9CLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0Esc0NBQXNDO0FBQUEsUUFDcEMsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLE1BQU07QUFBQSxNQUNyQjtBQUFBLE1BQ0EsdUNBQXVDO0FBQUEsUUFDckMsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLE1BQU07QUFBQSxNQUNyQjtBQUFBLE1BQ0EsZ0NBQWdDO0FBQUEsUUFDOUIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsZ0NBQWdDO0FBQUEsUUFDOUIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsZ0NBQWdDO0FBQUEsUUFDOUIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsMkNBQTJDO0FBQUEsUUFDekMsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLDJDQUEyQztBQUFBLFFBQ3pDLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSwrQ0FBK0M7QUFBQSxRQUM3QyxRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsMkNBQTJDO0FBQUEsUUFDekMsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLCtDQUErQztBQUFBLFFBQzdDLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxpQ0FBaUM7QUFBQSxRQUMvQixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0Esc0NBQXNDO0FBQUEsUUFDcEMsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSxzQ0FBc0M7QUFBQSxRQUNwQyxRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsMkNBQTJDO0FBQUEsUUFDekMsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLDRDQUE0QztBQUFBLFFBQzFDLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLHFEQUFxRDtBQUFBLFFBQ25ELFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLCtDQUErQztBQUFBLFFBQzdDLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLDhDQUE4QztBQUFBLFFBQzVDLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLHVEQUF1RDtBQUFBLFFBQ3JELFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxNQUFNO0FBQUEsTUFDckI7QUFBQSxNQUNBLCtDQUErQztBQUFBLFFBQzdDLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxRQUNkLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLHdEQUF3RDtBQUFBLFFBQ3RELFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLDRDQUE0QztBQUFBLFFBQzFDLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLHFEQUFxRDtBQUFBLFFBQ25ELFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLG1EQUFtRDtBQUFBLFFBQ2pELFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxRQUNkLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLDREQUE0RDtBQUFBLFFBQzFELFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLGtEQUFrRDtBQUFBLFFBQ2hELFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxRQUNkLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLDJEQUEyRDtBQUFBLFFBQ3pELFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLDJDQUEyQztBQUFBLFFBQ3pDLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxRQUNkLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLGtEQUFrRDtBQUFBLFFBQ2hELFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLDJEQUEyRDtBQUFBLFFBQ3pELFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxvREFBb0Q7QUFBQSxRQUNsRCxRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSwrQ0FBK0M7QUFBQSxRQUM3QyxRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSx1QkFBdUI7QUFBQSxRQUNyQixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsNEJBQTRCO0FBQUEsUUFDMUIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLDhDQUE4QztBQUFBLFFBQzVDLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0Esa0NBQWtDO0FBQUEsUUFDaEMsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSxrREFBa0Q7QUFBQSxRQUNoRCxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLG1EQUFtRDtBQUFBLFFBQ2pELFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EsdUNBQXVDO0FBQUEsUUFDckMsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLG9DQUFvQztBQUFBLFFBQ2xDLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0Esc0NBQXNDO0FBQUEsUUFDcEMsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSxnREFBZ0Q7QUFBQSxRQUM5QyxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLGdDQUFnQztBQUFBLFFBQzlCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSx3Q0FBd0M7QUFBQSxRQUN0QyxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLG9DQUFvQztBQUFBLFFBQ2xDLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0Esc0NBQXNDO0FBQUEsUUFDcEMsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSx3Q0FBd0M7QUFBQSxRQUN0QyxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLDhCQUE4QjtBQUFBLFFBQzVCLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxJQUFJO0FBQUEsTUFDbkI7QUFBQSxNQUNBLG1DQUFtQztBQUFBLFFBQ2pDLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSx5Q0FBeUM7QUFBQSxRQUN2QyxRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsMENBQTBDO0FBQUEsUUFDeEMsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLGdFQUFnRTtBQUFBLFFBQzlELFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EsNkNBQTZDO0FBQUEsUUFDM0MsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSxxQ0FBcUM7QUFBQSxRQUNuQyxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLGtDQUFrQztBQUFBLFFBQ2hDLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSw4Q0FBOEM7QUFBQSxRQUM1QyxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLGlEQUFpRDtBQUFBLFFBQy9DLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxvQ0FBb0M7QUFBQSxRQUNsQyxRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0Esc0NBQXNDO0FBQUEsUUFDcEMsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSxrQ0FBa0M7QUFBQSxRQUNoQyxRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EscURBQXFEO0FBQUEsUUFDbkQsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLG1EQUFtRDtBQUFBLFFBQ2pELFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EsdUNBQXVDO0FBQUEsUUFDckMsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSxrQ0FBa0M7QUFBQSxRQUNoQyxRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsNENBQTRDO0FBQUEsUUFDMUMsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSwrQ0FBK0M7QUFBQSxRQUM3QyxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLG1DQUFtQztBQUFBLFFBQ2pDLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EsMkNBQTJDO0FBQUEsUUFDekMsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSwwQ0FBMEM7QUFBQSxRQUN4QyxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLDJCQUEyQjtBQUFBLFFBQ3pCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSw0QkFBNEI7QUFBQSxRQUMxQixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsK0JBQStCO0FBQUEsUUFDN0IsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLFFBQ2QsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0Esb0NBQW9DO0FBQUEsUUFDbEMsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSw0Q0FBNEM7QUFBQSxRQUMxQyxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLGtDQUFrQztBQUFBLFFBQ2hDLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxrQ0FBa0M7QUFBQSxRQUNoQyxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLGlDQUFpQztBQUFBLFFBQy9CLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSwrQkFBK0I7QUFBQSxRQUM3QixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLHdEQUF3RDtBQUFBLFFBQ3RELFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EsNENBQTRDO0FBQUEsUUFDMUMsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSxzQ0FBc0M7QUFBQSxRQUNwQyxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLHFEQUFxRDtBQUFBLFFBQ25ELFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EseURBQXlEO0FBQUEsUUFDdkQsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSw0QkFBNEI7QUFBQSxRQUMxQixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsMENBQTBDO0FBQUEsUUFDeEMsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSwwQ0FBMEM7QUFBQSxRQUN4QyxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLG1DQUFtQztBQUFBLFFBQ2pDLFFBQVE7QUFBQSxRQUNSLFNBQVM7QUFBQSxRQUNULGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0Esa0NBQWtDO0FBQUEsUUFDaEMsUUFBUTtBQUFBLFFBQ1IsU0FBUztBQUFBLFFBQ1QsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSxvQ0FBb0M7QUFBQSxRQUNsQyxRQUFRO0FBQUEsUUFDUixTQUFTO0FBQUEsUUFDVCxjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLG9DQUFvQztBQUFBLFFBQ2xDLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSw0QkFBNEI7QUFBQSxRQUMxQixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsZ0NBQWdDO0FBQUEsUUFDOUIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLGdDQUFnQztBQUFBLFFBQzlCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSwrQkFBK0I7QUFBQSxRQUM3QixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsZ0NBQWdDO0FBQUEsUUFDOUIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLGdDQUFnQztBQUFBLFFBQzlCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxrQ0FBa0M7QUFBQSxRQUNoQyxRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EscUNBQXFDO0FBQUEsUUFDbkMsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLFFBQ2QsWUFBWSxDQUFDLE1BQU07QUFBQSxNQUNyQjtBQUFBLE1BQ0Esd0NBQXdDO0FBQUEsUUFDdEMsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLCtCQUErQjtBQUFBLFFBQzdCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSwyQ0FBMkM7QUFBQSxRQUN6QyxRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSwwQ0FBMEM7QUFBQSxRQUN4QyxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsUUFDZCxZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSxzQ0FBc0M7QUFBQSxRQUNwQyxRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EscUNBQXFDO0FBQUEsUUFDbkMsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSx1RUFBdUU7QUFBQSxRQUNyRSxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLHlFQUF5RTtBQUFBLFFBQ3ZFLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EsNkRBQTZEO0FBQUEsUUFDM0QsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSxxRUFBcUU7QUFBQSxRQUNuRSxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLDJFQUEyRTtBQUFBLFFBQ3pFLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EsNkVBQTZFO0FBQUEsUUFDM0UsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSwyRUFBMkU7QUFBQSxRQUN6RSxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLDZFQUE2RTtBQUFBLFFBQzNFLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EsNEVBQTRFO0FBQUEsUUFDMUUsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSx5RUFBeUU7QUFBQSxRQUN2RSxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLG1GQUFtRjtBQUFBLFFBQ2pGLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EsNkVBQTZFO0FBQUEsUUFDM0UsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSxrRkFBa0Y7QUFBQSxRQUNoRixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLGdGQUFnRjtBQUFBLFFBQzlFLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EsK0VBQStFO0FBQUEsUUFDN0UsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSw2RUFBNkU7QUFBQSxRQUMzRSxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsUUFDZCxZQUFZLENBQUMsTUFBTTtBQUFBLE1BQ3JCO0FBQUEsTUFDQSxzRkFBc0Y7QUFBQSxRQUNwRixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLDhFQUE4RTtBQUFBLFFBQzVFLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0Esc0VBQXNFO0FBQUEsUUFDcEUsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLE1BQU07QUFBQSxNQUNyQjtBQUFBLE1BQ0EsMEVBQTBFO0FBQUEsUUFDeEUsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSxnRkFBZ0Y7QUFBQSxRQUM5RSxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLGdGQUFnRjtBQUFBLFFBQzlFLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EsMEVBQTBFO0FBQUEsUUFDeEUsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLE1BQU07QUFBQSxNQUNyQjtBQUFBLE1BQ0EsbUZBQW1GO0FBQUEsUUFDakYsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSxvRkFBb0Y7QUFBQSxRQUNsRixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLGdGQUFnRjtBQUFBLFFBQzlFLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EseUVBQXlFO0FBQUEsUUFDdkUsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSx5RUFBeUU7QUFBQSxRQUN2RSxRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsTUFBTTtBQUFBLE1BQ3JCO0FBQUEsTUFDQSxrRkFBa0Y7QUFBQSxRQUNoRixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLDhFQUE4RTtBQUFBLFFBQzVFLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EsNkVBQTZFO0FBQUEsUUFDM0UsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSw4RUFBOEU7QUFBQSxRQUM1RSxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLDRFQUE0RTtBQUFBLFFBQzFFLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EsK0VBQStFO0FBQUEsUUFDN0UsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSwrRUFBK0U7QUFBQSxRQUM3RSxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLGdGQUFnRjtBQUFBLFFBQzlFLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0Esd0ZBQXdGO0FBQUEsUUFDdEYsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSxxRkFBcUY7QUFBQSxRQUNuRixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLDhFQUE4RTtBQUFBLFFBQzVFLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EsOEVBQThFO0FBQUEsUUFDNUUsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSxtRkFBbUY7QUFBQSxRQUNqRixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLCtFQUErRTtBQUFBLFFBQzdFLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EsaUZBQWlGO0FBQUEsUUFDL0UsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSxxRUFBcUU7QUFBQSxRQUNuRSxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsUUFDZCxZQUFZLENBQUMsTUFBTTtBQUFBLE1BQ3JCO0FBQUEsTUFDQSw4RUFBOEU7QUFBQSxRQUM1RSxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLGlGQUFpRjtBQUFBLFFBQy9FLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EsMEVBQTBFO0FBQUEsUUFDeEUsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSx5RUFBeUU7QUFBQSxRQUN2RSxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLG9GQUFvRjtBQUFBLFFBQ2xGLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0Esd0VBQXdFO0FBQUEsUUFDdEUsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLE1BQU07QUFBQSxNQUNyQjtBQUFBLE1BQ0EsaUZBQWlGO0FBQUEsUUFDL0UsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSw2RUFBNkU7QUFBQSxRQUMzRSxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLHdGQUF3RjtBQUFBLFFBQ3RGLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EsNkVBQTZFO0FBQUEsUUFDM0UsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSwyREFBMkQ7QUFBQSxRQUN6RCxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLG1FQUFtRTtBQUFBLFFBQ2pFLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EsNERBQTREO0FBQUEsUUFDMUQsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLCtFQUErRTtBQUFBLFFBQzdFLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EsMkVBQTJFO0FBQUEsUUFDekUsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLFFBQ2QsWUFBWSxDQUFDLE1BQU07QUFBQSxNQUNyQjtBQUFBLE1BQ0Esd0ZBQXdGO0FBQUEsUUFDdEYsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSxvRkFBb0Y7QUFBQSxRQUNsRixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLCtFQUErRTtBQUFBLFFBQzdFLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EsZ0ZBQWdGO0FBQUEsUUFDOUUsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSw2RUFBNkU7QUFBQSxRQUMzRSxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLGdGQUFnRjtBQUFBLFFBQzlFLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EsZ0ZBQWdGO0FBQUEsUUFDOUUsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSwrRUFBK0U7QUFBQSxRQUM3RSxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLDZFQUE2RTtBQUFBLFFBQzNFLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EsMkVBQTJFO0FBQUEsUUFDekUsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLE1BQU07QUFBQSxNQUNyQjtBQUFBLE1BQ0Esb0ZBQW9GO0FBQUEsUUFDbEYsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSxrRkFBa0Y7QUFBQSxRQUNoRixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLDhEQUE4RDtBQUFBLFFBQzVELFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EsNkVBQTZFO0FBQUEsUUFDM0UsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSw0REFBNEQ7QUFBQSxRQUMxRCxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLHdDQUF3QztBQUFBLFFBQ3RDLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EsaUNBQWlDO0FBQUEsUUFDL0IsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLGlDQUFpQztBQUFBLFFBQy9CLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSwwQ0FBMEM7QUFBQSxRQUN4QyxRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSwrQkFBK0I7QUFBQSxRQUM3QixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsMkJBQTJCO0FBQUEsUUFDekIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLElBQUk7QUFBQSxNQUNuQjtBQUFBLE1BQ0Esa0NBQWtDO0FBQUEsUUFDaEMsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsbUNBQW1DO0FBQUEsUUFDakMsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSxtQ0FBbUM7QUFBQSxRQUNqQyxRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0Esa0NBQWtDO0FBQUEsUUFDaEMsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSx3QkFBd0I7QUFBQSxRQUN0QixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsT0FBTyxPQUFPLE1BQU07QUFBQSxNQUNuQztBQUFBLE1BQ0EsMkJBQTJCO0FBQUEsUUFDekIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLDRCQUE0QjtBQUFBLFFBQzFCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSw4QkFBOEI7QUFBQSxRQUM1QixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0Esb0NBQW9DO0FBQUEsUUFDbEMsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLDZCQUE2QjtBQUFBLFFBQzNCLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLHdCQUF3QjtBQUFBLFFBQ3RCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSw2QkFBNkI7QUFBQSxRQUMzQixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSw2QkFBNkI7QUFBQSxRQUMzQixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSxnREFBZ0Q7QUFBQSxRQUM5QyxRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsMEJBQTBCO0FBQUEsUUFDeEIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLE1BQU07QUFBQSxNQUNyQjtBQUFBLE1BQ0EsOEJBQThCO0FBQUEsUUFDNUIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLElBQUk7QUFBQSxNQUNuQjtBQUFBLE1BQ0EsK0NBQStDO0FBQUEsUUFDN0MsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSwrQkFBK0I7QUFBQSxRQUM3QixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSxpQ0FBaUM7QUFBQSxRQUMvQixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSxtQ0FBbUM7QUFBQSxRQUNqQyxRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsaUNBQWlDO0FBQUEsUUFDL0IsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLG1DQUFtQztBQUFBLFFBQ2pDLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxrQ0FBa0M7QUFBQSxRQUNoQyxRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0Esb0NBQW9DO0FBQUEsUUFDbEMsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLDRCQUE0QjtBQUFBLFFBQzFCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxzQ0FBc0M7QUFBQSxRQUNwQyxRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSxxQ0FBcUM7QUFBQSxRQUNuQyxZQUFZLENBQUMsVUFBVTtBQUFBLE1BQ3pCO0FBQUEsTUFDQSxtQ0FBbUM7QUFBQSxRQUNqQyxZQUFZLENBQUMsT0FBTztBQUFBLE1BQ3RCO0FBQUEsTUFDQSxtQ0FBbUM7QUFBQSxRQUNqQyxZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSxvQ0FBb0M7QUFBQSxRQUNsQyxRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSx3QkFBd0I7QUFBQSxRQUN0QixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0Esa0NBQWtDO0FBQUEsUUFDaEMsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLHlDQUF5QztBQUFBLFFBQ3ZDLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLDZCQUE2QjtBQUFBLFFBQzNCLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxNQUFNO0FBQUEsTUFDckI7QUFBQSxNQUNBLG1DQUFtQztBQUFBLFFBQ2pDLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSx1Q0FBdUM7QUFBQSxRQUNyQyxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsUUFDZCxZQUFZLENBQUMsTUFBTTtBQUFBLE1BQ3JCO0FBQUEsTUFDQSx5Q0FBeUM7QUFBQSxRQUN2QyxRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0Esa0NBQWtDO0FBQUEsUUFDaEMsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLHFDQUFxQztBQUFBLFFBQ25DLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxPQUFPLE9BQU8sT0FBTyxPQUFPLE9BQU8sS0FBSztBQUFBLE1BQ3ZEO0FBQUEsTUFDQSx5Q0FBeUM7QUFBQSxRQUN2QyxRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0Esb0NBQW9DO0FBQUEsUUFDbEMsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSxvQ0FBb0M7QUFBQSxRQUNsQyxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLDBDQUEwQztBQUFBLFFBQ3hDLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EsK0NBQStDO0FBQUEsUUFDN0MsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSwrQ0FBK0M7QUFBQSxRQUM3QyxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLGlEQUFpRDtBQUFBLFFBQy9DLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EsaURBQWlEO0FBQUEsUUFDL0MsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSx5Q0FBeUM7QUFBQSxRQUN2QyxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLDJDQUEyQztBQUFBLFFBQ3pDLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EsZ0RBQWdEO0FBQUEsUUFDOUMsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSxzREFBc0Q7QUFBQSxRQUNwRCxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLHdEQUF3RDtBQUFBLFFBQ3RELFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EsaURBQWlEO0FBQUEsUUFDL0MsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSxrREFBa0Q7QUFBQSxRQUNoRCxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLHFEQUFxRDtBQUFBLFFBQ25ELFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EsaUNBQWlDO0FBQUEsUUFDL0IsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLHlCQUF5QjtBQUFBLFFBQ3ZCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSx1QkFBdUI7QUFBQSxRQUNyQixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSwrQkFBK0I7QUFBQSxRQUM3QixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSxzQ0FBc0M7QUFBQSxRQUNwQyxRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSwwQ0FBMEM7QUFBQSxRQUN4QyxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsUUFDZCxZQUFZLENBQUMsVUFBVTtBQUFBLE1BQ3pCO0FBQUEsTUFDQSwyQkFBMkI7QUFBQSxRQUN6QixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0Esb0NBQW9DO0FBQUEsUUFDbEMsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLG1DQUFtQztBQUFBLFFBQ2pDLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxnQ0FBZ0M7QUFBQSxRQUM5QixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLGtDQUFrQztBQUFBLFFBQ2hDLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxZQUFZO0FBQUEsTUFDM0I7QUFBQSxNQUNBLDJCQUEyQjtBQUFBLFFBQ3pCLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLGdDQUFnQztBQUFBLFFBQzlCLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxJQUFJO0FBQUEsTUFDbkI7QUFBQSxNQUNBLG9DQUFvQztBQUFBLFFBQ2xDLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxNQUFNO0FBQUEsTUFDckI7QUFBQSxNQUNBLHNDQUFzQztBQUFBLFFBQ3BDLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxRQUNkLFlBQVksQ0FBQyxRQUFRO0FBQUEsTUFDdkI7QUFBQSxNQUNBLDJCQUEyQjtBQUFBLFFBQ3pCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxtQ0FBbUM7QUFBQSxRQUNqQyxRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EseUJBQXlCO0FBQUEsUUFDdkIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLHdDQUF3QztBQUFBLFFBQ3RDLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxJQUFJO0FBQUEsTUFDbkI7QUFBQSxNQUNBLHVCQUF1QjtBQUFBLFFBQ3JCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSwyQkFBMkI7QUFBQSxRQUN6QixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsNEJBQTRCO0FBQUEsUUFDMUIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLDJCQUEyQjtBQUFBLFFBQ3pCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSw4QkFBOEI7QUFBQSxRQUM1QixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsOEJBQThCO0FBQUEsUUFDNUIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLDhCQUE4QjtBQUFBLFFBQzVCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSw4QkFBOEI7QUFBQSxRQUM1QixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsOEJBQThCO0FBQUEsUUFDNUIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLDhCQUE4QjtBQUFBLFFBQzVCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSw4QkFBOEI7QUFBQSxRQUM1QixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsK0JBQStCO0FBQUEsUUFDN0IsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLDhCQUE4QjtBQUFBLFFBQzVCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSw2Q0FBNkM7QUFBQSxRQUMzQyxRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsNENBQTRDO0FBQUEsUUFDMUMsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLDJCQUEyQjtBQUFBLFFBQ3pCLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLDZCQUE2QjtBQUFBLFFBQzNCLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0Esd0JBQXdCO0FBQUEsUUFDdEIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLE1BQU07QUFBQSxNQUNyQjtBQUFBLE1BQ0Esd0JBQXdCO0FBQUEsUUFDdEIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLE1BQU07QUFBQSxNQUNyQjtBQUFBLE1BQ0Esd0JBQXdCO0FBQUEsUUFDdEIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLE1BQU07QUFBQSxNQUNyQjtBQUFBLE1BQ0EsbUNBQW1DO0FBQUEsUUFDakMsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLDJDQUEyQztBQUFBLFFBQ3pDLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLCtDQUErQztBQUFBLFFBQzdDLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLDhDQUE4QztBQUFBLFFBQzVDLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLDBDQUEwQztBQUFBLFFBQ3hDLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLG1DQUFtQztBQUFBLFFBQ2pDLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EsaUNBQWlDO0FBQUEsUUFDL0IsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSx1QkFBdUI7QUFBQSxRQUNyQixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsdUJBQXVCO0FBQUEsUUFDckIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLGtDQUFrQztBQUFBLFFBQ2hDLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxzQ0FBc0M7QUFBQSxRQUNwQyxRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsT0FBTyxNQUFNO0FBQUEsTUFDNUI7QUFBQSxNQUNBLDhCQUE4QjtBQUFBLFFBQzVCLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EsZ0NBQWdDO0FBQUEsUUFDOUIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLHdCQUF3QjtBQUFBLFFBQ3RCLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLGtDQUFrQztBQUFBLFFBQ2hDLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxpQ0FBaUM7QUFBQSxRQUMvQixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsU0FBUztBQUFBLE1BQ3hCO0FBQUEsTUFDQSwyQ0FBMkM7QUFBQSxRQUN6QyxRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0Esc0NBQXNDO0FBQUEsUUFDcEMsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLCtDQUErQztBQUFBLFFBQzdDLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxRQUNkLFlBQVksQ0FBQyxJQUFJO0FBQUEsTUFDbkI7QUFBQSxNQUNBLG1EQUFtRDtBQUFBLFFBQ2pELFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxtQ0FBbUM7QUFBQSxRQUNqQyxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsUUFDZCxZQUFZLENBQUMsUUFBUSxNQUFNO0FBQUEsTUFDN0I7QUFBQSxNQUNBLGdDQUFnQztBQUFBLFFBQzlCLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLGdDQUFnQztBQUFBLFFBQzlCLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLDJCQUEyQjtBQUFBLFFBQ3pCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSwyQkFBMkI7QUFBQSxRQUN6QixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsMkJBQTJCO0FBQUEsUUFDekIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLDJCQUEyQjtBQUFBLFFBQ3pCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxxQ0FBcUM7QUFBQSxRQUNuQyxRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSxxQ0FBcUM7QUFBQSxRQUNuQyxRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSx3Q0FBd0M7QUFBQSxRQUN0QyxRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSxxQ0FBcUM7QUFBQSxRQUNuQyxRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSx1Q0FBdUM7QUFBQSxRQUNyQyxRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsT0FBTyxLQUFLO0FBQUEsTUFDM0I7QUFBQSxNQUNBLDhDQUE4QztBQUFBLFFBQzVDLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLHFDQUFxQztBQUFBLFFBQ25DLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxPQUFPO0FBQUEsTUFDdEI7QUFBQSxNQUNBLHVDQUF1QztBQUFBLFFBQ3JDLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxJQUFJO0FBQUEsTUFDbkI7QUFBQSxNQUNBLGlDQUFpQztBQUFBLFFBQy9CLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxnQ0FBZ0M7QUFBQSxRQUM5QixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsUUFDZCxZQUFZLENBQUMsTUFBTTtBQUFBLE1BQ3JCO0FBQUEsTUFDQSxnQ0FBZ0M7QUFBQSxRQUM5QixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSx5Q0FBeUM7QUFBQSxRQUN2QyxRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSxnQ0FBZ0M7QUFBQSxRQUM5QixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSx5Q0FBeUM7QUFBQSxRQUN2QyxRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSxtQ0FBbUM7QUFBQSxRQUNqQyxRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSw0Q0FBNEM7QUFBQSxRQUMxQyxRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSxnQ0FBZ0M7QUFBQSxRQUM5QixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSxrQ0FBa0M7QUFBQSxRQUNoQyxRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSx5Q0FBeUM7QUFBQSxRQUN2QyxRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSwyQ0FBMkM7QUFBQSxRQUN6QyxRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSxnQ0FBZ0M7QUFBQSxRQUM5QixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsT0FBTyxNQUFNO0FBQUEsTUFDNUI7QUFBQSxNQUNBLHVCQUF1QjtBQUFBLFFBQ3JCLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLGlDQUFpQztBQUFBLFFBQy9CLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSw4QkFBOEI7QUFBQSxRQUM1QixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsNkJBQTZCO0FBQUEsUUFDM0IsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSw2QkFBNkI7QUFBQSxRQUMzQixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLG1DQUFtQztBQUFBLFFBQ2pDLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxPQUFPLE1BQU07QUFBQSxNQUM1QjtBQUFBLE1BQ0EsOEJBQThCO0FBQUEsUUFDNUIsUUFBUTtBQUFBLFFBQ1IsU0FBUztBQUFBLFFBQ1QsY0FBYztBQUFBLFFBQ2QsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsbUNBQW1DO0FBQUEsUUFDakMsUUFBUTtBQUFBLFFBQ1IsU0FBUztBQUFBLFFBQ1QsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsaUNBQWlDO0FBQUEsUUFDL0IsUUFBUTtBQUFBLFFBQ1IsU0FBUztBQUFBLFFBQ1QsY0FBYztBQUFBLFFBQ2QsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsMENBQTBDO0FBQUEsUUFDeEMsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLHNDQUFzQztBQUFBLFFBQ3BDLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxvQ0FBb0M7QUFBQSxRQUNsQyxRQUFRO0FBQUEsUUFDUixTQUFTO0FBQUEsUUFDVCxjQUFjO0FBQUEsUUFDZCxZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSx1Q0FBdUM7QUFBQSxRQUNyQyxRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EscUNBQXFDO0FBQUEsUUFDbkMsUUFBUTtBQUFBLFFBQ1IsU0FBUztBQUFBLFFBQ1QsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSwwQ0FBMEM7QUFBQSxRQUN4QyxRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0Esb0NBQW9DO0FBQUEsUUFDbEMsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSw2Q0FBNkM7QUFBQSxRQUMzQyxRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSxnQ0FBZ0M7QUFBQSxRQUM5QixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsUUFBUSxPQUFPLEtBQUs7QUFBQSxNQUNuQztBQUFBLE1BQ0EseUNBQXlDO0FBQUEsUUFDdkMsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSx5Q0FBeUM7QUFBQSxRQUN2QyxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLHVCQUF1QjtBQUFBLFFBQ3JCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxrQ0FBa0M7QUFBQSxRQUNoQyxRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSxpQ0FBaUM7QUFBQSxRQUMvQixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsNEJBQTRCO0FBQUEsUUFDMUIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsZ0NBQWdDO0FBQUEsUUFDOUIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsMkJBQTJCO0FBQUEsUUFDekIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsMkJBQTJCO0FBQUEsUUFDekIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLHFDQUFxQztBQUFBLFFBQ25DLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSx3QkFBd0I7QUFBQSxRQUN0QixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsT0FBTyxNQUFNO0FBQUEsTUFDNUI7QUFBQSxNQUNBLGlDQUFpQztBQUFBLFFBQy9CLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EsNkJBQTZCO0FBQUEsUUFDM0IsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsMEJBQTBCO0FBQUEsUUFDeEIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EseUJBQXlCO0FBQUEsUUFDdkIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLFVBQVU7QUFBQSxNQUN6QjtBQUFBLE1BQ0EsNEJBQTRCO0FBQUEsUUFDMUIsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLFFBQ2QsWUFBWSxDQUFDLFFBQVEsSUFBSTtBQUFBLE1BQzNCO0FBQUEsTUFDQSxpQ0FBaUM7QUFBQSxRQUMvQixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsdUNBQXVDO0FBQUEsUUFDckMsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLHlDQUF5QztBQUFBLFFBQ3ZDLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSwrQ0FBK0M7QUFBQSxRQUM3QyxRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsbUNBQW1DO0FBQUEsUUFDakMsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLHlDQUF5QztBQUFBLFFBQ3ZDLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxtQ0FBbUM7QUFBQSxRQUNqQyxRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EseUNBQXlDO0FBQUEsUUFDdkMsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLGdDQUFnQztBQUFBLFFBQzlCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxzQ0FBc0M7QUFBQSxRQUNwQyxRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsbUNBQW1DO0FBQUEsUUFDakMsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLHlDQUF5QztBQUFBLFFBQ3ZDLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxrQ0FBa0M7QUFBQSxRQUNoQyxRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsMkJBQTJCO0FBQUEsUUFDekIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLHlDQUF5QztBQUFBLFFBQ3ZDLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSx1QkFBdUI7QUFBQSxRQUNyQixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSw0QkFBNEI7QUFBQSxRQUMxQixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsK0JBQStCO0FBQUEsUUFDN0IsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLDRCQUE0QjtBQUFBLFFBQzFCLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EsNENBQTRDO0FBQUEsUUFDMUMsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLDRDQUE0QztBQUFBLFFBQzFDLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EsbUNBQW1DO0FBQUEsUUFDakMsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLHNDQUFzQztBQUFBLFFBQ3BDLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EsZ0NBQWdDO0FBQUEsUUFDOUIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLGlDQUFpQztBQUFBLFFBQy9CLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSx5Q0FBeUM7QUFBQSxRQUN2QyxRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EseUJBQXlCO0FBQUEsUUFDdkIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLE9BQU8sT0FBTyxPQUFPLE9BQU8sUUFBUSxLQUFLO0FBQUEsTUFDeEQ7QUFBQSxNQUNBLDZCQUE2QjtBQUFBLFFBQzNCLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLHdDQUF3QztBQUFBLFFBQ3RDLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxvQ0FBb0M7QUFBQSxRQUNsQyxRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsdUJBQXVCO0FBQUEsUUFDckIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsMkJBQTJCO0FBQUEsUUFDekIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLDJCQUEyQjtBQUFBLFFBQ3pCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSw2QkFBNkI7QUFBQSxRQUMzQixRQUFRO0FBQUEsUUFDUixTQUFTO0FBQUEsUUFDVCxZQUFZLENBQUMsT0FBTztBQUFBLE1BQ3RCO0FBQUEsTUFDQSw0QkFBNEI7QUFBQSxRQUMxQixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsTUFBTTtBQUFBLE1BQ3JCO0FBQUEsTUFDQSxrQ0FBa0M7QUFBQSxRQUNoQyxRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsT0FBTztBQUFBLE1BQ3RCO0FBQUEsTUFDQSxpQ0FBaUM7QUFBQSxRQUMvQixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsNEJBQTRCO0FBQUEsUUFDMUIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsMkJBQTJCO0FBQUEsUUFDekIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLDJCQUEyQjtBQUFBLFFBQ3pCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSwyQkFBMkI7QUFBQSxRQUN6QixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EseUNBQXlDO0FBQUEsUUFDdkMsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLHVCQUF1QjtBQUFBLFFBQ3JCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxpQ0FBaUM7QUFBQSxRQUMvQixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsdUNBQXVDO0FBQUEsUUFDckMsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLCtDQUErQztBQUFBLFFBQzdDLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxrQ0FBa0M7QUFBQSxRQUNoQyxRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSw0QkFBNEI7QUFBQSxRQUMxQixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsK0JBQStCO0FBQUEsUUFDN0IsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsdUJBQXVCO0FBQUEsUUFDckIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsdUNBQXVDO0FBQUEsUUFDckMsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLDBCQUEwQjtBQUFBLFFBQ3hCLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLGdDQUFnQztBQUFBLFFBQzlCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSw4QkFBOEI7QUFBQSxRQUM1QixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLDhCQUE4QjtBQUFBLFFBQzVCLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EsOEJBQThCO0FBQUEsUUFDNUIsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSx3QkFBd0I7QUFBQSxRQUN0QixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSw2QkFBNkI7QUFBQSxRQUMzQixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EscUNBQXFDO0FBQUEsUUFDbkMsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLHdCQUF3QjtBQUFBLFFBQ3RCLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxNQUFNO0FBQUEsTUFDckI7QUFBQSxNQUNBLGdDQUFnQztBQUFBLFFBQzlCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSwyQkFBMkI7QUFBQSxRQUN6QixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLDhCQUE4QjtBQUFBLFFBQzVCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSw4QkFBOEI7QUFBQSxRQUM1QixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsOEJBQThCO0FBQUEsUUFDNUIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLDhCQUE4QjtBQUFBLFFBQzVCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSw4QkFBOEI7QUFBQSxRQUM1QixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsaUNBQWlDO0FBQUEsUUFDL0IsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0Esb0NBQW9DO0FBQUEsUUFDbEMsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsbUNBQW1DO0FBQUEsUUFDakMsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsMENBQTBDO0FBQUEsUUFDeEMsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EscURBQXFEO0FBQUEsUUFDbkQsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLFFBQ2QsWUFBWSxDQUFDLFFBQVE7QUFBQSxNQUN2QjtBQUFBLE1BQ0EsdUNBQXVDO0FBQUEsUUFDckMsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLHFDQUFxQztBQUFBLFFBQ25DLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLHNDQUFzQztBQUFBLFFBQ3BDLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLHNDQUFzQztBQUFBLFFBQ3BDLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSwwQ0FBMEM7QUFBQSxRQUN4QyxRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsMkJBQTJCO0FBQUEsUUFDekIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLDJDQUEyQztBQUFBLFFBQ3pDLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLHVCQUF1QjtBQUFBLFFBQ3JCLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxPQUFPLE1BQU07QUFBQSxNQUM1QjtBQUFBLE1BQ0Esa0NBQWtDO0FBQUEsUUFDaEMsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLFFBQ2QsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsNEJBQTRCO0FBQUEsUUFDMUIsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLFFBQ2QsWUFBWSxDQUFDLE1BQU07QUFBQSxNQUNyQjtBQUFBLE1BQ0EsZ0NBQWdDO0FBQUEsUUFDOUIsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSxnQ0FBZ0M7QUFBQSxRQUM5QixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLGtCQUFrQjtBQUFBLFFBQ2hCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSx1QkFBdUI7QUFBQSxRQUNyQixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0Esc0JBQXNCO0FBQUEsUUFDcEIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLHlCQUF5QjtBQUFBLFFBQ3ZCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxvQkFBb0I7QUFBQSxRQUNsQixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsUUFDZCxZQUFZLENBQUMsTUFBTTtBQUFBLE1BQ3JCO0FBQUEsTUFDQSwrQkFBK0I7QUFBQSxRQUM3QixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsUUFDZCxZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSxvQ0FBb0M7QUFBQSxRQUNsQyxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLDZCQUE2QjtBQUFBLFFBQzNCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxnQ0FBZ0M7QUFBQSxRQUM5QixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0Esc0JBQXNCO0FBQUEsUUFDcEIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0Esc0JBQXNCO0FBQUEsUUFDcEIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0Esb0JBQW9CO0FBQUEsUUFDbEIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLDhCQUE4QjtBQUFBLFFBQzVCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSx3QkFBd0I7QUFBQSxRQUN0QixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsUUFDZCxZQUFZLENBQUMsTUFBTTtBQUFBLE1BQ3JCO0FBQUEsTUFDQSw0QkFBNEI7QUFBQSxRQUMxQixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsUUFDZCxZQUFZLENBQUMsVUFBVTtBQUFBLE1BQ3pCO0FBQUEsTUFDQSwrQkFBK0I7QUFBQSxRQUM3QixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsUUFDZCxZQUFZLENBQUMsSUFBSTtBQUFBLE1BQ25CO0FBQUEsTUFDQSx5QkFBeUI7QUFBQSxRQUN2QixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSxnQ0FBZ0M7QUFBQSxRQUM5QixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSxxQkFBcUI7QUFBQSxRQUNuQixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsaUNBQWlDO0FBQUEsUUFDL0IsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EscUJBQXFCO0FBQUEsUUFDbkIsY0FBYztBQUFBLFFBQ2QsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsZ0NBQWdDO0FBQUEsUUFDOUIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLE9BQU8sT0FBTyxPQUFPLEtBQUs7QUFBQSxNQUN6QztBQUFBLE1BQ0EsZ0NBQWdDO0FBQUEsUUFDOUIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsZ0NBQWdDO0FBQUEsUUFDOUIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsdUJBQXVCO0FBQUEsUUFDckIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLE9BQU87QUFBQSxNQUN0QjtBQUFBLE1BQ0Esc0JBQXNCO0FBQUEsUUFDcEIsY0FBYztBQUFBLFFBQ2QsWUFBWSxDQUFDLE1BQU07QUFBQSxNQUNyQjtBQUFBLE1BQ0EsNEJBQTRCO0FBQUEsUUFDMUIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLFNBQVM7QUFBQSxNQUN4QjtBQUFBLE1BQ0EseUJBQXlCO0FBQUEsUUFDdkIsWUFBWSxDQUFDLE9BQU87QUFBQSxNQUN0QjtBQUFBLE1BQ0EsdUJBQXVCO0FBQUEsUUFDckIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLE9BQU8sT0FBTztBQUFBLE1BQzdCO0FBQUEsTUFDQSxzQkFBc0I7QUFBQSxRQUNwQixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsUUFDZCxZQUFZLENBQUMsSUFBSTtBQUFBLE1BQ25CO0FBQUEsTUFDQSx1QkFBdUI7QUFBQSxRQUNyQixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsUUFDZCxZQUFZLENBQUMsT0FBTyxLQUFLO0FBQUEsTUFDM0I7QUFBQSxNQUNBLHFCQUFxQjtBQUFBLFFBQ25CLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxPQUFPLE9BQU8sT0FBTyxPQUFPLEtBQUs7QUFBQSxNQUNoRDtBQUFBLE1BQ0Esd0JBQXdCO0FBQUEsUUFDdEIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsZ0NBQWdDO0FBQUEsUUFDOUIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0Esc0JBQXNCO0FBQUEsUUFDcEIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLE1BQU07QUFBQSxNQUNyQjtBQUFBLE1BQ0EsMkJBQTJCO0FBQUEsUUFDekIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0Esa0NBQWtDO0FBQUEsUUFDaEMsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsdUJBQXVCO0FBQUEsUUFDckIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsMEJBQTBCO0FBQUEsUUFDeEIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLDRCQUE0QjtBQUFBLFFBQzFCLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLDRCQUE0QjtBQUFBLFFBQzFCLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLHNCQUFzQjtBQUFBLFFBQ3BCLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxNQUFNO0FBQUEsTUFDckI7QUFBQSxNQUNBLHFCQUFxQjtBQUFBLFFBQ25CLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLHFCQUFxQjtBQUFBLFFBQ25CLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EsZ0NBQWdDO0FBQUEsUUFDOUIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLE9BQU8sTUFBTTtBQUFBLE1BQzVCO0FBQUEsTUFDQSxnQ0FBZ0M7QUFBQSxRQUM5QixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSwwQkFBMEI7QUFBQSxRQUN4QixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsT0FBTyxPQUFPLE9BQU8sT0FBTyxPQUFPLE9BQU8sT0FBTyxPQUFPLEtBQUs7QUFBQSxNQUM1RTtBQUFBLE1BQ0Esc0JBQXNCO0FBQUEsUUFDcEIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsNEJBQTRCO0FBQUEsUUFDMUIsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLFFBQ2QsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsNEJBQTRCO0FBQUEsUUFDMUIsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLFFBQ2QsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsaUNBQWlDO0FBQUEsUUFDL0IsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLFFBQ2QsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EscUJBQXFCO0FBQUEsUUFDbkIsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLFFBQ2QsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsdUJBQXVCO0FBQUEsUUFDckIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EscUJBQXFCO0FBQUEsUUFDbkIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsMEJBQTBCO0FBQUEsUUFDeEIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsMEJBQTBCO0FBQUEsUUFDeEIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLGlDQUFpQztBQUFBLFFBQy9CLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxrQ0FBa0M7QUFBQSxRQUNoQyxRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSw2QkFBNkI7QUFBQSxRQUMzQixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsZ0NBQWdDO0FBQUEsUUFDOUIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsMEJBQTBCO0FBQUEsUUFDeEIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsMEJBQTBCO0FBQUEsUUFDeEIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsNkJBQTZCO0FBQUEsUUFDM0IsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLGlDQUFpQztBQUFBLFFBQy9CLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSw0QkFBNEI7QUFBQSxRQUMxQixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsT0FBTyxPQUFPLE9BQU8sS0FBSztBQUFBLE1BQ3pDO0FBQUEsTUFDQSw0QkFBNEI7QUFBQSxRQUMxQixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EseUJBQXlCO0FBQUEsUUFDdkIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsOEJBQThCO0FBQUEsUUFDNUIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsZ0NBQWdDO0FBQUEsUUFDOUIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsdUJBQXVCO0FBQUEsUUFDckIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsMEJBQTBCO0FBQUEsUUFDeEIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLFVBQVU7QUFBQSxNQUN6QjtBQUFBLE1BQ0EsNEJBQTRCO0FBQUEsUUFDMUIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLFFBQVE7QUFBQSxNQUN2QjtBQUFBLE1BQ0Esc0JBQXNCO0FBQUEsUUFDcEIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLE1BQU07QUFBQSxNQUNyQjtBQUFBLE1BQ0Esc0JBQXNCO0FBQUEsUUFDcEIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLHFCQUFxQjtBQUFBLFFBQ25CLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLDJCQUEyQjtBQUFBLFFBQ3pCLGNBQWM7QUFBQSxRQUNkLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLHNDQUFzQztBQUFBLFFBQ3BDLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxTQUFTO0FBQUEsTUFDeEI7QUFBQSxNQUNBLDRCQUE0QjtBQUFBLFFBQzFCLGNBQWM7QUFBQSxRQUNkLFlBQVksQ0FBQyxPQUFPO0FBQUEsTUFDdEI7QUFBQSxNQUNBLCtCQUErQjtBQUFBLFFBQzdCLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLHNDQUFzQztBQUFBLFFBQ3BDLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLDBDQUEwQztBQUFBLFFBQ3hDLFlBQVksQ0FBQyxTQUFTO0FBQUEsTUFDeEI7QUFBQSxNQUNBLHNDQUFzQztBQUFBLFFBQ3BDLFlBQVksQ0FBQyxPQUFPO0FBQUEsTUFDdEI7QUFBQSxNQUNBLG1DQUFtQztBQUFBLFFBQ2pDLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxTQUFTO0FBQUEsTUFDeEI7QUFBQSxNQUNBLGdDQUFnQztBQUFBLFFBQzlCLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxRQUNkLFlBQVksQ0FBQyxNQUFNO0FBQUEsTUFDckI7QUFBQSxNQUNBLDRCQUE0QjtBQUFBLFFBQzFCLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EsMEJBQTBCO0FBQUEsUUFDeEIsWUFBWSxDQUFDLE1BQU07QUFBQSxNQUNyQjtBQUFBLE1BQ0EsdUJBQXVCO0FBQUEsUUFDckIsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLFFBQ2QsWUFBWSxDQUFDLE9BQU87QUFBQSxNQUN0QjtBQUFBLE1BQ0EsOEJBQThCO0FBQUEsUUFDNUIsWUFBWSxDQUFDLE1BQU07QUFBQSxNQUNyQjtBQUFBLE1BQ0EsZ0NBQWdDO0FBQUEsUUFDOUIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLE9BQU8sS0FBSztBQUFBLE1BQzNCO0FBQUEsTUFDQSwwQkFBMEI7QUFBQSxRQUN4QixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSxxQkFBcUI7QUFBQSxRQUNuQixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSxrQ0FBa0M7QUFBQSxRQUNoQyxRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsT0FBTyxNQUFNO0FBQUEsTUFDNUI7QUFBQSxNQUNBLHlCQUF5QjtBQUFBLFFBQ3ZCLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EsZ0NBQWdDO0FBQUEsUUFDOUIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLGFBQWE7QUFBQSxNQUM1QjtBQUFBLE1BQ0EsNkJBQTZCO0FBQUEsUUFDM0IsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0Esd0JBQXdCO0FBQUEsUUFDdEIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0Esd0JBQXdCO0FBQUEsUUFDdEIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EseUJBQXlCO0FBQUEsUUFDdkIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLE1BQU07QUFBQSxNQUNyQjtBQUFBLE1BQ0EsMEJBQTBCO0FBQUEsUUFDeEIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsMEJBQTBCO0FBQUEsUUFDeEIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsNEJBQTRCO0FBQUEsUUFDMUIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0Esd0JBQXdCO0FBQUEsUUFDdEIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsK0JBQStCO0FBQUEsUUFDN0IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsNEJBQTRCO0FBQUEsUUFDMUIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLE9BQU8sT0FBTyxPQUFPLE9BQU8sS0FBSztBQUFBLE1BQ2hEO0FBQUEsTUFDQSw2QkFBNkI7QUFBQSxRQUMzQixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsT0FBTyxPQUFPLEtBQUs7QUFBQSxNQUNsQztBQUFBLE1BQ0EsNEJBQTRCO0FBQUEsUUFDMUIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLE9BQU8sT0FBTyxPQUFPLEtBQUs7QUFBQSxNQUN6QztBQUFBLE1BQ0EseUJBQXlCO0FBQUEsUUFDdkIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsNkJBQTZCO0FBQUEsUUFDM0IsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsNEJBQTRCO0FBQUEsUUFDMUIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsNEJBQTRCO0FBQUEsUUFDMUIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EseUJBQXlCO0FBQUEsUUFDdkIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0Esd0JBQXdCO0FBQUEsUUFDdEIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLE1BQU0sS0FBSztBQUFBLE1BQzFCO0FBQUEsTUFDQSxxQ0FBcUM7QUFBQSxRQUNuQyxjQUFjO0FBQUEsUUFDZCxZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSxxQkFBcUI7QUFBQSxRQUNuQixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSxzQkFBc0I7QUFBQSxRQUNwQixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsTUFBTSxJQUFJO0FBQUEsTUFDekI7QUFBQSxNQUNBLHVCQUF1QjtBQUFBLFFBQ3JCLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxPQUFPLEtBQUs7QUFBQSxNQUMzQjtBQUFBLE1BQ0Esd0JBQXdCO0FBQUEsUUFDdEIsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLFFBQ2QsWUFBWSxDQUFDLE9BQU8sS0FBSztBQUFBLE1BQzNCO0FBQUEsTUFDQSxvQ0FBb0M7QUFBQSxRQUNsQyxRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsT0FBTyxLQUFLO0FBQUEsTUFDM0I7QUFBQSxNQUNBLG1DQUFtQztBQUFBLFFBQ2pDLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLDZCQUE2QjtBQUFBLFFBQzNCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxnQ0FBZ0M7QUFBQSxRQUM5QixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsUUFDZCxZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSx3Q0FBd0M7QUFBQSxRQUN0QyxRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSx1Q0FBdUM7QUFBQSxRQUNyQyxRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSxxQkFBcUI7QUFBQSxRQUNuQixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSxvQkFBb0I7QUFBQSxRQUNsQixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsUUFDZCxZQUFZLENBQUMsSUFBSTtBQUFBLE1BQ25CO0FBQUEsTUFDQSxzQkFBc0I7QUFBQSxRQUNwQixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsTUFBTTtBQUFBLE1BQ3JCO0FBQUEsTUFDQSxpQ0FBaUM7QUFBQSxRQUMvQixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsUUFDZCxZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSxpQ0FBaUM7QUFBQSxRQUMvQixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSxxQkFBcUI7QUFBQSxRQUNuQixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSx5QkFBeUI7QUFBQSxRQUN2QixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsUUFDZCxZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSwwQkFBMEI7QUFBQSxRQUN4QixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsTUFBTTtBQUFBLE1BQ3JCO0FBQUEsTUFDQSx3QkFBd0I7QUFBQSxRQUN0QixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSx5QkFBeUI7QUFBQSxRQUN2QixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsU0FBUztBQUFBLE1BQ3hCO0FBQUEsTUFDQSx3QkFBd0I7QUFBQSxRQUN0QixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsUUFBUTtBQUFBLE1BQ3ZCO0FBQUEsTUFDQSw0QkFBNEI7QUFBQSxRQUMxQixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsSUFBSTtBQUFBLE1BQ25CO0FBQUEsTUFDQSxzQkFBc0I7QUFBQSxRQUNwQixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSxxQkFBcUI7QUFBQSxRQUNuQixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsUUFDZCxZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSxxQkFBcUI7QUFBQSxRQUNuQixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsT0FBTyxJQUFJO0FBQUEsTUFDMUI7QUFBQSxNQUNBLHFCQUFxQjtBQUFBLFFBQ25CLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLHlCQUF5QjtBQUFBLFFBQ3ZCLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLHlCQUF5QjtBQUFBLFFBQ3ZCLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxXQUFXLE1BQU07QUFBQSxNQUNoQztBQUFBLE1BQ0Esc0JBQXNCO0FBQUEsUUFDcEIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsdUJBQXVCO0FBQUEsUUFDckIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLE9BQU87QUFBQSxNQUN0QjtBQUFBLE1BQ0EsZ0NBQWdDO0FBQUEsUUFDOUIsY0FBYztBQUFBLFFBQ2QsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsZ0NBQWdDO0FBQUEsUUFDOUIsY0FBYztBQUFBLFFBQ2QsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsZ0NBQWdDO0FBQUEsUUFDOUIsY0FBYztBQUFBLFFBQ2QsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsaUNBQWlDO0FBQUEsUUFDL0IsY0FBYztBQUFBLFFBQ2QsWUFBWSxDQUFDLE1BQU07QUFBQSxNQUNyQjtBQUFBLE1BQ0EseUNBQXlDO0FBQUEsUUFDdkMsY0FBYztBQUFBLFFBQ2QsWUFBWSxDQUFDLGNBQWM7QUFBQSxNQUM3QjtBQUFBLE1BQ0EsZ0NBQWdDO0FBQUEsUUFDOUIsY0FBYztBQUFBLFFBQ2QsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsZ0NBQWdDO0FBQUEsUUFDOUIsY0FBYztBQUFBLFFBQ2QsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsaUNBQWlDO0FBQUEsUUFDL0IsY0FBYztBQUFBLFFBQ2QsWUFBWSxDQUFDLE1BQU07QUFBQSxNQUNyQjtBQUFBLE1BQ0EsNkJBQTZCO0FBQUEsUUFDM0IsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsdUNBQXVDO0FBQUEsUUFDckMsY0FBYztBQUFBLFFBQ2QsWUFBWSxDQUFDLFFBQVE7QUFBQSxNQUN2QjtBQUFBLE1BQ0EscUNBQXFDO0FBQUEsUUFDbkMsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSw4QkFBOEI7QUFBQSxRQUM1QixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsT0FBTyxPQUFPLEtBQUs7QUFBQSxNQUNsQztBQUFBLE1BQ0EsaUNBQWlDO0FBQUEsUUFDL0IsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLG1DQUFtQztBQUFBLFFBQ2pDLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxzQkFBc0I7QUFBQSxRQUNwQixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSwyQkFBMkI7QUFBQSxRQUN6QixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsUUFDZCxZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSwyQkFBMkI7QUFBQSxRQUN6QixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsUUFDZCxZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSxvQkFBb0I7QUFBQSxRQUNsQixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsSUFBSTtBQUFBLE1BQ25CO0FBQUEsTUFDQSxnQ0FBZ0M7QUFBQSxRQUM5QixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSwwQkFBMEI7QUFBQSxRQUN4QixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxJQUFJO0FBQUEsTUFDN0Q7QUFBQSxNQUNBLHVCQUF1QjtBQUFBLFFBQ3JCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSx5QkFBeUI7QUFBQSxRQUN2QixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLHdCQUF3QjtBQUFBLFFBQ3RCLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxRQUNkLFlBQVksQ0FBQyxNQUFNO0FBQUEsTUFDckI7QUFBQSxNQUNBLDRCQUE0QjtBQUFBLFFBQzFCLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxRQUNkLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLDZCQUE2QjtBQUFBLFFBQzNCLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxRQUNkLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLDZCQUE2QjtBQUFBLFFBQzNCLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxRQUNkLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLDJCQUEyQjtBQUFBLFFBQ3pCLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxRQUNkLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLDhCQUE4QjtBQUFBLFFBQzVCLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EsMkJBQTJCO0FBQUEsUUFDekIsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLFFBQ2QsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0Esd0NBQXdDO0FBQUEsUUFDdEMsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSw2Q0FBNkM7QUFBQSxRQUMzQyxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLHdCQUF3QjtBQUFBLFFBQ3RCLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxRQUNkLFlBQVksQ0FBQyxNQUFNO0FBQUEsTUFDckI7QUFBQSxNQUNBLG9CQUFvQjtBQUFBLFFBQ2xCLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxNQUFNO0FBQUEsTUFDckI7QUFBQSxNQUNBLHlCQUF5QjtBQUFBLFFBQ3ZCLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxRQUNkLFlBQVksQ0FBQyxTQUFTLEtBQUs7QUFBQSxNQUM3QjtBQUFBLE1BQ0EsK0JBQStCO0FBQUEsUUFDN0IsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSx5QkFBeUI7QUFBQSxRQUN2QixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsUUFDZCxZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSxtQkFBbUI7QUFBQSxRQUNqQixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsUUFDZCxZQUFZLENBQUMsT0FBTyxPQUFPLE9BQU8sS0FBSztBQUFBLE1BQ3pDO0FBQUEsTUFDQSx1QkFBdUI7QUFBQSxRQUNyQixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsUUFDZCxZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSwwQ0FBMEM7QUFBQSxRQUN4QyxRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsNkJBQTZCO0FBQUEsUUFDM0IsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSx3QkFBd0I7QUFBQSxRQUN0QixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLHVCQUF1QjtBQUFBLFFBQ3JCLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxRQUNkLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLHlCQUF5QjtBQUFBLFFBQ3ZCLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxRQUNkLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLHdCQUF3QjtBQUFBLFFBQ3RCLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxRQUNkLFlBQVksQ0FBQyxPQUFPLE1BQU07QUFBQSxNQUM1QjtBQUFBLE1BQ0Esd0JBQXdCO0FBQUEsUUFDdEIsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLFFBQ2QsWUFBWSxDQUFDLE1BQU07QUFBQSxNQUNyQjtBQUFBLE1BQ0Esc0JBQXNCO0FBQUEsUUFDcEIsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLFFBQ2QsWUFBWSxDQUFDLFFBQVEsU0FBUyxRQUFRLEtBQUs7QUFBQSxNQUM3QztBQUFBLE1BQ0Esb0JBQW9CO0FBQUEsUUFDbEIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLG9CQUFvQjtBQUFBLFFBQ2xCLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxNQUFNO0FBQUEsTUFDckI7QUFBQSxNQUNBLDhCQUE4QjtBQUFBLFFBQzVCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSw4QkFBOEI7QUFBQSxRQUM1QixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLDZCQUE2QjtBQUFBLFFBQzNCLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EsK0JBQStCO0FBQUEsUUFDN0IsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSw4QkFBOEI7QUFBQSxRQUM1QixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLDZCQUE2QjtBQUFBLFFBQzNCLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EsdUJBQXVCO0FBQUEsUUFDckIsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLFFBQ2QsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsbUJBQW1CO0FBQUEsUUFDakIsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLFFBQ2QsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsNkJBQTZCO0FBQUEsUUFDM0IsWUFBWSxDQUFDLFFBQVE7QUFBQSxNQUN2QjtBQUFBLE1BQ0Esb0JBQW9CO0FBQUEsUUFDbEIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLG9CQUFvQjtBQUFBLFFBQ2xCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxrQ0FBa0M7QUFBQSxRQUNoQyxRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0Esa0JBQWtCO0FBQUEsUUFDaEIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLGNBQWM7QUFBQSxRQUNaLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxRQUNkLFlBQVksQ0FBQyxNQUFNO0FBQUEsTUFDckI7QUFBQSxNQUNBLGVBQWU7QUFBQSxRQUNiLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxhQUFhO0FBQUEsUUFDWCxRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsUUFBUSxLQUFLO0FBQUEsTUFDNUI7QUFBQSxNQUNBLGFBQWE7QUFBQSxRQUNYLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxlQUFlO0FBQUEsUUFDYixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSxhQUFhO0FBQUEsUUFDWCxRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSxnQkFBZ0I7QUFBQSxRQUNkLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxpQkFBaUI7QUFBQSxRQUNmLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxjQUFjO0FBQUEsUUFDWixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsYUFBYTtBQUFBLFFBQ1gsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLGlDQUFpQztBQUFBLFFBQy9CLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxpQkFBaUI7QUFBQSxRQUNmLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxnQkFBZ0I7QUFBQSxRQUNkLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxlQUFlO0FBQUEsUUFDYixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsUUFDZCxZQUFZLENBQUMsTUFBTSxLQUFLO0FBQUEsTUFDMUI7QUFBQSxNQUNBLGNBQWM7QUFBQSxRQUNaLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxjQUFjO0FBQUEsUUFDWixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsbUJBQW1CO0FBQUEsUUFDakIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLFlBQVk7QUFBQSxRQUNWLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxlQUFlO0FBQUEsUUFDYixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsYUFBYTtBQUFBLFFBQ1gsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLHNCQUFzQjtBQUFBLFFBQ3BCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxzQkFBc0I7QUFBQSxRQUNwQixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0Esc0JBQXNCO0FBQUEsUUFDcEIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLHNCQUFzQjtBQUFBLFFBQ3BCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxZQUFZO0FBQUEsUUFDVixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsY0FBYztBQUFBLFFBQ1osUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLGNBQWM7QUFBQSxRQUNaLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxrQkFBa0I7QUFBQSxRQUNoQixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsY0FBYztBQUFBLFFBQ1osUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLGtCQUFrQjtBQUFBLFFBQ2hCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxlQUFlO0FBQUEsUUFDYixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsZUFBZTtBQUFBLFFBQ2IsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLGVBQWU7QUFBQSxRQUNiLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxnQkFBZ0I7QUFBQSxRQUNkLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxnQkFBZ0I7QUFBQSxRQUNkLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxnQkFBZ0I7QUFBQSxRQUNkLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxpQkFBaUI7QUFBQSxRQUNmLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxpQkFBaUI7QUFBQSxRQUNmLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxnQkFBZ0I7QUFBQSxRQUNkLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxpQkFBaUI7QUFBQSxRQUNmLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxpQkFBaUI7QUFBQSxRQUNmLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxhQUFhO0FBQUEsUUFDWCxRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsY0FBYztBQUFBLFFBQ1osUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLGlCQUFpQjtBQUFBLFFBQ2YsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLGdCQUFnQjtBQUFBLFFBQ2QsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLGdCQUFnQjtBQUFBLFFBQ2QsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLGNBQWM7QUFBQSxRQUNaLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxjQUFjO0FBQUEsUUFDWixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsZUFBZTtBQUFBLFFBQ2IsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLGNBQWM7QUFBQSxRQUNaLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxpQkFBaUI7QUFBQSxRQUNmLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxpQkFBaUI7QUFBQSxRQUNmLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxpQkFBaUI7QUFBQSxRQUNmLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxpQkFBaUI7QUFBQSxRQUNmLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxjQUFjO0FBQUEsUUFDWixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsY0FBYztBQUFBLFFBQ1osUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLGVBQWU7QUFBQSxRQUNiLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxlQUFlO0FBQUEsUUFDYixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsZUFBZTtBQUFBLFFBQ2IsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLGFBQWE7QUFBQSxRQUNYLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxpQkFBaUI7QUFBQSxRQUNmLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxtQkFBbUI7QUFBQSxRQUNqQixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsY0FBYztBQUFBLFFBQ1osUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLG9CQUFvQjtBQUFBLFFBQ2xCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxjQUFjO0FBQUEsUUFDWixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsYUFBYTtBQUFBLFFBQ1gsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLGFBQWE7QUFBQSxRQUNYLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxhQUFhO0FBQUEsUUFDWCxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLFlBQVk7QUFBQSxRQUNWLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxhQUFhO0FBQUEsUUFDWCxRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0Esa0JBQWtCO0FBQUEsUUFDaEIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLGNBQWM7QUFBQSxRQUNaLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxrQkFBa0I7QUFBQSxRQUNoQixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0Esa0JBQWtCO0FBQUEsUUFDaEIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLGlCQUFpQjtBQUFBLFFBQ2YsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLGNBQWM7QUFBQSxRQUNaLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxjQUFjO0FBQUEsUUFDWixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsT0FBTyxRQUFRLE9BQU8sS0FBSztBQUFBLE1BQzFDO0FBQUEsTUFDQSxtQkFBbUI7QUFBQSxRQUNqQixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0Esb0JBQW9CO0FBQUEsUUFDbEIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLE1BQU07QUFBQSxNQUNyQjtBQUFBLE1BQ0EsYUFBYTtBQUFBLFFBQ1gsY0FBYztBQUFBLFFBQ2QsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsYUFBYTtBQUFBLFFBQ1gsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLFFBQ2QsWUFBWSxDQUFDLE9BQU8sUUFBUSxLQUFLO0FBQUEsTUFDbkM7QUFBQSxNQUNBLG1CQUFtQjtBQUFBLFFBQ2pCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxhQUFhO0FBQUEsUUFDWCxRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0Esb0JBQW9CO0FBQUEsUUFDbEIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLGNBQWM7QUFBQSxRQUNaLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxRQUNkLFlBQVksQ0FBQyxRQUFRLE9BQU8sUUFBUSxPQUFPLE9BQU8sS0FBSztBQUFBLE1BQ3pEO0FBQUEsTUFDQSx1QkFBdUI7QUFBQSxRQUNyQixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0Esa0JBQWtCO0FBQUEsUUFDaEIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLGFBQWE7QUFBQSxRQUNYLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxRQUNkLFlBQVksQ0FBQyxPQUFPLE9BQU8sT0FBTyxNQUFNO0FBQUEsTUFDMUM7QUFBQSxNQUNBLGNBQWM7QUFBQSxRQUNaLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxtQkFBbUI7QUFBQSxRQUNqQixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsY0FBYztBQUFBLFFBQ1osUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLGlCQUFpQjtBQUFBLFFBQ2YsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLGNBQWM7QUFBQSxRQUNaLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxpQkFBaUI7QUFBQSxRQUNmLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxpQkFBaUI7QUFBQSxRQUNmLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxlQUFlO0FBQUEsUUFDYixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsbUJBQW1CO0FBQUEsUUFDakIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLGFBQWE7QUFBQSxRQUNYLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSwwQkFBMEI7QUFBQSxRQUN4QixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0Esa0JBQWtCO0FBQUEsUUFDaEIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLHFCQUFxQjtBQUFBLFFBQ25CLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxhQUFhO0FBQUEsUUFDWCxRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsYUFBYTtBQUFBLFFBQ1gsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsY0FBYztBQUFBLFFBQ1osUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLGNBQWM7QUFBQSxRQUNaLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLGFBQWE7QUFBQSxRQUNYLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxpQkFBaUI7QUFBQSxRQUNmLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxjQUFjO0FBQUEsUUFDWixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsY0FBYztBQUFBLFFBQ1osUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLGlCQUFpQjtBQUFBLFFBQ2YsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLGVBQWU7QUFBQSxRQUNiLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxlQUFlO0FBQUEsUUFDYixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsYUFBYTtBQUFBLFFBQ1gsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLHlCQUF5QjtBQUFBLFFBQ3ZCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxxQkFBcUI7QUFBQSxRQUNuQixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0Esd0JBQXdCO0FBQUEsUUFDdEIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLGNBQWM7QUFBQSxRQUNaLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxnQkFBZ0I7QUFBQSxRQUNkLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxpQkFBaUI7QUFBQSxRQUNmLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxnQkFBZ0I7QUFBQSxRQUNkLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxjQUFjO0FBQUEsUUFDWixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsY0FBYztBQUFBLFFBQ1osUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLGdCQUFnQjtBQUFBLFFBQ2QsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLHVCQUF1QjtBQUFBLFFBQ3JCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxpQkFBaUI7QUFBQSxRQUNmLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxzQkFBc0I7QUFBQSxRQUNwQixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0Esa0JBQWtCO0FBQUEsUUFDaEIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLHVCQUF1QjtBQUFBLFFBQ3JCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxnQ0FBZ0M7QUFBQSxRQUM5QixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0Esc0JBQXNCO0FBQUEsUUFDcEIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLHNCQUFzQjtBQUFBLFFBQ3BCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSx3QkFBd0I7QUFBQSxRQUN0QixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsT0FBTyxNQUFNO0FBQUEsTUFDNUI7QUFBQSxNQUNBLDJCQUEyQjtBQUFBLFFBQ3pCLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLHVCQUF1QjtBQUFBLFFBQ3JCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSwyQkFBMkI7QUFBQSxRQUN6QixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsMkJBQTJCO0FBQUEsUUFDekIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLHVCQUF1QjtBQUFBLFFBQ3JCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSx1QkFBdUI7QUFBQSxRQUNyQixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsdUJBQXVCO0FBQUEsUUFDckIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLHdCQUF3QjtBQUFBLFFBQ3RCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSx3QkFBd0I7QUFBQSxRQUN0QixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsMkJBQTJCO0FBQUEsUUFDekIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLGlCQUFpQjtBQUFBLFFBQ2YsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsaUJBQWlCO0FBQUEsUUFDZixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSxvQkFBb0I7QUFBQSxRQUNsQixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsT0FBTztBQUFBLE1BQ3RCO0FBQUEsTUFDQSxxQkFBcUI7QUFBQSxRQUNuQixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0Esc0JBQXNCO0FBQUEsUUFDcEIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLHdCQUF3QjtBQUFBLFFBQ3RCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSx1QkFBdUI7QUFBQSxRQUNyQixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsMEJBQTBCO0FBQUEsUUFDeEIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0Esb0NBQW9DO0FBQUEsUUFDbEMsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsOEJBQThCO0FBQUEsUUFDNUIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLHdCQUF3QjtBQUFBLFFBQ3RCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSw2QkFBNkI7QUFBQSxRQUMzQixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsV0FBVztBQUFBLE1BQzFCO0FBQUEsTUFDQSw2QkFBNkI7QUFBQSxRQUMzQixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsV0FBVztBQUFBLE1BQzFCO0FBQUEsTUFDQSw2QkFBNkI7QUFBQSxRQUMzQixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsV0FBVztBQUFBLE1BQzFCO0FBQUEsTUFDQSx1QkFBdUI7QUFBQSxRQUNyQixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsaUNBQWlDO0FBQUEsUUFDL0IsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLG1CQUFtQjtBQUFBLFFBQ2pCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSwrQkFBK0I7QUFBQSxRQUM3QixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsaUJBQWlCO0FBQUEsUUFDZixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSwwQkFBMEI7QUFBQSxRQUN4QixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLHVDQUF1QztBQUFBLFFBQ3JDLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxzQkFBc0I7QUFBQSxRQUNwQixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0Esa0JBQWtCO0FBQUEsUUFDaEIsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSxnQkFBZ0I7QUFBQSxRQUNkLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EsdUJBQXVCO0FBQUEsUUFDckIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLGFBQWE7QUFBQSxRQUNYLGNBQWM7QUFBQSxRQUNkLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLGNBQWM7QUFBQSxRQUNaLGNBQWM7QUFBQSxRQUNkLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLGNBQWM7QUFBQSxRQUNaLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxRQUNkLFlBQVksQ0FBQyxNQUFNO0FBQUEsTUFDckI7QUFBQSxNQUNBLGVBQWU7QUFBQSxRQUNiLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxRQUNkLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLGdCQUFnQjtBQUFBLFFBQ2QsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLE9BQU8sUUFBUSxNQUFNO0FBQUEsTUFDcEM7QUFBQSxNQUNBLGVBQWU7QUFBQSxRQUNiLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxRQUNkLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLGdCQUFnQjtBQUFBLFFBQ2QsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLE1BQU07QUFBQSxNQUNyQjtBQUFBLE1BQ0EsZUFBZTtBQUFBLFFBQ2IsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0Esb0JBQW9CO0FBQUEsUUFDbEIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsbUJBQW1CO0FBQUEsUUFDakIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0Esa0JBQWtCO0FBQUEsUUFDaEIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0Esa0JBQWtCO0FBQUEsUUFDaEIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0Esd0JBQXdCO0FBQUEsUUFDdEIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLE9BQU8sSUFBSTtBQUFBLE1BQzFCO0FBQUEsTUFDQSwrQkFBK0I7QUFBQSxRQUM3QixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSxxQkFBcUI7QUFBQSxRQUNuQixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsSUFBSTtBQUFBLE1BQ25CO0FBQUEsTUFDQSxlQUFlO0FBQUEsUUFDYixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsZUFBZTtBQUFBLFFBQ2IsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsWUFBWTtBQUFBLFFBQ1YsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLElBQUk7QUFBQSxNQUNuQjtBQUFBLE1BQ0Esa0JBQWtCO0FBQUEsUUFDaEIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0Esa0JBQWtCO0FBQUEsUUFDaEIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsbUJBQW1CO0FBQUEsUUFDakIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLE1BQU07QUFBQSxNQUNyQjtBQUFBLE1BQ0Esa0JBQWtCO0FBQUEsUUFDaEIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsbUJBQW1CO0FBQUEsUUFDakIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLE1BQU07QUFBQSxNQUNyQjtBQUFBLE1BQ0Esa0JBQWtCO0FBQUEsUUFDaEIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLGtCQUFrQjtBQUFBLFFBQ2hCLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLG1CQUFtQjtBQUFBLFFBQ2pCLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLFlBQVk7QUFBQSxRQUNWLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxRQUNkLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLGFBQWE7QUFBQSxRQUNYLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxZQUFZO0FBQUEsUUFDVixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsUUFDZCxZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSxhQUFhO0FBQUEsUUFDWCxRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsTUFBTTtBQUFBLE1BQ3JCO0FBQUEsTUFDQSxjQUFjO0FBQUEsUUFDWixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsT0FBTztBQUFBLE1BQ3RCO0FBQUEsTUFDQSxjQUFjO0FBQUEsUUFDWixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSxjQUFjO0FBQUEsUUFDWixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsUUFDZCxZQUFZLENBQUMsTUFBTTtBQUFBLE1BQ3JCO0FBQUEsTUFDQSxjQUFjO0FBQUEsUUFDWixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsTUFBTTtBQUFBLE1BQ3JCO0FBQUEsTUFDQSxjQUFjO0FBQUEsUUFDWixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsTUFBTTtBQUFBLE1BQ3JCO0FBQUEsTUFDQSxjQUFjO0FBQUEsUUFDWixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsUUFDZCxZQUFZLENBQUMsTUFBTTtBQUFBLE1BQ3JCO0FBQUEsTUFDQSxhQUFhO0FBQUEsUUFDWCxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsUUFDZCxZQUFZLENBQUMsT0FBTyxLQUFLO0FBQUEsTUFDM0I7QUFBQSxNQUNBLGFBQWE7QUFBQSxRQUNYLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLG1CQUFtQjtBQUFBLFFBQ2pCLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxNQUFNO0FBQUEsTUFDckI7QUFBQSxNQUNBLGFBQWE7QUFBQSxRQUNYLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLGFBQWE7QUFBQSxRQUNYLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLGNBQWM7QUFBQSxRQUNaLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxNQUFNO0FBQUEsTUFDckI7QUFBQSxNQUNBLGVBQWU7QUFBQSxRQUNiLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxJQUFJO0FBQUEsTUFDbkI7QUFBQSxNQUNBLGFBQWE7QUFBQSxRQUNYLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxRQUNkLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLGNBQWM7QUFBQSxRQUNaLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxNQUFNO0FBQUEsTUFDckI7QUFBQSxNQUNBLHVCQUF1QjtBQUFBLFFBQ3JCLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxPQUFPO0FBQUEsTUFDdEI7QUFBQSxNQUNBLGNBQWM7QUFBQSxRQUNaLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxNQUFNO0FBQUEsTUFDckI7QUFBQSxNQUNBLHVCQUF1QjtBQUFBLFFBQ3JCLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxPQUFPO0FBQUEsTUFDdEI7QUFBQSxNQUNBLGVBQWU7QUFBQSxRQUNiLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxNQUFNO0FBQUEsTUFDckI7QUFBQSxNQUNBLGFBQWE7QUFBQSxRQUNYLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLGFBQWE7QUFBQSxRQUNYLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxjQUFjO0FBQUEsUUFDWixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsTUFBTTtBQUFBLE1BQ3JCO0FBQUEsTUFDQSxjQUFjO0FBQUEsUUFDWixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsTUFBTTtBQUFBLE1BQ3JCO0FBQUEsTUFDQSxhQUFhO0FBQUEsUUFDWCxRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSxhQUFhO0FBQUEsUUFDWCxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsUUFDZCxZQUFZLENBQUMsT0FBTyxNQUFNO0FBQUEsTUFDNUI7QUFBQSxNQUNBLGNBQWM7QUFBQSxRQUNaLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxRQUNkLFlBQVksQ0FBQyxPQUFPLFFBQVEsS0FBSztBQUFBLE1BQ25DO0FBQUEsTUFDQSxhQUFhO0FBQUEsUUFDWCxRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSxjQUFjO0FBQUEsUUFDWixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSxhQUFhO0FBQUEsUUFDWCxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsUUFDZCxZQUFZLENBQUMsT0FBTyxNQUFNO0FBQUEsTUFDNUI7QUFBQSxNQUNBLGFBQWE7QUFBQSxRQUNYLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxRQUNkLFlBQVksQ0FBQyxPQUFPLEtBQUs7QUFBQSxNQUMzQjtBQUFBLE1BQ0EsYUFBYTtBQUFBLFFBQ1gsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsYUFBYTtBQUFBLFFBQ1gsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsY0FBYztBQUFBLFFBQ1osUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLE1BQU07QUFBQSxNQUNyQjtBQUFBLE1BQ0EsY0FBYztBQUFBLFFBQ1osUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLE1BQU07QUFBQSxNQUNyQjtBQUFBLE1BQ0EsYUFBYTtBQUFBLFFBQ1gsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsY0FBYztBQUFBLFFBQ1osUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLE1BQU07QUFBQSxNQUNyQjtBQUFBLE1BQ0EsY0FBYztBQUFBLFFBQ1osUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLE1BQU07QUFBQSxNQUNyQjtBQUFBLE1BQ0EsY0FBYztBQUFBLFFBQ1osUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLE1BQU07QUFBQSxNQUNyQjtBQUFBLE1BQ0EsYUFBYTtBQUFBLFFBQ1gsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsY0FBYztBQUFBLFFBQ1osUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLE1BQU07QUFBQSxNQUNyQjtBQUFBLE1BQ0EsZ0JBQWdCO0FBQUEsUUFDZCxRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsZUFBZTtBQUFBLFFBQ2IsY0FBYztBQUFBLFFBQ2QsWUFBWSxDQUFDLE1BQU07QUFBQSxNQUNyQjtBQUFBLE1BQ0EsYUFBYTtBQUFBLFFBQ1gsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLFFBQ2QsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0Esa0JBQWtCO0FBQUEsUUFDaEIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLFFBQVEsS0FBSztBQUFBLE1BQzVCO0FBQUEsTUFDQSxpQkFBaUI7QUFBQSxRQUNmLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLG9CQUFvQjtBQUFBLFFBQ2xCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxhQUFhO0FBQUEsUUFDWCxRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSxpQkFBaUI7QUFBQSxRQUNmLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxRQUNkLFlBQVksQ0FBQyxPQUFPLE1BQU07QUFBQSxNQUM1QjtBQUFBLE1BQ0EsYUFBYTtBQUFBLFFBQ1gsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsY0FBYztBQUFBLFFBQ1osUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLFFBQ2QsWUFBWSxDQUFDLE9BQU8sTUFBTTtBQUFBLE1BQzVCO0FBQUEsTUFDQSxpQkFBaUI7QUFBQSxRQUNmLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLDZCQUE2QjtBQUFBLFFBQzNCLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxRQUNkLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLG9DQUFvQztBQUFBLFFBQ2xDLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLGtCQUFrQjtBQUFBLFFBQ2hCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxzQkFBc0I7QUFBQSxRQUNwQixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsMEJBQTBCO0FBQUEsUUFDeEIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLE9BQU8sUUFBUSxPQUFPLE1BQU07QUFBQSxNQUMzQztBQUFBLE1BQ0Esa0JBQWtCO0FBQUEsUUFDaEIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLFFBQVEsS0FBSztBQUFBLE1BQzVCO0FBQUEsTUFDQSwwQkFBMEI7QUFBQSxRQUN4QixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSxpQkFBaUI7QUFBQSxRQUNmLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLGlCQUFpQjtBQUFBLFFBQ2YsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsMEJBQTBCO0FBQUEsUUFDeEIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsaUJBQWlCO0FBQUEsUUFDZixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSxpQkFBaUI7QUFBQSxRQUNmLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLGtDQUFrQztBQUFBLFFBQ2hDLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLGtDQUFrQztBQUFBLFFBQ2hDLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLGdDQUFnQztBQUFBLFFBQzlCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSw0QkFBNEI7QUFBQSxRQUMxQixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsUUFDZCxZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSxpQkFBaUI7QUFBQSxRQUNmLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSwwQkFBMEI7QUFBQSxRQUN4QixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0Esb0JBQW9CO0FBQUEsUUFDbEIsY0FBYztBQUFBLFFBQ2QsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EscUJBQXFCO0FBQUEsUUFDbkIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0Esc0JBQXNCO0FBQUEsUUFDcEIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EscUJBQXFCO0FBQUEsUUFDbkIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EscUJBQXFCO0FBQUEsUUFDbkIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0Esc0JBQXNCO0FBQUEsUUFDcEIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLHdCQUF3QjtBQUFBLFFBQ3RCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxzQ0FBc0M7QUFBQSxRQUNwQyxRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0Esc0NBQXNDO0FBQUEsUUFDcEMsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLGlCQUFpQjtBQUFBLFFBQ2YsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLHlCQUF5QjtBQUFBLFFBQ3ZCLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLGtDQUFrQztBQUFBLFFBQ2hDLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLHNCQUFzQjtBQUFBLFFBQ3BCLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxNQUFNO0FBQUEsTUFDckI7QUFBQSxNQUNBLGtCQUFrQjtBQUFBLFFBQ2hCLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLHdCQUF3QjtBQUFBLFFBQ3RCLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLGNBQWM7QUFBQSxRQUNaLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxNQUFNO0FBQUEsTUFDckI7QUFBQSxNQUNBLGFBQWE7QUFBQSxRQUNYLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLGVBQWU7QUFBQSxRQUNiLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLHFCQUFxQjtBQUFBLFFBQ25CLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLHNCQUFzQjtBQUFBLFFBQ3BCLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLGVBQWU7QUFBQSxRQUNiLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLGVBQWU7QUFBQSxRQUNiLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxvQkFBb0I7QUFBQSxRQUNsQixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsTUFBTSxPQUFPLE9BQU8sT0FBTyxLQUFLO0FBQUEsTUFDL0M7QUFBQSxNQUNBLGdCQUFnQjtBQUFBLFFBQ2QsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLFFBQ2QsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsZUFBZTtBQUFBLFFBQ2IsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsdUJBQXVCO0FBQUEsUUFDckIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0Esa0JBQWtCO0FBQUEsUUFDaEIsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLFFBQ2QsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsZUFBZTtBQUFBLFFBQ2IsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsZ0JBQWdCO0FBQUEsUUFDZCxRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsT0FBTyxLQUFLO0FBQUEsTUFDM0I7QUFBQSxNQUNBLDJCQUEyQjtBQUFBLFFBQ3pCLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLDJCQUEyQjtBQUFBLFFBQ3pCLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLDRCQUE0QjtBQUFBLFFBQzFCLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLDJCQUEyQjtBQUFBLFFBQ3pCLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLGVBQWU7QUFBQSxRQUNiLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLGVBQWU7QUFBQSxRQUNiLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLGVBQWU7QUFBQSxRQUNiLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxtQkFBbUI7QUFBQSxRQUNqQixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSxlQUFlO0FBQUEsUUFDYixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLG1CQUFtQjtBQUFBLFFBQ2pCLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLHVCQUF1QjtBQUFBLFFBQ3JCLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLGlCQUFpQjtBQUFBLFFBQ2YsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLGdCQUFnQjtBQUFBLFFBQ2QsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLDJCQUEyQjtBQUFBLFFBQ3pCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxvQ0FBb0M7QUFBQSxRQUNsQyxRQUFRO0FBQUEsUUFDUixZQUFZO0FBQUEsVUFDVjtBQUFBLFFBQ0Y7QUFBQSxNQUNGO0FBQUEsTUFDQSx5QkFBeUI7QUFBQSxRQUN2QixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsMkJBQTJCO0FBQUEsUUFDekIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLGtCQUFrQjtBQUFBLFFBQ2hCLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxPQUFPO0FBQUEsTUFDdEI7QUFBQSxNQUNBLGtDQUFrQztBQUFBLFFBQ2hDLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxPQUFPO0FBQUEsTUFDdEI7QUFBQSxNQUNBLDJDQUEyQztBQUFBLFFBQ3pDLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxPQUFPO0FBQUEsTUFDdEI7QUFBQSxNQUNBLDBCQUEwQjtBQUFBLFFBQ3hCLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxPQUFPO0FBQUEsTUFDdEI7QUFBQSxNQUNBLGdCQUFnQjtBQUFBLFFBQ2QsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSxvQkFBb0I7QUFBQSxRQUNsQixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLGVBQWU7QUFBQSxRQUNiLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxnQkFBZ0I7QUFBQSxRQUNkLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxxQkFBcUI7QUFBQSxRQUNuQixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EscUJBQXFCO0FBQUEsUUFDbkIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLG1CQUFtQjtBQUFBLFFBQ2pCLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0Esa0JBQWtCO0FBQUEsUUFDaEIsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLFFBQ2QsWUFBWSxDQUFDLE9BQU8sUUFBUSxPQUFPLE9BQU87QUFBQSxNQUM1QztBQUFBLE1BQ0Esa0JBQWtCO0FBQUEsUUFDaEIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLGVBQWU7QUFBQSxRQUNiLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxtQkFBbUI7QUFBQSxRQUNqQixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsMkJBQTJCO0FBQUEsUUFDekIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLHVCQUF1QjtBQUFBLFFBQ3JCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSx1QkFBdUI7QUFBQSxRQUNyQixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSxhQUFhO0FBQUEsUUFDWCxRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSxhQUFhO0FBQUEsUUFDWCxRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsbUJBQW1CO0FBQUEsUUFDakIsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLFFBQ2QsWUFBWSxDQUFDLE1BQU07QUFBQSxNQUNyQjtBQUFBLE1BQ0EscUJBQXFCO0FBQUEsUUFDbkIsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLFFBQ2QsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsY0FBYztBQUFBLFFBQ1osUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLFFBQ2QsWUFBWSxDQUFDLE9BQU8sTUFBTTtBQUFBLE1BQzVCO0FBQUEsTUFDQSxZQUFZO0FBQUEsUUFDVixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsSUFBSTtBQUFBLE1BQ25CO0FBQUEsTUFDQSxjQUFjO0FBQUEsUUFDWixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsUUFDZCxZQUFZLENBQUMsT0FBTyxRQUFRLE1BQU07QUFBQSxNQUNwQztBQUFBLE1BQ0EsYUFBYTtBQUFBLFFBQ1gsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsYUFBYTtBQUFBLFFBQ1gsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsYUFBYTtBQUFBLFFBQ1gsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsY0FBYztBQUFBLFFBQ1osUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLFFBQVEsT0FBTyxTQUFTLE9BQU8sS0FBSztBQUFBLE1BQ25EO0FBQUEsTUFDQSxrQkFBa0I7QUFBQSxRQUNoQixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsUUFDZCxZQUFZLENBQUMsTUFBTTtBQUFBLE1BQ3JCO0FBQUEsTUFDQSxrQkFBa0I7QUFBQSxRQUNoQixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsUUFDZCxZQUFZLENBQUMsTUFBTTtBQUFBLE1BQ3JCO0FBQUEsTUFDQSxzQkFBc0I7QUFBQSxRQUNwQixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsUUFDZCxZQUFZLENBQUMsT0FBTztBQUFBLE1BQ3RCO0FBQUEsTUFDQSxhQUFhO0FBQUEsUUFDWCxRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSxhQUFhO0FBQUEsUUFDWCxRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSxrQkFBa0I7QUFBQSxRQUNoQixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsTUFBTTtBQUFBLE1BQ3JCO0FBQUEsTUFDQSxpQkFBaUI7QUFBQSxRQUNmLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLHlCQUF5QjtBQUFBLFFBQ3ZCLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxRQUNkLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLGlCQUFpQjtBQUFBLFFBQ2YsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsMkJBQTJCO0FBQUEsUUFDekIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLGlCQUFpQjtBQUFBLFFBQ2YsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0Esb0JBQW9CO0FBQUEsUUFDbEIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLG9CQUFvQjtBQUFBLFFBQ2xCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxpQkFBaUI7QUFBQSxRQUNmLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLHNCQUFzQjtBQUFBLFFBQ3BCLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EsaUJBQWlCO0FBQUEsUUFDZixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSxxQkFBcUI7QUFBQSxRQUNuQixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsTUFBTTtBQUFBLE1BQ3JCO0FBQUEsTUFDQSx1Q0FBdUM7QUFBQSxRQUNyQyxRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSxxQ0FBcUM7QUFBQSxRQUNuQyxRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSx3QkFBd0I7QUFBQSxRQUN0QixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsT0FBTyxNQUFNO0FBQUEsTUFDNUI7QUFBQSxNQUNBLDBDQUEwQztBQUFBLFFBQ3hDLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxxQkFBcUI7QUFBQSxRQUNuQixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSxrQkFBa0I7QUFBQSxRQUNoQixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsTUFBTTtBQUFBLE1BQ3JCO0FBQUEsTUFDQSxzQkFBc0I7QUFBQSxRQUNwQixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsUUFDZCxZQUFZLENBQUMsTUFBTTtBQUFBLE1BQ3JCO0FBQUEsTUFDQSx1Q0FBdUM7QUFBQSxRQUNyQyxRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSxpQkFBaUI7QUFBQSxRQUNmLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLGNBQWM7QUFBQSxRQUNaLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxRQUNkLFlBQVksQ0FBQyxPQUFPLE1BQU07QUFBQSxNQUM1QjtBQUFBLE1BQ0Esb0JBQW9CO0FBQUEsUUFDbEIsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLFFBQ2QsWUFBWSxDQUFDLFFBQVEsT0FBTztBQUFBLE1BQzlCO0FBQUEsTUFDQSx5QkFBeUI7QUFBQSxRQUN2QixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsTUFBTTtBQUFBLE1BQ3JCO0FBQUEsTUFDQSxrQkFBa0I7QUFBQSxRQUNoQixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsUUFDZCxZQUFZLENBQUMsUUFBUSxPQUFPO0FBQUEsTUFDOUI7QUFBQSxNQUNBLGlCQUFpQjtBQUFBLFFBQ2YsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLFFBQ2QsWUFBWSxDQUFDLE9BQU8sTUFBTTtBQUFBLE1BQzVCO0FBQUEsTUFDQSxrQkFBa0I7QUFBQSxRQUNoQixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsTUFBTTtBQUFBLE1BQ3JCO0FBQUEsTUFDQSx5QkFBeUI7QUFBQSxRQUN2QixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLHlCQUF5QjtBQUFBLFFBQ3ZCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSx3QkFBd0I7QUFBQSxRQUN0QixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0Esb0JBQW9CO0FBQUEsUUFDbEIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLHVCQUF1QjtBQUFBLFFBQ3JCLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EsdUJBQXVCO0FBQUEsUUFDckIsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSx3QkFBd0I7QUFBQSxRQUN0QixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsbUJBQW1CO0FBQUEsUUFDakIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLDBCQUEwQjtBQUFBLFFBQ3hCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxzQkFBc0I7QUFBQSxRQUNwQixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EscUJBQXFCO0FBQUEsUUFDbkIsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSxvQkFBb0I7QUFBQSxRQUNsQixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0Esb0JBQW9CO0FBQUEsUUFDbEIsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSwrQkFBK0I7QUFBQSxRQUM3QixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsMkJBQTJCO0FBQUEsUUFDekIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLDZCQUE2QjtBQUFBLFFBQzNCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxpQ0FBaUM7QUFBQSxRQUMvQixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsdUJBQXVCO0FBQUEsUUFDckIsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLFFBQ2QsWUFBWSxDQUFDLFlBQVksVUFBVTtBQUFBLE1BQ3JDO0FBQUEsTUFDQSxpQkFBaUI7QUFBQSxRQUNmLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxPQUFPLEtBQUs7QUFBQSxNQUMzQjtBQUFBLE1BQ0EsaUJBQWlCO0FBQUEsUUFDZixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLFlBQVk7QUFBQSxRQUNWLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EscUJBQXFCO0FBQUEsUUFDbkIsWUFBWSxDQUFDLFVBQVUsV0FBVztBQUFBLE1BQ3BDO0FBQUEsTUFDQSxZQUFZO0FBQUEsUUFDVixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsdUJBQXVCO0FBQUEsUUFDckIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLHVCQUF1QjtBQUFBLFFBQ3JCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxZQUFZO0FBQUEsUUFDVixRQUFRO0FBQUEsUUFDUixTQUFTO0FBQUEsUUFDVCxjQUFjO0FBQUEsUUFDZCxZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSxZQUFZO0FBQUEsUUFDVixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsUUFDZCxZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSxtQkFBbUI7QUFBQSxRQUNqQixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0Esa0JBQWtCO0FBQUEsUUFDaEIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLFlBQVk7QUFBQSxRQUNWLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxtQkFBbUI7QUFBQSxRQUNqQixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsaUJBQWlCO0FBQUEsUUFDZixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsaUJBQWlCO0FBQUEsUUFDZixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsaUJBQWlCO0FBQUEsUUFDZixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsZ0JBQWdCO0FBQUEsUUFDZCxRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsZUFBZTtBQUFBLFFBQ2IsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLGFBQWE7QUFBQSxRQUNYLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSx5QkFBeUI7QUFBQSxRQUN2QixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsY0FBYztBQUFBLFFBQ1osUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLGFBQWE7QUFBQSxRQUNYLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxRQUNkLFlBQVksQ0FBQyxRQUFRLE9BQU8sT0FBTztBQUFBLE1BQ3JDO0FBQUEsTUFDQSxhQUFhO0FBQUEsUUFDWCxZQUFZLENBQUMsTUFBTTtBQUFBLE1BQ3JCO0FBQUEsTUFDQSxtQkFBbUI7QUFBQSxRQUNqQixRQUFRO0FBQUEsUUFDUixTQUFTO0FBQUEsUUFDVCxjQUFjO0FBQUEsUUFDZCxZQUFZLENBQUMsTUFBTSxLQUFLO0FBQUEsTUFDMUI7QUFBQSxNQUNBLGdCQUFnQjtBQUFBLFFBQ2QsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLFlBQVk7QUFBQSxRQUNWLGNBQWM7QUFBQSxRQUNkLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLGFBQWE7QUFBQSxRQUNYLGNBQWM7QUFBQSxRQUNkLFlBQVksQ0FBQyxNQUFNO0FBQUEsTUFDckI7QUFBQSxNQUNBLGlCQUFpQjtBQUFBLFFBQ2YsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLFFBQ2QsWUFBWSxDQUFDLE1BQU0sVUFBVTtBQUFBLE1BQy9CO0FBQUEsTUFDQSxlQUFlO0FBQUEsUUFDYixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSxZQUFZO0FBQUEsUUFDVixjQUFjO0FBQUEsUUFDZCxZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSxjQUFjO0FBQUEsUUFDWixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsV0FBVztBQUFBLFFBQ1QsUUFBUTtBQUFBLFFBQ1IsU0FBUztBQUFBLFFBQ1QsY0FBYztBQUFBLFFBQ2QsWUFBWSxDQUFDLElBQUk7QUFBQSxNQUNuQjtBQUFBLE1BQ0EsbUJBQW1CO0FBQUEsUUFDakIsUUFBUTtBQUFBLFFBQ1IsU0FBUztBQUFBLE1BQ1g7QUFBQSxNQUNBLGtCQUFrQjtBQUFBLFFBQ2hCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxjQUFjO0FBQUEsUUFDWixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsUUFDZCxZQUFZLENBQUMsT0FBTyxRQUFRLFFBQVEsT0FBTyxRQUFRLE9BQU8sTUFBTSxLQUFLO0FBQUEsTUFDdkU7QUFBQSxNQUNBLDRCQUE0QjtBQUFBLFFBQzFCLFFBQVE7QUFBQSxRQUNSLFNBQVM7QUFBQSxNQUNYO0FBQUEsTUFDQSw0QkFBNEI7QUFBQSxRQUMxQixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0Esc0JBQXNCO0FBQUEsUUFDcEIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsdUJBQXVCO0FBQUEsUUFDckIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLGlCQUFpQjtBQUFBLFFBQ2YsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLGtCQUFrQjtBQUFBLFFBQ2hCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxZQUFZO0FBQUEsUUFDVixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsdUJBQXVCO0FBQUEsUUFDckIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLGlCQUFpQjtBQUFBLFFBQ2YsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLFFBQ2QsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsWUFBWTtBQUFBLFFBQ1YsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLFFBQ2QsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EseUJBQXlCO0FBQUEsUUFDdkIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLG9CQUFvQjtBQUFBLFFBQ2xCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxZQUFZO0FBQUEsUUFDVixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsYUFBYTtBQUFBLFFBQ1gsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLFFBQVEsS0FBSztBQUFBLE1BQzVCO0FBQUEsTUFDQSxlQUFlO0FBQUEsUUFDYixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsYUFBYTtBQUFBLFFBQ1gsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLE1BQU07QUFBQSxNQUNyQjtBQUFBLE1BQ0EsYUFBYTtBQUFBLFFBQ1gsWUFBWSxDQUFDLFFBQVEsS0FBSztBQUFBLE1BQzVCO0FBQUEsTUFDQSxhQUFhO0FBQUEsUUFDWCxRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsTUFBTTtBQUFBLE1BQ3JCO0FBQUEsTUFDQSxnQkFBZ0I7QUFBQSxRQUNkLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxlQUFlO0FBQUEsUUFDYixZQUFZLENBQUMsVUFBVSxNQUFNO0FBQUEsTUFDL0I7QUFBQSxNQUNBLGFBQWE7QUFBQSxRQUNYLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSw2QkFBNkI7QUFBQSxRQUMzQixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsUUFDZCxZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSxjQUFjO0FBQUEsUUFDWixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSyxNQUFNLFFBQVEsT0FBTyxNQUFNLElBQUk7QUFBQSxNQUNuRDtBQUFBLE1BQ0EsZUFBZTtBQUFBLFFBQ2IsUUFBUTtBQUFBLFFBQ1IsU0FBUztBQUFBLFFBQ1QsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsZUFBZTtBQUFBLFFBQ2IsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLGlCQUFpQjtBQUFBLFFBQ2YsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLFFBQ2QsWUFBWSxDQUFDLE9BQU8sUUFBUSxNQUFNO0FBQUEsTUFDcEM7QUFBQSxNQUNBLGNBQWM7QUFBQSxRQUNaLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxRQUNkLFlBQVksQ0FBQyxPQUFPO0FBQUEsTUFDdEI7QUFBQSxNQUNBLGNBQWM7QUFBQSxRQUNaLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxnQkFBZ0I7QUFBQSxRQUNkLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxzQkFBc0I7QUFBQSxRQUNwQixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsaUJBQWlCO0FBQUEsUUFDZixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsTUFBTTtBQUFBLE1BQ3JCO0FBQUEsTUFDQSx1QkFBdUI7QUFBQSxRQUNyQixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsT0FBTztBQUFBLE1BQ3RCO0FBQUEsTUFDQSx1QkFBdUI7QUFBQSxRQUNyQixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsT0FBTztBQUFBLE1BQ3RCO0FBQUEsTUFDQSx1QkFBdUI7QUFBQSxRQUNyQixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsT0FBTztBQUFBLE1BQ3RCO0FBQUEsTUFDQSw2QkFBNkI7QUFBQSxRQUMzQixRQUFRO0FBQUEsUUFDUixTQUFTO0FBQUEsTUFDWDtBQUFBLE1BQ0EsMkJBQTJCO0FBQUEsUUFDekIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLHlCQUF5QjtBQUFBLFFBQ3ZCLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLHNDQUFzQztBQUFBLFFBQ3BDLFFBQVE7QUFBQSxRQUNSLFNBQVM7QUFBQSxNQUNYO0FBQUEsTUFDQSx5QkFBeUI7QUFBQSxRQUN2QixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsZ0NBQWdDO0FBQUEsUUFDOUIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsdUJBQXVCO0FBQUEsUUFDckIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLGdCQUFnQjtBQUFBLFFBQ2QsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EseUJBQXlCO0FBQUEsUUFDdkIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsZ0JBQWdCO0FBQUEsUUFDZCxRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EscUJBQXFCO0FBQUEsUUFDbkIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLElBQUk7QUFBQSxNQUNuQjtBQUFBLE1BQ0EsaUJBQWlCO0FBQUEsUUFDZixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsZ0JBQWdCO0FBQUEsUUFDZCxRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0Esc0JBQXNCO0FBQUEsUUFDcEIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLE1BQU07QUFBQSxNQUNyQjtBQUFBLE1BQ0Esc0JBQXNCO0FBQUEsUUFDcEIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLE1BQU07QUFBQSxNQUNyQjtBQUFBLE1BQ0Esd0JBQXdCO0FBQUEsUUFDdEIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLHNCQUFzQjtBQUFBLFFBQ3BCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxvQkFBb0I7QUFBQSxRQUNsQixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsNEJBQTRCO0FBQUEsUUFDMUIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLDRCQUE0QjtBQUFBLFFBQzFCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSx5Q0FBeUM7QUFBQSxRQUN2QyxRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0Esc0NBQXNDO0FBQUEsUUFDcEMsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLDRCQUE0QjtBQUFBLFFBQzFCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSw0QkFBNEI7QUFBQSxRQUMxQixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsaUJBQWlCO0FBQUEsUUFDZixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0Esb0NBQW9DO0FBQUEsUUFDbEMsUUFBUTtBQUFBLFFBQ1IsU0FBUztBQUFBLFFBQ1QsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsK0JBQStCO0FBQUEsUUFDN0IsUUFBUTtBQUFBLFFBQ1IsU0FBUztBQUFBLE1BQ1g7QUFBQSxNQUNBLGdCQUFnQjtBQUFBLFFBQ2QsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLG1CQUFtQjtBQUFBLFFBQ2pCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxtQkFBbUI7QUFBQSxRQUNqQixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0Esb0JBQW9CO0FBQUEsUUFDbEIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsMEJBQTBCO0FBQUEsUUFDeEIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLE1BQU07QUFBQSxNQUNyQjtBQUFBLE1BQ0Esb0JBQW9CO0FBQUEsUUFDbEIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLFlBQVk7QUFBQSxRQUNWLFFBQVE7QUFBQSxRQUNSLFNBQVM7QUFBQSxRQUNULGNBQWM7QUFBQSxRQUNkLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLGFBQWE7QUFBQSxRQUNYLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxNQUFNO0FBQUEsTUFDckI7QUFBQSxNQUNBLGNBQWM7QUFBQSxRQUNaLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLLEtBQUs7QUFBQSxNQUN6QjtBQUFBLE1BQ0EsWUFBWTtBQUFBLFFBQ1YsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUssTUFBTSxPQUFPLE9BQU8sS0FBSyxNQUFNLEtBQUs7QUFBQSxNQUN4RDtBQUFBLE1BQ0Esb0JBQW9CO0FBQUEsUUFDbEIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0Esa0JBQWtCO0FBQUEsUUFDaEIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUssT0FBTyxPQUFPLEtBQUs7QUFBQSxNQUN2QztBQUFBLE1BQ0Esa0JBQWtCO0FBQUEsUUFDaEIsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSw4QkFBOEI7QUFBQSxRQUM1QixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSxzQkFBc0I7QUFBQSxRQUNwQixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsTUFBTTtBQUFBLE1BQ3JCO0FBQUEsTUFDQSxzQkFBc0I7QUFBQSxRQUNwQixjQUFjO0FBQUEsTUFDaEI7QUFBQSxNQUNBLGNBQWM7QUFBQSxRQUNaLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLG1CQUFtQjtBQUFBLFFBQ2pCLGNBQWM7QUFBQSxRQUNkLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLGNBQWM7QUFBQSxRQUNaLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLGVBQWU7QUFBQSxRQUNiLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxNQUFNO0FBQUEsTUFDckI7QUFBQSxNQUNBLGNBQWM7QUFBQSxRQUNaLGNBQWM7QUFBQSxRQUNkLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLGlCQUFpQjtBQUFBLFFBQ2YsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUssS0FBSztBQUFBLE1BQ3pCO0FBQUEsTUFDQSxxQkFBcUI7QUFBQSxRQUNuQixjQUFjO0FBQUEsUUFDZCxZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSxlQUFlO0FBQUEsUUFDYixZQUFZLENBQUMsTUFBTTtBQUFBLE1BQ3JCO0FBQUEsTUFDQSxlQUFlO0FBQUEsUUFDYixZQUFZLENBQUMsTUFBTTtBQUFBLE1BQ3JCO0FBQUEsTUFDQSxpQkFBaUI7QUFBQSxRQUNmLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLGNBQWM7QUFBQSxRQUNaLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLG1CQUFtQjtBQUFBLFFBQ2pCLGNBQWM7QUFBQSxRQUNkLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLG1CQUFtQjtBQUFBLFFBQ2pCLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxJQUFJO0FBQUEsTUFDbkI7QUFBQSxNQUNBLG9CQUFvQjtBQUFBLFFBQ2xCLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLGdCQUFnQjtBQUFBLFFBQ2QsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsWUFBWTtBQUFBLFFBQ1YsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLFFBQ2QsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsbUNBQW1DO0FBQUEsUUFDakMsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLGFBQWE7QUFBQSxRQUNYLGNBQWM7QUFBQSxRQUNkLFlBQVksQ0FBQyxRQUFRLEtBQUs7QUFBQSxNQUM1QjtBQUFBLE1BQ0Esa0NBQWtDO0FBQUEsUUFDaEMsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLGNBQWM7QUFBQSxRQUNaLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxPQUFPLE1BQU07QUFBQSxNQUM1QjtBQUFBLE1BQ0EsaUJBQWlCO0FBQUEsUUFDZixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsZUFBZTtBQUFBLFFBQ2IsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsYUFBYTtBQUFBLFFBQ1gsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLGVBQWU7QUFBQSxRQUNiLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxlQUFlO0FBQUEsUUFDYixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsY0FBYztBQUFBLFFBQ1osUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLFlBQVk7QUFBQSxRQUNWLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxrQkFBa0I7QUFBQSxRQUNoQixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsYUFBYTtBQUFBLFFBQ1gsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLGNBQWM7QUFBQSxRQUNaLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxpQkFBaUI7QUFBQSxRQUNmLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxjQUFjO0FBQUEsUUFDWixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsTUFBTTtBQUFBLE1BQ3JCO0FBQUEsTUFDQSxjQUFjO0FBQUEsUUFDWixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsTUFBTTtBQUFBLE1BQ3JCO0FBQUEsTUFDQSxtQkFBbUI7QUFBQSxRQUNqQixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsbUJBQW1CO0FBQUEsUUFDakIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLGNBQWM7QUFBQSxRQUNaLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxNQUFNO0FBQUEsTUFDckI7QUFBQSxNQUNBLG1CQUFtQjtBQUFBLFFBQ2pCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxrQkFBa0I7QUFBQSxRQUNoQixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsY0FBYztBQUFBLFFBQ1osUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLGNBQWM7QUFBQSxRQUNaLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxxQkFBcUI7QUFBQSxRQUNuQixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSxjQUFjO0FBQUEsUUFDWixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsTUFBTTtBQUFBLE1BQ3JCO0FBQUEsTUFDQSxrQkFBa0I7QUFBQSxRQUNoQixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsYUFBYTtBQUFBLFFBQ1gsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLE9BQU8sTUFBTTtBQUFBLE1BQzVCO0FBQUEsTUFDQSxjQUFjO0FBQUEsUUFDWixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EscUJBQXFCO0FBQUEsUUFDbkIsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLE1BQ2hCO0FBQUEsTUFDQSxrQkFBa0I7QUFBQSxRQUNoQixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EscUJBQXFCO0FBQUEsUUFDbkIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLGFBQWE7QUFBQSxRQUNYLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxPQUFPLE1BQU07QUFBQSxNQUM1QjtBQUFBLE1BQ0EsY0FBYztBQUFBLFFBQ1osUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLGNBQWM7QUFBQSxRQUNaLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxjQUFjO0FBQUEsUUFDWixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsTUFBTSxPQUFPLFFBQVEsS0FBSztBQUFBLE1BQ3pDO0FBQUEsTUFDQSxhQUFhO0FBQUEsUUFDWCxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsUUFDZCxZQUFZLENBQUMsT0FBTyxRQUFRLE1BQU07QUFBQSxNQUNwQztBQUFBLE1BQ0EsaUJBQWlCO0FBQUEsUUFDZixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsY0FBYztBQUFBLFFBQ1osUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLFFBQ2QsWUFBWSxDQUFDLFFBQVEsT0FBTyxPQUFPLE9BQU8sS0FBSztBQUFBLE1BQ2pEO0FBQUEsTUFDQSx1QkFBdUI7QUFBQSxRQUNyQixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsYUFBYTtBQUFBLFFBQ1gsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLFlBQVk7QUFBQSxRQUNWLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxhQUFhO0FBQUEsUUFDWCxRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsUUFDZCxZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSxtQkFBbUI7QUFBQSxRQUNqQixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsaUJBQWlCO0FBQUEsUUFDZixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsbUJBQW1CO0FBQUEsUUFDakIsUUFBUTtBQUFBLFFBQ1IsY0FBYztBQUFBLFFBQ2QsWUFBWSxDQUFDLE1BQU0sS0FBSztBQUFBLE1BQzFCO0FBQUEsTUFDQSxtQkFBbUI7QUFBQSxRQUNqQixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsYUFBYTtBQUFBLFFBQ1gsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLDBCQUEwQjtBQUFBLFFBQ3hCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxxQkFBcUI7QUFBQSxRQUNuQixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsYUFBYTtBQUFBLFFBQ1gsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLGNBQWM7QUFBQSxRQUNaLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxrQkFBa0I7QUFBQSxRQUNoQixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsbUJBQW1CO0FBQUEsUUFDakIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLGdCQUFnQjtBQUFBLFFBQ2QsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLGFBQWE7QUFBQSxRQUNYLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxhQUFhO0FBQUEsUUFDWCxRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0Esa0JBQWtCO0FBQUEsUUFDaEIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLHFCQUFxQjtBQUFBLFFBQ25CLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxPQUFPLE1BQU07QUFBQSxNQUM1QjtBQUFBLE1BQ0EseUJBQXlCO0FBQUEsUUFDdkIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLE9BQU8sTUFBTTtBQUFBLE1BQzVCO0FBQUEsTUFDQSxzQkFBc0I7QUFBQSxRQUNwQixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EscUJBQXFCO0FBQUEsUUFDbkIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLE9BQU8sTUFBTTtBQUFBLE1BQzVCO0FBQUEsTUFDQSxxQkFBcUI7QUFBQSxRQUNuQixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsT0FBTyxNQUFNO0FBQUEsTUFDNUI7QUFBQSxNQUNBLHdCQUF3QjtBQUFBLFFBQ3RCLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxPQUFPLE1BQU07QUFBQSxNQUM1QjtBQUFBLE1BQ0EsMEJBQTBCO0FBQUEsUUFDeEIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLDhCQUE4QjtBQUFBLFFBQzVCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSwyQkFBMkI7QUFBQSxRQUN6QixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0Esc0JBQXNCO0FBQUEsUUFDcEIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0EsaUJBQWlCO0FBQUEsUUFDZixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSx1QkFBdUI7QUFBQSxRQUNyQixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0Esd0NBQXdDO0FBQUEsUUFDdEMsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLHdDQUF3QztBQUFBLFFBQ3RDLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSx3Q0FBd0M7QUFBQSxRQUN0QyxRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0Esd0NBQXdDO0FBQUEsUUFDdEMsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLDhCQUE4QjtBQUFBLFFBQzVCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxnQ0FBZ0M7QUFBQSxRQUM5QixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsNEJBQTRCO0FBQUEsUUFDMUIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLDZCQUE2QjtBQUFBLFFBQzNCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxxQkFBcUI7QUFBQSxRQUNuQixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsT0FBTyxLQUFLO0FBQUEsTUFDM0I7QUFBQSxNQUNBLG9DQUFvQztBQUFBLFFBQ2xDLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLDBDQUEwQztBQUFBLFFBQ3hDLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSx5QkFBeUI7QUFBQSxRQUN2QixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsNkJBQTZCO0FBQUEsUUFDM0IsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLHlCQUF5QjtBQUFBLFFBQ3ZCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxvQkFBb0I7QUFBQSxRQUNsQixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsZ0NBQWdDO0FBQUEsUUFDOUIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLG1DQUFtQztBQUFBLFFBQ2pDLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSwwQkFBMEI7QUFBQSxRQUN4QixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsMEJBQTBCO0FBQUEsUUFDeEIsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLHdCQUF3QjtBQUFBLFFBQ3RCLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxzQ0FBc0M7QUFBQSxRQUNwQyxRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0Esc0JBQXNCO0FBQUEsUUFDcEIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLE9BQU8sTUFBTTtBQUFBLE1BQzVCO0FBQUEsTUFDQSxrQkFBa0I7QUFBQSxRQUNoQixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSx3QkFBd0I7QUFBQSxRQUN0QixRQUFRO0FBQUEsTUFDVjtBQUFBLE1BQ0EsYUFBYTtBQUFBLFFBQ1gsUUFBUTtBQUFBLE1BQ1Y7QUFBQSxNQUNBLGFBQWE7QUFBQSxRQUNYLFFBQVE7QUFBQSxNQUNWO0FBQUEsTUFDQSxjQUFjO0FBQUEsUUFDWixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsUUFDZCxZQUFZLENBQUMsTUFBTTtBQUFBLE1BQ3JCO0FBQUEsTUFDQSxlQUFlO0FBQUEsUUFDYixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSxlQUFlO0FBQUEsUUFDYixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSxlQUFlO0FBQUEsUUFDYixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsUUFDZCxZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSxlQUFlO0FBQUEsUUFDYixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSxvQkFBb0I7QUFBQSxRQUNsQixRQUFRO0FBQUEsUUFDUixjQUFjO0FBQUEsUUFDZCxZQUFZLENBQUMsT0FBTyxRQUFRLEtBQUs7QUFBQSxNQUNuQztBQUFBLE1BQ0EsZUFBZTtBQUFBLFFBQ2IsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLEtBQUs7QUFBQSxNQUNwQjtBQUFBLE1BQ0Esa0JBQWtCO0FBQUEsUUFDaEIsUUFBUTtBQUFBLFFBQ1IsWUFBWSxDQUFDLE9BQU8sS0FBSztBQUFBLE1BQzNCO0FBQUEsTUFDQSxrQkFBa0I7QUFBQSxRQUNoQixRQUFRO0FBQUEsUUFDUixZQUFZLENBQUMsS0FBSztBQUFBLE1BQ3BCO0FBQUEsTUFDQSxpQkFBaUI7QUFBQSxRQUNmLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxJQUFJO0FBQUEsTUFDbkI7QUFBQSxNQUNBLGtCQUFrQjtBQUFBLFFBQ2hCLFFBQVE7QUFBQSxRQUNSLGNBQWM7QUFBQSxRQUNkLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLGtCQUFrQjtBQUFBLFFBQ2hCLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLGtCQUFrQjtBQUFBLFFBQ2hCLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLG1CQUFtQjtBQUFBLFFBQ2pCLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLHFCQUFxQjtBQUFBLFFBQ25CLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxPQUFPO0FBQUEsTUFDdEI7QUFBQSxNQUNBLGVBQWU7QUFBQSxRQUNiLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLDJCQUEyQjtBQUFBLFFBQ3pCLFFBQVE7QUFBQSxRQUNSLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFDcEI7QUFBQSxNQUNBLHVCQUF1QjtBQUFBLFFBQ3JCLGNBQWM7QUFBQSxNQUNoQjtBQUFBLE1BQ0EscUJBQXFCO0FBQUEsUUFDbkIsY0FBYztBQUFBLE1BQ2hCO0FBQUEsSUFDRjtBQUFBLEVBQ0Y7QUFDRixDQUFDO0FBR0QsSUFBSSxtQkFBbUJBLFlBQVc7QUFBQSxFQUNoQyxrREFBa0QsVUFBVSxTQUFTO0FBQ25FLFlBQVEsVUFBVSxZQUFZO0FBQUEsRUFDaEM7QUFDRixDQUFDO0FBR0QsSUFBSSxxQkFBcUJBLFlBQVc7QUFBQSxFQUNsQyx5REFBeUQsVUFBVSxTQUFTO0FBQzFFLFFBQUksZUFBZTtBQUFBLE1BQ2pCLFFBQVE7QUFBQSxNQUNSLE1BQU07QUFBQSxNQUNOLE1BQU07QUFBQSxNQUNOLFFBQVE7QUFBQSxNQUNSLFNBQVM7QUFBQSxJQUNYO0FBQ0EsUUFBSSxnQkFBZ0I7QUFBQSxNQUNsQixPQUFPO0FBQUEsTUFDUCxRQUFRO0FBQUEsTUFDUixNQUFNO0FBQUEsTUFDTixTQUFTO0FBQUE7QUFBQSxJQUVYO0FBQ0EsUUFBSSxjQUFjO0FBQUE7QUFBQTtBQUFBLE1BR2hCLGFBQWE7QUFBQTtBQUFBLE1BRWIsTUFBTTtBQUFBLE1BQ04sU0FBUztBQUFBLElBQ1g7QUFDQSxZQUFRLFVBQVUsU0FBUyxVQUFVLFVBQVUsU0FBUyxXQUFXO0FBQ2pFLFVBQUksYUFBYSw0QkFBNEI7QUFDM0MsZUFBTztBQUFBLE1BQ1Q7QUFDQSxZQUFNLENBQUMsTUFBTSxPQUFPLElBQUksU0FBUyxNQUFNLEdBQUc7QUFDMUMsWUFBTSxRQUFRLFFBQVEsUUFBUSxhQUFhLElBQUk7QUFDL0MsWUFBTSxhQUFhLGFBQWEsS0FBSyxLQUFLLGFBQWE7QUFDdkQsWUFBTSxjQUFjLGNBQWMsTUFBTSxLQUFLLGNBQWM7QUFDM0QsWUFBTSxZQUFZLFlBQVksSUFBSSxLQUFLLFlBQVk7QUFDbkQsWUFBTSxjQUFjLElBQUksU0FBUyxTQUFTO0FBQzFDLGFBQU8sYUFBYSxjQUFjLFlBQVk7QUFBQSxJQUNoRDtBQUFBLEVBQ0Y7QUFDRixDQUFDO0FBR0QsSUFBSSxzQkFBc0JBLFlBQVc7QUFBQSxFQUNuQyxxREFBcUQsVUFBVTtBQUM3RDtBQUNBLFFBQUksS0FBSyxpQkFBaUI7QUFDMUIsUUFBSSxVQUFVLFFBQVEsTUFBTSxFQUFFO0FBQzlCLFFBQUksWUFBWSxtQkFBbUI7QUFDbkMsUUFBSSxzQkFBc0I7QUFDMUIsUUFBSSxtQkFBbUI7QUFDdkIsYUFBUyxVQUFVO0FBQ25CLGFBQVMsV0FBVyxFQUFFLFFBQVEsUUFBUTtBQUN0QyxhQUFTLGNBQWM7QUFDdkIsYUFBUyxZQUFZO0FBQ3JCLGFBQVMsYUFBNkIsdUJBQU8sT0FBTyxJQUFJO0FBQ3hELGFBQVMsU0FBUztBQUNsQixhQUFTLFFBQXdCLHVCQUFPLE9BQU8sSUFBSTtBQUNuRCxhQUFTLHNCQUFzQixDQUFDO0FBQ2hDLGlCQUFhLFNBQVMsWUFBWSxTQUFTLEtBQUs7QUFDaEQsYUFBUyxRQUFRLE1BQU07QUFDckIsVUFBSSxDQUFDLFFBQVEsT0FBTyxTQUFTLFVBQVU7QUFDckMsZUFBTztBQUFBLE1BQ1Q7QUFDQSxVQUFJLFFBQVEsb0JBQW9CLEtBQUssSUFBSTtBQUN6QyxVQUFJLE9BQU8sU0FBUyxHQUFHLE1BQU0sQ0FBQyxFQUFFLFlBQVksQ0FBQztBQUM3QyxVQUFJLFFBQVEsS0FBSyxTQUFTO0FBQ3hCLGVBQU8sS0FBSztBQUFBLE1BQ2Q7QUFDQSxVQUFJLFNBQVMsaUJBQWlCLEtBQUssTUFBTSxDQUFDLENBQUMsR0FBRztBQUM1QyxlQUFPO0FBQUEsTUFDVDtBQUNBLGFBQU87QUFBQSxJQUNUO0FBQ0EsYUFBUyxhQUFhLEtBQUs7QUFDekIsVUFBSSxDQUFDLE9BQU8sT0FBTyxRQUFRLFVBQVU7QUFDbkMsZUFBTztBQUFBLE1BQ1Q7QUFDQSxVQUFJLE9BQU8sSUFBSSxRQUFRLEdBQUcsTUFBTSxLQUFLLFNBQVMsT0FBTyxHQUFHLElBQUk7QUFDNUQsVUFBSSxDQUFDLE1BQU07QUFDVCxlQUFPO0FBQUEsTUFDVDtBQUNBLFVBQUksS0FBSyxRQUFRLFNBQVMsTUFBTSxJQUFJO0FBQ2xDLFlBQUksV0FBVyxTQUFTLFFBQVEsSUFBSTtBQUNwQyxZQUFJLFNBQVUsU0FBUSxlQUFlLFNBQVMsWUFBWTtBQUFBLE1BQzVEO0FBQ0EsYUFBTztBQUFBLElBQ1Q7QUFDQSxhQUFTLFVBQVUsTUFBTTtBQUN2QixVQUFJLENBQUMsUUFBUSxPQUFPLFNBQVMsVUFBVTtBQUNyQyxlQUFPO0FBQUEsTUFDVDtBQUNBLFVBQUksUUFBUSxvQkFBb0IsS0FBSyxJQUFJO0FBQ3pDLFVBQUksT0FBTyxTQUFTLFNBQVMsV0FBVyxNQUFNLENBQUMsRUFBRSxZQUFZLENBQUM7QUFDOUQsVUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLFFBQVE7QUFDekIsZUFBTztBQUFBLE1BQ1Q7QUFDQSxhQUFPLEtBQUssQ0FBQztBQUFBLElBQ2Y7QUFDQSxhQUFTLE9BQU8sTUFBTTtBQUNwQixVQUFJLENBQUMsUUFBUSxPQUFPLFNBQVMsVUFBVTtBQUNyQyxlQUFPO0FBQUEsTUFDVDtBQUNBLFVBQUksYUFBYSxRQUFRLE9BQU8sSUFBSSxFQUFFLFlBQVksRUFBRSxNQUFNLENBQUM7QUFDM0QsVUFBSSxDQUFDLFlBQVk7QUFDZixlQUFPO0FBQUEsTUFDVDtBQUNBLGFBQU8sU0FBUyxNQUFNLFVBQVUsS0FBSztBQUFBLElBQ3ZDO0FBQ0EsYUFBUyxhQUFhLFlBQVksT0FBTztBQUN2QyxhQUFPLEtBQUssRUFBRSxFQUFFLFFBQVEsU0FBUyxnQkFBZ0IsTUFBTTtBQUNyRCxZQUFJLE9BQU8sR0FBRyxJQUFJO0FBQ2xCLFlBQUksT0FBTyxLQUFLO0FBQ2hCLFlBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxRQUFRO0FBQ3pCO0FBQUEsUUFDRjtBQUNBLG1CQUFXLElBQUksSUFBSTtBQUNuQixpQkFBUyxJQUFJLEdBQUcsSUFBSSxLQUFLLFFBQVEsS0FBSztBQUNwQyxjQUFJLGFBQWEsS0FBSyxDQUFDO0FBQ3ZCLGdCQUFNLFVBQVUsSUFBSSxlQUFlLFlBQVksTUFBTSxVQUFVLEdBQUcsSUFBSTtBQUN0RSxnQkFBTSxhQUFhO0FBQUEsWUFDakI7QUFBQSxZQUNBLE1BQU0sVUFBVTtBQUFBLFlBQ2hCO0FBQUEsVUFDRjtBQUNBLGNBQUksZUFBZSxNQUFNLFVBQVUsR0FBRztBQUNwQyxxQkFBUyxvQkFBb0IsS0FBSyxDQUFDLFlBQVksWUFBWSxNQUFNLFVBQVUsQ0FBQyxDQUFDO0FBQUEsVUFDL0U7QUFBQSxRQUNGO0FBQUEsTUFDRixDQUFDO0FBQUEsSUFDSDtBQUNBLGFBQVMsZUFBZSxLQUFLLE9BQU8sT0FBTztBQUN6QyxVQUFJLFNBQVMsUUFBUSxVQUFVLE9BQU8sR0FBRyxLQUFLLEVBQUUsTUFBTSxJQUFJO0FBQzFELFVBQUksU0FBUyxRQUFRLFVBQVUsT0FBTyxHQUFHLEtBQUssRUFBRSxNQUFNLElBQUk7QUFDMUQsYUFBTyxTQUFTLFNBQVMsUUFBUTtBQUFBLElBQ25DO0FBQ0EsYUFBUyxxQkFBcUIsS0FBSyxPQUFPLE9BQU87QUFDL0MsVUFBSSxjQUFjLENBQUMsU0FBUyxVQUFVLFFBQVEsTUFBTTtBQUNwRCxVQUFJLFNBQVMsUUFBUSxZQUFZLFFBQVEsR0FBRyxLQUFLLEVBQUUsTUFBTSxJQUFJO0FBQzdELFVBQUksU0FBUyxRQUFRLFlBQVksUUFBUSxHQUFHLEtBQUssRUFBRSxNQUFNLElBQUk7QUFDN0QsVUFBSSxTQUFTLE1BQU0sU0FBUyxNQUFNLCtCQUErQixTQUFTLFVBQVUsV0FBVyxVQUFVLFNBQVMsTUFBTSxTQUFTLEdBQUcsTUFBTSxHQUFHLEVBQUUsTUFBTSxpQkFBaUI7QUFDcEssZUFBTztBQUFBLE1BQ1Q7QUFDQSxhQUFPLFNBQVMsU0FBUyxRQUFRO0FBQUEsSUFDbkM7QUFBQSxFQUNGO0FBQ0YsQ0FBQztBQUdELElBQUksZUFBZUEsWUFBVztBQUFBLEVBQzVCLDZCQUE2QixVQUFVLFNBQVM7QUFDOUM7QUFDQSxRQUFJLGNBQWMsb0JBQW9CO0FBQ3RDLFFBQUksUUFBUWdELGFBQVksRUFBRSxNQUFNO0FBQ2hDLFFBQUksWUFBWSxrQkFBa0I7QUFDbEMsUUFBSSxhQUFhLG9CQUFvQjtBQUNyQyxRQUFJLE9BQU8sYUFBYTtBQUN4QixRQUFJLFFBQVEsY0FBYztBQUMxQixRQUFJLEtBQUssUUFBUSxJQUFJO0FBQ3JCLFFBQUksT0FBTyxvQkFBb0I7QUFDL0IsUUFBSSxLQUFLUCxZQUFXO0FBQ3BCLFFBQUksYUFBYSxvQkFBb0I7QUFDckMsUUFBSSxhQUFhLHFCQUFxQjtBQUN0QyxRQUFJLE9BQU8sUUFBUSxNQUFNO0FBQ3pCLFFBQUksV0FBVyxpQkFBaUI7QUFDaEMsUUFBSSxTQUFTLFFBQVEsUUFBUTtBQUM3QixRQUFJaEMsU0FBUSxRQUFRLE1BQU07QUFDMUIsUUFBSSxVQUFVLEtBQUs7QUFDbkIsUUFBSSxPQUFPLEtBQUs7QUFDaEIsUUFBSSxZQUFZLEtBQUs7QUFDckIsUUFBSSxVQUFVLEtBQUs7QUFDbkIsUUFBSSxNQUFNLEtBQUs7QUFDZixRQUFJLHFCQUFxQjtBQUN6QixRQUFJLGFBQWEsS0FBSyxLQUFLLEtBQUssTUFBTTtBQUN0QyxRQUFJLGlCQUFpQjtBQUNyQixZQUFRLFVBQVU7QUFDbEIsYUFBUyxLQUFLLEtBQUssT0FBTyxTQUFTO0FBQ2pDLGFBQU8sSUFBSSxXQUFXLEtBQUssT0FBTyxPQUFPO0FBQUEsSUFDM0M7QUFDQSxhQUFTLFdBQVcsS0FBSyxPQUFPLFNBQVM7QUFDdkMsYUFBTyxLQUFLLElBQUk7QUFDaEIsVUFBSSxPQUFPLFdBQVcsQ0FBQztBQUN2QixXQUFLLFVBQVU7QUFDZixXQUFLLE9BQU87QUFDWixXQUFLLE1BQU07QUFDWCxXQUFLLGdCQUFnQixLQUFLLGlCQUFpQixTQUFTLFFBQVEsS0FBSyxZQUFZLElBQUk7QUFDakYsV0FBSyxnQkFBZ0IsS0FBSyxpQkFBaUIsU0FBUyxRQUFRLEtBQUssWUFBWSxJQUFJO0FBQ2pGLFdBQUssUUFBUSxLQUFLLFNBQVMsU0FBUyxRQUFRLEtBQUssSUFBSSxJQUFJO0FBQ3pELFdBQUssWUFBWSxLQUFLLGFBQWEsU0FBUyxLQUFLLFdBQVc7QUFDNUQsVUFBSSxLQUFLLGNBQWMsWUFBWSxLQUFLLGNBQWMsV0FBVyxLQUFLLGNBQWMsUUFBUTtBQUMxRixjQUFNLElBQUksVUFBVSxzREFBc0Q7QUFBQSxNQUM1RTtBQUNBLFdBQUssY0FBYyxLQUFLLGVBQWUsU0FBUyxjQUFjLEtBQUssWUFBWSxtQkFBbUIsSUFBSSxDQUFDO0FBQ3ZHLFdBQUssYUFBYSxLQUFLLGNBQWMsU0FBUyxRQUFRLEtBQUssU0FBUyxJQUFJO0FBQ3hFLFdBQUssU0FBUyxLQUFLLFVBQVUsU0FBUyxjQUFjLEtBQUssT0FBTyxjQUFjLElBQUksQ0FBQyxZQUFZO0FBQy9GLFdBQUssZ0JBQWdCLEtBQUssaUJBQWlCLFNBQVMsUUFBUSxLQUFLLFlBQVksSUFBSTtBQUNqRixXQUFLLFVBQVUsS0FBSyxVQUFVLEtBQUs7QUFDbkMsV0FBSyxVQUFVLE9BQU8sS0FBSyxZQUFZLFdBQVcsR0FBRyxLQUFLLE9BQU8sSUFBSSxPQUFPLEtBQUssT0FBTztBQUN4RixXQUFLLFVBQVUsQ0FBQyxNQUFNLEtBQUssT0FBTyxJQUFJLEtBQUssSUFBSSxLQUFLLElBQUksR0FBRyxLQUFLLE9BQU8sR0FBRyxVQUFVLElBQUk7QUFDeEYsV0FBSyxRQUFRLEtBQUssT0FBTyxRQUFRLEtBQUssSUFBSSxJQUFJO0FBQUEsSUFDaEQ7QUFDQSxJQUFBQSxPQUFNLFNBQVMsWUFBWSxNQUFNO0FBQ2pDLGVBQVcsVUFBVSxRQUFRLFNBQVMsTUFBTSxRQUFRLE1BQU07QUFDeEQsVUFBSSxhQUFhLE1BQU0sT0FBTyxHQUFHO0FBQy9CLGVBQU8sS0FBSyxLQUFLLFNBQVMsZ0JBQWdCLFFBQVEsSUFBSSxDQUFDO0FBQUEsTUFDekQ7QUFDQSxVQUFJLE1BQU0sS0FBSztBQUNmLFVBQUksTUFBTSxTQUFTLFFBQVEsTUFBTSxLQUFLLE9BQU8sTUFBTTtBQUNuRCxVQUFJLE1BQU0sbUJBQW1CLFNBQVMsV0FBVyxHQUFHLENBQUM7QUFDckQsbUJBQWEsR0FBRztBQUNoQixVQUFJLFFBQVEsS0FBSyxTQUFTO0FBQ3hCLG1CQUFXLEtBQUssS0FBSyxPQUFPO0FBQUEsTUFDOUI7QUFDQSxVQUFJLGFBQWE7QUFDakIsVUFBSSxVQUFVLGdCQUFnQiwwQkFBMEI7QUFDeEQsVUFBSSxVQUFVLGtCQUFrQixPQUFPLFdBQVcsR0FBRyxDQUFDO0FBQ3RELFVBQUksVUFBVSwyQkFBMkIsb0JBQW9CO0FBQzdELFVBQUksVUFBVSwwQkFBMEIsU0FBUztBQUNqRCxVQUFJLElBQUksR0FBRztBQUFBLElBQ2I7QUFDQSxlQUFXLFVBQVUsbUJBQW1CLFNBQVMsbUJBQW1CO0FBQ2xFLGFBQU8sS0FBSyxLQUFLLEtBQUssS0FBSyxTQUFTLENBQUMsTUFBTTtBQUFBLElBQzdDO0FBQ0EsZUFBVyxVQUFVLG1CQUFtQixTQUFTLG1CQUFtQjtBQUNsRSxhQUFPLEtBQUssSUFBSSxRQUFRLFVBQVUsS0FBSyxLQUFLLElBQUksUUFBUSxxQkFBcUIsS0FBSyxLQUFLLElBQUksUUFBUSxlQUFlLEtBQUssS0FBSyxJQUFJLFFBQVEsbUJBQW1CO0FBQUEsSUFDN0o7QUFDQSxlQUFXLFVBQVUsd0JBQXdCLFNBQVMsd0JBQXdCO0FBQzVFLFVBQUksTUFBTSxLQUFLO0FBQ2YsVUFBSSxNQUFNLEtBQUs7QUFDZixVQUFJLFFBQVEsSUFBSSxRQUFRLFVBQVU7QUFDbEMsVUFBSSxPQUFPO0FBQ1QsWUFBSSxRQUFRLElBQUksVUFBVSxNQUFNO0FBQ2hDLGVBQU8sQ0FBQyxTQUFTLFVBQVUsT0FBTyxlQUFlLEtBQUssRUFBRSxNQUFNLFNBQVMsUUFBUTtBQUM3RSxpQkFBTyxXQUFXLFNBQVMsV0FBVyxPQUFPLFNBQVMsT0FBTyxXQUFXO0FBQUEsUUFDMUUsQ0FBQztBQUFBLE1BQ0g7QUFDQSxVQUFJLGtCQUFrQixjQUFjLElBQUksUUFBUSxxQkFBcUIsQ0FBQztBQUN0RSxVQUFJLENBQUMsTUFBTSxlQUFlLEdBQUc7QUFDM0IsWUFBSSxlQUFlLGNBQWMsSUFBSSxVQUFVLGVBQWUsQ0FBQztBQUMvRCxlQUFPLE1BQU0sWUFBWSxLQUFLLGVBQWU7QUFBQSxNQUMvQztBQUNBLGFBQU87QUFBQSxJQUNUO0FBQ0EsZUFBVyxVQUFVLDRCQUE0QixTQUFTLDRCQUE0QjtBQUNwRixVQUFJLE1BQU0sS0FBSztBQUNmLFVBQUksYUFBYSxrQkFBa0I7QUFDbkMsVUFBSSxhQUFhLGtCQUFrQjtBQUNuQyxVQUFJLGFBQWEsZ0JBQWdCO0FBQ2pDLFVBQUksYUFBYSxlQUFlO0FBQ2hDLFVBQUksYUFBYSxjQUFjO0FBQUEsSUFDakM7QUFDQSxlQUFXLFVBQVUsY0FBYyxTQUFTLGNBQWM7QUFDeEQsVUFBSSxNQUFNLEtBQUs7QUFDZixZQUFNLGNBQWM7QUFDcEIsV0FBSywwQkFBMEI7QUFDL0IsVUFBSSxhQUFhO0FBQ2pCLFVBQUksSUFBSTtBQUFBLElBQ1Y7QUFDQSxlQUFXLFVBQVUscUJBQXFCLFNBQVMscUJBQXFCO0FBQ3RFLFVBQUksT0FBTyxJQUFJLE1BQU0sd0NBQXdDO0FBQzdELFlBQU0sc0JBQXNCO0FBQzVCLFdBQUssTUFBTSxLQUFLLElBQUk7QUFBQSxJQUN0QjtBQUNBLGVBQVcsVUFBVSxhQUFhLFNBQVMsYUFBYTtBQUN0RCxVQUFJLGFBQWEsS0FBSyxJQUFJO0FBQzFCLGFBQU8sY0FBYyxPQUFPLGFBQWEsT0FBTyxlQUFlO0FBQUEsSUFDakU7QUFDQSxlQUFXLFVBQVUsY0FBYyxTQUFTLFlBQVksT0FBTztBQUM3RCxjQUFRLE1BQU0sTUFBTTtBQUFBLFFBQ2xCLEtBQUs7QUFBQSxRQUNMLEtBQUs7QUFBQSxRQUNMLEtBQUs7QUFDSCxlQUFLLE1BQU0sS0FBSyxLQUFLO0FBQ3JCO0FBQUEsUUFDRjtBQUNFLGVBQUssTUFBTSxLQUFLLEtBQUs7QUFDckI7QUFBQSxNQUNKO0FBQUEsSUFDRjtBQUNBLGVBQVcsVUFBVSxVQUFVLFNBQVMsVUFBVTtBQUNoRCxhQUFPLE1BQU0sS0FBSyxJQUFJLFNBQVM7QUFBQSxRQUM3QixNQUFNLEtBQUssSUFBSSxVQUFVLE1BQU07QUFBQSxRQUMvQixpQkFBaUIsS0FBSyxJQUFJLFVBQVUsZUFBZTtBQUFBLE1BQ3JELENBQUM7QUFBQSxJQUNIO0FBQ0EsZUFBVyxVQUFVLGVBQWUsU0FBUyxlQUFlO0FBQzFELFVBQUksVUFBVSxLQUFLLElBQUksUUFBUSxVQUFVO0FBQ3pDLFVBQUksQ0FBQyxTQUFTO0FBQ1osZUFBTztBQUFBLE1BQ1Q7QUFDQSxVQUFJLFFBQVEsUUFBUSxHQUFHLE1BQU0sSUFBSTtBQUMvQixZQUFJLFFBQVEsS0FBSyxJQUFJLFVBQVUsTUFBTTtBQUNyQyxlQUFPLFFBQVEsU0FBUyxRQUFRLFFBQVEsS0FBSyxNQUFNLEVBQUU7QUFBQSxNQUN2RDtBQUNBLFVBQUksZUFBZSxLQUFLLElBQUksVUFBVSxlQUFlO0FBQ3JELGFBQU8sY0FBYyxZQUFZLEtBQUssY0FBYyxPQUFPO0FBQUEsSUFDN0Q7QUFDQSxlQUFXLFVBQVUsV0FBVyxTQUFTLFNBQVMsT0FBTztBQUN2RCxVQUFJLE1BQU0sS0FBSztBQUNmLFVBQUksYUFBYSxNQUFNLFdBQVcsR0FBRztBQUNuQyxhQUFLLEtBQUssYUFBYSxLQUFLLEtBQUs7QUFDakM7QUFBQSxNQUNGO0FBQ0EsVUFBSSxLQUFLLGlCQUFpQixHQUFHO0FBQzNCLGFBQUssTUFBTSxHQUFHO0FBQ2Q7QUFBQSxNQUNGO0FBQ0EsVUFBSSxNQUFNLFVBQVUsdUJBQXVCLEtBQUssT0FBTyxHQUFHLENBQUM7QUFDM0QsVUFBSSxNQUFNLG1CQUFtQixlQUFlLG9CQUFvQixXQUFXLEdBQUcsQ0FBQztBQUMvRSxVQUFJLGFBQWE7QUFDakIsVUFBSSxVQUFVLGdCQUFnQiwwQkFBMEI7QUFDeEQsVUFBSSxVQUFVLGtCQUFrQixPQUFPLFdBQVcsR0FBRyxDQUFDO0FBQ3RELFVBQUksVUFBVSwyQkFBMkIsb0JBQW9CO0FBQzdELFVBQUksVUFBVSwwQkFBMEIsU0FBUztBQUNqRCxVQUFJLFVBQVUsWUFBWSxHQUFHO0FBQzdCLFVBQUksSUFBSSxHQUFHO0FBQUEsSUFDYjtBQUNBLGVBQVcsVUFBVSxPQUFPLFNBQVMsS0FBSyxLQUFLO0FBQzdDLFVBQUlpRixRQUFPLEtBQUs7QUFDaEIsV0FBSyxNQUFNO0FBQ1gsVUFBSSxRQUFRLE9BQU8sS0FBSyxJQUFJO0FBQzVCLFVBQUksVUFBVSxJQUFJO0FBQ2hCLGFBQUssTUFBTSxHQUFHO0FBQ2QsZUFBTztBQUFBLE1BQ1Q7QUFDQSxVQUFJLENBQUMsTUFBTSxRQUFRLElBQUksR0FBRztBQUN4QixhQUFLLE1BQU0sR0FBRztBQUNkLGVBQU87QUFBQSxNQUNUO0FBQ0EsVUFBSTtBQUNKLFVBQUlBLFVBQVMsTUFBTTtBQUNqQixZQUFJLE9BQU87QUFDVCxrQkFBUSxVQUFVLE1BQU0sTUFBTSxLQUFLO0FBQUEsUUFDckM7QUFDQSxZQUFJLGVBQWUsS0FBSyxLQUFLLEdBQUc7QUFDOUIsZ0JBQU0sdUJBQXVCLEtBQUs7QUFDbEMsZUFBSyxNQUFNLEdBQUc7QUFDZCxpQkFBTztBQUFBLFFBQ1Q7QUFDQSxnQkFBUSxNQUFNLE1BQU0sR0FBRztBQUN2QixnQkFBUSxVQUFVLEtBQUtBLE9BQU0sS0FBSyxDQUFDO0FBQUEsTUFDckMsT0FBTztBQUNMLFlBQUksZUFBZSxLQUFLLEtBQUssR0FBRztBQUM5QixnQkFBTSx1QkFBdUIsS0FBSztBQUNsQyxlQUFLLE1BQU0sR0FBRztBQUNkLGlCQUFPO0FBQUEsUUFDVDtBQUNBLGdCQUFRLFVBQVUsS0FBSyxFQUFFLE1BQU0sR0FBRztBQUNsQyxnQkFBUSxRQUFRLEtBQUs7QUFBQSxNQUN2QjtBQUNBLFVBQUksZ0JBQWdCLEtBQUssR0FBRztBQUMxQixjQUFNLG1CQUFtQixLQUFLLFdBQVcsS0FBSztBQUM5QyxnQkFBUSxLQUFLLFdBQVc7QUFBQSxVQUN0QixLQUFLO0FBQ0g7QUFBQSxVQUNGLEtBQUs7QUFDSCxpQkFBSyxNQUFNLEdBQUc7QUFDZCxtQkFBTztBQUFBLFVBQ1QsS0FBSztBQUFBLFVBQ0w7QUFDRSxpQkFBSyxNQUFNLEdBQUc7QUFDZCxtQkFBTztBQUFBLFFBQ1g7QUFBQSxNQUNGO0FBQ0EsVUFBSSxLQUFLLE9BQU8sVUFBVSxLQUFLLGlCQUFpQixHQUFHO0FBQ2pELGFBQUssVUFBVSxLQUFLO0FBQ3BCLGVBQU87QUFBQSxNQUNUO0FBQ0EsV0FBSyxTQUFTLEtBQUs7QUFDbkIsYUFBTztBQUFBLElBQ1Q7QUFDQSxlQUFXLFVBQVUsT0FBTyxTQUFTLE1BQU0sT0FBTyxNQUFNO0FBQ3RELFVBQUksTUFBTSxLQUFLO0FBQ2YsVUFBSSxVQUFVLEtBQUs7QUFDbkIsVUFBSSxPQUFPLENBQUM7QUFDWixVQUFJLE1BQU0sS0FBSztBQUNmLFVBQUksTUFBTSxLQUFLO0FBQ2YsVUFBSSxTQUFTLElBQUksUUFBUTtBQUN6QixVQUFJLFNBQVMsUUFBUSxTQUFTO0FBQzlCLFVBQUksSUFBSSxhQUFhO0FBQ25CLGFBQUssbUJBQW1CO0FBQ3hCO0FBQUEsTUFDRjtBQUNBLFlBQU0sYUFBYSxLQUFLO0FBQ3hCLFdBQUssVUFBVSxPQUFPLElBQUk7QUFDMUIsV0FBSyxLQUFLLEtBQUs7QUFDZixVQUFJLEtBQUssaUJBQWlCLEdBQUc7QUFDM0IsWUFBSSxLQUFLLHNCQUFzQixHQUFHO0FBQ2hDLGVBQUssTUFBTSxHQUFHO0FBQ2Q7QUFBQSxRQUNGO0FBQ0EsWUFBSSxLQUFLLFdBQVcsS0FBSyxLQUFLLFFBQVEsR0FBRztBQUN2QyxlQUFLLFlBQVk7QUFDakI7QUFBQSxRQUNGO0FBQUEsTUFDRjtBQUNBLFlBQU0sS0FBSyxJQUFJLEdBQUcsTUFBTSxNQUFNO0FBQzlCLFVBQUksUUFBUSxRQUFRLFFBQVE7QUFDMUIsWUFBSSxRQUFRLFFBQVEsTUFBTSxTQUFTO0FBQ25DLFlBQUksTUFBTSxNQUFPLE9BQU07QUFBQSxNQUN6QjtBQUNBLFVBQUksS0FBSyxpQkFBaUIsbUJBQW1CLEtBQUssTUFBTSxHQUFHO0FBQ3pELGlCQUFTLFdBQVcsS0FBSyxRQUFRO0FBQUEsVUFDL0IsU0FBUztBQUFBLFFBQ1gsQ0FBQztBQUNELFlBQUksQ0FBQyxLQUFLLGFBQWEsR0FBRztBQUN4QixnQkFBTSxhQUFhO0FBQ25CLG1CQUFTO0FBQUEsUUFDWDtBQUNBLFlBQUksV0FBVyxJQUFJO0FBQ2pCLGdCQUFNLHFCQUFxQjtBQUMzQixjQUFJLFVBQVUsaUJBQWlCLGFBQWEsU0FBUyxHQUFHLENBQUM7QUFDekQsaUJBQU8sS0FBSyxNQUFNLEtBQUs7QUFBQSxZQUNyQixTQUFTLEVBQUUsaUJBQWlCLElBQUksVUFBVSxlQUFlLEVBQUU7QUFBQSxVQUM3RCxDQUFDO0FBQUEsUUFDSDtBQUNBLFlBQUksV0FBVyxNQUFNLE9BQU8sV0FBVyxHQUFHO0FBQ3hDLGdCQUFNLFlBQVksTUFBTTtBQUN4QixjQUFJLGFBQWE7QUFDakIsY0FBSSxVQUFVLGlCQUFpQixhQUFhLFNBQVMsS0FBSyxPQUFPLENBQUMsQ0FBQyxDQUFDO0FBQ3BFLG9CQUFVLE9BQU8sQ0FBQyxFQUFFO0FBQ3BCLGdCQUFNLE9BQU8sQ0FBQyxFQUFFLE1BQU0sT0FBTyxDQUFDLEVBQUUsUUFBUTtBQUFBLFFBQzFDO0FBQUEsTUFDRjtBQUNBLGVBQVNwRixTQUFRLFNBQVM7QUFDeEIsYUFBS0EsS0FBSSxJQUFJLFFBQVFBLEtBQUk7QUFBQSxNQUMzQjtBQUNBLFdBQUssUUFBUTtBQUNiLFdBQUssTUFBTSxLQUFLLElBQUksUUFBUSxTQUFTLE1BQU0sQ0FBQztBQUM1QyxVQUFJLFVBQVUsa0JBQWtCLEdBQUc7QUFDbkMsVUFBSSxJQUFJLFdBQVcsUUFBUTtBQUN6QixZQUFJLElBQUk7QUFDUjtBQUFBLE1BQ0Y7QUFDQSxXQUFLLE9BQU8sT0FBTyxJQUFJO0FBQUEsSUFDekI7QUFDQSxlQUFXLFVBQVUsV0FBVyxTQUFTLFNBQVMsT0FBTztBQUN2RCxVQUFJLElBQUk7QUFDUixVQUFJLFFBQVE7QUFDWixZQUFNLGFBQWEsS0FBSztBQUN4QixTQUFHLEtBQUssT0FBTyxTQUFTLE9BQU8sTUFBTSxNQUFNO0FBQ3pDLFlBQUksa0JBQWtCLE1BQU0sTUFBTSxTQUFTLENBQUMsTUFBTTtBQUNsRCxZQUFJLFFBQVEsS0FBSyxTQUFTLFlBQVksQ0FBQyxRQUFRLEtBQUssS0FBSyxDQUFDLGlCQUFpQjtBQUN6RSxpQkFBT2tFLE1BQUssSUFBSTtBQUFBLFFBQ2xCO0FBQ0EsWUFBSSxLQUFNLFFBQU8sTUFBTSxZQUFZLElBQUk7QUFDdkMsWUFBSSxLQUFLLFlBQVksRUFBRyxRQUFPLE1BQU0sU0FBUyxLQUFLO0FBQ25ELFlBQUksZ0JBQWlCLFFBQU8sTUFBTSxNQUFNLEdBQUc7QUFDM0MsY0FBTSxLQUFLLFFBQVEsT0FBTyxJQUFJO0FBQzlCLGNBQU0sS0FBSyxPQUFPLElBQUk7QUFBQSxNQUN4QixDQUFDO0FBQ0QsZUFBU0EsTUFBSyxNQUFNO0FBQ2xCLFlBQUksTUFBTSxZQUFZLFVBQVUsR0FBRztBQUNqQyxpQkFBTyxPQUFPLE1BQU0sWUFBWSxJQUFJLElBQUksTUFBTSxNQUFNLEdBQUc7QUFBQSxRQUN6RDtBQUNBLFlBQUksSUFBSSxRQUFRLE1BQU0sTUFBTSxZQUFZLEdBQUc7QUFDM0MsY0FBTSxhQUFhLENBQUM7QUFDcEIsV0FBRyxLQUFLLEdBQUcsU0FBUyxNQUFNLE1BQU07QUFDOUIsY0FBSSxLQUFNLFFBQU9BLE1BQUssSUFBSTtBQUMxQixjQUFJLEtBQUssWUFBWSxFQUFHLFFBQU9BLE1BQUs7QUFDcEMsZ0JBQU0sS0FBSyxRQUFRLEdBQUcsSUFBSTtBQUMxQixnQkFBTSxLQUFLLEdBQUcsSUFBSTtBQUFBLFFBQ3BCLENBQUM7QUFBQSxNQUNIO0FBQUEsSUFDRjtBQUNBLGVBQVcsVUFBVSxZQUFZLFNBQVMsVUFBVSxPQUFPO0FBQ3pELFVBQUksSUFBSTtBQUNSLFVBQUksUUFBUTtBQUNaLGVBQVNBLE1BQUssTUFBTTtBQUNsQixZQUFJLEVBQUUsS0FBSyxNQUFNLE9BQU8sUUFBUTtBQUM5QixjQUFJLEtBQU0sUUFBTyxNQUFNLFlBQVksSUFBSTtBQUN2QyxpQkFBTyxNQUFNLE1BQU0sR0FBRztBQUFBLFFBQ3hCO0FBQ0EsWUFBSSxJQUFJLEtBQUssT0FBTyxNQUFNLE9BQU8sQ0FBQyxDQUFDO0FBQ25DLGNBQU0sYUFBYSxDQUFDO0FBQ3BCLFdBQUcsS0FBSyxHQUFHLFNBQVMsTUFBTSxNQUFNO0FBQzlCLGNBQUksS0FBTSxRQUFPQSxNQUFLLElBQUk7QUFDMUIsY0FBSSxLQUFLLFlBQVksRUFBRyxRQUFPQSxNQUFLO0FBQ3BDLGdCQUFNLEtBQUssUUFBUSxHQUFHLElBQUk7QUFDMUIsZ0JBQU0sS0FBSyxHQUFHLElBQUk7QUFBQSxRQUNwQixDQUFDO0FBQUEsTUFDSDtBQUNBLE1BQUFBLE1BQUs7QUFBQSxJQUNQO0FBQ0EsZUFBVyxVQUFVLFNBQVMsU0FBU25DLFFBQU8sT0FBTyxTQUFTO0FBQzVELFVBQUksUUFBUTtBQUNaLFVBQUksTUFBTSxLQUFLO0FBQ2YsVUFBSWtJLFdBQVUsR0FBRyxpQkFBaUIsT0FBTyxPQUFPO0FBQ2hELFdBQUssS0FBSyxVQUFVQSxRQUFPO0FBQzNCLE1BQUFBLFNBQVEsS0FBSyxHQUFHO0FBQ2hCLGVBQVMsVUFBVTtBQUNqQixRQUFBQSxTQUFRLFFBQVE7QUFBQSxNQUNsQjtBQUNBLGlCQUFXLEtBQUssT0FBTztBQUN2QixNQUFBQSxTQUFRLEdBQUcsU0FBUyxTQUFTLFFBQVEsTUFBTTtBQUN6QyxnQkFBUTtBQUNSLGNBQU0sWUFBWSxJQUFJO0FBQUEsTUFDeEIsQ0FBQztBQUNELE1BQUFBLFNBQVEsR0FBRyxPQUFPLFNBQVMsUUFBUTtBQUNqQyxjQUFNLEtBQUssS0FBSztBQUFBLE1BQ2xCLENBQUM7QUFBQSxJQUNIO0FBQ0EsZUFBVyxVQUFVLE9BQU8sU0FBUyxLQUFLLE9BQU87QUFDL0MsVUFBSSxNQUFNLEtBQUs7QUFDZixVQUFJLElBQUksVUFBVSxjQUFjLEVBQUc7QUFDbkMsVUFBSSxNQUFNLFFBQVEsS0FBSztBQUN2QixVQUFJLFFBQVEsS0FBSyxZQUFZLEdBQUcsS0FBSztBQUNyQyxZQUFNLG1CQUFtQixLQUFLO0FBQzlCLFVBQUksVUFBVSxnQkFBZ0IsS0FBSztBQUFBLElBQ3JDO0FBQ0EsZUFBVyxVQUFVLFlBQVksU0FBUyxVQUFVLE9BQU8sTUFBTTtBQUMvRCxVQUFJLE1BQU0sS0FBSztBQUNmLFdBQUssS0FBSyxXQUFXLEtBQUssT0FBTyxJQUFJO0FBQ3JDLFVBQUksS0FBSyxpQkFBaUIsQ0FBQyxJQUFJLFVBQVUsZUFBZSxHQUFHO0FBQ3pELGNBQU0sZUFBZTtBQUNyQixZQUFJLFVBQVUsaUJBQWlCLE9BQU87QUFBQSxNQUN4QztBQUNBLFVBQUksS0FBSyxpQkFBaUIsQ0FBQyxJQUFJLFVBQVUsZUFBZSxHQUFHO0FBQ3pELFlBQUksZUFBZSxxQkFBcUIsS0FBSyxNQUFNLEtBQUssVUFBVSxHQUFHO0FBQ3JFLFlBQUksS0FBSyxZQUFZO0FBQ25CLDBCQUFnQjtBQUFBLFFBQ2xCO0FBQ0EsY0FBTSxvQkFBb0IsWUFBWTtBQUN0QyxZQUFJLFVBQVUsaUJBQWlCLFlBQVk7QUFBQSxNQUM3QztBQUNBLFVBQUksS0FBSyxpQkFBaUIsQ0FBQyxJQUFJLFVBQVUsZUFBZSxHQUFHO0FBQ3pELFlBQUksV0FBVyxLQUFLLE1BQU0sWUFBWTtBQUN0QyxjQUFNLGVBQWUsUUFBUTtBQUM3QixZQUFJLFVBQVUsaUJBQWlCLFFBQVE7QUFBQSxNQUN6QztBQUNBLFVBQUksS0FBSyxTQUFTLENBQUMsSUFBSSxVQUFVLE1BQU0sR0FBRztBQUN4QyxZQUFJbEssT0FBTSxLQUFLLElBQUk7QUFDbkIsY0FBTSxXQUFXQSxJQUFHO0FBQ3BCLFlBQUksVUFBVSxRQUFRQSxJQUFHO0FBQUEsTUFDM0I7QUFBQSxJQUNGO0FBQ0EsYUFBUyxhQUFhLEtBQUs7QUFDekIsaUJBQVcsVUFBVSxJQUFJLGVBQWUsR0FBRztBQUN6QyxZQUFJLGFBQWEsTUFBTTtBQUFBLE1BQ3pCO0FBQUEsSUFDRjtBQUNBLGFBQVMsdUJBQXVCLEtBQUs7QUFDbkMsZUFBUyxJQUFJLEdBQUcsSUFBSSxJQUFJLFFBQVEsS0FBSztBQUNuQyxZQUFJLElBQUksQ0FBQyxNQUFNLEtBQUs7QUFDbEI7QUFBQSxRQUNGO0FBQUEsTUFDRjtBQUNBLGFBQU8sSUFBSSxJQUFJLE1BQU0sSUFBSSxPQUFPLENBQUMsSUFBSTtBQUFBLElBQ3ZDO0FBQ0EsYUFBUyxnQkFBZ0IsT0FBTztBQUM5QixlQUFTLElBQUksR0FBRyxJQUFJLE1BQU0sUUFBUSxLQUFLO0FBQ3JDLFlBQUksT0FBTyxNQUFNLENBQUM7QUFDbEIsWUFBSSxLQUFLLFNBQVMsS0FBSyxLQUFLLENBQUMsTUFBTSxLQUFLO0FBQ3RDLGlCQUFPO0FBQUEsUUFDVDtBQUFBLE1BQ0Y7QUFDQSxhQUFPO0FBQUEsSUFDVDtBQUNBLGFBQVMsYUFBYSxNQUFNLE1BQU0sT0FBTztBQUN2QyxhQUFPLE9BQU8sT0FBTyxRQUFRLE1BQU0sUUFBUSxNQUFNLE1BQU0sTUFBTSxPQUFPLE1BQU07QUFBQSxJQUM1RTtBQUNBLGFBQVMsbUJBQW1CLE9BQU8sTUFBTTtBQUN2QyxhQUFPLCtFQUErRSxRQUFRLHFDQUFxQyxPQUFPO0FBQUEsSUFDNUk7QUFDQSxhQUFTLGdCQUFnQixRQUFRLE1BQU07QUFDckMsVUFBSSxDQUFDLE1BQU07QUFDVCxlQUFPLFlBQVksTUFBTTtBQUFBLE1BQzNCO0FBQ0EsYUFBTyxnQkFBZ0IsUUFBUSxZQUFZLFFBQVEsTUFBTSxFQUFFLFFBQVEsTUFBTSxDQUFDLElBQUksWUFBWSxRQUFRLElBQUk7QUFBQSxJQUN4RztBQUNBLGFBQVMsT0FBTyxPQUFPO0FBQ3JCLFVBQUk7QUFDRixlQUFPLG1CQUFtQixLQUFLO0FBQUEsTUFDakMsU0FBUyxNQUFNO0FBQ2IsZUFBTztBQUFBLE1BQ1Q7QUFBQSxJQUNGO0FBQ0EsYUFBUyxhQUFhLFNBQVMsTUFBTTtBQUNuQyxVQUFJLFFBQVEsT0FBTyxRQUFRLGtCQUFrQixhQUFhLFFBQVEsVUFBVSxJQUFJLEVBQUUsU0FBUyxRQUFRLGNBQWMsSUFBSTtBQUNySCxhQUFPLFFBQVE7QUFBQSxJQUNqQjtBQUNBLGFBQVMsY0FBY0EsTUFBSyxNQUFNO0FBQ2hDLFVBQUksT0FBTyxDQUFDLEVBQUUsT0FBT0EsUUFBTyxDQUFDLENBQUM7QUFDOUIsZUFBUyxJQUFJLEdBQUcsSUFBSSxLQUFLLFFBQVEsS0FBSztBQUNwQyxZQUFJLE9BQU8sS0FBSyxDQUFDLE1BQU0sVUFBVTtBQUMvQixnQkFBTSxJQUFJLFVBQVUsT0FBTyxvQ0FBb0M7QUFBQSxRQUNqRTtBQUFBLE1BQ0Y7QUFDQSxhQUFPO0FBQUEsSUFDVDtBQUNBLGFBQVMsY0FBYyxNQUFNO0FBQzNCLFVBQUksWUFBWSxRQUFRLEtBQUssTUFBTSxJQUFJO0FBQ3ZDLGFBQU8sT0FBTyxjQUFjLFdBQVcsWUFBWTtBQUFBLElBQ3JEO0FBQ0EsYUFBUyxlQUFlLEtBQUs7QUFDM0IsVUFBSW9KLE9BQU07QUFDVixVQUFJLE9BQU8sQ0FBQztBQUNaLFVBQUksUUFBUTtBQUNaLGVBQVMsSUFBSSxHQUFHLE1BQU0sSUFBSSxRQUFRLElBQUksS0FBSyxLQUFLO0FBQzlDLGdCQUFRLElBQUksV0FBVyxDQUFDLEdBQUc7QUFBQSxVQUN6QixLQUFLO0FBQ0gsZ0JBQUksVUFBVUEsTUFBSztBQUNqQixzQkFBUUEsT0FBTSxJQUFJO0FBQUEsWUFDcEI7QUFDQTtBQUFBLFVBQ0YsS0FBSztBQUNILGdCQUFJLFVBQVVBLE1BQUs7QUFDakIsbUJBQUssS0FBSyxJQUFJLFVBQVUsT0FBT0EsSUFBRyxDQUFDO0FBQUEsWUFDckM7QUFDQSxvQkFBUUEsT0FBTSxJQUFJO0FBQ2xCO0FBQUEsVUFDRjtBQUNFLFlBQUFBLE9BQU0sSUFBSTtBQUNWO0FBQUEsUUFDSjtBQUFBLE1BQ0Y7QUFDQSxVQUFJLFVBQVVBLE1BQUs7QUFDakIsYUFBSyxLQUFLLElBQUksVUFBVSxPQUFPQSxJQUFHLENBQUM7QUFBQSxNQUNyQztBQUNBLGFBQU87QUFBQSxJQUNUO0FBQ0EsYUFBUyxXQUFXLEtBQUssU0FBUztBQUNoQyxVQUFJLE9BQU8sT0FBTyxLQUFLLE9BQU87QUFDOUIsZUFBUyxJQUFJLEdBQUcsSUFBSSxLQUFLLFFBQVEsS0FBSztBQUNwQyxZQUFJLE1BQU0sS0FBSyxDQUFDO0FBQ2hCLFlBQUksVUFBVSxLQUFLLFFBQVEsR0FBRyxDQUFDO0FBQUEsTUFDakM7QUFBQSxJQUNGO0FBQUEsRUFDRjtBQUNGLENBQUM7QUFHRCxJQUFJLGVBQWV6SixZQUFXO0FBQUEsRUFDNUIsNkJBQTZCLFVBQVUsU0FBUztBQUM5QztBQUNBLFlBQVEsVUFBVTtBQUNsQixZQUFRLFFBQVEsU0FBU3dLO0FBQ3pCLFFBQUksb0JBQW9CO0FBQ3hCLGFBQVNBLFFBQU8sUUFBUSxPQUFPO0FBQzdCLFVBQUksT0FBTyxXQUFXLFVBQVU7QUFDOUIsY0FBTSxJQUFJLFVBQVUsNkJBQTZCO0FBQUEsTUFDbkQ7QUFDQSxVQUFJLENBQUMsT0FBTztBQUNWLGNBQU0sSUFBSSxVQUFVLDRCQUE0QjtBQUFBLE1BQ2xEO0FBQ0EsVUFBSSxTQUFTLENBQUMsTUFBTSxRQUFRLEtBQUssSUFBSXJLLE9BQU0sT0FBTyxLQUFLLENBQUMsSUFBSTtBQUM1RCxlQUFTLElBQUksR0FBRyxJQUFJLE9BQU8sUUFBUSxLQUFLO0FBQ3RDLFlBQUksQ0FBQyxrQkFBa0IsS0FBSyxPQUFPLENBQUMsQ0FBQyxHQUFHO0FBQ3RDLGdCQUFNLElBQUksVUFBVSxnREFBZ0Q7QUFBQSxRQUN0RTtBQUFBLE1BQ0Y7QUFDQSxVQUFJLFdBQVcsS0FBSztBQUNsQixlQUFPO0FBQUEsTUFDVDtBQUNBLFVBQUlFLE9BQU07QUFDVixVQUFJLE9BQU9GLE9BQU0sT0FBTyxZQUFZLENBQUM7QUFDckMsVUFBSSxPQUFPLFFBQVEsR0FBRyxNQUFNLE1BQU0sS0FBSyxRQUFRLEdBQUcsTUFBTSxJQUFJO0FBQzFELGVBQU87QUFBQSxNQUNUO0FBQ0EsZUFBUyxJQUFJLEdBQUcsSUFBSSxPQUFPLFFBQVEsS0FBSztBQUN0QyxZQUFJLE1BQU0sT0FBTyxDQUFDLEVBQUUsWUFBWTtBQUNoQyxZQUFJLEtBQUssUUFBUSxHQUFHLE1BQU0sSUFBSTtBQUM1QixlQUFLLEtBQUssR0FBRztBQUNiLFVBQUFFLE9BQU1BLE9BQU1BLE9BQU0sT0FBTyxPQUFPLENBQUMsSUFBSSxPQUFPLENBQUM7QUFBQSxRQUMvQztBQUFBLE1BQ0Y7QUFDQSxhQUFPQTtBQUFBLElBQ1Q7QUFDQSxhQUFTRixPQUFNLFFBQVE7QUFDckIsVUFBSXNKLE9BQU07QUFDVixVQUFJLE9BQU8sQ0FBQztBQUNaLFVBQUksUUFBUTtBQUNaLGVBQVMsSUFBSSxHQUFHLE1BQU0sT0FBTyxRQUFRLElBQUksS0FBSyxLQUFLO0FBQ2pELGdCQUFRLE9BQU8sV0FBVyxDQUFDLEdBQUc7QUFBQSxVQUM1QixLQUFLO0FBQ0gsZ0JBQUksVUFBVUEsTUFBSztBQUNqQixzQkFBUUEsT0FBTSxJQUFJO0FBQUEsWUFDcEI7QUFDQTtBQUFBLFVBQ0YsS0FBSztBQUNILGlCQUFLLEtBQUssT0FBTyxVQUFVLE9BQU9BLElBQUcsQ0FBQztBQUN0QyxvQkFBUUEsT0FBTSxJQUFJO0FBQ2xCO0FBQUEsVUFDRjtBQUNFLFlBQUFBLE9BQU0sSUFBSTtBQUNWO0FBQUEsUUFDSjtBQUFBLE1BQ0Y7QUFDQSxXQUFLLEtBQUssT0FBTyxVQUFVLE9BQU9BLElBQUcsQ0FBQztBQUN0QyxhQUFPO0FBQUEsSUFDVDtBQUNBLGFBQVMsS0FBSyxLQUFLLE9BQU87QUFDeEIsVUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLGFBQWEsQ0FBQyxJQUFJLFdBQVc7QUFDNUMsY0FBTSxJQUFJLFVBQVUsMEJBQTBCO0FBQUEsTUFDaEQ7QUFDQSxVQUFJcEosT0FBTSxJQUFJLFVBQVUsTUFBTSxLQUFLO0FBQ25DLFVBQUksU0FBUyxNQUFNLFFBQVFBLElBQUcsSUFBSUEsS0FBSSxLQUFLLElBQUksSUFBSSxPQUFPQSxJQUFHO0FBQzdELFVBQUlBLE9BQU1tSyxRQUFPLFFBQVEsS0FBSyxHQUFHO0FBQy9CLFlBQUksVUFBVSxRQUFRbkssSUFBRztBQUFBLE1BQzNCO0FBQUEsSUFDRjtBQUFBLEVBQ0Y7QUFDRixDQUFDO0FBR0QsSUFBSW9LLG9CQUFtQnpLLFlBQVc7QUFBQSxFQUNoQyx1Q0FBdUMsVUFBVSxTQUFTO0FBQ3hEO0FBQ0EsUUFBSSxxQkFBcUIsNEJBQTRCO0FBQ3JELFFBQUksY0FBYyxvQkFBb0I7QUFDdEMsUUFBSSxZQUFZLGtCQUFrQjtBQUNsQyxRQUFJLGFBQWEsb0JBQW9CO0FBQ3JDLFFBQUlpSyxRQUFPLFFBQVEsV0FBVztBQUM5QixRQUFJLGFBQWEsb0JBQW9CO0FBQ3JDLFFBQUksT0FBT1QscUJBQW9CO0FBQy9CLFFBQUksT0FBTyxRQUFRLFdBQVc7QUFDOUIsUUFBSSxpQkFBaUIsUUFBUSxXQUFXLEVBQUU7QUFDMUMsUUFBSSxXQUFXLGlCQUFpQjtBQUNoQyxRQUFJLE9BQU8seUJBQXlCLEVBQUU7QUFDdEMsUUFBSSxnQkFBZ0JHLGdCQUFlLEVBQUU7QUFDckMsUUFBSSxpQkFBaUJBLGdCQUFlLEVBQUU7QUFDdEMsUUFBSSxhQUFhQSxnQkFBZSxFQUFFO0FBQ2xDLFFBQUksU0FBUyxlQUFlO0FBQzVCLFFBQUksT0FBTyxhQUFhO0FBQ3hCLFFBQUksVUFBVSxLQUFLO0FBQ25CLFFBQUksVUFBVSxLQUFLO0FBQ25CLFFBQUksT0FBTyxhQUFhO0FBQ3hCLFFBQUksTUFBTSxPQUFPLE9BQU9NLE1BQUssZUFBZSxTQUFTO0FBQ3JELFlBQVEsVUFBVTtBQUNsQixRQUFJLFNBQVMsU0FBUyxPQUFPLE1BQU07QUFDakMsVUFBSSxDQUFDLE9BQU8sVUFBVSxJQUFJLEdBQUc7QUFDM0IsY0FBTSxJQUFJLFVBQVUsd0JBQXdCLEtBQUssVUFBVSxJQUFJLENBQUMsbUNBQW1DO0FBQUEsTUFDckc7QUFDQSxVQUFJLE9BQU8sT0FBTyxPQUFPLEtBQUs7QUFDNUIsY0FBTSxJQUFJLFdBQVcsd0JBQXdCLEtBQUssVUFBVSxJQUFJLENBQUMsMkRBQTJEO0FBQUEsTUFDOUg7QUFDQSxXQUFLLGFBQWE7QUFDbEIsYUFBTztBQUFBLElBQ1Q7QUFDQSxRQUFJLFFBQVEsU0FBUyxPQUFPO0FBQzFCLFVBQUksT0FBTyxLQUFLLElBQUksTUFBTSxLQUFLO0FBQy9CLFVBQUksS0FBTSxTQUFRO0FBQ2xCLGFBQU8sS0FBSyxJQUFJLFFBQVEsT0FBTyxPQUFPLEtBQUssS0FBSyxFQUFFLElBQUksU0FBUyxLQUFLO0FBQ2xFLFlBQUksTUFBTSxRQUFRLE1BQU0sR0FBRyxDQUFDLEdBQUc7QUFDN0IsaUJBQU8sTUFBTSxHQUFHLEVBQUUsSUFBSSxTQUFTLFlBQVk7QUFDekMsbUJBQU8sSUFBSSxVQUFVLFdBQVcsR0FBRztBQUFBLFVBQ3JDLENBQUMsRUFBRSxLQUFLLElBQUk7QUFBQSxRQUNkLE9BQU87QUFDTCxpQkFBTyxJQUFJLE1BQU0sR0FBRyxDQUFDLFdBQVcsR0FBRztBQUFBLFFBQ3JDO0FBQUEsTUFDRixDQUFDLEVBQUUsS0FBSyxJQUFJLENBQUM7QUFBQSxJQUNmO0FBQ0EsUUFBSSxPQUFPLFNBQVMsTUFBTSxNQUFNO0FBQzlCLFVBQUksUUFBUTtBQUNaLFVBQUk7QUFDSixVQUFJLE1BQU0sS0FBSztBQUNmLFVBQUk7QUFDSixVQUFJLE1BQU0sS0FBSztBQUNmLGNBQVEsT0FBTyxPQUFPO0FBQUE7QUFBQSxRQUVwQixLQUFLO0FBQ0gsY0FBSSxDQUFDLEtBQUssSUFBSSxjQUFjLEdBQUc7QUFDN0IsaUJBQUssS0FBSyxNQUFNO0FBQUEsVUFDbEI7QUFDQTtBQUFBLFFBQ0YsS0FBSztBQUFBLFFBQ0wsS0FBSztBQUFBLFFBQ0wsS0FBSztBQUNILGNBQUksVUFBVSxNQUFNO0FBQ2xCLG9CQUFRO0FBQUEsVUFDVixXQUFXLFlBQVksT0FBTyxLQUFLLEdBQUc7QUFDcEMsZ0JBQUksQ0FBQyxLQUFLLElBQUksY0FBYyxHQUFHO0FBQzdCLG1CQUFLLEtBQUssS0FBSztBQUFBLFlBQ2pCO0FBQUEsVUFDRixPQUFPO0FBQ0wsbUJBQU8sS0FBSyxLQUFLLEtBQUs7QUFBQSxVQUN4QjtBQUNBO0FBQUEsTUFDSjtBQUNBLFVBQUksT0FBTyxVQUFVLFVBQVU7QUFDN0IsbUJBQVc7QUFDWCxlQUFPLEtBQUssSUFBSSxjQUFjO0FBQzlCLFlBQUksT0FBTyxTQUFTLFVBQVU7QUFDNUIsZUFBSyxJQUFJLGdCQUFnQixXQUFXLE1BQU0sT0FBTyxDQUFDO0FBQUEsUUFDcEQ7QUFBQSxNQUNGO0FBQ0EsVUFBSSxTQUFTLElBQUksSUFBSSxTQUFTO0FBQzlCLFVBQUksZUFBZSxDQUFDLEtBQUssSUFBSSxNQUFNLEtBQUssT0FBTyxXQUFXO0FBQzFELFVBQUk7QUFDSixVQUFJLFVBQVUsUUFBUTtBQUNwQixZQUFJLE9BQU8sU0FBUyxLQUFLLEdBQUc7QUFDMUIsZ0JBQU0sTUFBTTtBQUFBLFFBQ2QsV0FBVyxDQUFDLGdCQUFnQixNQUFNLFNBQVMsS0FBSztBQUM5QyxnQkFBTSxPQUFPLFdBQVcsT0FBTyxRQUFRO0FBQUEsUUFDekMsT0FBTztBQUNMLGtCQUFRLE9BQU8sS0FBSyxPQUFPLFFBQVE7QUFDbkMscUJBQVc7QUFDWCxnQkFBTSxNQUFNO0FBQUEsUUFDZDtBQUNBLGFBQUssSUFBSSxrQkFBa0IsR0FBRztBQUFBLE1BQ2hDO0FBQ0EsVUFBSTtBQUNKLFVBQUksZ0JBQWdCLFFBQVEsUUFBUTtBQUNsQyxZQUFJLE9BQU8sT0FBTyxPQUFPLFFBQVEsR0FBRztBQUNsQyxlQUFLLElBQUksUUFBUSxJQUFJO0FBQUEsUUFDdkI7QUFBQSxNQUNGO0FBQ0EsVUFBSSxJQUFJLE1BQU8sTUFBSyxPQUFPLEdBQUc7QUFDOUIsVUFBSSxRQUFRLEtBQUssY0FBYyxRQUFRLEtBQUssWUFBWTtBQUN0RCxhQUFLLGFBQWEsY0FBYztBQUNoQyxhQUFLLGFBQWEsZ0JBQWdCO0FBQ2xDLGFBQUssYUFBYSxtQkFBbUI7QUFDckMsZ0JBQVE7QUFBQSxNQUNWO0FBQ0EsVUFBSSxLQUFLLGVBQWUsS0FBSztBQUMzQixhQUFLLElBQUksa0JBQWtCLEdBQUc7QUFDOUIsYUFBSyxhQUFhLG1CQUFtQjtBQUNyQyxnQkFBUTtBQUFBLE1BQ1Y7QUFDQSxVQUFJLElBQUksV0FBVyxRQUFRO0FBQ3pCLGFBQUssSUFBSTtBQUFBLE1BQ1gsT0FBTztBQUNMLGFBQUssSUFBSSxPQUFPLFFBQVE7QUFBQSxNQUMxQjtBQUNBLGFBQU87QUFBQSxJQUNUO0FBQ0EsUUFBSSxPQUFPLFNBQVMsS0FBSyxLQUFLO0FBQzVCLFVBQUksTUFBTSxLQUFLO0FBQ2YsVUFBSWpCLFdBQVUsSUFBSSxJQUFJLGFBQWE7QUFDbkMsVUFBSSxXQUFXLElBQUksSUFBSSxlQUFlO0FBQ3RDLFVBQUksU0FBUyxJQUFJLElBQUksYUFBYTtBQUNsQyxVQUFJLE9BQU9OLFdBQVUsS0FBSyxVQUFVLFFBQVFNLFFBQU87QUFDbkQsVUFBSSxDQUFDLEtBQUssSUFBSSxjQUFjLEdBQUc7QUFDN0IsYUFBSyxJQUFJLGdCQUFnQixrQkFBa0I7QUFBQSxNQUM3QztBQUNBLGFBQU8sS0FBSyxLQUFLLElBQUk7QUFBQSxJQUN2QjtBQUNBLFFBQUksUUFBUSxTQUFTLE1BQU0sS0FBSztBQUM5QixVQUFJLE1BQU0sS0FBSztBQUNmLFVBQUlBLFdBQVUsSUFBSSxJQUFJLGFBQWE7QUFDbkMsVUFBSSxXQUFXLElBQUksSUFBSSxlQUFlO0FBQ3RDLFVBQUksU0FBUyxJQUFJLElBQUksYUFBYTtBQUNsQyxVQUFJLE9BQU9OLFdBQVUsS0FBSyxVQUFVLFFBQVFNLFFBQU87QUFDbkQsVUFBSSxXQUFXLEtBQUssSUFBSSxNQUFNLElBQUksSUFBSSxxQkFBcUIsQ0FBQztBQUM1RCxVQUFJLENBQUMsS0FBSyxJQUFJLGNBQWMsR0FBRztBQUM3QixhQUFLLElBQUksMEJBQTBCLFNBQVM7QUFDNUMsYUFBSyxJQUFJLGdCQUFnQixrQkFBa0I7QUFBQSxNQUM3QztBQUNBLFVBQUksTUFBTSxRQUFRLFFBQVEsR0FBRztBQUMzQixtQkFBVyxTQUFTLENBQUM7QUFBQSxNQUN2QjtBQUNBLFVBQUksT0FBTyxhQUFhLFlBQVksU0FBUyxXQUFXLEdBQUc7QUFDekQsYUFBSyxJQUFJLDBCQUEwQixTQUFTO0FBQzVDLGFBQUssSUFBSSxnQkFBZ0IsaUJBQWlCO0FBQzFDLG1CQUFXLFNBQVMsUUFBUSxnQkFBZ0IsRUFBRTtBQUM5QyxZQUFJLFNBQVMsUUFBUTtBQUNuQixpQkFBTztBQUFBLFFBQ1QsV0FBVyxPQUFPLFNBQVMsVUFBVTtBQUNuQyxpQkFBTyxLQUFLLFFBQVEsV0FBVyxTQUFTLEVBQUUsUUFBUSxXQUFXLFNBQVM7QUFBQSxRQUN4RTtBQUNBLGVBQU8saUJBQWlCLFdBQVcsd0JBQXdCLFdBQVcsTUFBTSxPQUFPO0FBQUEsTUFDckY7QUFDQSxhQUFPLEtBQUssS0FBSyxJQUFJO0FBQUEsSUFDdkI7QUFDQSxRQUFJLGFBQWEsU0FBUyxXQUFXLFlBQVk7QUFDL0MsVUFBSSxPQUFPLFNBQVMsUUFBUSxVQUFVLEtBQUssT0FBTyxVQUFVO0FBQzVELFdBQUssT0FBTyxVQUFVO0FBQ3RCLFdBQUssS0FBSyxLQUFLO0FBQ2YsYUFBTyxLQUFLLEtBQUssSUFBSTtBQUFBLElBQ3ZCO0FBQ0EsUUFBSSxXQUFXLFNBQVMsU0FBUyxPQUFPLFNBQVMsVUFBVTtBQUN6RCxVQUFJLE9BQU87QUFDWCxVQUFJLE1BQU0sS0FBSztBQUNmLFVBQUksT0FBTztBQUNYLFVBQUl4RSxRQUFPLElBQUk7QUFDZixVQUFJLE9BQU8sV0FBVyxDQUFDO0FBQ3ZCLFVBQUksQ0FBQyxPQUFPO0FBQ1YsY0FBTSxJQUFJLFVBQVUsMkNBQTJDO0FBQUEsTUFDakU7QUFDQSxVQUFJLE9BQU8sVUFBVSxVQUFVO0FBQzdCLGNBQU0sSUFBSSxVQUFVLHVDQUF1QztBQUFBLE1BQzdEO0FBQ0EsVUFBSSxPQUFPLFlBQVksWUFBWTtBQUNqQyxlQUFPO0FBQ1AsZUFBTyxDQUFDO0FBQUEsTUFDVjtBQUNBLFVBQUksQ0FBQyxLQUFLLFFBQVEsQ0FBQyxlQUFlLEtBQUssR0FBRztBQUN4QyxjQUFNLElBQUksVUFBVSx1REFBdUQ7QUFBQSxNQUM3RTtBQUNBLFVBQUksV0FBVyxVQUFVLEtBQUs7QUFDOUIsV0FBSyxPQUFPLEtBQUssSUFBSSxRQUFRLE1BQU07QUFDbkMsVUFBSSxPQUFPLEtBQUssS0FBSyxVQUFVLElBQUk7QUFDbkMsZUFBUyxNQUFNLE1BQU0sTUFBTSxTQUFTLE1BQU07QUFDeEMsWUFBSSxLQUFNLFFBQU8sS0FBSyxJQUFJO0FBQzFCLFlBQUksUUFBUSxLQUFLLFNBQVMsU0FBVSxRQUFPQSxNQUFLO0FBQ2hELFlBQUksUUFBUSxLQUFLLFNBQVMsa0JBQWtCLEtBQUssWUFBWSxTQUFTO0FBQ3BFLFVBQUFBLE1BQUssSUFBSTtBQUFBLFFBQ1g7QUFBQSxNQUNGLENBQUM7QUFBQSxJQUNIO0FBQ0EsUUFBSSxXQUFXLFNBQVMsU0FBUyxPQUFPLFVBQVUsU0FBUyxVQUFVO0FBQ25FLFVBQUksT0FBTztBQUNYLFVBQUksT0FBTztBQUNYLFVBQUksT0FBTyxXQUFXO0FBQ3RCLFVBQUksT0FBTyxhQUFhLFlBQVk7QUFDbEMsZUFBTztBQUNQLGVBQU87QUFDUCxlQUFPO0FBQUEsTUFDVCxXQUFXLE9BQU8sWUFBWSxZQUFZO0FBQ3hDLGVBQU87QUFDUCxlQUFPO0FBQUEsTUFDVDtBQUNBLFVBQUksT0FBTyxhQUFhLGFBQWEsT0FBTyxZQUFZLGNBQWMsWUFBWSxTQUFTO0FBQ3pGLGVBQU87QUFDUCxlQUFPO0FBQUEsTUFDVDtBQUNBLFVBQUksVUFBVTtBQUFBLFFBQ1osdUJBQXVCLG1CQUFtQixRQUFRLEtBQUs7QUFBQSxNQUN6RDtBQUNBLFVBQUksUUFBUSxLQUFLLFNBQVM7QUFDeEIsWUFBSSxPQUFPLE9BQU8sS0FBSyxLQUFLLE9BQU87QUFDbkMsaUJBQVMsSUFBSSxHQUFHLElBQUksS0FBSyxRQUFRLEtBQUs7QUFDcEMsY0FBSSxNQUFNLEtBQUssQ0FBQztBQUNoQixjQUFJLElBQUksWUFBWSxNQUFNLHVCQUF1QjtBQUMvQyxvQkFBUSxHQUFHLElBQUksS0FBSyxRQUFRLEdBQUc7QUFBQSxVQUNqQztBQUFBLFFBQ0Y7QUFBQSxNQUNGO0FBQ0EsYUFBTyxPQUFPLE9BQU8sSUFBSTtBQUN6QixXQUFLLFVBQVU7QUFDZixVQUFJLFdBQVcsQ0FBQyxLQUFLLE9BQU8sUUFBUSxLQUFLLElBQUk7QUFDN0MsYUFBTyxLQUFLLFNBQVMsVUFBVSxNQUFNLElBQUk7QUFBQSxJQUMzQztBQUNBLFFBQUksY0FBYyxJQUFJLE9BQU8sU0FBUyxhQUFhLE1BQU07QUFDdkQsVUFBSSxLQUFLLEtBQUssUUFBUSxHQUFHLE1BQU0sS0FBSyxLQUFLLFlBQVksSUFBSSxLQUFLLDZCQUE2QjtBQUMzRixhQUFPLEtBQUssSUFBSSxnQkFBZ0IsRUFBRTtBQUFBLElBQ3BDO0FBQ0EsUUFBSSxTQUFTLFNBQVMsS0FBSztBQUN6QixVQUFJLE1BQU0sS0FBSztBQUNmLFVBQUlBLFFBQU8sSUFBSTtBQUNmLFVBQUksT0FBTyxPQUFPLEtBQUssR0FBRyxFQUFFLE9BQU8sU0FBUyxHQUFHO0FBQzdDLGVBQU8sTUFBTTtBQUFBLE1BQ2YsQ0FBQztBQUNELFVBQUksTUFBTSxLQUFLLFNBQVMsSUFBSSxJQUFJLFFBQVEsSUFBSSxJQUFJO0FBQ2hELFdBQUssS0FBSyxRQUFRO0FBQ2xCLFVBQUksS0FBSztBQUNQLGFBQUssSUFBSSxnQkFBZ0IsY0FBYyxHQUFHLEVBQUUsS0FBSztBQUNqRCxZQUFJLEdBQUcsRUFBRSxLQUFLLE1BQU1BLEtBQUk7QUFBQSxNQUMxQixXQUFXLElBQUksU0FBUztBQUN0QixZQUFJLFFBQVEsS0FBSyxNQUFNQSxLQUFJO0FBQUEsTUFDN0IsT0FBTztBQUNMLFFBQUFBLE1BQUssWUFBWSxLQUFLO0FBQUEsVUFDcEIsT0FBTyxlQUFlLElBQUksRUFBRSxJQUFJLFNBQVMsR0FBRztBQUMxQyxtQkFBTyxFQUFFO0FBQUEsVUFDWCxDQUFDO0FBQUEsUUFDSCxDQUFDLENBQUM7QUFBQSxNQUNKO0FBQ0EsYUFBTztBQUFBLElBQ1Q7QUFDQSxRQUFJLGFBQWEsU0FBUyxXQUFXLFVBQVU7QUFDN0MsVUFBSSxVQUFVO0FBQ1osYUFBSyxLQUFLLFFBQVEsUUFBUSxDQUFDO0FBQUEsTUFDN0I7QUFDQSxXQUFLLElBQUksdUJBQXVCLG1CQUFtQixRQUFRLENBQUM7QUFDNUQsYUFBTztBQUFBLElBQ1Q7QUFDQSxRQUFJLFNBQVMsU0FBU2dHLFFBQU8sT0FBT25LLE1BQUs7QUFDdkMsVUFBSW9GLFFBQU8sS0FBSyxJQUFJLEtBQUs7QUFDekIsVUFBSSxRQUFRcEY7QUFDWixVQUFJb0YsT0FBTTtBQUNSLGdCQUFRLE1BQU0sUUFBUUEsS0FBSSxJQUFJQSxNQUFLLE9BQU9wRixJQUFHLElBQUksTUFBTSxRQUFRQSxJQUFHLElBQUksQ0FBQ29GLEtBQUksRUFBRSxPQUFPcEYsSUFBRyxJQUFJLENBQUNvRixPQUFNcEYsSUFBRztBQUFBLE1BQ3ZHO0FBQ0EsYUFBTyxLQUFLLElBQUksT0FBTyxLQUFLO0FBQUEsSUFDOUI7QUFDQSxRQUFJLE1BQU0sSUFBSSxTQUFTLFNBQVMsT0FBTyxPQUFPQSxNQUFLO0FBQ2pELFVBQUksVUFBVSxXQUFXLEdBQUc7QUFDMUIsWUFBSSxRQUFRLE1BQU0sUUFBUUEsSUFBRyxJQUFJQSxLQUFJLElBQUksTUFBTSxJQUFJLE9BQU9BLElBQUc7QUFDN0QsWUFBSSxNQUFNLFlBQVksTUFBTSxnQkFBZ0I7QUFDMUMsY0FBSSxNQUFNLFFBQVEsS0FBSyxHQUFHO0FBQ3hCLGtCQUFNLElBQUksVUFBVSx3Q0FBd0M7QUFBQSxVQUM5RDtBQUNBLGtCQUFRLEtBQUssWUFBWSxLQUFLO0FBQUEsUUFDaEM7QUFDQSxhQUFLLFVBQVUsT0FBTyxLQUFLO0FBQUEsTUFDN0IsT0FBTztBQUNMLGlCQUFTLE9BQU8sT0FBTztBQUNyQixlQUFLLElBQUksS0FBSyxNQUFNLEdBQUcsQ0FBQztBQUFBLFFBQzFCO0FBQUEsTUFDRjtBQUNBLGFBQU87QUFBQSxJQUNUO0FBQ0EsUUFBSSxNQUFNLFNBQVMsT0FBTztBQUN4QixhQUFPLEtBQUssVUFBVSxLQUFLO0FBQUEsSUFDN0I7QUFDQSxRQUFJLGNBQWMsU0FBUyxZQUFZLE1BQU0sU0FBUztBQUNwRCxZQUFNLE9BQU8sRUFBRSxNQUFNLEtBQUssR0FBRyxTQUFTLFNBQXlCLG9CQUFJLEtBQUssQ0FBQyxFQUFFO0FBQzNFLGFBQU8sS0FBSztBQUNaLGFBQU8sS0FBSyxPQUFPLE1BQU0sSUFBSSxJQUFJO0FBQUEsSUFDbkM7QUFDQSxRQUFJLFNBQVMsU0FBUyxNQUFNLE9BQU8sU0FBUztBQUMxQyxVQUFJLE9BQU8sRUFBRSxHQUFHLFFBQVE7QUFDeEIsVUFBSSxTQUFTLEtBQUssSUFBSTtBQUN0QixVQUFJLFNBQVMsS0FBSztBQUNsQixVQUFJLFVBQVUsQ0FBQyxRQUFRO0FBQ3JCLGNBQU0sSUFBSSxNQUFNLG9EQUFvRDtBQUFBLE1BQ3RFO0FBQ0EsVUFBSUEsT0FBTSxPQUFPLFVBQVUsV0FBVyxPQUFPLEtBQUssVUFBVSxLQUFLLElBQUksT0FBTyxLQUFLO0FBQ2pGLFVBQUksUUFBUTtBQUNWLFFBQUFBLE9BQU0sT0FBTyxLQUFLQSxNQUFLLE1BQU07QUFBQSxNQUMvQjtBQUNBLFVBQUksS0FBSyxVQUFVLE1BQU07QUFDdkIsWUFBSSxTQUFTLEtBQUssU0FBUztBQUMzQixZQUFJLENBQUMsTUFBTSxNQUFNLEdBQUc7QUFDbEIsZUFBSyxVQUFVLElBQUksS0FBSyxLQUFLLElBQUksSUFBSSxNQUFNO0FBQzNDLGVBQUssU0FBUyxLQUFLLE1BQU0sU0FBUyxHQUFHO0FBQUEsUUFDdkM7QUFBQSxNQUNGO0FBQ0EsVUFBSSxLQUFLLFFBQVEsTUFBTTtBQUNyQixhQUFLLE9BQU87QUFBQSxNQUNkO0FBQ0EsV0FBSyxPQUFPLGNBQWMsT0FBTyxVQUFVLE1BQU0sT0FBT0EsSUFBRyxHQUFHLElBQUksQ0FBQztBQUNuRSxhQUFPO0FBQUEsSUFDVDtBQUNBLFFBQUksV0FBVyxTQUFTLFNBQVMwSSxNQUFLO0FBQ3BDLGFBQU8sS0FBSyxJQUFJLFlBQVksVUFBVUEsSUFBRyxDQUFDO0FBQUEsSUFDNUM7QUFDQSxRQUFJLFdBQVcsU0FBUyxTQUFTQSxNQUFLO0FBQ3BDLFVBQUksVUFBVUE7QUFDZCxVQUFJO0FBQ0osVUFBSSxTQUFTO0FBQ2IsVUFBSSxVQUFVLFdBQVcsR0FBRztBQUMxQixpQkFBUyxVQUFVLENBQUM7QUFDcEIsa0JBQVUsVUFBVSxDQUFDO0FBQUEsTUFDdkI7QUFDQSxnQkFBVSxLQUFLLFNBQVMsT0FBTyxFQUFFLElBQUksVUFBVTtBQUMvQyxXQUFLLE9BQU87QUFBQSxRQUNWLE1BQU0sV0FBVztBQUNmLGlCQUFPLFNBQVMsUUFBUSxNQUFNLElBQUksc0JBQXNCO0FBQUEsUUFDMUQ7QUFBQSxRQUNBLE1BQU0sV0FBVztBQUNmLGNBQUksSUFBSSxXQUFXLE9BQU87QUFDMUIsaUJBQU8sUUFBUSxTQUFTLFFBQVEsTUFBTSxJQUFJLHNCQUFzQixJQUFJO0FBQUEsUUFDdEU7QUFBQSxRQUNBLFNBQVMsV0FBVztBQUNsQixpQkFBTztBQUFBLFFBQ1Q7QUFBQSxNQUNGLENBQUM7QUFDRCxXQUFLLE9BQU8sTUFBTTtBQUNsQixXQUFLLElBQUksa0JBQWtCLE9BQU8sV0FBVyxJQUFJLENBQUM7QUFDbEQsVUFBSSxLQUFLLElBQUksV0FBVyxRQUFRO0FBQzlCLGFBQUssSUFBSTtBQUFBLE1BQ1gsT0FBTztBQUNMLGFBQUssSUFBSSxJQUFJO0FBQUEsTUFDZjtBQUFBLElBQ0Y7QUFDQSxRQUFJLE9BQU8sU0FBUyxPQUFPO0FBQ3pCLFdBQUssTUFBTSxLQUFLO0FBQ2hCLGFBQU87QUFBQSxJQUNUO0FBQ0EsUUFBSSxTQUFTLFNBQVNJLFFBQU8sTUFBTSxTQUFTLFVBQVU7QUFDcEQsVUFBSSxNQUFNLEtBQUssSUFBSTtBQUNuQixVQUFJLE9BQU87QUFDWCxVQUFJLE9BQU8sV0FBVyxDQUFDO0FBQ3ZCLFVBQUksTUFBTSxLQUFLO0FBQ2YsVUFBSSxRQUFRO0FBQ1osVUFBSSxPQUFPLFlBQVksWUFBWTtBQUNqQyxlQUFPO0FBQ1AsZUFBTyxDQUFDO0FBQUEsTUFDVjtBQUNBLFdBQUssVUFBVSxNQUFNO0FBQ3JCLGFBQU8sUUFBUSxTQUFTLE1BQU0sS0FBSztBQUNqQyxZQUFJLEtBQU0sUUFBTyxJQUFJLEtBQUssSUFBSTtBQUM5QixjQUFNLEtBQUssR0FBRztBQUFBLE1BQ2hCO0FBQ0EsVUFBSSxPQUFPLE1BQU0sTUFBTSxJQUFJO0FBQUEsSUFDN0I7QUFDQSxhQUFTLFNBQVMsTUFBTSxNQUFNLFNBQVMsVUFBVTtBQUMvQyxVQUFJLE9BQU87QUFDWCxVQUFJO0FBQ0osZUFBUyxZQUFZO0FBQ25CLFlBQUksS0FBTTtBQUNWLGVBQU87QUFDUCxZQUFJLE9BQU8sSUFBSSxNQUFNLGlCQUFpQjtBQUN0QyxhQUFLLE9BQU87QUFDWixpQkFBUyxJQUFJO0FBQUEsTUFDZjtBQUNBLGVBQVMsY0FBYztBQUNyQixZQUFJLEtBQU07QUFDVixlQUFPO0FBQ1AsWUFBSSxPQUFPLElBQUksTUFBTSxjQUFjO0FBQ25DLGFBQUssT0FBTztBQUNaLGlCQUFTLElBQUk7QUFBQSxNQUNmO0FBQ0EsZUFBUyxRQUFRLE1BQU07QUFDckIsWUFBSSxLQUFNO0FBQ1YsZUFBTztBQUNQLGlCQUFTLElBQUk7QUFBQSxNQUNmO0FBQ0EsZUFBUyxRQUFRO0FBQ2YsWUFBSSxLQUFNO0FBQ1YsZUFBTztBQUNQLGlCQUFTO0FBQUEsTUFDWDtBQUNBLGVBQVMsU0FBUztBQUNoQixvQkFBWTtBQUFBLE1BQ2Q7QUFDQSxlQUFTLFNBQVMsTUFBTTtBQUN0QixZQUFJLFFBQVEsS0FBSyxTQUFTLGFBQWMsUUFBTyxVQUFVO0FBQ3pELFlBQUksS0FBTSxRQUFPLFFBQVEsSUFBSTtBQUM3QixZQUFJLEtBQU07QUFDVixxQkFBYSxXQUFXO0FBQ3RCLGNBQUksY0FBYyxTQUFTLENBQUMsTUFBTTtBQUNoQyxzQkFBVTtBQUNWO0FBQUEsVUFDRjtBQUNBLGNBQUksS0FBTTtBQUNWLGlCQUFPO0FBQ1AsbUJBQVM7QUFBQSxRQUNYLENBQUM7QUFBQSxNQUNIO0FBQ0EsZUFBUyxXQUFXO0FBQ2xCLG9CQUFZO0FBQUEsTUFDZDtBQUNBLFdBQUssR0FBRyxhQUFhLFdBQVc7QUFDaEMsV0FBSyxHQUFHLE9BQU8sS0FBSztBQUNwQixXQUFLLEdBQUcsU0FBUyxPQUFPO0FBQ3hCLFdBQUssR0FBRyxRQUFRLE1BQU07QUFDdEIsV0FBSyxHQUFHLFVBQVUsUUFBUTtBQUMxQixpQkFBVyxNQUFNLFFBQVE7QUFDekIsVUFBSSxRQUFRLFNBQVM7QUFDbkIsYUFBSyxHQUFHLFdBQVcsU0FBUyxRQUFRLE1BQU07QUFDeEMsY0FBSSxNQUFNLFFBQVE7QUFDbEIsY0FBSSxPQUFPLE9BQU8sS0FBSyxHQUFHO0FBQzFCLG1CQUFTLElBQUksR0FBRyxJQUFJLEtBQUssUUFBUSxLQUFLO0FBQ3BDLGdCQUFJLElBQUksS0FBSyxDQUFDO0FBQ2QsaUJBQUssVUFBVSxHQUFHLElBQUksQ0FBQyxDQUFDO0FBQUEsVUFDMUI7QUFBQSxRQUNGLENBQUM7QUFBQSxNQUNIO0FBQ0EsV0FBSyxLQUFLLElBQUk7QUFBQSxJQUNoQjtBQUNBLGFBQVNULFdBQVUsT0FBTyxVQUFVLFFBQVFNLFVBQVM7QUFDbkQsVUFBSSxPQUFPLFlBQVksU0FBUyxLQUFLLFVBQVUsT0FBTyxVQUFVLE1BQU0sSUFBSSxLQUFLLFVBQVUsS0FBSztBQUM5RixVQUFJQSxZQUFXLE9BQU8sU0FBUyxVQUFVO0FBQ3ZDLGVBQU8sS0FBSyxRQUFRLFVBQVUsU0FBUyxHQUFHO0FBQ3hDLGtCQUFRLEVBQUUsV0FBVyxDQUFDLEdBQUc7QUFBQSxZQUN2QixLQUFLO0FBQ0gscUJBQU87QUFBQSxZQUNULEtBQUs7QUFDSCxxQkFBTztBQUFBLFlBQ1QsS0FBSztBQUNILHFCQUFPO0FBQUE7QUFBQSxZQUVUO0FBQ0UscUJBQU87QUFBQSxVQUNYO0FBQUEsUUFDRixDQUFDO0FBQUEsTUFDSDtBQUNBLGFBQU87QUFBQSxJQUNUO0FBQUEsRUFDRjtBQUNGLENBQUM7QUFHRCxJQUFJLHVCQUF1QmhKLFlBQVc7QUFBQSxFQUNwQyxxQ0FBcUMsVUFBVSxTQUFTO0FBQ3REO0FBQ0EsUUFBSSxZQUFZLGtCQUFrQjtBQUNsQyxRQUFJLGFBQWEsb0JBQW9CO0FBQ3JDLFFBQUksV0FBVyxpQkFBaUI7QUFDaEMsUUFBSSxVQUFVLFFBQVEsTUFBTSxFQUFFO0FBQzlCLFFBQUksT0FBTyxhQUFhO0FBQ3hCLFFBQUkrSSxPQUFNLFFBQVEsS0FBSztBQUN2QixZQUFRLFVBQVU7QUFDbEIsYUFBUyxZQUFZckQsT0FBTSxTQUFTO0FBQ2xDLFVBQUksQ0FBQ0EsT0FBTTtBQUNULGNBQU0sSUFBSSxVQUFVLG9CQUFvQjtBQUFBLE1BQzFDO0FBQ0EsVUFBSSxPQUFPQSxVQUFTLFVBQVU7QUFDNUIsY0FBTSxJQUFJLFVBQVUsNEJBQTRCO0FBQUEsTUFDbEQ7QUFDQSxVQUFJLE9BQU8sT0FBTyxPQUFPLFdBQVcsSUFBSTtBQUN4QyxVQUFJLGNBQWMsS0FBSyxnQkFBZ0I7QUFDdkMsVUFBSSxXQUFXLEtBQUssYUFBYTtBQUNqQyxVQUFJLGFBQWEsS0FBSztBQUN0QixVQUFJLGNBQWMsT0FBTyxlQUFlLFlBQVk7QUFDbEQsY0FBTSxJQUFJLFVBQVUsb0NBQW9DO0FBQUEsTUFDMUQ7QUFDQSxXQUFLLFNBQVMsS0FBSyxVQUFVLEtBQUssVUFBVTtBQUM1QyxXQUFLLE9BQU8sUUFBUUEsS0FBSTtBQUN4QixVQUFJLGNBQWMsV0FBVyxnQ0FBZ0MsSUFBSSxnQ0FBZ0M7QUFDakcsYUFBTyxTQUFTLGFBQWEsS0FBSyxLQUFLbEIsT0FBTTtBQUMzQyxZQUFJLElBQUksV0FBVyxTQUFTLElBQUksV0FBVyxRQUFRO0FBQ2pELGNBQUksYUFBYTtBQUNmLG1CQUFPQSxNQUFLO0FBQUEsVUFDZDtBQUNBLGNBQUksYUFBYTtBQUNqQixjQUFJLFVBQVUsU0FBUyxXQUFXO0FBQ2xDLGNBQUksVUFBVSxrQkFBa0IsR0FBRztBQUNuQyxjQUFJLElBQUk7QUFDUjtBQUFBLFFBQ0Y7QUFDQSxZQUFJLGVBQWUsQ0FBQztBQUNwQixZQUFJLGNBQWMsU0FBUyxTQUFTLEdBQUc7QUFDdkMsWUFBSSxPQUFPLFNBQVMsR0FBRyxFQUFFO0FBQ3pCLFlBQUksU0FBUyxPQUFPLFlBQVksU0FBUyxPQUFPLEVBQUUsTUFBTSxLQUFLO0FBQzNELGlCQUFPO0FBQUEsUUFDVDtBQUNBLFlBQUluQyxVQUFTLEtBQUssS0FBSyxNQUFNLElBQUk7QUFDakMsUUFBQUEsUUFBTyxHQUFHLGFBQWEsV0FBVztBQUNsQyxZQUFJLFlBQVk7QUFDZCxVQUFBQSxRQUFPLEdBQUcsV0FBVyxVQUFVO0FBQUEsUUFDakM7QUFDQSxZQUFJLGFBQWE7QUFDZixVQUFBQSxRQUFPLEdBQUcsUUFBUSxTQUFTLFNBQVM7QUFDbEMsMkJBQWU7QUFBQSxVQUNqQixDQUFDO0FBQUEsUUFDSDtBQUNBLFFBQUFBLFFBQU8sR0FBRyxTQUFTLFNBQVMsTUFBTSxNQUFNO0FBQ3RDLGNBQUksZ0JBQWdCLEVBQUUsS0FBSyxhQUFhLE1BQU07QUFDNUMsWUFBQW1DLE1BQUssSUFBSTtBQUNUO0FBQUEsVUFDRjtBQUNBLFVBQUFBLE1BQUs7QUFBQSxRQUNQLENBQUM7QUFDRCxRQUFBbkMsUUFBTyxLQUFLLEdBQUc7QUFBQSxNQUNqQjtBQUFBLElBQ0Y7QUFDQSxhQUFTLHVCQUF1QixLQUFLO0FBQ25DLGVBQVMsSUFBSSxHQUFHLElBQUksSUFBSSxRQUFRLEtBQUs7QUFDbkMsWUFBSSxJQUFJLFdBQVcsQ0FBQyxNQUFNLElBQUk7QUFDNUI7QUFBQSxRQUNGO0FBQUEsTUFDRjtBQUNBLGFBQU8sSUFBSSxJQUFJLE1BQU0sSUFBSSxPQUFPLENBQUMsSUFBSTtBQUFBLElBQ3ZDO0FBQ0EsYUFBUyxtQkFBbUIsT0FBTyxNQUFNO0FBQ3ZDLGFBQU8sK0VBQStFLFFBQVEscUNBQXFDLE9BQU87QUFBQSxJQUM1STtBQUNBLGFBQVMsa0NBQWtDO0FBQ3pDLGFBQU8sU0FBUyxXQUFXO0FBQ3pCLGFBQUssTUFBTSxHQUFHO0FBQUEsTUFDaEI7QUFBQSxJQUNGO0FBQ0EsYUFBUyxrQ0FBa0M7QUFDekMsYUFBTyxTQUFTLFNBQVMsS0FBSztBQUM1QixZQUFJLEtBQUssaUJBQWlCLEdBQUc7QUFDM0IsZUFBSyxNQUFNLEdBQUc7QUFDZDtBQUFBLFFBQ0Y7QUFDQSxZQUFJLGNBQWMsU0FBUyxTQUFTLEtBQUssR0FBRztBQUM1QyxvQkFBWSxPQUFPO0FBQ25CLG9CQUFZLFdBQVcsdUJBQXVCLFlBQVksV0FBVyxHQUFHO0FBQ3hFLFlBQUksTUFBTSxVQUFVMEcsS0FBSSxPQUFPLFdBQVcsQ0FBQztBQUMzQyxZQUFJLE1BQU0sbUJBQW1CLGVBQWUsb0JBQW9CLFdBQVcsR0FBRyxDQUFDO0FBQy9FLFlBQUksYUFBYTtBQUNqQixZQUFJLFVBQVUsZ0JBQWdCLDBCQUEwQjtBQUN4RCxZQUFJLFVBQVUsa0JBQWtCLE9BQU8sV0FBVyxHQUFHLENBQUM7QUFDdEQsWUFBSSxVQUFVLDJCQUEyQixvQkFBb0I7QUFDN0QsWUFBSSxVQUFVLDBCQUEwQixTQUFTO0FBQ2pELFlBQUksVUFBVSxZQUFZLEdBQUc7QUFDN0IsWUFBSSxJQUFJLEdBQUc7QUFBQSxNQUNiO0FBQUEsSUFDRjtBQUFBLEVBQ0Y7QUFDRixDQUFDO0FBR0QsSUFBSSxrQkFBa0IvSSxZQUFXO0FBQUEsRUFDL0Isc0NBQXNDLFVBQVUsU0FBUztBQUN2RDtBQUNBLFFBQUksYUFBYSxvQkFBb0I7QUFDckMsUUFBSTBLLGdCQUFlLFFBQVEsYUFBYSxFQUFFO0FBQzFDLFFBQUksUUFBUSwwQkFBMEI7QUFDdEMsUUFBSSxRQUFRLG9CQUFvQjtBQUNoQyxRQUFJLFNBQVMsZUFBZTtBQUM1QixRQUFJLE1BQU1OLGlCQUFnQjtBQUMxQixRQUFJLE1BQU1LLGtCQUFpQjtBQUMzQixlQUFXLFFBQVEsVUFBVTtBQUM3QixhQUFTLG9CQUFvQjtBQUMzQixVQUFJLE1BQU0sU0FBUyxNQUFNLE1BQU1qRyxPQUFNO0FBQ25DLFlBQUksT0FBTyxNQUFNLE1BQU1BLEtBQUk7QUFBQSxNQUM3QjtBQUNBLFlBQU0sS0FBS2tHLGNBQWEsV0FBVyxLQUFLO0FBQ3hDLFlBQU0sS0FBSyxPQUFPLEtBQUs7QUFDdkIsVUFBSSxVQUFVLE9BQU8sT0FBTyxLQUFLO0FBQUEsUUFDL0IsS0FBSyxFQUFFLGNBQWMsTUFBTSxZQUFZLE1BQU0sVUFBVSxNQUFNLE9BQU8sSUFBSTtBQUFBLE1BQzFFLENBQUM7QUFDRCxVQUFJLFdBQVcsT0FBTyxPQUFPLEtBQUs7QUFBQSxRQUNoQyxLQUFLLEVBQUUsY0FBYyxNQUFNLFlBQVksTUFBTSxVQUFVLE1BQU0sT0FBTyxJQUFJO0FBQUEsTUFDMUUsQ0FBQztBQUNELFVBQUksS0FBSztBQUNULGFBQU87QUFBQSxJQUNUO0FBQ0EsYUFBUyxjQUFjO0FBQ3ZCLGFBQVMsVUFBVTtBQUNuQixhQUFTLFdBQVc7QUFDcEIsYUFBUyxRQUFRLE9BQU87QUFDeEIsYUFBUyxTQUFTO0FBQ2xCLGFBQVMsT0FBTyxXQUFXO0FBQzNCLGFBQVMsTUFBTSxXQUFXO0FBQzFCLGFBQVMsU0FBUyxxQkFBcUI7QUFDdkMsYUFBUyxPQUFPLFdBQVc7QUFDM0IsYUFBUyxhQUFhLFdBQVc7QUFBQSxFQUNuQztBQUNGLENBQUM7QUFHRCxJQUFJLG1CQUFtQjFLLFlBQVc7QUFBQSxFQUNoQyxnQ0FBZ0MsVUFBVSxTQUFTO0FBQ2pEO0FBQ0EsWUFBUSxVQUFVLGdCQUFnQjtBQUFBLEVBQ3BDO0FBQ0YsQ0FBQztBQUdELElBQUksaUJBQWlCQSxZQUFXO0FBQUEsRUFDOUIsZ0NBQWdDLFVBQVUsU0FBUztBQUNqRCxLQUFDLFdBQVc7QUFDVixVQUFJO0FBQ0osVUFBSTJLLFdBQVU7QUFDZCxVQUFJLG1CQUFtQjtBQUN2QixVQUFJLGtCQUFrQixtRUFBbUUsa0JBQWtCLHVCQUF1QiwrQkFBK0I7QUFDakssVUFBSSxpQkFBaUI7QUFDckIsVUFBSSxtQkFBbUI7QUFDdkIsVUFBSSxjQUFjO0FBQ2xCLFVBQUksa0JBQWtCLEdBQUcsa0JBQWtCLEdBQUcscUJBQXFCO0FBQ25FLFVBQUksdUJBQXVCLEdBQUcseUJBQXlCO0FBQ3ZELFVBQUksaUJBQWlCLEdBQUcscUJBQXFCLEdBQUcsd0JBQXdCLEdBQUcsa0JBQWtCLEdBQUcsd0JBQXdCLElBQUksb0JBQW9CLElBQUksMEJBQTBCLElBQUksZ0JBQWdCLEtBQUssa0JBQWtCLEtBQUssaUJBQWlCO0FBQy9PLFVBQUksdUJBQXVCLElBQUkseUJBQXlCO0FBQ3hELFVBQUksWUFBWSxLQUFLLFdBQVc7QUFDaEMsVUFBSSxtQkFBbUIsR0FBRyxnQkFBZ0IsR0FBRyxrQkFBa0I7QUFDL0QsVUFBSSxXQUFXLElBQUksR0FBRyxtQkFBbUIsa0JBQWtCLGNBQWMsdUJBQXVCLE1BQU0sSUFBSTtBQUMxRyxVQUFJLG1CQUFtQixZQUFZLGtCQUFrQixtQkFBbUIsR0FBRyx3QkFBd0IscUJBQXFCO0FBQ3hILFVBQUksWUFBWTtBQUFBLFFBQ2QsQ0FBQyxPQUFPLGFBQWE7QUFBQSxRQUNyQixDQUFDLFFBQVEsY0FBYztBQUFBLFFBQ3ZCLENBQUMsV0FBVyxrQkFBa0I7QUFBQSxRQUM5QixDQUFDLFNBQVMsZUFBZTtBQUFBLFFBQ3pCLENBQUMsY0FBYyxxQkFBcUI7QUFBQSxRQUNwQyxDQUFDLFFBQVEsY0FBYztBQUFBLFFBQ3ZCLENBQUMsV0FBVyxpQkFBaUI7QUFBQSxRQUM3QixDQUFDLGdCQUFnQix1QkFBdUI7QUFBQSxRQUN4QyxDQUFDLFNBQVMsZUFBZTtBQUFBLE1BQzNCO0FBQ0EsVUFBSSxVQUFVLHNCQUFzQixXQUFXLGtCQUFrQixXQUFXLDBCQUEwQixVQUFVLG9CQUFvQixVQUFVLGlCQUFpQixZQUFZLHlCQUF5QixXQUFXLGtCQUFrQixVQUFVLHFCQUFxQixTQUFTLDhCQUE4QixTQUFTLGdCQUFnQixZQUFZLG1CQUFtQixVQUFVLGlCQUFpQixZQUFZLG1CQUFtQixhQUFhLG9CQUFvQixXQUFXLGtCQUFrQixZQUFZLG1CQUFtQixTQUFTLGdCQUFnQixZQUFZLG1CQUFtQixZQUFZLG1CQUFtQixlQUFlLHNCQUFzQixhQUFhLG9CQUFvQixhQUFhO0FBQ2hxQixVQUFJLGlCQUFpQix3QkFBd0IsY0FBYyxxQkFBcUIsYUFBYSx5QkFBeUIsYUFBYSx5QkFBeUIsVUFBVSxzQkFBc0IsV0FBVyx1QkFBdUIsV0FBVyx1QkFBdUIsV0FBVyx1QkFBdUIsa0JBQWtCLDhCQUE4QixZQUFZLHdCQUF3QixZQUFZO0FBQ2xZLFVBQUksdUJBQXVCLGtCQUFrQixzQkFBc0Isc0JBQXNCLHdCQUF3QjtBQUNqSCxVQUFJLGdCQUFnQiw2QkFBNkIsa0JBQWtCLFlBQVksbUJBQW1CLE9BQU8sY0FBYyxNQUFNLEdBQUcscUJBQXFCLE9BQU8sZ0JBQWdCLE1BQU07QUFDbEwsVUFBSSxXQUFXLG9CQUFvQixhQUFhLG1CQUFtQixnQkFBZ0I7QUFDbkYsVUFBSSxlQUFlLG9EQUFvRCxnQkFBZ0IsU0FBUyxhQUFhO0FBQzdHLFVBQUksZUFBZSx1QkFBdUIsa0JBQWtCLE9BQU8sYUFBYSxNQUFNO0FBQ3RGLFVBQUksY0FBYztBQUNsQixVQUFJLGVBQWU7QUFDbkIsVUFBSSxnQkFBZ0IsNkNBQTZDLGdCQUFnQixxQ0FBcUMsaUJBQWlCO0FBQ3ZJLFVBQUksY0FBYztBQUNsQixVQUFJLDZCQUE2QjtBQUNqQyxVQUFJLGVBQWU7QUFDbkIsVUFBSSxlQUFlO0FBQ25CLFVBQUksVUFBVTtBQUNkLFVBQUksYUFBYTtBQUNqQixVQUFJLGFBQWE7QUFDakIsVUFBSSxlQUFlO0FBQ25CLFVBQUksWUFBWTtBQUNoQixVQUFJLFdBQVc7QUFDZixVQUFJLFVBQVU7QUFDZCxVQUFJLFlBQVk7QUFDaEIsVUFBSSxvQkFBb0I7QUFDeEIsVUFBSSxnQkFBZ0IsbUJBQW1CLG9CQUFvQixtQkFBbUIsd0JBQXdCLG1CQUFtQixzQkFBc0IsbUJBQW1CLGVBQWUsb0JBQW9CLHdCQUF3QixxQkFBcUIsaUJBQWlCLG1CQUFtQixlQUFlLDZCQUE2QixnQkFBZ0Isd0JBQXdCLGlCQUFpQixnREFBZ0QscUJBQXFCLG1CQUFtQixlQUFlLGdLQUFnSyxlQUFlLDZCQUE2QixhQUFhLGtCQUFrQixlQUFlLGdCQUFnQixpQkFBaUIscUJBQXFCO0FBQ2x4QixVQUFJLFNBQVMsYUFBYSxXQUFXLE1BQU0sZ0JBQWdCLEtBQUssVUFBVSxNQUFNLGVBQWUsS0FBSyxVQUFVLE1BQU0sZUFBZSxLQUFLLFdBQVcsUUFBUSxZQUFZLE1BQU0saUJBQWlCLEtBQUssVUFBVSxNQUFNLGVBQWUsS0FBSyxTQUFTLE9BQU8sZ0JBQWdCLGVBQWUsV0FBVyxpQkFBaUIsZUFBZSxlQUFlLEtBQUssU0FBUyw0QkFBNEIsYUFBYSxRQUFRLFVBQVUsTUFBTSxTQUFTLEtBQUssY0FBYyxPQUFPLGdCQUFnQixLQUFLLGFBQWEsbUNBQW1DLGFBQWEsc0NBQXNDLFVBQVUsTUFBTSxlQUFlLEtBQUssUUFBUTtBQUN0bUIsVUFBSSxjQUFjLFFBQVEsVUFBVSxNQUFNLFNBQVMsS0FBSyxjQUFjLFFBQVEsVUFBVSxNQUFNLFNBQVMsS0FBSyxrQkFBa0IsUUFBUSxTQUFTLDBCQUEwQixrQkFBa0IsUUFBUSxTQUFTLDBCQUEwQixXQUFXLGFBQWEsS0FBSyxXQUFXLE1BQU0sYUFBYSxNQUFNLFlBQVksUUFBUSxRQUFRLFFBQVEsQ0FBQyxhQUFhLFlBQVksVUFBVSxFQUFFLEtBQUssR0FBRyxJQUFJLE1BQU0sV0FBVyxXQUFXLE1BQU0sYUFBYSxvREFBb0QsYUFBYSxvREFBb0QsUUFBUSxXQUFXLFdBQVcsV0FBVyxVQUFVLFFBQVEsQ0FBQyxXQUFXLFlBQVksVUFBVSxFQUFFLEtBQUssR0FBRyxJQUFJLE1BQU0sT0FBTyxXQUFXLFFBQVEsQ0FBQyxjQUFjLFVBQVUsS0FBSyxTQUFTLFlBQVksWUFBWSxRQUFRLEVBQUUsS0FBSyxHQUFHLElBQUk7QUFDandCLFVBQUksU0FBUyxPQUFPLFFBQVEsR0FBRztBQUMvQixVQUFJLGNBQWMsT0FBTyxTQUFTLEdBQUc7QUFDckMsVUFBSSxZQUFZLE9BQU8sU0FBUyxRQUFRLFNBQVMsT0FBTyxXQUFXLE9BQU8sR0FBRztBQUM3RSxVQUFJLGdCQUFnQixPQUFPO0FBQUEsUUFDekIsVUFBVSxNQUFNLFVBQVUsTUFBTSxrQkFBa0IsUUFBUSxDQUFDLFNBQVMsU0FBUyxHQUFHLEVBQUUsS0FBSyxHQUFHLElBQUk7QUFBQSxRQUM5RixjQUFjLE1BQU0sa0JBQWtCLFFBQVEsQ0FBQyxTQUFTLFVBQVUsYUFBYSxHQUFHLEVBQUUsS0FBSyxHQUFHLElBQUk7QUFBQSxRQUNoRyxVQUFVLE1BQU0sY0FBYyxNQUFNO0FBQUEsUUFDcEMsVUFBVSxNQUFNO0FBQUEsUUFDaEI7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxNQUNGLEVBQUUsS0FBSyxHQUFHLEdBQUcsR0FBRztBQUNoQixVQUFJLGVBQWUsT0FBTyxNQUFNLFFBQVEsZ0JBQWdCLGVBQWUsYUFBYSxHQUFHO0FBQ3ZGLFVBQUksbUJBQW1CO0FBQ3ZCLFVBQUksZUFBZTtBQUFBLFFBQ2pCO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxNQUNGO0FBQ0EsVUFBSSxrQkFBa0I7QUFDdEIsVUFBSSxpQkFBaUIsQ0FBQztBQUN0QixxQkFBZSxVQUFVLElBQUksZUFBZSxVQUFVLElBQUksZUFBZSxPQUFPLElBQUksZUFBZSxRQUFRLElBQUksZUFBZSxRQUFRLElBQUksZUFBZSxRQUFRLElBQUksZUFBZSxlQUFlLElBQUksZUFBZSxTQUFTLElBQUksZUFBZSxTQUFTLElBQUk7QUFDL1AscUJBQWUsT0FBTyxJQUFJLGVBQWUsUUFBUSxJQUFJLGVBQWUsY0FBYyxJQUFJLGVBQWUsT0FBTyxJQUFJLGVBQWUsV0FBVyxJQUFJLGVBQWUsT0FBTyxJQUFJLGVBQWUsUUFBUSxJQUFJLGVBQWUsT0FBTyxJQUFJLGVBQWUsTUFBTSxJQUFJLGVBQWUsU0FBUyxJQUFJLGVBQWUsU0FBUyxJQUFJLGVBQWUsU0FBUyxJQUFJLGVBQWUsTUFBTSxJQUFJLGVBQWUsU0FBUyxJQUFJLGVBQWUsVUFBVSxJQUFJO0FBQzVaLFVBQUksZ0JBQWdCLENBQUM7QUFDckIsb0JBQWMsT0FBTyxJQUFJLGNBQWMsUUFBUSxJQUFJLGNBQWMsY0FBYyxJQUFJLGNBQWMsV0FBVyxJQUFJLGNBQWMsT0FBTyxJQUFJLGNBQWMsT0FBTyxJQUFJLGNBQWMsVUFBVSxJQUFJLGNBQWMsVUFBVSxJQUFJLGNBQWMsT0FBTyxJQUFJLGNBQWMsUUFBUSxJQUFJLGNBQWMsUUFBUSxJQUFJLGNBQWMsTUFBTSxJQUFJLGNBQWMsU0FBUyxJQUFJLGNBQWMsU0FBUyxJQUFJLGNBQWMsU0FBUyxJQUFJLGNBQWMsTUFBTSxJQUFJLGNBQWMsU0FBUyxJQUFJLGNBQWMsU0FBUyxJQUFJLGNBQWMsUUFBUSxJQUFJLGNBQWMsZUFBZSxJQUFJLGNBQWMsU0FBUyxJQUFJLGNBQWMsU0FBUyxJQUFJO0FBQy9rQixvQkFBYyxRQUFRLElBQUksY0FBYyxPQUFPLElBQUksY0FBYyxVQUFVLElBQUk7QUFDL0UsVUFBSSxrQkFBa0I7QUFBQTtBQUFBLFFBRXBCLFFBQVE7QUFBQSxRQUNSLFFBQVE7QUFBQSxRQUNSLFFBQVE7QUFBQSxRQUNSLFFBQVE7QUFBQSxRQUNSLFFBQVE7QUFBQSxRQUNSLFFBQVE7QUFBQSxRQUNSLFFBQVE7QUFBQSxRQUNSLFFBQVE7QUFBQSxRQUNSLFFBQVE7QUFBQSxRQUNSLFFBQVE7QUFBQSxRQUNSLFFBQVE7QUFBQSxRQUNSLFFBQVE7QUFBQSxRQUNSLFFBQVE7QUFBQSxRQUNSLFFBQVE7QUFBQSxRQUNSLFFBQVE7QUFBQSxRQUNSLFFBQVE7QUFBQSxRQUNSLFFBQVE7QUFBQSxRQUNSLFFBQVE7QUFBQSxRQUNSLFFBQVE7QUFBQSxRQUNSLFFBQVE7QUFBQSxRQUNSLFFBQVE7QUFBQSxRQUNSLFFBQVE7QUFBQSxRQUNSLFFBQVE7QUFBQSxRQUNSLFFBQVE7QUFBQSxRQUNSLFFBQVE7QUFBQSxRQUNSLFFBQVE7QUFBQSxRQUNSLFFBQVE7QUFBQSxRQUNSLFFBQVE7QUFBQSxRQUNSLFFBQVE7QUFBQSxRQUNSLFFBQVE7QUFBQSxRQUNSLFFBQVE7QUFBQSxRQUNSLFFBQVE7QUFBQSxRQUNSLFFBQVE7QUFBQSxRQUNSLFFBQVE7QUFBQSxRQUNSLFFBQVE7QUFBQSxRQUNSLFFBQVE7QUFBQSxRQUNSLFFBQVE7QUFBQSxRQUNSLFFBQVE7QUFBQSxRQUNSLFFBQVE7QUFBQSxRQUNSLFFBQVE7QUFBQSxRQUNSLFFBQVE7QUFBQSxRQUNSLFFBQVE7QUFBQSxRQUNSLFFBQVE7QUFBQSxRQUNSLFFBQVE7QUFBQSxRQUNSLFFBQVE7QUFBQSxRQUNSLFFBQVE7QUFBQSxRQUNSLFFBQVE7QUFBQSxRQUNSLFFBQVE7QUFBQSxRQUNSLFFBQVE7QUFBQSxRQUNSLFFBQVE7QUFBQSxRQUNSLFFBQVE7QUFBQSxRQUNSLFFBQVE7QUFBQSxRQUNSLFFBQVE7QUFBQSxRQUNSLFFBQVE7QUFBQSxRQUNSLFFBQVE7QUFBQSxRQUNSLFFBQVE7QUFBQSxRQUNSLFFBQVE7QUFBQSxRQUNSLFFBQVE7QUFBQSxRQUNSLFFBQVE7QUFBQSxRQUNSLFFBQVE7QUFBQSxRQUNSLFFBQVE7QUFBQSxRQUNSLFFBQVE7QUFBQTtBQUFBLFFBRVIsVUFBVTtBQUFBLFFBQ1YsVUFBVTtBQUFBLFFBQ1YsVUFBVTtBQUFBLFFBQ1YsVUFBVTtBQUFBLFFBQ1YsVUFBVTtBQUFBLFFBQ1YsVUFBVTtBQUFBLFFBQ1YsVUFBVTtBQUFBLFFBQ1YsVUFBVTtBQUFBLFFBQ1YsVUFBVTtBQUFBLFFBQ1YsVUFBVTtBQUFBLFFBQ1YsVUFBVTtBQUFBLFFBQ1YsVUFBVTtBQUFBLFFBQ1YsVUFBVTtBQUFBLFFBQ1YsVUFBVTtBQUFBLFFBQ1YsVUFBVTtBQUFBLFFBQ1YsVUFBVTtBQUFBLFFBQ1YsVUFBVTtBQUFBLFFBQ1YsVUFBVTtBQUFBLFFBQ1YsVUFBVTtBQUFBLFFBQ1YsVUFBVTtBQUFBLFFBQ1YsVUFBVTtBQUFBLFFBQ1YsVUFBVTtBQUFBLFFBQ1YsVUFBVTtBQUFBLFFBQ1YsVUFBVTtBQUFBLFFBQ1YsVUFBVTtBQUFBLFFBQ1YsVUFBVTtBQUFBLFFBQ1YsVUFBVTtBQUFBLFFBQ1YsVUFBVTtBQUFBLFFBQ1YsVUFBVTtBQUFBLFFBQ1YsVUFBVTtBQUFBLFFBQ1YsVUFBVTtBQUFBLFFBQ1YsVUFBVTtBQUFBLFFBQ1YsVUFBVTtBQUFBLFFBQ1YsVUFBVTtBQUFBLFFBQ1YsVUFBVTtBQUFBLFFBQ1YsVUFBVTtBQUFBLFFBQ1YsVUFBVTtBQUFBLFFBQ1YsVUFBVTtBQUFBLFFBQ1YsVUFBVTtBQUFBLFFBQ1YsVUFBVTtBQUFBLFFBQ1YsVUFBVTtBQUFBLFFBQ1YsVUFBVTtBQUFBLFFBQ1YsVUFBVTtBQUFBLFFBQ1YsVUFBVTtBQUFBLFFBQ1YsVUFBVTtBQUFBLFFBQ1YsVUFBVTtBQUFBLFFBQ1YsVUFBVTtBQUFBLFFBQ1YsVUFBVTtBQUFBLFFBQ1YsVUFBVTtBQUFBLFFBQ1YsVUFBVTtBQUFBLFFBQ1YsVUFBVTtBQUFBLFFBQ1YsVUFBVTtBQUFBLFFBQ1YsVUFBVTtBQUFBLFFBQ1YsVUFBVTtBQUFBLFFBQ1YsVUFBVTtBQUFBLFFBQ1YsVUFBVTtBQUFBLFFBQ1YsVUFBVTtBQUFBLFFBQ1YsVUFBVTtBQUFBLFFBQ1YsVUFBVTtBQUFBLFFBQ1YsVUFBVTtBQUFBLFFBQ1YsVUFBVTtBQUFBLFFBQ1YsVUFBVTtBQUFBLFFBQ1YsVUFBVTtBQUFBLFFBQ1YsVUFBVTtBQUFBLFFBQ1YsVUFBVTtBQUFBLFFBQ1YsVUFBVTtBQUFBLFFBQ1YsVUFBVTtBQUFBLFFBQ1YsVUFBVTtBQUFBLFFBQ1YsVUFBVTtBQUFBLFFBQ1YsVUFBVTtBQUFBLFFBQ1YsVUFBVTtBQUFBLFFBQ1YsVUFBVTtBQUFBLFFBQ1YsVUFBVTtBQUFBLFFBQ1YsVUFBVTtBQUFBLFFBQ1YsVUFBVTtBQUFBLFFBQ1YsVUFBVTtBQUFBLFFBQ1YsVUFBVTtBQUFBLFFBQ1YsVUFBVTtBQUFBLFFBQ1YsVUFBVTtBQUFBLFFBQ1YsVUFBVTtBQUFBLFFBQ1YsVUFBVTtBQUFBLFFBQ1YsVUFBVTtBQUFBLFFBQ1YsVUFBVTtBQUFBLFFBQ1YsVUFBVTtBQUFBLFFBQ1YsVUFBVTtBQUFBLFFBQ1YsVUFBVTtBQUFBLFFBQ1YsVUFBVTtBQUFBLFFBQ1YsVUFBVTtBQUFBLFFBQ1YsVUFBVTtBQUFBLFFBQ1YsVUFBVTtBQUFBLFFBQ1YsVUFBVTtBQUFBLFFBQ1YsVUFBVTtBQUFBLFFBQ1YsVUFBVTtBQUFBLFFBQ1YsVUFBVTtBQUFBLFFBQ1YsVUFBVTtBQUFBLFFBQ1YsVUFBVTtBQUFBLFFBQ1YsVUFBVTtBQUFBLFFBQ1YsVUFBVTtBQUFBLFFBQ1YsVUFBVTtBQUFBLFFBQ1YsVUFBVTtBQUFBLFFBQ1YsVUFBVTtBQUFBLFFBQ1YsVUFBVTtBQUFB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QUEsRUFDQSxJQUFJLGFBQWE7QUFDZixXQUFPLENBQUMsQ0FBQyxLQUFLLEtBQUssT0FBTyxLQUFLLENBQUMsT0FBTyxHQUFHLFNBQVMsVUFBVTtBQUFBLEVBQy9EO0FBQUEsRUFDQSxJQUFJLFNBQVM7QUFDWCxXQUFPLENBQUMsQ0FBQyxLQUFLLEtBQUssT0FBTyxLQUFLLENBQUMsT0FBTyxHQUFHLFNBQVMsTUFBTTtBQUFBLEVBQzNEO0FBQUEsRUFDQSxJQUFJLFNBQVM7QUFDWCxXQUFPLENBQUMsQ0FBQyxLQUFLLEtBQUssT0FBTyxLQUFLLENBQUMsT0FBTyxHQUFHLFNBQVMsTUFBTTtBQUFBLEVBQzNEO0FBQUEsRUFDQSxJQUFJLGFBQWE7QUFDZixXQUFPLENBQUMsQ0FBQyxLQUFLLEtBQUssT0FBTyxLQUFLLENBQUMsT0FBTyxHQUFHLFNBQVMsVUFBVTtBQUFBLEVBQy9EO0FBQUEsRUFDQSxJQUFJLFVBQVU7QUFDWixXQUFPLENBQUMsQ0FBQyxLQUFLLEtBQUssT0FBTyxLQUFLLENBQUMsT0FBTyxHQUFHLFNBQVMsT0FBTztBQUFBLEVBQzVEO0FBQUEsRUFDQSxJQUFJLFFBQVE7QUFDVixXQUFPLENBQUMsQ0FBQyxLQUFLLEtBQUssT0FBTyxLQUFLLENBQUMsT0FBTyxHQUFHLFNBQVMsS0FBSztBQUFBLEVBQzFEO0FBQUEsRUFDQSxJQUFJLFVBQVU7QUFDWixXQUFPLENBQUMsQ0FBQyxLQUFLLEtBQUssT0FBTyxLQUFLLENBQUMsT0FBTyxHQUFHLFNBQVMsT0FBTztBQUFBLEVBQzVEO0FBQUEsRUFDQSxJQUFJLFNBQVM7QUFDWCxXQUFPLENBQUMsQ0FBQyxLQUFLLEtBQUssT0FBTyxLQUFLLENBQUMsT0FBTyxHQUFHLFNBQVMsTUFBTTtBQUFBLEVBQzNEO0FBQUEsRUFDQSxJQUFJLFdBQVc7QUFDYixXQUFPLENBQUMsQ0FBQyxLQUFLLEtBQUssT0FBTyxLQUFLLENBQUMsT0FBTyxHQUFHLFNBQVMsUUFBUTtBQUFBLEVBQzdEO0FBQUEsRUFDQSxJQUFJLFNBQVM7QUFDWCxXQUFPLENBQUMsQ0FB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LElBQUksc0NBQXNDO0FBQ2xELFVBQUk7QUFBQSxTQUNELEdBQUcsWUFBWSxTQUFTO0FBQUEsVUFDdkIsZ0JBQWdCLENBQUMsZ0JBQWdCO0FBQUEsUUFDbkMsQ0FBQztBQUFBLE1BQ0g7QUFBQSxJQUNGO0FBQ0EsUUFBSSxNQUFNLFdBQVcsT0FBTyxNQUFNLFlBQVksWUFBWTtBQUN4RCxjQUFRLElBQUksK0JBQStCO0FBQzNDLGVBQVMscUJBQXFCLE1BQU0sU0FBUztBQUFBLFFBQzNDLFFBQVEsTUFBTTtBQUFBLFFBQ2Q7QUFBQSxNQUNGLENBQUM7QUFBQSxJQUNILE9BQU87QUFDTCxZQUFNLElBQUk7QUFBQSxRQUNSO0FBQUEsTUFDRjtBQUFBLElBQ0Y7QUFDQSxXQUFPLElBQUksT0FBTyxPQUFPLFNBQVMsSUFBSSxDQUFDO0FBQ3ZDLFlBQVEsSUFBSSxzREFBc0QsSUFBSSxFQUFFO0FBQUEsRUFDMUUsU0FBUyxPQUFPO0FBQ2QsWUFBUSxNQUFNLDBDQUEwQyxLQUFLO0FBQzdELFlBQVEsS0FBSyxDQUFDO0FBQUEsRUFDaEI7QUFDRjtBQUNBLGVBQWU7IiwKICAibmFtZXMiOiBbIm1hcCIsICJlcnJvck1hcCIsICJfYSIsICJ2YWwiLCAiaW5kZXgiLCAiZGF0YSIsICJyIiwgIl9iIiwgInV0aWwiLCAib2JqZWN0VXRpbCIsICJmaXJzdCIsICJfWm9kRXJyb3IiLCAiX1BhcnNlU3RhdHVzIiwgImVycm9yVXRpbCIsICJwYXJlbnQiLCAiZXJyIiwgIl9ab2RTdHJpbmciLCAiY3R4IiwgIl9ab2ROdW1iZXIiLCAiX1pvZEJpZ0ludCIsICJfWm9kRGF0ZSIsICJfWm9kQXJyYXkiLCAicmVzdWx0IiwgIl9ab2RPYmplY3QiLCAiaXNzdWVzIiwgIl9ab2REaXNjcmltaW5hdGVkVW5pb24iLCAiX1pvZFR1cGxlIiwgIl9ab2RSZWNvcmQiLCAiX1pvZFNldCIsICJlbGVtZW50cyIsICJfWm9kRnVuY3Rpb24iLCAiX1pvZEVudW0iLCAicHJvY2Vzc2VkIiwgIl9ab2RQaXBlbGluZSIsICJab2RGaXJzdFBhcnR5VHlwZUtpbmQiLCAiRXJyb3JDb2RlIiwgInZhbCIsICJfYSIsICJkYXRhIiwgIl9hIiwgImpzb25ycGNOb3RpZmljYXRpb24iLCAibWVyZ2UiLCAic2V0cyIsICJsZW5ndGgiLCAic2xpY2UiLCAieGwiLCAieCIsICJqb2luIiwgInN1YmV4cCIsICJzdHIiLCAidHlwZU9mIiwgIm8iLCAidW5kZWZpbmVkIiwgIk9iamVjdCIsICJwcm90b3R5cGUiLCAidG9TdHJpbmciLCAiY2FsbCIsICJzcGxpdCIsICJwb3AiLCAic2hpZnQiLCAidG9Mb3dlckNhc2UiLCAidG9VcHBlckNhc2UiLCAidG9BcnJheSIsICJvYmoiLCAiQXJyYXkiLCAic2V0SW50ZXJ2YWwiLCAiYXNzaWduIiwgInRhcmdldCIsICJzb3VyY2UiLCAia2V5IiwgImJ1aWxkRXhwcyIsICJpc0lSSSIsICJBTFBIQSQkIiwgIkNSJCIsICJESUdJVCQkIiwgIkRRVU9URSQkIiwgIkhFWERJRyQkIiwgIlNQJCQiLCAiUENUX0VOQ09ERUQkIiwgIlNVQl9ERUxJTVMkJCIsICJSRVNFUlZFRCQkIiwgIkdFTl9ERUxJTVMkJCIsICJVQ1NDSEFSJCQiLCAiU0NIRU1FJCIsICJVU0VSSU5GTyQiLCAiVU5SRVNFUlZFRCQkIiwgIkRFQ19PQ1RFVCQiLCAiREVDX09DVEVUX1JFTEFYRUQkIiwgIkgxNiQiLCAiTFMzMiQiLCAiSVBWNEFERFJFU1MkIiwgIklQVjZBRERSRVNTMSQiLCAiSVBWNkFERFJFU1MyJCIsICJJUFY2QUREUkVTUzMkIiwgIklQVjZBRERSRVNTNCQiLCAiSVBWNkFERFJFU1M1JCIsICJJUFY2QUREUkVTUzYkIiwgIklQVjZBRERSRVNTNyQiLCAiSVBWNkFERFJFU1M4JCIsICJJUFY2QUREUkVTUzkkIiwgIlpPTkVJRCQiLCAiSVBWNkFERFJFU1MkIiwgIklQX0xJVEVSQUwkIiwgIklQVjZBRERSWl9SRUxBWEVEJCIsICJJUFZGVVRVUkUkIiwgIkhPU1QkIiwgIlJFR19OQU1FJCIsICJQT1JUJCIsICJBVVRIT1JJVFkkIiwgIlBDSEFSJCIsICJTRUdNRU5UJCIsICJTRUdNRU5UX05aJCIsICJTRUdNRU5UX05aX05DJCIsICJQQVRIX0FCRU1QVFkkIiwgIlBBVEhfQUJTT0xVVEUkIiwgIlBBVEgkIiwgIlBBVEhfTk9TQ0hFTUUkIiwgIlBBVEhfUk9PVExFU1MkIiwgIlBBVEhfRU1QVFkkIiwgIlFVRVJZJCIsICJJUFJJVkFURSQkIiwgIkZSQUdNRU5UJCIsICJISUVSX1BBUlQkIiwgIlVSSSQiLCAiUkVMQVRJVkVfUEFSVCQiLCAiUkVMQVRJVkUkIiwgIlVSSV9SRUZFUkVOQ0UkIiwgIkFCU09MVVRFX1VSSSQiLCAiR0VORVJJQ19SRUYkIiwgIlJFTEFUSVZFX1JFRiQiLCAiQUJTT0xVVEVfUkVGJCIsICJTQU1FRE9DX1JFRiQiLCAiQVVUSE9SSVRZX1JFRiQiLCAiUmVnRXhwIiwgIm1heEludCIsICJiYXNlIiwgInRNaW4iLCAidE1heCIsICJza2V3IiwgImRhbXAiLCAiaW5pdGlhbEJpYXMiLCAiaW5pdGlhbE4iLCAiZGVsaW1pdGVyIiwgInJlZ2V4UHVueWNvZGUiLCAicmVnZXhOb25BU0NJSSIsICJyZWdleFNlcGFyYXRvcnMiLCAiZXJyb3JzIiwgImJhc2VNaW51c1RNaW4iLCAiZmxvb3IiLCAiTWF0aCIsICJzdHJpbmdGcm9tQ2hhckNvZGUiLCAiU3RyaW5nIiwgImZyb21DaGFyQ29kZSIsICJlcnJvciIsICJ0eXBlIiwgIlJhbmdlRXJyb3IiLCAibWFwIiwgImFycmF5IiwgImZuIiwgInJlc3VsdCIsICJtYXBEb21haW4iLCAic3RyaW5nIiwgInBhcnRzIiwgInJlcGxhY2UiLCAibGFiZWxzIiwgImVuY29kZWQiLCAidWNzMmRlY29kZSIsICJvdXRwdXQiLCAiY291bnRlciIsICJ2YWx1ZSIsICJjaGFyQ29kZUF0IiwgImV4dHJhIiwgInB1c2giLCAidWNzMmVuY29kZSIsICJmcm9tQ29kZVBvaW50IiwgImJhc2ljVG9EaWdpdCIsICJjb2RlUG9pbnQiLCAiZGlnaXRUb0Jhc2ljIiwgImRpZ2l0IiwgImZsYWciLCAiYWRhcHQiLCAiZGVsdGEiLCAibnVtUG9pbnRzIiwgImZpcnN0VGltZSIsICJrIiwgImRlY29kZSIsICJpbnB1dCIsICJpbnB1dExlbmd0aCIsICJpIiwgIm4iLCAiYmlhcyIsICJiYXNpYyIsICJsYXN0SW5kZXhPZiIsICJqIiwgImluZGV4IiwgIm9sZGkiLCAidyIsICJ0IiwgImJhc2VNaW51c1QiLCAib3V0IiwgInNwbGljZSIsICJlbmNvZGUiLCAiY3VycmVudFZhbHVlIiwgImJhc2ljTGVuZ3RoIiwgImhhbmRsZWRDUENvdW50IiwgIm0iLCAiaGFuZGxlZENQQ291bnRQbHVzT25lIiwgInEiLCAicU1pbnVzVCIsICJ0b1VuaWNvZGUiLCAidGVzdCIsICJ0b0FTQ0lJIiwgInB1bnljb2RlIiwgIlNDSEVNRVMiLCAicGN0RW5jQ2hhciIsICJjaHIiLCAiYyIsICJlIiwgInBjdERlY0NoYXJzIiwgIm5ld1N0ciIsICJpbCIsICJwYXJzZUludCIsICJzdWJzdHIiLCAiYzIiLCAiYzMiLCAiX25vcm1hbGl6ZUNvbXBvbmVudEVuY29kaW5nIiwgImNvbXBvbmVudHMiLCAicHJvdG9jb2wiLCAiZGVjb2RlVW5yZXNlcnZlZCIsICJkZWNTdHIiLCAibWF0Y2giLCAiVU5SRVNFUlZFRCIsICJzY2hlbWUiLCAiUENUX0VOQ09ERUQiLCAiTk9UX1NDSEVNRSIsICJ1c2VyaW5mbyIsICJOT1RfVVNFUklORk8iLCAiaG9zdCIsICJOT1RfSE9TVCIsICJwYXRoIiwgIk5PVF9QQVRIIiwgIk5PVF9QQVRIX05PU0NIRU1FIiwgInF1ZXJ5IiwgIk5PVF9RVUVSWSIsICJmcmFnbWVudCIsICJOT1RfRlJBR01FTlQiLCAiX3N0cmlwTGVhZGluZ1plcm9zIiwgIl9ub3JtYWxpemVJUHY0IiwgIm1hdGNoZXMiLCAiSVBWNEFERFJFU1MiLCAiYWRkcmVzcyIsICJfbm9ybWFsaXplSVB2NiIsICJJUFY2QUREUkVTUyIsICJ6b25lIiwgInJldmVyc2UiLCAibGFzdCIsICJmaXJzdCIsICJmaXJzdEZpZWxkcyIsICJsYXN0RmllbGRzIiwgImlzTGFzdEZpZWxkSVB2NEFkZHJlc3MiLCAiZmllbGRDb3VudCIsICJsYXN0RmllbGRzU3RhcnQiLCAiZmllbGRzIiwgImFsbFplcm9GaWVsZHMiLCAicmVkdWNlIiwgImFjYyIsICJmaWVsZCIsICJsYXN0TG9uZ2VzdCIsICJsb25nZXN0WmVyb0ZpZWxkcyIsICJzb3J0IiwgImEiLCAiYiIsICJuZXdIb3N0IiwgIm5ld0ZpcnN0IiwgIm5ld0xhc3QiLCAiVVJJX1BBUlNFIiwgIk5PX01BVENIX0lTX1VOREVGSU5FRCIsICJwYXJzZSIsICJ1cmlTdHJpbmciLCAib3B0aW9ucyIsICJpcmkiLCAiSVJJX1BST1RPQ09MIiwgIlVSSV9QUk9UT0NPTCIsICJyZWZlcmVuY2UiLCAicG9ydCIsICJpc05hTiIsICJpbmRleE9mIiwgInNjaGVtZUhhbmRsZXIiLCAidW5pY29kZVN1cHBvcnQiLCAiZG9tYWluSG9zdCIsICJfcmVjb21wb3NlQXV0aG9yaXR5IiwgInVyaVRva2VucyIsICJfIiwgIiQxIiwgIiQyIiwgIlJEUzEiLCAiUkRTMiIsICJSRFMzIiwgIlJEUzUiLCAicmVtb3ZlRG90U2VnbWVudHMiLCAiaW0iLCAicyIsICJFcnJvciIsICJzZXJpYWxpemUiLCAiYXV0aG9yaXR5IiwgImNoYXJBdCIsICJhYnNvbHV0ZVBhdGgiLCAicmVzb2x2ZUNvbXBvbmVudHMiLCAicmVsYXRpdmUiLCAic2tpcE5vcm1hbGl6YXRpb24iLCAidG9sZXJhbnQiLCAicmVzb2x2ZSIsICJiYXNlVVJJIiwgInJlbGF0aXZlVVJJIiwgInNjaGVtZWxlc3NPcHRpb25zIiwgIm5vcm1hbGl6ZSIsICJ1cmkiLCAiZXF1YWwiLCAidXJpQSIsICJ1cmlCIiwgImVzY2FwZUNvbXBvbmVudCIsICJFU0NBUEUiLCAidW5lc2NhcGVDb21wb25lbnQiLCAiaGFuZGxlciIsICJzZWN1cmUiLCAiaHR0cCIsICJpc1NlY3VyZSIsICJ3c0NvbXBvbmVudHMiLCAicmVzb3VyY2VOYW1lIiwgIndzIiwgIk8iLCAiQVRFWFQkJCIsICJRVEVYVCQkIiwgIlZDSEFSJCQiLCAiU09NRV9ERUxJTVMkJCIsICJOT1RfTE9DQUxfUEFSVCIsICJOT1RfSEZOQU1FIiwgIk5PVF9IRlZBTFVFIiwgIm1haWx0b0NvbXBvbmVudHMiLCAidG8iLCAidW5rbm93bkhlYWRlcnMiLCAiaGVhZGVycyIsICJoZmllbGRzIiwgImhmaWVsZCIsICJ0b0FkZHJzIiwgInN1YmplY3QiLCAiYm9keSIsICJhZGRyIiwgInRvQWRkciIsICJhdElkeCIsICJsb2NhbFBhcnQiLCAiZG9tYWluIiwgIm5hbWUiLCAiVVJOX1BBUlNFIiwgInVybkNvbXBvbmVudHMiLCAibmlkIiwgIm5zcyIsICJ1cm5TY2hlbWUiLCAidXJpQ29tcG9uZW50cyIsICJVVUlEIiwgInV1aWRDb21wb25lbnRzIiwgInV1aWQiLCAiaHR0cHMiLCAid3NzIiwgIm1haWx0byIsICJ1cm4iLCAiZXhwb3J0cyIsICJtb2R1bGUiLCAiZXhwb3J0cyIsICJtb2R1bGUiLCAiZXhwb3J0cyIsICJtb2R1bGUiLCAiZGF0YSIsICJPSyIsICJpc051bWJlciIsICJwcm9wIiwgImV4cG9ydHMiLCAibW9kdWxlIiwgInV0aWwiLCAiZXhwb3J0cyIsICJtb2R1bGUiLCAicHJvcCIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJ1dGlsIiwgImNvbXBpbGUiLCAicm9vdCIsICJzZWxmIiwgImV4cG9ydHMiLCAibW9kdWxlIiwgImV4cG9ydHMiLCAibW9kdWxlIiwgImRhdGEiLCAic3RyaW5naWZ5IiwgImV4cG9ydHMiLCAibW9kdWxlIiwgIiRydWxlc0dyb3VwIiwgIiRydWxlIiwgImV4cG9ydHMiLCAibW9kdWxlIiwgInV0aWwiLCAiY29tcGlsZSIsICJyb290IiwgInNlbGYiLCAiZGVmYXVsdHMiLCAibG9jYWxSZWZzIiwgImJhc2VJZCIsICJ2IiwgInJlZlZhbCIsICJpbmRleCIsICJzY2hlbWEiLCAiZXhwb3J0cyIsICJtb2R1bGUiLCAiQ2FjaGUiLCAiZXhwb3J0cyIsICJtb2R1bGUiLCAidXRpbCIsICJVUkwiLCAiZXhwb3J0cyIsICJtb2R1bGUiLCAiZXhwb3J0cyIsICJtb2R1bGUiLCAiZXhwb3J0cyIsICJtb2R1bGUiLCAiJHNjaCIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJzZWxmIiwgInJlZiIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJrZXl3b3JkIiwgImRhdGFUeXBlIiwgImRlZmluaXRpb24iLCAiaSIsICJyZXF1aXJlX2RhdGEiLCAiZXhwb3J0cyIsICJtb2R1bGUiLCAiZXhwb3J0cyIsICJtb2R1bGUiLCAidXRpbCIsICJBanYiLCAiY29tcGlsZSIsICJhZGRGb3JtYXQiLCAiZGF0YSIsICJzZWxmIiwgInJvb3QiLCAic2VyaWFsaXplIiwgInRleHQiLCAibm9vcCIsICJfYSIsICJBanYiLCAiaXNWYWxpZCIsICJ3cmFwIiwgInZhbCIsICJwcm90b3R5cGUiLCAiZGVzY3JpcHRvcnMiLCAiZmlsdGVyIiwgInByb3AiLCAiaGFzT3duUHJvcGVydHkiLCAiZGVmaW5lIiwgImRhdGEiLCAiZmlsdGVyIiwgInByb3AiLCAiZXhwb3J0cyIsICJtb2R1bGUiLCAidXRpbCIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJ1dGlsIiwgInN0cmVhbSIsICJzZWxmIiwgImVyciIsICJkYXRhIiwgImV4cG9ydHMiLCAibW9kdWxlIiwgImV4cG9ydHMiLCAibW9kdWxlIiwgImV4cG9ydHMiLCAiY2hhcnNldCIsICJleHRlbnNpb24iLCAiZXhwb3J0cyIsICJtb2R1bGUiLCAicmVxdWlyZV9hc3luYyIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJpc0FzeW5jIiwgImVyciIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJyZXF1aXJlX3JlZiIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJpc05hTiIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJjb25jYXR0eSIsICJzbGljeSIsICJiaW5kIiwgIkVtcHR5IiwgImV4cG9ydHMiLCAibW9kdWxlIiwgImV4cG9ydHMiLCAibW9kdWxlIiwgImV4cG9ydHMiLCAibW9kdWxlIiwgImV4cG9ydHMiLCAibW9kdWxlIiwgImV4cG9ydHMiLCAibW9kdWxlIiwgImJpbmQiLCAiZXhwb3J0cyIsICJtb2R1bGUiLCAiYmluZCIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJiaW5kIiwgImV4cG9ydHMiLCAibW9kdWxlIiwgInVuZGVmaW5lZCIsICJkb0V2YWwiLCAiYmluZCIsICJoYXNPd24iLCAic3RyaW5nVG9QYXRoIiwgImZpcnN0IiwgImxhc3QiLCAiZ2V0QmFzZUludHJpbnNpYyIsICJyZXF1aXJlX3NoYW1zIiwgImV4cG9ydHMiLCAibW9kdWxlIiwgImV4cG9ydHMiLCAibW9kdWxlIiwgImhhc093biIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJwcm9wIiwgImV4cG9ydHMiLCAibW9kdWxlIiwgInV0aWwiLCAiaHR0cCIsICJodHRwcyIsICJGb3JtRGF0YSIsICJhcHBlbmQiLCAiZXJyIiwgImNvbnRlbnRzIiwgInByb3AiLCAibmV4dCIsICJkZWZhdWx0cyIsICJGb3JtRGF0YSIsICJlYWNoIiwgImluZGV4IiwgInByb3AiLCAicHJvdG90eXBlIiwgInRvU3RyaW5nIiwgImVhY2giLCAiZW5jb2RlIiwgInZhbCIsICJ1cmwiLCAidXJsIiwgImNyeXB0byIsICJpbml0X3V0aWxzIiwgImluaXRfdXRpbHMiLCAiZGF0YSIsICJpbmRleCIsICJkYXRhIiwgImlzRm9ybURhdGEiLCAiaXNGaWxlTGlzdCIsICJ0cmFuc2l0aW9uYWwiLCAidmFsIiwgImZpbHRlciIsICJzZWxmIiwgImZpcnN0IiwgInByb3RvdHlwZSIsICJkYXRhIiwgInZhbGlkYXRlU3RhdHVzIiwgInVybCIsICJleHBvcnRzIiwgInVybCIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJ2YWwiLCAicGFyc2UiLCAiZXhwb3J0cyIsICJtb2R1bGUiLCAiY29lcmNlIiwgInNlbGYiLCAiaW5kZXgiLCAidmFsIiwgImV4dGVuZCIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJsb2FkIiwgImluZGV4IiwgImV4cG9ydHMiLCAibW9kdWxlIiwgInV0aWwiLCAibG9hZCIsICJwcm9wIiwgInZhbCIsICJ1c2VDb2xvcnMiLCAiZXhwb3J0cyIsICJtb2R1bGUiLCAiZXhwb3J0cyIsICJtb2R1bGUiLCAiZXhwb3J0cyIsICJtb2R1bGUiLCAidXJsIiwgIlVSTCIsICJodHRwIiwgImh0dHBzIiwgImlzRnVuY3Rpb24iLCAibm9vcCIsICJzZWxmIiwgImRhdGEiLCAiaXNTdHJpbmciLCAiaXNCdWZmZXIiLCAid3JhcCIsICJnZXQiLCAic3ByZWFkIiwgInVybCIsICJzdHJlYW0iLCAicHJvcCIsICJlcnIiLCAiaW1wb3J0X3N0cmVhbSIsICJ1dGlsIiwgImltcG9ydF9zdHJlYW0iLCAic3RyZWFtIiwgImVyciIsICJkYXRhIiwgInByb3h5RnJvbUVudiIsICJpbXBvcnRfdXRpbCIsICJpbXBvcnRfc3RyZWFtIiwgInpsaWIiLCAiZm9sbG93UmVkaXJlY3RzIiwgInN0cmVhbSIsICJkYXRhIiwgImVyciIsICJ1dGlsIiwgImh0dHBzIiwgImh0dHAiLCAidHJhbnNpdGlvbmFsIiwgIm9yaWdpbiIsICJ1cmwiLCAicHJvcCIsICJtZXJnZSIsICJkYXRhIiwgImVyciIsICJ0cmFuc2l0aW9uYWwiLCAidmFsIiwgImVyciIsICJzaWduYWwiLCAiZW5kIiwgInN0cmVhbSIsICJkb25lIiwgImVyciIsICJyZXMiLCAidXJsIiwgImRhdGEiLCAicHJvcCIsICJlcnIiLCAiYWRhcHRlciIsICJhZGFwdGVyIiwgInZhbGlkYXRvcnMiLCAiZXJyIiwgInRyYW5zaXRpb25hbCIsICJ1cmwiLCAiZGF0YSIsICJpbmRleCIsICJlcnIiLCAid3JhcCIsICJBeGlvcyIsICJBeGlvc0Vycm9yIiwgIkNhbmNlbGVkRXJyb3IiLCAiaXNDYW5jZWwiLCAiQ2FuY2VsVG9rZW4iLCAiVkVSU0lPTiIsICJhbGwiLCAiaXNBeGlvc0Vycm9yIiwgInNwcmVhZCIsICJ0b0Zvcm1EYXRhIiwgIkF4aW9zSGVhZGVycyIsICJIdHRwU3RhdHVzQ29kZSIsICJtZXJnZUNvbmZpZyIsICJpbml0X2F4aW9zIiwgIkVsZW1lbnRUeXBlIiwgImlzVGFnIiwgIlRleHQiLCAiQ29tbWVudCIsICJjaGlsZHJlbiIsICJjbG9uZSIsICJDREFUQSIsICJpbml0X25vZGUiLCAicGFyZW50IiwgInByZXYiLCAibmV4dCIsICJkYXRhIiwgIl9hIiwgImRlZmF1bHRPcHRzIiwgImluaXRfZXNtIiwgImluaXRfbm9kZSIsICJkYXRhIiwgIlRleHQiLCAiQ29tbWVudCIsICJ0ZXh0IiwgIkNEQVRBIiwgInBhcmVudCIsICJfYSIsICJpc051bWJlciIsICJDaGFyQ29kZXMiLCAiQmluVHJpZUZsYWdzIiwgIkVudGl0eURlY29kZXJTdGF0ZSIsICJEZWNvZGluZ01vZGUiLCAiZW5kIiwgIl9hIiwgIm5leHQiLCAibWFwIiwgImVzY2FwZSIsICJkYXRhIiwgImluZGV4IiwgImluaXRfZXNtIiwgIkVudGl0eUxldmVsIiwgIkVuY29kaW5nTW9kZSIsICJ2YWwiLCAiYXR0cmlidXRlcyIsICJfYSIsICJlbmNvZGUiLCAiZGF0YSIsICJpbml0X2VzbSIsICJub2RlIiwgImlzVGFnIiwgImluaXRfZXNtIiwgInBhcmVudCIsICJzaWJsaW5ncyIsICJwcmV2IiwgIm5leHQiLCAiX2EiLCAiaXNUYWciLCAiaW5pdF9lc20iLCAicHJldiIsICJuZXh0IiwgInBhcmVudCIsICJhcHBlbmQiLCAiZmlsdGVyIiwgInRlc3QiLCAiaXNUYWciLCAiaW5pdF9lc20iLCAiaXNUYWciLCAidGVzdCIsICJmaWx0ZXIiLCAiaW5pdF9lc20iLCAiZGF0YSIsICJzaWJsaW5ncyIsICJpbml0X2VzbSIsICJEb2N1bWVudFBvc2l0aW9uIiwgImNoaWxkcmVuIiwgImVudHJ5IiwgImhyZWYiLCAiX2EiLCAiZmV0Y2giLCAicHJvcCIsICJ2YWwiLCAiZXNtX2V4cG9ydHMiLCAiYXBwZW5kIiwgImZpbHRlciIsICJpc1RhZyIsICJpbml0X2VzbSIsICJtZXJnZSIsICJyZW5kZXIiLCAiZGF0YSIsICJuZXh0IiwgIm1hcCIsICJpbml0X2VzbSIsICJpbml0X3V0aWxzIiwgIkNoYXJhY3RlckNvZGVzIiwgImlzVGFnIiwgIl9hIiwgInByb3AiLCAidmFsIiwgImRhdGEiLCAiZW5kIiwgImluZGV4IiwgImluaXRfdXRpbHMiLCAiaW5pdF9lc20iLCAiZXhwb3J0cyIsICJTZWxlY3RvclR5cGUiLCAiQXR0cmlidXRlQWN0aW9uIiwgImV4cG9ydHMiLCAiaXNUcmF2ZXJzYWwiLCAiaXNRdW90ZSIsICJpc1doaXRlc3BhY2UiLCAicGFyc2UiLCAic3Vic2VsZWN0cyIsICJnZXROYW1lIiwgImFjdGlvbiIsICJkYXRhIiwgImV4cG9ydHMiLCAic3RyaW5naWZ5IiwgImluZGV4IiwgImV4cG9ydHMiLCAiZXhwb3J0cyIsICJtb2R1bGUiLCAidHJ1ZUZ1bmMiLCAiX2EiLCAiaW5pdF9hdHRyaWJ1dGVzIiwgIm5leHQiLCAiZGF0YSIsICJhZGFwdGVyIiwgImF0dHIiLCAiYm9vbGJhc2UiLCAiX2EiLCAiYm9vbGJhc2UiLCAiaW5kZXgiLCAiaW1wb3J0X2Jvb2xiYXNlIiwgImluaXRfZXNtIiwgIm5leHQiLCAiYWRhcHRlciIsICJwYXJlbnQiLCAiYm9vbGJhc2UiLCAiaW1wb3J0X2Jvb2xiYXNlIiwgImluaXRfZXNtIiwgInRleHQiLCAiY29udGFpbnMiLCAic2libGluZ3MiLCAiYWRhcHRlciIsICJlbGVtIiwgInNpYmxpbmdzIiwgIm5leHQiLCAiYWRhcHRlciIsICJib29sYmFzZSIsICJzaWJsaW5ncyIsICJpbXBvcnRfYm9vbGJhc2UiLCAiY29tcGlsZVRva2VuIiwgIm5leHQiLCAiY29tcGlsZVRva2VuIiwgImRhdGEiLCAiX2EiLCAiaW1wb3J0X2Nzc193aGF0IiwgImFkYXB0ZXIiLCAicGFyZW50IiwgIm5leHQiLCAiY29tcGlsZVRva2VuIiwgImVsZW0iLCAic2libGluZ3MiLCAiaW1wb3J0X2Nzc193aGF0IiwgImluaXRfYXR0cmlidXRlcyIsICJjb21waWxlIiwgIm5leHQiLCAiZGF0YSIsICJhZGFwdGVyIiwgInBhcmVudCIsICJfYSIsICJmaXJzdCIsICJib29sYmFzZSIsICJpbXBvcnRfY3NzX3doYXQiLCAiaW1wb3J0X2Jvb2xiYXNlIiwgImluaXRfY29tcGlsZSIsICJfYSIsICJlc21fZXhwb3J0cyIsICJzZWxlY3QiLCAiYWRhcHRlciIsICJpbXBvcnRfYm9vbGJhc2UiLCAiY29tcGlsZSIsICJpbml0X2VzbSIsICJpbml0X2NvbXBpbGUiLCAiYm9vbGJhc2UiLCAicyIsICJmaWx0ZXIiLCAiZGF0YSIsICJpbml0X2hlbHBlcnMiLCAiaXMiLCAiZmlsdGVyIiwgImRhdGEiLCAiaXNUYWciLCAicm9vdCIsICJfYSIsICJmaW5kIiwgImVzbV9leHBvcnRzIiwgImltcG9ydF9jc3Nfd2hhdCIsICJib29sYmFzZSIsICJpbml0X2VzbSIsICJpbml0X2hlbHBlcnMiLCAiZmlsdGVyIiwgImZpbmQiLCAiaXMiLCAidG9BcnJheSIsICJfYSIsICJmbiIsICJuZXh0RWxlbSIsICJuZXh0IiwgImlzVGFnIiwgInZhbCIsICJyb290IiwgImVuZCIsICJjb250ZW50cyIsICJpbml0X2VzbSIsICJpbml0X3V0aWxzIiwgInBhcmVudCIsICJwYXJzZSIsICJpc0RvY3VtZW50IiwgInJvb3QiLCAicGFyZW50IiwgImluaXRfcGFyc2UiLCAiaW5pdF9lc20iLCAiYXBwZW5kIiwgImh0bWwiLCAicHJlcGVuZCIsICJ0ZXh0IiwgInRvU3RyaW5nIiwgImNsb25lIiwgInBhcmVudCIsICJwcmV2IiwgIm5leHQiLCAiX2EiLCAid3JhcCIsICJpc1RhZyIsICJzaWJsaW5ncyIsICJpbmRleCIsICJUZXh0IiwgInJvb3QiLCAiaW5pdF9tYW5pcHVsYXRpb24iLCAiaW5pdF9lc20iLCAiaW5pdF9wYXJzZSIsICJpbml0X3V0aWxzIiwgImNoaWxkcmVuIiwgInByb3AiLCAidmFsIiwgImlzVGFnIiwgInBhcnNlIiwgImluaXRfdXRpbHMiLCAiaW5pdF9lc20iLCAiZGF0YSIsICJpc1RhZyIsICJfYSIsICJ2YWwiLCAiaW5pdF9lc20iLCAiZXh0cmFjdCIsICJfYSIsICJtYXAiLCAiaXNBcnJheSIsICIkIiwgImluaXRfbWFuaXB1bGF0aW9uIiwgInJvb3QiLCAicGFyc2UiLCAicmVuZGVyIiwgImxvYWQiLCAiaXNEb2N1bWVudCIsICJjb250ZW50IiwgIm9wdGlvbnMiLCAicm9vdCIsICJpbml0X3V0aWxzIiwgIkNPREVfUE9JTlRTIiwgIkVSUiIsICJUb2tlblR5cGUiLCAiX2EiLCAiTlMiLCAiQVRUUlMiLCAiRE9DVU1FTlRfTU9ERSIsICJUQUdfTkFNRVMiLCAiVEFHX0lEIiwgImlzQXNjaWlBbHBoYU51bWVyaWMiLCAiU3RhdGUiLCAiX2EiLCAiZG9jdW1lbnQiLCAiRW50cnlUeXBlIiwgImVudHJ5IiwgImRhdGEiLCAiZG9jdW1lbnQiLCAidGV4dCIsICJhdHRyIiwgImF0dHIiLCAiX2EiLCAiSW5zZXJ0aW9uTW9kZSIsICJkb2N1bWVudCIsICJodG1sIiwgImVyciIsICJwYXJlbnQiLCAic2libGluZ3MiLCAiZW50cnkiLCAiZGVmYXVsdE9wdHMiLCAiaHRtbCIsICJhdHRyIiwgInBhcmVudCIsICJwYXJzZSIsICJodG1sIiwgImluaXRfZGlzdCIsICJpbml0X2VzbSIsICJpc1RhZyIsICJkYXRhIiwgIkNvbW1lbnQiLCAiVGV4dCIsICJwcmV2IiwgImRvY3VtZW50IiwgIm5leHQiLCAidGV4dCIsICJfYSIsICJpc0RvY3VtZW50IiwgIl9hIiwgInBhcnNlIiwgImluZGV4IiwgImluaXRfZXNtIiwgImluaXRfZGlzdCIsICJpc1doaXRlc3BhY2UiLCAiQ2hhckNvZGVzIiwgIlN0YXRlIiwgIlRva2VuaXplciIsICJRdW90ZVR5cGUiLCAiUGFyc2VyIiwgIl9hIiwgIlRva2VuaXplciIsICJkYXRhIiwgImluZGV4IiwgImVuZCIsICJzbGljZSIsICJkYXRhIiwgIlBhcnNlciIsICJpbml0X2VzbSIsICJwYXJzZSIsICJpbml0X3BhcnNlIiwgImluaXRfZXNtIiwgImlzRG9jdW1lbnQiLCAiaW5pdF9kaXN0IiwgImV4cG9ydHMiLCAibW9kdWxlIiwgIkJ1ZmZlciIsICJleHBvcnRzIiwgImV4cG9ydHMiLCAibW9kdWxlIiwgIkJ1ZmZlciIsICJpY29udiIsICJleHBvcnRzIiwgIkJ1ZmZlciIsICJpY29udiIsICJleHBvcnRzIiwgIkJ1ZmZlciIsICJpY29udiIsICJleHBvcnRzIiwgIkJ1ZmZlciIsICJpY29udiIsICJiYXNlNjRSZWdleCIsICJpIiwgImV4cG9ydHMiLCAiQnVmZmVyIiwgImljb252IiwgImV4cG9ydHMiLCAibW9kdWxlIiwgImV4cG9ydHMiLCAibW9kdWxlIiwgImV4cG9ydHMiLCAiQnVmZmVyIiwgImljb252IiwgImkiLCAidmFsIiwgImV4cG9ydHMiLCAibW9kdWxlIiwgImV4cG9ydHMiLCAibW9kdWxlIiwgImV4cG9ydHMiLCAibW9kdWxlIiwgImV4cG9ydHMiLCAibW9kdWxlIiwgImV4cG9ydHMiLCAibW9kdWxlIiwgImV4cG9ydHMiLCAibW9kdWxlIiwgImV4cG9ydHMiLCAibW9kdWxlIiwgImV4cG9ydHMiLCAibW9kdWxlIiwgImV4cG9ydHMiLCAibW9kdWxlIiwgImV4cG9ydHMiLCAibW9kdWxlIiwgImV4cG9ydHMiLCAibW9kdWxlIiwgIkJ1ZmZlciIsICJUcmFuc2Zvcm0iLCAiZXhwb3J0cyIsICJtb2R1bGUiLCAiQnVmZmVyIiwgImljb252IiwgImVuY29kZSIsICJnZXREZWNvZGVyIiwgInN0cmVhbV9tb2R1bGUiLCAiZXhwb3J0cyIsICJtb2R1bGUiLCAiZXhwb3J0cyIsICJtb2R1bGUiLCAiZXhwb3J0cyIsICJTdGF0ZSIsICJSZXN1bHRUeXBlIiwgIkF0dHJpYlR5cGUiLCAiQ2hhcnMiLCAiU25pZmZlciIsICJfYSIsICJpbmRleCIsICJEZWNvZGVTdHJlYW0iLCAiX2EiLCAic3RyZWFtIiwgImljb252IiwgImV4cG9ydHMiLCAibW9kdWxlIiwgImV4cG9ydHMiLCAibW9kdWxlIiwgImRhdGEiLCAiZXhwb3J0cyIsICJtb2R1bGUiLCAiZXhwb3J0cyIsICJtb2R1bGUiLCAiaW5kZXgiLCAicmVxdWlyZV91dGlsIiwgImV4cG9ydHMiLCAibW9kdWxlIiwgInN0cmVhbSIsICJCbG9iIiwgInN0cmluZ2lmeSIsICJpc1N0cmVhbSIsICJidWlsZFVSTCIsICJ1cmwiLCAib3JpZ2luIiwgImlkeCIsICJpc0J1ZmZlciIsICJlcnIiLCAidmFsIiwgImV4cG9ydHMiLCAibW9kdWxlIiwgInV0aWwiLCAib3JpZ2luIiwgImVyciIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJpc1N0cmVhbSIsICJpc0J1ZmZlciIsICJidWlsZFVSTCIsICJSZXF1ZXN0IiwgIm9yaWdpbiIsICJlcnIiLCAidmFsIiwgImV4cG9ydHMiLCAibW9kdWxlIiwgIkV2ZW50RW1pdHRlciIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJlcnIiLCAiZGF0YSIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJ1dGlsIiwgIm5vb3AiLCAic2Vzc2lvbiIsICJlcnIiLCAiZXhwb3J0cyIsICJyZXF1aXJlX2NvbnN0YW50cyIsICJleHBvcnRzIiwgIkVSUk9SIiwgIlRZUEUiLCAiRkxBR1MiLCAiTEVOSUVOVF9GTEFHUyIsICJNRVRIT0RTIiwgIkZJTklTSCIsICJIRUFERVJfU1RBVEUiLCAiZXhwb3J0cyIsICJtb2R1bGUiLCAiQnVmZmVyIiwgImV4cG9ydHMiLCAibW9kdWxlIiwgIkJ1ZmZlciIsICJyZXF1aXJlX2NvbnN0YW50cyIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJ1cmwiLCAiZGF0YSIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJlcnIiLCAiaW5kZXgiLCAia2V5cyIsICJyZXF1aXJlX3V0aWwiLCAiZXhwb3J0cyIsICJtb2R1bGUiLCAiVHJhbnNmb3JtIiwgInpsaWIiLCAicGVyZm9ybWFuY2UiLCAiY3J5cHRvIiwgInVybCIsICJpc1ZhbGlkSGVhZGVyTmFtZSIsICJvcmlnaW4iLCAiZW1wdHkiLCAiaXNBYm9ydGVkIiwgImluZGV4IiwgImZvckVhY2giLCAic3RyZWFtIiwgImVyciIsICJkYXRhIiwgInpsaWJPcHRpb25zIiwgInJlcXVpcmVfc3ltYm9scyIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJCbG9iIiwgImV4cG9ydHMiLCAibW9kdWxlIiwgIkZvcm1EYXRhIiwgImVudHJ5IiwgImV4cG9ydHMiLCAibW9kdWxlIiwgImV4cG9ydHMiLCAibW9kdWxlIiwgInV0aWwiLCAiRm9ybURhdGEiLCAiQmxvYiIsICJpc0FycmF5QnVmZmVyIiwgImNyeXB0byIsICJ0ZXh0RW5jb2RlciIsICJub29wIiwgInN0cmVhbSIsICJlc2NhcGUiLCAiY2h1bmsiLCAidmFsdWUiLCAicHJvdG90eXBlIiwgImRhdGEiLCAiZXhwb3J0cyIsICJtb2R1bGUiLCAidXRpbCIsICJQYXJzZXIiLCAiZGF0YSIsICJlcnIiLCAiY2xpZW50IiwgInZhbCIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJ1dGlsIiwgImNsaWVudCIsICJzb2NrZXQiLCAiZXJyIiwgInZhbCIsICJzdHJlYW0iLCAiaGVhZGVycyIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJ1dGlsIiwgIm9yaWdpbiIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJodHRwIiwgInV0aWwiLCAiUmVxdWVzdCIsICJub29wIiwgInVybCIsICJjb25uZWN0IiwgImVyciIsICJvcmlnaW4iLCAic29ja2V0IiwgImV4cG9ydHMiLCAibW9kdWxlIiwgImRhdGEiLCAibmV4dCIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJvcmlnaW4iLCAiZXJyIiwgImV4cG9ydHMiLCAibW9kdWxlIiwgInV0aWwiLCAib3JpZ2luIiwgImV4cG9ydHMiLCAibW9kdWxlIiwgIm9yaWdpbiIsICJwb29sIiwgImVyciIsICJkaXNwYXRjaGVyIiwgImV4cG9ydHMiLCAibW9kdWxlIiwgInV0aWwiLCAib3JpZ2luIiwgImVyciIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJVUkwiLCAib3JpZ2luIiwgIm5vb3AiLCAidXJsIiwgIm9wdHMiLCAiZXJyIiwgImV4cG9ydHMiLCAibW9kdWxlIiwgInVybCIsICJlcnIiLCAiZW50cnkiLCAiZXhwb3J0cyIsICJtb2R1bGUiLCAiZXJyIiwgImVuZCIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJSZWFkYWJsZSIsICJ1dGlsIiwgIm5vb3AiLCAiZXJyIiwgInNlbGYiLCAic3RyZWFtIiwgImNvbnN1bWUiLCAiZW5kIiwgInJlcXVpcmVfdXRpbCIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJSZWFkYWJsZSIsICJ1dGlsIiwgImVyciIsICJkYXRhIiwgImV4cG9ydHMiLCAibW9kdWxlIiwgInNlbGYiLCAiZXhwb3J0cyIsICJtb2R1bGUiLCAidXRpbCIsICJlcnIiLCAiY2FsbGJhY2siLCAicmVzIiwgIm9wYXF1ZSIsICJzdHJlYW0iLCAiZGF0YSIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJSZWFkYWJsZSIsICJ1dGlsIiwgImVyciIsICJib2R5IiwgImV4cG9ydHMiLCAibW9kdWxlIiwgInV0aWwiLCAiZXJyIiwgImRhdGEiLCAiZXhwb3J0cyIsICJtb2R1bGUiLCAidXRpbCIsICJlcnIiLCAiZGF0YSIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJidWlsZFVSTCIsICJjbG9uZSIsICJpbmRleCIsICJtb2NrRGlzcGF0Y2giLCAibWF0Y2hIZWFkZXJWYWx1ZSIsICJkYXRhIiwgImVyciIsICJvcmlnaW4iLCAidXJsIiwgImV4cG9ydHMiLCAibW9kdWxlIiwgImJ1aWxkVVJMIiwgImRhdGEiLCAicmVwbHlQYXJhbWV0ZXJzIiwgIm5ld01vY2tEaXNwYXRjaCIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJvcmlnaW4iLCAiZXhwb3J0cyIsICJtb2R1bGUiLCAib3JpZ2luIiwgImV4cG9ydHMiLCAibW9kdWxlIiwgImV4cG9ydHMiLCAibW9kdWxlIiwgIlRyYW5zZm9ybSIsICJvcmlnaW4iLCAiZXhwb3J0cyIsICJtb2R1bGUiLCAib3JpZ2luIiwgInJlcXVpcmVfZ2xvYmFsIiwgImV4cG9ydHMiLCAibW9kdWxlIiwgImV4cG9ydHMiLCAibW9kdWxlIiwgImV4cG9ydHMiLCAibW9kdWxlIiwgIm9wdHMiLCAiZXhwb3J0cyIsICJtb2R1bGUiLCAiZXhwb3J0cyIsICJtb2R1bGUiLCAidXRpbCIsICJlcnIiLCAiZXhwb3J0cyIsICJtb2R1bGUiLCAib3JpZ2luIiwgImVyciIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJpc1ZhbGlkSGVhZGVyTmFtZSIsICJ1dGlsIiwgImV4cG9ydHMiLCAibW9kdWxlIiwgInV0aWwiLCAiaXNBYm9ydGVkIiwgIkZvcm1EYXRhIiwgInRleHRFbmNvZGVyIiwgIlJlc3BvbnNlIiwgImRhdGEiLCAidXJsIiwgImVyciIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJyZXF1aXJlX3JlcXVlc3QiLCAiZXhwb3J0cyIsICJtb2R1bGUiLCAiRmluYWxpemF0aW9uUmVnaXN0cnkiLCAidXRpbCIsICJSZXF1ZXN0IiwgImVyciIsICJvcmlnaW4iLCAid2luZG93IiwgImV4cG9ydHMiLCAibW9kdWxlIiwgIlJlcXVlc3QiLCAiemxpYiIsICJpc0Fib3J0ZWQiLCAiUmVhZGFibGUiLCAiZmV0Y2giLCAiZXJyIiwgInN0cmVhbSIsICJ1cmwiLCAicmVxdWlyZV9zeW1ib2xzIiwgImV4cG9ydHMiLCAibW9kdWxlIiwgImV4cG9ydHMiLCAibW9kdWxlIiwgImV4cG9ydHMiLCAibW9kdWxlIiwgImdldEVuY29kaW5nIiwgInJlcXVpcmVfdXRpbCIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJnZXRFbmNvZGluZyIsICJidG9hIiwgInN0cmVhbSIsICJ0eXBlIiwgInNsaWNlIiwgImV4cG9ydHMiLCAibW9kdWxlIiwgInJlcXVpcmVfc3ltYm9scyIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJyZXF1aXJlX3V0aWwiLCAiZXhwb3J0cyIsICJtb2R1bGUiLCAiaXNWYWxpZEhlYWRlck5hbWUiLCAicmVxdWlyZV9jYWNoZSIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJSZXNwb25zZSIsICJSZXF1ZXN0IiwgImluZGV4IiwgInN0cmVhbSIsICJyZXF1ZXN0IiwgImV4cG9ydHMiLCAibW9kdWxlIiwgImNhY2hlIiwgInJlcXVpcmVfY29uc3RhbnRzIiwgImV4cG9ydHMiLCAibW9kdWxlIiwgInJlcXVpcmVfdXRpbCIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJzdHJpbmdpZnkiLCAicmVxdWlyZV9wYXJzZSIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJzdHJpbmdpZnkiLCAiYXR0cmlidXRlcyIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJkYXRhIiwgIm9yaWdpbiIsICJyZXF1aXJlX2NvbnN0YW50cyIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJyZXF1aXJlX3N5bWJvbHMiLCAiZXhwb3J0cyIsICJtb2R1bGUiLCAicmVxdWlyZV91dGlsIiwgImV4cG9ydHMiLCAibW9kdWxlIiwgImRhdGEiLCAiZXhwb3J0cyIsICJtb2R1bGUiLCAiY3J5cHRvIiwgImJ1ZmZlciIsICJkYXRhIiwgImV4cG9ydHMiLCAibW9kdWxlIiwgImNyeXB0byIsICJ1cmwiLCAiZXhwb3J0cyIsICJtb2R1bGUiLCAiZGF0YSIsICJlcnIiLCAiZXhwb3J0cyIsICJtb2R1bGUiLCAiZGF0YSIsICJuZXh0IiwgImJvZHkiLCAiZXJyIiwgImV4cG9ydHMiLCAibW9kdWxlIiwgIm5vZGUiLCAiZGF0YSIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJ1cmwiLCAiZGF0YSIsICJlcnIiLCAicmVxdWlyZV91dGlsIiwgImV4cG9ydHMiLCAibW9kdWxlIiwgImV4cG9ydHMiLCAibW9kdWxlIiwgIlRyYW5zZm9ybSIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJ1cmwiLCAiZXhwb3J0cyIsICJtb2R1bGUiLCAidXRpbCIsICJ1cmwiLCAiZmV0Y2giLCAiZXJyIiwgInJlcXVpcmVfdXRpbHMiLCAiZXhwb3J0cyIsICJleHBvcnRzIiwgIm1vZHVsZSIsICJtYXAiLCAiZXhwb3J0cyIsICJtb2R1bGUiLCAiZXhwb3J0cyIsICJtb2R1bGUiLCAiZXhwb3J0cyIsICJtb2R1bGUiLCAicGFyc2UiLCAic2VyaWFsaXplIiwgImluaXRfZXNtIiwgImluaXRfZGlzdCIsICJ1cmwiLCAiaHRtbCIsICIkIiwgInRleHQiLCAiaW1wb3J0X2h0dHBzIiwgImluaXRfYXhpb3MiLCAiaW5pdF9lc20iLCAiaHR0cHMiLCAiaW5kZXgiLCAidXJsIiwgInVybCIsICJjcnlwdG8iLCAiaW1wb3J0X2NyeXB0byIsICJpbml0X3N0cmluZ2lmeSIsICJpbXBvcnRfY3J5cHRvIiwgImNyeXB0byIsICJpbml0X3N0cmluZ2lmeSIsICJnZXRSYW5kb21Vc2VyQWdlbnQiLCAiVVNFUl9BR0VOVFMiLCAiZ2V0Q2FjaGVLZXkiLCAiY2xlYXJPbGRDYWNoZSIsICJyZXN1bHRzQ2FjaGUiLCAiQ0FDSEVfRFVSQVRJT04iLCAic3RyZWFtIiwgImRhdGEiLCAiUmVzcG9uc2UiLCAiaW1wb3J0X2h0dHBzIiwgImh0dHBzQWdlbnQiLCAiaW5pdF9heGlvcyIsICJodHRwcyIsICJ0ZXh0IiwgInN0cmVhbSIsICJfX2NyZWF0ZSIsICJfX2RlZlByb3AiLCAiX19nZXRPd25Qcm9wRGVzYyIsICJfX2dldE93blByb3BOYW1lcyIsICJfX2dldFByb3RvT2YiLCAiX19oYXNPd25Qcm9wIiwgIl9fY29tbW9uSlMiLCAiX19jb3B5UHJvcHMiLCAiX190b0VTTSIsICJwYXJzZSIsICJtYXAiLCAidmFsIiwgInByb3AiLCAiZ2V0IiwgImluaGVyaXRzIiwgInV0aWwyIiwgInJlcXVpcmVfc2FmZXIiLCAicmVxdWlyZV9ib21faGFuZGxpbmciLCAicmVxdWlyZV9pbnRlcm5hbCIsICJpY29udiIsICJyZXF1aXJlX3V0ZjMyIiwgInJlcXVpcmVfdXRmMTYiLCAicmVxdWlyZV91dGY3IiwgImJhc2U2NFJlZ2V4MiIsICJyZXF1aXJlX3NiY3NfY29kZWMiLCAicmVxdWlyZV9zYmNzX2RhdGEiLCAicmVxdWlyZV9zYmNzX2RhdGFfZ2VuZXJhdGVkIiwgInJlcXVpcmVfZGJjc19jb2RlYyIsICJyZXF1aXJlX3NoaWZ0amlzIiwgInJlcXVpcmVfZXVjanAiLCAicmVxdWlyZV9jcDkzNiIsICJyZXF1aXJlX2dia19hZGRlZCIsICJyZXF1aXJlX2diMTgwMzBfcmFuZ2VzIiwgInJlcXVpcmVfY3A5NDkiLCAicmVxdWlyZV9jcDk1MCIsICJyZXF1aXJlX2JpZzVfYWRkZWQiLCAicmVxdWlyZV9kYmNzX2RhdGEiLCAicmVxdWlyZV9lbmNvZGluZ3MiLCAicmVxdWlyZV9zdHJlYW1zIiwgIlRyYW5zZm9ybSIsICJyZXF1aXJlX2xpYiIsICJlbmNvZGUiLCAiZ2V0RGVjb2RlciIsICJzdHJlYW0iLCAicmVhZFN0cmVhbSIsICJ3cmFwIiwgImluZGV4IiwgInJlcXVpcmVfbXMiLCAicmVxdWlyZV9jb21tb24iLCAiY29lcmNlMiIsICJleHRlbmQiLCAicmVxdWlyZV9icm93c2VyIiwgImxvYWQiLCAicmVxdWlyZV9ub2RlIiwgInJlcXVpcmVfc3JjIiwgImZpcnN0IiwgInJlcXVpcmVfYm9tX2hhbmRsaW5nMiIsICJyZXF1aXJlX2ludGVybmFsMiIsICJyZXF1aXJlX3V0ZjMyMiIsICJyZXF1aXJlX3V0ZjE2MiIsICJyZXF1aXJlX3V0ZjcyIiwgInJlcXVpcmVfc2Jjc19jb2RlYzIiLCAicmVxdWlyZV9zYmNzX2RhdGEyIiwgInJlcXVpcmVfc2Jjc19kYXRhX2dlbmVyYXRlZDIiLCAicmVxdWlyZV9kYmNzX2NvZGVjMiIsICJyZXF1aXJlX3NoaWZ0amlzMiIsICJyZXF1aXJlX2V1Y2pwMiIsICJyZXF1aXJlX2NwOTM2MiIsICJyZXF1aXJlX2dia19hZGRlZDIiLCAicmVxdWlyZV9nYjE4MDMwX3JhbmdlczIiLCAicmVxdWlyZV9jcDk0OTIiLCAicmVxdWlyZV9jcDk1MDIiLCAicmVxdWlyZV9iaWc1X2FkZGVkMiIsICJyZXF1aXJlX2RiY3NfZGF0YTIiLCAicmVxdWlyZV9lbmNvZGluZ3MyIiwgInJlcXVpcmVfc3RyZWFtczIiLCAicmVxdWlyZV9saWIyIiwgInpsaWIiLCAibmV4dCIsICJyZXF1aXJlX2RiIiwgInJlcXVpcmVfbWltZV9kYiIsICJyZXF1aXJlX21pbWVfdHlwZXMiLCAidGVzdCIsICJyZXF1aXJlX3V0aWxzIiwgInRleHQiLCAicmVxdWlyZV90eXBlIiwgImhhcyIsICJpc0FycmF5IiwgImlzUmVnRXhwIiwgImlzTnVtYmVyIiwgImlzQm9vbGVhbiIsICJpc1N0cmluZyIsICJpc0RhdGUiLCAiaXNQbGFpbk9iamVjdCIsICJoYXNPd24iLCAicHJldiIsICJyb290IiwgInJlcXVpcmVfZXNfb2JqZWN0X2F0b21zIiwgInJlcXVpcmVfZXNfZXJyb3JzIiwgInJlcXVpcmVfZXZhbCIsICJyZXF1aXJlX3JhbmdlIiwgInJlcXVpcmVfcmVmIiwgInJlcXVpcmVfc3ludGF4IiwgInJlcXVpcmVfdXJpIiwgInJlcXVpcmVfYWJzIiwgInJlcXVpcmVfZmxvb3IiLCAicmVxdWlyZV9tYXgiLCAicmVxdWlyZV9taW4iLCAicmVxdWlyZV9wb3ciLCAicmVxdWlyZV9yb3VuZCIsICJyZXF1aXJlX2lzTmFOIiwgInJlcXVpcmVfc2lnbiIsICJyZXF1aXJlX2dPUEQiLCAicmVxdWlyZV9nb3BkIiwgInJlcXVpcmVfZXNfZGVmaW5lX3Byb3BlcnR5IiwgInJlcXVpcmVfc2hhbXMiLCAicmVxdWlyZV9oYXNfc3ltYm9scyIsICJyZXF1aXJlX1JlZmxlY3RfZ2V0UHJvdG90eXBlT2YiLCAicmVxdWlyZV9PYmplY3RfZ2V0UHJvdG90eXBlT2YiLCAicmVxdWlyZV9pbXBsZW1lbnRhdGlvbiIsICJiaW5kIiwgInJlcXVpcmVfZnVuY3Rpb25fYmluZCIsICJyZXF1aXJlX2Z1bmN0aW9uQ2FsbCIsICJyZXF1aXJlX2Z1bmN0aW9uQXBwbHkiLCAicmVxdWlyZV9yZWZsZWN0QXBwbHkiLCAicmVxdWlyZV9hY3R1YWxBcHBseSIsICJyZXF1aXJlX2NhbGxfYmluZF9hcHBseV9oZWxwZXJzIiwgInJlcXVpcmVfZ2V0IiwgInJlcXVpcmVfZ2V0X3Byb3RvIiwgInJlcXVpcmVfaGFzb3duIiwgInJlcXVpcmVfZ2V0X2ludHJpbnNpYyIsICJsYXN0IiwgInJlcXVpcmVfZm9ybWF0cyIsICJyZXF1aXJlX3V0aWxzMiIsICJhcnJheVRvT2JqZWN0IiwgImFycmF5VG9PYmplY3QyIiwgIm1lcmdlIiwgIm1lcmdlMiIsICJlbmNvZGUyIiwgImlzUmVnRXhwMiIsICJpc0J1ZmZlciIsICJpc0J1ZmZlcjIiLCAicmVxdWlyZV9zdHJpbmdpZnkiLCAiZGVmYXVsdHMiLCAic3RyaW5naWZ5IiwgInN0cmluZ2lmeTIiLCAiZmlsdGVyIiwgInJlcXVpcmVfcGFyc2UiLCAicGFyZW50IiwgInVybCIsICJlc2NhcGUyIiwgImh0bWwiLCAidXJsMiIsICJyZW5kZXIiLCAiY3J5cHRvIiwgInRvU3RyaW5nIiwgInJlcXVpcmVfZGIyIiwgInJlcXVpcmVfbWltZV9kYjIiLCAicmVxdWlyZV9taW1lX3R5cGVzMiIsICJlbmQiLCAiY29tcGlsZSIsICJyZXF1aXJlX3V0aWxzMyIsICJlc2NhcGVUZXh0IiwgImRhdGEiLCAiZGF0YTIiLCAic2xpY2UiLCAiYWxsIiwgImh0dHAiLCAicmVxdWlyZV9lbmNvZGluZyIsICJnZXRFbmNvZGluZyIsICJyZXF1aXJlX3JlcXVlc3QiLCAiaXMiLCAic2VyaWFsaXplIiwgInN0cmVhbTIiLCAiYXBwZW5kIiwgInJlcXVpcmVfcmVzcG9uc2UiLCAiRXZlbnRFbWl0dGVyIiwgIlZFUlNJT04iLCAiaGFzT3duUHJvcGVydHkiLCAiaXNPYmplY3QiLCAiaXNUeXBlZEFycmF5IiwgImVxIiwgInNldFRpbWVvdXQiLCAiaXNGdW5jdGlvbiIsICJpc0FycmF5TGlrZSIsICJjbGVhclRpbWVvdXQiLCAiaW5kZXgyIiwgInNldERhdGEiLCAibm9vcCIsICJtYXAyIiwgInJlbW92ZSIsICJ0b0FycmF5IiwgInBhcmVudDIiLCAiY2xvbmUyIiwgImZpbmQiLCAiZm9yRWFjaCIsICJzb21lIiwgImFmdGVyIiwgImJlZm9yZSIsICJzcHJlYWQiLCAidGhyb3R0bGUiLCAiY2xvbmUiLCAiaXNBcnJheUJ1ZmZlciIsICJpc1VuZGVmaW5lZCIsICJwcm90b3R5cGUiLCAiZmluZEtleSIsICJ1cGRhdGUiLCAiY2FtZWxDYXNlIiwgImVuZHNXaXRoIiwgInRyaW0iLCAiYWRkIiwgImlzRmlsdGVyIiwgIm9yaWdpbiIsICJ1dGlsIiwgIm9iamVjdFV0aWwiLCAib2JqZWN0VXRpbDIiLCAiWm9kUGFyc2VkVHlwZSIsICJnZXRQYXJzZWRUeXBlIiwgIlpvZElzc3VlQ29kZSIsICJxdW90ZWxlc3NKc29uIiwgIlpvZEVycm9yIiwgImVycm9yTWFwIiwgIm92ZXJyaWRlRXJyb3JNYXAiLCAic2V0RXJyb3JNYXAiLCAiZ2V0RXJyb3JNYXAiLCAibWFrZUlzc3VlIiwgIkVNUFRZX1BBVEgiLCAiYWRkSXNzdWVUb0NvbnRleHQiLCAiUGFyc2VTdGF0dXMiLCAiSU5WQUxJRCIsICJESVJUWSIsICJPSyIsICJpc0Fib3J0ZWQiLCAiaXNEaXJ0eSIsICJpc1ZhbGlkIiwgImlzQXN5bmMiLCAiX19jbGFzc1ByaXZhdGVGaWVsZEdldCIsICJfX2NsYXNzUHJpdmF0ZUZpZWxkU2V0IiwgImVycm9yVXRpbCIsICJlcnJvclV0aWwyIiwgIl9ab2RFbnVtX2NhY2hlIiwgIl9ab2ROYXRpdmVFbnVtX2NhY2hlIiwgIlBhcnNlSW5wdXRMYXp5UGF0aCIsICJoYW5kbGVSZXN1bHQiLCAicHJvY2Vzc0NyZWF0ZVBhcmFtcyIsICJlcnJvck1hcDIiLCAiX2EiLCAiWm9kVHlwZSIsICJab2RFZmZlY3RzIiwgIlpvZEZpcnN0UGFydHlUeXBlS2luZCIsICJab2RPcHRpb25hbCIsICJab2ROdWxsYWJsZSIsICJab2RBcnJheSIsICJab2RQcm9taXNlIiwgIlpvZFVuaW9uIiwgIlpvZEludGVyc2VjdGlvbiIsICJab2REZWZhdWx0IiwgIlpvZEJyYW5kZWQiLCAiWm9kQ2F0Y2giLCAiWm9kUGlwZWxpbmUiLCAiWm9kUmVhZG9ubHkiLCAiY3VpZFJlZ2V4IiwgImN1aWQyUmVnZXgiLCAidWxpZFJlZ2V4IiwgInV1aWRSZWdleCIsICJuYW5vaWRSZWdleCIsICJqd3RSZWdleCIsICJkdXJhdGlvblJlZ2V4IiwgImVtYWlsUmVnZXgiLCAiX2Vtb2ppUmVnZXgiLCAiZW1vamlSZWdleCIsICJpcHY0UmVnZXgiLCAiaXB2NENpZHJSZWdleCIsICJpcHY2UmVnZXgiLCAiaXB2NkNpZHJSZWdleCIsICJiYXNlNjRSZWdleCIsICJiYXNlNjR1cmxSZWdleCIsICJkYXRlUmVnZXhTb3VyY2UiLCAiZGF0ZVJlZ2V4IiwgInRpbWVSZWdleFNvdXJjZSIsICJ0aW1lUmVnZXgiLCAiZGF0ZXRpbWVSZWdleCIsICJpc1ZhbGlkSVAiLCAiaXNWYWxpZEpXVCIsICJpc1ZhbGlkQ2lkciIsICJab2RTdHJpbmciLCAiZmxvYXRTYWZlUmVtYWluZGVyIiwgIlpvZE51bWJlciIsICJab2RCaWdJbnQiLCAiWm9kQm9vbGVhbiIsICJab2REYXRlIiwgIlpvZFN5bWJvbCIsICJab2RVbmRlZmluZWQiLCAiWm9kTnVsbCIsICJab2RBbnkiLCAiWm9kVW5rbm93biIsICJab2ROZXZlciIsICJab2RWb2lkIiwgImRlZXBQYXJ0aWFsaWZ5IiwgIlpvZE9iamVjdCIsICJab2RUdXBsZSIsICJjcmVhdGVab2RFbnVtIiwgImdldERpc2NyaW1pbmF0b3IiLCAiWm9kTGF6eSIsICJab2RMaXRlcmFsIiwgIlpvZEVudW0iLCAiWm9kTmF0aXZlRW51bSIsICJab2REaXNjcmltaW5hdGVkVW5pb24iLCAibWVyZ2VWYWx1ZXMiLCAiWm9kUmVjb3JkIiwgIlpvZE1hcCIsICJab2RTZXQiLCAiWm9kRnVuY3Rpb24iLCAiWm9kTmFOIiwgIkJSQU5EIiwgImNsZWFuUGFyYW1zIiwgImN1c3RvbSIsICJfYTIiLCAibGF0ZSIsICJab2RGaXJzdFBhcnR5VHlwZUtpbmQyIiwgImluc3RhbmNlT2ZUeXBlIiwgInN0cmluZ1R5cGUiLCAibnVtYmVyVHlwZSIsICJuYW5UeXBlIiwgImJpZ0ludFR5cGUiLCAiYm9vbGVhblR5cGUiLCAiZGF0ZVR5cGUiLCAic3ltYm9sVHlwZSIsICJ1bmRlZmluZWRUeXBlIiwgIm51bGxUeXBlIiwgImFueVR5cGUiLCAidW5rbm93blR5cGUiLCAibmV2ZXJUeXBlIiwgInZvaWRUeXBlIiwgImFycmF5VHlwZSIsICJvYmplY3RUeXBlIiwgInN0cmljdE9iamVjdFR5cGUiLCAidW5pb25UeXBlIiwgImRpc2NyaW1pbmF0ZWRVbmlvblR5cGUiLCAiaW50ZXJzZWN0aW9uVHlwZSIsICJ0dXBsZVR5cGUiLCAicmVjb3JkVHlwZSIsICJtYXBUeXBlIiwgInNldFR5cGUiLCAiZnVuY3Rpb25UeXBlIiwgImxhenlUeXBlIiwgImxpdGVyYWxUeXBlIiwgImVudW1UeXBlIiwgIm5hdGl2ZUVudW1UeXBlIiwgInByb21pc2VUeXBlIiwgImVmZmVjdHNUeXBlIiwgIm9wdGlvbmFsVHlwZSIsICJudWxsYWJsZVR5cGUiLCAicHJlcHJvY2Vzc1R5cGUiLCAicGlwZWxpbmVUeXBlIiwgIm9zdHJpbmciLCAib251bWJlciIsICJvYm9vbGVhbiIsICJjb2VyY2UiLCAiTkVWRVIiLCAieiIsICJMQVRFU1RfUFJPVE9DT0xfVkVSU0lPTiIsICJTVVBQT1JURURfUFJPVE9DT0xfVkVSU0lPTlMiLCAiSlNPTlJQQ19WRVJTSU9OIiwgIlByb2dyZXNzVG9rZW5TY2hlbWEiLCAiQ3Vyc29yU2NoZW1hIiwgIlJlcXVlc3RNZXRhU2NoZW1hIiwgIkJhc2VSZXF1ZXN0UGFyYW1zU2NoZW1hIiwgIlJlcXVlc3RTY2hlbWEiLCAiQmFzZU5vdGlmaWNhdGlvblBhcmFtc1NjaGVtYSIsICJOb3RpZmljYXRpb25TY2hlbWEiLCAiUmVzdWx0U2NoZW1hIiwgIlJlcXVlc3RJZFNjaGVtYSIsICJKU09OUlBDUmVxdWVzdFNjaGVtYSIsICJpc0pTT05SUENSZXF1ZXN0IiwgIkpTT05SUENOb3RpZmljYXRpb25TY2hlbWEiLCAiSlNPTlJQQ1Jlc3BvbnNlU2NoZW1hIiwgImlzSlNPTlJQQ1Jlc3BvbnNlIiwgIkVycm9yQ29kZSIsICJFcnJvckNvZGUyIiwgIkpTT05SUENFcnJvclNjaGVtYSIsICJpc0pTT05SUENFcnJvciIsICJKU09OUlBDTWVzc2FnZVNjaGVtYSIsICJFbXB0eVJlc3VsdFNjaGVtYSIsICJDYW5jZWxsZWROb3RpZmljYXRpb25TY2hlbWEiLCAiQmFzZU1ldGFkYXRhU2NoZW1hIiwgIkltcGxlbWVudGF0aW9uU2NoZW1hIiwgIkNsaWVudENhcGFiaWxpdGllc1NjaGVtYSIsICJJbml0aWFsaXplUmVxdWVzdFNjaGVtYSIsICJTZXJ2ZXJDYXBhYmlsaXRpZXNTY2hlbWEiLCAiSW5pdGlhbGl6ZVJlc3VsdFNjaGVtYSIsICJJbml0aWFsaXplZE5vdGlmaWNhdGlvblNjaGVtYSIsICJQaW5nUmVxdWVzdFNjaGVtYSIsICJQcm9ncmVzc1NjaGVtYSIsICJQcm9ncmVzc05vdGlmaWNhdGlvblNjaGVtYSIsICJQYWdpbmF0ZWRSZXF1ZXN0U2NoZW1hIiwgIlBhZ2luYXRlZFJlc3VsdFNjaGVtYSIsICJSZXNvdXJjZUNvbnRlbnRzU2NoZW1hIiwgIlRleHRSZXNvdXJjZUNvbnRlbnRzU2NoZW1hIiwgIkJhc2U2NFNjaGVtYSIsICJCbG9iUmVzb3VyY2VDb250ZW50c1NjaGVtYSIsICJSZXNvdXJjZVNjaGVtYSIsICJSZXNvdXJjZVRlbXBsYXRlU2NoZW1hIiwgIkxpc3RSZXNvdXJjZXNSZXF1ZXN0U2NoZW1hIiwgIkxpc3RSZXNvdXJjZXNSZXN1bHRTY2hlbWEiLCAiTGlzdFJlc291cmNlVGVtcGxhdGVzUmVxdWVzdFNjaGVtYSIsICJMaXN0UmVzb3VyY2VUZW1wbGF0ZXNSZXN1bHRTY2hlbWEiLCAiUmVhZFJlc291cmNlUmVxdWVzdFNjaGVtYSIsICJSZWFkUmVzb3VyY2VSZXN1bHRTY2hlbWEiLCAiUmVzb3VyY2VMaXN0Q2hhbmdlZE5vdGlmaWNhdGlvblNjaGVtYSIsICJTdWJzY3JpYmVSZXF1ZXN0U2NoZW1hIiwgIlVuc3Vic2NyaWJlUmVxdWVzdFNjaGVtYSIsICJSZXNvdXJjZVVwZGF0ZWROb3RpZmljYXRpb25TY2hlbWEiLCAiUHJvbXB0QXJndW1lbnRTY2hlbWEiLCAiUHJvbXB0U2NoZW1hIiwgIkxpc3RQcm9tcHRzUmVxdWVzdFNjaGVtYSIsICJMaXN0UHJvbXB0c1Jlc3VsdFNjaGVtYSIsICJHZXRQcm9tcHRSZXF1ZXN0U2NoZW1hIiwgIlRleHRDb250ZW50U2NoZW1hIiwgIkltYWdlQ29udGVudFNjaGVtYSIsICJBdWRpb0NvbnRlbnRTY2hlbWEiLCAiRW1iZWRkZWRSZXNvdXJjZVNjaGVtYSIsICJSZXNvdXJjZUxpbmtTY2hlbWEiLCAiQ29udGVudEJsb2NrU2NoZW1hIiwgIlByb21wdE1lc3NhZ2VTY2hlbWEiLCAiR2V0UHJvbXB0UmVzdWx0U2NoZW1hIiwgIlByb21wdExpc3RDaGFuZ2VkTm90aWZpY2F0aW9uU2NoZW1hIiwgIlRvb2xBbm5vdGF0aW9uc1NjaGVtYSIsICJUb29sU2NoZW1hIiwgIkxpc3RUb29sc1JlcXVlc3RTY2hlbWEiLCAiTGlzdFRvb2xzUmVzdWx0U2NoZW1hIiwgIkNhbGxUb29sUmVzdWx0U2NoZW1hIiwgIkNvbXBhdGliaWxpdHlDYWxsVG9vbFJlc3VsdFNjaGVtYSIsICJDYWxsVG9vbFJlcXVlc3RTY2hlbWEiLCAiVG9vbExpc3RDaGFuZ2VkTm90aWZpY2F0aW9uU2NoZW1hIiwgIkxvZ2dpbmdMZXZlbFNjaGVtYSIsICJTZXRMZXZlbFJlcXVlc3RTY2hlbWEiLCAiTG9nZ2luZ01lc3NhZ2VOb3RpZmljYXRpb25TY2hlbWEiLCAiTW9kZWxIaW50U2NoZW1hIiwgIk1vZGVsUHJlZmVyZW5jZXNTY2hlbWEiLCAiU2FtcGxpbmdNZXNzYWdlU2NoZW1hIiwgIkNyZWF0ZU1lc3NhZ2VSZXF1ZXN0U2NoZW1hIiwgIkNyZWF0ZU1lc3NhZ2VSZXN1bHRTY2hlbWEiLCAiQm9vbGVhblNjaGVtYVNjaGVtYSIsICJTdHJpbmdTY2hlbWFTY2hlbWEiLCAiTnVtYmVyU2NoZW1hU2NoZW1hIiwgIkVudW1TY2hlbWFTY2hlbWEiLCAiUHJpbWl0aXZlU2NoZW1hRGVmaW5pdGlvblNjaGVtYSIsICJFbGljaXRSZXF1ZXN0U2NoZW1hIiwgIkVsaWNpdFJlc3VsdFNjaGVtYSIsICJSZXNvdXJjZVRlbXBsYXRlUmVmZXJlbmNlU2NoZW1hIiwgIlByb21wdFJlZmVyZW5jZVNjaGVtYSIsICJDb21wbGV0ZVJlcXVlc3RTY2hlbWEiLCAiQ29tcGxldGVSZXN1bHRTY2hlbWEiLCAiUm9vdFNjaGVtYSIsICJMaXN0Um9vdHNSZXF1ZXN0U2NoZW1hIiwgIkxpc3RSb290c1Jlc3VsdFNjaGVtYSIsICJSb290c0xpc3RDaGFuZ2VkTm90aWZpY2F0aW9uU2NoZW1hIiwgIkNsaWVudFJlcXVlc3RTY2hlbWEiLCAiQ2xpZW50Tm90aWZpY2F0aW9uU2NoZW1hIiwgIkNsaWVudFJlc3VsdFNjaGVtYSIsICJTZXJ2ZXJSZXF1ZXN0U2NoZW1hIiwgIlNlcnZlck5vdGlmaWNhdGlvblNjaGVtYSIsICJTZXJ2ZXJSZXN1bHRTY2hlbWEiLCAiZGVmYXVsdE9wdGlvbnMiLCAiZW1vamlSZWdleDIiXQp9Cg==

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/OEvortex/ddg_search'

If you have feedback or need assistance with the MCP directory API, please join our Discord server